UNPKG

handsfree

Version:

A Face Pointer and Pose Estimator for interacting with pages, desktops, robots, and more via gestures

158 lines (157 loc) 70.6 kB
/** * Jeeliz Weboji - https://github.com/jeeliz/jeelizWeboji * * Copyright 2018 Jeeliz ( https://jeeliz.com ) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ var JEEFACETRANSFERAPI=(function(){function da(b){var c=new XMLHttpRequest;c.open("GET",a.Bb+a.neuralNetworkPath,!0);c.withCredentials=!1;c.onreadystatechange=function(){4!==c.readyState||200!==c.status&&0!==c.status||b(c.responseText)};c.send()}function ea(){for(var b=a.vc,c=Array(b),f=0;f<b;++f)c[f]=0;return c}function ma(b,c){if(0===c||"object"!==typeof b)return b;b=Object.assign({},b);c=void 0===c||-1===c?-1:c-1;for(var f in b)b[f]=ma(b[f],c);return b} function na(b,c,f){b=Math.min(Math.max((f-b)/(c-b),0),1);return b*b*(3-2*b)}function qa(b,c,f){return Math.min(Math.max((f-b)/(c-b),0),1)}function ra(b,c,f,g){return Math.pow(Math.min(Math.max((g-b)/(c-b),0),1),f)} function ta(b){switch(b){case "relu":return"gl_FragColor=max(vec4(0.,0.,0.,0.),gl_FragColor);";case "elu":return"gl_FragColor=mix(exp(-abs(gl_FragColor))-vec4(1.,1.,1.,1.),gl_FragColor,step(0.,gl_FragColor));";case "elu01":return"gl_FragColor=mix(0.1*exp(-abs(gl_FragColor))-vec4(0.1,0.1,0.1,0.1),gl_FragColor,step(0.,gl_FragColor));";case "arctan":return"gl_FragColor=atan(3.14159265359*texture2D(u0,vUV))/3.14159265359;";case "copy":return"";default:return!1}} function Aa(b,c){var f=c%8;return b[(c-f)/8]>>7-f&1} function Ba(b){var c=JSON.parse(b);b=c.ne;var f=c.nf,g=c.n;var u="undefined"===typeof btoa?Buffer.from(c.data,"base64").toString("latin1"):atob(c.data);var h=u.length;c=new Uint8Array(h);for(var v=0;v<h;++v)c[v]=u.charCodeAt(v);u=new Float32Array(g);h=new Float32Array(f);v=b+f+1;for(var m=0;m<g;++m){for(var e=v*m,t=0===Aa(c,e)?1:-1,d=e+1,l=1,p=0,k=d+b-1;k>=d;--k)p+=l*Aa(c,k),l*=2;d=p;e=e+1+b;l=h.length;p=0;for(k=e;k<e+l;++k)h[p]=Aa(c,k),++p;for(l=e=0;l<f;++l)e+=h[l]*Math.pow(2,-l-1);u[m]=0===e&&0=== d?0:t*(1+e)*Math.pow(2,1+d-Math.pow(2,b-1))}return u} var E=function(){function b(w,r,B){r=w.createShader(r);w.shaderSource(r,B);w.compileShader(r);return w.getShaderParameter(r,w.COMPILE_STATUS)?r:!1}function c(w,r,B){r=b(w,w.VERTEX_SHADER,r);B=b(w,w.FRAGMENT_SHADER,B);w===C&&v.push(r,B);var O=w.createProgram();w.attachShader(O,r);w.attachShader(O,B);w.linkProgram(O);return O}function f(w,r){void 0===r.ia&&(r.ia="precision lowp float;attribute vec2 a0;varying vec2 vv0;void main(){gl_Position=vec4(a0,0.,1.),vv0=a0*.5+vec2(.5,.5);}");void 0===r.la&&(r.la= ["a0"]);void 0===r.fa&&(r.fa=[2]);if(void 0===r.precision||"highp"===r.precision)r.precision=l;r.id=t++;void 0!==r.Jc&&(r.Jc.forEach(function(O,A){r.h=r.h.replace(O,r.Ea[A])}),r.Jc.splice(0));r.zb=0;r.fa.forEach(function(O){r.zb+=4*O});r.Z=c(w,r.ia,"precision "+r.precision+" float;\n"+r.h);r.s={};r.i.forEach(function(O){r.s[O]=w.getUniformLocation(r.Z,O)});r.attributes={};r.ga=[];r.la.forEach(function(O){var A=w.getAttribLocation(r.Z,O);r.attributes[O]=A;r.ga.push(A)});if(r.j){w.useProgram(r.Z);e= r;m=r.id;for(var B in r.j)w.uniform1i(r.s[B],r.j[B])}r.gb=!0}function g(w){Ca.he(V);m!==w.id&&(V.K(),m=w.id,e=w,C.useProgram(w.Z),w.ga.forEach(function(r){0!==r&&C.enableVertexAttribArray(r)}))}function u(w,r,B){f(w,r,B);w.useProgram(r.Z);w.enableVertexAttribArray(0);m=-1;return e=r}function h(){return{h:"uniform sampler2D u1;varying vec2 vv0;void main(){gl_FragColor=texture2D(u1,vv0);}",i:["u1"],j:{u1:0}}}var v=[],m=-1,e=null,t=0,d=!1,l="highp",p=["u1"],k=["u0"],D={u1:0},K={u0:0},J={u1:0,u2:1},M= {u3:0},F={s0:h(),s1:{h:"uniform sampler2D u1;varying vec2 vv0;void main(){gl_FragColor=texture2D(u1,vv0);}",i:p,j:D,precision:"lowp"},s2:{h:"uniform sampler2D u1,u2;varying vec2 vv0;void main(){vec4 a=texture2D(u2,vv0),b=texture2D(u1,vv0);gl_FragColor=a*b;}",i:["u1","u2"],j:J},s3:{h:"uniform sampler2D u1;varying vec2 vv0;const vec4 f=vec4(1.,1.,1.,1.);void main(){vec4 a=texture2D(u1,vv0);gl_FragColor=a.r*f;}",i:p,j:D},s4:{h:"uniform sampler2D u1,u2;varying vec2 vv0;const vec4 f=vec4(1.,1.,1.,1.);void main(){vec4 a=texture2D(u2,vv0),b=texture2D(u1,vv0);gl_FragColor=a.a*b.r*f;}", i:["u1","u2"],j:J},s5:{h:"uniform sampler2D u1;varying vec2 vv0;void main(){gl_FragColor=texture2D(u1,vec2(1.-vv0.x,vv0.y));}",i:p,j:D},s6:{h:"uniform sampler2D u1;varying vec2 vv0;void main(){gl_FragColor=texture2D(u1,vec2(vv0.x,1.-vv0.y));}",i:p,j:D},s7:{h:"uniform sampler2D u0;uniform float u4;varying vec2 vv0;void main(){vec4 a=texture2D(u0,vv0);gl_FragColor=a*u4;}",i:["u0","u4"],j:K},s8:{h:"uniform sampler2D u0;uniform float u4;varying vec2 vv0;const vec4 f=vec4(.25,.25,.25,.25),g=vec4(1.,1.,1.,1.);void main(){vec4 a=texture2D(u0,vv0);float b=dot(a*u4,f);gl_FragColor=b*g;}", i:["u0","u4"],j:K},s9:{h:"uniform sampler2D u1;varying vec2 vv0;const vec4 e=vec4(1.,1.,1.,1.);void main(){float a=.25*dot(e,texture2D(u1,vv0));gl_FragColor=a*e;}",i:p,j:D},s10:{h:"uniform sampler2D u1,u5;uniform float u6;const vec4 f=vec4(1.,1.,1.,1.);varying vec2 vv0;void main(){vec4 a=texture2D(u1,vv0),b=texture2D(u5,vv0);gl_FragColor=mix(b,a,u6*f);}",i:["u1","u5","u6"],j:{u1:0,u5:1}},s11:{h:"uniform sampler2D u1;uniform vec2 u7;varying vec2 vv0;void main(){gl_FragColor=.25*(texture2D(u1,vv0+u7)+texture2D(u1,vv0+u7*vec2(1.,-1.))+texture2D(u1,vv0+u7*vec2(-1.,-1.))+texture2D(u1,vv0+u7*vec2(-1.,1.)));}", i:["u1","u7"],j:D},s12:{h:"uniform sampler2D u1;uniform vec4 u8;varying vec2 vv0;float g(float a,float b){a=floor(a)+.5;return floor(a/exp2(b));}float h(float a,float b){return floor(a*exp2(b)+.5);}float i(float a,float b){return mod(a,h(1.,b));}float e(float c,float a,float b){a=floor(a+.5),b=floor(b+.5);return i(g(c,a),b-a);}vec4 j(float a){if(a==0.)return vec4(0.,0.,0.,0.);float k=128.*step(a,0.);a=abs(a);float c=floor(log2(a)),l=c+127.,b=(a/exp2(c)-1.)*8388608.,d=l/2.,m=fract(d)*2.,n=floor(d),o=e(b,0.,8.),p=e(b,8.,16.),q=m*128.+e(b,16.,23.),r=k+n;return vec4(o,p,q,r)/255.;}void main(){float a=dot(texture2D(u1,vv0),u8);gl_FragColor=j(a);}", i:["u1","u8"],j:D},s13:{h:"uniform sampler2D u0;varying vec2 vv0;const vec4 e=vec4(1.,1.,1.,1.);void main(){vec4 a=texture2D(u0,vv0),b=e/(e+exp(-a));gl_FragColor=b;}",i:k,j:K},s14:{h:"uniform sampler2D u0;varying vec2 vv0;const vec4 f=vec4(0.,0.,0.,0.);void main(){vec4 a=texture2D(u0,vv0);gl_FragColor=max(f,a);}",i:k,j:K},s15:{h:"uniform sampler2D u0;varying vec2 vv0;const vec4 f=vec4(1.,1.,1.,1.);void main(){vec4 a=texture2D(u0,vv0);gl_FragColor=mix(exp(-abs(a))-f,a,step(0.,a));}",i:k,j:K},s16:{h:"uniform sampler2D u0;varying vec2 vv0;const vec4 f=vec4(1.,1.,1.,1.);void main(){vec4 a=texture2D(u0,vv0),b=exp(-abs(a))-f;gl_FragColor=mix(.1*b,a,step(0.,a));}", i:k,j:K},s17:{h:"uniform sampler2D u0,u6,u9;varying vec2 vv0;const vec4 f=vec4(1.,1.,1.,1.);void main(){vec4 a=texture2D(u0,vv0),c=texture2D(u6,vv0),d=texture2D(u9,vv0),b=a/d;gl_FragColor=c*mix(exp(-abs(b))-f,b,step(0.,a));}",i:["u0","u6","u9"],j:{u0:0,u6:1,u9:2}},s18:{h:"uniform sampler2D u0;const float e=3.141593;varying vec2 vv0;void main(){gl_FragColor=atan(e*texture2D(u0,vv0))/e;}",i:k,j:K},s19:{h:"uniform sampler2D u0;varying vec2 vv0;const vec4 f=vec4(1.,1.,1.,1.);void main(){vec4 a=texture2D(u0,vv0),b=log(f+a);gl_FragColor=b;}", i:k,j:K},s20:{h:"uniform sampler2D u0,u10;uniform float u11;const vec2 e=vec2(.5,.5);const float f=1e-5;const vec4 g=vec4(1.,1.,1.,1.),i=vec4(0.,0.,0.,0.);varying vec2 vv0;void main(){vec4 a=texture2D(u10,e);float b=u11*u11;vec4 c=max(b*a,f*g);gl_FragColor=texture2D(u0,vv0)/c;}",i:["u0","u10","u11"],j:{u0:0,u10:1}},s21:{h:"uniform sampler2D u1;uniform vec2 u12;varying vec2 vv0;void main(){float a=u12.x*u12.y;vec2 b=floor(vv0*a)/a,c=fract(vv0*a),d=floor(b*u12.y),f=floor(u12.x*fract(b*u12.y)),g=(f*u12.y+d)/a;gl_FragColor=texture2D(u1,g+c/a);}", i:["u1","u12"],j:D},s22:{h:"uniform sampler2D u13,u14,u15;varying vec2 vv0;void main(){vec4 a=texture2D(u15,vv0);vec2 b=a.rg,c=a.ba;vec4 d=texture2D(u13,b),f=texture2D(u14,c);gl_FragColor=d*f;}",i:["u13","u14","u15"],j:{u14:0,u13:1,u15:2}},s23:{h:"uniform float u16;uniform sampler2D u13,u14;varying vec2 vv0;void main(){vec2 a=fract(vv0*u16);vec4 b=texture2D(u13,vv0),c=texture2D(u14,a);gl_FragColor=b*c;}",i:["u14","u13","u16"],j:{u14:0,u13:1}},s24:{h:"uniform float u16;uniform sampler2D u13,u14,u17,u18,u19,u20;varying vec2 vv0;const vec4 e=vec4(1.,1.,1.,1.),g=vec4(1e-3,1e-3,1e-3,1e-3);void main(){vec2 h=vv0*u16,l=floor(h),c=h-l;vec4 m=texture2D(u13,vv0),d=texture2D(u14,c),a=texture2D(u20,vv0);a=a*255.;vec4 n=texture2D(u17,c),o=texture2D(u18,c),p=texture2D(u19,c),i=step(-g,-a),b=e-i,j=b*step(-e-g,-a);b*=e-j;vec4 k=b*step(-2.*e-g,-a);b*=e-k;vec4 q=b;d=i*d+j*n+k*o+q*p,gl_FragColor=m*d;}", i:"u13 u14 u16 u20 u17 u18 u19".split(" "),j:{u14:0,u13:1,u20:3,u17:4,u18:5,u19:6}},s25:{h:"uniform sampler2D u13,u14,u21;uniform float u16,u22,u23,u24;varying vec2 vv0;const vec2 j=vec2(1.,1.);void main(){vec2 a=floor(u22*vv0),b=u22*vv0-a;float c=u16/u22;vec2 d=floor(b*c),f=b*c-d,g=(a+f)/u22;float k=u22*u24/u16;vec2 l=k*d,h=(l+f*u23)/u24,i=step(h,j);vec4 m=texture2D(u13,g),n=texture2D(u14,h),o=m*n*i.x*i.y,p=texture2D(u21,g);gl_FragColor=o*u23*u23+p;}",i:"u13 u14 u16 u22 u23 u24 u21".split(" "),j:{u14:0, u13:1,u21:2}},s26:{h:"uniform sampler2D u13,u14;varying vec2 vv0;void main(){vec4 a=texture2D(u13,vv0),b=texture2D(u14,vv0);gl_FragColor=a*b;}",i:["u13","u14"],j:{u14:0,u13:1}},s27:{h:"uniform sampler2D u1,u21;uniform float u25;varying vec2 vv0;void main(){gl_FragColor=texture2D(u21,vv0)+u25*texture2D(u1,vv0);}",i:["u1","u21","u25"],j:{u1:0,u21:1}},s28:{h:"varying vec2 vv0;uniform sampler2D u1;const vec4 f=vec4(1.,1.,1.,1.),g=vec4(.299,.587,.114,0.);void main(){vec4 a=texture2D(u1,vv0);gl_FragColor=dot(a,g)*f;}", i:p,j:D,precision:"lowp"},s29:{h:"varying vec2 vv0;uniform sampler2D u1;uniform float u26;const vec3 f=vec3(.299,.587,.114);void main(){vec3 a=texture2D(u1,vv0).rgb,b=texture2D(u1,vv0+vec2(0.,u26)).rgb,c=texture2D(u1,vv0+vec2(u26,u26)).rgb,d=texture2D(u1,vv0+vec2(u26,0.)).rgb;gl_FragColor=vec4(dot(a,f),dot(b,f),dot(c,f),dot(d,f));}",i:["u1","u26"],j:D,precision:"lowp"},s30:{h:"varying vec2 vv0;uniform sampler2D u1;uniform float u26;const vec3 f=vec3(.299,.587,.114);void main(){vec3 a=texture2D(u1,vv0).rgb,b=texture2D(u1,vv0+vec2(0.,u26)).rgb,c=texture2D(u1,vv0+vec2(u26,u26)).rgb,d=texture2D(u1,vv0+vec2(u26,0.)).rgb;gl_FragColor=vec4(a.r,b.g,c.b,dot(d,f));}", i:["u1","u26"],j:D,precision:"lowp"},s31:{h:"varying vec2 vv0;uniform sampler2D u1,u2;uniform float u27;const vec4 f=vec4(1.,1.,1.,1.);void main(){vec4 a=vec4(0.);a-=texture2D(u1,vec2(vv0.x-u27,vv0.y-u27))*1.,a-=texture2D(u1,vec2(vv0.x-u27,vv0.y))*2.,a-=texture2D(u1,vec2(vv0.x-u27,vv0.y+u27))*1.,a+=texture2D(u1,vec2(vv0.x+u27,vv0.y-u27))*1.,a+=texture2D(u1,vec2(vv0.x+u27,vv0.y))*2.,a+=texture2D(u1,vec2(vv0.x+u27,vv0.y+u27))*1.;vec4 b=vec4(0.);b-=texture2D(u1,vec2(vv0.x-u27,vv0.y-u27))*1.,b-=texture2D(u1,vec2(vv0.x,vv0.y-u27))*2.,b-=texture2D(u1,vec2(vv0.x+u27,vv0.y-u27))*1.,b+=texture2D(u1,vec2(vv0.x-u27,vv0.y+u27))*1.,b+=texture2D(u1,vec2(vv0.x,vv0.y+u27))*2.,b+=texture2D(u1,vec2(vv0.x+u27,vv0.y+u27))*1.;vec3 c=sqrt(a.rgb*a.rgb+b.rgb*b.rgb);vec4 e=vec4(c,texture2D(u1,vv0).a),g=texture2D(u2,vv0);gl_FragColor=g.a*e.r*f;}", i:["u1","u2","u27"],j:J},s32:{h:"varying vec2 vv0;uniform sampler2D u1,u2;uniform float u27;const vec4 j=vec4(1.,1.,1.,1.);const vec2 k=vec2(1.,1.);void main(){float h=0.;vec2 l=k*u27,a,b;float c,d,i=0.;for(float e=-4.;e<=4.;e+=1.)for(float f=-4.;f<=4.;f+=1.)a=vec2(e,f),c=length(a)/2.,d=exp(-c*c),b=vv0+l*a,h+=d*texture2D(u1,b).r,i+=d;vec4 m=texture2D(u2,vv0);gl_FragColor=m.a*(texture2D(u1,b).r-h/i)*j;}",i:["u1","u2","u27"],j:J},s33:{h:"uniform sampler2D u3;uniform vec2 u7;varying vec2 vv0;vec4 e(vec4 a,vec4 b){vec4 c=step(a,b);return mix(a,b,c);}const vec2 g=vec2(.5,.5),h=vec2(1.,0.),i=vec2(0.,1.);void main(){vec2 a=vv0-u7*g;vec4 b=texture2D(u3,a),c=texture2D(u3,a+u7*h),d=texture2D(u3,a+u7*i),j=texture2D(u3,a+u7),k=e(b,c),l=e(d,j);gl_FragColor=e(k,l);}", i:["u3","u7"],j:M},s34:{h:"uniform sampler2D u3;uniform vec2 u7;varying vec2 vv0;const vec2 k=vec2(1.,0.),l=vec2(0.,1.),m=vec2(2.,0.),n=vec2(0.,2.);vec4 e(vec4 a,vec4 b){vec4 c=step(a,b);return mix(a,b,c);}vec4 f(vec2 a){vec4 b=texture2D(u3,a),c=texture2D(u3,a+u7*k),d=texture2D(u3,a+u7*l),g=texture2D(u3,a+u7),h=e(b,c),i=e(d,g);return e(h,i);}void main(){vec2 a=vv0+u7*vec2(-.55,-1.05);vec4 b=f(a),c=f(a+u7*m),d=f(a+u7*2.),g=f(a+u7*n),h=e(b,c),i=e(d,g);gl_FragColor=e(h,i);}",i:["u3","u7"],j:M},s35:{h:"uniform sampler2D u1;varying vec2 vv0;void main(){vec4 a=texture2D(u1,vv0);gl_FragColor=a*a;}", i:["u1"],j:D,precision:"lowp"},s36:{h:"uniform sampler2D u1;uniform vec2 u7;varying vec2 vv0;const float e=15444.;void main(){vec4 a=1001./e*texture2D(u1,vv0-3.*u7)+2002./e*texture2D(u1,vv0-2.*u7)+3003./e*texture2D(u1,vv0-u7)+3432./e*texture2D(u1,vv0)+3003./e*texture2D(u1,vv0+u7)+2002./e*texture2D(u1,vv0+2.*u7)+1001./e*texture2D(u1,vv0+3.*u7);gl_FragColor=a;}",i:["u7","u1"],j:D,precision:"lowp"},s37:{h:"uniform sampler2D u1,u28,u29;varying vec2 vv0;const vec4 f=vec4(1.,1.,1.,1.);const float g=.1;void main(){vec4 a=texture2D(u28,vv0),b=texture2D(u29,vv0),c=texture2D(u1,vv0),d=max(f*g,b-a*a),h=sqrt(d);gl_FragColor=(c-a)/h;}", i:["u1","u28","u29"],j:{u1:0,u28:1,u29:2}}},I={s38:{h:"uniform float u16,u30;uniform sampler2D u13,u14,u21;varying vec2 vv0;const vec2 ZERO2=vec2(0.,0.),ONE2=vec2(1.,1.),HALF2=vec2(.5,.5),EPS2=vec2(1e-5,1e-5);void main(){vec4 sum=texture2D(u21,vv0);float toSparsity=1.1111;vec2 uvFrom,uvWeight,xyPatch=ZERO2,eps2=EPS2/u16,xyTo=floor(vv0*u16+eps2);float weightSize=toSparsity*u16;vec2 halfFromSparsity=ONE2*(toSparsity-1.)/2.;for(float patch_x=0.;patch_x<1.1111;patch_x+=1.){xyPatch.x=patch_x;for(float patch_y=0.;patch_y<1.1111;patch_y+=1.)xyPatch.y=patch_y,uvFrom=(xyTo+HALF2+u30*(xyPatch-halfFromSparsity))/u16,uvFrom+=step(uvFrom,-eps2),uvFrom-=step(ONE2-eps2,uvFrom),uvWeight=(xyTo*toSparsity+xyPatch+HALF2)/weightSize,sum+=texture2D(u13,uvWeight)*texture2D(u14,uvFrom);}gl_FragColor=sum,gl_FragColor*=2.2222;}", i:["u16","u13","u14","u21","u30"],Ea:["1.1111","gl_FragColor\\*=2.2222;"]},s39:{h:"uniform float u16,u30,u24;uniform sampler2D u13,u14,u21;varying vec2 vv0;const vec2 ZERO2=vec2(0.,0.),ONE2=vec2(1.,1.),HALF2=vec2(.5,.5),EPS2=vec2(1e-4,1e-4);void main(){vec4 sum=texture2D(u21,vv0);float fromSparsity=1.1111,shrinkFactor=3.3333;vec2 uvFrom,uvWeight,xyFrom,xyPatchTo,xyPatch=ZERO2,xyShrink=ZERO2,eps2=EPS2/u24,xyTo=floor(vv0*u16+eps2);float weightSize=fromSparsity*u24;vec2 halfFromSparsity=ONE2*(fromSparsity-1.)/2.;float toSparsity=weightSize/u16;vec2 xyFrom0=xyTo*shrinkFactor;for(float patch_x=0.;patch_x<1.1111;patch_x+=1.){xyPatch.x=patch_x;for(float patch_y=0.;patch_y<1.1111;patch_y+=1.){xyPatch.y=patch_y;for(float shrink_x=0.;shrink_x<3.3333;shrink_x+=1.){xyShrink.x=shrink_x;for(float shrink_y=0.;shrink_y<3.3333;shrink_y+=1.)xyShrink.y=shrink_y,xyFrom=xyFrom0+xyShrink+shrinkFactor*u30*(xyPatch-halfFromSparsity),uvFrom=(xyFrom+HALF2)/u24,uvFrom+=step(uvFrom,-eps2),uvFrom-=step(ONE2-eps2,uvFrom),xyPatchTo=xyPatch*shrinkFactor+xyShrink,uvWeight=(xyTo*toSparsity+xyPatchTo+HALF2)/weightSize,sum+=texture2D(u13,uvWeight)*texture2D(u14,uvFrom);}}}gl_FragColor=sum,gl_FragColor*=2.2222;}", i:"u16 u24 u13 u14 u21 u30".split(" "),Ea:["1.1111","gl_FragColor\\*=2.2222;","3.3333"]}},L=null,Y=null,V={ya:function(){return d},o:function(){if(!d){L=ma(F,2);Y=ma(I,2);l="highp";for(var w in L)f(C,L[w],w);E.set("s0");C.enableVertexAttribArray(0);d=!0}},Tc:function(w){w.forEach(function(r){V.Eb(r)})},Eb:function(w){L[w.id]=w;f(C,w,w.id)},ec:function(w,r,B){r||(r=w);L[r]=Object.create(Y[w]);L[r].Jd=!0;Y[w].Ea&&Y[w].Ea.forEach(function(O,A){L[r].h=L[r].h.replace(new RegExp(O,"g"),B[A])});f(C,L[r], r)},set:function(w){g(L[w])},Fa:function(w){return u(w,h(),"s40")},rb:function(w){return u(w,{h:"void main(){gl_FragColor=vec4(.5,.5,.5,.5);}",i:[],precision:"highp"},"s41")},pd:function(w){return"undefined"===typeof L[w]?!1:L[w].gb},K:function(){-1!==m&&(m=-1,e.ga.forEach(function(w){0!==w&&C.disableVertexAttribArray(w)}))},tb:function(){var w=0;e.ga.forEach(function(r,B){B=e.fa[B];C.vertexAttribPointer(r,B,C.FLOAT,!1,e.zb,w);w+=4*B})},He:function(){C.enableVertexAttribArray(0)},Ga:function(){V.Ha(C)}, Ha:function(w){w.vertexAttribPointer(e.ga[0],2,w.FLOAT,!1,8,0)},kf:function(w,r){C.uniform1i(e.s[w],r)},I:function(w,r){C.uniform1f(e.s[w],r)},ha:function(w,r,B){C.uniform2f(e.s[w],r,B)},lf:function(w,r){C.uniform2fv(e.s[w],r)},Mc:function(w,r){C.uniform3fv(e.s[w],r)},mf:function(w,r,B,O){C.uniform3f(e.s[w],r,B,O)},pf:function(w,r,B,O,A){C.uniform4f(e.s[w],r,B,O,A)},sb:function(w,r){C.uniform4fv(e.s[w],r)},qf:function(w,r){C.uniformMatrix2fv(e.s[w],!1,r)},rf:function(w,r){C.uniformMatrix3fv(e.s[w], !1,r)},sf:function(w,r){C.uniformMatrix4fv(e.s[w],!1,r)},G:function(w,r){V.set(w);r.forEach(function(B){switch(B.type){case "4f":C.uniform4fv(e.s[B.name],B.value);break;case "3f":C.uniform3fv(e.s[B.name],B.value);break;case "2f":C.uniform2fv(e.s[B.name],B.value);break;case "1f":C.uniform1f(e.s[B.name],B.value);break;case "1i":C.uniform1i(e.s[B.name],B.value);break;case "mat2":C.uniformMatrix2fv(e.s[B.name],!1,B.value);break;case "mat3":C.uniformMatrix3fv(e.s[B.name],!1,B.value);break;case "mat4":C.uniformMatrix4fv(e.s[B.name], !1,B.value)}})},Re:function(){return"lowp"},m:function(){C.disableVertexAttribArray(0);V.K();for(var w in L){var r=L[w];r.gb&&(r.gb=!1,C.deleteProgram(r.Z));r.Jd&&delete L[w]}v.forEach(function(B){C.deleteShader(B)});v.splice(0);t=0;d=!1;e=null;m=-1}};return V}(),C=null,Ka=function(){function b(l){console.log("ERROR in ContextFF: ",l);return!1}function c(l){function p(){Ha.m();D.getExtension("WEBGL_lose_context").loseContext()}if(navigator.userAgent&&-1!==navigator.userAgent.indexOf("forceWebGL1"))return!1; var k=document.createElement("canvas");k.setAttribute("width",1);k.setAttribute("height",1);var D=null;try{D=k.getContext("webgl2",l)}catch(K){return!1}if(!D)return!1;f(D);Ia.Ob(D);l=Ia.Ua(D);if(!l.T&&!l.U)return p(),!1;l=Ha.Jb(D,l);p();return l?!0:!1}function f(l){l.clearColor(0,0,0,0);l.disable(l.DEPTH_TEST);l.disable(l.BLEND);l.disable(l.DITHER);l.disable(l.STENCIL_TEST);l.disable(l.CULL_FACE);l.GENERATE_MIPMAP_HINT&&l.hint(l.GENERATE_MIPMAP_HINT,l.FASTEST);l.disable(l.SAMPLE_ALPHA_TO_COVERAGE); l.disable(l.SAMPLE_COVERAGE);l.depthFunc(l.LEQUAL);l.clearDepth(1)}var g=null,u=null,h=null,v=null,m=!0,e=null,t=null,d={A:function(){return g.width},M:function(){return g.height},ta:function(){return g},Je:function(){return C},V:function(){return m},flush:function(){C.flush()},td:function(){e||(e=new Uint8Array(g.width*g.height*4));C.readPixels(0,0,g.width,g.height,C.RGBA,C.UNSIGNED_BYTE,e);return e},Le:function(){return g.toDataURL("image/jpeg")},Me:function(){Ja.J();u||(u=document.createElement("canvas"), h=u.getContext("2d"));u.width=g.width;u.height=g.height;for(var l=d.td(),p=h.createImageData(u.width,u.height),k=u.width,D=u.height,K=p.data,J=0;J<D;++J)for(var M=D-J-1,F=0;F<k;++F){var I=4*(J*k+F),L=4*(M*k+F);K[I]=l[L];K[I+1]=l[L+1];K[I+2]=l[L+2];K[I+3]=l[L+3]}h.putImageData(p,0,0);return u.toDataURL("image/png")},Ke:function(l){!u&&l&&(u=document.createElement("canvas"),h=u.getContext("2d"));var p=l?u:document.createElement("canvas");p.width=g.width;p.height=g.height;(l?h:p.getContext("2d")).drawImage(g, 0,0);return p},o:function(l){l.Nb&&!l.Mb?g=document.getElementById(l.Nb):l.Mb&&(g=l.Mb);g||(g=document.createElement("canvas"));g.width=l&&void 0!==l.width?l.width:512;g.height=l&&void 0!==l.height?l.height:512;"undefined"===typeof l&&(l={});void 0===l.premultipliedAlpha&&(l.premultipliedAlpha=!1);void 0===l.fb&&(l.fb=!0);void 0===l.antialias&&(l.antialias=!1);if(C)m=C instanceof WebGL2RenderingContext;else{m=!0;var p={antialias:l.antialias,alpha:!0,preserveDrawingBuffer:!0,premultipliedAlpha:l.premultipliedAlpha, stencil:!1,depth:l.fb};navigator&&navigator.userAgent&&-1!==navigator.userAgent.indexOf("noAntialiasing")&&(p.antialias=!1);var k=c(p);!k&&p.antialias&&(p.antialias=!1,k=c(p));k&&(C=g.getContext("webgl2",p));C?m=!0:((C=g.getContext("webgl",p))||(C=g.getContext("experimental-webgl",p)),m=!1)}if(!C)return b("WebGL1 and 2 are not enabled");(v=C.getExtension("WEBGL_lose_context"))&&l.xc&&(t=l.xc,g.addEventListener("webglcontextlost",t,!1));if(!Ia.o())return b("Not enough GL capabilities");f(C);E.o(); H.o();return Ha.Jb(C,Ia.rd())?!0:b("Cannot filter float textures")},m:function(){C&&(Ia.m(),Ha.m());v&&t&&(g.removeEventListener("webglcontextlost",t,!1),v=t=null);C=e=h=u=g=null}};return d}(),Ca=function(){function b(){null===c&&("undefined"!==typeof E?c=E:"undefined"!==typeof JEShaders&&(c=JEShaders))}var c=null;b();return{he:function(f){c!==f&&(c&&c.K(),c=f)},ya:function(){return c.ya()},Ga:function(){return c.Ga()},Ha:function(f){return c.Ha(f)},tb:function(){return c.tb()},K:function(){return c.K()}, set:function(f){return c.set(f)},Fa:function(f){b();return c.Fa(f)},rb:function(f){b();return c.rb(f)},m:function(){return c.m()}}}(),R=function(){function b(n){C.bindTexture(C.TEXTURE_2D,n)}function c(n){r[0]=n;n=B[0];var N=n>>16&32768,G=n>>12&2047,q=n>>23&255;return 103>q?N:142<q?N|31744|((255==q?0:1)&&n&8388607):113>q?(G|=2048,N|(G>>114-q)+(G>>113-q&1)):N=(N|q-112<<10|G>>1)+(G&1)}function f(n){var N=new Uint16Array(n.length);n.forEach(function(G,q){N[q]=c(G)});return N}function g(){if(null!==O.bb)return O.bb; var n=h(f([1,1,1,1]));return null===n?!0:O.bb=n}function u(){if(null!==O.cb)return O.cb;var n=h(new Uint8Array([255,255,255,255]));return null===n?!0:O.cb=n}function h(n){if(!Ca.ya()||!K)return null;var N=null;try{var G=C.getError();if("FUCKING_BIG_ERROR"===G)return!1;N=A.instance({isFloat:!1,D:!0,array:n,width:1});G=C.getError();if(G!==C.NO_ERROR)return!1}catch(q){return!1}Ja.J();C.viewport(0,0,1,1);C.clearColor(0,0,0,0);C.clear(C.COLOR_BUFFER_BIT);Ca.set("s0");N.Hb(0);H.l(!0,!0);n=new Uint8Array(4); C.readPixels(0,0,1,1,C.RGBA,C.UNSIGNED_BYTE,n);n=.9<n[0];N.remove();Ja.S();return n}var v=0,m=null,e=0,t=null,d=null,l=null,p=null,k=null,D=null,K=!1,J=[],M={isFloat:!1,isPot:!0,isLinear:!1,isMipmap:!1,isAnisotropicFiltering:!1,isMirrorX:!1,isMirrorY:!1,isSrgb:!1,isKeepArray:!1,isFlipY:null,width:0,height:0,url:null,array:null,data:null,C:null,bc:null,Id:!1,D:!1,Y:null,Aa:4,ib:0},F=!1,I=null,L=null,Y=[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1]],V=!1,w=!1,r=new Float32Array(1),B=new Int32Array(r.buffer), O={bb:null,cb:null},A={o:function(){K||(k=[C.RGB,null,C.RGB,C.RGBA],D=[C.RGB,null,C.RGB,C.RGBA],m=[C.TEXTURE0,C.TEXTURE1,C.TEXTURE2,C.TEXTURE3,C.TEXTURE4,C.TEXTURE5,C.TEXTURE6,C.TEXTURE7],V="undefined"!==typeof JEContext,w="undefined"!==typeof Ia,V&&JEContext.df()&&m.push(C.TEXTURE8,C.TEXTURE9),t=[-1,-1,-1,-1,-1,-1,-1,-1],p=[C.UNSIGNED_BYTE,C.FLOAT,C.FLOAT],K=!0)},Ed:function(){if(!d){for(var n=new Float32Array(16384),N=0;16384>N;++N)n[N]=2*Math.random()-1;d={random:A.instance({isFloat:!0,isPot:!0, array:n,width:64}),Qc:A.instance({isFloat:!1,isPot:!0,width:1,array:new Uint8Array([0,0,0,0])})}}A.se()},We:function(){return d.Qc},se:function(){p[1]=Ia.Za(C)},fe:function(){D=k=[C.RGBA,C.RGBA,C.RGBA,C.RGBA]},Zd:function(n,N){E.set("s1");Ja.J();var G=n.A(),q=n.M();C.viewport(0,0,G,q);n.g(0);H.l(!1,!1);C.readPixels(0,0,G,q,C.RGBA,C.UNSIGNED_BYTE,N)},Vb:function(n,N,G,q,aa,ha,ca){n.activeTexture(n.TEXTURE0);var U=n.createTexture();n.bindTexture(n.TEXTURE_2D,U);aa=aa instanceof Float32Array?aa:new Float32Array(aa); 0!==Math.log2(aa.length)%1&&(n.texParameteri(n.TEXTURE_2D,n.TEXTURE_WRAP_S,n.CLAMP_TO_EDGE),n.texParameteri(n.TEXTURE_2D,n.TEXTURE_WRAP_T,n.CLAMP_TO_EDGE));n.texParameteri(n.TEXTURE_2D,n.TEXTURE_MAG_FILTER,n.NEAREST);n.texParameteri(n.TEXTURE_2D,n.TEXTURE_MIN_FILTER,n.NEAREST);n.pixelStorei(n.UNPACK_FLIP_Y_WEBGL,ha);n.texImage2D(n.TEXTURE_2D,0,n.RGBA,G,q,0,n.RGBA,n.FLOAT,aa);n.bindTexture(n.TEXTURE_2D,null);n.pixelStorei(n.UNPACK_FLIP_Y_WEBGL,!1);ca&&(Ja.S(),E.set("s0"));n.viewport(0,0,G,q);n.framebufferTexture2D(n.FRAMEBUFFER, n.COLOR_ATTACHMENT0,n.TEXTURE_2D,N,0);n.bindTexture(n.TEXTURE_2D,U);ca?H.l(!0,!0):H.ra(n);n.deleteTexture(U);K&&(t[0]=-1,l=null,v=0)},Qa:function(n){n!==v&&(C.activeTexture(m[n]),v=n)},instance:function(n){function N(z){var S=C.getError();if("FUCKING_BIG_ERROR"===S)return!1;C.texImage2D(C.TEXTURE_2D,0,ia,fa,ja,z);S=C.getError();S!==C.NO_ERROR&&fa!==C.RGBA&&(fa=C.RGBA,C.texImage2D(C.TEXTURE_2D,0,ia,fa,ja,z));return!0}function G(){if(!Ra){b(x);oa&&C.pixelStorei(C.UNPACK_FLIP_Y_WEBGL,oa);q.isPot?(C.texParameteri(C.TEXTURE_2D, C.TEXTURE_WRAP_S,q.isMirrorX?C.MIRRORED_REPEAT:C.REPEAT),C.texParameteri(C.TEXTURE_2D,C.TEXTURE_WRAP_T,q.isMirrorY?C.MIRRORED_REPEAT:C.REPEAT)):(C.texParameteri(C.TEXTURE_2D,C.TEXTURE_WRAP_S,C.CLAMP_TO_EDGE),C.texParameteri(C.TEXTURE_2D,C.TEXTURE_WRAP_T,C.CLAMP_TO_EDGE));q.isAnisotropicFiltering&&"undefined"!==typeof JESETTINGS&&C.texParameterf(C.TEXTURE_2D,JEContext.Oe().TEXTURE_MAX_ANISOTROPY_EXT,JESETTINGS.we);C.texParameteri(C.TEXTURE_2D,C.TEXTURE_MAG_FILTER,q.isLinear?C.LINEAR:C.NEAREST);q.isLinear? C.texParameteri(C.TEXTURE_2D,C.TEXTURE_MIN_FILTER,q.isMipmap&&!ua?C.NEAREST_MIPMAP_LINEAR:C.LINEAR):C.texParameteri(C.TEXTURE_2D,C.TEXTURE_MIN_FILTER,q.isMipmap&&!ua?C.NEAREST_MIPMAP_NEAREST:C.NEAREST);fa=k[q.Aa-1];ia=D[q.Aa-1];ja=p[ha];if(Ia.V()){var z=C.RGBA32F;fa===C.RGBA&&ja===C.FLOAT?q.isMipmap||q.isLinear?ia=Ha.ud(C):Ia.Kb()?z&&(ia=z):ia=C.RGBA16F||C.RGBA:fa===C.RGB&&ja===C.FLOAT&&z&&(ia=z,fa=C.RGBA)}if(q.D&&!q.isFloat||q.isFloat&&q.isMipmap&&Ha.Nd())(z=C.RGBA16F)&&(ia=z),ja=Ia.Za(C);q.ib&& (Da=q.ib);q.isSrgb&&4===q.Aa&&(fa=JEContext.Ue());if(q.C)N(q.C);else if(q.url)N(T);else if(Z){z=Z;try{"FUCKING_BIG_ERROR"!==C.getError()&&(C.texImage2D(C.TEXTURE_2D,0,ia,P,Q,0,fa,ja,z),C.getError()!==C.NO_ERROR&&(C.texImage2D(C.TEXTURE_2D,0,ia,P,Q,0,fa,ja,null),C.getError()!==C.NO_ERROR&&C.texImage2D(C.TEXTURE_2D,0,C.RGBA,P,Q,0,C.RGBA,C.UNSIGNED_BYTE,null)))}catch(vb){C.texImage2D(C.TEXTURE_2D,0,ia,P,Q,0,fa,ja,null)}q.isKeepArray||(Z=null)}else z=C.getError(),"FUCKING_BIG_ERROR"!==z&&(C.texImage2D(C.TEXTURE_2D, 0,ia,P,Q,0,fa,ja,null),z=C.getError(),z!==C.NO_ERROR&&(fa=C.RGBA,q.D&&ja!==C.FLOAT&&(ja=C.FLOAT,C.texImage2D(C.TEXTURE_2D,0,ia,P,Q,0,fa,ja,null))));if(q.isMipmap)if(!ua&&ba)ba.Ya(),Ea=!0;else if(ua){z=Math.log2(Math.min(P,Q));ya=Array(1+z);ya[0]=x;for(var S=1;S<=z;++S){var ka=Math.pow(2,S),X=P/ka;ka=Q/ka;var va=C.createTexture();b(va);C.texParameteri(C.TEXTURE_2D,C.TEXTURE_MIN_FILTER,C.NEAREST);C.texParameteri(C.TEXTURE_2D,C.TEXTURE_MAG_FILTER,C.NEAREST);C.texImage2D(C.TEXTURE_2D,0,ia,X,ka,0,fa,ja, null);b(null);ya[S]=va}Ea=!0}b(null);t[v]=-1;oa&&C.pixelStorei(C.UNPACK_FLIP_Y_WEBGL,!1);Fa=!0;q.Y&&ba&&(q.Y(ba),q.Y=null)}}var q=Object.assign({},M,n),aa=e++;null===q.isFlipY&&(q.isFlipY=q.url||q.array?!0:!1);q.data&&(q.array="string"===typeof q.data?Ba(q.data):q.isFloat?new Float32Array(q.data):new Uint8Array(q.data),q.isFlipY=!1);var ha=0,ca=q.C?!0:!1,U=null,wa=null,la=!1,y=null;q.D=q.D||q.isFloat;q.D&&(ha=1);q.Id||Ia.V()||!q.isFloat||!w||Ia.Kb()||(q.isFloat=!1);q.isFloat&&(ha=2);q.isAnisotropicFiltering&& V&&!JEContext.Ze()&&(q.isAnisotropicFiltering=!1);var x=q.bc||C.createTexture(),T=null,Z=!1,P=0,Q=0,Fa=!1,Ra=!1,Ga=!1,pa=null,sa=null,Ma=null,za=null,ia=null,fa=null,ja=null,oa=q.isFlipY,fb=(n=q.D&&q.isMipmap)&&Ha.cd(),ua=n&&fb?!0:!1,ya=null,Da=-1,Ea=!1,xa={mc:!1,Ib:null,Wb:null};q.width&&(P=q.width,Q=q.height?q.height:P);var ba={get:function(){return x},A:function(){return P},M:function(){return Q},Xe:function(){return q.url},$e:function(){return q.isFloat},bf:function(){return q.D},cf:function(){return q.isLinear}, Ya:function(){C.generateMipmap(C.TEXTURE_2D)},ad:function(z,S){ua?(z||(z=ba.Zb()),A.Qa(S),b(ya[z]),t[S]=-1):ba.g(S)},Zb:function(){-1===Da&&(Da=Math.log(P)/Math.log(2));return Da},qd:function(z){if(ua){z||(z=ba.Zb());E.set("s11");A.Qa(0);for(var S=P,ka=Q,X=1;X<=z;++X)S/=2,ka/=2,E.ha("u7",.25/S,.25/ka),C.viewport(0,0,S,ka),b(ya[X-1]),C.framebufferTexture2D(Ja.va(),C.COLOR_ATTACHMENT0,C.TEXTURE_2D,ya[X],0),H.l(!1,1===X);t[0]=-1}else ba.Ya()},g:function(z){if(!Fa)return!1;A.Qa(z);if(t[z]===aa)return!1; b(x);t[z]=aa;return!0},Hb:function(z){C.activeTexture(m[z]);v=z;b(x);t[z]=aa},u:function(){l=ba;C.framebufferTexture2D(Ja.va(),C.COLOR_ATTACHMENT0,C.TEXTURE_2D,x,0)},P:function(){l=ba;C.viewport(0,0,P,Q);C.framebufferTexture2D(Ja.va(),C.COLOR_ATTACHMENT0,C.TEXTURE_2D,x,0)},yb:A.yb,resize:function(z,S){P=z;Q=S;G()},clone:function(z){z=A.instance({width:P,height:Q,D:q.D,isFloat:q.isFloat,isLinear:q.isLinear,isMirrorY:q.isMirrorY,isFlipY:z?!oa:oa,isPot:q.isPot});Ca.set("s0");Ja.S();z.u();C.viewport(0, 0,P,Q);ba.g(0);H.l(!0,!0);return z},ie:function(){C.viewport(0,0,P,Q)},remove:function(){C.deleteTexture(x);Ra=!0;J.splice(J.indexOf(ba),1);ba=null},refresh:function(){ba.Hb(0);oa&&C.pixelStorei(C.UNPACK_FLIP_Y_WEBGL,!0);ca?C.texImage2D(C.TEXTURE_2D,0,ia,fa,C.UNSIGNED_BYTE,q.C):C.texImage2D(C.TEXTURE_2D,0,ia,P,Q,0,fa,ja,Z);oa&&C.pixelStorei(C.UNPACK_FLIP_Y_WEBGL,!1)},Lb:function(){var z=P*Q*4;sa=[new Uint8Array(z),new Uint8Array(z),new Uint8Array(z),new Uint8Array(z)];pa=[new Float32Array(sa[0].buffer), new Float32Array(sa[1].buffer),new Float32Array(sa[2].buffer),new Float32Array(sa[3].buffer)];Ma=new Uint8Array(4*z);za=new Float32Array(Ma.buffer);Ga=!0},qb:function(){Ga||ba.Lb();C.readPixels(0,0,P,4*Q,C.RGBA,C.UNSIGNED_BYTE,Ma);for(var z=P*Q,S=2*z,ka=3*z,X=0;X<z;++X)pa[0][X]=za[X],pa[1][X]=za[X+z],pa[2][X]=za[X+S],pa[3][X]=za[X+ka];return pa},Yd:function(){xa.mc||(xa.Ib=new Uint8Array(P*Q*4),xa.Wb=new Float32Array(xa.buffer),xa.mc=!0);C.readPixels(0,0,P,Q,C.RGBA,C.UNSIGNED_BYTE,xa.Ib);return xa.Wb}, Va:function(z){Ja.J();E.set("s12");ba.g(0);if(z)C.viewport(0,0,P,Q),E.sb("u8",.25,.25,.25,.25),H.l(!1,!0);else for(z=0;4>z;++z)C.viewport(0,Q*z,P,Q),E.sb("u8",Y[z]),H.l(!1,0===z)},wf:function(z){var S=ja===p[0]&&!u();b(x);oa&&C.pixelStorei(C.UNPACK_FLIP_Y_WEBGL,!0);S?(la||(U=document.createElement("canvas"),U.width=P,U.height=Q,wa=U.getContext("2d"),y=wa.createImageData(P,Q),la=!0),y.data.set(z),wa.putImageData(y,0,0),C.texImage2D(C.TEXTURE_2D,0,ia,fa,ja,U)):C.texImage2D(C.TEXTURE_2D,0,ia,P,Q,0,fa, ja,z);t[v]=aa;oa&&C.pixelStorei(C.UNPACK_FLIP_Y_WEBGL,!1)},xf:function(z,S){b(x);S&&C.pixelStorei(C.UNPACK_FLIP_Y_WEBGL,!0);C.texImage2D(C.TEXTURE_2D,0,ia,fa,ja,z);t[v]=aa;S&&C.pixelStorei(C.UNPACK_FLIP_Y_WEBGL,!1)},gf:function(z,S){var ka=P*Q,X=4*ka;z=q.D?z?"RGBE":"JSON":"RGBA";S&&(z=S);S=Ia.V()&&!1;var va=null;switch(z){case "RGBE":va="s42";break;case "JSON":va=S?"s0":"s12";break;case "RGBA":case "RGBAARRAY":va="s6"}Ga||("RGBA"===z||"RGBE"===z||"RGBAARRAY"===z?(sa=new Uint8Array(X),Ga=!0):"JSON"!== z||S||ba.Lb());Ja.J();E.set(va);ba.g(0);X=null;if("RGBA"===z||"RGBE"===z||"RGBAARRAY"===z){C.viewport(0,0,P,Q);H.l(!0,!0);C.readPixels(0,0,P,Q,C.RGBA,C.UNSIGNED_BYTE,sa);if("RGBAARRAY"===z)return{data:sa};F||(I=document.createElement("canvas"),L=I.getContext("2d"),F=!0);I.width=P;I.height=Q;ka=L.createImageData(P,Q);ka.data.set(sa);L.putImageData(ka,0,0);X=I.toDataURL("image/png")}else if("JSON"===z)if(S)X=new Float32Array(ka),C.viewport(0,0,P,Q),H.l(!0,!0),C.readPixels(0,0,P,Q,C.RGBA,C.FLOAT,X); else{for(X=0;4>X;++X)C.viewport(0,Q*X,P,Q),E.sb("u8",Y[X]),H.l(!X,!X);ba.qb();X=Array(ka);for(S=0;S<ka;++S)X[4*S]=pa[0][S],X[4*S+1]=pa[1][S],X[4*S+2]=pa[2][S],X[4*S+3]=pa[3][S]}return{format:z,data:X,width:P,height:Q,isMirrorY:q.isMirrorY,isFlipY:"RGBA"===z?q.isFlipY:!q.isFlipY}}};q.isMipmap&&!ua&&Fa&&!Ea&&(ba.Ya(),Ea=!0);if(q.url)b(x),C.texImage2D(C.TEXTURE_2D,0,C.RGBA,1,1,0,C.RGBA,C.UNSIGNED_BYTE,null),T=new Image,T.Ee="Anonymous",T.crossOrigin="Anonymous",T.src=q.url,T.onload=function(){P=T.width; Q=T.height;G()};else if(q.C){var Sa=function(){P=void 0!==q.C.videoWidth?q.C.videoWidth:q.C.width;Q=void 0!==q.C.videoHeight?q.C.videoHeight:q.C.height;P?G():setTimeout(Sa,1)};Sa()}else q.array?(q.D&&!q.isFloat?q.array instanceof Uint16Array?(Z=q.array,G()):g()?(Z=f(q.array),G()):(G(),A.Vb(C,x,ba.A(),ba.M(),q.array,oa,!0)):(Z=q.isFloat?q.array instanceof Float32Array?q.array:new Float32Array(q.array):q.array instanceof Uint8Array?q.array:new Uint8Array(q.array),G()),q.isKeepArray||(Z&&Z!==q.array&& (Z=null),delete q.array)):q.bc||G();ba.Te=ba.A;q.Y&&Fa&&(q.Y(ba),q.Y=null);J.push(ba);return ba},J:function(n){n!==v&&(C.activeTexture(m[n]),v=n);t[n]=-1;b(null)},ze:function(n){d.random.g(n)},yb:function(){l=null;C.framebufferTexture2D(Ja.va(),C.COLOR_ATTACHMENT0,C.TEXTURE_2D,null,0)},reset:function(){for(var n=0;n<m.length;++n)t[n]=-1;v=-1},ff:function(){v=-1},pe:function(){for(var n=0;n<m.length;++n)A.J(n)},Xb:function(){d&&(d.random.remove(),d.Qc.remove())},uf:function(n,N){if("RGBA"===n.format|| "RGBE"===n.format){var G=new Image;G.src=n.data;G.onload=function(){A.instance({isMirrorY:n.isMirrorY,isFlipY:n.isFlipY,isFloat:!1,C:G,Y:function(q){if("RGBA"===n.format)N(q);else{var aa=n.width,ha=n.height,ca=A.instance({isMirrorY:n.isMirrorY,isFloat:!0,width:aa,height:ha,isFlipY:n.isFlipY});Ja.S();C.viewport(0,0,aa,ha);E.set("s43");ca.u();q.g(0);H.l(!0,!0);A.J(0);N(ca);C.flush();setTimeout(q.remove,50)}}})}}else"JSON"===n.format?N(A.instance({isFloat:!0,isFlipY:n.isFlipY,width:n.width,height:n.height, array:new Float32Array(n.data)})):N(!1)},m:function(){l&&(Ja.S(),A.yb(),Ja.J());A.pe();J.slice(0).forEach(function(n){n.remove()});J.splice(0);K=!1;e=0;"undefined"!==typeof Ha&&Ha.m();d=null}};return A}(),Na={instance:function(b){var c=[R.instance(b),R.instance(b)],f=[c[1],c[0]],g=f,u={Lc:function(h){g[1].u();g[0].g(h);u.Pc()},jf:function(h){g[1].P();g[0].g(h);u.Pc()},Pc:function(){g=g===c?f:c},refresh:function(){g[0].refresh();g[1].refresh()},g:function(h){g[0].g(h)},ye:function(h){g[1].g(h)},xd:function(){return g[0]}, remove:function(){g[0].remove();g[1].remove();g=null}};return u}},H=function(){function b(e){var t={R:null,B:null};t.R=e.createBuffer();e.bindBuffer(e.ARRAY_BUFFER,t.R);e.bufferData(e.ARRAY_BUFFER,new Float32Array([-1,-1,3,-1,-1,3]),e.STATIC_DRAW);t.B=e.createBuffer();e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,t.B);e.bufferData(e.ELEMENT_ARRAY_BUFFER,new Uint16Array([0,1,2]),e.STATIC_DRAW);return t}var c=null,f=0,g=!1,u=[],h=-2,v=-2,m={reset:function(){v=h=-2},o:function(){g||(c=b(C),m.Ra(),g=!0)},instance:function(e){var t= f++,d=e.B?e.B.length:0,l="undefined"===typeof e.mode?C.STATIC_DRAW:e.mode,p=C.createBuffer();C.bindBuffer(C.ARRAY_BUFFER,p);C.bufferData(C.ARRAY_BUFFER,e.R instanceof Float32Array?e.R:new Float32Array(e.R),l);h=t;var k=null,D=null,K=null;if(e.B){k=C.createBuffer();C.bindBuffer(C.ELEMENT_ARRAY_BUFFER,k);var J=null;65536>e.B.length?(J=Uint16Array,D=C.UNSIGNED_SHORT,K=2):(J=Uint32Array,D=C.UNSIGNED_INT,K=4);J=e.B instanceof J?e.B:new J(e.B);C.bufferData(C.ELEMENT_ARRAY_BUFFER,J,l);v=t}var M={bd:function(F){h!== t&&(C.bindBuffer(C.ARRAY_BUFFER,p),h=t);F&&Ca.tb()},Zc:function(){v!==t&&(C.bindBuffer(C.ELEMENT_ARRAY_BUFFER,k),v=t)},bind:function(F){M.bd(F);M.Zc()},Fe:function(){C.drawElements(C.TRIANGLES,d,D,0)},Ge:function(F,I){C.drawElements(C.TRIANGLES,F,D,I*K)},remove:function(){C.deleteBuffer(p);e.B&&C.deleteBuffer(k);M=null}};u.push(M);return M},Ra:function(){-1!==h&&(C.bindBuffer(C.ARRAY_BUFFER,c.R),h=-1);-1!==v&&(C.bindBuffer(C.ELEMENT_ARRAY_BUFFER,c.B),v=-1)},l:function(e,t){e&&H.Ra();t&&Ca.Ga();C.drawElements(C.TRIANGLES, 3,C.UNSIGNED_SHORT,0)},ra:function(e){e=e||C;var t=b(e);e.bindBuffer(e.ARRAY_BUFFER,t.R);e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,t.B);Ca.Ha(e);e.drawElements(e.TRIANGLES,3,e.UNSIGNED_SHORT,0);e.deleteBuffer(t.R);e.deleteBuffer(t.B);m.reset();g&&(m.Ra(),Ca.Ga())},Xb:function(){var e=C,t=c;e.deleteBuffer(t.R);e.deleteBuffer(t.B)},m:function(){m.Xb();u.forEach(function(e){e.remove()});C.bindBuffer(C.ARRAY_BUFFER,null);C.bindBuffer(C.ELEMENT_ARRAY_BUFFER,null);m.reset();g=!1;u.splice(0);f=0}};return m}(), Ja=function(){var b=null,c=null,f=null,g=!1,u=[],h={v:-2,Ub:1},v={ya:function(){return g},o:function(){if(!g){b=C.createFramebuffer();var m=Ia.V();c=m&&C.DRAW_FRAMEBUFFER?C.DRAW_FRAMEBUFFER:C.FRAMEBUFFER;f=m&&C.READ_FRAMEBUFFER?C.READ_FRAMEBUFFER:C.FRAMEBUFFER;g=!0}},Pe:function(){return c},vd:function(){return f},va:function(){return C.FRAMEBUFFER},Se:function(){return h},Ie:function(){return b},instance:function(m){void 0===m.jc&&(m.jc=!1);var e=m.da?m.da:null,t=m.width,d=void 0!==m.height?m.height: m.width,l=b,p=null,k=!1,D=!1,K=0;e&&(t=t?t:e.A(),d=d?d:e.M());var J={Kc:function(){k||(l=C.createFramebuffer(),k=!0,K=h.Ub++)},Sc:function(){J.Kc();J.u();p=C.createRenderbuffer();C.bindRenderbuffer(C.RENDERBUFFER,p);C.renderbufferStorage(C.RENDERBUFFER,C.DEPTH_COMPONENT16,t,d);C.framebufferRenderbuffer(c,C.DEPTH_ATTACHMENT,C.RENDERBUFFER,p);C.clearDepth(1)},bind:function(M,F){K!==h.v&&(C.bindFramebuffer(c,l),h.v=K);e&&e.u();F&&C.viewport(0,0,t,d);M&&C.clear(C.COLOR_BUFFER_BIT|C.DEPTH_BUFFER_BIT)}, xe:function(){K!==h.v&&(C.bindFramebuffer(c,l),h.v=K)},clear:function(){C.clear(C.COLOR_BUFFER_BIT|C.DEPTH_BUFFER_BIT)},Ce:function(){C.clear(C.COLOR_BUFFER_BIT)},De:function(){C.clear(C.DEPTH_BUFFER_BIT)},ie:function(){C.viewport(0,0,t,d)},u:function(){K!==h.v&&(C.bindFramebuffer(c,l),h.v=K)},rtt:function(M){e=M;h.v!==K&&(C.bindFramebuffer(C.FRAMEBUFFER,l),h.v=K);M.u()},J:function(){C.bindFramebuffer(c,null);h.v=-1},resize:function(M,F){t=M;d=F;p&&(C.bindRenderbuffer(C.RENDERBUFFER,p),C.renderbufferStorage(C.RENDERBUFFER, C.DEPTH_COMPONENT16,t,d))},remove:function(){l===b||D||(C.bindFramebuffer(c,l),C.framebufferTexture2D(c,C.COLOR_ATTACHMENT0,C.TEXTURE_2D,null,0),p&&C.framebufferRenderbuffer(c,C.DEPTH_ATTACHMENT,C.RENDERBUFFER,null),C.bindFramebuffer(c,null),C.deleteFramebuffer(l),p&&C.deleteRenderbuffer(p));D=!0}};m.jc&&J.Sc();u.push(J);return J},J:function(){C.bindFramebuffer(c,null);h.v=-1},qe:function(){C.bindFramebuffer(c,null);C.clear(C.COLOR_BUFFER_BIT|C.DEPTH_BUFFER_BIT);C.viewport(0,0,Ia.A(),Ia.M());h.v= -1},reset:function(){h.v=-2},S:function(){0!==h.v&&(C.bindFramebuffer(c,b),h.v=0)},clear:function(){C.viewport(0,0,Ia.A(),Ia.M());C.clear(C.COLOR_BUFFER_BIT)},m:function(){v.J();u.forEach(function(m){m.remove()});C.deleteFramebuffer(b);v.reset();g=!1;u.splice(0);h.v=-2;h.Ub=1}};return v}(),Ia=function(){function b(){f="undefined"===typeof Ka?JEContext:Ka;g=!0}function c(d,l){for(var p=0;p<d.length;++p){var k=l.getExtension(d[p]);if(k)return k}return null}var f=null,g=!1,u={kc:!1,ub:null,vb:null,nc:!1, Ld:!1,wb:null,oc:!1,xb:null,lc:!1,Sa:null,Gd:!1,Ta:null,Hd:!1},h=null,v={T:!0,U:!0,Xa:!0},m=null,e="undefined"===typeof window?{}:window,t={o:function(){if(g)return!0;h=Object.assign({},u);m=Object.assign({},v);g||b();var d=C;if(!h.kc){h.ub=t.Rb(d);e.GL_EXT_FLOAT=h.ub;h.nc=h.ub?!0:!1;if(h.nc||t.V())h.vb=t.Sb(d),h.Ld=h.vb?!0:!1,e.GL_EXT_FLOATLINEAR=h.vb;h.kc=!0}if(!h.lc){h.wb=t.qa(d);h.wb&&(h.oc=!0,e.GL_EXT_HALFFLOAT=h.wb);if(h.oc||t.V())h.xb=t.Tb(d),e.GL_EXT_HALFFLOATLINEAR=h.xb;h.Ye=h.xb?!0:!1;h.lc= !0}h.Sa=t.Pb(d);h.Gd=h.Sa?!0:!1;e.GL_EXT_COLORBUFFERFLOAT=h.Sa;h.Ta=t.Qb(d);h.Hd=h.Ta?!0:!1;e.GL_EXT_COLORBUFFERHALFFLOAT=h.Ta;Ja.o();R.o();if(!t.kd())return!1;H.o();R.Ed();return!0},A:function(){g||b();return f.A()},M:function(){g||b();return f.M()},V:function(){g||b();return f.V()},Ob:function(d){t.Pb(d);t.Qb(d);t.Rb(d);t.Sb(d);t.qa(d);t.Tb(d)},Pb:c.bind(null,["EXT_color_buffer_float","WEBGL_color_buffer_float","OES_color_buffer_float"]),Qb:c.bind(null,["EXT_color_buffer_half_float","WEBGL_color_buffer_half_float", "OES_color_buffer_half_float"]),Rb:c.bind(null,["OES_texture_float","MOZ_OES_texture_float","WEBKIT_OES_texture_float"]),Sb:c.bind(null,["OES_texture_float_linear","MOZ_OES_texture_float_linear","WEBKIT_OES_texture_float_linear"]),qa:c.bind(null,["OES_texture_half_float","MOZ_OES_texture_half_float","WEBKIT_OES_texture_half_float"]),Tb:c.bind(null,["OES_texture_half_float_linear","MOZ_OES_texture_half_float_linear","WEBKIT_OES_texture_half_float_linear"]),Za:function(d){var l=t.qa(d);return l&&l.HALF_FLOAT_OES? l.HALF_FLOAT_OES:d.HALF_FLOAT||d.FLOAT},rd:function(){return m},Kb:function(){return m.T},Be:function(){return m.U},Ae:function(){return m.Xa},Ka:function(d,l,p){function k(){d.bindTexture(d.TEXTURE_2D,null);d.bindFramebuffer(D,null);d.deleteTexture(M);d.deleteFramebuffer(J)}var D=d.FRAMEBUFFER,K=d.NEAREST,J=d.createFramebuffer();d.bindFramebuffer(D,J);var M=d.createTexture();d.bindTexture(d.TEXTURE_2D,M);d.pixelStorei(d.UNPACK_FLIP_Y_WEBGL,!1);d.texParameteri(d.TEXTURE_2D,d.TEXTURE_MAG_FILTER,K); d.texParameteri(d.TEXTURE_2D,d.TEXTURE_MIN_FILTER,K);d.texImage2D(d.TEXTURE_2D,0,l,1,1,0,d.RGBA,p,null);d.framebufferTexture2D(d.FRAMEBUFFER,d.COLOR_ATTACHMENT0,d.TEXTURE_2D,M,0);if(d.checkFramebufferStatus(d.READ_FRAMEBUFFER||d.FRAMEBUFFER)!==d.FRAMEBUFFER_COMPLETE)return k(),!1;Ca.rb(d);d.clearColor(0,0,0,0);d.viewport(0,0,1,1);d.disable(d.DEPTH_TEST);d.clear(d.COLOR_BUFFER_BIT);H.ra(d);d.bindFramebuffer(D,null);Ca.Fa(d);d.activeTexture(d.TEXTURE0);d.bindTexture(d.TEXTURE_2D,M);H.ra(d);l=new Uint8Array(4); d.readPixels(0,0,1,1,d.RGBA,d.UNSIGNED_BYTE,l);k();return 3<Math.abs(l[0]-127)?!1:!0},Ua:function(d){var l={T:!1,U:!1};d.disable(d.BLEND);d.clearColor(0,0,0,0);d.clear(d.COLOR_BUFFER_BIT);d.RGBA32F&&t.Ka(d,d.RGBA32F,d.FLOAT)&&(l.T=!0);!l.T&&t.Ka(d,d.RGBA,d.FLOAT)&&(l.T=!0);var p=t.Za(d);d.RGBA16F&&t.Ka(d,d.RGBA16F,p)&&(l.U=!0);!l.U&&t.Ka(d,d.RGBA,p)&&(l.U=!0);return l},ld:function(){var d=Ja.instance({width:1});d.Kc();var l=R.instance({width:1,isFloat:!0,Aa:3});d.u();l.u();C.flush();C.checkFramebufferStatus(Ja.vd())!== C.FRAMEBUFFER_COMPLETE?(R.fe(),m.Xa=!1):m.Xa=!0;d.remove();l.remove()},kd:function(){var d=t.Ua(C);Object.assign(m,d);if(!m.T&&!m.U)return!1;t.ld();return!0},m:function(){R.m();Ca.m();Ja.m();H.m();g=!1}};return t}(),Ha=function(){function b(F,I,L,Y){k.texParameteri(k.TEXTURE_2D,k.TEXTURE_MIN_FILTER,Y?k.NEAREST_MIPMAP_NEAREST:k.LINEAR);var V=null;if(null!==L)try{V=k.getError();if("FUCKING_BIG_ERROR"===V)return!1;k.texImage2D(k.TEXTURE_2D,0,F,2,2,0,k.RGBA,I,L);V=k.getError();if(V!==k.NO_ERROR)return!1}catch(w){return!1}Y&& k.generateMipmap(k.TEXTURE_2D);k.clear(k.COLOR_BUFFER_BIT);H.ra(k);V=k.getError();if("FUCKING_BIG_ERROR"===V)return!1;k.readPixels(0,0,1,1,k.RGBA,k.UNSIGNED_BYTE,d);V=k.getError();V===k.INVALID_OPERATION&&"undefined"!==typeof k.PIXEL_PACK_BUFFER&&(k.bindBuffer(k.PIXEL_PACK_BUFFER,null),k.readPixels(0,0,1,1,k.RGBA,k.UNSIGNED_BYTE,d),V=k.getError());if(V!==k.NO_ERROR)return!1;if(L=0!==d[0])e.zc=I,e.ic=F;return L}function c(F,I){return D.T&&b(F,k.FLOAT,new Float32Array(p),I)?(m=v.Cb,!0):!1}function f(F, I,L){if(!D.U)return!1;var Y=Ia.qa(k);if(Y&&Y.HALF_FLOAT_OES&&b(F,Y.HALF_FLOAT_OES,new Uint16Array(p),I)||k.HALF_FLOAT&&b(F,k.HALF_FLOAT,new Uint16Array(p),I)||b(F,k.FLOAT,new Float32Array(p),I))return m=v.ea,!0;k.bindTexture(k.TEXTURE_2D,L);k.texImage2D(k.TEXTURE_2D,0,k.RGBA,1,1,0,k.RGBA,k.UNSIGNED_BYTE,null);k.bindFramebuffer(e.oa,M);R.Vb(k,L,1,1,new Float32Array(p),!1,!1);k.bindFramebuffer(e.oa,null);k.bindTexture(k.TEXTURE_2D,L);return b(F,null,null,I)?(m=v.ea,!0):!1}function g(F,I,L){t=!0;if(f(F, !0,L)||c(I,!0))return!0;t=!1;return f(F,!1,L)||c(I,!1)?!0:!1}function u(F){if(m===v.K){k=F||C;m=v.RGBA8;t=!0;Ia.Ob(k);D||(D=Ia.Ua(k));Ja.reset();M=k.createFramebuffer();e.oa=k.DRAW_FRAMEBUFFER||k.FRAMEBUFFER;k.bindFramebuffer(e.oa,null);k.clearColor(0,0,0,0);k.viewport(0,0,1,1);E.K();K=E.Fa(k);F=k.createTexture();k.activeTexture(k.TEXTURE0);k.bindTexture(k.TEXTURE_2D,F);k.texParameteri(k.TEXTURE_2D,k.TEXTURE_WRAP_S,k.REPEAT);k.texParameteri(k.TEXTURE_2D,k.TEXTURE_WRAP_T,k.REPEAT);k.texParameteri(k.TEXTURE_2D, k.TEXTURE_MAG_FILTER,k.NEAREST);J=F;var I=F=k.RGBA,L=k.RGBA16F,Y=k.RGBA32F;Y&&(F=Y);L&&(I=L);if((L||Y)&&g(I,F,J))return h(),!0;F=I=k.RGBA;if(g(I,F,J))return h(),!0;m=v.RGBA8;h();return!1}}function h(){k.deleteProgram(K.Z);k.deleteTexture(J);J=K=null}var v={K:-1,Cb:3,ea:2,RGBA8:0},m=v.K,e={zc:null,ic:null,oa:null},t=!0,d=new Uint8Array(4),l=[.8,1,.8,1],p=[].concat(l,l,l,l),k=null,D=null,K=null,J=null,M=null;return{cd:function(F){u(F);return t},Jb:function(F,I){m===v.K&&(typeof("undefined"!==I)&&(D= I),u(F));return m!==v.RGBA8},af:function(F){u(F);return m===v.Cb},Nd:function(F){u(F);return m===v.ea},Qe:function(F){u(F);return e.zc},ud:function(F){u(F);return e.ic},m:function(){k=null;t=!0;m=v.K;D=null}}}(),Oa={instance:function(b){var c=R.instance(b.alpha),f=R.instance(b.beta);return{nd:function(){c.g(1);f.g(2)}}}},Qa={instance:function(b){var c=null,f=!1,g=!1,u=null,h=!1,v=!1,m=null,e="undefined"===typeof b.preprocessing?!1:b.preprocessing,t="undefined"===typeof b.preprocessingSize?b.size: b.preprocessingSize;b.mask&&(f=!0,a&&void 0!==a.Yc&&(b.mask=a.Yc+b.mask),c=R.instance({isFloat:!1,url:b.mask}));var d=!1;b.customInputShader&&(d="s44",E.Eb({name:"_",id:d,h:b.customInputShader,tf:["uSource"],precision:"lowp"}),E.G(d,[{type:"1i",name:"_",value:0}]));switch(e){case "sobel":m="s31";h=!0;break;case "meanNormalization":m="s32";h=!0;break;case "grayScale":m="s28";h=!1;break;case "grayScaleTilt":m="s29";v=!0;h=!1;break;case "rgbGrayTilt":m="s30";v=!0;h=!1;break;case "copy":m=d?d:"s0";break; case "inputLightRegulation":m=d?d:"s28";u=Pa.instance({hc:t,yc:b.size,uc:b.nBlurPass,Md:!1});g=!0;break;case "direct":case "none":m=!1;break;default:m="s3"}v&&E.G(m,[{name:"u26",type:"1f",value:b.tilt}]);f&&(m+="Mask");var l=R.instance({isFloat:!1,isPot:!1,width:b.size}),p={A:function(){return t},$a:function(){return p.A()},Bd:function(){return g?u.$b():l},H:function(){Ja.S();m&&(E.set(m),h&&E.I("u27",1/b.size),l.P(),f&&c.g(1),H.l(!1,!1),l.g(0),g&&u.process(l))},m:function(){l.remove();f&&c.remove()}}; return p}},Ya={instance:function(b){"undefined"===typeof b.normalize&&(b.normalize=!1);var c={input:null,ma:null,eb:null,O:null,Ba:null,nb:null,ob:null},f=null,g=[],u=[],h=!1,v=null,m=!0,e=-1,t=b.isReorganize?b.isReorganize:!1,d=b.kernelsCount?!0:!1,l=b.dynPelu?Oa.instance(b.dynPelu):!1,p=l?!0:!1,k={isEnabled:!1};b.Kd?(b.sparsity="undefined"!==typeof b.sparsity?b.sparsity:b.Da.$a(),m=!1):"full"===b.connectivityUp&&(b.sparsity=b.Da.$a());var D={elu:"s15",elu01:"s16",relu:"s14",arctan:"s18",sigmoid:"s13", copy:"s0",softplus:"s19",dynPelu:"s17"}[b.activation],K=b.sparsity*b.sparsity,J=!1,M=b.size,F="";if(b.maxPooling){switch(b.maxPooling.size){case 2:F="s33";break;case 4:F="s34"}J=!0;M/=b.maxPooling.size;c.nb=R.instance({isFloat:!0,isPot:!1,width:M})}var I=void 0!==b.Sd&&b.Sd?!0:!1,L=null,Y=null,V=null;if(I){L="s45"+b.index.toString();E.ec("s45",L,[((b.normalization.n-1)/2).toFixed(1)]);E.G(L,[{type:"1i",name:"u1",value:0},{type:"2f",name:"u7",value:[1/b.size,1/b.size]},{type:"1f",name:"u6",value:b.normalization.alpha}, {type:"1f",name:"u9",value:b.normalization.beta},{type:"1f",name:"u31",value:b.normalization.k}]);var w={isFloat:!0,isPot:!0,width:b.size};Y=R.instance(w);V=R.instance(w)}var r=-1,B=null;m&&(c.O=R.instance({isFloat:!0,isPot:!1,width:b.size}));c.ma=R.instance(b.bias);var O={A:function(){return b.size},$a:function(){return M},Yb:function(){return b.classesCount},$c:function(A){f.g(A)},Wd:function(){b.remap&&b.remap.isEnabled&&(k={isEnabled:!0,Od:R.instance({isFloat:!1,isFlipY:!1,array:new Uint8Array(b.remap.maskTexture.data), width:b.remap.maskTexture.width,isPot:!1}),za:b.remap.layers.map(function(A){return b.parent.yd(A)}),depth:b.remap.depth})},ge:function(){switch(b.connectivityUp){case "direct":B=Ta.instance(b.connectivity);break;case "square":B=Ua.instance(b.connectivity);break;case "squareFast":B=Va.instance(b.connectivity,b.activation);break;case "full":B=Wa.instance(b.connectivity);break;case "conv":e=b.kernelsCount,B=Xa.instance(b.connectivity),t&&(c.Ba=R.instance({width:M,isFloat:!0,isFlipY:!1,isPot:!1}))}if(B.ca){var A= b.size*b.sparsity;r=Math.log(A/b.size)/Math.log(2);c.input=R.instance({isMipmap:!0,isFloat:!0,isPot:!0,width:A,ib:r});c.eb=R.instance({isFloat:!0,isPot:!0,width:b.size})}},H:function(A){f=A;B.ca?(c.input.P(),d&&c.ma.g(2),B.H(k),c.input.g(0),c.input.qd(r),c.eb.P(),d?E.set("s0"):(E.set("s27"),E.I("u25",K),c.ma.g(1)),c.input.ad(r,0),H.l(!1,!1),E.set(D),I?Y.u():c.O.u(),c.eb.g(0),p&&l.nd(),H.l(!1,!1)):(c.O.P(),c.ma.g(1),B.H());I&&(E.set(L),V.u(),Y.g(0),H.l(!1,!1),E.set("s46"),E.I("u6",1),c.O.u(),V.g(1), H.l(!1,!1));if(m)return J?(c.nb.P(),c.O.g(0),E.set(F),E.ha("u7",1/b.size,1/b.size),H.l(!1,!1),A=c.nb):A=c.O,A.g(0),t&&(c.Ba.u(),E.set("s21"),E.ha("u12",e,M/e),H.l(!1,!1),A=c.Ba,c.Ba.g(0)),A;A=c.O;b.normalize&&(E.set("gpuRawAvg"===h?"s8":"s7"),E.I("u4",1/b.size),c.ob.P(),c.O.g(0),H.l(!1,!1),A=c.ob);switch(h){case "cpuRGBA2Float":A.Va(!1);A=O.Xd(A);v(A);break;case "cpuMeanFloat":A.Va(!0);A=A.Yd();v(A);break;case "gpuRawAvg":case "gpuRaw":A.g(0);case "none":null!==v&&v(A)}return!1},fd:function(A){A&& (h=A.pb||"none",v=A.mb||null);c.O=R.instance({isFloat:!0,isPot:!0,isMipmap:!1,width:b.size});A="undefined"!==typeof b.classesCount&&b.classesCount?b.classesCount:b.size*b.size;for(var n=0,N=0,G=0;n<A;++n)g.push(N+(b.size-1-G)*b.size),u.push([-1,-1,-1,-1]),++N,N===b.size&&(N=0,++G);b.normalize&&(c.ob=R.instance({isFloat:!0,isPot:!0,width:b.size}))},Xd:function(A){var n=A.qb();g.forEach(function(N,G){u[G][0]=n[0][N];u[G][1]=n[1][N];u[G][2]=n[2][N];u[G][3]=n[3][N]});return u},m:function(){for(var A in c){var n= c[A];n&&n.remove()}B&&(B.m(),B=null)}};b.Da&&O.ge(b.Da);return O}}; function Za(b){var c=null,f=null,g=null,u=0;this.o=function(h){this.ee(h.za);g.fd({pb:h.pb,mb:h.mb})};this.yd=function(h){return c[h]};this.ee=function(h){var v=null;u=h.length;c=h.map(function(m,e){m=Object.assign({},m,{index:e,parent:this,Da:v,Kd:e===u-1});return v=e=0===e?Qa.instance(m):Ya.instance(m)});f=c[0];g=c[u-1];c.forEach(function(m,e){0!==e&&m.Wd()})};this.H=function(h,v){var m=v;c.forEach(function(e){m=e.H(m,h)});return m};this.wd=function(){return f.A()};this.Cd=function(){return g.A()}; this.$b=function(){return g.Bd()};this.Yb=function(){return g.Yb()};this.m=function(){c&&(c.forEach(function(h){h.m()}),g=f=c=null,u=0)};"undefined"!==typeof b&&this.o(b)} var Ta={instance:function(b){var c=R.instance(b.weights);return{ca:!0,ua:function(){return 1},m:function(){c.remove()},Dd:function(){return c},H:function(){E.set("s26");c.g(1);H.l(!1,!1)}}}},Wa={instance:function(b){var c=b.fromLayerSize,f=R.instance(b.weights);return{ca:!0,ua:function(){return c},m:function(){f.remove()},H:function(g){if(g.isEnabled){E.set("s24");g.Od.g(3);var u,h=Math.min(g.za.length,g.depth);for(u=0;u<h;++u)g.za[u].$c(4+u)}else E.set("s23");E.I("u16",b.toLayerSize);f.g(1);H.l(!1, !1)}}}},Ua={instance:function(b){for(var c=b.fromLayerSize,f=b.toLayerSize,g=b.toSparsity,u=g*f,h=u/c,v=c/f,m=0,e=0,t=0,d=Array(g*f*g*f*4),l=Array(g*f*g*f*4),p=Array(c*c),k=0;k<p.length;++k)p[k]=0;k=Math.floor(g/2);for(var D=.5/f,K=.5/c,J=.5/u,M=0;M<f;++M)for(var F=Math.round(M*v),I=0;I<f;++I){var L=Math.round(I*v),Y=M/f,V=I/f;Y+=D;V+=D;for(var w=0;w<g;++w){var r=F+w-k;0>r&&(r+=c);r>=c&&(r-=c);for(var B=0;B<g;++B){var O=m/u,A=e/u,n=L+B-k;0>n&&(n+=c);n>=c&&(n-=c);var N=r/c,G=n/c;A=1-A-1/u;N+=K;G+= K;O+=J;A+=J;var q=M*g+w,aa=I*g+B;aa=f*g-aa-1;q=aa*f*g+q;d[4*q]=O;d[4*q+1]=A;d[4*q+2]=N;d[4*q+3]=G;G=p[n*c+r]++;q=G%h;N=r*h+q;n=n*h+(G-q)/h;n=c*h-1-n;n=n*c*h+N;l[4*n]=O;l[4*n+1]=A;l[4*n+2]=Y;l[4*n+3]=V;++m>=u&&(m=0,++e);++t}}}p=null;var ha=R.instance(b.weights);delete b.weights.data;var ca=R.instance({width:u,isFloat:!0,array:new Float32Array(l),isPot:!0});l=null;var U=R.instance({width:u,isFloat:!0,array:new Float32Array(d),isPot:!0});d=null;return{ca:!0,ua:function(){return h},m:function(){ca.remove(); U.remove();ha.remove()},H:function(){E.set("s22");ha.g(1);U.g(2);H.l(!1,!1)}}}},Xa={instance:function(b){var c=b.kernelsCount,f=b.toSparsity,g=f*b.toLayerSize/b.fromLayerSize,u=R.instance(b.weights);return{ca:!0,ua:function(){return g},Ve:function(){return f},Dd:function(){return u},m:function(){u.remove()},H:function(){E.set("s25");E.I("u22",c);E.I("u23",f);E.I("u16",b.toLayerSize);E.I("u24",b.fromLayerSize);u.g(1);H.l(!1,!1)}}}},Va={instance:function(b,c){var f=b.fromLayerSize,g=b.toLayerSize,u= b.toSparsity,h=b.stride?b.stride:1,v=u*g/f,m=g<f,e=f/g,t=R.instance(b.weights),d="s47"+[f.toString(),g.toString(),u.toString(),h.toString(),c].join("_");E.pd(d)||(b=ta(c),g=[{type:"1f",name:"u16",value:g},{type:"1f",name:"u30",value:h}],m&&g.push({type:"1f",name:"u24",value:f}),f=[(m?v:u).toFixed(1),b],m&&f.push(e.toFixed(1)),E.ec(m?"s39":"s38",d,f),E.G(d,g.concat([{type:"1i",name:"u14",value:0},{type:"1i",name:"u21",value:1},{type:"1i",name:"u13",value:3}])));return{ca:!1,ua:function(){return v}, m:function(){t.remove()},H:function(){E.set(d);t.g(3);H.l(!1,!1)}}}},Pa={instance:function(b){var c=b.uc?b.uc:3,f=b.hc?b.hc:64,g=b.yc?b.yc:64,u=b.Md?!0:!1;b={isFloat:!1,width:f,isPot:!1,isFlipY:!1};var h=R.instance(b),v=R.instance(b),m=R.instance(b),e=R.instance(b),t=R.instance({isFloat:!0,width:g,isPot:!1,isFlipY:!1}),d=1/f;return{process:function(l){E.set("s35");e.u();H.l(u,!1);E.set("s36");for(var p=0;p<c;++p)h.u(),E.ha("u7",d,0),H.l(u,!1),m.u(),e.g(0),H.l(u,!1),v.u(),h.g(0),E.ha("u7",0,d),H.l(u, !1),e.u(),m.g(0),H.l(u,!1),p!==c-1&&v.g(0);E.set("s37");t.u();l.g(0);v.g(1);e.g(2);H.l(u,!1);t.g(0)},$b:function(){return t}}}};function $a(b,c){b[c]=!0;b.setAttribute(c,"true")}function ab(){return/iPad|iPhone|iPod/.test(navigator.userAgent)&&!window.MSStream}function bb(){var b=navigator.appVersion.match(/OS (\d+)_(\d+)_?(\d+)?/);return b&&b.length&&2<b.length?[parseInt(b[1],10),parseInt(b[2],10),parseInt(b[3]||0,10)]:[0,0,0]} function cb(){var b=navigator.userAgent.toLowerCase();return-1!==b.indexOf("safari")&&-1===b.indexOf("chrome")?!0:!1}function db(){return navigator.mediaDevices&&navigator.mediaDevices.getUserMedia?!0:!1} function eb(b){if(!b)return b;var c=null;if(b.video){var f=function(g){return g&&"object"===typeof g?Object.assign({},g):g};c={};"undefined"!==typeof b.video.width&&(c.width=f(b.video.width));"undefined"!==typeof b.video.height&&(c.height=f(b.video.height));"undefined"!==typeof b.video.facingMode&&(c.facingMode=f(b.video.facingMode))}c={audio:b.audio,video:c};"undefined"!==typeof b.deviceId&&(c.deviceId=b.deviceId);return c} function gb(b){var c=b.video.width;b.video.width=b.video.height;b.video.height=c;return b} function hb(b){function c(p){return[480,576,640,648,720,768,800,960,1080,1152,1280,1366,1920].sort(function(k,D){return Math.abs(k-p)-Math.abs(D-p)})}function f(p){var k=eb(b);p=p(k);u.push(p);g(p)}function g(p){if(p.video&&p.video.facingMode&&p.video.facingMode.exact){var k=p.video.facingMode.exact;p=eb(p);delete p.video.facingMode.exact;p.video.facingMode.ideal=k;u.push(p)}}var u=[];if(!b||!b.video)return u;g(b);if(b.video.width&&b.video.height){if(b.video.width.ideal&&b.video.height.ideal){var h= c(b.video.width.ideal).slice(0,3),v=c(b.video.height.ideal).slice(0,3),m={},e=0;for(m.X=void 0;e<h.length;m={X:m.X},++e){m.X=h[e];var t={},d=0;for(t.W=void 0;d<v.length;t={W:t.W},++d)if(t.W=v[d],m.X!==b.video.width.ideal||t.W!==b.video.height.ideal){var l=Math.max(m.X,t.W)/Math.min(m.X,t.W);l<4/3-.1||l>16/9+.1||f(function(p,k){return function(D){D.video.width.ideal=p.X;D.video.height.ideal=k.W;return D}}(m,t))}}}f(function(p){return gb(p)})}b.video.width&&b.video.height&&(b.video.width.ideal&&b.video.height.ideal&& f(function(p){delete p.video.width.ideal;delete p.video.height.ideal;return p}),f(function(p){delete p.video.width;delete p.video.height;return p}));b.video.facingMode&&(f(function(p){delete p.video.facingMode;return p}),b.video.width&&b.video.height&&f(function(p){gb(p);delete p.video.facingMode;return p}));u.push({audio:b.audio,video:!0});return u} function ib(b){try{var c=window.matchMedia("(orientation: portrait)").matches?!0:!1}catch(g){c=window.innerHeight>window.innerWidth}if(c&&b&&b.video){c=b.video.width;var f=b.video.height;c&&f&&c.ideal&&f.ideal&&c.ideal>f.ideal&&(b.video.height=c,b.video.width=f)}} function jb(b){b.volume=0;$a(b,"muted");if(cb()){if(1===b.volume){var c=function(){b.volume=0;window.removeEventListener("mousemove",c,!1);window.removeEventListener("touchstart",c,!1)};window.addEventListener("mousemove",c,!1);window.addEventListener("touchstart",c,!1)}setTimeout(function(){b.volume=0;$a(b,"muted")},5)}} function kb(b,c,f,g){function u(v){h||(h=!0,f(v))}var h=!1;navigator.mediaDevices.getUserMedia(g).then(function(v){function m(){setTimeout(function(){if(b.currentTime){var e=b.videoWidth,t=b.videoHeight;if(0===e||0===t)u("VIDEO_NULLSIZE");else{e&&(b.style.width=e.toString()+"px");t&&(b.style.height=t.toString()+"px");e={dd:null,je:null,Pd:null};try{var d=v.getVideoTracks()[0];d&&(e.Pd=d,e.dd=d.getCapabilities(),e.je=d.getSettings())}catch(l){}cb()||ab()?b.parentNode&&null!==b.parentNode?(h||c(b,v, e),setTimeout(function(){b.play()},100)):(document.body.appendChild(b),jb(b),h||c(b,v,e),setTimeout(function(){b.style.transform="scale(0.0001,0.0001)";b.style.position="fixed";b.style.bottom="0px";b.style.right="0px";jb(b);setTimeout(function(){b.play()},100)},80)):h||c(b,v,e)}}else u("VIDEO_NOTSTARTED")},700)}"undefined"!==typeof b.srcObject?b.srcObject=v:(b.src=window.URL.createObjectURL(v),b.videoStream=v);jb(b);b.addEventListener("loadeddata",function(){var e=b.play();jb(b);"undefined"===typeof e? m():e.then(function(){m()}).catch(function(){u("VIDEO_PLAYPROMISEREJECTED")})},!1)}).catch(function(v){u(v)})} function lb(b,c,f){var g=db()?document.createElement("video"):!1;if(g)if(db()){if(f&&f.video){if(ab()){var u=bb();0!==u[0]&&(12>u[0]||12===u[0]&&2>u[1])&&ib(f)}f.video.width&&f.video.width.ideal&&(g.style.width=f.video.width.ideal+"px");f.video.height&&f.video.height.ideal&&(g.style.height=f.video.height.ideal+"px")}$a(g,"autoplay");$a(g,"playsinline");f&&f.audio?g.volume=0:$a(g,"muted");kb(g,b,function(){function h(m){if(0===m.length)c("INVALID_FALLBACKCONSTRAINTS");else{var e=m.shift();kb(g,b,function(){h(m)}, e)}}var v=hb(f);h(v)},f)}else c&&c("MEDIASTREAMAPI_NOTFOUND");else c&&c("VIDEO_NOTPROVIDED")} var mb=function(){var b={n:5,jb:1,sc:0,sa:[30,45],pa:[2,200],k:.7,re:200,Vd:.05},c=-1,f=null,g=-1,u=-1,h=0,v=-1,m=-1,e=0,t=0,d=b.pa[1],l={zd:function(){switch(c){case -1:return-1;case 0:return m+f.sc;case 1:return e}},sd:function(p){return Math.pow(Math.min(Math.max(v,0),f.n-1)/(f.n-1),p||1)},o:function(p){f=Object.assign({},b,p);v=m=f.jb;c=0;l.reset()},me:function(p){p=("undefined"===typeof p?Date.now():p)||0;var k=Math.min(Math.max(p-t,f.pa[0]),f.pa[1]);d=k;t=p;var D=-1===g?0:f.k;g=Math.min(Math.max(1E3/ k,5),120)*(1-D)+g*D;p-u>f.re&&5<++h&&(k=f.k,v=v*(1-k)+(g<f.sa[0]?m-1:g>f.sa[1]?m+1:m)*k,Math.abs(v-m)>1-f.Vd&&(k=Math.min(Math.max(Math.round(v),0),f.n-1),k!==m&&(v=m=k,g=(f.sa[1]-f.sa[0])/2)),u=p)},hf:function(p){e=p;c=1},vf:function(){c=0;l.reset()},reset:function(){d=b.pa[1];u=g=-1;h=0},Ne:function(){return d}};return l}(),nb=function(){var b={wc:4,Ca:[1.5,1.5,2],$:[.1,.1,.1],Gc:1,Ab:-1,ab:-1,le:2,Ud:1,Ic:!0,od:.8},c=null,f=[],g=0,u=[.5,.5,1];return{o:function(h){c=Object.assign({},b,h);f.splice(0); h=c.Ca[0]*c.$[0];var v=c.Ca[1]*c.$[1],m=1/(1+c.Ca[2]*c.$[2]),e=c.Gc*Math.min(c.Ab,c.ab),t=e/c.Ab;e/=c.ab;var d=.5*c.od;d*=d;for(var l=0;l<c.wc;++l){var p=Math.pow(m,l),k=t*p,D=e*p;p=k*h;var K=D*v,J=k/2;D/=2;for(var M=1+(1-J-J)/p,F=1+(1-D-D)/K,I=0;I<F;++I)for(var L=D+I*K,Y=L-.5,V=0;V<M;++V){var w=J+V*p,r=w-.5;r*r+Y*Y>d||f.push([w,L,k*c.Ud])}}c.Ic&&f.sort(function(B,O){var A=B[0]-.5;B=B[1]-.5;var n=O[0]-.5;O=O[1]-.5;return A*A+B*B-(n*n+O*O)})},get:function(){var h=f.length;if(0===h)return u;g>=h&&(g= 0);var v=f[Math.floor(g)];g=(g+1/c.le)%h;return v}}}(),ob=function(){var b=0,c=null,f=null,g=null,u=null;return{o:function(h,v){b=h.length;c=v;f=h;g=new Float32Array(b);u=new Float32Array(b)},Ad:function(){return u},ke:function(h,v,m){h.forEach(function(e,t){var d=Math.min(1,f[t]*m*(v+.33*(1-v)));e=d*e+(1-d)*g[t];g[t]=e;u[t]=c[t](e)})}}}(),W={VERSION:"1.2.0",aa:[],Oa:!1,Pa:!1,Na:!1,Db:!1,ka:!0,ja:!1,ready:!1,initialized:!1},pb={facingMode:"user",idealWidth:800,idealHeight:600,minWidth:240,maxWidth:1280, minHeight:240,maxHeight:1280},a={neuralNetworkPath:"jeelizFaceTransferNNC.json",Bb:"../../",Wc:0,width:512,height:512,oe:55,Hc:[.6,5.8],$:[.06,.08,.15],de:.6,be:2,ce:[2,2,3],threshold:1.1,Vc:[.03,1],ve:20,Ma:[2,7],F:{cc:[3,7],quality:[0,6],position:[0,7],rotation:[5,7]},vc:11,tc:1,Qd:1,Fb:[.1,.01],$d:[.4,-.7,-.4],ae:[.3,0,0],md:!1,Xc:.001,Gb:[Math.PI/10,Math.PI/6],Bc:[.1,.4],Cc:[.009,.02],Dc:[.02,.04],kb:5,dc:.05,Uc:[.2,.2,.15,.15,.15,.15,.2,.2,.15, .15,.2],Rd:[na.bind(null,.05,.7),na.bind(null,.05,.7),na.bind(null,0,.4),na.bind(null,0,.4),na.bind(null,0,.6),na.bind(null,0,.6),qa.bind(null,.05,.5),na.bind(null,.2,.6),ra.bind(null,.7,.8,2),ra.bind(null,.7,.8,2),na.bind(null,.15,.5)]};W.get_nMorphs=function(){return a.vc};var qb=null,rb=null,sb=null,tb=[]; function ub(){function b(){1===++q&&(ob.o(a.Uc,a.Rd),c(),W.ready=!0,W.aa.forEach(function(y){y()}),W.aa.splice(0,W.aa.length),f(),q=0)}function c(){Y=ea();V=new Uint8Array(M*M*4);W.get_morphTargetInfluences=function(){return Y};W.get_morphTargetInfluencesStabilized=function(){return ob.Ad()};W.set_morphUpdateCallback=function(y){w=y};W.get_rotation=function(){return B};W.get_positionScale=function(){var y=I.Oc.xd();y.Va(!1);y=y.qb();n[0]=1-y[1][0];n[1]=y[2][0];n[2]=y[3][0]*F[0];return n};W.get_rotationStabilized= function(){return A};W.switch_sleep=function(y){ha!==aa.Ia||y?ha=y?aa.Ia:aa.Wa:f()};W.on_detect=function(y){y(ca.N);ca.lb.push(y)};W.is_detected=function(){return ca.N};W.set_animateDelay=function(y){k=y}}function f(){ha!==aa.Wa&&(ha=aa.Wa,g(),h())}function g(){D&&(window.clearTimeout(D),D=null);K&&(window.cancelAnimationFrame(K),K=null)}function u(){ha!==aa.Ia&&(D=setTimeout(h,k))}function h(){a:{if("VIDEO"===G.element.nodeName){var y=G.element.currentTime-wa;0>y&&(wa=G.element.currentTime);if(1E3* y<a.ve)break a;wa+=y}G.da.refresh();y=la.ac();y[0]===G.na[0]&&y[1]===G.na[1]||la.Rc()}y=mb.zd();for(var x=0;x<y;++x){var T=I,Z=J;E.set("s50");Ja.S();T.wa.P();G.da.g(0);T.Ja.g(1);H.l(!1,!1);T.wa.g(0);Z.H(!1,T.wa)}y=mb.sd();N=3*(1-y)+1*y;mb.me();W.ka&&(Ja.qe(),E.set("s49"),G.da.g(0),H.l(!1,!1),C.enable(C.BLEND),C.blendFunc(C.SRC_ALPHA,C.ONE),L.g(0),H.l(!1,!1),C.disable(C.BLEND));C.flush();ha!==aa.Ia&&(K=window.requestAnimationFrame(u))}function v(){var y=m(a.F.cc[0],a.F.cc[1]);ca.xa=a.dc*y+(1-a.dc)* ca.xa;.6<ca.xa&&!ca.N?(ca.lb.forEach(function(x){x(!0)}),ca.N=!0):.4>ca.xa&&ca.N&&(ca.lb.forEach(function(x){x(!1)}),ca.N=!1)}function m(y,x){y+=M*x;return(V[4*y]+V[4*y+1]+V[4*y+2]+V[4*y+3])/1020}function e(){Y.forEach(function(y,x){if(ca.N){y=(a.tc+x)%M;var T=a.Qd+Math.floor((a.tc+x)/M);T=M-1-T;y=m(y,T);Y[x]=y}else Y[x]=0})}function t(y){J=new Za({za:y.layers,pb:"gpuRaw",mb:function(x){var T=I;T.Ja.Lc(1);C.viewport(0,0,1,1);E.set("s51");E.I("u32",U.L);E.Mc("u33",nb.get());E.Mc("u34",a.$);H.l(!1, !1);T.Oc.Lc(1);E.set("s52");E.I("u32",U.L);T.Ja.g(0);H.l(!1,!1);R.Zd(x,V);e();if(!a.md&&ca.N)for(x=0;3>x;++x)T=m(x+a.F.rotation[0],a.F.rotation[1]),T=(2*T-1)*a.$d[x],T+=a.ae[x],r[x]=T;v();x=Date.now();T=x-U.qc;var Z=m(a.F.quality[0],a.F.quality[1]);U.Ac=qa(a.Bc[0],a.Bc[1],Z);Z=m(a.F.position[0],a.F.position[1]);var P=m(a.F.position[0]+1,a.F.position[1]),Q=m(a.F.position[0]+2,a.F.position[1]);U.Fc=1-qa(a.Dc[0],a.Dc[1],Math.sqrt(Z*Z+P*P+Q*Q)/T);Z=U.ba[0]-r[0];P=U.ba[1]-r[1];Q=U.ba[2]-r[2];T=Math.sqrt(Z* Z+P*P+Q*Q)/T;U.ba[0]=r[0];U.ba[1]=r[1];U.ba[2]=r[2];U.Ec=1-qa(a.Cc[0],a.Cc[1],T);U.L=U.Ac*U.Fc*U.Ec;U.qc=x;U.pc[U.hb]=U.L;U.hb=(U.hb+1)%a.kb;for(x=0;x<a.kb;++x)U.L=Math.min(U.pc[x],U.L);ob.ke(Y,U.L,N);w&&w(U.L,N);if(ca.N)for(x=a.Fb[1]*U.L+a.Fb[0]*(1-U.L),x*=N,T=0;3>T;++T)B[T]=x*r[T]+(1-x)*B[T],A[T]=B[T];else x=Date.now()*a.Xc,O[0]=a.Gb[0]*Math.sin(x),O[1]=a.Gb[1]*Math.cos(x),A[0]=O[0],A[1]=O[1],A[2]=O[2];x=I;Ja.S();L.P();E.set("s53");x.Ja.g(0);H.l(!1,!1)}});y=J.wd();y!==p&&(p=y,la.fc(),I.wa.resize(p, p),la.Nc());M=J.Cd();b()}var d=-1,l=-1,p=64,k=a.Wc,D=!1,K=!1,J=null,M=0,F=null,I={},L=null,Y=null,V=null,w=null,r=[0,0,0],B=[0,0,0],O=[0,0,0],A=[0,0,0],n=[0,0,0],N=1,G={ue:[.5,.5],te:[.5,.5],element:null,da:null,na:[-1,-1]},q=0,aa={jd:-4,Td:-3,ef:-2,Ia:-1,Wa:0},ha=aa.Td,ca={xa:0,N:!1,lb:[]},U={L:1,Fc:1,Ac:1,Ec:1,ba:[0,0,0],qc:Date.now(),pc:new Float32Array(a.kb),hb:0},wa=0,la={fc:function(){d=a.width;l=a.height;nb.o({Ca:a.ce,wc:a.be,Ab:d,ab:l,Gc:a.de,$:a.$,Ic:!0});F=[1,d/l]},Nc:function(){E.G("s49", [{type:"1i",name:"u1",value:0}]);E.G("s50",[{type:"1i",name:"u1",value:0},{type:"1i",name:"u35",value:1},{type:"2f",name:"u36",value:F}]);E.G("s53",[{type:"1i",name:"u35",value:0},{type:"2f",name:"u36",value:F},{type:"3f",name:"u37",value:[0,.5,1]}]);E.G("s51",[{type:"1i",name:"u38",value:0},{type:"1i",name:"u35",value:1},{type:"1f",name:"u39",value:a.Hc[0]},{type:"1f",name:"u40",value:a.Hc[1]},{type:"1f",name:"u41",value:a.oe},{type:"1f",name:"u42",value:a.threshold},{type:"1f",name:"u43",value:F[0]}]); E.G("s52",[{type:"1i",name:"u1",value:0},{type:"1i",name:"u5",value:1},{type:"2f",name:"u44",value:a.Vc}])},gd:function(){E.Tc([{id:"s49",name:"_",ia:"attribute vec2 a0;uniform vec2 u45,u46;varying vec2 vv0;void main(){gl_Position=vec4(a0,0.,1.),vv0=u46+u45*a0;}",la:["a0"],fa:[2],h:"uniform sampler2D u1;varying vec2 vv0;void main(){gl_FragColor=texture2D(u1,vv0);}",i:["u1","u45","u46"],precision:"lowp"},{id:"s50",name:"_",h:"uniform sampler2D u1;varying vec2 vv0;void main(){gl_FragColor=texture2D(u1,vv0);}", ia:"attribute vec2 a0;uniform sampler2D u35;uniform vec2 u36,u45,u46;const vec2 f=vec2(.25,.5),i=vec2(.75,.5),e=vec2(.5,.5);varying vec2 vv0;void main(){vec4 a=texture2D(u35,f);vec2 b=a.gb,c=a.a*u36,d=a0*.5+e,h=b+(d-e)*c;vv0=u46+u45*2.*(h-.5),gl_Position=vec4(a0,0.,1.);}",la:["a0"],fa:[2],i:["u1","u35","u36","u45","u46"],precision:"lowp"},{id:"s51",name:"_",ia:"attribute vec2 a0;void main(){gl_Position=vec4(a0,0.,1.);}",h:"uniform sampler2D u38,u35;uniform vec3 u33,u34;uniform float u39,u40,u41,u42,u43,u32;varying vec2 vv0;const vec4 e=vec4(.25,.25,.25,.25);void main(){vec4 c=texture2D(u38,vec2(.4375,.9375)),d=texture2D(u38,vec2(.5625,.9375));float f=dot(c-d,e);bool g=f>u42;vec4 a=texture2D(u35,vec2(.5,.5));g?a.r=2.:a.r>u41?a.r=0.:a.r>1.9&&(a.a>u40||a.a<u39)?a.r=0.:a.r>1.9?a.r+=1.:0.;if(a.r<.9)a.gba=u33,a.r=1.;else{float h=dot(e,texture2D(u38,vec2(.0625,.9375))),i=dot(e,texture2D(u38,vec2(.1875,.9375))),j=dot(e,texture2D(u38,vec2(.3125,.9375))),b;if(a.r>1.9)b=1.-u32;else b=1.,a.r=0.;float k=a.a*u43;a.gba+=vec3(h,i,j)*u34*b*k;}gl_FragColor=a;}", i:"u38 u35 u33 u39 u40 u41 u42 u34 u43 u32".split(" ")},{id:"s53",name:"_",h:"uniform sampler2D u35;uniform vec3 u37;uniform vec2 u36;varying vec2 vv0;const vec2 i=vec2(1.,1.);void main(){vec4 f=texture2D(u35,vec2(.25,.5));vec2 g=f.gb;float j=f.a;vec2 a=j*u36,c=g+a,d=g;d-=a/2.,c-=a/2.;vec2 k=.5*(d+c),h=step(d,vv0)*step(vv0,c);float l=h.x*h.y;vec2 b=2.*abs(k-vv0)/a;b=pow(b,3.*i),gl_FragColor=vec4(l*u37*max(b.x,b.y),1.);}",i:["u35","u36","u37"],precision:"lowp"},{id:"s52",name:"_",h:"uniform sampler2D u1,u5;uniform vec2 u44;uniform float u32;const vec4 f=vec4(1.,1.,1.,1.);varying vec2 vv0;void main(){vec4 a=texture2D(u1,vv0),b=texture2D(u5,vv0);float c=(1.-u32)*(u44.y-u44.x)+u44.x;gl_FragColor=mix(b,a,c*f);}", i:["u1","u5","u44","u32"]}])},Fd:function(y){var x=new Float32Array([0,.5,.5,0]);y.wa=R.instance({isPot:!0,isFloat:!1,width:p});x={width:1,height:1,isFloat:!0,isPot:!1,array:x};y.Ja=Na.instance(x);y.Oc=Na.instance(x)},hd:function(){G.da=R.instance({C:G.element,isPot:!1,isFloat:!1,isFlipY:!0});L=R.instance({isPot:!1,isFloat:!1,width:d,height:l})},o:function(){la.hd();la.Fd(I);mb.o({jb:0,n:a.Ma[1]-a.Ma[0]+1,sc:a.Ma[0]});sb?t(sb):da(function(y){y=JSON.parse(y);t(y)})},m:function(){g();J&&(J.m(),J=null); ha=aa.jd},ed:function(y){W.Oa&&W.Oa();var x={video:{facingMode:{ideal:pb.facingMode},width:{min:pb.minWidth,max:pb.maxWidth,ideal:pb.idealWidth},height:{min:pb.minHeight,max:pb.maxHeight,ideal:pb.idealHeight}},audio:W.Db};pb.deviceId&&(constraints.deviceId=pb.deviceId);lb(function(T,Z){qb=Z;W.Pa&&W.Pa();y(T)},function(){window.La&&window.La("WEBCAM_UNAVAILABLE")},x)},rc:function(y,x){la.gd();G.element=y;rb=G.element;la.Rc();la.fc();la.Nc();la.o();x&&x()},ac:function(){var y=[-1,-1],x=G.element;"VIDEO"=== x.nodeName?(y[0]=x.videoWidth,y[1]=x.videoHeight):(y[0]=x.width,y[1]=x.height);return y},Rc:function(){var y=la.ac();G.na[0]=y[0];G.na[1]=y[1];Ka.ta().width=y[0];Ka.ta().height=y[1];a.width=y[0];a.height=y[1];var x=G.ue,T=G.te,Z=y[1]/y[0];y=Ka.M()/Ka.A();Z>y?1>=Z?x[0]*=Z:x[1]/=Z:(x[0]*=Z,Z=1/y,x[0]*=Z,x[1]*=Z);x[1]*=y;x=[{type:"2f",name:"u45",value:x},{type:"2f",name:"u46",value:T}];E.G("s50",[{type:"1i",name:"u1",value:0}].concat(x));E.G("s49",x)}};tb.push(la);return la} W.onLoad=function(b){W.ready?b():W.aa.push(b)};W.set_audio=function(b){W.Db=b};W.switch_displayVideo=function(b){W.ka=b;W.ja&&(W.ja.style.display=W.ka?"block":"none")};W.onWebcamAsk=function(b){W.Oa=b};W.onContextLost=function(b){W.Na=b};W.onWebcamGet=function(b){W.Pa=b};W.destroy=function(){rb&&rb.srcObject&&rb.srcObject.getTracks().forEach(function(b){b.stop()});tb.forEach(function(b){b.m()});tb.splice(0);Ka.m();W.switch_displayVideo(!1);W.initialized=!1;W.aa.splice(0)}; W.set_size=function(b,c){a.width=b;a.height=c};W.get_size=function(){return{width:a.width,height:a.height}};W.get_videoStream=function(){return qb};W.get_video=function(){return rb};W.get_cv=function(){return Ka.ta()};W.set_color=function(b){E.G("s53",[{type:"3f",name:"u37",value:b}])}; W.init=function(b){var c=ub(),f=b.callbackReady?b.callbackReady:function(u){console.log("ERR:",u)},g=b.callbackReady?b.callbackReady.bind(null,!1):!1;if("undefined"===typeof b.canvasId)f("NO_CANVASID");else if(document.getElementById(b.canvasId))if(W.initialized)f("ALREADY_INITIALIZED");else{W.initialized=!0;window.La=f?function(u){f(u);window.La=!1}:!1;b.NNCPath&&(a.Bb=b.NNCPath);"undefined"!==typeof b.NNC&&(sb="string"===typeof b.NNC?JSON.parse(b.NNC):b.NNC);g&&W.aa.push(g);if(!Ka.o({Nb:b.canvasId, width:a.width,height:a.height,debug:!1,fb:!1,xc:function(){W.Na&&W.Na()},premultipliedAlpha:!1}))return f("GL_INCOMPATIBLE"),!1;W.ja=Ka.ta();W.ka||(W.ja.style.display="none");H.o();Ja.o();E.o();R.o();C.depthFunc(C.LEQUAL);C.clearDepth(1);b.videoSettings&&b.videoSettings.videoElement?c.rc(b.videoSettings.videoElement,!1):(b.videoSettings&&Object.assign(pb,b.videoSettings),c.ed(function(u){c.rc(u,!1)}));return!0}else f("INVALID_CANVASID")};window.JEEFACETRANSFERAPI=W; ;return JEEFACETRANSFERAPI||window.JEEFACETRANSFERAPI;})();