@getyoti/react-face-capture 0.6.0 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/index.js CHANGED
@@ -1,2 +1,2 @@
1
1
  /*! For license information please see index.js.LICENSE.txt */
2
- module.exports=function(t){var e={};function n(r){if(e[r])return e[r].exports;var o=e[r]={i:r,l:!1,exports:{}};return t[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=t,n.c=e,n.d=function(t,e,r){n.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:r})},n.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},n.t=function(t,e){if(1&e&&(t=n(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var o in t)n.d(r,o,function(e){return t[e]}.bind(null,o));return r},n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,"a",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p="",n(n.s=76)}([function(t,e,n){"use strict";(function(t,r,o,a){n.d(e,"a",(function(){return dt})),n.d(e,"b",(function(){return xt})),n.d(e,"c",(function(){return Ls})),n.d(e,"d",(function(){return Ku})),n.d(e,"e",(function(){return Ss})),n.d(e,"f",(function(){return kf})),n.d(e,"g",(function(){return qi})),n.d(e,"h",(function(){return gn})),n.d(e,"i",(function(){return Ru})),n.d(e,"j",(function(){return Ou})),n.d(e,"k",(function(){return zs})),n.d(e,"l",(function(){return Yi})),n.d(e,"m",(function(){return zn})),n.d(e,"n",(function(){return pn})),n.d(e,"o",(function(){return fl})),n.d(e,"p",(function(){return Ef})),n.d(e,"q",(function(){return Pu})),n.d(e,"r",(function(){return uc})),n.d(e,"s",(function(){return qu})),n.d(e,"t",(function(){return Qs})),n.d(e,"u",(function(){return ns})),n.d(e,"v",(function(){return qn})),n.d(e,"w",(function(){return gc})),n.d(e,"x",(function(){return er})),n.d(e,"y",(function(){return an})),n.d(e,"z",(function(){return Nu})),n.d(e,"A",(function(){return is})),n.d(e,"B",(function(){return Ju})),n.d(e,"C",(function(){return tc})),n.d(e,"D",(function(){return _r})),n.d(e,"E",(function(){return or})),n.d(e,"F",(function(){return ou})),n.d(e,"G",(function(){return rn})),n.d(e,"H",(function(){return sn})),n.d(e,"I",(function(){return un})),n.d(e,"J",(function(){return cn})),n.d(e,"K",(function(){return ln})),n.d(e,"L",(function(){return Pe})),n.d(e,"M",(function(){return ar})),n.d(e,"N",(function(){return xc})),n.d(e,"O",(function(){return sr})),n.d(e,"P",(function(){return hn}));var i=function(t,e){return(i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])})(t,e)};function s(t,e){function n(){this.constructor=t}i(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)}function u(t,e,n,r){return new(n||(n=Promise))((function(o,a){function i(t){try{u(r.next(t))}catch(t){a(t)}}function s(t){try{u(r.throw(t))}catch(t){a(t)}}function u(t){t.done?o(t.value):new n((function(e){e(t.value)})).then(i,s)}u((r=r.apply(t,e||[])).next())}))}function c(t,e){var n,r,o,a,i={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return a={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(a){return function(s){return function(a){if(n)throw new TypeError("Generator is already executing.");for(;i;)try{if(n=1,r&&(o=2&a[0]?r.return:a[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,a[1])).done)return o;switch(r=0,o&&(a=[2&a[0],o.value]),a[0]){case 0:case 1:o=a;break;case 4:return i.label++,{value:a[1],done:!1};case 5:i.label++,r=a[1],a=[0];continue;case 7:a=i.ops.pop(),i.trys.pop();continue;default:if(!(o=(o=i.trys).length>0&&o[o.length-1])&&(6===a[0]||2===a[0])){i=0;continue}if(3===a[0]&&(!o||a[1]>o[0]&&a[1]<o[3])){i.label=a[1];break}if(6===a[0]&&i.label<o[1]){i.label=o[1],o=a;break}if(o&&i.label<o[2]){i.label=o[2],i.ops.push(a);break}o[2]&&i.ops.pop(),i.trys.pop();continue}a=e.call(t,i)}catch(t){a=[6,t],r=0}finally{n=o=0}if(5&a[0])throw a[1];return{value:a[0]?a[1]:void 0,done:!0}}([a,s])}}}var l=function(){function t(t){this.global=t,this.flags={},this.flagRegistry={},this.urlFlags={},this.populateURLFlags()}return t.prototype.setPlatform=function(t,e){this.platform,this.platformName=t,this.platform=e},t.prototype.registerFlag=function(t,e,n){if(this.flagRegistry[t]={evaluationFn:e,setHook:n},null!=this.urlFlags[t]){var r=this.urlFlags[t];this.set(t,r)}},t.prototype.get=function(t){return t in this.flags||(this.flags[t]=this.evaluateFlag(t)),this.flags[t]},t.prototype.getNumber=function(t){return this.get(t)},t.prototype.getBool=function(t){return this.get(t)},t.prototype.getFlags=function(){return this.flags},Object.defineProperty(t.prototype,"features",{get:function(){return this.flags},enumerable:!0,configurable:!0}),t.prototype.set=function(t,e){if(null==this.flagRegistry[t])throw new Error("Cannot set flag "+t+" as it has not been registered.");this.flags[t]=e,null!=this.flagRegistry[t].setHook&&this.flagRegistry[t].setHook(e)},t.prototype.evaluateFlag=function(t){if(null==this.flagRegistry[t])throw new Error("Cannot evaluate flag '"+t+"': no evaluation function found.");return this.flagRegistry[t].evaluationFn()},t.prototype.setFlags=function(t){this.flags=Object.assign({},t)},t.prototype.reset=function(){this.flags={},this.urlFlags={},this.populateURLFlags()},t.prototype.populateURLFlags=function(){var t=this;if(void 0!==this.global&&void 0!==this.global.location&&void 0!==this.global.location.search){var e,n,r=(e=this.global.location.search,n={},e.replace(/[?&]([^=?&]+)(?:=([^&]*))?/g,(function(t){for(var e=[],r=1;r<arguments.length;r++)e[r-1]=arguments[r];return function(t,e,n){t[decodeURIComponent(e)]=decodeURIComponent(n||"")}(n,e[0],e[1]),e.join("=")})),n);"tfjsflags"in r&&r.tfjsflags.split(",").forEach((function(e){var n=e.split(":"),r=n[0],o=n[1];t.urlFlags[r]=function(t,e){if("true"===(e=e.toLowerCase())||"false"===e)return"true"===e;if(""+ +e===e)return+e;throw new Error("Could not parse value flag value "+e+" for flag "+t+".")}(r,o)}))}},t}();function f(){return h}var h=null,p=new Map;function d(t,e){var n=g(t,e);return p.get(n)}function v(t){for(var e=p.entries(),n=[];;){var r=e.next(),o=r.done,a=r.value;if(o)break;var i=a[0],s=a[1];i.split("_")[0]===t&&n.push(s)}return n}function m(t){var e=t.kernelName,n=t.backendName,r=g(e,n);if(p.has(r))throw new Error("The kernel '"+e+"' for backend '"+n+"' is already registered");p.set(r,t)}function g(t,e){return e+"_"+t}function y(t){for(var e=t.length,n=0,r=0;e>0;)r=Math.random()*e|0,n=t[--e],t[e]=t[r],t[r]=n}function b(t,e,n){return Math.max(t,Math.min(e,n))}function x(t){return t%2==0?t:t+1}function w(t){for(var e=0,n=0;n<t.length;n++)e+=t[n];return e}function E(t,e){if(!t)throw new Error("string"==typeof e?e:e())}function C(t,e,n){void 0===n&&(n=""),E(I(t,e),(function(){return n+" Shapes "+t+" and "+e+" must match"}))}function _(t){E(null!=t,(function(){return"The input to the tensor constructor must be a non-null value."}))}function k(t,e,n){if(void 0===e&&(e=[]),void 0===n&&(n=!1),null==e&&(e=[]),Array.isArray(t)||j(t)&&!n)for(var r=0;r<t.length;++r)k(t[r],e,n);else e.push(t);return e}function R(t){if(0===t.length)return 1;for(var e=t[0],n=1;n<t.length;n++)e*=t[n];return e}function I(t,e){if(t===e)return!0;if(null==t||null==e)return!1;if(t.length!==e.length)return!1;for(var n=0;n<t.length;n++)if(t[n]!==e[n])return!1;return!0}function S(t){return t%1==0}function A(t){if(null!=Math.tanh)return Math.tanh(t);if(t===1/0)return 1;if(t===-1/0)return-1;var e=Math.exp(2*t);return(e-1)/(e+1)}function O(t){var e=Math.ceil(Math.sqrt(t));return[e,Math.ceil(t/e)]}function T(t,e){return e<=t.length?t:t+" ".repeat(e-t.length)}function D(t,e,n){return void 0===e&&(e=function(t){return 0}),new Promise((function(r,o){var a=0,i=function(){if(t())r();else{var s=e(++a);null!=n&&a>=n?o():setTimeout(i,s)}};i()}))}function N(t,e){for(var n=1,r=-1,o=0;o<t.length;++o)if(t[o]>=0)n*=t[o];else if(-1===t[o]){if(-1!==r)throw Error("Shapes can only have 1 implicit size. Found -1 at dim "+r+" and dim "+o);r=o}else if(t[o]<0)throw Error("Shapes can not be < 0. Found "+t[o]+" at dim "+o);if(-1===r){if(e>0&&e!==n)throw Error("Size("+e+") must match the product of shape "+t);return t}if(0===n)throw Error("Cannot infer the missing size in ["+t+"] when there are 0 elements");if(e%n!=0)throw Error("The implicit shape can't be a fractional number. Got "+e+" / "+n);var a=t.slice();return a[r]=e/n,a}function F(t,e){var n=e.length;return E((t=null==t?e.map((function(t,e){return e})):[].concat(t)).every((function(t){return t>=-n&&t<n})),(function(){return"All values in axis param must be in range [-"+n+", "+n+") but got axis "+t})),E(t.every((function(t){return S(t)})),(function(){return"All values in axis param must be integers but got axis "+t})),t.map((function(t){return t<0?n+t:t}))}function M(t,e){for(var n=[],r=[],o=null!=e&&Array.isArray(e)&&0===e.length,a=null==e||o?null:F(e,t).sort(),i=0,s=0;s<t.length;++s){if(null!=a){if(a[i]===s&&1!==t[s])throw new Error("Can't squeeze axis "+s+" since its dim '"+t[s]+"' is not 1");(null==a[i]||a[i]>s)&&1===t[s]&&(n.push(t[s]),r.push(s)),a[i]<=s&&i++}1!==t[s]&&(n.push(t[s]),r.push(s))}return{newShape:n,keptDims:r}}function P(t,e){var n=null;if(null==t||"float32"===t)n=new Float32Array(e);else if("int32"===t)n=new Int32Array(e);else{if("bool"!==t)throw new Error("Unknown data type "+t);n=new Uint8Array(e)}return n}function B(t,e){var n=null;if(null==t||"float32"===t)n=new Float32Array(e);else if("int32"===t)n=new Int32Array(e);else if("bool"===t)n=new Uint8Array(e);else{if("string"!==t)throw new Error("Unknown data type "+t);n=new Array(e)}return n}function L(t,e){for(var n=0;n<t.length;n++){var r=t[n];if(isNaN(r)||!isFinite(r))throw Error("A tensor of type "+e+" being uploaded contains "+r+".")}}function W(t){return"bool"===t||"complex64"===t||"float32"===t||"int32"===t||"string"===t}function U(t,e){return!("complex64"===e||"float32"===e&&"complex64"!==t||"int32"===e&&"float32"!==t&&"complex64"!==t||"bool"===e&&"bool"===t)}function j(t){return t instanceof Float32Array||t instanceof Int32Array||t instanceof Uint8Array}function z(t){if("float32"===t||"int32"===t)return 4;if("complex64"===t)return 8;if("bool"===t)return 1;throw new Error("Unknown dtype "+t)}function V(t){if(null==t)return 0;var e=0;return t.forEach((function(t){return e+=t.length})),e}function G(t){return"string"==typeof t||t instanceof String}function H(t){return"boolean"==typeof t}function q(t){return"number"==typeof t}function K(t){return Array.isArray(t)?K(t[0]):t instanceof Float32Array?"float32":t instanceof Int32Array||t instanceof Uint8Array?"int32":q(t)?"float32":G(t)?"string":H(t)?"bool":"float32"}function X(t){return!!(t&&t.constructor&&t.call&&t.apply)}function $(t,e){for(var n=e;n<t;++n)if(t%n==0)return n;return t}function Y(t){var e=t.length;if(e<2)return[];var n=new Array(e-1);n[e-2]=t[e-1];for(var r=e-3;r>=0;--r)n[r]=n[r+1]*t[r+1];return n}function J(t,e,n){if("string"===e)throw new Error("Cannot convert a string[] to a TypedArray");if(Array.isArray(t)&&(t=k(t)),n&&L(t,e),function(t,e){return t instanceof Float32Array&&"float32"===e||t instanceof Int32Array&&"int32"===e||t instanceof Uint8Array&&"bool"===e}(t,e))return t;if(null==e||"float32"===e||"complex64"===e)return new Float32Array(t);if("int32"===e)return new Int32Array(t);if("bool"===e){for(var r=new Uint8Array(t.length),o=0;o<r.length;++o)0!==Math.round(t[o])&&(r[o]=1);return r}throw new Error("Unknown data type "+e)}function Q(t,e){if(0===t.length)return e[0];var n=t.reduce((function(t,e){return t*e}));if(0===n)return[];if(n!==e.length)throw new Error("["+t+"] does not match the input size.");return function t(e,n,r){var o=new Array;if(1===n.length)for(var a=n[0],i=0;i<a;i++)o[i]=r[e+i];else{a=n[0];var s=n.slice(1),u=s.reduce((function(t,e){return t*e}));for(i=0;i<a;i++)o[i]=t(e+i*u,s,r)}return o}(0,t,e)}function Z(t,e){for(var n=tt(t,e),r=0;r<n.length;r++)n[r]=1;return n}function tt(t,e){if(null==e||"float32"===e||"complex64"===e)return new Float32Array(t);if("int32"===e)return new Int32Array(t);if("bool"===e)return new Uint8Array(t);throw new Error("Unknown data type "+e)}function et(){return f().platform.now()}function nt(t){t.forEach((function(e){E(Number.isInteger(e)&&e>=0,(function(){return"Tensor must have a shape comprised of positive integers but got shape ["+t+"]."}))}))}function rt(t,e){return void 0===e&&(e="utf-8"),e=e||"utf-8",f().platform.encode(t,e)}function ot(t,e){return void 0===e&&(e="utf-8"),e=e||"utf-8",f().platform.decode(t,e)}Object.freeze({shuffle:y,clamp:b,nearestLargerEven:x,sum:w,randUniform:function(t,e){var n=Math.random();return e*n+(1-n)*t},distSquared:function(t,e){for(var n=0,r=0;r<t.length;r++){var o=Number(t[r])-Number(e[r]);n+=o*o}return n},assert:E,assertShapesMatch:C,assertNonNull:_,flatten:k,sizeFromShape:R,isScalarShape:function(t){return 0===t.length},arraysEqual:I,isInt:S,tanh:A,sizeToSquarishShape:O,createShuffledIndices:function(t){for(var e=new Uint32Array(t),n=0;n<t;++n)e[n]=n;return y(e),e},rightPad:T,repeatedTry:D,inferFromImplicitShape:N,parseAxisParam:F,squeezeShape:M,getTypedArrayFromDType:P,getArrayFromDType:B,checkConversionForErrors:L,isValidDtype:W,hasEncodingLoss:U,isTypedArray:j,bytesPerElement:z,bytesFromStringArray:V,isString:G,isBoolean:H,isNumber:q,inferDtype:K,isFunction:X,nearestDivisor:$,computeStrides:Y,toTypedArray:J,toNestedArray:Q,makeOnesTypedArray:Z,makeZerosTypedArray:tt,now:et,assertNonNegativeIntegerDimensions:nt,fetch:function(t,e){return f().platform.fetch(t,e)},encodeString:rt,decodeString:ot});var at=function(){function t(t,e){this.backendTimer=t,this.logger=e,null==e&&(this.logger=new it)}return t.prototype.profileKernel=function(t,e,n){var r,o=this,a=this.backendTimer.time((function(){r=n()}));return r.forEach((function(n){n.data().then((function(r){!function(t,e,n){if("float32"!==e)return!1;for(var r=0;r<t.length;r++){var o=t[r];if(isNaN(o)||!isFinite(o))return!0}}(r,n.dtype),a.then((function(a){var i="";null!=a.getExtraProfileInfo&&(i=a.getExtraProfileInfo()),o.logger.logKernelProfile(t,n,r,a.kernelMs,e,i)}))}))})),r},t}(),it=function(){function t(){}return t.prototype.logKernelProfile=function(t,e,n,r,o,a){T(r+"ms",9),T(t,25),e.rank,e.size,T(e.shape.toString(),14);for(var i in o){var s=o[i].shape,u=s.length;i+": "+u+"D "+(u>0?s:"")+" "}},t}();function st(t,e,n){return T(Array.isArray(t)?parseFloat(t[0].toFixed(7))+" + "+parseFloat(t[1].toFixed(7))+"j":G(t)?"'"+t+"'":"bool"===n?ut(t):parseFloat(t.toFixed(7)).toString(),e)}function ut(t){return 0===t?"false":"true"}function ct(t){for(var e=[],n=0;n<t.length;n+=2)e.push([t[n],t[n+1]]);return e}var lt=function(){function t(t,e,n){var r=this;if(this.dtype=e,this.shape=t.slice(),this.size=R(t),null!=n){var o=n.length;E(o===this.size,(function(){return"Length of values '"+o+"' does not match the size inferred by the shape '"+r.size+"'."}))}if("complex64"===e)throw new Error("complex64 dtype TensorBuffers are not supported. Please create a TensorBuffer for the real and imaginary parts separately and call tf.complex(real, imag).");this.values=n||B(e,this.size),this.strides=Y(t)}return t.prototype.set=function(t){for(var e=this,n=[],r=1;r<arguments.length;r++)n[r-1]=arguments[r];0===n.length&&(n=[0]),E(n.length===this.rank,(function(){return"The number of provided coordinates ("+n.length+") must match the rank ("+e.rank+")"}));var o=this.locToIndex(n);this.values[o]=t},t.prototype.get=function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];0===t.length&&(t=[0]);for(var n=0,r=0,o=t;r<o.length;r++){var a=o[r];if(a<0||a>=this.shape[n]){var i="Requested out of range element at "+t+". Buffer shape="+this.shape;throw new Error(i)}n++}for(var s=t[t.length-1],u=0;u<t.length-1;++u)s+=this.strides[u]*t[u];return this.values[s]},t.prototype.locToIndex=function(t){if(0===this.rank)return 0;if(1===this.rank)return t[0];for(var e=t[t.length-1],n=0;n<t.length-1;++n)e+=this.strides[n]*t[n];return e},t.prototype.indexToLoc=function(t){if(0===this.rank)return[];if(1===this.rank)return[t];for(var e=new Array(this.shape.length),n=0;n<e.length-1;++n)e[n]=Math.floor(t/this.strides[n]),t-=e[n]*this.strides[n];return e[e.length-1]=t,e},Object.defineProperty(t.prototype,"rank",{get:function(){return this.shape.length},enumerable:!0,configurable:!0}),t.prototype.toTensor=function(){return ft().makeTensor(this.values,this.shape,this.dtype)},t}(),ft=null,ht=null,pt=null,dt=function(){function t(t,e,n,r){this.kept=!1,this.isDisposedInternal=!1,this.shape=t.slice(),this.dtype=e||"float32",this.size=R(t),this.strides=Y(t),this.dataId=n,this.id=r,this.rankType=this.rank<5?this.rank.toString():"higher"}return t.prototype.flatten=function(){return this.throwIfDisposed(),this.as1D()},t.prototype.asScalar=function(){return this.throwIfDisposed(),E(1===this.size,(function(){return"The array must have only 1 element."})),this.reshape([])},t.prototype.as1D=function(){return this.throwIfDisposed(),this.reshape([this.size])},t.prototype.as2D=function(t,e){return this.throwIfDisposed(),this.reshape([t,e])},t.prototype.as3D=function(t,e,n){return this.throwIfDisposed(),this.reshape([t,e,n])},t.prototype.as4D=function(t,e,n,r){return this.throwIfDisposed(),this.reshape([t,e,n,r])},t.prototype.as5D=function(t,e,n,r,o){return this.throwIfDisposed(),this.reshape([t,e,n,r,o])},t.prototype.asType=function(t){return this.throwIfDisposed(),ht.cast(this,t)},Object.defineProperty(t.prototype,"rank",{get:function(){return this.shape.length},enumerable:!0,configurable:!0}),t.prototype.buffer=function(){return u(this,void 0,void 0,(function(){var t;return c(this,(function(e){switch(e.label){case 0:return[4,this.data()];case 1:return t=e.sent(),[2,ht.buffer(this.shape,this.dtype,t)]}}))}))},t.prototype.bufferSync=function(){return ht.buffer(this.shape,this.dtype,this.dataSync())},t.prototype.array=function(){return u(this,void 0,void 0,(function(){var t;return c(this,(function(e){switch(e.label){case 0:return[4,this.data()];case 1:return t=e.sent(),[2,Q(this.shape,t)]}}))}))},t.prototype.arraySync=function(){return Q(this.shape,this.dataSync())},t.prototype.data=function(){return u(this,void 0,void 0,(function(){var t,e;return c(this,(function(n){switch(n.label){case 0:return this.throwIfDisposed(),t=ft().read(this.dataId),"string"!==this.dtype?[3,2]:[4,t];case 1:e=n.sent();try{return[2,e.map((function(t){return ot(t)}))]}catch(t){throw new Error("Failed to decode the string bytes into utf-8. To get the original bytes, call tensor.bytes().")}n.label=2;case 2:return[2,t]}}))}))},t.prototype.dataSync=function(){this.throwIfDisposed();var t=ft().readSync(this.dataId);if("string"===this.dtype)try{return t.map((function(t){return ot(t)}))}catch(t){throw new Error("Failed to decode the string bytes into utf-8. To get the original bytes, call tensor.bytes().")}return t},t.prototype.bytes=function(){return u(this,void 0,void 0,(function(){var t;return c(this,(function(e){switch(e.label){case 0:return this.throwIfDisposed(),[4,ft().read(this.dataId)];case 1:return t=e.sent(),"string"===this.dtype?[2,t]:[2,new Uint8Array(t.buffer)]}}))}))},t.prototype.dispose=function(){this.isDisposed||(ft().disposeTensor(this),this.isDisposedInternal=!0)},Object.defineProperty(t.prototype,"isDisposed",{get:function(){return this.isDisposedInternal},enumerable:!0,configurable:!0}),t.prototype.throwIfDisposed=function(){if(this.isDisposed)throw new Error("Tensor is disposed.")},t.prototype.toFloat=function(){return this.asType("float32")},t.prototype.toInt=function(){return this.asType("int32")},t.prototype.toBool=function(){return this.asType("bool")},t.prototype.print=function(t){return void 0===t&&(t=!1),ht.print(this,t)},t.prototype.reshape=function(t){return this.throwIfDisposed(),ht.reshape(this,t)},t.prototype.reshapeAs=function(t){return this.throwIfDisposed(),this.reshape(t.shape)},t.prototype.expandDims=function(t){return void 0===t&&(t=0),ht.expandDims(this,t)},t.prototype.cumsum=function(t,e,n){return void 0===t&&(t=0),void 0===e&&(e=!1),void 0===n&&(n=!1),ht.cumsum(this,t,e,n)},t.prototype.squeeze=function(t){return this.throwIfDisposed(),ht.squeeze(this,t)},t.prototype.clone=function(){return this.throwIfDisposed(),ht.clone(this)},t.prototype.oneHot=function(t,e,n){return this.throwIfDisposed(),ht.oneHot(this,t,e,n)},t.prototype.toString=function(t){return void 0===t&&(t=!1),function(t,e,n,r){var o=Y(e),a=function(t,e,n,r){var o=R(e),a=r[r.length-1],i=new Array(a).fill(0),s=e.length,u="complex64"===n?ct(t):t;if(s>1)for(var c=0;c<o/a;c++)for(var l=c*a,f=0;f<a;f++)i[f]=Math.max(i[f],st(u[l+f],0,n).length);return i}(t,e,n,o),i=e.length,s=function t(e,n,r,o,a,i){void 0===i&&(i=!0);var s="complex64"===r?2:1,u=n[0],c=n.length;if(0===c)return"complex64"===r?[st(ct(e)[0],0,r)]:"bool"===r?[ut(e[0])]:[e[0].toString()];if(1===c){if(u>20){var l=3*s,f=Array.from(e.slice(0,l)),h=Array.from(e.slice((u-3)*s,u*s));return"complex64"===r&&(f=ct(f),h=ct(h)),["["+f.map((function(t,e){return st(t,a[e],r)})).join(", ")+", ..., "+h.map((function(t,e){return st(t,a[u-3+e],r)})).join(", ")+"]"]}return["["+("complex64"===r?ct(e):Array.from(e)).map((function(t,e){return st(t,a[e],r)})).join(", ")+"]"]}var p=n.slice(1),d=o.slice(1),v=o[0]*s,m=[];if(u>20){for(var g=0;g<3;g++){var y=(b=g*v)+v;m.push.apply(m,t(e.slice(b,y),p,r,d,a,!1))}m.push("...");for(g=u-3;g<u;g++){y=(b=g*v)+v;m.push.apply(m,t(e.slice(b,y),p,r,d,a,g===u-1))}}else for(g=0;g<u;g++){var b;y=(b=g*v)+v;m.push.apply(m,t(e.slice(b,y),p,r,d,a,g===u-1))}var x=2===c?",":"";m[0]="["+m[0]+x;for(g=1;g<m.length-1;g++)m[g]=" "+m[g]+x;var w=",\n";for(g=2;g<c;g++)w+="\n";return m[m.length-1]=" "+m[m.length-1]+"]"+(i?"":w),m}(t,e,n,o,a),u=["Tensor"];return r&&(u.push(" dtype: "+n),u.push(" rank: "+i),u.push(" shape: ["+e+"]"),u.push(" values:")),u.push(s.map((function(t){return" "+t})).join("\n")),u.join("\n")}(this.dataSync(),this.shape,this.dtype,t)},t.prototype.tile=function(t){return this.throwIfDisposed(),ht.tile(this,t)},t.prototype.gather=function(t,e){return void 0===e&&(e=0),this.throwIfDisposed(),ht.gather(this,t,e)},t.prototype.matMul=function(t,e,n){return void 0===e&&(e=!1),void 0===n&&(n=!1),this.throwIfDisposed(),ht.matMul(this,t,e,n)},t.prototype.dot=function(t){return this.throwIfDisposed(),ht.dot(this,t)},t.prototype.norm=function(t,e,n){return void 0===t&&(t="euclidean"),void 0===e&&(e=null),void 0===n&&(n=!1),this.throwIfDisposed(),ht.norm(this,t,e,n)},t.prototype.slice=function(t,e){return this.throwIfDisposed(),ht.slice(this,t,e)},t.prototype.reverse=function(t){return this.throwIfDisposed(),ht.reverse(this,t)},t.prototype.concat=function(e,n){return void 0===n&&(n=0),this.throwIfDisposed(),e instanceof t&&(e=[e]),ht.concat([this].concat(e),n)},t.prototype.split=function(t,e){return void 0===e&&(e=0),this.throwIfDisposed(),ht.split(this,t,e)},t.prototype.stack=function(t,e){return void 0===e&&(e=0),ht.stack([this,t],e)},t.prototype.unstack=function(t){return void 0===t&&(t=0),ht.unstack(this,t)},t.prototype.pad=function(t,e){return void 0===e&&(e=0),ht.pad(this,t,e)},t.prototype.batchNormalization=function(t,e,n,r,o){return void 0===n&&(n=.001),pt("tf.batchNormalization() is going away. Use tf.batchNorm() instead, and note the positional argument change of scale, offset, and varianceEpsilon"),this.batchNorm(t,e,o,r,n)},t.prototype.batchNorm=function(t,e,n,r,o){return void 0===o&&(o=.001),this.throwIfDisposed(),ht.batchNorm(this,t,e,n,r,o)},t.prototype.all=function(t,e){return void 0===t&&(t=null),void 0===e&&(e=!1),this.throwIfDisposed(),ht.all(this,t,e)},t.prototype.any=function(t,e){return void 0===t&&(t=null),void 0===e&&(e=!1),this.throwIfDisposed(),ht.any(this,t,e)},t.prototype.logSumExp=function(t,e){return void 0===t&&(t=null),void 0===e&&(e=!1),this.throwIfDisposed(),ht.logSumExp(this,t,e)},t.prototype.sum=function(t,e){return void 0===t&&(t=null),void 0===e&&(e=!1),this.throwIfDisposed(),ht.sum(this,t,e)},t.prototype.prod=function(t,e){return void 0===t&&(t=null),void 0===e&&(e=!1),this.throwIfDisposed(),ht.prod(this,t,e)},t.prototype.mean=function(t,e){return void 0===t&&(t=null),void 0===e&&(e=!1),this.throwIfDisposed(),ht.mean(this,t,e)},t.prototype.min=function(t,e){return void 0===t&&(t=null),void 0===e&&(e=!1),this.throwIfDisposed(),ht.min(this,t,e)},t.prototype.max=function(t,e){return void 0===t&&(t=null),void 0===e&&(e=!1),this.throwIfDisposed(),ht.max(this,t,e)},t.prototype.argMin=function(t){return void 0===t&&(t=null),this.throwIfDisposed(),ht.argMin(this,t)},t.prototype.argMax=function(t){return void 0===t&&(t=null),this.throwIfDisposed(),ht.argMax(this,t)},t.prototype.cast=function(t){return this.throwIfDisposed(),ht.cast(this,t)},t.prototype.add=function(t){return this.throwIfDisposed(),ht.add(this,t)},t.prototype.addStrict=function(t){return this.throwIfDisposed(),ht.addStrict(this,t)},t.prototype.atan2=function(t){return this.throwIfDisposed(),ht.atan2(this,t)},t.prototype.sub=function(t){return this.throwIfDisposed(),ht.sub(this,t)},t.prototype.subStrict=function(t){return this.throwIfDisposed(),ht.subStrict(this,t)},t.prototype.pow=function(t){return this.throwIfDisposed(),ht.pow(this,t)},t.prototype.powStrict=function(t){return this.throwIfDisposed(),ht.powStrict(this,t)},t.prototype.mul=function(t){return this.throwIfDisposed(),ht.mul(this,t)},t.prototype.mulStrict=function(t){return this.throwIfDisposed(),ht.mulStrict(this,t)},t.prototype.div=function(t){return this.throwIfDisposed(),ht.div(this,t)},t.prototype.divNoNan=function(t){return this.throwIfDisposed(),ht.divNoNan(this,t)},t.prototype.floorDiv=function(t){return this.throwIfDisposed(),ht.floorDiv(this,t)},t.prototype.divStrict=function(t){return this.throwIfDisposed(),ht.divStrict(this,t)},t.prototype.minimum=function(t){return this.throwIfDisposed(),ht.minimum(this,t)},t.prototype.minimumStrict=function(t){return this.throwIfDisposed(),ht.minimumStrict(this,t)},t.prototype.maximum=function(t){return this.throwIfDisposed(),ht.maximum(this,t)},t.prototype.maximumStrict=function(t){return this.throwIfDisposed(),ht.maximumStrict(this,t)},t.prototype.mod=function(t){return this.throwIfDisposed(),ht.mod(this,t)},t.prototype.modStrict=function(t){return this.throwIfDisposed(),ht.modStrict(this,t)},t.prototype.squaredDifference=function(t){return this.throwIfDisposed(),ht.squaredDifference(this,t)},t.prototype.squaredDifferenceStrict=function(t){return this.throwIfDisposed(),ht.squaredDifferenceStrict(this,t)},t.prototype.transpose=function(t){return this.throwIfDisposed(),ht.transpose(this,t)},t.prototype.notEqual=function(t){return this.throwIfDisposed(),ht.notEqual(this,t)},t.prototype.notEqualStrict=function(t){return this.throwIfDisposed(),ht.notEqualStrict(this,t)},t.prototype.less=function(t){return this.throwIfDisposed(),ht.less(this,t)},t.prototype.lessStrict=function(t){return this.throwIfDisposed(),ht.lessStrict(this,t)},t.prototype.equal=function(t){return this.throwIfDisposed(),ht.equal(this,t)},t.prototype.equalStrict=function(t){return this.throwIfDisposed(),ht.equalStrict(this,t)},t.prototype.lessEqual=function(t){return this.throwIfDisposed(),ht.lessEqual(this,t)},t.prototype.lessEqualStrict=function(t){return this.throwIfDisposed(),ht.lessEqualStrict(this,t)},t.prototype.greater=function(t){return this.throwIfDisposed(),ht.greater(this,t)},t.prototype.greaterStrict=function(t){return this.throwIfDisposed(),ht.greaterStrict(this,t)},t.prototype.greaterEqual=function(t){return this.throwIfDisposed(),ht.greaterEqual(this,t)},t.prototype.greaterEqualStrict=function(t){return this.throwIfDisposed(),ht.greaterEqualStrict(this,t)},t.prototype.logicalAnd=function(t){return this.throwIfDisposed(),ht.logicalAnd(this,t)},t.prototype.logicalOr=function(t){return this.throwIfDisposed(),ht.logicalOr(this,t)},t.prototype.logicalNot=function(){return this.throwIfDisposed(),ht.logicalNot(this)},t.prototype.logicalXor=function(t){return this.throwIfDisposed(),ht.logicalXor(this,t)},t.prototype.where=function(t,e){return this.throwIfDisposed(),ht.where(t,this,e)},t.prototype.neg=function(){return this.throwIfDisposed(),ht.neg(this)},t.prototype.ceil=function(){return this.throwIfDisposed(),ht.ceil(this)},t.prototype.floor=function(){return this.throwIfDisposed(),ht.floor(this)},t.prototype.sign=function(){return this.throwIfDisposed(),ht.sign(this)},t.prototype.isNaN=function(){return this.throwIfDisposed(),ht.isNaN(this)},t.prototype.isInf=function(){return this.throwIfDisposed(),ht.isInf(this)},t.prototype.isFinite=function(){return this.throwIfDisposed(),ht.isFinite(this)},t.prototype.exp=function(){return this.throwIfDisposed(),ht.exp(this)},t.prototype.expm1=function(){return this.throwIfDisposed(),ht.expm1(this)},t.prototype.log=function(){return this.throwIfDisposed(),ht.log(this)},t.prototype.log1p=function(){return this.throwIfDisposed(),ht.log1p(this)},t.prototype.sqrt=function(){return this.throwIfDisposed(),ht.sqrt(this)},t.prototype.rsqrt=function(){return this.throwIfDisposed(),ht.rsqrt(this)},t.prototype.square=function(){return this.throwIfDisposed(),ht.square(this)},t.prototype.reciprocal=function(){return this.throwIfDisposed(),ht.reciprocal(this)},t.prototype.abs=function(){return this.throwIfDisposed(),ht.abs(this)},t.prototype.clipByValue=function(t,e){return this.throwIfDisposed(),ht.clipByValue(this,t,e)},t.prototype.relu=function(){return this.throwIfDisposed(),ht.relu(this)},t.prototype.relu6=function(){return this.throwIfDisposed(),ht.relu6(this)},t.prototype.elu=function(){return this.throwIfDisposed(),ht.elu(this)},t.prototype.selu=function(){return this.throwIfDisposed(),ht.selu(this)},t.prototype.leakyRelu=function(t){return void 0===t&&(t=.2),this.throwIfDisposed(),ht.leakyRelu(this,t)},t.prototype.prelu=function(t){return this.throwIfDisposed(),ht.prelu(this,t)},t.prototype.sigmoid=function(){return this.throwIfDisposed(),ht.sigmoid(this)},t.prototype.logSigmoid=function(){return this.throwIfDisposed(),ht.logSigmoid(this)},t.prototype.softplus=function(){return this.throwIfDisposed(),ht.softplus(this)},t.prototype.zerosLike=function(){return this.throwIfDisposed(),ht.zerosLike(this)},t.prototype.onesLike=function(){return this.throwIfDisposed(),ht.onesLike(this)},t.prototype.sin=function(){return this.throwIfDisposed(),ht.sin(this)},t.prototype.cos=function(){return this.throwIfDisposed(),ht.cos(this)},t.prototype.tan=function(){return this.throwIfDisposed(),ht.tan(this)},t.prototype.asin=function(){return this.throwIfDisposed(),ht.asin(this)},t.prototype.acos=function(){return this.throwIfDisposed(),ht.acos(this)},t.prototype.atan=function(){return this.throwIfDisposed(),ht.atan(this)},t.prototype.sinh=function(){return this.throwIfDisposed(),ht.sinh(this)},t.prototype.cosh=function(){return this.throwIfDisposed(),ht.cosh(this)},t.prototype.tanh=function(){return this.throwIfDisposed(),ht.tanh(this)},t.prototype.asinh=function(){return this.throwIfDisposed(),ht.asinh(this)},t.prototype.acosh=function(){return this.throwIfDisposed(),ht.acosh(this)},t.prototype.atanh=function(){return this.throwIfDisposed(),ht.atanh(this)},t.prototype.erf=function(){return this.throwIfDisposed(),ht.erf(this)},t.prototype.round=function(){return this.throwIfDisposed(),ht.round(this)},t.prototype.step=function(t){return void 0===t&&(t=0),this.throwIfDisposed(),ht.step(this,t)},t.prototype.softmax=function(t){return void 0===t&&(t=-1),this.throwIfDisposed(),ht.softmax(this,t)},t.prototype.logSoftmax=function(t){return void 0===t&&(t=-1),this.throwIfDisposed(),ht.logSoftmax(this,t)},t.prototype.resizeBilinear=function(t,e){return void 0===e&&(e=!1),this.throwIfDisposed(),ht.image.resizeBilinear(this,t,e)},t.prototype.resizeNearestNeighbor=function(t,e){return void 0===e&&(e=!1),this.throwIfDisposed(),ht.image.resizeNearestNeighbor(this,t,e)},t.prototype.conv1d=function(t,e,n,r,o,a){return void 0===r&&(r="NWC"),void 0===o&&(o=1),this.throwIfDisposed(),ht.conv1d(this,t,e,n,r,o,a)},t.prototype.conv2d=function(t,e,n,r,o,a){return void 0===r&&(r="NHWC"),void 0===o&&(o=[1,1]),this.throwIfDisposed(),ht.conv2d(this,t,e,n,r,o,a)},t.prototype.conv2dTranspose=function(t,e,n,r,o){return this.throwIfDisposed(),ht.conv2dTranspose(this,t,e,n,r,o)},t.prototype.depthwiseConv2D=function(t,e,n,r,o,a){return void 0===r&&(r="NHWC"),void 0===o&&(o=[1,1]),this.throwIfDisposed(),ht.depthwiseConv2d(this,t,e,n,r,o,a)},t.prototype.separableConv2d=function(t,e,n,r,o,a){return void 0===o&&(o=[1,1]),void 0===a&&(a="NHWC"),this.throwIfDisposed(),ht.separableConv2d(this,t,e,n,r,o,a)},t.prototype.avgPool=function(t,e,n,r){return this.throwIfDisposed(),ht.avgPool(this,t,e,n,r)},t.prototype.maxPool=function(t,e,n,r){return this.throwIfDisposed(),ht.maxPool(this,t,e,n,r)},t.prototype.localResponseNormalization=function(t,e,n,r){return void 0===t&&(t=5),void 0===e&&(e=1),void 0===n&&(n=1),void 0===r&&(r=.5),ht.localResponseNormalization(this,t,e,n,r)},t.prototype.pool=function(t,e,n,r,o){return this.throwIfDisposed(),ht.pool(this,t,e,n,r,o)},t.prototype.variable=function(t,e,n){return void 0===t&&(t=!0),this.throwIfDisposed(),ft().makeVariable(this,t,e,n)},t.prototype.unsortedSegmentSum=function(t,e){return this.throwIfDisposed(),ht.unsortedSegmentSum(this,t,e)},t.prototype.batchToSpaceND=function(t,e){return this.throwIfDisposed(),ht.batchToSpaceND(this,t,e)},t.prototype.spaceToBatchND=function(t,e){return this.throwIfDisposed(),ht.spaceToBatchND(this,t,e)},t.prototype.topk=function(t,e){return void 0===t&&(t=1),void 0===e&&(e=!0),this.throwIfDisposed(),ht.topk(this,t,e)},t.prototype.stridedSlice=function(t,e,n,r,o,a,i,s){return void 0===r&&(r=0),void 0===o&&(o=0),void 0===a&&(a=0),void 0===i&&(i=0),void 0===s&&(s=0),this.throwIfDisposed(),ht.stridedSlice(this,t,e,n,r,o,a,i,s)},t.prototype.depthToSpace=function(t,e){return this.throwIfDisposed(),ht.depthToSpace(this,t,e)},t.prototype.fft=function(){return this.throwIfDisposed(),ht.spectral.fft(this)},t.prototype.ifft=function(){return this.throwIfDisposed(),ht.spectral.ifft(this)},t.prototype.rfft=function(){return this.throwIfDisposed(),ht.spectral.rfft(this)},t.prototype.irfft=function(){return this.throwIfDisposed(),ht.spectral.irfft(this)},t}();Object.defineProperty(dt,Symbol.hasInstance,{value:function(t){return!!t&&null!=t.dataId&&null!=t.shape&&null!=t.dtype}});var vt,mt,gt,yt,bt,xt=function(t){function e(e,n,r,o){var a=t.call(this,e.shape,e.dtype,e.dataId,o)||this;return a.trainable=n,a.name=r,a}return s(e,t),e.prototype.assign=function(t){if(t.dtype!==this.dtype)throw new Error("dtype of the new value ("+t.dtype+") and previous value ("+this.dtype+") must match");if(!I(t.shape,this.shape))throw new Error("shape of the new value ("+t.shape+") and previous value ("+this.shape+") must match");ft().disposeTensor(this),this.dataId=t.dataId,ft().incRef(this,null)},e.prototype.dispose=function(){ft().disposeVariable(this),this.isDisposedInternal=!0},e}(dt);Object.defineProperty(xt,Symbol.hasInstance,{value:function(t){return t instanceof dt&&null!=t.assign&&t.assign instanceof Function}}),function(t){t.R0="R0",t.R1="R1",t.R2="R2",t.R3="R3",t.R4="R4",t.R5="R5",t.R6="R6"}(vt||(vt={})),function(t){t.float32="float32",t.int32="int32",t.bool="int32",t.complex64="complex64"}(mt||(mt={})),function(t){t.float32="float32",t.int32="int32",t.bool="bool",t.complex64="complex64"}(gt||(gt={})),function(t){t.float32="float32",t.int32="float32",t.bool="float32",t.complex64="complex64"}(yt||(yt={})),function(t){t.float32="complex64",t.int32="complex64",t.bool="complex64",t.complex64="complex64"}(bt||(bt={}));var wt={float32:yt,int32:mt,bool:gt,complex64:bt};function Et(t,e){if("string"===t||"string"===e){if("string"===t&&"string"===e)return"string";throw new Error("Can not upcast "+t+" with "+e)}return wt[t][e]}function Ct(t){return Et(t,"int32")}function _t(t,e){if(t.dtype===e.dtype)return[t,e];var n=Et(t.dtype,e.dtype);return[t.cast(n),e.cast(n)]}function kt(t,e){E(t.dtype===e.dtype,(function(){return"The dtypes of the first("+t.dtype+") and second("+e.dtype+") input must match"}))}function Rt(t){var e=[];return function t(e,n,r){if(null!=e)if(e instanceof dt)n.push(e);else if(o=e,Array.isArray(o)||"object"==typeof o){var o,a=e;for(var i in a){var s=a[i];r.has(s)||(r.add(s),t(s,n,r))}}}(t,e,new Set),e}Object.freeze({makeTypesMatch:_t,assertTypesMatch:kt,isTensorInList:function(t,e){for(var n=0;n<e.length;n++)if(e[n].id===t.id)return!0;return!1},getTensorsInContainer:Rt});var It,St=function(){function t(){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}}return t.prototype.dispose=function(){for(var t in this.registeredVariables)this.registeredVariables[t].dispose()},t}(),At=function(){function t(t){this.ENV=t,this.registry={},this.registryFactory={},this.pendingBackendInitId=0,this.state=new St}return t.prototype.ready=function(){return u(this,void 0,void 0,(function(){var t,e,n;return c(this,(function(r){switch(r.label){case 0:if(null!=this.pendingBackendInit)return[2,this.pendingBackendInit.then((function(){}))];if(null!=this.backendInstance)return[2];t=this.getSortedBackends(),e=0,r.label=1;case 1:return e<t.length?(n=t[e],[4,this.initializeBackend(n).success]):[3,5];case 2:return r.sent()?[4,this.setBackend(n)]:[3,4];case 3:return r.sent(),[2];case 4:return e++,[3,1];case 5:throw new Error("Could not initialize any backends, all backend initializations failed.")}}))}))},Object.defineProperty(t.prototype,"backend",{get:function(){if(null!=this.pendingBackendInit)throw new Error("Backend '"+this.backendName+"' has not yet been initialized. Make sure to await tf.ready() before calling other methods");if(null==this.backendInstance){var t=this.initializeBackendsAndReturnBest(),e=t.name;if(t.asyncInit)throw new Error("The highest priority backend '"+e+"' has not yet been initialized. Make sure to await tf.ready() before calling other methods");this.setBackend(e)}return this.backendInstance},enumerable:!0,configurable:!0}),t.prototype.backendNames=function(){return Object.keys(this.registryFactory)},t.prototype.findBackend=function(t){if(!(t in this.registry)){if(!(t in this.registryFactory))return null;if(this.initializeBackend(t).asyncInit)return null}return this.registry[t]},t.prototype.findBackendFactory=function(t){return t in this.registryFactory?this.registryFactory[t].factory:null},t.prototype.registerBackend=function(t,e,n){return void 0===n&&(n=1),!(t in this.registryFactory)&&(this.registryFactory[t]={factory:e,priority:n},!0)},t.prototype.setBackend=function(t){return u(this,void 0,void 0,(function(){var e,n,r;return c(this,(function(o){switch(o.label){case 0:if(null==this.registryFactory[t])throw new Error("Backend name '"+t+"' not found in registry");return this.backendName=t,null!=this.registry[t]?[3,4]:(this.backendInstance=null,e=this.initializeBackend(t),n=e.success,e.asyncInit?[4,n]:[3,2]);case 1:return r=o.sent(),[3,3];case 2:r=n,o.label=3;case 3:if(!r)return[2,!1];o.label=4;case 4:return this.backendInstance=this.registry[t],this.setupRegisteredKernels(),this.profiler=new at(this.backendInstance),[2,!0]}}))}))},t.prototype.setupRegisteredKernels=function(){var t=this;v(this.backendName).forEach((function(e){null!=e.setupFunc&&e.setupFunc(t.backendInstance)}))},t.prototype.disposeRegisteredKernels=function(t){var e=this;v(t).forEach((function(n){null!=n.disposeFunc&&n.disposeFunc(e.registry[t])}))},t.prototype.initializeBackend=function(t){var e=this,n=this.registryFactory[t];if(null==n)throw new Error("Cannot initialize backend "+t+", no registration found.");try{var r=n.factory();if(Promise.resolve(r)===r){var o=++this.pendingBackendInitId,a=r.then((function(n){return!(o<e.pendingBackendInitId||(e.registry[t]=n,e.pendingBackendInit=null,0))})).catch((function(t){return!(o<e.pendingBackendInitId||(e.pendingBackendInit=null,1))}));return this.pendingBackendInit=a,{success:a,asyncInit:!0}}return this.registry[t]=r,{success:!0,asyncInit:!1}}catch(e){return{success:!1,asyncInit:!1}}},t.prototype.removeBackend=function(t){if(!(t in this.registryFactory))throw new Error(t+" backend not found in registry");this.backendName===t&&null!=this.pendingBackendInit&&this.pendingBackendInitId++,t in this.registry&&(this.disposeRegisteredKernels(t),this.registry[t].dispose(),delete this.registry[t]),delete this.registryFactory[t],this.backendName===t&&(this.pendingBackendInit=null,this.backendName=null,this.backendInstance=null)},t.prototype.getSortedBackends=function(){var t=this;if(0===Object.keys(this.registryFactory).length)throw new Error("No backend found in registry.");return Object.keys(this.registryFactory).sort((function(e,n){return t.registryFactory[n].priority-t.registryFactory[e].priority}))},t.prototype.initializeBackendsAndReturnBest=function(){for(var t=this.getSortedBackends(),e=0;e<t.length;e++){var n=t[e],r=this.initializeBackend(n),o=r.success,a=r.asyncInit;if(a||o)return{name:n,asyncInit:a}}throw new Error("Could not initialize any backends, all backend initializations failed.")},t.prototype.moveData=function(t,e){var n=this.state.tensorInfo.get(e),r=n.backend,o=this.readSync(e);r.disposeData(e),n.backend=t,t.move(e,o,n.shape,n.dtype),this.shouldCheckForMemLeaks()&&this.state.numDataMovesStack[this.state.numDataMovesStack.length-1]++},t.prototype.tidy=function(t,e){var n,r=this,o=null;if(null==e){if("function"!=typeof t)throw new Error("Please provide a function to tidy()");e=t}else{if("string"!=typeof t&&!(t instanceof String))throw new Error("When calling with two arguments, the first argument to tidy() must be a string");if("function"!=typeof e)throw new Error("When calling with two arguments, the 2nd argument to tidy() must be a function");o=t}return this.scopedRun((function(){return r.startScope(o)}),(function(){return r.endScope(n)}),(function(){return n=e()}))},t.prototype.scopedRun=function(t,e,n){t();try{var r=n();return e(),r}catch(t){throw e(),t}},t.prototype.nextTensorId=function(){return t.nextTensorId++},t.prototype.nextVariableId=function(){return t.nextVariableId++},t.prototype.clone=function(t){var e=this.makeTensorFromDataId(t.dataId,t.shape,t.dtype),n={x:t};return this.addTapeNode(this.state.activeScope.name,n,[e],(function(t){return{x:function(){return t.toFloat()}}}),[]),e},t.prototype.runKernel=function(t,e,n,r,o){return this.runKernelFunc(null,e,null,t,n,r,o)},t.prototype.shouldCheckForMemLeaks=function(){return this.ENV.getBool("IS_TEST")},t.prototype.checkKernelForMemLeak=function(t,e,n){var r=this.backend.numDataIds(),o=0;n.forEach((function(t){o+="complex64"===t.dtype?3:1}));var a=this.state.numDataMovesStack[this.state.numDataMovesStack.length-1],i=r-e-o-a;if(i>0)throw new Error("Backend '"+this.backendName+"' has an internal memory leak ("+i+" data ids) after running '"+t+"'")},t.prototype.runKernelFunc=function(t,e,n,r,o,a,i){var s,u=this;void 0===a&&(a=[]),void 0===i&&(i=[]);var c,l=[],f=this.isTapeOn(),h=null!=this.state.activeScope?this.state.activeScope.name:"",p=function(t){f&&(l=t.map((function(t){return u.keep(u.clone(t))})))},v=this.state.numBytes,m=this.state.numTensors;this.shouldCheckForMemLeaks()&&this.state.numDataMovesStack.push(0);var g,y=d(r,this.backendName);return c=null!=y?function(){var t=u.backend.numDataIds();g=y.kernelFunc({inputs:e,attrs:o,backend:u.backend});var n=Array.isArray(g)?g:[g];u.shouldCheckForMemLeaks()&&u.checkKernelForMemLeak(h,t,n);var r=n.map((function(t){var e=t.dataId,n=t.shape,r=t.dtype;return u.makeTensorFromDataId(e,n,r)})),s=r.filter((function(t,e){return i[e]}));return p(a.slice().concat(s)),r}:function(){var e=u.backend.numDataIds();g=u.tidy((function(){return t(u.backend,p)}));var n=Array.isArray(g)?g:[g];return u.shouldCheckForMemLeaks()&&u.checkKernelForMemLeak(h,e,n),n},this.scopedRun((function(){return u.state.kernelDepth++}),(function(){return u.state.kernelDepth--}),(function(){s=u.ENV.getBool("DEBUG")?u.profiler.profileKernel(h,e,(function(){return c()})):c()})),f&&this.addTapeNode(h,e,s,n,l),this.state.profiling&&this.state.activeProfile.kernels.push({name:h,bytesAdded:this.state.numBytes-v,totalBytesSnapshot:this.state.numBytes,tensorsAdded:this.state.numTensors-m,totalTensorsSnapshot:this.state.numTensors,inputShapes:Object.keys(e).map((function(t){return e[t].shape})),outputShapes:s.map((function(t){return t.shape}))}),Array.isArray(g)?s:s[0]},t.prototype.makeTensor=function(t,e,n,r){if(null==t)throw new Error("Values passed to engine.makeTensor() are null");n=n||"float32",r=r||this.backend;var o=t;"string"===n&&G(t[0])&&(o=t.map((function(t){return rt(t)})));var a=r.write(o,e,n),i=new dt(e,n,a,this.nextTensorId());if(this.incRef(i,r),"string"===n){var s=this.state.tensorInfo.get(a),u=V(o);this.state.numBytes+=u-s.bytes,s.bytes=u}return i},t.prototype.makeTensorFromDataId=function(t,e,n,r){var o=new dt(e,n=n||"float32",t,this.nextTensorId());return this.incRef(o,r),o},t.prototype.makeVariable=function(t,e,n,r){void 0===e&&(e=!0),n=n||this.nextVariableId().toString(),null!=r&&r!==t.dtype&&(t=t.asType(r));var o=new xt(t,e,n,this.nextTensorId());if(null!=this.state.registeredVariables[o.name])throw new Error("Variable with name "+o.name+" was already registered");return this.state.registeredVariables[o.name]=o,this.incRef(o,this.backend),o},t.prototype.incRef=function(t,e){var n=this.state.tensorInfo.has(t.dataId)?this.state.tensorInfo.get(t.dataId).refCount:0;if(this.state.numTensors++,"string"===t.dtype&&this.state.numStringTensors++,0===n){this.state.numDataBuffers++;var r=0;"complex64"!==t.dtype&&"string"!==t.dtype&&(r=t.size*z(t.dtype)),this.state.tensorInfo.set(t.dataId,{backend:e||this.backend,dtype:t.dtype,shape:t.shape,bytes:r,refCount:0}),this.state.numBytes+=r}this.state.tensorInfo.get(t.dataId).refCount++,t instanceof xt||this.track(t)},t.prototype.disposeTensor=function(t){if(this.state.tensorInfo.has(t.dataId)){this.state.numTensors--,"string"===t.dtype&&this.state.numStringTensors--;var e=this.state.tensorInfo.get(t.dataId);e.refCount<=1?("complex64"!==t.dtype&&(this.state.numBytes-=e.bytes),this.state.numDataBuffers--,e.backend.disposeData(t.dataId),this.state.tensorInfo.delete(t.dataId)):this.state.tensorInfo.get(t.dataId).refCount--}},t.prototype.disposeVariables=function(){for(var t in this.state.registeredVariables){var e=this.state.registeredVariables[t];this.disposeVariable(e)}},t.prototype.disposeVariable=function(t){this.disposeTensor(t),null!=this.state.registeredVariables[t.name]&&delete this.state.registeredVariables[t.name]},t.prototype.memory=function(){var t=this.backend.memory();return t.numTensors=this.state.numTensors,t.numDataBuffers=this.state.numDataBuffers,t.numBytes=this.state.numBytes,this.state.numStringTensors>0&&(t.unreliable=!0,null==t.reasons&&(t.reasons=[]),t.reasons.push("Memory usage by string tensors is approximate (2 bytes per character)")),t},t.prototype.profile=function(t){return u(this,void 0,void 0,(function(){var e,n;return c(this,(function(r){return this.state.profiling=!0,e=this.state.numBytes,n=this.state.numTensors,this.state.activeProfile.kernels=[],this.state.activeProfile.result=t(),this.state.profiling=!1,this.state.activeProfile.peakBytes=Math.max.apply(Math,this.state.activeProfile.kernels.map((function(t){return t.totalBytesSnapshot}))),this.state.activeProfile.newBytes=this.state.numBytes-e,this.state.activeProfile.newTensors=this.state.numTensors-n,[2,this.state.activeProfile]}))}))},t.prototype.isTapeOn=function(){return this.state.gradientDepth>0&&0===this.state.kernelDepth},t.prototype.addTapeNode=function(t,e,n,r,o){var a=this,i={id:this.state.nextTapeNodeId++,name:t,inputs:e,outputs:n,saved:o};null!=r&&(i.gradient=function(t){return t=t.map((function(t,e){if(null==t){var r=n[e],o=tt(r.size,r.dtype);return a.makeTensor(o,r.shape,r.dtype)}return t})),r(t.length>1?t:t[0],o)}),this.state.activeTape.push(i)},t.prototype.keep=function(t){return t.kept=!0,t},t.prototype.startTape=function(){0===this.state.gradientDepth&&(this.state.activeTape=[]),this.state.gradientDepth++},t.prototype.endTape=function(){this.state.gradientDepth--},t.prototype.startScope=function(t){var e={track:[],name:"unnamed scope",id:this.state.nextScopeId++};t&&(e.name=t),this.state.scopeStack.push(e),this.state.activeScope=e},t.prototype.endScope=function(t){for(var e=this,n=Rt(t),r=new Set(n.map((function(t){return t.id}))),o=0;o<this.state.activeScope.track.length;o++){var a=this.state.activeScope.track[o];a.kept||r.has(a.id)||a.dispose()}var i=this.state.scopeStack.pop();this.state.activeScope=0===this.state.scopeStack.length?null:this.state.scopeStack[this.state.scopeStack.length-1],n.forEach((function(t){t.kept||t.scopeId!==i.id||e.track(t)}))},t.prototype.gradients=function(t,e,n,r){var o=this;if(void 0===r&&(r=!1),E(e.length>0,(function(){return"gradients() received an empty list of xs."})),null!=n&&"float32"!==n.dtype)throw new Error("dy must have 'float32' dtype, but has '"+n.dtype+"'");var a=this.scopedRun((function(){return o.startTape()}),(function(){return o.endTape()}),(function(){return o.tidy("forward",t)}));E(a instanceof dt,(function(){return"The result y returned by f() must be a tensor."}));var i=function(t,e,n){for(var r={},o={},a=0;a<e.length;a++)r[e[a].id]=!0;for(a=0;a<t.length;a++){var i=(d=t[a]).inputs;for(var s in i){for(var u=i[s],c=!1,l=0;l<e.length;l++)if(r[u.id]){d.outputs.forEach((function(t){return r[t.id]=!0})),c=!0,o[d.id]=!0;break}if(c)break}}var f={};f[n.id]=!0;var h={};for(a=t.length-1;a>=0;a--)for(i=(d=t[a]).inputs,l=0;l<d.outputs.length;l++)if(f[d.outputs[l].id]){for(var s in i)f[i[s].id]=!0,h[d.id]=!0;break}var p=[];for(a=0;a<t.length;a++){var d;if(o[(d=t[a]).id]&&h[d.id]){var v={};for(var s in d.inputs){var m=d.inputs[s];r[m.id]&&(v[s]=m)}var g=Object.assign({},d);g.inputs=v,g.outputs=d.outputs,p.push(g)}}return p}(this.state.activeTape,e,a);if(!r&&0===i.length&&e.length>0)throw new Error("Cannot compute gradient of y=f(x) with respect to x. Make sure that the f you passed encloses all operations that lead from x to y.");return this.tidy("backward",(function(){var t,r,s={};s[a.id]=null==n?(r=Z(R(t=a.shape),"float32"),Ot.makeTensor(r,t,"float32")):n,function(t,e,n){for(var r=function(r){var o=e[r],a=[];if(o.outputs.forEach((function(e){var n=t[e.id];null!=n?a.push(n):a.push(null)})),null==o.gradient)throw new Error("Cannot compute gradient: gradient function not found for "+o.name+".");var i=o.gradient(a),s=function(e){if(!(e in i))throw new Error("Cannot backprop through input "+e+". Available gradients found: "+Object.keys(i)+".");var r=n((function(){return i[e]()}));if("float32"!==r.dtype)throw new Error("Error in gradient for op "+o.name+". The gradient of input "+e+" must have 'float32' dtype, but has '"+r.dtype+"'");var a=o.inputs[e];if(!I(r.shape,a.shape))throw new Error("Error in gradient for op "+o.name+". The gradient of input '"+e+"' has shape '"+r.shape+"', which does not match the shape of the input '"+a.shape+"'");if(null==t[a.id])t[a.id]=r;else{var s=t[a.id];t[a.id]=s.add(r),s.dispose()}};for(var u in o.inputs)s(u)},o=e.length-1;o>=0;o--)r(o)}(s,i,(function(t){return o.tidy(t)}));var u=e.map((function(t){return s[t.id]}));return 0===o.state.gradientDepth&&(o.state.activeTape.forEach((function(t){for(var e=0,n=t.saved;e<n.length;e++)n[e].dispose()})),o.state.activeTape=null),{value:a,grads:u}}))},t.prototype.customGrad=function(t){var e=this;return E(X(t),(function(){return"The f passed in customGrad(f) must be a function."})),function(){for(var n,r=[],o=0;o<arguments.length;o++)r[o]=arguments[o];E(r.every((function(t){return t instanceof dt})),(function(){return"The args passed in customGrad(f)(x1, x2,...) must all be tensors"}));var a={};return r.forEach((function(t,e){a[e]=t})),e.runKernelFunc((function(e,o){return E((n=t.apply(void 0,r.concat([o]))).value instanceof dt,(function(){return"The function f passed in customGrad(f) must return an object where `obj.value` is a tensor"})),E(X(n.gradFunc),(function(){return"The function f passed in customGrad(f) must return an object where `obj.gradFunc` is a function."})),n.value}),a,(function(t,e){var o=n.gradFunc(t,e),a=Array.isArray(o)?o:[o];E(a.length===r.length,(function(){return"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(...)."})),E(a.every((function(t){return t instanceof dt})),(function(){return"The function f passed in customGrad(f) must return an object where `obj.gradFunc` is a function that returns a list of only tensors."}));var i={};return a.forEach((function(t,e){i[e]=function(){return t}})),i}))}},t.prototype.readSync=function(t){return this.state.tensorInfo.get(t).backend.readSync(t)},t.prototype.read=function(t){return this.state.tensorInfo.get(t).backend.read(t)},t.prototype.time=function(t){return u(this,void 0,void 0,(function(){var e,n;return c(this,(function(r){switch(r.label){case 0:return e=et(),[4,this.backend.time(t)];case 1:return(n=r.sent()).wallMs=et()-e,[2,n]}}))}))},t.prototype.track=function(t){return null!=this.state.activeScope&&(t.scopeId=this.state.activeScope.id,this.state.activeScope.track.push(t)),t},Object.defineProperty(t.prototype,"registeredVariables",{get:function(){return this.state.registeredVariables},enumerable:!0,configurable:!0}),t.prototype.reset=function(){for(var t in this.pendingBackendInitId++,this.state.dispose(),this.ENV.reset(),this.state=new St,this.registry)this.disposeRegisteredKernels(t),this.registry[t].dispose(),delete this.registry[t];this.backendName=null,this.backendInstance=null,this.pendingBackendInit=null},t.nextTensorId=0,t.nextVariableId=0,t}(),Ot=function(){var e=function(){if(null==It){var e=void 0;if("undefined"!=typeof window)e=window;else if(void 0!==t)e=t;else if(void 0!==r)e=r;else{if("undefined"==typeof self)throw new Error("Could not find a global object");e=self}It=e}return It}();if(null==e._tfengine){var n=new l(e);e._tfengine=new At(n)}return function(t){h=t}(e._tfengine.ENV),ft=function(){return e._tfengine},e._tfengine}();function Tt(){return"undefined"!=typeof window&&null!=window.document||"undefined"!=typeof WorkerGlobalScope}var Dt=f();Dt.registerFlag("DEBUG",(function(){return!1}),(function(t){})),Dt.registerFlag("IS_BROWSER",(function(){return Tt()})),Dt.registerFlag("IS_NODE",(function(){return void 0!==r&&void 0!==r.versions&&void 0!==r.versions.node})),Dt.registerFlag("IS_CHROME",(function(){return"undefined"!=typeof navigator&&null!=navigator&&null!=navigator.userAgent&&/Chrome/.test(navigator.userAgent)&&/Google Inc/.test(navigator.vendor)})),Dt.registerFlag("PROD",(function(){return!1})),Dt.registerFlag("TENSORLIKE_CHECK_SHAPE_CONSISTENCY",(function(){return Dt.getBool("DEBUG")})),Dt.registerFlag("DEPRECATION_WARNINGS_ENABLED",(function(){return!0})),Dt.registerFlag("IS_TEST",(function(){return!1}));var Nt,Ft,Mt,Pt={},Bt={alpha:!1,antialias:!1,premultipliedAlpha:!1,preserveDrawingBuffer:!1,depth:!1,stencil:!1,failIfMajorPerformanceCaveat:!0};function Lt(t,e){Pt[t]=e}function Wt(t){t in Pt||(Pt[t]=function(t){if(1!==t&&2!==t)throw new Error("Cannot get WebGL rendering context, WebGL is disabled.");var e=function(t){if("undefined"!=typeof OffscreenCanvas&&2===t)return new OffscreenCanvas(300,150);if("undefined"!=typeof document)return document.createElement("canvas");throw new Error("Cannot create a canvas in this context")}(t);return e.addEventListener("webglcontextlost",(function(e){e.preventDefault(),delete Pt[t]}),!1),1===t?e.getContext("webgl",Bt)||e.getContext("experimental-webgl",Bt):e.getContext("webgl2",Bt)}(t));var e=Pt[t];return e.isContextLost()?(delete Pt[t],Wt(t)):(e.disable(e.DEPTH_TEST),e.disable(e.STENCIL_TEST),e.disable(e.BLEND),e.disable(e.DITHER),e.disable(e.POLYGON_OFFSET_FILL),e.disable(e.SAMPLE_COVERAGE),e.enable(e.SCISSOR_TEST),e.enable(e.CULL_FACE),e.cullFace(e.BACK),Pt[t])}function Ut(t,e){return[e,t]}function jt(t){var e=R(t);return O(Math.ceil(e/4))}function zt(t,e){return[Math.max(1,Math.ceil(e/2)),Math.max(1,Math.ceil(t/2))]}function Vt(t,e){var n,r,o,a,i,s,u,c,l,h=t;return 2===f().getNumber("WEBGL_VERSION")?(n=h.R32F,r=h.R16F,o=h.RGBA16F,a=h.RGBA32F,i=h.RED,s=4,u=1,c=h.HALF_FLOAT,l=h.FLOAT):(n=t.RGBA,r=t.RGBA,o=t.RGBA,a=h.RGBA,i=t.RGBA,s=4,u=4,c=null!=e?e.HALF_FLOAT_OES:null,l=t.FLOAT),{internalFormatFloat:n,internalFormatHalfFloat:r,internalFormatPackedHalfFloat:o,internalFormatPackedFloat:a,textureFormatFloat:i,downloadTextureFormat:t.RGBA,downloadUnpackNumChannels:s,defaultNumChannels:u,textureTypeHalfFloat:c,textureTypeFloat:l}}function Gt(t,e,n){var r=n();return e&&function(t){var e=t.getError();if(e!==t.NO_ERROR)throw new Error("WebGL Error: "+qt(t,e))}(t),r}!function(t){t[t.DENSE=0]="DENSE",t[t.SHARED_BATCH=1]="SHARED_BATCH"}(Nt||(Nt={})),function(t){t[t.RENDER=0]="RENDER",t[t.UPLOAD=1]="UPLOAD",t[t.PIXELS=2]="PIXELS",t[t.DOWNLOAD=3]="DOWNLOAD"}(Ft||(Ft={})),function(t){t[t.UNPACKED_FLOAT16=0]="UNPACKED_FLOAT16",t[t.UNPACKED_FLOAT32=1]="UNPACKED_FLOAT32",t[t.PACKED_4X1_UNSIGNED_BYTE=2]="PACKED_4X1_UNSIGNED_BYTE",t[t.PACKED_2X2_FLOAT32=3]="PACKED_2X2_FLOAT32",t[t.PACKED_2X2_FLOAT16=4]="PACKED_2X2_FLOAT16"}(Mt||(Mt={}));function Ht(t){return!!(f().getBool("WEBGL_RENDER_FLOAT32_ENABLED")||0===t||5.96e-8<Math.abs(t)&&Math.abs(t)<65504)}function qt(t,e){switch(e){case t.NO_ERROR:return"NO_ERROR";case t.INVALID_ENUM:return"INVALID_ENUM";case t.INVALID_VALUE:return"INVALID_VALUE";case t.INVALID_OPERATION:return"INVALID_OPERATION";case t.INVALID_FRAMEBUFFER_OPERATION:return"INVALID_FRAMEBUFFER_OPERATION";case t.OUT_OF_MEMORY:return"OUT_OF_MEMORY";case t.CONTEXT_LOST_WEBGL:return"CONTEXT_LOST_WEBGL";default:return"Unknown error code "+e}}function Kt(t,e,n){return me(t,e,(function(){return t.getExtension(n)}),'Extension "'+n+'" not supported on this browser.')}function Xt(t,e,n){var r=me(t,e,(function(){return t.createShader(t.VERTEX_SHADER)}),"Unable to create vertex WebGLShader.");if(Gt(t,e,(function(){return t.shaderSource(r,n)})),Gt(t,e,(function(){return t.compileShader(r)})),!1===t.getShaderParameter(r,t.COMPILE_STATUS))throw new Error("Failed to compile vertex shader.");return r}function $t(t,e,n){var r=me(t,e,(function(){return t.createShader(t.FRAGMENT_SHADER)}),"Unable to create fragment WebGLShader.");if(Gt(t,e,(function(){return t.shaderSource(r,n)})),Gt(t,e,(function(){return t.compileShader(r)})),!1===t.getShaderParameter(r,t.COMPILE_STATUS))throw function(t,e){var n=Qt.exec(e);if(null!=n){for(var r=+n[1],o=t.split("\n"),a=o.length.toString().length+2,i=o.map((function(t,e){return T((e+1).toString(),a)+t})),s=0,u=0;u<i.length;u++)s=Math.max(i[u].length,s);i.slice(0,r-1),i.slice(r-1,r),i.slice(r)}}(n,t.getShaderInfoLog(r)),new Error("Failed to compile fragment shader.");return r}var Yt,Jt,Qt=/ERROR: [0-9]+:([0-9]+):/g;function Zt(t,e){return me(t,e,(function(){return t.createProgram()}),"Unable to create WebGLProgram.")}function te(t,e,n){if(Gt(t,e,(function(){return t.linkProgram(n)})),!1===t.getProgramParameter(n,t.LINK_STATUS))throw new Error("Failed to link vertex and fragment shaders.")}function ee(t,e,n){if(Gt(t,e,(function(){return t.validateProgram(n)})),!1===t.getProgramParameter(n,t.VALIDATE_STATUS))throw new Error("Shader program validation failed.")}function ne(t,e,n){var r=me(t,e,(function(){return t.createBuffer()}),"Unable to create WebGLBuffer");return Gt(t,e,(function(){return t.bindBuffer(t.ARRAY_BUFFER,r)})),Gt(t,e,(function(){return t.bufferData(t.ARRAY_BUFFER,n,t.STATIC_DRAW)})),r}function re(t,e,n){var r=me(t,e,(function(){return t.createBuffer()}),"Unable to create WebGLBuffer");return Gt(t,e,(function(){return t.bindBuffer(t.ELEMENT_ARRAY_BUFFER,r)})),Gt(t,e,(function(){return t.bufferData(t.ELEMENT_ARRAY_BUFFER,n,t.STATIC_DRAW)})),r}function oe(t,e){return me(t,e,(function(){return t.createTexture()}),"Unable to create WebGLTexture.")}function ae(t,e){var n=f().getNumber("WEBGL_MAX_TEXTURE_SIZE");if(t<=0||e<=0){var r="["+t+"x"+e+"]";throw new Error("Requested texture size "+r+" is invalid.")}if(t>n||e>n)throw r="["+t+"x"+e+"]",new Error("Requested texture size "+r+" greater than WebGL maximum on this browser / GPU ["+n+"x"+n+"].")}function ie(t,e){return me(t,e,(function(){return t.createFramebuffer()}),"Unable to create WebGLFramebuffer.")}function se(t,e,n,r,o,a,i,s){var u=t.getAttribLocation(n,r);return-1!==u&&(Gt(t,e,(function(){return t.bindBuffer(t.ARRAY_BUFFER,o)})),Gt(t,e,(function(){return t.vertexAttribPointer(u,a,t.FLOAT,!1,i,s)})),Gt(t,e,(function(){return t.enableVertexAttribArray(u)})),!0)}function ue(t,e,n,r){ge(t,r),Gt(t,e,(function(){return t.activeTexture(t.TEXTURE0+r)})),Gt(t,e,(function(){return t.bindTexture(t.TEXTURE_2D,n)}))}function ce(t,e,n,r){return me(t,e,(function(){return t.getUniformLocation(n,r)}),'uniform "'+r+'" not present in program.')}function le(t,e,n){return t.getUniformLocation(e,n)}function fe(t,e,n,r,o,a){Gt(t,e,(function(){return ue(t,e,r,a)})),Gt(t,e,(function(){return t.uniform1i(o,a)}))}function he(t,e,n,r){Gt(t,e,(function(){return t.bindFramebuffer(t.FRAMEBUFFER,r)})),Gt(t,e,(function(){return t.framebufferTexture2D(t.FRAMEBUFFER,t.COLOR_ATTACHMENT0,t.TEXTURE_2D,n,0)}))}function pe(t,e,n){Gt(t,e,(function(){return t.bindFramebuffer(t.FRAMEBUFFER,n)})),Gt(t,e,(function(){return t.framebufferTexture2D(t.FRAMEBUFFER,t.COLOR_ATTACHMENT0,t.TEXTURE_2D,null,0)}))}function de(t){var e=t.checkFramebufferStatus(t.FRAMEBUFFER);if(e!==t.FRAMEBUFFER_COMPLETE)throw new Error("Error binding framebuffer: "+ve(t,e))}function ve(t,e){switch(e){case t.FRAMEBUFFER_INCOMPLETE_ATTACHMENT:return"FRAMEBUFFER_INCOMPLETE_ATTACHMENT";case t.FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT:return"FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT";case t.FRAMEBUFFER_INCOMPLETE_DIMENSIONS:return"FRAMEBUFFER_INCOMPLETE_DIMENSIONS";case t.FRAMEBUFFER_UNSUPPORTED:return"FRAMEBUFFER_UNSUPPORTED";default:return"unknown error "+e}}function me(t,e,n,r){var o=Gt(t,e,(function(){return n()}));if(null==o)throw new Error(r);return o}function ge(t,e){var n=t.MAX_COMBINED_TEXTURE_IMAGE_UNITS-1,r=e+t.TEXTURE0;if(r<t.TEXTURE0||r>n)throw new Error("textureUnit must be in [gl.TEXTURE0, gl.TEXTURE"+n+"].")}function ye(t,e){return void 0===e&&(e=2),R(t.slice(0,t.length-e))}function be(t){if(0===t.length)throw Error("Cannot get rows and columns of an empty shape array.");return[t.length>1?t[t.length-2]:1,t[t.length-1]]}function xe(t){var e=[1,1,1];return 0===t.length||1===t.length&&1===t[0]||(e=[ye(t)].concat(be(t))),e}function we(t,e){var n;void 0===e&&(e=!1);var r=f().getNumber("WEBGL_MAX_TEXTURE_SIZE");if(e&&(r*=2,1===(t=t.map((function(e,n){return n>=t.length-2?x(t[n]):t[n]}))).length&&(t=[2,t[0]])),2!==t.length){var o=M(t);t=o.newShape}var a=R(t);if(t.length<=1&&a<=r)return[1,a];if(2===t.length&&t[0]<=r&&t[1]<=r)return t;if(3===t.length&&t[0]*t[1]<=r&&t[2]<=r)return[t[0]*t[1],t[2]];if(3===t.length&&t[0]<=r&&t[1]*t[2]<=r)return[t[0],t[1]*t[2]];if(4===t.length&&t[0]*t[1]*t[2]<=r&&t[3]<=r)return[t[0]*t[1]*t[2],t[3]];if(4===t.length&&t[0]<=r&&t[1]*t[2]*t[3]<=r)return[t[0],t[1]*t[2]*t[3]];if(e){var i=ye(t),s=2,u=2;return t.length&&(s=(n=be(t))[0],u=n[1]),O(a=i*(s/2)*(u/2)).map((function(t){return 2*t}))}return O(a)}function Ee(t){return t%2==0}function Ce(t,e){if(I(t=t.slice(-2),e=e.slice(-2)))return!0;if(!t.length||!e.length)return!0;if(0===t[0]||0===t[1]||0===e[0]||0===e[1])return!0;if(t.length!==e.length){var n=t.slice(-1)[0],r=e.slice(-1)[0];if(n===r)return!0;if(Ee(n)&&Ee(r)&&(1===t[0]||1===e[0]))return!0}return t[1]===e[1]&&Ee(t[0])&&Ee(e[0])}function _e(t){if(null==Yt){var e=Wt(t);Yt=e.getParameter(e.MAX_TEXTURE_SIZE)}return Yt}function ke(t){if(null==Jt){var e=Wt(t);Jt=e.getParameter(e.MAX_TEXTURE_IMAGE_UNITS)}return Math.min(16,Jt)}function Re(t){if(0===t)return 0;var e=Wt(t);return Ie(e,"EXT_disjoint_timer_query_webgl2")&&2===t?2:Ie(e,"EXT_disjoint_timer_query")?1:0}function Ie(t,e){return null!=t.getExtension(e)}function Se(t){try{if(null!=Wt(t))return!0}catch(t){return!1}return!1}function Ae(t){if(0===t)return!1;var e=Wt(t);if(1===t){if(!Ie(e,"OES_texture_float"))return!1}else if(!Ie(e,"EXT_color_buffer_float"))return!1;return Te(e)}function Oe(t){if(0===t)return!1;var e=Wt(t);if(1!==t){if(Ie(e,"EXT_color_buffer_float"))return Te(e);if(Ie(e,"EXT_color_buffer_half_float")){var n=e.getExtension("EXT_color_buffer_half_float");return function(t,e){var n=Vt(t,e),r=t.createTexture();t.bindTexture(t.TEXTURE_2D,r),t.texImage2D(t.TEXTURE_2D,0,n.internalFormatHalfFloat,1,1,0,n.textureFormatFloat,n.textureTypeHalfFloat,null);var o=t.createFramebuffer();t.bindFramebuffer(t.FRAMEBUFFER,o),t.framebufferTexture2D(t.FRAMEBUFFER,t.COLOR_ATTACHMENT0,t.TEXTURE_2D,r,0);var a=t.checkFramebufferStatus(t.FRAMEBUFFER)===t.FRAMEBUFFER_COMPLETE;return t.bindTexture(t.TEXTURE_2D,null),t.bindFramebuffer(t.FRAMEBUFFER,null),t.deleteTexture(r),t.deleteFramebuffer(o),a}(e,n)}return!1}return!!Ie(e,"OES_texture_float")&&!!Ie(e,"WEBGL_color_buffer_float")&&Te(e)}function Te(t){var e=Vt(t),n=t.createTexture();t.bindTexture(t.TEXTURE_2D,n),t.texImage2D(t.TEXTURE_2D,0,e.internalFormatFloat,1,1,0,e.textureFormatFloat,e.textureTypeFloat,null);var r=t.createFramebuffer();t.bindFramebuffer(t.FRAMEBUFFER,r),t.framebufferTexture2D(t.FRAMEBUFFER,t.COLOR_ATTACHMENT0,t.TEXTURE_2D,n,0);var o=t.checkFramebufferStatus(t.FRAMEBUFFER)===t.FRAMEBUFFER_COMPLETE;return t.bindTexture(t.TEXTURE_2D,null),t.bindFramebuffer(t.FRAMEBUFFER,null),t.deleteTexture(n),t.deleteFramebuffer(r),o}function De(t){return 2===t&&null!=Wt(t).fenceSync}var Ne=Object.freeze({callAndCheck:Gt,canBeRepresented:Ht,getWebGLErrorMessage:qt,getExtensionOrThrow:Kt,createVertexShader:Xt,createFragmentShader:$t,createProgram:Zt,linkProgram:te,validateProgram:ee,createStaticVertexBuffer:ne,createStaticIndexBuffer:re,getNumChannels:function(){return 2===f().getNumber("WEBGL_VERSION")?1:4},createTexture:oe,validateTextureSize:ae,createFramebuffer:ie,bindVertexBufferToProgramAttribute:se,bindTextureUnit:ue,unbindTextureUnit:function(t,e,n){ge(t,n),Gt(t,e,(function(){return t.activeTexture(t.TEXTURE0+n)})),Gt(t,e,(function(){return t.bindTexture(t.TEXTURE_2D,null)}))},getProgramUniformLocationOrThrow:ce,getProgramUniformLocation:le,bindTextureToProgramUniformSampler:fe,bindCanvasToFramebuffer:function(t,e){Gt(t,e,(function(){return t.bindFramebuffer(t.FRAMEBUFFER,null)})),Gt(t,e,(function(){return t.viewport(0,0,t.canvas.width,t.canvas.height)})),Gt(t,e,(function(){return t.scissor(0,0,t.canvas.width,t.canvas.height)}))},bindColorTextureToFramebuffer:he,unbindColorTextureFromFramebuffer:pe,validateFramebuffer:de,getFramebufferErrorMessage:ve,getBatchDim:ye,getRowsCols:be,getShapeAs3D:xe,getTextureShapeFromLogicalShape:we,isReshapeFree:Ce,getWebGLMaxTextureSize:_e,resetMaxTextureSize:function(){Yt=null},resetMaxTexturesInShader:function(){Jt=null},getMaxTexturesInShader:ke,getWebGLDisjointQueryTimerVersion:Re,hasExtension:Ie,isWebGLVersionEnabled:Se,isCapableOfRenderingToFloatTexture:Ae,isDownloadFloatTextureEnabled:Oe,isWebGLFenceEnabled:De}),Fe=f();function Me(t){f().getBool("DEPRECATION_WARNINGS_ENABLED")}function Pe(t,e){return Ot.tidy(t,e)}function Be(t){Rt(t).forEach((function(t){return t.dispose()}))}function Le(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];f().getBool("IS_TEST")}function We(t,e){var n=t;if(j(t))return"string"===e?[]:[t.length];if(!Array.isArray(t))return[];for(var r=[];Array.isArray(n)||j(n)&&"string"!==e;)r.push(n.length),n=n[0];return Array.isArray(t)&&f().getBool("TENSORLIKE_CHECK_SHAPE_CONSISTENCY")&&function t(e,n,r){if(r=r||[],Array.isArray(e)||j(e)){E(n.length>0,(function(){return"Element arr["+r.join("][")+"] should be a primitive, but is an array of "+e.length+" elements"})),E(e.length===n[0],(function(){return"Element arr["+r.join("][")+"] should have "+n[0]+" elements, but has "+e.length+" elements"}));for(var o=n.slice(1),a=0;a<e.length;++a)t(e[a],o,r.concat(a))}else E(0===n.length,(function(){return"Element arr["+r.join("][")+"] is a primitive, but should be an array/TypedArray of "+n[0]+" elements"}))}(t,r,[]),r}function Ue(t,e,n,r){if(null!=t&&("numeric"!==t&&t!==e||"numeric"===t&&"string"===e))throw new Error("Argument '"+n+"' passed to '"+r+"' must be "+t+" tensor, but got "+e+" tensor")}function je(t,e,n,r){if(void 0===r&&(r="numeric"),t instanceof dt)return Ue(r,t.dtype,e,n),t;var o=K(t);if("string"!==o&&["bool","int32","float32"].indexOf(r)>=0&&(o=r),Ue(r,o,e,n),null==t||!j(t)&&!Array.isArray(t)&&"number"!=typeof t&&"boolean"!=typeof t&&"string"!=typeof t){var a=null==t?"null":t.constructor.name;throw new Error("Argument '"+e+"' passed to '"+n+"' must be a Tensor or TensorLike, but got '"+a+"'")}var i=We(t,o);j(t)||Array.isArray(t)||(t=[t]);var s="string"!==o?J(t,o,f().getBool("DEBUG")):k(t,[],!0);return Ot.makeTensor(s,i,o)}function ze(t,e,n,r){if(void 0===r&&(r="numeric"),!Array.isArray(t))throw new Error("Argument "+e+" passed to "+n+" must be a `Tensor[]` or `TensorLike[]`");return t.map((function(t,r){return je(t,e+"["+r+"]",n)}),r)}function Ve(t,e){for(var n=0;n<t.length;++n)if(t[t.length-n-1]!==e-1-n)return!1;return!0}function Ge(t,e,n){for(var r=t.length+e.length,o=[],a=0,i=0,s=0;s<r;s++)-1===n.indexOf(s)?o.push(t[a++]):o.push(e[i++]);return o}function He(t,e){for(var n=[],r=t.length,o=0;o<r;o++)-1===e.indexOf(o)&&n.push(t[o]);return[n,e.map((function(e){return t[e]}))]}function qe(t,e){return Ge(t,e.map((function(t){return 1})),e)}function Ke(t,e,n){E(Ve(e,n),(function(){return t+" supports only inner-most axes for now. Got axes "+e+" and rank-"+n+" input."}))}function Xe(t,e){if(Ve(t,e))return null;for(var n=[],r=0;r<e;++r)-1===t.indexOf(r)&&n.push(r);return t.forEach((function(t){return n.push(t)})),n}function $e(t){return t.map((function(t,e){return[e,t]})).sort((function(t,e){return t[1]-e[1]})).map((function(t){return t[0]}))}function Ye(t,e){for(var n=[],r=e-t;r<e;++r)n.push(r);return n}function Je(t,e){var n=t[0].length;t.forEach((function(t,e){E(t.length===n,(function(){return"Error in concat"+n+"D: rank of tensors["+e+"] must be the same as the rank of the rest ("+n+")"}))})),E(e>=0&&e<n,(function(){return"Error in concat"+n+"D: axis must be between 0 and "+(n-1)+"."}));var r=t[0];t.forEach((function(t,o){for(var a=0;a<n;a++)E(a===e||t[a]===r[a],(function(){return"Error in concat"+n+"D: Shape of tensors["+o+"] ("+t+") does not match the shape of the rest ("+r+") along the non-concatenated axis "+o+"."}))}))}function Qe(t,e){for(var n=t[0].slice(),r=1;r<t.length;r++)n[e]+=t[r][e];return n}function Ze(t){var e=Object.keys(t);if(1!==e.length)throw new Error("Please provide an object with a single key (operation name) mapping to a function. Got an object with "+e.length+" keys.");var n=e[0],r=t[n];n.endsWith("_")&&(n=n.substring(0,n.length-1));var o=function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];Ot.startScope(n);try{var o=r.apply(void 0,t);return Ot.endScope(o),o}catch(t){throw Ot.endScope(null),t}};return Object.defineProperty(o,"name",{value:n,configurable:!0}),o}Fe.registerFlag("HAS_WEBGL",(function(){return Fe.getNumber("WEBGL_VERSION")>0})),Fe.registerFlag("WEBGL_VERSION",(function(){return Se(2)?2:Se(1)?1:0})),Fe.registerFlag("WEBGL_BUFFER_SUPPORTED",(function(){return 2===Fe.get("WEBGL_VERSION")})),Fe.registerFlag("WEBGL_CPU_FORWARD",(function(){return!0})),Fe.registerFlag("WEBGL_FORCE_F16_TEXTURES",(function(){return!1})),Fe.registerFlag("WEBGL_PACK",(function(){return Fe.getBool("HAS_WEBGL")})),Fe.registerFlag("WEBGL_PACK_NORMALIZATION",(function(){return Fe.getBool("WEBGL_PACK")})),Fe.registerFlag("WEBGL_PACK_CLIP",(function(){return Fe.getBool("WEBGL_PACK")})),Fe.registerFlag("WEBGL_PACK_DEPTHWISECONV",(function(){return!1})),Fe.registerFlag("WEBGL_PACK_BINARY_OPERATIONS",(function(){return Fe.getBool("WEBGL_PACK")})),Fe.registerFlag("WEBGL_PACK_UNARY_OPERATIONS",(function(){return Fe.getBool("WEBGL_PACK")})),Fe.registerFlag("WEBGL_PACK_ARRAY_OPERATIONS",(function(){return Fe.getBool("WEBGL_PACK")})),Fe.registerFlag("WEBGL_PACK_IMAGE_OPERATIONS",(function(){return Fe.getBool("WEBGL_PACK")})),Fe.registerFlag("WEBGL_PACK_REDUCE",(function(){return Fe.getBool("WEBGL_PACK")})),Fe.registerFlag("WEBGL_LAZILY_UNPACK",(function(){return Fe.getBool("WEBGL_PACK")})),Fe.registerFlag("WEBGL_CONV_IM2COL",(function(){return Fe.getBool("WEBGL_PACK")})),Fe.registerFlag("WEBGL_MAX_TEXTURE_SIZE",(function(){return _e(Fe.getNumber("WEBGL_VERSION"))})),Fe.registerFlag("WEBGL_MAX_TEXTURES_IN_SHADER",(function(){return ke(Fe.getNumber("WEBGL_VERSION"))})),Fe.registerFlag("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION",(function(){var t=Fe.getNumber("WEBGL_VERSION");return 0===t?0:Re(t)})),Fe.registerFlag("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE",(function(){return Fe.getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")>0&&(t=navigator.userAgent||navigator.vendor||window.opera,!(/(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))));var t})),Fe.registerFlag("WEBGL_RENDER_FLOAT32_CAPABLE",(function(){return Ae(Fe.getNumber("WEBGL_VERSION"))})),Fe.registerFlag("WEBGL_RENDER_FLOAT32_ENABLED",(function(){return!Fe.getBool("WEBGL_FORCE_F16_TEXTURES")&&Fe.getBool("WEBGL_RENDER_FLOAT32_CAPABLE")})),Fe.registerFlag("WEBGL_DOWNLOAD_FLOAT_ENABLED",(function(){return Oe(Fe.getNumber("WEBGL_VERSION"))})),Fe.registerFlag("WEBGL_FENCE_API_ENABLED",(function(){return De(Fe.getNumber("WEBGL_VERSION"))})),Fe.registerFlag("WEBGL_SIZE_UPLOAD_UNIFORM",(function(){return Fe.getBool("WEBGL_RENDER_FLOAT32_ENABLED")?4:0})),pt=Me;var tn=Ze({complex_:function(t,e){var n=je(t,"real","complex"),r=je(e,"imag","complex");return C(n.shape,r.shape,"real and imag shapes, "+n.shape+" and "+r.shape+", must match in call to tf.complex()."),Ot.runKernelFunc((function(t){return t.complex(n,r)}),{$real:n,$imag:r})}}),en=Ze({real_:function(t){var e=je(t,"input","real");return Ot.runKernelFunc((function(t){return t.real(e)}),{$input:e})}}),nn=Ze({imag_:function(t){var e=je(t,"input","imag");return Ot.runKernelFunc((function(t){return t.imag(e)}),{$input:e})}});function rn(t,e,n){return on(t,e,We(t,n),n)}function on(t,e,n,r){if(null==r&&(r=K(t)),"complex64"===r)throw new Error("Cannot construct a complex64 tensor directly. Please use tf.complex(real, imag).");if(!j(t)&&!Array.isArray(t)&&"number"!=typeof t&&"boolean"!=typeof t&&"string"!=typeof t)throw new Error("values passed to tensor(values) must be a number/boolean/string or an array of numbers/booleans/strings, or a TypedArray");if(null!=e){nt(e);var o=R(e),a=R(n);E(o===a,(function(){return"Based on the provided shape, ["+e+"], the tensor should have "+o+" values but has "+a}));for(var i=0;i<n.length;++i){var s=n[i],u=i!==n.length-1||s!==R(e.slice(i));E(n[i]===e[i]||!u,(function(){return"Error creating a new Tensor. Inferred shape ("+n+") does not match the provided shape ("+e+"). "}))}}return j(t)||Array.isArray(t)||(t=[t]),e=e||n,t="string"!==r?J(t,r,f().getBool("DEBUG")):k(t,[],!0),Ot.makeTensor(t,e,r)}function an(t,e){if((j(t)&&"string"!==e||Array.isArray(t))&&"complex64"!==e)throw new Error("Error creating a new Scalar: value must be a primitive (number|boolean|string)");if("string"===e&&j(t)&&!(t instanceof Uint8Array))throw new Error("When making a scalar from encoded string, the value must be `Uint8Array`.");return on(t,[],[],e)}function sn(t,e){_(t);var n=We(t,e);if(1!==n.length)throw new Error("tensor1d() requires values to be a flat/TypedArray");return on(t,null,n,e)}function un(t,e,n){if(_(t),null!=e&&2!==e.length)throw new Error("tensor2d() requires shape to have two numbers");var r=We(t,n);if(2!==r.length&&1!==r.length)throw new Error("tensor2d() requires values to be number[][] or flat/TypedArray");if(1===r.length&&null==e)throw new Error("tensor2d() requires shape to be provided when `values` are a flat/TypedArray");return on(t,e,r,n)}function cn(t,e,n){if(_(t),null!=e&&3!==e.length)throw new Error("tensor3d() requires shape to have three numbers");var r=We(t,n);if(3!==r.length&&1!==r.length)throw new Error("tensor3d() requires values to be number[][][] or flat/TypedArray");if(1===r.length&&null==e)throw new Error("tensor3d() requires shape to be provided when `values` are a flat array");return on(t,e,r,n)}function ln(t,e,n){if(_(t),null!=e&&4!==e.length)throw new Error("tensor4d() requires shape to have four numbers");var r=We(t,n);if(4!==r.length&&1!==r.length)throw new Error("tensor4d() requires values to be number[][][][] or flat/TypedArray");if(1===r.length&&null==e)throw new Error("tensor4d() requires shape to be provided when `values` are a flat array");return on(t,e,r,n)}function fn(t,e){if(void 0===e&&(e="float32"),"complex64"===e){var n=fn(t,"float32"),r=hn(t,"float32");return tn(n,r)}var o=Z(R(t),e);return Ot.makeTensor(o,t,e)}function hn(t,e){if(void 0===e&&(e="float32"),"complex64"===e){var n=hn(t,"float32"),r=hn(t,"float32");return tn(n,r)}var o=tt(R(t),e);return Ot.makeTensor(o,t,e)}function pn(t,e,n){return Ot.runKernelFunc((function(r){return r.fill(t,e,n)}),{})}function dn(t,e,n,r){if(void 0===n&&(n=1),void 0===r&&(r="float32"),0===n)throw new Error("Cannot have a step of zero");if(t===e||t<e&&n<0||e<t&&n>1)return hn([0],r);var o=tt(Math.abs(Math.ceil((e-t)/n)),r);e<t&&1===n&&(n=-1),o[0]=t;for(var a=1;a<o.length;a++)o[a]=o[a-1]+n;return sn(o,r)}var vn=Ze({onesLike_:function(t){var e=je(t,"x","onesLike");if("complex64"===e.dtype){var n=vn(en(e)),r=mn(nn(e));return tn(n,r)}return Ot.runKernelFunc((function(t){return t.onesLike(e)}),{$x:e},(function(t,e){return{$x:function(){return mn(t)}}}))}}),mn=Ze({zerosLike_:function(t){var e=je(t,"x","zerosLike");return Ot.runKernelFunc((function(t){return t.zerosLike(e)}),{$x:e},(function(t,e){return{$x:function(){return mn(t)}}}))}}),gn=Ze({concat_:function(t,e){void 0===e&&(e=0),E(t.length>=1,(function(){return"Pass at least one tensor to concat"}));var n=ze(t,"tensors","concat");"complex64"===n[0].dtype&&n.forEach((function(t){if("complex64"!==t.dtype)throw new Error("Cannot concatenate complex64 tensors with a tensor\n with dtype "+t.dtype+". ")})),e=F(e,n[0].shape)[0];var r=Qe(n.map((function(t){return t.shape})),e);if(0===R(r))return rn([],r);if(1===(n=n.filter((function(t){return t.size>0}))).length)return n[0];var o=n.map((function(t){return t.shape}));Je(o,e);var a=n,i={axis:e};return Ot.runKernelFunc((function(t){return t.concat(n,e)}),a,(function(t){var n=o.map((function(t){return t[e]}));return En(t,n,e).map((function(t){return function(){return t}}))}),"Concat",i)}}),yn=Ze({concat1d_:function(t){return gn(t,0)}}),bn=Ze({concat2d_:function(t,e){return gn(t,e)}}),xn=Ze({concat3d_:function(t,e){return gn(t,e)}}),wn=Ze({concat4d_:function(t,e){return gn(t,e)}}),En=Ze({split_:function(t,e,n){void 0===n&&(n=0);var r,o=je(t,"x","split");return n=F(n,o.shape)[0],"number"==typeof e?(E(o.shape[n]%e==0,(function(){return"Number of splits must evenly divide the axis."})),r=new Array(e).fill(o.shape[n]/e)):(E(o.shape[n]===e.reduce((function(t,e){return t+e})),(function(){return"The sum of sizes must match the size of the axis dimension."})),r=e),Ot.runKernelFunc((function(t){return t.split(o,r,n)}),{$x:o},(function(t){return{$x:function(){return gn(t,n)}}}))}});function Cn(t,e){return t(e={exports:{}},e.exports),e.exports}"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:void 0!==t||"undefined"!=typeof self&&self;var _n=Cn((function(t){!function(t,e,n){function r(t){var e,n=this,r=(e=4022871197,function(t){t=t.toString();for(var n=0;n<t.length;n++){var r=.02519603282416938*(e+=t.charCodeAt(n));r-=e=r>>>0,e=(r*=e)>>>0,e+=4294967296*(r-=e)}return 2.3283064365386963e-10*(e>>>0)});n.next=function(){var t=2091639*n.s0+2.3283064365386963e-10*n.c;return n.s0=n.s1,n.s1=n.s2,n.s2=t-(n.c=0|t)},n.c=1,n.s0=r(" "),n.s1=r(" "),n.s2=r(" "),n.s0-=r(t),n.s0<0&&(n.s0+=1),n.s1-=r(t),n.s1<0&&(n.s1+=1),n.s2-=r(t),n.s2<0&&(n.s2+=1),r=null}function o(t,e){return e.c=t.c,e.s0=t.s0,e.s1=t.s1,e.s2=t.s2,e}function a(t,e){var n=new r(t),a=e&&e.state,i=n.next;return i.int32=function(){return 4294967296*n.next()|0},i.double=function(){return i()+11102230246251565e-32*(2097152*i()|0)},i.quick=i,a&&("object"==typeof a&&o(a,n),i.state=function(){return o(n,{})}),i}e&&e.exports?e.exports=a:this.alea=a}(0,t)})),kn=Cn((function(t){!function(t,e,n){function r(t){var e=this,n="";e.x=0,e.y=0,e.z=0,e.w=0,e.next=function(){var t=e.x^e.x<<11;return e.x=e.y,e.y=e.z,e.z=e.w,e.w^=e.w>>>19^t^t>>>8},t===(0|t)?e.x=t:n+=t;for(var r=0;r<n.length+64;r++)e.x^=0|n.charCodeAt(r),e.next()}function o(t,e){return e.x=t.x,e.y=t.y,e.z=t.z,e.w=t.w,e}function a(t,e){var n=new r(t),a=e&&e.state,i=function(){return(n.next()>>>0)/4294967296};return i.double=function(){do{var t=((n.next()>>>11)+(n.next()>>>0)/4294967296)/(1<<21)}while(0===t);return t},i.int32=n.next,i.quick=i,a&&("object"==typeof a&&o(a,n),i.state=function(){return o(n,{})}),i}e&&e.exports?e.exports=a:this.xor128=a}(0,t)})),Rn=Cn((function(t){!function(t,e,n){function r(t){var e=this,n="";e.next=function(){var t=e.x^e.x>>>2;return e.x=e.y,e.y=e.z,e.z=e.w,e.w=e.v,(e.d=e.d+362437|0)+(e.v=e.v^e.v<<4^t^t<<1)|0},e.x=0,e.y=0,e.z=0,e.w=0,e.v=0,t===(0|t)?e.x=t:n+=t;for(var r=0;r<n.length+64;r++)e.x^=0|n.charCodeAt(r),r==n.length&&(e.d=e.x<<10^e.x>>>4),e.next()}function o(t,e){return e.x=t.x,e.y=t.y,e.z=t.z,e.w=t.w,e.v=t.v,e.d=t.d,e}function a(t,e){var n=new r(t),a=e&&e.state,i=function(){return(n.next()>>>0)/4294967296};return i.double=function(){do{var t=((n.next()>>>11)+(n.next()>>>0)/4294967296)/(1<<21)}while(0===t);return t},i.int32=n.next,i.quick=i,a&&("object"==typeof a&&o(a,n),i.state=function(){return o(n,{})}),i}e&&e.exports?e.exports=a:this.xorwow=a}(0,t)})),In=Cn((function(t){!function(t,e,n){function r(t){var e=this;e.next=function(){var t,n,r=e.x,o=e.i;return t=r[o],n=(t^=t>>>7)^t<<24,n^=(t=r[o+1&7])^t>>>10,n^=(t=r[o+3&7])^t>>>3,n^=(t=r[o+4&7])^t<<7,t=r[o+7&7],n^=(t^=t<<13)^t<<9,r[o]=n,e.i=o+1&7,n},function(t,e){var n,r=[];if(e===(0|e))r[0]=e;else for(e=""+e,n=0;n<e.length;++n)r[7&n]=r[7&n]<<15^e.charCodeAt(n)+r[n+1&7]<<13;for(;r.length<8;)r.push(0);for(n=0;n<8&&0===r[n];++n);for(8==n?r[7]=-1:r[n],t.x=r,t.i=0,n=256;n>0;--n)t.next()}(e,t)}function o(t,e){return e.x=t.x.slice(),e.i=t.i,e}function a(t,e){null==t&&(t=+new Date);var n=new r(t),a=e&&e.state,i=function(){return(n.next()>>>0)/4294967296};return i.double=function(){do{var t=((n.next()>>>11)+(n.next()>>>0)/4294967296)/(1<<21)}while(0===t);return t},i.int32=n.next,i.quick=i,a&&(a.x&&o(a,n),i.state=function(){return o(n,{})}),i}e&&e.exports?e.exports=a:this.xorshift7=a}(0,t)})),Sn=Cn((function(t){!function(t,e,n){function r(t){var e=this;e.next=function(){var t,n,r=e.w,o=e.X,a=e.i;return e.w=r=r+1640531527|0,n=o[a+34&127],t=o[a=a+1&127],n^=n<<13,t^=t<<17,n^=n>>>15,t^=t>>>12,n=o[a]=n^t,e.i=a,n+(r^r>>>16)|0},function(t,e){var n,r,o,a,i,s=[],u=128;for(e===(0|e)?(r=e,e=null):(e+="\0",r=0,u=Math.max(u,e.length)),o=0,a=-32;a<u;++a)e&&(r^=e.charCodeAt((a+32)%e.length)),0===a&&(i=r),r^=r<<10,r^=r>>>15,r^=r<<4,r^=r>>>13,a>=0&&(i=i+1640531527|0,o=0==(n=s[127&a]^=r+i)?o+1:0);for(o>=128&&(s[127&(e&&e.length||0)]=-1),o=127,a=512;a>0;--a)r=s[o+34&127],n=s[o=o+1&127],r^=r<<13,n^=n<<17,r^=r>>>15,n^=n>>>12,s[o]=r^n;t.w=i,t.X=s,t.i=o}(e,t)}function o(t,e){return e.i=t.i,e.w=t.w,e.X=t.X.slice(),e}function a(t,e){null==t&&(t=+new Date);var n=new r(t),a=e&&e.state,i=function(){return(n.next()>>>0)/4294967296};return i.double=function(){do{var t=((n.next()>>>11)+(n.next()>>>0)/4294967296)/(1<<21)}while(0===t);return t},i.int32=n.next,i.quick=i,a&&(a.X&&o(a,n),i.state=function(){return o(n,{})}),i}e&&e.exports?e.exports=a:this.xor4096=a}(0,t)})),An=Cn((function(t){!function(t,e,n){function r(t){var e=this,n="";e.next=function(){var t=e.b,n=e.c,r=e.d,o=e.a;return t=t<<25^t>>>7^n,n=n-r|0,r=r<<24^r>>>8^o,o=o-t|0,e.b=t=t<<20^t>>>12^n,e.c=n=n-r|0,e.d=r<<16^n>>>16^o,e.a=o-t|0},e.a=0,e.b=0,e.c=-1640531527,e.d=1367130551,t===Math.floor(t)?(e.a=t/4294967296|0,e.b=0|t):n+=t;for(var r=0;r<n.length+20;r++)e.b^=0|n.charCodeAt(r),e.next()}function o(t,e){return e.a=t.a,e.b=t.b,e.c=t.c,e.d=t.d,e}function a(t,e){var n=new r(t),a=e&&e.state,i=function(){return(n.next()>>>0)/4294967296};return i.double=function(){do{var t=((n.next()>>>11)+(n.next()>>>0)/4294967296)/(1<<21)}while(0===t);return t},i.int32=n.next,i.quick=i,a&&("object"==typeof a&&o(a,n),i.state=function(){return o(n,{})}),i}e&&e.exports?e.exports=a:this.tychei=a}(0,t)})),On=Cn((function(t){!function(e,r){var o,a=this,i=256,s="random",u=r.pow(i,6),c=r.pow(2,52),l=2*c,f=255;function h(t,n,f){var h=[],g=v(function t(e,n){var r,o=[],a=typeof e;if(n&&"object"==a)for(r in e)try{o.push(t(e[r],n-1))}catch(t){}return o.length?o:"string"==a?e:e+"\0"}((n=1==n?{entropy:!0}:n||{}).entropy?[t,m(e)]:null==t?function(){try{var t;return o&&(t=o.randomBytes)?t=t(i):(t=new Uint8Array(i),(a.crypto||a.msCrypto).getRandomValues(t)),m(t)}catch(t){var n=a.navigator,r=n&&n.plugins;return[+new Date,a,r,a.screen,m(e)]}}():t,3),h),y=new p(h),b=function(){for(var t=y.g(6),e=u,n=0;t<c;)t=(t+n)*i,e*=i,n=y.g(1);for(;t>=l;)t/=2,e/=2,n>>>=1;return(t+n)/e};return b.int32=function(){return 0|y.g(4)},b.quick=function(){return y.g(4)/4294967296},b.double=b,v(m(y.S),e),(n.pass||f||function(t,e,n,o){return o&&(o.S&&d(o,y),t.state=function(){return d(y,{})}),n?(r[s]=t,e):t})(b,g,"global"in n?n.global:this==r,n.state)}function p(t){var e,n=t.length,r=this,o=0,a=r.i=r.j=0,s=r.S=[];for(n||(t=[n++]);o<i;)s[o]=o++;for(o=0;o<i;o++)s[o]=s[a=f&a+t[o%n]+(e=s[o])],s[a]=e;(r.g=function(t){for(var e,n=0,o=r.i,a=r.j,s=r.S;t--;)e=s[o=f&o+1],n=n*i+s[f&(s[o]=s[a=f&a+e])+(s[a]=e)];return r.i=o,r.j=a,n})(i)}function d(t,e){return e.i=t.i,e.j=t.j,e.S=t.S.slice(),e}function v(t,e){for(var n,r=t+"",o=0;o<r.length;)e[f&o]=f&(n^=19*e[f&o])+r.charCodeAt(o++);return m(e)}function m(t){return String.fromCharCode.apply(0,t)}if(r.seedrandom=h,v(r.random(),e),t.exports){t.exports=h;try{o=n(69)}catch(t){}}}([],Math)}));On.alea=_n,On.xor128=kn,On.xorwow=Rn,On.xorshift7=In,On.xor4096=Sn,On.tychei=An;var Tn=On.alea,Dn=function(){function t(t,e,n,r,o){this.mean=t,this.stdDev=e,this.dtype=n,this.nextVal=NaN,this.truncated=r,this.truncated&&(this.upper=this.mean+2*this.stdDev,this.lower=this.mean-2*this.stdDev);var a=o||Math.random();this.random=Tn(a.toString())}return t.prototype.nextValue=function(){if(!isNaN(this.nextVal)){var t=this.nextVal;return this.nextVal=NaN,t}for(var e,n,r=!1;!r;){var o=void 0,a=void 0,i=void 0;do{i=(o=2*this.random()-1)*o+(a=2*this.random()-1)*a}while(i>=1||0===i);var s=Math.sqrt(-2*Math.log(i)/i);e=this.mean+this.stdDev*o*s,n=this.mean+this.stdDev*a*s,this.truncated&&!this.isValidTruncated(e)||(r=!0)}return this.truncated&&!this.isValidTruncated(n)||(this.nextVal=this.convertValue(n)),this.convertValue(e)},t.prototype.convertValue=function(t){return null==this.dtype||"float32"===this.dtype?t:Math.round(t)},t.prototype.isValidTruncated=function(t){return t<=this.upper&&t>=this.lower},t}(),Nn=function(){function t(t,e,n,r){this.alpha=t,this.beta=1/e,this.dtype=n;var o=r||Math.random();this.randu=Tn(o.toString()),this.randn=new Dn(0,1,n,!1,this.randu()),this.d=t<1?t+2/3:t-1/3,this.c=1/Math.sqrt(9*this.d)}return t.prototype.nextValue=function(){for(var t,e,n,r,o,a;;){do{r=this.randn.nextValue(),a=1+this.c*r}while(a<=0);if(a*=a*a,e=1-.331*(t=r*r)*t,n=.5*t+this.d*(1-a+Math.log(a)),(o=this.randu())<e||Math.log(o)<n)break}return a=1/this.beta*this.d*a,this.alpha<1&&(a*=Math.pow(this.randu(),1/this.alpha)),this.convertValue(a)},t.prototype.convertValue=function(t){return"float32"===this.dtype?t:Math.round(t)},t}(),Fn=function(){function t(t,e,n,r){var o=this;if(void 0===t&&(t=0),void 0===e&&(e=1),this.canReturnFloat=function(){return null==o.dtype||"float32"===o.dtype},this.min=t,this.range=e-t,this.dtype=n,null==r&&(r=Math.random()),"number"==typeof r&&(r=r.toString()),!this.canReturnFloat()&&this.range<=1)throw new Error("The difference between "+t+" - "+e+" <= 1 and dtype is not float");this.random=Tn(r)}return t.prototype.convertValue=function(t){return this.canReturnFloat()?t:Math.round(t)},t.prototype.nextValue=function(){return this.convertValue(this.min+this.range*this.random())},t}();function Mn(t,e,n){return void 0===e&&(e="float32"),e=e||"float32",nt(t),new lt(t,e,n)}var Pn=Ze({batchToSpaceND_:function(t,e,n){var r=je(t,"x","batchToSpaceND"),o=e.reduce((function(t,e){return t*e}));return E(r.rank>=1+e.length,(function(){return"input rank is "+r.rank+" but should be > than blockShape.length "+e.length})),E(n.length===e.length,(function(){return"crops.length is "+n.length+" but should be equal to blockShape.length "+e.length})),E(r.shape[0]%o==0,(function(){return"input tensor batch is "+r.shape[0]+" but is not divisible by the product of the elements of blockShape "+e.join(" * ")+" === "+o})),Ot.runKernelFunc((function(t){return t.batchToSpaceND(r,e,n)}),{$x:r},(function(t){return{$x:function(){return t.spaceToBatchND(e,n)}}}))}}),Bn=Ze({broadcastTo_:function(t,e){var n=je(t,"broadcastTo","x"),r=n.shape;if(e.some((function(t){return!(t>0)||t%1!=0})))throw new Error("broadcastTo(): Invalid broadcast shape ["+e+"].");if(e.length<n.rank)throw new Error("broadcastTo(): shape.length="+e.length+" < input.rank="+n.rank+".");if(e.length>n.rank){for(var o=n.shape.slice();o.length<e.length;)o.unshift(1);n=n.reshape(o)}for(var a=Array.from(e),i=e.length-1;i>=0;i--)if(n.shape[i]===e[i])a[i]=1;else if(1!==n.shape[i])throw new Error("broadcastTo(): ["+r+"] cannot be broadcast to ["+e+"].");var s=a.map((function(t,e){return t>1?e:-1})).filter((function(t){return t>=0}));return 0===s.length?n.clone():Ot.runKernelFunc((function(t){return t.tile(n,a)}),{input:n},(function(t){return{input:function(){return t.sum(s,!0)}}}))}}),Ln=Ze({cast_:function(t,e){var n=je(t,"x","cast");if(!W(e))throw new Error("Failed to cast to unknown dtype "+e);if("string"===e&&"string"!==n.dtype||"string"!==e&&"string"===n.dtype)throw new Error("Only strings can be casted to strings");var r={dtype:e};return Ot.runKernelFunc((function(t){return t.cast(n,e)}),{x:n},(function(t){return{x:function(){return t.clone()}}}),"Cast",r)}}),Wn=Ze({clone_:function(t){var e=je(t,"x","clone",null);return Ot.runKernelFunc((function(){return Ot.makeTensorFromDataId(e.dataId,e.shape,e.dtype)}),{$x:e},(function(t){return{$x:function(){return t.toFloat()}}}))}}),Un=Ze({cumsum_:function(t,e,n,r){void 0===e&&(e=0),void 0===n&&(n=!1),void 0===r&&(r=!1);var o=je(t,"x","cumsum"),a=Xe([e|=0],o.rank),i=o;null!=a&&(i=o.transpose(a));var s=Ye(1,o.rank)[0],u=Ot.runKernelFunc((function(t){return t.cumsum(i,s,n,r)}),{permutedX:i},(function(t){return{permutedX:function(){return t.cumsum(e,n,!r)}}}));return null!=a&&(u=u.transpose(a)),u}}),jn=Ze({depthToSpace_:function(t,e,n){void 0===n&&(n="NHWC");var r=je(t,"x","depthToSpace"),o="NHWC"===n?r.shape[1]:r.shape[2],a="NHWC"===n?r.shape[2]:r.shape[3],i="NHWC"===n?r.shape[3]:r.shape[1];return E(o*e>=0,(function(){return"Negative dimension size caused by overflow when multiplying\n "+o+" and "+e+" for depthToSpace with input shape\n "+r.shape})),E(a*e>=0,(function(){return"Negative dimension size caused by overflow when multiplying\n "+a+" and "+e+" for depthToSpace with input shape\n "+r.shape})),E(i%(e*e)==0,(function(){return"Dimension size must be evenly divisible by "+e*e+" but is "+i+" for depthToSpace with input shape "+r.shape})),Ot.runKernelFunc((function(t){return t.depthToSpace(r,e,n)}),{$x:r})}}),zn=Ze({expandDims_:function(t,e){void 0===e&&(e=0);var n=je(t,"x","expandDims",null);E(e<=n.rank,(function(){return"Axis must be <= rank of the tensor"}));var r=n.shape.slice();return e<0&&(E(-(n.rank+1)<=e,(function(){return"Axis must be in the interval ["+-(n.rank+1)+", "+n.rank+"]"})),e=n.rank+e+1),r.splice(e,0,1),er(n,r)}}),Vn=Ze({eye_:function(t,e,n,r){void 0===r&&(r="float32"),null==e&&(e=t);for(var o=Mn([t,e],r),a=t<=e?t:e,i=0;i<a;++i)o.set(1,i,i);var s=o.toTensor().as2D(t,e);if(null==n)return s;if(1===n.length)return ar(zn(s,0),[n[0],1,1]);if(2===n.length)return ar(zn(zn(s,0),0),[n[0],n[1],1,1]);if(3===n.length)return ar(zn(zn(zn(s,0),0),0),[n[0],n[1],n[2],1,1]);throw new Error("eye() currently supports only 1D and 2D batchShapes, but received "+n.length+"D.")}}),Gn=Ze({multinomial_:function(t,e,n,r){void 0===r&&(r=!1);var o=je(t,"logits","multinomial"),a=o.size,i=o.rank;if(a<2)throw new Error("Error in multinomial: you need at least 2 outcomes, but got "+a+".");if(i>2)throw new Error("Rank of probabilities must be 1 or 2, but is "+i);n=n||Math.random();var s=1===i?o.as2D(1,-1):o,u=Ot.runKernelFunc((function(t){return t.multinomial(s,r,e,n)}),{logits2D:s});return 1===i?u.as1D():u}}),Hn=Ze({oneHot_:function(t,e,n,r){if(void 0===n&&(n=1),void 0===r&&(r=0),e<2)throw new Error("Error in oneHot: depth must be >=2, but it is "+e);var o=je(t,"indices","oneHot","int32"),a=o.shape.concat([e]);return o=o.flatten(),Ot.runKernelFunc((function(t){return t.oneHot(o,e,n,r)}),{$indices:o},(function(t){return{$indices:function(){return hn(o.shape,"float32")}}})).reshape(a)}}),qn=Ze({pad_:function(t,e,n){void 0===n&&(n=0);var r=je(t,"x","pad");if(0===r.rank)throw new Error("pad(scalar) is not defined. Pass non-scalar to pad");var o={paddings:e,constantValue:n};return Ot.runKernelFunc((function(t){return t.pad(r,e,n)}),{x:r},(function(t){var n=e.map((function(t){return t[0]}));return{x:function(){return t.slice(n,r.shape)}}}),"PadV2",o)}}),Kn=Ze({pad1d_:function(t,e,n){return void 0===n&&(n=0),E(2===e.length,(function(){return"Invalid number of paddings. Must be length of 2."})),qn(t,[e],n)}}),Xn=Ze({pad2d_:function(t,e,n){return void 0===n&&(n=0),E(2===e.length&&2===e[0].length&&2===e[1].length,(function(){return"Invalid number of paddings. Must be length of 2 each."})),qn(t,e,n)}}),$n=Ze({pad3d_:function(t,e,n){return void 0===n&&(n=0),E(3===e.length&&2===e[0].length&&2===e[1].length&&2===e[2].length,(function(){return"Invalid number of paddings. Must be length of 2 each."})),qn(t,e,n)}}),Yn=Ze({pad4d_:function(t,e,n){return void 0===n&&(n=0),E(4===e.length&&2===e[0].length&&2===e[1].length&&2===e[2].length&&2===e[3].length,(function(){return"Invalid number of paddings. Must be length of 2 each."})),qn(t,e,n)}}),Jn=Ze({rand_:function(t,e,n){var r=R(t),o=null;if(null==n||"float32"===n)o=new Float32Array(r);else if("int32"===n)o=new Int32Array(r);else{if("bool"!==n)throw new Error("Unknown data type "+n);o=new Uint8Array(r)}for(var a=0;a<r;a++)o[a]=e();return Ot.makeTensor(o,t,n)}}),Qn=Ze({randomNormal_:function(t,e,n,r,o){if(void 0===e&&(e=0),void 0===n&&(n=1),null!=r&&"bool"===r)throw new Error("Unsupported data type "+r);for(var a=new Dn(e,n,r,!1,o),i=Mn(t,r),s=0;s<i.values.length;s++)i.values[s]=a.nextValue();return i.toTensor()}}),Zn=Ze({randomGamma_:function(t,e,n,r,o){if(void 0===n&&(n=1),void 0===r&&(r="float32"),null==n&&(n=1),null==r&&(r="float32"),"float32"!==r&&"int32"!==r)throw new Error("Unsupported data type "+r);for(var a=new Nn(e,n,r,o),i=Mn(t,r),s=0;s<i.values.length;s++)i.values[s]=a.nextValue();return i.toTensor()}}),tr=Ze({randomUniform_:function(t,e,n,r,o){void 0===e&&(e=0),void 0===n&&(n=1),void 0===r&&(r="float32");for(var a=Mn(t,r),i=new Fn(e,n,null,o),s=0;s<a.values.length;s++)a.values[s]=i.nextValue();return a.toTensor()}}),er=Ze({reshape_:function(t,e){var n=je(t,"x","reshape",null);e=N(e,n.size),E(n.size===R(e),(function(){return"new shape and old shape must have the same number of elements."}));var r={shape:e};return Ot.runKernelFunc((function(t){return t.reshape(n,e)}),{x:n},(function(t){return{x:function(){return t.reshape(n.shape)}}}),"Reshape",r)}}),nr=Ze({spaceToBatchND_:function(t,e,n){var r=je(t,"x","spaceToBatchND");return E(r.rank>=1+e.length,(function(){return"input rank "+r.rank+" should be > than [blockShape] "+e.length})),E(n.length===e.length,(function(){return"paddings.shape[0] "+n.length+" must be equal to [blockShape] "+e.length})),E(r.shape.reduce((function(t,r,o){return o>0&&o<=e.length?t&&(r+n[o-1][0]+n[o-1][1])%e[o-1]==0:t}),!0),(function(){return"input spatial dimensions "+r.shape.slice(1)+" with paddings "+n.toString()+" must be divisible by blockShapes "+e.toString()})),Ot.runKernelFunc((function(t){return t.spaceToBatchND(r,e,n)}),{$x:r},(function(t){return{$x:function(){return t.batchToSpaceND(e,n)}}}))}}),rr=Ze({squeeze_:function(t,e){var n=je(t,"x","squeeze");return er(n,M(n.shape,e).newShape)}}),or=Ze({stack_:function(t,e){void 0===e&&(e=0);var n=ze(t,"tensors","stack");if(E(n.length>=1,(function(){return"Pass at least one tensor to tf.stack"})),1===n.length)return n[0].expandDims(e);var r=n[0].rank,o=n[0].shape,a=n[0].dtype;E(e<=r,(function(){return"Axis must be <= rank of the tensor"})),n.forEach((function(t){C(o,t.shape,"All tensors passed to stack must have matching shapes")})),n.forEach((function(t){E(a===t.dtype,(function(){return"All tensors passed to stack must have matching dtypes"}))}));var i=n.map((function(t){return t.expandDims(e)}));return gn(i,e)}}),ar=Ze({tile_:function(t,e){var n=je(t,"x","tile",null);return E(n.rank===e.length,(function(){return"Error in transpose: rank of input "+n.rank+" must match length of reps "+e+"."})),Ot.runKernelFunc((function(t,r){var o=t.tile(n,e);return r([n]),o}),{$x:n},(function(t,n){var r=n[0];return{$x:function(){var n=mn(r);if(1===r.rank)for(var o=0;o<e[0];++o)n=n.add(t.slice([o*r.shape[0]],[r.shape[0]]));else if(2===r.rank)for(o=0;o<e[0];++o)for(var a=0;a<e[1];++a)n=n.add(t.slice([o*r.shape[0],a*r.shape[1]],[r.shape[0],r.shape[1]]));else if(3===r.rank)for(o=0;o<e[0];++o)for(a=0;a<e[1];++a)for(var i=0;i<e[2];++i)n=n.add(t.slice([o*r.shape[0],a*r.shape[1],i*r.shape[2]],[r.shape[0],r.shape[1],r.shape[2]]));else{if(4!==r.rank)throw new Error("Gradient for tile operation is not implemented for rank-"+r.rank+" tensors yet.");for(o=0;o<e[0];++o)for(a=0;a<e[1];++a)for(i=0;i<e[2];++i)for(var s=0;s<e[3];++s)n=n.add(t.slice([o*r.shape[0],a*r.shape[1],i*r.shape[2],s*r.shape[3]],[r.shape[0],r.shape[1],r.shape[2],r.shape[3]]))}return n}}}))}}),ir=Ze({truncatedNormal_:function(t,e,n,r,o){if(void 0===e&&(e=0),void 0===n&&(n=1),null!=r&&"bool"===r)throw new Error("Unsupported data type "+r);for(var a=new Dn(e,n,r,!0,o),i=Mn(t,r),s=0;s<i.values.length;s++)i.values[s]=a.nextValue();return i.toTensor()}}),sr=Ze({unstack_:function(t,e){void 0===e&&(e=0),e=e||0;var n=je(t,"x","unstack");return E(e>=-n.shape.length&&e<n.shape.length,(function(){return"Axis = "+e+" is not in [-"+n.shape.length+", "+n.shape.length+")"})),e<0&&(e+=n.shape.length),Ot.runKernelFunc((function(t){return t.unstack(n,e)}),{$x:n},(function(t){return{$x:function(){return or(t,e)}}}))}});function ur(t,e,n,r){void 0===r&&(r=!0);var o=[];if(r)(o=o.concat(e.slice(0))).push(t[0]/n),o=o.concat(t.slice(1));else{o=o.concat(t[0]);for(var a=e.length,i=0;i<a;++i)o=o.concat([t[i+1]/e[i],e[i]]);o=o.concat(t.slice(a+1))}return o}function cr(t,e,n){void 0===n&&(n=!0);var r=[];if(n){r.push(e);for(var o=e+1;o<t;++o)o<=2*e?(r.push(o),r.push(o-(e+1))):r.push(o)}else{var a=[],i=[];for(o=1;o<t;++o)o>=2*e+1||o%2==1?i.push(o):a.push(o);r.push.apply(r,a),r.push(0),r.push.apply(r,i)}return r}function lr(t,e,n,r){void 0===r&&(r=!0);var o=[];r?o.push(t[0]/n):o.push(t[0]*n);for(var a=1;a<t.length;++a)a<=e.length?r?o.push(e[a-1]*t[a]):o.push(t[a]/e[a-1]):o.push(t[a]);return o}function fr(t,e){for(var n=[0],r=0;r<e;++r)n.push(t[r][0]);return n}function hr(t,e,n){for(var r=t.slice(0,1),o=0;o<n;++o)r.push(t[o+1]-e[o][0]-e[o][1]);return r}function pr(t,e){if(t.rank<1)throw new Error("tf.gatherND() expects the input to be rank 1 or higher, but the rank was "+t.rank+".");if(e.rank<1)throw new Error("tf.gatherND() expects the indices to be rank 1 or higher, but the rank was "+e.rank+".");if("int32"!==e.dtype)throw new Error("tf.gatherND() expects the indices to be int32 type, but the dtype was "+e.dtype+".");if(e.shape[e.rank-1]>t.rank)throw new Error("index innermost dimension length must be <= tensor rank; saw: "+e.shape[e.rank-1]+" vs. "+t.rank);if(0===t.size)throw new Error("Requested more than 0 entries, but input is empty. Input shape: "+t.shape+".");for(var n=e.shape,r=n[n.length-1],o=1,a=0;a<n.length-1;++a)o*=n[a];var i=t.shape,s=n.slice();s.pop();var u=1;for(a=r;a<t.rank;++a)u*=i[a],s.push(i[a]);var c=Y(t.shape).map((function(t){return t/u})).concat([1]).slice(0,r);return[s,o,u,c]}function dr(t){return t<=30?t:$(t,Math.floor(Math.sqrt(t)))}function vr(t,e,n){for(var r=e.rank>1?e.shape[e.rank-1]:1,o=n.length,a=1,i=r;i<o;++i)a*=n[i];var s=r<1?1:r;return{sliceRank:r,numUpdates:e.size/s,sliceSize:a,strides:Y(n.slice(0,r)).concat([1]),outputSize:R(n)}}function mr(t,e,n){E(t.rank===e.length,(function(){return"Error in slice"+t.rank+"D: Length of begin "+e+" must match the rank of the array ("+t.rank+")."})),E(t.rank===n.length,(function(){return"Error in slice"+t.rank+"D: Length of size "+n+" must match the rank of the array ("+t.rank+")."}));for(var r=function(r){E(e[r]+n[r]<=t.shape[r],(function(){return"Error in slice"+t.rank+"D: begin["+r+"] + size["+r+"] ("+(e[r]+n[r])+") would overflow input.shape["+r+"] ("+t.shape[r]+")"}))},o=0;o<t.rank;++o)r(o)}function gr(t){for(var e=[],n=0;t>0;)1&t&&e.push(n),t/=2,n++;return e}function yr(t,e,n){for(var r=[],o=0;o<t.length;o++)r[o]=Math.ceil((e[o]-t[o])/n[o]);return r}function br(t,e,n,r,o){var a=e[o],i=n[o]||1;(t&1<<o||null==a)&&(a=i>0?Number.MIN_SAFE_INTEGER:Number.MAX_SAFE_INTEGER);var s=r[o];return a<0&&(a+=s),b(0,a,s-1)}function xr(t,e,n,r,o){var a=e[o],i=n[o]||1;(t&1<<o||null==a)&&(a=i>0?Number.MAX_SAFE_INTEGER:Number.MIN_SAFE_INTEGER);var s=r[o];return a<0&&(a+=s),i>0?b(0,a,s):b(-1,a,s-1)}function wr(t,e,n){for(var r=n.length,o=0;o<n.length;o++)if(n[o]>1){r=o;break}for(o=r+1;o<n.length;o++)if(e[o]>0||n[o]!==t[o])return!1;return!0}function Er(t,e){for(var n=t.length>0?t[t.length-1]:1,r=0;r<t.length-1;r++)n+=t[r]*e[r];return n}Object.freeze({assertParamsValid:mr,maskToAxes:gr,computeOutShape:yr,startForAxis:br,stopForAxis:xr,isSliceContinous:wr,computeFlatOffset:Er});function Cr(t){return Ot.customGrad(t)}var _r=Ze({softmax_:function(t,e){void 0===e&&(e=-1);var n=je(t,"logits","softmax");if(-1===e&&(e=n.rank-1),e!==n.rank-1)throw Error("Softmax along a non-last dimension is not yet supported. Logits was rank "+n.rank+" and dim was "+e);return Cr((function(t,n){var r=t.logSumExp([e],!0),o=t.toFloat().sub(r).exp();return n([o]),{value:o,gradFunc:function(t,n){var r=n[0],o=t.mul(r);return o.sub(o.sum([e],!0).mul(r))}}}))(n)}}),kr=Ze({logSoftmax_:function(t,e){void 0===e&&(e=-1);var n=je(t,"logits","logSoftmax");if(-1===e&&(e=n.rank-1),e!==n.rank-1)throw Error("Log Softmax along a non-last dimension is not yet supported. Logits was rank "+n.rank+" and axis was "+e);return Cr((function(t,n){var r=t.max(e,!0),o=t.sub(r),a=o.toFloat().sub(o.exp().sum(e,!0).log());return n([a]),{value:a,gradFunc:function(t,n){var r=n[0].exp();return t.sub(t.sum(e,!0).mul(r))}}}))(n)}}),Rr=function(){function t(t,e){this.backend=t,this.dataMover=e,this.data=new WeakMap,this.dataIdsCount=0}return t.prototype.get=function(t){return this.data.has(t)||this.dataMover.moveData(this.backend,t),this.data.get(t)},t.prototype.set=function(t,e){this.dataIdsCount++,this.data.set(t,e)},t.prototype.has=function(t){return this.data.has(t)},t.prototype.delete=function(t){return this.dataIdsCount--,this.data.delete(t)},t.prototype.numDataIds=function(){return this.dataIdsCount},t}(),Ir=function(){function t(){}return t.prototype.time=function(t){return Sr("time")},t.prototype.read=function(t){return Sr("read")},t.prototype.readSync=function(t){return Sr("readSync")},t.prototype.numDataIds=function(){return Sr("numDataIds")},t.prototype.disposeData=function(t){return Sr("disposeData")},t.prototype.write=function(t,e,n){return Sr("write")},t.prototype.move=function(t,e,n,r){return Sr("move")},t.prototype.memory=function(){return Sr("memory")},t.prototype.floatPrecision=function(){return Sr("floatPrecision")},t.prototype.epsilon=function(){return 32===this.floatPrecision()?1e-7:1e-4},t.prototype.batchMatMul=function(t,e,n,r){return Sr("batchMatMul")},t.prototype.fusedBatchMatMul=function(t){return t.a,t.b,t.transposeA,t.transposeB,t.bias,t.activation,t.preluActivationWeights,Sr("fusedBatchMatMul")},t.prototype.slice=function(t,e,n){return Sr("slice")},t.prototype.stridedSlice=function(t,e,n,r){return Sr("stridedSlice")},t.prototype.unstack=function(t,e){return Sr("unstack")},t.prototype.reverse=function(t,e){return Sr("reverse")},t.prototype.concat=function(t,e){return Sr("concat")},t.prototype.neg=function(t){return Sr("neg")},t.prototype.add=function(t,e){return Sr("add")},t.prototype.addN=function(t){return Sr("addN")},t.prototype.subtract=function(t,e){return Sr("subtract")},t.prototype.multiply=function(t,e){return Sr("multiply")},t.prototype.realDivide=function(t,e){return Sr("realDivide")},t.prototype.floorDiv=function(t,e){return Sr("floorDiv")},t.prototype.sum=function(t,e){return Sr("sum")},t.prototype.prod=function(t,e){return Sr("prod")},t.prototype.unsortedSegmentSum=function(t,e,n){return Sr("unsortedSegmentSum")},t.prototype.argMin=function(t,e){return Sr("argMin")},t.prototype.argMax=function(t,e){return Sr("argMax")},t.prototype.equal=function(t,e){return Sr("equal")},t.prototype.notEqual=function(t,e){return Sr("notEqual")},t.prototype.less=function(t,e){return Sr("less")},t.prototype.lessEqual=function(t,e){return Sr("lessEqual")},t.prototype.greater=function(t,e){return Sr("greater")},t.prototype.greaterEqual=function(t,e){return Sr("greaterEqual")},t.prototype.logicalNot=function(t){return Sr("logicalNot")},t.prototype.logicalAnd=function(t,e){return Sr("logicalAnd")},t.prototype.logicalOr=function(t,e){return Sr("logicalOr")},t.prototype.where=function(t){return Sr("where")},t.prototype.select=function(t,e,n){return Sr("select")},t.prototype.topk=function(t,e,n){return Sr("topk")},t.prototype.min=function(t,e){return Sr("min")},t.prototype.minimum=function(t,e){return Sr("minimum")},t.prototype.mod=function(t,e){return Sr("mod")},t.prototype.max=function(t,e){return Sr("max")},t.prototype.maximum=function(t,e){return Sr("maximum")},t.prototype.all=function(t,e){return Sr("all")},t.prototype.any=function(t,e){return Sr("any")},t.prototype.squaredDifference=function(t,e){return Sr("squaredDifference")},t.prototype.ceil=function(t){return Sr("ceil")},t.prototype.floor=function(t){return Sr("floor")},t.prototype.round=function(t){return Sr("round")},t.prototype.sign=function(t){return Sr("sign")},t.prototype.isNaN=function(t){return Sr("isNaN")},t.prototype.isInf=function(t){return Sr("isInf")},t.prototype.isFinite=function(t){return Sr("isFinite")},t.prototype.pow=function(t,e){return Sr("pow")},t.prototype.exp=function(t){return Sr("exp")},t.prototype.expm1=function(t){return Sr("expm1")},t.prototype.log=function(t){return Sr("log")},t.prototype.log1p=function(t){return Sr("log1p")},t.prototype.sqrt=function(t){return Sr("sqrt")},t.prototype.rsqrt=function(t){return Sr("rsqrt")},t.prototype.square=function(t){return Sr("square")},t.prototype.reciprocal=function(t){return Sr("reciprocal")},t.prototype.relu=function(t){return Sr("relu")},t.prototype.relu6=function(t){return Sr("relu6")},t.prototype.prelu=function(t,e){return Sr("prelu")},t.prototype.elu=function(t){return Sr("elu")},t.prototype.eluDer=function(t,e){return Sr("eluDer")},t.prototype.selu=function(t){return Sr("selu")},t.prototype.int=function(t){return Sr("int")},t.prototype.clip=function(t,e,n){return Sr("clip")},t.prototype.abs=function(t){return Sr("abs")},t.prototype.complexAbs=function(t){return Sr("complexAbs")},t.prototype.sigmoid=function(t){return Sr("sigmoid")},t.prototype.softplus=function(t){return Sr("softplus")},t.prototype.sin=function(t){return Sr("sin")},t.prototype.cos=function(t){return Sr("cos")},t.prototype.tan=function(t){return Sr("tan")},t.prototype.asin=function(t){return Sr("asin")},t.prototype.acos=function(t){return Sr("acos")},t.prototype.atan=function(t){return Sr("atan")},t.prototype.atan2=function(t,e){return Sr("atan2")},t.prototype.sinh=function(t){return Sr("sinh")},t.prototype.cosh=function(t){return Sr("cosh")},t.prototype.tanh=function(t){return Sr("tanh")},t.prototype.asinh=function(t){return Sr("asinh")},t.prototype.acosh=function(t){return Sr("acosh")},t.prototype.atanh=function(t){return Sr("atanh")},t.prototype.erf=function(t){return Sr("erf")},t.prototype.step=function(t,e){return Sr("step")},t.prototype.fusedConv2d=function(t){return t.input,t.filter,t.convInfo,t.bias,t.activation,t.preluActivationWeights,Sr("fusedConv2d")},t.prototype.conv2d=function(t,e,n){return Sr("conv2d")},t.prototype.conv2dDerInput=function(t,e,n){return Sr("conv2dDerInput")},t.prototype.conv2dDerFilter=function(t,e,n){return Sr("conv2dDerFilter")},t.prototype.fusedDepthwiseConv2D=function(t){return t.input,t.filter,t.convInfo,t.bias,t.activation,t.preluActivationWeights,Sr("fusedDepthwiseConv2D")},t.prototype.depthwiseConv2D=function(t,e,n){return Sr("depthwiseConv2D")},t.prototype.depthwiseConv2DDerInput=function(t,e,n){return Sr("depthwiseConv2DDerInput")},t.prototype.depthwiseConv2DDerFilter=function(t,e,n){return Sr("depthwiseConv2DDerFilter")},t.prototype.conv3d=function(t,e,n){return Sr("conv3d")},t.prototype.conv3dDerInput=function(t,e,n){return Sr("conv3dDerInput")},t.prototype.conv3dDerFilter=function(t,e,n){return Sr("conv3dDerFilter")},t.prototype.maxPool=function(t,e){return Sr("maxPool")},t.prototype.maxPoolBackprop=function(t,e,n,r){return Sr("maxPoolBackprop")},t.prototype.avgPool=function(t,e){return Sr("avgPool")},t.prototype.avgPoolBackprop=function(t,e,n){return Sr("avgPoolBackprop")},t.prototype.avgPool3d=function(t,e){return Sr("avgPool3d")},t.prototype.avgPool3dBackprop=function(t,e,n){return Sr("avgPool3dBackprop")},t.prototype.maxPool3d=function(t,e){return Sr("maxPool3d")},t.prototype.maxPool3dBackprop=function(t,e,n,r){return Sr("maxPool3dBackprop")},t.prototype.reshape=function(t,e){return Sr("reshape")},t.prototype.cast=function(t,e){return Sr("cast")},t.prototype.tile=function(t,e){return Sr("tile")},t.prototype.pad=function(t,e,n){return Sr("pad")},t.prototype.transpose=function(t,e){return Sr("transpose")},t.prototype.gather=function(t,e,n){return Sr("gather")},t.prototype.gatherND=function(t,e){return Sr("gatherND")},t.prototype.scatterND=function(t,e,n){return Sr("scatterND")},t.prototype.batchToSpaceND=function(t,e,n){return Sr("batchToSpaceND")},t.prototype.spaceToBatchND=function(t,e,n){return Sr("spaceToBatchND")},t.prototype.resizeBilinear=function(t,e,n,r){return Sr("resizeBilinear")},t.prototype.resizeBilinearBackprop=function(t,e,n){return Sr("resizeBilinearBackprop")},t.prototype.resizeNearestNeighbor=function(t,e,n,r){return Sr("resizeNearestNeighbor")},t.prototype.resizeNearestNeighborBackprop=function(t,e,n){return Sr("resizeNearestNeighborBackprop")},t.prototype.batchNormalization=function(t,e,n,r,o,a){return Sr("batchNormalization")},t.prototype.localResponseNormalization4D=function(t,e,n,r,o){return Sr("localResponseNormalization4D")},t.prototype.LRNGrad=function(t,e,n,r,o,a,i){return Sr("LRNGrad")},t.prototype.multinomial=function(t,e,n,r){return Sr("multinomial")},t.prototype.oneHot=function(t,e,n,r){return Sr("oneHot")},t.prototype.cumsum=function(t,e,n,r){return Sr("cumsum")},t.prototype.nonMaxSuppression=function(t,e,n,r,o){return Sr("nonMaxSuppression")},t.prototype.fft=function(t){return Sr("fft")},t.prototype.ifft=function(t){return Sr("ifft")},t.prototype.complex=function(t,e){return Sr("complex")},t.prototype.real=function(t){return Sr("real")},t.prototype.imag=function(t){return Sr("imag")},t.prototype.cropAndResize=function(t,e,n,r,o,a){return Sr("cropAndResize")},t.prototype.depthToSpace=function(t,e,n){return Sr("depthToSpace")},t.prototype.split=function(t,e,n){return Sr("split")},t.prototype.sparseToDense=function(t,e,n,r){return Sr("sparseToDense")},t.prototype.diag=function(t){return Sr("diag")},t.prototype.fill=function(t,e,n){return Sr("fill")},t.prototype.onesLike=function(t){return Sr("onesLike")},t.prototype.zerosLike=function(t){return Sr("zerosLike")},t.prototype.linspace=function(t,e,n){return Sr("linspace")},t.prototype.dispose=function(){return Sr("dispose")},t}();function Sr(t){throw new Error("'"+t+"' not yet implemented or not found in the registry. Did you forget to import the kernel?")}function Ar(t,e){for(var n=t.length,r=[],o=0;o<n;o++){var a=n-1-o,i=t[a]||1;(e[e.length-1-o]||1)>1&&1===i&&r.unshift(a)}return r}function Or(t,e){for(var n=[],r=0;r<e.length;r++){var o=t[t.length-r-1],a=e.length-r-1,i=e[a];(null==o||1===o&&i>1)&&n.unshift(a)}return n}function Tr(t,e){for(var n=[],r=Math.max(t.length,e.length),o=0;o<r;o++){var a=t[t.length-o-1];null==a&&(a=1);var i=e[e.length-o-1];if(null==i&&(i=1),1===a)n.unshift(i);else if(1===i)n.unshift(a);else{if(a!==i)throw Error("Operands could not be broadcast together with shapes "+t+" and "+e+".");n.unshift(a)}}return n}function Dr(t,e,n,r,o,a,i){void 0===i&&(i="channelsLast");var s,u=Br(e),c=u[0],l=u[1];if("channelsLast"===i)s=[c,l,t[3],t[3]];else{if("channelsFirst"!==i)throw new Error("Unknown dataFormat "+i);s=[c,l,t[1],t[1]]}return Fr(t,s,n,r,o,a,!1,i)}function Nr(t,e,n,r,o,a,i){void 0===i&&(i="NDHWC");var s,u,c=Lr(e),l=c[0],f=c[1],h=c[2];if("NDHWC"===i)u="channelsLast",s=[l,f,h,t[4],t[4]];else{if("NCDHW"!==i)throw new Error("Unknown dataFormat "+i);u="channelsFirst",s=[l,f,h,t[1],t[1]]}return Mr(t,s,n,r,o,!1,u,a)}function Fr(t,e,n,r,o,a,i,s){void 0===i&&(i=!1),void 0===s&&(s="channelsLast");var u=[-1,-1,-1,-1],c=u[0],l=u[1],f=u[2],h=u[3];if("channelsLast"===s)c=t[0],l=t[1],f=t[2],h=t[3];else{if("channelsFirst"!==s)throw new Error("Unknown dataFormat "+s);c=t[0],h=t[1],l=t[2],f=t[3]}var p,d=e[0],v=e[1],m=e[3],g=Br(n),y=g[0],b=g[1],x=Br(r),w=x[0],C=x[1],_=Wr(d,w),k=Wr(v,C),R=function(t,e,n,r,o,a,i,s){var u,c,l;if("number"==typeof t){u={top:t,bottom:t,left:t,right:t,type:0===t?"VALID":"NUMBER"};var f=function(t,e,n,r,o){null==r&&(r=Pr(t,e,n));var a=t[1],i=Ur((t[0]-e+2*r)/n+1,o);E(S(i),(function(){return"The output # of rows ("+i+") must be an integer. Change the stride and/or zero pad parameters"}));var s=Ur((a-e+2*r)/n+1,o);return E(S(s),(function(){return"The output # of columns ("+s+") must be an integer. Change the stride and/or zero pad parameters"})),[i,s]}([e,n],a,r,t,s);c=f[0],l=f[1]}else if("same"===t){c=Math.ceil(e/r),l=Math.ceil(n/o);var h=Math.max(0,(c-1)*r+a-e),p=Math.max(0,(l-1)*o+i-n),d=Math.floor(h/2),v=h-d,m=Math.floor(p/2);u={top:d,bottom:v,left:m,right:p-m,type:"SAME"}}else{if("valid"!==t)throw Error("Unknown padding parameter: "+t);u={top:0,bottom:0,left:0,right:0,type:"VALID"},c=Math.ceil((e-a+1)/r),l=Math.ceil((n-i+1)/o)}return{padInfo:u,outHeight:c,outWidth:l}}(o,l,f,y,b,_,k,a),I=R.padInfo,A=R.outHeight,O=R.outWidth,T=i?m*h:m;return"channelsFirst"===s?p=[c,T,A,O]:"channelsLast"===s&&(p=[c,A,O,T]),{batchSize:c,dataFormat:s,inHeight:l,inWidth:f,inChannels:h,outHeight:A,outWidth:O,outChannels:T,padInfo:I,strideHeight:y,strideWidth:b,filterHeight:d,filterWidth:v,effectiveFilterHeight:_,effectiveFilterWidth:k,dilationHeight:w,dilationWidth:C,inShape:t,outShape:p,filterShape:e}}function Mr(t,e,n,r,o,a,i,s){void 0===a&&(a=!1),void 0===i&&(i="channelsLast");var u=[-1,-1,-1,-1,-1],c=u[0],l=u[1],f=u[2],h=u[3],p=u[4];if("channelsLast"===i)c=t[0],l=t[1],f=t[2],h=t[3],p=t[4];else{if("channelsFirst"!==i)throw new Error("Unknown dataFormat "+i);c=t[0],p=t[1],l=t[2],f=t[3],h=t[4]}var d,v=e[0],m=e[1],g=e[2],y=e[4],b=Lr(n),x=b[0],w=b[1],C=b[2],_=Lr(r),k=_[0],R=_[1],I=_[2],A=Wr(v,k),O=Wr(m,R),T=Wr(g,I),D=function(t,e,n,r,o,a,i,s,u,c,l){var f,h,p,d;if("number"==typeof t){f={top:t,bottom:t,left:t,right:t,front:t,back:t,type:0===t?"VALID":"NUMBER"};var v=function(t,e,n,r,o,a){null==o&&(o=Pr(t,e,r));var i=t[1],s=t[2],u=Ur((t[0]-e+2*o)/r+1,a);E(S(u),(function(){return"The output # of depths ("+u+") must be an integer. Change the stride and/or zero pad parameters"}));var c=Ur((i-e+2*o)/r+1,a);E(S(c),(function(){return"The output # of rows ("+c+") must be an integer. Change the stride and/or zero pad parameters"}));var l=Ur((s-e+2*o)/r+1,a);return E(S(l),(function(){return"The output # of columns ("+l+") must be an integer. Change the stride and/or zero pad parameters"})),[u,c,l,1]}([e,n,r,1],s,0,o,t,l);h=v[0],p=v[1],d=v[2]}else if("same"===t){var m=((h=Math.ceil(e/o))-1)*o+s-e,g=((p=Math.ceil(n/a))-1)*a+u-n,y=((d=Math.ceil(r/i))-1)*i+c-r,b=Math.floor(m/2),x=m-b,w=Math.floor(g/2),C=g-w,_=Math.floor(y/2);f={top:w,bottom:C,left:_,right:y-_,front:b,back:x,type:"SAME"}}else{if("valid"!==t)throw Error("Unknown padding parameter: "+t);f={top:0,bottom:0,left:0,right:0,front:0,back:0,type:"VALID"},h=Math.ceil((e-s+1)/o),p=Math.ceil((n-u+1)/a),d=Math.ceil((r-c+1)/i)}return{padInfo:f,outDepth:h,outHeight:p,outWidth:d}}(o,l,f,h,x,w,C,A,O,T,s),N=D.padInfo,F=D.outDepth,M=D.outHeight,P=D.outWidth,B=a?y*p:y;return"channelsFirst"===i?d=[c,B,F,M,P]:"channelsLast"===i&&(d=[c,F,M,P,B]),{batchSize:c,dataFormat:i,inDepth:l,inHeight:f,inWidth:h,inChannels:p,outDepth:F,outHeight:M,outWidth:P,outChannels:B,padInfo:N,strideDepth:x,strideHeight:w,strideWidth:C,filterDepth:v,filterHeight:m,filterWidth:g,effectiveFilterDepth:A,effectiveFilterHeight:O,effectiveFilterWidth:T,dilationDepth:k,dilationHeight:R,dilationWidth:I,inShape:t,outShape:d,filterShape:e}}function Pr(t,e,n,r){void 0===r&&(r=1);var o=Wr(e,r);return Math.floor((t[0]*(n-1)-n+o)/2)}function Br(t){return"number"==typeof t?[t,t,t]:2===t.length?[t[0],t[1],1]:t}function Lr(t){return"number"==typeof t?[t,t,t]:t}function Wr(t,e){return e<=1?t:t+(t-1)*(e-1)}function Ur(t,e){if(!e)return t;switch(e){case"round":return Math.round(t);case"ceil":return Math.ceil(t);case"floor":return Math.floor(t);default:throw new Error("Unknown roundingMode "+e)}}function jr(t){var e=Br(t),n=e[0],r=e[1],o=e[2];return 1===n&&1===r&&1===o}function zr(t,e){return jr(t)||jr(e)}function Vr(t){if("NHWC"===t)return"channelsLast";if("NCHW"===t)return"channelsFirst";throw new Error("Unknown dataFormat "+t)}function Gr(t,e,n){if("complex64"===e){if("complex64"===t.dtype)return t.clone();var r=hn(t.shape),o=t.toFloat(),a=n.complex(o,r);return r.dispose(),o.dispose(),a}if(!U(t.dtype,e))return Ot.makeTensorFromDataId(t.dataId,t.shape,e);if("complex64"===t.dtype){var i=n.real(t);return a=i.cast(e),i.dispose(),a}if("int32"===e)return n.int(t);if("bool"===e){var s=an(0,t.dtype);return a=n.notEqual(t,s),s.dispose(),a}throw new Error("Error in Cast: failed to cast "+t.dtype+" to "+e)}function Hr(t,e){return Ot.makeTensorFromDataId(t.dataId,e,t.dtype)}function qr(t,e,n){var r=(e-t)/(n-1),o=tt(n,"float32");o[0]=t;for(var a=1;a<o.length;a++)o[a]=o[a-1]+r;return sn(o,"float32")}Object.freeze({castTensor:Gr,reshapeTensor:Hr,linspaceImpl:qr,upcastType:Et,axesAreInnerMostDims:Ve,combineLocations:Ge,computeOutAndReduceShapes:He,expandShapeToKeepDim:qe,assertAxesAreInnerMostDims:Ke,getAxesPermutation:Xe,getUndoAxesPermutation:$e,getInnerMostAxes:Ye,getBroadcastDims:Ar,getReductionAxes:Or,assertAndGetBroadcastShape:Tr,assertParamsConsistent:Je,computeOutShape:Qe,computePool2DInfo:Dr,computePool3DInfo:Nr,computeConv2DInfo:Fr,computeConv3DInfo:Mr,computeDefaultPad:Pr,tupleValuesAreOne:jr,eitherStridesOrDilationsAreOne:zr,convertConv2DDataFormat:Vr});function Kr(t,e){if(t.length!==e.length)throw new Error("Cannot merge real and imag arrays of different lengths. real:"+t.length+", imag: "+e.length+".");for(var n=new Float32Array(2*t.length),r=0;r<n.length;r+=2)n[r]=t[r/2],n[r+1]=e[r/2];return n}function Xr(t,e){return{real:t[2*e],imag:t[2*e+1]}}function $r(t,e,n,r){t[2*r]=e,t[2*r+1]=n}function Yr(t,e,n){var r=(n?2:-2)*Math.PI*(t/e);return{real:Math.cos(r),imag:Math.sin(r)}}function Jr(t,e,n,r,o){for(var a=Array.from(e).map((function(t,e){return{score:t,boxIndex:e}})).filter((function(t){return t.score>o})).sort((function(t,e){return e.score-t.score})),i=[],s=0;s<a.length;s++){var u=a[s],c=u.score,l=u.boxIndex;if(c<o)break;for(var f=!1,h=i.length-1;h>=0;--h)if(Qr(t,l,i[h])>=r){f=!0;break}if(!f&&(i.push(l),i.length>=n))break}return sn(i,"int32")}function Qr(t,e,n){var r=t.subarray(4*e,4*e+4),o=t.subarray(4*n,4*n+4),a=Math.min(r[0],r[2]),i=Math.min(r[1],r[3]),s=Math.max(r[0],r[2]),u=Math.max(r[1],r[3]),c=Math.min(o[0],o[2]),l=Math.min(o[1],o[3]),f=Math.max(o[0],o[2]),h=Math.max(o[1],o[3]),p=(s-a)*(u-i),d=(f-c)*(h-l);if(p<=0||d<=0)return 0;var v=Math.max(a,c),m=Math.max(i,l),g=Math.min(s,f),y=Math.min(u,h),b=Math.max(g-v,0)*Math.max(y-m,0);return b/(p+d-b)}function Zr(t,e,n){var r=new Array(t.rank).fill(0),o=t.shape.slice();return e.map((function(e){o[n]=e;var a=t.slice(r,o);return r[n]+=e,a}))}function to(t,e){for(var n=new Array(t.rank),r=0;r<n.length;r++)n[r]=t.shape[r]*e[r];var o=Mn(n,t.dtype);for(r=0;r<o.values.length;++r){for(var a=o.indexToLoc(r),i=new Array(t.rank),s=0;s<i.length;s++)i[s]=a[s]%t.shape[s];var u=t.locToIndex(i);o.values[r]=t.values[u]}return o.toTensor()}function eo(t,e,n,r,o){for(var a=e[e.length-1],i=[t.length/a,a],s=i[0],u=i[1],c=P(n,s*r),l=P("int32",s*r),f=0;f<s;f++){for(var h=f*u,p=t.subarray(h,h+u),d=[],v=0;v<p.length;v++)d.push({value:p[v],index:v});d.sort((function(t,e){return e.value-t.value}));var m=f*r,g=c.subarray(m,m+r),y=l.subarray(m,m+r);for(v=0;v<r;v++)g[v]=d[v].value,y[v]=d[v].index}var b=e.slice();return b[b.length-1]=r,[rn(c,b,n),rn(l,b,"int32")]}function no(t,e){for(var n=[],r=0;r<e.length;r++)e[r]&&n.push(r);var o=Mn(t,"int32"),a=Mn([n.length,t.length],"int32");for(r=0;r<n.length;r++){var i=o.indexToLoc(n[r]),s=r*t.length;a.values.set(i,s)}return a.toTensor()}var ro=function(t,e){this.outputShape=[],this.outputShape=t,this.variableNames=e.map((function(t,e){return"T"+e}));var n=[];this.variableNames.forEach((function(t){n.push("float v"+t+" = get"+t+"AtOutCoords();")}));var r=this.variableNames.map((function(t){return"v"+t})).join(" + ");this.userCode="\n void main() {\n "+n.join("\n ")+"\n\n float result = "+r+";\n setOutput(result);\n }\n "},oo=function(t,e){this.outputShape=[],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=t,this.variableNames=e.map((function(t,e){return"T"+e}));var n=[];this.variableNames.forEach((function(t){n.push("vec4 v"+t+" = get"+t+"AtOutCoords();")}));var r=this.variableNames.map((function(t){return"v"+t})).join(" + ");this.userCode="\n void main() {\n "+n.join("\n ")+"\n\n vec4 result = "+r+";\n setOutput(result);\n }\n "},ao=function(t,e,n){this.variableNames=["A"];var r=t.windowSize,o=t.batchSize,a=t.inSize,i=Math.ceil(a/r);n||this.variableNames.push("bestIndicesA"),this.outputShape=[o,i];var s="max"===e?">":"<",u=n?"inOffset + i;":"round(getBestIndicesA(batch, inOffset + i));";this.userCode="\n void main() {\n ivec2 coords = getOutputCoords();\n int batch = coords[0];\n int outIdx = coords[1];\n int inOffset = outIdx * "+r+";\n\n int bestIndex = inOffset;\n float bestValue = getA(batch, bestIndex);\n\n for (int i = 0; i < "+r+"; i++) {\n int inIdx = "+u+";\n float candidate = getA(batch, inIdx);\n if (candidate "+s+" bestValue) {\n bestValue = candidate;\n bestIndex = inIdx;\n }\n }\n setOutput(float(bestIndex));\n }\n "};function io(t,e){return["x","y","z","w","u","v"].slice(0,e).map((function(e){return t+"."+e}))}function so(t,e){return 1===e?[t]:io(t,e)}function uo(){var t,e,n,r,o,a,i,s,u,c;return 2===f().getNumber("WEBGL_VERSION")?(t="#version 300 es",e="in",n="out",r="in",o="texture",a="outputColor",i="out vec4 outputColor;",s="\n bool isnan_custom(float val) {\n return (val > 0.0 || val < 0.0) ? false : val != 0.0;\n }\n\n bvec4 isnan_custom(vec4 val) {\n return bvec4(isnan_custom(val.x),\n isnan_custom(val.y), isnan_custom(val.z), isnan_custom(val.w));\n }\n\n #define isnan(value) isnan_custom(value)\n ",u="",c="\n #define round(value) newRound(value)\n int newRound(float value) {\n return int(floor(value + 0.5));\n }\n\n ivec4 newRound(vec4 value) {\n return ivec4(floor(value + vec4(0.5)));\n }\n "):(t="",e="attribute",n="varying",r="varying",o="texture2D",a="gl_FragColor",i="",s="\n #define isnan(value) isnan_custom(value)\n bool isnan_custom(float val) {\n return (val > 0. || val < 1. || val == 0.) ? false : true;\n }\n bvec4 isnan_custom(vec4 val) {\n return bvec4(isnan(val.x), isnan(val.y), isnan(val.z), isnan(val.w));\n }\n ",u="\n uniform float INFINITY;\n\n bool isinf(float val) {\n return abs(val) == INFINITY;\n }\n bvec4 isinf(vec4 val) {\n return equal(abs(val), vec4(INFINITY));\n }\n ",c="\n int round(float value) {\n return int(floor(value + 0.5));\n }\n\n ivec4 round(vec4 value) {\n return ivec4(floor(value + vec4(0.5)));\n }\n "),{version:t,attribute:e,varyingVs:n,varyingFs:r,texture2D:o,output:a,defineOutput:i,defineSpecialNaN:s,defineSpecialInf:u,defineRound:c}}function co(t,e,n){void 0===n&&(n="index");var r=Y(e);return r.map((function(e,o){return"int "+t[o]+" = "+n+" / "+e+"; "+(o===r.length-1?"int "+t[o+1]+" = "+n+" - "+t[o]+" * "+e:"index -= "+t[o]+" * "+e)+";"})).join("")}function lo(t){var e=Y(t).map((function(t){return t.toString()}));return"\n int getFlatIndex(ivec3 coords) {\n return coords.x * "+e[0]+" + coords.y * "+e[1]+" + coords.z;\n }\n"}var fo="\n const float FLOAT_MAX = 1.70141184e38;\n const float FLOAT_MIN = 1.17549435e-38;\n\n lowp vec4 encode_float(highp float v) {\n if (isnan(v)) {\n return vec4(255, 255, 255, 255);\n }\n\n highp float av = abs(v);\n\n if(av < FLOAT_MIN) {\n return vec4(0.0, 0.0, 0.0, 0.0);\n } else if(v > FLOAT_MAX) {\n return vec4(0.0, 0.0, 128.0, 127.0) / 255.0;\n } else if(v < -FLOAT_MAX) {\n return vec4(0.0, 0.0, 128.0, 255.0) / 255.0;\n }\n\n highp vec4 c = vec4(0,0,0,0);\n\n highp float e = floor(log2(av));\n highp float m = exp2(fract(log2(av))) - 1.0;\n\n c[2] = floor(128.0 * m);\n m -= c[2] / 128.0;\n c[1] = floor(32768.0 * m);\n m -= c[1] / 32768.0;\n c[0] = floor(8388608.0 * m);\n\n highp float ebias = e + 127.0;\n c[3] = floor(ebias / 2.0);\n ebias -= c[3] * 2.0;\n c[2] += floor(ebias) * 128.0;\n\n c[3] += 128.0 * step(0.0, -v);\n\n return c / 255.0;\n }\n";function ho(t,e,n,r){var o=[];t.forEach((function(t){var e=R(t.shapeInfo.logicalShape);t.shapeInfo.isUniform?o.push("uniform float "+t.name+(e>1?"["+e+"]":"")+";"):(o.push("uniform sampler2D "+t.name+";"),o.push("uniform int offset"+t.name+";"))}));var a,i,s=o.join("\n"),u=t.map((function(t){return function(t,e,n){void 0===n&&(n=!1);var r="";r+=n?function t(e){var n,r,o;switch(e.shapeInfo.logicalShape.length){case 0:return n=e.name,r="get"+n.charAt(0).toUpperCase()+n.slice(1),o=uo(),"\n vec4 "+r+"() {\n return "+o.texture2D+"("+n+", halfCR);\n }\n ";case 1:return function(t){var e=t.name,n="get"+e.charAt(0).toUpperCase()+e.slice(1),r=t.shapeInfo.texShape,o=[Math.ceil(r[0]/2),Math.ceil(r[1]/2)],a=uo();return"\n vec4 "+n+"(int index) {\n vec2 uv = packedUVfrom1D(\n "+o[0]+", "+o[1]+", index);\n return "+a.texture2D+"("+e+", uv);\n }\n "}(e);case 2:return function(t){var e=t.shapeInfo.logicalShape,n=t.name,r="get"+n.charAt(0).toUpperCase()+n.slice(1),o=t.shapeInfo.texShape,a=o[0],i=o[1],s=uo();if(null!=o&&I(e,o))return"\n vec4 "+r+"(int row, int col) {\n vec2 uv = (vec2(col, row) + halfCR) / vec2("+i+".0, "+a+".0);\n\n return "+s.texture2D+"("+n+", uv);\n }\n ";var u=[Math.ceil(o[0]/2),Math.ceil(o[1]/2)];return"\n vec4 "+r+"(int row, int col) {\n vec2 uv = packedUVfrom2D("+Math.ceil(e[1]/2)+", "+u[0]+", "+u[1]+", row, col);\n return "+s.texture2D+"("+n+", uv);\n }\n "}(e);case 3:return function(e){var n=e.shapeInfo.logicalShape,r=e.name,o="get"+r.charAt(0).toUpperCase()+r.slice(1),a=e.shapeInfo.texShape,i=[Math.ceil(a[0]/2),Math.ceil(a[1]/2)];if(1===n[0]){var s=wo(e,n.slice(1));return"\n "+t(s)+"\n vec4 "+o+"(int b, int row, int col) {\n return "+o+"("+Eo(["b","row","col"],[1,2])+");\n }\n "}var u=i[0],c=i[1],l=Math.ceil(n[2]/2);return"\n vec4 "+o+"(int b, int row, int col) {\n vec2 uv = packedUVfrom3D(\n "+u+", "+c+", "+l*Math.ceil(n[1]/2)+", "+l+", b, row, col);\n return "+uo().texture2D+"("+r+", uv);\n }\n "}(e);default:return function(t){for(var e=t.shapeInfo.logicalShape,n=e.length,r=t.name,o="get"+r.charAt(0).toUpperCase()+r.slice(1),a=t.shapeInfo.texShape,i=[Math.ceil(a[0]/2),Math.ceil(a[1]/2)],s=i[0],u=i[1],c=Math.ceil(e[n-1]/2),l=c*Math.ceil(e[n-2]/2),f="int b, int row, int col",h="b * "+l+" + (row / 2) * "+c+" + (col / 2)",p=2;p<n-1;p++)f="int b"+p+", "+f,h="b"+p+" * "+(l*=e[n-p-1])+" + "+h;return"\n vec4 "+o+"("+f+") {\n int index = "+h+";\n int texR = index / "+u+";\n int texC = index - texR * "+u+";\n vec2 uv = (vec2(texC, texR) + halfCR) / vec2("+u+", "+s+");\n return "+uo().texture2D+"("+r+", uv);\n }\n "}(e)}}(t):function t(e){var n=e.shapeInfo.logicalShape;switch(n.length){case 0:return function(t){var e=t.name,n="get"+e.charAt(0).toUpperCase()+e.slice(1);if(t.shapeInfo.isUniform)return"float "+n+"() {return "+e+";}";var r=t.shapeInfo.texShape,o=r[0],a=r[1];if(1===o&&1===a)return"\n float "+n+"() {\n return sampleTexture("+e+", halfCR);\n }\n ";var i=t.shapeInfo.texShape;return"\n float "+n+"() {\n vec2 uv = uvFromFlat("+i[0]+", "+i[1]+", "+yo(e)+");\n return sampleTexture("+e+", uv);\n }\n "}(e);case 1:return function(t){var e=t.name,n="get"+e.charAt(0).toUpperCase()+e.slice(1);if(t.shapeInfo.isUniform)return"\n float "+n+"(int index) {\n "+bo(t)+"\n }\n ";var r=t.shapeInfo.texShape,o=r[0],a=r[1];if(1===a&&1===o)return"\n float "+n+"(int index) {\n return sampleTexture("+e+", halfCR);\n }\n ";var i=yo(e);return 1===a?"\n float "+n+"(int index) {\n vec2 uv = vec2(0.5, (float(index + "+i+") + 0.5) / "+o+".0);\n return sampleTexture("+e+", uv);\n }\n ":1===o?"\n float "+n+"(int index) {\n vec2 uv = vec2((float(index + "+i+") + 0.5) / "+a+".0, 0.5);\n return sampleTexture("+e+", uv);\n }\n ":"\n float "+n+"(int index) {\n vec2 uv = uvFromFlat("+o+", "+a+", index + "+i+");\n return sampleTexture("+e+", uv);\n }\n "}(e);case 2:return function(e){var n=e.shapeInfo.logicalShape,r=e.name,o="get"+r.charAt(0).toUpperCase()+r.slice(1),a=e.shapeInfo.texShape;if(null!=a&&I(n,a)){var i=a[0];return"\n float "+o+"(int row, int col) {\n vec2 uv = (vec2(col, row) + halfCR) / vec2("+a[1]+".0, "+i+".0);\n return sampleTexture("+r+", uv);\n }\n "}var s=M(n),u=s.newShape,c=s.keptDims,l=u;if(l.length<n.length){var f=wo(e,l);return"\n "+t(f)+"\n float "+o+"(int row, int col) {\n return "+o+"("+Eo(["row","col"],c)+");\n }\n "}if(e.shapeInfo.isUniform)return"\n float "+o+"(int row, int col) {\n int index = round(dot(vec2(row, col), vec2("+n[1]+", 1)));\n "+bo(e)+"\n }\n ";var h=a[0],p=a[1],d=yo(r);return 1===p?"\n float "+o+"(int row, int col) {\n float index = dot(vec3(row, col, "+d+"), vec3("+n[1]+", 1, 1));\n vec2 uv = vec2(0.5, (index + 0.5) / "+h+".0);\n return sampleTexture("+r+", uv);\n }\n ":1===h?"\n float "+o+"(int row, int col) {\n float index = dot(vec3(row, col, "+d+"), vec3("+n[1]+", 1, 1));\n vec2 uv = vec2((index + 0.5) / "+p+".0, 0.5);\n return sampleTexture("+r+", uv);\n }\n ":"\n float "+o+"(int row, int col) {\n // Explicitly use integer operations as dot() only works on floats.\n int index = row * "+n[1]+" + col + "+d+";\n vec2 uv = uvFromFlat("+h+", "+p+", index);\n return sampleTexture("+r+", uv);\n }\n"}(e);case 3:return function(e){var n=e.shapeInfo.logicalShape,r=e.name,o="get"+r.charAt(0).toUpperCase()+r.slice(1),a=n[1]*n[2],i=n[2],s=M(n),u=s.newShape,c=s.keptDims,l=u;if(l.length<n.length){var f=wo(e,l);return"\n "+t(f)+"\n float "+o+"(int row, int col, int depth) {\n return "+o+"("+Eo(["row","col","depth"],c)+");\n }\n "}if(e.shapeInfo.isUniform)return"\n float "+o+"(int row, int col, int depth) {\n int index = round(dot(vec3(row, col, depth),\n vec3("+a+", "+i+", 1)));\n "+bo(e)+"\n }\n ";var h=e.shapeInfo.texShape,p=h[0],d=h[1],v=e.shapeInfo.flatOffset;return d===a&&null==v?"\n float "+o+"(int row, int col, int depth) {\n float texR = float(row);\n float texC = dot(vec2(col, depth), vec2("+i+", 1));\n vec2 uv = (vec2(texC, texR) + halfCR) /\n vec2("+d+".0, "+p+".0);\n return sampleTexture("+r+", uv);\n }\n ":d===i&&null==v?"\n float "+o+"(int row, int col, int depth) {\n float texR = dot(vec2(row, col), vec2("+n[1]+", 1));\n float texC = float(depth);\n vec2 uv = (vec2(texC, texR) + halfCR) / vec2("+d+".0, "+p+".0);\n return sampleTexture("+r+", uv);\n }\n ":"\n float "+o+"(int row, int col, int depth) {\n // Explicitly use integer operations as dot() only works on floats.\n int index = row * "+a+" + col * "+i+" + depth + "+yo(r)+";\n vec2 uv = uvFromFlat("+p+", "+d+", index);\n return sampleTexture("+r+", uv);\n }\n "}(e);case 4:return function(e){var n=e.shapeInfo.logicalShape,r=e.name,o="get"+r.charAt(0).toUpperCase()+r.slice(1),a=n[3],i=n[2]*a,s=n[1]*i,u=M(n),c=u.newShape,l=u.keptDims;if(c.length<n.length){var f=wo(e,c);return"\n "+t(f)+"\n float "+o+"(int row, int col, int depth, int depth2) {\n return "+o+"("+Eo(["row","col","depth","depth2"],l)+");\n }\n "}if(e.shapeInfo.isUniform)return"\n float "+o+"(int row, int col, int depth, int depth2) {\n int index = round(dot(vec4(row, col, depth, depth2),\n vec4("+s+", "+i+", "+a+", 1)));\n "+bo(e)+"\n }\n ";var h=e.shapeInfo.flatOffset,p=e.shapeInfo.texShape,d=p[0],v=p[1];return v===s&&null==h?"\n float "+o+"(int row, int col, int depth, int depth2) {\n float texR = float(row);\n float texC =\n dot(vec3(col, depth, depth2),\n vec3("+i+", "+a+", 1));\n vec2 uv = (vec2(texC, texR) + halfCR) /\n vec2("+v+".0, "+d+".0);\n return sampleTexture("+r+", uv);\n }\n ":v===a&&null==h?"\n float "+o+"(int row, int col, int depth, int depth2) {\n float texR = dot(vec3(row, col, depth),\n vec3("+n[1]*n[2]+", "+n[2]+", 1));\n float texC = float(depth2);\n vec2 uv = (vec2(texC, texR) + halfCR) /\n vec2("+v+".0, "+d+".0);\n return sampleTexture("+r+", uv);\n }\n ":"\n float "+o+"(int row, int col, int depth, int depth2) {\n // Explicitly use integer operations as dot() only works on floats.\n int index = row * "+s+" + col * "+i+" +\n depth * "+a+" + depth2;\n vec2 uv = uvFromFlat("+d+", "+v+", index + "+yo(r)+");\n return sampleTexture("+r+", uv);\n }\n "}(e);case 5:return function(e){var n=e.shapeInfo.logicalShape,r=e.name,o="get"+r.charAt(0).toUpperCase()+r.slice(1),a=n[4],i=n[3]*a,s=n[2]*i,u=n[1]*s,c=M(n),l=c.newShape,f=c.keptDims;if(l.length<n.length){var h=wo(e,l);return"\n "+t(h)+"\n float "+o+"(int row, int col, int depth, int depth2, int depth3) {\n return "+o+"("+Eo(["row","col","depth","depth2","depth3"],f)+");\n }\n "}if(e.shapeInfo.isUniform)return"\n float "+o+"(int row, int col, int depth, int depth2, int depth3) {\n float index = dot(\n vec4(row, col, depth, depth2),\n vec4("+u+", "+s+", "+i+", "+a+")) +\n depth3;\n "+bo(e)+"\n }\n ";var p=e.shapeInfo.flatOffset,d=e.shapeInfo.texShape,v=d[0],m=d[1];return m===u&&null==p?"\n float "+o+"(int row, int col, int depth, int depth2, int depth3) {\n int texR = row;\n float texC = dot(vec4(col, depth, depth2, depth3),\n vec4("+s+", "+i+", "+a+", 1));\n vec2 uv = (vec2(texC, texR) + halfCR) /\n vec2("+m+".0, "+v+".0);\n return sampleTexture("+r+", uv);\n }\n ":m===a&&null==p?"\n float "+o+"(int row, int col, int depth, int depth2, int depth3) {\n float texR = dot(\n vec4(row, col, depth, depth2),\n vec4("+n[1]*n[2]*n[3]+",\n "+n[2]*n[3]+", "+n[3]+", 1));\n int texC = depth3;\n vec2 uv = (vec2(texC, texR) + halfCR) /\n vec2("+m+".0, "+v+".0);\n return sampleTexture("+r+", uv);\n }\n ":"\n float "+o+"(int row, int col, int depth, int depth2, int depth3) {\n // Explicitly use integer operations as dot() only works on floats.\n int index = row * "+u+" + col * "+s+" + depth * "+i+" +\n depth2 * "+a+" + depth3 + "+yo(r)+";\n vec2 uv = uvFromFlat("+v+", "+m+", index);\n return sampleTexture("+r+", uv);\n }\n "}(e);case 6:return function(e){var n=e.shapeInfo.logicalShape,r=e.name,o="get"+r.charAt(0).toUpperCase()+r.slice(1),a=M(n),i=a.newShape,s=a.keptDims;if(i.length<n.length){var u=wo(e,i);return"\n "+t(u)+"\n float "+o+"(int row, int col, int depth,\n int depth2, int depth3, int depth4) {\n return "+o+"("+Eo(["row","col","depth","depth2","depth3","depth4"],s)+");\n }\n "}var c=n[5],l=n[4]*c,f=n[3]*l,h=n[2]*f,p=n[1]*h;if(e.shapeInfo.isUniform)return"\n float "+o+"(int row, int col, int depth,\n int depth2, int depth3, int depth4) {\n int index = round(dot(\n vec4(row, col, depth, depth2),\n vec4("+p+", "+h+", "+f+", "+l+")) +\n dot(\n vec2(depth3, depth4),\n vec2("+c+", 1)));\n "+bo(e)+"\n }\n ";var d=e.shapeInfo.flatOffset,v=e.shapeInfo.texShape,m=v[0],g=v[1];return g===p&&null==d?"\n float "+o+"(int row, int col, int depth,\n int depth2, int depth3, int depth4) {\n int texR = row;\n float texC = dot(vec4(col, depth, depth2, depth3),\n vec4("+h+", "+f+", "+l+", "+c+")) +\n float(depth4);\n vec2 uv = (vec2(texC, texR) + halfCR) /\n vec2("+g+".0, "+m+".0);\n return sampleTexture("+r+", uv);\n }\n ":g===c&&null==d?"\n float "+o+"(int row, int col, int depth,\n int depth2, int depth3, int depth4) {\n float texR = dot(vec4(row, col, depth, depth2),\n vec4("+n[1]*n[2]*n[3]*n[4]+",\n "+n[2]*n[3]*n[4]+",\n "+n[3]*n[4]+",\n "+n[4]+")) + float(depth3);\n int texC = depth4;\n vec2 uv = (vec2(texC, texR) + halfCR) /\n vec2("+g+".0, "+m+".0);\n return sampleTexture("+r+", uv);\n }\n ":"\n float "+o+"(int row, int col, int depth,\n int depth2, int depth3, int depth4) {\n // Explicitly use integer operations as dot() only works on floats.\n int index = row * "+p+" + col * "+h+" + depth * "+f+" +\n depth2 * "+l+" + depth3 * "+c+" + depth4 + "+yo(r)+";\n vec2 uv = uvFromFlat("+m+", "+g+", index);\n return sampleTexture("+r+", uv);\n }\n "}(e);default:throw new Error(n.length+"-D input sampling is not yet supported")}}(t);var o=t.shapeInfo.logicalShape,a=e.logicalShape;return o.length<=a.length&&(r+=n?function(t,e){var n,r=t.name,o=r.charAt(0).toUpperCase()+r.slice(1),a="get"+o+"AtOutCoords",i=t.shapeInfo.logicalShape.length,s=e.logicalShape.length,u=Ar(t.shapeInfo.logicalShape,e.logicalShape),c=xo(s),l=s-i,f=["x","y","z","w","u","v"];n=0===i?"":s<2&&u.length>=1?"coords = 0;":u.map((function(t){return"coords."+f[t+l]+" = 0;"})).join("\n");var h;h=s<2&&i>0?"coords":t.shapeInfo.logicalShape.map((function(t,e){return"coords."+f[e+l]})).join(", ");var p="return outputValue;",d=1===R(t.shapeInfo.logicalShape),v=1===R(e.logicalShape);if(1!==i||d||v){if(d&&!v)p=1===s?"\n return vec4(outputValue.x, outputValue.x, 0., 0.);\n ":"\n return vec4(outputValue.x);\n ";else if(u.length){var m=i-2,g=i-1;u.indexOf(m)>-1&&u.indexOf(g)>-1?p="return vec4(outputValue.x);":u.indexOf(m)>-1?p="return vec4(outputValue.x, outputValue.y, outputValue.x, outputValue.y);":u.indexOf(g)>-1&&(p="return vec4(outputValue.xx, outputValue.zz);")}}else p="\n return vec4(outputValue.xy, outputValue.xy);\n ";return"\n vec4 "+a+"() {\n "+c+" coords = getOutputCoords();\n "+n+"\n vec4 outputValue = get"+o+"("+h+");\n "+p+"\n }\n "}(t,e):function(t,e){var n=t.name,r=n.charAt(0).toUpperCase()+n.slice(1),o="get"+r+"AtOutCoords",a=e.texShape,i=t.shapeInfo.texShape,s=t.shapeInfo.logicalShape.length,u=e.logicalShape.length;if(!t.shapeInfo.isUniform&&s===u&&null==t.shapeInfo.flatOffset&&I(i,a))return"\n float "+o+"() {\n return sampleTexture("+n+", resultUV);\n }\n ";var c=xo(u),l=Ar(t.shapeInfo.logicalShape,e.logicalShape),f=u-s,h=["x","y","z","w","u","v"];return"\n float "+o+"() {\n "+c+" coords = getOutputCoords();\n "+(0===s?"":u<2&&l.length>=1?"coords = 0;":l.map((function(t){return"coords."+h[t+f]+" = 0;"})).join("\n"))+"\n return get"+r+"("+(u<2&&s>0?"coords":t.shapeInfo.logicalShape.map((function(t,e){return"coords."+h[e+f]})).join(", "))+");\n }\n "}(t,e)),r}(t,e,r)})).join("\n"),c=e.texShape,l=uo(),f=function(t){return"\n float sampleTexture(sampler2D textureSampler, vec2 uv) {\n return "+t.texture2D+"(textureSampler, uv).r;\n }\n "}(l),h=function(t){return t.version+"\n precision highp float;\n precision highp int;\n precision highp sampler2D;\n "+t.varyingFs+" vec2 resultUV;\n "+t.defineOutput+"\n const vec2 halfCR = vec2(0.5, 0.5);\n\n struct ivec5\n {\n int x;\n int y;\n int z;\n int w;\n int u;\n };\n\n struct ivec6\n {\n int x;\n int y;\n int z;\n int w;\n int u;\n int v;\n };\n\n uniform float NAN;\n "+t.defineSpecialNaN+"\n "+t.defineSpecialInf+"\n "+t.defineRound+"\n\n int imod(int x, int y) {\n return x - y * (x / y);\n }\n\n int idiv(int a, int b, float sign) {\n int res = a / b;\n int mod = imod(a, b);\n if (sign < 0. && mod != 0) {\n res -= 1;\n }\n return res;\n }\n\n //Based on the work of Dave Hoskins\n //https://www.shadertoy.com/view/4djSRW\n #define HASHSCALE1 443.8975\n float random(float seed){\n vec2 p = resultUV * seed;\n vec3 p3 = fract(vec3(p.xyx) * HASHSCALE1);\n p3 += dot(p3, p3.yzx + 19.19);\n return fract((p3.x + p3.y) * p3.z);\n }\n\n "+po+"\n "+vo+"\n "+mo+"\n "}(l);return e.isPacked?(a=function(t,e){switch(t.length){case 0:return"\n int getOutputCoords() {\n return 0;\n }\n ";case 1:return function(t,e){var n=[Math.ceil(e[0]/2),Math.ceil(e[1]/2)];return 1===n[0]?"\n int getOutputCoords() {\n return 2 * int(resultUV.x * "+n[1]+".0);\n }\n ":1===n[1]?"\n int getOutputCoords() {\n return 2 * int(resultUV.y * "+n[0]+".0);\n }\n ":"\n int getOutputCoords() {\n ivec2 resTexRC = ivec2(resultUV.yx *\n vec2("+n[0]+", "+n[1]+"));\n return 2 * (resTexRC.x * "+n[1]+" + resTexRC.y);\n }\n "}(0,e);case 2:return function(t,e){var n=[Math.ceil(e[0]/2),Math.ceil(e[1]/2)];if(I(t,e))return"\n ivec2 getOutputCoords() {\n return 2 * ivec2(resultUV.yx * vec2("+n[0]+", "+n[1]+"));\n }\n ";var r=Math.ceil(t[1]/2);return"\n ivec2 getOutputCoords() {\n ivec2 resTexRC = ivec2(resultUV.yx *\n vec2("+n[0]+", "+n[1]+"));\n\n int index = resTexRC.x * "+n[1]+" + resTexRC.y;\n int r = 2 * (index / "+r+");\n int c = imod(index, "+r+") * 2;\n\n return ivec2(r, c);\n }\n "}(t,e);case 3:return n=t,r=e,o=[Math.ceil(r[0]/2),Math.ceil(r[1]/2)],i=(a=Math.ceil(n[2]/2))*Math.ceil(n[1]/2),"\n ivec3 getOutputCoords() {\n ivec2 resTexRC = ivec2(resultUV.yx *\n vec2("+o[0]+", "+o[1]+"));\n int index = resTexRC.x * "+o[1]+" + resTexRC.y;\n\n int b = index / "+i+";\n index -= b * "+i+";\n\n int r = 2 * (index / "+a+");\n int c = imod(index, "+a+") * 2;\n\n return ivec3(b, r, c);\n }\n ";default:return function(t,e){for(var n=[Math.ceil(e[0]/2),Math.ceil(e[1]/2)],r=Math.ceil(t[t.length-1]/2),o=r*Math.ceil(t[t.length-2]/2),a=o,i="",s="b, r, c",u=2;u<t.length-1;u++)i="\n int b"+u+" = index / "+(a*=t[t.length-u-1])+";\n index -= b"+u+" * "+a+";\n "+i,s="b"+u+", "+s;return"\n ivec"+t.length+" getOutputCoords() {\n ivec2 resTexRC = ivec2(resultUV.yx *\n vec2("+n[0]+", "+n[1]+"));\n int index = resTexRC.x * "+n[1]+" + resTexRC.y;\n\n "+i+"\n\n int b = index / "+o+";\n index -= b * "+o+";\n\n int r = 2 * (index / "+r+");\n int c = imod(index, "+r+") * 2;\n\n return ivec"+t.length+"("+s+");\n }\n "}(t,e)}var n,r,o,a,i}(e.logicalShape,c),i=function(t){return"\n void setOutput(vec4 val) {\n "+t.output+" = val;\n }\n "}(l)):(a=function(t,e){switch(t.length){case 0:return"\n int getOutputCoords() {\n return 0;\n }\n ";case 1:return function(t,e){return 1===e[0]?"\n int getOutputCoords() {\n return int(resultUV.x * "+e[1]+".0);\n }\n ":1===e[1]?"\n int getOutputCoords() {\n return int(resultUV.y * "+e[0]+".0);\n }\n ":"\n int getOutputCoords() {\n ivec2 resTexRC = ivec2(resultUV.yx *\n vec2("+e[0]+", "+e[1]+"));\n return resTexRC.x * "+e[1]+" + resTexRC.y;\n }\n "}(0,e);case 2:return function(t,e){return I(t,e)?"\n ivec2 getOutputCoords() {\n return ivec2(resultUV.yx * vec2("+e[0]+", "+e[1]+"));\n }\n ":1===t[1]?"\n ivec2 getOutputCoords() {\n ivec2 resTexRC = ivec2(resultUV.yx *\n vec2("+e[0]+", "+e[1]+"));\n int index = resTexRC.x * "+e[1]+" + resTexRC.y;\n return ivec2(index, 0);\n }\n ":1===t[0]?"\n ivec2 getOutputCoords() {\n ivec2 resTexRC = ivec2(resultUV.yx *\n vec2("+e[0]+", "+e[1]+"));\n int index = resTexRC.x * "+e[1]+" + resTexRC.y;\n return ivec2(0, index);\n }\n ":"\n ivec2 getOutputCoords() {\n ivec2 resTexRC = ivec2(resultUV.yx *\n vec2("+e[0]+", "+e[1]+"));\n int index = resTexRC.x * "+e[1]+" + resTexRC.y;\n int r = index / "+t[1]+";\n int c = index - r * "+t[1]+";\n return ivec2(r, c);\n }\n "}(t,e);case 3:return n=e,r=co(["r","c","d"],t),"\n ivec3 getOutputCoords() {\n ivec2 resTexRC = ivec2(resultUV.yx *\n vec2("+n[0]+", "+n[1]+"));\n int index = resTexRC.x * "+n[1]+" + resTexRC.y;\n "+r+"\n return ivec3(r, c, d);\n }\n ";case 4:return function(t,e){var n=co(["r","c","d","d2"],t);return"\n ivec4 getOutputCoords() {\n ivec2 resTexRC = ivec2(resultUV.yx *\n vec2("+e[0]+", "+e[1]+"));\n int index = resTexRC.x * "+e[1]+" + resTexRC.y;\n "+n+"\n return ivec4(r, c, d, d2);\n }\n "}(t,e);case 5:return function(t,e){var n=co(["r","c","d","d2","d3"],t);return"\n ivec5 getOutputCoords() {\n ivec2 resTexRC = ivec2(resultUV.yx * vec2("+e[0]+",\n "+e[1]+"));\n\n int index = resTexRC.x * "+e[1]+" + resTexRC.y;\n\n "+n+"\n\n ivec5 outShape = ivec5(r, c, d, d2, d3);\n return outShape;\n }\n "}(t,e);case 6:return function(t,e){var n=co(["r","c","d","d2","d3","d4"],t);return"\n ivec6 getOutputCoords() {\n ivec2 resTexRC = ivec2(resultUV.yx *\n vec2("+e[0]+", "+e[1]+"));\n int index = resTexRC.x * "+e[1]+" + resTexRC.y;\n\n "+n+"\n\n ivec6 result = ivec6(r, c, d, d2, d3, d4);\n return result;\n }\n "}(t,e);default:throw new Error(t.length+"-D output sampling is not yet supported")}var n,r}(e.logicalShape,c),i=function(t){return"\n void setOutput(float val) {\n "+t.output+" = vec4(val, 0, 0, 0);\n }\n "}(l)),r&&(h+=go),[h,f,i,s,a,u,n].join("\n")}var po="\nvec2 uvFromFlat(int texNumR, int texNumC, int index) {\n int texR = index / texNumC;\n int texC = index - texR * texNumC;\n return (vec2(texC, texR) + halfCR) / vec2(texNumC, texNumR);\n}\nvec2 packedUVfrom1D(int texNumR, int texNumC, int index) {\n int texelIndex = index / 2;\n int texR = texelIndex / texNumC;\n int texC = texelIndex - texR * texNumC;\n return (vec2(texC, texR) + halfCR) / vec2(texNumC, texNumR);\n}\n",vo="\nvec2 packedUVfrom2D(int texelsInLogicalRow, int texNumR,\n int texNumC, int row, int col) {\n int texelIndex = (row / 2) * texelsInLogicalRow + (col / 2);\n int texR = texelIndex / texNumC;\n int texC = texelIndex - texR * texNumC;\n return (vec2(texC, texR) + halfCR) / vec2(texNumC, texNumR);\n}\n",mo="\nvec2 packedUVfrom3D(int texNumR, int texNumC,\n int texelsInBatch, int texelsInLogicalRow, int b,\n int row, int col) {\n int index = b * texelsInBatch + (row / 2) * texelsInLogicalRow + (col / 2);\n int texR = index / texNumC;\n int texC = index - texR * texNumC;\n return (vec2(texC, texR) + halfCR) / vec2(texNumC, texNumR);\n}\n",go="\n float getChannel(vec4 frag, vec2 innerDims) {\n vec2 modCoord = mod(innerDims, 2.);\n return modCoord.x == 0. ?\n (modCoord.y == 0. ? frag.r : frag.g) :\n (modCoord.y == 0. ? frag.b : frag.a);\n }\n float getChannel(vec4 frag, int dim) {\n float modCoord = mod(float(dim), 2.);\n return modCoord == 0. ? frag.r : frag.g;\n }\n";function yo(t){return"offset"+t}function bo(t){var e=t.name,n=R(t.shapeInfo.logicalShape);return n<2?"return "+e+";":"\n for (int i = 0; i < "+n+"; i++) {\n if (i == index) {\n return "+e+"[i];\n }\n }\n "}function xo(t){if(t<=1)return"int";if(2===t)return"ivec2";if(3===t)return"ivec3";if(4===t)return"ivec4";if(5===t)return"ivec5";if(6===t)return"ivec6";throw Error("GPU for rank "+t+" is not yet supported")}function wo(t,e){var n=JSON.parse(JSON.stringify(t));return n.shapeInfo.logicalShape=e,n}function Eo(t,e){return e.map((function(e){return t[e]})).join(", ")}var Co=function(t,e,n,r){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,E(t.length>2,(function(){return"Packed arg"+(n.charAt(0).toUpperCase()+n.slice(1))+" supports only inputs with rank above 2."}));var o=t[t.length-1],a=Math.ceil(o/e);this.outputShape=t.slice(0,-1),a>1&&this.outputShape.push(a),r||this.variableNames.push("bestIndicesA");var i,s,u=this.outputShape,c=u.length,l=xo(c),f=so("coords",c);if(1===a){var h=xo(s=c+1);i="\n "+h+" sourceLocR = "+h+"("+f.join()+", 0);\n ++"+f[c-1]+";\n "+h+" sourceLocG = "+h+"("+f.join()+", 0);\n ++"+f[c-2]+";\n "+h+" sourceLocA = "+h+"("+f.join()+", 0);\n --"+f[c-1]+";\n "+h+" sourceLocB = "+h+"("+f.join()+", 0);\n --"+f[c-2]+";"}else s=c,i="\n "+l+" sourceLocR = coords;\n ++"+f[c-1]+";\n "+l+" sourceLocG = coords;\n ++"+f[c-2]+";\n "+l+" sourceLocA = coords;\n --"+f[c-1]+";\n "+l+" sourceLocB = coords;\n --"+f[c-2]+";";var p=["x","y","z","w","u","v"].slice(0,s),d="."+p[s-1],v=p.map((function(t){return"int "+t})),m=so("sourceLocR",s-1).concat("inIdx.r"),g=so("sourceLocG",s-1).concat("inIdx.g"),y=so("sourceLocB",s-1).concat("inIdx.b"),b=so("sourceLocA",s-1).concat("inIdx.a"),x="max"===n?"greaterThan":"lessThan",w=r?"":"\n inIdx = round(vec4(getBestIndicesAChannel("+m.join()+"),\n getBestIndicesAChannel("+g.join()+"),\n getBestIndicesAChannel("+y.join()+"),\n getBestIndicesAChannel("+b.join()+")));",C="vec4(\n getAChannel("+m.join()+"),\n hasNextCol ? getAChannel("+g.join()+") : 0.,\n hasNextRow ? getAChannel("+y.join()+") : 0.,\n hasNextRow && hasNextCol ? getAChannel("+b.join()+") : 0.)",_=r?"":"\n float getBestIndicesAChannel("+v.join()+") {\n return getChannel(getBestIndicesA("+p.join()+"),\n vec2("+p.slice(-2).join()+"));\n }";this.userCode="\n float getAChannel("+v.join()+") {\n return getChannel(getA("+p.join()+"),\n vec2("+p.slice(-2).join()+"));\n }\n "+_+"\n void main() {\n "+l+" coords = getOutputCoords();\n bool hasNextCol = "+f[c-1]+" < "+(u[c-1]-1)+";\n bool hasNextRow = "+f[c-2]+" < "+(u[c-2]-1)+";\n "+i+"\n ivec4 srcIdx = ivec4(sourceLocR"+d+", sourceLocG"+d+",\n sourceLocB"+d+", sourceLocA"+d+") * "+e+";\n ivec4 inIdx = srcIdx;\n vec4 bestIndex = vec4(inIdx);\n vec4 bestValue = "+C+";\n\n for (int i = 0; i < "+e+"; i++) {\n inIdx = srcIdx;\n "+w+"\n vec4 candidate = "+C+";\n bvec4 nan = isnan(candidate);\n bvec4 replace = bvec4(\n vec4("+x+"(candidate, bestValue)) * (vec4(1.0) - vec4(nan)));\n\n bestValue = vec4(replace.x ? candidate.x : bestValue.x,\n replace.y ? candidate.y : bestValue.y,\n replace.z ? candidate.z : bestValue.z,\n replace.w ? candidate.w : bestValue.w);\n bestIndex = mix(bestIndex, vec4(inIdx), vec4(replace));\n srcIdx++;\n }\n setOutput(bestIndex);\n }\n "},_o=function(t){this.variableNames=["dy"],this.outputShape=t.inShape;var e=t.filterHeight,n=t.filterWidth,r=t.strideHeight,o=t.strideWidth,a=t.dilationHeight,i=t.dilationWidth,s=t.effectiveFilterHeight,u=t.effectiveFilterWidth,c=s-1-t.padInfo.top,l=u-1-t.padInfo.left,f=1/(e*n);this.userCode="\n const ivec2 pads = ivec2("+c+", "+l+");\n const float avgMultiplier = float("+f+");\n\n void main() {\n ivec4 coords = getOutputCoords();\n int b = coords[0];\n int d = coords[3];\n\n ivec2 dyRCCorner = coords.yz - pads;\n int dyRCorner = dyRCCorner.x;\n int dyCCorner = dyRCCorner.y;\n\n // Convolve dy(?, ?, d) with pos mask(:, :, d) to get dx(xR, xC, d).\n // ? = to be determined. : = across all values in that axis.\n float dotProd = 0.0;\n for (int wR = 0; wR < "+s+";\n wR += "+a+") {\n float dyR = float(dyRCorner + wR) / "+r+".0;\n\n if (dyR < 0.0 || dyR >= "+t.outHeight+".0 || fract(dyR) > 0.0) {\n continue;\n }\n int idyR = int(dyR);\n\n for (int wC = 0; wC < "+u+";\n wC+= "+i+") {\n float dyC = float(dyCCorner + wC) / "+o+".0;\n\n if (dyC < 0.0 || dyC >= "+t.outWidth+".0 ||\n fract(dyC) > 0.0) {\n continue;\n }\n int idyC = int(dyC);\n\n float dyValue = getDy(b, idyR, idyC, d);\n\n dotProd += dyValue * avgMultiplier;\n }\n }\n setOutput(dotProd);\n }\n "},ko=function(t){this.variableNames=["dy"],this.outputShape=t.inShape;var e=t.filterDepth,n=t.filterHeight,r=t.filterWidth,o=t.strideDepth,a=t.strideHeight,i=t.strideWidth,s=t.dilationDepth,u=t.dilationHeight,c=t.dilationWidth,l=t.effectiveFilterDepth,f=t.effectiveFilterHeight,h=t.effectiveFilterWidth,p=l-1-t.padInfo.front,d=f-1-t.padInfo.top,v=h-1-t.padInfo.left,m=1/(e*n*r);this.userCode="\n const ivec3 pads = ivec3("+p+", "+d+", "+v+");\n const float avgMultiplier = float("+m+");\n\n void main() {\n ivec5 coords = getOutputCoords();\n int batch = coords.x;\n int ch = coords.u;\n\n ivec3 dyCorner = ivec3(coords.y, coords.z, coords.w) - pads;\n int dyDCorner = dyCorner.x;\n int dyRCorner = dyCorner.y;\n int dyCCorner = dyCorner.z;\n\n // Convolve dy(?, ?, ?, d) with pos mask(:, :, :, ch) to get\n // dx(xD, xR, xC, ch).\n // ? = to be determined. : = across all values in that axis.\n float dotProd = 0.0;\n\n for (int wD = 0; wD < "+l+";\n wD += "+s+") {\n float dyD = float(dyDCorner + wD) / "+o+".0;\n\n if (dyD < 0.0 || dyD >= "+t.outDepth+".0 || fract(dyD) > 0.0) {\n continue;\n }\n int idyD = int(dyD);\n\n for (int wR = 0; wR < "+f+";\n wR += "+u+") {\n float dyR = float(dyRCorner + wR) / "+a+".0;\n\n if (dyR < 0.0 || dyR >= "+t.outHeight+".0 ||\n fract(dyR) > 0.0) {\n continue;\n }\n int idyR = int(dyR);\n\n for (int wC = 0; wC < "+h+";\n wC += "+c+") {\n float dyC = float(dyCCorner + wC) / "+i+".0;\n\n if (dyC < 0.0 || dyC >= "+t.outWidth+".0 ||\n fract(dyC) > 0.0) {\n continue;\n }\n int idyC = int(dyC);\n\n float dyValue = getDy(batch, idyD, idyR, idyC, ch);\n\n dotProd += dyValue * avgMultiplier;\n }\n }\n }\n setOutput(dotProd);\n }\n "},Ro=function(t,e,n,r,o,a){this.outputShape=[],this.variableNames=["x","mean","variance"],Tr(t,e),Tr(t,n);var i="0.0";null!=r&&(Tr(t,r),this.variableNames.push("offset"),i="getOffsetAtOutCoords()");var s="1.0";null!=o&&(Tr(t,o),this.variableNames.push("scale"),s="getScaleAtOutCoords()"),this.outputShape=t,this.userCode="\n void main() {\n float x = getXAtOutCoords();\n float mean = getMeanAtOutCoords();\n float variance = getVarianceAtOutCoords();\n float offset = "+i+";\n float scale = "+s+";\n float inv = scale * inversesqrt(variance + float("+a+"));\n setOutput(dot(vec3(x, -mean, offset), vec3(inv, inv, 1)));\n }\n "},Io=function(t,e,n,r,o,a){this.packedInputs=!0,this.packedOutput=!0,this.variableNames=["x","mean","variance"],Tr(t,e),Tr(t,n);var i="vec4(0.0)";null!=r&&(Tr(t,r),this.variableNames.push("offset"),i="getOffsetAtOutCoords()");var s="vec4(1.0)";null!=o&&(Tr(t,o),this.variableNames.push("scale"),s="getScaleAtOutCoords()"),this.outputShape=t,this.userCode="\n void main() {\n vec4 offset = "+i+";\n vec4 scale = "+s+";\n\n vec4 x = getXAtOutCoords();\n vec4 mean = getMeanAtOutCoords();\n vec4 variance = getVarianceAtOutCoords();\n\n vec4 inv = scale * inversesqrt(variance + vec4("+a+"));\n\n setOutput((x - mean) * inv + offset);\n }\n "},So=function(t,e,n){this.variableNames=["AReal","AImag","BReal","BImag"],this.outputShape=Tr(e,n),this.userCode="\n float binaryOpComplex(\n float areal, float aimag, float breal, float bimag) {\n "+t+"\n }\n\n void main() {\n float areal = getARealAtOutCoords();\n float aimag = getAImagAtOutCoords();\n float breal = getBRealAtOutCoords();\n float bimag = getBImagAtOutCoords();\n setOutput(binaryOpComplex(areal, aimag, breal, bimag));\n }\n "},Ao="return a + b;",Oo="return a - b;",To="return a * b;",Do="return (a < 0.) ? b * a : a;",No=function(t,e,n){this.variableNames=["A","B"],this.outputShape=Tr(e,n),this.userCode="\n float binaryOperation(float a, float b) {\n "+t+"\n }\n\n void main() {\n float a = getAAtOutCoords();\n float b = getBAtOutCoords();\n setOutput(binaryOperation(a, b));\n }\n "},Fo="\n vec4 aLessThanZero = vec4(lessThan(a, vec4(0.)));\n return (aLessThanZero * (b * a)) + ((vec4(1.0) - aLessThanZero) * a);\n",Mo=function(t,e,n,r){void 0===r&&(r=!1),this.variableNames=["A","B"],this.supportsBroadcasting=!0,this.packedInputs=!0,this.packedOutput=!0,this.outputShape=Tr(e,n);var o=this.outputShape.length,a="";if(r)if(0===o||1===R(this.outputShape))a="\n result.y = 0.;\n result.z = 0.;\n result.w = 0.;\n ";else if(a="\n "+xo(o)+" coords = getOutputCoords();\n ",1===o)a+="\n result.y = (coords + 1) >= "+this.outputShape[0]+" ? 0. : result.y;\n result.z = 0.;\n result.w = 0.;\n ";else{var i=so("coords",o);a+="\n bool nextRowOutOfBounds =\n ("+i[o-2]+" + 1) >= "+this.outputShape[o-2]+";\n bool nextColOutOfBounds =\n ("+i[o-1]+" + 1) >= "+this.outputShape[o-1]+";\n result.y = nextColOutOfBounds ? 0. : result.y;\n result.z = nextRowOutOfBounds ? 0. : result.z;\n result.w = nextColOutOfBounds || nextRowOutOfBounds ? 0. : result.w;\n "}this.userCode="\n vec4 binaryOperation(vec4 a, vec4 b) {\n "+t+"\n }\n\n void main() {\n vec4 a = getAAtOutCoords();\n vec4 b = getBAtOutCoords();\n\n vec4 result = binaryOperation(a, b);\n "+a+"\n\n setOutput(result);\n }\n "},Po=function(){function t(t){this.variableNames=["A"],this.outputShape=t,this.userCode="\n uniform float minVal;\n uniform float maxVal;\n\n void main() {\n float value = getAAtOutCoords();\n if (isnan(value)) {\n setOutput(value);\n return;\n }\n\n setOutput(clamp(value, minVal, maxVal));\n }\n "}return t.prototype.getCustomSetupFunc=function(t,e){var n=this;return function(r,o){null==n.minLoc&&(n.minLoc=r.getUniformLocationNoThrow(o,"minVal"),n.maxLoc=r.getUniformLocationNoThrow(o,"maxVal")),r.gl.uniform1f(n.minLoc,t),r.gl.uniform1f(n.maxLoc,e)}},t}(),Bo=function(){function t(t){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=t,this.userCode="\n uniform float minVal;\n uniform float maxVal;\n\n void main() {\n vec4 value = getAAtOutCoords();\n\n if (any(isnan(value))) {\n setOutput(value);\n return;\n }\n\n setOutput(clamp(value, vec4(minVal), vec4(maxVal)));\n }\n "}return t.prototype.getCustomSetupFunc=function(t,e){var n=this;return function(r,o){null==n.minLoc&&(n.minLoc=r.getUniformLocationNoThrow(o,"minVal"),n.maxLoc=r.getUniformLocationNoThrow(o,"maxVal")),r.gl.uniform1f(n.minLoc,t),r.gl.uniform1f(n.maxLoc,e)}},t}(),Lo=function(t){this.variableNames=["real","imag"],this.outputShape=t,this.userCode="\n void main() {\n float re = abs(getRealAtOutCoords());\n float im = abs(getImagAtOutCoords());\n float mx = max(re, im);\n\n // sadly the length function in glsl is not underflow-safe\n // (at least not on Intel GPUs). So the safe solution is\n // to ensure underflow-safety in all cases.\n setOutput(\n mx == 0.0 ? 0.0 : mx * length(vec2(1, min(re, im)/mx))\n );\n }\n "},Wo=function(t){this.outputShape=[],this.outputShape=Qe(t,1),this.variableNames=t.map((function(t,e){return"T"+e}));var e=new Array(t.length-1);e[0]=t[0][1];for(var n=1;n<e.length;n++)e[n]=e[n-1]+t[n][1];var r=["if (yC < "+e[0]+") setOutput(getT0(yR, yC));"];for(n=1;n<e.length;n++){var o=e[n-1];r.push("else if (yC < "+e[n]+") setOutput(getT"+n+"(yR, yC-"+o+"));")}var a=e.length,i=e[e.length-1];r.push("else setOutput(getT"+a+"(yR, yC-"+i+"));"),this.userCode="\n void main() {\n ivec2 coords = getOutputCoords();\n int yR = coords.x;\n int yC = coords.y;\n\n "+r.join("\n ")+"\n }\n "},Uo=function(t,e){this.packedInputs=!0,this.packedOutput=!0,this.outputShape=[],this.outputShape=Qe(t,e);var n=this.outputShape,r=n.length,o=xo(r),a=so("coords",r),i=["x","y","z","w","u","v"].slice(0,r);this.variableNames=t.map((function(t,e){return"T"+e}));var s=new Array(t.length-1);s[0]=t[0][e];for(var u=1;u<s.length;u++)s[u]=s[u-1]+t[u][e];var c=i[e],l=i.slice(-2),f=i.join(),h="if ("+c+" < "+s[0]+") {\n return getChannel(\n getT0("+f+"), vec2("+l.join()+"));\n }";for(u=1;u<s.length;u++){var p=s[u-1];h+="\n if ("+c+" < "+s[u]+" && "+c+" >= "+s[u-1]+") {\n return getChannel(\n getT"+u+"("+jo(i,c,p)+"),\n vec2("+jo(l,c,p)+"));\n }"}var d=s.length,v=s[s.length-1];h+="\n return getChannel(\n getT"+d+"("+jo(i,c,v)+"),\n vec2("+jo(l,c,v)+"));",this.userCode="\n float getValue("+i.map((function(t){return"int "+t}))+") {\n "+h+"\n }\n\n void main() {\n "+o+" coords = getOutputCoords();\n vec4 result = vec4(getValue("+a+"), 0., 0., 0.);\n\n "+a[r-1]+" = "+a[r-1]+" + 1;\n if ("+a[r-1]+" < "+n[r-1]+") {\n result.g = getValue("+a+");\n }\n\n "+a[r-2]+" = "+a[r-2]+" + 1;\n if ("+a[r-2]+" < "+n[r-2]+") {\n result.a = getValue("+a+");\n }\n\n "+a[r-1]+" = "+a[r-1]+" - 1;\n if ("+a[r-2]+" < "+n[r-2]+" &&\n "+a[r-1]+" < "+n[r-1]+") {\n result.b = getValue("+a+");\n }\n setOutput(result);\n }\n "};function jo(t,e,n){var r=t.indexOf(e);return t.map((function(t,e){return e===r?t+" - "+n:t})).join()}var zo=function(t){this.variableNames=["x","dy"],this.outputShape=t.filterShape;var e=t.strideHeight,n=t.strideWidth,r=t.padInfo.top,o=t.padInfo.left,a="channelsLast"===t.dataFormat;this.userCode="\n void main() {\n ivec4 coords = getOutputCoords();\n int wR = coords.x;\n int wC = coords.y;\n int d1 = coords.z;\n int d2 = coords.w;\n\n // Convolve x(?, ?, d1) with dy(:, :, d2) to get dw(wR, wC, d1, d2).\n // ? = to be determined. : = across all values in that axis.\n float dotProd = 0.0;\n\n for (int b = 0; b < "+t.batchSize+"; b++) {\n for (int yR = 0; yR < "+t.outHeight+"; yR++) {\n int xR = wR + yR * "+e+" - "+r+";\n\n if (xR < 0 || xR >= "+t.inHeight+") {\n continue;\n }\n\n for (int yC = 0; yC < "+t.outWidth+"; yC++) {\n int xC = wC + yC * "+n+" - "+o+";\n\n if (xC < 0 || xC >= "+t.inWidth+") {\n continue;\n }\n\n if ("+a+") {\n float dyValue = getDy(b, yR, yC, d2);\n float xValue = getX(b, xR, xC, d1);\n dotProd += (xValue * dyValue);\n } else {\n float dyValue = getDy(b, d2, yR, yC);\n float xValue = getX(b, d1, xR, xC);\n dotProd += (xValue * dyValue);\n }\n\n }\n }\n }\n setOutput(dotProd);\n }\n "},Vo=function(t){this.variableNames=["dy","W"],this.outputShape=t.inShape;var e=t.filterHeight,n=t.filterWidth,r=t.strideHeight,o=t.strideWidth,a="channelsLast"===t.dataFormat,i=e-1-t.padInfo.top,s=n-1-t.padInfo.left,u=a?1:2,c=a?2:3,l=a?3:1;this.userCode="\n const ivec2 pads = ivec2("+i+", "+s+");\n\n void main() {\n ivec4 coords = getOutputCoords();\n int batch = coords[0];\n int d1 = coords["+l+"];\n\n ivec2 dyCorner = ivec2(coords["+u+"], coords["+c+"]) - pads;\n int dyRCorner = dyCorner.x;\n int dyCCorner = dyCorner.y;\n\n // Convolve dy(?, ?, d2) with w(:, :, d1, d2) to compute dx(xR, xC, d1).\n // ? = to be determined. : = across all values in that axis.\n float dotProd = 0.0;\n for (int wR = 0; wR < "+e+"; wR++) {\n float dyR = float(dyRCorner + wR) / "+r+".0;\n\n if (dyR < 0.0 || dyR >= "+t.outHeight+".0 || fract(dyR) > 0.0) {\n continue;\n }\n int idyR = int(dyR);\n\n int wRPerm = "+e+" - 1 - wR;\n\n for (int wC = 0; wC < "+n+"; wC++) {\n float dyC = float(dyCCorner + wC) / "+o+".0;\n\n if (dyC < 0.0 || dyC >= "+t.outWidth+".0 ||\n fract(dyC) > 0.0) {\n continue;\n }\n int idyC = int(dyC);\n\n int wCPerm = "+n+" - 1 - wC;\n\n for (int d2 = 0; d2 < "+t.outChannels+"; d2++) {\n\n if ("+a+") {\n float xValue = getDy(batch, idyR, idyC, d2);\n float wValue = getW(wRPerm, wCPerm, d1, d2);\n dotProd += xValue * wValue;\n } else {\n float xValue = getDy(batch, d2, idyR, idyC);\n float wValue = getW(wRPerm, wCPerm, d1, d2);\n dotProd += xValue * wValue;\n }\n\n }\n }\n }\n setOutput(dotProd);\n }\n "},Go=function(t){this.variableNames=["x","dy"],this.outputShape=t.filterShape;var e=t.strideDepth,n=t.strideHeight,r=t.strideWidth,o=t.padInfo.front,a=t.padInfo.top,i=t.padInfo.left;this.userCode="\n void main() {\n ivec5 coords = getOutputCoords();\n int wF = coords.x;\n int wR = coords.y;\n int wC = coords.z;\n int d1 = coords.w;\n int d2 = coords.u;\n\n float dotProd = 0.0;\n\n for (int b = 0; b < "+t.batchSize+"; b++) {\n for (int yF = 0; yF < "+t.outDepth+"; yF++) {\n int xF = wF + yF * "+e+" - "+o+";\n\n if (xF < 0 || xF >= "+t.inDepth+") {\n continue;\n }\n\n for (int yR = 0; yR < "+t.outHeight+"; yR++) {\n int xR = wR + yR * "+n+" - "+a+";\n\n if (xR < 0 || xR >= "+t.inHeight+") {\n continue;\n }\n\n for (int yC = 0; yC < "+t.outWidth+"; yC++) {\n int xC = wC + yC * "+r+" - "+i+";\n\n if (xC < 0 || xC >= "+t.inWidth+") {\n continue;\n }\n\n float dyValue = getDy(b, yF, yR, yC, d2);\n float xValue = getX(b, xF, xR, xC, d1);\n dotProd += (xValue * dyValue);\n }\n }\n }\n }\n setOutput(dotProd);\n }\n "},Ho=function(t){this.variableNames=["dy","W"],this.outputShape=t.inShape;var e=t.filterDepth,n=t.filterHeight,r=t.filterWidth,o=t.strideDepth,a=t.strideHeight,i=t.strideWidth,s=e-1-t.padInfo.front,u=n-1-t.padInfo.top,c=r-1-t.padInfo.left;this.userCode="\n const ivec3 pads = ivec3("+s+", "+u+", "+c+");\n\n void main() {\n ivec5 coords = getOutputCoords();\n int batch = coords.x;\n int d1 = coords.u;\n\n\n ivec3 dyCorner = ivec3(coords.y, coords.z, coords.w) - pads;\n int dyFCorner = dyCorner.x;\n int dyRCorner = dyCorner.y;\n int dyCCorner = dyCorner.z;\n\n float dotProd = 0.0;\n for (int wF = 0; wF < "+e+"; wF++) {\n float dyF = float(dyFCorner + wF) / "+o+".0;\n\n if (dyF < 0.0 || dyF >= "+t.outDepth+".0 || fract(dyF) > 0.0) {\n continue;\n }\n int idyF = int(dyF);\n\n int wFPerm = "+e+" - 1 - wF;\n\n for (int wR = 0; wR < "+n+"; wR++) {\n float dyR = float(dyRCorner + wR) / "+a+".0;\n\n if (dyR < 0.0 || dyR >= "+t.outHeight+".0 ||\n fract(dyR) > 0.0) {\n continue;\n }\n int idyR = int(dyR);\n\n int wRPerm = "+n+" - 1 - wR;\n\n for (int wC = 0; wC < "+r+"; wC++) {\n float dyC = float(dyCCorner + wC) / "+i+".0;\n\n if (dyC < 0.0 || dyC >= "+t.outWidth+".0 ||\n fract(dyC) > 0.0) {\n continue;\n }\n int idyC = int(dyC);\n\n int wCPerm = "+r+" - 1 - wC;\n\n for (int d2 = 0; d2 < "+t.outChannels+"; d2++) {\n float xValue = getDy(batch, idyF, idyR, idyC, d2);\n float wValue = getW(wFPerm, wRPerm, wCPerm, d1, d2);\n dotProd += xValue * wValue;\n }\n }\n }\n }\n setOutput(dotProd);\n }\n "},qo=function(t){this.variableNames=["x","dy"],this.outputShape=t.filterShape;var e=t.strideHeight,n=t.strideWidth,r=t.padInfo.top,o=t.padInfo.left,a=t.outChannels/t.inChannels;this.userCode="\n void main() {\n ivec4 coords = getOutputCoords();\n int wR = coords.x;\n int wC = coords.y;\n int d1 = coords.z;\n int dm = coords.w;\n int d2 = d1 * "+a+" + dm;\n\n float dotProd = 0.0;\n\n // TO DO: Vec4 over the batch size\n for (int b = 0; b < "+t.batchSize+"; b++) {\n for (int yR = 0; yR < "+t.outHeight+"; yR++) {\n int xR = wR + yR * "+e+" - "+r+";\n\n if (xR < 0 || xR >= "+t.inHeight+") {\n continue;\n }\n\n for (int yC = 0; yC < "+t.outWidth+"; yC++) {\n int xC = wC + yC * "+n+" - "+o+";\n\n if (xC < 0 || xC >= "+t.inWidth+") {\n continue;\n }\n\n float dyValue = getDy(b, yR, yC, d2);\n float xValue = getX(b, xR, xC, d1);\n dotProd += (xValue * dyValue);\n }\n }\n }\n setOutput(dotProd);\n }\n "},Ko=function(t){this.variableNames=["dy","W"],this.outputShape=t.inShape;var e=t.filterHeight,n=t.filterWidth,r=t.strideHeight,o=t.strideWidth,a=e-1-t.padInfo.top,i=n-1-t.padInfo.left,s=t.outChannels/t.inChannels;this.userCode="\n const ivec2 pads = ivec2("+a+", "+i+");\n\n void main() {\n ivec4 coords = getOutputCoords();\n int batch = coords[0];\n int d1 = coords[3];\n ivec2 dyCorner = coords.yz - pads;\n int dyRCorner = dyCorner.x;\n int dyCCorner = dyCorner.y;\n\n float dotProd = 0.0;\n\n for (int wR = 0; wR < "+e+"; wR++) {\n float dyR = float(dyRCorner + wR) / "+r+".0;\n\n if (dyR < 0.0 || dyR >= "+t.outHeight+".0 || fract(dyR) > 0.0) {\n continue;\n }\n int idyR = int(dyR);\n\n int wRPerm = "+e+" - 1 - wR;\n\n for (int wC = 0; wC < "+n+"; wC++) {\n float dyC = float(dyCCorner + wC) / "+o+".0;\n\n if (dyC < 0.0 || dyC >= "+t.outWidth+".0 ||\n fract(dyC) > 0.0) {\n continue;\n }\n int idyC = int(dyC);\n\n int wCPerm = "+n+" - 1 - wC;\n\n // TO DO: Vec4 over the channelMul\n for (int dm = 0; dm < "+s+"; dm++) {\n int d2 = d1 * "+s+" + dm;\n float xValue = getDy(batch, idyR, idyC, d2);\n float wValue = getW(wRPerm, wCPerm, d1, dm);\n dotProd += xValue * wValue;\n }\n }\n }\n setOutput(dotProd);\n }\n "},Xo=function(t,e,n,r){void 0===e&&(e=!1),void 0===n&&(n=null),void 0===r&&(r=!1),this.variableNames=["x","W"],this.outputShape=t.outShape;var o=t.padInfo.top,a=t.padInfo.left,i=t.strideHeight,s=t.strideWidth,u=t.dilationHeight,c=t.dilationWidth,l=t.filterHeight,f=t.filterWidth,h=4*Math.floor(t.inChannels/4),p=t.inChannels%4,d="channelsLast"===t.dataFormat,v=d?1:2,m=d?2:3,g=d?3:1,y="",b="";n&&(y=r?"float activation(float a) {\n float b = getPreluActivationWeightsAtOutCoords();\n "+n+"\n }":"\n float activation(float x) {\n "+n+"\n }\n ",b="result = activation(result);");var x=e?"result += getBiasAtOutCoords();":"";e&&this.variableNames.push("bias"),r&&this.variableNames.push("preluActivationWeights"),this.userCode="\n "+y+"\n\n const ivec2 strides = ivec2("+i+", "+s+");\n const ivec2 pads = ivec2("+o+", "+a+");\n\n void main() {\n ivec4 coords = getOutputCoords();\n int batch = coords[0];\n int d2 = coords["+g+"];\n\n ivec2 xRCCorner =\n ivec2(coords["+v+"], coords["+m+"]) * strides - pads;\n int xRCorner = xRCCorner.x;\n int xCCorner = xRCCorner.y;\n\n // Convolve x(?, ?, d1) with w(:, :, d1, d2) to get y(yR, yC, d2).\n // ? = to be determined. : = across all values in that axis.\n float dotProd = 0.0;\n for (int wR = 0; wR < "+l+"; wR++) {\n int xR = xRCorner + wR * "+u+";\n\n if (xR < 0 || xR >= "+t.inHeight+") {\n continue;\n }\n\n for (int wC = 0; wC < "+f+"; wC++) {\n int xC = xCCorner + wC * "+c+";\n\n if (xC < 0 || xC >= "+t.inWidth+") {\n continue;\n }\n\n for (int d1 = 0; d1 < "+h+"; d1 += 4) {\n vec4 wValues = vec4(\n getW(wR, wC, d1, d2),\n getW(wR, wC, d1 + 1, d2),\n getW(wR, wC, d1 + 2, d2),\n getW(wR, wC, d1 + 3, d2)\n );\n\n if ("+d+") {\n vec4 xValues = vec4(\n getX(batch, xR, xC, d1),\n getX(batch, xR, xC, d1 + 1),\n getX(batch, xR, xC, d1 + 2),\n getX(batch, xR, xC, d1 + 3)\n );\n dotProd += dot(xValues, wValues);\n } else {\n vec4 xValues = vec4(\n getX(batch, d1, xR, xC),\n getX(batch, d1 + 1, xR, xC),\n getX(batch, d1 + 2, xR, xC),\n getX(batch, d1 + 3, xR, xC)\n );\n dotProd += dot(xValues, wValues);\n }\n }\n\n if ("+(1===p)+") {\n\n if ("+d+") {\n dotProd +=\n getX(batch, xR, xC, "+h+") *\n getW(wR, wC, "+h+", d2);\n } else {\n dotProd +=\n getX(batch, "+h+", xR, xC) *\n getW(wR, wC, "+h+", d2);\n }\n\n } else if ("+(2===p)+") {\n vec2 wValues = vec2(\n getW(wR, wC, "+h+", d2),\n getW(wR, wC, "+h+" + 1, d2)\n );\n\n if ("+d+") {\n vec2 xValues = vec2(\n getX(batch, xR, xC, "+h+"),\n getX(batch, xR, xC, "+h+" + 1)\n );\n dotProd += dot(xValues, wValues);\n } else {\n vec2 xValues = vec2(\n getX(batch, "+h+", xR, xC),\n getX(batch, "+h+" + 1, xR, xC)\n );\n dotProd += dot(xValues, wValues);\n }\n\n } else if ("+(3===p)+") {\n vec3 wValues = vec3(\n getW(wR, wC, "+h+", d2),\n getW(wR, wC, "+h+" + 1, d2),\n getW(wR, wC, "+h+" + 2, d2)\n );\n\n if ("+d+") {\n vec3 xValues = vec3(\n getX(batch, xR, xC, "+h+"),\n getX(batch, xR, xC, "+h+" + 1),\n getX(batch, xR, xC, "+h+" + 2)\n );\n dotProd += dot(xValues, wValues);\n } else {\n vec3 xValues = vec3(\n getX(batch, "+h+", xR, xC),\n getX(batch, "+h+" + 1, xR, xC),\n getX(batch, "+h+" + 2, xR, xC)\n );\n dotProd += dot(xValues, wValues);\n }\n\n }\n }\n }\n\n float result = dotProd;\n "+x+"\n "+b+"\n setOutput(result);\n }\n "},$o=function(t){this.variableNames=["x","W"],this.outputShape=t.outShape;var e=t.padInfo.front,n=t.padInfo.top,r=t.padInfo.left,o=t.strideDepth,a=t.strideHeight,i=t.strideWidth,s=t.dilationDepth,u=t.dilationHeight,c=t.dilationWidth,l=t.filterDepth,f=t.filterHeight,h=t.filterWidth,p=4*Math.floor(t.inChannels/4),d=t.inChannels%4;this.userCode="\n const ivec3 strides = ivec3("+o+", "+a+", "+i+");\n const ivec3 pads = ivec3("+e+", "+n+", "+r+");\n\n void main() {\n ivec5 coords = getOutputCoords();\n int batch = coords.x;\n int d2 = coords.u;\n\n ivec3 xFRCCorner = ivec3(coords.y, coords.z, coords.w) * strides - pads;\n int xFCorner = xFRCCorner.x;\n int xRCorner = xFRCCorner.y;\n int xCCorner = xFRCCorner.z;\n\n // Convolve x(?, ?, ?, d1) with w(:, :, :, d1, d2) to get\n // y(yF, yR, yC, d2). ? = to be determined. : = across all\n // values in that axis.\n float dotProd = 0.0;\n for (int wF = 0; wF < "+l+"; wF++) {\n int xF = xFCorner + wF * "+s+";\n\n if (xF < 0 || xF >= "+t.inDepth+") {\n continue;\n }\n\n for (int wR = 0; wR < "+f+"; wR++) {\n int xR = xRCorner + wR * "+u+";\n\n if (xR < 0 || xR >= "+t.inHeight+") {\n continue;\n }\n\n for (int wC = 0; wC < "+h+"; wC++) {\n int xC = xCCorner + wC * "+c+";\n\n if (xC < 0 || xC >= "+t.inWidth+") {\n continue;\n }\n\n for (int d1 = 0; d1 < "+p+"; d1 += 4) {\n vec4 xValues = vec4(\n getX(batch, xF, xR, xC, d1),\n getX(batch, xF, xR, xC, d1 + 1),\n getX(batch, xF, xR, xC, d1 + 2),\n getX(batch, xF, xR, xC, d1 + 3)\n );\n vec4 wValues = vec4(\n getW(wF, wR, wC, d1, d2),\n getW(wF, wR, wC, d1 + 1, d2),\n getW(wF, wR, wC, d1 + 2, d2),\n getW(wF, wR, wC, d1 + 3, d2)\n );\n\n dotProd += dot(xValues, wValues);\n }\n\n if ("+(1===d)+") {\n dotProd +=\n getX(batch, xF, xR, xC, "+p+") *\n getW(wF, wR, wC, "+p+", d2);\n } else if ("+(2===d)+") {\n vec2 xValues = vec2(\n getX(batch, xF, xR, xC, "+p+"),\n getX(batch, xF, xR, xC, "+p+" + 1)\n );\n vec2 wValues = vec2(\n getW(wF, wR, wC, "+p+", d2),\n getW(wF, wR, wC, "+p+" + 1, d2)\n );\n dotProd += dot(xValues, wValues);\n } else if ("+(3===d)+") {\n vec3 xValues = vec3(\n getX(batch, xF, xR, xC, "+p+"),\n getX(batch, xF, xR, xC, "+p+" + 1),\n getX(batch, xF, xR, xC, "+p+" + 2)\n );\n vec3 wValues = vec3(\n getW(wF, wR, wC, "+p+", d2),\n getW(wF, wR, wC, "+p+" + 1, d2),\n getW(wF, wR, wC, "+p+" + 2, d2)\n );\n dotProd += dot(xValues, wValues);\n }\n }\n }\n }\n setOutput(dotProd);\n }\n "},Yo=function(t,e,n,r){void 0===e&&(e=!1),void 0===n&&(n=null),void 0===r&&(r=!1),this.variableNames=["x","W"],this.outputShape=t.outShape;var o=t.inHeight,a=t.inWidth,i=t.padInfo.top,s=t.padInfo.left,u=t.strideHeight,c=t.strideWidth,l=t.dilationHeight,f=t.dilationWidth,h=t.filterHeight,p=t.filterWidth,d=t.outChannels/t.inChannels,v="",m="";n&&(v=r?"float activation(float a) {\n float b = getPreluActivationWeightsAtOutCoords();\n "+n+"\n }":"\n float activation(float x) {\n "+n+"\n }\n ",m="result = activation(result);");var g=e?"result += getBiasAtOutCoords();":"";e&&this.variableNames.push("bias"),r&&this.variableNames.push("preluActivationWeights"),this.userCode="\n "+v+"\n\n const ivec2 strides = ivec2("+u+", "+c+");\n const ivec2 pads = ivec2("+i+", "+s+");\n\n void main() {\n ivec4 coords = getOutputCoords();\n int batch = coords.x;\n ivec2 xRCCorner = coords.yz * strides - pads;\n int d2 = coords.w;\n int d1 = d2 / "+d+";\n int q = d2 - d1 * "+d+";\n\n int xRCorner = xRCCorner.x;\n int xCCorner = xRCCorner.y;\n\n // Convolve x(?, ?, d1) with w(:, :, d1, q) to get y(yR, yC, d2).\n // ? = to be determined. : = across all values in that axis.\n float dotProd = 0.0;\n // TO DO(dsmilkov): Flatten the two for loops and vec4 the operations.\n for (int wR = 0; wR < "+h+"; wR++) {\n int xR = xRCorner + wR * "+l+";\n\n if (xR < 0 || xR >= "+o+") {\n continue;\n }\n\n for (int wC = 0; wC < "+p+"; wC++) {\n int xC = xCCorner + wC * "+f+";\n\n if (xC < 0 || xC >= "+a+") {\n continue;\n }\n\n float xVal = getX(batch, xR, xC, d1);\n float wVal = getW(wR, wC, d1, q);\n dotProd += xVal * wVal;\n }\n }\n\n float result = dotProd;\n "+g+"\n "+m+"\n setOutput(result);\n }\n "},Jo=function(t,e,n,r){void 0===e&&(e=!1),void 0===n&&(n=null),void 0===r&&(r=!1),this.variableNames=["x","W"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=t.outShape;for(var o=t.inHeight,a=t.inWidth,i=t.padInfo.top,s=t.padInfo.left,u=t.strideHeight,c=t.strideWidth,l=t.dilationHeight,f=t.dilationWidth,h=t.filterHeight,p=t.filterWidth,d=p,v="int xR; int xC; int xCOffset;",m=0;m<h;m++)for(var g=0;g<p;g++)v+="\n vec4 xTexelR"+m+"C"+2*g+" = vec4(0.);\n vec4 wR"+m+"C"+g+" = vec4(0.);\n vec4 xR"+m+"C"+g+" = vec4(0.);";for(m=0;m<h;m++)for(var y=0;y<d;y++){if(v+="\n xR = xRCorner + "+m*l+";\n xC = xCCorner + "+(g=2*y)*f+";\n ",1===c){if(g<p&&(v+=s%2==1?"\n xCOffset = xC + 1;\n if(xR >= 0 && xR < "+o+" && xCOffset >= 0 && xCOffset < "+a+") {\n xTexelR"+m+"C"+g+" = getX(batch, xR, xCOffset, d1);\n } else {\n xTexelR"+m+"C"+g+" = vec4(0.);\n }\n\n xCOffset = xC + 1 - 2;\n if(xR >= 0 && xR < "+o+" && xCOffset >= 0 && xCOffset < "+a+") {\n vec4 previous = getX(batch, xR, xCOffset, d1);\n xR"+m+"C"+g+" = vec4(previous.zw, xTexelR"+m+"C"+g+".xy);\n } else {\n xR"+m+"C"+g+" = vec4(0, 0, xTexelR"+m+"C"+g+".xy);\n }\n ":"\n if(xR >= 0 && xR < "+o+" && xC >= 0 && xC < "+a+") {\n xTexelR"+m+"C"+g+" = getX(batch, xR, xC, d1);\n } else {\n xTexelR"+m+"C"+g+" = vec4(0.);\n }\n\n xR"+m+"C"+g+" = xTexelR"+m+"C"+g+";\n ",g+1<p)){var b=s%2==0?x(f):f;f%2==0&&s%2==1||f%2!=0&&s%2!=1?(v+="\n xCOffset = xC + "+s%2+" + "+b+";\n\n if(xR >= 0 && xR < "+o+" &&\n xCOffset >= 0 && xCOffset < "+a+") {\n xTexelR"+m+"C"+(g+2)+" = getX(batch, xR, xCOffset, d1);\n }\n ",f>1&&(v+="\n xCOffset -= 2;\n if(xR >= 0 && xR < "+o+" &&\n xCOffset >= 0 && xCOffset < "+a+") {\n xTexelR"+m+"C"+g+" = getX(batch, xR, xCOffset, d1);\n } else {\n xTexelR"+m+"C"+g+" = vec4(0.);\n }\n "),v+="\n xR"+m+"C"+(g+1)+" = vec4(\n xTexelR"+m+"C"+g+".zw, xTexelR"+m+"C"+(g+2)+".xy);\n "):v+="\n xCOffset = xC + "+b+";\n\n if(xR >= 0 && xR < "+o+" &&\n xCOffset >= 0 && xCOffset < "+a+") {\n xTexelR"+m+"C"+(g+2)+" = getX(batch, xR, xCOffset, d1);\n }\n\n xR"+m+"C"+(g+1)+" = xTexelR"+m+"C"+(g+2)+";\n "}}else g<p&&(v+="\n if(xR >= 0 && xR < "+o+") {\n ",s%2==1?(v+="\n xCOffset = xC + 1 - "+c+";\n if(xCOffset >= 0 && xCOffset < "+a+") {\n xTexelR"+m+"C"+g+" = getX(batch, xR, xCOffset, d1);\n } else {\n xTexelR"+m+"C"+g+" = vec4(0.);\n }\n\n if(xC + 1 >= 0 && xC + 1 < "+a+") {\n xTexelR"+m+"C"+(g+2)+" = getX(batch, xR, xC + 1, d1);\n } else {\n xTexelR"+m+"C"+(g+2)+" = vec4(0.);\n }\n\n xR"+m+"C"+g+" = vec4(\n xTexelR"+m+"C"+g+".zw, xTexelR"+m+"C"+(g+2)+".zw);\n ",g+1<p&&(v+="\n vec4 final = vec4(0.);\n xCOffset = xC + 1 + "+c+";\n if(xCOffset >= 0 && xCOffset < "+a+") {\n final = getX(batch, xR, xCOffset, d1);\n }\n xR"+m+"C"+(g+1)+" = vec4(xTexelR"+m+"C"+(g+2)+".xy, final.xy);\n ")):(v+="\n if(xC >= 0 && xC < "+a+") {\n xTexelR"+m+"C"+g+" = getX(batch, xR, xC, d1);\n } else {\n xTexelR"+m+"C"+g+" = vec4(0.);\n }\n\n xCOffset = xC + "+c+";\n if(xCOffset >= 0 && xCOffset < "+a+") {\n xTexelR"+m+"C"+(g+2)+" = getX(batch, xR, xCOffset, d1);\n } else {\n xTexelR"+m+"C"+(g+2)+" = vec4(0.);\n }\n\n xR"+m+"C"+g+" = vec4(\n xTexelR"+m+"C"+g+".xy, xTexelR"+m+"C"+(g+2)+".xy);\n ",g+1<p&&(v+="\n xR"+m+"C"+(g+1)+" = vec4(\n xTexelR"+m+"C"+g+".zw, xTexelR"+m+"C"+(g+2)+".zw);\n ")),v+="}");g<p&&(v+="\n vec4 wTexelR"+m+"C"+g+" = getW("+m+", "+g+", d1, q);\n wR"+m+"C"+g+" = vec4(wTexelR"+m+"C"+g+".xz, wTexelR"+m+"C"+g+".xz);\n ",g+1<p&&(v+="\n vec4 wTexelR"+m+"C"+(g+1)+" = getW("+m+", "+(g+1)+", d1, q);\n wR"+m+"C"+(g+1)+" =\n vec4(wTexelR"+m+"C"+(g+1)+".xz, wTexelR"+m+"C"+(g+1)+".xz);"))}for(m=0;m<h;m++)for(g=0;g<p;g++)v+="dotProd += xR"+m+"C"+g+" * wR"+m+"C"+g+";";var w="",E="";n&&(w=r?"vec4 activation(vec4 a) {\n vec4 b = getPreluActivationWeightsAtOutCoords();\n "+n+"\n }":"vec4 activation(vec4 x) {\n "+n+"\n }",E="result = activation(result);");var C=e?"result += getBiasAtOutCoords();":"";e&&this.variableNames.push("bias"),r&&this.variableNames.push("preluActivationWeights"),this.userCode="\n "+w+"\n\n const ivec2 strides = ivec2("+u+", "+c+");\n const ivec2 pads = ivec2("+i+", "+s+");\n\n void main() {\n\n ivec4 coords = getOutputCoords();\n int batch = coords.x;\n ivec2 xRCCorner = coords.yz * strides - pads;\n int d2 = coords.w;\n int d1 = d2;\n int q = 0;\n int xRCorner = xRCCorner.x;\n int xCCorner = xRCCorner.y;\n\n vec4 dotProd = vec4(0.);\n\n "+v+"\n\n vec4 result = dotProd;\n "+C+"\n "+E+"\n setOutput(result);\n }\n "},Qo=function(t,e,n,r,o){this.variableNames=["Image","Boxes","BoxInd"],this.outputShape=[];var a=t[0],i=t[1],s=t[2],u=t[3],c=e[0],l=n[0],f=n[1];this.outputShape=[c,l,f,u];var h="bilinear"===r?1:0,p=[i-1+".0",s-1+".0"],d=p[0],v=p[1],m=l>1?[""+(i-1)/(l-1),"(y2-y1) * height_ratio","y1*"+d+" + float(y)*(height_scale)"]:["0.0","0.0","0.5 * (y1+y2) * "+d],g=m[0],y=m[1],b=m[2],x=f>1?[""+(s-1)/(f-1),"(x2-x1) * width_ratio","x1*"+v+" + float(x)*(width_scale)"]:["0.0","0.0","0.5 * (x1+x2) * "+v],w=x[0],E=x[1],C=x[2];this.userCode="\n const float height_ratio = float("+g+");\n const float width_ratio = float("+w+");\n void main() {\n ivec4 coords = getOutputCoords();\n int b = coords[0];\n int y = coords[1];\n int x = coords[2];\n int d = coords[3];\n\n // get box vals\n float y1 = getBoxes(b,0);\n float x1 = getBoxes(b,1);\n float y2 = getBoxes(b,2);\n float x2 = getBoxes(b,3);\n\n // get image in batch index\n int bInd = round(getBoxInd(b));\n if(bInd < 0 || bInd >= "+a+") {\n return;\n }\n\n float height_scale = "+y+";\n float width_scale = "+E+";\n\n float in_y = "+b+";\n if( in_y < 0.0 || in_y > "+d+" ) {\n setOutput(float("+o+"));\n return;\n }\n float in_x = "+C+";\n if( in_x < 0.0 || in_x > "+v+" ) {\n setOutput(float("+o+"));\n return;\n }\n\n vec2 sourceFracIndexCR = vec2(in_x,in_y);\n if("+h+" == 1) {\n // Compute the four integer indices.\n ivec2 sourceFloorCR = ivec2(sourceFracIndexCR);\n ivec2 sourceCeilCR = ivec2(ceil(sourceFracIndexCR));\n\n float topLeft = getImage(b, sourceFloorCR.y, sourceFloorCR.x, d);\n float bottomLeft = getImage(b, sourceCeilCR.y, sourceFloorCR.x, d);\n float topRight = getImage(b, sourceFloorCR.y, sourceCeilCR.x, d);\n float bottomRight = getImage(b, sourceCeilCR.y, sourceCeilCR.x, d);\n\n vec2 fracCR = sourceFracIndexCR - vec2(sourceFloorCR);\n\n float top = topLeft + (topRight - topLeft) * fracCR.x;\n float bottom = bottomLeft + (bottomRight - bottomLeft) * fracCR.x;\n float newValue = top + (bottom - top) * fracCR.y;\n setOutput(newValue);\n } else {\n // Compute the coordinators of nearest neighbor point.\n ivec2 sourceNearestCR = ivec2(floor(\n sourceFracIndexCR + vec2(0.5,0.5)));\n float newValue = getImage(b, sourceNearestCR.y, sourceNearestCR.x, d);\n setOutput(newValue);\n }\n }\n "},Zo=function(t,e,n){this.variableNames=["x"],this.outputShape=t;var r=t.length,o=t[t.length-1],a=n?"<":">";this.userCode="\n int getIndex(int i) {\n "+(n?"return "+o+" -i - 1;":"return i;")+"\n }\n\n void main() {\n "+xo(r)+" coords = getOutputCoords();\n int end = "+ta(r,"coords")+";\n float val = 0.0;\n for (int i = "+o+" - 1; i >= 0; i -= 1) {\n int idx = getIndex(i);\n if (idx "+a+" end) {\n continue;\n }\n if (idx == end && "+e+") {\n continue;\n }\n "+ta(r,"coords")+" = idx;\n val += getX("+function(t,e){if(1===t)return""+e;if(2===t)return e+".x, "+e+".y";if(3===t)return e+".x, "+e+".y, "+e+".z";if(4===t)return e+".x, "+e+".y, "+e+".z, "+e+".w";throw Error("Cumulative sum for rank "+t+" is not yet supported")}(r,"coords")+");\n }\n setOutput(val);\n }\n "};function ta(t,e){if(1===t)return""+e;if(2===t)return e+".y";if(3===t)return e+".z";if(4===t)return e+".w";throw Error("Cumulative sum for rank "+t+" is not yet supported")}var ea=function(t){this.variableNames=["A"],this.packedInputs=!1,this.packedOutput=!0,this.outPackingScheme=Nt.DENSE;var e=jt(t),n=uo();this.outputShape=t,this.userCode="\n ivec3 outCoordsFromFlatIndex(int index) {\n "+co(["r","c","d"],t)+"\n return ivec3(r, c, d);\n }\n\n void main() {\n ivec2 resTexRC = ivec2(resultUV.yx *\n vec2("+e[0]+", "+e[1]+"));\n int index = 4 * (resTexRC.x * "+e[1]+" + resTexRC.y);\n\n vec4 result = vec4(0.);\n\n for (int i=0; i<4; i++) {\n int flatIndex = index + i;\n ivec3 rc = outCoordsFromFlatIndex(flatIndex);\n result[i] = getA(rc.x, rc.y, rc.z);\n }\n\n "+n.output+" = result;\n }\n "},na=function(t){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outPackingScheme=Nt.DENSE;var e=jt(t),n=uo();this.outputShape=t,this.userCode="\n ivec3 outCoordsFromFlatIndex(int index) {\n "+co(["r","c","d"],t)+"\n return ivec3(r, c, d);\n }\n\n void main() {\n ivec2 resTexRC = ivec2(resultUV.yx *\n vec2("+e[0]+", "+e[1]+"));\n int index = 4 * (resTexRC.x * "+e[1]+" + resTexRC.y);\n\n vec4 result = vec4(0.);\n\n for (int i=0; i<4; i++) {\n int flatIndex = index + i;\n ivec3 rc = outCoordsFromFlatIndex(flatIndex);\n result[i] = getChannel(getA(rc.x, rc.y, rc.z), vec2(rc.y, rc.z));\n }\n\n "+n.output+" = result;\n }\n "},ra=function(){function t(t,e,n){this.variableNames=["x"],this.outputShape=[],this.outputShape=t,this.blockSize=e,this.dataFormat=n,this.userCode="\n void main() {\n ivec4 coords = getOutputCoords();\n int b = coords[0];\n int h = "+this.getHeightCoordString()+";\n int w = "+this.getWidthCoordString()+";\n int d = "+this.getDepthCoordString()+";\n\n int in_h = h / "+e+";\n int offset_h = imod(h, "+e+");\n int in_w = w / "+e+";\n int offset_w = imod(w, "+e+");\n int offset_d = (offset_h * "+e+" + offset_w) *\n "+this.getOutputDepthSize()+";\n int in_d = d + offset_d;\n\n float result = "+this.getInputSamplingString()+";\n setOutput(result);\n }\n "}return t.prototype.getHeightCoordString=function(){return"NHWC"===this.dataFormat?"coords[1]":"coords[2]"},t.prototype.getWidthCoordString=function(){return"NHWC"===this.dataFormat?"coords[2]":"coords[3]"},t.prototype.getDepthCoordString=function(){return"NHWC"===this.dataFormat?"coords[3]":"coords[1]"},t.prototype.getOutputDepthSize=function(){return"NHWC"===this.dataFormat?this.outputShape[3]:this.outputShape[1]},t.prototype.getInputSamplingString=function(){return"NHWC"===this.dataFormat?"getX(b, in_h, in_w, in_d)":"getX(b, in_d, in_h, in_w)"},t}(),oa=function(t){this.variableNames=["X"],this.outputShape=[t,t],this.userCode="\n void main() {\n ivec2 coords = getOutputCoords();\n float val = coords[0] == coords[1] ? getX(coords[0]) : 0.0;\n setOutput(val);\n }\n "},aa=function(t){this.variableNames=["A"],this.outTexUsage=Ft.DOWNLOAD;var e=uo();this.outputShape=t,this.userCode="\n "+fo+"\n\n void main() {\n float x = getAAtOutCoords();\n "+e.output+" = encode_float(x);\n }\n "},ia=function(t){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!1,this.outTexUsage=Ft.DOWNLOAD;var e=uo();this.outputShape=t,this.userCode="\n "+fo+"\n\n void main() {\n ivec3 coords = getOutputCoords();\n float x = getChannel(getAAtOutCoords(), vec2(coords.y, coords.z));\n "+e.output+" = encode_float(x);\n }\n "},sa=function(t,e,n){void 0===n&&(n=!1),this.variableNames=["A"];var r=uo(),o=e[0],a=e[1];this.outputShape=t;var i="result";n&&(i="floor(result * 255. + 0.5)"),this.userCode="\n "+lo(t)+"\n\n void main() {\n ivec3 coords = getOutputCoords();\n\n int flatIndex = getFlatIndex(coords);\n int offset = imod(flatIndex, 4);\n\n flatIndex = idiv(flatIndex, 4, 1.);\n \n int r = flatIndex / "+a+";\n int c = imod(flatIndex, "+a+");\n vec2 uv = (vec2(c, r) + halfCR) / vec2("+a+".0, "+o+".0);\n vec4 values = "+r.texture2D+"(A, uv);\n\n float result;\n\n if(offset == 0) {\n result = values[0];\n } else if(offset == 1) {\n result = values[1];\n } else if(offset == 2) {\n result = values[2];\n } else {\n result = values[3];\n }\n\n "+r.output+" = vec4("+i+", 0., 0., 0.);\n }\n "},ua=function(t,e,n){void 0===n&&(n=!1),this.variableNames=["A"],this.packedInputs=!1,this.packedOutput=!0;var r=uo(),o=e[0],a=e[1];this.outputShape=t;var i="",s="result";n&&(s="floor(result * 255. + 0.5)");for(var u=0;u<=1;u++)for(var c=0;c<=1;c++){var l=2*u+c;i+="\n localCoords = coords;\n if(localCoords[2] + "+c+" < "+t[2]+") {\n localCoords[2] += "+c+";\n if(localCoords[1] + "+u+" < "+t[1]+") {\n localCoords[1] += "+u+";\n\n flatIndex = getFlatIndex(localCoords);\n offset = imod(flatIndex, 4);\n\n flatIndex = idiv(flatIndex, 4, 1.);\n\n r = flatIndex / "+a+";\n c = imod(flatIndex, "+a+");\n uv = (vec2(c, r) + halfCR) / vec2("+a+".0, "+o+".0);\n values = "+r.texture2D+"(A, uv);\n\n if(offset == 0) {\n result["+l+"] = values[0];\n } else if(offset == 1) {\n result["+l+"] = values[1];\n } else if(offset == 2) {\n result["+l+"] = values[2];\n } else {\n result["+l+"] = values[3];\n }\n }\n }\n "}this.userCode="\n "+lo(t)+"\n\n void main() {\n ivec3 coords = getOutputCoords();\n\n vec4 result = vec4(0.);\n int flatIndex, r, c, offset;\n ivec3 localCoords;\n vec2 uv;\n vec4 values;\n\n "+i+"\n\n "+r.output+" = "+s+";\n }\n "},ca=function(t,e,n){this.variableNames=["real","imag"];var r=e[1];this.outputShape=e;var o=n?"2.0 * "+Math.PI:"-2.0 * "+Math.PI,a=n?r+".0":"1.0";this.userCode="\n const float exponentMultiplier = "+o+";\n\n float unaryOpComplex(float real, float expR, float imag, float expI) {\n "+t+"\n }\n\n float mulMatDFT(int batch, int index) {\n float indexRatio = float(index) / float("+r+");\n float exponentMultiplierTimesIndexRatio =\n exponentMultiplier * indexRatio;\n\n float result = 0.0;\n\n for (int i = 0; i < "+r+"; i++) {\n // x = (-2|2 * PI / N) * index * i;\n float x = exponentMultiplierTimesIndexRatio * float(i);\n float expR = cos(x);\n float expI = sin(x);\n float real = getReal(batch, i);\n float imag = getImag(batch, i);\n\n result +=\n unaryOpComplex(real, expR, imag, expI) / "+a+";\n }\n\n return result;\n }\n\n void main() {\n ivec2 coords = getOutputCoords();\n setOutput(mulMatDFT(coords[0], coords[1]));\n }\n "},la=function(){function t(t,e){this.outputShape=[],this.variableNames=["x"],this.outputShape=t,this.userCode="\n uniform float value;\n void main() {\n // Input can be obtained from uniform value.\n setOutput(value);\n }\n "}return t.prototype.getCustomSetupFunc=function(t){var e=this;return function(n,r){null==e.valueLoc&&(e.valueLoc=n.getUniformLocationNoThrow(r,"value")),n.gl.uniform1f(e.valueLoc,t)}},t}(),fa=function(t,e,n){this.variableNames=["A","indices"];var r=t.slice();r[n]=e,this.outputShape=r,this.rank=r.length;var o=xo(this.rank),a=function(t,e){var n=t.length;if(n>4)throw Error("Gather for rank "+n+" is not yet supported");if(1===n)return"int(getIndices(resRC))";for(var r=["resRC.x","resRC.y","resRC.z","resRC.w"],o=[],a=0;a<t.length;a++)a===e?o.push("int(getIndices("+r[a]+"))"):o.push(""+r[a]);return o.join()}(t,n);this.userCode="\n void main() {\n "+o+" resRC = getOutputCoords();\n setOutput(getA("+a+"));\n }\n "},ha=function(t,e,n){this.sliceDim=t,this.strides=e,this.variableNames=["x","indices"],this.outputShape=n;var r=xo(e.length),o=xo(n.length),a=this.sliceDim>1?"strides[j]":"strides";this.userCode="\n "+r+" strides = "+r+"("+this.strides+");\n void main() {\n "+o+" coords = getOutputCoords();\n int flattenIndex = 0;\n for (int j = 0; j < "+this.sliceDim+"; j++) {\n int index = round(getIndices(coords[0], j));\n flattenIndex += index * "+a+";\n }\n setOutput(getX(flattenIndex, coords[1]));\n }\n "};function pa(t,e){var n=uo();return Xt(t,e,n.version+"\n precision highp float;\n "+n.attribute+" vec3 clipSpacePos;\n "+n.attribute+" vec2 uv;\n "+n.varyingVs+" vec2 resultUV;\n\n void main() {\n gl_Position = vec4(clipSpacePos, 1);\n resultUV = uv;\n }")}function da(t,e){return ne(t,e,new Float32Array([-1,1,0,0,1,-1,-1,0,0,0,1,1,0,1,1,1,-1,0,1,0]))}function va(t,e){return re(t,e,new Uint16Array([0,1,2,2,1,3]))}function ma(t,e,n,r,o,a,i){ae(n,r);var s=oe(t,e),u=t.TEXTURE_2D;return Gt(t,e,(function(){return t.bindTexture(u,s)})),Gt(t,e,(function(){return t.texParameteri(u,t.TEXTURE_WRAP_S,t.CLAMP_TO_EDGE)})),Gt(t,e,(function(){return t.texParameteri(u,t.TEXTURE_WRAP_T,t.CLAMP_TO_EDGE)})),Gt(t,e,(function(){return t.texParameteri(u,t.TEXTURE_MIN_FILTER,t.NEAREST)})),Gt(t,e,(function(){return t.texParameteri(u,t.TEXTURE_MAG_FILTER,t.NEAREST)})),Gt(t,e,(function(){return t.texImage2D(u,0,o,n,r,0,a,i,null)})),Gt(t,e,(function(){return t.bindTexture(t.TEXTURE_2D,null)})),s}function ga(t,e,n,r,o){var a=Ut(n,r);return ma(t,e,a[0],a[1],o.internalFormatFloat,o.textureFormatFloat,t.FLOAT)}function ya(t,e,n,r,o){var a=Ut(n,r);return ma(t,e,a[0],a[1],o.internalFormatHalfFloat,o.textureFormatFloat,o.textureTypeHalfFloat)}function ba(t,e,n,r,o){var a=Ut(n,r);return ma(t,e,a[0],a[1],t.RGBA,t.RGBA,t.UNSIGNED_BYTE)}function xa(t,e,n,r,o){var a=zt(n,r);return ma(t,e,a[0],a[1],o.internalFormatPackedFloat,t.RGBA,t.FLOAT)}function wa(t,e,n,r,o){var a=zt(n,r);return ma(t,e,a[0],a[1],o.internalFormatPackedHalfFloat,t.RGBA,o.textureTypeHalfFloat)}function Ea(t,e,n,r){return Gt(t,e,(function(){return t.bindBuffer(t.ARRAY_BUFFER,r)})),se(t,e,n,"clipSpacePos",r,3,20,0)&&se(t,e,n,"uv",r,2,20,12)}function Ca(t,e,n,r,o,a,i){var s,u,c;Gt(t,e,(function(){return t.bindTexture(t.TEXTURE_2D,n)})),a instanceof Uint8Array?(s=new Uint8Array(r*o*4),u=t.UNSIGNED_BYTE,c=t.RGBA):(s=new Float32Array(r*o*4),u=t.FLOAT,c=i.internalFormatPackedFloat),s.set(a),Gt(t,e,(function(){return t.texImage2D(t.TEXTURE_2D,0,c,r,o,0,t.RGBA,u,s)})),Gt(t,e,(function(){return t.bindTexture(t.TEXTURE_2D,null)}))}function _a(t,e,n,r){Gt(t,e,(function(){return t.bindTexture(t.TEXTURE_2D,n)})),r.data instanceof Uint8Array?Gt(t,e,(function(){return t.texImage2D(t.TEXTURE_2D,0,t.RGBA,r.width,r.height,0,t.RGBA,t.UNSIGNED_BYTE,r.data)})):Gt(t,e,(function(){return t.texImage2D(t.TEXTURE_2D,0,t.RGBA,t.RGBA,t.UNSIGNED_BYTE,r)})),Gt(t,e,(function(){return t.bindTexture(t.TEXTURE_2D,null)}))}function ka(t,e,n,r,o){var a=t.createBuffer();Gt(t,e,(function(){return t.bindBuffer(t.PIXEL_PACK_BUFFER,a)}));var i=16*n*r;return Gt(t,e,(function(){return t.bufferData(t.PIXEL_PACK_BUFFER,i,t.STREAM_READ)})),Gt(t,e,(function(){return t.readPixels(0,0,r,n,t.RGBA,t.FLOAT,0)})),Gt(t,e,(function(){return t.bindBuffer(t.PIXEL_PACK_BUFFER,null)})),a}function Ra(t,e,n){var r=t,o=new Float32Array(n);return r.bindBuffer(r.PIXEL_PACK_BUFFER,e),r.getBufferSubData(r.PIXEL_PACK_BUFFER,0,o),r.bindBuffer(r.PIXEL_PACK_BUFFER,null),o}function Ia(t,e,n,r,o){var a=Ut(n,r),i=a[0],s=a[1],u=new Uint8Array(n*r*4);return Gt(t,e,(function(){return t.readPixels(0,0,i,s,o.downloadTextureFormat,t.UNSIGNED_BYTE,u)})),new Float32Array(u.buffer)}function Sa(t,e,n,r,o,a,i,s){var u=t,c=new Float32Array(function(t,e){var n=zt(t,e);return n[0]*n[1]*4}(a,i));return u.bindBuffer(u.PIXEL_PACK_BUFFER,e),u.getBufferSubData(u.PIXEL_PACK_BUFFER,0,c),u.bindBuffer(u.PIXEL_PACK_BUFFER,null),c}function Aa(t,e,n,r){var o=new Float32Array(n*r*4);return Gt(t,e,(function(){return t.readPixels(0,0,r,n,t.RGBA,t.FLOAT,o)})),o}var Oa=Object.freeze({createVertexShader:pa,createVertexBuffer:da,createIndexBuffer:va,createFloat32MatrixTexture:ga,createFloat16MatrixTexture:ya,createUnsignedBytesMatrixTexture:ba,createPackedMatrixTexture:xa,createFloat16PackedMatrixTexture:wa,bindVertexProgramAttributeStreams:Ea,uploadDenseMatrixToTexture:Ca,uploadPixelDataToTexture:_a,createBufferFromOutputTexture:ka,downloadFloat32MatrixFromBuffer:Ra,downloadByteEncodedFloatMatrixFromOutputTexture:Ia,downloadPackedMatrixFromBuffer:Sa,downloadMatrixFromPackedOutputTexture:Aa}),Ta=function(){function t(t){this.outputTexture=null,this.program=null,this.disposed=!1,this.vertexAttrsAreBound=!1,this.itemsToPoll=[];var e=f().getNumber("WEBGL_VERSION");null!=t?(this.gl=t,Lt(e,t)):this.gl=Wt(e);var n="WEBGL_color_buffer_float";if(1===f().getNumber("WEBGL_VERSION")){if(this.textureFloatExtension=Kt(this.gl,this.debug,"OES_texture_float"),Ie(this.gl,"OES_texture_half_float"))this.textureHalfFloatExtension=Kt(this.gl,this.debug,"OES_texture_half_float");else if(f().get("WEBGL_FORCE_F16_TEXTURES"))throw new Error("GL context does not support half float textures, yet the environment flag WEBGL_FORCE_F16_TEXTURES is set to true.");if(this.colorBufferFloatExtension=this.gl.getExtension(n),Ie(this.gl,"EXT_color_buffer_half_float"))this.colorBufferHalfFloatExtension=Kt(this.gl,this.debug,"EXT_color_buffer_half_float");else if(f().get("WEBGL_FORCE_F16_TEXTURES"))throw new Error("GL context does not support color renderable half floats, yet the environment flag WEBGL_FORCE_F16_TEXTURES is set to true.")}else if(n="EXT_color_buffer_float",Ie(this.gl,n))this.colorBufferFloatExtension=this.gl.getExtension(n);else{if(!Ie(this.gl,"EXT_color_buffer_half_float"))throw new Error("GL context does not support color renderable floats");this.colorBufferHalfFloatExtension=this.gl.getExtension("EXT_color_buffer_half_float")}this.vertexBuffer=da(this.gl,this.debug),this.indexBuffer=va(this.gl,this.debug),this.framebuffer=ie(this.gl,this.debug),this.textureConfig=Vt(this.gl,this.textureHalfFloatExtension)}return Object.defineProperty(t.prototype,"debug",{get:function(){return f().getBool("DEBUG")},enumerable:!0,configurable:!0}),t.prototype.dispose=function(){var t=this;if(!this.disposed){this.program,this.outputTexture;var e=this.gl;Gt(e,this.debug,(function(){return e.finish()})),Gt(e,this.debug,(function(){return e.bindFramebuffer(e.FRAMEBUFFER,null)})),Gt(e,this.debug,(function(){return e.deleteFramebuffer(t.framebuffer)})),Gt(e,this.debug,(function(){return e.bindBuffer(e.ARRAY_BUFFER,null)})),Gt(e,this.debug,(function(){return e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,null)})),Gt(e,this.debug,(function(){return e.deleteBuffer(t.indexBuffer)})),this.disposed=!0}},t.prototype.createFloat32MatrixTexture=function(t,e){return this.throwIfDisposed(),ga(this.gl,this.debug,t,e,this.textureConfig)},t.prototype.createFloat16MatrixTexture=function(t,e){return this.throwIfDisposed(),ya(this.gl,this.debug,t,e,this.textureConfig)},t.prototype.createUnsignedBytesMatrixTexture=function(t,e){return this.throwIfDisposed(),ba(this.gl,this.debug,t,e,this.textureConfig)},t.prototype.uploadPixelDataToTexture=function(t,e){this.throwIfDisposed(),_a(this.gl,this.debug,t,e)},t.prototype.uploadDenseMatrixToTexture=function(t,e,n,r){this.throwIfDisposed(),Ca(this.gl,this.debug,t,e,n,r,this.textureConfig)},t.prototype.createFloat16PackedMatrixTexture=function(t,e){return this.throwIfDisposed(),wa(this.gl,this.debug,t,e,this.textureConfig)},t.prototype.createPackedMatrixTexture=function(t,e){return this.throwIfDisposed(),xa(this.gl,this.debug,t,e,this.textureConfig)},t.prototype.deleteMatrixTexture=function(t){var e=this;this.throwIfDisposed(),this.outputTexture===t&&(pe(this.gl,this.debug,this.framebuffer),this.outputTexture=null),Gt(this.gl,this.debug,(function(){return e.gl.deleteTexture(t)}))},t.prototype.downloadByteEncodedFloatMatrixFromOutputTexture=function(t,e,n){var r=this;return this.downloadMatrixDriver(t,(function(){return Ia(r.gl,r.debug,e,n,r.textureConfig)}))},t.prototype.downloadPackedMatrixFromBuffer=function(t,e,n,r,o,a){return Sa(this.gl,t,0,0,0,o,a,this.textureConfig)},t.prototype.downloadFloat32MatrixFromBuffer=function(t,e){return Ra(this.gl,t,e)},t.prototype.createBufferFromTexture=function(t,e,n){this.bindTextureToFrameBuffer(t);var r=ka(this.gl,this.debug,e,n,this.textureConfig);return this.unbindTextureToFrameBuffer(),r},t.prototype.createAndWaitForFence=function(){var t=this.createFence(this.gl);return this.pollFence(t)},t.prototype.createFence=function(t){var e,n,r=this;if(f().getBool("WEBGL_FENCE_API_ENABLED")){var o=t,a=o.fenceSync(o.SYNC_GPU_COMMANDS_COMPLETE,0);t.flush(),n=function(){var t=o.clientWaitSync(a,0,0);return t===o.ALREADY_SIGNALED||t===o.CONDITION_SATISFIED},e=a}else f().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")>0?(e=this.beginQuery(),this.endQuery(),n=function(){return r.isQueryAvailable(e,f().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION"))}):n=function(){return!0};return{query:e,isFencePassed:n}},t.prototype.downloadMatrixFromPackedTexture=function(t,e,n){var r=this;return this.downloadMatrixDriver(t,(function(){return Aa(r.gl,r.debug,e,n)}))},t.prototype.createProgram=function(t){this.throwIfDisposed();var e=this.gl,n=$t(e,this.debug,t),r=pa(e,this.debug),o=Zt(e,this.debug);return Gt(e,this.debug,(function(){return e.attachShader(o,r)})),Gt(e,this.debug,(function(){return e.attachShader(o,n)})),te(e,this.debug,o),this.debug&&ee(e,this.debug,o),this.vertexAttrsAreBound||(this.setProgram(o),this.vertexAttrsAreBound=Ea(e,this.debug,this.program,this.vertexBuffer)),o},t.prototype.deleteProgram=function(t){var e=this;this.throwIfDisposed(),t===this.program&&(this.program=null),null!=t&&Gt(this.gl,this.debug,(function(){return e.gl.deleteProgram(t)}))},t.prototype.setProgram=function(t){var e=this;this.throwIfDisposed(),this.program=t,null!=this.program&&this.debug&&ee(this.gl,this.debug,this.program),Gt(this.gl,this.debug,(function(){return e.gl.useProgram(t)}))},t.prototype.getUniformLocation=function(t,e,n){return void 0===n&&(n=!0),this.throwIfDisposed(),n?ce(this.gl,this.debug,t,e):le(this.gl,t,e)},t.prototype.getAttributeLocation=function(t,e){var n=this;return this.throwIfDisposed(),Gt(this.gl,this.debug,(function(){return n.gl.getAttribLocation(t,e)}))},t.prototype.getUniformLocationNoThrow=function(t,e){return this.throwIfDisposed(),this.gl.getUniformLocation(t,e)},t.prototype.setInputMatrixTexture=function(t,e,n){this.throwIfDisposed(),this.throwIfNoProgram(),fe(this.gl,this.debug,this.program,t,e,n)},t.prototype.setOutputMatrixTexture=function(t,e,n){this.setOutputMatrixTextureDriver(t,n,e)},t.prototype.setOutputPackedMatrixTexture=function(t,e,n){this.throwIfDisposed();var r=zt(e,n),o=r[0],a=r[1];this.setOutputMatrixTextureDriver(t,o,a)},t.prototype.setOutputMatrixWriteRegion=function(t,e,n,r){this.setOutputMatrixWriteRegionDriver(n,t,r,e)},t.prototype.setOutputPackedMatrixWriteRegion=function(t,e,n,r){throw new Error("setOutputPackedMatrixWriteRegion not implemented.")},t.prototype.debugValidate=function(){null!=this.program&&ee(this.gl,this.debug,this.program),de(this.gl)},t.prototype.executeProgram=function(){this.throwIfDisposed(),this.throwIfNoProgram();var t=this.gl;this.debug&&this.debugValidate(),Gt(t,this.debug,(function(){return t.drawElements(t.TRIANGLES,6,t.UNSIGNED_SHORT,0)}))},t.prototype.blockUntilAllProgramsCompleted=function(){var t=this;this.throwIfDisposed(),Gt(this.gl,this.debug,(function(){return t.gl.finish()}))},t.prototype.getQueryTimerExtension=function(){return null==this.disjointQueryTimerExtension&&(this.disjointQueryTimerExtension=Kt(this.gl,this.debug,2===f().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")?"EXT_disjoint_timer_query_webgl2":"EXT_disjoint_timer_query")),this.disjointQueryTimerExtension},t.prototype.getQueryTimerExtensionWebGL2=function(){return this.getQueryTimerExtension()},t.prototype.getQueryTimerExtensionWebGL1=function(){return this.getQueryTimerExtension()},t.prototype.beginQuery=function(){if(2===f().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")){var t=this.gl,e=this.getQueryTimerExtensionWebGL2(),n=t.createQuery();return t.beginQuery(e.TIME_ELAPSED_EXT,n),n}var r=this.getQueryTimerExtensionWebGL1(),o=r.createQueryEXT();return r.beginQueryEXT(r.TIME_ELAPSED_EXT,o),o},t.prototype.endQuery=function(){if(2!==f().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")){var t=this.getQueryTimerExtensionWebGL1();t.endQueryEXT(t.TIME_ELAPSED_EXT)}else{var e=this.gl,n=this.getQueryTimerExtensionWebGL2();e.endQuery(n.TIME_ELAPSED_EXT)}},t.prototype.waitForQueryAndGetTime=function(t){return u(this,void 0,void 0,(function(){var e=this;return c(this,(function(n){switch(n.label){case 0:return[4,D((function(){return e.disposed||e.isQueryAvailable(t,f().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION"))}))];case 1:return n.sent(),[2,this.getQueryTime(t,f().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION"))]}}))}))},t.prototype.getQueryTime=function(t,e){if(0===e)return null;if(2===e){var n=this.gl;return n.getQueryParameter(t,n.QUERY_RESULT)/1e6}var r=this.getQueryTimerExtensionWebGL1();return r.getQueryObjectEXT(t,r.QUERY_RESULT_EXT)/1e6},t.prototype.isQueryAvailable=function(t,e){if(0===e)return!0;if(2===e){var n=this.gl,r=this.getQueryTimerExtensionWebGL2(),o=n.getQueryParameter(t,n.QUERY_RESULT_AVAILABLE);return null==this.disjoint&&(this.disjoint=this.gl.getParameter(r.GPU_DISJOINT_EXT)),o&&!this.disjoint}return o=(r=this.getQueryTimerExtensionWebGL1()).getQueryObjectEXT(t,r.QUERY_RESULT_AVAILABLE_EXT),null==this.disjoint&&(this.disjoint=this.gl.getParameter(r.GPU_DISJOINT_EXT)),o&&!this.disjoint},t.prototype.pollFence=function(t){var e=this;return new Promise((function(n){e.addItemToPoll((function(){return t.isFencePassed()}),(function(){return n()}))}))},t.prototype.pollItems=function(){for(var t=function(t){for(var e=0;e<t.length;++e){if(!t[e]())break}return e-1}(this.itemsToPoll.map((function(t){return t.isDoneFn}))),e=0;e<=t;++e)(0,this.itemsToPoll[e].resolveFn)();this.itemsToPoll=this.itemsToPoll.slice(t+1)},t.prototype.addItemToPoll=function(t,e){var n=this;this.itemsToPoll.push({isDoneFn:t,resolveFn:e}),this.itemsToPoll.length>1||D((function(){return n.pollItems(),0===n.itemsToPoll.length}))},t.prototype.bindTextureToFrameBuffer=function(t){this.throwIfDisposed(),he(this.gl,this.debug,t,this.framebuffer),this.debug&&de(this.gl)},t.prototype.unbindTextureToFrameBuffer=function(){null!=this.outputTexture?(he(this.gl,this.debug,this.outputTexture,this.framebuffer),this.debug&&de(this.gl)):pe(this.gl,this.debug,this.framebuffer)},t.prototype.downloadMatrixDriver=function(t,e){this.bindTextureToFrameBuffer(t);var n=e();return this.unbindTextureToFrameBuffer(),n},t.prototype.setOutputMatrixTextureDriver=function(t,e,n){this.throwIfDisposed();var r=this.gl;he(r,this.debug,t,this.framebuffer),this.debug&&de(r),this.outputTexture=t,Gt(r,this.debug,(function(){return r.viewport(0,0,e,n)})),Gt(r,this.debug,(function(){return r.scissor(0,0,e,n)}))},t.prototype.setOutputMatrixWriteRegionDriver=function(t,e,n,r){var o=this;this.throwIfDisposed(),Gt(this.gl,this.debug,(function(){return o.gl.scissor(t,e,n,r)}))},t.prototype.throwIfDisposed=function(){if(this.disposed)throw new Error("Attempted to use disposed GPGPUContext.")},t.prototype.throwIfNoProgram=function(){if(null==this.program)throw new Error("No GPU program is currently set.")},t}();function Da(t,e){if(t.length!==e.length)throw Error("Binary was compiled with "+t.length+" inputs, but was executed with "+e.length+" inputs");t.forEach((function(t,n){var r=t.logicalShape,o=e[n],a=o.shape;if(!I(r,a))throw Error("Binary was compiled with different shapes than the current args. Shapes "+r+" and "+a+" must match");if(!t.isUniform||!o.isUniform){var i=t.texShape,s=o.isUniform?null:o.texData.texShape;if(!I(i,s))throw Error("Binary was compiled with different texture shapes than the current args. Shape "+i+" and "+s+" must match")}}))}var Na=function(t,e,n){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=t;for(var r=n.filterWidth,o=n.inChannels,a=n.strideWidth,i=n.strideHeight,s=n.padInfo,u=n.outWidth,c=n.dilationWidth,l=n.dilationHeight,f=n.dataFormat,h=s.left,p=s.top,d=o*r,v=uo(),m="channelsLast"===f,g=m?0:1,y=m?1:2,b="",x=0;x<=1;x++)for(var w=0;w<=1;w++)b+="\n blockIndex = rc.y + "+w+";\n pos = rc.x + "+x+";\n\n if(blockIndex < "+t[1]+" && pos < "+t[0]+") {\n offsetY = int(blockIndex / ("+u+")) * "+i+" - "+p+";\n d0 = offsetY + "+l+" * (pos / "+d+");\n\n if(d0 < "+e[g]+" && d0 >= 0) {\n\n offsetX = int(mod(float(blockIndex), "+u+".) * "+a+". - "+h+".);\n d1 = offsetX + "+c+" * (int(mod(float(pos), "+d+".) / "+o+".));\n\n if(d1 < "+e[y]+" && d1 >= 0) {\n\n ch = int(mod(float(pos), "+o+".));\n\n if ("+m+") {\n innerDims = vec2(d1, ch);\n result["+(2*x+w)+"] = getChannel(\n getA(d0, int(innerDims.x),\n int(innerDims.y)), innerDims);\n } else {\n innerDims = vec2(d0, d1);\n result["+(2*x+w)+"] = getChannel(\n getA(ch, int(innerDims.x),\n int(innerDims.y)), innerDims);\n }\n }\n }\n }\n ";this.userCode="\n void main() {\n ivec2 rc = getOutputCoords();\n\n vec4 result = vec4(0);\n\n int blockIndex, pos, offsetY, d0, offsetX, d1, ch;\n vec2 innerDims;\n\n "+b+"\n\n "+v.output+" = result;\n }\n "},Fa=function(t,e,n,r,o){this.variableNames=["x"],this.outputShape=[];var a,i=e,s=t[3]-1;this.outputShape=t;var u="float("+n+") + float("+r+") * sum";a=.5===o?"inversesqrt("+u+")":1===o?"1.0/("+u+")":"exp(log("+u+") * float(-"+o+"));",this.userCode="\n void main() {\n ivec4 coords = getOutputCoords();\n int b = coords[0];\n int r = coords[1];\n int c = coords[2];\n int d = coords[3];\n float x = getX(b, r, c, d);\n float sum = 0.0;\n for (int j = -"+i+"; j <= "+i+"; j++) {\n int idx = d + j;\n if (idx >= 0 && idx <= "+s+") {\n float z = getX(b, r, c, idx);\n sum += z * z;\n }\n }\n float val = x * "+a+";\n setOutput(val);\n }\n "},Ma=function(t,e,n,r,o){this.variableNames=["inputImage","outputImage","dy"],this.outputShape=[],this.outputShape=t,this.depth=t[3],this.depthRadius=e,this.bias=n,this.alpha=r,this.beta=o,this.userCode="\n void main() {\n ivec4 coords = getOutputCoords();\n int b = coords[0];\n int r = coords[1];\n int c = coords[2];\n\n float result = 0.0;\n for (int d = 0; d < "+this.depth+"; ++d) {\n int depthBegin = int(max(0.0, float(d - "+e+")));\n int depthEnd = int(min(float("+this.depth+"),\n float(d + "+e+" + 1)));\n\n const int MIN_DEPTH_BEGIN = 0;\n const int MAX_DEPTH_END = "+this.depth+";\n\n float norm = 0.0;\n for (int k = MIN_DEPTH_BEGIN; k < MAX_DEPTH_END; ++k) {\n if (k < depthBegin){\n continue;\n }\n else if (k >= depthBegin && k < depthEnd) {\n norm += getInputImage(b, r, c, k) * getInputImage(b, r, c, k);\n }\n else {\n break;\n }\n }\n\n norm = float("+r+") * norm + float("+n+");\n\n for(int k = MIN_DEPTH_BEGIN; k < MAX_DEPTH_END; ++k){\n if (k < depthBegin){\n continue;\n }\n else if (k >= depthBegin && k < depthEnd){\n float dyi = -2.0 * float("+r+")\n * float("+o+")\n * getInputImage(b ,r ,c, k) * getOutputImage(b, r, c, d)\n / norm;\n if (k == d) {\n dyi += pow(norm, -1.0 * "+o+");\n }\n if (k == coords[3]) {\n dyi *= getDy(b, r, c, d);\n result += dyi;\n }\n }\n else {\n break;\n }\n }\n }\n setOutput(result);\n }\n "},Pa=function(t,e,n,r,o){this.variableNames=["x"],this.outputShape=[],this.packedInputs=!0,this.packedOutput=!0;var a,i=e,s=t[3]-1;this.outputShape=t;var u="float("+n+") + float("+r+") * sum";a=.5===o?"inversesqrt("+u+")":1===o?"1.0/("+u+")":"exp(log("+u+") * float(-"+o+"));",this.userCode="\n void main() {\n ivec4 coords = getOutputCoords();\n int b = coords.x;\n int r = coords.y;\n int c = coords.z;\n int d = coords.w;\n\n bool hasNextCol = d < "+this.outputShape[3]+";\n bool hasNextRow = c < "+this.outputShape[2]+";\n\n vec4 sum = vec4(0.);\n vec4 xFragAtOutputCoords = getX(b, r, c, d);\n\n vec4 xAtOutputCoords = vec4(\n getChannel(xFragAtOutputCoords, vec2(c, d)),\n hasNextCol ?\n getChannel(xFragAtOutputCoords, vec2(c, d + 1)) : 0.0,\n hasNextRow ?\n getChannel(xFragAtOutputCoords , vec2(c + 1, d)) : 0.0,\n (hasNextRow && hasNextCol) ?\n getChannel(xFragAtOutputCoords, vec2(c + 1, d + 1)) : 0.0\n );\n\n int firstChannel = d - "+i+";\n vec2 cache = vec2(0.);\n if(firstChannel >= 0){\n vec4 firstChannelFrag = getX(b, r, c, firstChannel);\n cache.x = getChannel(firstChannelFrag, vec2(c, firstChannel));\n if(hasNextRow){\n cache.y = getChannel(firstChannelFrag, vec2(c + 1, firstChannel));\n }\n }\n\n ivec2 depth = ivec2(d, d + 1);\n for (int j = - "+i+"; j <= "+i+"; j++) {\n ivec2 idx = depth + j;\n bvec2 aboveLowerBound = greaterThanEqual(idx, ivec2(0));\n bvec2 belowUpperBound = lessThanEqual(idx, ivec2("+s+"));\n\n bool depthInRange = aboveLowerBound.x && belowUpperBound.x;\n bool depthPlusOneInRange = aboveLowerBound.y && belowUpperBound.y;\n\n if(depthInRange || depthPlusOneInRange){\n vec4 z = vec4(0.);\n vec4 xFragAtCurrentDepth;\n z.xz = cache.xy;\n if(depthPlusOneInRange && hasNextCol){\n xFragAtCurrentDepth = idx.y != d ?\n getX(b, r, c, idx.y) : xFragAtOutputCoords;\n z.y = getChannel(xFragAtCurrentDepth, vec2(c, idx.y));\n if(hasNextRow){\n z.w = getChannel(xFragAtCurrentDepth, vec2(c + 1, idx.y));\n }\n }\n cache.xy = z.yw;\n sum += z * z;\n }\n }\n vec4 result = xAtOutputCoords * "+a+";\n setOutput(result);\n }\n "},Ba=function(t){this.variableNames=["dy","maxPos"],this.outputShape=t.inShape;var e=t.strideHeight,n=t.strideWidth,r=t.dilationHeight,o=t.effectiveFilterHeight,a=t.effectiveFilterWidth,i=o-1-t.padInfo.top,s=a-1-t.padInfo.left,u=o*a-1;this.userCode="\n const ivec2 pads = ivec2("+i+", "+s+");\n\n void main() {\n ivec4 coords = getOutputCoords();\n int b = coords[0];\n int d = coords[3];\n\n ivec2 dyRCCorner = coords.yz - pads;\n int dyRCorner = dyRCCorner.x;\n int dyCCorner = dyRCCorner.y;\n\n // Convolve dy(?, ?, d) with pos mask(:, :, d) to get dx(xR, xC, d).\n // ? = to be determined. : = across all values in that axis.\n float dotProd = 0.0;\n for (int wR = 0; wR < "+o+";\n wR += "+r+") {\n float dyR = float(dyRCorner + wR) / "+e+".0;\n\n if (dyR < 0.0 || dyR >= "+t.outHeight+".0 || fract(dyR) > 0.0) {\n continue;\n }\n int idyR = int(dyR);\n\n for (int wC = 0; wC < "+a+"; wC++) {\n float dyC = float(dyCCorner + wC) / "+n+".0;\n\n if (dyC < 0.0 || dyC >= "+t.outWidth+".0 ||\n fract(dyC) > 0.0) {\n continue;\n }\n int idyC = int(dyC);\n\n float dyValue = getDy(b, idyR, idyC, d);\n int maxPosValue = "+u+" - int(getMaxPos(b, idyR, idyC, d));\n\n // Get the current value, check it against the value from the\n // position matrix.\n int curPosValue = wR * "+a+" + wC;\n float mask = float(maxPosValue == curPosValue ? 1.0 : 0.0);\n\n dotProd += dyValue * mask;\n }\n }\n setOutput(dotProd);\n }\n "},La=function(t){this.variableNames=["dy","maxPos"],this.outputShape=t.inShape;var e=t.strideDepth,n=t.strideHeight,r=t.strideWidth,o=t.dilationDepth,a=t.dilationHeight,i=t.dilationWidth,s=t.effectiveFilterDepth,u=t.effectiveFilterHeight,c=t.effectiveFilterWidth,l=s-1-t.padInfo.front,f=u-1-t.padInfo.top,h=c-1-t.padInfo.left,p=s*u*c-1;this.userCode="\n const ivec3 pads = ivec3("+l+", "+f+", "+h+");\n\n void main() {\n ivec5 coords = getOutputCoords();\n int batch = coords.x;\n int ch = coords.u;\n\n ivec3 dyCorner = ivec3(coords.y, coords.z, coords.w) - pads;\n int dyDCorner = dyCorner.x;\n int dyRCorner = dyCorner.y;\n int dyCCorner = dyCorner.z;\n\n // Convolve dy(?, ?, ?, ch) with pos mask(:, :, :, d) to get\n // dx(xD, xR, xC, ch).\n // ? = to be determined. : = across all values in that axis.\n float dotProd = 0.0;\n\n for (int wD = 0; wD < "+s+";\n wD += "+o+") {\n float dyD = float(dyDCorner + wD) / "+e+".0;\n\n if (dyD < 0.0 || dyD >= "+t.outDepth+".0 || fract(dyD) > 0.0) {\n continue;\n }\n int idyD = int(dyD);\n\n for (int wR = 0; wR < "+u+";\n wR += "+a+") {\n float dyR = float(dyRCorner + wR) / "+n+".0;\n\n if (dyR < 0.0 || dyR >= "+t.outHeight+".0 ||\n fract(dyR) > 0.0) {\n continue;\n }\n int idyR = int(dyR);\n\n for (int wC = 0; wC < "+c+";\n wC += "+i+") {\n float dyC = float(dyCCorner + wC) / "+r+".0;\n\n if (dyC < 0.0 || dyC >= "+t.outWidth+".0 ||\n fract(dyC) > 0.0) {\n continue;\n }\n int idyC = int(dyC);\n\n float dyValue = getDy(batch, idyD, idyR, idyC, ch);\n int maxPosValue = "+p+" -\n int(getMaxPos(batch, idyD, idyR, idyC, ch));\n\n // Get the current value, check it against the value from the\n // position matrix.\n int curPosValue =\n wD * "+u+" * "+c+" +\n wR * "+c+" + wC;\n float mask = float(maxPosValue == curPosValue ? 1.0 : 0.0);\n\n dotProd += dyValue * mask;\n }\n }\n }\n setOutput(dotProd);\n }\n "},Wa=function(t,e,n,r,o,a,i){void 0===n&&(n=!1),void 0===r&&(r=!1),void 0===o&&(o=!1),void 0===a&&(a=null),void 0===i&&(i=!1),this.variableNames=["matrixA","matrixB"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e;var s=n?t[1]:t[2],u=Math.ceil(s/2),c=n?"i * 2, rc.y":"rc.y, i * 2",l=r?"rc.z, i * 2":"i * 2, rc.z",f=n?["a.xxyy","a.zzww"]:["a.xxzz","a.yyww"],h=r?["b.xzxz","b.ywyw"]:["b.xyxy","b.zwzw"],p="",d="";a&&(p=i?"vec4 activation(vec4 a) {\n vec4 b = getPreluActivationWeightsAtOutCoords();\n "+a+"\n }":"vec4 activation(vec4 x) {\n "+a+"\n }",d="result = activation(result);");var v=o?"result += getBiasAtOutCoords();":"";o&&this.variableNames.push("bias"),i&&this.variableNames.push("preluActivationWeights"),this.userCode="\n "+p+"\n\n const float sharedDimension = "+u+".0;\n\n vec4 dot2x2ARowBCol(ivec3 rc) {\n vec4 result = vec4(0);\n for (int i = 0; i < "+u+"; i++) {\n vec4 a = getMatrixA(rc.x, "+c+");\n vec4 b = getMatrixB(rc.x, "+l+");\n\n // These swizzled products need to be separately added.\n // See: https://github.com/tensorflow/tfjs/issues/1735\n result += ("+f[0]+" * "+h[0]+");\n result += ("+f[1]+" * "+h[1]+");\n }\n return result;\n }\n\n void main() {\n ivec3 rc = getOutputCoords();\n vec4 result = dot2x2ARowBCol(rc);\n\n "+v+"\n\n "+d+"\n\n setOutput(result);\n }\n "},Ua=function(){function t(t,e,n){this.variableNames=["probs"],this.outputShape=[t,n],this.userCode="\n uniform float seed;\n\n void main() {\n ivec2 coords = getOutputCoords();\n int batch = coords[0];\n\n float r = random(seed);\n float cdf = 0.0;\n\n for (int i = 0; i < "+(e-1)+"; i++) {\n cdf += getProbs(batch, i);\n\n if (r < cdf) {\n setOutput(float(i));\n return;\n }\n }\n\n // If no other event happened, last event happened.\n setOutput(float("+(e-1)+"));\n }\n "}return t.prototype.getCustomSetupFunc=function(t){var e=this;return function(n,r){null==e.seedLoc&&(e.seedLoc=n.getUniformLocation(r,"seed")),n.gl.uniform1f(e.seedLoc,t)}},t}(),ja=function(t,e,n,r){this.variableNames=["indices"],this.outputShape=[t,e],this.userCode="\n void main() {\n ivec2 coords = getOutputCoords();\n int index = round(getIndices(coords.x));\n setOutput(mix(float("+r+"), float("+n+"),\n float(index == coords.y)));\n }\n "},za=function(t){this.variableNames=["A"],this.packedInputs=!1,this.packedOutput=!0,this.outputShape=t;var e=t.length;if(0===e)this.userCode="\n void main() {\n setOutput(vec4(getA(), 0., 0., 0.));\n }\n ";else{var n=so("rc",e),r=xo(e),o=function(t,e,n){if(1===t)return"rc > "+e[0];for(var r="",o=t-2;o<t;o++)r+=n[o]+" >= "+e[o],o<t-1&&(r+="||");return r}(e,t,n),a=function(t,e,n,r){if(1===t)return"";var o=r.slice(-2);return"\n int r = "+o[0]+";\n int c = "+o[1]+";\n int rp1 = r + 1;\n int cp1 = c + 1;\n\n bool cEdge = cp1 >= "+e+";\n bool rEdge = rp1 >= "+n+";\n "}(e,t[t.length-1],t[t.length-2],n),i=function(t,e){var n=t.length,r=function(t,e){for(var n=[],r=0;r<=1;r++)for(var o=0;o<=1;o++){for(var a=(0===r?"r":"rp1")+", "+(0===o?"c":"cp1"),i=2;i<t;i++)a=e[e.length-1-i]+","+a;n.push(a)}return n}(n,e);return 1===n?"getA(rc),\n rc + 1 >= "+t[0]+" ? 0. : getA(rc + 1),\n 0, 0":"getA("+r[0]+"),\n cEdge ? 0. : getA("+r[1]+"),\n rEdge ? 0. : getA("+r[2]+"),\n rEdge || cEdge ? 0. : getA("+r[3]+")"}(t,n);this.userCode="\n void main() {\n "+r+" rc = getOutputCoords();\n\n if("+o+") {\n setOutput(vec4(0));\n } else {\n "+a+"\n\n setOutput(vec4("+i+"));\n }\n }\n "}},Va=function(t,e,n){this.variableNames=["x"],this.outputShape=e.map((function(e,n){return e[0]+t[n]+e[1]}));var r=t.length,o=xo(r),a=e.map((function(t){return t[0]})).join(","),i=e.map((function(e,n){return e[0]+t[n]})).join(","),s=["coords[0]","coords[1]","coords[2]","coords[3]"].slice(0,r);this.userCode=1!==r?"\n "+o+" start = "+o+"("+a+");\n "+o+" end = "+o+"("+i+");\n\n void main() {\n "+o+" outC = getOutputCoords();\n if (any(lessThan(outC, start)) || any(greaterThanEqual(outC, end))) {\n setOutput(float("+n+"));\n } else {\n "+o+" coords = outC - start;\n setOutput(getX("+s+"));\n }\n }\n ":"\n int start = "+a+";\n int end = "+i+";\n\n void main() {\n int outC = getOutputCoords();\n if (outC < start || outC >= end) {\n setOutput(float("+n+"));\n } else {\n setOutput(getX(outC - start));\n }\n }\n "},Ga=function(t,e,n){this.variableNames=["x"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e.map((function(e,n){return e[0]+t[n]+e[1]}));for(var r=t.length,o=xo(r),a=e.map((function(t){return t[0]})).join(","),i=e.map((function(e,n){return e[0]+t[n]})).join(","),s=so("rc",r),u=so("source",r),c=s[r-1]+" < "+this.outputShape[r-1],l=1===r?"source":"vec2("+u.slice(-2).join()+")",f=[o+" rc = outputLoc;",s[r-1]+" += 1;\n if("+c+") {\n ",1===r?"":"}\n rc = outputLoc;\n "+s[r-2]+" += 1;\n if("+s[r-2]+" < "+this.outputShape[r-2]+") {",1===r?"":" "+s[r-1]+" += 1;\n if("+c+") {"],h=1===r?"rc < start || rc >= end":"any(lessThan(rc, start)) || any(greaterThanEqual(rc, end))",p="",d=0,v=1===r?2:4;d<v;d++)p+="\n "+f[d]+"\n if ("+h+") {\n result["+d+"] = float("+n+");\n } else {\n "+o+" source = rc - start;\n result["+d+"] = getChannel(getX("+u.join()+"), "+l+");\n }\n ";p+=1===r?"} ":"}}",this.userCode="\n const "+o+" start = "+o+"("+a+");\n const "+o+" end = "+o+"("+i+");\n\n void main() {\n "+o+" outputLoc = getOutputCoords();\n vec4 result = vec4(0.);\n "+p+"\n setOutput(result);\n }\n "},Ha=function(t,e,n){if(this.variableNames=["x"],"avg"===e&&n)throw new Error("Cannot compute positions for average pool.");var r=t.filterWidth,o=t.strideHeight,a=t.strideWidth,i=t.dilationHeight,s=t.dilationWidth,u=t.effectiveFilterHeight,c=t.effectiveFilterWidth,l=t.padInfo.top,f=t.padInfo.left;this.outputShape=t.outShape;var h="avg"===e,p="0.0";if(h||(p="-1.0 / 1e-20"),n)this.userCode="\n const ivec2 strides = ivec2("+o+", "+a+");\n const ivec2 pads = ivec2("+l+", "+f+");\n\n void main() {\n ivec4 coords = getOutputCoords();\n int batch = coords[0];\n int d = coords[3];\n\n ivec2 xRCCorner = coords.yz * strides - pads;\n int xRCorner = xRCCorner.x;\n int xCCorner = xRCCorner.y;\n\n // max/min x(?, ?, d) to get y(yR, yC, d).\n // ? = to be determined\n float minMaxValue = 0.0;\n float minMaxValueFound = 0.0;\n int minMaxPosition = 0;\n float avgValue = 0.0;\n\n for (int wR = 0; wR < "+u+";\n wR += "+i+") {\n int xR = xRCorner + wR;\n\n if (xR < 0 || xR >= "+t.inHeight+") {\n continue;\n }\n\n for (int wC = 0; wC < "+c+";\n wC += "+s+") {\n int xC = xCCorner + wC;\n\n if (xC < 0 || xC >= "+t.inWidth+") {\n continue;\n }\n\n float value = getX(batch, xR, xC, d);\n\n // If a min / max value has already been found, use it. If not,\n // use the current value.\n float currMinMaxValue = mix(\n value, minMaxValue, minMaxValueFound);\n if (value >= currMinMaxValue) {\n minMaxValue = value;\n minMaxValueFound = 1.0;\n minMaxPosition = wR * "+c+" + wC;\n }\n }\n }\n setOutput(float(minMaxPosition));\n }\n ";else{var d=e+"("+e+"("+e+"(minMaxValue[0], minMaxValue[1]), minMaxValue[2]), minMaxValue[3])";"avg"===e&&(d="avgValue / count");var v=4*Math.floor(r/4),m=r%4,g="\n if ("+h+") {\n avgValue += dot(values, ones);\n } else {\n minMaxValue = max(values, minMaxValue);\n }\n ";this.userCode="\n const ivec2 strides = ivec2("+o+", "+a+");\n const ivec2 pads = ivec2("+l+", "+f+");\n const float initializationValue = "+p+";\n const vec4 ones = vec4(1.0, 1.0, 1.0, 1.0);\n\n float count = 0.0;\n\n float getValue(int batch, int xR, int xC, int d) {\n if (xC < 0 || xC >= "+t.inWidth+") {\n return initializationValue;\n }\n count += 1.0;\n return getX(batch, xR, xC, d);\n }\n\n void main() {\n ivec4 coords = getOutputCoords();\n int batch = coords[0];\n int d = coords[3];\n\n ivec2 xRCCorner = coords.yz * strides - pads;\n int xRCorner = xRCCorner.x;\n int xCCorner = xRCCorner.y;\n\n // max/min x(?, ?, d) to get y(yR, yC, d).\n // ? = to be determined\n vec4 minMaxValue = vec4("+p+");\n float avgValue = 0.0;\n count = 0.0;\n\n for (int wR = 0; wR < "+u+";\n wR += "+i+") {\n int xR = xRCorner + wR;\n\n if (xR < 0 || xR >= "+t.inHeight+") {\n continue;\n }\n\n for (int wC = 0; wC < "+v+"; wC += 4) {\n int xC = xCCorner + wC * "+s+";\n\n vec4 values = vec4(\n getValue(batch, xR, xC, d),\n getValue(batch, xR, xC + "+s+", d),\n getValue(batch, xR, xC + 2 * "+s+", d),\n getValue(batch, xR, xC + 3 * "+s+", d)\n );\n\n "+g+"\n }\n\n int xC = xCCorner + "+v+";\n if ("+(1===m)+") {\n vec4 values = vec4(\n getValue(batch, xR, xC, d),\n initializationValue,\n initializationValue,\n initializationValue\n );\n\n "+g+"\n } else if ("+(2===m)+") {\n vec4 values = vec4(\n getValue(batch, xR, xC, d),\n getValue(batch, xR, xC + "+s+", d),\n initializationValue,\n initializationValue\n );\n\n "+g+"\n } else if ("+(3===m)+") {\n vec4 values = vec4(\n getValue(batch, xR, xC, d),\n getValue(batch, xR, xC + "+s+", d),\n getValue(batch, xR, xC + 2 * "+s+", d),\n initializationValue\n );\n\n "+g+"\n }\n }\n setOutput("+d+");\n }\n "}},qa=function(t,e,n){if(this.variableNames=["x"],"avg"===e&&n)throw new Error("Cannot compute positions for average pool.");var r=t.filterWidth,o=t.strideDepth,a=t.strideHeight,i=t.strideWidth,s=t.dilationDepth,u=t.dilationHeight,c=t.dilationWidth,l=t.effectiveFilterDepth,f=t.effectiveFilterHeight,h=t.effectiveFilterWidth,p=t.padInfo.front,d=t.padInfo.top,v=t.padInfo.left;this.outputShape=t.outShape;var m="avg"===e,g="0.0";if(m||(g="-1.0 / 1e-20"),n)this.userCode="\n const ivec3 strides =\n ivec3("+o+", "+a+", "+i+");\n const ivec3 pads = ivec3("+p+", "+d+", "+v+");\n\n void main() {\n ivec5 coords = getOutputCoords();\n int batch = coords.x;\n int ch = coords.u;\n\n ivec3 xCorner = ivec3(coords.y, coords.z, coords.w) * strides - pads;\n int xDCorner = xCorner.x;\n int xRCorner = xCorner.y;\n int xCCorner = xCorner.z;\n\n // max/min x(?, ?, ?, ch) to get y(yD, yR, yC, ch).\n // ? = to be determined\n float minMaxValue = 0.0;\n float minMaxValueFound = 0.0;\n int minMaxPosition = 0;\n\n for (int wD = 0; wD < "+l+";\n wD += "+s+") {\n int xD = xDCorner + wD;\n\n if (xD < 0 || xD >= "+t.inDepth+") {\n continue;\n }\n\n for (int wR = 0; wR < "+f+";\n wR += "+u+") {\n int xR = xRCorner + wR;\n\n if (xR < 0 || xR >= "+t.inHeight+") {\n continue;\n }\n\n for (int wC = 0; wC < "+h+";\n wC += "+c+") {\n int xC = xCCorner + wC;\n\n if (xC < 0 || xC >= "+t.inWidth+") {\n continue;\n }\n\n float value = getX(batch, xD, xR, xC, ch);\n\n // If a min / max value has already been found, use it. If not,\n // use the current value.\n float currMinMaxValue = mix(\n value, minMaxValue, minMaxValueFound);\n if (value >= currMinMaxValue) {\n minMaxValue = value;\n minMaxValueFound = 1.0;\n minMaxPosition =\n wD * "+f+" * "+h+" +\n wR * "+h+" + wC;;\n }\n }\n }\n }\n setOutput(float(minMaxPosition));\n }\n ";else{var y=e+"("+e+"("+e+"(minMaxValue[0], minMaxValue[1]), minMaxValue[2]), minMaxValue[3])";"avg"===e&&(y="avgValue / count");var b=4*Math.floor(r/4),x=r%4,w="\n if ("+m+") {\n avgValue += dot(values, ones);\n } else {\n minMaxValue = max(values, minMaxValue);\n }\n ";this.userCode="\n const ivec3 strides =\n ivec3("+o+", "+a+", "+i+");\n const ivec3 pads = ivec3("+p+", "+d+", "+v+");\n const float initializationValue = "+g+";\n const vec4 ones = vec4(1.0, 1.0, 1.0, 1.0);\n\n float count = 0.0;\n\n float getValue(int batch, int xD, int xR, int xC, int ch) {\n if (xC < 0 || xC >= "+t.inWidth+") {\n return initializationValue;\n }\n count += 1.0;\n return getX(batch, xD, xR, xC, ch);\n }\n\n void main() {\n ivec5 coords = getOutputCoords();\n int batch = coords.x;\n int ch = coords.u;\n\n ivec3 xCorner = ivec3(coords.y, coords.z, coords.w) * strides - pads;\n int xDCorner = xCorner.x;\n int xRCorner = xCorner.y;\n int xCCorner = xCorner.z;\n\n // max/min x(?, ?, ?, d) to get y(yD, yR, yC, ch).\n // ? = to be determined\n vec4 minMaxValue = vec4("+g+");\n float avgValue = 0.0;\n count = 0.0;\n\n for (int wD = 0; wD < "+l+";\n wD += "+s+") {\n int xD = xDCorner + wD;\n\n if (xD < 0 || xD >= "+t.inDepth+") {\n continue;\n }\n\n for (int wR = 0; wR < "+f+";\n wR += "+u+") {\n int xR = xRCorner + wR;\n\n if (xR < 0 || xR >= "+t.inHeight+") {\n continue;\n }\n\n for (int wC = 0; wC < "+b+"; wC += 4) {\n int xC = xCCorner + wC * "+c+";\n\n vec4 values = vec4(\n getValue(batch, xD, xR, xC, ch),\n getValue(batch, xD, xR, xC + "+c+", ch),\n getValue(batch, xD, xR, xC + 2 * "+c+", ch),\n getValue(batch, xD, xR, xC + 3 * "+c+", ch)\n );\n\n "+w+"\n }\n\n int xC = xCCorner + "+b+";\n if ("+(1===x)+") {\n vec4 values = vec4(\n getValue(batch, xD, xR, xC, ch),\n initializationValue,\n initializationValue,\n initializationValue\n );\n\n "+w+"\n } else if ("+(2===x)+") {\n vec4 values = vec4(\n getValue(batch, xD, xR, xC, ch),\n getValue(batch, xD, xR, xC + "+c+", ch),\n initializationValue,\n initializationValue\n );\n\n "+w+"\n } else if ("+(3===x)+") {\n vec4 values = vec4(\n getValue(batch, xD, xR, xC, ch),\n getValue(batch, xD, xR, xC + "+c+", ch),\n getValue(batch, xD, xR, xC + 2 * "+c+", ch),\n initializationValue\n );\n\n "+w+"\n }\n }\n setOutput("+y+");\n }\n }\n "}},Ka=function(t,e){this.variableNames=["x"];var n=t.windowSize,r=t.batchSize,o=t.inSize,a=Math.ceil(o/n);this.outputShape=[r,a];var i="0.0",s="";"prod"===e?i="1.0":"min"===e?(i="1.0 / 1e-20",s="min"):"max"===e&&(i="-1.0 / 1e-20",s="max");var u=e+"("+e+"("+e+"(minMaxValue[0], minMaxValue[1]), minMaxValue[2]), minMaxValue[3])";"sum"===e?u="sumValue":"prod"===e?u="prodValue":"all"===e?u="allValue":"any"===e&&(u="anyValue");var c=4*Math.floor(n/4),l=n%4,f="\n if ("+("sum"===e)+") {\n sumValue += dot(values, ones);\n } else if ("+("prod"===e)+") {\n vec2 tmp = vec2(values[0], values[1]) * vec2(values[2], values[3]);\n prodValue *= tmp[0] * tmp[1];\n } else {\n minMaxValue = "+s+"(values, minMaxValue);\n }\n ",h="vec4";"all"===e?(i="1.0",f="\n bool reducedAllValue = all(values);\n float floatedReducedAllValue = float(reducedAllValue);\n allValue = float(allValue >= 1.0 && floatedReducedAllValue >= 1.0);\n ",h="bvec4"):"any"===e&&(i="0.0",f="\n bool reducedAnyValue = any(values);\n float floatedReducedAnyValue = float(reducedAnyValue);\n anyValue = float(anyValue >= 1.0 || floatedReducedAnyValue >= 1.0);\n ",h="bvec4");var p="";o%n>0&&(p="\n if (inIdx < 0 || inIdx >= "+o+") {\n return initializationValue;\n }\n "),this.userCode="\n const float initializationValue = "+i+";\n const vec4 ones = vec4(1.0, 1.0, 1.0, 1.0);\n\n float getValue(int batch, int inIdx) {\n "+p+"\n return getX(batch, inIdx);\n }\n\n void main() {\n ivec2 coords = getOutputCoords();\n int batch = coords[0];\n int outIdx = coords[1];\n int inOffset = outIdx * "+n+";\n\n vec4 minMaxValue = vec4("+i+");\n float prodValue = 1.0;\n float sumValue = 0.0;\n float allValue = 1.0;\n float anyValue = 0.0;\n\n for (int i = 0; i < "+c+"; i += 4) {\n int inIdx = inOffset + i;\n "+h+" values = "+h+"(\n getValue(batch, inIdx),\n getValue(batch, inIdx + 1),\n getValue(batch, inIdx + 2),\n getValue(batch, inIdx + 3)\n );\n\n "+f+"\n }\n\n int inIdx = inOffset + "+c+";\n if ("+(1===l)+") {\n "+h+" values = "+h+"(\n getValue(batch, inIdx),\n initializationValue,\n initializationValue,\n initializationValue\n );\n\n "+f+"\n } else if ("+(2===l)+") {\n "+h+" values = "+h+"(\n getValue(batch, inIdx),\n getValue(batch, inIdx + 1),\n initializationValue,\n initializationValue\n );\n\n "+f+"\n } else if ("+(3===l)+") {\n "+h+" values = "+h+"(\n getValue(batch, inIdx),\n getValue(batch, inIdx + 1),\n getValue(batch, inIdx + 2),\n initializationValue\n );\n\n "+f+"\n }\n setOutput("+u+");\n }\n "},Xa=function(t,e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=t;for(var n="",r=0;r<4;r++){var o="thisRC = rc;";r%2==1&&(o+="thisRC.z += 1;"),r>1&&(o+="thisRC.y += 1;"),n+="\n "+o+"\n "+(r>0?"if(thisRC.y < rows && thisRC.z < cols){":"")+"\n int flatIndex = getFlatIndex(thisRC);\n\n ivec3 inputRC = inputCoordsFromReshapedOutCoords(flatIndex);\n vec2 inputRCInnerDims = vec2(float(inputRC.y),float(inputRC.z));\n\n result["+r+"] =\n getChannel(getA(inputRC.x, inputRC.y, inputRC.z), inputRCInnerDims);\n "+(r>0?"}":"")+"\n "}this.userCode="\n \n ivec3 inputCoordsFromReshapedOutCoords(int index) {\n "+co(["r","c","d"],e)+"\n return ivec3(r, c, d);\n }\n \n "+lo(t)+"\n\n void main() {\n ivec3 rc = getOutputCoords();\n\n vec4 result = vec4(0.);\n\n ivec3 thisRC;\n int rows = "+t[1]+";\n int cols = "+t[2]+";\n\n "+n+"\n\n setOutput(result);\n }\n "},$a=function(t,e,n){this.variableNames=["dy"],this.outputShape=[],this.outputShape=e.shape;var r=e.shape,o=r[1],a=r[2],i=t.shape,s=i[1],u=i[2],c=[n&&s>1?o-1:o,n&&u>1?a-1:a],l=[n&&s>1?s-1:s,n&&u>1?u-1:u],f=c[0]/l[0],h=c[1]/l[1],p=1/f,d=1/h,v=2*Math.ceil(p)+2,m=2*Math.ceil(d)+2;this.userCode="\n void main() {\n ivec4 coords = getOutputCoords();\n int b = coords[0];\n int d = coords[3];\n int r = coords[1];\n int c = coords[2];\n\n float accumulator = 0.0;\n\n const float heightScale = float("+f+");\n const float widthScale = float("+h+");\n\n const float invHeightScale = float("+p+");\n const float invWidthScale = float("+d+");\n\n const int winHeight = int("+v+");\n const int winWidth = int("+m+");\n\n // Compute bounds for where in dy we will look\n float startRLerp = floor(float(r) * invHeightScale);\n int startDyR = int(startRLerp - float(winHeight / 2));\n\n float startCLerp = floor(float(c) * invWidthScale);\n int startDyC = int(startCLerp - float(winWidth / 2));\n\n // Loop over dy\n for (int dyROffset = 0; dyROffset < winHeight; dyROffset++) {\n int dyR = dyROffset + startDyR;\n\n // Guard against the window exceeding the bounds of dy\n if (dyR < 0 || dyR >= "+s+") {\n continue;\n }\n\n for (int dyCOffset = 0; dyCOffset < winWidth; dyCOffset++) {\n int dyC = dyCOffset + startDyC;\n\n // Guard against the window exceeding the bounds of dy\n if (dyC < 0 || dyC >= "+u+") {\n continue;\n }\n\n float dxR = float(dyR) * heightScale;\n int topDxRIndex = int(floor(dxR));\n int bottomDxRIndex = int(min(ceil(dxR), "+(o-1)+".0));\n float dxRLerp = dxR - float(topDxRIndex);\n float inverseDxRLerp = 1.0 - dxRLerp;\n\n float dxC = float(dyC) * widthScale;\n int leftDxCIndex = int(floor(dxC));\n int rightDxCIndex = int(min(ceil(dxC), "+(a-1)+".0));\n float dxCLerp = dxC - float(leftDxCIndex);\n float inverseDxCLerp = 1.0 - dxCLerp;\n\n if (r == topDxRIndex && c == leftDxCIndex) {\n // topLeft\n accumulator +=\n getDy(b, dyR, dyC, d) * inverseDxRLerp * inverseDxCLerp;\n }\n\n if (r == topDxRIndex && c == rightDxCIndex) {\n // topRight\n accumulator += getDy(b, dyR, dyC, d) * inverseDxRLerp * dxCLerp;\n }\n\n if (r == bottomDxRIndex && c == leftDxCIndex) {\n // bottomLeft\n accumulator += getDy(b, dyR, dyC, d) * dxRLerp * inverseDxCLerp;\n }\n\n if (r == bottomDxRIndex && c == rightDxCIndex) {\n // bottomRight\n accumulator += getDy(b, dyR, dyC, d) * dxRLerp * dxCLerp;\n }\n }\n }\n // End loop over dy\n\n setOutput(accumulator);\n }\n "},Ya=function(t,e,n,r){this.variableNames=["A"],this.outputShape=[];var o=t[0],a=t[1],i=t[2],s=t[3];this.outputShape=[o,e,n,s];var u=[r&&e>1?a-1:a,r&&n>1?i-1:i],c=[r&&e>1?e-1:e,r&&n>1?n-1:n];this.userCode="\n const vec2 effectiveInputOverOutputRatioRC = vec2(\n "+u[0]/c[0]+",\n "+u[1]/c[1]+");\n const vec2 inputShapeRC = vec2("+a+".0, "+i+".0);\n\n void main() {\n ivec4 coords = getOutputCoords();\n int b = coords[0];\n int d = coords[3];\n ivec2 yRC = coords.yz;\n\n // Fractional source index.\n vec2 sourceFracIndexRC = vec2(yRC) * effectiveInputOverOutputRatioRC;\n\n // Compute the four integer indices.\n ivec2 sourceFloorRC = ivec2(sourceFracIndexRC);\n ivec2 sourceCeilRC = ivec2(\n min(inputShapeRC - 1.0, ceil(sourceFracIndexRC)));\n\n float topLeft = getA(b, sourceFloorRC.x, sourceFloorRC.y, d);\n float bottomLeft = getA(b, sourceCeilRC.x, sourceFloorRC.y, d);\n float topRight = getA(b, sourceFloorRC.x, sourceCeilRC.y, d);\n float bottomRight = getA(b, sourceCeilRC.x, sourceCeilRC.y, d);\n\n vec2 fracRC = sourceFracIndexRC - vec2(sourceFloorRC);\n\n float top = topLeft + (topRight - topLeft) * fracRC.y;\n float bottom = bottomLeft + (bottomRight - bottomLeft) * fracRC.y;\n float newValue = top + (bottom - top) * fracRC.x;\n\n setOutput(newValue);\n }\n "},Ja=function(t,e,n,r){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=[];var o=t[0],a=t[1],i=t[2],s=t[3];this.outputShape=[o,e,n,s];var u=[r&&e>1?a-1:a,r&&n>1?i-1:i],c=[r&&e>1?e-1:e,r&&n>1?n-1:n];this.userCode="\n const vec3 effectiveInputOverOutputRatioRC = vec3(\n "+u[0]/c[0]+",\n "+u[1]/c[1]+",\n "+u[1]/c[1]+");\n const vec3 inputShapeRC = vec3("+a+".0, "+i+".0,\n "+i+".0);\n\n float getAValue(int b, int r, int c, int d) {\n return getChannel(getA(b, r, c, d), vec2(c, d));\n }\n\n void main() {\n ivec4 coords = getOutputCoords();\n int b = coords[0];\n int d = coords[3];\n // Calculate values for next column in yRC.z.\n ivec3 yRC = coords.yzz + ivec3(0, 0, 1);\n\n // Fractional source index.\n vec3 sourceFracIndexRC = vec3(yRC) * effectiveInputOverOutputRatioRC;\n\n // Compute the four integer indices.\n ivec3 sourceFloorRC = ivec3(sourceFracIndexRC);\n ivec3 sourceCeilRC = ivec3(\n min(inputShapeRC - 1.0, ceil(sourceFracIndexRC)));\n\n // Should we calculate next column and row elements in 2x2 packed cell.\n bool hasNextCol = d < "+(s-1)+";\n bool hasNextRow = coords.z < "+(n-1)+";\n\n // In parallel, construct four corners for all four components in\n // packed 2x2 cell.\n vec4 topLeft = vec4(\n getAValue(b, sourceFloorRC.x, sourceFloorRC.y, d),\n hasNextCol ? getAValue(b, sourceFloorRC.x, sourceFloorRC.y, d + 1)\n : 0.0,\n hasNextRow ? getAValue(b, sourceFloorRC.x, sourceFloorRC.z, d)\n : 0.0,\n (hasNextRow && hasNextCol) ?\n getAValue(b, sourceFloorRC.x, sourceFloorRC.z, d + 1) : 0.0);\n\n vec4 bottomLeft = vec4(\n getAValue(b, sourceCeilRC.x, sourceFloorRC.y, d),\n hasNextCol ? getAValue(b, sourceCeilRC.x, sourceFloorRC.y, d + 1)\n : 0.0,\n hasNextRow ? getAValue(b, sourceCeilRC.x, sourceFloorRC.z, d)\n : 0.0,\n (hasNextRow && hasNextCol) ?\n getAValue(b, sourceCeilRC.x, sourceFloorRC.z, d + 1) : 0.0);\n\n vec4 topRight = vec4(\n getAValue(b, sourceFloorRC.x, sourceCeilRC.y, d),\n hasNextCol ? getAValue(b, sourceFloorRC.x, sourceCeilRC.y, d + 1)\n : 0.0,\n hasNextRow ? getAValue(b, sourceFloorRC.x, sourceCeilRC.z, d)\n : 0.0,\n (hasNextRow && hasNextCol) ?\n getAValue(b, sourceFloorRC.x, sourceCeilRC.z, d + 1) : 0.0);\n\n vec4 bottomRight = vec4(\n getAValue(b, sourceCeilRC.x, sourceCeilRC.y, d),\n hasNextCol ? getAValue(b, sourceCeilRC.x, sourceCeilRC.y, d + 1)\n : 0.0,\n hasNextRow ? getAValue(b, sourceCeilRC.x, sourceCeilRC.z, d)\n : 0.0,\n (hasNextRow && hasNextCol) ?\n getAValue(b, sourceCeilRC.x, sourceCeilRC.z, d + 1) : 0.0);\n\n vec3 fracRC = sourceFracIndexRC - vec3(sourceFloorRC);\n\n vec4 top = mix(topLeft, topRight, fracRC.yyzz);\n vec4 bottom = mix(bottomLeft, bottomRight, fracRC.yyzz);\n vec4 newValue = mix(top, bottom, fracRC.x);\n\n setOutput(newValue);\n }\n "},Qa=function(t,e,n){this.variableNames=["dy"],this.outputShape=[],this.outputShape=e.shape;var r=e.shape,o=r[1],a=r[2],i=t.shape,s=i[1],u=i[2],c=[n&&s>1?o-1:o,n&&u>1?a-1:a],l=[n&&s>1?s-1:s,n&&u>1?u-1:u],f=c[0]/l[0],h=c[1]/l[1],p=1/f,d=1/h,v=2*Math.ceil(p)+2,m=2*Math.ceil(d)+2;this.userCode="\n void main() {\n ivec4 coords = getOutputCoords();\n int b = coords[0];\n int d = coords[3];\n int r = coords[1];\n int c = coords[2];\n\n float accumulator = 0.0;\n\n const float heightScale = float("+f+");\n const float widthScale = float("+h+");\n\n const float invHeightScale = float("+p+");\n const float invWidthScale = float("+d+");\n\n const int winHeight = int("+v+");\n const int winWidth = int("+m+");\n\n // Compute bounds for where in dy we will look\n float startRLerp = floor(float(r) * invHeightScale);\n int startDyR = int(floor(startRLerp - float(winHeight / 2)));\n\n float startCLerp = floor(float(c) * invWidthScale);\n int startDyC = int(floor(startCLerp - float(winWidth / 2)));\n\n // Loop over dy\n for (int dyROffset = 0; dyROffset < winHeight; dyROffset++) {\n int dyR = dyROffset + startDyR;\n\n // Guard against the window exceeding the bounds of dy\n if (dyR < 0 || dyR >= "+s+") {\n continue;\n }\n\n for (int dyCOffset = 0; dyCOffset < winWidth; dyCOffset++) {\n int dyC = dyCOffset + startDyC;\n\n // Guard against the window exceeding the bounds of dy\n if (dyC < 0 || dyC >= "+u+") {\n continue;\n }\n\n float sourceFracRow =\n float("+c[0]+") *\n (float(dyR) / float("+l[0]+"));\n\n float sourceFracCol =\n float("+c[1]+") *\n (float(dyC) / float("+l[1]+"));\n\n int sourceNearestRow = int(min(\n float(int("+o+") - 1),\n "+n+" ? float(round(sourceFracRow)) :\n float(floor(sourceFracRow))));\n\n int sourceNearestCol = int(min(\n float(int("+a+") - 1),\n "+n+" ? float(round(sourceFracCol)) :\n float(floor(sourceFracCol))));\n\n if (r == sourceNearestRow && c == sourceNearestCol) {\n accumulator += getDy(b, dyR, dyC, d);\n }\n }\n }\n // End loop over dy\n\n setOutput(accumulator);\n }\n "},Za=function(t,e,n,r){this.variableNames=["A"],this.outputShape=[];var o=t[0],a=t[1],i=t[2],s=t[3];this.outputShape=[o,e,n,s];var u=[r&&e>1?a-1:a,r&&n>1?i-1:i],c=[r&&e>1?e-1:e,r&&n>1?n-1:n],l=r?"0.5":"0.0";this.userCode="\n const vec2 effectiveInputOverOutputRatioRC = vec2(\n "+u[0]/c[0]+",\n "+u[1]/c[1]+");\n const vec2 inputShapeRC = vec2("+a+".0, "+i+".0);\n\n void main() {\n ivec4 coords = getOutputCoords();\n int b = coords[0];\n int d = coords[3];\n ivec2 yRC = coords.yz;\n\n // Fractional source index.\n vec2 sourceFracIndexRC = vec2(yRC) * effectiveInputOverOutputRatioRC;\n\n // Compute the coordinators of nearest neighbor point.\n ivec2 sourceNearestRC = ivec2(\n min(inputShapeRC - 1.0, floor(sourceFracIndexRC + "+l+")));\n\n float newValue = getA(b, sourceNearestRC.x, sourceNearestRC.y, d);\n\n setOutput(newValue);\n }\n "},ti=function(t,e){this.variableNames=["x"];var n=t.length;if(n>4)throw new Error("WebGL backend: Reverse of rank-"+n+" tensor is not yet supported");if(this.outputShape=t,1!==n){var r=t.map((function(n,r){return function(n){return-1!==e.indexOf(n)&&1!==t[n]?t[n]+" - coords["+n+"] - 1":"coords["+n+"]"}(r)})).join(","),o=xo(n);this.userCode="\n void main() {\n "+o+" coords = getOutputCoords();\n setOutput(getX("+r+"));\n }\n "}else this.userCode="\n void main() {\n int coord = getOutputCoords();\n setOutput(getX("+t[0]+" - coord - 1));\n }\n "},ei=function(t,e){this.variableNames=["x"],this.packedInputs=!0,this.packedOutput=!0;var n=t.length;if(n>4)throw new Error("WebGL backend: Reverse of rank-"+n+" tensor is not yet supported");this.outputShape=t;var r=so("rc",n),o=r[n-1]+" + 1 < "+this.outputShape[n-1],a=r[n-2]+" + 1 < "+this.outputShape[n-2],i=xo(n);function s(n){var r=t.map((function(r,o){return function(n,r){return-1!==e.indexOf(n)&&1!==t[n]?t[n]+" - "+r[n]+" - 1":""+r[n]}(o,n)}));return"getChannel(getX("+r.join(",")+"), vec2("+r.slice(-2).join(",")+"))"}this.userCode=1===n?"\n void main(){\n int rc = getOutputCoords();\n vec4 result = vec4(0.);\n result.r = getChannel(getX("+t[0]+" - rc - 1),\n "+t[0]+" - rc - 1);\n if("+o+"){\n result.g = getChannel(getX("+t[0]+" - (rc + 1) - 1),\n "+t[0]+" - (rc + 1) - 1);\n }\n setOutput(result);\n }\n ":"\n void main() {\n "+i+" rc = getOutputCoords();\n vec4 result = vec4(0.);\n result.r = "+function(t){return s(t)}(r.slice())+";\n if("+o+"){\n result.g = "+function(t){return t[n-1]="("+t[n-1]+" + 1)",s(t)}(r.slice())+";\n }\n if("+a+") {\n result.b = "+function(t){return t[n-2]="("+t[n-2]+" + 1)",s(t)}(r.slice())+";\n if("+o+") {\n result.a = "+function(t){return t[n-1]="("+t[n-1]+" + 1)",t[n-2]="("+t[n-2]+" + 1)",s(t)}(r.slice())+";\n }\n }\n setOutput(result);\n }\n "},ni=function(t,e,n,r,o,a,i){void 0===i&&(i=!0),this.variableNames=["updates","indices","defaultValue"],this.outputShape=a;var s=xo(o.length),u=xo(a.length),c="";1===n?c="i":2===n&&(c="i, j");var l="getIndices("+c+")",f="";1===r?f="i":2===r&&(f="i, coords[1]");var h="getUpdates("+f+")",p=e>1?"strides[j]":"strides";this.userCode="\n "+s+" strides = "+s+"("+o+");\n\n void main() {\n "+u+" coords = getOutputCoords();\n float sum = 0.0;\n bool found = false;\n for (int i = 0; i < "+t+"; i++) {\n int flattenedIndex = 0;\n for (int j = 0; j < "+e+"; j++) {\n int index = round("+l+");\n flattenedIndex += index * "+p+";\n }\n if (flattenedIndex == coords[0]) {\n sum += "+h+";\n found = true;\n }\n }\n setOutput(mix(getDefaultValue(), sum, float(found)));\n }\n "},ri=function(t,e){this.variableNames=["x","segmentIds"];var n=t.windowSize,r=t.batchSize,o=t.inSize,a=t.numSegments,i=a*Math.ceil(o/n);this.outputShape=[r,i];var s=4*Math.floor(n/4),u=n%4,c="\n sumValue += dot(values, segFilter);\n ",l="";o%n>0&&(l="\n if (inIdx < 0 || inIdx >= "+o+") {\n return initializationValue;\n }\n ");var f="";o%n>0&&(f="\n if (inIdx < 0 || inIdx >= "+o+") {\n return -1.0;\n }\n "),this.userCode="\n const float initializationValue = 0.0;\n\n float getValue(int batch, int inIdx) {\n "+l+"\n return getX(batch, inIdx);\n }\n\n float getSegmentIdAtIndex(int inIdx) {\n "+f+"\n return getSegmentIds(inIdx);\n }\n\n void main() {\n ivec2 coords = getOutputCoords();\n int batch = coords[0];\n int outIdx = coords[1];\n int inOffset = int(floor(float(outIdx) / float(\n "+a+")) * float("+n+"));\n int currentSeg = int(mod(float(outIdx), float("+a+")));\n\n float sumValue = 0.0;\n\n for (int i = 0; i < "+s+"; i += 4) {\n int inIdx = inOffset + i;\n vec4 values = vec4(\n getValue(batch, inIdx),\n getValue(batch, inIdx + 1),\n getValue(batch, inIdx + 2),\n getValue(batch, inIdx + 3)\n );\n\n vec4 segFilter = vec4(\n int(getSegmentIdAtIndex(inIdx)) == currentSeg ? 1 : 0,\n int(getSegmentIdAtIndex(inIdx + 1)) == currentSeg ? 1 : 0,\n int(getSegmentIdAtIndex(inIdx + 2)) == currentSeg ? 1 : 0,\n int(getSegmentIdAtIndex(inIdx + 3)) == currentSeg ? 1 : 0\n );\n\n "+c+"\n }\n\n int inIdx = inOffset + "+s+";\n if ("+(1===u)+") {\n vec4 values = vec4(\n getValue(batch, inIdx),\n initializationValue,\n initializationValue,\n initializationValue\n );\n\n int inIdxSeg = int(getSegmentIdAtIndex(inIdx));\n\n vec4 segFilter = vec4(\n int(getSegmentIdAtIndex(inIdx)) == currentSeg ? 1 : 0,\n 0,\n 0,\n 0\n );\n\n "+c+"\n } else if ("+(2===u)+") {\n vec4 values = vec4(\n getValue(batch, inIdx),\n getValue(batch, inIdx + 1),\n initializationValue,\n initializationValue\n );\n\n vec4 segFilter = vec4(\n int(getSegmentIdAtIndex(inIdx)) == currentSeg ? 1 : 0,\n int(getSegmentIdAtIndex(inIdx + 1)) == currentSeg ? 1 : 0,\n 0,\n 0\n );\n\n "+c+"\n } else if ("+(3===u)+") {\n vec4 values = vec4(\n getValue(batch, inIdx),\n getValue(batch, inIdx + 1),\n getValue(batch, inIdx + 2),\n initializationValue\n );\n\n vec4 segFilter = vec4(\n int(getSegmentIdAtIndex(inIdx)) == currentSeg ? 1 : 0,\n int(getSegmentIdAtIndex(inIdx + 1)) == currentSeg ? 1 : 0,\n int(getSegmentIdAtIndex(inIdx + 2)) == currentSeg ? 1 : 0,\n 0\n );\n\n "+c+"\n }\n setOutput(sumValue);\n }\n "},oi=function(t,e,n){var r,o;if(this.variableNames=["c","a","b"],this.outputShape=e,n>4)throw Error("Where for rank "+n+" is not yet supported");if(1===n)o="resRC",r="resRC";else{for(var a=["resRC.x","resRC.y","resRC.z","resRC.w"],i=[],s=[],u=0;u<e.length;u++)s.push(""+a[u]),u<t&&i.push(""+a[u]);r=i.join(),o=s.join()}var c=xo(n);this.userCode="\n void main() {\n "+c+" resRC = getOutputCoords();\n float cVal = getC("+r+");\n if (cVal >= 1.0) {\n setOutput(getA("+o+"));\n } else {\n setOutput(getB("+o+"));\n }\n }\n "},ai=function(){function t(t){this.variableNames=["source"],this.outputShape=t,this.rank=t.length;var e,n=xo(this.rank),r="uniform int start["+this.rank+"];",o=function(t){if(1===t)return"sourceLoc";if(t<=6)return ii.slice(0,t).map((function(t){return"sourceLoc."+t})).join(",");throw Error("Slicing for rank "+t+" is not yet supported")}(this.rank);e="\n "+n+" sourceLoc;\n "+n+" coords = getOutputCoords();\n "+t.map((function(t,e){return"sourceLoc."+ii[e]+" = start["+e+"] + coords."+ii[e]+";"})).join("\n")+"\n ",this.userCode="\n "+r+"\n void main() {\n "+e+"\n setOutput(getSource("+o+"));\n }\n "}return t.prototype.getCustomSetupFunc=function(t){var e=this;if(t.length!==this.rank)throw Error("The rank ("+this.rank+") of the program must match the length of start ("+t.length+")");return function(n,r){null==e.startLoc&&(e.startLoc=n.getUniformLocationNoThrow(r,"start"),null==e.startLoc)||n.gl.uniform1iv(e.startLoc,t)}},t}(),ii=["x","y","z","w","u","v"],si=function(){function t(t){this.variableNames=["source"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=t,this.rank=t.length;var e=xo(this.rank),n=so("coords",this.rank),r=so("sourceLoc",this.rank),o=1===this.rank?"sourceLoc":"vec2("+r.slice(-2).join()+")",a="getChannel(getSource("+r.join()+"), "+o+")",i="\n result.x = "+a+";\n if (++"+n[this.rank-1]+" < "+t[this.rank-1]+") {\n ++"+r[this.rank-1]+";\n result.y = "+a+";\n --"+r[this.rank-1]+";\n }\n ",s=1===this.rank?"":"\n --"+n[this.rank-1]+";\n if (++"+n[this.rank-2]+" < "+t[this.rank-2]+") {\n ++"+r[this.rank-2]+";\n result.z = "+a+";\n if (++"+n[this.rank-1]+" < "+t[this.rank-1]+") {\n ++"+r[this.rank-1]+";\n result.w = "+a+";\n }\n }\n ",u=this.rank<=4?"sourceLoc = coords +\n "+e+"("+t.map((function(t,e){return"start["+e+"]"})).join()+");":t.map((function(t,e){return r[e]+" = "+n[e]+" + start["+e+"];"})).join("\n");this.userCode="\n uniform int start["+this.rank+"];\n void main() {\n "+e+" coords = getOutputCoords();\n "+e+" sourceLoc;\n "+u+"\n vec4 result = vec4(0.);\n "+i+"\n "+s+"\n setOutput(result);\n }\n "}return t.prototype.getCustomSetupFunc=function(t){var e=this;if(t.length!==this.rank)throw Error("The rank ("+this.rank+") of the program must match the length of start ("+t.length+")");return function(n,r){null==e.startLoc&&(e.startLoc=n.getUniformLocationNoThrow(r,"start"),null==e.startLoc)||n.gl.uniform1iv(e.startLoc,t)}},t}(),ui=function(t,e,n){this.variableNames=["x"],this.outputShape=n;var r=n.length,o=xo(n.length),a=xo(n.length),i="";if(1===r)i="coords * strides + begin";else{var s=0;i=n.map((function(t,e){return s++,1===n.length?"coords * strides["+e+"] + begin["+e+"]":"coords["+(s-1)+"] * strides["+e+"] + begin["+e+"]"})).join(",")}this.userCode="\n "+o+" begin = "+o+"("+t+");\n "+o+" strides = "+o+"("+e+");\n\n void main() {\n "+a+" coords = getOutputCoords();\n setOutput(getX("+i+"));\n }\n "},ci=function(){function t(t){this.gpgpu=t,this.numUsedTextures=0,this.numFreeTextures=0,this.freeTextures={},this.logEnabled=!1,this.usedTextures={}}return t.prototype.acquireTexture=function(t,e,n){var r,o=li(e,n),a=fi(t,o,n);if(a in this.freeTextures||(this.freeTextures[a]=[]),a in this.usedTextures||(this.usedTextures[a]=[]),this.freeTextures[a].length>0){this.numFreeTextures--,this.numUsedTextures++,this.log();var i=this.freeTextures[a].shift();return this.usedTextures[a].push(i),i}return this.numUsedTextures++,this.log(),o===Mt.PACKED_2X2_FLOAT32?r=this.gpgpu.createPackedMatrixTexture(t[0],t[1]):o===Mt.PACKED_2X2_FLOAT16?r=this.gpgpu.createFloat16PackedMatrixTexture(t[0],t[1]):o===Mt.UNPACKED_FLOAT32?r=this.gpgpu.createFloat32MatrixTexture(t[0],t[1]):o===Mt.UNPACKED_FLOAT16?r=this.gpgpu.createFloat16MatrixTexture(t[0],t[1]):o===Mt.PACKED_4X1_UNSIGNED_BYTE&&(r=this.gpgpu.createUnsignedBytesMatrixTexture(t[0],t[1])),this.usedTextures[a].push(r),r},t.prototype.releaseTexture=function(t,e,n,r){if(null!=this.freeTextures){var o=fi(e,li(n,r),r);o in this.freeTextures||(this.freeTextures[o]=[]),this.freeTextures[o].push(t),this.numFreeTextures++,this.numUsedTextures--;var a=this.usedTextures[o],i=a.indexOf(t);if(i<0)throw new Error("Cannot release a texture that was never provided by this texture manager");a.splice(i,1),this.log()}},t.prototype.log=function(){if(this.logEnabled)this.numFreeTextures,this.numUsedTextures},t.prototype.getNumUsedTextures=function(){return this.numUsedTextures},t.prototype.getNumFreeTextures=function(){return this.numFreeTextures},t.prototype.dispose=function(){var t=this;if(null!=this.freeTextures){for(var e in this.freeTextures)this.freeTextures[e].forEach((function(e){t.gpgpu.deleteMatrixTexture(e)}));for(var e in this.usedTextures)this.usedTextures[e].forEach((function(e){t.gpgpu.deleteMatrixTexture(e)}));this.freeTextures=null,this.usedTextures=null,this.numUsedTextures=0,this.numFreeTextures=0}},t}();function li(t,e){if(t===Ft.UPLOAD)return Mt.PACKED_2X2_FLOAT32;if(t===Ft.RENDER||null==t)return function(t){return f().getBool("WEBGL_RENDER_FLOAT32_ENABLED")?t?Mt.PACKED_2X2_FLOAT32:Mt.UNPACKED_FLOAT32:t?Mt.PACKED_2X2_FLOAT16:Mt.UNPACKED_FLOAT16}(e);if(t===Ft.DOWNLOAD||t===Ft.PIXELS)return Mt.PACKED_4X1_UNSIGNED_BYTE;throw new Error("Unknown logical texture type "+t)}function fi(t,e,n){return t[0]+"_"+t[1]+"_"+e+"_"+n}var hi=function(t,e){this.variableNames=["A"];for(var n=new Array(t.length),r=0;r<n.length;r++)n[r]=t[r]*e[r];this.outputShape=n,this.rank=n.length;var o=xo(this.rank),a=function(t){var e=t.length;if(e>5)throw Error("Tile for rank "+e+" is not yet supported");if(1===e)return"imod(resRC, "+t[0]+")";for(var n=["resRC.x","resRC.y","resRC.z","resRC.w","resRC.u"],r=[],o=0;o<t.length;o++)r.push("imod("+n[o]+", "+t[o]+")");return r.join()}(t);this.userCode="\n void main() {\n "+o+" resRC = getOutputCoords();\n setOutput(getA("+a+"));\n }\n "},pi=function(t,e){this.variableNames=["A"];for(var n=new Array(t.length),r=0;r<n.length;r++)n[r]=t[e[r]];this.outputShape=n,this.rank=n.length;var o=xo(this.rank),a=function(t){var e=t.length;if(e>6)throw Error("Transpose for rank "+e+" is not yet supported");for(var n=["resRC.x","resRC.y","resRC.z","resRC.w","resRC.u","resRC.v"],r=new Array(e),o=0;o<t.length;o++)r[t[o]]=n[o];return r.join()}(e);this.userCode="\n void main() {\n "+o+" resRC = getOutputCoords();\n setOutput(getA("+a+"));\n }\n "},di=function(t,e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0;for(var n=new Array(t.length),r=0;r<n.length;r++)n[r]=t[e[r]];if(this.outputShape=n,this.rank=n.length,this.rank>6)throw Error("Packed transpose for rank "+this.rank+" is not yet supported.");var o=xo(this.rank),a=io("rc",this.rank),i=new Array(this.rank);for(r=0;r<e.length;r++)i[e[r]]=a[r];var s="vec2("+i.slice(-2).join()+")",u="++"+a[this.rank-1]+" < "+n[this.rank-1],c="getChannel(getA("+i.join()+"), "+s+")";this.userCode="\n void main() {\n "+o+" rc = getOutputCoords();\n vec4 result = vec4(0.);\n result[0] = "+c+";\n if("+u+") {\n result[1] = "+c+";\n }\n --"+a[this.rank-1]+";\n if(++"+a[this.rank-2]+" < "+n[this.rank-2]+") {\n result[2] = "+c+";\n if("+u+") {\n result[3] = "+c+";\n }\n }\n setOutput(result);\n }\n "},vi=1.7580993408473768,mi=1.0507009873554805,gi=function(t,e){this.variableNames=["A"],this.outputShape=t,this.userCode="\n float unaryOperation(float x) {\n "+e+"\n }\n\n void main() {\n float x = getAAtOutCoords();\n float y = unaryOperation(x);\n\n setOutput(y);\n }\n "},yi="if (isnan(x)) return x;",bi="return abs(x);",xi=yi+"\n return (x < 0.0) ? 0.0 : x;\n",wi=yi+"\n return (x < 0.0) ? 0.0 : min(6.0, x);\n",Ei="return (x >= 0.0) ? x : (exp(x) - 1.0);",Ci="return -x;",_i="return ceil(x);",ki="return floor(x);",Ri="return exp(x);",Ii="return exp(x) - 1.0;",Si="return x;",Ai="\n vec4 result = x * vec4(greaterThanEqual(x, vec4(0.0)));\n bvec4 isNaN = isnan(x);\n\n result.r = isNaN.r ? x.r : result.r;\n result.g = isNaN.g ? x.g : result.g;\n result.b = isNaN.b ? x.b : result.b;\n result.a = isNaN.a ? x.a : result.a;\n\n return result;\n",Oi="\n vec4 result = min(x, vec4(6.)) * vec4(greaterThanEqual(x, vec4(0.0)));\n bvec4 isNaN = isnan(x);\n\n result.r = isNaN.r ? x.r : result.r;\n result.g = isNaN.g ? x.g : result.g;\n result.b = isNaN.b ? x.b : result.b;\n result.a = isNaN.a ? x.a : result.a;\n\n return result;\n",Ti="\n vec4 result;\n\n result.r = (x.r >= 0.0) ? x.r : (exp(x.r) - 1.0);\n result.g = (x.g >= 0.0) ? x.g : (exp(x.g) - 1.0);\n result.b = (x.b >= 0.0) ? x.b : (exp(x.b) - 1.0);\n result.a = (x.a >= 0.0) ? x.a : (exp(x.a) - 1.0);\n\n return result;\n",Di=function(t,e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=t,this.userCode="\n vec4 unaryOperation(vec4 x) {\n "+e+"\n }\n\n void main() {\n vec4 x = getAAtOutCoords();\n vec4 y = unaryOperation(x);\n\n setOutput(y);\n }\n "},Ni=function(t){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!1,this.outputShape=t;var e=t.length,n=so("rc",e),r=xo(e),o=function(t,e){if(1===t)return"rc";for(var n="",r=0;r<t;r++)n+=e[r],r<t-1&&(n+=",");return n}(e,n),a=n.slice(-2),i=e<=1?"rc":"vec2("+a.join(",")+")";this.userCode="\n void main() {\n "+r+" rc = getOutputCoords();\n vec4 packedInput = getA("+o+");\n\n setOutput(getChannel(packedInput, "+i+"));\n }\n "},Fi={};function Mi(t,e){if(void 0===e&&(e=!1),"linear"===t)return"return x;";if("relu"===t)return e?Ai:xi;if("elu"===t)return e?Ti:Ei;if("relu6"===t)return e?Oi:wi;if("prelu"===t)return e?Fo:Do;throw new Error("Activation "+t+" has not been implemented for the WebGL backend.")}var Pi=function(t){function e(e){var n,r=t.call(this)||this;if(r.pendingRead=new WeakMap,r.pendingDisposal=new WeakSet,r.dataRefCount=new WeakMap,r.numBytesInGPU=0,r.uploadWaitMs=0,r.downloadWaitMs=0,r.warnedAboutMemory=!1,r.pendingDeletes=0,r.disposed=!1,!f().getBool("HAS_WEBGL"))throw new Error("WebGL is not supported on this device");if(null==e){var o=Wt(f().getNumber("WEBGL_VERSION"));r.binaryCache=((n=f().getNumber("WEBGL_VERSION"))in Fi||(Fi[n]={}),Fi[n]),r.gpgpu=new Ta(o),r.canvas=o.canvas,r.gpgpuCreatedLocally=!0}else r.gpgpu=e,r.binaryCache={},r.gpgpuCreatedLocally=!1,r.canvas=e.gl.canvas;return r.textureManager=new ci(r.gpgpu),r.numMBBeforeWarning=null==f().global.screen?1024:f().global.screen.height*f().global.screen.width*window.devicePixelRatio*600/1024/1024,r.texData=new Rr(r,Ot),r}return s(e,t),e.prototype.numDataIds=function(){return this.texData.numDataIds()+(this.cpuBackend?this.cpuBackend.numDataIds():0)-this.pendingDeletes},e.prototype.write=function(t,e,n){if(f().getBool("DEBUG")&&this.checkNumericalProblems(t),"complex64"===n&&null!=t)throw new Error("Cannot write to a complex64 dtype. Please use tf.complex(real, imag).");var r={};return this.texData.set(r,{shape:e,dtype:n,values:t,usage:Ft.UPLOAD}),r},e.prototype.move=function(t,e,n,r){if(f().getBool("DEBUG")&&this.checkNumericalProblems(e),"complex64"===r)throw new Error("Cannot write to a complex64 dtype. Please use tf.complex(real, imag).");this.texData.set(t,{shape:n,dtype:r,values:e,usage:Ft.UPLOAD})},e.prototype.readSync=function(t){var e=this.texData.get(t),n=e.values,r=e.dtype,o=e.complexTensors,a=e.slice,i=e.shape,s=e.isPacked;if(null!=a){var u;u=s?new Di(i,Si):new gi(i,Si);var c=this.runWebGLProgram(u,[{dataId:t,shape:i,dtype:r}],r),l=this.readSync(c.dataId);return this.disposeData(c.dataId),l}if(null!=n)return this.convertAndCacheOnCPU(t);if("string"===r)return n;var f,h,p=null!=this.activeTimers;return p&&(f=et()),h="complex64"===r?Kr(o.real.dataSync(),o.imag.dataSync()):this.getValuesFromTexture(t),p&&(this.downloadWaitMs+=et()-f),this.convertAndCacheOnCPU(t,h)},e.prototype.read=function(t){return u(this,void 0,void 0,(function(){var e,n,r,o,a,i,s,u,l,h,p,d,v,m,g,y,b,x,w,E,C,_;return c(this,(function(c){switch(c.label){case 0:if(this.pendingRead.has(t))return e=this.pendingRead.get(t),[2,new Promise((function(t){return e.push(t)}))];if(n=this.texData.get(t),r=n.values,o=n.shape,a=n.slice,i=n.dtype,s=n.complexTensors,u=n.isPacked,null!=a)return void 0,l=u?new Di(o,Si):new gi(o,Si),h=this.runWebGLProgram(l,[{dataId:t,shape:o,dtype:i}],i),p=this.read(h.dataId),this.disposeData(h.dataId),[2,p];if(null!=r)return[2,this.convertAndCacheOnCPU(t)];if(!f().getBool("WEBGL_DOWNLOAD_FLOAT_ENABLED")&&2===f().getNumber("WEBGL_VERSION"))throw new Error("tensor.data() with WEBGL_DOWNLOAD_FLOAT_ENABLED=false and WEBGL_VERSION=2 not yet supported.");return d=null,"complex64"!==i&&f().get("WEBGL_BUFFER_SUPPORTED")&&(v=this.decode(t),m=this.texData.get(v.dataId),d=(_=this.gpgpu).createBufferFromTexture.apply(_,[m.texture].concat(jt(o)))),this.pendingRead.set(t,[]),"complex64"===i?[3,2]:[4,this.gpgpu.createAndWaitForFence()];case 1:c.sent(),c.label=2;case 2:return"complex64"!==i?[3,4]:[4,Promise.all([s.real.data(),s.imag.data()])];case 3:return y=c.sent(),b=y[0],x=y[1],g=Kr(b,x),[3,5];case 4:null==d?g=this.getValuesFromTexture(t):(w=R(o),g=this.gpgpu.downloadFloat32MatrixFromBuffer(d,w)),c.label=5;case 5:return null!=v&&this.disposeData(v.dataId),E=this.convertAndCacheOnCPU(t,g),C=this.pendingRead.get(t),this.pendingRead.delete(t),C.forEach((function(t){return t(E)})),this.pendingDisposal.has(t)&&(this.pendingDisposal.delete(t),this.disposeData(t),this.pendingDeletes--),[2,E]}}))}))},e.prototype.checkNumericalProblems=function(t){if(null!=t)for(var e=0;e<t.length;e++){var n=t[e];if(!Ht(n)){if(f().getBool("WEBGL_RENDER_FLOAT32_CAPABLE"))throw Error("The value "+n+" cannot be represented with your current settings. Consider enabling float32 rendering: 'tf.env().set('WEBGL_RENDER_FLOAT32_ENABLED', true);'");throw Error("The value "+n+" cannot be represented on this device.")}}},e.prototype.getValuesFromTexture=function(t){var e,n=this.texData.get(t),r=n.shape,o=n.dtype,a=n.isPacked,i=R(r);if(f().getBool("WEBGL_DOWNLOAD_FLOAT_ENABLED")){var s=this.decode(t),u=this.texData.get(s.dataId),c=(e=this.gpgpu).downloadMatrixFromPackedTexture.apply(e,[u.texture].concat(jt(r))).subarray(0,i);return this.disposeData(s.dataId),c}var l=f().getBool("WEBGL_PACK")&&!0===a,h=l?xe(r):r,p=l?new ia(h):new aa(h),d=this.runWebGLProgram(p,[{shape:h,dtype:o,dataId:t}],"float32"),v=this.texData.get(d.dataId),m=this.gpgpu.downloadByteEncodedFloatMatrixFromOutputTexture(v.texture,v.texShape[0],v.texShape[1]).subarray(0,i);return this.disposeData(d.dataId),m},e.prototype.time=function(t){return u(this,void 0,void 0,(function(){var e,n,r,o,a,i,s;return c(this,(function(u){switch(u.label){case 0:return e=this.activeTimers,n=[],r=!1,null==this.programTimersStack?(this.programTimersStack=n,r=!0):this.activeTimers.push(n),this.activeTimers=n,t(),o=k(this.activeTimers.map((function(t){return t.query}))).filter((function(t){return null!=t})),a=k(this.activeTimers.map((function(t){return t.name}))).filter((function(t){return null!=t})),this.activeTimers=e,r&&(this.programTimersStack=null),[4,Promise.all(o)];case 1:return i=u.sent(),s={uploadWaitMs:this.uploadWaitMs,downloadWaitMs:this.downloadWaitMs,kernelMs:w(i),getExtraProfileInfo:function(){return i.map((function(t,e){return{name:a[e],ms:t}})).map((function(t){return t.name+": "+t.ms})).join(", ")},wallMs:null},this.uploadWaitMs=0,this.downloadWaitMs=0,[2,s]}}))}))},e.prototype.memory=function(){return{unreliable:!1,numBytesInGPU:this.numBytesInGPU}},e.prototype.startTimer=function(){return f().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")>0?this.gpgpu.beginQuery():{startMs:et(),endMs:null}},e.prototype.endTimer=function(t){return f().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")>0?(this.gpgpu.endQuery(),t):(t.endMs=et(),t)},e.prototype.getQueryTime=function(t){return u(this,void 0,void 0,(function(){var e;return c(this,(function(n){return f().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")>0?[2,this.gpgpu.waitForQueryAndGetTime(t)]:[2,(e=t).endMs-e.startMs]}))}))},e.prototype.disposeData=function(t){if(!this.pendingDisposal.has(t)){if(this.pendingRead.has(t))return this.pendingDisposal.add(t),void this.pendingDeletes++;if(this.texData.has(t)){this.releaseGPUData(t);var e=this.texData.get(t).complexTensors;null!=e&&(e.real.dispose(),e.imag.dispose()),this.texData.delete(t)}}},e.prototype.releaseGPUData=function(t){var e=this.texData.get(t),n=e.texture,r=e.dtype,o=e.texShape,a=e.usage,i=e.isPacked,s=e.slice,u=s&&s.origDataId||t,c=this.dataRefCount.get(u);c>1?this.dataRefCount.set(u,c-1):(this.dataRefCount.delete(u),null!=n&&(this.numBytesInGPU-=this.computeBytes(o,r),this.textureManager.releaseTexture(n,o,a,i)));var l=this.texData.get(t);l.texture=null,l.texShape=null,l.isPacked=!1,l.slice=null},e.prototype.getTexture=function(t){return this.uploadToGPU(t),this.texData.get(t).texture},e.prototype.getDataInfo=function(t){return this.texData.get(t)},e.prototype.getCPUBackend=function(){return f().getBool("WEBGL_CPU_FORWARD")?(null==this.cpuBackend&&(this.cpuBackend=Ot.findBackend("cpu")),this.cpuBackend):null},e.prototype.shouldExecuteOnCPU=function(t,e){var n=this;return void 0===e&&(e=128),null!=this.getCPUBackend()&&t.every((function(t){return null==n.texData.get(t.dataId).texture&&t.size<e}))},e.prototype.getGPGPUContext=function(){return this.gpgpu},e.prototype.complex=function(t,e){var n=this.makeOutput(t.shape,"complex64");return this.texData.get(n.dataId).complexTensors={real:Ot.keep(t.clone()),imag:Ot.keep(e.clone())},n},e.prototype.real=function(t){return this.texData.get(t.dataId).complexTensors.real.clone()},e.prototype.imag=function(t){return this.texData.get(t.dataId).complexTensors.imag.clone()},e.prototype.slice=function(t,e,n){if(this.shouldExecuteOnCPU([t]))return this.cpuBackend.slice(t,e,n);if(0===R(n))return rn([],n,t.dtype);var r=this.texData.get(t.dataId).isPacked,o=wr(t.shape,e,n);if(r||!o){var a=f().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new si(n):new ai(n),i=a.getCustomSetupFunc(e);return this.compileAndRun(a,[t],null,i)}return this.uploadToGPU(t.dataId),this.shallowSlice(t,e,n)},e.prototype.shallowSlice=function(t,e,n){var r=this.texData.get(t.dataId),o=this.makeOutput(n,t.dtype),a=this.texData.get(o.dataId);Object.assign(a,r),a.shape=n,a.dtype=t.dtype;var i=Er(e,t.strides);r.slice&&(i+=r.slice.flatOffset),a.slice={flatOffset:i,origDataId:r.slice&&r.slice.origDataId||t.dataId};var s=this.dataRefCount.get(a.slice.origDataId)||1;return this.dataRefCount.set(a.slice.origDataId,s+1),o},e.prototype.stridedSlice=function(t,e,n,r){if(this.shouldExecuteOnCPU([t]))return this.cpuBackend.stridedSlice(t,e,n,r);var o=yr(e,n,r);if(o.some((function(t){return 0===t})))return rn([],o);var a=new ui(e,r,o);return this.compileAndRun(a,[t])},e.prototype.reverse=function(t,e){var n=f().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new ei(t.shape,e):new ti(t.shape,e);return this.compileAndRun(n,[t])},e.prototype.concat=function(t,e){if("complex64"===t[0].dtype){var n=t.map((function(t){return en(t)})),r=t.map((function(t){return nn(t)}));return tn(this.concat(n,e),this.concat(r,e))}if(this.shouldExecuteOnCPU(t))return this.cpuBackend.concat(t,e);if(1===t.length)return t[0];if(t.length>f().getNumber("WEBGL_MAX_TEXTURES_IN_SHADER")){var o=Math.floor(t.length/2),a=this.concat(t.slice(0,o),e),i=this.concat(t.slice(o),e);return this.concat([a,i],e)}if(f().getBool("WEBGL_PACK_ARRAY_OPERATIONS")&&t[0].rank>1){var s=new Uo(t.map((function(t){return t.shape})),e);return this.compileAndRun(s,t)}var u=Qe(t.map((function(t){return t.shape})),e),c=t.map((function(t){return t.as2D(-1,R(t.shape.slice(e)))})),l=new Wo(c.map((function(t){return t.shape})));return this.compileAndRun(l,c).reshape(u)},e.prototype.neg=function(t){if(this.shouldExecuteOnCPU([t]))return this.cpuBackend.neg(t);if(f().getBool("WEBGL_PACK_UNARY_OPERATIONS"))return this.packedUnaryOp(t,Ci,t.dtype);var e=new gi(t.shape,Ci);return this.compileAndRun(e,[t])},e.prototype.batchMatMul=function(t,e,n,r){var o=n?t.shape[2]:t.shape[1],a=r?e.shape[1]:e.shape[2],i=n?t.shape[1]:t.shape[2],s=t.shape[0];if((1===o||1===a)&&i>1e3){n&&(t=t.transpose([0,2,1])),r&&(e=e.transpose([0,2,1]));var u=1===a?t:t.as3D(s,i,1),c=1===a?2:1,l=1===a?e.as3D(s,1,i):e;return this.multiply(u,l).sum(c,!0)}var f=Et(t.dtype,e.dtype),h=new Wa(t.shape,[s,o,a],n,r);return this.compileAndRun(h,[t,e],f)},e.prototype.fusedBatchMatMul=function(t){var e=t.a,n=t.b,r=t.transposeA,o=t.transposeB,a=t.bias,i=t.activation,s=t.preluActivationWeights,u=r?e.shape[2]:e.shape[1],c=o?n.shape[1]:n.shape[2],l=e.shape[0],f=Et(e.dtype,n.dtype),h=null!=a,p=null!=s,d=i?Mi(i,!0):null,v=new Wa(e.shape,[l,u,c],r,o,h,d,p),m=[e,n];return a&&m.push(a),s&&m.push(s),this.compileAndRun(v,m,f)},e.prototype.multiply=function(t,e){if("complex64"===t.dtype){var n=this.texData.get(t.dataId),r=this.texData.get(e.dataId),o=new So("return areal * breal - aimag * bimag;",t.shape,e.shape),a=new So("return areal * bimag + aimag * breal;",t.shape,e.shape),i=[this.makeComplexComponentTensorInfo(t,n.complexTensors.real),this.makeComplexComponentTensorInfo(t,n.complexTensors.imag),this.makeComplexComponentTensorInfo(e,r.complexTensors.real),this.makeComplexComponentTensorInfo(e,r.complexTensors.imag)],s=this.compileAndRun(o,i),u=this.compileAndRun(a,i),c=this.complex(s,u);return s.dispose(),u.dispose(),c}if(this.shouldExecuteOnCPU([t,e]))return this.cpuBackend.multiply(t,e);if(f().getBool("WEBGL_PACK_BINARY_OPERATIONS"))return this.packedBinaryOp(t,e,To,t.dtype);var l=new No(To,t.shape,e.shape);return this.compileAndRun(l,[t,e],t.dtype)},e.prototype.batchNormalization=function(t,e,n,r,o,a){var i=[t,e,n],s=null;null!=a&&(s=a.shape,i.push(a));var u=null;if(null!=o&&(u=o.shape,i.push(o)),f().getBool("WEBGL_PACK_NORMALIZATION")){var c=new Io(t.shape,e.shape,n.shape,s,u,r);return this.compileAndRun(c,i)}var l=new Ro(t.shape,e.shape,n.shape,s,u,r);return this.compileAndRun(l,i)},e.prototype.localResponseNormalization4D=function(t,e,n,r,o){var a=f().getBool("WEBGL_PACK_NORMALIZATION")?new Pa(t.shape,e,n,r,o):new Fa(t.shape,e,n,r,o);return this.compileAndRun(a,[t])},e.prototype.LRNGrad=function(t,e,n,r,o,a,i){var s=new Ma(e.shape,r,o,a,i);return this.compileAndRun(s,[e,n,t])},e.prototype.tile=function(t,e){if("string"===t.dtype){var n=this.readSync(t.dataId).map((function(t){return ot(t)}));return to(Mn(t.shape,t.dtype,n),e)}var r=new hi(t.shape,e);return this.compileAndRun(r,[t])},e.prototype.pad=function(t,e,n){var r=f().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new Ga(t.shape,e,n):new Va(t.shape,e,n);return this.compileAndRun(r,[t])},e.prototype.transpose=function(t,e){if(this.shouldExecuteOnCPU([t]))return this.cpuBackend.transpose(t,e);var n=f().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new di(t.shape,e):new pi(t.shape,e);return this.compileAndRun(n,[t])},e.prototype.gather=function(t,e,n){if(this.shouldExecuteOnCPU([t,e]))return this.cpuBackend.gather(t,e,n);var r=new fa(t.shape,e.size,n);return this.compileAndRun(r,[t,e])},e.prototype.batchToSpaceND=function(t,e,n){E(t.rank<=4,(function(){return"batchToSpaceND for rank > 4 with a WebGL backend not implemented yet"}));var r=e.reduce((function(t,e){return t*e})),o=ur(t.shape,e,r),a=cr(o.length,e.length),i=lr(t.shape,e,r),s=fr(n,e.length),u=hr(i,n,e.length);return t.reshape(o).transpose(a).reshape(i).slice(s,u)},e.prototype.spaceToBatchND=function(t,e,n){E(t.rank<=4,(function(){return"spaceToBatchND for rank > 4 with a WebGL backend not implemented yet"}));var r=e.reduce((function(t,e){return t*e})),o=[[0,0]];o.push.apply(o,n);for(var a=1+e.length;a<t.shape.length;++a)o.push([0,0]);var i=t.pad(o),s=ur(i.shape,e,r,!1),u=cr(s.length,e.length,!1),c=lr(i.shape,e,r,!1);return i.reshape(s).transpose(u).reshape(c)},e.prototype.reduce=function(t,e,n){var r=t.shape[0],o=t.shape[1],a=dr(o),i=new Ka({windowSize:a,inSize:o,batchSize:r},e),s=this.compileAndRun(i,[t],n);return 1===s.shape[1]?s:this.reduce(s,e,n)},e.prototype.argReduce=function(t,e,n){void 0===n&&(n=null);var r=t.shape[0],o=t.shape[1];null!=n&&(r=n.shape[0],o=n.shape[1]);var a=dr(o),i=new ao({windowSize:a,inSize:o,batchSize:r},e,null==n),s=[t];null!=n&&s.push(n);var u=this.compileAndRun(i,s,"int32");return 1===u.shape[1]?u:this.argReduce(t,e,u)},e.prototype.argReducePacked=function(t,e,n){void 0===n&&(n=null);var r=null!=n?n.shape:t.shape,o=dr(r[r.length-1]),a=new Co(r,o,e,null==n),i=null==n?[t]:[t,n],s=this.compileAndRun(a,i,"int32");return s.rank===t.rank?this.argReducePacked(t,e,s):s},e.prototype.sum=function(t,e){Ke("sum",e,t.rank);var n=He(t.shape,e),r=n[0],o=R(n[1]),a=t.as2D(-1,o),i=Ct(t.dtype);return this.reduce(a,"sum",i).reshape(r)},e.prototype.prod=function(t,e){if(this.shouldExecuteOnCPU([t]))return this.cpuBackend.prod(t,e);var n=He(t.shape,e),r=n[0],o=R(n[1]),a=t.as2D(-1,o),i=Ct(t.dtype);return this.reduce(a,"prod",i).reshape(r)},e.prototype.unsortedSegmentSum=function(t,e,n){var r=0,o=Xe([r],t.rank),a=t;null!=o&&(a=t.transpose(o),r=Ye(1,t.rank)[0]);var i=function(t,e,n){for(var r=[],o=t.length,a=0;a<o;a++)a!==e?r.push(t[a]):r.push(n);return r}(a.shape,r,n),s=R([a.shape[r]]),u=a.as2D(-1,s),c=Ct(t.dtype),l=this.segOpCompute(u,"unsortedSegmentSum",e,c,n).reshape(i);return null!=o&&(l=l.transpose($e(o))),l},e.prototype.segOpCompute=function(t,e,n,r,o){var a=t.shape[0],i=t.shape[1],s=function(t,e){var n,r=!1;for(t<=30?(n=t,r=!0):n=$(t,Math.floor(Math.sqrt(t)));!r;)n>e||n===t?r=!0:n=$(t,n+1);return n}(i,o),u=new ri({windowSize:s,inSize:i,batchSize:a,numSegments:o},e),c=this.compileAndRun(u,[t,n],r);return c.shape[1]===o?c:(n=dn(0,o).tile([i/s]),this.segOpCompute(c,e,n,r,o))},e.prototype.argMinMaxReduce=function(t,e,n){var r=[e];if(Ke("arg"+n.charAt(0).toUpperCase()+n.slice(1),r,t.rank),!f().getBool("WEBGL_PACK_REDUCE")||t.rank<=2){var o=He(t.shape,r),a=o[0],i=R(o[1]),s=t.as2D(-1,i);return this.argReduce(s,n).reshape(a)}return this.argReducePacked(t,n)},e.prototype.argMin=function(t,e){return this.argMinMaxReduce(t,e,"min")},e.prototype.argMax=function(t,e){return this.argMinMaxReduce(t,e,"max")},e.prototype.cumsum=function(t,e,n,r){if(e!==t.rank-1)throw new Error("WebGL cumsum shader expects an inner-most axis="+(t.rank-1)+" but got axis="+e);var o=new Zo(t.shape,n,r);return this.compileAndRun(o,[t])},e.prototype.equal=function(t,e){if(f().getBool("WEBGL_PACK_BINARY_OPERATIONS"))return this.packedBinaryOp(t,e,"\n return vec4(equal(a, b));\n","bool");var n=new No("return float(a == b);",t.shape,e.shape);return this.compileAndRun(n,[t,e],"bool")},e.prototype.notEqual=function(t,e){if(f().getBool("WEBGL_PACK_BINARY_OPERATIONS"))return this.packedBinaryOp(t,e,"\n return vec4(notEqual(a, b));\n","bool");var n=new No("return float(a != b);",t.shape,e.shape);return this.compileAndRun(n,[t,e],"bool")},e.prototype.less=function(t,e){if(this.shouldExecuteOnCPU([t,e]))return this.cpuBackend.less(t,e);if(f().getBool("WEBGL_PACK_BINARY_OPERATIONS"))return this.packedBinaryOp(t,e,"\n return vec4(lessThan(a, b));\n","bool");var n=new No("return float(a < b);",t.shape,e.shape);return this.compileAndRun(n,[t,e],"bool")},e.prototype.lessEqual=function(t,e){if(f().getBool("WEBGL_PACK_BINARY_OPERATIONS"))return this.packedBinaryOp(t,e,"\n return vec4(lessThanEqual(a, b));\n","bool");var n=new No("return float(a <= b);",t.shape,e.shape);return this.compileAndRun(n,[t,e],"bool")},e.prototype.greater=function(t,e){if(this.shouldExecuteOnCPU([t,e]))return this.cpuBackend.greater(t,e);if(f().getBool("WEBGL_PACK_BINARY_OPERATIONS"))return this.packedBinaryOp(t,e,"\n return vec4(greaterThan(a, b));\n","bool");var n=new No("return float(a > b);",t.shape,e.shape);return this.compileAndRun(n,[t,e],"bool")},e.prototype.greaterEqual=function(t,e){if(f().getBool("WEBGL_PACK_BINARY_OPERATIONS"))return this.packedBinaryOp(t,e,"\n return vec4(greaterThanEqual(a, b));\n","bool");var n=new No("return float(a >= b);",t.shape,e.shape);return this.compileAndRun(n,[t,e],"bool")},e.prototype.logicalNot=function(t){var e=new gi(t.shape,"return float(!(x >= 1.0));");return this.compileAndRun(e,[t])},e.prototype.logicalAnd=function(t,e){if(f().getBool("WEBGL_PACK_BINARY_OPERATIONS"))return this.packedBinaryOp(t,e,"\n return vec4(\n vec4(greaterThanEqual(a, vec4(1.0))) *\n vec4(greaterThanEqual(b, vec4(1.0))));\n","bool");var n=new No("return float(a >= 1.0 && b >= 1.0);",t.shape,e.shape);return this.compileAndRun(n,[t,e],"bool")},e.prototype.logicalOr=function(t,e){if(f().getBool("WEBGL_PACK_BINARY_OPERATIONS"))return this.packedBinaryOp(t,e,"\n return min(\n vec4(greaterThanEqual(a, vec4(1.0))) +\n vec4(greaterThanEqual(b, vec4(1.0))),\n vec4(1.0));\n","bool");var n=new No("return float(a >= 1.0 || b >= 1.0);",t.shape,e.shape);return this.compileAndRun(n,[t,e],"bool")},e.prototype.select=function(t,e,n){var r=new oi(t.rank,e.shape,e.rank);return this.compileAndRun(r,[t,e,n],Et(e.dtype,n.dtype))},e.prototype.where=function(t){Le("tf.where() in webgl locks the UI thread. Call tf.whereAsync() instead");var e=t.dataSync();return no(t.shape,e)},e.prototype.topk=function(t,e,n){return eo(t.dataSync(),t.shape,t.dtype,e)},e.prototype.min=function(t,e){Ke("min",e,t.rank);var n=He(t.shape,e),r=n[0],o=R(n[1]),a=t.as2D(-1,o);return this.reduce(a,"min",a.dtype).reshape(r)},e.prototype.minimum=function(t,e){if(this.shouldExecuteOnCPU([t,e]))return this.cpuBackend.minimum(t,e);var n=f().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new Mo("\n vec4 result = vec4(min(a, b));\n vec4 isNaN = min(vec4(isnan(a)) + vec4(isnan(b)), vec4(1.0));\n \n result.r = isNaN.r > 0. ? NAN : result.r;\n result.g = isNaN.g > 0. ? NAN : result.g;\n result.b = isNaN.b > 0. ? NAN : result.b;\n result.a = isNaN.a > 0. ? NAN : result.a;\n\n return result;\n",t.shape,e.shape):new No("\n if (isnan(a)) return a;\n if (isnan(b)) return b;\n\n return min(a, b);\n",t.shape,e.shape);return this.compileAndRun(n,[t,e])},e.prototype.mod=function(t,e){var n=f().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new Mo("\n vec4 result = mod(a, b);\n vec4 isNaN = vec4(equal(b, vec4(0.0)));\n \n result.r = isNaN.r > 0. ? NAN : result.r;\n result.g = isNaN.g > 0. ? NAN : result.g;\n result.b = isNaN.b > 0. ? NAN : result.b;\n result.a = isNaN.a > 0. ? NAN : result.a;\n\n return result;\n",t.shape,e.shape):new No("if (b == 0.0) return NAN;\n return mod(a, b);",t.shape,e.shape);return this.compileAndRun(n,[t,e])},e.prototype.max=function(t,e){if(this.shouldExecuteOnCPU([t]))return this.cpuBackend.max(t,e);Ke("max",e,t.rank);var n=He(t.shape,e),r=n[0],o=R(n[1]),a=t.as2D(-1,o);return this.reduce(a,"max",a.dtype).reshape(r)},e.prototype.maximum=function(t,e){if(this.shouldExecuteOnCPU([t,e]))return this.cpuBackend.maximum(t,e);var n=f().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new Mo("\n vec4 result = vec4(max(a, b));\n vec4 isNaN = min(vec4(isnan(a)) + vec4(isnan(b)), vec4(1.0));\n \n result.r = isNaN.r > 0. ? NAN : result.r;\n result.g = isNaN.g > 0. ? NAN : result.g;\n result.b = isNaN.b > 0. ? NAN : result.b;\n result.a = isNaN.a > 0. ? NAN : result.a;\n\n return result;\n",t.shape,e.shape):new No("\n if (isnan(a)) return a;\n if (isnan(b)) return b;\n\n return max(a, b);\n",t.shape,e.shape);return this.compileAndRun(n,[t,e])},e.prototype.all=function(t,e){Ke("all",e,t.rank);var n=He(t.shape,e),r=n[0],o=R(n[1]),a=t.as2D(-1,o);return this.reduce(a,"all",a.dtype).reshape(r)},e.prototype.any=function(t,e){Ke("any",e,t.rank);var n=He(t.shape,e),r=n[0],o=R(n[1]),a=t.as2D(-1,o);return this.reduce(a,"any",a.dtype).reshape(r)},e.prototype.squaredDifference=function(t,e){var n=f().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new Mo("return (a - b) * (a - b);",t.shape,e.shape):new No("return (a - b) * (a - b);",t.shape,e.shape);return this.compileAndRun(n,[t,e])},e.prototype.realDivide=function(t,e){if(f().getBool("WEBGL_PACK_BINARY_OPERATIONS"))return this.packedBinaryOp(t,e,"\n // vec4 one = vec4(equal(a, b));\n // return one + (vec4(1.0) - one) * a / b;\n vec4 result = a / b;\n if(a.x == b.x) {\n result.x = 1.;\n }\n if(a.y == b.y) {\n result.y = 1.;\n }\n if(a.z == b.z) {\n result.z = 1.;\n }\n if(a.w == b.w) {\n result.w = 1.;\n }\n\n return result;\n","float32",!0);var n=new No("\nif (a == b) {\n return 1.0;\n};\nreturn a / b;",t.shape,e.shape);return this.compileAndRun(n,[t,e],"float32")},e.prototype.floorDiv=function(t,e){if(f().getBool("WEBGL_PACK_BINARY_OPERATIONS"))return this.packedBinaryOp(t,e,"\n ivec4 ia = round(a);\n ivec4 ib = round(b);\n bvec4 cond = notEqual(ib, ivec4(0));\n ivec4 result = ivec4(0);\n vec4 s = sign(a) * sign(b);\n\n // Windows (D3D) wants guaranteed non-zero int division at compile-time.\n if (cond[0]) {\n result[0] = idiv(ia[0], ib[0], s[0]);\n }\n if (cond[1]) {\n result[1] = idiv(ia[1], ib[1], s[1]);\n }\n if (cond[2]) {\n result[2] = idiv(ia[2], ib[2], s[2]);\n }\n if (cond[3]) {\n result[3] = idiv(ia[3], ib[3], s[3]);\n }\n return vec4(result);\n","int32");var n=new No("\n float s = sign(a) * sign(b);\n int ia = round(a);\n int ib = round(b);\n if (ib != 0) {\n // Windows (D3D) wants guaranteed non-zero int division at compile-time.\n return float(idiv(ia, ib, s));\n } else {\n return NAN;\n }\n",t.shape,e.shape);return this.compileAndRun(n,[t,e],"int32")},e.prototype.add=function(t,e){if("complex64"===t.dtype&&"complex64"===e.dtype)return this.complexSeparableBinaryOp(t,e,Ao);if(this.shouldExecuteOnCPU([t,e]))return this.cpuBackend.add(t,e);var n=Et(t.dtype,e.dtype);if(f().getBool("WEBGL_PACK_BINARY_OPERATIONS"))return this.packedBinaryOp(t,e,Ao,n);var r=new No(Ao,t.shape,e.shape);return this.compileAndRun(r,[t,e],n)},e.prototype.packedUnaryOp=function(t,e,n){var r=new Di(t.shape,e);return this.compileAndRun(r,[t],n)},e.prototype.packedBinaryOp=function(t,e,n,r,o){void 0===o&&(o=!1);var a=new Mo(n,t.shape,e.shape,o);return this.compileAndRun(a,[t,e],r)},e.prototype.complexSeparableBinaryOp=function(t,e,n){var r=this,o=this.texData.get(t.dataId),a=this.texData.get(e.dataId),i=[[o.complexTensors.real,a.complexTensors.real],[o.complexTensors.imag,a.complexTensors.imag]].map((function(o){var a=o[0],i=o[1],s=r.makeComplexComponentTensorInfo(t,a),u=r.makeComplexComponentTensorInfo(e,i),c=new No(n,t.shape,e.shape);return r.compileAndRun(c,[s,u],Et(a.dtype,i.dtype))})),s=i[0],u=i[1],c=this.complex(s,u);return s.dispose(),u.dispose(),c},e.prototype.makeComplexComponentTensorInfo=function(t,e){return{dataId:e.dataId,dtype:e.dtype,shape:t.shape}},e.prototype.addN=function(t){if(1===t.length)return t[0];if(t.length>f().get("WEBGL_MAX_TEXTURES_IN_SHADER")){var e=Math.floor(t.length/2),n=this.addN(t.slice(0,e)),r=this.addN(t.slice(e));return this.addN([n,r])}var o=t.map((function(t){return t.dtype})).reduce((function(t,e){return Et(t,e)})),a=t.map((function(t){return t.shape})),i=f().getBool("WEBGL_PACK")?new oo(t[0].shape,a):new ro(t[0].shape,a);return this.compileAndRun(i,t,o)},e.prototype.subtract=function(t,e){if("complex64"===t.dtype&&"complex64"===e.dtype)return this.complexSeparableBinaryOp(t,e,Oo);if(this.shouldExecuteOnCPU([t,e]))return this.cpuBackend.subtract(t,e);var n=Et(t.dtype,e.dtype);if(f().getBool("WEBGL_PACK_BINARY_OPERATIONS"))return this.packedBinaryOp(t,e,Oo,t.dtype);var r=new No(Oo,t.shape,e.shape);return this.compileAndRun(r,[t,e],n)},e.prototype.pow=function(t,e){var n=f().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new Mo("\n // isModRound1 has 1 for components with round(mod(b, 2.0)) == 1, 0 otherwise.\n vec4 isModRound1 = vec4(equal(round(mod(b, 2.0)), ivec4(1)));\n vec4 multiplier = sign(a) * isModRound1 + (vec4(1.0) - isModRound1);\n vec4 result = multiplier * pow(abs(a), b);\n\n // Ensure that a^0 = 1, including 0^0 = 1 as this correspond to TF and JS\n bvec4 isExpZero = equal(b, vec4(0.0));\n result.r = isExpZero.r ? 1.0 : result.r;\n result.g = isExpZero.g ? 1.0 : result.g;\n result.b = isExpZero.b ? 1.0 : result.b;\n result.a = isExpZero.a ? 1.0 : result.a;\n\n vec4 isNaN = vec4(lessThan(a, vec4(0.0))) * vec4(lessThan(floor(b), b));\n \n result.r = isNaN.r > 0. ? NAN : result.r;\n result.g = isNaN.g > 0. ? NAN : result.g;\n result.b = isNaN.b > 0. ? NAN : result.b;\n result.a = isNaN.a > 0. ? NAN : result.a;\n\n return result;\n",t.shape,e.shape):new No("\nif(a < 0.0 && floor(b) < b){\n return NAN;\n}\nif (b == 0.0) {\n return 1.0;\n}\nreturn (round(mod(b, 2.0)) != 1) ?\n pow(abs(a), b) : sign(a) * pow(abs(a), b);\n",t.shape,e.shape),r=Et(t.dtype,e.dtype);return this.compileAndRun(n,[t,e],r)},e.prototype.ceil=function(t){if(this.shouldExecuteOnCPU([t]))return this.cpuBackend.ceil(t);if(f().getBool("WEBGL_PACK_UNARY_OPERATIONS"))return this.packedUnaryOp(t,_i,t.dtype);var e=new gi(t.shape,_i);return this.compileAndRun(e,[t])},e.prototype.floor=function(t){if(this.shouldExecuteOnCPU([t]))return this.cpuBackend.floor(t);if(f().getBool("WEBGL_PACK_UNARY_OPERATIONS"))return this.packedUnaryOp(t,ki,t.dtype);var e=new gi(t.shape,ki);return this.compileAndRun(e,[t])},e.prototype.sign=function(t){var e=new gi(t.shape,"\n if (isnan(x)) { return 0.0; }\n return sign(x);\n");return this.compileAndRun(e,[t])},e.prototype.isNaN=function(t){var e=new gi(t.shape,"return float(isnan(x));");return this.compileAndRun(e,[t],"bool")},e.prototype.isInf=function(t){var e=new gi(t.shape,"return float(isinf(x));");return this.compileAndRun(e,[t],"bool")},e.prototype.isFinite=function(t){var e=new gi(t.shape,"return float(!isnan(x) && !isinf(x));");return this.compileAndRun(e,[t],"bool")},e.prototype.round=function(t){var e=new gi(t.shape,"\n // OpenGL ES does not support round function.\n // The algorithm is based on banker's rounding.\n float base = floor(x);\n if ((x - base) < 0.5) {\n return floor(x);\n } else if ((x - base) > 0.5) {\n return ceil(x);\n } else {\n if (mod(base, 2.0) == 0.0) {\n return base;\n } else {\n return base + 1.0;\n }\n }\n");return this.compileAndRun(e,[t])},e.prototype.exp=function(t){if(this.shouldExecuteOnCPU([t]))return this.cpuBackend.exp(t);if(f().getBool("WEBGL_PACK_UNARY_OPERATIONS"))return this.packedUnaryOp(t,Ri,t.dtype);var e=new gi(t.shape,Ri);return this.compileAndRun(e,[t])},e.prototype.expm1=function(t){if(this.shouldExecuteOnCPU([t]))return this.cpuBackend.expm1(t);if(f().getBool("WEBGL_PACK_UNARY_OPERATIONS"))return this.packedUnaryOp(t,Ii,t.dtype);var e=new gi(t.shape,Ii);return this.compileAndRun(e,[t])},e.prototype.log=function(t){if(this.shouldExecuteOnCPU([t]))return this.cpuBackend.log(t);if(f().getBool("WEBGL_PACK_UNARY_OPERATIONS"))return this.packedUnaryOp(t,"\n vec4 result = log(x);\n vec4 isNaN = vec4(lessThan(x, vec4(0.0)));\n result.r = isNaN.r == 1.0 ? NAN : result.r;\n result.g = isNaN.g == 1.0 ? NAN : result.g;\n result.b = isNaN.b == 1.0 ? NAN : result.b;\n result.a = isNaN.a == 1.0 ? NAN : result.a;\n\n return result;\n",t.dtype);var e=new gi(t.shape,"if (x < 0.0) return NAN;\n return log(x);");return this.compileAndRun(e,[t])},e.prototype.log1p=function(t){var e=new gi(t.shape,"return log(1.0 + x);");return this.compileAndRun(e,[t])},e.prototype.sqrt=function(t){var e=new gi(t.shape,"return sqrt(x);");return this.compileAndRun(e,[t])},e.prototype.rsqrt=function(t){if(this.shouldExecuteOnCPU([t]))return this.cpuBackend.rsqrt(t);var e=new gi(t.shape,"return inversesqrt(x);");return this.compileAndRun(e,[t])},e.prototype.reciprocal=function(t){var e=new gi(t.shape,"return 1.0 / x;");return this.compileAndRun(e,[t])},e.prototype.relu=function(t){var e;return e=f().getBool("WEBGL_PACK")?new Di(t.shape,Ai):new gi(t.shape,xi),this.compileAndRun(e,[t])},e.prototype.relu6=function(t){var e;return e=f().getBool("WEBGL_PACK")?new Di(t.shape,Oi):new gi(t.shape,wi),this.compileAndRun(e,[t])},e.prototype.prelu=function(t,e){var n=f().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new Mo(Fo,t.shape,e.shape):new No(Do,t.shape,e.shape);return this.compileAndRun(n,[t,e])},e.prototype.elu=function(t){if(f().getBool("WEBGL_PACK_UNARY_OPERATIONS"))return this.packedUnaryOp(t,Ti,t.dtype);var e=new gi(t.shape,Ei);return this.compileAndRun(e,[t])},e.prototype.eluDer=function(t,e){var n=f().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new Mo("\n vec4 bGTEZero = vec4(greaterThanEqual(b, vec4(0.)));\n return (bGTEZero * a) + ((vec4(1.0) - bGTEZero) * (a * (b + vec4(1.0))));\n",t.shape,e.shape):new No("return (b >= 1.0) ? a : a * (b + 1.0);",t.shape,e.shape);return this.compileAndRun(n,[t,e])},e.prototype.selu=function(t){var e=new gi(t.shape,"\n // Stable and Attracting Fixed Point (0, 1) for Normalized Weights.\n // see: https://arxiv.org/abs/1706.02515\n float scaleAlpha = 1.7580993408473768;\n float scale = 1.0507009873554805;\n return (x >= 0.0) ? scale * x : scaleAlpha * (exp(x) - 1.0);\n");return this.compileAndRun(e,[t])},e.prototype.int=function(t){var e=new gi(t.shape,"return float(int(x));");return this.compileAndRun(e,[t],"int32")},e.prototype.clip=function(t,e,n){var r,o=(r=f().getBool("WEBGL_PACK_CLIP")?new Bo(t.shape):new Po(t.shape)).getCustomSetupFunc(e,n);return this.compileAndRun(r,[t],null,o)},e.prototype.abs=function(t){if(this.shouldExecuteOnCPU([t]))return this.cpuBackend.abs(t);if(f().getBool("WEBGL_PACK_UNARY_OPERATIONS"))return this.packedUnaryOp(t,bi,t.dtype);var e=new gi(t.shape,bi);return this.compileAndRun(e,[t])},e.prototype.complexAbs=function(t){var e=this.texData.get(t.dataId),n=new Lo(t.shape),r=[this.makeComplexComponentTensorInfo(t,e.complexTensors.real),this.makeComplexComponentTensorInfo(t,e.complexTensors.imag)];return this.compileAndRun(n,r)},e.prototype.sigmoid=function(t){var e=new gi(t.shape,"return 1.0 / (1.0 + exp(-1.0 * x));");return this.compileAndRun(e,[t])},e.prototype.softplus=function(t){var e=new gi(t.shape,"\n float epsilon = 1.1920928955078125e-7;\n float threshold = log(epsilon) + 2.0;\n\n bool too_large = x > -threshold;\n bool too_small = x < threshold;\n\n float result;\n float exp_x = exp(x);\n\n if (too_large){\n result = x;\n }\n else if (too_small){\n result = exp_x;\n }\n else{\n result = log(exp_x + 1.0);\n }\n return result;\n");return this.compileAndRun(e,[t])},e.prototype.sin=function(t){var e=new gi(t.shape,"if (isnan(x)) return x;\n return sin(x);\n");return this.compileAndRun(e,[t])},e.prototype.cos=function(t){var e=new gi(t.shape,"if (isnan(x)) return x;\n return cos(x);\n");return this.compileAndRun(e,[t])},e.prototype.tan=function(t){var e=new gi(t.shape,"return tan(x);");return this.compileAndRun(e,[t])},e.prototype.asin=function(t){var e=new gi(t.shape,"if (isnan(x)) return x;\n if (abs(x) > 1.) {\n return NAN;\n }\n return asin(x);\n");return this.compileAndRun(e,[t])},e.prototype.acos=function(t){var e=new gi(t.shape,"if (isnan(x)) return x;\n if (abs(x) > 1.) {\n return NAN;\n }\n return acos(x);\n");return this.compileAndRun(e,[t])},e.prototype.atan=function(t){var e=new gi(t.shape,"if (isnan(x)) return x;\n return atan(x);\n");return this.compileAndRun(e,[t])},e.prototype.atan2=function(t,e){var n=f().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new Mo("\n vec4 result = atan(a, b);\n vec4 isNaN = min(vec4(isnan(a)) + vec4(isnan(b)), vec4(1.0));\n \n result.r = isNaN.r > 0. ? NAN : result.r;\n result.g = isNaN.g > 0. ? NAN : result.g;\n result.b = isNaN.b > 0. ? NAN : result.b;\n result.a = isNaN.a > 0. ? NAN : result.a;\n\n return result;\n",t.shape,e.shape):new No("\n if (isnan(a)) return a;\n if (isnan(b)) return b;\n\n return atan(a, b);\n",t.shape,e.shape);return this.compileAndRun(n,[t,e])},e.prototype.sinh=function(t){var e=new gi(t.shape,"\n float e2x = exp(x);\n return (e2x - 1.0 / e2x) / 2.0;\n");return this.compileAndRun(e,[t])},e.prototype.cosh=function(t){var e=new gi(t.shape,"\n float e2x = exp(-x);\n return (e2x + 1.0 / e2x) / 2.0;\n");return this.compileAndRun(e,[t])},e.prototype.tanh=function(t){var e=new gi(t.shape,"\n float e2x = exp(-2.0 * abs(x));\n return sign(x) * (1.0 - e2x) / (1.0 + e2x);\n");return this.compileAndRun(e,[t])},e.prototype.asinh=function(t){var e=new gi(t.shape,"if (isnan(x)) return x;return log(x + sqrt(x * x + 1.0));");return this.compileAndRun(e,[t])},e.prototype.acosh=function(t){var e=new gi(t.shape,"if (isnan(x)) return x;\n if (x < 1.0) return NAN;\n return log(x + sqrt(x * x - 1.0));");return this.compileAndRun(e,[t])},e.prototype.atanh=function(t){var e=new gi(t.shape,"if (isnan(x)) return x;\n if ((x < -1.0) || (x > 1.0)) return NAN;\n return (log(1.0 + x) - log(1.0 - x)) / 2.0;");return this.compileAndRun(e,[t])},e.prototype.erf=function(t){var e=new gi(t.shape,'\n // Error function is calculated approximately with elementary function.\n // See "Handbook of Mathematical Functions with Formulas,\n // Graphs, and Mathematical Tables", Abramowitz and Stegun.\n float p = 0.3275911;\n float a1 = 0.254829592;\n float a2 = -0.284496736;\n float a3 = 1.421413741;\n float a4 = -1.453152027;\n float a5 = 1.061405429;\n\n float sign = sign(x);\n x = abs(x);\n float t = 1.0 / (1.0 + p * x);\n return sign * (1.0 - (((((a5*t + a4)*t) + a3)*t + a2)*t + a1)*t*exp(-x*x));\n');return this.compileAndRun(e,[t])},e.prototype.step=function(t,e){var n=new gi(t.shape,function(t){return void 0===t&&(t=0),yi+"\n return x > 0.0 ? 1.0 : float("+t+");\n "}(e));return this.compileAndRun(n,[t])},e.prototype.conv2dByMatMul=function(t,e,n,r,o,a){var i=t.shape,s=this.texData.get(t.dataId),u=n.inChannels,c=i[0]*i[1]*i[2],l=n.outChannels,h="channelsLast"===n.dataFormat,p=(1===c||1===l)&&u>1e3,d=i[2]%2!=0&&!!s.isPacked;if(p||!f().getBool("WEBGL_LAZILY_UNPACK")||!f().getBool("WEBGL_PACK_BINARY_OPERATIONS")||!d){var v=h?i[0]*i[1]*i[2]:i[0]*i[2]*i[3],m=this.reshape(t,[1,v,n.inChannels]),g=this.reshape(e,[1,n.inChannels,n.outChannels]);return this.reshape(this.fusedBatchMatMul({a:m,b:g,transposeA:!1,transposeB:!1,bias:r,activation:o,preluActivationWeights:a}),n.outShape)}var y=h?i[0]*i[1]*(i[2]+1):i[0]*i[2]*(i[3]+1),b={dataId:t.dataId,shape:[1,y,n.inChannels],dtype:t.dtype},x=s.shape;s.shape=s.shape.slice(),s.shape[s.shape.length-2]++,E(Ce(s.shape,b.shape),(function(){return"packed reshape "+s.shape+" to "+b.shape+" isn't free"}));var w=this.reshape(e,[1,n.inChannels,n.outChannels]),C=this.fusedBatchMatMul({a:b,b:w,transposeA:!1,transposeB:!1,bias:r,activation:o,preluActivationWeights:a}),_=this.texData.get(C.dataId);return E(_.isPacked,(function(){return"batchMatMul result is expected to be packed"})),s.shape=x,_.shape=n.outShape,Ot.makeTensorFromDataId(C.dataId,n.outShape,C.dtype)},e.prototype.conv2dWithIm2Row=function(t,e,n,r,o,a){var i=n.filterWidth,s=n.filterHeight,u=n.inChannels,c=n.outWidth,l=n.outHeight,f="channelsLast"===n.dataFormat,h=i*s*u,p=l*c,d=[h,p],v=t.squeeze([0]),m=e.reshape([1,h,-1]),g=new Na(d,v.shape,n),y=this.compileAndRun(g,[v]).reshape([1,d[0],d[1]]),b=null!=r,x=null!=a,w=o?Mi(o,!0):null,E=new Wa(y.shape,[1,p,n.outChannels],!0,!1,b,w,x),C=[y,m];r&&C.push(r),x&&C.push(a);var _=this.compileAndRun(E,C);return f?_.reshape([1,l,c,n.outChannels]):_.reshape([1,n.outChannels,l,c])},e.prototype.fusedConv2d=function(t){var e=t.input,n=t.filter,r=t.convInfo,o=t.bias,a=t.activation,i=t.preluActivationWeights;if(1===r.filterHeight&&1===r.filterWidth&&1===r.dilationHeight&&1===r.dilationWidth&&1===r.strideHeight&&1===r.strideWidth&&("SAME"===r.padInfo.type||"VALID"===r.padInfo.type))return this.conv2dByMatMul(e,n,r,o,a,i);if(f().getBool("WEBGL_CONV_IM2COL")&&1===e.shape[0])return this.conv2dWithIm2Row(e,n,r,o,a,i);var s=null!=o,u=null!=i,c=a?Mi(a,!1):null,l=new Xo(r,s,c,u),h=[e,n];return o&&h.push(o),i&&h.push(i),this.compileAndRun(l,h)},e.prototype.conv2d=function(t,e,n){if(1===n.filterHeight&&1===n.filterWidth&&1===n.dilationHeight&&1===n.dilationWidth&&1===n.strideHeight&&1===n.strideWidth&&("SAME"===n.padInfo.type||"VALID"===n.padInfo.type))return this.conv2dByMatMul(t,e,n);if(f().getBool("WEBGL_CONV_IM2COL")&&1===t.shape[0])return this.conv2dWithIm2Row(t,e,n);var r=new Xo(n);return this.compileAndRun(r,[t,e])},e.prototype.conv2dDerInput=function(t,e,n){var r=new Vo(n);return this.compileAndRun(r,[t,e])},e.prototype.conv2dDerFilter=function(t,e,n){var r=new zo(n);return this.compileAndRun(r,[t,e])},e.prototype.fusedDepthwiseConv2D=function(t){var e,n=t.input,r=t.filter,o=t.convInfo,a=t.bias,i=t.activation,s=t.preluActivationWeights,u=f().getBool("WEBGL_PACK_DEPTHWISECONV")&&o.strideWidth<=2&&o.outChannels/o.inChannels==1,c=i?Mi(i,u):null,l=[n,r],h=null!=a,p=null!=s;return h&&l.push(a),p&&l.push(s),u?(e=new Jo(o,h,c,p),this.compileAndRun(e,l)):(e=new Yo(o,h,c,p),this.compileAndRun(e,l))},e.prototype.depthwiseConv2D=function(t,e,n){var r;return f().getBool("WEBGL_PACK_DEPTHWISECONV")&&n.strideWidth<=2&&n.outChannels/n.inChannels==1?(r=new Jo(n),this.compileAndRun(r,[t,e])):(r=new Yo(n),this.compileAndRun(r,[t,e]))},e.prototype.depthwiseConv2DDerInput=function(t,e,n){var r=new Ko(n);return this.compileAndRun(r,[t,e])},e.prototype.depthwiseConv2DDerFilter=function(t,e,n){var r=new qo(n);return this.compileAndRun(r,[t,e])},e.prototype.conv3d=function(t,e,n){var r=new $o(n);return this.compileAndRun(r,[t,e])},e.prototype.conv3dDerInput=function(t,e,n){var r=new Ho(n);return this.compileAndRun(r,[t,e])},e.prototype.conv3dDerFilter=function(t,e,n){var r=new Go(n);return this.compileAndRun(r,[t,e])},e.prototype.maxPool=function(t,e){var n=new Ha(e,"max",!1);return this.compileAndRun(n,[t])},e.prototype.avgPool=function(t,e){var n=new Ha(e,"avg",!1);return this.compileAndRun(n,[t],"float32")},e.prototype.maxPoolBackprop=function(t,e,n,r){var o=new Ha(r,"max",!0),a=this.compileAndRun(o,[e]),i=new Ba(r),s=this.compileAndRun(i,[t,a],e.dtype);return a.dispose(),s},e.prototype.avgPoolBackprop=function(t,e,n){var r=new _o(n);return this.compileAndRun(r,[t],e.dtype)},e.prototype.cast=function(t,e){return Gr(t,e,this)},e.prototype.unstack=function(t,e){for(var n=t.shape[e],r=new Array(t.rank-1),o=0,a=0;a<t.rank;a++)a!==e&&(r[o++]=t.shape[a]);var i=new Array(t.rank).fill(0),s=t.shape.slice();s[e]=1;var u=new Array(n);for(a=0;a<u.length;a++)i[e]=a,u[a]=this.slice(t,i,s).reshape(r);return u},e.prototype.avgPool3d=function(t,e){var n=new qa(e,"avg",!1);return this.compileAndRun(n,[t],"float32")},e.prototype.avgPool3dBackprop=function(t,e,n){var r=new ko(n);return this.compileAndRun(r,[t],e.dtype)},e.prototype.maxPool3d=function(t,e){var n=new qa(e,"max",!1);return this.compileAndRun(n,[t],"float32")},e.prototype.maxPool3dBackprop=function(t,e,n,r){var o=new qa(r,"max",!0),a=this.compileAndRun(o,[e]),i=new La(r),s=this.compileAndRun(i,[t,a],e.dtype);return a.dispose(),s},e.prototype.reshape=function(t,e){var n=this.texData.get(t.dataId);if(n.isPacked&&!Ce(t.shape,e)&&(null===n.texture||!Ce(n.shape,e))){var r=this.packedReshape(t,e);return Ot.makeTensorFromDataId(r.dataId,r.shape,r.dtype)}return Hr(t,e)},e.prototype.resizeBilinear=function(t,e,n,r){var o=f().getBool("WEBGL_PACK_IMAGE_OPERATIONS")?new Ja(t.shape,e,n,r):new Ya(t.shape,e,n,r);return this.compileAndRun(o,[t],"float32")},e.prototype.resizeBilinearBackprop=function(t,e,n){var r=new $a(t,e,n);return this.compileAndRun(r,[t])},e.prototype.resizeNearestNeighbor=function(t,e,n,r){var o=new Za(t.shape,e,n,r);return this.compileAndRun(o,[t])},e.prototype.resizeNearestNeighborBackprop=function(t,e,n){var r=new Qa(t,e,n);return this.compileAndRun(r,[t])},e.prototype.multinomial=function(t,e,n,r){var o=e?t:_r(t),a=o.shape[0],i=o.shape[1],s=new Ua(a,i,n),u=s.getCustomSetupFunc(r);return this.compileAndRun(s,[o],"int32",u)},e.prototype.oneHot=function(t,e,n,r){var o=new ja(t.size,e,n,r);return this.compileAndRun(o,[t])},e.prototype.diag=function(t){var e=new oa(t.size);return this.compileAndRun(e,[t])},e.prototype.nonMaxSuppression=function(t,e,n,r,o){return Le("tf.nonMaxSuppression() in webgl locks the UI thread. Call tf.nonMaxSuppressionAsync() instead"),Jr(t.dataSync(),e.dataSync(),n,r,o)},e.prototype.cropAndResize=function(t,e,n,r,o,a){var i=new Qo(t.shape,e.shape,r,o,a);return this.compileAndRun(i,[t,e,n],"float32")},e.prototype.depthToSpace=function(t,e,n){E(e>1,(function(){return"blockSize should be > 1 for depthToSpace, but was: "+e}));var r=t.shape[0],o="NHWC"===n?t.shape[1]:t.shape[2],a="NHWC"===n?t.shape[2]:t.shape[3],i="NHWC"===n?t.shape[3]:t.shape[1],s=o*e,u=a*e,c=i/(e*e),l=new ra("NHWC"===n?[r,s,u,c]:[r,c,s,u],e,n);return this.compileAndRun(l,[t])},e.prototype.split=function(t,e,n){return Zr(t,e,n)},e.prototype.scatterND=function(t,e,n){var r=vr(0,t,n),o=r.sliceRank,a=r.numUpdates,i=r.sliceSize,s=r.strides,u=r.outputSize,c=[u/i,i],l=t.reshape([a,o]),f=e.reshape([a,i]);if(0===u)return Hr(rn([]),n);var h=an(0),p=new ni(a,o,l.rank,f.rank,s,c);return this.compileAndRun(p,[f,l,h]).reshape(n)},e.prototype.sparseToDense=function(t,e,n,r){var o=vr(0,t,n),a=o.sliceRank,i=o.numUpdates,s=o.strides,u=o.outputSize,c=new ni(i,a,t.rank,e.rank,s,[u,1],!1);return this.compileAndRun(c,[e,t,r]).reshape(n)},e.prototype.fft=function(t){return this.fftImpl(t,!1)},e.prototype.ifft=function(t){return this.fftImpl(t,!0)},e.prototype.fftImpl=function(t,e){var n=this.texData.get(t.dataId),r=new ca("return real * expR - imag * expI;",t.shape,e),o=new ca("return real * expI + imag * expR;",t.shape,e),a=[this.makeComplexComponentTensorInfo(t,n.complexTensors.real),this.makeComplexComponentTensorInfo(t,n.complexTensors.imag)],i=this.compileAndRun(r,a),s=this.compileAndRun(o,a),u=this.complex(i,s).as2D(t.shape[0],t.shape[1]);return i.dispose(),s.dispose(),u},e.prototype.gatherND=function(t,e){var n=e.shape,r=n[n.length-1],o=pr(t,e),a=o[0],i=o[1],s=o[2],u=o[3],c=e.reshape([i,r]),l=t.reshape([t.size/s,s]),f=new ha(r,u,[i,s]);return this.compileAndRun(f,[l,c]).reshape(a)},e.prototype.fill=function(t,e,n){if("string"===(n=n||K(e))){var r=B(n,R(t));return r.fill(e),Ot.makeTensor(r,t,n,this)}var o=new la(t,e),a=o.getCustomSetupFunc(e);return this.compileAndRun(o,[],n,a)},e.prototype.onesLike=function(t){if("string"===t.dtype)throw new Error("onesLike is not supported under string dtype");return this.fill(t.shape,1,t.dtype)},e.prototype.zerosLike=function(t){return this.fill(t.shape,"string"===t.dtype?"":0,t.dtype)},e.prototype.linspace=function(t,e,n){return qr(t,e,n)},e.prototype.makeTensorInfo=function(t,e){var n=this.write(null,t,e);return this.texData.get(n).usage=null,{dataId:n,shape:t,dtype:e}},e.prototype.makeOutput=function(t,e){var n=this.makeTensorInfo(t,e).dataId;return Ot.makeTensorFromDataId(n,t,e,this)},e.prototype.unpackTensor=function(t){var e=new Ni(t.shape);return this.runWebGLProgram(e,[t],t.dtype)},e.prototype.packTensor=function(t){var e=new za(t.shape);return this.runWebGLProgram(e,[t],t.dtype,null,!0)},e.prototype.packedReshape=function(t,e){var n=[ye(t.shape)].concat(be(t.shape)),r={dtype:t.dtype,shape:n,dataId:t.dataId},o=[ye(e)].concat(be(e)),a=new Xa(o,n),i=this.runWebGLProgram(a,[r],t.dtype,null,!0);return{dataId:i.dataId,shape:e,dtype:i.dtype}},e.prototype.decode=function(t){var e,n=this.texData.get(t),r=n.isPacked,o=n.shape,a=n.dtype,i=xe(o);return e=r?new na(i):new ea(i),{dtype:a,shape:o,dataId:this.runWebGLProgram(e,[{shape:i,dtype:a,dataId:t}],a,null,!0).dataId}},e.prototype.runWebGLProgram=function(t,e,n,r,o){var a=this;void 0===o&&(o=!1);var i=this.makeTensorInfo(t.outputShape,n),s=this.texData.get(i.dataId);if(t.packedOutput&&(s.isPacked=!0),t.outPackingScheme===Nt.DENSE){var u=jt(t.outputShape);s.texShape=u.map((function(t){return 2*t}))}if(null!=t.outTexUsage&&(s.usage=t.outTexUsage),0===R(i.shape))return s.values=P(i.dtype,0),i;var c=[],l=e.map((function(e){if("complex64"===e.dtype)throw new Error("GPGPUProgram does not support complex64 input. For complex64 dtypes, please separate the program into real and imaginary parts.");var n=a.texData.get(e.dataId);if(null==n.texture){if(!t.packedInputs&&R(e.shape)<=f().getNumber("WEBGL_SIZE_UPLOAD_UNIFORM"))return{shape:e.shape,texData:null,isUniform:!0,uniformValues:n.values};t.packedInputs&&(n.isPacked=!0,n.shape=e.shape)}else if(!!n.isPacked!=!!t.packedInputs)e=n.isPacked?a.unpackTensor(e):a.packTensor(e),c.push(e),n=a.texData.get(e.dataId);else if(n.isPacked&&!Ce(n.shape,e.shape)){var r=e,o=e.shape;e.shape=n.shape,e=a.packedReshape(e,o),c.push(e),n=a.texData.get(e.dataId),r.shape=o}return a.uploadToGPU(e.dataId),{shape:e.shape,texData:n,isUniform:!1}}));this.uploadToGPU(i.dataId);var h,p={shape:i.shape,texData:s,isUniform:!1},d=function(t,e,n){var r="";e.concat(n).forEach((function(t){var e=null!=t.texData&&null!=t.texData.slice&&t.texData.slice.flatOffset>0,n=t.isUniform?"uniform":t.texData.texShape;r+=t.shape+"_"+n+"_"+e}));var o=t.userCode;return t.constructor.name+"_"+r+"_"+o}(t,l,p),v=this.getAndSaveBinary(d,(function(){return function(t,e,n,r){var o=e.userCode,a=n.map((function(t,n){var r={logicalShape:t.shape,texShape:t.isUniform?null:t.texData.texShape,isUniform:t.isUniform,isPacked:!t.isUniform&&t.texData.isPacked,flatOffset:null};return null!=t.texData&&null!=t.texData.slice&&t.texData.slice.flatOffset>0&&(r.flatOffset=t.texData.slice.flatOffset),{name:e.variableNames[n],shapeInfo:r}})),i=a.map((function(t){return t.shapeInfo})),s={logicalShape:r.shape,texShape:r.texData.texShape,isUniform:!1,isPacked:r.texData.isPacked,flatOffset:null},u=ho(a,s,o,e.packedInputs),c=t.createProgram(u),l=null,h=t.getUniformLocation(c,"NAN",!1);1===f().getNumber("WEBGL_VERSION")&&(l=t.getUniformLocation(c,"INFINITY",!1));for(var p={},d=0;d<e.variableNames.length;d++){var v=e.variableNames[d];p[v]=t.getUniformLocation(c,v,!1),p["offset"+v]=t.getUniformLocation(c,"offset"+v,!1)}return{program:e,source:u,webGLProgram:c,uniformLocations:p,inShapeInfos:i,outShapeInfo:s,infLoc:l,nanLoc:h}}(a.gpgpu,t,l,p)})),m=null!=this.activeTimers;if(m&&(h=this.startTimer()),function(t,e,n,r,o){Da(e.inShapeInfos,n),Da([e.outShapeInfo],[r]);var a=r.texData.texture,i=r.texData.texShape;r.texData.isPacked?t.setOutputPackedMatrixTexture(a,i[0],i[1]):t.setOutputMatrixTexture(a,i[0],i[1]),t.setProgram(e.webGLProgram),1===f().getNumber("WEBGL_VERSION")&&null!==e.infLoc&&t.gl.uniform1f(e.infLoc,1/0),null!==e.nanLoc&&t.gl.uniform1f(e.nanLoc,NaN),n.forEach((function(n,r){var o=e.program.variableNames[r],a=e.uniformLocations[o],i=e.uniformLocations["offset"+o];if(null!=a)if(n.isUniform)if(R(n.shape)<2)t.gl.uniform1f(a,n.uniformValues[0]);else{var s=n.uniformValues;s instanceof Float32Array||(s=new Float32Array(s)),t.gl.uniform1fv(a,s)}else null!=n.texData.slice&&null!=i&&t.gl.uniform1i(i,n.texData.slice.flatOffset),t.setInputMatrixTexture(n.texData.texture,a,r)})),null!=o&&o(t,e.webGLProgram),t.executeProgram()}(this.gpgpu,v,l,p,r),c.forEach((function(t){return a.disposeData(t.dataId)})),m&&(h=this.endTimer(h),this.activeTimers.push({name:t.constructor.name,query:this.getQueryTime(h)})),!f().getBool("WEBGL_LAZILY_UNPACK")&&s.isPacked&&!1===o){var g=this.unpackTensor(i);return this.disposeData(i.dataId),g}return i},e.prototype.compileAndRun=function(t,e,n,r,o){void 0===o&&(o=!1),n=n||e[0].dtype;var a=this.runWebGLProgram(t,e,n,r,o);return Ot.makeTensorFromDataId(a.dataId,a.shape,a.dtype)},e.prototype.getAndSaveBinary=function(t,e){return t in this.binaryCache||(this.binaryCache[t]=e()),this.binaryCache[t]},e.prototype.getTextureManager=function(){return this.textureManager},e.prototype.dispose=function(){this.disposed||(this.textureManager.dispose(),null!=this.canvas&&"undefined"!=typeof HTMLCanvasElement&&this.canvas instanceof HTMLCanvasElement?this.canvas.remove():this.canvas=null,this.gpgpuCreatedLocally&&(this.gpgpu.program=null,this.gpgpu.dispose()),this.disposed=!0)},e.prototype.floatPrecision=function(){var t=this;return null==this.floatPrecisionValue&&(this.floatPrecisionValue=Pe((function(){if(!f().get("WEBGL_RENDER_FLOAT32_ENABLED")){var e=f().getBool("DEBUG");f().set("DEBUG",!1);var n=t.abs(an(1e-8)).dataSync()[0];if(f().set("DEBUG",e),n>0)return 32}return 16}))),this.floatPrecisionValue},e.prototype.epsilon=function(){return 32===this.floatPrecision()?1e-7:1e-4},e.prototype.uploadToGPU=function(t){var e,n=this.texData.get(t),r=n.shape,o=n.dtype,a=n.values,i=n.texture,s=n.usage,u=n.isPacked;if(null==i){var c,l=null!=this.activeTimers;l&&(c=et());var f=n.texShape;if(null==f&&(f=we(r,u),n.texShape=f),null!=a){var h=xe(r),p=void 0,d=f[1],v=f[0],m=a instanceof Uint8Array;u?(d=(e=zt(f[0],f[1]))[0],v=e[1],p=new ua(h,[v,d],m)):p=new sa(h,[v,d],m);var g=this.makeTensorInfo([v,d],o);this.texData.get(g.dataId).usage=m?Ft.PIXELS:Ft.UPLOAD,this.gpgpu.uploadDenseMatrixToTexture(this.getTexture(g.dataId),d,v,a);var y=this.runWebGLProgram(p,[g],o,null,!0),b=this.texData.get(y.dataId);n.texture=b.texture,n.texShape=b.texShape,n.isPacked=b.isPacked,n.usage=b.usage,this.disposeData(g.dataId),this.texData.delete(y.dataId),n.values=null,l&&(this.uploadWaitMs+=et()-c)}else{var x=this.acquireTexture(f,s,o,u);n.texture=x}}},e.prototype.convertAndCacheOnCPU=function(t,e){var n=this.texData.get(t),r=n.dtype;return this.releaseGPUData(t),null!=e&&(n.values=function(t,e){if("float32"===e||"complex64"===e)return t;if("int32"===e||"bool"===e){for(var n="int32"===e?new Int32Array(t.length):new Uint8Array(t.length),r=0;r<n.length;++r)n[r]=Math.round(t[r]);return n}throw new Error("Unknown dtype "+e)}(e,r)),n.values},e.prototype.acquireTexture=function(t,e,n,r){if(this.numBytesInGPU+=this.computeBytes(t,n),!this.warnedAboutMemory&&this.numBytesInGPU>1024*this.numMBBeforeWarning*1024){(this.numBytesInGPU/1024/1024).toFixed(2);this.warnedAboutMemory=!0}return this.textureManager.acquireTexture(t,e,r)},e.prototype.computeBytes=function(t,e){return t[0]*t[1]*z(e)},e}(Ir);Tt()&&Ot.registerBackend("webgl",(function(){return new Pi}),2);var Bi=Ze({square_:function(t){var e=je(t,"x","square"),n=[e];return Ot.runKernelFunc((function(t,n){return n([e]),t.square(e)}),{x:e},(function(t,e){var n=e[0];return{x:function(){return t.mul(n.toFloat().mul(2))}}}),"Square",{},n,[])}}),Li=Ze({abs_:function(t){var e=je(t,"x","abs");return"complex64"===e.dtype?Ot.runKernelFunc((function(t){return t.complexAbs(e)}),{$x:e}):Ot.runKernelFunc((function(t,n){var r=t.abs(e);return n([e]),r}),{x:e},(function(t,e){var n=e[0];return{x:function(){return t.mul(n.toFloat().step(-1))}}}),"Abs")}}),Wi=Ze({acos_:function(t){var e=je(t,"x","acos");return Ot.runKernelFunc((function(t,n){var r=t.acos(e);return n([e]),r}),{$x:e},(function(t,e){var n=e[0];return{$x:function(){return t.divStrict(an(1).sub(n.toFloat().square()).sqrt()).neg()}}}))}}),Ui=Ze({acosh_:function(t){var e=je(t,"x","acosh");return Ot.runKernelFunc((function(t,n){var r=t.acosh(e);return n([e]),r}),{$x:e},(function(t,e){var n=e[0];return{$x:function(){return t.divStrict(n.toFloat().square().sub(1).sqrt())}}}))}}),ji=Ze({asin_:function(t){var e=je(t,"x","asin");return Ot.runKernelFunc((function(t,n){var r=t.asin(e);return n([e]),r}),{$x:e},(function(t,e){var n=e[0];return{$x:function(){return t.divStrict(an(1).sub(n.toFloat().square()).sqrt())}}}))}}),zi=Ze({asinh_:function(t){var e=je(t,"x","asinh");return Ot.runKernelFunc((function(t,n){var r=t.asinh(e);return n([e]),r}),{$x:e},(function(t,e){var n=e[0];return{$x:function(){return t.divStrict(an(1).add(n.toFloat().square()).sqrt())}}}))}}),Vi=Ze({atan_:function(t){var e=je(t,"x","atan");return Ot.runKernelFunc((function(t,n){var r=t.atan(e);return n([e]),r}),{$x:e},(function(t,e){var n=e[0];return{$x:function(){return t.div(n.toFloat().square().add(1))}}}))}}),Gi=Ze({atanh_:function(t){var e=je(t,"x","atanh");return Ot.runKernelFunc((function(t,n){var r=t.atanh(e);return n([e]),r}),{$x:e},(function(t,e){var n=e[0];return{$x:function(){return t.div(an(1).sub(n.toFloat().square()))}}}))}}),Hi=Ze({ceil_:function(t){var e=je(t,"x","ceil");return Ot.runKernelFunc((function(t){return t.ceil(e)}),{$x:e},(function(t){return{$x:function(){return mn(t)}}}))}}),qi=Ze({clipByValue_:function(t,e,n){var r=je(t,"x","clipByValue");E(e<=n,(function(){return"Error in clip: min ("+e+") must be less than or equal to max ("+n+")."}));var o=[r],a={min:e,max:n};return Ot.runKernelFunc((function(t,o){var a=t.clip(r,e,n);return o([r]),a}),{x:r},(function(t,r){var o=r[0];return{x:function(){return t.where(o.greaterEqual(e).logicalAnd(o.lessEqual(n)),mn(t))}}}),"ClipByValue",a,o)}}),Ki=Ze({cos_:function(t){var e=je(t,"x","cos");return Ot.runKernelFunc((function(t,n){var r=t.cos(e);return n([e]),r}),{$x:e},(function(t,e){var n=e[0];return{$x:function(){return n.toFloat().sin().neg().mul(t)}}}))}}),Xi=Ze({cosh_:function(t){var e=je(t,"x","cosh");return Ot.runKernelFunc((function(t,n){var r=t.cosh(e);return n([e]),r}),{$x:e},(function(t,e){var n=e[0];return{$x:function(){return n.toFloat().sinh().mulStrict(t)}}}))}}),$i=Ze({erf_:function(t){var e=je(t,"x","erf");return E("int32"===e.dtype||"float32"===e.dtype,(function(){return"Input dtype must be `int32` or `float32`."})),"int32"===e.dtype&&(e=e.toFloat()),Ot.runKernelFunc((function(t,n){var r=t.erf(e);return n([e]),r}),{$x:e},(function(t,e){var n=e[0];return{$x:function(){return t.mul(n.square().neg().exp().mul(2/Math.sqrt(Math.PI)))}}}))}}),Yi=Ze({exp_:function(t){var e=je(t,"x","exp");return Ot.runKernelFunc((function(t,n){var r=t.exp(e);return n([r]),r}),{$x:e},(function(t,e){return{$x:function(){return t.mulStrict(e[0])}}}))}}),Ji=Ze({expm1_:function(t){var e=je(t,"x","expm1");return Ot.runKernelFunc((function(t,n){var r=t.expm1(e);return n([e]),r}),{$x:e},(function(t,e){var n=e[0];return{$x:function(){return t.mul(n.exp())}}}))}}),Qi=Ze({floor_:function(t){var e=je(t,"x","floor");return Ot.runKernelFunc((function(t){return t.floor(e)}),{$x:e},(function(t){return{$x:function(){return mn(t)}}}))}}),Zi=Ze({log_:function(t){var e=je(t,"x","log");return Ot.runKernelFunc((function(t,n){var r=t.log(e);return n([e]),r}),{$x:e},(function(t,e){var n=e[0];return{$x:function(){return t.div(n.toFloat())}}}))}}),ts=Ze({log1p_:function(t){var e=je(t,"x","log1p");return Ot.runKernelFunc((function(t,n){var r=t.log1p(e);return n([e]),r}),{$x:e},(function(t,e){var n=e[0];return{$x:function(){return t.div(n.add(1))}}}))}}),es=Ze({logSigmoid_:function(t){var e=je(t,"x","logSigmoid");return Ot.runKernelFunc((function(t,n){var r=t.softplus(e.neg()).neg();return n([e]),r}),{$x:e},(function(t,e){var n=e[0];return{$x:function(){return t.mul(n.neg().sigmoid())}}}))}}),ns=Ze({neg_:function(t){var e=je(t,"x","neg");return Ot.runKernelFunc((function(t){return t.neg(e)}),{$x:e},(function(t){return{$x:function(){return t.neg()}}}))}}),rs=Ze({reciprocal_:function(t){var e=je(t,"x","reciprocal");return Ot.runKernelFunc((function(t,n){var r=t.reciprocal(e);return n([e]),r}),{$x:e},(function(t,e){var n=e[0];return{$x:function(){return t.div(n.square().neg())}}}))}}),os=Ze({round_:function(t){var e=je(t,"x","round");return Ot.runKernelFunc((function(t){return t.round(e)}),{$x:e},(function(t){return{$x:function(){return mn(t)}}}))}}),as=Ze({rsqrt_:function(t){var e=je(t,"x","rsqrt");return Ot.runKernelFunc((function(t,n){var r=t.rsqrt(e);return n([e]),r}),{$x:e},(function(t,e){var n=e[0];return{$x:function(){return t.div(n.pow(1.5).mul(2)).neg()}}}))}}),is=Ze({sigmoid_:function(t){var e=je(t,"x","sigmoid");return Ot.runKernelFunc((function(t,n){var r=t.sigmoid(e);return n([r]),r}),{x:e},(function(t,e){var n=e[0];return{x:function(){return t.mul(n.mul(an(1).sub(n)))}}}),"Sigmoid")}}),ss=Ze({sign_:function(t){var e=je(t,"x","sign");return Ot.runKernelFunc((function(t){return t.sign(e)}),{$x:e},(function(t){return{$x:function(){return mn(t)}}}))}}),us=Ze({isNaN_:function(t){var e=je(t,"x","isNaN");return Ot.runKernelFunc((function(t){return t.isNaN(e)}),{$x:e},(function(t){return{$x:function(){return mn(t)}}}))}}),cs=Ze({isInf_:function(t){var e=je(t,"x","isInf");return Ot.runKernelFunc((function(t){return t.isInf(e)}),{$x:e},(function(t){return{$x:function(){return mn(t)}}}))}}),ls=Ze({isFinite_:function(t){var e=je(t,"x","isFinite");return Ot.runKernelFunc((function(t){return t.isFinite(e)}),{$x:e},(function(t){return{$x:function(){return mn(t)}}}))}}),fs=Ze({sin_:function(t){var e=je(t,"x","sin");return Ot.runKernelFunc((function(t,n){var r=t.sin(e);return n([e]),r}),{$x:e},(function(t,e){var n=e[0];return{$x:function(){return n.toFloat().cos().mul(t)}}}))}}),hs=Ze({sinh_:function(t){var e=je(t,"x","sinh");return Ot.runKernelFunc((function(t,n){var r=t.sinh(e);return n([e]),r}),{$x:e},(function(t,e){var n=e[0];return{$x:function(){return n.toFloat().cosh().mulStrict(t)}}}))}}),ps=Ze({softplus_:function(t){var e=je(t,"x","softplus");return Ot.runKernelFunc((function(t,n){var r=t.softplus(e);return n([e]),r}),{$x:e},(function(t,e){var n=e[0];return{$x:function(){return t.mul(n.sigmoid())}}}))}}),ds=Ze({sqrt_:function(t){var e=je(t,"x","sqrt");return Ot.runKernelFunc((function(t,n){var r=t.sqrt(e);return n([e]),r}),{$x:e},(function(t,e){var n=e[0];return{$x:function(){return t.div(n.toFloat().sqrt().mul(2))}}}))}}),vs=Ze({step_:function(t,e){void 0===e&&(e=0);var n=je(t,"x","step");return Ot.runKernelFunc((function(t){return t.step(n,e)}),{$x:n},(function(t){return{$x:function(){return mn(t)}}}))}}),ms=Ze({tan_:function(t){var e=je(t,"x","tan");return Ot.runKernelFunc((function(t,n){var r=t.tan(e);return n([e]),r}),{$x:e},(function(t,e){var n=e[0];return{$x:function(){return t.div(n.cos().square())}}}))}}),gs=Ze({tanh_:function(t){var e=je(t,"x","tanh");return Ot.runKernelFunc((function(t,n){var r=t.tanh(e);return n([r]),r}),{$x:e},(function(t,e){var n=e[0];return{$x:function(){return an(1).sub(n.square()).mulStrict(t)}}}))}});function ys(t,e,n,r,o,a){var i,s,u=je(t,"x","batchNorm"),c=je(e,"mean","batchNorm"),l=je(n,"variance","batchNorm");return null!=o&&(i=je(o,"scale","batchNorm")),null!=r&&(s=je(r,"offset","batchNorm")),E(2===u.rank,(function(){return"Error in batchNorm3D: x must be rank 3 but got rank "+u.rank+"."})),E(2===c.rank||1===c.rank,(function(){return"Error in batchNorm2D: mean must be rank 2 or rank 1 but got rank "+c.rank+"."})),E(2===l.rank||1===l.rank,(function(){return"Error in batchNorm2D: variance must be rank 2 or rank 1 but got rank "+l.rank+"."})),null!=i&&E(2===i.rank||1===i.rank,(function(){return"Error in batchNorm2D: scale must be rank 2 or rank 1 but got rank "+i.rank+"."})),null!=s&&E(2===s.rank||1===s.rank,(function(){return"Error in batchNorm2D: offset must be rank 2 or rank 1 but got rank "+s.rank+"."})),ws(u,c,l,s,i,a)}function bs(t,e,n,r,o,a){var i,s,u=je(t,"x","batchNorm"),c=je(e,"mean","batchNorm"),l=je(n,"variance","batchNorm");return null!=o&&(i=je(o,"scale","batchNorm")),null!=r&&(s=je(r,"offset","batchNorm")),E(3===u.rank,(function(){return"Error in batchNorm3D: x must be rank 3 but got rank "+u.rank+"."})),E(3===c.rank||1===c.rank,(function(){return"Error in batchNorm3D: mean must be rank 3 or rank 1 but got rank "+c.rank+"."})),E(3===l.rank||1===l.rank,(function(){return"Error in batchNorm3D: variance must be rank 3 or rank 1 but got rank "+l.rank+"."})),null!=i&&E(3===i.rank||1===i.rank,(function(){return"Error in batchNorm3D: scale must be rank 3 or rank 1 but got rank "+i.rank+"."})),null!=s&&E(3===s.rank||1===s.rank,(function(){return"Error in batchNorm3D: offset must be rank 3 or rank 1 but got rank "+s.rank+"."})),ws(u,c,l,s,i,a)}function xs(t,e,n,r,o,a){var i,s,u=je(t,"x","batchNorm"),c=je(e,"mean","batchNorm"),l=je(n,"variance","batchNorm");return null!=o&&(i=je(o,"scale","batchNorm")),null!=r&&(s=je(r,"offset","batchNorm")),E(4===u.rank,(function(){return"Error in batchNorm4D: x must be rank 4 but got rank "+u.rank+"."})),E(4===c.rank||1===c.rank,(function(){return"Error in batchNorm4D: mean must be rank 4 or rank 1 but got rank "+c.rank+"."})),E(4===l.rank||1===l.rank,(function(){return"Error in batchNorm4D: variance must be rank 4 or rank 1 but got rank "+l.rank+"."})),null!=i&&E(4===i.rank||1===i.rank,(function(){return"Error in batchNorm4D: scale must be rank 4 or rank 1 but got rank "+i.rank+"."})),null!=s&&E(4===s.rank||1===s.rank,(function(){return"Error in batchNorm4D: offset must be rank 4 or rank 1 but got rank "+s.rank+"."})),ws(u,c,l,s,i,a)}function ws(t,e,n,r,o,a){null==a&&(a=.001);var i,s,u,c=je(t,"x","batchNorm"),l=je(e,"mean","batchNorm"),f=je(n,"variance","batchNorm");null!=o&&(i=je(o,"scale","batchNorm")),null!=r&&(s=je(r,"offset","batchNorm")),E(l.rank===f.rank,(function(){return"Batch normalization gradient requires mean and variance to have equal ranks."})),E(null==s||l.rank===s.rank,(function(){return"Batch normalization gradient requires mean and offset to have equal ranks."})),E(null==i||l.rank===i.rank,(function(){return"Batch normalization gradient requires mean and scale to have equal ranks."})),u=0===c.rank||1===c.rank?c.as4D(1,1,1,c.size):2===c.rank?c.as4D(1,1,c.shape[0],c.shape[1]):3===c.rank?c.as4D(1,c.shape[0],c.shape[1],c.shape[2]):c;var h=[c,l,f,i];return Ot.runKernelFunc((function(t,e){var n=t.batchNormalization(u,Es(l),Es(f),a,Es(i),Es(s));return e([c,l,f,i]),n}),{x:c,mean:l,variance:f,scale:i,offset:s},(function(t,e){var n=e,r=n[0],o=n[1],i=n[2],s=n[3],c=null==s?an(1):s,l=Or(o.shape,u.shape),f=[];if(1===o.rank){for(var h=0;h<u.shape.length-1;++h)f.push(u.shape[h]);f.push(1)}var p=r.sub(o),d=t.mul(c),v=as(i.add(an(a))),m=v.mul(v).mul(v).mul(an(-.5));return{x:function(){return 1===o.rank?t.mul(ar(v.as4D(1,1,1,o.shape[0]),f)).mul(c).reshape(r.shape):t.mul(v).mul(c).reshape(r.shape)},mean:function(){var t=v.mul(an(-1)).mul(d);return 1===o.rank&&(t=t.sum(l)),t.reshape(o.shape)},variance:function(){var t=m.mul(p).mul(d);return 1===o.rank&&(t=t.sum(l)),t.reshape(o.shape)},scale:function(){var e=p.mul(v),n=t.mul(e);return 1===o.rank&&(n=n.sum(l)),n.reshape(o.shape)},offset:function(){var e=t;return 1===o.rank&&(e=e.sum(l)),e.reshape(o.shape)}}}),"BatchNormalization",{varianceEpsilon:a},h).reshape(c.shape)}function Es(t){return null==t?null:0===t.rank?t.as1D():1===t.rank?t:2===t.rank?t.as4D(1,1,t.shape[0],t.shape[1]):3===t.rank?t.as4D(1,t.shape[0],t.shape[1],t.shape[2]):t}function Cs(){Me()}var _s=Ze({batchNormalization2d_:function(t,e,n,r,o,a){return void 0===r&&(r=.001),Cs(),ys(t,e,n,a,o,r)}}),ks=Ze({batchNormalization3d_:function(t,e,n,r,o,a){return void 0===r&&(r=.001),Cs(),bs(t,e,n,a,o,r)}}),Rs=Ze({batchNormalization4d_:function(t,e,n,r,o,a){return void 0===r&&(r=.001),Cs(),xs(t,e,n,a,o,r)}}),Is=Ze({batchNormalization_:function(t,e,n,r,o,a){return void 0===r&&(r=.001),Cs(),ws(t,e,n,a,o,r)}}),Ss=Ze({batchNorm_:ws}),As=Ze({batchNorm2d_:ys}),Os=Ze({batchNorm3d_:bs}),Ts=Ze({batchNorm4d_:xs}),Ds=Ze({logicalAnd_:function(t,e){var n=je(t,"a","logicalAnd","bool"),r=je(e,"b","logicalAnd","bool");return Tr(n.shape,r.shape),Ot.runKernelFunc((function(t){return t.logicalAnd(n,r)}),{$a:n,$b:r})}}),Ns=Ze({logicalNot_:function(t){var e=je(t,"x","logicalNot","bool");return Ot.runKernelFunc((function(t){return t.logicalNot(e)}),{$x:e})}}),Fs=Ze({logicalOr_:function(t,e){var n=je(t,"a","logicalOr","bool"),r=je(e,"b","logicalOr","bool");return Tr(n.shape,r.shape),Ot.runKernelFunc((function(t){return t.logicalOr(n,r)}),{$a:n,$b:r})}}),Ms=Ze({logicalXor_:function(t,e){var n=je(t,"a","logicalXor","bool"),r=je(e,"b","logicalXor","bool");return Tr(n.shape,r.shape),Fs(t,e).logicalAnd(Ds(t,e).logicalNot())}}),Ps=Ze({where_:function(t,e,n){var r=je(e,"a","where"),o=je(n,"b","where"),a=je(t,"condition","where","bool");return C(r.shape,o.shape,"Error in where: "),1===a.rank?E(a.shape[0]===r.shape[0],(function(){return"The first dimension of `a` must match the size of `condition`."})):C(a.shape,o.shape,"Error in where: "),Ot.runKernelFunc((function(t,e){var n=t.select(a,r,o);return e([a]),n}),{$condition:a,$a:r,$b:o},(function(t,e){var n=e[0];return{$condition:function(){return mn(n).toFloat()},$a:function(){return t.mul(n.cast(t.dtype))},$b:function(){return t.mul(n.logicalNot().cast(t.dtype))}}}))}}),Bs=function(t){return u(this,void 0,void 0,(function(){var e,n,r;return c(this,(function(o){switch(o.label){case 0:return[4,(e=je(t,"condition","whereAsync","bool")).data()];case 1:return n=o.sent(),r=no(e.shape,n),t!==e&&e.dispose(),[2,r]}}))}))},Ls=Ze({add_:function(t,e){var n,r=je(t,"a","add"),o=je(e,"b","add");n=_t(r,o),r=n[0],o=n[1];var a=Tr(r.shape,o.shape);return Ot.runKernelFunc((function(t){return t.add(r,o)}),{a:r,b:o},(function(t){return{a:function(){var e=t,n=Or(r.shape,a);return n.length>0&&(e=e.sum(n)),e.reshape(r.shape)},b:function(){var e=t,n=Or(o.shape,a);return n.length>0&&(e=e.sum(n)),e.reshape(o.shape)}}}),"Add")}}),Ws=Ze({addN_:function(t){E(Array.isArray(t),(function(){return"The argument passed to tf.addN() must be a list of tensors"})),E(t.length>=1,(function(){return"Must pass at least one tensor to tf.addN(), but got "+t.length}));var e=t.map((function(t,e){return je(t,"tensors"+e,"addN")})),n=e[0];e.forEach((function(t){if(t.dtype!==n.dtype)throw new Error("All tensors passed to tf.addN() must have the same dtype")})),e.forEach((function(t){if(!I(t.shape,n.shape))throw new Error("All tensors passed to tf.addN() must have the same shape")}));var r=e;return Ot.runKernelFunc((function(t){return t.addN(e)}),r,(function(t){var n={};return e.forEach((function(e,r){n[r]=function(){return t.clone()}})),n}),"AddN")}}),Us=Ze({addStrict_:function(t,e){var n=je(t,"a","addStrict"),r=je(e,"b","addStrict");return C(n.shape,r.shape,"Error in addStrict: "),n.add(r)}}),js=Ze({atan2_:function(t,e){var n,r=je(t,"a","atan2"),o=je(e,"b","atan2");n=_t(r,o),r=n[0],o=n[1];var a=Tr(r.shape,o.shape);return Ot.runKernelFunc((function(t,e){var n=t.atan2(r,o);return e([r,o]),n}),{$a:r,$b:o},(function(t,e){var n=e[0],r=e[1];return{$a:function(){var e=Ls(n.square(),r.square()),o=t.mul(r.div(e)),i=Or(n.shape,a);return i.length>0&&(o=o.sum(i)),o.reshape(n.shape)},$b:function(){var e=Ls(n.square(),r.square()),o=ns(t.mul(n.div(e))),i=Or(r.shape,a);return i.length>0&&(o=o.sum(i)),o.reshape(r.shape)}}}))}}),zs=Ze({div_:function(t,e){var n,r=je(t,"a","div"),o=je(e,"b","div");if(n=_t(r,o),r=n[0],o=n[1],"int32"===r.dtype&&"int32"===o.dtype)return Hs(r,o);var a=Tr(r.shape,o.shape);return Ot.runKernelFunc((function(t,e){var n=t.realDivide(r,o);return e([r,o]),n}),{a:r,b:o},(function(t,e){var n=e[0],r=e[1];return{a:function(){var e=t.div(r.toFloat()),o=Or(n.shape,a);return o.length>0?e.sum(o).reshape(n.shape):e},b:function(){var e=t.mul(n.toFloat()),o=Or(r.shape,a);o.length>0&&(e=e.sum(o).reshape(r.shape));var i=r.square();return e.div(i.toFloat()).neg()}}}),"Div")}}),Vs=Ze({divNoNan_:function(t,e){var n,r=je(t,"a","div"),o=je(e,"b","div");r=(n=_t(r,o))[0],o=n[1];var a=zs(r,o),i=mn(a),s=o.equal(i);return Ps(s,i,a)}}),Gs=Ze({divStrict_:function(t,e){var n=je(t,"a","div"),r=je(e,"b","div");return C(n.shape,r.shape,"Error in divideStrict: "),n.div(r)}}),Hs=Ze({floorDiv_:function(t,e){var n,r=je(t,"a","floorDiv"),o=je(e,"b","floorDiv");n=_t(r,o),r=n[0],o=n[1];var a=Tr(r.shape,o.shape);return Ot.runKernelFunc((function(t,e){var n=t.floorDiv(r,o);return e([r,o]),n}),{a:r,b:o},(function(t,e){var n=e[0],r=e[1];return{a:function(){var e=t.div(r.toFloat()),o=Or(n.shape,a);return o.length>0?e.sum(o).reshape(n.shape):e},b:function(){var e=t.mul(n.toFloat()),o=Or(r.shape,a);o.length>0&&(e=e.sum(o).reshape(r.shape));var i=r.square();return e.div(i.toFloat()).neg()}}}),"FloorDiv")}}),qs=Ze({maximum_:function(t,e){var n,r=je(t,"a","maximum"),o=je(e,"b","maximum");return n=_t(r,o),r=n[0],o=n[1],"bool"===r.dtype&&(r=r.toInt(),o=o.toInt()),Tr(r.shape,o.shape),Ot.runKernelFunc((function(t,e){var n=t.maximum(r,o);return e([r,o]),n}),{$a:r,$b:o},(function(t,e){var n=e[0],r=e[1];return{$a:function(){return t.mul(n.greaterEqual(r).toFloat())},$b:function(){return t.mul(n.less(r).toFloat())}}}))}}),Ks=Ze({maximumStrict_:function(t,e){var n=je(t,"a","maximumStrict"),r=je(e,"b","maximumStrict");return C(n.shape,r.shape,"Error in maximumStrict: "),n.maximum(r)}}),Xs=Ze({minimum_:function(t,e){var n,r=je(t,"a","minimum"),o=je(e,"b","minimum");return n=_t(r,o),r=n[0],o=n[1],"bool"===r.dtype&&(r=r.toInt(),o=o.toInt()),Tr(r.shape,o.shape),Ot.runKernelFunc((function(t,e){var n=t.minimum(r,o);return e([r,o]),n}),{$a:r,$b:o},(function(t,e){var n=e[0],r=e[1];return{$a:function(){return t.mul(n.lessEqual(r).toFloat())},$b:function(){return t.mul(n.greater(r).toFloat())}}}))}}),$s=Ze({minimumStrict_:function(t,e){var n=je(t,"a","minimumStrict"),r=je(e,"b","minimumStrict");return C(n.shape,r.shape,"Error in minimumStrict: "),n.minimum(r)}}),Ys=Ze({mod_:function(t,e){var n,r=je(t,"a","mod"),o=je(e,"b","mod");n=_t(r,o),r=n[0],o=n[1];var a=Tr(r.shape,o.shape);return Ot.runKernelFunc((function(t,e){var n=t.mod(r,o);return e([r,o]),n}),{$a:r,$b:o},(function(t,e){var n=e[0],r=e[1];return{$a:function(){var e=Or(n.shape,a);return e.length>0?t.sum(e).reshape(n.shape):t},$b:function(){var e=t.mul(n.div(r).floor().neg()),o=Or(r.shape,a);return o.length>0?e.sum(o).reshape(r.shape):e}}}))}}),Js=Ze({modStrict_:function(t,e){var n=je(t,"a","modStrict"),r=je(e,"b","modStrict");return C(n.shape,r.shape,"Error in modStrict: "),n.mod(r)}}),Qs=Ze({mul_:function(t,e){var n,r=je(t,"a","mul"),o=je(e,"b","mul");n=_t(r,o),r=n[0],o=n[1];var a=Tr(r.shape,o.shape);return Ot.runKernelFunc((function(t,e){var n=t.multiply(r,o);return e([r,o]),n}),{a:r,b:o},(function(t,e){var n=e[0],r=e[1];return{a:function(){var e=t.mul(r.toFloat()),o=Or(n.shape,a);return o.length>0?e.sum(o).reshape(n.shape):e},b:function(){var e=t.mul(n.toFloat()),o=Or(r.shape,a);return o.length>0?e.sum(o).reshape(r.shape):e}}}),"Mul")}}),Zs=Ze({mulStrict_:function(t,e){var n=je(t,"a","mul"),r=je(e,"b","mul");return C(n.shape,r.shape,"Error in multiplyStrict: "),n.mul(r)}}),tu=Ze({pow_:function(t,e){var n=je(t,"base","pow"),r=je(e,"exp","pow"),o=Tr(n.shape,r.shape);return t=n.cast(Et(n.dtype,r.dtype)),e=r.cast(Et(n.dtype,r.dtype)),Ot.runKernelFunc((function(t,e){var o=t.pow(n,r);return e([n,r,o]),o}),{$base:n,$exp:r},(function(t,e){var n=e[0],r=e[1],a=e[2];return{$base:function(){var e=r.toFloat(),a=t.mul(e.mul(n.pow(e.sub(an(1))))),i=Or(n.shape,o);return i.length>0&&(a=a.sum(i)),a.reshape(n.shape)},$exp:function(){var e=n.greater(0),i=n.log().where(e,mn(n)),s=t.mul(a.mul(i)),u=Or(r.shape,o);return u.length>0&&(s=s.sum(u)),s.reshape(r.shape)}}}))}}),eu=Ze({powStrict_:function(t,e){return C(t.shape,e.shape,"Error in powStrict: "),t.pow(e)}}),nu=Ze({squaredDifference_:function(t,e){var n,r=je(t,"a","squaredDifference"),o=je(e,"b","squaredDifference");return n=_t(r,o),r=n[0],o=n[1],Tr(r.shape,o.shape),Ot.runKernelFunc((function(t,e){var n=t.squaredDifference(r,o);return e([r,o]),n}),{$a:r,$b:o},(function(t,e){var n=e[0],r=e[1],o=an(2);return{$a:function(){return t.mul(n.sub(r).mul(o))},$b:function(){return t.mul(r.sub(n).mul(o))}}}))}}),ru=Ze({squaredDifferenceStrict_:function(t,e){var n=je(t,"a","squaredDifferenceStrict"),r=je(e,"b","squaredDifferenceStrict");return C(n.shape,r.shape,"Error in squaredDifferenceStrict: "),n.squaredDifference(r)}}),ou=Ze({sub_:function(t,e){var n,r=je(t,"a","sub"),o=je(e,"b","sub");n=_t(r,o),r=n[0],o=n[1];var a=Tr(r.shape,o.shape);return Ot.runKernelFunc((function(t){return t.subtract(r,o)}),{a:r,b:o},(function(t){return{a:function(){var e=t,n=Or(r.shape,a);return n.length>0&&(e=e.sum(n)),e.reshape(r.shape)},b:function(){var e=t,n=Or(o.shape,a);return n.length>0&&(e=e.sum(n)),e.neg().reshape(o.shape)}}}),"Sub")}}),au=Ze({subStrict_:function(t,e){var n=je(t,"a","subStrict"),r=je(e,"b","subStrict");return C(n.shape,r.shape,"Error in subStrict: "),n.sub(r)}}),iu=Ze({equal_:function(t,e){var n,r=je(t,"a","equal"),o=je(e,"b","equal");return n=_t(r,o),r=n[0],o=n[1],Tr(r.shape,o.shape),Ot.runKernelFunc((function(t){return t.equal(r,o)}),{$a:r,$b:o})}}),su=Ze({equalStrict_:function(t,e){var n=je(t,"a","equalStrict"),r=je(e,"b","equalStrict");return C(n.shape,r.shape,"Error in equalStrict: "),n.equal(r)}}),uu=Ze({greater_:function(t,e){var n,r=je(t,"a","greater"),o=je(e,"b","greater");return n=_t(r,o),r=n[0],o=n[1],Tr(r.shape,o.shape),Ot.runKernelFunc((function(t){return t.greater(r,o)}),{$a:r,$b:o})}}),cu=Ze({greaterEqual_:function(t,e){var n,r=je(t,"a","greaterEqual"),o=je(e,"b","greaterEqual");return n=_t(r,o),r=n[0],o=n[1],Tr(r.shape,o.shape),Ot.runKernelFunc((function(t,e){var n=t.greaterEqual(r,o);return e([r,o]),n}),{$a:r,$b:o},(function(t,e){var n=e[0],r=e[1];return{$a:function(){return mn(n)},$b:function(){return mn(r)}}}))}}),lu=Ze({greaterEqualStrict_:function(t,e){var n=je(t,"a","greaterEqualStrict"),r=je(e,"b","greaterEqualStrict");return C(n.shape,r.shape,"Error in greaterEqualStrict: "),n.greaterEqual(r)}}),fu=Ze({greaterStrict_:function(t,e){var n=je(t,"a","greaterStrict"),r=je(e,"b","greaterStrict");return C(n.shape,r.shape,"Error in greaterStrict: "),n.greater(r)}}),hu=Ze({less_:function(t,e){var n,r=je(t,"a","less"),o=je(e,"b","less");return n=_t(r,o),r=n[0],o=n[1],Tr(r.shape,o.shape),Ot.runKernelFunc((function(t){return t.less(r,o)}),{$a:r,$b:o})}}),pu=Ze({lessEqual_:function(t,e){var n,r=je(t,"a","lessEqual"),o=je(e,"b","lessEqual");return n=_t(r,o),r=n[0],o=n[1],Tr(r.shape,o.shape),Ot.runKernelFunc((function(t){return t.lessEqual(r,o)}),{$a:r,$b:o})}}),du=Ze({lessEqualStrict_:function(t,e){var n=je(t,"a","lessEqualStrict"),r=je(e,"b","lessEqualStrict");return C(n.shape,r.shape,"Error in lessEqualStrict: "),n.lessEqual(r)}}),vu=Ze({lessStrict_:function(t,e){var n=je(t,"a","lessStrict"),r=je(e,"b","lessStrict");return C(n.shape,r.shape,"Error in lessStrict: "),n.less(r)}}),mu=Ze({notEqual_:function(t,e){var n,r=je(t,"a","notEqual"),o=je(e,"b","notEqual");return n=_t(r,o),r=n[0],o=n[1],Tr(r.shape,o.shape),Ot.runKernelFunc((function(t){return t.notEqual(r,o)}),{$a:r,$b:o})}}),gu=Ze({notEqualStrict_:function(t,e){var n=je(t,"a","notEqualStrict"),r=je(e,"b","notEqualStrict");return C(n.shape,r.shape,"Error in notEqualStrict: "),n.notEqual(r)}});function yu(t,e){for(var n=[],r=t;r<e;++r)n.push(r);return n}function bu(t){for(var e=[],n=0;n<t.length;++n)for(var r=0;r<t[n].length;++r)e.push(t[n][r]);return e}var xu=Ze({gather_:function(t,e,n){void 0===n&&(n=0);var r=je(t,"x","gather"),o=je(e,"indices","gather","int32");n=F(n,r.shape)[0];var a=function(t,e,n){for(var r=t.shape[n],o=[],a=1,i=1,s=0;s<n;s++)o.push(t.shape[s]),a*=t.shape[s];for(s=0;s<e.rank;s++)o.push(e.shape[s]);for(s=n+1;s<t.rank;s++)o.push(t.shape[s]),i*=t.shape[s];return{batchSize:a,sliceSize:i,dimSize:r,outputShape:o}}(r,o,n);return Ot.runKernelFunc((function(t,e){var a=t.gather(r,o.flatten(),n);return e([o]),a}),{$x:r},(function(t,e){var o=e[0];return{$x:function(){var e=r.shape,a=o.size,i=e.slice(0,n),s=i.length,u=e.slice(n,e.length).slice(1),c=u.length,l=yu(0,s),f=yu(s+1,s+1+c),h=bu([i,[a],u]),p=t.reshape(h),d=o.reshape([a]),v=bu([[s],l,f]),m=p.transpose(v),g=wu(m,d,r.shape[n]),y=$e(v);return g.transpose(y)}}})).reshape(a.outputShape)}}),wu=Ze({unsortedSegmentSum_:function(t,e,n){var r=je(t,"x","unsortedSegmentSum"),o=je(e,"segmentIds","unsortedSegmentSum","int32");return E(S(n),(function(){return"numSegments must be of dtype int"})),Ot.runKernelFunc((function(t,e){var a=t.unsortedSegmentSum(r,o,n);return e([o]),a}),{$x:r},(function(t,e){var n=e[0];return{$x:function(){return function(t,e){for(var n=qs(e,mn(e)),r=xu(t,n),o=cu(e,an(0,"int32")),a=r.rank-o.rank,i=0;i<a;++i)o=zn(o,i+1);o=Ds(o,fn(r.shape,"bool"));var s=mn(r);return Ps(o,r,s)}(t,n)}}}))}});function Eu(t,e,n,r,o,a,i){void 0===a&&(a="NHWC"),E(t.length===e.rank,(function(){return"Length of inShape ("+t.length+") and rank of dy ("+e.rank+") must match"}));var s=t,u=e,c=!1;3===e.rank&&(c=!0,u=e.as4D(1,e.shape[0],e.shape[1],e.shape[2]),s=[1,t[0],t[1],t[2]]),E(4===s.length,(function(){return"Error in conv2dDerInput: inShape must be length 4, but got length "+s.length+"."})),E(4===u.rank,(function(){return"Error in conv2dDerInput: dy must be rank 4, but got rank "+u.rank})),E(4===n.rank,(function(){return"Error in conv2dDerInput: filter must be rank 4, but got rank "+n.rank}));var l="NHWC"===a?s[3]:s[1],f="NHWC"===a?u.shape[3]:u.shape[1];E(l===n.shape[2],(function(){return"Error in conv2dDerInput: depth of input ("+l+") must match input depth for filter "+n.shape[2]+"."})),E(f===n.shape[3],(function(){return"Error in conv2dDerInput: depth of output ("+f+") must match output depth for filter "+n.shape[3]+"."})),null!=i&&E(S(o),(function(){return"Error in conv2dDerInput: pad must be an integer when using, dimRoundingMode "+i+" but got pad "+o+"."}));var h=Vr(a),p=Fr(s,n.shape,r,1,o,i,!1,h),d=Ot.runKernelFunc((function(t,e){var r=t.conv2dDerInput(u,n,p);return e([n,u]),r}),{dy4D:u,filter:n},(function(t,e){var n=e[0],s=e[1];return{dy4D:function(){return Ru(t,n,r,o,a,1,i)},filter:function(){return Su(t,s,n.shape,r,o,a,i)}}}));return c?d.as3D(d.shape[1],d.shape[2],d.shape[3]):d}function Cu(t){var e=function(t){return"number"==typeof t?[t,t,t]:2===t.length?[t[0],t[1],1]:t}(t),n=e[0],r=e[1],o=e[2];return 1===n&&1===r&&1===o}function _u(t,e,n,r,o){E(t.length===e.rank,(function(){return"Length of inShape ("+t.length+") and rank of dy ("+e.rank+") must match"}));var a=t,i=e,s=!1;4===e.rank&&(s=!0,i=e.as5D(1,e.shape[0],e.shape[1],e.shape[2],e.shape[3]),a=[1,t[0],t[1],t[2],t[3]]);var u=a[4],c=i.shape[4];E(5===a.length,(function(){return"Error in conv3dDerInput: inShape must be length 5, but got length "+a.length+"."})),E(5===i.rank,(function(){return"Error in conv3dDerInput: dy must be rank 5, but got rank "+i.rank})),E(5===n.rank,(function(){return"Error in conv3dDerInput: filter must be rank 5, but got rank "+n.rank})),E(u===n.shape[3],(function(){return"Error in conv3dDerInput: depth of input ("+u+") must match input depth for filter "+n.shape[3]+"."})),E(c===n.shape[4],(function(){return"Error in conv3dDerInput: depth of output ("+c+") must match output depth for filter "+n.shape[4]+"."}));var l=Mr(a,n.shape,r,1,o),f=Ot.runKernelFunc((function(t){return t.conv3dDerInput(i,n,l)}),{dy5D:i});return s?f.as4D(f.shape[1],f.shape[2],f.shape[3],f.shape[4]):f}var ku=Ze({conv1d_:function(t,e,n,r,o,a,i){void 0===o&&(o="NWC"),void 0===a&&(a=1);var s=je(t,"x","conv1d"),u=je(e,"filter","conv1d"),c=s,l=!1;2===s.rank&&(l=!0,c=s.as3D(1,s.shape[0],s.shape[1])),E(3===c.rank,(function(){return"Error in conv1d: input must be rank 3, but got rank "+c.rank+"."})),E(3===u.rank,(function(){return"Error in conv1d: filter must be rank 3, but got rank "+u.rank+"."})),null!=i&&E(S(r),(function(){return"Error in conv1d: pad must be an integer when using, dimRoundingMode "+i+" but got pad "+r+"."})),E(c.shape[2]===u.shape[1],(function(){return"Error in conv1d: depth of input ("+c.shape[2]+") must match input depth for filter "+u.shape[1]+"."})),E(zr(n,a),(function(){return"Error in conv1D: Either stride or dilation must be 1. Got stride "+n+" and dilation '"+a+"'"})),E("NWC"===o,(function(){return"Error in conv1d: got dataFormat of "+o+" but only NWC is currently supported."}));var f=u.as4D(1,u.shape[0],u.shape[1],u.shape[2]),h=c.as4D(c.shape[0],1,c.shape[1],c.shape[2]),p=Ru(h,f,[1,n],r,"NHWC",[1,a],i);return l?p.as2D(p.shape[2],p.shape[3]):p.as3D(p.shape[0],p.shape[2],p.shape[3])}}),Ru=Ze({conv2d_:function(t,e,n,r,o,a,i){void 0===o&&(o="NHWC"),void 0===a&&(a=[1,1]);var s=je(t,"x","conv2d"),u=je(e,"filter","conv2d"),c=s,l=!1;3===s.rank&&(l=!0,c=s.as4D(1,s.shape[0],s.shape[1],s.shape[2])),E(4===c.rank,(function(){return"Error in conv2d: input must be rank 4, but got rank "+c.rank+"."})),E(4===u.rank,(function(){return"Error in conv2d: filter must be rank 4, but got rank "+u.rank+"."})),null!=i&&E(S(r),(function(){return"Error in conv2d: pad must be an integer when using, dimRoundingMode "+i+" but got pad "+r+"."}));var f="NHWC"===o?c.shape[3]:c.shape[1];E(f===u.shape[2],(function(){return"Error in conv2d: depth of input ("+f+") must match input depth for filter "+u.shape[2]+"."})),E(zr(n,a),(function(){return"Error in conv2D: Either strides or dilations must be 1. Got strides "+n+" and dilations '"+a+"'"}));var h=Vr(o),p=Fr(c.shape,u.shape,n,a,r,i,!1,h),d=[u,c],v=Ot.runKernelFunc((function(t,e){var n=t.conv2d(c,u,p);return e([u,c]),n}),{x:c,filter:u},(function(t,e){var i=e,s=i[0],u=i[1];return E(jr(a),(function(){return"Error in gradient of conv2D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '"+a+"'"})),{x:function(){return Au(u.shape,t,s,n,r,o)},filter:function(){return Su(u,t,s.shape,n,r,o)}}}),"Conv2D",p,d);return l?v.as3D(v.shape[1],v.shape[2],v.shape[3]):v}}),Iu=Ze({conv3d_:function(t,e,n,r,o,a){void 0===o&&(o="NDHWC"),void 0===a&&(a=[1,1,1]);var i=je(t,"x","conv3d"),s=je(e,"filter","conv3d"),u=i,c=!1;4===i.rank&&(c=!0,u=i.as5D(1,i.shape[0],i.shape[1],i.shape[2],i.shape[3])),E(5===u.rank,(function(){return"Error in conv3d: input must be rank 5, but got rank "+u.rank+"."})),E(5===s.rank,(function(){return"Error in conv3d: filter must be rank 5, but got rank "+s.rank+"."})),E(u.shape[4]===s.shape[3],(function(){return"Error in conv3d: depth of input ("+u.shape[4]+") must match input depth for filter "+s.shape[3]+"."})),E(function(t,e){return Cu(t)||Cu(e)}(n,a),(function(){return"Error in conv3D: Either strides or dilations must be 1. Got strides "+n+" and dilations '"+a+"'"})),E("NDHWC"===o,(function(){return"Error in conv3d: got dataFormat of "+o+" but only NDHWC is currently supported."}));var l=Mr(u.shape,s.shape,n,a,r),f=Ot.runKernelFunc((function(t,e){var n=t.conv3d(u,s,l);return e([u,s]),n}),{x:u,$filter:s},(function(t,e){E(Cu(a),(function(){return"Error in gradient of conv3D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '"+a+"'"}));var o=e[0],i=e[1];return{x:function(){return _u(o.shape,t,i,n,r)},$filter:function(){return function(t,e,n,r,o){var a=t;4===t.rank&&(a=t.as5D(1,t.shape[0],t.shape[1],t.shape[2],t.shape[3]));var i=e;4===i.rank&&(i=e.as5D(1,e.shape[0],e.shape[1],e.shape[2],e.shape[3])),E(5===a.rank,(function(){return"Error in conv3dDerFilter: input must be rank 5, but got shape "+a.shape+"."})),E(5===i.rank,(function(){return"Error in conv3dDerFilter: dy must be rank 5, but got shape "+i.shape+"."})),E(5===n.length,(function(){return"Error in conv3dDerFilter: filterShape must be length 5, but got "+n+"."})),E(a.shape[4]===n[3],(function(){return"Error in conv3dDerFilter: depth of input "+a.shape[4]+") must match input depth in filter ("+n[3]+"."})),E(i.shape[4]===n[4],(function(){return"Error in conv3dDerFilter: depth of dy ("+i.shape[4]+") must match output depth for filter ("+n[4]+")."}));var s=Mr(a.shape,n,r,1,o);return Ot.runKernelFunc((function(t){return t.conv3dDerFilter(a,i,s)}),{x5D:a,dy5D:i})}(o,t,i.shape,n,r)}}}));return c?f.as4D(f.shape[1],f.shape[2],f.shape[3],f.shape[4]):f}}),Su=Ze({conv2dDerFilter_:function(t,e,n,r,o,a,i){void 0===a&&(a="NHWC");var s=t;3===t.rank&&(s=t.as4D(1,t.shape[0],t.shape[1],t.shape[2]));var u=e;3===u.rank&&(u=e.as4D(1,e.shape[0],e.shape[1],e.shape[2])),E(4===s.rank,(function(){return"Error in conv2dDerFilter: input must be rank 4, but got shape "+s.shape+"."})),E(4===u.rank,(function(){return"Error in conv2dDerFilter: dy must be rank 4, but got shape "+u.shape+"."})),E(4===n.length,(function(){return"Error in conv2dDerFilter: filterShape must be length 4, but got "+n+"."}));var c="NHWC"===a?s.shape[3]:s.shape[1],l="NHWC"===a?u.shape[3]:u.shape[1];E(c===n[2],(function(){return"Error in conv2dDerFilter: depth of input "+c+") must match input depth in filter ("+n[2]+"."})),E(l===n[3],(function(){return"Error in conv2dDerFilter: depth of dy ("+l+") must match output depth for filter ("+n[3]+")."})),null!=i&&E(S(o),(function(){return"Error in conv2dDerFilter: pad must be an integer when using, dimRoundingMode "+i+" but got pad "+o+"."}));var f=Vr(a),h=Fr(s.shape,n,r,1,o,i,!1,f);return Ot.runKernelFunc((function(t){return t.conv2dDerFilter(s,u,h)}),{x4D:s,dy4D:u})}}),Au=Ze({conv2dDerInput_:Eu}),Ou=Ze({depthwiseConv2d_:function(t,e,n,r,o,a,i){void 0===o&&(o="NHWC"),void 0===a&&(a=[1,1]);var s=je(t,"x","depthwiseConv2d"),u=je(e,"filter","depthwiseConv2d"),c=s,l=!1;3===s.rank&&(l=!0,c=s.as4D(1,s.shape[0],s.shape[1],s.shape[2])),E(4===c.rank,(function(){return"Error in depthwiseConv2d: input must be rank 4, but got rank "+c.rank+"."})),E(4===u.rank,(function(){return"Error in depthwiseConv2d: filter must be rank 4, but got rank "+u.rank+"."})),E(c.shape[3]===u.shape[2],(function(){return"Error in depthwiseConv2d: number of input channels ("+c.shape[3]+") must match the inChannels dimension in filter "+u.shape[2]+"."})),null==a&&(a=[1,1]),E(zr(n,a),(function(){return"Error in depthwiseConv2d: Either strides or dilations must be 1. Got strides "+n+" and dilations '"+a+"'"})),null!=i&&E(S(r),(function(){return"Error in depthwiseConv2d: pad must be an integer when using, dimRoundingMode "+i+" but got pad "+r+"."}));var f=Fr(c.shape,u.shape,n,a,r,i,!0),h=[c,u],p=Ot.runKernelFunc((function(t,e){var n=t.depthwiseConv2D(c,u,f);return e([c,u]),n}),{x:c,filter:u},(function(t,e){E(jr(a),(function(){return"Error in gradient of depthwiseConv2d: dilation rates greater than 1 are not yet supported. Got dilations '"+a+"'"}));var n=e[0],r=e[1];return{x:function(){return Tu(n.shape,t,r,f)},filter:function(){return Du(n,t,r.shape,f)}}}),"DepthwiseConv2dNative",f,h);return l?p.as3D(p.shape[1],p.shape[2],p.shape[3]):p}}),Tu=Ze({depthwiseConv2dDerInput_:function(t,e,n,r){var o=e,a=!1;3===e.rank&&(a=!0,o=e.as4D(1,e.shape[0],e.shape[1],e.shape[2]));var i=Ot.runKernelFunc((function(t){return t.depthwiseConv2DDerInput(o,n,r)}),{dy4D:o});return a?i.as3D(i.shape[1],i.shape[2],i.shape[3]):i}}),Du=Ze({depthwiseConv2dDerFilter_:function(t,e,n,r){var o=t;3===t.rank&&(o=t.as4D(1,t.shape[0],t.shape[1],t.shape[2]));var a=e;return 3===a.rank&&(a=e.as4D(1,e.shape[0],e.shape[1],e.shape[2])),Ot.runKernelFunc((function(t){return t.depthwiseConv2DDerFilter(o,a,r)}),{x4D:o,dy4D:a})}}),Nu=Ze({separableConv2d_:function(t,e,n,r,o,a,i){void 0===a&&(a=[1,1]),void 0===i&&(i="NHWC");var s=je(t,"x","separableConv2d"),u=je(e,"depthwiseFilter","separableConv2d"),c=je(n,"pointwiseFilter","separableConv2d"),l=s,f=!1;if(3===s.rank&&(f=!0,l=s.as4D(1,s.shape[0],s.shape[1],s.shape[2])),"NCHW"===i)throw new Error("separableConv2d currently does not support dataFormat NCHW; only NHWC is supported");E(4===l.rank,(function(){return"Error in separableConv2d: input must be rank 4, but got rank "+l.rank+"."})),E(4===u.rank,(function(){return"Error in separableConv2d: depthwise filter must be rank 4, but got rank "+u.rank+"."})),E(4===c.rank,(function(){return"Error in separableConv2d: pointwise filter must be rank 4, but got rank "+u.rank+"."})),E(1===c.shape[0],(function(){return"Error in separableConv2d: the first dimension of pointwise filter must be 1, but got "+c.shape[0]+"."})),E(1===c.shape[1],(function(){return"Error in separableConv2d: the second dimension of pointwise filter must be 1, but got "+c.shape[1]+"."}));var h=u.shape[2],p=u.shape[3];E(c.shape[2]===h*p,(function(){return"Error in separableConv2d: the third dimension of pointwise filter must be "+h*p+", but got "+c.shape[2]+"."}));var d=Ou(l,u,r,o,i,a),v=Ru(d,c,1,"valid",i);return f?v.as3D(v.shape[1],v.shape[2],v.shape[3]):v}}),Fu=Ze({conv2dTranspose_:function(t,e,n,r,o,a){return Eu(n,je(t,"x","conv2dTranspose"),je(e,"filter","conv2dTranspose"),r,o,"NHWC",a)}}),Mu=Ze({conv3dTranspose_:function(t,e,n,r,o){return _u(n,je(t,"x","conv3dTranspose"),je(e,"filter","conv3dTranspose"),r,o)}}),Pu=Ze({matMul_:function(t,e,n,r){var o;void 0===n&&(n=!1),void 0===r&&(r=!1);var a=je(t,"a","matMul"),i=je(e,"b","matMul");o=_t(a,i),a=o[0],i=o[1];var s=n?a.shape[a.rank-2]:a.shape[a.rank-1],u=r?i.shape[i.rank-1]:i.shape[i.rank-2],c=n?a.shape[a.rank-1]:a.shape[a.rank-2],l=r?i.shape[i.rank-2]:i.shape[i.rank-1],f=a.shape.slice(0,-2),h=i.shape.slice(0,-2),p=R(f),d=R(h);E(a.rank>=2&&i.rank>=2&&a.rank===i.rank,(function(){return"Error in matMul: inputs must have the same rank of at least 2, got ranks "+a.rank+" and "+i.rank+"."})),E(I(f,h),(function(){return"Error in matMul: outer dimensions ("+f+") and ("+h+") of Tensors with shapes "+a.shape+" and "+i.shape+" must match."})),E(s===u,(function(){return"Error in matMul: inner shapes ("+s+") and ("+u+") of Tensors with shapes "+a.shape+" and "+i.shape+" and transposeA="+n+" and transposeB="+r+" must match."}));var v=a.shape.slice(0,-2).concat([c,l]),m=n?a.as3D(p,s,c):a.as3D(p,c,s),g=r?i.as3D(d,l,u):i.as3D(d,u,l),y={transposeA:n,transposeB:r};return Ot.runKernelFunc((function(t,e){var o=t.batchMatMul(m,g,n,r);return e([m,g]),o}),{a:m,b:g},(function(t,e){var o=e,a=o[0],i=o[1];return n||r?!n&&r?{a:function(){return t.matMul(i,!1,!1)},b:function(){return t.matMul(a,!0,!1)}}:n&&!r?{a:function(){return i.matMul(t,!1,!0)},b:function(){return a.matMul(t,!1,!1)}}:{a:function(){return i.matMul(t,!0,!0)},b:function(){return t.matMul(a,!0,!0)}}:{a:function(){return t.matMul(i,!1,!0)},b:function(){return a.matMul(t,!0,!1)}}}),"BatchMatMul",y).reshape(v)}}),Bu=Ze({dot_:function(t,e){var n=je(t,"t1","dot"),r=je(e,"t2","dot");E(!(1!==n.rank&&2!==n.rank||1!==r.rank&&2!==r.rank),(function(){return"Error in dot: inputs must all be rank 1 or 2, but got ranks "+n.rank+" and "+r.rank+"."}));var o=1===n.rank?n.size:n.shape[1],a=1===r.rank?r.size:r.shape[0];return E(o===a,(function(){return"Error in dot: inner dimensions of inputs must match, but got "+o+" and "+a+"."})),1===n.rank&&1===r.rank?n.as2D(1,-1).matMul(r.as2D(-1,1)).asScalar():1===n.rank&&2===r.rank?n.as2D(1,-1).matMul(r.as2D(r.shape[0],r.shape[1])).as1D():2===n.rank&&1===r.rank?n.matMul(r.as2D(-1,1)).as1D():n.matMul(r.as2D(r.shape[0],r.shape[1]))}}),Lu=Ze({outerProduct_:function(t,e){var n=je(t,"v1","outerProduct"),r=je(e,"v2","outerProduct");return E(1===n.rank&&1===r.rank,(function(){return"Error in outerProduct: inputs must be rank 1, but got ranks "+n.rank+" and "+r.rank+"."})),n.as2D(-1,1).matMul(r.as2D(1,-1))}}),Wu=Ze({reverse_:function(t,e){var n=je(t,"x","reverse");if(0===n.rank)return n.clone();var r=F(e,n.shape);return Ot.runKernelFunc((function(t){return t.reverse(n,r)}),{$x:n},(function(t){return{$x:function(){return t.reverse(r)}}})).reshapeAs(n)}}),Uu=Ze({reverse1d_:function(t){var e=je(t,"x","reverse");return E(1===e.rank,(function(){return"Error in reverse1D: x must be rank 1 but got rank "+e.rank+"."})),Wu(e,0)}}),ju=Ze({reverse2d_:function(t,e){var n=je(t,"x","reverse");return E(2===n.rank,(function(){return"Error in reverse2D: x must be rank 2 but got rank "+n.rank+"."})),Wu(n,e)}}),zu=Ze({reverse3d_:function(t,e){var n=je(t,"x","reverse");return E(3===n.rank,(function(){return"Error in reverse3D: x must be rank 3 but got rank "+n.rank+"."})),Wu(n,e)}}),Vu=Ze({reverse4d_:function(t,e){var n=je(t,"x","reverse");return E(4===n.rank,(function(){return"Error in reverse4D: x must be rank 4 but got rank "+n.rank+"."})),Wu(n,e)}});function Gu(t,e,n,r,o,a){var i=je(t,"x","maxPool"),s=i,u=!1;3===i.rank&&(u=!0,s=i.as4D(1,i.shape[0],i.shape[1],i.shape[2])),null==r&&(r=[1,1]),E(4===s.rank,(function(){return"Error in maxPool: input must be rank 4 but got rank "+s.rank+"."})),E(zr(n,r),(function(){return"Error in maxPool: Either strides or dilations must be 1. Got strides "+n+" and dilations '"+r+"'"})),null!=a&&E(S(o),(function(){return"Error in maxPool: pad must be an integer when using, dimRoundingMode "+a+" but got pad "+o+"."}));var c=Dr(s.shape,e,n,r,o,a);if(1===c.filterWidth&&1===c.filterHeight&&I(c.inShape,c.outShape))return i.clone();var l=[s],f=Ot.runKernelFunc((function(t,e){var n=t.maxPool(s,c);return e([s,n]),n}),{x:s},(function(t,a){var i=a[0],s=a[1];return{x:function(){return function(t,e,n,r,o,a,i,s){var u=je(t,"dy","maxPoolBackprop"),c=je(e,"input","maxPoolBackprop"),l=je(n,"output","maxPoolBackprop");E(c.rank===u.rank,(function(){return"Rank of input ("+c.rank+") does not match rank of dy ("+u.rank+")"})),null==a&&(a=[1,1]),E(zr(o,a),(function(){return"Error in maxPoolBackProp: Either strides or dilations must be 1. Got strides "+o+" and dilations '"+a+"'"})),E(4===u.rank,(function(){return"Error in maxPoolBackprop: dy must be rank 4 but got rank "+u.rank+"."})),E(4===c.rank,(function(){return"Error in maxPoolBackprop: input must be rank 4 but got rank "+c.rank+"."}));var f=Dr(c.shape,r,o,a,i,s);return Ot.runKernelFunc((function(t){return t.maxPoolBackprop(u,c,l,f)}),{$dy:u,$input:c})}(t,i,s,e,n,r,o)}}}),"MaxPool",c,l);return u?f.as3D(f.shape[1],f.shape[2],f.shape[3]):f}function Hu(t,e,n,r,o,a){var i=je(t,"x","avgPool","float32");null==r&&(r=[1,1]),E(zr(n,r),(function(){return"Error in avgPool: Either strides or dilations must be 1. Got strides "+n+" and dilations '"+r+"'"}));var s=i,u=!1;3===i.rank&&(u=!0,s=i.as4D(1,i.shape[0],i.shape[1],i.shape[2])),E(4===s.rank,(function(){return"Error in avgPool: x must be rank 4 but got rank "+s.rank+"."})),null!=a&&E(S(o),(function(){return"Error in avgPool: pad must be an integer when using, dimRoundingMode "+a+" but got pad "+o+"."}));var c=Dr(s.shape,e,n,r,o,a);if(1===c.filterWidth&&1===c.filterHeight&&I(c.inShape,c.outShape))return i.clone();var l=Ot.runKernelFunc((function(t){return t.avgPool(s,c)}),{x:s},(function(t){return{x:function(){return function(t,e,n,r,o,a){var i=je(t,"dy","avgPoolBackprop"),s=je(e,"input","avgPoolBackprop");E(s.rank===i.rank,(function(){return"Rank of input ("+s.rank+") does not match rank of dy ("+i.rank+")"})),null==o&&(o=[1,1]),E(zr(r,o),(function(){return"Error in avgPoolBackprop: Either strides or dilations must be 1. Got strides "+r+" and dilations '"+o+"'"}));var u=s,c=i,l=!1;3===s.rank&&(l=!0,u=s.as4D(1,s.shape[0],s.shape[1],s.shape[2]),c=i.as4D(1,i.shape[0],i.shape[1],i.shape[2])),E(4===c.rank,(function(){return"Error in avgPoolBackprop: dy must be rank 4 but got rank "+c.rank+"."})),E(4===u.rank,(function(){return"Error in avgPoolBackprop: input must be rank 4 but got rank "+u.rank+"."}));var f=Dr(u.shape,n,r,o,a),h=Ot.runKernelFunc((function(t){return t.avgPoolBackprop(c,u,f)}),{dy4D:c,input4D:u});return l?h.as3D(h.shape[1],h.shape[2],h.shape[3]):h}(t,s,e,n,r,o)}}}),"AvgPool",c);return l=l.cast(i.dtype),u?l.as3D(l.shape[1],l.shape[2],l.shape[3]):l}var qu=Ze({maxPool_:function(t,e,n,r,o){return Gu(t,e,n,1,r,o)}}),Ku=Ze({avgPool_:function(t,e,n,r,o){return Hu(t,e,n,1,r,o)}}),Xu=Ze({pool_:function(t,e,n,r,o,a){null==o&&(o=[1,1]),null==a&&(a=1),0===r&&(r="valid");var i=je(t,"x","maxPool"),s=i,u=!1;3===i.rank&&(u=!0,s=i.as4D(1,i.shape[0],i.shape[1],i.shape[2])),E(zr(a,o),(function(){return"Error in pool: Either strides or dilations must be 1. Got strides "+a+" and dilations '"+o+"'"}));var c,l=Dr(s.shape,e,a,o,r),f=[l.dilationHeight,l.dilationWidth];c="same"===r?function(t,e){var n=t.map((function(t,n){return t+(t-1)*(e[n]-1)})).map((function(t){return t-1})),r=n.map((function(t){return Math.floor(t/2)})),o=n.map((function(t,e){return t-r[e]}));return n.map((function(t,e){return[r[e],o[e]]}))}([l.filterHeight,l.filterWidth],f):[[0,0],[0,0]];var h=1===f[0]&&1===f[1],p=function(t,e,n){var r=n.map((function(t){return t[0]})),o=n.map((function(t){return t[1]})),a=t.concat(r,o),i=e.map((function(t,e){return(t-a[e]%t)%t})),s=o.map((function(t,e){return t+i[e]}));return[e.map((function(t,e){return[r[e],s[e]]})),e.map((function(t,e){return[0,i[e]]}))]}([l.inHeight,l.inWidth],f,c),d=p[0],v=p[1],m=h?r:"valid",g=h?s:nr(s,f,d),y=("avg"===n?function(){return Hu(g,e,a,1,m)}:function(){return Gu(g,e,a,1,m)})(),b=h?y:Pn(y,f,v);return u?b.as3D(b.shape[1],b.shape[2],b.shape[3]):b}}),$u=Ze({maxPool3d_:function(t,e,n,r,o,a,i){void 0===a&&(a="NDHWC");var s=je(t,"x","maxPool3d"),u=s,c=!1;4===s.rank&&(c=!0,u=s.as5D(1,s.shape[0],s.shape[1],s.shape[2],s.shape[3])),null==i&&(i=[1,1,1]),E(5===u.rank,(function(){return"Error in maxPool3d: x must be rank 5 but got rank "+u.rank+"."})),E("NDHWC"===a,(function(){return"Error in maxPool3d: Only NDHWC is currently supported, but got dataFormat of "+a})),E(zr(n,i),(function(){return"Error in maxPool3d: Either strides or dilations must be 1. Got strides "+n+" and dilations '"+i+"'"})),null!=o&&E(S(r),(function(){return"Error in maxPool3d: pad must be an integer when using, dimRoundingMode "+o+" but got pad "+r+"."}));var l=Nr(u.shape,e,n,i,r,o,a),f=Ot.runKernelFunc((function(t,e){var n=t.maxPool3d(u,l);return e([u,n]),n}),{x:u},(function(t,a){var s=a[0],u=a[1];return{x:function(){return function(t,e,n,r,o,a,i,s){var u=je(t,"dy","maxPool3dBackprop"),c=je(e,"input","maxPool3dBackprop"),l=je(n,"output","maxPool3dBackprop"),f=u,h=c,p=l,d=!1;4===c.rank&&(d=!0,f=u.as5D(1,u.shape[0],u.shape[1],u.shape[2],u.shape[3]),h=c.as5D(1,c.shape[0],c.shape[1],c.shape[2],c.shape[3]),p=l.as5D(1,l.shape[0],l.shape[1],l.shape[2],l.shape[3])),E(5===f.rank,(function(){return"Error in maxPool3dBackprop: dy must be rank 5 but got rank "+f.rank+"."})),E(5===h.rank,(function(){return"Error in maxPool3dBackprop: input must be rank 5 but got rank "+h.rank+"."})),E(5===p.rank,(function(){return"Error in maxPool3dBackprop: output must be rank 5 but got rank "+p.rank+"."})),null==a&&(a=[1,1,1]),E(zr(o,a),(function(){return"Error in maxPool3dBackprop: Either strides or dilations must be 1. Got strides "+o+" and dilations '"+a+"'"})),null!=s&&E(S(i),(function(){return"Error in maxPool3dBackprop: pad must be an integer when using, dimRoundingMode "+s+" but got pad "+i+"."}));var v=Nr(h.shape,r,o,a,i,s),m=Ot.runKernelFunc((function(t){return t.maxPool3dBackprop(f,h,p,v)}),{dy5D:f,input5D:h});return d?m.as4D(m.shape[1],m.shape[2],m.shape[3],m.shape[4]):m}(t,s,u,e,n,i,r,o)}}}));return c?f.as4D(f.shape[1],f.shape[2],f.shape[3],f.shape[4]):f}}),Yu=Ze({avgPool3d_:function(t,e,n,r,o,a,i){void 0===a&&(a="NDHWC");var s=je(t,"x","avgPool3d","float32"),u=s,c=!1;4===s.rank&&(c=!0,u=s.as5D(1,s.shape[0],s.shape[1],s.shape[2],s.shape[3])),null==i&&(i=[1,1,1]),E(5===u.rank,(function(){return"Error in avgPool3d: x must be rank 5 but got rank "+u.rank+"."})),E("NDHWC"===a,(function(){return"Error in avgPool3d: Only NDHWC is currently supported, but got dataFormat of "+a})),E(zr(n,i),(function(){return"Error in avgPool3d: Either strides or dilations must be 1. Got strides "+n+" and dilations '"+i+"'"})),null!=o&&E(S(r),(function(){return"Error in avgPool3d: pad must be an integer when using, dimRoundingMode "+o+" but got pad "+r+"."}));var l=Nr(u.shape,e,n,i,r,o,a),f=Ot.runKernelFunc((function(t){return t.avgPool3d(u,l)}),{x:u},(function(t){return{x:function(){return function(t,e,n,r,o,a,i){var s=je(t,"dy","avgPool3dBackprop"),u=je(e,"input","avgPool3dBackprop"),c=s,l=u,f=!1;4===u.rank&&(f=!0,c=s.as5D(1,s.shape[0],s.shape[1],s.shape[2],s.shape[3]),l=u.as5D(1,u.shape[0],u.shape[1],u.shape[2],u.shape[3])),E(5===c.rank,(function(){return"Error in avgPool3dBackprop: dy must be rank 5 but got rank "+c.rank+"."})),E(5===l.rank,(function(){return"Error in avgPool3dBackprop: input must be rank 5 but got rank "+l.rank+"."})),null==o&&(o=[1,1,1]),E(zr(r,o),(function(){return"Error in avgPool3dBackprop: Either strides or dilations must be 1. Got strides "+r+" and dilations '"+o+"'"})),null!=i&&E(S(a),(function(){return"Error in maxPool3dBackprop: pad must be an integer when using, dimRoundingMode "+i+" but got pad "+a+"."}));var h=Nr(l.shape,n,r,o,a,i),p=Ot.runKernelFunc((function(t){return t.avgPool3dBackprop(c,l,h)}),{dy5D:c,input5D:l});return f?p.as4D(p.shape[1],p.shape[2],p.shape[3],p.shape[4]):p}(t,u,e,n,i,r,o)}}}));return f=f.cast(u.dtype),c?f.as4D(f.shape[1],f.shape[2],f.shape[3],f.shape[4]):f}}),Ju=Ze({slice_:function(t,e,n){var r,o,a=je(t,"x","slice");if(0===a.rank)throw new Error("Slicing scalar is not possible");(r="number"==typeof e?[e].concat(new Array(a.rank-1).fill(0)):e.length<a.rank?e.concat(new Array(a.rank-e.length).fill(0)):e.slice()).forEach((function(t){E(-1!==t,(function(){return"slice() does not support negative begin indexing."}))})),o=(o=null==n?new Array(a.rank).fill(-1):"number"==typeof n?[n].concat(new Array(a.rank-1).fill(-1)):n.length<a.rank?n.concat(new Array(a.rank-n.length).fill(-1)):n).map((function(t,e){return t>=0?t:(E(-1===t,(function(){return"Negative size values should be exactly -1 but got "+t+" for the slice() size at index "+e+"."})),a.shape[e]-r[e])})),mr(a,r,o);var i=a.shape,s={begin:r,size:o};return Ot.runKernelFunc((function(t){return t.slice(a,r,o)}),{x:a},(function(t){for(var e=[],n=0;n<t.rank;n++)e.push([r[n],i[n]-r[n]-o[n]]);return{x:function(){return t.pad(e)}}}),"Slice",s)}}),Qu=Ze({slice1d_:function(t,e,n){var r=je(t,"x","slice1d");return E(1===r.rank,(function(){return"slice1d expects a rank-1 tensor, but got a rank-"+r.rank+" tensor"})),Ju(r,[e],[n])}}),Zu=Ze({slice2d_:function(t,e,n){var r=je(t,"x","slice2d");return E(2===r.rank,(function(){return"slice2d expects a rank-2 tensor, but got a rank-"+r.rank+" tensor"})),Ju(r,e,n)}}),tc=Ze({slice3d_:function(t,e,n){var r=je(t,"x","slice3d");return E(3===r.rank,(function(){return"slice3d expects a rank-3 tensor, but got a rank-"+r.rank+" tensor"})),Ju(r,e,n)}}),ec=Ze({slice4d_:function(t,e,n){var r=je(t,"x","slice4d");return E(4===r.rank,(function(){return"slice4d expects a rank-4 tensor, but got a rank-"+r.rank+" tensor"})),Ju(r,e,n)}});function nc(t,e,n,r,o){return e.rank<n.rank&&(e=e.reshape(qe(e.shape,r))),t.rank<n.rank&&(t=t.reshape(qe(t.shape,r))),{x:function(){var r=t.mul(n.equal(e).cast(t.dtype));return null==o?r:r.transpose(o)}}}var rc=Ze({all_:function(t,e,n){void 0===e&&(e=null),void 0===n&&(n=!1);var r=je(t,"x","all","bool"),o=F(e,r.shape),a=o,i=Xe(a,r.rank);null!=i&&(r=r.transpose(i),a=Ye(a.length,r.rank));var s=Ot.runKernelFunc((function(t){return t.all(r,a)}),{$x:r});if(n){var u=qe(s.shape,o);return s.reshape(u)}return s}}),oc=Ze({any_:function(t,e,n){void 0===e&&(e=null),void 0===n&&(n=!1);var r=je(t,"x","any","bool"),o=F(e,r.shape),a=o,i=Xe(a,r.rank);null!=i&&(r=r.transpose(i),a=Ye(a.length,r.rank));var s=Ot.runKernelFunc((function(t){return t.any(r,a)}),{$x:r});if(n){var u=qe(s.shape,o);return s.reshape(u)}return s}}),ac=Ze({argMax_:function(t,e){void 0===e&&(e=0);var n=je(t,"x","argMax");null==e&&(e=0);var r=F(e,n.shape),o=Xe(r,n.rank);null!=o&&(n=n.transpose(o),r=Ye(r.length,n.rank));var a={axis:r[0]},i=[n];return Ot.runKernelFunc((function(t,e){var o=t.argMax(n,r[0]);return e([n]),o}),{x:n},(function(t,e){var n=e[0];return{x:function(){return mn(n)}}}),"ArgMax",a,i)}}),ic=Ze({argMin_:function(t,e){void 0===e&&(e=0);var n=je(t,"x","argMin");null==e&&(e=0);var r=F(e,n.shape),o=Xe(r,n.rank);return null!=o&&(n=n.transpose(o),r=Ye(r.length,n.rank)),Ot.runKernelFunc((function(t,e){var o=t.argMin(n,r[0]);return e([n]),o}),{$x:n},(function(t,e){var n=e[0];return{$x:function(){return mn(n)}}}))}}),sc=Ze({logSumExp_:function(t,e,n){void 0===e&&(e=null),void 0===n&&(n=!1);var r=je(t,"x","logSumExp"),o=F(e,r.shape),a=r.max(o,!0),i=r.sub(a).exp().sum(o).log(),s=a.reshape(i.shape).add(i);if(n){var u=qe(s.shape,o);return s.reshape(u)}return s}}),uc=Ze({max_:function(t,e,n){void 0===e&&(e=null),void 0===n&&(n=!1);var r=je(t,"x","max"),o=r,a=F(e,r.shape),i=a,s=Xe(i,r.rank);null!=s&&(r=r.transpose(s),i=Ye(i.length,r.rank));var u=[r],c=Ot.runKernelFunc((function(t,e){var n=t.max(r,i);return e([o,n]),n}),{x:r},(function(t,e){return nc(t,e[1],e[0],a,s)}),"Max",{axes:i},u,[!0]);if(n){var l=qe(c.shape,a);c=c.reshape(l)}return c}}),cc=Ze({mean_:function(t,e,n){void 0===e&&(e=null),void 0===n&&(n=!1);var r=je(t,"x","mean"),o=F(e,r.shape),a=R(He(r.shape,o)[1]);return Cr((function(t){var r=an(a);return{value:(r.dtype===t.dtype?t:t.cast(r.dtype)).div(r).sum(e,n),gradFunc:function(e){var n=t.shape.slice();return o.forEach((function(t){n[t]=1})),e.reshape(n).mul(fn(t.shape,"float32")).div(a)}}}))(r)}}),lc=Ze({min_:function(t,e,n){void 0===e&&(e=null),void 0===n&&(n=!1);var r=je(t,"x","min"),o=r,a=F(e,r.shape),i=a,s=Xe(i,r.rank);null!=s&&(r=r.transpose(s),i=Ye(i.length,r.rank));var u=[r],c=Ot.runKernelFunc((function(t,e){var n=t.min(r,i);return e([o,n]),n}),{x:r},(function(t,e){return nc(t,e[1],e[0],a,s)}),"Min",{axes:i},u,[!0]);if(n){var l=qe(c.shape,a);c=c.reshape(l)}return c}}),fc=Ze({moments_:function(t,e,n){void 0===e&&(e=null),void 0===n&&(n=!1);var r=F(e,(t=je(t,"x","moments")).shape),o=t.mean(r,n),a=o.shape;n||(a=qe(o.shape,r));var i=t.toFloat().sub(o.reshape(a)).square();return{mean:o,variance:i.mean(r,n)}}}),hc=Ze({sum_:function(t,e,n){void 0===e&&(e=null),void 0===n&&(n=!1);var r=je(t,"x","sum");"bool"===r.dtype&&(r=r.toInt());var o=F(e,r.shape);return Cr((function(t){var e=Xe(o,t.rank),r=o,a=t;null!=e&&(a=t.transpose(e),r=Ye(r.length,t.rank));var i=Ot.runKernelFunc((function(t){return t.sum(a,r)}),{permutedX:a});if(n){var s=qe(i.shape,o);i=i.reshape(s)}return{value:i,gradFunc:function(e){var n=t.shape.slice();return o.forEach((function(t){n[t]=1})),e.reshape(n).mul(fn(t.shape,"float32"))}}}))(r)}}),pc=Ze({prod_:function(t,e,n){void 0===e&&(e=null),void 0===n&&(n=!1);var r=je(t,"x","prod");"bool"===r.dtype&&(r=r.toInt());var o=F(e,r.shape),a=Xe(o,r.rank),i=o,s=r;null!=a&&(s=r.transpose(a),i=Ye(i.length,r.rank));var u=Ot.runKernelFunc((function(t){return t.prod(s,i)}),{permutedX:s});if(n){var c=qe(u.shape,o);u=u.reshape(c)}return u}}),dc=Ze({elu_:function(t){var e=je(t,"x","elu");return Ot.runKernelFunc((function(t,n){var r=t.elu(e);return n([r]),r}),{$x:e},(function(t,e){var n=e[0];return{$x:function(){return Ot.runKernelFunc((function(e){return e.eluDer(t,n)}),{dy:t,y:n})}}}))}}),vc=Ze({leakyRelu_:function(t,e){void 0===e&&(e=.2);var n=je(t,"x","leakyRelu");return qs(an(e).mul(n),n)}}),mc=Ze({prelu_:function(t,e){var n=je(t,"x","prelu"),r=je(e,"alpha","prelu");return Ot.runKernelFunc((function(t,e){var o=t.prelu(n,r);return e([n,r]),o}),{x:n,alpha:r},(function(t,e){var n=e[0],r=e[1],o=n.greater(0);return{x:function(){return Ps(o,t,t.mul(r))},alpha:function(){var e=Ps(o,mn(t),t.mul(n)),a=Or(r.shape,t.shape);return a.length>0&&(e=e.sum(a)),e.reshape(r.shape)}}}),"Prelu")}}),gc=Ze({relu_:function(t){var e=je(t,"x","relu");return"bool"===e.dtype?e.toInt():Ot.runKernelFunc((function(t,n){var r=t.relu(e);return n([e]),r}),{x:e},(function(t,e){var n=e[0];return{x:function(){return t.mulStrict(n.step().toFloat())}}}),"Relu")}}),yc=Ze({relu6_:function(t){var e=je(t,"x","relu6");return"bool"===e.dtype?e.toInt():Ot.runKernelFunc((function(t,n){var r=t.relu6(e);return n([e]),r}),{x:e},(function(t,e){var n=e[0],r=n.lessEqual(6).mul(n.step());return{x:function(){return t.mulStrict(r.toFloat())}}}),"Relu6")}}),bc=Ze({selu_:function(t){var e=je(t,"x","selu");return Ot.runKernelFunc((function(t,n){var r=t.selu(e);return n([e]),r}),{$x:e},(function(t,e){var n=e[0];return{$x:function(){var e=n.greater(an(0)),r=an(vi),o=an(mi),a=t.mul(o),i=t.mul(r).mul(n.toFloat().exp());return Ps(e,a,i)}}}))}}),xc=Ze({transpose_:function(t,e){var n=je(t,"x","transpose");if(null==e&&(e=n.shape.map((function(t,e){return e})).reverse()),E(n.rank===e.length,(function(){return"Error in transpose: rank of input "+n.rank+" must match length of perm "+e+"."})),e.forEach((function(t){E(t>=0&&t<n.rank,(function(){return"All entries in 'perm' must be between 0 and "+(n.rank-1)+" but got "+e}))})),n.rank<=1)return n.clone();var r={perm:e};return Ot.runKernelFunc((function(t){return t.transpose(n,e)}),{x:n},(function(t){var n=$e(e);return{x:function(){return t.transpose(n)}}}),"Transpose",r)}}),wc=Ze({localResponseNormalization_:function(t,e,n,r,o){void 0===e&&(e=5),void 0===n&&(n=1),void 0===r&&(r=1),void 0===o&&(o=.5);var a=je(t,"x","localResponseNormalization");E(4===a.rank||3===a.rank,(function(){return"Error in localResponseNormalization: x must be rank 3 or 4 but got\n rank "+a.rank+"."})),E(S(e),(function(){return"Error in localResponseNormalization: depthRadius must be an integer but got depthRadius "+e+"."}));var i=a,s=!1;3===a.rank&&(s=!0,i=a.as4D(1,a.shape[0],a.shape[1],a.shape[2]));var u=Ot.runKernelFunc((function(t,a){var s=t.localResponseNormalization4D(i,e,n,r,o);return a([i,s]),s}),{x4D:i},(function(t,a){var i=a[0],s=a[1];return{x4D:function(){return Ot.runKernelFunc((function(a){return a.LRNGrad(t,i,s,e,n,r,o)}),{})}}}));return s?u.as3D(u.shape[1],u.shape[2],u.shape[3]):u}}),Ec=Ze({norm_:function(t,e,n,r){void 0===e&&(e="euclidean"),void 0===n&&(n=null),void 0===r&&(r=!1);var o=function t(e,n,r){if(void 0===r&&(r=null),0===e.rank)return e.abs();if(1!==e.rank&&null===r)return t(e.reshape([-1]),n,r);if(1===e.rank||"number"==typeof r||Array.isArray(r)&&1===r.length){if(1===n)return e.abs().sum(r);if(n===1/0)return e.abs().max(r);if(n===-1/0)return e.abs().min(r);if("euclidean"===n||2===n)return e.abs().pow(an(2,"int32")).sum(r).sqrt();throw new Error("Error in norm: invalid ord value: "+n)}if(Array.isArray(r)&&2===r.length){if(1===n)return e.abs().sum(r[0]).max(r[1]-1);if(n===1/0)return e.abs().sum(r[1]).max(r[0]);if(n===-1/0)return e.abs().sum(r[1]).min(r[0]);if("fro"===n||"euclidean"===n)return e.square().sum(r).sqrt();throw new Error("Error in norm: invalid ord value: "+n)}throw new Error("Error in norm: invalid axis: "+r)}(t=je(t,"x","norm"),e,n),a=o.shape;if(r){var i=F(n,t.shape);a=qe(o.shape,i)}return o.reshape(a)}}),Cc=Ze({basicLSTMCell_:function(t,e,n,r,o,a){var i=je(t,"forgetBias","basicLSTMCell"),s=je(e,"lstmKernel","basicLSTMCell"),u=je(n,"lstmBias","basicLSTMCell"),c=je(r,"data","basicLSTMCell"),l=je(o,"c","basicLSTMCell"),f=je(a,"h","basicLSTMCell"),h=c.concat(f,1).matMul(s).add(u),p=h.shape[0],d=h.shape[1]/4,v=[p,d],m=h.slice([0,0],v),g=h.slice([0,d],v),y=h.slice([0,2*d],v),b=h.slice([0,3*d],v),x=m.sigmoid().mulStrict(g.tanh()).addStrict(l.mulStrict(i.add(y).sigmoid())),w=x.tanh().mulStrict(b.sigmoid());return[x,w]}}),_c=Ze({multiRNNCell_:function(t,e,n,r){for(var o=je(e,"data","multiRNNCell"),a=ze(n,"c","multiRNNCell"),i=ze(r,"h","multiRNNCell"),s=o,u=[],c=0;c<t.length;c++){var l=t[c](s,a[c],i[c]);u.push(l[0]),u.push(l[1]),s=l[1]}var f=[],h=[];for(c=0;c<u.length;c+=2)f.push(u[c]),h.push(u[c+1]);return[f,h]}}),kc=Ze({movingAverage_:function(t,e,n,r,o){void 0===o&&(o=!0);var a=je(t,"v","movingAverage"),i=je(e,"x","movingAverage"),s=je(n,"decay","movingAverage");kt(a,i),E(I(a.shape,i.shape),(function(){return"Shape mismatch in v and x"}));var u=an(1),c=u.sub(s),l=i.sub(a).mul(c);if(o){E(null!=r,(function(){return"When using zeroDebias: true, step is required."}));var f=je(r,"step","movingAverage");l=l.div(u.sub(tu(s,f)))}return a.add(l)}}),Rc=Ze({stridedSlice_:function(t,e,n,r,o,a,i,s,u){if(void 0===o&&(o=0),void 0===a&&(a=0),void 0===i&&(i=0),void 0===s&&(s=0),void 0===u&&(u=0),null==r&&(r=new Array(e.length)),0!==i)throw new Error("ellipsis mask is not yet supported");var c=je(t,"x","stridedSlice"),l=gr(s),f=c.shape.slice();l.forEach((function(t){e[t]=0,n[t]=1,f.splice(t,0,1)})),c=c.reshape(f);for(var h=0;h<c.rank;h++)e[h]=br(o,e,r,c.shape,h),n[h]=xr(a,n,r,c.shape,h),r[h]=r[h]||1;var p=gr(u);p.forEach((function(t){n[t]=e[t]+1,r[t]=1}));var d=yr(e,n,r),v=d.filter((function(t,e){return-1===p.indexOf(e)}));return r.every((function(t){return 1===t}))?Ju(c,e,d).reshape(v):Ot.runKernelFunc((function(t){return t.stridedSlice(c,e,n,r)}),{$x:c}).reshape(v)}}),Ic=Ze({topk_:function(t,e,n){void 0===e&&(e=1),void 0===n&&(n=!0);var r=je(t,"x","topk");if(0===r.rank)throw new Error("topk() expects the input to be of rank 1 or higher");var o=r.shape[r.shape.length-1];if(e>o)throw new Error("'k' passed to topk() must be <= the last dimension ("+o+") but got "+e);var a=Ot.runKernelFunc((function(t){return t.topk(r,e,n)}),{$x:r});return{values:a[0],indices:a[1]}}}),Sc=Ze({scatterND_:function(t,e,n){var r=je(t,"indices","scatterND","int32"),o=je(e,"updates","scatterND");return function(t,e,n){if(e.rank<1)throw new Error("tf.scatterND() expects the indices to be rank 1 or higher, but the rank was "+e.rank+".");if(t.rank<1)throw new Error("tf.scatterND() expects the updates to be rank 1 or higher, but the rank was "+t.rank+".");if("int32"!==e.dtype)throw new Error("The dtype of 'indices' should be int32, but got dtype: "+e.dtype);if(n.length<1)throw new Error("Output rank must be greater or equal to 1, but got shape: "+n);if(0===n.length){if(0===e.size)throw new Error("Indices specified for empty output. indices shape: "+e.shape);if(0===t.size)throw new Error("Updates specified for empty output. updates shape: "+t.shape)}!function(t,e,n){var r=e.rank>1?e.shape[e.rank-1]:1,o=e.rank>1?e.rank-1:1,a="Must have updates.shape = indices.shape[:batchDim] + shape[sliceDim:], got updates.shape: "+n.shape+", indices.shape: "+e.shape+", shape: "+t+", sliceDim: "+r+", and batchDim: "+o+".";if(n.rank<o)throw new Error(a+" update.rank < "+o+". ");if(t.length<r+(n.rank-o))throw new Error(a+" Output shape length < "+(r+(n.rank-o)));if(n.rank!==o+t.length-r)throw new Error(a+" update.rank != "+(o+t.length-r));for(var i=0;i<o;++i)if(n.shape[i]!==e.shape[i])throw new Error(a+" updates.shape["+i+"] ("+n.shape[i]+") != indices.shape["+i+"] ("+e.shape[i]+").");for(i=0;i<n.rank-o;++i)if(n.shape[i+o]!==t[i+r])throw new Error(a+" updates.shape["+(i+o)+"] ("+n.shape[i+o]+") != shape["+(i+o)+"] ("+t[i+o]+")")}(n,e,t)}(o,r,n),Ot.runKernelFunc((function(t){return t.scatterND(r,o,n)}),{$indices:r,$updates:o})}}),Ac=Ze({fft_:function(t){E("complex64"===t.dtype,(function(){return"The dtype for tf.spectral.fft() must be complex64 but got "+t.dtype+"."}));var e=t.shape[t.shape.length-1],n=t.size/e,r=t.as2D(n,e);return Ot.runKernelFunc((function(t){return t.fft(r)}),{input:t}).reshape(t.shape)}}),Oc=Ze({ifft_:function(t){E("complex64"===t.dtype,(function(){return"The dtype for tf.spectral.ifft() must be complex64 but got "+t.dtype+"."}));var e=t.shape[t.shape.length-1],n=t.size/e,r=t.as2D(n,e);return Ot.runKernelFunc((function(t){return t.ifft(r)}),{input:t}).reshape(t.shape)}}),Tc=Ze({rfft_:function(t,e){E("float32"===t.dtype,(function(){return"The dtype for rfft() must be real value but got "+t.dtype}));var n,r=t.shape[t.shape.length-1],o=t.size/r;if(null!=e&&e<r){var a=t.shape.map((function(t){return 0})),i=t.shape.map((function(t){return t}));i[t.shape.length-1]=e,n=t.slice(a,i),r=e}else if(null!=e&&e>r){var s=t.shape.map((function(t){return t}));s[t.shape.length-1]=e-r,n=t.concat(hn(s),t.shape.length-1),r=e}else n=t;var u=n.zerosLike(),c=tn(n,u).as2D(o,r),l=Ac(c),f=Math.floor(r/2)+1,h=en(l),p=nn(l),d=h.split([f,r-f],h.shape.length-1),v=p.split([f,r-f],p.shape.length-1),m=n.shape.slice();return m[n.shape.length-1]=f,tn(d[0],v[0]).reshape(m)}}),Dc=Ze({irfft_:function(t){var e=t.shape[t.shape.length-1],n=t.size/e;if(e<=2){var r=t.as2D(n,e),o=Oc(r);return en(o)}var a=[n,2*(e-1)],i=en(t).as2D(n,e),s=nn(t).as2D(n,e),u=i.slice([0,1],[n,e-2]).reverse(1),c=s.slice([0,1],[n,e-2]).reverse(1).mul(an(-1)),l=i.concat(u,1),f=s.concat(c,1);return r=tn(l,f).as2D(a[0],a[1]),o=Oc(r),en(o)}}),Nc=Object.freeze({fft:Ac,ifft:Oc,rfft:Tc,irfft:Dc}),Fc=Ze({sparseToDense_:function(t,e,n,r){void 0===r&&(r=0);var o=je(t,"sparseIndices","sparseToDense","int32"),a=je(e,"sparseValues","sparseToDense"),i=je(r,"defaultValue","sparseToDense",a.dtype);return function(t,e,n,r){if("int32"!==t.dtype)throw new Error("tf.sparseToDense() expects the indices to be int32 type, but the dtype was "+t.dtype+".");if(t.rank>2)throw new Error("sparseIndices should be a scalar, vector, or matrix, but got shape "+t.shape+".");var o=t.rank>0?t.shape[0]:1,a=t.rank>1?t.shape[1]:1;if(n.length!==a)throw new Error("outputShape has incorrect number of elements:, "+n.length+", should be: "+a+".");var i=e.size;if(0!==e.rank&&(1!==e.rank||i!==o))throw new Error("sparseValues has incorrect shape "+e.shape+", should be [] or ["+o+"]");if(e.dtype!==r.dtype)throw new Error("sparseValues.dtype must match defaultValues.dtype")}(o,a,n,i),Ot.runKernelFunc((function(t){return t.sparseToDense(o,a,n,i)}),{$sparseIndices:o,$sparseValues:a,$defaultValue:i})}}),Mc=Ze({gatherND_:function(t,e){var n=je(e,"indices","gatherND","int32"),r=je(t,"x","gatherND");return Ot.runKernelFunc((function(t){return t.gatherND(r,n)}),{$x:r,$indices:n})}}),Pc=Ze({diag_:function(t){var e=je(t,"x","diag").flatten(),n=t.shape.concat(t.shape);return Ot.runKernelFunc((function(t){return t.diag(e)}),{$x:e}).reshape(n)}}),Bc=Ze({dropout_:function(t,e,n,r){var o=je(t,"x","dropout");if(E("float32"===o.dtype,(function(){return"x has to be a floating point tensor since it's going to be scaled, but got a "+o.dtype+" tensor instead."})),E(e>=0&&e<1,(function(){return"rate must be a float in the range [0, 1), but got "+e+"."})),0===e)return t instanceof dt?o.clone():o;var a=function(t,e){if(null==e)return t.shape.slice();if(I(t.shape,e))return e;if(t.shape.length===e.length){for(var n=[],r=0;r<t.shape.length;r++)null==e[r]&&null!=t.shape[r]?n.push(t.shape[r]):n.push(e[r]);return n}return e}(o,n),i=1-e,s=tr(a,0,1,"float32",r).add(i).floor().div(i);return o.mul(s)}});function Lc(t,e,n){for(var r=1-t%2,o=new Float32Array(t),a=0;a<t;++a){var i=2*Math.PI*a/(t+r-1);o[a]=e-n*Math.cos(i)}return sn(o,"float32")}var Wc,Uc=Ze({hannWindow_:function(t){return Lc(t,.5,.5)}}),jc=Ze({hammingWindow_:function(t){return Lc(t,.54,.46)}}),zc=Ze({frame_:function(t,e,n,r,o){void 0===r&&(r=!1),void 0===o&&(o=0);for(var a=0,i=[];a+e<=t.size;)i.push(Ju(t,a,e)),a+=n;if(r)for(;a<t.size;){var s=a+e-t.size,u=gn([Ju(t,a,e-s),pn([s],o)]);i.push(u),a+=n}return 0===i.length?un([],[0,e]):gn(i).as2D(i.length,e)}}),Vc=Ze({stft_:function(t,e,n,r,o){var a;void 0===o&&(o=Uc),null==r&&(a=e,r=Math.floor(Math.pow(2,Math.ceil(Math.log(a)/Math.log(2)))));for(var i=zc(t,e,n),s=Qs(i,o(e)),u=[],c=0;c<i.shape[0];c++)u.push(Tc(s.slice([c,0],[1,e]),r));return gn(u)}}),Gc=Object.freeze({hannWindow:Uc,hammingWindow:jc,frame:zc,stft:Vc});!function(t){t[t.NONE=0]="NONE",t[t.MEAN=1]="MEAN",t[t.SUM=2]="SUM",t[t.SUM_BY_NONZERO_WEIGHTS=3]="SUM_BY_NONZERO_WEIGHTS"}(Wc||(Wc={}));var Hc=Ze({absoluteDifference_:function(t,e,n,r){void 0===r&&(r=Wc.SUM_BY_NONZERO_WEIGHTS);var o=je(t,"labels","absoluteDifference"),a=je(e,"predictions","absoluteDifference"),i=null;null!=n&&(i=je(n,"weights","absoluteDifference")),C(o.shape,a.shape,"Error in absoluteDifference: ");var s=o.sub(a).abs();return qc(s,i,r)}}),qc=Ze({computeWeightedLoss_:function(t,e,n){void 0===n&&(n=Wc.SUM_BY_NONZERO_WEIGHTS);var r=je(t,"losses","computeWeightedLoss"),o=null;null!=e&&(o=je(e,"weights","computeWeightedLoss"));var a=null==o?r:r.mul(o);if(n===Wc.NONE)return a;if(n===Wc.SUM)return a.sum();if(n===Wc.MEAN){if(null==o)return a.mean();var i=r.size/o.size,s=a.sum().div(o.sum());return i>1?s.div(an(i)):s}if(n===Wc.SUM_BY_NONZERO_WEIGHTS){if(null==o)return a.sum().div(an(r.size));var u=o.mul(fn(r.shape)).notEqual(an(0)).sum().toFloat();return a.sum().div(u)}throw Error("Unknown reduction: "+n)}}),Kc=Ze({cosineDistance_:function(t,e,n,r,o){void 0===o&&(o=Wc.SUM_BY_NONZERO_WEIGHTS);var a=je(t,"labels","cosineDistance"),i=je(e,"predictions","cosineDistance"),s=null;null!=r&&(s=je(r,"weights","cosineDistance")),C(a.shape,i.shape,"Error in cosineDistance: ");var u=an(1).sub(a.mul(i).sum(n,!0));return qc(u,s,o)}}),Xc=Ze({hingeLoss_:function(t,e,n,r){void 0===r&&(r=Wc.SUM_BY_NONZERO_WEIGHTS);var o=je(t,"labels","hingeLoss"),a=je(e,"predictions","hingeLoss"),i=null;null!=n&&(i=je(n,"weights","hingeLoss")),C(o.shape,a.shape,"Error in hingeLoss: ");var s=an(1);o=an(2).mul(o).sub(s);var u=s.sub(o.mul(a)).relu();return qc(u,i,r)}}),$c=Ze({huberLoss_:function(t,e,n,r,o){void 0===r&&(r=1),void 0===o&&(o=Wc.SUM_BY_NONZERO_WEIGHTS);var a=je(t,"labels","huberLoss"),i=je(e,"predictions","huberLoss"),s=null;null!=n&&(s=je(n,"weights","huberLoss")),C(a.shape,i.shape,"Error in huberLoss: ");var u=an(r),c=i.sub(a).abs(),l=Xs(c,u),f=c.sub(l),h=an(.5).mul(l.square()).add(u.mul(f));return qc(h,s,o)}}),Yc=Ze({logLoss_:function(t,e,n,r,o){void 0===r&&(r=1e-7),void 0===o&&(o=Wc.SUM_BY_NONZERO_WEIGHTS);var a=je(t,"labels","logLoss"),i=je(e,"predictions","logLoss"),s=null;null!=n&&(s=je(n,"weights","logLoss")),C(a.shape,i.shape,"Error in logLoss: ");var u=an(1),c=an(r),l=a.mul(i.add(c).log()).neg().sub(u.sub(a).mul(u.sub(i).add(c).log()));return qc(l,s,o)}}),Jc=Ze({meanSquaredError_:function(t,e,n,r){void 0===r&&(r=Wc.SUM_BY_NONZERO_WEIGHTS);var o=je(t,"labels","meanSquaredError"),a=je(e,"predictions","meanSquaredError"),i=null;null!=n&&(i=je(n,"weights","meanSquaredError")),C(o.shape,a.shape,"Error in meanSquaredError: ");var s=o.squaredDifference(a);return qc(s,i,r)}}),Qc=Ze({sigmoidCrossEntropy_:function(t,e,n,r,o){void 0===r&&(r=0),void 0===o&&(o=Wc.SUM_BY_NONZERO_WEIGHTS);var a=je(t,"multiClassLabels","sigmoidCrossEntropy"),i=je(e,"logits","sigmoidCrossEntropy"),s=null;if(null!=n&&(s=je(n,"weights","sigmoidCrossEntropy")),C(a.shape,i.shape,"Error in sigmoidCrossEntropy: "),r>0){var u=an(r),c=an(1),l=an(.5);a=a.mul(c.sub(u)).add(l.mul(u))}var f=function(t,e){var n=je(t,"labels","sigmoidCrossEntropyWithLogits"),r=je(e,"logits","sigmoidCrossEntropyWithLogits");C(n.shape,r.shape,"Error in sigmoidCrossEntropyWithLogits: ");var o=r.relu(),a=r.mul(n),i=r.abs().neg().exp().log1p();return o.sub(a).add(i)}(a,i);return qc(f,s,o)}}),Zc=Ze({softmaxCrossEntropy_:function(t,e,n,r,o){void 0===r&&(r=0),void 0===o&&(o=Wc.SUM_BY_NONZERO_WEIGHTS);var a=je(t,"onehotLabels","softmaxCrossEntropy"),i=je(e,"logits","softmaxCrossEntropy"),s=null;if(null!=n&&(s=je(n,"weights","softmaxCrossEntropy")),C(a.shape,i.shape,"Error in softmaxCrossEntropy: "),r>0){var u=an(r),c=an(1),l=an(a.shape[1]);a=a.mul(c.sub(u)).add(u.div(l))}var f=function(t,e,n){if(void 0===n&&(n=-1),-1===n&&(n=e.rank-1),n!==e.rank-1)throw Error("Softmax cross entropy along a non-last dimension is not yet supported. Labels / logits was rank "+e.rank+" and dim was "+n);return Cr((function(t,e,r){var o=e.logSumExp([n],!0),a=e.toFloat().sub(o);return r([t,a]),{value:a.mul(t).neg().sum([n]),gradFunc:function(t,e){var r=e[0],o=e[1],a=qe(t.shape,[n]);return[t.reshape(a).mul(r.toFloat().sub(o.exp())),t.reshape(a).mul(o.exp().sub(r.toFloat()))]}}}))(t,e)}(a,i);return qc(f,s,o)}}),tl=Object.freeze({get Reduction(){return Wc},absoluteDifference:Hc,computeWeightedLoss:qc,cosineDistance:Kc,hingeLoss:Xc,huberLoss:$c,logLoss:Yc,meanSquaredError:Jc,sigmoidCrossEntropy:Qc,softmaxCrossEntropy:Zc});function el(t,e){return void 0===e&&(e=!1),Ot.tidy((function(){if(2!==t.shape.length)throw new Error("qr2d() requires a 2D Tensor, but got a "+t.shape.length+"D Tensor.");for(var n=t.shape[0],r=t.shape[1],o=Vn(n),a=t.clone(),i=un([[1]],[1,1]),s=i.clone(),u=n>=r?r:n,c=function(t){var e,u=a,c=s,l=o;e=Ot.tidy((function(){var e=a.slice([t,t],[n-t,1]),u=e.norm(),c=a.slice([t,t],[1,1]),l=un([[-1]]).where(c.greater(0),un([[1]])),f=c.sub(l.mul(u)),h=e.div(f);s=1===h.shape[0]?i.clone():i.concat(h.slice([1,0],[h.shape[0]-1,h.shape[1]]),0);var p=l.matMul(f).div(u).neg(),d=a.slice([t,0],[n-t,r]),v=p.mul(s);if(0===t)a=d.sub(v.matMul(s.transpose().matMul(d)));else{var m=d.sub(v.matMul(s.transpose().matMul(d)));a=a.slice([0,0],[t,r]).concat(m,0)}var g=o.slice([0,t],[n,o.shape[1]-t]);if(0===t)o=g.sub(g.matMul(s).matMul(v.transpose()));else{var y=g.sub(g.matMul(s).matMul(v.transpose()));o=o.slice([0,0],[n,t]).concat(y,1)}return[s,a,o]})),s=e[0],a=e[1],o=e[2],Be([u,c,l])},l=0;l<u;++l)c(l);return!e&&n>r&&(o=o.slice([0,0],[n,r]),a=a.slice([0,0],[r,r])),[o,a]}))}var nl=Ze({bandPart_:function(t,e,n){if(e%1!=0)throw new Error("bandPart(): numLower must be an integer, got "+e+".");if(n%1!=0)throw new Error("bandPart(): numUpper must be an integer, got "+n+".");var r=je(t,"a","bandPart");if(r.rank<2)throw new Error("bandPart(): Rank must be at least 2, got "+r.rank+".");var o=r.shape,a=r.shape.slice(-2),i=a[0],s=a[1];if(!(e<=i))throw new Error("bandPart(): numLower ("+e+") must not be greater than the number of rows ("+i+").");if(!(n<=s))throw new Error("bandPart(): numUpper ("+n+") must not be greater than the number of columns ("+s+").");e<0&&(e=i),n<0&&(n=s);var u=dn(0,i,1,"int32").reshape([-1,1]),c=dn(0,s,1,"int32"),l=ou(u,c),f=Ds(l.lessEqual(an(+e,"int32")),l.greaterEqual(an(-n,"int32"))),h=hn([i,s],r.dtype);return or(sr(r.reshape([-1,i,s])).map((function(t){return Ps(f,t,h)}))).reshape(o)}}),rl=Ze({gramSchmidt_:function(t){var e;if(Array.isArray(t)){e=!1,E(null!=t&&t.length>0,(function(){return"Gram-Schmidt process: input must not be null, undefined, or empty"}));for(var n=t[0].shape[0],r=function(e){E(t[e].shape[0]===n,(function(){return"Gram-Schmidt: Non-unique lengths found in the input vectors: ("+t[e].shape[0]+" vs. "+n+")"}))},o=1;o<t.length;++o)r(o)}else e=!0,t=En(t,t.shape[0],0).map((function(t){return rr(t,[0])}));E(t.length<=t[0].shape[0],(function(){return"Gram-Schmidt: Number of vectors ("+t.length+") exceeds number of dimensions ("+t[0].shape[0]+")."}));var a=[],i=t,s=function(t){a.push(Ot.tidy((function(){var e=i[t];if(t>0)for(var n=0;n<t;++n){var r=hc(a[n].mulStrict(e)).mul(a[n]);e=e.sub(r)}return e.div(Ec(e,"euclidean"))})))};for(o=0;o<t.length;++o)s(o);return e?or(a,0):a}}),ol=Ze({qr_:function(t,e){if(void 0===e&&(e=!1),t.rank<2)throw new Error("qr() requires input tensor to have a rank >= 2, but got rank "+t.rank);if(2===t.rank)return el(t,e);var n=t.shape.slice(0,t.shape.length-2).reduce((function(t,e){return t*e})),r=sr(t.reshape([n,t.shape[t.shape.length-2],t.shape[t.shape.length-1]]),0),o=[],a=[];return r.forEach((function(t){var n=el(t,e),r=n[0],i=n[1];o.push(r),a.push(i)})),[or(o,0).reshape(t.shape),or(a,0).reshape(t.shape)]}}),al=Object.freeze({bandPart:nl,gramSchmidt:rl,qr:ol});function il(t,e,n,r,o){null==r&&(r=.5),null==o&&(o=Number.NEGATIVE_INFINITY);var a=t.shape[0];return n=Math.min(n,a),E(0<=r&&r<=1,(function(){return"iouThreshold must be in [0, 1], but was '"+r+"'"})),E(2===t.rank,(function(){return"boxes must be a 2D tensor, but was of rank '"+t.rank+"'"})),E(4===t.shape[1],(function(){return"boxes must have 4 columns, but 2nd dimension was "+t.shape[1]})),E(1===e.rank,(function(){return"scores must be a 1D tensor"})),E(e.shape[0]===a,(function(){return"scores has incompatible shape with boxes. Expected "+a+", but was "+e.shape[0]})),{maxOutputSize:n,iouThreshold:r,scoreThreshold:o}}var sl=Ze({resizeBilinear_:function(t,e,n){void 0===n&&(n=!1);var r=je(t,"images","resizeBilinear");E(3===r.rank||4===r.rank,(function(){return"Error in resizeBilinear: x must be rank 3 or 4, but got rank "+r.rank+"."})),E(2===e.length,(function(){return"Error in resizeBilinear: new shape must 2D, but got shape "+e+"."}));var o=r,a=!1;3===r.rank&&(a=!0,o=r.as4D(1,r.shape[0],r.shape[1],r.shape[2]));var i=e[0],s=e[1],u=Ot.runKernelFunc((function(t,e){return e([o]),t.resizeBilinear(o,i,s,n)}),{x:o},(function(t,e){return{x:function(){return Ot.runKernelFunc((function(r){return r.resizeBilinearBackprop(t,e[0],n)}),{})}}}),"ResizeBilinear",{alignCorners:n,newHeight:i,newWidth:s});return a?u.as3D(u.shape[1],u.shape[2],u.shape[3]):u}}),ul=Ze({resizeNearestNeighbor_:function(t,e,n){void 0===n&&(n=!1);var r=je(t,"images","resizeNearestNeighbor");E(3===r.rank||4===r.rank,(function(){return"Error in resizeNearestNeighbor: x must be rank 3 or 4, but got rank "+r.rank+"."})),E(2===e.length,(function(){return"Error in resizeNearestNeighbor: new shape must 2D, but got shape "+e+"."})),E("float32"===r.dtype||"int32"===r.dtype,(function(){return"`images` must have `int32` or `float32` as dtype"}));var o=r,a=!1;3===r.rank&&(a=!0,o=r.as4D(1,r.shape[0],r.shape[1],r.shape[2]));var i=e[0],s=e[1],u=Ot.runKernelFunc((function(t,e){return e([o]),t.resizeNearestNeighbor(o,i,s,n)}),{batchImages:o},(function(t,e){return{batchImages:function(){return Ot.runKernelFunc((function(r){return r.resizeNearestNeighborBackprop(t,e[0],n)}),{})}}}));return a?u.as3D(u.shape[1],u.shape[2],u.shape[3]):u}}),cl=Ze({nonMaxSuppression_:function(t,e,n,r,o){void 0===r&&(r=.5),void 0===o&&(o=Number.NEGATIVE_INFINITY);var a=je(t,"boxes","nonMaxSuppression"),i=je(e,"scores","nonMaxSuppression"),s=il(a,i,n,r,o);n=s.maxOutputSize,r=s.iouThreshold,o=s.scoreThreshold;var u={maxOutputSize:n,iouThreshold:r,scoreThreshold:o};return Ot.runKernelFunc((function(t){return t.nonMaxSuppression(a,i,n,r,o)}),{boxes:a,scores:i},null,"NonMaxSuppressionV3",u)}}),ll=Ze({cropAndResize_:function(t,e,n,r,o,a){var i=je(t,"image","cropAndResize"),s=je(e,"boxes","cropAndResize","float32"),u=je(n,"boxInd","cropAndResize","int32");o=o||"bilinear",a=a||0;var c=s.shape[0];return E(4===i.rank,(function(){return"Error in cropAndResize: image must be rank 4,but got rank "+i.rank+"."})),E(2===s.rank&&4===s.shape[1],(function(){return"Error in cropAndResize: boxes must be have size ["+c+",4] but had shape "+s.shape+"."})),E(1===u.rank&&u.shape[0]===c,(function(){return"Error in cropAndResize: boxInd must be have size ["+c+"] but had shape "+s.shape+"."})),E(2===r.length,(function(){return"Error in cropAndResize: cropSize must be of length 2, but got length "+r.length+"."})),E(r[0]>=1&&r[1]>=1,(function(){return"cropSize must be atleast [1,1], but was "+r})),E("bilinear"===o||"nearest"===o,(function(){return"method must be bilinear or nearest, but was "+o})),Ot.runKernelFunc((function(t,e){return t.cropAndResize(i,s,u,r,o,a)}),{images:i,boxes:s,boxInd:u},null,"CropAndResize",{method:o,extrapolationValue:a,cropSize:r})}}),fl=Object.freeze({resizeBilinear:sl,resizeNearestNeighbor:ul,nonMaxSuppression:cl,nonMaxSuppressionAsync:function(t,e,n,r,o){return void 0===r&&(r=.5),void 0===o&&(o=Number.NEGATIVE_INFINITY),u(this,void 0,void 0,(function(){var a,i,s,u,l,f,h;return c(this,(function(c){switch(c.label){case 0:return a=je(t,"boxes","nonMaxSuppressionAsync"),i=je(e,"scores","nonMaxSuppressionAsync"),s=il(a,i,n,r,o),n=s.maxOutputSize,r=s.iouThreshold,o=s.scoreThreshold,[4,Promise.all([a.data(),i.data()])];case 1:return u=c.sent(),l=u[0],f=u[1],h=Jr(l,f,n,r,o),a!==t&&a.dispose(),i!==e&&i.dispose(),[2,h]}}))}))},cropAndResize:ll}),hl=function(t,e){return!(t>0)||"linear"===e},pl=function(t,e,n){if(null==n||"linear"===n)return t;if("relu"===n)return t.mul(e.step());throw new Error("Gradient for activation "+n+" has not been implemented yet.")},dl=function(t,e){var n=e,r=Or(t.shape,e.shape);return r.length>0&&(n=n.sum(r)),n.reshape(t.shape)},vl=function(t,e,n){if("linear"===e)return t;if("relu"===e)return gc(t);if("elu"===e)return dc(t);if("relu6"===e)return yc(t);if("prelu"===e)return mc(t,n);throw new Error("Unknown fused activation "+e+".")},ml=Ze({fusedMatMul_:function(t){var e,n=t.a,r=t.b,o=t.transposeA,a=void 0!==o&&o,i=t.transposeB,s=void 0!==i&&i,u=t.bias,c=t.activation,l=void 0===c?"linear":c,f=t.preluActivationWeights;if(!1===hl(Ot.state.gradientDepth,l)){var h=Pu(n,r,a,s);return null!=u&&(h=Ls(h,u)),vl(h,l,f)}var p=je(n,"a","fused matMul"),d=je(r,"b","fused matMul");e=_t(p,d),p=e[0],d=e[1];var v=a?p.shape[p.rank-2]:p.shape[p.rank-1],m=s?d.shape[d.rank-1]:d.shape[d.rank-2],g=a?p.shape[p.rank-1]:p.shape[p.rank-2],y=s?d.shape[d.rank-2]:d.shape[d.rank-1],b=p.shape.slice(0,-2),x=d.shape.slice(0,-2),w=R(b),C=R(x);E(p.rank>=2&&d.rank>=2&&p.rank===d.rank,(function(){return"Error in fused matMul: inputs must have the same rank of at least 2, got ranks "+p.rank+" and "+d.rank+"."})),E(I(b,x),(function(){return"Error in fused matMul: outer dimensions ("+b+") and ("+x+") of Tensors with shapes "+p.shape+" and "+d.shape+" must match."})),E(v===m,(function(){return"Error in fused matMul: inner shapes ("+v+") and ("+m+") of Tensors with shapes "+p.shape+" and "+d.shape+" and transposeA="+a+" and transposeB="+s+" must match."}));var _,k,S=p.shape.slice(0,-2).concat([g,y]),A=a?p.as3D(w,v,g):p.as3D(w,g,v),O=s?d.as3D(C,y,m):d.as3D(C,m,y);null!=u&&Tr(S,(_=_t(_=je(u,"bias","fused matMul"),p)[0]).shape),null!=f&&(k=je(f,"prelu weights","fused matMul"));var T={$a:A,$b:O};return null!=u&&(T.$bias=_),null!=f&&(T.$preluActivationWeights=k),Ot.runKernelFunc((function(t,e){var n=t.fusedBatchMatMul({a:A,b:O,transposeA:a,transposeB:s,bias:_,activation:l,preluActivationWeights:k});return e([A,O,n]),n}),T,(function(t,e){var n=e[0],r=e[1],o=e[2],i=pl(t,o,l),c={};return null!=u&&(c={$bias:function(){return dl(_,i)}}),a||s?!a&&s?Object.assign({$a:function(){return i.matMul(r,!1,!1)},$b:function(){return i.matMul(n,!0,!1)}},c):a&&!s?Object.assign({$a:function(){return r.matMul(i,!1,!0)},$b:function(){return n.matMul(i,!1,!1)}},c):Object.assign({$a:function(){return r.matMul(i,!0,!0)},$b:function(){return i.matMul(n,!0,!0)}},c):Object.assign({$a:function(){return i.matMul(r,!1,!0)},$b:function(){return n.matMul(i,!0,!1)}},c)})).reshape(S)}}),gl=Ze({fusedConv2d_:function(t){var e=t.x,n=t.filter,r=t.strides,o=t.pad,a=t.dataFormat,i=void 0===a?"NHWC":a,s=t.dilations,u=void 0===s?[1,1]:s,c=t.dimRoundingMode,l=t.bias,f=t.activation,h=void 0===f?"linear":f,p=t.preluActivationWeights;if(h=h||"linear",!1===hl(Ot.state.gradientDepth,h)){var d=Ru(e,n,r,o,i,u,c);return null!=l&&(d=Ls(d,l)),vl(d,h,p)}var v=je(e,"x","conv2d"),m=je(n,"filter","conv2d"),g=v,y=!1;3===v.rank&&(y=!0,g=v.as4D(1,v.shape[0],v.shape[1],v.shape[2])),E(4===g.rank,(function(){return"Error in fused conv2d: input must be rank 4, but got rank "+g.rank+"."})),E(4===m.rank,(function(){return"Error in fused conv2d: filter must be rank 4, but got rank "+m.rank+"."})),null!=c&&E(S(o),(function(){return"Error in fused conv2d: pad must be an integer when using, dimRoundingMode "+c+" but got pad "+o+"."})),E(g.shape[3]===m.shape[2],(function(){return"Error in conv2d: depth of input ("+g.shape[3]+") must match input depth for filter "+m.shape[2]+"."})),E(zr(r,u),(function(){return"Error in conv2D: Either strides or dilations must be 1. Got strides "+r+" and dilations '"+u+"'"})),E("NHWC"===i,(function(){return"Error in conv2d: got dataFormat of "+i+" but only NHWC is currently supported."}));var b,x,w=Fr(g.shape,m.shape,r,u,o,c);null!=l&&(b=_t(b=je(l,"bias","fused conv2d"),v)[0],Tr(w.outShape,b.shape)),null!=p&&(x=je(p,"prelu weights","fused conv2d"));var C={x:g,filter:m};null!=l&&(C.bias=b),null!=p&&(C.preluActivationWeights=x);var _=[m,g],k=Ot.runKernelFunc((function(t,e){var n=t.fusedConv2d({input:g,filter:m,convInfo:w,bias:b,activation:h,preluActivationWeights:x});return e([m,g,n]),n}),C,(function(t,e){var n=e,a=n[0],i=n[1],s=n[2],c=pl(t,s,h);E(jr(u),(function(){return"Error in gradient of fused conv2D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '"+u+"'"}));var f={};return null!=l&&(f={bias:function(){return dl(b,c)}}),Object.assign({x:function(){return Au(i.shape,c,a,r,o)},filter:function(){return Su(i,c,a.shape,r,o)}},f)}),"FusedConv2D",{convInfo:w,activation:h},_,[!0]);return y?k.as3D(k.shape[1],k.shape[2],k.shape[3]):k}}),yl=Ze({fusedDepthwiseConv2d_:function(t){var e=t.x,n=t.filter,r=t.strides,o=t.pad,a=t.dataFormat,i=void 0===a?"NHWC":a,s=t.dilations,u=void 0===s?[1,1]:s,c=t.dimRoundingMode,l=t.bias,f=t.activation,h=void 0===f?"linear":f,p=t.preluActivationWeights;if(!1===hl(Ot.state.gradientDepth,h)){var d=Ou(e,n,r,o,i,u,c);return null!=l&&(d=Ls(d,l)),vl(d,h,p)}var v=je(e,"x","depthwiseConv2d"),m=je(n,"filter","depthwiseConv2d"),g=v,y=!1;3===v.rank&&(y=!0,g=v.as4D(1,v.shape[0],v.shape[1],v.shape[2])),E(4===g.rank,(function(){return"Error in fused depthwiseConv2d: input must be rank 4, but got rank "+g.rank+"."})),E(4===m.rank,(function(){return"Error in fused depthwiseConv2d: filter must be rank 4, but got rank "+m.rank+"."})),E(g.shape[3]===m.shape[2],(function(){return"Error in fused depthwiseConv2d: number of input channels ("+g.shape[3]+") must match the inChannels dimension in filter "+m.shape[2]+"."})),null==u&&(u=[1,1]),E(zr(r,u),(function(){return"Error in fused depthwiseConv2d: Either strides or dilations must be 1. Got strides "+r+" and dilations '"+u+"'"})),null!=c&&E(S(o),(function(){return"Error in fused depthwiseConv2d: pad must be an integer when using dimRoundingMode "+c+" but got pad "+o+"."}));var b,x,w=Fr(g.shape,m.shape,r,u,o,c,!0);null!=l&&(b=_t(b=je(l,"bias","fused conv2d"),v)[0],Tr(w.outShape,b.shape)),null!=p&&(x=je(p,"prelu weights","fused depthwiseConv2d"));var C={x:g,filter:m};null!=l&&(C.bias=b),null!=p&&(C.preluActivationWeights=x);var _=[m,g],k=Ot.runKernelFunc((function(t,e){var n=t.fusedDepthwiseConv2D({input:g,filter:m,convInfo:w,bias:b,activation:h,preluActivationWeights:x});return e([m,g,n]),n}),C,(function(t,e){E(jr(u),(function(){return"Error in gradient of fused depthwiseConv2d: dilation rates greater than 1 are not yet supported. Got dilations '"+u+"'"}));var n=e[0],r=e[1],o=e[2],a=pl(t,o,h),i={};return null!=l&&(i={bias:function(){return dl(b,a)}}),Object.assign({x:function(){return Tu(r.shape,a,n,w)},filter:function(){return Du(r,a,n.shape,w)}},i)}),"FusedDepthwiseConv2D",{convInfo:w,activation:h},_,[!0]);return y?k.as3D(k.shape[1],k.shape[2],k.shape[3]):k}}),bl=Object.freeze({matMul:ml,conv2d:gl,depthwiseConv2d:yl}),xl=Object.freeze({image:fl,linalg:al,losses:tl,spectral:Nc,fused:bl,signal:Gc,square:Bi,conv1d:ku,conv2d:Ru,conv3d:Iu,depthwiseConv2d:Ou,separableConv2d:Nu,conv2dTranspose:Fu,conv3dTranspose:Mu,op:Ze,batchNormalization2d:_s,batchNormalization3d:ks,batchNormalization4d:Rs,batchNormalization:Is,batchNorm:Ss,batchNorm2d:As,batchNorm3d:Os,batchNorm4d:Ts,booleanMaskAsync:function(t,e,n){return u(this,void 0,void 0,(function(){var r,o,a,i,s,u,l,f,h,p,d,v,m;return c(this,(function(c){switch(c.label){case 0:for(r=je(t,"tensor","boolMask"),o=je(e,"mask","boolMask","bool"),a=null==n?0:n,i=o.rank,s=r.shape,E(i>0,(function(){return"mask cannot be scalar"})),C(s.slice(a,a+i),o.shape,"mask's shape must match the first K dimensions of tensor's shape,"),u=1,l=a;l<a+i;l++)u*=s[l];return f=s.slice(0,a).concat([u],s.slice(a+i)),h=r.reshape(f),p=o.reshape([-1]),[4,Bs(p)];case 1:return d=c.sent(),v=d.squeeze([1]),m=xu(h,v,a),t!==r&&r.dispose(),e!==o&&o.dispose(),v.dispose(),h.dispose(),p.dispose(),d.dispose(),[2,m]}}))}))},complex:tn,real:en,imag:nn,concat:gn,concat1d:yn,concat2d:bn,concat3d:xn,concat4d:wn,split:En,matMul:Pu,dot:Bu,outerProduct:Lu,reverse:Wu,reverse1d:Uu,reverse2d:ju,reverse3d:zu,reverse4d:Vu,maxPool:qu,avgPool:Ku,pool:Xu,maxPool3d:$u,avgPool3d:Yu,slice:Ju,slice1d:Qu,slice2d:Zu,slice3d:tc,slice4d:ec,abs:Li,acos:Wi,acosh:Ui,asin:ji,asinh:zi,atan:Vi,atanh:Gi,ceil:Hi,clipByValue:qi,cos:Ki,cosh:Xi,erf:$i,exp:Yi,expm1:Ji,floor:Qi,log:Zi,log1p:ts,logSigmoid:es,neg:ns,reciprocal:rs,round:os,rsqrt:as,sigmoid:is,sign:ss,isNaN:us,isInf:cs,isFinite:ls,sin:fs,sinh:hs,softplus:ps,sqrt:ds,step:vs,tan:ms,tanh:gs,all:rc,any:oc,argMax:ac,argMin:ic,logSumExp:sc,max:uc,mean:cc,min:lc,moments:fc,sum:hc,prod:pc,equal:iu,equalStrict:su,greater:uu,greaterEqual:cu,greaterEqualStrict:lu,greaterStrict:fu,less:hu,lessEqual:pu,lessEqualStrict:du,lessStrict:vu,notEqual:mu,notEqualStrict:gu,add:Ls,addN:Ws,addStrict:Us,atan2:js,div:zs,divNoNan:Vs,divStrict:Gs,floorDiv:Hs,maximum:qs,maximumStrict:Ks,minimum:Xs,minimumStrict:$s,mod:Ys,modStrict:Js,mul:Qs,mulStrict:Zs,pow:tu,powStrict:eu,squaredDifference:nu,squaredDifferenceStrict:ru,sub:ou,subStrict:au,elu:dc,leakyRelu:vc,prelu:mc,relu:gc,relu6:yc,selu:bc,logicalAnd:Ds,logicalNot:Ns,logicalOr:Fs,logicalXor:Ms,where:Ps,whereAsync:Bs,buffer:Mn,print:function(t,e){void 0===e&&(e=!1)},batchToSpaceND:Pn,broadcastTo:Bn,cast:Ln,clone:Wn,cumsum:Un,depthToSpace:jn,expandDims:zn,eye:Vn,multinomial:Gn,oneHot:Hn,pad:qn,pad1d:Kn,pad2d:Xn,pad3d:$n,pad4d:Yn,rand:Jn,randomNormal:Qn,randomGamma:Zn,randomUniform:tr,reshape:er,spaceToBatchND:nr,squeeze:rr,stack:or,tile:ar,truncatedNormal:ir,unstack:sr,setdiff1dAsync:function(t,e){return u(this,void 0,void 0,(function(){var n,r,o,a,i,s,u,l,f,h;return c(this,(function(c){switch(c.label){case 0:return n=je(t,"x","setdiff1d"),r=je(e,"y","setdiff1d"),E(n.dtype===r.dtype,(function(){return"x and y should have the same dtype, but got x ("+n.dtype+") and y ("+r.dtype+")."})),E(1===n.rank,(function(){return"x should be 1D tensor, but got x ("+n.shape+")."})),E(1===r.rank,(function(){return"y should be 1D tensor, but got y ("+r.shape+")."})),[4,n.data()];case 1:return o=c.sent(),[4,r.data()];case 2:for(a=c.sent(),i=new Set(a),s=0,f=0;f<o.length;f++)i.has(o[f])||s++;for(u=new lt([s],n.dtype),l=new lt([s],"int32"),f=0,h=0;f<o.length;f++)i.has(o[f])||(u.values[h]=o[f],l.values[h]=f,h++);return[2,[u.toTensor(),l.toTensor()]]}}))}))},fill:pn,linspace:function(t,e,n){if(n<=0)throw new Error("The number of values should be positive.");return Ot.runKernelFunc((function(r){return r.linspace(t,e,n)}),{})},ones:fn,range:dn,scalar:an,tensor:rn,tensor1d:sn,tensor2d:un,tensor3d:cn,tensor4d:ln,tensor5d:function(t,e,n){if(_(t),null!=e&&5!==e.length)throw new Error("tensor5d() requires shape to have five numbers");var r=We(t,n);if(5!==r.length&&1!==r.length)throw new Error("tensor5d() requires values to be number[][][][][] or flat/TypedArray");if(1===r.length&&null==e)throw new Error("tensor5d() requires shape to be provided when `values` are a flat array");return on(t,e,r,n)},tensor6d:function(t,e,n){if(_(t),null!=e&&6!==e.length)throw new Error("tensor6d() requires shape to have six numbers");var r=We(t,n);if(6!==r.length&&1!==r.length)throw new Error("tensor6d() requires values to be number[][][][][][] or flat/TypedArray");if(1===r.length&&null==e)throw new Error("tensor6d() requires shape to be provided when `values` are a flat array");return on(t,e=e||r,r,n)},variable:function(t,e,n,r){return void 0===e&&(e=!0),Ot.makeVariable(t,e,n,r)},zeros:hn,onesLike:vn,zerosLike:mn,transpose:xc,softmax:_r,logSoftmax:kr,localResponseNormalization:wc,norm:Ec,gather:xu,unsortedSegmentSum:wu,basicLSTMCell:Cc,multiRNNCell:_c,movingAverage:kc,stridedSlice:Rc,topk:Ic,scatterND:Sc,fft:Ac,ifft:Oc,rfft:Tc,irfft:Dc,sparseToDense:Fc,gatherND:Mc,diag:Pc,dropout:Bc,hannWindow:Uc,hammingWindow:jc,frame:zc,stft:Vc,inTopKAsync:function(t,e,n){return void 0===n&&(n=1),u(this,void 0,void 0,(function(){var r,o,a,i,s,u,l,f,h,p,d,v,m,g;return c(this,(function(c){switch(c.label){case 0:return r=je(t,"predictions","inTopK"),o=je(e,"targets","inTopK"),E(r.rank>1,(function(){return"inTopK() expects the predictions to be of rank 2 or higher, but got "+r.rank})),E(r.rank-1===o.rank,(function(){return"predictions rank should be 1 larger than targets rank, but got predictions rank "+r.rank+" and targets rank "+o.rank})),C(r.shape.slice(0,r.shape.length-1),o.shape,"predictions's shape should be align with the targets' shape, except the last dimension."),a=r.shape[r.shape.length-1],E(n>0&&n<=a,(function(){return"'k' passed to inTopK() must be > 0 && <= the predictions last dimension ("+a+"), but got "+n})),[4,r.data()];case 1:return i=c.sent(),[4,o.data()];case 2:for(s=c.sent(),u=[i.length/a,a],f=u[1],h=P("bool",l=u[0]),p=0;p<l;p++){for(d=p*f,v=i.subarray(d,d+f),m=[],g=0;g<v.length;g++)m.push({value:v[g],index:g});for(m.sort((function(t,e){return e.value-t.value})),h[p]=0,g=0;g<n;g++)if(m[g].index===s[p]){h[p]=1;break}}return t!==r&&r.dispose(),e!==o&&o.dispose(),[2,rn(h,o.shape,"bool")]}}))}))}});function wl(t,e){Array.isArray(t)||(t=[t]),t.forEach((function(t){null!=t&&E("complex64"!==t.dtype,(function(){return e+" does not support complex64 tensors."}))}))}function El(t,e,n,r){if("linear"===n)return t.linear(e);if("relu"===n)return t.relu(e);if("elu"===n)return t.elu(e);if("relu6"===n)return t.relu6(e);if("prelu"===n)return t.prelu(e,r);throw new Error("Activation "+n+" has not been implemented for the CPU backend.")}var Cl=function(t){function e(){var e=t.call(this)||this;return e.blockSize=48,e.firstUse=!0,e.data=new Rr(e,Ot),e}return s(e,t),e.prototype.write=function(t,e,n){this.firstUse&&(this.firstUse=!1,f().get("IS_NODE")&&Le("\n============================\nHi there 👋. Looks like you are running TensorFlow.js in Node.js. To speed things up dramatically, install our node backend, which binds to TensorFlow C++, by running npm i @tensorflow/tfjs-node, or npm i @tensorflow/tfjs-node-gpu if you have CUDA. Then call require('@tensorflow/tfjs-node'); (-gpu suffix for CUDA) at the start of your program. Visit https://github.com/tensorflow/tfjs-node for more details.\n============================\n"));var r={};return this.data.set(r,{values:t,dtype:n}),r},e.prototype.move=function(t,e,n,r){this.data.set(t,{values:e,dtype:r})},e.prototype.numDataIds=function(){return this.data.numDataIds()},e.prototype.read=function(t){return u(this,void 0,void 0,(function(){return c(this,(function(e){return[2,this.readSync(t)]}))}))},e.prototype.readSync=function(t){var e=this.data.get(t),n=e.dtype,r=e.complexTensors;return"complex64"===n?Kr(this.readSync(r.real.dataId),this.readSync(r.imag.dataId)):this.data.get(t).values},e.prototype.bufferSync=function(t){var e=this.readSync(t.dataId),n=e;if("string"===t.dtype)try{n=e.map((function(t){return ot(t)}))}catch(t){throw new Error("Failed to decode encoded string bytes into utf-8")}return Mn(t.shape,t.dtype,n)},e.prototype.makeOutput=function(t,e,n){var r=this.write(t,e,n);return Ot.makeTensorFromDataId(r,e,n,this)},e.prototype.disposeData=function(t){if(this.data.has(t)){var e=this.data.get(t).complexTensors;null!=e&&(e.real.dispose(),e.imag.dispose()),this.data.delete(t)}},e.prototype.time=function(t){return u(this,void 0,void 0,(function(){var e;return c(this,(function(n){return e=et(),t(),[2,{kernelMs:et()-e}]}))}))},e.prototype.memory=function(){return{unreliable:!0,reasons:["The reported memory is an upper bound. Due to automatic garbage collection, the true allocated memory may be less."]}},e.prototype.complex=function(t,e){var n=this.makeOutput(null,t.shape,"complex64");return this.data.get(n.dataId).complexTensors={real:Ot.keep(t.clone()),imag:Ot.keep(e.clone())},n},e.prototype.real=function(t){return this.data.get(t.dataId).complexTensors.real.clone()},e.prototype.imag=function(t){return this.data.get(t.dataId).complexTensors.imag.clone()},e.prototype.slice=function(t,e,n){if(wl(t,"slice"),wr(t.shape,e,n)){var r=Er(e,t.strides),o=R(n);return rn(this.readSync(t.dataId).subarray(r,r+o),n,t.dtype)}for(var a=Mn(n,t.dtype),i=this.bufferSync(t),s=0;s<a.size;++s){var u=a.indexToLoc(s).map((function(t,n){return t+e[n]}));a.values[s]=i.get.apply(i,u)}return a.toTensor()},e.prototype.stridedSlice=function(t,e,n,r){wl(t,"stridedSlice");var o=yr(e,n,r);if(o.some((function(t){return 0===t})))return rn([],o);for(var a=Mn(o,t.dtype),i=this.bufferSync(t),s=0;s<a.size;s++){for(var u=a.indexToLoc(s),c=new Array(u.length),l=0;l<c.length;l++)c[l]=u[l]*r[l]+e[l];a.set.apply(a,[i.get.apply(i,c)].concat(u))}return a.toTensor()},e.prototype.diag=function(t){for(var e=this.readSync(t.dataId),n=Mn([t.size,t.size],t.dtype),r=n.values,o=0;o<e.length;o++)r[o*t.size+o]=e[o];return n.toTensor()},e.prototype.unstack=function(t,e){for(var n=t.shape[e],r=new Array(t.rank-1),o=0,a=0;a<t.rank;a++)a!==e&&(r[o++]=t.shape[a]);var i=new Array(t.rank).fill(0),s=t.shape.slice();s[e]=1;var u=new Array(n);for(a=0;a<u.length;a++)i[e]=a,u[a]=this.slice(t,i,s).reshape(r);return u},e.prototype.reverse=function(t,e){wl(t,"reverse");for(var n=Mn(t.shape,t.dtype),r=this.bufferSync(t),o=function(o){var a=n.indexToLoc(o),i=a.slice();e.forEach((function(e){return i[e]=t.shape[e]-1-i[e]})),n.set.apply(n,[r.get.apply(r,i)].concat(a))},a=0;a<n.size;a++)o(a);return n.toTensor()},e.prototype.concat=function(t,e){var n=this;if("complex64"===t[0].dtype){var r=t.map((function(t){return en(t)})),o=t.map((function(t){return nn(t)}));return tn(this.concat(r,e),this.concat(o,e))}var a=t.map((function(t){var n=R(t.shape.slice(e));return t.as2D(-1,n)})),i=Qe(a.map((function(t){return t.shape})),1),s=Mn(i,t[0].dtype).values;if(1===a[0].shape[0]){var u=0;a.forEach((function(t){s.set(n.readSync(t.dataId),u),u+=t.size}))}else{var c=0;a.forEach((function(t){for(var e=n.readSync(t.dataId),r=0,o=0;o<t.shape[0];++o)for(var a=o*i[1]+c,u=0;u<t.shape[1];++u)s[a+u]=e[r++];c+=t.shape[1]}))}var l=Qe(t.map((function(t){return t.shape})),e);return rn(s,l,t[0].dtype)},e.prototype.neg=function(t){return wl(t,"neg"),this.multiply(an(-1),t)},e.prototype.add=function(t,e){return"complex64"===t.dtype||"complex64"===e.dtype?this.broadcastedBinaryComplexOp(t.cast("complex64"),e.cast("complex64"),(function(t,e,n,r){return{real:t+n,imag:e+r}})):this.broadcastedBinaryOp(t,e,Et(t.dtype,e.dtype),(function(t,e){return t+e}))},e.prototype.addN=function(t){var e=this;wl(t,"addN");for(var n=t.map((function(t){return e.readSync(t.dataId)})),r=Mn(t[0].shape,t[0].dtype),o=r.values,a=0;a<t.length;a++)for(var i=n[a],s=0;s<o.length;s++)o[s]+=i[s];return r.toTensor()},e.prototype.subtract=function(t,e){return"complex64"===t.dtype||"complex64"===e.dtype?this.broadcastedBinaryComplexOp(t.cast("complex64"),e.cast("complex64"),(function(t,e,n,r){return{real:t-n,imag:e-r}})):this.broadcastedBinaryOp(t,e,Et(t.dtype,e.dtype),(function(t,e){return t-e}))},e.prototype.pow=function(t,e){return wl([t,e],"pow"),this.broadcastedBinaryOp(t,e,t.dtype,(function(t,e){return Math.pow(t,e)}))},e.prototype.batchMatMul=function(t,e,n,r){wl([t,e],"matMul");for(var o=n?t.shape[1]:t.shape[2],a=n?t.shape[2]:t.shape[1],i=r?e.shape[1]:e.shape[2],s=t.shape[0],u=this.readSync(t.dataId),c=this.readSync(e.dataId),l=n?[t.strides[0],1,t.strides[1]]:[t.strides[0],t.strides[1],1],f=l[0],h=l[1],p=l[2],d=r?[1,e.strides[1],e.strides[0]]:[e.strides[1],1,e.strides[0]],v=d[0],m=d[1],g=d[2],y=a*i,b=Mn([s,a,i],t.dtype),x=b.values,w=this.blockSize,E=0;E<s;E++)for(var C=0;C<a;C+=w)for(var _=0;_<i;_+=w)for(var k=0;k<o;k+=w)for(var R=Math.min(C+w,a),I=Math.min(_+w,i),S=Math.min(k+w,o),A=C;A<R;A++)for(var O=_;O<I;O++){for(var T=0,D=k;D<S;D++)T+=u[E*f+A*h+D*p]*c[D*v+O*m+E*g];x[E*y+(A*i+O)]+=T}return b.toTensor()},e.prototype.fusedBatchMatMul=function(t){var e=t.a,n=t.b,r=t.transposeA,o=t.transposeB,a=t.bias,i=t.activation,s=t.preluActivationWeights,u=this.batchMatMul(e,n,r,o);return a&&(u=this.add(u,a)),i&&(u=El(this,u,i,s)),u},e.prototype.multiply=function(t,e){return"complex64"===t.dtype||"complex64"===e.dtype?this.broadcastedBinaryComplexOp(t.cast("complex64"),e.cast("complex64"),(function(t,e,n,r){return{real:t*n-e*r,imag:t*r+e*n}})):this.broadcastedBinaryOp(t,e,Et(t.dtype,e.dtype),(function(t,e){return t*e}))},e.prototype.realDivide=function(t,e){return wl([t,e],"realDivide"),this.broadcastedBinaryOp(t,e,"float32",(function(t,e){return t/e}))},e.prototype.floorDiv=function(t,e){return wl([t,e],"floorDiv"),this.broadcastedBinaryOp(t,e,"int32",(function(t,e){return Math.floor(t/e)}))},e.prototype.sum=function(t,e){wl(t,"sum"),Ke("sum",e,t.rank);for(var n=He(t.shape,e),r=n[0],o=n[1],a=hn(r,Et(t.dtype,"int32")),i=R(o),s=this.readSync(a.dataId),u=this.readSync(t.dataId),c=0;c<s.length;++c){for(var l=c*i,f=0,h=0;h<i;++h)f+=u[l+h];s[c]=f}return a},e.prototype.prod=function(t,e){wl(t,"sum");for(var n=He(t.shape,e),r=n[0],o=n[1],a=hn(r,Et(t.dtype,"int32")),i=R(o),s=this.readSync(a.dataId),u=this.readSync(t.dataId),c=0;c<s.length;++c){for(var l=c*i,f=1,h=0;h<i;++h)f*=u[l+h];s[c]=f}return a},e.prototype.unsortedSegmentSum=function(t,e,n){wl(t,"unsortedSegmentSum");for(var r=[],o=t.rank-e.rank,a=0;a<o;++a)e=e.expandDims(a+1);for(a=0;a<n;++a){var i=an(a,"int32"),s=iu(i,e).asType("float32").mul(t).sum(0);r.push(s)}return or(r)},e.prototype.argMin=function(t,e){wl(t,"argMin");var n=[e];Ke("argMin",n,t.rank);for(var r=He(t.shape,n),o=r[0],a=r[1],i=hn(o,"int32"),s=R(a),u=this.readSync(i.dataId),c=this.readSync(t.dataId),l=0;l<u.length;++l){for(var f=l*s,h=c[f],p=0,d=0;d<s;++d){var v=c[f+d];v<h&&(h=v,p=d)}u[l]=p}return i},e.prototype.argMax=function(t,e){wl(t,"argMax");var n=[e];Ke("argMax",n,t.rank);for(var r=He(t.shape,n),o=r[0],a=r[1],i=hn(o,"int32"),s=R(a),u=this.readSync(i.dataId),c=this.readSync(t.dataId),l=0;l<u.length;++l){for(var f=l*s,h=c[f],p=0,d=0;d<s;++d){var v=c[f+d];v>h&&(h=v,p=d)}u[l]=p}return i},e.prototype.cumsum=function(t,e,n,r){if(wl(t,"cumsum"),e!==t.rank-1)throw new Error("backend.cumsum in CPU expects an inner-most axis="+(t.rank-1)+" but got axis="+e);for(var o=Et(t.dtype,"int32"),a=hn(t.shape,o),i=this.readSync(a.dataId),s=this.readSync(t.dataId),u=t.shape[t.rank-1],c=r?function(t,e){return t+u-e-1}:function(t,e){return t+e},l=0;l<s.length;l+=u)for(var f=0;f<u;f++){var h=c(l,f);if(0===f)i[h]=n?0:s[h];else{var p=c(l,f-1);i[h]=n?s[p]+i[p]:s[h]+i[p]}}return a},e.prototype.equal=function(t,e){return wl([t,e],"equal"),this.broadcastedBinaryOp(t,e,"bool",(function(t,e){return t===e?1:0}))},e.prototype.notEqual=function(t,e){return wl([t,e],"notEqual"),this.broadcastedBinaryOp(t,e,"bool",(function(t,e){return t!==e?1:0}))},e.prototype.less=function(t,e){return wl([t,e],"less"),this.broadcastedBinaryOp(t,e,"bool",(function(t,e){return t<e?1:0}))},e.prototype.lessEqual=function(t,e){return wl([t,e],"lessEqual"),this.broadcastedBinaryOp(t,e,"bool",(function(t,e){return t<=e?1:0}))},e.prototype.greater=function(t,e){return wl([t,e],"greater"),this.broadcastedBinaryOp(t,e,"bool",(function(t,e){return t>e?1:0}))},e.prototype.greaterEqual=function(t,e){return wl([t,e],"greaterEqual"),this.broadcastedBinaryOp(t,e,"bool",(function(t,e){return t>=e?1:0}))},e.prototype.logicalNot=function(t){wl(t,"logicalNot");for(var e=this.readSync(t.dataId),n=new Uint8Array(e.length),r=0;r<e.length;++r)n[r]=e[r]?0:1;return this.makeOutput(n,t.shape,"bool")},e.prototype.logicalAnd=function(t,e){return wl([t,e],"logicalAnd"),this.broadcastedBinaryOp(t,e,"bool",(function(t,e){return t&&e}))},e.prototype.logicalOr=function(t,e){return wl([t,e],"logicalOr"),this.broadcastedBinaryOp(t,e,"bool",(function(t,e){return t||e}))},e.prototype.select=function(t,e,n){wl([t,e,n],"select");for(var r=this.readSync(t.dataId),o=this.readSync(e.dataId),a=this.readSync(n.dataId),i=hn(e.shape,Et(e.dtype,n.dtype)),s=this.readSync(i.dataId),u=0,c=0===t.rank||t.rank>1||1===e.rank?1:R(e.shape.slice(1)),l=0;l<r.length;l++)for(var f=0;f<c;f++)1===r[l]?s[u++]=o[l]:s[u++]=a[l];return i},e.prototype.where=function(t){wl([t],"where");var e=this.readSync(t.dataId);return no(t.shape,e)},e.prototype.topk=function(t,e,n){return wl(t,"topk"),eo(this.readSync(t.dataId),t.shape,t.dtype,e)},e.prototype.min=function(t,e){wl(t,"min"),Ke("min",e,t.rank);for(var n=He(t.shape,e),r=n[0],o=n[1],a=hn(r,t.dtype),i=R(o),s=this.readSync(a.dataId),u=this.readSync(t.dataId),c=0;c<s.length;++c){for(var l=c*i,f=u[l],h=0;h<i;++h){var p=u[l+h];p<f&&(f=p)}s[c]=f}return a},e.prototype.minimum=function(t,e){return wl([t,e],"minimum"),this.broadcastedBinaryOp(t,e,t.dtype,(function(t,e){return Math.min(t,e)}))},e.prototype.mod=function(t,e){return wl([t,e],"mod"),this.broadcastedBinaryOp(t,e,t.dtype,(function(t,e){var n=t%e;return t<0&&e<0||t>=0&&e>=0?n:(n+e)%e}))},e.prototype.max=function(t,e){wl(t,"max"),Ke("max",e,t.rank);for(var n=He(t.shape,e),r=n[0],o=n[1],a=hn(r,t.dtype),i=R(o),s=this.readSync(a.dataId),u=this.readSync(t.dataId),c=0;c<s.length;++c){for(var l=c*i,f=u[l],h=0;h<i;++h){var p=u[l+h];p>f&&(f=p)}s[c]=f}return a},e.prototype.maximum=function(t,e){return wl([t,e],"maximum"),this.broadcastedBinaryOp(t,e,t.dtype,(function(t,e){return Math.max(t,e)}))},e.prototype.all=function(t,e){wl(t,"all"),Ke("all",e,t.rank);for(var n=He(t.shape,e),r=n[0],o=n[1],a=hn(r,t.dtype),i=R(o),s=this.readSync(a.dataId),u=this.readSync(t.dataId),c=0;c<s.length;++c){for(var l=c*i,f=u[l],h=0;h<i;++h){var p=u[l+h];f=f&&p}s[c]=f}return a},e.prototype.any=function(t,e){wl(t,"any"),Ke("any",e,t.rank);for(var n=He(t.shape,e),r=n[0],o=n[1],a=hn(r,t.dtype),i=R(o),s=this.readSync(a.dataId),u=this.readSync(t.dataId),c=0;c<s.length;++c){for(var l=c*i,f=u[l],h=0;h<i;++h){var p=u[l+h];f=f||p}s[c]=f}return a},e.prototype.squaredDifference=function(t,e){return wl([t,e],"squaredDifference"),this.broadcastedBinaryOp(t,e,t.dtype,(function(t,e){var n=t-e;return n*n}))},e.prototype.ceil=function(t){wl(t,"ceil");for(var e=this.readSync(t.dataId),n=new Float32Array(e.length),r=0;r<e.length;++r)n[r]=Math.ceil(e[r]);return this.makeOutput(n,t.shape,"float32")},e.prototype.floor=function(t){wl(t,"floor");for(var e=this.readSync(t.dataId),n=new Float32Array(e.length),r=0;r<e.length;++r)n[r]=Math.floor(e[r]);return this.makeOutput(n,t.shape,"float32")},e.prototype.sign=function(t){wl(t,"x");for(var e=this.readSync(t.dataId),n=new Float32Array(e.length),r=0;r<e.length;++r)e[r]<0?n[r]=-1:e[r]>0?n[r]=1:n[r]=0;return this.makeOutput(n,t.shape,"float32")},e.prototype.isNaN=function(t){wl(t,"x");for(var e=this.readSync(t.dataId),n=new Uint8Array(e.length),r=0;r<e.length;++r)Number.isNaN(e[r])&&(n[r]=1);return this.makeOutput(n,t.shape,"bool")},e.prototype.isInf=function(t){wl(t,"x");for(var e=this.readSync(t.dataId),n=new Uint8Array(e.length),r=0;r<e.length;++r)Math.abs(e[r])===1/0&&(n[r]=1);return this.makeOutput(n,t.shape,"bool")},e.prototype.isFinite=function(t){wl(t,"x");for(var e=this.readSync(t.dataId),n=new Uint8Array(e.length),r=0;r<e.length;++r)Number.isFinite(e[r])&&(n[r]=1);return this.makeOutput(n,t.shape,"bool")},e.prototype.round=function(t){wl(t,"round");for(var e=this.readSync(t.dataId),n=new Float32Array(e.length),r=0;r<e.length;++r){var o=Math.floor(e[r]);e[r]-o<.5?n[r]=Math.floor(e[r]):e[r]-o>.5?n[r]=Math.ceil(e[r]):n[r]=o%2==0?o:o+1}return this.makeOutput(n,t.shape,"float32")},e.prototype.exp=function(t){wl(t,"exp");for(var e=this.readSync(t.dataId),n=new Float32Array(e.length),r=0;r<e.length;++r)n[r]=Math.exp(e[r]);return this.makeOutput(n,t.shape,"float32")},e.prototype.expm1=function(t){wl(t,"expm1");for(var e=this.readSync(t.dataId),n=new Float32Array(e.length),r=0;r<e.length;++r)n[r]=Math.expm1(e[r]);return this.makeOutput(n,t.shape,"float32")},e.prototype.log=function(t){wl(t,"log");for(var e=this.readSync(t.dataId),n=new Float32Array(e.length),r=0;r<e.length;++r){var o=e[r];n[r]=Math.log(o)}return this.makeOutput(n,t.shape,"float32")},e.prototype.log1p=function(t){wl(t,"log1p");for(var e=this.readSync(t.dataId),n=new Float32Array(e.length),r=0;r<e.length;++r){var o=e[r];n[r]=Math.log1p(o)}return this.makeOutput(n,t.shape,"float32")},e.prototype.sqrt=function(t){wl(t,"sqrt");for(var e=this.readSync(t.dataId),n=new Float32Array(e.length),r=0;r<e.length;++r){var o=e[r];n[r]=Math.sqrt(o)}return this.makeOutput(n,t.shape,"float32")},e.prototype.rsqrt=function(t){wl(t,"rsqrt");for(var e=this.readSync(t.dataId),n=new Float32Array(e.length),r=0;r<e.length;++r){var o=e[r];n[r]=1/Math.sqrt(o)}return this.makeOutput(n,t.shape,"float32")},e.prototype.reciprocal=function(t){wl(t,"reciprocal");for(var e=this.readSync(t.dataId),n=new Float32Array(e.length),r=0;r<e.length;++r)n[r]=1/e[r];return this.makeOutput(n,t.shape,"float32")},e.prototype.linear=function(t){return t},e.prototype.relu=function(t){wl(t,"relu");for(var e=hn(t.shape,t.dtype),n=this.readSync(e.dataId),r=this.readSync(t.dataId),o=0;o<r.length;++o)n[o]=Math.max(0,r[o]);return e},e.prototype.relu6=function(t){wl(t,"relu");for(var e=hn(t.shape,t.dtype),n=this.readSync(e.dataId),r=this.readSync(t.dataId),o=0;o<r.length;++o)n[o]=Math.min(Math.max(0,r[o]),6);return e},e.prototype.prelu=function(t,e){return wl([t,e],"prelu"),this.broadcastedBinaryOp(t,e,t.dtype,(function(t,e){return t<0?e*t:t}))},e.prototype.elu=function(t){wl(t,"elu");for(var e=new Float32Array(t.size),n=this.readSync(t.dataId),r=0;r<n.length;++r){var o=n[r];e[r]=o>=0?o:Math.exp(o)-1}return this.makeOutput(e,t.shape,"float32")},e.prototype.eluDer=function(t,e){wl([t,e],"eluDer");for(var n=new Float32Array(e.size),r=this.readSync(e.dataId),o=this.readSync(t.dataId),a=0;a<r.length;++a){var i=r[a];n[a]=i>=1?o[a]:o[a]*(i+1)}return this.makeOutput(n,e.shape,"float32")},e.prototype.selu=function(t){wl(t,"selu");for(var e=new Float32Array(t.size),n=this.readSync(t.dataId),r=0;r<n.length;++r){var o=n[r];e[r]=o>=0?1.0507009873554805*o:1.7580993408473768*(Math.exp(o)-1)}return this.makeOutput(e,t.shape,"float32")},e.prototype.clip=function(t,e,n){wl(t,"clip");for(var r=new Float32Array(t.size),o=this.readSync(t.dataId),a=0;a<o.length;++a){var i=o[a];r[a]=i>n?n:i<e?e:i}return this.makeOutput(r,t.shape,"float32")},e.prototype.abs=function(t){for(var e=new Float32Array(t.size),n=this.readSync(t.dataId),r=0;r<n.length;++r)e[r]=Math.abs(n[r]);return this.makeOutput(e,t.shape,"float32")},e.prototype.complexAbs=function(t){for(var e=new Float32Array(t.size),n=this.readSync(t.dataId),r=0;r<t.size;++r){var o=n[2*r],a=n[2*r+1];e[r]=Math.hypot(o,a)}return this.makeOutput(e,t.shape,"float32")},e.prototype.int=function(t){wl(t,"int");for(var e=new Int32Array(t.size),n=this.readSync(t.dataId),r=0;r<n.length;++r)e[r]=n[r];return this.makeOutput(e,t.shape,"int32")},e.prototype.sigmoid=function(t){wl(t,"sigmoid");for(var e=new Float32Array(t.size),n=this.readSync(t.dataId),r=0;r<n.length;++r)e[r]=1/(1+Math.exp(-n[r]));return this.makeOutput(e,t.shape,"float32")},e.prototype.softplus=function(t){wl(t,"softplus");for(var e=Math.log(1.1920928955078125e-7)+2,n=new Float32Array(t.size),r=this.readSync(t.dataId),o=0;o<r.length;++o){var a,i=r[o]>-e,s=r[o]<e,u=Math.exp(r[o]);a=s?u:i?r[o]:Math.log(1+u),n[o]=a}return this.makeOutput(n,t.shape,"float32")},e.prototype.sin=function(t){wl(t,"sin");for(var e=new Float32Array(t.size),n=this.readSync(t.dataId),r=0;r<n.length;++r)e[r]=Math.sin(n[r]);return this.makeOutput(e,t.shape,"float32")},e.prototype.cos=function(t){wl(t,"cos");for(var e=new Float32Array(t.size),n=this.readSync(t.dataId),r=0;r<n.length;++r)e[r]=Math.cos(n[r]);return this.makeOutput(e,t.shape,"float32")},e.prototype.tan=function(t){wl(t,"tan");for(var e=new Float32Array(t.size),n=this.readSync(t.dataId),r=0;r<n.length;++r)e[r]=Math.tan(n[r]);return this.makeOutput(e,t.shape,"float32")},e.prototype.asin=function(t){wl(t,"asin");for(var e=new Float32Array(t.size),n=this.readSync(t.dataId),r=0;r<n.length;++r)e[r]=Math.asin(n[r]);return this.makeOutput(e,t.shape,"float32")},e.prototype.acos=function(t){wl(t,"acos");for(var e=new Float32Array(t.size),n=this.readSync(t.dataId),r=0;r<n.length;++r)e[r]=Math.acos(n[r]);return this.makeOutput(e,t.shape,"float32")},e.prototype.atan=function(t){wl(t,"atan");for(var e=new Float32Array(t.size),n=this.readSync(t.dataId),r=0;r<n.length;++r)e[r]=Math.atan(n[r]);return this.makeOutput(e,t.shape,"float32")},e.prototype.atan2=function(t,e){return wl([t,e],"atan2"),this.broadcastedBinaryOp(t,e,t.dtype,(function(t,e){return Math.atan2(t,e)}))},e.prototype.sinh=function(t){wl(t,"sinh");for(var e=new Float32Array(t.size),n=this.readSync(t.dataId),r=0;r<n.length;++r)e[r]=Math.sinh(n[r]);return this.makeOutput(e,t.shape,"float32")},e.prototype.cosh=function(t){wl(t,"cosh");for(var e=new Float32Array(t.size),n=this.readSync(t.dataId),r=0;r<n.length;++r)e[r]=Math.cosh(n[r]);return this.makeOutput(e,t.shape,"float32")},e.prototype.tanh=function(t){wl(t,"tanh");for(var e=new Float32Array(t.size),n=this.readSync(t.dataId),r=0;r<n.length;++r)e[r]=A(n[r]);return this.makeOutput(e,t.shape,"float32")},e.prototype.asinh=function(t){wl(t,"asinh");for(var e=new Float32Array(t.size),n=this.readSync(t.dataId),r=0;r<n.length;++r)e[r]=Math.asinh(n[r]);return this.makeOutput(e,t.shape,"float32")},e.prototype.acosh=function(t){wl(t,"acosh");for(var e=new Float32Array(t.size),n=this.readSync(t.dataId),r=0;r<n.length;++r)e[r]=Math.acosh(n[r]);return this.makeOutput(e,t.shape,"float32")},e.prototype.atanh=function(t){wl(t,"atanh");for(var e=new Float32Array(t.size),n=this.readSync(t.dataId),r=0;r<n.length;++r)e[r]=Math.atanh(n[r]);return this.makeOutput(e,t.shape,"float32")},e.prototype.erf=function(t){wl(t,"erf");for(var e=new Float32Array(t.size),n=this.readSync(t.dataId),r=0;r<n.length;++r){var o=Math.sign(n[r]),a=Math.abs(n[r]),i=1/(1+.3275911*a);e[r]=o*(1-((((1.061405429*i-1.453152027)*i+1.421413741)*i-.284496736)*i+.254829592)*i*Math.exp(-a*a))}return this.makeOutput(e,t.shape,"float32")},e.prototype.step=function(t,e){void 0===e&&(e=0),wl(t,"step");for(var n=new Float32Array(t.size),r=this.readSync(t.dataId),o=0;o<r.length;++o){var a=r[o];isNaN(a)?n[o]=NaN:n[o]=a>0?1:e}return this.makeOutput(n,t.shape,"float32")},e.prototype.fusedConv2d=function(t){var e=t.input,n=t.filter,r=t.convInfo,o=t.bias,a=t.activation,i=t.preluActivationWeights,s=this.conv2d(e,n,r);return o&&(s=this.add(s,o)),a&&(s=El(this,s,a,i)),s},e.prototype.conv2d=function(t,e,n){wl([t,e],"conv2d");for(var r=n.filterHeight,o=n.filterWidth,a=n.dilationHeight,i=n.dilationWidth,s=n.padInfo.left,u=n.padInfo.top,c="channelsLast"===n.dataFormat,l=Mn(n.outShape,t.dtype),f=t.strides[0],h=c?t.strides[1]:t.strides[2],p=c?t.strides[2]:1,d=c?1:t.strides[1],v=l.strides[0],m=c?l.strides[1]:l.strides[2],g=c?l.strides[2]:1,y=c?1:l.strides[1],b=this.readSync(t.dataId),x=this.readSync(e.dataId),w=l.values,E=0;E<n.batchSize;++E)for(var C=E*f,_=E*v,k=0;k<n.outHeight;++k)for(var R=_+k*m,I=k*n.strideHeight-u,S=0;S<r;S++){var A=I+S*a;if(!(A<0||A>=n.inHeight))for(var O=S*e.strides[0],T=C+A*h,D=0;D<n.outWidth;++D)for(var N=R+D*g,F=D*n.strideWidth-s,M=0;M<o;M++){var P=F+M*i;if(!(P<0||P>=n.inWidth))for(var B=T+P*p,L=O+M*e.strides[1],W=0;W<n.inChannels;++W){for(var U=b[B+W*d],j=0;j<n.outChannels;++j)w[N+j*y]+=U*x[L+j];L+=n.outChannels}}}return l.toTensor()},e.prototype.conv3d=function(t,e,n){for(var r=n.filterDepth,o=n.filterHeight,a=n.filterWidth,i=n.dilationDepth,s=n.dilationHeight,u=n.dilationWidth,c=n.padInfo.front,l=n.padInfo.left,f=n.padInfo.top,h=Mn(n.outShape,t.dtype),p=this.readSync(t.dataId),d=this.readSync(e.dataId),v=h.values,m=0;m<n.batchSize;++m)for(var g=m*t.strides[0],y=m*h.strides[0],b=0;b<n.outDepth;++b)for(var x=y+b*h.strides[1],w=b*n.strideDepth-c,E=0;E<r;E++){var C=w+E*i;if(!(C<0||C>=n.inDepth))for(var _=E*e.strides[0],k=g+C*t.strides[1],R=0;R<n.outHeight;++R)for(var I=x+R*h.strides[2],S=R*n.strideHeight-f,A=0;A<o;A++){var O=S+A*s;if(!(O<0||O>=n.inHeight))for(var T=_+A*e.strides[1],D=k+O*t.strides[2],N=0;N<n.outWidth;++N)for(var F=I+N*n.outChannels,M=N*n.strideWidth-l,P=0;P<a;P++){var B=M+P*u;if(!(B<0||B>=n.inWidth))for(var L=T+P*e.strides[2],W=D+B*n.inChannels,U=L,j=0;j<n.inChannels;++j){for(var z=p[W+j],V=0;V<n.outChannels;++V)v[F+V]+=z*d[U+V];U+=n.outChannels}}}}return h.toTensor()},e.prototype.conv2dDerInput=function(t,e,n){wl([t,e],"conv2dDerInput");for(var r=Mn(n.inShape,"float32"),o=r.values,a=this.readSync(t.dataId),i=this.readSync(e.dataId),s=e.strides,u=s[0],c=s[1],l=s[2],f=n.batchSize,h=n.filterHeight,p=n.filterWidth,d=n.inChannels,v=n.inHeight,m=n.inWidth,g=n.outChannels,y=n.outHeight,b=n.outWidth,x=n.strideHeight,w=n.strideWidth,E=n.dataFormat,C=h-1-n.padInfo.top,_=p-1-n.padInfo.left,k="channelsLast"===E,R=r.strides[0],I=k?r.strides[1]:r.strides[2],S=k?r.strides[2]:1,A=k?1:r.strides[1],O=t.strides[0],T=k?t.strides[1]:t.strides[2],D=k?t.strides[2]:1,N=k?1:t.strides[1],F=0;F<f;++F)for(var M=0;M<d;++M)for(var P=0;P<v;++P)for(var B=P-C,L=Math.max(0,Math.ceil(B/x)),W=Math.min(y,(h+B)/x),U=0;U<m;++U){for(var j=U-_,z=Math.max(0,Math.ceil(j/w)),V=Math.min(b,(p+j)/w),G=0,H=L;H<W;++H)for(var q=H*x-B,K=z;K<V;++K)for(var X=O*F+T*H+D*K,$=u*(h-1-q)+c*(p-1-(K*w-j))+l*M,Y=0;Y<g;++Y)G+=a[X+N*Y]*i[$+Y];o[R*F+I*P+S*U+A*M]=G}return r.toTensor()},e.prototype.conv3dDerInput=function(t,e,n){for(var r=Mn(n.inShape,"float32"),o=r.values,a=r.strides,i=a[0],s=a[1],u=a[2],c=a[3],l=this.readSync(t.dataId),f=t.strides,h=f[0],p=f[1],d=f[2],v=f[3],m=this.readSync(e.dataId),g=e.strides,y=g[0],b=g[1],x=g[2],w=g[3],E=n.batchSize,C=n.filterDepth,_=n.filterHeight,k=n.filterWidth,R=n.inChannels,I=n.inDepth,S=n.inHeight,A=n.inWidth,O=n.outChannels,T=n.outDepth,D=n.outHeight,N=n.outWidth,F=n.strideDepth,M=n.strideHeight,P=n.strideWidth,B=C-1-n.padInfo.front,L=_-1-n.padInfo.top,W=k-1-n.padInfo.left,U=0;U<E;++U)for(var j=0;j<R;++j)for(var z=0;z<I;++z)for(var V=z-B,G=Math.max(0,Math.ceil(V/F)),H=Math.min(T,(C+V)/F),q=0;q<S;++q)for(var K=q-L,X=Math.max(0,Math.ceil(K/M)),$=Math.min(D,(_+K)/M),Y=0;Y<A;++Y){for(var J=Y-W,Q=Math.max(0,Math.ceil(J/P)),Z=Math.min(N,(k+J)/P),tt=0,et=G;et<H;++et)for(var nt=et*F-V,rt=X;rt<$;++rt)for(var ot=rt*M-K,at=Q;at<Z;++at)for(var it=h*U+p*et+d*rt+v*at,st=y*(C-1-nt)+b*(_-1-ot)+x*(k-1-(at*P-J))+w*j,ut=0;ut<O;++ut)tt+=l[it+ut]*m[st+ut];o[i*U+s*z+u*q+c*Y+j]=tt}return r.toTensor()},e.prototype.conv2dDerFilter=function(t,e,n){wl([t,e],"conv2dDerFilter");for(var r=n.strideHeight,o=n.strideWidth,a=n.filterHeight,i=n.filterWidth,s="channelsLast"===n.dataFormat,u=Mn(n.filterShape,"float32"),c=n.padInfo.left,l=n.padInfo.top,f=this.bufferSync(t),h=this.bufferSync(e),p=0;p<a;++p)for(var d=Math.max(0,Math.ceil((l-p)/r)),v=Math.min(n.outHeight,(n.inHeight+l-p)/r),m=0;m<i;++m)for(var g=Math.max(0,Math.ceil((c-m)/o)),y=Math.min(n.outWidth,(n.inWidth+c-m)/o),b=0;b<n.inChannels;++b)for(var x=0;x<n.outChannels;++x){for(var w=0,E=0;E<n.batchSize;++E)for(var C=d;C<v;++C)for(var _=p+C*r-l,k=g;k<y;++k){var R=m+k*o-c;w+=s?f.get(E,_,R,b)*h.get(E,C,k,x):f.get(E,b,_,R)*h.get(E,x,C,k)}u.set(w,p,m,b,x)}return u.toTensor()},e.prototype.conv3dDerFilter=function(t,e,n){for(var r=n.strideDepth,o=n.strideHeight,a=n.strideWidth,i=n.filterDepth,s=n.filterHeight,u=n.filterWidth,c=Mn(n.filterShape,"float32"),l=c.values,f=c.strides,h=f[0],p=f[1],d=f[2],v=f[3],m=this.readSync(e.dataId),g=e.strides,y=g[0],b=g[1],x=g[2],w=g[3],E=this.readSync(t.dataId),C=t.strides,_=C[0],k=C[1],R=C[2],I=C[3],S=n.padInfo.front,A=n.padInfo.left,O=n.padInfo.top,T=0;T<i;++T)for(var D=Math.max(0,Math.ceil((S-T)/r)),N=Math.min(n.outDepth,(n.inDepth+S-T)/r),F=T*h,M=0;M<s;++M)for(var P=Math.max(0,Math.ceil((O-M)/o)),B=Math.min(n.outHeight,(n.inHeight+O-M)/o),L=M*p+F,W=0;W<u;++W)for(var U=Math.max(0,Math.ceil((A-W)/a)),j=Math.min(n.outWidth,(n.inWidth+A-W)/a),z=W*d+L,V=0;V<n.inChannels;++V)for(var G=V*v+z,H=0;H<n.outChannels;++H){for(var q=0,K=0;K<n.batchSize;++K)for(var X=K*_,$=K*y,Y=D;Y<N;++Y)for(var J=(T+Y*r-S)*k+X,Q=Y*b+$,Z=P;Z<B;++Z)for(var tt=(M+Z*o-O)*R+J,et=Z*x+Q,nt=U;nt<j;++nt){var rt=nt*w+et;q+=E[(W+nt*a-A)*I+tt+V]*m[rt+H]}l[G+H]=q}return c.toTensor()},e.prototype.fusedDepthwiseConv2D=function(t){var e=t.input,n=t.filter,r=t.convInfo,o=t.bias,a=t.activation,i=t.preluActivationWeights,s=this.depthwiseConv2D(e,n,r);return o&&(s=this.add(s,o)),a&&(s=El(this,s,a,i)),s},e.prototype.depthwiseConv2D=function(t,e,n){wl([t,e],"depthwiseConv2D");for(var r=n.filterHeight,o=n.filterWidth,a=n.dilationHeight,i=n.dilationWidth,s=n.padInfo.left,u=n.padInfo.top,c=n.outChannels/n.inChannels,l=Mn(n.outShape,t.dtype),f=this.readSync(t.dataId),h=this.readSync(e.dataId),p=l.values,d=0;d<n.batchSize;++d)for(var v=d*t.strides[0],m=d*l.strides[0],g=0;g<n.outHeight;++g)for(var y=m+g*l.strides[1],b=g*n.strideHeight-s,x=0;x<r;++x){var w=b+x*a;if(!(w<0||w>=n.inHeight))for(var E=x*e.strides[0],C=v+w*t.strides[1],_=0;_<n.outWidth;++_)for(var k=y+_*l.strides[2],R=_*n.strideWidth-u,I=0;I<o;++I){var S=R+I*i;if(!(S<0||S>=n.inWidth))for(var A=E+I*e.strides[1],O=C+S*n.inChannels,T=k,D=A,N=0;N<n.inChannels;++N){for(var F=f[O+N],M=0;M<c;++M)p[T+M]+=F*h[D+M];T+=c,D+=c}}}return l.toTensor()},e.prototype.depthwiseConv2DDerInput=function(t,e,n){wl([t,e],"depthwiseConv2DDerInput");for(var r=Mn(n.inShape,"float32"),o=r.values,a=r.strides,i=a[0],s=a[1],u=a[2],c=this.readSync(t.dataId),l=t.strides,f=l[0],h=l[1],p=l[2],d=this.readSync(e.dataId),v=e.strides,m=v[0],g=v[1],y=v[2],b=n.batchSize,x=n.filterHeight,w=n.filterWidth,E=n.inChannels,C=n.inHeight,_=n.inWidth,k=n.outChannels,R=n.outHeight,I=n.outWidth,S=n.strideHeight,A=n.strideWidth,O=x-1-n.padInfo.top,T=w-1-n.padInfo.left,D=k/E,N=0;N<b;++N)for(var F=0;F<E;++F)for(var M=0;M<C;++M)for(var P=M-O,B=Math.max(0,Math.ceil(P/S)),L=Math.min(R,(x+P)/S),W=0;W<_;++W){for(var U=W-T,j=Math.max(0,Math.ceil(U/A)),z=Math.min(I,(w+U)/A),V=0,G=B;G<L;++G)for(var H=G*S-P,q=j;q<z;++q)for(var K=f*N+h*G+p*q,X=m*(x-1-H)+g*(w-1-(q*A-U))+y*F,$=0;$<D;++$)V+=c[K+(F*D+$)]*d[X+$];o[i*N+s*M+u*W+F]=V}return r.toTensor()},e.prototype.depthwiseConv2DDerFilter=function(t,e,n){wl([t,e],"depthwiseConv2DDerFilter");for(var r=n.strideHeight,o=n.strideWidth,a=n.filterHeight,i=n.filterWidth,s=Mn(n.filterShape,"float32"),u=n.padInfo.left,c=n.padInfo.top,l=n.outChannels/n.inChannels,f=this.bufferSync(t),h=this.bufferSync(e),p=0;p<a;++p)for(var d=Math.max(0,Math.ceil((c-p)/r)),v=Math.min(n.outHeight,(n.inHeight+c-p)/r),m=0;m<i;++m)for(var g=Math.max(0,Math.ceil((u-m)/o)),y=Math.min(n.outWidth,(n.inWidth+u-m)/o),b=0;b<n.outChannels;++b){for(var x=Math.trunc(b/l),w=b%l,E=0,C=0;C<n.batchSize;++C)for(var _=d;_<v;++_)for(var k=p+_*r-c,R=g;R<y;++R){var I=m+R*o-u;E+=f.get(C,k,I,x)*h.get(C,_,R,b)}s.set(E,p,m,x,w)}return s.toTensor()},e.prototype.tile=function(t,e){return wl(t,"tile"),to(this.bufferSync(t),e)},e.prototype.pad=function(t,e,n){wl(t,"pad");var r=e.map((function(e,n){return e[0]+t.shape[n]+e[1]})),o=e.map((function(t){return t[0]})),a=this.bufferSync(t),i=Mn(r,t.dtype);0!==n&&i.values.fill(n);for(var s=0;s<t.size;s++){var u=a.indexToLoc(s),c=u.map((function(t,e){return t+o[e]}));i.set.apply(i,[a.get.apply(a,u)].concat(c))}return i.toTensor()},e.prototype.transpose=function(t,e){wl(t,"transpose");for(var n=new Array(t.rank),r=0;r<n.length;r++)n[r]=t.shape[e[r]];var o=this.readSync(t.dataId),a=Mn(n,t.dtype),i=this.bufferSync(t);for(r=0;r<t.size;++r){for(var s=i.indexToLoc(r),u=new Array(s.length),c=0;c<u.length;c++)u[c]=s[e[c]];var l=a.locToIndex(u);a.values[l]=o[r]}return a.toTensor()},e.prototype.gather=function(t,e,n){wl([t,e],"gather");var r=t.shape.slice(),o=this.readSync(e.dataId);r[n]=o.length;for(var a=Mn(r,t.dtype),i=this.bufferSync(t),s=0;s<a.size;++s){var u=a.indexToLoc(s),c=u.slice();c[n]=o[u[n]];var l=i.locToIndex(c);a.values[s]=i.values[l]}return a.toTensor()},e.prototype.batchToSpaceND=function(t,e,n){wl([t],"batchToSpaceND");var r=e.reduce((function(t,e){return t*e})),o=ur(t.shape,e,r),a=cr(o.length,e.length),i=lr(t.shape,e,r),s=fr(n,e.length),u=hr(i,n,e.length);return t.reshape(o).transpose(a).reshape(i).slice(s,u)},e.prototype.spaceToBatchND=function(t,e,n){wl([t],"spaceToBatchND");var r=e.reduce((function(t,e){return t*e})),o=[[0,0]];o.push.apply(o,n);for(var a=1+e.length;a<t.shape.length;++a)o.push([0,0]);var i=t.pad(o),s=ur(i.shape,e,r,!1),u=cr(s.length,e.length,!1),c=lr(i.shape,e,r,!1);return i.reshape(s).transpose(u).reshape(c)},e.prototype.pool=function(t,e,n){wl(t,"pool");for(var r=e.strideHeight,o=e.strideWidth,a=e.dilationHeight,i=e.dilationWidth,s=e.effectiveFilterHeight,u=e.effectiveFilterWidth,c=e.padInfo.top,l=e.padInfo.left,f="max"===n?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,h=this.readSync(t.dataId),p=Mn(e.outShape,t.dtype),d=p.values,v=e.outShape[1]*e.outShape[2]*e.outShape[3],m=e.outShape[2]*e.outShape[3],g=e.outShape[3],y=0;y<e.batchSize;++y)for(var b=y*v,x=y*t.strides[0],w=0;w<e.inChannels;++w)for(var E=0;E<e.outHeight;++E)for(var C=E*r-c,_=Math.max(0,C),k=Math.min(e.inHeight,s+C),R=b+E*m,I=0;I<e.outWidth;++I){for(var S=I*o-l,A=Math.max(0,S),O=Math.min(e.inWidth,u+S),T=f,D=0,N=0,F=_;F<k;F+=a){for(var M=x+F*t.strides[1],P=A;P<O;P+=i){var B=h[M+P*t.strides[2]+w];"max"===n&&B>T?T=B:"avg"===n&&(D+=B,N++)}if(isNaN(T))break}d[R+I*g+w]="avg"===n?D/N:T}return p.toTensor()},e.prototype.maxPool=function(t,e){return this.pool(t,e,"max")},e.prototype.maxPoolPositions=function(t,e){for(var n=Mn(e.outShape,"int32"),r=e.strideHeight,o=e.strideWidth,a=e.dilationHeight,i=e.dilationWidth,s=e.effectiveFilterHeight,u=e.effectiveFilterWidth,c=e.padInfo.top,l=e.padInfo.left,f=this.bufferSync(t),h=0;h<e.batchSize;++h)for(var p=0;p<e.inChannels;++p)for(var d=0;d<e.outHeight;++d){for(var v=d*r-c,m=v;m<0;)m+=a;for(var g=Math.min(e.inHeight,s+v),y=0;y<e.outWidth;++y){for(var b=y*o-l,x=b;x<0;)x+=i;for(var w=Math.min(e.inWidth,u+b),E=Number.NEGATIVE_INFINITY,C=-1,_=m;_<g;_+=a)for(var k=_-v,R=x;R<w;R+=i){var I=R-b,S=f.get(h,_,R,p);S>E&&(E=S,C=k*u+I)}n.set(C,h,d,y,p)}}return n.toTensor()},e.prototype.maxPoolBackprop=function(t,e,n,r){wl([e,n],"maxPoolBackprop");for(var o=this.maxPoolPositions(e,r),a=r.strideHeight,i=r.strideWidth,s=r.dilationHeight,u=r.dilationWidth,c=r.effectiveFilterHeight,l=r.effectiveFilterWidth,f=l-1-r.padInfo.left,h=c-1-r.padInfo.top,p=Mn(e.shape,"float32"),d=this.bufferSync(o),v=this.bufferSync(t),m=0;m<r.batchSize;++m)for(var g=0;g<r.inChannels;++g)for(var y=0;y<r.inHeight;++y)for(var b=0;b<r.inWidth;++b){for(var x=y-h,w=b-f,E=0,C=0;C<c;C+=s){var _=(x+C)/a;if(!(_<0||_>=r.outHeight||Math.floor(_)!==_))for(var k=0;k<l;k+=u){var R=(w+k)/i;if(!(R<0||R>=r.outWidth||Math.floor(R)!==R)){var I=c*l-1-d.get(m,_,R,g)===C*l+k?1:0;0!==I&&(E+=v.get(m,_,R,g)*I)}}}p.set(E,m,y,b,g)}return p.toTensor()},e.prototype.avgPoolBackprop=function(t,e,n){wl([t,e],"avgPoolBackprop");for(var r=n.strideHeight,o=n.strideWidth,a=n.filterHeight,i=n.filterWidth,s=n.dilationHeight,u=n.dilationWidth,c=n.effectiveFilterHeight,l=n.effectiveFilterWidth,f=l-1-n.padInfo.left,h=c-1-n.padInfo.top,p=Mn(e.shape,"float32"),d=1/(a*i),v=this.bufferSync(t),m=0;m<n.batchSize;++m)for(var g=0;g<n.inChannels;++g)for(var y=0;y<n.inHeight;++y)for(var b=0;b<n.inWidth;++b){for(var x=y-h,w=b-f,E=0,C=0;C<c;C+=s){var _=(x+C)/r;if(!(_<0||_>=n.outHeight||Math.floor(_)!==_))for(var k=0;k<l;k+=u){var R=(w+k)/o;R<0||R>=n.outWidth||Math.floor(R)!==R||(E+=v.get(m,_,R,g))}}p.set(E*d,m,y,b,g)}return p.toTensor()},e.prototype.pool3d=function(t,e,n){wl(t,"pool3d");for(var r=e.strideDepth,o=e.strideHeight,a=e.strideWidth,i=e.dilationDepth,s=e.dilationHeight,u=e.dilationWidth,c=e.effectiveFilterDepth,l=e.effectiveFilterHeight,f=e.effectiveFilterWidth,h=e.padInfo.front,p=e.padInfo.top,d=e.padInfo.left,v="max"===n?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,m=this.readSync(t.dataId),g=Mn(e.outShape,t.dtype),y=g.values,b=e.outShape[1]*e.outShape[2]*e.outShape[3]*e.outShape[4],x=e.outShape[2]*e.outShape[3]*e.outShape[4],w=e.outShape[3]*e.outShape[4],E=e.outShape[4],C=0;C<e.batchSize;++C)for(var _=C*b,k=C*t.strides[0],R=0;R<e.inChannels;++R)for(var I=0;I<e.outDepth;++I){for(var S=I*r-h,A=S;A<0;)A+=i;for(var O=Math.min(e.inDepth,c+S),T=_+I*x,D=0;D<e.outHeight;++D){for(var N=D*o-p,F=N;F<0;)F+=s;for(var M=Math.min(e.inHeight,l+N),P=T+D*w,B=0;B<e.outWidth;++B){for(var L=B*a-d,W=L;W<0;)W+=u;for(var U=Math.min(e.inWidth,f+L),j=P+B*E,z=v,V=0,G=0,H=A;H<O;H+=i){for(var q=k+H*t.strides[1],K=F;K<M;K+=s){for(var X=q+K*t.strides[2],$=W;$<U;$+=u){var Y=m[X+$*t.strides[3]+R];if("max"===n&&Y>z?z=Y:"avg"===n&&(V+=Y,G++),isNaN(z))break}if(isNaN(z))break}if(isNaN(z))break}y[j+R]="avg"===n?V/G:z}}}return g.toTensor()},e.prototype.avgPool3d=function(t,e){return wl(t,"avgPool3d"),this.pool3d(t,e,"avg").toFloat()},e.prototype.avgPool3dBackprop=function(t,e,n){wl([t,e],"avgPool3dBackprop");for(var r=n.strideDepth,o=n.strideHeight,a=n.strideWidth,i=n.filterDepth,s=n.filterHeight,u=n.filterWidth,c=n.dilationDepth,l=n.dilationHeight,f=n.dilationWidth,h=n.effectiveFilterDepth,p=n.effectiveFilterHeight,d=n.effectiveFilterWidth,v=h-1-n.padInfo.front,m=d-1-n.padInfo.left,g=p-1-n.padInfo.top,y=Mn(e.shape,"float32"),b=1/(i*s*u),x=this.bufferSync(t),w=0;w<n.batchSize;++w)for(var E=0;E<n.inChannels;++E)for(var C=0;C<n.inDepth;++C)for(var _=0;_<n.inHeight;++_)for(var k=0;k<n.inWidth;++k){for(var R=C-v,I=_-g,S=k-m,A=0,O=0;O<h;O+=c){var T=(R+O)/r;if(!(T<0||T>=n.outDepth||Math.floor(T)!==T))for(var D=0;D<p;D+=l){var N=(I+D)/o;if(!(N<0||N>=n.outHeight||Math.floor(N)!==N))for(var F=0;F<d;F+=f){var M=(S+F)/a;M<0||M>=n.outWidth||Math.floor(M)!==M||(A+=x.get(w,T,N,M,E))}}}y.set(A*b,w,C,_,k,E)}return y.toTensor()},e.prototype.maxPool3d=function(t,e){return wl(t,"maxPool3d"),this.pool3d(t,e,"max").toFloat()},e.prototype.maxPool3dPositions=function(t,e){for(var n=Mn(e.outShape,"int32"),r=e.strideDepth,o=e.strideHeight,a=e.strideWidth,i=e.dilationDepth,s=e.dilationHeight,u=e.dilationWidth,c=e.effectiveFilterDepth,l=e.effectiveFilterHeight,f=e.effectiveFilterWidth,h=e.padInfo.front,p=e.padInfo.top,d=e.padInfo.left,v=this.bufferSync(t),m=0;m<e.batchSize;++m)for(var g=0;g<e.inChannels;++g)for(var y=0;y<e.outDepth;++y){for(var b=y*r-h,x=b;x<0;)x+=i;for(var w=Math.min(e.inDepth,c+b),E=0;E<e.outHeight;++E){for(var C=E*o-p,_=C;_<0;)_+=s;for(var k=Math.min(e.inHeight,l+C),R=0;R<e.outWidth;++R){for(var I=R*a-d,S=I;S<0;)S+=u;for(var A=Math.min(e.inWidth,f+I),O=Number.NEGATIVE_INFINITY,T=-1,D=x;D<w;D+=i)for(var N=D-b,F=_;F<k;F+=s)for(var M=F-C,P=S;P<A;P+=u){var B=P-I,L=v.get(m,D,F,P,g);L>=O&&(O=L,T=N*l*f+M*l+B)}n.set(T,m,y,E,R,g)}}}return n.toTensor()},e.prototype.maxPool3dBackprop=function(t,e,n,r){wl([e,n],"maxPool3dBackprop");for(var o=this.maxPool3dPositions(e,r),a=r.strideDepth,i=r.strideHeight,s=r.strideWidth,u=r.dilationDepth,c=r.dilationHeight,l=r.dilationWidth,f=r.effectiveFilterDepth,h=r.effectiveFilterHeight,p=r.effectiveFilterWidth,d=f-1-r.padInfo.front,v=p-1-r.padInfo.left,m=h-1-r.padInfo.top,g=Mn(e.shape,"float32"),y=this.bufferSync(o),b=this.bufferSync(t),x=0;x<r.batchSize;++x)for(var w=0;w<r.inChannels;++w)for(var E=0;E<r.inDepth;++E)for(var C=0;C<r.inHeight;++C)for(var _=0;_<r.inWidth;++_){for(var k=E-d,R=C-m,I=_-v,S=0,A=0;A<f;A+=u){var O=(k+A)/a;if(!(O<0||O>=r.outDepth||Math.floor(O)!==O))for(var T=0;T<h;T+=c){var D=(R+T)/i;if(!(D<0||D>=r.outHeight||Math.floor(D)!==D))for(var N=0;N<p;N+=l){var F=(I+N)/s;if(!(F<0||F>=r.outWidth||Math.floor(F)!==F)){var M=f*h*p-1-y.get(x,O,D,F,w)===A*h*p+T*p+N?1:0;0!==M&&(S+=b.get(x,O,D,F,w)*M)}}}}g.set(S,x,E,C,_,w)}return g.toTensor()},e.prototype.cast=function(t,e){return Gr(t,e,this)},e.prototype.reshape=function(t,e){return Hr(t,e)},e.prototype.avgPool=function(t,e){return wl(t,"avgPool"),this.pool(t,e,"avg").toFloat()},e.prototype.resizeBilinear=function(t,e,n,r){wl(t,"resizeBilinear");for(var o=t.shape,a=o[0],i=o[1],s=o[2],u=o[3],c=this.readSync(t.dataId),l=new Float32Array(R([a,e,n,u])),f=[r&&e>1?i-1:i,r&&n>1?s-1:s],h=[r&&e>1?e-1:e,r&&n>1?n-1:n],p=0,d=f[0]/h[0],v=f[1]/h[1],m=0;m<a;m++)for(var g=0;g<e;g++)for(var y=d*g,b=Math.floor(y),x=y-b,w=Math.min(i-1,Math.ceil(y)),E=m*t.strides[0]+b*t.strides[1],C=m*t.strides[0]+w*t.strides[1],_=0;_<n;_++)for(var k=v*_,I=Math.floor(k),S=k-I,A=Math.min(s-1,Math.ceil(k)),O=E+I*t.strides[2],T=C+I*t.strides[2],D=E+A*t.strides[2],N=C+A*t.strides[2],F=0;F<u;F++){var M=c[O+F],P=c[T+F],B=M+(c[D+F]-M)*S,L=B+(P+(c[N+F]-P)*S-B)*x;l[p++]=L}return rn(l,[a,e,n,u])},e.prototype.resizeBilinearBackprop=function(t,e,n){wl([t,e],"resizeBilinearBackprop");for(var r=e.shape,o=r[0],a=r[1],i=r[2],s=r[3],u=t.shape,c=u[1],l=u[2],f=new Float32Array(o*a*i*s),h=[n&&c>1?a-1:a,n&&l>1?i-1:i],p=[n&&c>1?c-1:c,n&&l>1?l-1:l],d=h[0]/p[0],v=h[1]/p[1],m=this.readSync(t.dataId),g=0,y=0;y<o;y++)for(var b=y*e.strides[0],x=0;x<c;x++)for(var w=x*d,E=Math.floor(w),C=Math.min(Math.ceil(w),a-1),_=b+E*e.strides[1],k=b+C*e.strides[1],R=w-E,I=1-R,S=0;S<l;S++)for(var A=S*v,O=Math.floor(A),T=Math.min(Math.ceil(A),i-1),D=A-O,N=1-D,F=_+O*e.strides[2],M=_+T*e.strides[2],P=k+O*e.strides[2],B=k+T*e.strides[2],L=I*N,W=I*D,U=R*N,j=R*D,z=0;z<s;z++){var V=m[g++];f[F+z]+=V*L,f[M+z]+=V*W,f[P+z]+=V*U,f[B+z]+=V*j}return ln(f,[o,i,a,s],e.dtype)},e.prototype.resizeNearestNeighbor=function(t,e,n,r){wl(t,"resizeNearestNeighbor");for(var o=t.shape,a=o[0],i=o[1],s=o[2],u=o[3],c=this.readSync(t.dataId),l=new Float32Array(a*e*n*u),f=[r&&e>1?i-1:i,r&&n>1?s-1:s],h=[r&&e>1?e-1:e,r&&n>1?n-1:n],p=f[0]/h[0],d=f[1]/h[1],v=0,m=0;m<a;m++)for(var g=m*t.strides[0],y=0;y<e;y++)for(var b=p*y,x=g+Math.min(i-1,r?Math.round(b):Math.floor(b))*t.strides[1],w=0;w<n;w++)for(var E=d*w,C=x+Math.min(s-1,r?Math.round(E):Math.floor(E))*t.strides[2],_=0;_<u;_++){var k=c[C+_];l[v++]=k}return rn(l,[a,e,n,u],t.dtype)},e.prototype.resizeNearestNeighborBackprop=function(t,e,n){wl([t,e],"resizeNearestNeighborBackprop");for(var r=e.shape,o=r[0],a=r[1],i=r[2],s=r[3],u=t.shape,c=u[1],l=u[2],f=new Float32Array(o*a*i*s),h=this.readSync(t.dataId),p=[n&&c>1?a-1:a,n&&l>1?i-1:i],d=[n&&c>1?c-1:c,n&&l>1?l-1:l],v=p[0]/d[0],m=p[1]/d[1],g=1/v,y=1/m,b=2*Math.ceil(g)+2,x=2*Math.ceil(y)+2,w=0;w<o;w++)for(var E=w*e.strides[0],C=0;C<a;C++)for(var _=E+C*e.strides[1],k=Math.floor(C*g),R=Math.floor(k-b/2),I=0;I<i;I++)for(var S=_+I*e.strides[2],A=Math.floor(I*y),O=Math.floor(A-x/2),T=0;T<s;T++){for(var D=0,N=0;N<b;N++){var F=N+R;if(!(F<0||F>=c)){var M=E+F*t.strides[1],P=F*v;if(C===Math.min(a-1,n?Math.round(P):Math.floor(P)))for(var B=0;B<x;B++){var L=B+O;if(!(L<0||L>=l)){var W=M+L*t.strides[2],U=L*m;I===Math.min(i-1,n?Math.round(U):Math.floor(U))&&(D+=h[W+T])}}}}f[S+T]=D}return ln(f,e.shape,e.dtype)},e.prototype.batchNormalization=function(t,e,n,r,o,a){wl([t,e,n,o,a],"batchNorm");for(var i=this.readSync(t.dataId),s=this.readSync(e.dataId),u=this.readSync(n.dataId),c=o?this.readSync(o.dataId):new Float32Array([1]),l=a?this.readSync(a.dataId):new Float32Array([0]),f=new Float32Array(i.length),h=l.length,p=c.length,d=u.length,v=s.length,m=0,g=0,y=0,b=0,x=0;x<i.length;++x)f[x]=l[m++]+(i[x]-s[g++])*c[y++]/Math.sqrt(u[b++]+r),m>=h&&(m=0),g>=v&&(g=0),y>=p&&(y=0),b>=d&&(b=0);return ln(f,t.shape)},e.prototype.localResponseNormalization4D=function(t,e,n,r,o){wl(t,"localResponseNormalization4D");var a=t.shape[3],i=a-1,s=this.readSync(t.dataId),u=t.size,c=new Float32Array(u);function l(t){for(var n=t%a,r=t-n+Math.max(0,n-e),o=t-n+Math.min(n+e,i),u=0;r<=o;r++){var c=s[r];u+=c*c}return u}for(var f=0;f<u;f++){var h=l(f),p=s[f]*Math.pow(n+r*h,-o);c[f]=p}return ln(c,t.shape)},e.prototype.LRNGrad=function(t,e,n,r,o,a,i){wl(t,"LRNGrad");for(var s=t.shape[3],u=this.readSync(t.dataId),c=this.readSync(e.dataId),l=this.readSync(n.dataId),f=new Float32Array(t.size),h=t.size,p=0;p<h;p++){for(var d=p%s,v=p-d+Math.max(0,d-r),m=p-d+Math.min(s,d+r+1),g=0,y=v;y<m;y++)g+=Math.pow(c[y],2);for(g=a*g+o,y=v;y<m;y++){var b=-2*a*i*c[y]*l[p]/g;p===y&&(b+=Math.pow(g,-i)),b*=u[p],f[y]+=b}}return ln(f,t.shape)},e.prototype.multinomial=function(t,e,n,r){wl(t,"multinomial");for(var o=e?t:_r(t),a=o.shape[0],i=o.shape[1],s=hn([a,n],"int32"),u=this.readSync(s.dataId),c=this.readSync(o.dataId),l=0;l<a;++l){var f=l*i,h=new Float32Array(i-1);h[0]=c[f];for(var p=1;p<h.length;++p)h[p]=h[p-1]+c[f+p];for(var d=Tn(r.toString()),v=l*n,m=0;m<n;++m){var g=d();u[v+m]=h.length;for(var y=0;y<h.length;y++)if(g<h[y]){u[v+m]=y;break}}}return s},e.prototype.oneHot=function(t,e,n,r){wl(t,"oneHot");var o=new Float32Array(t.size*e);o.fill(r);for(var a=this.readSync(t.dataId),i=0;i<t.size;++i)a[i]>=0&&a[i]<e&&(o[i*e+a[i]]=n);return un(o,[t.size,e],"int32")},e.prototype.nonMaxSuppression=function(t,e,n,r,o){return wl(t,"nonMaxSuppression"),Jr(this.readSync(t.dataId),this.readSync(e.dataId),n,r,o)},e.prototype.fft=function(t){return this.fftBatch(t,!1)},e.prototype.ifft=function(t){return this.fftBatch(t,!0)},e.prototype.fftBatch=function(t,e){for(var n=t.shape[0],r=t.shape[1],o=Mn(t.shape,"float32"),a=Mn(t.shape,"float32"),i=en(t).as2D(n,r),s=nn(t).as2D(n,r),u=0;u<n;u++)for(var c=i.slice([u,0],[1,r]),l=s.slice([u,0],[1,r]),f=tn(c,l),h=this.readSync(this.fftImpl(f,e).dataId),p=0;p<r;p++){var d=Xr(h,p);o.values[u*r+p]=d.real,a.values[u*r+p]=d.imag}return tn(o.toTensor(),a.toTensor()).as2D(n,r)},e.prototype.fftImpl=function(t,e){var n=t.as1D(),r=n.size;if(this.isExponentOf2(r)){var o=this.fftRadix2(n,r,e).as2D(t.shape[0],t.shape[1]);return e&&(o=tn(en(o).div(an(r)),nn(o).div(an(r)))),o}var a=this.readSync(t.dataId),i=function(t){for(var e=new Float32Array(t.length/2),n=new Float32Array(t.length/2),r=0;r<t.length;r+=2)e[r/2]=t[r],n[r/2]=t[r+1];return{real:e,imag:n}}(this.fourierTransformByMatmul(a,r,e));return tn(i.real,i.imag).as2D(t.shape[0],t.shape[1])},e.prototype.isExponentOf2=function(t){return 0==(t&t-1)},e.prototype.fftRadix2=function(t,e,n){if(1===e)return t;var r=this.readSync(t.dataId),o=e/2,a=function(t){for(var e=Math.ceil(t.length/4),n=new Float32Array(e),r=new Float32Array(e),o=0;o<t.length;o+=4)n[Math.floor(o/4)]=t[o],r[Math.floor(o/4)]=t[o+1];return{real:n,imag:r}}(r),i=tn(a.real,a.imag).as1D(),s=function(t){for(var e=Math.floor(t.length/4),n=new Float32Array(e),r=new Float32Array(e),o=2;o<t.length;o+=4)n[Math.floor(o/4)]=t[o],r[Math.floor(o/4)]=t[o+1];return{real:n,imag:r}}(r),u=tn(s.real,s.imag).as1D();i=this.fftRadix2(i,o,n),u=this.fftRadix2(u,o,n);var c=function(t,e){for(var n=new Float32Array(t/2),r=new Float32Array(t/2),o=0;o<Math.ceil(t/2);o++){var a=(e?2:-2)*Math.PI*(o/t);n[o]=Math.cos(a),r[o]=Math.sin(a)}return{real:n,imag:r}}(e,n),l=tn(c.real,c.imag).mul(u),f=i.add(l),h=i.sub(l),p=en(f).concat(en(h)),d=nn(f).concat(nn(h));return tn(p,d).as1D()},e.prototype.fourierTransformByMatmul=function(t,e,n){for(var r=new Float32Array(2*e),o=0;o<e;o++){for(var a=0,i=0,s=0;s<e;s++){var u=Yr(o*s,e,n),c=Xr(t,s);a+=c.real*u.real-c.imag*u.imag,i+=c.real*u.imag+c.imag*u.real}n&&(a/=e,i/=e),$r(r,a,i,o)}return r},e.prototype.depthToSpace=function(t,e,n){E("NHWC"===n,(function(){return"Only NHWC dataFormat supported on CPU for depthToSpace. Got "+n})),E(e>1,(function(){return"blockSize should be > 1 for depthToSpace, but was: "+e}));for(var r=t.shape[0],o=t.shape[1],a=t.shape[2],i=t.shape[3],s=o*e,u=a*e,c=i/(e*e),l=this.readSync(t.dataId),f=new Float32Array(r*s*u*c),h=0,p=0;p<r;++p)for(var d=0;d<s;++d)for(var v=Math.floor(d/e),m=d%e,g=0;g<u;++g)for(var y=Math.floor(g/e),b=(m*e+g%e)*c,x=0;x<c;++x){var w=x+b+i*(y+a*(v+o*p));f[h++]=l[w]}return ln(f,[r,s,u,c])},e.prototype.broadcastedBinaryOp=function(t,e,n,r){var o=Tr(t.shape,e.shape),a=Mn(o,n),i=this.readSync(t.dataId),s=this.readSync(e.dataId),u=Ar(t.shape,o),c=Ar(e.shape,o),l=a.values;if(u.length+c.length===0)for(var f=0;f<l.length;++f)l[f]=r(i[f%i.length],s[f%s.length]);else{var h=this.bufferSync(t),p=this.bufferSync(e),d=function(n){var o=a.indexToLoc(n),f=o.slice(-t.rank);u.forEach((function(t){return f[t]=0}));var d=h.locToIndex(f),v=o.slice(-e.rank);c.forEach((function(t){return v[t]=0}));var m=p.locToIndex(v);l[n]=r(i[d],s[m])};for(f=0;f<l.length;++f)d(f)}return a.toTensor()},e.prototype.broadcastedBinaryComplexOp=function(t,e,n){var r=Tr(t.shape,e.shape),o=Mn(r,"float32"),a=Mn(r,"float32"),i=this.readSync(t.dataId),s=this.readSync(e.dataId),u=Ar(t.shape,r),c=Ar(e.shape,r),l=o.values,f=a.values;if(u.length+c.length===0)for(var h=0;h<l.length;h++){var p=h%i.length,d=h%s.length,v=n(i[2*p],i[2*p+1],s[2*d],s[2*d+1]);l[h]=v.real,f[h]=v.imag}else{var m=this.bufferSync(this.data.get(t.dataId).complexTensors.real),g=this.bufferSync(this.data.get(e.dataId).complexTensors.real),y=function(r){var a=o.indexToLoc(r),h=a.slice(-t.rank);u.forEach((function(t){return h[t]=0}));var p=m.locToIndex(h),d=a.slice(-e.rank);c.forEach((function(t){return d[t]=0}));var v=g.locToIndex(d),y=n(i[2*p],i[2*p+1],s[2*v],s[2*v+1]);l[r]=y.real,f[r]=y.imag};for(h=0;h<l.length;h++)y(h)}return this.complex(o.toTensor(),a.toTensor())},e.prototype.split=function(t,e,n){return Zr(t,e,n)},e.prototype.dispose=function(){},e.prototype.floatPrecision=function(){return 32},e.prototype.epsilon=function(){return 1e-7},e.prototype.cropAndResize=function(t,e,n,r,o,a){for(var i=t.shape,s=i[0],u=i[1],c=i[2],l=i[3],f=e.shape[0],h=r[0],p=r[1],d=Mn([f,h,p,l],"float32"),v=this.readSync(e.dataId),m=this.readSync(n.dataId),g=this.readSync(t.dataId),y=t.strides,b=d.strides,x=0;x<f;x++){var w=4*x,E=v[w],C=v[w+1],_=v[w+2],k=v[w+3],R=m[x];if(!(R>=s))for(var I=h>1?(_-E)*(u-1)/(h-1):0,S=p>1?(k-C)*(c-1)/(p-1):0,A=0;A<h;A++){var O=h>1?E*(u-1)+A*I:.5*(E+_)*(u-1);if(O<0||O>u-1)for(var T=0;T<p;T++)for(var D=0;D<l;D++){var N=D+T*b[2]+A*b[1]+x*b[0];d.values[N]=a}else if("bilinear"===o){var F=Math.floor(O),M=Math.ceil(O),P=O-F;for(T=0;T<p;T++)if((H=p>1?C*(c-1)+T*S:.5*(C+k)*(c-1))<0||H>c-1)for(D=0;D<l;D++)N=D+T*b[2]+A*b[1]+x*b[0],d.values[N]=a;else{var B=Math.floor(H),L=Math.ceil(H),W=H-B;for(D=0;D<l;D++){var U=g[N=D+B*y[2]+F*y[1]+R*y[0]],j=g[N=D+L*y[2]+F*y[1]+R*y[0]],z=g[N=D+B*y[2]+M*y[1]+R*y[0]],V=U+(j-U)*W,G=z+(g[N=D+L*y[2]+M*y[1]+R*y[0]]-z)*W;N=D+T*b[2]+A*b[1]+x*b[0],d.values[N]=V+(G-V)*P}}}else for(T=0;T<p;++T){var H;if((H=p>1?C*(c-1)+T*S:.5*(C+k)*(c-1))<0||H>c-1)for(D=0;D<l;D++)N=D+T*b[2]+A*b[1]+x*b[0],d.values[N]=a;else{var q=Math.round(H),K=Math.round(O);for(D=0;D<l;D++){var X=D+q*y[2]+K*y[1]+R*y[0],$=D+T*b[2]+A*b[1]+x*b[0];d.values[$]=g[X]}}}}}return d.toTensor()},e.prototype.sparseToDense=function(t,e,n,r){var o=vr(0,t,n),a=o.sliceRank,i=o.numUpdates,s=o.sliceSize,u=o.strides,c=o.outputSize;return this.scatter(t,e,n,c,s,i,a,u,r,!1)},e.prototype.gatherND=function(t,e){var n=e.shape,r=n[n.length-1],o=pr(t,e),a=o[0],i=o[1],s=o[2],u=o[3];if(0===i)return rn([],a,t.dtype);for(var c=new lt([i,s],t.dtype),l=this.readSync(e.dataId),f=this.readSync(t.dataId),h=0;h<i;h++){for(var p=[],d=0,v=0;v<r;v++){var m=l[h*r+v];d+=m*u[v],p.push(m)}if(d<0||d>=t.size/s)throw new Error("Invalid indices: "+p+" does not index into "+t.shape);for(var g=0;g<s;g++)c.values[h*s+g]=f[d*s+g]}return c.toTensor().reshape(a)},e.prototype.scatterND=function(t,e,n){var r=vr(0,t,n),o=r.sliceRank,a=r.numUpdates,i=r.sliceSize,s=r.strides,u=r.outputSize,c=an(0);return this.scatter(t,e,n,u,i,a,o,s,c,!0)},e.prototype.fill=function(t,e,n){var r=B(n=n||K(e),R(t));return r.fill(e),Ot.makeTensor(r,t,n,this)},e.prototype.onesLike=function(t){if("string"===t.dtype)throw new Error("onesLike is not supported for string tensors");return this.fill(t.shape,1,t.dtype)},e.prototype.zerosLike=function(t){var e=B(t.dtype,R(t.shape));return this.makeOutput(e,t.shape,t.dtype)},e.prototype.linspace=function(t,e,n){return qr(t,e,n)},e.prototype.scatter=function(t,e,n,r,o,a,i,s,u,c){var l=[r/o,o],f=this.readSync(t.dataId),h=this.readSync(e.dataId);if(0===r)return rn([],n,e.dtype);var p=new lt(l,e.dtype);p.values.fill(this.readSync(u.dataId)[0]);for(var d=0;d<a;d++){for(var v=[],m=0,g=0;g<i;g++){var y=f[d*i+g];v.push(y),m+=y*s[g]}if(m<0||m>=r/o)throw new Error("Invalid indices: "+v+" does not index into "+n);for(var b=0;b<o;b++)c?p.values[m*o+b]+=h[d*o+b]:p.values[m*o+b]=0===e.rank?h[0]:h[d*o+b]}return p.toTensor().reshape(n)},e}(Ir);Ot.registerBackend("cpu",(function(){return new Cl}),1),m({kernelName:"Square",backendName:"cpu",kernelFunc:function(t){var e=t.inputs,n=t.backend,r=e.x,o=n;wl(r,"square");for(var a=o.data.get(r.dataId).values,i=new Float32Array(a.length),s=0;s<a.length;++s){var u=a[s];i[s]=u*u}return{dataId:o.write(i,r.shape,r.dtype),shape:r.shape,dtype:r.dtype}}}),m({kernelName:"Square",backendName:"webgl",kernelFunc:function(t){var e=t.inputs,n=t.backend,r=e.x,o=n,a=new gi(r.shape,"return x * x;");return o.runWebGLProgram(a,[r],r.dtype)}});var _l,kl=function(t){this.variableNames=["A"];var e=uo(),n=t[0],r=t[1];this.outputShape=t,this.userCode="\n void main() {\n ivec3 coords = getOutputCoords();\n int texR = coords[0];\n int texC = coords[1];\n int depth = coords[2];\n vec2 uv = (vec2(texC, texR) + halfCR) / vec2("+r+".0, "+n+".0);\n\n vec4 values = "+e.texture2D+"(A, uv);\n float value;\n if (depth == 0) {\n value = values.r;\n } else if (depth == 1) {\n value = values.g;\n } else if (depth == 2) {\n value = values.b;\n } else if (depth == 3) {\n value = values.a;\n }\n\n setOutput(floor(value * 255.0 + 0.5));\n }\n "},Rl=function(t){this.variableNames=["A"],this.packedInputs=!1,this.packedOutput=!0;var e=uo(),n=t[0],r=t[1];this.outputShape=t,this.userCode="\n void main() {\n ivec3 coords = getOutputCoords();\n int texR = coords[0];\n int texC = coords[1];\n int depth = coords[2];\n\n vec4 result = vec4(0.);\n\n for(int row=0; row<=1; row++) {\n for(int col=0; col<=1; col++) {\n texC = coords[1] + row;\n depth = coords[2] + col;\n\n vec2 uv = (vec2(texC, texR) + halfCR) /\n vec2("+r+".0, "+n+".0);\n vec4 values = "+e.texture2D+"(A, uv);\n float value;\n if (depth == 0) {\n value = values.r;\n } else if (depth == 1) {\n value = values.g;\n } else if (depth == 2) {\n value = values.b;\n } else if (depth == 3) {\n value = values.a;\n }\n\n result[row * 2 + col] = floor(value * 255.0 + 0.5);\n }\n }\n\n "+e.output+" = result;\n }\n "};m({kernelName:"FromPixels",backendName:"webgl",kernelFunc:function(t){var e=t.inputs,n=t.backend,r=t.attrs,o=e.pixels,a=r.numChannels,i="undefined"!=typeof HTMLVideoElement&&o instanceof HTMLVideoElement,s="undefined"!=typeof HTMLImageElement&&o instanceof HTMLImageElement,u=i?[o.videoWidth,o.videoHeight]:[o.width,o.height],c=u[0],l=u[1],h=[l,c],p=[l,c,a];(s||i)&&(null==_l&&(_l=document.createElement("canvas").getContext("2d")),_l.canvas.width=c,_l.canvas.height=l,_l.drawImage(o,0,0,c,l),o=_l.canvas);var d=n.makeTensorInfo(h,"int32");n.texData.get(d.dataId).usage=Ft.PIXELS,n.gpgpu.uploadPixelDataToTexture(n.getTexture(d.dataId),o);var v=f().getBool("WEBGL_PACK")?new Rl(p):new kl(p),m=n.runWebGLProgram(v,[d],"int32");return n.disposeData(d.dataId),m}});var Il=function(){function t(){}return t.prototype.fetch=function(t,e){return fetch(t,e)},t.prototype.now=function(){return performance.now()},t.prototype.encode=function(t,e){if("utf-8"!==e&&"utf8"!==e)throw new Error("Browser's encoder only supports utf-8, but got "+e);return null==this.textEncoder&&(this.textEncoder=new TextEncoder),this.textEncoder.encode(t)},t.prototype.decode=function(t,e){return new TextDecoder(e).decode(t)},t}();f().get("IS_BROWSER")&&f().setPlatform("browser",new Il);var Sl,Al=function(){function t(){this.util=n(71),this.textEncoder=new this.util.TextEncoder}return t.prototype.fetch=function(t,e){return null!=f().global.fetch?f().global.fetch(t,e):(null==Sl&&(Sl=n(70)),Sl(t,e))},t.prototype.now=function(){var t=r.hrtime();return 1e3*t[0]+t[1]/1e6},t.prototype.encode=function(t,e){if("utf-8"!==e&&"utf8"!==e)throw new Error("Node built-in encoder only supports utf-8, but got "+e);return this.textEncoder.encode(t)},t.prototype.decode=function(t,e){return 0===t.length?"":new this.util.TextDecoder(e).decode(t)},t}();f().get("IS_NODE")&&f().setPlatform("node",new Al);var Ol={float32:4,int32:4,uint16:2,uint8:1,bool:1};function Tl(t,e){for(var n={},r=0,o=function(e){var o=e.name,a=e.dtype,i=e.shape,s=R(i),u=void 0;if("quantization"in e){var c=e.quantization;if("uint8"!==c.dtype&&"uint16"!==c.dtype)throw new Error("Weight "+e.name+" has unknown quantization dtype "+c.dtype+". Supported quantization dtypes are: 'uint8' and 'uint16'.");var l=Ol[c.dtype],f=t.slice(r,r+s*l),h="uint8"===c.dtype?new Uint8Array(f):new Uint16Array(f);if("float32"===a)u=Float32Array.from(h,(function(t){return t*c.scale+c.min}));else{if("int32"!==a)throw new Error("Unsupported dtype in weight '"+o+"': "+a);u=Int32Array.from(h,(function(t){return Math.round(t*c.scale+c.min)}))}r+=s*l}else if("string"===a){var p=R(e.shape);u=[];for(var d=0;d<p;d++){var v=new Uint32Array(t.slice(r,r+4))[0];r+=4;var m=new Uint8Array(t.slice(r,r+v));u.push(m),r+=v}}else{var g=Ol[a];if(f=t.slice(r,r+s*g),"float32"===a)u=new Float32Array(f);else if("int32"===a)u=new Int32Array(f);else{if("bool"!==a)throw new Error("Unsupported dtype in weight '"+o+"': "+a);u=new Uint8Array(f)}r+=s*g}n[o]=rn(u,i,a)},a=0,i=e;a<i.length;a++)o(i[a]);return n}function Dl(t){if(null===t)throw new Error("Invalid input value: "+JSON.stringify(t));var e=0,n=[];t.forEach((function(t){if(e+=t.byteLength,n.push(t.byteLength===t.buffer.byteLength?t:new t.constructor(t)),!(t instanceof Float32Array||t instanceof Int32Array||t instanceof Uint8Array))throw new Error("Unsupported TypedArray subtype: "+t.constructor.name)}));var r=new Uint8Array(e),o=0;return n.forEach((function(t){r.set(new Uint8Array(t.buffer),o),o+=t.byteLength})),r.buffer}var Nl=void 0!==o&&("undefined"==typeof Blob||"undefined"==typeof atob||"undefined"==typeof btoa);function Fl(t){return Nl?o.byteLength(t):new Blob([t]).size}function Ml(t){var e=0;t.forEach((function(t){e+=t.byteLength}));var n=new Uint8Array(e),r=0;return t.forEach((function(t){n.set(new Uint8Array(t),r),r+=t.byteLength})),n.buffer}function Pl(t){for(t=t.trim();t.endsWith("/");)t=t.slice(0,t.length-1);var e=t.split("/");return e[e.length-1]}function Bl(t){if(t.modelTopology instanceof ArrayBuffer)throw new Error("Expected JSON model topology, received ArrayBuffer.");return{dateSaved:new Date,modelTopologyType:"JSON",modelTopologyBytes:null==t.modelTopology?0:Fl(JSON.stringify(t.modelTopology)),weightSpecsBytes:null==t.weightSpecs?0:Fl(JSON.stringify(t.weightSpecs)),weightDataBytes:null==t.weightData?0:t.weightData.byteLength}}var Ll=function(){function t(){this.saveRouters=[],this.loadRouters=[]}return t.getInstance=function(){return null==t.instance&&(t.instance=new t),t.instance},t.registerSaveRouter=function(e){t.getInstance().saveRouters.push(e)},t.registerLoadRouter=function(e){t.getInstance().loadRouters.push(e)},t.getSaveHandlers=function(e){return t.getHandlers(e,"save")},t.getLoadHandlers=function(e,n){return t.getHandlers(e,"load",n)},t.getHandlers=function(e,n,r){var o=[];return("load"===n?t.getInstance().loadRouters:t.getInstance().saveRouters).forEach((function(t){var n=t(e,r);null!==n&&o.push(n)})),o},t}(),Wl="://",Ul=function(){function t(){this.managers={}}return t.getInstance=function(){return null==t.instance&&(t.instance=new t),t.instance},t.registerManager=function(e,n){E(null!=e,(function(){return"scheme must not be undefined or null."})),e.endsWith(Wl)&&(e=e.slice(0,e.indexOf(Wl))),E(e.length>0,(function(){return"scheme must not be an empty string."}));var r=t.getInstance();E(null==r.managers[e],(function(){return"A model store manager is already registered for scheme '"+e+"'."})),r.managers[e]=n},t.getManager=function(t){var e=this.getInstance().managers[t];if(null==e)throw new Error("Cannot find model manager for scheme '"+t+"'");return e},t.getSchemes=function(){return Object.keys(this.getInstance().managers)},t}();function jl(t){if(-1===t.indexOf(Wl))throw new Error("The url string provided does not contain a scheme. Supported schemes are: "+Ul.getSchemes().join(","));return{scheme:t.split(Wl)[0],path:t.split(Wl)[1]}}function zl(t,e,n){return void 0===n&&(n=!1),u(this,void 0,void 0,(function(){var r,o,a,i,s,u,l,f,h;return c(this,(function(c){switch(c.label){case 0:return E(t!==e,(function(){return"Old path and new path are the same: '"+t+"'"})),E((r=Ll.getLoadHandlers(t)).length>0,(function(){return"Copying failed because no load handler is found for source URL "+t+"."})),E(r.length<2,(function(){return"Copying failed because more than one ("+r.length+") load handlers for source URL "+t+"."})),o=r[0],E((a=Ll.getSaveHandlers(e)).length>0,(function(){return"Copying failed because no save handler is found for destination URL "+e+"."})),E(a.length<2,(function(){return"Copying failed because more than one ("+r.length+") save handlers for destination URL "+e+"."})),i=a[0],s=jl(t).scheme,u=jl(t).path,l=s===jl(t).scheme,[4,o.load()];case 1:return f=c.sent(),n&&l?[4,Ul.getManager(s).removeModel(u)]:[3,3];case 2:c.sent(),c.label=3;case 3:return[4,i.save(f)];case 4:return h=c.sent(),!n||l?[3,6]:[4,Ul.getManager(s).removeModel(u)];case 5:c.sent(),c.label=6;case 6:return[2,h.modelArtifactsInfo]}}))}))}var Vl="models_store",Gl="model_info_store";function Hl(){if(!f().getBool("IS_BROWSER"))throw new Error("Failed to obtain IndexedDB factory because the current environmentis not a web browser.");var t=window,e=t.indexedDB||t.mozIndexedDB||t.webkitIndexedDB||t.msIndexedDB||t.shimIndexedDB;if(null==e)throw new Error("The current browser does not appear to support IndexedDB.");return e}function ql(t){var e=t.result;e.createObjectStore(Vl,{keyPath:"modelPath"}),e.createObjectStore(Gl,{keyPath:"modelPath"})}var Kl=function(){function t(t){if(this.indexedDB=Hl(),null==t||!t)throw new Error("For IndexedDB, modelPath must not be null, undefined or empty.");this.modelPath=t}return t.prototype.save=function(t){return u(this,void 0,void 0,(function(){return c(this,(function(e){if(t.modelTopology instanceof ArrayBuffer)throw new Error("BrowserLocalStorage.save() does not support saving model topology in binary formats yet.");return[2,this.databaseAction(this.modelPath,t)]}))}))},t.prototype.load=function(){return u(this,void 0,void 0,(function(){return c(this,(function(t){return[2,this.databaseAction(this.modelPath)]}))}))},t.prototype.databaseAction=function(t,e){var n=this;return new Promise((function(t,r){var o=n.indexedDB.open("tensorflowjs",1);o.onupgradeneeded=function(){return ql(o)},o.onsuccess=function(){var a=o.result;if(null==e){var i=a.transaction(Vl,"readonly"),s=i.objectStore(Vl).get(n.modelPath);s.onsuccess=function(){if(null==s.result)return a.close(),r(new Error("Cannot find model with path '"+n.modelPath+"' in IndexedDB."));t(s.result.modelArtifacts)},s.onerror=function(t){return a.close(),r(s.error)},i.oncomplete=function(){return a.close()}}else{var u,c=Bl(e),l=a.transaction(Gl,"readwrite"),f=l.objectStore(Gl),h=f.put({modelPath:n.modelPath,modelArtifactsInfo:c});h.onsuccess=function(){var o=(u=a.transaction(Vl,"readwrite")).objectStore(Vl).put({modelPath:n.modelPath,modelArtifacts:e,modelArtifactsInfo:c});o.onsuccess=function(){return t({modelArtifactsInfo:c})},o.onerror=function(t){var e=(f=l.objectStore(Gl)).delete(n.modelPath);e.onsuccess=function(){return a.close(),r(o.error)},e.onerror=function(t){return a.close(),r(o.error)}}},h.onerror=function(t){return a.close(),r(h.error)},l.oncomplete=function(){null==u?a.close():u.oncomplete=function(){return a.close()}}}},o.onerror=function(t){return r(o.error)}}))},t.URL_SCHEME="indexeddb://",t}(),Xl=function(t){return f().getBool("IS_BROWSER")&&!Array.isArray(t)&&t.startsWith(Kl.URL_SCHEME)?(e=t.slice(Kl.URL_SCHEME.length),new Kl(e)):null;var e};Ll.registerSaveRouter(Xl),Ll.registerLoadRouter(Xl);var $l=function(){function t(){this.indexedDB=Hl()}return t.prototype.listModels=function(){return u(this,void 0,void 0,(function(){var t=this;return c(this,(function(e){return[2,new Promise((function(e,n){var r=t.indexedDB.open("tensorflowjs",1);r.onupgradeneeded=function(){return ql(r)},r.onsuccess=function(){var t=r.result,o=t.transaction(Gl,"readonly"),a=o.objectStore(Gl).getAll();a.onsuccess=function(){for(var t={},n=0,r=a.result;n<r.length;n++){var o=r[n];t[o.modelPath]=o.modelArtifactsInfo}e(t)},a.onerror=function(e){return t.close(),n(a.error)},o.oncomplete=function(){return t.close()}},r.onerror=function(t){return n(r.error)}}))]}))}))},t.prototype.removeModel=function(t){return u(this,void 0,void 0,(function(){var e=this;return c(this,(function(n){var r;return t=(r=t).startsWith(Kl.URL_SCHEME)?r.slice(Kl.URL_SCHEME.length):r,[2,new Promise((function(n,r){var o=e.indexedDB.open("tensorflowjs",1);o.onupgradeneeded=function(){return ql(o)},o.onsuccess=function(){var e,a=o.result,i=a.transaction(Gl,"readwrite"),s=i.objectStore(Gl),u=s.get(t);u.onsuccess=function(){if(null==u.result)return a.close(),r(new Error("Cannot find model with path '"+t+"' in IndexedDB."));var o=s.delete(t),i=function(){var o=(e=a.transaction(Vl,"readwrite")).objectStore(Vl).delete(t);o.onsuccess=function(){return n(u.result.modelArtifactsInfo)},o.onerror=function(t){return r(u.error)}};o.onsuccess=i,o.onerror=function(t){return i(),a.close(),r(u.error)}},u.onerror=function(t){return a.close(),r(u.error)},i.oncomplete=function(){null==e?a.close():e.oncomplete=function(){return a.close()}}},o.onerror=function(t){return r(o.error)}}))]}))}))},t}();if(f().getBool("IS_BROWSER"))try{Ul.registerManager(Kl.URL_SCHEME,new $l)}catch(i){}var Yl="/",Jl="tensorflowjs_models",Ql="info",Zl="model_topology",tf="weight_specs",ef="weight_data",nf="model_metadata";function rf(t){return{info:[Jl,t,Ql].join(Yl),topology:[Jl,t,Zl].join(Yl),weightSpecs:[Jl,t,tf].join(Yl),weightData:[Jl,t,ef].join(Yl),modelMetadata:[Jl,t,nf].join(Yl)}}function of(t){var e=t.split(Yl);if(e.length<3)throw new Error("Invalid key format: "+t);return e.slice(1,e.length-1).join(Yl)}var af=function(){function t(t){if(!f().getBool("IS_BROWSER")||void 0===window.localStorage)throw new Error("The current environment does not support local storage.");if(this.LS=window.localStorage,null==t||!t)throw new Error("For local storage, modelPath must not be null, undefined or empty.");this.modelPath=t,this.keys=rf(this.modelPath)}return t.prototype.save=function(t){return u(this,void 0,void 0,(function(){var e,n,r;return c(this,(function(a){if(t.modelTopology instanceof ArrayBuffer)throw new Error("BrowserLocalStorage.save() does not support saving model topology in binary formats yet.");e=JSON.stringify(t.modelTopology),n=JSON.stringify(t.weightSpecs),r=Bl(t);try{return this.LS.setItem(this.keys.info,JSON.stringify(r)),this.LS.setItem(this.keys.topology,e),this.LS.setItem(this.keys.weightSpecs,n),this.LS.setItem(this.keys.weightData,(i=t.weightData,Nl?o.from(i).toString("base64"):btoa(String.fromCharCode.apply(null,new Uint8Array(i))))),this.LS.setItem(this.keys.modelMetadata,JSON.stringify({format:t.format,generatedBy:t.generatedBy,convertedBy:t.convertedBy,userDefinedMetadata:t.userDefinedMetadata})),[2,{modelArtifactsInfo:r}]}catch(t){throw this.LS.removeItem(this.keys.info),this.LS.removeItem(this.keys.topology),this.LS.removeItem(this.keys.weightSpecs),this.LS.removeItem(this.keys.weightData),this.LS.removeItem(this.keys.modelMetadata),new Error("Failed to save model '"+this.modelPath+"' to local storage: size quota being exceeded is a possible cause of this failure: modelTopologyBytes="+r.modelTopologyBytes+", weightSpecsBytes="+r.weightSpecsBytes+", weightDataBytes="+r.weightDataBytes+".")}var i;return[2]}))}))},t.prototype.load=function(){return u(this,void 0,void 0,(function(){var t,e,n,r,a,i,s;return c(this,(function(u){if(null==(t=JSON.parse(this.LS.getItem(this.keys.info))))throw new Error("In local storage, there is no model with name '"+this.modelPath+"'");if("JSON"!==t.modelTopologyType)throw new Error("BrowserLocalStorage does not support loading non-JSON model topology yet.");if(e={},null==(n=JSON.parse(this.LS.getItem(this.keys.topology))))throw new Error("In local storage, the topology of model '"+this.modelPath+"' is missing.");if(e.modelTopology=n,null==(r=JSON.parse(this.LS.getItem(this.keys.weightSpecs))))throw new Error("In local storage, the weight specs of model '"+this.modelPath+"' are missing.");if(e.weightSpecs=r,null!=(a=this.LS.getItem(this.keys.modelMetadata))&&(i=JSON.parse(a),e.format=i.format,e.generatedBy=i.generatedBy,e.convertedBy=i.convertedBy,e.userDefinedMetadata=i.userDefinedMetadata),null==(s=this.LS.getItem(this.keys.weightData)))throw new Error("In local storage, the binary weight values of model '"+this.modelPath+"' are missing.");return e.weightData=function(t){if(Nl){var e=o.from(t,"base64");return e.buffer.slice(e.byteOffset,e.byteOffset+e.byteLength)}for(var n=atob(t),r=new Uint8Array(n.length),a=0;a<n.length;++a)r.set([n.charCodeAt(a)],a);return r.buffer}(s),[2,e]}))}))},t.URL_SCHEME="localstorage://",t}(),sf=function(t){return f().getBool("IS_BROWSER")&&!Array.isArray(t)&&t.startsWith(af.URL_SCHEME)?(e=t.slice(af.URL_SCHEME.length),new af(e)):null;var e};Ll.registerSaveRouter(sf),Ll.registerLoadRouter(sf);var uf=function(){function t(){E(f().getBool("IS_BROWSER"),(function(){return"Current environment is not a web browser"})),E(void 0!==window.localStorage,(function(){return"Current browser does not appear to support localStorage"})),this.LS=window.localStorage}return t.prototype.listModels=function(){return u(this,void 0,void 0,(function(){var t,e,n,r,o,a;return c(this,(function(i){for(t={},e=Jl+Yl,n=Yl+Ql,r=0;r<this.LS.length;++r)(o=this.LS.key(r)).startsWith(e)&&o.endsWith(n)&&(a=of(o),t[a]=JSON.parse(this.LS.getItem(o)));return[2,t]}))}))},t.prototype.removeModel=function(t){return u(this,void 0,void 0,(function(){var e,n;return c(this,(function(r){var o;if(t=(o=t).startsWith(af.URL_SCHEME)?o.slice(af.URL_SCHEME.length):o,e=rf(t),null==this.LS.getItem(e.info))throw new Error("Cannot find model at path '"+t+"'");return n=JSON.parse(this.LS.getItem(e.info)),this.LS.removeItem(e.info),this.LS.removeItem(e.topology),this.LS.removeItem(e.weightSpecs),this.LS.removeItem(e.weightData),[2,n]}))}))},t}();if(f().getBool("IS_BROWSER"))try{Ul.registerManager(af.URL_SCHEME,new uf)}catch(i){}function cf(t){return new Promise((function(t){return setTimeout(t)})).then(t)}var lf=function(){function t(e){if(!f().getBool("IS_BROWSER"))throw new Error("browserDownloads() cannot proceed because the current environment is not a browser.");e.startsWith(t.URL_SCHEME)&&(e=e.slice(t.URL_SCHEME.length)),null!=e&&0!==e.length||(e="model"),this.modelTopologyFileName=e+".json",this.weightDataFileName=e+".weights.bin"}return t.prototype.save=function(t){return u(this,void 0,void 0,(function(){var e,n,r,o,a,i;return c(this,(function(s){switch(s.label){case 0:if("undefined"==typeof document)throw new Error("Browser downloads are not supported in this environment since `document` is not present");if(e=window.URL.createObjectURL(new Blob([t.weightData],{type:"application/octet-stream"})),!(t.modelTopology instanceof ArrayBuffer))return[3,1];throw new Error("BrowserDownloads.save() does not support saving model topology in binary formats yet.");case 1:return n=[{paths:["./"+this.weightDataFileName],weights:t.weightSpecs}],r={modelTopology:t.modelTopology,format:t.format,generatedBy:t.generatedBy,convertedBy:t.convertedBy,weightsManifest:n},o=window.URL.createObjectURL(new Blob([JSON.stringify(r)],{type:"application/json"})),(a=null==this.jsonAnchor?document.createElement("a"):this.jsonAnchor).download=this.modelTopologyFileName,a.href=o,[4,cf((function(){return a.dispatchEvent(new MouseEvent("click"))}))];case 2:return s.sent(),null==t.weightData?[3,4]:((i=null==this.weightDataAnchor?document.createElement("a"):this.weightDataAnchor).download=this.weightDataFileName,i.href=e,[4,cf((function(){return i.dispatchEvent(new MouseEvent("click"))}))]);case 3:s.sent(),s.label=4;case 4:return[2,{modelArtifactsInfo:Bl(t)}]}}))}))},t.URL_SCHEME="downloads://",t}(),ff=function(){function t(t){if(null==t||t.length<1)throw new Error("When calling browserFiles, at least 1 file is required, but received "+t);this.files=t}return t.prototype.load=function(){return u(this,void 0,void 0,(function(){var t,e,n=this;return c(this,(function(r){return t=this.files[0],e=this.files.slice(1),[2,new Promise((function(r,o){var a=new FileReader;a.onload=function(a){var i=JSON.parse(a.target.result),s=i.modelTopology;if(null!=s){0===e.length&&r({modelTopology:s});var u=i.weightsManifest;if(null!=u){var c;try{c=n.checkManifestAndWeightFiles(u,e)}catch(t){return void o(t)}var l=[],f=[],h=[];u.forEach((function(t){t.paths.forEach((function(t){f.push(t),h.push(null)})),l.push.apply(l,t.weights)})),u.forEach((function(t){t.paths.forEach((function(t){var e=new FileReader;e.onload=function(e){var n=e.target.result,o=f.indexOf(t);h[o]=n,-1===h.indexOf(null)&&r({modelTopology:s,weightSpecs:l,weightData:Ml(h),format:i.format,generatedBy:i.generatedBy,convertedBy:i.convertedBy,userDefinedMetadata:i.userDefinedMetadata})},e.onerror=function(e){return o("Failed to weights data from file of path '"+t+"'.")},e.readAsArrayBuffer(c[t])}))}))}else o(new Error("weightManifest field is missing from file "+t.name))}else o(new Error("modelTopology field is missing from file "+t.name))},a.onerror=function(e){return o("Failed to read model topology and weights manifest JSON from file '"+t.name+"'. BrowserFiles supports loading Keras-style tf.Model artifacts only.")},a.readAsText(t)}))]}))}))},t.prototype.checkManifestAndWeightFiles=function(t,e){for(var n=[],r=e.map((function(t){return Pl(t.name)})),o={},a=0,i=t;a<i.length;a++)i[a].paths.forEach((function(t){var a=Pl(t);if(-1!==n.indexOf(a))throw new Error("Duplicate file basename found in weights manifest: '"+a+"'");if(n.push(a),-1===r.indexOf(a))throw new Error("Weight file with basename '"+a+"' is not provided.");o[t]=e[r.indexOf(a)]}));if(n.length!==e.length)throw new Error("Mismatch in the number of files in weights manifest ("+n.length+") and the number of weight files provided ("+e.length+").");return o},t}();function hf(t,e,n,r){!function(t){E(null!=t&&Array.isArray(t)&&t.length>0,(function(){return"promises must be a none empty array"}))}(t),function(t,e){E(t>=0&&t<=1,(function(){return"Progress fraction must be in range [0, 1], but got startFraction "+t})),E(e>=0&&e<=1,(function(){return"Progress fraction must be in range [0, 1], but got endFraction "+e})),E(e>=t,(function(){return"startFraction must be no more than endFraction, but got startFraction "+t+" and endFraction "+e}))}(n=null==n?0:n,r=null==r?1:r);var o=0;return Promise.all(t.map((function(a){return a.then((function(a){var i=n+ ++o/t.length*(r-n);return e(i),a})),a})))}function pf(t,e){return u(this,void 0,void 0,(function(){var n,r,o,a,i,s,u,l,h;return c(this,(function(c){switch(c.label){case 0:return null==e&&(e={}),n=null==e.fetchFunc?f().platform.fetch:e.fetchFunc,r=t.map((function(t){return n(t,e.requestInit,{isBinary:!0})})),o=0,a=.5,null!=e.onProgress?[3,2]:[4,Promise.all(r)];case 1:return i=c.sent(),[3,4];case 2:return[4,hf(r,e.onProgress,o,a)];case 3:i=c.sent(),c.label=4;case 4:return s=i.map((function(t){return t.arrayBuffer()})),u=.5,l=1,null!=e.onProgress?[3,6]:[4,Promise.all(s)];case 5:return h=c.sent(),[3,8];case 6:return[4,hf(s,e.onProgress,u,l)];case 7:h=c.sent(),c.label=8;case 8:return[2,h]}}))}))}function df(t){var e=this;return function(n,r,o){return void 0===r&&(r=""),u(e,void 0,void 0,(function(){var e,a,i,s,u,l,f,h,p,d;return c(this,(function(c){switch(c.label){case 0:if(e=n.map((function(){return!1})),a={},i=null!=o?o.map((function(){return!1})):[],s=[],n.forEach((function(t,n){var r=0;t.weights.forEach((function(t){var u="quantization"in t?t.quantization.dtype:t.dtype,c=Ol[u]*R(t.shape),l=function(){e[n]=!0,null==a[n]&&(a[n]=[]),a[n].push({manifestEntry:t,groupOffset:r,sizeBytes:c})};null!=o?o.forEach((function(e,n){e===t.name&&(l(),i[n]=!0)})):l(),s.push(t.name),r+=c}))})),!i.every((function(t){return t})))throw u=o.filter((function(t,e){return!i[e]})),new Error("Could not find weights in manifest with names: "+u.join(", ")+". \nManifest JSON has weights with names: "+s.join(", ")+".");return l=e.reduce((function(t,e,n){return e&&t.push(n),t}),[]),f=[],l.forEach((function(t){n[t].paths.forEach((function(t){var e=r+(r.endsWith("/")?"":"/")+t;f.push(e)}))})),[4,t(f)];case 1:return h=c.sent(),p={},d=0,l.forEach((function(t){for(var e=n[t].paths.length,r=0,o=0;o<e;o++)r+=h[d+o].byteLength;for(var i=new ArrayBuffer(r),s=new Uint8Array(i),u=0,c=0;c<e;c++){var l=new Uint8Array(h[d+c]);s.set(l,u),u+=l.byteLength}a[t].forEach((function(t){var e=Tl(i.slice(t.groupOffset,t.groupOffset+t.sizeBytes),[t.manifestEntry]);for(var n in e)p[n]=e[n]})),d+=e})),[2,p]}}))}))}}Ll.registerSaveRouter((function(t){return f().getBool("IS_BROWSER")&&!Array.isArray(t)&&t.startsWith(lf.URL_SCHEME)?(void 0===(e=t.slice(lf.URL_SCHEME.length))&&(e="model"),new lf(e)):null;var e}));var vf=function(){function t(t,e){if(this.DEFAULT_METHOD="POST",null==e&&(e={}),this.weightPathPrefix=e.weightPathPrefix,this.onProgress=e.onProgress,null!=e.fetchFunc?(E("function"==typeof e.fetchFunc,(function(){return"Must pass a function that matches the signature of `fetch` (see https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API)"})),this.fetch=e.fetchFunc):this.fetch=f().platform.fetch,E(null!=t&&t.length>0,(function(){return"URL path for http must not be null, undefined or empty."})),Array.isArray(t)&&E(2===t.length,(function(){return"URL paths for http must have a length of 2, (actual length is "+t.length+")."})),this.path=t,null!=e.requestInit&&null!=e.requestInit.body)throw new Error("requestInit is expected to have no pre-existing body, but has one.");this.requestInit=e.requestInit||{}}return t.prototype.save=function(t){return u(this,void 0,void 0,(function(){var e,n,r,o;return c(this,(function(a){switch(a.label){case 0:if(t.modelTopology instanceof ArrayBuffer)throw new Error("BrowserHTTPRequest.save() does not support saving model topology in binary formats yet.");return(e=Object.assign({method:this.DEFAULT_METHOD},this.requestInit)).body=new FormData,n=[{paths:["./model.weights.bin"],weights:t.weightSpecs}],r={modelTopology:t.modelTopology,format:t.format,generatedBy:t.generatedBy,convertedBy:t.convertedBy,userDefinedMetadata:t.userDefinedMetadata,weightsManifest:n},e.body.append("model.json",new Blob([JSON.stringify(r)],{type:"application/json"}),"model.json"),null!=t.weightData&&e.body.append("model.weights.bin",new Blob([t.weightData],{type:"application/octet-stream"}),"model.weights.bin"),[4,this.fetch(this.path,e)];case 1:if((o=a.sent()).ok)return[2,{modelArtifactsInfo:Bl(t),responses:[o]}];throw new Error("BrowserHTTPRequest.save() failed due to HTTP response status "+o.status+".")}}))}))},t.prototype.load=function(){return u(this,void 0,void 0,(function(){var t,e,n,r,o,a,i,s,u,l,f,h;return c(this,(function(c){switch(c.label){case 0:return[4,this.fetch(this.path,this.requestInit)];case 1:if(!(t=c.sent()).ok)throw new 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.");c.label=2;case 2:return c.trys.push([2,4,,5]),[4,t.json()];case 3:return e=c.sent(),[3,5];case 4:throw c.sent(),n="Failed to parse model JSON of response from "+this.path+".",this.path.endsWith(".pb")?n+=" 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.":n+=" Please make sure the server is serving valid JSON for this request.",new Error(n);case 5:if(r=e.modelTopology,o=e.weightsManifest,a=e.generatedBy,i=e.convertedBy,s=e.format,u=e.userDefinedMetadata,null==r&&null==o)throw new Error("The JSON from HTTP path "+this.path+" contains neither model topology or manifest for weights.");return null==o?[3,7]:[4,this.loadWeights(o)];case 6:h=c.sent(),l=h[0],f=h[1],c.label=7;case 7:return[2,{modelTopology:r,weightSpecs:l,weightData:f,userDefinedMetadata:u,generatedBy:a,convertedBy:i,format:s}]}}))}))},t.prototype.loadWeights=function(t){return u(this,void 0,void 0,(function(){var e,n,r,o,a,i,s,u,l,f,h;return c(this,(function(c){switch(c.label){case 0:for(e=Array.isArray(this.path)?this.path[1]:this.path,n=function(t){var e=t.lastIndexOf("/"),n=t.lastIndexOf("?");return[t.substring(0,e)+"/",n>e?t.substring(n):""]}(e),r=n[0],o=n[1],a=this.weightPathPrefix||r,i=[],s=0,u=t;s<u.length;s++)l=u[s],i.push.apply(i,l.weights);return f=[],t.forEach((function(t){t.paths.forEach((function(t){f.push(a+t+o)}))})),[4,pf(f,{requestInit:this.requestInit,fetchFunc:this.fetch,onProgress:this.onProgress})];case 1:return h=c.sent(),[2,[i,Ml(h)]]}}))}))},t.URL_SCHEME_REGEX=/^https?:\/\//,t}();function mf(t){return null!=t.match(vf.URL_SCHEME_REGEX)}var gf=function(t,e){return"undefined"==typeof fetch?null:(Array.isArray(t)?t.every((function(t){return mf(t)})):mf(t))?yf(t,{onProgress:e}):null};function yf(t,e){return new vf(t,e)}Ll.registerSaveRouter(gf),Ll.registerLoadRouter(gf);var bf,xf=function(){function t(t){this.modelArtifacts=t}return t.prototype.load=function(){return u(this,void 0,void 0,(function(){return c(this,(function(t){return[2,this.modelArtifacts]}))}))},t}(),wf=function(){function t(t){this.saveHandler=t}return t.prototype.save=function(t){return u(this,void 0,void 0,(function(){return c(this,(function(e){return[2,this.saveHandler(t)]}))}))},t}(),Ef=Object.freeze({browserFiles:function(t){return new ff(t)},browserHTTPRequest:function(t,e){return yf(t,e)},concatenateArrayBuffers:Ml,decodeWeights:Tl,encodeWeights:function(t,e){return u(this,void 0,void 0,(function(){var n,r,o,a,i,s=this;return c(this,(function(l){switch(l.label){case 0:for(n=[],r=[],o=Array.isArray(t)?t.map((function(t){return t.name})):Object.keys(t),a=function(a){var i=o[a],l=Array.isArray(t)?t[a].tensor:t[i];if("float32"!==l.dtype&&"int32"!==l.dtype&&"bool"!==l.dtype&&"string"!==l.dtype)throw new Error("Unsupported dtype in weight '"+i+"': "+l.dtype);var f={name:i,shape:l.shape,dtype:l.dtype};if("string"===l.dtype){var h=new Promise((function(t){return u(s,void 0,void 0,(function(){var e,n,r,o,a,i,s;return c(this,(function(u){switch(u.label){case 0:return[4,l.bytes()];case 1:for(e=u.sent(),n=e.reduce((function(t,e){return t+e.length}),0)+4*e.length,r=new Uint8Array(n),o=0,a=0;a<e.length;a++)i=e[a],s=new Uint8Array(new Uint32Array([i.length]).buffer),r.set(s,o),o+=4,r.set(i,o),o+=i.length;return t(r),[2]}}))}))}));r.push(h)}else r.push(l.data());null!=e&&(f.group=e),n.push(f)},i=0;i<o.length;++i)a(i);return[4,Promise.all(r)];case 1:return[2,{data:Dl(l.sent()),specs:n}]}}))}))},fromMemory:function(t,e,n,r){return 1===arguments.length?null!=t.modelTopology||null!=t.weightSpecs?new xf(t):new xf({modelTopology:t}):new xf({modelTopology:t,weightSpecs:e,weightData:n,trainingConfig:r})},getLoadHandlers:function(t,e){return Ll.getLoadHandlers(t,e)},getModelArtifactsInfoForJSON:Bl,getSaveHandlers:function(t){return Ll.getSaveHandlers(t)},http:yf,isHTTPScheme:mf,loadWeights:function(t,e,n,r){return void 0===e&&(e=""),u(this,void 0,void 0,(function(){return c(this,(function(o){return[2,df((function(t){return pf(t,{requestInit:r})}))(t,e,n)]}))}))},registerLoadRouter:function(t){return Ll.registerLoadRouter(t)},registerSaveRouter:function(t){return Ll.registerSaveRouter(t)},weightsLoaderFactory:df,withSaveHandler:function(t){return new wf(t)},copyModel:function(t,e){return u(this,void 0,void 0,(function(){return c(this,(function(n){return[2,zl(t,e,!1)]}))}))},listModels:function(){return u(this,void 0,void 0,(function(){var t,e,n,r,o,a,i;return c(this,(function(s){switch(s.label){case 0:t=Ul.getSchemes(),e={},n=0,r=t,s.label=1;case 1:return n<r.length?(o=r[n],[4,Ul.getManager(o).listModels()]):[3,4];case 2:for(i in a=s.sent())e[o+Wl+i]=a[i];s.label=3;case 3:return n++,[3,1];case 4:return[2,e]}}))}))},moveModel:function(t,e){return u(this,void 0,void 0,(function(){return c(this,(function(n){return[2,zl(t,e,!0)]}))}))},removeModel:function(t){return u(this,void 0,void 0,(function(){var e;return c(this,(function(n){return e=jl(t),[2,Ul.getManager(e.scheme).removeModel(e.path)]}))}))}}),Cf=Ze({confusionMatrix_:function(t,e,n){var r=je(t,"labels","confusionMatrix"),o=je(e,"predictions","confusionMatrix");E(null==n||n>0&&Number.isInteger(n),(function(){return"If provided, numClasses must be a positive integer, but got "+n})),E(1===r.rank,(function(){return"Expected the rank of labels to be 1, but got "+r.rank})),E(1===o.rank,(function(){return"Expected the rank of predictions to be 1, but got "+o.rank})),E(r.shape[0]===o.shape[0],(function(){return"Mismatch in the number of examples: "+r.shape[0]+" vs. "+o.shape[0]+". Labels and predictions should have the same number of elements."})),E(n>0&&Number.isInteger(n),(function(){return"numClasses is required to be a positive integer, but got "+n}));var a=Hn(r.asType("int32"),n),i=Hn(o.asType("int32"),n);return a.transpose().matMul(i).asType("int32")}}),_f=(Object.freeze({confusionMatrix:Cf}),Ze({fromPixels_:function(t,e){if(void 0===e&&(e=3),e>4)throw new Error("Cannot construct Tensor with more than 4 channels from pixels.");if(null==t)throw new Error("pixels passed to tf.browser.fromPixels() can not be null");var n=!1,r=!1,o=!1,a=!1,i=!1;if(t.data instanceof Uint8Array)n=!0;else if("undefined"!=typeof ImageData&&t instanceof ImageData)r=!0;else if("undefined"!=typeof HTMLVideoElement&&t instanceof HTMLVideoElement)o=!0;else if("undefined"!=typeof HTMLImageElement&&t instanceof HTMLImageElement)a=!0;else{if(null==t.getContext)throw new Error("pixels passed to tf.browser.fromPixels() must be either an HTMLVideoElement, HTMLImageElement, HTMLCanvasElement, ImageData in browser, or OffscreenCanvas, ImageData in webworker or {data: Uint32Array, width: number, height: number}, but was "+t.constructor.name);i=!0}if(o&&o&&t.readyState<2)throw new Error("The video element has not loaded data yet. Please wait for `loadeddata` event on the <video> element.");if(null!=d("FromPixels",Ot.backendName))return Ot.runKernel("FromPixels",{pixels:t},{numChannels:e});var s,u,c=o?[t.videoWidth,t.videoHeight]:[t.width,t.height],l=c[0],f=c[1];if(i?s=t.getContext("2d").getImageData(0,0,l,f).data:r||n?s=t.data:(a||o)&&(null==bf&&(bf=document.createElement("canvas").getContext("2d")),bf.canvas.width=l,bf.canvas.height=f,bf.drawImage(t,0,0,l,f),s=bf.getImageData(0,0,l,f).data),4===e)u=new Int32Array(s);else{var h=l*f;u=new Int32Array(h*e);for(var p=0;p<h;p++)for(var v=0;v<e;++v)u[p*e+v]=s[4*p+v]}return cn(u,[f,l,e],"int32")}})),kf=Object.freeze({toPixels:function(t,e){return u(this,void 0,void 0,(function(){var n,r,o,a,i,s,u,l,f,h,p,d,v,m,g,y,b,x,w,E,C,_,k;return c(this,(function(c){switch(c.label){case 0:if(n=je(t,"img","toPixels"),t instanceof dt||(n=n.toInt()),2!==n.rank&&3!==n.rank)throw new Error("toPixels only supports rank 2 or 3 tensors, got rank "+n.rank+".");if(r=n.shape.slice(0,2),o=r[0],a=r[1],(i=2===n.rank?1:n.shape[2])>4||2===i)throw new Error("toPixels only supports depth of size 1, 3 or 4 but got "+i);return[4,n.data()];case 1:return s=c.sent(),u=n.min(),l=n.max(),[4,Promise.all([u.data(),l.data()])];case 2:if(f=c.sent(),h=f[0],p=f[1],d=h[0],v=p[0],u.dispose(),l.dispose(),"float32"===n.dtype){if(d<0||v>1)throw new Error("Tensor values for a float32 Tensor must be in the range [0 - 1] but got range ["+d+" - "+v+"].")}else{if("int32"!==n.dtype)throw new Error("Unsupported type for toPixels: "+n.dtype+". Please use float32 or int32 tensors.");if(d<0||v>255)throw new Error("Tensor values for a int32 Tensor must be in the range [0 - 255] but got range ["+d+" - "+v+"].")}for(m="float32"===n.dtype?255:1,g=new Uint8ClampedArray(a*o*4),y=0;y<o*a;++y)b=void 0,x=void 0,w=void 0,E=void 0,1===i?(b=s[y]*m,x=s[y]*m,w=s[y]*m,E=255):3===i?(b=s[3*y]*m,x=s[3*y+1]*m,w=s[3*y+2]*m,E=255):4===i&&(b=s[4*y]*m,x=s[4*y+1]*m,w=s[4*y+2]*m,E=s[4*y+3]*m),g[0+(C=4*y)]=Math.round(b),g[C+1]=Math.round(x),g[C+2]=Math.round(w),g[C+3]=Math.round(E);return null!=e&&(e.width=a,e.height=o,_=e.getContext("2d"),k=new ImageData(g,a,o),_.putImageData(k,0,0)),n!==t&&n.dispose(),[2,g]}}))}))},fromPixels:_f}),Rf=function(){function t(){}return t.prototype.getClassName=function(){return this.constructor.className},t.fromConfig=function(t,e){return new t(e)},t}(),If=function(){function t(){this.classNameMap={}}return t.getMap=function(){return null==t.instance&&(t.instance=new t),t.instance},t.register=function(e){t.getMap().classNameMap[e.className]=[e,e.fromConfig]},t}();function Sf(t){E(null!=t.className,(function(){return"Class being registered does not have the static className property defined."})),E("string"==typeof t.className,(function(){return"className is required to be a string, but got type "+typeof t.className})),E(t.className.length>0,(function(){return"Class being registered has an empty-string as its className, which is disallowed."})),If.register(t)}Object.freeze({Serializable:Rf,SerializationMap:If,registerClass:Sf});function Af(){return 32===Ot.backend.floatPrecision()?.001:.1}function Of(t,e,n){var r=!0;if((j(t)||j(e))&&(r=!1),j(t)&&j(e)&&(r=!0),r){var o=t.constructor.name,a=e.constructor.name;if(o!==a)throw new Error("Arrays are of different type. Actual: "+o+". Expected: "+a)}if(Array.isArray(t)&&Array.isArray(e)){var i=We(t),s=We(e);if(!I(i,s))throw new Error("Arrays have different shapes. Actual: ["+i+"]. Expected: ["+s+"]")}var u=j(t)?t:k(t),c=j(e)?e:k(e);if(u.length!==c.length)throw new Error("Arrays have different lengths actual: "+u.length+" vs expected: "+c.length+".\nActual: "+u+".\nExpected: "+c+".");for(var l=0;l<c.length;++l){var f=u[l],h=c[l];if(!n(f,h))throw new Error("Arrays differ: actual["+l+"] = "+f+", expected["+l+"] = "+h+".\nActual: "+u+".\nExpected: "+c+".")}}function Tf(t,e,n){return!isFinite(t)&&!isFinite(e)||!(isNaN(t)||isNaN(e)||Math.abs(t-e)>n)}Object.freeze({TEST_EPSILON_FLOAT16:.1,expectArraysClose:function(t,e,n){return null==n&&(n=Af()),Of(t,e,(function(t,e){return Tf(t,e,n)}))},testEpsilon:Af,expectPromiseToFail:function(t,e){t().then((function(){return e.fail()}),(function(){return e()}))},expectArraysEqual:function(t,e){var n="string"==typeof e||"number"==typeof e||"boolean"==typeof e?[e]:e;return G(t)||G(t[0])||G(e)||G(e[0])?Of(t,n,(function(t,e){return t==e})):Of(t,e,(function(t,e){return Tf(t,e,0)}))},expectNumbersClose:function(t,e,n){if(null==n&&(n=Af()),!Tf(t,e,n))throw new Error("Numbers differ: actual === "+t+", expected === "+e)},expectValuesInRange:function(t,e,n){for(var r=0;r<t.length;r++)if(t[r]<e||t[r]>n)throw new Error("Value out of range:"+t[r]+" low: "+e+", high: "+n)},expectArrayBuffersEqual:function(t,e){expect(new Float32Array(t)).toEqual(new Float32Array(e))}}),Object.freeze({gpgpu_util:Oa,webgl_util:Ne,forceHalfFloat:function(){f().set("WEBGL_FORCE_F16_TEXTURES",!0)},MathBackendWebGL:Pi,setWebGLContext:Lt,GPGPUContext:Ta});var Df=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return s(e,t),e.prototype.minimize=function(t,e,n){void 0===e&&(e=!1);var r=this.computeGradients(t,n),o=r.value,a=r.grads;if(null!=n){var i=n.map((function(t){return{name:t.name,tensor:a[t.name]}}));this.applyGradients(i)}else this.applyGradients(a);return Be(a),e?o:(o.dispose(),null)},Object.defineProperty(e.prototype,"iterations",{get:function(){return null==this.iterations_&&(this.iterations_=0),this.iterations_},enumerable:!0,configurable:!0}),e.prototype.incrementIterations=function(){this.iterations_=this.iterations+1},e.prototype.computeGradients=function(t,e){return function(t,e){E(X(t),(function(){return"The f passed in variableGrads(f) must be a function"})),E(null==e||Array.isArray(e)&&e.every((function(t){return t instanceof xt})),(function(){return"The varList passed in variableGrads(f, varList) must be an array of variables"}));var n=null!=e;if(!n)for(var r in e=[],Ot.registeredVariables)e.push(Ot.registeredVariables[r]);var o=n?e.filter((function(t){return!t.trainable})):null,a=e.length;E((e=e.filter((function(t){return t.trainable}))).length>0,(function(){return"variableGrads() expects at least one of the input variables to be trainable, but none of the "+a+" variables is trainable."}));var i=Ot.gradients(t,e,null,!0),s=i.value,u=i.grads;E(u.some((function(t){return null!=t})),(function(){return"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()."})),E(0===s.rank,(function(){return"The f passed in variableGrads(f) must return a scalar, but it returned a rank-"+s.rank+" tensor"}));var c={};return e.forEach((function(t,e){null!=u[e]&&(c[t.name]=u[e])})),null!=o&&o.forEach((function(t){return c[t.name]=null})),{value:s,grads:c}}(t,e)},e.prototype.dispose=function(){null!=this.iterations_&&Be(this.iterations_)},e.prototype.saveIterations=function(){return u(this,void 0,void 0,(function(){return c(this,(function(t){return null==this.iterations_&&(this.iterations_=0),[2,{name:"iter",tensor:an(this.iterations_,"int32")}]}))}))},e.prototype.getWeights=function(){return u(this,void 0,void 0,(function(){return c(this,(function(t){throw new Error("getWeights() is not implemented for this optimizer yet.")}))}))},e.prototype.setWeights=function(t){return u(this,void 0,void 0,(function(){return c(this,(function(t){throw new Error("setWeights() is not implemented for this optimizer class "+this.getClassName())}))}))},e.prototype.extractIterations=function(t){return u(this,void 0,void 0,(function(){var e;return c(this,(function(n){switch(n.label){case 0:return e=this,[4,t[0].tensor.data()];case 1:return e.iterations_=n.sent()[0],[2,t.slice(1)]}}))}))},e}(Rf);Object.defineProperty(Df,Symbol.hasInstance,{value:function(t){return null!=t.minimize&&null!=t.computeGradients&&null!=t.applyGradients}});var Nf=function(t){function e(e,n,r){void 0===r&&(r=null);var o=t.call(this)||this;return o.learningRate=e,o.rho=n,o.epsilon=r,o.accumulatedGrads=[],o.accumulatedUpdates=[],null==r&&(o.epsilon=Ot.backend.epsilon()),o}return s(e,t),e.prototype.applyGradients=function(t){var e=this;(Array.isArray(t)?t.map((function(t){return t.name})):Object.keys(t)).forEach((function(n,r){var o=Ot.registeredVariables[n];null==e.accumulatedGrads[r]&&(e.accumulatedGrads[r]={originalName:n+"/accum_grad",variable:Pe((function(){return mn(o).variable(!1)}))}),null==e.accumulatedUpdates[r]&&(e.accumulatedUpdates[r]={originalName:n+"/accum_var",variable:Pe((function(){return mn(o).variable(!1)}))});var a=Array.isArray(t)?t[r].tensor:t[n];if(null!=a){var i=e.accumulatedGrads[r].variable,s=e.accumulatedUpdates[r].variable;Pe((function(){var t=i.mul(e.rho).add(a.square().mul(1-e.rho)),n=s.add(e.epsilon).sqrt().div(i.add(e.epsilon).sqrt()).mul(a),r=s.mul(e.rho).add(n.square().mul(1-e.rho));i.assign(t),s.assign(r);var u=n.mul(-e.learningRate).add(o);o.assign(u)}))}})),this.incrementIterations()},e.prototype.dispose=function(){null!=this.accumulatedUpdates&&(Be(this.accumulatedGrads.map((function(t){return t.variable}))),Be(this.accumulatedUpdates.map((function(t){return t.variable}))))},e.prototype.getWeights=function(){return u(this,void 0,void 0,(function(){var t;return c(this,(function(e){switch(e.label){case 0:return t=this.accumulatedGrads.concat(this.accumulatedUpdates),[4,this.saveIterations()];case 1:return[2,[e.sent()].concat(t.map((function(t){return{name:t.originalName,tensor:t.variable}})))]}}))}))},e.prototype.setWeights=function(t){return u(this,void 0,void 0,(function(){var e;return c(this,(function(n){switch(n.label){case 0:return[4,this.extractIterations(t)];case 1:return t=n.sent(),e=t.length/2,this.accumulatedGrads=t.slice(0,e).map((function(t){return{originalName:t.name,variable:t.tensor.variable(!1)}})),this.accumulatedUpdates=t.slice(e,2*e).map((function(t){return{originalName:t.name,variable:t.tensor.variable(!1)}})),[2]}}))}))},e.prototype.getConfig=function(){return{learningRate:this.learningRate,rho:this.rho,epsilon:this.epsilon}},e.fromConfig=function(t,e){return new t(e.learningRate,e.rho,e.epsilon)},e.className="Adadelta",e}(Df);Sf(Nf);var Ff=function(t){function e(e,n){void 0===n&&(n=.1);var r=t.call(this)||this;return r.learningRate=e,r.initialAccumulatorValue=n,r.accumulatedGrads=[],r}return s(e,t),e.prototype.applyGradients=function(t){var e=this;(Array.isArray(t)?t.map((function(t){return t.name})):Object.keys(t)).forEach((function(n,r){var o=Ot.registeredVariables[n];null==e.accumulatedGrads[r]&&(e.accumulatedGrads[r]={originalName:n+"/accumulator",variable:Pe((function(){return pn(o.shape,e.initialAccumulatorValue).variable(!1)}))});var a=Array.isArray(t)?t[r].tensor:t[n];if(null!=a){var i=e.accumulatedGrads[r].variable;Pe((function(){var t=i.add(a.square());i.assign(t);var n=a.div(t.add(Ot.backend.epsilon()).sqrt()).mul(-e.learningRate).add(o);o.assign(n)}))}})),this.incrementIterations()},e.prototype.dispose=function(){null!=this.accumulatedGrads&&Be(this.accumulatedGrads.map((function(t){return t.variable})))},e.prototype.getWeights=function(){return u(this,void 0,void 0,(function(){return c(this,(function(t){switch(t.label){case 0:return[4,this.saveIterations()];case 1:return[2,[t.sent()].concat(this.accumulatedGrads.map((function(t){return{name:t.originalName,tensor:t.variable}})))]}}))}))},e.prototype.setWeights=function(t){return u(this,void 0,void 0,(function(){return c(this,(function(e){switch(e.label){case 0:return[4,this.extractIterations(t)];case 1:return t=e.sent(),this.accumulatedGrads=t.map((function(t){return{originalName:t.name,variable:t.tensor.variable(!1)}})),[2]}}))}))},e.prototype.getConfig=function(){return{learningRate:this.learningRate,initialAccumulatorValue:this.initialAccumulatorValue}},e.fromConfig=function(t,e){return new t(e.learningRate,e.initialAccumulatorValue)},e.className="Adagrad",e}(Df);Sf(Ff);var Mf=function(t){function e(e,n,r,o){void 0===o&&(o=null);var a=t.call(this)||this;return a.learningRate=e,a.beta1=n,a.beta2=r,a.epsilon=o,a.accumulatedFirstMoment=[],a.accumulatedSecondMoment=[],Pe((function(){a.accBeta1=an(n).variable(),a.accBeta2=an(r).variable()})),null==o&&(a.epsilon=Ot.backend.epsilon()),a}return s(e,t),e.prototype.applyGradients=function(t){var e=this,n=Array.isArray(t)?t.map((function(t){return t.name})):Object.keys(t);Pe((function(){var r=ou(1,e.accBeta1),o=ou(1,e.accBeta2);n.forEach((function(n,a){var i=Ot.registeredVariables[n];null==e.accumulatedFirstMoment[a]&&(e.accumulatedFirstMoment[a]={originalName:n+"/m",variable:Pe((function(){return mn(i).variable(!1)}))}),null==e.accumulatedSecondMoment[a]&&(e.accumulatedSecondMoment[a]={originalName:n+"/v",variable:Pe((function(){return mn(i).variable(!1)}))});var s=Array.isArray(t)?t[a].tensor:t[n];if(null!=s){var u=e.accumulatedFirstMoment[a].variable,c=e.accumulatedSecondMoment[a].variable,l=u.mul(e.beta1).add(s.mul(1-e.beta1)),f=c.mul(e.beta2).add(s.square().mul(1-e.beta2)),h=l.div(r),p=f.div(o);u.assign(l),c.assign(f);var d=h.div(p.sqrt().add(e.epsilon)).mul(-e.learningRate).add(i);i.assign(d)}})),e.accBeta1.assign(e.accBeta1.mul(e.beta1)),e.accBeta2.assign(e.accBeta2.mul(e.beta2))})),this.incrementIterations()},e.prototype.dispose=function(){this.accBeta1.dispose(),this.accBeta2.dispose(),null!=this.accumulatedFirstMoment&&Be(this.accumulatedFirstMoment.map((function(t){return t.variable}))),null!=this.accumulatedSecondMoment&&Be(this.accumulatedSecondMoment.map((function(t){return t.variable})))},e.prototype.getWeights=function(){return u(this,void 0,void 0,(function(){var t;return c(this,(function(e){switch(e.label){case 0:return t=this.accumulatedFirstMoment.concat(this.accumulatedSecondMoment),[4,this.saveIterations()];case 1:return[2,[e.sent()].concat(t.map((function(t){return{name:t.originalName,tensor:t.variable}})))]}}))}))},e.prototype.setWeights=function(t){return u(this,void 0,void 0,(function(){var e,n=this;return c(this,(function(r){switch(r.label){case 0:return[4,this.extractIterations(t)];case 1:return t=r.sent(),Pe((function(){n.accBeta1.assign(tu(n.beta1,n.iterations_+1)),n.accBeta2.assign(tu(n.beta2,n.iterations_+1))})),e=t.length/2,this.accumulatedFirstMoment=t.slice(0,e).map((function(t){return{originalName:t.name,variable:t.tensor.variable(!1)}})),this.accumulatedSecondMoment=t.slice(e,2*e).map((function(t){return{originalName:t.name,variable:t.tensor.variable(!1)}})),[2]}}))}))},e.prototype.getConfig=function(){return{learningRate:this.learningRate,beta1:this.beta1,beta2:this.beta2,epsilon:this.epsilon}},e.fromConfig=function(t,e){return new t(e.learningRate,e.beta1,e.beta2,e.epsilon)},e.className="Adam",e}(Df);Sf(Mf);var Pf=function(t){function e(e,n,r,o,a){void 0===o&&(o=null),void 0===a&&(a=0);var i=t.call(this)||this;return i.learningRate=e,i.beta1=n,i.beta2=r,i.epsilon=o,i.decay=a,i.accumulatedFirstMoment=[],i.accumulatedWeightedInfNorm=[],Pe((function(){i.iteration=an(0).variable(),i.accBeta1=an(n).variable()})),null==o&&(i.epsilon=Ot.backend.epsilon()),i}return s(e,t),e.prototype.applyGradients=function(t){var e=this,n=Array.isArray(t)?t.map((function(t){return t.name})):Object.keys(t);Pe((function(){var r=ou(1,e.accBeta1),o=zs(-e.learningRate,e.iteration.mul(e.decay).add(1));n.forEach((function(n,a){var i=Ot.registeredVariables[n];null==e.accumulatedFirstMoment[a]&&(e.accumulatedFirstMoment[a]={originalName:n+"/m",variable:mn(i).variable(!1)}),null==e.accumulatedWeightedInfNorm[a]&&(e.accumulatedWeightedInfNorm[a]={originalName:n+"/v",variable:mn(i).variable(!1)});var s=Array.isArray(t)?t[a].tensor:t[n];if(null!=s){var u=e.accumulatedFirstMoment[a].variable,c=e.accumulatedWeightedInfNorm[a].variable,l=u.mul(e.beta1).add(s.mul(1-e.beta1)),f=c.mul(e.beta2),h=s.abs(),p=f.maximum(h);u.assign(l),c.assign(p);var d=o.div(r).mul(l.div(p.add(e.epsilon))).add(i);i.assign(d)}})),e.iteration.assign(e.iteration.add(1)),e.accBeta1.assign(e.accBeta1.mul(e.beta1))})),this.incrementIterations()},e.prototype.dispose=function(){this.accBeta1.dispose(),this.iteration.dispose(),null!=this.accumulatedFirstMoment&&Be(this.accumulatedFirstMoment.map((function(t){return t.variable}))),null!=this.accumulatedWeightedInfNorm&&Be(this.accumulatedWeightedInfNorm.map((function(t){return t.variable})))},e.prototype.getWeights=function(){return u(this,void 0,void 0,(function(){return c(this,(function(t){throw new Error("getWeights() is not implemented for Adamax yet.")}))}))},e.prototype.setWeights=function(t){return u(this,void 0,void 0,(function(){return c(this,(function(t){throw new Error("setWeights() is not implemented for Adamax yet.")}))}))},e.prototype.getConfig=function(){return{learningRate:this.learningRate,beta1:this.beta1,beta2:this.beta2,epsilon:this.epsilon,decay:this.decay}},e.fromConfig=function(t,e){return new t(e.learningRate,e.beta1,e.beta2,e.epsilon,e.decay)},e.className="Adamax",e}(Df);Sf(Pf);var Bf=function(t){function e(e){var n=t.call(this)||this;return n.learningRate=e,n.setLearningRate(e),n}return s(e,t),e.prototype.applyGradients=function(t){var e=this;(Array.isArray(t)?t.map((function(t){return t.name})):Object.keys(t)).forEach((function(n,r){var o=Array.isArray(t)?t[r].tensor:t[n];if(null!=o){var a=Ot.registeredVariables[n];Pe((function(){var t=e.c.mul(o).add(a);a.assign(t)}))}})),this.incrementIterations()},e.prototype.setLearningRate=function(t){this.learningRate=t,null!=this.c&&this.c.dispose(),this.c=function(t){return Ot.keep(t)}(an(-t))},e.prototype.dispose=function(){this.c.dispose()},e.prototype.getWeights=function(){return u(this,void 0,void 0,(function(){return c(this,(function(t){switch(t.label){case 0:return[4,this.saveIterations()];case 1:return[2,[t.sent()]]}}))}))},e.prototype.setWeights=function(t){return u(this,void 0,void 0,(function(){return c(this,(function(e){switch(e.label){case 0:return[4,this.extractIterations(t)];case 1:if(0!==(t=e.sent()).length)throw new Error("SGD optimizer does not have settable weights.");return[2]}}))}))},e.prototype.getConfig=function(){return{learningRate:this.learningRate}},e.fromConfig=function(t,e){return new t(e.learningRate)},e.className="SGD",e}(Df);Sf(Bf);var Lf=function(t){function e(e,n,r){void 0===r&&(r=!1);var o=t.call(this,e)||this;return o.learningRate=e,o.momentum=n,o.useNesterov=r,o.accumulations=[],o.m=an(o.momentum),o}return s(e,t),e.prototype.applyGradients=function(t){var e=this;(Array.isArray(t)?t.map((function(t){return t.name})):Object.keys(t)).forEach((function(n,r){var o=Ot.registeredVariables[n];null==e.accumulations[r]&&(e.accumulations[r]={originalName:n+"/momentum",variable:Pe((function(){return mn(o).variable(!1)}))});var a=e.accumulations[r].variable,i=Array.isArray(t)?t[r].tensor:t[n];null!=i&&Pe((function(){var t,n=e.m.mul(a).add(i);t=e.useNesterov?e.c.mul(i.add(n.mul(e.m))).add(o):e.c.mul(n).add(o),a.assign(n),o.assign(t)}))})),this.incrementIterations()},e.prototype.dispose=function(){this.m.dispose(),null!=this.accumulations&&Be(this.accumulations.map((function(t){return t.variable})))},e.prototype.setMomentum=function(t){this.momentum=t},e.prototype.getWeights=function(){return u(this,void 0,void 0,(function(){return c(this,(function(t){switch(t.label){case 0:return[4,this.saveIterations()];case 1:return[2,[t.sent()].concat(this.accumulations.map((function(t){return{name:t.originalName,tensor:t.variable}})))]}}))}))},e.prototype.setWeights=function(t){return u(this,void 0,void 0,(function(){return c(this,(function(e){switch(e.label){case 0:return[4,this.extractIterations(t)];case 1:return t=e.sent(),this.accumulations=t.map((function(t){return{originalName:t.name,variable:t.tensor.variable(!1)}})),[2]}}))}))},e.prototype.getConfig=function(){return{learningRate:this.learningRate,momentum:this.momentum,useNesterov:this.useNesterov}},e.fromConfig=function(t,e){return new t(e.learningRate,e.momentum,e.useNesterov)},e.className="Momentum",e}(Bf);Sf(Lf);var Wf=function(t){function e(e,n,r,o,a){void 0===n&&(n=.9),void 0===r&&(r=0),void 0===o&&(o=null),void 0===a&&(a=!1);var i=t.call(this)||this;return i.learningRate=e,i.decay=n,i.momentum=r,i.epsilon=o,i.accumulatedMeanSquares=[],i.accumulatedMoments=[],i.accumulatedMeanGrads=[],i.centered=a,null==o&&(i.epsilon=Ot.backend.epsilon()),i}return s(e,t),e.prototype.applyGradients=function(t){var e=this;(Array.isArray(t)?t.map((function(t){return t.name})):Object.keys(t)).forEach((function(n,r){var o=Ot.registeredVariables[n];null==e.accumulatedMeanSquares[r]&&(e.accumulatedMeanSquares[r]={originalName:n+"/rms",variable:Pe((function(){return mn(o).variable(!1)}))}),null==e.accumulatedMoments[r]&&(e.accumulatedMoments[r]={originalName:n+"/momentum",variable:Pe((function(){return mn(o).variable(!1)}))}),null==e.accumulatedMeanGrads[r]&&e.centered&&(e.accumulatedMeanGrads[r]={originalName:n+"/mg",variable:Pe((function(){return mn(o).variable(!1)}))});var a=Array.isArray(t)?t[r].tensor:t[n];if(null!=a){var i=e.accumulatedMeanSquares[r].variable,s=e.accumulatedMoments[r].variable;Pe((function(){var t=i.mul(e.decay).add(a.square().mul(1-e.decay));if(e.centered){var n=e.accumulatedMeanGrads[r].variable,u=n.mul(e.decay).add(a.mul(1-e.decay)),c=s.mul(e.momentum).add(a.mul(e.learningRate).div(t.sub(u.square().add(e.epsilon)).sqrt()));i.assign(t),n.assign(u),s.assign(c);var l=o.sub(c);o.assign(l)}else{var f=i.mul(e.decay).add(a.square().mul(1-e.decay));c=s.mul(e.momentum).add(a.mul(e.learningRate).div(f.add(e.epsilon).sqrt())),i.assign(f),s.assign(c),l=o.sub(c),o.assign(l)}}))}})),this.incrementIterations()},e.prototype.dispose=function(){null!=this.accumulatedMeanSquares&&Be(this.accumulatedMeanSquares.map((function(t){return t.variable}))),null!=this.accumulatedMeanGrads&&this.centered&&Be(this.accumulatedMeanGrads.map((function(t){return t.variable}))),null!=this.accumulatedMoments&&Be(this.accumulatedMoments.map((function(t){return t.variable})))},e.prototype.getWeights=function(){return u(this,void 0,void 0,(function(){var t;return c(this,(function(e){switch(e.label){case 0:return t=this.accumulatedMeanSquares.concat(this.accumulatedMoments),this.centered&&t.push.apply(t,this.accumulatedMeanGrads),[4,this.saveIterations()];case 1:return[2,[e.sent()].concat(t.map((function(t){return{name:t.originalName,tensor:t.variable}})))]}}))}))},e.prototype.setWeights=function(t){return u(this,void 0,void 0,(function(){var e;return c(this,(function(n){switch(n.label){case 0:return[4,this.extractIterations(t)];case 1:return t=n.sent(),e=this.centered?t.length/3:t.length/2,this.accumulatedMeanSquares=t.slice(0,e).map((function(t){return{originalName:t.name,variable:t.tensor.variable(!1)}})),this.accumulatedMoments=t.slice(e,2*e).map((function(t){return{originalName:t.name,variable:t.tensor.variable(!1)}})),this.centered&&(this.accumulatedMeanGrads=t.slice(2*e,3*e).map((function(t){return{originalName:t.name,variable:t.tensor.variable(!1)}}))),[2]}}))}))},e.prototype.getConfig=function(){return{learningRate:this.learningRate,decay:this.decay,momentum:this.momentum,epsilon:this.epsilon,centered:this.centered}},e.fromConfig=function(t,e){return new t(e.learningRate,e.decay,e.momentum,e.epsilon,e.centered)},e.className="RMSProp",e}(Df);Sf(Wf);var Uf=function(){function t(){}return t.sgd=function(t){return new Bf(t)},t.momentum=function(t,e,n){return void 0===n&&(n=!1),new Lf(t,e,n)},t.rmsprop=function(t,e,n,r,o){return void 0===e&&(e=.9),void 0===n&&(n=0),void 0===r&&(r=null),void 0===o&&(o=!1),new Wf(t,e,n,r,o)},t.adam=function(t,e,n,r){return void 0===t&&(t=.001),void 0===e&&(e=.9),void 0===n&&(n=.999),void 0===r&&(r=null),new Mf(t,e,n,r)},t.adadelta=function(t,e,n){return void 0===t&&(t=.001),void 0===e&&(e=.95),void 0===n&&(n=null),new Nf(t,e,n)},t.adamax=function(t,e,n,r,o){return void 0===t&&(t=.002),void 0===e&&(e=.9),void 0===n&&(n=.999),void 0===r&&(r=null),void 0===o&&(o=0),new Pf(t,e,n,r,o)},t.adagrad=function(t,e){return void 0===e&&(e=.1),new Ff(t,e)},t}();Uf.sgd,Uf.momentum,Uf.adadelta,Uf.adagrad,Uf.rmsprop,Uf.adamax,Uf.adam,"undefined"!=typeof requestAnimationFrame&&requestAnimationFrame;ht=xl}).call(this,n(5),n(10),n(63).Buffer,n(67).setImmediate)},function(t,e,n){"use strict";n.d(e,"c",(function(){return o})),n.d(e,"a",(function(){return a})),n.d(e,"b",(function(){return i})),n.d(e,"d",(function(){return s})),n.d(e,"e",(function(){return u}));var r=function(t,e){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])})(t,e)};function o(t,e){function n(){this.constructor=t}r(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)}var a=function(){return(a=Object.assign||function(t){for(var e,n=1,r=arguments.length;n<r;n++)for(var o in e=arguments[n])Object.prototype.hasOwnProperty.call(e,o)&&(t[o]=e[o]);return t}).apply(this,arguments)};function i(t,e,n,r){return new(n||(n=Promise))((function(o,a){function i(t){try{u(r.next(t))}catch(e){a(e)}}function s(t){try{u(r.throw(t))}catch(e){a(e)}}function u(t){var e;t.done?o(t.value):(e=t.value,e instanceof n?e:new n((function(t){t(e)}))).then(i,s)}u((r=r.apply(t,e||[])).next())}))}function s(t,e){var n,r,o,a,i={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return a={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(a){return function(s){return function(a){if(n)throw new TypeError("Generator is already executing.");for(;i;)try{if(n=1,r&&(o=2&a[0]?r.return:a[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,a[1])).done)return o;switch(r=0,o&&(a=[2&a[0],o.value]),a[0]){case 0:case 1:o=a;break;case 4:return i.label++,{value:a[1],done:!1};case 5:i.label++,r=a[1],a=[0];continue;case 7:a=i.ops.pop(),i.trys.pop();continue;default:if(!(o=i.trys,(o=o.length>0&&o[o.length-1])||6!==a[0]&&2!==a[0])){i=0;continue}if(3===a[0]&&(!o||a[1]>o[0]&&a[1]<o[3])){i.label=a[1];break}if(6===a[0]&&i.label<o[1]){i.label=o[1],o=a;break}if(o&&i.label<o[2]){i.label=o[2],i.ops.push(a);break}o[2]&&i.ops.pop(),i.trys.pop();continue}a=e.call(t,i)}catch(s){a=[6,s],r=0}finally{n=o=0}if(5&a[0])throw a[1];return{value:a[0]?a[1]:void 0,done:!0}}([a,s])}}}function u(){for(var t=0,e=0,n=arguments.length;e<n;e++)t+=arguments[e].length;var r=Array(t),o=0;for(e=0;e<n;e++)for(var a=arguments[e],i=0,s=a.length;i<s;i++,o++)r[o]=a[i];return r}},function(t,e){t.exports=require("react")},function(t,e,n){t.exports=n(61)()},function(t,e,n){var r=n(56),o=n(57),a=n(58),i=n(60);t.exports=function(t,e){return r(t)||o(t,e)||a(t,e)||i()},t.exports.default=t.exports,t.exports.__esModule=!0},function(t,e){var n;n=function(){return this}();try{n=n||new Function("return this")()}catch(r){"object"==typeof window&&(n=window)}t.exports=n},function(t,e,n){t.exports={container:"tUn9t5uXBW0G4uOuaTOqA",baseCounter:"_3JRt0WWENWRFRoNQBy35fI",activeCounter:"_1fIU1q1Zn5Q8C9xn0Ir-dW",inactiveCounter:"_2mwc0c5WhPOqV9wJk9VkGV",baseIcon:"_2_g_DOxWE8kqzFMzKyK37t",activeIcon:"_3mr2-PKNrqmyEJlyzqUVvx",inactiveIcon:"_1RzxXrRIq2Q9MbP1nZJdM9"}},function(t,e,n){t.exports={container:"_1BAMDen_YLcifIe4T1Qv-_",overlay:"_1e9w5ipw5j_XUcEv_CJUlO",outline:"_2W6OS2MmM9HFQCXWdJ8ASr",portraitCamera:"_2R1kfrIDlFyYzv1nDgZcTN",landscapeCamera:"TwXhRfznW400Ln2BpPUbd"}},function(t,e,n){var r;!function(){"use strict";var n={}.hasOwnProperty;function o(){for(var t=[],e=0;e<arguments.length;e++){var r=arguments[e];if(r){var a=typeof r;if("string"===a||"number"===a)t.push(r);else if(Array.isArray(r)&&r.length){var i=o.apply(null,r);i&&t.push(i)}else if("object"===a)for(var s in r)n.call(r,s)&&r[s]&&t.push(s)}}return t.join(" ")}t.exports?(o.default=o,t.exports=o):void 0===(r=function(){return o}.apply(e,[]))||(t.exports=r)}()},function(t,e,n){"use strict";function r(t){var e="";if(!t)try{t=n(!function(){var t=new Error("Cannot find module 'fs'");throw t.code="MODULE_NOT_FOUND",t}())}catch(r){e=r.toString()}return{readFile:t?function(e){return new Promise((function(n,r){t.readFile(e,(function(t,e){return t?r(t):n(e)}))}))}:function(){throw new Error("readFile - failed to require fs in nodejs environment with error: "+e)}}}n.d(e,"a",(function(){return r}))},function(t,e){var n,r,o=t.exports={};function a(){throw new Error("setTimeout has not been defined")}function i(){throw new Error("clearTimeout has not been defined")}function s(t){if(n===setTimeout)return setTimeout(t,0);if((n===a||!n)&&setTimeout)return n=setTimeout,setTimeout(t,0);try{return n(t,0)}catch(e){try{return n.call(null,t,0)}catch(e){return n.call(this,t,0)}}}!function(){try{n="function"==typeof setTimeout?setTimeout:a}catch(t){n=a}try{r="function"==typeof clearTimeout?clearTimeout:i}catch(t){r=i}}();var u,c=[],l=!1,f=-1;function h(){l&&u&&(l=!1,u.length?c=u.concat(c):f=-1,c.length&&p())}function p(){if(!l){var t=s(h);l=!0;for(var e=c.length;e;){for(u=c,c=[];++f<e;)u&&u[f].run();f=-1,e=c.length}u=null,l=!1,function(t){if(r===clearTimeout)return clearTimeout(t);if((r===i||!r)&&clearTimeout)return r=clearTimeout,clearTimeout(t);try{r(t)}catch(e){try{return r.call(null,t)}catch(e){return r.call(this,t)}}}(t)}}function d(t,e){this.fun=t,this.array=e}function v(){}o.nextTick=function(t){var e=new Array(arguments.length-1);if(arguments.length>1)for(var n=1;n<arguments.length;n++)e[n-1]=arguments[n];c.push(new d(t,e)),1!==c.length||l||s(p)},d.prototype.run=function(){this.fun.apply(null,this.array)},o.title="browser",o.browser=!0,o.env={},o.argv=[],o.version="",o.versions={},o.on=v,o.addListener=v,o.once=v,o.off=v,o.removeListener=v,o.removeAllListeners=v,o.emit=v,o.prependListener=v,o.prependOnceListener=v,o.listeners=function(t){return[]},o.binding=function(t){throw new Error("process.binding is not supported")},o.cwd=function(){return"/"},o.chdir=function(t){throw new Error("process.chdir is not supported")},o.umask=function(){return 0}},function(t,e,n){t.exports={container:"_3UWaUYYyQc5VbvW6HKIRHv",landscape:"_2degJvmXASrj_NvC6CXWqN"}},function(t,e,n){t.exports={button:"_1Tg9slZrrhpko8KnDP7C6X",icon:"_1Fm1wq10kVJMKVxtWwkZex"}},function(t,e,n){"use strict";(function(t){n.d(e,"a",(function(){return a}));var r=n(1),o=n(9);function a(){var e=t.Canvas||t.HTMLCanvasElement,n=t.Image||t.HTMLImageElement,a=t.fetch||function(){throw new Error("fetch - missing fetch implementation for nodejs environment")},i=Object(o.a)();return Object(r.a)({Canvas:e||function(){},CanvasRenderingContext2D:t.CanvasRenderingContext2D||function(){},Image:n||function(){},ImageData:t.ImageData||function(){},Video:t.HTMLVideoElement||function(){},createCanvasElement:function(){if(e)return new e;throw new Error("createCanvasElement - missing Canvas implementation for nodejs environment")},createImageElement:function(){if(n)return new n;throw new Error("createImageElement - missing Image implementation for nodejs environment")},fetch:a},i)}}).call(this,n(5))},function(t,e,n){"use strict";(function(r,o){function a(){return"object"==typeof r&&void 0!==t&&void 0!==o&&!!o.version}n.d(e,"a",(function(){return a}))}).call(this,n(5),n(10))},function(t,e,n){t.exports={cameraContainer:"_3Ums-OZ0qWebWj0SZbqYjT",moduleContainer:"IOOd58zY5WSnpJo3-6iVV"}},function(t,e){t.exports=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")},t.exports.default=t.exports,t.exports.__esModule=!0},function(t,e){function n(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}t.exports=function(t,e,r){return e&&n(t.prototype,e),r&&n(t,r),t},t.exports.default=t.exports,t.exports.__esModule=!0},function(t,e){function n(e){return t.exports=n=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)},t.exports.default=t.exports,t.exports.__esModule=!0,n(e)}t.exports=n,t.exports.default=t.exports,t.exports.__esModule=!0},function(t,e,n){var r=n(75);t.exports=function(t,e){if(null==t)return{};var n,o,a=r(t,e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(o=0;o<i.length;o++)n=i[o],e.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(a[n]=t[n])}return a},t.exports.default=t.exports,t.exports.__esModule=!0},function(t,e){t.exports=function(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t},t.exports.default=t.exports,t.exports.__esModule=!0},function(t,e,n){t.exports={container:"_309CoDF8kNC59Cacci2i3u"}},function(t,e,n){t.exports={canvas:"vNKPZsVtPwMoITxtjuu9V"}},function(t,e,n){var r;r=function(t){return function(t){var e={};function n(r){if(e[r])return e[r].exports;var o=e[r]={i:r,l:!1,exports:{}};return t[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=t,n.c=e,n.d=function(t,e,r){n.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:r})},n.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},n.t=function(t,e){if(1&e&&(t=n(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var o in t)n.d(r,o,function(e){return t[e]}.bind(null,o));return r},n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,"a",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p="",n(n.s="./src/react-webcam.tsx")}({"./src/react-webcam.tsx":function(t,e,n){"use strict";n.r(e);var r,o=n("react"),a=(r=function(t,e){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])})(t,e)},function(t,e){function n(){this.constructor=t}r(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)}),i=function(){return(i=Object.assign||function(t){for(var e,n=1,r=arguments.length;n<r;n++)for(var o in e=arguments[n])Object.prototype.hasOwnProperty.call(e,o)&&(t[o]=e[o]);return t}).apply(this,arguments)},s=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(null!=t&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(t);o<r.length;o++)e.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(t,r[o])&&(n[r[o]]=t[r[o]])}return n};function u(){return!(!navigator.mediaDevices||!navigator.mediaDevices.getUserMedia)}"undefined"!=typeof window&&(void 0===navigator.mediaDevices&&(navigator.mediaDevices={}),void 0===navigator.mediaDevices.getUserMedia&&(navigator.mediaDevices.getUserMedia=function(t){var e=navigator.getUserMedia||navigator.webkitGetUserMedia||navigator.mozGetUserMedia||navigator.msGetUserMedia;return e?new Promise((function(n,r){e.call(navigator,t,n,r)})):Promise.reject(new Error("getUserMedia is not implemented in this browser"))}));var c=function(t){function e(e){var n=t.call(this,e)||this;return n.canvas=null,n.ctx=null,n.state={hasUserMedia:!1},n}return a(e,t),e.prototype.componentDidMount=function(){var t=this.state,n=this.props;u()?(e.mountedInstances.push(this),t.hasUserMedia||e.userMediaRequested||this.requestUserMedia()):n.onUserMediaError("getUserMedia not supported")},e.prototype.componentDidUpdate=function(t){var e=this.props;if(u()){var n=JSON.stringify(t.audioConstraints)!==JSON.stringify(e.audioConstraints),r=JSON.stringify(t.videoConstraints)!==JSON.stringify(e.videoConstraints),o=t.minScreenshotWidth!==e.minScreenshotWidth,a=t.minScreenshotHeight!==e.minScreenshotHeight;(r||o||a)&&(this.canvas=null,this.ctx=null),(n||r)&&this.requestUserMedia()}else e.onUserMediaError("getUserMedia not supported")},e.prototype.componentWillUnmount=function(){var t=this.state,n=e.mountedInstances.indexOf(this);e.mountedInstances.splice(n,1),e.userMediaRequested=!1,0===e.mountedInstances.length&&t.hasUserMedia&&(this.stream&&(this.stream.getVideoTracks&&this.stream.getAudioTracks?(this.stream.getVideoTracks().map((function(t){return t.stop()})),this.stream.getAudioTracks().map((function(t){return t.stop()}))):this.stream.stop()),t.src&&window.URL.revokeObjectURL(t.src))},e.prototype.getScreenshot=function(){var t=this.state,e=this.props;if(!t.hasUserMedia)return null;var n=this.getCanvas();return n&&n.toDataURL(e.screenshotFormat,e.screenshotQuality)},e.prototype.getCanvas=function(){var t=this.state,e=this.props;if(!this.video)return null;if(!t.hasUserMedia||!this.video.videoHeight)return null;if(!this.ctx){var n=this.video.videoWidth,r=this.video.videoHeight;if(!this.props.forceScreenshotSourceSize){var o=n/r;r=(n=e.minScreenshotWidth||this.video.clientWidth)/o,e.minScreenshotHeight&&r<e.minScreenshotHeight&&(n=(r=e.minScreenshotHeight)*o)}this.canvas=document.createElement("canvas"),this.canvas.width=n,this.canvas.height=r,this.ctx=this.canvas.getContext("2d")}var a=this.ctx,i=this.canvas;return a&&i&&(e.mirrored&&(a.translate(i.width,0),a.scale(-1,1)),a.imageSmoothingEnabled=e.imageSmoothing,a.drawImage(this.video,0,0,i.width,i.height),e.mirrored&&(a.scale(-1,1),a.translate(-i.width,0))),i},e.prototype.requestUserMedia=function(){var t=this.props,n=function(n,r){var o={video:void 0===r||r};t.audio&&(o.audio=void 0===n||n),navigator.mediaDevices.getUserMedia(o).then((function(t){e.mountedInstances.forEach((function(e){return e.handleUserMedia(null,t)}))})).catch((function(t){e.mountedInstances.forEach((function(e){return e.handleUserMedia(t)}))}))};if("mediaDevices"in navigator)n(t.audioConstraints,t.videoConstraints);else{var r=function(t){return{optional:[{sourceId:t}]}},o=function(t){var e=t.deviceId;return"string"==typeof e?e:Array.isArray(e)&&e.length>0?e[0]:"object"==typeof e&&e.ideal?e.ideal:null};MediaStreamTrack.getSources((function(e){var a=null,i=null;e.forEach((function(t){"audio"===t.kind?a=t.id:"video"===t.kind&&(i=t.id)}));var s=o(t.audioConstraints);s&&(a=s);var u=o(t.videoConstraints);u&&(i=u),n(r(a),r(i))}))}e.userMediaRequested=!0},e.prototype.handleUserMedia=function(t,e){var n=this.props;if(t||!e)return this.setState({hasUserMedia:!1}),void n.onUserMediaError(t);this.stream=e;try{this.video&&(this.video.srcObject=e),this.setState({hasUserMedia:!0})}catch(r){this.setState({hasUserMedia:!0,src:window.URL.createObjectURL(e)})}n.onUserMedia()},e.prototype.render=function(){var t=this,e=this.state,n=this.props,r=n.audio,a=(n.forceScreenshotSourceSize,n.onUserMedia,n.onUserMediaError,n.screenshotFormat,n.screenshotQuality,n.minScreenshotWidth,n.minScreenshotHeight,n.audioConstraints,n.videoConstraints,n.imageSmoothing,n.mirrored),u=n.style,c=void 0===u?{}:u,l=s(n,["audio","forceScreenshotSourceSize","onUserMedia","onUserMediaError","screenshotFormat","screenshotQuality","minScreenshotWidth","minScreenshotHeight","audioConstraints","videoConstraints","imageSmoothing","mirrored","style"]),f=a?i(i({},c),{transform:(c.transform||"")+" scaleX(-1)"}):c;return o.createElement("video",i({autoPlay:!0,src:e.src,muted:r,playsInline:!0,ref:function(e){t.video=e},style:f},l))},e.defaultProps={audio:!0,forceScreenshotSourceSize:!1,imageSmoothing:!0,mirrored:!1,onUserMedia:function(){},onUserMediaError:function(){},screenshotFormat:"image/webp",screenshotQuality:.92},e.mountedInstances=[],e.userMediaRequested=!1,e}(o.Component);e.default=c},react:function(e,n){e.exports=t}}).default},t.exports=r(n(2))},function(t,e,n){t.exports={video:"_3GqInLQ5XsRTU_HmqqchW9"}},function(t,e){t.exports={messages:{"camera-loading-feedback-message":"Preparing camera...","face-scan-loading-feedback-message":"Preparing face scan...","hold-still-feedback-message":"Please hold still","image-too-bright-feedback-message":"Move away from direct light","image-too-dark-feedback-message":"Move to a brighter area","move-back-feedback-message":"Move back","move-center-feedback-message":"Place your face in the frame","move-closer-feedback-message":"Move closer","one-face-only-feedback-message":"Only one face allowed"}}},function(t,e){t.exports={messages:{"camera-loading-feedback-message":"Příprava fotoaparátu…","face-scan-loading-feedback-message":"Příprava skenování obličeje…","hold-still-feedback-message":"Stůjte klidně","image-too-bright-feedback-message":"Posuňte se dál z přímého světla","image-too-dark-feedback-message":"Posuňte se na světlejší místo","move-back-feedback-message":"Posuňte se dál","move-center-feedback-message":"Umístěte svůj obličej do rámečku","move-closer-feedback-message":"Posuňte se blíž","one-face-only-feedback-message":"Je povolen pouze jeden obličej"}}},function(t,e){t.exports={messages:{"camera-loading-feedback-message":"Forbereder kamera...","face-scan-loading-feedback-message":"Forbereder ansigtsscanning...","hold-still-feedback-message":"Stå stille","image-too-bright-feedback-message":"Flyt væk fra direkte lys","image-too-dark-feedback-message":"Flyt til et lysere område","move-back-feedback-message":"Flyt dig tilbage","move-center-feedback-message":"Hold dit ansigt i rammen","move-closer-feedback-message":"Flyt dig tættere på","one-face-only-feedback-message":"Kun ét ansigt er tilladt"}}},function(t,e){t.exports={messages:{"camera-loading-feedback-message":"Kamera lädt...","face-scan-loading-feedback-message":"Gesichtsscan wird vorbereitet","hold-still-feedback-message":"Bitte still halten","image-too-bright-feedback-message":"Vermeiden Sie direkte Lichteinstrahlung","image-too-dark-feedback-message":"Wählen Sie einen helleren Ort","move-back-feedback-message":"Gehen Sie zurück","move-center-feedback-message":"Plazieren Sie Ihr Gesicht in die Mitte","move-closer-feedback-message":"Kommen Sie näher","one-face-only-feedback-message":"Nur ein Gesicht ist erlaubt"}}},function(t,e){t.exports={messages:{"camera-loading-feedback-message":"La cámara se está preparando...","face-scan-loading-feedback-message":"Preparando escaneado facial...","hold-still-feedback-message":"Aguanta un momento","image-too-bright-feedback-message":"Aléjate de la luz directa","image-too-dark-feedback-message":"Muévete a un área más iluminada","move-back-feedback-message":"Retírate","move-center-feedback-message":"Colócate en el centro","move-closer-feedback-message":"Acércate","one-face-only-feedback-message":"Enfócate solo a ti"}}},function(t,e){t.exports={messages:{"camera-loading-feedback-message":"La cámara se está preparando...","face-scan-loading-feedback-message":"Preparando escaneado facial...","hold-still-feedback-message":"Quédate quieto un momento","image-too-bright-feedback-message":"Aléjate de la luz directa","image-too-dark-feedback-message":"Muévete a un área más iluminada","move-back-feedback-message":"Aléjate","move-center-feedback-message":"Colócate en el centro","move-closer-feedback-message":"Acércate","one-face-only-feedback-message":"Enfócate solo a ti"}}},function(t,e){t.exports={messages:{"camera-loading-feedback-message":"Valmistellaan kameraa...","face-scan-loading-feedback-message":"Valmistellaan kasvojen skannausta...","hold-still-feedback-message":"Pysy paikallasi","image-too-bright-feedback-message":"Siirry pois suorasta valosta","image-too-dark-feedback-message":"Siirry kirkkaampaan valoon","move-back-feedback-message":"Siirry taaksepäin","move-center-feedback-message":"Aseta kasvot keskelle kehystä","move-closer-feedback-message":"Siirry lähemmäksi","one-face-only-feedback-message":"Vain yhdet kasvot on sallittu"}}},function(t,e){t.exports={messages:{"camera-loading-feedback-message":"Préparation de l'appareil...","face-scan-loading-feedback-message":"Préparation du scan...","hold-still-feedback-message":"Veuillez ne pas bouger","image-too-bright-feedback-message":"Éloignez-vous de toute source de lumière directe","image-too-dark-feedback-message":"Déplacez-vous à un endroit plus lumineux","move-back-feedback-message":"Reculez","move-center-feedback-message":"Placez votre visage dans le cadre","move-closer-feedback-message":"Approchez-vous","one-face-only-feedback-message":"Un seul visage permis"}}},function(t,e){t.exports={messages:{"camera-loading-feedback-message":"कैमरे को तैयार किया जा रहा है...","face-scan-loading-feedback-message":"चेहरा स्कैन करने की तैयारी हो रही है…","hold-still-feedback-message":"कृपया हिले डुले नहीं","image-too-bright-feedback-message":"सीधी रोशनी से दूर हटें","image-too-dark-feedback-message":"ज़्यादा रोशनी वाली जगह पर जाएं","move-back-feedback-message":"पीछे जाएं","move-center-feedback-message":"अपने चेहरे को फ़्रेम में लाएं","move-closer-feedback-message":"थोड़ा करीब आएँ","one-face-only-feedback-message":"सिर्फ़ एक चेहरे की अनुमति है"}}},function(t,e){t.exports={messages:{"camera-loading-feedback-message":"Caricamento della camera...","face-scan-loading-feedback-message":"Caricamento dello scan facciale...","hold-still-feedback-message":"Rimani fermo","image-too-bright-feedback-message":"Spostati dalla luce diretta","image-too-dark-feedback-message":"Spostati in una zona più illuminata","move-back-feedback-message":"Allontanati","move-center-feedback-message":"Posiziona la tua faccia nel riquadro","move-closer-feedback-message":"Avvicinati","one-face-only-feedback-message":"Solo una faccia è permessa"}}},function(t,e){t.exports={messages:{"camera-loading-feedback-message":"カメラ準備中...","face-scan-loading-feedback-message":"フェイススキャン準備中...","hold-still-feedback-message":"動かないでください","image-too-bright-feedback-message":"直射光を避けてください","image-too-dark-feedback-message":"もっと明るい場所に移動してください","move-back-feedback-message":"離れてください","move-center-feedback-message":"顔を枠内に収めてください","move-closer-feedback-message":"近づいてください","one-face-only-feedback-message":"認識できる顔は1つだけです"}}},function(t,e){t.exports={messages:{"camera-loading-feedback-message":"Bezig met camera voorbereiden...","face-scan-loading-feedback-message":"Bezig met gezichtsscan voorbereiden...","hold-still-feedback-message":"Sta stil","image-too-bright-feedback-message":"Niet in direct licht plaatsen","image-too-dark-feedback-message":"Op een lichtere plaats zetten","move-back-feedback-message":"Ga achteruit","move-center-feedback-message":"Plaats je gezicht in het kader","move-closer-feedback-message":"Kom dichter bij","one-face-only-feedback-message":"Slechts één gezicht toegestaan"}}},function(t,e){t.exports={messages:{"camera-loading-feedback-message":"Klargjør kameraet ...","face-scan-loading-feedback-message":"Klargjør ansiktsskanning ...","hold-still-feedback-message":"Hold deg i ro","image-too-bright-feedback-message":"Gå vekk fra direkte lys","image-too-dark-feedback-message":"Gå til et lysere område","move-back-feedback-message":"Gå bakover","move-center-feedback-message":"Hold ansiktet ditt i rammen","move-closer-feedback-message":"Beveg deg forover","one-face-only-feedback-message":"Kun ett ansikt tillat"}}},function(t,e){t.exports={messages:{"camera-loading-feedback-message":"Przygotowywanie aparatu...","face-scan-loading-feedback-message":"Przygotowywanie skanu twarzy...","hold-still-feedback-message":"Nie ruszaj się","image-too-bright-feedback-message":"Przejdź do lepiej oświetlonego miejsca","image-too-dark-feedback-message":"Odsuń się, aby światło nie padało na Ciebie bezpośrednio","move-back-feedback-message":"Cofnij się","move-center-feedback-message":"Umieść twarz w ramce","move-closer-feedback-message":"Przybliż się","one-face-only-feedback-message":"Dozwolona jest tylko jedna twarz"}}},function(t,e){t.exports={messages:{"camera-loading-feedback-message":"Preparando câmera...","face-scan-loading-feedback-message":"Preparando scan do rosto...","hold-still-feedback-message":"Segure firme","image-too-bright-feedback-message":"Afaste-se da iluminação direta.","image-too-dark-feedback-message":"Vá para uma área mais iluminada","move-back-feedback-message":"Afaste-se","move-center-feedback-message":"Coloque seu rosto no quadro","move-closer-feedback-message":"Aproxime-se","one-face-only-feedback-message":"Somente um rosto permitido"}}},function(t,e){t.exports={messages:{"camera-loading-feedback-message":"Se pregătește camera...","face-scan-loading-feedback-message":"Se pregătește scanarea feței...","hold-still-feedback-message":"Vă rugăm nu vă mișcați","image-too-bright-feedback-message":"Îndepărtați-vă de lumina directă","image-too-dark-feedback-message":"Duceți-vă într-o zonă mai luminoasă","move-back-feedback-message":"Mergeți mai în spate","move-center-feedback-message":"Poziționați fața în cadru","move-closer-feedback-message":"Veniți mai aproape","one-face-only-feedback-message":"Este permisă doar o singură față"}}},function(t,e){t.exports={messages:{"camera-loading-feedback-message":"Подготовка камеры...","face-scan-loading-feedback-message":"Подготовка к сканированию лица...","hold-still-feedback-message":"Не двигайтесь","image-too-bright-feedback-message":"Отодвиньтесь от прямого света","image-too-dark-feedback-message":"Перейдите в более светлое место","move-back-feedback-message":"Отодвиньтесь назад","move-center-feedback-message":"Поместите лицо в рамку","move-closer-feedback-message":"Придвиньтесь ближе","one-face-only-feedback-message":"Допускается только одно лицо"}}},function(t,e){t.exports={messages:{"camera-loading-feedback-message":"Förbereder kameran …","face-scan-loading-feedback-message":"Förbereder ansiktsskanning ...","hold-still-feedback-message":"Vänligen håll still","image-too-bright-feedback-message":"Avlägsna dig från direkt ljus","image-too-dark-feedback-message":"Flytta till ett ljusare område","move-back-feedback-message":"Backa","move-center-feedback-message":"Placera ditt ansikte i ramen","move-closer-feedback-message":"Flytta dig närmare","one-face-only-feedback-message":"Endast ett ansikte tillåtet"}}},function(t,e){t.exports={messages:{"camera-loading-feedback-message":"กำลังเตรียมกล้อง...","face-scan-loading-feedback-message":"กำลังเตรียมการสแกนใบหน้า...","hold-still-feedback-message":"โปรดหยุดนิ่ง","image-too-bright-feedback-message":"ขยับออกห่างจากแสงโดยตรง","image-too-dark-feedback-message":"ขยับไปยังพื้นที่ที่สว่างกว่า","move-back-feedback-message":"ถอยหลัง","move-center-feedback-message":"ขยับให้ใบหน้าของคุณอยู่ในเฟรม","move-closer-feedback-message":"ขยับเข้ามาใกล้ขึ้น","one-face-only-feedback-message":"อนุญาตให้มีเพียงใบหน้าเดียวเท่านั้น"}}},function(t,e){t.exports={messages:{"camera-loading-feedback-message":"Kamera hazırlanıyor...","face-scan-loading-feedback-message":"Yüz tarama hazırlanıyor...","hold-still-feedback-message":"Lütfen kıpırdamadan bekleyin","image-too-bright-feedback-message":"Direkt ışıktan uzaklaşın","image-too-dark-feedback-message":"Daha aydınlık bir alana geçin","move-back-feedback-message":"Uzaklaşın","move-center-feedback-message":"Yüzünüzü çerçeveye yerleştirin","move-closer-feedback-message":"Yakınlaşın","one-face-only-feedback-message":"Yalnızca bir yüze izin verilir"}}},function(t,e){t.exports={messages:{"camera-loading-feedback-message":"Đang chuẩn bị máy ảnh...","face-scan-loading-feedback-message":"Đang chuẩn bị quét khuôn mặt...","hold-still-feedback-message":"Vui lòng giữ yên","image-too-bright-feedback-message":"Di chuyển khỏi chỗ ánh sáng chiếu trực tiếp","image-too-dark-feedback-message":"Di chuyển đến chỗ sáng hơn","move-back-feedback-message":"Lùi lại","move-center-feedback-message":"Giữ khuôn mặt của bạn ở trong khung hình","move-closer-feedback-message":"Di chuyển lại gần hơn","one-face-only-feedback-message":"Chỉ cho phép một khuôn mặt"}}},function(t,e){t.exports={messages:{"camera-loading-feedback-message":"Kaamera ettevalmistamine...","face-scan-loading-feedback-message":"Näoskanni ettevalmistamine...","hold-still-feedback-message":"Ärge liigutage","image-too-bright-feedback-message":"Liikuge otsesest valgusest eemale","image-too-dark-feedback-message":"Liikuge paremini valgustatud kohta","move-back-feedback-message":"Liikuge kaugemale","move-center-feedback-message":"Paigutage oma nägu kaadrisse","move-closer-feedback-message":"Liikuge lähemale","one-face-only-feedback-message":"Ainult üks nägu on lubatud"}}},function(t,e){t.exports={messages:{"camera-loading-feedback-message":"Підготовка камери...","face-scan-loading-feedback-message":"Підготовка до сканування обличчя...","hold-still-feedback-message":"Не рухайтеся","image-too-bright-feedback-message":"Відійдіть від прямого світла","image-too-dark-feedback-message":"Підійдіть у світліше місце","move-back-feedback-message":"Відійдіть назад","move-center-feedback-message":"Помістіть своє обличчя в рамку","move-closer-feedback-message":"Підійдіть ближче","one-face-only-feedback-message":"Дозволяється лише одне обличчя"}}},function(t,e){t.exports={messages:{"camera-loading-feedback-message":"Ruošiamas fotoaparatas...","face-scan-loading-feedback-message":"Ruošiamasi nuskaityti veidą...","hold-still-feedback-message":"Nejudėkite","image-too-bright-feedback-message":"Paeikite toliau nuo tiesioginių saulės spindulių","image-too-dark-feedback-message":"Pereikite į šviesesnę vietą","move-back-feedback-message":"Paeikite atgal","move-center-feedback-message":"Laikykite veidą rėmelyje","move-closer-feedback-message":"Prieikite arčiau","one-face-only-feedback-message":"Gali būti tik vienas veidas"}}},function(t,e){t.exports={messages:{"camera-loading-feedback-message":"Menyediakan kamera...","face-scan-loading-feedback-message":"Menyediakan imbasan muka...","hold-still-feedback-message":"Sila jangan bergerak","image-too-bright-feedback-message":"Jauhkan diri daripada cahaya terus","image-too-dark-feedback-message":"Bergerak ke kawasan yang lebih terang","move-back-feedback-message":"Berundur","move-center-feedback-message":"Letakkan muka anda dalam bingkai","move-closer-feedback-message":"Bergerak lebih dekat","one-face-only-feedback-message":"Hanya satu muka dibenarkan"}}},function(t,e){t.exports={messages:{"camera-loading-feedback-message":"Mempersiapkan kamera...","face-scan-loading-feedback-message":"Mempersiapkan pemindaian wajah...","hold-still-feedback-message":"Harap diam","image-too-bright-feedback-message":"Menjauh dari cahaya langsung","image-too-dark-feedback-message":"Pindah ke area yang lebih terang","move-back-feedback-message":"Mundur","move-center-feedback-message":"Tempatkan wajah dalam bingkai","move-closer-feedback-message":"Lebih dekat","one-face-only-feedback-message":"Hanya boleh satu wajah"}}},function(t,e){t.exports={messages:{"camera-loading-feedback-message":"카메라 준비 중...","face-scan-loading-feedback-message":"얼굴 스캔 준비 중...","hold-still-feedback-message":"움직이지 마세요","image-too-bright-feedback-message":"직접광에서 멀리 떨어지세요","image-too-dark-feedback-message":"더 밝은 곳으로 이동하세요","move-back-feedback-message":"뒤로 물러서세요","move-center-feedback-message":"얼굴을 프레임에 맞추세요","move-closer-feedback-message":"더 가까이 오세요","one-face-only-feedback-message":"한 사람의 얼굴만 허용됩니다"}}},function(t,e){t.exports={messages:{"camera-loading-feedback-message":"...جارٍ تحضير الكاميرا","face-scan-loading-feedback-message":"...جارٍ التحضير لمسح الوجه","hold-still-feedback-message":"الرجاء البقاء ساكنًا","image-too-bright-feedback-message":"ابتعِد عن الضوء المباشر","image-too-dark-feedback-message":"انتقل إلى منطقة أكثر إضاءة","move-back-feedback-message":"ارجع للوراء","move-center-feedback-message":"ضع وجهك في الإطار","move-closer-feedback-message":"اقترب أكثر","one-face-only-feedback-message":"يُسمح بوجه واحد فقط"}}},function(t,e){t.exports={messages:{"camera-loading-feedback-message":"Sagatavo kameru...","face-scan-loading-feedback-message":"Gatavojas sejas skenēšanai...","hold-still-feedback-message":"Nekustieties","image-too-bright-feedback-message":"Pavirziet tur, kur nav tiešas saules gaismas","image-too-dark-feedback-message":"Pavirzieties uz gaišāku zonu","move-back-feedback-message":"Atvirzieties","move-center-feedback-message":"Ietilpiniet seju rāmī","move-closer-feedback-message":"Pavirzieties tuvāk","one-face-only-feedback-message":"Atļauta tikai viena seja"}}},function(t,e,n){var r=n(72);t.exports=function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&r(t,e)},t.exports.default=t.exports,t.exports.__esModule=!0},function(t,e,n){var r=n(73).default,o=n(74);t.exports=function(t,e){if(e&&("object"===r(e)||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined");return o(t)},t.exports.default=t.exports,t.exports.__esModule=!0},function(t,e){t.exports=function(t){if(Array.isArray(t))return t},t.exports.default=t.exports,t.exports.__esModule=!0},function(t,e){t.exports=function(t,e){var n=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=n){var r,o,a=[],i=!0,s=!1;try{for(n=n.call(t);!(i=(r=n.next()).done)&&(a.push(r.value),!e||a.length!==e);i=!0);}catch(u){s=!0,o=u}finally{try{i||null==n.return||n.return()}finally{if(s)throw o}}return a}},t.exports.default=t.exports,t.exports.__esModule=!0},function(t,e,n){var r=n(59);t.exports=function(t,e){if(t){if("string"==typeof t)return r(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);return"Object"===n&&t.constructor&&(n=t.constructor.name),"Map"===n||"Set"===n?Array.from(t):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?r(t,e):void 0}},t.exports.default=t.exports,t.exports.__esModule=!0},function(t,e){t.exports=function(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n<e;n++)r[n]=t[n];return r},t.exports.default=t.exports,t.exports.__esModule=!0},function(t,e){t.exports=function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")},t.exports.default=t.exports,t.exports.__esModule=!0},function(t,e,n){"use strict";var r=n(62);function o(){}function a(){}a.resetWarningCache=o,t.exports=function(){function t(t,e,n,o,a,i){if(i!==r){var s=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw s.name="Invariant Violation",s}}function e(){return t}t.isRequired=t;var n={array:t,bool:t,func:t,number:t,object:t,string:t,symbol:t,any:t,arrayOf:e,element:t,elementType:t,instanceOf:e,node:t,objectOf:e,oneOf:e,oneOfType:e,shape:e,exact:e,checkPropTypes:a,resetWarningCache:o};return n.PropTypes=n,n}},function(t,e,n){"use strict";t.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},function(t,e,n){"use strict";(function(t){var r=n(64),o=n(65),a=n(66);function i(){return u.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function s(t,e){if(i()<e)throw new RangeError("Invalid typed array length");return u.TYPED_ARRAY_SUPPORT?(t=new Uint8Array(e)).__proto__=u.prototype:(null===t&&(t=new u(e)),t.length=e),t}function u(t,e,n){if(!(u.TYPED_ARRAY_SUPPORT||this instanceof u))return new u(t,e,n);if("number"==typeof t){if("string"==typeof e)throw new Error("If encoding is specified then the first argument must be a string");return f(this,t)}return c(this,t,e,n)}function c(t,e,n,r){if("number"==typeof e)throw new TypeError('"value" argument must not be a number');return"undefined"!=typeof ArrayBuffer&&e instanceof ArrayBuffer?function(t,e,n,r){if(e.byteLength,n<0||e.byteLength<n)throw new RangeError("'offset' is out of bounds");if(e.byteLength<n+(r||0))throw new RangeError("'length' is out of bounds");e=void 0===n&&void 0===r?new Uint8Array(e):void 0===r?new Uint8Array(e,n):new Uint8Array(e,n,r);u.TYPED_ARRAY_SUPPORT?(t=e).__proto__=u.prototype:t=h(t,e);return t}(t,e,n,r):"string"==typeof e?function(t,e,n){"string"==typeof n&&""!==n||(n="utf8");if(!u.isEncoding(n))throw new TypeError('"encoding" must be a valid string encoding');var r=0|d(e,n),o=(t=s(t,r)).write(e,n);o!==r&&(t=t.slice(0,o));return t}(t,e,n):function(t,e){if(u.isBuffer(e)){var n=0|p(e.length);return 0===(t=s(t,n)).length||e.copy(t,0,0,n),t}if(e){if("undefined"!=typeof ArrayBuffer&&e.buffer instanceof ArrayBuffer||"length"in e)return"number"!=typeof e.length||(r=e.length)!=r?s(t,0):h(t,e);if("Buffer"===e.type&&a(e.data))return h(t,e.data)}var r;throw new TypeError("First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.")}(t,e)}function l(t){if("number"!=typeof t)throw new TypeError('"size" argument must be a number');if(t<0)throw new RangeError('"size" argument must not be negative')}function f(t,e){if(l(e),t=s(t,e<0?0:0|p(e)),!u.TYPED_ARRAY_SUPPORT)for(var n=0;n<e;++n)t[n]=0;return t}function h(t,e){var n=e.length<0?0:0|p(e.length);t=s(t,n);for(var r=0;r<n;r+=1)t[r]=255&e[r];return t}function p(t){if(t>=i())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+i().toString(16)+" bytes");return 0|t}function d(t,e){if(u.isBuffer(t))return t.length;if("undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(t)||t instanceof ArrayBuffer))return t.byteLength;"string"!=typeof t&&(t=""+t);var n=t.length;if(0===n)return 0;for(var r=!1;;)switch(e){case"ascii":case"latin1":case"binary":return n;case"utf8":case"utf-8":case void 0:return U(t).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*n;case"hex":return n>>>1;case"base64":return j(t).length;default:if(r)return U(t).length;e=(""+e).toLowerCase(),r=!0}}function v(t,e,n){var r=!1;if((void 0===e||e<0)&&(e=0),e>this.length)return"";if((void 0===n||n>this.length)&&(n=this.length),n<=0)return"";if((n>>>=0)<=(e>>>=0))return"";for(t||(t="utf8");;)switch(t){case"hex":return A(this,e,n);case"utf8":case"utf-8":return R(this,e,n);case"ascii":return I(this,e,n);case"latin1":case"binary":return S(this,e,n);case"base64":return k(this,e,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return O(this,e,n);default:if(r)throw new TypeError("Unknown encoding: "+t);t=(t+"").toLowerCase(),r=!0}}function m(t,e,n){var r=t[e];t[e]=t[n],t[n]=r}function g(t,e,n,r,o){if(0===t.length)return-1;if("string"==typeof n?(r=n,n=0):n>2147483647?n=2147483647:n<-2147483648&&(n=-2147483648),n=+n,isNaN(n)&&(n=o?0:t.length-1),n<0&&(n=t.length+n),n>=t.length){if(o)return-1;n=t.length-1}else if(n<0){if(!o)return-1;n=0}if("string"==typeof e&&(e=u.from(e,r)),u.isBuffer(e))return 0===e.length?-1:y(t,e,n,r,o);if("number"==typeof e)return e&=255,u.TYPED_ARRAY_SUPPORT&&"function"==typeof Uint8Array.prototype.indexOf?o?Uint8Array.prototype.indexOf.call(t,e,n):Uint8Array.prototype.lastIndexOf.call(t,e,n):y(t,[e],n,r,o);throw new TypeError("val must be string, number or Buffer")}function y(t,e,n,r,o){var a,i=1,s=t.length,u=e.length;if(void 0!==r&&("ucs2"===(r=String(r).toLowerCase())||"ucs-2"===r||"utf16le"===r||"utf-16le"===r)){if(t.length<2||e.length<2)return-1;i=2,s/=2,u/=2,n/=2}function c(t,e){return 1===i?t[e]:t.readUInt16BE(e*i)}if(o){var l=-1;for(a=n;a<s;a++)if(c(t,a)===c(e,-1===l?0:a-l)){if(-1===l&&(l=a),a-l+1===u)return l*i}else-1!==l&&(a-=a-l),l=-1}else for(n+u>s&&(n=s-u),a=n;a>=0;a--){for(var f=!0,h=0;h<u;h++)if(c(t,a+h)!==c(e,h)){f=!1;break}if(f)return a}return-1}function b(t,e,n,r){n=Number(n)||0;var o=t.length-n;r?(r=Number(r))>o&&(r=o):r=o;var a=e.length;if(a%2!=0)throw new TypeError("Invalid hex string");r>a/2&&(r=a/2);for(var i=0;i<r;++i){var s=parseInt(e.substr(2*i,2),16);if(isNaN(s))return i;t[n+i]=s}return i}function x(t,e,n,r){return z(U(e,t.length-n),t,n,r)}function w(t,e,n,r){return z(function(t){for(var e=[],n=0;n<t.length;++n)e.push(255&t.charCodeAt(n));return e}(e),t,n,r)}function E(t,e,n,r){return w(t,e,n,r)}function C(t,e,n,r){return z(j(e),t,n,r)}function _(t,e,n,r){return z(function(t,e){for(var n,r,o,a=[],i=0;i<t.length&&!((e-=2)<0);++i)n=t.charCodeAt(i),r=n>>8,o=n%256,a.push(o),a.push(r);return a}(e,t.length-n),t,n,r)}function k(t,e,n){return 0===e&&n===t.length?r.fromByteArray(t):r.fromByteArray(t.slice(e,n))}function R(t,e,n){n=Math.min(t.length,n);for(var r=[],o=e;o<n;){var a,i,s,u,c=t[o],l=null,f=c>239?4:c>223?3:c>191?2:1;if(o+f<=n)switch(f){case 1:c<128&&(l=c);break;case 2:128==(192&(a=t[o+1]))&&(u=(31&c)<<6|63&a)>127&&(l=u);break;case 3:a=t[o+1],i=t[o+2],128==(192&a)&&128==(192&i)&&(u=(15&c)<<12|(63&a)<<6|63&i)>2047&&(u<55296||u>57343)&&(l=u);break;case 4:a=t[o+1],i=t[o+2],s=t[o+3],128==(192&a)&&128==(192&i)&&128==(192&s)&&(u=(15&c)<<18|(63&a)<<12|(63&i)<<6|63&s)>65535&&u<1114112&&(l=u)}null===l?(l=65533,f=1):l>65535&&(l-=65536,r.push(l>>>10&1023|55296),l=56320|1023&l),r.push(l),o+=f}return function(t){var e=t.length;if(e<=4096)return String.fromCharCode.apply(String,t);var n="",r=0;for(;r<e;)n+=String.fromCharCode.apply(String,t.slice(r,r+=4096));return n}(r)}e.Buffer=u,e.SlowBuffer=function(t){+t!=t&&(t=0);return u.alloc(+t)},e.INSPECT_MAX_BYTES=50,u.TYPED_ARRAY_SUPPORT=void 0!==t.TYPED_ARRAY_SUPPORT?t.TYPED_ARRAY_SUPPORT:function(){try{var t=new Uint8Array(1);return t.__proto__={__proto__:Uint8Array.prototype,foo:function(){return 42}},42===t.foo()&&"function"==typeof t.subarray&&0===t.subarray(1,1).byteLength}catch(e){return!1}}(),e.kMaxLength=i(),u.poolSize=8192,u._augment=function(t){return t.__proto__=u.prototype,t},u.from=function(t,e,n){return c(null,t,e,n)},u.TYPED_ARRAY_SUPPORT&&(u.prototype.__proto__=Uint8Array.prototype,u.__proto__=Uint8Array,"undefined"!=typeof Symbol&&Symbol.species&&u[Symbol.species]===u&&Object.defineProperty(u,Symbol.species,{value:null,configurable:!0})),u.alloc=function(t,e,n){return function(t,e,n,r){return l(e),e<=0?s(t,e):void 0!==n?"string"==typeof r?s(t,e).fill(n,r):s(t,e).fill(n):s(t,e)}(null,t,e,n)},u.allocUnsafe=function(t){return f(null,t)},u.allocUnsafeSlow=function(t){return f(null,t)},u.isBuffer=function(t){return!(null==t||!t._isBuffer)},u.compare=function(t,e){if(!u.isBuffer(t)||!u.isBuffer(e))throw new TypeError("Arguments must be Buffers");if(t===e)return 0;for(var n=t.length,r=e.length,o=0,a=Math.min(n,r);o<a;++o)if(t[o]!==e[o]){n=t[o],r=e[o];break}return n<r?-1:r<n?1:0},u.isEncoding=function(t){switch(String(t).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"latin1":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}},u.concat=function(t,e){if(!a(t))throw new TypeError('"list" argument must be an Array of Buffers');if(0===t.length)return u.alloc(0);var n;if(void 0===e)for(e=0,n=0;n<t.length;++n)e+=t[n].length;var r=u.allocUnsafe(e),o=0;for(n=0;n<t.length;++n){var i=t[n];if(!u.isBuffer(i))throw new TypeError('"list" argument must be an Array of Buffers');i.copy(r,o),o+=i.length}return r},u.byteLength=d,u.prototype._isBuffer=!0,u.prototype.swap16=function(){var t=this.length;if(t%2!=0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(var e=0;e<t;e+=2)m(this,e,e+1);return this},u.prototype.swap32=function(){var t=this.length;if(t%4!=0)throw new RangeError("Buffer size must be a multiple of 32-bits");for(var e=0;e<t;e+=4)m(this,e,e+3),m(this,e+1,e+2);return this},u.prototype.swap64=function(){var t=this.length;if(t%8!=0)throw new RangeError("Buffer size must be a multiple of 64-bits");for(var e=0;e<t;e+=8)m(this,e,e+7),m(this,e+1,e+6),m(this,e+2,e+5),m(this,e+3,e+4);return this},u.prototype.toString=function(){var t=0|this.length;return 0===t?"":0===arguments.length?R(this,0,t):v.apply(this,arguments)},u.prototype.equals=function(t){if(!u.isBuffer(t))throw new TypeError("Argument must be a Buffer");return this===t||0===u.compare(this,t)},u.prototype.inspect=function(){var t="",n=e.INSPECT_MAX_BYTES;return this.length>0&&(t=this.toString("hex",0,n).match(/.{2}/g).join(" "),this.length>n&&(t+=" ... ")),"<Buffer "+t+">"},u.prototype.compare=function(t,e,n,r,o){if(!u.isBuffer(t))throw new TypeError("Argument must be a Buffer");if(void 0===e&&(e=0),void 0===n&&(n=t?t.length:0),void 0===r&&(r=0),void 0===o&&(o=this.length),e<0||n>t.length||r<0||o>this.length)throw new RangeError("out of range index");if(r>=o&&e>=n)return 0;if(r>=o)return-1;if(e>=n)return 1;if(this===t)return 0;for(var a=(o>>>=0)-(r>>>=0),i=(n>>>=0)-(e>>>=0),s=Math.min(a,i),c=this.slice(r,o),l=t.slice(e,n),f=0;f<s;++f)if(c[f]!==l[f]){a=c[f],i=l[f];break}return a<i?-1:i<a?1:0},u.prototype.includes=function(t,e,n){return-1!==this.indexOf(t,e,n)},u.prototype.indexOf=function(t,e,n){return g(this,t,e,n,!0)},u.prototype.lastIndexOf=function(t,e,n){return g(this,t,e,n,!1)},u.prototype.write=function(t,e,n,r){if(void 0===e)r="utf8",n=this.length,e=0;else if(void 0===n&&"string"==typeof e)r=e,n=this.length,e=0;else{if(!isFinite(e))throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");e|=0,isFinite(n)?(n|=0,void 0===r&&(r="utf8")):(r=n,n=void 0)}var o=this.length-e;if((void 0===n||n>o)&&(n=o),t.length>0&&(n<0||e<0)||e>this.length)throw new RangeError("Attempt to write outside buffer bounds");r||(r="utf8");for(var a=!1;;)switch(r){case"hex":return b(this,t,e,n);case"utf8":case"utf-8":return x(this,t,e,n);case"ascii":return w(this,t,e,n);case"latin1":case"binary":return E(this,t,e,n);case"base64":return C(this,t,e,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return _(this,t,e,n);default:if(a)throw new TypeError("Unknown encoding: "+r);r=(""+r).toLowerCase(),a=!0}},u.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function I(t,e,n){var r="";n=Math.min(t.length,n);for(var o=e;o<n;++o)r+=String.fromCharCode(127&t[o]);return r}function S(t,e,n){var r="";n=Math.min(t.length,n);for(var o=e;o<n;++o)r+=String.fromCharCode(t[o]);return r}function A(t,e,n){var r=t.length;(!e||e<0)&&(e=0),(!n||n<0||n>r)&&(n=r);for(var o="",a=e;a<n;++a)o+=W(t[a]);return o}function O(t,e,n){for(var r=t.slice(e,n),o="",a=0;a<r.length;a+=2)o+=String.fromCharCode(r[a]+256*r[a+1]);return o}function T(t,e,n){if(t%1!=0||t<0)throw new RangeError("offset is not uint");if(t+e>n)throw new RangeError("Trying to access beyond buffer length")}function D(t,e,n,r,o,a){if(!u.isBuffer(t))throw new TypeError('"buffer" argument must be a Buffer instance');if(e>o||e<a)throw new RangeError('"value" argument is out of bounds');if(n+r>t.length)throw new RangeError("Index out of range")}function N(t,e,n,r){e<0&&(e=65535+e+1);for(var o=0,a=Math.min(t.length-n,2);o<a;++o)t[n+o]=(e&255<<8*(r?o:1-o))>>>8*(r?o:1-o)}function F(t,e,n,r){e<0&&(e=4294967295+e+1);for(var o=0,a=Math.min(t.length-n,4);o<a;++o)t[n+o]=e>>>8*(r?o:3-o)&255}function M(t,e,n,r,o,a){if(n+r>t.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("Index out of range")}function P(t,e,n,r,a){return a||M(t,0,n,4),o.write(t,e,n,r,23,4),n+4}function B(t,e,n,r,a){return a||M(t,0,n,8),o.write(t,e,n,r,52,8),n+8}u.prototype.slice=function(t,e){var n,r=this.length;if((t=~~t)<0?(t+=r)<0&&(t=0):t>r&&(t=r),(e=void 0===e?r:~~e)<0?(e+=r)<0&&(e=0):e>r&&(e=r),e<t&&(e=t),u.TYPED_ARRAY_SUPPORT)(n=this.subarray(t,e)).__proto__=u.prototype;else{var o=e-t;n=new u(o,void 0);for(var a=0;a<o;++a)n[a]=this[a+t]}return n},u.prototype.readUIntLE=function(t,e,n){t|=0,e|=0,n||T(t,e,this.length);for(var r=this[t],o=1,a=0;++a<e&&(o*=256);)r+=this[t+a]*o;return r},u.prototype.readUIntBE=function(t,e,n){t|=0,e|=0,n||T(t,e,this.length);for(var r=this[t+--e],o=1;e>0&&(o*=256);)r+=this[t+--e]*o;return r},u.prototype.readUInt8=function(t,e){return e||T(t,1,this.length),this[t]},u.prototype.readUInt16LE=function(t,e){return e||T(t,2,this.length),this[t]|this[t+1]<<8},u.prototype.readUInt16BE=function(t,e){return e||T(t,2,this.length),this[t]<<8|this[t+1]},u.prototype.readUInt32LE=function(t,e){return e||T(t,4,this.length),(this[t]|this[t+1]<<8|this[t+2]<<16)+16777216*this[t+3]},u.prototype.readUInt32BE=function(t,e){return e||T(t,4,this.length),16777216*this[t]+(this[t+1]<<16|this[t+2]<<8|this[t+3])},u.prototype.readIntLE=function(t,e,n){t|=0,e|=0,n||T(t,e,this.length);for(var r=this[t],o=1,a=0;++a<e&&(o*=256);)r+=this[t+a]*o;return r>=(o*=128)&&(r-=Math.pow(2,8*e)),r},u.prototype.readIntBE=function(t,e,n){t|=0,e|=0,n||T(t,e,this.length);for(var r=e,o=1,a=this[t+--r];r>0&&(o*=256);)a+=this[t+--r]*o;return a>=(o*=128)&&(a-=Math.pow(2,8*e)),a},u.prototype.readInt8=function(t,e){return e||T(t,1,this.length),128&this[t]?-1*(255-this[t]+1):this[t]},u.prototype.readInt16LE=function(t,e){e||T(t,2,this.length);var n=this[t]|this[t+1]<<8;return 32768&n?4294901760|n:n},u.prototype.readInt16BE=function(t,e){e||T(t,2,this.length);var n=this[t+1]|this[t]<<8;return 32768&n?4294901760|n:n},u.prototype.readInt32LE=function(t,e){return e||T(t,4,this.length),this[t]|this[t+1]<<8|this[t+2]<<16|this[t+3]<<24},u.prototype.readInt32BE=function(t,e){return e||T(t,4,this.length),this[t]<<24|this[t+1]<<16|this[t+2]<<8|this[t+3]},u.prototype.readFloatLE=function(t,e){return e||T(t,4,this.length),o.read(this,t,!0,23,4)},u.prototype.readFloatBE=function(t,e){return e||T(t,4,this.length),o.read(this,t,!1,23,4)},u.prototype.readDoubleLE=function(t,e){return e||T(t,8,this.length),o.read(this,t,!0,52,8)},u.prototype.readDoubleBE=function(t,e){return e||T(t,8,this.length),o.read(this,t,!1,52,8)},u.prototype.writeUIntLE=function(t,e,n,r){(t=+t,e|=0,n|=0,r)||D(this,t,e,n,Math.pow(2,8*n)-1,0);var o=1,a=0;for(this[e]=255&t;++a<n&&(o*=256);)this[e+a]=t/o&255;return e+n},u.prototype.writeUIntBE=function(t,e,n,r){(t=+t,e|=0,n|=0,r)||D(this,t,e,n,Math.pow(2,8*n)-1,0);var o=n-1,a=1;for(this[e+o]=255&t;--o>=0&&(a*=256);)this[e+o]=t/a&255;return e+n},u.prototype.writeUInt8=function(t,e,n){return t=+t,e|=0,n||D(this,t,e,1,255,0),u.TYPED_ARRAY_SUPPORT||(t=Math.floor(t)),this[e]=255&t,e+1},u.prototype.writeUInt16LE=function(t,e,n){return t=+t,e|=0,n||D(this,t,e,2,65535,0),u.TYPED_ARRAY_SUPPORT?(this[e]=255&t,this[e+1]=t>>>8):N(this,t,e,!0),e+2},u.prototype.writeUInt16BE=function(t,e,n){return t=+t,e|=0,n||D(this,t,e,2,65535,0),u.TYPED_ARRAY_SUPPORT?(this[e]=t>>>8,this[e+1]=255&t):N(this,t,e,!1),e+2},u.prototype.writeUInt32LE=function(t,e,n){return t=+t,e|=0,n||D(this,t,e,4,4294967295,0),u.TYPED_ARRAY_SUPPORT?(this[e+3]=t>>>24,this[e+2]=t>>>16,this[e+1]=t>>>8,this[e]=255&t):F(this,t,e,!0),e+4},u.prototype.writeUInt32BE=function(t,e,n){return t=+t,e|=0,n||D(this,t,e,4,4294967295,0),u.TYPED_ARRAY_SUPPORT?(this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t):F(this,t,e,!1),e+4},u.prototype.writeIntLE=function(t,e,n,r){if(t=+t,e|=0,!r){var o=Math.pow(2,8*n-1);D(this,t,e,n,o-1,-o)}var a=0,i=1,s=0;for(this[e]=255&t;++a<n&&(i*=256);)t<0&&0===s&&0!==this[e+a-1]&&(s=1),this[e+a]=(t/i>>0)-s&255;return e+n},u.prototype.writeIntBE=function(t,e,n,r){if(t=+t,e|=0,!r){var o=Math.pow(2,8*n-1);D(this,t,e,n,o-1,-o)}var a=n-1,i=1,s=0;for(this[e+a]=255&t;--a>=0&&(i*=256);)t<0&&0===s&&0!==this[e+a+1]&&(s=1),this[e+a]=(t/i>>0)-s&255;return e+n},u.prototype.writeInt8=function(t,e,n){return t=+t,e|=0,n||D(this,t,e,1,127,-128),u.TYPED_ARRAY_SUPPORT||(t=Math.floor(t)),t<0&&(t=255+t+1),this[e]=255&t,e+1},u.prototype.writeInt16LE=function(t,e,n){return t=+t,e|=0,n||D(this,t,e,2,32767,-32768),u.TYPED_ARRAY_SUPPORT?(this[e]=255&t,this[e+1]=t>>>8):N(this,t,e,!0),e+2},u.prototype.writeInt16BE=function(t,e,n){return t=+t,e|=0,n||D(this,t,e,2,32767,-32768),u.TYPED_ARRAY_SUPPORT?(this[e]=t>>>8,this[e+1]=255&t):N(this,t,e,!1),e+2},u.prototype.writeInt32LE=function(t,e,n){return t=+t,e|=0,n||D(this,t,e,4,2147483647,-2147483648),u.TYPED_ARRAY_SUPPORT?(this[e]=255&t,this[e+1]=t>>>8,this[e+2]=t>>>16,this[e+3]=t>>>24):F(this,t,e,!0),e+4},u.prototype.writeInt32BE=function(t,e,n){return t=+t,e|=0,n||D(this,t,e,4,2147483647,-2147483648),t<0&&(t=4294967295+t+1),u.TYPED_ARRAY_SUPPORT?(this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t):F(this,t,e,!1),e+4},u.prototype.writeFloatLE=function(t,e,n){return P(this,t,e,!0,n)},u.prototype.writeFloatBE=function(t,e,n){return P(this,t,e,!1,n)},u.prototype.writeDoubleLE=function(t,e,n){return B(this,t,e,!0,n)},u.prototype.writeDoubleBE=function(t,e,n){return B(this,t,e,!1,n)},u.prototype.copy=function(t,e,n,r){if(n||(n=0),r||0===r||(r=this.length),e>=t.length&&(e=t.length),e||(e=0),r>0&&r<n&&(r=n),r===n)return 0;if(0===t.length||0===this.length)return 0;if(e<0)throw new RangeError("targetStart out of bounds");if(n<0||n>=this.length)throw new RangeError("sourceStart out of bounds");if(r<0)throw new RangeError("sourceEnd out of bounds");r>this.length&&(r=this.length),t.length-e<r-n&&(r=t.length-e+n);var o,a=r-n;if(this===t&&n<e&&e<r)for(o=a-1;o>=0;--o)t[o+e]=this[o+n];else if(a<1e3||!u.TYPED_ARRAY_SUPPORT)for(o=0;o<a;++o)t[o+e]=this[o+n];else Uint8Array.prototype.set.call(t,this.subarray(n,n+a),e);return a},u.prototype.fill=function(t,e,n,r){if("string"==typeof t){if("string"==typeof e?(r=e,e=0,n=this.length):"string"==typeof n&&(r=n,n=this.length),1===t.length){var o=t.charCodeAt(0);o<256&&(t=o)}if(void 0!==r&&"string"!=typeof r)throw new TypeError("encoding must be a string");if("string"==typeof r&&!u.isEncoding(r))throw new TypeError("Unknown encoding: "+r)}else"number"==typeof t&&(t&=255);if(e<0||this.length<e||this.length<n)throw new RangeError("Out of range index");if(n<=e)return this;var a;if(e>>>=0,n=void 0===n?this.length:n>>>0,t||(t=0),"number"==typeof t)for(a=e;a<n;++a)this[a]=t;else{var i=u.isBuffer(t)?t:U(new u(t,r).toString()),s=i.length;for(a=0;a<n-e;++a)this[a+e]=i[a%s]}return this};var L=/[^+\/0-9A-Za-z-_]/g;function W(t){return t<16?"0"+t.toString(16):t.toString(16)}function U(t,e){var n;e=e||1/0;for(var r=t.length,o=null,a=[],i=0;i<r;++i){if((n=t.charCodeAt(i))>55295&&n<57344){if(!o){if(n>56319){(e-=3)>-1&&a.push(239,191,189);continue}if(i+1===r){(e-=3)>-1&&a.push(239,191,189);continue}o=n;continue}if(n<56320){(e-=3)>-1&&a.push(239,191,189),o=n;continue}n=65536+(o-55296<<10|n-56320)}else o&&(e-=3)>-1&&a.push(239,191,189);if(o=null,n<128){if((e-=1)<0)break;a.push(n)}else if(n<2048){if((e-=2)<0)break;a.push(n>>6|192,63&n|128)}else if(n<65536){if((e-=3)<0)break;a.push(n>>12|224,n>>6&63|128,63&n|128)}else{if(!(n<1114112))throw new Error("Invalid code point");if((e-=4)<0)break;a.push(n>>18|240,n>>12&63|128,n>>6&63|128,63&n|128)}}return a}function j(t){return r.toByteArray(function(t){if((t=function(t){return t.trim?t.trim():t.replace(/^\s+|\s+$/g,"")}(t).replace(L,"")).length<2)return"";for(;t.length%4!=0;)t+="=";return t}(t))}function z(t,e,n,r){for(var o=0;o<r&&!(o+n>=e.length||o>=t.length);++o)e[o+n]=t[o];return o}}).call(this,n(5))},function(t,e,n){"use strict";e.byteLength=function(t){var e=c(t),n=e[0],r=e[1];return 3*(n+r)/4-r},e.toByteArray=function(t){var e,n,r=c(t),i=r[0],s=r[1],u=new a(function(t,e,n){return 3*(e+n)/4-n}(0,i,s)),l=0,f=s>0?i-4:i;for(n=0;n<f;n+=4)e=o[t.charCodeAt(n)]<<18|o[t.charCodeAt(n+1)]<<12|o[t.charCodeAt(n+2)]<<6|o[t.charCodeAt(n+3)],u[l++]=e>>16&255,u[l++]=e>>8&255,u[l++]=255&e;2===s&&(e=o[t.charCodeAt(n)]<<2|o[t.charCodeAt(n+1)]>>4,u[l++]=255&e);1===s&&(e=o[t.charCodeAt(n)]<<10|o[t.charCodeAt(n+1)]<<4|o[t.charCodeAt(n+2)]>>2,u[l++]=e>>8&255,u[l++]=255&e);return u},e.fromByteArray=function(t){for(var e,n=t.length,o=n%3,a=[],i=0,s=n-o;i<s;i+=16383)a.push(l(t,i,i+16383>s?s:i+16383));1===o?(e=t[n-1],a.push(r[e>>2]+r[e<<4&63]+"==")):2===o&&(e=(t[n-2]<<8)+t[n-1],a.push(r[e>>10]+r[e>>4&63]+r[e<<2&63]+"="));return a.join("")};for(var r=[],o=[],a="undefined"!=typeof Uint8Array?Uint8Array:Array,i="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",s=0,u=i.length;s<u;++s)r[s]=i[s],o[i.charCodeAt(s)]=s;function c(t){var e=t.length;if(e%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var n=t.indexOf("=");return-1===n&&(n=e),[n,n===e?0:4-n%4]}function l(t,e,n){for(var o,a,i=[],s=e;s<n;s+=3)o=(t[s]<<16&16711680)+(t[s+1]<<8&65280)+(255&t[s+2]),i.push(r[(a=o)>>18&63]+r[a>>12&63]+r[a>>6&63]+r[63&a]);return i.join("")}o["-".charCodeAt(0)]=62,o["_".charCodeAt(0)]=63},function(t,e){e.read=function(t,e,n,r,o){var a,i,s=8*o-r-1,u=(1<<s)-1,c=u>>1,l=-7,f=n?o-1:0,h=n?-1:1,p=t[e+f];for(f+=h,a=p&(1<<-l)-1,p>>=-l,l+=s;l>0;a=256*a+t[e+f],f+=h,l-=8);for(i=a&(1<<-l)-1,a>>=-l,l+=r;l>0;i=256*i+t[e+f],f+=h,l-=8);if(0===a)a=1-c;else{if(a===u)return i?NaN:1/0*(p?-1:1);i+=Math.pow(2,r),a-=c}return(p?-1:1)*i*Math.pow(2,a-r)},e.write=function(t,e,n,r,o,a){var i,s,u,c=8*a-o-1,l=(1<<c)-1,f=l>>1,h=23===o?Math.pow(2,-24)-Math.pow(2,-77):0,p=r?0:a-1,d=r?1:-1,v=e<0||0===e&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(s=isNaN(e)?1:0,i=l):(i=Math.floor(Math.log(e)/Math.LN2),e*(u=Math.pow(2,-i))<1&&(i--,u*=2),(e+=i+f>=1?h/u:h*Math.pow(2,1-f))*u>=2&&(i++,u/=2),i+f>=l?(s=0,i=l):i+f>=1?(s=(e*u-1)*Math.pow(2,o),i+=f):(s=e*Math.pow(2,f-1)*Math.pow(2,o),i=0));o>=8;t[n+p]=255&s,p+=d,s/=256,o-=8);for(i=i<<o|s,c+=o;c>0;t[n+p]=255&i,p+=d,i/=256,c-=8);t[n+p-d]|=128*v}},function(t,e){var n={}.toString;t.exports=Array.isArray||function(t){return"[object Array]"==n.call(t)}},function(t,e,n){(function(t){var r=void 0!==t&&t||"undefined"!=typeof self&&self||window,o=Function.prototype.apply;function a(t,e){this._id=t,this._clearFn=e}e.setTimeout=function(){return new a(o.call(setTimeout,r,arguments),clearTimeout)},e.setInterval=function(){return new a(o.call(setInterval,r,arguments),clearInterval)},e.clearTimeout=e.clearInterval=function(t){t&&t.close()},a.prototype.unref=a.prototype.ref=function(){},a.prototype.close=function(){this._clearFn.call(r,this._id)},e.enroll=function(t,e){clearTimeout(t._idleTimeoutId),t._idleTimeout=e},e.unenroll=function(t){clearTimeout(t._idleTimeoutId),t._idleTimeout=-1},e._unrefActive=e.active=function(t){clearTimeout(t._idleTimeoutId);var e=t._idleTimeout;e>=0&&(t._idleTimeoutId=setTimeout((function(){t._onTimeout&&t._onTimeout()}),e))},n(68),e.setImmediate="undefined"!=typeof self&&self.setImmediate||void 0!==t&&t.setImmediate||this&&this.setImmediate,e.clearImmediate="undefined"!=typeof self&&self.clearImmediate||void 0!==t&&t.clearImmediate||this&&this.clearImmediate}).call(this,n(5))},function(t,e,n){(function(t,e){!function(t,n){"use strict";if(!t.setImmediate){var r,o,a,i,s,u=1,c={},l=!1,f=t.document,h=Object.getPrototypeOf&&Object.getPrototypeOf(t);h=h&&h.setTimeout?h:t,"[object process]"==={}.toString.call(t.process)?r=function(t){e.nextTick((function(){d(t)}))}:!function(){if(t.postMessage&&!t.importScripts){var e=!0,n=t.onmessage;return t.onmessage=function(){e=!1},t.postMessage("","*"),t.onmessage=n,e}}()?t.MessageChannel?((a=new MessageChannel).port1.onmessage=function(t){d(t.data)},r=function(t){a.port2.postMessage(t)}):f&&"onreadystatechange"in f.createElement("script")?(o=f.documentElement,r=function(t){var e=f.createElement("script");e.onreadystatechange=function(){d(t),e.onreadystatechange=null,o.removeChild(e),e=null},o.appendChild(e)}):r=function(t){setTimeout(d,0,t)}:(i="setImmediate$"+Math.random()+"$",s=function(e){e.source===t&&"string"==typeof e.data&&0===e.data.indexOf(i)&&d(+e.data.slice(i.length))},t.addEventListener?t.addEventListener("message",s,!1):t.attachEvent("onmessage",s),r=function(e){t.postMessage(i+e,"*")}),h.setImmediate=function(t){"function"!=typeof t&&(t=new Function(""+t));for(var e=new Array(arguments.length-1),n=0;n<e.length;n++)e[n]=arguments[n+1];var o={callback:t,args:e};return c[u]=o,r(u),u++},h.clearImmediate=p}function p(t){delete c[t]}function d(t){if(l)setTimeout(d,0,t);else{var e=c[t];if(e){l=!0;try{!function(t){var e=t.callback,n=t.args;switch(n.length){case 0:e();break;case 1:e(n[0]);break;case 2:e(n[0],n[1]);break;case 3:e(n[0],n[1],n[2]);break;default:e.apply(void 0,n)}}(e)}finally{p(t),l=!1}}}}}("undefined"==typeof self?void 0===t?this:t:self)}).call(this,n(5),n(10))},function(t,e){},function(t,e){},function(t,e){},function(t,e){function n(e,r){return t.exports=n=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t},t.exports.default=t.exports,t.exports.__esModule=!0,n(e,r)}t.exports=n,t.exports.default=t.exports,t.exports.__esModule=!0},function(t,e){function n(e){return"function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?(t.exports=n=function(t){return typeof t},t.exports.default=t.exports,t.exports.__esModule=!0):(t.exports=n=function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},t.exports.default=t.exports,t.exports.__esModule=!0),n(e)}t.exports=n,t.exports.default=t.exports,t.exports.__esModule=!0},function(t,e){t.exports=function(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t},t.exports.default=t.exports,t.exports.__esModule=!0},function(t,e){t.exports=function(t,e){if(null==t)return{};var n,r,o={},a=Object.keys(t);for(r=0;r<a.length;r++)n=a[r],e.indexOf(n)>=0||(o[n]=t[n]);return o},t.exports.default=t.exports,t.exports.__esModule=!0},function(t,e,n){"use strict";n.r(e),n.d(e,"ERROR_CODE",(function(){return o})),n.d(e,"LANGUAGE_CODE",(function(){return d})),n.d(e,"CAPTURE_METHOD",(function(){return v})),n.d(e,"IMAGE_TYPE",(function(){return m})),n.d(e,"QUALITY_TYPE",(function(){return g})),n.d(e,"default",(function(){return hi}));var r={};n.r(r),n.d(r,"drawContour",(function(){return It})),n.d(r,"drawDetections",(function(){return xe})),n.d(r,"drawFaceExpressions",(function(){return an})),n.d(r,"DrawBoxOptions",(function(){return ye})),n.d(r,"DrawBox",(function(){return be})),n.d(r,"DrawFaceLandmarksOptions",(function(){return cn})),n.d(r,"DrawFaceLandmarks",(function(){return ln})),n.d(r,"drawFaceLandmarks",(function(){return fn})),n.d(r,"AnchorPosition",(function(){return he})),n.d(r,"DrawTextFieldOptions",(function(){return me})),n.d(r,"DrawTextField",(function(){return ge}));const o={NO_CAMERA_PERMISSION:"NO_CAMERA_PERMISSION",NO_CAMERA:"NO_CAMERA",UNSUPPORTED_BROWSER:"UNSUPPORTED_BROWSER",OVERCONSTRAINED:"OVERCONSTRAINED",GENERIC_CAMERA_ERROR:"GENERIC_CAMERA_ERROR",FACE_DETECTION_INIT_ERROR:"FACE_DETECTION_INIT_ERROR",INTERNAL_ERROR:"INTERNAL_ERROR"},a="MOVE_CLOSER",i="MOVE_BACK",s="MOVE_CENTER",u="ONE_FACE_ONLY",c="HOLD_STILL",l="CAMERA_LOADING",f="FACE_SCAN_LOADING",h="IMAGE_TOO_DARK",p="IMAGE_TOO_BRIGHT",d={AR:"ar",CS:"cs",DA:"da",DE:"de",EN:"en",ES:"es",ES_419:"es-419",ET:"et",FI:"fi",FR:"fr",HI:"hi",ID:"id",IT:"it",JA:"ja",KO:"ko",LT:"lt",LV:"lv",MS:"ms",NB:"nb",NL:"nl",PL:"pl",PT:"pt",RO:"ro",RU:"ru",SV:"sv",TH:"th",TR:"tr",UK:"uk",VI:"vi"},v={MANUAL:"manual",AUTO:"auto"},m={ORIGINAL:"original",CROPPED:"cropped"},g={HIGH:"high",MEDIUM:"medium",LOW:"low"},y={[g.HIGH]:1,[g.MEDIUM]:.96,[g.LOW]:.9};var b=n(2),x=n.n(b);class w extends b.Component{componentDidCatch(){const{onError:t}=this.props;t(o.INTERNAL_ERROR)}render(){const{children:t}=this.props;return t}}var E=w,C=n(4),_=n.n(C),k=n(20),R=n.n(k),I=x.a.createContext(null);function S(){return x.a.useContext(I)}var A=function(t){var e=t.i18n,n=t.defaultComponent,r=t.forceRenderOnLocaleChange,o=void 0===r||r,a=t.children,i=function(){return{i18n:e,defaultComponent:n}},s=function(){return o&&e.locale||"default"},u=x.a.useState(i()),c=_()(u,2),l=c[0],f=c[1],h=x.a.useState(s()),p=_()(h,2),d=p[0],v=p[1];return x.a.useEffect((function(){var t=e.on("change",(function(){f(i()),v(s())}));return"default"===d&&v(s()),function(){return t()}}),[]),o&&"default"===d?null:x.a.createElement(I.Provider,{value:l,key:d},a)};function O(t,e){var n;if("undefined"==typeof Symbol||null==t[Symbol.iterator]){if(Array.isArray(t)||(n=function(t,e){if(t){if("string"==typeof t)return T(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);return"Object"===n&&t.constructor&&(n=t.constructor.name),"Map"===n||"Set"===n?Array.from(t):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?T(t,e):void 0}}(t))||e&&t&&"number"==typeof t.length){n&&(t=n);var r=0,o=function(){};return{s:o,n:function(){return r>=t.length?{done:!0}:{done:!1,value:t[r++]}},e:function(t){throw t},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,i=!0,s=!1;return{s:function(){n=t[Symbol.iterator]()},n:function(){var t=n.next();return i=t.done,t},e:function(t){s=!0,a=t},f:function(){try{i||null==n.return||n.return()}finally{if(s)throw a}}}}function T(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n<e;n++)r[n]=t[n];return r}var D=/<(\d+)>(.*?)<\/\1>|<(\d+)\/>/,N=/(?:\r\n|\r|\n)/g,F={area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0,menuitem:!0};function M(t){if(!t.length)return[];var e=t.slice(0,4),n=_()(e,4),r=n[0],o=n[1],a=n[2],i=n[3];return[[parseInt(r||a),o||"",i]].concat(M(t.slice(4,t.length)))}var P=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";return function(){return"".concat(e,"_").concat(t++)}};function B(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function L(t){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?arguments[e]:{};e%2?B(Object(n),!0).forEach((function(e){R()(t,e,n[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):B(Object(n)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}))}return t}function W(t){var e=S(),n=e.i18n,r=e.defaultComponent,o=t.render,a=t.component,i=t.id,s=t.message,u=t.formats,c=L({},t.values),l=L({},t.components);c&&Object.keys(c).forEach((function(t){var e=c[t];if(x.a.isValidElement(e)){var n=Object.keys(l).length;l[n]=e,c[t]="<".concat(n,"/>")}}));var f=n&&"function"==typeof n._?n._(i,c,{message:s,formats:u}):i,h=f?function t(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=P(0,"$lingui$"),o=e.replace(N,"").split(D);if(1===o.length)return e;var a=[],i=o.shift();i&&a.push(i);var s,u=O(M(o));try{for(u.s();!(s=u.n()).done;){var c=_()(s.value,3),l=c[0],f=c[1],h=c[2],p=n[l];(!p||F[p.type]&&f)&&(p=x.a.createElement(x.a.Fragment)),a.push(x.a.cloneElement(p,{key:r()},f?t(f,n):p.props.children)),h&&a.push(h)}}catch(d){u.e(d)}finally{u.f()}return a}(f,l):null;if(null===o||null===a)return h;var p=r||x.a.Fragment;if(o&&a);else if(o&&"function"!=typeof o);else if(a&&"function"!=typeof a)return x.a.createElement(p,null,h);if("function"==typeof o)return o({id:i,translation:h,message:s});var d=a||p;return x.a.createElement(d,null,h)}W.defaultProps={values:{},components:{}};var U,j=n(3),z=n.n(j),V=n(8),G=n.n(V),H=n(7),q=n.n(H);function K(){return(K=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(t[r]=n[r])}return t}).apply(this,arguments)}var X,$=function(t){return b.createElement("svg",K({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1280 720"},t),U||(U=b.createElement("path",{fill:"#FFF",fillOpacity:.7,fillRule:"evenodd",d:"M1280 0v720H0V0h1280zM658.215 95.79a286.506 286.506 0 00-31.573-.605c-3.545.197-8.59.56-14.622 1.286-6.207.747-16.005 2.002-28.095 5.248a155.94 155.94 0 00-16.938 5.584c-18.993 7.515-37.088 18.327-50.068 33.828-19.713 23.543-29.338 53.4-33.045 83.01-3.922 31.334 1.288 62.583 2.466 93.896.036.933-.066 1.933-1.189 2.205-.489.12-1.01.044-1.49-.105-2.367-.735-3.576-2.94-5.427-4.353-4.138-3.16-10.825-3.19-14.466.709-5.106 5.47-4.03 13.544-2.5 20.126a1882.27 1882.27 0 015.703 25.242l.698 3.203c3.236 14.859 5.256 30.448 14.16 43.384 1.275 1.854 2.705 3.69 4.675 4.858 4.438 2.63 8.543 3.032 11.32 7.741 2.541 4.307 3.22 9.748 4.45 14.478 3.743 14.39 10.884 27.878 17.09 41.39 7.208 15.702 15.101 31.167 24.77 45.629 13.507 20.203 30.719 38.55 52.234 50.83 13.213 7.54 29.09 13.962 44.455 13.237l.01-.002.011.002c15.13.714 30.754-5.501 43.844-12.89l.611-.347c21.515-12.28 38.727-30.627 52.235-50.83 9.668-14.462 17.561-29.927 24.77-45.629 6.205-13.512 13.346-27 17.087-41.39 1.23-4.73 1.911-10.171 4.451-14.478 2.779-4.709 6.883-5.112 11.32-7.74 1.972-1.17 3.401-3.005 4.676-4.86 8.904-12.935 10.925-28.524 14.16-43.383l.698-3.203a1877.285 1877.285 0 015.703-25.242c1.528-6.582 2.606-14.657-2.5-20.126-3.64-3.9-10.327-3.869-14.466-.71-1.851 1.414-3.06 3.619-5.426 4.354-.48.15-1.002.224-1.491.105-1.123-.272-1.225-1.272-1.189-2.205 1.179-31.313 6.388-62.562 2.466-93.896-3.707-29.61-13.332-59.467-33.045-83.01-12.98-15.501-31.075-26.313-50.067-33.828-11.67-4.617-24.272-7.12-27.795-7.833-11.799-2.391-21.042-3.11-28.671-3.68zM642.24 586.523l-.708.05-.699.036-.698-.037c-.236-.015-.472-.03-.708-.049h2.813z"})))};function Y(){return(Y=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(t[r]=n[r])}return t}).apply(this,arguments)}var J,Q,Z=function(t){return b.createElement("svg",Y({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 715 715"},t),X||(X=b.createElement("path",{fill:"#D9DEE5",fillOpacity:.7,fillRule:"evenodd",d:"M715 0v715H0V0h715zM368.33 210.97a168.754 168.754 0 00-18.77-.363c-2.107.119-5.107.337-8.692.772-3.69.448-9.515 1.201-16.702 3.149a92.101 92.101 0 00-10.07 3.35c-11.29 4.51-22.047 10.996-29.763 20.297-11.719 14.126-17.44 32.04-19.644 49.806-2.331 18.8.765 37.55 1.466 56.337.021.56-.04 1.16-.707 1.324-.29.071-.6.026-.886-.063-1.407-.441-2.125-1.764-3.226-2.612-2.46-1.896-6.435-1.914-8.6.425-3.035 3.282-2.395 8.127-1.486 12.076 1.16 5.043 2.298 10.08 3.39 15.145.14.64.277 1.281.416 1.922 1.923 8.915 3.124 18.269 8.417 26.03.758 1.113 1.608 2.214 2.78 2.915 2.638 1.578 5.078 1.82 6.728 4.645 1.511 2.584 1.915 5.849 2.647 8.687 2.224 8.634 6.47 16.726 10.158 24.834 4.286 9.42 8.978 18.7 14.725 27.377 8.03 12.122 18.262 23.13 31.052 30.498 7.773 4.477 17.096 8.296 26.14 7.954l.293-.014.294.014c8.856.335 17.98-3.32 25.653-7.675l.487-.28c12.79-7.367 23.022-18.375 31.052-30.497 5.747-8.677 10.44-17.956 14.725-27.377 3.689-8.108 7.934-16.2 10.158-24.834.732-2.838 1.136-6.103 2.646-8.687 1.652-2.826 4.092-3.067 6.73-4.645 1.171-.701 2.021-1.802 2.78-2.915 5.292-7.761 6.493-17.115 8.417-26.03l.415-1.922c1.092-5.065 2.23-10.102 3.39-15.145.909-3.95 1.55-8.794-1.486-12.076-2.164-2.34-6.14-2.32-8.6-.425-1.1.848-1.819 2.17-3.226 2.612-.285.09-.595.134-.886.063-.667-.163-.728-.764-.706-1.324.7-18.787 3.797-37.536 1.465-56.337-2.203-17.766-7.925-35.68-19.644-49.806-7.716-9.3-18.473-15.788-29.763-20.297-6.937-2.77-14.43-4.271-16.524-4.7-7.014-1.434-12.509-1.866-17.044-2.208z"})))};function tt(){return(tt=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(t[r]=n[r])}return t}).apply(this,arguments)}var et,nt,rt=function(t){return b.createElement("svg",tt({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 386 524"},t),J||(J=b.createElement("defs",null,b.createElement("linearGradient",{id:"face-outline_svg__a",x1:"50.72%",x2:"49.208%",y1:"26.23%",y2:"117.124%"},b.createElement("stop",{offset:"0%",stopColor:"#B6BFCC"}),b.createElement("stop",{offset:"100%",stopColor:"#FFF"})))),Q||(Q=b.createElement("path",{fill:"none",stroke:"url(#face-outline_svg__a)",strokeWidth:5.006,d:"M638.585 600c-.686 0-1.592-.013-2.81-.052a69.953 69.953 0 01-4.575-.296 72.809 72.809 0 01-4.533-.597 79.015 79.015 0 01-4.472-.87 85.112 85.112 0 01-4.362-1.102 91.261 91.261 0 01-4.273-1.312 101.02 101.02 0 01-4.155-1.484 114.88 114.88 0 01-4.056-1.64 125.655 125.655 0 01-7.787-3.652 147.069 147.069 0 01-7.304-3.993c-20.9-12.179-39.54-30.642-55.409-54.88-8.67-13.241-16.471-27.9-25.299-47.536-1.196-2.66-2.43-5.319-3.664-7.985-5.222-11.272-10.624-22.928-13.847-35.587-.338-1.325-.641-2.7-.943-4.093-.625-2.866-1.27-5.83-2.225-7.484-.379-.25-1.374-.71-2.115-1.054-1.373-.635-3.08-1.427-4.939-2.55-3.91-2.368-6.378-5.567-8.277-8.385-8.738-12.96-11.7-27.823-14.313-40.938-.457-2.292-.912-4.578-1.397-6.848l-.685-3.217a1892.951 1892.951 0 00-5.588-25.25c-1.25-5.49-4.567-20.075 5.26-30.824 3.985-4.36 9.824-6.86 16.017-6.86.744 0 1.487.036 2.222.105-.273-3.957-.572-7.901-.865-11.79-1.665-22.04-3.386-44.83-.563-67.858 4.469-36.439 16.293-66.575 35.149-89.569 12.744-15.54 30.924-28.155 54.037-37.494a163.732 163.732 0 0117.99-6.058c13.257-3.633 24.137-4.97 29.366-5.612 5.05-.62 10.155-1.079 15.178-1.363a292.987 292.987 0 0110.846-.205c7.276 0 14.62.278 21.829.828 7.234.551 17.14 1.306 29.746 3.915l.227.047c4.19.865 16.946 3.5 29.19 8.448 23.114 9.339 41.293 21.953 54.037 37.494 18.855 22.995 30.681 53.13 35.149 89.569 2.824 23.028 1.102 45.818-.563 67.859-.293 3.888-.591 7.832-.864 11.79a23.46 23.46 0 012.222-.105c6.193 0 12.032 2.5 16.018 6.86 9.825 10.747 6.507 25.332 5.259 30.822a1923.38 1923.38 0 00-5.588 25.246l-.685 3.22c-.484 2.27-.94 4.555-1.397 6.844-2.613 13.116-5.575 27.983-14.313 40.944-1.899 2.817-4.367 6.017-8.279 8.384-1.858 1.124-3.565 1.916-4.937 2.551-.738.344-1.727.8-2.11 1.05-.976 1.733-1.614 4.658-2.23 7.49a121.69 121.69 0 01-.943 4.09c-3.223 12.657-8.622 24.311-13.844 35.58-1.236 2.67-2.47 5.33-3.667 7.993-8.826 19.633-16.63 34.293-25.3 47.536-15.87 24.238-34.509 42.701-55.4 54.874a149.984 149.984 0 01-7.28 3.982 129.842 129.842 0 01-7.794 3.659 108.88 108.88 0 01-8.229 3.133 93.884 93.884 0 01-4.282 1.313 79.774 79.774 0 01-8.824 1.97 72.51 72.51 0 01-4.558.602 66.17 66.17 0 01-6.885.323l-1.73-.005c-.38.014-.884.027-1.584.027z",transform:"translate(-447 -79)"})))};function ot(){return(ot=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(t[r]=n[r])}return t}).apply(this,arguments)}var at=function(t){return b.createElement("svg",ot({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 386 524"},t),et||(et=b.createElement("defs",null,b.createElement("linearGradient",{id:"face-outline-success_svg__a",x1:"50.72%",x2:"49.208%",y1:"26.23%",y2:"117.124%"},b.createElement("stop",{offset:"0%",stopColor:"#2FC58D"}),b.createElement("stop",{offset:"100%",stopColor:"#FFF"})))),nt||(nt=b.createElement("path",{fill:"none",stroke:"url(#face-outline-success_svg__a)",strokeWidth:5.006,d:"M638.585 600c-.686 0-1.592-.013-2.81-.052a69.953 69.953 0 01-4.575-.296 72.809 72.809 0 01-4.533-.597 79.015 79.015 0 01-4.472-.87 85.112 85.112 0 01-4.362-1.102 91.261 91.261 0 01-4.273-1.312 101.02 101.02 0 01-4.155-1.484 114.88 114.88 0 01-4.056-1.64 125.655 125.655 0 01-7.787-3.652 147.069 147.069 0 01-7.304-3.993c-20.9-12.179-39.54-30.642-55.409-54.88-8.67-13.241-16.471-27.9-25.299-47.536-1.196-2.66-2.43-5.319-3.664-7.985-5.222-11.272-10.624-22.928-13.847-35.587-.338-1.325-.641-2.7-.943-4.093-.625-2.866-1.27-5.83-2.225-7.484-.379-.25-1.374-.71-2.115-1.054-1.373-.635-3.08-1.427-4.939-2.55-3.91-2.368-6.378-5.567-8.277-8.385-8.738-12.96-11.7-27.823-14.313-40.938-.457-2.292-.912-4.578-1.397-6.848l-.685-3.217a1892.951 1892.951 0 00-5.588-25.25c-1.25-5.49-4.567-20.075 5.26-30.824 3.985-4.36 9.824-6.86 16.017-6.86.744 0 1.487.036 2.222.105-.273-3.957-.572-7.901-.865-11.79-1.665-22.04-3.386-44.83-.563-67.858 4.469-36.439 16.293-66.575 35.149-89.569 12.744-15.54 30.924-28.155 54.037-37.494a163.732 163.732 0 0117.99-6.058c13.257-3.633 24.137-4.97 29.366-5.612 5.05-.62 10.155-1.079 15.178-1.363a292.987 292.987 0 0110.846-.205c7.276 0 14.62.278 21.829.828 7.234.551 17.14 1.306 29.746 3.915l.227.047c4.19.865 16.946 3.5 29.19 8.448 23.114 9.339 41.293 21.953 54.037 37.494 18.855 22.995 30.681 53.13 35.149 89.569 2.824 23.028 1.102 45.818-.563 67.859-.293 3.888-.591 7.832-.864 11.79a23.46 23.46 0 012.222-.105c6.193 0 12.032 2.5 16.018 6.86 9.825 10.747 6.507 25.332 5.259 30.822a1923.38 1923.38 0 00-5.588 25.246l-.685 3.22c-.484 2.27-.94 4.555-1.397 6.844-2.613 13.116-5.575 27.983-14.313 40.944-1.899 2.817-4.367 6.017-8.279 8.384-1.858 1.124-3.565 1.916-4.937 2.551-.738.344-1.727.8-2.11 1.05-.976 1.733-1.614 4.658-2.23 7.49a121.69 121.69 0 01-.943 4.09c-3.223 12.657-8.622 24.311-13.844 35.58-1.236 2.67-2.47 5.33-3.667 7.993-8.826 19.633-16.63 34.293-25.3 47.536-15.87 24.238-34.509 42.701-55.4 54.874a149.984 149.984 0 01-7.28 3.982 129.842 129.842 0 01-7.794 3.659 108.88 108.88 0 01-8.229 3.133 93.884 93.884 0 01-4.282 1.313 79.774 79.774 0 01-8.824 1.97 72.51 72.51 0 01-4.558.602 66.17 66.17 0 01-6.885.323l-1.73-.005c-.38.014-.884.027-1.584.027z",transform:"translate(-447 -79)"})))};const it=t=>{let{isPortraitCamera:e,isSuccess:n}=t;const r=e?Z:$,o=n?at:rt,a=q.a[e?"portraitCamera":"landscapeCamera"];return x.a.createElement("div",{className:q.a.container},x.a.createElement(r,{className:q.a.overlay}),x.a.createElement(o,{className:G()(q.a.outline,a)}))};it.defaultProps={isSuccess:!1,isPortraitCamera:!1},it.propTypes={isSuccess:z.a.bool,isPortraitCamera:z.a.bool};var st=it,ut=n(11),ct=n.n(ut);const lt=t=>{let{message:e,isPortraitCamera:n}=t;return x.a.createElement("div",{className:G()(ct.a.container,{[ct.a.landscape]:!n})},e)};lt.defaultProps={message:"",isPortraitCamera:!1},lt.propTypes={message:z.a.element,isPortraitCamera:z.a.bool};var ft,ht,pt=lt,dt=n(12),vt=n.n(dt);function mt(){return(mt=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(t[r]=n[r])}return t}).apply(this,arguments)}var gt=function(t){return b.createElement("svg",mt({xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink",width:"1em",height:"1em",viewBox:"0 0 28 28"},t),ft||(ft=b.createElement("defs",null,b.createElement("path",{id:"ico-chevron-right_svg__a",d:"M12.28 22.625l-1.56-1.25L16.62 14l-5.9-7.375 1.56-1.25L19.18 14z"}))),ht||(ht=b.createElement("use",{fill:"#F0F",xlinkHref:"#ico-chevron-right_svg__a",fillRule:"evenodd"})))};function yt(){return(yt=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(t[r]=n[r])}return t}).apply(this,arguments)}const bt=t=>{let{children:e,...n}=t;return x.a.createElement("button",yt({className:vt.a.button,type:"button"},n),e,x.a.createElement(gt,{className:vt.a.icon}))};bt.propTypes={onClick:z.a.func.isRequired,disabled:z.a.bool,children:z.a.node};var xt=bt,wt=n(21),Et=n.n(wt);const Ct=t=>x.a.createElement("div",{className:Et.a.container},x.a.createElement(xt,t,"Take picture")),_t=t=>{let{CustomButton:e,...n}=t;const r=e||Ct;return x.a.createElement(r,n)};_t.propTypes={CustomButton:z.a.func,onClick:z.a.func.isRequired,disabled:z.a.bool};var kt=_t,Rt=n(0);function It(t,e,n){if(void 0===n&&(n=!1),t.beginPath(),e.slice(1).forEach((function(n,r){var o=n.x,a=n.y,i=e[r];t.moveTo(i.x,i.y),t.lineTo(o,a)})),n){var r=e[e.length-1],o=e[0];if(!r||!o)return;t.moveTo(r.x,r.y),t.lineTo(o.x,o.y)}t.stroke()}var St=n(1),At=function(){function t(t,e){if(!Lt(t)||!Lt(e))throw new Error("Dimensions.constructor - expected width and height to be valid numbers, instead have "+JSON.stringify({width:t,height:e}));this._width=t,this._height=e}return Object.defineProperty(t.prototype,"width",{get:function(){return this._width},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"height",{get:function(){return this._height},enumerable:!0,configurable:!0}),t.prototype.reverse=function(){return new t(1/this.width,1/this.height)},t}();function Ot(t,e){return t instanceof Rt.a&&t.shape.length===e}function Tt(t){return Ot(t,3)}function Dt(t){return Ot(t,4)}function Nt(t){return t%2==0}function Ft(t,e){void 0===e&&(e=2);var n=Math.pow(10,e);return Math.floor(t*n)/n}function Mt(t){return t&&t.width&&t.height}function Pt(t){return t.reduce((function(t,e){return t.add(e)}),new Ut(0,0)).div(new Ut(t.length,t.length))}function Bt(t,e,n){return Array(t).fill(0).map((function(t,r){return e+r*n}))}function Lt(t){return!!t&&t!==1/0&&t!==-1/0&&!isNaN(t)||0===t}function Wt(t){return Lt(t)&&0<=t&&t<=1}var Ut=function(){function t(t,e){this._x=t,this._y=e}return Object.defineProperty(t.prototype,"x",{get:function(){return this._x},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"y",{get:function(){return this._y},enumerable:!0,configurable:!0}),t.prototype.add=function(e){return new t(this.x+e.x,this.y+e.y)},t.prototype.sub=function(e){return new t(this.x-e.x,this.y-e.y)},t.prototype.mul=function(e){return new t(this.x*e.x,this.y*e.y)},t.prototype.div=function(e){return new t(this.x/e.x,this.y/e.y)},t.prototype.abs=function(){return new t(Math.abs(this.x),Math.abs(this.y))},t.prototype.magnitude=function(){return Math.sqrt(Math.pow(this.x,2)+Math.pow(this.y,2))},t.prototype.floor=function(){return new t(Math.floor(this.x),Math.floor(this.y))},t}(),jt=function(){function t(e,n){void 0===n&&(n=!0);var r=e||{},o=[r.left,r.top,r.right,r.bottom].every(Lt),a=[r.x,r.y,r.width,r.height].every(Lt);if(!a&&!o)throw new Error("Box.constructor - expected box to be IBoundingBox | IRect, instead have "+JSON.stringify(r));var i=a?[r.x,r.y,r.width,r.height]:[r.left,r.top,r.right-r.left,r.bottom-r.top],s=i[0],u=i[1],c=i[2],l=i[3];t.assertIsValidBox({x:s,y:u,width:c,height:l},"Box.constructor",n),this._x=s,this._y=u,this._width=c,this._height=l}return t.isRect=function(t){return!!t&&[t.x,t.y,t.width,t.height].every(Lt)},t.assertIsValidBox=function(e,n,r){if(void 0===r&&(r=!1),!t.isRect(e))throw new Error(n+" - invalid box: "+JSON.stringify(e)+", expected object with properties x, y, width, height");if(!r&&(e.width<0||e.height<0))throw new Error(n+" - width ("+e.width+") and height ("+e.height+") must be positive numbers")},Object.defineProperty(t.prototype,"x",{get:function(){return this._x},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"y",{get:function(){return this._y},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"width",{get:function(){return this._width},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"height",{get:function(){return this._height},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"left",{get:function(){return this.x},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"top",{get:function(){return this.y},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"right",{get:function(){return this.x+this.width},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"bottom",{get:function(){return this.y+this.height},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"area",{get:function(){return this.width*this.height},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"topLeft",{get:function(){return new Ut(this.left,this.top)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"topRight",{get:function(){return new Ut(this.right,this.top)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"bottomLeft",{get:function(){return new Ut(this.left,this.bottom)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"bottomRight",{get:function(){return new Ut(this.right,this.bottom)},enumerable:!0,configurable:!0}),t.prototype.round=function(){var e=[this.x,this.y,this.width,this.height].map((function(t){return Math.round(t)}));return new t({x:e[0],y:e[1],width:e[2],height:e[3]})},t.prototype.floor=function(){var e=[this.x,this.y,this.width,this.height].map((function(t){return Math.floor(t)}));return new t({x:e[0],y:e[1],width:e[2],height:e[3]})},t.prototype.toSquare=function(){var e=this.x,n=this.y,r=this.width,o=this.height,a=Math.abs(r-o);return r<o&&(e-=a/2,r+=a),o<r&&(n-=a/2,o+=a),new t({x:e,y:n,width:r,height:o})},t.prototype.rescale=function(e){var n=Mt(e)?e.width:e,r=Mt(e)?e.height:e;return new t({x:this.x*n,y:this.y*r,width:this.width*n,height:this.height*r})},t.prototype.pad=function(e,n){var r=[this.x-e/2,this.y-n/2,this.width+e,this.height+n];return new t({x:r[0],y:r[1],width:r[2],height:r[3]})},t.prototype.clipAtImageBorders=function(e,n){var r=this.x,o=this.y,a=this.right,i=this.bottom,s=Math.max(r,0),u=Math.max(o,0),c=a-s,l=i-u;return new t({x:s,y:u,width:Math.min(c,e-s),height:Math.min(l,n-u)}).floor()},t.prototype.shift=function(e,n){var r=this.width,o=this.height;return new t({x:this.x+e,y:this.y+n,width:r,height:o})},t.prototype.padAtBorders=function(t,e){var n=this.width+1,r=this.height+1,o=n,a=r,i=this.left,s=this.top,u=this.right,c=this.bottom;return u>e&&(o=-u+e+n,u=e),c>t&&(a=-c+t+r,c=t),i<1&&(a=2-i,i=1),s<1&&(a=2-s,s=1),{dy:1,edy:a,dx:1,edx:o,y:s,ey:c,x:i,ex:u,w:n,h:r}},t.prototype.calibrate=function(e){return new t({left:this.left+e.left*this.width,top:this.top+e.top*this.height,right:this.right+e.right*this.width,bottom:this.bottom+e.bottom*this.height}).toSquare().round()},t}(),zt=function(t){function e(e,n,r,o,a){return void 0===a&&(a=!1),t.call(this,{left:e,top:n,right:r,bottom:o},a)||this}return Object(St.c)(e,t),e}(jt),Vt=function(){function t(t,e,n,r,o){this._imageDims=new At(o.width,o.height),this._score=t,this._classScore=e,this._className=n,this._box=new jt(r).rescale(this._imageDims)}return Object.defineProperty(t.prototype,"score",{get:function(){return this._score},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"classScore",{get:function(){return this._classScore},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"className",{get:function(){return this._className},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"box",{get:function(){return this._box},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"imageDims",{get:function(){return this._imageDims},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"imageWidth",{get:function(){return this.imageDims.width},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"imageHeight",{get:function(){return this.imageDims.height},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"relativeBox",{get:function(){return new jt(this._box).rescale(this.imageDims.reverse())},enumerable:!0,configurable:!0}),t.prototype.forSize=function(e,n){return new t(this.score,this.classScore,this.className,this.relativeBox,{width:e,height:n})},t}(),Gt=function(t){function e(e,n,r){return t.call(this,e,e,"",n,r)||this}return Object(St.c)(e,t),e.prototype.forSize=function(n,r){var o=t.prototype.forSize.call(this,n,r);return new e(o.score,o.relativeBox,o.imageDims)},e}(Vt);function Ht(t,e,n){void 0===n&&(n=!0);var r=Math.max(0,Math.min(t.right,e.right)-Math.max(t.left,e.left))*Math.max(0,Math.min(t.bottom,e.bottom)-Math.max(t.top,e.top));return n?r/(t.area+e.area-r):r/Math.min(t.area,e.area)}function qt(t,e,n,r){void 0===r&&(r=!0);for(var o=e.map((function(t,e){return{score:t,boxIndex:e}})).sort((function(t,e){return t.score-e.score})).map((function(t){return t.boxIndex})),a=[],i=function(){var e=o.pop();a.push(e);for(var i=o,s=[],u=0;u<i.length;u++){var c=i[u],l=t[e],f=t[c];s.push(Ht(l,f,r))}o=o.filter((function(t,e){return s[e]<=n}))};o.length>0;)i();return a}function Kt(t,e){return Rt.L((function(){var n=e[0],r=e[1],o=e[2],a=Rt.n(Object(St.e)(t.shape.slice(0,3),[1]),n),i=Rt.n(Object(St.e)(t.shape.slice(0,3),[1]),r),s=Rt.n(Object(St.e)(t.shape.slice(0,3),[1]),o),u=Rt.h([a,i,s],3);return Rt.F(t,u)}))}function Xt(t){return 1/(1+Math.exp(-t))}var $t=function(t){function e(e,n,r,o,a){return void 0===a&&(a=!1),t.call(this,{x:e,y:n,width:r,height:o},a)||this}return Object(St.c)(e,t),e}(jt),Yt=function(){function t(t,e,n){void 0===n&&(n=new Ut(0,0));var r=e.width,o=e.height;this._imgDims=new At(r,o),this._shift=n,this._positions=t.map((function(t){return t.mul(new Ut(r,o)).add(n)}))}return Object.defineProperty(t.prototype,"shift",{get:function(){return new Ut(this._shift.x,this._shift.y)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"imageWidth",{get:function(){return this._imgDims.width},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"imageHeight",{get:function(){return this._imgDims.height},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"positions",{get:function(){return this._positions},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"relativePositions",{get:function(){var t=this;return this._positions.map((function(e){return e.sub(t._shift).div(new Ut(t.imageWidth,t.imageHeight))}))},enumerable:!0,configurable:!0}),t.prototype.forSize=function(t,e){return new this.constructor(this.relativePositions,{width:t,height:e})},t.prototype.shiftBy=function(t,e){return new this.constructor(this.relativePositions,this._imgDims,new Ut(t,e))},t.prototype.shiftByPoint=function(t){return this.shiftBy(t.x,t.y)},t.prototype.align=function(t,e){if(void 0===e&&(e={}),t){var n=t instanceof Gt?t.box.floor():new jt(t);return this.shiftBy(n.x,n.y).align(null,e)}var r=Object.assign({},{useDlibAlignment:!1,minBoxPadding:.2},e),o=r.useDlibAlignment,a=r.minBoxPadding;return o?this.alignDlib():this.alignMinBbox(a)},t.prototype.alignDlib=function(){var t=this.getRefPointsForAlignment(),e=t[0],n=t[1],r=t[2],o=function(t){return r.sub(t).magnitude()},a=(o(e)+o(n))/2,i=Math.floor(a/.45),s=Pt(t),u=Math.floor(Math.max(0,s.x-.5*i)),c=Math.floor(Math.max(0,s.y-.43*i));return new $t(u,c,Math.min(i,this.imageWidth+u),Math.min(i,this.imageHeight+c))},t.prototype.alignMinBbox=function(t){var e,n,r,o,a,i,s,u=(e=this.positions,n=e.map((function(t){return t.x})),r=e.map((function(t){return t.y})),o=n.reduce((function(t,e){return e<t?e:t}),1/0),a=r.reduce((function(t,e){return e<t?e:t}),1/0),i=n.reduce((function(t,e){return t<e?e:t}),0),s=r.reduce((function(t,e){return t<e?e:t}),0),new zt(o,a,i,s));return u.pad(u.width*t,u.height*t)},t.prototype.getRefPointsForAlignment=function(){throw new Error("getRefPointsForAlignment not implemented by base class")},t}(),Jt=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return Object(St.c)(e,t),e.prototype.getRefPointsForAlignment=function(){var t=this.positions;return[t[0],t[1],Pt([t[3],t[4]])]},e}(Yt),Qt=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return Object(St.c)(e,t),e.prototype.getJawOutline=function(){return this.positions.slice(0,17)},e.prototype.getLeftEyeBrow=function(){return this.positions.slice(17,22)},e.prototype.getRightEyeBrow=function(){return this.positions.slice(22,27)},e.prototype.getNose=function(){return this.positions.slice(27,36)},e.prototype.getLeftEye=function(){return this.positions.slice(36,42)},e.prototype.getRightEye=function(){return this.positions.slice(42,48)},e.prototype.getMouth=function(){return this.positions.slice(48,68)},e.prototype.getRefPointsForAlignment=function(){return[this.getLeftEye(),this.getRightEye(),this.getMouth()].map(Pt)},e}(Yt),Zt=function(){function t(t,e){this._label=t,this._distance=e}return Object.defineProperty(t.prototype,"label",{get:function(){return this._label},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"distance",{get:function(){return this._distance},enumerable:!0,configurable:!0}),t.prototype.toString=function(t){return void 0===t&&(t=!0),this.label+(t?" ("+Ft(this.distance)+")":"")},t}(),te=function(t){function e(e,n){var r=t.call(this,e)||this;return r._label=n,r}return Object(St.c)(e,t),e.assertIsValidLabeledBox=function(t,e){if(jt.assertIsValidBox(t,e),!Lt(t.label))throw new Error(e+" - expected property label ("+t.label+") to be a number")},Object.defineProperty(e.prototype,"label",{get:function(){return this._label},enumerable:!0,configurable:!0}),e}(jt),ee=function(){function t(t,e){if("string"!=typeof t)throw new Error("LabeledFaceDescriptors - constructor expected label to be a string");if(!Array.isArray(e)||e.some((function(t){return!(t instanceof Float32Array)})))throw new Error("LabeledFaceDescriptors - constructor expected descriptors to be an array of Float32Array");this._label=t,this._descriptors=e}return Object.defineProperty(t.prototype,"label",{get:function(){return this._label},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"descriptors",{get:function(){return this._descriptors},enumerable:!0,configurable:!0}),t.prototype.toJSON=function(){return{label:this.label,descriptors:this.descriptors.map((function(t){return Array.from(t)}))}},t.fromJSON=function(e){var n=e.descriptors.map((function(t){return new Float32Array(t)}));return new t(e.label,n)},t}();!function(t){function e(e,n,r,o){var a=t.call(this,e,n)||this;return a._score=r,a._classScore=o,a}Object(St.c)(e,t),e.assertIsValidPredictedBox=function(t,e){if(te.assertIsValidLabeledBox(t,e),!Wt(t.score)||!Wt(t.classScore))throw new Error(e+" - expected properties score ("+t.score+") and ("+t.classScore+") to be a number between [0, 1]")},Object.defineProperty(e.prototype,"score",{get:function(){return this._score},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"classScore",{get:function(){return this._classScore},enumerable:!0,configurable:!0})}(te);function ne(t){return t.detection instanceof Gt}function re(t,e){var n={detection:e};return Object.assign({},t,n)}function oe(){var t=window.fetch||function(){throw new Error("fetch - missing fetch implementation for browser environment")};return{Canvas:HTMLCanvasElement,CanvasRenderingContext2D:CanvasRenderingContext2D,Image:HTMLImageElement,ImageData:ImageData,Video:HTMLVideoElement,createCanvasElement:function(){return document.createElement("canvas")},createImageElement:function(){return document.createElement("img")},fetch:t,readFile:function(){throw new Error("readFile - filesystem not available for browser environment")}}}var ae=n(9),ie=n(13);function se(){return"object"==typeof window&&"undefined"!=typeof document&&"undefined"!=typeof HTMLImageElement&&"undefined"!=typeof HTMLCanvasElement&&"undefined"!=typeof HTMLVideoElement&&"undefined"!=typeof ImageData&&"undefined"!=typeof CanvasRenderingContext2D}var ue,ce=n(14);function le(t){ue=t}function fe(){se()&&le(oe()),Object(ce.a)()&&le(Object(ie.a)())}var he,pe={getEnv:function(){if(!ue)throw new Error("getEnv - environment is not defined, check isNodejs() and isBrowser()");return ue},setEnv:le,initialize:fe,createBrowserEnv:oe,createFileSystem:ae.a,createNodejsEnv:ie.a,monkeyPatch:function(t){if(ue||fe(),!ue)throw new Error("monkeyPatch - environment is not defined, check isNodejs() and isBrowser()");var e=t.Canvas,n=void 0===e?ue.Canvas:e,r=t.Image,o=void 0===r?ue.Image:r;ue.Canvas=n,ue.Image=o,ue.createCanvasElement=t.createCanvasElement||function(){return new n},ue.createImageElement=t.createImageElement||function(){return new o},ue.ImageData=t.ImageData||ue.ImageData,ue.Video=t.Video||ue.Video,ue.fetch=t.fetch||ue.fetch,ue.readFile=t.readFile||ue.readFile},isBrowser:se,isNodejs:ce.a};function de(t){return pe.isNodejs()||"string"!=typeof t?t:document.getElementById(t)}function ve(t){var e=pe.getEnv(),n=e.Canvas;if(t instanceof e.CanvasRenderingContext2D)return t;var r=de(t);if(!(r instanceof n))throw new Error("resolveContext2d - expected canvas to be of instance of Canvas");var o=r.getContext("2d");if(!o)throw new Error("resolveContext2d - canvas 2d context is null");return o}fe(),function(t){t.TOP_LEFT="TOP_LEFT",t.TOP_RIGHT="TOP_RIGHT",t.BOTTOM_LEFT="BOTTOM_LEFT",t.BOTTOM_RIGHT="BOTTOM_RIGHT"}(he||(he={}));var me=function(t){void 0===t&&(t={});var e=t.anchorPosition,n=t.backgroundColor,r=t.fontColor,o=t.fontSize,a=t.fontStyle,i=t.padding;this.anchorPosition=e||he.TOP_LEFT,this.backgroundColor=n||"rgba(0, 0, 0, 0.5)",this.fontColor=r||"rgba(255, 255, 255, 1)",this.fontSize=o||14,this.fontStyle=a||"Georgia",this.padding=i||4},ge=function(){function t(e,n,r){void 0===r&&(r={}),this.text="string"==typeof e?[e]:e instanceof t?e.text:e,this.anchor=n,this.options=new me(r)}return t.prototype.measureWidth=function(t){var e=this.options.padding;return this.text.map((function(e){return t.measureText(e).width})).reduce((function(t,e){return t<e?e:t}),0)+2*e},t.prototype.measureHeight=function(){var t=this.options,e=t.fontSize,n=t.padding;return this.text.length*e+2*n},t.prototype.getUpperLeft=function(t,e){var n=this.options.anchorPosition,r=n===he.BOTTOM_RIGHT||n===he.TOP_RIGHT,o=n===he.BOTTOM_LEFT||n===he.BOTTOM_RIGHT,a=this.measureWidth(t),i=this.measureHeight(),s=r?this.anchor.x-a:this.anchor.x,u=o?this.anchor.y-i:this.anchor.y;if(e){var c=e.width,l=e.height;return{x:Math.max(Math.min(s,c-a),0),y:Math.max(Math.min(u,l-i),0)}}return{x:s,y:u}},t.prototype.draw=function(t){var e=de(t),n=ve(e),r=this.options,o=r.backgroundColor,a=r.fontColor,i=r.fontSize,s=r.fontStyle,u=r.padding;n.font=i+"px "+s;var c=this.measureWidth(n),l=this.measureHeight();n.fillStyle=o;var f=this.getUpperLeft(n,e);n.fillRect(f.x,f.y,c,l),n.fillStyle=a,this.text.forEach((function(t,e){var r=u+f.x,o=u+f.y+(e+1)*i;n.fillText(t,r,o)}))},t}(),ye=function(t){void 0===t&&(t={});var e=t.boxColor,n=t.lineWidth,r=t.label,o=t.drawLabelOptions;this.boxColor=e||"rgba(0, 0, 255, 1)",this.lineWidth=n||2,this.label=r;var a={anchorPosition:he.BOTTOM_LEFT,backgroundColor:this.boxColor};this.drawLabelOptions=new me(Object.assign({},a,o))},be=function(){function t(t,e){void 0===e&&(e={}),this.box=new jt(t),this.options=new ye(e)}return t.prototype.draw=function(t){var e=ve(t),n=this.options,r=n.boxColor,o=n.lineWidth,a=this.box,i=a.x,s=a.y,u=a.width,c=a.height;e.strokeStyle=r,e.lineWidth=o,e.strokeRect(i,s,u,c);var l=this.options.label;l&&new ge([l],{x:i-o/2,y:s},this.options.drawLabelOptions).draw(t)},t}();function xe(t,e){(Array.isArray(e)?e:[e]).forEach((function(e){var n=e instanceof Gt?e.score:ne(e)?e.detection.score:void 0,r=e instanceof Gt?e.box:ne(e)?e.detection.box:new jt(e),o=n?""+Ft(n):void 0;new be(r,{label:o}).draw(t)}))}function we(t){var e=pe.getEnv(),n=e.Image,r=e.Video;return t instanceof n&&t.complete||t instanceof r&&t.readyState>=3}function Ee(t){var e=pe.getEnv(),n=e.Image,r=e.Video;return t instanceof n?new At(t.naturalWidth,t.naturalHeight):t instanceof r?new At(t.videoWidth,t.videoHeight):new At(t.width,t.height)}function Ce(t){var e=t.width,n=t.height,r=(0,pe.getEnv().createCanvasElement)();return r.width=e,r.height=n,r}function _e(t,e){var n=pe.getEnv().ImageData;if(!(t instanceof n||we(t)))throw new Error("createCanvasFromMedia - media has not finished loading yet");var r=e||Ee(t),o=r.width,a=r.height,i=Ce({width:o,height:a});return t instanceof n?ve(i).putImageData(t,0,0):ve(i).drawImage(t,0,0,o,a),i}function ke(t,e){return Object(St.b)(this,void 0,void 0,(function(){var n,r,o,a,i,s;return Object(St.d)(this,(function(u){switch(u.label){case 0:return n=e||pe.getEnv().createCanvasElement(),r=t.shape.slice(Dt(t)?1:0),o=r[0],a=r[1],i=r[2],s=Rt.L((function(){return t.as3D(o,a,i).toInt()})),[4,Rt.f.toPixels(s,n)];case 1:return u.sent(),s.dispose(),[2,n]}}))}))}function Re(t){var e=pe.getEnv(),n=e.Image,r=e.Canvas,o=e.Video;return t instanceof n||t instanceof r||t instanceof o}var Ie=function(){function t(t,e){var n=this;if(void 0===e&&(e=!1),this._imageTensors=[],this._canvases=[],this._treatAsBatchInput=!1,this._inputDimensions=[],!Array.isArray(t))throw new Error("NetInput.constructor - expected inputs to be an Array of TResolvedNetInput or to be instanceof tf.Tensor4D, instead have "+t);this._treatAsBatchInput=e,this._batchSize=t.length,t.forEach((function(t,e){if(Tt(t))return n._imageTensors[e]=t,void(n._inputDimensions[e]=t.shape);if(Dt(t)){var r=t.shape[0];if(1!==r)throw new Error("NetInput - tf.Tensor4D with batchSize "+r+" passed, but not supported in input array");return n._imageTensors[e]=t,void(n._inputDimensions[e]=t.shape.slice(1))}var o=t instanceof pe.getEnv().Canvas?t:_e(t);n._canvases[e]=o,n._inputDimensions[e]=[o.height,o.width,3]}))}return Object.defineProperty(t.prototype,"imageTensors",{get:function(){return this._imageTensors},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"canvases",{get:function(){return this._canvases},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"isBatchInput",{get:function(){return this.batchSize>1||this._treatAsBatchInput},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"batchSize",{get:function(){return this._batchSize},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"inputDimensions",{get:function(){return this._inputDimensions},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"inputSize",{get:function(){return this._inputSize},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"reshapedInputDimensions",{get:function(){var t=this;return Bt(this.batchSize,0,1).map((function(e,n){return t.getReshapedInputDimensions(n)}))},enumerable:!0,configurable:!0}),t.prototype.getInput=function(t){return this.canvases[t]||this.imageTensors[t]},t.prototype.getInputDimensions=function(t){return this._inputDimensions[t]},t.prototype.getInputHeight=function(t){return this._inputDimensions[t][0]},t.prototype.getInputWidth=function(t){return this._inputDimensions[t][1]},t.prototype.getReshapedInputDimensions=function(t){if("number"!=typeof this.inputSize)throw new Error("getReshapedInputDimensions - inputSize not set, toBatchTensor has not been called yet");return function(t,e){var n=t.width,r=t.height,o=e/Math.max(r,n);return new At(Math.round(n*o),Math.round(r*o))}({width:this.getInputWidth(t),height:this.getInputHeight(t)},this.inputSize)},t.prototype.toBatchTensor=function(t,e){var n=this;return void 0===e&&(e=!0),this._inputSize=t,Rt.L((function(){var r=Bt(n.batchSize,0,1).map((function(r){var o=n.getInput(r);if(o instanceof Rt.a){var a=Dt(o)?o:o.expandDims();return(a=function(t,e){return void 0===e&&(e=!1),Rt.L((function(){var n=t.shape.slice(1),r=n[0],o=n[1];if(r===o)return t;var a=Math.abs(r-o),i=Math.round(a*(e?.5:1)),s=r>o?2:1,u=function(e){var n=t.shape.slice();return n[s]=e,Rt.n(n,0)},c=u(i),l=a-c.shape[s],f=[e&&l?u(l):null,t,c].filter((function(t){return!!t})).map((function(t){return t.toFloat()}));return Rt.h(f,s)}))}(a,e)).shape[1]===t&&a.shape[2]===t||(a=Rt.o.resizeBilinear(a,[t,t])),a.as3D(t,t,3)}if(o instanceof pe.getEnv().Canvas)return Rt.f.fromPixels(function(t,e,n){void 0===n&&(n=!1);var r=pe.getEnv(),o=r.Image,a=r.Canvas;if(!(t instanceof o||t instanceof a))throw new Error("imageToSquare - expected arg0 to be HTMLImageElement | HTMLCanvasElement");var i=Ee(t),s=e/Math.max(i.height,i.width),u=s*i.width,c=s*i.height,l=Ce({width:e,height:e}),f=t instanceof a?t:_e(t),h=Math.abs(u-c)/2,p=n&&u<c?h:0,d=n&&c<u?h:0;return ve(l).drawImage(f,p,d,u,c),l}(o,t,e));throw new Error("toBatchTensor - at batchIdx "+r+", expected input to be instanceof tf.Tensor or instanceof HTMLCanvasElement, instead have "+o)}));return Rt.E(r.map((function(t){return t.toFloat()}))).as4D(n.batchSize,t,t,3)}))},t}();function Se(t){return Object(St.b)(this,void 0,void 0,(function(){var e,n,r;return Object(St.d)(this,(function(o){switch(o.label){case 0:if(t instanceof Ie)return[2,t];if(!(e=Array.isArray(t)?t:[t]).length)throw new Error("toNetInput - empty array passed as input");return n=function(e){return Array.isArray(t)?" at input index "+e+":":""},(r=e.map(de)).forEach((function(t,r){if(!Re(t)&&!Tt(t)&&!Dt(t)){if("string"==typeof e[r])throw new Error("toNetInput -"+n(r)+" string passed, but could not resolve HTMLElement for element id "+e[r]);throw new Error("toNetInput -"+n(r)+" expected media to be of type HTMLImageElement | HTMLVideoElement | HTMLCanvasElement | tf.Tensor3D, or to be an element id")}if(Dt(t)){var o=t.shape[0];if(1!==o)throw new Error("toNetInput -"+n(r)+" tf.Tensor4D with batchSize "+o+" passed, but not supported in input array")}})),[4,Promise.all(r.map((function(t){return Re(t)&&(e=t,new Promise((function(t,n){if(e instanceof pe.getEnv().Canvas||we(e))return t();function r(e){e.currentTarget&&(e.currentTarget.removeEventListener("load",r),e.currentTarget.removeEventListener("error",o),t(e))}function o(t){t.currentTarget&&(t.currentTarget.removeEventListener("load",r),t.currentTarget.removeEventListener("error",o),n(t))}e.addEventListener("load",r),e.addEventListener("error",o)})));var e})))];case 1:return o.sent(),[2,new Ie(r,Array.isArray(t))]}}))}))}function Ae(t,e){return Object(St.b)(this,void 0,void 0,(function(){var n,r,o,a,i,s;return Object(St.d)(this,(function(u){switch(u.label){case 0:return n=pe.getEnv().Canvas,r=t,t instanceof n?[3,5]:[4,Se(t)];case 1:if((o=u.sent()).batchSize>1)throw new Error("extractFaces - batchSize > 1 not supported");return(a=o.getInput(0))instanceof n?(i=a,[3,4]):[3,2];case 2:return[4,ke(a)];case 3:i=u.sent(),u.label=4;case 4:r=i,u.label=5;case 5:return s=ve(r),[2,e.map((function(t){return t instanceof Gt?t.forSize(r.width,r.height).box.floor():t})).map((function(t){return t.clipAtImageBorders(r.width,r.height)})).map((function(t){var e=t.x,n=t.y,r=t.width,o=t.height,a=Ce({width:r,height:o});return ve(a).putImageData(s.getImageData(e,n,r,o),0,0),a}))]}}))}))}function Oe(t,e){return Object(St.b)(this,void 0,void 0,(function(){return Object(St.d)(this,(function(n){if(!Tt(t)&&!Dt(t))throw new Error("extractFaceTensors - expected image tensor to be 3D or 4D");if(Dt(t)&&t.shape[0]>1)throw new Error("extractFaceTensors - batchSize > 1 not supported");return[2,Rt.L((function(){var n=t.shape.slice(Dt(t)?1:0),r=n[0],o=n[1],a=n[2];return e.map((function(t){return t instanceof Gt?t.forSize(o,r).box:t})).map((function(t){return t.clipAtImageBorders(o,r)})).map((function(e){var n=e.x,i=e.y,s=e.width,u=e.height;return Rt.C(t.as3D(r,o,a),[i,n,0],[u,s,a])}))}))]}))}))}function Te(t,e){return Object(St.b)(this,void 0,void 0,(function(){var n;return Object(St.d)(this,(function(r){switch(r.label){case 0:return[4,(0,pe.getEnv().fetch)(t,e)];case 1:if(!((n=r.sent()).status<400))throw new Error("failed to fetch: ("+n.status+") "+n.statusText+", from url: "+n.url);return[2,n]}}))}))}function De(t){return Object(St.b)(this,void 0,void 0,(function(){return Object(St.d)(this,(function(e){switch(e.label){case 0:return[4,Te(t)];case 1:return[2,e.sent().json()]}}))}))}function Ne(t,e){var n=e+"-weights_manifest.json";if(!t)return{modelBaseUri:"",manifestUri:n};if("/"===t)return{modelBaseUri:"/",manifestUri:"/"+n};var r=t.startsWith("http://")?"http://":t.startsWith("https://")?"https://":"",o=(t=t.replace(r,"")).split("/").filter((function(t){return t})),a=t.endsWith(".json")?o[o.length-1]:n,i=r+(t.endsWith(".json")?o.slice(0,o.length-1):o).join("/");return{modelBaseUri:i=t.startsWith("/")?"/"+i:i,manifestUri:"/"===i?"/"+a:i+"/"+a}}function Fe(t,e){return Object(St.b)(this,void 0,void 0,(function(){var n,r,o,a;return Object(St.d)(this,(function(i){switch(i.label){case 0:return n=Ne(t,e),r=n.manifestUri,o=n.modelBaseUri,[4,De(r)];case 1:return a=i.sent(),[2,Rt.p.loadWeights(a,o)]}}))}))}var Me=function(){function t(t){this._name=t,this._params=void 0,this._paramMappings=[]}return Object.defineProperty(t.prototype,"params",{get:function(){return this._params},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"paramMappings",{get:function(){return this._paramMappings},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"isLoaded",{get:function(){return!!this.params},enumerable:!0,configurable:!0}),t.prototype.getParamFromPath=function(t){var e=this.traversePropertyPath(t);return e.obj[e.objProp]},t.prototype.reassignParamFromPath=function(t,e){var n=this.traversePropertyPath(t),r=n.obj,o=n.objProp;r[o].dispose(),r[o]=e},t.prototype.getParamList=function(){var t=this;return this._paramMappings.map((function(e){var n=e.paramPath;return{path:n,tensor:t.getParamFromPath(n)}}))},t.prototype.getTrainableParams=function(){return this.getParamList().filter((function(t){return t.tensor instanceof Rt.b}))},t.prototype.getFrozenParams=function(){return this.getParamList().filter((function(t){return!(t.tensor instanceof Rt.b)}))},t.prototype.variable=function(){var t=this;this.getFrozenParams().forEach((function(e){var n=e.path,r=e.tensor;t.reassignParamFromPath(n,r.variable())}))},t.prototype.freeze=function(){var t=this;this.getTrainableParams().forEach((function(e){var n=e.path,r=e.tensor,o=Rt.G(r.dataSync());r.dispose(),t.reassignParamFromPath(n,o)}))},t.prototype.dispose=function(t){void 0===t&&(t=!0),this.getParamList().forEach((function(e){if(t&&e.tensor.isDisposed)throw new Error("param tensor has already been disposed for path "+e.path);e.tensor.dispose()})),this._params=void 0},t.prototype.serializeParams=function(){return new Float32Array(this.getParamList().map((function(t){var e=t.tensor;return Array.from(e.dataSync())})).reduce((function(t,e){return t.concat(e)})))},t.prototype.load=function(t){return Object(St.b)(this,void 0,void 0,(function(){return Object(St.d)(this,(function(e){switch(e.label){case 0:return t instanceof Float32Array?(this.extractWeights(t),[2]):[4,this.loadFromUri(t)];case 1:return e.sent(),[2]}}))}))},t.prototype.loadFromUri=function(t){return Object(St.b)(this,void 0,void 0,(function(){var e;return Object(St.d)(this,(function(n){switch(n.label){case 0:if(t&&"string"!=typeof t)throw new Error(this._name+".loadFromUri - expected model uri");return[4,Fe(t,this.getDefaultModelName())];case 1:return e=n.sent(),this.loadFromWeightMap(e),[2]}}))}))},t.prototype.loadFromDisk=function(t){return Object(St.b)(this,void 0,void 0,(function(){var e,n,r,o,a,i,s,u,c,l;return Object(St.d)(this,(function(f){switch(f.label){case 0:if(t&&"string"!=typeof t)throw new Error(this._name+".loadFromDisk - expected model file path");return e=pe.getEnv().readFile,n=Ne(t,this.getDefaultModelName()),r=n.manifestUri,o=n.modelBaseUri,a=function(t){return Promise.all(t.map((function(t){return e(t).then((function(t){return t.buffer}))})))},i=Rt.p.weightsLoaderFactory(a),c=(u=JSON).parse,[4,e(r)];case 1:return s=c.apply(u,[f.sent().toString()]),[4,i(s,o)];case 2:return l=f.sent(),this.loadFromWeightMap(l),[2]}}))}))},t.prototype.loadFromWeightMap=function(t){var e=this.extractParamsFromWeigthMap(t),n=e.paramMappings,r=e.params;this._paramMappings=n,this._params=r},t.prototype.extractWeights=function(t){var e=this.extractParams(t),n=e.paramMappings,r=e.params;this._paramMappings=n,this._params=r},t.prototype.traversePropertyPath=function(t){if(!this.params)throw new Error("traversePropertyPath - model has no loaded params");var e=t.split("/").reduce((function(e,n){if(!e.nextObj.hasOwnProperty(n))throw new Error("traversePropertyPath - object does not have property "+n+", for path "+t);return{obj:e.nextObj,objProp:n,nextObj:e.nextObj[n]}}),{nextObj:this.params}),n=e.obj,r=e.objProp;if(!(n&&r&&n[r]instanceof Rt.a))throw new Error("traversePropertyPath - parameter is not a tensor, for path "+t);return{obj:n,objProp:r}},t}();function Pe(t,e,n){return Rt.L((function(){var r=Rt.z(t,e.depthwise_filter,e.pointwise_filter,n,"same");return r=Rt.c(r,e.bias)}))}function Be(t,e,n){return void 0===n&&(n=!1),Rt.L((function(){var r=Rt.w(n?Rt.c(Rt.i(t,e.conv0.filters,[2,2],"same"),e.conv0.bias):Pe(t,e.conv0,[2,2])),o=Pe(r,e.conv1,[1,1]),a=Pe(Rt.w(Rt.c(r,o)),e.conv2,[1,1]);return Rt.w(Rt.c(r,Rt.c(o,a)))}))}function Le(t,e,n,r){return void 0===n&&(n=!1),void 0===r&&(r=!0),Rt.L((function(){var o=Rt.w(n?Rt.c(Rt.i(t,e.conv0.filters,r?[2,2]:[1,1],"same"),e.conv0.bias):Pe(t,e.conv0,r?[2,2]:[1,1])),a=Pe(o,e.conv1,[1,1]),i=Pe(Rt.w(Rt.c(o,a)),e.conv2,[1,1]),s=Pe(Rt.w(Rt.c(o,Rt.c(a,i))),e.conv3,[1,1]);return Rt.w(Rt.c(o,Rt.c(a,Rt.c(i,s))))}))}function We(t,e,n,r){return void 0===n&&(n="same"),void 0===r&&(r=!1),Rt.L((function(){var o=Rt.c(Rt.i(t,e.filters,[1,1],n),e.bias);return r?Rt.w(o):o}))}function Ue(t,e){Object.keys(t).forEach((function(n){e.some((function(t){return t.originalPath===n}))||t[n].dispose()}))}function je(t,e){return function(n,r,o,a){var i=Rt.K(t(n*r*o*o),[o,o,n,r]),s=Rt.H(t(r));return e.push({paramPath:a+"/filters"},{paramPath:a+"/bias"}),{filters:i,bias:s}}}function ze(t,e){return function(n,r,o){var a=Rt.I(t(n*r),[n,r]),i=Rt.H(t(r));return e.push({paramPath:o+"/weights"},{paramPath:o+"/bias"}),{weights:a,bias:i}}}var Ve=function(t,e,n){this.depthwise_filter=t,this.pointwise_filter=e,this.bias=n};function Ge(t,e){return function(n,r,o){var a=Rt.K(t(9*n),[3,3,n,1]),i=Rt.K(t(n*r),[1,1,n,r]),s=Rt.H(t(r));return e.push({paramPath:o+"/depthwise_filter"},{paramPath:o+"/pointwise_filter"},{paramPath:o+"/bias"}),new Ve(a,i,s)}}function He(t){return function(e){var n=t(e+"/depthwise_filter",4),r=t(e+"/pointwise_filter",4),o=t(e+"/bias",1);return new Ve(n,r,o)}}function qe(t,e){return function(n,r,o){var a=t[n];if(!Ot(a,r))throw new Error("expected weightMap["+n+"] to be a Tensor"+r+"D, instead have "+a);return e.push({originalPath:n,paramPath:o||n}),a}}function Ke(t){var e=t;return{extractWeights:function(t){var n=e.slice(0,t);return e=e.slice(t),n},getRemainingWeights:function(){return e}}}function Xe(t,e){var n=je(t,e),r=Ge(t,e);function o(t,e,o,a){return void 0===a&&(a=!1),{conv0:a?n(t,e,3,o+"/conv0"):r(t,e,o+"/conv0"),conv1:r(e,e,o+"/conv1"),conv2:r(e,e,o+"/conv2")}}return{extractDenseBlock3Params:o,extractDenseBlock4Params:function(t,e,n,a){void 0===a&&(a=!1);var i=o(t,e,n,a);return{conv0:i.conv0,conv1:i.conv1,conv2:i.conv2,conv3:r(e,e,n+"/conv3")}}}}function $e(t){return function(e){return{filters:t(e+"/filters",4),bias:t(e+"/bias",1)}}}function Ye(t,e){var n=qe(t,e),r=$e(n),o=He(n);return{extractDenseBlock3Params:function(t,e){return void 0===e&&(e=!1),{conv0:e?r(t+"/conv0"):o(t+"/conv0"),conv1:o(t+"/conv1"),conv2:o(t+"/conv2")}},extractDenseBlock4Params:function(t,e){return void 0===e&&(e=!1),{conv0:e?r(t+"/conv0"):o(t+"/conv0"),conv1:o(t+"/conv1"),conv2:o(t+"/conv2"),conv3:o(t+"/conv3")}}}}var Je=function(t){function e(){return t.call(this,"FaceFeatureExtractor")||this}return Object(St.c)(e,t),e.prototype.forwardInput=function(t){var e=this.params;if(!e)throw new Error("FaceFeatureExtractor - load model before inference");return Rt.L((function(){var n=Le(Kt(t.toBatchTensor(112,!0),[122.782,117.001,104.298]).div(Rt.y(255)),e.dense0,!0);return n=Le(n,e.dense1),n=Le(n,e.dense2),n=Le(n,e.dense3),n=Rt.d(n,[7,7],[2,2],"valid")}))},e.prototype.forward=function(t){return Object(St.b)(this,void 0,void 0,(function(){var e;return Object(St.d)(this,(function(n){switch(n.label){case 0:return e=this.forwardInput,[4,Se(t)];case 1:return[2,e.apply(this,[n.sent()])]}}))}))},e.prototype.getDefaultModelName=function(){return"face_feature_extractor_model"},e.prototype.extractParamsFromWeigthMap=function(t){return function(t){var e=[],n=Ye(t,e).extractDenseBlock4Params,r={dense0:n("dense0",!0),dense1:n("dense1"),dense2:n("dense2"),dense3:n("dense3")};return Ue(t,e),{params:r,paramMappings:e}}(t)},e.prototype.extractParams=function(t){return function(t){var e=[],n=Ke(t),r=n.extractWeights,o=n.getRemainingWeights,a=Xe(r,e).extractDenseBlock4Params,i=a(3,32,"dense0",!0),s=a(32,64,"dense1"),u=a(64,128,"dense2"),c=a(128,256,"dense3");if(0!==o().length)throw new Error("weights remaing after extract: "+o().length);return{paramMappings:e,params:{dense0:i,dense1:s,dense2:u,dense3:c}}}(t)},e}(Me);function Qe(t,e){return Rt.L((function(){return Rt.c(Rt.q(t,e.weights),e.bias)}))}function Ze(t){var e={},n={};return Object.keys(t).forEach((function(r){(r.startsWith("fc")?n:e)[r]=t[r]})),{featureExtractorMap:e,classifierMap:n}}var tn=function(t){function e(e,n){var r=t.call(this,e)||this;return r._faceFeatureExtractor=n,r}return Object(St.c)(e,t),Object.defineProperty(e.prototype,"faceFeatureExtractor",{get:function(){return this._faceFeatureExtractor},enumerable:!0,configurable:!0}),e.prototype.runNet=function(t){var e=this,n=this.params;if(!n)throw new Error(this._name+" - load model before inference");return Rt.L((function(){var r=t instanceof Ie?e.faceFeatureExtractor.forwardInput(t):t;return Qe(r.as2D(r.shape[0],-1),n.fc)}))},e.prototype.dispose=function(e){void 0===e&&(e=!0),this.faceFeatureExtractor.dispose(e),t.prototype.dispose.call(this,e)},e.prototype.loadClassifierParams=function(t){var e=this.extractClassifierParams(t),n=e.params,r=e.paramMappings;this._params=n,this._paramMappings=r},e.prototype.extractClassifierParams=function(t){return function(t,e,n){var r=[],o=Ke(t),a=o.extractWeights,i=o.getRemainingWeights,s=ze(a,r)(e,n,"fc");if(0!==i().length)throw new Error("weights remaing after extract: "+i().length);return{paramMappings:r,params:{fc:s}}}(t,this.getClassifierChannelsIn(),this.getClassifierChannelsOut())},e.prototype.extractParamsFromWeigthMap=function(t){var e=Ze(t),n=e.featureExtractorMap,r=e.classifierMap;return this.faceFeatureExtractor.loadFromWeightMap(n),function(t){var e,n=[],r=qe(t,n),o={fc:(e="fc",{weights:r(e+"/weights",2),bias:r(e+"/bias",1)})};return Ue(t,n),{params:o,paramMappings:n}}(r)},e.prototype.extractParams=function(t){var e=this.getClassifierChannelsIn(),n=this.getClassifierChannelsOut(),r=n*e+n,o=t.slice(0,t.length-r),a=t.slice(t.length-r);return this.faceFeatureExtractor.extractWeights(o),this.extractClassifierParams(a)},e}(Me),en=["neutral","happy","sad","angry","fearful","disgusted","surprised"],nn=function(){function t(t){var e=this;if(7!==t.length)throw new Error("FaceExpressions.constructor - expected probabilities.length to be 7, have: "+t.length);en.forEach((function(n,r){e[n]=t[r]}))}return t.prototype.asSortedArray=function(){var t=this;return en.map((function(e){return{expression:e,probability:t[e]}})).sort((function(t,e){return e.probability-t.probability}))},t}(),rn=function(t){function e(e){return void 0===e&&(e=new Je),t.call(this,"FaceExpressionNet",e)||this}return Object(St.c)(e,t),e.prototype.forwardInput=function(t){var e=this;return Rt.L((function(){return Rt.D(e.runNet(t))}))},e.prototype.forward=function(t){return Object(St.b)(this,void 0,void 0,(function(){var e;return Object(St.d)(this,(function(n){switch(n.label){case 0:return e=this.forwardInput,[4,Se(t)];case 1:return[2,e.apply(this,[n.sent()])]}}))}))},e.prototype.predictExpressions=function(t){return Object(St.b)(this,void 0,void 0,(function(){var e,n,r,o,a=this;return Object(St.d)(this,(function(i){switch(i.label){case 0:return[4,Se(t)];case 1:return e=i.sent(),[4,this.forwardInput(e)];case 2:return n=i.sent(),[4,Promise.all(Rt.O(n).map((function(t){return Object(St.b)(a,void 0,void 0,(function(){var e;return Object(St.d)(this,(function(n){switch(n.label){case 0:return[4,t.data()];case 1:return e=n.sent(),t.dispose(),[2,e]}}))}))})))];case 3:return r=i.sent(),n.dispose(),o=r.map((function(t){return new nn(t)})),[2,e.isBatchInput?o:o[0]]}}))}))},e.prototype.getDefaultModelName=function(){return"face_expression_model"},e.prototype.getClassifierChannelsIn=function(){return 256},e.prototype.getClassifierChannelsOut=function(){return 7},e}(tn);function on(t,e){var n={expressions:e};return Object.assign({},t,n)}function an(t,e,n,r){void 0===n&&(n=.1),(Array.isArray(e)?e:[e]).forEach((function(e){var o=e instanceof nn?e:e.expressions instanceof nn?e.expressions:void 0;if(!o)throw new Error("drawFaceExpressions - expected faceExpressions to be FaceExpressions | WithFaceExpressions<{}> or array thereof");var a=o.asSortedArray().filter((function(t){return t.probability>n})),i=ne(e)?e.detection.box.bottomLeft:r||new Ut(0,0);new ge(a.map((function(t){return t.expression+" ("+Ft(t.probability)+")"})),i).draw(t)}))}function sn(t){return ne(t)&&t.landmarks instanceof Yt&&t.unshiftedLandmarks instanceof Yt&&t.alignedRect instanceof Gt}function un(t,e){var n=t.detection.box,r=e.shiftBy(n.x,n.y),o=r.align(),a=t.detection.imageDims,i={landmarks:r,unshiftedLandmarks:e,alignedRect:new Gt(t.detection.score,o.rescale(a.reverse()),a)};return Object.assign({},t,i)}var cn=function(t){void 0===t&&(t={});var e=t.drawLines,n=void 0===e||e,r=t.drawPoints,o=void 0===r||r,a=t.lineWidth,i=t.lineColor,s=t.pointSize,u=t.pointColor;this.drawLines=n,this.drawPoints=o,this.lineWidth=a||1,this.pointSize=s||2,this.lineColor=i||"rgba(0, 255, 255, 1)",this.pointColor=u||"rgba(255, 0, 255, 1)"},ln=function(){function t(t,e){void 0===e&&(e={}),this.faceLandmarks=t,this.options=new cn(e)}return t.prototype.draw=function(t){var e=ve(t),n=this.options,r=n.drawLines,o=n.drawPoints,a=n.lineWidth,i=n.lineColor,s=n.pointSize,u=n.pointColor;if(r&&this.faceLandmarks instanceof Qt&&(e.strokeStyle=i,e.lineWidth=a,It(e,this.faceLandmarks.getJawOutline()),It(e,this.faceLandmarks.getLeftEyeBrow()),It(e,this.faceLandmarks.getRightEyeBrow()),It(e,this.faceLandmarks.getNose()),It(e,this.faceLandmarks.getLeftEye(),!0),It(e,this.faceLandmarks.getRightEye(),!0),It(e,this.faceLandmarks.getMouth(),!0)),o){e.strokeStyle=u,e.fillStyle=u;this.faceLandmarks.positions.forEach((function(t){e.beginPath(),e.arc(t.x,t.y,s,0,2*Math.PI),e.fill()}))}},t}();function fn(t,e){(Array.isArray(e)?e:[e]).forEach((function(e){var n=e instanceof Yt?e:sn(e)?e.landmarks:void 0;if(!n)throw new Error("drawFaceLandmarks - expected faceExpressions to be FaceLandmarks | WithFaceLandmarks<WithFaceDetection<{}>> or array thereof");new ln(n).draw(t)}))}function hn(t,e){var n=[],r=Ke(t),o=r.extractWeights,a=r.getRemainingWeights,i=function(t,e){var n=je(t,e),r=Ge(t,e);return{extractConvParams:n,extractSeparableConvParams:r,extractReductionBlockParams:function(t,e,o){return{separable_conv0:r(t,e,o+"/separable_conv0"),separable_conv1:r(e,e,o+"/separable_conv1"),expansion_conv:n(t,e,1,o+"/expansion_conv")}},extractMainBlockParams:function(t,e){return{separable_conv0:r(t,t,e+"/separable_conv0"),separable_conv1:r(t,t,e+"/separable_conv1"),separable_conv2:r(t,t,e+"/separable_conv2")}}}}(o,n),s=i.extractConvParams,u=i.extractSeparableConvParams,c=i.extractReductionBlockParams,l=i.extractMainBlockParams,f={conv_in:s(3,32,3,"entry_flow/conv_in"),reduction_block_0:c(32,64,"entry_flow/reduction_block_0"),reduction_block_1:c(64,128,"entry_flow/reduction_block_1")},h={};Bt(e,0,1).forEach((function(t){h["main_block_"+t]=l(128,"middle_flow/main_block_"+t)}));var p={reduction_block:c(128,256,"exit_flow/reduction_block"),separable_conv:u(256,512,"exit_flow/separable_conv")};if(0!==a().length)throw new Error("weights remaing after extract: "+a().length);return{paramMappings:n,params:{entry_flow:f,middle_flow:h,exit_flow:p}}}function pn(t,e){var n=[],r=function(t,e){var n=qe(t,e),r=$e(n),o=He(n);return{extractConvParams:r,extractSeparableConvParams:o,extractReductionBlockParams:function(t){return{separable_conv0:o(t+"/separable_conv0"),separable_conv1:o(t+"/separable_conv1"),expansion_conv:r(t+"/expansion_conv")}},extractMainBlockParams:function(t){return{separable_conv0:o(t+"/separable_conv0"),separable_conv1:o(t+"/separable_conv1"),separable_conv2:o(t+"/separable_conv2")}}}}(t,n),o=r.extractConvParams,a=r.extractSeparableConvParams,i=r.extractReductionBlockParams,s=r.extractMainBlockParams,u={conv_in:o("entry_flow/conv_in"),reduction_block_0:i("entry_flow/reduction_block_0"),reduction_block_1:i("entry_flow/reduction_block_1")},c={};Bt(e,0,1).forEach((function(t){c["main_block_"+t]=s("middle_flow/main_block_"+t)}));var l={reduction_block:i("exit_flow/reduction_block"),separable_conv:a("exit_flow/separable_conv")};return Ue(t,n),{params:{entry_flow:u,middle_flow:c,exit_flow:l},paramMappings:n}}function dn(t,e,n){return Rt.c(Rt.i(t,e.filters,n,"same"),e.bias)}function vn(t,e,n){void 0===n&&(n=!0);var r=n?Rt.w(t):t;return r=Pe(r,e.separable_conv0,[1,1]),r=Pe(Rt.w(r),e.separable_conv1,[1,1]),r=Rt.s(r,[3,3],[2,2],"same"),r=Rt.c(r,dn(t,e.expansion_conv,[2,2]))}var mn,gn=function(t){function e(e){var n=t.call(this,"TinyXception")||this;return n._numMainBlocks=e,n}return Object(St.c)(e,t),e.prototype.forwardInput=function(t){var e=this,n=this.params;if(!n)throw new Error("TinyXception - load model before inference");return Rt.L((function(){var r=Kt(t.toBatchTensor(112,!0),[122.782,117.001,104.298]).div(Rt.y(256)),o=Rt.w(dn(r,n.entry_flow.conv_in,[2,2]));return o=vn(o,n.entry_flow.reduction_block_0,!1),o=vn(o,n.entry_flow.reduction_block_1),Bt(e._numMainBlocks,0,1).forEach((function(t){o=function(t,e){var n=Pe(Rt.w(t),e.separable_conv0,[1,1]);return n=Pe(Rt.w(n),e.separable_conv1,[1,1]),n=Pe(Rt.w(n),e.separable_conv2,[1,1]),n=Rt.c(n,t)}(o,n.middle_flow["main_block_"+t])})),o=vn(o,n.exit_flow.reduction_block),o=Rt.w(Pe(o,n.exit_flow.separable_conv,[1,1]))}))},e.prototype.forward=function(t){return Object(St.b)(this,void 0,void 0,(function(){var e;return Object(St.d)(this,(function(n){switch(n.label){case 0:return e=this.forwardInput,[4,Se(t)];case 1:return[2,e.apply(this,[n.sent()])]}}))}))},e.prototype.getDefaultModelName=function(){return"tiny_xception_model"},e.prototype.extractParamsFromWeigthMap=function(t){return pn(t,this._numMainBlocks)},e.prototype.extractParams=function(t){return hn(t,this._numMainBlocks)},e}(Me);!function(t){t.FEMALE="female",t.MALE="male"}(mn||(mn={}));var yn=function(t){function e(e){void 0===e&&(e=new gn(2));var n=t.call(this,"AgeGenderNet")||this;return n._faceFeatureExtractor=e,n}return Object(St.c)(e,t),Object.defineProperty(e.prototype,"faceFeatureExtractor",{get:function(){return this._faceFeatureExtractor},enumerable:!0,configurable:!0}),e.prototype.runNet=function(t){var e=this,n=this.params;if(!n)throw new Error(this._name+" - load model before inference");return Rt.L((function(){var r=t instanceof Ie?e.faceFeatureExtractor.forwardInput(t):t,o=Rt.d(r,[7,7],[2,2],"valid").as2D(r.shape[0],-1);return{age:Qe(o,n.fc.age).as1D(),gender:Qe(o,n.fc.gender)}}))},e.prototype.forwardInput=function(t){var e=this;return Rt.L((function(){var n=e.runNet(t),r=n.age,o=n.gender;return{age:r,gender:Rt.D(o)}}))},e.prototype.forward=function(t){return Object(St.b)(this,void 0,void 0,(function(){var e;return Object(St.d)(this,(function(n){switch(n.label){case 0:return e=this.forwardInput,[4,Se(t)];case 1:return[2,e.apply(this,[n.sent()])]}}))}))},e.prototype.predictAgeAndGender=function(t){return Object(St.b)(this,void 0,void 0,(function(){var e,n,r,o,a,i,s=this;return Object(St.d)(this,(function(u){switch(u.label){case 0:return[4,Se(t)];case 1:return e=u.sent(),[4,this.forwardInput(e)];case 2:return n=u.sent(),r=Rt.O(n.age),o=Rt.O(n.gender),a=r.map((function(t,e){return{ageTensor:t,genderTensor:o[e]}})),[4,Promise.all(a.map((function(t){var e=t.ageTensor,n=t.genderTensor;return Object(St.b)(s,void 0,void 0,(function(){var t,r,o,a,i;return Object(St.d)(this,(function(s){switch(s.label){case 0:return[4,e.data()];case 1:return t=s.sent()[0],[4,n.data()];case 2:return r=s.sent()[0],a=(o=r>.5)?mn.MALE:mn.FEMALE,i=o?r:1-r,e.dispose(),n.dispose(),[2,{age:t,gender:a,genderProbability:i}]}}))}))})))];case 3:return i=u.sent(),n.age.dispose(),n.gender.dispose(),[2,e.isBatchInput?i:i[0]]}}))}))},e.prototype.getDefaultModelName=function(){return"age_gender_model"},e.prototype.dispose=function(e){void 0===e&&(e=!0),this.faceFeatureExtractor.dispose(e),t.prototype.dispose.call(this,e)},e.prototype.loadClassifierParams=function(t){var e=this.extractClassifierParams(t),n=e.params,r=e.paramMappings;this._params=n,this._paramMappings=r},e.prototype.extractClassifierParams=function(t){return function(t){var e=[],n=Ke(t),r=n.extractWeights,o=n.getRemainingWeights,a=ze(r,e),i=a(512,1,"fc/age"),s=a(512,2,"fc/gender");if(0!==o().length)throw new Error("weights remaing after extract: "+o().length);return{paramMappings:e,params:{fc:{age:i,gender:s}}}}(t)},e.prototype.extractParamsFromWeigthMap=function(t){var e=Ze(t),n=e.featureExtractorMap,r=e.classifierMap;return this.faceFeatureExtractor.loadFromWeightMap(n),function(t){var e=[],n=qe(t,e);function r(t){return{weights:n(t+"/weights",2),bias:n(t+"/bias",1)}}var o={fc:{age:r("fc/age"),gender:r("fc/gender")}};return Ue(t,e),{params:o,paramMappings:e}}(r)},e.prototype.extractParams=function(t){var e=t.slice(0,t.length-1539),n=t.slice(t.length-1539);return this.faceFeatureExtractor.extractWeights(e),this.extractClassifierParams(n)},e}(Me),bn=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return Object(St.c)(e,t),e.prototype.postProcess=function(t,e,n){var r=n.map((function(t){var n=t.width,r=t.height,o=e/Math.max(r,n);return{width:n*o,height:r*o}})),o=r.length;return Rt.L((function(){var n=function(t,e){return Rt.E([Rt.n([68],t),Rt.n([68],e)],1).as2D(1,136).as1D()},a=function(t,e){var n=r[t],o=n.width,a=n.height;return e(o,a)?Math.abs(o-a)/2:0};return t.mul(Rt.n([o,136],e)).sub(Rt.E(Array.from(Array(o),(function(t,e){return n(function(t){return a(t,(function(t,e){return t<e}))}(e),function(t){return a(t,(function(t,e){return e<t}))}(e))})))).div(Rt.E(Array.from(Array(o),(function(t,e){return n(r[e].width,r[e].height)}))))}))},e.prototype.forwardInput=function(t){var e=this;return Rt.L((function(){var n=e.runNet(t);return e.postProcess(n,t.inputSize,t.inputDimensions.map((function(t){return{height:t[0],width:t[1]}})))}))},e.prototype.forward=function(t){return Object(St.b)(this,void 0,void 0,(function(){var e;return Object(St.d)(this,(function(n){switch(n.label){case 0:return e=this.forwardInput,[4,Se(t)];case 1:return[2,e.apply(this,[n.sent()])]}}))}))},e.prototype.detectLandmarks=function(t){return Object(St.b)(this,void 0,void 0,(function(){var e,n,r,o=this;return Object(St.d)(this,(function(a){switch(a.label){case 0:return[4,Se(t)];case 1:return e=a.sent(),n=Rt.L((function(){return Rt.O(o.forwardInput(e))})),[4,Promise.all(n.map((function(t,n){return Object(St.b)(o,void 0,void 0,(function(){var r,o,a,i,s;return Object(St.d)(this,(function(u){switch(u.label){case 0:return a=(o=Array).from,[4,t.data()];case 1:return r=a.apply(o,[u.sent()]),i=r.filter((function(t,e){return Nt(e)})),s=r.filter((function(t,e){return!Nt(e)})),[2,new Qt(Array(68).fill(0).map((function(t,e){return new Ut(i[e],s[e])})),{height:e.getInputHeight(n),width:e.getInputWidth(n)})]}}))}))})))];case 2:return r=a.sent(),n.forEach((function(t){return t.dispose()})),[2,e.isBatchInput?r:r[0]]}}))}))},e.prototype.getClassifierChannelsOut=function(){return 136},e}(tn),xn=function(t){function e(e){return void 0===e&&(e=new Je),t.call(this,"FaceLandmark68Net",e)||this}return Object(St.c)(e,t),e.prototype.getDefaultModelName=function(){return"face_landmark_68_model"},e.prototype.getClassifierChannelsIn=function(){return 256},e}(bn);var wn=function(t){function e(){return t.call(this,"TinyFaceFeatureExtractor")||this}return Object(St.c)(e,t),e.prototype.forwardInput=function(t){var e=this.params;if(!e)throw new Error("TinyFaceFeatureExtractor - load model before inference");return Rt.L((function(){var n=Be(Kt(t.toBatchTensor(112,!0),[122.782,117.001,104.298]).div(Rt.y(255)),e.dense0,!0);return n=Be(n,e.dense1),n=Be(n,e.dense2),n=Rt.d(n,[14,14],[2,2],"valid")}))},e.prototype.forward=function(t){return Object(St.b)(this,void 0,void 0,(function(){var e;return Object(St.d)(this,(function(n){switch(n.label){case 0:return e=this.forwardInput,[4,Se(t)];case 1:return[2,e.apply(this,[n.sent()])]}}))}))},e.prototype.getDefaultModelName=function(){return"face_feature_extractor_tiny_model"},e.prototype.extractParamsFromWeigthMap=function(t){return function(t){var e=[],n=Ye(t,e).extractDenseBlock3Params,r={dense0:n("dense0",!0),dense1:n("dense1"),dense2:n("dense2")};return Ue(t,e),{params:r,paramMappings:e}}(t)},e.prototype.extractParams=function(t){return function(t){var e=[],n=Ke(t),r=n.extractWeights,o=n.getRemainingWeights,a=Xe(r,e).extractDenseBlock3Params,i=a(3,32,"dense0",!0),s=a(32,64,"dense1"),u=a(64,128,"dense2");if(0!==o().length)throw new Error("weights remaing after extract: "+o().length);return{paramMappings:e,params:{dense0:i,dense1:s,dense2:u}}}(t)},e}(Me),En=function(t){function e(e){return void 0===e&&(e=new wn),t.call(this,"FaceLandmark68TinyNet",e)||this}return Object(St.c)(e,t),e.prototype.getDefaultModelName=function(){return"face_landmark_68_tiny_model"},e.prototype.getClassifierChannelsIn=function(){return 128},e}(bn);!function(t){function e(){return null!==t&&t.apply(this,arguments)||this}Object(St.c)(e,t)}(xn);function Cn(t,e,n,r,o){void 0===o&&(o="same");var a=e.conv,i=a.filters,s=a.bias,u=Rt.i(t,i,n,o);return u=function(t,e){return Rt.c(Rt.t(t,e.weights),e.biases)}(u=Rt.c(u,s),e.scale),r?Rt.w(u):u}function _n(t,e){return Cn(t,e,[1,1],!1)}function kn(t,e){return Cn(t,e,[2,2],!0,"valid")}function Rn(t,e){function n(n,r,o,a){var i=function(e,n,r){var o=t(e),a=o.length/(n*r*r);if(a%1!=0)throw new Error("depth has to be an integer: "+a+", weights.length: "+o.length+", numFilters: "+n+", filterSize: "+r);return Rt.L((function(){return Rt.N(Rt.K(o,[n,a,r,r]),[2,3,1,0])}))}(n,r,o),s=Rt.H(t(r));return e.push({paramPath:a+"/filters"},{paramPath:a+"/bias"}),{filters:i,bias:s}}function r(r,o,a,i){return{conv:n(r,o,a,i+"/conv"),scale:function(n,r){var o=Rt.H(t(n)),a=Rt.H(t(n));return e.push({paramPath:r+"/weights"},{paramPath:r+"/biases"}),{weights:o,biases:a}}(o,i+"/scale")}}return{extractConvLayerParams:r,extractResidualLayerParams:function(t,e,n,o,a){return void 0===a&&(a=!1),{conv1:r((a?.5:1)*t,e,n,o+"/conv1"),conv2:r(t,e,n,o+"/conv2")}}}}function In(t,e){var n=qe(t,e);function r(t){return{conv:{filters:n(t+"/conv/filters",4),bias:n(t+"/conv/bias",1)},scale:function(t){return{weights:n(t+"/scale/weights",1),biases:n(t+"/scale/biases",1)}}(t)}}return{extractConvLayerParams:r,extractResidualLayerParams:function(t){return{conv1:r(t+"/conv1"),conv2:r(t+"/conv2")}}}}function Sn(t){var e=[],n=In(t,e),r=n.extractConvLayerParams,o=n.extractResidualLayerParams,a=r("conv32_down"),i=o("conv32_1"),s=o("conv32_2"),u=o("conv32_3"),c=o("conv64_down"),l=o("conv64_1"),f=o("conv64_2"),h=o("conv64_3"),p=o("conv128_down"),d=o("conv128_1"),v=o("conv128_2"),m=o("conv256_down"),g=o("conv256_1"),y=o("conv256_2"),b=o("conv256_down_out"),x=t.fc;if(e.push({originalPath:"fc",paramPath:"fc"}),!Ot(x,2))throw new Error("expected weightMap[fc] to be a Tensor2D, instead have "+x);var w={conv32_down:a,conv32_1:i,conv32_2:s,conv32_3:u,conv64_down:c,conv64_1:l,conv64_2:f,conv64_3:h,conv128_down:p,conv128_1:d,conv128_2:v,conv256_down:m,conv256_1:g,conv256_2:y,conv256_down_out:b,fc:x};return Ue(t,e),{params:w,paramMappings:e}}function An(t,e){var n=function(t,e){return Cn(t,e,[1,1],!0)}(t,e.conv1);return n=_n(n,e.conv2),n=Rt.c(n,t),n=Rt.w(n)}function On(t,e){var n=kn(t,e.conv1);n=_n(n,e.conv2);var r=Rt.d(t,2,2,"valid"),o=Rt.P(r.shape),a=r.shape[3]!==n.shape[3];if(r.shape[1]!==n.shape[1]||r.shape[2]!==n.shape[2]){var i=Object(St.e)(n.shape);i[1]=1;var s=Rt.P(i);n=Rt.h([n,s],1);var u=Object(St.e)(n.shape);u[2]=1;var c=Rt.P(u);n=Rt.h([n,c],2)}return r=a?Rt.h([r,o],3):r,n=Rt.c(r,n),n=Rt.w(n)}var Tn=function(t){function e(){return t.call(this,"FaceRecognitionNet")||this}return Object(St.c)(e,t),e.prototype.forwardInput=function(t){var e=this.params;if(!e)throw new Error("FaceRecognitionNet - load model before inference");return Rt.L((function(){var n=kn(Kt(t.toBatchTensor(150,!0).toFloat(),[122.782,117.001,104.298]).div(Rt.y(256)),e.conv32_down);n=An(n=Rt.s(n,3,2,"valid"),e.conv32_1),n=An(n,e.conv32_2),n=An(n,e.conv32_3),n=An(n=On(n,e.conv64_down),e.conv64_1),n=An(n,e.conv64_2),n=An(n,e.conv64_3),n=An(n=On(n,e.conv128_down),e.conv128_1),n=An(n,e.conv128_2),n=An(n=On(n,e.conv256_down),e.conv256_1);var r=(n=On(n=An(n,e.conv256_2),e.conv256_down_out)).mean([1,2]);return Rt.q(r,e.fc)}))},e.prototype.forward=function(t){return Object(St.b)(this,void 0,void 0,(function(){var e;return Object(St.d)(this,(function(n){switch(n.label){case 0:return e=this.forwardInput,[4,Se(t)];case 1:return[2,e.apply(this,[n.sent()])]}}))}))},e.prototype.computeFaceDescriptor=function(t){return Object(St.b)(this,void 0,void 0,(function(){var e,n,r,o=this;return Object(St.d)(this,(function(a){switch(a.label){case 0:return[4,Se(t)];case 1:return e=a.sent(),n=Rt.L((function(){return Rt.O(o.forwardInput(e))})),[4,Promise.all(n.map((function(t){return t.data()})))];case 2:return r=a.sent(),n.forEach((function(t){return t.dispose()})),[2,e.isBatchInput?r:r[0]]}}))}))},e.prototype.getDefaultModelName=function(){return"face_recognition_model"},e.prototype.extractParamsFromWeigthMap=function(t){return Sn(t)},e.prototype.extractParams=function(t){return function(t){var e=Ke(t),n=e.extractWeights,r=e.getRemainingWeights,o=[],a=Rn(n,o),i=a.extractConvLayerParams,s=a.extractResidualLayerParams,u=i(4704,32,7,"conv32_down"),c=s(9216,32,3,"conv32_1"),l=s(9216,32,3,"conv32_2"),f=s(9216,32,3,"conv32_3"),h=s(36864,64,3,"conv64_down",!0),p=s(36864,64,3,"conv64_1"),d=s(36864,64,3,"conv64_2"),v=s(36864,64,3,"conv64_3"),m=s(147456,128,3,"conv128_down",!0),g=s(147456,128,3,"conv128_1"),y=s(147456,128,3,"conv128_2"),b=s(589824,256,3,"conv256_down",!0),x=s(589824,256,3,"conv256_1"),w=s(589824,256,3,"conv256_2"),E=s(589824,256,3,"conv256_down_out"),C=Rt.L((function(){return Rt.N(Rt.I(n(32768),[128,256]),[1,0])}));if(o.push({paramPath:"fc"}),0!==r().length)throw new Error("weights remaing after extract: "+r().length);return{params:{conv32_down:u,conv32_1:c,conv32_2:l,conv32_3:f,conv64_down:h,conv64_1:p,conv64_2:d,conv64_3:v,conv128_down:m,conv128_1:g,conv128_2:y,conv256_down:b,conv256_1:x,conv256_2:w,conv256_down_out:E,fc:C},paramMappings:o}}(t)},e}(Me);function Dn(t,e){var n={descriptor:e};return Object.assign({},t,n)}function Nn(t,e){var n={age:e};return Object.assign({},t,n)}function Fn(t,e,n){var r={gender:e,genderProbability:n};return Object.assign({},t,r)}var Mn=function(){function t(t){var e=void 0===t?{}:t,n=e.minFaceSize,r=e.scaleFactor,o=e.maxNumScales,a=e.scoreThresholds,i=e.scaleSteps;if(this._name="MtcnnOptions",this._minFaceSize=n||20,this._scaleFactor=r||.709,this._maxNumScales=o||10,this._scoreThresholds=a||[.6,.7,.7],this._scaleSteps=i,"number"!=typeof this._minFaceSize||this._minFaceSize<0)throw new Error(this._name+" - expected minFaceSize to be a number > 0");if("number"!=typeof this._scaleFactor||this._scaleFactor<=0||this._scaleFactor>=1)throw new Error(this._name+" - expected scaleFactor to be a number between 0 and 1");if("number"!=typeof this._maxNumScales||this._maxNumScales<0)throw new Error(this._name+" - expected maxNumScales to be a number > 0");if(!Array.isArray(this._scoreThresholds)||3!==this._scoreThresholds.length||this._scoreThresholds.some((function(t){return"number"!=typeof t})))throw new Error(this._name+" - expected scoreThresholds to be an array of numbers of length 3");if(this._scaleSteps&&(!Array.isArray(this._scaleSteps)||this._scaleSteps.some((function(t){return"number"!=typeof t}))))throw new Error(this._name+" - expected scaleSteps to be an array of numbers")}return Object.defineProperty(t.prototype,"minFaceSize",{get:function(){return this._minFaceSize},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"scaleFactor",{get:function(){return this._scaleFactor},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"maxNumScales",{get:function(){return this._maxNumScales},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"scoreThresholds",{get:function(){return this._scoreThresholds},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"scaleSteps",{get:function(){return this._scaleSteps},enumerable:!0,configurable:!0}),t}();function Pn(t,e){function n(n,r,o,a,i){var s=Rt.K(t(n*r*o*o),[o,o,n,r]),u=Rt.H(t(r));return e.push({paramPath:a+"/filters"},{paramPath:a+"/"+(i?"batch_norm_offset":"bias")}),{filters:s,bias:u}}function r(t,e,r,o){var a=n(t,e,r,o,!0);return{filters:a.filters,batch_norm_offset:a.bias}}function o(n,o,a){return{depthwise_conv:function(n,r){var o=Rt.K(t(9*n),[3,3,n,1]),a=Rt.H(t(n)),i=Rt.H(t(n)),s=Rt.H(t(n)),u=Rt.H(t(n));return e.push({paramPath:r+"/filters"},{paramPath:r+"/batch_norm_scale"},{paramPath:r+"/batch_norm_offset"},{paramPath:r+"/batch_norm_mean"},{paramPath:r+"/batch_norm_variance"}),{filters:o,batch_norm_scale:a,batch_norm_offset:i,batch_norm_mean:s,batch_norm_variance:u}}(n,a+"/depthwise_conv"),pointwise_conv:r(n,o,1,a+"/pointwise_conv")}}return{extractMobilenetV1Params:function(){return{conv_0:r(3,32,3,"mobilenetv1/conv_0"),conv_1:o(32,64,"mobilenetv1/conv_1"),conv_2:o(64,128,"mobilenetv1/conv_2"),conv_3:o(128,128,"mobilenetv1/conv_3"),conv_4:o(128,256,"mobilenetv1/conv_4"),conv_5:o(256,256,"mobilenetv1/conv_5"),conv_6:o(256,512,"mobilenetv1/conv_6"),conv_7:o(512,512,"mobilenetv1/conv_7"),conv_8:o(512,512,"mobilenetv1/conv_8"),conv_9:o(512,512,"mobilenetv1/conv_9"),conv_10:o(512,512,"mobilenetv1/conv_10"),conv_11:o(512,512,"mobilenetv1/conv_11"),conv_12:o(512,1024,"mobilenetv1/conv_12"),conv_13:o(1024,1024,"mobilenetv1/conv_13")}},extractPredictionLayerParams:function(){return{conv_0:r(1024,256,1,"prediction_layer/conv_0"),conv_1:r(256,512,3,"prediction_layer/conv_1"),conv_2:r(512,128,1,"prediction_layer/conv_2"),conv_3:r(128,256,3,"prediction_layer/conv_3"),conv_4:r(256,128,1,"prediction_layer/conv_4"),conv_5:r(128,256,3,"prediction_layer/conv_5"),conv_6:r(256,64,1,"prediction_layer/conv_6"),conv_7:r(64,128,3,"prediction_layer/conv_7"),box_predictor_0:{box_encoding_predictor:n(512,12,1,"prediction_layer/box_predictor_0/box_encoding_predictor"),class_predictor:n(512,9,1,"prediction_layer/box_predictor_0/class_predictor")},box_predictor_1:{box_encoding_predictor:n(1024,24,1,"prediction_layer/box_predictor_1/box_encoding_predictor"),class_predictor:n(1024,18,1,"prediction_layer/box_predictor_1/class_predictor")},box_predictor_2:{box_encoding_predictor:n(512,24,1,"prediction_layer/box_predictor_2/box_encoding_predictor"),class_predictor:n(512,18,1,"prediction_layer/box_predictor_2/class_predictor")},box_predictor_3:{box_encoding_predictor:n(256,24,1,"prediction_layer/box_predictor_3/box_encoding_predictor"),class_predictor:n(256,18,1,"prediction_layer/box_predictor_3/class_predictor")},box_predictor_4:{box_encoding_predictor:n(256,24,1,"prediction_layer/box_predictor_4/box_encoding_predictor"),class_predictor:n(256,18,1,"prediction_layer/box_predictor_4/class_predictor")},box_predictor_5:{box_encoding_predictor:n(128,24,1,"prediction_layer/box_predictor_5/box_encoding_predictor"),class_predictor:n(128,18,1,"prediction_layer/box_predictor_5/class_predictor")}}}}}function Bn(t){var e=[],n=function(t,e){var n=qe(t,e);function r(t,e,r){return{filters:n(t+"/Conv2d_"+e+"_pointwise/weights",4,r+"/filters"),batch_norm_offset:n(t+"/Conv2d_"+e+"_pointwise/convolution_bn_offset",1,r+"/batch_norm_offset")}}function o(t){var e="mobilenetv1/conv_"+t,o="MobilenetV1/Conv2d_"+t+"_depthwise",a=e+"/depthwise_conv",i=e+"/pointwise_conv";return{depthwise_conv:{filters:n(o+"/depthwise_weights",4,a+"/filters"),batch_norm_scale:n(o+"/BatchNorm/gamma",1,a+"/batch_norm_scale"),batch_norm_offset:n(o+"/BatchNorm/beta",1,a+"/batch_norm_offset"),batch_norm_mean:n(o+"/BatchNorm/moving_mean",1,a+"/batch_norm_mean"),batch_norm_variance:n(o+"/BatchNorm/moving_variance",1,a+"/batch_norm_variance")},pointwise_conv:r("MobilenetV1",t,i)}}function a(t,e){return{filters:n(t+"/weights",4,e+"/filters"),bias:n(t+"/biases",1,e+"/bias")}}function i(t){return{box_encoding_predictor:a("Prediction/BoxPredictor_"+t+"/BoxEncodingPredictor","prediction_layer/box_predictor_"+t+"/box_encoding_predictor"),class_predictor:a("Prediction/BoxPredictor_"+t+"/ClassPredictor","prediction_layer/box_predictor_"+t+"/class_predictor")}}return{extractMobilenetV1Params:function(){return{conv_0:r("MobilenetV1",0,"mobilenetv1/conv_0"),conv_1:o(1),conv_2:o(2),conv_3:o(3),conv_4:o(4),conv_5:o(5),conv_6:o(6),conv_7:o(7),conv_8:o(8),conv_9:o(9),conv_10:o(10),conv_11:o(11),conv_12:o(12),conv_13:o(13)}},extractPredictionLayerParams:function(){return{conv_0:r("Prediction",0,"prediction_layer/conv_0"),conv_1:r("Prediction",1,"prediction_layer/conv_1"),conv_2:r("Prediction",2,"prediction_layer/conv_2"),conv_3:r("Prediction",3,"prediction_layer/conv_3"),conv_4:r("Prediction",4,"prediction_layer/conv_4"),conv_5:r("Prediction",5,"prediction_layer/conv_5"),conv_6:r("Prediction",6,"prediction_layer/conv_6"),conv_7:r("Prediction",7,"prediction_layer/conv_7"),box_predictor_0:i(0),box_predictor_1:i(1),box_predictor_2:i(2),box_predictor_3:i(3),box_predictor_4:i(4),box_predictor_5:i(5)}}}}(t,e),r=n.extractMobilenetV1Params,o=n.extractPredictionLayerParams,a=t["Output/extra_dim"];if(e.push({originalPath:"Output/extra_dim",paramPath:"output_layer/extra_dim"}),!Tt(a))throw new Error("expected weightMap['Output/extra_dim'] to be a Tensor3D, instead have "+a);var i={mobilenetv1:r(),prediction_layer:o(),output_layer:{extra_dim:a}};return Ue(t,e),{params:i,paramMappings:e}}function Ln(t,e,n){return Rt.L((function(){var r=Rt.i(t,e.filters,n,"same");return r=Rt.c(r,e.batch_norm_offset),Rt.g(r,0,6)}))}function Wn(t,e){return Rt.L((function(){var n=null,r=Ln(t,e.conv_0,[2,2]);if([e.conv_1,e.conv_2,e.conv_3,e.conv_4,e.conv_5,e.conv_6,e.conv_7,e.conv_8,e.conv_9,e.conv_10,e.conv_11,e.conv_12,e.conv_13].forEach((function(t,e){var o=e+1,a=function(t){return[2,4,6,12].some((function(e){return e===t}))?[2,2]:[1,1]}(o);r=Ln(r=function(t,e,n){return Rt.L((function(){var r=Rt.j(t,e.filters,n,"same");return r=Rt.e(r,e.batch_norm_mean,e.batch_norm_variance,e.batch_norm_offset,e.batch_norm_scale,.0010000000474974513),Rt.g(r,0,6)}))}(r,t.depthwise_conv,a),t.pointwise_conv,[1,1]),11===o&&(n=r)})),null===n)throw new Error("mobileNetV1 - output of conv layer 11 is null");return{out:r,conv11:n}}))}function Un(t,e,n){var r=t.arraySync(),o=Math.min(r[e][0],r[e][2]),a=Math.min(r[e][1],r[e][3]),i=Math.max(r[e][0],r[e][2]),s=Math.max(r[e][1],r[e][3]),u=Math.min(r[n][0],r[n][2]),c=Math.min(r[n][1],r[n][3]),l=Math.max(r[n][0],r[n][2]),f=Math.max(r[n][1],r[n][3]),h=(i-o)*(s-a),p=(l-u)*(f-c);if(h<=0||p<=0)return 0;var d=Math.max(o,u),v=Math.max(a,c),m=Math.min(i,l),g=Math.min(s,f),y=Math.max(m-d,0)*Math.max(g-v,0);return y/(h+p-y)}function jn(t,e){var n=function(t){var e=Rt.O(Rt.N(t,[1,0])),n=[Rt.F(e[2],e[0]),Rt.F(e[3],e[1])];return{sizes:n,centers:[Rt.c(e[0],Rt.k(n[0],Rt.y(2))),Rt.c(e[1],Rt.k(n[1],Rt.y(2)))]}}(t),r=n.sizes,o=n.centers,a=Rt.O(Rt.N(e,[1,0])),i=Rt.k(Rt.t(Rt.l(Rt.k(a[2],Rt.y(5))),r[0]),Rt.y(2)),s=Rt.c(Rt.t(Rt.k(a[0],Rt.y(10)),r[0]),o[0]),u=Rt.k(Rt.t(Rt.l(Rt.k(a[3],Rt.y(5))),r[1]),Rt.y(2)),c=Rt.c(Rt.t(Rt.k(a[1],Rt.y(10)),r[1]),o[1]);return Rt.N(Rt.E([Rt.F(s,i),Rt.F(c,u),Rt.c(s,i),Rt.c(c,u)]),[1,0])}function zn(t,e){return Rt.L((function(){var n=t.shape[0];return{boxPredictionEncoding:Rt.x(We(t,e.box_encoding_predictor),[n,-1,1,4]),classPrediction:Rt.x(We(t,e.class_predictor),[n,-1,3])}}))}var Vn=function(){function t(t){var e=void 0===t?{}:t,n=e.minConfidence,r=e.maxResults;if(this._name="SsdMobilenetv1Options",this._minConfidence=n||.5,this._maxResults=r||100,"number"!=typeof this._minConfidence||this._minConfidence<=0||this._minConfidence>=1)throw new Error(this._name+" - expected minConfidence to be a number between 0 and 1");if("number"!=typeof this._maxResults)throw new Error(this._name+" - expected maxResults to be a number")}return Object.defineProperty(t.prototype,"minConfidence",{get:function(){return this._minConfidence},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"maxResults",{get:function(){return this._maxResults},enumerable:!0,configurable:!0}),t}(),Gn=function(t){function e(){return t.call(this,"SsdMobilenetv1")||this}return Object(St.c)(e,t),e.prototype.forwardInput=function(t){var e=this.params;if(!e)throw new Error("SsdMobilenetv1 - load model before inference");return Rt.L((function(){var n=t.toBatchTensor(512,!1).toFloat(),r=Wn(Rt.F(Rt.t(n,Rt.y(.007843137718737125)),Rt.y(1)),e.mobilenetv1),o=function(t,e,n){return Rt.L((function(){var r=Ln(t,n.conv_0,[1,1]),o=Ln(r,n.conv_1,[2,2]),a=Ln(o,n.conv_2,[1,1]),i=Ln(a,n.conv_3,[2,2]),s=Ln(i,n.conv_4,[1,1]),u=Ln(s,n.conv_5,[2,2]),c=Ln(u,n.conv_6,[1,1]),l=Ln(c,n.conv_7,[2,2]),f=zn(e,n.box_predictor_0),h=zn(t,n.box_predictor_1),p=zn(o,n.box_predictor_2),d=zn(i,n.box_predictor_3),v=zn(u,n.box_predictor_4),m=zn(l,n.box_predictor_5);return{boxPredictions:Rt.h([f.boxPredictionEncoding,h.boxPredictionEncoding,p.boxPredictionEncoding,d.boxPredictionEncoding,v.boxPredictionEncoding,m.boxPredictionEncoding],1),classPredictions:Rt.h([f.classPrediction,h.classPrediction,p.classPrediction,d.classPrediction,v.classPrediction,m.classPrediction],1)}}))}(r.out,r.conv11,e.prediction_layer);return function(t,e,n){return Rt.L((function(){var r=t.shape[0],o=jn(Rt.x(Rt.M(n.extra_dim,[r,1,1]),[-1,4]),Rt.x(t,[-1,4]));o=Rt.x(o,[r,o.shape[0]/r,4]);var a=Rt.A(Rt.B(e,[0,0,1],[-1,-1,-1])),i=Rt.B(a,[0,0,0],[-1,-1,1]);return i=Rt.x(i,[r,i.shape[1]]),{boxes:Rt.O(o),scores:Rt.O(i)}}))}(o.boxPredictions,o.classPredictions,e.output_layer)}))},e.prototype.forward=function(t){return Object(St.b)(this,void 0,void 0,(function(){var e;return Object(St.d)(this,(function(n){switch(n.label){case 0:return e=this.forwardInput,[4,Se(t)];case 1:return[2,e.apply(this,[n.sent()])]}}))}))},e.prototype.locateFaces=function(t,e){return void 0===e&&(e={}),Object(St.b)(this,void 0,void 0,(function(){var n,r,o,a,i,s,u,c,l,f,h,p,d,v,m,g,y,b,x,w;return Object(St.d)(this,(function(E){switch(E.label){case 0:return n=new Vn(e),r=n.maxResults,o=n.minConfidence,[4,Se(t)];case 1:for(a=E.sent(),i=this.forwardInput(a),s=i.boxes,u=i.scores,c=s[0],l=u[0],f=1;f<s.length;f++)s[f].dispose(),u[f].dispose();return d=(p=Array).from,[4,l.data()];case 2:return h=d.apply(p,[E.sent()]),.5,v=function(t,e,n,r,o){var a=t.shape[0],i=Math.min(n,a),s=e.map((function(t,e){return{score:t,boxIndex:e}})).filter((function(t){return t.score>o})).sort((function(t,e){return e.score-t.score})),u=[];return s.forEach((function(e){if(!(u.length>=i)){for(var n=e.score,a=u.length-1;a>=0;--a){var s=Un(t,e.boxIndex,u[a]);if(0!==s&&(e.score*=s<=r?1:0,e.score<=o))break}n===e.score&&u.push(e.boxIndex)}})),u}(c,h,r,.5,o),m=a.getReshapedInputDimensions(0),g=a.inputSize,y=g/m.width,b=g/m.height,x=c.arraySync(),w=v.map((function(t){var e=[Math.max(0,x[t][0]),Math.min(1,x[t][2])].map((function(t){return t*b})),n=e[0],r=e[1],o=[Math.max(0,x[t][1]),Math.min(1,x[t][3])].map((function(t){return t*y})),i=o[0],s=o[1];return new Gt(h[t],new $t(i,n,s-i,r-n),{height:a.getInputHeight(0),width:a.getInputWidth(0)})})),c.dispose(),l.dispose(),[2,w]}}))}))},e.prototype.getDefaultModelName=function(){return"ssd_mobilenetv1_model"},e.prototype.extractParamsFromWeigthMap=function(t){return Bn(t)},e.prototype.extractParams=function(t){return function(t){var e=[],n=Ke(t),r=n.extractWeights,o=n.getRemainingWeights,a=Pn(r,e),i=a.extractMobilenetV1Params,s=a.extractPredictionLayerParams,u=i(),c=s(),l={extra_dim:Rt.J(r(20472),[1,5118,4])};if(e.push({paramPath:"output_layer/extra_dim"}),0!==o().length)throw new Error("weights remaing after extract: "+o().length);return{params:{mobilenetv1:u,prediction_layer:c,output_layer:l},paramMappings:e}}(t)},e}(Me);!function(t){function e(){return null!==t&&t.apply(this,arguments)||this}Object(St.c)(e,t)}(Gn);var Hn,qn=[new Ut(.738768,.874946),new Ut(2.42204,2.65704),new Ut(4.30971,7.04493),new Ut(10.246,4.59428),new Ut(12.6868,11.8741)],Kn=[new Ut(1.603231,2.094468),new Ut(6.041143,7.080126),new Ut(2.882459,3.518061),new Ut(4.266906,5.178857),new Ut(9.041765,10.66308)],Xn=[117.001,114.697,97.404],$n=function(t){return"number"==typeof t};function Yn(t){return Rt.L((function(){var e=Rt.t(t,Rt.y(.10000000149011612));return Rt.c(Rt.w(Rt.F(t,e)),e)}))}function Jn(t,e){return Rt.L((function(){var n=Rt.v(t,[[0,0],[1,1],[1,1],[0,0]]);return n=Rt.i(n,e.conv.filters,[1,1],"valid"),n=Rt.F(n,e.bn.sub),n=Rt.t(n,e.bn.truediv),Yn(n=Rt.c(n,e.conv.bias))}))}function Qn(t,e){return Rt.L((function(){var n=Rt.v(t,[[0,0],[1,1],[1,1],[0,0]]);return n=Rt.z(n,e.depthwise_filter,e.pointwise_filter,[1,1],"valid"),Yn(n=Rt.c(n,e.bias))}))}function Zn(t,e){var n=je(t,e);var r=Ge(t,e);return{extractConvParams:n,extractConvWithBatchNormParams:function(r,o,a){return{conv:n(r,o,3,a+"/conv"),bn:function(n,r){var o=Rt.H(t(n)),a=Rt.H(t(n));return e.push({paramPath:r+"/sub"},{paramPath:r+"/truediv"}),{sub:o,truediv:a}}(o,a+"/bn")}},extractSeparableConvParams:r}}function tr(t,e){var n=qe(t,e);function r(t){return{filters:n(t+"/filters",4),bias:n(t+"/bias",1)}}return{extractConvParams:r,extractConvWithBatchNormParams:function(t){return{conv:r(t+"/conv"),bn:function(t){return{sub:n(t+"/sub",1),truediv:n(t+"/truediv",1)}}(t+"/bn")}},extractSeparableConvParams:He(n)}}!function(t){t[t.XS=224]="XS",t[t.SM=320]="SM",t[t.MD=416]="MD",t[t.LG=608]="LG"}(Hn||(Hn={}));var er=function(){function t(t){var e=void 0===t?{}:t,n=e.inputSize,r=e.scoreThreshold;if(this._name="TinyYolov2Options",this._inputSize=n||416,this._scoreThreshold=r||.5,"number"!=typeof this._inputSize||this._inputSize%32!=0)throw new Error(this._name+" - expected inputSize to be a number divisible by 32");if("number"!=typeof this._scoreThreshold||this._scoreThreshold<=0||this._scoreThreshold>=1)throw new Error(this._name+" - expected scoreThreshold to be a number between 0 and 1")}return Object.defineProperty(t.prototype,"inputSize",{get:function(){return this._inputSize},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"scoreThreshold",{get:function(){return this._scoreThreshold},enumerable:!0,configurable:!0}),t}(),nr=function(t){function e(e){var n=t.call(this,"TinyYolov2")||this;return function(t){if(!t)throw new Error("invalid config: "+t);if("boolean"!=typeof t.withSeparableConvs)throw new Error("config.withSeparableConvs has to be a boolean, have: "+t.withSeparableConvs);if(!$n(t.iouThreshold)||t.iouThreshold<0||t.iouThreshold>1)throw new Error("config.iouThreshold has to be a number between [0, 1], have: "+t.iouThreshold);if(!Array.isArray(t.classes)||!t.classes.length||!t.classes.every((function(t){return"string"==typeof t})))throw new Error("config.classes has to be an array class names: string[], have: "+JSON.stringify(t.classes));if(!Array.isArray(t.anchors)||!t.anchors.length||!t.anchors.map((function(t){return t||{}})).every((function(t){return $n(t.x)&&$n(t.y)})))throw new Error("config.anchors has to be an array of { x: number, y: number }, have: "+JSON.stringify(t.anchors));if(t.meanRgb&&(!Array.isArray(t.meanRgb)||3!==t.meanRgb.length||!t.meanRgb.every($n)))throw new Error("config.meanRgb has to be an array of shape [number, number, number], have: "+JSON.stringify(t.meanRgb))}(e),n._config=e,n}return Object(St.c)(e,t),Object.defineProperty(e.prototype,"config",{get:function(){return this._config},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"withClassScores",{get:function(){return this.config.withClassScores||this.config.classes.length>1},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"boxEncodingSize",{get:function(){return 5+(this.withClassScores?this.config.classes.length:0)},enumerable:!0,configurable:!0}),e.prototype.runTinyYolov2=function(t,e){var n=Jn(t,e.conv0);return n=Jn(n=Rt.s(n,[2,2],[2,2],"same"),e.conv1),n=Jn(n=Rt.s(n,[2,2],[2,2],"same"),e.conv2),n=Jn(n=Rt.s(n,[2,2],[2,2],"same"),e.conv3),n=Jn(n=Rt.s(n,[2,2],[2,2],"same"),e.conv4),n=Jn(n=Rt.s(n,[2,2],[2,2],"same"),e.conv5),n=Jn(n=Rt.s(n,[2,2],[1,1],"same"),e.conv6),We(n=Jn(n,e.conv7),e.conv8,"valid",!1)},e.prototype.runMobilenet=function(t,e){var n=this.config.isFirstLayerConv2d?Yn(We(t,e.conv0,"valid",!1)):Qn(t,e.conv0);return n=Qn(n=Rt.s(n,[2,2],[2,2],"same"),e.conv1),n=Qn(n=Rt.s(n,[2,2],[2,2],"same"),e.conv2),n=Qn(n=Rt.s(n,[2,2],[2,2],"same"),e.conv3),n=Qn(n=Rt.s(n,[2,2],[2,2],"same"),e.conv4),n=Qn(n=Rt.s(n,[2,2],[2,2],"same"),e.conv5),n=Rt.s(n,[2,2],[1,1],"same"),n=e.conv6?Qn(n,e.conv6):n,We(n=e.conv7?Qn(n,e.conv7):n,e.conv8,"valid",!1)},e.prototype.forwardInput=function(t,e){var n=this,r=this.params;if(!r)throw new Error("TinyYolov2 - load model before inference");return Rt.L((function(){var o=t.toBatchTensor(e,!1).toFloat();return o=(o=n.config.meanRgb?Kt(o,n.config.meanRgb):o).div(Rt.y(256)),n.config.withSeparableConvs?n.runMobilenet(o,r):n.runTinyYolov2(o,r)}))},e.prototype.forward=function(t,e){return Object(St.b)(this,void 0,void 0,(function(){var n;return Object(St.d)(this,(function(r){switch(r.label){case 0:return n=this.forwardInput,[4,Se(t)];case 1:return[4,n.apply(this,[r.sent(),e])];case 2:return[2,r.sent()]}}))}))},e.prototype.detect=function(t,e){return void 0===e&&(e={}),Object(St.b)(this,void 0,void 0,(function(){var n,r,o,a,i,s,u,c,l,f,h,p,d,v=this;return Object(St.d)(this,(function(m){switch(m.label){case 0:return n=new er(e),r=n.inputSize,o=n.scoreThreshold,[4,Se(t)];case 1:return a=m.sent(),[4,this.forwardInput(a,r)];case 2:return i=m.sent(),s=Rt.L((function(){return Rt.O(i)[0].expandDims()})),u={width:a.getInputWidth(0),height:a.getInputHeight(0)},[4,this.extractBoxes(s,a.getReshapedInputDimensions(0),o)];case 3:return c=m.sent(),i.dispose(),s.dispose(),l=c.map((function(t){return t.box})),f=c.map((function(t){return t.score})),h=c.map((function(t){return t.classScore})),p=c.map((function(t){return v.config.classes[t.label]})),d=qt(l.map((function(t){return t.rescale(r)})),f,this.config.iouThreshold,!0),[2,d.map((function(t){return new Vt(f[t],h[t],p[t],l[t],u)}))]}}))}))},e.prototype.getDefaultModelName=function(){return""},e.prototype.extractParamsFromWeigthMap=function(t){return function(t,e){var n,r=[],o=tr(t,r),a=o.extractConvParams,i=o.extractConvWithBatchNormParams,s=o.extractSeparableConvParams;if(e.withSeparableConvs){var u=e.filterSizes&&e.filterSizes.length||9;n={conv0:e.isFirstLayerConv2d?a("conv0"):s("conv0"),conv1:s("conv1"),conv2:s("conv2"),conv3:s("conv3"),conv4:s("conv4"),conv5:s("conv5"),conv6:u>7?s("conv6"):void 0,conv7:u>8?s("conv7"):void 0,conv8:a("conv8")}}else n={conv0:i("conv0"),conv1:i("conv1"),conv2:i("conv2"),conv3:i("conv3"),conv4:i("conv4"),conv5:i("conv5"),conv6:i("conv6"),conv7:i("conv7"),conv8:a("conv8")};return Ue(t,r),{params:n,paramMappings:r}}(t,this.config)},e.prototype.extractParams=function(t){var n=this.config.filterSizes||e.DEFAULT_FILTER_SIZES,r=n?n.length:void 0;if(7!==r&&8!==r&&9!==r)throw new Error("TinyYolov2 - expected 7 | 8 | 9 convolutional filters, but found "+r+" filterSizes in config");return function(t,e,n,r){var o,a=Ke(t),i=a.extractWeights,s=a.getRemainingWeights,u=[],c=Zn(i,u),l=c.extractConvParams,f=c.extractConvWithBatchNormParams,h=c.extractSeparableConvParams;if(e.withSeparableConvs){var p=r[0],d=r[1],v=r[2],m=r[3],g=r[4],y=r[5],b=r[6],x=r[7],w=r[8];o={conv0:e.isFirstLayerConv2d?l(p,d,3,"conv0"):h(p,d,"conv0"),conv1:h(d,v,"conv1"),conv2:h(v,m,"conv2"),conv3:h(m,g,"conv3"),conv4:h(g,y,"conv4"),conv5:h(y,b,"conv5"),conv6:x?h(b,x,"conv6"):void 0,conv7:w?h(x,w,"conv7"):void 0,conv8:l(w||x||b,5*n,1,"conv8")}}else{p=r[0],d=r[1],v=r[2],m=r[3],g=r[4],y=r[5],b=r[6],x=r[7],w=r[8];o={conv0:f(p,d,"conv0"),conv1:f(d,v,"conv1"),conv2:f(v,m,"conv2"),conv3:f(m,g,"conv3"),conv4:f(g,y,"conv4"),conv5:f(y,b,"conv5"),conv6:f(b,x,"conv6"),conv7:f(x,w,"conv7"),conv8:l(w,5*n,1,"conv8")}}if(0!==s().length)throw new Error("weights remaing after extract: "+s().length);return{params:o,paramMappings:u}}(t,this.config,this.boxEncodingSize,n)},e.prototype.extractBoxes=function(t,e,n){return Object(St.b)(this,void 0,void 0,(function(){var r,o,a,i,s,u,c,l,f,h,p,d,v,m,g,y,b,x,w,E,C,_,k,R,I,S,A,O,T,D=this;return Object(St.d)(this,(function(N){switch(N.label){case 0:return r=e.width,o=e.height,a=Math.max(r,o),i=a/r,s=a/o,u=t.shape[1],c=this.config.anchors.length,l=Rt.L((function(){var e=t.reshape([u,u,c,D.boxEncodingSize]);return[e.slice([0,0,0,0],[u,u,c,4]),e.slice([0,0,0,4],[u,u,c,1]),D.withClassScores?Rt.D(e.slice([0,0,0,5],[u,u,c,D.config.classes.length]),3):Rt.y(0)]})),f=l[0],h=l[1],p=l[2],d=[],[4,h.array()];case 1:return v=N.sent(),[4,f.array()];case 2:m=N.sent(),g=0,N.label=3;case 3:if(!(g<u))return[3,12];y=0,N.label=4;case 4:if(!(y<u))return[3,11];b=0,N.label=5;case 5:return b<c?(x=Xt(v[g][y][b][0]),!n||x>n?(w=(y+Xt(m[g][y][b][0]))/u*i,E=(g+Xt(m[g][y][b][1]))/u*s,C=Math.exp(m[g][y][b][2])*this.config.anchors[b].x/u*i,_=Math.exp(m[g][y][b][3])*this.config.anchors[b].y/u*s,k=w-C/2,R=E-_/2,I={row:g,col:y,anchor:b},this.withClassScores?[4,this.extractPredictedClass(p,I)]:[3,7]):[3,9]):[3,10];case 6:return T=N.sent(),[3,8];case 7:T={classScore:1,label:0},N.label=8;case 8:A=(S=T).classScore,O=S.label,d.push(Object(St.a)({box:new zt(k,R,k+C,R+_),score:x,classScore:x*A,label:O},I)),N.label=9;case 9:return b++,[3,5];case 10:return y++,[3,4];case 11:return g++,[3,3];case 12:return f.dispose(),h.dispose(),p.dispose(),[2,d]}}))}))},e.prototype.extractPredictedClass=function(t,e){return Object(St.b)(this,void 0,void 0,(function(){var n,r,o,a;return Object(St.d)(this,(function(i){switch(i.label){case 0:return n=e.row,r=e.col,o=e.anchor,[4,t.array()];case 1:return a=i.sent(),[2,Array(this.config.classes.length).fill(0).map((function(t,e){return a[n][r][o][e]})).map((function(t,e){return{classScore:t,label:e}})).reduce((function(t,e){return t.classScore>e.classScore?t:e}))]}}))}))},e.DEFAULT_FILTER_SIZES=[3,16,32,64,128,256,512,1024,1024],e}(Me),rr=function(t){function e(e){void 0===e&&(e=!0);var n=Object.assign({},{withSeparableConvs:e,iouThreshold:.4,classes:["face"]},e?{anchors:Kn,meanRgb:Xn}:{anchors:qn,withClassScores:!0});return t.call(this,n)||this}return Object(St.c)(e,t),Object.defineProperty(e.prototype,"withSeparableConvs",{get:function(){return this.config.withSeparableConvs},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"anchors",{get:function(){return this.config.anchors},enumerable:!0,configurable:!0}),e.prototype.locateFaces=function(t,e){return Object(St.b)(this,void 0,void 0,(function(){return Object(St.d)(this,(function(n){switch(n.label){case 0:return[4,this.detect(t,e)];case 1:return[2,n.sent().map((function(t){return new Gt(t.score,t.relativeBox,{width:t.imageWidth,height:t.imageHeight})}))]}}))}))},e.prototype.getDefaultModelName=function(){return this.withSeparableConvs?"tiny_yolov2_separable_conv_model":"tiny_yolov2_model"},e.prototype.extractParamsFromWeigthMap=function(e){return t.prototype.extractParamsFromWeigthMap.call(this,e)},e}(nr);var or=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e._name="TinyFaceDetectorOptions",e}return Object(St.c)(e,t),e}(er),ar=function(){function t(){}return t.prototype.then=function(t){return Object(St.b)(this,void 0,void 0,(function(){var e;return Object(St.d)(this,(function(n){switch(n.label){case 0:return e=t,[4,this.run()];case 1:return[2,e.apply(void 0,[n.sent()])]}}))}))},t.prototype.run=function(){return Object(St.b)(this,void 0,void 0,(function(){return Object(St.d)(this,(function(t){throw new Error("ComposableTask - run is not implemented")}))}))},t}();function ir(t,e,n,r,o){return void 0===o&&(o=function(t){return t.alignedRect}),Object(St.b)(this,void 0,void 0,(function(){var a,i,s,u,c;return Object(St.d)(this,(function(l){switch(l.label){case 0:return a=t.map((function(t){return sn(t)?o(t):t.detection})),(s=r)?[3,5]:e instanceof Rt.a?[4,Oe(e,a)]:[3,2];case 1:return u=l.sent(),[3,4];case 2:return[4,Ae(e,a)];case 3:u=l.sent(),l.label=4;case 4:s=u,l.label=5;case 5:return[4,n(i=s)];case 6:return c=l.sent(),i.forEach((function(t){return t instanceof Rt.a&&t.dispose()})),[2,c]}}))}))}function sr(t,e,n,r,o){return Object(St.b)(this,void 0,void 0,(function(){var a=this;return Object(St.d)(this,(function(i){return[2,ir([t],e,(function(t){return Object(St.b)(a,void 0,void 0,(function(){return Object(St.d)(this,(function(e){return[2,n(t[0])]}))}))}),r,o)]}))}))}function ur(t){var e=Ke(t),n=e.extractWeights,r=e.getRemainingWeights,o=[],a=function(t,e){var n=je(t,e),r=ze(t,e);function o(n,r){var o=Rt.H(t(n));return e.push({paramPath:r}),o}function a(t,e,r){return void 0===r&&(r=!1),{conv1:n(t[0],t[1],3,e+"/conv1"),prelu1_alpha:o(t[1],e+"/prelu1_alpha"),conv2:n(t[1],t[2],3,e+"/conv2"),prelu2_alpha:o(t[2],e+"/prelu2_alpha"),conv3:n(t[2],t[3],r?2:3,e+"/conv3"),prelu3_alpha:o(t[3],e+"/prelu3_alpha")}}return{extractPNetParams:function(){var t=a([3,10,16,32],"pnet"),e=n(32,2,1,"pnet/conv4_1"),r=n(32,4,1,"pnet/conv4_2");return Object(St.a)(Object(St.a)({},t),{conv4_1:e,conv4_2:r})},extractRNetParams:function(){var t=a([3,28,48,64],"rnet",!0),e=r(576,128,"rnet/fc1"),n=o(128,"rnet/prelu4_alpha"),i=r(128,2,"rnet/fc2_1"),s=r(128,4,"rnet/fc2_2");return Object(St.a)(Object(St.a)({},t),{fc1:e,prelu4_alpha:n,fc2_1:i,fc2_2:s})},extractONetParams:function(){var t=a([3,32,64,64],"onet"),e=n(64,128,2,"onet/conv4"),i=o(128,"onet/prelu4_alpha"),s=r(1152,256,"onet/fc1"),u=o(256,"onet/prelu5_alpha"),c=r(256,2,"onet/fc2_1"),l=r(256,4,"onet/fc2_2"),f=r(256,10,"onet/fc2_3");return Object(St.a)(Object(St.a)({},t),{conv4:e,prelu4_alpha:i,fc1:s,prelu5_alpha:u,fc2_1:c,fc2_2:l,fc2_3:f})}}}(n,o),i=a.extractPNetParams,s=a.extractRNetParams,u=a.extractONetParams,c=i(),l=s(),f=u();if(0!==r().length)throw new Error("weights remaing after extract: "+r().length);return{params:{pnet:c,rnet:l,onet:f},paramMappings:o}}function cr(t){var e=[],n=function(t,e){var n=qe(t,e);function r(t){return{filters:n(t+"/weights",4,t+"/filters"),bias:n(t+"/bias",1)}}function o(t){return{weights:n(t+"/weights",2),bias:n(t+"/bias",1)}}function a(t){return n(t,1)}function i(t){return{conv1:r(t+"/conv1"),prelu1_alpha:a(t+"/prelu1_alpha"),conv2:r(t+"/conv2"),prelu2_alpha:a(t+"/prelu2_alpha"),conv3:r(t+"/conv3"),prelu3_alpha:a(t+"/prelu3_alpha")}}return{extractPNetParams:function(){var t=i("pnet"),e=r("pnet/conv4_1"),n=r("pnet/conv4_2");return Object(St.a)(Object(St.a)({},t),{conv4_1:e,conv4_2:n})},extractRNetParams:function(){var t=i("rnet"),e=o("rnet/fc1"),n=a("rnet/prelu4_alpha"),r=o("rnet/fc2_1"),s=o("rnet/fc2_2");return Object(St.a)(Object(St.a)({},t),{fc1:e,prelu4_alpha:n,fc2_1:r,fc2_2:s})},extractONetParams:function(){var t=i("onet"),e=r("onet/conv4"),n=a("onet/prelu4_alpha"),s=o("onet/fc1"),u=a("onet/prelu5_alpha"),c=o("onet/fc2_1"),l=o("onet/fc2_2"),f=o("onet/fc2_3");return Object(St.a)(Object(St.a)({},t),{conv4:e,prelu4_alpha:n,fc1:s,prelu5_alpha:u,fc2_1:c,fc2_2:l,fc2_3:f})}}}(t,e),r=n.extractPNetParams,o=n.extractRNetParams,a=n.extractONetParams,i=r(),s=o(),u=a();return Ue(t,e),{params:{pnet:i,rnet:s,onet:u},paramMappings:e}}function lr(t,e){var n=e[0],r=e[1];return{height:Math.floor(n*t),width:Math.floor(r*t)}}var fr=function(t){function e(e,n,r,o){return t.call(this,{left:e,top:n,right:r,bottom:o},!0)||this}return Object(St.c)(e,t),e}(jt);function hr(t){return Rt.L((function(){return Rt.t(Rt.F(t,Rt.y(127.5)),Rt.y(.0078125))}))}function pr(t,e){return Rt.L((function(){return Rt.c(Rt.w(t),Rt.t(e,Rt.u(Rt.w(Rt.u(t)))))}))}function dr(t,e,n){return void 0===n&&(n=!1),Rt.L((function(){var r=We(t,e.conv1,"valid");return r=pr(r,e.prelu1_alpha),r=pr(r=We(r=Rt.s(r,n?[2,2]:[3,3],[2,2],"same"),e.conv2,"valid"),e.prelu2_alpha),r=pr(r=We(r=n?r:Rt.s(r,[3,3],[2,2],"valid"),e.conv3,"valid"),e.prelu3_alpha)}))}function vr(t,e,n,r,o){o.stage1=[];var a=e.map((function(e){return Rt.L((function(){var n={scale:e},o=function(t,e){return Rt.L((function(){var n=lr(e,t.shape.slice(1)),r=n.height,o=n.width,a=hr(Rt.o.resizeBilinear(t,[r,o]));return Rt.N(a,[0,2,1,3])}))}(t,e),a=Date.now(),i=function(t,e){return Rt.L((function(){var n=dr(t,e,!0),r=We(n,e.conv4_1,"valid"),o=Rt.m(Rt.r(r,3),3);return{prob:Rt.D(Rt.F(r,o),3),regions:We(n,e.conv4_2,"valid")}}))}(o,r),s=i.prob,u=i.regions;return n.pnet=Date.now()-a,{scoresTensor:Rt.O(Rt.O(s,3)[1])[0],regionsTensor:Rt.O(u)[0],scale:e,statsForScale:n}}))})).map((function(t){var e=t.scoresTensor,r=t.regionsTensor,a=t.scale,i=t.statsForScale,s=function(t,e,n,r){for(var o=[],a=t.arraySync(),i=0;i<t.shape[0];i++)for(var s=0;s<t.shape[1];s++)a[i][s]>=r&&o.push(new Ut(s,i));return o.map((function(t){var r=new zt(Math.round((2*t.y+1)/n),Math.round((2*t.x+1)/n),Math.round((2*t.y+12)/n),Math.round((2*t.x+12)/n)),o=a[t.y][t.x],i=e.arraySync();return{cell:r,score:o,region:new fr(i[t.y][t.x][0],i[t.y][t.x][1],i[t.y][t.x][2],i[t.y][t.x][3])}}))}(e,r,a,n);if(e.dispose(),r.dispose(),!s.length)return o.stage1.push(i),[];var u=Date.now(),c=qt(s.map((function(t){return t.cell})),s.map((function(t){return t.score})),.5);return i.nms=Date.now()-u,i.numBoxes=c.length,o.stage1.push(i),c.map((function(t){return s[t]}))})).reduce((function(t,e){return t.concat(e)}),[]),i=[],s=[];if(a.length>0){var u=Date.now(),c=qt(a.map((function(t){return t.cell})),a.map((function(t){return t.score})),.7);o.stage1_nms=Date.now()-u,s=c.map((function(t){return a[t].score})),i=c.map((function(t){return a[t]})).map((function(t){var e=t.cell,n=t.region;return new zt(e.left+n.left*e.width,e.top+n.top*e.height,e.right+n.right*e.width,e.bottom+n.bottom*e.height).toSquare().round()}))}return{boxes:i,scores:s}}function mr(t,e,n){var r=n.width,o=n.height;return Object(St.b)(this,void 0,void 0,(function(){var n,a,i,s=this;return Object(St.d)(this,(function(u){switch(u.label){case 0:return n=ve(t),[4,Promise.all(e.map((function(e){return Object(St.b)(s,void 0,void 0,(function(){var r,o,a,i,s,u,c,l;return Object(St.d)(this,(function(f){return r=e.padAtBorders(t.height,t.width),o=r.y,a=r.ey,i=r.x,s=r.ex,u=i-1,c=o-1,l=n.getImageData(u,c,s-u,a-c),[2,pe.isNodejs()?_e(l):createImageBitmap(l)]}))}))})))];case 1:return a=u.sent(),i=[],a.forEach((function(t){var e=ve(Ce({width:r,height:o}));e.drawImage(t,0,0,r,o);for(var n=e.getImageData(0,0,r,o).data,a=[],s=0;s<n.length;s+=4)a.push(n[s+2]),a.push(n[s+1]),a.push(n[s]);i.push(a)})),[2,i.map((function(t){return Rt.L((function(){return hr(Rt.N(Rt.K(t,[1,r,o,3]),[0,2,1,3]).toFloat())}))}))]}}))}))}function gr(t,e,n,r,o){return Object(St.b)(this,void 0,void 0,(function(){var a,i,s,u,c,l,f,h,p,d,v,m,g,y;return Object(St.d)(this,(function(b){switch(b.label){case 0:return a=Date.now(),[4,mr(t,e,{width:24,height:24})];case 1:return i=b.sent(),o.stage2_extractImagePatches=Date.now()-a,a=Date.now(),s=i.map((function(t){var e=function(t,e){return Rt.L((function(){var n=dr(t,e),r=pr(Qe(Rt.x(n,[n.shape[0],e.fc1.weights.shape[0]]),e.fc1),e.prelu4_alpha),o=Qe(r,e.fc2_1),a=Rt.m(Rt.r(o,1),1),i=Rt.D(Rt.F(o,a),1),s=Qe(r,e.fc2_2);return{scores:Rt.O(i,1)[1],regions:s}}))}(t,r);return t.dispose(),e})),o.stage2_rnet=Date.now()-a,u=s.length>1?Rt.h(s.map((function(t){return t.scores}))):s[0].scores,f=(l=Array).from,[4,u.data()];case 2:return c=f.apply(l,[b.sent()]),u.dispose(),h=c.map((function(t,e){return{score:t,idx:e}})).filter((function(t){return t.score>n})).map((function(t){return t.idx})),p=h.map((function(t){return e[t]})),d=h.map((function(t){return c[t]})),v=[],m=[],p.length>0&&(a=Date.now(),g=qt(p,d,.7),o.stage2_nms=Date.now()-a,y=g.map((function(t){var e=s[h[t]].regions.arraySync();return new fr(e[0][0],e[0][1],e[0][2],e[0][3])})),m=g.map((function(t){return d[t]})),v=g.map((function(t,e){return p[t].calibrate(y[e])}))),s.forEach((function(t){t.regions.dispose(),t.scores.dispose()})),[2,{boxes:v,scores:m}]}}))}))}function yr(t,e,n,r,o){return Object(St.b)(this,void 0,void 0,(function(){var a,i,s,u,c,l,f,h,p,d,v,m,g,y,b;return Object(St.d)(this,(function(x){switch(x.label){case 0:return a=Date.now(),[4,mr(t,e,{width:48,height:48})];case 1:return i=x.sent(),o.stage3_extractImagePatches=Date.now()-a,a=Date.now(),s=i.map((function(t){var e=function(t,e){return Rt.L((function(){var n=dr(t,e);n=pr(n=We(n=Rt.s(n,[2,2],[2,2],"same"),e.conv4,"valid"),e.prelu4_alpha);var r=pr(Qe(Rt.x(n,[n.shape[0],e.fc1.weights.shape[0]]),e.fc1),e.prelu5_alpha),o=Qe(r,e.fc2_1),a=Rt.m(Rt.r(o,1),1),i=Rt.D(Rt.F(o,a),1),s=Qe(r,e.fc2_2),u=Qe(r,e.fc2_3);return{scores:Rt.O(i,1)[1],regions:s,points:u}}))}(t,r);return t.dispose(),e})),o.stage3_onet=Date.now()-a,u=s.length>1?Rt.h(s.map((function(t){return t.scores}))):s[0].scores,f=(l=Array).from,[4,u.data()];case 2:return c=f.apply(l,[x.sent()]),u.dispose(),h=c.map((function(t,e){return{score:t,idx:e}})).filter((function(t){return t.score>n})).map((function(t){return t.idx})),p=h.map((function(t){var e=s[t].regions.arraySync();return new fr(e[0][0],e[0][1],e[0][2],e[0][3])})),d=h.map((function(t,n){return e[t].calibrate(p[n])})),v=h.map((function(t){return c[t]})),m=[],g=[],y=[],d.length>0&&(a=Date.now(),b=qt(d,v,.7,!1),o.stage3_nms=Date.now()-a,m=b.map((function(t){return d[t]})),g=b.map((function(t){return v[t]})),y=b.map((function(t,e){return Array(5).fill(0).map((function(n,r){var o=s[t].points.arraySync();return new Ut(o[0][r]*(m[e].width+1)+m[e].left,o[0][r+5]*(m[e].height+1)+m[e].top)}))}))),s.forEach((function(t){t.regions.dispose(),t.scores.dispose(),t.points.dispose()})),[2,{boxes:m,scores:g,points:y}]}}))}))}var br=function(t){function e(){return t.call(this,"Mtcnn")||this}return Object(St.c)(e,t),e.prototype.load=function(e){return Object(St.b)(this,void 0,void 0,(function(){return Object(St.d)(this,(function(n){return[2,t.prototype.load.call(this,e)]}))}))},e.prototype.loadFromDisk=function(e){return Object(St.b)(this,void 0,void 0,(function(){return Object(St.d)(this,(function(n){return[2,t.prototype.loadFromDisk.call(this,e)]}))}))},e.prototype.forwardInput=function(t,e){return void 0===e&&(e={}),Object(St.b)(this,void 0,void 0,(function(){var n,r,o,a,i,s,u,c,l,f,h,p,d,v,m,g,y,b,x,w,E;return Object(St.d)(this,(function(C){switch(C.label){case 0:if(!(n=this.params))throw new Error("Mtcnn - load model before inference");if(!(r=t.canvases[0]))throw new Error("Mtcnn - inputCanvas is not defined, note that passing tensors into Mtcnn.forwardInput is not supported yet.");return o={},a=Date.now(),i=Rt.L((function(){return t=Rt.m(Rt.f.fromPixels(r)).toFloat(),Rt.L((function(){return Rt.E(Rt.O(t,3).reverse(),3)}));var t})),s=function(t){return i.dispose(),o.total=Date.now()-a,t},u=i.shape.slice(1),c=u[0],l=u[1],f=new Mn(e),h=f.minFaceSize,p=f.scaleFactor,d=f.maxNumScales,v=f.scoreThresholds,m=f.scaleSteps,g=(m||function(t,e,n){for(var r=n[0],o=n[1],a=12/t,i=[],s=Math.min(r,o)*a,u=0;s>=12;)i.push(a*Math.pow(e,u)),s*=e,u+=1;return i}(h,p,[c,l])).filter((function(t){var e=lr(t,[c,l]);return Math.min(e.width,e.height)>12})).slice(0,d),o.scales=g,o.pyramid=g.map((function(t){return lr(t,[c,l])})),y=Date.now(),[4,vr(i,g,v[0],n.pnet,o)];case 1:return b=C.sent(),o.total_stage1=Date.now()-y,b.boxes.length?(o.stage2_numInputBoxes=b.boxes.length,y=Date.now(),[4,gr(r,b.boxes,v[1],n.rnet,o)]):[2,s({results:[],stats:o})];case 2:return x=C.sent(),o.total_stage2=Date.now()-y,x.boxes.length?(o.stage3_numInputBoxes=x.boxes.length,y=Date.now(),[4,yr(r,x.boxes,v[2],n.onet,o)]):[2,s({results:[],stats:o})];case 3:return w=C.sent(),o.total_stage3=Date.now()-y,E=w.boxes.map((function(t,e){return un(re({},new Gt(w.scores[e],new $t(t.left/l,t.top/c,t.width/l,t.height/c),{height:c,width:l})),new Jt(w.points[e].map((function(e){return e.sub(new Ut(t.left,t.top)).div(new Ut(t.width,t.height))})),{width:t.width,height:t.height}))})),[2,s({results:E,stats:o})]}}))}))},e.prototype.forward=function(t,e){return void 0===e&&(e={}),Object(St.b)(this,void 0,void 0,(function(){var n;return Object(St.d)(this,(function(r){switch(r.label){case 0:return n=this.forwardInput,[4,Se(t)];case 1:return[4,n.apply(this,[r.sent(),e])];case 2:return[2,r.sent().results]}}))}))},e.prototype.forwardWithStats=function(t,e){return void 0===e&&(e={}),Object(St.b)(this,void 0,void 0,(function(){var n;return Object(St.d)(this,(function(r){switch(r.label){case 0:return n=this.forwardInput,[4,Se(t)];case 1:return[2,n.apply(this,[r.sent(),e])]}}))}))},e.prototype.getDefaultModelName=function(){return"mtcnn_model"},e.prototype.extractParamsFromWeigthMap=function(t){return cr(t)},e.prototype.extractParams=function(t){return ur(t)},e}(Me),xr=[new Ut(1.603231,2.094468),new Ut(6.041143,7.080126),new Ut(2.882459,3.518061),new Ut(4.266906,5.178857),new Ut(9.041765,10.66308)],wr=[117.001,114.697,97.404],Er=function(t){function e(){var e={withSeparableConvs:!0,iouThreshold:.4,classes:["face"],anchors:xr,meanRgb:wr,isFirstLayerConv2d:!0,filterSizes:[3,16,32,64,128,256,512]};return t.call(this,e)||this}return Object(St.c)(e,t),Object.defineProperty(e.prototype,"anchors",{get:function(){return this.config.anchors},enumerable:!0,configurable:!0}),e.prototype.locateFaces=function(t,e){return Object(St.b)(this,void 0,void 0,(function(){return Object(St.d)(this,(function(n){switch(n.label){case 0:return[4,this.detect(t,e)];case 1:return[2,n.sent().map((function(t){return new Gt(t.score,t.relativeBox,{width:t.imageWidth,height:t.imageHeight})}))]}}))}))},e.prototype.getDefaultModelName=function(){return"tiny_face_detector_model"},e.prototype.extractParamsFromWeigthMap=function(e){return t.prototype.extractParamsFromWeigthMap.call(this,e)},e}(nr),Cr={ssdMobilenetv1:new Gn,tinyFaceDetector:new Er,tinyYolov2:new rr,mtcnn:new br,faceLandmark68Net:new xn,faceLandmark68TinyNet:new En,faceRecognitionNet:new Tn,faceExpressionNet:new rn,ageGenderNet:new yn},_r=function(t){function e(e,n,r){var o=t.call(this)||this;return o.parentTask=e,o.input=n,o.extractedFaces=r,o}return Object(St.c)(e,t),e}(ar),kr=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return Object(St.c)(e,t),e.prototype.run=function(){return Object(St.b)(this,void 0,void 0,(function(){var t,e,n=this;return Object(St.d)(this,(function(r){switch(r.label){case 0:return[4,this.parentTask];case 1:return[4,ir(t=r.sent(),this.input,(function(t){return Object(St.b)(n,void 0,void 0,(function(){return Object(St.d)(this,(function(e){switch(e.label){case 0:return[4,Promise.all(t.map((function(t){return Cr.faceExpressionNet.predictExpressions(t)})))];case 1:return[2,e.sent()]}}))}))}),this.extractedFaces)];case 2:return e=r.sent(),[2,t.map((function(t,n){return on(t,e[n])}))]}}))}))},e.prototype.withAgeAndGender=function(){return new Or(this,this.input)},e}(_r),Rr=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return Object(St.c)(e,t),e.prototype.run=function(){return Object(St.b)(this,void 0,void 0,(function(){var t,e;return Object(St.d)(this,(function(n){switch(n.label){case 0:return[4,this.parentTask];case 1:return(t=n.sent())?[4,sr(t,this.input,(function(t){return Cr.faceExpressionNet.predictExpressions(t)}),this.extractedFaces)]:[2];case 2:return e=n.sent(),[2,on(t,e)]}}))}))},e.prototype.withAgeAndGender=function(){return new Tr(this,this.input)},e}(_r),Ir=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return Object(St.c)(e,t),e.prototype.withAgeAndGender=function(){return new Dr(this,this.input)},e.prototype.withFaceDescriptors=function(){return new Mr(this,this.input)},e}(kr),Sr=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return Object(St.c)(e,t),e.prototype.withAgeAndGender=function(){return new Nr(this,this.input)},e.prototype.withFaceDescriptor=function(){return new Pr(this,this.input)},e}(Rr),Ar=function(t){function e(e,n,r){var o=t.call(this)||this;return o.parentTask=e,o.input=n,o.extractedFaces=r,o}return Object(St.c)(e,t),e}(ar),Or=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return Object(St.c)(e,t),e.prototype.run=function(){return Object(St.b)(this,void 0,void 0,(function(){var t,e,n=this;return Object(St.d)(this,(function(r){switch(r.label){case 0:return[4,this.parentTask];case 1:return[4,ir(t=r.sent(),this.input,(function(t){return Object(St.b)(n,void 0,void 0,(function(){return Object(St.d)(this,(function(e){switch(e.label){case 0:return[4,Promise.all(t.map((function(t){return Cr.ageGenderNet.predictAgeAndGender(t)})))];case 1:return[2,e.sent()]}}))}))}),this.extractedFaces)];case 2:return e=r.sent(),[2,t.map((function(t,n){var r=e[n],o=r.age;return Nn(Fn(t,r.gender,r.genderProbability),o)}))]}}))}))},e.prototype.withFaceExpressions=function(){return new kr(this,this.input)},e}(Ar),Tr=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return Object(St.c)(e,t),e.prototype.run=function(){return Object(St.b)(this,void 0,void 0,(function(){var t,e,n,r,o;return Object(St.d)(this,(function(a){switch(a.label){case 0:return[4,this.parentTask];case 1:return(t=a.sent())?[4,sr(t,this.input,(function(t){return Cr.ageGenderNet.predictAgeAndGender(t)}),this.extractedFaces)]:[2];case 2:return e=a.sent(),n=e.age,r=e.gender,o=e.genderProbability,[2,Nn(Fn(t,r,o),n)]}}))}))},e.prototype.withFaceExpressions=function(){return new Rr(this,this.input)},e}(Ar),Dr=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return Object(St.c)(e,t),e.prototype.withFaceExpressions=function(){return new Ir(this,this.input)},e.prototype.withFaceDescriptors=function(){return new Mr(this,this.input)},e}(Or),Nr=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return Object(St.c)(e,t),e.prototype.withFaceExpressions=function(){return new Sr(this,this.input)},e.prototype.withFaceDescriptor=function(){return new Pr(this,this.input)},e}(Tr),Fr=function(t){function e(e,n){var r=t.call(this)||this;return r.parentTask=e,r.input=n,r}return Object(St.c)(e,t),e}(ar),Mr=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return Object(St.c)(e,t),e.prototype.run=function(){return Object(St.b)(this,void 0,void 0,(function(){var t;return Object(St.d)(this,(function(e){switch(e.label){case 0:return[4,this.parentTask];case 1:return[4,ir(t=e.sent(),this.input,(function(t){return Promise.all(t.map((function(t){return Cr.faceRecognitionNet.computeFaceDescriptor(t)})))}),null,(function(t){return t.landmarks.align(null,{useDlibAlignment:!0})}))];case 2:return[2,e.sent().map((function(e,n){return Dn(t[n],e)}))]}}))}))},e.prototype.withFaceExpressions=function(){return new Ir(this,this.input)},e.prototype.withAgeAndGender=function(){return new Dr(this,this.input)},e}(Fr),Pr=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return Object(St.c)(e,t),e.prototype.run=function(){return Object(St.b)(this,void 0,void 0,(function(){var t,e;return Object(St.d)(this,(function(n){switch(n.label){case 0:return[4,this.parentTask];case 1:return(t=n.sent())?[4,sr(t,this.input,(function(t){return Cr.faceRecognitionNet.computeFaceDescriptor(t)}),null,(function(t){return t.landmarks.align(null,{useDlibAlignment:!0})}))]:[2];case 2:return e=n.sent(),[2,Dn(t,e)]}}))}))},e.prototype.withFaceExpressions=function(){return new Sr(this,this.input)},e.prototype.withAgeAndGender=function(){return new Nr(this,this.input)},e}(Fr),Br=function(t){function e(e,n,r){var o=t.call(this)||this;return o.parentTask=e,o.input=n,o.useTinyLandmarkNet=r,o}return Object(St.c)(e,t),Object.defineProperty(e.prototype,"landmarkNet",{get:function(){return this.useTinyLandmarkNet?Cr.faceLandmark68TinyNet:Cr.faceLandmark68Net},enumerable:!0,configurable:!0}),e}(ar),Lr=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return Object(St.c)(e,t),e.prototype.run=function(){return Object(St.b)(this,void 0,void 0,(function(){var t,e,n,r,o,a=this;return Object(St.d)(this,(function(i){switch(i.label){case 0:return[4,this.parentTask];case 1:return t=i.sent(),e=t.map((function(t){return t.detection})),this.input instanceof Rt.a?[4,Oe(this.input,e)]:[3,3];case 2:return r=i.sent(),[3,5];case 3:return[4,Ae(this.input,e)];case 4:r=i.sent(),i.label=5;case 5:return n=r,[4,Promise.all(n.map((function(t){return a.landmarkNet.detectLandmarks(t)})))];case 6:return o=i.sent(),n.forEach((function(t){return t instanceof Rt.a&&t.dispose()})),[2,t.map((function(t,e){return un(t,o[e])}))]}}))}))},e.prototype.withFaceExpressions=function(){return new Ir(this,this.input)},e.prototype.withAgeAndGender=function(){return new Dr(this,this.input)},e.prototype.withFaceDescriptors=function(){return new Mr(this,this.input)},e}(Br),Wr=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return Object(St.c)(e,t),e.prototype.run=function(){return Object(St.b)(this,void 0,void 0,(function(){var t,e,n,r,o;return Object(St.d)(this,(function(a){switch(a.label){case 0:return[4,this.parentTask];case 1:return(t=a.sent())?(e=t.detection,this.input instanceof Rt.a?[4,Oe(this.input,[e])]:[3,3]):[2];case 2:return r=a.sent(),[3,5];case 3:return[4,Ae(this.input,[e])];case 4:r=a.sent(),a.label=5;case 5:return n=r,[4,this.landmarkNet.detectLandmarks(n[0])];case 6:return o=a.sent(),n.forEach((function(t){return t instanceof Rt.a&&t.dispose()})),[2,un(t,o)]}}))}))},e.prototype.withFaceExpressions=function(){return new Sr(this,this.input)},e.prototype.withAgeAndGender=function(){return new Nr(this,this.input)},e.prototype.withFaceDescriptor=function(){return new Pr(this,this.input)},e}(Br),Ur=function(t){function e(e,n){void 0===n&&(n=new Vn);var r=t.call(this)||this;return r.input=e,r.options=n,r}return Object(St.c)(e,t),e}(ar),jr=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return Object(St.c)(e,t),e.prototype.run=function(){return Object(St.b)(this,void 0,void 0,(function(){var t,e,n,r;return Object(St.d)(this,(function(o){switch(o.label){case 0:return e=(t=this).input,(n=t.options)instanceof Mn?[4,Cr.mtcnn.forward(e,n)]:[3,2];case 1:return[2,o.sent().map((function(t){return t.detection}))];case 2:if(!(r=n instanceof or?function(t){return Cr.tinyFaceDetector.locateFaces(t,n)}:n instanceof Vn?function(t){return Cr.ssdMobilenetv1.locateFaces(t,n)}:n instanceof er?function(t){return Cr.tinyYolov2.locateFaces(t,n)}:null))throw new Error("detectFaces - expected options to be instance of TinyFaceDetectorOptions | SsdMobilenetv1Options | MtcnnOptions | TinyYolov2Options");return[2,r(e)]}}))}))},e.prototype.runAndExtendWithFaceDetections=function(){var t=this;return new Promise((function(e){return Object(St.b)(t,void 0,void 0,(function(){var t;return Object(St.d)(this,(function(n){switch(n.label){case 0:return[4,this.run()];case 1:return t=n.sent(),[2,e(t.map((function(t){return re({},t)})))]}}))}))}))},e.prototype.withFaceLandmarks=function(t){return void 0===t&&(t=!1),new Lr(this.runAndExtendWithFaceDetections(),this.input,t)},e.prototype.withFaceExpressions=function(){return new kr(this.runAndExtendWithFaceDetections(),this.input)},e.prototype.withAgeAndGender=function(){return new Or(this.runAndExtendWithFaceDetections(),this.input)},e}(Ur);!function(t){function e(){return null!==t&&t.apply(this,arguments)||this}Object(St.c)(e,t),e.prototype.run=function(){return Object(St.b)(this,void 0,void 0,(function(){var t,e;return Object(St.d)(this,(function(n){switch(n.label){case 0:return[4,new jr(this.input,this.options)];case 1:return t=n.sent(),e=t[0],t.forEach((function(t){t.score>e.score&&(e=t)})),[2,e]}}))}))},e.prototype.runAndExtendWithFaceDetection=function(){var t=this;return new Promise((function(e){return Object(St.b)(t,void 0,void 0,(function(){var t;return Object(St.d)(this,(function(n){switch(n.label){case 0:return[4,this.run()];case 1:return t=n.sent(),[2,e(t?re({},t):void 0)]}}))}))}))},e.prototype.withFaceLandmarks=function(t){return void 0===t&&(t=!1),new Wr(this.runAndExtendWithFaceDetection(),this.input,t)},e.prototype.withFaceExpressions=function(){return new Rr(this.runAndExtendWithFaceDetection(),this.input)},e.prototype.withAgeAndGender=function(){return new Tr(this.runAndExtendWithFaceDetection(),this.input)}}(Ur);function zr(t,e){return void 0===e&&(e=new Vn),new jr(t,e)}!function(){function t(t,e){void 0===e&&(e=.6),this._distanceThreshold=e;var n=Array.isArray(t)?t:[t];if(!n.length)throw new Error("FaceRecognizer.constructor - expected atleast one input");var r=1,o=function(){return"person "+r++};this._labeledDescriptors=n.map((function(t){if(t instanceof ee)return t;if(t instanceof Float32Array)return new ee(o(),[t]);if(t.descriptor&&t.descriptor instanceof Float32Array)return new ee(o(),[t.descriptor]);throw new Error("FaceRecognizer.constructor - expected inputs to be of type LabeledFaceDescriptors | WithFaceDescriptor<any> | Float32Array | Array<LabeledFaceDescriptors | WithFaceDescriptor<any> | Float32Array>")}))}Object.defineProperty(t.prototype,"labeledDescriptors",{get:function(){return this._labeledDescriptors},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"distanceThreshold",{get:function(){return this._distanceThreshold},enumerable:!0,configurable:!0}),t.prototype.computeMeanDistance=function(t,e){return e.map((function(e){return function(t,e){if(t.length!==e.length)throw new Error("euclideanDistance: arr1.length !== arr2.length");var n=Array.from(t),r=Array.from(e);return Math.sqrt(n.map((function(t,e){return t-r[e]})).reduce((function(t,e){return t+Math.pow(e,2)}),0))}(e,t)})).reduce((function(t,e){return t+e}),0)/(e.length||1)},t.prototype.matchDescriptor=function(t){var e=this;return this.labeledDescriptors.map((function(n){var r=n.descriptors,o=n.label;return new Zt(o,e.computeMeanDistance(t,r))})).reduce((function(t,e){return t.distance<e.distance?t:e}))},t.prototype.findBestMatch=function(t){var e=this.matchDescriptor(t);return e.distance<this.distanceThreshold?e:new Zt("unknown",e.distance)},t.prototype.toJSON=function(){return{distanceThreshold:this.distanceThreshold,labeledDescriptors:this.labeledDescriptors.map((function(t){return t.toJSON()}))}},t.fromJSON=function(e){return new t(e.labeledDescriptors.map((function(t){return ee.fromJSON(t)})),e.distanceThreshold)}}();const Vr=t=>{const e=.25*t.height,n=t.y-e>=0?t.y-e:0,r=.3*t.width,o=t.width-r,a=t.y-e>=0?t.height+e:t.height+t.y;return{x:t.x+r/2,y:n,width:o,height:a}},Gr=(t,e)=>{const n=document.createElement("canvas");n.width=t.videoWidth,n.height=t.videoHeight;const r=n.getContext("2d");r.drawImage(t,0,0);const o=Vr(e);return r.getImageData(o.x,o.y,o.width,o.height)},Hr=(t,e)=>{let{count:n,mean:r,m2:o}=t;n++;const a=e-r;r+=a/n;return o+=a*(e-r),{count:n,mean:r,m2:o}},qr=t=>{const{data:e}=t;let n={count:0,mean:0,m2:0};for(let r=0;r<e.length;r+=4)n=Hr(n,e[r]),n=Hr(n,e[r+1]),n=Hr(n,e[r+2]);return{mean:n.mean,variance:n.m2/n.count}},Kr=(t,e)=>{const{x:n,y:r,width:o,height:a}=t;return{x:e.width-o-n,y:r,width:o,height:a}},Xr=(t,e)=>{const{width:n,height:o}=t;(function t(e,n){var r=new At(n.width,n.height),o=r.width,a=r.height;if(o<=0||a<=0)throw new Error("resizeResults - invalid dimensions: "+JSON.stringify({width:o,height:a}));if(Array.isArray(e))return e.map((function(e){return t(e,{width:o,height:a})}));if(sn(e)){var i=e.detection.forSize(o,a),s=e.unshiftedLandmarks.forSize(i.box.width,i.box.height);return un(re(e,i),s)}return ne(e)?re(e,e.detection.forSize(o,a)):e instanceof Yt||e instanceof Gt?e.forSize(o,a):e})(e,{width:n,height:o}).forEach(e=>{const a=Vr(e.box),i=Kr(e.box,{width:n,height:o}),s=Kr(a,{width:n,height:o}),u=new r.DrawBox(i),c=new r.DrawBox(s,{boxColor:"yellow"});u.draw(t),c.draw(t)})};var $r=n(22),Yr=n.n($r);const Jr=Object(b.createRef)(),Qr=t=>{let{facesProperties:e,videoElement:n,debugMessages:r}=t;const{clientWidth:o,clientHeight:a}=n;return Object(b.useEffect)(()=>{const t=Jr&&Jr.current;t&&(t.width=o,t.height=a,Xr(t,e),((t,e)=>{const n=t.getContext("2d");n.font="15px Arial",n.fillStyle="purple",e.forEach((t,e)=>{const r=20*(e+1)+30;n.fillText(t,10,r)})})(t,r))}),x.a.createElement("canvas",{className:Yr.a.canvas,ref:Jr})};Qr.defaultProps={videoElement:{}},Qr.propType={facesProperties:z.a.any.isRequired,debugMessages:z.a.array.isRequired,videoElement:z.a.instanceOf(Element).isRequired};var Zr,to,eo=Qr,no=n(6),ro=n.n(no);function oo(){return(oo=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(t[r]=n[r])}return t}).apply(this,arguments)}var ao=function(t){return b.createElement("svg",oo({xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink",width:"1em",height:"1em",viewBox:"0 0 28 28"},t),Zr||(Zr=b.createElement("defs",null,b.createElement("path",{id:"ico-camera_svg__a",d:"M3.5 8a.5.5 0 00-.5.5V21c0 .552.449 1 1 1h20a1 1 0 001-1V8.5a.5.5 0 00-.5-.5h-8.524l-.126-.855C15.713 6.207 14.918 5.5 14 5.5s-1.713.707-1.85 1.645L12.024 8H3.5zM24 24H4c-1.655 0-3-1.346-3-3V8.5C1 7.122 2.122 6 3.5 6h6.896C10.97 4.529 12.393 3.5 14 3.5s3.03 1.029 3.604 2.5H24.5C25.878 6 27 7.122 27 8.5V21c0 1.654-1.346 3-3 3zM6.5 10h-2a.5.5 0 000 1h2a.5.5 0 000-1zm7.5 1.5c-1.93 0-3.5 1.57-3.5 3.5s1.57 3.5 3.5 3.5 3.5-1.57 3.5-3.5-1.57-3.5-3.5-3.5zm0 9A5.506 5.506 0 018.5 15c0-3.033 2.467-5.5 5.5-5.5 3.032 0 5.5 2.467 5.5 5.5 0 3.032-2.468 5.5-5.5 5.5z"}))),to||(to=b.createElement("use",{fill:"#F0F",xlinkHref:"#ico-camera_svg__a",fillRule:"evenodd"})))};const io={ALWAYS:"always",AUTO:"auto",NEVER:"never"},so=[3,2,1],uo=t=>{let{action:e,countdownMode:n}=t;const r=Object(b.useRef)(),[o,a]=Object(b.useState)(so.length),i=()=>{clearInterval(r.current)},s=()=>{0===o?(i(),e()):a(t=>t-1)},u=()=>{r.current=setInterval(s,1e3)},c=()=>{switch(n){case io.AUTO:window.innerWidth>=628?u():e();break;case io.ALWAYS:u();break;case io.NEVER:default:e()}};Object(b.useEffect)(()=>(c(),i),[n,o]);const l=t=>o===t?ro.a.activeCounter:ro.a.inactiveCounter;return n===io.NEVER?null:x.a.createElement("div",{className:ro.a.container},so.map(t=>x.a.createElement("span",{key:t,className:l(t)},t)),x.a.createElement("span",{className:l(0)},x.a.createElement(ao,{className:0===o?ro.a.activeIcon:ro.a.inactiveIcon})))};uo.defaultProps={countdownMode:"never"},uo.propTypes={action:z.a.func.isRequired,countdownMode:z.a.oneOf(Object.values(io))};var co=uo,lo=n(23),fo=n.n(lo),ho=n(24),po=n.n(ho);function vo(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}const mo={PNG:"png",JPEG:"jpeg"};class go extends b.Component{constructor(t){super(t),vo(this,"webcamRef",x.a.createRef()),vo(this,"handleVideoPlaying",()=>{const{onVideoPlaying:t}=this.props;t();const{videoWidth:e,videoHeight:n}=this.webcamRef.current.video;this.setState({videoWidth:e,videoHeight:n})}),vo(this,"handleUserMedia",()=>{this.webcamRef.current.video.addEventListener("playing",this.handleVideoPlaying)}),vo(this,"handleUserMediaError",t=>{const{onError:e}=this.props,{name:n="",message:r=""}=t;[n,r].some(t=>t.toLowerCase().includes("constrain"))?e(o.OVERCONSTRAINED):e("NotAllowedError"!==n?o.GENERIC_CAMERA_ERROR:o.NO_CAMERA_PERMISSION)}),vo(this,"takePhoto",()=>this.webcamRef.current.getScreenshot()),this.state={videoHeight:null,videoWidth:null}}componentWillUnmount(){this.webcamRef.current.video.srcObject=null,this.webcamRef.current.video.removeEventListener("playing",this.handleVideoPlaying)}render(){const{videoWidth:t,videoHeight:e}=this.state,{widthMinConstraint:n,widthIdealConstraint:r,format:o,quality:a}=this.props;return x.a.createElement(fo.a,{ref:this.webcamRef,width:"100%",className:po.a.video,videoConstraints:{facingMode:"user",width:{min:n,ideal:r}},audio:!1,onUserMediaError:this.handleUserMediaError,onUserMedia:this.handleUserMedia,screenshotFormat:"image/"+o,screenshotQuality:a,minScreenshotWidth:t,minScreenshotHeight:e})}}go.defaultProps={widthMinConstraint:1024,widthIdealConstraint:1280,onError:()=>{}},go.propTypes={onVideoPlaying:z.a.func.isRequired,widthMinConstraint:z.a.number,widthIdealConstraint:z.a.number,format:z.a.oneOf(Object.values(mo)),onError:z.a.func,quality:z.a.oneOf(Object.values(y))};var yo=go;navigator.getUserMedia=navigator.getUserMedia||navigator.webkitGetUserMedia||navigator.mozGetUserMedia;const bo=async()=>navigator.mediaDevices?await new Promise(t=>{navigator.mediaDevices.enumerateDevices().then(e=>{const n=e.filter(t=>"videoinput"===t.kind);t(!!n.length)}).catch(e=>{t(!1)})})?void 0:o.NO_CAMERA:o.UNSUPPORTED_BROWSER,xo={DETECTIONS_COUNT:0},wo="INIT_MODEL_DURATION",Eo="INIT_DETECTION_DURATION",Co="AVERAGE_DETECTION_DURATION",_o="DETECTIONS_COUNT",ko="FACES_COUNT",Ro="FACE_SCORE",Io="BOX_SIZE",So="RELATIVE_BOX",Ao="CENTERING",Oo="IS_STABLE_INDEX",To="BRIGHTNESS_DETECTION_DURATION",Do="BRIGHTNESS_VALUE",No=[ko,Ro,Io,So,Ao,Oo,To,Do],Fo=t=>xo[t],Mo=t=>{let{key:e,value:n}=t;xo[e]=n},Po=async t=>{const e=performance.now();return{result:await t(),duration:performance.now()-e}},Bo=t=>{const e=(t=>{let{previousAverage:e=0,count:n=0,newValue:r}=t;return(e*n+r)/(n+1)})({previousAverage:Fo(Co),count:Fo(_o),newValue:t});Mo({key:Co,value:e}),xo[_o]++},Lo=new or({inputSize:320,scoreThreshold:.6}),Wo=async t=>{try{const{duration:e}=await Po(async()=>Cr.tinyFaceDetector.loadFromUri(t));return(t=>{Mo({key:wo,value:t})})(e),null}catch(e){return e}},Uo=async()=>{try{const{duration:t}=await Po(async()=>zr(document.createElement("canvas"),Lo));return(t=>{Mo({key:Eo,value:t})})(t),null}catch(t){return t}},jo={PORTRAIT:.65,LANDSCAPE:.6},zo=t=>Math.round(100*t)/100,Vo=(t,e)=>t?h:e?p:"";var Go=[t=>{let e="",n=!0;t.length||(e=s,n=!1);return{instructionCode:e,debugMessages:[{key:ko,value:t.length}],canContinueOtherChecks:n}},t=>{let e="";return t.length>1&&(e=u),{instructionCode:e,debugMessages:[]}},function(t){let{videoElement:e}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n="",r=!0;const o=[];if(e){const a=performance.now(),i=Gr(e,t[0].box),s=qr(i),u=performance.now();o.push({key:To,value:u-a}),o.push({key:Do,value:s.mean});const c=s.mean<=50,l=s.mean>=200;n=Vo(c,l),r=""===n}return{instructionCode:n,debugMessages:o,canContinueOtherChecks:r}},t=>{const[{score:e}]=t;return{instructionCode:"",debugMessages:[{key:Ro,value:""+zo(e)}]}},t=>{let e="";const[{imageWidth:n,imageHeight:r,box:o}]=t,a=o.x+o.width/2,i=o.y+o.height/2+-.15*o.height,u=n/2,c=r/2,l=.1*Math.min(n,r);(Math.abs(u-a)>l||Math.abs(c-i)>l)&&(e=s);const f=zo(a/n),h=zo(i/r);return{instructionCode:e,debugMessages:[{key:Ao,value:`x = ${f}; y = ${h}`}]}},t=>{let e="";const[{box:n}]=t;(n.width<200||n.height<200)&&(e=a);return{instructionCode:e,debugMessages:[{key:Io,value:`${zo(n.height)} x ${zo(n.width)}`}]}},function(t){let{isPortraitCamera:e=!1}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n="";const[{relativeBox:r}]=t,o=e?"width":"height",s=e?"PORTRAIT":"LANDSCAPE",u=jo[s],c=u+.08,l=u-.08;r[o]>c&&(n=i),r[o]<l&&(n=a);const f=zo(r[o]),h=[{key:So,value:`[${o}]: ${f}`}];return{instructionCode:n,debugMessages:h}}];const Ho=(t,e)=>{const n=Math.max(...t),r=Math.min(...t);return Number((n-r).toFixed(2))>e},qo=t=>[Ho(t.map(t=>t.x),.02),Ho(t.map(t=>t.y),.02),Ho(t.map(t=>t.size),.02)].some(Boolean);let Ko=[];const Xo=(t,e,n)=>{const r=t[0],o=qo(Ko),a=Ko.length===e;(!n||o||a)&&(Ko=[]),r&&(Ko=[...Ko,r])},$o=(t,e,n)=>!!n||!(t||!e),Yo=(t,e)=>{let n="";return t||e||(n=c),n},Jo=t=>t?null:{key:Oo,value:Ko.length},Qo=function(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const{captureMethod:n,numberOfChecks:r,isCurrentFaceValid:o}=e;Xo(t,r,o);const a=qo(Ko),i=Ko.length===r,s=n===v.MANUAL;return{isStable:$o(a,i,s),faceStableMessageCode:Yo(a,i),debugMessage:Jo(s)}},Zo=(t,e)=>{No.forEach(t=>{delete xo[t]});const{isSingleFaceValid:n,singleFaceMessageCode:r}=function(){const t=[];for(let n=0;n<Go.length;n++){const e=Go[n],{instructionCode:r,debugMessages:o,canContinueOtherChecks:a=!0}=e(...arguments);if(r&&t.push(r),o.forEach(t=>{Mo(t)}),!a)break}const e=!t.length;return{isSingleFaceValid:e,singleFaceMessageCode:t.length?t[0]:""}}(t,e),{isStable:o,faceStableMessageCode:a}=function(){const t=Qo(...arguments),{debugMessage:e}=t;return e&&Mo(e),t}(t,{...e,isCurrentFaceValid:n});return{isSingleFaceValid:n,isValid:n&&o,messageCode:r||a}},ta=t=>Object.entries(t).map(t=>{let[e,n]=t;return`${(t=>t.replace(/_/g," ").toLowerCase())(e)}: ${(t=>"number"==typeof t?Math.ceil(t):t)(n)}`});var ea=n(15),na=n.n(ea);const ra={[a]:x.a.createElement(W,{id:"move-closer-feedback-message"}),[i]:x.a.createElement(W,{id:"move-back-feedback-message"}),[s]:x.a.createElement(W,{id:"move-center-feedback-message"}),[u]:x.a.createElement(W,{id:"one-face-only-feedback-message"}),[c]:x.a.createElement(W,{id:"hold-still-feedback-message"}),[l]:x.a.createElement(W,{id:"camera-loading-feedback-message"}),[f]:x.a.createElement(W,{id:"face-scan-loading-feedback-message"}),[p]:x.a.createElement(W,{id:"image-too-bright-feedback-message"}),[h]:x.a.createElement(W,{id:"image-too-dark-feedback-message"})},oa=t=>{let{faceCaptureAssetsRootUrl:e,onSuccess:n,onError:r,showOverlay:a,widthIdealConstraint:i,widthMinConstraint:u,format:c,CustomButton:l,countdownMode:h,captureMethod:p,isDebug:d,imageType:g,qualityType:w}=t;const[E,C]=Object(b.useState)([]),[_,k]=Object(b.useState)([]),[R,I]=Object(b.useState)(!1),[S,A]=Object(b.useState)(!1),[O,T]=Object(b.useState)(!1),[D,N]=Object(b.useState)(ra.CAMERA_LOADING),[F,M]=Object(b.useState)(!1),[P,B]=Object(b.useState)(!1),L=Object(b.useRef)(null),W=Object(b.useRef)(),U=Object(b.useRef)(),j=Object(b.useRef)(S);j.current=S;const z=!P,V=P?v.MANUAL:p,G=V===v.MANUAL&&!R,H=L.current&&L.current.webcamRef.current.video,q=d&&H,K=H&&H.videoHeight>H.videoWidth,X=y[w],$=t=>{N(ra[t])},Y=async()=>{const t=await(async t=>{const{result:e,duration:n}=await Po(async()=>zr(t,Lo));return Bo(n),e})(H),{isSingleFaceValid:e,isValid:n,messageCode:r}=Zo(t,{isPortraitCamera:K,captureMethod:V,numberOfChecks:4,videoElement:H}),o=ta(xo);return k(o),C(t),M(e),{isValid:n,messageCode:r,bbox:Array.isArray(t)&&t.length>0?t[0].box:{}}},J=t=>{const e=L.current.takePhoto();g===m.ORIGINAL?K?($(""),n({image:e})):(async(t,e)=>{const n=document.createElement("canvas"),r=n.getContext("2d"),{relativeEdgeCropping:o,format:a,qualityValue:i}=e;return new Promise(e=>{const s=new Image;s.onload=function(){const t=Math.ceil(o*s.width);n.width=s.width-2*t,n.height=s.height,r.drawImage(s,t,0,n.width,n.height,0,0,n.width,n.height),e({croppedImg:n.toDataURL("image/"+a,i)})},s.src=t})})(e,{relativeEdgeCropping:.12,format:c,qualityValue:X}).then(t=>{let{croppedImg:e}=t;$(""),n({image:e})}).catch(r):(async(t,e)=>{const n=document.createElement("canvas"),r=n.getContext("2d"),{bbox:o,relativeMarginCropping:a,format:i,qualityValue:s,isPortraitCamera:u}=e;return new Promise(e=>{const c=new Image;c.onload=function(){const{topLeftXCoord:t,topLeftYCoord:l,width:f,height:h}=((t,e,n)=>{const r=2*t,o=e.x-t*e.width<0?0:e.x-t*e.width,a=e.y-r*e.height<0?0:e.y-r*e.height;let i=0!==o?e.width+e.width*(2*t):e.width+e.x+e.width*t,s=0!==a?e.height+e.height*(t+r):e.height+e.y+e.height*t;return s=s+a>n.imageHeight?n.imageHeight-a:s,i=i+o>n.imageWidth?n.imageWidth-o:i,{topLeftXCoord:o,topLeftYCoord:a,width:i,height:s}})(a,o||((t,e)=>{const n=e?.45:.7,r=e?.25:.1;return{x:.5*t.width-n*t.height/2,y:r*t.height,height:n*t.height,width:n*t.height}})(c,u),{imageHeight:c.height,imageWidth:c.width});n.width=f,n.height=h,r.drawImage(c,t,l,f,h,0,0,f,h),e({croppedImg:n.toDataURL("image/"+i,s)})},c.src=t})})(e,{bbox:t,relativeMarginCropping:.3,format:c,qualityValue:X,isPortraitCamera:K}).then(t=>{let{croppedImg:e}=t;$(""),n({image:e})}).catch(r)},Q=async()=>{const t=z&&await Wo(e);setTimeout(()=>{j.current||B(!0)},5e3);const n=z&&!t&&await Uo();t||n?r(o.FACE_DETECTION_INIT_ERROR):(A(!0),$(s))};return Object(b.useEffect)(()=>{(async()=>{const t=await bo();t&&r(t)})(),Q()},[]),Object(b.useEffect)(()=>{if(O&&S&&V===v.AUTO){const t=async()=>{const{isValid:e,messageCode:n,bbox:r}=await Y();e?J(r):($(n),W.current=setTimeout(t,200))};U.current=setTimeout(t,1e3)}return()=>(clearTimeout(U.current),void clearTimeout(W.current))},[O,S,V]),x.a.createElement("div",{className:na.a.moduleContainer,"data-qa":"face-capture"},x.a.createElement("div",{className:na.a.cameraContainer},x.a.createElement(yo,{ref:L,widthIdealConstraint:i,widthMinConstraint:u,format:c,quality:X,onVideoPlaying:()=>{T(!0),$(S?s:f)},onError:r}),a&&x.a.createElement(st,{isPortraitCamera:K,isSuccess:F}),D&&x.a.createElement(pt,{isPortraitCamera:K,message:D}),q&&x.a.createElement(eo,{facesProperties:E,debugMessages:_,videoElement:H})),R&&x.a.createElement(co,{action:async()=>{let t;if(I(!1),z){const{isValid:e,messageCode:n,bbox:r}=await Y();if(t=r,!e)return void $(n)}J(t)},countdownMode:h}),G&&x.a.createElement(kt,{CustomButton:l,onClick:()=>I(!0),disabled:!O||!S}))};oa.defaultProps={faceCaptureAssetsRootUrl:"assets/face-capture/",isDebug:!1,captureMethod:v.MANUAL,onError:()=>{},showOverlay:!0,format:mo.JPEG,countdownMode:io.NEVER,imageType:m.ORIGINAL,qualityType:g.HIGH},oa.propTypes={faceCaptureAssetsRootUrl:z.a.string,captureMethod:z.a.oneOf(Object.values(v)),onSuccess:z.a.func.isRequired,onError:z.a.func,showOverlay:z.a.bool,widthIdealConstraint:z.a.number,widthMinConstraint:z.a.number,format:z.a.oneOf(Object.values(mo)),CustomButton:z.a.func,countdownMode:z.a.oneOf(Object.values(io)),isDebug:z.a.bool,imageType:z.a.oneOf(Object.values(m)),qualityType:z.a.oneOf(Object.values(g))};var aa=oa,ia=n(16),sa=n.n(ia),ua=n(17),ca=n.n(ua),la=n(54),fa=n.n(la),ha=n(55),pa=n.n(ha),da=n(18),va=n.n(da),ma=n(19),ga=n.n(ma),ya=function(t){return"string"==typeof t},ba=function(t){return"function"==typeof t},xa=new Map,wa=new Map;function Ea(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];return function(r){if(ya(r)&&(r=new Date(r)),n){var o=_a(t,e),a=wa.get(o);if(a)return a.format(r);var i=new Intl.DateTimeFormat(t,e);return wa.set(o,i),i.format(r)}return new Intl.DateTimeFormat(t,e).format(r)}}function Ca(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];return function(r){if(n){var o=_a(t,e),a=xa.get(o);if(a)return a.format(r);var i=new Intl.NumberFormat(t,e);return xa.set(o,i),i.format(r)}return new Intl.NumberFormat(t,e).format(r)}}function _a(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=Array.isArray(t)?t.sort().join("-"):t;return"".concat(n,"-").concat(JSON.stringify(e))}Object.freeze({__proto__:null,date:Ea,number:Ca});var ka=/\\u[a-fA-F0-9]{4}|\\x[a-fA-F0-9]{2}/g;function Ra(t){var e=t.locale,n=t.locales,r=t.values,o=t.formats,a=function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{plurals:void 0},r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};e=e||t;var o=n.plurals,a=function(t){return ya(t)?r[t]||{style:t}:t},i=function(t,n){return function(r){var o=ba(n)?n(r):n,a=Array.isArray(o)?o:[o],i=Ca(e)(t);return a.map((function(t){return ya(t)?t.replace("#",i):t}))}};return{plural:function(t,e){var n=e.offset,r=void 0===n?0:n,a=ga()(e,["offset"]),s=a[t]||a[null==o?void 0:o(t-r)]||a.other;return i(t-r,s)},selectordinal:function(t,e){var n=e.offset,r=void 0===n?0:n,a=ga()(e,["offset"]),s=a[t]||a[null==o?void 0:o(t-r,!0)]||a.other;return i(t-r,s)},select:function(t,e){return e[t]||e.other},number:function(t,n){return Ca(e,a(n))(t)},date:function(t,n){return Ea(e,a(n))(t)},undefined:function(t){return t}}}(e,n,t.localeData,o);return function t(e,n,o){var i=r[e],s=a[n](i,o),u=ba(s)?s(t):s;return Array.isArray(u)?u.join(""):u}}function Ia(t,e,n,r){return function(o){var a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=Ra({locale:e,locales:n,localeData:r,formats:a,values:o}),s=function t(e){return Array.isArray(e)?e.reduce((function(e,n){if(ya(n))return e+n;var r=_()(n,3),o=r[0],a=r[1],s=r[2],u={};null==s||ya(s)?u=s:Object.keys(s).forEach((function(e){u[e]=t(s[e])}));var c=i(o,a,u);return null==c?e:e+c}),""):e},u=s(t);return ya(u)&&ka.test(u)?JSON.parse('"'.concat(u.trim(),'"')):ya(u)?u.trim():u}}var Sa=function(t){fa()(o,t);var e,n,r=(e=o,n=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}(),function(){var t,r=va()(e);if(n){var o=va()(this).constructor;t=Reflect.construct(r,arguments,o)}else t=r.apply(this,arguments);return pa()(this,t)});function o(t){var e;return sa()(this,o),(e=r.call(this))._messages={},e._localeData={},null!=t.missing&&(e._missing=t.missing),null!=t.messages&&e.load(t.messages),null!=t.localeData&&e.loadLocaleData(t.localeData),null==t.locale&&null==t.locales||e.activate(t.locale,t.locales),e}return ca()(o,[{key:"_loadLocaleData",value:function(t,e){null==this._localeData[t]?this._localeData[t]=e:Object.assign(this._localeData[t],e)}},{key:"loadLocaleData",value:function(t,e){var n=this;null!=e?this._loadLocaleData(t,e):Object.keys(t).forEach((function(e){return n._loadLocaleData(e,t[e])})),this.emit("change")}},{key:"_load",value:function(t,e){null==this._messages[t]?this._messages[t]=e:Object.assign(this._messages[t],e)}},{key:"load",value:function(t,e){var n=this;null!=e?this._load(t,e):Object.keys(t).forEach((function(e){return n._load(e,t[e])})),this.emit("change")}},{key:"activate",value:function(t,e){this._locale=t,this._locales=e,this.emit("change")}},{key:"_",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=n.message,o=n.formats,a=n.context;ya(t)||(e=t.values||e,r=t.message,a=t.context,t=t.id);var i,s=!a&&!this.messages[t],u=a&&!this.messages[a][t],c=u||s,l=this._missing;return l&&c?ba(l)?l(this.locale,t,a):l:(c&&this.emit("missing",{id:t,context:a,locale:this._locale}),i=a&&!u?this.messages[a][t]||r||t:this.messages[t]||r||t,ya(i)&&ka.test(i)?JSON.parse('"'.concat(i,'"')):ya(i)?i:Ia(i,this.locale,this.locales,this.localeData)(e,o))}},{key:"date",value:function(t,e){return Ea(this.locales||this.locale,e)(t)}},{key:"number",value:function(t,e){return Ca(this.locales||this.locale,e)(t)}},{key:"locale",get:function(){return this._locale}},{key:"locales",get:function(){return this._locales}},{key:"messages",get:function(){var t;return null!==(t=this._messages[this._locale])&&void 0!==t?t:{}}},{key:"localeData",get:function(){var t;return null!==(t=this._localeData[this._locale])&&void 0!==t?t:{}}}]),o}(function(){function t(){sa()(this,t),this._events={}}return ca()(t,[{key:"on",value:function(t,e){var n=this;return this._hasEvent(t)||(this._events[t]=[]),this._events[t].push(e),function(){return n.removeListener(t,e)}}},{key:"removeListener",value:function(t,e){if(this._hasEvent(t)){var n=this._events[t].indexOf(e);~n&&this._events[t].splice(n,1)}}},{key:"emit",value:function(t){for(var e=this,n=arguments.length,r=new Array(n>1?n-1:0),o=1;o<n;o++)r[o-1]=arguments[o];this._hasEvent(t)&&this._events[t].map((function(t){return t.apply(e,r)}))}},{key:"_hasEvent",value:function(t){return Array.isArray(this._events[t])}}]),t}());function Aa(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return new Sa(t)}const Oa=Aa();var Ta=n(25),Da=n(26),Na=n(27),Fa=n(28),Ma=n(29),Pa=n(30),Ba=n(31),La=n(32),Wa=n(33),Ua=n(34),ja=n(35),za=n(36),Va=n(37),Ga=n(38),Ha=n(39),qa=n(40),Ka=n(41),Xa=n(42),$a=n(43),Ya=n(44),Ja=n(45),Qa=n(46),Za=n(47),ti=n(48),ei=n(49),ni=n(50),ri=n(51),oi=n(52),ai=n(53),ii={[d.AR]:oi.messages,[d.CS]:Da.messages,[d.DA]:Na.messages,[d.DE]:Fa.messages,[d.EN]:Ta.messages,[d.ES]:Ma.messages,[d.ES_419]:Pa.messages,[d.ET]:Qa.messages,[d.FI]:Ba.messages,[d.FR]:La.messages,[d.HI]:Wa.messages,[d.ID]:ni.messages,[d.IT]:Ua.messages,[d.JA]:ja.messages,[d.KO]:ri.messages,[d.LT]:ti.messages,[d.LV]:ai.messages,[d.MS]:ei.messages,[d.NB]:Va.messages,[d.NL]:za.messages,[d.PL]:Ga.messages,[d.PT]:Ha.messages,[d.RO]:qa.messages,[d.RU]:Ka.messages,[d.SV]:Xa.messages,[d.TH]:$a.messages,[d.TR]:Ya.messages,[d.UK]:Za.messages,[d.VI]:Ja.messages};const si=d.EN;function ui(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";const[e,n=""]=t.split("-");return{language:e,region:n}}function ci(t){const{language:e,region:n}=ui(t);return[e.toLowerCase(),n.toUpperCase()].filter(Boolean).join("-")}const li=t=>{let{language:e,children:n}=t;const r=function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";const e=ci(t);if(e&&Object.keys(ii).includes(e))return e;const{language:n}=ui(e);if(n&&Object.keys(ii).includes(n))return n;const r=Object.keys(ii).find(t=>ui(t).language===n);return r||si}(e);return Oa.load(r,(t=>ii[t])(r)),Oa.activate(r),x.a.createElement(A,{i18n:Oa},n)};li.defaultProps={language:si},li.propTypes={language:z.a.oneOf(Object.values(d)),children:z.a.node.isRequired};var fi=li;var hi=t=>{const{language:e}=t;return x.a.createElement(E,{onError:t.onError},x.a.createElement(fi,{language:e},x.a.createElement(aa,t)))}}]);
2
+ (()=>{var e={4420:(e,t,n)=>{e.exports=function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=3)}([function(e,t){e.exports=n(9497)},function(e,t){e.exports=n(5697)},function(e,t){e.exports=n(4184)},function(e,t,n){"use strict";n.r(t),n.d(t,"lazyIcon",(function(){return p.a}));var r=n(0),o=n.n(r),a=n(1),i=n.n(a),s=n(2),u=n.n(s);function c(){return c=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},c.apply(this,arguments)}function l(e){var t=c({},e);return o.a.createElement("span",c({"data-qa":"yoti-icon-placeholder"},t))}function f(e){var t=e.component,n=e.size,a=e.color,i=e.className,s=e.onClick,f=t,h=function(e){return{className:u()(e,i),style:{fontSize:n,color:a},onClick:s}};return o.a.createElement(r.Suspense,{fallback:o.a.createElement(l,h("yoti-icon-placeholder"))},o.a.createElement(f,c({"data-qa":"icon"},h("yoti-icon"))))}n(8),f.defaultProps={size:null,color:null,className:"",onClick:function(){}},f.propTypes={component:i.a.oneOfType([i.a.func,i.a.object]).isRequired,size:i.a.string,color:i.a.string,className:i.a.string,onClick:i.a.func};var h=f,p=n(7);t.default=h},,,,function(e,t,n){"use strict";n.d(t,"a",(function(){return o}));var r=n(0),o=(n(8),function(e,t){return Object(r.lazy)((function(){return e.then((function(e){return{default:e[t]}}))}))})},function(e,t,n){}])},2797:(e,t,n)=>{e.exports=function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=12)}([function(e,t){e.exports=n(9497)},,,,,,,,,,,,function(e,t,n){"use strict";n.r(t),n.d(t,"activitySelected",(function(){return u})),n.d(t,"activity",(function(){return p})),n.d(t,"add",(function(){return y})),n.d(t,"ageEstimation",(function(){return _})),n.d(t,"applicationsSelected",(function(){return R})),n.d(t,"applications",(function(){return D})),n.d(t,"archive",(function(){return j})),n.d(t,"arrowDown",(function(){return V})),n.d(t,"arrowLeft",(function(){return K})),n.d(t,"arrowRight",(function(){return Q})),n.d(t,"arrowUp",(function(){return oe})),n.d(t,"attachment",(function(){return ce})),n.d(t,"calendar",(function(){return he.a})),n.d(t,"camera",(function(){return ve})),n.d(t,"checkbox",(function(){return we})),n.d(t,"chevronDown",(function(){return _e.a})),n.d(t,"chevronLeft",(function(){return ke.a})),n.d(t,"chevronRight",(function(){return Oe.a})),n.d(t,"chevronUp",(function(){return Re})),n.d(t,"clear",(function(){return Pe.a})),n.d(t,"clock",(function(){return Ne})),n.d(t,"cloudDownload",(function(){return Le})),n.d(t,"copy",(function(){return Ue})),n.d(t,"darker",(function(){return Xe.a})),n.d(t,"bin",(function(){return Ye})),n.d(t,"discoverSelected",(function(){return tt})),n.d(t,"discover",(function(){return it})),n.d(t,"dislike",(function(){return ft})),n.d(t,"dismiss",(function(){return mt})),n.d(t,"docAardhaar",(function(){return xt})),n.d(t,"docDrivingLicense",(function(){return Ct})),n.d(t,"docGeneric",(function(){return Pt})),n.d(t,"docNationalId",(function(){return Ft})),n.d(t,"docPassCard",(function(){return Ht})),n.d(t,"docPassport",(function(){return Gt})),n.d(t,"documentImage",(function(){return Jt})),n.d(t,"document",(function(){return nn})),n.d(t,"prohibited",(function(){return un})),n.d(t,"download",(function(){return pn})),n.d(t,"edit",(function(){return yn})),n.d(t,"email",(function(){return _n})),n.d(t,"externalLink",(function(){return Cn.a})),n.d(t,"face",(function(){return Sn})),n.d(t,"faceVerified",(function(){return Dn})),n.d(t,"favourite",(function(){return Bn})),n.d(t,"favourited",(function(){return Hn})),n.d(t,"feedback",(function(){return Gn})),n.d(t,"filter",(function(){return Jn})),n.d(t,"flag",(function(){return nr})),n.d(t,"gender",(function(){return sr})),n.d(t,"goBack",(function(){return hr})),n.d(t,"help",(function(){return gr})),n.d(t,"hide",(function(){return wr.a})),n.d(t,"house",(function(){return _r})),n.d(t,"information",(function(){return Cr.a})),n.d(t,"lighter",(function(){return Ir.a})),n.d(t,"like",(function(){return Ar})),n.d(t,"listHorizontal",(function(){return Mr})),n.d(t,"listVertical",(function(){return zr})),n.d(t,"loadingSpinner",(function(){return Vr.a})),n.d(t,"lockLocked",(function(){return Gr})),n.d(t,"lockUnlocked",(function(){return Jr})),n.d(t,"logOut",(function(){return no})),n.d(t,"mapPin",(function(){return so})),n.d(t,"megaphone",(function(){return ho})),n.d(t,"menu",(function(){return yo})),n.d(t,"microphone",(function(){return _o})),n.d(t,"moreSelected",(function(){return Ro})),n.d(t,"more",(function(){return Do})),n.d(t,"myData",(function(){return jo})),n.d(t,"name",(function(){return Vo})),n.d(t,"nfcChip",(function(){return Ko})),n.d(t,"officeBuilding",(function(){return Qo})),n.d(t,"pagesSelected",(function(){return oa})),n.d(t,"pages",(function(){return ca})),n.d(t,"paymentCard",(function(){return da})),n.d(t,"phone",(function(){return ba})),n.d(t,"pin",(function(){return ka})),n.d(t,"preview",(function(){return Ra})),n.d(t,"profileSelected",(function(){return Da})),n.d(t,"profile",(function(){return ja})),n.d(t,"receive",(function(){return Va})),n.d(t,"retry",(function(){return Ka})),n.d(t,"rotateAnticlockwise",(function(){return Ja.a})),n.d(t,"rotateClockwise",(function(){return Za.a})),n.d(t,"ruid",(function(){return ti})),n.d(t,"scanQr",(function(){return ii})),n.d(t,"search",(function(){return fi})),n.d(t,"send",(function(){return mi})),n.d(t,"settings",(function(){return xi})),n.d(t,"show",(function(){return ki.a})),n.d(t,"signature",(function(){return Ii})),n.d(t,"slightlySmilingFace",(function(){return Ti})),n.d(t,"sort",(function(){return Bi})),n.d(t,"textInput",(function(){return Wi})),n.d(t,"tick",(function(){return qi.a})),n.d(t,"upload",(function(){return Ki})),n.d(t,"verified",(function(){return Qi})),n.d(t,"video",(function(){return os})),n.d(t,"yotiIcon",(function(){return cs})),n.d(t,"zoomIn",(function(){return ls.a})),n.d(t,"zoomOut",(function(){return fs.a}));var r,o,a=n(0),i=["title","titleId"];function s(){return s=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},s.apply(this,arguments)}function u(e){var t=e.title,n=e.titleId,u=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,i);return a.createElement("svg",s({xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink",width:"1em",height:"1em",viewBox:"0 0 28 28","aria-labelledby":n},u),t?a.createElement("title",{id:n},t):null,r||(r=a.createElement("defs",null,a.createElement("path",{id:"ico-activity-selected_svg__a",d:"M8.206 9.984A6.186 6.186 0 0114.141 5.5a.5.5 0 010 1 5.183 5.183 0 00-4.973 3.755.5.5 0 11-.962-.271zM14.141 25c-1.103 0-2-.897-2-2h4c0 1.103-.897 2-2 2zM3.396 21.896c.845-8.109 1.31-12.363 1.383-12.645A9.661 9.661 0 0114.141 2a9.662 9.662 0 019.362 7.251c.072.282.538 4.537 1.382 12.646L25 23h-6.86c0 2.206-1.794 4-4 4-2.205 0-4-1.794-4-4H3.282l.115-1.104z"}))),o||(o=a.createElement("use",{fill:"currentColor",xlinkHref:"#ico-activity-selected_svg__a",fillRule:"evenodd"})))}var c,l,f=["title","titleId"];function h(){return h=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},h.apply(this,arguments)}function p(e){var t=e.title,n=e.titleId,r=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,f);return a.createElement("svg",h({xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink",width:"1em",height:"1em",viewBox:"0 0 28 28","aria-labelledby":n},r),t?a.createElement("title",{id:n},t):null,c||(c=a.createElement("defs",null,a.createElement("path",{id:"ico-activity_svg__a",d:"M8.066 9.984A6.183 6.183 0 0114 5.5a.5.5 0 110 1 5.184 5.184 0 00-4.973 3.755.498.498 0 11-.961-.271zM22.64 21H5.36c.48-4.596 1.128-10.685 1.223-11.281A7.66 7.66 0 0114 4c3.49 0 6.535 2.35 7.417 5.719.095.596.742 6.685 1.223 11.281zM14 25c-1.103 0-2-.897-2-2h4c0 1.103-.897 2-2 2zM3.255 21.896C4.1 13.787 4.566 9.534 4.638 9.252A9.662 9.662 0 0114 2a9.661 9.661 0 019.362 7.251c.073.282.538 4.537 1.383 12.646L24.858 23H18c0 2.206-1.794 4-4 4s-4-1.794-4-4H3.14l.115-1.104z"}))),l||(l=a.createElement("use",{fill:"currentColor",xlinkHref:"#ico-activity_svg__a",fillRule:"evenodd"})))}var d,v,m=["title","titleId"];function g(){return g=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},g.apply(this,arguments)}function y(e){var t=e.title,n=e.titleId,r=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,m);return a.createElement("svg",g({xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink",width:"1em",height:"1em",viewBox:"0 0 28 28","aria-labelledby":n},r),t?a.createElement("title",{id:n},t):null,d||(d=a.createElement("defs",null,a.createElement("path",{id:"ico-add_svg__a",d:"M15 5v8h8v2h-8v8h-2v-8H5v-2h8V5h2z"}))),v||(v=a.createElement("use",{fill:"currentColor",fillRule:"nonzero",xlinkHref:"#ico-add_svg__a"})))}var b,w,x=["title","titleId"];function E(){return E=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},E.apply(this,arguments)}function _(e){var t=e.title,n=e.titleId,r=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,x);return a.createElement("svg",E({xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink",width:"1em",height:"1em",viewBox:"0 0 28 28","aria-labelledby":n},r),t?a.createElement("title",{id:n},t):null,b||(b=a.createElement("defs",null,a.createElement("path",{id:"ico-age-estimation_svg__a",d:"M10.674 7.734a9.43 9.43 0 017.278 0 9.303 9.303 0 012.972 1.999 9.311 9.311 0 012.003 10.233 9.3 9.3 0 01-2.003 2.966c-.708.706-1.42 1.25-2.173 1.658l3.532.801-.442 1.95-3.685-.835a1.95 1.95 0 01-1.504-1.898c0-.728.402-1.389 1.049-1.725.626-.325 1.201-.759 1.81-1.367a7.279 7.279 0 001.574-2.33 7.25 7.25 0 00.578-2.854 7.306 7.306 0 00-2.152-5.184 7.34 7.34 0 00-2.337-1.572 7.429 7.429 0 00-5.722 0 7.347 7.347 0 00-2.336 1.572 7.313 7.313 0 000 10.369c.609.607 1.184 1.041 1.81 1.366a1.947 1.947 0 01-.438 3.619l-3.702.84-.442-1.951 3.532-.801c-.754-.409-1.465-.952-2.172-1.658A9.282 9.282 0 015.7 19.966a9.253 9.253 0 01-.736-3.634 9.295 9.295 0 012.739-6.599 9.33 9.33 0 012.971-2zm1.593 11.845l.09.016c.92.248 2.994.248 3.913 0a.5.5 0 11.261.965c-.548.148-1.357.233-2.218.233-.86 0-1.669-.085-2.217-.233a.5.5 0 11.26-.965zm1.984-5.623a.5.5 0 01.558.434l.38 3.036a.503.503 0 01-.121.393.504.504 0 01-.375.169h-.76a.5.5 0 010-1h.193l-.309-2.474a.5.5 0 01.434-.558zm-2.974.116a.76.76 0 110 1.52.76.76 0 010-1.52zm6.072 0a.76.76 0 11-.759.759.76.76 0 01.76-.759zM14.313 1c4.007 0 7.774 1.56 10.606 4.394l.708.707-2.828 2.828-1.415-1.414 1.388-1.387a12.87 12.87 0 00-7.458-3.084V5h-2V3.044a12.876 12.876 0 00-7.459 3.084l1.387 1.387-1.414 1.414L3 6.1l.707-.706A14.899 14.899 0 0114.314 1z"}))),w||(w=a.createElement("use",{fill:"currentColor",fillRule:"nonzero",xlinkHref:"#ico-age-estimation_svg__a"})))}var k,O,C=["title","titleId"];function I(){return I=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},I.apply(this,arguments)}function R(e){var t=e.title,n=e.titleId,r=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,C);return a.createElement("svg",I({xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink",width:"1em",height:"1em",viewBox:"0 0 28 28","aria-labelledby":n},r),t?a.createElement("title",{id:n},t):null,k||(k=a.createElement("defs",null,a.createElement("path",{id:"ico-applications-selected_svg__a",d:"M19 15h-4v4h-1.595A5.51 5.51 0 009 14.595V13h4V9.003h2V13h4v2zM8 23.5a3.5 3.5 0 110-7 3.5 3.5 0 010 7zM17 11h6V5h-6v6zm8 2V3H15v4.003h-2V3H3v10h4v1.595C4.444 15.069 2.5 17.31 2.5 20c0 3.032 2.468 5.5 5.5 5.5 2.691 0 4.932-1.944 5.405-4.5H15v4h10V15h-4v-2h4z"}))),O||(O=a.createElement("use",{fill:"currentColor",xlinkHref:"#ico-applications-selected_svg__a",fillRule:"evenodd"})))}var S,A,P=["title","titleId"];function T(){return T=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},T.apply(this,arguments)}function D(e){var t=e.title,n=e.titleId,r=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,P);return a.createElement("svg",T({xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink",width:"1em",height:"1em",viewBox:"0 0 28 28","aria-labelledby":n},r),t?a.createElement("title",{id:n},t):null,S||(S=a.createElement("defs",null,a.createElement("path",{id:"ico-applications_svg__a",d:"M19 15h-4v4h-1.595A5.51 5.51 0 009 14.595V13h4V9.003h2V13h4v2zm-2 8h6v-6h-6v6zm-9 .5a3.5 3.5 0 110-7 3.5 3.5 0 010 7zM5 11h6V5H5v6zm12 0h6V5h-6v6zm8 2V3H15v4.003h-2V3H3v10h4v1.595C4.444 15.069 2.5 17.31 2.5 20c0 3.032 2.468 5.5 5.5 5.5 2.691 0 4.932-1.944 5.405-4.5H15v4h10V15h-4v-2h4z"}))),A||(A=a.createElement("use",{fill:"currentColor",xlinkHref:"#ico-applications_svg__a",fillRule:"evenodd"})))}var N,M,F=["title","titleId"];function B(){return B=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},B.apply(this,arguments)}function j(e){var t=e.title,n=e.titleId,r=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,F);return a.createElement("svg",B({xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink",width:"1em",height:"1em",viewBox:"0 0 28 28","aria-labelledby":n},r),t?a.createElement("title",{id:n},t):null,N||(N=a.createElement("defs",null,a.createElement("path",{id:"ico-archive_svg__a",d:"M4 6.997h20v-2H4v2zm18 2.005H6v13c0 .552.449 1 1 1h14a1 1 0 001-1v-13zm4 0h-2v13c0 1.655-1.346 3-3 3H7c-1.654 0-3-1.345-3-3v-13H2V2.997h24v6.005zm-15 2.505a.5.5 0 01.5-.5h5a.5.5 0 010 1h-5a.5.5 0 01-.5-.5z"}))),M||(M=a.createElement("use",{fill:"currentColor",xlinkHref:"#ico-archive_svg__a",fillRule:"evenodd"})))}var L,z,H=["title","titleId"];function W(){return W=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},W.apply(this,arguments)}function V(e){var t=e.title,n=e.titleId,r=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,H);return a.createElement("svg",W({xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink",width:"1em",height:"1em",viewBox:"0 0 28 28","aria-labelledby":n},r),t?a.createElement("title",{id:n},t):null,L||(L=a.createElement("defs",null,a.createElement("path",{id:"ico-arrow-down_svg__a",d:"M9.76 5.516l-6.9 8.624 6.9 8.625 1.561-1.25-5.1-6.375H25.14v-2H6.221l5.1-6.376z"}))),z||(z=a.createElement("use",{fill:"currentColor",transform:"matrix(0 -1 -1 0 28.14 28.14)",xlinkHref:"#ico-arrow-down_svg__a",fillRule:"evenodd"})))}var U,q,G=["title","titleId"];function X(){return X=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},X.apply(this,arguments)}function K(e){var t=e.title,n=e.titleId,r=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,G);return a.createElement("svg",X({xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink",width:"1em",height:"1em",viewBox:"0 0 28 28","aria-labelledby":n},r),t?a.createElement("title",{id:n},t):null,U||(U=a.createElement("defs",null,a.createElement("path",{id:"ico-arrow-left_svg__a",d:"M9.62 5.375L2.72 14l6.9 8.625 1.561-1.25L6.082 15H25v-2H6.081l5.1-6.376z"}))),q||(q=a.createElement("use",{fill:"currentColor",xlinkHref:"#ico-arrow-left_svg__a",fillRule:"evenodd"})))}var $,Y,J=["title","titleId"];function Z(){return Z=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Z.apply(this,arguments)}function Q(e){var t=e.title,n=e.titleId,r=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,J);return a.createElement("svg",Z({xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink",width:"1em",height:"1em",viewBox:"0 0 28 28","aria-labelledby":n},r),t?a.createElement("title",{id:n},t):null,$||($=a.createElement("defs",null,a.createElement("path",{id:"ico-arrow-right_svg__a",d:"M9.9 5.375L3 14l6.9 8.625 1.561-1.25L6.362 15H25.28v-2H6.361l5.1-6.376z"}))),Y||(Y=a.createElement("use",{fill:"currentColor",transform:"matrix(-1 0 0 1 28.28 0)",xlinkHref:"#ico-arrow-right_svg__a",fillRule:"evenodd"})))}var ee,te,ne=["title","titleId"];function re(){return re=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},re.apply(this,arguments)}function oe(e){var t=e.title,n=e.titleId,r=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,ne);return a.createElement("svg",re({xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink",width:"1em",height:"1em",viewBox:"0 0 28 28","aria-labelledby":n},r),t?a.createElement("title",{id:n},t):null,ee||(ee=a.createElement("defs",null,a.createElement("path",{id:"ico-arrow-up_svg__a",d:"M9.76 5.266l-6.9 8.624 6.9 8.625 1.561-1.25-5.1-6.375H25.14v-2H6.221l5.1-6.376z"}))),te||(te=a.createElement("use",{fill:"currentColor",transform:"rotate(90 14 13.89)",xlinkHref:"#ico-arrow-up_svg__a",fillRule:"evenodd"})))}var ae,ie,se=["title","titleId"];function ue(){return ue=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},ue.apply(this,arguments)}function ce(e){var t=e.title,n=e.titleId,r=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,se);return a.createElement("svg",ue({xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink",width:"1em",height:"1em",viewBox:"0 0 28 28","aria-labelledby":n},r),t?a.createElement("title",{id:n},t):null,ae||(ae=a.createElement("defs",null,a.createElement("path",{id:"ico-attachment_svg__a",d:"M9.51 25.484c-1.74 0-3.404-.611-4.647-1.854-1.343-1.343-1.997-3.202-1.84-5.234.152-1.974 1.056-3.882 2.547-5.373l8.485-8.485c2.419-2.419 5.763-2.723 7.778-.707 2.016 2.015 1.712 5.36-.707 7.778l-7.424 7.425c-1.37 1.37-3.276 1.553-4.493.452l-.002.003-.097-.097-.004-.005.002-.002c-.548-.604-.812-1.404-.745-2.27a3.706 3.706 0 011.096-2.324l4.321-4.49 1.44 1.388-4.333 4.503c-.313.312-.501.7-.53 1.077-.013.175-.001.496.215.752.465.39 1.22.093 1.716-.402l7.424-7.424c1.612-1.613 1.917-3.74.707-4.95s-3.337-.905-4.95.707l-8.485 8.485c-1.153 1.154-1.852 2.614-1.967 4.113-.11 1.44.337 2.742 1.26 3.665 1.95 1.95 5.44 1.633 7.778-.707l9.214-9.874 1.463 1.364-9.238 9.9c-1.712 1.712-3.903 2.586-5.984 2.586"}))),ie||(ie=a.createElement("use",{fill:"currentColor",xlinkHref:"#ico-attachment_svg__a",fillRule:"evenodd"})))}var le,fe,he=n(43),pe=["title","titleId"];function de(){return de=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},de.apply(this,arguments)}function ve(e){var t=e.title,n=e.titleId,r=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,pe);return a.createElement("svg",de({xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink",width:"1em",height:"1em",viewBox:"0 0 28 28","aria-labelledby":n},r),t?a.createElement("title",{id:n},t):null,le||(le=a.createElement("defs",null,a.createElement("path",{id:"ico-camera_svg__a",d:"M7 10.5a.5.5 0 01-.5.5h-2a.5.5 0 010-1h2a.5.5 0 01.5.5zm18 10.534a.967.967 0 01-.966.966H3.966A.967.967 0 013 21.034V8.466C3 8.209 3.209 8 3.466 8h5.915c.668 0 1.295-.26 1.766-.73l.976-.977A.993.993 0 0112.83 6h2.345c.265 0 .516.104.705.291l.978.974c.47.468 1.095.727 1.758.729 1.629.003 5.917.006 5.918.006.257 0 .466.209.466.466v12.568zM24.535 6s-4.286-.003-5.915-.006a.498.498 0 01-.35-.146l-.98-.974A2.973 2.973 0 0015.176 4H12.83c-.803 0-1.556.313-2.123.88l-.974.975A.498.498 0 019.381 6H3.466A2.468 2.468 0 001 8.466v12.568A2.969 2.969 0 003.966 24h20.067A2.969 2.969 0 0027 21.034V8.466A2.469 2.469 0 0024.535 6zM14 18.5a3.755 3.755 0 01-3.75-3.75c0-2.068 1.682-3.75 3.75-3.75s3.75 1.682 3.75 3.75A3.755 3.755 0 0114 18.5zM14 9c-3.17 0-5.75 2.58-5.75 5.75S10.83 20.5 14 20.5s5.75-2.58 5.75-5.75S17.17 9 14 9z"}))),fe||(fe=a.createElement("use",{fill:"currentColor",xlinkHref:"#ico-camera_svg__a",fillRule:"evenodd"})))}var me,ge,ye=["title","titleId"];function be(){return be=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},be.apply(this,arguments)}function we(e){var t=e.title,n=e.titleId,r=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,ye);return a.createElement("svg",be({xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink",width:"1em",height:"1em",viewBox:"0 0 28 28","aria-labelledby":n},r),t?a.createElement("title",{id:n},t):null,me||(me=a.createElement("defs",null,a.createElement("path",{id:"ico-checkbox_svg__a",d:"M19.207 11.707l-1.415-1.415-5.292 5.293-2.293-2.293-1.415 1.415 3.708 3.707 6.707-6.707zM8 7c-.551 0-1 .449-1 1v12c0 .551.449 1 1 1h12c.551 0 1-.449 1-1V8c0-.551-.449-1-1-1H8zm12 16H8c-1.654 0-3-1.346-3-3V8c0-1.654 1.346-3 3-3h12c1.654 0 3 1.346 3 3v12c0 1.654-1.346 3-3 3z"}))),ge||(ge=a.createElement("use",{fill:"currentColor",xlinkHref:"#ico-checkbox_svg__a",fillRule:"evenodd"})))}var xe,Ee,_e=n(29),ke=n(67),Oe=n(68),Ce=["title","titleId"];function Ie(){return Ie=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Ie.apply(this,arguments)}function Re(e){var t=e.title,n=e.titleId,r=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,Ce);return a.createElement("svg",Ie({xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink",width:"1em",height:"1em",viewBox:"0 0 28 28","aria-labelledby":n},r),t?a.createElement("title",{id:n},t):null,xe||(xe=a.createElement("defs",null,a.createElement("path",{id:"ico-chevron-up_svg__a",d:"M21.375 17.481L14 11.581l-7.375 5.9-1.25-1.562L14 9.019l8.625 6.9z"}))),Ee||(Ee=a.createElement("use",{fill:"currentColor",xlinkHref:"#ico-chevron-up_svg__a",fillRule:"evenodd"})))}var Se,Ae,Pe=n(15),Te=["title","titleId"];function De(){return De=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},De.apply(this,arguments)}function Ne(e){var t=e.title,n=e.titleId,r=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,Te);return a.createElement("svg",De({xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink",width:"1em",height:"1em",viewBox:"0 0 28 28","aria-labelledby":n},r),t?a.createElement("title",{id:n},t):null,Se||(Se=a.createElement("defs",null,a.createElement("path",{id:"ico-clock_svg__a",d:"M13.917 24.25a10.048 10.048 0 01-9.944-8.402 10.154 10.154 0 01-.14-1.682c0-5.56 4.524-10.082 10.084-10.082S24 8.607 24 14.166c0 5.56-4.523 10.084-10.083 10.084m0-22c6.57 0 11.916 5.346 11.916 11.916 0 6.572-5.345 11.918-11.916 11.918a11.874 11.874 0 01-11.752-9.933A11.95 11.95 0 012 14.166C2 7.596 7.346 2.25 13.917 2.25zm0 3.917a.5.5 0 00-.5.5v7.5c0 .12.042.234.12.325l3 3.5a.502.502 0 00.705.055.5.5 0 00.054-.706l-2.88-3.36V6.668a.5.5 0 00-.5-.5z"}))),Ae||(Ae=a.createElement("use",{fill:"currentColor",xlinkHref:"#ico-clock_svg__a",fillRule:"evenodd"})))}var Me,Fe,Be=["title","titleId"];function je(){return je=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},je.apply(this,arguments)}function Le(e){var t=e.title,n=e.titleId,r=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,Be);return a.createElement("svg",je({xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink",width:"1em",height:"1em",viewBox:"0 0 28 28","aria-labelledby":n},r),t?a.createElement("title",{id:n},t):null,Me||(Me=a.createElement("defs",null,a.createElement("path",{id:"ico-cloud-download_svg__a",d:"M15 22.92V13h-2v9.92l-2.75-2.2L9 22.28l5 4 5-4-1.25-1.56-2.75 2.2zm11-9.666A5.756 5.756 0 0120.248 19H20v-2h.248A3.753 3.753 0 0024 13.254a3.73 3.73 0 00-2.636-3.578l-.783-.243.085-.815a3.849 3.849 0 00-6.946-2.653l-.445.617-.713-.266a3.416 3.416 0 00-4.59 2.955l-.058.842-.84.084A3.397 3.397 0 004 13.59C4 15.47 5.532 17 7.415 17H8v2h-.585A5.42 5.42 0 012 13.59a5.39 5.39 0 014.09-5.248 5.43 5.43 0 016.47-4.108 5.87 5.87 0 014.28-1.86 5.852 5.852 0 015.844 5.672A5.715 5.715 0 0126 13.254z"}))),Fe||(Fe=a.createElement("use",{fill:"currentColor",xlinkHref:"#ico-cloud-download_svg__a",fillRule:"evenodd"})))}var ze,He,We=["title","titleId"];function Ve(){return Ve=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Ve.apply(this,arguments)}function Ue(e){var t=e.title,n=e.titleId,r=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,We);return a.createElement("svg",Ve({xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink",width:"1em",height:"1em",viewBox:"0 0 28 28","aria-labelledby":n},r),t?a.createElement("title",{id:n},t):null,ze||(ze=a.createElement("defs",null,a.createElement("path",{id:"ico-copy_svg__a",d:"M13 15h3v2h-3v3h-2v-3H8v-2h3v-3h2v3zm12-9v13h-2V6c0-.551-.448-1-1-1H9V3h13c1.654 0 3 1.346 3 3zm-6 16a1 1 0 01-1 1H6c-.551 0-1-.448-1-1V10c0-.552.449-1 1-1h12a1 1 0 011 1v12zM18 7H6c-1.654 0-3 1.346-3 3v12c0 1.654 1.346 3 3 3h12c1.654 0 3-1.346 3-3V10c0-1.654-1.346-3-3-3z"}))),He||(He=a.createElement("use",{fill:"currentColor",xlinkHref:"#ico-copy_svg__a",fillRule:"evenodd"})))}var qe,Ge,Xe=n(47),Ke=["title","titleId"];function $e(){return $e=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},$e.apply(this,arguments)}function Ye(e){var t=e.title,n=e.titleId,r=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,Ke);return a.createElement("svg",$e({xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink",width:"1em",height:"1em",viewBox:"0 0 28 28","aria-labelledby":n},r),t?a.createElement("title",{id:n},t):null,qe||(qe=a.createElement("defs",null,a.createElement("path",{id:"ico-delete_svg__a",d:"M21 7H7v16c0 .552.449 1 1 1h12a1 1 0 001-1V7zm-9-2h4c0-1.103-.897-2-2-2s-2 .897-2 2zm13 2h-2v16c0 1.654-1.346 3-3 3H8c-1.654 0-3-1.346-3-3V7H3V5h7c0-2.205 1.794-4 4-4s4 1.795 4 4h7v2zm-8.5 13a.5.5 0 00.5-.5v-8a.5.5 0 00-1 0v8a.5.5 0 00.5.5zm-5.5-.5v-8a.5.5 0 011 0v8a.5.5 0 01-1 0z"}))),Ge||(Ge=a.createElement("use",{fill:"currentColor",xlinkHref:"#ico-delete_svg__a",fillRule:"evenodd"})))}var Je,Ze,Qe=["title","titleId"];function et(){return et=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},et.apply(this,arguments)}function tt(e){var t=e.title,n=e.titleId,r=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,Qe);return a.createElement("svg",et({xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink",width:"1em",height:"1em",viewBox:"0 0 28 28","aria-labelledby":n},r),t?a.createElement("title",{id:n},t):null,Je||(Je=a.createElement("defs",null,a.createElement("path",{id:"ico-discover-selected_svg__a",d:"M9.344 18.657l2.316-6.29 3.972 3.973-6.288 2.317zM19.327 8.03l-8.039 2.961a.506.506 0 00-.296.296l-2.961 8.039a.5.5 0 00.642.642l8.038-2.962a.5.5 0 00.297-.296l2.961-8.038a.5.5 0 00-.642-.642zM14 24C8.486 24 4 19.514 4 14S8.486 4 14 4s10 4.486 10 10-4.486 10-10 10zm0-22C7.383 2 2 7.383 2 14s5.383 12 12 12 12-5.383 12-12S20.617 2 14 2z"}))),Ze||(Ze=a.createElement("use",{fill:"currentColor",xlinkHref:"#ico-discover-selected_svg__a",fillRule:"evenodd"})))}var nt,rt,ot=["title","titleId"];function at(){return at=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},at.apply(this,arguments)}function it(e){var t=e.title,n=e.titleId,r=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,ot);return a.createElement("svg",at({xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink",width:"1em",height:"1em",viewBox:"0 0 28 28","aria-labelledby":n},r),t?a.createElement("title",{id:n},t):null,nt||(nt=a.createElement("defs",null,a.createElement("path",{id:"ico-discover_svg__a",d:"M16.34 15.633L14.707 14l3.537-3.537-1.904 5.17zm-6.996 3.024l2.316-6.29 3.972 3.973-6.288 2.317zm8.193-8.901L14 13.293l-1.632-1.632 5.17-1.905zm1.79-1.725l-8.039 2.961a.506.506 0 00-.296.296l-2.961 8.039a.5.5 0 00.642.642l8.038-2.962a.5.5 0 00.297-.296l2.961-8.038a.5.5 0 00-.642-.642zM14 24C8.486 24 4 19.514 4 14S8.486 4 14 4s10 4.486 10 10-4.486 10-10 10zm0-22C7.383 2 2 7.383 2 14s5.383 12 12 12 12-5.383 12-12S20.617 2 14 2z"}))),rt||(rt=a.createElement("use",{fill:"currentColor",xlinkHref:"#ico-discover_svg__a",fillRule:"evenodd"})))}var st,ut,ct=["title","titleId"];function lt(){return lt=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},lt.apply(this,arguments)}function ft(e){var t=e.title,n=e.titleId,r=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,ct);return a.createElement("svg",lt({xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink",width:"1em",height:"1em",viewBox:"0 0 28 28","aria-labelledby":n},r),t?a.createElement("title",{id:n},t):null,st||(st=a.createElement("defs",null,a.createElement("path",{id:"ico-dislike_svg__a",d:"M24 20.5c0 1.93-1.57 3.5-3.5 3.5h-4.687a8.952 8.952 0 01-3.16-.573L11 22.807V14.6l.366-.195a10.936 10.936 0 004.704-4.871L17 7.63c.02-.04.037-.08.052-.123a.744.744 0 011.447.198l-.494 5.2A.997.997 0 0019 13.999h3.5c.827 0 1.5.673 1.5 1.5v5zM9 24H4V13h5v11zm13.5-12h-2.4l.395-4.162c.003-.032.005-.063.005-.095A2.746 2.746 0 0017.756 5a2.741 2.741 0 00-2.578 1.806l-.905 1.849A8.94 8.94 0 0111 12.304V12a1 1 0 00-1-1H3a1 1 0 00-1 1v13a1 1 0 001 1h7a1 1 0 001-1v-.057l.951.356a10.93 10.93 0 003.862.701H20.5c3.032 0 5.5-2.468 5.5-5.5v-5c0-1.93-1.57-3.5-3.5-3.5z"}))),ut||(ut=a.createElement("use",{fill:"currentColor",transform:"matrix(1 0 0 -1 0 31)",xlinkHref:"#ico-dislike_svg__a",fillRule:"evenodd"})))}var ht,pt,dt=["title","titleId"];function vt(){return vt=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},vt.apply(this,arguments)}function mt(e){var t=e.title,n=e.titleId,r=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,dt);return a.createElement("svg",vt({xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink",width:"1em",height:"1em",viewBox:"0 0 28 28","aria-labelledby":n},r),t?a.createElement("title",{id:n},t):null,ht||(ht=a.createElement("defs",null,a.createElement("path",{id:"ico-dismiss_svg__a",d:"M18.242 8.343L14 12.585 9.758 8.343 8.343 9.758 12.585 14l-4.242 4.242 1.415 1.415L14 15.415l4.242 4.242 1.415-1.415L15.414 14l4.243-4.242z"}))),pt||(pt=a.createElement("use",{fill:"currentColor",xlinkHref:"#ico-dismiss_svg__a",fillRule:"evenodd"})))}var gt,yt,bt=["title","titleId"];function wt(){return wt=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},wt.apply(this,arguments)}function xt(e){var t=e.title,n=e.titleId,r=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,bt);return a.createElement("svg",wt({xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink",width:"1em",height:"1em",viewBox:"0 0 28 28","aria-labelledby":n},r),t?a.createElement("title",{id:n},t):null,gt||(gt=a.createElement("defs",null,a.createElement("path",{id:"ico-doc-aardhaar_svg__a",d:"M6.5 13a.5.5 0 00-.5.5v4a.5.5 0 00.5.5h4a.5.5 0 00.5-.5v-4a.5.5 0 00-.5-.5h-4zm0 6c-.827 0-1.5-.673-1.5-1.5v-4c0-.827.673-1.5 1.5-1.5h4c.827 0 1.5.673 1.5 1.5v4c0 .827-.673 1.5-1.5 1.5h-4zm18-12a.5.5 0 01.5.5v13a.5.5 0 01-.5.5h-21a.5.5 0 01-.5-.5v-13a.5.5 0 01.5-.5zm-2 9a.5.5 0 00-.5.5V18h-1.5a.5.5 0 000 1h2a.5.5 0 00.5-.5v-2a.5.5 0 00-.5-.5zm-4 0h-2a.5.5 0 00-.5.5v2a.5.5 0 00.5.5h2a.5.5 0 00.5-.5v-2a.5.5 0 00-.5-.5zm-.5 1v1h-1v-1h1zm.5-5h-2a.5.5 0 00-.5.5v2a.5.5 0 00.5.5h2a.5.5 0 00.5-.5v-2a.5.5 0 00-.5-.5zm4 0h-2a.5.5 0 00-.5.5v2a.5.5 0 00.5.5h2a.5.5 0 00.5-.5v-2a.5.5 0 00-.5-.5zM18 13v1h-1v-1h1zm4 0v1h-1v-1h1zm.5-4h-17a.5.5 0 000 1h17a.5.5 0 000-1zm-19 14A2.503 2.503 0 011 20.5v-13C1 6.122 2.122 5 3.5 5h21C25.878 5 27 6.122 27 7.5v13c0 1.378-1.122 2.5-2.5 2.5h-21z"}))),yt||(yt=a.createElement("use",{fill:"currentColor",xlinkHref:"#ico-doc-aardhaar_svg__a",fillRule:"evenodd"})))}var Et,_t,kt=["title","titleId"];function Ot(){return Ot=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Ot.apply(this,arguments)}function Ct(e){var t=e.title,n=e.titleId,r=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,kt);return a.createElement("svg",Ot({xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink",width:"1em",height:"1em",viewBox:"0 0 28 28","aria-labelledby":n},r),t?a.createElement("title",{id:n},t):null,Et||(Et=a.createElement("defs",null,a.createElement("path",{id:"ico-doc-driving-license_svg__a",d:"M10.5 17.46v-3.153l2.813-1.425c.12.351.187.726.187 1.118a3.502 3.502 0 01-3 3.46zM6.5 14c0-.399.07-.78.194-1.137L9.5 14.305v3.155c-1.694-.244-3-1.7-3-3.46zm3.5-3.5c1.182 0 2.226.59 2.86 1.49l-2.858 1.448-2.85-1.464A3.494 3.494 0 0110 10.5zm0-1A4.505 4.505 0 005.5 14c0 2.481 2.019 4.5 4.5 4.5 2.482 0 4.5-2.019 4.5-4.5 0-2.482-2.018-4.5-4.5-4.5zm13 6a.5.5 0 01-.5.5h-5a.5.5 0 010-1h5a.5.5 0 01.5.5zm0-3a.5.5 0 01-.5.5h-5a.5.5 0 010-1h5a.5.5 0 01.5.5zm2 7.5a1 1 0 01-1 1H4c-.551 0-1-.448-1-1V8c0-.551.449-1 1-1h20c.552 0 1 .449 1 1v12zM24 5H4C2.346 5 1 6.346 1 8v12c0 1.654 1.346 3 3 3h20c1.654 0 3-1.346 3-3V8c0-1.654-1.346-3-3-3z"}))),_t||(_t=a.createElement("use",{fill:"currentColor",xlinkHref:"#ico-doc-driving-license_svg__a",fillRule:"evenodd"})))}var It,Rt,St=["title","titleId"];function At(){return At=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},At.apply(this,arguments)}function Pt(e){var t=e.title,n=e.titleId,r=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,St);return a.createElement("svg",At({xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink",width:"1em",height:"1em",viewBox:"0 0 28 28","aria-labelledby":n},r),t?a.createElement("title",{id:n},t):null,It||(It=a.createElement("defs",null,a.createElement("path",{id:"ico-doc-generic_svg__a",d:"M9.596 13.034l.903-.18c.19.728.468 1.385.808 1.905a3 3 0 01-1.711-1.725zm.722-3.225c-.114.594-.126 1.3-.02 2.066l-.897.178a2.997 2.997 0 01.917-2.244zm4.875 1.092l-.894.178c-.194-.745-.474-1.392-.805-1.896.197.078.39.17.57.29.524.35.91.85 1.129 1.428zm-.302 2.733a3.036 3.036 0 01-.42.495c.114-.61.12-1.323.017-2.068l.905-.18a2.974 2.974 0 01-.502 1.753zm-1.383-1.378c.085.666.076 1.309-.038 1.814-.13.574-.344.81-.488.84-.148.029-.434-.109-.773-.59-.3-.422-.553-1.012-.729-1.66l2.028-.404zM11.81 9.025a.234.234 0 01.047-.005c.384 0 1.073.845 1.455 2.255l-2.031.404c-.196-1.51.156-2.58.53-2.654zm1.366 6.866a3.977 3.977 0 002.545-1.701 3.97 3.97 0 00.597-3.003 3.974 3.974 0 00-1.7-2.546 3.979 3.979 0 00-3.003-.597 4.005 4.005 0 00-3.143 4.704 4.007 4.007 0 004.704 3.143zm3.527 2.357a.5.5 0 01-.392.588l-4.904.975a.502.502 0 01-.589-.393.501.501 0 01.393-.588l4.904-.975a.5.5 0 01.588.393zm6.823-7.96l-1.869 4.673-1.404-7.06 2.716 1.086c.512.205.761.788.557 1.3zm-3.052 10.48a.999.999 0 01-.636.425l-11.77 2.34L4.754 6.86l11.77-2.34a1 1 0 011.176.785l2.926 14.712a.99.99 0 01-.15.75zM23.712 7.13L19.79 5.561l-.13-.646a3 3 0 00-3.527-2.357l-13.73 2.73 4.096 20.597 13.731-2.73a2.986 2.986 0 001.91-1.277 2.976 2.976 0 00.447-2.251l-.212-1.07 3.01-7.527a3.005 3.005 0 00-1.672-3.9z"}))),Rt||(Rt=a.createElement("use",{fill:"currentColor",xlinkHref:"#ico-doc-generic_svg__a",fillRule:"evenodd"})))}var Tt,Dt,Nt=["title","titleId"];function Mt(){return Mt=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Mt.apply(this,arguments)}function Ft(e){var t=e.title,n=e.titleId,r=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,Nt);return a.createElement("svg",Mt({xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink",width:"1em",height:"1em",viewBox:"0 0 28 28","aria-labelledby":n},r),t?a.createElement("title",{id:n},t):null,Tt||(Tt=a.createElement("defs",null,a.createElement("path",{id:"ico-doc-national-id_svg__a",d:"M19 16.5a.5.5 0 00-.5-.5h-4a.5.5 0 000 1h4a.5.5 0 00.5-.5zm4-3a.5.5 0 00-.5-.5h-8a.5.5 0 000 1h8a.5.5 0 00.5-.5zm0-3a.5.5 0 00-.5-.5h-8a.5.5 0 000 1h8a.5.5 0 00.5-.5zM6.5 11a.5.5 0 00-.5.5v5a.5.5 0 00.5.5h4a.5.5 0 00.5-.5v-5a.5.5 0 00-.5-.5h-4zm4 7h-4c-.827 0-1.5-.673-1.5-1.5v-5c0-.827.673-1.5 1.5-1.5h4c.827 0 1.5.673 1.5 1.5v5c0 .827-.673 1.5-1.5 1.5zm-7-11a.5.5 0 00-.5.5v13a.5.5 0 00.5.5h21a.5.5 0 00.5-.5v-13a.5.5 0 00-.5-.5h-21zm21 16h-21A2.503 2.503 0 011 20.5v-13C1 6.122 2.122 5 3.5 5h21C25.878 5 27 6.122 27 7.5v13c0 1.378-1.122 2.5-2.5 2.5z"}))),Dt||(Dt=a.createElement("use",{fill:"currentColor",xlinkHref:"#ico-doc-national-id_svg__a",fillRule:"evenodd"})))}var Bt,jt,Lt=["title","titleId"];function zt(){return zt=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},zt.apply(this,arguments)}function Ht(e){var t=e.title,n=e.titleId,r=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,Lt);return a.createElement("svg",zt({xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink",width:"1em",height:"1em",viewBox:"0 0 28 28","aria-labelledby":n},r),t?a.createElement("title",{id:n},t):null,Bt||(Bt=a.createElement("defs",null,a.createElement("path",{id:"ico-doc-pass-card_svg__a",d:"M23 10.5a.5.5 0 00-.5-.5h-6a.5.5 0 000 1h6a.5.5 0 00.5-.5zM19 16h3v-2h-3v2zm3 1h-3a1 1 0 01-1-1v-2a1 1 0 011-1h3a1 1 0 011 1v2a1 1 0 01-1 1zM6.5 11a.5.5 0 00-.5.5v5a.5.5 0 00.5.5h4a.5.5 0 00.5-.5v-5a.5.5 0 00-.5-.5h-4zm4 7h-4c-.827 0-1.5-.673-1.5-1.5v-5c0-.827.673-1.5 1.5-1.5h4c.827 0 1.5.673 1.5 1.5v5c0 .827-.673 1.5-1.5 1.5zm-7-11a.5.5 0 00-.5.5v13a.5.5 0 00.5.5h21a.5.5 0 00.5-.5v-13a.5.5 0 00-.5-.5h-21zm21 16h-21A2.503 2.503 0 011 20.5v-13C1 6.122 2.122 5 3.5 5h21C25.878 5 27 6.122 27 7.5v13c0 1.378-1.122 2.5-2.5 2.5z"}))),jt||(jt=a.createElement("use",{fill:"currentColor",xlinkHref:"#ico-doc-pass-card_svg__a",fillRule:"evenodd"})))}var Wt,Vt,Ut=["title","titleId"];function qt(){return qt=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},qt.apply(this,arguments)}function Gt(e){var t=e.title,n=e.titleId,r=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,Ut);return a.createElement("svg",qt({xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink",width:"1em",height:"1em",viewBox:"0 0 28 28","aria-labelledby":n},r),t?a.createElement("title",{id:n},t):null,Wt||(Wt=a.createElement("defs",null,a.createElement("path",{id:"ico-doc-passport_svg__a",d:"M6 4v20h15a1 1 0 001-1V5c0-.551-.448-1-1-1H6zm15-2c1.654 0 3 1.346 3 3v18c0 1.654-1.346 3-3 3H4V2h17zm-3.5 18h-7a.5.5 0 100 1h7a.5.5 0 000-1zM14 6.507a5 5 0 10.001 10.001A5 5 0 0014 6.507zm1.49 5.435c-.093 2.029-.82 3.565-1.49 3.565s-1.397-1.536-1.49-3.565zm-3.981 0c.048 1.224.302 2.33.71 3.147a4.001 4.001 0 01-2.196-3.146zm6.467 0a4.004 4.004 0 01-2.195 3.148c.408-.818.661-1.924.71-3.147zM12.22 7.927c-.394.788-.644 1.846-.705 3.017H10.04a4.008 4.008 0 012.106-2.98zM14 7.508c.657 0 1.367 1.471 1.484 3.435h-2.966c.117-1.964.827-3.435 1.483-3.435zm1.782.417a4.008 4.008 0 012.18 3.019h-1.476c-.06-1.144-.298-2.178-.676-2.96z"}))),Vt||(Vt=a.createElement("use",{fill:"currentColor",xlinkHref:"#ico-doc-passport_svg__a",fillRule:"evenodd"})))}var Xt,Kt,$t=["title","titleId"];function Yt(){return Yt=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Yt.apply(this,arguments)}function Jt(e){var t=e.title,n=e.titleId,r=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,$t);return a.createElement("svg",Yt({xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink",width:"1em",height:"1em",viewBox:"0 0 28 28","aria-labelledby":n},r),t?a.createElement("title",{id:n},t):null,Xt||(Xt=a.createElement("defs",null,a.createElement("path",{id:"ico-document-image_svg__a",d:"M18 15.5a.5.5 0 00-.5-.5h-2a.5.5 0 000 1h2a.5.5 0 00.5-.5zm0-3a.5.5 0 00-.5-.5h-2a.5.5 0 000 1h2a.5.5 0 00.5-.5zM11 15h2v-2h-2v2zm2.5 1h-3a.5.5 0 01-.5-.5v-3a.5.5 0 01.5-.5h3a.5.5 0 01.5.5v3a.5.5 0 01-.5.5zM25 20h-2v3h-3v2h5v-5zm0-17h-5.5v2H23v3h2V3zM8 23H5v-3H3v5h5v-2zM5 5h3V3H3v5h2V5zm4 5a1 1 0 00-1 1v6a1 1 0 001 1h10a1 1 0 001-1v-6a1 1 0 00-1-1H9zm10 10H9c-1.654 0-3-1.346-3-3v-6c0-1.654 1.346-3 3-3h10c1.654 0 3 1.346 3 3v6c0 1.654-1.346 3-3 3z"}))),Kt||(Kt=a.createElement("use",{fill:"currentColor",xlinkHref:"#ico-document-image_svg__a",fillRule:"evenodd"})))}var Zt,Qt,en=["title","titleId"];function tn(){return tn=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},tn.apply(this,arguments)}function nn(e){var t=e.title,n=e.titleId,r=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,en);return a.createElement("svg",tn({xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink",width:"1em",height:"1em",viewBox:"0 0 28 28","aria-labelledby":n},r),t?a.createElement("title",{id:n},t):null,Zt||(Zt=a.createElement("defs",null,a.createElement("path",{id:"ico-document_svg__a",d:"M6 24h16V4H6v20zM24 2v24H4V2h20zm-8.5 17h-6a.5.5 0 000 1h6a.5.5 0 000-1zm3-3h-9a.5.5 0 000 1h9a.5.5 0 000-1zm0-3h-9a.5.5 0 000 1h9a.5.5 0 000-1zm0-3h-9a.5.5 0 000 1h9a.5.5 0 000-1zm0-3h-9a.5.5 0 000 1h9a.5.5 0 000-1z"}))),Qt||(Qt=a.createElement("use",{fill:"currentColor",xlinkHref:"#ico-document_svg__a",fillRule:"evenodd"})))}var rn,on,an=["title","titleId"];function sn(){return sn=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},sn.apply(this,arguments)}function un(e){var t=e.title,n=e.titleId,r=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,an);return a.createElement("svg",sn({xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink",width:"1em",height:"1em",viewBox:"0 0 28 28","aria-labelledby":n},r),t?a.createElement("title",{id:n},t):null,rn||(rn=a.createElement("defs",null,a.createElement("path",{id:"ico-do-not_svg__a",d:"M14 3c2.677 0 5.131.957 7.039 2.546l.032-.031 1.414 1.414-.031.032A10.96 10.96 0 0125 14c0 6.075-4.925 11-11 11-2.677 0-5.131-.957-7.039-2.546l-.032.031-1.414-1.414.031-.032A10.96 10.96 0 013 14C3 7.925 7.925 3 14 3zm7.032 5.383l-12.65 12.65a9 9 0 0012.65-12.65zM14 5a9 9 0 00-7.032 14.617l12.65-12.65A8.982 8.982 0 0014 5z"}))),on||(on=a.createElement("use",{fill:"currentColor",fillRule:"nonzero",xlinkHref:"#ico-do-not_svg__a"})))}var cn,ln,fn=["title","titleId"];function hn(){return hn=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},hn.apply(this,arguments)}function pn(e){var t=e.title,n=e.titleId,r=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,fn);return a.createElement("svg",hn({xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink",width:"1em",height:"1em",viewBox:"0 0 28 28","aria-labelledby":n},r),t?a.createElement("title",{id:n},t):null,cn||(cn=a.createElement("defs",null,a.createElement("path",{id:"ico-download_svg__a",d:"M19.625 14.78l-1.25-1.561-3.375 2.7V5h-2v10.92l-3.375-2.7-1.25 1.562L14 19.28l5.625-4.5zM24 21v2H4v-2h20z"}))),ln||(ln=a.createElement("use",{fill:"currentColor",xlinkHref:"#ico-download_svg__a",fillRule:"evenodd"})))}var dn,vn,mn=["title","titleId"];function gn(){return gn=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},gn.apply(this,arguments)}function yn(e){var t=e.title,n=e.titleId,r=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,mn);return a.createElement("svg",gn({xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink",width:"1em",height:"1em",viewBox:"0 0 28 28","aria-labelledby":n},r),t?a.createElement("title",{id:n},t):null,dn||(dn=a.createElement("defs",null,a.createElement("path",{id:"ico-edit_svg__a",d:"M21.34 9.89l-1.014 1.015-3.535-3.536 1.014-1.014c.39-.39.909-.605 1.46-.605.553 0 1.071.215 1.461.605l.614.614c.39.39.605.91.605 1.46a2.05 2.05 0 01-.605 1.462zM10.427 20.805L6.89 17.27l9.193-9.193 3.535 3.536-9.192 9.192zm-4.042-2.628l3.134 3.135-3.514.38.38-3.515zm16.37-12.621l-.614-.614a4.04 4.04 0 00-2.875-1.19 4.038 4.038 0 00-2.875 1.19L4.52 16.811l-.771 7.135 7.135-.771 11.87-11.87a4.04 4.04 0 001.19-2.875 4.038 4.038 0 00-1.19-2.875z"}))),vn||(vn=a.createElement("use",{fill:"currentColor",xlinkHref:"#ico-edit_svg__a",fillRule:"evenodd"})))}var bn,wn,xn=["title","titleId"];function En(){return En=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},En.apply(this,arguments)}function _n(e){var t=e.title,n=e.titleId,r=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,xn);return a.createElement("svg",En({xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink",width:"1em",height:"1em",viewBox:"0 0 28 28","aria-labelledby":n},r),t?a.createElement("title",{id:n},t):null,bn||(bn=a.createElement("defs",null,a.createElement("path",{id:"ico-email_svg__a",d:"M18.18 14.134L25 8.197V20.38l-6.82-6.246zm-7.59.671l1.438 1.251a2.965 2.965 0 003.935.007l1.446-1.258 6.748 6.18H3.843l6.748-6.18zm-.77-.67L3 20.38V8.197l6.82 5.937zm4.822.427a.956.956 0 01-1.292-.007L4.672 7h18.656l-8.686 7.562zM1 22.984h26V5H1v17.984z"}))),wn||(wn=a.createElement("use",{fill:"currentColor",xlinkHref:"#ico-email_svg__a",fillRule:"evenodd"})))}var kn,On,Cn=n(48),In=["title","titleId"];function Rn(){return Rn=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Rn.apply(this,arguments)}function Sn(e){var t=e.title,n=e.titleId,r=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,In);return a.createElement("svg",Rn({xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink",width:"1em",height:"1em",viewBox:"0 0 28 28","aria-labelledby":n},r),t?a.createElement("title",{id:n},t):null,kn||(kn=a.createElement("defs",null,a.createElement("path",{id:"ico-face_svg__a",d:"M16.88 18.394a.5.5 0 10-.26-.965c-.619.167-1.598.267-2.62.267s-2.002-.1-2.62-.267a.5.5 0 10-.26.965c.708.192 1.758.302 2.88.302 1.121 0 2.171-.11 2.88-.302zm-2.005-3.563a.49.49 0 00.12-.393l-.5-4a.5.5 0 00-.991.124l.43 3.438H13.5a.5.5 0 000 1h1a.5.5 0 00.375-.17zM18 10a1 1 0 100 2 1 1 0 000-2zm-8 0a1 1 0 100 2 1 1 0 000-2zm13.988 17.172l-4.856-1.1a2.252 2.252 0 01-1.734-2.19c0-.841.464-1.604 1.211-1.992.855-.444 1.637-1.034 2.463-1.858A9.94 9.94 0 0024 12.978a9.933 9.933 0 00-2.928-7.055 9.972 9.972 0 00-3.18-2.139 10.103 10.103 0 00-7.785 0 9.97 9.97 0 00-3.18 2.14 9.915 9.915 0 00-2.142 3.171A9.91 9.91 0 004 12.978a9.94 9.94 0 002.928 7.054c.826.824 1.608 1.414 2.463 1.858a2.235 2.235 0 011.21 1.991c0 1.04-.706 1.939-1.717 2.186l-4.872 1.105-.442-1.95 4.855-1.101a.247.247 0 00.044-.456c-1.04-.54-1.98-1.245-2.953-2.217A11.926 11.926 0 012 12.978c0-1.617.317-3.186.943-4.664a11.95 11.95 0 012.572-3.807A11.983 11.983 0 019.33 1.941a12.103 12.103 0 019.341 0 11.968 11.968 0 013.814 2.566 11.937 11.937 0 013.516 8.471c0 1.617-.318 3.186-.943 4.663a11.95 11.95 0 01-2.572 3.807c-.975.972-1.913 1.677-2.954 2.217a.242.242 0 00-.133.216c0 .116.08.216.193.244l4.84 1.096-.443 1.95z"}))),On||(On=a.createElement("use",{fill:"currentColor",xlinkHref:"#ico-face_svg__a",fillRule:"evenodd"})))}var An,Pn=["title","titleId"];function Tn(){return Tn=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Tn.apply(this,arguments)}function Dn(e){var t=e.title,n=e.titleId,r=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,Pn);return a.createElement("svg",Tn({xmlns:"http://www.w3.org/2000/svg",width:"1em",height:"1em",viewBox:"0 0 28 28","aria-labelledby":n},r),t?a.createElement("title",{id:n},t):null,An||(An=a.createElement("path",{fill:"currentColor",d:"M18.67 1.937a11.946 11.946 0 013.814 2.566A11.94 11.94 0 0126 12.974c0 1.616-.317 3.185-.944 4.663a11.95 11.95 0 01-2.572 3.807c-.96.958-1.926 1.683-2.954 2.217a.243.243 0 00-.132.216c0 .116.08.216.193.244l4.839 1.096-.442 1.95-4.855-1.1a2.251 2.251 0 01-1.735-2.19c0-.84.465-1.604 1.212-1.991.855-.444 1.637-1.034 2.462-1.858A9.944 9.944 0 0024 12.974a9.944 9.944 0 00-2.928-7.055 9.965 9.965 0 00-3.179-2.14 10.105 10.105 0 00-7.786 0 9.96 9.96 0 00-3.178 2.14A9.914 9.914 0 004 12.974a9.927 9.927 0 002.928 7.054c.825.824 1.608 1.414 2.462 1.858a2.235 2.235 0 011.211 1.991c0 1.04-.706 1.939-1.717 2.186l-4.872 1.105-.442-1.95 4.855-1.101a.247.247 0 00.176-.24.242.242 0 00-.132-.216c-1.027-.534-1.993-1.259-2.953-2.217A11.94 11.94 0 012 12.974c0-1.617.317-3.186.944-4.664a11.95 11.95 0 012.572-3.807 11.936 11.936 0 013.813-2.566 12.103 12.103 0 019.341 0zm.123 6.851l1.414 1.415L12.5 17.91l-4.707-4.707 1.414-1.415 3.293 3.293 6.293-6.293z",fillRule:"evenodd"})))}var Nn,Mn=["title","titleId"];function Fn(){return Fn=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Fn.apply(this,arguments)}function Bn(e){var t=e.title,n=e.titleId,r=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,Mn);return a.createElement("svg",Fn({xmlns:"http://www.w3.org/2000/svg",width:"1em",height:"1em",viewBox:"0 0 28 28","aria-labelledby":n},r),t?a.createElement("title",{id:n},t):null,Nn||(Nn=a.createElement("path",{fill:"currentColor",d:"M14 2.587l-3.708 7.514L2 11.306l6 5.848-1.416 8.259 7.416-3.9 7.417 3.9L20 17.154l6-5.848-8.292-1.205L14 2.587zm-4.18 14.88l.164-.957-.695-.678-3.322-3.237 4.59-.667.961-.14.43-.87L14 6.758l2.053 4.16.43.87.96.14 4.59.667-3.321 3.237-.695.678.163.956.785 4.572-4.106-2.159-.859-.45-.86.45-4.105 2.159.785-4.572z",fillRule:"evenodd"})))}var jn,Ln=["title","titleId"];function zn(){return zn=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},zn.apply(this,arguments)}function Hn(e){var t=e.title,n=e.titleId,r=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,Ln);return a.createElement("svg",zn({xmlns:"http://www.w3.org/2000/svg",width:"1em",height:"1em",viewBox:"0 0 28 28","aria-labelledby":n},r),t?a.createElement("title",{id:n},t):null,jn||(jn=a.createElement("path",{fill:"currentColor",d:"M14 2.587l-3.708 7.514L2 11.306l6 5.848-1.416 8.259L14 21.514l7.417 3.899L20 17.154l6-5.848-8.292-1.205z",fillRule:"evenodd"})))}var Wn,Vn,Un=["title","titleId"];function qn(){return qn=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},qn.apply(this,arguments)}function Gn(e){var t=e.title,n=e.titleId,r=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,Un);return a.createElement("svg",qn({xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink",width:"1em",height:"1em",viewBox:"0 0 28 28","aria-labelledby":n},r),t?a.createElement("title",{id:n},t):null,Wn||(Wn=a.createElement("defs",null,a.createElement("path",{id:"ico-feedback_svg__a",d:"M16 16.5a.5.5 0 00-.5-.5h-6a.5.5 0 000 1h6a.5.5 0 00.5-.5zm3-3a.5.5 0 00-.5-.5h-9a.5.5 0 000 1h9a.5.5 0 00.5-.5zm0-3a.5.5 0 00-.5-.5h-9a.5.5 0 000 1h9a.5.5 0 00.5-.5zm-5.316-6.495c-5.186.155-9.435 4.237-9.673 9.291a9.551 9.551 0 001.207 5.122c.194.348.25.75.156 1.131l-.996 4.072 4.108-1.194a1.596 1.596 0 011.13.094 10.106 10.106 0 004.782.98c5.227-.199 9.443-4.35 9.598-9.45.08-2.672-.926-5.196-2.836-7.106-1.952-1.953-4.675-3.024-7.476-2.94zM3.197 26a1.14 1.14 0 01-1.114-1.412l1.307-5.344a11.56 11.56 0 01-1.377-6.042C2.3 7.11 7.4 2.192 13.624 2.005c3.35-.098 6.61 1.185 8.95 3.526 2.304 2.304 3.518 5.352 3.42 8.58-.186 6.148-5.246 11.15-11.52 11.389-1.92.073-3.848-.31-5.58-1.108l-5.379 1.563a1.16 1.16 0 01-.319.045z"}))),Vn||(Vn=a.createElement("use",{fill:"currentColor",xlinkHref:"#ico-feedback_svg__a",fillRule:"evenodd"})))}var Xn,Kn,$n=["title","titleId"];function Yn(){return Yn=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Yn.apply(this,arguments)}function Jn(e){var t=e.title,n=e.titleId,r=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,$n);return a.createElement("svg",Yn({xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink",width:"1em",height:"1em",viewBox:"0 0 28 28","aria-labelledby":n},r),t?a.createElement("title",{id:n},t):null,Xn||(Xn=a.createElement("defs",null,a.createElement("path",{id:"ico-filter_svg__a",d:"M5 4c-.551 0-1-.449-1-1 0-.551.449-1 1-1 .551 0 1 .449 1 1 0 .551-.449 1-1 1zm2.825-2A3.003 3.003 0 005 0a3.003 3.003 0 00-2.825 2H0v2h2.175A3.003 3.003 0 005 6a3.003 3.003 0 002.825-2H20V2H7.825zM8 16a1.001 1.001 0 010-2 1 1 0 010 2zm0-4a3.002 3.002 0 00-2.825 2H0v2h5.175A3.003 3.003 0 008 18a3.003 3.003 0 002.825-2H20v-2h-9.175A3.002 3.002 0 008 12zm7-2a1 1 0 110-2 1 1 0 010 2zm0-4a3.003 3.003 0 00-2.825 2H0v2h12.175A3.002 3.002 0 0015 12a3.002 3.002 0 002.825-2H20V8h-2.175A3.003 3.003 0 0015 6z"}))),Kn||(Kn=a.createElement("use",{fill:"currentColor",xlinkHref:"#ico-filter_svg__a",fillRule:"evenodd",transform:"translate(4 5)"})))}var Zn,Qn,er=["title","titleId"];function tr(){return tr=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},tr.apply(this,arguments)}function nr(e){var t=e.title,n=e.titleId,r=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,er);return a.createElement("svg",tr({xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink",width:"1em",height:"1em",viewBox:"0 0 28 28","aria-labelledby":n},r),t?a.createElement("title",{id:n},t):null,Zn||(Zn=a.createElement("defs",null,a.createElement("path",{id:"ico-flag_svg__a",d:"M16 15h5V7h-5v8zm-9 0h8V7H7v8zM23 5H7V4a1 1 0 00-2 0v21h2v-8h16V5z"}))),Qn||(Qn=a.createElement("use",{fill:"currentColor",xlinkHref:"#ico-flag_svg__a",fillRule:"evenodd"})))}var rr,or,ar=["title","titleId"];function ir(){return ir=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},ir.apply(this,arguments)}function sr(e){var t=e.title,n=e.titleId,r=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,ar);return a.createElement("svg",ir({xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink",width:"1em",height:"1em",viewBox:"0 0 28 28","aria-labelledby":n},r),t?a.createElement("title",{id:n},t):null,rr||(rr=a.createElement("defs",null,a.createElement("path",{id:"ico-gender_svg__a",d:"M13 18c-3.309 0-6-2.691-6-6s2.691-6 6-6c3.308 0 6 2.691 6 6s-2.692 6-6 6zm5-17v2h2.586l-2.688 2.688A7.96 7.96 0 0013 4c-4.411 0-8 3.588-8 8 0 4.072 3.06 7.436 7 7.93V22h-2v2h2v2h2v-2h2v-2h-2v-2.07c3.94-.494 7-3.858 7-7.93a7.948 7.948 0 00-1.688-4.897L22 4.413V7h2V1h-6z"}))),or||(or=a.createElement("use",{fill:"currentColor",xlinkHref:"#ico-gender_svg__a",fillRule:"evenodd"})))}var ur,cr,lr=["title","titleId"];function fr(){return fr=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},fr.apply(this,arguments)}function hr(e){var t=e.title,n=e.titleId,r=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,lr);return a.createElement("svg",fr({xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink",width:"1em",height:"1em",viewBox:"0 0 28 28","aria-labelledby":n},r),t?a.createElement("title",{id:n},t):null,ur||(ur=a.createElement("defs",null,a.createElement("path",{id:"ico-go-back_svg__a",d:"M18 10h-4.176l2-2.5-1.249-1-3.6 4.5 3.6 4.5 1.25-1-2-2.5H18c1.654 0 3 1.346 3 3s-1.346 3-3 3H6v2h12c2.757 0 5-2.243 5-5s-2.243-5-5-5"}))),cr||(cr=a.createElement("use",{fill:"currentColor",xlinkHref:"#ico-go-back_svg__a",fillRule:"evenodd"})))}var pr,dr,vr=["title","titleId"];function mr(){return mr=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},mr.apply(this,arguments)}function gr(e){var t=e.title,n=e.titleId,r=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,vr);return a.createElement("svg",mr({xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink",width:"1em",height:"1em",viewBox:"0 0 28 28","aria-labelledby":n},r),t?a.createElement("title",{id:n},t):null,pr||(pr=a.createElement("defs",null,a.createElement("path",{id:"ico-help_svg__a",d:"M15.25 19.25a1.25 1.25 0 11-2.5 0 1.25 1.25 0 012.5 0m2.25-7.75c0 1.704-.92 2.508-1.591 3.097-.567.495-.909.795-.909 1.59v.625h-2v-.625c0-1.704.92-2.508 1.591-3.096.567-.495.909-.795.909-1.591 0-.352-.108-1.5-1.5-1.5s-1.5 1.148-1.5 1.5h-2C10.5 9.815 11.595 8 14 8c2.405 0 3.5 1.815 3.5 3.5M14 23c-4.962 0-9-4.038-9-9s4.038-9 9-9 9 4.038 9 9-4.038 9-9 9m0-20C7.925 3 3 7.925 3 14s4.925 11 11 11 11-4.925 11-11S20.075 3 14 3"}))),dr||(dr=a.createElement("use",{fill:"currentColor",xlinkHref:"#ico-help_svg__a",fillRule:"evenodd"})))}var yr,br,wr=n(44),xr=["title","titleId"];function Er(){return Er=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Er.apply(this,arguments)}function _r(e){var t=e.title,n=e.titleId,r=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,xr);return a.createElement("svg",Er({xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink",width:"1em",height:"1em",viewBox:"0 0 28 28","aria-labelledby":n},r),t?a.createElement("title",{id:n},t):null,yr||(yr=a.createElement("defs",null,a.createElement("path",{id:"ico-house_svg__a",d:"M14 .997L27 8.58v17.418H1V8.58L14 .997zm0 2.315L3 9.73v14.269h12v-8.461c0-1.49 1.221-2.697 2.727-2.697 1.507 0 2.728 1.208 2.728 2.697l-.001 8.46H25V9.73L14 3.312zm3.727 10.528c-.956 0-1.727.762-1.727 1.697v8.303h3.455v-8.303c0-.935-.771-1.697-1.728-1.697zM10 12.498a3.5 3.5 0 110 7 3.5 3.5 0 010-7zm0 1a2.5 2.5 0 10.002 5.002A2.5 2.5 0 0010 13.498z"}))),br||(br=a.createElement("use",{fill:"currentColor",xlinkHref:"#ico-house_svg__a",fillRule:"evenodd"})))}var kr,Or,Cr=n(46),Ir=n(49),Rr=["title","titleId"];function Sr(){return Sr=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Sr.apply(this,arguments)}function Ar(e){var t=e.title,n=e.titleId,r=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,Rr);return a.createElement("svg",Sr({xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink",width:"1em",height:"1em",viewBox:"0 0 28 28","aria-labelledby":n},r),t?a.createElement("title",{id:n},t):null,kr||(kr=a.createElement("defs",null,a.createElement("path",{id:"ico-like_svg__a",d:"M24 17.5c0 1.93-1.57 3.5-3.5 3.5h-4.687a8.952 8.952 0 01-3.16-.573L11 19.807V11.6l.366-.195a10.936 10.936 0 004.704-4.871L17 4.631c.02-.04.037-.081.052-.123a.74.74 0 01.704-.509c.398 0 .724.314.743.706l-.494 5.2A.997.997 0 0019 10.999h3.5c.827 0 1.5.673 1.5 1.5v5zM9 21H4V10h5v11zM22.5 9h-2.4l.395-4.162c.003-.032.005-.063.005-.095A2.746 2.746 0 0017.756 2a2.741 2.741 0 00-2.578 1.806l-.905 1.848A8.93 8.93 0 0111 9.304V9a1 1 0 00-1-1H3a1 1 0 00-1 1v13a1 1 0 001 1h7a1 1 0 001-1v-.057l.951.356a10.93 10.93 0 003.862.701H20.5c3.032 0 5.5-2.468 5.5-5.5v-5c0-1.93-1.57-3.5-3.5-3.5z"}))),Or||(Or=a.createElement("use",{fill:"currentColor",xlinkHref:"#ico-like_svg__a",fillRule:"evenodd"})))}var Pr,Tr,Dr=["title","titleId"];function Nr(){return Nr=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Nr.apply(this,arguments)}function Mr(e){var t=e.title,n=e.titleId,r=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,Dr);return a.createElement("svg",Nr({xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink",width:"1em",height:"1em",viewBox:"0 0 28 28","aria-labelledby":n},r),t?a.createElement("title",{id:n},t):null,Pr||(Pr=a.createElement("defs",null,a.createElement("path",{id:"ico-list-horizontal_svg__a",d:"M16.25 22a2.25 2.25 0 10-4.502.002A2.25 2.25 0 0016.25 22m0-8a2.25 2.25 0 10-4.502.002A2.25 2.25 0 0016.25 14M14 8.25a2.25 2.25 0 11.002-4.502A2.25 2.25 0 0114 8.25"}))),Tr||(Tr=a.createElement("use",{fill:"currentColor",transform:"rotate(90 14 14)",xlinkHref:"#ico-list-horizontal_svg__a",fillRule:"evenodd"})))}var Fr,Br,jr=["title","titleId"];function Lr(){return Lr=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Lr.apply(this,arguments)}function zr(e){var t=e.title,n=e.titleId,r=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,jr);return a.createElement("svg",Lr({xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink",width:"1em",height:"1em",viewBox:"0 0 28 28","aria-labelledby":n},r),t?a.createElement("title",{id:n},t):null,Fr||(Fr=a.createElement("defs",null,a.createElement("path",{id:"ico-list-vertical_svg__a",d:"M0 28h28V0H0z"}))),Br||(Br=a.createElement("g",{fill:"none",fillRule:"evenodd"},a.createElement("mask",{id:"ico-list-vertical_svg__b",fill:"#fff"},a.createElement("use",{xlinkHref:"#ico-list-vertical_svg__a"})),a.createElement("path",{fill:"currentColor",d:"M16.25 22a2.25 2.25 0 10-4.502.002A2.25 2.25 0 0016.25 22m0-8a2.25 2.25 0 10-4.502.002A2.25 2.25 0 0016.25 14M14 8.25a2.25 2.25 0 11.002-4.502A2.25 2.25 0 0114 8.25",mask:"url(#ico-list-vertical_svg__b)"}))))}var Hr,Wr,Vr=n(27),Ur=["title","titleId"];function qr(){return qr=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},qr.apply(this,arguments)}function Gr(e){var t=e.title,n=e.titleId,r=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,Ur);return a.createElement("svg",qr({xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink",width:"1em",height:"1em",viewBox:"0 0 28 28","aria-labelledby":n},r),t?a.createElement("title",{id:n},t):null,Hr||(Hr=a.createElement("defs",null,a.createElement("path",{id:"ico-lock-locked_svg__a",d:"M15 15.5a.998.998 0 01-.5.861V19a.5.5 0 01-1 0v-2.639a.999.999 0 01-.5-.861 1 1 0 012 0zm5 6.5H8v-9a1 1 0 011-1h10a1 1 0 011 1v9zM12 7c0-1.103.897-2 2-2s2 .897 2 2v3h-4V7zm7 3h-1V7c0-2.205-1.794-4-4-4s-4 1.795-4 4v3H9c-1.654 0-3 1.346-3 3v11h16V13c0-1.654-1.346-3-3-3z"}))),Wr||(Wr=a.createElement("use",{fill:"currentColor",xlinkHref:"#ico-lock-locked_svg__a",fillRule:"evenodd"})))}var Xr,Kr,$r=["title","titleId"];function Yr(){return Yr=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Yr.apply(this,arguments)}function Jr(e){var t=e.title,n=e.titleId,r=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,$r);return a.createElement("svg",Yr({xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink",width:"1em",height:"1em",viewBox:"0 0 28 28","aria-labelledby":n},r),t?a.createElement("title",{id:n},t):null,Xr||(Xr=a.createElement("defs",null,a.createElement("path",{id:"ico-lock-unlocked_svg__a",d:"M13 15.5a1 1 0 012 0 .998.998 0 01-.5.861V19a.5.5 0 01-1 0v-2.639a.999.999 0 01-.5-.861zm6-3.5a1 1 0 011 1v9H8v-9a1 1 0 011-1h10zm1-10c-2.206 0-4 1.795-4 4v4H9c-1.654 0-3 1.346-3 3v11h16V13c0-1.654-1.346-3-3-3h-1V6c0-1.103.897-2 2-2s2 .897 2 2v2h2V6c0-2.205-1.794-4-4-4z"}))),Kr||(Kr=a.createElement("use",{fill:"currentColor",xlinkHref:"#ico-lock-unlocked_svg__a",fillRule:"evenodd"})))}var Zr,Qr,eo=["title","titleId"];function to(){return to=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},to.apply(this,arguments)}function no(e){var t=e.title,n=e.titleId,r=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,eo);return a.createElement("svg",to({xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink",width:"1em",height:"1em",viewBox:"0 0 28 28","aria-labelledby":n},r),t?a.createElement("title",{id:n},t):null,Zr||(Zr=a.createElement("defs",null,a.createElement("path",{id:"ico-log-out_svg__a",d:"M19.36 3.36v2h-13v18h13v2h-15v-22h15zm1.78 5.375l4.5 5.625-4.5 5.625-1.561-1.25 2.7-3.375H10.36v-2h11.92l-2.7-3.375 1.561-1.25z"}))),Qr||(Qr=a.createElement("use",{fill:"currentColor",xlinkHref:"#ico-log-out_svg__a",fillRule:"evenodd"})))}var ro,oo,ao=["title","titleId"];function io(){return io=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},io.apply(this,arguments)}function so(e){var t=e.title,n=e.titleId,r=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,ao);return a.createElement("svg",io({xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink",width:"1em",height:"1em",viewBox:"0 0 28 28","aria-labelledby":n},r),t?a.createElement("title",{id:n},t):null,ro||(ro=a.createElement("defs",null,a.createElement("path",{id:"ico-map-pin_svg__a",d:"M19.657 17.657A8 8 0 008.343 6.343c-3.124 3.124-3.124 8.19-.013 11.301L14 23.111l5.657-5.454zM21.07 4.929c3.905 3.905 3.905 10.237-.013 14.155L14 25.889l-.694-.669-6.377-6.149c-3.905-3.905-3.905-10.237 0-14.142 3.905-3.906 10.237-3.906 14.142 0zM14 7a5 5 0 100 10 5 5 0 000-10zm0 1c2.21 0 4 1.79 4 4s-1.79 4-4 4-4-1.79-4-4 1.79-4 4-4z"}))),oo||(oo=a.createElement("use",{fill:"currentColor",fillRule:"nonzero",xlinkHref:"#ico-map-pin_svg__a"})))}var uo,co,lo=["title","titleId"];function fo(){return fo=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},fo.apply(this,arguments)}function ho(e){var t=e.title,n=e.titleId,r=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,lo);return a.createElement("svg",fo({xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink",width:"1em",height:"1em",viewBox:"0 0 28 28","aria-labelledby":n},r),t?a.createElement("title",{id:n},t):null,uo||(uo=a.createElement("defs",null,a.createElement("path",{id:"ico-megaphone_svg__a",d:"M10 14.552a.5.5 0 01-.5.5h-2a.5.5 0 010-1h2a.5.5 0 01.5.5zm0-2a.5.5 0 01-.5.5h-2a.5.5 0 010-1h2a.5.5 0 01.5.5zm14 2v-2a1.001 1.001 0 010 2zm-2 7.498l-6-4.88V9.934l6-4.88V22.05zm-11-4.998v5a1 1 0 01-2 0v-5H5v-7h10v7h-4zm13-6.5V4a1.499 1.499 0 00-2.33-1.249l-6.525 5.301H3v11h4v3c0 1.654 1.345 3 3 3s3-1.346 3-3v-3h2.145l6.447 5.244.078.058a1.498 1.498 0 002.33-1.25v-6.552c1.654 0 3-1.346 3-3s-1.346-3-3-3z"}))),co||(co=a.createElement("use",{fill:"currentColor",xlinkHref:"#ico-megaphone_svg__a",fillRule:"evenodd"})))}var po,vo,mo=["title","titleId"];function go(){return go=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},go.apply(this,arguments)}function yo(e){var t=e.title,n=e.titleId,r=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,mo);return a.createElement("svg",go({xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink",width:"1em",height:"1em",viewBox:"0 0 28 28","aria-labelledby":n},r),t?a.createElement("title",{id:n},t):null,po||(po=a.createElement("defs",null,a.createElement("path",{id:"ico-menu_svg__a",d:"M4 7v2h20V8H4h20V7H4zm0 6v2h20v-1H4h20v-1H4zm0 6v2h20v-1H4h20v-1H4z"}))),vo||(vo=a.createElement("use",{fill:"currentColor",xlinkHref:"#ico-menu_svg__a",fillRule:"evenodd"})))}var bo,wo,xo=["title","titleId"];function Eo(){return Eo=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Eo.apply(this,arguments)}function _o(e){var t=e.title,n=e.titleId,r=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,xo);return a.createElement("svg",Eo({xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink",width:"1em",height:"1em",viewBox:"0 0 28 28","aria-labelledby":n},r),t?a.createElement("title",{id:n},t):null,bo||(bo=a.createElement("defs",null,a.createElement("path",{id:"ico-microphone_svg__a",d:"M14 5.042a2.976 2.976 0 012.972 2.972v2.013h-5.944V8.014A2.976 2.976 0 0114 5.042m0 10.944a2.975 2.975 0 01-2.972-2.972v-1.987h5.944v1.987A2.975 2.975 0 0114 15.986m6.5-3.338a.5.5 0 01.5.5c0 3.494-2.626 6.381-6.008 6.806.006.042.013.084.013.128v2.925l2.991-.004a1.001 1.001 0 01.003 2l-7.995.01a1 1 0 11-.003-1.999l3.006-.004-.002-.013v-2.915c0-.043.008-.084.013-.126C9.633 19.536 7 16.646 7 13.148a.5.5 0 111 0 5.874 5.874 0 005.867 5.866h.266A5.873 5.873 0 0020 13.148a.5.5 0 01.5-.5zM14 2.986a5.034 5.034 0 015.028 5.028v5A5.034 5.034 0 0114 18.042a5.033 5.033 0 01-5.028-5.028v-5A5.034 5.034 0 0114 2.986z"}))),wo||(wo=a.createElement("use",{fill:"currentColor",xlinkHref:"#ico-microphone_svg__a",fillRule:"evenodd"})))}var ko,Oo,Co=["title","titleId"];function Io(){return Io=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Io.apply(this,arguments)}function Ro(e){var t=e.title,n=e.titleId,r=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,Co);return a.createElement("svg",Io({xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink",width:"1em",height:"1em",viewBox:"0 0 28 28","aria-labelledby":n},r),t?a.createElement("title",{id:n},t):null,ko||(ko=a.createElement("defs",null,a.createElement("path",{id:"ico-more-selected_svg__a",d:"M14 10c2.206 0 4 1.794 4 4s-1.794 4-4 4-4-1.794-4-4 1.794-4 4-4zm10 0c2.206 0 4 1.794 4 4s-1.794 4-4 4-4-1.794-4-4 1.794-4 4-4zM4 18c-2.205 0-4-1.794-4-4s1.794-4 4-4c2.205 0 4 1.794 4 4s-1.795 4-4 4"}))),Oo||(Oo=a.createElement("use",{fill:"currentColor",xlinkHref:"#ico-more-selected_svg__a",fillRule:"evenodd"})))}var So,Ao,Po=["title","titleId"];function To(){return To=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},To.apply(this,arguments)}function Do(e){var t=e.title,n=e.titleId,r=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,Po);return a.createElement("svg",To({xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink",width:"1em",height:"1em",viewBox:"0 0 28 28","aria-labelledby":n},r),t?a.createElement("title",{id:n},t):null,So||(So=a.createElement("defs",null,a.createElement("path",{id:"ico-more_svg__a",d:"M12 14c0 1.103.897 2 2 2s2-.897 2-2-.897-2-2-2-2 .897-2 2zm-2 0c0-2.206 1.794-4 4-4s4 1.794 4 4-1.794 4-4 4-4-1.794-4-4zm12 0c0 1.103.897 2 2 2s2-.897 2-2-.897-2-2-2-2 .897-2 2zm-2 0c0-2.206 1.794-4 4-4s4 1.794 4 4-1.794 4-4 4-4-1.794-4-4zM2 14c0 1.103.897 2 2 2s2-.897 2-2-.897-2-2-2-2 .897-2 2zm-2 0c0-2.206 1.794-4 4-4 2.205 0 4 1.794 4 4s-1.795 4-4 4-4-1.794-4-4z"}))),Ao||(Ao=a.createElement("use",{fill:"currentColor",xlinkHref:"#ico-more_svg__a",fillRule:"evenodd"})))}var No,Mo,Fo=["title","titleId"];function Bo(){return Bo=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Bo.apply(this,arguments)}function jo(e){var t=e.title,n=e.titleId,r=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,Fo);return a.createElement("svg",Bo({xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink",width:"1em",height:"1em",viewBox:"0 0 28 28","aria-labelledby":n},r),t?a.createElement("title",{id:n},t):null,No||(No=a.createElement("defs",null,a.createElement("path",{id:"ico-my-data_svg__a",d:"M5 18.637c0-1.654 1.229-3.029 2.798-3.13a2.973 2.973 0 012.253.804A2.97 2.97 0 0111 18.5v3H5v-2.863zm8-.137a5.02 5.02 0 00-1.581-3.649 4.947 4.947 0 00-3.75-1.34C5.051 13.68 3 15.932 3 18.637V23.5h10v-5zm-3-10c0 1.103-.897 2-2 2s-2-.897-2-2 .897-2 2-2 2 .897 2 2zm2 0c0-2.205-1.794-4-4-4-2.205 0-4 1.795-4 4 0 2.206 1.795 4 4 4 2.206 0 4-1.794 4-4zm3 13h10v-2H15v2zm0-4h10v-2H15v2zm0-8h10v-2H15v2zm0 4h10v-2H15v2z"}))),Mo||(Mo=a.createElement("use",{fill:"currentColor",xlinkHref:"#ico-my-data_svg__a",fillRule:"evenodd"})))}var Lo,zo,Ho=["title","titleId"];function Wo(){return Wo=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Wo.apply(this,arguments)}function Vo(e){var t=e.title,n=e.titleId,r=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,Ho);return a.createElement("svg",Wo({xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink",width:"1em",height:"1em",viewBox:"0 0 28 28","aria-labelledby":n},r),t?a.createElement("title",{id:n},t):null,Lo||(Lo=a.createElement("defs",null,a.createElement("path",{id:"ico-name_svg__a",d:"M25 22H3V8h9c0 1.103.897 2 2 2s2-.897 2-2h9v14zM13 6a1.001 1.001 0 012 0v2a1 1 0 01-2 0V6zm1-2c1.103 0 2 .897 2 2h11v18H1V6h11c0-1.103.897-2 2-2zm2.5 13h-10a.5.5 0 000 1h10a.5.5 0 000-1zm3-4h-13a.5.5 0 000 1h13a.5.5 0 000-1z"}))),zo||(zo=a.createElement("use",{fill:"currentColor",xlinkHref:"#ico-name_svg__a",fillRule:"evenodd"})))}var Uo,qo,Go=["title","titleId"];function Xo(){return Xo=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Xo.apply(this,arguments)}function Ko(e){var t=e.title,n=e.titleId,r=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,Go);return a.createElement("svg",Xo({xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink",width:"1em",height:"1em",viewBox:"0 0 28 28","aria-labelledby":n},r),t?a.createElement("title",{id:n},t):null,Uo||(Uo=a.createElement("defs",null,a.createElement("path",{id:"ico-nfc-chip_svg__a",d:"M14 19a5.002 5.002 0 004.9-3.999L27 15v8H1v-8l8.1.001A5.002 5.002 0 0014 19zm0-8a3 3 0 110 6 3 3 0 010-6zm13-6v8h-8.1a5.002 5.002 0 00-9.8 0H1V5h26z"}))),qo||(qo=a.createElement("use",{fill:"currentColor",fillRule:"nonzero",xlinkHref:"#ico-nfc-chip_svg__a"})))}var $o,Yo,Jo=["title","titleId"];function Zo(){return Zo=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Zo.apply(this,arguments)}function Qo(e){var t=e.title,n=e.titleId,r=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,Jo);return a.createElement("svg",Zo({xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink",width:"1em",height:"1em",viewBox:"0 0 28 28","aria-labelledby":n},r),t?a.createElement("title",{id:n},t):null,$o||($o=a.createElement("defs",null,a.createElement("path",{id:"ico-office-building_svg__a",d:"M22 24h2v-8h-2v8zm-2 0h-4v-3c0-1.103-.897-2-2-2s-2 .897-2 2v3H8V4h12v20zm-5 0h-2v-3a1 1 0 012 0v3zM4 24h2V9H4v15zM22 2v12h4v12H2V7h4V2h16zm-4.5 13h-7a.5.5 0 000 1h7a.5.5 0 000-1zm0-3h-7a.5.5 0 000 1h7a.5.5 0 000-1zm0-3h-7a.5.5 0 000 1h7a.5.5 0 000-1zm0-3h-7a.5.5 0 000 1h7a.5.5 0 000-1z"}))),Yo||(Yo=a.createElement("use",{fill:"currentColor",xlinkHref:"#ico-office-building_svg__a",fillRule:"evenodd"})))}var ea,ta,na=["title","titleId"];function ra(){return ra=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},ra.apply(this,arguments)}function oa(e){var t=e.title,n=e.titleId,r=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,na);return a.createElement("svg",ra({xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink",width:"1em",height:"1em",viewBox:"0 0 28 28","aria-labelledby":n},r),t?a.createElement("title",{id:n},t):null,ea||(ea=a.createElement("defs",null,a.createElement("path",{id:"ico-pages-selected_svg__a",d:"M4 16h12c.552 0 1-.449 1-1V7.94H3V15c0 .551.449 1 1 1m12 2H4c-1.654 0-3-1.346-3-3V6c0-1.654 1.346-3 3-3h12c1.654 0 3 1.346 3 3v9c0 1.654-1.346 3-3 3m11 4c0 1.655-1.346 3-3 3H12c-1.654 0-3-1.345-3-3v-3h2v3a1 1 0 001 1h12a1 1 0 001-1v-7h-5v-5h4c1.654 0 3 1.347 3 3v9z"}))),ta||(ta=a.createElement("use",{fill:"currentColor",xlinkHref:"#ico-pages-selected_svg__a",fillRule:"evenodd"})))}var aa,ia,sa=["title","titleId"];function ua(){return ua=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},ua.apply(this,arguments)}function ca(e){var t=e.title,n=e.titleId,r=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,sa);return a.createElement("svg",ua({xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink",width:"1em",height:"1em",viewBox:"0 0 28 28","aria-labelledby":n},r),t?a.createElement("title",{id:n},t):null,aa||(aa=a.createElement("defs",null,a.createElement("path",{id:"ico-pages_svg__a",d:"M4 16h12c.552 0 1-.449 1-1V7.94H3V15c0 .551.449 1 1 1M3 6v.94h14V6a1 1 0 00-1-1H4c-.551 0-1 .448-1 1m13 12H4c-1.654 0-3-1.346-3-3V6c0-1.654 1.346-3 3-3h12c1.654 0 3 1.346 3 3v9c0 1.654-1.346 3-3 3m11-5v9c0 1.655-1.346 3-3 3H12c-1.654 0-3-1.345-3-3v-3h2v3a1 1 0 001 1h12a1 1 0 001-1v-7h-5v-1h5v-1c0-.55-.448-1-1-1h-4v-2h4c1.654 0 3 1.347 3 3"}))),ia||(ia=a.createElement("use",{fill:"currentColor",xlinkHref:"#ico-pages_svg__a",fillRule:"evenodd"})))}var la,fa,ha=["title","titleId"];function pa(){return pa=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},pa.apply(this,arguments)}function da(e){var t=e.title,n=e.titleId,r=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,ha);return a.createElement("svg",pa({xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink",width:"1em",height:"1em",viewBox:"0 0 28 28","aria-labelledby":n},r),t?a.createElement("title",{id:n},t):null,la||(la=a.createElement("defs",null,a.createElement("path",{id:"ico-payment-card_svg__a",d:"M19.26 18.26c1.137-1.138 1.764-2.651 1.764-4.26s-.627-3.121-1.765-4.26a.524.524 0 10-.74.742A4.943 4.943 0 0119.977 14c0 1.33-.518 2.579-1.458 3.519a.522.522 0 00.37.894.519.519 0 00.37-.154zm-1.432-1.432a4.003 4.003 0 000-5.656.497.497 0 00-.706 0 .499.499 0 000 .707 3.005 3.005 0 010 4.243.497.497 0 000 .706.495.495 0 00.706 0zm-1.413-1.413c.779-.78.779-2.05 0-2.829a.499.499 0 00-.707 0 .499.499 0 000 .707c.389.39.389 1.025 0 1.415a.499.499 0 00.353.853.502.502 0 00.354-.146zM6.5 11a.5.5 0 00-.5.5v2a.5.5 0 00.5.5h3a.5.5 0 00.5-.5v-2a.5.5 0 00-.5-.5h-3zm3 4h-3c-.827 0-1.5-.673-1.5-1.5v-2c0-.827.673-1.5 1.5-1.5h3c.827 0 1.5.673 1.5 1.5v2c0 .827-.673 1.5-1.5 1.5zM4 7c-.551 0-1 .449-1 1v12c0 .552.449 1 1 1h20a1 1 0 001-1V8c0-.551-.448-1-1-1H4zm20 16H4c-1.654 0-3-1.346-3-3V8c0-1.654 1.346-3 3-3h20c1.654 0 3 1.346 3 3v12c0 1.654-1.346 3-3 3z"}))),fa||(fa=a.createElement("use",{fill:"currentColor",xlinkHref:"#ico-payment-card_svg__a",fillRule:"evenodd"})))}var va,ma,ga=["title","titleId"];function ya(){return ya=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},ya.apply(this,arguments)}function ba(e){var t=e.title,n=e.titleId,r=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,ga);return a.createElement("svg",ya({xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink",width:"1em",height:"1em",viewBox:"0 0 28 28","aria-labelledby":n},r),t?a.createElement("title",{id:n},t):null,va||(va=a.createElement("defs",null,a.createElement("path",{id:"ico-phone_svg__a",d:"M19.175 23.494a4.288 4.288 0 003.24-1.26l.753-.752c.213-.214.33-.497.33-.799 0-.301-.117-.585-.33-.798l-2.08-2.08a1.123 1.123 0 00-1.156-.273l-2.02.673a3.11 3.11 0 01-3.201-.756l-4.161-4.16a3.113 3.113 0 01-.756-3.203l.673-2.02c.136-.407.032-.85-.273-1.155l-2.08-2.08a1.131 1.131 0 00-1.597 0l-.752.753a4.328 4.328 0 000 6.113l10.411 10.411c.85.85 1.915 1.342 2.999 1.386zm.188 2.004c-.09 0-.18-.002-.27-.006-1.587-.065-3.125-.764-4.33-1.97L4.35 13.112a6.328 6.328 0 010-8.941l.752-.753a3.132 3.132 0 014.425 0l2.08 2.08a3.11 3.11 0 01.756 3.202l-.673 2.02c-.136.408-.031.85.273 1.155l4.16 4.161c.306.305.749.41 1.156.273l2.02-.674a3.114 3.114 0 013.202.756l2.08 2.08c.591.592.917 1.378.917 2.213a3.11 3.11 0 01-.917 2.213l-.752.753a6.257 6.257 0 01-4.467 1.849z"}))),ma||(ma=a.createElement("use",{fill:"currentColor",xlinkHref:"#ico-phone_svg__a",fillRule:"evenodd"})))}var wa,xa,Ea=["title","titleId"];function _a(){return _a=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},_a.apply(this,arguments)}function ka(e){var t=e.title,n=e.titleId,r=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,Ea);return a.createElement("svg",_a({xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink",width:"1em",height:"1em",viewBox:"0 0 28 28","aria-labelledby":n},r),t?a.createElement("title",{id:n},t):null,wa||(wa=a.createElement("defs",null,a.createElement("path",{id:"ico-pin_svg__a",d:"M14 12.25a1.75 1.75 0 10.001 3.501A1.75 1.75 0 0014 12.25zm6 0a1.75 1.75 0 10.001 3.501A1.75 1.75 0 0020 12.25zm-12 0a1.75 1.75 0 10.001 3.501A1.75 1.75 0 008 12.25zM4 7c-.551 0-1 .449-1 1v12c0 .552.449 1 1 1h20a1 1 0 001-1V8c0-.551-.448-1-1-1H4zm20 16H4c-1.655 0-3-1.346-3-3V8c0-1.654 1.345-3 3-3h20c1.654 0 3 1.346 3 3v12c0 1.654-1.346 3-3 3z"}))),xa||(xa=a.createElement("use",{fill:"currentColor",xlinkHref:"#ico-pin_svg__a",fillRule:"evenodd"})))}var Oa,Ca=["title","titleId"];function Ia(){return Ia=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Ia.apply(this,arguments)}function Ra(e){var t=e.title,n=e.titleId,r=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,Ca);return a.createElement("svg",Ia({xmlns:"http://www.w3.org/2000/svg",width:"1em",height:"1em",viewBox:"0 0 28 28","aria-labelledby":n},r),t?a.createElement("title",{id:n},t):null,Oa||(Oa=a.createElement("path",{fill:"currentColor",d:"M14 19.5c-5.417 0-7.816-4.78-7.994-5.5.178-.72 2.577-5.5 7.994-5.5s7.815 4.78 7.993 5.5c-.178.72-2.576 5.5-7.993 5.5m11 .5v5h-5v-2h3v-3h2zM5 20v3h3v2H3v-5h2zm9-13.5c6.667 0 10 6.068 10 7.5 0 1.432-3.333 7.5-10 7.5S4 15.432 4 14c0-1.432 3.333-7.5 10-7.5zm0 4c-1.93 0-3.5 1.57-3.5 3.5s1.57 3.5 3.5 3.5 3.5-1.57 3.5-3.5-1.57-3.5-3.5-3.5zm0 2c.827 0 1.5.673 1.5 1.5s-.673 1.5-1.5 1.5-1.5-.673-1.5-1.5.673-1.5 1.5-1.5zM8 3v2H5v3H3V3h5zm17 0v5h-2V5h-3V3h5z",fillRule:"evenodd"})))}var Sa,Aa,Pa=["title","titleId"];function Ta(){return Ta=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Ta.apply(this,arguments)}function Da(e){var t=e.title,n=e.titleId,r=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,Pa);return a.createElement("svg",Ta({xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink",width:"1em",height:"1em",viewBox:"0 0 28 28","aria-labelledby":n},r),t?a.createElement("title",{id:n},t):null,Sa||(Sa=a.createElement("defs",null,a.createElement("path",{id:"ico-profile-selected_svg__a",d:"M17.5 11.5a.5.5 0 01.5-.5h3a.5.5 0 010 1h-3a.5.5 0 01-.5-.5m2.5 6a.5.5 0 01-.5.5H18a.5.5 0 010-1h1.5a.5.5 0 01.5.5m1.5-3a.5.5 0 01-.5.5h-3a.5.5 0 010-1h3a.5.5 0 01.5.5M11 7c-2.206 0-4 1.794-4 4s1.794 4 4 4 4-1.794 4-4-1.794-4-4-4m5 16.799V21c0-2.757-2.243-5-5-5a5.005 5.005 0 00-4.913 4.09A9.934 9.934 0 014 14C4 8.486 8.486 4 14 4s10 4.486 10 10c0 4.829-3.441 8.87-8 9.799M14 2C7.383 2 2 7.383 2 14s5.383 12 12 12 12-5.383 12-12S20.617 2 14 2"}))),Aa||(Aa=a.createElement("use",{fill:"currentColor",xlinkHref:"#ico-profile-selected_svg__a",fillRule:"evenodd"})))}var Na,Ma,Fa=["title","titleId"];function Ba(){return Ba=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Ba.apply(this,arguments)}function ja(e){var t=e.title,n=e.titleId,r=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,Fa);return a.createElement("svg",Ba({xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink",width:"1em",height:"1em",viewBox:"0 0 28 28","aria-labelledby":n},r),t?a.createElement("title",{id:n},t):null,Na||(Na=a.createElement("defs",null,a.createElement("path",{id:"ico-profile_svg__a",d:"M17.5 11.5a.5.5 0 01.5-.5h3a.5.5 0 010 1h-3a.5.5 0 01-.5-.5m2.5 6a.5.5 0 01-.5.5H18a.5.5 0 010-1h1.5a.5.5 0 01.5.5m1.5-3a.5.5 0 01-.5.5h-3a.5.5 0 010-1h3a.5.5 0 01.5.5M11 13c-1.103 0-2-.897-2-2s.897-2 2-2 2 .897 2 2-.897 2-2 2m0-6c-2.206 0-4 1.794-4 4s1.794 4 4 4 4-1.794 4-4-1.794-4-4-4m5 16.799V21c0-2.757-2.243-5-5-5a5.005 5.005 0 00-4.913 4.09A9.934 9.934 0 014 14C4 8.486 8.486 4 14 4s10 4.486 10 10c0 4.829-3.441 8.87-8 9.799M8 21.98V21c0-1.654 1.346-3 3-3s3 1.346 3 3v3a9.94 9.94 0 01-6-2.019M14 2C7.383 2 2 7.383 2 14s5.383 12 12 12 12-5.383 12-12S20.617 2 14 2"}))),Ma||(Ma=a.createElement("use",{fill:"currentColor",xlinkHref:"#ico-profile_svg__a",fillRule:"evenodd"})))}var La,za,Ha=["title","titleId"];function Wa(){return Wa=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Wa.apply(this,arguments)}function Va(e){var t=e.title,n=e.titleId,r=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,Ha);return a.createElement("svg",Wa({xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink",width:"1em",height:"1em",viewBox:"0 0 28 28","aria-labelledby":n},r),t?a.createElement("title",{id:n},t):null,La||(La=a.createElement("defs",null,a.createElement("path",{id:"ico-receive_svg__a",d:"M10.436 21.535a.483.483 0 01-.568-.02.485.485 0 01-.181-.539l1.85-6.476h9.954l-11.055 7.035zm-.568-15.05a.519.519 0 01.3-.104c.08 0 .171.022.268.083L21.491 13.5h-9.954l-1.85-6.476a.483.483 0 01.181-.538zM8.672 4.884a2.481 2.481 0 012.837-.106L26.003 14l-14.494 9.223a2.49 2.49 0 01-2.837-.106 2.48 2.48 0 01-.908-2.69L9.6 14 7.764 7.573a2.48 2.48 0 01.908-2.69zM7.14 14.5a.5.5 0 010 1h-4a.5.5 0 010-1zm-1-2a.5.5 0 010 1h-4a.5.5 0 010-1z"}))),za||(za=a.createElement("use",{fill:"currentColor",transform:"matrix(-1 0 0 1 27.642 0)",xlinkHref:"#ico-receive_svg__a",fillRule:"evenodd"})))}var Ua,qa,Ga=["title","titleId"];function Xa(){return Xa=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Xa.apply(this,arguments)}function Ka(e){var t=e.title,n=e.titleId,r=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,Ga);return a.createElement("svg",Xa({xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink",width:"1em",height:"1em",viewBox:"0 0 28 28","aria-labelledby":n},r),t?a.createElement("title",{id:n},t):null,Ua||(Ua=a.createElement("defs",null,a.createElement("path",{id:"ico-retry_svg__a",d:"M9.581 7.858c2.977-3.099 7.675-3.572 11.174-1.36l-2.12.722.645 1.893 4.585-1.56.102-4.843-2-.042-.046 2.208C17.625 2.094 11.813 2.647 8.139 6.472a10.844 10.844 0 00-3.039 7.55c0 1.442.279 2.846.827 4.173l1.849-.765a8.85 8.85 0 01-.676-3.407c0-2.31.881-4.5 2.481-6.165m17.32 6.119c0 2.828-1.08 5.51-3.04 7.55a10.868 10.868 0 01-7.863 3.345c-2.06 0-4.122-.582-5.918-1.746l-.047 2.205-2-.042.103-4.842 4.584-1.56.645 1.893-2.12.721c3.5 2.212 8.198 1.74 11.174-1.359a8.86 8.86 0 002.481-6.165 8.876 8.876 0 00-.675-3.408l1.848-.764c.549 1.327.827 2.73.827 4.172"}))),qa||(qa=a.createElement("use",{fill:"currentColor",xlinkHref:"#ico-retry_svg__a",fillRule:"evenodd"})))}var $a,Ya,Ja=n(50),Za=n(51),Qa=["title","titleId"];function ei(){return ei=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},ei.apply(this,arguments)}function ti(e){var t=e.title,n=e.titleId,r=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,Qa);return a.createElement("svg",ei({xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink",width:"1em",height:"1em",viewBox:"0 0 28 28","aria-labelledby":n},r),t?a.createElement("title",{id:n},t):null,$a||($a=a.createElement("defs",null,a.createElement("path",{id:"ico-ruid_svg__a",d:"M10.998 23.528V21c0-1.654 1.346-3 3-3 1.655 0 3 1.346 3 3v2.524c-1.934.606-4.03.622-6 .004m14.874-11.259a11.92 11.92 0 00-4.702-7.89A11.994 11.994 0 007.99 3.61l1 1.732a9.997 9.997 0 0110.985.641 9.935 9.935 0 013.918 6.574 9.94 9.94 0 01-1.878 7.42 9.935 9.935 0 01-3.017 2.678V21c0-2.757-2.243-5-5-5s-5 2.243-5 5v1.653c-.333-.193-.66-.401-.977-.637-3.945-2.941-5.088-8.256-2.946-12.508l.988 2.046 1.801-.869L5.776 6.36l-4.778.482.2 1.99 2.076-.21C.714 13.724 2.096 20.094 6.826 23.62a11.939 11.939 0 007.157 2.375c3.663 0 7.283-1.667 9.635-4.823a11.922 11.922 0 002.254-8.903M13.998 9c1.103 0 2 .897 2 2s-.897 2-2 2-2-.897-2-2 .897-2 2-2m0 6c2.206 0 4-1.795 4-4 0-2.206-1.794-4-4-4-2.205 0-4 1.794-4 4 0 2.205 1.795 4 4 4"}))),Ya||(Ya=a.createElement("use",{fill:"currentColor",xlinkHref:"#ico-ruid_svg__a",fillRule:"evenodd"})))}var ni,ri,oi=["title","titleId"];function ai(){return ai=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},ai.apply(this,arguments)}function ii(e){var t=e.title,n=e.titleId,r=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,oi);return a.createElement("svg",ai({xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink",width:"1em",height:"1em",viewBox:"0 0 28 28","aria-labelledby":n},r),t?a.createElement("title",{id:n},t):null,ni||(ni=a.createElement("defs",null,a.createElement("path",{id:"ico-scan-qr_svg__a",d:"M15 19h2v4h-2v2h-2v-4h2v-2zm0-4H9v-2h4v-2h2v4zM3 15h2v-2H3v2zm10-8h2V3h-2v4zm4 10h2v-4h-2v4zm6-4h2v4h-4v-2h2v-2zm-4-4h4V5h-4v4zm5-6h-6a1 1 0 00-1 1v6a1 1 0 001 1h6a1 1 0 001-1V4a1 1 0 00-1-1zM5 23h4v-4H5v4zm5-6H4a1 1 0 00-1 1v6a1 1 0 001 1h6a1 1 0 001-1v-6a1 1 0 00-1-1zm11 6h2v-2h-2v2zm3-4h-4a1 1 0 00-1 1v4a1 1 0 001 1h4a1 1 0 001-1v-4a1 1 0 00-1-1zM5 9h4V5H5v4zm-1 2h6a1 1 0 001-1V4a1 1 0 00-1-1H4a1 1 0 00-1 1v6a1 1 0 001 1z"}))),ri||(ri=a.createElement("use",{fill:"currentColor",xlinkHref:"#ico-scan-qr_svg__a",fillRule:"evenodd"})))}var si,ui,ci=["title","titleId"];function li(){return li=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},li.apply(this,arguments)}function fi(e){var t=e.title,n=e.titleId,r=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,ci);return a.createElement("svg",li({xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink",width:"1em",height:"1em",viewBox:"0 0 28 28","aria-labelledby":n},r),t?a.createElement("title",{id:n},t):null,si||(si=a.createElement("defs",null,a.createElement("path",{id:"ico-search_svg__a",d:"M16.481 7.5a.5.5 0 01-.5.5c-2.206 0-4 1.794-4 4a.5.5 0 01-1 0c0-2.757 2.243-5 5-5a.5.5 0 01.5.5m3.742 8.742A5.951 5.951 0 0115.982 18a5.956 5.956 0 01-4.242-1.758 6.005 6.005 0 010-8.485A5.957 5.957 0 0115.98 6c1.603 0 3.11.624 4.243 1.758a6.007 6.007 0 010 8.485m1.413-9.9A7.939 7.939 0 0015.982 4a7.944 7.944 0 00-5.656 2.343c-2.88 2.88-3.095 7.422-.659 10.558L4.96 21.607l1.415 1.414 4.705-4.706A7.936 7.936 0 0015.981 20a7.944 7.944 0 005.656-2.343c3.12-3.12 3.12-8.194 0-11.314"}))),ui||(ui=a.createElement("use",{fill:"currentColor",xlinkHref:"#ico-search_svg__a",fillRule:"evenodd"})))}var hi,pi,di=["title","titleId"];function vi(){return vi=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},vi.apply(this,arguments)}function mi(e){var t=e.title,n=e.titleId,r=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,di);return a.createElement("svg",vi({xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink",width:"1em",height:"1em",viewBox:"0 0 28 28","aria-labelledby":n},r),t?a.createElement("title",{id:n},t):null,hi||(hi=a.createElement("defs",null,a.createElement("path",{id:"ico-send_svg__a",d:"M10.796 21.535a.481.481 0 01-.567-.02.483.483 0 01-.182-.539l1.85-6.476h9.955l-11.056 7.035zm-.567-15.05a.51.51 0 01.3-.104c.08 0 .17.022.267.083L21.852 13.5h-9.955l-1.85-6.476a.48.48 0 01.181-.538zM9.032 4.884a2.483 2.483 0 012.838-.106L26.363 14 11.87 23.223a2.49 2.49 0 01-2.838-.106 2.48 2.48 0 01-.908-2.69L9.96 14 8.124 7.573a2.482 2.482 0 01.908-2.69zM7.5 14.5a.5.5 0 010 1h-4a.5.5 0 010-1zm-1-2a.5.5 0 010 1h-4a.5.5 0 010-1z"}))),pi||(pi=a.createElement("use",{fill:"currentColor",xlinkHref:"#ico-send_svg__a",fillRule:"evenodd"})))}var gi,yi,bi=["title","titleId"];function wi(){return wi=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},wi.apply(this,arguments)}function xi(e){var t=e.title,n=e.titleId,r=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,bi);return a.createElement("svg",wi({xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink",width:"1em",height:"1em",viewBox:"0 0 28 28","aria-labelledby":n},r),t?a.createElement("title",{id:n},t):null,gi||(gi=a.createElement("defs",null,a.createElement("path",{id:"ico-settings_svg__a",d:"M9.239 21.09l.53.3a8.378 8.378 0 001.947.8l.588.162.56 2.648h2.185l.56-2.648.589-.162c.7-.19 1.368-.468 1.988-.825l.53-.305 2.29 1.49 1.545-1.544-1.497-2.3.3-.529a8.424 8.424 0 00.791-1.927l.161-.588 2.694-.57v-2.184l-2.694-.57-.161-.588a8.514 8.514 0 00-.791-1.928l-.3-.528 1.497-2.3-1.545-1.545-2.29 1.491-.53-.306a8.47 8.47 0 00-1.988-.825l-.589-.16L15.049 3h-2.185l-.56 2.649-.588.16a8.442 8.442 0 00-1.948.801l-.529.3-2.245-1.46L5.45 6.993 6.904 9.23l-.306.531a8.431 8.431 0 00-.834 2.007l-.16.589-2.604.55v2.185l2.604.551.16.59a8.48 8.48 0 00.833 2.006l.307.531-1.455 2.236 1.546 1.544 2.244-1.46zm5.81 5.91h-2.185a2.01 2.01 0 01-1.957-1.586l-.312-1.475c-.436-.146-.86-.32-1.268-.52l-1.242.808a2.01 2.01 0 01-2.505-.262L4.035 22.42a2.01 2.01 0 01-.262-2.505l.797-1.224c-.216-.432-.401-.88-.556-1.34l-1.428-.302A2.01 2.01 0 011 15.092v-2.184c0-.94.667-1.762 1.587-1.957l1.427-.302c.155-.46.34-.908.556-1.34l-.797-1.224a2.01 2.01 0 01.262-2.505L5.58 4.035a2.009 2.009 0 012.505-.262l1.242.808c.409-.2.833-.374 1.268-.52l.313-1.474A2.008 2.008 0 0112.864 1h2.185c.94 0 1.762.667 1.957 1.587l.311 1.474a10.4 10.4 0 011.317.546l1.281-.834a2.009 2.009 0 012.505.262l1.545 1.545c.665.665.774 1.718.262 2.505l-.845 1.299c.195.401.366.817.511 1.245l1.521.322A2.009 2.009 0 0127 12.908v2.184c0 .94-.667 1.763-1.586 1.957l-1.521.322c-.145.428-.316.845-.511 1.245l.845 1.299a2.01 2.01 0 01-.262 2.505l-1.545 1.545a2.01 2.01 0 01-2.505.262l-1.281-.834c-.425.212-.864.394-1.317.546l-.311 1.475A2.01 2.01 0 0115.049 27zm-1.13-17.735c-2.757 0-5 2.243-5 5 0 2.758 2.243 5 5 5s5-2.242 5-5c0-2.757-2.243-5-5-5zm0 11c-3.309 0-6-2.691-6-6 0-3.308 2.692-6 6-6s6 2.692 6 6c0 3.309-2.692 6-6 6z"}))),yi||(yi=a.createElement("use",{fill:"currentColor",xlinkHref:"#ico-settings_svg__a",fillRule:"evenodd"})))}var Ei,_i,ki=n(45),Oi=["title","titleId"];function Ci(){return Ci=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Ci.apply(this,arguments)}function Ii(e){var t=e.title,n=e.titleId,r=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,Oi);return a.createElement("svg",Ci({xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink",width:"1em",height:"1em",viewBox:"0 0 28 28","aria-labelledby":n},r),t?a.createElement("title",{id:n},t):null,Ei||(Ei=a.createElement("defs",null,a.createElement("path",{id:"ico-signature_svg__a",d:"M23.999 24.76a1 1 0 01-.998.955l-.047-.001c-1.869-.085-3.282-.921-4.529-1.658-.73-.433-1.422-.841-2.163-1.091-.94-.317-1.913.235-3.037.873-1.022.58-2.078 1.18-3.283 1.18-.412 0-.782-.184-1.016-.503-.484-.661-.207-1.535.176-2.743.206-.65.688-2.17.476-2.522-.04-.047-.066-.06-.066-.06-.632.012-2.4 2.42-3.609 4.962a1 1 0 11-1.806-.859c.642-1.351 2.914-5.783 5.178-6.08.695-.09 1.346.176 1.832.749.947 1.115.392 2.868-.098 4.414l-.134.425c.432-.174.89-.434 1.363-.702 1.347-.765 2.874-1.631 4.661-1.03.942.317 1.756.8 2.545 1.265 1.147.679 2.23 1.32 3.602 1.382a1 1 0 01.953 1.045zM7.726 4.87a1.99 1.99 0 011.414-.585c.535 0 1.037.208 1.414.586l4.243 4.242-2.828 2.829-4.243-4.243a1.986 1.986 0 01-.586-1.414c0-.534.208-1.036.586-1.414zm9.981 12.647l2.666-2.666 1.494 4.148-4.16-1.482zm-.788-.625l-4.243-4.243 2.828-2.829 4.243 4.243-2.828 2.829zm-.56 2.268l4.837 1.723c.229.081.463.121.693.121.517 0 1.016-.2 1.393-.577.546-.545.72-1.345.456-2.087l-1.723-4.837-9.693-9.693c.39-.39 1.025-.39 1.415 0l4.596 4.596a.495.495 0 00.707 0 .5.5 0 000-.707l-4.596-4.596a2.003 2.003 0 00-2.829 0c-.008.008-.011.02-.019.028a3.965 3.965 0 00-2.456-.846 3.971 3.971 0 00-2.828 1.172 4.003 4.003 0 000 5.656L16.359 19.16z"}))),_i||(_i=a.createElement("use",{fill:"currentColor",xlinkHref:"#ico-signature_svg__a",fillRule:"evenodd"})))}var Ri,Si,Ai=["title","titleId"];function Pi(){return Pi=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Pi.apply(this,arguments)}function Ti(e){var t=e.title,n=e.titleId,r=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,Ai);return a.createElement("svg",Pi({xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink",width:"1em",height:"1em",viewBox:"0 0 28 28","aria-labelledby":n},r),t?a.createElement("title",{id:n},t):null,Ri||(Ri=a.createElement("defs",null,a.createElement("path",{id:"ico-face_2_svg__a",d:"M14 2.66c6.263 0 11.34 5.077 11.34 11.34S20.263 25.34 14 25.34 2.66 20.263 2.66 14 7.737 2.66 14 2.66zm0 1.96a9.38 9.38 0 10.001 18.761A9.38 9.38 0 0014 4.62zm-3.147 12.568l.298.04c.125.014.274.03.447.047l.18.017c1.558.14 3.21.156 4.834-.03l.535-.071.073.972.073-.006c-1.834.275-3.778.275-5.603.111l-.496-.05-.487-.06.146-.97zm-.04-6.831a1.783 1.783 0 11-.001 3.567 1.783 1.783 0 01.002-3.567zm6.374 0a1.783 1.783 0 110 3.567 1.783 1.783 0 010-3.567zm-6.373.98a.804.804 0 100 1.608.804.804 0 000-1.608zm6.373 0a.804.804 0 100 1.608.804.804 0 000-1.608z"}))),Si||(Si=a.createElement("use",{fill:"currentColor",fillRule:"nonzero",xlinkHref:"#ico-face_2_svg__a"})))}var Di,Ni,Mi=["title","titleId"];function Fi(){return Fi=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Fi.apply(this,arguments)}function Bi(e){var t=e.title,n=e.titleId,r=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,Mi);return a.createElement("svg",Fi({xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink",width:"1em",height:"1em",viewBox:"0 0 28 28","aria-labelledby":n},r),t?a.createElement("title",{id:n},t):null,Di||(Di=a.createElement("defs",null,a.createElement("path",{id:"ico-sort_svg__a",d:"M8 4.72L2.375 9.218l1.25 1.562L7 8.081V23h2V8.08l3.375 2.701 1.25-1.562L8 4.719zM19 5v14.919l-3.375-2.7-1.25 1.562 5.625 4.5 5.625-4.5-1.25-1.562-3.375 2.7V5h-2z"}))),Ni||(Ni=a.createElement("use",{fill:"currentColor",xlinkHref:"#ico-sort_svg__a",fillRule:"evenodd"})))}var ji,Li,zi=["title","titleId"];function Hi(){return Hi=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Hi.apply(this,arguments)}function Wi(e){var t=e.title,n=e.titleId,r=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,zi);return a.createElement("svg",Hi({xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink",width:"1em",height:"1em",viewBox:"0 0 28 28","aria-labelledby":n},r),t?a.createElement("title",{id:n},t):null,ji||(ji=a.createElement("defs",null,a.createElement("path",{id:"ico-text-input_svg__a",d:"M25 8c0-.551-.448-1-1-1H4c-.551 0-1 .449-1 1v12c0 .552.449 1 1 1h20a1 1 0 001-1V8zm2 0v12c0 1.654-1.346 3-3 3H4c-1.654 0-3-1.346-3-3V8c0-1.654 1.346-3 3-3h20c1.654 0 3 1.346 3 3zM7 10v8h.5a.5.5 0 010 1h-2a.5.5 0 010-1H6v-8h-.5a.5.5 0 010-1h2a.5.5 0 010 1H7z"}))),Li||(Li=a.createElement("use",{fill:"currentColor",xlinkHref:"#ico-text-input_svg__a",fillRule:"evenodd"})))}var Vi,Ui,qi=n(69),Gi=["title","titleId"];function Xi(){return Xi=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Xi.apply(this,arguments)}function Ki(e){var t=e.title,n=e.titleId,r=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,Gi);return a.createElement("svg",Xi({xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink",width:"1em",height:"1em",viewBox:"0 0 28 28","aria-labelledby":n},r),t?a.createElement("title",{id:n},t):null,Vi||(Vi=a.createElement("defs",null,a.createElement("path",{id:"ico-upload_svg__a",d:"M19.625 14.78l-1.25-1.561-3.375 2.7V5h-2v10.92l-3.375-2.7-1.25 1.562L14 19.28l5.625-4.5zM24 21v2H4v-2h20z"}))),Ui||(Ui=a.createElement("use",{fill:"currentColor",transform:"rotate(180 14 14)",xlinkHref:"#ico-upload_svg__a",fillRule:"evenodd"})))}var $i,Yi,Ji=["title","titleId"];function Zi(){return Zi=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Zi.apply(this,arguments)}function Qi(e){var t=e.title,n=e.titleId,r=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,Ji);return a.createElement("svg",Zi({xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink",width:"1em",height:"1em",viewBox:"0 0 28 28","aria-labelledby":n},r),t?a.createElement("title",{id:n},t):null,$i||($i=a.createElement("defs",null,a.createElement("path",{id:"ico-verified_svg__a",d:"M23 4v9.489c0 3.453-1.533 6.354-4.557 8.621a16.31 16.31 0 01-3.154 1.84c-.355.159-.704.299-1.035.418l-.254.088-.254-.088a16.332 16.332 0 01-4.189-2.258C6.533 19.843 5 16.942 5 13.489V4h18zm-8.564 22.415c.095-.028.262-.082.492-.165.378-.135.774-.294 1.174-.473a18.273 18.273 0 003.54-2.067C23.198 21.045 25 17.606 25 13.488V2H3v11.489c0 4.117 1.803 7.556 5.357 10.221a18.303 18.303 0 004.715 2.54c.23.083.398.137.492.165l.436.127.436-.128zm-1.686-8.501l-4.707-4.707 1.414-1.414 3.293 3.293 6.293-6.293 1.414 1.414-7.707 7.707z"}))),Yi||(Yi=a.createElement("use",{fill:"currentColor",xlinkHref:"#ico-verified_svg__a",fillRule:"evenodd"})))}var es,ts,ns=["title","titleId"];function rs(){return rs=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},rs.apply(this,arguments)}function os(e){var t=e.title,n=e.titleId,r=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,ns);return a.createElement("svg",rs({xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink",width:"1em",height:"1em",viewBox:"0 0 28 28","aria-labelledby":n},r),t?a.createElement("title",{id:n},t):null,es||(es=a.createElement("defs",null,a.createElement("path",{id:"ico-video_svg__a",d:"M24 18.382l-4-2v-4.764l4-2v8.764zM18 19.5c0 .27-.229.5-.5.5h-13c-.271 0-.5-.23-.5-.5v-11c0-.271.229-.5.5-.5h13c.271 0 .5.229.5.5v11zM17.5 6C18.878 6 20 7.121 20 8.5v.882l4.552-2.277A1.002 1.002 0 0126 8v12a1.001 1.001 0 01-1.448.894L20 18.618v.882c0 1.378-1.122 2.5-2.5 2.5h-13A2.503 2.503 0 012 19.5v-11C2 7.121 3.122 6 4.5 6zM7 9c-1.103 0-2 .897-2 2s.897 2 2 2 2-.897 2-2-.897-2-2-2zm0 1a1.001 1.001 0 010 2 1.001 1.001 0 010-2z"}))),ts||(ts=a.createElement("use",{fill:"currentColor",xlinkHref:"#ico-video_svg__a",fillRule:"evenodd"})))}var as,is,ss=["title","titleId"];function us(){return us=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},us.apply(this,arguments)}function cs(e){var t=e.title,n=e.titleId,r=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,ss);return a.createElement("svg",us({xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink",width:"1em",height:"1em",viewBox:"0 0 28 28","aria-labelledby":n},r),t?a.createElement("title",{id:n},t):null,as||(as=a.createElement("defs",null,a.createElement("path",{id:"ico-yoti-icon_svg__a",d:"M22.02 22.02h-7.03v-3.055a5.057 5.057 0 004.06-4.95 5.059 5.059 0 00-4.06-4.952V5.98h7.03v16.04zM5.98 5.98h7.03v3.083c-2.312.461-4.06 2.506-4.06 4.951s1.748 4.49 4.06 4.951v3.055H5.98V5.98zM14 17.084a3.072 3.072 0 01-3.069-3.07A3.073 3.073 0 0114 10.945a3.073 3.073 0 013.07 3.07A3.074 3.074 0 0114 17.084zM4 24h20V4H4v20z"}))),is||(is=a.createElement("use",{fill:"currentColor",xlinkHref:"#ico-yoti-icon_svg__a",fillRule:"evenodd"})))}var ls=n(52),fs=n(53)},,,function(e,t,n){"use strict";n.d(t,"a",(function(){return u}));var r,o,a=n(0),i=["title","titleId"];function s(){return s=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},s.apply(this,arguments)}function u(e){var t=e.title,n=e.titleId,u=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,i);return a.createElement("svg",s({xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink",width:"1em",height:"1em",viewBox:"0 0 28 28","aria-labelledby":n},u),t?a.createElement("title",{id:n},t):null,r||(r=a.createElement("defs",null,a.createElement("path",{id:"ico-clear_svg__a",d:"M18.707 10.707L15.414 14l3.293 3.293-1.414 1.414L14 15.414l-3.293 3.293-1.414-1.414L12.586 14l-3.293-3.293 1.414-1.414L14 12.586l3.293-3.293 1.414 1.414zM14 22c-4.41 0-8-3.589-8-8s3.59-8 8-8c4.411 0 8 3.589 8 8s-3.589 8-8 8zm0-18C8.486 4 4 8.486 4 14s4.486 10 10 10 10-4.486 10-10S19.514 4 14 4z"}))),o||(o=a.createElement("g",{fill:"none",fillRule:"evenodd"},a.createElement("path",{fill:"none",d:"M0 28h28V0H0z"}),a.createElement("use",{fill:"currentColor",xlinkHref:"#ico-clear_svg__a"}))))}},,,,,,,,,,,,function(e,t,n){"use strict";n.d(t,"a",(function(){return u}));var r,o,a=n(0),i=["title","titleId"];function s(){return s=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},s.apply(this,arguments)}function u(e){var t=e.title,n=e.titleId,u=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,i);return a.createElement("svg",s({xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink",width:"1em",height:"1em",viewBox:"0 0 28 28","aria-labelledby":n},u),t?a.createElement("title",{id:n},t):null,r||(r=a.createElement("defs",null,a.createElement("path",{id:"ico-loading-spinner_svg__a",d:"M14 4v2a8 8 0 108 8h2c0 5.523-4.477 10-10 10S4 19.523 4 14 8.477 4 14 4z"}))),o||(o=a.createElement("g",{fill:"none",fillRule:"evenodd"},a.createElement("path",{fill:"none",d:"M0 28h28V0H0z"}),a.createElement("use",{fill:"currentColor",fillRule:"nonzero",xlinkHref:"#ico-loading-spinner_svg__a"}))))}},,function(e,t,n){"use strict";n.d(t,"a",(function(){return u}));var r,o,a=n(0),i=["title","titleId"];function s(){return s=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},s.apply(this,arguments)}function u(e){var t=e.title,n=e.titleId,u=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,i);return a.createElement("svg",s({xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink",width:"1em",height:"1em",viewBox:"0 0 28 28","aria-labelledby":n},u),t?a.createElement("title",{id:n},t):null,r||(r=a.createElement("defs",null,a.createElement("path",{id:"ico-chevron-down_svg__a",d:"M14 18.981l-8.625-6.9 1.25-1.562 7.375 5.9 7.375-5.9 1.25 1.562z"}))),o||(o=a.createElement("use",{fill:"currentColor",xlinkHref:"#ico-chevron-down_svg__a",fillRule:"evenodd"})))}},,,,,,,,,,,,,,function(e,t,n){"use strict";n.d(t,"a",(function(){return u}));var r,o,a=n(0),i=["title","titleId"];function s(){return s=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},s.apply(this,arguments)}function u(e){var t=e.title,n=e.titleId,u=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,i);return a.createElement("svg",s({xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink",width:"1em",height:"1em",viewBox:"0 0 28 28","aria-labelledby":n},u),t?a.createElement("title",{id:n},t):null,r||(r=a.createElement("defs",null,a.createElement("path",{id:"ico-calendar_svg__a",d:"M13 20a1 1 0 112 0 1 1 0 01-2 0zm-3.5 0a1 1 0 112 0 1 1 0 01-2 0zM6 20a1 1 0 112 0 1 1 0 01-2 0zm14-4a1 1 0 112 0 1 1 0 01-2 0zm-3.5 0a1 1 0 112 0 1 1 0 01-2 0zM13 16a1 1 0 112 0 1 1 0 01-2 0zm-3.5 0a1 1 0 112 0 1 1 0 01-2 0zM6 16a1 1 0 112 0 1 1 0 01-2 0zm14-4a1 1 0 112 0 1 1 0 01-2 0zm-3.5 0a1 1 0 112 0 1 1 0 01-2 0zM13 12a1 1 0 112 0 1 1 0 01-2 0zm11 10a1 1 0 01-1 1H5c-.551 0-1-.448-1-1V9h20v13zM4 7c0-.551.449-1 1-1h18c.552 0 1 .449 1 1v1H4V7zm10-4.41L16.257 4h-4.514L14 2.59zM23 4h-4.857l-3.878-2.424a.501.501 0 00-.53 0L9.857 4H5C3.345 4 2 5.346 2 7v15c0 1.654 1.345 3 3 3h18c1.654 0 3-1.346 3-3V7c0-1.654-1.346-3-3-3z"}))),o||(o=a.createElement("use",{fill:"currentColor",xlinkHref:"#ico-calendar_svg__a",fillRule:"evenodd"})))}},function(e,t,n){"use strict";n.d(t,"a",(function(){return u}));var r,o,a=n(0),i=["title","titleId"];function s(){return s=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},s.apply(this,arguments)}function u(e){var t=e.title,n=e.titleId,u=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,i);return a.createElement("svg",s({xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink",width:"1em",height:"1em",viewBox:"0 0 28 28","aria-labelledby":n},u),t?a.createElement("title",{id:n},t):null,r||(r=a.createElement("defs",null,a.createElement("path",{id:"ico-hide_svg__a",d:"M24.256 5.165l-1.42-1.421L3.743 22.836l1.42 1.42 19.093-19.09zM11 14c0-1.654 1.346-3 3-3 .053 0 .104.005.157.008l1.66-1.66A4.945 4.945 0 0014 9c-2.757 0-5 2.243-5 5 0 .642.126 1.254.347 1.818l1.66-1.66C11.006 14.104 11 14.052 11 14zm6 0c0 1.654-1.346 3-3 3-.053 0-.105-.005-.157-.008l-1.66 1.661A4.961 4.961 0 0014 19c2.757 0 5-2.243 5-5 0-.642-.126-1.253-.347-1.818l-1.66 1.661c.002.052.007.104.007.157zM3.004 14C3.208 12.867 6.77 7 14 7c1.335 0 2.544.201 3.63.535l1.57-1.57A14.192 14.192 0 0014 5C5.333 5 1 12.282 1 14c0 .977 1.402 3.75 4.202 5.963l1.42-1.421C4.309 16.792 3.12 14.64 3.005 14zM27 14c0 1.719-4.333 9-13 9-1.954 0-3.686-.372-5.2-.965l1.57-1.57C11.455 20.8 12.664 21 14 21c7.229 0 10.791-5.867 10.996-7-.116-.64-1.304-2.791-3.62-4.542l1.422-1.42C25.598 10.25 27 13.022 27 14z"}))),o||(o=a.createElement("use",{fill:"currentColor",xlinkHref:"#ico-hide_svg__a",fillRule:"evenodd"})))}},function(e,t,n){"use strict";n.d(t,"a",(function(){return u}));var r,o,a=n(0),i=["title","titleId"];function s(){return s=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},s.apply(this,arguments)}function u(e){var t=e.title,n=e.titleId,u=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,i);return a.createElement("svg",s({xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink",width:"1em",height:"1em",viewBox:"0 0 28 28","aria-labelledby":n},u),t?a.createElement("title",{id:n},t):null,r||(r=a.createElement("defs",null,a.createElement("path",{id:"ico-show_svg__a",d:"M14 11c-1.655 0-3 1.346-3 3s1.345 3 3 3 3-1.346 3-3-1.345-3-3-3m0 8c-2.757 0-5-2.243-5-5s2.243-5 5-5 5 2.243 5 5-2.243 5-5 5M3.004 14c.204 1.133 3.767 7 10.996 7 7.229 0 10.791-5.867 10.996-7-.204-1.133-3.767-7-10.996-7-7.229 0-10.791 5.867-10.996 7M14 23c-8.667 0-13-7.281-13-9 0-1.719 4.333-9 13-9s13 7.281 13 9c0 1.719-4.333 9-13 9"}))),o||(o=a.createElement("use",{fill:"currentColor",xlinkHref:"#ico-show_svg__a",fillRule:"evenodd"})))}},function(e,t,n){"use strict";n.d(t,"a",(function(){return u}));var r,o,a=n(0),i=["title","titleId"];function s(){return s=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},s.apply(this,arguments)}function u(e){var t=e.title,n=e.titleId,u=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,i);return a.createElement("svg",s({xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink",width:"1em",height:"1em",viewBox:"0 0 28 28","aria-labelledby":n},u),t?a.createElement("title",{id:n},t):null,r||(r=a.createElement("defs",null,a.createElement("path",{id:"ico-information_svg__a",d:"M15.25 10a1.25 1.25 0 11-2.5 0 1.25 1.25 0 012.5 0zM13 19.5h2v-7h-2v7zm1 3.5c-4.962 0-9-4.038-9-9s4.038-9 9-9 9 4.038 9 9-4.038 9-9 9zm0-20C7.925 3 3 7.925 3 14s4.925 11 11 11 11-4.925 11-11S20.075 3 14 3z"}))),o||(o=a.createElement("use",{fill:"currentColor",xlinkHref:"#ico-information_svg__a",fillRule:"evenodd"})))}},function(e,t,n){"use strict";n.d(t,"a",(function(){return u}));var r,o,a=n(0),i=["title","titleId"];function s(){return s=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},s.apply(this,arguments)}function u(e){var t=e.title,n=e.titleId,u=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,i);return a.createElement("svg",s({xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink",width:"1em",height:"1em",viewBox:"0 0 28 28","aria-labelledby":n},u),t?a.createElement("title",{id:n},t):null,r||(r=a.createElement("defs",null,a.createElement("path",{id:"ico-darker_svg__a",d:"M20.364 9.05L18.95 7.636l2.828-2.828 1.414 1.414-2.828 2.828zm-12.728 9.9l1.414 1.414-2.828 2.828-1.414-1.414 2.828-2.828zm12.728 0l2.828 2.828-1.414 1.414-2.828-2.828 1.414-1.414zM7.636 9.05L4.808 6.222l1.414-1.414L9.05 7.636 7.636 9.05zM22 15h4v-2h-4v2zM2 15h4v-2H2v2zm11 11h2v-4h-2v4zm0-20h2V2h-2v4zm1 2c-3.308 0-6 2.692-6 6s2.692 6 6 6 6-2.692 6-6-2.692-6-6-6z"}))),o||(o=a.createElement("use",{fill:"currentColor",xlinkHref:"#ico-darker_svg__a",fillRule:"evenodd"})))}},function(e,t,n){"use strict";n.d(t,"a",(function(){return u}));var r,o,a=n(0),i=["title","titleId"];function s(){return s=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},s.apply(this,arguments)}function u(e){var t=e.title,n=e.titleId,u=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,i);return a.createElement("svg",s({xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink",width:"1em",height:"1em",viewBox:"0 0 28 28","aria-labelledby":n},u),t?a.createElement("title",{id:n},t):null,r||(r=a.createElement("defs",null,a.createElement("path",{id:"ico-external-link_svg__a",d:"M13 5v2H7c-.551 0-1 .449-1 1v13c0 .552.449 1 1 1h13a1 1 0 001-1v-6h2v6c0 1.654-1.346 3-3 3H7c-1.654 0-3-1.346-3-3V8c0-1.654 1.346-3 3-3h6zm12-2v8h-2V6.414l-8.293 8.293-1.414-1.414L21.586 5H17V3h8z"}))),o||(o=a.createElement("use",{fill:"currentColor",xlinkHref:"#ico-external-link_svg__a",fillRule:"evenodd"})))}},function(e,t,n){"use strict";n.d(t,"a",(function(){return u}));var r,o,a=n(0),i=["title","titleId"];function s(){return s=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},s.apply(this,arguments)}function u(e){var t=e.title,n=e.titleId,u=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,i);return a.createElement("svg",s({xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink",width:"1em",height:"1em",viewBox:"0 0 28 28","aria-labelledby":n},u),t?a.createElement("title",{id:n},t):null,r||(r=a.createElement("defs",null,a.createElement("path",{id:"ico-lighter_svg__a",d:"M20.364 9.05L18.95 7.636l2.828-2.828 1.414 1.414-2.828 2.828zm-12.728 9.9l1.414 1.414-2.828 2.828-1.414-1.414 2.828-2.828zm12.728 0l2.828 2.828-1.414 1.414-2.828-2.828 1.414-1.414zM7.636 9.05L4.808 6.222l1.414-1.414L9.05 7.636 7.636 9.05zM22 15h4v-2h-4v2zM2 15h4v-2H2v2zm11 11h2v-4h-2v4zm0-20h2V2h-2v4zm1 12c-2.206 0-4-1.794-4-4s1.794-4 4-4 4 1.794 4 4-1.794 4-4 4zm0-10c-3.308 0-6 2.692-6 6s2.692 6 6 6 6-2.692 6-6-2.692-6-6-6z"}))),o||(o=a.createElement("use",{fill:"currentColor",xlinkHref:"#ico-lighter_svg__a",fillRule:"evenodd"})))}},function(e,t,n){"use strict";n.d(t,"a",(function(){return u}));var r,o,a=n(0),i=["title","titleId"];function s(){return s=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},s.apply(this,arguments)}function u(e){var t=e.title,n=e.titleId,u=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,i);return a.createElement("svg",s({xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink",width:"1em",height:"1em",viewBox:"0 0 28 28","aria-labelledby":n},u),t?a.createElement("title",{id:n},t):null,r||(r=a.createElement("defs",null,a.createElement("path",{id:"ico-rotate-anticlockwise_svg__a",d:"M14.682 4.303l1.24-1.752.103-.146-1.633-1.155-2.905 4.106 2.763 3.988.101.146 1.644-1.139-1.414-2.042C19.273 6.611 23 10.513 23 15.28c0 4.964-4.037 9-9 9s-9-4.036-9-9H3c0 6.066 4.934 11 11 11 6.065 0 11-4.934 11-11 0-5.835-4.57-10.622-10.318-10.976"}))),o||(o=a.createElement("use",{fill:"currentColor",xlinkHref:"#ico-rotate-anticlockwise_svg__a",fillRule:"evenodd"})))}},function(e,t,n){"use strict";n.d(t,"a",(function(){return u}));var r,o,a=n(0),i=["title","titleId"];function s(){return s=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},s.apply(this,arguments)}function u(e){var t=e.title,n=e.titleId,u=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,i);return a.createElement("svg",s({xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink",width:"1em",height:"1em",viewBox:"0 0 28 28","aria-labelledby":n},u),t?a.createElement("title",{id:n},t):null,r||(r=a.createElement("defs",null,a.createElement("path",{id:"ico-rotate-clockwise_svg__a",d:"M14.682 4.303l1.24-1.752.103-.146-1.633-1.155-2.904 4.106 2.762 3.988.101.146 1.644-1.139-1.414-2.042C19.273 6.611 23 10.513 23 15.28c0 4.964-4.037 9-9 9s-9-4.036-9-9H3c0 6.066 4.934 11 11 11s11-4.934 11-11c0-5.835-4.569-10.622-10.318-10.976"}))),o||(o=a.createElement("use",{fill:"currentColor",transform:"matrix(-1 0 0 1 28 0)",xlinkHref:"#ico-rotate-clockwise_svg__a",fillRule:"evenodd"})))}},function(e,t,n){"use strict";n.d(t,"a",(function(){return u}));var r,o,a=n(0),i=["title","titleId"];function s(){return s=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},s.apply(this,arguments)}function u(e){var t=e.title,n=e.titleId,u=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,i);return a.createElement("svg",s({xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink",width:"1em",height:"1em",viewBox:"0 0 28 28","aria-labelledby":n},u),t?a.createElement("title",{id:n},t):null,r||(r=a.createElement("defs",null,a.createElement("path",{id:"ico-zoom-in_svg__a",d:"M16.981 11h2v2h-2v2h-2v-2h-2v-2h2V9h2v2zm3.242 5.242A5.951 5.951 0 0115.982 18a5.956 5.956 0 01-4.242-1.758 6.005 6.005 0 010-8.485A5.957 5.957 0 0115.98 6c1.603 0 3.11.624 4.243 1.758a6.007 6.007 0 010 8.485zm1.415-9.899C20.127 4.832 18.117 4 15.98 4s-4.146.832-5.656 2.343c-2.88 2.88-3.095 7.422-.659 10.558L4.96 21.607l1.415 1.414 4.705-4.706A7.936 7.936 0 0015.981 20a7.944 7.944 0 005.656-2.343c3.12-3.12 3.12-8.194 0-11.314z"}))),o||(o=a.createElement("use",{fill:"currentColor",xlinkHref:"#ico-zoom-in_svg__a",fillRule:"evenodd"})))}},function(e,t,n){"use strict";n.d(t,"a",(function(){return u}));var r,o,a=n(0),i=["title","titleId"];function s(){return s=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},s.apply(this,arguments)}function u(e){var t=e.title,n=e.titleId,u=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,i);return a.createElement("svg",s({xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink",width:"1em",height:"1em",viewBox:"0 0 28 28","aria-labelledby":n},u),t?a.createElement("title",{id:n},t):null,r||(r=a.createElement("defs",null,a.createElement("path",{id:"ico-zoom-out_svg__a",d:"M12.981 13h6v-2h-6v2zm7.243 3.242v.001A5.964 5.964 0 0115.98 18a5.958 5.958 0 01-4.243-1.758 6.005 6.005 0 010-8.485A5.974 5.974 0 0115.981 6c1.603 0 3.109.625 4.243 1.758a6.007 6.007 0 010 8.485zm1.413-9.899A7.949 7.949 0 0015.982 4a7.948 7.948 0 00-5.657 2.343c-2.879 2.88-3.094 7.422-.658 10.558L4.96 21.607l1.414 1.414 4.706-4.706A7.936 7.936 0 0015.981 20a7.945 7.945 0 005.656-2.343c3.12-3.12 3.12-8.194 0-11.314z"}))),o||(o=a.createElement("use",{fill:"currentColor",xlinkHref:"#ico-zoom-out_svg__a",fillRule:"evenodd"})))}},,,,,,,,,,,,,,function(e,t,n){"use strict";n.d(t,"a",(function(){return u}));var r,o,a=n(0),i=["title","titleId"];function s(){return s=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},s.apply(this,arguments)}function u(e){var t=e.title,n=e.titleId,u=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,i);return a.createElement("svg",s({xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink",width:"1em",height:"1em",viewBox:"0 0 28 28","aria-labelledby":n},u),t?a.createElement("title",{id:n},t):null,r||(r=a.createElement("defs",null,a.createElement("path",{id:"ico-chevron-left_svg__a",d:"M15.719 22.625L8.819 14l6.9-8.625 1.562 1.25-5.9 7.375 5.9 7.375z"}))),o||(o=a.createElement("use",{fill:"currentColor",xlinkHref:"#ico-chevron-left_svg__a",fillRule:"evenodd"})))}},function(e,t,n){"use strict";n.d(t,"a",(function(){return u}));var r,o,a=n(0),i=["title","titleId"];function s(){return s=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},s.apply(this,arguments)}function u(e){var t=e.title,n=e.titleId,u=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,i);return a.createElement("svg",s({xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink",width:"1em",height:"1em",viewBox:"0 0 28 28","aria-labelledby":n},u),t?a.createElement("title",{id:n},t):null,r||(r=a.createElement("defs",null,a.createElement("path",{id:"ico-chevron-right_svg__a",d:"M12.281 22.625l-1.562-1.25 5.9-7.375-5.9-7.375 1.562-1.25 6.9 8.625z"}))),o||(o=a.createElement("use",{fill:"currentColor",xlinkHref:"#ico-chevron-right_svg__a",fillRule:"evenodd"})))}},function(e,t,n){"use strict";n.d(t,"a",(function(){return u}));var r,o,a=n(0),i=["title","titleId"];function s(){return s=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},s.apply(this,arguments)}function u(e){var t=e.title,n=e.titleId,u=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,i);return a.createElement("svg",s({xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink",width:"1em",height:"1em",viewBox:"0 0 28 28","aria-labelledby":n},u),t?a.createElement("title",{id:n},t):null,r||(r=a.createElement("defs",null,a.createElement("path",{id:"ico-tick_svg__a",d:"M12 20.414l-6.707-6.707 1.414-1.414L12 17.586l9.293-9.293 1.414 1.414z"}))),o||(o=a.createElement("use",{fill:"currentColor",xlinkHref:"#ico-tick_svg__a",fillRule:"evenodd"})))}}])},9669:(e,t,n)=>{e.exports=n(1609)},5448:(e,t,n)=>{"use strict";var r=n(4867),o=n(6026),a=n(4372),i=n(5327),s=n(4097),u=n(4109),c=n(7985),l=n(5061),f=n(5655),h=n(5263);e.exports=function(e){return new Promise((function(t,n){var p,d=e.data,v=e.headers,m=e.responseType;function g(){e.cancelToken&&e.cancelToken.unsubscribe(p),e.signal&&e.signal.removeEventListener("abort",p)}r.isFormData(d)&&delete v["Content-Type"];var y=new XMLHttpRequest;if(e.auth){var b=e.auth.username||"",w=e.auth.password?unescape(encodeURIComponent(e.auth.password)):"";v.Authorization="Basic "+btoa(b+":"+w)}var x=s(e.baseURL,e.url);function E(){if(y){var r="getAllResponseHeaders"in y?u(y.getAllResponseHeaders()):null,a={data:m&&"text"!==m&&"json"!==m?y.response:y.responseText,status:y.status,statusText:y.statusText,headers:r,config:e,request:y};o((function(e){t(e),g()}),(function(e){n(e),g()}),a),y=null}}if(y.open(e.method.toUpperCase(),i(x,e.params,e.paramsSerializer),!0),y.timeout=e.timeout,"onloadend"in y?y.onloadend=E:y.onreadystatechange=function(){y&&4===y.readyState&&(0!==y.status||y.responseURL&&0===y.responseURL.indexOf("file:"))&&setTimeout(E)},y.onabort=function(){y&&(n(l("Request aborted",e,"ECONNABORTED",y)),y=null)},y.onerror=function(){n(l("Network Error",e,null,y)),y=null},y.ontimeout=function(){var t=e.timeout?"timeout of "+e.timeout+"ms exceeded":"timeout exceeded",r=e.transitional||f.transitional;e.timeoutErrorMessage&&(t=e.timeoutErrorMessage),n(l(t,e,r.clarifyTimeoutError?"ETIMEDOUT":"ECONNABORTED",y)),y=null},r.isStandardBrowserEnv()){var _=(e.withCredentials||c(x))&&e.xsrfCookieName?a.read(e.xsrfCookieName):void 0;_&&(v[e.xsrfHeaderName]=_)}"setRequestHeader"in y&&r.forEach(v,(function(e,t){void 0===d&&"content-type"===t.toLowerCase()?delete v[t]:y.setRequestHeader(t,e)})),r.isUndefined(e.withCredentials)||(y.withCredentials=!!e.withCredentials),m&&"json"!==m&&(y.responseType=e.responseType),"function"==typeof e.onDownloadProgress&&y.addEventListener("progress",e.onDownloadProgress),"function"==typeof e.onUploadProgress&&y.upload&&y.upload.addEventListener("progress",e.onUploadProgress),(e.cancelToken||e.signal)&&(p=function(e){y&&(n(!e||e&&e.type?new h("canceled"):e),y.abort(),y=null)},e.cancelToken&&e.cancelToken.subscribe(p),e.signal&&(e.signal.aborted?p():e.signal.addEventListener("abort",p))),d||(d=null),y.send(d)}))}},1609:(e,t,n)=>{"use strict";var r=n(4867),o=n(1849),a=n(321),i=n(7185);var s=function e(t){var n=new a(t),s=o(a.prototype.request,n);return r.extend(s,a.prototype,n),r.extend(s,n),s.create=function(n){return e(i(t,n))},s}(n(5655));s.Axios=a,s.Cancel=n(5263),s.CancelToken=n(4972),s.isCancel=n(6502),s.VERSION=n(7288).version,s.all=function(e){return Promise.all(e)},s.spread=n(8713),s.isAxiosError=n(6268),e.exports=s,e.exports.default=s},5263:e=>{"use strict";function t(e){this.message=e}t.prototype.toString=function(){return"Cancel"+(this.message?": "+this.message:"")},t.prototype.__CANCEL__=!0,e.exports=t},4972:(e,t,n)=>{"use strict";var r=n(5263);function o(e){if("function"!=typeof e)throw new TypeError("executor must be a function.");var t;this.promise=new Promise((function(e){t=e}));var n=this;this.promise.then((function(e){if(n._listeners){var t,r=n._listeners.length;for(t=0;t<r;t++)n._listeners[t](e);n._listeners=null}})),this.promise.then=function(e){var t,r=new Promise((function(e){n.subscribe(e),t=e})).then(e);return r.cancel=function(){n.unsubscribe(t)},r},e((function(e){n.reason||(n.reason=new r(e),t(n.reason))}))}o.prototype.throwIfRequested=function(){if(this.reason)throw this.reason},o.prototype.subscribe=function(e){this.reason?e(this.reason):this._listeners?this._listeners.push(e):this._listeners=[e]},o.prototype.unsubscribe=function(e){if(this._listeners){var t=this._listeners.indexOf(e);-1!==t&&this._listeners.splice(t,1)}},o.source=function(){var e;return{token:new o((function(t){e=t})),cancel:e}},e.exports=o},6502:e=>{"use strict";e.exports=function(e){return!(!e||!e.__CANCEL__)}},321:(e,t,n)=>{"use strict";var r=n(4867),o=n(5327),a=n(782),i=n(3572),s=n(7185),u=n(4875),c=u.validators;function l(e){this.defaults=e,this.interceptors={request:new a,response:new a}}l.prototype.request=function(e){"string"==typeof e?(e=arguments[1]||{}).url=arguments[0]:e=e||{},(e=s(this.defaults,e)).method?e.method=e.method.toLowerCase():this.defaults.method?e.method=this.defaults.method.toLowerCase():e.method="get";var t=e.transitional;void 0!==t&&u.assertOptions(t,{silentJSONParsing:c.transitional(c.boolean),forcedJSONParsing:c.transitional(c.boolean),clarifyTimeoutError:c.transitional(c.boolean)},!1);var n=[],r=!0;this.interceptors.request.forEach((function(t){"function"==typeof t.runWhen&&!1===t.runWhen(e)||(r=r&&t.synchronous,n.unshift(t.fulfilled,t.rejected))}));var o,a=[];if(this.interceptors.response.forEach((function(e){a.push(e.fulfilled,e.rejected)})),!r){var l=[i,void 0];for(Array.prototype.unshift.apply(l,n),l=l.concat(a),o=Promise.resolve(e);l.length;)o=o.then(l.shift(),l.shift());return o}for(var f=e;n.length;){var h=n.shift(),p=n.shift();try{f=h(f)}catch(d){p(d);break}}try{o=i(f)}catch(d){return Promise.reject(d)}for(;a.length;)o=o.then(a.shift(),a.shift());return o},l.prototype.getUri=function(e){return e=s(this.defaults,e),o(e.url,e.params,e.paramsSerializer).replace(/^\?/,"")},r.forEach(["delete","get","head","options"],(function(e){l.prototype[e]=function(t,n){return this.request(s(n||{},{method:e,url:t,data:(n||{}).data}))}})),r.forEach(["post","put","patch"],(function(e){l.prototype[e]=function(t,n,r){return this.request(s(r||{},{method:e,url:t,data:n}))}})),e.exports=l},782:(e,t,n)=>{"use strict";var r=n(4867);function o(){this.handlers=[]}o.prototype.use=function(e,t,n){return this.handlers.push({fulfilled:e,rejected:t,synchronous:!!n&&n.synchronous,runWhen:n?n.runWhen:null}),this.handlers.length-1},o.prototype.eject=function(e){this.handlers[e]&&(this.handlers[e]=null)},o.prototype.forEach=function(e){r.forEach(this.handlers,(function(t){null!==t&&e(t)}))},e.exports=o},4097:(e,t,n)=>{"use strict";var r=n(1793),o=n(7303);e.exports=function(e,t){return e&&!r(t)?o(e,t):t}},5061:(e,t,n)=>{"use strict";var r=n(481);e.exports=function(e,t,n,o,a){var i=new Error(e);return r(i,t,n,o,a)}},3572:(e,t,n)=>{"use strict";var r=n(4867),o=n(8527),a=n(6502),i=n(5655),s=n(5263);function u(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new s("canceled")}e.exports=function(e){return u(e),e.headers=e.headers||{},e.data=o.call(e,e.data,e.headers,e.transformRequest),e.headers=r.merge(e.headers.common||{},e.headers[e.method]||{},e.headers),r.forEach(["delete","get","head","post","put","patch","common"],(function(t){delete e.headers[t]})),(e.adapter||i.adapter)(e).then((function(t){return u(e),t.data=o.call(e,t.data,t.headers,e.transformResponse),t}),(function(t){return a(t)||(u(e),t&&t.response&&(t.response.data=o.call(e,t.response.data,t.response.headers,e.transformResponse))),Promise.reject(t)}))}},481:e=>{"use strict";e.exports=function(e,t,n,r,o){return e.config=t,n&&(e.code=n),e.request=r,e.response=o,e.isAxiosError=!0,e.toJSON=function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:this.config,code:this.code,status:this.response&&this.response.status?this.response.status:null}},e}},7185:(e,t,n)=>{"use strict";var r=n(4867);e.exports=function(e,t){t=t||{};var n={};function o(e,t){return r.isPlainObject(e)&&r.isPlainObject(t)?r.merge(e,t):r.isPlainObject(t)?r.merge({},t):r.isArray(t)?t.slice():t}function a(n){return r.isUndefined(t[n])?r.isUndefined(e[n])?void 0:o(void 0,e[n]):o(e[n],t[n])}function i(e){if(!r.isUndefined(t[e]))return o(void 0,t[e])}function s(n){return r.isUndefined(t[n])?r.isUndefined(e[n])?void 0:o(void 0,e[n]):o(void 0,t[n])}function u(n){return n in t?o(e[n],t[n]):n in e?o(void 0,e[n]):void 0}var c={url:i,method:i,data:i,baseURL:s,transformRequest:s,transformResponse:s,paramsSerializer:s,timeout:s,timeoutMessage:s,withCredentials:s,adapter:s,responseType:s,xsrfCookieName:s,xsrfHeaderName:s,onUploadProgress:s,onDownloadProgress:s,decompress:s,maxContentLength:s,maxBodyLength:s,transport:s,httpAgent:s,httpsAgent:s,cancelToken:s,socketPath:s,responseEncoding:s,validateStatus:u};return r.forEach(Object.keys(e).concat(Object.keys(t)),(function(e){var t=c[e]||a,o=t(e);r.isUndefined(o)&&t!==u||(n[e]=o)})),n}},6026:(e,t,n)=>{"use strict";var r=n(5061);e.exports=function(e,t,n){var o=n.config.validateStatus;n.status&&o&&!o(n.status)?t(r("Request failed with status code "+n.status,n.config,null,n.request,n)):e(n)}},8527:(e,t,n)=>{"use strict";var r=n(4867),o=n(5655);e.exports=function(e,t,n){var a=this||o;return r.forEach(n,(function(n){e=n.call(a,e,t)})),e}},5655:(e,t,n)=>{"use strict";var r=n(4867),o=n(6016),a=n(481),i={"Content-Type":"application/x-www-form-urlencoded"};function s(e,t){!r.isUndefined(e)&&r.isUndefined(e["Content-Type"])&&(e["Content-Type"]=t)}var u,c={transitional:{silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},adapter:(("undefined"!=typeof XMLHttpRequest||"undefined"!=typeof process&&"[object process]"===Object.prototype.toString.call(process))&&(u=n(5448)),u),transformRequest:[function(e,t){return o(t,"Accept"),o(t,"Content-Type"),r.isFormData(e)||r.isArrayBuffer(e)||r.isBuffer(e)||r.isStream(e)||r.isFile(e)||r.isBlob(e)?e:r.isArrayBufferView(e)?e.buffer:r.isURLSearchParams(e)?(s(t,"application/x-www-form-urlencoded;charset=utf-8"),e.toString()):r.isObject(e)||t&&"application/json"===t["Content-Type"]?(s(t,"application/json"),function(e,t,n){if(r.isString(e))try{return(t||JSON.parse)(e),r.trim(e)}catch(o){if("SyntaxError"!==o.name)throw o}return(n||JSON.stringify)(e)}(e)):e}],transformResponse:[function(e){var t=this.transitional||c.transitional,n=t&&t.silentJSONParsing,o=t&&t.forcedJSONParsing,i=!n&&"json"===this.responseType;if(i||o&&r.isString(e)&&e.length)try{return JSON.parse(e)}catch(s){if(i){if("SyntaxError"===s.name)throw a(s,this,"E_JSON_PARSE");throw s}}return e}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,validateStatus:function(e){return e>=200&&e<300},headers:{common:{Accept:"application/json, text/plain, */*"}}};r.forEach(["delete","get","head"],(function(e){c.headers[e]={}})),r.forEach(["post","put","patch"],(function(e){c.headers[e]=r.merge(i)})),e.exports=c},7288:e=>{e.exports={version:"0.24.0"}},1849:e=>{"use strict";e.exports=function(e,t){return function(){for(var n=new Array(arguments.length),r=0;r<n.length;r++)n[r]=arguments[r];return e.apply(t,n)}}},5327:(e,t,n)=>{"use strict";var r=n(4867);function o(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}e.exports=function(e,t,n){if(!t)return e;var a;if(n)a=n(t);else if(r.isURLSearchParams(t))a=t.toString();else{var i=[];r.forEach(t,(function(e,t){null!=e&&(r.isArray(e)?t+="[]":e=[e],r.forEach(e,(function(e){r.isDate(e)?e=e.toISOString():r.isObject(e)&&(e=JSON.stringify(e)),i.push(o(t)+"="+o(e))})))})),a=i.join("&")}if(a){var s=e.indexOf("#");-1!==s&&(e=e.slice(0,s)),e+=(-1===e.indexOf("?")?"?":"&")+a}return e}},7303:e=>{"use strict";e.exports=function(e,t){return t?e.replace(/\/+$/,"")+"/"+t.replace(/^\/+/,""):e}},4372:(e,t,n)=>{"use strict";var r=n(4867);e.exports=r.isStandardBrowserEnv()?{write:function(e,t,n,o,a,i){var s=[];s.push(e+"="+encodeURIComponent(t)),r.isNumber(n)&&s.push("expires="+new Date(n).toGMTString()),r.isString(o)&&s.push("path="+o),r.isString(a)&&s.push("domain="+a),!0===i&&s.push("secure"),document.cookie=s.join("; ")},read:function(e){var t=document.cookie.match(new RegExp("(^|;\\s*)("+e+")=([^;]*)"));return t?decodeURIComponent(t[3]):null},remove:function(e){this.write(e,"",Date.now()-864e5)}}:{write:function(){},read:function(){return null},remove:function(){}}},1793:e=>{"use strict";e.exports=function(e){return/^([a-z][a-z\d\+\-\.]*:)?\/\//i.test(e)}},6268:e=>{"use strict";e.exports=function(e){return"object"==typeof e&&!0===e.isAxiosError}},7985:(e,t,n)=>{"use strict";var r=n(4867);e.exports=r.isStandardBrowserEnv()?function(){var e,t=/(msie|trident)/i.test(navigator.userAgent),n=document.createElement("a");function o(e){var r=e;return t&&(n.setAttribute("href",r),r=n.href),n.setAttribute("href",r),{href:n.href,protocol:n.protocol?n.protocol.replace(/:$/,""):"",host:n.host,search:n.search?n.search.replace(/^\?/,""):"",hash:n.hash?n.hash.replace(/^#/,""):"",hostname:n.hostname,port:n.port,pathname:"/"===n.pathname.charAt(0)?n.pathname:"/"+n.pathname}}return e=o(window.location.href),function(t){var n=r.isString(t)?o(t):t;return n.protocol===e.protocol&&n.host===e.host}}():function(){return!0}},6016:(e,t,n)=>{"use strict";var r=n(4867);e.exports=function(e,t){r.forEach(e,(function(n,r){r!==t&&r.toUpperCase()===t.toUpperCase()&&(e[t]=n,delete e[r])}))}},4109:(e,t,n)=>{"use strict";var r=n(4867),o=["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"];e.exports=function(e){var t,n,a,i={};return e?(r.forEach(e.split("\n"),(function(e){if(a=e.indexOf(":"),t=r.trim(e.substr(0,a)).toLowerCase(),n=r.trim(e.substr(a+1)),t){if(i[t]&&o.indexOf(t)>=0)return;i[t]="set-cookie"===t?(i[t]?i[t]:[]).concat([n]):i[t]?i[t]+", "+n:n}})),i):i}},8713:e=>{"use strict";e.exports=function(e){return function(t){return e.apply(null,t)}}},4875:(e,t,n)=>{"use strict";var r=n(7288).version,o={};["object","boolean","number","function","string","symbol"].forEach((function(e,t){o[e]=function(n){return typeof n===e||"a"+(t<1?"n ":" ")+e}}));var a={};o.transitional=function(e,t,n){function o(e,t){return"[Axios v"+r+"] Transitional option '"+e+"'"+t+(n?". "+n:"")}return function(n,r,i){if(!1===e)throw new Error(o(r," has been removed"+(t?" in "+t:"")));return t&&!a[r]&&(a[r]=!0,console.warn(o(r," has been deprecated since v"+t+" and will be removed in the near future"))),!e||e(n,r,i)}},e.exports={assertOptions:function(e,t,n){if("object"!=typeof e)throw new TypeError("options must be an object");for(var r=Object.keys(e),o=r.length;o-- >0;){var a=r[o],i=t[a];if(i){var s=e[a],u=void 0===s||i(s,a,e);if(!0!==u)throw new TypeError("option "+a+" must be "+u)}else if(!0!==n)throw Error("Unknown option "+a)}},validators:o}},4867:(e,t,n)=>{"use strict";var r=n(1849),o=Object.prototype.toString;function a(e){return"[object Array]"===o.call(e)}function i(e){return void 0===e}function s(e){return null!==e&&"object"==typeof e}function u(e){if("[object Object]"!==o.call(e))return!1;var t=Object.getPrototypeOf(e);return null===t||t===Object.prototype}function c(e){return"[object Function]"===o.call(e)}function l(e,t){if(null!=e)if("object"!=typeof e&&(e=[e]),a(e))for(var n=0,r=e.length;n<r;n++)t.call(null,e[n],n,e);else for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&t.call(null,e[o],o,e)}e.exports={isArray:a,isArrayBuffer:function(e){return"[object ArrayBuffer]"===o.call(e)},isBuffer:function(e){return null!==e&&!i(e)&&null!==e.constructor&&!i(e.constructor)&&"function"==typeof e.constructor.isBuffer&&e.constructor.isBuffer(e)},isFormData:function(e){return"undefined"!=typeof FormData&&e instanceof FormData},isArrayBufferView:function(e){return"undefined"!=typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(e):e&&e.buffer&&e.buffer instanceof ArrayBuffer},isString:function(e){return"string"==typeof e},isNumber:function(e){return"number"==typeof e},isObject:s,isPlainObject:u,isUndefined:i,isDate:function(e){return"[object Date]"===o.call(e)},isFile:function(e){return"[object File]"===o.call(e)},isBlob:function(e){return"[object Blob]"===o.call(e)},isFunction:c,isStream:function(e){return s(e)&&c(e.pipe)},isURLSearchParams:function(e){return"undefined"!=typeof URLSearchParams&&e instanceof URLSearchParams},isStandardBrowserEnv:function(){return("undefined"==typeof navigator||"ReactNative"!==navigator.product&&"NativeScript"!==navigator.product&&"NS"!==navigator.product)&&("undefined"!=typeof window&&"undefined"!=typeof document)},forEach:l,merge:function e(){var t={};function n(n,r){u(t[r])&&u(n)?t[r]=e(t[r],n):u(n)?t[r]=e({},n):a(n)?t[r]=n.slice():t[r]=n}for(var r=0,o=arguments.length;r<o;r++)l(arguments[r],n);return t},extend:function(e,t,n){return l(t,(function(t,o){e[o]=n&&"function"==typeof t?r(t,n):t})),e},trim:function(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")},stripBOM:function(e){return 65279===e.charCodeAt(0)&&(e=e.slice(1)),e}}},235:e=>{e.exports={messages:{"camera-loading-feedback-message":"جارٍ تحضير الكاميرا","face-scan-loading-feedback-message":"جارٍ التحضير لمسح الوجه","hold-still-feedback-message":"الرجاء البقاء ساكنًا","image-too-bright-feedback-message":"ابتعِد عن الضوء المباشر","image-too-dark-feedback-message":"انتقل إلى منطقة أكثر إضاءة","move-back-feedback-message":"ارجع للوراء","move-center-feedback-message":"ضع وجهك في الإطار","move-closer-feedback-message":"اقترب أكثر","one-face-only-feedback-message":"يُسمح بوجه واحد فقط"}}},992:e=>{e.exports={messages:{"camera-loading-feedback-message":"Příprava fotoaparátu","face-scan-loading-feedback-message":"Příprava skenování obličeje","hold-still-feedback-message":"Stůjte klidně","image-too-bright-feedback-message":"Posuňte se dál z přímého světla","image-too-dark-feedback-message":"Posuňte se na světlejší místo","move-back-feedback-message":"Posuňte se dál","move-center-feedback-message":"Umístěte svůj obličej do rámečku","move-closer-feedback-message":"Posuňte se blíž","one-face-only-feedback-message":"Je povolen pouze jeden obličej"}}},7555:e=>{e.exports={messages:{"camera-loading-feedback-message":"Forbereder kamera","face-scan-loading-feedback-message":"Forbereder ansigtsscanning","hold-still-feedback-message":"Stå stille","image-too-bright-feedback-message":"Flyt væk fra direkte lys","image-too-dark-feedback-message":"Flyt til et lysere område","move-back-feedback-message":"Flyt dig tilbage","move-center-feedback-message":"Hold dit ansigt i rammen","move-closer-feedback-message":"Flyt dig tættere på","one-face-only-feedback-message":"Kun ét ansigt er tilladt"}}},4973:e=>{e.exports={messages:{"camera-loading-feedback-message":"Kamera lädt","face-scan-loading-feedback-message":"Gesichtsscan wird vorbereitet","hold-still-feedback-message":"Bitte still halten","image-too-bright-feedback-message":"Vermeiden Sie direkte Lichteinstrahlung","image-too-dark-feedback-message":"Wählen Sie einen helleren Ort","move-back-feedback-message":"Gehen Sie zurück","move-center-feedback-message":"Platzieren Sie Ihr Gesicht in die Mitte","move-closer-feedback-message":"Kommen Sie näher","one-face-only-feedback-message":"Nur ein Gesicht ist erlaubt"}}},8964:e=>{e.exports={messages:{"camera-loading-feedback-message":"Preparing camera","face-scan-loading-feedback-message":"Preparing face scan","hold-still-feedback-message":"Please hold still","image-too-bright-feedback-message":"Move away from direct light","image-too-dark-feedback-message":"Move to a brighter area","move-back-feedback-message":"Move back","move-center-feedback-message":"Place your face in the frame","move-closer-feedback-message":"Move closer","one-face-only-feedback-message":"Only one face allowed"}}},9827:e=>{e.exports={messages:{"camera-loading-feedback-message":"Preparando cámara","face-scan-loading-feedback-message":"Preparando escaneo facial","hold-still-feedback-message":"No te muevas","image-too-bright-feedback-message":"Aléjate de la luz directa","image-too-dark-feedback-message":"Muévete a un área más iluminada","move-back-feedback-message":"Aléjate","move-center-feedback-message":"Coloca tu rostro en el marco","move-closer-feedback-message":"Acércate","one-face-only-feedback-message":"Solo se permite un rostro"}}},4413:e=>{e.exports={messages:{"camera-loading-feedback-message":"La cámara se está preparando","face-scan-loading-feedback-message":"Preparando escaneado facial","hold-still-feedback-message":"Aguanta un momento","image-too-bright-feedback-message":"Aléjate de la luz directa","image-too-dark-feedback-message":"Muévete a un área más iluminada","move-back-feedback-message":"Retírate","move-center-feedback-message":"Colócate en el centro","move-closer-feedback-message":"Acércate","one-face-only-feedback-message":"Enfócate solo a ti"}}},606:e=>{e.exports={messages:{"camera-loading-feedback-message":"Kaamera ettevalmistamine","face-scan-loading-feedback-message":"Näoskanni ettevalmistamine","hold-still-feedback-message":"Ärge liigutage","image-too-bright-feedback-message":"Liikuge otsesest valgusest eemale","image-too-dark-feedback-message":"Liikuge paremini valgustatud kohta","move-back-feedback-message":"Liikuge kaugemale","move-center-feedback-message":"Paigutage oma nägu kaadrisse","move-closer-feedback-message":"Liikuge lähemale","one-face-only-feedback-message":"Ainult üks nägu on lubatud"}}},3090:e=>{e.exports={messages:{"camera-loading-feedback-message":"Valmistellaan kameraa","face-scan-loading-feedback-message":"Valmistellaan kasvojen skannausta","hold-still-feedback-message":"Pysy paikallasi","image-too-bright-feedback-message":"Siirry pois suorasta valosta","image-too-dark-feedback-message":"Siirry kirkkaampaan valoon","move-back-feedback-message":"Siirry taaksepäin","move-center-feedback-message":"Aseta kasvot keskelle kehystä","move-closer-feedback-message":"Siirry lähemmäksi","one-face-only-feedback-message":"Vain yhdet kasvot on sallittu"}}},2443:e=>{e.exports={messages:{"camera-loading-feedback-message":"Préparation de l'appareil","face-scan-loading-feedback-message":"Préparation du scan","hold-still-feedback-message":"Veuillez ne pas bouger","image-too-bright-feedback-message":"Éloignez-vous de toute source de lumière directe","image-too-dark-feedback-message":"Déplacez-vous à un endroit plus lumineux","move-back-feedback-message":"Reculez","move-center-feedback-message":"Placez votre visage dans le cadre","move-closer-feedback-message":"Approchez-vous","one-face-only-feedback-message":"Un seul visage permis"}}},7129:e=>{e.exports={messages:{"camera-loading-feedback-message":"הכנת מצלמה","face-scan-loading-feedback-message":"הכנת סריקת פנים","hold-still-feedback-message":"בבקשה אל תזוז","image-too-bright-feedback-message":"התרחק מאור ישיר","image-too-dark-feedback-message":"זוז לאזור בהיר יותר","move-back-feedback-message":"זוז אחורה","move-center-feedback-message":"למקם את הפנים שלך במסגרת","move-closer-feedback-message":"התקרב עוד","one-face-only-feedback-message":"רק פנים אחת מותרות"}}},1471:e=>{e.exports={messages:{"camera-loading-feedback-message":"कैमरे को तैयार किया जा रहा है","face-scan-loading-feedback-message":"चेहरा स्कैन करने की तैयारी हो रही है","hold-still-feedback-message":"कृपया हिले डुले नहीं","image-too-bright-feedback-message":"सीधी रोशनी से दूर हटें","image-too-dark-feedback-message":"ज़्यादा रोशनी वाली जगह पर जाएं","move-back-feedback-message":"पीछे जाएं","move-center-feedback-message":"अपने चेहरे को फ़्रेम में लाएं","move-closer-feedback-message":"थोड़ा करीब आएँ","one-face-only-feedback-message":"सिर्फ़ एक चेहरे की अनुमति है"}}},1925:e=>{e.exports={messages:{"camera-loading-feedback-message":"Տեսախցիկը նախապատրաստվում է","face-scan-loading-feedback-message":"Դեմքի սկանավորումը նախապատրաստվում է","hold-still-feedback-message":"Խնդրում ենք մնալ անշարժ","image-too-bright-feedback-message":"Հեռացեք ուղիղ լույսից","image-too-dark-feedback-message":"Տեղափոխվեք ավելի լուսավոր տարածք","move-back-feedback-message":"Հետ շարժվեք","move-center-feedback-message":"Տեղադրեք ձեր դեմքը շրջանակի մեջ","move-closer-feedback-message":"Մոտ եկեք","one-face-only-feedback-message":"Թույլատրվում է միայն մեկ դեմք"}}},8048:e=>{e.exports={messages:{"camera-loading-feedback-message":"Mempersiapkan kamera","face-scan-loading-feedback-message":"Mempersiapkan pemindaian wajah","hold-still-feedback-message":"Harap diam","image-too-bright-feedback-message":"Menjauh dari cahaya langsung","image-too-dark-feedback-message":"Pindah ke area yang lebih terang","move-back-feedback-message":"Mundur","move-center-feedback-message":"Tempatkan wajah dalam bingkai","move-closer-feedback-message":"Lebih dekat","one-face-only-feedback-message":"Hanya boleh satu wajah"}}},5626:e=>{e.exports={messages:{"camera-loading-feedback-message":"Preparazione fotocamera in corso","face-scan-loading-feedback-message":"Preparazione scansione del volto in corso","hold-still-feedback-message":"Resta immobile","image-too-bright-feedback-message":"Spostati dalla luce diretta","image-too-dark-feedback-message":"Spostati in una zona più illuminata","move-back-feedback-message":"Allontanati","move-center-feedback-message":"Posiziona il tuo volto nel riquadro","move-closer-feedback-message":"Avvicinati","one-face-only-feedback-message":"Solo un volto consentito"}}},8828:e=>{e.exports={messages:{"camera-loading-feedback-message":"カメラ準備中","face-scan-loading-feedback-message":"フェイススキャン準備中","hold-still-feedback-message":"動かないでください","image-too-bright-feedback-message":"直射光を避けてください","image-too-dark-feedback-message":"もっと明るい場所に移動してください","move-back-feedback-message":"離れてください","move-center-feedback-message":"顔を枠内に収めてください","move-closer-feedback-message":"近づいてください","one-face-only-feedback-message":"認識できる顔は1つだけです"}}},8916:e=>{e.exports={messages:{"camera-loading-feedback-message":"카메라 준비 중","face-scan-loading-feedback-message":"얼굴 스캔 준비 중","hold-still-feedback-message":"움직이지 마세요","image-too-bright-feedback-message":"직접광에서 멀리 떨어지세요","image-too-dark-feedback-message":"더 밝은 곳으로 이동하세요","move-back-feedback-message":"뒤로 물러서세요","move-center-feedback-message":"얼굴을 프레임에 맞추세요","move-closer-feedback-message":"더 가까이 오세요","one-face-only-feedback-message":"한 사람의 얼굴만 허용됩니다"}}},8868:e=>{e.exports={messages:{"camera-loading-feedback-message":"Ruošiamas fotoaparatas","face-scan-loading-feedback-message":"Ruošiamasi nuskaityti veidą","hold-still-feedback-message":"Nejudėkite","image-too-bright-feedback-message":"Paeikite toliau nuo tiesioginių saulės spindulių","image-too-dark-feedback-message":"Pereikite į šviesesnę vietą","move-back-feedback-message":"Paeikite atgal","move-center-feedback-message":"Laikykite veidą rėmelyje","move-closer-feedback-message":"Prieikite arčiau","one-face-only-feedback-message":"Gali būti tik vienas veidas"}}},8706:e=>{e.exports={messages:{"camera-loading-feedback-message":"Sagatavo kameru","face-scan-loading-feedback-message":"Gatavojas sejas skenēšanai","hold-still-feedback-message":"Nekustieties","image-too-bright-feedback-message":"Pavirziet tur, kur nav tiešas saules gaismas","image-too-dark-feedback-message":"Pavirzieties uz gaišāku zonu","move-back-feedback-message":"Atvirzieties","move-center-feedback-message":"Ietilpiniet seju rāmī","move-closer-feedback-message":"Pavirzieties tuvāk","one-face-only-feedback-message":"Atļauta tikai viena seja"}}},9194:e=>{e.exports={messages:{"camera-loading-feedback-message":"Menyediakan kamera","face-scan-loading-feedback-message":"Menyediakan imbasan muka","hold-still-feedback-message":"Sila jangan bergerak","image-too-bright-feedback-message":"Jauhkan diri daripada cahaya terus","image-too-dark-feedback-message":"Bergerak ke kawasan yang lebih terang","move-back-feedback-message":"Berundur","move-center-feedback-message":"Letakkan muka anda dalam bingkai","move-closer-feedback-message":"Bergerak lebih dekat","one-face-only-feedback-message":"Hanya satu muka dibenarkan"}}},2643:e=>{e.exports={messages:{"camera-loading-feedback-message":"Klargjør kameraet","face-scan-loading-feedback-message":"Klargjør ansiktsskanning","hold-still-feedback-message":"Hold deg i ro","image-too-bright-feedback-message":"Gå vekk fra direkte lys","image-too-dark-feedback-message":"Gå til et lysere område","move-back-feedback-message":"Gå bakover","move-center-feedback-message":"Hold ansiktet ditt i rammen","move-closer-feedback-message":"Beveg deg forover","one-face-only-feedback-message":"Kun ett ansikt tillat"}}},2262:e=>{e.exports={messages:{"camera-loading-feedback-message":"Bezig met camera voorbereiden","face-scan-loading-feedback-message":"Bezig met gezichtsscan voorbereiden","hold-still-feedback-message":"Sta stil","image-too-bright-feedback-message":"Niet in direct licht plaatsen","image-too-dark-feedback-message":"Op een lichtere plaats zetten","move-back-feedback-message":"Ga achteruit","move-center-feedback-message":"Plaats je gezicht in het kader","move-closer-feedback-message":"Kom dichter bij","one-face-only-feedback-message":"Slechts één gezicht toegestaan"}}},7162:e=>{e.exports={messages:{"camera-loading-feedback-message":"Przygotowywanie aparatu","face-scan-loading-feedback-message":"Przygotowywanie skanu twarzy","hold-still-feedback-message":"Nie ruszaj się","image-too-bright-feedback-message":"Przejdź do lepiej oświetlonego miejsca","image-too-dark-feedback-message":"Odsuń się, aby światło nie padało na Ciebie bezpośrednio","move-back-feedback-message":"Cofnij się","move-center-feedback-message":"Umieść twarz w ramce","move-closer-feedback-message":"Przybliż się","one-face-only-feedback-message":"Dozwolona jest tylko jedna twarz"}}},8826:e=>{e.exports={messages:{"camera-loading-feedback-message":"Preparando câmera","face-scan-loading-feedback-message":"Preparando scan do rosto","hold-still-feedback-message":"Segure firme","image-too-bright-feedback-message":"Afaste-se da iluminação direta.","image-too-dark-feedback-message":"Vá para uma área mais iluminada","move-back-feedback-message":"Afaste-se","move-center-feedback-message":"Coloque seu rosto no quadro","move-closer-feedback-message":"Aproxime-se","one-face-only-feedback-message":"Somente um rosto permitido"}}},4157:e=>{e.exports={messages:{"camera-loading-feedback-message":"Se pregătește camera","face-scan-loading-feedback-message":"Se pregătește scanarea feței","hold-still-feedback-message":"Vă rugăm nu vă mișcați","image-too-bright-feedback-message":"Îndepărtați-vă de lumina directă","image-too-dark-feedback-message":"Duceți-vă într-o zonă mai luminoasă","move-back-feedback-message":"Mergeți mai în spate","move-center-feedback-message":"Poziționați fața în cadru","move-closer-feedback-message":"Veniți mai aproape","one-face-only-feedback-message":"Este permisă doar o singură față"}}},5632:e=>{e.exports={messages:{"camera-loading-feedback-message":"Подготовка камеры","face-scan-loading-feedback-message":"Подготовка к сканированию лица","hold-still-feedback-message":"Не двигайтесь","image-too-bright-feedback-message":"Отодвиньтесь от прямого света","image-too-dark-feedback-message":"Перейдите в более светлое место","move-back-feedback-message":"Отодвиньтесь назад","move-center-feedback-message":"Поместите лицо в рамку","move-closer-feedback-message":"Придвиньтесь ближе","one-face-only-feedback-message":"Допускается только одно лицо"}}},8646:e=>{e.exports={messages:{"camera-loading-feedback-message":"Förbereder kameran","face-scan-loading-feedback-message":"Förbereder ansiktsskanning","hold-still-feedback-message":"Vänligen håll still","image-too-bright-feedback-message":"Avlägsna dig från direkt ljus","image-too-dark-feedback-message":"Flytta till ett ljusare område","move-back-feedback-message":"Backa","move-center-feedback-message":"Placera ditt ansikte i ramen","move-closer-feedback-message":"Flytta dig närmare","one-face-only-feedback-message":"Endast ett ansikte tillåtet"}}},9843:e=>{e.exports={messages:{"camera-loading-feedback-message":"กำลังเตรียมกล้อง","face-scan-loading-feedback-message":"กำลังเตรียมการสแกนใบหน้า","hold-still-feedback-message":"โปรดหยุดนิ่ง","image-too-bright-feedback-message":"ขยับออกห่างจากแสงโดยตรง","image-too-dark-feedback-message":"ขยับไปยังพื้นที่ที่สว่างกว่า","move-back-feedback-message":"ถอยหลัง","move-center-feedback-message":"ขยับให้ใบหน้าของคุณอยู่ในเฟรม","move-closer-feedback-message":"ขยับเข้ามาใกล้ขึ้น","one-face-only-feedback-message":"อนุญาตให้มีเพียงใบหน้าเดียวเท่านั้น"}}},4829:e=>{e.exports={messages:{"camera-loading-feedback-message":"Kamera hazırlanıyor","face-scan-loading-feedback-message":"Yüz tarama hazırlanıyor","hold-still-feedback-message":"Lütfen kıpırdamadan bekleyin","image-too-bright-feedback-message":"Direkt ışıktan uzaklaşın","image-too-dark-feedback-message":"Daha aydınlık bir alana geçin","move-back-feedback-message":"Uzaklaşın","move-center-feedback-message":"Yüzünüzü çerçeveye yerleştirin","move-closer-feedback-message":"Yakınlaşın","one-face-only-feedback-message":"Yalnızca bir yüze izin verilir"}}},99:e=>{e.exports={messages:{"camera-loading-feedback-message":"Підготовка камери","face-scan-loading-feedback-message":"Підготовка до сканування обличчя","hold-still-feedback-message":"Не рухайтеся","image-too-bright-feedback-message":"Відійдіть від прямого світла","image-too-dark-feedback-message":"Підійдіть у світліше місце","move-back-feedback-message":"Відійдіть назад","move-center-feedback-message":"Помістіть своє обличчя в рамку","move-closer-feedback-message":"Підійдіть ближче","one-face-only-feedback-message":"Дозволяється лише одне обличчя"}}},4565:e=>{e.exports={messages:{"camera-loading-feedback-message":"کیمرہ تیار کر رہا ہے","face-scan-loading-feedback-message":"چہرے کا اسکین تیار کر رہا ہے","hold-still-feedback-message":"براہِ مہربانی ساکت رہیں","image-too-bright-feedback-message":"براہ راست روشنی سے دور ہو جائیں","image-too-dark-feedback-message":"زیادہ روشن جگہ پر جائیں","move-back-feedback-message":"واپس مڑیں","move-center-feedback-message":"اپنا چہرہ فریم میں رکھیں","move-closer-feedback-message":"قریب آئیں","one-face-only-feedback-message":"صرف ایک چہرے کی اجازت ہے"}}},8698:e=>{e.exports={messages:{"camera-loading-feedback-message":"Đang chuẩn bị máy ảnh","face-scan-loading-feedback-message":"Đang chuẩn bị quét khuôn mặt","hold-still-feedback-message":"Vui lòng giữ yên","image-too-bright-feedback-message":"Di chuyển khỏi chỗ ánh sáng chiếu trực tiếp","image-too-dark-feedback-message":"Di chuyển đến chỗ sáng hơn","move-back-feedback-message":"Lùi lại","move-center-feedback-message":"Giữ khuôn mặt của bạn ở trong khung hình","move-closer-feedback-message":"Di chuyển lại gần hơn","one-face-only-feedback-message":"Chỉ cho phép một khuôn mặt"}}},4184:(e,t)=>{var n;!function(){"use strict";var r={}.hasOwnProperty;function o(){for(var e=[],t=0;t<arguments.length;t++){var n=arguments[t];if(n){var a=typeof n;if("string"===a||"number"===a)e.push(n);else if(Array.isArray(n)&&n.length){var i=o.apply(null,n);i&&e.push(i)}else if("object"===a)for(var s in n)r.call(n,s)&&n[s]&&e.push(s)}}return e.join(" ")}e.exports?(o.default=o,e.exports=o):void 0===(n=function(){return o}.apply(t,[]))||(e.exports=n)}()},2703:(e,t,n)=>{"use strict";var r=n(414);function o(){}function a(){}a.resetWarningCache=o,e.exports=function(){function e(e,t,n,o,a,i){if(i!==r){var s=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw s.name="Invariant Violation",s}}function t(){return e}e.isRequired=e;var n={array:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:a,resetWarningCache:o};return n.PropTypes=n,n}},5697:(e,t,n)=>{e.exports=n(2703)()},414:e=>{"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},9497:e=>{"use strict";e.exports=require("react")},4902:()=>{},522:()=>{},753:()=>{},8730:()=>{}},t={};function n(r){var o=t[r];if(void 0!==o)return o.exports;var a=t[r]={exports:{}};return e[r](a,a.exports,n),a.exports}n.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return n.d(t,{a:t}),t},n.d=(e,t)=>{for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},n.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),n.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var r={};(()=>{"use strict";n.r(r),n.d(r,{CAPTURE_METHOD:()=>d,COUNTDOWN_MODES:()=>y,ERROR_CODE:()=>e,FORMAT_TYPE:()=>p,IMAGE_TYPE:()=>v,LANGUAGE_CODE:()=>h,QUALITY_TYPE:()=>m,RESOLUTION_TYPE:()=>w,default:()=>HC});const e={NO_CAMERA_PERMISSION:"NO_CAMERA_PERMISSION",NO_CAMERA:"NO_CAMERA",UNSUPPORTED_BROWSER:"UNSUPPORTED_BROWSER",OVERCONSTRAINED:"OVERCONSTRAINED",GENERIC_CAMERA_ERROR:"GENERIC_CAMERA_ERROR",FACE_DETECTION_INIT_ERROR:"FACE_DETECTION_INIT_ERROR",CAPTURE_LOAD_ERROR:"CAPTURE_LOAD_ERROR",INTERNAL_ERROR:"INTERNAL_ERROR"},t="MOVE_CLOSER",o="MOVE_BACK",a="MOVE_CENTER",i="ONE_FACE_ONLY",s="HOLD_STILL",u="CAMERA_LOADING",c="FACE_SCAN_LOADING",l="IMAGE_TOO_DARK",f="IMAGE_TOO_BRIGHT",h={AR:"ar",CS:"cs",DA:"da",DE:"de",EN:"en",ES:"es",ES_419:"es-419",ET:"et",FI:"fi",FR:"fr",HE:"he",HI:"hi",HY:"hy",ID:"id",IT:"it",JA:"ja",KO:"ko",LT:"lt",LV:"lv",MS:"ms",NB:"nb",NL:"nl",PL:"pl",PT:"pt",RO:"ro",RU:"ru",SV:"sv",TH:"th",TR:"tr",UK:"uk",UR:"ur",VI:"vi"},p={PNG:"png",JPEG:"jpeg"},d={MANUAL:"manual",AUTO:"auto"},v={ORIGINAL:"original",CROPPED:"cropped"},m={HIGH:"high",MEDIUM:"medium",LOW:"low"},g={[m.HIGH]:1,[m.MEDIUM]:.96,[m.LOW]:.9},y={ALWAYS:"always",ONLY_MOBILE:"only_mobile",ONLY_DESKTOP:"only_desktop",NEVER:"never"},b={ASSERTIVE:"assertive",POLITE:"polite"},w={HD:"hd",FULL_HD:"full_hd"},x={[w.HD]:{width:1280,height:720},[w.FULL_HD]:{width:1920,height:1080}};var E=n(9497),_=n.n(E),k=n(5697),O=n.n(k);class C extends E.Component{componentDidCatch(){const{onError:t}=this.props;t(e.INTERNAL_ERROR)}render(){const{children:e}=this.props;return e}}const I=C;function R(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function S(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,o,a=[],i=!0,s=!1;try{for(n=n.call(e);!(i=(r=n.next()).done)&&(a.push(r.value),!t||a.length!==t);i=!0);}catch(u){s=!0,o=u}finally{try{i||null==n.return||n.return()}finally{if(s)throw o}}return a}}(e,t)||function(e,t){if(e){if("string"==typeof e)return R(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?R(e,t):void 0}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function A(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}C.defaultProps={onError:()=>{}},C.propTypes={onError:O().func,children:O().node.isRequired};var P=_().createContext(null);function T(){return _().useContext(P)}var D=function(e){var t=e.i18n,n=e.defaultComponent,r=e.forceRenderOnLocaleChange,o=void 0===r||r,a=e.children,i=function(){return{i18n:t,defaultComponent:n}},s=function(){return o&&t.locale||"default"},u=S(_().useState(i()),2),c=u[0],l=u[1],f=S(_().useState(s()),2),h=f[0],p=f[1];return _().useEffect((function(){var e=t.on("change",(function(){l(i()),p(s())}));return"default"===h&&p(s()),function(){return e()}}),[]),o&&"default"===h?null:_().createElement(P.Provider,{value:c,key:h},a)};function N(e,t){var n;if("undefined"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return M(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?M(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,o=function(){};return{s:o,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,i=!0,s=!1;return{s:function(){n=e[Symbol.iterator]()},n:function(){var e=n.next();return i=e.done,e},e:function(e){s=!0,a=e},f:function(){try{i||null==n.return||n.return()}finally{if(s)throw a}}}}function M(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var F=/<(\d+)>(.*?)<\/\1>|<(\d+)\/>/,B=/(?:\r\n|\r|\n)/g,j={area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0,menuitem:!0};function L(e){if(!e.length)return[];var t=S(e.slice(0,4),4),n=t[0],r=t[1],o=t[2],a=t[3];return[[parseInt(n||o),r||"",a]].concat(L(e.slice(4,e.length)))}var z,H,W=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";return function(){return"".concat(t,"_").concat(e++)}};function V(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function U(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?V(Object(n),!0).forEach((function(t){A(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):V(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function q(e){var t=T(),n=t.i18n,r=t.defaultComponent,o=e.render,a=e.component,i=e.id,s=e.message,u=e.formats,c=U({},e.values),l=U({},e.components);c&&Object.keys(c).forEach((function(e){var t=c[e];if(_().isValidElement(t)){var n=Object.keys(l).length;l[n]=t,c[e]="<".concat(n,"/>")}}));var f=n&&"function"==typeof n._?n._(i,c,{message:s,formats:u}):i,h=f?function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=W(0,"$lingui$"),o=t.replace(B,"").split(F);if(1===o.length)return t;var a=[],i=o.shift();i&&a.push(i);var s,u=N(L(o));try{for(u.s();!(s=u.n()).done;){var c=S(s.value,3),l=c[0],f=c[1],h=c[2],p=n[l];(!p||j[p.type]&&f)&&(p?console.error("".concat(p.type," is a void element tag therefore it must have no children")):console.error("Can use element at index '".concat(l,"' as it is not declared in the original translation")),p=_().createElement(_().Fragment)),a.push(_().cloneElement(p,{key:r()},f?e(f,n):p.props.children)),h&&a.push(h)}}catch(Gt){u.e(Gt)}finally{u.f()}return a}(f,l):null;if(null===o||null===a)return h;var p=r||_().Fragment;if(o&&a)console.error("You can't use both `component` and `render` prop at the same time. `component` is ignored.");else if(o&&"function"!=typeof o)console.error("Invalid value supplied to prop `render`. It must be a function, provided ".concat(o));else if(a&&"function"!=typeof a)return console.error("Invalid value supplied to prop `component`. It must be a React component, provided ".concat(a)),_().createElement(p,null,h);if("function"==typeof o)return o({id:i,translation:h,message:s});var d=a||p;return _().createElement(d,null,h)}function G(){return G=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},G.apply(this,arguments)}q.defaultProps={values:{},components:{}};const X=function(e){return E.createElement("svg",G({xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink",width:"1em",height:"1em",viewBox:"0 0 28 28"},e),z||(z=E.createElement("defs",null,E.createElement("path",{id:"ico-chevron-right_react_icon_svg__a",d:"M12.28 22.625l-1.56-1.25L16.62 14l-5.9-7.375 1.56-1.25L19.18 14z"}))),H||(H=E.createElement("use",{fill:"#F0F",xlinkHref:"#ico-chevron-right_react_icon_svg__a",fillRule:"evenodd"})))};var K;function $(){return $=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},$.apply(this,arguments)}const Y=function(e){return E.createElement("svg",$({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 487 487",width:"1em",height:"1em"},e),K||(K=E.createElement("path",{d:"M308.1 277.95c0 35.7-28.9 64.6-64.6 64.6s-64.6-28.9-64.6-64.6 28.9-64.6 64.6-64.6 64.6 28.9 64.6 64.6zm132.2-161.9c25.8 0 46.7 20.9 46.7 46.7v226.2c0 27.5-22.3 49.8-49.8 49.8H49.8c-27.5 0-49.8-22.3-49.8-49.8v-226.2c0-25.8 20.9-46.7 46.7-46.7h93.4l4.4-18.6c6.7-28.8 32.4-49.2 62-49.2h74.1c29.6 0 55.3 20.4 62 49.2l4.3 18.6h93.4zm-342.9 67.4c0-12.9-10.5-23.4-23.4-23.4-13 0-23.5 10.5-23.5 23.4s10.5 23.4 23.4 23.4c13 .1 23.5-10.4 23.5-23.4zm261.3 94.5c0-63.6-51.6-115.2-115.2-115.2s-115.2 51.6-115.2 115.2 51.6 115.2 115.2 115.2 115.2-51.6 115.2-115.2z"})))},J={DETECTIONS_COUNT:0},Z="INIT_MODEL_DURATION",Q="INIT_DETECTION_DURATION",ee="AVERAGE_DETECTION_DURATION",te="DETECTIONS_COUNT",ne="FACES_COUNT",re="FACE_SCORE",oe="BOX_SIZE",ae="RELATIVE_BOX",ie="CENTERING",se="IS_STABLE_INDEX",ue="BRIGHTNESS_DETECTION_DURATION",ce="BRIGHTNESS_VALUE",le=[ne,re,oe,ae,ie,se,ue,ce],fe=e=>J[e],he=()=>J,pe=e=>{let{key:t,value:n}=e;J[t]=n};class de extends Error{constructor(e,t){super(e),this.facesProperties=t}}const ve=require("react-dom");var me=function(e,t){return me=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},me(e,t)};function ge(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}me(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}var ye=function(){return ye=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},ye.apply(this,arguments)};function be(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n}var we="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:void 0!==n.g?n.g:"undefined"!=typeof self?self:{};var xe=function(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)},Ee="object"==typeof we&&we&&we.Object===Object&&we,_e="object"==typeof self&&self&&self.Object===Object&&self,ke=Ee||_e||Function("return this")(),Oe=ke,Ce=function(){return Oe.Date.now()},Ie=/\s/;var Re=function(e){for(var t=e.length;t--&&Ie.test(e.charAt(t)););return t},Se=/^\s+/;var Ae=function(e){return e?e.slice(0,Re(e)+1).replace(Se,""):e},Pe=ke.Symbol,Te=Pe,De=Object.prototype,Ne=De.hasOwnProperty,Me=De.toString,Fe=Te?Te.toStringTag:void 0;var Be=function(e){var t=Ne.call(e,Fe),n=e[Fe];try{e[Fe]=void 0;var r=!0}catch(Gt){}var o=Me.call(e);return r&&(t?e[Fe]=n:delete e[Fe]),o},je=Object.prototype.toString;var Le=Be,ze=function(e){return je.call(e)},He=Pe?Pe.toStringTag:void 0;var We=function(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":He&&He in Object(e)?Le(e):ze(e)},Ve=function(e){return null!=e&&"object"==typeof e};var Ue=Ae,qe=xe,Ge=function(e){return"symbol"==typeof e||Ve(e)&&"[object Symbol]"==We(e)},Xe=/^[-+]0x[0-9a-f]+$/i,Ke=/^0b[01]+$/i,$e=/^0o[0-7]+$/i,Ye=parseInt;var Je=xe,Ze=Ce,Qe=function(e){if("number"==typeof e)return e;if(Ge(e))return NaN;if(qe(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=qe(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=Ue(e);var n=Ke.test(e);return n||$e.test(e)?Ye(e.slice(2),n?2:8):Xe.test(e)?NaN:+e},et=Math.max,tt=Math.min;var nt=function(e,t,n){var r,o,a,i,s,u,c=0,l=!1,f=!1,h=!0;if("function"!=typeof e)throw new TypeError("Expected a function");function p(t){var n=r,a=o;return r=o=void 0,c=t,i=e.apply(a,n)}function d(e){return c=e,s=setTimeout(m,t),l?p(e):i}function v(e){var n=e-u;return void 0===u||n>=t||n<0||f&&e-c>=a}function m(){var e=Ze();if(v(e))return g(e);s=setTimeout(m,function(e){var n=t-(e-u);return f?tt(n,a-(e-c)):n}(e))}function g(e){return s=void 0,h&&r?p(e):(r=o=void 0,i)}function y(){var e=Ze(),n=v(e);if(r=arguments,o=this,u=e,n){if(void 0===s)return d(u);if(f)return clearTimeout(s),s=setTimeout(m,t),p(u)}return void 0===s&&(s=setTimeout(m,t)),i}return t=Qe(t)||0,Je(n)&&(l=!!n.leading,a=(f="maxWait"in n)?et(Qe(n.maxWait)||0,t):a,h="trailing"in n?!!n.trailing:h),y.cancel=function(){void 0!==s&&clearTimeout(s),c=0,r=u=o=s=void 0},y.flush=function(){return void 0===s?i:g(Ze())},y},rt=nt,ot=xe;var at=function(e,t,n){var r=!0,o=!0;if("function"!=typeof e)throw new TypeError("Expected a function");return ot(n)&&(r="leading"in n?!!n.leading:r,o="trailing"in n?!!n.trailing:o),rt(e,t,{leading:r,maxWait:t,trailing:o})},it=function(e,t,n,r){switch(t){case"debounce":return nt(e,n,r);case"throttle":return at(e,n,r);default:return e}},st=function(e){return"function"==typeof e},ut=function(){return"undefined"==typeof window},ct=function(e){return e instanceof Element||e instanceof HTMLDocument},lt=function(e,t,n,r){return function(o){var a=o.width,i=o.height;t((function(t){return t.width===a&&t.height===i||t.width===a&&!r||t.height===i&&!n?t:(e&&st(e)&&e(a,i),{width:a,height:i})}))}};!function(e){function t(t){var n=e.call(this,t)||this;n.cancelHandler=function(){n.resizeHandler&&n.resizeHandler.cancel&&(n.resizeHandler.cancel(),n.resizeHandler=null)},n.attachObserver=function(){var e=n.props,t=e.targetRef,r=e.observerOptions;if(!ut()){t&&t.current&&(n.targetRef.current=t.current);var o=n.getElement();o&&(n.observableElement&&n.observableElement===o||(n.observableElement=o,n.resizeObserver.observe(o,r)))}},n.getElement=function(){var e=n.props,t=e.querySelector,r=e.targetDomEl;if(ut())return null;if(t)return document.querySelector(t);if(r&&ct(r))return r;if(n.targetRef&&ct(n.targetRef.current))return n.targetRef.current;var o=(0,ve.findDOMNode)(n);if(!o)return null;switch(n.getRenderType()){case"renderProp":case"childFunction":case"child":case"childArray":return o;default:return o.parentElement}},n.createResizeHandler=function(e){var t=n.props,r=t.handleWidth,o=void 0===r||r,a=t.handleHeight,i=void 0===a||a,s=t.onResize;if(o||i){var u=lt(s,n.setState.bind(n),o,i);e.forEach((function(e){var t=e&&e.contentRect||{},r=t.width,o=t.height;!n.skipOnMount&&!ut()&&u({width:r,height:o}),n.skipOnMount=!1}))}},n.getRenderType=function(){var e=n.props,t=e.render,r=e.children;return st(t)?"renderProp":st(r)?"childFunction":(0,E.isValidElement)(r)?"child":Array.isArray(r)?"childArray":"parent"};var r=t.skipOnMount,o=t.refreshMode,a=t.refreshRate,i=void 0===a?1e3:a,s=t.refreshOptions;return n.state={width:void 0,height:void 0},n.skipOnMount=r,n.targetRef=(0,E.createRef)(),n.observableElement=null,ut()||(n.resizeHandler=it(n.createResizeHandler,o,i,s),n.resizeObserver=new window.ResizeObserver(n.resizeHandler)),n}ge(t,e),t.prototype.componentDidMount=function(){this.attachObserver()},t.prototype.componentDidUpdate=function(){this.attachObserver()},t.prototype.componentWillUnmount=function(){ut()||(this.resizeObserver.disconnect(),this.cancelHandler())},t.prototype.render=function(){var e,t=this.props,n=t.render,r=t.children,o=t.nodeType,a=void 0===o?"div":o,i=this.state,s={width:i.width,height:i.height,targetRef:this.targetRef};switch(this.getRenderType()){case"renderProp":return n&&n(s);case"childFunction":return(e=r)(s);case"child":if((e=r).type&&"string"==typeof e.type){var u=be(s,["targetRef"]);return(0,E.cloneElement)(e,u)}return(0,E.cloneElement)(e,s);case"childArray":return(e=r).map((function(e){return!!e&&(0,E.cloneElement)(e,s)}));default:return E.createElement(a,null)}}}(E.PureComponent);var ft=ut()?E.useEffect:E.useLayoutEffect;let ht=!1;const pt=()=>{const[e,t]=(0,E.useState)(ht),n=(0,E.useCallback)((e=>{const n=e>575;ht=n,t(n)}),[]),{ref:r}=function(e){void 0===e&&(e={});var t=e.skipOnMount,n=void 0!==t&&t,r=e.refreshMode,o=e.refreshRate,a=void 0===o?1e3:o,i=e.refreshOptions,s=e.handleWidth,u=void 0===s||s,c=e.handleHeight,l=void 0===c||c,f=e.targetRef,h=e.observerOptions,p=e.onResize,d=(0,E.useRef)(n),v=(0,E.useRef)(null),m=null!=f?f:v,g=(0,E.useRef)(),y=(0,E.useState)({width:void 0,height:void 0}),b=y[0],w=y[1];return ft((function(){if(!ut()){var e=lt(p,w,u,l);g.current=it((function(t){(u||l)&&t.forEach((function(t){var n=t&&t.contentRect||{},r=n.width,o=n.height;!d.current&&!ut()&&e({width:r,height:o}),d.current=!1}))}),r,a,i);var t=new window.ResizeObserver(g.current);return m.current&&t.observe(m.current,h),function(){t.disconnect();var e=g.current;e&&e.cancel&&e.cancel()}}}),[r,a,i,u,l,p,h,m.current]),ye({ref:m},b)}({onResize:n,refreshMode:"debounce"});return(0,E.useEffect)((()=>t(ht)),[ht]),{ref:r,isFromMediumVideoFrame:e}};var dt=n(4184),vt=n.n(dt);const mt="mtcvKOHbFdRFpAH7ZHwW",gt="kYH4ilWb5sFtCcwqD29n",yt="GusgiqC_1nbmjyHkruu0";function bt(){return bt=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},bt.apply(this,arguments)}const wt=e=>{let{children:t,Icon:n,...r}=e;const{isFromMediumVideoFrame:o}=pt();return _().createElement("button",bt({className:vt()(mt,{[gt]:o}),type:"button"},r),t,n&&_().createElement(n,{className:yt}))};wt.propTypes={onClick:O().func.isRequired,disabled:O().bool,children:O().node,Icon:O().func};const xt=wt,Et="dDcfK_agfQV9XSYSuuxR";function _t(){return _t=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},_t.apply(this,arguments)}const kt=e=>{let{CustomButton:t,defaultContent:n,Icon:r,...o}=e;const a=e=>_().createElement("div",{className:Et},_().createElement(xt,_t({Icon:r},e),n));return t?_().createElement(t,o):_().createElement(a,o)};kt.propTypes={CustomButton:O().func,defaultContent:O().string,onClick:O().func.isRequired,disabled:O().bool,Icon:O().func};const Ot=kt,Ct="_XKP_3EMO0LKJr53EW21",It="bX5GJJw3AqsCwBDA6qWZ",Rt=(0,E.forwardRef)(((e,t)=>{let{stream:n,canPlay:r,onCameraReady:o}=e;const a=t?.current,[i,s]=(0,E.useState)(!0),u=(0,E.useCallback)((()=>{s(!1),o(!1)}),[o]),c=(0,E.useCallback)((()=>{a&&a.videoHeight>0&&a.videoWidth>0&&r&&(a.play(),s(!0),o(!0))}),[a,r,o]);return(0,E.useEffect)((()=>{a&&n&&r&&(a.srcObject=n,a.load())}),[a,n,r]),_().createElement("video",{className:vt()(Ct,{[It]:!i}),muted:!0,playsInline:!0,onLoadedData:c,onSuspend:u,ref:t})}));Rt.displayName="CameraPreview",Rt.defaultProps={stream:null,canPlay:!0,onCameraReady:()=>{}},Rt.propTypes={stream:O().object,canPlay:O().bool,onCameraReady:O().func};const St=Rt,At="RxkomAqHmrdu47_oGii4",Pt="ZSTtG9h6K6_0_axlDNnV",Tt="__OOQVMtxL3v8uCw9eKy",Dt="XOix2SeWtEFksSSmLt9v",Nt="Gf_S7QnzULbIZZZ7roY2";var Mt,Ft;function Bt(){return Bt=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Bt.apply(this,arguments)}const jt=function(e){return E.createElement("svg",Bt({xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink",width:"1em",height:"1em",viewBox:"0 0 28 28"},e),Mt||(Mt=E.createElement("defs",null,E.createElement("path",{id:"ico-camera_react_icon_svg__a",d:"M3.5 8a.5.5 0 00-.5.5V21c0 .552.449 1 1 1h20a1 1 0 001-1V8.5a.5.5 0 00-.5-.5h-8.524l-.126-.855C15.713 6.207 14.918 5.5 14 5.5s-1.713.707-1.85 1.645L12.024 8H3.5zM24 24H4c-1.655 0-3-1.346-3-3V8.5C1 7.122 2.122 6 3.5 6h6.896C10.97 4.529 12.393 3.5 14 3.5s3.03 1.029 3.604 2.5H24.5C25.878 6 27 7.122 27 8.5V21c0 1.654-1.346 3-3 3zM6.5 10h-2a.5.5 0 000 1h2a.5.5 0 000-1zm7.5 1.5c-1.93 0-3.5 1.57-3.5 3.5s1.57 3.5 3.5 3.5 3.5-1.57 3.5-3.5-1.57-3.5-3.5-3.5zm0 9A5.506 5.506 0 018.5 15c0-3.033 2.467-5.5 5.5-5.5 3.032 0 5.5 2.467 5.5 5.5 0 3.032-2.468 5.5-5.5 5.5z"}))),Ft||(Ft=E.createElement("use",{fill:"#F0F",xlinkHref:"#ico-camera_react_icon_svg__a",fillRule:"evenodd"})))};const Lt=[3,2,1],zt=e=>{let{action:t,countdownMode:n}=e;const r=(0,E.useRef)(),[o,a]=(0,E.useState)(Lt.length),i=()=>{clearInterval(r.current)},s=()=>{0===o?(i(),t()):a((e=>e-1))},u=()=>{const e=window.innerWidth>=628;switch(n){case y.ONLY_DESKTOP:return!!e;case y.ONLY_MOBILE:return!e;case y.ALWAYS:return!0;case y.NEVER:default:return!1}},c=()=>{u()?r.current=setInterval(s,1e3):t()};(0,E.useEffect)((()=>(c(),i)),[n,o]);const l=e=>o===e?Pt:Tt;return u()?_().createElement("div",{className:At},Lt.map((e=>_().createElement("span",{key:e,className:l(e)},e))),_().createElement("span",{className:l(0)},_().createElement(jt,{className:0===o?Dt:Nt}))):null};zt.defaultProps={countdownMode:"never"},zt.propTypes={action:O().func.isRequired,countdownMode:O().oneOf(Object.values(y))};const Ht=zt;function Wt(){const[e,t]=(0,E.useState)(null),n=(0,E.useCallback)((e=>{t(e)}),[]);return n.current=e,n}const Vt=e=>Object.entries(e).map((e=>{let[t,n]=e;const r=(e=>e.replace(/_/g," ").toLowerCase())(t),o=(e=>"number"==typeof e?Math.ceil(e):e)(n);return`${r}: ${o}`})),Ut=e=>new Promise((t=>setTimeout(t,e)));var qt=function(e,t){return(qt=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)};function Gt(e,t){function n(){this.constructor=e}qt(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}function Xt(e,t,n,r){return new(n||(n=Promise))((function(o,a){function i(e){try{u(r.next(e))}catch(e){a(e)}}function s(e){try{u(r.throw(e))}catch(e){a(e)}}function u(e){e.done?o(e.value):new n((function(t){t(e.value)})).then(i,s)}u((r=r.apply(e,t||[])).next())}))}function Kt(e,t){var n,r,o,a,i={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return a={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(a){return function(s){return function(a){if(n)throw new TypeError("Generator is already executing.");for(;i;)try{if(n=1,r&&(o=2&a[0]?r.return:a[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,a[1])).done)return o;switch(r=0,o&&(a=[2&a[0],o.value]),a[0]){case 0:case 1:o=a;break;case 4:return i.label++,{value:a[1],done:!1};case 5:i.label++,r=a[1],a=[0];continue;case 7:a=i.ops.pop(),i.trys.pop();continue;default:if(!(o=(o=i.trys).length>0&&o[o.length-1])&&(6===a[0]||2===a[0])){i=0;continue}if(3===a[0]&&(!o||a[1]>o[0]&&a[1]<o[3])){i.label=a[1];break}if(6===a[0]&&i.label<o[1]){i.label=o[1],o=a;break}if(o&&i.label<o[2]){i.label=o[2],i.ops.push(a);break}o[2]&&i.ops.pop(),i.trys.pop();continue}a=t.call(e,i)}catch(e){a=[6,e],r=0}finally{n=o=0}if(5&a[0])throw a[1];return{value:a[0]?a[1]:void 0,done:!0}}([a,s])}}}var $t=function(){function e(e){this.global=e,this.flags={},this.flagRegistry={},this.urlFlags={},this.populateURLFlags()}return e.prototype.setPlatform=function(e,t){null!=this.platform&&console.warn("Platform "+this.platformName+" has already been set. Overwriting the platform with "+t+"."),this.platformName=e,this.platform=t},e.prototype.registerFlag=function(e,t,n){if(this.flagRegistry[e]={evaluationFn:t,setHook:n},null!=this.urlFlags[e]){var r=this.urlFlags[e];console.warn("Setting feature override from URL "+e+": "+r+"."),this.set(e,r)}},e.prototype.get=function(e){return e in this.flags||(this.flags[e]=this.evaluateFlag(e)),this.flags[e]},e.prototype.getNumber=function(e){return this.get(e)},e.prototype.getBool=function(e){return this.get(e)},e.prototype.getFlags=function(){return this.flags},Object.defineProperty(e.prototype,"features",{get:function(){return this.flags},enumerable:!0,configurable:!0}),e.prototype.set=function(e,t){if(null==this.flagRegistry[e])throw new 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)},e.prototype.evaluateFlag=function(e){if(null==this.flagRegistry[e])throw new Error("Cannot evaluate flag '"+e+"': no evaluation function found.");return this.flagRegistry[e].evaluationFn()},e.prototype.setFlags=function(e){this.flags=Object.assign({},e)},e.prototype.reset=function(){this.flags={},this.urlFlags={},this.populateURLFlags()},e.prototype.populateURLFlags=function(){var e=this;if(void 0!==this.global&&void 0!==this.global.location&&void 0!==this.global.location.search){var t,n,r=(t=this.global.location.search,n={},t.replace(/[?&]([^=?&]+)(?:=([^&]*))?/g,(function(e){for(var t=[],r=1;r<arguments.length;r++)t[r-1]=arguments[r];return function(e,t,n){e[decodeURIComponent(t)]=decodeURIComponent(n||"")}(n,t[0],t[1]),t.join("=")})),n);"tfjsflags"in r&&r.tfjsflags.split(",").forEach((function(t){var n=t.split(":"),r=n[0],o=n[1];e.urlFlags[r]=function(e,t){if("true"===(t=t.toLowerCase())||"false"===t)return"true"===t;if(""+ +t===t)return+t;throw new Error("Could not parse value flag value "+t+" for flag "+e+".")}(r,o)}))}},e}();function Yt(){return Jt}var Jt=null,Zt=new Map;function Qt(e,t){var n=nn(e,t);return Zt.get(n)}function en(e){for(var t=Zt.entries(),n=[];;){var r=t.next(),o=r.done,a=r.value;if(o)break;var i=a[0],s=a[1];i.split("_")[0]===e&&n.push(s)}return n}function tn(e){var t=e.kernelName,n=e.backendName,r=nn(t,n);if(Zt.has(r))throw new Error("The kernel '"+t+"' for backend '"+n+"' is already registered");Zt.set(r,e)}function nn(e,t){return t+"_"+e}function rn(e){for(var t=e.length,n=0,r=0;t>0;)r=Math.random()*t|0,n=e[--t],e[t]=e[r],e[r]=n}function on(e,t,n){return Math.max(e,Math.min(t,n))}function an(e){return e%2==0?e:e+1}function sn(e){for(var t=0,n=0;n<e.length;n++)t+=e[n];return t}function un(e,t){if(!e)throw new Error("string"==typeof t?t:t())}function cn(e,t,n){void 0===n&&(n=""),un(pn(e,t),(function(){return n+" Shapes "+e+" and "+t+" must match"}))}function ln(e){un(null!=e,(function(){return"The input to the tensor constructor must be a non-null value."}))}function fn(e,t,n){if(void 0===t&&(t=[]),void 0===n&&(n=!1),null==t&&(t=[]),Array.isArray(e)||In(e)&&!n)for(var r=0;r<e.length;++r)fn(e[r],t,n);else t.push(e);return t}function hn(e){if(0===e.length)return 1;for(var t=e[0],n=1;n<e.length;n++)t*=e[n];return t}function pn(e,t){if(e===t)return!0;if(null==e||null==t)return!1;if(e.length!==t.length)return!1;for(var n=0;n<e.length;n++)if(e[n]!==t[n])return!1;return!0}function dn(e){return e%1==0}function vn(e){if(null!=Math.tanh)return Math.tanh(e);if(e===1/0)return 1;if(e===-1/0)return-1;var t=Math.exp(2*e);return(t-1)/(t+1)}function mn(e){var t=Math.ceil(Math.sqrt(e));return[t,Math.ceil(e/t)]}function gn(e,t){return t<=e.length?e:e+" ".repeat(t-e.length)}function yn(e,t,n){return void 0===t&&(t=function(e){return 0}),new Promise((function(r,o){var a=0,i=function(){if(e())r();else{var s=t(++a);null!=n&&a>=n?o():setTimeout(i,s)}};i()}))}function bn(e,t){for(var n=1,r=-1,o=0;o<e.length;++o)if(e[o]>=0)n*=e[o];else if(-1===e[o]){if(-1!==r)throw Error("Shapes can only have 1 implicit size. Found -1 at dim "+r+" and dim "+o);r=o}else if(e[o]<0)throw Error("Shapes can not be < 0. Found "+e[o]+" at dim "+o);if(-1===r){if(t>0&&t!==n)throw Error("Size("+t+") must match the product of shape "+e);return e}if(0===n)throw Error("Cannot infer the missing size in ["+e+"] when there are 0 elements");if(t%n!=0)throw Error("The implicit shape can't be a fractional number. Got "+t+" / "+n);var a=e.slice();return a[r]=t/n,a}function wn(e,t){var n=t.length;return un((e=null==e?t.map((function(e,t){return t})):[].concat(e)).every((function(e){return e>=-n&&e<n})),(function(){return"All values in axis param must be in range [-"+n+", "+n+") but got axis "+e})),un(e.every((function(e){return dn(e)})),(function(){return"All values in axis param must be integers but got axis "+e})),e.map((function(e){return e<0?n+e:e}))}function xn(e,t){for(var n=[],r=[],o=null!=t&&Array.isArray(t)&&0===t.length,a=null==t||o?null:wn(t,e).sort(),i=0,s=0;s<e.length;++s){if(null!=a){if(a[i]===s&&1!==e[s])throw new Error("Can't squeeze axis "+s+" since its dim '"+e[s]+"' is not 1");(null==a[i]||a[i]>s)&&1===e[s]&&(n.push(e[s]),r.push(s)),a[i]<=s&&i++}1!==e[s]&&(n.push(e[s]),r.push(s))}return{newShape:n,keptDims:r}}function En(e,t){var n=null;if(null==e||"float32"===e)n=new Float32Array(t);else if("int32"===e)n=new Int32Array(t);else{if("bool"!==e)throw new Error("Unknown data type "+e);n=new Uint8Array(t)}return n}function _n(e,t){var n=null;if(null==e||"float32"===e)n=new Float32Array(t);else if("int32"===e)n=new Int32Array(t);else if("bool"===e)n=new Uint8Array(t);else{if("string"!==e)throw new Error("Unknown data type "+e);n=new Array(t)}return n}function kn(e,t){for(var n=0;n<e.length;n++){var r=e[n];if(isNaN(r)||!isFinite(r))throw Error("A tensor of type "+t+" being uploaded contains "+r+".")}}function On(e){return"bool"===e||"complex64"===e||"float32"===e||"int32"===e||"string"===e}function Cn(e,t){return!("complex64"===t||"float32"===t&&"complex64"!==e||"int32"===t&&"float32"!==e&&"complex64"!==e||"bool"===t&&"bool"===e)}function In(e){return e instanceof Float32Array||e instanceof Int32Array||e instanceof Uint8Array}function Rn(e){if("float32"===e||"int32"===e)return 4;if("complex64"===e)return 8;if("bool"===e)return 1;throw new Error("Unknown dtype "+e)}function Sn(e){if(null==e)return 0;var t=0;return e.forEach((function(e){return t+=e.length})),t}function An(e){return"string"==typeof e||e instanceof String}function Pn(e){return"boolean"==typeof e}function Tn(e){return"number"==typeof e}function Dn(e){return Array.isArray(e)?Dn(e[0]):e instanceof Float32Array?"float32":e instanceof Int32Array||e instanceof Uint8Array?"int32":Tn(e)?"float32":An(e)?"string":Pn(e)?"bool":"float32"}function Nn(e){return!!(e&&e.constructor&&e.call&&e.apply)}function Mn(e,t){for(var n=t;n<e;++n)if(e%n==0)return n;return e}function Fn(e){var t=e.length;if(t<2)return[];var n=new Array(t-1);n[t-2]=e[t-1];for(var r=t-3;r>=0;--r)n[r]=n[r+1]*e[r+1];return n}function Bn(e,t,n){if("string"===t)throw new Error("Cannot convert a string[] to a TypedArray");if(Array.isArray(e)&&(e=fn(e)),n&&kn(e,t),function(e,t){return e instanceof Float32Array&&"float32"===t||e instanceof Int32Array&&"int32"===t||e instanceof Uint8Array&&"bool"===t}(e,t))return e;if(null==t||"float32"===t||"complex64"===t)return new Float32Array(e);if("int32"===t)return new Int32Array(e);if("bool"===t){for(var r=new Uint8Array(e.length),o=0;o<r.length;++o)0!==Math.round(e[o])&&(r[o]=1);return r}throw new Error("Unknown data type "+t)}function jn(e,t){if(0===e.length)return t[0];var n=e.reduce((function(e,t){return e*t}));if(0===n)return[];if(n!==t.length)throw new Error("["+e+"] does not match the input size.");return function e(t,n,r){var o=new Array;if(1===n.length)for(var a=n[0],i=0;i<a;i++)o[i]=r[t+i];else{a=n[0];var s=n.slice(1),u=s.reduce((function(e,t){return e*t}));for(i=0;i<a;i++)o[i]=e(t+i*u,s,r)}return o}(0,e,t)}function Ln(e,t){for(var n=zn(e,t),r=0;r<n.length;r++)n[r]=1;return n}function zn(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 new Error("Unknown data type "+t)}function Hn(){return Yt().platform.now()}function Wn(e){e.forEach((function(t){un(Number.isInteger(t)&&t>=0,(function(){return"Tensor must have a shape comprised of positive integers but got shape ["+e+"]."}))}))}function Vn(e,t){return void 0===t&&(t="utf-8"),t=t||"utf-8",Yt().platform.encode(e,t)}function Un(e,t){return void 0===t&&(t="utf-8"),t=t||"utf-8",Yt().platform.decode(e,t)}Object.freeze({shuffle:rn,clamp:on,nearestLargerEven:an,sum:sn,randUniform:function(e,t){var n=Math.random();return t*n+(1-n)*e},distSquared:function(e,t){for(var n=0,r=0;r<e.length;r++){var o=Number(e[r])-Number(t[r]);n+=o*o}return n},assert:un,assertShapesMatch:cn,assertNonNull:ln,flatten:fn,sizeFromShape:hn,isScalarShape:function(e){return 0===e.length},arraysEqual:pn,isInt:dn,tanh:vn,sizeToSquarishShape:mn,createShuffledIndices:function(e){for(var t=new Uint32Array(e),n=0;n<e;++n)t[n]=n;return rn(t),t},rightPad:gn,repeatedTry:yn,inferFromImplicitShape:bn,parseAxisParam:wn,squeezeShape:xn,getTypedArrayFromDType:En,getArrayFromDType:_n,checkConversionForErrors:kn,isValidDtype:On,hasEncodingLoss:Cn,isTypedArray:In,bytesPerElement:Rn,bytesFromStringArray:Sn,isString:An,isBoolean:Pn,isNumber:Tn,inferDtype:Dn,isFunction:Nn,nearestDivisor:Mn,computeStrides:Fn,toTypedArray:Bn,toNestedArray:jn,makeOnesTypedArray:Ln,makeZerosTypedArray:zn,now:Hn,assertNonNegativeIntegerDimensions:Wn,fetch:function(e,t){return Yt().platform.fetch(e,t)},encodeString:Vn,decodeString:Un});var qn=function(){function e(e,t){this.backendTimer=e,this.logger=t,null==t&&(this.logger=new Gn)}return e.prototype.profileKernel=function(e,t,n){var r,o=this,a=this.backendTimer.time((function(){r=n()}));return r.forEach((function(n){n.data().then((function(r){!function(e,t,n){if("float32"!==t)return!1;for(var r=0;r<e.length;r++){var o=e[r];if(isNaN(o)||!isFinite(o))return console.warn("Found "+o+" in the result of '"+n+"'"),!0}}(r,n.dtype,e),a.then((function(a){var i="";null!=a.getExtraProfileInfo&&(i=a.getExtraProfileInfo()),o.logger.logKernelProfile(e,n,r,a.kernelMs,t,i)}))}))})),r},e}(),Gn=function(){function e(){}return e.prototype.logKernelProfile=function(e,t,n,r,o,a){gn(r+"ms",9),gn(e,25),t.rank,t.size,gn(t.shape.toString(),14);for(var i in o){var s=o[i].shape,u=s.length;i+": "+u+"D "+(u>0?s:"")+" "}},e}();function Xn(e,t,n){return gn(Array.isArray(e)?parseFloat(e[0].toFixed(7))+" + "+parseFloat(e[1].toFixed(7))+"j":An(e)?"'"+e+"'":"bool"===n?Kn(e):parseFloat(e.toFixed(7)).toString(),t)}function Kn(e){return 0===e?"false":"true"}function $n(e){for(var t=[],n=0;n<e.length;n+=2)t.push([e[n],e[n+1]]);return t}var Yn=function(){function e(e,t,n){var r=this;if(this.dtype=t,this.shape=e.slice(),this.size=hn(e),null!=n){var o=n.length;un(o===this.size,(function(){return"Length of values '"+o+"' does not match the size inferred by the shape '"+r.size+"'."}))}if("complex64"===t)throw new Error("complex64 dtype TensorBuffers are not supported. Please create a TensorBuffer for the real and imaginary parts separately and call tf.complex(real, imag).");this.values=n||_n(t,this.size),this.strides=Fn(e)}return e.prototype.set=function(e){for(var t=this,n=[],r=1;r<arguments.length;r++)n[r-1]=arguments[r];0===n.length&&(n=[0]),un(n.length===this.rank,(function(){return"The number of provided coordinates ("+n.length+") must match the rank ("+t.rank+")"}));var o=this.locToIndex(n);this.values[o]=e},e.prototype.get=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];0===e.length&&(e=[0]);for(var n=0,r=0,o=e;r<o.length;r++){var a=o[r];if(a<0||a>=this.shape[n]){var i="Requested out of range element at "+e+". Buffer shape="+this.shape;throw new Error(i)}n++}for(var s=e[e.length-1],u=0;u<e.length-1;++u)s+=this.strides[u]*e[u];return this.values[s]},e.prototype.locToIndex=function(e){if(0===this.rank)return 0;if(1===this.rank)return e[0];for(var t=e[e.length-1],n=0;n<e.length-1;++n)t+=this.strides[n]*e[n];return t},e.prototype.indexToLoc=function(e){if(0===this.rank)return[];if(1===this.rank)return[e];for(var t=new Array(this.shape.length),n=0;n<t.length-1;++n)t[n]=Math.floor(e/this.strides[n]),e-=t[n]*this.strides[n];return t[t.length-1]=e,t},Object.defineProperty(e.prototype,"rank",{get:function(){return this.shape.length},enumerable:!0,configurable:!0}),e.prototype.toTensor=function(){return Jn().makeTensor(this.values,this.shape,this.dtype)},e}(),Jn=null,Zn=null,Qn=null,er=function(){function e(e,t,n,r){this.kept=!1,this.isDisposedInternal=!1,this.shape=e.slice(),this.dtype=t||"float32",this.size=hn(e),this.strides=Fn(e),this.dataId=n,this.id=r,this.rankType=this.rank<5?this.rank.toString():"higher"}return e.prototype.flatten=function(){return this.throwIfDisposed(),this.as1D()},e.prototype.asScalar=function(){return this.throwIfDisposed(),un(1===this.size,(function(){return"The array must have only 1 element."})),this.reshape([])},e.prototype.as1D=function(){return this.throwIfDisposed(),this.reshape([this.size])},e.prototype.as2D=function(e,t){return this.throwIfDisposed(),this.reshape([e,t])},e.prototype.as3D=function(e,t,n){return this.throwIfDisposed(),this.reshape([e,t,n])},e.prototype.as4D=function(e,t,n,r){return this.throwIfDisposed(),this.reshape([e,t,n,r])},e.prototype.as5D=function(e,t,n,r,o){return this.throwIfDisposed(),this.reshape([e,t,n,r,o])},e.prototype.asType=function(e){return this.throwIfDisposed(),Zn.cast(this,e)},Object.defineProperty(e.prototype,"rank",{get:function(){return this.shape.length},enumerable:!0,configurable:!0}),e.prototype.buffer=function(){return Xt(this,void 0,void 0,(function(){var e;return Kt(this,(function(t){switch(t.label){case 0:return[4,this.data()];case 1:return e=t.sent(),[2,Zn.buffer(this.shape,this.dtype,e)]}}))}))},e.prototype.bufferSync=function(){return Zn.buffer(this.shape,this.dtype,this.dataSync())},e.prototype.array=function(){return Xt(this,void 0,void 0,(function(){var e;return Kt(this,(function(t){switch(t.label){case 0:return[4,this.data()];case 1:return e=t.sent(),[2,jn(this.shape,e)]}}))}))},e.prototype.arraySync=function(){return jn(this.shape,this.dataSync())},e.prototype.data=function(){return Xt(this,void 0,void 0,(function(){var e,t;return Kt(this,(function(n){switch(n.label){case 0:return this.throwIfDisposed(),e=Jn().read(this.dataId),"string"!==this.dtype?[3,2]:[4,e];case 1:t=n.sent();try{return[2,t.map((function(e){return Un(e)}))]}catch(e){throw new Error("Failed to decode the string bytes into utf-8. To get the original bytes, call tensor.bytes().")}n.label=2;case 2:return[2,e]}}))}))},e.prototype.dataSync=function(){this.throwIfDisposed();var e=Jn().readSync(this.dataId);if("string"===this.dtype)try{return e.map((function(e){return Un(e)}))}catch(e){throw new Error("Failed to decode the string bytes into utf-8. To get the original bytes, call tensor.bytes().")}return e},e.prototype.bytes=function(){return Xt(this,void 0,void 0,(function(){var e;return Kt(this,(function(t){switch(t.label){case 0:return this.throwIfDisposed(),[4,Jn().read(this.dataId)];case 1:return e=t.sent(),"string"===this.dtype?[2,e]:[2,new Uint8Array(e.buffer)]}}))}))},e.prototype.dispose=function(){this.isDisposed||(Jn().disposeTensor(this),this.isDisposedInternal=!0)},Object.defineProperty(e.prototype,"isDisposed",{get:function(){return this.isDisposedInternal},enumerable:!0,configurable:!0}),e.prototype.throwIfDisposed=function(){if(this.isDisposed)throw new Error("Tensor is disposed.")},e.prototype.toFloat=function(){return this.asType("float32")},e.prototype.toInt=function(){return this.asType("int32")},e.prototype.toBool=function(){return this.asType("bool")},e.prototype.print=function(e){return void 0===e&&(e=!1),Zn.print(this,e)},e.prototype.reshape=function(e){return this.throwIfDisposed(),Zn.reshape(this,e)},e.prototype.reshapeAs=function(e){return this.throwIfDisposed(),this.reshape(e.shape)},e.prototype.expandDims=function(e){return void 0===e&&(e=0),Zn.expandDims(this,e)},e.prototype.cumsum=function(e,t,n){return void 0===e&&(e=0),void 0===t&&(t=!1),void 0===n&&(n=!1),Zn.cumsum(this,e,t,n)},e.prototype.squeeze=function(e){return this.throwIfDisposed(),Zn.squeeze(this,e)},e.prototype.clone=function(){return this.throwIfDisposed(),Zn.clone(this)},e.prototype.oneHot=function(e,t,n){return this.throwIfDisposed(),Zn.oneHot(this,e,t,n)},e.prototype.toString=function(e){return void 0===e&&(e=!1),function(e,t,n,r){var o=Fn(t),a=function(e,t,n,r){var o=hn(t),a=r[r.length-1],i=new Array(a).fill(0),s=t.length,u="complex64"===n?$n(e):e;if(s>1)for(var c=0;c<o/a;c++)for(var l=c*a,f=0;f<a;f++)i[f]=Math.max(i[f],Xn(u[l+f],0,n).length);return i}(e,t,n,o),i=t.length,s=function e(t,n,r,o,a,i){void 0===i&&(i=!0);var s="complex64"===r?2:1,u=n[0],c=n.length;if(0===c)return"complex64"===r?[Xn($n(t)[0],0,r)]:"bool"===r?[Kn(t[0])]:[t[0].toString()];if(1===c){if(u>20){var l=3*s,f=Array.from(t.slice(0,l)),h=Array.from(t.slice((u-3)*s,u*s));return"complex64"===r&&(f=$n(f),h=$n(h)),["["+f.map((function(e,t){return Xn(e,a[t],r)})).join(", ")+", ..., "+h.map((function(e,t){return Xn(e,a[u-3+t],r)})).join(", ")+"]"]}return["["+("complex64"===r?$n(t):Array.from(t)).map((function(e,t){return Xn(e,a[t],r)})).join(", ")+"]"]}var p=n.slice(1),d=o.slice(1),v=o[0]*s,m=[];if(u>20){for(var g=0;g<3;g++){var y=(b=g*v)+v;m.push.apply(m,e(t.slice(b,y),p,r,d,a,!1))}for(m.push("..."),g=u-3;g<u;g++)y=(b=g*v)+v,m.push.apply(m,e(t.slice(b,y),p,r,d,a,g===u-1))}else for(g=0;g<u;g++){var b;y=(b=g*v)+v,m.push.apply(m,e(t.slice(b,y),p,r,d,a,g===u-1))}var w=2===c?",":"";for(m[0]="["+m[0]+w,g=1;g<m.length-1;g++)m[g]=" "+m[g]+w;var x=",\n";for(g=2;g<c;g++)x+="\n";return m[m.length-1]=" "+m[m.length-1]+"]"+(i?"":x),m}(e,t,n,o,a),u=["Tensor"];return r&&(u.push(" dtype: "+n),u.push(" rank: "+i),u.push(" shape: ["+t+"]"),u.push(" values:")),u.push(s.map((function(e){return" "+e})).join("\n")),u.join("\n")}(this.dataSync(),this.shape,this.dtype,e)},e.prototype.tile=function(e){return this.throwIfDisposed(),Zn.tile(this,e)},e.prototype.gather=function(e,t){return void 0===t&&(t=0),this.throwIfDisposed(),Zn.gather(this,e,t)},e.prototype.matMul=function(e,t,n){return void 0===t&&(t=!1),void 0===n&&(n=!1),this.throwIfDisposed(),Zn.matMul(this,e,t,n)},e.prototype.dot=function(e){return this.throwIfDisposed(),Zn.dot(this,e)},e.prototype.norm=function(e,t,n){return void 0===e&&(e="euclidean"),void 0===t&&(t=null),void 0===n&&(n=!1),this.throwIfDisposed(),Zn.norm(this,e,t,n)},e.prototype.slice=function(e,t){return this.throwIfDisposed(),Zn.slice(this,e,t)},e.prototype.reverse=function(e){return this.throwIfDisposed(),Zn.reverse(this,e)},e.prototype.concat=function(t,n){return void 0===n&&(n=0),this.throwIfDisposed(),t instanceof e&&(t=[t]),Zn.concat([this].concat(t),n)},e.prototype.split=function(e,t){return void 0===t&&(t=0),this.throwIfDisposed(),Zn.split(this,e,t)},e.prototype.stack=function(e,t){return void 0===t&&(t=0),Zn.stack([this,e],t)},e.prototype.unstack=function(e){return void 0===e&&(e=0),Zn.unstack(this,e)},e.prototype.pad=function(e,t){return void 0===t&&(t=0),Zn.pad(this,e,t)},e.prototype.batchNormalization=function(e,t,n,r,o){return void 0===n&&(n=.001),Qn("tf.batchNormalization() is going away. Use tf.batchNorm() instead, and note the positional argument change of scale, offset, and varianceEpsilon"),this.batchNorm(e,t,o,r,n)},e.prototype.batchNorm=function(e,t,n,r,o){return void 0===o&&(o=.001),this.throwIfDisposed(),Zn.batchNorm(this,e,t,n,r,o)},e.prototype.all=function(e,t){return void 0===e&&(e=null),void 0===t&&(t=!1),this.throwIfDisposed(),Zn.all(this,e,t)},e.prototype.any=function(e,t){return void 0===e&&(e=null),void 0===t&&(t=!1),this.throwIfDisposed(),Zn.any(this,e,t)},e.prototype.logSumExp=function(e,t){return void 0===e&&(e=null),void 0===t&&(t=!1),this.throwIfDisposed(),Zn.logSumExp(this,e,t)},e.prototype.sum=function(e,t){return void 0===e&&(e=null),void 0===t&&(t=!1),this.throwIfDisposed(),Zn.sum(this,e,t)},e.prototype.prod=function(e,t){return void 0===e&&(e=null),void 0===t&&(t=!1),this.throwIfDisposed(),Zn.prod(this,e,t)},e.prototype.mean=function(e,t){return void 0===e&&(e=null),void 0===t&&(t=!1),this.throwIfDisposed(),Zn.mean(this,e,t)},e.prototype.min=function(e,t){return void 0===e&&(e=null),void 0===t&&(t=!1),this.throwIfDisposed(),Zn.min(this,e,t)},e.prototype.max=function(e,t){return void 0===e&&(e=null),void 0===t&&(t=!1),this.throwIfDisposed(),Zn.max(this,e,t)},e.prototype.argMin=function(e){return void 0===e&&(e=null),this.throwIfDisposed(),Zn.argMin(this,e)},e.prototype.argMax=function(e){return void 0===e&&(e=null),this.throwIfDisposed(),Zn.argMax(this,e)},e.prototype.cast=function(e){return this.throwIfDisposed(),Zn.cast(this,e)},e.prototype.add=function(e){return this.throwIfDisposed(),Zn.add(this,e)},e.prototype.addStrict=function(e){return this.throwIfDisposed(),Zn.addStrict(this,e)},e.prototype.atan2=function(e){return this.throwIfDisposed(),Zn.atan2(this,e)},e.prototype.sub=function(e){return this.throwIfDisposed(),Zn.sub(this,e)},e.prototype.subStrict=function(e){return this.throwIfDisposed(),Zn.subStrict(this,e)},e.prototype.pow=function(e){return this.throwIfDisposed(),Zn.pow(this,e)},e.prototype.powStrict=function(e){return this.throwIfDisposed(),Zn.powStrict(this,e)},e.prototype.mul=function(e){return this.throwIfDisposed(),Zn.mul(this,e)},e.prototype.mulStrict=function(e){return this.throwIfDisposed(),Zn.mulStrict(this,e)},e.prototype.div=function(e){return this.throwIfDisposed(),Zn.div(this,e)},e.prototype.divNoNan=function(e){return this.throwIfDisposed(),Zn.divNoNan(this,e)},e.prototype.floorDiv=function(e){return this.throwIfDisposed(),Zn.floorDiv(this,e)},e.prototype.divStrict=function(e){return this.throwIfDisposed(),Zn.divStrict(this,e)},e.prototype.minimum=function(e){return this.throwIfDisposed(),Zn.minimum(this,e)},e.prototype.minimumStrict=function(e){return this.throwIfDisposed(),Zn.minimumStrict(this,e)},e.prototype.maximum=function(e){return this.throwIfDisposed(),Zn.maximum(this,e)},e.prototype.maximumStrict=function(e){return this.throwIfDisposed(),Zn.maximumStrict(this,e)},e.prototype.mod=function(e){return this.throwIfDisposed(),Zn.mod(this,e)},e.prototype.modStrict=function(e){return this.throwIfDisposed(),Zn.modStrict(this,e)},e.prototype.squaredDifference=function(e){return this.throwIfDisposed(),Zn.squaredDifference(this,e)},e.prototype.squaredDifferenceStrict=function(e){return this.throwIfDisposed(),Zn.squaredDifferenceStrict(this,e)},e.prototype.transpose=function(e){return this.throwIfDisposed(),Zn.transpose(this,e)},e.prototype.notEqual=function(e){return this.throwIfDisposed(),Zn.notEqual(this,e)},e.prototype.notEqualStrict=function(e){return this.throwIfDisposed(),Zn.notEqualStrict(this,e)},e.prototype.less=function(e){return this.throwIfDisposed(),Zn.less(this,e)},e.prototype.lessStrict=function(e){return this.throwIfDisposed(),Zn.lessStrict(this,e)},e.prototype.equal=function(e){return this.throwIfDisposed(),Zn.equal(this,e)},e.prototype.equalStrict=function(e){return this.throwIfDisposed(),Zn.equalStrict(this,e)},e.prototype.lessEqual=function(e){return this.throwIfDisposed(),Zn.lessEqual(this,e)},e.prototype.lessEqualStrict=function(e){return this.throwIfDisposed(),Zn.lessEqualStrict(this,e)},e.prototype.greater=function(e){return this.throwIfDisposed(),Zn.greater(this,e)},e.prototype.greaterStrict=function(e){return this.throwIfDisposed(),Zn.greaterStrict(this,e)},e.prototype.greaterEqual=function(e){return this.throwIfDisposed(),Zn.greaterEqual(this,e)},e.prototype.greaterEqualStrict=function(e){return this.throwIfDisposed(),Zn.greaterEqualStrict(this,e)},e.prototype.logicalAnd=function(e){return this.throwIfDisposed(),Zn.logicalAnd(this,e)},e.prototype.logicalOr=function(e){return this.throwIfDisposed(),Zn.logicalOr(this,e)},e.prototype.logicalNot=function(){return this.throwIfDisposed(),Zn.logicalNot(this)},e.prototype.logicalXor=function(e){return this.throwIfDisposed(),Zn.logicalXor(this,e)},e.prototype.where=function(e,t){return this.throwIfDisposed(),Zn.where(e,this,t)},e.prototype.neg=function(){return this.throwIfDisposed(),Zn.neg(this)},e.prototype.ceil=function(){return this.throwIfDisposed(),Zn.ceil(this)},e.prototype.floor=function(){return this.throwIfDisposed(),Zn.floor(this)},e.prototype.sign=function(){return this.throwIfDisposed(),Zn.sign(this)},e.prototype.isNaN=function(){return this.throwIfDisposed(),Zn.isNaN(this)},e.prototype.isInf=function(){return this.throwIfDisposed(),Zn.isInf(this)},e.prototype.isFinite=function(){return this.throwIfDisposed(),Zn.isFinite(this)},e.prototype.exp=function(){return this.throwIfDisposed(),Zn.exp(this)},e.prototype.expm1=function(){return this.throwIfDisposed(),Zn.expm1(this)},e.prototype.log=function(){return this.throwIfDisposed(),Zn.log(this)},e.prototype.log1p=function(){return this.throwIfDisposed(),Zn.log1p(this)},e.prototype.sqrt=function(){return this.throwIfDisposed(),Zn.sqrt(this)},e.prototype.rsqrt=function(){return this.throwIfDisposed(),Zn.rsqrt(this)},e.prototype.square=function(){return this.throwIfDisposed(),Zn.square(this)},e.prototype.reciprocal=function(){return this.throwIfDisposed(),Zn.reciprocal(this)},e.prototype.abs=function(){return this.throwIfDisposed(),Zn.abs(this)},e.prototype.clipByValue=function(e,t){return this.throwIfDisposed(),Zn.clipByValue(this,e,t)},e.prototype.relu=function(){return this.throwIfDisposed(),Zn.relu(this)},e.prototype.relu6=function(){return this.throwIfDisposed(),Zn.relu6(this)},e.prototype.elu=function(){return this.throwIfDisposed(),Zn.elu(this)},e.prototype.selu=function(){return this.throwIfDisposed(),Zn.selu(this)},e.prototype.leakyRelu=function(e){return void 0===e&&(e=.2),this.throwIfDisposed(),Zn.leakyRelu(this,e)},e.prototype.prelu=function(e){return this.throwIfDisposed(),Zn.prelu(this,e)},e.prototype.sigmoid=function(){return this.throwIfDisposed(),Zn.sigmoid(this)},e.prototype.logSigmoid=function(){return this.throwIfDisposed(),Zn.logSigmoid(this)},e.prototype.softplus=function(){return this.throwIfDisposed(),Zn.softplus(this)},e.prototype.zerosLike=function(){return this.throwIfDisposed(),Zn.zerosLike(this)},e.prototype.onesLike=function(){return this.throwIfDisposed(),Zn.onesLike(this)},e.prototype.sin=function(){return this.throwIfDisposed(),Zn.sin(this)},e.prototype.cos=function(){return this.throwIfDisposed(),Zn.cos(this)},e.prototype.tan=function(){return this.throwIfDisposed(),Zn.tan(this)},e.prototype.asin=function(){return this.throwIfDisposed(),Zn.asin(this)},e.prototype.acos=function(){return this.throwIfDisposed(),Zn.acos(this)},e.prototype.atan=function(){return this.throwIfDisposed(),Zn.atan(this)},e.prototype.sinh=function(){return this.throwIfDisposed(),Zn.sinh(this)},e.prototype.cosh=function(){return this.throwIfDisposed(),Zn.cosh(this)},e.prototype.tanh=function(){return this.throwIfDisposed(),Zn.tanh(this)},e.prototype.asinh=function(){return this.throwIfDisposed(),Zn.asinh(this)},e.prototype.acosh=function(){return this.throwIfDisposed(),Zn.acosh(this)},e.prototype.atanh=function(){return this.throwIfDisposed(),Zn.atanh(this)},e.prototype.erf=function(){return this.throwIfDisposed(),Zn.erf(this)},e.prototype.round=function(){return this.throwIfDisposed(),Zn.round(this)},e.prototype.step=function(e){return void 0===e&&(e=0),this.throwIfDisposed(),Zn.step(this,e)},e.prototype.softmax=function(e){return void 0===e&&(e=-1),this.throwIfDisposed(),Zn.softmax(this,e)},e.prototype.logSoftmax=function(e){return void 0===e&&(e=-1),this.throwIfDisposed(),Zn.logSoftmax(this,e)},e.prototype.resizeBilinear=function(e,t){return void 0===t&&(t=!1),this.throwIfDisposed(),Zn.image.resizeBilinear(this,e,t)},e.prototype.resizeNearestNeighbor=function(e,t){return void 0===t&&(t=!1),this.throwIfDisposed(),Zn.image.resizeNearestNeighbor(this,e,t)},e.prototype.conv1d=function(e,t,n,r,o,a){return void 0===r&&(r="NWC"),void 0===o&&(o=1),this.throwIfDisposed(),Zn.conv1d(this,e,t,n,r,o,a)},e.prototype.conv2d=function(e,t,n,r,o,a){return void 0===r&&(r="NHWC"),void 0===o&&(o=[1,1]),this.throwIfDisposed(),Zn.conv2d(this,e,t,n,r,o,a)},e.prototype.conv2dTranspose=function(e,t,n,r,o){return this.throwIfDisposed(),Zn.conv2dTranspose(this,e,t,n,r,o)},e.prototype.depthwiseConv2D=function(e,t,n,r,o,a){return void 0===r&&(r="NHWC"),void 0===o&&(o=[1,1]),this.throwIfDisposed(),Zn.depthwiseConv2d(this,e,t,n,r,o,a)},e.prototype.separableConv2d=function(e,t,n,r,o,a){return void 0===o&&(o=[1,1]),void 0===a&&(a="NHWC"),this.throwIfDisposed(),Zn.separableConv2d(this,e,t,n,r,o,a)},e.prototype.avgPool=function(e,t,n,r){return this.throwIfDisposed(),Zn.avgPool(this,e,t,n,r)},e.prototype.maxPool=function(e,t,n,r){return this.throwIfDisposed(),Zn.maxPool(this,e,t,n,r)},e.prototype.localResponseNormalization=function(e,t,n,r){return void 0===e&&(e=5),void 0===t&&(t=1),void 0===n&&(n=1),void 0===r&&(r=.5),Zn.localResponseNormalization(this,e,t,n,r)},e.prototype.pool=function(e,t,n,r,o){return this.throwIfDisposed(),Zn.pool(this,e,t,n,r,o)},e.prototype.variable=function(e,t,n){return void 0===e&&(e=!0),this.throwIfDisposed(),Jn().makeVariable(this,e,t,n)},e.prototype.unsortedSegmentSum=function(e,t){return this.throwIfDisposed(),Zn.unsortedSegmentSum(this,e,t)},e.prototype.batchToSpaceND=function(e,t){return this.throwIfDisposed(),Zn.batchToSpaceND(this,e,t)},e.prototype.spaceToBatchND=function(e,t){return this.throwIfDisposed(),Zn.spaceToBatchND(this,e,t)},e.prototype.topk=function(e,t){return void 0===e&&(e=1),void 0===t&&(t=!0),this.throwIfDisposed(),Zn.topk(this,e,t)},e.prototype.stridedSlice=function(e,t,n,r,o,a,i,s){return void 0===r&&(r=0),void 0===o&&(o=0),void 0===a&&(a=0),void 0===i&&(i=0),void 0===s&&(s=0),this.throwIfDisposed(),Zn.stridedSlice(this,e,t,n,r,o,a,i,s)},e.prototype.depthToSpace=function(e,t){return this.throwIfDisposed(),Zn.depthToSpace(this,e,t)},e.prototype.fft=function(){return this.throwIfDisposed(),Zn.spectral.fft(this)},e.prototype.ifft=function(){return this.throwIfDisposed(),Zn.spectral.ifft(this)},e.prototype.rfft=function(){return this.throwIfDisposed(),Zn.spectral.rfft(this)},e.prototype.irfft=function(){return this.throwIfDisposed(),Zn.spectral.irfft(this)},e}();Object.defineProperty(er,Symbol.hasInstance,{value:function(e){return!!e&&null!=e.dataId&&null!=e.shape&&null!=e.dtype}});var tr,nr,rr,or,ar,ir=function(e){function t(t,n,r,o){var a=e.call(this,t.shape,t.dtype,t.dataId,o)||this;return a.trainable=n,a.name=r,a}return Gt(t,e),t.prototype.assign=function(e){if(e.dtype!==this.dtype)throw new Error("dtype of the new value ("+e.dtype+") and previous value ("+this.dtype+") must match");if(!pn(e.shape,this.shape))throw new Error("shape of the new value ("+e.shape+") and previous value ("+this.shape+") must match");Jn().disposeTensor(this),this.dataId=e.dataId,Jn().incRef(this,null)},t.prototype.dispose=function(){Jn().disposeVariable(this),this.isDisposedInternal=!0},t}(er);Object.defineProperty(ir,Symbol.hasInstance,{value:function(e){return e instanceof er&&null!=e.assign&&e.assign instanceof Function}}),function(e){e.R0="R0",e.R1="R1",e.R2="R2",e.R3="R3",e.R4="R4",e.R5="R5",e.R6="R6"}(tr||(tr={})),function(e){e.float32="float32",e.int32="int32",e.bool="int32",e.complex64="complex64"}(nr||(nr={})),function(e){e.float32="float32",e.int32="int32",e.bool="bool",e.complex64="complex64"}(rr||(rr={})),function(e){e.float32="float32",e.int32="float32",e.bool="float32",e.complex64="complex64"}(or||(or={})),function(e){e.float32="complex64",e.int32="complex64",e.bool="complex64",e.complex64="complex64"}(ar||(ar={}));var sr={float32:or,int32:nr,bool:rr,complex64:ar};function ur(e,t){if("string"===e||"string"===t){if("string"===e&&"string"===t)return"string";throw new Error("Can not upcast "+e+" with "+t)}return sr[e][t]}function cr(e){return ur(e,"int32")}function lr(e,t){if(e.dtype===t.dtype)return[e,t];var n=ur(e.dtype,t.dtype);return[e.cast(n),t.cast(n)]}function fr(e,t){un(e.dtype===t.dtype,(function(){return"The dtypes of the first("+e.dtype+") and second("+t.dtype+") input must match"}))}function hr(e){var t=[];return function e(t,n,r){if(null!=t)if(t instanceof er)n.push(t);else if(o=t,Array.isArray(o)||"object"==typeof o){var o,a=t;for(var i in a){var s=a[i];r.has(s)||(r.add(s),e(s,n,r))}}}(e,t,new Set),t}Object.freeze({makeTypesMatch:lr,assertTypesMatch:fr,isTensorInList:function(e,t){for(var n=0;n<t.length;n++)if(t[n].id===e.id)return!0;return!1},getTensorsInContainer:hr});var pr,dr=function(){function e(){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}}return e.prototype.dispose=function(){for(var e in this.registeredVariables)this.registeredVariables[e].dispose()},e}(),vr=function(){function e(e){this.ENV=e,this.registry={},this.registryFactory={},this.pendingBackendInitId=0,this.state=new dr}return e.prototype.ready=function(){return Xt(this,void 0,void 0,(function(){var e,t,n;return Kt(this,(function(r){switch(r.label){case 0:if(null!=this.pendingBackendInit)return[2,this.pendingBackendInit.then((function(){}))];if(null!=this.backendInstance)return[2];e=this.getSortedBackends(),t=0,r.label=1;case 1:return t<e.length?(n=e[t],[4,this.initializeBackend(n).success]):[3,5];case 2:return r.sent()?[4,this.setBackend(n)]:[3,4];case 3:return r.sent(),[2];case 4:return t++,[3,1];case 5:throw new Error("Could not initialize any backends, all backend initializations failed.")}}))}))},Object.defineProperty(e.prototype,"backend",{get:function(){if(null!=this.pendingBackendInit)throw new Error("Backend '"+this.backendName+"' has not yet been initialized. Make sure to await tf.ready() before calling other methods");if(null==this.backendInstance){var e=this.initializeBackendsAndReturnBest(),t=e.name;if(e.asyncInit)throw new Error("The highest priority backend '"+t+"' has not yet been initialized. Make sure to await tf.ready() before calling other methods");this.setBackend(t)}return this.backendInstance},enumerable:!0,configurable:!0}),e.prototype.backendNames=function(){return Object.keys(this.registryFactory)},e.prototype.findBackend=function(e){if(!(e in this.registry)){if(!(e in this.registryFactory))return null;if(this.initializeBackend(e).asyncInit)return null}return this.registry[e]},e.prototype.findBackendFactory=function(e){return e in this.registryFactory?this.registryFactory[e].factory:null},e.prototype.registerBackend=function(e,t,n){return void 0===n&&(n=1),e in this.registryFactory?(console.warn(e+" backend was already registered. Reusing existing backend factory."),!1):(this.registryFactory[e]={factory:t,priority:n},!0)},e.prototype.setBackend=function(e){return Xt(this,void 0,void 0,(function(){var t,n,r;return Kt(this,(function(o){switch(o.label){case 0:if(null==this.registryFactory[e])throw new Error("Backend name '"+e+"' not found in registry");return this.backendName=e,null!=this.registry[e]?[3,4]:(this.backendInstance=null,t=this.initializeBackend(e),n=t.success,t.asyncInit?[4,n]:[3,2]);case 1:return r=o.sent(),[3,3];case 2:r=n,o.label=3;case 3:if(!r)return[2,!1];o.label=4;case 4:return this.backendInstance=this.registry[e],this.setupRegisteredKernels(),this.profiler=new qn(this.backendInstance),[2,!0]}}))}))},e.prototype.setupRegisteredKernels=function(){var e=this;en(this.backendName).forEach((function(t){null!=t.setupFunc&&t.setupFunc(e.backendInstance)}))},e.prototype.disposeRegisteredKernels=function(e){var t=this;en(e).forEach((function(n){null!=n.disposeFunc&&n.disposeFunc(t.registry[e])}))},e.prototype.initializeBackend=function(e){var t=this,n=this.registryFactory[e];if(null==n)throw new Error("Cannot initialize backend "+e+", no registration found.");try{var r=n.factory();if(Promise.resolve(r)===r){var o=++this.pendingBackendInitId,a=r.then((function(n){return!(o<t.pendingBackendInitId||(t.registry[e]=n,t.pendingBackendInit=null,0))})).catch((function(n){return!(o<t.pendingBackendInitId||(t.pendingBackendInit=null,console.warn("Initialization of backend "+e+" failed"),console.warn(n.stack||n.message),1))}));return this.pendingBackendInit=a,{success:a,asyncInit:!0}}return this.registry[e]=r,{success:!0,asyncInit:!1}}catch(t){return console.warn("Initialization of backend "+e+" failed"),console.warn(t.stack||t.message),{success:!1,asyncInit:!1}}},e.prototype.removeBackend=function(e){if(!(e in this.registryFactory))throw new 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)},e.prototype.getSortedBackends=function(){var e=this;if(0===Object.keys(this.registryFactory).length)throw new Error("No backend found in registry.");return Object.keys(this.registryFactory).sort((function(t,n){return e.registryFactory[n].priority-e.registryFactory[t].priority}))},e.prototype.initializeBackendsAndReturnBest=function(){for(var e=this.getSortedBackends(),t=0;t<e.length;t++){var n=e[t],r=this.initializeBackend(n),o=r.success,a=r.asyncInit;if(a||o)return{name:n,asyncInit:a}}throw new Error("Could not initialize any backends, all backend initializations failed.")},e.prototype.moveData=function(e,t){var n=this.state.tensorInfo.get(t),r=n.backend,o=this.readSync(t);r.disposeData(t),n.backend=e,e.move(t,o,n.shape,n.dtype),this.shouldCheckForMemLeaks()&&this.state.numDataMovesStack[this.state.numDataMovesStack.length-1]++},e.prototype.tidy=function(e,t){var n,r=this,o=null;if(null==t){if("function"!=typeof e)throw new Error("Please provide a function to tidy()");t=e}else{if("string"!=typeof e&&!(e instanceof String))throw new Error("When calling with two arguments, the first argument to tidy() must be a string");if("function"!=typeof t)throw new Error("When calling with two arguments, the 2nd argument to tidy() must be a function");o=e}return this.scopedRun((function(){return r.startScope(o)}),(function(){return r.endScope(n)}),(function(){return(n=t())instanceof Promise&&console.error("Cannot return a Promise inside of tidy."),n}))},e.prototype.scopedRun=function(e,t,n){e();try{var r=n();return t(),r}catch(e){throw t(),e}},e.prototype.nextTensorId=function(){return e.nextTensorId++},e.prototype.nextVariableId=function(){return e.nextVariableId++},e.prototype.clone=function(e){var t=this.makeTensorFromDataId(e.dataId,e.shape,e.dtype),n={x:e};return this.addTapeNode(this.state.activeScope.name,n,[t],(function(e){return{x:function(){return e.toFloat()}}}),[]),t},e.prototype.runKernel=function(e,t,n,r,o){return this.runKernelFunc(null,t,null,e,n,r,o)},e.prototype.shouldCheckForMemLeaks=function(){return this.ENV.getBool("IS_TEST")},e.prototype.checkKernelForMemLeak=function(e,t,n){var r=this.backend.numDataIds(),o=0;n.forEach((function(e){o+="complex64"===e.dtype?3:1}));var a=this.state.numDataMovesStack[this.state.numDataMovesStack.length-1],i=r-t-o-a;if(i>0)throw new Error("Backend '"+this.backendName+"' has an internal memory leak ("+i+" data ids) after running '"+e+"'")},e.prototype.runKernelFunc=function(e,t,n,r,o,a,i){var s,u=this;void 0===a&&(a=[]),void 0===i&&(i=[]);var c,l=[],f=this.isTapeOn(),h=null!=this.state.activeScope?this.state.activeScope.name:"",p=function(e){f&&(l=e.map((function(e){return u.keep(u.clone(e))})))},d=this.state.numBytes,v=this.state.numTensors;this.shouldCheckForMemLeaks()&&this.state.numDataMovesStack.push(0);var m,g=Qt(r,this.backendName);return c=null!=g?function(){var e=u.backend.numDataIds();m=g.kernelFunc({inputs:t,attrs:o,backend:u.backend});var n=Array.isArray(m)?m:[m];u.shouldCheckForMemLeaks()&&u.checkKernelForMemLeak(h,e,n);var r=n.map((function(e){var t=e.dataId,n=e.shape,r=e.dtype;return u.makeTensorFromDataId(t,n,r)})),s=r.filter((function(e,t){return i[t]}));return p(a.slice().concat(s)),r}:function(){var t=u.backend.numDataIds();m=u.tidy((function(){return e(u.backend,p)}));var n=Array.isArray(m)?m:[m];return u.shouldCheckForMemLeaks()&&u.checkKernelForMemLeak(h,t,n),n},this.scopedRun((function(){return u.state.kernelDepth++}),(function(){return u.state.kernelDepth--}),(function(){s=u.ENV.getBool("DEBUG")?u.profiler.profileKernel(h,t,(function(){return c()})):c()})),f&&this.addTapeNode(h,t,s,n,l),this.state.profiling&&this.state.activeProfile.kernels.push({name:h,bytesAdded:this.state.numBytes-d,totalBytesSnapshot:this.state.numBytes,tensorsAdded:this.state.numTensors-v,totalTensorsSnapshot:this.state.numTensors,inputShapes:Object.keys(t).map((function(e){return t[e].shape})),outputShapes:s.map((function(e){return e.shape}))}),Array.isArray(m)?s:s[0]},e.prototype.makeTensor=function(e,t,n,r){if(null==e)throw new Error("Values passed to engine.makeTensor() are null");n=n||"float32",r=r||this.backend;var o=e;"string"===n&&An(e[0])&&(o=e.map((function(e){return Vn(e)})));var a=r.write(o,t,n),i=new er(t,n,a,this.nextTensorId());if(this.incRef(i,r),"string"===n){var s=this.state.tensorInfo.get(a),u=Sn(o);this.state.numBytes+=u-s.bytes,s.bytes=u}return i},e.prototype.makeTensorFromDataId=function(e,t,n,r){var o=new er(t,n=n||"float32",e,this.nextTensorId());return this.incRef(o,r),o},e.prototype.makeVariable=function(e,t,n,r){void 0===t&&(t=!0),n=n||this.nextVariableId().toString(),null!=r&&r!==e.dtype&&(e=e.asType(r));var o=new ir(e,t,n,this.nextTensorId());if(null!=this.state.registeredVariables[o.name])throw new Error("Variable with name "+o.name+" was already registered");return this.state.registeredVariables[o.name]=o,this.incRef(o,this.backend),o},e.prototype.incRef=function(e,t){var n=this.state.tensorInfo.has(e.dataId)?this.state.tensorInfo.get(e.dataId).refCount:0;if(this.state.numTensors++,"string"===e.dtype&&this.state.numStringTensors++,0===n){this.state.numDataBuffers++;var r=0;"complex64"!==e.dtype&&"string"!==e.dtype&&(r=e.size*Rn(e.dtype)),this.state.tensorInfo.set(e.dataId,{backend:t||this.backend,dtype:e.dtype,shape:e.shape,bytes:r,refCount:0}),this.state.numBytes+=r}this.state.tensorInfo.get(e.dataId).refCount++,e instanceof ir||this.track(e)},e.prototype.disposeTensor=function(e){if(this.state.tensorInfo.has(e.dataId)){this.state.numTensors--,"string"===e.dtype&&this.state.numStringTensors--;var t=this.state.tensorInfo.get(e.dataId);t.refCount<=1?("complex64"!==e.dtype&&(this.state.numBytes-=t.bytes),this.state.numDataBuffers--,t.backend.disposeData(e.dataId),this.state.tensorInfo.delete(e.dataId)):this.state.tensorInfo.get(e.dataId).refCount--}},e.prototype.disposeVariables=function(){for(var e in this.state.registeredVariables){var t=this.state.registeredVariables[e];this.disposeVariable(t)}},e.prototype.disposeVariable=function(e){this.disposeTensor(e),null!=this.state.registeredVariables[e.name]&&delete this.state.registeredVariables[e.name]},e.prototype.memory=function(){var 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},e.prototype.profile=function(e){return Xt(this,void 0,void 0,(function(){var t,n;return Kt(this,(function(r){return this.state.profiling=!0,t=this.state.numBytes,n=this.state.numTensors,this.state.activeProfile.kernels=[],this.state.activeProfile.result=e(),this.state.profiling=!1,this.state.activeProfile.peakBytes=Math.max.apply(Math,this.state.activeProfile.kernels.map((function(e){return e.totalBytesSnapshot}))),this.state.activeProfile.newBytes=this.state.numBytes-t,this.state.activeProfile.newTensors=this.state.numTensors-n,[2,this.state.activeProfile]}))}))},e.prototype.isTapeOn=function(){return this.state.gradientDepth>0&&0===this.state.kernelDepth},e.prototype.addTapeNode=function(e,t,n,r,o){var a=this,i={id:this.state.nextTapeNodeId++,name:e,inputs:t,outputs:n,saved:o};null!=r&&(i.gradient=function(e){return e=e.map((function(e,t){if(null==e){var r=n[t],o=zn(r.size,r.dtype);return a.makeTensor(o,r.shape,r.dtype)}return e})),r(e.length>1?e:e[0],o)}),this.state.activeTape.push(i)},e.prototype.keep=function(e){return e.kept=!0,e},e.prototype.startTape=function(){0===this.state.gradientDepth&&(this.state.activeTape=[]),this.state.gradientDepth++},e.prototype.endTape=function(){this.state.gradientDepth--},e.prototype.startScope=function(e){var t={track:[],name:"unnamed scope",id:this.state.nextScopeId++};e&&(t.name=e),this.state.scopeStack.push(t),this.state.activeScope=t},e.prototype.endScope=function(e){for(var t=this,n=hr(e),r=new Set(n.map((function(e){return e.id}))),o=0;o<this.state.activeScope.track.length;o++){var a=this.state.activeScope.track[o];a.kept||r.has(a.id)||a.dispose()}var i=this.state.scopeStack.pop();this.state.activeScope=0===this.state.scopeStack.length?null:this.state.scopeStack[this.state.scopeStack.length-1],n.forEach((function(e){e.kept||e.scopeId!==i.id||t.track(e)}))},e.prototype.gradients=function(e,t,n,r){var o=this;if(void 0===r&&(r=!1),un(t.length>0,(function(){return"gradients() received an empty list of xs."})),null!=n&&"float32"!==n.dtype)throw new Error("dy must have 'float32' dtype, but has '"+n.dtype+"'");var a=this.scopedRun((function(){return o.startTape()}),(function(){return o.endTape()}),(function(){return o.tidy("forward",e)}));un(a instanceof er,(function(){return"The result y returned by f() must be a tensor."}));var i=function(e,t,n){for(var r={},o={},a=0;a<t.length;a++)r[t[a].id]=!0;for(a=0;a<e.length;a++){var i=(d=e[a]).inputs;for(var s in i){for(var u=i[s],c=!1,l=0;l<t.length;l++)if(r[u.id]){d.outputs.forEach((function(e){return r[e.id]=!0})),c=!0,o[d.id]=!0;break}if(c)break}}var f={};f[n.id]=!0;var h={};for(a=e.length-1;a>=0;a--)for(i=(d=e[a]).inputs,l=0;l<d.outputs.length;l++)if(f[d.outputs[l].id]){for(var s in i)f[i[s].id]=!0,h[d.id]=!0;break}var p=[];for(a=0;a<e.length;a++){var d;if(o[(d=e[a]).id]&&h[d.id]){var v={};for(var s in d.inputs){var m=d.inputs[s];r[m.id]&&(v[s]=m)}var g=Object.assign({},d);g.inputs=v,g.outputs=d.outputs,p.push(g)}}return p}(this.state.activeTape,t,a);if(!r&&0===i.length&&t.length>0)throw new Error("Cannot compute gradient of y=f(x) with respect to x. Make sure that the f you passed encloses all operations that lead from x to y.");return this.tidy("backward",(function(){var e,r,s={};s[a.id]=null==n?(r=Ln(hn(e=a.shape),"float32"),mr.makeTensor(r,e,"float32")):n,function(e,t,n){for(var r=function(r){var o=t[r],a=[];if(o.outputs.forEach((function(t){var n=e[t.id];null!=n?a.push(n):a.push(null)})),null==o.gradient)throw new Error("Cannot compute gradient: gradient function not found for "+o.name+".");var i=o.gradient(a),s=function(t){if(!(t in i))throw new Error("Cannot backprop through input "+t+". Available gradients found: "+Object.keys(i)+".");var r=n((function(){return i[t]()}));if("float32"!==r.dtype)throw new Error("Error in gradient for op "+o.name+". The gradient of input "+t+" must have 'float32' dtype, but has '"+r.dtype+"'");var a=o.inputs[t];if(!pn(r.shape,a.shape))throw new Error("Error in gradient for op "+o.name+". The gradient of input '"+t+"' has shape '"+r.shape+"', which does not match the shape of the input '"+a.shape+"'");if(null==e[a.id])e[a.id]=r;else{var s=e[a.id];e[a.id]=s.add(r),s.dispose()}};for(var u in o.inputs)s(u)},o=t.length-1;o>=0;o--)r(o)}(s,i,(function(e){return o.tidy(e)}));var u=t.map((function(e){return s[e.id]}));return 0===o.state.gradientDepth&&(o.state.activeTape.forEach((function(e){for(var t=0,n=e.saved;t<n.length;t++)n[t].dispose()})),o.state.activeTape=null),{value:a,grads:u}}))},e.prototype.customGrad=function(e){var t=this;return un(Nn(e),(function(){return"The f passed in customGrad(f) must be a function."})),function(){for(var n,r=[],o=0;o<arguments.length;o++)r[o]=arguments[o];un(r.every((function(e){return e instanceof er})),(function(){return"The args passed in customGrad(f)(x1, x2,...) must all be tensors"}));var a={};return r.forEach((function(e,t){a[t]=e})),t.runKernelFunc((function(t,o){return un((n=e.apply(void 0,r.concat([o]))).value instanceof er,(function(){return"The function f passed in customGrad(f) must return an object where `obj.value` is a tensor"})),un(Nn(n.gradFunc),(function(){return"The function f passed in customGrad(f) must return an object where `obj.gradFunc` is a function."})),n.value}),a,(function(e,t){var o=n.gradFunc(e,t),a=Array.isArray(o)?o:[o];un(a.length===r.length,(function(){return"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(...)."})),un(a.every((function(e){return e instanceof er})),(function(){return"The function f passed in customGrad(f) must return an object where `obj.gradFunc` is a function that returns a list of only tensors."}));var i={};return a.forEach((function(e,t){i[t]=function(){return e}})),i}))}},e.prototype.readSync=function(e){return this.state.tensorInfo.get(e).backend.readSync(e)},e.prototype.read=function(e){return this.state.tensorInfo.get(e).backend.read(e)},e.prototype.time=function(e){return Xt(this,void 0,void 0,(function(){var t,n;return Kt(this,(function(r){switch(r.label){case 0:return t=Hn(),[4,this.backend.time(e)];case 1:return(n=r.sent()).wallMs=Hn()-t,[2,n]}}))}))},e.prototype.track=function(e){return null!=this.state.activeScope&&(e.scopeId=this.state.activeScope.id,this.state.activeScope.track.push(e)),e},Object.defineProperty(e.prototype,"registeredVariables",{get:function(){return this.state.registeredVariables},enumerable:!0,configurable:!0}),e.prototype.reset=function(){for(var e in this.pendingBackendInitId++,this.state.dispose(),this.ENV.reset(),this.state=new dr,this.registry)this.disposeRegisteredKernels(e),this.registry[e].dispose(),delete this.registry[e];this.backendName=null,this.backendInstance=null,this.pendingBackendInit=null},e.nextTensorId=0,e.nextVariableId=0,e}(),mr=function(){var e=function(){if(null==pr){var e=void 0;if("undefined"!=typeof window)e=window;else if(void 0!==n.g)e=n.g;else if("undefined"!=typeof process)e=process;else{if("undefined"==typeof self)throw new Error("Could not find a global object");e=self}pr=e}return pr}();if(null==e._tfengine){var t=new $t(e);e._tfengine=new vr(t)}return function(e){Jt=e}(e._tfengine.ENV),Jn=function(){return e._tfengine},e._tfengine}();function gr(){return"undefined"!=typeof window&&null!=window.document||"undefined"!=typeof WorkerGlobalScope}var yr=Yt();yr.registerFlag("DEBUG",(function(){return!1}),(function(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.")})),yr.registerFlag("IS_BROWSER",(function(){return gr()})),yr.registerFlag("IS_NODE",(function(){return"undefined"!=typeof process&&void 0!==process.versions&&void 0!==process.versions.node})),yr.registerFlag("IS_CHROME",(function(){return"undefined"!=typeof navigator&&null!=navigator&&null!=navigator.userAgent&&/Chrome/.test(navigator.userAgent)&&/Google Inc/.test(navigator.vendor)})),yr.registerFlag("PROD",(function(){return!1})),yr.registerFlag("TENSORLIKE_CHECK_SHAPE_CONSISTENCY",(function(){return yr.getBool("DEBUG")})),yr.registerFlag("DEPRECATION_WARNINGS_ENABLED",(function(){return!0})),yr.registerFlag("IS_TEST",(function(){return!1}));var br,wr,xr,Er={},_r={alpha:!1,antialias:!1,premultipliedAlpha:!1,preserveDrawingBuffer:!1,depth:!1,stencil:!1,failIfMajorPerformanceCaveat:!0};function kr(e,t){Er[e]=t}function Or(e){e in Er||(Er[e]=function(e){if(1!==e&&2!==e)throw new Error("Cannot get WebGL rendering context, WebGL is disabled.");var t=function(e){if("undefined"!=typeof OffscreenCanvas&&2===e)return new OffscreenCanvas(300,150);if("undefined"!=typeof document)return document.createElement("canvas");throw new Error("Cannot create a canvas in this context")}(e);return t.addEventListener("webglcontextlost",(function(t){t.preventDefault(),delete Er[e]}),!1),1===e?t.getContext("webgl",_r)||t.getContext("experimental-webgl",_r):t.getContext("webgl2",_r)}(e));var t=Er[e];return t.isContextLost()?(delete Er[e],Or(e)):(t.disable(t.DEPTH_TEST),t.disable(t.STENCIL_TEST),t.disable(t.BLEND),t.disable(t.DITHER),t.disable(t.POLYGON_OFFSET_FILL),t.disable(t.SAMPLE_COVERAGE),t.enable(t.SCISSOR_TEST),t.enable(t.CULL_FACE),t.cullFace(t.BACK),Er[e])}function Cr(e,t){return[t,e]}function Ir(e){var t=hn(e);return mn(Math.ceil(t/4))}function Rr(e,t){return[Math.max(1,Math.ceil(t/2)),Math.max(1,Math.ceil(e/2))]}function Sr(e,t){var n,r,o,a,i,s,u,c,l,f=e;return 2===Yt().getNumber("WEBGL_VERSION")?(n=f.R32F,r=f.R16F,o=f.RGBA16F,a=f.RGBA32F,i=f.RED,s=4,u=1,c=f.HALF_FLOAT,l=f.FLOAT):(n=e.RGBA,r=e.RGBA,o=e.RGBA,a=f.RGBA,i=e.RGBA,s=4,u=4,c=null!=t?t.HALF_FLOAT_OES:null,l=e.FLOAT),{internalFormatFloat:n,internalFormatHalfFloat:r,internalFormatPackedHalfFloat:o,internalFormatPackedFloat:a,textureFormatFloat:i,downloadTextureFormat:e.RGBA,downloadUnpackNumChannels:s,defaultNumChannels:u,textureTypeHalfFloat:c,textureTypeFloat:l}}function Ar(e,t,n){var r=n();return t&&function(e){var t=e.getError();if(t!==e.NO_ERROR)throw new Error("WebGL Error: "+Tr(e,t))}(e),r}!function(e){e[e.DENSE=0]="DENSE",e[e.SHARED_BATCH=1]="SHARED_BATCH"}(br||(br={})),function(e){e[e.RENDER=0]="RENDER",e[e.UPLOAD=1]="UPLOAD",e[e.PIXELS=2]="PIXELS",e[e.DOWNLOAD=3]="DOWNLOAD"}(wr||(wr={})),function(e){e[e.UNPACKED_FLOAT16=0]="UNPACKED_FLOAT16",e[e.UNPACKED_FLOAT32=1]="UNPACKED_FLOAT32",e[e.PACKED_4X1_UNSIGNED_BYTE=2]="PACKED_4X1_UNSIGNED_BYTE",e[e.PACKED_2X2_FLOAT32=3]="PACKED_2X2_FLOAT32",e[e.PACKED_2X2_FLOAT16=4]="PACKED_2X2_FLOAT16"}(xr||(xr={}));function Pr(e){return!!(Yt().getBool("WEBGL_RENDER_FLOAT32_ENABLED")||0===e||5.96e-8<Math.abs(e)&&Math.abs(e)<65504)}function Tr(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 Dr(e,t,n){return no(e,t,(function(){return e.getExtension(n)}),'Extension "'+n+'" not supported on this browser.')}function Nr(e,t,n){var r=no(e,t,(function(){return e.createShader(e.VERTEX_SHADER)}),"Unable to create vertex WebGLShader.");if(Ar(e,t,(function(){return e.shaderSource(r,n)})),Ar(e,t,(function(){return e.compileShader(r)})),!1===e.getShaderParameter(r,e.COMPILE_STATUS))throw e.getShaderInfoLog(r),new Error("Failed to compile vertex shader.");return r}function Mr(e,t,n){var r=no(e,t,(function(){return e.createShader(e.FRAGMENT_SHADER)}),"Unable to create fragment WebGLShader.");if(Ar(e,t,(function(){return e.shaderSource(r,n)})),Ar(e,t,(function(){return e.compileShader(r)})),!1===e.getShaderParameter(r,e.COMPILE_STATUS))throw function(e,t){var n=jr.exec(t);if(null!=n){for(var r=+n[1],o=e.split("\n"),a=o.length.toString().length+2,i=o.map((function(e,t){return gn((t+1).toString(),a)+e})),s=0,u=0;u<i.length;u++)s=Math.max(i[u].length,s);var c=i.slice(0,r-1),l=i.slice(r-1,r),f=i.slice(r);c.join("\n"),t.split("\n")[0],gn(l[0],s),f.join("\n")}}(n,e.getShaderInfoLog(r)),new Error("Failed to compile fragment shader.");return r}var Fr,Br,jr=/ERROR: [0-9]+:([0-9]+):/g;function Lr(e,t){return no(e,t,(function(){return e.createProgram()}),"Unable to create WebGLProgram.")}function zr(e,t,n){if(Ar(e,t,(function(){return e.linkProgram(n)})),!1===e.getProgramParameter(n,e.LINK_STATUS))throw e.getProgramInfoLog(n),new Error("Failed to link vertex and fragment shaders.")}function Hr(e,t,n){if(Ar(e,t,(function(){return e.validateProgram(n)})),!1===e.getProgramParameter(n,e.VALIDATE_STATUS))throw e.getProgramInfoLog(n),new Error("Shader program validation failed.")}function Wr(e,t,n){var r=no(e,t,(function(){return e.createBuffer()}),"Unable to create WebGLBuffer");return Ar(e,t,(function(){return e.bindBuffer(e.ARRAY_BUFFER,r)})),Ar(e,t,(function(){return e.bufferData(e.ARRAY_BUFFER,n,e.STATIC_DRAW)})),r}function Vr(e,t,n){var r=no(e,t,(function(){return e.createBuffer()}),"Unable to create WebGLBuffer");return Ar(e,t,(function(){return e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,r)})),Ar(e,t,(function(){return e.bufferData(e.ELEMENT_ARRAY_BUFFER,n,e.STATIC_DRAW)})),r}function Ur(e,t){return no(e,t,(function(){return e.createTexture()}),"Unable to create WebGLTexture.")}function qr(e,t){var n=Yt().getNumber("WEBGL_MAX_TEXTURE_SIZE");if(e<=0||t<=0){var r="["+e+"x"+t+"]";throw new Error("Requested texture size "+r+" is invalid.")}if(e>n||t>n)throw r="["+e+"x"+t+"]",new Error("Requested texture size "+r+" greater than WebGL maximum on this browser / GPU ["+n+"x"+n+"].")}function Gr(e,t){return no(e,t,(function(){return e.createFramebuffer()}),"Unable to create WebGLFramebuffer.")}function Xr(e,t,n,r,o,a,i,s){var u=e.getAttribLocation(n,r);return-1!==u&&(Ar(e,t,(function(){return e.bindBuffer(e.ARRAY_BUFFER,o)})),Ar(e,t,(function(){return e.vertexAttribPointer(u,a,e.FLOAT,!1,i,s)})),Ar(e,t,(function(){return e.enableVertexAttribArray(u)})),!0)}function Kr(e,t,n,r){ro(e,r),Ar(e,t,(function(){return e.activeTexture(e.TEXTURE0+r)})),Ar(e,t,(function(){return e.bindTexture(e.TEXTURE_2D,n)}))}function $r(e,t,n,r){return no(e,t,(function(){return e.getUniformLocation(n,r)}),'uniform "'+r+'" not present in program.')}function Yr(e,t,n){return e.getUniformLocation(t,n)}function Jr(e,t,n,r,o,a){Ar(e,t,(function(){return Kr(e,t,r,a)})),Ar(e,t,(function(){return e.uniform1i(o,a)}))}function Zr(e,t,n,r){Ar(e,t,(function(){return e.bindFramebuffer(e.FRAMEBUFFER,r)})),Ar(e,t,(function(){return e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,n,0)}))}function Qr(e,t,n){Ar(e,t,(function(){return e.bindFramebuffer(e.FRAMEBUFFER,n)})),Ar(e,t,(function(){return e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,null,0)}))}function eo(e){var t=e.checkFramebufferStatus(e.FRAMEBUFFER);if(t!==e.FRAMEBUFFER_COMPLETE)throw new Error("Error binding framebuffer: "+to(e,t))}function to(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 no(e,t,n,r){var o=Ar(e,t,(function(){return n()}));if(null==o)throw new Error(r);return o}function ro(e,t){var n=e.MAX_COMBINED_TEXTURE_IMAGE_UNITS-1,r=t+e.TEXTURE0;if(r<e.TEXTURE0||r>n)throw new Error("textureUnit must be in [gl.TEXTURE0, gl.TEXTURE"+n+"].")}function oo(e,t){return void 0===t&&(t=2),hn(e.slice(0,e.length-t))}function ao(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 io(e){var t=[1,1,1];return 0===e.length||1===e.length&&1===e[0]||(t=[oo(e)].concat(ao(e))),t}function so(e,t){var n;void 0===t&&(t=!1);var r=Yt().getNumber("WEBGL_MAX_TEXTURE_SIZE");if(t&&(r*=2,1===(e=e.map((function(t,n){return n>=e.length-2?an(e[n]):e[n]}))).length&&(e=[2,e[0]])),2!==e.length){var o=xn(e);e=o.newShape}var a=hn(e);if(e.length<=1&&a<=r)return[1,a];if(2===e.length&&e[0]<=r&&e[1]<=r)return e;if(3===e.length&&e[0]*e[1]<=r&&e[2]<=r)return[e[0]*e[1],e[2]];if(3===e.length&&e[0]<=r&&e[1]*e[2]<=r)return[e[0],e[1]*e[2]];if(4===e.length&&e[0]*e[1]*e[2]<=r&&e[3]<=r)return[e[0]*e[1]*e[2],e[3]];if(4===e.length&&e[0]<=r&&e[1]*e[2]*e[3]<=r)return[e[0],e[1]*e[2]*e[3]];if(t){var i=oo(e),s=2,u=2;return e.length&&(s=(n=ao(e))[0],u=n[1]),mn(a=i*(s/2)*(u/2)).map((function(e){return 2*e}))}return mn(a)}function uo(e){return e%2==0}function co(e,t){if(pn(e=e.slice(-2),t=t.slice(-2)))return!0;if(!e.length||!t.length)return!0;if(0===e[0]||0===e[1]||0===t[0]||0===t[1])return!0;if(e.length!==t.length){var n=e.slice(-1)[0],r=t.slice(-1)[0];if(n===r)return!0;if(uo(n)&&uo(r)&&(1===e[0]||1===t[0]))return!0}return e[1]===t[1]&&uo(e[0])&&uo(t[0])}function lo(e){if(null==Fr){var t=Or(e);Fr=t.getParameter(t.MAX_TEXTURE_SIZE)}return Fr}function fo(e){if(null==Br){var t=Or(e);Br=t.getParameter(t.MAX_TEXTURE_IMAGE_UNITS)}return Math.min(16,Br)}function ho(e){if(0===e)return 0;var t=Or(e);return po(t,"EXT_disjoint_timer_query_webgl2")&&2===e?2:po(t,"EXT_disjoint_timer_query")?1:0}function po(e,t){return null!=e.getExtension(t)}function vo(e){try{if(null!=Or(e))return!0}catch(e){return!1}return!1}function mo(e){if(0===e)return!1;var t=Or(e);if(1===e){if(!po(t,"OES_texture_float"))return!1}else if(!po(t,"EXT_color_buffer_float"))return!1;return yo(t)}function go(e){if(0===e)return!1;var t=Or(e);if(1!==e){if(po(t,"EXT_color_buffer_float"))return yo(t);if(po(t,"EXT_color_buffer_half_float")){var n=t.getExtension("EXT_color_buffer_half_float");return function(e,t){var n=Sr(e,t),r=e.createTexture();e.bindTexture(e.TEXTURE_2D,r),e.texImage2D(e.TEXTURE_2D,0,n.internalFormatHalfFloat,1,1,0,n.textureFormatFloat,n.textureTypeHalfFloat,null);var o=e.createFramebuffer();e.bindFramebuffer(e.FRAMEBUFFER,o),e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,r,0);var a=e.checkFramebufferStatus(e.FRAMEBUFFER)===e.FRAMEBUFFER_COMPLETE;return e.bindTexture(e.TEXTURE_2D,null),e.bindFramebuffer(e.FRAMEBUFFER,null),e.deleteTexture(r),e.deleteFramebuffer(o),a}(t,n)}return!1}return!!po(t,"OES_texture_float")&&!!po(t,"WEBGL_color_buffer_float")&&yo(t)}function yo(e){var t=Sr(e),n=e.createTexture();e.bindTexture(e.TEXTURE_2D,n),e.texImage2D(e.TEXTURE_2D,0,t.internalFormatFloat,1,1,0,t.textureFormatFloat,t.textureTypeFloat,null);var r=e.createFramebuffer();e.bindFramebuffer(e.FRAMEBUFFER,r),e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,n,0);var o=e.checkFramebufferStatus(e.FRAMEBUFFER)===e.FRAMEBUFFER_COMPLETE;return e.bindTexture(e.TEXTURE_2D,null),e.bindFramebuffer(e.FRAMEBUFFER,null),e.deleteTexture(n),e.deleteFramebuffer(r),o}function bo(e){return 2===e&&null!=Or(e).fenceSync}var wo=Object.freeze({callAndCheck:Ar,canBeRepresented:Pr,getWebGLErrorMessage:Tr,getExtensionOrThrow:Dr,createVertexShader:Nr,createFragmentShader:Mr,createProgram:Lr,linkProgram:zr,validateProgram:Hr,createStaticVertexBuffer:Wr,createStaticIndexBuffer:Vr,getNumChannels:function(){return 2===Yt().getNumber("WEBGL_VERSION")?1:4},createTexture:Ur,validateTextureSize:qr,createFramebuffer:Gr,bindVertexBufferToProgramAttribute:Xr,bindTextureUnit:Kr,unbindTextureUnit:function(e,t,n){ro(e,n),Ar(e,t,(function(){return e.activeTexture(e.TEXTURE0+n)})),Ar(e,t,(function(){return e.bindTexture(e.TEXTURE_2D,null)}))},getProgramUniformLocationOrThrow:$r,getProgramUniformLocation:Yr,bindTextureToProgramUniformSampler:Jr,bindCanvasToFramebuffer:function(e,t){Ar(e,t,(function(){return e.bindFramebuffer(e.FRAMEBUFFER,null)})),Ar(e,t,(function(){return e.viewport(0,0,e.canvas.width,e.canvas.height)})),Ar(e,t,(function(){return e.scissor(0,0,e.canvas.width,e.canvas.height)}))},bindColorTextureToFramebuffer:Zr,unbindColorTextureFromFramebuffer:Qr,validateFramebuffer:eo,getFramebufferErrorMessage:to,getBatchDim:oo,getRowsCols:ao,getShapeAs3D:io,getTextureShapeFromLogicalShape:so,isReshapeFree:co,getWebGLMaxTextureSize:lo,resetMaxTextureSize:function(){Fr=null},resetMaxTexturesInShader:function(){Br=null},getMaxTexturesInShader:fo,getWebGLDisjointQueryTimerVersion:ho,hasExtension:po,isWebGLVersionEnabled:vo,isCapableOfRenderingToFloatTexture:mo,isDownloadFloatTextureEnabled:go,isWebGLFenceEnabled:bo}),xo=Yt();function Eo(e){Yt().getBool("DEPRECATION_WARNINGS_ENABLED")&&console.warn(e+" You can disable deprecation warnings with tf.disableDeprecationWarnings().")}function _o(e,t){return mr.tidy(e,t)}function ko(e){hr(e).forEach((function(e){return e.dispose()}))}function Oo(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];Yt().getBool("IS_TEST")||console.warn.apply(console,e)}function Co(e,t){var n=e;if(In(e))return"string"===t?[]:[e.length];if(!Array.isArray(e))return[];for(var r=[];Array.isArray(n)||In(n)&&"string"!==t;)r.push(n.length),n=n[0];return Array.isArray(e)&&Yt().getBool("TENSORLIKE_CHECK_SHAPE_CONSISTENCY")&&function e(t,n,r){if(r=r||[],Array.isArray(t)||In(t)){un(n.length>0,(function(){return"Element arr["+r.join("][")+"] should be a primitive, but is an array of "+t.length+" elements"})),un(t.length===n[0],(function(){return"Element arr["+r.join("][")+"] should have "+n[0]+" elements, but has "+t.length+" elements"}));for(var o=n.slice(1),a=0;a<t.length;++a)e(t[a],o,r.concat(a))}else un(0===n.length,(function(){return"Element arr["+r.join("][")+"] is a primitive, but should be an array/TypedArray of "+n[0]+" elements"}))}(e,r,[]),r}function Io(e,t,n,r){if(null!=e&&("numeric"!==e&&e!==t||"numeric"===e&&"string"===t))throw new Error("Argument '"+n+"' passed to '"+r+"' must be "+e+" tensor, but got "+t+" tensor")}function Ro(e,t,n,r){if(void 0===r&&(r="numeric"),e instanceof er)return Io(r,e.dtype,t,n),e;var o=Dn(e);if("string"!==o&&["bool","int32","float32"].indexOf(r)>=0&&(o=r),Io(r,o,t,n),null==e||!In(e)&&!Array.isArray(e)&&"number"!=typeof e&&"boolean"!=typeof e&&"string"!=typeof e){var a=null==e?"null":e.constructor.name;throw new Error("Argument '"+t+"' passed to '"+n+"' must be a Tensor or TensorLike, but got '"+a+"'")}var i=Co(e,o);In(e)||Array.isArray(e)||(e=[e]);var s="string"!==o?Bn(e,o,Yt().getBool("DEBUG")):fn(e,[],!0);return mr.makeTensor(s,i,o)}function So(e,t,n,r){if(void 0===r&&(r="numeric"),!Array.isArray(e))throw new Error("Argument "+t+" passed to "+n+" must be a `Tensor[]` or `TensorLike[]`");return e.map((function(e,r){return Ro(e,t+"["+r+"]",n)}),r)}function Ao(e,t){for(var n=0;n<e.length;++n)if(e[e.length-n-1]!==t-1-n)return!1;return!0}function Po(e,t,n){for(var r=e.length+t.length,o=[],a=0,i=0,s=0;s<r;s++)-1===n.indexOf(s)?o.push(e[a++]):o.push(t[i++]);return o}function To(e,t){for(var n=[],r=e.length,o=0;o<r;o++)-1===t.indexOf(o)&&n.push(e[o]);return[n,t.map((function(t){return e[t]}))]}function Do(e,t){return Po(e,t.map((function(e){return 1})),t)}function No(e,t,n){un(Ao(t,n),(function(){return e+" supports only inner-most axes for now. Got axes "+t+" and rank-"+n+" input."}))}function Mo(e,t){if(Ao(e,t))return null;for(var n=[],r=0;r<t;++r)-1===e.indexOf(r)&&n.push(r);return e.forEach((function(e){return n.push(e)})),n}function Fo(e){return e.map((function(e,t){return[t,e]})).sort((function(e,t){return e[1]-t[1]})).map((function(e){return e[0]}))}function Bo(e,t){for(var n=[],r=t-e;r<t;++r)n.push(r);return n}function jo(e,t){var n=e[0].length;e.forEach((function(e,t){un(e.length===n,(function(){return"Error in concat"+n+"D: rank of tensors["+t+"] must be the same as the rank of the rest ("+n+")"}))})),un(t>=0&&t<n,(function(){return"Error in concat"+n+"D: axis must be between 0 and "+(n-1)+"."}));var r=e[0];e.forEach((function(e,o){for(var a=0;a<n;a++)un(a===t||e[a]===r[a],(function(){return"Error in concat"+n+"D: Shape of tensors["+o+"] ("+e+") does not match the shape of the rest ("+r+") along the non-concatenated axis "+o+"."}))}))}function Lo(e,t){for(var n=e[0].slice(),r=1;r<e.length;r++)n[t]+=e[r][t];return n}function zo(e){var t=Object.keys(e);if(1!==t.length)throw new Error("Please provide an object with a single key (operation name) mapping to a function. Got an object with "+t.length+" keys.");var n=t[0],r=e[n];n.endsWith("_")&&(n=n.substring(0,n.length-1));var o=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];mr.startScope(n);try{var o=r.apply(void 0,e);return o instanceof Promise&&console.error("Cannot return a Promise inside of tidy."),mr.endScope(o),o}catch(e){throw mr.endScope(null),e}};return Object.defineProperty(o,"name",{value:n,configurable:!0}),o}xo.registerFlag("HAS_WEBGL",(function(){return xo.getNumber("WEBGL_VERSION")>0})),xo.registerFlag("WEBGL_VERSION",(function(){return vo(2)?2:vo(1)?1:0})),xo.registerFlag("WEBGL_BUFFER_SUPPORTED",(function(){return 2===xo.get("WEBGL_VERSION")})),xo.registerFlag("WEBGL_CPU_FORWARD",(function(){return!0})),xo.registerFlag("WEBGL_FORCE_F16_TEXTURES",(function(){return!1})),xo.registerFlag("WEBGL_PACK",(function(){return xo.getBool("HAS_WEBGL")})),xo.registerFlag("WEBGL_PACK_NORMALIZATION",(function(){return xo.getBool("WEBGL_PACK")})),xo.registerFlag("WEBGL_PACK_CLIP",(function(){return xo.getBool("WEBGL_PACK")})),xo.registerFlag("WEBGL_PACK_DEPTHWISECONV",(function(){return!1})),xo.registerFlag("WEBGL_PACK_BINARY_OPERATIONS",(function(){return xo.getBool("WEBGL_PACK")})),xo.registerFlag("WEBGL_PACK_UNARY_OPERATIONS",(function(){return xo.getBool("WEBGL_PACK")})),xo.registerFlag("WEBGL_PACK_ARRAY_OPERATIONS",(function(){return xo.getBool("WEBGL_PACK")})),xo.registerFlag("WEBGL_PACK_IMAGE_OPERATIONS",(function(){return xo.getBool("WEBGL_PACK")})),xo.registerFlag("WEBGL_PACK_REDUCE",(function(){return xo.getBool("WEBGL_PACK")})),xo.registerFlag("WEBGL_LAZILY_UNPACK",(function(){return xo.getBool("WEBGL_PACK")})),xo.registerFlag("WEBGL_CONV_IM2COL",(function(){return xo.getBool("WEBGL_PACK")})),xo.registerFlag("WEBGL_MAX_TEXTURE_SIZE",(function(){return lo(xo.getNumber("WEBGL_VERSION"))})),xo.registerFlag("WEBGL_MAX_TEXTURES_IN_SHADER",(function(){return fo(xo.getNumber("WEBGL_VERSION"))})),xo.registerFlag("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION",(function(){var e=xo.getNumber("WEBGL_VERSION");return 0===e?0:ho(e)})),xo.registerFlag("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE",(function(){return xo.getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")>0&&(e=navigator.userAgent||navigator.vendor||window.opera,!(/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test(e)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(e.substr(0,4))));var e})),xo.registerFlag("WEBGL_RENDER_FLOAT32_CAPABLE",(function(){return mo(xo.getNumber("WEBGL_VERSION"))})),xo.registerFlag("WEBGL_RENDER_FLOAT32_ENABLED",(function(){return!xo.getBool("WEBGL_FORCE_F16_TEXTURES")&&xo.getBool("WEBGL_RENDER_FLOAT32_CAPABLE")})),xo.registerFlag("WEBGL_DOWNLOAD_FLOAT_ENABLED",(function(){return go(xo.getNumber("WEBGL_VERSION"))})),xo.registerFlag("WEBGL_FENCE_API_ENABLED",(function(){return bo(xo.getNumber("WEBGL_VERSION"))})),xo.registerFlag("WEBGL_SIZE_UPLOAD_UNIFORM",(function(){return xo.getBool("WEBGL_RENDER_FLOAT32_ENABLED")?4:0})),Qn=Eo;var Ho=zo({complex_:function(e,t){var n=Ro(e,"real","complex"),r=Ro(t,"imag","complex");return cn(n.shape,r.shape,"real and imag shapes, "+n.shape+" and "+r.shape+", must match in call to tf.complex()."),mr.runKernelFunc((function(e){return e.complex(n,r)}),{$real:n,$imag:r})}}),Wo=zo({real_:function(e){var t=Ro(e,"input","real");return mr.runKernelFunc((function(e){return e.real(t)}),{$input:t})}}),Vo=zo({imag_:function(e){var t=Ro(e,"input","imag");return mr.runKernelFunc((function(e){return e.imag(t)}),{$input:t})}});function Uo(e,t,n){return qo(e,t,Co(e,n),n)}function qo(e,t,n,r){if(null==r&&(r=Dn(e)),"complex64"===r)throw new Error("Cannot construct a complex64 tensor directly. Please use tf.complex(real, imag).");if(!In(e)&&!Array.isArray(e)&&"number"!=typeof e&&"boolean"!=typeof e&&"string"!=typeof e)throw new Error("values passed to tensor(values) must be a number/boolean/string or an array of numbers/booleans/strings, or a TypedArray");if(null!=t){Wn(t);var o=hn(t),a=hn(n);un(o===a,(function(){return"Based on the provided shape, ["+t+"], the tensor should have "+o+" values but has "+a}));for(var i=0;i<n.length;++i){var s=n[i],u=i!==n.length-1||s!==hn(t.slice(i));un(n[i]===t[i]||!u,(function(){return"Error creating a new Tensor. Inferred shape ("+n+") does not match the provided shape ("+t+"). "}))}}return In(e)||Array.isArray(e)||(e=[e]),t=t||n,e="string"!==r?Bn(e,r,Yt().getBool("DEBUG")):fn(e,[],!0),mr.makeTensor(e,t,r)}function Go(e,t){if((In(e)&&"string"!==t||Array.isArray(e))&&"complex64"!==t)throw new Error("Error creating a new Scalar: value must be a primitive (number|boolean|string)");if("string"===t&&In(e)&&!(e instanceof Uint8Array))throw new Error("When making a scalar from encoded string, the value must be `Uint8Array`.");return qo(e,[],[],t)}function Xo(e,t){ln(e);var n=Co(e,t);if(1!==n.length)throw new Error("tensor1d() requires values to be a flat/TypedArray");return qo(e,null,n,t)}function Ko(e,t,n){if(ln(e),null!=t&&2!==t.length)throw new Error("tensor2d() requires shape to have two numbers");var r=Co(e,n);if(2!==r.length&&1!==r.length)throw new Error("tensor2d() requires values to be number[][] or flat/TypedArray");if(1===r.length&&null==t)throw new Error("tensor2d() requires shape to be provided when `values` are a flat/TypedArray");return qo(e,t,r,n)}function $o(e,t,n){if(ln(e),null!=t&&3!==t.length)throw new Error("tensor3d() requires shape to have three numbers");var r=Co(e,n);if(3!==r.length&&1!==r.length)throw new Error("tensor3d() requires values to be number[][][] or flat/TypedArray");if(1===r.length&&null==t)throw new Error("tensor3d() requires shape to be provided when `values` are a flat array");return qo(e,t,r,n)}function Yo(e,t,n){if(ln(e),null!=t&&4!==t.length)throw new Error("tensor4d() requires shape to have four numbers");var r=Co(e,n);if(4!==r.length&&1!==r.length)throw new Error("tensor4d() requires values to be number[][][][] or flat/TypedArray");if(1===r.length&&null==t)throw new Error("tensor4d() requires shape to be provided when `values` are a flat array");return qo(e,t,r,n)}function Jo(e,t){if(void 0===t&&(t="float32"),"complex64"===t){var n=Jo(e,"float32"),r=Zo(e,"float32");return Ho(n,r)}var o=Ln(hn(e),t);return mr.makeTensor(o,e,t)}function Zo(e,t){if(void 0===t&&(t="float32"),"complex64"===t){var n=Zo(e,"float32"),r=Zo(e,"float32");return Ho(n,r)}var o=zn(hn(e),t);return mr.makeTensor(o,e,t)}function Qo(e,t,n){return mr.runKernelFunc((function(r){return r.fill(e,t,n)}),{})}function ea(e,t,n,r){if(void 0===n&&(n=1),void 0===r&&(r="float32"),0===n)throw new Error("Cannot have a step of zero");if(e===t||e<t&&n<0||t<e&&n>1)return Zo([0],r);var o=zn(Math.abs(Math.ceil((t-e)/n)),r);t<e&&1===n&&(n=-1),o[0]=e;for(var a=1;a<o.length;a++)o[a]=o[a-1]+n;return Xo(o,r)}var ta=zo({onesLike_:function(e){var t=Ro(e,"x","onesLike");if("complex64"===t.dtype){var n=ta(Wo(t)),r=na(Vo(t));return Ho(n,r)}return mr.runKernelFunc((function(e){return e.onesLike(t)}),{$x:t},(function(e,t){return{$x:function(){return na(e)}}}))}}),na=zo({zerosLike_:function(e){var t=Ro(e,"x","zerosLike");return mr.runKernelFunc((function(e){return e.zerosLike(t)}),{$x:t},(function(e,t){return{$x:function(){return na(e)}}}))}}),ra=zo({concat_:function(e,t){void 0===t&&(t=0),un(e.length>=1,(function(){return"Pass at least one tensor to concat"}));var n=So(e,"tensors","concat");"complex64"===n[0].dtype&&n.forEach((function(e){if("complex64"!==e.dtype)throw new Error("Cannot concatenate complex64 tensors with a tensor\n with dtype "+e.dtype+". ")})),t=wn(t,n[0].shape)[0];var r=Lo(n.map((function(e){return e.shape})),t);if(0===hn(r))return Uo([],r);if(1===(n=n.filter((function(e){return e.size>0}))).length)return n[0];var o=n.map((function(e){return e.shape}));jo(o,t);var a=n,i={axis:t};return mr.runKernelFunc((function(e){return e.concat(n,t)}),a,(function(e){var n=o.map((function(e){return e[t]}));return ua(e,n,t).map((function(e){return function(){return e}}))}),"Concat",i)}}),oa=zo({concat1d_:function(e){return ra(e,0)}}),aa=zo({concat2d_:function(e,t){return ra(e,t)}}),ia=zo({concat3d_:function(e,t){return ra(e,t)}}),sa=zo({concat4d_:function(e,t){return ra(e,t)}}),ua=zo({split_:function(e,t,n){void 0===n&&(n=0);var r,o=Ro(e,"x","split");return n=wn(n,o.shape)[0],"number"==typeof t?(un(o.shape[n]%t==0,(function(){return"Number of splits must evenly divide the axis."})),r=new Array(t).fill(o.shape[n]/t)):(un(o.shape[n]===t.reduce((function(e,t){return e+t})),(function(){return"The sum of sizes must match the size of the axis dimension."})),r=t),mr.runKernelFunc((function(e){return e.split(o,r,n)}),{$x:o},(function(e){return{$x:function(){return ra(e,n)}}}))}});function ca(e,t){return e(t={exports:{}},t.exports),t.exports}"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:void 0!==n.g?n.g:"undefined"!=typeof self&&self;var la=ca((function(e){!function(e,t,n){function r(e){var t,n=this,r=(t=4022871197,function(e){e=e.toString();for(var n=0;n<e.length;n++){var r=.02519603282416938*(t+=e.charCodeAt(n));r-=t=r>>>0,t=(r*=t)>>>0,t+=4294967296*(r-=t)}return 2.3283064365386963e-10*(t>>>0)});n.next=function(){var e=2091639*n.s0+2.3283064365386963e-10*n.c;return n.s0=n.s1,n.s1=n.s2,n.s2=e-(n.c=0|e)},n.c=1,n.s0=r(" "),n.s1=r(" "),n.s2=r(" "),n.s0-=r(e),n.s0<0&&(n.s0+=1),n.s1-=r(e),n.s1<0&&(n.s1+=1),n.s2-=r(e),n.s2<0&&(n.s2+=1),r=null}function o(e,t){return t.c=e.c,t.s0=e.s0,t.s1=e.s1,t.s2=e.s2,t}function a(e,t){var n=new r(e),a=t&&t.state,i=n.next;return i.int32=function(){return 4294967296*n.next()|0},i.double=function(){return i()+11102230246251565e-32*(2097152*i()|0)},i.quick=i,a&&("object"==typeof a&&o(a,n),i.state=function(){return o(n,{})}),i}t&&t.exports?t.exports=a:this.alea=a}(0,e)})),fa=ca((function(e){!function(e,t,n){function r(e){var t=this,n="";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:n+=e;for(var r=0;r<n.length+64;r++)t.x^=0|n.charCodeAt(r),t.next()}function o(e,t){return t.x=e.x,t.y=e.y,t.z=e.z,t.w=e.w,t}function a(e,t){var n=new r(e),a=t&&t.state,i=function(){return(n.next()>>>0)/4294967296};return i.double=function(){do{var e=((n.next()>>>11)+(n.next()>>>0)/4294967296)/(1<<21)}while(0===e);return e},i.int32=n.next,i.quick=i,a&&("object"==typeof a&&o(a,n),i.state=function(){return o(n,{})}),i}t&&t.exports?t.exports=a:this.xor128=a}(0,e)})),ha=ca((function(e){!function(e,t,n){function r(e){var t=this,n="";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:n+=e;for(var r=0;r<n.length+64;r++)t.x^=0|n.charCodeAt(r),r==n.length&&(t.d=t.x<<10^t.x>>>4),t.next()}function o(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 a(e,t){var n=new r(e),a=t&&t.state,i=function(){return(n.next()>>>0)/4294967296};return i.double=function(){do{var e=((n.next()>>>11)+(n.next()>>>0)/4294967296)/(1<<21)}while(0===e);return e},i.int32=n.next,i.quick=i,a&&("object"==typeof a&&o(a,n),i.state=function(){return o(n,{})}),i}t&&t.exports?t.exports=a:this.xorwow=a}(0,e)})),pa=ca((function(e){!function(e,t,n){function r(e){var t=this;t.next=function(){var e,n,r=t.x,o=t.i;return e=r[o],n=(e^=e>>>7)^e<<24,n^=(e=r[o+1&7])^e>>>10,n^=(e=r[o+3&7])^e>>>3,n^=(e=r[o+4&7])^e<<7,e=r[o+7&7],n^=(e^=e<<13)^e<<9,r[o]=n,t.i=o+1&7,n},function(e,t){var n,r=[];if(t===(0|t))r[0]=t;else for(t=""+t,n=0;n<t.length;++n)r[7&n]=r[7&n]<<15^t.charCodeAt(n)+r[n+1&7]<<13;for(;r.length<8;)r.push(0);for(n=0;n<8&&0===r[n];++n);for(8==n?r[7]=-1:r[n],e.x=r,e.i=0,n=256;n>0;--n)e.next()}(t,e)}function o(e,t){return t.x=e.x.slice(),t.i=e.i,t}function a(e,t){null==e&&(e=+new Date);var n=new r(e),a=t&&t.state,i=function(){return(n.next()>>>0)/4294967296};return i.double=function(){do{var e=((n.next()>>>11)+(n.next()>>>0)/4294967296)/(1<<21)}while(0===e);return e},i.int32=n.next,i.quick=i,a&&(a.x&&o(a,n),i.state=function(){return o(n,{})}),i}t&&t.exports?t.exports=a:this.xorshift7=a}(0,e)})),da=ca((function(e){!function(e,t,n){function r(e){var t=this;t.next=function(){var e,n,r=t.w,o=t.X,a=t.i;return t.w=r=r+1640531527|0,n=o[a+34&127],e=o[a=a+1&127],n^=n<<13,e^=e<<17,n^=n>>>15,e^=e>>>12,n=o[a]=n^e,t.i=a,n+(r^r>>>16)|0},function(e,t){var n,r,o,a,i,s=[],u=128;for(t===(0|t)?(r=t,t=null):(t+="\0",r=0,u=Math.max(u,t.length)),o=0,a=-32;a<u;++a)t&&(r^=t.charCodeAt((a+32)%t.length)),0===a&&(i=r),r^=r<<10,r^=r>>>15,r^=r<<4,r^=r>>>13,a>=0&&(i=i+1640531527|0,o=0==(n=s[127&a]^=r+i)?o+1:0);for(o>=128&&(s[127&(t&&t.length||0)]=-1),o=127,a=512;a>0;--a)r=s[o+34&127],n=s[o=o+1&127],r^=r<<13,n^=n<<17,r^=r>>>15,n^=n>>>12,s[o]=r^n;e.w=i,e.X=s,e.i=o}(t,e)}function o(e,t){return t.i=e.i,t.w=e.w,t.X=e.X.slice(),t}function a(e,t){null==e&&(e=+new Date);var n=new r(e),a=t&&t.state,i=function(){return(n.next()>>>0)/4294967296};return i.double=function(){do{var e=((n.next()>>>11)+(n.next()>>>0)/4294967296)/(1<<21)}while(0===e);return e},i.int32=n.next,i.quick=i,a&&(a.X&&o(a,n),i.state=function(){return o(n,{})}),i}t&&t.exports?t.exports=a:this.xor4096=a}(0,e)})),va=ca((function(e){!function(e,t,n){function r(e){var t=this,n="";t.next=function(){var e=t.b,n=t.c,r=t.d,o=t.a;return e=e<<25^e>>>7^n,n=n-r|0,r=r<<24^r>>>8^o,o=o-e|0,t.b=e=e<<20^e>>>12^n,t.c=n=n-r|0,t.d=r<<16^n>>>16^o,t.a=o-e|0},t.a=0,t.b=0,t.c=-1640531527,t.d=1367130551,e===Math.floor(e)?(t.a=e/4294967296|0,t.b=0|e):n+=e;for(var r=0;r<n.length+20;r++)t.b^=0|n.charCodeAt(r),t.next()}function o(e,t){return t.a=e.a,t.b=e.b,t.c=e.c,t.d=e.d,t}function a(e,t){var n=new r(e),a=t&&t.state,i=function(){return(n.next()>>>0)/4294967296};return i.double=function(){do{var e=((n.next()>>>11)+(n.next()>>>0)/4294967296)/(1<<21)}while(0===e);return e},i.int32=n.next,i.quick=i,a&&("object"==typeof a&&o(a,n),i.state=function(){return o(n,{})}),i}t&&t.exports?t.exports=a:this.tychei=a}(0,e)})),ma=ca((function(e){!function(t,r){var o,a=this,i=256,s="random",u=r.pow(i,6),c=r.pow(2,52),l=2*c,f=255;function h(e,n,f){var h=[],g=v(function e(t,n){var r,o=[],a=typeof t;if(n&&"object"==a)for(r in t)try{o.push(e(t[r],n-1))}catch(e){}return o.length?o:"string"==a?t:t+"\0"}((n=1==n?{entropy:!0}:n||{}).entropy?[e,m(t)]:null==e?function(){try{var e;return o&&(e=o.randomBytes)?e=e(i):(e=new Uint8Array(i),(a.crypto||a.msCrypto).getRandomValues(e)),m(e)}catch(e){var n=a.navigator,r=n&&n.plugins;return[+new Date,a,r,a.screen,m(t)]}}():e,3),h),y=new p(h),b=function(){for(var e=y.g(6),t=u,n=0;e<c;)e=(e+n)*i,t*=i,n=y.g(1);for(;e>=l;)e/=2,t/=2,n>>>=1;return(e+n)/t};return b.int32=function(){return 0|y.g(4)},b.quick=function(){return y.g(4)/4294967296},b.double=b,v(m(y.S),t),(n.pass||f||function(e,t,n,o){return o&&(o.S&&d(o,y),e.state=function(){return d(y,{})}),n?(r[s]=e,t):e})(b,g,"global"in n?n.global:this==r,n.state)}function p(e){var t,n=e.length,r=this,o=0,a=r.i=r.j=0,s=r.S=[];for(n||(e=[n++]);o<i;)s[o]=o++;for(o=0;o<i;o++)s[o]=s[a=f&a+e[o%n]+(t=s[o])],s[a]=t;(r.g=function(e){for(var t,n=0,o=r.i,a=r.j,s=r.S;e--;)t=s[o=f&o+1],n=n*i+s[f&(s[o]=s[a=f&a+t])+(s[a]=t)];return r.i=o,r.j=a,n})(i)}function d(e,t){return t.i=e.i,t.j=e.j,t.S=e.S.slice(),t}function v(e,t){for(var n,r=e+"",o=0;o<r.length;)t[f&o]=f&(n^=19*t[f&o])+r.charCodeAt(o++);return m(t)}function m(e){return String.fromCharCode.apply(0,e)}if(r["seed"+s]=h,v(r.random(),t),e.exports){e.exports=h;try{o=n(4902)}catch(e){}}}([],Math)}));ma.alea=la,ma.xor128=fa,ma.xorwow=ha,ma.xorshift7=pa,ma.xor4096=da,ma.tychei=va;var ga=ma.alea,ya=function(){function e(e,t,n,r,o){this.mean=e,this.stdDev=t,this.dtype=n,this.nextVal=NaN,this.truncated=r,this.truncated&&(this.upper=this.mean+2*this.stdDev,this.lower=this.mean-2*this.stdDev);var a=o||Math.random();this.random=ga(a.toString())}return e.prototype.nextValue=function(){if(!isNaN(this.nextVal)){var e=this.nextVal;return this.nextVal=NaN,e}for(var t,n,r=!1;!r;){var o=void 0,a=void 0,i=void 0;do{i=(o=2*this.random()-1)*o+(a=2*this.random()-1)*a}while(i>=1||0===i);var s=Math.sqrt(-2*Math.log(i)/i);t=this.mean+this.stdDev*o*s,n=this.mean+this.stdDev*a*s,this.truncated&&!this.isValidTruncated(t)||(r=!0)}return this.truncated&&!this.isValidTruncated(n)||(this.nextVal=this.convertValue(n)),this.convertValue(t)},e.prototype.convertValue=function(e){return null==this.dtype||"float32"===this.dtype?e:Math.round(e)},e.prototype.isValidTruncated=function(e){return e<=this.upper&&e>=this.lower},e}(),ba=function(){function e(e,t,n,r){this.alpha=e,this.beta=1/t,this.dtype=n;var o=r||Math.random();this.randu=ga(o.toString()),this.randn=new ya(0,1,n,!1,this.randu()),this.d=e<1?e+2/3:e-1/3,this.c=1/Math.sqrt(9*this.d)}return e.prototype.nextValue=function(){for(var e,t,n,r,o,a;;){do{r=this.randn.nextValue(),a=1+this.c*r}while(a<=0);if(a*=a*a,t=1-.331*(e=r*r)*e,n=.5*e+this.d*(1-a+Math.log(a)),(o=this.randu())<t||Math.log(o)<n)break}return a=1/this.beta*this.d*a,this.alpha<1&&(a*=Math.pow(this.randu(),1/this.alpha)),this.convertValue(a)},e.prototype.convertValue=function(e){return"float32"===this.dtype?e:Math.round(e)},e}(),wa=function(){function e(e,t,n,r){var o=this;if(void 0===e&&(e=0),void 0===t&&(t=1),this.canReturnFloat=function(){return null==o.dtype||"float32"===o.dtype},this.min=e,this.range=t-e,this.dtype=n,null==r&&(r=Math.random()),"number"==typeof r&&(r=r.toString()),!this.canReturnFloat()&&this.range<=1)throw new Error("The difference between "+e+" - "+t+" <= 1 and dtype is not float");this.random=ga(r)}return e.prototype.convertValue=function(e){return this.canReturnFloat()?e:Math.round(e)},e.prototype.nextValue=function(){return this.convertValue(this.min+this.range*this.random())},e}();function xa(e,t,n){return void 0===t&&(t="float32"),t=t||"float32",Wn(e),new Yn(e,t,n)}var Ea=zo({batchToSpaceND_:function(e,t,n){var r=Ro(e,"x","batchToSpaceND"),o=t.reduce((function(e,t){return e*t}));return un(r.rank>=1+t.length,(function(){return"input rank is "+r.rank+" but should be > than blockShape.length "+t.length})),un(n.length===t.length,(function(){return"crops.length is "+n.length+" but should be equal to blockShape.length "+t.length})),un(r.shape[0]%o==0,(function(){return"input tensor batch is "+r.shape[0]+" but is not divisible by the product of the elements of blockShape "+t.join(" * ")+" === "+o})),mr.runKernelFunc((function(e){return e.batchToSpaceND(r,t,n)}),{$x:r},(function(e){return{$x:function(){return e.spaceToBatchND(t,n)}}}))}}),_a=zo({broadcastTo_:function(e,t){var n=Ro(e,"broadcastTo","x"),r=n.shape;if(t.some((function(e){return!(e>0)||e%1!=0})))throw new Error("broadcastTo(): Invalid broadcast shape ["+t+"].");if(t.length<n.rank)throw new Error("broadcastTo(): shape.length="+t.length+" < input.rank="+n.rank+".");if(t.length>n.rank){for(var o=n.shape.slice();o.length<t.length;)o.unshift(1);n=n.reshape(o)}for(var a=Array.from(t),i=t.length-1;i>=0;i--)if(n.shape[i]===t[i])a[i]=1;else if(1!==n.shape[i])throw new Error("broadcastTo(): ["+r+"] cannot be broadcast to ["+t+"].");var s=a.map((function(e,t){return e>1?t:-1})).filter((function(e){return e>=0}));return 0===s.length?n.clone():mr.runKernelFunc((function(e){return e.tile(n,a)}),{input:n},(function(e){return{input:function(){return e.sum(s,!0)}}}))}}),ka=zo({cast_:function(e,t){var n=Ro(e,"x","cast");if(!On(t))throw new Error("Failed to cast to unknown dtype "+t);if("string"===t&&"string"!==n.dtype||"string"!==t&&"string"===n.dtype)throw new Error("Only strings can be casted to strings");var r={dtype:t};return mr.runKernelFunc((function(e){return e.cast(n,t)}),{x:n},(function(e){return{x:function(){return e.clone()}}}),"Cast",r)}}),Oa=zo({clone_:function(e){var t=Ro(e,"x","clone",null);return mr.runKernelFunc((function(){return mr.makeTensorFromDataId(t.dataId,t.shape,t.dtype)}),{$x:t},(function(e){return{$x:function(){return e.toFloat()}}}))}}),Ca=zo({cumsum_:function(e,t,n,r){void 0===t&&(t=0),void 0===n&&(n=!1),void 0===r&&(r=!1);var o=Ro(e,"x","cumsum"),a=Mo([t|=0],o.rank),i=o;null!=a&&(i=o.transpose(a));var s=Bo(1,o.rank)[0],u=mr.runKernelFunc((function(e){return e.cumsum(i,s,n,r)}),{permutedX:i},(function(e){return{permutedX:function(){return e.cumsum(t,n,!r)}}}));return null!=a&&(u=u.transpose(a)),u}}),Ia=zo({depthToSpace_:function(e,t,n){void 0===n&&(n="NHWC");var r=Ro(e,"x","depthToSpace"),o="NHWC"===n?r.shape[1]:r.shape[2],a="NHWC"===n?r.shape[2]:r.shape[3],i="NHWC"===n?r.shape[3]:r.shape[1];return un(o*t>=0,(function(){return"Negative dimension size caused by overflow when multiplying\n "+o+" and "+t+" for depthToSpace with input shape\n "+r.shape})),un(a*t>=0,(function(){return"Negative dimension size caused by overflow when multiplying\n "+a+" and "+t+" for depthToSpace with input shape\n "+r.shape})),un(i%(t*t)==0,(function(){return"Dimension size must be evenly divisible by "+t*t+" but is "+i+" for depthToSpace with input shape "+r.shape})),mr.runKernelFunc((function(e){return e.depthToSpace(r,t,n)}),{$x:r})}}),Ra=zo({expandDims_:function(e,t){void 0===t&&(t=0);var n=Ro(e,"x","expandDims",null);un(t<=n.rank,(function(){return"Axis must be <= rank of the tensor"}));var r=n.shape.slice();return t<0&&(un(-(n.rank+1)<=t,(function(){return"Axis must be in the interval ["+-(n.rank+1)+", "+n.rank+"]"})),t=n.rank+t+1),r.splice(t,0,1),Ha(n,r)}}),Sa=zo({eye_:function(e,t,n,r){void 0===r&&(r="float32"),null==t&&(t=e);for(var o=xa([e,t],r),a=e<=t?e:t,i=0;i<a;++i)o.set(1,i,i);var s=o.toTensor().as2D(e,t);if(null==n)return s;if(1===n.length)return qa(Ra(s,0),[n[0],1,1]);if(2===n.length)return qa(Ra(Ra(s,0),0),[n[0],n[1],1,1]);if(3===n.length)return qa(Ra(Ra(Ra(s,0),0),0),[n[0],n[1],n[2],1,1]);throw new Error("eye() currently supports only 1D and 2D batchShapes, but received "+n.length+"D.")}}),Aa=zo({multinomial_:function(e,t,n,r){void 0===r&&(r=!1);var o=Ro(e,"logits","multinomial"),a=o.size,i=o.rank;if(a<2)throw new Error("Error in multinomial: you need at least 2 outcomes, but got "+a+".");if(i>2)throw new Error("Rank of probabilities must be 1 or 2, but is "+i);n=n||Math.random();var s=1===i?o.as2D(1,-1):o,u=mr.runKernelFunc((function(e){return e.multinomial(s,r,t,n)}),{logits2D:s});return 1===i?u.as1D():u}}),Pa=zo({oneHot_:function(e,t,n,r){if(void 0===n&&(n=1),void 0===r&&(r=0),t<2)throw new Error("Error in oneHot: depth must be >=2, but it is "+t);var o=Ro(e,"indices","oneHot","int32"),a=o.shape.concat([t]);return o=o.flatten(),mr.runKernelFunc((function(e){return e.oneHot(o,t,n,r)}),{$indices:o},(function(e){return{$indices:function(){return Zo(o.shape,"float32")}}})).reshape(a)}}),Ta=zo({pad_:function(e,t,n){void 0===n&&(n=0);var r=Ro(e,"x","pad");if(0===r.rank)throw new Error("pad(scalar) is not defined. Pass non-scalar to pad");var o={paddings:t,constantValue:n};return mr.runKernelFunc((function(e){return e.pad(r,t,n)}),{x:r},(function(e){var n=t.map((function(e){return e[0]}));return{x:function(){return e.slice(n,r.shape)}}}),"PadV2",o)}}),Da=zo({pad1d_:function(e,t,n){return void 0===n&&(n=0),un(2===t.length,(function(){return"Invalid number of paddings. Must be length of 2."})),Ta(e,[t],n)}}),Na=zo({pad2d_:function(e,t,n){return void 0===n&&(n=0),un(2===t.length&&2===t[0].length&&2===t[1].length,(function(){return"Invalid number of paddings. Must be length of 2 each."})),Ta(e,t,n)}}),Ma=zo({pad3d_:function(e,t,n){return void 0===n&&(n=0),un(3===t.length&&2===t[0].length&&2===t[1].length&&2===t[2].length,(function(){return"Invalid number of paddings. Must be length of 2 each."})),Ta(e,t,n)}}),Fa=zo({pad4d_:function(e,t,n){return void 0===n&&(n=0),un(4===t.length&&2===t[0].length&&2===t[1].length&&2===t[2].length&&2===t[3].length,(function(){return"Invalid number of paddings. Must be length of 2 each."})),Ta(e,t,n)}}),Ba=zo({rand_:function(e,t,n){var r=hn(e),o=null;if(null==n||"float32"===n)o=new Float32Array(r);else if("int32"===n)o=new Int32Array(r);else{if("bool"!==n)throw new Error("Unknown data type "+n);o=new Uint8Array(r)}for(var a=0;a<r;a++)o[a]=t();return mr.makeTensor(o,e,n)}}),ja=zo({randomNormal_:function(e,t,n,r,o){if(void 0===t&&(t=0),void 0===n&&(n=1),null!=r&&"bool"===r)throw new Error("Unsupported data type "+r);for(var a=new ya(t,n,r,!1,o),i=xa(e,r),s=0;s<i.values.length;s++)i.values[s]=a.nextValue();return i.toTensor()}}),La=zo({randomGamma_:function(e,t,n,r,o){if(void 0===n&&(n=1),void 0===r&&(r="float32"),null==n&&(n=1),null==r&&(r="float32"),"float32"!==r&&"int32"!==r)throw new Error("Unsupported data type "+r);for(var a=new ba(t,n,r,o),i=xa(e,r),s=0;s<i.values.length;s++)i.values[s]=a.nextValue();return i.toTensor()}}),za=zo({randomUniform_:function(e,t,n,r,o){void 0===t&&(t=0),void 0===n&&(n=1),void 0===r&&(r="float32");for(var a=xa(e,r),i=new wa(t,n,null,o),s=0;s<a.values.length;s++)a.values[s]=i.nextValue();return a.toTensor()}}),Ha=zo({reshape_:function(e,t){var n=Ro(e,"x","reshape",null);t=bn(t,n.size),un(n.size===hn(t),(function(){return"new shape and old shape must have the same number of elements."}));var r={shape:t};return mr.runKernelFunc((function(e){return e.reshape(n,t)}),{x:n},(function(e){return{x:function(){return e.reshape(n.shape)}}}),"Reshape",r)}}),Wa=zo({spaceToBatchND_:function(e,t,n){var r=Ro(e,"x","spaceToBatchND");return un(r.rank>=1+t.length,(function(){return"input rank "+r.rank+" should be > than [blockShape] "+t.length})),un(n.length===t.length,(function(){return"paddings.shape[0] "+n.length+" must be equal to [blockShape] "+t.length})),un(r.shape.reduce((function(e,r,o){return o>0&&o<=t.length?e&&(r+n[o-1][0]+n[o-1][1])%t[o-1]==0:e}),!0),(function(){return"input spatial dimensions "+r.shape.slice(1)+" with paddings "+n.toString()+" must be divisible by blockShapes "+t.toString()})),mr.runKernelFunc((function(e){return e.spaceToBatchND(r,t,n)}),{$x:r},(function(e){return{$x:function(){return e.batchToSpaceND(t,n)}}}))}}),Va=zo({squeeze_:function(e,t){var n=Ro(e,"x","squeeze");return Ha(n,xn(n.shape,t).newShape)}}),Ua=zo({stack_:function(e,t){void 0===t&&(t=0);var n=So(e,"tensors","stack");if(un(n.length>=1,(function(){return"Pass at least one tensor to tf.stack"})),1===n.length)return n[0].expandDims(t);var r=n[0].rank,o=n[0].shape,a=n[0].dtype;un(t<=r,(function(){return"Axis must be <= rank of the tensor"})),n.forEach((function(e){cn(o,e.shape,"All tensors passed to stack must have matching shapes")})),n.forEach((function(e){un(a===e.dtype,(function(){return"All tensors passed to stack must have matching dtypes"}))}));var i=n.map((function(e){return e.expandDims(t)}));return ra(i,t)}}),qa=zo({tile_:function(e,t){var n=Ro(e,"x","tile",null);return un(n.rank===t.length,(function(){return"Error in transpose: rank of input "+n.rank+" must match length of reps "+t+"."})),mr.runKernelFunc((function(e,r){var o=e.tile(n,t);return r([n]),o}),{$x:n},(function(e,n){var r=n[0];return{$x:function(){var n=na(r);if(1===r.rank)for(var o=0;o<t[0];++o)n=n.add(e.slice([o*r.shape[0]],[r.shape[0]]));else if(2===r.rank)for(o=0;o<t[0];++o)for(var a=0;a<t[1];++a)n=n.add(e.slice([o*r.shape[0],a*r.shape[1]],[r.shape[0],r.shape[1]]));else if(3===r.rank)for(o=0;o<t[0];++o)for(a=0;a<t[1];++a)for(var i=0;i<t[2];++i)n=n.add(e.slice([o*r.shape[0],a*r.shape[1],i*r.shape[2]],[r.shape[0],r.shape[1],r.shape[2]]));else{if(4!==r.rank)throw new Error("Gradient for tile operation is not implemented for rank-"+r.rank+" tensors yet.");for(o=0;o<t[0];++o)for(a=0;a<t[1];++a)for(i=0;i<t[2];++i)for(var s=0;s<t[3];++s)n=n.add(e.slice([o*r.shape[0],a*r.shape[1],i*r.shape[2],s*r.shape[3]],[r.shape[0],r.shape[1],r.shape[2],r.shape[3]]))}return n}}}))}}),Ga=zo({truncatedNormal_:function(e,t,n,r,o){if(void 0===t&&(t=0),void 0===n&&(n=1),null!=r&&"bool"===r)throw new Error("Unsupported data type "+r);for(var a=new ya(t,n,r,!0,o),i=xa(e,r),s=0;s<i.values.length;s++)i.values[s]=a.nextValue();return i.toTensor()}}),Xa=zo({unstack_:function(e,t){void 0===t&&(t=0),t=t||0;var n=Ro(e,"x","unstack");return un(t>=-n.shape.length&&t<n.shape.length,(function(){return"Axis = "+t+" is not in [-"+n.shape.length+", "+n.shape.length+")"})),t<0&&(t+=n.shape.length),mr.runKernelFunc((function(e){return e.unstack(n,t)}),{$x:n},(function(e){return{$x:function(){return Ua(e,t)}}}))}});function Ka(e,t,n,r){void 0===r&&(r=!0);var o=[];if(r)(o=o.concat(t.slice(0))).push(e[0]/n),o=o.concat(e.slice(1));else{o=o.concat(e[0]);for(var a=t.length,i=0;i<a;++i)o=o.concat([e[i+1]/t[i],t[i]]);o=o.concat(e.slice(a+1))}return o}function $a(e,t,n){void 0===n&&(n=!0);var r=[];if(n){r.push(t);for(var o=t+1;o<e;++o)o<=2*t?(r.push(o),r.push(o-(t+1))):r.push(o)}else{var a=[],i=[];for(o=1;o<e;++o)o>=2*t+1||o%2==1?i.push(o):a.push(o);r.push.apply(r,a),r.push(0),r.push.apply(r,i)}return r}function Ya(e,t,n,r){void 0===r&&(r=!0);var o=[];r?o.push(e[0]/n):o.push(e[0]*n);for(var a=1;a<e.length;++a)a<=t.length?r?o.push(t[a-1]*e[a]):o.push(e[a]/t[a-1]):o.push(e[a]);return o}function Ja(e,t){for(var n=[0],r=0;r<t;++r)n.push(e[r][0]);return n}function Za(e,t,n){for(var r=e.slice(0,1),o=0;o<n;++o)r.push(e[o+1]-t[o][0]-t[o][1]);return r}function Qa(e,t){if(e.rank<1)throw new Error("tf.gatherND() expects the input to be rank 1 or higher, but the rank was "+e.rank+".");if(t.rank<1)throw new Error("tf.gatherND() expects the indices to be rank 1 or higher, but the rank was "+t.rank+".");if("int32"!==t.dtype)throw new Error("tf.gatherND() expects the indices to be int32 type, but the dtype was "+t.dtype+".");if(t.shape[t.rank-1]>e.rank)throw new Error("index innermost dimension length must be <= tensor rank; saw: "+t.shape[t.rank-1]+" vs. "+e.rank);if(0===e.size)throw new Error("Requested more than 0 entries, but input is empty. Input shape: "+e.shape+".");for(var n=t.shape,r=n[n.length-1],o=1,a=0;a<n.length-1;++a)o*=n[a];var i=e.shape,s=n.slice();s.pop();var u=1;for(a=r;a<e.rank;++a)u*=i[a],s.push(i[a]);var c=Fn(e.shape).map((function(e){return e/u})).concat([1]).slice(0,r);return[s,o,u,c]}function ei(e){return e<=30?e:Mn(e,Math.floor(Math.sqrt(e)))}function ti(e,t,n){for(var r=t.rank>1?t.shape[t.rank-1]:1,o=n.length,a=1,i=r;i<o;++i)a*=n[i];var s=r<1?1:r;return{sliceRank:r,numUpdates:t.size/s,sliceSize:a,strides:Fn(n.slice(0,r)).concat([1]),outputSize:hn(n)}}function ni(e,t,n){un(e.rank===t.length,(function(){return"Error in slice"+e.rank+"D: Length of begin "+t+" must match the rank of the array ("+e.rank+")."})),un(e.rank===n.length,(function(){return"Error in slice"+e.rank+"D: Length of size "+n+" must match the rank of the array ("+e.rank+")."}));for(var r=function(r){un(t[r]+n[r]<=e.shape[r],(function(){return"Error in slice"+e.rank+"D: begin["+r+"] + size["+r+"] ("+(t[r]+n[r])+") would overflow input.shape["+r+"] ("+e.shape[r]+")"}))},o=0;o<e.rank;++o)r(o)}function ri(e){for(var t=[],n=0;e>0;)1&e&&t.push(n),e/=2,n++;return t}function oi(e,t,n){for(var r=[],o=0;o<e.length;o++)r[o]=Math.ceil((t[o]-e[o])/n[o]);return r}function ai(e,t,n,r,o){var a=t[o],i=n[o]||1;(e&1<<o||null==a)&&(a=i>0?Number.MIN_SAFE_INTEGER:Number.MAX_SAFE_INTEGER);var s=r[o];return a<0&&(a+=s),on(0,a,s-1)}function ii(e,t,n,r,o){var a=t[o],i=n[o]||1;(e&1<<o||null==a)&&(a=i>0?Number.MAX_SAFE_INTEGER:Number.MIN_SAFE_INTEGER);var s=r[o];return a<0&&(a+=s),i>0?on(0,a,s):on(-1,a,s-1)}function si(e,t,n){for(var r=n.length,o=0;o<n.length;o++)if(n[o]>1){r=o;break}for(o=r+1;o<n.length;o++)if(t[o]>0||n[o]!==e[o])return!1;return!0}function ui(e,t){for(var n=e.length>0?e[e.length-1]:1,r=0;r<e.length-1;r++)n+=e[r]*t[r];return n}Object.freeze({assertParamsValid:ni,maskToAxes:ri,computeOutShape:oi,startForAxis:ai,stopForAxis:ii,isSliceContinous:si,computeFlatOffset:ui});function ci(e){return mr.customGrad(e)}var li=zo({softmax_:function(e,t){void 0===t&&(t=-1);var n=Ro(e,"logits","softmax");if(-1===t&&(t=n.rank-1),t!==n.rank-1)throw Error("Softmax along a non-last dimension is not yet supported. Logits was rank "+n.rank+" and dim was "+t);return ci((function(e,n){var r=e.logSumExp([t],!0),o=e.toFloat().sub(r).exp();return n([o]),{value:o,gradFunc:function(e,n){var r=n[0],o=e.mul(r);return o.sub(o.sum([t],!0).mul(r))}}}))(n)}}),fi=zo({logSoftmax_:function(e,t){void 0===t&&(t=-1);var n=Ro(e,"logits","logSoftmax");if(-1===t&&(t=n.rank-1),t!==n.rank-1)throw Error("Log Softmax along a non-last dimension is not yet supported. Logits was rank "+n.rank+" and axis was "+t);return ci((function(e,n){var r=e.max(t,!0),o=e.sub(r),a=o.toFloat().sub(o.exp().sum(t,!0).log());return n([a]),{value:a,gradFunc:function(e,n){var r=n[0].exp();return e.sub(e.sum(t,!0).mul(r))}}}))(n)}}),hi=function(){function e(e,t){this.backend=e,this.dataMover=t,this.data=new WeakMap,this.dataIdsCount=0}return e.prototype.get=function(e){return this.data.has(e)||this.dataMover.moveData(this.backend,e),this.data.get(e)},e.prototype.set=function(e,t){this.dataIdsCount++,this.data.set(e,t)},e.prototype.has=function(e){return this.data.has(e)},e.prototype.delete=function(e){return this.dataIdsCount--,this.data.delete(e)},e.prototype.numDataIds=function(){return this.dataIdsCount},e}(),pi=function(){function e(){}return e.prototype.time=function(e){return di("time")},e.prototype.read=function(e){return di("read")},e.prototype.readSync=function(e){return di("readSync")},e.prototype.numDataIds=function(){return di("numDataIds")},e.prototype.disposeData=function(e){return di("disposeData")},e.prototype.write=function(e,t,n){return di("write")},e.prototype.move=function(e,t,n,r){return di("move")},e.prototype.memory=function(){return di("memory")},e.prototype.floatPrecision=function(){return di("floatPrecision")},e.prototype.epsilon=function(){return 32===this.floatPrecision()?1e-7:1e-4},e.prototype.batchMatMul=function(e,t,n,r){return di("batchMatMul")},e.prototype.fusedBatchMatMul=function(e){return e.a,e.b,e.transposeA,e.transposeB,e.bias,e.activation,e.preluActivationWeights,di("fusedBatchMatMul")},e.prototype.slice=function(e,t,n){return di("slice")},e.prototype.stridedSlice=function(e,t,n,r){return di("stridedSlice")},e.prototype.unstack=function(e,t){return di("unstack")},e.prototype.reverse=function(e,t){return di("reverse")},e.prototype.concat=function(e,t){return di("concat")},e.prototype.neg=function(e){return di("neg")},e.prototype.add=function(e,t){return di("add")},e.prototype.addN=function(e){return di("addN")},e.prototype.subtract=function(e,t){return di("subtract")},e.prototype.multiply=function(e,t){return di("multiply")},e.prototype.realDivide=function(e,t){return di("realDivide")},e.prototype.floorDiv=function(e,t){return di("floorDiv")},e.prototype.sum=function(e,t){return di("sum")},e.prototype.prod=function(e,t){return di("prod")},e.prototype.unsortedSegmentSum=function(e,t,n){return di("unsortedSegmentSum")},e.prototype.argMin=function(e,t){return di("argMin")},e.prototype.argMax=function(e,t){return di("argMax")},e.prototype.equal=function(e,t){return di("equal")},e.prototype.notEqual=function(e,t){return di("notEqual")},e.prototype.less=function(e,t){return di("less")},e.prototype.lessEqual=function(e,t){return di("lessEqual")},e.prototype.greater=function(e,t){return di("greater")},e.prototype.greaterEqual=function(e,t){return di("greaterEqual")},e.prototype.logicalNot=function(e){return di("logicalNot")},e.prototype.logicalAnd=function(e,t){return di("logicalAnd")},e.prototype.logicalOr=function(e,t){return di("logicalOr")},e.prototype.where=function(e){return di("where")},e.prototype.select=function(e,t,n){return di("select")},e.prototype.topk=function(e,t,n){return di("topk")},e.prototype.min=function(e,t){return di("min")},e.prototype.minimum=function(e,t){return di("minimum")},e.prototype.mod=function(e,t){return di("mod")},e.prototype.max=function(e,t){return di("max")},e.prototype.maximum=function(e,t){return di("maximum")},e.prototype.all=function(e,t){return di("all")},e.prototype.any=function(e,t){return di("any")},e.prototype.squaredDifference=function(e,t){return di("squaredDifference")},e.prototype.ceil=function(e){return di("ceil")},e.prototype.floor=function(e){return di("floor")},e.prototype.round=function(e){return di("round")},e.prototype.sign=function(e){return di("sign")},e.prototype.isNaN=function(e){return di("isNaN")},e.prototype.isInf=function(e){return di("isInf")},e.prototype.isFinite=function(e){return di("isFinite")},e.prototype.pow=function(e,t){return di("pow")},e.prototype.exp=function(e){return di("exp")},e.prototype.expm1=function(e){return di("expm1")},e.prototype.log=function(e){return di("log")},e.prototype.log1p=function(e){return di("log1p")},e.prototype.sqrt=function(e){return di("sqrt")},e.prototype.rsqrt=function(e){return di("rsqrt")},e.prototype.square=function(e){return di("square")},e.prototype.reciprocal=function(e){return di("reciprocal")},e.prototype.relu=function(e){return di("relu")},e.prototype.relu6=function(e){return di("relu6")},e.prototype.prelu=function(e,t){return di("prelu")},e.prototype.elu=function(e){return di("elu")},e.prototype.eluDer=function(e,t){return di("eluDer")},e.prototype.selu=function(e){return di("selu")},e.prototype.int=function(e){return di("int")},e.prototype.clip=function(e,t,n){return di("clip")},e.prototype.abs=function(e){return di("abs")},e.prototype.complexAbs=function(e){return di("complexAbs")},e.prototype.sigmoid=function(e){return di("sigmoid")},e.prototype.softplus=function(e){return di("softplus")},e.prototype.sin=function(e){return di("sin")},e.prototype.cos=function(e){return di("cos")},e.prototype.tan=function(e){return di("tan")},e.prototype.asin=function(e){return di("asin")},e.prototype.acos=function(e){return di("acos")},e.prototype.atan=function(e){return di("atan")},e.prototype.atan2=function(e,t){return di("atan2")},e.prototype.sinh=function(e){return di("sinh")},e.prototype.cosh=function(e){return di("cosh")},e.prototype.tanh=function(e){return di("tanh")},e.prototype.asinh=function(e){return di("asinh")},e.prototype.acosh=function(e){return di("acosh")},e.prototype.atanh=function(e){return di("atanh")},e.prototype.erf=function(e){return di("erf")},e.prototype.step=function(e,t){return di("step")},e.prototype.fusedConv2d=function(e){return e.input,e.filter,e.convInfo,e.bias,e.activation,e.preluActivationWeights,di("fusedConv2d")},e.prototype.conv2d=function(e,t,n){return di("conv2d")},e.prototype.conv2dDerInput=function(e,t,n){return di("conv2dDerInput")},e.prototype.conv2dDerFilter=function(e,t,n){return di("conv2dDerFilter")},e.prototype.fusedDepthwiseConv2D=function(e){return e.input,e.filter,e.convInfo,e.bias,e.activation,e.preluActivationWeights,di("fusedDepthwiseConv2D")},e.prototype.depthwiseConv2D=function(e,t,n){return di("depthwiseConv2D")},e.prototype.depthwiseConv2DDerInput=function(e,t,n){return di("depthwiseConv2DDerInput")},e.prototype.depthwiseConv2DDerFilter=function(e,t,n){return di("depthwiseConv2DDerFilter")},e.prototype.conv3d=function(e,t,n){return di("conv3d")},e.prototype.conv3dDerInput=function(e,t,n){return di("conv3dDerInput")},e.prototype.conv3dDerFilter=function(e,t,n){return di("conv3dDerFilter")},e.prototype.maxPool=function(e,t){return di("maxPool")},e.prototype.maxPoolBackprop=function(e,t,n,r){return di("maxPoolBackprop")},e.prototype.avgPool=function(e,t){return di("avgPool")},e.prototype.avgPoolBackprop=function(e,t,n){return di("avgPoolBackprop")},e.prototype.avgPool3d=function(e,t){return di("avgPool3d")},e.prototype.avgPool3dBackprop=function(e,t,n){return di("avgPool3dBackprop")},e.prototype.maxPool3d=function(e,t){return di("maxPool3d")},e.prototype.maxPool3dBackprop=function(e,t,n,r){return di("maxPool3dBackprop")},e.prototype.reshape=function(e,t){return di("reshape")},e.prototype.cast=function(e,t){return di("cast")},e.prototype.tile=function(e,t){return di("tile")},e.prototype.pad=function(e,t,n){return di("pad")},e.prototype.transpose=function(e,t){return di("transpose")},e.prototype.gather=function(e,t,n){return di("gather")},e.prototype.gatherND=function(e,t){return di("gatherND")},e.prototype.scatterND=function(e,t,n){return di("scatterND")},e.prototype.batchToSpaceND=function(e,t,n){return di("batchToSpaceND")},e.prototype.spaceToBatchND=function(e,t,n){return di("spaceToBatchND")},e.prototype.resizeBilinear=function(e,t,n,r){return di("resizeBilinear")},e.prototype.resizeBilinearBackprop=function(e,t,n){return di("resizeBilinearBackprop")},e.prototype.resizeNearestNeighbor=function(e,t,n,r){return di("resizeNearestNeighbor")},e.prototype.resizeNearestNeighborBackprop=function(e,t,n){return di("resizeNearestNeighborBackprop")},e.prototype.batchNormalization=function(e,t,n,r,o,a){return di("batchNormalization")},e.prototype.localResponseNormalization4D=function(e,t,n,r,o){return di("localResponseNormalization4D")},e.prototype.LRNGrad=function(e,t,n,r,o,a,i){return di("LRNGrad")},e.prototype.multinomial=function(e,t,n,r){return di("multinomial")},e.prototype.oneHot=function(e,t,n,r){return di("oneHot")},e.prototype.cumsum=function(e,t,n,r){return di("cumsum")},e.prototype.nonMaxSuppression=function(e,t,n,r,o){return di("nonMaxSuppression")},e.prototype.fft=function(e){return di("fft")},e.prototype.ifft=function(e){return di("ifft")},e.prototype.complex=function(e,t){return di("complex")},e.prototype.real=function(e){return di("real")},e.prototype.imag=function(e){return di("imag")},e.prototype.cropAndResize=function(e,t,n,r,o,a){return di("cropAndResize")},e.prototype.depthToSpace=function(e,t,n){return di("depthToSpace")},e.prototype.split=function(e,t,n){return di("split")},e.prototype.sparseToDense=function(e,t,n,r){return di("sparseToDense")},e.prototype.diag=function(e){return di("diag")},e.prototype.fill=function(e,t,n){return di("fill")},e.prototype.onesLike=function(e){return di("onesLike")},e.prototype.zerosLike=function(e){return di("zerosLike")},e.prototype.linspace=function(e,t,n){return di("linspace")},e.prototype.dispose=function(){return di("dispose")},e}();function di(e){throw new Error("'"+e+"' not yet implemented or not found in the registry. Did you forget to import the kernel?")}function vi(e,t){for(var n=e.length,r=[],o=0;o<n;o++){var a=n-1-o,i=e[a]||1;(t[t.length-1-o]||1)>1&&1===i&&r.unshift(a)}return r}function mi(e,t){for(var n=[],r=0;r<t.length;r++){var o=e[e.length-r-1],a=t.length-r-1,i=t[a];(null==o||1===o&&i>1)&&n.unshift(a)}return n}function gi(e,t){for(var n=[],r=Math.max(e.length,t.length),o=0;o<r;o++){var a=e[e.length-o-1];null==a&&(a=1);var i=t[t.length-o-1];if(null==i&&(i=1),1===a)n.unshift(i);else if(1===i)n.unshift(a);else{if(a!==i)throw Error("Operands could not be broadcast together with shapes "+e+" and "+t+".");n.unshift(a)}}return n}function yi(e,t,n,r,o,a,i){void 0===i&&(i="channelsLast");var s,u=_i(t),c=u[0],l=u[1];if("channelsLast"===i)s=[c,l,e[3],e[3]];else{if("channelsFirst"!==i)throw new Error("Unknown dataFormat "+i);s=[c,l,e[1],e[1]]}return wi(e,s,n,r,o,a,!1,i)}function bi(e,t,n,r,o,a,i){void 0===i&&(i="NDHWC");var s,u,c=ki(t),l=c[0],f=c[1],h=c[2];if("NDHWC"===i)u="channelsLast",s=[l,f,h,e[4],e[4]];else{if("NCDHW"!==i)throw new Error("Unknown dataFormat "+i);u="channelsFirst",s=[l,f,h,e[1],e[1]]}return xi(e,s,n,r,o,!1,u,a)}function wi(e,t,n,r,o,a,i,s){void 0===i&&(i=!1),void 0===s&&(s="channelsLast");var u=[-1,-1,-1,-1],c=u[0],l=u[1],f=u[2],h=u[3];if("channelsLast"===s)c=e[0],l=e[1],f=e[2],h=e[3];else{if("channelsFirst"!==s)throw new Error("Unknown dataFormat "+s);c=e[0],h=e[1],l=e[2],f=e[3]}var p,d=t[0],v=t[1],m=t[3],g=_i(n),y=g[0],b=g[1],w=_i(r),x=w[0],E=w[1],_=Oi(d,x),k=Oi(v,E),O=function(e,t,n,r,o,a,i,s){var u,c,l;if("number"==typeof e){u={top:e,bottom:e,left:e,right:e,type:0===e?"VALID":"NUMBER"};var f=function(e,t,n,r,o){null==r&&(r=Ei(e,t,n));var a=e[1],i=Ci((e[0]-t+2*r)/n+1,o);un(dn(i),(function(){return"The output # of rows ("+i+") must be an integer. Change the stride and/or zero pad parameters"}));var s=Ci((a-t+2*r)/n+1,o);return un(dn(s),(function(){return"The output # of columns ("+s+") must be an integer. Change the stride and/or zero pad parameters"})),[i,s]}([t,n],a,r,e,s);c=f[0],l=f[1]}else if("same"===e){c=Math.ceil(t/r),l=Math.ceil(n/o);var h=Math.max(0,(c-1)*r+a-t),p=Math.max(0,(l-1)*o+i-n),d=Math.floor(h/2),v=h-d,m=Math.floor(p/2);u={top:d,bottom:v,left:m,right:p-m,type:"SAME"}}else{if("valid"!==e)throw Error("Unknown padding parameter: "+e);u={top:0,bottom:0,left:0,right:0,type:"VALID"},c=Math.ceil((t-a+1)/r),l=Math.ceil((n-i+1)/o)}return{padInfo:u,outHeight:c,outWidth:l}}(o,l,f,y,b,_,k,a),C=O.padInfo,I=O.outHeight,R=O.outWidth,S=i?m*h:m;return"channelsFirst"===s?p=[c,S,I,R]:"channelsLast"===s&&(p=[c,I,R,S]),{batchSize:c,dataFormat:s,inHeight:l,inWidth:f,inChannels:h,outHeight:I,outWidth:R,outChannels:S,padInfo:C,strideHeight:y,strideWidth:b,filterHeight:d,filterWidth:v,effectiveFilterHeight:_,effectiveFilterWidth:k,dilationHeight:x,dilationWidth:E,inShape:e,outShape:p,filterShape:t}}function xi(e,t,n,r,o,a,i,s){void 0===a&&(a=!1),void 0===i&&(i="channelsLast");var u=[-1,-1,-1,-1,-1],c=u[0],l=u[1],f=u[2],h=u[3],p=u[4];if("channelsLast"===i)c=e[0],l=e[1],f=e[2],h=e[3],p=e[4];else{if("channelsFirst"!==i)throw new Error("Unknown dataFormat "+i);c=e[0],p=e[1],l=e[2],f=e[3],h=e[4]}var d,v=t[0],m=t[1],g=t[2],y=t[4],b=ki(n),w=b[0],x=b[1],E=b[2],_=ki(r),k=_[0],O=_[1],C=_[2],I=Oi(v,k),R=Oi(m,O),S=Oi(g,C),A=function(e,t,n,r,o,a,i,s,u,c,l){var f,h,p,d;if("number"==typeof e){f={top:e,bottom:e,left:e,right:e,front:e,back:e,type:0===e?"VALID":"NUMBER"};var v=function(e,t,n,r,o,a){null==o&&(o=Ei(e,t,r));var i=e[1],s=e[2],u=Ci((e[0]-t+2*o)/r+1,a);un(dn(u),(function(){return"The output # of depths ("+u+") must be an integer. Change the stride and/or zero pad parameters"}));var c=Ci((i-t+2*o)/r+1,a);un(dn(c),(function(){return"The output # of rows ("+c+") must be an integer. Change the stride and/or zero pad parameters"}));var l=Ci((s-t+2*o)/r+1,a);return un(dn(l),(function(){return"The output # of columns ("+l+") must be an integer. Change the stride and/or zero pad parameters"})),[u,c,l,1]}([t,n,r,1],s,0,o,e,l);h=v[0],p=v[1],d=v[2]}else if("same"===e){var m=((h=Math.ceil(t/o))-1)*o+s-t,g=((p=Math.ceil(n/a))-1)*a+u-n,y=((d=Math.ceil(r/i))-1)*i+c-r,b=Math.floor(m/2),w=m-b,x=Math.floor(g/2),E=g-x,_=Math.floor(y/2);f={top:x,bottom:E,left:_,right:y-_,front:b,back:w,type:"SAME"}}else{if("valid"!==e)throw Error("Unknown padding parameter: "+e);f={top:0,bottom:0,left:0,right:0,front:0,back:0,type:"VALID"},h=Math.ceil((t-s+1)/o),p=Math.ceil((n-u+1)/a),d=Math.ceil((r-c+1)/i)}return{padInfo:f,outDepth:h,outHeight:p,outWidth:d}}(o,l,f,h,w,x,E,I,R,S,s),P=A.padInfo,T=A.outDepth,D=A.outHeight,N=A.outWidth,M=a?y*p:y;return"channelsFirst"===i?d=[c,M,T,D,N]:"channelsLast"===i&&(d=[c,T,D,N,M]),{batchSize:c,dataFormat:i,inDepth:l,inHeight:f,inWidth:h,inChannels:p,outDepth:T,outHeight:D,outWidth:N,outChannels:M,padInfo:P,strideDepth:w,strideHeight:x,strideWidth:E,filterDepth:v,filterHeight:m,filterWidth:g,effectiveFilterDepth:I,effectiveFilterHeight:R,effectiveFilterWidth:S,dilationDepth:k,dilationHeight:O,dilationWidth:C,inShape:e,outShape:d,filterShape:t}}function Ei(e,t,n,r){void 0===r&&(r=1);var o=Oi(t,r);return Math.floor((e[0]*(n-1)-n+o)/2)}function _i(e){return"number"==typeof e?[e,e,e]:2===e.length?[e[0],e[1],1]:e}function ki(e){return"number"==typeof e?[e,e,e]:e}function Oi(e,t){return t<=1?e:e+(e-1)*(t-1)}function Ci(e,t){if(!t)return e;switch(t){case"round":return Math.round(e);case"ceil":return Math.ceil(e);case"floor":return Math.floor(e);default:throw new Error("Unknown roundingMode "+t)}}function Ii(e){var t=_i(e),n=t[0],r=t[1],o=t[2];return 1===n&&1===r&&1===o}function Ri(e,t){return Ii(e)||Ii(t)}function Si(e){if("NHWC"===e)return"channelsLast";if("NCHW"===e)return"channelsFirst";throw new Error("Unknown dataFormat "+e)}function Ai(e,t,n){if("complex64"===t){if("complex64"===e.dtype)return e.clone();var r=Zo(e.shape),o=e.toFloat(),a=n.complex(o,r);return r.dispose(),o.dispose(),a}if(!Cn(e.dtype,t))return mr.makeTensorFromDataId(e.dataId,e.shape,t);if("complex64"===e.dtype){var i=n.real(e);return a=i.cast(t),i.dispose(),a}if("int32"===t)return n.int(e);if("bool"===t){var s=Go(0,e.dtype);return a=n.notEqual(e,s),s.dispose(),a}throw new Error("Error in Cast: failed to cast "+e.dtype+" to "+t)}function Pi(e,t){return mr.makeTensorFromDataId(e.dataId,t,e.dtype)}function Ti(e,t,n){var r=(t-e)/(n-1),o=zn(n,"float32");o[0]=e;for(var a=1;a<o.length;a++)o[a]=o[a-1]+r;return Xo(o,"float32")}Object.freeze({castTensor:Ai,reshapeTensor:Pi,linspaceImpl:Ti,upcastType:ur,axesAreInnerMostDims:Ao,combineLocations:Po,computeOutAndReduceShapes:To,expandShapeToKeepDim:Do,assertAxesAreInnerMostDims:No,getAxesPermutation:Mo,getUndoAxesPermutation:Fo,getInnerMostAxes:Bo,getBroadcastDims:vi,getReductionAxes:mi,assertAndGetBroadcastShape:gi,assertParamsConsistent:jo,computeOutShape:Lo,computePool2DInfo:yi,computePool3DInfo:bi,computeConv2DInfo:wi,computeConv3DInfo:xi,computeDefaultPad:Ei,tupleValuesAreOne:Ii,eitherStridesOrDilationsAreOne:Ri,convertConv2DDataFormat:Si});function Di(e,t){if(e.length!==t.length)throw new Error("Cannot merge real and imag arrays of different lengths. real:"+e.length+", imag: "+t.length+".");for(var n=new Float32Array(2*e.length),r=0;r<n.length;r+=2)n[r]=e[r/2],n[r+1]=t[r/2];return n}function Ni(e,t){return{real:e[2*t],imag:e[2*t+1]}}function Mi(e,t,n,r){e[2*r]=t,e[2*r+1]=n}function Fi(e,t,n){var r=(n?2:-2)*Math.PI*(e/t);return{real:Math.cos(r),imag:Math.sin(r)}}function Bi(e,t,n,r,o){for(var a=Array.from(t).map((function(e,t){return{score:e,boxIndex:t}})).filter((function(e){return e.score>o})).sort((function(e,t){return t.score-e.score})),i=[],s=0;s<a.length;s++){var u=a[s],c=u.score,l=u.boxIndex;if(c<o)break;for(var f=!1,h=i.length-1;h>=0;--h)if(ji(e,l,i[h])>=r){f=!0;break}if(!f&&(i.push(l),i.length>=n))break}return Xo(i,"int32")}function ji(e,t,n){var r=e.subarray(4*t,4*t+4),o=e.subarray(4*n,4*n+4),a=Math.min(r[0],r[2]),i=Math.min(r[1],r[3]),s=Math.max(r[0],r[2]),u=Math.max(r[1],r[3]),c=Math.min(o[0],o[2]),l=Math.min(o[1],o[3]),f=Math.max(o[0],o[2]),h=Math.max(o[1],o[3]),p=(s-a)*(u-i),d=(f-c)*(h-l);if(p<=0||d<=0)return 0;var v=Math.max(a,c),m=Math.max(i,l),g=Math.min(s,f),y=Math.min(u,h),b=Math.max(g-v,0)*Math.max(y-m,0);return b/(p+d-b)}function Li(e,t,n){var r=new Array(e.rank).fill(0),o=e.shape.slice();return t.map((function(t){o[n]=t;var a=e.slice(r,o);return r[n]+=t,a}))}function zi(e,t){for(var n=new Array(e.rank),r=0;r<n.length;r++)n[r]=e.shape[r]*t[r];var o=xa(n,e.dtype);for(r=0;r<o.values.length;++r){for(var a=o.indexToLoc(r),i=new Array(e.rank),s=0;s<i.length;s++)i[s]=a[s]%e.shape[s];var u=e.locToIndex(i);o.values[r]=e.values[u]}return o.toTensor()}function Hi(e,t,n,r,o){for(var a=t[t.length-1],i=[e.length/a,a],s=i[0],u=i[1],c=En(n,s*r),l=En("int32",s*r),f=0;f<s;f++){for(var h=f*u,p=e.subarray(h,h+u),d=[],v=0;v<p.length;v++)d.push({value:p[v],index:v});d.sort((function(e,t){return t.value-e.value}));var m=f*r,g=c.subarray(m,m+r),y=l.subarray(m,m+r);for(v=0;v<r;v++)g[v]=d[v].value,y[v]=d[v].index}var b=t.slice();return b[b.length-1]=r,[Uo(c,b,n),Uo(l,b,"int32")]}function Wi(e,t){for(var n=[],r=0;r<t.length;r++)t[r]&&n.push(r);var o=xa(e,"int32"),a=xa([n.length,e.length],"int32");for(r=0;r<n.length;r++){var i=o.indexToLoc(n[r]),s=r*e.length;a.values.set(i,s)}return a.toTensor()}var Vi=function(e,t){this.outputShape=[],this.outputShape=e,this.variableNames=t.map((function(e,t){return"T"+t}));var n=[];this.variableNames.forEach((function(e){n.push("float v"+e+" = get"+e+"AtOutCoords();")}));var r=this.variableNames.map((function(e){return"v"+e})).join(" + ");this.userCode="\n void main() {\n "+n.join("\n ")+"\n\n float result = "+r+";\n setOutput(result);\n }\n "},Ui=function(e,t){this.outputShape=[],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e,this.variableNames=t.map((function(e,t){return"T"+t}));var n=[];this.variableNames.forEach((function(e){n.push("vec4 v"+e+" = get"+e+"AtOutCoords();")}));var r=this.variableNames.map((function(e){return"v"+e})).join(" + ");this.userCode="\n void main() {\n "+n.join("\n ")+"\n\n vec4 result = "+r+";\n setOutput(result);\n }\n "},qi=function(e,t,n){this.variableNames=["A"];var r=e.windowSize,o=e.batchSize,a=e.inSize,i=Math.ceil(a/r);n||this.variableNames.push("bestIndicesA"),this.outputShape=[o,i];var s="max"===t?">":"<",u=n?"inOffset + i;":"round(getBestIndicesA(batch, inOffset + i));";this.userCode="\n void main() {\n ivec2 coords = getOutputCoords();\n int batch = coords[0];\n int outIdx = coords[1];\n int inOffset = outIdx * "+r+";\n\n int bestIndex = inOffset;\n float bestValue = getA(batch, bestIndex);\n\n for (int i = 0; i < "+r+"; i++) {\n int inIdx = "+u+";\n float candidate = getA(batch, inIdx);\n if (candidate "+s+" bestValue) {\n bestValue = candidate;\n bestIndex = inIdx;\n }\n }\n setOutput(float(bestIndex));\n }\n "};function Gi(e,t){return["x","y","z","w","u","v"].slice(0,t).map((function(t){return e+"."+t}))}function Xi(e,t){return 1===t?[e]:Gi(e,t)}function Ki(){var e,t,n,r,o,a,i,s,u,c;return 2===Yt().getNumber("WEBGL_VERSION")?(e="#version 300 es",t="in",n="out",r="in",o="texture",a="outputColor",i="out vec4 outputColor;",s="\n bool isnan_custom(float val) {\n return (val > 0.0 || val < 0.0) ? false : val != 0.0;\n }\n\n bvec4 isnan_custom(vec4 val) {\n return bvec4(isnan_custom(val.x),\n isnan_custom(val.y), isnan_custom(val.z), isnan_custom(val.w));\n }\n\n #define isnan(value) isnan_custom(value)\n ",u="",c="\n #define round(value) newRound(value)\n int newRound(float value) {\n return int(floor(value + 0.5));\n }\n\n ivec4 newRound(vec4 value) {\n return ivec4(floor(value + vec4(0.5)));\n }\n "):(e="",t="attribute",n="varying",r="varying",o="texture2D",a="gl_FragColor",i="",s="\n #define isnan(value) isnan_custom(value)\n bool isnan_custom(float val) {\n return (val > 0. || val < 1. || val == 0.) ? false : true;\n }\n bvec4 isnan_custom(vec4 val) {\n return bvec4(isnan(val.x), isnan(val.y), isnan(val.z), isnan(val.w));\n }\n ",u="\n uniform float INFINITY;\n\n bool isinf(float val) {\n return abs(val) == INFINITY;\n }\n bvec4 isinf(vec4 val) {\n return equal(abs(val), vec4(INFINITY));\n }\n ",c="\n int round(float value) {\n return int(floor(value + 0.5));\n }\n\n ivec4 round(vec4 value) {\n return ivec4(floor(value + vec4(0.5)));\n }\n "),{version:e,attribute:t,varyingVs:n,varyingFs:r,texture2D:o,output:a,defineOutput:i,defineSpecialNaN:s,defineSpecialInf:u,defineRound:c}}function $i(e,t,n){void 0===n&&(n="index");var r=Fn(t);return r.map((function(t,o){return"int "+e[o]+" = "+n+" / "+t+"; "+(o===r.length-1?"int "+e[o+1]+" = "+n+" - "+e[o]+" * "+t:"index -= "+e[o]+" * "+t)+";"})).join("")}function Yi(e){var t=Fn(e).map((function(e){return e.toString()}));return"\n int getFlatIndex(ivec3 coords) {\n return coords.x * "+t[0]+" + coords.y * "+t[1]+" + coords.z;\n }\n"}var Ji="\n const float FLOAT_MAX = 1.70141184e38;\n const float FLOAT_MIN = 1.17549435e-38;\n\n lowp vec4 encode_float(highp float v) {\n if (isnan(v)) {\n return vec4(255, 255, 255, 255);\n }\n\n highp float av = abs(v);\n\n if(av < FLOAT_MIN) {\n return vec4(0.0, 0.0, 0.0, 0.0);\n } else if(v > FLOAT_MAX) {\n return vec4(0.0, 0.0, 128.0, 127.0) / 255.0;\n } else if(v < -FLOAT_MAX) {\n return vec4(0.0, 0.0, 128.0, 255.0) / 255.0;\n }\n\n highp vec4 c = vec4(0,0,0,0);\n\n highp float e = floor(log2(av));\n highp float m = exp2(fract(log2(av))) - 1.0;\n\n c[2] = floor(128.0 * m);\n m -= c[2] / 128.0;\n c[1] = floor(32768.0 * m);\n m -= c[1] / 32768.0;\n c[0] = floor(8388608.0 * m);\n\n highp float ebias = e + 127.0;\n c[3] = floor(ebias / 2.0);\n ebias -= c[3] * 2.0;\n c[2] += floor(ebias) * 128.0;\n\n c[3] += 128.0 * step(0.0, -v);\n\n return c / 255.0;\n }\n";function Zi(e,t,n,r){var o=[];e.forEach((function(e){var t=hn(e.shapeInfo.logicalShape);e.shapeInfo.isUniform?o.push("uniform float "+e.name+(t>1?"["+t+"]":"")+";"):(o.push("uniform sampler2D "+e.name+";"),o.push("uniform int offset"+e.name+";"))}));var a,i,s=o.join("\n"),u=e.map((function(e){return function(e,t,n){void 0===n&&(n=!1);var r="";r+=n?es(e):Qi(e);var o=e.shapeInfo.logicalShape,a=t.logicalShape;return o.length<=a.length&&(r+=n?function(e,t){var n,r=e.name,o=r.charAt(0).toUpperCase()+r.slice(1),a="get"+o+"AtOutCoords",i=e.shapeInfo.logicalShape.length,s=t.logicalShape.length,u=vi(e.shapeInfo.logicalShape,t.logicalShape),c=ss(s),l=s-i,f=["x","y","z","w","u","v"];n=0===i?"":s<2&&u.length>=1?"coords = 0;":u.map((function(e){return"coords."+f[e+l]+" = 0;"})).join("\n");var h;h=s<2&&i>0?"coords":e.shapeInfo.logicalShape.map((function(e,t){return"coords."+f[t+l]})).join(", ");var p="return outputValue;",d=1===hn(e.shapeInfo.logicalShape),v=1===hn(t.logicalShape);if(1!==i||d||v){if(d&&!v)p=1===s?"\n return vec4(outputValue.x, outputValue.x, 0., 0.);\n ":"\n return vec4(outputValue.x);\n ";else if(u.length){var m=i-2,g=i-1;u.indexOf(m)>-1&&u.indexOf(g)>-1?p="return vec4(outputValue.x);":u.indexOf(m)>-1?p="return vec4(outputValue.x, outputValue.y, outputValue.x, outputValue.y);":u.indexOf(g)>-1&&(p="return vec4(outputValue.xx, outputValue.zz);")}}else p="\n return vec4(outputValue.xy, outputValue.xy);\n ";return"\n vec4 "+a+"() {\n "+c+" coords = getOutputCoords();\n "+n+"\n vec4 outputValue = get"+o+"("+h+");\n "+p+"\n }\n "}(e,t):function(e,t){var n=e.name,r=n.charAt(0).toUpperCase()+n.slice(1),o="get"+r+"AtOutCoords",a=t.texShape,i=e.shapeInfo.texShape,s=e.shapeInfo.logicalShape.length,u=t.logicalShape.length;if(!e.shapeInfo.isUniform&&s===u&&null==e.shapeInfo.flatOffset&&pn(i,a))return"\n float "+o+"() {\n return sampleTexture("+n+", resultUV);\n }\n ";var c,l=ss(u),f=vi(e.shapeInfo.logicalShape,t.logicalShape),h=u-s,p=["x","y","z","w","u","v"];c=0===s?"":u<2&&f.length>=1?"coords = 0;":f.map((function(e){return"coords."+p[e+h]+" = 0;"})).join("\n");var d;return d=u<2&&s>0?"coords":e.shapeInfo.logicalShape.map((function(e,t){return"coords."+p[t+h]})).join(", "),"\n float "+o+"() {\n "+l+" coords = getOutputCoords();\n "+c+"\n return get"+r+"("+d+");\n }\n "}(e,t)),r}(e,t,r)})).join("\n"),c=t.texShape,l=Ki(),f=function(e){return"\n float sampleTexture(sampler2D textureSampler, vec2 uv) {\n return "+e.texture2D+"(textureSampler, uv).r;\n }\n "}(l),h=function(e){return e.version+"\n precision highp float;\n precision highp int;\n precision highp sampler2D;\n "+e.varyingFs+" vec2 resultUV;\n "+e.defineOutput+"\n const vec2 halfCR = vec2(0.5, 0.5);\n\n struct ivec5\n {\n int x;\n int y;\n int z;\n int w;\n int u;\n };\n\n struct ivec6\n {\n int x;\n int y;\n int z;\n int w;\n int u;\n int v;\n };\n\n uniform float NAN;\n "+e.defineSpecialNaN+"\n "+e.defineSpecialInf+"\n "+e.defineRound+"\n\n int imod(int x, int y) {\n return x - y * (x / y);\n }\n\n int idiv(int a, int b, float sign) {\n int res = a / b;\n int mod = imod(a, b);\n if (sign < 0. && mod != 0) {\n res -= 1;\n }\n return res;\n }\n\n //Based on the work of Dave Hoskins\n //https://www.shadertoy.com/view/4djSRW\n #define HASHSCALE1 443.8975\n float random(float seed){\n vec2 p = resultUV * seed;\n vec3 p3 = fract(vec3(p.xyx) * HASHSCALE1);\n p3 += dot(p3, p3.yzx + 19.19);\n return fract((p3.x + p3.y) * p3.z);\n }\n\n "+ts+"\n "+ns+"\n "+rs+"\n "}(l);return t.isPacked?(a=function(e,t){switch(e.length){case 0:return"\n int getOutputCoords() {\n return 0;\n }\n ";case 1:return function(e,t){var n=[Math.ceil(t[0]/2),Math.ceil(t[1]/2)];return 1===n[0]?"\n int getOutputCoords() {\n return 2 * int(resultUV.x * "+n[1]+".0);\n }\n ":1===n[1]?"\n int getOutputCoords() {\n return 2 * int(resultUV.y * "+n[0]+".0);\n }\n ":"\n int getOutputCoords() {\n ivec2 resTexRC = ivec2(resultUV.yx *\n vec2("+n[0]+", "+n[1]+"));\n return 2 * (resTexRC.x * "+n[1]+" + resTexRC.y);\n }\n "}(0,t);case 2:return function(e,t){var n=[Math.ceil(t[0]/2),Math.ceil(t[1]/2)];if(pn(e,t))return"\n ivec2 getOutputCoords() {\n return 2 * ivec2(resultUV.yx * vec2("+n[0]+", "+n[1]+"));\n }\n ";var r=Math.ceil(e[1]/2);return"\n ivec2 getOutputCoords() {\n ivec2 resTexRC = ivec2(resultUV.yx *\n vec2("+n[0]+", "+n[1]+"));\n\n int index = resTexRC.x * "+n[1]+" + resTexRC.y;\n int r = 2 * (index / "+r+");\n int c = imod(index, "+r+") * 2;\n\n return ivec2(r, c);\n }\n "}(e,t);case 3:return n=e,r=t,o=[Math.ceil(r[0]/2),Math.ceil(r[1]/2)],i=(a=Math.ceil(n[2]/2))*Math.ceil(n[1]/2),"\n ivec3 getOutputCoords() {\n ivec2 resTexRC = ivec2(resultUV.yx *\n vec2("+o[0]+", "+o[1]+"));\n int index = resTexRC.x * "+o[1]+" + resTexRC.y;\n\n int b = index / "+i+";\n index -= b * "+i+";\n\n int r = 2 * (index / "+a+");\n int c = imod(index, "+a+") * 2;\n\n return ivec3(b, r, c);\n }\n ";default:return function(e,t){for(var n=[Math.ceil(t[0]/2),Math.ceil(t[1]/2)],r=Math.ceil(e[e.length-1]/2),o=r*Math.ceil(e[e.length-2]/2),a=o,i="",s="b, r, c",u=2;u<e.length-1;u++)i="\n int b"+u+" = index / "+(a*=e[e.length-u-1])+";\n index -= b"+u+" * "+a+";\n "+i,s="b"+u+", "+s;return"\n ivec"+e.length+" getOutputCoords() {\n ivec2 resTexRC = ivec2(resultUV.yx *\n vec2("+n[0]+", "+n[1]+"));\n int index = resTexRC.x * "+n[1]+" + resTexRC.y;\n\n "+i+"\n\n int b = index / "+o+";\n index -= b * "+o+";\n\n int r = 2 * (index / "+r+");\n int c = imod(index, "+r+") * 2;\n\n return ivec"+e.length+"("+s+");\n }\n "}(e,t)}var n,r,o,a,i}(t.logicalShape,c),i=function(e){return"\n void setOutput(vec4 val) {\n "+e.output+" = val;\n }\n "}(l)):(a=function(e,t){switch(e.length){case 0:return"\n int getOutputCoords() {\n return 0;\n }\n ";case 1:return function(e,t){return 1===t[0]?"\n int getOutputCoords() {\n return int(resultUV.x * "+t[1]+".0);\n }\n ":1===t[1]?"\n int getOutputCoords() {\n return int(resultUV.y * "+t[0]+".0);\n }\n ":"\n int getOutputCoords() {\n ivec2 resTexRC = ivec2(resultUV.yx *\n vec2("+t[0]+", "+t[1]+"));\n return resTexRC.x * "+t[1]+" + resTexRC.y;\n }\n "}(0,t);case 2:return function(e,t){return pn(e,t)?"\n ivec2 getOutputCoords() {\n return ivec2(resultUV.yx * vec2("+t[0]+", "+t[1]+"));\n }\n ":1===e[1]?"\n ivec2 getOutputCoords() {\n ivec2 resTexRC = ivec2(resultUV.yx *\n vec2("+t[0]+", "+t[1]+"));\n int index = resTexRC.x * "+t[1]+" + resTexRC.y;\n return ivec2(index, 0);\n }\n ":1===e[0]?"\n ivec2 getOutputCoords() {\n ivec2 resTexRC = ivec2(resultUV.yx *\n vec2("+t[0]+", "+t[1]+"));\n int index = resTexRC.x * "+t[1]+" + resTexRC.y;\n return ivec2(0, index);\n }\n ":"\n ivec2 getOutputCoords() {\n ivec2 resTexRC = ivec2(resultUV.yx *\n vec2("+t[0]+", "+t[1]+"));\n int index = resTexRC.x * "+t[1]+" + resTexRC.y;\n int r = index / "+e[1]+";\n int c = index - r * "+e[1]+";\n return ivec2(r, c);\n }\n "}(e,t);case 3:return n=t,r=$i(["r","c","d"],e),"\n ivec3 getOutputCoords() {\n ivec2 resTexRC = ivec2(resultUV.yx *\n vec2("+n[0]+", "+n[1]+"));\n int index = resTexRC.x * "+n[1]+" + resTexRC.y;\n "+r+"\n return ivec3(r, c, d);\n }\n ";case 4:return function(e,t){var n=$i(["r","c","d","d2"],e);return"\n ivec4 getOutputCoords() {\n ivec2 resTexRC = ivec2(resultUV.yx *\n vec2("+t[0]+", "+t[1]+"));\n int index = resTexRC.x * "+t[1]+" + resTexRC.y;\n "+n+"\n return ivec4(r, c, d, d2);\n }\n "}(e,t);case 5:return function(e,t){var n=$i(["r","c","d","d2","d3"],e);return"\n ivec5 getOutputCoords() {\n ivec2 resTexRC = ivec2(resultUV.yx * vec2("+t[0]+",\n "+t[1]+"));\n\n int index = resTexRC.x * "+t[1]+" + resTexRC.y;\n\n "+n+"\n\n ivec5 outShape = ivec5(r, c, d, d2, d3);\n return outShape;\n }\n "}(e,t);case 6:return function(e,t){var n=$i(["r","c","d","d2","d3","d4"],e);return"\n ivec6 getOutputCoords() {\n ivec2 resTexRC = ivec2(resultUV.yx *\n vec2("+t[0]+", "+t[1]+"));\n int index = resTexRC.x * "+t[1]+" + resTexRC.y;\n\n "+n+"\n\n ivec6 result = ivec6(r, c, d, d2, d3, d4);\n return result;\n }\n "}(e,t);default:throw new Error(e.length+"-D output sampling is not yet supported")}var n,r}(t.logicalShape,c),i=function(e){return"\n void setOutput(float val) {\n "+e.output+" = vec4(val, 0, 0, 0);\n }\n "}(l)),r&&(h+=os),[h,f,i,s,a,u,n].join("\n")}function Qi(e){var t=e.shapeInfo.logicalShape;switch(t.length){case 0:return function(e){var t=e.name,n="get"+t.charAt(0).toUpperCase()+t.slice(1);if(e.shapeInfo.isUniform)return"float "+n+"() {return "+t+";}";var r=e.shapeInfo.texShape,o=r[0],a=r[1];if(1===o&&1===a)return"\n float "+n+"() {\n return sampleTexture("+t+", halfCR);\n }\n ";var i=e.shapeInfo.texShape;return"\n float "+n+"() {\n vec2 uv = uvFromFlat("+i[0]+", "+i[1]+", "+as(t)+");\n return sampleTexture("+t+", uv);\n }\n "}(e);case 1:return function(e){var t=e.name,n="get"+t.charAt(0).toUpperCase()+t.slice(1);if(e.shapeInfo.isUniform)return"\n float "+n+"(int index) {\n "+is(e)+"\n }\n ";var r=e.shapeInfo.texShape,o=r[0],a=r[1];if(1===a&&1===o)return"\n float "+n+"(int index) {\n return sampleTexture("+t+", halfCR);\n }\n ";var i=as(t);return 1===a?"\n float "+n+"(int index) {\n vec2 uv = vec2(0.5, (float(index + "+i+") + 0.5) / "+o+".0);\n return sampleTexture("+t+", uv);\n }\n ":1===o?"\n float "+n+"(int index) {\n vec2 uv = vec2((float(index + "+i+") + 0.5) / "+a+".0, 0.5);\n return sampleTexture("+t+", uv);\n }\n ":"\n float "+n+"(int index) {\n vec2 uv = uvFromFlat("+o+", "+a+", index + "+i+");\n return sampleTexture("+t+", uv);\n }\n "}(e);case 2:return function(e){var t=e.shapeInfo.logicalShape,n=e.name,r="get"+n.charAt(0).toUpperCase()+n.slice(1),o=e.shapeInfo.texShape;if(null!=o&&pn(t,o)){var a=o[0];return"\n float "+r+"(int row, int col) {\n vec2 uv = (vec2(col, row) + halfCR) / vec2("+o[1]+".0, "+a+".0);\n return sampleTexture("+n+", uv);\n }\n "}var i=xn(t),s=i.newShape,u=i.keptDims,c=s;if(c.length<t.length)return"\n "+Qi(us(e,c))+"\n float "+r+"(int row, int col) {\n return "+r+"("+cs(["row","col"],u)+");\n }\n ";if(e.shapeInfo.isUniform)return"\n float "+r+"(int row, int col) {\n int index = round(dot(vec2(row, col), vec2("+t[1]+", 1)));\n "+is(e)+"\n }\n ";var l=o[0],f=o[1],h=as(n);return 1===f?"\n float "+r+"(int row, int col) {\n float index = dot(vec3(row, col, "+h+"), vec3("+t[1]+", 1, 1));\n vec2 uv = vec2(0.5, (index + 0.5) / "+l+".0);\n return sampleTexture("+n+", uv);\n }\n ":1===l?"\n float "+r+"(int row, int col) {\n float index = dot(vec3(row, col, "+h+"), vec3("+t[1]+", 1, 1));\n vec2 uv = vec2((index + 0.5) / "+f+".0, 0.5);\n return sampleTexture("+n+", uv);\n }\n ":"\n float "+r+"(int row, int col) {\n // Explicitly use integer operations as dot() only works on floats.\n int index = row * "+t[1]+" + col + "+h+";\n vec2 uv = uvFromFlat("+l+", "+f+", index);\n return sampleTexture("+n+", uv);\n }\n"}(e);case 3:return function(e){var t=e.shapeInfo.logicalShape,n=e.name,r="get"+n.charAt(0).toUpperCase()+n.slice(1),o=t[1]*t[2],a=t[2],i=xn(t),s=i.newShape,u=i.keptDims,c=s;if(c.length<t.length)return"\n "+Qi(us(e,c))+"\n float "+r+"(int row, int col, int depth) {\n return "+r+"("+cs(["row","col","depth"],u)+");\n }\n ";if(e.shapeInfo.isUniform)return"\n float "+r+"(int row, int col, int depth) {\n int index = round(dot(vec3(row, col, depth),\n vec3("+o+", "+a+", 1)));\n "+is(e)+"\n }\n ";var l=e.shapeInfo.texShape,f=l[0],h=l[1],p=e.shapeInfo.flatOffset;return h===o&&null==p?"\n float "+r+"(int row, int col, int depth) {\n float texR = float(row);\n float texC = dot(vec2(col, depth), vec2("+a+", 1));\n vec2 uv = (vec2(texC, texR) + halfCR) /\n vec2("+h+".0, "+f+".0);\n return sampleTexture("+n+", uv);\n }\n ":h===a&&null==p?"\n float "+r+"(int row, int col, int depth) {\n float texR = dot(vec2(row, col), vec2("+t[1]+", 1));\n float texC = float(depth);\n vec2 uv = (vec2(texC, texR) + halfCR) / vec2("+h+".0, "+f+".0);\n return sampleTexture("+n+", uv);\n }\n ":"\n float "+r+"(int row, int col, int depth) {\n // Explicitly use integer operations as dot() only works on floats.\n int index = row * "+o+" + col * "+a+" + depth + "+as(n)+";\n vec2 uv = uvFromFlat("+f+", "+h+", index);\n return sampleTexture("+n+", uv);\n }\n "}(e);case 4:return function(e){var t=e.shapeInfo.logicalShape,n=e.name,r="get"+n.charAt(0).toUpperCase()+n.slice(1),o=t[3],a=t[2]*o,i=t[1]*a,s=xn(t),u=s.newShape,c=s.keptDims;if(u.length<t.length)return"\n "+Qi(us(e,u))+"\n float "+r+"(int row, int col, int depth, int depth2) {\n return "+r+"("+cs(["row","col","depth","depth2"],c)+");\n }\n ";if(e.shapeInfo.isUniform)return"\n float "+r+"(int row, int col, int depth, int depth2) {\n int index = round(dot(vec4(row, col, depth, depth2),\n vec4("+i+", "+a+", "+o+", 1)));\n "+is(e)+"\n }\n ";var l=e.shapeInfo.flatOffset,f=e.shapeInfo.texShape,h=f[0],p=f[1];return p===i&&null==l?"\n float "+r+"(int row, int col, int depth, int depth2) {\n float texR = float(row);\n float texC =\n dot(vec3(col, depth, depth2),\n vec3("+a+", "+o+", 1));\n vec2 uv = (vec2(texC, texR) + halfCR) /\n vec2("+p+".0, "+h+".0);\n return sampleTexture("+n+", uv);\n }\n ":p===o&&null==l?"\n float "+r+"(int row, int col, int depth, int depth2) {\n float texR = dot(vec3(row, col, depth),\n vec3("+t[1]*t[2]+", "+t[2]+", 1));\n float texC = float(depth2);\n vec2 uv = (vec2(texC, texR) + halfCR) /\n vec2("+p+".0, "+h+".0);\n return sampleTexture("+n+", uv);\n }\n ":"\n float "+r+"(int row, int col, int depth, int depth2) {\n // Explicitly use integer operations as dot() only works on floats.\n int index = row * "+i+" + col * "+a+" +\n depth * "+o+" + depth2;\n vec2 uv = uvFromFlat("+h+", "+p+", index + "+as(n)+");\n return sampleTexture("+n+", uv);\n }\n "}(e);case 5:return function(e){var t=e.shapeInfo.logicalShape,n=e.name,r="get"+n.charAt(0).toUpperCase()+n.slice(1),o=t[4],a=t[3]*o,i=t[2]*a,s=t[1]*i,u=xn(t),c=u.newShape,l=u.keptDims;if(c.length<t.length)return"\n "+Qi(us(e,c))+"\n float "+r+"(int row, int col, int depth, int depth2, int depth3) {\n return "+r+"("+cs(["row","col","depth","depth2","depth3"],l)+");\n }\n ";if(e.shapeInfo.isUniform)return"\n float "+r+"(int row, int col, int depth, int depth2, int depth3) {\n float index = dot(\n vec4(row, col, depth, depth2),\n vec4("+s+", "+i+", "+a+", "+o+")) +\n depth3;\n "+is(e)+"\n }\n ";var f=e.shapeInfo.flatOffset,h=e.shapeInfo.texShape,p=h[0],d=h[1];return d===s&&null==f?"\n float "+r+"(int row, int col, int depth, int depth2, int depth3) {\n int texR = row;\n float texC = dot(vec4(col, depth, depth2, depth3),\n vec4("+i+", "+a+", "+o+", 1));\n vec2 uv = (vec2(texC, texR) + halfCR) /\n vec2("+d+".0, "+p+".0);\n return sampleTexture("+n+", uv);\n }\n ":d===o&&null==f?"\n float "+r+"(int row, int col, int depth, int depth2, int depth3) {\n float texR = dot(\n vec4(row, col, depth, depth2),\n vec4("+t[1]*t[2]*t[3]+",\n "+t[2]*t[3]+", "+t[3]+", 1));\n int texC = depth3;\n vec2 uv = (vec2(texC, texR) + halfCR) /\n vec2("+d+".0, "+p+".0);\n return sampleTexture("+n+", uv);\n }\n ":"\n float "+r+"(int row, int col, int depth, int depth2, int depth3) {\n // Explicitly use integer operations as dot() only works on floats.\n int index = row * "+s+" + col * "+i+" + depth * "+a+" +\n depth2 * "+o+" + depth3 + "+as(n)+";\n vec2 uv = uvFromFlat("+p+", "+d+", index);\n return sampleTexture("+n+", uv);\n }\n "}(e);case 6:return function(e){var t=e.shapeInfo.logicalShape,n=e.name,r="get"+n.charAt(0).toUpperCase()+n.slice(1),o=xn(t),a=o.newShape,i=o.keptDims;if(a.length<t.length)return"\n "+Qi(us(e,a))+"\n float "+r+"(int row, int col, int depth,\n int depth2, int depth3, int depth4) {\n return "+r+"("+cs(["row","col","depth","depth2","depth3","depth4"],i)+");\n }\n ";var s=t[5],u=t[4]*s,c=t[3]*u,l=t[2]*c,f=t[1]*l;if(e.shapeInfo.isUniform)return"\n float "+r+"(int row, int col, int depth,\n int depth2, int depth3, int depth4) {\n int index = round(dot(\n vec4(row, col, depth, depth2),\n vec4("+f+", "+l+", "+c+", "+u+")) +\n dot(\n vec2(depth3, depth4),\n vec2("+s+", 1)));\n "+is(e)+"\n }\n ";var h=e.shapeInfo.flatOffset,p=e.shapeInfo.texShape,d=p[0],v=p[1];return v===f&&null==h?"\n float "+r+"(int row, int col, int depth,\n int depth2, int depth3, int depth4) {\n int texR = row;\n float texC = dot(vec4(col, depth, depth2, depth3),\n vec4("+l+", "+c+", "+u+", "+s+")) +\n float(depth4);\n vec2 uv = (vec2(texC, texR) + halfCR) /\n vec2("+v+".0, "+d+".0);\n return sampleTexture("+n+", uv);\n }\n ":v===s&&null==h?"\n float "+r+"(int row, int col, int depth,\n int depth2, int depth3, int depth4) {\n float texR = dot(vec4(row, col, depth, depth2),\n vec4("+t[1]*t[2]*t[3]*t[4]+",\n "+t[2]*t[3]*t[4]+",\n "+t[3]*t[4]+",\n "+t[4]+")) + float(depth3);\n int texC = depth4;\n vec2 uv = (vec2(texC, texR) + halfCR) /\n vec2("+v+".0, "+d+".0);\n return sampleTexture("+n+", uv);\n }\n ":"\n float "+r+"(int row, int col, int depth,\n int depth2, int depth3, int depth4) {\n // Explicitly use integer operations as dot() only works on floats.\n int index = row * "+f+" + col * "+l+" + depth * "+c+" +\n depth2 * "+u+" + depth3 * "+s+" + depth4 + "+as(n)+";\n vec2 uv = uvFromFlat("+d+", "+v+", index);\n return sampleTexture("+n+", uv);\n }\n "}(e);default:throw new Error(t.length+"-D input sampling is not yet supported")}}function es(e){var t;switch(e.shapeInfo.logicalShape.length){case 0:return"\n vec4 "+("get"+(t=e.name).charAt(0).toUpperCase()+t.slice(1))+"() {\n return "+Ki().texture2D+"("+t+", halfCR);\n }\n ";case 1:return function(e){var t=e.name,n="get"+t.charAt(0).toUpperCase()+t.slice(1),r=e.shapeInfo.texShape,o=[Math.ceil(r[0]/2),Math.ceil(r[1]/2)],a=Ki();return"\n vec4 "+n+"(int index) {\n vec2 uv = packedUVfrom1D(\n "+o[0]+", "+o[1]+", index);\n return "+a.texture2D+"("+t+", uv);\n }\n "}(e);case 2:return function(e){var t=e.shapeInfo.logicalShape,n=e.name,r="get"+n.charAt(0).toUpperCase()+n.slice(1),o=e.shapeInfo.texShape,a=o[0],i=o[1],s=Ki();if(null!=o&&pn(t,o))return"\n vec4 "+r+"(int row, int col) {\n vec2 uv = (vec2(col, row) + halfCR) / vec2("+i+".0, "+a+".0);\n\n return "+s.texture2D+"("+n+", uv);\n }\n ";var u=[Math.ceil(o[0]/2),Math.ceil(o[1]/2)];return"\n vec4 "+r+"(int row, int col) {\n vec2 uv = packedUVfrom2D("+Math.ceil(t[1]/2)+", "+u[0]+", "+u[1]+", row, col);\n return "+s.texture2D+"("+n+", uv);\n }\n "}(e);case 3:return function(e){var t=e.shapeInfo.logicalShape,n=e.name,r="get"+n.charAt(0).toUpperCase()+n.slice(1),o=e.shapeInfo.texShape,a=[Math.ceil(o[0]/2),Math.ceil(o[1]/2)];if(1===t[0])return"\n "+es(us(e,t.slice(1)))+"\n vec4 "+r+"(int b, int row, int col) {\n return "+r+"("+cs(["b","row","col"],[1,2])+");\n }\n ";var i=a[0],s=a[1],u=Math.ceil(t[2]/2);return"\n vec4 "+r+"(int b, int row, int col) {\n vec2 uv = packedUVfrom3D(\n "+i+", "+s+", "+u*Math.ceil(t[1]/2)+", "+u+", b, row, col);\n return "+Ki().texture2D+"("+n+", uv);\n }\n "}(e);default:return function(e){for(var t=e.shapeInfo.logicalShape,n=t.length,r=e.name,o="get"+r.charAt(0).toUpperCase()+r.slice(1),a=e.shapeInfo.texShape,i=[Math.ceil(a[0]/2),Math.ceil(a[1]/2)],s=i[0],u=i[1],c=Math.ceil(t[n-1]/2),l=c*Math.ceil(t[n-2]/2),f="int b, int row, int col",h="b * "+l+" + (row / 2) * "+c+" + (col / 2)",p=2;p<n-1;p++)f="int b"+p+", "+f,h="b"+p+" * "+(l*=t[n-p-1])+" + "+h;return"\n vec4 "+o+"("+f+") {\n int index = "+h+";\n int texR = index / "+u+";\n int texC = index - texR * "+u+";\n vec2 uv = (vec2(texC, texR) + halfCR) / vec2("+u+", "+s+");\n return "+Ki().texture2D+"("+r+", uv);\n }\n "}(e)}}var ts="\nvec2 uvFromFlat(int texNumR, int texNumC, int index) {\n int texR = index / texNumC;\n int texC = index - texR * texNumC;\n return (vec2(texC, texR) + halfCR) / vec2(texNumC, texNumR);\n}\nvec2 packedUVfrom1D(int texNumR, int texNumC, int index) {\n int texelIndex = index / 2;\n int texR = texelIndex / texNumC;\n int texC = texelIndex - texR * texNumC;\n return (vec2(texC, texR) + halfCR) / vec2(texNumC, texNumR);\n}\n",ns="\nvec2 packedUVfrom2D(int texelsInLogicalRow, int texNumR,\n int texNumC, int row, int col) {\n int texelIndex = (row / 2) * texelsInLogicalRow + (col / 2);\n int texR = texelIndex / texNumC;\n int texC = texelIndex - texR * texNumC;\n return (vec2(texC, texR) + halfCR) / vec2(texNumC, texNumR);\n}\n",rs="\nvec2 packedUVfrom3D(int texNumR, int texNumC,\n int texelsInBatch, int texelsInLogicalRow, int b,\n int row, int col) {\n int index = b * texelsInBatch + (row / 2) * texelsInLogicalRow + (col / 2);\n int texR = index / texNumC;\n int texC = index - texR * texNumC;\n return (vec2(texC, texR) + halfCR) / vec2(texNumC, texNumR);\n}\n",os="\n float getChannel(vec4 frag, vec2 innerDims) {\n vec2 modCoord = mod(innerDims, 2.);\n return modCoord.x == 0. ?\n (modCoord.y == 0. ? frag.r : frag.g) :\n (modCoord.y == 0. ? frag.b : frag.a);\n }\n float getChannel(vec4 frag, int dim) {\n float modCoord = mod(float(dim), 2.);\n return modCoord == 0. ? frag.r : frag.g;\n }\n";function as(e){return"offset"+e}function is(e){var t=e.name,n=hn(e.shapeInfo.logicalShape);return n<2?"return "+t+";":"\n for (int i = 0; i < "+n+"; i++) {\n if (i == index) {\n return "+t+"[i];\n }\n }\n "}function ss(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";if(6===e)return"ivec6";throw Error("GPU for rank "+e+" is not yet supported")}function us(e,t){var n=JSON.parse(JSON.stringify(e));return n.shapeInfo.logicalShape=t,n}function cs(e,t){return t.map((function(t){return e[t]})).join(", ")}var ls=function(e,t,n,r){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,un(e.length>2,(function(){return"Packed arg"+(n.charAt(0).toUpperCase()+n.slice(1))+" supports only inputs with rank above 2."}));var o=e[e.length-1],a=Math.ceil(o/t);this.outputShape=e.slice(0,-1),a>1&&this.outputShape.push(a),r||this.variableNames.push("bestIndicesA");var i,s,u=this.outputShape,c=u.length,l=ss(c),f=Xi("coords",c);if(1===a){var h=ss(s=c+1);i="\n "+h+" sourceLocR = "+h+"("+f.join()+", 0);\n ++"+f[c-1]+";\n "+h+" sourceLocG = "+h+"("+f.join()+", 0);\n ++"+f[c-2]+";\n "+h+" sourceLocA = "+h+"("+f.join()+", 0);\n --"+f[c-1]+";\n "+h+" sourceLocB = "+h+"("+f.join()+", 0);\n --"+f[c-2]+";"}else s=c,i="\n "+l+" sourceLocR = coords;\n ++"+f[c-1]+";\n "+l+" sourceLocG = coords;\n ++"+f[c-2]+";\n "+l+" sourceLocA = coords;\n --"+f[c-1]+";\n "+l+" sourceLocB = coords;\n --"+f[c-2]+";";var p=["x","y","z","w","u","v"].slice(0,s),d="."+p[s-1],v=p.map((function(e){return"int "+e})),m=Xi("sourceLocR",s-1).concat("inIdx.r"),g=Xi("sourceLocG",s-1).concat("inIdx.g"),y=Xi("sourceLocB",s-1).concat("inIdx.b"),b=Xi("sourceLocA",s-1).concat("inIdx.a"),w="max"===n?"greaterThan":"lessThan",x=r?"":"\n inIdx = round(vec4(getBestIndicesAChannel("+m.join()+"),\n getBestIndicesAChannel("+g.join()+"),\n getBestIndicesAChannel("+y.join()+"),\n getBestIndicesAChannel("+b.join()+")));",E="vec4(\n getAChannel("+m.join()+"),\n hasNextCol ? getAChannel("+g.join()+") : 0.,\n hasNextRow ? getAChannel("+y.join()+") : 0.,\n hasNextRow && hasNextCol ? getAChannel("+b.join()+") : 0.)",_=r?"":"\n float getBestIndicesAChannel("+v.join()+") {\n return getChannel(getBestIndicesA("+p.join()+"),\n vec2("+p.slice(-2).join()+"));\n }";this.userCode="\n float getAChannel("+v.join()+") {\n return getChannel(getA("+p.join()+"),\n vec2("+p.slice(-2).join()+"));\n }\n "+_+"\n void main() {\n "+l+" coords = getOutputCoords();\n bool hasNextCol = "+f[c-1]+" < "+(u[c-1]-1)+";\n bool hasNextRow = "+f[c-2]+" < "+(u[c-2]-1)+";\n "+i+"\n ivec4 srcIdx = ivec4(sourceLocR"+d+", sourceLocG"+d+",\n sourceLocB"+d+", sourceLocA"+d+") * "+t+";\n ivec4 inIdx = srcIdx;\n vec4 bestIndex = vec4(inIdx);\n vec4 bestValue = "+E+";\n\n for (int i = 0; i < "+t+"; i++) {\n inIdx = srcIdx;\n "+x+"\n vec4 candidate = "+E+";\n bvec4 nan = isnan(candidate);\n bvec4 replace = bvec4(\n vec4("+w+"(candidate, bestValue)) * (vec4(1.0) - vec4(nan)));\n\n bestValue = vec4(replace.x ? candidate.x : bestValue.x,\n replace.y ? candidate.y : bestValue.y,\n replace.z ? candidate.z : bestValue.z,\n replace.w ? candidate.w : bestValue.w);\n bestIndex = mix(bestIndex, vec4(inIdx), vec4(replace));\n srcIdx++;\n }\n setOutput(bestIndex);\n }\n "},fs=function(e){this.variableNames=["dy"],this.outputShape=e.inShape;var t=e.filterHeight,n=e.filterWidth,r=e.strideHeight,o=e.strideWidth,a=e.dilationHeight,i=e.dilationWidth,s=e.effectiveFilterHeight,u=e.effectiveFilterWidth,c=s-1-e.padInfo.top,l=u-1-e.padInfo.left,f=1/(t*n);this.userCode="\n const ivec2 pads = ivec2("+c+", "+l+");\n const float avgMultiplier = float("+f+");\n\n void main() {\n ivec4 coords = getOutputCoords();\n int b = coords[0];\n int d = coords[3];\n\n ivec2 dyRCCorner = coords.yz - pads;\n int dyRCorner = dyRCCorner.x;\n int dyCCorner = dyRCCorner.y;\n\n // Convolve dy(?, ?, d) with pos mask(:, :, d) to get dx(xR, xC, d).\n // ? = to be determined. : = across all values in that axis.\n float dotProd = 0.0;\n for (int wR = 0; wR < "+s+";\n wR += "+a+") {\n float dyR = float(dyRCorner + wR) / "+r+".0;\n\n if (dyR < 0.0 || dyR >= "+e.outHeight+".0 || fract(dyR) > 0.0) {\n continue;\n }\n int idyR = int(dyR);\n\n for (int wC = 0; wC < "+u+";\n wC+= "+i+") {\n float dyC = float(dyCCorner + wC) / "+o+".0;\n\n if (dyC < 0.0 || dyC >= "+e.outWidth+".0 ||\n fract(dyC) > 0.0) {\n continue;\n }\n int idyC = int(dyC);\n\n float dyValue = getDy(b, idyR, idyC, d);\n\n dotProd += dyValue * avgMultiplier;\n }\n }\n setOutput(dotProd);\n }\n "},hs=function(e){this.variableNames=["dy"],this.outputShape=e.inShape;var t=e.filterDepth,n=e.filterHeight,r=e.filterWidth,o=e.strideDepth,a=e.strideHeight,i=e.strideWidth,s=e.dilationDepth,u=e.dilationHeight,c=e.dilationWidth,l=e.effectiveFilterDepth,f=e.effectiveFilterHeight,h=e.effectiveFilterWidth,p=l-1-e.padInfo.front,d=f-1-e.padInfo.top,v=h-1-e.padInfo.left,m=1/(t*n*r);this.userCode="\n const ivec3 pads = ivec3("+p+", "+d+", "+v+");\n const float avgMultiplier = float("+m+");\n\n void main() {\n ivec5 coords = getOutputCoords();\n int batch = coords.x;\n int ch = coords.u;\n\n ivec3 dyCorner = ivec3(coords.y, coords.z, coords.w) - pads;\n int dyDCorner = dyCorner.x;\n int dyRCorner = dyCorner.y;\n int dyCCorner = dyCorner.z;\n\n // Convolve dy(?, ?, ?, d) with pos mask(:, :, :, ch) to get\n // dx(xD, xR, xC, ch).\n // ? = to be determined. : = across all values in that axis.\n float dotProd = 0.0;\n\n for (int wD = 0; wD < "+l+";\n wD += "+s+") {\n float dyD = float(dyDCorner + wD) / "+o+".0;\n\n if (dyD < 0.0 || dyD >= "+e.outDepth+".0 || fract(dyD) > 0.0) {\n continue;\n }\n int idyD = int(dyD);\n\n for (int wR = 0; wR < "+f+";\n wR += "+u+") {\n float dyR = float(dyRCorner + wR) / "+a+".0;\n\n if (dyR < 0.0 || dyR >= "+e.outHeight+".0 ||\n fract(dyR) > 0.0) {\n continue;\n }\n int idyR = int(dyR);\n\n for (int wC = 0; wC < "+h+";\n wC += "+c+") {\n float dyC = float(dyCCorner + wC) / "+i+".0;\n\n if (dyC < 0.0 || dyC >= "+e.outWidth+".0 ||\n fract(dyC) > 0.0) {\n continue;\n }\n int idyC = int(dyC);\n\n float dyValue = getDy(batch, idyD, idyR, idyC, ch);\n\n dotProd += dyValue * avgMultiplier;\n }\n }\n }\n setOutput(dotProd);\n }\n "},ps=function(e,t,n,r,o,a){this.outputShape=[],this.variableNames=["x","mean","variance"],gi(e,t),gi(e,n);var i="0.0";null!=r&&(gi(e,r),this.variableNames.push("offset"),i="getOffsetAtOutCoords()");var s="1.0";null!=o&&(gi(e,o),this.variableNames.push("scale"),s="getScaleAtOutCoords()"),this.outputShape=e,this.userCode="\n void main() {\n float x = getXAtOutCoords();\n float mean = getMeanAtOutCoords();\n float variance = getVarianceAtOutCoords();\n float offset = "+i+";\n float scale = "+s+";\n float inv = scale * inversesqrt(variance + float("+a+"));\n setOutput(dot(vec3(x, -mean, offset), vec3(inv, inv, 1)));\n }\n "},ds=function(e,t,n,r,o,a){this.packedInputs=!0,this.packedOutput=!0,this.variableNames=["x","mean","variance"],gi(e,t),gi(e,n);var i="vec4(0.0)";null!=r&&(gi(e,r),this.variableNames.push("offset"),i="getOffsetAtOutCoords()");var s="vec4(1.0)";null!=o&&(gi(e,o),this.variableNames.push("scale"),s="getScaleAtOutCoords()"),this.outputShape=e,this.userCode="\n void main() {\n vec4 offset = "+i+";\n vec4 scale = "+s+";\n\n vec4 x = getXAtOutCoords();\n vec4 mean = getMeanAtOutCoords();\n vec4 variance = getVarianceAtOutCoords();\n\n vec4 inv = scale * inversesqrt(variance + vec4("+a+"));\n\n setOutput((x - mean) * inv + offset);\n }\n "},vs=function(e,t,n){this.variableNames=["AReal","AImag","BReal","BImag"],this.outputShape=gi(t,n),this.userCode="\n float binaryOpComplex(\n float areal, float aimag, float breal, float bimag) {\n "+e+"\n }\n\n void main() {\n float areal = getARealAtOutCoords();\n float aimag = getAImagAtOutCoords();\n float breal = getBRealAtOutCoords();\n float bimag = getBImagAtOutCoords();\n setOutput(binaryOpComplex(areal, aimag, breal, bimag));\n }\n "},ms="return a + b;",gs="return a - b;",ys="return a * b;",bs="return (a < 0.) ? b * a : a;",ws=function(e,t,n){this.variableNames=["A","B"],this.outputShape=gi(t,n),this.userCode="\n float binaryOperation(float a, float b) {\n "+e+"\n }\n\n void main() {\n float a = getAAtOutCoords();\n float b = getBAtOutCoords();\n setOutput(binaryOperation(a, b));\n }\n "},xs="\n vec4 aLessThanZero = vec4(lessThan(a, vec4(0.)));\n return (aLessThanZero * (b * a)) + ((vec4(1.0) - aLessThanZero) * a);\n",Es=function(e,t,n,r){void 0===r&&(r=!1),this.variableNames=["A","B"],this.supportsBroadcasting=!0,this.packedInputs=!0,this.packedOutput=!0,this.outputShape=gi(t,n);var o=this.outputShape.length,a="";if(r)if(0===o||1===hn(this.outputShape))a="\n result.y = 0.;\n result.z = 0.;\n result.w = 0.;\n ";else if(a="\n "+ss(o)+" coords = getOutputCoords();\n ",1===o)a+="\n result.y = (coords + 1) >= "+this.outputShape[0]+" ? 0. : result.y;\n result.z = 0.;\n result.w = 0.;\n ";else{var i=Xi("coords",o);a+="\n bool nextRowOutOfBounds =\n ("+i[o-2]+" + 1) >= "+this.outputShape[o-2]+";\n bool nextColOutOfBounds =\n ("+i[o-1]+" + 1) >= "+this.outputShape[o-1]+";\n result.y = nextColOutOfBounds ? 0. : result.y;\n result.z = nextRowOutOfBounds ? 0. : result.z;\n result.w = nextColOutOfBounds || nextRowOutOfBounds ? 0. : result.w;\n "}this.userCode="\n vec4 binaryOperation(vec4 a, vec4 b) {\n "+e+"\n }\n\n void main() {\n vec4 a = getAAtOutCoords();\n vec4 b = getBAtOutCoords();\n\n vec4 result = binaryOperation(a, b);\n "+a+"\n\n setOutput(result);\n }\n "},_s=function(){function e(e){this.variableNames=["A"],this.outputShape=e,this.userCode="\n uniform float minVal;\n uniform float maxVal;\n\n void main() {\n float value = getAAtOutCoords();\n if (isnan(value)) {\n setOutput(value);\n return;\n }\n\n setOutput(clamp(value, minVal, maxVal));\n }\n "}return e.prototype.getCustomSetupFunc=function(e,t){var n=this;return function(r,o){null==n.minLoc&&(n.minLoc=r.getUniformLocationNoThrow(o,"minVal"),n.maxLoc=r.getUniformLocationNoThrow(o,"maxVal")),r.gl.uniform1f(n.minLoc,e),r.gl.uniform1f(n.maxLoc,t)}},e}(),ks=function(){function e(e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e,this.userCode="\n uniform float minVal;\n uniform float maxVal;\n\n void main() {\n vec4 value = getAAtOutCoords();\n\n if (any(isnan(value))) {\n setOutput(value);\n return;\n }\n\n setOutput(clamp(value, vec4(minVal), vec4(maxVal)));\n }\n "}return e.prototype.getCustomSetupFunc=function(e,t){var n=this;return function(r,o){null==n.minLoc&&(n.minLoc=r.getUniformLocationNoThrow(o,"minVal"),n.maxLoc=r.getUniformLocationNoThrow(o,"maxVal")),r.gl.uniform1f(n.minLoc,e),r.gl.uniform1f(n.maxLoc,t)}},e}(),Os=function(e){this.variableNames=["real","imag"],this.outputShape=e,this.userCode="\n void main() {\n float re = abs(getRealAtOutCoords());\n float im = abs(getImagAtOutCoords());\n float mx = max(re, im);\n\n // sadly the length function in glsl is not underflow-safe\n // (at least not on Intel GPUs). So the safe solution is\n // to ensure underflow-safety in all cases.\n setOutput(\n mx == 0.0 ? 0.0 : mx * length(vec2(1, min(re, im)/mx))\n );\n }\n "},Cs=function(e){this.outputShape=[],this.outputShape=Lo(e,1),this.variableNames=e.map((function(e,t){return"T"+t}));var t=new Array(e.length-1);t[0]=e[0][1];for(var n=1;n<t.length;n++)t[n]=t[n-1]+e[n][1];var r=["if (yC < "+t[0]+") setOutput(getT0(yR, yC));"];for(n=1;n<t.length;n++){var o=t[n-1];r.push("else if (yC < "+t[n]+") setOutput(getT"+n+"(yR, yC-"+o+"));")}var a=t.length,i=t[t.length-1];r.push("else setOutput(getT"+a+"(yR, yC-"+i+"));"),this.userCode="\n void main() {\n ivec2 coords = getOutputCoords();\n int yR = coords.x;\n int yC = coords.y;\n\n "+r.join("\n ")+"\n }\n "},Is=function(e,t){this.packedInputs=!0,this.packedOutput=!0,this.outputShape=[],this.outputShape=Lo(e,t);var n=this.outputShape,r=n.length,o=ss(r),a=Xi("coords",r),i=["x","y","z","w","u","v"].slice(0,r);this.variableNames=e.map((function(e,t){return"T"+t}));var s=new Array(e.length-1);s[0]=e[0][t];for(var u=1;u<s.length;u++)s[u]=s[u-1]+e[u][t];var c=i[t],l=i.slice(-2),f=i.join(),h="if ("+c+" < "+s[0]+") {\n return getChannel(\n getT0("+f+"), vec2("+l.join()+"));\n }";for(u=1;u<s.length;u++){var p=s[u-1];h+="\n if ("+c+" < "+s[u]+" && "+c+" >= "+s[u-1]+") {\n return getChannel(\n getT"+u+"("+Rs(i,c,p)+"),\n vec2("+Rs(l,c,p)+"));\n }"}var d=s.length,v=s[s.length-1];h+="\n return getChannel(\n getT"+d+"("+Rs(i,c,v)+"),\n vec2("+Rs(l,c,v)+"));",this.userCode="\n float getValue("+i.map((function(e){return"int "+e}))+") {\n "+h+"\n }\n\n void main() {\n "+o+" coords = getOutputCoords();\n vec4 result = vec4(getValue("+a+"), 0., 0., 0.);\n\n "+a[r-1]+" = "+a[r-1]+" + 1;\n if ("+a[r-1]+" < "+n[r-1]+") {\n result.g = getValue("+a+");\n }\n\n "+a[r-2]+" = "+a[r-2]+" + 1;\n if ("+a[r-2]+" < "+n[r-2]+") {\n result.a = getValue("+a+");\n }\n\n "+a[r-1]+" = "+a[r-1]+" - 1;\n if ("+a[r-2]+" < "+n[r-2]+" &&\n "+a[r-1]+" < "+n[r-1]+") {\n result.b = getValue("+a+");\n }\n setOutput(result);\n }\n "};function Rs(e,t,n){var r=e.indexOf(t);return e.map((function(e,t){return t===r?e+" - "+n:e})).join()}var Ss=function(e){this.variableNames=["x","dy"],this.outputShape=e.filterShape;var t=e.strideHeight,n=e.strideWidth,r=e.padInfo.top,o=e.padInfo.left,a="channelsLast"===e.dataFormat;this.userCode="\n void main() {\n ivec4 coords = getOutputCoords();\n int wR = coords.x;\n int wC = coords.y;\n int d1 = coords.z;\n int d2 = coords.w;\n\n // Convolve x(?, ?, d1) with dy(:, :, d2) to get dw(wR, wC, d1, d2).\n // ? = to be determined. : = across all values in that axis.\n float dotProd = 0.0;\n\n for (int b = 0; b < "+e.batchSize+"; b++) {\n for (int yR = 0; yR < "+e.outHeight+"; yR++) {\n int xR = wR + yR * "+t+" - "+r+";\n\n if (xR < 0 || xR >= "+e.inHeight+") {\n continue;\n }\n\n for (int yC = 0; yC < "+e.outWidth+"; yC++) {\n int xC = wC + yC * "+n+" - "+o+";\n\n if (xC < 0 || xC >= "+e.inWidth+") {\n continue;\n }\n\n if ("+a+") {\n float dyValue = getDy(b, yR, yC, d2);\n float xValue = getX(b, xR, xC, d1);\n dotProd += (xValue * dyValue);\n } else {\n float dyValue = getDy(b, d2, yR, yC);\n float xValue = getX(b, d1, xR, xC);\n dotProd += (xValue * dyValue);\n }\n\n }\n }\n }\n setOutput(dotProd);\n }\n "},As=function(e){this.variableNames=["dy","W"],this.outputShape=e.inShape;var t=e.filterHeight,n=e.filterWidth,r=e.strideHeight,o=e.strideWidth,a="channelsLast"===e.dataFormat,i=t-1-e.padInfo.top,s=n-1-e.padInfo.left,u=a?1:2,c=a?2:3,l=a?3:1;this.userCode="\n const ivec2 pads = ivec2("+i+", "+s+");\n\n void main() {\n ivec4 coords = getOutputCoords();\n int batch = coords[0];\n int d1 = coords["+l+"];\n\n ivec2 dyCorner = ivec2(coords["+u+"], coords["+c+"]) - pads;\n int dyRCorner = dyCorner.x;\n int dyCCorner = dyCorner.y;\n\n // Convolve dy(?, ?, d2) with w(:, :, d1, d2) to compute dx(xR, xC, d1).\n // ? = to be determined. : = across all values in that axis.\n float dotProd = 0.0;\n for (int wR = 0; wR < "+t+"; wR++) {\n float dyR = float(dyRCorner + wR) / "+r+".0;\n\n if (dyR < 0.0 || dyR >= "+e.outHeight+".0 || fract(dyR) > 0.0) {\n continue;\n }\n int idyR = int(dyR);\n\n int wRPerm = "+t+" - 1 - wR;\n\n for (int wC = 0; wC < "+n+"; wC++) {\n float dyC = float(dyCCorner + wC) / "+o+".0;\n\n if (dyC < 0.0 || dyC >= "+e.outWidth+".0 ||\n fract(dyC) > 0.0) {\n continue;\n }\n int idyC = int(dyC);\n\n int wCPerm = "+n+" - 1 - wC;\n\n for (int d2 = 0; d2 < "+e.outChannels+"; d2++) {\n\n if ("+a+") {\n float xValue = getDy(batch, idyR, idyC, d2);\n float wValue = getW(wRPerm, wCPerm, d1, d2);\n dotProd += xValue * wValue;\n } else {\n float xValue = getDy(batch, d2, idyR, idyC);\n float wValue = getW(wRPerm, wCPerm, d1, d2);\n dotProd += xValue * wValue;\n }\n\n }\n }\n }\n setOutput(dotProd);\n }\n "},Ps=function(e){this.variableNames=["x","dy"],this.outputShape=e.filterShape;var t=e.strideDepth,n=e.strideHeight,r=e.strideWidth,o=e.padInfo.front,a=e.padInfo.top,i=e.padInfo.left;this.userCode="\n void main() {\n ivec5 coords = getOutputCoords();\n int wF = coords.x;\n int wR = coords.y;\n int wC = coords.z;\n int d1 = coords.w;\n int d2 = coords.u;\n\n float dotProd = 0.0;\n\n for (int b = 0; b < "+e.batchSize+"; b++) {\n for (int yF = 0; yF < "+e.outDepth+"; yF++) {\n int xF = wF + yF * "+t+" - "+o+";\n\n if (xF < 0 || xF >= "+e.inDepth+") {\n continue;\n }\n\n for (int yR = 0; yR < "+e.outHeight+"; yR++) {\n int xR = wR + yR * "+n+" - "+a+";\n\n if (xR < 0 || xR >= "+e.inHeight+") {\n continue;\n }\n\n for (int yC = 0; yC < "+e.outWidth+"; yC++) {\n int xC = wC + yC * "+r+" - "+i+";\n\n if (xC < 0 || xC >= "+e.inWidth+") {\n continue;\n }\n\n float dyValue = getDy(b, yF, yR, yC, d2);\n float xValue = getX(b, xF, xR, xC, d1);\n dotProd += (xValue * dyValue);\n }\n }\n }\n }\n setOutput(dotProd);\n }\n "},Ts=function(e){this.variableNames=["dy","W"],this.outputShape=e.inShape;var t=e.filterDepth,n=e.filterHeight,r=e.filterWidth,o=e.strideDepth,a=e.strideHeight,i=e.strideWidth,s=t-1-e.padInfo.front,u=n-1-e.padInfo.top,c=r-1-e.padInfo.left;this.userCode="\n const ivec3 pads = ivec3("+s+", "+u+", "+c+");\n\n void main() {\n ivec5 coords = getOutputCoords();\n int batch = coords.x;\n int d1 = coords.u;\n\n\n ivec3 dyCorner = ivec3(coords.y, coords.z, coords.w) - pads;\n int dyFCorner = dyCorner.x;\n int dyRCorner = dyCorner.y;\n int dyCCorner = dyCorner.z;\n\n float dotProd = 0.0;\n for (int wF = 0; wF < "+t+"; wF++) {\n float dyF = float(dyFCorner + wF) / "+o+".0;\n\n if (dyF < 0.0 || dyF >= "+e.outDepth+".0 || fract(dyF) > 0.0) {\n continue;\n }\n int idyF = int(dyF);\n\n int wFPerm = "+t+" - 1 - wF;\n\n for (int wR = 0; wR < "+n+"; wR++) {\n float dyR = float(dyRCorner + wR) / "+a+".0;\n\n if (dyR < 0.0 || dyR >= "+e.outHeight+".0 ||\n fract(dyR) > 0.0) {\n continue;\n }\n int idyR = int(dyR);\n\n int wRPerm = "+n+" - 1 - wR;\n\n for (int wC = 0; wC < "+r+"; wC++) {\n float dyC = float(dyCCorner + wC) / "+i+".0;\n\n if (dyC < 0.0 || dyC >= "+e.outWidth+".0 ||\n fract(dyC) > 0.0) {\n continue;\n }\n int idyC = int(dyC);\n\n int wCPerm = "+r+" - 1 - wC;\n\n for (int d2 = 0; d2 < "+e.outChannels+"; d2++) {\n float xValue = getDy(batch, idyF, idyR, idyC, d2);\n float wValue = getW(wFPerm, wRPerm, wCPerm, d1, d2);\n dotProd += xValue * wValue;\n }\n }\n }\n }\n setOutput(dotProd);\n }\n "},Ds=function(e){this.variableNames=["x","dy"],this.outputShape=e.filterShape;var t=e.strideHeight,n=e.strideWidth,r=e.padInfo.top,o=e.padInfo.left,a=e.outChannels/e.inChannels;this.userCode="\n void main() {\n ivec4 coords = getOutputCoords();\n int wR = coords.x;\n int wC = coords.y;\n int d1 = coords.z;\n int dm = coords.w;\n int d2 = d1 * "+a+" + dm;\n\n float dotProd = 0.0;\n\n // TO DO: Vec4 over the batch size\n for (int b = 0; b < "+e.batchSize+"; b++) {\n for (int yR = 0; yR < "+e.outHeight+"; yR++) {\n int xR = wR + yR * "+t+" - "+r+";\n\n if (xR < 0 || xR >= "+e.inHeight+") {\n continue;\n }\n\n for (int yC = 0; yC < "+e.outWidth+"; yC++) {\n int xC = wC + yC * "+n+" - "+o+";\n\n if (xC < 0 || xC >= "+e.inWidth+") {\n continue;\n }\n\n float dyValue = getDy(b, yR, yC, d2);\n float xValue = getX(b, xR, xC, d1);\n dotProd += (xValue * dyValue);\n }\n }\n }\n setOutput(dotProd);\n }\n "},Ns=function(e){this.variableNames=["dy","W"],this.outputShape=e.inShape;var t=e.filterHeight,n=e.filterWidth,r=e.strideHeight,o=e.strideWidth,a=t-1-e.padInfo.top,i=n-1-e.padInfo.left,s=e.outChannels/e.inChannels;this.userCode="\n const ivec2 pads = ivec2("+a+", "+i+");\n\n void main() {\n ivec4 coords = getOutputCoords();\n int batch = coords[0];\n int d1 = coords[3];\n ivec2 dyCorner = coords.yz - pads;\n int dyRCorner = dyCorner.x;\n int dyCCorner = dyCorner.y;\n\n float dotProd = 0.0;\n\n for (int wR = 0; wR < "+t+"; wR++) {\n float dyR = float(dyRCorner + wR) / "+r+".0;\n\n if (dyR < 0.0 || dyR >= "+e.outHeight+".0 || fract(dyR) > 0.0) {\n continue;\n }\n int idyR = int(dyR);\n\n int wRPerm = "+t+" - 1 - wR;\n\n for (int wC = 0; wC < "+n+"; wC++) {\n float dyC = float(dyCCorner + wC) / "+o+".0;\n\n if (dyC < 0.0 || dyC >= "+e.outWidth+".0 ||\n fract(dyC) > 0.0) {\n continue;\n }\n int idyC = int(dyC);\n\n int wCPerm = "+n+" - 1 - wC;\n\n // TO DO: Vec4 over the channelMul\n for (int dm = 0; dm < "+s+"; dm++) {\n int d2 = d1 * "+s+" + dm;\n float xValue = getDy(batch, idyR, idyC, d2);\n float wValue = getW(wRPerm, wCPerm, d1, dm);\n dotProd += xValue * wValue;\n }\n }\n }\n setOutput(dotProd);\n }\n "},Ms=function(e,t,n,r){void 0===t&&(t=!1),void 0===n&&(n=null),void 0===r&&(r=!1),this.variableNames=["x","W"],this.outputShape=e.outShape;var o=e.padInfo.top,a=e.padInfo.left,i=e.strideHeight,s=e.strideWidth,u=e.dilationHeight,c=e.dilationWidth,l=e.filterHeight,f=e.filterWidth,h=4*Math.floor(e.inChannels/4),p=e.inChannels%4,d="channelsLast"===e.dataFormat,v=d?1:2,m=d?2:3,g=d?3:1,y="",b="";n&&(y=r?"float activation(float a) {\n float b = getPreluActivationWeightsAtOutCoords();\n "+n+"\n }":"\n float activation(float x) {\n "+n+"\n }\n ",b="result = activation(result);");var w=t?"result += getBiasAtOutCoords();":"";t&&this.variableNames.push("bias"),r&&this.variableNames.push("preluActivationWeights"),this.userCode="\n "+y+"\n\n const ivec2 strides = ivec2("+i+", "+s+");\n const ivec2 pads = ivec2("+o+", "+a+");\n\n void main() {\n ivec4 coords = getOutputCoords();\n int batch = coords[0];\n int d2 = coords["+g+"];\n\n ivec2 xRCCorner =\n ivec2(coords["+v+"], coords["+m+"]) * strides - pads;\n int xRCorner = xRCCorner.x;\n int xCCorner = xRCCorner.y;\n\n // Convolve x(?, ?, d1) with w(:, :, d1, d2) to get y(yR, yC, d2).\n // ? = to be determined. : = across all values in that axis.\n float dotProd = 0.0;\n for (int wR = 0; wR < "+l+"; wR++) {\n int xR = xRCorner + wR * "+u+";\n\n if (xR < 0 || xR >= "+e.inHeight+") {\n continue;\n }\n\n for (int wC = 0; wC < "+f+"; wC++) {\n int xC = xCCorner + wC * "+c+";\n\n if (xC < 0 || xC >= "+e.inWidth+") {\n continue;\n }\n\n for (int d1 = 0; d1 < "+h+"; d1 += 4) {\n vec4 wValues = vec4(\n getW(wR, wC, d1, d2),\n getW(wR, wC, d1 + 1, d2),\n getW(wR, wC, d1 + 2, d2),\n getW(wR, wC, d1 + 3, d2)\n );\n\n if ("+d+") {\n vec4 xValues = vec4(\n getX(batch, xR, xC, d1),\n getX(batch, xR, xC, d1 + 1),\n getX(batch, xR, xC, d1 + 2),\n getX(batch, xR, xC, d1 + 3)\n );\n dotProd += dot(xValues, wValues);\n } else {\n vec4 xValues = vec4(\n getX(batch, d1, xR, xC),\n getX(batch, d1 + 1, xR, xC),\n getX(batch, d1 + 2, xR, xC),\n getX(batch, d1 + 3, xR, xC)\n );\n dotProd += dot(xValues, wValues);\n }\n }\n\n if ("+(1===p)+") {\n\n if ("+d+") {\n dotProd +=\n getX(batch, xR, xC, "+h+") *\n getW(wR, wC, "+h+", d2);\n } else {\n dotProd +=\n getX(batch, "+h+", xR, xC) *\n getW(wR, wC, "+h+", d2);\n }\n\n } else if ("+(2===p)+") {\n vec2 wValues = vec2(\n getW(wR, wC, "+h+", d2),\n getW(wR, wC, "+h+" + 1, d2)\n );\n\n if ("+d+") {\n vec2 xValues = vec2(\n getX(batch, xR, xC, "+h+"),\n getX(batch, xR, xC, "+h+" + 1)\n );\n dotProd += dot(xValues, wValues);\n } else {\n vec2 xValues = vec2(\n getX(batch, "+h+", xR, xC),\n getX(batch, "+h+" + 1, xR, xC)\n );\n dotProd += dot(xValues, wValues);\n }\n\n } else if ("+(3===p)+") {\n vec3 wValues = vec3(\n getW(wR, wC, "+h+", d2),\n getW(wR, wC, "+h+" + 1, d2),\n getW(wR, wC, "+h+" + 2, d2)\n );\n\n if ("+d+") {\n vec3 xValues = vec3(\n getX(batch, xR, xC, "+h+"),\n getX(batch, xR, xC, "+h+" + 1),\n getX(batch, xR, xC, "+h+" + 2)\n );\n dotProd += dot(xValues, wValues);\n } else {\n vec3 xValues = vec3(\n getX(batch, "+h+", xR, xC),\n getX(batch, "+h+" + 1, xR, xC),\n getX(batch, "+h+" + 2, xR, xC)\n );\n dotProd += dot(xValues, wValues);\n }\n\n }\n }\n }\n\n float result = dotProd;\n "+w+"\n "+b+"\n setOutput(result);\n }\n "},Fs=function(e){this.variableNames=["x","W"],this.outputShape=e.outShape;var t=e.padInfo.front,n=e.padInfo.top,r=e.padInfo.left,o=e.strideDepth,a=e.strideHeight,i=e.strideWidth,s=e.dilationDepth,u=e.dilationHeight,c=e.dilationWidth,l=e.filterDepth,f=e.filterHeight,h=e.filterWidth,p=4*Math.floor(e.inChannels/4),d=e.inChannels%4;this.userCode="\n const ivec3 strides = ivec3("+o+", "+a+", "+i+");\n const ivec3 pads = ivec3("+t+", "+n+", "+r+");\n\n void main() {\n ivec5 coords = getOutputCoords();\n int batch = coords.x;\n int d2 = coords.u;\n\n ivec3 xFRCCorner = ivec3(coords.y, coords.z, coords.w) * strides - pads;\n int xFCorner = xFRCCorner.x;\n int xRCorner = xFRCCorner.y;\n int xCCorner = xFRCCorner.z;\n\n // Convolve x(?, ?, ?, d1) with w(:, :, :, d1, d2) to get\n // y(yF, yR, yC, d2). ? = to be determined. : = across all\n // values in that axis.\n float dotProd = 0.0;\n for (int wF = 0; wF < "+l+"; wF++) {\n int xF = xFCorner + wF * "+s+";\n\n if (xF < 0 || xF >= "+e.inDepth+") {\n continue;\n }\n\n for (int wR = 0; wR < "+f+"; wR++) {\n int xR = xRCorner + wR * "+u+";\n\n if (xR < 0 || xR >= "+e.inHeight+") {\n continue;\n }\n\n for (int wC = 0; wC < "+h+"; wC++) {\n int xC = xCCorner + wC * "+c+";\n\n if (xC < 0 || xC >= "+e.inWidth+") {\n continue;\n }\n\n for (int d1 = 0; d1 < "+p+"; d1 += 4) {\n vec4 xValues = vec4(\n getX(batch, xF, xR, xC, d1),\n getX(batch, xF, xR, xC, d1 + 1),\n getX(batch, xF, xR, xC, d1 + 2),\n getX(batch, xF, xR, xC, d1 + 3)\n );\n vec4 wValues = vec4(\n getW(wF, wR, wC, d1, d2),\n getW(wF, wR, wC, d1 + 1, d2),\n getW(wF, wR, wC, d1 + 2, d2),\n getW(wF, wR, wC, d1 + 3, d2)\n );\n\n dotProd += dot(xValues, wValues);\n }\n\n if ("+(1===d)+") {\n dotProd +=\n getX(batch, xF, xR, xC, "+p+") *\n getW(wF, wR, wC, "+p+", d2);\n } else if ("+(2===d)+") {\n vec2 xValues = vec2(\n getX(batch, xF, xR, xC, "+p+"),\n getX(batch, xF, xR, xC, "+p+" + 1)\n );\n vec2 wValues = vec2(\n getW(wF, wR, wC, "+p+", d2),\n getW(wF, wR, wC, "+p+" + 1, d2)\n );\n dotProd += dot(xValues, wValues);\n } else if ("+(3===d)+") {\n vec3 xValues = vec3(\n getX(batch, xF, xR, xC, "+p+"),\n getX(batch, xF, xR, xC, "+p+" + 1),\n getX(batch, xF, xR, xC, "+p+" + 2)\n );\n vec3 wValues = vec3(\n getW(wF, wR, wC, "+p+", d2),\n getW(wF, wR, wC, "+p+" + 1, d2),\n getW(wF, wR, wC, "+p+" + 2, d2)\n );\n dotProd += dot(xValues, wValues);\n }\n }\n }\n }\n setOutput(dotProd);\n }\n "},Bs=function(e,t,n,r){void 0===t&&(t=!1),void 0===n&&(n=null),void 0===r&&(r=!1),this.variableNames=["x","W"],this.outputShape=e.outShape;var o=e.inHeight,a=e.inWidth,i=e.padInfo.top,s=e.padInfo.left,u=e.strideHeight,c=e.strideWidth,l=e.dilationHeight,f=e.dilationWidth,h=e.filterHeight,p=e.filterWidth,d=e.outChannels/e.inChannels,v="",m="";n&&(v=r?"float activation(float a) {\n float b = getPreluActivationWeightsAtOutCoords();\n "+n+"\n }":"\n float activation(float x) {\n "+n+"\n }\n ",m="result = activation(result);");var g=t?"result += getBiasAtOutCoords();":"";t&&this.variableNames.push("bias"),r&&this.variableNames.push("preluActivationWeights"),this.userCode="\n "+v+"\n\n const ivec2 strides = ivec2("+u+", "+c+");\n const ivec2 pads = ivec2("+i+", "+s+");\n\n void main() {\n ivec4 coords = getOutputCoords();\n int batch = coords.x;\n ivec2 xRCCorner = coords.yz * strides - pads;\n int d2 = coords.w;\n int d1 = d2 / "+d+";\n int q = d2 - d1 * "+d+";\n\n int xRCorner = xRCCorner.x;\n int xCCorner = xRCCorner.y;\n\n // Convolve x(?, ?, d1) with w(:, :, d1, q) to get y(yR, yC, d2).\n // ? = to be determined. : = across all values in that axis.\n float dotProd = 0.0;\n // TO DO(dsmilkov): Flatten the two for loops and vec4 the operations.\n for (int wR = 0; wR < "+h+"; wR++) {\n int xR = xRCorner + wR * "+l+";\n\n if (xR < 0 || xR >= "+o+") {\n continue;\n }\n\n for (int wC = 0; wC < "+p+"; wC++) {\n int xC = xCCorner + wC * "+f+";\n\n if (xC < 0 || xC >= "+a+") {\n continue;\n }\n\n float xVal = getX(batch, xR, xC, d1);\n float wVal = getW(wR, wC, d1, q);\n dotProd += xVal * wVal;\n }\n }\n\n float result = dotProd;\n "+g+"\n "+m+"\n setOutput(result);\n }\n "},js=function(e,t,n,r){void 0===t&&(t=!1),void 0===n&&(n=null),void 0===r&&(r=!1),this.variableNames=["x","W"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e.outShape;for(var o=e.inHeight,a=e.inWidth,i=e.padInfo.top,s=e.padInfo.left,u=e.strideHeight,c=e.strideWidth,l=e.dilationHeight,f=e.dilationWidth,h=e.filterHeight,p=e.filterWidth,d=p,v="int xR; int xC; int xCOffset;",m=0;m<h;m++)for(var g=0;g<p;g++)v+="\n vec4 xTexelR"+m+"C"+2*g+" = vec4(0.);\n vec4 wR"+m+"C"+g+" = vec4(0.);\n vec4 xR"+m+"C"+g+" = vec4(0.);";for(m=0;m<h;m++)for(var y=0;y<d;y++){if(v+="\n xR = xRCorner + "+m*l+";\n xC = xCCorner + "+(g=2*y)*f+";\n ",1===c){if(g<p&&(v+=s%2==1?"\n xCOffset = xC + 1;\n if(xR >= 0 && xR < "+o+" && xCOffset >= 0 && xCOffset < "+a+") {\n xTexelR"+m+"C"+g+" = getX(batch, xR, xCOffset, d1);\n } else {\n xTexelR"+m+"C"+g+" = vec4(0.);\n }\n\n xCOffset = xC + 1 - 2;\n if(xR >= 0 && xR < "+o+" && xCOffset >= 0 && xCOffset < "+a+") {\n vec4 previous = getX(batch, xR, xCOffset, d1);\n xR"+m+"C"+g+" = vec4(previous.zw, xTexelR"+m+"C"+g+".xy);\n } else {\n xR"+m+"C"+g+" = vec4(0, 0, xTexelR"+m+"C"+g+".xy);\n }\n ":"\n if(xR >= 0 && xR < "+o+" && xC >= 0 && xC < "+a+") {\n xTexelR"+m+"C"+g+" = getX(batch, xR, xC, d1);\n } else {\n xTexelR"+m+"C"+g+" = vec4(0.);\n }\n\n xR"+m+"C"+g+" = xTexelR"+m+"C"+g+";\n ",g+1<p)){var b=s%2==0?an(f):f;f%2==0&&s%2==1||f%2!=0&&s%2!=1?(v+="\n xCOffset = xC + "+s%2+" + "+b+";\n\n if(xR >= 0 && xR < "+o+" &&\n xCOffset >= 0 && xCOffset < "+a+") {\n xTexelR"+m+"C"+(g+2)+" = getX(batch, xR, xCOffset, d1);\n }\n ",f>1&&(v+="\n xCOffset -= 2;\n if(xR >= 0 && xR < "+o+" &&\n xCOffset >= 0 && xCOffset < "+a+") {\n xTexelR"+m+"C"+g+" = getX(batch, xR, xCOffset, d1);\n } else {\n xTexelR"+m+"C"+g+" = vec4(0.);\n }\n "),v+="\n xR"+m+"C"+(g+1)+" = vec4(\n xTexelR"+m+"C"+g+".zw, xTexelR"+m+"C"+(g+2)+".xy);\n "):v+="\n xCOffset = xC + "+b+";\n\n if(xR >= 0 && xR < "+o+" &&\n xCOffset >= 0 && xCOffset < "+a+") {\n xTexelR"+m+"C"+(g+2)+" = getX(batch, xR, xCOffset, d1);\n }\n\n xR"+m+"C"+(g+1)+" = xTexelR"+m+"C"+(g+2)+";\n "}}else g<p&&(v+="\n if(xR >= 0 && xR < "+o+") {\n ",s%2==1?(v+="\n xCOffset = xC + 1 - "+c+";\n if(xCOffset >= 0 && xCOffset < "+a+") {\n xTexelR"+m+"C"+g+" = getX(batch, xR, xCOffset, d1);\n } else {\n xTexelR"+m+"C"+g+" = vec4(0.);\n }\n\n if(xC + 1 >= 0 && xC + 1 < "+a+") {\n xTexelR"+m+"C"+(g+2)+" = getX(batch, xR, xC + 1, d1);\n } else {\n xTexelR"+m+"C"+(g+2)+" = vec4(0.);\n }\n\n xR"+m+"C"+g+" = vec4(\n xTexelR"+m+"C"+g+".zw, xTexelR"+m+"C"+(g+2)+".zw);\n ",g+1<p&&(v+="\n vec4 final = vec4(0.);\n xCOffset = xC + 1 + "+c+";\n if(xCOffset >= 0 && xCOffset < "+a+") {\n final = getX(batch, xR, xCOffset, d1);\n }\n xR"+m+"C"+(g+1)+" = vec4(xTexelR"+m+"C"+(g+2)+".xy, final.xy);\n ")):(v+="\n if(xC >= 0 && xC < "+a+") {\n xTexelR"+m+"C"+g+" = getX(batch, xR, xC, d1);\n } else {\n xTexelR"+m+"C"+g+" = vec4(0.);\n }\n\n xCOffset = xC + "+c+";\n if(xCOffset >= 0 && xCOffset < "+a+") {\n xTexelR"+m+"C"+(g+2)+" = getX(batch, xR, xCOffset, d1);\n } else {\n xTexelR"+m+"C"+(g+2)+" = vec4(0.);\n }\n\n xR"+m+"C"+g+" = vec4(\n xTexelR"+m+"C"+g+".xy, xTexelR"+m+"C"+(g+2)+".xy);\n ",g+1<p&&(v+="\n xR"+m+"C"+(g+1)+" = vec4(\n xTexelR"+m+"C"+g+".zw, xTexelR"+m+"C"+(g+2)+".zw);\n ")),v+="}");g<p&&(v+="\n vec4 wTexelR"+m+"C"+g+" = getW("+m+", "+g+", d1, q);\n wR"+m+"C"+g+" = vec4(wTexelR"+m+"C"+g+".xz, wTexelR"+m+"C"+g+".xz);\n ",g+1<p&&(v+="\n vec4 wTexelR"+m+"C"+(g+1)+" = getW("+m+", "+(g+1)+", d1, q);\n wR"+m+"C"+(g+1)+" =\n vec4(wTexelR"+m+"C"+(g+1)+".xz, wTexelR"+m+"C"+(g+1)+".xz);"))}for(m=0;m<h;m++)for(g=0;g<p;g++)v+="dotProd += xR"+m+"C"+g+" * wR"+m+"C"+g+";";var w="",x="";n&&(w=r?"vec4 activation(vec4 a) {\n vec4 b = getPreluActivationWeightsAtOutCoords();\n "+n+"\n }":"vec4 activation(vec4 x) {\n "+n+"\n }",x="result = activation(result);");var E=t?"result += getBiasAtOutCoords();":"";t&&this.variableNames.push("bias"),r&&this.variableNames.push("preluActivationWeights"),this.userCode="\n "+w+"\n\n const ivec2 strides = ivec2("+u+", "+c+");\n const ivec2 pads = ivec2("+i+", "+s+");\n\n void main() {\n\n ivec4 coords = getOutputCoords();\n int batch = coords.x;\n ivec2 xRCCorner = coords.yz * strides - pads;\n int d2 = coords.w;\n int d1 = d2;\n int q = 0;\n int xRCorner = xRCCorner.x;\n int xCCorner = xRCCorner.y;\n\n vec4 dotProd = vec4(0.);\n\n "+v+"\n\n vec4 result = dotProd;\n "+E+"\n "+x+"\n setOutput(result);\n }\n "},Ls=function(e,t,n,r,o){this.variableNames=["Image","Boxes","BoxInd"],this.outputShape=[];var a=e[0],i=e[1],s=e[2],u=e[3],c=t[0],l=n[0],f=n[1];this.outputShape=[c,l,f,u];var h="bilinear"===r?1:0,p=[i-1+".0",s-1+".0"],d=p[0],v=p[1],m=l>1?[""+(i-1)/(l-1),"(y2-y1) * height_ratio","y1*"+d+" + float(y)*(height_scale)"]:["0.0","0.0","0.5 * (y1+y2) * "+d],g=m[0],y=m[1],b=m[2],w=f>1?[""+(s-1)/(f-1),"(x2-x1) * width_ratio","x1*"+v+" + float(x)*(width_scale)"]:["0.0","0.0","0.5 * (x1+x2) * "+v],x=w[0],E=w[1],_=w[2];this.userCode="\n const float height_ratio = float("+g+");\n const float width_ratio = float("+x+");\n void main() {\n ivec4 coords = getOutputCoords();\n int b = coords[0];\n int y = coords[1];\n int x = coords[2];\n int d = coords[3];\n\n // get box vals\n float y1 = getBoxes(b,0);\n float x1 = getBoxes(b,1);\n float y2 = getBoxes(b,2);\n float x2 = getBoxes(b,3);\n\n // get image in batch index\n int bInd = round(getBoxInd(b));\n if(bInd < 0 || bInd >= "+a+") {\n return;\n }\n\n float height_scale = "+y+";\n float width_scale = "+E+";\n\n float in_y = "+b+";\n if( in_y < 0.0 || in_y > "+d+" ) {\n setOutput(float("+o+"));\n return;\n }\n float in_x = "+_+";\n if( in_x < 0.0 || in_x > "+v+" ) {\n setOutput(float("+o+"));\n return;\n }\n\n vec2 sourceFracIndexCR = vec2(in_x,in_y);\n if("+h+" == 1) {\n // Compute the four integer indices.\n ivec2 sourceFloorCR = ivec2(sourceFracIndexCR);\n ivec2 sourceCeilCR = ivec2(ceil(sourceFracIndexCR));\n\n float topLeft = getImage(b, sourceFloorCR.y, sourceFloorCR.x, d);\n float bottomLeft = getImage(b, sourceCeilCR.y, sourceFloorCR.x, d);\n float topRight = getImage(b, sourceFloorCR.y, sourceCeilCR.x, d);\n float bottomRight = getImage(b, sourceCeilCR.y, sourceCeilCR.x, d);\n\n vec2 fracCR = sourceFracIndexCR - vec2(sourceFloorCR);\n\n float top = topLeft + (topRight - topLeft) * fracCR.x;\n float bottom = bottomLeft + (bottomRight - bottomLeft) * fracCR.x;\n float newValue = top + (bottom - top) * fracCR.y;\n setOutput(newValue);\n } else {\n // Compute the coordinators of nearest neighbor point.\n ivec2 sourceNearestCR = ivec2(floor(\n sourceFracIndexCR + vec2(0.5,0.5)));\n float newValue = getImage(b, sourceNearestCR.y, sourceNearestCR.x, d);\n setOutput(newValue);\n }\n }\n "},zs=function(e,t,n){this.variableNames=["x"],this.outputShape=e;var r=e.length,o=e[e.length-1],a=n?"<":">";this.userCode="\n int getIndex(int i) {\n "+(n?"return "+o+" -i - 1;":"return i;")+"\n }\n\n void main() {\n "+ss(r)+" coords = getOutputCoords();\n int end = "+Hs(r,"coords")+";\n float val = 0.0;\n for (int i = "+o+" - 1; i >= 0; i -= 1) {\n int idx = getIndex(i);\n if (idx "+a+" end) {\n continue;\n }\n if (idx == end && "+t+") {\n continue;\n }\n "+Hs(r,"coords")+" = idx;\n val += getX("+function(e,t){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 sum for rank "+e+" is not yet supported")}(r,"coords")+");\n }\n setOutput(val);\n }\n "};function Hs(e,t){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 sum for rank "+e+" is not yet supported")}var Ws=function(e){this.variableNames=["A"],this.packedInputs=!1,this.packedOutput=!0,this.outPackingScheme=br.DENSE;var t=Ir(e),n=Ki();this.outputShape=e,this.userCode="\n ivec3 outCoordsFromFlatIndex(int index) {\n "+$i(["r","c","d"],e)+"\n return ivec3(r, c, d);\n }\n\n void main() {\n ivec2 resTexRC = ivec2(resultUV.yx *\n vec2("+t[0]+", "+t[1]+"));\n int index = 4 * (resTexRC.x * "+t[1]+" + resTexRC.y);\n\n vec4 result = vec4(0.);\n\n for (int i=0; i<4; i++) {\n int flatIndex = index + i;\n ivec3 rc = outCoordsFromFlatIndex(flatIndex);\n result[i] = getA(rc.x, rc.y, rc.z);\n }\n\n "+n.output+" = result;\n }\n "},Vs=function(e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outPackingScheme=br.DENSE;var t=Ir(e),n=Ki();this.outputShape=e,this.userCode="\n ivec3 outCoordsFromFlatIndex(int index) {\n "+$i(["r","c","d"],e)+"\n return ivec3(r, c, d);\n }\n\n void main() {\n ivec2 resTexRC = ivec2(resultUV.yx *\n vec2("+t[0]+", "+t[1]+"));\n int index = 4 * (resTexRC.x * "+t[1]+" + resTexRC.y);\n\n vec4 result = vec4(0.);\n\n for (int i=0; i<4; i++) {\n int flatIndex = index + i;\n ivec3 rc = outCoordsFromFlatIndex(flatIndex);\n result[i] = getChannel(getA(rc.x, rc.y, rc.z), vec2(rc.y, rc.z));\n }\n\n "+n.output+" = result;\n }\n "},Us=function(){function e(e,t,n){this.variableNames=["x"],this.outputShape=[],this.outputShape=e,this.blockSize=t,this.dataFormat=n,this.userCode="\n void main() {\n ivec4 coords = getOutputCoords();\n int b = coords[0];\n int h = "+this.getHeightCoordString()+";\n int w = "+this.getWidthCoordString()+";\n int d = "+this.getDepthCoordString()+";\n\n int in_h = h / "+t+";\n int offset_h = imod(h, "+t+");\n int in_w = w / "+t+";\n int offset_w = imod(w, "+t+");\n int offset_d = (offset_h * "+t+" + offset_w) *\n "+this.getOutputDepthSize()+";\n int in_d = d + offset_d;\n\n float result = "+this.getInputSamplingString()+";\n setOutput(result);\n }\n "}return e.prototype.getHeightCoordString=function(){return"NHWC"===this.dataFormat?"coords[1]":"coords[2]"},e.prototype.getWidthCoordString=function(){return"NHWC"===this.dataFormat?"coords[2]":"coords[3]"},e.prototype.getDepthCoordString=function(){return"NHWC"===this.dataFormat?"coords[3]":"coords[1]"},e.prototype.getOutputDepthSize=function(){return"NHWC"===this.dataFormat?this.outputShape[3]:this.outputShape[1]},e.prototype.getInputSamplingString=function(){return"NHWC"===this.dataFormat?"getX(b, in_h, in_w, in_d)":"getX(b, in_d, in_h, in_w)"},e}(),qs=function(e){this.variableNames=["X"],this.outputShape=[e,e],this.userCode="\n void main() {\n ivec2 coords = getOutputCoords();\n float val = coords[0] == coords[1] ? getX(coords[0]) : 0.0;\n setOutput(val);\n }\n "},Gs=function(e){this.variableNames=["A"],this.outTexUsage=wr.DOWNLOAD;var t=Ki();this.outputShape=e,this.userCode="\n "+Ji+"\n\n void main() {\n float x = getAAtOutCoords();\n "+t.output+" = encode_float(x);\n }\n "},Xs=function(e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!1,this.outTexUsage=wr.DOWNLOAD;var t=Ki();this.outputShape=e,this.userCode="\n "+Ji+"\n\n void main() {\n ivec3 coords = getOutputCoords();\n float x = getChannel(getAAtOutCoords(), vec2(coords.y, coords.z));\n "+t.output+" = encode_float(x);\n }\n "},Ks=function(e,t,n){void 0===n&&(n=!1),this.variableNames=["A"];var r=Ki(),o=t[0],a=t[1];this.outputShape=e;var i="result";n&&(i="floor(result * 255. + 0.5)"),this.userCode="\n "+Yi(e)+"\n\n void main() {\n ivec3 coords = getOutputCoords();\n\n int flatIndex = getFlatIndex(coords);\n int offset = imod(flatIndex, 4);\n\n flatIndex = idiv(flatIndex, 4, 1.);\n \n int r = flatIndex / "+a+";\n int c = imod(flatIndex, "+a+");\n vec2 uv = (vec2(c, r) + halfCR) / vec2("+a+".0, "+o+".0);\n vec4 values = "+r.texture2D+"(A, uv);\n\n float result;\n\n if(offset == 0) {\n result = values[0];\n } else if(offset == 1) {\n result = values[1];\n } else if(offset == 2) {\n result = values[2];\n } else {\n result = values[3];\n }\n\n "+r.output+" = vec4("+i+", 0., 0., 0.);\n }\n "},$s=function(e,t,n){void 0===n&&(n=!1),this.variableNames=["A"],this.packedInputs=!1,this.packedOutput=!0;var r=Ki(),o=t[0],a=t[1];this.outputShape=e;var i="",s="result";n&&(s="floor(result * 255. + 0.5)");for(var u=0;u<=1;u++)for(var c=0;c<=1;c++){var l=2*u+c;i+="\n localCoords = coords;\n if(localCoords[2] + "+c+" < "+e[2]+") {\n localCoords[2] += "+c+";\n if(localCoords[1] + "+u+" < "+e[1]+") {\n localCoords[1] += "+u+";\n\n flatIndex = getFlatIndex(localCoords);\n offset = imod(flatIndex, 4);\n\n flatIndex = idiv(flatIndex, 4, 1.);\n\n r = flatIndex / "+a+";\n c = imod(flatIndex, "+a+");\n uv = (vec2(c, r) + halfCR) / vec2("+a+".0, "+o+".0);\n values = "+r.texture2D+"(A, uv);\n\n if(offset == 0) {\n result["+l+"] = values[0];\n } else if(offset == 1) {\n result["+l+"] = values[1];\n } else if(offset == 2) {\n result["+l+"] = values[2];\n } else {\n result["+l+"] = values[3];\n }\n }\n }\n "}this.userCode="\n "+Yi(e)+"\n\n void main() {\n ivec3 coords = getOutputCoords();\n\n vec4 result = vec4(0.);\n int flatIndex, r, c, offset;\n ivec3 localCoords;\n vec2 uv;\n vec4 values;\n\n "+i+"\n\n "+r.output+" = "+s+";\n }\n "},Ys=function(e,t,n){this.variableNames=["real","imag"];var r=t[1];this.outputShape=t;var o=n?"2.0 * "+Math.PI:"-2.0 * "+Math.PI,a=n?r+".0":"1.0";this.userCode="\n const float exponentMultiplier = "+o+";\n\n float unaryOpComplex(float real, float expR, float imag, float expI) {\n "+e+"\n }\n\n float mulMatDFT(int batch, int index) {\n float indexRatio = float(index) / float("+r+");\n float exponentMultiplierTimesIndexRatio =\n exponentMultiplier * indexRatio;\n\n float result = 0.0;\n\n for (int i = 0; i < "+r+"; i++) {\n // x = (-2|2 * PI / N) * index * i;\n float x = exponentMultiplierTimesIndexRatio * float(i);\n float expR = cos(x);\n float expI = sin(x);\n float real = getReal(batch, i);\n float imag = getImag(batch, i);\n\n result +=\n unaryOpComplex(real, expR, imag, expI) / "+a+";\n }\n\n return result;\n }\n\n void main() {\n ivec2 coords = getOutputCoords();\n setOutput(mulMatDFT(coords[0], coords[1]));\n }\n "},Js=function(){function e(e,t){this.outputShape=[],this.variableNames=["x"],this.outputShape=e,this.userCode="\n uniform float value;\n void main() {\n // Input can be obtained from uniform value.\n setOutput(value);\n }\n "}return e.prototype.getCustomSetupFunc=function(e){var t=this;return function(n,r){null==t.valueLoc&&(t.valueLoc=n.getUniformLocationNoThrow(r,"value")),n.gl.uniform1f(t.valueLoc,e)}},e}(),Zs=function(e,t,n){this.variableNames=["A","indices"];var r=e.slice();r[n]=t,this.outputShape=r,this.rank=r.length;var o=ss(this.rank),a=function(e,t){var n=e.length;if(n>4)throw Error("Gather for rank "+n+" is not yet supported");if(1===n)return"int(getIndices(resRC))";for(var r=["resRC.x","resRC.y","resRC.z","resRC.w"],o=[],a=0;a<e.length;a++)a===t?o.push("int(getIndices("+r[a]+"))"):o.push(""+r[a]);return o.join()}(e,n);this.userCode="\n void main() {\n "+o+" resRC = getOutputCoords();\n setOutput(getA("+a+"));\n }\n "},Qs=function(e,t,n){this.sliceDim=e,this.strides=t,this.variableNames=["x","indices"],this.outputShape=n;var r=ss(t.length),o=ss(n.length),a=this.sliceDim>1?"strides[j]":"strides";this.userCode="\n "+r+" strides = "+r+"("+this.strides+");\n void main() {\n "+o+" coords = getOutputCoords();\n int flattenIndex = 0;\n for (int j = 0; j < "+this.sliceDim+"; j++) {\n int index = round(getIndices(coords[0], j));\n flattenIndex += index * "+a+";\n }\n setOutput(getX(flattenIndex, coords[1]));\n }\n "};function eu(e,t){var n=Ki();return Nr(e,t,n.version+"\n precision highp float;\n "+n.attribute+" vec3 clipSpacePos;\n "+n.attribute+" vec2 uv;\n "+n.varyingVs+" vec2 resultUV;\n\n void main() {\n gl_Position = vec4(clipSpacePos, 1);\n resultUV = uv;\n }")}function tu(e,t){return Wr(e,t,new Float32Array([-1,1,0,0,1,-1,-1,0,0,0,1,1,0,1,1,1,-1,0,1,0]))}function nu(e,t){return Vr(e,t,new Uint16Array([0,1,2,2,1,3]))}function ru(e,t,n,r,o,a,i){qr(n,r);var s=Ur(e,t),u=e.TEXTURE_2D;return Ar(e,t,(function(){return e.bindTexture(u,s)})),Ar(e,t,(function(){return e.texParameteri(u,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE)})),Ar(e,t,(function(){return e.texParameteri(u,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE)})),Ar(e,t,(function(){return e.texParameteri(u,e.TEXTURE_MIN_FILTER,e.NEAREST)})),Ar(e,t,(function(){return e.texParameteri(u,e.TEXTURE_MAG_FILTER,e.NEAREST)})),Ar(e,t,(function(){return e.texImage2D(u,0,o,n,r,0,a,i,null)})),Ar(e,t,(function(){return e.bindTexture(e.TEXTURE_2D,null)})),s}function ou(e,t,n,r,o){var a=Cr(n,r);return ru(e,t,a[0],a[1],o.internalFormatFloat,o.textureFormatFloat,e.FLOAT)}function au(e,t,n,r,o){var a=Cr(n,r);return ru(e,t,a[0],a[1],o.internalFormatHalfFloat,o.textureFormatFloat,o.textureTypeHalfFloat)}function iu(e,t,n,r,o){var a=Cr(n,r);return ru(e,t,a[0],a[1],e.RGBA,e.RGBA,e.UNSIGNED_BYTE)}function su(e,t,n,r,o){var a=Rr(n,r);return ru(e,t,a[0],a[1],o.internalFormatPackedFloat,e.RGBA,e.FLOAT)}function uu(e,t,n,r,o){var a=Rr(n,r);return ru(e,t,a[0],a[1],o.internalFormatPackedHalfFloat,e.RGBA,o.textureTypeHalfFloat)}function cu(e,t,n,r){return Ar(e,t,(function(){return e.bindBuffer(e.ARRAY_BUFFER,r)})),Xr(e,t,n,"clipSpacePos",r,3,20,0)&&Xr(e,t,n,"uv",r,2,20,12)}function lu(e,t,n,r,o,a,i){var s,u,c;Ar(e,t,(function(){return e.bindTexture(e.TEXTURE_2D,n)})),a instanceof Uint8Array?(s=new Uint8Array(r*o*4),u=e.UNSIGNED_BYTE,c=e.RGBA):(s=new Float32Array(r*o*4),u=e.FLOAT,c=i.internalFormatPackedFloat),s.set(a),Ar(e,t,(function(){return e.texImage2D(e.TEXTURE_2D,0,c,r,o,0,e.RGBA,u,s)})),Ar(e,t,(function(){return e.bindTexture(e.TEXTURE_2D,null)}))}function fu(e,t,n,r){Ar(e,t,(function(){return e.bindTexture(e.TEXTURE_2D,n)})),r.data instanceof Uint8Array?Ar(e,t,(function(){return e.texImage2D(e.TEXTURE_2D,0,e.RGBA,r.width,r.height,0,e.RGBA,e.UNSIGNED_BYTE,r.data)})):Ar(e,t,(function(){return e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,r)})),Ar(e,t,(function(){return e.bindTexture(e.TEXTURE_2D,null)}))}function hu(e,t,n,r,o){var a=e.createBuffer();Ar(e,t,(function(){return e.bindBuffer(e.PIXEL_PACK_BUFFER,a)}));var i=16*n*r;return Ar(e,t,(function(){return e.bufferData(e.PIXEL_PACK_BUFFER,i,e.STREAM_READ)})),Ar(e,t,(function(){return e.readPixels(0,0,r,n,e.RGBA,e.FLOAT,0)})),Ar(e,t,(function(){return e.bindBuffer(e.PIXEL_PACK_BUFFER,null)})),a}function pu(e,t,n){var r=e,o=new Float32Array(n);return r.bindBuffer(r.PIXEL_PACK_BUFFER,t),r.getBufferSubData(r.PIXEL_PACK_BUFFER,0,o),r.bindBuffer(r.PIXEL_PACK_BUFFER,null),o}function du(e,t,n,r,o){var a=Cr(n,r),i=a[0],s=a[1],u=new Uint8Array(n*r*4);return Ar(e,t,(function(){return e.readPixels(0,0,i,s,o.downloadTextureFormat,e.UNSIGNED_BYTE,u)})),new Float32Array(u.buffer)}function vu(e,t,n,r,o,a,i,s){var u=e,c=new Float32Array(function(e,t){var n=Rr(e,t);return n[0]*n[1]*4}(a,i));return u.bindBuffer(u.PIXEL_PACK_BUFFER,t),u.getBufferSubData(u.PIXEL_PACK_BUFFER,0,c),u.bindBuffer(u.PIXEL_PACK_BUFFER,null),c}function mu(e,t,n,r){var o=new Float32Array(n*r*4);return Ar(e,t,(function(){return e.readPixels(0,0,r,n,e.RGBA,e.FLOAT,o)})),o}var gu=Object.freeze({createVertexShader:eu,createVertexBuffer:tu,createIndexBuffer:nu,createFloat32MatrixTexture:ou,createFloat16MatrixTexture:au,createUnsignedBytesMatrixTexture:iu,createPackedMatrixTexture:su,createFloat16PackedMatrixTexture:uu,bindVertexProgramAttributeStreams:cu,uploadDenseMatrixToTexture:lu,uploadPixelDataToTexture:fu,createBufferFromOutputTexture:hu,downloadFloat32MatrixFromBuffer:pu,downloadByteEncodedFloatMatrixFromOutputTexture:du,downloadPackedMatrixFromBuffer:vu,downloadMatrixFromPackedOutputTexture:mu}),yu=function(){function e(e){this.outputTexture=null,this.program=null,this.disposed=!1,this.vertexAttrsAreBound=!1,this.itemsToPoll=[];var t=Yt().getNumber("WEBGL_VERSION");null!=e?(this.gl=e,kr(t,e)):this.gl=Or(t);var n="WEBGL_color_buffer_float";if(1===Yt().getNumber("WEBGL_VERSION")){if(this.textureFloatExtension=Dr(this.gl,this.debug,"OES_texture_float"),po(this.gl,"OES_texture_half_float"))this.textureHalfFloatExtension=Dr(this.gl,this.debug,"OES_texture_half_float");else if(Yt().get("WEBGL_FORCE_F16_TEXTURES"))throw new Error("GL context does not support half float textures, yet the environment flag WEBGL_FORCE_F16_TEXTURES is set to true.");if(this.colorBufferFloatExtension=this.gl.getExtension(n),po(this.gl,"EXT_color_buffer_half_float"))this.colorBufferHalfFloatExtension=Dr(this.gl,this.debug,"EXT_color_buffer_half_float");else if(Yt().get("WEBGL_FORCE_F16_TEXTURES"))throw new Error("GL context does not support color renderable half floats, yet the environment flag WEBGL_FORCE_F16_TEXTURES is set to true.")}else if(n="EXT_color_buffer_float",po(this.gl,n))this.colorBufferFloatExtension=this.gl.getExtension(n);else{if(!po(this.gl,"EXT_color_buffer_half_float"))throw new Error("GL context does not support color renderable floats");this.colorBufferHalfFloatExtension=this.gl.getExtension("EXT_color_buffer_half_float")}this.vertexBuffer=tu(this.gl,this.debug),this.indexBuffer=nu(this.gl,this.debug),this.framebuffer=Gr(this.gl,this.debug),this.textureConfig=Sr(this.gl,this.textureHalfFloatExtension)}return Object.defineProperty(e.prototype,"debug",{get:function(){return Yt().getBool("DEBUG")},enumerable:!0,configurable:!0}),e.prototype.dispose=function(){var e=this;if(!this.disposed){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.");var t=this.gl;Ar(t,this.debug,(function(){return t.finish()})),Ar(t,this.debug,(function(){return t.bindFramebuffer(t.FRAMEBUFFER,null)})),Ar(t,this.debug,(function(){return t.deleteFramebuffer(e.framebuffer)})),Ar(t,this.debug,(function(){return t.bindBuffer(t.ARRAY_BUFFER,null)})),Ar(t,this.debug,(function(){return t.bindBuffer(t.ELEMENT_ARRAY_BUFFER,null)})),Ar(t,this.debug,(function(){return t.deleteBuffer(e.indexBuffer)})),this.disposed=!0}},e.prototype.createFloat32MatrixTexture=function(e,t){return this.throwIfDisposed(),ou(this.gl,this.debug,e,t,this.textureConfig)},e.prototype.createFloat16MatrixTexture=function(e,t){return this.throwIfDisposed(),au(this.gl,this.debug,e,t,this.textureConfig)},e.prototype.createUnsignedBytesMatrixTexture=function(e,t){return this.throwIfDisposed(),iu(this.gl,this.debug,e,t,this.textureConfig)},e.prototype.uploadPixelDataToTexture=function(e,t){this.throwIfDisposed(),fu(this.gl,this.debug,e,t)},e.prototype.uploadDenseMatrixToTexture=function(e,t,n,r){this.throwIfDisposed(),lu(this.gl,this.debug,e,t,n,r,this.textureConfig)},e.prototype.createFloat16PackedMatrixTexture=function(e,t){return this.throwIfDisposed(),uu(this.gl,this.debug,e,t,this.textureConfig)},e.prototype.createPackedMatrixTexture=function(e,t){return this.throwIfDisposed(),su(this.gl,this.debug,e,t,this.textureConfig)},e.prototype.deleteMatrixTexture=function(e){var t=this;this.throwIfDisposed(),this.outputTexture===e&&(Qr(this.gl,this.debug,this.framebuffer),this.outputTexture=null),Ar(this.gl,this.debug,(function(){return t.gl.deleteTexture(e)}))},e.prototype.downloadByteEncodedFloatMatrixFromOutputTexture=function(e,t,n){var r=this;return this.downloadMatrixDriver(e,(function(){return du(r.gl,r.debug,t,n,r.textureConfig)}))},e.prototype.downloadPackedMatrixFromBuffer=function(e,t,n,r,o,a){return vu(this.gl,e,0,0,0,o,a,this.textureConfig)},e.prototype.downloadFloat32MatrixFromBuffer=function(e,t){return pu(this.gl,e,t)},e.prototype.createBufferFromTexture=function(e,t,n){this.bindTextureToFrameBuffer(e);var r=hu(this.gl,this.debug,t,n,this.textureConfig);return this.unbindTextureToFrameBuffer(),r},e.prototype.createAndWaitForFence=function(){var e=this.createFence(this.gl);return this.pollFence(e)},e.prototype.createFence=function(e){var t,n,r=this;if(Yt().getBool("WEBGL_FENCE_API_ENABLED")){var o=e,a=o.fenceSync(o.SYNC_GPU_COMMANDS_COMPLETE,0);e.flush(),n=function(){var e=o.clientWaitSync(a,0,0);return e===o.ALREADY_SIGNALED||e===o.CONDITION_SATISFIED},t=a}else Yt().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")>0?(t=this.beginQuery(),this.endQuery(),n=function(){return r.isQueryAvailable(t,Yt().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION"))}):n=function(){return!0};return{query:t,isFencePassed:n}},e.prototype.downloadMatrixFromPackedTexture=function(e,t,n){var r=this;return this.downloadMatrixDriver(e,(function(){return mu(r.gl,r.debug,t,n)}))},e.prototype.createProgram=function(e){this.throwIfDisposed();var t=this.gl,n=Mr(t,this.debug,e),r=eu(t,this.debug),o=Lr(t,this.debug);return Ar(t,this.debug,(function(){return t.attachShader(o,r)})),Ar(t,this.debug,(function(){return t.attachShader(o,n)})),zr(t,this.debug,o),this.debug&&Hr(t,this.debug,o),this.vertexAttrsAreBound||(this.setProgram(o),this.vertexAttrsAreBound=cu(t,this.debug,this.program,this.vertexBuffer)),o},e.prototype.deleteProgram=function(e){var t=this;this.throwIfDisposed(),e===this.program&&(this.program=null),null!=e&&Ar(this.gl,this.debug,(function(){return t.gl.deleteProgram(e)}))},e.prototype.setProgram=function(e){var t=this;this.throwIfDisposed(),this.program=e,null!=this.program&&this.debug&&Hr(this.gl,this.debug,this.program),Ar(this.gl,this.debug,(function(){return t.gl.useProgram(e)}))},e.prototype.getUniformLocation=function(e,t,n){return void 0===n&&(n=!0),this.throwIfDisposed(),n?$r(this.gl,this.debug,e,t):Yr(this.gl,e,t)},e.prototype.getAttributeLocation=function(e,t){var n=this;return this.throwIfDisposed(),Ar(this.gl,this.debug,(function(){return n.gl.getAttribLocation(e,t)}))},e.prototype.getUniformLocationNoThrow=function(e,t){return this.throwIfDisposed(),this.gl.getUniformLocation(e,t)},e.prototype.setInputMatrixTexture=function(e,t,n){this.throwIfDisposed(),this.throwIfNoProgram(),Jr(this.gl,this.debug,this.program,e,t,n)},e.prototype.setOutputMatrixTexture=function(e,t,n){this.setOutputMatrixTextureDriver(e,n,t)},e.prototype.setOutputPackedMatrixTexture=function(e,t,n){this.throwIfDisposed();var r=Rr(t,n),o=r[0],a=r[1];this.setOutputMatrixTextureDriver(e,o,a)},e.prototype.setOutputMatrixWriteRegion=function(e,t,n,r){this.setOutputMatrixWriteRegionDriver(n,e,r,t)},e.prototype.setOutputPackedMatrixWriteRegion=function(e,t,n,r){throw new Error("setOutputPackedMatrixWriteRegion not implemented.")},e.prototype.debugValidate=function(){null!=this.program&&Hr(this.gl,this.debug,this.program),eo(this.gl)},e.prototype.executeProgram=function(){this.throwIfDisposed(),this.throwIfNoProgram();var e=this.gl;this.debug&&this.debugValidate(),Ar(e,this.debug,(function(){return e.drawElements(e.TRIANGLES,6,e.UNSIGNED_SHORT,0)}))},e.prototype.blockUntilAllProgramsCompleted=function(){var e=this;this.throwIfDisposed(),Ar(this.gl,this.debug,(function(){return e.gl.finish()}))},e.prototype.getQueryTimerExtension=function(){return null==this.disjointQueryTimerExtension&&(this.disjointQueryTimerExtension=Dr(this.gl,this.debug,2===Yt().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")?"EXT_disjoint_timer_query_webgl2":"EXT_disjoint_timer_query")),this.disjointQueryTimerExtension},e.prototype.getQueryTimerExtensionWebGL2=function(){return this.getQueryTimerExtension()},e.prototype.getQueryTimerExtensionWebGL1=function(){return this.getQueryTimerExtension()},e.prototype.beginQuery=function(){if(2===Yt().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")){var e=this.gl,t=this.getQueryTimerExtensionWebGL2(),n=e.createQuery();return e.beginQuery(t.TIME_ELAPSED_EXT,n),n}var r=this.getQueryTimerExtensionWebGL1(),o=r.createQueryEXT();return r.beginQueryEXT(r.TIME_ELAPSED_EXT,o),o},e.prototype.endQuery=function(){if(2!==Yt().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")){var e=this.getQueryTimerExtensionWebGL1();e.endQueryEXT(e.TIME_ELAPSED_EXT)}else{var t=this.gl,n=this.getQueryTimerExtensionWebGL2();t.endQuery(n.TIME_ELAPSED_EXT)}},e.prototype.waitForQueryAndGetTime=function(e){return Xt(this,void 0,void 0,(function(){var t=this;return Kt(this,(function(n){switch(n.label){case 0:return[4,yn((function(){return t.disposed||t.isQueryAvailable(e,Yt().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION"))}))];case 1:return n.sent(),[2,this.getQueryTime(e,Yt().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION"))]}}))}))},e.prototype.getQueryTime=function(e,t){if(0===t)return null;if(2===t){var n=this.gl;return n.getQueryParameter(e,n.QUERY_RESULT)/1e6}var r=this.getQueryTimerExtensionWebGL1();return r.getQueryObjectEXT(e,r.QUERY_RESULT_EXT)/1e6},e.prototype.isQueryAvailable=function(e,t){if(0===t)return!0;if(2===t){var n=this.gl,r=this.getQueryTimerExtensionWebGL2(),o=n.getQueryParameter(e,n.QUERY_RESULT_AVAILABLE);return null==this.disjoint&&(this.disjoint=this.gl.getParameter(r.GPU_DISJOINT_EXT)),o&&!this.disjoint}return o=(r=this.getQueryTimerExtensionWebGL1()).getQueryObjectEXT(e,r.QUERY_RESULT_AVAILABLE_EXT),null==this.disjoint&&(this.disjoint=this.gl.getParameter(r.GPU_DISJOINT_EXT)),o&&!this.disjoint},e.prototype.pollFence=function(e){var t=this;return new Promise((function(n){t.addItemToPoll((function(){return e.isFencePassed()}),(function(){return n()}))}))},e.prototype.pollItems=function(){for(var e=function(e){for(var t=0;t<e.length;++t){if(!e[t]())break}return t-1}(this.itemsToPoll.map((function(e){return e.isDoneFn}))),t=0;t<=e;++t)(0,this.itemsToPoll[t].resolveFn)();this.itemsToPoll=this.itemsToPoll.slice(e+1)},e.prototype.addItemToPoll=function(e,t){var n=this;this.itemsToPoll.push({isDoneFn:e,resolveFn:t}),this.itemsToPoll.length>1||yn((function(){return n.pollItems(),0===n.itemsToPoll.length}))},e.prototype.bindTextureToFrameBuffer=function(e){this.throwIfDisposed(),Zr(this.gl,this.debug,e,this.framebuffer),this.debug&&eo(this.gl)},e.prototype.unbindTextureToFrameBuffer=function(){null!=this.outputTexture?(Zr(this.gl,this.debug,this.outputTexture,this.framebuffer),this.debug&&eo(this.gl)):Qr(this.gl,this.debug,this.framebuffer)},e.prototype.downloadMatrixDriver=function(e,t){this.bindTextureToFrameBuffer(e);var n=t();return this.unbindTextureToFrameBuffer(),n},e.prototype.setOutputMatrixTextureDriver=function(e,t,n){this.throwIfDisposed();var r=this.gl;Zr(r,this.debug,e,this.framebuffer),this.debug&&eo(r),this.outputTexture=e,Ar(r,this.debug,(function(){return r.viewport(0,0,t,n)})),Ar(r,this.debug,(function(){return r.scissor(0,0,t,n)}))},e.prototype.setOutputMatrixWriteRegionDriver=function(e,t,n,r){var o=this;this.throwIfDisposed(),Ar(this.gl,this.debug,(function(){return o.gl.scissor(e,t,n,r)}))},e.prototype.throwIfDisposed=function(){if(this.disposed)throw new Error("Attempted to use disposed GPGPUContext.")},e.prototype.throwIfNoProgram=function(){if(null==this.program)throw new Error("No GPU program is currently set.")},e}();function bu(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((function(e,n){var r=e.logicalShape,o=t[n],a=o.shape;if(!pn(r,a))throw Error("Binary was compiled with different shapes than the current args. Shapes "+r+" and "+a+" must match");if(!e.isUniform||!o.isUniform){var i=e.texShape,s=o.isUniform?null:o.texData.texShape;if(!pn(i,s))throw Error("Binary was compiled with different texture shapes than the current args. Shape "+i+" and "+s+" must match")}}))}var wu=function(e,t,n){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e;for(var r=n.filterWidth,o=n.inChannels,a=n.strideWidth,i=n.strideHeight,s=n.padInfo,u=n.outWidth,c=n.dilationWidth,l=n.dilationHeight,f=n.dataFormat,h=s.left,p=s.top,d=o*r,v=Ki(),m="channelsLast"===f,g=m?0:1,y=m?1:2,b="",w=0;w<=1;w++)for(var x=0;x<=1;x++)b+="\n blockIndex = rc.y + "+x+";\n pos = rc.x + "+w+";\n\n if(blockIndex < "+e[1]+" && pos < "+e[0]+") {\n offsetY = int(blockIndex / ("+u+")) * "+i+" - "+p+";\n d0 = offsetY + "+l+" * (pos / "+d+");\n\n if(d0 < "+t[g]+" && d0 >= 0) {\n\n offsetX = int(mod(float(blockIndex), "+u+".) * "+a+". - "+h+".);\n d1 = offsetX + "+c+" * (int(mod(float(pos), "+d+".) / "+o+".));\n\n if(d1 < "+t[y]+" && d1 >= 0) {\n\n ch = int(mod(float(pos), "+o+".));\n\n if ("+m+") {\n innerDims = vec2(d1, ch);\n result["+(2*w+x)+"] = getChannel(\n getA(d0, int(innerDims.x),\n int(innerDims.y)), innerDims);\n } else {\n innerDims = vec2(d0, d1);\n result["+(2*w+x)+"] = getChannel(\n getA(ch, int(innerDims.x),\n int(innerDims.y)), innerDims);\n }\n }\n }\n }\n ";this.userCode="\n void main() {\n ivec2 rc = getOutputCoords();\n\n vec4 result = vec4(0);\n\n int blockIndex, pos, offsetY, d0, offsetX, d1, ch;\n vec2 innerDims;\n\n "+b+"\n\n "+v.output+" = result;\n }\n "},xu=function(e,t,n,r,o){this.variableNames=["x"],this.outputShape=[];var a,i=t,s=e[3]-1;this.outputShape=e;var u="float("+n+") + float("+r+") * sum";a=.5===o?"inversesqrt("+u+")":1===o?"1.0/("+u+")":"exp(log("+u+") * float(-"+o+"));",this.userCode="\n void main() {\n ivec4 coords = getOutputCoords();\n int b = coords[0];\n int r = coords[1];\n int c = coords[2];\n int d = coords[3];\n float x = getX(b, r, c, d);\n float sum = 0.0;\n for (int j = -"+i+"; j <= "+i+"; j++) {\n int idx = d + j;\n if (idx >= 0 && idx <= "+s+") {\n float z = getX(b, r, c, idx);\n sum += z * z;\n }\n }\n float val = x * "+a+";\n setOutput(val);\n }\n "},Eu=function(e,t,n,r,o){this.variableNames=["inputImage","outputImage","dy"],this.outputShape=[],this.outputShape=e,this.depth=e[3],this.depthRadius=t,this.bias=n,this.alpha=r,this.beta=o,this.userCode="\n void main() {\n ivec4 coords = getOutputCoords();\n int b = coords[0];\n int r = coords[1];\n int c = coords[2];\n\n float result = 0.0;\n for (int d = 0; d < "+this.depth+"; ++d) {\n int depthBegin = int(max(0.0, float(d - "+t+")));\n int depthEnd = int(min(float("+this.depth+"),\n float(d + "+t+" + 1)));\n\n const int MIN_DEPTH_BEGIN = 0;\n const int MAX_DEPTH_END = "+this.depth+";\n\n float norm = 0.0;\n for (int k = MIN_DEPTH_BEGIN; k < MAX_DEPTH_END; ++k) {\n if (k < depthBegin){\n continue;\n }\n else if (k >= depthBegin && k < depthEnd) {\n norm += getInputImage(b, r, c, k) * getInputImage(b, r, c, k);\n }\n else {\n break;\n }\n }\n\n norm = float("+r+") * norm + float("+n+");\n\n for(int k = MIN_DEPTH_BEGIN; k < MAX_DEPTH_END; ++k){\n if (k < depthBegin){\n continue;\n }\n else if (k >= depthBegin && k < depthEnd){\n float dyi = -2.0 * float("+r+")\n * float("+o+")\n * getInputImage(b ,r ,c, k) * getOutputImage(b, r, c, d)\n / norm;\n if (k == d) {\n dyi += pow(norm, -1.0 * "+o+");\n }\n if (k == coords[3]) {\n dyi *= getDy(b, r, c, d);\n result += dyi;\n }\n }\n else {\n break;\n }\n }\n }\n setOutput(result);\n }\n "},_u=function(e,t,n,r,o){this.variableNames=["x"],this.outputShape=[],this.packedInputs=!0,this.packedOutput=!0;var a,i=t,s=e[3]-1;this.outputShape=e;var u="float("+n+") + float("+r+") * sum";a=.5===o?"inversesqrt("+u+")":1===o?"1.0/("+u+")":"exp(log("+u+") * float(-"+o+"));",this.userCode="\n void main() {\n ivec4 coords = getOutputCoords();\n int b = coords.x;\n int r = coords.y;\n int c = coords.z;\n int d = coords.w;\n\n bool hasNextCol = d < "+this.outputShape[3]+";\n bool hasNextRow = c < "+this.outputShape[2]+";\n\n vec4 sum = vec4(0.);\n vec4 xFragAtOutputCoords = getX(b, r, c, d);\n\n vec4 xAtOutputCoords = vec4(\n getChannel(xFragAtOutputCoords, vec2(c, d)),\n hasNextCol ?\n getChannel(xFragAtOutputCoords, vec2(c, d + 1)) : 0.0,\n hasNextRow ?\n getChannel(xFragAtOutputCoords , vec2(c + 1, d)) : 0.0,\n (hasNextRow && hasNextCol) ?\n getChannel(xFragAtOutputCoords, vec2(c + 1, d + 1)) : 0.0\n );\n\n int firstChannel = d - "+i+";\n vec2 cache = vec2(0.);\n if(firstChannel >= 0){\n vec4 firstChannelFrag = getX(b, r, c, firstChannel);\n cache.x = getChannel(firstChannelFrag, vec2(c, firstChannel));\n if(hasNextRow){\n cache.y = getChannel(firstChannelFrag, vec2(c + 1, firstChannel));\n }\n }\n\n ivec2 depth = ivec2(d, d + 1);\n for (int j = - "+i+"; j <= "+i+"; j++) {\n ivec2 idx = depth + j;\n bvec2 aboveLowerBound = greaterThanEqual(idx, ivec2(0));\n bvec2 belowUpperBound = lessThanEqual(idx, ivec2("+s+"));\n\n bool depthInRange = aboveLowerBound.x && belowUpperBound.x;\n bool depthPlusOneInRange = aboveLowerBound.y && belowUpperBound.y;\n\n if(depthInRange || depthPlusOneInRange){\n vec4 z = vec4(0.);\n vec4 xFragAtCurrentDepth;\n z.xz = cache.xy;\n if(depthPlusOneInRange && hasNextCol){\n xFragAtCurrentDepth = idx.y != d ?\n getX(b, r, c, idx.y) : xFragAtOutputCoords;\n z.y = getChannel(xFragAtCurrentDepth, vec2(c, idx.y));\n if(hasNextRow){\n z.w = getChannel(xFragAtCurrentDepth, vec2(c + 1, idx.y));\n }\n }\n cache.xy = z.yw;\n sum += z * z;\n }\n }\n vec4 result = xAtOutputCoords * "+a+";\n setOutput(result);\n }\n "},ku=function(e){this.variableNames=["dy","maxPos"],this.outputShape=e.inShape;var t=e.strideHeight,n=e.strideWidth,r=e.dilationHeight,o=e.effectiveFilterHeight,a=e.effectiveFilterWidth,i=o-1-e.padInfo.top,s=a-1-e.padInfo.left,u=o*a-1;this.userCode="\n const ivec2 pads = ivec2("+i+", "+s+");\n\n void main() {\n ivec4 coords = getOutputCoords();\n int b = coords[0];\n int d = coords[3];\n\n ivec2 dyRCCorner = coords.yz - pads;\n int dyRCorner = dyRCCorner.x;\n int dyCCorner = dyRCCorner.y;\n\n // Convolve dy(?, ?, d) with pos mask(:, :, d) to get dx(xR, xC, d).\n // ? = to be determined. : = across all values in that axis.\n float dotProd = 0.0;\n for (int wR = 0; wR < "+o+";\n wR += "+r+") {\n float dyR = float(dyRCorner + wR) / "+t+".0;\n\n if (dyR < 0.0 || dyR >= "+e.outHeight+".0 || fract(dyR) > 0.0) {\n continue;\n }\n int idyR = int(dyR);\n\n for (int wC = 0; wC < "+a+"; wC++) {\n float dyC = float(dyCCorner + wC) / "+n+".0;\n\n if (dyC < 0.0 || dyC >= "+e.outWidth+".0 ||\n fract(dyC) > 0.0) {\n continue;\n }\n int idyC = int(dyC);\n\n float dyValue = getDy(b, idyR, idyC, d);\n int maxPosValue = "+u+" - int(getMaxPos(b, idyR, idyC, d));\n\n // Get the current value, check it against the value from the\n // position matrix.\n int curPosValue = wR * "+a+" + wC;\n float mask = float(maxPosValue == curPosValue ? 1.0 : 0.0);\n\n dotProd += dyValue * mask;\n }\n }\n setOutput(dotProd);\n }\n "},Ou=function(e){this.variableNames=["dy","maxPos"],this.outputShape=e.inShape;var t=e.strideDepth,n=e.strideHeight,r=e.strideWidth,o=e.dilationDepth,a=e.dilationHeight,i=e.dilationWidth,s=e.effectiveFilterDepth,u=e.effectiveFilterHeight,c=e.effectiveFilterWidth,l=s-1-e.padInfo.front,f=u-1-e.padInfo.top,h=c-1-e.padInfo.left,p=s*u*c-1;this.userCode="\n const ivec3 pads = ivec3("+l+", "+f+", "+h+");\n\n void main() {\n ivec5 coords = getOutputCoords();\n int batch = coords.x;\n int ch = coords.u;\n\n ivec3 dyCorner = ivec3(coords.y, coords.z, coords.w) - pads;\n int dyDCorner = dyCorner.x;\n int dyRCorner = dyCorner.y;\n int dyCCorner = dyCorner.z;\n\n // Convolve dy(?, ?, ?, ch) with pos mask(:, :, :, d) to get\n // dx(xD, xR, xC, ch).\n // ? = to be determined. : = across all values in that axis.\n float dotProd = 0.0;\n\n for (int wD = 0; wD < "+s+";\n wD += "+o+") {\n float dyD = float(dyDCorner + wD) / "+t+".0;\n\n if (dyD < 0.0 || dyD >= "+e.outDepth+".0 || fract(dyD) > 0.0) {\n continue;\n }\n int idyD = int(dyD);\n\n for (int wR = 0; wR < "+u+";\n wR += "+a+") {\n float dyR = float(dyRCorner + wR) / "+n+".0;\n\n if (dyR < 0.0 || dyR >= "+e.outHeight+".0 ||\n fract(dyR) > 0.0) {\n continue;\n }\n int idyR = int(dyR);\n\n for (int wC = 0; wC < "+c+";\n wC += "+i+") {\n float dyC = float(dyCCorner + wC) / "+r+".0;\n\n if (dyC < 0.0 || dyC >= "+e.outWidth+".0 ||\n fract(dyC) > 0.0) {\n continue;\n }\n int idyC = int(dyC);\n\n float dyValue = getDy(batch, idyD, idyR, idyC, ch);\n int maxPosValue = "+p+" -\n int(getMaxPos(batch, idyD, idyR, idyC, ch));\n\n // Get the current value, check it against the value from the\n // position matrix.\n int curPosValue =\n wD * "+u+" * "+c+" +\n wR * "+c+" + wC;\n float mask = float(maxPosValue == curPosValue ? 1.0 : 0.0);\n\n dotProd += dyValue * mask;\n }\n }\n }\n setOutput(dotProd);\n }\n "},Cu=function(e,t,n,r,o,a,i){void 0===n&&(n=!1),void 0===r&&(r=!1),void 0===o&&(o=!1),void 0===a&&(a=null),void 0===i&&(i=!1),this.variableNames=["matrixA","matrixB"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=t;var s=n?e[1]:e[2],u=Math.ceil(s/2),c=n?"i * 2, rc.y":"rc.y, i * 2",l=r?"rc.z, i * 2":"i * 2, rc.z",f=n?["a.xxyy","a.zzww"]:["a.xxzz","a.yyww"],h=r?["b.xzxz","b.ywyw"]:["b.xyxy","b.zwzw"],p="",d="";a&&(p=i?"vec4 activation(vec4 a) {\n vec4 b = getPreluActivationWeightsAtOutCoords();\n "+a+"\n }":"vec4 activation(vec4 x) {\n "+a+"\n }",d="result = activation(result);");var v=o?"result += getBiasAtOutCoords();":"";o&&this.variableNames.push("bias"),i&&this.variableNames.push("preluActivationWeights"),this.userCode="\n "+p+"\n\n const float sharedDimension = "+u+".0;\n\n vec4 dot2x2ARowBCol(ivec3 rc) {\n vec4 result = vec4(0);\n for (int i = 0; i < "+u+"; i++) {\n vec4 a = getMatrixA(rc.x, "+c+");\n vec4 b = getMatrixB(rc.x, "+l+");\n\n // These swizzled products need to be separately added.\n // See: https://github.com/tensorflow/tfjs/issues/1735\n result += ("+f[0]+" * "+h[0]+");\n result += ("+f[1]+" * "+h[1]+");\n }\n return result;\n }\n\n void main() {\n ivec3 rc = getOutputCoords();\n vec4 result = dot2x2ARowBCol(rc);\n\n "+v+"\n\n "+d+"\n\n setOutput(result);\n }\n "},Iu=function(){function e(e,t,n){this.variableNames=["probs"],this.outputShape=[e,n],this.userCode="\n uniform float seed;\n\n void main() {\n ivec2 coords = getOutputCoords();\n int batch = coords[0];\n\n float r = random(seed);\n float cdf = 0.0;\n\n for (int i = 0; i < "+(t-1)+"; i++) {\n cdf += getProbs(batch, i);\n\n if (r < cdf) {\n setOutput(float(i));\n return;\n }\n }\n\n // If no other event happened, last event happened.\n setOutput(float("+(t-1)+"));\n }\n "}return e.prototype.getCustomSetupFunc=function(e){var t=this;return function(n,r){null==t.seedLoc&&(t.seedLoc=n.getUniformLocation(r,"seed")),n.gl.uniform1f(t.seedLoc,e)}},e}(),Ru=function(e,t,n,r){this.variableNames=["indices"],this.outputShape=[e,t],this.userCode="\n void main() {\n ivec2 coords = getOutputCoords();\n int index = round(getIndices(coords.x));\n setOutput(mix(float("+r+"), float("+n+"),\n float(index == coords.y)));\n }\n "},Su=function(e){this.variableNames=["A"],this.packedInputs=!1,this.packedOutput=!0,this.outputShape=e;var t=e.length;if(0===t)this.userCode="\n void main() {\n setOutput(vec4(getA(), 0., 0., 0.));\n }\n ";else{var n=Xi("rc",t),r=ss(t),o=function(e,t,n){if(1===e)return"rc > "+t[0];for(var r="",o=e-2;o<e;o++)r+=n[o]+" >= "+t[o],o<e-1&&(r+="||");return r}(t,e,n),a=function(e,t,n,r){if(1===e)return"";var o=r.slice(-2);return"\n int r = "+o[0]+";\n int c = "+o[1]+";\n int rp1 = r + 1;\n int cp1 = c + 1;\n\n bool cEdge = cp1 >= "+t+";\n bool rEdge = rp1 >= "+n+";\n "}(t,e[e.length-1],e[e.length-2],n),i=function(e,t){var n=e.length,r=function(e,t){for(var n=[],r=0;r<=1;r++)for(var o=0;o<=1;o++){for(var a=(0===r?"r":"rp1")+", "+(0===o?"c":"cp1"),i=2;i<e;i++)a=t[t.length-1-i]+","+a;n.push(a)}return n}(n,t);return 1===n?"getA(rc),\n rc + 1 >= "+e[0]+" ? 0. : getA(rc + 1),\n 0, 0":"getA("+r[0]+"),\n cEdge ? 0. : getA("+r[1]+"),\n rEdge ? 0. : getA("+r[2]+"),\n rEdge || cEdge ? 0. : getA("+r[3]+")"}(e,n);this.userCode="\n void main() {\n "+r+" rc = getOutputCoords();\n\n if("+o+") {\n setOutput(vec4(0));\n } else {\n "+a+"\n\n setOutput(vec4("+i+"));\n }\n }\n "}},Au=function(e,t,n){this.variableNames=["x"],this.outputShape=t.map((function(t,n){return t[0]+e[n]+t[1]}));var r=e.length,o=ss(r),a=t.map((function(e){return e[0]})).join(","),i=t.map((function(t,n){return t[0]+e[n]})).join(","),s=["coords[0]","coords[1]","coords[2]","coords[3]"].slice(0,r);this.userCode=1!==r?"\n "+o+" start = "+o+"("+a+");\n "+o+" end = "+o+"("+i+");\n\n void main() {\n "+o+" outC = getOutputCoords();\n if (any(lessThan(outC, start)) || any(greaterThanEqual(outC, end))) {\n setOutput(float("+n+"));\n } else {\n "+o+" coords = outC - start;\n setOutput(getX("+s+"));\n }\n }\n ":"\n int start = "+a+";\n int end = "+i+";\n\n void main() {\n int outC = getOutputCoords();\n if (outC < start || outC >= end) {\n setOutput(float("+n+"));\n } else {\n setOutput(getX(outC - start));\n }\n }\n "},Pu=function(e,t,n){this.variableNames=["x"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=t.map((function(t,n){return t[0]+e[n]+t[1]}));for(var r=e.length,o=ss(r),a=t.map((function(e){return e[0]})).join(","),i=t.map((function(t,n){return t[0]+e[n]})).join(","),s=Xi("rc",r),u=Xi("source",r),c=s[r-1]+" < "+this.outputShape[r-1],l=1===r?"source":"vec2("+u.slice(-2).join()+")",f=[o+" rc = outputLoc;",s[r-1]+" += 1;\n if("+c+") {\n ",1===r?"":"}\n rc = outputLoc;\n "+s[r-2]+" += 1;\n if("+s[r-2]+" < "+this.outputShape[r-2]+") {",1===r?"":" "+s[r-1]+" += 1;\n if("+c+") {"],h=1===r?"rc < start || rc >= end":"any(lessThan(rc, start)) || any(greaterThanEqual(rc, end))",p="",d=0,v=1===r?2:4;d<v;d++)p+="\n "+f[d]+"\n if ("+h+") {\n result["+d+"] = float("+n+");\n } else {\n "+o+" source = rc - start;\n result["+d+"] = getChannel(getX("+u.join()+"), "+l+");\n }\n ";p+=1===r?"} ":"}}",this.userCode="\n const "+o+" start = "+o+"("+a+");\n const "+o+" end = "+o+"("+i+");\n\n void main() {\n "+o+" outputLoc = getOutputCoords();\n vec4 result = vec4(0.);\n "+p+"\n setOutput(result);\n }\n "},Tu=function(e,t,n){if(this.variableNames=["x"],"avg"===t&&n)throw new Error("Cannot compute positions for average pool.");var r=e.filterWidth,o=e.strideHeight,a=e.strideWidth,i=e.dilationHeight,s=e.dilationWidth,u=e.effectiveFilterHeight,c=e.effectiveFilterWidth,l=e.padInfo.top,f=e.padInfo.left;this.outputShape=e.outShape;var h="avg"===t,p="0.0";if(h||(p="-1.0 / 1e-20"),n)this.userCode="\n const ivec2 strides = ivec2("+o+", "+a+");\n const ivec2 pads = ivec2("+l+", "+f+");\n\n void main() {\n ivec4 coords = getOutputCoords();\n int batch = coords[0];\n int d = coords[3];\n\n ivec2 xRCCorner = coords.yz * strides - pads;\n int xRCorner = xRCCorner.x;\n int xCCorner = xRCCorner.y;\n\n // max/min x(?, ?, d) to get y(yR, yC, d).\n // ? = to be determined\n float minMaxValue = 0.0;\n float minMaxValueFound = 0.0;\n int minMaxPosition = 0;\n float avgValue = 0.0;\n\n for (int wR = 0; wR < "+u+";\n wR += "+i+") {\n int xR = xRCorner + wR;\n\n if (xR < 0 || xR >= "+e.inHeight+") {\n continue;\n }\n\n for (int wC = 0; wC < "+c+";\n wC += "+s+") {\n int xC = xCCorner + wC;\n\n if (xC < 0 || xC >= "+e.inWidth+") {\n continue;\n }\n\n float value = getX(batch, xR, xC, d);\n\n // If a min / max value has already been found, use it. If not,\n // use the current value.\n float currMinMaxValue = mix(\n value, minMaxValue, minMaxValueFound);\n if (value >= currMinMaxValue) {\n minMaxValue = value;\n minMaxValueFound = 1.0;\n minMaxPosition = wR * "+c+" + wC;\n }\n }\n }\n setOutput(float(minMaxPosition));\n }\n ";else{var d=t+"("+t+"("+t+"(minMaxValue[0], minMaxValue[1]), minMaxValue[2]), minMaxValue[3])";"avg"===t&&(d="avgValue / count");var v=4*Math.floor(r/4),m=r%4,g="\n if ("+h+") {\n avgValue += dot(values, ones);\n } else {\n minMaxValue = max(values, minMaxValue);\n }\n ";this.userCode="\n const ivec2 strides = ivec2("+o+", "+a+");\n const ivec2 pads = ivec2("+l+", "+f+");\n const float initializationValue = "+p+";\n const vec4 ones = vec4(1.0, 1.0, 1.0, 1.0);\n\n float count = 0.0;\n\n float getValue(int batch, int xR, int xC, int d) {\n if (xC < 0 || xC >= "+e.inWidth+") {\n return initializationValue;\n }\n count += 1.0;\n return getX(batch, xR, xC, d);\n }\n\n void main() {\n ivec4 coords = getOutputCoords();\n int batch = coords[0];\n int d = coords[3];\n\n ivec2 xRCCorner = coords.yz * strides - pads;\n int xRCorner = xRCCorner.x;\n int xCCorner = xRCCorner.y;\n\n // max/min x(?, ?, d) to get y(yR, yC, d).\n // ? = to be determined\n vec4 minMaxValue = vec4("+p+");\n float avgValue = 0.0;\n count = 0.0;\n\n for (int wR = 0; wR < "+u+";\n wR += "+i+") {\n int xR = xRCorner + wR;\n\n if (xR < 0 || xR >= "+e.inHeight+") {\n continue;\n }\n\n for (int wC = 0; wC < "+v+"; wC += 4) {\n int xC = xCCorner + wC * "+s+";\n\n vec4 values = vec4(\n getValue(batch, xR, xC, d),\n getValue(batch, xR, xC + "+s+", d),\n getValue(batch, xR, xC + 2 * "+s+", d),\n getValue(batch, xR, xC + 3 * "+s+", d)\n );\n\n "+g+"\n }\n\n int xC = xCCorner + "+v+";\n if ("+(1===m)+") {\n vec4 values = vec4(\n getValue(batch, xR, xC, d),\n initializationValue,\n initializationValue,\n initializationValue\n );\n\n "+g+"\n } else if ("+(2===m)+") {\n vec4 values = vec4(\n getValue(batch, xR, xC, d),\n getValue(batch, xR, xC + "+s+", d),\n initializationValue,\n initializationValue\n );\n\n "+g+"\n } else if ("+(3===m)+") {\n vec4 values = vec4(\n getValue(batch, xR, xC, d),\n getValue(batch, xR, xC + "+s+", d),\n getValue(batch, xR, xC + 2 * "+s+", d),\n initializationValue\n );\n\n "+g+"\n }\n }\n setOutput("+d+");\n }\n "}},Du=function(e,t,n){if(this.variableNames=["x"],"avg"===t&&n)throw new Error("Cannot compute positions for average pool.");var r=e.filterWidth,o=e.strideDepth,a=e.strideHeight,i=e.strideWidth,s=e.dilationDepth,u=e.dilationHeight,c=e.dilationWidth,l=e.effectiveFilterDepth,f=e.effectiveFilterHeight,h=e.effectiveFilterWidth,p=e.padInfo.front,d=e.padInfo.top,v=e.padInfo.left;this.outputShape=e.outShape;var m="avg"===t,g="0.0";if(m||(g="-1.0 / 1e-20"),n)this.userCode="\n const ivec3 strides =\n ivec3("+o+", "+a+", "+i+");\n const ivec3 pads = ivec3("+p+", "+d+", "+v+");\n\n void main() {\n ivec5 coords = getOutputCoords();\n int batch = coords.x;\n int ch = coords.u;\n\n ivec3 xCorner = ivec3(coords.y, coords.z, coords.w) * strides - pads;\n int xDCorner = xCorner.x;\n int xRCorner = xCorner.y;\n int xCCorner = xCorner.z;\n\n // max/min x(?, ?, ?, ch) to get y(yD, yR, yC, ch).\n // ? = to be determined\n float minMaxValue = 0.0;\n float minMaxValueFound = 0.0;\n int minMaxPosition = 0;\n\n for (int wD = 0; wD < "+l+";\n wD += "+s+") {\n int xD = xDCorner + wD;\n\n if (xD < 0 || xD >= "+e.inDepth+") {\n continue;\n }\n\n for (int wR = 0; wR < "+f+";\n wR += "+u+") {\n int xR = xRCorner + wR;\n\n if (xR < 0 || xR >= "+e.inHeight+") {\n continue;\n }\n\n for (int wC = 0; wC < "+h+";\n wC += "+c+") {\n int xC = xCCorner + wC;\n\n if (xC < 0 || xC >= "+e.inWidth+") {\n continue;\n }\n\n float value = getX(batch, xD, xR, xC, ch);\n\n // If a min / max value has already been found, use it. If not,\n // use the current value.\n float currMinMaxValue = mix(\n value, minMaxValue, minMaxValueFound);\n if (value >= currMinMaxValue) {\n minMaxValue = value;\n minMaxValueFound = 1.0;\n minMaxPosition =\n wD * "+f+" * "+h+" +\n wR * "+h+" + wC;;\n }\n }\n }\n }\n setOutput(float(minMaxPosition));\n }\n ";else{var y=t+"("+t+"("+t+"(minMaxValue[0], minMaxValue[1]), minMaxValue[2]), minMaxValue[3])";"avg"===t&&(y="avgValue / count");var b=4*Math.floor(r/4),w=r%4,x="\n if ("+m+") {\n avgValue += dot(values, ones);\n } else {\n minMaxValue = max(values, minMaxValue);\n }\n ";this.userCode="\n const ivec3 strides =\n ivec3("+o+", "+a+", "+i+");\n const ivec3 pads = ivec3("+p+", "+d+", "+v+");\n const float initializationValue = "+g+";\n const vec4 ones = vec4(1.0, 1.0, 1.0, 1.0);\n\n float count = 0.0;\n\n float getValue(int batch, int xD, int xR, int xC, int ch) {\n if (xC < 0 || xC >= "+e.inWidth+") {\n return initializationValue;\n }\n count += 1.0;\n return getX(batch, xD, xR, xC, ch);\n }\n\n void main() {\n ivec5 coords = getOutputCoords();\n int batch = coords.x;\n int ch = coords.u;\n\n ivec3 xCorner = ivec3(coords.y, coords.z, coords.w) * strides - pads;\n int xDCorner = xCorner.x;\n int xRCorner = xCorner.y;\n int xCCorner = xCorner.z;\n\n // max/min x(?, ?, ?, d) to get y(yD, yR, yC, ch).\n // ? = to be determined\n vec4 minMaxValue = vec4("+g+");\n float avgValue = 0.0;\n count = 0.0;\n\n for (int wD = 0; wD < "+l+";\n wD += "+s+") {\n int xD = xDCorner + wD;\n\n if (xD < 0 || xD >= "+e.inDepth+") {\n continue;\n }\n\n for (int wR = 0; wR < "+f+";\n wR += "+u+") {\n int xR = xRCorner + wR;\n\n if (xR < 0 || xR >= "+e.inHeight+") {\n continue;\n }\n\n for (int wC = 0; wC < "+b+"; wC += 4) {\n int xC = xCCorner + wC * "+c+";\n\n vec4 values = vec4(\n getValue(batch, xD, xR, xC, ch),\n getValue(batch, xD, xR, xC + "+c+", ch),\n getValue(batch, xD, xR, xC + 2 * "+c+", ch),\n getValue(batch, xD, xR, xC + 3 * "+c+", ch)\n );\n\n "+x+"\n }\n\n int xC = xCCorner + "+b+";\n if ("+(1===w)+") {\n vec4 values = vec4(\n getValue(batch, xD, xR, xC, ch),\n initializationValue,\n initializationValue,\n initializationValue\n );\n\n "+x+"\n } else if ("+(2===w)+") {\n vec4 values = vec4(\n getValue(batch, xD, xR, xC, ch),\n getValue(batch, xD, xR, xC + "+c+", ch),\n initializationValue,\n initializationValue\n );\n\n "+x+"\n } else if ("+(3===w)+") {\n vec4 values = vec4(\n getValue(batch, xD, xR, xC, ch),\n getValue(batch, xD, xR, xC + "+c+", ch),\n getValue(batch, xD, xR, xC + 2 * "+c+", ch),\n initializationValue\n );\n\n "+x+"\n }\n }\n setOutput("+y+");\n }\n }\n "}},Nu=function(e,t){this.variableNames=["x"];var n=e.windowSize,r=e.batchSize,o=e.inSize,a=Math.ceil(o/n);this.outputShape=[r,a];var i="0.0",s="";"prod"===t?i="1.0":"min"===t?(i="1.0 / 1e-20",s="min"):"max"===t&&(i="-1.0 / 1e-20",s="max");var u=t+"("+t+"("+t+"(minMaxValue[0], minMaxValue[1]), minMaxValue[2]), minMaxValue[3])";"sum"===t?u="sumValue":"prod"===t?u="prodValue":"all"===t?u="allValue":"any"===t&&(u="anyValue");var c=4*Math.floor(n/4),l=n%4,f="\n if ("+("sum"===t)+") {\n sumValue += dot(values, ones);\n } else if ("+("prod"===t)+") {\n vec2 tmp = vec2(values[0], values[1]) * vec2(values[2], values[3]);\n prodValue *= tmp[0] * tmp[1];\n } else {\n minMaxValue = "+s+"(values, minMaxValue);\n }\n ",h="vec4";"all"===t?(i="1.0",f="\n bool reducedAllValue = all(values);\n float floatedReducedAllValue = float(reducedAllValue);\n allValue = float(allValue >= 1.0 && floatedReducedAllValue >= 1.0);\n ",h="bvec4"):"any"===t&&(i="0.0",f="\n bool reducedAnyValue = any(values);\n float floatedReducedAnyValue = float(reducedAnyValue);\n anyValue = float(anyValue >= 1.0 || floatedReducedAnyValue >= 1.0);\n ",h="bvec4");var p="";o%n>0&&(p="\n if (inIdx < 0 || inIdx >= "+o+") {\n return initializationValue;\n }\n "),this.userCode="\n const float initializationValue = "+i+";\n const vec4 ones = vec4(1.0, 1.0, 1.0, 1.0);\n\n float getValue(int batch, int inIdx) {\n "+p+"\n return getX(batch, inIdx);\n }\n\n void main() {\n ivec2 coords = getOutputCoords();\n int batch = coords[0];\n int outIdx = coords[1];\n int inOffset = outIdx * "+n+";\n\n vec4 minMaxValue = vec4("+i+");\n float prodValue = 1.0;\n float sumValue = 0.0;\n float allValue = 1.0;\n float anyValue = 0.0;\n\n for (int i = 0; i < "+c+"; i += 4) {\n int inIdx = inOffset + i;\n "+h+" values = "+h+"(\n getValue(batch, inIdx),\n getValue(batch, inIdx + 1),\n getValue(batch, inIdx + 2),\n getValue(batch, inIdx + 3)\n );\n\n "+f+"\n }\n\n int inIdx = inOffset + "+c+";\n if ("+(1===l)+") {\n "+h+" values = "+h+"(\n getValue(batch, inIdx),\n initializationValue,\n initializationValue,\n initializationValue\n );\n\n "+f+"\n } else if ("+(2===l)+") {\n "+h+" values = "+h+"(\n getValue(batch, inIdx),\n getValue(batch, inIdx + 1),\n initializationValue,\n initializationValue\n );\n\n "+f+"\n } else if ("+(3===l)+") {\n "+h+" values = "+h+"(\n getValue(batch, inIdx),\n getValue(batch, inIdx + 1),\n getValue(batch, inIdx + 2),\n initializationValue\n );\n\n "+f+"\n }\n setOutput("+u+");\n }\n "},Mu=function(e,t){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e;for(var n="",r=0;r<4;r++){var o="thisRC = rc;";r%2==1&&(o+="thisRC.z += 1;"),r>1&&(o+="thisRC.y += 1;"),n+="\n "+o+"\n "+(r>0?"if(thisRC.y < rows && thisRC.z < cols){":"")+"\n int flatIndex = getFlatIndex(thisRC);\n\n ivec3 inputRC = inputCoordsFromReshapedOutCoords(flatIndex);\n vec2 inputRCInnerDims = vec2(float(inputRC.y),float(inputRC.z));\n\n result["+r+"] =\n getChannel(getA(inputRC.x, inputRC.y, inputRC.z), inputRCInnerDims);\n "+(r>0?"}":"")+"\n "}this.userCode="\n \n ivec3 inputCoordsFromReshapedOutCoords(int index) {\n "+$i(["r","c","d"],t)+"\n return ivec3(r, c, d);\n }\n \n "+Yi(e)+"\n\n void main() {\n ivec3 rc = getOutputCoords();\n\n vec4 result = vec4(0.);\n\n ivec3 thisRC;\n int rows = "+e[1]+";\n int cols = "+e[2]+";\n\n "+n+"\n\n setOutput(result);\n }\n "},Fu=function(e,t,n){this.variableNames=["dy"],this.outputShape=[],this.outputShape=t.shape;var r=t.shape,o=r[1],a=r[2],i=e.shape,s=i[1],u=i[2],c=[n&&s>1?o-1:o,n&&u>1?a-1:a],l=[n&&s>1?s-1:s,n&&u>1?u-1:u],f=c[0]/l[0],h=c[1]/l[1],p=1/f,d=1/h,v=2*Math.ceil(p)+2,m=2*Math.ceil(d)+2;this.userCode="\n void main() {\n ivec4 coords = getOutputCoords();\n int b = coords[0];\n int d = coords[3];\n int r = coords[1];\n int c = coords[2];\n\n float accumulator = 0.0;\n\n const float heightScale = float("+f+");\n const float widthScale = float("+h+");\n\n const float invHeightScale = float("+p+");\n const float invWidthScale = float("+d+");\n\n const int winHeight = int("+v+");\n const int winWidth = int("+m+");\n\n // Compute bounds for where in dy we will look\n float startRLerp = floor(float(r) * invHeightScale);\n int startDyR = int(startRLerp - float(winHeight / 2));\n\n float startCLerp = floor(float(c) * invWidthScale);\n int startDyC = int(startCLerp - float(winWidth / 2));\n\n // Loop over dy\n for (int dyROffset = 0; dyROffset < winHeight; dyROffset++) {\n int dyR = dyROffset + startDyR;\n\n // Guard against the window exceeding the bounds of dy\n if (dyR < 0 || dyR >= "+s+") {\n continue;\n }\n\n for (int dyCOffset = 0; dyCOffset < winWidth; dyCOffset++) {\n int dyC = dyCOffset + startDyC;\n\n // Guard against the window exceeding the bounds of dy\n if (dyC < 0 || dyC >= "+u+") {\n continue;\n }\n\n float dxR = float(dyR) * heightScale;\n int topDxRIndex = int(floor(dxR));\n int bottomDxRIndex = int(min(ceil(dxR), "+(o-1)+".0));\n float dxRLerp = dxR - float(topDxRIndex);\n float inverseDxRLerp = 1.0 - dxRLerp;\n\n float dxC = float(dyC) * widthScale;\n int leftDxCIndex = int(floor(dxC));\n int rightDxCIndex = int(min(ceil(dxC), "+(a-1)+".0));\n float dxCLerp = dxC - float(leftDxCIndex);\n float inverseDxCLerp = 1.0 - dxCLerp;\n\n if (r == topDxRIndex && c == leftDxCIndex) {\n // topLeft\n accumulator +=\n getDy(b, dyR, dyC, d) * inverseDxRLerp * inverseDxCLerp;\n }\n\n if (r == topDxRIndex && c == rightDxCIndex) {\n // topRight\n accumulator += getDy(b, dyR, dyC, d) * inverseDxRLerp * dxCLerp;\n }\n\n if (r == bottomDxRIndex && c == leftDxCIndex) {\n // bottomLeft\n accumulator += getDy(b, dyR, dyC, d) * dxRLerp * inverseDxCLerp;\n }\n\n if (r == bottomDxRIndex && c == rightDxCIndex) {\n // bottomRight\n accumulator += getDy(b, dyR, dyC, d) * dxRLerp * dxCLerp;\n }\n }\n }\n // End loop over dy\n\n setOutput(accumulator);\n }\n "},Bu=function(e,t,n,r){this.variableNames=["A"],this.outputShape=[];var o=e[0],a=e[1],i=e[2],s=e[3];this.outputShape=[o,t,n,s];var u=[r&&t>1?a-1:a,r&&n>1?i-1:i],c=[r&&t>1?t-1:t,r&&n>1?n-1:n];this.userCode="\n const vec2 effectiveInputOverOutputRatioRC = vec2(\n "+u[0]/c[0]+",\n "+u[1]/c[1]+");\n const vec2 inputShapeRC = vec2("+a+".0, "+i+".0);\n\n void main() {\n ivec4 coords = getOutputCoords();\n int b = coords[0];\n int d = coords[3];\n ivec2 yRC = coords.yz;\n\n // Fractional source index.\n vec2 sourceFracIndexRC = vec2(yRC) * effectiveInputOverOutputRatioRC;\n\n // Compute the four integer indices.\n ivec2 sourceFloorRC = ivec2(sourceFracIndexRC);\n ivec2 sourceCeilRC = ivec2(\n min(inputShapeRC - 1.0, ceil(sourceFracIndexRC)));\n\n float topLeft = getA(b, sourceFloorRC.x, sourceFloorRC.y, d);\n float bottomLeft = getA(b, sourceCeilRC.x, sourceFloorRC.y, d);\n float topRight = getA(b, sourceFloorRC.x, sourceCeilRC.y, d);\n float bottomRight = getA(b, sourceCeilRC.x, sourceCeilRC.y, d);\n\n vec2 fracRC = sourceFracIndexRC - vec2(sourceFloorRC);\n\n float top = topLeft + (topRight - topLeft) * fracRC.y;\n float bottom = bottomLeft + (bottomRight - bottomLeft) * fracRC.y;\n float newValue = top + (bottom - top) * fracRC.x;\n\n setOutput(newValue);\n }\n "},ju=function(e,t,n,r){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=[];var o=e[0],a=e[1],i=e[2],s=e[3];this.outputShape=[o,t,n,s];var u=[r&&t>1?a-1:a,r&&n>1?i-1:i],c=[r&&t>1?t-1:t,r&&n>1?n-1:n];this.userCode="\n const vec3 effectiveInputOverOutputRatioRC = vec3(\n "+u[0]/c[0]+",\n "+u[1]/c[1]+",\n "+u[1]/c[1]+");\n const vec3 inputShapeRC = vec3("+a+".0, "+i+".0,\n "+i+".0);\n\n float getAValue(int b, int r, int c, int d) {\n return getChannel(getA(b, r, c, d), vec2(c, d));\n }\n\n void main() {\n ivec4 coords = getOutputCoords();\n int b = coords[0];\n int d = coords[3];\n // Calculate values for next column in yRC.z.\n ivec3 yRC = coords.yzz + ivec3(0, 0, 1);\n\n // Fractional source index.\n vec3 sourceFracIndexRC = vec3(yRC) * effectiveInputOverOutputRatioRC;\n\n // Compute the four integer indices.\n ivec3 sourceFloorRC = ivec3(sourceFracIndexRC);\n ivec3 sourceCeilRC = ivec3(\n min(inputShapeRC - 1.0, ceil(sourceFracIndexRC)));\n\n // Should we calculate next column and row elements in 2x2 packed cell.\n bool hasNextCol = d < "+(s-1)+";\n bool hasNextRow = coords.z < "+(n-1)+";\n\n // In parallel, construct four corners for all four components in\n // packed 2x2 cell.\n vec4 topLeft = vec4(\n getAValue(b, sourceFloorRC.x, sourceFloorRC.y, d),\n hasNextCol ? getAValue(b, sourceFloorRC.x, sourceFloorRC.y, d + 1)\n : 0.0,\n hasNextRow ? getAValue(b, sourceFloorRC.x, sourceFloorRC.z, d)\n : 0.0,\n (hasNextRow && hasNextCol) ?\n getAValue(b, sourceFloorRC.x, sourceFloorRC.z, d + 1) : 0.0);\n\n vec4 bottomLeft = vec4(\n getAValue(b, sourceCeilRC.x, sourceFloorRC.y, d),\n hasNextCol ? getAValue(b, sourceCeilRC.x, sourceFloorRC.y, d + 1)\n : 0.0,\n hasNextRow ? getAValue(b, sourceCeilRC.x, sourceFloorRC.z, d)\n : 0.0,\n (hasNextRow && hasNextCol) ?\n getAValue(b, sourceCeilRC.x, sourceFloorRC.z, d + 1) : 0.0);\n\n vec4 topRight = vec4(\n getAValue(b, sourceFloorRC.x, sourceCeilRC.y, d),\n hasNextCol ? getAValue(b, sourceFloorRC.x, sourceCeilRC.y, d + 1)\n : 0.0,\n hasNextRow ? getAValue(b, sourceFloorRC.x, sourceCeilRC.z, d)\n : 0.0,\n (hasNextRow && hasNextCol) ?\n getAValue(b, sourceFloorRC.x, sourceCeilRC.z, d + 1) : 0.0);\n\n vec4 bottomRight = vec4(\n getAValue(b, sourceCeilRC.x, sourceCeilRC.y, d),\n hasNextCol ? getAValue(b, sourceCeilRC.x, sourceCeilRC.y, d + 1)\n : 0.0,\n hasNextRow ? getAValue(b, sourceCeilRC.x, sourceCeilRC.z, d)\n : 0.0,\n (hasNextRow && hasNextCol) ?\n getAValue(b, sourceCeilRC.x, sourceCeilRC.z, d + 1) : 0.0);\n\n vec3 fracRC = sourceFracIndexRC - vec3(sourceFloorRC);\n\n vec4 top = mix(topLeft, topRight, fracRC.yyzz);\n vec4 bottom = mix(bottomLeft, bottomRight, fracRC.yyzz);\n vec4 newValue = mix(top, bottom, fracRC.x);\n\n setOutput(newValue);\n }\n "},Lu=function(e,t,n){this.variableNames=["dy"],this.outputShape=[],this.outputShape=t.shape;var r=t.shape,o=r[1],a=r[2],i=e.shape,s=i[1],u=i[2],c=[n&&s>1?o-1:o,n&&u>1?a-1:a],l=[n&&s>1?s-1:s,n&&u>1?u-1:u],f=c[0]/l[0],h=c[1]/l[1],p=1/f,d=1/h,v=2*Math.ceil(p)+2,m=2*Math.ceil(d)+2;this.userCode="\n void main() {\n ivec4 coords = getOutputCoords();\n int b = coords[0];\n int d = coords[3];\n int r = coords[1];\n int c = coords[2];\n\n float accumulator = 0.0;\n\n const float heightScale = float("+f+");\n const float widthScale = float("+h+");\n\n const float invHeightScale = float("+p+");\n const float invWidthScale = float("+d+");\n\n const int winHeight = int("+v+");\n const int winWidth = int("+m+");\n\n // Compute bounds for where in dy we will look\n float startRLerp = floor(float(r) * invHeightScale);\n int startDyR = int(floor(startRLerp - float(winHeight / 2)));\n\n float startCLerp = floor(float(c) * invWidthScale);\n int startDyC = int(floor(startCLerp - float(winWidth / 2)));\n\n // Loop over dy\n for (int dyROffset = 0; dyROffset < winHeight; dyROffset++) {\n int dyR = dyROffset + startDyR;\n\n // Guard against the window exceeding the bounds of dy\n if (dyR < 0 || dyR >= "+s+") {\n continue;\n }\n\n for (int dyCOffset = 0; dyCOffset < winWidth; dyCOffset++) {\n int dyC = dyCOffset + startDyC;\n\n // Guard against the window exceeding the bounds of dy\n if (dyC < 0 || dyC >= "+u+") {\n continue;\n }\n\n float sourceFracRow =\n float("+c[0]+") *\n (float(dyR) / float("+l[0]+"));\n\n float sourceFracCol =\n float("+c[1]+") *\n (float(dyC) / float("+l[1]+"));\n\n int sourceNearestRow = int(min(\n float(int("+o+") - 1),\n "+n+" ? float(round(sourceFracRow)) :\n float(floor(sourceFracRow))));\n\n int sourceNearestCol = int(min(\n float(int("+a+") - 1),\n "+n+" ? float(round(sourceFracCol)) :\n float(floor(sourceFracCol))));\n\n if (r == sourceNearestRow && c == sourceNearestCol) {\n accumulator += getDy(b, dyR, dyC, d);\n }\n }\n }\n // End loop over dy\n\n setOutput(accumulator);\n }\n "},zu=function(e,t,n,r){this.variableNames=["A"],this.outputShape=[];var o=e[0],a=e[1],i=e[2],s=e[3];this.outputShape=[o,t,n,s];var u=[r&&t>1?a-1:a,r&&n>1?i-1:i],c=[r&&t>1?t-1:t,r&&n>1?n-1:n],l=r?"0.5":"0.0";this.userCode="\n const vec2 effectiveInputOverOutputRatioRC = vec2(\n "+u[0]/c[0]+",\n "+u[1]/c[1]+");\n const vec2 inputShapeRC = vec2("+a+".0, "+i+".0);\n\n void main() {\n ivec4 coords = getOutputCoords();\n int b = coords[0];\n int d = coords[3];\n ivec2 yRC = coords.yz;\n\n // Fractional source index.\n vec2 sourceFracIndexRC = vec2(yRC) * effectiveInputOverOutputRatioRC;\n\n // Compute the coordinators of nearest neighbor point.\n ivec2 sourceNearestRC = ivec2(\n min(inputShapeRC - 1.0, floor(sourceFracIndexRC + "+l+")));\n\n float newValue = getA(b, sourceNearestRC.x, sourceNearestRC.y, d);\n\n setOutput(newValue);\n }\n "},Hu=function(e,t){this.variableNames=["x"];var n=e.length;if(n>4)throw new Error("WebGL backend: Reverse of rank-"+n+" tensor is not yet supported");if(this.outputShape=e,1!==n){var r=e.map((function(n,r){return function(n){return-1!==t.indexOf(n)&&1!==e[n]?e[n]+" - coords["+n+"] - 1":"coords["+n+"]"}(r)})).join(","),o=ss(n);this.userCode="\n void main() {\n "+o+" coords = getOutputCoords();\n setOutput(getX("+r+"));\n }\n "}else this.userCode="\n void main() {\n int coord = getOutputCoords();\n setOutput(getX("+e[0]+" - coord - 1));\n }\n "},Wu=function(e,t){this.variableNames=["x"],this.packedInputs=!0,this.packedOutput=!0;var n=e.length;if(n>4)throw new Error("WebGL backend: Reverse of rank-"+n+" tensor is not yet supported");this.outputShape=e;var r=Xi("rc",n),o=r[n-1]+" + 1 < "+this.outputShape[n-1],a=r[n-2]+" + 1 < "+this.outputShape[n-2],i=ss(n);function s(n){var r=e.map((function(r,o){return function(n,r){return-1!==t.indexOf(n)&&1!==e[n]?e[n]+" - "+r[n]+" - 1":""+r[n]}(o,n)}));return"getChannel(getX("+r.join(",")+"), vec2("+r.slice(-2).join(",")+"))"}this.userCode=1===n?"\n void main(){\n int rc = getOutputCoords();\n vec4 result = vec4(0.);\n result.r = getChannel(getX("+e[0]+" - rc - 1),\n "+e[0]+" - rc - 1);\n if("+o+"){\n result.g = getChannel(getX("+e[0]+" - (rc + 1) - 1),\n "+e[0]+" - (rc + 1) - 1);\n }\n setOutput(result);\n }\n ":"\n void main() {\n "+i+" rc = getOutputCoords();\n vec4 result = vec4(0.);\n result.r = "+function(e){return s(e)}(r.slice())+";\n if("+o+"){\n result.g = "+function(e){return e[n-1]="("+e[n-1]+" + 1)",s(e)}(r.slice())+";\n }\n if("+a+") {\n result.b = "+function(e){return e[n-2]="("+e[n-2]+" + 1)",s(e)}(r.slice())+";\n if("+o+") {\n result.a = "+function(e){return e[n-1]="("+e[n-1]+" + 1)",e[n-2]="("+e[n-2]+" + 1)",s(e)}(r.slice())+";\n }\n }\n setOutput(result);\n }\n "},Vu=function(e,t,n,r,o,a,i){void 0===i&&(i=!0),this.variableNames=["updates","indices","defaultValue"],this.outputShape=a;var s=ss(o.length),u=ss(a.length),c="";1===n?c="i":2===n&&(c="i, j");var l="getIndices("+c+")",f="";1===r?f="i":2===r&&(f="i, coords[1]");var h="getUpdates("+f+")",p=t>1?"strides[j]":"strides";this.userCode="\n "+s+" strides = "+s+"("+o+");\n\n void main() {\n "+u+" coords = getOutputCoords();\n float sum = 0.0;\n bool found = false;\n for (int i = 0; i < "+e+"; i++) {\n int flattenedIndex = 0;\n for (int j = 0; j < "+t+"; j++) {\n int index = round("+l+");\n flattenedIndex += index * "+p+";\n }\n if (flattenedIndex == coords[0]) {\n sum += "+h+";\n found = true;\n }\n }\n setOutput(mix(getDefaultValue(), sum, float(found)));\n }\n "},Uu=function(e,t){this.variableNames=["x","segmentIds"];var n=e.windowSize,r=e.batchSize,o=e.inSize,a=e.numSegments,i=a*Math.ceil(o/n);this.outputShape=[r,i];var s=4*Math.floor(n/4),u=n%4,c="\n sumValue += dot(values, segFilter);\n ",l="";o%n>0&&(l="\n if (inIdx < 0 || inIdx >= "+o+") {\n return initializationValue;\n }\n ");var f="";o%n>0&&(f="\n if (inIdx < 0 || inIdx >= "+o+") {\n return -1.0;\n }\n "),this.userCode="\n const float initializationValue = 0.0;\n\n float getValue(int batch, int inIdx) {\n "+l+"\n return getX(batch, inIdx);\n }\n\n float getSegmentIdAtIndex(int inIdx) {\n "+f+"\n return getSegmentIds(inIdx);\n }\n\n void main() {\n ivec2 coords = getOutputCoords();\n int batch = coords[0];\n int outIdx = coords[1];\n int inOffset = int(floor(float(outIdx) / float(\n "+a+")) * float("+n+"));\n int currentSeg = int(mod(float(outIdx), float("+a+")));\n\n float sumValue = 0.0;\n\n for (int i = 0; i < "+s+"; i += 4) {\n int inIdx = inOffset + i;\n vec4 values = vec4(\n getValue(batch, inIdx),\n getValue(batch, inIdx + 1),\n getValue(batch, inIdx + 2),\n getValue(batch, inIdx + 3)\n );\n\n vec4 segFilter = vec4(\n int(getSegmentIdAtIndex(inIdx)) == currentSeg ? 1 : 0,\n int(getSegmentIdAtIndex(inIdx + 1)) == currentSeg ? 1 : 0,\n int(getSegmentIdAtIndex(inIdx + 2)) == currentSeg ? 1 : 0,\n int(getSegmentIdAtIndex(inIdx + 3)) == currentSeg ? 1 : 0\n );\n\n "+c+"\n }\n\n int inIdx = inOffset + "+s+";\n if ("+(1===u)+") {\n vec4 values = vec4(\n getValue(batch, inIdx),\n initializationValue,\n initializationValue,\n initializationValue\n );\n\n int inIdxSeg = int(getSegmentIdAtIndex(inIdx));\n\n vec4 segFilter = vec4(\n int(getSegmentIdAtIndex(inIdx)) == currentSeg ? 1 : 0,\n 0,\n 0,\n 0\n );\n\n "+c+"\n } else if ("+(2===u)+") {\n vec4 values = vec4(\n getValue(batch, inIdx),\n getValue(batch, inIdx + 1),\n initializationValue,\n initializationValue\n );\n\n vec4 segFilter = vec4(\n int(getSegmentIdAtIndex(inIdx)) == currentSeg ? 1 : 0,\n int(getSegmentIdAtIndex(inIdx + 1)) == currentSeg ? 1 : 0,\n 0,\n 0\n );\n\n "+c+"\n } else if ("+(3===u)+") {\n vec4 values = vec4(\n getValue(batch, inIdx),\n getValue(batch, inIdx + 1),\n getValue(batch, inIdx + 2),\n initializationValue\n );\n\n vec4 segFilter = vec4(\n int(getSegmentIdAtIndex(inIdx)) == currentSeg ? 1 : 0,\n int(getSegmentIdAtIndex(inIdx + 1)) == currentSeg ? 1 : 0,\n int(getSegmentIdAtIndex(inIdx + 2)) == currentSeg ? 1 : 0,\n 0\n );\n\n "+c+"\n }\n setOutput(sumValue);\n }\n "},qu=function(e,t,n){var r,o;if(this.variableNames=["c","a","b"],this.outputShape=t,n>4)throw Error("Where for rank "+n+" is not yet supported");if(1===n)o="resRC",r="resRC";else{for(var a=["resRC.x","resRC.y","resRC.z","resRC.w"],i=[],s=[],u=0;u<t.length;u++)s.push(""+a[u]),u<e&&i.push(""+a[u]);r=i.join(),o=s.join()}var c=ss(n);this.userCode="\n void main() {\n "+c+" resRC = getOutputCoords();\n float cVal = getC("+r+");\n if (cVal >= 1.0) {\n setOutput(getA("+o+"));\n } else {\n setOutput(getB("+o+"));\n }\n }\n "},Gu=function(){function e(e){this.variableNames=["source"],this.outputShape=e,this.rank=e.length;var t,n=ss(this.rank),r="uniform int start["+this.rank+"];",o=function(e){if(1===e)return"sourceLoc";if(e<=6)return Xu.slice(0,e).map((function(e){return"sourceLoc."+e})).join(",");throw Error("Slicing for rank "+e+" is not yet supported")}(this.rank);t="\n "+n+" sourceLoc;\n "+n+" coords = getOutputCoords();\n "+e.map((function(e,t){return"sourceLoc."+Xu[t]+" = start["+t+"] + coords."+Xu[t]+";"})).join("\n")+"\n ",this.userCode="\n "+r+"\n void main() {\n "+t+"\n setOutput(getSource("+o+"));\n }\n "}return e.prototype.getCustomSetupFunc=function(e){var t=this;if(e.length!==this.rank)throw Error("The rank ("+this.rank+") of the program must match the length of start ("+e.length+")");return function(n,r){null==t.startLoc&&(t.startLoc=n.getUniformLocationNoThrow(r,"start"),null==t.startLoc)||n.gl.uniform1iv(t.startLoc,e)}},e}(),Xu=["x","y","z","w","u","v"],Ku=function(){function e(e){this.variableNames=["source"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e,this.rank=e.length;var t=ss(this.rank),n=Xi("coords",this.rank),r=Xi("sourceLoc",this.rank),o=1===this.rank?"sourceLoc":"vec2("+r.slice(-2).join()+")",a="getChannel(getSource("+r.join()+"), "+o+")",i="\n result.x = "+a+";\n if (++"+n[this.rank-1]+" < "+e[this.rank-1]+") {\n ++"+r[this.rank-1]+";\n result.y = "+a+";\n --"+r[this.rank-1]+";\n }\n ",s=1===this.rank?"":"\n --"+n[this.rank-1]+";\n if (++"+n[this.rank-2]+" < "+e[this.rank-2]+") {\n ++"+r[this.rank-2]+";\n result.z = "+a+";\n if (++"+n[this.rank-1]+" < "+e[this.rank-1]+") {\n ++"+r[this.rank-1]+";\n result.w = "+a+";\n }\n }\n ",u=this.rank<=4?"sourceLoc = coords +\n "+t+"("+e.map((function(e,t){return"start["+t+"]"})).join()+");":e.map((function(e,t){return r[t]+" = "+n[t]+" + start["+t+"];"})).join("\n");this.userCode="\n uniform int start["+this.rank+"];\n void main() {\n "+t+" coords = getOutputCoords();\n "+t+" sourceLoc;\n "+u+"\n vec4 result = vec4(0.);\n "+i+"\n "+s+"\n setOutput(result);\n }\n "}return e.prototype.getCustomSetupFunc=function(e){var t=this;if(e.length!==this.rank)throw Error("The rank ("+this.rank+") of the program must match the length of start ("+e.length+")");return function(n,r){null==t.startLoc&&(t.startLoc=n.getUniformLocationNoThrow(r,"start"),null==t.startLoc)||n.gl.uniform1iv(t.startLoc,e)}},e}(),$u=function(e,t,n){this.variableNames=["x"],this.outputShape=n;var r=n.length,o=ss(n.length),a=ss(n.length),i="";if(1===r)i="coords * strides + begin";else{var s=0;i=n.map((function(e,t){return s++,1===n.length?"coords * strides["+t+"] + begin["+t+"]":"coords["+(s-1)+"] * strides["+t+"] + begin["+t+"]"})).join(",")}this.userCode="\n "+o+" begin = "+o+"("+e+");\n "+o+" strides = "+o+"("+t+");\n\n void main() {\n "+a+" coords = getOutputCoords();\n setOutput(getX("+i+"));\n }\n "},Yu=function(){function e(e){this.gpgpu=e,this.numUsedTextures=0,this.numFreeTextures=0,this.freeTextures={},this.logEnabled=!1,this.usedTextures={}}return e.prototype.acquireTexture=function(e,t,n){var r,o=Ju(t,n),a=Zu(e,o,n);if(a in this.freeTextures||(this.freeTextures[a]=[]),a in this.usedTextures||(this.usedTextures[a]=[]),this.freeTextures[a].length>0){this.numFreeTextures--,this.numUsedTextures++,this.log();var i=this.freeTextures[a].shift();return this.usedTextures[a].push(i),i}return this.numUsedTextures++,this.log(),o===xr.PACKED_2X2_FLOAT32?r=this.gpgpu.createPackedMatrixTexture(e[0],e[1]):o===xr.PACKED_2X2_FLOAT16?r=this.gpgpu.createFloat16PackedMatrixTexture(e[0],e[1]):o===xr.UNPACKED_FLOAT32?r=this.gpgpu.createFloat32MatrixTexture(e[0],e[1]):o===xr.UNPACKED_FLOAT16?r=this.gpgpu.createFloat16MatrixTexture(e[0],e[1]):o===xr.PACKED_4X1_UNSIGNED_BYTE&&(r=this.gpgpu.createUnsignedBytesMatrixTexture(e[0],e[1])),this.usedTextures[a].push(r),r},e.prototype.releaseTexture=function(e,t,n,r){if(null!=this.freeTextures){var o=Zu(t,Ju(n,r),r);o in this.freeTextures||(this.freeTextures[o]=[]),this.freeTextures[o].push(e),this.numFreeTextures++,this.numUsedTextures--;var a=this.usedTextures[o],i=a.indexOf(e);if(i<0)throw new Error("Cannot release a texture that was never provided by this texture manager");a.splice(i,1),this.log()}},e.prototype.log=function(){if(this.logEnabled){this.numFreeTextures,this.numUsedTextures;this.numFreeTextures,this.numUsedTextures}},e.prototype.getNumUsedTextures=function(){return this.numUsedTextures},e.prototype.getNumFreeTextures=function(){return this.numFreeTextures},e.prototype.dispose=function(){var e=this;if(null!=this.freeTextures){for(var t in this.freeTextures)this.freeTextures[t].forEach((function(t){e.gpgpu.deleteMatrixTexture(t)}));for(var t in this.usedTextures)this.usedTextures[t].forEach((function(t){e.gpgpu.deleteMatrixTexture(t)}));this.freeTextures=null,this.usedTextures=null,this.numUsedTextures=0,this.numFreeTextures=0}},e}();function Ju(e,t){if(e===wr.UPLOAD)return xr.PACKED_2X2_FLOAT32;if(e===wr.RENDER||null==e)return function(e){return Yt().getBool("WEBGL_RENDER_FLOAT32_ENABLED")?e?xr.PACKED_2X2_FLOAT32:xr.UNPACKED_FLOAT32:e?xr.PACKED_2X2_FLOAT16:xr.UNPACKED_FLOAT16}(t);if(e===wr.DOWNLOAD||e===wr.PIXELS)return xr.PACKED_4X1_UNSIGNED_BYTE;throw new Error("Unknown logical texture type "+e)}function Zu(e,t,n){return e[0]+"_"+e[1]+"_"+t+"_"+n}var Qu=function(e,t){this.variableNames=["A"];for(var n=new Array(e.length),r=0;r<n.length;r++)n[r]=e[r]*t[r];this.outputShape=n,this.rank=n.length;var o=ss(this.rank),a=function(e){var t=e.length;if(t>5)throw Error("Tile for rank "+t+" is not yet supported");if(1===t)return"imod(resRC, "+e[0]+")";for(var n=["resRC.x","resRC.y","resRC.z","resRC.w","resRC.u"],r=[],o=0;o<e.length;o++)r.push("imod("+n[o]+", "+e[o]+")");return r.join()}(e);this.userCode="\n void main() {\n "+o+" resRC = getOutputCoords();\n setOutput(getA("+a+"));\n }\n "},ec=function(e,t){this.variableNames=["A"];for(var n=new Array(e.length),r=0;r<n.length;r++)n[r]=e[t[r]];this.outputShape=n,this.rank=n.length;var o=ss(this.rank),a=function(e){var t=e.length;if(t>6)throw Error("Transpose for rank "+t+" is not yet supported");for(var n=["resRC.x","resRC.y","resRC.z","resRC.w","resRC.u","resRC.v"],r=new Array(t),o=0;o<e.length;o++)r[e[o]]=n[o];return r.join()}(t);this.userCode="\n void main() {\n "+o+" resRC = getOutputCoords();\n setOutput(getA("+a+"));\n }\n "},tc=function(e,t){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0;for(var n=new Array(e.length),r=0;r<n.length;r++)n[r]=e[t[r]];if(this.outputShape=n,this.rank=n.length,this.rank>6)throw Error("Packed transpose for rank "+this.rank+" is not yet supported.");var o=ss(this.rank),a=Gi("rc",this.rank),i=new Array(this.rank);for(r=0;r<t.length;r++)i[t[r]]=a[r];var s="vec2("+i.slice(-2).join()+")",u="++"+a[this.rank-1]+" < "+n[this.rank-1],c="getChannel(getA("+i.join()+"), "+s+")";this.userCode="\n void main() {\n "+o+" rc = getOutputCoords();\n vec4 result = vec4(0.);\n result[0] = "+c+";\n if("+u+") {\n result[1] = "+c+";\n }\n --"+a[this.rank-1]+";\n if(++"+a[this.rank-2]+" < "+n[this.rank-2]+") {\n result[2] = "+c+";\n if("+u+") {\n result[3] = "+c+";\n }\n }\n setOutput(result);\n }\n "},nc=1.7580993408473768,rc=1.0507009873554805,oc=function(e,t){this.variableNames=["A"],this.outputShape=e,this.userCode="\n float unaryOperation(float x) {\n "+t+"\n }\n\n void main() {\n float x = getAAtOutCoords();\n float y = unaryOperation(x);\n\n setOutput(y);\n }\n "},ac="if (isnan(x)) return x;",ic="return abs(x);",sc=ac+"\n return (x < 0.0) ? 0.0 : x;\n",uc=ac+"\n return (x < 0.0) ? 0.0 : min(6.0, x);\n",cc="return (x >= 0.0) ? x : (exp(x) - 1.0);",lc="return -x;",fc="return ceil(x);",hc="return floor(x);",pc="return exp(x);",dc="return exp(x) - 1.0;",vc="return x;",mc="\n vec4 result = x * vec4(greaterThanEqual(x, vec4(0.0)));\n bvec4 isNaN = isnan(x);\n\n result.r = isNaN.r ? x.r : result.r;\n result.g = isNaN.g ? x.g : result.g;\n result.b = isNaN.b ? x.b : result.b;\n result.a = isNaN.a ? x.a : result.a;\n\n return result;\n",gc="\n vec4 result = min(x, vec4(6.)) * vec4(greaterThanEqual(x, vec4(0.0)));\n bvec4 isNaN = isnan(x);\n\n result.r = isNaN.r ? x.r : result.r;\n result.g = isNaN.g ? x.g : result.g;\n result.b = isNaN.b ? x.b : result.b;\n result.a = isNaN.a ? x.a : result.a;\n\n return result;\n",yc="\n vec4 result;\n\n result.r = (x.r >= 0.0) ? x.r : (exp(x.r) - 1.0);\n result.g = (x.g >= 0.0) ? x.g : (exp(x.g) - 1.0);\n result.b = (x.b >= 0.0) ? x.b : (exp(x.b) - 1.0);\n result.a = (x.a >= 0.0) ? x.a : (exp(x.a) - 1.0);\n\n return result;\n",bc=function(e,t){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e,this.userCode="\n vec4 unaryOperation(vec4 x) {\n "+t+"\n }\n\n void main() {\n vec4 x = getAAtOutCoords();\n vec4 y = unaryOperation(x);\n\n setOutput(y);\n }\n "},wc=function(e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!1,this.outputShape=e;var t=e.length,n=Xi("rc",t),r=ss(t),o=function(e,t){if(1===e)return"rc";for(var n="",r=0;r<e;r++)n+=t[r],r<e-1&&(n+=",");return n}(t,n),a=n.slice(-2),i=t<=1?"rc":"vec2("+a.join(",")+")";this.userCode="\n void main() {\n "+r+" rc = getOutputCoords();\n vec4 packedInput = getA("+o+");\n\n setOutput(getChannel(packedInput, "+i+"));\n }\n "},xc={};function Ec(e,t){if(void 0===t&&(t=!1),"linear"===e)return"return x;";if("relu"===e)return t?mc:sc;if("elu"===e)return t?yc:cc;if("relu6"===e)return t?gc:uc;if("prelu"===e)return t?xs:bs;throw new Error("Activation "+e+" has not been implemented for the WebGL backend.")}var _c=function(e){function t(t){var n,r=e.call(this)||this;if(r.pendingRead=new WeakMap,r.pendingDisposal=new WeakSet,r.dataRefCount=new WeakMap,r.numBytesInGPU=0,r.uploadWaitMs=0,r.downloadWaitMs=0,r.warnedAboutMemory=!1,r.pendingDeletes=0,r.disposed=!1,!Yt().getBool("HAS_WEBGL"))throw new Error("WebGL is not supported on this device");if(null==t){var o=Or(Yt().getNumber("WEBGL_VERSION"));r.binaryCache=((n=Yt().getNumber("WEBGL_VERSION"))in xc||(xc[n]={}),xc[n]),r.gpgpu=new yu(o),r.canvas=o.canvas,r.gpgpuCreatedLocally=!0}else r.gpgpu=t,r.binaryCache={},r.gpgpuCreatedLocally=!1,r.canvas=t.gl.canvas;return r.textureManager=new Yu(r.gpgpu),r.numMBBeforeWarning=null==Yt().global.screen?1024:Yt().global.screen.height*Yt().global.screen.width*window.devicePixelRatio*600/1024/1024,r.texData=new hi(r,mr),r}return Gt(t,e),t.prototype.numDataIds=function(){return this.texData.numDataIds()+(this.cpuBackend?this.cpuBackend.numDataIds():0)-this.pendingDeletes},t.prototype.write=function(e,t,n){if(Yt().getBool("DEBUG")&&this.checkNumericalProblems(e),"complex64"===n&&null!=e)throw new Error("Cannot write to a complex64 dtype. Please use tf.complex(real, imag).");var r={};return this.texData.set(r,{shape:t,dtype:n,values:e,usage:wr.UPLOAD}),r},t.prototype.move=function(e,t,n,r){if(Yt().getBool("DEBUG")&&this.checkNumericalProblems(t),"complex64"===r)throw new Error("Cannot write to a complex64 dtype. Please use tf.complex(real, imag).");this.texData.set(e,{shape:n,dtype:r,values:t,usage:wr.UPLOAD})},t.prototype.readSync=function(e){var t=this.texData.get(e),n=t.values,r=t.dtype,o=t.complexTensors,a=t.slice,i=t.shape,s=t.isPacked;if(null!=a){var u;u=s?new bc(i,vc):new oc(i,vc);var c=this.runWebGLProgram(u,[{dataId:e,shape:i,dtype:r}],r),l=this.readSync(c.dataId);return this.disposeData(c.dataId),l}if(null!=n)return this.convertAndCacheOnCPU(e);if("string"===r)return n;var f,h,p=null!=this.activeTimers;return p&&(f=Hn()),h="complex64"===r?Di(o.real.dataSync(),o.imag.dataSync()):this.getValuesFromTexture(e),p&&(this.downloadWaitMs+=Hn()-f),this.convertAndCacheOnCPU(e,h)},t.prototype.read=function(e){return Xt(this,void 0,void 0,(function(){var t,n,r,o,a,i,s,u,c,l,f,h,p,d,v,m,g,y,b,w,x,E;return Kt(this,(function(_){switch(_.label){case 0:if(this.pendingRead.has(e))return t=this.pendingRead.get(e),[2,new Promise((function(e){return t.push(e)}))];if(n=this.texData.get(e),r=n.values,o=n.shape,a=n.slice,i=n.dtype,s=n.complexTensors,u=n.isPacked,null!=a)return void 0,c=u?new bc(o,vc):new oc(o,vc),l=this.runWebGLProgram(c,[{dataId:e,shape:o,dtype:i}],i),f=this.read(l.dataId),this.disposeData(l.dataId),[2,f];if(null!=r)return[2,this.convertAndCacheOnCPU(e)];if(!Yt().getBool("WEBGL_DOWNLOAD_FLOAT_ENABLED")&&2===Yt().getNumber("WEBGL_VERSION"))throw new Error("tensor.data() with WEBGL_DOWNLOAD_FLOAT_ENABLED=false and WEBGL_VERSION=2 not yet supported.");return h=null,"complex64"!==i&&Yt().get("WEBGL_BUFFER_SUPPORTED")&&(p=this.decode(e),d=this.texData.get(p.dataId),h=(E=this.gpgpu).createBufferFromTexture.apply(E,[d.texture].concat(Ir(o)))),this.pendingRead.set(e,[]),"complex64"===i?[3,2]:[4,this.gpgpu.createAndWaitForFence()];case 1:_.sent(),_.label=2;case 2:return"complex64"!==i?[3,4]:[4,Promise.all([s.real.data(),s.imag.data()])];case 3:return m=_.sent(),g=m[0],y=m[1],v=Di(g,y),[3,5];case 4:null==h?v=this.getValuesFromTexture(e):(b=hn(o),v=this.gpgpu.downloadFloat32MatrixFromBuffer(h,b)),_.label=5;case 5:return null!=p&&this.disposeData(p.dataId),w=this.convertAndCacheOnCPU(e,v),x=this.pendingRead.get(e),this.pendingRead.delete(e),x.forEach((function(e){return e(w)})),this.pendingDisposal.has(e)&&(this.pendingDisposal.delete(e),this.disposeData(e),this.pendingDeletes--),[2,w]}}))}))},t.prototype.checkNumericalProblems=function(e){if(null!=e)for(var t=0;t<e.length;t++){var n=e[t];if(!Pr(n)){if(Yt().getBool("WEBGL_RENDER_FLOAT32_CAPABLE"))throw Error("The value "+n+" cannot be represented with your current settings. Consider enabling float32 rendering: 'tf.env().set('WEBGL_RENDER_FLOAT32_ENABLED', true);'");throw Error("The value "+n+" cannot be represented on this device.")}}},t.prototype.getValuesFromTexture=function(e){var t,n=this.texData.get(e),r=n.shape,o=n.dtype,a=n.isPacked,i=hn(r);if(Yt().getBool("WEBGL_DOWNLOAD_FLOAT_ENABLED")){var s=this.decode(e),u=this.texData.get(s.dataId),c=(t=this.gpgpu).downloadMatrixFromPackedTexture.apply(t,[u.texture].concat(Ir(r))).subarray(0,i);return this.disposeData(s.dataId),c}var l=Yt().getBool("WEBGL_PACK")&&!0===a,f=l?io(r):r,h=l?new Xs(f):new Gs(f),p=this.runWebGLProgram(h,[{shape:f,dtype:o,dataId:e}],"float32"),d=this.texData.get(p.dataId),v=this.gpgpu.downloadByteEncodedFloatMatrixFromOutputTexture(d.texture,d.texShape[0],d.texShape[1]).subarray(0,i);return this.disposeData(p.dataId),v},t.prototype.time=function(e){return Xt(this,void 0,void 0,(function(){var t,n,r,o,a,i,s;return Kt(this,(function(u){switch(u.label){case 0:return t=this.activeTimers,n=[],r=!1,null==this.programTimersStack?(this.programTimersStack=n,r=!0):this.activeTimers.push(n),this.activeTimers=n,e(),o=fn(this.activeTimers.map((function(e){return e.query}))).filter((function(e){return null!=e})),a=fn(this.activeTimers.map((function(e){return e.name}))).filter((function(e){return null!=e})),this.activeTimers=t,r&&(this.programTimersStack=null),[4,Promise.all(o)];case 1:return i=u.sent(),s={uploadWaitMs:this.uploadWaitMs,downloadWaitMs:this.downloadWaitMs,kernelMs:sn(i),getExtraProfileInfo:function(){return i.map((function(e,t){return{name:a[t],ms:e}})).map((function(e){return e.name+": "+e.ms})).join(", ")},wallMs:null},this.uploadWaitMs=0,this.downloadWaitMs=0,[2,s]}}))}))},t.prototype.memory=function(){return{unreliable:!1,numBytesInGPU:this.numBytesInGPU}},t.prototype.startTimer=function(){return Yt().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")>0?this.gpgpu.beginQuery():{startMs:Hn(),endMs:null}},t.prototype.endTimer=function(e){return Yt().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")>0?(this.gpgpu.endQuery(),e):(e.endMs=Hn(),e)},t.prototype.getQueryTime=function(e){return Xt(this,void 0,void 0,(function(){var t;return Kt(this,(function(n){return Yt().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")>0?[2,this.gpgpu.waitForQueryAndGetTime(e)]:[2,(t=e).endMs-t.startMs]}))}))},t.prototype.disposeData=function(e){if(!this.pendingDisposal.has(e)){if(this.pendingRead.has(e))return this.pendingDisposal.add(e),void this.pendingDeletes++;if(this.texData.has(e)){this.releaseGPUData(e);var t=this.texData.get(e).complexTensors;null!=t&&(t.real.dispose(),t.imag.dispose()),this.texData.delete(e)}}},t.prototype.releaseGPUData=function(e){var t=this.texData.get(e),n=t.texture,r=t.dtype,o=t.texShape,a=t.usage,i=t.isPacked,s=t.slice,u=s&&s.origDataId||e,c=this.dataRefCount.get(u);c>1?this.dataRefCount.set(u,c-1):(this.dataRefCount.delete(u),null!=n&&(this.numBytesInGPU-=this.computeBytes(o,r),this.textureManager.releaseTexture(n,o,a,i)));var l=this.texData.get(e);l.texture=null,l.texShape=null,l.isPacked=!1,l.slice=null},t.prototype.getTexture=function(e){return this.uploadToGPU(e),this.texData.get(e).texture},t.prototype.getDataInfo=function(e){return this.texData.get(e)},t.prototype.getCPUBackend=function(){return Yt().getBool("WEBGL_CPU_FORWARD")?(null==this.cpuBackend&&(this.cpuBackend=mr.findBackend("cpu")),this.cpuBackend):null},t.prototype.shouldExecuteOnCPU=function(e,t){var n=this;return void 0===t&&(t=128),null!=this.getCPUBackend()&&e.every((function(e){return null==n.texData.get(e.dataId).texture&&e.size<t}))},t.prototype.getGPGPUContext=function(){return this.gpgpu},t.prototype.complex=function(e,t){var n=this.makeOutput(e.shape,"complex64");return this.texData.get(n.dataId).complexTensors={real:mr.keep(e.clone()),imag:mr.keep(t.clone())},n},t.prototype.real=function(e){return this.texData.get(e.dataId).complexTensors.real.clone()},t.prototype.imag=function(e){return this.texData.get(e.dataId).complexTensors.imag.clone()},t.prototype.slice=function(e,t,n){if(this.shouldExecuteOnCPU([e]))return this.cpuBackend.slice(e,t,n);if(0===hn(n))return Uo([],n,e.dtype);var r=this.texData.get(e.dataId).isPacked,o=si(e.shape,t,n);if(r||!o){var a=Yt().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new Ku(n):new Gu(n),i=a.getCustomSetupFunc(t);return this.compileAndRun(a,[e],null,i)}return this.uploadToGPU(e.dataId),this.shallowSlice(e,t,n)},t.prototype.shallowSlice=function(e,t,n){var r=this.texData.get(e.dataId),o=this.makeOutput(n,e.dtype),a=this.texData.get(o.dataId);Object.assign(a,r),a.shape=n,a.dtype=e.dtype;var i=ui(t,e.strides);r.slice&&(i+=r.slice.flatOffset),a.slice={flatOffset:i,origDataId:r.slice&&r.slice.origDataId||e.dataId};var s=this.dataRefCount.get(a.slice.origDataId)||1;return this.dataRefCount.set(a.slice.origDataId,s+1),o},t.prototype.stridedSlice=function(e,t,n,r){if(this.shouldExecuteOnCPU([e]))return this.cpuBackend.stridedSlice(e,t,n,r);var o=oi(t,n,r);if(o.some((function(e){return 0===e})))return Uo([],o);var a=new $u(t,r,o);return this.compileAndRun(a,[e])},t.prototype.reverse=function(e,t){var n=Yt().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new Wu(e.shape,t):new Hu(e.shape,t);return this.compileAndRun(n,[e])},t.prototype.concat=function(e,t){if("complex64"===e[0].dtype){var n=e.map((function(e){return Wo(e)})),r=e.map((function(e){return Vo(e)}));return Ho(this.concat(n,t),this.concat(r,t))}if(this.shouldExecuteOnCPU(e))return this.cpuBackend.concat(e,t);if(1===e.length)return e[0];if(e.length>Yt().getNumber("WEBGL_MAX_TEXTURES_IN_SHADER")){var o=Math.floor(e.length/2),a=this.concat(e.slice(0,o),t),i=this.concat(e.slice(o),t);return this.concat([a,i],t)}if(Yt().getBool("WEBGL_PACK_ARRAY_OPERATIONS")&&e[0].rank>1){var s=new Is(e.map((function(e){return e.shape})),t);return this.compileAndRun(s,e)}var u=Lo(e.map((function(e){return e.shape})),t),c=e.map((function(e){return e.as2D(-1,hn(e.shape.slice(t)))})),l=new Cs(c.map((function(e){return e.shape})));return this.compileAndRun(l,c).reshape(u)},t.prototype.neg=function(e){if(this.shouldExecuteOnCPU([e]))return this.cpuBackend.neg(e);if(Yt().getBool("WEBGL_PACK_UNARY_OPERATIONS"))return this.packedUnaryOp(e,lc,e.dtype);var t=new oc(e.shape,lc);return this.compileAndRun(t,[e])},t.prototype.batchMatMul=function(e,t,n,r){var o=n?e.shape[2]:e.shape[1],a=r?t.shape[1]:t.shape[2],i=n?e.shape[1]:e.shape[2],s=e.shape[0];if((1===o||1===a)&&i>1e3){n&&(e=e.transpose([0,2,1])),r&&(t=t.transpose([0,2,1]));var u=1===a?e:e.as3D(s,i,1),c=1===a?2:1,l=1===a?t.as3D(s,1,i):t;return this.multiply(u,l).sum(c,!0)}var f=ur(e.dtype,t.dtype),h=new Cu(e.shape,[s,o,a],n,r);return this.compileAndRun(h,[e,t],f)},t.prototype.fusedBatchMatMul=function(e){var t=e.a,n=e.b,r=e.transposeA,o=e.transposeB,a=e.bias,i=e.activation,s=e.preluActivationWeights,u=r?t.shape[2]:t.shape[1],c=o?n.shape[1]:n.shape[2],l=t.shape[0],f=ur(t.dtype,n.dtype),h=null!=a,p=null!=s,d=i?Ec(i,!0):null,v=new Cu(t.shape,[l,u,c],r,o,h,d,p),m=[t,n];return a&&m.push(a),s&&m.push(s),this.compileAndRun(v,m,f)},t.prototype.multiply=function(e,t){if("complex64"===e.dtype){var n=this.texData.get(e.dataId),r=this.texData.get(t.dataId),o=new vs("return areal * breal - aimag * bimag;",e.shape,t.shape),a=new vs("return areal * bimag + aimag * breal;",e.shape,t.shape),i=[this.makeComplexComponentTensorInfo(e,n.complexTensors.real),this.makeComplexComponentTensorInfo(e,n.complexTensors.imag),this.makeComplexComponentTensorInfo(t,r.complexTensors.real),this.makeComplexComponentTensorInfo(t,r.complexTensors.imag)],s=this.compileAndRun(o,i),u=this.compileAndRun(a,i),c=this.complex(s,u);return s.dispose(),u.dispose(),c}if(this.shouldExecuteOnCPU([e,t]))return this.cpuBackend.multiply(e,t);if(Yt().getBool("WEBGL_PACK_BINARY_OPERATIONS"))return this.packedBinaryOp(e,t,ys,e.dtype);var l=new ws(ys,e.shape,t.shape);return this.compileAndRun(l,[e,t],e.dtype)},t.prototype.batchNormalization=function(e,t,n,r,o,a){var i=[e,t,n],s=null;null!=a&&(s=a.shape,i.push(a));var u=null;if(null!=o&&(u=o.shape,i.push(o)),Yt().getBool("WEBGL_PACK_NORMALIZATION")){var c=new ds(e.shape,t.shape,n.shape,s,u,r);return this.compileAndRun(c,i)}var l=new ps(e.shape,t.shape,n.shape,s,u,r);return this.compileAndRun(l,i)},t.prototype.localResponseNormalization4D=function(e,t,n,r,o){var a=Yt().getBool("WEBGL_PACK_NORMALIZATION")?new _u(e.shape,t,n,r,o):new xu(e.shape,t,n,r,o);return this.compileAndRun(a,[e])},t.prototype.LRNGrad=function(e,t,n,r,o,a,i){var s=new Eu(t.shape,r,o,a,i);return this.compileAndRun(s,[t,n,e])},t.prototype.tile=function(e,t){if("string"===e.dtype){var n=this.readSync(e.dataId).map((function(e){return Un(e)}));return zi(xa(e.shape,e.dtype,n),t)}var r=new Qu(e.shape,t);return this.compileAndRun(r,[e])},t.prototype.pad=function(e,t,n){var r=Yt().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new Pu(e.shape,t,n):new Au(e.shape,t,n);return this.compileAndRun(r,[e])},t.prototype.transpose=function(e,t){if(this.shouldExecuteOnCPU([e]))return this.cpuBackend.transpose(e,t);var n=Yt().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new tc(e.shape,t):new ec(e.shape,t);return this.compileAndRun(n,[e])},t.prototype.gather=function(e,t,n){if(this.shouldExecuteOnCPU([e,t]))return this.cpuBackend.gather(e,t,n);var r=new Zs(e.shape,t.size,n);return this.compileAndRun(r,[e,t])},t.prototype.batchToSpaceND=function(e,t,n){un(e.rank<=4,(function(){return"batchToSpaceND for rank > 4 with a WebGL backend not implemented yet"}));var r=t.reduce((function(e,t){return e*t})),o=Ka(e.shape,t,r),a=$a(o.length,t.length),i=Ya(e.shape,t,r),s=Ja(n,t.length),u=Za(i,n,t.length);return e.reshape(o).transpose(a).reshape(i).slice(s,u)},t.prototype.spaceToBatchND=function(e,t,n){un(e.rank<=4,(function(){return"spaceToBatchND for rank > 4 with a WebGL backend not implemented yet"}));var r=t.reduce((function(e,t){return e*t})),o=[[0,0]];o.push.apply(o,n);for(var a=1+t.length;a<e.shape.length;++a)o.push([0,0]);var i=e.pad(o),s=Ka(i.shape,t,r,!1),u=$a(s.length,t.length,!1),c=Ya(i.shape,t,r,!1);return i.reshape(s).transpose(u).reshape(c)},t.prototype.reduce=function(e,t,n){var r=e.shape[0],o=e.shape[1],a=ei(o),i=new Nu({windowSize:a,inSize:o,batchSize:r},t),s=this.compileAndRun(i,[e],n);return 1===s.shape[1]?s:this.reduce(s,t,n)},t.prototype.argReduce=function(e,t,n){void 0===n&&(n=null);var r=e.shape[0],o=e.shape[1];null!=n&&(r=n.shape[0],o=n.shape[1]);var a=ei(o),i=new qi({windowSize:a,inSize:o,batchSize:r},t,null==n),s=[e];null!=n&&s.push(n);var u=this.compileAndRun(i,s,"int32");return 1===u.shape[1]?u:this.argReduce(e,t,u)},t.prototype.argReducePacked=function(e,t,n){void 0===n&&(n=null);var r=null!=n?n.shape:e.shape,o=ei(r[r.length-1]),a=new ls(r,o,t,null==n),i=null==n?[e]:[e,n],s=this.compileAndRun(a,i,"int32");return s.rank===e.rank?this.argReducePacked(e,t,s):s},t.prototype.sum=function(e,t){No("sum",t,e.rank);var n=To(e.shape,t),r=n[0],o=hn(n[1]),a=e.as2D(-1,o),i=cr(e.dtype);return this.reduce(a,"sum",i).reshape(r)},t.prototype.prod=function(e,t){if(this.shouldExecuteOnCPU([e]))return this.cpuBackend.prod(e,t);var n=To(e.shape,t),r=n[0],o=hn(n[1]),a=e.as2D(-1,o),i=cr(e.dtype);return this.reduce(a,"prod",i).reshape(r)},t.prototype.unsortedSegmentSum=function(e,t,n){var r=0,o=Mo([r],e.rank),a=e;null!=o&&(a=e.transpose(o),r=Bo(1,e.rank)[0]);var i=function(e,t,n){for(var r=[],o=e.length,a=0;a<o;a++)a!==t?r.push(e[a]):r.push(n);return r}(a.shape,r,n),s=hn([a.shape[r]]),u=a.as2D(-1,s),c=cr(e.dtype),l=this.segOpCompute(u,"unsortedSegmentSum",t,c,n).reshape(i);return null!=o&&(l=l.transpose(Fo(o))),l},t.prototype.segOpCompute=function(e,t,n,r,o){var a=e.shape[0],i=e.shape[1],s=function(e,t){var n,r=!1;for(e<=30?(n=e,r=!0):n=Mn(e,Math.floor(Math.sqrt(e)));!r;)n>t||n===e?r=!0:n=Mn(e,n+1);return n}(i,o),u=new Uu({windowSize:s,inSize:i,batchSize:a,numSegments:o},t),c=this.compileAndRun(u,[e,n],r);return c.shape[1]===o?c:(n=ea(0,o).tile([i/s]),this.segOpCompute(c,t,n,r,o))},t.prototype.argMinMaxReduce=function(e,t,n){var r=[t];if(No("arg"+n.charAt(0).toUpperCase()+n.slice(1),r,e.rank),!Yt().getBool("WEBGL_PACK_REDUCE")||e.rank<=2){var o=To(e.shape,r),a=o[0],i=hn(o[1]),s=e.as2D(-1,i);return this.argReduce(s,n).reshape(a)}return this.argReducePacked(e,n)},t.prototype.argMin=function(e,t){return this.argMinMaxReduce(e,t,"min")},t.prototype.argMax=function(e,t){return this.argMinMaxReduce(e,t,"max")},t.prototype.cumsum=function(e,t,n,r){if(t!==e.rank-1)throw new Error("WebGL cumsum shader expects an inner-most axis="+(e.rank-1)+" but got axis="+t);var o=new zs(e.shape,n,r);return this.compileAndRun(o,[e])},t.prototype.equal=function(e,t){if(Yt().getBool("WEBGL_PACK_BINARY_OPERATIONS"))return this.packedBinaryOp(e,t,"\n return vec4(equal(a, b));\n","bool");var n=new ws("return float(a == b);",e.shape,t.shape);return this.compileAndRun(n,[e,t],"bool")},t.prototype.notEqual=function(e,t){if(Yt().getBool("WEBGL_PACK_BINARY_OPERATIONS"))return this.packedBinaryOp(e,t,"\n return vec4(notEqual(a, b));\n","bool");var n=new ws("return float(a != b);",e.shape,t.shape);return this.compileAndRun(n,[e,t],"bool")},t.prototype.less=function(e,t){if(this.shouldExecuteOnCPU([e,t]))return this.cpuBackend.less(e,t);if(Yt().getBool("WEBGL_PACK_BINARY_OPERATIONS"))return this.packedBinaryOp(e,t,"\n return vec4(lessThan(a, b));\n","bool");var n=new ws("return float(a < b);",e.shape,t.shape);return this.compileAndRun(n,[e,t],"bool")},t.prototype.lessEqual=function(e,t){if(Yt().getBool("WEBGL_PACK_BINARY_OPERATIONS"))return this.packedBinaryOp(e,t,"\n return vec4(lessThanEqual(a, b));\n","bool");var n=new ws("return float(a <= b);",e.shape,t.shape);return this.compileAndRun(n,[e,t],"bool")},t.prototype.greater=function(e,t){if(this.shouldExecuteOnCPU([e,t]))return this.cpuBackend.greater(e,t);if(Yt().getBool("WEBGL_PACK_BINARY_OPERATIONS"))return this.packedBinaryOp(e,t,"\n return vec4(greaterThan(a, b));\n","bool");var n=new ws("return float(a > b);",e.shape,t.shape);return this.compileAndRun(n,[e,t],"bool")},t.prototype.greaterEqual=function(e,t){if(Yt().getBool("WEBGL_PACK_BINARY_OPERATIONS"))return this.packedBinaryOp(e,t,"\n return vec4(greaterThanEqual(a, b));\n","bool");var n=new ws("return float(a >= b);",e.shape,t.shape);return this.compileAndRun(n,[e,t],"bool")},t.prototype.logicalNot=function(e){var t=new oc(e.shape,"return float(!(x >= 1.0));");return this.compileAndRun(t,[e])},t.prototype.logicalAnd=function(e,t){if(Yt().getBool("WEBGL_PACK_BINARY_OPERATIONS"))return this.packedBinaryOp(e,t,"\n return vec4(\n vec4(greaterThanEqual(a, vec4(1.0))) *\n vec4(greaterThanEqual(b, vec4(1.0))));\n","bool");var n=new ws("return float(a >= 1.0 && b >= 1.0);",e.shape,t.shape);return this.compileAndRun(n,[e,t],"bool")},t.prototype.logicalOr=function(e,t){if(Yt().getBool("WEBGL_PACK_BINARY_OPERATIONS"))return this.packedBinaryOp(e,t,"\n return min(\n vec4(greaterThanEqual(a, vec4(1.0))) +\n vec4(greaterThanEqual(b, vec4(1.0))),\n vec4(1.0));\n","bool");var n=new ws("return float(a >= 1.0 || b >= 1.0);",e.shape,t.shape);return this.compileAndRun(n,[e,t],"bool")},t.prototype.select=function(e,t,n){var r=new qu(e.rank,t.shape,t.rank);return this.compileAndRun(r,[e,t,n],ur(t.dtype,n.dtype))},t.prototype.where=function(e){Oo("tf.where() in webgl locks the UI thread. Call tf.whereAsync() instead");var t=e.dataSync();return Wi(e.shape,t)},t.prototype.topk=function(e,t,n){return Hi(e.dataSync(),e.shape,e.dtype,t)},t.prototype.min=function(e,t){No("min",t,e.rank);var n=To(e.shape,t),r=n[0],o=hn(n[1]),a=e.as2D(-1,o);return this.reduce(a,"min",a.dtype).reshape(r)},t.prototype.minimum=function(e,t){if(this.shouldExecuteOnCPU([e,t]))return this.cpuBackend.minimum(e,t);var n=Yt().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new Es("\n vec4 result = vec4(min(a, b));\n vec4 isNaN = min(vec4(isnan(a)) + vec4(isnan(b)), vec4(1.0));\n \n result.r = isNaN.r > 0. ? NAN : result.r;\n result.g = isNaN.g > 0. ? NAN : result.g;\n result.b = isNaN.b > 0. ? NAN : result.b;\n result.a = isNaN.a > 0. ? NAN : result.a;\n\n return result;\n",e.shape,t.shape):new ws("\n if (isnan(a)) return a;\n if (isnan(b)) return b;\n\n return min(a, b);\n",e.shape,t.shape);return this.compileAndRun(n,[e,t])},t.prototype.mod=function(e,t){var n=Yt().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new Es("\n vec4 result = mod(a, b);\n vec4 isNaN = vec4(equal(b, vec4(0.0)));\n \n result.r = isNaN.r > 0. ? NAN : result.r;\n result.g = isNaN.g > 0. ? NAN : result.g;\n result.b = isNaN.b > 0. ? NAN : result.b;\n result.a = isNaN.a > 0. ? NAN : result.a;\n\n return result;\n",e.shape,t.shape):new ws("if (b == 0.0) return NAN;\n return mod(a, b);",e.shape,t.shape);return this.compileAndRun(n,[e,t])},t.prototype.max=function(e,t){if(this.shouldExecuteOnCPU([e]))return this.cpuBackend.max(e,t);No("max",t,e.rank);var n=To(e.shape,t),r=n[0],o=hn(n[1]),a=e.as2D(-1,o);return this.reduce(a,"max",a.dtype).reshape(r)},t.prototype.maximum=function(e,t){if(this.shouldExecuteOnCPU([e,t]))return this.cpuBackend.maximum(e,t);var n=Yt().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new Es("\n vec4 result = vec4(max(a, b));\n vec4 isNaN = min(vec4(isnan(a)) + vec4(isnan(b)), vec4(1.0));\n \n result.r = isNaN.r > 0. ? NAN : result.r;\n result.g = isNaN.g > 0. ? NAN : result.g;\n result.b = isNaN.b > 0. ? NAN : result.b;\n result.a = isNaN.a > 0. ? NAN : result.a;\n\n return result;\n",e.shape,t.shape):new ws("\n if (isnan(a)) return a;\n if (isnan(b)) return b;\n\n return max(a, b);\n",e.shape,t.shape);return this.compileAndRun(n,[e,t])},t.prototype.all=function(e,t){No("all",t,e.rank);var n=To(e.shape,t),r=n[0],o=hn(n[1]),a=e.as2D(-1,o);return this.reduce(a,"all",a.dtype).reshape(r)},t.prototype.any=function(e,t){No("any",t,e.rank);var n=To(e.shape,t),r=n[0],o=hn(n[1]),a=e.as2D(-1,o);return this.reduce(a,"any",a.dtype).reshape(r)},t.prototype.squaredDifference=function(e,t){var n=Yt().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new Es("return (a - b) * (a - b);",e.shape,t.shape):new ws("return (a - b) * (a - b);",e.shape,t.shape);return this.compileAndRun(n,[e,t])},t.prototype.realDivide=function(e,t){if(Yt().getBool("WEBGL_PACK_BINARY_OPERATIONS"))return this.packedBinaryOp(e,t,"\n // vec4 one = vec4(equal(a, b));\n // return one + (vec4(1.0) - one) * a / b;\n vec4 result = a / b;\n if(a.x == b.x) {\n result.x = 1.;\n }\n if(a.y == b.y) {\n result.y = 1.;\n }\n if(a.z == b.z) {\n result.z = 1.;\n }\n if(a.w == b.w) {\n result.w = 1.;\n }\n\n return result;\n","float32",!0);var n=new ws("\nif (a == b) {\n return 1.0;\n};\nreturn a / b;",e.shape,t.shape);return this.compileAndRun(n,[e,t],"float32")},t.prototype.floorDiv=function(e,t){if(Yt().getBool("WEBGL_PACK_BINARY_OPERATIONS"))return this.packedBinaryOp(e,t,"\n ivec4 ia = round(a);\n ivec4 ib = round(b);\n bvec4 cond = notEqual(ib, ivec4(0));\n ivec4 result = ivec4(0);\n vec4 s = sign(a) * sign(b);\n\n // Windows (D3D) wants guaranteed non-zero int division at compile-time.\n if (cond[0]) {\n result[0] = idiv(ia[0], ib[0], s[0]);\n }\n if (cond[1]) {\n result[1] = idiv(ia[1], ib[1], s[1]);\n }\n if (cond[2]) {\n result[2] = idiv(ia[2], ib[2], s[2]);\n }\n if (cond[3]) {\n result[3] = idiv(ia[3], ib[3], s[3]);\n }\n return vec4(result);\n","int32");var n=new ws("\n float s = sign(a) * sign(b);\n int ia = round(a);\n int ib = round(b);\n if (ib != 0) {\n // Windows (D3D) wants guaranteed non-zero int division at compile-time.\n return float(idiv(ia, ib, s));\n } else {\n return NAN;\n }\n",e.shape,t.shape);return this.compileAndRun(n,[e,t],"int32")},t.prototype.add=function(e,t){if("complex64"===e.dtype&&"complex64"===t.dtype)return this.complexSeparableBinaryOp(e,t,ms);if(this.shouldExecuteOnCPU([e,t]))return this.cpuBackend.add(e,t);var n=ur(e.dtype,t.dtype);if(Yt().getBool("WEBGL_PACK_BINARY_OPERATIONS"))return this.packedBinaryOp(e,t,ms,n);var r=new ws(ms,e.shape,t.shape);return this.compileAndRun(r,[e,t],n)},t.prototype.packedUnaryOp=function(e,t,n){var r=new bc(e.shape,t);return this.compileAndRun(r,[e],n)},t.prototype.packedBinaryOp=function(e,t,n,r,o){void 0===o&&(o=!1);var a=new Es(n,e.shape,t.shape,o);return this.compileAndRun(a,[e,t],r)},t.prototype.complexSeparableBinaryOp=function(e,t,n){var r=this,o=this.texData.get(e.dataId),a=this.texData.get(t.dataId),i=[[o.complexTensors.real,a.complexTensors.real],[o.complexTensors.imag,a.complexTensors.imag]].map((function(o){var a=o[0],i=o[1],s=r.makeComplexComponentTensorInfo(e,a),u=r.makeComplexComponentTensorInfo(t,i),c=new ws(n,e.shape,t.shape);return r.compileAndRun(c,[s,u],ur(a.dtype,i.dtype))})),s=i[0],u=i[1],c=this.complex(s,u);return s.dispose(),u.dispose(),c},t.prototype.makeComplexComponentTensorInfo=function(e,t){return{dataId:t.dataId,dtype:t.dtype,shape:e.shape}},t.prototype.addN=function(e){if(1===e.length)return e[0];if(e.length>Yt().get("WEBGL_MAX_TEXTURES_IN_SHADER")){var t=Math.floor(e.length/2),n=this.addN(e.slice(0,t)),r=this.addN(e.slice(t));return this.addN([n,r])}var o=e.map((function(e){return e.dtype})).reduce((function(e,t){return ur(e,t)})),a=e.map((function(e){return e.shape})),i=Yt().getBool("WEBGL_PACK")?new Ui(e[0].shape,a):new Vi(e[0].shape,a);return this.compileAndRun(i,e,o)},t.prototype.subtract=function(e,t){if("complex64"===e.dtype&&"complex64"===t.dtype)return this.complexSeparableBinaryOp(e,t,gs);if(this.shouldExecuteOnCPU([e,t]))return this.cpuBackend.subtract(e,t);var n=ur(e.dtype,t.dtype);if(Yt().getBool("WEBGL_PACK_BINARY_OPERATIONS"))return this.packedBinaryOp(e,t,gs,e.dtype);var r=new ws(gs,e.shape,t.shape);return this.compileAndRun(r,[e,t],n)},t.prototype.pow=function(e,t){var n=Yt().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new Es("\n // isModRound1 has 1 for components with round(mod(b, 2.0)) == 1, 0 otherwise.\n vec4 isModRound1 = vec4(equal(round(mod(b, 2.0)), ivec4(1)));\n vec4 multiplier = sign(a) * isModRound1 + (vec4(1.0) - isModRound1);\n vec4 result = multiplier * pow(abs(a), b);\n\n // Ensure that a^0 = 1, including 0^0 = 1 as this correspond to TF and JS\n bvec4 isExpZero = equal(b, vec4(0.0));\n result.r = isExpZero.r ? 1.0 : result.r;\n result.g = isExpZero.g ? 1.0 : result.g;\n result.b = isExpZero.b ? 1.0 : result.b;\n result.a = isExpZero.a ? 1.0 : result.a;\n\n vec4 isNaN = vec4(lessThan(a, vec4(0.0))) * vec4(lessThan(floor(b), b));\n \n result.r = isNaN.r > 0. ? NAN : result.r;\n result.g = isNaN.g > 0. ? NAN : result.g;\n result.b = isNaN.b > 0. ? NAN : result.b;\n result.a = isNaN.a > 0. ? NAN : result.a;\n\n return result;\n",e.shape,t.shape):new ws("\nif(a < 0.0 && floor(b) < b){\n return NAN;\n}\nif (b == 0.0) {\n return 1.0;\n}\nreturn (round(mod(b, 2.0)) != 1) ?\n pow(abs(a), b) : sign(a) * pow(abs(a), b);\n",e.shape,t.shape),r=ur(e.dtype,t.dtype);return this.compileAndRun(n,[e,t],r)},t.prototype.ceil=function(e){if(this.shouldExecuteOnCPU([e]))return this.cpuBackend.ceil(e);if(Yt().getBool("WEBGL_PACK_UNARY_OPERATIONS"))return this.packedUnaryOp(e,fc,e.dtype);var t=new oc(e.shape,fc);return this.compileAndRun(t,[e])},t.prototype.floor=function(e){if(this.shouldExecuteOnCPU([e]))return this.cpuBackend.floor(e);if(Yt().getBool("WEBGL_PACK_UNARY_OPERATIONS"))return this.packedUnaryOp(e,hc,e.dtype);var t=new oc(e.shape,hc);return this.compileAndRun(t,[e])},t.prototype.sign=function(e){var t=new oc(e.shape,"\n if (isnan(x)) { return 0.0; }\n return sign(x);\n");return this.compileAndRun(t,[e])},t.prototype.isNaN=function(e){var t=new oc(e.shape,"return float(isnan(x));");return this.compileAndRun(t,[e],"bool")},t.prototype.isInf=function(e){var t=new oc(e.shape,"return float(isinf(x));");return this.compileAndRun(t,[e],"bool")},t.prototype.isFinite=function(e){var t=new oc(e.shape,"return float(!isnan(x) && !isinf(x));");return this.compileAndRun(t,[e],"bool")},t.prototype.round=function(e){var t=new oc(e.shape,"\n // OpenGL ES does not support round function.\n // The algorithm is based on banker's rounding.\n float base = floor(x);\n if ((x - base) < 0.5) {\n return floor(x);\n } else if ((x - base) > 0.5) {\n return ceil(x);\n } else {\n if (mod(base, 2.0) == 0.0) {\n return base;\n } else {\n return base + 1.0;\n }\n }\n");return this.compileAndRun(t,[e])},t.prototype.exp=function(e){if(this.shouldExecuteOnCPU([e]))return this.cpuBackend.exp(e);if(Yt().getBool("WEBGL_PACK_UNARY_OPERATIONS"))return this.packedUnaryOp(e,pc,e.dtype);var t=new oc(e.shape,pc);return this.compileAndRun(t,[e])},t.prototype.expm1=function(e){if(this.shouldExecuteOnCPU([e]))return this.cpuBackend.expm1(e);if(Yt().getBool("WEBGL_PACK_UNARY_OPERATIONS"))return this.packedUnaryOp(e,dc,e.dtype);var t=new oc(e.shape,dc);return this.compileAndRun(t,[e])},t.prototype.log=function(e){if(this.shouldExecuteOnCPU([e]))return this.cpuBackend.log(e);if(Yt().getBool("WEBGL_PACK_UNARY_OPERATIONS"))return this.packedUnaryOp(e,"\n vec4 result = log(x);\n vec4 isNaN = vec4(lessThan(x, vec4(0.0)));\n result.r = isNaN.r == 1.0 ? NAN : result.r;\n result.g = isNaN.g == 1.0 ? NAN : result.g;\n result.b = isNaN.b == 1.0 ? NAN : result.b;\n result.a = isNaN.a == 1.0 ? NAN : result.a;\n\n return result;\n",e.dtype);var t=new oc(e.shape,"if (x < 0.0) return NAN;\n return log(x);");return this.compileAndRun(t,[e])},t.prototype.log1p=function(e){var t=new oc(e.shape,"return log(1.0 + x);");return this.compileAndRun(t,[e])},t.prototype.sqrt=function(e){var t=new oc(e.shape,"return sqrt(x);");return this.compileAndRun(t,[e])},t.prototype.rsqrt=function(e){if(this.shouldExecuteOnCPU([e]))return this.cpuBackend.rsqrt(e);var t=new oc(e.shape,"return inversesqrt(x);");return this.compileAndRun(t,[e])},t.prototype.reciprocal=function(e){var t=new oc(e.shape,"return 1.0 / x;");return this.compileAndRun(t,[e])},t.prototype.relu=function(e){var t;return t=Yt().getBool("WEBGL_PACK")?new bc(e.shape,mc):new oc(e.shape,sc),this.compileAndRun(t,[e])},t.prototype.relu6=function(e){var t;return t=Yt().getBool("WEBGL_PACK")?new bc(e.shape,gc):new oc(e.shape,uc),this.compileAndRun(t,[e])},t.prototype.prelu=function(e,t){var n=Yt().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new Es(xs,e.shape,t.shape):new ws(bs,e.shape,t.shape);return this.compileAndRun(n,[e,t])},t.prototype.elu=function(e){if(Yt().getBool("WEBGL_PACK_UNARY_OPERATIONS"))return this.packedUnaryOp(e,yc,e.dtype);var t=new oc(e.shape,cc);return this.compileAndRun(t,[e])},t.prototype.eluDer=function(e,t){var n=Yt().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new Es("\n vec4 bGTEZero = vec4(greaterThanEqual(b, vec4(0.)));\n return (bGTEZero * a) + ((vec4(1.0) - bGTEZero) * (a * (b + vec4(1.0))));\n",e.shape,t.shape):new ws("return (b >= 1.0) ? a : a * (b + 1.0);",e.shape,t.shape);return this.compileAndRun(n,[e,t])},t.prototype.selu=function(e){var t=new oc(e.shape,"\n // Stable and Attracting Fixed Point (0, 1) for Normalized Weights.\n // see: https://arxiv.org/abs/1706.02515\n float scaleAlpha = 1.7580993408473768;\n float scale = 1.0507009873554805;\n return (x >= 0.0) ? scale * x : scaleAlpha * (exp(x) - 1.0);\n");return this.compileAndRun(t,[e])},t.prototype.int=function(e){var t=new oc(e.shape,"return float(int(x));");return this.compileAndRun(t,[e],"int32")},t.prototype.clip=function(e,t,n){var r,o=(r=Yt().getBool("WEBGL_PACK_CLIP")?new ks(e.shape):new _s(e.shape)).getCustomSetupFunc(t,n);return this.compileAndRun(r,[e],null,o)},t.prototype.abs=function(e){if(this.shouldExecuteOnCPU([e]))return this.cpuBackend.abs(e);if(Yt().getBool("WEBGL_PACK_UNARY_OPERATIONS"))return this.packedUnaryOp(e,ic,e.dtype);var t=new oc(e.shape,ic);return this.compileAndRun(t,[e])},t.prototype.complexAbs=function(e){var t=this.texData.get(e.dataId),n=new Os(e.shape),r=[this.makeComplexComponentTensorInfo(e,t.complexTensors.real),this.makeComplexComponentTensorInfo(e,t.complexTensors.imag)];return this.compileAndRun(n,r)},t.prototype.sigmoid=function(e){var t=new oc(e.shape,"return 1.0 / (1.0 + exp(-1.0 * x));");return this.compileAndRun(t,[e])},t.prototype.softplus=function(e){var t=new oc(e.shape,"\n float epsilon = 1.1920928955078125e-7;\n float threshold = log(epsilon) + 2.0;\n\n bool too_large = x > -threshold;\n bool too_small = x < threshold;\n\n float result;\n float exp_x = exp(x);\n\n if (too_large){\n result = x;\n }\n else if (too_small){\n result = exp_x;\n }\n else{\n result = log(exp_x + 1.0);\n }\n return result;\n");return this.compileAndRun(t,[e])},t.prototype.sin=function(e){var t=new oc(e.shape,"if (isnan(x)) return x;\n return sin(x);\n");return this.compileAndRun(t,[e])},t.prototype.cos=function(e){var t=new oc(e.shape,"if (isnan(x)) return x;\n return cos(x);\n");return this.compileAndRun(t,[e])},t.prototype.tan=function(e){var t=new oc(e.shape,"return tan(x);");return this.compileAndRun(t,[e])},t.prototype.asin=function(e){var t=new oc(e.shape,"if (isnan(x)) return x;\n if (abs(x) > 1.) {\n return NAN;\n }\n return asin(x);\n");return this.compileAndRun(t,[e])},t.prototype.acos=function(e){var t=new oc(e.shape,"if (isnan(x)) return x;\n if (abs(x) > 1.) {\n return NAN;\n }\n return acos(x);\n");return this.compileAndRun(t,[e])},t.prototype.atan=function(e){var t=new oc(e.shape,"if (isnan(x)) return x;\n return atan(x);\n");return this.compileAndRun(t,[e])},t.prototype.atan2=function(e,t){var n=Yt().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new Es("\n vec4 result = atan(a, b);\n vec4 isNaN = min(vec4(isnan(a)) + vec4(isnan(b)), vec4(1.0));\n \n result.r = isNaN.r > 0. ? NAN : result.r;\n result.g = isNaN.g > 0. ? NAN : result.g;\n result.b = isNaN.b > 0. ? NAN : result.b;\n result.a = isNaN.a > 0. ? NAN : result.a;\n\n return result;\n",e.shape,t.shape):new ws("\n if (isnan(a)) return a;\n if (isnan(b)) return b;\n\n return atan(a, b);\n",e.shape,t.shape);return this.compileAndRun(n,[e,t])},t.prototype.sinh=function(e){var t=new oc(e.shape,"\n float e2x = exp(x);\n return (e2x - 1.0 / e2x) / 2.0;\n");return this.compileAndRun(t,[e])},t.prototype.cosh=function(e){var t=new oc(e.shape,"\n float e2x = exp(-x);\n return (e2x + 1.0 / e2x) / 2.0;\n");return this.compileAndRun(t,[e])},t.prototype.tanh=function(e){var t=new oc(e.shape,"\n float e2x = exp(-2.0 * abs(x));\n return sign(x) * (1.0 - e2x) / (1.0 + e2x);\n");return this.compileAndRun(t,[e])},t.prototype.asinh=function(e){var t=new oc(e.shape,"if (isnan(x)) return x;return log(x + sqrt(x * x + 1.0));");return this.compileAndRun(t,[e])},t.prototype.acosh=function(e){var t=new oc(e.shape,"if (isnan(x)) return x;\n if (x < 1.0) return NAN;\n return log(x + sqrt(x * x - 1.0));");return this.compileAndRun(t,[e])},t.prototype.atanh=function(e){var t=new oc(e.shape,"if (isnan(x)) return x;\n if ((x < -1.0) || (x > 1.0)) return NAN;\n return (log(1.0 + x) - log(1.0 - x)) / 2.0;");return this.compileAndRun(t,[e])},t.prototype.erf=function(e){var t=new oc(e.shape,'\n // Error function is calculated approximately with elementary function.\n // See "Handbook of Mathematical Functions with Formulas,\n // Graphs, and Mathematical Tables", Abramowitz and Stegun.\n float p = 0.3275911;\n float a1 = 0.254829592;\n float a2 = -0.284496736;\n float a3 = 1.421413741;\n float a4 = -1.453152027;\n float a5 = 1.061405429;\n\n float sign = sign(x);\n x = abs(x);\n float t = 1.0 / (1.0 + p * x);\n return sign * (1.0 - (((((a5*t + a4)*t) + a3)*t + a2)*t + a1)*t*exp(-x*x));\n');return this.compileAndRun(t,[e])},t.prototype.step=function(e,t){var n=new oc(e.shape,function(e){return void 0===e&&(e=0),ac+"\n return x > 0.0 ? 1.0 : float("+e+");\n "}(t));return this.compileAndRun(n,[e])},t.prototype.conv2dByMatMul=function(e,t,n,r,o,a){var i=e.shape,s=this.texData.get(e.dataId),u=n.inChannels,c=i[0]*i[1]*i[2],l=n.outChannels,f="channelsLast"===n.dataFormat,h=(1===c||1===l)&&u>1e3,p=i[2]%2!=0&&!!s.isPacked;if(h||!Yt().getBool("WEBGL_LAZILY_UNPACK")||!Yt().getBool("WEBGL_PACK_BINARY_OPERATIONS")||!p){var d=f?i[0]*i[1]*i[2]:i[0]*i[2]*i[3],v=this.reshape(e,[1,d,n.inChannels]),m=this.reshape(t,[1,n.inChannels,n.outChannels]);return this.reshape(this.fusedBatchMatMul({a:v,b:m,transposeA:!1,transposeB:!1,bias:r,activation:o,preluActivationWeights:a}),n.outShape)}var g=f?i[0]*i[1]*(i[2]+1):i[0]*i[2]*(i[3]+1),y={dataId:e.dataId,shape:[1,g,n.inChannels],dtype:e.dtype},b=s.shape;s.shape=s.shape.slice(),s.shape[s.shape.length-2]++,un(co(s.shape,y.shape),(function(){return"packed reshape "+s.shape+" to "+y.shape+" isn't free"}));var w=this.reshape(t,[1,n.inChannels,n.outChannels]),x=this.fusedBatchMatMul({a:y,b:w,transposeA:!1,transposeB:!1,bias:r,activation:o,preluActivationWeights:a}),E=this.texData.get(x.dataId);return un(E.isPacked,(function(){return"batchMatMul result is expected to be packed"})),s.shape=b,E.shape=n.outShape,mr.makeTensorFromDataId(x.dataId,n.outShape,x.dtype)},t.prototype.conv2dWithIm2Row=function(e,t,n,r,o,a){var i=n.filterWidth,s=n.filterHeight,u=n.inChannels,c=n.outWidth,l=n.outHeight,f="channelsLast"===n.dataFormat,h=i*s*u,p=l*c,d=[h,p],v=e.squeeze([0]),m=t.reshape([1,h,-1]),g=new wu(d,v.shape,n),y=this.compileAndRun(g,[v]).reshape([1,d[0],d[1]]),b=null!=r,w=null!=a,x=o?Ec(o,!0):null,E=new Cu(y.shape,[1,p,n.outChannels],!0,!1,b,x,w),_=[y,m];r&&_.push(r),w&&_.push(a);var k=this.compileAndRun(E,_);return f?k.reshape([1,l,c,n.outChannels]):k.reshape([1,n.outChannels,l,c])},t.prototype.fusedConv2d=function(e){var t=e.input,n=e.filter,r=e.convInfo,o=e.bias,a=e.activation,i=e.preluActivationWeights;if(1===r.filterHeight&&1===r.filterWidth&&1===r.dilationHeight&&1===r.dilationWidth&&1===r.strideHeight&&1===r.strideWidth&&("SAME"===r.padInfo.type||"VALID"===r.padInfo.type))return this.conv2dByMatMul(t,n,r,o,a,i);if(Yt().getBool("WEBGL_CONV_IM2COL")&&1===t.shape[0])return this.conv2dWithIm2Row(t,n,r,o,a,i);var s=null!=o,u=null!=i,c=a?Ec(a,!1):null,l=new Ms(r,s,c,u),f=[t,n];return o&&f.push(o),i&&f.push(i),this.compileAndRun(l,f)},t.prototype.conv2d=function(e,t,n){if(1===n.filterHeight&&1===n.filterWidth&&1===n.dilationHeight&&1===n.dilationWidth&&1===n.strideHeight&&1===n.strideWidth&&("SAME"===n.padInfo.type||"VALID"===n.padInfo.type))return this.conv2dByMatMul(e,t,n);if(Yt().getBool("WEBGL_CONV_IM2COL")&&1===e.shape[0])return this.conv2dWithIm2Row(e,t,n);var r=new Ms(n);return this.compileAndRun(r,[e,t])},t.prototype.conv2dDerInput=function(e,t,n){var r=new As(n);return this.compileAndRun(r,[e,t])},t.prototype.conv2dDerFilter=function(e,t,n){var r=new Ss(n);return this.compileAndRun(r,[e,t])},t.prototype.fusedDepthwiseConv2D=function(e){var t,n=e.input,r=e.filter,o=e.convInfo,a=e.bias,i=e.activation,s=e.preluActivationWeights,u=Yt().getBool("WEBGL_PACK_DEPTHWISECONV")&&o.strideWidth<=2&&o.outChannels/o.inChannels==1,c=i?Ec(i,u):null,l=[n,r],f=null!=a,h=null!=s;return f&&l.push(a),h&&l.push(s),u?(t=new js(o,f,c,h),this.compileAndRun(t,l)):(t=new Bs(o,f,c,h),this.compileAndRun(t,l))},t.prototype.depthwiseConv2D=function(e,t,n){var r;return Yt().getBool("WEBGL_PACK_DEPTHWISECONV")&&n.strideWidth<=2&&n.outChannels/n.inChannels==1?(r=new js(n),this.compileAndRun(r,[e,t])):(r=new Bs(n),this.compileAndRun(r,[e,t]))},t.prototype.depthwiseConv2DDerInput=function(e,t,n){var r=new Ns(n);return this.compileAndRun(r,[e,t])},t.prototype.depthwiseConv2DDerFilter=function(e,t,n){var r=new Ds(n);return this.compileAndRun(r,[e,t])},t.prototype.conv3d=function(e,t,n){var r=new Fs(n);return this.compileAndRun(r,[e,t])},t.prototype.conv3dDerInput=function(e,t,n){var r=new Ts(n);return this.compileAndRun(r,[e,t])},t.prototype.conv3dDerFilter=function(e,t,n){var r=new Ps(n);return this.compileAndRun(r,[e,t])},t.prototype.maxPool=function(e,t){var n=new Tu(t,"max",!1);return this.compileAndRun(n,[e])},t.prototype.avgPool=function(e,t){var n=new Tu(t,"avg",!1);return this.compileAndRun(n,[e],"float32")},t.prototype.maxPoolBackprop=function(e,t,n,r){var o=new Tu(r,"max",!0),a=this.compileAndRun(o,[t]),i=new ku(r),s=this.compileAndRun(i,[e,a],t.dtype);return a.dispose(),s},t.prototype.avgPoolBackprop=function(e,t,n){var r=new fs(n);return this.compileAndRun(r,[e],t.dtype)},t.prototype.cast=function(e,t){return Ai(e,t,this)},t.prototype.unstack=function(e,t){for(var n=e.shape[t],r=new Array(e.rank-1),o=0,a=0;a<e.rank;a++)a!==t&&(r[o++]=e.shape[a]);var i=new Array(e.rank).fill(0),s=e.shape.slice();s[t]=1;var u=new Array(n);for(a=0;a<u.length;a++)i[t]=a,u[a]=this.slice(e,i,s).reshape(r);return u},t.prototype.avgPool3d=function(e,t){var n=new Du(t,"avg",!1);return this.compileAndRun(n,[e],"float32")},t.prototype.avgPool3dBackprop=function(e,t,n){var r=new hs(n);return this.compileAndRun(r,[e],t.dtype)},t.prototype.maxPool3d=function(e,t){var n=new Du(t,"max",!1);return this.compileAndRun(n,[e],"float32")},t.prototype.maxPool3dBackprop=function(e,t,n,r){var o=new Du(r,"max",!0),a=this.compileAndRun(o,[t]),i=new Ou(r),s=this.compileAndRun(i,[e,a],t.dtype);return a.dispose(),s},t.prototype.reshape=function(e,t){var n=this.texData.get(e.dataId);if(n.isPacked&&!co(e.shape,t)&&(null===n.texture||!co(n.shape,t))){var r=this.packedReshape(e,t);return mr.makeTensorFromDataId(r.dataId,r.shape,r.dtype)}return Pi(e,t)},t.prototype.resizeBilinear=function(e,t,n,r){var o=Yt().getBool("WEBGL_PACK_IMAGE_OPERATIONS")?new ju(e.shape,t,n,r):new Bu(e.shape,t,n,r);return this.compileAndRun(o,[e],"float32")},t.prototype.resizeBilinearBackprop=function(e,t,n){var r=new Fu(e,t,n);return this.compileAndRun(r,[e])},t.prototype.resizeNearestNeighbor=function(e,t,n,r){var o=new zu(e.shape,t,n,r);return this.compileAndRun(o,[e])},t.prototype.resizeNearestNeighborBackprop=function(e,t,n){var r=new Lu(e,t,n);return this.compileAndRun(r,[e])},t.prototype.multinomial=function(e,t,n,r){var o=t?e:li(e),a=o.shape[0],i=o.shape[1],s=new Iu(a,i,n),u=s.getCustomSetupFunc(r);return this.compileAndRun(s,[o],"int32",u)},t.prototype.oneHot=function(e,t,n,r){var o=new Ru(e.size,t,n,r);return this.compileAndRun(o,[e])},t.prototype.diag=function(e){var t=new qs(e.size);return this.compileAndRun(t,[e])},t.prototype.nonMaxSuppression=function(e,t,n,r,o){return Oo("tf.nonMaxSuppression() in webgl locks the UI thread. Call tf.nonMaxSuppressionAsync() instead"),Bi(e.dataSync(),t.dataSync(),n,r,o)},t.prototype.cropAndResize=function(e,t,n,r,o,a){var i=new Ls(e.shape,t.shape,r,o,a);return this.compileAndRun(i,[e,t,n],"float32")},t.prototype.depthToSpace=function(e,t,n){un(t>1,(function(){return"blockSize should be > 1 for depthToSpace, but was: "+t}));var r=e.shape[0],o="NHWC"===n?e.shape[1]:e.shape[2],a="NHWC"===n?e.shape[2]:e.shape[3],i="NHWC"===n?e.shape[3]:e.shape[1],s=o*t,u=a*t,c=i/(t*t),l=new Us("NHWC"===n?[r,s,u,c]:[r,c,s,u],t,n);return this.compileAndRun(l,[e])},t.prototype.split=function(e,t,n){return Li(e,t,n)},t.prototype.scatterND=function(e,t,n){var r=ti(0,e,n),o=r.sliceRank,a=r.numUpdates,i=r.sliceSize,s=r.strides,u=r.outputSize,c=[u/i,i],l=e.reshape([a,o]),f=t.reshape([a,i]);if(0===u)return Pi(Uo([]),n);var h=Go(0),p=new Vu(a,o,l.rank,f.rank,s,c);return this.compileAndRun(p,[f,l,h]).reshape(n)},t.prototype.sparseToDense=function(e,t,n,r){var o=ti(0,e,n),a=o.sliceRank,i=o.numUpdates,s=o.strides,u=o.outputSize,c=new Vu(i,a,e.rank,t.rank,s,[u,1],!1);return this.compileAndRun(c,[t,e,r]).reshape(n)},t.prototype.fft=function(e){return this.fftImpl(e,!1)},t.prototype.ifft=function(e){return this.fftImpl(e,!0)},t.prototype.fftImpl=function(e,t){var n=this.texData.get(e.dataId),r=new Ys("return real * expR - imag * expI;",e.shape,t),o=new Ys("return real * expI + imag * expR;",e.shape,t),a=[this.makeComplexComponentTensorInfo(e,n.complexTensors.real),this.makeComplexComponentTensorInfo(e,n.complexTensors.imag)],i=this.compileAndRun(r,a),s=this.compileAndRun(o,a),u=this.complex(i,s).as2D(e.shape[0],e.shape[1]);return i.dispose(),s.dispose(),u},t.prototype.gatherND=function(e,t){var n=t.shape,r=n[n.length-1],o=Qa(e,t),a=o[0],i=o[1],s=o[2],u=o[3],c=t.reshape([i,r]),l=e.reshape([e.size/s,s]),f=new Qs(r,u,[i,s]);return this.compileAndRun(f,[l,c]).reshape(a)},t.prototype.fill=function(e,t,n){if("string"===(n=n||Dn(t))){var r=_n(n,hn(e));return r.fill(t),mr.makeTensor(r,e,n,this)}var o=new Js(e,t),a=o.getCustomSetupFunc(t);return this.compileAndRun(o,[],n,a)},t.prototype.onesLike=function(e){if("string"===e.dtype)throw new Error("onesLike is not supported under string dtype");return this.fill(e.shape,1,e.dtype)},t.prototype.zerosLike=function(e){return this.fill(e.shape,"string"===e.dtype?"":0,e.dtype)},t.prototype.linspace=function(e,t,n){return Ti(e,t,n)},t.prototype.makeTensorInfo=function(e,t){var n=this.write(null,e,t);return this.texData.get(n).usage=null,{dataId:n,shape:e,dtype:t}},t.prototype.makeOutput=function(e,t){var n=this.makeTensorInfo(e,t).dataId;return mr.makeTensorFromDataId(n,e,t,this)},t.prototype.unpackTensor=function(e){var t=new wc(e.shape);return this.runWebGLProgram(t,[e],e.dtype)},t.prototype.packTensor=function(e){var t=new Su(e.shape);return this.runWebGLProgram(t,[e],e.dtype,null,!0)},t.prototype.packedReshape=function(e,t){var n=[oo(e.shape)].concat(ao(e.shape)),r={dtype:e.dtype,shape:n,dataId:e.dataId},o=[oo(t)].concat(ao(t)),a=new Mu(o,n),i=this.runWebGLProgram(a,[r],e.dtype,null,!0);return{dataId:i.dataId,shape:t,dtype:i.dtype}},t.prototype.decode=function(e){var t,n=this.texData.get(e),r=n.isPacked,o=n.shape,a=n.dtype,i=io(o);return t=r?new Vs(i):new Ws(i),{dtype:a,shape:o,dataId:this.runWebGLProgram(t,[{shape:i,dtype:a,dataId:e}],a,null,!0).dataId}},t.prototype.runWebGLProgram=function(e,t,n,r,o){var a=this;void 0===o&&(o=!1);var i=this.makeTensorInfo(e.outputShape,n),s=this.texData.get(i.dataId);if(e.packedOutput&&(s.isPacked=!0),e.outPackingScheme===br.DENSE){var u=Ir(e.outputShape);s.texShape=u.map((function(e){return 2*e}))}if(null!=e.outTexUsage&&(s.usage=e.outTexUsage),0===hn(i.shape))return s.values=En(i.dtype,0),i;var c=[],l=t.map((function(t){if("complex64"===t.dtype)throw new Error("GPGPUProgram does not support complex64 input. For complex64 dtypes, please separate the program into real and imaginary parts.");var n=a.texData.get(t.dataId);if(null==n.texture){if(!e.packedInputs&&hn(t.shape)<=Yt().getNumber("WEBGL_SIZE_UPLOAD_UNIFORM"))return{shape:t.shape,texData:null,isUniform:!0,uniformValues:n.values};e.packedInputs&&(n.isPacked=!0,n.shape=t.shape)}else if(!!n.isPacked!=!!e.packedInputs)t=n.isPacked?a.unpackTensor(t):a.packTensor(t),c.push(t),n=a.texData.get(t.dataId);else if(n.isPacked&&!co(n.shape,t.shape)){var r=t,o=t.shape;t.shape=n.shape,t=a.packedReshape(t,o),c.push(t),n=a.texData.get(t.dataId),r.shape=o}return a.uploadToGPU(t.dataId),{shape:t.shape,texData:n,isUniform:!1}}));this.uploadToGPU(i.dataId);var f,h={shape:i.shape,texData:s,isUniform:!1},p=function(e,t,n){var r="";t.concat(n).forEach((function(e){var t=null!=e.texData&&null!=e.texData.slice&&e.texData.slice.flatOffset>0,n=e.isUniform?"uniform":e.texData.texShape;r+=e.shape+"_"+n+"_"+t}));var o=e.userCode;return e.constructor.name+"_"+r+"_"+o}(e,l,h),d=this.getAndSaveBinary(p,(function(){return function(e,t,n,r){var o=t.userCode,a=n.map((function(e,n){var r={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&&(r.flatOffset=e.texData.slice.flatOffset),{name:t.variableNames[n],shapeInfo:r}})),i=a.map((function(e){return e.shapeInfo})),s={logicalShape:r.shape,texShape:r.texData.texShape,isUniform:!1,isPacked:r.texData.isPacked,flatOffset:null},u=Zi(a,s,o,t.packedInputs),c=e.createProgram(u),l=null,f=e.getUniformLocation(c,"NAN",!1);1===Yt().getNumber("WEBGL_VERSION")&&(l=e.getUniformLocation(c,"INFINITY",!1));for(var h={},p=0;p<t.variableNames.length;p++){var d=t.variableNames[p];h[d]=e.getUniformLocation(c,d,!1),h["offset"+d]=e.getUniformLocation(c,"offset"+d,!1)}return{program:t,source:u,webGLProgram:c,uniformLocations:h,inShapeInfos:i,outShapeInfo:s,infLoc:l,nanLoc:f}}(a.gpgpu,e,l,h)})),v=null!=this.activeTimers;if(v&&(f=this.startTimer()),function(e,t,n,r,o){bu(t.inShapeInfos,n),bu([t.outShapeInfo],[r]);var a=r.texData.texture,i=r.texData.texShape;r.texData.isPacked?e.setOutputPackedMatrixTexture(a,i[0],i[1]):e.setOutputMatrixTexture(a,i[0],i[1]),e.setProgram(t.webGLProgram),1===Yt().getNumber("WEBGL_VERSION")&&null!==t.infLoc&&e.gl.uniform1f(t.infLoc,1/0),null!==t.nanLoc&&e.gl.uniform1f(t.nanLoc,NaN),n.forEach((function(n,r){var o=t.program.variableNames[r],a=t.uniformLocations[o],i=t.uniformLocations["offset"+o];if(null!=a)if(n.isUniform)if(hn(n.shape)<2)e.gl.uniform1f(a,n.uniformValues[0]);else{var s=n.uniformValues;s instanceof Float32Array||(s=new Float32Array(s)),e.gl.uniform1fv(a,s)}else null!=n.texData.slice&&null!=i&&e.gl.uniform1i(i,n.texData.slice.flatOffset),e.setInputMatrixTexture(n.texData.texture,a,r)})),null!=o&&o(e,t.webGLProgram),e.executeProgram()}(this.gpgpu,d,l,h,r),c.forEach((function(e){return a.disposeData(e.dataId)})),v&&(f=this.endTimer(f),this.activeTimers.push({name:e.constructor.name,query:this.getQueryTime(f)})),!Yt().getBool("WEBGL_LAZILY_UNPACK")&&s.isPacked&&!1===o){var m=this.unpackTensor(i);return this.disposeData(i.dataId),m}return i},t.prototype.compileAndRun=function(e,t,n,r,o){void 0===o&&(o=!1),n=n||t[0].dtype;var a=this.runWebGLProgram(e,t,n,r,o);return mr.makeTensorFromDataId(a.dataId,a.shape,a.dtype)},t.prototype.getAndSaveBinary=function(e,t){return e in this.binaryCache||(this.binaryCache[e]=t()),this.binaryCache[e]},t.prototype.getTextureManager=function(){return this.textureManager},t.prototype.dispose=function(){this.disposed||(this.textureManager.dispose(),null!=this.canvas&&"undefined"!=typeof HTMLCanvasElement&&this.canvas instanceof HTMLCanvasElement?this.canvas.remove():this.canvas=null,this.gpgpuCreatedLocally&&(this.gpgpu.program=null,this.gpgpu.dispose()),this.disposed=!0)},t.prototype.floatPrecision=function(){var e=this;return null==this.floatPrecisionValue&&(this.floatPrecisionValue=_o((function(){if(!Yt().get("WEBGL_RENDER_FLOAT32_ENABLED")){var t=Yt().getBool("DEBUG");Yt().set("DEBUG",!1);var n=e.abs(Go(1e-8)).dataSync()[0];if(Yt().set("DEBUG",t),n>0)return 32}return 16}))),this.floatPrecisionValue},t.prototype.epsilon=function(){return 32===this.floatPrecision()?1e-7:1e-4},t.prototype.uploadToGPU=function(e){var t,n=this.texData.get(e),r=n.shape,o=n.dtype,a=n.values,i=n.texture,s=n.usage,u=n.isPacked;if(null==i){var c,l=null!=this.activeTimers;l&&(c=Hn());var f=n.texShape;if(null==f&&(f=so(r,u),n.texShape=f),null!=a){var h=io(r),p=void 0,d=f[1],v=f[0],m=a instanceof Uint8Array;u?(d=(t=Rr(f[0],f[1]))[0],v=t[1],p=new $s(h,[v,d],m)):p=new Ks(h,[v,d],m);var g=this.makeTensorInfo([v,d],o);this.texData.get(g.dataId).usage=m?wr.PIXELS:wr.UPLOAD,this.gpgpu.uploadDenseMatrixToTexture(this.getTexture(g.dataId),d,v,a);var y=this.runWebGLProgram(p,[g],o,null,!0),b=this.texData.get(y.dataId);n.texture=b.texture,n.texShape=b.texShape,n.isPacked=b.isPacked,n.usage=b.usage,this.disposeData(g.dataId),this.texData.delete(y.dataId),n.values=null,l&&(this.uploadWaitMs+=Hn()-c)}else{var w=this.acquireTexture(f,s,o,u);n.texture=w}}},t.prototype.convertAndCacheOnCPU=function(e,t){var n=this.texData.get(e),r=n.dtype;return this.releaseGPUData(e),null!=t&&(n.values=function(e,t){if("float32"===t||"complex64"===t)return e;if("int32"===t||"bool"===t){for(var n="int32"===t?new Int32Array(e.length):new Uint8Array(e.length),r=0;r<n.length;++r)n[r]=Math.round(e[r]);return n}throw new Error("Unknown dtype "+t)}(t,r)),n.values},t.prototype.acquireTexture=function(e,t,n,r){if(this.numBytesInGPU+=this.computeBytes(e,n),!this.warnedAboutMemory&&this.numBytesInGPU>1024*this.numMBBeforeWarning*1024){var o=(this.numBytesInGPU/1024/1024).toFixed(2);this.warnedAboutMemory=!0,console.warn("High memory usage in GPU: "+o+" MB, most likely due to a memory leak")}return this.textureManager.acquireTexture(e,t,r)},t.prototype.computeBytes=function(e,t){return e[0]*e[1]*Rn(t)},t}(pi);gr()&&mr.registerBackend("webgl",(function(){return new _c}),2);var kc=zo({square_:function(e){var t=Ro(e,"x","square"),n=[t];return mr.runKernelFunc((function(e,n){return n([t]),e.square(t)}),{x:t},(function(e,t){var n=t[0];return{x:function(){return e.mul(n.toFloat().mul(2))}}}),"Square",{},n,[])}}),Oc=zo({abs_:function(e){var t=Ro(e,"x","abs");return"complex64"===t.dtype?mr.runKernelFunc((function(e){return e.complexAbs(t)}),{$x:t}):mr.runKernelFunc((function(e,n){var r=e.abs(t);return n([t]),r}),{x:t},(function(e,t){var n=t[0];return{x:function(){return e.mul(n.toFloat().step(-1))}}}),"Abs")}}),Cc=zo({acos_:function(e){var t=Ro(e,"x","acos");return mr.runKernelFunc((function(e,n){var r=e.acos(t);return n([t]),r}),{$x:t},(function(e,t){var n=t[0];return{$x:function(){return e.divStrict(Go(1).sub(n.toFloat().square()).sqrt()).neg()}}}))}}),Ic=zo({acosh_:function(e){var t=Ro(e,"x","acosh");return mr.runKernelFunc((function(e,n){var r=e.acosh(t);return n([t]),r}),{$x:t},(function(e,t){var n=t[0];return{$x:function(){return e.divStrict(n.toFloat().square().sub(1).sqrt())}}}))}}),Rc=zo({asin_:function(e){var t=Ro(e,"x","asin");return mr.runKernelFunc((function(e,n){var r=e.asin(t);return n([t]),r}),{$x:t},(function(e,t){var n=t[0];return{$x:function(){return e.divStrict(Go(1).sub(n.toFloat().square()).sqrt())}}}))}}),Sc=zo({asinh_:function(e){var t=Ro(e,"x","asinh");return mr.runKernelFunc((function(e,n){var r=e.asinh(t);return n([t]),r}),{$x:t},(function(e,t){var n=t[0];return{$x:function(){return e.divStrict(Go(1).add(n.toFloat().square()).sqrt())}}}))}}),Ac=zo({atan_:function(e){var t=Ro(e,"x","atan");return mr.runKernelFunc((function(e,n){var r=e.atan(t);return n([t]),r}),{$x:t},(function(e,t){var n=t[0];return{$x:function(){return e.div(n.toFloat().square().add(1))}}}))}}),Pc=zo({atanh_:function(e){var t=Ro(e,"x","atanh");return mr.runKernelFunc((function(e,n){var r=e.atanh(t);return n([t]),r}),{$x:t},(function(e,t){var n=t[0];return{$x:function(){return e.div(Go(1).sub(n.toFloat().square()))}}}))}}),Tc=zo({ceil_:function(e){var t=Ro(e,"x","ceil");return mr.runKernelFunc((function(e){return e.ceil(t)}),{$x:t},(function(e){return{$x:function(){return na(e)}}}))}}),Dc=zo({clipByValue_:function(e,t,n){var r=Ro(e,"x","clipByValue");un(t<=n,(function(){return"Error in clip: min ("+t+") must be less than or equal to max ("+n+")."}));var o=[r],a={min:t,max:n};return mr.runKernelFunc((function(e,o){var a=e.clip(r,t,n);return o([r]),a}),{x:r},(function(e,r){var o=r[0];return{x:function(){return e.where(o.greaterEqual(t).logicalAnd(o.lessEqual(n)),na(e))}}}),"ClipByValue",a,o)}}),Nc=zo({cos_:function(e){var t=Ro(e,"x","cos");return mr.runKernelFunc((function(e,n){var r=e.cos(t);return n([t]),r}),{$x:t},(function(e,t){var n=t[0];return{$x:function(){return n.toFloat().sin().neg().mul(e)}}}))}}),Mc=zo({cosh_:function(e){var t=Ro(e,"x","cosh");return mr.runKernelFunc((function(e,n){var r=e.cosh(t);return n([t]),r}),{$x:t},(function(e,t){var n=t[0];return{$x:function(){return n.toFloat().sinh().mulStrict(e)}}}))}}),Fc=zo({erf_:function(e){var t=Ro(e,"x","erf");return un("int32"===t.dtype||"float32"===t.dtype,(function(){return"Input dtype must be `int32` or `float32`."})),"int32"===t.dtype&&(t=t.toFloat()),mr.runKernelFunc((function(e,n){var r=e.erf(t);return n([t]),r}),{$x:t},(function(e,t){var n=t[0];return{$x:function(){return e.mul(n.square().neg().exp().mul(2/Math.sqrt(Math.PI)))}}}))}}),Bc=zo({exp_:function(e){var t=Ro(e,"x","exp");return mr.runKernelFunc((function(e,n){var r=e.exp(t);return n([r]),r}),{$x:t},(function(e,t){return{$x:function(){return e.mulStrict(t[0])}}}))}}),jc=zo({expm1_:function(e){var t=Ro(e,"x","expm1");return mr.runKernelFunc((function(e,n){var r=e.expm1(t);return n([t]),r}),{$x:t},(function(e,t){var n=t[0];return{$x:function(){return e.mul(n.exp())}}}))}}),Lc=zo({floor_:function(e){var t=Ro(e,"x","floor");return mr.runKernelFunc((function(e){return e.floor(t)}),{$x:t},(function(e){return{$x:function(){return na(e)}}}))}}),zc=zo({log_:function(e){var t=Ro(e,"x","log");return mr.runKernelFunc((function(e,n){var r=e.log(t);return n([t]),r}),{$x:t},(function(e,t){var n=t[0];return{$x:function(){return e.div(n.toFloat())}}}))}}),Hc=zo({log1p_:function(e){var t=Ro(e,"x","log1p");return mr.runKernelFunc((function(e,n){var r=e.log1p(t);return n([t]),r}),{$x:t},(function(e,t){var n=t[0];return{$x:function(){return e.div(n.add(1))}}}))}}),Wc=zo({logSigmoid_:function(e){var t=Ro(e,"x","logSigmoid");return mr.runKernelFunc((function(e,n){var r=e.softplus(t.neg()).neg();return n([t]),r}),{$x:t},(function(e,t){var n=t[0];return{$x:function(){return e.mul(n.neg().sigmoid())}}}))}}),Vc=zo({neg_:function(e){var t=Ro(e,"x","neg");return mr.runKernelFunc((function(e){return e.neg(t)}),{$x:t},(function(e){return{$x:function(){return e.neg()}}}))}}),Uc=zo({reciprocal_:function(e){var t=Ro(e,"x","reciprocal");return mr.runKernelFunc((function(e,n){var r=e.reciprocal(t);return n([t]),r}),{$x:t},(function(e,t){var n=t[0];return{$x:function(){return e.div(n.square().neg())}}}))}}),qc=zo({round_:function(e){var t=Ro(e,"x","round");return mr.runKernelFunc((function(e){return e.round(t)}),{$x:t},(function(e){return{$x:function(){return na(e)}}}))}}),Gc=zo({rsqrt_:function(e){var t=Ro(e,"x","rsqrt");return mr.runKernelFunc((function(e,n){var r=e.rsqrt(t);return n([t]),r}),{$x:t},(function(e,t){var n=t[0];return{$x:function(){return e.div(n.pow(1.5).mul(2)).neg()}}}))}}),Xc=zo({sigmoid_:function(e){var t=Ro(e,"x","sigmoid");return mr.runKernelFunc((function(e,n){var r=e.sigmoid(t);return n([r]),r}),{x:t},(function(e,t){var n=t[0];return{x:function(){return e.mul(n.mul(Go(1).sub(n)))}}}),"Sigmoid")}}),Kc=zo({sign_:function(e){var t=Ro(e,"x","sign");return mr.runKernelFunc((function(e){return e.sign(t)}),{$x:t},(function(e){return{$x:function(){return na(e)}}}))}}),$c=zo({isNaN_:function(e){var t=Ro(e,"x","isNaN");return mr.runKernelFunc((function(e){return e.isNaN(t)}),{$x:t},(function(e){return{$x:function(){return na(e)}}}))}}),Yc=zo({isInf_:function(e){var t=Ro(e,"x","isInf");return mr.runKernelFunc((function(e){return e.isInf(t)}),{$x:t},(function(e){return{$x:function(){return na(e)}}}))}}),Jc=zo({isFinite_:function(e){var t=Ro(e,"x","isFinite");return mr.runKernelFunc((function(e){return e.isFinite(t)}),{$x:t},(function(e){return{$x:function(){return na(e)}}}))}}),Zc=zo({sin_:function(e){var t=Ro(e,"x","sin");return mr.runKernelFunc((function(e,n){var r=e.sin(t);return n([t]),r}),{$x:t},(function(e,t){var n=t[0];return{$x:function(){return n.toFloat().cos().mul(e)}}}))}}),Qc=zo({sinh_:function(e){var t=Ro(e,"x","sinh");return mr.runKernelFunc((function(e,n){var r=e.sinh(t);return n([t]),r}),{$x:t},(function(e,t){var n=t[0];return{$x:function(){return n.toFloat().cosh().mulStrict(e)}}}))}}),el=zo({softplus_:function(e){var t=Ro(e,"x","softplus");return mr.runKernelFunc((function(e,n){var r=e.softplus(t);return n([t]),r}),{$x:t},(function(e,t){var n=t[0];return{$x:function(){return e.mul(n.sigmoid())}}}))}}),tl=zo({sqrt_:function(e){var t=Ro(e,"x","sqrt");return mr.runKernelFunc((function(e,n){var r=e.sqrt(t);return n([t]),r}),{$x:t},(function(e,t){var n=t[0];return{$x:function(){return e.div(n.toFloat().sqrt().mul(2))}}}))}}),nl=zo({step_:function(e,t){void 0===t&&(t=0);var n=Ro(e,"x","step");return mr.runKernelFunc((function(e){return e.step(n,t)}),{$x:n},(function(e){return{$x:function(){return na(e)}}}))}}),rl=zo({tan_:function(e){var t=Ro(e,"x","tan");return mr.runKernelFunc((function(e,n){var r=e.tan(t);return n([t]),r}),{$x:t},(function(e,t){var n=t[0];return{$x:function(){return e.div(n.cos().square())}}}))}}),ol=zo({tanh_:function(e){var t=Ro(e,"x","tanh");return mr.runKernelFunc((function(e,n){var r=e.tanh(t);return n([r]),r}),{$x:t},(function(e,t){var n=t[0];return{$x:function(){return Go(1).sub(n.square()).mulStrict(e)}}}))}});function al(e,t,n,r,o,a){var i,s,u=Ro(e,"x","batchNorm"),c=Ro(t,"mean","batchNorm"),l=Ro(n,"variance","batchNorm");return null!=o&&(i=Ro(o,"scale","batchNorm")),null!=r&&(s=Ro(r,"offset","batchNorm")),un(2===u.rank,(function(){return"Error in batchNorm3D: x must be rank 3 but got rank "+u.rank+"."})),un(2===c.rank||1===c.rank,(function(){return"Error in batchNorm2D: mean must be rank 2 or rank 1 but got rank "+c.rank+"."})),un(2===l.rank||1===l.rank,(function(){return"Error in batchNorm2D: variance must be rank 2 or rank 1 but got rank "+l.rank+"."})),null!=i&&un(2===i.rank||1===i.rank,(function(){return"Error in batchNorm2D: scale must be rank 2 or rank 1 but got rank "+i.rank+"."})),null!=s&&un(2===s.rank||1===s.rank,(function(){return"Error in batchNorm2D: offset must be rank 2 or rank 1 but got rank "+s.rank+"."})),ul(u,c,l,s,i,a)}function il(e,t,n,r,o,a){var i,s,u=Ro(e,"x","batchNorm"),c=Ro(t,"mean","batchNorm"),l=Ro(n,"variance","batchNorm");return null!=o&&(i=Ro(o,"scale","batchNorm")),null!=r&&(s=Ro(r,"offset","batchNorm")),un(3===u.rank,(function(){return"Error in batchNorm3D: x must be rank 3 but got rank "+u.rank+"."})),un(3===c.rank||1===c.rank,(function(){return"Error in batchNorm3D: mean must be rank 3 or rank 1 but got rank "+c.rank+"."})),un(3===l.rank||1===l.rank,(function(){return"Error in batchNorm3D: variance must be rank 3 or rank 1 but got rank "+l.rank+"."})),null!=i&&un(3===i.rank||1===i.rank,(function(){return"Error in batchNorm3D: scale must be rank 3 or rank 1 but got rank "+i.rank+"."})),null!=s&&un(3===s.rank||1===s.rank,(function(){return"Error in batchNorm3D: offset must be rank 3 or rank 1 but got rank "+s.rank+"."})),ul(u,c,l,s,i,a)}function sl(e,t,n,r,o,a){var i,s,u=Ro(e,"x","batchNorm"),c=Ro(t,"mean","batchNorm"),l=Ro(n,"variance","batchNorm");return null!=o&&(i=Ro(o,"scale","batchNorm")),null!=r&&(s=Ro(r,"offset","batchNorm")),un(4===u.rank,(function(){return"Error in batchNorm4D: x must be rank 4 but got rank "+u.rank+"."})),un(4===c.rank||1===c.rank,(function(){return"Error in batchNorm4D: mean must be rank 4 or rank 1 but got rank "+c.rank+"."})),un(4===l.rank||1===l.rank,(function(){return"Error in batchNorm4D: variance must be rank 4 or rank 1 but got rank "+l.rank+"."})),null!=i&&un(4===i.rank||1===i.rank,(function(){return"Error in batchNorm4D: scale must be rank 4 or rank 1 but got rank "+i.rank+"."})),null!=s&&un(4===s.rank||1===s.rank,(function(){return"Error in batchNorm4D: offset must be rank 4 or rank 1 but got rank "+s.rank+"."})),ul(u,c,l,s,i,a)}function ul(e,t,n,r,o,a){null==a&&(a=.001);var i,s,u,c=Ro(e,"x","batchNorm"),l=Ro(t,"mean","batchNorm"),f=Ro(n,"variance","batchNorm");null!=o&&(i=Ro(o,"scale","batchNorm")),null!=r&&(s=Ro(r,"offset","batchNorm")),un(l.rank===f.rank,(function(){return"Batch normalization gradient requires mean and variance to have equal ranks."})),un(null==s||l.rank===s.rank,(function(){return"Batch normalization gradient requires mean and offset to have equal ranks."})),un(null==i||l.rank===i.rank,(function(){return"Batch normalization gradient requires mean and scale to have equal ranks."})),u=0===c.rank||1===c.rank?c.as4D(1,1,1,c.size):2===c.rank?c.as4D(1,1,c.shape[0],c.shape[1]):3===c.rank?c.as4D(1,c.shape[0],c.shape[1],c.shape[2]):c;var h=[c,l,f,i];return mr.runKernelFunc((function(e,t){var n=e.batchNormalization(u,cl(l),cl(f),a,cl(i),cl(s));return t([c,l,f,i]),n}),{x:c,mean:l,variance:f,scale:i,offset:s},(function(e,t){var n=t,r=n[0],o=n[1],i=n[2],s=n[3],c=null==s?Go(1):s,l=mi(o.shape,u.shape),f=[];if(1===o.rank){for(var h=0;h<u.shape.length-1;++h)f.push(u.shape[h]);f.push(1)}var p=r.sub(o),d=e.mul(c),v=Gc(i.add(Go(a))),m=v.mul(v).mul(v).mul(Go(-.5));return{x:function(){return 1===o.rank?e.mul(qa(v.as4D(1,1,1,o.shape[0]),f)).mul(c).reshape(r.shape):e.mul(v).mul(c).reshape(r.shape)},mean:function(){var e=v.mul(Go(-1)).mul(d);return 1===o.rank&&(e=e.sum(l)),e.reshape(o.shape)},variance:function(){var e=m.mul(p).mul(d);return 1===o.rank&&(e=e.sum(l)),e.reshape(o.shape)},scale:function(){var t=p.mul(v),n=e.mul(t);return 1===o.rank&&(n=n.sum(l)),n.reshape(o.shape)},offset:function(){var t=e;return 1===o.rank&&(t=t.sum(l)),t.reshape(o.shape)}}}),"BatchNormalization",{varianceEpsilon:a},h).reshape(c.shape)}function cl(e){return null==e?null:0===e.rank?e.as1D():1===e.rank?e:2===e.rank?e.as4D(1,1,e.shape[0],e.shape[1]):3===e.rank?e.as4D(1,e.shape[0],e.shape[1],e.shape[2]):e}function ll(){Eo("tf.batchNormalization() is going away. Use tf.batchNorm() instead, and note the positional argument change of scale, offset, and varianceEpsilon")}var fl=zo({batchNormalization2d_:function(e,t,n,r,o,a){return void 0===r&&(r=.001),ll(),al(e,t,n,a,o,r)}}),hl=zo({batchNormalization3d_:function(e,t,n,r,o,a){return void 0===r&&(r=.001),ll(),il(e,t,n,a,o,r)}}),pl=zo({batchNormalization4d_:function(e,t,n,r,o,a){return void 0===r&&(r=.001),ll(),sl(e,t,n,a,o,r)}}),dl=zo({batchNormalization_:function(e,t,n,r,o,a){return void 0===r&&(r=.001),ll(),ul(e,t,n,a,o,r)}}),vl=zo({batchNorm_:ul}),ml=zo({batchNorm2d_:al}),gl=zo({batchNorm3d_:il}),yl=zo({batchNorm4d_:sl}),bl=zo({logicalAnd_:function(e,t){var n=Ro(e,"a","logicalAnd","bool"),r=Ro(t,"b","logicalAnd","bool");return gi(n.shape,r.shape),mr.runKernelFunc((function(e){return e.logicalAnd(n,r)}),{$a:n,$b:r})}}),wl=zo({logicalNot_:function(e){var t=Ro(e,"x","logicalNot","bool");return mr.runKernelFunc((function(e){return e.logicalNot(t)}),{$x:t})}}),xl=zo({logicalOr_:function(e,t){var n=Ro(e,"a","logicalOr","bool"),r=Ro(t,"b","logicalOr","bool");return gi(n.shape,r.shape),mr.runKernelFunc((function(e){return e.logicalOr(n,r)}),{$a:n,$b:r})}}),El=zo({logicalXor_:function(e,t){var n=Ro(e,"a","logicalXor","bool"),r=Ro(t,"b","logicalXor","bool");return gi(n.shape,r.shape),xl(e,t).logicalAnd(bl(e,t).logicalNot())}}),_l=zo({where_:function(e,t,n){var r=Ro(t,"a","where"),o=Ro(n,"b","where"),a=Ro(e,"condition","where","bool");return cn(r.shape,o.shape,"Error in where: "),1===a.rank?un(a.shape[0]===r.shape[0],(function(){return"The first dimension of `a` must match the size of `condition`."})):cn(a.shape,o.shape,"Error in where: "),mr.runKernelFunc((function(e,t){var n=e.select(a,r,o);return t([a]),n}),{$condition:a,$a:r,$b:o},(function(e,t){var n=t[0];return{$condition:function(){return na(n).toFloat()},$a:function(){return e.mul(n.cast(e.dtype))},$b:function(){return e.mul(n.logicalNot().cast(e.dtype))}}}))}}),kl=function(e){return Xt(this,void 0,void 0,(function(){var t,n,r;return Kt(this,(function(o){switch(o.label){case 0:return[4,(t=Ro(e,"condition","whereAsync","bool")).data()];case 1:return n=o.sent(),r=Wi(t.shape,n),e!==t&&t.dispose(),[2,r]}}))}))},Ol=zo({add_:function(e,t){var n,r=Ro(e,"a","add"),o=Ro(t,"b","add");n=lr(r,o),r=n[0],o=n[1];var a=gi(r.shape,o.shape);return mr.runKernelFunc((function(e){return e.add(r,o)}),{a:r,b:o},(function(e){return{a:function(){var t=e,n=mi(r.shape,a);return n.length>0&&(t=t.sum(n)),t.reshape(r.shape)},b:function(){var t=e,n=mi(o.shape,a);return n.length>0&&(t=t.sum(n)),t.reshape(o.shape)}}}),"Add")}}),Cl=zo({addN_:function(e){un(Array.isArray(e),(function(){return"The argument passed to tf.addN() must be a list of tensors"})),un(e.length>=1,(function(){return"Must pass at least one tensor to tf.addN(), but got "+e.length}));var t=e.map((function(e,t){return Ro(e,"tensors"+t,"addN")})),n=t[0];t.forEach((function(e){if(e.dtype!==n.dtype)throw new Error("All tensors passed to tf.addN() must have the same dtype")})),t.forEach((function(e){if(!pn(e.shape,n.shape))throw new Error("All tensors passed to tf.addN() must have the same shape")}));var r=t;return mr.runKernelFunc((function(e){return e.addN(t)}),r,(function(e){var n={};return t.forEach((function(t,r){n[r]=function(){return e.clone()}})),n}),"AddN")}}),Il=zo({addStrict_:function(e,t){var n=Ro(e,"a","addStrict"),r=Ro(t,"b","addStrict");return cn(n.shape,r.shape,"Error in addStrict: "),n.add(r)}}),Rl=zo({atan2_:function(e,t){var n,r=Ro(e,"a","atan2"),o=Ro(t,"b","atan2");n=lr(r,o),r=n[0],o=n[1];var a=gi(r.shape,o.shape);return mr.runKernelFunc((function(e,t){var n=e.atan2(r,o);return t([r,o]),n}),{$a:r,$b:o},(function(e,t){var n=t[0],r=t[1];return{$a:function(){var t=Ol(n.square(),r.square()),o=e.mul(r.div(t)),i=mi(n.shape,a);return i.length>0&&(o=o.sum(i)),o.reshape(n.shape)},$b:function(){var t=Ol(n.square(),r.square()),o=Vc(e.mul(n.div(t))),i=mi(r.shape,a);return i.length>0&&(o=o.sum(i)),o.reshape(r.shape)}}}))}}),Sl=zo({div_:function(e,t){var n,r=Ro(e,"a","div"),o=Ro(t,"b","div");if(n=lr(r,o),r=n[0],o=n[1],"int32"===r.dtype&&"int32"===o.dtype)return Tl(r,o);var a=gi(r.shape,o.shape);return mr.runKernelFunc((function(e,t){var n=e.realDivide(r,o);return t([r,o]),n}),{a:r,b:o},(function(e,t){var n=t[0],r=t[1];return{a:function(){var t=e.div(r.toFloat()),o=mi(n.shape,a);return o.length>0?t.sum(o).reshape(n.shape):t},b:function(){var t=e.mul(n.toFloat()),o=mi(r.shape,a);o.length>0&&(t=t.sum(o).reshape(r.shape));var i=r.square();return t.div(i.toFloat()).neg()}}}),"Div")}}),Al=zo({divNoNan_:function(e,t){var n,r=Ro(e,"a","div"),o=Ro(t,"b","div");r=(n=lr(r,o))[0],o=n[1];var a=Sl(r,o),i=na(a),s=o.equal(i);return _l(s,i,a)}}),Pl=zo({divStrict_:function(e,t){var n=Ro(e,"a","div"),r=Ro(t,"b","div");return cn(n.shape,r.shape,"Error in divideStrict: "),n.div(r)}}),Tl=zo({floorDiv_:function(e,t){var n,r=Ro(e,"a","floorDiv"),o=Ro(t,"b","floorDiv");n=lr(r,o),r=n[0],o=n[1];var a=gi(r.shape,o.shape);return mr.runKernelFunc((function(e,t){var n=e.floorDiv(r,o);return t([r,o]),n}),{a:r,b:o},(function(e,t){var n=t[0],r=t[1];return{a:function(){var t=e.div(r.toFloat()),o=mi(n.shape,a);return o.length>0?t.sum(o).reshape(n.shape):t},b:function(){var t=e.mul(n.toFloat()),o=mi(r.shape,a);o.length>0&&(t=t.sum(o).reshape(r.shape));var i=r.square();return t.div(i.toFloat()).neg()}}}),"FloorDiv")}}),Dl=zo({maximum_:function(e,t){var n,r=Ro(e,"a","maximum"),o=Ro(t,"b","maximum");return n=lr(r,o),r=n[0],o=n[1],"bool"===r.dtype&&(r=r.toInt(),o=o.toInt()),gi(r.shape,o.shape),mr.runKernelFunc((function(e,t){var n=e.maximum(r,o);return t([r,o]),n}),{$a:r,$b:o},(function(e,t){var n=t[0],r=t[1];return{$a:function(){return e.mul(n.greaterEqual(r).toFloat())},$b:function(){return e.mul(n.less(r).toFloat())}}}))}}),Nl=zo({maximumStrict_:function(e,t){var n=Ro(e,"a","maximumStrict"),r=Ro(t,"b","maximumStrict");return cn(n.shape,r.shape,"Error in maximumStrict: "),n.maximum(r)}}),Ml=zo({minimum_:function(e,t){var n,r=Ro(e,"a","minimum"),o=Ro(t,"b","minimum");return n=lr(r,o),r=n[0],o=n[1],"bool"===r.dtype&&(r=r.toInt(),o=o.toInt()),gi(r.shape,o.shape),mr.runKernelFunc((function(e,t){var n=e.minimum(r,o);return t([r,o]),n}),{$a:r,$b:o},(function(e,t){var n=t[0],r=t[1];return{$a:function(){return e.mul(n.lessEqual(r).toFloat())},$b:function(){return e.mul(n.greater(r).toFloat())}}}))}}),Fl=zo({minimumStrict_:function(e,t){var n=Ro(e,"a","minimumStrict"),r=Ro(t,"b","minimumStrict");return cn(n.shape,r.shape,"Error in minimumStrict: "),n.minimum(r)}}),Bl=zo({mod_:function(e,t){var n,r=Ro(e,"a","mod"),o=Ro(t,"b","mod");n=lr(r,o),r=n[0],o=n[1];var a=gi(r.shape,o.shape);return mr.runKernelFunc((function(e,t){var n=e.mod(r,o);return t([r,o]),n}),{$a:r,$b:o},(function(e,t){var n=t[0],r=t[1];return{$a:function(){var t=mi(n.shape,a);return t.length>0?e.sum(t).reshape(n.shape):e},$b:function(){var t=e.mul(n.div(r).floor().neg()),o=mi(r.shape,a);return o.length>0?t.sum(o).reshape(r.shape):t}}}))}}),jl=zo({modStrict_:function(e,t){var n=Ro(e,"a","modStrict"),r=Ro(t,"b","modStrict");return cn(n.shape,r.shape,"Error in modStrict: "),n.mod(r)}}),Ll=zo({mul_:function(e,t){var n,r=Ro(e,"a","mul"),o=Ro(t,"b","mul");n=lr(r,o),r=n[0],o=n[1];var a=gi(r.shape,o.shape);return mr.runKernelFunc((function(e,t){var n=e.multiply(r,o);return t([r,o]),n}),{a:r,b:o},(function(e,t){var n=t[0],r=t[1];return{a:function(){var t=e.mul(r.toFloat()),o=mi(n.shape,a);return o.length>0?t.sum(o).reshape(n.shape):t},b:function(){var t=e.mul(n.toFloat()),o=mi(r.shape,a);return o.length>0?t.sum(o).reshape(r.shape):t}}}),"Mul")}}),zl=zo({mulStrict_:function(e,t){var n=Ro(e,"a","mul"),r=Ro(t,"b","mul");return cn(n.shape,r.shape,"Error in multiplyStrict: "),n.mul(r)}}),Hl=zo({pow_:function(e,t){var n=Ro(e,"base","pow"),r=Ro(t,"exp","pow"),o=gi(n.shape,r.shape);return e=n.cast(ur(n.dtype,r.dtype)),t=r.cast(ur(n.dtype,r.dtype)),mr.runKernelFunc((function(e,t){var o=e.pow(n,r);return t([n,r,o]),o}),{$base:n,$exp:r},(function(e,t){var n=t[0],r=t[1],a=t[2];return{$base:function(){var t=r.toFloat(),a=e.mul(t.mul(n.pow(t.sub(Go(1))))),i=mi(n.shape,o);return i.length>0&&(a=a.sum(i)),a.reshape(n.shape)},$exp:function(){var t=n.greater(0),i=n.log().where(t,na(n)),s=e.mul(a.mul(i)),u=mi(r.shape,o);return u.length>0&&(s=s.sum(u)),s.reshape(r.shape)}}}))}}),Wl=zo({powStrict_:function(e,t){return cn(e.shape,t.shape,"Error in powStrict: "),e.pow(t)}}),Vl=zo({squaredDifference_:function(e,t){var n,r=Ro(e,"a","squaredDifference"),o=Ro(t,"b","squaredDifference");return n=lr(r,o),r=n[0],o=n[1],gi(r.shape,o.shape),mr.runKernelFunc((function(e,t){var n=e.squaredDifference(r,o);return t([r,o]),n}),{$a:r,$b:o},(function(e,t){var n=t[0],r=t[1],o=Go(2);return{$a:function(){return e.mul(n.sub(r).mul(o))},$b:function(){return e.mul(r.sub(n).mul(o))}}}))}}),Ul=zo({squaredDifferenceStrict_:function(e,t){var n=Ro(e,"a","squaredDifferenceStrict"),r=Ro(t,"b","squaredDifferenceStrict");return cn(n.shape,r.shape,"Error in squaredDifferenceStrict: "),n.squaredDifference(r)}}),ql=zo({sub_:function(e,t){var n,r=Ro(e,"a","sub"),o=Ro(t,"b","sub");n=lr(r,o),r=n[0],o=n[1];var a=gi(r.shape,o.shape);return mr.runKernelFunc((function(e){return e.subtract(r,o)}),{a:r,b:o},(function(e){return{a:function(){var t=e,n=mi(r.shape,a);return n.length>0&&(t=t.sum(n)),t.reshape(r.shape)},b:function(){var t=e,n=mi(o.shape,a);return n.length>0&&(t=t.sum(n)),t.neg().reshape(o.shape)}}}),"Sub")}}),Gl=zo({subStrict_:function(e,t){var n=Ro(e,"a","subStrict"),r=Ro(t,"b","subStrict");return cn(n.shape,r.shape,"Error in subStrict: "),n.sub(r)}}),Xl=zo({equal_:function(e,t){var n,r=Ro(e,"a","equal"),o=Ro(t,"b","equal");return n=lr(r,o),r=n[0],o=n[1],gi(r.shape,o.shape),mr.runKernelFunc((function(e){return e.equal(r,o)}),{$a:r,$b:o})}}),Kl=zo({equalStrict_:function(e,t){var n=Ro(e,"a","equalStrict"),r=Ro(t,"b","equalStrict");return cn(n.shape,r.shape,"Error in equalStrict: "),n.equal(r)}}),$l=zo({greater_:function(e,t){var n,r=Ro(e,"a","greater"),o=Ro(t,"b","greater");return n=lr(r,o),r=n[0],o=n[1],gi(r.shape,o.shape),mr.runKernelFunc((function(e){return e.greater(r,o)}),{$a:r,$b:o})}}),Yl=zo({greaterEqual_:function(e,t){var n,r=Ro(e,"a","greaterEqual"),o=Ro(t,"b","greaterEqual");return n=lr(r,o),r=n[0],o=n[1],gi(r.shape,o.shape),mr.runKernelFunc((function(e,t){var n=e.greaterEqual(r,o);return t([r,o]),n}),{$a:r,$b:o},(function(e,t){var n=t[0],r=t[1];return{$a:function(){return na(n)},$b:function(){return na(r)}}}))}}),Jl=zo({greaterEqualStrict_:function(e,t){var n=Ro(e,"a","greaterEqualStrict"),r=Ro(t,"b","greaterEqualStrict");return cn(n.shape,r.shape,"Error in greaterEqualStrict: "),n.greaterEqual(r)}}),Zl=zo({greaterStrict_:function(e,t){var n=Ro(e,"a","greaterStrict"),r=Ro(t,"b","greaterStrict");return cn(n.shape,r.shape,"Error in greaterStrict: "),n.greater(r)}}),Ql=zo({less_:function(e,t){var n,r=Ro(e,"a","less"),o=Ro(t,"b","less");return n=lr(r,o),r=n[0],o=n[1],gi(r.shape,o.shape),mr.runKernelFunc((function(e){return e.less(r,o)}),{$a:r,$b:o})}}),ef=zo({lessEqual_:function(e,t){var n,r=Ro(e,"a","lessEqual"),o=Ro(t,"b","lessEqual");return n=lr(r,o),r=n[0],o=n[1],gi(r.shape,o.shape),mr.runKernelFunc((function(e){return e.lessEqual(r,o)}),{$a:r,$b:o})}}),tf=zo({lessEqualStrict_:function(e,t){var n=Ro(e,"a","lessEqualStrict"),r=Ro(t,"b","lessEqualStrict");return cn(n.shape,r.shape,"Error in lessEqualStrict: "),n.lessEqual(r)}}),nf=zo({lessStrict_:function(e,t){var n=Ro(e,"a","lessStrict"),r=Ro(t,"b","lessStrict");return cn(n.shape,r.shape,"Error in lessStrict: "),n.less(r)}}),rf=zo({notEqual_:function(e,t){var n,r=Ro(e,"a","notEqual"),o=Ro(t,"b","notEqual");return n=lr(r,o),r=n[0],o=n[1],gi(r.shape,o.shape),mr.runKernelFunc((function(e){return e.notEqual(r,o)}),{$a:r,$b:o})}}),of=zo({notEqualStrict_:function(e,t){var n=Ro(e,"a","notEqualStrict"),r=Ro(t,"b","notEqualStrict");return cn(n.shape,r.shape,"Error in notEqualStrict: "),n.notEqual(r)}});function af(e,t){for(var n=[],r=e;r<t;++r)n.push(r);return n}function sf(e){for(var t=[],n=0;n<e.length;++n)for(var r=0;r<e[n].length;++r)t.push(e[n][r]);return t}var uf=zo({gather_:function(e,t,n){void 0===n&&(n=0);var r=Ro(e,"x","gather"),o=Ro(t,"indices","gather","int32");n=wn(n,r.shape)[0];var a=function(e,t,n){for(var r=e.shape[n],o=[],a=1,i=1,s=0;s<n;s++)o.push(e.shape[s]),a*=e.shape[s];for(s=0;s<t.rank;s++)o.push(t.shape[s]);for(s=n+1;s<e.rank;s++)o.push(e.shape[s]),i*=e.shape[s];return{batchSize:a,sliceSize:i,dimSize:r,outputShape:o}}(r,o,n);return mr.runKernelFunc((function(e,t){var a=e.gather(r,o.flatten(),n);return t([o]),a}),{$x:r},(function(e,t){var o=t[0];return{$x:function(){var t=r.shape,a=o.size,i=t.slice(0,n),s=i.length,u=t.slice(n,t.length).slice(1),c=u.length,l=af(0,s),f=af(s+1,s+1+c),h=sf([i,[a],u]),p=e.reshape(h),d=o.reshape([a]),v=sf([[s],l,f]),m=p.transpose(v),g=cf(m,d,r.shape[n]),y=Fo(v);return g.transpose(y)}}})).reshape(a.outputShape)}}),cf=zo({unsortedSegmentSum_:function(e,t,n){var r=Ro(e,"x","unsortedSegmentSum"),o=Ro(t,"segmentIds","unsortedSegmentSum","int32");return un(dn(n),(function(){return"numSegments must be of dtype int"})),mr.runKernelFunc((function(e,t){var a=e.unsortedSegmentSum(r,o,n);return t([o]),a}),{$x:r},(function(e,t){var n=t[0];return{$x:function(){return function(e,t){for(var n=Dl(t,na(t)),r=uf(e,n),o=Yl(t,Go(0,"int32")),a=r.rank-o.rank,i=0;i<a;++i)o=Ra(o,i+1);o=bl(o,Jo(r.shape,"bool"));var s=na(r);return _l(o,r,s)}(e,n)}}}))}});function lf(e,t,n,r,o,a,i){void 0===a&&(a="NHWC"),un(e.length===t.rank,(function(){return"Length of inShape ("+e.length+") and rank of dy ("+t.rank+") must match"}));var s=e,u=t,c=!1;3===t.rank&&(c=!0,u=t.as4D(1,t.shape[0],t.shape[1],t.shape[2]),s=[1,e[0],e[1],e[2]]),un(4===s.length,(function(){return"Error in conv2dDerInput: inShape must be length 4, but got length "+s.length+"."})),un(4===u.rank,(function(){return"Error in conv2dDerInput: dy must be rank 4, but got rank "+u.rank})),un(4===n.rank,(function(){return"Error in conv2dDerInput: filter must be rank 4, but got rank "+n.rank}));var l="NHWC"===a?s[3]:s[1],f="NHWC"===a?u.shape[3]:u.shape[1];un(l===n.shape[2],(function(){return"Error in conv2dDerInput: depth of input ("+l+") must match input depth for filter "+n.shape[2]+"."})),un(f===n.shape[3],(function(){return"Error in conv2dDerInput: depth of output ("+f+") must match output depth for filter "+n.shape[3]+"."})),null!=i&&un(dn(o),(function(){return"Error in conv2dDerInput: pad must be an integer when using, dimRoundingMode "+i+" but got pad "+o+"."}));var h=Si(a),p=wi(s,n.shape,r,1,o,i,!1,h),d=mr.runKernelFunc((function(e,t){var r=e.conv2dDerInput(u,n,p);return t([n,u]),r}),{dy4D:u,filter:n},(function(e,t){var n=t[0],s=t[1];return{dy4D:function(){return df(e,n,r,o,a,1,i)},filter:function(){return mf(e,s,n.shape,r,o,a,i)}}}));return c?d.as3D(d.shape[1],d.shape[2],d.shape[3]):d}function ff(e){var t=function(e){return"number"==typeof e?[e,e,e]:2===e.length?[e[0],e[1],1]:e}(e),n=t[0],r=t[1],o=t[2];return 1===n&&1===r&&1===o}function hf(e,t,n,r,o){un(e.length===t.rank,(function(){return"Length of inShape ("+e.length+") and rank of dy ("+t.rank+") must match"}));var a=e,i=t,s=!1;4===t.rank&&(s=!0,i=t.as5D(1,t.shape[0],t.shape[1],t.shape[2],t.shape[3]),a=[1,e[0],e[1],e[2],e[3]]);var u=a[4],c=i.shape[4];un(5===a.length,(function(){return"Error in conv3dDerInput: inShape must be length 5, but got length "+a.length+"."})),un(5===i.rank,(function(){return"Error in conv3dDerInput: dy must be rank 5, but got rank "+i.rank})),un(5===n.rank,(function(){return"Error in conv3dDerInput: filter must be rank 5, but got rank "+n.rank})),un(u===n.shape[3],(function(){return"Error in conv3dDerInput: depth of input ("+u+") must match input depth for filter "+n.shape[3]+"."})),un(c===n.shape[4],(function(){return"Error in conv3dDerInput: depth of output ("+c+") must match output depth for filter "+n.shape[4]+"."}));var l=xi(a,n.shape,r,1,o),f=mr.runKernelFunc((function(e){return e.conv3dDerInput(i,n,l)}),{dy5D:i});return s?f.as4D(f.shape[1],f.shape[2],f.shape[3],f.shape[4]):f}var pf=zo({conv1d_:function(e,t,n,r,o,a,i){void 0===o&&(o="NWC"),void 0===a&&(a=1);var s=Ro(e,"x","conv1d"),u=Ro(t,"filter","conv1d"),c=s,l=!1;2===s.rank&&(l=!0,c=s.as3D(1,s.shape[0],s.shape[1])),un(3===c.rank,(function(){return"Error in conv1d: input must be rank 3, but got rank "+c.rank+"."})),un(3===u.rank,(function(){return"Error in conv1d: filter must be rank 3, but got rank "+u.rank+"."})),null!=i&&un(dn(r),(function(){return"Error in conv1d: pad must be an integer when using, dimRoundingMode "+i+" but got pad "+r+"."})),un(c.shape[2]===u.shape[1],(function(){return"Error in conv1d: depth of input ("+c.shape[2]+") must match input depth for filter "+u.shape[1]+"."})),un(Ri(n,a),(function(){return"Error in conv1D: Either stride or dilation must be 1. Got stride "+n+" and dilation '"+a+"'"})),un("NWC"===o,(function(){return"Error in conv1d: got dataFormat of "+o+" but only NWC is currently supported."}));var f=u.as4D(1,u.shape[0],u.shape[1],u.shape[2]),h=c.as4D(c.shape[0],1,c.shape[1],c.shape[2]),p=df(h,f,[1,n],r,"NHWC",[1,a],i);return l?p.as2D(p.shape[2],p.shape[3]):p.as3D(p.shape[0],p.shape[2],p.shape[3])}}),df=zo({conv2d_:function(e,t,n,r,o,a,i){void 0===o&&(o="NHWC"),void 0===a&&(a=[1,1]);var s=Ro(e,"x","conv2d"),u=Ro(t,"filter","conv2d"),c=s,l=!1;3===s.rank&&(l=!0,c=s.as4D(1,s.shape[0],s.shape[1],s.shape[2])),un(4===c.rank,(function(){return"Error in conv2d: input must be rank 4, but got rank "+c.rank+"."})),un(4===u.rank,(function(){return"Error in conv2d: filter must be rank 4, but got rank "+u.rank+"."})),null!=i&&un(dn(r),(function(){return"Error in conv2d: pad must be an integer when using, dimRoundingMode "+i+" but got pad "+r+"."}));var f="NHWC"===o?c.shape[3]:c.shape[1];un(f===u.shape[2],(function(){return"Error in conv2d: depth of input ("+f+") must match input depth for filter "+u.shape[2]+"."})),un(Ri(n,a),(function(){return"Error in conv2D: Either strides or dilations must be 1. Got strides "+n+" and dilations '"+a+"'"}));var h=Si(o),p=wi(c.shape,u.shape,n,a,r,i,!1,h),d=[u,c],v=mr.runKernelFunc((function(e,t){var n=e.conv2d(c,u,p);return t([u,c]),n}),{x:c,filter:u},(function(e,t){var i=t,s=i[0],u=i[1];return un(Ii(a),(function(){return"Error in gradient of conv2D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '"+a+"'"})),{x:function(){return gf(u.shape,e,s,n,r,o)},filter:function(){return mf(u,e,s.shape,n,r,o)}}}),"Conv2D",p,d);return l?v.as3D(v.shape[1],v.shape[2],v.shape[3]):v}}),vf=zo({conv3d_:function(e,t,n,r,o,a){void 0===o&&(o="NDHWC"),void 0===a&&(a=[1,1,1]);var i=Ro(e,"x","conv3d"),s=Ro(t,"filter","conv3d"),u=i,c=!1;4===i.rank&&(c=!0,u=i.as5D(1,i.shape[0],i.shape[1],i.shape[2],i.shape[3])),un(5===u.rank,(function(){return"Error in conv3d: input must be rank 5, but got rank "+u.rank+"."})),un(5===s.rank,(function(){return"Error in conv3d: filter must be rank 5, but got rank "+s.rank+"."})),un(u.shape[4]===s.shape[3],(function(){return"Error in conv3d: depth of input ("+u.shape[4]+") must match input depth for filter "+s.shape[3]+"."})),un(function(e,t){return ff(e)||ff(t)}(n,a),(function(){return"Error in conv3D: Either strides or dilations must be 1. Got strides "+n+" and dilations '"+a+"'"})),un("NDHWC"===o,(function(){return"Error in conv3d: got dataFormat of "+o+" but only NDHWC is currently supported."}));var l=xi(u.shape,s.shape,n,a,r),f=mr.runKernelFunc((function(e,t){var n=e.conv3d(u,s,l);return t([u,s]),n}),{x:u,$filter:s},(function(e,t){un(ff(a),(function(){return"Error in gradient of conv3D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '"+a+"'"}));var o=t[0],i=t[1];return{x:function(){return hf(o.shape,e,i,n,r)},$filter:function(){return function(e,t,n,r,o){var a=e;4===e.rank&&(a=e.as5D(1,e.shape[0],e.shape[1],e.shape[2],e.shape[3]));var i=t;4===i.rank&&(i=t.as5D(1,t.shape[0],t.shape[1],t.shape[2],t.shape[3])),un(5===a.rank,(function(){return"Error in conv3dDerFilter: input must be rank 5, but got shape "+a.shape+"."})),un(5===i.rank,(function(){return"Error in conv3dDerFilter: dy must be rank 5, but got shape "+i.shape+"."})),un(5===n.length,(function(){return"Error in conv3dDerFilter: filterShape must be length 5, but got "+n+"."})),un(a.shape[4]===n[3],(function(){return"Error in conv3dDerFilter: depth of input "+a.shape[4]+") must match input depth in filter ("+n[3]+"."})),un(i.shape[4]===n[4],(function(){return"Error in conv3dDerFilter: depth of dy ("+i.shape[4]+") must match output depth for filter ("+n[4]+")."}));var s=xi(a.shape,n,r,1,o);return mr.runKernelFunc((function(e){return e.conv3dDerFilter(a,i,s)}),{x5D:a,dy5D:i})}(o,e,i.shape,n,r)}}}));return c?f.as4D(f.shape[1],f.shape[2],f.shape[3],f.shape[4]):f}}),mf=zo({conv2dDerFilter_:function(e,t,n,r,o,a,i){void 0===a&&(a="NHWC");var s=e;3===e.rank&&(s=e.as4D(1,e.shape[0],e.shape[1],e.shape[2]));var u=t;3===u.rank&&(u=t.as4D(1,t.shape[0],t.shape[1],t.shape[2])),un(4===s.rank,(function(){return"Error in conv2dDerFilter: input must be rank 4, but got shape "+s.shape+"."})),un(4===u.rank,(function(){return"Error in conv2dDerFilter: dy must be rank 4, but got shape "+u.shape+"."})),un(4===n.length,(function(){return"Error in conv2dDerFilter: filterShape must be length 4, but got "+n+"."}));var c="NHWC"===a?s.shape[3]:s.shape[1],l="NHWC"===a?u.shape[3]:u.shape[1];un(c===n[2],(function(){return"Error in conv2dDerFilter: depth of input "+c+") must match input depth in filter ("+n[2]+"."})),un(l===n[3],(function(){return"Error in conv2dDerFilter: depth of dy ("+l+") must match output depth for filter ("+n[3]+")."})),null!=i&&un(dn(o),(function(){return"Error in conv2dDerFilter: pad must be an integer when using, dimRoundingMode "+i+" but got pad "+o+"."}));var f=Si(a),h=wi(s.shape,n,r,1,o,i,!1,f);return mr.runKernelFunc((function(e){return e.conv2dDerFilter(s,u,h)}),{x4D:s,dy4D:u})}}),gf=zo({conv2dDerInput_:lf}),yf=zo({depthwiseConv2d_:function(e,t,n,r,o,a,i){void 0===o&&(o="NHWC"),void 0===a&&(a=[1,1]);var s=Ro(e,"x","depthwiseConv2d"),u=Ro(t,"filter","depthwiseConv2d"),c=s,l=!1;3===s.rank&&(l=!0,c=s.as4D(1,s.shape[0],s.shape[1],s.shape[2])),un(4===c.rank,(function(){return"Error in depthwiseConv2d: input must be rank 4, but got rank "+c.rank+"."})),un(4===u.rank,(function(){return"Error in depthwiseConv2d: filter must be rank 4, but got rank "+u.rank+"."})),un(c.shape[3]===u.shape[2],(function(){return"Error in depthwiseConv2d: number of input channels ("+c.shape[3]+") must match the inChannels dimension in filter "+u.shape[2]+"."})),null==a&&(a=[1,1]),un(Ri(n,a),(function(){return"Error in depthwiseConv2d: Either strides or dilations must be 1. Got strides "+n+" and dilations '"+a+"'"})),null!=i&&un(dn(r),(function(){return"Error in depthwiseConv2d: pad must be an integer when using, dimRoundingMode "+i+" but got pad "+r+"."}));var f=wi(c.shape,u.shape,n,a,r,i,!0),h=[c,u],p=mr.runKernelFunc((function(e,t){var n=e.depthwiseConv2D(c,u,f);return t([c,u]),n}),{x:c,filter:u},(function(e,t){un(Ii(a),(function(){return"Error in gradient of depthwiseConv2d: dilation rates greater than 1 are not yet supported. Got dilations '"+a+"'"}));var n=t[0],r=t[1];return{x:function(){return bf(n.shape,e,r,f)},filter:function(){return wf(n,e,r.shape,f)}}}),"DepthwiseConv2dNative",f,h);return l?p.as3D(p.shape[1],p.shape[2],p.shape[3]):p}}),bf=zo({depthwiseConv2dDerInput_:function(e,t,n,r){var o=t,a=!1;3===t.rank&&(a=!0,o=t.as4D(1,t.shape[0],t.shape[1],t.shape[2]));var i=mr.runKernelFunc((function(e){return e.depthwiseConv2DDerInput(o,n,r)}),{dy4D:o});return a?i.as3D(i.shape[1],i.shape[2],i.shape[3]):i}}),wf=zo({depthwiseConv2dDerFilter_:function(e,t,n,r){var o=e;3===e.rank&&(o=e.as4D(1,e.shape[0],e.shape[1],e.shape[2]));var a=t;return 3===a.rank&&(a=t.as4D(1,t.shape[0],t.shape[1],t.shape[2])),mr.runKernelFunc((function(e){return e.depthwiseConv2DDerFilter(o,a,r)}),{x4D:o,dy4D:a})}}),xf=zo({separableConv2d_:function(e,t,n,r,o,a,i){void 0===a&&(a=[1,1]),void 0===i&&(i="NHWC");var s=Ro(e,"x","separableConv2d"),u=Ro(t,"depthwiseFilter","separableConv2d"),c=Ro(n,"pointwiseFilter","separableConv2d"),l=s,f=!1;if(3===s.rank&&(f=!0,l=s.as4D(1,s.shape[0],s.shape[1],s.shape[2])),"NCHW"===i)throw new Error("separableConv2d currently does not support dataFormat NCHW; only NHWC is supported");un(4===l.rank,(function(){return"Error in separableConv2d: input must be rank 4, but got rank "+l.rank+"."})),un(4===u.rank,(function(){return"Error in separableConv2d: depthwise filter must be rank 4, but got rank "+u.rank+"."})),un(4===c.rank,(function(){return"Error in separableConv2d: pointwise filter must be rank 4, but got rank "+u.rank+"."})),un(1===c.shape[0],(function(){return"Error in separableConv2d: the first dimension of pointwise filter must be 1, but got "+c.shape[0]+"."})),un(1===c.shape[1],(function(){return"Error in separableConv2d: the second dimension of pointwise filter must be 1, but got "+c.shape[1]+"."}));var h=u.shape[2],p=u.shape[3];un(c.shape[2]===h*p,(function(){return"Error in separableConv2d: the third dimension of pointwise filter must be "+h*p+", but got "+c.shape[2]+"."}));var d=yf(l,u,r,o,i,a),v=df(d,c,1,"valid",i);return f?v.as3D(v.shape[1],v.shape[2],v.shape[3]):v}}),Ef=zo({conv2dTranspose_:function(e,t,n,r,o,a){return lf(n,Ro(e,"x","conv2dTranspose"),Ro(t,"filter","conv2dTranspose"),r,o,"NHWC",a)}}),_f=zo({conv3dTranspose_:function(e,t,n,r,o){return hf(n,Ro(e,"x","conv3dTranspose"),Ro(t,"filter","conv3dTranspose"),r,o)}}),kf=zo({matMul_:function(e,t,n,r){var o;void 0===n&&(n=!1),void 0===r&&(r=!1);var a=Ro(e,"a","matMul"),i=Ro(t,"b","matMul");o=lr(a,i),a=o[0],i=o[1];var s=n?a.shape[a.rank-2]:a.shape[a.rank-1],u=r?i.shape[i.rank-1]:i.shape[i.rank-2],c=n?a.shape[a.rank-1]:a.shape[a.rank-2],l=r?i.shape[i.rank-2]:i.shape[i.rank-1],f=a.shape.slice(0,-2),h=i.shape.slice(0,-2),p=hn(f),d=hn(h);un(a.rank>=2&&i.rank>=2&&a.rank===i.rank,(function(){return"Error in matMul: inputs must have the same rank of at least 2, got ranks "+a.rank+" and "+i.rank+"."})),un(pn(f,h),(function(){return"Error in matMul: outer dimensions ("+f+") and ("+h+") of Tensors with shapes "+a.shape+" and "+i.shape+" must match."})),un(s===u,(function(){return"Error in matMul: inner shapes ("+s+") and ("+u+") of Tensors with shapes "+a.shape+" and "+i.shape+" and transposeA="+n+" and transposeB="+r+" must match."}));var v=a.shape.slice(0,-2).concat([c,l]),m=n?a.as3D(p,s,c):a.as3D(p,c,s),g=r?i.as3D(d,l,u):i.as3D(d,u,l),y={transposeA:n,transposeB:r};return mr.runKernelFunc((function(e,t){var o=e.batchMatMul(m,g,n,r);return t([m,g]),o}),{a:m,b:g},(function(e,t){var o=t,a=o[0],i=o[1];return n||r?!n&&r?{a:function(){return e.matMul(i,!1,!1)},b:function(){return e.matMul(a,!0,!1)}}:n&&!r?{a:function(){return i.matMul(e,!1,!0)},b:function(){return a.matMul(e,!1,!1)}}:{a:function(){return i.matMul(e,!0,!0)},b:function(){return e.matMul(a,!0,!0)}}:{a:function(){return e.matMul(i,!1,!0)},b:function(){return a.matMul(e,!0,!1)}}}),"BatchMatMul",y).reshape(v)}}),Of=zo({dot_:function(e,t){var n=Ro(e,"t1","dot"),r=Ro(t,"t2","dot");un(!(1!==n.rank&&2!==n.rank||1!==r.rank&&2!==r.rank),(function(){return"Error in dot: inputs must all be rank 1 or 2, but got ranks "+n.rank+" and "+r.rank+"."}));var o=1===n.rank?n.size:n.shape[1],a=1===r.rank?r.size:r.shape[0];return un(o===a,(function(){return"Error in dot: inner dimensions of inputs must match, but got "+o+" and "+a+"."})),1===n.rank&&1===r.rank?n.as2D(1,-1).matMul(r.as2D(-1,1)).asScalar():1===n.rank&&2===r.rank?n.as2D(1,-1).matMul(r.as2D(r.shape[0],r.shape[1])).as1D():2===n.rank&&1===r.rank?n.matMul(r.as2D(-1,1)).as1D():n.matMul(r.as2D(r.shape[0],r.shape[1]))}}),Cf=zo({outerProduct_:function(e,t){var n=Ro(e,"v1","outerProduct"),r=Ro(t,"v2","outerProduct");return un(1===n.rank&&1===r.rank,(function(){return"Error in outerProduct: inputs must be rank 1, but got ranks "+n.rank+" and "+r.rank+"."})),n.as2D(-1,1).matMul(r.as2D(1,-1))}}),If=zo({reverse_:function(e,t){var n=Ro(e,"x","reverse");if(0===n.rank)return n.clone();var r=wn(t,n.shape);return mr.runKernelFunc((function(e){return e.reverse(n,r)}),{$x:n},(function(e){return{$x:function(){return e.reverse(r)}}})).reshapeAs(n)}}),Rf=zo({reverse1d_:function(e){var t=Ro(e,"x","reverse");return un(1===t.rank,(function(){return"Error in reverse1D: x must be rank 1 but got rank "+t.rank+"."})),If(t,0)}}),Sf=zo({reverse2d_:function(e,t){var n=Ro(e,"x","reverse");return un(2===n.rank,(function(){return"Error in reverse2D: x must be rank 2 but got rank "+n.rank+"."})),If(n,t)}}),Af=zo({reverse3d_:function(e,t){var n=Ro(e,"x","reverse");return un(3===n.rank,(function(){return"Error in reverse3D: x must be rank 3 but got rank "+n.rank+"."})),If(n,t)}}),Pf=zo({reverse4d_:function(e,t){var n=Ro(e,"x","reverse");return un(4===n.rank,(function(){return"Error in reverse4D: x must be rank 4 but got rank "+n.rank+"."})),If(n,t)}});function Tf(e,t,n,r,o,a){var i=Ro(e,"x","maxPool"),s=i,u=!1;3===i.rank&&(u=!0,s=i.as4D(1,i.shape[0],i.shape[1],i.shape[2])),null==r&&(r=[1,1]),un(4===s.rank,(function(){return"Error in maxPool: input must be rank 4 but got rank "+s.rank+"."})),un(Ri(n,r),(function(){return"Error in maxPool: Either strides or dilations must be 1. Got strides "+n+" and dilations '"+r+"'"})),null!=a&&un(dn(o),(function(){return"Error in maxPool: pad must be an integer when using, dimRoundingMode "+a+" but got pad "+o+"."}));var c=yi(s.shape,t,n,r,o,a);if(1===c.filterWidth&&1===c.filterHeight&&pn(c.inShape,c.outShape))return i.clone();var l=[s],f=mr.runKernelFunc((function(e,t){var n=e.maxPool(s,c);return t([s,n]),n}),{x:s},(function(e,a){var i=a[0],s=a[1];return{x:function(){return function(e,t,n,r,o,a,i,s){var u=Ro(e,"dy","maxPoolBackprop"),c=Ro(t,"input","maxPoolBackprop"),l=Ro(n,"output","maxPoolBackprop");un(c.rank===u.rank,(function(){return"Rank of input ("+c.rank+") does not match rank of dy ("+u.rank+")"})),null==a&&(a=[1,1]),un(Ri(o,a),(function(){return"Error in maxPoolBackProp: Either strides or dilations must be 1. Got strides "+o+" and dilations '"+a+"'"})),un(4===u.rank,(function(){return"Error in maxPoolBackprop: dy must be rank 4 but got rank "+u.rank+"."})),un(4===c.rank,(function(){return"Error in maxPoolBackprop: input must be rank 4 but got rank "+c.rank+"."}));var f=yi(c.shape,r,o,a,i,s);return mr.runKernelFunc((function(e){return e.maxPoolBackprop(u,c,l,f)}),{$dy:u,$input:c})}(e,i,s,t,n,r,o)}}}),"MaxPool",c,l);return u?f.as3D(f.shape[1],f.shape[2],f.shape[3]):f}function Df(e,t,n,r,o,a){var i=Ro(e,"x","avgPool","float32");null==r&&(r=[1,1]),un(Ri(n,r),(function(){return"Error in avgPool: Either strides or dilations must be 1. Got strides "+n+" and dilations '"+r+"'"}));var s=i,u=!1;3===i.rank&&(u=!0,s=i.as4D(1,i.shape[0],i.shape[1],i.shape[2])),un(4===s.rank,(function(){return"Error in avgPool: x must be rank 4 but got rank "+s.rank+"."})),null!=a&&un(dn(o),(function(){return"Error in avgPool: pad must be an integer when using, dimRoundingMode "+a+" but got pad "+o+"."}));var c=yi(s.shape,t,n,r,o,a);if(1===c.filterWidth&&1===c.filterHeight&&pn(c.inShape,c.outShape))return i.clone();var l=mr.runKernelFunc((function(e){return e.avgPool(s,c)}),{x:s},(function(e){return{x:function(){return function(e,t,n,r,o,a){var i=Ro(e,"dy","avgPoolBackprop"),s=Ro(t,"input","avgPoolBackprop");un(s.rank===i.rank,(function(){return"Rank of input ("+s.rank+") does not match rank of dy ("+i.rank+")"})),null==o&&(o=[1,1]),un(Ri(r,o),(function(){return"Error in avgPoolBackprop: Either strides or dilations must be 1. Got strides "+r+" and dilations '"+o+"'"}));var u=s,c=i,l=!1;3===s.rank&&(l=!0,u=s.as4D(1,s.shape[0],s.shape[1],s.shape[2]),c=i.as4D(1,i.shape[0],i.shape[1],i.shape[2])),un(4===c.rank,(function(){return"Error in avgPoolBackprop: dy must be rank 4 but got rank "+c.rank+"."})),un(4===u.rank,(function(){return"Error in avgPoolBackprop: input must be rank 4 but got rank "+u.rank+"."}));var f=yi(u.shape,n,r,o,a),h=mr.runKernelFunc((function(e){return e.avgPoolBackprop(c,u,f)}),{dy4D:c,input4D:u});return l?h.as3D(h.shape[1],h.shape[2],h.shape[3]):h}(e,s,t,n,r,o)}}}),"AvgPool",c);return l=l.cast(i.dtype),u?l.as3D(l.shape[1],l.shape[2],l.shape[3]):l}var Nf=zo({maxPool_:function(e,t,n,r,o){return Tf(e,t,n,1,r,o)}}),Mf=zo({avgPool_:function(e,t,n,r,o){return Df(e,t,n,1,r,o)}}),Ff=zo({pool_:function(e,t,n,r,o,a){null==o&&(o=[1,1]),null==a&&(a=1),0===r&&(r="valid");var i=Ro(e,"x","maxPool"),s=i,u=!1;3===i.rank&&(u=!0,s=i.as4D(1,i.shape[0],i.shape[1],i.shape[2])),un(Ri(a,o),(function(){return"Error in pool: Either strides or dilations must be 1. Got strides "+a+" and dilations '"+o+"'"}));var c,l=yi(s.shape,t,a,o,r),f=[l.dilationHeight,l.dilationWidth];c="same"===r?function(e,t){var n=e.map((function(e,n){return e+(e-1)*(t[n]-1)})).map((function(e){return e-1})),r=n.map((function(e){return Math.floor(e/2)})),o=n.map((function(e,t){return e-r[t]}));return n.map((function(e,t){return[r[t],o[t]]}))}([l.filterHeight,l.filterWidth],f):[[0,0],[0,0]];var h=1===f[0]&&1===f[1],p=function(e,t,n){var r=n.map((function(e){return e[0]})),o=n.map((function(e){return e[1]})),a=e.concat(r,o),i=t.map((function(e,t){return(e-a[t]%e)%e})),s=o.map((function(e,t){return e+i[t]}));return[t.map((function(e,t){return[r[t],s[t]]})),t.map((function(e,t){return[0,i[t]]}))]}([l.inHeight,l.inWidth],f,c),d=p[0],v=p[1],m=h?r:"valid",g=h?s:Wa(s,f,d),y=("avg"===n?function(){return Df(g,t,a,1,m)}:function(){return Tf(g,t,a,1,m)})(),b=h?y:Ea(y,f,v);return u?b.as3D(b.shape[1],b.shape[2],b.shape[3]):b}}),Bf=zo({maxPool3d_:function(e,t,n,r,o,a,i){void 0===a&&(a="NDHWC");var s=Ro(e,"x","maxPool3d"),u=s,c=!1;4===s.rank&&(c=!0,u=s.as5D(1,s.shape[0],s.shape[1],s.shape[2],s.shape[3])),null==i&&(i=[1,1,1]),un(5===u.rank,(function(){return"Error in maxPool3d: x must be rank 5 but got rank "+u.rank+"."})),un("NDHWC"===a,(function(){return"Error in maxPool3d: Only NDHWC is currently supported, but got dataFormat of "+a})),un(Ri(n,i),(function(){return"Error in maxPool3d: Either strides or dilations must be 1. Got strides "+n+" and dilations '"+i+"'"})),null!=o&&un(dn(r),(function(){return"Error in maxPool3d: pad must be an integer when using, dimRoundingMode "+o+" but got pad "+r+"."}));var l=bi(u.shape,t,n,i,r,o,a),f=mr.runKernelFunc((function(e,t){var n=e.maxPool3d(u,l);return t([u,n]),n}),{x:u},(function(e,a){var s=a[0],u=a[1];return{x:function(){return function(e,t,n,r,o,a,i,s){var u=Ro(e,"dy","maxPool3dBackprop"),c=Ro(t,"input","maxPool3dBackprop"),l=Ro(n,"output","maxPool3dBackprop"),f=u,h=c,p=l,d=!1;4===c.rank&&(d=!0,f=u.as5D(1,u.shape[0],u.shape[1],u.shape[2],u.shape[3]),h=c.as5D(1,c.shape[0],c.shape[1],c.shape[2],c.shape[3]),p=l.as5D(1,l.shape[0],l.shape[1],l.shape[2],l.shape[3])),un(5===f.rank,(function(){return"Error in maxPool3dBackprop: dy must be rank 5 but got rank "+f.rank+"."})),un(5===h.rank,(function(){return"Error in maxPool3dBackprop: input must be rank 5 but got rank "+h.rank+"."})),un(5===p.rank,(function(){return"Error in maxPool3dBackprop: output must be rank 5 but got rank "+p.rank+"."})),null==a&&(a=[1,1,1]),un(Ri(o,a),(function(){return"Error in maxPool3dBackprop: Either strides or dilations must be 1. Got strides "+o+" and dilations '"+a+"'"})),null!=s&&un(dn(i),(function(){return"Error in maxPool3dBackprop: pad must be an integer when using, dimRoundingMode "+s+" but got pad "+i+"."}));var v=bi(h.shape,r,o,a,i,s),m=mr.runKernelFunc((function(e){return e.maxPool3dBackprop(f,h,p,v)}),{dy5D:f,input5D:h});return d?m.as4D(m.shape[1],m.shape[2],m.shape[3],m.shape[4]):m}(e,s,u,t,n,i,r,o)}}}));return c?f.as4D(f.shape[1],f.shape[2],f.shape[3],f.shape[4]):f}}),jf=zo({avgPool3d_:function(e,t,n,r,o,a,i){void 0===a&&(a="NDHWC");var s=Ro(e,"x","avgPool3d","float32"),u=s,c=!1;4===s.rank&&(c=!0,u=s.as5D(1,s.shape[0],s.shape[1],s.shape[2],s.shape[3])),null==i&&(i=[1,1,1]),un(5===u.rank,(function(){return"Error in avgPool3d: x must be rank 5 but got rank "+u.rank+"."})),un("NDHWC"===a,(function(){return"Error in avgPool3d: Only NDHWC is currently supported, but got dataFormat of "+a})),un(Ri(n,i),(function(){return"Error in avgPool3d: Either strides or dilations must be 1. Got strides "+n+" and dilations '"+i+"'"})),null!=o&&un(dn(r),(function(){return"Error in avgPool3d: pad must be an integer when using, dimRoundingMode "+o+" but got pad "+r+"."}));var l=bi(u.shape,t,n,i,r,o,a),f=mr.runKernelFunc((function(e){return e.avgPool3d(u,l)}),{x:u},(function(e){return{x:function(){return function(e,t,n,r,o,a,i){var s=Ro(e,"dy","avgPool3dBackprop"),u=Ro(t,"input","avgPool3dBackprop"),c=s,l=u,f=!1;4===u.rank&&(f=!0,c=s.as5D(1,s.shape[0],s.shape[1],s.shape[2],s.shape[3]),l=u.as5D(1,u.shape[0],u.shape[1],u.shape[2],u.shape[3])),un(5===c.rank,(function(){return"Error in avgPool3dBackprop: dy must be rank 5 but got rank "+c.rank+"."})),un(5===l.rank,(function(){return"Error in avgPool3dBackprop: input must be rank 5 but got rank "+l.rank+"."})),null==o&&(o=[1,1,1]),un(Ri(r,o),(function(){return"Error in avgPool3dBackprop: Either strides or dilations must be 1. Got strides "+r+" and dilations '"+o+"'"})),null!=i&&un(dn(a),(function(){return"Error in maxPool3dBackprop: pad must be an integer when using, dimRoundingMode "+i+" but got pad "+a+"."}));var h=bi(l.shape,n,r,o,a,i),p=mr.runKernelFunc((function(e){return e.avgPool3dBackprop(c,l,h)}),{dy5D:c,input5D:l});return f?p.as4D(p.shape[1],p.shape[2],p.shape[3],p.shape[4]):p}(e,u,t,n,i,r,o)}}}));return f=f.cast(u.dtype),c?f.as4D(f.shape[1],f.shape[2],f.shape[3],f.shape[4]):f}}),Lf=zo({slice_:function(e,t,n){var r,o,a=Ro(e,"x","slice");if(0===a.rank)throw new Error("Slicing scalar is not possible");(r="number"==typeof t?[t].concat(new Array(a.rank-1).fill(0)):t.length<a.rank?t.concat(new Array(a.rank-t.length).fill(0)):t.slice()).forEach((function(e){un(-1!==e,(function(){return"slice() does not support negative begin indexing."}))})),o=(o=null==n?new Array(a.rank).fill(-1):"number"==typeof n?[n].concat(new Array(a.rank-1).fill(-1)):n.length<a.rank?n.concat(new Array(a.rank-n.length).fill(-1)):n).map((function(e,t){return e>=0?e:(un(-1===e,(function(){return"Negative size values should be exactly -1 but got "+e+" for the slice() size at index "+t+"."})),a.shape[t]-r[t])})),ni(a,r,o);var i=a.shape,s={begin:r,size:o};return mr.runKernelFunc((function(e){return e.slice(a,r,o)}),{x:a},(function(e){for(var t=[],n=0;n<e.rank;n++)t.push([r[n],i[n]-r[n]-o[n]]);return{x:function(){return e.pad(t)}}}),"Slice",s)}}),zf=zo({slice1d_:function(e,t,n){var r=Ro(e,"x","slice1d");return un(1===r.rank,(function(){return"slice1d expects a rank-1 tensor, but got a rank-"+r.rank+" tensor"})),Lf(r,[t],[n])}}),Hf=zo({slice2d_:function(e,t,n){var r=Ro(e,"x","slice2d");return un(2===r.rank,(function(){return"slice2d expects a rank-2 tensor, but got a rank-"+r.rank+" tensor"})),Lf(r,t,n)}}),Wf=zo({slice3d_:function(e,t,n){var r=Ro(e,"x","slice3d");return un(3===r.rank,(function(){return"slice3d expects a rank-3 tensor, but got a rank-"+r.rank+" tensor"})),Lf(r,t,n)}}),Vf=zo({slice4d_:function(e,t,n){var r=Ro(e,"x","slice4d");return un(4===r.rank,(function(){return"slice4d expects a rank-4 tensor, but got a rank-"+r.rank+" tensor"})),Lf(r,t,n)}});function Uf(e,t,n,r,o){return t.rank<n.rank&&(t=t.reshape(Do(t.shape,r))),e.rank<n.rank&&(e=e.reshape(Do(e.shape,r))),{x:function(){var r=e.mul(n.equal(t).cast(e.dtype));return null==o?r:r.transpose(o)}}}var qf=zo({all_:function(e,t,n){void 0===t&&(t=null),void 0===n&&(n=!1);var r=Ro(e,"x","all","bool"),o=wn(t,r.shape),a=o,i=Mo(a,r.rank);null!=i&&(r=r.transpose(i),a=Bo(a.length,r.rank));var s=mr.runKernelFunc((function(e){return e.all(r,a)}),{$x:r});if(n){var u=Do(s.shape,o);return s.reshape(u)}return s}}),Gf=zo({any_:function(e,t,n){void 0===t&&(t=null),void 0===n&&(n=!1);var r=Ro(e,"x","any","bool"),o=wn(t,r.shape),a=o,i=Mo(a,r.rank);null!=i&&(r=r.transpose(i),a=Bo(a.length,r.rank));var s=mr.runKernelFunc((function(e){return e.any(r,a)}),{$x:r});if(n){var u=Do(s.shape,o);return s.reshape(u)}return s}}),Xf=zo({argMax_:function(e,t){void 0===t&&(t=0);var n=Ro(e,"x","argMax");null==t&&(t=0);var r=wn(t,n.shape),o=Mo(r,n.rank);null!=o&&(n=n.transpose(o),r=Bo(r.length,n.rank));var a={axis:r[0]},i=[n];return mr.runKernelFunc((function(e,t){var o=e.argMax(n,r[0]);return t([n]),o}),{x:n},(function(e,t){var n=t[0];return{x:function(){return na(n)}}}),"ArgMax",a,i)}}),Kf=zo({argMin_:function(e,t){void 0===t&&(t=0);var n=Ro(e,"x","argMin");null==t&&(t=0);var r=wn(t,n.shape),o=Mo(r,n.rank);return null!=o&&(n=n.transpose(o),r=Bo(r.length,n.rank)),mr.runKernelFunc((function(e,t){var o=e.argMin(n,r[0]);return t([n]),o}),{$x:n},(function(e,t){var n=t[0];return{$x:function(){return na(n)}}}))}}),$f=zo({logSumExp_:function(e,t,n){void 0===t&&(t=null),void 0===n&&(n=!1);var r=Ro(e,"x","logSumExp"),o=wn(t,r.shape),a=r.max(o,!0),i=r.sub(a).exp().sum(o).log(),s=a.reshape(i.shape).add(i);if(n){var u=Do(s.shape,o);return s.reshape(u)}return s}}),Yf=zo({max_:function(e,t,n){void 0===t&&(t=null),void 0===n&&(n=!1);var r=Ro(e,"x","max"),o=r,a=wn(t,r.shape),i=a,s=Mo(i,r.rank);null!=s&&(r=r.transpose(s),i=Bo(i.length,r.rank));var u=[r],c=mr.runKernelFunc((function(e,t){var n=e.max(r,i);return t([o,n]),n}),{x:r},(function(e,t){return Uf(e,t[1],t[0],a,s)}),"Max",{axes:i},u,[!0]);if(n){var l=Do(c.shape,a);c=c.reshape(l)}return c}}),Jf=zo({mean_:function(e,t,n){void 0===t&&(t=null),void 0===n&&(n=!1);var r=Ro(e,"x","mean"),o=wn(t,r.shape),a=hn(To(r.shape,o)[1]);return ci((function(e){var r=Go(a);return{value:(r.dtype===e.dtype?e:e.cast(r.dtype)).div(r).sum(t,n),gradFunc:function(t){var n=e.shape.slice();return o.forEach((function(e){n[e]=1})),t.reshape(n).mul(Jo(e.shape,"float32")).div(a)}}}))(r)}}),Zf=zo({min_:function(e,t,n){void 0===t&&(t=null),void 0===n&&(n=!1);var r=Ro(e,"x","min"),o=r,a=wn(t,r.shape),i=a,s=Mo(i,r.rank);null!=s&&(r=r.transpose(s),i=Bo(i.length,r.rank));var u=[r],c=mr.runKernelFunc((function(e,t){var n=e.min(r,i);return t([o,n]),n}),{x:r},(function(e,t){return Uf(e,t[1],t[0],a,s)}),"Min",{axes:i},u,[!0]);if(n){var l=Do(c.shape,a);c=c.reshape(l)}return c}}),Qf=zo({moments_:function(e,t,n){void 0===t&&(t=null),void 0===n&&(n=!1);var r=wn(t,(e=Ro(e,"x","moments")).shape),o=e.mean(r,n),a=o.shape;n||(a=Do(o.shape,r));var i=e.toFloat().sub(o.reshape(a)).square();return{mean:o,variance:i.mean(r,n)}}}),eh=zo({sum_:function(e,t,n){void 0===t&&(t=null),void 0===n&&(n=!1);var r=Ro(e,"x","sum");"bool"===r.dtype&&(r=r.toInt());var o=wn(t,r.shape);return ci((function(e){var t=Mo(o,e.rank),r=o,a=e;null!=t&&(a=e.transpose(t),r=Bo(r.length,e.rank));var i=mr.runKernelFunc((function(e){return e.sum(a,r)}),{permutedX:a});if(n){var s=Do(i.shape,o);i=i.reshape(s)}return{value:i,gradFunc:function(t){var n=e.shape.slice();return o.forEach((function(e){n[e]=1})),t.reshape(n).mul(Jo(e.shape,"float32"))}}}))(r)}}),th=zo({prod_:function(e,t,n){void 0===t&&(t=null),void 0===n&&(n=!1);var r=Ro(e,"x","prod");"bool"===r.dtype&&(r=r.toInt());var o=wn(t,r.shape),a=Mo(o,r.rank),i=o,s=r;null!=a&&(s=r.transpose(a),i=Bo(i.length,r.rank));var u=mr.runKernelFunc((function(e){return e.prod(s,i)}),{permutedX:s});if(n){var c=Do(u.shape,o);u=u.reshape(c)}return u}}),nh=zo({elu_:function(e){var t=Ro(e,"x","elu");return mr.runKernelFunc((function(e,n){var r=e.elu(t);return n([r]),r}),{$x:t},(function(e,t){var n=t[0];return{$x:function(){return mr.runKernelFunc((function(t){return t.eluDer(e,n)}),{dy:e,y:n})}}}))}}),rh=zo({leakyRelu_:function(e,t){void 0===t&&(t=.2);var n=Ro(e,"x","leakyRelu");return Dl(Go(t).mul(n),n)}}),oh=zo({prelu_:function(e,t){var n=Ro(e,"x","prelu"),r=Ro(t,"alpha","prelu");return mr.runKernelFunc((function(e,t){var o=e.prelu(n,r);return t([n,r]),o}),{x:n,alpha:r},(function(e,t){var n=t[0],r=t[1],o=n.greater(0);return{x:function(){return _l(o,e,e.mul(r))},alpha:function(){var t=_l(o,na(e),e.mul(n)),a=mi(r.shape,e.shape);return a.length>0&&(t=t.sum(a)),t.reshape(r.shape)}}}),"Prelu")}}),ah=zo({relu_:function(e){var t=Ro(e,"x","relu");return"bool"===t.dtype?t.toInt():mr.runKernelFunc((function(e,n){var r=e.relu(t);return n([t]),r}),{x:t},(function(e,t){var n=t[0];return{x:function(){return e.mulStrict(n.step().toFloat())}}}),"Relu")}}),ih=zo({relu6_:function(e){var t=Ro(e,"x","relu6");return"bool"===t.dtype?t.toInt():mr.runKernelFunc((function(e,n){var r=e.relu6(t);return n([t]),r}),{x:t},(function(e,t){var n=t[0],r=n.lessEqual(6).mul(n.step());return{x:function(){return e.mulStrict(r.toFloat())}}}),"Relu6")}}),sh=zo({selu_:function(e){var t=Ro(e,"x","selu");return mr.runKernelFunc((function(e,n){var r=e.selu(t);return n([t]),r}),{$x:t},(function(e,t){var n=t[0];return{$x:function(){var t=n.greater(Go(0)),r=Go(nc),o=Go(rc),a=e.mul(o),i=e.mul(r).mul(n.toFloat().exp());return _l(t,a,i)}}}))}}),uh=zo({transpose_:function(e,t){var n=Ro(e,"x","transpose");if(null==t&&(t=n.shape.map((function(e,t){return t})).reverse()),un(n.rank===t.length,(function(){return"Error in transpose: rank of input "+n.rank+" must match length of perm "+t+"."})),t.forEach((function(e){un(e>=0&&e<n.rank,(function(){return"All entries in 'perm' must be between 0 and "+(n.rank-1)+" but got "+t}))})),n.rank<=1)return n.clone();var r={perm:t};return mr.runKernelFunc((function(e){return e.transpose(n,t)}),{x:n},(function(e){var n=Fo(t);return{x:function(){return e.transpose(n)}}}),"Transpose",r)}}),ch=zo({localResponseNormalization_:function(e,t,n,r,o){void 0===t&&(t=5),void 0===n&&(n=1),void 0===r&&(r=1),void 0===o&&(o=.5);var a=Ro(e,"x","localResponseNormalization");un(4===a.rank||3===a.rank,(function(){return"Error in localResponseNormalization: x must be rank 3 or 4 but got\n rank "+a.rank+"."})),un(dn(t),(function(){return"Error in localResponseNormalization: depthRadius must be an integer but got depthRadius "+t+"."}));var i=a,s=!1;3===a.rank&&(s=!0,i=a.as4D(1,a.shape[0],a.shape[1],a.shape[2]));var u=mr.runKernelFunc((function(e,a){var s=e.localResponseNormalization4D(i,t,n,r,o);return a([i,s]),s}),{x4D:i},(function(e,a){var i=a[0],s=a[1];return{x4D:function(){return mr.runKernelFunc((function(a){return a.LRNGrad(e,i,s,t,n,r,o)}),{})}}}));return s?u.as3D(u.shape[1],u.shape[2],u.shape[3]):u}}),lh=zo({norm_:function(e,t,n,r){void 0===t&&(t="euclidean"),void 0===n&&(n=null),void 0===r&&(r=!1);var o=function e(t,n,r){if(void 0===r&&(r=null),0===t.rank)return t.abs();if(1!==t.rank&&null===r)return e(t.reshape([-1]),n,r);if(1===t.rank||"number"==typeof r||Array.isArray(r)&&1===r.length){if(1===n)return t.abs().sum(r);if(n===1/0)return t.abs().max(r);if(n===-1/0)return t.abs().min(r);if("euclidean"===n||2===n)return t.abs().pow(Go(2,"int32")).sum(r).sqrt();throw new Error("Error in norm: invalid ord value: "+n)}if(Array.isArray(r)&&2===r.length){if(1===n)return t.abs().sum(r[0]).max(r[1]-1);if(n===1/0)return t.abs().sum(r[1]).max(r[0]);if(n===-1/0)return t.abs().sum(r[1]).min(r[0]);if("fro"===n||"euclidean"===n)return t.square().sum(r).sqrt();throw new Error("Error in norm: invalid ord value: "+n)}throw new Error("Error in norm: invalid axis: "+r)}(e=Ro(e,"x","norm"),t,n),a=o.shape;if(r){var i=wn(n,e.shape);a=Do(o.shape,i)}return o.reshape(a)}}),fh=zo({basicLSTMCell_:function(e,t,n,r,o,a){var i=Ro(e,"forgetBias","basicLSTMCell"),s=Ro(t,"lstmKernel","basicLSTMCell"),u=Ro(n,"lstmBias","basicLSTMCell"),c=Ro(r,"data","basicLSTMCell"),l=Ro(o,"c","basicLSTMCell"),f=Ro(a,"h","basicLSTMCell"),h=c.concat(f,1).matMul(s).add(u),p=h.shape[0],d=h.shape[1]/4,v=[p,d],m=h.slice([0,0],v),g=h.slice([0,d],v),y=h.slice([0,2*d],v),b=h.slice([0,3*d],v),w=m.sigmoid().mulStrict(g.tanh()).addStrict(l.mulStrict(i.add(y).sigmoid())),x=w.tanh().mulStrict(b.sigmoid());return[w,x]}}),hh=zo({multiRNNCell_:function(e,t,n,r){for(var o=Ro(t,"data","multiRNNCell"),a=So(n,"c","multiRNNCell"),i=So(r,"h","multiRNNCell"),s=o,u=[],c=0;c<e.length;c++){var l=e[c](s,a[c],i[c]);u.push(l[0]),u.push(l[1]),s=l[1]}var f=[],h=[];for(c=0;c<u.length;c+=2)f.push(u[c]),h.push(u[c+1]);return[f,h]}}),ph=zo({movingAverage_:function(e,t,n,r,o){void 0===o&&(o=!0);var a=Ro(e,"v","movingAverage"),i=Ro(t,"x","movingAverage"),s=Ro(n,"decay","movingAverage");fr(a,i),un(pn(a.shape,i.shape),(function(){return"Shape mismatch in v and x"}));var u=Go(1),c=u.sub(s),l=i.sub(a).mul(c);if(o){un(null!=r,(function(){return"When using zeroDebias: true, step is required."}));var f=Ro(r,"step","movingAverage");l=l.div(u.sub(Hl(s,f)))}return a.add(l)}}),dh=zo({stridedSlice_:function(e,t,n,r,o,a,i,s,u){if(void 0===o&&(o=0),void 0===a&&(a=0),void 0===i&&(i=0),void 0===s&&(s=0),void 0===u&&(u=0),null==r&&(r=new Array(t.length)),0!==i)throw new Error("ellipsis mask is not yet supported");var c=Ro(e,"x","stridedSlice"),l=ri(s),f=c.shape.slice();l.forEach((function(e){t[e]=0,n[e]=1,f.splice(e,0,1)})),c=c.reshape(f);for(var h=0;h<c.rank;h++)t[h]=ai(o,t,r,c.shape,h),n[h]=ii(a,n,r,c.shape,h),r[h]=r[h]||1;var p=ri(u);p.forEach((function(e){n[e]=t[e]+1,r[e]=1}));var d=oi(t,n,r),v=d.filter((function(e,t){return-1===p.indexOf(t)}));return r.every((function(e){return 1===e}))?Lf(c,t,d).reshape(v):mr.runKernelFunc((function(e){return e.stridedSlice(c,t,n,r)}),{$x:c}).reshape(v)}}),vh=zo({topk_:function(e,t,n){void 0===t&&(t=1),void 0===n&&(n=!0);var r=Ro(e,"x","topk");if(0===r.rank)throw new Error("topk() expects the input to be of rank 1 or higher");var o=r.shape[r.shape.length-1];if(t>o)throw new Error("'k' passed to topk() must be <= the last dimension ("+o+") but got "+t);var a=mr.runKernelFunc((function(e){return e.topk(r,t,n)}),{$x:r});return{values:a[0],indices:a[1]}}}),mh=zo({scatterND_:function(e,t,n){var r=Ro(e,"indices","scatterND","int32"),o=Ro(t,"updates","scatterND");return function(e,t,n){if(t.rank<1)throw new Error("tf.scatterND() expects the indices to be rank 1 or higher, but the rank was "+t.rank+".");if(e.rank<1)throw new Error("tf.scatterND() expects the updates to be rank 1 or higher, but the rank was "+e.rank+".");if("int32"!==t.dtype)throw new Error("The dtype of 'indices' should be int32, but got dtype: "+t.dtype);if(n.length<1)throw new Error("Output rank must be greater or equal to 1, but got shape: "+n);if(0===n.length){if(0===t.size)throw new Error("Indices specified for empty output. indices shape: "+t.shape);if(0===e.size)throw new Error("Updates specified for empty output. updates shape: "+e.shape)}!function(e,t,n){var r=t.rank>1?t.shape[t.rank-1]:1,o=t.rank>1?t.rank-1:1,a="Must have updates.shape = indices.shape[:batchDim] + shape[sliceDim:], got updates.shape: "+n.shape+", indices.shape: "+t.shape+", shape: "+e+", sliceDim: "+r+", and batchDim: "+o+".";if(n.rank<o)throw new Error(a+" update.rank < "+o+". ");if(e.length<r+(n.rank-o))throw new Error(a+" Output shape length < "+(r+(n.rank-o)));if(n.rank!==o+e.length-r)throw new Error(a+" update.rank != "+(o+e.length-r));for(var i=0;i<o;++i)if(n.shape[i]!==t.shape[i])throw new Error(a+" updates.shape["+i+"] ("+n.shape[i]+") != indices.shape["+i+"] ("+t.shape[i]+").");for(i=0;i<n.rank-o;++i)if(n.shape[i+o]!==e[i+r])throw new Error(a+" updates.shape["+(i+o)+"] ("+n.shape[i+o]+") != shape["+(i+o)+"] ("+e[i+o]+")")}(n,t,e)}(o,r,n),mr.runKernelFunc((function(e){return e.scatterND(r,o,n)}),{$indices:r,$updates:o})}}),gh=zo({fft_:function(e){un("complex64"===e.dtype,(function(){return"The dtype for tf.spectral.fft() must be complex64 but got "+e.dtype+"."}));var t=e.shape[e.shape.length-1],n=e.size/t,r=e.as2D(n,t);return mr.runKernelFunc((function(e){return e.fft(r)}),{input:e}).reshape(e.shape)}}),yh=zo({ifft_:function(e){un("complex64"===e.dtype,(function(){return"The dtype for tf.spectral.ifft() must be complex64 but got "+e.dtype+"."}));var t=e.shape[e.shape.length-1],n=e.size/t,r=e.as2D(n,t);return mr.runKernelFunc((function(e){return e.ifft(r)}),{input:e}).reshape(e.shape)}}),bh=zo({rfft_:function(e,t){un("float32"===e.dtype,(function(){return"The dtype for rfft() must be real value but got "+e.dtype}));var n,r=e.shape[e.shape.length-1],o=e.size/r;if(null!=t&&t<r){var a=e.shape.map((function(e){return 0})),i=e.shape.map((function(e){return e}));i[e.shape.length-1]=t,n=e.slice(a,i),r=t}else if(null!=t&&t>r){var s=e.shape.map((function(e){return e}));s[e.shape.length-1]=t-r,n=e.concat(Zo(s),e.shape.length-1),r=t}else n=e;var u=n.zerosLike(),c=Ho(n,u).as2D(o,r),l=gh(c),f=Math.floor(r/2)+1,h=Wo(l),p=Vo(l),d=h.split([f,r-f],h.shape.length-1),v=p.split([f,r-f],p.shape.length-1),m=n.shape.slice();return m[n.shape.length-1]=f,Ho(d[0],v[0]).reshape(m)}}),wh=zo({irfft_:function(e){var t=e.shape[e.shape.length-1],n=e.size/t;if(t<=2){var r=e.as2D(n,t),o=yh(r);return Wo(o)}var a=[n,2*(t-1)],i=Wo(e).as2D(n,t),s=Vo(e).as2D(n,t),u=i.slice([0,1],[n,t-2]).reverse(1),c=s.slice([0,1],[n,t-2]).reverse(1).mul(Go(-1)),l=i.concat(u,1),f=s.concat(c,1);return r=Ho(l,f).as2D(a[0],a[1]),o=yh(r),Wo(o)}}),xh=Object.freeze({fft:gh,ifft:yh,rfft:bh,irfft:wh}),Eh=zo({sparseToDense_:function(e,t,n,r){void 0===r&&(r=0);var o=Ro(e,"sparseIndices","sparseToDense","int32"),a=Ro(t,"sparseValues","sparseToDense"),i=Ro(r,"defaultValue","sparseToDense",a.dtype);return function(e,t,n,r){if("int32"!==e.dtype)throw new Error("tf.sparseToDense() expects the indices to be int32 type, but the dtype was "+e.dtype+".");if(e.rank>2)throw new Error("sparseIndices should be a scalar, vector, or matrix, but got shape "+e.shape+".");var o=e.rank>0?e.shape[0]:1,a=e.rank>1?e.shape[1]:1;if(n.length!==a)throw new Error("outputShape has incorrect number of elements:, "+n.length+", should be: "+a+".");var i=t.size;if(0!==t.rank&&(1!==t.rank||i!==o))throw new Error("sparseValues has incorrect shape "+t.shape+", should be [] or ["+o+"]");if(t.dtype!==r.dtype)throw new Error("sparseValues.dtype must match defaultValues.dtype")}(o,a,n,i),mr.runKernelFunc((function(e){return e.sparseToDense(o,a,n,i)}),{$sparseIndices:o,$sparseValues:a,$defaultValue:i})}}),_h=zo({gatherND_:function(e,t){var n=Ro(t,"indices","gatherND","int32"),r=Ro(e,"x","gatherND");return mr.runKernelFunc((function(e){return e.gatherND(r,n)}),{$x:r,$indices:n})}}),kh=zo({diag_:function(e){var t=Ro(e,"x","diag").flatten(),n=e.shape.concat(e.shape);return mr.runKernelFunc((function(e){return e.diag(t)}),{$x:t}).reshape(n)}}),Oh=zo({dropout_:function(e,t,n,r){var o=Ro(e,"x","dropout");if(un("float32"===o.dtype,(function(){return"x has to be a floating point tensor since it's going to be scaled, but got a "+o.dtype+" tensor instead."})),un(t>=0&&t<1,(function(){return"rate must be a float in the range [0, 1), but got "+t+"."})),0===t)return e instanceof er?o.clone():o;var a=function(e,t){if(null==t)return e.shape.slice();if(pn(e.shape,t))return t;if(e.shape.length===t.length){for(var n=[],r=0;r<e.shape.length;r++)null==t[r]&&null!=e.shape[r]?n.push(e.shape[r]):n.push(t[r]);return n}return t}(o,n),i=1-t,s=za(a,0,1,"float32",r).add(i).floor().div(i);return o.mul(s)}});function Ch(e,t,n){for(var r=1-e%2,o=new Float32Array(e),a=0;a<e;++a){var i=2*Math.PI*a/(e+r-1);o[a]=t-n*Math.cos(i)}return Xo(o,"float32")}var Ih,Rh=zo({hannWindow_:function(e){return Ch(e,.5,.5)}}),Sh=zo({hammingWindow_:function(e){return Ch(e,.54,.46)}}),Ah=zo({frame_:function(e,t,n,r,o){void 0===r&&(r=!1),void 0===o&&(o=0);for(var a=0,i=[];a+t<=e.size;)i.push(Lf(e,a,t)),a+=n;if(r)for(;a<e.size;){var s=a+t-e.size,u=ra([Lf(e,a,t-s),Qo([s],o)]);i.push(u),a+=n}return 0===i.length?Ko([],[0,t]):ra(i).as2D(i.length,t)}}),Ph=zo({stft_:function(e,t,n,r,o){var a;void 0===o&&(o=Rh),null==r&&(a=t,r=Math.floor(Math.pow(2,Math.ceil(Math.log(a)/Math.log(2)))));for(var i=Ah(e,t,n),s=Ll(i,o(t)),u=[],c=0;c<i.shape[0];c++)u.push(bh(s.slice([c,0],[1,t]),r));return ra(u)}}),Th=Object.freeze({hannWindow:Rh,hammingWindow:Sh,frame:Ah,stft:Ph});!function(e){e[e.NONE=0]="NONE",e[e.MEAN=1]="MEAN",e[e.SUM=2]="SUM",e[e.SUM_BY_NONZERO_WEIGHTS=3]="SUM_BY_NONZERO_WEIGHTS"}(Ih||(Ih={}));var Dh=zo({absoluteDifference_:function(e,t,n,r){void 0===r&&(r=Ih.SUM_BY_NONZERO_WEIGHTS);var o=Ro(e,"labels","absoluteDifference"),a=Ro(t,"predictions","absoluteDifference"),i=null;null!=n&&(i=Ro(n,"weights","absoluteDifference")),cn(o.shape,a.shape,"Error in absoluteDifference: ");var s=o.sub(a).abs();return Nh(s,i,r)}}),Nh=zo({computeWeightedLoss_:function(e,t,n){void 0===n&&(n=Ih.SUM_BY_NONZERO_WEIGHTS);var r=Ro(e,"losses","computeWeightedLoss"),o=null;null!=t&&(o=Ro(t,"weights","computeWeightedLoss"));var a=null==o?r:r.mul(o);if(n===Ih.NONE)return a;if(n===Ih.SUM)return a.sum();if(n===Ih.MEAN){if(null==o)return a.mean();var i=r.size/o.size,s=a.sum().div(o.sum());return i>1?s.div(Go(i)):s}if(n===Ih.SUM_BY_NONZERO_WEIGHTS){if(null==o)return a.sum().div(Go(r.size));var u=o.mul(Jo(r.shape)).notEqual(Go(0)).sum().toFloat();return a.sum().div(u)}throw Error("Unknown reduction: "+n)}}),Mh=zo({cosineDistance_:function(e,t,n,r,o){void 0===o&&(o=Ih.SUM_BY_NONZERO_WEIGHTS);var a=Ro(e,"labels","cosineDistance"),i=Ro(t,"predictions","cosineDistance"),s=null;null!=r&&(s=Ro(r,"weights","cosineDistance")),cn(a.shape,i.shape,"Error in cosineDistance: ");var u=Go(1).sub(a.mul(i).sum(n,!0));return Nh(u,s,o)}}),Fh=zo({hingeLoss_:function(e,t,n,r){void 0===r&&(r=Ih.SUM_BY_NONZERO_WEIGHTS);var o=Ro(e,"labels","hingeLoss"),a=Ro(t,"predictions","hingeLoss"),i=null;null!=n&&(i=Ro(n,"weights","hingeLoss")),cn(o.shape,a.shape,"Error in hingeLoss: ");var s=Go(1);o=Go(2).mul(o).sub(s);var u=s.sub(o.mul(a)).relu();return Nh(u,i,r)}}),Bh=zo({huberLoss_:function(e,t,n,r,o){void 0===r&&(r=1),void 0===o&&(o=Ih.SUM_BY_NONZERO_WEIGHTS);var a=Ro(e,"labels","huberLoss"),i=Ro(t,"predictions","huberLoss"),s=null;null!=n&&(s=Ro(n,"weights","huberLoss")),cn(a.shape,i.shape,"Error in huberLoss: ");var u=Go(r),c=i.sub(a).abs(),l=Ml(c,u),f=c.sub(l),h=Go(.5).mul(l.square()).add(u.mul(f));return Nh(h,s,o)}}),jh=zo({logLoss_:function(e,t,n,r,o){void 0===r&&(r=1e-7),void 0===o&&(o=Ih.SUM_BY_NONZERO_WEIGHTS);var a=Ro(e,"labels","logLoss"),i=Ro(t,"predictions","logLoss"),s=null;null!=n&&(s=Ro(n,"weights","logLoss")),cn(a.shape,i.shape,"Error in logLoss: ");var u=Go(1),c=Go(r),l=a.mul(i.add(c).log()).neg().sub(u.sub(a).mul(u.sub(i).add(c).log()));return Nh(l,s,o)}}),Lh=zo({meanSquaredError_:function(e,t,n,r){void 0===r&&(r=Ih.SUM_BY_NONZERO_WEIGHTS);var o=Ro(e,"labels","meanSquaredError"),a=Ro(t,"predictions","meanSquaredError"),i=null;null!=n&&(i=Ro(n,"weights","meanSquaredError")),cn(o.shape,a.shape,"Error in meanSquaredError: ");var s=o.squaredDifference(a);return Nh(s,i,r)}}),zh=zo({sigmoidCrossEntropy_:function(e,t,n,r,o){void 0===r&&(r=0),void 0===o&&(o=Ih.SUM_BY_NONZERO_WEIGHTS);var a=Ro(e,"multiClassLabels","sigmoidCrossEntropy"),i=Ro(t,"logits","sigmoidCrossEntropy"),s=null;if(null!=n&&(s=Ro(n,"weights","sigmoidCrossEntropy")),cn(a.shape,i.shape,"Error in sigmoidCrossEntropy: "),r>0){var u=Go(r),c=Go(1),l=Go(.5);a=a.mul(c.sub(u)).add(l.mul(u))}var f=function(e,t){var n=Ro(e,"labels","sigmoidCrossEntropyWithLogits"),r=Ro(t,"logits","sigmoidCrossEntropyWithLogits");cn(n.shape,r.shape,"Error in sigmoidCrossEntropyWithLogits: ");var o=r.relu(),a=r.mul(n),i=r.abs().neg().exp().log1p();return o.sub(a).add(i)}(a,i);return Nh(f,s,o)}}),Hh=zo({softmaxCrossEntropy_:function(e,t,n,r,o){void 0===r&&(r=0),void 0===o&&(o=Ih.SUM_BY_NONZERO_WEIGHTS);var a=Ro(e,"onehotLabels","softmaxCrossEntropy"),i=Ro(t,"logits","softmaxCrossEntropy"),s=null;if(null!=n&&(s=Ro(n,"weights","softmaxCrossEntropy")),cn(a.shape,i.shape,"Error in softmaxCrossEntropy: "),r>0){var u=Go(r),c=Go(1),l=Go(a.shape[1]);a=a.mul(c.sub(u)).add(u.div(l))}var f=function(e,t,n){if(void 0===n&&(n=-1),-1===n&&(n=t.rank-1),n!==t.rank-1)throw Error("Softmax cross entropy along a non-last dimension is not yet supported. Labels / logits was rank "+t.rank+" and dim was "+n);return ci((function(e,t,r){var o=t.logSumExp([n],!0),a=t.toFloat().sub(o);return r([e,a]),{value:a.mul(e).neg().sum([n]),gradFunc:function(e,t){var r=t[0],o=t[1],a=Do(e.shape,[n]);return[e.reshape(a).mul(r.toFloat().sub(o.exp())),e.reshape(a).mul(o.exp().sub(r.toFloat()))]}}}))(e,t)}(a,i);return Nh(f,s,o)}}),Wh=Object.freeze({get Reduction(){return Ih},absoluteDifference:Dh,computeWeightedLoss:Nh,cosineDistance:Mh,hingeLoss:Fh,huberLoss:Bh,logLoss:jh,meanSquaredError:Lh,sigmoidCrossEntropy:zh,softmaxCrossEntropy:Hh});function Vh(e,t){return void 0===t&&(t=!1),mr.tidy((function(){if(2!==e.shape.length)throw new Error("qr2d() requires a 2D Tensor, but got a "+e.shape.length+"D Tensor.");for(var n=e.shape[0],r=e.shape[1],o=Sa(n),a=e.clone(),i=Ko([[1]],[1,1]),s=i.clone(),u=n>=r?r:n,c=function(e){var t,u=a,c=s,l=o;t=mr.tidy((function(){var t=a.slice([e,e],[n-e,1]),u=t.norm(),c=a.slice([e,e],[1,1]),l=Ko([[-1]]).where(c.greater(0),Ko([[1]])),f=c.sub(l.mul(u)),h=t.div(f);s=1===h.shape[0]?i.clone():i.concat(h.slice([1,0],[h.shape[0]-1,h.shape[1]]),0);var p=l.matMul(f).div(u).neg(),d=a.slice([e,0],[n-e,r]),v=p.mul(s);if(0===e)a=d.sub(v.matMul(s.transpose().matMul(d)));else{var m=d.sub(v.matMul(s.transpose().matMul(d)));a=a.slice([0,0],[e,r]).concat(m,0)}var g=o.slice([0,e],[n,o.shape[1]-e]);if(0===e)o=g.sub(g.matMul(s).matMul(v.transpose()));else{var y=g.sub(g.matMul(s).matMul(v.transpose()));o=o.slice([0,0],[n,e]).concat(y,1)}return[s,a,o]})),s=t[0],a=t[1],o=t[2],ko([u,c,l])},l=0;l<u;++l)c(l);return!t&&n>r&&(o=o.slice([0,0],[n,r]),a=a.slice([0,0],[r,r])),[o,a]}))}var Uh=zo({bandPart_:function(e,t,n){if(t%1!=0)throw new Error("bandPart(): numLower must be an integer, got "+t+".");if(n%1!=0)throw new Error("bandPart(): numUpper must be an integer, got "+n+".");var r=Ro(e,"a","bandPart");if(r.rank<2)throw new Error("bandPart(): Rank must be at least 2, got "+r.rank+".");var o=r.shape,a=r.shape.slice(-2),i=a[0],s=a[1];if(!(t<=i))throw new Error("bandPart(): numLower ("+t+") must not be greater than the number of rows ("+i+").");if(!(n<=s))throw new Error("bandPart(): numUpper ("+n+") must not be greater than the number of columns ("+s+").");t<0&&(t=i),n<0&&(n=s);var u=ea(0,i,1,"int32").reshape([-1,1]),c=ea(0,s,1,"int32"),l=ql(u,c),f=bl(l.lessEqual(Go(+t,"int32")),l.greaterEqual(Go(-n,"int32"))),h=Zo([i,s],r.dtype);return Ua(Xa(r.reshape([-1,i,s])).map((function(e){return _l(f,e,h)}))).reshape(o)}}),qh=zo({gramSchmidt_:function(e){var t;if(Array.isArray(e)){t=!1,un(null!=e&&e.length>0,(function(){return"Gram-Schmidt process: input must not be null, undefined, or empty"}));for(var n=e[0].shape[0],r=function(t){un(e[t].shape[0]===n,(function(){return"Gram-Schmidt: Non-unique lengths found in the input vectors: ("+e[t].shape[0]+" vs. "+n+")"}))},o=1;o<e.length;++o)r(o)}else t=!0,e=ua(e,e.shape[0],0).map((function(e){return Va(e,[0])}));un(e.length<=e[0].shape[0],(function(){return"Gram-Schmidt: Number of vectors ("+e.length+") exceeds number of dimensions ("+e[0].shape[0]+")."}));var a=[],i=e,s=function(e){a.push(mr.tidy((function(){var t=i[e];if(e>0)for(var n=0;n<e;++n){var r=eh(a[n].mulStrict(t)).mul(a[n]);t=t.sub(r)}return t.div(lh(t,"euclidean"))})))};for(o=0;o<e.length;++o)s(o);return t?Ua(a,0):a}}),Gh=zo({qr_:function(e,t){if(void 0===t&&(t=!1),e.rank<2)throw new Error("qr() requires input tensor to have a rank >= 2, but got rank "+e.rank);if(2===e.rank)return Vh(e,t);var n=e.shape.slice(0,e.shape.length-2).reduce((function(e,t){return e*t})),r=Xa(e.reshape([n,e.shape[e.shape.length-2],e.shape[e.shape.length-1]]),0),o=[],a=[];return r.forEach((function(e){var n=Vh(e,t),r=n[0],i=n[1];o.push(r),a.push(i)})),[Ua(o,0).reshape(e.shape),Ua(a,0).reshape(e.shape)]}}),Xh=Object.freeze({bandPart:Uh,gramSchmidt:qh,qr:Gh});function Kh(e,t,n,r,o){null==r&&(r=.5),null==o&&(o=Number.NEGATIVE_INFINITY);var a=e.shape[0];return n=Math.min(n,a),un(0<=r&&r<=1,(function(){return"iouThreshold must be in [0, 1], but was '"+r+"'"})),un(2===e.rank,(function(){return"boxes must be a 2D tensor, but was of rank '"+e.rank+"'"})),un(4===e.shape[1],(function(){return"boxes must have 4 columns, but 2nd dimension was "+e.shape[1]})),un(1===t.rank,(function(){return"scores must be a 1D tensor"})),un(t.shape[0]===a,(function(){return"scores has incompatible shape with boxes. Expected "+a+", but was "+t.shape[0]})),{maxOutputSize:n,iouThreshold:r,scoreThreshold:o}}var $h=zo({resizeBilinear_:function(e,t,n){void 0===n&&(n=!1);var r=Ro(e,"images","resizeBilinear");un(3===r.rank||4===r.rank,(function(){return"Error in resizeBilinear: x must be rank 3 or 4, but got rank "+r.rank+"."})),un(2===t.length,(function(){return"Error in resizeBilinear: new shape must 2D, but got shape "+t+"."}));var o=r,a=!1;3===r.rank&&(a=!0,o=r.as4D(1,r.shape[0],r.shape[1],r.shape[2]));var i=t[0],s=t[1],u=mr.runKernelFunc((function(e,t){return t([o]),e.resizeBilinear(o,i,s,n)}),{x:o},(function(e,t){return{x:function(){return mr.runKernelFunc((function(r){return r.resizeBilinearBackprop(e,t[0],n)}),{})}}}),"ResizeBilinear",{alignCorners:n,newHeight:i,newWidth:s});return a?u.as3D(u.shape[1],u.shape[2],u.shape[3]):u}}),Yh=zo({resizeNearestNeighbor_:function(e,t,n){void 0===n&&(n=!1);var r=Ro(e,"images","resizeNearestNeighbor");un(3===r.rank||4===r.rank,(function(){return"Error in resizeNearestNeighbor: x must be rank 3 or 4, but got rank "+r.rank+"."})),un(2===t.length,(function(){return"Error in resizeNearestNeighbor: new shape must 2D, but got shape "+t+"."})),un("float32"===r.dtype||"int32"===r.dtype,(function(){return"`images` must have `int32` or `float32` as dtype"}));var o=r,a=!1;3===r.rank&&(a=!0,o=r.as4D(1,r.shape[0],r.shape[1],r.shape[2]));var i=t[0],s=t[1],u=mr.runKernelFunc((function(e,t){return t([o]),e.resizeNearestNeighbor(o,i,s,n)}),{batchImages:o},(function(e,t){return{batchImages:function(){return mr.runKernelFunc((function(r){return r.resizeNearestNeighborBackprop(e,t[0],n)}),{})}}}));return a?u.as3D(u.shape[1],u.shape[2],u.shape[3]):u}}),Jh=zo({nonMaxSuppression_:function(e,t,n,r,o){void 0===r&&(r=.5),void 0===o&&(o=Number.NEGATIVE_INFINITY);var a=Ro(e,"boxes","nonMaxSuppression"),i=Ro(t,"scores","nonMaxSuppression"),s=Kh(a,i,n,r,o);n=s.maxOutputSize,r=s.iouThreshold,o=s.scoreThreshold;var u={maxOutputSize:n,iouThreshold:r,scoreThreshold:o};return mr.runKernelFunc((function(e){return e.nonMaxSuppression(a,i,n,r,o)}),{boxes:a,scores:i},null,"NonMaxSuppressionV3",u)}}),Zh=zo({cropAndResize_:function(e,t,n,r,o,a){var i=Ro(e,"image","cropAndResize"),s=Ro(t,"boxes","cropAndResize","float32"),u=Ro(n,"boxInd","cropAndResize","int32");o=o||"bilinear",a=a||0;var c=s.shape[0];return un(4===i.rank,(function(){return"Error in cropAndResize: image must be rank 4,but got rank "+i.rank+"."})),un(2===s.rank&&4===s.shape[1],(function(){return"Error in cropAndResize: boxes must be have size ["+c+",4] but had shape "+s.shape+"."})),un(1===u.rank&&u.shape[0]===c,(function(){return"Error in cropAndResize: boxInd must be have size ["+c+"] but had shape "+s.shape+"."})),un(2===r.length,(function(){return"Error in cropAndResize: cropSize must be of length 2, but got length "+r.length+"."})),un(r[0]>=1&&r[1]>=1,(function(){return"cropSize must be atleast [1,1], but was "+r})),un("bilinear"===o||"nearest"===o,(function(){return"method must be bilinear or nearest, but was "+o})),mr.runKernelFunc((function(e,t){return e.cropAndResize(i,s,u,r,o,a)}),{images:i,boxes:s,boxInd:u},null,"CropAndResize",{method:o,extrapolationValue:a,cropSize:r})}}),Qh=Object.freeze({resizeBilinear:$h,resizeNearestNeighbor:Yh,nonMaxSuppression:Jh,nonMaxSuppressionAsync:function(e,t,n,r,o){return void 0===r&&(r=.5),void 0===o&&(o=Number.NEGATIVE_INFINITY),Xt(this,void 0,void 0,(function(){var a,i,s,u,c,l,f;return Kt(this,(function(h){switch(h.label){case 0:return a=Ro(e,"boxes","nonMaxSuppressionAsync"),i=Ro(t,"scores","nonMaxSuppressionAsync"),s=Kh(a,i,n,r,o),n=s.maxOutputSize,r=s.iouThreshold,o=s.scoreThreshold,[4,Promise.all([a.data(),i.data()])];case 1:return u=h.sent(),c=u[0],l=u[1],f=Bi(c,l,n,r,o),a!==e&&a.dispose(),i!==t&&i.dispose(),[2,f]}}))}))},cropAndResize:Zh}),ep=function(e,t){return!(e>0)||"linear"===t},tp=function(e,t,n){if(null==n||"linear"===n)return e;if("relu"===n)return e.mul(t.step());throw new Error("Gradient for activation "+n+" has not been implemented yet.")},np=function(e,t){var n=t,r=mi(e.shape,t.shape);return r.length>0&&(n=n.sum(r)),n.reshape(e.shape)},rp=function(e,t,n){if("linear"===t)return e;if("relu"===t)return ah(e);if("elu"===t)return nh(e);if("relu6"===t)return ih(e);if("prelu"===t)return oh(e,n);throw new Error("Unknown fused activation "+t+".")},op=zo({fusedMatMul_:function(e){var t,n=e.a,r=e.b,o=e.transposeA,a=void 0!==o&&o,i=e.transposeB,s=void 0!==i&&i,u=e.bias,c=e.activation,l=void 0===c?"linear":c,f=e.preluActivationWeights;if(!1===ep(mr.state.gradientDepth,l)){var h=kf(n,r,a,s);return null!=u&&(h=Ol(h,u)),rp(h,l,f)}var p=Ro(n,"a","fused matMul"),d=Ro(r,"b","fused matMul");t=lr(p,d),p=t[0],d=t[1];var v=a?p.shape[p.rank-2]:p.shape[p.rank-1],m=s?d.shape[d.rank-1]:d.shape[d.rank-2],g=a?p.shape[p.rank-1]:p.shape[p.rank-2],y=s?d.shape[d.rank-2]:d.shape[d.rank-1],b=p.shape.slice(0,-2),w=d.shape.slice(0,-2),x=hn(b),E=hn(w);un(p.rank>=2&&d.rank>=2&&p.rank===d.rank,(function(){return"Error in fused matMul: inputs must have the same rank of at least 2, got ranks "+p.rank+" and "+d.rank+"."})),un(pn(b,w),(function(){return"Error in fused matMul: outer dimensions ("+b+") and ("+w+") of Tensors with shapes "+p.shape+" and "+d.shape+" must match."})),un(v===m,(function(){return"Error in fused matMul: inner shapes ("+v+") and ("+m+") of Tensors with shapes "+p.shape+" and "+d.shape+" and transposeA="+a+" and transposeB="+s+" must match."}));var _,k,O=p.shape.slice(0,-2).concat([g,y]),C=a?p.as3D(x,v,g):p.as3D(x,g,v),I=s?d.as3D(E,y,m):d.as3D(E,m,y);null!=u&&gi(O,(_=lr(_=Ro(u,"bias","fused matMul"),p)[0]).shape),null!=f&&(k=Ro(f,"prelu weights","fused matMul"));var R={$a:C,$b:I};return null!=u&&(R.$bias=_),null!=f&&(R.$preluActivationWeights=k),mr.runKernelFunc((function(e,t){var n=e.fusedBatchMatMul({a:C,b:I,transposeA:a,transposeB:s,bias:_,activation:l,preluActivationWeights:k});return t([C,I,n]),n}),R,(function(e,t){var n=t[0],r=t[1],o=t[2],i=tp(e,o,l),c={};return null!=u&&(c={$bias:function(){return np(_,i)}}),a||s?!a&&s?Object.assign({$a:function(){return i.matMul(r,!1,!1)},$b:function(){return i.matMul(n,!0,!1)}},c):a&&!s?Object.assign({$a:function(){return r.matMul(i,!1,!0)},$b:function(){return n.matMul(i,!1,!1)}},c):Object.assign({$a:function(){return r.matMul(i,!0,!0)},$b:function(){return i.matMul(n,!0,!0)}},c):Object.assign({$a:function(){return i.matMul(r,!1,!0)},$b:function(){return n.matMul(i,!0,!1)}},c)})).reshape(O)}}),ap=zo({fusedConv2d_:function(e){var t=e.x,n=e.filter,r=e.strides,o=e.pad,a=e.dataFormat,i=void 0===a?"NHWC":a,s=e.dilations,u=void 0===s?[1,1]:s,c=e.dimRoundingMode,l=e.bias,f=e.activation,h=void 0===f?"linear":f,p=e.preluActivationWeights;if(h=h||"linear",!1===ep(mr.state.gradientDepth,h)){var d=df(t,n,r,o,i,u,c);return null!=l&&(d=Ol(d,l)),rp(d,h,p)}var v=Ro(t,"x","conv2d"),m=Ro(n,"filter","conv2d"),g=v,y=!1;3===v.rank&&(y=!0,g=v.as4D(1,v.shape[0],v.shape[1],v.shape[2])),un(4===g.rank,(function(){return"Error in fused conv2d: input must be rank 4, but got rank "+g.rank+"."})),un(4===m.rank,(function(){return"Error in fused conv2d: filter must be rank 4, but got rank "+m.rank+"."})),null!=c&&un(dn(o),(function(){return"Error in fused conv2d: pad must be an integer when using, dimRoundingMode "+c+" but got pad "+o+"."})),un(g.shape[3]===m.shape[2],(function(){return"Error in conv2d: depth of input ("+g.shape[3]+") must match input depth for filter "+m.shape[2]+"."})),un(Ri(r,u),(function(){return"Error in conv2D: Either strides or dilations must be 1. Got strides "+r+" and dilations '"+u+"'"})),un("NHWC"===i,(function(){return"Error in conv2d: got dataFormat of "+i+" but only NHWC is currently supported."}));var b,w,x=wi(g.shape,m.shape,r,u,o,c);null!=l&&(b=lr(b=Ro(l,"bias","fused conv2d"),v)[0],gi(x.outShape,b.shape)),null!=p&&(w=Ro(p,"prelu weights","fused conv2d"));var E={x:g,filter:m};null!=l&&(E.bias=b),null!=p&&(E.preluActivationWeights=w);var _=[m,g],k=mr.runKernelFunc((function(e,t){var n=e.fusedConv2d({input:g,filter:m,convInfo:x,bias:b,activation:h,preluActivationWeights:w});return t([m,g,n]),n}),E,(function(e,t){var n=t,a=n[0],i=n[1],s=n[2],c=tp(e,s,h);un(Ii(u),(function(){return"Error in gradient of fused conv2D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '"+u+"'"}));var f={};return null!=l&&(f={bias:function(){return np(b,c)}}),Object.assign({x:function(){return gf(i.shape,c,a,r,o)},filter:function(){return mf(i,c,a.shape,r,o)}},f)}),"FusedConv2D",{convInfo:x,activation:h},_,[!0]);return y?k.as3D(k.shape[1],k.shape[2],k.shape[3]):k}}),ip=zo({fusedDepthwiseConv2d_:function(e){var t=e.x,n=e.filter,r=e.strides,o=e.pad,a=e.dataFormat,i=void 0===a?"NHWC":a,s=e.dilations,u=void 0===s?[1,1]:s,c=e.dimRoundingMode,l=e.bias,f=e.activation,h=void 0===f?"linear":f,p=e.preluActivationWeights;if(!1===ep(mr.state.gradientDepth,h)){var d=yf(t,n,r,o,i,u,c);return null!=l&&(d=Ol(d,l)),rp(d,h,p)}var v=Ro(t,"x","depthwiseConv2d"),m=Ro(n,"filter","depthwiseConv2d"),g=v,y=!1;3===v.rank&&(y=!0,g=v.as4D(1,v.shape[0],v.shape[1],v.shape[2])),un(4===g.rank,(function(){return"Error in fused depthwiseConv2d: input must be rank 4, but got rank "+g.rank+"."})),un(4===m.rank,(function(){return"Error in fused depthwiseConv2d: filter must be rank 4, but got rank "+m.rank+"."})),un(g.shape[3]===m.shape[2],(function(){return"Error in fused depthwiseConv2d: number of input channels ("+g.shape[3]+") must match the inChannels dimension in filter "+m.shape[2]+"."})),null==u&&(u=[1,1]),un(Ri(r,u),(function(){return"Error in fused depthwiseConv2d: Either strides or dilations must be 1. Got strides "+r+" and dilations '"+u+"'"})),null!=c&&un(dn(o),(function(){return"Error in fused depthwiseConv2d: pad must be an integer when using dimRoundingMode "+c+" but got pad "+o+"."}));var b,w,x=wi(g.shape,m.shape,r,u,o,c,!0);null!=l&&(b=lr(b=Ro(l,"bias","fused conv2d"),v)[0],gi(x.outShape,b.shape)),null!=p&&(w=Ro(p,"prelu weights","fused depthwiseConv2d"));var E={x:g,filter:m};null!=l&&(E.bias=b),null!=p&&(E.preluActivationWeights=w);var _=[m,g],k=mr.runKernelFunc((function(e,t){var n=e.fusedDepthwiseConv2D({input:g,filter:m,convInfo:x,bias:b,activation:h,preluActivationWeights:w});return t([m,g,n]),n}),E,(function(e,t){un(Ii(u),(function(){return"Error in gradient of fused depthwiseConv2d: dilation rates greater than 1 are not yet supported. Got dilations '"+u+"'"}));var n=t[0],r=t[1],o=t[2],a=tp(e,o,h),i={};return null!=l&&(i={bias:function(){return np(b,a)}}),Object.assign({x:function(){return bf(r.shape,a,n,x)},filter:function(){return wf(r,a,n.shape,x)}},i)}),"FusedDepthwiseConv2D",{convInfo:x,activation:h},_,[!0]);return y?k.as3D(k.shape[1],k.shape[2],k.shape[3]):k}}),sp=Object.freeze({matMul:op,conv2d:ap,depthwiseConv2d:ip}),up=Object.freeze({image:Qh,linalg:Xh,losses:Wh,spectral:xh,fused:sp,signal:Th,square:kc,conv1d:pf,conv2d:df,conv3d:vf,depthwiseConv2d:yf,separableConv2d:xf,conv2dTranspose:Ef,conv3dTranspose:_f,op:zo,batchNormalization2d:fl,batchNormalization3d:hl,batchNormalization4d:pl,batchNormalization:dl,batchNorm:vl,batchNorm2d:ml,batchNorm3d:gl,batchNorm4d:yl,booleanMaskAsync:function(e,t,n){return Xt(this,void 0,void 0,(function(){var r,o,a,i,s,u,c,l,f,h,p,d,v;return Kt(this,(function(m){switch(m.label){case 0:for(r=Ro(e,"tensor","boolMask"),o=Ro(t,"mask","boolMask","bool"),a=null==n?0:n,i=o.rank,s=r.shape,un(i>0,(function(){return"mask cannot be scalar"})),cn(s.slice(a,a+i),o.shape,"mask's shape must match the first K dimensions of tensor's shape,"),u=1,c=a;c<a+i;c++)u*=s[c];return l=s.slice(0,a).concat([u],s.slice(a+i)),f=r.reshape(l),h=o.reshape([-1]),[4,kl(h)];case 1:return p=m.sent(),d=p.squeeze([1]),v=uf(f,d,a),e!==r&&r.dispose(),t!==o&&o.dispose(),d.dispose(),f.dispose(),h.dispose(),p.dispose(),[2,v]}}))}))},complex:Ho,real:Wo,imag:Vo,concat:ra,concat1d:oa,concat2d:aa,concat3d:ia,concat4d:sa,split:ua,matMul:kf,dot:Of,outerProduct:Cf,reverse:If,reverse1d:Rf,reverse2d:Sf,reverse3d:Af,reverse4d:Pf,maxPool:Nf,avgPool:Mf,pool:Ff,maxPool3d:Bf,avgPool3d:jf,slice:Lf,slice1d:zf,slice2d:Hf,slice3d:Wf,slice4d:Vf,abs:Oc,acos:Cc,acosh:Ic,asin:Rc,asinh:Sc,atan:Ac,atanh:Pc,ceil:Tc,clipByValue:Dc,cos:Nc,cosh:Mc,erf:Fc,exp:Bc,expm1:jc,floor:Lc,log:zc,log1p:Hc,logSigmoid:Wc,neg:Vc,reciprocal:Uc,round:qc,rsqrt:Gc,sigmoid:Xc,sign:Kc,isNaN:$c,isInf:Yc,isFinite:Jc,sin:Zc,sinh:Qc,softplus:el,sqrt:tl,step:nl,tan:rl,tanh:ol,all:qf,any:Gf,argMax:Xf,argMin:Kf,logSumExp:$f,max:Yf,mean:Jf,min:Zf,moments:Qf,sum:eh,prod:th,equal:Xl,equalStrict:Kl,greater:$l,greaterEqual:Yl,greaterEqualStrict:Jl,greaterStrict:Zl,less:Ql,lessEqual:ef,lessEqualStrict:tf,lessStrict:nf,notEqual:rf,notEqualStrict:of,add:Ol,addN:Cl,addStrict:Il,atan2:Rl,div:Sl,divNoNan:Al,divStrict:Pl,floorDiv:Tl,maximum:Dl,maximumStrict:Nl,minimum:Ml,minimumStrict:Fl,mod:Bl,modStrict:jl,mul:Ll,mulStrict:zl,pow:Hl,powStrict:Wl,squaredDifference:Vl,squaredDifferenceStrict:Ul,sub:ql,subStrict:Gl,elu:nh,leakyRelu:rh,prelu:oh,relu:ah,relu6:ih,selu:sh,logicalAnd:bl,logicalNot:wl,logicalOr:xl,logicalXor:El,where:_l,whereAsync:kl,buffer:xa,print:function(e,t){void 0===t&&(t=!1),e.toString(t)},batchToSpaceND:Ea,broadcastTo:_a,cast:ka,clone:Oa,cumsum:Ca,depthToSpace:Ia,expandDims:Ra,eye:Sa,multinomial:Aa,oneHot:Pa,pad:Ta,pad1d:Da,pad2d:Na,pad3d:Ma,pad4d:Fa,rand:Ba,randomNormal:ja,randomGamma:La,randomUniform:za,reshape:Ha,spaceToBatchND:Wa,squeeze:Va,stack:Ua,tile:qa,truncatedNormal:Ga,unstack:Xa,setdiff1dAsync:function(e,t){return Xt(this,void 0,void 0,(function(){var n,r,o,a,i,s,u,c,l,f;return Kt(this,(function(h){switch(h.label){case 0:return n=Ro(e,"x","setdiff1d"),r=Ro(t,"y","setdiff1d"),un(n.dtype===r.dtype,(function(){return"x and y should have the same dtype, but got x ("+n.dtype+") and y ("+r.dtype+")."})),un(1===n.rank,(function(){return"x should be 1D tensor, but got x ("+n.shape+")."})),un(1===r.rank,(function(){return"y should be 1D tensor, but got y ("+r.shape+")."})),[4,n.data()];case 1:return o=h.sent(),[4,r.data()];case 2:for(a=h.sent(),i=new Set(a),s=0,l=0;l<o.length;l++)i.has(o[l])||s++;for(u=new Yn([s],n.dtype),c=new Yn([s],"int32"),l=0,f=0;l<o.length;l++)i.has(o[l])||(u.values[f]=o[l],c.values[f]=l,f++);return[2,[u.toTensor(),c.toTensor()]]}}))}))},fill:Qo,linspace:function(e,t,n){if(n<=0)throw new Error("The number of values should be positive.");return mr.runKernelFunc((function(r){return r.linspace(e,t,n)}),{})},ones:Jo,range:ea,scalar:Go,tensor:Uo,tensor1d:Xo,tensor2d:Ko,tensor3d:$o,tensor4d:Yo,tensor5d:function(e,t,n){if(ln(e),null!=t&&5!==t.length)throw new Error("tensor5d() requires shape to have five numbers");var r=Co(e,n);if(5!==r.length&&1!==r.length)throw new Error("tensor5d() requires values to be number[][][][][] or flat/TypedArray");if(1===r.length&&null==t)throw new Error("tensor5d() requires shape to be provided when `values` are a flat array");return qo(e,t,r,n)},tensor6d:function(e,t,n){if(ln(e),null!=t&&6!==t.length)throw new Error("tensor6d() requires shape to have six numbers");var r=Co(e,n);if(6!==r.length&&1!==r.length)throw new Error("tensor6d() requires values to be number[][][][][][] or flat/TypedArray");if(1===r.length&&null==t)throw new Error("tensor6d() requires shape to be provided when `values` are a flat array");return qo(e,t=t||r,r,n)},variable:function(e,t,n,r){return void 0===t&&(t=!0),mr.makeVariable(e,t,n,r)},zeros:Zo,onesLike:ta,zerosLike:na,transpose:uh,softmax:li,logSoftmax:fi,localResponseNormalization:ch,norm:lh,gather:uf,unsortedSegmentSum:cf,basicLSTMCell:fh,multiRNNCell:hh,movingAverage:ph,stridedSlice:dh,topk:vh,scatterND:mh,fft:gh,ifft:yh,rfft:bh,irfft:wh,sparseToDense:Eh,gatherND:_h,diag:kh,dropout:Oh,hannWindow:Rh,hammingWindow:Sh,frame:Ah,stft:Ph,inTopKAsync:function(e,t,n){return void 0===n&&(n=1),Xt(this,void 0,void 0,(function(){var r,o,a,i,s,u,c,l,f,h,p,d,v,m;return Kt(this,(function(g){switch(g.label){case 0:return r=Ro(e,"predictions","inTopK"),o=Ro(t,"targets","inTopK"),un(r.rank>1,(function(){return"inTopK() expects the predictions to be of rank 2 or higher, but got "+r.rank})),un(r.rank-1===o.rank,(function(){return"predictions rank should be 1 larger than targets rank, but got predictions rank "+r.rank+" and targets rank "+o.rank})),cn(r.shape.slice(0,r.shape.length-1),o.shape,"predictions's shape should be align with the targets' shape, except the last dimension."),a=r.shape[r.shape.length-1],un(n>0&&n<=a,(function(){return"'k' passed to inTopK() must be > 0 && <= the predictions last dimension ("+a+"), but got "+n})),[4,r.data()];case 1:return i=g.sent(),[4,o.data()];case 2:for(s=g.sent(),u=[i.length/a,a],l=u[1],f=En("bool",c=u[0]),h=0;h<c;h++){for(p=h*l,d=i.subarray(p,p+l),v=[],m=0;m<d.length;m++)v.push({value:d[m],index:m});for(v.sort((function(e,t){return t.value-e.value})),f[h]=0,m=0;m<n;m++)if(v[m].index===s[h]){f[h]=1;break}}return e!==r&&r.dispose(),t!==o&&o.dispose(),[2,Uo(f,o.shape,"bool")]}}))}))}});function cp(e,t){Array.isArray(e)||(e=[e]),e.forEach((function(e){null!=e&&un("complex64"!==e.dtype,(function(){return t+" does not support complex64 tensors."}))}))}function lp(e,t,n,r){if("linear"===n)return e.linear(t);if("relu"===n)return e.relu(t);if("elu"===n)return e.elu(t);if("relu6"===n)return e.relu6(t);if("prelu"===n)return e.prelu(t,r);throw new Error("Activation "+n+" has not been implemented for the CPU backend.")}var fp=function(e){function t(){var t=e.call(this)||this;return t.blockSize=48,t.firstUse=!0,t.data=new hi(t,mr),t}return Gt(t,e),t.prototype.write=function(e,t,n){this.firstUse&&(this.firstUse=!1,Yt().get("IS_NODE")&&Oo("\n============================\nHi there 👋. Looks like you are running TensorFlow.js in Node.js. To speed things up dramatically, install our node backend, which binds to TensorFlow C++, by running npm i @tensorflow/tfjs-node, or npm i @tensorflow/tfjs-node-gpu if you have CUDA. Then call require('@tensorflow/tfjs-node'); (-gpu suffix for CUDA) at the start of your program. Visit https://github.com/tensorflow/tfjs-node for more details.\n============================\n"));var r={};return this.data.set(r,{values:e,dtype:n}),r},t.prototype.move=function(e,t,n,r){this.data.set(e,{values:t,dtype:r})},t.prototype.numDataIds=function(){return this.data.numDataIds()},t.prototype.read=function(e){return Xt(this,void 0,void 0,(function(){return Kt(this,(function(t){return[2,this.readSync(e)]}))}))},t.prototype.readSync=function(e){var t=this.data.get(e),n=t.dtype,r=t.complexTensors;return"complex64"===n?Di(this.readSync(r.real.dataId),this.readSync(r.imag.dataId)):this.data.get(e).values},t.prototype.bufferSync=function(e){var t=this.readSync(e.dataId),n=t;if("string"===e.dtype)try{n=t.map((function(e){return Un(e)}))}catch(e){throw new Error("Failed to decode encoded string bytes into utf-8")}return xa(e.shape,e.dtype,n)},t.prototype.makeOutput=function(e,t,n){var r=this.write(e,t,n);return mr.makeTensorFromDataId(r,t,n,this)},t.prototype.disposeData=function(e){if(this.data.has(e)){var t=this.data.get(e).complexTensors;null!=t&&(t.real.dispose(),t.imag.dispose()),this.data.delete(e)}},t.prototype.time=function(e){return Xt(this,void 0,void 0,(function(){var t;return Kt(this,(function(n){return t=Hn(),e(),[2,{kernelMs:Hn()-t}]}))}))},t.prototype.memory=function(){return{unreliable:!0,reasons:["The reported memory is an upper bound. Due to automatic garbage collection, the true allocated memory may be less."]}},t.prototype.complex=function(e,t){var n=this.makeOutput(null,e.shape,"complex64");return this.data.get(n.dataId).complexTensors={real:mr.keep(e.clone()),imag:mr.keep(t.clone())},n},t.prototype.real=function(e){return this.data.get(e.dataId).complexTensors.real.clone()},t.prototype.imag=function(e){return this.data.get(e.dataId).complexTensors.imag.clone()},t.prototype.slice=function(e,t,n){if(cp(e,"slice"),si(e.shape,t,n)){var r=ui(t,e.strides),o=hn(n);return Uo(this.readSync(e.dataId).subarray(r,r+o),n,e.dtype)}for(var a=xa(n,e.dtype),i=this.bufferSync(e),s=0;s<a.size;++s){var u=a.indexToLoc(s).map((function(e,n){return e+t[n]}));a.values[s]=i.get.apply(i,u)}return a.toTensor()},t.prototype.stridedSlice=function(e,t,n,r){cp(e,"stridedSlice");var o=oi(t,n,r);if(o.some((function(e){return 0===e})))return Uo([],o);for(var a=xa(o,e.dtype),i=this.bufferSync(e),s=0;s<a.size;s++){for(var u=a.indexToLoc(s),c=new Array(u.length),l=0;l<c.length;l++)c[l]=u[l]*r[l]+t[l];a.set.apply(a,[i.get.apply(i,c)].concat(u))}return a.toTensor()},t.prototype.diag=function(e){for(var t=this.readSync(e.dataId),n=xa([e.size,e.size],e.dtype),r=n.values,o=0;o<t.length;o++)r[o*e.size+o]=t[o];return n.toTensor()},t.prototype.unstack=function(e,t){for(var n=e.shape[t],r=new Array(e.rank-1),o=0,a=0;a<e.rank;a++)a!==t&&(r[o++]=e.shape[a]);var i=new Array(e.rank).fill(0),s=e.shape.slice();s[t]=1;var u=new Array(n);for(a=0;a<u.length;a++)i[t]=a,u[a]=this.slice(e,i,s).reshape(r);return u},t.prototype.reverse=function(e,t){cp(e,"reverse");for(var n=xa(e.shape,e.dtype),r=this.bufferSync(e),o=function(o){var a=n.indexToLoc(o),i=a.slice();t.forEach((function(t){return i[t]=e.shape[t]-1-i[t]})),n.set.apply(n,[r.get.apply(r,i)].concat(a))},a=0;a<n.size;a++)o(a);return n.toTensor()},t.prototype.concat=function(e,t){var n=this;if("complex64"===e[0].dtype){var r=e.map((function(e){return Wo(e)})),o=e.map((function(e){return Vo(e)}));return Ho(this.concat(r,t),this.concat(o,t))}var a=e.map((function(e){var n=hn(e.shape.slice(t));return e.as2D(-1,n)})),i=Lo(a.map((function(e){return e.shape})),1),s=xa(i,e[0].dtype).values;if(1===a[0].shape[0]){var u=0;a.forEach((function(e){s.set(n.readSync(e.dataId),u),u+=e.size}))}else{var c=0;a.forEach((function(e){for(var t=n.readSync(e.dataId),r=0,o=0;o<e.shape[0];++o)for(var a=o*i[1]+c,u=0;u<e.shape[1];++u)s[a+u]=t[r++];c+=e.shape[1]}))}var l=Lo(e.map((function(e){return e.shape})),t);return Uo(s,l,e[0].dtype)},t.prototype.neg=function(e){return cp(e,"neg"),this.multiply(Go(-1),e)},t.prototype.add=function(e,t){return"complex64"===e.dtype||"complex64"===t.dtype?this.broadcastedBinaryComplexOp(e.cast("complex64"),t.cast("complex64"),(function(e,t,n,r){return{real:e+n,imag:t+r}})):this.broadcastedBinaryOp(e,t,ur(e.dtype,t.dtype),(function(e,t){return e+t}))},t.prototype.addN=function(e){var t=this;cp(e,"addN");for(var n=e.map((function(e){return t.readSync(e.dataId)})),r=xa(e[0].shape,e[0].dtype),o=r.values,a=0;a<e.length;a++)for(var i=n[a],s=0;s<o.length;s++)o[s]+=i[s];return r.toTensor()},t.prototype.subtract=function(e,t){return"complex64"===e.dtype||"complex64"===t.dtype?this.broadcastedBinaryComplexOp(e.cast("complex64"),t.cast("complex64"),(function(e,t,n,r){return{real:e-n,imag:t-r}})):this.broadcastedBinaryOp(e,t,ur(e.dtype,t.dtype),(function(e,t){return e-t}))},t.prototype.pow=function(e,t){return cp([e,t],"pow"),this.broadcastedBinaryOp(e,t,e.dtype,(function(e,t){return Math.pow(e,t)}))},t.prototype.batchMatMul=function(e,t,n,r){cp([e,t],"matMul");for(var o=n?e.shape[1]:e.shape[2],a=n?e.shape[2]:e.shape[1],i=r?t.shape[1]:t.shape[2],s=e.shape[0],u=this.readSync(e.dataId),c=this.readSync(t.dataId),l=n?[e.strides[0],1,e.strides[1]]:[e.strides[0],e.strides[1],1],f=l[0],h=l[1],p=l[2],d=r?[1,t.strides[1],t.strides[0]]:[t.strides[1],1,t.strides[0]],v=d[0],m=d[1],g=d[2],y=a*i,b=xa([s,a,i],e.dtype),w=b.values,x=this.blockSize,E=0;E<s;E++)for(var _=0;_<a;_+=x)for(var k=0;k<i;k+=x)for(var O=0;O<o;O+=x)for(var C=Math.min(_+x,a),I=Math.min(k+x,i),R=Math.min(O+x,o),S=_;S<C;S++)for(var A=k;A<I;A++){for(var P=0,T=O;T<R;T++)P+=u[E*f+S*h+T*p]*c[T*v+A*m+E*g];w[E*y+(S*i+A)]+=P}return b.toTensor()},t.prototype.fusedBatchMatMul=function(e){var t=e.a,n=e.b,r=e.transposeA,o=e.transposeB,a=e.bias,i=e.activation,s=e.preluActivationWeights,u=this.batchMatMul(t,n,r,o);return a&&(u=this.add(u,a)),i&&(u=lp(this,u,i,s)),u},t.prototype.multiply=function(e,t){return"complex64"===e.dtype||"complex64"===t.dtype?this.broadcastedBinaryComplexOp(e.cast("complex64"),t.cast("complex64"),(function(e,t,n,r){return{real:e*n-t*r,imag:e*r+t*n}})):this.broadcastedBinaryOp(e,t,ur(e.dtype,t.dtype),(function(e,t){return e*t}))},t.prototype.realDivide=function(e,t){return cp([e,t],"realDivide"),this.broadcastedBinaryOp(e,t,"float32",(function(e,t){return e/t}))},t.prototype.floorDiv=function(e,t){return cp([e,t],"floorDiv"),this.broadcastedBinaryOp(e,t,"int32",(function(e,t){return Math.floor(e/t)}))},t.prototype.sum=function(e,t){cp(e,"sum"),No("sum",t,e.rank);for(var n=To(e.shape,t),r=n[0],o=n[1],a=Zo(r,ur(e.dtype,"int32")),i=hn(o),s=this.readSync(a.dataId),u=this.readSync(e.dataId),c=0;c<s.length;++c){for(var l=c*i,f=0,h=0;h<i;++h)f+=u[l+h];s[c]=f}return a},t.prototype.prod=function(e,t){cp(e,"sum");for(var n=To(e.shape,t),r=n[0],o=n[1],a=Zo(r,ur(e.dtype,"int32")),i=hn(o),s=this.readSync(a.dataId),u=this.readSync(e.dataId),c=0;c<s.length;++c){for(var l=c*i,f=1,h=0;h<i;++h)f*=u[l+h];s[c]=f}return a},t.prototype.unsortedSegmentSum=function(e,t,n){cp(e,"unsortedSegmentSum");for(var r=[],o=e.rank-t.rank,a=0;a<o;++a)t=t.expandDims(a+1);for(a=0;a<n;++a){var i=Go(a,"int32"),s=Xl(i,t).asType("float32").mul(e).sum(0);r.push(s)}return Ua(r)},t.prototype.argMin=function(e,t){cp(e,"argMin");var n=[t];No("argMin",n,e.rank);for(var r=To(e.shape,n),o=r[0],a=r[1],i=Zo(o,"int32"),s=hn(a),u=this.readSync(i.dataId),c=this.readSync(e.dataId),l=0;l<u.length;++l){for(var f=l*s,h=c[f],p=0,d=0;d<s;++d){var v=c[f+d];v<h&&(h=v,p=d)}u[l]=p}return i},t.prototype.argMax=function(e,t){cp(e,"argMax");var n=[t];No("argMax",n,e.rank);for(var r=To(e.shape,n),o=r[0],a=r[1],i=Zo(o,"int32"),s=hn(a),u=this.readSync(i.dataId),c=this.readSync(e.dataId),l=0;l<u.length;++l){for(var f=l*s,h=c[f],p=0,d=0;d<s;++d){var v=c[f+d];v>h&&(h=v,p=d)}u[l]=p}return i},t.prototype.cumsum=function(e,t,n,r){if(cp(e,"cumsum"),t!==e.rank-1)throw new Error("backend.cumsum in CPU expects an inner-most axis="+(e.rank-1)+" but got axis="+t);for(var o=ur(e.dtype,"int32"),a=Zo(e.shape,o),i=this.readSync(a.dataId),s=this.readSync(e.dataId),u=e.shape[e.rank-1],c=r?function(e,t){return e+u-t-1}:function(e,t){return e+t},l=0;l<s.length;l+=u)for(var f=0;f<u;f++){var h=c(l,f);if(0===f)i[h]=n?0:s[h];else{var p=c(l,f-1);i[h]=n?s[p]+i[p]:s[h]+i[p]}}return a},t.prototype.equal=function(e,t){return cp([e,t],"equal"),this.broadcastedBinaryOp(e,t,"bool",(function(e,t){return e===t?1:0}))},t.prototype.notEqual=function(e,t){return cp([e,t],"notEqual"),this.broadcastedBinaryOp(e,t,"bool",(function(e,t){return e!==t?1:0}))},t.prototype.less=function(e,t){return cp([e,t],"less"),this.broadcastedBinaryOp(e,t,"bool",(function(e,t){return e<t?1:0}))},t.prototype.lessEqual=function(e,t){return cp([e,t],"lessEqual"),this.broadcastedBinaryOp(e,t,"bool",(function(e,t){return e<=t?1:0}))},t.prototype.greater=function(e,t){return cp([e,t],"greater"),this.broadcastedBinaryOp(e,t,"bool",(function(e,t){return e>t?1:0}))},t.prototype.greaterEqual=function(e,t){return cp([e,t],"greaterEqual"),this.broadcastedBinaryOp(e,t,"bool",(function(e,t){return e>=t?1:0}))},t.prototype.logicalNot=function(e){cp(e,"logicalNot");for(var t=this.readSync(e.dataId),n=new Uint8Array(t.length),r=0;r<t.length;++r)n[r]=t[r]?0:1;return this.makeOutput(n,e.shape,"bool")},t.prototype.logicalAnd=function(e,t){return cp([e,t],"logicalAnd"),this.broadcastedBinaryOp(e,t,"bool",(function(e,t){return e&&t}))},t.prototype.logicalOr=function(e,t){return cp([e,t],"logicalOr"),this.broadcastedBinaryOp(e,t,"bool",(function(e,t){return e||t}))},t.prototype.select=function(e,t,n){cp([e,t,n],"select");for(var r=this.readSync(e.dataId),o=this.readSync(t.dataId),a=this.readSync(n.dataId),i=Zo(t.shape,ur(t.dtype,n.dtype)),s=this.readSync(i.dataId),u=0,c=0===e.rank||e.rank>1||1===t.rank?1:hn(t.shape.slice(1)),l=0;l<r.length;l++)for(var f=0;f<c;f++)1===r[l]?s[u++]=o[l]:s[u++]=a[l];return i},t.prototype.where=function(e){cp([e],"where");var t=this.readSync(e.dataId);return Wi(e.shape,t)},t.prototype.topk=function(e,t,n){return cp(e,"topk"),Hi(this.readSync(e.dataId),e.shape,e.dtype,t)},t.prototype.min=function(e,t){cp(e,"min"),No("min",t,e.rank);for(var n=To(e.shape,t),r=n[0],o=n[1],a=Zo(r,e.dtype),i=hn(o),s=this.readSync(a.dataId),u=this.readSync(e.dataId),c=0;c<s.length;++c){for(var l=c*i,f=u[l],h=0;h<i;++h){var p=u[l+h];p<f&&(f=p)}s[c]=f}return a},t.prototype.minimum=function(e,t){return cp([e,t],"minimum"),this.broadcastedBinaryOp(e,t,e.dtype,(function(e,t){return Math.min(e,t)}))},t.prototype.mod=function(e,t){return cp([e,t],"mod"),this.broadcastedBinaryOp(e,t,e.dtype,(function(e,t){var n=e%t;return e<0&&t<0||e>=0&&t>=0?n:(n+t)%t}))},t.prototype.max=function(e,t){cp(e,"max"),No("max",t,e.rank);for(var n=To(e.shape,t),r=n[0],o=n[1],a=Zo(r,e.dtype),i=hn(o),s=this.readSync(a.dataId),u=this.readSync(e.dataId),c=0;c<s.length;++c){for(var l=c*i,f=u[l],h=0;h<i;++h){var p=u[l+h];p>f&&(f=p)}s[c]=f}return a},t.prototype.maximum=function(e,t){return cp([e,t],"maximum"),this.broadcastedBinaryOp(e,t,e.dtype,(function(e,t){return Math.max(e,t)}))},t.prototype.all=function(e,t){cp(e,"all"),No("all",t,e.rank);for(var n=To(e.shape,t),r=n[0],o=n[1],a=Zo(r,e.dtype),i=hn(o),s=this.readSync(a.dataId),u=this.readSync(e.dataId),c=0;c<s.length;++c){for(var l=c*i,f=u[l],h=0;h<i;++h){var p=u[l+h];f=f&&p}s[c]=f}return a},t.prototype.any=function(e,t){cp(e,"any"),No("any",t,e.rank);for(var n=To(e.shape,t),r=n[0],o=n[1],a=Zo(r,e.dtype),i=hn(o),s=this.readSync(a.dataId),u=this.readSync(e.dataId),c=0;c<s.length;++c){for(var l=c*i,f=u[l],h=0;h<i;++h){var p=u[l+h];f=f||p}s[c]=f}return a},t.prototype.squaredDifference=function(e,t){return cp([e,t],"squaredDifference"),this.broadcastedBinaryOp(e,t,e.dtype,(function(e,t){var n=e-t;return n*n}))},t.prototype.ceil=function(e){cp(e,"ceil");for(var t=this.readSync(e.dataId),n=new Float32Array(t.length),r=0;r<t.length;++r)n[r]=Math.ceil(t[r]);return this.makeOutput(n,e.shape,"float32")},t.prototype.floor=function(e){cp(e,"floor");for(var t=this.readSync(e.dataId),n=new Float32Array(t.length),r=0;r<t.length;++r)n[r]=Math.floor(t[r]);return this.makeOutput(n,e.shape,"float32")},t.prototype.sign=function(e){cp(e,"x");for(var t=this.readSync(e.dataId),n=new Float32Array(t.length),r=0;r<t.length;++r)t[r]<0?n[r]=-1:t[r]>0?n[r]=1:n[r]=0;return this.makeOutput(n,e.shape,"float32")},t.prototype.isNaN=function(e){cp(e,"x");for(var t=this.readSync(e.dataId),n=new Uint8Array(t.length),r=0;r<t.length;++r)Number.isNaN(t[r])&&(n[r]=1);return this.makeOutput(n,e.shape,"bool")},t.prototype.isInf=function(e){cp(e,"x");for(var t=this.readSync(e.dataId),n=new Uint8Array(t.length),r=0;r<t.length;++r)Math.abs(t[r])===1/0&&(n[r]=1);return this.makeOutput(n,e.shape,"bool")},t.prototype.isFinite=function(e){cp(e,"x");for(var t=this.readSync(e.dataId),n=new Uint8Array(t.length),r=0;r<t.length;++r)Number.isFinite(t[r])&&(n[r]=1);return this.makeOutput(n,e.shape,"bool")},t.prototype.round=function(e){cp(e,"round");for(var t=this.readSync(e.dataId),n=new Float32Array(t.length),r=0;r<t.length;++r){var o=Math.floor(t[r]);t[r]-o<.5?n[r]=Math.floor(t[r]):t[r]-o>.5?n[r]=Math.ceil(t[r]):n[r]=o%2==0?o:o+1}return this.makeOutput(n,e.shape,"float32")},t.prototype.exp=function(e){cp(e,"exp");for(var t=this.readSync(e.dataId),n=new Float32Array(t.length),r=0;r<t.length;++r)n[r]=Math.exp(t[r]);return this.makeOutput(n,e.shape,"float32")},t.prototype.expm1=function(e){cp(e,"expm1");for(var t=this.readSync(e.dataId),n=new Float32Array(t.length),r=0;r<t.length;++r)n[r]=Math.expm1(t[r]);return this.makeOutput(n,e.shape,"float32")},t.prototype.log=function(e){cp(e,"log");for(var t=this.readSync(e.dataId),n=new Float32Array(t.length),r=0;r<t.length;++r){var o=t[r];n[r]=Math.log(o)}return this.makeOutput(n,e.shape,"float32")},t.prototype.log1p=function(e){cp(e,"log1p");for(var t=this.readSync(e.dataId),n=new Float32Array(t.length),r=0;r<t.length;++r){var o=t[r];n[r]=Math.log1p(o)}return this.makeOutput(n,e.shape,"float32")},t.prototype.sqrt=function(e){cp(e,"sqrt");for(var t=this.readSync(e.dataId),n=new Float32Array(t.length),r=0;r<t.length;++r){var o=t[r];n[r]=Math.sqrt(o)}return this.makeOutput(n,e.shape,"float32")},t.prototype.rsqrt=function(e){cp(e,"rsqrt");for(var t=this.readSync(e.dataId),n=new Float32Array(t.length),r=0;r<t.length;++r){var o=t[r];n[r]=1/Math.sqrt(o)}return this.makeOutput(n,e.shape,"float32")},t.prototype.reciprocal=function(e){cp(e,"reciprocal");for(var t=this.readSync(e.dataId),n=new Float32Array(t.length),r=0;r<t.length;++r)n[r]=1/t[r];return this.makeOutput(n,e.shape,"float32")},t.prototype.linear=function(e){return e},t.prototype.relu=function(e){cp(e,"relu");for(var t=Zo(e.shape,e.dtype),n=this.readSync(t.dataId),r=this.readSync(e.dataId),o=0;o<r.length;++o)n[o]=Math.max(0,r[o]);return t},t.prototype.relu6=function(e){cp(e,"relu");for(var t=Zo(e.shape,e.dtype),n=this.readSync(t.dataId),r=this.readSync(e.dataId),o=0;o<r.length;++o)n[o]=Math.min(Math.max(0,r[o]),6);return t},t.prototype.prelu=function(e,t){return cp([e,t],"prelu"),this.broadcastedBinaryOp(e,t,e.dtype,(function(e,t){return e<0?t*e:e}))},t.prototype.elu=function(e){cp(e,"elu");for(var t=new Float32Array(e.size),n=this.readSync(e.dataId),r=0;r<n.length;++r){var o=n[r];t[r]=o>=0?o:Math.exp(o)-1}return this.makeOutput(t,e.shape,"float32")},t.prototype.eluDer=function(e,t){cp([e,t],"eluDer");for(var n=new Float32Array(t.size),r=this.readSync(t.dataId),o=this.readSync(e.dataId),a=0;a<r.length;++a){var i=r[a];n[a]=i>=1?o[a]:o[a]*(i+1)}return this.makeOutput(n,t.shape,"float32")},t.prototype.selu=function(e){cp(e,"selu");for(var t=new Float32Array(e.size),n=this.readSync(e.dataId),r=0;r<n.length;++r){var o=n[r];t[r]=o>=0?1.0507009873554805*o:1.7580993408473768*(Math.exp(o)-1)}return this.makeOutput(t,e.shape,"float32")},t.prototype.clip=function(e,t,n){cp(e,"clip");for(var r=new Float32Array(e.size),o=this.readSync(e.dataId),a=0;a<o.length;++a){var i=o[a];r[a]=i>n?n:i<t?t:i}return this.makeOutput(r,e.shape,"float32")},t.prototype.abs=function(e){for(var t=new Float32Array(e.size),n=this.readSync(e.dataId),r=0;r<n.length;++r)t[r]=Math.abs(n[r]);return this.makeOutput(t,e.shape,"float32")},t.prototype.complexAbs=function(e){for(var t=new Float32Array(e.size),n=this.readSync(e.dataId),r=0;r<e.size;++r){var o=n[2*r],a=n[2*r+1];t[r]=Math.hypot(o,a)}return this.makeOutput(t,e.shape,"float32")},t.prototype.int=function(e){cp(e,"int");for(var t=new Int32Array(e.size),n=this.readSync(e.dataId),r=0;r<n.length;++r)t[r]=n[r];return this.makeOutput(t,e.shape,"int32")},t.prototype.sigmoid=function(e){cp(e,"sigmoid");for(var t=new Float32Array(e.size),n=this.readSync(e.dataId),r=0;r<n.length;++r)t[r]=1/(1+Math.exp(-n[r]));return this.makeOutput(t,e.shape,"float32")},t.prototype.softplus=function(e){cp(e,"softplus");for(var t=Math.log(1.1920928955078125e-7)+2,n=new Float32Array(e.size),r=this.readSync(e.dataId),o=0;o<r.length;++o){var a,i=r[o]>-t,s=r[o]<t,u=Math.exp(r[o]);a=s?u:i?r[o]:Math.log(1+u),n[o]=a}return this.makeOutput(n,e.shape,"float32")},t.prototype.sin=function(e){cp(e,"sin");for(var t=new Float32Array(e.size),n=this.readSync(e.dataId),r=0;r<n.length;++r)t[r]=Math.sin(n[r]);return this.makeOutput(t,e.shape,"float32")},t.prototype.cos=function(e){cp(e,"cos");for(var t=new Float32Array(e.size),n=this.readSync(e.dataId),r=0;r<n.length;++r)t[r]=Math.cos(n[r]);return this.makeOutput(t,e.shape,"float32")},t.prototype.tan=function(e){cp(e,"tan");for(var t=new Float32Array(e.size),n=this.readSync(e.dataId),r=0;r<n.length;++r)t[r]=Math.tan(n[r]);return this.makeOutput(t,e.shape,"float32")},t.prototype.asin=function(e){cp(e,"asin");for(var t=new Float32Array(e.size),n=this.readSync(e.dataId),r=0;r<n.length;++r)t[r]=Math.asin(n[r]);return this.makeOutput(t,e.shape,"float32")},t.prototype.acos=function(e){cp(e,"acos");for(var t=new Float32Array(e.size),n=this.readSync(e.dataId),r=0;r<n.length;++r)t[r]=Math.acos(n[r]);return this.makeOutput(t,e.shape,"float32")},t.prototype.atan=function(e){cp(e,"atan");for(var t=new Float32Array(e.size),n=this.readSync(e.dataId),r=0;r<n.length;++r)t[r]=Math.atan(n[r]);return this.makeOutput(t,e.shape,"float32")},t.prototype.atan2=function(e,t){return cp([e,t],"atan2"),this.broadcastedBinaryOp(e,t,e.dtype,(function(e,t){return Math.atan2(e,t)}))},t.prototype.sinh=function(e){cp(e,"sinh");for(var t=new Float32Array(e.size),n=this.readSync(e.dataId),r=0;r<n.length;++r)t[r]=Math.sinh(n[r]);return this.makeOutput(t,e.shape,"float32")},t.prototype.cosh=function(e){cp(e,"cosh");for(var t=new Float32Array(e.size),n=this.readSync(e.dataId),r=0;r<n.length;++r)t[r]=Math.cosh(n[r]);return this.makeOutput(t,e.shape,"float32")},t.prototype.tanh=function(e){cp(e,"tanh");for(var t=new Float32Array(e.size),n=this.readSync(e.dataId),r=0;r<n.length;++r)t[r]=vn(n[r]);return this.makeOutput(t,e.shape,"float32")},t.prototype.asinh=function(e){cp(e,"asinh");for(var t=new Float32Array(e.size),n=this.readSync(e.dataId),r=0;r<n.length;++r)t[r]=Math.asinh(n[r]);return this.makeOutput(t,e.shape,"float32")},t.prototype.acosh=function(e){cp(e,"acosh");for(var t=new Float32Array(e.size),n=this.readSync(e.dataId),r=0;r<n.length;++r)t[r]=Math.acosh(n[r]);return this.makeOutput(t,e.shape,"float32")},t.prototype.atanh=function(e){cp(e,"atanh");for(var t=new Float32Array(e.size),n=this.readSync(e.dataId),r=0;r<n.length;++r)t[r]=Math.atanh(n[r]);return this.makeOutput(t,e.shape,"float32")},t.prototype.erf=function(e){cp(e,"erf");for(var t=new Float32Array(e.size),n=this.readSync(e.dataId),r=0;r<n.length;++r){var o=Math.sign(n[r]),a=Math.abs(n[r]),i=1/(1+.3275911*a);t[r]=o*(1-((((1.061405429*i-1.453152027)*i+1.421413741)*i-.284496736)*i+.254829592)*i*Math.exp(-a*a))}return this.makeOutput(t,e.shape,"float32")},t.prototype.step=function(e,t){void 0===t&&(t=0),cp(e,"step");for(var n=new Float32Array(e.size),r=this.readSync(e.dataId),o=0;o<r.length;++o){var a=r[o];isNaN(a)?n[o]=NaN:n[o]=a>0?1:t}return this.makeOutput(n,e.shape,"float32")},t.prototype.fusedConv2d=function(e){var t=e.input,n=e.filter,r=e.convInfo,o=e.bias,a=e.activation,i=e.preluActivationWeights,s=this.conv2d(t,n,r);return o&&(s=this.add(s,o)),a&&(s=lp(this,s,a,i)),s},t.prototype.conv2d=function(e,t,n){cp([e,t],"conv2d");for(var r=n.filterHeight,o=n.filterWidth,a=n.dilationHeight,i=n.dilationWidth,s=n.padInfo.left,u=n.padInfo.top,c="channelsLast"===n.dataFormat,l=xa(n.outShape,e.dtype),f=e.strides[0],h=c?e.strides[1]:e.strides[2],p=c?e.strides[2]:1,d=c?1:e.strides[1],v=l.strides[0],m=c?l.strides[1]:l.strides[2],g=c?l.strides[2]:1,y=c?1:l.strides[1],b=this.readSync(e.dataId),w=this.readSync(t.dataId),x=l.values,E=0;E<n.batchSize;++E)for(var _=E*f,k=E*v,O=0;O<n.outHeight;++O)for(var C=k+O*m,I=O*n.strideHeight-u,R=0;R<r;R++){var S=I+R*a;if(!(S<0||S>=n.inHeight))for(var A=R*t.strides[0],P=_+S*h,T=0;T<n.outWidth;++T)for(var D=C+T*g,N=T*n.strideWidth-s,M=0;M<o;M++){var F=N+M*i;if(!(F<0||F>=n.inWidth))for(var B=P+F*p,j=A+M*t.strides[1],L=0;L<n.inChannels;++L){for(var z=b[B+L*d],H=0;H<n.outChannels;++H)x[D+H*y]+=z*w[j+H];j+=n.outChannels}}}return l.toTensor()},t.prototype.conv3d=function(e,t,n){for(var r=n.filterDepth,o=n.filterHeight,a=n.filterWidth,i=n.dilationDepth,s=n.dilationHeight,u=n.dilationWidth,c=n.padInfo.front,l=n.padInfo.left,f=n.padInfo.top,h=xa(n.outShape,e.dtype),p=this.readSync(e.dataId),d=this.readSync(t.dataId),v=h.values,m=0;m<n.batchSize;++m)for(var g=m*e.strides[0],y=m*h.strides[0],b=0;b<n.outDepth;++b)for(var w=y+b*h.strides[1],x=b*n.strideDepth-c,E=0;E<r;E++){var _=x+E*i;if(!(_<0||_>=n.inDepth))for(var k=E*t.strides[0],O=g+_*e.strides[1],C=0;C<n.outHeight;++C)for(var I=w+C*h.strides[2],R=C*n.strideHeight-f,S=0;S<o;S++){var A=R+S*s;if(!(A<0||A>=n.inHeight))for(var P=k+S*t.strides[1],T=O+A*e.strides[2],D=0;D<n.outWidth;++D)for(var N=I+D*n.outChannels,M=D*n.strideWidth-l,F=0;F<a;F++){var B=M+F*u;if(!(B<0||B>=n.inWidth))for(var j=P+F*t.strides[2],L=T+B*n.inChannels,z=j,H=0;H<n.inChannels;++H){for(var W=p[L+H],V=0;V<n.outChannels;++V)v[N+V]+=W*d[z+V];z+=n.outChannels}}}}return h.toTensor()},t.prototype.conv2dDerInput=function(e,t,n){cp([e,t],"conv2dDerInput");for(var r=xa(n.inShape,"float32"),o=r.values,a=this.readSync(e.dataId),i=this.readSync(t.dataId),s=t.strides,u=s[0],c=s[1],l=s[2],f=n.batchSize,h=n.filterHeight,p=n.filterWidth,d=n.inChannels,v=n.inHeight,m=n.inWidth,g=n.outChannels,y=n.outHeight,b=n.outWidth,w=n.strideHeight,x=n.strideWidth,E=n.dataFormat,_=h-1-n.padInfo.top,k=p-1-n.padInfo.left,O="channelsLast"===E,C=r.strides[0],I=O?r.strides[1]:r.strides[2],R=O?r.strides[2]:1,S=O?1:r.strides[1],A=e.strides[0],P=O?e.strides[1]:e.strides[2],T=O?e.strides[2]:1,D=O?1:e.strides[1],N=0;N<f;++N)for(var M=0;M<d;++M)for(var F=0;F<v;++F)for(var B=F-_,j=Math.max(0,Math.ceil(B/w)),L=Math.min(y,(h+B)/w),z=0;z<m;++z){for(var H=z-k,W=Math.max(0,Math.ceil(H/x)),V=Math.min(b,(p+H)/x),U=0,q=j;q<L;++q)for(var G=q*w-B,X=W;X<V;++X)for(var K=A*N+P*q+T*X,$=u*(h-1-G)+c*(p-1-(X*x-H))+l*M,Y=0;Y<g;++Y)U+=a[K+D*Y]*i[$+Y];o[C*N+I*F+R*z+S*M]=U}return r.toTensor()},t.prototype.conv3dDerInput=function(e,t,n){for(var r=xa(n.inShape,"float32"),o=r.values,a=r.strides,i=a[0],s=a[1],u=a[2],c=a[3],l=this.readSync(e.dataId),f=e.strides,h=f[0],p=f[1],d=f[2],v=f[3],m=this.readSync(t.dataId),g=t.strides,y=g[0],b=g[1],w=g[2],x=g[3],E=n.batchSize,_=n.filterDepth,k=n.filterHeight,O=n.filterWidth,C=n.inChannels,I=n.inDepth,R=n.inHeight,S=n.inWidth,A=n.outChannels,P=n.outDepth,T=n.outHeight,D=n.outWidth,N=n.strideDepth,M=n.strideHeight,F=n.strideWidth,B=_-1-n.padInfo.front,j=k-1-n.padInfo.top,L=O-1-n.padInfo.left,z=0;z<E;++z)for(var H=0;H<C;++H)for(var W=0;W<I;++W)for(var V=W-B,U=Math.max(0,Math.ceil(V/N)),q=Math.min(P,(_+V)/N),G=0;G<R;++G)for(var X=G-j,K=Math.max(0,Math.ceil(X/M)),$=Math.min(T,(k+X)/M),Y=0;Y<S;++Y){for(var J=Y-L,Z=Math.max(0,Math.ceil(J/F)),Q=Math.min(D,(O+J)/F),ee=0,te=U;te<q;++te)for(var ne=te*N-V,re=K;re<$;++re)for(var oe=re*M-X,ae=Z;ae<Q;++ae)for(var ie=h*z+p*te+d*re+v*ae,se=y*(_-1-ne)+b*(k-1-oe)+w*(O-1-(ae*F-J))+x*H,ue=0;ue<A;++ue)ee+=l[ie+ue]*m[se+ue];o[i*z+s*W+u*G+c*Y+H]=ee}return r.toTensor()},t.prototype.conv2dDerFilter=function(e,t,n){cp([e,t],"conv2dDerFilter");for(var r=n.strideHeight,o=n.strideWidth,a=n.filterHeight,i=n.filterWidth,s="channelsLast"===n.dataFormat,u=xa(n.filterShape,"float32"),c=n.padInfo.left,l=n.padInfo.top,f=this.bufferSync(e),h=this.bufferSync(t),p=0;p<a;++p)for(var d=Math.max(0,Math.ceil((l-p)/r)),v=Math.min(n.outHeight,(n.inHeight+l-p)/r),m=0;m<i;++m)for(var g=Math.max(0,Math.ceil((c-m)/o)),y=Math.min(n.outWidth,(n.inWidth+c-m)/o),b=0;b<n.inChannels;++b)for(var w=0;w<n.outChannels;++w){for(var x=0,E=0;E<n.batchSize;++E)for(var _=d;_<v;++_)for(var k=p+_*r-l,O=g;O<y;++O){var C=m+O*o-c;x+=s?f.get(E,k,C,b)*h.get(E,_,O,w):f.get(E,b,k,C)*h.get(E,w,_,O)}u.set(x,p,m,b,w)}return u.toTensor()},t.prototype.conv3dDerFilter=function(e,t,n){for(var r=n.strideDepth,o=n.strideHeight,a=n.strideWidth,i=n.filterDepth,s=n.filterHeight,u=n.filterWidth,c=xa(n.filterShape,"float32"),l=c.values,f=c.strides,h=f[0],p=f[1],d=f[2],v=f[3],m=this.readSync(t.dataId),g=t.strides,y=g[0],b=g[1],w=g[2],x=g[3],E=this.readSync(e.dataId),_=e.strides,k=_[0],O=_[1],C=_[2],I=_[3],R=n.padInfo.front,S=n.padInfo.left,A=n.padInfo.top,P=0;P<i;++P)for(var T=Math.max(0,Math.ceil((R-P)/r)),D=Math.min(n.outDepth,(n.inDepth+R-P)/r),N=P*h,M=0;M<s;++M)for(var F=Math.max(0,Math.ceil((A-M)/o)),B=Math.min(n.outHeight,(n.inHeight+A-M)/o),j=M*p+N,L=0;L<u;++L)for(var z=Math.max(0,Math.ceil((S-L)/a)),H=Math.min(n.outWidth,(n.inWidth+S-L)/a),W=L*d+j,V=0;V<n.inChannels;++V)for(var U=V*v+W,q=0;q<n.outChannels;++q){for(var G=0,X=0;X<n.batchSize;++X)for(var K=X*k,$=X*y,Y=T;Y<D;++Y)for(var J=(P+Y*r-R)*O+K,Z=Y*b+$,Q=F;Q<B;++Q)for(var ee=(M+Q*o-A)*C+J,te=Q*w+Z,ne=z;ne<H;++ne){var re=ne*x+te;G+=E[(L+ne*a-S)*I+ee+V]*m[re+q]}l[U+q]=G}return c.toTensor()},t.prototype.fusedDepthwiseConv2D=function(e){var t=e.input,n=e.filter,r=e.convInfo,o=e.bias,a=e.activation,i=e.preluActivationWeights,s=this.depthwiseConv2D(t,n,r);return o&&(s=this.add(s,o)),a&&(s=lp(this,s,a,i)),s},t.prototype.depthwiseConv2D=function(e,t,n){cp([e,t],"depthwiseConv2D");for(var r=n.filterHeight,o=n.filterWidth,a=n.dilationHeight,i=n.dilationWidth,s=n.padInfo.left,u=n.padInfo.top,c=n.outChannels/n.inChannels,l=xa(n.outShape,e.dtype),f=this.readSync(e.dataId),h=this.readSync(t.dataId),p=l.values,d=0;d<n.batchSize;++d)for(var v=d*e.strides[0],m=d*l.strides[0],g=0;g<n.outHeight;++g)for(var y=m+g*l.strides[1],b=g*n.strideHeight-s,w=0;w<r;++w){var x=b+w*a;if(!(x<0||x>=n.inHeight))for(var E=w*t.strides[0],_=v+x*e.strides[1],k=0;k<n.outWidth;++k)for(var O=y+k*l.strides[2],C=k*n.strideWidth-u,I=0;I<o;++I){var R=C+I*i;if(!(R<0||R>=n.inWidth))for(var S=E+I*t.strides[1],A=_+R*n.inChannels,P=O,T=S,D=0;D<n.inChannels;++D){for(var N=f[A+D],M=0;M<c;++M)p[P+M]+=N*h[T+M];P+=c,T+=c}}}return l.toTensor()},t.prototype.depthwiseConv2DDerInput=function(e,t,n){cp([e,t],"depthwiseConv2DDerInput");for(var r=xa(n.inShape,"float32"),o=r.values,a=r.strides,i=a[0],s=a[1],u=a[2],c=this.readSync(e.dataId),l=e.strides,f=l[0],h=l[1],p=l[2],d=this.readSync(t.dataId),v=t.strides,m=v[0],g=v[1],y=v[2],b=n.batchSize,w=n.filterHeight,x=n.filterWidth,E=n.inChannels,_=n.inHeight,k=n.inWidth,O=n.outChannels,C=n.outHeight,I=n.outWidth,R=n.strideHeight,S=n.strideWidth,A=w-1-n.padInfo.top,P=x-1-n.padInfo.left,T=O/E,D=0;D<b;++D)for(var N=0;N<E;++N)for(var M=0;M<_;++M)for(var F=M-A,B=Math.max(0,Math.ceil(F/R)),j=Math.min(C,(w+F)/R),L=0;L<k;++L){for(var z=L-P,H=Math.max(0,Math.ceil(z/S)),W=Math.min(I,(x+z)/S),V=0,U=B;U<j;++U)for(var q=U*R-F,G=H;G<W;++G)for(var X=f*D+h*U+p*G,K=m*(w-1-q)+g*(x-1-(G*S-z))+y*N,$=0;$<T;++$)V+=c[X+(N*T+$)]*d[K+$];o[i*D+s*M+u*L+N]=V}return r.toTensor()},t.prototype.depthwiseConv2DDerFilter=function(e,t,n){cp([e,t],"depthwiseConv2DDerFilter");for(var r=n.strideHeight,o=n.strideWidth,a=n.filterHeight,i=n.filterWidth,s=xa(n.filterShape,"float32"),u=n.padInfo.left,c=n.padInfo.top,l=n.outChannels/n.inChannels,f=this.bufferSync(e),h=this.bufferSync(t),p=0;p<a;++p)for(var d=Math.max(0,Math.ceil((c-p)/r)),v=Math.min(n.outHeight,(n.inHeight+c-p)/r),m=0;m<i;++m)for(var g=Math.max(0,Math.ceil((u-m)/o)),y=Math.min(n.outWidth,(n.inWidth+u-m)/o),b=0;b<n.outChannels;++b){for(var w=Math.trunc(b/l),x=b%l,E=0,_=0;_<n.batchSize;++_)for(var k=d;k<v;++k)for(var O=p+k*r-c,C=g;C<y;++C){var I=m+C*o-u;E+=f.get(_,O,I,w)*h.get(_,k,C,b)}s.set(E,p,m,w,x)}return s.toTensor()},t.prototype.tile=function(e,t){return cp(e,"tile"),zi(this.bufferSync(e),t)},t.prototype.pad=function(e,t,n){cp(e,"pad");var r=t.map((function(t,n){return t[0]+e.shape[n]+t[1]})),o=t.map((function(e){return e[0]})),a=this.bufferSync(e),i=xa(r,e.dtype);0!==n&&i.values.fill(n);for(var s=0;s<e.size;s++){var u=a.indexToLoc(s),c=u.map((function(e,t){return e+o[t]}));i.set.apply(i,[a.get.apply(a,u)].concat(c))}return i.toTensor()},t.prototype.transpose=function(e,t){cp(e,"transpose");for(var n=new Array(e.rank),r=0;r<n.length;r++)n[r]=e.shape[t[r]];var o=this.readSync(e.dataId),a=xa(n,e.dtype),i=this.bufferSync(e);for(r=0;r<e.size;++r){for(var s=i.indexToLoc(r),u=new Array(s.length),c=0;c<u.length;c++)u[c]=s[t[c]];var l=a.locToIndex(u);a.values[l]=o[r]}return a.toTensor()},t.prototype.gather=function(e,t,n){cp([e,t],"gather");var r=e.shape.slice(),o=this.readSync(t.dataId);r[n]=o.length;for(var a=xa(r,e.dtype),i=this.bufferSync(e),s=0;s<a.size;++s){var u=a.indexToLoc(s),c=u.slice();c[n]=o[u[n]];var l=i.locToIndex(c);a.values[s]=i.values[l]}return a.toTensor()},t.prototype.batchToSpaceND=function(e,t,n){cp([e],"batchToSpaceND");var r=t.reduce((function(e,t){return e*t})),o=Ka(e.shape,t,r),a=$a(o.length,t.length),i=Ya(e.shape,t,r),s=Ja(n,t.length),u=Za(i,n,t.length);return e.reshape(o).transpose(a).reshape(i).slice(s,u)},t.prototype.spaceToBatchND=function(e,t,n){cp([e],"spaceToBatchND");var r=t.reduce((function(e,t){return e*t})),o=[[0,0]];o.push.apply(o,n);for(var a=1+t.length;a<e.shape.length;++a)o.push([0,0]);var i=e.pad(o),s=Ka(i.shape,t,r,!1),u=$a(s.length,t.length,!1),c=Ya(i.shape,t,r,!1);return i.reshape(s).transpose(u).reshape(c)},t.prototype.pool=function(e,t,n){cp(e,"pool");for(var r=t.strideHeight,o=t.strideWidth,a=t.dilationHeight,i=t.dilationWidth,s=t.effectiveFilterHeight,u=t.effectiveFilterWidth,c=t.padInfo.top,l=t.padInfo.left,f="max"===n?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,h=this.readSync(e.dataId),p=xa(t.outShape,e.dtype),d=p.values,v=t.outShape[1]*t.outShape[2]*t.outShape[3],m=t.outShape[2]*t.outShape[3],g=t.outShape[3],y=0;y<t.batchSize;++y)for(var b=y*v,w=y*e.strides[0],x=0;x<t.inChannels;++x)for(var E=0;E<t.outHeight;++E)for(var _=E*r-c,k=Math.max(0,_),O=Math.min(t.inHeight,s+_),C=b+E*m,I=0;I<t.outWidth;++I){for(var R=I*o-l,S=Math.max(0,R),A=Math.min(t.inWidth,u+R),P=f,T=0,D=0,N=k;N<O;N+=a){for(var M=w+N*e.strides[1],F=S;F<A;F+=i){var B=h[M+F*e.strides[2]+x];"max"===n&&B>P?P=B:"avg"===n&&(T+=B,D++)}if(isNaN(P))break}d[C+I*g+x]="avg"===n?T/D:P}return p.toTensor()},t.prototype.maxPool=function(e,t){return this.pool(e,t,"max")},t.prototype.maxPoolPositions=function(e,t){for(var n=xa(t.outShape,"int32"),r=t.strideHeight,o=t.strideWidth,a=t.dilationHeight,i=t.dilationWidth,s=t.effectiveFilterHeight,u=t.effectiveFilterWidth,c=t.padInfo.top,l=t.padInfo.left,f=this.bufferSync(e),h=0;h<t.batchSize;++h)for(var p=0;p<t.inChannels;++p)for(var d=0;d<t.outHeight;++d){for(var v=d*r-c,m=v;m<0;)m+=a;for(var g=Math.min(t.inHeight,s+v),y=0;y<t.outWidth;++y){for(var b=y*o-l,w=b;w<0;)w+=i;for(var x=Math.min(t.inWidth,u+b),E=Number.NEGATIVE_INFINITY,_=-1,k=m;k<g;k+=a)for(var O=k-v,C=w;C<x;C+=i){var I=C-b,R=f.get(h,k,C,p);R>E&&(E=R,_=O*u+I)}n.set(_,h,d,y,p)}}return n.toTensor()},t.prototype.maxPoolBackprop=function(e,t,n,r){cp([t,n],"maxPoolBackprop");for(var o=this.maxPoolPositions(t,r),a=r.strideHeight,i=r.strideWidth,s=r.dilationHeight,u=r.dilationWidth,c=r.effectiveFilterHeight,l=r.effectiveFilterWidth,f=l-1-r.padInfo.left,h=c-1-r.padInfo.top,p=xa(t.shape,"float32"),d=this.bufferSync(o),v=this.bufferSync(e),m=0;m<r.batchSize;++m)for(var g=0;g<r.inChannels;++g)for(var y=0;y<r.inHeight;++y)for(var b=0;b<r.inWidth;++b){for(var w=y-h,x=b-f,E=0,_=0;_<c;_+=s){var k=(w+_)/a;if(!(k<0||k>=r.outHeight||Math.floor(k)!==k))for(var O=0;O<l;O+=u){var C=(x+O)/i;if(!(C<0||C>=r.outWidth||Math.floor(C)!==C)){var I=c*l-1-d.get(m,k,C,g)===_*l+O?1:0;0!==I&&(E+=v.get(m,k,C,g)*I)}}}p.set(E,m,y,b,g)}return p.toTensor()},t.prototype.avgPoolBackprop=function(e,t,n){cp([e,t],"avgPoolBackprop");for(var r=n.strideHeight,o=n.strideWidth,a=n.filterHeight,i=n.filterWidth,s=n.dilationHeight,u=n.dilationWidth,c=n.effectiveFilterHeight,l=n.effectiveFilterWidth,f=l-1-n.padInfo.left,h=c-1-n.padInfo.top,p=xa(t.shape,"float32"),d=1/(a*i),v=this.bufferSync(e),m=0;m<n.batchSize;++m)for(var g=0;g<n.inChannels;++g)for(var y=0;y<n.inHeight;++y)for(var b=0;b<n.inWidth;++b){for(var w=y-h,x=b-f,E=0,_=0;_<c;_+=s){var k=(w+_)/r;if(!(k<0||k>=n.outHeight||Math.floor(k)!==k))for(var O=0;O<l;O+=u){var C=(x+O)/o;C<0||C>=n.outWidth||Math.floor(C)!==C||(E+=v.get(m,k,C,g))}}p.set(E*d,m,y,b,g)}return p.toTensor()},t.prototype.pool3d=function(e,t,n){cp(e,"pool3d");for(var r=t.strideDepth,o=t.strideHeight,a=t.strideWidth,i=t.dilationDepth,s=t.dilationHeight,u=t.dilationWidth,c=t.effectiveFilterDepth,l=t.effectiveFilterHeight,f=t.effectiveFilterWidth,h=t.padInfo.front,p=t.padInfo.top,d=t.padInfo.left,v="max"===n?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,m=this.readSync(e.dataId),g=xa(t.outShape,e.dtype),y=g.values,b=t.outShape[1]*t.outShape[2]*t.outShape[3]*t.outShape[4],w=t.outShape[2]*t.outShape[3]*t.outShape[4],x=t.outShape[3]*t.outShape[4],E=t.outShape[4],_=0;_<t.batchSize;++_)for(var k=_*b,O=_*e.strides[0],C=0;C<t.inChannels;++C)for(var I=0;I<t.outDepth;++I){for(var R=I*r-h,S=R;S<0;)S+=i;for(var A=Math.min(t.inDepth,c+R),P=k+I*w,T=0;T<t.outHeight;++T){for(var D=T*o-p,N=D;N<0;)N+=s;for(var M=Math.min(t.inHeight,l+D),F=P+T*x,B=0;B<t.outWidth;++B){for(var j=B*a-d,L=j;L<0;)L+=u;for(var z=Math.min(t.inWidth,f+j),H=F+B*E,W=v,V=0,U=0,q=S;q<A;q+=i){for(var G=O+q*e.strides[1],X=N;X<M;X+=s){for(var K=G+X*e.strides[2],$=L;$<z;$+=u){var Y=m[K+$*e.strides[3]+C];if("max"===n&&Y>W?W=Y:"avg"===n&&(V+=Y,U++),isNaN(W))break}if(isNaN(W))break}if(isNaN(W))break}y[H+C]="avg"===n?V/U:W}}}return g.toTensor()},t.prototype.avgPool3d=function(e,t){return cp(e,"avgPool3d"),this.pool3d(e,t,"avg").toFloat()},t.prototype.avgPool3dBackprop=function(e,t,n){cp([e,t],"avgPool3dBackprop");for(var r=n.strideDepth,o=n.strideHeight,a=n.strideWidth,i=n.filterDepth,s=n.filterHeight,u=n.filterWidth,c=n.dilationDepth,l=n.dilationHeight,f=n.dilationWidth,h=n.effectiveFilterDepth,p=n.effectiveFilterHeight,d=n.effectiveFilterWidth,v=h-1-n.padInfo.front,m=d-1-n.padInfo.left,g=p-1-n.padInfo.top,y=xa(t.shape,"float32"),b=1/(i*s*u),w=this.bufferSync(e),x=0;x<n.batchSize;++x)for(var E=0;E<n.inChannels;++E)for(var _=0;_<n.inDepth;++_)for(var k=0;k<n.inHeight;++k)for(var O=0;O<n.inWidth;++O){for(var C=_-v,I=k-g,R=O-m,S=0,A=0;A<h;A+=c){var P=(C+A)/r;if(!(P<0||P>=n.outDepth||Math.floor(P)!==P))for(var T=0;T<p;T+=l){var D=(I+T)/o;if(!(D<0||D>=n.outHeight||Math.floor(D)!==D))for(var N=0;N<d;N+=f){var M=(R+N)/a;M<0||M>=n.outWidth||Math.floor(M)!==M||(S+=w.get(x,P,D,M,E))}}}y.set(S*b,x,_,k,O,E)}return y.toTensor()},t.prototype.maxPool3d=function(e,t){return cp(e,"maxPool3d"),this.pool3d(e,t,"max").toFloat()},t.prototype.maxPool3dPositions=function(e,t){for(var n=xa(t.outShape,"int32"),r=t.strideDepth,o=t.strideHeight,a=t.strideWidth,i=t.dilationDepth,s=t.dilationHeight,u=t.dilationWidth,c=t.effectiveFilterDepth,l=t.effectiveFilterHeight,f=t.effectiveFilterWidth,h=t.padInfo.front,p=t.padInfo.top,d=t.padInfo.left,v=this.bufferSync(e),m=0;m<t.batchSize;++m)for(var g=0;g<t.inChannels;++g)for(var y=0;y<t.outDepth;++y){for(var b=y*r-h,w=b;w<0;)w+=i;for(var x=Math.min(t.inDepth,c+b),E=0;E<t.outHeight;++E){for(var _=E*o-p,k=_;k<0;)k+=s;for(var O=Math.min(t.inHeight,l+_),C=0;C<t.outWidth;++C){for(var I=C*a-d,R=I;R<0;)R+=u;for(var S=Math.min(t.inWidth,f+I),A=Number.NEGATIVE_INFINITY,P=-1,T=w;T<x;T+=i)for(var D=T-b,N=k;N<O;N+=s)for(var M=N-_,F=R;F<S;F+=u){var B=F-I,j=v.get(m,T,N,F,g);j>=A&&(A=j,P=D*l*f+M*l+B)}n.set(P,m,y,E,C,g)}}}return n.toTensor()},t.prototype.maxPool3dBackprop=function(e,t,n,r){cp([t,n],"maxPool3dBackprop");for(var o=this.maxPool3dPositions(t,r),a=r.strideDepth,i=r.strideHeight,s=r.strideWidth,u=r.dilationDepth,c=r.dilationHeight,l=r.dilationWidth,f=r.effectiveFilterDepth,h=r.effectiveFilterHeight,p=r.effectiveFilterWidth,d=f-1-r.padInfo.front,v=p-1-r.padInfo.left,m=h-1-r.padInfo.top,g=xa(t.shape,"float32"),y=this.bufferSync(o),b=this.bufferSync(e),w=0;w<r.batchSize;++w)for(var x=0;x<r.inChannels;++x)for(var E=0;E<r.inDepth;++E)for(var _=0;_<r.inHeight;++_)for(var k=0;k<r.inWidth;++k){for(var O=E-d,C=_-m,I=k-v,R=0,S=0;S<f;S+=u){var A=(O+S)/a;if(!(A<0||A>=r.outDepth||Math.floor(A)!==A))for(var P=0;P<h;P+=c){var T=(C+P)/i;if(!(T<0||T>=r.outHeight||Math.floor(T)!==T))for(var D=0;D<p;D+=l){var N=(I+D)/s;if(!(N<0||N>=r.outWidth||Math.floor(N)!==N)){var M=f*h*p-1-y.get(w,A,T,N,x)===S*h*p+P*p+D?1:0;0!==M&&(R+=b.get(w,A,T,N,x)*M)}}}}g.set(R,w,E,_,k,x)}return g.toTensor()},t.prototype.cast=function(e,t){return Ai(e,t,this)},t.prototype.reshape=function(e,t){return Pi(e,t)},t.prototype.avgPool=function(e,t){return cp(e,"avgPool"),this.pool(e,t,"avg").toFloat()},t.prototype.resizeBilinear=function(e,t,n,r){cp(e,"resizeBilinear");for(var o=e.shape,a=o[0],i=o[1],s=o[2],u=o[3],c=this.readSync(e.dataId),l=new Float32Array(hn([a,t,n,u])),f=[r&&t>1?i-1:i,r&&n>1?s-1:s],h=[r&&t>1?t-1:t,r&&n>1?n-1:n],p=0,d=f[0]/h[0],v=f[1]/h[1],m=0;m<a;m++)for(var g=0;g<t;g++)for(var y=d*g,b=Math.floor(y),w=y-b,x=Math.min(i-1,Math.ceil(y)),E=m*e.strides[0]+b*e.strides[1],_=m*e.strides[0]+x*e.strides[1],k=0;k<n;k++)for(var O=v*k,C=Math.floor(O),I=O-C,R=Math.min(s-1,Math.ceil(O)),S=E+C*e.strides[2],A=_+C*e.strides[2],P=E+R*e.strides[2],T=_+R*e.strides[2],D=0;D<u;D++){var N=c[S+D],M=c[A+D],F=N+(c[P+D]-N)*I,B=F+(M+(c[T+D]-M)*I-F)*w;l[p++]=B}return Uo(l,[a,t,n,u])},t.prototype.resizeBilinearBackprop=function(e,t,n){cp([e,t],"resizeBilinearBackprop");for(var r=t.shape,o=r[0],a=r[1],i=r[2],s=r[3],u=e.shape,c=u[1],l=u[2],f=new Float32Array(o*a*i*s),h=[n&&c>1?a-1:a,n&&l>1?i-1:i],p=[n&&c>1?c-1:c,n&&l>1?l-1:l],d=h[0]/p[0],v=h[1]/p[1],m=this.readSync(e.dataId),g=0,y=0;y<o;y++)for(var b=y*t.strides[0],w=0;w<c;w++)for(var x=w*d,E=Math.floor(x),_=Math.min(Math.ceil(x),a-1),k=b+E*t.strides[1],O=b+_*t.strides[1],C=x-E,I=1-C,R=0;R<l;R++)for(var S=R*v,A=Math.floor(S),P=Math.min(Math.ceil(S),i-1),T=S-A,D=1-T,N=k+A*t.strides[2],M=k+P*t.strides[2],F=O+A*t.strides[2],B=O+P*t.strides[2],j=I*D,L=I*T,z=C*D,H=C*T,W=0;W<s;W++){var V=m[g++];f[N+W]+=V*j,f[M+W]+=V*L,f[F+W]+=V*z,f[B+W]+=V*H}return Yo(f,[o,i,a,s],t.dtype)},t.prototype.resizeNearestNeighbor=function(e,t,n,r){cp(e,"resizeNearestNeighbor");for(var o=e.shape,a=o[0],i=o[1],s=o[2],u=o[3],c=this.readSync(e.dataId),l=new Float32Array(a*t*n*u),f=[r&&t>1?i-1:i,r&&n>1?s-1:s],h=[r&&t>1?t-1:t,r&&n>1?n-1:n],p=f[0]/h[0],d=f[1]/h[1],v=0,m=0;m<a;m++)for(var g=m*e.strides[0],y=0;y<t;y++)for(var b=p*y,w=g+Math.min(i-1,r?Math.round(b):Math.floor(b))*e.strides[1],x=0;x<n;x++)for(var E=d*x,_=w+Math.min(s-1,r?Math.round(E):Math.floor(E))*e.strides[2],k=0;k<u;k++){var O=c[_+k];l[v++]=O}return Uo(l,[a,t,n,u],e.dtype)},t.prototype.resizeNearestNeighborBackprop=function(e,t,n){cp([e,t],"resizeNearestNeighborBackprop");for(var r=t.shape,o=r[0],a=r[1],i=r[2],s=r[3],u=e.shape,c=u[1],l=u[2],f=new Float32Array(o*a*i*s),h=this.readSync(e.dataId),p=[n&&c>1?a-1:a,n&&l>1?i-1:i],d=[n&&c>1?c-1:c,n&&l>1?l-1:l],v=p[0]/d[0],m=p[1]/d[1],g=1/v,y=1/m,b=2*Math.ceil(g)+2,w=2*Math.ceil(y)+2,x=0;x<o;x++)for(var E=x*t.strides[0],_=0;_<a;_++)for(var k=E+_*t.strides[1],O=Math.floor(_*g),C=Math.floor(O-b/2),I=0;I<i;I++)for(var R=k+I*t.strides[2],S=Math.floor(I*y),A=Math.floor(S-w/2),P=0;P<s;P++){for(var T=0,D=0;D<b;D++){var N=D+C;if(!(N<0||N>=c)){var M=E+N*e.strides[1],F=N*v;if(_===Math.min(a-1,n?Math.round(F):Math.floor(F)))for(var B=0;B<w;B++){var j=B+A;if(!(j<0||j>=l)){var L=M+j*e.strides[2],z=j*m;I===Math.min(i-1,n?Math.round(z):Math.floor(z))&&(T+=h[L+P])}}}}f[R+P]=T}return Yo(f,t.shape,t.dtype)},t.prototype.batchNormalization=function(e,t,n,r,o,a){cp([e,t,n,o,a],"batchNorm");for(var i=this.readSync(e.dataId),s=this.readSync(t.dataId),u=this.readSync(n.dataId),c=o?this.readSync(o.dataId):new Float32Array([1]),l=a?this.readSync(a.dataId):new Float32Array([0]),f=new Float32Array(i.length),h=l.length,p=c.length,d=u.length,v=s.length,m=0,g=0,y=0,b=0,w=0;w<i.length;++w)f[w]=l[m++]+(i[w]-s[g++])*c[y++]/Math.sqrt(u[b++]+r),m>=h&&(m=0),g>=v&&(g=0),y>=p&&(y=0),b>=d&&(b=0);return Yo(f,e.shape)},t.prototype.localResponseNormalization4D=function(e,t,n,r,o){cp(e,"localResponseNormalization4D");var a=e.shape[3],i=a-1,s=this.readSync(e.dataId),u=e.size,c=new Float32Array(u);function l(e){for(var n=e%a,r=e-n+Math.max(0,n-t),o=e-n+Math.min(n+t,i),u=0;r<=o;r++){var c=s[r];u+=c*c}return u}for(var f=0;f<u;f++){var h=l(f),p=s[f]*Math.pow(n+r*h,-o);c[f]=p}return Yo(c,e.shape)},t.prototype.LRNGrad=function(e,t,n,r,o,a,i){cp(e,"LRNGrad");for(var s=e.shape[3],u=this.readSync(e.dataId),c=this.readSync(t.dataId),l=this.readSync(n.dataId),f=new Float32Array(e.size),h=e.size,p=0;p<h;p++){for(var d=p%s,v=p-d+Math.max(0,d-r),m=p-d+Math.min(s,d+r+1),g=0,y=v;y<m;y++)g+=Math.pow(c[y],2);for(g=a*g+o,y=v;y<m;y++){var b=-2*a*i*c[y]*l[p]/g;p===y&&(b+=Math.pow(g,-i)),b*=u[p],f[y]+=b}}return Yo(f,e.shape)},t.prototype.multinomial=function(e,t,n,r){cp(e,"multinomial");for(var o=t?e:li(e),a=o.shape[0],i=o.shape[1],s=Zo([a,n],"int32"),u=this.readSync(s.dataId),c=this.readSync(o.dataId),l=0;l<a;++l){var f=l*i,h=new Float32Array(i-1);h[0]=c[f];for(var p=1;p<h.length;++p)h[p]=h[p-1]+c[f+p];for(var d=ga(r.toString()),v=l*n,m=0;m<n;++m){var g=d();u[v+m]=h.length;for(var y=0;y<h.length;y++)if(g<h[y]){u[v+m]=y;break}}}return s},t.prototype.oneHot=function(e,t,n,r){cp(e,"oneHot");var o=new Float32Array(e.size*t);o.fill(r);for(var a=this.readSync(e.dataId),i=0;i<e.size;++i)a[i]>=0&&a[i]<t&&(o[i*t+a[i]]=n);return Ko(o,[e.size,t],"int32")},t.prototype.nonMaxSuppression=function(e,t,n,r,o){return cp(e,"nonMaxSuppression"),Bi(this.readSync(e.dataId),this.readSync(t.dataId),n,r,o)},t.prototype.fft=function(e){return this.fftBatch(e,!1)},t.prototype.ifft=function(e){return this.fftBatch(e,!0)},t.prototype.fftBatch=function(e,t){for(var n=e.shape[0],r=e.shape[1],o=xa(e.shape,"float32"),a=xa(e.shape,"float32"),i=Wo(e).as2D(n,r),s=Vo(e).as2D(n,r),u=0;u<n;u++)for(var c=i.slice([u,0],[1,r]),l=s.slice([u,0],[1,r]),f=Ho(c,l),h=this.readSync(this.fftImpl(f,t).dataId),p=0;p<r;p++){var d=Ni(h,p);o.values[u*r+p]=d.real,a.values[u*r+p]=d.imag}return Ho(o.toTensor(),a.toTensor()).as2D(n,r)},t.prototype.fftImpl=function(e,t){var n=e.as1D(),r=n.size;if(this.isExponentOf2(r)){var o=this.fftRadix2(n,r,t).as2D(e.shape[0],e.shape[1]);return t&&(o=Ho(Wo(o).div(Go(r)),Vo(o).div(Go(r)))),o}var a=this.readSync(e.dataId),i=function(e){for(var t=new Float32Array(e.length/2),n=new Float32Array(e.length/2),r=0;r<e.length;r+=2)t[r/2]=e[r],n[r/2]=e[r+1];return{real:t,imag:n}}(this.fourierTransformByMatmul(a,r,t));return Ho(i.real,i.imag).as2D(e.shape[0],e.shape[1])},t.prototype.isExponentOf2=function(e){return 0==(e&e-1)},t.prototype.fftRadix2=function(e,t,n){if(1===t)return e;var r=this.readSync(e.dataId),o=t/2,a=function(e){for(var t=Math.ceil(e.length/4),n=new Float32Array(t),r=new Float32Array(t),o=0;o<e.length;o+=4)n[Math.floor(o/4)]=e[o],r[Math.floor(o/4)]=e[o+1];return{real:n,imag:r}}(r),i=Ho(a.real,a.imag).as1D(),s=function(e){for(var t=Math.floor(e.length/4),n=new Float32Array(t),r=new Float32Array(t),o=2;o<e.length;o+=4)n[Math.floor(o/4)]=e[o],r[Math.floor(o/4)]=e[o+1];return{real:n,imag:r}}(r),u=Ho(s.real,s.imag).as1D();i=this.fftRadix2(i,o,n),u=this.fftRadix2(u,o,n);var c=function(e,t){for(var n=new Float32Array(e/2),r=new Float32Array(e/2),o=0;o<Math.ceil(e/2);o++){var a=(t?2:-2)*Math.PI*(o/e);n[o]=Math.cos(a),r[o]=Math.sin(a)}return{real:n,imag:r}}(t,n),l=Ho(c.real,c.imag).mul(u),f=i.add(l),h=i.sub(l),p=Wo(f).concat(Wo(h)),d=Vo(f).concat(Vo(h));return Ho(p,d).as1D()},t.prototype.fourierTransformByMatmul=function(e,t,n){for(var r=new Float32Array(2*t),o=0;o<t;o++){for(var a=0,i=0,s=0;s<t;s++){var u=Fi(o*s,t,n),c=Ni(e,s);a+=c.real*u.real-c.imag*u.imag,i+=c.real*u.imag+c.imag*u.real}n&&(a/=t,i/=t),Mi(r,a,i,o)}return r},t.prototype.depthToSpace=function(e,t,n){un("NHWC"===n,(function(){return"Only NHWC dataFormat supported on CPU for depthToSpace. Got "+n})),un(t>1,(function(){return"blockSize should be > 1 for depthToSpace, but was: "+t}));for(var r=e.shape[0],o=e.shape[1],a=e.shape[2],i=e.shape[3],s=o*t,u=a*t,c=i/(t*t),l=this.readSync(e.dataId),f=new Float32Array(r*s*u*c),h=0,p=0;p<r;++p)for(var d=0;d<s;++d)for(var v=Math.floor(d/t),m=d%t,g=0;g<u;++g)for(var y=Math.floor(g/t),b=(m*t+g%t)*c,w=0;w<c;++w){var x=w+b+i*(y+a*(v+o*p));f[h++]=l[x]}return Yo(f,[r,s,u,c])},t.prototype.broadcastedBinaryOp=function(e,t,n,r){var o=gi(e.shape,t.shape),a=xa(o,n),i=this.readSync(e.dataId),s=this.readSync(t.dataId),u=vi(e.shape,o),c=vi(t.shape,o),l=a.values;if(u.length+c.length===0)for(var f=0;f<l.length;++f)l[f]=r(i[f%i.length],s[f%s.length]);else{var h=this.bufferSync(e),p=this.bufferSync(t),d=function(n){var o=a.indexToLoc(n),f=o.slice(-e.rank);u.forEach((function(e){return f[e]=0}));var d=h.locToIndex(f),v=o.slice(-t.rank);c.forEach((function(e){return v[e]=0}));var m=p.locToIndex(v);l[n]=r(i[d],s[m])};for(f=0;f<l.length;++f)d(f)}return a.toTensor()},t.prototype.broadcastedBinaryComplexOp=function(e,t,n){var r=gi(e.shape,t.shape),o=xa(r,"float32"),a=xa(r,"float32"),i=this.readSync(e.dataId),s=this.readSync(t.dataId),u=vi(e.shape,r),c=vi(t.shape,r),l=o.values,f=a.values;if(u.length+c.length===0)for(var h=0;h<l.length;h++){var p=h%i.length,d=h%s.length,v=n(i[2*p],i[2*p+1],s[2*d],s[2*d+1]);l[h]=v.real,f[h]=v.imag}else{var m=this.bufferSync(this.data.get(e.dataId).complexTensors.real),g=this.bufferSync(this.data.get(t.dataId).complexTensors.real),y=function(r){var a=o.indexToLoc(r),h=a.slice(-e.rank);u.forEach((function(e){return h[e]=0}));var p=m.locToIndex(h),d=a.slice(-t.rank);c.forEach((function(e){return d[e]=0}));var v=g.locToIndex(d),y=n(i[2*p],i[2*p+1],s[2*v],s[2*v+1]);l[r]=y.real,f[r]=y.imag};for(h=0;h<l.length;h++)y(h)}return this.complex(o.toTensor(),a.toTensor())},t.prototype.split=function(e,t,n){return Li(e,t,n)},t.prototype.dispose=function(){},t.prototype.floatPrecision=function(){return 32},t.prototype.epsilon=function(){return 1e-7},t.prototype.cropAndResize=function(e,t,n,r,o,a){for(var i=e.shape,s=i[0],u=i[1],c=i[2],l=i[3],f=t.shape[0],h=r[0],p=r[1],d=xa([f,h,p,l],"float32"),v=this.readSync(t.dataId),m=this.readSync(n.dataId),g=this.readSync(e.dataId),y=e.strides,b=d.strides,w=0;w<f;w++){var x=4*w,E=v[x],_=v[x+1],k=v[x+2],O=v[x+3],C=m[w];if(!(C>=s))for(var I=h>1?(k-E)*(u-1)/(h-1):0,R=p>1?(O-_)*(c-1)/(p-1):0,S=0;S<h;S++){var A=h>1?E*(u-1)+S*I:.5*(E+k)*(u-1);if(A<0||A>u-1)for(var P=0;P<p;P++)for(var T=0;T<l;T++){var D=T+P*b[2]+S*b[1]+w*b[0];d.values[D]=a}else if("bilinear"===o){var N=Math.floor(A),M=Math.ceil(A),F=A-N;for(P=0;P<p;P++)if((q=p>1?_*(c-1)+P*R:.5*(_+O)*(c-1))<0||q>c-1)for(T=0;T<l;T++)D=T+P*b[2]+S*b[1]+w*b[0],d.values[D]=a;else{var B=Math.floor(q),j=Math.ceil(q),L=q-B;for(T=0;T<l;T++){var z=g[D=T+B*y[2]+N*y[1]+C*y[0]],H=g[D=T+j*y[2]+N*y[1]+C*y[0]],W=g[D=T+B*y[2]+M*y[1]+C*y[0]],V=z+(H-z)*L,U=W+(g[D=T+j*y[2]+M*y[1]+C*y[0]]-W)*L;D=T+P*b[2]+S*b[1]+w*b[0],d.values[D]=V+(U-V)*F}}}else for(P=0;P<p;++P){var q;if((q=p>1?_*(c-1)+P*R:.5*(_+O)*(c-1))<0||q>c-1)for(T=0;T<l;T++)D=T+P*b[2]+S*b[1]+w*b[0],d.values[D]=a;else{var G=Math.round(q),X=Math.round(A);for(T=0;T<l;T++){var K=T+G*y[2]+X*y[1]+C*y[0],$=T+P*b[2]+S*b[1]+w*b[0];d.values[$]=g[K]}}}}}return d.toTensor()},t.prototype.sparseToDense=function(e,t,n,r){var o=ti(0,e,n),a=o.sliceRank,i=o.numUpdates,s=o.sliceSize,u=o.strides,c=o.outputSize;return this.scatter(e,t,n,c,s,i,a,u,r,!1)},t.prototype.gatherND=function(e,t){var n=t.shape,r=n[n.length-1],o=Qa(e,t),a=o[0],i=o[1],s=o[2],u=o[3];if(0===i)return Uo([],a,e.dtype);for(var c=new Yn([i,s],e.dtype),l=this.readSync(t.dataId),f=this.readSync(e.dataId),h=0;h<i;h++){for(var p=[],d=0,v=0;v<r;v++){var m=l[h*r+v];d+=m*u[v],p.push(m)}if(d<0||d>=e.size/s)throw new Error("Invalid indices: "+p+" does not index into "+e.shape);for(var g=0;g<s;g++)c.values[h*s+g]=f[d*s+g]}return c.toTensor().reshape(a)},t.prototype.scatterND=function(e,t,n){var r=ti(0,e,n),o=r.sliceRank,a=r.numUpdates,i=r.sliceSize,s=r.strides,u=r.outputSize,c=Go(0);return this.scatter(e,t,n,u,i,a,o,s,c,!0)},t.prototype.fill=function(e,t,n){var r=_n(n=n||Dn(t),hn(e));return r.fill(t),mr.makeTensor(r,e,n,this)},t.prototype.onesLike=function(e){if("string"===e.dtype)throw new Error("onesLike is not supported for string tensors");return this.fill(e.shape,1,e.dtype)},t.prototype.zerosLike=function(e){var t=_n(e.dtype,hn(e.shape));return this.makeOutput(t,e.shape,e.dtype)},t.prototype.linspace=function(e,t,n){return Ti(e,t,n)},t.prototype.scatter=function(e,t,n,r,o,a,i,s,u,c){var l=[r/o,o],f=this.readSync(e.dataId),h=this.readSync(t.dataId);if(0===r)return Uo([],n,t.dtype);var p=new Yn(l,t.dtype);p.values.fill(this.readSync(u.dataId)[0]);for(var d=0;d<a;d++){for(var v=[],m=0,g=0;g<i;g++){var y=f[d*i+g];v.push(y),m+=y*s[g]}if(m<0||m>=r/o)throw new Error("Invalid indices: "+v+" does not index into "+n);for(var b=0;b<o;b++)c?p.values[m*o+b]+=h[d*o+b]:p.values[m*o+b]=0===t.rank?h[0]:h[d*o+b]}return p.toTensor().reshape(n)},t}(pi);mr.registerBackend("cpu",(function(){return new fp}),1),tn({kernelName:"Square",backendName:"cpu",kernelFunc:function(e){var t=e.inputs,n=e.backend,r=t.x,o=n;cp(r,"square");for(var a=o.data.get(r.dataId).values,i=new Float32Array(a.length),s=0;s<a.length;++s){var u=a[s];i[s]=u*u}return{dataId:o.write(i,r.shape,r.dtype),shape:r.shape,dtype:r.dtype}}}),tn({kernelName:"Square",backendName:"webgl",kernelFunc:function(e){var t=e.inputs,n=e.backend,r=t.x,o=n,a=new oc(r.shape,"return x * x;");return o.runWebGLProgram(a,[r],r.dtype)}});var hp,pp=function(e){this.variableNames=["A"];var t=Ki(),n=e[0],r=e[1];this.outputShape=e,this.userCode="\n void main() {\n ivec3 coords = getOutputCoords();\n int texR = coords[0];\n int texC = coords[1];\n int depth = coords[2];\n vec2 uv = (vec2(texC, texR) + halfCR) / vec2("+r+".0, "+n+".0);\n\n vec4 values = "+t.texture2D+"(A, uv);\n float value;\n if (depth == 0) {\n value = values.r;\n } else if (depth == 1) {\n value = values.g;\n } else if (depth == 2) {\n value = values.b;\n } else if (depth == 3) {\n value = values.a;\n }\n\n setOutput(floor(value * 255.0 + 0.5));\n }\n "},dp=function(e){this.variableNames=["A"],this.packedInputs=!1,this.packedOutput=!0;var t=Ki(),n=e[0],r=e[1];this.outputShape=e,this.userCode="\n void main() {\n ivec3 coords = getOutputCoords();\n int texR = coords[0];\n int texC = coords[1];\n int depth = coords[2];\n\n vec4 result = vec4(0.);\n\n for(int row=0; row<=1; row++) {\n for(int col=0; col<=1; col++) {\n texC = coords[1] + row;\n depth = coords[2] + col;\n\n vec2 uv = (vec2(texC, texR) + halfCR) /\n vec2("+r+".0, "+n+".0);\n vec4 values = "+t.texture2D+"(A, uv);\n float value;\n if (depth == 0) {\n value = values.r;\n } else if (depth == 1) {\n value = values.g;\n } else if (depth == 2) {\n value = values.b;\n } else if (depth == 3) {\n value = values.a;\n }\n\n result[row * 2 + col] = floor(value * 255.0 + 0.5);\n }\n }\n\n "+t.output+" = result;\n }\n "};tn({kernelName:"FromPixels",backendName:"webgl",kernelFunc:function(e){var t=e.inputs,n=e.backend,r=e.attrs,o=t.pixels,a=r.numChannels,i="undefined"!=typeof HTMLVideoElement&&o instanceof HTMLVideoElement,s="undefined"!=typeof HTMLImageElement&&o instanceof HTMLImageElement,u=i?[o.videoWidth,o.videoHeight]:[o.width,o.height],c=u[0],l=u[1],f=[l,c],h=[l,c,a];(s||i)&&(null==hp&&(hp=document.createElement("canvas").getContext("2d")),hp.canvas.width=c,hp.canvas.height=l,hp.drawImage(o,0,0,c,l),o=hp.canvas);var p=n.makeTensorInfo(f,"int32");n.texData.get(p.dataId).usage=wr.PIXELS,n.gpgpu.uploadPixelDataToTexture(n.getTexture(p.dataId),o);var d=Yt().getBool("WEBGL_PACK")?new dp(h):new pp(h),v=n.runWebGLProgram(d,[p],"int32");return n.disposeData(p.dataId),v}});var vp=function(){function e(){}return e.prototype.fetch=function(e,t){return fetch(e,t)},e.prototype.now=function(){return performance.now()},e.prototype.encode=function(e,t){if("utf-8"!==t&&"utf8"!==t)throw new Error("Browser's encoder only supports utf-8, but got "+t);return null==this.textEncoder&&(this.textEncoder=new TextEncoder),this.textEncoder.encode(e)},e.prototype.decode=function(e,t){return new TextDecoder(t).decode(e)},e}();Yt().get("IS_BROWSER")&&Yt().setPlatform("browser",new vp);var mp,gp=function(){function e(){this.util=n(753),this.textEncoder=new this.util.TextEncoder}return e.prototype.fetch=function(e,t){return null!=Yt().global.fetch?Yt().global.fetch(e,t):(null==mp&&(mp=n(522)),mp(e,t))},e.prototype.now=function(){var e=process.hrtime();return 1e3*e[0]+e[1]/1e6},e.prototype.encode=function(e,t){if("utf-8"!==t&&"utf8"!==t)throw new Error("Node built-in encoder only supports utf-8, but got "+t);return this.textEncoder.encode(e)},e.prototype.decode=function(e,t){return 0===e.length?"":new this.util.TextDecoder(t).decode(e)},e}();Yt().get("IS_NODE")&&Yt().setPlatform("node",new gp);var yp={float32:4,int32:4,uint16:2,uint8:1,bool:1};function bp(e,t){for(var n={},r=0,o=function(t){var o=t.name,a=t.dtype,i=t.shape,s=hn(i),u=void 0;if("quantization"in t){var c=t.quantization;if("uint8"!==c.dtype&&"uint16"!==c.dtype)throw new Error("Weight "+t.name+" has unknown quantization dtype "+c.dtype+". Supported quantization dtypes are: 'uint8' and 'uint16'.");var l=yp[c.dtype],f=e.slice(r,r+s*l),h="uint8"===c.dtype?new Uint8Array(f):new Uint16Array(f);if("float32"===a)u=Float32Array.from(h,(function(e){return e*c.scale+c.min}));else{if("int32"!==a)throw new Error("Unsupported dtype in weight '"+o+"': "+a);u=Int32Array.from(h,(function(e){return Math.round(e*c.scale+c.min)}))}r+=s*l}else if("string"===a){var p=hn(t.shape);u=[];for(var d=0;d<p;d++){var v=new Uint32Array(e.slice(r,r+4))[0];r+=4;var m=new Uint8Array(e.slice(r,r+v));u.push(m),r+=v}}else{var g=yp[a];if(f=e.slice(r,r+s*g),"float32"===a)u=new Float32Array(f);else if("int32"===a)u=new Int32Array(f);else{if("bool"!==a)throw new Error("Unsupported dtype in weight '"+o+"': "+a);u=new Uint8Array(f)}r+=s*g}n[o]=Uo(u,i,a)},a=0,i=t;a<i.length;a++)o(i[a]);return n}function wp(e){if(null===e)throw new Error("Invalid input value: "+JSON.stringify(e));var t=0,n=[];e.forEach((function(e){if(t+=e.byteLength,n.push(e.byteLength===e.buffer.byteLength?e:new e.constructor(e)),!(e instanceof Float32Array||e instanceof Int32Array||e instanceof Uint8Array))throw new Error("Unsupported TypedArray subtype: "+e.constructor.name)}));var r=new Uint8Array(t),o=0;return n.forEach((function(e){r.set(new Uint8Array(e.buffer),o),o+=e.byteLength})),r.buffer}var xp="undefined"!=typeof Buffer&&("undefined"==typeof Blob||"undefined"==typeof atob||"undefined"==typeof btoa);function Ep(e){return xp?Buffer.byteLength(e):new Blob([e]).size}function _p(e){var t=0;e.forEach((function(e){t+=e.byteLength}));var n=new Uint8Array(t),r=0;return e.forEach((function(e){n.set(new Uint8Array(e),r),r+=e.byteLength})),n.buffer}function kp(e){for(e=e.trim();e.endsWith("/");)e=e.slice(0,e.length-1);var t=e.split("/");return t[t.length-1]}function Op(e){if(e.modelTopology instanceof ArrayBuffer)throw new Error("Expected JSON model topology, received ArrayBuffer.");return{dateSaved:new Date,modelTopologyType:"JSON",modelTopologyBytes:null==e.modelTopology?0:Ep(JSON.stringify(e.modelTopology)),weightSpecsBytes:null==e.weightSpecs?0:Ep(JSON.stringify(e.weightSpecs)),weightDataBytes:null==e.weightData?0:e.weightData.byteLength}}var Cp=function(){function e(){this.saveRouters=[],this.loadRouters=[]}return e.getInstance=function(){return null==e.instance&&(e.instance=new e),e.instance},e.registerSaveRouter=function(t){e.getInstance().saveRouters.push(t)},e.registerLoadRouter=function(t){e.getInstance().loadRouters.push(t)},e.getSaveHandlers=function(t){return e.getHandlers(t,"save")},e.getLoadHandlers=function(t,n){return e.getHandlers(t,"load",n)},e.getHandlers=function(t,n,r){var o=[];return("load"===n?e.getInstance().loadRouters:e.getInstance().saveRouters).forEach((function(e){var n=e(t,r);null!==n&&o.push(n)})),o},e}(),Ip="://",Rp=function(){function e(){this.managers={}}return e.getInstance=function(){return null==e.instance&&(e.instance=new e),e.instance},e.registerManager=function(t,n){un(null!=t,(function(){return"scheme must not be undefined or null."})),t.endsWith(Ip)&&(t=t.slice(0,t.indexOf(Ip))),un(t.length>0,(function(){return"scheme must not be an empty string."}));var r=e.getInstance();un(null==r.managers[t],(function(){return"A model store manager is already registered for scheme '"+t+"'."})),r.managers[t]=n},e.getManager=function(e){var t=this.getInstance().managers[e];if(null==t)throw new Error("Cannot find model manager for scheme '"+e+"'");return t},e.getSchemes=function(){return Object.keys(this.getInstance().managers)},e}();function Sp(e){if(-1===e.indexOf(Ip))throw new Error("The url string provided does not contain a scheme. Supported schemes are: "+Rp.getSchemes().join(","));return{scheme:e.split(Ip)[0],path:e.split(Ip)[1]}}function Ap(e,t,n){return void 0===n&&(n=!1),Xt(this,void 0,void 0,(function(){var r,o,a,i,s,u,c,l,f;return Kt(this,(function(h){switch(h.label){case 0:return un(e!==t,(function(){return"Old path and new path are the same: '"+e+"'"})),un((r=Cp.getLoadHandlers(e)).length>0,(function(){return"Copying failed because no load handler is found for source URL "+e+"."})),un(r.length<2,(function(){return"Copying failed because more than one ("+r.length+") load handlers for source URL "+e+"."})),o=r[0],un((a=Cp.getSaveHandlers(t)).length>0,(function(){return"Copying failed because no save handler is found for destination URL "+t+"."})),un(a.length<2,(function(){return"Copying failed because more than one ("+r.length+") save handlers for destination URL "+t+"."})),i=a[0],s=Sp(e).scheme,u=Sp(e).path,c=s===Sp(e).scheme,[4,o.load()];case 1:return l=h.sent(),n&&c?[4,Rp.getManager(s).removeModel(u)]:[3,3];case 2:h.sent(),h.label=3;case 3:return[4,i.save(l)];case 4:return f=h.sent(),!n||c?[3,6]:[4,Rp.getManager(s).removeModel(u)];case 5:h.sent(),h.label=6;case 6:return[2,f.modelArtifactsInfo]}}))}))}var Pp="models_store",Tp="model_info_store";function Dp(){if(!Yt().getBool("IS_BROWSER"))throw new Error("Failed to obtain IndexedDB factory because the current environmentis not a web browser.");var e=window,t=e.indexedDB||e.mozIndexedDB||e.webkitIndexedDB||e.msIndexedDB||e.shimIndexedDB;if(null==t)throw new Error("The current browser does not appear to support IndexedDB.");return t}function Np(e){var t=e.result;t.createObjectStore(Pp,{keyPath:"modelPath"}),t.createObjectStore(Tp,{keyPath:"modelPath"})}var Mp=function(){function e(e){if(this.indexedDB=Dp(),null==e||!e)throw new Error("For IndexedDB, modelPath must not be null, undefined or empty.");this.modelPath=e}return e.prototype.save=function(e){return Xt(this,void 0,void 0,(function(){return Kt(this,(function(t){if(e.modelTopology instanceof ArrayBuffer)throw new Error("BrowserLocalStorage.save() does not support saving model topology in binary formats yet.");return[2,this.databaseAction(this.modelPath,e)]}))}))},e.prototype.load=function(){return Xt(this,void 0,void 0,(function(){return Kt(this,(function(e){return[2,this.databaseAction(this.modelPath)]}))}))},e.prototype.databaseAction=function(e,t){var n=this;return new Promise((function(e,r){var o=n.indexedDB.open("tensorflowjs",1);o.onupgradeneeded=function(){return Np(o)},o.onsuccess=function(){var a=o.result;if(null==t){var i=a.transaction(Pp,"readonly"),s=i.objectStore(Pp).get(n.modelPath);s.onsuccess=function(){if(null==s.result)return a.close(),r(new Error("Cannot find model with path '"+n.modelPath+"' in IndexedDB."));e(s.result.modelArtifacts)},s.onerror=function(e){return a.close(),r(s.error)},i.oncomplete=function(){return a.close()}}else{var u,c=Op(t),l=a.transaction(Tp,"readwrite"),f=l.objectStore(Tp),h=f.put({modelPath:n.modelPath,modelArtifactsInfo:c});h.onsuccess=function(){var o=(u=a.transaction(Pp,"readwrite")).objectStore(Pp).put({modelPath:n.modelPath,modelArtifacts:t,modelArtifactsInfo:c});o.onsuccess=function(){return e({modelArtifactsInfo:c})},o.onerror=function(e){var t=(f=l.objectStore(Tp)).delete(n.modelPath);t.onsuccess=function(){return a.close(),r(o.error)},t.onerror=function(e){return a.close(),r(o.error)}}},h.onerror=function(e){return a.close(),r(h.error)},l.oncomplete=function(){null==u?a.close():u.oncomplete=function(){return a.close()}}}},o.onerror=function(e){return r(o.error)}}))},e.URL_SCHEME="indexeddb://",e}(),Fp=function(e){return Yt().getBool("IS_BROWSER")&&!Array.isArray(e)&&e.startsWith(Mp.URL_SCHEME)?(t=e.slice(Mp.URL_SCHEME.length),new Mp(t)):null;var t};Cp.registerSaveRouter(Fp),Cp.registerLoadRouter(Fp);var Bp=function(){function e(){this.indexedDB=Dp()}return e.prototype.listModels=function(){return Xt(this,void 0,void 0,(function(){var e=this;return Kt(this,(function(t){return[2,new Promise((function(t,n){var r=e.indexedDB.open("tensorflowjs",1);r.onupgradeneeded=function(){return Np(r)},r.onsuccess=function(){var e=r.result,o=e.transaction(Tp,"readonly"),a=o.objectStore(Tp).getAll();a.onsuccess=function(){for(var e={},n=0,r=a.result;n<r.length;n++){var o=r[n];e[o.modelPath]=o.modelArtifactsInfo}t(e)},a.onerror=function(t){return e.close(),n(a.error)},o.oncomplete=function(){return e.close()}},r.onerror=function(e){return n(r.error)}}))]}))}))},e.prototype.removeModel=function(e){return Xt(this,void 0,void 0,(function(){var t=this;return Kt(this,(function(n){var r;return e=(r=e).startsWith(Mp.URL_SCHEME)?r.slice(Mp.URL_SCHEME.length):r,[2,new Promise((function(n,r){var o=t.indexedDB.open("tensorflowjs",1);o.onupgradeneeded=function(){return Np(o)},o.onsuccess=function(){var t,a=o.result,i=a.transaction(Tp,"readwrite"),s=i.objectStore(Tp),u=s.get(e);u.onsuccess=function(){if(null==u.result)return a.close(),r(new Error("Cannot find model with path '"+e+"' in IndexedDB."));var o=s.delete(e),i=function(){var o=(t=a.transaction(Pp,"readwrite")).objectStore(Pp).delete(e);o.onsuccess=function(){return n(u.result.modelArtifactsInfo)},o.onerror=function(e){return r(u.error)}};o.onsuccess=i,o.onerror=function(e){return i(),a.close(),r(u.error)}},u.onerror=function(e){return a.close(),r(u.error)},i.oncomplete=function(){null==t?a.close():t.oncomplete=function(){return a.close()}}},o.onerror=function(e){return r(o.error)}}))]}))}))},e}();if(Yt().getBool("IS_BROWSER"))try{Rp.registerManager(Mp.URL_SCHEME,new Bp)}catch(qt){}var jp="/",Lp="tensorflowjs_models",zp="info",Hp="model_topology",Wp="weight_specs",Vp="weight_data",Up="model_metadata";function qp(e){return{info:[Lp,e,zp].join(jp),topology:[Lp,e,Hp].join(jp),weightSpecs:[Lp,e,Wp].join(jp),weightData:[Lp,e,Vp].join(jp),modelMetadata:[Lp,e,Up].join(jp)}}function Gp(e){var t=e.split(jp);if(t.length<3)throw new Error("Invalid key format: "+e);return t.slice(1,t.length-1).join(jp)}var Xp=function(){function e(e){if(!Yt().getBool("IS_BROWSER")||void 0===window.localStorage)throw new Error("The current environment does not support local storage.");if(this.LS=window.localStorage,null==e||!e)throw new Error("For local storage, modelPath must not be null, undefined or empty.");this.modelPath=e,this.keys=qp(this.modelPath)}return e.prototype.save=function(e){return Xt(this,void 0,void 0,(function(){var t,n,r;return Kt(this,(function(o){if(e.modelTopology instanceof ArrayBuffer)throw new Error("BrowserLocalStorage.save() does not support saving model topology in binary formats yet.");t=JSON.stringify(e.modelTopology),n=JSON.stringify(e.weightSpecs),r=Op(e);try{return this.LS.setItem(this.keys.info,JSON.stringify(r)),this.LS.setItem(this.keys.topology,t),this.LS.setItem(this.keys.weightSpecs,n),this.LS.setItem(this.keys.weightData,(a=e.weightData,xp?Buffer.from(a).toString("base64"):btoa(String.fromCharCode.apply(null,new Uint8Array(a))))),this.LS.setItem(this.keys.modelMetadata,JSON.stringify({format:e.format,generatedBy:e.generatedBy,convertedBy:e.convertedBy,userDefinedMetadata:e.userDefinedMetadata})),[2,{modelArtifactsInfo:r}]}catch(e){throw this.LS.removeItem(this.keys.info),this.LS.removeItem(this.keys.topology),this.LS.removeItem(this.keys.weightSpecs),this.LS.removeItem(this.keys.weightData),this.LS.removeItem(this.keys.modelMetadata),new Error("Failed to save model '"+this.modelPath+"' to local storage: size quota being exceeded is a possible cause of this failure: modelTopologyBytes="+r.modelTopologyBytes+", weightSpecsBytes="+r.weightSpecsBytes+", weightDataBytes="+r.weightDataBytes+".")}var a;return[2]}))}))},e.prototype.load=function(){return Xt(this,void 0,void 0,(function(){var e,t,n,r,o,a,i;return Kt(this,(function(s){if(null==(e=JSON.parse(this.LS.getItem(this.keys.info))))throw new Error("In local storage, there is no model with name '"+this.modelPath+"'");if("JSON"!==e.modelTopologyType)throw new Error("BrowserLocalStorage does not support loading non-JSON model topology yet.");if(t={},null==(n=JSON.parse(this.LS.getItem(this.keys.topology))))throw new Error("In local storage, the topology of model '"+this.modelPath+"' is missing.");if(t.modelTopology=n,null==(r=JSON.parse(this.LS.getItem(this.keys.weightSpecs))))throw new Error("In local storage, the weight specs of model '"+this.modelPath+"' are missing.");if(t.weightSpecs=r,null!=(o=this.LS.getItem(this.keys.modelMetadata))&&(a=JSON.parse(o),t.format=a.format,t.generatedBy=a.generatedBy,t.convertedBy=a.convertedBy,t.userDefinedMetadata=a.userDefinedMetadata),null==(i=this.LS.getItem(this.keys.weightData)))throw new Error("In local storage, the binary weight values of model '"+this.modelPath+"' are missing.");return t.weightData=function(e){if(xp){var t=Buffer.from(e,"base64");return t.buffer.slice(t.byteOffset,t.byteOffset+t.byteLength)}for(var n=atob(e),r=new Uint8Array(n.length),o=0;o<n.length;++o)r.set([n.charCodeAt(o)],o);return r.buffer}(i),[2,t]}))}))},e.URL_SCHEME="localstorage://",e}(),Kp=function(e){return Yt().getBool("IS_BROWSER")&&!Array.isArray(e)&&e.startsWith(Xp.URL_SCHEME)?(t=e.slice(Xp.URL_SCHEME.length),new Xp(t)):null;var t};Cp.registerSaveRouter(Kp),Cp.registerLoadRouter(Kp);var $p=function(){function e(){un(Yt().getBool("IS_BROWSER"),(function(){return"Current environment is not a web browser"})),un(void 0!==window.localStorage,(function(){return"Current browser does not appear to support localStorage"})),this.LS=window.localStorage}return e.prototype.listModels=function(){return Xt(this,void 0,void 0,(function(){var e,t,n,r,o,a;return Kt(this,(function(i){for(e={},t=Lp+jp,n=jp+zp,r=0;r<this.LS.length;++r)(o=this.LS.key(r)).startsWith(t)&&o.endsWith(n)&&(a=Gp(o),e[a]=JSON.parse(this.LS.getItem(o)));return[2,e]}))}))},e.prototype.removeModel=function(e){return Xt(this,void 0,void 0,(function(){var t,n;return Kt(this,(function(r){var o;if(e=(o=e).startsWith(Xp.URL_SCHEME)?o.slice(Xp.URL_SCHEME.length):o,t=qp(e),null==this.LS.getItem(t.info))throw new Error("Cannot find model at path '"+e+"'");return n=JSON.parse(this.LS.getItem(t.info)),this.LS.removeItem(t.info),this.LS.removeItem(t.topology),this.LS.removeItem(t.weightSpecs),this.LS.removeItem(t.weightData),[2,n]}))}))},e}();if(Yt().getBool("IS_BROWSER"))try{Rp.registerManager(Xp.URL_SCHEME,new $p)}catch(qt){}function Yp(e){return new Promise((function(e){return setTimeout(e)})).then(e)}var Jp=function(){function e(t){if(!Yt().getBool("IS_BROWSER"))throw new Error("browserDownloads() cannot proceed because the current environment is not a browser.");t.startsWith(e.URL_SCHEME)&&(t=t.slice(e.URL_SCHEME.length)),null!=t&&0!==t.length||(t="model"),this.modelTopologyFileName=t+".json",this.weightDataFileName=t+".weights.bin"}return e.prototype.save=function(e){return Xt(this,void 0,void 0,(function(){var t,n,r,o,a,i;return Kt(this,(function(s){switch(s.label){case 0:if("undefined"==typeof document)throw new Error("Browser downloads are not supported in this environment since `document` is not present");if(t=window.URL.createObjectURL(new Blob([e.weightData],{type:"application/octet-stream"})),!(e.modelTopology instanceof ArrayBuffer))return[3,1];throw new Error("BrowserDownloads.save() does not support saving model topology in binary formats yet.");case 1:return n=[{paths:["./"+this.weightDataFileName],weights:e.weightSpecs}],r={modelTopology:e.modelTopology,format:e.format,generatedBy:e.generatedBy,convertedBy:e.convertedBy,weightsManifest:n},o=window.URL.createObjectURL(new Blob([JSON.stringify(r)],{type:"application/json"})),(a=null==this.jsonAnchor?document.createElement("a"):this.jsonAnchor).download=this.modelTopologyFileName,a.href=o,[4,Yp((function(){return a.dispatchEvent(new MouseEvent("click"))}))];case 2:return s.sent(),null==e.weightData?[3,4]:((i=null==this.weightDataAnchor?document.createElement("a"):this.weightDataAnchor).download=this.weightDataFileName,i.href=t,[4,Yp((function(){return i.dispatchEvent(new MouseEvent("click"))}))]);case 3:s.sent(),s.label=4;case 4:return[2,{modelArtifactsInfo:Op(e)}]}}))}))},e.URL_SCHEME="downloads://",e}(),Zp=function(){function e(e){if(null==e||e.length<1)throw new Error("When calling browserFiles, at least 1 file is required, but received "+e);this.files=e}return e.prototype.load=function(){return Xt(this,void 0,void 0,(function(){var e,t,n=this;return Kt(this,(function(r){return e=this.files[0],t=this.files.slice(1),[2,new Promise((function(r,o){var a=new FileReader;a.onload=function(a){var i=JSON.parse(a.target.result),s=i.modelTopology;if(null!=s){0===t.length&&r({modelTopology:s});var u=i.weightsManifest;if(null!=u){var c;try{c=n.checkManifestAndWeightFiles(u,t)}catch(e){return void o(e)}var l=[],f=[],h=[];u.forEach((function(e){e.paths.forEach((function(e){f.push(e),h.push(null)})),l.push.apply(l,e.weights)})),u.forEach((function(e){e.paths.forEach((function(e){var t=new FileReader;t.onload=function(t){var n=t.target.result,o=f.indexOf(e);h[o]=n,-1===h.indexOf(null)&&r({modelTopology:s,weightSpecs:l,weightData:_p(h),format:i.format,generatedBy:i.generatedBy,convertedBy:i.convertedBy,userDefinedMetadata:i.userDefinedMetadata})},t.onerror=function(t){return o("Failed to weights data from file of path '"+e+"'.")},t.readAsArrayBuffer(c[e])}))}))}else o(new Error("weightManifest field is missing from file "+e.name))}else o(new Error("modelTopology field is missing from file "+e.name))},a.onerror=function(t){return o("Failed to read model topology and weights manifest JSON from file '"+e.name+"'. BrowserFiles supports loading Keras-style tf.Model artifacts only.")},a.readAsText(e)}))]}))}))},e.prototype.checkManifestAndWeightFiles=function(e,t){for(var n=[],r=t.map((function(e){return kp(e.name)})),o={},a=0,i=e;a<i.length;a++)i[a].paths.forEach((function(e){var a=kp(e);if(-1!==n.indexOf(a))throw new Error("Duplicate file basename found in weights manifest: '"+a+"'");if(n.push(a),-1===r.indexOf(a))throw new Error("Weight file with basename '"+a+"' is not provided.");o[e]=t[r.indexOf(a)]}));if(n.length!==t.length)throw new Error("Mismatch in the number of files in weights manifest ("+n.length+") and the number of weight files provided ("+t.length+").");return o},e}();function Qp(e,t,n,r){!function(e){un(null!=e&&Array.isArray(e)&&e.length>0,(function(){return"promises must be a none empty array"}))}(e),function(e,t){un(e>=0&&e<=1,(function(){return"Progress fraction must be in range [0, 1], but got startFraction "+e})),un(t>=0&&t<=1,(function(){return"Progress fraction must be in range [0, 1], but got endFraction "+t})),un(t>=e,(function(){return"startFraction must be no more than endFraction, but got startFraction "+e+" and endFraction "+t}))}(n=null==n?0:n,r=null==r?1:r);var o=0;return Promise.all(e.map((function(a){return a.then((function(a){var i=n+ ++o/e.length*(r-n);return t(i),a})),a})))}function ed(e,t){return Xt(this,void 0,void 0,(function(){var n,r,o,a,i,s,u,c,l;return Kt(this,(function(f){switch(f.label){case 0:return null==t&&(t={}),n=null==t.fetchFunc?Yt().platform.fetch:t.fetchFunc,r=e.map((function(e){return n(e,t.requestInit,{isBinary:!0})})),o=0,a=.5,null!=t.onProgress?[3,2]:[4,Promise.all(r)];case 1:return i=f.sent(),[3,4];case 2:return[4,Qp(r,t.onProgress,o,a)];case 3:i=f.sent(),f.label=4;case 4:return s=i.map((function(e){return e.arrayBuffer()})),u=.5,c=1,null!=t.onProgress?[3,6]:[4,Promise.all(s)];case 5:return l=f.sent(),[3,8];case 6:return[4,Qp(s,t.onProgress,u,c)];case 7:l=f.sent(),f.label=8;case 8:return[2,l]}}))}))}function td(e){var t=this;return function(n,r,o){return void 0===r&&(r=""),Xt(t,void 0,void 0,(function(){var t,a,i,s,u,c,l,f,h,p;return Kt(this,(function(d){switch(d.label){case 0:if(t=n.map((function(){return!1})),a={},i=null!=o?o.map((function(){return!1})):[],s=[],n.forEach((function(e,n){var r=0;e.weights.forEach((function(e){var u="quantization"in e?e.quantization.dtype:e.dtype,c=yp[u]*hn(e.shape),l=function(){t[n]=!0,null==a[n]&&(a[n]=[]),a[n].push({manifestEntry:e,groupOffset:r,sizeBytes:c})};null!=o?o.forEach((function(t,n){t===e.name&&(l(),i[n]=!0)})):l(),s.push(e.name),r+=c}))})),!i.every((function(e){return e})))throw u=o.filter((function(e,t){return!i[t]})),new Error("Could not find weights in manifest with names: "+u.join(", ")+". \nManifest JSON has weights with names: "+s.join(", ")+".");return c=t.reduce((function(e,t,n){return t&&e.push(n),e}),[]),l=[],c.forEach((function(e){n[e].paths.forEach((function(e){var t=r+(r.endsWith("/")?"":"/")+e;l.push(t)}))})),[4,e(l)];case 1:return f=d.sent(),h={},p=0,c.forEach((function(e){for(var t=n[e].paths.length,r=0,o=0;o<t;o++)r+=f[p+o].byteLength;for(var i=new ArrayBuffer(r),s=new Uint8Array(i),u=0,c=0;c<t;c++){var l=new Uint8Array(f[p+c]);s.set(l,u),u+=l.byteLength}a[e].forEach((function(e){var t=bp(i.slice(e.groupOffset,e.groupOffset+e.sizeBytes),[e.manifestEntry]);for(var n in t)h[n]=t[n]})),p+=t})),[2,h]}}))}))}}Cp.registerSaveRouter((function(e){return Yt().getBool("IS_BROWSER")&&!Array.isArray(e)&&e.startsWith(Jp.URL_SCHEME)?(void 0===(t=e.slice(Jp.URL_SCHEME.length))&&(t="model"),new Jp(t)):null;var t}));var nd=function(){function e(e,t){if(this.DEFAULT_METHOD="POST",null==t&&(t={}),this.weightPathPrefix=t.weightPathPrefix,this.onProgress=t.onProgress,null!=t.fetchFunc?(un("function"==typeof t.fetchFunc,(function(){return"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=Yt().platform.fetch,un(null!=e&&e.length>0,(function(){return"URL path for http must not be null, undefined or empty."})),Array.isArray(e)&&un(2===e.length,(function(){return"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 new Error("requestInit is expected to have no pre-existing body, but has one.");this.requestInit=t.requestInit||{}}return e.prototype.save=function(e){return Xt(this,void 0,void 0,(function(){var t,n,r,o;return Kt(this,(function(a){switch(a.label){case 0:if(e.modelTopology instanceof ArrayBuffer)throw new Error("BrowserHTTPRequest.save() does not support saving model topology in binary formats yet.");return(t=Object.assign({method:this.DEFAULT_METHOD},this.requestInit)).body=new FormData,n=[{paths:["./model.weights.bin"],weights:e.weightSpecs}],r={modelTopology:e.modelTopology,format:e.format,generatedBy:e.generatedBy,convertedBy:e.convertedBy,userDefinedMetadata:e.userDefinedMetadata,weightsManifest:n},t.body.append("model.json",new Blob([JSON.stringify(r)],{type:"application/json"}),"model.json"),null!=e.weightData&&t.body.append("model.weights.bin",new Blob([e.weightData],{type:"application/octet-stream"}),"model.weights.bin"),[4,this.fetch(this.path,t)];case 1:if((o=a.sent()).ok)return[2,{modelArtifactsInfo:Op(e),responses:[o]}];throw new Error("BrowserHTTPRequest.save() failed due to HTTP response status "+o.status+".")}}))}))},e.prototype.load=function(){return Xt(this,void 0,void 0,(function(){var e,t,n,r,o,a,i,s,u,c,l,f;return Kt(this,(function(h){switch(h.label){case 0:return[4,this.fetch(this.path,this.requestInit)];case 1:if(!(e=h.sent()).ok)throw new Error("Request to "+this.path+" failed with status code "+e.status+". Please verify this URL points to the model JSON of the model to load.");h.label=2;case 2:return h.trys.push([2,4,,5]),[4,e.json()];case 3:return t=h.sent(),[3,5];case 4:throw h.sent(),n="Failed to parse model JSON of response from "+this.path+".",this.path.endsWith(".pb")?n+=" 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.":n+=" Please make sure the server is serving valid JSON for this request.",new Error(n);case 5:if(r=t.modelTopology,o=t.weightsManifest,a=t.generatedBy,i=t.convertedBy,s=t.format,u=t.userDefinedMetadata,null==r&&null==o)throw new Error("The JSON from HTTP path "+this.path+" contains neither model topology or manifest for weights.");return null==o?[3,7]:[4,this.loadWeights(o)];case 6:f=h.sent(),c=f[0],l=f[1],h.label=7;case 7:return[2,{modelTopology:r,weightSpecs:c,weightData:l,userDefinedMetadata:u,generatedBy:a,convertedBy:i,format:s}]}}))}))},e.prototype.loadWeights=function(e){return Xt(this,void 0,void 0,(function(){var t,n,r,o,a,i,s,u,c,l,f;return Kt(this,(function(h){switch(h.label){case 0:for(t=Array.isArray(this.path)?this.path[1]:this.path,n=function(e){var t=e.lastIndexOf("/"),n=e.lastIndexOf("?");return[e.substring(0,t)+"/",n>t?e.substring(n):""]}(t),r=n[0],o=n[1],a=this.weightPathPrefix||r,i=[],s=0,u=e;s<u.length;s++)c=u[s],i.push.apply(i,c.weights);return l=[],e.forEach((function(e){e.paths.forEach((function(e){l.push(a+e+o)}))})),[4,ed(l,{requestInit:this.requestInit,fetchFunc:this.fetch,onProgress:this.onProgress})];case 1:return f=h.sent(),[2,[i,_p(f)]]}}))}))},e.URL_SCHEME_REGEX=/^https?:\/\//,e}();function rd(e){return null!=e.match(nd.URL_SCHEME_REGEX)}var od=function(e,t){return"undefined"==typeof fetch?null:(Array.isArray(e)?e.every((function(e){return rd(e)})):rd(e))?ad(e,{onProgress:t}):null};function ad(e,t){return new nd(e,t)}Cp.registerSaveRouter(od),Cp.registerLoadRouter(od);var id,sd=function(){function e(e){this.modelArtifacts=e}return e.prototype.load=function(){return Xt(this,void 0,void 0,(function(){return Kt(this,(function(e){return[2,this.modelArtifacts]}))}))},e}(),ud=function(){function e(e){this.saveHandler=e}return e.prototype.save=function(e){return Xt(this,void 0,void 0,(function(){return Kt(this,(function(t){return[2,this.saveHandler(e)]}))}))},e}(),cd=Object.freeze({browserFiles:function(e){return new Zp(e)},browserHTTPRequest:function(e,t){return ad(e,t)},concatenateArrayBuffers:_p,decodeWeights:bp,encodeWeights:function(e,t){return Xt(this,void 0,void 0,(function(){var n,r,o,a,i,s=this;return Kt(this,(function(u){switch(u.label){case 0:for(n=[],r=[],o=Array.isArray(e)?e.map((function(e){return e.name})):Object.keys(e),a=function(a){var i=o[a],u=Array.isArray(e)?e[a].tensor:e[i];if("float32"!==u.dtype&&"int32"!==u.dtype&&"bool"!==u.dtype&&"string"!==u.dtype)throw new Error("Unsupported dtype in weight '"+i+"': "+u.dtype);var c={name:i,shape:u.shape,dtype:u.dtype};if("string"===u.dtype){var l=new Promise((function(e){return Xt(s,void 0,void 0,(function(){var t,n,r,o,a,i,s;return Kt(this,(function(c){switch(c.label){case 0:return[4,u.bytes()];case 1:for(t=c.sent(),n=t.reduce((function(e,t){return e+t.length}),0)+4*t.length,r=new Uint8Array(n),o=0,a=0;a<t.length;a++)i=t[a],s=new Uint8Array(new Uint32Array([i.length]).buffer),r.set(s,o),o+=4,r.set(i,o),o+=i.length;return e(r),[2]}}))}))}));r.push(l)}else r.push(u.data());null!=t&&(c.group=t),n.push(c)},i=0;i<o.length;++i)a(i);return[4,Promise.all(r)];case 1:return[2,{data:wp(u.sent()),specs:n}]}}))}))},fromMemory:function(e,t,n,r){return 1===arguments.length?null!=e.modelTopology||null!=e.weightSpecs?new sd(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 sd({modelTopology:e})):(console.warn("Please call tf.io.fromMemory() with only one argument. The argument should be of type ModelArtifacts. The multi-argument signature of tf.io.fromMemory() has been deprecated and will be removed in a future release."),new sd({modelTopology:e,weightSpecs:t,weightData:n,trainingConfig:r}))},getLoadHandlers:function(e,t){return Cp.getLoadHandlers(e,t)},getModelArtifactsInfoForJSON:Op,getSaveHandlers:function(e){return Cp.getSaveHandlers(e)},http:ad,isHTTPScheme:rd,loadWeights:function(e,t,n,r){return void 0===t&&(t=""),Xt(this,void 0,void 0,(function(){return Kt(this,(function(o){return[2,td((function(e){return ed(e,{requestInit:r})}))(e,t,n)]}))}))},registerLoadRouter:function(e){return Cp.registerLoadRouter(e)},registerSaveRouter:function(e){return Cp.registerSaveRouter(e)},weightsLoaderFactory:td,withSaveHandler:function(e){return new ud(e)},copyModel:function(e,t){return Xt(this,void 0,void 0,(function(){return Kt(this,(function(n){return[2,Ap(e,t,!1)]}))}))},listModels:function(){return Xt(this,void 0,void 0,(function(){var e,t,n,r,o,a,i;return Kt(this,(function(s){switch(s.label){case 0:e=Rp.getSchemes(),t={},n=0,r=e,s.label=1;case 1:return n<r.length?(o=r[n],[4,Rp.getManager(o).listModels()]):[3,4];case 2:for(i in a=s.sent())t[o+Ip+i]=a[i];s.label=3;case 3:return n++,[3,1];case 4:return[2,t]}}))}))},moveModel:function(e,t){return Xt(this,void 0,void 0,(function(){return Kt(this,(function(n){return[2,Ap(e,t,!0)]}))}))},removeModel:function(e){return Xt(this,void 0,void 0,(function(){var t;return Kt(this,(function(n){return t=Sp(e),[2,Rp.getManager(t.scheme).removeModel(t.path)]}))}))}}),ld=zo({confusionMatrix_:function(e,t,n){var r=Ro(e,"labels","confusionMatrix"),o=Ro(t,"predictions","confusionMatrix");un(null==n||n>0&&Number.isInteger(n),(function(){return"If provided, numClasses must be a positive integer, but got "+n})),un(1===r.rank,(function(){return"Expected the rank of labels to be 1, but got "+r.rank})),un(1===o.rank,(function(){return"Expected the rank of predictions to be 1, but got "+o.rank})),un(r.shape[0]===o.shape[0],(function(){return"Mismatch in the number of examples: "+r.shape[0]+" vs. "+o.shape[0]+". Labels and predictions should have the same number of elements."})),un(n>0&&Number.isInteger(n),(function(){return"numClasses is required to be a positive integer, but got "+n}));var a=Pa(r.asType("int32"),n),i=Pa(o.asType("int32"),n);return a.transpose().matMul(i).asType("int32")}}),fd=(Object.freeze({confusionMatrix:ld}),zo({fromPixels_:function(e,t){if(void 0===t&&(t=3),t>4)throw new Error("Cannot construct Tensor with more than 4 channels from pixels.");if(null==e)throw new Error("pixels passed to tf.browser.fromPixels() can not be null");var n=!1,r=!1,o=!1,a=!1,i=!1;if(e.data instanceof Uint8Array)n=!0;else if("undefined"!=typeof ImageData&&e instanceof ImageData)r=!0;else if("undefined"!=typeof HTMLVideoElement&&e instanceof HTMLVideoElement)o=!0;else if("undefined"!=typeof HTMLImageElement&&e instanceof HTMLImageElement)a=!0;else{if(null==e.getContext)throw new Error("pixels passed to tf.browser.fromPixels() must be either an HTMLVideoElement, HTMLImageElement, HTMLCanvasElement, ImageData in browser, or OffscreenCanvas, ImageData in webworker or {data: Uint32Array, width: number, height: number}, but was "+e.constructor.name);i=!0}if(o&&o&&e.readyState<2)throw new Error("The video element has not loaded data yet. Please wait for `loadeddata` event on the <video> element.");if(null!=Qt("FromPixels",mr.backendName))return mr.runKernel("FromPixels",{pixels:e},{numChannels:t});var s,u,c=o?[e.videoWidth,e.videoHeight]:[e.width,e.height],l=c[0],f=c[1];if(i?s=e.getContext("2d").getImageData(0,0,l,f).data:r||n?s=e.data:(a||o)&&(null==id&&(id=document.createElement("canvas").getContext("2d")),id.canvas.width=l,id.canvas.height=f,id.drawImage(e,0,0,l,f),s=id.getImageData(0,0,l,f).data),4===t)u=new Int32Array(s);else{var h=l*f;u=new Int32Array(h*t);for(var p=0;p<h;p++)for(var d=0;d<t;++d)u[p*t+d]=s[4*p+d]}return $o(u,[f,l,t],"int32")}})),hd=Object.freeze({toPixels:function(e,t){return Xt(this,void 0,void 0,(function(){var n,r,o,a,i,s,u,c,l,f,h,p,d,v,m,g,y,b,w,x,E,_,k;return Kt(this,(function(O){switch(O.label){case 0:if(n=Ro(e,"img","toPixels"),e instanceof er||(n=n.toInt()),2!==n.rank&&3!==n.rank)throw new Error("toPixels only supports rank 2 or 3 tensors, got rank "+n.rank+".");if(r=n.shape.slice(0,2),o=r[0],a=r[1],(i=2===n.rank?1:n.shape[2])>4||2===i)throw new Error("toPixels only supports depth of size 1, 3 or 4 but got "+i);return[4,n.data()];case 1:return s=O.sent(),u=n.min(),c=n.max(),[4,Promise.all([u.data(),c.data()])];case 2:if(l=O.sent(),f=l[0],h=l[1],p=f[0],d=h[0],u.dispose(),c.dispose(),"float32"===n.dtype){if(p<0||d>1)throw new Error("Tensor values for a float32 Tensor must be in the range [0 - 1] but got range ["+p+" - "+d+"].")}else{if("int32"!==n.dtype)throw new Error("Unsupported type for toPixels: "+n.dtype+". Please use float32 or int32 tensors.");if(p<0||d>255)throw new Error("Tensor values for a int32 Tensor must be in the range [0 - 255] but got range ["+p+" - "+d+"].")}for(v="float32"===n.dtype?255:1,m=new Uint8ClampedArray(a*o*4),g=0;g<o*a;++g)y=void 0,b=void 0,w=void 0,x=void 0,1===i?(y=s[g]*v,b=s[g]*v,w=s[g]*v,x=255):3===i?(y=s[3*g]*v,b=s[3*g+1]*v,w=s[3*g+2]*v,x=255):4===i&&(y=s[4*g]*v,b=s[4*g+1]*v,w=s[4*g+2]*v,x=s[4*g+3]*v),m[0+(E=4*g)]=Math.round(y),m[E+1]=Math.round(b),m[E+2]=Math.round(w),m[E+3]=Math.round(x);return null!=t&&(t.width=a,t.height=o,_=t.getContext("2d"),k=new ImageData(m,a,o),_.putImageData(k,0,0)),n!==e&&n.dispose(),[2,m]}}))}))},fromPixels:fd}),pd=function(){function e(){}return e.prototype.getClassName=function(){return this.constructor.className},e.fromConfig=function(e,t){return new e(t)},e}(),dd=function(){function e(){this.classNameMap={}}return e.getMap=function(){return null==e.instance&&(e.instance=new e),e.instance},e.register=function(t){e.getMap().classNameMap[t.className]=[t,t.fromConfig]},e}();function vd(e){un(null!=e.className,(function(){return"Class being registered does not have the static className property defined."})),un("string"==typeof e.className,(function(){return"className is required to be a string, but got type "+typeof e.className})),un(e.className.length>0,(function(){return"Class being registered has an empty-string as its className, which is disallowed."})),dd.register(e)}Object.freeze({Serializable:pd,SerializationMap:dd,registerClass:vd});function md(){return 32===mr.backend.floatPrecision()?.001:.1}function gd(e,t,n){var r=!0;if((In(e)||In(t))&&(r=!1),In(e)&&In(t)&&(r=!0),r){var o=e.constructor.name,a=t.constructor.name;if(o!==a)throw new Error("Arrays are of different type. Actual: "+o+". Expected: "+a)}if(Array.isArray(e)&&Array.isArray(t)){var i=Co(e),s=Co(t);if(!pn(i,s))throw new Error("Arrays have different shapes. Actual: ["+i+"]. Expected: ["+s+"]")}var u=In(e)?e:fn(e),c=In(t)?t:fn(t);if(u.length!==c.length)throw new Error("Arrays have different lengths actual: "+u.length+" vs expected: "+c.length+".\nActual: "+u+".\nExpected: "+c+".");for(var l=0;l<c.length;++l){var f=u[l],h=c[l];if(!n(f,h))throw new Error("Arrays differ: actual["+l+"] = "+f+", expected["+l+"] = "+h+".\nActual: "+u+".\nExpected: "+c+".")}}function yd(e,t,n){return!isFinite(e)&&!isFinite(t)||!(isNaN(e)||isNaN(t)||Math.abs(e-t)>n)}Object.freeze({TEST_EPSILON_FLOAT16:.1,expectArraysClose:function(e,t,n){return null==n&&(n=md()),gd(e,t,(function(e,t){return yd(e,t,n)}))},testEpsilon:md,expectPromiseToFail:function(e,t){e().then((function(){return t.fail()}),(function(){return t()}))},expectArraysEqual:function(e,t){var n="string"==typeof t||"number"==typeof t||"boolean"==typeof t?[t]:t;return An(e)||An(e[0])||An(t)||An(t[0])?gd(e,n,(function(e,t){return e==t})):gd(e,t,(function(e,t){return yd(e,t,0)}))},expectNumbersClose:function(e,t,n){if(null==n&&(n=md()),!yd(e,t,n))throw new Error("Numbers differ: actual === "+e+", expected === "+t)},expectValuesInRange:function(e,t,n){for(var r=0;r<e.length;r++)if(e[r]<t||e[r]>n)throw new Error("Value out of range:"+e[r]+" low: "+t+", high: "+n)},expectArrayBuffersEqual:function(e,t){expect(new Float32Array(e)).toEqual(new Float32Array(t))}}),Object.freeze({gpgpu_util:gu,webgl_util:wo,forceHalfFloat:function(){Yt().set("WEBGL_FORCE_F16_TEXTURES",!0)},MathBackendWebGL:_c,setWebGLContext:kr,GPGPUContext:yu});var bd=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return Gt(t,e),t.prototype.minimize=function(e,t,n){void 0===t&&(t=!1);var r=this.computeGradients(e,n),o=r.value,a=r.grads;if(null!=n){var i=n.map((function(e){return{name:e.name,tensor:a[e.name]}}));this.applyGradients(i)}else this.applyGradients(a);return ko(a),t?o:(o.dispose(),null)},Object.defineProperty(t.prototype,"iterations",{get:function(){return null==this.iterations_&&(this.iterations_=0),this.iterations_},enumerable:!0,configurable:!0}),t.prototype.incrementIterations=function(){this.iterations_=this.iterations+1},t.prototype.computeGradients=function(e,t){return function(e,t){un(Nn(e),(function(){return"The f passed in variableGrads(f) must be a function"})),un(null==t||Array.isArray(t)&&t.every((function(e){return e instanceof ir})),(function(){return"The varList passed in variableGrads(f, varList) must be an array of variables"}));var n=null!=t;if(!n)for(var r in t=[],mr.registeredVariables)t.push(mr.registeredVariables[r]);var o=n?t.filter((function(e){return!e.trainable})):null,a=t.length;un((t=t.filter((function(e){return e.trainable}))).length>0,(function(){return"variableGrads() expects at least one of the input variables to be trainable, but none of the "+a+" variables is trainable."}));var i=mr.gradients(e,t,null,!0),s=i.value,u=i.grads;un(u.some((function(e){return null!=e})),(function(){return"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()."})),un(0===s.rank,(function(){return"The f passed in variableGrads(f) must return a scalar, but it returned a rank-"+s.rank+" tensor"}));var c={};return t.forEach((function(e,t){null!=u[t]&&(c[e.name]=u[t])})),null!=o&&o.forEach((function(e){return c[e.name]=null})),{value:s,grads:c}}(e,t)},t.prototype.dispose=function(){null!=this.iterations_&&ko(this.iterations_)},t.prototype.saveIterations=function(){return Xt(this,void 0,void 0,(function(){return Kt(this,(function(e){return null==this.iterations_&&(this.iterations_=0),[2,{name:"iter",tensor:Go(this.iterations_,"int32")}]}))}))},t.prototype.getWeights=function(){return Xt(this,void 0,void 0,(function(){return Kt(this,(function(e){throw new Error("getWeights() is not implemented for this optimizer yet.")}))}))},t.prototype.setWeights=function(e){return Xt(this,void 0,void 0,(function(){return Kt(this,(function(e){throw new Error("setWeights() is not implemented for this optimizer class "+this.getClassName())}))}))},t.prototype.extractIterations=function(e){return Xt(this,void 0,void 0,(function(){var t;return Kt(this,(function(n){switch(n.label){case 0:return t=this,[4,e[0].tensor.data()];case 1:return t.iterations_=n.sent()[0],[2,e.slice(1)]}}))}))},t}(pd);Object.defineProperty(bd,Symbol.hasInstance,{value:function(e){return null!=e.minimize&&null!=e.computeGradients&&null!=e.applyGradients}});var wd=function(e){function t(t,n,r){void 0===r&&(r=null);var o=e.call(this)||this;return o.learningRate=t,o.rho=n,o.epsilon=r,o.accumulatedGrads=[],o.accumulatedUpdates=[],null==r&&(o.epsilon=mr.backend.epsilon()),o}return Gt(t,e),t.prototype.applyGradients=function(e){var t=this;(Array.isArray(e)?e.map((function(e){return e.name})):Object.keys(e)).forEach((function(n,r){var o=mr.registeredVariables[n];null==t.accumulatedGrads[r]&&(t.accumulatedGrads[r]={originalName:n+"/accum_grad",variable:_o((function(){return na(o).variable(!1)}))}),null==t.accumulatedUpdates[r]&&(t.accumulatedUpdates[r]={originalName:n+"/accum_var",variable:_o((function(){return na(o).variable(!1)}))});var a=Array.isArray(e)?e[r].tensor:e[n];if(null!=a){var i=t.accumulatedGrads[r].variable,s=t.accumulatedUpdates[r].variable;_o((function(){var e=i.mul(t.rho).add(a.square().mul(1-t.rho)),n=s.add(t.epsilon).sqrt().div(i.add(t.epsilon).sqrt()).mul(a),r=s.mul(t.rho).add(n.square().mul(1-t.rho));i.assign(e),s.assign(r);var u=n.mul(-t.learningRate).add(o);o.assign(u)}))}})),this.incrementIterations()},t.prototype.dispose=function(){null!=this.accumulatedUpdates&&(ko(this.accumulatedGrads.map((function(e){return e.variable}))),ko(this.accumulatedUpdates.map((function(e){return e.variable}))))},t.prototype.getWeights=function(){return Xt(this,void 0,void 0,(function(){var e;return Kt(this,(function(t){switch(t.label){case 0:return e=this.accumulatedGrads.concat(this.accumulatedUpdates),[4,this.saveIterations()];case 1:return[2,[t.sent()].concat(e.map((function(e){return{name:e.originalName,tensor:e.variable}})))]}}))}))},t.prototype.setWeights=function(e){return Xt(this,void 0,void 0,(function(){var t;return Kt(this,(function(n){switch(n.label){case 0:return[4,this.extractIterations(e)];case 1:return e=n.sent(),t=e.length/2,this.accumulatedGrads=e.slice(0,t).map((function(e){return{originalName:e.name,variable:e.tensor.variable(!1)}})),this.accumulatedUpdates=e.slice(t,2*t).map((function(e){return{originalName:e.name,variable:e.tensor.variable(!1)}})),[2]}}))}))},t.prototype.getConfig=function(){return{learningRate:this.learningRate,rho:this.rho,epsilon:this.epsilon}},t.fromConfig=function(e,t){return new e(t.learningRate,t.rho,t.epsilon)},t.className="Adadelta",t}(bd);vd(wd);var xd=function(e){function t(t,n){void 0===n&&(n=.1);var r=e.call(this)||this;return r.learningRate=t,r.initialAccumulatorValue=n,r.accumulatedGrads=[],r}return Gt(t,e),t.prototype.applyGradients=function(e){var t=this;(Array.isArray(e)?e.map((function(e){return e.name})):Object.keys(e)).forEach((function(n,r){var o=mr.registeredVariables[n];null==t.accumulatedGrads[r]&&(t.accumulatedGrads[r]={originalName:n+"/accumulator",variable:_o((function(){return Qo(o.shape,t.initialAccumulatorValue).variable(!1)}))});var a=Array.isArray(e)?e[r].tensor:e[n];if(null!=a){var i=t.accumulatedGrads[r].variable;_o((function(){var e=i.add(a.square());i.assign(e);var n=a.div(e.add(mr.backend.epsilon()).sqrt()).mul(-t.learningRate).add(o);o.assign(n)}))}})),this.incrementIterations()},t.prototype.dispose=function(){null!=this.accumulatedGrads&&ko(this.accumulatedGrads.map((function(e){return e.variable})))},t.prototype.getWeights=function(){return Xt(this,void 0,void 0,(function(){return Kt(this,(function(e){switch(e.label){case 0:return[4,this.saveIterations()];case 1:return[2,[e.sent()].concat(this.accumulatedGrads.map((function(e){return{name:e.originalName,tensor:e.variable}})))]}}))}))},t.prototype.setWeights=function(e){return Xt(this,void 0,void 0,(function(){return Kt(this,(function(t){switch(t.label){case 0:return[4,this.extractIterations(e)];case 1:return e=t.sent(),this.accumulatedGrads=e.map((function(e){return{originalName:e.name,variable:e.tensor.variable(!1)}})),[2]}}))}))},t.prototype.getConfig=function(){return{learningRate:this.learningRate,initialAccumulatorValue:this.initialAccumulatorValue}},t.fromConfig=function(e,t){return new e(t.learningRate,t.initialAccumulatorValue)},t.className="Adagrad",t}(bd);vd(xd);var Ed=function(e){function t(t,n,r,o){void 0===o&&(o=null);var a=e.call(this)||this;return a.learningRate=t,a.beta1=n,a.beta2=r,a.epsilon=o,a.accumulatedFirstMoment=[],a.accumulatedSecondMoment=[],_o((function(){a.accBeta1=Go(n).variable(),a.accBeta2=Go(r).variable()})),null==o&&(a.epsilon=mr.backend.epsilon()),a}return Gt(t,e),t.prototype.applyGradients=function(e){var t=this,n=Array.isArray(e)?e.map((function(e){return e.name})):Object.keys(e);_o((function(){var r=ql(1,t.accBeta1),o=ql(1,t.accBeta2);n.forEach((function(n,a){var i=mr.registeredVariables[n];null==t.accumulatedFirstMoment[a]&&(t.accumulatedFirstMoment[a]={originalName:n+"/m",variable:_o((function(){return na(i).variable(!1)}))}),null==t.accumulatedSecondMoment[a]&&(t.accumulatedSecondMoment[a]={originalName:n+"/v",variable:_o((function(){return na(i).variable(!1)}))});var s=Array.isArray(e)?e[a].tensor:e[n];if(null!=s){var u=t.accumulatedFirstMoment[a].variable,c=t.accumulatedSecondMoment[a].variable,l=u.mul(t.beta1).add(s.mul(1-t.beta1)),f=c.mul(t.beta2).add(s.square().mul(1-t.beta2)),h=l.div(r),p=f.div(o);u.assign(l),c.assign(f);var d=h.div(p.sqrt().add(t.epsilon)).mul(-t.learningRate).add(i);i.assign(d)}})),t.accBeta1.assign(t.accBeta1.mul(t.beta1)),t.accBeta2.assign(t.accBeta2.mul(t.beta2))})),this.incrementIterations()},t.prototype.dispose=function(){this.accBeta1.dispose(),this.accBeta2.dispose(),null!=this.accumulatedFirstMoment&&ko(this.accumulatedFirstMoment.map((function(e){return e.variable}))),null!=this.accumulatedSecondMoment&&ko(this.accumulatedSecondMoment.map((function(e){return e.variable})))},t.prototype.getWeights=function(){return Xt(this,void 0,void 0,(function(){var e;return Kt(this,(function(t){switch(t.label){case 0:return e=this.accumulatedFirstMoment.concat(this.accumulatedSecondMoment),[4,this.saveIterations()];case 1:return[2,[t.sent()].concat(e.map((function(e){return{name:e.originalName,tensor:e.variable}})))]}}))}))},t.prototype.setWeights=function(e){return Xt(this,void 0,void 0,(function(){var t,n=this;return Kt(this,(function(r){switch(r.label){case 0:return[4,this.extractIterations(e)];case 1:return e=r.sent(),_o((function(){n.accBeta1.assign(Hl(n.beta1,n.iterations_+1)),n.accBeta2.assign(Hl(n.beta2,n.iterations_+1))})),t=e.length/2,this.accumulatedFirstMoment=e.slice(0,t).map((function(e){return{originalName:e.name,variable:e.tensor.variable(!1)}})),this.accumulatedSecondMoment=e.slice(t,2*t).map((function(e){return{originalName:e.name,variable:e.tensor.variable(!1)}})),[2]}}))}))},t.prototype.getConfig=function(){return{learningRate:this.learningRate,beta1:this.beta1,beta2:this.beta2,epsilon:this.epsilon}},t.fromConfig=function(e,t){return new e(t.learningRate,t.beta1,t.beta2,t.epsilon)},t.className="Adam",t}(bd);vd(Ed);var _d=function(e){function t(t,n,r,o,a){void 0===o&&(o=null),void 0===a&&(a=0);var i=e.call(this)||this;return i.learningRate=t,i.beta1=n,i.beta2=r,i.epsilon=o,i.decay=a,i.accumulatedFirstMoment=[],i.accumulatedWeightedInfNorm=[],_o((function(){i.iteration=Go(0).variable(),i.accBeta1=Go(n).variable()})),null==o&&(i.epsilon=mr.backend.epsilon()),i}return Gt(t,e),t.prototype.applyGradients=function(e){var t=this,n=Array.isArray(e)?e.map((function(e){return e.name})):Object.keys(e);_o((function(){var r=ql(1,t.accBeta1),o=Sl(-t.learningRate,t.iteration.mul(t.decay).add(1));n.forEach((function(n,a){var i=mr.registeredVariables[n];null==t.accumulatedFirstMoment[a]&&(t.accumulatedFirstMoment[a]={originalName:n+"/m",variable:na(i).variable(!1)}),null==t.accumulatedWeightedInfNorm[a]&&(t.accumulatedWeightedInfNorm[a]={originalName:n+"/v",variable:na(i).variable(!1)});var s=Array.isArray(e)?e[a].tensor:e[n];if(null!=s){var u=t.accumulatedFirstMoment[a].variable,c=t.accumulatedWeightedInfNorm[a].variable,l=u.mul(t.beta1).add(s.mul(1-t.beta1)),f=c.mul(t.beta2),h=s.abs(),p=f.maximum(h);u.assign(l),c.assign(p);var d=o.div(r).mul(l.div(p.add(t.epsilon))).add(i);i.assign(d)}})),t.iteration.assign(t.iteration.add(1)),t.accBeta1.assign(t.accBeta1.mul(t.beta1))})),this.incrementIterations()},t.prototype.dispose=function(){this.accBeta1.dispose(),this.iteration.dispose(),null!=this.accumulatedFirstMoment&&ko(this.accumulatedFirstMoment.map((function(e){return e.variable}))),null!=this.accumulatedWeightedInfNorm&&ko(this.accumulatedWeightedInfNorm.map((function(e){return e.variable})))},t.prototype.getWeights=function(){return Xt(this,void 0,void 0,(function(){return Kt(this,(function(e){throw new Error("getWeights() is not implemented for Adamax yet.")}))}))},t.prototype.setWeights=function(e){return Xt(this,void 0,void 0,(function(){return Kt(this,(function(e){throw new Error("setWeights() is not implemented for Adamax yet.")}))}))},t.prototype.getConfig=function(){return{learningRate:this.learningRate,beta1:this.beta1,beta2:this.beta2,epsilon:this.epsilon,decay:this.decay}},t.fromConfig=function(e,t){return new e(t.learningRate,t.beta1,t.beta2,t.epsilon,t.decay)},t.className="Adamax",t}(bd);vd(_d);var kd=function(e){function t(t){var n=e.call(this)||this;return n.learningRate=t,n.setLearningRate(t),n}return Gt(t,e),t.prototype.applyGradients=function(e){var t=this;(Array.isArray(e)?e.map((function(e){return e.name})):Object.keys(e)).forEach((function(n,r){var o=Array.isArray(e)?e[r].tensor:e[n];if(null!=o){var a=mr.registeredVariables[n];_o((function(){var e=t.c.mul(o).add(a);a.assign(e)}))}})),this.incrementIterations()},t.prototype.setLearningRate=function(e){this.learningRate=e,null!=this.c&&this.c.dispose(),this.c=function(e){return mr.keep(e)}(Go(-e))},t.prototype.dispose=function(){this.c.dispose()},t.prototype.getWeights=function(){return Xt(this,void 0,void 0,(function(){return Kt(this,(function(e){switch(e.label){case 0:return[4,this.saveIterations()];case 1:return[2,[e.sent()]]}}))}))},t.prototype.setWeights=function(e){return Xt(this,void 0,void 0,(function(){return Kt(this,(function(t){switch(t.label){case 0:return[4,this.extractIterations(e)];case 1:if(0!==(e=t.sent()).length)throw new Error("SGD optimizer does not have settable weights.");return[2]}}))}))},t.prototype.getConfig=function(){return{learningRate:this.learningRate}},t.fromConfig=function(e,t){return new e(t.learningRate)},t.className="SGD",t}(bd);vd(kd);var Od=function(e){function t(t,n,r){void 0===r&&(r=!1);var o=e.call(this,t)||this;return o.learningRate=t,o.momentum=n,o.useNesterov=r,o.accumulations=[],o.m=Go(o.momentum),o}return Gt(t,e),t.prototype.applyGradients=function(e){var t=this;(Array.isArray(e)?e.map((function(e){return e.name})):Object.keys(e)).forEach((function(n,r){var o=mr.registeredVariables[n];null==t.accumulations[r]&&(t.accumulations[r]={originalName:n+"/momentum",variable:_o((function(){return na(o).variable(!1)}))});var a=t.accumulations[r].variable,i=Array.isArray(e)?e[r].tensor:e[n];null!=i&&_o((function(){var e,n=t.m.mul(a).add(i);e=t.useNesterov?t.c.mul(i.add(n.mul(t.m))).add(o):t.c.mul(n).add(o),a.assign(n),o.assign(e)}))})),this.incrementIterations()},t.prototype.dispose=function(){this.m.dispose(),null!=this.accumulations&&ko(this.accumulations.map((function(e){return e.variable})))},t.prototype.setMomentum=function(e){this.momentum=e},t.prototype.getWeights=function(){return Xt(this,void 0,void 0,(function(){return Kt(this,(function(e){switch(e.label){case 0:return[4,this.saveIterations()];case 1:return[2,[e.sent()].concat(this.accumulations.map((function(e){return{name:e.originalName,tensor:e.variable}})))]}}))}))},t.prototype.setWeights=function(e){return Xt(this,void 0,void 0,(function(){return Kt(this,(function(t){switch(t.label){case 0:return[4,this.extractIterations(e)];case 1:return e=t.sent(),this.accumulations=e.map((function(e){return{originalName:e.name,variable:e.tensor.variable(!1)}})),[2]}}))}))},t.prototype.getConfig=function(){return{learningRate:this.learningRate,momentum:this.momentum,useNesterov:this.useNesterov}},t.fromConfig=function(e,t){return new e(t.learningRate,t.momentum,t.useNesterov)},t.className="Momentum",t}(kd);vd(Od);var Cd=function(e){function t(t,n,r,o,a){void 0===n&&(n=.9),void 0===r&&(r=0),void 0===o&&(o=null),void 0===a&&(a=!1);var i=e.call(this)||this;return i.learningRate=t,i.decay=n,i.momentum=r,i.epsilon=o,i.accumulatedMeanSquares=[],i.accumulatedMoments=[],i.accumulatedMeanGrads=[],i.centered=a,null==o&&(i.epsilon=mr.backend.epsilon()),i}return Gt(t,e),t.prototype.applyGradients=function(e){var t=this;(Array.isArray(e)?e.map((function(e){return e.name})):Object.keys(e)).forEach((function(n,r){var o=mr.registeredVariables[n];null==t.accumulatedMeanSquares[r]&&(t.accumulatedMeanSquares[r]={originalName:n+"/rms",variable:_o((function(){return na(o).variable(!1)}))}),null==t.accumulatedMoments[r]&&(t.accumulatedMoments[r]={originalName:n+"/momentum",variable:_o((function(){return na(o).variable(!1)}))}),null==t.accumulatedMeanGrads[r]&&t.centered&&(t.accumulatedMeanGrads[r]={originalName:n+"/mg",variable:_o((function(){return na(o).variable(!1)}))});var a=Array.isArray(e)?e[r].tensor:e[n];if(null!=a){var i=t.accumulatedMeanSquares[r].variable,s=t.accumulatedMoments[r].variable;_o((function(){var e=i.mul(t.decay).add(a.square().mul(1-t.decay));if(t.centered){var n=t.accumulatedMeanGrads[r].variable,u=n.mul(t.decay).add(a.mul(1-t.decay)),c=s.mul(t.momentum).add(a.mul(t.learningRate).div(e.sub(u.square().add(t.epsilon)).sqrt()));i.assign(e),n.assign(u),s.assign(c);var l=o.sub(c);o.assign(l)}else{var f=i.mul(t.decay).add(a.square().mul(1-t.decay));c=s.mul(t.momentum).add(a.mul(t.learningRate).div(f.add(t.epsilon).sqrt())),i.assign(f),s.assign(c),l=o.sub(c),o.assign(l)}}))}})),this.incrementIterations()},t.prototype.dispose=function(){null!=this.accumulatedMeanSquares&&ko(this.accumulatedMeanSquares.map((function(e){return e.variable}))),null!=this.accumulatedMeanGrads&&this.centered&&ko(this.accumulatedMeanGrads.map((function(e){return e.variable}))),null!=this.accumulatedMoments&&ko(this.accumulatedMoments.map((function(e){return e.variable})))},t.prototype.getWeights=function(){return Xt(this,void 0,void 0,(function(){var e;return Kt(this,(function(t){switch(t.label){case 0:return e=this.accumulatedMeanSquares.concat(this.accumulatedMoments),this.centered&&e.push.apply(e,this.accumulatedMeanGrads),[4,this.saveIterations()];case 1:return[2,[t.sent()].concat(e.map((function(e){return{name:e.originalName,tensor:e.variable}})))]}}))}))},t.prototype.setWeights=function(e){return Xt(this,void 0,void 0,(function(){var t;return Kt(this,(function(n){switch(n.label){case 0:return[4,this.extractIterations(e)];case 1:return e=n.sent(),t=this.centered?e.length/3:e.length/2,this.accumulatedMeanSquares=e.slice(0,t).map((function(e){return{originalName:e.name,variable:e.tensor.variable(!1)}})),this.accumulatedMoments=e.slice(t,2*t).map((function(e){return{originalName:e.name,variable:e.tensor.variable(!1)}})),this.centered&&(this.accumulatedMeanGrads=e.slice(2*t,3*t).map((function(e){return{originalName:e.name,variable:e.tensor.variable(!1)}}))),[2]}}))}))},t.prototype.getConfig=function(){return{learningRate:this.learningRate,decay:this.decay,momentum:this.momentum,epsilon:this.epsilon,centered:this.centered}},t.fromConfig=function(e,t){return new e(t.learningRate,t.decay,t.momentum,t.epsilon,t.centered)},t.className="RMSProp",t}(bd);vd(Cd);var Id=function(){function e(){}return e.sgd=function(e){return new kd(e)},e.momentum=function(e,t,n){return void 0===n&&(n=!1),new Od(e,t,n)},e.rmsprop=function(e,t,n,r,o){return void 0===t&&(t=.9),void 0===n&&(n=0),void 0===r&&(r=null),void 0===o&&(o=!1),new Cd(e,t,n,r,o)},e.adam=function(e,t,n,r){return void 0===e&&(e=.001),void 0===t&&(t=.9),void 0===n&&(n=.999),void 0===r&&(r=null),new Ed(e,t,n,r)},e.adadelta=function(e,t,n){return void 0===e&&(e=.001),void 0===t&&(t=.95),void 0===n&&(n=null),new wd(e,t,n)},e.adamax=function(e,t,n,r,o){return void 0===e&&(e=.002),void 0===t&&(t=.9),void 0===n&&(n=.999),void 0===r&&(r=null),void 0===o&&(o=0),new _d(e,t,n,r,o)},e.adagrad=function(e,t){return void 0===t&&(t=.1),new xd(e,t)},e}();Id.sgd,Id.momentum,Id.adadelta,Id.adagrad,Id.rmsprop,Id.adamax,Id.adam,"undefined"!=typeof requestAnimationFrame?requestAnimationFrame:"undefined"!=typeof setImmediate&&setImmediate;Zn=up;var Rd=function(e,t){return Rd=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])},Rd(e,t)};function Sd(e,t){function n(){this.constructor=e}Rd(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}var Ad=function(){return Ad=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},Ad.apply(this,arguments)};function Pd(e,t,n,r){return new(n||(n=Promise))((function(o,a){function i(e){try{u(r.next(e))}catch(Gt){a(Gt)}}function s(e){try{u(r.throw(e))}catch(Gt){a(Gt)}}function u(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(i,s)}u((r=r.apply(e,t||[])).next())}))}function Td(e,t){var n,r,o,a,i={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return a={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(a){return function(s){return function(a){if(n)throw new TypeError("Generator is already executing.");for(;i;)try{if(n=1,r&&(o=2&a[0]?r.return:a[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,a[1])).done)return o;switch(r=0,o&&(a=[2&a[0],o.value]),a[0]){case 0:case 1:o=a;break;case 4:return i.label++,{value:a[1],done:!1};case 5:i.label++,r=a[1],a=[0];continue;case 7:a=i.ops.pop(),i.trys.pop();continue;default:if(!(o=i.trys,(o=o.length>0&&o[o.length-1])||6!==a[0]&&2!==a[0])){i=0;continue}if(3===a[0]&&(!o||a[1]>o[0]&&a[1]<o[3])){i.label=a[1];break}if(6===a[0]&&i.label<o[1]){i.label=o[1],o=a;break}if(o&&i.label<o[2]){i.label=o[2],i.ops.push(a);break}o[2]&&i.ops.pop(),i.trys.pop();continue}a=t.call(e,i)}catch(Gt){a=[6,Gt],r=0}finally{n=o=0}if(5&a[0])throw a[1];return{value:a[0]?a[1]:void 0,done:!0}}([a,s])}}}function Dd(){for(var e=0,t=0,n=arguments.length;t<n;t++)e+=arguments[t].length;var r=Array(e),o=0;for(t=0;t<n;t++)for(var a=arguments[t],i=0,s=a.length;i<s;i++,o++)r[o]=a[i];return r}var Nd=function(){function e(e,t){if(!Wd(e)||!Wd(t))throw new Error("Dimensions.constructor - expected width and height to be valid numbers, instead have "+JSON.stringify({width:e,height:t}));this._width=e,this._height=t}return Object.defineProperty(e.prototype,"width",{get:function(){return this._width},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"height",{get:function(){return this._height},enumerable:!0,configurable:!0}),e.prototype.reverse=function(){return new e(1/this.width,1/this.height)},e}();function Md(e,t){return e instanceof er&&e.shape.length===t}function Fd(e){return Md(e,3)}function Bd(e){return Md(e,4)}function jd(e){return e%2==0}function Ld(e){return e&&e.width&&e.height}function zd(e){return e.reduce((function(e,t){return e.add(t)}),new Ud(0,0)).div(new Ud(e.length,e.length))}function Hd(e,t,n){return Array(e).fill(0).map((function(e,r){return t+r*n}))}function Wd(e){return!!e&&e!==1/0&&e!==-1/0&&!isNaN(e)||0===e}function Vd(e){return Wd(e)&&0<=e&&e<=1}var Ud=function(){function e(e,t){this._x=e,this._y=t}return Object.defineProperty(e.prototype,"x",{get:function(){return this._x},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"y",{get:function(){return this._y},enumerable:!0,configurable:!0}),e.prototype.add=function(t){return new e(this.x+t.x,this.y+t.y)},e.prototype.sub=function(t){return new e(this.x-t.x,this.y-t.y)},e.prototype.mul=function(t){return new e(this.x*t.x,this.y*t.y)},e.prototype.div=function(t){return new e(this.x/t.x,this.y/t.y)},e.prototype.abs=function(){return new e(Math.abs(this.x),Math.abs(this.y))},e.prototype.magnitude=function(){return Math.sqrt(Math.pow(this.x,2)+Math.pow(this.y,2))},e.prototype.floor=function(){return new e(Math.floor(this.x),Math.floor(this.y))},e}(),qd=function(){function e(t,n){void 0===n&&(n=!0);var r=t||{},o=[r.left,r.top,r.right,r.bottom].every(Wd),a=[r.x,r.y,r.width,r.height].every(Wd);if(!a&&!o)throw new Error("Box.constructor - expected box to be IBoundingBox | IRect, instead have "+JSON.stringify(r));var i=a?[r.x,r.y,r.width,r.height]:[r.left,r.top,r.right-r.left,r.bottom-r.top],s=i[0],u=i[1],c=i[2],l=i[3];e.assertIsValidBox({x:s,y:u,width:c,height:l},"Box.constructor",n),this._x=s,this._y=u,this._width=c,this._height=l}return e.isRect=function(e){return!!e&&[e.x,e.y,e.width,e.height].every(Wd)},e.assertIsValidBox=function(t,n,r){if(void 0===r&&(r=!1),!e.isRect(t))throw new Error(n+" - invalid box: "+JSON.stringify(t)+", expected object with properties x, y, width, height");if(!r&&(t.width<0||t.height<0))throw new Error(n+" - width ("+t.width+") and height ("+t.height+") must be positive numbers")},Object.defineProperty(e.prototype,"x",{get:function(){return this._x},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"y",{get:function(){return this._y},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"width",{get:function(){return this._width},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"height",{get:function(){return this._height},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"left",{get:function(){return this.x},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"top",{get:function(){return this.y},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"right",{get:function(){return this.x+this.width},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"bottom",{get:function(){return this.y+this.height},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"area",{get:function(){return this.width*this.height},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"topLeft",{get:function(){return new Ud(this.left,this.top)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"topRight",{get:function(){return new Ud(this.right,this.top)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"bottomLeft",{get:function(){return new Ud(this.left,this.bottom)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"bottomRight",{get:function(){return new Ud(this.right,this.bottom)},enumerable:!0,configurable:!0}),e.prototype.round=function(){var t=[this.x,this.y,this.width,this.height].map((function(e){return Math.round(e)}));return new e({x:t[0],y:t[1],width:t[2],height:t[3]})},e.prototype.floor=function(){var t=[this.x,this.y,this.width,this.height].map((function(e){return Math.floor(e)}));return new e({x:t[0],y:t[1],width:t[2],height:t[3]})},e.prototype.toSquare=function(){var t=this,n=t.x,r=t.y,o=t.width,a=t.height,i=Math.abs(o-a);return o<a&&(n-=i/2,o+=i),a<o&&(r-=i/2,a+=i),new e({x:n,y:r,width:o,height:a})},e.prototype.rescale=function(t){var n=Ld(t)?t.width:t,r=Ld(t)?t.height:t;return new e({x:this.x*n,y:this.y*r,width:this.width*n,height:this.height*r})},e.prototype.pad=function(t,n){var r=[this.x-t/2,this.y-n/2,this.width+t,this.height+n];return new e({x:r[0],y:r[1],width:r[2],height:r[3]})},e.prototype.clipAtImageBorders=function(t,n){var r=this,o=r.x,a=r.y,i=r.right,s=r.bottom,u=Math.max(o,0),c=Math.max(a,0),l=i-u,f=s-c;return new e({x:u,y:c,width:Math.min(l,t-u),height:Math.min(f,n-c)}).floor()},e.prototype.shift=function(t,n){var r=this.width,o=this.height;return new e({x:this.x+t,y:this.y+n,width:r,height:o})},e.prototype.padAtBorders=function(e,t){var n=this.width+1,r=this.height+1,o=n,a=r,i=this.left,s=this.top,u=this.right,c=this.bottom;return u>t&&(o=-u+t+n,u=t),c>e&&(a=-c+e+r,c=e),i<1&&(a=2-i,i=1),s<1&&(a=2-s,s=1),{dy:1,edy:a,dx:1,edx:o,y:s,ey:c,x:i,ex:u,w:n,h:r}},e.prototype.calibrate=function(t){return new e({left:this.left+t.left*this.width,top:this.top+t.top*this.height,right:this.right+t.right*this.width,bottom:this.bottom+t.bottom*this.height}).toSquare().round()},e}(),Gd=function(e){function t(t,n,r,o,a){return void 0===a&&(a=!1),e.call(this,{left:t,top:n,right:r,bottom:o},a)||this}return Sd(t,e),t}(qd),Xd=function(){function e(e,t,n,r,o){this._imageDims=new Nd(o.width,o.height),this._score=e,this._classScore=t,this._className=n,this._box=new qd(r).rescale(this._imageDims)}return Object.defineProperty(e.prototype,"score",{get:function(){return this._score},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"classScore",{get:function(){return this._classScore},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"className",{get:function(){return this._className},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"box",{get:function(){return this._box},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"imageDims",{get:function(){return this._imageDims},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"imageWidth",{get:function(){return this.imageDims.width},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"imageHeight",{get:function(){return this.imageDims.height},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"relativeBox",{get:function(){return new qd(this._box).rescale(this.imageDims.reverse())},enumerable:!0,configurable:!0}),e.prototype.forSize=function(t,n){return new e(this.score,this.classScore,this.className,this.relativeBox,{width:t,height:n})},e}(),Kd=function(e){function t(t,n,r){return e.call(this,t,t,"",n,r)||this}return Sd(t,e),t.prototype.forSize=function(n,r){var o=e.prototype.forSize.call(this,n,r);return new t(o.score,o.relativeBox,o.imageDims)},t}(Xd);function $d(e,t,n){void 0===n&&(n=!0);var r=Math.max(0,Math.min(e.right,t.right)-Math.max(e.left,t.left))*Math.max(0,Math.min(e.bottom,t.bottom)-Math.max(e.top,t.top));return n?r/(e.area+t.area-r):r/Math.min(e.area,t.area)}function Yd(e,t,n,r){void 0===r&&(r=!0);for(var o=t.map((function(e,t){return{score:e,boxIndex:t}})).sort((function(e,t){return e.score-t.score})).map((function(e){return e.boxIndex})),a=[],i=function(){var t=o.pop();a.push(t);for(var i=o,s=[],u=0;u<i.length;u++){var c=i[u],l=e[t],f=e[c];s.push($d(l,f,r))}o=o.filter((function(e,t){return s[t]<=n}))};o.length>0;)i();return a}function Jd(e,t){return _o((function(){var n=t[0],r=t[1],o=t[2],a=Qo(Dd(e.shape.slice(0,3),[1]),n),i=Qo(Dd(e.shape.slice(0,3),[1]),r),s=Qo(Dd(e.shape.slice(0,3),[1]),o),u=ra([a,i,s],3);return ql(e,u)}))}function Zd(e){return 1/(1+Math.exp(-e))}var Qd,ev=function(e){function t(t,n,r,o,a){return void 0===a&&(a=!1),e.call(this,{x:t,y:n,width:r,height:o},a)||this}return Sd(t,e),t}(qd),tv=function(){function e(e,t,n){void 0===n&&(n=new Ud(0,0));var r=t.width,o=t.height;this._imgDims=new Nd(r,o),this._shift=n,this._positions=e.map((function(e){return e.mul(new Ud(r,o)).add(n)}))}return Object.defineProperty(e.prototype,"shift",{get:function(){return new Ud(this._shift.x,this._shift.y)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"imageWidth",{get:function(){return this._imgDims.width},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"imageHeight",{get:function(){return this._imgDims.height},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"positions",{get:function(){return this._positions},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"relativePositions",{get:function(){var e=this;return this._positions.map((function(t){return t.sub(e._shift).div(new Ud(e.imageWidth,e.imageHeight))}))},enumerable:!0,configurable:!0}),e.prototype.forSize=function(e,t){return new this.constructor(this.relativePositions,{width:e,height:t})},e.prototype.shiftBy=function(e,t){return new this.constructor(this.relativePositions,this._imgDims,new Ud(e,t))},e.prototype.shiftByPoint=function(e){return this.shiftBy(e.x,e.y)},e.prototype.align=function(e,t){if(void 0===t&&(t={}),e){var n=e instanceof Kd?e.box.floor():new qd(e);return this.shiftBy(n.x,n.y).align(null,t)}var r=Object.assign({},{useDlibAlignment:!1,minBoxPadding:.2},t),o=r.useDlibAlignment,a=r.minBoxPadding;return o?this.alignDlib():this.alignMinBbox(a)},e.prototype.alignDlib=function(){var e=this.getRefPointsForAlignment(),t=e[0],n=e[1],r=e[2],o=function(e){return r.sub(e).magnitude()},a=(o(t)+o(n))/2,i=Math.floor(a/.45),s=zd(e),u=Math.floor(Math.max(0,s.x-.5*i)),c=Math.floor(Math.max(0,s.y-.43*i));return new ev(u,c,Math.min(i,this.imageWidth+u),Math.min(i,this.imageHeight+c))},e.prototype.alignMinBbox=function(e){var t=function(e){var t=e.map((function(e){return e.x})),n=e.map((function(e){return e.y})),r=t.reduce((function(e,t){return t<e?t:e}),1/0),o=n.reduce((function(e,t){return t<e?t:e}),1/0),a=t.reduce((function(e,t){return e<t?t:e}),0),i=n.reduce((function(e,t){return e<t?t:e}),0);return new Gd(r,o,a,i)}(this.positions);return t.pad(t.width*e,t.height*e)},e.prototype.getRefPointsForAlignment=function(){throw new Error("getRefPointsForAlignment not implemented by base class")},e}(),nv=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return Sd(t,e),t.prototype.getRefPointsForAlignment=function(){var e=this.positions;return[e[0],e[1],zd([e[3],e[4]])]},t}(tv),rv=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return Sd(t,e),t.prototype.getJawOutline=function(){return this.positions.slice(0,17)},t.prototype.getLeftEyeBrow=function(){return this.positions.slice(17,22)},t.prototype.getRightEyeBrow=function(){return this.positions.slice(22,27)},t.prototype.getNose=function(){return this.positions.slice(27,36)},t.prototype.getLeftEye=function(){return this.positions.slice(36,42)},t.prototype.getRightEye=function(){return this.positions.slice(42,48)},t.prototype.getMouth=function(){return this.positions.slice(48,68)},t.prototype.getRefPointsForAlignment=function(){return[this.getLeftEye(),this.getRightEye(),this.getMouth()].map(zd)},t}(tv),ov=function(){function e(e,t){this._label=e,this._distance=t}return Object.defineProperty(e.prototype,"label",{get:function(){return this._label},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"distance",{get:function(){return this._distance},enumerable:!0,configurable:!0}),e.prototype.toString=function(e){return void 0===e&&(e=!0),this.label+(e?" ("+function(e,t){void 0===t&&(t=2);var n=Math.pow(10,t);return Math.floor(e*n)/n}(this.distance)+")":"")},e}(),av=function(e){function t(t,n){var r=e.call(this,t)||this;return r._label=n,r}return Sd(t,e),t.assertIsValidLabeledBox=function(e,t){if(qd.assertIsValidBox(e,t),!Wd(e.label))throw new Error(t+" - expected property label ("+e.label+") to be a number")},Object.defineProperty(t.prototype,"label",{get:function(){return this._label},enumerable:!0,configurable:!0}),t}(qd),iv=function(){function e(e,t){if("string"!=typeof e)throw new Error("LabeledFaceDescriptors - constructor expected label to be a string");if(!Array.isArray(t)||t.some((function(e){return!(e instanceof Float32Array)})))throw new Error("LabeledFaceDescriptors - constructor expected descriptors to be an array of Float32Array");this._label=e,this._descriptors=t}return Object.defineProperty(e.prototype,"label",{get:function(){return this._label},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"descriptors",{get:function(){return this._descriptors},enumerable:!0,configurable:!0}),e.prototype.toJSON=function(){return{label:this.label,descriptors:this.descriptors.map((function(e){return Array.from(e)}))}},e.fromJSON=function(t){var n=t.descriptors.map((function(e){return new Float32Array(e)}));return new e(t.label,n)},e}();!function(e){function t(t,n,r,o){var a=e.call(this,t,n)||this;return a._score=r,a._classScore=o,a}Sd(t,e),t.assertIsValidPredictedBox=function(e,t){if(av.assertIsValidLabeledBox(e,t),!Vd(e.score)||!Vd(e.classScore))throw new Error(t+" - expected properties score ("+e.score+") and ("+e.classScore+") to be a number between [0, 1]")},Object.defineProperty(t.prototype,"score",{get:function(){return this._score},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"classScore",{get:function(){return this._classScore},enumerable:!0,configurable:!0})}(av);function sv(e){return e.detection instanceof Kd}function uv(e,t){var n={detection:t};return Object.assign({},e,n)}function cv(){var e=window.fetch||function(){throw new Error("fetch - missing fetch implementation for browser environment")};return{Canvas:HTMLCanvasElement,CanvasRenderingContext2D,Image:HTMLImageElement,ImageData,Video:HTMLVideoElement,createCanvasElement:function(){return document.createElement("canvas")},createImageElement:function(){return document.createElement("img")},fetch:e,readFile:function(){throw new Error("readFile - filesystem not available for browser environment")}}}function lv(e){var t="";if(!e)try{e=n(8730)}catch(r){t=r.toString()}return{readFile:e?function(t){return new Promise((function(n,r){e.readFile(t,(function(e,t){return e?r(e):n(t)}))}))}:function(){throw new Error("readFile - failed to require fs in nodejs environment with error: "+t)}}}function fv(){var e=n.g.Canvas||n.g.HTMLCanvasElement,t=n.g.Image||n.g.HTMLImageElement,r=n.g.fetch||function(){throw new Error("fetch - missing fetch implementation for nodejs environment")},o=lv();return Ad({Canvas:e||function(){},CanvasRenderingContext2D:n.g.CanvasRenderingContext2D||function(){},Image:t||function(){},ImageData:n.g.ImageData||function(){},Video:n.g.HTMLVideoElement||function(){},createCanvasElement:function(){if(e)return new e;throw new Error("createCanvasElement - missing Canvas implementation for nodejs environment")},createImageElement:function(){if(t)return new t;throw new Error("createImageElement - missing Image implementation for nodejs environment")},fetch:r},o)}function hv(){return"object"==typeof window&&"undefined"!=typeof document&&"undefined"!=typeof HTMLImageElement&&"undefined"!=typeof HTMLCanvasElement&&"undefined"!=typeof HTMLVideoElement&&"undefined"!=typeof ImageData&&"undefined"!=typeof CanvasRenderingContext2D}function pv(){return"object"==typeof n.g&&"undefined"!=typeof process&&!!process.version}function dv(e){Qd=e}function vv(){hv()&&dv(cv()),pv()&&dv(fv())}var mv,gv={getEnv:function(){if(!Qd)throw new Error("getEnv - environment is not defined, check isNodejs() and isBrowser()");return Qd},setEnv:dv,initialize:vv,createBrowserEnv:cv,createFileSystem:lv,createNodejsEnv:fv,monkeyPatch:function(e){if(Qd||vv(),!Qd)throw new Error("monkeyPatch - environment is not defined, check isNodejs() and isBrowser()");var t=e.Canvas,n=void 0===t?Qd.Canvas:t,r=e.Image,o=void 0===r?Qd.Image:r;Qd.Canvas=n,Qd.Image=o,Qd.createCanvasElement=e.createCanvasElement||function(){return new n},Qd.createImageElement=e.createImageElement||function(){return new o},Qd.ImageData=e.ImageData||Qd.ImageData,Qd.Video=e.Video||Qd.Video,Qd.fetch=e.fetch||Qd.fetch,Qd.readFile=e.readFile||Qd.readFile},isBrowser:hv,isNodejs:pv};function yv(e){return gv.isNodejs()||"string"!=typeof e?e:document.getElementById(e)}function bv(e){var t=gv.getEnv(),n=t.Canvas;if(e instanceof t.CanvasRenderingContext2D)return e;var r=yv(e);if(!(r instanceof n))throw new Error("resolveContext2d - expected canvas to be of instance of Canvas");var o=r.getContext("2d");if(!o)throw new Error("resolveContext2d - canvas 2d context is null");return o}vv(),function(e){e.TOP_LEFT="TOP_LEFT",e.TOP_RIGHT="TOP_RIGHT",e.BOTTOM_LEFT="BOTTOM_LEFT",e.BOTTOM_RIGHT="BOTTOM_RIGHT"}(mv||(mv={}));var wv=function(e){void 0===e&&(e={});var t=e.anchorPosition,n=e.backgroundColor,r=e.fontColor,o=e.fontSize,a=e.fontStyle,i=e.padding;this.anchorPosition=t||mv.TOP_LEFT,this.backgroundColor=n||"rgba(0, 0, 0, 0.5)",this.fontColor=r||"rgba(255, 255, 255, 1)",this.fontSize=o||14,this.fontStyle=a||"Georgia",this.padding=i||4},xv=function(){function e(t,n,r){void 0===r&&(r={}),this.text="string"==typeof t?[t]:t instanceof e?t.text:t,this.anchor=n,this.options=new wv(r)}return e.prototype.measureWidth=function(e){var t=this.options.padding;return this.text.map((function(t){return e.measureText(t).width})).reduce((function(e,t){return e<t?t:e}),0)+2*t},e.prototype.measureHeight=function(){var e=this.options,t=e.fontSize,n=e.padding;return this.text.length*t+2*n},e.prototype.getUpperLeft=function(e,t){var n=this.options.anchorPosition,r=n===mv.BOTTOM_RIGHT||n===mv.TOP_RIGHT,o=n===mv.BOTTOM_LEFT||n===mv.BOTTOM_RIGHT,a=this.measureWidth(e),i=this.measureHeight(),s=r?this.anchor.x-a:this.anchor.x,u=o?this.anchor.y-i:this.anchor.y;if(t){var c=t.width,l=t.height;return{x:Math.max(Math.min(s,c-a),0),y:Math.max(Math.min(u,l-i),0)}}return{x:s,y:u}},e.prototype.draw=function(e){var t=yv(e),n=bv(t),r=this.options,o=r.backgroundColor,a=r.fontColor,i=r.fontSize,s=r.fontStyle,u=r.padding;n.font=i+"px "+s;var c=this.measureWidth(n),l=this.measureHeight();n.fillStyle=o;var f=this.getUpperLeft(n,t);n.fillRect(f.x,f.y,c,l),n.fillStyle=a,this.text.forEach((function(e,t){var r=u+f.x,o=u+f.y+(t+1)*i;n.fillText(e,r,o)}))},e}(),Ev=function(e){void 0===e&&(e={});var t=e.boxColor,n=e.lineWidth,r=e.label,o=e.drawLabelOptions;this.boxColor=t||"rgba(0, 0, 255, 1)",this.lineWidth=n||2,this.label=r;var a={anchorPosition:mv.BOTTOM_LEFT,backgroundColor:this.boxColor};this.drawLabelOptions=new wv(Object.assign({},a,o))},_v=function(){function e(e,t){void 0===t&&(t={}),this.box=new qd(e),this.options=new Ev(t)}return e.prototype.draw=function(e){var t=bv(e),n=this.options,r=n.boxColor,o=n.lineWidth,a=this.box,i=a.x,s=a.y,u=a.width,c=a.height;t.strokeStyle=r,t.lineWidth=o,t.strokeRect(i,s,u,c);var l=this.options.label;l&&new xv([l],{x:i-o/2,y:s},this.options.drawLabelOptions).draw(e)},e}();function kv(e){var t=gv.getEnv(),n=t.Image,r=t.Video;return e instanceof n&&e.complete||e instanceof r&&e.readyState>=3}function Ov(e){var t=gv.getEnv(),n=t.Image,r=t.Video;return e instanceof n?new Nd(e.naturalWidth,e.naturalHeight):e instanceof r?new Nd(e.videoWidth,e.videoHeight):new Nd(e.width,e.height)}function Cv(e){var t=e.width,n=e.height,r=(0,gv.getEnv().createCanvasElement)();return r.width=t,r.height=n,r}function Iv(e,t){var n=gv.getEnv().ImageData;if(!(e instanceof n||kv(e)))throw new Error("createCanvasFromMedia - media has not finished loading yet");var r=t||Ov(e),o=r.width,a=r.height,i=Cv({width:o,height:a});return e instanceof n?bv(i).putImageData(e,0,0):bv(i).drawImage(e,0,0,o,a),i}function Rv(e,t){return Pd(this,void 0,void 0,(function(){var n,r,o,a,i,s;return Td(this,(function(u){switch(u.label){case 0:return n=t||gv.getEnv().createCanvasElement(),r=e.shape.slice(Bd(e)?1:0),o=r[0],a=r[1],i=r[2],s=_o((function(){return e.as3D(o,a,i).toInt()})),[4,hd.toPixels(s,n)];case 1:return u.sent(),s.dispose(),[2,n]}}))}))}function Sv(e){var t=gv.getEnv(),n=t.Image,r=t.Canvas,o=t.Video;return e instanceof n||e instanceof r||e instanceof o}var Av=function(){function e(e,t){var n=this;if(void 0===t&&(t=!1),this._imageTensors=[],this._canvases=[],this._treatAsBatchInput=!1,this._inputDimensions=[],!Array.isArray(e))throw new Error("NetInput.constructor - expected inputs to be an Array of TResolvedNetInput or to be instanceof tf.Tensor4D, instead have "+e);this._treatAsBatchInput=t,this._batchSize=e.length,e.forEach((function(e,t){if(Fd(e))return n._imageTensors[t]=e,void(n._inputDimensions[t]=e.shape);if(Bd(e)){var r=e.shape[0];if(1!==r)throw new Error("NetInput - tf.Tensor4D with batchSize "+r+" passed, but not supported in input array");return n._imageTensors[t]=e,void(n._inputDimensions[t]=e.shape.slice(1))}var o=e instanceof gv.getEnv().Canvas?e:Iv(e);n._canvases[t]=o,n._inputDimensions[t]=[o.height,o.width,3]}))}return Object.defineProperty(e.prototype,"imageTensors",{get:function(){return this._imageTensors},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"canvases",{get:function(){return this._canvases},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"isBatchInput",{get:function(){return this.batchSize>1||this._treatAsBatchInput},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"batchSize",{get:function(){return this._batchSize},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"inputDimensions",{get:function(){return this._inputDimensions},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"inputSize",{get:function(){return this._inputSize},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"reshapedInputDimensions",{get:function(){var e=this;return Hd(this.batchSize,0,1).map((function(t,n){return e.getReshapedInputDimensions(n)}))},enumerable:!0,configurable:!0}),e.prototype.getInput=function(e){return this.canvases[e]||this.imageTensors[e]},e.prototype.getInputDimensions=function(e){return this._inputDimensions[e]},e.prototype.getInputHeight=function(e){return this._inputDimensions[e][0]},e.prototype.getInputWidth=function(e){return this._inputDimensions[e][1]},e.prototype.getReshapedInputDimensions=function(e){if("number"!=typeof this.inputSize)throw new Error("getReshapedInputDimensions - inputSize not set, toBatchTensor has not been called yet");return function(e,t){var n=e.width,r=e.height,o=t/Math.max(r,n);return new Nd(Math.round(n*o),Math.round(r*o))}({width:this.getInputWidth(e),height:this.getInputHeight(e)},this.inputSize)},e.prototype.toBatchTensor=function(e,t){var n=this;return void 0===t&&(t=!0),this._inputSize=e,_o((function(){var r=Hd(n.batchSize,0,1).map((function(r){var o=n.getInput(r);if(o instanceof er){var a=Bd(o)?o:o.expandDims();return a=function(e,t){return void 0===t&&(t=!1),_o((function(){var n=e.shape.slice(1),r=n[0],o=n[1];if(r===o)return e;var a=Math.abs(r-o),i=Math.round(a*(t?.5:1)),s=r>o?2:1,u=function(t){var n=e.shape.slice();return n[s]=t,Qo(n,0)},c=u(i),l=a-c.shape[s],f=[t&&l?u(l):null,e,c].filter((function(e){return!!e})).map((function(e){return e.toFloat()}));return ra(f,s)}))}(a,t),a.shape[1]===e&&a.shape[2]===e||(a=Qh.resizeBilinear(a,[e,e])),a.as3D(e,e,3)}if(o instanceof gv.getEnv().Canvas)return hd.fromPixels(function(e,t,n){void 0===n&&(n=!1);var r=gv.getEnv(),o=r.Image,a=r.Canvas;if(!(e instanceof o||e instanceof a))throw new Error("imageToSquare - expected arg0 to be HTMLImageElement | HTMLCanvasElement");var i=Ov(e),s=t/Math.max(i.height,i.width),u=s*i.width,c=s*i.height,l=Cv({width:t,height:t}),f=e instanceof a?e:Iv(e),h=Math.abs(u-c)/2,p=n&&u<c?h:0,d=n&&c<u?h:0;return bv(l).drawImage(f,p,d,u,c),l}(o,e,t));throw new Error("toBatchTensor - at batchIdx "+r+", expected input to be instanceof tf.Tensor or instanceof HTMLCanvasElement, instead have "+o)})),o=Ua(r.map((function(e){return e.toFloat()}))).as4D(n.batchSize,e,e,3);return o}))},e}();function Pv(e){return Pd(this,void 0,void 0,(function(){var t,n,r;return Td(this,(function(o){switch(o.label){case 0:if(e instanceof Av)return[2,e];if(!(t=Array.isArray(e)?e:[e]).length)throw new Error("toNetInput - empty array passed as input");return n=function(t){return Array.isArray(e)?" at input index "+t+":":""},(r=t.map(yv)).forEach((function(e,r){if(!Sv(e)&&!Fd(e)&&!Bd(e)){if("string"==typeof t[r])throw new Error("toNetInput -"+n(r)+" string passed, but could not resolve HTMLElement for element id "+t[r]);throw new Error("toNetInput -"+n(r)+" expected media to be of type HTMLImageElement | HTMLVideoElement | HTMLCanvasElement | tf.Tensor3D, or to be an element id")}if(Bd(e)){var o=e.shape[0];if(1!==o)throw new Error("toNetInput -"+n(r)+" tf.Tensor4D with batchSize "+o+" passed, but not supported in input array")}})),[4,Promise.all(r.map((function(e){return Sv(e)&&(t=e,new Promise((function(e,n){if(t instanceof gv.getEnv().Canvas||kv(t))return e();function r(t){t.currentTarget&&(t.currentTarget.removeEventListener("load",r),t.currentTarget.removeEventListener("error",o),e(t))}function o(e){e.currentTarget&&(e.currentTarget.removeEventListener("load",r),e.currentTarget.removeEventListener("error",o),n(e))}t.addEventListener("load",r),t.addEventListener("error",o)})));var t})))];case 1:return o.sent(),[2,new Av(r,Array.isArray(e))]}}))}))}function Tv(e,t){return Pd(this,void 0,void 0,(function(){var n,r,o,a,i,s;return Td(this,(function(u){switch(u.label){case 0:return n=gv.getEnv().Canvas,r=e,e instanceof n?[3,5]:[4,Pv(e)];case 1:if((o=u.sent()).batchSize>1)throw new Error("extractFaces - batchSize > 1 not supported");return(a=o.getInput(0))instanceof n?(i=a,[3,4]):[3,2];case 2:return[4,Rv(a)];case 3:i=u.sent(),u.label=4;case 4:r=i,u.label=5;case 5:return s=bv(r),[2,t.map((function(e){return e instanceof Kd?e.forSize(r.width,r.height).box.floor():e})).map((function(e){return e.clipAtImageBorders(r.width,r.height)})).map((function(e){var t=e.x,n=e.y,r=e.width,o=e.height,a=Cv({width:r,height:o});return bv(a).putImageData(s.getImageData(t,n,r,o),0,0),a}))]}}))}))}function Dv(e,t){return Pd(this,void 0,void 0,(function(){return Td(this,(function(n){if(!Fd(e)&&!Bd(e))throw new Error("extractFaceTensors - expected image tensor to be 3D or 4D");if(Bd(e)&&e.shape[0]>1)throw new Error("extractFaceTensors - batchSize > 1 not supported");return[2,_o((function(){var n=e.shape.slice(Bd(e)?1:0),r=n[0],o=n[1],a=n[2],i=t.map((function(e){return e instanceof Kd?e.forSize(o,r).box:e})).map((function(e){return e.clipAtImageBorders(o,r)})).map((function(t){var n=t.x,i=t.y,s=t.width,u=t.height;return Wf(e.as3D(r,o,a),[i,n,0],[u,s,a])}));return i}))]}))}))}function Nv(e,t){return Pd(this,void 0,void 0,(function(){var n;return Td(this,(function(r){switch(r.label){case 0:return[4,(0,gv.getEnv().fetch)(e,t)];case 1:if(!((n=r.sent()).status<400))throw new Error("failed to fetch: ("+n.status+") "+n.statusText+", from url: "+n.url);return[2,n]}}))}))}function Mv(e){return Pd(this,void 0,void 0,(function(){return Td(this,(function(t){switch(t.label){case 0:return[4,Nv(e)];case 1:return[2,t.sent().json()]}}))}))}function Fv(e,t){var n=t+"-weights_manifest.json";if(!e)return{modelBaseUri:"",manifestUri:n};if("/"===e)return{modelBaseUri:"/",manifestUri:"/"+n};var r=e.startsWith("http://")?"http://":e.startsWith("https://")?"https://":"",o=(e=e.replace(r,"")).split("/").filter((function(e){return e})),a=e.endsWith(".json")?o[o.length-1]:n,i=r+(e.endsWith(".json")?o.slice(0,o.length-1):o).join("/");return{modelBaseUri:i=e.startsWith("/")?"/"+i:i,manifestUri:"/"===i?"/"+a:i+"/"+a}}function Bv(e,t){return Pd(this,void 0,void 0,(function(){var n,r,o,a;return Td(this,(function(i){switch(i.label){case 0:return n=Fv(e,t),r=n.manifestUri,o=n.modelBaseUri,[4,Mv(r)];case 1:return a=i.sent(),[2,cd.loadWeights(a,o)]}}))}))}var jv=function(){function e(e){this._name=e,this._params=void 0,this._paramMappings=[]}return Object.defineProperty(e.prototype,"params",{get:function(){return this._params},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"paramMappings",{get:function(){return this._paramMappings},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"isLoaded",{get:function(){return!!this.params},enumerable:!0,configurable:!0}),e.prototype.getParamFromPath=function(e){var t=this.traversePropertyPath(e);return t.obj[t.objProp]},e.prototype.reassignParamFromPath=function(e,t){var n=this.traversePropertyPath(e),r=n.obj,o=n.objProp;r[o].dispose(),r[o]=t},e.prototype.getParamList=function(){var e=this;return this._paramMappings.map((function(t){var n=t.paramPath;return{path:n,tensor:e.getParamFromPath(n)}}))},e.prototype.getTrainableParams=function(){return this.getParamList().filter((function(e){return e.tensor instanceof ir}))},e.prototype.getFrozenParams=function(){return this.getParamList().filter((function(e){return!(e.tensor instanceof ir)}))},e.prototype.variable=function(){var e=this;this.getFrozenParams().forEach((function(t){var n=t.path,r=t.tensor;e.reassignParamFromPath(n,r.variable())}))},e.prototype.freeze=function(){var e=this;this.getTrainableParams().forEach((function(t){var n=t.path,r=t.tensor,o=Uo(r.dataSync());r.dispose(),e.reassignParamFromPath(n,o)}))},e.prototype.dispose=function(e){void 0===e&&(e=!0),this.getParamList().forEach((function(t){if(e&&t.tensor.isDisposed)throw new Error("param tensor has already been disposed for path "+t.path);t.tensor.dispose()})),this._params=void 0},e.prototype.serializeParams=function(){return new Float32Array(this.getParamList().map((function(e){var t=e.tensor;return Array.from(t.dataSync())})).reduce((function(e,t){return e.concat(t)})))},e.prototype.load=function(e){return Pd(this,void 0,void 0,(function(){return Td(this,(function(t){switch(t.label){case 0:return e instanceof Float32Array?(this.extractWeights(e),[2]):[4,this.loadFromUri(e)];case 1:return t.sent(),[2]}}))}))},e.prototype.loadFromUri=function(e){return Pd(this,void 0,void 0,(function(){var t;return Td(this,(function(n){switch(n.label){case 0:if(e&&"string"!=typeof e)throw new Error(this._name+".loadFromUri - expected model uri");return[4,Bv(e,this.getDefaultModelName())];case 1:return t=n.sent(),this.loadFromWeightMap(t),[2]}}))}))},e.prototype.loadFromDisk=function(e){return Pd(this,void 0,void 0,(function(){var t,n,r,o,a,i,s,u,c,l;return Td(this,(function(f){switch(f.label){case 0:if(e&&"string"!=typeof e)throw new Error(this._name+".loadFromDisk - expected model file path");return t=gv.getEnv().readFile,n=Fv(e,this.getDefaultModelName()),r=n.manifestUri,o=n.modelBaseUri,a=function(e){return Promise.all(e.map((function(e){return t(e).then((function(e){return e.buffer}))})))},i=cd.weightsLoaderFactory(a),c=(u=JSON).parse,[4,t(r)];case 1:return s=c.apply(u,[f.sent().toString()]),[4,i(s,o)];case 2:return l=f.sent(),this.loadFromWeightMap(l),[2]}}))}))},e.prototype.loadFromWeightMap=function(e){var t=this.extractParamsFromWeigthMap(e),n=t.paramMappings,r=t.params;this._paramMappings=n,this._params=r},e.prototype.extractWeights=function(e){var t=this.extractParams(e),n=t.paramMappings,r=t.params;this._paramMappings=n,this._params=r},e.prototype.traversePropertyPath=function(e){if(!this.params)throw new Error("traversePropertyPath - model has no loaded params");var t=e.split("/").reduce((function(t,n){if(!t.nextObj.hasOwnProperty(n))throw new Error("traversePropertyPath - object does not have property "+n+", for path "+e);return{obj:t.nextObj,objProp:n,nextObj:t.nextObj[n]}}),{nextObj:this.params}),n=t.obj,r=t.objProp;if(!(n&&r&&n[r]instanceof er))throw new Error("traversePropertyPath - parameter is not a tensor, for path "+e);return{obj:n,objProp:r}},e}();function Lv(e,t,n){return _o((function(){var r=xf(e,t.depthwise_filter,t.pointwise_filter,n,"same");return r=Ol(r,t.bias)}))}function zv(e,t,n){return void 0===n&&(n=!1),_o((function(){var r=ah(n?Ol(df(e,t.conv0.filters,[2,2],"same"),t.conv0.bias):Lv(e,t.conv0,[2,2])),o=Lv(r,t.conv1,[1,1]),a=Lv(ah(Ol(r,o)),t.conv2,[1,1]);return ah(Ol(r,Ol(o,a)))}))}function Hv(e,t,n,r){return void 0===n&&(n=!1),void 0===r&&(r=!0),_o((function(){var o=ah(n?Ol(df(e,t.conv0.filters,r?[2,2]:[1,1],"same"),t.conv0.bias):Lv(e,t.conv0,r?[2,2]:[1,1])),a=Lv(o,t.conv1,[1,1]),i=Lv(ah(Ol(o,a)),t.conv2,[1,1]),s=Lv(ah(Ol(o,Ol(a,i))),t.conv3,[1,1]);return ah(Ol(o,Ol(a,Ol(i,s))))}))}function Wv(e,t,n,r){return void 0===n&&(n="same"),void 0===r&&(r=!1),_o((function(){var o=Ol(df(e,t.filters,[1,1],n),t.bias);return r?ah(o):o}))}function Vv(e,t){Object.keys(e).forEach((function(n){t.some((function(e){return e.originalPath===n}))||e[n].dispose()}))}function Uv(e,t){return function(n,r,o,a){var i=Yo(e(n*r*o*o),[o,o,n,r]),s=Xo(e(r));return t.push({paramPath:a+"/filters"},{paramPath:a+"/bias"}),{filters:i,bias:s}}}function qv(e,t){return function(n,r,o){var a=Ko(e(n*r),[n,r]),i=Xo(e(r));return t.push({paramPath:o+"/weights"},{paramPath:o+"/bias"}),{weights:a,bias:i}}}var Gv=function(e,t,n){this.depthwise_filter=e,this.pointwise_filter=t,this.bias=n};function Xv(e,t){return function(n,r,o){var a=Yo(e(9*n),[3,3,n,1]),i=Yo(e(n*r),[1,1,n,r]),s=Xo(e(r));return t.push({paramPath:o+"/depthwise_filter"},{paramPath:o+"/pointwise_filter"},{paramPath:o+"/bias"}),new Gv(a,i,s)}}function Kv(e){return function(t){var n=e(t+"/depthwise_filter",4),r=e(t+"/pointwise_filter",4),o=e(t+"/bias",1);return new Gv(n,r,o)}}function $v(e,t){return function(n,r,o){var a=e[n];if(!Md(a,r))throw new Error("expected weightMap["+n+"] to be a Tensor"+r+"D, instead have "+a);return t.push({originalPath:n,paramPath:o||n}),a}}function Yv(e){var t=e;return{extractWeights:function(e){var n=t.slice(0,e);return t=t.slice(e),n},getRemainingWeights:function(){return t}}}function Jv(e,t){var n=Uv(e,t),r=Xv(e,t);function o(e,t,o,a){return void 0===a&&(a=!1),{conv0:a?n(e,t,3,o+"/conv0"):r(e,t,o+"/conv0"),conv1:r(t,t,o+"/conv1"),conv2:r(t,t,o+"/conv2")}}return{extractDenseBlock3Params:o,extractDenseBlock4Params:function(e,t,n,a){void 0===a&&(a=!1);var i=o(e,t,n,a);return{conv0:i.conv0,conv1:i.conv1,conv2:i.conv2,conv3:r(t,t,n+"/conv3")}}}}function Zv(e){return function(t){return{filters:e(t+"/filters",4),bias:e(t+"/bias",1)}}}function Qv(e,t){var n=$v(e,t),r=Zv(n),o=Kv(n);return{extractDenseBlock3Params:function(e,t){return void 0===t&&(t=!1),{conv0:t?r(e+"/conv0"):o(e+"/conv0"),conv1:o(e+"/conv1"),conv2:o(e+"/conv2")}},extractDenseBlock4Params:function(e,t){return void 0===t&&(t=!1),{conv0:t?r(e+"/conv0"):o(e+"/conv0"),conv1:o(e+"/conv1"),conv2:o(e+"/conv2"),conv3:o(e+"/conv3")}}}}var em=function(e){function t(){return e.call(this,"FaceFeatureExtractor")||this}return Sd(t,e),t.prototype.forwardInput=function(e){var t=this.params;if(!t)throw new Error("FaceFeatureExtractor - load model before inference");return _o((function(){var n=Hv(Jd(e.toBatchTensor(112,!0),[122.782,117.001,104.298]).div(Go(255)),t.dense0,!0);return n=Hv(n,t.dense1),n=Hv(n,t.dense2),n=Hv(n,t.dense3),n=Mf(n,[7,7],[2,2],"valid")}))},t.prototype.forward=function(e){return Pd(this,void 0,void 0,(function(){var t;return Td(this,(function(n){switch(n.label){case 0:return t=this.forwardInput,[4,Pv(e)];case 1:return[2,t.apply(this,[n.sent()])]}}))}))},t.prototype.getDefaultModelName=function(){return"face_feature_extractor_model"},t.prototype.extractParamsFromWeigthMap=function(e){return function(e){var t=[],n=Qv(e,t).extractDenseBlock4Params,r={dense0:n("dense0",!0),dense1:n("dense1"),dense2:n("dense2"),dense3:n("dense3")};return Vv(e,t),{params:r,paramMappings:t}}(e)},t.prototype.extractParams=function(e){return function(e){var t=[],n=Yv(e),r=n.extractWeights,o=n.getRemainingWeights,a=Jv(r,t).extractDenseBlock4Params,i=a(3,32,"dense0",!0),s=a(32,64,"dense1"),u=a(64,128,"dense2"),c=a(128,256,"dense3");if(0!==o().length)throw new Error("weights remaing after extract: "+o().length);return{paramMappings:t,params:{dense0:i,dense1:s,dense2:u,dense3:c}}}(e)},t}(jv);function tm(e,t){return _o((function(){return Ol(kf(e,t.weights),t.bias)}))}function nm(e){var t={},n={};return Object.keys(e).forEach((function(r){(r.startsWith("fc")?n:t)[r]=e[r]})),{featureExtractorMap:t,classifierMap:n}}var rm=function(e){function t(t,n){var r=e.call(this,t)||this;return r._faceFeatureExtractor=n,r}return Sd(t,e),Object.defineProperty(t.prototype,"faceFeatureExtractor",{get:function(){return this._faceFeatureExtractor},enumerable:!0,configurable:!0}),t.prototype.runNet=function(e){var t=this,n=this.params;if(!n)throw new Error(this._name+" - load model before inference");return _o((function(){var r=e instanceof Av?t.faceFeatureExtractor.forwardInput(e):e;return tm(r.as2D(r.shape[0],-1),n.fc)}))},t.prototype.dispose=function(t){void 0===t&&(t=!0),this.faceFeatureExtractor.dispose(t),e.prototype.dispose.call(this,t)},t.prototype.loadClassifierParams=function(e){var t=this.extractClassifierParams(e),n=t.params,r=t.paramMappings;this._params=n,this._paramMappings=r},t.prototype.extractClassifierParams=function(e){return function(e,t,n){var r=[],o=Yv(e),a=o.extractWeights,i=o.getRemainingWeights,s=qv(a,r)(t,n,"fc");if(0!==i().length)throw new Error("weights remaing after extract: "+i().length);return{paramMappings:r,params:{fc:s}}}(e,this.getClassifierChannelsIn(),this.getClassifierChannelsOut())},t.prototype.extractParamsFromWeigthMap=function(e){var t=nm(e),n=t.featureExtractorMap,r=t.classifierMap;return this.faceFeatureExtractor.loadFromWeightMap(n),function(e){var t,n=[],r=$v(e,n),o={fc:(t="fc",{weights:r(t+"/weights",2),bias:r(t+"/bias",1)})};return Vv(e,n),{params:o,paramMappings:n}}(r)},t.prototype.extractParams=function(e){var t=this.getClassifierChannelsIn(),n=this.getClassifierChannelsOut(),r=n*t+n,o=e.slice(0,e.length-r),a=e.slice(e.length-r);return this.faceFeatureExtractor.extractWeights(o),this.extractClassifierParams(a)},t}(jv),om=["neutral","happy","sad","angry","fearful","disgusted","surprised"],am=function(){function e(e){var t=this;if(7!==e.length)throw new Error("FaceExpressions.constructor - expected probabilities.length to be 7, have: "+e.length);om.forEach((function(n,r){t[n]=e[r]}))}return e.prototype.asSortedArray=function(){var e=this;return om.map((function(t){return{expression:t,probability:e[t]}})).sort((function(e,t){return t.probability-e.probability}))},e}(),im=function(e){function t(t){return void 0===t&&(t=new em),e.call(this,"FaceExpressionNet",t)||this}return Sd(t,e),t.prototype.forwardInput=function(e){var t=this;return _o((function(){return li(t.runNet(e))}))},t.prototype.forward=function(e){return Pd(this,void 0,void 0,(function(){var t;return Td(this,(function(n){switch(n.label){case 0:return t=this.forwardInput,[4,Pv(e)];case 1:return[2,t.apply(this,[n.sent()])]}}))}))},t.prototype.predictExpressions=function(e){return Pd(this,void 0,void 0,(function(){var t,n,r,o,a=this;return Td(this,(function(i){switch(i.label){case 0:return[4,Pv(e)];case 1:return t=i.sent(),[4,this.forwardInput(t)];case 2:return n=i.sent(),[4,Promise.all(Xa(n).map((function(e){return Pd(a,void 0,void 0,(function(){var t;return Td(this,(function(n){switch(n.label){case 0:return[4,e.data()];case 1:return t=n.sent(),e.dispose(),[2,t]}}))}))})))];case 3:return r=i.sent(),n.dispose(),o=r.map((function(e){return new am(e)})),[2,t.isBatchInput?o:o[0]]}}))}))},t.prototype.getDefaultModelName=function(){return"face_expression_model"},t.prototype.getClassifierChannelsIn=function(){return 256},t.prototype.getClassifierChannelsOut=function(){return 7},t}(rm);function sm(e,t){var n={expressions:t};return Object.assign({},e,n)}function um(e){return sv(e)&&e.landmarks instanceof tv&&e.unshiftedLandmarks instanceof tv&&e.alignedRect instanceof Kd}function cm(e,t){var n=e.detection.box,r=t.shiftBy(n.x,n.y),o=r.align(),a=e.detection.imageDims,i={landmarks:r,unshiftedLandmarks:t,alignedRect:new Kd(e.detection.score,o.rescale(a.reverse()),a)};return Object.assign({},e,i)}function lm(e,t,n){if(void 0===n&&(n=!1),e.beginPath(),t.slice(1).forEach((function(n,r){var o=n.x,a=n.y,i=t[r];e.moveTo(i.x,i.y),e.lineTo(o,a)})),n){var r=t[t.length-1],o=t[0];if(!r||!o)return;e.moveTo(r.x,r.y),e.lineTo(o.x,o.y)}e.stroke()}var fm=function(e){void 0===e&&(e={});var t=e.drawLines,n=void 0===t||t,r=e.drawPoints,o=void 0===r||r,a=e.lineWidth,i=e.lineColor,s=e.pointSize,u=e.pointColor;this.drawLines=n,this.drawPoints=o,this.lineWidth=a||1,this.pointSize=s||2,this.lineColor=i||"rgba(0, 255, 255, 1)",this.pointColor=u||"rgba(255, 0, 255, 1)"};!function(){function e(e,t){void 0===t&&(t={}),this.faceLandmarks=e,this.options=new fm(t)}e.prototype.draw=function(e){var t=bv(e),n=this.options,r=n.drawLines,o=n.drawPoints,a=n.lineWidth,i=n.lineColor,s=n.pointSize,u=n.pointColor;if(r&&this.faceLandmarks instanceof rv&&(t.strokeStyle=i,t.lineWidth=a,lm(t,this.faceLandmarks.getJawOutline()),lm(t,this.faceLandmarks.getLeftEyeBrow()),lm(t,this.faceLandmarks.getRightEyeBrow()),lm(t,this.faceLandmarks.getNose()),lm(t,this.faceLandmarks.getLeftEye(),!0),lm(t,this.faceLandmarks.getRightEye(),!0),lm(t,this.faceLandmarks.getMouth(),!0)),o){t.strokeStyle=u,t.fillStyle=u;this.faceLandmarks.positions.forEach((function(e){t.beginPath(),t.arc(e.x,e.y,s,0,2*Math.PI),t.fill()}))}}}();function hm(e,t){var n=[],r=Yv(e),o=r.extractWeights,a=r.getRemainingWeights,i=function(e,t){var n=Uv(e,t),r=Xv(e,t);return{extractConvParams:n,extractSeparableConvParams:r,extractReductionBlockParams:function(e,t,o){return{separable_conv0:r(e,t,o+"/separable_conv0"),separable_conv1:r(t,t,o+"/separable_conv1"),expansion_conv:n(e,t,1,o+"/expansion_conv")}},extractMainBlockParams:function(e,t){return{separable_conv0:r(e,e,t+"/separable_conv0"),separable_conv1:r(e,e,t+"/separable_conv1"),separable_conv2:r(e,e,t+"/separable_conv2")}}}}(o,n),s=i.extractConvParams,u=i.extractSeparableConvParams,c=i.extractReductionBlockParams,l=i.extractMainBlockParams,f={conv_in:s(3,32,3,"entry_flow/conv_in"),reduction_block_0:c(32,64,"entry_flow/reduction_block_0"),reduction_block_1:c(64,128,"entry_flow/reduction_block_1")},h={};Hd(t,0,1).forEach((function(e){h["main_block_"+e]=l(128,"middle_flow/main_block_"+e)}));var p={reduction_block:c(128,256,"exit_flow/reduction_block"),separable_conv:u(256,512,"exit_flow/separable_conv")};if(0!==a().length)throw new Error("weights remaing after extract: "+a().length);return{paramMappings:n,params:{entry_flow:f,middle_flow:h,exit_flow:p}}}function pm(e,t){var n=[],r=function(e,t){var n=$v(e,t),r=Zv(n),o=Kv(n);return{extractConvParams:r,extractSeparableConvParams:o,extractReductionBlockParams:function(e){return{separable_conv0:o(e+"/separable_conv0"),separable_conv1:o(e+"/separable_conv1"),expansion_conv:r(e+"/expansion_conv")}},extractMainBlockParams:function(e){return{separable_conv0:o(e+"/separable_conv0"),separable_conv1:o(e+"/separable_conv1"),separable_conv2:o(e+"/separable_conv2")}}}}(e,n),o=r.extractConvParams,a=r.extractSeparableConvParams,i=r.extractReductionBlockParams,s=r.extractMainBlockParams,u={conv_in:o("entry_flow/conv_in"),reduction_block_0:i("entry_flow/reduction_block_0"),reduction_block_1:i("entry_flow/reduction_block_1")},c={};Hd(t,0,1).forEach((function(e){c["main_block_"+e]=s("middle_flow/main_block_"+e)}));var l={reduction_block:i("exit_flow/reduction_block"),separable_conv:a("exit_flow/separable_conv")};return Vv(e,n),{params:{entry_flow:u,middle_flow:c,exit_flow:l},paramMappings:n}}function dm(e,t,n){return Ol(df(e,t.filters,n,"same"),t.bias)}function vm(e,t,n){void 0===n&&(n=!0);var r=n?ah(e):e;return r=Lv(r,t.separable_conv0,[1,1]),r=Lv(ah(r),t.separable_conv1,[1,1]),r=Nf(r,[3,3],[2,2],"same"),r=Ol(r,dm(e,t.expansion_conv,[2,2]))}var mm,gm=function(e){function t(t){var n=e.call(this,"TinyXception")||this;return n._numMainBlocks=t,n}return Sd(t,e),t.prototype.forwardInput=function(e){var t=this,n=this.params;if(!n)throw new Error("TinyXception - load model before inference");return _o((function(){var r=Jd(e.toBatchTensor(112,!0),[122.782,117.001,104.298]).div(Go(256)),o=ah(dm(r,n.entry_flow.conv_in,[2,2]));return o=vm(o,n.entry_flow.reduction_block_0,!1),o=vm(o,n.entry_flow.reduction_block_1),Hd(t._numMainBlocks,0,1).forEach((function(e){o=function(e,t){var n=Lv(ah(e),t.separable_conv0,[1,1]);return n=Lv(ah(n),t.separable_conv1,[1,1]),n=Lv(ah(n),t.separable_conv2,[1,1]),Ol(n,e)}(o,n.middle_flow["main_block_"+e])})),o=vm(o,n.exit_flow.reduction_block),o=ah(Lv(o,n.exit_flow.separable_conv,[1,1]))}))},t.prototype.forward=function(e){return Pd(this,void 0,void 0,(function(){var t;return Td(this,(function(n){switch(n.label){case 0:return t=this.forwardInput,[4,Pv(e)];case 1:return[2,t.apply(this,[n.sent()])]}}))}))},t.prototype.getDefaultModelName=function(){return"tiny_xception_model"},t.prototype.extractParamsFromWeigthMap=function(e){return pm(e,this._numMainBlocks)},t.prototype.extractParams=function(e){return hm(e,this._numMainBlocks)},t}(jv);!function(e){e.FEMALE="female",e.MALE="male"}(mm||(mm={}));var ym=function(e){function t(t){void 0===t&&(t=new gm(2));var n=e.call(this,"AgeGenderNet")||this;return n._faceFeatureExtractor=t,n}return Sd(t,e),Object.defineProperty(t.prototype,"faceFeatureExtractor",{get:function(){return this._faceFeatureExtractor},enumerable:!0,configurable:!0}),t.prototype.runNet=function(e){var t=this,n=this.params;if(!n)throw new Error(this._name+" - load model before inference");return _o((function(){var r=e instanceof Av?t.faceFeatureExtractor.forwardInput(e):e,o=Mf(r,[7,7],[2,2],"valid").as2D(r.shape[0],-1);return{age:tm(o,n.fc.age).as1D(),gender:tm(o,n.fc.gender)}}))},t.prototype.forwardInput=function(e){var t=this;return _o((function(){var n=t.runNet(e),r=n.age,o=n.gender;return{age:r,gender:li(o)}}))},t.prototype.forward=function(e){return Pd(this,void 0,void 0,(function(){var t;return Td(this,(function(n){switch(n.label){case 0:return t=this.forwardInput,[4,Pv(e)];case 1:return[2,t.apply(this,[n.sent()])]}}))}))},t.prototype.predictAgeAndGender=function(e){return Pd(this,void 0,void 0,(function(){var t,n,r,o,a,i,s=this;return Td(this,(function(u){switch(u.label){case 0:return[4,Pv(e)];case 1:return t=u.sent(),[4,this.forwardInput(t)];case 2:return n=u.sent(),r=Xa(n.age),o=Xa(n.gender),a=r.map((function(e,t){return{ageTensor:e,genderTensor:o[t]}})),[4,Promise.all(a.map((function(e){var t=e.ageTensor,n=e.genderTensor;return Pd(s,void 0,void 0,(function(){var e,r,o,a,i;return Td(this,(function(s){switch(s.label){case 0:return[4,t.data()];case 1:return e=s.sent()[0],[4,n.data()];case 2:return r=s.sent()[0],a=(o=r>.5)?mm.MALE:mm.FEMALE,i=o?r:1-r,t.dispose(),n.dispose(),[2,{age:e,gender:a,genderProbability:i}]}}))}))})))];case 3:return i=u.sent(),n.age.dispose(),n.gender.dispose(),[2,t.isBatchInput?i:i[0]]}}))}))},t.prototype.getDefaultModelName=function(){return"age_gender_model"},t.prototype.dispose=function(t){void 0===t&&(t=!0),this.faceFeatureExtractor.dispose(t),e.prototype.dispose.call(this,t)},t.prototype.loadClassifierParams=function(e){var t=this.extractClassifierParams(e),n=t.params,r=t.paramMappings;this._params=n,this._paramMappings=r},t.prototype.extractClassifierParams=function(e){return function(e){var t=[],n=Yv(e),r=n.extractWeights,o=n.getRemainingWeights,a=qv(r,t),i=a(512,1,"fc/age"),s=a(512,2,"fc/gender");if(0!==o().length)throw new Error("weights remaing after extract: "+o().length);return{paramMappings:t,params:{fc:{age:i,gender:s}}}}(e)},t.prototype.extractParamsFromWeigthMap=function(e){var t=nm(e),n=t.featureExtractorMap,r=t.classifierMap;return this.faceFeatureExtractor.loadFromWeightMap(n),function(e){var t=[],n=$v(e,t);function r(e){return{weights:n(e+"/weights",2),bias:n(e+"/bias",1)}}var o={fc:{age:r("fc/age"),gender:r("fc/gender")}};return Vv(e,t),{params:o,paramMappings:t}}(r)},t.prototype.extractParams=function(e){var t=e.slice(0,e.length-1539),n=e.slice(e.length-1539);return this.faceFeatureExtractor.extractWeights(t),this.extractClassifierParams(n)},t}(jv),bm=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return Sd(t,e),t.prototype.postProcess=function(e,t,n){var r=n.map((function(e){var n=e.width,r=e.height,o=t/Math.max(r,n);return{width:n*o,height:r*o}})),o=r.length;return _o((function(){var n=function(e,t){return Ua([Qo([68],e),Qo([68],t)],1).as2D(1,136).as1D()},a=function(e,t){var n=r[e],o=n.width,a=n.height;return t(o,a)?Math.abs(o-a)/2:0},i=e.mul(Qo([o,136],t)).sub(Ua(Array.from(Array(o),(function(e,t){return n(function(e){return a(e,(function(e,t){return e<t}))}(t),function(e){return a(e,(function(e,t){return t<e}))}(t))})))).div(Ua(Array.from(Array(o),(function(e,t){return n(r[t].width,r[t].height)}))));return i}))},t.prototype.forwardInput=function(e){var t=this;return _o((function(){var n=t.runNet(e);return t.postProcess(n,e.inputSize,e.inputDimensions.map((function(e){return{height:e[0],width:e[1]}})))}))},t.prototype.forward=function(e){return Pd(this,void 0,void 0,(function(){var t;return Td(this,(function(n){switch(n.label){case 0:return t=this.forwardInput,[4,Pv(e)];case 1:return[2,t.apply(this,[n.sent()])]}}))}))},t.prototype.detectLandmarks=function(e){return Pd(this,void 0,void 0,(function(){var t,n,r,o=this;return Td(this,(function(a){switch(a.label){case 0:return[4,Pv(e)];case 1:return t=a.sent(),n=_o((function(){return Xa(o.forwardInput(t))})),[4,Promise.all(n.map((function(e,n){return Pd(o,void 0,void 0,(function(){var r,o,a,i,s;return Td(this,(function(u){switch(u.label){case 0:return a=(o=Array).from,[4,e.data()];case 1:return r=a.apply(o,[u.sent()]),i=r.filter((function(e,t){return jd(t)})),s=r.filter((function(e,t){return!jd(t)})),[2,new rv(Array(68).fill(0).map((function(e,t){return new Ud(i[t],s[t])})),{height:t.getInputHeight(n),width:t.getInputWidth(n)})]}}))}))})))];case 2:return r=a.sent(),n.forEach((function(e){return e.dispose()})),[2,t.isBatchInput?r:r[0]]}}))}))},t.prototype.getClassifierChannelsOut=function(){return 136},t}(rm),wm=function(e){function t(t){return void 0===t&&(t=new em),e.call(this,"FaceLandmark68Net",t)||this}return Sd(t,e),t.prototype.getDefaultModelName=function(){return"face_landmark_68_model"},t.prototype.getClassifierChannelsIn=function(){return 256},t}(bm);var xm=function(e){function t(){return e.call(this,"TinyFaceFeatureExtractor")||this}return Sd(t,e),t.prototype.forwardInput=function(e){var t=this.params;if(!t)throw new Error("TinyFaceFeatureExtractor - load model before inference");return _o((function(){var n=zv(Jd(e.toBatchTensor(112,!0),[122.782,117.001,104.298]).div(Go(255)),t.dense0,!0);return n=zv(n,t.dense1),n=zv(n,t.dense2),n=Mf(n,[14,14],[2,2],"valid")}))},t.prototype.forward=function(e){return Pd(this,void 0,void 0,(function(){var t;return Td(this,(function(n){switch(n.label){case 0:return t=this.forwardInput,[4,Pv(e)];case 1:return[2,t.apply(this,[n.sent()])]}}))}))},t.prototype.getDefaultModelName=function(){return"face_feature_extractor_tiny_model"},t.prototype.extractParamsFromWeigthMap=function(e){return function(e){var t=[],n=Qv(e,t).extractDenseBlock3Params,r={dense0:n("dense0",!0),dense1:n("dense1"),dense2:n("dense2")};return Vv(e,t),{params:r,paramMappings:t}}(e)},t.prototype.extractParams=function(e){return function(e){var t=[],n=Yv(e),r=n.extractWeights,o=n.getRemainingWeights,a=Jv(r,t).extractDenseBlock3Params,i=a(3,32,"dense0",!0),s=a(32,64,"dense1"),u=a(64,128,"dense2");if(0!==o().length)throw new Error("weights remaing after extract: "+o().length);return{paramMappings:t,params:{dense0:i,dense1:s,dense2:u}}}(e)},t}(jv),Em=function(e){function t(t){return void 0===t&&(t=new xm),e.call(this,"FaceLandmark68TinyNet",t)||this}return Sd(t,e),t.prototype.getDefaultModelName=function(){return"face_landmark_68_tiny_model"},t.prototype.getClassifierChannelsIn=function(){return 128},t}(bm);!function(e){function t(){return null!==e&&e.apply(this,arguments)||this}Sd(t,e)}(wm);function _m(e,t,n,r,o){void 0===o&&(o="same");var a=t.conv,i=a.filters,s=a.bias,u=df(e,i,n,o);return u=function(e,t){return Ol(Ll(e,t.weights),t.biases)}(u=Ol(u,s),t.scale),r?ah(u):u}function km(e,t){return _m(e,t,[1,1],!1)}function Om(e,t){return _m(e,t,[2,2],!0,"valid")}function Cm(e,t){function n(n,r,o,a){var i=function(t,n,r){var o=e(t),a=o.length/(n*r*r);if(a%1!=0)throw new Error("depth has to be an integer: "+a+", weights.length: "+o.length+", numFilters: "+n+", filterSize: "+r);return _o((function(){return uh(Yo(o,[n,a,r,r]),[2,3,1,0])}))}(n,r,o),s=Xo(e(r));return t.push({paramPath:a+"/filters"},{paramPath:a+"/bias"}),{filters:i,bias:s}}function r(r,o,a,i){var s=n(r,o,a,i+"/conv"),u=function(n,r){var o=Xo(e(n)),a=Xo(e(n));return t.push({paramPath:r+"/weights"},{paramPath:r+"/biases"}),{weights:o,biases:a}}(o,i+"/scale");return{conv:s,scale:u}}return{extractConvLayerParams:r,extractResidualLayerParams:function(e,t,n,o,a){return void 0===a&&(a=!1),{conv1:r((a?.5:1)*e,t,n,o+"/conv1"),conv2:r(e,t,n,o+"/conv2")}}}}function Im(e,t){var n=$v(e,t);function r(e){var t=n(e+"/conv/filters",4),r=n(e+"/conv/bias",1),o=function(e){return{weights:n(e+"/scale/weights",1),biases:n(e+"/scale/biases",1)}}(e);return{conv:{filters:t,bias:r},scale:o}}return{extractConvLayerParams:r,extractResidualLayerParams:function(e){return{conv1:r(e+"/conv1"),conv2:r(e+"/conv2")}}}}function Rm(e){var t=[],n=Im(e,t),r=n.extractConvLayerParams,o=n.extractResidualLayerParams,a=r("conv32_down"),i=o("conv32_1"),s=o("conv32_2"),u=o("conv32_3"),c=o("conv64_down"),l=o("conv64_1"),f=o("conv64_2"),h=o("conv64_3"),p=o("conv128_down"),d=o("conv128_1"),v=o("conv128_2"),m=o("conv256_down"),g=o("conv256_1"),y=o("conv256_2"),b=o("conv256_down_out"),w=e.fc;if(t.push({originalPath:"fc",paramPath:"fc"}),!Md(w,2))throw new Error("expected weightMap[fc] to be a Tensor2D, instead have "+w);var x={conv32_down:a,conv32_1:i,conv32_2:s,conv32_3:u,conv64_down:c,conv64_1:l,conv64_2:f,conv64_3:h,conv128_down:p,conv128_1:d,conv128_2:v,conv256_down:m,conv256_1:g,conv256_2:y,conv256_down_out:b,fc:w};return Vv(e,t),{params:x,paramMappings:t}}function Sm(e,t){var n=function(e,t){return _m(e,t,[1,1],!0)}(e,t.conv1);return n=km(n,t.conv2),n=Ol(n,e),n=ah(n)}function Am(e,t){var n=Om(e,t.conv1);n=km(n,t.conv2);var r=Mf(e,2,2,"valid"),o=Zo(r.shape),a=r.shape[3]!==n.shape[3];if(r.shape[1]!==n.shape[1]||r.shape[2]!==n.shape[2]){var i=Dd(n.shape);i[1]=1;var s=Zo(i),u=Dd((n=ra([n,s],1)).shape);u[2]=1;var c=Zo(u);n=ra([n,c],2)}return r=a?ra([r,o],3):r,n=Ol(r,n),n=ah(n)}var Pm=function(e){function t(){return e.call(this,"FaceRecognitionNet")||this}return Sd(t,e),t.prototype.forwardInput=function(e){var t=this.params;if(!t)throw new Error("FaceRecognitionNet - load model before inference");return _o((function(){var n=Om(Jd(e.toBatchTensor(150,!0).toFloat(),[122.782,117.001,104.298]).div(Go(256)),t.conv32_down);n=Sm(n=Nf(n,3,2,"valid"),t.conv32_1),n=Sm(n,t.conv32_2),n=Sm(n,t.conv32_3),n=Sm(n=Am(n,t.conv64_down),t.conv64_1),n=Sm(n,t.conv64_2),n=Sm(n,t.conv64_3),n=Sm(n=Am(n,t.conv128_down),t.conv128_1),n=Sm(n,t.conv128_2),n=Sm(n=Am(n,t.conv256_down),t.conv256_1);var r=(n=Am(n=Sm(n,t.conv256_2),t.conv256_down_out)).mean([1,2]);return kf(r,t.fc)}))},t.prototype.forward=function(e){return Pd(this,void 0,void 0,(function(){var t;return Td(this,(function(n){switch(n.label){case 0:return t=this.forwardInput,[4,Pv(e)];case 1:return[2,t.apply(this,[n.sent()])]}}))}))},t.prototype.computeFaceDescriptor=function(e){return Pd(this,void 0,void 0,(function(){var t,n,r,o=this;return Td(this,(function(a){switch(a.label){case 0:return[4,Pv(e)];case 1:return t=a.sent(),n=_o((function(){return Xa(o.forwardInput(t))})),[4,Promise.all(n.map((function(e){return e.data()})))];case 2:return r=a.sent(),n.forEach((function(e){return e.dispose()})),[2,t.isBatchInput?r:r[0]]}}))}))},t.prototype.getDefaultModelName=function(){return"face_recognition_model"},t.prototype.extractParamsFromWeigthMap=function(e){return Rm(e)},t.prototype.extractParams=function(e){return function(e){var t=Yv(e),n=t.extractWeights,r=t.getRemainingWeights,o=[],a=Cm(n,o),i=a.extractConvLayerParams,s=a.extractResidualLayerParams,u=i(4704,32,7,"conv32_down"),c=s(9216,32,3,"conv32_1"),l=s(9216,32,3,"conv32_2"),f=s(9216,32,3,"conv32_3"),h=s(36864,64,3,"conv64_down",!0),p=s(36864,64,3,"conv64_1"),d=s(36864,64,3,"conv64_2"),v=s(36864,64,3,"conv64_3"),m=s(147456,128,3,"conv128_down",!0),g=s(147456,128,3,"conv128_1"),y=s(147456,128,3,"conv128_2"),b=s(589824,256,3,"conv256_down",!0),w=s(589824,256,3,"conv256_1"),x=s(589824,256,3,"conv256_2"),E=s(589824,256,3,"conv256_down_out"),_=_o((function(){return uh(Ko(n(32768),[128,256]),[1,0])}));if(o.push({paramPath:"fc"}),0!==r().length)throw new Error("weights remaing after extract: "+r().length);return{params:{conv32_down:u,conv32_1:c,conv32_2:l,conv32_3:f,conv64_down:h,conv64_1:p,conv64_2:d,conv64_3:v,conv128_down:m,conv128_1:g,conv128_2:y,conv256_down:b,conv256_1:w,conv256_2:x,conv256_down_out:E,fc:_},paramMappings:o}}(e)},t}(jv);function Tm(e,t,n){var r={gender:t,genderProbability:n};return Object.assign({},e,r)}var Dm=function(){function e(e){var t=void 0===e?{}:e,n=t.minFaceSize,r=t.scaleFactor,o=t.maxNumScales,a=t.scoreThresholds,i=t.scaleSteps;if(this._name="MtcnnOptions",this._minFaceSize=n||20,this._scaleFactor=r||.709,this._maxNumScales=o||10,this._scoreThresholds=a||[.6,.7,.7],this._scaleSteps=i,"number"!=typeof this._minFaceSize||this._minFaceSize<0)throw new Error(this._name+" - expected minFaceSize to be a number > 0");if("number"!=typeof this._scaleFactor||this._scaleFactor<=0||this._scaleFactor>=1)throw new Error(this._name+" - expected scaleFactor to be a number between 0 and 1");if("number"!=typeof this._maxNumScales||this._maxNumScales<0)throw new Error(this._name+" - expected maxNumScales to be a number > 0");if(!Array.isArray(this._scoreThresholds)||3!==this._scoreThresholds.length||this._scoreThresholds.some((function(e){return"number"!=typeof e})))throw new Error(this._name+" - expected scoreThresholds to be an array of numbers of length 3");if(this._scaleSteps&&(!Array.isArray(this._scaleSteps)||this._scaleSteps.some((function(e){return"number"!=typeof e}))))throw new Error(this._name+" - expected scaleSteps to be an array of numbers")}return Object.defineProperty(e.prototype,"minFaceSize",{get:function(){return this._minFaceSize},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"scaleFactor",{get:function(){return this._scaleFactor},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"maxNumScales",{get:function(){return this._maxNumScales},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"scoreThresholds",{get:function(){return this._scoreThresholds},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"scaleSteps",{get:function(){return this._scaleSteps},enumerable:!0,configurable:!0}),e}();function Nm(e,t){function n(n,r,o,a,i){var s=Yo(e(n*r*o*o),[o,o,n,r]),u=Xo(e(r));return t.push({paramPath:a+"/filters"},{paramPath:a+"/"+(i?"batch_norm_offset":"bias")}),{filters:s,bias:u}}function r(e,t,r,o){var a=n(e,t,r,o,!0);return{filters:a.filters,batch_norm_offset:a.bias}}function o(n,o,a){var i=function(n,r){var o=Yo(e(9*n),[3,3,n,1]),a=Xo(e(n)),i=Xo(e(n)),s=Xo(e(n)),u=Xo(e(n));return t.push({paramPath:r+"/filters"},{paramPath:r+"/batch_norm_scale"},{paramPath:r+"/batch_norm_offset"},{paramPath:r+"/batch_norm_mean"},{paramPath:r+"/batch_norm_variance"}),{filters:o,batch_norm_scale:a,batch_norm_offset:i,batch_norm_mean:s,batch_norm_variance:u}}(n,a+"/depthwise_conv");return{depthwise_conv:i,pointwise_conv:r(n,o,1,a+"/pointwise_conv")}}return{extractMobilenetV1Params:function(){return{conv_0:r(3,32,3,"mobilenetv1/conv_0"),conv_1:o(32,64,"mobilenetv1/conv_1"),conv_2:o(64,128,"mobilenetv1/conv_2"),conv_3:o(128,128,"mobilenetv1/conv_3"),conv_4:o(128,256,"mobilenetv1/conv_4"),conv_5:o(256,256,"mobilenetv1/conv_5"),conv_6:o(256,512,"mobilenetv1/conv_6"),conv_7:o(512,512,"mobilenetv1/conv_7"),conv_8:o(512,512,"mobilenetv1/conv_8"),conv_9:o(512,512,"mobilenetv1/conv_9"),conv_10:o(512,512,"mobilenetv1/conv_10"),conv_11:o(512,512,"mobilenetv1/conv_11"),conv_12:o(512,1024,"mobilenetv1/conv_12"),conv_13:o(1024,1024,"mobilenetv1/conv_13")}},extractPredictionLayerParams:function(){return{conv_0:r(1024,256,1,"prediction_layer/conv_0"),conv_1:r(256,512,3,"prediction_layer/conv_1"),conv_2:r(512,128,1,"prediction_layer/conv_2"),conv_3:r(128,256,3,"prediction_layer/conv_3"),conv_4:r(256,128,1,"prediction_layer/conv_4"),conv_5:r(128,256,3,"prediction_layer/conv_5"),conv_6:r(256,64,1,"prediction_layer/conv_6"),conv_7:r(64,128,3,"prediction_layer/conv_7"),box_predictor_0:{box_encoding_predictor:n(512,12,1,"prediction_layer/box_predictor_0/box_encoding_predictor"),class_predictor:n(512,9,1,"prediction_layer/box_predictor_0/class_predictor")},box_predictor_1:{box_encoding_predictor:n(1024,24,1,"prediction_layer/box_predictor_1/box_encoding_predictor"),class_predictor:n(1024,18,1,"prediction_layer/box_predictor_1/class_predictor")},box_predictor_2:{box_encoding_predictor:n(512,24,1,"prediction_layer/box_predictor_2/box_encoding_predictor"),class_predictor:n(512,18,1,"prediction_layer/box_predictor_2/class_predictor")},box_predictor_3:{box_encoding_predictor:n(256,24,1,"prediction_layer/box_predictor_3/box_encoding_predictor"),class_predictor:n(256,18,1,"prediction_layer/box_predictor_3/class_predictor")},box_predictor_4:{box_encoding_predictor:n(256,24,1,"prediction_layer/box_predictor_4/box_encoding_predictor"),class_predictor:n(256,18,1,"prediction_layer/box_predictor_4/class_predictor")},box_predictor_5:{box_encoding_predictor:n(128,24,1,"prediction_layer/box_predictor_5/box_encoding_predictor"),class_predictor:n(128,18,1,"prediction_layer/box_predictor_5/class_predictor")}}}}}function Mm(e){var t=[],n=function(e,t){var n=$v(e,t);function r(e,t,r){return{filters:n(e+"/Conv2d_"+t+"_pointwise/weights",4,r+"/filters"),batch_norm_offset:n(e+"/Conv2d_"+t+"_pointwise/convolution_bn_offset",1,r+"/batch_norm_offset")}}function o(e){var t="mobilenetv1/conv_"+e,o="MobilenetV1/Conv2d_"+e+"_depthwise",a=t+"/depthwise_conv",i=t+"/pointwise_conv";return{depthwise_conv:{filters:n(o+"/depthwise_weights",4,a+"/filters"),batch_norm_scale:n(o+"/BatchNorm/gamma",1,a+"/batch_norm_scale"),batch_norm_offset:n(o+"/BatchNorm/beta",1,a+"/batch_norm_offset"),batch_norm_mean:n(o+"/BatchNorm/moving_mean",1,a+"/batch_norm_mean"),batch_norm_variance:n(o+"/BatchNorm/moving_variance",1,a+"/batch_norm_variance")},pointwise_conv:r("MobilenetV1",e,i)}}function a(e,t){return{filters:n(e+"/weights",4,t+"/filters"),bias:n(e+"/biases",1,t+"/bias")}}function i(e){return{box_encoding_predictor:a("Prediction/BoxPredictor_"+e+"/BoxEncodingPredictor","prediction_layer/box_predictor_"+e+"/box_encoding_predictor"),class_predictor:a("Prediction/BoxPredictor_"+e+"/ClassPredictor","prediction_layer/box_predictor_"+e+"/class_predictor")}}return{extractMobilenetV1Params:function(){return{conv_0:r("MobilenetV1",0,"mobilenetv1/conv_0"),conv_1:o(1),conv_2:o(2),conv_3:o(3),conv_4:o(4),conv_5:o(5),conv_6:o(6),conv_7:o(7),conv_8:o(8),conv_9:o(9),conv_10:o(10),conv_11:o(11),conv_12:o(12),conv_13:o(13)}},extractPredictionLayerParams:function(){return{conv_0:r("Prediction",0,"prediction_layer/conv_0"),conv_1:r("Prediction",1,"prediction_layer/conv_1"),conv_2:r("Prediction",2,"prediction_layer/conv_2"),conv_3:r("Prediction",3,"prediction_layer/conv_3"),conv_4:r("Prediction",4,"prediction_layer/conv_4"),conv_5:r("Prediction",5,"prediction_layer/conv_5"),conv_6:r("Prediction",6,"prediction_layer/conv_6"),conv_7:r("Prediction",7,"prediction_layer/conv_7"),box_predictor_0:i(0),box_predictor_1:i(1),box_predictor_2:i(2),box_predictor_3:i(3),box_predictor_4:i(4),box_predictor_5:i(5)}}}}(e,t),r=n.extractMobilenetV1Params,o=n.extractPredictionLayerParams,a=e["Output/extra_dim"];if(t.push({originalPath:"Output/extra_dim",paramPath:"output_layer/extra_dim"}),!Fd(a))throw new Error("expected weightMap['Output/extra_dim'] to be a Tensor3D, instead have "+a);var i={mobilenetv1:r(),prediction_layer:o(),output_layer:{extra_dim:a}};return Vv(e,t),{params:i,paramMappings:t}}function Fm(e,t,n){return _o((function(){var r=df(e,t.filters,n,"same");return r=Ol(r,t.batch_norm_offset),Dc(r,0,6)}))}function Bm(e,t){return _o((function(){var n=null,r=Fm(e,t.conv_0,[2,2]);if([t.conv_1,t.conv_2,t.conv_3,t.conv_4,t.conv_5,t.conv_6,t.conv_7,t.conv_8,t.conv_9,t.conv_10,t.conv_11,t.conv_12,t.conv_13].forEach((function(e,t){var o=t+1,a=function(e){return[2,4,6,12].some((function(t){return t===e}))?[2,2]:[1,1]}(o);r=function(e,t,n){return _o((function(){var r=yf(e,t.filters,n,"same");return r=vl(r,t.batch_norm_mean,t.batch_norm_variance,t.batch_norm_offset,t.batch_norm_scale,.0010000000474974513),Dc(r,0,6)}))}(r,e.depthwise_conv,a),r=Fm(r,e.pointwise_conv,[1,1]),11===o&&(n=r)})),null===n)throw new Error("mobileNetV1 - output of conv layer 11 is null");return{out:r,conv11:n}}))}function jm(e,t,n){var r=e.arraySync(),o=Math.min(r[t][0],r[t][2]),a=Math.min(r[t][1],r[t][3]),i=Math.max(r[t][0],r[t][2]),s=Math.max(r[t][1],r[t][3]),u=Math.min(r[n][0],r[n][2]),c=Math.min(r[n][1],r[n][3]),l=Math.max(r[n][0],r[n][2]),f=Math.max(r[n][1],r[n][3]),h=(i-o)*(s-a),p=(l-u)*(f-c);if(h<=0||p<=0)return 0;var d=Math.max(o,u),v=Math.max(a,c),m=Math.min(i,l),g=Math.min(s,f),y=Math.max(m-d,0)*Math.max(g-v,0);return y/(h+p-y)}function Lm(e,t){var n=function(e){var t=Xa(uh(e,[1,0])),n=[ql(t[2],t[0]),ql(t[3],t[1])];return{sizes:n,centers:[Ol(t[0],Sl(n[0],Go(2))),Ol(t[1],Sl(n[1],Go(2)))]}}(e),r=n.sizes,o=n.centers,a=Xa(uh(t,[1,0])),i=Sl(Ll(Bc(Sl(a[2],Go(5))),r[0]),Go(2)),s=Ol(Ll(Sl(a[0],Go(10)),r[0]),o[0]),u=Sl(Ll(Bc(Sl(a[3],Go(5))),r[1]),Go(2)),c=Ol(Ll(Sl(a[1],Go(10)),r[1]),o[1]);return uh(Ua([ql(s,i),ql(c,u),Ol(s,i),Ol(c,u)]),[1,0])}function zm(e,t){return _o((function(){var n=e.shape[0];return{boxPredictionEncoding:Ha(Wv(e,t.box_encoding_predictor),[n,-1,1,4]),classPrediction:Ha(Wv(e,t.class_predictor),[n,-1,3])}}))}var Hm=function(){function e(e){var t=void 0===e?{}:e,n=t.minConfidence,r=t.maxResults;if(this._name="SsdMobilenetv1Options",this._minConfidence=n||.5,this._maxResults=r||100,"number"!=typeof this._minConfidence||this._minConfidence<=0||this._minConfidence>=1)throw new Error(this._name+" - expected minConfidence to be a number between 0 and 1");if("number"!=typeof this._maxResults)throw new Error(this._name+" - expected maxResults to be a number")}return Object.defineProperty(e.prototype,"minConfidence",{get:function(){return this._minConfidence},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"maxResults",{get:function(){return this._maxResults},enumerable:!0,configurable:!0}),e}(),Wm=function(e){function t(){return e.call(this,"SsdMobilenetv1")||this}return Sd(t,e),t.prototype.forwardInput=function(e){var t=this.params;if(!t)throw new Error("SsdMobilenetv1 - load model before inference");return _o((function(){var n=e.toBatchTensor(512,!1).toFloat(),r=Bm(ql(Ll(n,Go(.007843137718737125)),Go(1)),t.mobilenetv1),o=function(e,t,n){return _o((function(){var r=Fm(e,n.conv_0,[1,1]),o=Fm(r,n.conv_1,[2,2]),a=Fm(o,n.conv_2,[1,1]),i=Fm(a,n.conv_3,[2,2]),s=Fm(i,n.conv_4,[1,1]),u=Fm(s,n.conv_5,[2,2]),c=Fm(u,n.conv_6,[1,1]),l=Fm(c,n.conv_7,[2,2]),f=zm(t,n.box_predictor_0),h=zm(e,n.box_predictor_1),p=zm(o,n.box_predictor_2),d=zm(i,n.box_predictor_3),v=zm(u,n.box_predictor_4),m=zm(l,n.box_predictor_5);return{boxPredictions:ra([f.boxPredictionEncoding,h.boxPredictionEncoding,p.boxPredictionEncoding,d.boxPredictionEncoding,v.boxPredictionEncoding,m.boxPredictionEncoding],1),classPredictions:ra([f.classPrediction,h.classPrediction,p.classPrediction,d.classPrediction,v.classPrediction,m.classPrediction],1)}}))}(r.out,r.conv11,t.prediction_layer);return function(e,t,n){return _o((function(){var r=e.shape[0],o=Lm(Ha(qa(n.extra_dim,[r,1,1]),[-1,4]),Ha(e,[-1,4]));o=Ha(o,[r,o.shape[0]/r,4]);var a=Xc(Lf(t,[0,0,1],[-1,-1,-1])),i=Lf(a,[0,0,0],[-1,-1,1]);return i=Ha(i,[r,i.shape[1]]),{boxes:Xa(o),scores:Xa(i)}}))}(o.boxPredictions,o.classPredictions,t.output_layer)}))},t.prototype.forward=function(e){return Pd(this,void 0,void 0,(function(){var t;return Td(this,(function(n){switch(n.label){case 0:return t=this.forwardInput,[4,Pv(e)];case 1:return[2,t.apply(this,[n.sent()])]}}))}))},t.prototype.locateFaces=function(e,t){return void 0===t&&(t={}),Pd(this,void 0,void 0,(function(){var n,r,o,a,i,s,u,c,l,f,h,p,d,v,m,g,y,b,w,x;return Td(this,(function(E){switch(E.label){case 0:return n=new Hm(t),r=n.maxResults,o=n.minConfidence,[4,Pv(e)];case 1:for(a=E.sent(),i=this.forwardInput(a),s=i.boxes,u=i.scores,c=s[0],l=u[0],f=1;f<s.length;f++)s[f].dispose(),u[f].dispose();return d=(p=Array).from,[4,l.data()];case 2:return h=d.apply(p,[E.sent()]),.5,v=function(e,t,n,r,o){var a=e.shape[0],i=Math.min(n,a),s=t.map((function(e,t){return{score:e,boxIndex:t}})).filter((function(e){return e.score>o})).sort((function(e,t){return t.score-e.score})),u=function(e){return e<=r?1:0},c=[];return s.forEach((function(t){if(!(c.length>=i)){for(var n=t.score,r=c.length-1;r>=0;--r){var a=jm(e,t.boxIndex,c[r]);if(0!==a&&(t.score*=u(a),t.score<=o))break}n===t.score&&c.push(t.boxIndex)}})),c}(c,h,r,.5,o),m=a.getReshapedInputDimensions(0),g=a.inputSize,y=g/m.width,b=g/m.height,w=c.arraySync(),x=v.map((function(e){var t=[Math.max(0,w[e][0]),Math.min(1,w[e][2])].map((function(e){return e*b})),n=t[0],r=t[1],o=[Math.max(0,w[e][1]),Math.min(1,w[e][3])].map((function(e){return e*y})),i=o[0],s=o[1];return new Kd(h[e],new ev(i,n,s-i,r-n),{height:a.getInputHeight(0),width:a.getInputWidth(0)})})),c.dispose(),l.dispose(),[2,x]}}))}))},t.prototype.getDefaultModelName=function(){return"ssd_mobilenetv1_model"},t.prototype.extractParamsFromWeigthMap=function(e){return Mm(e)},t.prototype.extractParams=function(e){return function(e){var t=[],n=Yv(e),r=n.extractWeights,o=n.getRemainingWeights,a=Nm(r,t),i=a.extractMobilenetV1Params,s=a.extractPredictionLayerParams,u=i(),c=s(),l={extra_dim:$o(r(20472),[1,5118,4])};if(t.push({paramPath:"output_layer/extra_dim"}),0!==o().length)throw new Error("weights remaing after extract: "+o().length);return{params:{mobilenetv1:u,prediction_layer:c,output_layer:l},paramMappings:t}}(e)},t}(jv);!function(e){function t(){return null!==e&&e.apply(this,arguments)||this}Sd(t,e)}(Wm);var Vm,Um=[new Ud(.738768,.874946),new Ud(2.42204,2.65704),new Ud(4.30971,7.04493),new Ud(10.246,4.59428),new Ud(12.6868,11.8741)],qm=[new Ud(1.603231,2.094468),new Ud(6.041143,7.080126),new Ud(2.882459,3.518061),new Ud(4.266906,5.178857),new Ud(9.041765,10.66308)],Gm=[117.001,114.697,97.404],Xm=function(e){return"number"==typeof e};function Km(e){return _o((function(){var t=Ll(e,Go(.10000000149011612));return Ol(ah(ql(e,t)),t)}))}function $m(e,t){return _o((function(){var n=Ta(e,[[0,0],[1,1],[1,1],[0,0]]);return n=df(n,t.conv.filters,[1,1],"valid"),n=ql(n,t.bn.sub),n=Ll(n,t.bn.truediv),Km(n=Ol(n,t.conv.bias))}))}function Ym(e,t){return _o((function(){var n=Ta(e,[[0,0],[1,1],[1,1],[0,0]]);return n=xf(n,t.depthwise_filter,t.pointwise_filter,[1,1],"valid"),Km(n=Ol(n,t.bias))}))}function Jm(e,t){var n=Uv(e,t);var r=Xv(e,t);return{extractConvParams:n,extractConvWithBatchNormParams:function(r,o,a){var i=n(r,o,3,a+"/conv"),s=function(n,r){var o=Xo(e(n)),a=Xo(e(n));return t.push({paramPath:r+"/sub"},{paramPath:r+"/truediv"}),{sub:o,truediv:a}}(o,a+"/bn");return{conv:i,bn:s}},extractSeparableConvParams:r}}function Zm(e,t){var n=$v(e,t);function r(e){return{filters:n(e+"/filters",4),bias:n(e+"/bias",1)}}return{extractConvParams:r,extractConvWithBatchNormParams:function(e){var t=r(e+"/conv"),o=function(e){return{sub:n(e+"/sub",1),truediv:n(e+"/truediv",1)}}(e+"/bn");return{conv:t,bn:o}},extractSeparableConvParams:Kv(n)}}!function(e){e[e.XS=224]="XS",e[e.SM=320]="SM",e[e.MD=416]="MD",e[e.LG=608]="LG"}(Vm||(Vm={}));var Qm=function(){function e(e){var t=void 0===e?{}:e,n=t.inputSize,r=t.scoreThreshold;if(this._name="TinyYolov2Options",this._inputSize=n||416,this._scoreThreshold=r||.5,"number"!=typeof this._inputSize||this._inputSize%32!=0)throw new Error(this._name+" - expected inputSize to be a number divisible by 32");if("number"!=typeof this._scoreThreshold||this._scoreThreshold<=0||this._scoreThreshold>=1)throw new Error(this._name+" - expected scoreThreshold to be a number between 0 and 1")}return Object.defineProperty(e.prototype,"inputSize",{get:function(){return this._inputSize},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"scoreThreshold",{get:function(){return this._scoreThreshold},enumerable:!0,configurable:!0}),e}(),eg=function(e){function t(t){var n=e.call(this,"TinyYolov2")||this;return function(e){if(!e)throw new Error("invalid config: "+e);if("boolean"!=typeof e.withSeparableConvs)throw new Error("config.withSeparableConvs has to be a boolean, have: "+e.withSeparableConvs);if(!Xm(e.iouThreshold)||e.iouThreshold<0||e.iouThreshold>1)throw new Error("config.iouThreshold has to be a number between [0, 1], have: "+e.iouThreshold);if(!Array.isArray(e.classes)||!e.classes.length||!e.classes.every((function(e){return"string"==typeof e})))throw new Error("config.classes has to be an array class names: string[], have: "+JSON.stringify(e.classes));if(!Array.isArray(e.anchors)||!e.anchors.length||!e.anchors.map((function(e){return e||{}})).every((function(e){return Xm(e.x)&&Xm(e.y)})))throw new Error("config.anchors has to be an array of { x: number, y: number }, have: "+JSON.stringify(e.anchors));if(e.meanRgb&&(!Array.isArray(e.meanRgb)||3!==e.meanRgb.length||!e.meanRgb.every(Xm)))throw new Error("config.meanRgb has to be an array of shape [number, number, number], have: "+JSON.stringify(e.meanRgb))}(t),n._config=t,n}return Sd(t,e),Object.defineProperty(t.prototype,"config",{get:function(){return this._config},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"withClassScores",{get:function(){return this.config.withClassScores||this.config.classes.length>1},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"boxEncodingSize",{get:function(){return 5+(this.withClassScores?this.config.classes.length:0)},enumerable:!0,configurable:!0}),t.prototype.runTinyYolov2=function(e,t){var n=$m(e,t.conv0);return n=$m(n=Nf(n,[2,2],[2,2],"same"),t.conv1),n=$m(n=Nf(n,[2,2],[2,2],"same"),t.conv2),n=$m(n=Nf(n,[2,2],[2,2],"same"),t.conv3),n=$m(n=Nf(n,[2,2],[2,2],"same"),t.conv4),n=$m(n=Nf(n,[2,2],[2,2],"same"),t.conv5),n=$m(n=Nf(n,[2,2],[1,1],"same"),t.conv6),Wv(n=$m(n,t.conv7),t.conv8,"valid",!1)},t.prototype.runMobilenet=function(e,t){var n=this.config.isFirstLayerConv2d?Km(Wv(e,t.conv0,"valid",!1)):Ym(e,t.conv0);return n=Ym(n=Nf(n,[2,2],[2,2],"same"),t.conv1),n=Ym(n=Nf(n,[2,2],[2,2],"same"),t.conv2),n=Ym(n=Nf(n,[2,2],[2,2],"same"),t.conv3),n=Ym(n=Nf(n,[2,2],[2,2],"same"),t.conv4),n=Ym(n=Nf(n,[2,2],[2,2],"same"),t.conv5),n=Nf(n,[2,2],[1,1],"same"),n=t.conv6?Ym(n,t.conv6):n,Wv(n=t.conv7?Ym(n,t.conv7):n,t.conv8,"valid",!1)},t.prototype.forwardInput=function(e,t){var n=this,r=this.params;if(!r)throw new Error("TinyYolov2 - load model before inference");return _o((function(){var o=e.toBatchTensor(t,!1).toFloat();return o=(o=n.config.meanRgb?Jd(o,n.config.meanRgb):o).div(Go(256)),n.config.withSeparableConvs?n.runMobilenet(o,r):n.runTinyYolov2(o,r)}))},t.prototype.forward=function(e,t){return Pd(this,void 0,void 0,(function(){var n;return Td(this,(function(r){switch(r.label){case 0:return n=this.forwardInput,[4,Pv(e)];case 1:return[4,n.apply(this,[r.sent(),t])];case 2:return[2,r.sent()]}}))}))},t.prototype.detect=function(e,t){return void 0===t&&(t={}),Pd(this,void 0,void 0,(function(){var n,r,o,a,i,s,u,c,l,f,h,p,d,v=this;return Td(this,(function(m){switch(m.label){case 0:return n=new Qm(t),r=n.inputSize,o=n.scoreThreshold,[4,Pv(e)];case 1:return a=m.sent(),[4,this.forwardInput(a,r)];case 2:return i=m.sent(),s=_o((function(){return Xa(i)[0].expandDims()})),u={width:a.getInputWidth(0),height:a.getInputHeight(0)},[4,this.extractBoxes(s,a.getReshapedInputDimensions(0),o)];case 3:return c=m.sent(),i.dispose(),s.dispose(),l=c.map((function(e){return e.box})),f=c.map((function(e){return e.score})),h=c.map((function(e){return e.classScore})),p=c.map((function(e){return v.config.classes[e.label]})),d=Yd(l.map((function(e){return e.rescale(r)})),f,this.config.iouThreshold,!0),[2,d.map((function(e){return new Xd(f[e],h[e],p[e],l[e],u)}))]}}))}))},t.prototype.getDefaultModelName=function(){return""},t.prototype.extractParamsFromWeigthMap=function(e){return function(e,t){var n,r=[],o=Zm(e,r),a=o.extractConvParams,i=o.extractConvWithBatchNormParams,s=o.extractSeparableConvParams;if(t.withSeparableConvs){var u=t.filterSizes&&t.filterSizes.length||9;n={conv0:t.isFirstLayerConv2d?a("conv0"):s("conv0"),conv1:s("conv1"),conv2:s("conv2"),conv3:s("conv3"),conv4:s("conv4"),conv5:s("conv5"),conv6:u>7?s("conv6"):void 0,conv7:u>8?s("conv7"):void 0,conv8:a("conv8")}}else n={conv0:i("conv0"),conv1:i("conv1"),conv2:i("conv2"),conv3:i("conv3"),conv4:i("conv4"),conv5:i("conv5"),conv6:i("conv6"),conv7:i("conv7"),conv8:a("conv8")};return Vv(e,r),{params:n,paramMappings:r}}(e,this.config)},t.prototype.extractParams=function(e){var n=this.config.filterSizes||t.DEFAULT_FILTER_SIZES,r=n?n.length:void 0;if(7!==r&&8!==r&&9!==r)throw new Error("TinyYolov2 - expected 7 | 8 | 9 convolutional filters, but found "+r+" filterSizes in config");return function(e,t,n,r){var o,a=Yv(e),i=a.extractWeights,s=a.getRemainingWeights,u=[],c=Jm(i,u),l=c.extractConvParams,f=c.extractConvWithBatchNormParams,h=c.extractSeparableConvParams;if(t.withSeparableConvs){var p=r[0],d=r[1],v=r[2],m=r[3],g=r[4],y=r[5],b=r[6],w=r[7],x=r[8];o={conv0:t.isFirstLayerConv2d?l(p,d,3,"conv0"):h(p,d,"conv0"),conv1:h(d,v,"conv1"),conv2:h(v,m,"conv2"),conv3:h(m,g,"conv3"),conv4:h(g,y,"conv4"),conv5:h(y,b,"conv5"),conv6:w?h(b,w,"conv6"):void 0,conv7:x?h(w,x,"conv7"):void 0,conv8:l(x||w||b,5*n,1,"conv8")}}else p=r[0],d=r[1],v=r[2],m=r[3],g=r[4],y=r[5],b=r[6],w=r[7],x=r[8],o={conv0:f(p,d,"conv0"),conv1:f(d,v,"conv1"),conv2:f(v,m,"conv2"),conv3:f(m,g,"conv3"),conv4:f(g,y,"conv4"),conv5:f(y,b,"conv5"),conv6:f(b,w,"conv6"),conv7:f(w,x,"conv7"),conv8:l(x,5*n,1,"conv8")};if(0!==s().length)throw new Error("weights remaing after extract: "+s().length);return{params:o,paramMappings:u}}(e,this.config,this.boxEncodingSize,n)},t.prototype.extractBoxes=function(e,t,n){return Pd(this,void 0,void 0,(function(){var r,o,a,i,s,u,c,l,f,h,p,d,v,m,g,y,b,w,x,E,_,k,O,C,I,R,S,A,P,T=this;return Td(this,(function(D){switch(D.label){case 0:return r=t.width,o=t.height,a=Math.max(r,o),i=a/r,s=a/o,u=e.shape[1],c=this.config.anchors.length,l=_o((function(){var t=e.reshape([u,u,c,T.boxEncodingSize]);return[t.slice([0,0,0,0],[u,u,c,4]),t.slice([0,0,0,4],[u,u,c,1]),T.withClassScores?li(t.slice([0,0,0,5],[u,u,c,T.config.classes.length]),3):Go(0)]})),f=l[0],h=l[1],p=l[2],d=[],[4,h.array()];case 1:return v=D.sent(),[4,f.array()];case 2:m=D.sent(),g=0,D.label=3;case 3:if(!(g<u))return[3,12];y=0,D.label=4;case 4:if(!(y<u))return[3,11];b=0,D.label=5;case 5:return b<c?(w=Zd(v[g][y][b][0]),!n||w>n?(x=(y+Zd(m[g][y][b][0]))/u*i,E=(g+Zd(m[g][y][b][1]))/u*s,_=Math.exp(m[g][y][b][2])*this.config.anchors[b].x/u*i,k=Math.exp(m[g][y][b][3])*this.config.anchors[b].y/u*s,O=x-_/2,C=E-k/2,I={row:g,col:y,anchor:b},this.withClassScores?[4,this.extractPredictedClass(p,I)]:[3,7]):[3,9]):[3,10];case 6:return P=D.sent(),[3,8];case 7:P={classScore:1,label:0},D.label=8;case 8:S=(R=P).classScore,A=R.label,d.push(Ad({box:new Gd(O,C,O+_,C+k),score:w,classScore:w*S,label:A},I)),D.label=9;case 9:return b++,[3,5];case 10:return y++,[3,4];case 11:return g++,[3,3];case 12:return f.dispose(),h.dispose(),p.dispose(),[2,d]}}))}))},t.prototype.extractPredictedClass=function(e,t){return Pd(this,void 0,void 0,(function(){var n,r,o,a;return Td(this,(function(i){switch(i.label){case 0:return n=t.row,r=t.col,o=t.anchor,[4,e.array()];case 1:return a=i.sent(),[2,Array(this.config.classes.length).fill(0).map((function(e,t){return a[n][r][o][t]})).map((function(e,t){return{classScore:e,label:t}})).reduce((function(e,t){return e.classScore>t.classScore?e:t}))]}}))}))},t.DEFAULT_FILTER_SIZES=[3,16,32,64,128,256,512,1024,1024],t}(jv),tg=function(e){function t(t){void 0===t&&(t=!0);var n=Object.assign({},{withSeparableConvs:t,iouThreshold:.4,classes:["face"]},t?{anchors:qm,meanRgb:Gm}:{anchors:Um,withClassScores:!0});return e.call(this,n)||this}return Sd(t,e),Object.defineProperty(t.prototype,"withSeparableConvs",{get:function(){return this.config.withSeparableConvs},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"anchors",{get:function(){return this.config.anchors},enumerable:!0,configurable:!0}),t.prototype.locateFaces=function(e,t){return Pd(this,void 0,void 0,(function(){return Td(this,(function(n){switch(n.label){case 0:return[4,this.detect(e,t)];case 1:return[2,n.sent().map((function(e){return new Kd(e.score,e.relativeBox,{width:e.imageWidth,height:e.imageHeight})}))]}}))}))},t.prototype.getDefaultModelName=function(){return this.withSeparableConvs?"tiny_yolov2_separable_conv_model":"tiny_yolov2_model"},t.prototype.extractParamsFromWeigthMap=function(t){return e.prototype.extractParamsFromWeigthMap.call(this,t)},t}(eg);var ng=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t._name="TinyFaceDetectorOptions",t}return Sd(t,e),t}(Qm),rg=function(){function e(){}return e.prototype.then=function(e){return Pd(this,void 0,void 0,(function(){var t;return Td(this,(function(n){switch(n.label){case 0:return t=e,[4,this.run()];case 1:return[2,t.apply(void 0,[n.sent()])]}}))}))},e.prototype.run=function(){return Pd(this,void 0,void 0,(function(){return Td(this,(function(e){throw new Error("ComposableTask - run is not implemented")}))}))},e}();function og(e,t){var n={descriptor:t};return Object.assign({},e,n)}function ag(e,t,n,r,o){return void 0===o&&(o=function(e){return e.alignedRect}),Pd(this,void 0,void 0,(function(){var a,i,s,u,c;return Td(this,(function(l){switch(l.label){case 0:return a=e.map((function(e){return um(e)?o(e):e.detection})),(s=r)?[3,5]:t instanceof er?[4,Dv(t,a)]:[3,2];case 1:return u=l.sent(),[3,4];case 2:return[4,Tv(t,a)];case 3:u=l.sent(),l.label=4;case 4:s=u,l.label=5;case 5:return[4,n(i=s)];case 6:return c=l.sent(),i.forEach((function(e){return e instanceof er&&e.dispose()})),[2,c]}}))}))}function ig(e,t,n,r,o){return Pd(this,void 0,void 0,(function(){var a=this;return Td(this,(function(i){return[2,ag([e],t,(function(e){return Pd(a,void 0,void 0,(function(){return Td(this,(function(t){return[2,n(e[0])]}))}))}),r,o)]}))}))}function sg(e){var t=Yv(e),n=t.extractWeights,r=t.getRemainingWeights,o=[],a=function(e,t){var n=Uv(e,t),r=qv(e,t);function o(n,r){var o=Xo(e(n));return t.push({paramPath:r}),o}function a(e,t,r){return void 0===r&&(r=!1),{conv1:n(e[0],e[1],3,t+"/conv1"),prelu1_alpha:o(e[1],t+"/prelu1_alpha"),conv2:n(e[1],e[2],3,t+"/conv2"),prelu2_alpha:o(e[2],t+"/prelu2_alpha"),conv3:n(e[2],e[3],r?2:3,t+"/conv3"),prelu3_alpha:o(e[3],t+"/prelu3_alpha")}}return{extractPNetParams:function(){var e=a([3,10,16,32],"pnet"),t=n(32,2,1,"pnet/conv4_1"),r=n(32,4,1,"pnet/conv4_2");return Ad(Ad({},e),{conv4_1:t,conv4_2:r})},extractRNetParams:function(){var e=a([3,28,48,64],"rnet",!0),t=r(576,128,"rnet/fc1"),n=o(128,"rnet/prelu4_alpha"),i=r(128,2,"rnet/fc2_1"),s=r(128,4,"rnet/fc2_2");return Ad(Ad({},e),{fc1:t,prelu4_alpha:n,fc2_1:i,fc2_2:s})},extractONetParams:function(){var e=a([3,32,64,64],"onet"),t=n(64,128,2,"onet/conv4"),i=o(128,"onet/prelu4_alpha"),s=r(1152,256,"onet/fc1"),u=o(256,"onet/prelu5_alpha"),c=r(256,2,"onet/fc2_1"),l=r(256,4,"onet/fc2_2"),f=r(256,10,"onet/fc2_3");return Ad(Ad({},e),{conv4:t,prelu4_alpha:i,fc1:s,prelu5_alpha:u,fc2_1:c,fc2_2:l,fc2_3:f})}}}(n,o),i=a.extractPNetParams,s=a.extractRNetParams,u=a.extractONetParams,c=i(),l=s(),f=u();if(0!==r().length)throw new Error("weights remaing after extract: "+r().length);return{params:{pnet:c,rnet:l,onet:f},paramMappings:o}}function ug(e){var t=[],n=function(e,t){var n=$v(e,t);function r(e){return{filters:n(e+"/weights",4,e+"/filters"),bias:n(e+"/bias",1)}}function o(e){return{weights:n(e+"/weights",2),bias:n(e+"/bias",1)}}function a(e){return n(e,1)}function i(e){return{conv1:r(e+"/conv1"),prelu1_alpha:a(e+"/prelu1_alpha"),conv2:r(e+"/conv2"),prelu2_alpha:a(e+"/prelu2_alpha"),conv3:r(e+"/conv3"),prelu3_alpha:a(e+"/prelu3_alpha")}}return{extractPNetParams:function(){var e=i("pnet"),t=r("pnet/conv4_1"),n=r("pnet/conv4_2");return Ad(Ad({},e),{conv4_1:t,conv4_2:n})},extractRNetParams:function(){var e=i("rnet"),t=o("rnet/fc1"),n=a("rnet/prelu4_alpha"),r=o("rnet/fc2_1"),s=o("rnet/fc2_2");return Ad(Ad({},e),{fc1:t,prelu4_alpha:n,fc2_1:r,fc2_2:s})},extractONetParams:function(){var e=i("onet"),t=r("onet/conv4"),n=a("onet/prelu4_alpha"),s=o("onet/fc1"),u=a("onet/prelu5_alpha"),c=o("onet/fc2_1"),l=o("onet/fc2_2"),f=o("onet/fc2_3");return Ad(Ad({},e),{conv4:t,prelu4_alpha:n,fc1:s,prelu5_alpha:u,fc2_1:c,fc2_2:l,fc2_3:f})}}}(e,t),r=n.extractPNetParams,o=n.extractRNetParams,a=n.extractONetParams,i=r(),s=o(),u=a();return Vv(e,t),{params:{pnet:i,rnet:s,onet:u},paramMappings:t}}function cg(e,t){var n=t[0],r=t[1];return{height:Math.floor(n*e),width:Math.floor(r*e)}}var lg=function(e){function t(t,n,r,o){return e.call(this,{left:t,top:n,right:r,bottom:o},!0)||this}return Sd(t,e),t}(qd);function fg(e){return _o((function(){return Ll(ql(e,Go(127.5)),Go(.0078125))}))}function hg(e,t){return _o((function(){return Ol(ah(e),Ll(t,Vc(ah(Vc(e)))))}))}function pg(e,t,n){return void 0===n&&(n=!1),_o((function(){var r=Wv(e,t.conv1,"valid");return r=hg(r,t.prelu1_alpha),r=hg(r=Wv(r=Nf(r,n?[2,2]:[3,3],[2,2],"same"),t.conv2,"valid"),t.prelu2_alpha),r=hg(r=Wv(r=n?r:Nf(r,[3,3],[2,2],"valid"),t.conv3,"valid"),t.prelu3_alpha)}))}function dg(e,t,n,r,o){o.stage1=[];var a=t.map((function(t){return _o((function(){var n={scale:t},o=function(e,t){return _o((function(){var n=cg(t,e.shape.slice(1)),r=n.height,o=n.width,a=fg(Qh.resizeBilinear(e,[r,o]));return uh(a,[0,2,1,3])}))}(e,t),a=Date.now(),i=function(e,t){return _o((function(){var n=pg(e,t,!0),r=Wv(n,t.conv4_1,"valid"),o=Ra(Yf(r,3),3);return{prob:li(ql(r,o),3),regions:Wv(n,t.conv4_2,"valid")}}))}(o,r),s=i.prob,u=i.regions;return n.pnet=Date.now()-a,{scoresTensor:Xa(Xa(s,3)[1])[0],regionsTensor:Xa(u)[0],scale:t,statsForScale:n}}))})),i=a.map((function(e){var t=e.scoresTensor,r=e.regionsTensor,a=e.scale,i=e.statsForScale,s=function(e,t,n,r){for(var o=[],a=e.arraySync(),i=0;i<e.shape[0];i++)for(var s=0;s<e.shape[1];s++)a[i][s]>=r&&o.push(new Ud(s,i));return o.map((function(e){var r=new Gd(Math.round((2*e.y+1)/n),Math.round((2*e.x+1)/n),Math.round((2*e.y+12)/n),Math.round((2*e.x+12)/n)),o=a[e.y][e.x],i=t.arraySync();return{cell:r,score:o,region:new lg(i[e.y][e.x][0],i[e.y][e.x][1],i[e.y][e.x][2],i[e.y][e.x][3])}}))}(t,r,a,n);if(t.dispose(),r.dispose(),!s.length)return o.stage1.push(i),[];var u=Date.now(),c=Yd(s.map((function(e){return e.cell})),s.map((function(e){return e.score})),.5);return i.nms=Date.now()-u,i.numBoxes=c.length,o.stage1.push(i),c.map((function(e){return s[e]}))})),s=i.reduce((function(e,t){return e.concat(t)}),[]),u=[],c=[];if(s.length>0){var l=Date.now(),f=Yd(s.map((function(e){return e.cell})),s.map((function(e){return e.score})),.7);o.stage1_nms=Date.now()-l,c=f.map((function(e){return s[e].score})),u=f.map((function(e){return s[e]})).map((function(e){var t=e.cell,n=e.region;return new Gd(t.left+n.left*t.width,t.top+n.top*t.height,t.right+n.right*t.width,t.bottom+n.bottom*t.height).toSquare().round()}))}return{boxes:u,scores:c}}function vg(e,t,n){var r=n.width,o=n.height;return Pd(this,void 0,void 0,(function(){var n,a,i,s=this;return Td(this,(function(u){switch(u.label){case 0:return n=bv(e),[4,Promise.all(t.map((function(t){return Pd(s,void 0,void 0,(function(){var r,o,a,i,s,u,c,l;return Td(this,(function(f){return r=t.padAtBorders(e.height,e.width),o=r.y,a=r.ey,i=r.x,s=r.ex,u=i-1,c=o-1,l=n.getImageData(u,c,s-u,a-c),[2,gv.isNodejs()?Iv(l):createImageBitmap(l)]}))}))})))];case 1:return a=u.sent(),i=[],a.forEach((function(e){var t=bv(Cv({width:r,height:o}));t.drawImage(e,0,0,r,o);for(var n=t.getImageData(0,0,r,o).data,a=[],s=0;s<n.length;s+=4)a.push(n[s+2]),a.push(n[s+1]),a.push(n[s]);i.push(a)})),[2,i.map((function(e){return _o((function(){return fg(uh(Yo(e,[1,r,o,3]),[0,2,1,3]).toFloat())}))}))]}}))}))}function mg(e,t,n,r,o){return Pd(this,void 0,void 0,(function(){var a,i,s,u,c,l,f,h,p,d,v,m,g,y;return Td(this,(function(b){switch(b.label){case 0:return a=Date.now(),[4,vg(e,t,{width:24,height:24})];case 1:return i=b.sent(),o.stage2_extractImagePatches=Date.now()-a,a=Date.now(),s=i.map((function(e){var t=function(e,t){return _o((function(){var n=pg(e,t),r=hg(tm(Ha(n,[n.shape[0],t.fc1.weights.shape[0]]),t.fc1),t.prelu4_alpha),o=tm(r,t.fc2_1),a=Ra(Yf(o,1),1),i=li(ql(o,a),1),s=tm(r,t.fc2_2);return{scores:Xa(i,1)[1],regions:s}}))}(e,r);return e.dispose(),t})),o.stage2_rnet=Date.now()-a,u=s.length>1?ra(s.map((function(e){return e.scores}))):s[0].scores,f=(l=Array).from,[4,u.data()];case 2:return c=f.apply(l,[b.sent()]),u.dispose(),h=c.map((function(e,t){return{score:e,idx:t}})).filter((function(e){return e.score>n})).map((function(e){return e.idx})),p=h.map((function(e){return t[e]})),d=h.map((function(e){return c[e]})),v=[],m=[],p.length>0&&(a=Date.now(),g=Yd(p,d,.7),o.stage2_nms=Date.now()-a,y=g.map((function(e){var t=s[h[e]].regions.arraySync();return new lg(t[0][0],t[0][1],t[0][2],t[0][3])})),m=g.map((function(e){return d[e]})),v=g.map((function(e,t){return p[e].calibrate(y[t])}))),s.forEach((function(e){e.regions.dispose(),e.scores.dispose()})),[2,{boxes:v,scores:m}]}}))}))}function gg(e,t,n,r,o){return Pd(this,void 0,void 0,(function(){var a,i,s,u,c,l,f,h,p,d,v,m,g,y,b;return Td(this,(function(w){switch(w.label){case 0:return a=Date.now(),[4,vg(e,t,{width:48,height:48})];case 1:return i=w.sent(),o.stage3_extractImagePatches=Date.now()-a,a=Date.now(),s=i.map((function(e){var t=function(e,t){return _o((function(){var n=pg(e,t);n=hg(n=Wv(n=Nf(n,[2,2],[2,2],"same"),t.conv4,"valid"),t.prelu4_alpha);var r=hg(tm(Ha(n,[n.shape[0],t.fc1.weights.shape[0]]),t.fc1),t.prelu5_alpha),o=tm(r,t.fc2_1),a=Ra(Yf(o,1),1),i=li(ql(o,a),1),s=tm(r,t.fc2_2),u=tm(r,t.fc2_3);return{scores:Xa(i,1)[1],regions:s,points:u}}))}(e,r);return e.dispose(),t})),o.stage3_onet=Date.now()-a,u=s.length>1?ra(s.map((function(e){return e.scores}))):s[0].scores,f=(l=Array).from,[4,u.data()];case 2:return c=f.apply(l,[w.sent()]),u.dispose(),h=c.map((function(e,t){return{score:e,idx:t}})).filter((function(e){return e.score>n})).map((function(e){return e.idx})),p=h.map((function(e){var t=s[e].regions.arraySync();return new lg(t[0][0],t[0][1],t[0][2],t[0][3])})),d=h.map((function(e,n){return t[e].calibrate(p[n])})),v=h.map((function(e){return c[e]})),m=[],g=[],y=[],d.length>0&&(a=Date.now(),b=Yd(d,v,.7,!1),o.stage3_nms=Date.now()-a,m=b.map((function(e){return d[e]})),g=b.map((function(e){return v[e]})),y=b.map((function(e,t){return Array(5).fill(0).map((function(n,r){var o=s[e].points.arraySync();return new Ud(o[0][r]*(m[t].width+1)+m[t].left,o[0][r+5]*(m[t].height+1)+m[t].top)}))}))),s.forEach((function(e){e.regions.dispose(),e.scores.dispose(),e.points.dispose()})),[2,{boxes:m,scores:g,points:y}]}}))}))}var yg=function(e){function t(){return e.call(this,"Mtcnn")||this}return Sd(t,e),t.prototype.load=function(t){return Pd(this,void 0,void 0,(function(){return Td(this,(function(n){return console.warn("mtcnn is deprecated and will be removed soon"),[2,e.prototype.load.call(this,t)]}))}))},t.prototype.loadFromDisk=function(t){return Pd(this,void 0,void 0,(function(){return Td(this,(function(n){return console.warn("mtcnn is deprecated and will be removed soon"),[2,e.prototype.loadFromDisk.call(this,t)]}))}))},t.prototype.forwardInput=function(e,t){return void 0===t&&(t={}),Pd(this,void 0,void 0,(function(){var n,r,o,a,i,s,u,c,l,f,h,p,d,v,m,g,y,b,w,x,E;return Td(this,(function(_){switch(_.label){case 0:if(!(n=this.params))throw new Error("Mtcnn - load model before inference");if(!(r=e.canvases[0]))throw new Error("Mtcnn - inputCanvas is not defined, note that passing tensors into Mtcnn.forwardInput is not supported yet.");return o={},a=Date.now(),i=_o((function(){return e=Ra(hd.fromPixels(r)).toFloat(),_o((function(){return Ua(Xa(e,3).reverse(),3)}));var e})),s=function(e){return i.dispose(),o.total=Date.now()-a,e},u=i.shape.slice(1),c=u[0],l=u[1],f=new Dm(t),h=f.minFaceSize,p=f.scaleFactor,d=f.maxNumScales,v=f.scoreThresholds,m=f.scaleSteps,g=(m||function(e,t,n){for(var r=n[0],o=n[1],a=12/e,i=[],s=Math.min(r,o)*a,u=0;s>=12;)i.push(a*Math.pow(t,u)),s*=t,u+=1;return i}(h,p,[c,l])).filter((function(e){var t=cg(e,[c,l]);return Math.min(t.width,t.height)>12})).slice(0,d),o.scales=g,o.pyramid=g.map((function(e){return cg(e,[c,l])})),y=Date.now(),[4,dg(i,g,v[0],n.pnet,o)];case 1:return b=_.sent(),o.total_stage1=Date.now()-y,b.boxes.length?(o.stage2_numInputBoxes=b.boxes.length,y=Date.now(),[4,mg(r,b.boxes,v[1],n.rnet,o)]):[2,s({results:[],stats:o})];case 2:return w=_.sent(),o.total_stage2=Date.now()-y,w.boxes.length?(o.stage3_numInputBoxes=w.boxes.length,y=Date.now(),[4,gg(r,w.boxes,v[2],n.onet,o)]):[2,s({results:[],stats:o})];case 3:return x=_.sent(),o.total_stage3=Date.now()-y,E=x.boxes.map((function(e,t){return cm(uv({},new Kd(x.scores[t],new ev(e.left/l,e.top/c,e.width/l,e.height/c),{height:c,width:l})),new nv(x.points[t].map((function(t){return t.sub(new Ud(e.left,e.top)).div(new Ud(e.width,e.height))})),{width:e.width,height:e.height}))})),[2,s({results:E,stats:o})]}}))}))},t.prototype.forward=function(e,t){return void 0===t&&(t={}),Pd(this,void 0,void 0,(function(){var n;return Td(this,(function(r){switch(r.label){case 0:return n=this.forwardInput,[4,Pv(e)];case 1:return[4,n.apply(this,[r.sent(),t])];case 2:return[2,r.sent().results]}}))}))},t.prototype.forwardWithStats=function(e,t){return void 0===t&&(t={}),Pd(this,void 0,void 0,(function(){var n;return Td(this,(function(r){switch(r.label){case 0:return n=this.forwardInput,[4,Pv(e)];case 1:return[2,n.apply(this,[r.sent(),t])]}}))}))},t.prototype.getDefaultModelName=function(){return"mtcnn_model"},t.prototype.extractParamsFromWeigthMap=function(e){return ug(e)},t.prototype.extractParams=function(e){return sg(e)},t}(jv),bg=[new Ud(1.603231,2.094468),new Ud(6.041143,7.080126),new Ud(2.882459,3.518061),new Ud(4.266906,5.178857),new Ud(9.041765,10.66308)],wg=[117.001,114.697,97.404],xg=function(e){function t(){var t={withSeparableConvs:!0,iouThreshold:.4,classes:["face"],anchors:bg,meanRgb:wg,isFirstLayerConv2d:!0,filterSizes:[3,16,32,64,128,256,512]};return e.call(this,t)||this}return Sd(t,e),Object.defineProperty(t.prototype,"anchors",{get:function(){return this.config.anchors},enumerable:!0,configurable:!0}),t.prototype.locateFaces=function(e,t){return Pd(this,void 0,void 0,(function(){return Td(this,(function(n){switch(n.label){case 0:return[4,this.detect(e,t)];case 1:return[2,n.sent().map((function(e){return new Kd(e.score,e.relativeBox,{width:e.imageWidth,height:e.imageHeight})}))]}}))}))},t.prototype.getDefaultModelName=function(){return"tiny_face_detector_model"},t.prototype.extractParamsFromWeigthMap=function(t){return e.prototype.extractParamsFromWeigthMap.call(this,t)},t}(eg),Eg={ssdMobilenetv1:new Wm,tinyFaceDetector:new xg,tinyYolov2:new tg,mtcnn:new yg,faceLandmark68Net:new wm,faceLandmark68TinyNet:new Em,faceRecognitionNet:new Pm,faceExpressionNet:new im,ageGenderNet:new ym};function _g(e,t){var n={age:t};return Object.assign({},e,n)}var kg=function(e){function t(t,n,r){var o=e.call(this)||this;return o.parentTask=t,o.input=n,o.extractedFaces=r,o}return Sd(t,e),t}(rg),Og=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return Sd(t,e),t.prototype.run=function(){return Pd(this,void 0,void 0,(function(){var e,t,n=this;return Td(this,(function(r){switch(r.label){case 0:return[4,this.parentTask];case 1:return[4,ag(e=r.sent(),this.input,(function(e){return Pd(n,void 0,void 0,(function(){return Td(this,(function(t){switch(t.label){case 0:return[4,Promise.all(e.map((function(e){return Eg.faceExpressionNet.predictExpressions(e)})))];case 1:return[2,t.sent()]}}))}))}),this.extractedFaces)];case 2:return t=r.sent(),[2,e.map((function(e,n){return sm(e,t[n])}))]}}))}))},t.prototype.withAgeAndGender=function(){return new Ag(this,this.input)},t}(kg),Cg=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return Sd(t,e),t.prototype.run=function(){return Pd(this,void 0,void 0,(function(){var e,t;return Td(this,(function(n){switch(n.label){case 0:return[4,this.parentTask];case 1:return(e=n.sent())?[4,ig(e,this.input,(function(e){return Eg.faceExpressionNet.predictExpressions(e)}),this.extractedFaces)]:[2];case 2:return t=n.sent(),[2,sm(e,t)]}}))}))},t.prototype.withAgeAndGender=function(){return new Pg(this,this.input)},t}(kg),Ig=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return Sd(t,e),t.prototype.withAgeAndGender=function(){return new Tg(this,this.input)},t.prototype.withFaceDescriptors=function(){return new Mg(this,this.input)},t}(Og),Rg=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return Sd(t,e),t.prototype.withAgeAndGender=function(){return new Dg(this,this.input)},t.prototype.withFaceDescriptor=function(){return new Fg(this,this.input)},t}(Cg),Sg=function(e){function t(t,n,r){var o=e.call(this)||this;return o.parentTask=t,o.input=n,o.extractedFaces=r,o}return Sd(t,e),t}(rg),Ag=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return Sd(t,e),t.prototype.run=function(){return Pd(this,void 0,void 0,(function(){var e,t,n=this;return Td(this,(function(r){switch(r.label){case 0:return[4,this.parentTask];case 1:return[4,ag(e=r.sent(),this.input,(function(e){return Pd(n,void 0,void 0,(function(){return Td(this,(function(t){switch(t.label){case 0:return[4,Promise.all(e.map((function(e){return Eg.ageGenderNet.predictAgeAndGender(e)})))];case 1:return[2,t.sent()]}}))}))}),this.extractedFaces)];case 2:return t=r.sent(),[2,e.map((function(e,n){var r=t[n],o=r.age;return _g(Tm(e,r.gender,r.genderProbability),o)}))]}}))}))},t.prototype.withFaceExpressions=function(){return new Og(this,this.input)},t}(Sg),Pg=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return Sd(t,e),t.prototype.run=function(){return Pd(this,void 0,void 0,(function(){var e,t,n,r,o;return Td(this,(function(a){switch(a.label){case 0:return[4,this.parentTask];case 1:return(e=a.sent())?[4,ig(e,this.input,(function(e){return Eg.ageGenderNet.predictAgeAndGender(e)}),this.extractedFaces)]:[2];case 2:return t=a.sent(),n=t.age,r=t.gender,o=t.genderProbability,[2,_g(Tm(e,r,o),n)]}}))}))},t.prototype.withFaceExpressions=function(){return new Cg(this,this.input)},t}(Sg),Tg=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return Sd(t,e),t.prototype.withFaceExpressions=function(){return new Ig(this,this.input)},t.prototype.withFaceDescriptors=function(){return new Mg(this,this.input)},t}(Ag),Dg=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return Sd(t,e),t.prototype.withFaceExpressions=function(){return new Rg(this,this.input)},t.prototype.withFaceDescriptor=function(){return new Fg(this,this.input)},t}(Pg),Ng=function(e){function t(t,n){var r=e.call(this)||this;return r.parentTask=t,r.input=n,r}return Sd(t,e),t}(rg),Mg=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return Sd(t,e),t.prototype.run=function(){return Pd(this,void 0,void 0,(function(){var e;return Td(this,(function(t){switch(t.label){case 0:return[4,this.parentTask];case 1:return[4,ag(e=t.sent(),this.input,(function(e){return Promise.all(e.map((function(e){return Eg.faceRecognitionNet.computeFaceDescriptor(e)})))}),null,(function(e){return e.landmarks.align(null,{useDlibAlignment:!0})}))];case 2:return[2,t.sent().map((function(t,n){return og(e[n],t)}))]}}))}))},t.prototype.withFaceExpressions=function(){return new Ig(this,this.input)},t.prototype.withAgeAndGender=function(){return new Tg(this,this.input)},t}(Ng),Fg=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return Sd(t,e),t.prototype.run=function(){return Pd(this,void 0,void 0,(function(){var e,t;return Td(this,(function(n){switch(n.label){case 0:return[4,this.parentTask];case 1:return(e=n.sent())?[4,ig(e,this.input,(function(e){return Eg.faceRecognitionNet.computeFaceDescriptor(e)}),null,(function(e){return e.landmarks.align(null,{useDlibAlignment:!0})}))]:[2];case 2:return t=n.sent(),[2,og(e,t)]}}))}))},t.prototype.withFaceExpressions=function(){return new Rg(this,this.input)},t.prototype.withAgeAndGender=function(){return new Dg(this,this.input)},t}(Ng),Bg=function(e){function t(t,n,r){var o=e.call(this)||this;return o.parentTask=t,o.input=n,o.useTinyLandmarkNet=r,o}return Sd(t,e),Object.defineProperty(t.prototype,"landmarkNet",{get:function(){return this.useTinyLandmarkNet?Eg.faceLandmark68TinyNet:Eg.faceLandmark68Net},enumerable:!0,configurable:!0}),t}(rg),jg=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return Sd(t,e),t.prototype.run=function(){return Pd(this,void 0,void 0,(function(){var e,t,n,r,o,a=this;return Td(this,(function(i){switch(i.label){case 0:return[4,this.parentTask];case 1:return e=i.sent(),t=e.map((function(e){return e.detection})),this.input instanceof er?[4,Dv(this.input,t)]:[3,3];case 2:return r=i.sent(),[3,5];case 3:return[4,Tv(this.input,t)];case 4:r=i.sent(),i.label=5;case 5:return n=r,[4,Promise.all(n.map((function(e){return a.landmarkNet.detectLandmarks(e)})))];case 6:return o=i.sent(),n.forEach((function(e){return e instanceof er&&e.dispose()})),[2,e.map((function(e,t){return cm(e,o[t])}))]}}))}))},t.prototype.withFaceExpressions=function(){return new Ig(this,this.input)},t.prototype.withAgeAndGender=function(){return new Tg(this,this.input)},t.prototype.withFaceDescriptors=function(){return new Mg(this,this.input)},t}(Bg),Lg=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return Sd(t,e),t.prototype.run=function(){return Pd(this,void 0,void 0,(function(){var e,t,n,r,o;return Td(this,(function(a){switch(a.label){case 0:return[4,this.parentTask];case 1:return(e=a.sent())?(t=e.detection,this.input instanceof er?[4,Dv(this.input,[t])]:[3,3]):[2];case 2:return r=a.sent(),[3,5];case 3:return[4,Tv(this.input,[t])];case 4:r=a.sent(),a.label=5;case 5:return n=r,[4,this.landmarkNet.detectLandmarks(n[0])];case 6:return o=a.sent(),n.forEach((function(e){return e instanceof er&&e.dispose()})),[2,cm(e,o)]}}))}))},t.prototype.withFaceExpressions=function(){return new Rg(this,this.input)},t.prototype.withAgeAndGender=function(){return new Dg(this,this.input)},t.prototype.withFaceDescriptor=function(){return new Fg(this,this.input)},t}(Bg),zg=function(e){function t(t,n){void 0===n&&(n=new Hm);var r=e.call(this)||this;return r.input=t,r.options=n,r}return Sd(t,e),t}(rg),Hg=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return Sd(t,e),t.prototype.run=function(){return Pd(this,void 0,void 0,(function(){var e,t,n,r;return Td(this,(function(o){switch(o.label){case 0:return t=(e=this).input,(n=e.options)instanceof Dm?[4,Eg.mtcnn.forward(t,n)]:[3,2];case 1:return[2,o.sent().map((function(e){return e.detection}))];case 2:if(r=n instanceof ng?function(e){return Eg.tinyFaceDetector.locateFaces(e,n)}:n instanceof Hm?function(e){return Eg.ssdMobilenetv1.locateFaces(e,n)}:n instanceof Qm?function(e){return Eg.tinyYolov2.locateFaces(e,n)}:null,!r)throw new Error("detectFaces - expected options to be instance of TinyFaceDetectorOptions | SsdMobilenetv1Options | MtcnnOptions | TinyYolov2Options");return[2,r(t)]}}))}))},t.prototype.runAndExtendWithFaceDetections=function(){var e=this;return new Promise((function(t){return Pd(e,void 0,void 0,(function(){var e;return Td(this,(function(n){switch(n.label){case 0:return[4,this.run()];case 1:return e=n.sent(),[2,t(e.map((function(e){return uv({},e)})))]}}))}))}))},t.prototype.withFaceLandmarks=function(e){return void 0===e&&(e=!1),new jg(this.runAndExtendWithFaceDetections(),this.input,e)},t.prototype.withFaceExpressions=function(){return new Og(this.runAndExtendWithFaceDetections(),this.input)},t.prototype.withAgeAndGender=function(){return new Ag(this.runAndExtendWithFaceDetections(),this.input)},t}(zg);!function(e){function t(){return null!==e&&e.apply(this,arguments)||this}Sd(t,e),t.prototype.run=function(){return Pd(this,void 0,void 0,(function(){var e,t;return Td(this,(function(n){switch(n.label){case 0:return[4,new Hg(this.input,this.options)];case 1:return e=n.sent(),t=e[0],e.forEach((function(e){e.score>t.score&&(t=e)})),[2,t]}}))}))},t.prototype.runAndExtendWithFaceDetection=function(){var e=this;return new Promise((function(t){return Pd(e,void 0,void 0,(function(){var e;return Td(this,(function(n){switch(n.label){case 0:return[4,this.run()];case 1:return e=n.sent(),[2,t(e?uv({},e):void 0)]}}))}))}))},t.prototype.withFaceLandmarks=function(e){return void 0===e&&(e=!1),new Lg(this.runAndExtendWithFaceDetection(),this.input,e)},t.prototype.withFaceExpressions=function(){return new Cg(this.runAndExtendWithFaceDetection(),this.input)},t.prototype.withAgeAndGender=function(){return new Pg(this.runAndExtendWithFaceDetection(),this.input)}}(zg);function Wg(e,t){return void 0===t&&(t=new Hm),new Hg(e,t)}!function(){function e(e,t){void 0===t&&(t=.6),this._distanceThreshold=t;var n=Array.isArray(e)?e:[e];if(!n.length)throw new Error("FaceRecognizer.constructor - expected atleast one input");var r=1,o=function(){return"person "+r++};this._labeledDescriptors=n.map((function(e){if(e instanceof iv)return e;if(e instanceof Float32Array)return new iv(o(),[e]);if(e.descriptor&&e.descriptor instanceof Float32Array)return new iv(o(),[e.descriptor]);throw new Error("FaceRecognizer.constructor - expected inputs to be of type LabeledFaceDescriptors | WithFaceDescriptor<any> | Float32Array | Array<LabeledFaceDescriptors | WithFaceDescriptor<any> | Float32Array>")}))}Object.defineProperty(e.prototype,"labeledDescriptors",{get:function(){return this._labeledDescriptors},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"distanceThreshold",{get:function(){return this._distanceThreshold},enumerable:!0,configurable:!0}),e.prototype.computeMeanDistance=function(e,t){return t.map((function(t){return function(e,t){if(e.length!==t.length)throw new Error("euclideanDistance: arr1.length !== arr2.length");var n=Array.from(e),r=Array.from(t);return Math.sqrt(n.map((function(e,t){return e-r[t]})).reduce((function(e,t){return e+Math.pow(t,2)}),0))}(t,e)})).reduce((function(e,t){return e+t}),0)/(t.length||1)},e.prototype.matchDescriptor=function(e){var t=this;return this.labeledDescriptors.map((function(n){var r=n.descriptors,o=n.label;return new ov(o,t.computeMeanDistance(e,r))})).reduce((function(e,t){return e.distance<t.distance?e:t}))},e.prototype.findBestMatch=function(e){var t=this.matchDescriptor(e);return t.distance<this.distanceThreshold?t:new ov("unknown",t.distance)},e.prototype.toJSON=function(){return{distanceThreshold:this.distanceThreshold,labeledDescriptors:this.labeledDescriptors.map((function(e){return e.toJSON()}))}},e.fromJSON=function(t){return new e(t.labeledDescriptors.map((function(e){return iv.fromJSON(e)})),t.distanceThreshold)}}();function Vg(e,t){var n=new Nd(t.width,t.height),r=n.width,o=n.height;if(r<=0||o<=0)throw new Error("resizeResults - invalid dimensions: "+JSON.stringify({width:r,height:o}));if(Array.isArray(e))return e.map((function(e){return Vg(e,{width:r,height:o})}));if(um(e)){var a=e.detection.forSize(r,o),i=e.unshiftedLandmarks.forSize(a.box.width,a.box.height);return cm(uv(e,a),i)}return sv(e)?uv(e,e.detection.forSize(r,o)):e instanceof tv||e instanceof Kd?e.forSize(r,o):e}const Ug=e=>{const t=.25*e.height,n=e.y-t>=0?e.y-t:0,r=.3*e.width,o=e.width-r,a=e.y-t>=0?e.height+t:e.height+e.y;return{x:e.x+r/2,y:n,width:o,height:a}},qg=(e,t)=>{const n=document.createElement("canvas");n.width=e.videoWidth,n.height=e.videoHeight;const r=n.getContext("2d");r.drawImage(e,0,0);const o=Ug(t);return r.getImageData(o.x,o.y,o.width,o.height)},Gg=(e,t)=>{let{count:n,mean:r,m2:o}=e;n++;const a=t-r;r+=a/n;return o+=a*(t-r),{count:n,mean:r,m2:o}},Xg=e=>{const{data:t}=e;let n={count:0,mean:0,m2:0};for(let r=0;r<t.length;r+=4)n=Gg(n,t[r]),n=Gg(n,t[r+1]),n=Gg(n,t[r+2]);return{mean:n.mean,variance:n.m2/n.count}},Kg=(e,t)=>{const{x:n,y:r,width:o,height:a}=e;return{x:t.width-o-n,y:r,width:o,height:a}},$g=(e,t)=>{const{width:n,height:r}=e;Vg(t,{width:n,height:r}).forEach((t=>{const o=Ug(t.box),a=Kg(t.box,{width:n,height:r}),i=Kg(o,{width:n,height:r}),s=new _v(a),u=new _v(i,{boxColor:"yellow"});s.draw(e),u.draw(e)}))},Yg="aM6UBOeSFg8vwirw8BEs",Jg=e=>{let{facesProperties:t,videoElement:n,debugMessages:r}=e;const o=Wt(),{clientWidth:a,clientHeight:i}=n||{},s=!!a&&!!i;return(0,E.useEffect)((()=>{const e=o?.current;if(!s||!e)return;e.width=a,e.height=i;const n=Vt(r);$g(e,t),((e,t)=>{const n=e.getContext("2d");n.font="15px Arial",n.fillStyle="purple",t.forEach(((e,t)=>{const r=20*(t+1)+30;n.fillText(e,10,r)}))})(e,n)}),[s,o.current,t,r]),_().createElement("canvas",{className:Yg,ref:o})};Jg.defaultProps={videoElement:{}},Jg.propType={facesProperties:O().any.isRequired,debugMessages:O().array.isRequired,videoElement:O().instanceOf(Element).isRequired};const Zg=Jg,Qg={container:"HPEPfcUpwWOVOJSPP9R_",success:"_0fft05LhDRetV8QdNSI",warning:"JHe4OqVjOOuBZXJn_axE",outline:"xsnSbKRs6MZbpP2odJGk",portraitCamera:"lSsJ_kvBTJOO0shULKLn",landscapeCamera:"_6X0Zl0a0b8R2wCqGS_K"};var ey;function ty(){return ty=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},ty.apply(this,arguments)}const ny=function(e){return E.createElement("svg",ty({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 386 524"},e),ey||(ey=E.createElement("path",{fill:"none",stroke:"currentColor",strokeWidth:5.006,d:"M191.585 521c-.686 0-1.592-.013-2.81-.052a69.953 69.953 0 01-4.575-.296 72.809 72.809 0 01-4.533-.597 79.015 79.015 0 01-4.472-.87 85.112 85.112 0 01-4.362-1.102 91.261 91.261 0 01-4.273-1.312 101.02 101.02 0 01-4.155-1.484 114.88 114.88 0 01-4.056-1.64 125.655 125.655 0 01-7.787-3.652 147.069 147.069 0 01-7.304-3.993c-20.9-12.179-39.54-30.642-55.409-54.88-8.67-13.241-16.471-27.9-25.299-47.536-1.196-2.66-2.43-5.319-3.664-7.985-5.222-11.272-10.624-22.928-13.847-35.587-.338-1.325-.641-2.7-.943-4.093-.625-2.866-1.27-5.83-2.225-7.484-.379-.25-1.374-.71-2.115-1.054-1.373-.635-3.08-1.427-4.939-2.55-3.91-2.368-6.378-5.567-8.277-8.385-8.738-12.96-11.7-27.823-14.313-40.938-.457-2.292-.912-4.578-1.397-6.848l-.685-3.217a1892.951 1892.951 0 00-5.588-25.25c-1.25-5.49-4.567-20.075 5.26-30.824 3.985-4.36 9.824-6.86 16.017-6.86.744 0 1.487.036 2.222.105-.273-3.957-.572-7.901-.865-11.79-1.665-22.04-3.386-44.83-.563-67.858 4.469-36.439 16.293-66.575 35.149-89.569 12.744-15.54 30.924-28.155 54.037-37.494a163.732 163.732 0 0117.99-6.058c13.257-3.633 24.137-4.97 29.366-5.612 5.05-.62 10.155-1.079 15.178-1.363a292.987 292.987 0 0110.846-.205c7.276 0 14.62.278 21.829.828 7.234.551 17.14 1.306 29.746 3.915l.227.047c4.19.865 16.946 3.5 29.19 8.448 23.114 9.339 41.293 21.953 54.037 37.494 18.855 22.995 30.681 53.13 35.149 89.569 2.824 23.028 1.102 45.818-.563 67.859-.293 3.888-.591 7.832-.864 11.79a23.46 23.46 0 012.222-.105c6.193 0 12.032 2.5 16.018 6.86 9.825 10.747 6.507 25.332 5.259 30.822a1923.38 1923.38 0 00-5.588 25.246l-.685 3.22c-.484 2.27-.94 4.555-1.397 6.844-2.613 13.116-5.575 27.983-14.313 40.944-1.899 2.817-4.367 6.017-8.279 8.384-1.858 1.124-3.565 1.916-4.937 2.551-.738.344-1.727.8-2.11 1.05-.976 1.733-1.614 4.658-2.23 7.49a121.69 121.69 0 01-.943 4.09c-3.223 12.657-8.622 24.311-13.844 35.58-1.236 2.67-2.47 5.33-3.667 7.993-8.826 19.633-16.63 34.293-25.3 47.536-15.87 24.238-34.509 42.701-55.4 54.874a149.984 149.984 0 01-7.28 3.982 129.842 129.842 0 01-7.794 3.659 108.88 108.88 0 01-8.229 3.133 93.884 93.884 0 01-4.282 1.313 79.774 79.774 0 01-8.824 1.97 72.51 72.51 0 01-4.558.602 66.17 66.17 0 01-6.885.323l-1.73-.005c-.38.014-.884.027-1.584.027z"})))},ry={NEUTRAL:"NEUTRAL",WARNING:"WARNING",SUCCESS:"SUCCESS"},oy=e=>{let{isPortraitCamera:t,variation:n}=e;const r=Qg[t?"portraitCamera":"landscapeCamera"];return _().createElement("div",{"data-qa":"outline-container",className:vt()(Qg.container,{[Qg.success]:n===ry.SUCCESS,[Qg.warning]:n===ry.WARNING})},_().createElement(ny,{className:vt()(Qg.outline,r)}))};oy.defaultProps={isPortraitCamera:!1,variation:ry.NEUTRAL},oy.propTypes={isPortraitCamera:O().bool,variation:O().oneOf(Object.values(ry))};const ay=oy;var iy,sy;function uy(){return uy=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},uy.apply(this,arguments)}const cy=function(e){return E.createElement("svg",uy({xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink",width:"1em",height:"1em",viewBox:"0 0 28 28"},e),iy||(iy=E.createElement("defs",null,E.createElement("path",{id:"ico-loading-spinner_react_icon_svg__a",d:"M14 4v2a8 8 0 108 8h2c0 5.523-4.477 10-10 10S4 19.523 4 14 8.477 4 14 4z"}))),sy||(sy=E.createElement("g",{fill:"none",fillRule:"evenodd"},E.createElement("path",{fill:"none",d:"M0 28h28V0H0z"}),E.createElement("use",{fill:"#F0F",fillRule:"nonzero",xlinkHref:"#ico-loading-spinner_react_icon_svg__a"}))))},ly="X_Bq5FImnGbO6TLe3Len",fy="WPX6_jcjLpB6aH420ZCd",hy="bPwt8l_jKvlB2llQ7azY";const py=function(){return _().createElement("div",{className:ly,"data-qa":"loading"},_().createElement("div",{className:fy},_().createElement(cy,{className:hy})))},dy="Ds2gos19dHtdm4Aer1pq",vy="x_r8eQXclQHy5Jjno7pU";var my;function gy(){return gy=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},gy.apply(this,arguments)}const yy=function(e){return E.createElement("svg",gy({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1280 720"},e),my||(my=E.createElement("path",{fill:"#FFF",fillOpacity:.7,fillRule:"evenodd",d:"M1280 0v720H0V0h1280zM658.215 95.79a286.506 286.506 0 00-31.573-.605c-3.545.197-8.59.56-14.622 1.286-6.207.747-16.005 2.002-28.095 5.248a155.94 155.94 0 00-16.938 5.584c-18.993 7.515-37.088 18.327-50.068 33.828-19.713 23.543-29.338 53.4-33.045 83.01-3.922 31.334 1.288 62.583 2.466 93.896.036.933-.066 1.933-1.189 2.205-.489.12-1.01.044-1.49-.105-2.367-.735-3.576-2.94-5.427-4.353-4.138-3.16-10.825-3.19-14.466.709-5.106 5.47-4.03 13.544-2.5 20.126a1882.27 1882.27 0 015.703 25.242l.698 3.203c3.236 14.859 5.256 30.448 14.16 43.384 1.275 1.854 2.705 3.69 4.675 4.858 4.438 2.63 8.543 3.032 11.32 7.741 2.541 4.307 3.22 9.748 4.45 14.478 3.743 14.39 10.884 27.878 17.09 41.39 7.208 15.702 15.101 31.167 24.77 45.629 13.507 20.203 30.719 38.55 52.234 50.83 13.213 7.54 29.09 13.962 44.455 13.237l.01-.002.011.002c15.13.714 30.754-5.501 43.844-12.89l.611-.347c21.515-12.28 38.727-30.627 52.235-50.83 9.668-14.462 17.561-29.927 24.77-45.629 6.205-13.512 13.346-27 17.087-41.39 1.23-4.73 1.911-10.171 4.451-14.478 2.779-4.709 6.883-5.112 11.32-7.74 1.972-1.17 3.401-3.005 4.676-4.86 8.904-12.935 10.925-28.524 14.16-43.383l.698-3.203a1877.285 1877.285 0 015.703-25.242c1.528-6.582 2.606-14.657-2.5-20.126-3.64-3.9-10.327-3.869-14.466-.71-1.851 1.414-3.06 3.619-5.426 4.354-.48.15-1.002.224-1.491.105-1.123-.272-1.225-1.272-1.189-2.205 1.179-31.313 6.388-62.562 2.466-93.896-3.707-29.61-13.332-59.467-33.045-83.01-12.98-15.501-31.075-26.313-50.067-33.828-11.67-4.617-24.272-7.12-27.795-7.833-11.799-2.391-21.042-3.11-28.671-3.68zM642.24 586.523l-.708.05-.699.036-.698-.037c-.236-.015-.472-.03-.708-.049h2.813z"})))};var by;function wy(){return wy=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},wy.apply(this,arguments)}const xy=function(e){return E.createElement("svg",wy({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 715 715"},e),by||(by=E.createElement("path",{fill:"#D9DEE5",fillOpacity:.7,fillRule:"evenodd",d:"M715 0v715H0V0h715zM368.33 210.97a168.754 168.754 0 00-18.77-.363c-2.107.119-5.107.337-8.692.772-3.69.448-9.515 1.201-16.702 3.149a92.101 92.101 0 00-10.07 3.35c-11.29 4.51-22.047 10.996-29.763 20.297-11.719 14.126-17.44 32.04-19.644 49.806-2.331 18.8.765 37.55 1.466 56.337.021.56-.04 1.16-.707 1.324-.29.071-.6.026-.886-.063-1.407-.441-2.125-1.764-3.226-2.612-2.46-1.896-6.435-1.914-8.6.425-3.035 3.282-2.395 8.127-1.486 12.076 1.16 5.043 2.298 10.08 3.39 15.145.14.64.277 1.281.416 1.922 1.923 8.915 3.124 18.269 8.417 26.03.758 1.113 1.608 2.214 2.78 2.915 2.638 1.578 5.078 1.82 6.728 4.645 1.511 2.584 1.915 5.849 2.647 8.687 2.224 8.634 6.47 16.726 10.158 24.834 4.286 9.42 8.978 18.7 14.725 27.377 8.03 12.122 18.262 23.13 31.052 30.498 7.773 4.477 17.096 8.296 26.14 7.954l.293-.014.294.014c8.856.335 17.98-3.32 25.653-7.675l.487-.28c12.79-7.367 23.022-18.375 31.052-30.497 5.747-8.677 10.44-17.956 14.725-27.377 3.689-8.108 7.934-16.2 10.158-24.834.732-2.838 1.136-6.103 2.646-8.687 1.652-2.826 4.092-3.067 6.73-4.645 1.171-.701 2.021-1.802 2.78-2.915 5.292-7.761 6.493-17.115 8.417-26.03l.415-1.922c1.092-5.065 2.23-10.102 3.39-15.145.909-3.95 1.55-8.794-1.486-12.076-2.164-2.34-6.14-2.32-8.6-.425-1.1.848-1.819 2.17-3.226 2.612-.285.09-.595.134-.886.063-.667-.163-.728-.764-.706-1.324.7-18.787 3.797-37.536 1.465-56.337-2.203-17.766-7.925-35.68-19.644-49.806-7.716-9.3-18.473-15.788-29.763-20.297-6.937-2.77-14.43-4.271-16.524-4.7-7.014-1.434-12.509-1.866-17.044-2.208z"})))},Ey=e=>{let{isPortraitCamera:t}=e;const n=t?xy:yy;return _().createElement("div",{className:dy},_().createElement(n,{className:vy}))};Ey.defaultProps={isPortraitCamera:!1},Ey.propTypes={isPortraitCamera:O().bool};const _y=Ey;var ky=n(4420),Oy=n.n(ky),Cy=n(2797);const Iy={container:"IpX4dJbHat9i3luoCwef",portraitCamera:"a_0VmnisbKCGWfubHrmj",landscapeCamera:"CqNtyAmFAcDIeu8mRGPD",icon:"rlF15FcuMGotbEHYe5KW",iconSidebar:"_CvVxyqwMB2D7fkKx_NZ",message:"_znJxLRvhRnuCU0KBY3_"},Ry=e=>{let{message:t,a11yLiveRegionMode:n,iconName:r,isPortraitCamera:o,cameraViewWidth:a}=e;const i=((e,t)=>{let n=2.7*t/100;return n<16&&!e&&(n=16),n<20&&e&&(n=20),`${n}px`})(o,a),s=Iy[o?"portraitCamera":"landscapeCamera"];return _().createElement("div",{style:{"--message-font-size":i},className:vt()(Iy.container,s),"aria-live":n},_().createElement("div",{className:Iy.iconSidebar},r&&_().createElement(Oy(),{component:Cy[r],className:Iy.icon})),_().createElement("div",{className:Iy.message},t))};Ry.defaultProps={message:"",a11yLiveRegionMode:b.POLITE,iconName:"",isPortraitCamera:!1,cameraViewWidth:0},Ry.propTypes={message:O().element,a11yLiveRegionMode:O().oneOf(Object.values(b)),iconName:O().string,isPortraitCamera:O().bool,cameraViewWidth:O().number};const Sy=Ry,Ay="_2_U2DYHedfGUyvS1oS5",Py="mteIzegCA0cNMXt96BYN",Ty="Va8swWS5S29Uvou7UNnc";navigator.getUserMedia=navigator.getUserMedia||navigator.webkitGetUserMedia||navigator.mozGetUserMedia;const Dy=async()=>navigator.mediaDevices?await new Promise((e=>{navigator.mediaDevices.enumerateDevices().then((t=>{const n=t.filter((e=>"videoinput"===e.kind));e(!!n.length)})).catch((t=>{console.error(t),e(!1)}))}))?void 0:e.NO_CAMERA:e.UNSUPPORTED_BROWSER,Ny={PORTRAIT:.65,LANDSCAPE:.6},My=.08,Fy=e=>Math.round(100*e)/100,By=(e,t)=>e?l:t?f:"",jy=[e=>{let t="",n=!0;e.length||(t=a,n=!1);return{instructionCode:t,debugMessages:[{key:ne,value:e.length}],canContinueOtherChecks:n}},e=>{let t="",n=!0;return e.length>1&&(t=i,n=!1),{instructionCode:t,debugMessage:[],canContinueOtherChecks:n}},function(e){let{videoElement:t}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n="",r=!0;const o=[];if(t){const a=performance.now(),i=qg(t,e[0].box),s=Xg(i),u=performance.now();o.push({key:ue,value:u-a}),o.push({key:ce,value:s.mean});const c=s.mean<=50,l=s.mean>=200;n=By(c,l),r=""===n}return{instructionCode:n,debugMessages:o,canContinueOtherChecks:r}},e=>{const[{score:t}]=e;return{instructionCode:"",debugMessages:[{key:re,value:`${Fy(t)}`}]}},e=>{let t="";const[{imageWidth:n,imageHeight:r,box:o}]=e,i=o.x+o.width/2,s=o.y+o.height/2+-.15*o.height,u=n/2,c=r/2,l=.1*Math.min(n,r);(Math.abs(u-i)>l||Math.abs(c-s)>l)&&(t=a);const f=Fy(i/n),h=Fy(s/r);return{instructionCode:t,debugMessages:[{key:ie,value:`x = ${f}; y = ${h}`}]}},e=>{let n="";const[{box:r}]=e;(r.width<200||r.height<200)&&(n=t);return{instructionCode:n,debugMessages:[{key:oe,value:`${Fy(r.height)} x ${Fy(r.width)}`}]}},function(e){let{isPortraitCamera:n=!1}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r="";const[{relativeBox:a}]=e,i=n?"width":"height",s=n?"PORTRAIT":"LANDSCAPE",u=Ny[s],c=u+My,l=u-My;a[i]>c&&(r=o),a[i]<l&&(r=t);const f=Fy(a[i]),h=[{key:ae,value:`[${i}]: ${f}`}];return{instructionCode:r,debugMessages:h}}],Ly=jy,zy=(e,t)=>{const n=Math.max(...e),r=Math.min(...e);return Number((n-r).toFixed(2))>t},Hy=e=>[zy(e.map((e=>e.x)),.02),zy(e.map((e=>e.y)),.02),zy(e.map((e=>e.size)),.02)].some(Boolean);let Wy=[];const Vy=(e,t,n)=>{const r=e[0],o=Hy(Wy),a=Wy.length===t;(!n||o||a)&&(Wy=[]),r&&(Wy=[...Wy,r])},Uy=(e,t,n)=>!!n||!(e||!t),qy=(e,t)=>{let n="";return e||t||(n=s),n},Gy=e=>e?null:{key:se,value:Wy.length},Xy=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const{isManualCapture:n,numberOfChecks:r,isCurrentFaceValid:o}=t;Vy(e,r,o);const a=Hy(Wy),i=Wy.length===r;return{isStable:Uy(a,i,n),faceStableMessageCode:qy(a,i),debugMessage:Gy(n)}},Ky=(e,t)=>{le.forEach((e=>{delete J[e]}));const{isSingleFaceValid:n,singleFaceMessageCode:r}=function(){const e=[];for(let t=0;t<Ly.length;t++){const n=Ly[t],{instructionCode:r,debugMessages:o,canContinueOtherChecks:a=!0}=n(...arguments);if(r&&e.push(r),o&&o.forEach((e=>{pe(e)})),!a)break}return{isSingleFaceValid:!e.length,singleFaceMessageCode:e.length?e[0]:""}}(e,t),{isStable:o,faceStableMessageCode:a}=function(){const e=Xy(...arguments),{debugMessage:t}=e;return t&&pe(t),e}(e,{...t,isCurrentFaceValid:n});return{isValid:n&&o,messageCode:r||a}},$y=async e=>{const t=performance.now();return{result:await e(),duration:performance.now()-t}},Yy=e=>{const t=(e=>{let{previousAverage:t=0,count:n=0,newValue:r}=e;return(t*n+r)/(n+1)})({previousAverage:fe(ee),count:fe(te),newValue:e});pe({key:ee,value:t}),J[te]++};let Jy=!1,Zy=!1;const Qy=new ng({inputSize:320,scoreThreshold:.6}),eb=async e=>{if(Jy)return;const{duration:t}=await $y((async()=>Eg.tinyFaceDetector.loadFromUri(e)));(e=>{pe({key:Z,value:e})})(t),Jy=!0},tb=async()=>{if(Zy)return;const{duration:e}=await $y((async()=>Wg(document.createElement("canvas"),Qy)));(e=>{pe({key:Q,value:e})})(e),Zy=!0};class nb{constructor(e){this.faceDetectorModelUrl=e}init(){return eb(this.faceDetectorModelUrl).then(tb)}detect(e,t){let{isPortraitCamera:n,isManualCapture:r,numberOfChecks:o,videoElement:a}=t;return(async e=>{const{result:t,duration:n}=await $y((async()=>{if(!e||0===e.videoHeight||0===e.videoWidth)throw new Error("empty video element");return Wg(e,Qy)}));return Yy(n),t})(e).then((e=>{const{isValid:t,messageCode:i}=Ky(e,{isPortraitCamera:n,isManualCapture:r,numberOfChecks:o,videoElement:a});if(!t)throw new de(i,e);return e}))}}const rb={faceDetection:null,error:null,slowPerformance:!1};function ob(){return!document[void 0!==document.hidden?"hidden":void 0!==document.msHidden?"msHidden":void 0!==document.webkitHidden?"webkitHidden":void 0]}function ab(){const[e,t]=(0,E.useState)(!1);return(0,E.useEffect)((()=>{const e=void 0!==document.hidden?"visibilitychange":void 0!==document.msHidden?"msvisibilitychange":void 0!==document.webkitHidden?"webkitvisibilitychange":void 0,n=()=>{t(ob())};return t(ob()),document.addEventListener(e,n,!1),window.addEventListener("pagehide",n),()=>{document.removeEventListener(e,n),window.removeEventListener("pagehide",n)}}),[]),e}if(typeof window!==[]+[][[]])var ib=window;else if(typeof global!==[]+[][[]])ib=global;else ib=void 0;var sb,ub,cb,lb,fb,hb,pb,db,vb,mb,gb,yb,bb,wb,xb,Eb,_b,kb,Ob,Cb,Ib,Rb,Sb,Ab,Pb,Tb,Db,Nb,Mb,Fb,Bb,jb,Lb,zb,Hb,Wb,Vb,Ub,qb,Gb,Xb,Kb,$b,Yb,Jb,Zb,Qb,ew,tw,nw,rw,ow,aw,iw,sw,uw,cw,lw,fw,hw,pw,dw,vw,mw,gw,yw,bw,ww,xw,Ew,_w,kw,Ow,Cw,Iw,Rw,Sw,Aw,Pw,Tw,Dw,Nw,Mw,Fw,Bw,jw,Lw,zw,Hw,Ww,Vw,Uw,qw,Gw,Xw,Kw,$w,Yw,Jw,Zw,Qw,ex,tx,nx,rx,ox,ax,ix,sx,ux,cx,lx,fx,hx,px,dx,vx,mx,gx,yx,bx,wx,xx,Ex,_x,kx,Ox,Cx,Ix,Rx,Sx,Ax,Px,Tx,Dx,Nx,Mx,Fx,Bx,jx,Lx,zx,Hx,Wx,Vx,Ux,qx,Gx,Xx,Kx,$x,Yx,Jx,Zx,Qx,eE,oE,aE,iE,uE,yE,_E,$E,e_,t_,n_,r_,o_,a_,i_,s_,u_,c_,l_,f_,h_,p_,d_,v_,m_,g_,y_,b_,w_,x_,E_,__,k_,O_,C_,I_,R_,S_,A_,P_,T_,D_,N_,M_,F_,B_,j_,L_,z_,H_,W_,V_,U_,q_,G_,X_,K_,$_,Y_,J_,Z_,Q_,ek,tk,nk,rk,ok,ak,ik,sk,uk,ck,lk,fk,hk,pk,dk,vk,mk,gk,yk,bk,wk,xk,Ek,_k,kk,Ok,Ck,Ik,Rk,Sk,Ak,Pk,Tk,Dk,Nk,Mk,Fk,Bk,jk,Lk,zk,Hk,Wk,Vk,Uk,qk,Gk,Xk,Kk,$k,Yk;function Jk(e,t){return e===t}function Zk(e,t){return e<=t}function Qk(e,t){return e==t}function eO(e,t){return e>>t}function tO(e){return~e}function nO(e,t){return e!==t}function rO(e,t){switch(e){case S_:for(var n="",r=uO((i=t[Mk]).length,cb);cO(r,yb);r--)n+=i[r];return n;case I_:var o=t[Mk],a=t[Tk],i=rO(H_,[]);for(n=pO([],[]),r=uO(o.length,cb);cO(r,yb);){var s=wO(pO(r,a),i.length),u=[o.charCodeAt(r),i.charCodeAt(s)];n+=xO(Lk,[bO(gO(tO(u[yb]),tO(u[cb])),gO(u[yb],u[cb]))]),r--}return lO(V_,[n]);case H_:return"`uP!CC>Cwq?fj),y~aH8oybg:I";case Tk:Ck=function(e){return rO.apply(this,[zk,arguments])},yO(ok,["t\bRqvQ\fGn >[",db]);break;case _k:Ak=function(e){return rO.apply(this,[R_,arguments])},sO(lk,["9\\gzJSX7p|9`8.",Sb]);break;case zk:var c=t[Mk];for(dO.Sm=rO(ok,[c]);oO(dO.Sm.length,zb);)dO.Sm+=dO.Sm;break;case J_:for(n="",r=uO((i=t[Mk]).length,cb);cO(r,yb);r--)n+=i[r];return n;case ok:n="";if(cO(r=uO((i=t[Mk]).length,cb),yb))do{n+=i[r],r--}while(cO(r,yb));return n;case R_:c=t[Mk];for(fO.j2=rO(ok,[c]);oO(fO.j2.length,Lb);)fO.j2+=fO.j2;break;case Y_:Ak=function(){return rO.apply(this,[_k,arguments])},Ck=function(){return rO.apply(this,[Tk,arguments])},Wk=function(e,t){return rO.apply(this,[I_,arguments])},Sk=function(){return hO.apply(this,[Fk,arguments])},ub=function(e){return hO.apply(this,[kk,arguments])},Yk=function(){return hO.apply(this,[Bk,arguments])},$k=function(){return hO.apply(this,[sk,arguments])},Rk=function(e){return hO.apply(this,[g_,arguments])},xO(E_,[]),lO.call(this,L_,[hO(E_,[])]),lO.call(this,zk,[hO(D_,[])]),yO.call(this,N_,[hO(x_,[])]),Ik=["Array","length","constructor","number","apply","fromCharCode","String"],l_=lO(w_,[]),yO(W_,[lO(dk,[])]),sb=sO(T_,[["U69","UI","UCm","U6","U9m","Um"],mO([])]),u_=yO(dk,[Tq.call(null,"",aw),(e,t)=>{for(var n in t)u_.o(t,n)&&!u_.o(e,n)&&ib[Sq.apply(null,["f#9JM1",iw,wb])][wH(Wb,Mk,Ab)](e,n,yO(dk,[Yq("6A[(AV$?)",sw,[Cb]),mO(yb),Nq("7;V",uw),t[n]]))},xq.apply(null,["+",cw,[mb]]),(e,t)=>ib[Qq("qH.?\rY",lw,[qb])].prototype[Kq("E:C}V'\rW83IQ'",fw,"0ZN;=_")].call(e,t)]),c_={},u_.d(c_,yO(dk,[Wq.call(null,"3r",hw,[Gb,"0ZN;=_"]),()=>Kk,Lq.call(null,"\b",Wb),()=>Vk,Rq("\fk",pw,",_A!_"),()=>f_])),Vk=yO(dk,[FH(Fb,kb,wb),FH(Fb,kb,wb),hq("h(g\rx|",Ow),hq.call(null,"h(g\rx|",Ow),kq("9xu",Cw,[Ob,"SB$\f"]),kq.apply(null,["9xu",Cw,[Jb,"IO.A*"]])]),Uk=new(ib[Gq("\0H;V",Iw)]),qk=new(ib[Gq("\0H;V",Iw)]),Gk=new(ib[zq.call(null,"\"R'8^=",Rw,[xb,"B\\#\f}"])]),Xk=new(ib[Cq("3ZN\r",Sw,"C?\t\v")]),Kk=function(){return yO.apply(this,[q_,arguments])}(),f_=function(){return yO.apply(this,[Z_,arguments])},c_[V2.apply(null,["E7",cx])],h_=c_[U2.call(null," j",i_,[Ab,"](6\t."])],p_=c_[J2("m",s_,[wb])]}}function oO(e,t){var n=[e,t,"BKNKgn",Mk];return"number"==typeof e?n[Mk]+n[zk]<n[Tk]:n[Mk]<n[Tk]}function aO(e,t){return e>t}function iO(e){return-e}function sO(e,t){var n,r;switch(e){case S_:var o=t[Mk];return fO=function(e){return xO.apply(this,[L_,arguments])},Ak(o);case T_:for(var a=t[Mk],i=t[Tk],s=[],u=lO(kk,[]),c=i?ib[JH.apply(null,["K\n",$b])]:ib[UH("]#;d,\f",Kb)],l=yb;oO(l,a[IH("2G$",Vb)]);l=pO(l,cb))s[jH("H2$E",Yb)](c(u(a[l])));return s;case Hk:return"G:Fu&)e}_|B";case lk:for(var f=t[Mk],h=t[Tk],p=sO(Hk,[]),d=pO([],[]),v=uO(f.length,cb);cO(v,yb);v--){var m=wO(pO(v,h),p.length),g=[f.charCodeAt(v),p.charCodeAt(m)];d+=xO(Lk,[gO(bO(tO(g[yb]),g[cb]),bO(tO(g[cb]),g[yb]))])}return sO(S_,[d]);case N_:var y=t[Mk],b=t[Tk];if(mO(y instanceof b))throw new(ib[cq.apply(null,["9KE/RJ",ww])])(tq('?*Y3RLg4Lp?\n/\fH\\*D}\\!"C91L',Aw));break;case X_:return this[Fq("V*/",Bw,[hb,"8/a"])][Pq('CF@="\f',Ib,[wb,",_A!_"])];case z_:var w=this,x=aO(t[Hq.apply(null,[":^K9",vk,[Zb,"8/a"]])],yb)&&nO(void 0,t[yb])?t[yb]:{},E=x[fq("<WN!5",Lw,[Ib])],_=x[pq('X,@X<"H=/\r[\vZ',zw,cb)],k=x[Mq('&"I',hk)],O=nO(void 0,k)&&k,C=x[Iq.apply(null,["E\0S/<T'.TG5 ",Hw,"5NE {D"])];if(Jk(this[Fq("V*/",Bw,C_)][sq("-V\b7",Dw)],Vk[Vq("3w\trk",Ww,"C?\t\v")]))throw new(ib[Uq.apply(null,[">I&/",Vw,[Gb]])])(Jq('#*P\f"\0MZ9R<YAg;B90E',Uw));this[Fq.apply(null,["V*/",Bw,db])][jq.apply(null,["F\vH5&\\",qw,gb])]=Vk[kq("9xu",Cw,[Gb])],this[TE.apply(null,["1*G",Xb])][lq.apply(null,["\t@%6@",Gw,"Q'8)dx"])]=E;var I=yO(dk,[fq("<WN!5",Lw,[db,"\b+UOk"]),Jk(void 0,_)||_]);O&&(I[SE("L.T[N",Xw,[yb])]=Jk(void 0,C)||C);var R=this[TE.call(null,"1*G",Xb)][YE.apply(null,["8[K)",ew,gb])];return null!=R&&R[NE.call(null,"<\\\tL",Kw,ew)]&&xO(F_,[this,Uk,ub]).call(this,R),ib[xE("'6\tQ/7OJ,",b_,"]D51{")][QE.call(null,"QH6YG&A",$w,[Qb,"Q'8)dx"])][KE("4JZWE\v6(R(",Yw,[ew,"B\\#\f}"])](I)[WE("/XWO",872,mb)]((function(e){if(Jk(w[TE("1*G",Xb)][Pq('CF@="\f',Ib,[Jb,"]D51{"])],Vk[LE("w!x\t",Jw,"IO.A*")]))throw xO(F_,[w,Uk,ub]).call(w,e),new(ib[Uq.call(null,">I&/",Vw,lb)])(PH(Zw,nw,K_));return w[Fq("V*/",Bw,[_b,"<F>o"])][Pq('CF@="\f',Ib,"/6]g")]=Vk[FH(Fb,kb,Hk)],w[Fq.call(null,"V*/",Bw,vb)][nq('#*P\f"\0',m_)]=e,w[TE.call(null,"1*G",Xb)][RE.apply(null,["5\t^",Qw])].srcObject=e,e}));case yk:this[Bq("D228^",Pw,[hb,"5NE {D"])][sq.apply(null,["-V\b7",Dw])]=Vk[LE.apply(null,["w!x\t",Jw,rw])];var S=this[Fq("V*/",Bw,[kb])][EE("Z5!JO(",nx,lb)];xO(F_,[this,Uk,ub]).call(this,S);break;case y_:var A=t[Mk],P=t[Tk],T=t[Nk],D=vO(lb,A),N=oO(uO(P[IE.apply(null,["<",Ix,"![uu"])],vO(A,P[VE.apply(null,["$FJ1L",hx,Sb])])),yb)?yb:uO(P[IE("<",Ix,[nw,"L%1\vrj"])],A*P[tE("R?_",gx)]),M=oO(uO(P[UE.apply(null,[":",Rx])],vO(D,P[BE.call(null,'S"P5I',yx)])),Mk)?Mk:uO(P[JE('"',Sx,"Y#3d")],vO(D,P[BE('S"P5I',yx)])),F=nO(yb,N)?pO(P[wE("Z2TFI",v_,Cb)],vO(P[tE("R?_",ik)],vO(lb,A))):pO(pO(P[VE("$FJ1L",hx,"Q'8)dx")],P[IE("<",Ix,[Cb])]),vO(P[tE("R?_",gx)],A)),B=nO(yb,M)?pO(P[FE("H2WZU",pk,[fb,"C?\t\v"])],vO(P[FE("H2WZU",_x,"G(<gy")],pO(A,D))):pO(P[BE('S"P5I',M_)],P[jE("5",Ax,Tk)])+vO(P[FE("H2WZU",_x,[bb])],A);return B=aO(pO(B,M),T[T2("R*P8u].0E",ak)])?uO(T[S2.apply(null,[">Y/3s@7>",Px,Cb])],M):B,yO(dk,["topLeftXCoord",N,Y2("$1R%&\vb?$X/Y",Tx),M,tE("R?_",gx),F=aO(pO(F,N),T[pH(Dx,gb,mb)])?uO(T[pH(Dx,gb,mb)],N):F,FE.call(null,"H2WZU",_x,[wb]),B]);case C_:var j=t[Mk],L=t[Tk],z=L?sb[lb]:sb[cb],H=L?sb[hb]:sb[fb];return yO(dk,[IE("<",Ix,db),uO(vO(sb[pb],j[VE.call(null,"$FJ1L",hx,vb)]),(n=vO(z,j[FE.apply(null,["H2WZU",_x,[nw,"L%1\vrj"]])]),r=lb,n/r)),UE.apply(null,[":",Rx]),H*j[FE("H2WZU",_x,vb)],FE.call(null,"H2WZU",_x,[Sb,"\bL0Um"]),vO(z,j[lE.apply(null,["PN)'",bx,[Ob]])]),tE("R?_",gx),vO(z,j[FE.apply(null,["H2WZU",_x,[vb]])])])}}function uO(e,t){return e-t}function cO(e,t){return e>=t}function lO(e,t){switch(e){case Bk:var n=t[Mk];return dO=function(e){return hO.apply(this,[nk,arguments])},Ck(n);case w_:return[cb,cb,fb,pb,iO(vb),iO(bb),Eb,iO(fb),cb,iO(_b),kb,lb,pb,cb,iO(Ob),Cb,lb,iO(Ib),iO(cb),Rb,Ob,iO(Sb),hb,iO(Sb),db,iO(lb),iO(Ab),Pb,iO(pb),Tb,iO(Sb),cb,iO(lb),iO(kb),iO(hb),Sb,iO(Db),Nb,mb,iO(Fb),Fb,cb,iO(pb),cb,yb,iO(_b),iO(cb),Ib,iO(kb),iO(hb),Ob,iO(Ib),iO(Bb),jb,iO(wb),xb,iO(xb),vb,db];case dk:return["fH","FH","dH","wH","pH","PH"];case rk:var r=t[Mk];return Zk(r,tk)?ib[Ik[db]][Ik[pb]](r):(r-=O_,ib[Ik[db]][Ik[pb]][Ik[hb]](null,[pO(eO(r,mb),j_),pO(wO(r,U_),G_)]));case zk:var o=t[Mk];Sk();for(var a=yb;oO(a,o.length);++a)ib[o[a]]=function(){var e=o[a];return function(){var t=Wk.apply(void 0,arguments);return ib[e]=function(){return t},t}}();break;case L_:o=t[Mk];Ck();for(a=yb;oO(a,o.length);++a)ib[o[a]]=function(){var e=o[a];return function(){var t=dO.apply(void 0,arguments);return ib[e]=function(){return t},t}}();break;case E_:for(var i=t[Mk],s=t[Tk],u=MH("",Hb,"5-P,]"),c=yb;oO(c,i[IH("2G$",Vb)]);c=pO(c,cb)){u+=s[i[VH("=\n8^",Ub,[db,"\b+UOk"])](c)]}return u;case kk:var l={6:"1",9:"2",C:"4",I:"7",U:".",m:"5"};return function(e){return lO(E_,[e,l])};case Q_:var f=pO([],[]),h=wO(t[cb],Ob);if(oO(a=yb,t[yb].length))do{var p=[t[yb].charCodeAt(a),Wk.Tm.charCodeAt(h++)];f+=xO(Lk,[bO(gO(tO(p[yb]),tO(p[cb])),gO(p[yb],p[cb]))]),a++}while(oO(a,t[yb].length));return f;case V_:n=t[Mk];return Wk=function(){return lO.apply(this,[Q_,arguments])},Sk(n)}}function fO(){return sO.apply(this,[lk,arguments])}function hO(e,t){switch(e){case ok:var n=t[Mk];for(Wk.Tm=rO(ok,[n]);oO(Wk.Tm.length,Xb);)Wk.Tm+=Wk.Tm;break;case Fk:Sk=function(e){return hO.apply(this,[ok,arguments])},Wk("2DZ md\0a*}.JC",Pb);break;case kk:var r=t[Mk];r&&(r[q2.apply(null,["9G\t^E<^S4",Hx])]&&r.getAudioTracks?(r[q2("9G\t^E<^S4",Hx)]()[m2.call(null,"%~(_",uk)]((function(e){r[Z2.call(null,"\v'Q\\!L8[",Vx,[wb])](e),e[E2.call(null," [A5",Wx,"O 8Jqt")]()})),r.getAudioTracks()[O2("W:ZF6",Ux,[Qb])]((function(e){r[X2("7AX06I(>",Zb,[Cb])](e),e[b2("0K",qx)]()}))):r[E2(" [A5",Wx,[ew,"B\\#\f}"])]());break;case Bk:var o=aO(t[c2.apply(null,["PN5;",Gx,"Q'8)dx"])],yb)&&nO(void 0,t[yb])?t[yb]:{},a=o[r2('TK\n>_"',Xx)],i=nO(void 0,a)&&a,s=o[A2(")LO!4E4DvH$2K!9UV",Kx,"C?\t\v")],u=o[v2('D 4J}(KC.:"\\',$x,[nw])];if(mO(this[Bq.call(null,"D228^",Pw,[rw])][fq("<WN!5",Lw,Pb)]))return null;var c=this[Fq.apply(null,["V*/",P_,[Sb,"\bL0Um"]])][fq("<WN!5",Lw,[wb])][D2("%%_,2;Q\vA",Yx,[yb])],l=this[Fq.call(null,"V*/",Bw,[rw,"\b+UOk"])][lq.call(null,"\t@%6@",Gw," 2'^l")][h2.apply(null,[".[E\f?J3D",Jx,[cb,"0ZN;=_"]])],f=ib[kE.call(null,"2TF+\v$J",fx,[Ab,"=QYDf"])][dH(hx,px,kb)](k2.call(null,">\\V16^",Zx));f[VE("$FJ1L",hx,Rb)]=(Qk(null,s)?void 0:s[tE.call(null,"R?_",gx)])||c,f[FE("H2WZU",pk,Zb)]=(Qk(null,s)?void 0:s[FE.call(null,"H2WZU",_x,"1S-\t\n")])||l;var h=f[G2("1^Q\r\0>[R0",Qx,Ab)](sE.apply(null,["s7",xx,[gb,"'2DK"]]));return i&&(h[z2.call(null,"TZ-2[K",eE,db)](f[tE("R?_",gx)],yb),h[C2.call(null,"?X(1\t",oE,"V-6\n")](iO(cb),cb)),h[t2.apply(null,[" 0\rP,D.<[F,Jr(2.W,9",aE,[bb]])]=u,h[B2.call(null,"+Ic);\tH",iE,[Ib,"VSJ,\bN"])](this[Fq("V*/",Bw,[Ib,"VSJ,\bN"])][fq("<WN!5",Lw,vb)],yb,yb,(Qk(null,s)?void 0:s[wE("Z2TFI",Ex,'T@"2 \t')])||f[tE("R?_",ik)],(Qk(null,s)?void 0:s[FE("H2WZU",_x,'T@"2 \t')])||f[BE.apply(null,['S"P5I',yx])]),i&&(h[l2("V=/",uE,[Cb])](iO(cb),Tk),h[n2("_:^AM(#",yE,[fb,"C?\t\v"])](iO(f[wE.call(null,"Z2TFI",v_,"![uu")]),yb)),f;case sk:var p=aO(t[IH("2G$",mk)],yb)&&nO(void 0,t[Mk])?t[yb]:{},d=p[s2("\\L/ FA+W",_E,[vb,"V-6\n"])],v=p[g2(">@5\rO,R,",$E)],m=Jk(void 0,v)||v;return this[Fq.call(null,"V*/",Bw,[bb])][YE("8[K)",ew,[yb])]?xO(F_,[this,qk,Yk]).call(this,yO(dk,[d2("\tV%D4RV4",n_),d,g2(">@5\rO,R,",$E),m])):ib[w2.apply(null,["<Z@26",e_,"'2DK"])][F2.call(null,"BWK,4\v",Ek,"K:[W~x")](new(ib[P2('0"1P',t_)])("Stream not available"));case g_:var g=t[Mk],y=g[R2("C)=",r_,'";H')],b=g[XE("\nGH5",ax,Pb)],w=Jk(void 0,b)?f2("R72J",o_):b,x=g[bE("T@5*",ix,"IO.A*")],E=Jk(void 0,x)?cb:x,_=g[v2.apply(null,['D 4J}(KC.:"\\',$x,"IO.A*"])],k=Jk(void 0,_)||_,O=ib[PE("-2XG5",kx,[wb,"#ERb"])][dH(hx,px,kb)](dE.apply(null,["GY02?",Ox,[Ob,"SB$\f"]]));O[tE.call(null,"R?_",gx)]=y[VE("$FJ1L",hx,[fb])],O[FE("H2WZU",pk,[bb,"^)=^zo"])]=y[FE("H2WZU",_x,"XK/?1")];var C=O[G2("1^Q\r\0>[R0",Qx,[rw])](sE("s7",xx,'*Z"83@'));return C[t2(" 0\rP,D.<[F,Jr(2.W,9",aE,[kb])]=k,C[K2('F"$V,R',wk)](y,yb,yb),O&&O[p2("%zK0;;",Uw,[Sb,"\bL0Um"])](M2("^+2+^f",Uw,yb)[I2('VG"2[',a_,"IO.A*")](w),E);case E_:return["Vq","Qq","gq","Cq","Rq","SE","W2","GE","VH","kE","B2","qq","O2","G2","Wq","bq","Kq","FE","S2","R2","AE","HE","Hq","xE","xq","F2","L2","Z2","l2","A2","Fq","Pq","YE","WE","p2","n2","mq","fq","h2","wE","IE","JE"];case D_:return["JH","tq","P2","Oq","DE","Lq","hq","cq","Gq","Dq","Mq","cE","k2","Tq","d2","K2","Eq","m2","Nq","Q2","q2","V2","BE","T2","g2","H2","r2","f2","mE","IH","UH","ZE","jH","hE","pE","TE","sq","b2","nq","Jq","Y2","dq","RE","tE","Zq","UE"];case x_:return["MH","sE","rq","Uq","kq","Sq","w2","U2","LE","zq","J2","NE","Aq","Iq","fE","dE","CE","I2","s2","PE","gE","Yq","XE","nE","wq","KE","vq","lE","M2","N2","v2","t2","vE","ME","Xq","c2","QE","bE","zE","rE","X2","C2","Bq","jq","E2","qE","EE","x2","z2","OE","lq","pq","D2","VE","jE"];case nk:var I=t[Mk],R=pO([],[]),S=wO(t[cb],gb),A=yb;if(oO(A,I.length))do{var P=[I.charCodeAt(A),dO.Sm.charCodeAt(S++)];R+=xO(Lk,[bO(tO(bO(P[yb],P[cb])),gO(P[yb],P[cb]))]),A++}while(oO(A,I.length));return R}}function pO(e,t){return e+t}function dO(){return yO.apply(this,[ok,arguments])}function vO(e,t){return e*t}function mO(e){return!e}function gO(e,t){return"number"==typeof t?e|t+Mk:e|t}function yO(e,t){switch(e){case Q_:var n=t[Mk],r=t[Tk],o=ib[PE("-2XG5",kx,"'2DK")][dH(hx,px,kb)](dE("GY02?",Ox,[Cb])),a=r[fE("?M",__,"TLb")],i=r[pE(".[<IQ12`77L*1K%P",Cx)],s=r[ME("Mg)!8I(42TL32",fk,"O 8Jqt")],u=function(e,t,n){return sO.apply(this,[y_,arguments])}(i,a||function(e,t){return sO.apply(this,[C_,arguments])}(n,s),yO(dk,[N2("(>NI l^!;8",Nx,[hb,"5NE {D"]),n[FE("H2WZU",_x,"K:[W~x")],pH(Dx,L_,mb),n[tE("R?_",gx)]])),c=u.topLeftXCoord,l=u[x2('Ze$5[wKE"',Mx,[gb])],f=u[tE.call(null,"R?_",gx)],h=u[BE.apply(null,['S"P5I',yx])];return o[VE("$FJ1L",hx,"\n^vp")]=f,o[FE("H2WZU",_x,"K:[W~x")]=h,o[Q2("\n\bO?$Y)X@3",Fx)](sE.call(null,"s7",xx,"Q'8)dx"))[K2('F"$V,R',Bx)](n,c,l,f,h,yb,yb,f,h),o;case d_:var p=t[Mk],d=this,v=p[XE("\nGH5",ax,"5-P,]")],m=p[bE("T@5*",ix,mb)],g=p[cE.apply(null,["_Z(/",sx])],y=p[rE(">^%<Cd !HG+gX6#%U.",ux,Jb)],b=p[AE("Q;TW*#Ji%7\v_:",cx,Jb)],w=p[vE.apply(null,[":?x;2\\N",Sb,"B\\#\f}"])];return new(ib[DE.call(null,"k$Z4N]",$_)])((function(e){var t,n,r,o,a,i=xO(F_,[d,Gk,$k]).call(d);w?i=function(e,t){return yO.apply(this,[Q_,arguments])}(i,yO(dk,[W2.call(null,"5W0",k_,xb),g,L2("/RK03HQ@F 9<J'&KL0",jx,"G(<gy"),y,ME("Mg)!8I(42TL32",Lx,db),b])):b||(t=i,n=yO(dk,[hE('1\bZ\b"A8x\\ 2n .K$',lx),sb[yb]]),r=ib[kE.call(null,"2TF+\v$J",fx,[pb])][dH(hx,px,kb)](GE.apply(null,["4V>7H",dx,"L%1\vrj"])),o=n[zE("Y](%Jk!Ct4<<K 3\v",vx,"TLb")],a=ib[fH(Db,Ob,hb)][CE("PE",mx,"\n^vp")](vO(o,t[tE("R?_",gx)])),r[tE("R?_",gx)]=uO(t[tE("R?_",gx)],vO(lb,a)),r[BE('S"P5I',yx)]=t[lE("PN)'",bx,"B\\#\f}")],r[nE.call(null,":\tvG56WZ",wx,"H*6p")](sE("s7",xx,lb))[gE.apply(null,["%!NY\fIP#",xx,Gb])](t,a,yb,r[tE("R?_",gx)],r[lE("PN)'",bx,30)],yb,yb,r[wE("Z2TFI",Ex,[Sb,"\bL0Um"])],r[FE("H2WZU",_x,[yb,".7P@S"])]),i=r),e(yO(dk,[R2.call(null,"C)=",xk,pb),xO(F_,[d,Xk,Rk]).call(d,yO(dk,[H2("V",zx),i,XE("\nGH5",ax,lb),v,bE.apply(null,["T@5*",ix,"V-6\n"]),m]))]))}));case q_:var x,E,_=function(){mO(function(e,t){return sO.apply(this,[N_,arguments])}(this,_)),xO(Hk,[this,Xk]),xO(Hk,[this,Gk]),xO(Hk,[this,qk]),xO(Hk,[this,Uk]),this[Bq("D228^",Pw,mb)]=yO(dk,[lq("\t@%6@",A_,[wb]),null,nq.call(null,'#*P\f"\0',Tw),null,sq.apply(null,["-V\b7",Dw]),Vk[gq("cfn:|",Nw,"VSJ,\bN")]])};return x=_,E=[yO(dk,[Xq("^P",yw,"/<jN"),wq("N$'|Z$P\0D",Mw,wb),mq(">7WP;",Fw,nw),function(){return sO.apply(this,[X_,arguments])}]),yO(dk,[Xq("^P",yw,mb),"startCamera",dq.apply(null,["N&;X",jw]),function(){return sO.apply(this,[z_,arguments])}]),yO(dk,[HE("![S",ex,[tw,"XK/?1"]),qE.apply(null,[" 8T9\rP\rH",tx,[yb,"SB$\f"]]),mq(">7WP;",gk,fb),function(){return sO.apply(this,[yk,arguments])}]),yO(dk,[mE.call(null,"P2",rx),ZE.call(null," ,M\n&x;C(O]",ox),OE("3EB#",bk,";\rP "),function(e){return yO.apply(this,[d_,arguments])}])],E&&xO(B_,[x.prototype,E]),ib[Sq("f#9JM1",iw,[nw,"5-P,]"])][wH(Wb,yb,Ab)](x,"prototype",yO(dk,[Zq("0%D22G",mw),!cb])),_;case B_:return";T?!Nw<^'wAcs;H>";case ok:var k=t[Mk],O=t[Tk],C=yO(B_,[]),I=pO([],[]);if(cO(P=uO(k.length,cb),yb))do{var R=wO(pO(P,O),C.length),S=[k.charCodeAt(P),C.charCodeAt(R)];I+=xO(Lk,[bO(tO(bO(S[yb],S[cb])),gO(S[yb],S[cb]))]),P--}while(cO(P,yb));return lO(Bk,[I]);case W_:for(var A=t[Mk],P=uO(A[Ik[cb]],cb);cO(P,yb);--P)ib[A[P]]=function(){var e=A[P];return function(t,n,r){var o=xO.call(void 0,Q_,[n,t,ow,r,hb]);return ib[e]=function(){return o},o}}();break;case dk:for(var T={},D=t,N=yb;oO(N,D[IH("2G$",Vb)]);N+=lb)T[D[N]]=D[pO(N,cb)];return T;case N_:var M=t[Mk];if(Ak(),oO(P=yb,M.length))do{ib[M[P]]=function(){var e=M[P];return function(){var t=fO.apply(void 0,arguments);return ib[e]=function(){return t},t}}(),++P}while(oO(P,M.length));break;case Z_:return new Kk}}function bO(e,t){return e&t}function wO(e,t){return e%t}function xO(e,t){switch(e){case dk:for(var n=t[Mk],r=yb,o=yb;oO(o,n.length);++o){var a=n.charCodeAt(o);(oO(a,j_)||aO(a,ek))&&(r=pO(r,cb))}return r;case Q_:var i=t[Mk],s=t[Tk],u=(t[Nk],r=t[zk],t[Dk]);Jk(typeof u,Ik[fb])&&(u=l_);var c=pO([],[]);for(Ok=s;aO(r,yb);){if(nO(i[Ik[lb]],ib[Ik[yb]])&&cO(i,u[Ik[cb]]))return Qk(u,l_)&&(c+=lO(rk,[Ok])),c;c+=lO(rk,[Ok]),Ok+=u[i],--r,++i}return c;case B_:for(var l=t[Mk],f=t[Tk],h=yb;oO(h,f[Hq(":^K9",dw,[Ab,"=QYDf"])]);h++){var p=f[h];p[qq("]&#V@,\f&[",ck,"1S-\t\n")]=p[Eq.call(null,"\bU\t&R/\\Z+2",vw)]||mO(cb),p.configurable=mO(yb),mq.apply(null,[">7WP;",gk,"L%1\vrj"])in p&&(p[Zq.apply(null,["0%D22G",mw])]=mO(yb)),ib[Oq.apply(null,["x?W]$#",gw])][wH(Wb,yb,Ab)](l,p[Xq.call(null,"^P",yw,[Ib,"/<jN"])],p)}break;case E_:gb=(lb=(cb=1)+cb)*(fb=cb+lb)+(pb=(hb=fb+cb)*lb-fb*cb)+cb+(mb=hb-cb+(vb=cb*pb*fb-(db=pb+hb-fb))-lb),yb=+[],bb=lb*mb*cb-hb+pb,Eb=pb-vb+(xb=cb*(wb=pb*fb-hb+lb-db)-pb+db)*db-mb,_b=pb+vb-xb+hb+cb,kb=mb+fb-vb+lb+wb,Ob=vb+hb+xb-lb,Cb=cb+fb-hb+wb+mb,Ib=lb+cb+xb+mb-db,Rb=pb+lb*vb+fb-db,Sb=vb+db+pb-mb+lb,Ab=fb-xb-pb+db*hb,Pb=mb+cb+pb*lb-fb,Tb=hb+fb*pb-mb+wb,Db=mb*vb-db-wb,Nb=vb+pb*mb+wb*lb,Fb=wb*cb+mb+(Mb=db+xb*cb+mb+vb)*lb,Bb=xb*pb-lb-db,jb=vb*hb*cb+fb,Lb=xb*vb+db+cb+lb,zb=lb+hb*xb+mb,Hb=cb*pb*fb*lb*Mb,Vb=Mb+(Wb=wb*vb+Mb-hb+xb)+xb*fb*db,Ub=fb*Wb+Mb*xb-mb,qb=db+xb*lb+fb*cb,Gb=wb*pb-db*lb*cb,Xb=Mb*lb+vb-mb,Kb=cb*lb+fb*Wb+vb,$b=cb+xb*Wb-db*pb,Yb=vb+Mb*db-hb*xb,Jb=xb*lb+vb-cb,Zb=lb*xb+fb*cb+wb,Qb=mb+lb-hb+fb*wb,ew=fb+vb+lb+xb+pb,tw=hb+lb*mb+cb+pb,nw=xb+vb*fb*cb-hb,rw=wb+pb+vb+mb-fb,ow=db*lb*wb,aw=db*mb*xb+hb+vb,iw=wb*Wb+db+Mb+hb,sw=xb*Wb-Mb+cb-hb,uw=cb-pb+Wb*xb-wb,cw=wb*db*lb*fb,lw=cb*hb-wb+fb*Mb,fw=pb-lb*wb+xb*Mb,hw=vb-wb+xb*Mb-mb,pw=hb+pb+vb*Wb-db,dw=vb+lb*Mb*mb-xb,vw=mb+Mb*lb+wb*Wb,mw=wb+xb*vb*fb+mb,gw=hb*Mb+wb*mb*db,yw=wb*Wb-fb*lb-mb,bw=cb-wb+Wb*mb-xb,ww=vb*Wb-mb+db-wb,xw=xb+hb*Wb+Mb+fb,Ew=mb*Wb-cb,_w=xb*Wb+mb*wb+cb,kw=pb*hb+xb*Wb,Ow=db*mb+hb*Mb*pb,Cw=Wb*xb+hb+fb*cb,Iw=wb*Wb+fb-xb+Mb,Rw=Wb*db-xb+pb+cb,Sw=lb+Wb+Mb-mb+wb,Aw=mb*hb*vb-Wb-Mb,Pw=mb*lb*hb*vb-wb,Tw=Wb*lb+Mb-hb+vb,Dw=wb*lb*pb*db-mb,Nw=db+mb*wb*vb-pb,Mw=Mb+mb*pb*vb*lb,Fw=db*cb*Wb-mb*pb,Bw=mb*db+Mb+fb-pb,jw=fb+Wb*vb-db,Lw=Mb*pb*hb-Wb-fb,zw=Wb+mb+vb*wb*xb,Hw=mb+Wb-vb+xb*pb,Ww=vb*pb*fb*hb+xb,Vw=Wb*wb+cb-xb*fb,Uw=Wb*fb+wb*cb*lb,qw=pb*vb-lb+cb-db,Gw=mb*Wb+fb-Mb,Xw=hb*Wb-vb+mb+xb,Kw=xb*Mb+fb-hb,$w=lb+wb*vb*fb*hb,Yw=Mb*cb-db+wb+xb,Jw=vb+pb*xb+Wb*wb,Zw=pb+Wb+wb+hb-cb,Qw=mb+vb*hb+Wb*pb,ex=Mb+vb*db*pb+Wb,tx=hb*Wb-lb-db,nx=db*pb+fb*Wb+Mb,rx=Wb-vb-cb+Mb*wb,ox=hb*Mb+cb+db*xb,ax=hb*cb*Wb+wb-mb,ix=lb+Wb*db+vb+Mb,sx=wb*cb*fb*db*pb,ux=wb*vb+pb*Wb+cb,cx=xb+Wb*lb-db-pb,lx=Wb*vb-wb-pb,fx=db*Mb+pb*wb-Wb,hx=vb*db*lb-cb-xb,px=hb*wb+db+pb+xb,dx=fb*lb*Wb+pb*wb,vx=vb*Mb+lb+db*mb,mx=wb*Wb-fb-Mb*cb,gx=Wb-db+vb*hb*cb,yx=vb-cb+wb*xb+mb,bx=vb*fb-mb+Wb*hb,wx=vb-pb+Mb*wb*hb,xx=vb+Wb-db+Mb,Ex=vb+cb+Wb*db-fb,_x=Wb+Mb*lb*wb,kx=hb+db*Wb-mb-vb,Ox=Wb+lb*wb*vb+mb,Cx=db*Mb+lb-cb-mb,Ix=fb+mb*wb-vb+Wb,Rx=Mb*hb*cb*pb,Sx=Wb*fb+pb*xb+hb,Ax=hb-mb-db+pb*Wb,Px=Mb*db+mb*pb-vb,Tx=pb*db*xb*hb,Dx=db*lb+Wb-xb+cb,Nx=db+pb-fb+Mb,Mx=xb+Wb*vb+fb,Fx=Wb+db+hb*mb*lb,Bx=lb-wb+mb*Mb-vb,jx=xb*mb*wb-hb,Lx=wb*vb*db+lb+xb,zx=Wb*lb+db*cb,Hx=hb*vb*pb+Wb*xb,Wx=xb-Mb-lb+Wb*mb,Vx=vb*wb*db*lb-fb,Ux=vb*Wb+lb+db*wb,qx=pb*hb*vb+Mb+mb,Gx=xb*Wb-lb-hb*pb,Xx=mb*Wb-pb-hb,Kx=hb+vb*fb*pb-cb,$x=db*Wb-cb+mb,Yx=Wb*pb-wb+mb+fb,Jx=xb*Mb*lb+pb,Zx=pb*db+lb*cb*Wb,Qx=Mb-lb+pb+mb-cb,eE=wb*hb*db+cb,oE=db+vb*pb*lb*mb,aE=mb-db*vb+Wb*xb,iE=db+xb*wb+vb,uE=Wb*mb-vb+wb-pb,yE=xb*pb-lb+wb*Wb,_E=Mb*wb+xb*db+Wb,$E=vb*mb+Mb*wb+xb,e_=pb+wb*Mb*hb,t_=Wb-hb*cb+mb*Mb,n_=vb*Wb+xb+pb+Mb,r_=Wb*pb+hb-Mb*cb,o_=Wb*pb+lb+Mb+cb,a_=vb*Wb-pb-wb-Mb,i_=hb+pb*Wb+fb*vb,s_=mb*wb*fb*hb+db;break;case C_:for(var d=t,v=d[yb],m=cb;oO(m,d[IH("2G$",Vb)]);m+=lb)v[d[m]]=d[pO(m,cb)];break;case W_:var g=t[Mk];if(t[Tk][bq.apply(null,["!6\f",bw,mb])](g))throw new(ib[cq("9KE/RJ",ww)])(rq("EY)'lR'4T@;6Z-AUD'>)9/T\vLa6CK(AC5s8L >\tQZ\t =A'NT2",xw,Nk));break;case Hk:var y=t[Mk],b=t[Tk];mO(function(e,t){return xO.apply(this,[W_,arguments])}(y,b)),b[Aq.call(null,"'7(",Ew,[qb,"H$Ohw"])](y);break;case F_:var w=t[Mk],x=t[Tk],E=t[Nk];if(!x[vq("5\r",_w,[fb,"'2DK"])](w))throw new(ib[cq("9KE/RJ",ww)])(Dq("\\L32@5:,M\n^\bkG/TN&#HU9;N\rc$YpTV4#L5",kw));return E;case Lk:var _=t[Mk];return Zk(_,tk)?String.fromCharCode(_):(_-=O_,String.fromCharCode(pO(eO(_,mb),j_),pO(wO(_,U_),G_)));case L_:for(var k=t[Mk],O=pO([],[]),C=wO(t[cb],Ob),I=yb;oO(I,k.length);){var R=[k.charCodeAt(I),fO.j2.charCodeAt(C++)];O+=xO(Lk,[gO(bO(tO(R[yb]),R[cb]),bO(tO(R[cb]),R[yb]))]),I++}return O}}F_=(jk=[+!+[]]+[+[]]-+!+[]-+!+[])+(Fk=[+!+[]]+[+[]]-[]),d_=(Mk=+[])+(Pk=+!+[]+!+[]+!+[]+!+[]+!+[])*Fk,O_=(Lk=+!+[]+!+[]+!+[]+!+[]+!+[]+!+[])+(zk=+!+[]+!+[]+!+[])*Fk+Pk*Fk*Fk+Pk*Fk*Fk*Fk+Lk*Fk*Fk*Fk*Fk,pk=(Nk=!+[]+!+[])+Lk*Fk+Pk*Fk*Fk,ak=Nk+Mk*Fk+zk*Fk*Fk,T_=jk+Nk*Fk,wk=Lk+Fk+zk*Fk*Fk,S_=(Tk=+!+[])+Pk*Fk,W_=Nk+(Dk=!+[]+!+[]+!+[]+!+[])*Fk,k_=zk+Mk*Fk+Pk*Fk*Fk,uk=Tk+Dk*Fk+Lk*Fk*Fk,lk=Mk+Nk*Fk,g_=Dk+Pk*Fk,q_=Pk+Pk*Fk,j_=Lk+(Bk=[+!+[]]+[+[]]-+!+[])*Fk+Nk*Fk*Fk+Pk*Fk*Fk*Fk+Pk*Fk*Fk*Fk*Fk,z_=Nk+zk*Fk,b_=jk+(Hk=+!+[]+!+[]+!+[]+!+[]+!+[]+!+[]+!+[])*Fk+Lk*Fk*Fk,Y_=Hk+Dk*Fk,hk=zk+Bk*Fk+Bk*Fk*Fk,yk=Tk+Fk,ck=Bk+zk*Fk+Dk*Fk*Fk,N_=Tk+Lk*Fk,R_=jk+Pk*Fk,K_=Hk+Fk,B_=Pk+Dk*Fk,kk=jk+Dk*Fk,mk=Hk+Hk*Fk+Nk*Fk*Fk,X_=Bk+zk*Fk,xk=Tk+Hk*Fk+Dk*Fk*Fk,ik=Mk+zk*Fk+Fk*Fk,E_=Dk+Fk,A_=Mk+Hk*Fk+Bk*Fk*Fk,tk=Pk+zk*Fk+Pk*Fk*Fk+Pk*Fk*Fk*Fk+Lk*Fk*Fk*Fk*Fk,Z_=Lk+Dk*Fk,Q_=Nk+Pk*Fk,gk=Mk+Pk*Fk+Pk*Fk*Fk,P_=Tk+Bk*Fk,V_=Lk+Pk*Fk,__=Tk+jk*Fk+Lk*Fk*Fk,I_=Dk+zk*Fk,sk=zk+Fk,dk=Nk+Lk*Fk,$_=Lk+Nk*Fk+Nk*Fk*Fk,L_=Nk+Nk*Fk,v_=Hk+Mk*Fk+Lk*Fk*Fk,ek=Bk+Fk+zk*Fk*Fk+Lk*Fk*Fk*Fk+Pk*Fk*Fk*Fk*Fk,fk=jk+jk*Fk+zk*Fk*Fk,G_=Mk+Nk*Fk+zk*Fk*Fk+Lk*Fk*Fk*Fk+Pk*Fk*Fk*Fk*Fk,C_=Pk+Nk*Fk,U_=Dk+Nk*Fk+Mk*Fk*Fk+Fk*Fk*Fk,ok=Tk+zk*Fk,nk=Lk+zk*Fk,vk=Tk+Lk*Fk+Lk*Fk*Fk,y_=Lk+Nk*Fk,M_=Dk+Hk*Fk,m_=jk+zk*Fk+Nk*Fk*Fk,J_=zk+zk*Fk,rk=jk+zk*Fk,x_=Hk+zk*Fk,D_=Pk+Fk,w_=Tk+Dk*Fk,H_=Bk+Pk*Fk,_k=Mk+Lk*Fk,bk=Lk+Fk+Nk*Fk*Fk,Ek=Tk+Mk*Fk+zk*Fk*Fk,rO.call(void 0,Y_);var EO=n(9669),_O=n.n(EO);const kO=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:void 0;return`${e||"https://api.yoti.com/sm/v1/secure-fcm"}/1.0.0`},OO=e=>_O().get(`${kO(e)}/token`),CO=(e,t)=>import(/*webpackIgnore:true*/`${kO(t)}/module?s=${e}`),IO={error:null,stream:null},RO=t=>{let{videoElement:n,idealResolutionValue:r,minResolutionValue:o,secure:a=!1,secureCaptureEndpoint:i}=t;const{capture:s,captureErrorCode:u}=function(){let t=arguments.length>0&&void 0!==arguments[0]&&arguments[0],n=arguments.length>1?arguments[1]:void 0;const[r,o]=(0,E.useState)(null),[a,i]=(0,E.useState)(null);return(0,E.useEffect)((()=>{if(t)(async()=>{try{const{data:{token:e}={}}=await OO(n),{default:t}=await CO(e,n),r=t(e);o(r)}catch(t){i(e.CAPTURE_LOAD_ERROR),console.error(t)}})();else{const e=p_();o(e)}}),[t,n]),{capture:r,captureErrorCode:a}}(a,i),c=ab(),[l,f]=(0,E.useState)(IO),h=(0,E.useCallback)((()=>{let t=!1;return{promise:s.startCamera({video:n,videoConstraints:{facingMode:"user",width:{ideal:r.width,min:o.width},height:{ideal:r.height,min:o.height}}}).then((e=>{t||f((t=>({...t,stream:e,error:null})))})).catch((n=>{if(t)return;const r=(t=>{const{name:n="",message:r=""}=t;return[n,r].some((e=>e.toLowerCase().includes("constrain")))?e.OVERCONSTRAINED:"NotAllowedError"===n?e.NO_CAMERA_PERMISSION:e.GENERIC_CAMERA_ERROR})(n);f({...IO,error:r})})),cancel:()=>{t=!0}}}),[s,n,r.width,r.height,o.width,o.height]);return(0,E.useEffect)((()=>()=>s&&s.stopCamera()),[s]),(0,E.useEffect)((()=>{if(!s||!n||u)return;let e;const t=s.getStatus();return t===h_.STOPPED||c||s.stopCamera(),t!==h_.LOADING&&c&&(e=h().cancel),()=>{e&&e()}}),[s,h,c,n,u]),{...l,capture:s,error:l.error||u}},SO=t=>{let{faceCaptureAssetsRootUrl:n,format:r,qualityValue:o,imageType:a,secure:i,isPortraitCamera:s,minResolutionValue:u,idealResolutionValue:c,videoElement:l,isAuto:f,secureCaptureEndpoint:h}=t;const{capture:p,error:d,stream:m}=RO({idealResolutionValue:c,minResolutionValue:u,secure:i,videoElement:l,secureCaptureEndpoint:h}),{faceDetection:g,error:y,slowPerformance:b}=(t=>{const[n,r]=(0,E.useState)(rb);return(0,E.useEffect)((()=>{if(!t)return void r({...rb});let n=!1;const o=new nb(t);return o.init().then((()=>{n||r((e=>({...e,faceDetection:o,error:null})))})).catch((t=>{n||(console.error(t),r({...rb,error:e.FACE_DETECTION_INIT_ERROR}))})),Ut(5e3).then((()=>{n||r((e=>({...e,slowPerformance:!e.faceDetection})))})),()=>{n=!0}}),[t]),n})(n),w=ab(),[x,_]=(0,E.useState)({error:null,facesProperties:[],debugMessages:[],result:null}),{result:k}=x,O=g&&!y&&(p&&m&&!d),C=(0,E.useCallback)((e=>p.processCapture({format:r,quality:o,bbox:e,relativeMarginCropping:.3,isPortraitCamera:s,isCropping:a===v.CROPPED})),[p,r,o,s,a]),I=(0,E.useCallback)((()=>{if(!l||0===l.videoHeight||0===l.videoWidth)return{promise:Promise.reject(new Error("video element not ready")),cancel:()=>{}};const e=!f;let t=!1;const n=g.detect(l,{isPortraitCamera:s,isManualCapture:e,numberOfChecks:4,videoElement:l}).then((e=>{if(t)return;const n=Array.isArray(e)&&e.length>0?e[0].box:{};return C(n).then((t=>({result:t,facesProperties:e})))})).then((e=>{t||_((t=>({...t,...e})))})).catch((e=>{if(t)return;const n=e instanceof de?e.facesProperties:[];_((t=>({...t,error:e,facesProperties:n})))}));return{promise:n,cancel:()=>{t=!0}}}),[g,s,f,l,C]);return(0,E.useEffect)((()=>{const e=d||y;_((t=>({...t,error:e})))}),[y,d]),(0,E.useEffect)((()=>{if(!O||k||!f||!w)return;let e,t=!1;const n=()=>{const{promise:r,cancel:o}=I();e=o,r.catch((()=>null)).finally((()=>{t||Ut(200).then((()=>{t||n()}))}))};return Ut(1e3).then((()=>{t||n()})),()=>{t=!0,e&&e()}}),[O,f,I,k,w]),{...x,slowPerformance:b,ready:O,checkFace:I,result:k,stream:m}},AO=e=>{switch(e){case i:case l:case f:return ry.WARNING;case s:return ry.SUCCESS;default:return ry.NEUTRAL}},PO={[t]:_().createElement(q,{id:"move-closer-feedback-message"}),[o]:_().createElement(q,{id:"move-back-feedback-message"}),[a]:_().createElement(q,{id:"move-center-feedback-message"}),[i]:_().createElement(q,{id:"one-face-only-feedback-message"}),[s]:_().createElement(q,{id:"hold-still-feedback-message"}),[u]:_().createElement(q,{id:"camera-loading-feedback-message"}),[c]:_().createElement(q,{id:"face-scan-loading-feedback-message"}),[f]:_().createElement(q,{id:"image-too-bright-feedback-message"}),[l]:_().createElement(q,{id:"image-too-dark-feedback-message"})},TO={[i]:"face",[f]:"lighter",[l]:"darker"},DO=e=>{let{faceCaptureAssetsRootUrl:t,onSuccess:n,onError:r,onReadyForCapture:o,showOverlay:i,resolutionType:s,format:c,isConsentRequired:l,CustomManualButton:f,CustomConsentButton:h,countdownMode:p,captureMethod:v,manualCaptureFallback:m,isDebug:y,imageType:b,qualityType:k,secure:O,a11yLiveRegionMode:C,secureCaptureEndpoint:I}=e;const[R,S]=(0,E.useState)({captureConsentProvided:!1,msgCode:"",countdownActive:!1,captureMethod:v,cameraReady:!1,pictureTaken:!1,moduleLoaded:!1}),{valid:A,error:P}=(()=>{const[e,t]=(0,E.useState)(),[n,r]=(0,E.useState)(!1);return(0,E.useEffect)((()=>{Dy().then((e=>{e?t(e):r(!0)}))}),[]),{error:e,valid:n}})(),T=Wt(),{ref:D}=pt(),{msgCode:N,countdownActive:M,captureConsentProvided:F,captureMethod:B,cameraReady:j,pictureTaken:L,moduleLoaded:z}=R,H=TO[N]||"",W=PO[N],V=T.current,U=y&&V,q=V&&V.clientWidth,G=j?V?.videoHeight>V?.videoWidth:window.screen.height>window.screen.width,K=l&&!F,$=B===d.MANUAL,J=$&&!M,Z=!$&&!K&&j,Q=x[s],ee=x[w.HD],te=g[k],ne=he(),{checkFace:re,result:oe,stream:ae,error:ie,ready:se,slowPerformance:ue,facesProperties:ce}=SO({faceCaptureAssetsRootUrl:t,format:c,qualityValue:te,imageType:b,secure:O,isPortraitCamera:G,minResolutionValue:ee,idealResolutionValue:Q,videoElement:V,isAuto:Z,secureCaptureEndpoint:I}),le=se&&j,fe=(0,E.useCallback)((()=>{p?S((e=>({...e,countdownActive:!0}))):re()}),[re,M]);return(0,E.useEffect)((()=>{const e=ue&&m?d.MANUAL:v;S((t=>({...t,captureMethod:e,msgCode:a})))}),[ue,v,l,m]),(0,E.useEffect)((()=>{const e=ie||P;e&&(e instanceof de?S((e=>({...e,msgCode:ie.message,countdownActive:!1}))):r(e))}),[r,ie,P]),(0,E.useEffect)((()=>{const e=le?a:u;if(le&&!z)return o(),void S((t=>({...t,msgCode:e,moduleLoaded:!0})));S((t=>({...t,msgCode:e})))}),[le,z]),(0,E.useEffect)((()=>{oe&&!L&&(S((e=>({...e,msgCode:null,resultAlreadyProvided:!0,pictureTaken:!0}))),n(oe))}),[n,oe,L]),_().createElement("div",{className:Py,"data-qa":"face-capture",ref:D},A&&_().createElement(_().Fragment,null,_().createElement("div",{className:Ay},_().createElement(St,{ref:T,stream:ae,canPlay:se,onCameraReady:e=>{S((t=>({...t,cameraReady:e})))}}),!le&&_().createElement("div",{className:Ty},_().createElement(py,null)),le&&i&&_().createElement(_().Fragment,null,_().createElement(_y,{isPortraitCamera:G}),_().createElement(ay,{isPortraitCamera:G,variation:AO(N)})),!oe&&W&&_().createElement(Sy,{message:W,a11yLiveRegionMode:C,iconName:H,isPortraitCamera:G,cameraViewWidth:q}),U&&_().createElement(Zg,{facesProperties:ce,debugMessages:ne,videoElement:V})),!oe&&_().createElement(_().Fragment,null,M&&_().createElement(Ht,{action:re,countdownMode:p}),J&&j&&!K&&_().createElement(Ot,{CustomButton:f,defaultContent:"Take picture",onClick:fe,Icon:X,disabled:!se}),!oe&&j&&K&&_().createElement(Ot,{CustomButton:h,Icon:Y,onClick:()=>S((e=>({...e,captureConsentProvided:!0})))}))))};DO.defaultProps={faceCaptureAssetsRootUrl:"assets/face-capture/",isDebug:!1,captureMethod:d.AUTO,onError:()=>{},onReadyForCapture:()=>{},showOverlay:!0,resolutionType:w.HD,format:p.JPEG,isConsentRequired:!1,countdownMode:y.NEVER,imageType:v.ORIGINAL,qualityType:m.HIGH,secure:!1,manualCaptureFallback:!0},DO.propTypes={faceCaptureAssetsRootUrl:O().string,captureMethod:O().oneOf(Object.values(d)),onSuccess:O().func.isRequired,onError:O().func,onReadyForCapture:O().func,showOverlay:O().bool,resolutionType:O().oneOf(Object.values(w)),format:O().oneOf(Object.values(p)),isConsentRequired:O().bool,CustomManualButton:O().func,CustomConsentButton:O().func,countdownMode:O().oneOf(Object.values(y)),isDebug:O().bool,imageType:O().oneOf(Object.values(v)),qualityType:O().oneOf(Object.values(m)),secure:O().bool,a11yLiveRegionMode:O().oneOf(Object.values(b)),secureCaptureEndpoint:O().string,manualCaptureFallback:O().bool};const NO=DO;function MO(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function FO(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function BO(e,t,n){return t&&FO(e.prototype,t),n&&FO(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function jO(e,t){return jO=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},jO(e,t)}function LO(e){return LO="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},LO(e)}function zO(e,t){if(t&&("object"===LO(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}function HO(e){return HO=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},HO(e)}function WO(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var VO=function(e){return"string"==typeof e},UO=function(e){return"function"==typeof e},qO=new Map,GO=new Map;function XO(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];return function(r){if(VO(r)&&(r=new Date(r)),n){var o=$O(e,t),a=GO.get(o);if(a)return a.format(r);var i=new Intl.DateTimeFormat(e,t);return GO.set(o,i),i.format(r)}return new Intl.DateTimeFormat(e,t).format(r)}}function KO(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];return function(r){if(n){var o=$O(e,t),a=qO.get(o);if(a)return a.format(r);var i=new Intl.NumberFormat(e,t);return qO.set(o,i),i.format(r)}return new Intl.NumberFormat(e,t).format(r)}}function $O(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=Array.isArray(e)?e.sort().join("-"):e;return"".concat(n,"-").concat(JSON.stringify(t))}Object.freeze({__proto__:null,date:XO,number:KO});var YO=/\\u[a-fA-F0-9]{4}|\\x[a-fA-F0-9]{2}/g;function JO(e){var t=e.locale,n=e.locales,r=e.values,o=e.formats,a=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{plurals:void 0},r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};t=t||e;var o=n.plurals,a=function(e){return VO(e)?r[e]||{style:e}:e},i=function(e,n){return function(r){var o=UO(n)?n(r):n,a=Array.isArray(o)?o:[o],i=KO(t)(e);return a.map((function(e){return VO(e)?e.replace("#",i):e}))}};return o||console.error("Plurals for locale ".concat(e," aren't loaded. Use i18n.loadLocaleData method to load plurals for specific locale. Using other plural rule as a fallback.")),{plural:function(e,t){var n=t.offset,r=void 0===n?0:n,a=WO(t,["offset"]),s=a[e]||a[null==o?void 0:o(e-r)]||a.other;return i(e-r,s)},selectordinal:function(e,t){var n=t.offset,r=void 0===n?0:n,a=WO(t,["offset"]),s=a[e]||a[null==o?void 0:o(e-r,!0)]||a.other;return i(e-r,s)},select:function(e,t){return t[e]||t.other},number:function(e,n){return KO(t,a(n))(e)},date:function(e,n){return XO(t,a(n))(e)},undefined:function(e){return e}}}(t,n,e.localeData,o);return function e(t,n,o){var i=r[t],s=a[n](i,o),u=UO(s)?s(e):s;return Array.isArray(u)?u.join(""):u}}function ZO(e,t,n,r){return function(o){var a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=JO({locale:t,locales:n,localeData:r,formats:a,values:o}),s=function e(t){return Array.isArray(t)?t.reduce((function(t,n){if(VO(n))return t+n;var r=S(n,3),o=r[0],a=r[1],s=r[2],u={};null==s||VO(s)?u=s:Object.keys(s).forEach((function(t){u[t]=e(s[t])}));var c=i(o,a,u);return null==c?t:t+c}),""):t},u=s(e);return VO(u)&&YO.test(u)?JSON.parse('"'.concat(u.trim(),'"')):VO(u)?u.trim():u}}var QO=function(){function e(){MO(this,e),this._events={}}return BO(e,[{key:"on",value:function(e,t){var n=this;return this._hasEvent(e)||(this._events[e]=[]),this._events[e].push(t),function(){return n.removeListener(e,t)}}},{key:"removeListener",value:function(e,t){if(this._hasEvent(e)){var n=this._events[e].indexOf(t);~n&&this._events[e].splice(n,1)}}},{key:"emit",value:function(e){for(var t=this,n=arguments.length,r=new Array(n>1?n-1:0),o=1;o<n;o++)r[o-1]=arguments[o];this._hasEvent(e)&&this._events[e].map((function(e){return e.apply(t,r)}))}},{key:"_hasEvent",value:function(e){return Array.isArray(this._events[e])}}]),e}();var eC=function(e){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&jO(e,t)}(n,e);var t=function(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=HO(e);if(t){var o=HO(this).constructor;n=Reflect.construct(r,arguments,o)}else n=r.apply(this,arguments);return zO(this,n)}}(n);function n(e){var r;return MO(this,n),(r=t.call(this))._messages={},r._localeData={},null!=e.missing&&(r._missing=e.missing),null!=e.messages&&r.load(e.messages),null!=e.localeData&&r.loadLocaleData(e.localeData),null==e.locale&&null==e.locales||r.activate(e.locale,e.locales),r}return BO(n,[{key:"_loadLocaleData",value:function(e,t){null==this._localeData[e]?this._localeData[e]=t:Object.assign(this._localeData[e],t)}},{key:"loadLocaleData",value:function(e,t){var n=this;null!=t?this._loadLocaleData(e,t):Object.keys(e).forEach((function(t){return n._loadLocaleData(t,e[t])})),this.emit("change")}},{key:"_load",value:function(e,t){null==this._messages[e]?this._messages[e]=t:Object.assign(this._messages[e],t)}},{key:"load",value:function(e,t){var n=this;null!=t?this._load(e,t):Object.keys(e).forEach((function(t){return n._load(t,e[t])})),this.emit("change")}},{key:"activate",value:function(e,t){this._locale=e,this._locales=t,this.emit("change")}},{key:"_",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=n.message,o=n.formats,a=n.context;VO(e)||(t=e.values||t,r=e.message,a=e.context,e=e.id);var i,s=!a&&!this.messages[e],u=a&&!this.messages[a][e],c=u||s,l=this._missing;return l&&c?UO(l)?l(this._locale,e,a):l:(c&&this.emit("missing",{id:e,context:a,locale:this._locale}),i=a&&!u?this.messages[a][e]||r||e:this.messages[e]||r||e,VO(i)&&YO.test(i)?JSON.parse('"'.concat(i,'"')):VO(i)?i:ZO(i,this._locale,this._locales,this.localeData)(t,o))}},{key:"date",value:function(e,t){return XO(this._locales||this._locale,t)(e)}},{key:"number",value:function(e,t){return KO(this._locales||this._locale,t)(e)}},{key:"locale",get:function(){return this._locale}},{key:"locales",get:function(){return this._locales}},{key:"messages",get:function(){var e;return null!==(e=this._messages[this._locale])&&void 0!==e?e:{}}},{key:"localeData",get:function(){var e;return null!==(e=this._localeData[this._locale])&&void 0!==e?e:{}}}]),n}(QO);var tC=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return new eC(e)}();const nC=tC;var rC=n(8964),oC=n(992),aC=n(7555),iC=n(4973),sC=n(4413),uC=n(9827),cC=n(3090),lC=n(2443),fC=n(1471),hC=n(5626),pC=n(8828),dC=n(2262),vC=n(2643),mC=n(7162),gC=n(8826),yC=n(4157),bC=n(5632),wC=n(8646),xC=n(9843),EC=n(4829),_C=n(8698),kC=n(606),OC=n(99),CC=n(8868),IC=n(9194),RC=n(8048),SC=n(8916),AC=n(235),PC=n(8706),TC=n(1925),DC=n(4565),NC=n(7129);const MC={[h.AR]:AC.messages,[h.CS]:oC.messages,[h.DA]:aC.messages,[h.DE]:iC.messages,[h.EN]:rC.messages,[h.ES]:sC.messages,[h.ES_419]:uC.messages,[h.ET]:kC.messages,[h.FI]:cC.messages,[h.FR]:lC.messages,[h.HE]:NC.messages,[h.HI]:fC.messages,[h.HY]:TC.messages,[h.ID]:RC.messages,[h.IT]:hC.messages,[h.JA]:pC.messages,[h.KO]:SC.messages,[h.LT]:CC.messages,[h.LV]:PC.messages,[h.MS]:IC.messages,[h.NB]:vC.messages,[h.NL]:dC.messages,[h.PL]:mC.messages,[h.PT]:gC.messages,[h.RO]:yC.messages,[h.RU]:bC.messages,[h.SV]:wC.messages,[h.TH]:xC.messages,[h.TR]:EC.messages,[h.UK]:OC.messages,[h.UR]:DC.messages,[h.VI]:_C.messages},FC=h.EN;function BC(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";const[t,n=""]=e.split("-");return{language:t,region:n}}function jC(e){const{language:t,region:n}=BC(e);return[t.toLowerCase(),n.toUpperCase()].filter(Boolean).join("-")}const LC=e=>{let{language:t,children:n}=e;const r=function(){const e=jC(arguments.length>0&&void 0!==arguments[0]?arguments[0]:"");if(e&&Object.keys(MC).includes(e))return e;const{language:t}=BC(e);if(t&&Object.keys(MC).includes(t))return t;return Object.keys(MC).find((e=>BC(e).language===t))||FC}(t);return nC.load(r,(e=>MC[e])(r)),nC.activate(r),_().createElement(D,{i18n:nC},n)};LC.defaultProps={language:FC},LC.propTypes={language:O().oneOf(Object.values(h)),children:O().node.isRequired};const zC=LC,HC=e=>{const{language:t,onError:n}=e;return _().createElement(I,{onError:n},_().createElement(zC,{language:t},_().createElement(NO,e)))}})(),module.exports=r})();