From 709e25493b1579d963aec88fbeec1b6f9ce11c04 Mon Sep 17 00:00:00 2001 From: Rafat Hussain Date: Mon, 18 Jan 2016 06:22:34 +0530 Subject: [PATCH] Commit : wavelib modified . Periodic extension zero padding error removed. --- js/wavelib.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/js/wavelib.js b/js/wavelib.js index a087eb0..0188e84 100644 --- a/js/wavelib.js +++ b/js/wavelib.js @@ -2,7 +2,7 @@ var Module;if(!Module)Module=(typeof Module!=="undefined"?Module:null)||{};var m var asm=(function(global,env,buffer) { "use asm";var a=new global.Int8Array(buffer);var b=new global.Int16Array(buffer);var c=new global.Int32Array(buffer);var d=new global.Uint8Array(buffer);var e=new global.Uint16Array(buffer);var f=new global.Uint32Array(buffer);var g=new global.Float32Array(buffer);var h=new global.Float64Array(buffer);var i=env.STACKTOP|0;var j=env.STACK_MAX|0;var k=env.tempDoublePtr|0;var l=env.ABORT|0;var m=0;var n=0;var o=0;var p=0;var q=global.NaN,r=global.Infinity;var s=0,t=0,u=0,v=0,w=0.0,x=0,y=0,z=0,A=0.0;var B=0;var C=0;var D=0;var E=0;var F=0;var G=0;var H=0;var I=0;var J=0;var K=0;var L=global.Math.floor;var M=global.Math.abs;var N=global.Math.sqrt;var O=global.Math.pow;var P=global.Math.cos;var Q=global.Math.sin;var R=global.Math.tan;var S=global.Math.acos;var T=global.Math.asin;var U=global.Math.atan;var V=global.Math.atan2;var W=global.Math.exp;var X=global.Math.log;var Y=global.Math.ceil;var Z=global.Math.imul;var _=global.Math.min;var $=global.Math.clz32;var aa=env.abort;var ba=env.assert;var ca=env._sin;var da=env._send;var ea=env.___setErrNo;var fa=env._fflush;var ga=env._pwrite;var ha=env.__reallyNegative;var ia=env._emscripten_set_main_loop_timing;var ja=env._sbrk;var ka=env._emscripten_memcpy_big;var la=env._fileno;var ma=env._sysconf;var na=env._cos;var oa=env._puts;var pa=env._printf;var qa=env._log;var ra=env._write;var sa=env._emscripten_set_main_loop;var ta=env.___errno_location;var ua=env._fputc;var va=env._mkport;var wa=env.__exit;var xa=env._abort;var ya=env._fwrite;var za=env._time;var Aa=env._fprintf;var Ba=env._ceil;var Ca=env.__formatString;var Da=env._fputs;var Ea=env._exit;var Fa=0.0; // EMSCRIPTEN_START_FUNCS -function Ga(a){a=a|0;var b=0;b=i;i=i+a|0;i=i+15&-16;return b|0}function Ha(){return i|0}function Ia(a){a=a|0;i=a}function Ja(a,b){a=a|0;b=b|0;i=a;j=b}function Ka(a,b){a=a|0;b=b|0;if(!m){m=a;n=b}}function La(b){b=b|0;a[k>>0]=a[b>>0];a[k+1>>0]=a[b+1>>0];a[k+2>>0]=a[b+2>>0];a[k+3>>0]=a[b+3>>0]}function Ma(b){b=b|0;a[k>>0]=a[b>>0];a[k+1>>0]=a[b+1>>0];a[k+2>>0]=a[b+2>>0];a[k+3>>0]=a[b+3>>0];a[k+4>>0]=a[b+4>>0];a[k+5>>0]=a[b+5>>0];a[k+6>>0]=a[b+6>>0];a[k+7>>0]=a[b+7>>0]}function Na(a){a=a|0;B=a}function Oa(){return B|0}function Pa(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0.0,p=0,q=0,r=0,s=0,t=0,u=0,v=0.0,w=0,x=0,y=0,z=0,A=0,B=0;if((Qa(a)|0)==1){d=Kb((a<<4)+272|0)|0;e=d+8|0;f=Ra(a,e)|0;c[d+264>>2]=f;g=d+272|0;if((f|0)>0){i=f+-1|0;j=1;k=0;l=0;while(1){m=c[e+(i-l<<2)>>2]|0;n=j;j=Z(m,j)|0;o=-6.283185307179586/+(j|0);if((n|0)>0&(m|0)>1){p=m+-1|0;m=(p|0)>1?p:1;q=Z(n,m)|0;r=k;s=0;while(1){t=r;u=0;while(1){u=u+1|0;v=o*+(Z(u,s)|0);h[g+(t<<4)>>3]=+P(+v);h[g+(t<<4)+8>>3]=+Q(+v);if((u|0)==(p|0))break;else t=t+1|0}s=s+1|0;if((s|0)==(n|0))break;else r=r+m|0}w=k+q|0}else w=k;l=l+1|0;if((l|0)==(f|0))break;else k=w}}c[d+268>>2]=0;x=d;y=a}else{d=~~+Eb(+Y(+(+Fb(+(a|0))/.3010299956639812)));w=d<<((d|0)<((a<<1)+-2|0)&1);d=Kb((w<<4)+272|0)|0;k=d+8|0;f=Ra(w,k)|0;c[d+264>>2]=f;l=d+272|0;if((f|0)>0){g=f+-1|0;j=1;i=0;e=0;while(1){m=c[k+(g-e<<2)>>2]|0;r=j;j=Z(m,j)|0;o=-6.283185307179586/+(j|0);if((r|0)>0&(m|0)>1){n=m+-1|0;m=(n|0)>1?n:1;s=Z(r,m)|0;p=i;t=0;while(1){u=p;z=0;while(1){z=z+1|0;v=o*+(Z(z,t)|0);h[l+(u<<4)>>3]=+P(+v);h[l+(u<<4)+8>>3]=+Q(+v);if((z|0)==(n|0))break;else u=u+1|0}t=t+1|0;if((t|0)==(r|0))break;else p=p+m|0}A=i+s|0}else A=i;e=e+1|0;if((e|0)==(f|0))break;else i=A}}c[d+268>>2]=1;x=d;y=w}c[x>>2]=a;c[x+4>>2]=b;if((b|0)==-1&(y|0)>0)B=0;else return x|0;do{b=x+272+(B<<4)+8|0;h[b>>3]=-+h[b>>3];B=B+1|0}while((B|0)!=(y|0));return x|0}function Qa(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;if(!((a|0)%53|0)){b=a;while(1){c=(b|0)/53|0;if(!((c|0)%53|0))b=c;else{d=c;break}}}else d=a;if(!((d|0)%47|0)){a=d;while(1){b=(a|0)/47|0;if(!((b|0)%47|0))a=b;else{e=b;break}}}else e=d;if(!((e|0)%43|0)){d=e;while(1){a=(d|0)/43|0;if(!((a|0)%43|0))d=a;else{f=a;break}}}else f=e;if(!((f|0)%41|0)){e=f;while(1){d=(e|0)/41|0;if(!((d|0)%41|0))e=d;else{g=d;break}}}else g=f;if(!((g|0)%37|0)){f=g;while(1){e=(f|0)/37|0;if(!((e|0)%37|0))f=e;else{h=e;break}}}else h=g;if(!((h|0)%31|0)){g=h;while(1){f=(g|0)/31|0;if(!((f|0)%31|0))g=f;else{i=f;break}}}else i=h;if(!((i|0)%29|0)){h=i;while(1){g=(h|0)/29|0;if(!((g|0)%29|0))h=g;else{j=g;break}}}else j=i;if(!((j|0)%23|0)){i=j;while(1){h=(i|0)/23|0;if(!((h|0)%23|0))i=h;else{k=h;break}}}else k=j;if(!((k|0)%17|0)){j=k;while(1){i=(j|0)/17|0;if(!((i|0)%17|0))j=i;else{l=i;break}}}else l=k;if(!((l|0)%13|0)){k=l;while(1){j=(k|0)/13|0;if(!((j|0)%13|0))k=j;else{m=j;break}}}else m=l;if(!((m|0)%11|0)){l=m;while(1){k=(l|0)/11|0;if(!((k|0)%11|0))l=k;else{n=k;break}}}else n=m;if(!(n&7)){m=n;while(1){l=(m|0)/8|0;if(!(l&7))m=l;else{o=l;break}}}else o=n;if(!((o|0)%7|0)){n=o;while(1){m=(n|0)/7|0;if(!((m|0)%7|0))n=m;else{p=m;break}}}else p=o;if(!((p|0)%5|0)){o=p;while(1){n=(o|0)/5|0;if(!((n|0)%5|0))o=n;else{q=n;break}}}else q=p;if(!(q&3)){p=q;while(1){o=(p|0)/4|0;if(!(o&3))p=o;else{r=o;break}}}else r=q;if(!((r|0)%3|0)){q=r;while(1){p=(q|0)/3|0;if(!((p|0)%3|0))q=p;else{s=p;break}}}else s=r;if(!(s&1))t=s;else{u=s;v=(u|0)==1;w=v&1;return w|0}while(1){s=(t|0)/2|0;if(!(s&1))t=s;else{u=s;break}}v=(u|0)==1;w=v&1;return w|0}function Ra(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0;if(!((a|0)%53|0)){d=a;e=0;while(1){f=(d|0)/53|0;c[b+(e<<2)>>2]=53;g=e+1|0;if(!((f|0)%53|0)){d=f;e=g}else{h=f;i=g;break}}}else{h=a;i=0}if(!((h|0)%47|0)){a=h;e=i;while(1){d=(a|0)/47|0;c[b+(e<<2)>>2]=47;g=e+1|0;if(!((d|0)%47|0)){a=d;e=g}else{j=d;k=g;break}}}else{j=h;k=i}if(!((j|0)%43|0)){i=j;h=k;while(1){e=(i|0)/43|0;c[b+(h<<2)>>2]=43;a=h+1|0;if(!((e|0)%43|0)){i=e;h=a}else{l=e;m=a;break}}}else{l=j;m=k}if(!((l|0)%41|0)){k=l;j=m;while(1){h=(k|0)/41|0;c[b+(j<<2)>>2]=41;i=j+1|0;if(!((h|0)%41|0)){k=h;j=i}else{n=h;o=i;break}}}else{n=l;o=m}if(!((n|0)%37|0)){m=n;l=o;while(1){j=(m|0)/37|0;c[b+(l<<2)>>2]=37;k=l+1|0;if(!((j|0)%37|0)){m=j;l=k}else{p=j;q=k;break}}}else{p=n;q=o}if(!((p|0)%31|0)){o=p;n=q;while(1){l=(o|0)/31|0;c[b+(n<<2)>>2]=31;m=n+1|0;if(!((l|0)%31|0)){o=l;n=m}else{r=l;s=m;break}}}else{r=p;s=q}if(!((r|0)%29|0)){q=r;p=s;while(1){n=(q|0)/29|0;c[b+(p<<2)>>2]=29;o=p+1|0;if(!((n|0)%29|0)){q=n;p=o}else{t=n;u=o;break}}}else{t=r;u=s}if(!((t|0)%23|0)){s=t;r=u;while(1){p=(s|0)/23|0;c[b+(r<<2)>>2]=23;q=r+1|0;if(!((p|0)%23|0)){s=p;r=q}else{v=p;w=q;break}}}else{v=t;w=u}if(!((v|0)%19|0)){u=v;t=w;while(1){r=(u|0)/19|0;c[b+(t<<2)>>2]=19;s=t+1|0;if(!((r|0)%19|0)){u=r;t=s}else{x=r;y=s;break}}}else{x=v;y=w}if(!((x|0)%17|0)){w=x;v=y;while(1){t=(w|0)/17|0;c[b+(v<<2)>>2]=17;u=v+1|0;if(!((t|0)%17|0)){w=t;v=u}else{z=t;A=u;break}}}else{z=x;A=y}if(!((z|0)%13|0)){y=z;x=A;while(1){v=(y|0)/13|0;c[b+(x<<2)>>2]=13;w=x+1|0;if(!((v|0)%13|0)){y=v;x=w}else{B=v;C=w;break}}}else{B=z;C=A}if(!((B|0)%11|0)){A=B;z=C;while(1){x=(A|0)/11|0;c[b+(z<<2)>>2]=11;y=z+1|0;if(!((x|0)%11|0)){A=x;z=y}else{D=x;E=y;break}}}else{D=B;E=C}if(!(D&7)){C=D;B=E;while(1){z=(C|0)/8|0;c[b+(B<<2)>>2]=8;A=B+1|0;if(!(z&7)){C=z;B=A}else{F=z;G=A;break}}}else{F=D;G=E}if(!((F|0)%7|0)){E=F;D=G;while(1){B=(E|0)/7|0;c[b+(D<<2)>>2]=7;C=D+1|0;if(!((B|0)%7|0)){E=B;D=C}else{H=B;I=C;break}}}else{H=F;I=G}if(!((H|0)%5|0)){G=H;F=I;while(1){D=(G|0)/5|0;c[b+(F<<2)>>2]=5;E=F+1|0;if(!((D|0)%5|0)){G=D;F=E}else{J=D;K=E;break}}}else{J=H;K=I}if(!(J&3)){I=J;H=K;while(1){F=(I|0)/4|0;c[b+(H<<2)>>2]=4;G=H+1|0;if(!(F&3)){I=F;H=G}else{L=F;M=G;break}}}else{L=J;M=K}if(!((L|0)%3|0)){K=L;J=M;while(1){H=(K|0)/3|0;c[b+(J<<2)>>2]=3;I=J+1|0;if(!((H|0)%3|0)){K=H;J=I}else{N=H;O=I;break}}}else{N=L;O=M}if(!(N&1)){M=N;L=O;while(1){J=(M|0)/2|0;c[b+(L<<2)>>2]=2;K=L+1|0;if(!(J&1)){M=J;L=K}else{P=J;Q=K;break}}}else{P=N;Q=O}if((P|0)>31){R=P;S=Q;T=2}else{U=Q;return U|0}while(1){Q=T*6|0;P=Q+-1|0;O=Q|1;if(!((R|0)%(P|0)|0)){Q=R;N=S;while(1){c[b+(N<<2)>>2]=P;L=N+1|0;M=(Q|0)/(P|0)|0;if(!((M|0)%(P|0)|0)){Q=M;N=L}else{V=M;W=L;break}}}else{V=R;W=S}if(!((V|0)%(O|0)|0)){N=V;Q=W;while(1){c[b+(Q<<2)>>2]=O;P=Q+1|0;L=(N|0)/(O|0)|0;if(!((L|0)%(O|0)|0)){N=L;Q=P}else{X=L;Y=P;break}}}else{X=V;Y=W}if((X|0)>1){R=X;S=Y;T=T+1|0}else{U=Y;break}}return U|0}function Sa(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=c[a+268>>2]|0;if((e|0)==1){Ua(b,d,a,c[a+4>>2]|0,c[a>>2]|0);return}else if(!e){Ta(d,b,a,c[a+4>>2]|0,c[a>>2]|0,1,0);return}else return}function Ta(a,b,d,e,f,g,i){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;i=i|0;var j=0,k=0,l=0.0,m=0.0,n=0,o=0.0,p=0,q=0.0,r=0,s=0,t=0.0,u=0,v=0.0,w=0,x=0.0,y=0,z=0.0,A=0,B=0.0,C=0,D=0.0,E=0,F=0.0,G=0,H=0.0,I=0,J=0.0,K=0,L=0.0,M=0.0,N=0.0,O=0,R=0.0,S=0.0,T=0.0,U=0.0,V=0.0,W=0.0,X=0,Y=0.0,_=0.0,$=0.0,aa=0.0,ba=0.0,ca=0.0,da=0.0,ea=0.0,fa=0.0,ga=0.0,ha=0.0,ia=0.0,ja=0.0,ka=0.0,la=0,ma=0,na=0,oa=0.0,pa=0.0,qa=0.0,ra=0.0,sa=0.0,ta=0.0,ua=0,va=0,wa=0.0,xa=0.0,ya=0.0,za=0.0,Aa=0.0,Ba=0.0,Ca=0,Da=0.0,Ea=0.0,Fa=0.0,Ga=0.0,Ha=0.0,Ia=0.0,Ja=0;j=(f|0)>1;if(j)k=c[d+8+(i<<2)>>2]|0;else k=0;switch(f|0){case 7:{l=+h[b>>3];h[a>>3]=l;m=+h[b+8>>3];n=a+8|0;h[n>>3]=m;o=+h[b+(g<<4)>>3];p=a+16|0;h[p>>3]=o;q=+h[b+(g<<4)+8>>3];r=a+24|0;h[r>>3]=q;s=g<<1;t=+h[b+(s<<4)>>3];u=a+32|0;h[u>>3]=t;v=+h[b+(s<<4)+8>>3];s=a+40|0;h[s>>3]=v;w=g*3|0;x=+h[b+(w<<4)>>3];y=a+48|0;h[y>>3]=x;z=+h[b+(w<<4)+8>>3];w=a+56|0;h[w>>3]=z;A=g<<2;B=+h[b+(A<<4)>>3];C=a+64|0;h[C>>3]=B;D=+h[b+(A<<4)+8>>3];A=a+72|0;h[A>>3]=D;E=g*5|0;F=+h[b+(E<<4)>>3];G=a+80|0;h[G>>3]=F;H=+h[b+(E<<4)+8>>3];E=a+88|0;h[E>>3]=H;I=g*6|0;J=+h[b+(I<<4)>>3];K=a+96|0;h[K>>3]=J;L=+h[b+(I<<4)+8>>3];I=a+104|0;h[I>>3]=L;M=o+J;N=o-J;J=L+q;o=q-L;L=t+F;q=t-F;F=v+H;t=v-H;H=x+B;v=x-B;B=z+D;x=z-D;D=M*.62348980185+l-L*.22252093395-H*.9009688679;z=J*.62348980185+m-F*.22252093395-B*.9009688679;O=(e|0)==1;if(O){R=o*-.78183148246-t*.97492791218-x*.43388373911;S=N*-.78183148246-q*.97492791218-v*.43388373911}else{R=o*.78183148246+t*.97492791218+x*.43388373911;S=N*.78183148246+q*.97492791218+v*.43388373911}h[p>>3]=D-R;h[K>>3]=D+R;h[r>>3]=z+S;h[I>>3]=z-S;S=H*.62348980185+(l-M*.22252093395-L*.9009688679);z=B*.62348980185+(m-J*.22252093395-F*.9009688679);R=N*.97492791218;D=q*.43388373911;if(O){T=t*.43388373911-o*.97492791218+x*.78183148246;U=D-R+v*.78183148246}else{T=o*.97492791218-t*.43388373911-x*.78183148246;U=R-D-v*.78183148246}h[u>>3]=S-T;h[G>>3]=S+T;h[s>>3]=z+U;h[E>>3]=z-U;U=L*.62348980185+(l-M*.9009688679)-H*.22252093395;z=F*.62348980185+(m-J*.9009688679)-B*.22252093395;T=N*.43388373911;N=q*.78183148246;if(O){V=t*.78183148246-o*.43388373911-x*.97492791218;W=N-T-v*.97492791218}else{V=o*.43388373911-t*.78183148246+x*.97492791218;W=T-N+v*.97492791218}h[y>>3]=U-V;h[C>>3]=U+V;h[w>>3]=z+W;h[A>>3]=z-W;h[a>>3]=M+L+H+l;h[n>>3]=J+F+B+m;return}case 8:{m=+h[b>>3];h[a>>3]=m;B=+h[b+8>>3];n=a+8|0;h[n>>3]=B;F=+h[b+(g<<4)>>3];A=a+16|0;h[A>>3]=F;J=+h[b+(g<<4)+8>>3];w=a+24|0;h[w>>3]=J;C=g<<1;l=+h[b+(C<<4)>>3];y=a+32|0;h[y>>3]=l;H=+h[b+(C<<4)+8>>3];C=a+40|0;h[C>>3]=H;O=g*3|0;L=+h[b+(O<<4)>>3];E=a+48|0;h[E>>3]=L;M=+h[b+(O<<4)+8>>3];O=a+56|0;h[O>>3]=M;s=g<<2;W=+h[b+(s<<4)>>3];G=a+64|0;h[G>>3]=W;z=+h[b+(s<<4)+8>>3];s=a+72|0;h[s>>3]=z;u=g*5|0;V=+h[b+(u<<4)>>3];I=a+80|0;h[I>>3]=V;U=+h[b+(u<<4)+8>>3];u=a+88|0;h[u>>3]=U;r=g*6|0;v=+h[b+(r<<4)>>3];K=a+96|0;h[K>>3]=v;N=+h[b+(r<<4)+8>>3];r=a+104|0;h[r>>3]=N;p=g*7|0;T=+h[b+(p<<4)>>3];X=a+112|0;h[X>>3]=T;x=+h[b+(p<<4)+8>>3];p=a+120|0;h[p>>3]=x;t=m+W;o=m-W;W=B+z;m=B-z;z=F+T;B=F-T;T=x+J;F=J-x;x=L+V;J=L-V;V=M+U;L=M-U;U=l+v;M=l-v;v=H+N;l=H-N;h[a>>3]=t+z+x+U;h[n>>3]=W+T+V+v;h[G>>3]=t-z-x+U;h[s>>3]=W-T-V+v;N=B+J;H=F+L;q=(z-x)*.7071067811865476;x=o+q;z=(T-V)*.7071067811865476;V=m+z;s=(e|0)==1;if(s){Y=H*-.7071067811865476-l;_=N*-.7071067811865476-M}else{Y=H*.7071067811865476+l;_=N*.7071067811865476+M}h[A>>3]=x-Y;h[w>>3]=V+_;h[X>>3]=x+Y;h[p>>3]=V-_;_=t-U;U=W-v;v=s?L-F:F-L;L=s?J-B:B-J;h[y>>3]=_-v;h[C>>3]=L+U;h[K>>3]=v+_;h[r>>3]=U-L;L=o-q;q=m-z;z=N*.7071067811865476;if(s){$=l-H*.7071067811865476;aa=M-z}else{$=H*.7071067811865476-l;aa=z-M}h[E>>3]=L-$;h[O>>3]=q+aa;h[I>>3]=L+$;h[u>>3]=q-aa;return}case 5:{aa=+h[b>>3];h[a>>3]=aa;q=+h[b+8>>3];u=a+8|0;h[u>>3]=q;$=+h[b+(g<<4)>>3];I=a+16|0;h[I>>3]=$;L=+h[b+(g<<4)+8>>3];O=a+24|0;h[O>>3]=L;E=g<<1;M=+h[b+(E<<4)>>3];s=a+32|0;h[s>>3]=M;z=+h[b+(E<<4)+8>>3];E=a+40|0;h[E>>3]=z;r=g*3|0;l=+h[b+(r<<4)>>3];K=a+48|0;h[K>>3]=l;H=+h[b+(r<<4)+8>>3];r=a+56|0;h[r>>3]=H;C=g<<2;N=+h[b+(C<<4)>>3];y=a+64|0;h[y>>3]=N;m=+h[b+(C<<4)+8>>3];C=a+72|0;h[C>>3]=m;o=$+N;U=$-N;N=m+L;$=L-m;m=M+l;L=M-l;l=z+H;M=z-H;p=(e|0)==1;if(p){ba=$*.95105651629+M*.58778525229;ca=U*.95105651629+L*.58778525229}else{ba=$*-.95105651629-M*.58778525229;ca=U*-.95105651629-L*.58778525229}H=o*.30901699437-m*.80901699437+aa;z=N*.30901699437-l*.80901699437+q;h[I>>3]=ba+H;h[O>>3]=z-ca;h[y>>3]=H-ba;h[C>>3]=ca+z;z=U*.58778525229;U=L*.95105651629;if(p){da=$*.58778525229-M*.95105651629;ea=z-U}else{da=M*.95105651629-$*.58778525229;ea=U-z}z=m*.30901699437-o*.80901699437+aa;U=l*.30901699437-N*.80901699437+q;h[s>>3]=da+z;h[E>>3]=U-ea;h[K>>3]=z-da;h[r>>3]=ea+U;h[a>>3]=o+m+aa;h[u>>3]=N+l+q;return}case 1:{h[a>>3]=+h[b>>3];h[a+8>>3]=+h[b+8>>3];return}case 2:{q=+h[b>>3];h[a>>3]=q;l=+h[b+8>>3];u=a+8|0;h[u>>3]=l;N=+h[b+(g<<4)>>3];aa=+h[b+(g<<4)+8>>3];h[a>>3]=q+N;h[u>>3]=l+aa;h[a+16>>3]=q-N;h[a+24>>3]=l-aa;return}case 3:{aa=+h[b>>3];h[a>>3]=aa;l=+h[b+8>>3];u=a+8|0;h[u>>3]=l;N=+h[b+(g<<4)>>3];r=a+16|0;h[r>>3]=N;q=+h[b+(g<<4)+8>>3];K=a+24|0;h[K>>3]=q;E=g<<1;m=+h[b+(E<<4)>>3];o=+h[b+(E<<4)+8>>3];U=N+m;ea=o+q;da=+(e|0)*.86602540378;z=da*(N-m);m=da*(q-o);o=aa-U*.5;q=l-ea*.5;h[a>>3]=U+aa;h[u>>3]=ea+l;h[r>>3]=o+m;h[K>>3]=q-z;h[a+32>>3]=o-m;h[a+40>>3]=z+q;return}case 4:{q=+h[b>>3];h[a>>3]=q;z=+h[b+8>>3];K=a+8|0;h[K>>3]=z;m=+h[b+(g<<4)>>3];r=a+16|0;h[r>>3]=m;o=+h[b+(g<<4)+8>>3];u=a+24|0;h[u>>3]=o;E=g<<1;l=+h[b+(E<<4)>>3];s=a+32|0;h[s>>3]=l;ea=+h[b+(E<<4)+8>>3];E=a+40|0;h[E>>3]=ea;p=g*3|0;aa=+h[b+(p<<4)>>3];U=+h[b+(p<<4)+8>>3];da=q+l;N=z+ea;$=q-l;l=z-ea;ea=m+aa;z=U+o;q=+(e|0);M=q*(m-aa);aa=q*(o-U);h[a>>3]=da+ea;h[K>>3]=N+z;h[r>>3]=$+aa;h[u>>3]=l-M;h[s>>3]=da-ea;h[E>>3]=N-z;h[a+48>>3]=$-aa;h[a+56>>3]=l+M;return}default:switch(k|0){case 2:{E=(f|0)/2|0;s=g<<1;u=i+1|0;Ta(a,b,d,e,E,s,u);Ta(a+(E<<4)|0,b+(g<<4)|0,d,e,E,s,u);if(!j)return;j=E+-1|0;u=0;do{s=j+u|0;M=+h[d+272+(s<<4)>>3];l=+h[d+272+(s<<4)+8>>3];s=u+E|0;r=a+(u<<4)|0;aa=+h[r>>3];K=a+(u<<4)+8|0;$=+h[K>>3];p=a+(s<<4)|0;z=+h[p>>3];C=a+(s<<4)+8|0;N=+h[C>>3];ea=M*z-l*N;da=l*z+M*N;h[r>>3]=aa+ea;h[K>>3]=$+da;h[p>>3]=aa-ea;h[C>>3]=$-da;u=u+1|0}while((u|0)<(E|0));return}case 3:{E=(f|0)/3|0;u=g*3|0;j=i+1|0;Ta(a,b,d,e,E,u,j);Ta(a+(E<<4)|0,b+(g<<4)|0,d,e,E,u,j);Ta(a+(E<<1<<4)|0,b+(g<<1<<4)|0,d,e,E,u,j);if((f|0)<=2)return;j=E+-1|0;da=+(e|0)*.86602540378;u=0;do{C=u<<1;p=j+C|0;$=+h[d+272+(p<<4)>>3];ea=+h[d+272+(p<<4)+8>>3];p=C+E|0;aa=+h[d+272+(p<<4)>>3];N=+h[d+272+(p<<4)+8>>3];p=u+E|0;C=p+E|0;K=a+(u<<4)|0;M=+h[K>>3];r=a+(u<<4)+8|0;z=+h[r>>3];s=a+(p<<4)|0;l=+h[s>>3];y=a+(p<<4)+8|0;U=+h[y>>3];o=$*l-ea*U;q=ea*l+$*U;p=a+(C<<4)|0;U=+h[p>>3];O=a+(C<<4)+8|0;$=+h[O>>3];l=aa*U-N*$;ea=N*U+aa*$;$=o+l;aa=q+ea;U=da*(o-l);l=da*(q-ea);ea=M-$*.5;q=z-aa*.5;h[K>>3]=M+$;h[r>>3]=z+aa;h[s>>3]=l+ea;h[y>>3]=q-U;h[p>>3]=ea-l;h[O>>3]=U+q;u=u+1|0}while((u|0)<(E|0));return}case 4:{E=(f|0)/4|0;u=g<<2;j=i+1|0;Ta(a,b,d,e,E,u,j);O=a+(E<<4)|0;Ta(O,b+(g<<4)|0,d,e,E,u,j);p=E<<1;Ta(a+(p<<4)|0,b+(g<<1<<4)|0,d,e,E,u,j);y=E*3|0;Ta(a+(y<<4)|0,b+(g*3<<4)|0,d,e,E,u,j);da=+h[a>>3];j=a+8|0;q=+h[j>>3];U=+h[O>>3];u=a+(E<<4)+8|0;l=+h[u>>3];s=a+(p<<4)|0;ea=+h[s>>3];r=a+(p<<4)+8|0;aa=+h[r>>3];p=a+(y<<4)|0;z=+h[p>>3];K=a+(y<<4)+8|0;$=+h[K>>3];M=da+ea;o=q+aa;N=da-ea;ea=q-aa;aa=U+z;q=l+$;da=+(e|0);m=da*(U-z);z=da*(l-$);h[a>>3]=M+aa;h[j>>3]=o+q;h[O>>3]=N+z;h[u>>3]=ea-m;h[s>>3]=M-aa;h[r>>3]=o-q;h[p>>3]=N-z;h[K>>3]=ea+m;if((f|0)<=7)return;K=E+-1|0;p=1;do{r=p*3|0;s=K+r|0;m=+h[d+272+(s<<4)>>3];ea=+h[d+272+(s<<4)+8>>3];s=r+E|0;z=+h[d+272+(s<<4)>>3];N=+h[d+272+(s<<4)+8>>3];r=s+1|0;q=+h[d+272+(r<<4)>>3];o=+h[d+272+(r<<4)+8>>3];r=p+E|0;s=r+E|0;u=s+E|0;O=a+(p<<4)|0;aa=+h[O>>3];j=a+(p<<4)+8|0;M=+h[j>>3];y=a+(r<<4)|0;$=+h[y>>3];C=a+(r<<4)+8|0;l=+h[C>>3];U=m*$-ea*l;L=ea*$+m*l;r=a+(s<<4)|0;l=+h[r>>3];I=a+(s<<4)+8|0;m=+h[I>>3];$=z*l-N*m;ea=N*l+z*m;s=a+(u<<4)|0;m=+h[s>>3];X=a+(u<<4)+8|0;z=+h[X>>3];l=q*m-o*z;N=o*m+q*z;z=aa+$;q=M+ea;m=aa-$;$=M-ea;ea=U+l;M=L+N;aa=da*(U-l);l=da*(L-N);h[O>>3]=z+ea;h[j>>3]=q+M;h[y>>3]=m+l;h[C>>3]=$-aa;h[r>>3]=z-ea;h[I>>3]=q-M;h[s>>3]=m-l;h[X>>3]=$+aa;p=p+1|0}while((p|0)<(E|0));return}case 5:{E=(f|0)/5|0;p=g*5|0;K=i+1|0;Ta(a,b,d,e,E,p,K);X=a+(E<<4)|0;Ta(X,b+(g<<4)|0,d,e,E,p,K);s=E<<1;Ta(a+(s<<4)|0,b+(g<<1<<4)|0,d,e,E,p,K);I=E*3|0;Ta(a+(I<<4)|0,b+(g*3<<4)|0,d,e,E,p,K);r=E<<2;Ta(a+(r<<4)|0,b+(g<<2<<4)|0,d,e,E,p,K);da=+h[a>>3];K=a+8|0;aa=+h[K>>3];$=+h[X>>3];p=a+(E<<4)+8|0;l=+h[p>>3];C=a+(s<<4)|0;m=+h[C>>3];y=a+(s<<4)+8|0;M=+h[y>>3];s=a+(I<<4)|0;q=+h[s>>3];j=a+(I<<4)+8|0;ea=+h[j>>3];I=a+(r<<4)|0;z=+h[I>>3];O=a+(r<<4)+8|0;N=+h[O>>3];L=$+z;U=l+N;o=m+q;ca=M+ea;ba=$-z;z=l-N;N=m-q;q=M-ea;h[a>>3]=o+(da+L);h[K>>3]=ca+(aa+U);ea=+(e|0);M=ea*(N*.58778525229+ba*.95105651629);m=ea*(q*.58778525229+z*.95105651629);l=da+(L*.30901699437-o*.80901699437);$=aa+(U*.30901699437-ca*.80901699437);h[X>>3]=l+m;h[p>>3]=$-M;h[I>>3]=l-m;h[O>>3]=M+$;$=ea*(ba*.58778525229-N*.95105651629);N=ea*(z*.58778525229-q*.95105651629);q=da+(o*.30901699437-L*.80901699437);L=aa+(ca*.30901699437-U*.80901699437);h[C>>3]=q+N;h[y>>3]=L-$;h[s>>3]=q-N;h[j>>3]=$+L;if((f|0)<=9)return;j=E+-1|0;if((e|0)==1){s=1;do{y=s<<2;C=j+y|0;L=+h[d+272+(C<<4)>>3];$=+h[d+272+(C<<4)+8>>3];C=y+E|0;N=+h[d+272+(C<<4)>>3];q=+h[d+272+(C<<4)+8>>3];y=C+1|0;U=+h[d+272+(y<<4)>>3];ca=+h[d+272+(y<<4)+8>>3];y=C+2|0;aa=+h[d+272+(y<<4)>>3];o=+h[d+272+(y<<4)+8>>3];y=s+E|0;C=y+E|0;O=C+E|0;I=O+E|0;p=a+(s<<4)|0;da=+h[p>>3];X=a+(s<<4)+8|0;z=+h[X>>3];K=a+(y<<4)|0;ea=+h[K>>3];r=a+(y<<4)+8|0;ba=+h[r>>3];M=L*ea-$*ba;m=$*ea+L*ba;y=a+(C<<4)|0;ba=+h[y>>3];u=a+(C<<4)+8|0;L=+h[u>>3];ea=N*ba-q*L;$=q*ba+N*L;C=a+(O<<4)|0;L=+h[C>>3];w=a+(O<<4)+8|0;N=+h[w>>3];ba=U*L-ca*N;q=ca*L+U*N;O=a+(I<<4)|0;N=+h[O>>3];A=a+(I<<4)+8|0;U=+h[A>>3];L=aa*N-o*U;ca=o*N+aa*U;U=M+L;aa=m+ca;N=ea+ba;o=$+q;l=M-L;L=m-ca;ca=ea-ba;ba=$-q;h[p>>3]=N+(da+U);h[X>>3]=o+(z+aa);q=ca*.58778525229+l*.95105651629;$=ba*.58778525229+L*.95105651629;ea=da+(U*.30901699437-N*.80901699437);m=z+(aa*.30901699437-o*.80901699437);h[K>>3]=ea+$;h[r>>3]=m-q;h[O>>3]=ea-$;h[A>>3]=m+q;q=l*.58778525229-ca*.95105651629;ca=L*.58778525229-ba*.95105651629;ba=da+(N*.30901699437-U*.80901699437);U=z+(o*.30901699437-aa*.80901699437);h[y>>3]=ba+ca;h[u>>3]=U-q;h[C>>3]=ba-ca;h[w>>3]=U+q;s=s+1|0}while((s|0)<(E|0));return}else{s=1;do{w=s<<2;C=j+w|0;q=+h[d+272+(C<<4)>>3];U=+h[d+272+(C<<4)+8>>3];C=w+E|0;ca=+h[d+272+(C<<4)>>3];ba=+h[d+272+(C<<4)+8>>3];w=C+1|0;aa=+h[d+272+(w<<4)>>3];o=+h[d+272+(w<<4)+8>>3];w=C+2|0;z=+h[d+272+(w<<4)>>3];N=+h[d+272+(w<<4)+8>>3];w=s+E|0;C=w+E|0;u=C+E|0;y=u+E|0;A=a+(s<<4)|0;da=+h[A>>3];O=a+(s<<4)+8|0;L=+h[O>>3];r=a+(w<<4)|0;l=+h[r>>3];K=a+(w<<4)+8|0;m=+h[K>>3];$=q*l-U*m;ea=U*l+q*m;w=a+(C<<4)|0;m=+h[w>>3];X=a+(C<<4)+8|0;q=+h[X>>3];l=ca*m-ba*q;U=ba*m+ca*q;C=a+(u<<4)|0;q=+h[C>>3];p=a+(u<<4)+8|0;ca=+h[p>>3];m=aa*q-o*ca;ba=o*q+aa*ca;u=a+(y<<4)|0;ca=+h[u>>3];I=a+(y<<4)+8|0;aa=+h[I>>3];q=z*ca-N*aa;o=N*ca+z*aa;aa=$+q;z=ea+o;ca=l+m;N=U+ba;M=$-q;q=ea-o;o=l-m;m=U-ba;h[A>>3]=ca+(da+aa);h[O>>3]=N+(L+z);ba=M*-.95105651629-o*.58778525229;U=q*-.95105651629-m*.58778525229;l=da+(aa*.30901699437-ca*.80901699437);ea=L+(z*.30901699437-N*.80901699437);h[r>>3]=l+U;h[K>>3]=ea-ba;h[u>>3]=l-U;h[I>>3]=ea+ba;ba=o*.95105651629-M*.58778525229;M=m*.95105651629-q*.58778525229;q=da+(ca*.30901699437-aa*.80901699437);aa=L+(N*.30901699437-z*.80901699437);h[w>>3]=q+M;h[X>>3]=aa-ba;h[C>>3]=q-M;h[p>>3]=aa+ba;s=s+1|0}while((s|0)<(E|0));return}break}case 7:{E=(f|0)/7|0;s=g*7|0;j=i+1|0;Ta(a,b,d,e,E,s,j);p=a+(E<<4)|0;Ta(p,b+(g<<4)|0,d,e,E,s,j);C=E<<1;Ta(a+(C<<4)|0,b+(g<<1<<4)|0,d,e,E,s,j);X=E*3|0;Ta(a+(X<<4)|0,b+(g*3<<4)|0,d,e,E,s,j);w=E<<2;Ta(a+(w<<4)|0,b+(g<<2<<4)|0,d,e,E,s,j);I=E*5|0;Ta(a+(I<<4)|0,b+(g*5<<4)|0,d,e,E,s,j);u=E*6|0;Ta(a+(u<<4)|0,b+(g*6<<4)|0,d,e,E,s,j);ba=+h[a>>3];j=a+8|0;aa=+h[j>>3];M=+h[p>>3];s=a+(E<<4)+8|0;q=+h[s>>3];K=a+(C<<4)|0;z=+h[K>>3];r=a+(C<<4)+8|0;N=+h[r>>3];C=a+(X<<4)|0;L=+h[C>>3];O=a+(X<<4)+8|0;ca=+h[O>>3];X=a+(w<<4)|0;da=+h[X>>3];A=a+(w<<4)+8|0;m=+h[A>>3];w=a+(I<<4)|0;o=+h[w>>3];y=a+(I<<4)+8|0;ea=+h[y>>3];I=a+(u<<4)|0;U=+h[I>>3];G=a+(u<<4)+8|0;l=+h[G>>3];$=M+U;H=M-U;U=q+l;M=q-l;l=z+o;q=z-o;o=N+ea;z=N-ea;ea=L+da;N=L-da;da=ca+m;L=ca-m;h[a>>3]=ea+(l+(ba+$));h[j>>3]=da+(o+(aa+U));m=ba+$*.62348980185-l*.22252093395-ea*.9009688679;ca=aa+U*.62348980185-o*.22252093395-da*.9009688679;j=(e|0)==1;if(j){fa=M*-.78183148246-z*.97492791218-L*.43388373911;ga=H*-.78183148246-q*.97492791218-N*.43388373911}else{fa=L*.43388373911+(z*.97492791218+M*.78183148246);ga=N*.43388373911+(q*.97492791218+H*.78183148246)}h[p>>3]=m-fa;h[s>>3]=ca+ga;h[I>>3]=m+fa;h[G>>3]=ca-ga;ga=ea*.62348980185+(ba-$*.22252093395-l*.9009688679);ca=da*.62348980185+(aa-U*.22252093395-o*.9009688679);fa=H*.97492791218;m=q*.43388373911;if(j){ha=L*.78183148246+(z*.43388373911-M*.97492791218);ia=N*.78183148246+(m-fa)}else{ha=M*.97492791218-z*.43388373911-L*.78183148246;ia=fa-m-N*.78183148246}h[K>>3]=ga-ha;h[r>>3]=ca+ia;h[w>>3]=ga+ha;h[y>>3]=ca-ia;ia=l*.62348980185+(ba-$*.9009688679)-ea*.22252093395;ea=o*.62348980185+(aa-U*.9009688679)-da*.22252093395;da=H*.43388373911;H=q*.78183148246;if(j){ja=z*.78183148246-M*.43388373911-L*.97492791218;ka=H-da-N*.97492791218}else{ja=L*.97492791218+(M*.43388373911-z*.78183148246);ka=N*.97492791218+(da-H)}h[C>>3]=ia-ja;h[O>>3]=ea+ka;h[X>>3]=ia+ja;h[A>>3]=ea-ka;if((f|0)<=13)return;A=E+-1|0;X=1;do{O=X*6|0;C=A+O|0;ka=+h[d+272+(C<<4)>>3];ea=+h[d+272+(C<<4)+8>>3];C=O+E|0;ja=+h[d+272+(C<<4)>>3];ia=+h[d+272+(C<<4)+8>>3];O=C+1|0;H=+h[d+272+(O<<4)>>3];da=+h[d+272+(O<<4)+8>>3];O=C+2|0;N=+h[d+272+(O<<4)>>3];z=+h[d+272+(O<<4)+8>>3];O=C+3|0;M=+h[d+272+(O<<4)>>3];L=+h[d+272+(O<<4)+8>>3];O=C+4|0;q=+h[d+272+(O<<4)>>3];U=+h[d+272+(O<<4)+8>>3];O=X+E|0;C=O+E|0;y=C+E|0;w=y+E|0;r=w+E|0;K=r+E|0;G=a+(X<<4)|0;aa=+h[G>>3];I=a+(X<<4)+8|0;o=+h[I>>3];s=a+(O<<4)|0;$=+h[s>>3];p=a+(O<<4)+8|0;ba=+h[p>>3];l=ka*$-ea*ba;ca=ea*$+ka*ba;O=a+(C<<4)|0;ba=+h[O>>3];u=a+(C<<4)+8|0;ka=+h[u>>3];$=ja*ba-ia*ka;ea=ia*ba+ja*ka;C=a+(y<<4)|0;ka=+h[C>>3];n=a+(y<<4)+8|0;ja=+h[n>>3];ba=H*ka-da*ja;ia=da*ka+H*ja;y=a+(w<<4)|0;ja=+h[y>>3];la=a+(w<<4)+8|0;H=+h[la>>3];ka=N*ja-z*H;da=z*ja+N*H;w=a+(r<<4)|0;H=+h[w>>3];ma=a+(r<<4)+8|0;N=+h[ma>>3];ja=M*H-L*N;z=L*H+M*N;r=a+(K<<4)|0;N=+h[r>>3];na=a+(K<<4)+8|0;M=+h[na>>3];H=q*N-U*M;L=U*N+q*M;M=l+H;q=l-H;H=ca+L;l=ca-L;L=$+ja;ca=$-ja;ja=ea+z;$=ea-z;z=ba+ka;ea=ba-ka;ka=ia+da;ba=ia-da;h[G>>3]=z+(L+(aa+M));h[I>>3]=ka+(ja+(o+H));da=aa+M*.62348980185-L*.22252093395-z*.9009688679;ia=o+H*.62348980185-ja*.22252093395-ka*.9009688679;if(j){oa=l*-.78183148246-$*.97492791218-ba*.43388373911;pa=q*-.78183148246-ca*.97492791218-ea*.43388373911}else{oa=ba*.43388373911+($*.97492791218+l*.78183148246);pa=ea*.43388373911+(ca*.97492791218+q*.78183148246)}h[s>>3]=da-oa;h[p>>3]=ia+pa;h[r>>3]=da+oa;h[na>>3]=ia-pa;ia=z*.62348980185+(aa-M*.22252093395-L*.9009688679);da=ka*.62348980185+(o-H*.22252093395-ja*.9009688679);N=q*.97492791218;U=ca*.43388373911;if(j){qa=ba*.78183148246+($*.43388373911-l*.97492791218);ra=ea*.78183148246+(U-N)}else{qa=l*.97492791218-$*.43388373911-ba*.78183148246;ra=N-U-ea*.78183148246}h[O>>3]=ia-qa;h[u>>3]=da+ra;h[w>>3]=ia+qa;h[ma>>3]=da-ra;da=L*.62348980185+(aa-M*.9009688679)-z*.22252093395;z=ja*.62348980185+(o-H*.9009688679)-ka*.22252093395;ka=q*.43388373911;q=ca*.78183148246;if(j){sa=$*.78183148246-l*.43388373911-ba*.97492791218;ta=q-ka-ea*.97492791218}else{sa=ba*.97492791218+(l*.43388373911-$*.78183148246);ta=ea*.97492791218+(ka-q)}h[C>>3]=da-sa;h[n>>3]=z+ta;h[y>>3]=da+sa;h[la>>3]=z-ta;X=X+1|0}while((X|0)<(E|0));return}case 8:{E=(f|0)/8|0;X=g<<3;j=i+1|0;Ta(a,b,d,e,E,X,j);Ta(a+(E<<4)|0,b+(g<<4)|0,d,e,E,X,j);Ta(a+(E<<1<<4)|0,b+(g<<1<<4)|0,d,e,E,X,j);Ta(a+(E*3<<4)|0,b+(g*3<<4)|0,d,e,E,X,j);Ta(a+(E<<2<<4)|0,b+(g<<2<<4)|0,d,e,E,X,j);Ta(a+(E*5<<4)|0,b+(g*5<<4)|0,d,e,E,X,j);Ta(a+(E*6<<4)|0,b+(g*6<<4)|0,d,e,E,X,j);Ta(a+(E*7<<4)|0,b+(g*7<<4)|0,d,e,E,X,j);if((f|0)<=7)return;j=E+-1|0;X=(e|0)==1;A=0;do{la=A*7|0;y=j+la|0;ta=+h[d+272+(y<<4)>>3];sa=+h[d+272+(y<<4)+8>>3];y=la+E|0;ra=+h[d+272+(y<<4)>>3];qa=+h[d+272+(y<<4)+8>>3];la=y+1|0;pa=+h[d+272+(la<<4)>>3];oa=+h[d+272+(la<<4)+8>>3];la=y+2|0;z=+h[d+272+(la<<4)>>3];da=+h[d+272+(la<<4)+8>>3];la=y+3|0;q=+h[d+272+(la<<4)>>3];ka=+h[d+272+(la<<4)+8>>3];la=y+4|0;ea=+h[d+272+(la<<4)>>3];$=+h[d+272+(la<<4)+8>>3];la=y+5|0;l=+h[d+272+(la<<4)>>3];ba=+h[d+272+(la<<4)+8>>3];la=A+E|0;y=la+E|0;n=y+E|0;C=n+E|0;ma=C+E|0;w=ma+E|0;u=w+E|0;O=a+(A<<4)|0;ca=+h[O>>3];na=a+(A<<4)+8|0;H=+h[na>>3];r=a+(la<<4)|0;o=+h[r>>3];p=a+(la<<4)+8|0;ja=+h[p>>3];M=ta*o-sa*ja;aa=sa*o+ta*ja;la=a+(y<<4)|0;ja=+h[la>>3];s=a+(y<<4)+8|0;ta=+h[s>>3];o=ra*ja-qa*ta;sa=qa*ja+ra*ta;y=a+(n<<4)|0;ta=+h[y>>3];I=a+(n<<4)+8|0;ra=+h[I>>3];ja=pa*ta-oa*ra;qa=oa*ta+pa*ra;n=a+(C<<4)|0;ra=+h[n>>3];G=a+(C<<4)+8|0;pa=+h[G>>3];ta=z*ra-da*pa;oa=da*ra+z*pa;C=a+(ma<<4)|0;pa=+h[C>>3];K=a+(ma<<4)+8|0;z=+h[K>>3];ra=q*pa-ka*z;da=ka*pa+q*z;ma=a+(w<<4)|0;z=+h[ma>>3];ua=a+(w<<4)+8|0;q=+h[ua>>3];pa=ea*z-$*q;ka=$*z+ea*q;w=a+(u<<4)|0;q=+h[w>>3];va=a+(u<<4)+8|0;ea=+h[va>>3];z=l*q-ba*ea;$=ba*q+l*ea;ea=ca+ta;l=ca-ta;ta=H+oa;ca=H-oa;oa=M+z;H=M-z;z=aa+$;M=aa-$;$=ja+ra;aa=ja-ra;ra=qa-da;ja=qa+da;da=o+pa;qa=o-pa;pa=sa-ka;o=sa+ka;h[O>>3]=da+($+(ea+oa));h[na>>3]=o+(ja+(ta+z));h[n>>3]=da+(ea-oa-$);h[G>>3]=o+(ta-z-ja);ka=aa+H;sa=ra+M;q=(oa-$)*.7071067811865476;$=l+q;oa=(z-ja)*.7071067811865476;ja=ca+oa;if(X){wa=sa*-.7071067811865476-pa;xa=ka*-.7071067811865476-qa}else{wa=pa+sa*.7071067811865476;xa=qa+ka*.7071067811865476}h[r>>3]=$-wa;h[p>>3]=ja+xa;h[w>>3]=$+wa;h[va>>3]=ja-xa;ja=ea-da;da=ta-o;o=X?aa-H:H-aa;aa=X?ra-M:M-ra;h[la>>3]=ja-aa;h[s>>3]=da+o;h[ma>>3]=ja+aa;h[ua>>3]=da-o;o=l-q;q=ca-oa;oa=ka*.7071067811865476;if(X){ya=pa-sa*.7071067811865476;za=qa-oa}else{ya=sa*.7071067811865476-pa;za=oa-qa}h[y>>3]=o-ya;h[I>>3]=q+za;h[C>>3]=o+ya;h[K>>3]=q-za;A=A+1|0}while((A|0)<(E|0));return}default:{E=k+-1|0;A=E<<3;X=Kb(A)|0;j=Kb(A)|0;K=Kb(A)|0;C=Kb(A)|0;A=k<<3;I=Kb(A)|0;y=Kb(A)|0;A=(f|0)/(k|0)|0;f=Z(k,g)|0;if((k|0)>0){ua=i+1|0;i=0;do{Ta(a+((Z(i,A)|0)<<4)|0,b+((Z(i,g)|0)<<4)|0,d,e,A,f,ua);i=i+1|0}while((i|0)!=(k|0))}i=(E|0)/2|0;ua=(E|0)>1;if(ua){za=+(k|0);f=1;while(1){ya=+(f|0)*6.283185307179586/za;g=f+-1|0;h[K+(g<<3)>>3]=+P(+ya);h[C+(g<<3)>>3]=+Q(+ya);if((f|0)<(i|0))f=f+1|0;else break}if(ua){f=i+-1|0;g=0;do{b=f-g|0;ma=g+i|0;h[C+(ma<<3)>>3]=-+h[C+(b<<3)>>3];h[K+(ma<<3)>>3]=+h[K+(b<<3)>>3];g=g+1|0}while((g|0)<(i|0))}}if((A|0)>0){g=A+-1|0;f=(k|0)>1;za=+(e|0);e=0;do{b=a+(e<<4)|0;h[I>>3]=+h[b>>3];ma=a+(e<<4)+8|0;h[y>>3]=+h[ma>>3];if(f){s=0;la=g+(Z(e,E)|0)|0;while(1){ya=+h[d+272+(la<<4)>>3];xa=+h[d+272+(la<<4)+8>>3];s=s+1|0;va=(Z(s,A)|0)+e|0;wa=+h[a+(va<<4)>>3];q=+h[a+(va<<4)+8>>3];h[I+(s<<3)>>3]=wa*ya-xa*q;h[y+(s<<3)>>3]=q*ya+wa*xa;if((s|0)==(E|0))break;else la=la+1|0}}if(ua){la=0;do{s=la;la=la+1|0;xa=+h[I+(la<<3)>>3];va=E-s|0;wa=+h[I+(va<<3)>>3];h[X+(s<<3)>>3]=xa+wa;ya=+h[y+(la<<3)>>3];q=+h[y+(va<<3)>>3];va=s+i|0;h[j+(va<<3)>>3]=ya-q;h[j+(s<<3)>>3]=ya+q;h[X+(va<<3)>>3]=xa-wa}while((la|0)<(i|0));wa=+h[I>>3];xa=+h[y>>3];if(ua){la=0;q=xa;ya=wa;while(1){o=ya+ +h[X+(la<<3)>>3];qa=q+ +h[j+(la<<3)>>3];la=la+1|0;if((la|0)>=(i|0)){Aa=o;Ba=qa;break}else{q=qa;ya=o}}h[b>>3]=Aa;h[ma>>3]=Ba;if(ua){la=0;do{va=la;la=la+1|0;ya=xa;q=wa;o=0.0;qa=0.0;s=0;while(1){w=s;s=s+1|0;p=Z(s,la)|0;while(1)if((p|0)<(k|0)){Ca=p;break}else p=p-k|0;p=Ca+-1|0;oa=+h[K+(p<<3)>>3];pa=q+oa*+h[X+(w<<3)>>3];sa=ya+oa*+h[j+(w<<3)>>3];oa=+h[C+(p<<3)>>3];p=w+i|0;ka=qa-oa*+h[X+(p<<3)>>3];ca=o-oa*+h[j+(p<<3)>>3];if((s|0)>=(i|0)){Da=pa;Ea=sa;Fa=ka;Ga=ca;break}else{ya=sa;q=pa;o=ca;qa=ka}}qa=za*Fa;o=za*Ga;s=(Z(la,A)|0)+e|0;h[a+(s<<4)>>3]=Da-o;h[a+(s<<4)+8>>3]=Ea+qa;s=(Z(E-va|0,A)|0)+e|0;h[a+(s<<4)>>3]=Da+o;h[a+(s<<4)+8>>3]=Ea-qa}while((la|0)<(i|0))}}else{Ha=xa;Ia=wa;Ja=95}}else{Ha=+h[y>>3];Ia=+h[I>>3];Ja=95}if((Ja|0)==95){Ja=0;h[b>>3]=Ia;h[ma>>3]=Ha}e=e+1|0}while((e|0)!=(A|0))}Lb(X);Lb(j);Lb(K);Lb(C);Lb(I);Lb(y);return}}}}function Ua(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,i=0.0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0.0,u=0,v=0,w=0,x=0.0,y=0.0,z=0,A=0,B=0,C=0;g=d+268|0;c[g>>2]=0;i=+(f|0);j=~~+Eb(+Y(+(+Fb(i)/.3010299956639812)));k=d+4|0;l=c[k>>2]|0;m=c[d>>2]|0;n=f<<1;o=j<<((j|0)<(n+-2|0)&1);c[d>>2]=o;j=o<<4;p=Kb(j)|0;q=Kb(j)|0;r=Kb(j)|0;s=Kb(j)|0;j=Kb(f<<4)|0;t=3.141592653589793/i;u=(f|0)>0;if(u){v=0;w=0;while(1){i=t*+(w|0);x=+P(+i);h[j+(v<<4)>>3]=x;y=+Q(+i);h[j+(v<<4)+8>>3]=y;h[r+(v<<4)>>3]=x;h[r+(v<<4)+8>>3]=y;z=(v<<1|1)+w|0;while(1)if((z|0)>(n|0))z=z-n|0;else{A=z;break}z=v+1|0;if((z|0)==(f|0))break;else{v=z;w=A}}}A=o-f|0;w=A+1|0;if((A|0)>=(f|0)){A=f;do{v=r+(A<<4)|0;A=A+1|0;c[v>>2]=0;c[v+4>>2]=0;c[v+8>>2]=0;c[v+12>>2]=0}while((A|0)<(w|0))}if((w|0)<(o|0)){A=w;do{w=o-A|0;h[r+(A<<4)>>3]=+h[j+(w<<4)>>3];h[r+(A<<4)+8>>3]=+h[j+(w<<4)+8>>3];A=A+1|0}while((A|0)!=(o|0))}t=1.0/+(o|0);A=(o|0)>0;if(A){w=0;do{v=r+(w<<4)+8|0;h[v>>3]=t*+h[v>>3];v=r+(w<<4)|0;h[v>>3]=t*+h[v>>3];w=w+1|0}while((w|0)!=(o|0))}Ta(q,r,d,l,o,1,0);w=(e|0)==1;if(w){if(u){v=0;do{t=+h[a+(v<<4)>>3];y=+h[j+(v<<4)>>3];x=+h[a+(v<<4)+8>>3];i=+h[j+(v<<4)+8>>3];h[r+(v<<4)>>3]=t*y+x*i;h[r+(v<<4)+8>>3]=x*y-t*i;v=v+1|0}while((v|0)!=(f|0))}}else if(u){v=0;do{i=+h[a+(v<<4)>>3];t=+h[j+(v<<4)>>3];y=+h[a+(v<<4)+8>>3];x=+h[j+(v<<4)+8>>3];h[r+(v<<4)>>3]=i*t-y*x;h[r+(v<<4)+8>>3]=i*x+y*t;v=v+1|0}while((v|0)!=(f|0))}if((o|0)>(f|0)){v=f;do{a=r+(v<<4)|0;v=v+1|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;c[a+12>>2]=0}while((v|0)!=(o|0))}v=c[g>>2]|0;if((v|0)==1)Ua(r,p,d,c[k>>2]|0,c[d>>2]|0);else if(!v)Ta(p,r,d,c[k>>2]|0,c[d>>2]|0,1,0);if(w){if(A){v=0;do{a=p+(v<<4)|0;t=+h[a>>3];y=+h[q+(v<<4)>>3];n=p+(v<<4)+8|0;x=+h[n>>3];i=+h[q+(v<<4)+8>>3];h[n>>3]=y*x+t*i;h[a>>3]=t*y-x*i;v=v+1|0}while((v|0)!=(o|0));B=24}}else if(A){v=0;do{a=p+(v<<4)|0;i=+h[a>>3];x=+h[q+(v<<4)>>3];n=p+(v<<4)+8|0;y=+h[n>>3];t=+h[q+(v<<4)+8>>3];h[n>>3]=x*y-i*t;h[a>>3]=i*x+y*t;v=v+1|0}while((v|0)!=(o|0));B=24}if((B|0)==24?A:0){B=0;do{v=d+272+(B<<4)+8|0;h[v>>3]=-+h[v>>3];B=B+1|0}while((B|0)!=(o|0))}B=0-e|0;c[k>>2]=B;e=c[g>>2]|0;if((e|0)==1)Ua(p,s,d,B,c[d>>2]|0);else if(!e)Ta(s,p,d,B,c[d>>2]|0,1,0);if(w){if(u){w=0;do{t=+h[s+(w<<4)>>3];y=+h[j+(w<<4)>>3];x=+h[s+(w<<4)+8>>3];i=+h[j+(w<<4)+8>>3];h[b+(w<<4)>>3]=t*y+x*i;h[b+(w<<4)+8>>3]=x*y-t*i;w=w+1|0}while((w|0)!=(f|0))}}else if(u){u=0;do{i=+h[s+(u<<4)>>3];t=+h[j+(u<<4)>>3];y=+h[s+(u<<4)+8>>3];x=+h[j+(u<<4)+8>>3];h[b+(u<<4)>>3]=i*t-y*x;h[b+(u<<4)+8>>3]=i*x+y*t;u=u+1|0}while((u|0)!=(f|0))}c[k>>2]=l;c[d>>2]=m;c[g>>2]=1;if(A)C=0;else{Lb(p);Lb(s);Lb(r);Lb(q);Lb(j);return}do{A=d+272+(C<<4)+8|0;h[A>>3]=-+h[A>>3];C=C+1|0}while((C|0)!=(o|0));Lb(p);Lb(s);Lb(r);Lb(q);Lb(j);return}function Va(a,b){a=a|0;b=b|0;var d=0,e=0,f=0.0,g=0.0;d=(a|0)/2|0;e=Kb((d<<4)+24|0)|0;c[e>>2]=Pa(d,b)|0;if((a|0)<=1)return e|0;f=+(a|0);a=e+8|0;b=0;do{g=+(b|0)*6.283185307179586/f;h[a+(b<<4)>>3]=+P(+g);h[a+(b<<4)+8>>3]=+Q(+g);b=b+1|0}while((b|0)<(d|0));return e|0}function Wa(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,i=0,j=0,k=0,l=0,m=0.0,n=0.0,o=0,p=0.0,q=0.0,r=0.0,s=0.0,t=0.0,u=0.0,v=0.0,w=0;e=c[a>>2]|0;f=c[e>>2]|0;g=f<<1;i=f<<4;j=Kb(i)|0;k=Kb(i)|0;if((f|0)>0){i=0;do{l=i<<1;h[j+(i<<4)>>3]=+h[b+(l<<3)>>3];h[j+(i<<4)+8>>3]=+h[b+((l|1)<<3)>>3];i=i+1|0}while((i|0)!=(f|0))}Sa(e,j,k);m=+h[k>>3];n=+h[k+8>>3];h[d>>3]=m+n;h[d+8>>3]=0.0;e=(f|0)>1;if(e)o=1;else{h[d+(f<<4)>>3]=m-n;h[d+(f<<4)+8>>3]=0.0;Lb(j);Lb(k);return}do{p=+h[k+(o<<4)+8>>3];i=f-o|0;q=+h[k+(i<<4)+8>>3];r=p+q;s=+h[k+(i<<4)>>3];t=+h[k+(o<<4)>>3];u=s-t;i=a+8+(o<<4)|0;v=+h[a+8+(o<<4)+8>>3];h[d+(o<<4)>>3]=(s+t+r*+h[i>>3]+u*v)*.5;h[d+(o<<4)+8>>3]=(p-q+u*+h[i>>3]-r*v)*.5;o=o+1|0}while((o|0)!=(f|0));h[d+(f<<4)>>3]=m-n;h[d+(f<<4)+8>>3]=0.0;if(e)w=1;else{Lb(j);Lb(k);return}do{e=g-w|0;h[d+(e<<4)>>3]=+h[d+(w<<4)>>3];h[d+(e<<4)+8>>3]=-+h[d+(w<<4)+8>>3];w=w+1|0}while((w|0)!=(f|0));Lb(j);Lb(k);return}function Xa(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,i=0,j=0,k=0,l=0.0,m=0,n=0.0,o=0.0,p=0.0,q=0.0,r=0.0,s=0.0,t=0.0,u=0;e=c[a>>2]|0;f=c[e>>2]|0;g=f<<4;i=Kb(g)|0;j=Kb(g)|0;g=(f|0)>0;if(g)k=0;else{Sa(e,i,j);Lb(i);Lb(j);return}do{l=+h[b+(k<<4)+8>>3];m=f-k|0;n=+h[b+(m<<4)+8>>3];o=-l-n;p=+h[b+(m<<4)>>3];q=+h[b+(k<<4)>>3];r=q-p;s=+h[a+8+(k<<4)>>3];t=+h[a+8+(k<<4)+8>>3];h[i+(k<<4)>>3]=p+q+o*s-r*t;h[i+(k<<4)+8>>3]=l-n+r*s+o*t;k=k+1|0}while((k|0)!=(f|0));Sa(e,i,j);if(g)u=0;else{Lb(i);Lb(j);return}do{g=u<<1;h[d+(g<<3)>>3]=+h[j+(u<<4)>>3];h[d+((g|1)<<3)>>3]=+h[j+(u<<4)+8>>3];u=u+1|0}while((u|0)!=(f|0));Lb(i);Lb(j);return}function Ya(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;d=Kb(20)|0;e=a+-1+b|0;while(1){if(!((e|0)%7|0)){f=e;while(1){g=(f|0)/7|0;if(!((g|0)%7|0))f=g;else{h=g;break}}}else h=e;if(!((h|0)%3|0)){f=h;while(1){g=(f|0)/3|0;if(!((g|0)%3|0))f=g;else{i=g;break}}}else i=h;if(!((i|0)%5|0)){f=i;while(1){g=(f|0)/5|0;if(!((g|0)%5|0))f=g;else{j=g;break}}}else j=i;if(!(j&1)){f=j;while(1){g=(f|0)/2|0;if(!(g&1))f=g;else{k=g;break}}}else k=j;if((e&1|0)!=0|(k|0)!=1)e=e+1|0;else{l=e;break}}c[d+16>>2]=l;c[d+8>>2]=a;c[d+12>>2]=b;c[d>>2]=Va(l,1)|0;c[d+4>>2]=Va(l,-1)|0;return d|0}function Za(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,i=0,j=0,k=0,l=0.0,m=0,n=0.0,o=0.0,p=0;f=b+-1|0;g=f+d|0;if((b|0)<(d|0)){if((b|0)>0){i=1;j=0;while(1){k=e+(j<<3)|0;h[k>>3]=0.0;l=0.0;m=0;do{l=l+ +h[c+(m<<3)>>3]*+h[a+(j-m<<3)>>3];h[k>>3]=l;m=m+1|0}while((m|0)!=(i|0));j=j+1|0;if((j|0)==(b|0))break;else i=i+1|0}}if((g|0)<=(b|0))return;l=+(d|0);i=d+-1|0;j=0;m=b;while(1){k=e+(m<<3)|0;h[k>>3]=0.0;j=j+1|0;n=+(j+b|0);o=n>3]*+h[a+(m-p<<3)>>3];h[k>>3]=n;p=p+1|0}while(+(p|0)0){m=1;i=0;while(1){j=e+(i<<3)|0;h[j>>3]=0.0;l=0.0;p=0;do{l=l+ +h[a+(p<<3)>>3]*+h[c+(i-p<<3)>>3];h[j>>3]=l;p=p+1|0}while((p|0)!=(m|0));i=i+1|0;if((i|0)==(d|0))break;else m=m+1|0}}if((g|0)<=(d|0))return;l=+(b|0);b=0;g=d;while(1){m=e+(g<<3)|0;h[m>>3]=0.0;b=b+1|0;o=+(b+d|0);n=o>3]*+h[c+(g-i<<3)>>3];h[m>>3]=o;i=i+1|0}while(+(i|0)>2]|0;g=c[a+8>>2]|0;i=c[a+12>>2]|0;j=g+-1+i|0;k=f<<4;l=Kb(k)|0;m=Kb(k)|0;n=Kb(k)|0;o=Kb(k)|0;p=Kb(k)|0;q=Kb(k)|0;k=(f|0)>0;if(k){r=0;do{if((r|0)<(g|0))s=+h[b+(r<<3)>>3];else s=0.0;h[l+(r<<3)>>3]=s;if((r|0)<(i|0))t=+h[d+(r<<3)>>3];else t=0.0;h[m+(r<<3)>>3]=t;r=r+1|0}while((r|0)!=(f|0));Wa(c[a>>2]|0,l,o);Wa(c[a>>2]|0,m,p);if(k){k=0;do{t=+h[o+(k<<4)>>3];s=+h[p+(k<<4)>>3];u=+h[o+(k<<4)+8>>3];v=+h[p+(k<<4)+8>>3];h[n+(k<<4)>>3]=t*s-u*v;h[n+(k<<4)+8>>3]=u*s+t*v;k=k+1|0}while((k|0)!=(f|0))}}else{Wa(c[a>>2]|0,l,o);Wa(c[a>>2]|0,m,p)}Xa(c[a+4>>2]|0,n,q);if((j|0)<=0){Lb(l);Lb(m);Lb(n);Lb(o);Lb(p);Lb(q);return}v=+(f|0);f=g+i+-1|0;i=0;do{h[e+(i<<3)>>3]=+h[q+(i<<3)>>3]/v;i=i+1|0}while((i|0)!=(f|0));Lb(l);Lb(m);Lb(n);Lb(o);Lb(p);Lb(q);return}function $a(a){a=a|0;Lb(a);return}function ab(a){a=a|0;var b=0;do if((Jb(a,8)|0)!=0?(Jb(a,16)|0)!=0:0)if(Jb(a,24)|0)if(Jb(a,32)|0)if(Jb(a,40)|0)if(Jb(a,48)|0)if(Jb(a,56)|0)if(Jb(a,64)|0)if(Jb(a,72)|0)if(Jb(a,80)|0)if(Jb(a,88)|0)if(Jb(a,96)|0)if(Jb(a,104)|0)if(Jb(a,112)|0)if(Jb(a,120)|0)if(Jb(a,128)|0)if(Jb(a,136)|0)if(Jb(a,144)|0)if(!(Jb(a,152)|0))b=10;else{if(!(Jb(a,160)|0)){b=6;break}if(!(Jb(a,168)|0)){b=10;break}if(!(Jb(a,176)|0)){b=14;break}if(!(Jb(a,184)|0)){b=18;break}if(!(Jb(a,192)|0)){b=4;break}if(!(Jb(a,200)|0)){b=8;break}if(!(Jb(a,208)|0)){b=12;break}if(!(Jb(a,216)|0)){b=16;break}if(!(Jb(a,224)|0)){b=20;break}if(!(Jb(a,232)|0)){b=10;break}if(!(Jb(a,240)|0)){b=12;break}if(!(Jb(a,248)|0)){b=18;break}if(!(Jb(a,256)|0)){b=6;break}if(!(Jb(a,264)|0)){b=12;break}if(!(Jb(a,272)|0)){b=18;break}if(!(Jb(a,280)|0)){b=24;break}if(!(Jb(a,288)|0)){b=30;break}if(!(Jb(a,296)|0)){b=4;break}if(!(Jb(a,304)|0)){b=6;break}if(!(Jb(a,312)|0)){b=8;break}if(!(Jb(a,320)|0)){b=10;break}if(!(Jb(a,328)|0)){b=12;break}if(!(Jb(a,336)|0)){b=14;break}if(!(Jb(a,344)|0)){b=16;break}if(!(Jb(a,352)|0)){b=18;break}if(!(Jb(a,360)|0)){b=20;break}oa(368)|0;b=-1}else b=6;else b=2;else b=30;else b=28;else b=22;else b=26;else b=24;else b=20;else b=18;else b=16;else b=14;else b=12;else b=10;else b=8;else b=6;else b=4;else b=2;while(0);return b|0}function bb(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,j=0,k=0,l=0,m=0,n=0,o=0;g=i;i=i+320|0;j=g+160|0;k=g;if((Jb(a,8)|0)!=0?(Jb(a,16)|0)!=0:0){if(!(Jb(a,24)|0)){h[b>>3]=-.12940952255092145;h[d>>3]=-.48296291314469025;h[e>>3]=.48296291314469025;h[f>>3]=-.12940952255092145;h[b+8>>3]=.22414386804185735;h[d+8>>3]=.836516303737469;h[e+8>>3]=.836516303737469;h[f+8>>3]=-.22414386804185735;h[b+16>>3]=.836516303737469;h[d+16>>3]=-.22414386804185735;h[e+16>>3]=.22414386804185735;h[f+16>>3]=.836516303737469;h[b+24>>3]=.48296291314469025;h[d+24>>3]=-.12940952255092145;h[e+24>>3]=-.12940952255092145;h[f+24>>3]=-.48296291314469025;l=4;i=g;return l|0}if(!(Jb(a,32)|0)){h[b>>3]=.035226291882100656;h[d>>3]=-.3326705529509569;h[e>>3]=.3326705529509569;h[f>>3]=.035226291882100656;h[b+8>>3]=-.08544127388224149;h[d+8>>3]=.8068915093133388;h[e+8>>3]=.8068915093133388;h[f+8>>3]=.08544127388224149;h[b+16>>3]=-.13501102001039084;h[d+16>>3]=-.4598775021193313;h[e+16>>3]=.4598775021193313;h[f+16>>3]=-.13501102001039084;h[b+24>>3]=.4598775021193313;h[d+24>>3]=-.13501102001039084;h[e+24>>3]=-.13501102001039084;h[f+24>>3]=-.4598775021193313;h[b+32>>3]=.8068915093133388;h[d+32>>3]=.08544127388224149;h[e+32>>3]=-.08544127388224149;h[f+32>>3]=.8068915093133388;h[b+40>>3]=.3326705529509569;h[d+40>>3]=.035226291882100656;h[e+40>>3]=.035226291882100656;h[f+40>>3]=-.3326705529509569;l=6;i=g;return l|0}if(!(Jb(a,40)|0)){h[b>>3]=-.010597401784997278;h[d>>3]=-.23037781330885523;h[e>>3]=.23037781330885523;h[f>>3]=-.010597401784997278;h[b+8>>3]=.032883011666982945;h[d+8>>3]=.7148465705525415;h[e+8>>3]=.7148465705525415;h[f+8>>3]=-.032883011666982945;h[b+16>>3]=.030841381835986965;h[d+16>>3]=-.6308807679295904;h[e+16>>3]=.6308807679295904;h[f+16>>3]=.030841381835986965;h[b+24>>3]=-.18703481171888114;h[d+24>>3]=-.02798376941698385;h[e+24>>3]=-.02798376941698385;h[f+24>>3]=.18703481171888114;h[b+32>>3]=-.02798376941698385;h[d+32>>3]=.18703481171888114;h[e+32>>3]=-.18703481171888114;h[f+32>>3]=-.02798376941698385;h[b+40>>3]=.6308807679295904;h[d+40>>3]=.030841381835986965;h[e+40>>3]=.030841381835986965;h[f+40>>3]=-.6308807679295904;h[b+48>>3]=.7148465705525415;h[d+48>>3]=-.032883011666982945;h[e+48>>3]=.032883011666982945;h[f+48>>3]=.7148465705525415;h[b+56>>3]=.23037781330885523;h[d+56>>3]=-.010597401784997278;h[e+56>>3]=-.010597401784997278;h[f+56>>3]=-.23037781330885523;l=8;i=g;return l|0}if(!(Jb(a,48)|0)){m=0;do{h[b+(m<<3)>>3]=+h[400+(m<<3)>>3];h[d+(m<<3)>>3]=+h[480+(m<<3)>>3];h[e+(m<<3)>>3]=+h[560+(m<<3)>>3];h[f+(m<<3)>>3]=+h[640+(m<<3)>>3];m=m+1|0}while((m|0)!=10);l=10;i=g;return l|0}if(!(Jb(a,56)|0)){m=0;do{h[b+(m<<3)>>3]=+h[720+(m<<3)>>3];h[d+(m<<3)>>3]=+h[816+(m<<3)>>3];h[e+(m<<3)>>3]=+h[912+(m<<3)>>3];h[f+(m<<3)>>3]=+h[1008+(m<<3)>>3];m=m+1|0}while((m|0)!=12);l=12;i=g;return l|0}if(!(Jb(a,64)|0)){m=0;do{h[b+(m<<3)>>3]=+h[1104+(m<<3)>>3];h[d+(m<<3)>>3]=+h[1216+(m<<3)>>3];h[e+(m<<3)>>3]=+h[1328+(m<<3)>>3];h[f+(m<<3)>>3]=+h[1440+(m<<3)>>3];m=m+1|0}while((m|0)!=14);l=14;i=g;return l|0}if(!(Jb(a,72)|0)){m=0;do{h[b+(m<<3)>>3]=+h[1552+(m<<3)>>3];h[d+(m<<3)>>3]=+h[1680+(m<<3)>>3];h[e+(m<<3)>>3]=+h[1808+(m<<3)>>3];h[f+(m<<3)>>3]=+h[1936+(m<<3)>>3];m=m+1|0}while((m|0)!=16);l=16;i=g;return l|0}if(!(Jb(a,80)|0)){m=0;do{h[b+(m<<3)>>3]=+h[2064+(m<<3)>>3];h[d+(m<<3)>>3]=+h[2208+(m<<3)>>3];h[e+(m<<3)>>3]=+h[2352+(m<<3)>>3];h[f+(m<<3)>>3]=+h[2496+(m<<3)>>3];m=m+1|0}while((m|0)!=18);l=18;i=g;return l|0}if(!(Jb(a,88)|0)){m=0;do{h[b+(m<<3)>>3]=+h[2640+(m<<3)>>3];h[d+(m<<3)>>3]=+h[2800+(m<<3)>>3];h[e+(m<<3)>>3]=+h[2960+(m<<3)>>3];h[f+(m<<3)>>3]=+h[3120+(m<<3)>>3];m=m+1|0}while((m|0)!=20);l=20;i=g;return l|0}if(!(Jb(a,96)|0)){m=0;do{h[b+(m<<3)>>3]=+h[3280+(m<<3)>>3];h[d+(m<<3)>>3]=+h[3472+(m<<3)>>3];h[e+(m<<3)>>3]=+h[3664+(m<<3)>>3];h[f+(m<<3)>>3]=+h[3856+(m<<3)>>3];m=m+1|0}while((m|0)!=24);l=24;i=g;return l|0}if(!(Jb(a,104)|0)){m=0;do{h[b+(m<<3)>>3]=+h[4048+(m<<3)>>3];h[d+(m<<3)>>3]=+h[4256+(m<<3)>>3];h[e+(m<<3)>>3]=+h[4464+(m<<3)>>3];h[f+(m<<3)>>3]=+h[4672+(m<<3)>>3];m=m+1|0}while((m|0)!=26);l=26;i=g;return l|0}if(!(Jb(a,112)|0)){m=0;do{h[b+(m<<3)>>3]=+h[4880+(m<<3)>>3];h[d+(m<<3)>>3]=+h[5056+(m<<3)>>3];h[e+(m<<3)>>3]=+h[5232+(m<<3)>>3];h[f+(m<<3)>>3]=+h[5408+(m<<3)>>3];m=m+1|0}while((m|0)!=22);l=22;i=g;return l|0}if(!(Jb(a,120)|0)){m=0;do{h[b+(m<<3)>>3]=+h[5584+(m<<3)>>3];h[d+(m<<3)>>3]=+h[5808+(m<<3)>>3];h[e+(m<<3)>>3]=+h[6032+(m<<3)>>3];h[f+(m<<3)>>3]=+h[6256+(m<<3)>>3];m=m+1|0}while((m|0)!=28);l=28;i=g;return l|0}if(!(Jb(a,128)|0)){m=0;do{h[b+(m<<3)>>3]=+h[6480+(m<<3)>>3];h[d+(m<<3)>>3]=+h[6720+(m<<3)>>3];h[e+(m<<3)>>3]=+h[6960+(m<<3)>>3];h[f+(m<<3)>>3]=+h[7200+(m<<3)>>3];m=m+1|0}while((m|0)!=30);l=30;i=g;return l|0}if(!(Jb(a,136)|0)){h[b>>3]=.7071067811865476;h[d>>3]=-.7071067811865476;h[e>>3]=.7071067811865476;h[f>>3]=.7071067811865476;h[b+8>>3]=.7071067811865476;h[d+8>>3]=.7071067811865476;h[e+8>>3]=.7071067811865476;h[f+8>>3]=-.7071067811865476;l=2;i=g;return l|0}if(!(Jb(a,144)|0)){h[b>>3]=-.08838834764831845;h[d>>3]=0.0;h[e>>3]=0.0;h[f>>3]=-.08838834764831845;h[b+8>>3]=.08838834764831845;h[d+8>>3]=0.0;h[e+8>>3]=0.0;h[f+8>>3]=-.08838834764831845;h[b+16>>3]=.7071067811865476;h[d+16>>3]=-.7071067811865476;h[e+16>>3]=.7071067811865476;h[f+16>>3]=.7071067811865476;h[b+24>>3]=.7071067811865476;h[d+24>>3]=.7071067811865476;h[e+24>>3]=.7071067811865476;h[f+24>>3]=-.7071067811865476;h[b+32>>3]=.08838834764831845;h[d+32>>3]=0.0;h[e+32>>3]=0.0;h[f+32>>3]=.08838834764831845;h[b+40>>3]=-.08838834764831845;h[d+40>>3]=0.0;h[e+40>>3]=0.0;h[f+40>>3]=.08838834764831845;l=6;i=g;return l|0}if(!(Jb(a,152)|0)){n=j;o=n+80|0;do{c[n>>2]=0;n=n+4|0}while((n|0)<(o|0));h[j+32>>3]=-.7071067811865476;h[j+40>>3]=.7071067811865476;n=k;o=n+80|0;do{c[n>>2]=0;n=n+4|0}while((n|0)<(o|0));h[k+32>>3]=.7071067811865476;h[k+40>>3]=.7071067811865476;m=0;do{h[b+(m<<3)>>3]=+h[7440+(m<<3)>>3];h[d+(m<<3)>>3]=+h[j+(m<<3)>>3];h[e+(m<<3)>>3]=+h[k+(m<<3)>>3];h[f+(m<<3)>>3]=+h[7520+(m<<3)>>3];m=m+1|0}while((m|0)!=10);l=10;i=g;return l|0}if(!(Jb(a,160)|0)){h[b>>3]=0.0;h[d>>3]=0.0;h[e>>3]=0.0;h[f>>3]=0.0;h[b+8>>3]=-.1767766952966369;h[d+8>>3]=.3535533905932738;h[e+8>>3]=.3535533905932738;h[f+8>>3]=.1767766952966369;h[b+16>>3]=.3535533905932738;h[d+16>>3]=-.7071067811865476;h[e+16>>3]=.7071067811865476;h[f+16>>3]=.3535533905932738;h[b+24>>3]=1.0606601717798214;h[d+24>>3]=.3535533905932738;h[e+24>>3]=.3535533905932738;h[f+24>>3]=-1.0606601717798214;h[b+32>>3]=.3535533905932738;h[d+32>>3]=0.0;h[e+32>>3]=0.0;h[f+32>>3]=.3535533905932738;h[b+40>>3]=-.1767766952966369;h[d+40>>3]=0.0;h[e+40>>3]=0.0;h[f+40>>3]=.1767766952966369;l=6;i=g;return l|0}if(!(Jb(a,168)|0)){n=j;o=n+80|0;do{c[n>>2]=0;n=n+4|0}while((n|0)<(o|0));h[j+24>>3]=.3535533905932738;h[j+32>>3]=-.7071067811865476;h[j+40>>3]=.3535533905932738;n=k;o=n+80|0;do{c[n>>2]=0;n=n+4|0}while((n|0)<(o|0));h[k+24>>3]=.3535533905932738;h[k+32>>3]=.7071067811865476;h[k+40>>3]=.3535533905932738;m=0;do{h[b+(m<<3)>>3]=+h[7600+(m<<3)>>3];h[d+(m<<3)>>3]=+h[j+(m<<3)>>3];h[e+(m<<3)>>3]=+h[k+(m<<3)>>3];h[f+(m<<3)>>3]=+h[7680+(m<<3)>>3];m=m+1|0}while((m|0)!=10);l=10;i=g;return l|0}if(!(Jb(a,176)|0)){n=j;o=n+112|0;do{c[n>>2]=0;n=n+4|0}while((n|0)<(o|0));h[j+40>>3]=.3535533905932738;h[j+48>>3]=-.7071067811865476;h[j+56>>3]=.3535533905932738;n=k;o=n+112|0;do{c[n>>2]=0;n=n+4|0}while((n|0)<(o|0));h[k+40>>3]=.3535533905932738;h[k+48>>3]=.7071067811865476;h[k+56>>3]=.3535533905932738;m=0;do{h[b+(m<<3)>>3]=+h[7760+(m<<3)>>3];h[d+(m<<3)>>3]=+h[j+(m<<3)>>3];h[e+(m<<3)>>3]=+h[k+(m<<3)>>3];h[f+(m<<3)>>3]=+h[7872+(m<<3)>>3];m=m+1|0}while((m|0)!=14);l=14;i=g;return l|0}if(!(Jb(a,184)|0)){Nb(j|0,0,144)|0;h[j+56>>3]=.3535533905932738;h[j+64>>3]=-.7071067811865476;h[j+72>>3]=.3535533905932738;Nb(k|0,0,144)|0;h[k+56>>3]=.3535533905932738;h[k+64>>3]=.7071067811865476;h[k+72>>3]=.3535533905932738;m=0;do{h[b+(m<<3)>>3]=+h[7984+(m<<3)>>3];h[d+(m<<3)>>3]=+h[j+(m<<3)>>3];h[e+(m<<3)>>3]=+h[k+(m<<3)>>3];h[f+(m<<3)>>3]=+h[8128+(m<<3)>>3];m=m+1|0}while((m|0)!=18);l=18;i=g;return l|0}if(!(Jb(a,192)|0)){h[b>>3]=-.3535533905932738;h[d>>3]=-.1767766952966369;h[e>>3]=.1767766952966369;h[f>>3]=-.3535533905932738;h[b+8>>3]=1.0606601717798214;h[d+8>>3]=.5303300858899107;h[e+8>>3]=.5303300858899107;h[f+8>>3]=-1.0606601717798214;h[b+16>>3]=1.0606601717798214;h[d+16>>3]=-.5303300858899107;h[e+16>>3]=.5303300858899107;h[f+16>>3]=1.0606601717798214;h[b+24>>3]=-.3535533905932738;h[d+24>>3]=.1767766952966369;h[e+24>>3]=.1767766952966369;h[f+24>>3]=.3535533905932738;l=4;i=g;return l|0}if(!(Jb(a,200)|0)){h[b>>3]=.06629126073623884;h[d>>3]=0.0;h[e>>3]=0.0;h[f>>3]=.06629126073623884;h[b+8>>3]=-.19887378220871652;h[d+8>>3]=0.0;h[e+8>>3]=0.0;h[f+8>>3]=.19887378220871652;h[b+16>>3]=-.15467960838455727;h[d+16>>3]=-.1767766952966369;h[e+16>>3]=.1767766952966369;h[f+16>>3]=-.15467960838455727;h[b+24>>3]=.9943689110435825;h[d+24>>3]=.5303300858899107;h[e+24>>3]=.5303300858899107;h[f+24>>3]=-.9943689110435825;h[b+32>>3]=.9943689110435825;h[d+32>>3]=-.5303300858899107;h[e+32>>3]=.5303300858899107;h[f+32>>3]=.9943689110435825;h[b+40>>3]=-.15467960838455727;h[d+40>>3]=.1767766952966369;h[e+40>>3]=.1767766952966369;h[f+40>>3]=.15467960838455727;h[b+48>>3]=-.19887378220871652;h[d+48>>3]=0.0;h[e+48>>3]=0.0;h[f+48>>3]=-.19887378220871652;h[b+56>>3]=.06629126073623884;h[d+56>>3]=0.0;h[e+56>>3]=0.0;h[f+56>>3]=-.06629126073623884;l=8;i=g;return l|0}if(!(Jb(a,208)|0)){n=j;o=n+96|0;do{c[n>>2]=0;n=n+4|0}while((n|0)<(o|0));h[j+32>>3]=-.1767766952966369;h[j+40>>3]=.5303300858899107;h[j+48>>3]=-.5303300858899107;h[j+56>>3]=.1767766952966369;n=k;o=n+96|0;do{c[n>>2]=0;n=n+4|0}while((n|0)<(o|0));h[k+32>>3]=.1767766952966369;h[k+40>>3]=.5303300858899107;h[k+48>>3]=.5303300858899107;h[k+56>>3]=.1767766952966369;m=0;do{h[b+(m<<3)>>3]=+h[8272+(m<<3)>>3];h[d+(m<<3)>>3]=+h[j+(m<<3)>>3];h[e+(m<<3)>>3]=+h[k+(m<<3)>>3];h[f+(m<<3)>>3]=+h[8368+(m<<3)>>3];m=m+1|0}while((m|0)!=12);l=12;i=g;return l|0}if(!(Jb(a,216)|0)){n=j;o=n+128|0;do{c[n>>2]=0;n=n+4|0}while((n|0)<(o|0));h[j+48>>3]=-.1767766952966369;h[j+56>>3]=.5303300858899107;h[j+64>>3]=-.5303300858899107;h[j+72>>3]=.1767766952966369;n=k;o=n+128|0;do{c[n>>2]=0;n=n+4|0}while((n|0)<(o|0));h[k+48>>3]=.1767766952966369;h[k+56>>3]=.5303300858899107;h[k+64>>3]=.5303300858899107;h[k+72>>3]=.1767766952966369;n=0;do{h[b+(n<<3)>>3]=+h[8464+(n<<3)>>3];h[d+(n<<3)>>3]=+h[j+(n<<3)>>3];h[e+(n<<3)>>3]=+h[k+(n<<3)>>3];h[f+(n<<3)>>3]=+h[8592+(n<<3)>>3];n=n+1|0}while((n|0)!=16);l=16;i=g;return l|0}if(!(Jb(a,224)|0)){Nb(j|0,0,160)|0;h[j+64>>3]=-.1767766952966369;h[j+72>>3]=.5303300858899107;h[j+80>>3]=-.5303300858899107;h[j+88>>3]=.1767766952966369;Nb(k|0,0,160)|0;h[k+64>>3]=.1767766952966369;h[k+72>>3]=.5303300858899107;h[k+80>>3]=.5303300858899107;h[k+88>>3]=.1767766952966369;n=0;do{h[b+(n<<3)>>3]=+h[8720+(n<<3)>>3];h[d+(n<<3)>>3]=+h[j+(n<<3)>>3];h[e+(n<<3)>>3]=+h[k+(n<<3)>>3];h[f+(n<<3)>>3]=+h[8880+(n<<3)>>3];n=n+1|0}while((n|0)!=20);l=20;i=g;return l|0}if(!(Jb(a,232)|0)){n=0;do{h[b+(n<<3)>>3]=+h[9040+(n<<3)>>3];h[d+(n<<3)>>3]=+h[9120+(n<<3)>>3];h[e+(n<<3)>>3]=+h[9200+(n<<3)>>3];h[f+(n<<3)>>3]=+h[9280+(n<<3)>>3];n=n+1|0}while((n|0)!=10);l=10;i=g;return l|0}if(!(Jb(a,240)|0)){n=0;do{h[b+(n<<3)>>3]=+h[9360+(n<<3)>>3];h[d+(n<<3)>>3]=+h[9456+(n<<3)>>3];h[e+(n<<3)>>3]=+h[9552+(n<<3)>>3];h[f+(n<<3)>>3]=+h[9648+(n<<3)>>3];n=n+1|0}while((n|0)!=12);l=12;i=g;return l|0}if(!(Jb(a,248)|0)){n=0;do{h[b+(n<<3)>>3]=+h[9744+(n<<3)>>3];h[d+(n<<3)>>3]=+h[9888+(n<<3)>>3];h[e+(n<<3)>>3]=+h[10032+(n<<3)>>3];h[f+(n<<3)>>3]=+h[10176+(n<<3)>>3];n=n+1|0}while((n|0)!=18);l=18;i=g;return l|0}if(!(Jb(a,256)|0)){h[b>>3]=-.01565572813546454;h[d>>3]=.0727326195128539;h[e>>3]=-.0727326195128539;h[f>>3]=-.01565572813546454;h[b+8>>3]=-.0727326195128539;h[d+8>>3]=.3378976624578092;h[e+8>>3]=.3378976624578092;h[f+8>>3]=.0727326195128539;h[b+16>>3]=.38486484686420286;h[d+16>>3]=-.8525720202122554;h[e+16>>3]=.8525720202122554;h[f+16>>3]=.38486484686420286;h[b+24>>3]=.8525720202122554;h[d+24>>3]=.38486484686420286;h[e+24>>3]=.38486484686420286;h[f+24>>3]=-.8525720202122554;h[b+32>>3]=.3378976624578092;h[d+32>>3]=.0727326195128539;h[e+32>>3]=-.0727326195128539;h[f+32>>3]=.3378976624578092;h[b+40>>3]=-.0727326195128539;h[d+40>>3]=-.01565572813546454;h[e+40>>3]=-.01565572813546454;h[f+40>>3]=.0727326195128539;l=6;i=g;return l|0}if(!(Jb(a,264)|0)){n=0;do{h[b+(n<<3)>>3]=+h[10320+(n<<3)>>3];h[d+(n<<3)>>3]=+h[10416+(n<<3)>>3];h[e+(n<<3)>>3]=+h[10512+(n<<3)>>3];h[f+(n<<3)>>3]=+h[10608+(n<<3)>>3];n=n+1|0}while((n|0)!=12);l=12;i=g;return l|0}if(!(Jb(a,272)|0)){n=0;do{h[b+(n<<3)>>3]=+h[10704+(n<<3)>>3];h[d+(n<<3)>>3]=+h[10848+(n<<3)>>3];h[e+(n<<3)>>3]=+h[10992+(n<<3)>>3];h[f+(n<<3)>>3]=+h[11136+(n<<3)>>3];n=n+1|0}while((n|0)!=18);l=18;i=g;return l|0}if(!(Jb(a,280)|0)){n=0;do{h[b+(n<<3)>>3]=+h[11280+(n<<3)>>3];h[d+(n<<3)>>3]=+h[11472+(n<<3)>>3];h[e+(n<<3)>>3]=+h[11664+(n<<3)>>3];h[f+(n<<3)>>3]=+h[11856+(n<<3)>>3];n=n+1|0}while((n|0)!=24);l=24;i=g;return l|0}if(!(Jb(a,288)|0)){n=0;do{h[b+(n<<3)>>3]=+h[12048+(n<<3)>>3];h[d+(n<<3)>>3]=+h[12288+(n<<3)>>3];h[e+(n<<3)>>3]=+h[12528+(n<<3)>>3];h[f+(n<<3)>>3]=+h[12768+(n<<3)>>3];n=n+1|0}while((n|0)!=30);l=30;i=g;return l|0}if(!(Jb(a,296)|0)){h[b>>3]=-.12940952255092145;h[d>>3]=-.48296291314469025;h[e>>3]=.48296291314469025;h[f>>3]=-.12940952255092145;h[b+8>>3]=.22414386804185735;h[d+8>>3]=.836516303737469;h[e+8>>3]=.836516303737469;h[f+8>>3]=-.22414386804185735;h[b+16>>3]=.836516303737469;h[d+16>>3]=-.22414386804185735;h[e+16>>3]=.22414386804185735;h[f+16>>3]=.836516303737469;h[b+24>>3]=.48296291314469025;h[d+24>>3]=-.12940952255092145;h[e+24>>3]=-.12940952255092145;h[f+24>>3]=-.48296291314469025;l=4;i=g;return l|0}if(!(Jb(a,304)|0)){h[b>>3]=.035226291882100656;h[d>>3]=-.3326705529509569;h[e>>3]=.3326705529509569;h[f>>3]=.035226291882100656;h[b+8>>3]=-.08544127388224149;h[d+8>>3]=.8068915093133388;h[e+8>>3]=.8068915093133388;h[f+8>>3]=.08544127388224149;h[b+16>>3]=-.13501102001039084;h[d+16>>3]=-.4598775021193313;h[e+16>>3]=.4598775021193313;h[f+16>>3]=-.13501102001039084;h[b+24>>3]=.4598775021193313;h[d+24>>3]=-.13501102001039084;h[e+24>>3]=-.13501102001039084;h[f+24>>3]=-.4598775021193313;h[b+32>>3]=.8068915093133388;h[d+32>>3]=.08544127388224149;h[e+32>>3]=-.08544127388224149;h[f+32>>3]=.8068915093133388;h[b+40>>3]=.3326705529509569;h[d+40>>3]=.035226291882100656;h[e+40>>3]=.035226291882100656;h[f+40>>3]=-.3326705529509569;l=6;i=g;return l|0}if(!(Jb(a,312)|0)){h[b>>3]=-.07576571478927333;h[d>>3]=-.0322231006040427;h[e>>3]=.0322231006040427;h[f>>3]=-.07576571478927333;h[b+8>>3]=-.02963552764599851;h[d+8>>3]=-.012603967262037833;h[e+8>>3]=-.012603967262037833;h[f+8>>3]=.02963552764599851;h[b+16>>3]=.49761866763201545;h[d+16>>3]=.09921954357684722;h[e+16>>3]=-.09921954357684722;h[f+16>>3]=.49761866763201545;h[b+24>>3]=.8037387518059161;h[d+24>>3]=.29785779560527736;h[e+24>>3]=.29785779560527736;h[f+24>>3]=-.8037387518059161;h[b+32>>3]=.29785779560527736;h[d+32>>3]=-.8037387518059161;h[e+32>>3]=.8037387518059161;h[f+32>>3]=.29785779560527736;h[b+40>>3]=-.09921954357684722;h[d+40>>3]=.49761866763201545;h[e+40>>3]=.49761866763201545;h[f+40>>3]=.09921954357684722;h[b+48>>3]=-.012603967262037833;h[d+48>>3]=.02963552764599851;h[e+48>>3]=-.02963552764599851;h[f+48>>3]=-.012603967262037833;h[b+56>>3]=.0322231006040427;h[d+56>>3]=-.07576571478927333;h[e+56>>3]=-.07576571478927333;h[f+56>>3]=-.0322231006040427;l=8;i=g;return l|0}if(!(Jb(a,320)|0)){n=0;do{h[b+(n<<3)>>3]=+h[13008+(n<<3)>>3];h[d+(n<<3)>>3]=+h[13088+(n<<3)>>3];h[e+(n<<3)>>3]=+h[13168+(n<<3)>>3];h[f+(n<<3)>>3]=+h[13248+(n<<3)>>3];n=n+1|0}while((n|0)!=10);l=10;i=g;return l|0}if(!(Jb(a,328)|0)){n=0;do{h[b+(n<<3)>>3]=+h[13328+(n<<3)>>3];h[d+(n<<3)>>3]=+h[13424+(n<<3)>>3];h[e+(n<<3)>>3]=+h[13520+(n<<3)>>3];h[f+(n<<3)>>3]=+h[13616+(n<<3)>>3];n=n+1|0}while((n|0)!=12);l=12;i=g;return l|0}if(!(Jb(a,336)|0)){n=0;do{h[b+(n<<3)>>3]=+h[13712+(n<<3)>>3];h[d+(n<<3)>>3]=+h[13824+(n<<3)>>3];h[e+(n<<3)>>3]=+h[13936+(n<<3)>>3];h[f+(n<<3)>>3]=+h[14048+(n<<3)>>3];n=n+1|0}while((n|0)!=14);l=14;i=g;return l|0}if(!(Jb(a,344)|0)){n=0;do{h[b+(n<<3)>>3]=+h[14160+(n<<3)>>3];h[d+(n<<3)>>3]=+h[14288+(n<<3)>>3];h[e+(n<<3)>>3]=+h[14416+(n<<3)>>3];h[f+(n<<3)>>3]=+h[14544+(n<<3)>>3];n=n+1|0}while((n|0)!=16);l=16;i=g;return l|0}if(!(Jb(a,352)|0)){n=0;do{h[b+(n<<3)>>3]=+h[14672+(n<<3)>>3];h[d+(n<<3)>>3]=+h[14816+(n<<3)>>3];h[e+(n<<3)>>3]=+h[14960+(n<<3)>>3];h[f+(n<<3)>>3]=+h[15104+(n<<3)>>3];n=n+1|0}while((n|0)!=18);l=18;i=g;return l|0}if(!(Jb(a,360)|0)){a=0;do{h[b+(a<<3)>>3]=+h[15248+(a<<3)>>3];h[d+(a<<3)>>3]=+h[15408+(a<<3)>>3];h[e+(a<<3)>>3]=+h[15568+(a<<3)>>3];h[f+(a<<3)>>3]=+h[15728+(a<<3)>>3];a=a+1|0}while((a|0)!=20);l=20;i=g;return l|0}else{oa(368)|0;l=-1;i=g;return l|0}}h[b>>3]=.7071;h[d>>3]=-.7071;h[e>>3]=.7071;h[f>>3]=.7071;h[b+8>>3]=.7071;h[d+8>>3]=.7071;h[e+8>>3]=.7071;h[f+8>>3]=-.7071;l=2;i=g;return l|0}function cb(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,i=0,j=0,k=0,l=0,m=0;if((c|0)<0){e=-1;return e|0}if(!c){if((b|0)>0)f=0;else{e=b;return e|0}do{h[d+(f<<3)>>3]=+h[a+(f<<3)>>3];f=f+1|0}while((f|0)!=(b|0));e=b;return e|0}f=Z(b+-1|0,c)|0;b=f+1|0;if((f|0)>-1){g=0;i=1;j=0}else{e=b;return e|0}while(1){f=i+-1|0;k=d+(g<<3)|0;h[k>>3]=0.0;if(!f){h[k>>3]=+h[a+(j<<3)>>3];l=c;m=j+1|0}else{l=f;m=j}g=g+1|0;if((g|0)>=(b|0)){e=b;break}else{i=l;j=m}}return e|0}function db(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,i=0,j=0,k=0,l=0,m=0;if((c|0)<0){e=-1;return e|0}if(!c){if((b|0)>0)f=0;else{e=b;return e|0}do{h[d+(f<<3)>>3]=+h[a+(f<<3)>>3];f=f+1|0}while((f|0)!=(b|0));e=b;return e|0}f=Z(c,b)|0;if((f|0)>0){g=0;i=1;j=0}else{e=f;return e|0}while(1){b=i+-1|0;k=d+(g<<3)|0;h[k>>3]=0.0;if(!b){h[k>>3]=+h[a+(j<<3)>>3];l=c;m=j+1|0}else{l=b;m=j}g=g+1|0;if((g|0)==(f|0)){e=f;break}else{i=l;j=m}}return e|0}function eb(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0;if((c|0)<0){e=-1;return e|0}if(!c){if((b|0)>0)f=0;else{e=b;return e|0}do{h[d+(f<<3)>>3]=+h[a+(f<<3)>>3];f=f+1|0}while((f|0)!=(b|0));e=b;return e|0}else{f=(b+-1|0)/(c|0)|0;b=f+1|0;if((f|0)>-1)g=0;else{e=b;return e|0}do{h[d+(g<<3)>>3]=+h[a+((Z(g,c)|0)<<3)>>3];g=g+1|0}while((g|0)<(b|0));e=b;return e|0}return 0}function fb(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,i=0,j=0.0,k=0;if((b|0)>0){e=0;do{h[d+(e+c<<3)>>3]=+h[a+(e<<3)>>3];e=e+1|0}while((e|0)!=(b|0))}if(!(b&1))f=b;else{h[d+(c+b<<3)>>3]=+h[a+(b+-1<<3)>>3];f=b+1|0}if((c|0)<=0)return f|0;b=f+c|0;a=b+-1|0;e=c+-1|0;g=0;i=0;while(1){j=+h[d+(i+c<<3)>>3];h[d+(e+g<<3)>>3]=+h[d+(a+g<<3)>>3];h[d+(i+b<<3)>>3]=j;k=i+1|0;if((k|0)==(c|0))break;else{g=~i;i=k}}return f|0}function gb(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,i=0,j=0.0,k=0;if((b|0)>0){e=0;do{h[d+(e+c<<3)>>3]=+h[a+(e<<3)>>3];e=e+1|0}while((e|0)!=(b|0))}if((c|0)<=0)return b|0;e=c+b|0;a=e+-1|0;f=c+-1|0;g=0;i=0;while(1){j=+h[d+(a+g<<3)>>3];h[d+(f+g<<3)>>3]=+h[d+(i+c<<3)>>3];h[d+(i+e<<3)>>3]=j;k=i+1|0;if((k|0)==(c|0))break;else{g=~i;i=k}}return b|0}function hb(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0;d=(c|0)>-1?c:0-c|0;if((d|0)>(b|0))e=Z((d|0)%(b|0)|0,c>>31|1)|0;else e=c;if((e|0)<0)f=(e+b|0)%(b|0)|0;else f=e;e=f<<3;c=Kb(e)|0;d=(f|0)>0;if(d)Qb(c|0,a|0,e|0)|0;e=b-f|0;if((e|0)>0){b=0;do{h[a+(b<<3)>>3]=+h[a+(b+f<<3)>>3];b=b+1|0}while((b|0)!=(e|0))}if(!d){Lb(c);return}Qb(a+(e<<3)|0,c|0,f<<3|0)|0;Lb(c);return}function ib(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;if((b|0)>0){c=1;d=0;while(1){e=c<<1;d=d+1|0;if((d|0)==(b|0)){f=e;break}else c=e}}else f=1;return ((a|0)%(f|0)|0|0)==0|0}function jb(a,b){a=a|0;b=b|0;return ~~(+X(+(+(a|0)/(+(b|0)+-1.0)))/.6931471805599453)|0}function kb(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0;b=(a|0)!=0;if(b)d=ab(a)|0;else d=0;e=Kb((d<<5)+88|0)|0;c[e+52>>2]=d;c[e+68>>2]=d;c[e+64>>2]=d;c[e+60>>2]=d;c[e+56>>2]=d;Rb(e|0,a|0)|0;f=e+88|0;if(b){b=d<<1;g=d*3|0;bb(a,f,f+(d<<3)|0,f+(b<<3)|0,f+(g<<3)|0)|0;h=b;i=g}else{h=d<<1;i=d*3|0}c[e+72>>2]=f;c[e+76>>2]=f+(d<<3);c[e+80>>2]=f+(h<<3);c[e+84>>2]=f+(i<<3);return e|0}function lb(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0;g=i;i=i+16|0;h=g;j=c[b+52>>2]|0;if((f|0)>100){oa(15888)|0;Ea(-1)}k=jb(e,j)|0;if((k|0)<(f|0)){c[h>>2]=k;pa(15952,h|0)|0;Ea(-1)}do if(!d){h=(Z(f<<1,j+1|0)|0)+e|0;l=Kb((h<<3)+488|0)|0;c[l+24>>2]=h;h=l+44|0;a[h>>0]=115;a[h+1>>0]=121;a[h+2>>0]=109;a[h+3>>0]=0;m=l}else{if((Jb(d,16416)|0)!=0?(Jb(d,16424)|0)!=0:0){if((Jb(d,16448)|0)!=0?(Jb(d,16456)|0)!=0:0){if((Jb(d,16464)|0)!=0?(Jb(d,16472)|0)!=0:0){m=0;break}if(((Db(b,16088)|0)==0?(Db(b,16440)|0)==0:0)?(Db(b,16096)|0)==0:0){oa(16104)|0;Ea(-1)}l=Z(f+1|0,e)|0;h=Kb((l<<3)+488|0)|0;c[h+24>>2]=l;l=h+44|0;a[l>>0]=112;a[l+1>>0]=101;a[l+2>>0]=114;a[l+3>>0]=0;m=h;break}if(!(ib(e,f)|0)){oa(16032)|0;Ea(-1)}else{h=Z(f+1|0,e)|0;l=Kb((h<<3)+488|0)|0;c[l+24>>2]=h;h=l+44|0;a[h>>0]=112;a[h+1>>0]=101;a[h+2>>0]=114;a[h+3>>0]=0;m=l;break}}l=(Z(f<<1,j+1|0)|0)+e|0;h=Kb((l<<3)+488|0)|0;c[h+24>>2]=l;l=h+44|0;a[l>>0]=115;a[l+1>>0]=121;a[l+2>>0]=109;a[l+3>>0]=0;m=h}while(0);c[m>>2]=b;c[m+20>>2]=e;c[m+32>>2]=f;c[m+36>>2]=k;Rb(m+8|0,d|0)|0;c[m+40>>2]=e&1^1;c[m+4>>2]=0;k=m+54|0;a[k>>0]=a[16184]|0;a[k+1>>0]=a[16185]|0;a[k+2>>0]=a[16186]|0;a[k+3>>0]=a[16187]|0;a[k+4>>0]=a[16188]|0;a[k+5>>0]=a[16189]|0;a[k+6>>0]=a[16190]|0;c[m+68>>2]=0;c[m+28>>2]=f+2;c[m+484>>2]=m+488;if((Jb(d,16416)|0)!=0?(Jb(d,16424)|0)!=0:0){if((((Jb(d,16448)|0)!=0?(Jb(d,16456)|0)!=0:0)?(Jb(d,16464)|0)!=0:0)?(Jb(d,16472)|0)!=0:0){i=g;return m|0}d=Z(f+1|0,e)|0;if((d|0)<=0){i=g;return m|0}Nb(m+488|0,0,d<<3|0)|0;i=g;return m|0}d=j+1|0;if(((Z(f<<1,d)|0)+e|0)<=0){i=g;return m|0}Nb(m+488|0,0,((Z(d,f)|0)<<4)+(e<<3)|0)|0;i=g;return m|0}function mb(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0.0,F=0.0,G=0,H=0,I=0,J=0.0,K=0.0,L=0.0,M=0.0,N=0.0,O=0,P=0,Q=0,R=0.0,S=0.0,T=0.0,U=0.0,V=0,W=0.0,X=0.0;d=i;i=i+16|0;e=d;f=a+20|0;g=c[f>>2]|0;j=c[a+32>>2]|0;k=a+76|0;c[a+76+(j+1<<2)>>2]=g;l=a+24|0;c[l>>2]=0;m=a+72|0;if(!(g&1)){c[m>>2]=0;n=g<<3;o=Kb(n)|0;p=0;q=o;r=Kb(n)|0;s=g}else{c[m>>2]=1;m=g+1|0;g=m<<3;n=Kb(g)|0;p=1;q=n;r=Kb(g)|0;s=m}m=c[f>>2]|0;if((m|0)>0)Qb(q|0,b|0,((m|0)>1?m<<3:8)|0)|0;if((p|0)==1)h[q+(s+-1<<3)>>3]=+h[q+(s+-2<<3)>>3];p=c[(c[a>>2]|0)+56>>2]|0;m=a+44|0;if(Jb(m,16432)|0){if(Jb(m,16440)|0){pa(16208,e|0)|0;Ea(-1)}e=(j|0)>0;if(!e){m=c[a+80>>2]|0;c[k>>2]=m;c[l>>2]=m;Lb(q);Lb(r);i=d;return}m=p+-2|0;p=s;b=j;while(1){p=~~+Y(+(+(m+p|0)*.5));c[a+76+(b<<2)>>2]=p;f=(c[l>>2]|0)+p|0;c[l>>2]=f;if((b|0)<=1){t=f;break}else b=b+-1|0}b=c[a+80>>2]|0;c[k>>2]=b;p=t+b|0;c[l>>2]=p;if(!e){Lb(q);Lb(r);i=d;return}e=a+54|0;b=j+-1|0;t=a+488|0;m=p;p=0;f=s;do{g=a+76+(j-p<<2)|0;n=c[g>>2]|0;m=m-n|0;if((Jb(e,16192)|0)!=0?(Jb(e,16200)|0)!=0:0){o=c[a>>2]|0;u=c[o+56>>2]|0;if((n|0)>0){v=(u|0)>0;w=o+72|0;x=o+76|0;o=(f<<1)+-1|0;y=0;do{z=y<<1;A=z|1;B=r+(y<<3)|0;h[B>>3]=0.0;C=a+488+(y+m<<3)|0;h[C>>3]=0.0;if(v){D=z^-2;z=o-A|0;E=0.0;F=0.0;G=0;while(1){H=A-G|0;I=(H|0)<(f|0);do if((H|0)>-1&I){J=+h[q+(H<<3)>>3];K=E+ +h[(c[w>>2]|0)+(G<<3)>>3]*J;h[B>>3]=K;L=F+ +h[(c[x>>2]|0)+(G<<3)>>3]*J;h[C>>3]=L;M=L;N=K}else{if((H|0)<0){K=+h[q+(G+D<<3)>>3];L=E+ +h[(c[w>>2]|0)+(G<<3)>>3]*K;h[B>>3]=L;J=F+ +h[(c[x>>2]|0)+(G<<3)>>3]*K;h[C>>3]=J;M=J;N=L;break}if(I){M=F;N=E;break}L=+h[q+(z+G<<3)>>3];J=E+ +h[(c[w>>2]|0)+(G<<3)>>3]*L;h[B>>3]=J;K=F+ +h[(c[x>>2]|0)+(G<<3)>>3]*L;h[C>>3]=K;M=K;N=J}while(0);G=G+1|0;if((G|0)==(u|0))break;else{E=N;F=M}}}y=y+1|0}while((y|0)!=(n|0))}}else vb(a,q,f,r,a+488+(m<<3)|0);f=c[g>>2]|0;y=(n|0)>0;if((p|0)==(b|0)){if(y)Qb(t|0,r|0,n<<3|0)|0}else if(y)Qb(q|0,r|0,n<<3|0)|0;p=p+1|0}while((p|0)!=(j|0));Lb(q);Lb(r);i=d;return}p=(j|0)>0;if(p){O=s;P=j}else{t=c[a+80>>2]|0;c[k>>2]=t;c[l>>2]=t;Lb(q);Lb(r);i=d;return}while(1){O=~~+Y(+(+(O|0)*.5));c[a+76+(P<<2)>>2]=O;t=(c[l>>2]|0)+O|0;c[l>>2]=t;if((P|0)<=1){Q=t;break}else P=P+-1|0}P=c[a+80>>2]|0;c[k>>2]=P;k=Q+P|0;c[l>>2]=k;if(!p){Lb(q);Lb(r);i=d;return}p=a+54|0;l=j+-1|0;P=a+488|0;Q=k;k=0;O=s;do{s=a+76+(j-k<<2)|0;t=c[s>>2]|0;Q=Q-t|0;if((Jb(p,16192)|0)!=0?(Jb(p,16200)|0)!=0:0){b=c[a>>2]|0;f=c[b+56>>2]|0;m=(f|0)/2|0;e=(O|0)%2|0;if((t|0)>0){y=(f|0)>0;u=b+72|0;x=b+76|0;b=(e|0)==0;w=(e|0)==1;e=q+(O+-1<<3)|0;o=~O;v=0;do{G=(v<<1)+m|0;C=r+(v<<3)|0;h[C>>3]=0.0;B=a+488+(v+Q<<3)|0;h[B>>3]=0.0;a:do if(y){if(b){M=0.0;N=0.0;z=0;while(1){D=G-z|0;A=(D|0)<(O|0);do if((D|0)>=(m|0)&A){F=+h[q+(D<<3)>>3];E=M+ +h[(c[u>>2]|0)+(z<<3)>>3]*F;h[C>>3]=E;J=N+ +h[(c[x>>2]|0)+(z<<3)>>3]*F;h[B>>3]=J;R=J;S=E}else{if((D|0)<(m|0)&(D|0)>-1){E=+h[q+(D<<3)>>3];J=M+ +h[(c[u>>2]|0)+(z<<3)>>3]*E;h[C>>3]=J;F=N+ +h[(c[x>>2]|0)+(z<<3)>>3]*E;h[B>>3]=F;R=F;S=J;break}if((D|0)<0){J=+h[q+(D+O<<3)>>3];F=M+ +h[(c[u>>2]|0)+(z<<3)>>3]*J;h[C>>3]=F;E=N+ +h[(c[x>>2]|0)+(z<<3)>>3]*J;h[B>>3]=E;R=E;S=F;break}if(A){R=N;S=M;break}F=+h[q+(D-O<<3)>>3];E=M+ +h[(c[u>>2]|0)+(z<<3)>>3]*F;h[C>>3]=E;J=N+ +h[(c[x>>2]|0)+(z<<3)>>3]*F;h[B>>3]=J;R=J;S=E}while(0);z=z+1|0;if((z|0)==(f|0))break a;else{M=S;N=R}}}else{T=0.0;U=0.0;V=0}while(1){z=G-V|0;do if(!((z|0)>=(m|0)&(z|0)<(O|0))){if((z|0)<(m|0)&(z|0)>-1){N=+h[q+(z<<3)>>3];M=T+ +h[(c[u>>2]|0)+(V<<3)>>3]*N;h[C>>3]=M;E=U+ +h[(c[x>>2]|0)+(V<<3)>>3]*N;h[B>>3]=E;W=E;X=M;break}if((z|0)<0){M=+h[q+(z+O<<3)>>3];E=T+ +h[(c[u>>2]|0)+(V<<3)>>3]*M;h[C>>3]=E;N=U+ +h[(c[x>>2]|0)+(V<<3)>>3]*M;h[B>>3]=N;W=N;X=E;break}if(!(w&(z|0)>=(O|0))){W=U;X=T;break}E=+h[(c[u>>2]|0)+(V<<3)>>3];if((z|0)==(O|0)){N=+h[e>>3];M=T+E*N;h[C>>3]=M;J=U+ +h[(c[x>>2]|0)+(V<<3)>>3]*N;h[B>>3]=J;W=J;X=M;break}else{M=+h[q+(z+o<<3)>>3];J=T+E*M;h[C>>3]=J;E=U+ +h[(c[x>>2]|0)+(V<<3)>>3]*M;h[B>>3]=E;W=E;X=J;break}}else{J=+h[q+(z<<3)>>3];E=T+ +h[(c[u>>2]|0)+(V<<3)>>3]*J;h[C>>3]=E;M=U+ +h[(c[x>>2]|0)+(V<<3)>>3]*J;h[B>>3]=M;W=M;X=E}while(0);V=V+1|0;if((V|0)==(f|0))break;else{T=X;U=W}}}while(0);v=v+1|0}while((v|0)!=(t|0))}}else vb(a,q,O,r,a+488+(Q<<3)|0);O=c[s>>2]|0;v=(t|0)>0;if((k|0)==(l|0)){if(v)Qb(P|0,r|0,t<<3|0)|0}else if(v)Qb(q|0,r|0,t<<3|0)|0;k=k+1|0}while((k|0)!=(j|0));Lb(q);Lb(r);i=d;return}function nb(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0.0,U=0,V=0.0,W=0,X=0,Y=0,Z=0,_=0;d=i;i=i+32|0;e=d+16|0;f=d;g=d+8|0;j=c[a+32>>2]|0;k=c[a+76>>2]|0;l=a+20|0;m=Kb((c[l>>2]<<3)+8|0)|0;n=a+44|0;do if(!(Jb(n,16432)|0)){o=a+54|0;if((Jb(o,16192)|0)!=0?(Jb(o,16200)|0)!=0:0){if(Jb(a+54|0,16184)|0){p=48;break}q=c[a+80>>2]|0;r=c[a>>2]|0;s=(c[r+68>>2]|0)+(c[r+64>>2]|0)|0;t=(s|0)/2|0;u=Kb((t+(c[a+76+(j<<2)>>2]|0)<<4)+-8|0)|0;if((k|0)>0){v=c[a+484>>2]|0;w=0;do{h[m+(w<<3)>>3]=+h[v+(w<<3)>>3];w=w+1|0}while((w|0)!=(k|0))}if((j|0)>0){w=c[a+484>>2]|0;v=(s|0)/4|0;x=(s|0)>3;y=r+80|0;z=r+84|0;A=0-v|0;B=u+((v<<3)+-8)|0;C=q;D=0;E=k;while(1){F=C+-1|0;G=v+F|0;if((G|0)>0){H=t+F|0;F=0;I=-2;J=-1;do{I=I+2|0;J=J+2|0;K=u+(I<<3)|0;h[K>>3]=0.0;L=u+(J<<3)|0;h[L>>3]=0.0;if(x){M=F+C|0;N=0;do{O=N<<1;P=F-N|0;Q=(P|0)<(C|0);do if(!((P|0)>-1&Q)){if((P|0)<(H|0)&(Q^1)){R=c[y>>2]|0;S=P-C|0;T=+h[m+(S<<3)>>3];U=c[z>>2]|0;V=+h[w+(S+E<<3)>>3];h[K>>3]=+h[K>>3]+(+h[R+(O<<3)>>3]*T+ +h[U+(O<<3)>>3]*V);S=O|1;h[L>>3]=+h[L>>3]+(+h[R+(S<<3)>>3]*T+ +h[U+(S<<3)>>3]*V);break}if((P|0)<0&(P|0)>(A|0)){S=c[y>>2]|0;U=M-N|0;V=+h[m+(U<<3)>>3];R=c[z>>2]|0;T=+h[w+(U+E<<3)>>3];h[K>>3]=+h[K>>3]+(+h[S+(O<<3)>>3]*V+ +h[R+(O<<3)>>3]*T);U=O|1;h[L>>3]=+h[L>>3]+(+h[S+(U<<3)>>3]*V+ +h[R+(U<<3)>>3]*T)}}else{U=c[y>>2]|0;T=+h[m+(P<<3)>>3];R=c[z>>2]|0;V=+h[w+(P+E<<3)>>3];h[K>>3]=+h[K>>3]+(+h[U+(O<<3)>>3]*T+ +h[R+(O<<3)>>3]*V);S=O|1;h[L>>3]=+h[L>>3]+(+h[U+(S<<3)>>3]*T+ +h[R+(S<<3)>>3]*V)}while(0);N=N+1|0}while((N|0)<(v|0))}F=F+1|0}while((F|0)!=(G|0))}if((v|0)<=((C<<1)+-1+v|0))Qb(m|0,B|0,C<<4|0)|0;E=C+E|0;G=D+1|0;if((G|0)==(j|0))break;else{C=c[a+76+(D+2<<2)>>2]|0;D=G}}}Lb(u);break}D=c[a+80>>2]|0;C=c[a+76+(j<<2)>>2]|0;E=C<<1;B=c[a>>2]|0;v=((c[B+68>>2]|0)+(c[B+64>>2]|0)|0)/2|0;w=Kb(C<<4)|0;C=Kb(v+E<<3)|0;z=((v<<1)+E<<3)+-8|0;E=Kb(z)|0;v=Kb(z)|0;if((k|0)>0){z=c[a+484>>2]|0;y=0;do{h[m+(y<<3)>>3]=+h[z+(y<<3)>>3];y=y+1|0}while((y|0)!=(k|0))}a:do if((j|0)>0){y=a+484|0;z=a+4|0;u=a+68|0;A=B;x=D;t=0;q=k;while(1){r=(c[y>>2]|0)+(q<<3)|0;s=(c[A+68>>2]|0)+(c[A+64>>2]|0)|0;G=(s|0)/2|0;F=x<<1;db(m,x,2,w)|0;H=(s|0)/4|0;fb(w,F,H,C)|0;s=G+F|0;J=c[a>>2]|0;if((c[J+64>>2]|0)!=(c[J+68>>2]|0))break;if((Jb(o,16192)|0)!=0?(Jb(o,16200)|0)!=0:0)W=J;else{c[z>>2]=Ya(s,G)|0;c[u>>2]=1;W=c[a>>2]|0}wb(a,C,s,c[W+80>>2]|0,G,E);db(r,x,2,w)|0;fb(w,F,H,C)|0;wb(a,C,s,c[(c[a>>2]|0)+84>>2]|0,G,v);if((G|0)<=(s+-1|0)){s=1-G|0;H=F+-1+G|0;F=G+-1|0;do{h[m+(s+F<<3)>>3]=+h[E+(F<<3)>>3]+ +h[v+(F<<3)>>3];F=F+1|0}while((F|0)!=(H|0))}H=c[a>>2]|0;do if((c[H+64>>2]|0)==(c[H+68>>2]|0)){if((Jb(o,16192)|0)!=0?(Jb(o,16200)|0)!=0:0)break;$a(c[z>>2]|0);c[u>>2]=0}while(0);H=t+1|0;if((H|0)>=(j|0))break a;F=x+q|0;A=c[a>>2]|0;x=c[a+76+(t+2<<2)>>2]|0;t=H;q=F}pa(16256,g|0)|0;Ea(-1)}while(0);Lb(w);Lb(E);Lb(v);Lb(C)}else p=48;while(0);do if((p|0)==48){if(Jb(n,16440)|0){pa(16208,e|0)|0;Ea(-1)}if(!(Jb(a+54|0,16184)|0)){g=c[a+80>>2]|0;W=c[a>>2]|0;o=W+64|0;D=W+68|0;B=((c[D>>2]|0)+(c[o>>2]|0)|0)/2|0;q=Kb((B+(c[a+76+(j<<2)>>2]|0)<<4)+-16|0)|0;if((k|0)>0){t=c[a+484>>2]|0;x=0;do{h[m+(x<<3)>>3]=+h[t+(x<<3)>>3];x=x+1|0}while((x|0)!=(k|0))}if((j|0)>0){x=c[a+484>>2]|0;t=W+80|0;C=W+84|0;v=B+-2|0;E=q+((B<<3)+-16)|0;w=2-B|0;A=g;u=0;z=k;while(1){b:do if((A|0)>0){y=(c[o>>2]|0)+(c[D>>2]|0)|0;F=(y|0)/4|0;if((y|0)>3){X=-2;Y=-1;Z=0}else{y=-2;H=-1;s=0;while(1){y=y+2|0;H=H+2|0;h[q+(y<<3)>>3]=0.0;h[q+(H<<3)>>3]=0.0;s=s+1|0;if((s|0)==(A|0))break b}}do{X=X+2|0;Y=Y+2|0;s=q+(X<<3)|0;h[s>>3]=0.0;H=q+(Y<<3)|0;h[H>>3]=0.0;y=0;do{G=y<<1;r=Z-y|0;if((r|0)>-1&(r|0)<(A|0)){J=c[t>>2]|0;V=+h[m+(r<<3)>>3];I=c[C>>2]|0;T=+h[x+(r+z<<3)>>3];h[s>>3]=+h[s>>3]+(+h[J+(G<<3)>>3]*V+ +h[I+(G<<3)>>3]*T);r=G|1;h[H>>3]=+h[H>>3]+(+h[J+(r<<3)>>3]*V+ +h[I+(r<<3)>>3]*T)}y=y+1|0}while((y|0)<(F|0));Z=Z+1|0}while((Z|0)!=(A|0))}while(0);if((v|0)<(A<<1|0))Qb(m|0,E|0,w+(A<<1)<<3|0)|0;z=A+z|0;F=u+1|0;if((F|0)==(j|0))break;else{A=c[a+76+(u+2<<2)>>2]|0;u=F}}}Lb(q);break}u=a+54|0;if((Jb(u,16192)|0)!=0?(Jb(u,16200)|0)!=0:0){pa(16208,e|0)|0;Ea(-1)}A=c[(c[a>>2]|0)+56>>2]|0;z=(c[a+76+(j<<2)>>2]<<1)+-1|0;w=Kb(z<<3)|0;E=(z+A<<3)+-8|0;z=Kb(E)|0;v=Kb(E)|0;if((k|0)>0){E=c[a+484>>2]|0;x=0;do{h[m+(x<<3)>>3]=+h[E+(x<<3)>>3];x=x+1|0}while((x|0)!=(k|0))}c:do if((j|0)>0){x=a+4|0;E=a+68|0;q=a+484|0;C=A+-2|0;t=2-A|0;D=0;o=k;while(1){D=D+1|0;g=a+76+(D<<2)|0;B=c[g>>2]|0;cb(m,B,2,w)|0;W=c[g>>2]|0;g=W<<1;F=g+-1|0;y=c[a>>2]|0;if((c[y+64>>2]|0)!=(c[y+68>>2]|0))break;if((Jb(u,16192)|0)!=0?(Jb(u,16200)|0)!=0:0)_=y;else{c[x>>2]=Ya(F,A)|0;c[E>>2]=1;_=c[a>>2]|0}wb(a,w,F,c[_+80>>2]|0,A,z);cb((c[q>>2]|0)+(o<<3)|0,B,2,w)|0;wb(a,w,F,c[(c[a>>2]|0)+84>>2]|0,A,v);if((C|0)<(g|0)){g=W<<1;W=C;do{h[m+(t+W<<3)>>3]=+h[z+(W<<3)>>3]+ +h[v+(W<<3)>>3];W=W+1|0}while((W|0)!=(g|0))}o=B+o|0;g=c[a>>2]|0;do if((c[g+64>>2]|0)==(c[g+68>>2]|0)){if((Jb(u,16192)|0)!=0?(Jb(u,16200)|0)!=0:0)break;$a(c[x>>2]|0);c[E>>2]=0}while(0);if((D|0)>=(j|0))break c}pa(16256,f|0)|0;Ea(-1)}while(0);Lb(w);Lb(z);Lb(v)}while(0);f=c[l>>2]|0;if((f|0)<=0){Lb(m);i=d;return}Qb(b|0,m|0,((f|0)>1?f<<3:8)|0)|0;Lb(m);i=d;return}function ob(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0.0,E=0.0,F=0,G=0,H=0,I=0,J=0.0,K=0.0,L=0.0,M=0.0,N=0.0,O=0,P=0.0,Q=0,R=0,S=0,T=0,U=0;d=i;i=i+16|0;e=d+8|0;f=d;if(Jb(a+8|0,16448)|0){pa(16312,e|0)|0;Ea(-1)}if(!(Jb(a+54|0,16184)|0)){g=c[a+20>>2]|0;j=c[a+32>>2]|0;c[a+76+(j<<2)>>2]=g;c[a+76>>2]=g;k=j+1|0;l=Z(k,g)|0;c[a+76+(k<<2)>>2]=l;k=a+24|0;c[k>>2]=l;if((j|0)>1){l=1;do{c[a+76+(l<<2)>>2]=g;l=l+1|0}while((l|0)!=(j|0))}l=g<<3;m=Kb(l)|0;n=Kb(l)|0;l=(g|0)>0;if(l){o=0;do{h[a+488+(o<<3)>>3]=+h[b+(o<<3)>>3];o=o+1|0}while((o|0)!=(g|0))}if((j|0)>0){o=(g|0)%2|0;p=(o|0)==0;q=(o|0)==1;o=a+488+(g+-1<<3)|0;r=~g;s=1;t=0;u=c[k>>2]|0;do{u=u-g|0;s=s<<((t|0)>0&1);k=c[a>>2]|0;v=Z(c[k+56>>2]|0,s)|0;w=(v|0)/2|0;if(l){x=(v|0)>0;y=k+72|0;z=k+76|0;k=0;do{A=k+w|0;B=m+(k<<3)|0;h[B>>3]=0.0;C=n+(k<<3)|0;h[C>>3]=0.0;if(x){D=0.0;E=0.0;F=0;G=-1;while(1){H=F;while(1)if((H|0)<(g|0)){I=H;break}else H=H-g|0;G=G+1|0;H=A-I|0;do if(!((H|0)>=(w|0)&(H|0)<(g|0))){if((H|0)<(w|0)&(H|0)>-1){J=+h[a+488+(H<<3)>>3];K=D+ +h[(c[y>>2]|0)+(G<<3)>>3]*J;h[B>>3]=K;L=E+J*+h[(c[z>>2]|0)+(G<<3)>>3];h[C>>3]=L;M=L;N=K;break}if((H|0)<0){K=+h[a+488+(H+g<<3)>>3];L=D+ +h[(c[y>>2]|0)+(G<<3)>>3]*K;h[B>>3]=L;J=E+K*+h[(c[z>>2]|0)+(G<<3)>>3];h[C>>3]=J;M=J;N=L;break}O=(H|0)>=(g|0);if(p&O){L=+h[a+488+(H-g<<3)>>3];J=D+ +h[(c[y>>2]|0)+(G<<3)>>3]*L;h[B>>3]=J;K=E+L*+h[(c[z>>2]|0)+(G<<3)>>3];h[C>>3]=K;M=K;N=J;break}if(q&O){J=+h[(c[y>>2]|0)+(G<<3)>>3];if((A-G|0)==(g|0)){K=+h[o>>3];L=D+J*K;h[B>>3]=L;P=E+K*+h[(c[z>>2]|0)+(G<<3)>>3];h[C>>3]=P;M=P;N=L;break}else{L=+h[a+488+(H+r<<3)>>3];P=D+J*L;h[B>>3]=P;J=E+L*+h[(c[z>>2]|0)+(G<<3)>>3];h[C>>3]=J;M=J;N=P;break}}else{M=E;N=D}}else{P=+h[a+488+(H<<3)>>3];J=D+ +h[(c[y>>2]|0)+(G<<3)>>3]*P;h[B>>3]=J;L=E+P*+h[(c[z>>2]|0)+(G<<3)>>3];h[C>>3]=L;M=L;N=J}while(0);F=I+s|0;if((F|0)>=(v|0))break;else{D=N;E=M}}}k=k+1|0}while((k|0)!=(g|0));Q=0;do{h[a+488+(Q<<3)>>3]=+h[m+(Q<<3)>>3];h[a+488+(Q+u<<3)>>3]=+h[n+(Q<<3)>>3];Q=Q+1|0}while((Q|0)!=(g|0))}t=t+1|0}while((t|0)!=(j|0))}Lb(m);Lb(n);i=d;return}else{n=a+54|0;if((Jb(n,16192)|0)!=0?(Jb(n,16200)|0)!=0:0){pa(16312,e|0)|0;Ea(-1)}e=c[a+20>>2]|0;m=c[a+32>>2]|0;c[a+76+(m<<2)>>2]=e;c[a+76>>2]=e;j=m+1|0;t=Z(j,e)|0;c[a+76+(j<<2)>>2]=t;j=a+24|0;c[j>>2]=t;if((m|0)>1){t=1;g=1;while(1){Q=t<<1;c[a+76+(g<<2)>>2]=e;g=g+1|0;if((g|0)==(m|0)){R=Q;break}else t=Q}}else R=1;t=c[(c[a>>2]|0)+52>>2]|0;g=Z(t,R<<3)|0;Q=Kb(g)|0;u=Kb(g)|0;g=(e|0)%2|0;s=Kb((Z(t,R)|0)+e+g<<3)|0;I=((Z(R<<1,t)|0)+e+g<<3)+-1|0;R=Kb(I)|0;r=Kb(I)|0;I=(e|0)>0;if(I){o=0;do{h[a+488+(o<<3)>>3]=+h[b+(o<<3)>>3];o=o+1|0}while((o|0)!=(e|0))}a:do if((m|0)>0){o=a+488|0;b=g+e|0;q=a+4|0;p=a+68|0;l=(t|0)>0;k=1;v=0;z=c[j>>2]|0;while(1){z=z-e|0;if((v|0)<=0)if(l){y=c[a>>2]|0;w=c[y+72>>2]|0;x=c[y+76>>2]|0;y=0;do{h[Q+(y<<3)>>3]=+h[w+(y<<3)>>3];h[u+(y<<3)>>3]=+h[x+(y<<3)>>3];y=y+1|0}while((y|0)!=(t|0));S=k;T=t}else{S=k;T=t}else{y=k<<1;x=Z(y,t)|0;w=c[a>>2]|0;db(c[w+72>>2]|0,c[w+56>>2]|0,y,Q)|0;w=c[a>>2]|0;db(c[w+76>>2]|0,c[w+60>>2]|0,y,u)|0;S=y;T=x}fb(o,e,(T|0)/2|0,s)|0;x=c[a>>2]|0;if((c[x+56>>2]|0)!=(c[x+60>>2]|0))break;if((Jb(n,16192)|0)!=0?(Jb(n,16200)|0)!=0:0)U=T+b|0;else{x=T+b|0;c[q>>2]=Ya(x,T)|0;c[p>>2]=1;U=x}wb(a,s,U,Q,T,R);wb(a,s,U,u,T,r);x=c[a>>2]|0;do if((c[x+56>>2]|0)==(c[x+60>>2]|0)){if((Jb(n,16192)|0)!=0?(Jb(n,16200)|0)!=0:0)break;$a(c[q>>2]|0);c[p>>2]=0}while(0);if(I){x=0;do{y=x+T|0;h[a+488+(x<<3)>>3]=+h[R+(y<<3)>>3];h[a+488+(x+z<<3)>>3]=+h[r+(y<<3)>>3];x=x+1|0}while((x|0)!=(e|0))}v=v+1|0;if((v|0)>=(m|0))break a;else k=S}pa(16256,f|0)|0;Ea(-1)}while(0);Lb(Q);Lb(u);Lb(s);Lb(R);Lb(r);i=d;return}}function pb(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0;d=i;i=i+16|0;e=d;f=c[a+20>>2]|0;g=c[a+32>>2]|0;j=c[(c[a>>2]|0)+64>>2]|0;k=f<<3;l=Kb(k)|0;m=Kb(k)|0;n=Kb(k)|0;o=Kb(k)|0;p=Kb(k)|0;q=Kb(k)|0;r=Kb(k)|0;s=j+f+((f|0)%2|0)<<3;t=Kb(s)|0;u=Kb(s)|0;s=(j<<1)+f<<3;v=Kb(s)|0;w=Kb(s)|0;s=Kb(k)|0;x=Kb(k)|0;if((g|0)<=0){Lb(l);Lb(m);Lb(n);Lb(o);Lb(r);Lb(t);Lb(u);Lb(v);Lb(w);Lb(s);Lb(x);Lb(p);Lb(q);i=d;return}k=(f|0)>0;y=g+-1|0;z=(j|0)/2|0;A=a+54|0;B=a+4|0;C=a+68|0;D=j+-1|0;E=1-j|0;F=a+484|0;G=f<<3;H=0;a:while(1){I=f+(Z(f,H)|0)|0;if(k)Nb(b|0,0,G|0)|0;if(!H){if(k){J=c[F>>2]|0;Qb(l|0,J|0,G|0)|0;Qb(m|0,J+(f<<3)|0,G|0)|0}}else if(k)Qb(m|0,(c[F>>2]|0)+(I<<3)|0,G|0)|0;I=~~+Ab(1.0,y-H|0);if((I|0)>0){J=0;do{K=(J|0)<(f|0);if(K){L=J;M=0;while(1){h[n+(M<<3)>>3]=+h[l+(L<<3)>>3];h[o+(M<<3)>>3]=+h[m+(L<<3)>>3];N=M+1|0;L=L+I|0;if((L|0)>=(f|0)){O=N;P=M;break}else M=N}if((P|0)>-1){M=(P>>>1)+1|0;L=0;N=0;while(1){h[p+(N<<3)>>3]=+h[n+(L<<3)>>3];h[q+(N<<3)>>3]=+h[o+(L<<3)>>3];N=N+1|0;if((N|0)==(M|0)){Q=O;R=M;break}else L=L+2|0}}else{Q=O;R=0}}else{Q=0;R=0}db(p,R,2,r)|0;L=R<<1;fb(r,L,z,t)|0;db(q,R,2,r)|0;fb(r,L,z,u)|0;M=L+j|0;L=c[a>>2]|0;do if((c[L+64>>2]|0)==(c[L+68>>2]|0)){if((Jb(A,16192)|0)!=0?(Jb(A,16200)|0)!=0:0){S=22;break}c[B>>2]=Ya(M,j)|0;c[C>>2]=1;T=c[a>>2]|0}else S=22;while(0);if((S|0)==22){S=0;if((c[L+56>>2]|0)==(c[L+60>>2]|0))T=L;else{S=23;break a}}wb(a,t,M,c[T+80>>2]|0,j,v);wb(a,u,M,c[(c[a>>2]|0)+84>>2]|0,j,w);N=M+-1|0;if((j|0)<=(N|0)){U=D;do{h[s+(E+U<<3)>>3]=+h[v+(U<<3)>>3]+ +h[w+(U<<3)>>3];U=U+1|0}while((U|0)<(N|0))}if((Q|0)>1){N=((Q+-2|0)>>>1)+1|0;U=1;M=0;while(1){h[p+(M<<3)>>3]=+h[n+(U<<3)>>3];h[q+(M<<3)>>3]=+h[o+(U<<3)>>3];M=M+1|0;if((M|0)==(N|0)){V=N;break}else U=U+2|0}}else V=0;db(p,V,2,r)|0;U=V<<1;fb(r,U,z,t)|0;db(q,V,2,r)|0;fb(r,U,z,u)|0;N=U+j|0;wb(a,t,N,c[(c[a>>2]|0)+80>>2]|0,j,v);wb(a,u,N,c[(c[a>>2]|0)+84>>2]|0,j,w);M=N+-1|0;if((j|0)<=(M|0)){N=D;do{h[x+(E+N<<3)>>3]=+h[v+(N<<3)>>3]+ +h[w+(N<<3)>>3];N=N+1|0}while((N|0)<(M|0))}hb(x,U,-1);if(K){M=J;N=0;while(1){h[b+(M<<3)>>3]=(+h[s+(N<<3)>>3]+ +h[x+(N<<3)>>3])*.5;M=M+I|0;if((M|0)>=(f|0))break;else N=N+1|0}}J=J+1|0}while((J|0)<(I|0))}if(k)Qb(l|0,b|0,G|0)|0;H=H+1|0;if((H|0)>=(g|0)){S=35;break}}if((S|0)==23){pa(16256,e|0)|0;Ea(-1)}else if((S|0)==35){Lb(l);Lb(m);Lb(n);Lb(o);Lb(r);Lb(t);Lb(u);Lb(v);Lb(w);Lb(s);Lb(x);Lb(p);Lb(q);i=d;return}}function qb(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0.0,r=0.0,s=0.0,t=0.0,u=0.0,v=0,w=0,x=0,y=0,z=0,A=0,B=0.0,C=0.0,D=0.0,E=0.0;d=c[a+20>>2]|0;e=c[a+32>>2]|0;c[a+76+(e<<2)>>2]=d;c[a+76>>2]=d;f=e+1|0;g=Z(f,d)|0;c[a+76+(f<<2)>>2]=g;f=a+24|0;c[f>>2]=g;if((e|0)>1){g=1;do{c[a+76+(g<<2)>>2]=d;g=g+1|0}while((g|0)!=(e|0))}g=d<<3;i=Kb(g)|0;j=Kb(g)|0;g=(d|0)>0;if(g){k=0;do{h[a+488+(k<<3)>>3]=+h[b+(k<<3)>>3];k=k+1|0}while((k|0)!=(d|0))}if((e|0)<=0){Lb(i);Lb(j);return}k=1;b=0;l=c[f>>2]|0;do{l=l-d|0;k=k<<((b|0)>0&1);f=c[a>>2]|0;m=c[f+56>>2]|0;n=Kb(m<<4)|0;if((m|0)>0){o=c[f+72>>2]|0;p=c[f+76>>2]|0;f=0;do{h[n+(f<<3)>>3]=+h[o+(f<<3)>>3]/1.4142135623730951;h[n+(f+m<<3)>>3]=+h[p+(f<<3)>>3]/1.4142135623730951;f=f+1|0}while((f|0)!=(m|0))}if(g){q=+h[n>>3];r=+h[n+(m<<3)>>3];f=(m|0)>1;p=0;do{s=+h[a+488+(p<<3)>>3];t=q*s;o=i+(p<<3)|0;h[o>>3]=t;u=r*s;v=j+(p<<3)|0;h[v>>3]=u;if(f){s=t;t=u;w=1;x=p;while(1){y=x-k|0;while(1)if((y|0)<(d|0)){z=y;break}else y=y-d|0;while(1)if((z|0)<0)z=z+d|0;else{A=z;break}u=+h[a+488+(A<<3)>>3];B=s+ +h[n+(w<<3)>>3]*u;C=t+ +h[n+(w+m<<3)>>3]*u;y=w+1|0;if((y|0)==(m|0)){D=B;E=C;break}else{s=B;t=C;w=y;x=A}}h[o>>3]=D;h[v>>3]=E}p=p+1|0}while((p|0)!=(d|0));Lb(n);if(g){p=0;do{h[a+488+(p<<3)>>3]=+h[i+(p<<3)>>3];h[a+488+(p+l<<3)>>3]=+h[j+(p<<3)>>3];p=p+1|0}while((p|0)!=(d|0))}}else Lb(n);b=b+1|0}while((b|0)!=(e|0));Lb(i);Lb(j);return}function rb(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0.0,s=0.0,t=0.0,u=0.0,v=0,w=0,x=0,y=0,z=0,A=0.0;d=c[a+20>>2]|0;e=c[a+32>>2]|0;f=~~+Eb(+(e|0)+-1.0);g=Kb(d<<3)|0;i=(d|0)>0;if(i){j=c[a+484>>2]|0;k=0;do{h[b+(k<<3)>>3]=+h[j+(k<<3)>>3];k=k+1|0}while((k|0)!=(d|0))}if((e|0)<=0){Lb(g);return}k=d<<3;j=f;f=0;l=d;while(1){j=(f|0)>0?(j|0)/2|0:j;m=c[a>>2]|0;n=c[m+56>>2]|0;o=Kb(n<<4)|0;if((n|0)>0){p=c[m+72>>2]|0;q=c[m+76>>2]|0;m=0;do{h[o+(m<<3)>>3]=+h[p+(m<<3)>>3]/1.4142135623730951;h[o+(m+n<<3)>>3]=+h[q+(m<<3)>>3]/1.4142135623730951;m=m+1|0}while((m|0)!=(n|0))}if(i){r=+h[o>>3];s=+h[o+(n<<3)>>3];m=(n|0)>1;q=0;do{t=r*+h[b+(q<<3)>>3]+s*+h[a+488+(q+l<<3)>>3];p=g+(q<<3)|0;h[p>>3]=t;if(m){u=t;v=1;w=q;while(1){x=w+j|0;while(1)if((x|0)<(d|0)){y=x;break}else x=x-d|0;while(1)if((y|0)<0)y=y+d|0;else{z=y;break}t=u+(+h[o+(v<<3)>>3]*+h[b+(z<<3)>>3]+ +h[o+(v+n<<3)>>3]*+h[a+488+(z+l<<3)>>3]);x=v+1|0;if((x|0)==(n|0)){A=t;break}else{u=t;v=x;w=z}}h[p>>3]=A}q=q+1|0}while((q|0)!=(d|0));Lb(o);if(i)Qb(b|0,g|0,k|0)|0}else Lb(o);f=f+1|0;if((f|0)==(e|0))break;else l=l+d|0}Lb(g);return}function sb(b,c){b=b|0;c=c|0;var d=0,e=0;d=i;i=i+16|0;if(!(Jb(c,16440)|0)){e=b+44|0;a[e>>0]=115;a[e+1>>0]=121;a[e+2>>0]=109;a[e+3>>0]=0;i=d;return}if(Jb(c,16432)|0){pa(16208,d|0)|0;Ea(-1)}c=b+44|0;a[c>>0]=112;a[c+1>>0]=101;a[c+2>>0]=114;a[c+3>>0]=0;i=d;return}function tb(a){a=a|0;Lb(a);return}function ub(a){a=a|0;Lb(a);return}function vb(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0;g=i;i=i+32|0;h=g+16|0;j=g;k=g+8|0;l=c[a>>2]|0;m=c[l+56>>2]|0;n=(c[l+60>>2]|0)+m|0;l=(n|0)/2|0;o=a+44|0;if(!(Jb(o,16432)|0)){p=Kb(l+d+((d|0)%2|0)<<3)|0;q=fb(b,d,(n|0)/4|0,p)|0;n=q+l|0;r=c[a>>2]|0;s=r+56|0;t=Kb(((c[s>>2]|0)+n<<3)+-8|0)|0;u=c[s>>2]|0;if((u|0)!=(c[r+60>>2]|0)){pa(16256,k|0)|0;Ea(-1)}k=a+54|0;if((Jb(k,16192)|0)!=0?(Jb(k,16200)|0)!=0:0){v=r;w=u}else{c[a+4>>2]=Ya(n,u)|0;c[a+68>>2]=1;u=c[a>>2]|0;v=u;w=c[u+56>>2]|0}wb(a,p,n,c[v+72>>2]|0,w,t);w=t+(l<<3)|0;eb(w,q,2,e)|0;l=c[a>>2]|0;wb(a,p,n,c[l+76>>2]|0,c[l+60>>2]|0,t);eb(w,q,2,f)|0;x=t;y=p}else{if(Jb(o,16440)|0){pa(16208,h|0)|0;Ea(-1)}h=m+-1|0;o=h<<1;p=Kb(o+d<<3)|0;t=gb(b,d,h,p)|0;d=Kb(t+(h*3|0)<<3)|0;h=c[a>>2]|0;b=c[h+56>>2]|0;if((b|0)!=(c[h+60>>2]|0)){pa(16256,j|0)|0;Ea(-1)}j=a+54|0;if((Jb(j,16192)|0)!=0?(Jb(j,16200)|0)!=0:0){z=t+o|0;A=h;B=b}else{b=t+o|0;c[a+4>>2]=Ya(b,m)|0;c[a+68>>2]=1;o=c[a>>2]|0;z=b;A=o;B=c[o+56>>2]|0}wb(a,p,z,c[A+72>>2]|0,B,d);B=d+(m<<3)|0;A=m+-2+t|0;eb(B,A,2,e)|0;e=c[a>>2]|0;wb(a,p,z,c[e+76>>2]|0,c[e+60>>2]|0,d);eb(B,A,2,f)|0;x=d;y=p}p=c[a>>2]|0;if((c[p+56>>2]|0)!=(c[p+60>>2]|0)){Lb(y);Lb(x);i=g;return}p=a+54|0;if((Jb(p,16192)|0)!=0?(Jb(p,16200)|0)!=0:0){Lb(y);Lb(x);i=g;return}$a(c[a+4>>2]|0);c[a+68>>2]=0;Lb(y);Lb(x);i=g;return}function wb(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0;h=i;i=i+16|0;j=h;k=a+54|0;if(!(Jb(k,16184)|0)){Za(b,d,e,f,g);i=h;return}if((Jb(k,16192)|0)!=0?(Jb(k,16200)|0)!=0:0){pa(16360,j|0)|0;Ea(-1)}if(!(c[a+68>>2]|0)){j=Ya(d,f)|0;f=a+4|0;c[f>>2]=j;_a(j,b,e,g);$a(c[f>>2]|0);i=h;return}else{_a(c[a+4>>2]|0,b,e,g);i=h;return}}function xb(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;if((Jb(b,16416)|0)!=0?(Jb(b,16424)|0)!=0:0){if((Jb(b,16448)|0)!=0?(Jb(b,16456)|0)!=0:0){if((Jb(b,16464)|0)!=0?(Jb(b,16472)|0)!=0:0){f=0;return f|0}f=Z(d+1|0,a)|0;return f|0}f=Z(d+1|0,a)|0;return f|0}if(!(Jb(e,16432)|0)){if((d|0)>0){b=a;g=0;h=d;while(1){i=~~+Y(+(+(b|0)*.5));j=i+g|0;if((h|0)>1){b=i;g=j;h=h+-1|0}else{k=i;l=j;break}}}else{k=a;l=0}f=l+k|0;return f|0}if(Jb(e,16440)|0){f=0;return f|0}if((d|0)>0){e=c+-2|0;c=a;k=0;l=d;while(1){d=~~+Y(+(+(e+c|0)*.5));h=d+k|0;if((l|0)>1){c=d;k=h;l=l+-1|0}else{m=d;n=h;break}}}else{m=a;n=0}f=n+m|0;return f|0}function yb(a,b,d,e,f,g,i,j,k){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;i=i|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;l=kb(d)|0;d=c[l+52>>2]|0;if((d|0)>0){m=c[l+72>>2]|0;n=c[l+76>>2]|0;o=c[l+80>>2]|0;p=d<<1;q=c[l+84>>2]|0;r=d*3|0;s=0;do{h[k+(s<<3)>>3]=+h[m+(s<<3)>>3];h[k+(d+s<<3)>>3]=+h[n+(s<<3)>>3];h[k+(p+s<<3)>>3]=+h[o+(s<<3)>>3];h[k+(r+s<<3)>>3]=+h[q+(s<<3)>>3];s=s+1|0}while((s|0)<(d|0))}d=lb(l,e,b,f)|0;do if((Jb(e,16416)|0)!=0?(Jb(e,16424)|0)!=0:0){if((Jb(e,16448)|0)!=0?(Jb(e,16456)|0)!=0:0){if((Jb(e,16464)|0)!=0?(Jb(e,16472)|0)!=0:0)break;qb(d,a);break}ob(d,a)}else t=6;while(0);if((t|0)==6){sb(d,g);mb(d,a)}a=d+28|0;if((c[a>>2]|0)>0){g=0;do{c[j+(g<<2)>>2]=c[d+76+(g<<2)>>2];g=g+1|0}while((g|0)<(c[a>>2]|0))}a=c[d+24>>2]|0;if((a|0)<=0){tb(l);ub(d);return}g=c[d+484>>2]|0;j=0;do{h[i+(j<<3)>>3]=+h[g+(j<<3)>>3];j=j+1|0}while((j|0)<(a|0));tb(l);ub(d);return}function zb(a,b,d,e,f,g,i,j,k,l){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;i=i|0;j=j|0;k=k|0;l=l|0;var m=0;m=kb(d)|0;d=lb(m,e,j,f)|0;if((b|0)>0){f=c[d+484>>2]|0;j=0;do{h[f+(j<<3)>>3]=+h[a+(j<<3)>>3];j=j+1|0}while((j|0)!=(b|0))}c[d+28>>2]=l;if((l|0)>0){b=0;do{c[d+76+(b<<2)>>2]=c[k+(b<<2)>>2];b=b+1|0}while((b|0)!=(l|0))}if((Jb(e,16416)|0)!=0?(Jb(e,16424)|0)!=0:0){if((Jb(e,16448)|0)!=0?(Jb(e,16456)|0)!=0:0){if((Jb(e,16464)|0)!=0?(Jb(e,16472)|0)!=0:0){tb(m);ub(d);return}rb(d,i);tb(m);ub(d);return}pb(d,i);tb(m);ub(d);return}sb(d,g);nb(d,i);tb(m);ub(d);return}function Ab(a,b){a=+a;b=b|0;return +(+Gb(a,b))}function Bb(b,c){b=b|0;c=c|0;var d=0;d=Cb(b,c)|0;return ((a[d>>0]|0)==(c&255)<<24>>24?d:0)|0}function Cb(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;e=d&255;if(!e){f=b+(Pb(b|0)|0)|0;return f|0}a:do if(!(b&3))g=b;else{h=d&255;i=b;while(1){j=a[i>>0]|0;if(j<<24>>24==0?1:j<<24>>24==h<<24>>24){f=i;break}j=i+1|0;if(!(j&3)){g=j;break a}else i=j}return f|0}while(0);b=Z(e,16843009)|0;e=c[g>>2]|0;b:do if(!((e&-2139062144^-2139062144)&e+-16843009)){i=e;h=g;while(1){j=i^b;if((j&-2139062144^-2139062144)&j+-16843009){k=h;break b}j=h+4|0;i=c[j>>2]|0;if((i&-2139062144^-2139062144)&i+-16843009){k=j;break}else h=j}}else k=g;while(0);g=d&255;d=k;while(1){k=a[d>>0]|0;if(k<<24>>24==0?1:k<<24>>24==g<<24>>24){f=d;break}else d=d+1|0}return f|0}function Db(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0;f=i;i=i+1056|0;g=f+1024|0;h=f;j=a[e>>0]|0;if(!(j<<24>>24)){k=b;i=f;return k|0}l=Bb(b,j<<24>>24)|0;if(!l){k=0;i=f;return k|0}b=a[e+1>>0]|0;if(!(b<<24>>24)){k=l;i=f;return k|0}m=l+1|0;n=a[m>>0]|0;if(!(n<<24>>24)){k=0;i=f;return k|0}o=a[e+2>>0]|0;if(!(o<<24>>24)){p=b&255|(j&255)<<8;q=m;m=n;r=l;s=d[l>>0]<<8|n&255;while(1){t=s&65535;if((t|0)==(p|0)){u=r;v=m;break}w=q+1|0;x=a[w>>0]|0;if(!(x<<24>>24)){u=q;v=0;break}else{y=q;q=w;m=x;s=x&255|t<<8;r=y}}k=v<<24>>24!=0?u:0;i=f;return k|0}u=l+2|0;v=a[u>>0]|0;if(!(v<<24>>24)){k=0;i=f;return k|0}r=a[e+3>>0]|0;if(!(r<<24>>24)){s=(b&255)<<16|(j&255)<<24|(o&255)<<8;m=(v&255)<<8|(n&255)<<16|d[l>>0]<<24;if((m|0)==(s|0)){z=u;A=v}else{q=u;u=m;while(1){m=q+1|0;p=a[m>>0]|0;u=(p&255|u)<<8;if(p<<24>>24==0|(u|0)==(s|0)){z=m;A=p;break}else q=m}}k=A<<24>>24!=0?z+-2|0:0;i=f;return k|0}z=l+3|0;A=a[z>>0]|0;if(!(A<<24>>24)){k=0;i=f;return k|0}if(!(a[e+4>>0]|0)){q=(b&255)<<16|(j&255)<<24|(o&255)<<8|r&255;r=(v&255)<<8|(n&255)<<16|A&255|d[l>>0]<<24;if((r|0)==(q|0)){B=z;C=A}else{A=z;z=r;while(1){r=A+1|0;n=a[r>>0]|0;z=n&255|z<<8;if(n<<24>>24==0|(z|0)==(q|0)){B=r;C=n;break}else A=r}}k=C<<24>>24!=0?B+-3|0:0;i=f;return k|0};c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;c[g+12>>2]=0;c[g+16>>2]=0;c[g+20>>2]=0;c[g+24>>2]=0;c[g+28>>2]=0;B=j;j=0;while(1){if(!(a[l+j>>0]|0)){D=0;break}C=g+(((B&255)>>>5&255)<<2)|0;c[C>>2]=c[C>>2]|1<<(B&31);C=j+1|0;c[h+((B&255)<<2)>>2]=C;B=a[e+C>>0]|0;if(!(B<<24>>24)){E=C;F=j;G=23;break}else j=C}a:do if((G|0)==23){b:do if(E>>>0>1){j=1;B=-1;C=0;c:while(1){A=j;q=C;z=1;while(1){r=A;n=q;d:while(1){v=r;o=1;while(1){b=a[e+(o+B)>>0]|0;s=a[e+v>>0]|0;if(b<<24>>24!=s<<24>>24){H=v;I=b;J=s;K=n;break d}if((o|0)==(z|0))break;o=o+1|0;v=o+n|0;if(v>>>0>=E>>>0){L=B;M=z;break c}}n=n+z|0;r=n+1|0;if(r>>>0>=E>>>0){L=B;M=z;break c}}r=H-B|0;if((I&255)<=(J&255)){N=K;break}n=H+1|0;if(n>>>0>>0){A=n;q=H;z=r}else{L=B;M=r;break c}}j=N+2|0;if(j>>>0>=E>>>0){L=N;M=1;break}else{B=N;C=N+1|0}}C=1;B=-1;j=0;while(1){z=C;q=j;A=1;while(1){r=z;n=q;e:while(1){v=r;o=1;while(1){s=a[e+(o+B)>>0]|0;b=a[e+v>>0]|0;if(s<<24>>24!=b<<24>>24){O=v;P=s;Q=b;R=n;break e}if((o|0)==(A|0))break;o=o+1|0;v=o+n|0;if(v>>>0>=E>>>0){S=L;T=B;U=M;V=A;break b}}n=n+A|0;r=n+1|0;if(r>>>0>=E>>>0){S=L;T=B;U=M;V=A;break b}}r=O-B|0;if((P&255)>=(Q&255)){W=R;break}n=O+1|0;if(n>>>0>>0){z=n;q=O;A=r}else{S=L;T=B;U=M;V=r;break b}}C=W+2|0;if(C>>>0>=E>>>0){S=L;T=W;U=M;V=1;break}else{B=W;j=W+1|0}}}else{S=-1;T=-1;U=1;V=1}while(0);j=(T+1|0)>>>0>(S+1|0)>>>0;B=j?V:U;C=j?T:S;j=C+1|0;if(!(Ib(e,e+B|0,j)|0)){A=E-B|0;q=E|63;if((E|0)==(B|0)){X=q;Y=E}else{z=l;r=0;n=l;f:while(1){v=z;do if((n-v|0)>>>0>>0){o=Hb(n,0,q)|0;if(o)if((o-v|0)>>>0>>0){D=0;break a}else{Z=o;break}else{Z=n+q|0;break}}else Z=n;while(0);v=a[z+F>>0]|0;if(!(1<<(v&31)&c[g+(((v&255)>>>5&255)<<2)>>2])){z=z+E|0;r=0;n=Z;continue}o=c[h+((v&255)<<2)>>2]|0;v=E-o|0;if((E|0)!=(o|0)){z=z+((r|0)!=0&v>>>0>>0?A:v)|0;r=0;n=Z;continue}v=j>>>0>r>>>0?j:r;o=a[e+v>>0]|0;g:do if(!(o<<24>>24))_=j;else{b=o;s=v;while(1){if(b<<24>>24!=(a[z+s>>0]|0)){$=s;break}s=s+1|0;b=a[e+s>>0]|0;if(!(b<<24>>24)){_=j;break g}}z=z+($-C)|0;r=0;n=Z;continue f}while(0);do{if(_>>>0<=r>>>0){D=z;break a}_=_+-1|0}while((a[e+_>>0]|0)==(a[z+_>>0]|0));z=z+B|0;r=A;n=Z}}}else{n=E-C+-1|0;X=E|63;Y=(C>>>0>n>>>0?C:n)+1|0}n=e+j|0;A=l;r=l;h:while(1){B=A;do if((r-B|0)>>>0>>0){z=Hb(r,0,X)|0;if(z)if((z-B|0)>>>0>>0){D=0;break a}else{aa=z;break}else{aa=r+X|0;break}}else aa=r;while(0);B=a[A+F>>0]|0;if(!(1<<(B&31)&c[g+(((B&255)>>>5&255)<<2)>>2])){A=A+E|0;r=aa;continue}z=c[h+((B&255)<<2)>>2]|0;if((E|0)!=(z|0)){A=A+(E-z)|0;r=aa;continue}z=a[n>>0]|0;i:do if(!(z<<24>>24))ba=j;else{B=z;q=j;while(1){if(B<<24>>24!=(a[A+q>>0]|0)){ca=q;break}q=q+1|0;B=a[e+q>>0]|0;if(!(B<<24>>24)){ba=j;break i}}A=A+(ca-C)|0;r=aa;continue h}while(0);do{if(!ba){D=A;break a}ba=ba+-1|0}while((a[e+ba>>0]|0)==(a[A+ba>>0]|0));A=A+Y|0;r=aa}}while(0);k=D;i=f;return k|0}function Eb(a){a=+a;var b=0,d=0,e=0,f=0,j=0.0,l=0.0,m=0.0,n=0.0;b=i;i=i+16|0;d=b;h[k>>3]=a;e=c[k+4>>2]|0;f=e&2147483647;do if(f>>>0>1083174911){if(((e|0)>-1|(e|0)==-1&(c[k>>2]|0)>>>0>4294967295)&f>>>0>1083179007){j=a*89884656743115795.0e291;i=b;return +j}if(f>>>0>2146435071){j=-1.0/a;i=b;return +j}if((e|0)<0)if(!(a<=-1075.0)){if(!(a+-4503599627370496.0+4503599627370496.0!=a))break;g[d>>2]=-1.401298464324817e-045/a;break}else{g[d>>2]=-1.401298464324817e-045/a;j=0.0;i=b;return +j}}else if(f>>>0<1016070144){j=a+1.0;i=b;return +j}while(0);l=a+26388279066624.0;h[k>>3]=l;f=(c[k>>2]|0)+128|0;d=f<<1&510;m=+h[16480+(d<<3)>>3];n=a-(l+-26388279066624.0)-+h[16480+((d|1)<<3)>>3];j=+Gb(m+m*n*(n*(n*(n*(n*1.3333559164630223e-003+.009618129842126066)+.0555041086648214)+.2402265069591)+.6931471805599453),(f&-256|0)/256|0);i=b;return +j}function Fb(a){a=+a;var b=0,d=0,e=0,f=0.0,g=0,i=0,j=0,l=0,m=0,n=0.0,o=0.0,p=0.0,q=0.0,r=0.0,s=0.0;h[k>>3]=a;b=c[k>>2]|0;d=c[k+4>>2]|0;e=(d|0)<0;do if(!(e|d>>>0<1048576)){if(d>>>0>2146435071){f=a;return +f}if((b|0)==0&0==0&(d|0)==1072693248){f=0.0;return +f}else{g=b;i=d;j=d;l=-1023}}else{if((b|0)==0&(d&2147483647|0)==0){f=-1.0/(a*a);return +f}if(!e){h[k>>3]=a*18014398509481984.0;m=c[k+4>>2]|0;g=c[k>>2]|0;i=m;j=m;l=-1077;break}f=(a-a)/0.0;return +f}while(0);i=j+614242|0;c[k>>2]=g;c[k+4>>2]=(i&1048575)+1072079006;a=+h[k>>3]+-1.0;n=a*(a*.5);o=a/(a+2.0);p=o*o;q=p*p;h[k>>3]=a-n;g=c[k+4>>2]|0;c[k>>2]=0;c[k+4>>2]=g;r=+h[k>>3];s=o*(n+(q*(q*(q*.15313837699209373+.22222198432149784)+.3999999999940942)+p*(q*(q*(q*.14798198605116586+.1818357216161805)+.2857142874366239)+.6666666666666735)))+(a-r-n);n=r*.4342944818781689;a=+(l+(i>>>20)|0);q=a*.30102999566361177;p=q+n;f=p+(n+(q-p)+(s*.4342944818781689+(a*3.694239077158931e-013+(r+s)*2.5082946711645275e-011)));return +f}function Gb(a,b){a=+a;b=b|0;var d=0.0,e=0,f=0,g=0,i=0.0;if((b|0)>1023){d=a*89884656743115795.0e291;e=b+-1023|0;if((e|0)>1023){f=b+-2046|0;g=(f|0)>1023?1023:f;i=d*89884656743115795.0e291}else{g=e;i=d}}else if((b|0)<-1022){d=a*2.2250738585072014e-308;e=b+1022|0;if((e|0)<-1022){f=b+2044|0;g=(f|0)<-1022?-1022:f;i=d*2.2250738585072014e-308}else{g=e;i=d}}else{g=b;i=a}b=Ob(g+1023|0,0,52)|0;g=B;c[k>>2]=b;c[k+4>>2]=g;return +(i*+h[k>>3])}function Hb(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;f=d&255;g=(e|0)!=0;a:do if(g&(b&3|0)!=0){h=d&255;i=e;j=b;while(1){if((a[j>>0]|0)==h<<24>>24){k=i;l=j;m=6;break a}n=j+1|0;o=i+-1|0;p=(o|0)!=0;if(p&(n&3|0)!=0){i=o;j=n}else{q=o;r=p;s=n;m=5;break}}}else{q=e;r=g;s=b;m=5}while(0);if((m|0)==5)if(r){k=q;l=s;m=6}else{t=0;u=s}b:do if((m|0)==6){s=d&255;if((a[l>>0]|0)==s<<24>>24){t=k;u=l}else{q=Z(f,16843009)|0;c:do if(k>>>0>3){r=k;b=l;while(1){g=c[b>>2]^q;if((g&-2139062144^-2139062144)&g+-16843009){v=r;w=b;break}g=b+4|0;e=r+-4|0;if(e>>>0>3){r=e;b=g}else{x=e;y=g;m=11;break c}}z=v;A=w}else{x=k;y=l;m=11}while(0);if((m|0)==11)if(!x){t=0;u=y;break}else{z=x;A=y}while(1){if((a[A>>0]|0)==s<<24>>24){t=z;u=A;break b}q=A+1|0;z=z+-1|0;if(!z){t=0;u=q;break}else A=q}}}while(0);return ((t|0)!=0?u:0)|0}function Ib(b,c,d){b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;if(!d){e=0;return e|0}else{f=d;g=b;h=c}while(1){c=a[g>>0]|0;b=a[h>>0]|0;if(c<<24>>24!=b<<24>>24){i=c;j=b;break}f=f+-1|0;if(!f){e=0;k=5;break}else{g=g+1|0;h=h+1|0}}if((k|0)==5)return e|0;e=(i&255)-(j&255)|0;return e|0}function Jb(b,c){b=b|0;c=c|0;var d=0,e=0,f=0,g=0;d=a[b>>0]|0;e=a[c>>0]|0;if(d<<24>>24==0?1:d<<24>>24!=e<<24>>24){f=d;g=e}else{e=b;b=c;do{e=e+1|0;b=b+1|0;c=a[e>>0]|0;d=a[b>>0]|0}while(!(c<<24>>24==0?1:c<<24>>24!=d<<24>>24));f=c;g=d}return (f&255)-(g&255)|0}function Kb(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ka=0,la=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ua=0,va=0,wa=0,ya=0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0,Fa=0,Ga=0,Ha=0,Ia=0,Ja=0,Ka=0,La=0,Ma=0,Na=0,Oa=0,Pa=0,Qa=0,Ra=0,Sa=0,Ta=0,Ua=0,Va=0,Wa=0,Xa=0;do if(a>>>0<245){b=a>>>0<11?16:a+11&-8;d=b>>>3;e=c[5144]|0;f=e>>>d;if(f&3){g=(f&1^1)+d|0;h=g<<1;i=20616+(h<<2)|0;j=20616+(h+2<<2)|0;h=c[j>>2]|0;k=h+8|0;l=c[k>>2]|0;do if((i|0)!=(l|0)){if(l>>>0<(c[5148]|0)>>>0)xa();m=l+12|0;if((c[m>>2]|0)==(h|0)){c[m>>2]=i;c[j>>2]=l;break}else xa()}else c[5144]=e&~(1<>2]=l|3;j=h+(l|4)|0;c[j>>2]=c[j>>2]|1;n=k;return n|0}j=c[5146]|0;if(b>>>0>j>>>0){if(f){l=2<>>12&16;m=l>>>i;l=m>>>5&8;o=m>>>l;m=o>>>2&4;p=o>>>m;o=p>>>1&2;q=p>>>o;p=q>>>1&1;r=(l|i|m|o|p)+(q>>>p)|0;p=r<<1;q=20616+(p<<2)|0;o=20616+(p+2<<2)|0;p=c[o>>2]|0;m=p+8|0;i=c[m>>2]|0;do if((q|0)!=(i|0)){if(i>>>0<(c[5148]|0)>>>0)xa();l=i+12|0;if((c[l>>2]|0)==(p|0)){c[l>>2]=q;c[o>>2]=i;s=c[5146]|0;break}else xa()}else{c[5144]=e&~(1<>2]=b|3;i=p+b|0;c[p+(b|4)>>2]=e|1;c[p+j>>2]=e;if(s){j=c[5149]|0;o=s>>>3;q=o<<1;d=20616+(q<<2)|0;f=c[5144]|0;k=1<>2]|0;if(h>>>0<(c[5148]|0)>>>0)xa();else{t=o;u=h}}else{c[5144]=f|k;t=20616+(q+2<<2)|0;u=d}c[t>>2]=j;c[u+12>>2]=j;c[j+8>>2]=u;c[j+12>>2]=d}c[5146]=e;c[5149]=i;n=m;return n|0}i=c[5145]|0;if(i){e=(i&0-i)+-1|0;i=e>>>12&16;d=e>>>i;e=d>>>5&8;j=d>>>e;d=j>>>2&4;q=j>>>d;j=q>>>1&2;k=q>>>j;q=k>>>1&1;f=c[20880+((e|i|d|j|q)+(k>>>q)<<2)>>2]|0;q=(c[f+4>>2]&-8)-b|0;k=f;j=f;while(1){f=c[k+16>>2]|0;if(!f){d=c[k+20>>2]|0;if(!d){v=q;w=j;break}else x=d}else x=f;f=(c[x+4>>2]&-8)-b|0;d=f>>>0>>0;q=d?f:q;k=x;j=d?x:j}j=c[5148]|0;if(w>>>0>>0)xa();k=w+b|0;if(w>>>0>=k>>>0)xa();q=c[w+24>>2]|0;m=c[w+12>>2]|0;do if((m|0)==(w|0)){p=w+20|0;r=c[p>>2]|0;if(!r){d=w+16|0;f=c[d>>2]|0;if(!f){y=0;break}else{z=f;A=d}}else{z=r;A=p}while(1){p=z+20|0;r=c[p>>2]|0;if(r){z=r;A=p;continue}p=z+16|0;r=c[p>>2]|0;if(!r){B=z;C=A;break}else{z=r;A=p}}if(C>>>0>>0)xa();else{c[C>>2]=0;y=B;break}}else{p=c[w+8>>2]|0;if(p>>>0>>0)xa();r=p+12|0;if((c[r>>2]|0)!=(w|0))xa();d=m+8|0;if((c[d>>2]|0)==(w|0)){c[r>>2]=m;c[d>>2]=p;y=m;break}else xa()}while(0);do if(q){m=c[w+28>>2]|0;j=20880+(m<<2)|0;if((w|0)==(c[j>>2]|0)){c[j>>2]=y;if(!y){c[5145]=c[5145]&~(1<>>0<(c[5148]|0)>>>0)xa();m=q+16|0;if((c[m>>2]|0)==(w|0))c[m>>2]=y;else c[q+20>>2]=y;if(!y)break}m=c[5148]|0;if(y>>>0>>0)xa();c[y+24>>2]=q;j=c[w+16>>2]|0;do if(j)if(j>>>0>>0)xa();else{c[y+16>>2]=j;c[j+24>>2]=y;break}while(0);j=c[w+20>>2]|0;if(j)if(j>>>0<(c[5148]|0)>>>0)xa();else{c[y+20>>2]=j;c[j+24>>2]=y;break}}while(0);if(v>>>0<16){q=v+b|0;c[w+4>>2]=q|3;j=w+(q+4)|0;c[j>>2]=c[j>>2]|1}else{c[w+4>>2]=b|3;c[w+(b|4)>>2]=v|1;c[w+(v+b)>>2]=v;j=c[5146]|0;if(j){q=c[5149]|0;m=j>>>3;j=m<<1;p=20616+(j<<2)|0;d=c[5144]|0;r=1<>2]|0;if(f>>>0<(c[5148]|0)>>>0)xa();else{D=m;E=f}}else{c[5144]=d|r;D=20616+(j+2<<2)|0;E=p}c[D>>2]=q;c[E+12>>2]=q;c[q+8>>2]=E;c[q+12>>2]=p}c[5146]=v;c[5149]=k}n=w+8|0;return n|0}else F=b}else F=b}else if(a>>>0<=4294967231){p=a+11|0;q=p&-8;j=c[5145]|0;if(j){r=0-q|0;d=p>>>8;if(d)if(q>>>0>16777215)G=31;else{p=(d+1048320|0)>>>16&8;f=d<>>16&4;m=f<>>16&2;i=14-(d|p|f)+(m<>>15)|0;G=q>>>(i+7|0)&1|i<<1}else G=0;i=c[20880+(G<<2)>>2]|0;a:do if(!i){H=r;I=0;J=0;K=86}else{f=r;m=0;p=q<<((G|0)==31?0:25-(G>>>1)|0);d=i;e=0;while(1){h=c[d+4>>2]&-8;o=h-q|0;if(o>>>0>>0)if((h|0)==(q|0)){L=o;M=d;N=d;K=90;break a}else{O=o;P=d}else{O=f;P=e}o=c[d+20>>2]|0;d=c[d+16+(p>>>31<<2)>>2]|0;h=(o|0)==0|(o|0)==(d|0)?m:o;if(!d){H=O;I=h;J=P;K=86;break}else{f=O;m=h;p=p<<1;e=P}}}while(0);if((K|0)==86){if((I|0)==0&(J|0)==0){i=2<>>12&16;b=i>>>r;i=b>>>5&8;k=b>>>i;b=k>>>2&4;e=k>>>b;k=e>>>1&2;p=e>>>k;e=p>>>1&1;Q=c[20880+((i|r|b|k|e)+(p>>>e)<<2)>>2]|0;R=0}else{Q=I;R=J}if(!Q){S=H;T=R}else{L=H;M=Q;N=R;K=90}}if((K|0)==90)while(1){K=0;e=(c[M+4>>2]&-8)-q|0;p=e>>>0>>0;k=p?e:L;e=p?M:N;p=c[M+16>>2]|0;if(p){L=k;M=p;N=e;K=90;continue}M=c[M+20>>2]|0;if(!M){S=k;T=e;break}else{L=k;N=e;K=90}}if((T|0)!=0?S>>>0<((c[5146]|0)-q|0)>>>0:0){j=c[5148]|0;if(T>>>0>>0)xa();e=T+q|0;if(T>>>0>=e>>>0)xa();k=c[T+24>>2]|0;p=c[T+12>>2]|0;do if((p|0)==(T|0)){b=T+20|0;r=c[b>>2]|0;if(!r){i=T+16|0;m=c[i>>2]|0;if(!m){U=0;break}else{V=m;W=i}}else{V=r;W=b}while(1){b=V+20|0;r=c[b>>2]|0;if(r){V=r;W=b;continue}b=V+16|0;r=c[b>>2]|0;if(!r){X=V;Y=W;break}else{V=r;W=b}}if(Y>>>0>>0)xa();else{c[Y>>2]=0;U=X;break}}else{b=c[T+8>>2]|0;if(b>>>0>>0)xa();r=b+12|0;if((c[r>>2]|0)!=(T|0))xa();i=p+8|0;if((c[i>>2]|0)==(T|0)){c[r>>2]=p;c[i>>2]=b;U=p;break}else xa()}while(0);do if(k){p=c[T+28>>2]|0;j=20880+(p<<2)|0;if((T|0)==(c[j>>2]|0)){c[j>>2]=U;if(!U){c[5145]=c[5145]&~(1<>>0<(c[5148]|0)>>>0)xa();p=k+16|0;if((c[p>>2]|0)==(T|0))c[p>>2]=U;else c[k+20>>2]=U;if(!U)break}p=c[5148]|0;if(U>>>0

>>0)xa();c[U+24>>2]=k;j=c[T+16>>2]|0;do if(j)if(j>>>0

>>0)xa();else{c[U+16>>2]=j;c[j+24>>2]=U;break}while(0);j=c[T+20>>2]|0;if(j)if(j>>>0<(c[5148]|0)>>>0)xa();else{c[U+20>>2]=j;c[j+24>>2]=U;break}}while(0);b:do if(S>>>0>=16){c[T+4>>2]=q|3;c[T+(q|4)>>2]=S|1;c[T+(S+q)>>2]=S;k=S>>>3;if(S>>>0<256){j=k<<1;p=20616+(j<<2)|0;b=c[5144]|0;i=1<>2]|0;if(r>>>0<(c[5148]|0)>>>0)xa();else{Z=k;_=r}}else{c[5144]=b|i;Z=20616+(j+2<<2)|0;_=p}c[Z>>2]=e;c[_+12>>2]=e;c[T+(q+8)>>2]=_;c[T+(q+12)>>2]=p;break}p=S>>>8;if(p)if(S>>>0>16777215)$=31;else{j=(p+1048320|0)>>>16&8;i=p<>>16&4;b=i<>>16&2;r=14-(p|j|i)+(b<>>15)|0;$=S>>>(r+7|0)&1|r<<1}else $=0;r=20880+($<<2)|0;c[T+(q+28)>>2]=$;c[T+(q+20)>>2]=0;c[T+(q+16)>>2]=0;i=c[5145]|0;b=1<<$;if(!(i&b)){c[5145]=i|b;c[r>>2]=e;c[T+(q+24)>>2]=r;c[T+(q+12)>>2]=e;c[T+(q+8)>>2]=e;break}b=c[r>>2]|0;c:do if((c[b+4>>2]&-8|0)!=(S|0)){r=S<<(($|0)==31?0:25-($>>>1)|0);i=b;while(1){j=i+16+(r>>>31<<2)|0;p=c[j>>2]|0;if(!p){aa=j;ba=i;break}if((c[p+4>>2]&-8|0)==(S|0)){ca=p;break c}else{r=r<<1;i=p}}if(aa>>>0<(c[5148]|0)>>>0)xa();else{c[aa>>2]=e;c[T+(q+24)>>2]=ba;c[T+(q+12)>>2]=e;c[T+(q+8)>>2]=e;break b}}else ca=b;while(0);b=ca+8|0;i=c[b>>2]|0;r=c[5148]|0;if(i>>>0>=r>>>0&ca>>>0>=r>>>0){c[i+12>>2]=e;c[b>>2]=e;c[T+(q+8)>>2]=i;c[T+(q+12)>>2]=ca;c[T+(q+24)>>2]=0;break}else xa()}else{i=S+q|0;c[T+4>>2]=i|3;b=T+(i+4)|0;c[b>>2]=c[b>>2]|1}while(0);n=T+8|0;return n|0}else F=q}else F=q}else F=-1;while(0);T=c[5146]|0;if(T>>>0>=F>>>0){S=T-F|0;ca=c[5149]|0;if(S>>>0>15){c[5149]=ca+F;c[5146]=S;c[ca+(F+4)>>2]=S|1;c[ca+T>>2]=S;c[ca+4>>2]=F|3}else{c[5146]=0;c[5149]=0;c[ca+4>>2]=T|3;S=ca+(T+4)|0;c[S>>2]=c[S>>2]|1}n=ca+8|0;return n|0}ca=c[5147]|0;if(ca>>>0>F>>>0){S=ca-F|0;c[5147]=S;ca=c[5150]|0;c[5150]=ca+F;c[ca+(F+4)>>2]=S|1;c[ca+4>>2]=F|3;n=ca+8|0;return n|0}do if(!(c[5262]|0)){ca=ma(30)|0;if(!(ca+-1&ca)){c[5264]=ca;c[5263]=ca;c[5265]=-1;c[5266]=-1;c[5267]=0;c[5255]=0;c[5262]=(za(0)|0)&-16^1431655768;break}else xa()}while(0);ca=F+48|0;S=c[5264]|0;T=F+47|0;ba=S+T|0;aa=0-S|0;S=ba&aa;if(S>>>0<=F>>>0){n=0;return n|0}$=c[5254]|0;if(($|0)!=0?(_=c[5252]|0,Z=_+S|0,Z>>>0<=_>>>0|Z>>>0>$>>>0):0){n=0;return n|0}d:do if(!(c[5255]&4)){$=c[5150]|0;e:do if($){Z=21024;while(1){_=c[Z>>2]|0;if(_>>>0<=$>>>0?(U=Z+4|0,(_+(c[U>>2]|0)|0)>>>0>$>>>0):0){da=Z;ea=U;break}Z=c[Z+8>>2]|0;if(!Z){K=174;break e}}Z=ba-(c[5147]|0)&aa;if(Z>>>0<2147483647){U=ja(Z|0)|0;_=(U|0)==((c[da>>2]|0)+(c[ea>>2]|0)|0);X=_?Z:0;if(_)if((U|0)==(-1|0))fa=X;else{ga=U;ha=X;K=194;break d}else{ia=U;ka=Z;la=X;K=184}}else fa=0}else K=174;while(0);do if((K|0)==174){$=ja(0)|0;if(($|0)!=(-1|0)){q=$;X=c[5263]|0;Z=X+-1|0;if(!(Z&q))na=S;else na=S-q+(Z+q&0-X)|0;X=c[5252]|0;q=X+na|0;if(na>>>0>F>>>0&na>>>0<2147483647){Z=c[5254]|0;if((Z|0)!=0?q>>>0<=X>>>0|q>>>0>Z>>>0:0){fa=0;break}Z=ja(na|0)|0;q=(Z|0)==($|0);X=q?na:0;if(q){ga=$;ha=X;K=194;break d}else{ia=Z;ka=na;la=X;K=184}}else fa=0}else fa=0}while(0);f:do if((K|0)==184){X=0-ka|0;do if(ca>>>0>ka>>>0&(ka>>>0<2147483647&(ia|0)!=(-1|0))?(Z=c[5264]|0,$=T-ka+Z&0-Z,$>>>0<2147483647):0)if((ja($|0)|0)==(-1|0)){ja(X|0)|0;fa=la;break f}else{oa=$+ka|0;break}else oa=ka;while(0);if((ia|0)==(-1|0))fa=la;else{ga=ia;ha=oa;K=194;break d}}while(0);c[5255]=c[5255]|4;pa=fa;K=191}else{pa=0;K=191}while(0);if((((K|0)==191?S>>>0<2147483647:0)?(fa=ja(S|0)|0,S=ja(0)|0,fa>>>0>>0&((fa|0)!=(-1|0)&(S|0)!=(-1|0))):0)?(oa=S-fa|0,S=oa>>>0>(F+40|0)>>>0,S):0){ga=fa;ha=S?oa:pa;K=194}if((K|0)==194){pa=(c[5252]|0)+ha|0;c[5252]=pa;if(pa>>>0>(c[5253]|0)>>>0)c[5253]=pa;pa=c[5150]|0;g:do if(pa){oa=21024;do{S=c[oa>>2]|0;fa=oa+4|0;ia=c[fa>>2]|0;if((ga|0)==(S+ia|0)){qa=S;ra=fa;sa=ia;ua=oa;K=204;break}oa=c[oa+8>>2]|0}while((oa|0)!=0);if(((K|0)==204?(c[ua+12>>2]&8|0)==0:0)?pa>>>0>>0&pa>>>0>=qa>>>0:0){c[ra>>2]=sa+ha;oa=(c[5147]|0)+ha|0;ia=pa+8|0;fa=(ia&7|0)==0?0:0-ia&7;ia=oa-fa|0;c[5150]=pa+fa;c[5147]=ia;c[pa+(fa+4)>>2]=ia|1;c[pa+(oa+4)>>2]=40;c[5151]=c[5266];break}oa=c[5148]|0;if(ga>>>0>>0){c[5148]=ga;va=ga}else va=oa;oa=ga+ha|0;ia=21024;while(1){if((c[ia>>2]|0)==(oa|0)){wa=ia;ya=ia;K=212;break}ia=c[ia+8>>2]|0;if(!ia){Aa=21024;break}}if((K|0)==212)if(!(c[ya+12>>2]&8)){c[wa>>2]=ga;ia=ya+4|0;c[ia>>2]=(c[ia>>2]|0)+ha;ia=ga+8|0;oa=(ia&7|0)==0?0:0-ia&7;ia=ga+(ha+8)|0;fa=(ia&7|0)==0?0:0-ia&7;ia=ga+(fa+ha)|0;S=oa+F|0;la=ga+S|0;ka=ia-(ga+oa)-F|0;c[ga+(oa+4)>>2]=F|3;h:do if((ia|0)!=(pa|0)){if((ia|0)==(c[5149]|0)){T=(c[5146]|0)+ka|0;c[5146]=T;c[5149]=la;c[ga+(S+4)>>2]=T|1;c[ga+(T+S)>>2]=T;break}T=ha+4|0;ca=c[ga+(T+fa)>>2]|0;if((ca&3|0)==1){na=ca&-8;ea=ca>>>3;i:do if(ca>>>0>=256){da=c[ga+((fa|24)+ha)>>2]|0;aa=c[ga+(ha+12+fa)>>2]|0;do if((aa|0)==(ia|0)){ba=fa|16;X=ga+(T+ba)|0;$=c[X>>2]|0;if(!$){Z=ga+(ba+ha)|0;ba=c[Z>>2]|0;if(!ba){Ba=0;break}else{Ca=ba;Da=Z}}else{Ca=$;Da=X}while(1){X=Ca+20|0;$=c[X>>2]|0;if($){Ca=$;Da=X;continue}X=Ca+16|0;$=c[X>>2]|0;if(!$){Ea=Ca;Fa=Da;break}else{Ca=$;Da=X}}if(Fa>>>0>>0)xa();else{c[Fa>>2]=0;Ba=Ea;break}}else{X=c[ga+((fa|8)+ha)>>2]|0;if(X>>>0>>0)xa();$=X+12|0;if((c[$>>2]|0)!=(ia|0))xa();Z=aa+8|0;if((c[Z>>2]|0)==(ia|0)){c[$>>2]=aa;c[Z>>2]=X;Ba=aa;break}else xa()}while(0);if(!da)break;aa=c[ga+(ha+28+fa)>>2]|0;X=20880+(aa<<2)|0;do if((ia|0)!=(c[X>>2]|0)){if(da>>>0<(c[5148]|0)>>>0)xa();Z=da+16|0;if((c[Z>>2]|0)==(ia|0))c[Z>>2]=Ba;else c[da+20>>2]=Ba;if(!Ba)break i}else{c[X>>2]=Ba;if(Ba)break;c[5145]=c[5145]&~(1<>>0>>0)xa();c[Ba+24>>2]=da;X=fa|16;Z=c[ga+(X+ha)>>2]|0;do if(Z)if(Z>>>0>>0)xa();else{c[Ba+16>>2]=Z;c[Z+24>>2]=Ba;break}while(0);Z=c[ga+(T+X)>>2]|0;if(!Z)break;if(Z>>>0<(c[5148]|0)>>>0)xa();else{c[Ba+20>>2]=Z;c[Z+24>>2]=Ba;break}}else{Z=c[ga+((fa|8)+ha)>>2]|0;aa=c[ga+(ha+12+fa)>>2]|0;da=20616+(ea<<1<<2)|0;do if((Z|0)!=(da|0)){if(Z>>>0>>0)xa();if((c[Z+12>>2]|0)==(ia|0))break;xa()}while(0);if((aa|0)==(Z|0)){c[5144]=c[5144]&~(1<>>0>>0)xa();X=aa+8|0;if((c[X>>2]|0)==(ia|0)){Ga=X;break}xa()}while(0);c[Z+12>>2]=aa;c[Ga>>2]=Z}while(0);Ha=ga+((na|fa)+ha)|0;Ia=na+ka|0}else{Ha=ia;Ia=ka}ea=Ha+4|0;c[ea>>2]=c[ea>>2]&-2;c[ga+(S+4)>>2]=Ia|1;c[ga+(Ia+S)>>2]=Ia;ea=Ia>>>3;if(Ia>>>0<256){T=ea<<1;ca=20616+(T<<2)|0;da=c[5144]|0;X=1<>2]|0;if($>>>0>=(c[5148]|0)>>>0){Ja=ea;Ka=$;break}xa()}while(0);c[Ja>>2]=la;c[Ka+12>>2]=la;c[ga+(S+8)>>2]=Ka;c[ga+(S+12)>>2]=ca;break}T=Ia>>>8;do if(!T)La=0;else{if(Ia>>>0>16777215){La=31;break}X=(T+1048320|0)>>>16&8;da=T<>>16&4;$=da<>>16&2;ea=14-(na|X|da)+($<>>15)|0;La=Ia>>>(ea+7|0)&1|ea<<1}while(0);T=20880+(La<<2)|0;c[ga+(S+28)>>2]=La;c[ga+(S+20)>>2]=0;c[ga+(S+16)>>2]=0;ca=c[5145]|0;ea=1<>2]=la;c[ga+(S+24)>>2]=T;c[ga+(S+12)>>2]=la;c[ga+(S+8)>>2]=la;break}ea=c[T>>2]|0;j:do if((c[ea+4>>2]&-8|0)!=(Ia|0)){T=Ia<<((La|0)==31?0:25-(La>>>1)|0);ca=ea;while(1){da=ca+16+(T>>>31<<2)|0;$=c[da>>2]|0;if(!$){Ma=da;Na=ca;break}if((c[$+4>>2]&-8|0)==(Ia|0)){Oa=$;break j}else{T=T<<1;ca=$}}if(Ma>>>0<(c[5148]|0)>>>0)xa();else{c[Ma>>2]=la;c[ga+(S+24)>>2]=Na;c[ga+(S+12)>>2]=la;c[ga+(S+8)>>2]=la;break h}}else Oa=ea;while(0);ea=Oa+8|0;ca=c[ea>>2]|0;T=c[5148]|0;if(ca>>>0>=T>>>0&Oa>>>0>=T>>>0){c[ca+12>>2]=la;c[ea>>2]=la;c[ga+(S+8)>>2]=ca;c[ga+(S+12)>>2]=Oa;c[ga+(S+24)>>2]=0;break}else xa()}else{ca=(c[5147]|0)+ka|0;c[5147]=ca;c[5150]=la;c[ga+(S+4)>>2]=ca|1}while(0);n=ga+(oa|8)|0;return n|0}else Aa=21024;while(1){S=c[Aa>>2]|0;if(S>>>0<=pa>>>0?(la=c[Aa+4>>2]|0,ka=S+la|0,ka>>>0>pa>>>0):0){Pa=S;Qa=la;Ra=ka;break}Aa=c[Aa+8>>2]|0}oa=Pa+(Qa+-39)|0;ka=Pa+(Qa+-47+((oa&7|0)==0?0:0-oa&7))|0;oa=pa+16|0;la=ka>>>0>>0?pa:ka;ka=la+8|0;S=ga+8|0;ia=(S&7|0)==0?0:0-S&7;S=ha+-40-ia|0;c[5150]=ga+ia;c[5147]=S;c[ga+(ia+4)>>2]=S|1;c[ga+(ha+-36)>>2]=40;c[5151]=c[5266];S=la+4|0;c[S>>2]=27;c[ka>>2]=c[5256];c[ka+4>>2]=c[5257];c[ka+8>>2]=c[5258];c[ka+12>>2]=c[5259];c[5256]=ga;c[5257]=ha;c[5259]=0;c[5258]=ka;ka=la+28|0;c[ka>>2]=7;if((la+32|0)>>>0>>0){ia=ka;do{ka=ia;ia=ia+4|0;c[ia>>2]=7}while((ka+8|0)>>>0>>0)}if((la|0)!=(pa|0)){ia=la-pa|0;c[S>>2]=c[S>>2]&-2;c[pa+4>>2]=ia|1;c[la>>2]=ia;ka=ia>>>3;if(ia>>>0<256){fa=ka<<1;ca=20616+(fa<<2)|0;ea=c[5144]|0;T=1<>2]|0;if(Z>>>0<(c[5148]|0)>>>0)xa();else{Sa=ka;Ta=Z}}else{c[5144]=ea|T;Sa=20616+(fa+2<<2)|0;Ta=ca}c[Sa>>2]=pa;c[Ta+12>>2]=pa;c[pa+8>>2]=Ta;c[pa+12>>2]=ca;break}ca=ia>>>8;if(ca)if(ia>>>0>16777215)Ua=31;else{fa=(ca+1048320|0)>>>16&8;T=ca<>>16&4;ea=T<>>16&2;Z=14-(ca|fa|T)+(ea<>>15)|0;Ua=ia>>>(Z+7|0)&1|Z<<1}else Ua=0;Z=20880+(Ua<<2)|0;c[pa+28>>2]=Ua;c[pa+20>>2]=0;c[oa>>2]=0;T=c[5145]|0;ea=1<>2]=pa;c[pa+24>>2]=Z;c[pa+12>>2]=pa;c[pa+8>>2]=pa;break}ea=c[Z>>2]|0;k:do if((c[ea+4>>2]&-8|0)!=(ia|0)){Z=ia<<((Ua|0)==31?0:25-(Ua>>>1)|0);T=ea;while(1){fa=T+16+(Z>>>31<<2)|0;ca=c[fa>>2]|0;if(!ca){Va=fa;Wa=T;break}if((c[ca+4>>2]&-8|0)==(ia|0)){Xa=ca;break k}else{Z=Z<<1;T=ca}}if(Va>>>0<(c[5148]|0)>>>0)xa();else{c[Va>>2]=pa;c[pa+24>>2]=Wa;c[pa+12>>2]=pa;c[pa+8>>2]=pa;break g}}else Xa=ea;while(0);ea=Xa+8|0;ia=c[ea>>2]|0;oa=c[5148]|0;if(ia>>>0>=oa>>>0&Xa>>>0>=oa>>>0){c[ia+12>>2]=pa;c[ea>>2]=pa;c[pa+8>>2]=ia;c[pa+12>>2]=Xa;c[pa+24>>2]=0;break}else xa()}}else{ia=c[5148]|0;if((ia|0)==0|ga>>>0>>0)c[5148]=ga;c[5256]=ga;c[5257]=ha;c[5259]=0;c[5153]=c[5262];c[5152]=-1;ia=0;do{ea=ia<<1;oa=20616+(ea<<2)|0;c[20616+(ea+3<<2)>>2]=oa;c[20616+(ea+2<<2)>>2]=oa;ia=ia+1|0}while((ia|0)!=32);ia=ga+8|0;oa=(ia&7|0)==0?0:0-ia&7;ia=ha+-40-oa|0;c[5150]=ga+oa;c[5147]=ia;c[ga+(oa+4)>>2]=ia|1;c[ga+(ha+-36)>>2]=40;c[5151]=c[5266]}while(0);ha=c[5147]|0;if(ha>>>0>F>>>0){ga=ha-F|0;c[5147]=ga;ha=c[5150]|0;c[5150]=ha+F;c[ha+(F+4)>>2]=ga|1;c[ha+4>>2]=F|3;n=ha+8|0;return n|0}}c[(ta()|0)>>2]=12;n=0;return n|0}function Lb(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0;if(!a)return;b=a+-8|0;d=c[5148]|0;if(b>>>0>>0)xa();e=c[a+-4>>2]|0;f=e&3;if((f|0)==1)xa();g=e&-8;h=a+(g+-8)|0;do if(!(e&1)){i=c[b>>2]|0;if(!f)return;j=-8-i|0;k=a+j|0;l=i+g|0;if(k>>>0>>0)xa();if((k|0)==(c[5149]|0)){m=a+(g+-4)|0;n=c[m>>2]|0;if((n&3|0)!=3){o=k;p=l;break}c[5146]=l;c[m>>2]=n&-2;c[a+(j+4)>>2]=l|1;c[h>>2]=l;return}n=i>>>3;if(i>>>0<256){i=c[a+(j+8)>>2]|0;m=c[a+(j+12)>>2]|0;q=20616+(n<<1<<2)|0;if((i|0)!=(q|0)){if(i>>>0>>0)xa();if((c[i+12>>2]|0)!=(k|0))xa()}if((m|0)==(i|0)){c[5144]=c[5144]&~(1<>>0>>0)xa();q=m+8|0;if((c[q>>2]|0)==(k|0))r=q;else xa()}else r=m+8|0;c[i+12>>2]=m;c[r>>2]=i;o=k;p=l;break}i=c[a+(j+24)>>2]|0;m=c[a+(j+12)>>2]|0;do if((m|0)==(k|0)){q=a+(j+20)|0;n=c[q>>2]|0;if(!n){s=a+(j+16)|0;t=c[s>>2]|0;if(!t){u=0;break}else{v=t;w=s}}else{v=n;w=q}while(1){q=v+20|0;n=c[q>>2]|0;if(n){v=n;w=q;continue}q=v+16|0;n=c[q>>2]|0;if(!n){x=v;y=w;break}else{v=n;w=q}}if(y>>>0>>0)xa();else{c[y>>2]=0;u=x;break}}else{q=c[a+(j+8)>>2]|0;if(q>>>0>>0)xa();n=q+12|0;if((c[n>>2]|0)!=(k|0))xa();s=m+8|0;if((c[s>>2]|0)==(k|0)){c[n>>2]=m;c[s>>2]=q;u=m;break}else xa()}while(0);if(i){m=c[a+(j+28)>>2]|0;q=20880+(m<<2)|0;if((k|0)==(c[q>>2]|0)){c[q>>2]=u;if(!u){c[5145]=c[5145]&~(1<>>0<(c[5148]|0)>>>0)xa();m=i+16|0;if((c[m>>2]|0)==(k|0))c[m>>2]=u;else c[i+20>>2]=u;if(!u){o=k;p=l;break}}m=c[5148]|0;if(u>>>0>>0)xa();c[u+24>>2]=i;q=c[a+(j+16)>>2]|0;do if(q)if(q>>>0>>0)xa();else{c[u+16>>2]=q;c[q+24>>2]=u;break}while(0);q=c[a+(j+20)>>2]|0;if(q)if(q>>>0<(c[5148]|0)>>>0)xa();else{c[u+20>>2]=q;c[q+24>>2]=u;o=k;p=l;break}else{o=k;p=l}}else{o=k;p=l}}else{o=b;p=g}while(0);if(o>>>0>=h>>>0)xa();b=a+(g+-4)|0;u=c[b>>2]|0;if(!(u&1))xa();if(!(u&2)){if((h|0)==(c[5150]|0)){d=(c[5147]|0)+p|0;c[5147]=d;c[5150]=o;c[o+4>>2]=d|1;if((o|0)!=(c[5149]|0))return;c[5149]=0;c[5146]=0;return}if((h|0)==(c[5149]|0)){d=(c[5146]|0)+p|0;c[5146]=d;c[5149]=o;c[o+4>>2]=d|1;c[o+d>>2]=d;return}d=(u&-8)+p|0;x=u>>>3;do if(u>>>0>=256){y=c[a+(g+16)>>2]|0;w=c[a+(g|4)>>2]|0;do if((w|0)==(h|0)){v=a+(g+12)|0;r=c[v>>2]|0;if(!r){f=a+(g+8)|0;e=c[f>>2]|0;if(!e){z=0;break}else{A=e;B=f}}else{A=r;B=v}while(1){v=A+20|0;r=c[v>>2]|0;if(r){A=r;B=v;continue}v=A+16|0;r=c[v>>2]|0;if(!r){C=A;D=B;break}else{A=r;B=v}}if(D>>>0<(c[5148]|0)>>>0)xa();else{c[D>>2]=0;z=C;break}}else{v=c[a+g>>2]|0;if(v>>>0<(c[5148]|0)>>>0)xa();r=v+12|0;if((c[r>>2]|0)!=(h|0))xa();f=w+8|0;if((c[f>>2]|0)==(h|0)){c[r>>2]=w;c[f>>2]=v;z=w;break}else xa()}while(0);if(y){w=c[a+(g+20)>>2]|0;l=20880+(w<<2)|0;if((h|0)==(c[l>>2]|0)){c[l>>2]=z;if(!z){c[5145]=c[5145]&~(1<>>0<(c[5148]|0)>>>0)xa();w=y+16|0;if((c[w>>2]|0)==(h|0))c[w>>2]=z;else c[y+20>>2]=z;if(!z)break}w=c[5148]|0;if(z>>>0>>0)xa();c[z+24>>2]=y;l=c[a+(g+8)>>2]|0;do if(l)if(l>>>0>>0)xa();else{c[z+16>>2]=l;c[l+24>>2]=z;break}while(0);l=c[a+(g+12)>>2]|0;if(l)if(l>>>0<(c[5148]|0)>>>0)xa();else{c[z+20>>2]=l;c[l+24>>2]=z;break}}}else{l=c[a+g>>2]|0;w=c[a+(g|4)>>2]|0;y=20616+(x<<1<<2)|0;if((l|0)!=(y|0)){if(l>>>0<(c[5148]|0)>>>0)xa();if((c[l+12>>2]|0)!=(h|0))xa()}if((w|0)==(l|0)){c[5144]=c[5144]&~(1<>>0<(c[5148]|0)>>>0)xa();y=w+8|0;if((c[y>>2]|0)==(h|0))E=y;else xa()}else E=w+8|0;c[l+12>>2]=w;c[E>>2]=l}while(0);c[o+4>>2]=d|1;c[o+d>>2]=d;if((o|0)==(c[5149]|0)){c[5146]=d;return}else F=d}else{c[b>>2]=u&-2;c[o+4>>2]=p|1;c[o+p>>2]=p;F=p}p=F>>>3;if(F>>>0<256){u=p<<1;b=20616+(u<<2)|0;d=c[5144]|0;E=1<>2]|0;if(h>>>0<(c[5148]|0)>>>0)xa();else{G=p;H=h}}else{c[5144]=d|E;G=20616+(u+2<<2)|0;H=b}c[G>>2]=o;c[H+12>>2]=o;c[o+8>>2]=H;c[o+12>>2]=b;return}b=F>>>8;if(b)if(F>>>0>16777215)I=31;else{H=(b+1048320|0)>>>16&8;G=b<>>16&4;u=G<>>16&2;E=14-(b|H|G)+(u<>>15)|0;I=F>>>(E+7|0)&1|E<<1}else I=0;E=20880+(I<<2)|0;c[o+28>>2]=I;c[o+20>>2]=0;c[o+16>>2]=0;G=c[5145]|0;u=1<>2]|0;b:do if((c[H+4>>2]&-8|0)!=(F|0)){b=F<<((I|0)==31?0:25-(I>>>1)|0);d=H;while(1){h=d+16+(b>>>31<<2)|0;p=c[h>>2]|0;if(!p){J=h;K=d;break}if((c[p+4>>2]&-8|0)==(F|0)){L=p;break b}else{b=b<<1;d=p}}if(J>>>0<(c[5148]|0)>>>0)xa();else{c[J>>2]=o;c[o+24>>2]=K;c[o+12>>2]=o;c[o+8>>2]=o;break a}}else L=H;while(0);H=L+8|0;d=c[H>>2]|0;b=c[5148]|0;if(d>>>0>=b>>>0&L>>>0>=b>>>0){c[d+12>>2]=o;c[H>>2]=o;c[o+8>>2]=d;c[o+12>>2]=L;c[o+24>>2]=0;break}else xa()}else{c[5145]=G|u;c[E>>2]=o;c[o+24>>2]=E;c[o+12>>2]=o;c[o+8>>2]=o}while(0);o=(c[5152]|0)+-1|0;c[5152]=o;if(!o)M=21032;else return;while(1){o=c[M>>2]|0;if(!o)break;else M=o+8|0}c[5152]=-1;return}function Mb(){}function Nb(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;f=b+e|0;if((e|0)>=20){d=d&255;g=b&3;h=d|d<<8|d<<16|d<<24;i=f&~3;if(g){g=b+4-g|0;while((b|0)<(g|0)){a[b>>0]=d;b=b+1|0}}while((b|0)<(i|0)){c[b>>2]=h;b=b+4|0}}while((b|0)<(f|0)){a[b>>0]=d;b=b+1|0}return b-e|0}function Ob(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){B=b<>>32-c;return a<>0]|0)c=c+1|0;return c-b|0}function Qb(b,d,e){b=b|0;d=d|0;e=e|0;var f=0;if((e|0)>=4096)return ka(b|0,d|0,e|0)|0;f=b|0;if((b&3)==(d&3)){while(b&3){if(!e)return f|0;a[b>>0]=a[d>>0]|0;b=b+1|0;d=d+1|0;e=e-1|0}while((e|0)>=4){c[b>>2]=c[d>>2];b=b+4|0;d=d+4|0;e=e-4|0}}while((e|0)>0){a[b>>0]=a[d>>0]|0;b=b+1|0;d=d+1|0;e=e-1|0}return f|0}function Rb(b,c){b=b|0;c=c|0;var d=0;do{a[b+d>>0]=a[c+d>>0];d=d+1|0}while(a[c+(d-1)>>0]|0);return b|0} +function Ga(a){a=a|0;var b=0;b=i;i=i+a|0;i=i+15&-16;return b|0}function Ha(){return i|0}function Ia(a){a=a|0;i=a}function Ja(a,b){a=a|0;b=b|0;i=a;j=b}function Ka(a,b){a=a|0;b=b|0;if(!m){m=a;n=b}}function La(b){b=b|0;a[k>>0]=a[b>>0];a[k+1>>0]=a[b+1>>0];a[k+2>>0]=a[b+2>>0];a[k+3>>0]=a[b+3>>0]}function Ma(b){b=b|0;a[k>>0]=a[b>>0];a[k+1>>0]=a[b+1>>0];a[k+2>>0]=a[b+2>>0];a[k+3>>0]=a[b+3>>0];a[k+4>>0]=a[b+4>>0];a[k+5>>0]=a[b+5>>0];a[k+6>>0]=a[b+6>>0];a[k+7>>0]=a[b+7>>0]}function Na(a){a=a|0;B=a}function Oa(){return B|0}function Pa(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0.0,p=0,q=0,r=0,s=0,t=0,u=0,v=0.0,w=0,x=0,y=0,z=0,A=0,B=0;if((Qa(a)|0)==1){d=Kb((a<<4)+272|0)|0;e=d+8|0;f=Ra(a,e)|0;c[d+264>>2]=f;g=d+272|0;if((f|0)>0){i=f+-1|0;j=1;k=0;l=0;while(1){m=c[e+(i-l<<2)>>2]|0;n=j;j=Z(m,j)|0;o=-6.283185307179586/+(j|0);if((n|0)>0&(m|0)>1){p=m+-1|0;m=(p|0)>1?p:1;q=Z(n,m)|0;r=k;s=0;while(1){t=r;u=0;while(1){u=u+1|0;v=o*+(Z(u,s)|0);h[g+(t<<4)>>3]=+P(+v);h[g+(t<<4)+8>>3]=+Q(+v);if((u|0)==(p|0))break;else t=t+1|0}s=s+1|0;if((s|0)==(n|0))break;else r=r+m|0}w=k+q|0}else w=k;l=l+1|0;if((l|0)==(f|0))break;else k=w}}c[d+268>>2]=0;x=d;y=a}else{d=~~+Eb(+Y(+(+Fb(+(a|0))/.3010299956639812)));w=d<<((d|0)<((a<<1)+-2|0)&1);d=Kb((w<<4)+272|0)|0;k=d+8|0;f=Ra(w,k)|0;c[d+264>>2]=f;l=d+272|0;if((f|0)>0){g=f+-1|0;j=1;i=0;e=0;while(1){m=c[k+(g-e<<2)>>2]|0;r=j;j=Z(m,j)|0;o=-6.283185307179586/+(j|0);if((r|0)>0&(m|0)>1){n=m+-1|0;m=(n|0)>1?n:1;s=Z(r,m)|0;p=i;t=0;while(1){u=p;z=0;while(1){z=z+1|0;v=o*+(Z(z,t)|0);h[l+(u<<4)>>3]=+P(+v);h[l+(u<<4)+8>>3]=+Q(+v);if((z|0)==(n|0))break;else u=u+1|0}t=t+1|0;if((t|0)==(r|0))break;else p=p+m|0}A=i+s|0}else A=i;e=e+1|0;if((e|0)==(f|0))break;else i=A}}c[d+268>>2]=1;x=d;y=w}c[x>>2]=a;c[x+4>>2]=b;if((b|0)==-1&(y|0)>0)B=0;else return x|0;do{b=x+272+(B<<4)+8|0;h[b>>3]=-+h[b>>3];B=B+1|0}while((B|0)!=(y|0));return x|0}function Qa(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;if(!((a|0)%53|0)){b=a;while(1){c=(b|0)/53|0;if(!((c|0)%53|0))b=c;else{d=c;break}}}else d=a;if(!((d|0)%47|0)){a=d;while(1){b=(a|0)/47|0;if(!((b|0)%47|0))a=b;else{e=b;break}}}else e=d;if(!((e|0)%43|0)){d=e;while(1){a=(d|0)/43|0;if(!((a|0)%43|0))d=a;else{f=a;break}}}else f=e;if(!((f|0)%41|0)){e=f;while(1){d=(e|0)/41|0;if(!((d|0)%41|0))e=d;else{g=d;break}}}else g=f;if(!((g|0)%37|0)){f=g;while(1){e=(f|0)/37|0;if(!((e|0)%37|0))f=e;else{h=e;break}}}else h=g;if(!((h|0)%31|0)){g=h;while(1){f=(g|0)/31|0;if(!((f|0)%31|0))g=f;else{i=f;break}}}else i=h;if(!((i|0)%29|0)){h=i;while(1){g=(h|0)/29|0;if(!((g|0)%29|0))h=g;else{j=g;break}}}else j=i;if(!((j|0)%23|0)){i=j;while(1){h=(i|0)/23|0;if(!((h|0)%23|0))i=h;else{k=h;break}}}else k=j;if(!((k|0)%17|0)){j=k;while(1){i=(j|0)/17|0;if(!((i|0)%17|0))j=i;else{l=i;break}}}else l=k;if(!((l|0)%13|0)){k=l;while(1){j=(k|0)/13|0;if(!((j|0)%13|0))k=j;else{m=j;break}}}else m=l;if(!((m|0)%11|0)){l=m;while(1){k=(l|0)/11|0;if(!((k|0)%11|0))l=k;else{n=k;break}}}else n=m;if(!(n&7)){m=n;while(1){l=(m|0)/8|0;if(!(l&7))m=l;else{o=l;break}}}else o=n;if(!((o|0)%7|0)){n=o;while(1){m=(n|0)/7|0;if(!((m|0)%7|0))n=m;else{p=m;break}}}else p=o;if(!((p|0)%5|0)){o=p;while(1){n=(o|0)/5|0;if(!((n|0)%5|0))o=n;else{q=n;break}}}else q=p;if(!(q&3)){p=q;while(1){o=(p|0)/4|0;if(!(o&3))p=o;else{r=o;break}}}else r=q;if(!((r|0)%3|0)){q=r;while(1){p=(q|0)/3|0;if(!((p|0)%3|0))q=p;else{s=p;break}}}else s=r;if(!(s&1))t=s;else{u=s;v=(u|0)==1;w=v&1;return w|0}while(1){s=(t|0)/2|0;if(!(s&1))t=s;else{u=s;break}}v=(u|0)==1;w=v&1;return w|0}function Ra(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0;if(!((a|0)%53|0)){d=a;e=0;while(1){f=(d|0)/53|0;c[b+(e<<2)>>2]=53;g=e+1|0;if(!((f|0)%53|0)){d=f;e=g}else{h=f;i=g;break}}}else{h=a;i=0}if(!((h|0)%47|0)){a=h;e=i;while(1){d=(a|0)/47|0;c[b+(e<<2)>>2]=47;g=e+1|0;if(!((d|0)%47|0)){a=d;e=g}else{j=d;k=g;break}}}else{j=h;k=i}if(!((j|0)%43|0)){i=j;h=k;while(1){e=(i|0)/43|0;c[b+(h<<2)>>2]=43;a=h+1|0;if(!((e|0)%43|0)){i=e;h=a}else{l=e;m=a;break}}}else{l=j;m=k}if(!((l|0)%41|0)){k=l;j=m;while(1){h=(k|0)/41|0;c[b+(j<<2)>>2]=41;i=j+1|0;if(!((h|0)%41|0)){k=h;j=i}else{n=h;o=i;break}}}else{n=l;o=m}if(!((n|0)%37|0)){m=n;l=o;while(1){j=(m|0)/37|0;c[b+(l<<2)>>2]=37;k=l+1|0;if(!((j|0)%37|0)){m=j;l=k}else{p=j;q=k;break}}}else{p=n;q=o}if(!((p|0)%31|0)){o=p;n=q;while(1){l=(o|0)/31|0;c[b+(n<<2)>>2]=31;m=n+1|0;if(!((l|0)%31|0)){o=l;n=m}else{r=l;s=m;break}}}else{r=p;s=q}if(!((r|0)%29|0)){q=r;p=s;while(1){n=(q|0)/29|0;c[b+(p<<2)>>2]=29;o=p+1|0;if(!((n|0)%29|0)){q=n;p=o}else{t=n;u=o;break}}}else{t=r;u=s}if(!((t|0)%23|0)){s=t;r=u;while(1){p=(s|0)/23|0;c[b+(r<<2)>>2]=23;q=r+1|0;if(!((p|0)%23|0)){s=p;r=q}else{v=p;w=q;break}}}else{v=t;w=u}if(!((v|0)%19|0)){u=v;t=w;while(1){r=(u|0)/19|0;c[b+(t<<2)>>2]=19;s=t+1|0;if(!((r|0)%19|0)){u=r;t=s}else{x=r;y=s;break}}}else{x=v;y=w}if(!((x|0)%17|0)){w=x;v=y;while(1){t=(w|0)/17|0;c[b+(v<<2)>>2]=17;u=v+1|0;if(!((t|0)%17|0)){w=t;v=u}else{z=t;A=u;break}}}else{z=x;A=y}if(!((z|0)%13|0)){y=z;x=A;while(1){v=(y|0)/13|0;c[b+(x<<2)>>2]=13;w=x+1|0;if(!((v|0)%13|0)){y=v;x=w}else{B=v;C=w;break}}}else{B=z;C=A}if(!((B|0)%11|0)){A=B;z=C;while(1){x=(A|0)/11|0;c[b+(z<<2)>>2]=11;y=z+1|0;if(!((x|0)%11|0)){A=x;z=y}else{D=x;E=y;break}}}else{D=B;E=C}if(!(D&7)){C=D;B=E;while(1){z=(C|0)/8|0;c[b+(B<<2)>>2]=8;A=B+1|0;if(!(z&7)){C=z;B=A}else{F=z;G=A;break}}}else{F=D;G=E}if(!((F|0)%7|0)){E=F;D=G;while(1){B=(E|0)/7|0;c[b+(D<<2)>>2]=7;C=D+1|0;if(!((B|0)%7|0)){E=B;D=C}else{H=B;I=C;break}}}else{H=F;I=G}if(!((H|0)%5|0)){G=H;F=I;while(1){D=(G|0)/5|0;c[b+(F<<2)>>2]=5;E=F+1|0;if(!((D|0)%5|0)){G=D;F=E}else{J=D;K=E;break}}}else{J=H;K=I}if(!(J&3)){I=J;H=K;while(1){F=(I|0)/4|0;c[b+(H<<2)>>2]=4;G=H+1|0;if(!(F&3)){I=F;H=G}else{L=F;M=G;break}}}else{L=J;M=K}if(!((L|0)%3|0)){K=L;J=M;while(1){H=(K|0)/3|0;c[b+(J<<2)>>2]=3;I=J+1|0;if(!((H|0)%3|0)){K=H;J=I}else{N=H;O=I;break}}}else{N=L;O=M}if(!(N&1)){M=N;L=O;while(1){J=(M|0)/2|0;c[b+(L<<2)>>2]=2;K=L+1|0;if(!(J&1)){M=J;L=K}else{P=J;Q=K;break}}}else{P=N;Q=O}if((P|0)>31){R=P;S=Q;T=2}else{U=Q;return U|0}while(1){Q=T*6|0;P=Q+-1|0;O=Q|1;if(!((R|0)%(P|0)|0)){Q=R;N=S;while(1){c[b+(N<<2)>>2]=P;L=N+1|0;M=(Q|0)/(P|0)|0;if(!((M|0)%(P|0)|0)){Q=M;N=L}else{V=M;W=L;break}}}else{V=R;W=S}if(!((V|0)%(O|0)|0)){N=V;Q=W;while(1){c[b+(Q<<2)>>2]=O;P=Q+1|0;L=(N|0)/(O|0)|0;if(!((L|0)%(O|0)|0)){N=L;Q=P}else{X=L;Y=P;break}}}else{X=V;Y=W}if((X|0)>1){R=X;S=Y;T=T+1|0}else{U=Y;break}}return U|0}function Sa(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=c[a+268>>2]|0;if((e|0)==1){Ua(b,d,a,c[a+4>>2]|0,c[a>>2]|0);return}else if(!e){Ta(d,b,a,c[a+4>>2]|0,c[a>>2]|0,1,0);return}else return}function Ta(a,b,d,e,f,g,i){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;i=i|0;var j=0,k=0,l=0.0,m=0.0,n=0,o=0.0,p=0,q=0.0,r=0,s=0,t=0.0,u=0,v=0.0,w=0,x=0.0,y=0,z=0.0,A=0,B=0.0,C=0,D=0.0,E=0,F=0.0,G=0,H=0.0,I=0,J=0.0,K=0,L=0.0,M=0.0,N=0.0,O=0,R=0.0,S=0.0,T=0.0,U=0.0,V=0.0,W=0.0,X=0,Y=0.0,_=0.0,$=0.0,aa=0.0,ba=0.0,ca=0.0,da=0.0,ea=0.0,fa=0.0,ga=0.0,ha=0.0,ia=0.0,ja=0.0,ka=0.0,la=0,ma=0,na=0,oa=0.0,pa=0.0,qa=0.0,ra=0.0,sa=0.0,ta=0.0,ua=0,va=0,wa=0.0,xa=0.0,ya=0.0,za=0.0,Aa=0.0,Ba=0.0,Ca=0,Da=0.0,Ea=0.0,Fa=0.0,Ga=0.0,Ha=0.0,Ia=0.0,Ja=0;j=(f|0)>1;if(j)k=c[d+8+(i<<2)>>2]|0;else k=0;switch(f|0){case 7:{l=+h[b>>3];h[a>>3]=l;m=+h[b+8>>3];n=a+8|0;h[n>>3]=m;o=+h[b+(g<<4)>>3];p=a+16|0;h[p>>3]=o;q=+h[b+(g<<4)+8>>3];r=a+24|0;h[r>>3]=q;s=g<<1;t=+h[b+(s<<4)>>3];u=a+32|0;h[u>>3]=t;v=+h[b+(s<<4)+8>>3];s=a+40|0;h[s>>3]=v;w=g*3|0;x=+h[b+(w<<4)>>3];y=a+48|0;h[y>>3]=x;z=+h[b+(w<<4)+8>>3];w=a+56|0;h[w>>3]=z;A=g<<2;B=+h[b+(A<<4)>>3];C=a+64|0;h[C>>3]=B;D=+h[b+(A<<4)+8>>3];A=a+72|0;h[A>>3]=D;E=g*5|0;F=+h[b+(E<<4)>>3];G=a+80|0;h[G>>3]=F;H=+h[b+(E<<4)+8>>3];E=a+88|0;h[E>>3]=H;I=g*6|0;J=+h[b+(I<<4)>>3];K=a+96|0;h[K>>3]=J;L=+h[b+(I<<4)+8>>3];I=a+104|0;h[I>>3]=L;M=o+J;N=o-J;J=L+q;o=q-L;L=t+F;q=t-F;F=v+H;t=v-H;H=x+B;v=x-B;B=z+D;x=z-D;D=M*.62348980185+l-L*.22252093395-H*.9009688679;z=J*.62348980185+m-F*.22252093395-B*.9009688679;O=(e|0)==1;if(O){R=o*-.78183148246-t*.97492791218-x*.43388373911;S=N*-.78183148246-q*.97492791218-v*.43388373911}else{R=o*.78183148246+t*.97492791218+x*.43388373911;S=N*.78183148246+q*.97492791218+v*.43388373911}h[p>>3]=D-R;h[K>>3]=D+R;h[r>>3]=z+S;h[I>>3]=z-S;S=H*.62348980185+(l-M*.22252093395-L*.9009688679);z=B*.62348980185+(m-J*.22252093395-F*.9009688679);R=N*.97492791218;D=q*.43388373911;if(O){T=t*.43388373911-o*.97492791218+x*.78183148246;U=D-R+v*.78183148246}else{T=o*.97492791218-t*.43388373911-x*.78183148246;U=R-D-v*.78183148246}h[u>>3]=S-T;h[G>>3]=S+T;h[s>>3]=z+U;h[E>>3]=z-U;U=L*.62348980185+(l-M*.9009688679)-H*.22252093395;z=F*.62348980185+(m-J*.9009688679)-B*.22252093395;T=N*.43388373911;N=q*.78183148246;if(O){V=t*.78183148246-o*.43388373911-x*.97492791218;W=N-T-v*.97492791218}else{V=o*.43388373911-t*.78183148246+x*.97492791218;W=T-N+v*.97492791218}h[y>>3]=U-V;h[C>>3]=U+V;h[w>>3]=z+W;h[A>>3]=z-W;h[a>>3]=M+L+H+l;h[n>>3]=J+F+B+m;return}case 8:{m=+h[b>>3];h[a>>3]=m;B=+h[b+8>>3];n=a+8|0;h[n>>3]=B;F=+h[b+(g<<4)>>3];A=a+16|0;h[A>>3]=F;J=+h[b+(g<<4)+8>>3];w=a+24|0;h[w>>3]=J;C=g<<1;l=+h[b+(C<<4)>>3];y=a+32|0;h[y>>3]=l;H=+h[b+(C<<4)+8>>3];C=a+40|0;h[C>>3]=H;O=g*3|0;L=+h[b+(O<<4)>>3];E=a+48|0;h[E>>3]=L;M=+h[b+(O<<4)+8>>3];O=a+56|0;h[O>>3]=M;s=g<<2;W=+h[b+(s<<4)>>3];G=a+64|0;h[G>>3]=W;z=+h[b+(s<<4)+8>>3];s=a+72|0;h[s>>3]=z;u=g*5|0;V=+h[b+(u<<4)>>3];I=a+80|0;h[I>>3]=V;U=+h[b+(u<<4)+8>>3];u=a+88|0;h[u>>3]=U;r=g*6|0;v=+h[b+(r<<4)>>3];K=a+96|0;h[K>>3]=v;N=+h[b+(r<<4)+8>>3];r=a+104|0;h[r>>3]=N;p=g*7|0;T=+h[b+(p<<4)>>3];X=a+112|0;h[X>>3]=T;x=+h[b+(p<<4)+8>>3];p=a+120|0;h[p>>3]=x;t=m+W;o=m-W;W=B+z;m=B-z;z=F+T;B=F-T;T=x+J;F=J-x;x=L+V;J=L-V;V=M+U;L=M-U;U=l+v;M=l-v;v=H+N;l=H-N;h[a>>3]=t+z+x+U;h[n>>3]=W+T+V+v;h[G>>3]=t-z-x+U;h[s>>3]=W-T-V+v;N=B+J;H=F+L;q=(z-x)*.7071067811865476;x=o+q;z=(T-V)*.7071067811865476;V=m+z;s=(e|0)==1;if(s){Y=H*-.7071067811865476-l;_=N*-.7071067811865476-M}else{Y=H*.7071067811865476+l;_=N*.7071067811865476+M}h[A>>3]=x-Y;h[w>>3]=V+_;h[X>>3]=x+Y;h[p>>3]=V-_;_=t-U;U=W-v;v=s?L-F:F-L;L=s?J-B:B-J;h[y>>3]=_-v;h[C>>3]=L+U;h[K>>3]=v+_;h[r>>3]=U-L;L=o-q;q=m-z;z=N*.7071067811865476;if(s){$=l-H*.7071067811865476;aa=M-z}else{$=H*.7071067811865476-l;aa=z-M}h[E>>3]=L-$;h[O>>3]=q+aa;h[I>>3]=L+$;h[u>>3]=q-aa;return}case 5:{aa=+h[b>>3];h[a>>3]=aa;q=+h[b+8>>3];u=a+8|0;h[u>>3]=q;$=+h[b+(g<<4)>>3];I=a+16|0;h[I>>3]=$;L=+h[b+(g<<4)+8>>3];O=a+24|0;h[O>>3]=L;E=g<<1;M=+h[b+(E<<4)>>3];s=a+32|0;h[s>>3]=M;z=+h[b+(E<<4)+8>>3];E=a+40|0;h[E>>3]=z;r=g*3|0;l=+h[b+(r<<4)>>3];K=a+48|0;h[K>>3]=l;H=+h[b+(r<<4)+8>>3];r=a+56|0;h[r>>3]=H;C=g<<2;N=+h[b+(C<<4)>>3];y=a+64|0;h[y>>3]=N;m=+h[b+(C<<4)+8>>3];C=a+72|0;h[C>>3]=m;o=$+N;U=$-N;N=m+L;$=L-m;m=M+l;L=M-l;l=z+H;M=z-H;p=(e|0)==1;if(p){ba=$*.95105651629+M*.58778525229;ca=U*.95105651629+L*.58778525229}else{ba=$*-.95105651629-M*.58778525229;ca=U*-.95105651629-L*.58778525229}H=o*.30901699437-m*.80901699437+aa;z=N*.30901699437-l*.80901699437+q;h[I>>3]=ba+H;h[O>>3]=z-ca;h[y>>3]=H-ba;h[C>>3]=ca+z;z=U*.58778525229;U=L*.95105651629;if(p){da=$*.58778525229-M*.95105651629;ea=z-U}else{da=M*.95105651629-$*.58778525229;ea=U-z}z=m*.30901699437-o*.80901699437+aa;U=l*.30901699437-N*.80901699437+q;h[s>>3]=da+z;h[E>>3]=U-ea;h[K>>3]=z-da;h[r>>3]=ea+U;h[a>>3]=o+m+aa;h[u>>3]=N+l+q;return}case 1:{h[a>>3]=+h[b>>3];h[a+8>>3]=+h[b+8>>3];return}case 2:{q=+h[b>>3];h[a>>3]=q;l=+h[b+8>>3];u=a+8|0;h[u>>3]=l;N=+h[b+(g<<4)>>3];aa=+h[b+(g<<4)+8>>3];h[a>>3]=q+N;h[u>>3]=l+aa;h[a+16>>3]=q-N;h[a+24>>3]=l-aa;return}case 3:{aa=+h[b>>3];h[a>>3]=aa;l=+h[b+8>>3];u=a+8|0;h[u>>3]=l;N=+h[b+(g<<4)>>3];r=a+16|0;h[r>>3]=N;q=+h[b+(g<<4)+8>>3];K=a+24|0;h[K>>3]=q;E=g<<1;m=+h[b+(E<<4)>>3];o=+h[b+(E<<4)+8>>3];U=N+m;ea=o+q;da=+(e|0)*.86602540378;z=da*(N-m);m=da*(q-o);o=aa-U*.5;q=l-ea*.5;h[a>>3]=U+aa;h[u>>3]=ea+l;h[r>>3]=o+m;h[K>>3]=q-z;h[a+32>>3]=o-m;h[a+40>>3]=z+q;return}case 4:{q=+h[b>>3];h[a>>3]=q;z=+h[b+8>>3];K=a+8|0;h[K>>3]=z;m=+h[b+(g<<4)>>3];r=a+16|0;h[r>>3]=m;o=+h[b+(g<<4)+8>>3];u=a+24|0;h[u>>3]=o;E=g<<1;l=+h[b+(E<<4)>>3];s=a+32|0;h[s>>3]=l;ea=+h[b+(E<<4)+8>>3];E=a+40|0;h[E>>3]=ea;p=g*3|0;aa=+h[b+(p<<4)>>3];U=+h[b+(p<<4)+8>>3];da=q+l;N=z+ea;$=q-l;l=z-ea;ea=m+aa;z=U+o;q=+(e|0);M=q*(m-aa);aa=q*(o-U);h[a>>3]=da+ea;h[K>>3]=N+z;h[r>>3]=$+aa;h[u>>3]=l-M;h[s>>3]=da-ea;h[E>>3]=N-z;h[a+48>>3]=$-aa;h[a+56>>3]=l+M;return}default:switch(k|0){case 2:{E=(f|0)/2|0;s=g<<1;u=i+1|0;Ta(a,b,d,e,E,s,u);Ta(a+(E<<4)|0,b+(g<<4)|0,d,e,E,s,u);if(!j)return;j=E+-1|0;u=0;do{s=j+u|0;M=+h[d+272+(s<<4)>>3];l=+h[d+272+(s<<4)+8>>3];s=u+E|0;r=a+(u<<4)|0;aa=+h[r>>3];K=a+(u<<4)+8|0;$=+h[K>>3];p=a+(s<<4)|0;z=+h[p>>3];C=a+(s<<4)+8|0;N=+h[C>>3];ea=M*z-l*N;da=l*z+M*N;h[r>>3]=aa+ea;h[K>>3]=$+da;h[p>>3]=aa-ea;h[C>>3]=$-da;u=u+1|0}while((u|0)<(E|0));return}case 3:{E=(f|0)/3|0;u=g*3|0;j=i+1|0;Ta(a,b,d,e,E,u,j);Ta(a+(E<<4)|0,b+(g<<4)|0,d,e,E,u,j);Ta(a+(E<<1<<4)|0,b+(g<<1<<4)|0,d,e,E,u,j);if((f|0)<=2)return;j=E+-1|0;da=+(e|0)*.86602540378;u=0;do{C=u<<1;p=j+C|0;$=+h[d+272+(p<<4)>>3];ea=+h[d+272+(p<<4)+8>>3];p=C+E|0;aa=+h[d+272+(p<<4)>>3];N=+h[d+272+(p<<4)+8>>3];p=u+E|0;C=p+E|0;K=a+(u<<4)|0;M=+h[K>>3];r=a+(u<<4)+8|0;z=+h[r>>3];s=a+(p<<4)|0;l=+h[s>>3];y=a+(p<<4)+8|0;U=+h[y>>3];o=$*l-ea*U;q=ea*l+$*U;p=a+(C<<4)|0;U=+h[p>>3];O=a+(C<<4)+8|0;$=+h[O>>3];l=aa*U-N*$;ea=N*U+aa*$;$=o+l;aa=q+ea;U=da*(o-l);l=da*(q-ea);ea=M-$*.5;q=z-aa*.5;h[K>>3]=M+$;h[r>>3]=z+aa;h[s>>3]=l+ea;h[y>>3]=q-U;h[p>>3]=ea-l;h[O>>3]=U+q;u=u+1|0}while((u|0)<(E|0));return}case 4:{E=(f|0)/4|0;u=g<<2;j=i+1|0;Ta(a,b,d,e,E,u,j);O=a+(E<<4)|0;Ta(O,b+(g<<4)|0,d,e,E,u,j);p=E<<1;Ta(a+(p<<4)|0,b+(g<<1<<4)|0,d,e,E,u,j);y=E*3|0;Ta(a+(y<<4)|0,b+(g*3<<4)|0,d,e,E,u,j);da=+h[a>>3];j=a+8|0;q=+h[j>>3];U=+h[O>>3];u=a+(E<<4)+8|0;l=+h[u>>3];s=a+(p<<4)|0;ea=+h[s>>3];r=a+(p<<4)+8|0;aa=+h[r>>3];p=a+(y<<4)|0;z=+h[p>>3];K=a+(y<<4)+8|0;$=+h[K>>3];M=da+ea;o=q+aa;N=da-ea;ea=q-aa;aa=U+z;q=l+$;da=+(e|0);m=da*(U-z);z=da*(l-$);h[a>>3]=M+aa;h[j>>3]=o+q;h[O>>3]=N+z;h[u>>3]=ea-m;h[s>>3]=M-aa;h[r>>3]=o-q;h[p>>3]=N-z;h[K>>3]=ea+m;if((f|0)<=7)return;K=E+-1|0;p=1;do{r=p*3|0;s=K+r|0;m=+h[d+272+(s<<4)>>3];ea=+h[d+272+(s<<4)+8>>3];s=r+E|0;z=+h[d+272+(s<<4)>>3];N=+h[d+272+(s<<4)+8>>3];r=s+1|0;q=+h[d+272+(r<<4)>>3];o=+h[d+272+(r<<4)+8>>3];r=p+E|0;s=r+E|0;u=s+E|0;O=a+(p<<4)|0;aa=+h[O>>3];j=a+(p<<4)+8|0;M=+h[j>>3];y=a+(r<<4)|0;$=+h[y>>3];C=a+(r<<4)+8|0;l=+h[C>>3];U=m*$-ea*l;L=ea*$+m*l;r=a+(s<<4)|0;l=+h[r>>3];I=a+(s<<4)+8|0;m=+h[I>>3];$=z*l-N*m;ea=N*l+z*m;s=a+(u<<4)|0;m=+h[s>>3];X=a+(u<<4)+8|0;z=+h[X>>3];l=q*m-o*z;N=o*m+q*z;z=aa+$;q=M+ea;m=aa-$;$=M-ea;ea=U+l;M=L+N;aa=da*(U-l);l=da*(L-N);h[O>>3]=z+ea;h[j>>3]=q+M;h[y>>3]=m+l;h[C>>3]=$-aa;h[r>>3]=z-ea;h[I>>3]=q-M;h[s>>3]=m-l;h[X>>3]=$+aa;p=p+1|0}while((p|0)<(E|0));return}case 5:{E=(f|0)/5|0;p=g*5|0;K=i+1|0;Ta(a,b,d,e,E,p,K);X=a+(E<<4)|0;Ta(X,b+(g<<4)|0,d,e,E,p,K);s=E<<1;Ta(a+(s<<4)|0,b+(g<<1<<4)|0,d,e,E,p,K);I=E*3|0;Ta(a+(I<<4)|0,b+(g*3<<4)|0,d,e,E,p,K);r=E<<2;Ta(a+(r<<4)|0,b+(g<<2<<4)|0,d,e,E,p,K);da=+h[a>>3];K=a+8|0;aa=+h[K>>3];$=+h[X>>3];p=a+(E<<4)+8|0;l=+h[p>>3];C=a+(s<<4)|0;m=+h[C>>3];y=a+(s<<4)+8|0;M=+h[y>>3];s=a+(I<<4)|0;q=+h[s>>3];j=a+(I<<4)+8|0;ea=+h[j>>3];I=a+(r<<4)|0;z=+h[I>>3];O=a+(r<<4)+8|0;N=+h[O>>3];L=$+z;U=l+N;o=m+q;ca=M+ea;ba=$-z;z=l-N;N=m-q;q=M-ea;h[a>>3]=o+(da+L);h[K>>3]=ca+(aa+U);ea=+(e|0);M=ea*(N*.58778525229+ba*.95105651629);m=ea*(q*.58778525229+z*.95105651629);l=da+(L*.30901699437-o*.80901699437);$=aa+(U*.30901699437-ca*.80901699437);h[X>>3]=l+m;h[p>>3]=$-M;h[I>>3]=l-m;h[O>>3]=M+$;$=ea*(ba*.58778525229-N*.95105651629);N=ea*(z*.58778525229-q*.95105651629);q=da+(o*.30901699437-L*.80901699437);L=aa+(ca*.30901699437-U*.80901699437);h[C>>3]=q+N;h[y>>3]=L-$;h[s>>3]=q-N;h[j>>3]=$+L;if((f|0)<=9)return;j=E+-1|0;if((e|0)==1){s=1;do{y=s<<2;C=j+y|0;L=+h[d+272+(C<<4)>>3];$=+h[d+272+(C<<4)+8>>3];C=y+E|0;N=+h[d+272+(C<<4)>>3];q=+h[d+272+(C<<4)+8>>3];y=C+1|0;U=+h[d+272+(y<<4)>>3];ca=+h[d+272+(y<<4)+8>>3];y=C+2|0;aa=+h[d+272+(y<<4)>>3];o=+h[d+272+(y<<4)+8>>3];y=s+E|0;C=y+E|0;O=C+E|0;I=O+E|0;p=a+(s<<4)|0;da=+h[p>>3];X=a+(s<<4)+8|0;z=+h[X>>3];K=a+(y<<4)|0;ea=+h[K>>3];r=a+(y<<4)+8|0;ba=+h[r>>3];M=L*ea-$*ba;m=$*ea+L*ba;y=a+(C<<4)|0;ba=+h[y>>3];u=a+(C<<4)+8|0;L=+h[u>>3];ea=N*ba-q*L;$=q*ba+N*L;C=a+(O<<4)|0;L=+h[C>>3];w=a+(O<<4)+8|0;N=+h[w>>3];ba=U*L-ca*N;q=ca*L+U*N;O=a+(I<<4)|0;N=+h[O>>3];A=a+(I<<4)+8|0;U=+h[A>>3];L=aa*N-o*U;ca=o*N+aa*U;U=M+L;aa=m+ca;N=ea+ba;o=$+q;l=M-L;L=m-ca;ca=ea-ba;ba=$-q;h[p>>3]=N+(da+U);h[X>>3]=o+(z+aa);q=ca*.58778525229+l*.95105651629;$=ba*.58778525229+L*.95105651629;ea=da+(U*.30901699437-N*.80901699437);m=z+(aa*.30901699437-o*.80901699437);h[K>>3]=ea+$;h[r>>3]=m-q;h[O>>3]=ea-$;h[A>>3]=m+q;q=l*.58778525229-ca*.95105651629;ca=L*.58778525229-ba*.95105651629;ba=da+(N*.30901699437-U*.80901699437);U=z+(o*.30901699437-aa*.80901699437);h[y>>3]=ba+ca;h[u>>3]=U-q;h[C>>3]=ba-ca;h[w>>3]=U+q;s=s+1|0}while((s|0)<(E|0));return}else{s=1;do{w=s<<2;C=j+w|0;q=+h[d+272+(C<<4)>>3];U=+h[d+272+(C<<4)+8>>3];C=w+E|0;ca=+h[d+272+(C<<4)>>3];ba=+h[d+272+(C<<4)+8>>3];w=C+1|0;aa=+h[d+272+(w<<4)>>3];o=+h[d+272+(w<<4)+8>>3];w=C+2|0;z=+h[d+272+(w<<4)>>3];N=+h[d+272+(w<<4)+8>>3];w=s+E|0;C=w+E|0;u=C+E|0;y=u+E|0;A=a+(s<<4)|0;da=+h[A>>3];O=a+(s<<4)+8|0;L=+h[O>>3];r=a+(w<<4)|0;l=+h[r>>3];K=a+(w<<4)+8|0;m=+h[K>>3];$=q*l-U*m;ea=U*l+q*m;w=a+(C<<4)|0;m=+h[w>>3];X=a+(C<<4)+8|0;q=+h[X>>3];l=ca*m-ba*q;U=ba*m+ca*q;C=a+(u<<4)|0;q=+h[C>>3];p=a+(u<<4)+8|0;ca=+h[p>>3];m=aa*q-o*ca;ba=o*q+aa*ca;u=a+(y<<4)|0;ca=+h[u>>3];I=a+(y<<4)+8|0;aa=+h[I>>3];q=z*ca-N*aa;o=N*ca+z*aa;aa=$+q;z=ea+o;ca=l+m;N=U+ba;M=$-q;q=ea-o;o=l-m;m=U-ba;h[A>>3]=ca+(da+aa);h[O>>3]=N+(L+z);ba=M*-.95105651629-o*.58778525229;U=q*-.95105651629-m*.58778525229;l=da+(aa*.30901699437-ca*.80901699437);ea=L+(z*.30901699437-N*.80901699437);h[r>>3]=l+U;h[K>>3]=ea-ba;h[u>>3]=l-U;h[I>>3]=ea+ba;ba=o*.95105651629-M*.58778525229;M=m*.95105651629-q*.58778525229;q=da+(ca*.30901699437-aa*.80901699437);aa=L+(N*.30901699437-z*.80901699437);h[w>>3]=q+M;h[X>>3]=aa-ba;h[C>>3]=q-M;h[p>>3]=aa+ba;s=s+1|0}while((s|0)<(E|0));return}break}case 7:{E=(f|0)/7|0;s=g*7|0;j=i+1|0;Ta(a,b,d,e,E,s,j);p=a+(E<<4)|0;Ta(p,b+(g<<4)|0,d,e,E,s,j);C=E<<1;Ta(a+(C<<4)|0,b+(g<<1<<4)|0,d,e,E,s,j);X=E*3|0;Ta(a+(X<<4)|0,b+(g*3<<4)|0,d,e,E,s,j);w=E<<2;Ta(a+(w<<4)|0,b+(g<<2<<4)|0,d,e,E,s,j);I=E*5|0;Ta(a+(I<<4)|0,b+(g*5<<4)|0,d,e,E,s,j);u=E*6|0;Ta(a+(u<<4)|0,b+(g*6<<4)|0,d,e,E,s,j);ba=+h[a>>3];j=a+8|0;aa=+h[j>>3];M=+h[p>>3];s=a+(E<<4)+8|0;q=+h[s>>3];K=a+(C<<4)|0;z=+h[K>>3];r=a+(C<<4)+8|0;N=+h[r>>3];C=a+(X<<4)|0;L=+h[C>>3];O=a+(X<<4)+8|0;ca=+h[O>>3];X=a+(w<<4)|0;da=+h[X>>3];A=a+(w<<4)+8|0;m=+h[A>>3];w=a+(I<<4)|0;o=+h[w>>3];y=a+(I<<4)+8|0;ea=+h[y>>3];I=a+(u<<4)|0;U=+h[I>>3];G=a+(u<<4)+8|0;l=+h[G>>3];$=M+U;H=M-U;U=q+l;M=q-l;l=z+o;q=z-o;o=N+ea;z=N-ea;ea=L+da;N=L-da;da=ca+m;L=ca-m;h[a>>3]=ea+(l+(ba+$));h[j>>3]=da+(o+(aa+U));m=ba+$*.62348980185-l*.22252093395-ea*.9009688679;ca=aa+U*.62348980185-o*.22252093395-da*.9009688679;j=(e|0)==1;if(j){fa=M*-.78183148246-z*.97492791218-L*.43388373911;ga=H*-.78183148246-q*.97492791218-N*.43388373911}else{fa=L*.43388373911+(z*.97492791218+M*.78183148246);ga=N*.43388373911+(q*.97492791218+H*.78183148246)}h[p>>3]=m-fa;h[s>>3]=ca+ga;h[I>>3]=m+fa;h[G>>3]=ca-ga;ga=ea*.62348980185+(ba-$*.22252093395-l*.9009688679);ca=da*.62348980185+(aa-U*.22252093395-o*.9009688679);fa=H*.97492791218;m=q*.43388373911;if(j){ha=L*.78183148246+(z*.43388373911-M*.97492791218);ia=N*.78183148246+(m-fa)}else{ha=M*.97492791218-z*.43388373911-L*.78183148246;ia=fa-m-N*.78183148246}h[K>>3]=ga-ha;h[r>>3]=ca+ia;h[w>>3]=ga+ha;h[y>>3]=ca-ia;ia=l*.62348980185+(ba-$*.9009688679)-ea*.22252093395;ea=o*.62348980185+(aa-U*.9009688679)-da*.22252093395;da=H*.43388373911;H=q*.78183148246;if(j){ja=z*.78183148246-M*.43388373911-L*.97492791218;ka=H-da-N*.97492791218}else{ja=L*.97492791218+(M*.43388373911-z*.78183148246);ka=N*.97492791218+(da-H)}h[C>>3]=ia-ja;h[O>>3]=ea+ka;h[X>>3]=ia+ja;h[A>>3]=ea-ka;if((f|0)<=13)return;A=E+-1|0;X=1;do{O=X*6|0;C=A+O|0;ka=+h[d+272+(C<<4)>>3];ea=+h[d+272+(C<<4)+8>>3];C=O+E|0;ja=+h[d+272+(C<<4)>>3];ia=+h[d+272+(C<<4)+8>>3];O=C+1|0;H=+h[d+272+(O<<4)>>3];da=+h[d+272+(O<<4)+8>>3];O=C+2|0;N=+h[d+272+(O<<4)>>3];z=+h[d+272+(O<<4)+8>>3];O=C+3|0;M=+h[d+272+(O<<4)>>3];L=+h[d+272+(O<<4)+8>>3];O=C+4|0;q=+h[d+272+(O<<4)>>3];U=+h[d+272+(O<<4)+8>>3];O=X+E|0;C=O+E|0;y=C+E|0;w=y+E|0;r=w+E|0;K=r+E|0;G=a+(X<<4)|0;aa=+h[G>>3];I=a+(X<<4)+8|0;o=+h[I>>3];s=a+(O<<4)|0;$=+h[s>>3];p=a+(O<<4)+8|0;ba=+h[p>>3];l=ka*$-ea*ba;ca=ea*$+ka*ba;O=a+(C<<4)|0;ba=+h[O>>3];u=a+(C<<4)+8|0;ka=+h[u>>3];$=ja*ba-ia*ka;ea=ia*ba+ja*ka;C=a+(y<<4)|0;ka=+h[C>>3];n=a+(y<<4)+8|0;ja=+h[n>>3];ba=H*ka-da*ja;ia=da*ka+H*ja;y=a+(w<<4)|0;ja=+h[y>>3];la=a+(w<<4)+8|0;H=+h[la>>3];ka=N*ja-z*H;da=z*ja+N*H;w=a+(r<<4)|0;H=+h[w>>3];ma=a+(r<<4)+8|0;N=+h[ma>>3];ja=M*H-L*N;z=L*H+M*N;r=a+(K<<4)|0;N=+h[r>>3];na=a+(K<<4)+8|0;M=+h[na>>3];H=q*N-U*M;L=U*N+q*M;M=l+H;q=l-H;H=ca+L;l=ca-L;L=$+ja;ca=$-ja;ja=ea+z;$=ea-z;z=ba+ka;ea=ba-ka;ka=ia+da;ba=ia-da;h[G>>3]=z+(L+(aa+M));h[I>>3]=ka+(ja+(o+H));da=aa+M*.62348980185-L*.22252093395-z*.9009688679;ia=o+H*.62348980185-ja*.22252093395-ka*.9009688679;if(j){oa=l*-.78183148246-$*.97492791218-ba*.43388373911;pa=q*-.78183148246-ca*.97492791218-ea*.43388373911}else{oa=ba*.43388373911+($*.97492791218+l*.78183148246);pa=ea*.43388373911+(ca*.97492791218+q*.78183148246)}h[s>>3]=da-oa;h[p>>3]=ia+pa;h[r>>3]=da+oa;h[na>>3]=ia-pa;ia=z*.62348980185+(aa-M*.22252093395-L*.9009688679);da=ka*.62348980185+(o-H*.22252093395-ja*.9009688679);N=q*.97492791218;U=ca*.43388373911;if(j){qa=ba*.78183148246+($*.43388373911-l*.97492791218);ra=ea*.78183148246+(U-N)}else{qa=l*.97492791218-$*.43388373911-ba*.78183148246;ra=N-U-ea*.78183148246}h[O>>3]=ia-qa;h[u>>3]=da+ra;h[w>>3]=ia+qa;h[ma>>3]=da-ra;da=L*.62348980185+(aa-M*.9009688679)-z*.22252093395;z=ja*.62348980185+(o-H*.9009688679)-ka*.22252093395;ka=q*.43388373911;q=ca*.78183148246;if(j){sa=$*.78183148246-l*.43388373911-ba*.97492791218;ta=q-ka-ea*.97492791218}else{sa=ba*.97492791218+(l*.43388373911-$*.78183148246);ta=ea*.97492791218+(ka-q)}h[C>>3]=da-sa;h[n>>3]=z+ta;h[y>>3]=da+sa;h[la>>3]=z-ta;X=X+1|0}while((X|0)<(E|0));return}case 8:{E=(f|0)/8|0;X=g<<3;j=i+1|0;Ta(a,b,d,e,E,X,j);Ta(a+(E<<4)|0,b+(g<<4)|0,d,e,E,X,j);Ta(a+(E<<1<<4)|0,b+(g<<1<<4)|0,d,e,E,X,j);Ta(a+(E*3<<4)|0,b+(g*3<<4)|0,d,e,E,X,j);Ta(a+(E<<2<<4)|0,b+(g<<2<<4)|0,d,e,E,X,j);Ta(a+(E*5<<4)|0,b+(g*5<<4)|0,d,e,E,X,j);Ta(a+(E*6<<4)|0,b+(g*6<<4)|0,d,e,E,X,j);Ta(a+(E*7<<4)|0,b+(g*7<<4)|0,d,e,E,X,j);if((f|0)<=7)return;j=E+-1|0;X=(e|0)==1;A=0;do{la=A*7|0;y=j+la|0;ta=+h[d+272+(y<<4)>>3];sa=+h[d+272+(y<<4)+8>>3];y=la+E|0;ra=+h[d+272+(y<<4)>>3];qa=+h[d+272+(y<<4)+8>>3];la=y+1|0;pa=+h[d+272+(la<<4)>>3];oa=+h[d+272+(la<<4)+8>>3];la=y+2|0;z=+h[d+272+(la<<4)>>3];da=+h[d+272+(la<<4)+8>>3];la=y+3|0;q=+h[d+272+(la<<4)>>3];ka=+h[d+272+(la<<4)+8>>3];la=y+4|0;ea=+h[d+272+(la<<4)>>3];$=+h[d+272+(la<<4)+8>>3];la=y+5|0;l=+h[d+272+(la<<4)>>3];ba=+h[d+272+(la<<4)+8>>3];la=A+E|0;y=la+E|0;n=y+E|0;C=n+E|0;ma=C+E|0;w=ma+E|0;u=w+E|0;O=a+(A<<4)|0;ca=+h[O>>3];na=a+(A<<4)+8|0;H=+h[na>>3];r=a+(la<<4)|0;o=+h[r>>3];p=a+(la<<4)+8|0;ja=+h[p>>3];M=ta*o-sa*ja;aa=sa*o+ta*ja;la=a+(y<<4)|0;ja=+h[la>>3];s=a+(y<<4)+8|0;ta=+h[s>>3];o=ra*ja-qa*ta;sa=qa*ja+ra*ta;y=a+(n<<4)|0;ta=+h[y>>3];I=a+(n<<4)+8|0;ra=+h[I>>3];ja=pa*ta-oa*ra;qa=oa*ta+pa*ra;n=a+(C<<4)|0;ra=+h[n>>3];G=a+(C<<4)+8|0;pa=+h[G>>3];ta=z*ra-da*pa;oa=da*ra+z*pa;C=a+(ma<<4)|0;pa=+h[C>>3];K=a+(ma<<4)+8|0;z=+h[K>>3];ra=q*pa-ka*z;da=ka*pa+q*z;ma=a+(w<<4)|0;z=+h[ma>>3];ua=a+(w<<4)+8|0;q=+h[ua>>3];pa=ea*z-$*q;ka=$*z+ea*q;w=a+(u<<4)|0;q=+h[w>>3];va=a+(u<<4)+8|0;ea=+h[va>>3];z=l*q-ba*ea;$=ba*q+l*ea;ea=ca+ta;l=ca-ta;ta=H+oa;ca=H-oa;oa=M+z;H=M-z;z=aa+$;M=aa-$;$=ja+ra;aa=ja-ra;ra=qa-da;ja=qa+da;da=o+pa;qa=o-pa;pa=sa-ka;o=sa+ka;h[O>>3]=da+($+(ea+oa));h[na>>3]=o+(ja+(ta+z));h[n>>3]=da+(ea-oa-$);h[G>>3]=o+(ta-z-ja);ka=aa+H;sa=ra+M;q=(oa-$)*.7071067811865476;$=l+q;oa=(z-ja)*.7071067811865476;ja=ca+oa;if(X){wa=sa*-.7071067811865476-pa;xa=ka*-.7071067811865476-qa}else{wa=pa+sa*.7071067811865476;xa=qa+ka*.7071067811865476}h[r>>3]=$-wa;h[p>>3]=ja+xa;h[w>>3]=$+wa;h[va>>3]=ja-xa;ja=ea-da;da=ta-o;o=X?aa-H:H-aa;aa=X?ra-M:M-ra;h[la>>3]=ja-aa;h[s>>3]=da+o;h[ma>>3]=ja+aa;h[ua>>3]=da-o;o=l-q;q=ca-oa;oa=ka*.7071067811865476;if(X){ya=pa-sa*.7071067811865476;za=qa-oa}else{ya=sa*.7071067811865476-pa;za=oa-qa}h[y>>3]=o-ya;h[I>>3]=q+za;h[C>>3]=o+ya;h[K>>3]=q-za;A=A+1|0}while((A|0)<(E|0));return}default:{E=k+-1|0;A=E<<3;X=Kb(A)|0;j=Kb(A)|0;K=Kb(A)|0;C=Kb(A)|0;A=k<<3;I=Kb(A)|0;y=Kb(A)|0;A=(f|0)/(k|0)|0;f=Z(k,g)|0;if((k|0)>0){ua=i+1|0;i=0;do{Ta(a+((Z(i,A)|0)<<4)|0,b+((Z(i,g)|0)<<4)|0,d,e,A,f,ua);i=i+1|0}while((i|0)!=(k|0))}i=(E|0)/2|0;ua=(E|0)>1;if(ua){za=+(k|0);f=1;while(1){ya=+(f|0)*6.283185307179586/za;g=f+-1|0;h[K+(g<<3)>>3]=+P(+ya);h[C+(g<<3)>>3]=+Q(+ya);if((f|0)<(i|0))f=f+1|0;else break}if(ua){f=i+-1|0;g=0;do{b=f-g|0;ma=g+i|0;h[C+(ma<<3)>>3]=-+h[C+(b<<3)>>3];h[K+(ma<<3)>>3]=+h[K+(b<<3)>>3];g=g+1|0}while((g|0)<(i|0))}}if((A|0)>0){g=A+-1|0;f=(k|0)>1;za=+(e|0);e=0;do{b=a+(e<<4)|0;h[I>>3]=+h[b>>3];ma=a+(e<<4)+8|0;h[y>>3]=+h[ma>>3];if(f){s=0;la=g+(Z(e,E)|0)|0;while(1){ya=+h[d+272+(la<<4)>>3];xa=+h[d+272+(la<<4)+8>>3];s=s+1|0;va=(Z(s,A)|0)+e|0;wa=+h[a+(va<<4)>>3];q=+h[a+(va<<4)+8>>3];h[I+(s<<3)>>3]=wa*ya-xa*q;h[y+(s<<3)>>3]=q*ya+wa*xa;if((s|0)==(E|0))break;else la=la+1|0}}if(ua){la=0;do{s=la;la=la+1|0;xa=+h[I+(la<<3)>>3];va=E-s|0;wa=+h[I+(va<<3)>>3];h[X+(s<<3)>>3]=xa+wa;ya=+h[y+(la<<3)>>3];q=+h[y+(va<<3)>>3];va=s+i|0;h[j+(va<<3)>>3]=ya-q;h[j+(s<<3)>>3]=ya+q;h[X+(va<<3)>>3]=xa-wa}while((la|0)<(i|0));wa=+h[I>>3];xa=+h[y>>3];if(ua){la=0;q=xa;ya=wa;while(1){o=ya+ +h[X+(la<<3)>>3];qa=q+ +h[j+(la<<3)>>3];la=la+1|0;if((la|0)>=(i|0)){Aa=o;Ba=qa;break}else{q=qa;ya=o}}h[b>>3]=Aa;h[ma>>3]=Ba;if(ua){la=0;do{va=la;la=la+1|0;ya=xa;q=wa;o=0.0;qa=0.0;s=0;while(1){w=s;s=s+1|0;p=Z(s,la)|0;while(1)if((p|0)<(k|0)){Ca=p;break}else p=p-k|0;p=Ca+-1|0;oa=+h[K+(p<<3)>>3];pa=q+oa*+h[X+(w<<3)>>3];sa=ya+oa*+h[j+(w<<3)>>3];oa=+h[C+(p<<3)>>3];p=w+i|0;ka=qa-oa*+h[X+(p<<3)>>3];ca=o-oa*+h[j+(p<<3)>>3];if((s|0)>=(i|0)){Da=pa;Ea=sa;Fa=ka;Ga=ca;break}else{ya=sa;q=pa;o=ca;qa=ka}}qa=za*Fa;o=za*Ga;s=(Z(la,A)|0)+e|0;h[a+(s<<4)>>3]=Da-o;h[a+(s<<4)+8>>3]=Ea+qa;s=(Z(E-va|0,A)|0)+e|0;h[a+(s<<4)>>3]=Da+o;h[a+(s<<4)+8>>3]=Ea-qa}while((la|0)<(i|0))}}else{Ha=xa;Ia=wa;Ja=95}}else{Ha=+h[y>>3];Ia=+h[I>>3];Ja=95}if((Ja|0)==95){Ja=0;h[b>>3]=Ia;h[ma>>3]=Ha}e=e+1|0}while((e|0)!=(A|0))}Lb(X);Lb(j);Lb(K);Lb(C);Lb(I);Lb(y);return}}}}function Ua(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,i=0.0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0.0,u=0,v=0,w=0,x=0.0,y=0.0,z=0,A=0,B=0,C=0;g=d+268|0;c[g>>2]=0;i=+(f|0);j=~~+Eb(+Y(+(+Fb(i)/.3010299956639812)));k=d+4|0;l=c[k>>2]|0;m=c[d>>2]|0;n=f<<1;o=j<<((j|0)<(n+-2|0)&1);c[d>>2]=o;j=o<<4;p=Kb(j)|0;q=Kb(j)|0;r=Kb(j)|0;s=Kb(j)|0;j=Kb(f<<4)|0;t=3.141592653589793/i;u=(f|0)>0;if(u){v=0;w=0;while(1){i=t*+(w|0);x=+P(+i);h[j+(v<<4)>>3]=x;y=+Q(+i);h[j+(v<<4)+8>>3]=y;h[r+(v<<4)>>3]=x;h[r+(v<<4)+8>>3]=y;z=(v<<1|1)+w|0;while(1)if((z|0)>(n|0))z=z-n|0;else{A=z;break}z=v+1|0;if((z|0)==(f|0))break;else{v=z;w=A}}}A=o-f|0;w=A+1|0;if((A|0)>=(f|0)){A=f;do{v=r+(A<<4)|0;A=A+1|0;c[v>>2]=0;c[v+4>>2]=0;c[v+8>>2]=0;c[v+12>>2]=0}while((A|0)<(w|0))}if((w|0)<(o|0)){A=w;do{w=o-A|0;h[r+(A<<4)>>3]=+h[j+(w<<4)>>3];h[r+(A<<4)+8>>3]=+h[j+(w<<4)+8>>3];A=A+1|0}while((A|0)!=(o|0))}t=1.0/+(o|0);A=(o|0)>0;if(A){w=0;do{v=r+(w<<4)+8|0;h[v>>3]=t*+h[v>>3];v=r+(w<<4)|0;h[v>>3]=t*+h[v>>3];w=w+1|0}while((w|0)!=(o|0))}Ta(q,r,d,l,o,1,0);w=(e|0)==1;if(w){if(u){v=0;do{t=+h[a+(v<<4)>>3];y=+h[j+(v<<4)>>3];x=+h[a+(v<<4)+8>>3];i=+h[j+(v<<4)+8>>3];h[r+(v<<4)>>3]=t*y+x*i;h[r+(v<<4)+8>>3]=x*y-t*i;v=v+1|0}while((v|0)!=(f|0))}}else if(u){v=0;do{i=+h[a+(v<<4)>>3];t=+h[j+(v<<4)>>3];y=+h[a+(v<<4)+8>>3];x=+h[j+(v<<4)+8>>3];h[r+(v<<4)>>3]=i*t-y*x;h[r+(v<<4)+8>>3]=i*x+y*t;v=v+1|0}while((v|0)!=(f|0))}if((o|0)>(f|0)){v=f;do{a=r+(v<<4)|0;v=v+1|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;c[a+12>>2]=0}while((v|0)!=(o|0))}v=c[g>>2]|0;if((v|0)==1)Ua(r,p,d,c[k>>2]|0,c[d>>2]|0);else if(!v)Ta(p,r,d,c[k>>2]|0,c[d>>2]|0,1,0);if(w){if(A){v=0;do{a=p+(v<<4)|0;t=+h[a>>3];y=+h[q+(v<<4)>>3];n=p+(v<<4)+8|0;x=+h[n>>3];i=+h[q+(v<<4)+8>>3];h[n>>3]=y*x+t*i;h[a>>3]=t*y-x*i;v=v+1|0}while((v|0)!=(o|0));B=24}}else if(A){v=0;do{a=p+(v<<4)|0;i=+h[a>>3];x=+h[q+(v<<4)>>3];n=p+(v<<4)+8|0;y=+h[n>>3];t=+h[q+(v<<4)+8>>3];h[n>>3]=x*y-i*t;h[a>>3]=i*x+y*t;v=v+1|0}while((v|0)!=(o|0));B=24}if((B|0)==24?A:0){B=0;do{v=d+272+(B<<4)+8|0;h[v>>3]=-+h[v>>3];B=B+1|0}while((B|0)!=(o|0))}B=0-e|0;c[k>>2]=B;e=c[g>>2]|0;if((e|0)==1)Ua(p,s,d,B,c[d>>2]|0);else if(!e)Ta(s,p,d,B,c[d>>2]|0,1,0);if(w){if(u){w=0;do{t=+h[s+(w<<4)>>3];y=+h[j+(w<<4)>>3];x=+h[s+(w<<4)+8>>3];i=+h[j+(w<<4)+8>>3];h[b+(w<<4)>>3]=t*y+x*i;h[b+(w<<4)+8>>3]=x*y-t*i;w=w+1|0}while((w|0)!=(f|0))}}else if(u){u=0;do{i=+h[s+(u<<4)>>3];t=+h[j+(u<<4)>>3];y=+h[s+(u<<4)+8>>3];x=+h[j+(u<<4)+8>>3];h[b+(u<<4)>>3]=i*t-y*x;h[b+(u<<4)+8>>3]=i*x+y*t;u=u+1|0}while((u|0)!=(f|0))}c[k>>2]=l;c[d>>2]=m;c[g>>2]=1;if(A)C=0;else{Lb(p);Lb(s);Lb(r);Lb(q);Lb(j);return}do{A=d+272+(C<<4)+8|0;h[A>>3]=-+h[A>>3];C=C+1|0}while((C|0)!=(o|0));Lb(p);Lb(s);Lb(r);Lb(q);Lb(j);return}function Va(a,b){a=a|0;b=b|0;var d=0,e=0,f=0.0,g=0.0;d=(a|0)/2|0;e=Kb((d<<4)+24|0)|0;c[e>>2]=Pa(d,b)|0;if((a|0)<=1)return e|0;f=+(a|0);a=e+8|0;b=0;do{g=+(b|0)*6.283185307179586/f;h[a+(b<<4)>>3]=+P(+g);h[a+(b<<4)+8>>3]=+Q(+g);b=b+1|0}while((b|0)<(d|0));return e|0}function Wa(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,i=0,j=0,k=0,l=0,m=0.0,n=0.0,o=0,p=0.0,q=0.0,r=0.0,s=0.0,t=0.0,u=0.0,v=0.0,w=0;e=c[a>>2]|0;f=c[e>>2]|0;g=f<<1;i=f<<4;j=Kb(i)|0;k=Kb(i)|0;if((f|0)>0){i=0;do{l=i<<1;h[j+(i<<4)>>3]=+h[b+(l<<3)>>3];h[j+(i<<4)+8>>3]=+h[b+((l|1)<<3)>>3];i=i+1|0}while((i|0)!=(f|0))}Sa(e,j,k);m=+h[k>>3];n=+h[k+8>>3];h[d>>3]=m+n;h[d+8>>3]=0.0;e=(f|0)>1;if(e)o=1;else{h[d+(f<<4)>>3]=m-n;h[d+(f<<4)+8>>3]=0.0;Lb(j);Lb(k);return}do{p=+h[k+(o<<4)+8>>3];i=f-o|0;q=+h[k+(i<<4)+8>>3];r=p+q;s=+h[k+(i<<4)>>3];t=+h[k+(o<<4)>>3];u=s-t;i=a+8+(o<<4)|0;v=+h[a+8+(o<<4)+8>>3];h[d+(o<<4)>>3]=(s+t+r*+h[i>>3]+u*v)*.5;h[d+(o<<4)+8>>3]=(p-q+u*+h[i>>3]-r*v)*.5;o=o+1|0}while((o|0)!=(f|0));h[d+(f<<4)>>3]=m-n;h[d+(f<<4)+8>>3]=0.0;if(e)w=1;else{Lb(j);Lb(k);return}do{e=g-w|0;h[d+(e<<4)>>3]=+h[d+(w<<4)>>3];h[d+(e<<4)+8>>3]=-+h[d+(w<<4)+8>>3];w=w+1|0}while((w|0)!=(f|0));Lb(j);Lb(k);return}function Xa(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,i=0,j=0,k=0,l=0.0,m=0,n=0.0,o=0.0,p=0.0,q=0.0,r=0.0,s=0.0,t=0.0,u=0;e=c[a>>2]|0;f=c[e>>2]|0;g=f<<4;i=Kb(g)|0;j=Kb(g)|0;g=(f|0)>0;if(g)k=0;else{Sa(e,i,j);Lb(i);Lb(j);return}do{l=+h[b+(k<<4)+8>>3];m=f-k|0;n=+h[b+(m<<4)+8>>3];o=-l-n;p=+h[b+(m<<4)>>3];q=+h[b+(k<<4)>>3];r=q-p;s=+h[a+8+(k<<4)>>3];t=+h[a+8+(k<<4)+8>>3];h[i+(k<<4)>>3]=p+q+o*s-r*t;h[i+(k<<4)+8>>3]=l-n+r*s+o*t;k=k+1|0}while((k|0)!=(f|0));Sa(e,i,j);if(g)u=0;else{Lb(i);Lb(j);return}do{g=u<<1;h[d+(g<<3)>>3]=+h[j+(u<<4)>>3];h[d+((g|1)<<3)>>3]=+h[j+(u<<4)+8>>3];u=u+1|0}while((u|0)!=(f|0));Lb(i);Lb(j);return}function Ya(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;d=Kb(20)|0;e=a+-1+b|0;while(1){if(!((e|0)%7|0)){f=e;while(1){g=(f|0)/7|0;if(!((g|0)%7|0))f=g;else{h=g;break}}}else h=e;if(!((h|0)%3|0)){f=h;while(1){g=(f|0)/3|0;if(!((g|0)%3|0))f=g;else{i=g;break}}}else i=h;if(!((i|0)%5|0)){f=i;while(1){g=(f|0)/5|0;if(!((g|0)%5|0))f=g;else{j=g;break}}}else j=i;if(!(j&1)){f=j;while(1){g=(f|0)/2|0;if(!(g&1))f=g;else{k=g;break}}}else k=j;if((e&1|0)!=0|(k|0)!=1)e=e+1|0;else{l=e;break}}c[d+16>>2]=l;c[d+8>>2]=a;c[d+12>>2]=b;c[d>>2]=Va(l,1)|0;c[d+4>>2]=Va(l,-1)|0;return d|0}function Za(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,i=0,j=0,k=0,l=0.0,m=0,n=0.0,o=0.0,p=0;f=b+-1|0;g=f+d|0;if((b|0)<(d|0)){if((b|0)>0){i=1;j=0;while(1){k=e+(j<<3)|0;h[k>>3]=0.0;l=0.0;m=0;do{l=l+ +h[c+(m<<3)>>3]*+h[a+(j-m<<3)>>3];h[k>>3]=l;m=m+1|0}while((m|0)!=(i|0));j=j+1|0;if((j|0)==(b|0))break;else i=i+1|0}}if((g|0)<=(b|0))return;l=+(d|0);i=d+-1|0;j=0;m=b;while(1){k=e+(m<<3)|0;h[k>>3]=0.0;j=j+1|0;n=+(j+b|0);o=n>3]*+h[a+(m-p<<3)>>3];h[k>>3]=n;p=p+1|0}while(+(p|0)0){m=1;i=0;while(1){j=e+(i<<3)|0;h[j>>3]=0.0;l=0.0;p=0;do{l=l+ +h[a+(p<<3)>>3]*+h[c+(i-p<<3)>>3];h[j>>3]=l;p=p+1|0}while((p|0)!=(m|0));i=i+1|0;if((i|0)==(d|0))break;else m=m+1|0}}if((g|0)<=(d|0))return;l=+(b|0);b=0;g=d;while(1){m=e+(g<<3)|0;h[m>>3]=0.0;b=b+1|0;o=+(b+d|0);n=o>3]*+h[c+(g-i<<3)>>3];h[m>>3]=o;i=i+1|0}while(+(i|0)>2]|0;g=c[a+8>>2]|0;i=c[a+12>>2]|0;j=g+-1+i|0;k=f<<4;l=Kb(k)|0;m=Kb(k)|0;n=Kb(k)|0;o=Kb(k)|0;p=Kb(k)|0;q=Kb(k)|0;k=(f|0)>0;if(k){r=0;do{if((r|0)<(g|0))s=+h[b+(r<<3)>>3];else s=0.0;h[l+(r<<3)>>3]=s;if((r|0)<(i|0))t=+h[d+(r<<3)>>3];else t=0.0;h[m+(r<<3)>>3]=t;r=r+1|0}while((r|0)!=(f|0));Wa(c[a>>2]|0,l,o);Wa(c[a>>2]|0,m,p);if(k){k=0;do{t=+h[o+(k<<4)>>3];s=+h[p+(k<<4)>>3];u=+h[o+(k<<4)+8>>3];v=+h[p+(k<<4)+8>>3];h[n+(k<<4)>>3]=t*s-u*v;h[n+(k<<4)+8>>3]=u*s+t*v;k=k+1|0}while((k|0)!=(f|0))}}else{Wa(c[a>>2]|0,l,o);Wa(c[a>>2]|0,m,p)}Xa(c[a+4>>2]|0,n,q);if((j|0)<=0){Lb(l);Lb(m);Lb(n);Lb(o);Lb(p);Lb(q);return}v=+(f|0);f=g+i+-1|0;i=0;do{h[e+(i<<3)>>3]=+h[q+(i<<3)>>3]/v;i=i+1|0}while((i|0)!=(f|0));Lb(l);Lb(m);Lb(n);Lb(o);Lb(p);Lb(q);return}function $a(a){a=a|0;Lb(a);return}function ab(a){a=a|0;var b=0;do if((Jb(a,8)|0)!=0?(Jb(a,16)|0)!=0:0)if(Jb(a,24)|0)if(Jb(a,32)|0)if(Jb(a,40)|0)if(Jb(a,48)|0)if(Jb(a,56)|0)if(Jb(a,64)|0)if(Jb(a,72)|0)if(Jb(a,80)|0)if(Jb(a,88)|0)if(Jb(a,96)|0)if(Jb(a,104)|0)if(Jb(a,112)|0)if(Jb(a,120)|0)if(Jb(a,128)|0)if(Jb(a,136)|0)if(Jb(a,144)|0)if(!(Jb(a,152)|0))b=10;else{if(!(Jb(a,160)|0)){b=6;break}if(!(Jb(a,168)|0)){b=10;break}if(!(Jb(a,176)|0)){b=14;break}if(!(Jb(a,184)|0)){b=18;break}if(!(Jb(a,192)|0)){b=4;break}if(!(Jb(a,200)|0)){b=8;break}if(!(Jb(a,208)|0)){b=12;break}if(!(Jb(a,216)|0)){b=16;break}if(!(Jb(a,224)|0)){b=20;break}if(!(Jb(a,232)|0)){b=10;break}if(!(Jb(a,240)|0)){b=12;break}if(!(Jb(a,248)|0)){b=18;break}if(!(Jb(a,256)|0)){b=6;break}if(!(Jb(a,264)|0)){b=12;break}if(!(Jb(a,272)|0)){b=18;break}if(!(Jb(a,280)|0)){b=24;break}if(!(Jb(a,288)|0)){b=30;break}if(!(Jb(a,296)|0)){b=4;break}if(!(Jb(a,304)|0)){b=6;break}if(!(Jb(a,312)|0)){b=8;break}if(!(Jb(a,320)|0)){b=10;break}if(!(Jb(a,328)|0)){b=12;break}if(!(Jb(a,336)|0)){b=14;break}if(!(Jb(a,344)|0)){b=16;break}if(!(Jb(a,352)|0)){b=18;break}if(!(Jb(a,360)|0)){b=20;break}oa(368)|0;b=-1}else b=6;else b=2;else b=30;else b=28;else b=22;else b=26;else b=24;else b=20;else b=18;else b=16;else b=14;else b=12;else b=10;else b=8;else b=6;else b=4;else b=2;while(0);return b|0}function bb(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,j=0,k=0,l=0,m=0,n=0,o=0;g=i;i=i+320|0;j=g+160|0;k=g;if((Jb(a,8)|0)!=0?(Jb(a,16)|0)!=0:0){if(!(Jb(a,24)|0)){h[b>>3]=-.12940952255092145;h[d>>3]=-.48296291314469025;h[e>>3]=.48296291314469025;h[f>>3]=-.12940952255092145;h[b+8>>3]=.22414386804185735;h[d+8>>3]=.836516303737469;h[e+8>>3]=.836516303737469;h[f+8>>3]=-.22414386804185735;h[b+16>>3]=.836516303737469;h[d+16>>3]=-.22414386804185735;h[e+16>>3]=.22414386804185735;h[f+16>>3]=.836516303737469;h[b+24>>3]=.48296291314469025;h[d+24>>3]=-.12940952255092145;h[e+24>>3]=-.12940952255092145;h[f+24>>3]=-.48296291314469025;l=4;i=g;return l|0}if(!(Jb(a,32)|0)){h[b>>3]=.035226291882100656;h[d>>3]=-.3326705529509569;h[e>>3]=.3326705529509569;h[f>>3]=.035226291882100656;h[b+8>>3]=-.08544127388224149;h[d+8>>3]=.8068915093133388;h[e+8>>3]=.8068915093133388;h[f+8>>3]=.08544127388224149;h[b+16>>3]=-.13501102001039084;h[d+16>>3]=-.4598775021193313;h[e+16>>3]=.4598775021193313;h[f+16>>3]=-.13501102001039084;h[b+24>>3]=.4598775021193313;h[d+24>>3]=-.13501102001039084;h[e+24>>3]=-.13501102001039084;h[f+24>>3]=-.4598775021193313;h[b+32>>3]=.8068915093133388;h[d+32>>3]=.08544127388224149;h[e+32>>3]=-.08544127388224149;h[f+32>>3]=.8068915093133388;h[b+40>>3]=.3326705529509569;h[d+40>>3]=.035226291882100656;h[e+40>>3]=.035226291882100656;h[f+40>>3]=-.3326705529509569;l=6;i=g;return l|0}if(!(Jb(a,40)|0)){h[b>>3]=-.010597401784997278;h[d>>3]=-.23037781330885523;h[e>>3]=.23037781330885523;h[f>>3]=-.010597401784997278;h[b+8>>3]=.032883011666982945;h[d+8>>3]=.7148465705525415;h[e+8>>3]=.7148465705525415;h[f+8>>3]=-.032883011666982945;h[b+16>>3]=.030841381835986965;h[d+16>>3]=-.6308807679295904;h[e+16>>3]=.6308807679295904;h[f+16>>3]=.030841381835986965;h[b+24>>3]=-.18703481171888114;h[d+24>>3]=-.02798376941698385;h[e+24>>3]=-.02798376941698385;h[f+24>>3]=.18703481171888114;h[b+32>>3]=-.02798376941698385;h[d+32>>3]=.18703481171888114;h[e+32>>3]=-.18703481171888114;h[f+32>>3]=-.02798376941698385;h[b+40>>3]=.6308807679295904;h[d+40>>3]=.030841381835986965;h[e+40>>3]=.030841381835986965;h[f+40>>3]=-.6308807679295904;h[b+48>>3]=.7148465705525415;h[d+48>>3]=-.032883011666982945;h[e+48>>3]=.032883011666982945;h[f+48>>3]=.7148465705525415;h[b+56>>3]=.23037781330885523;h[d+56>>3]=-.010597401784997278;h[e+56>>3]=-.010597401784997278;h[f+56>>3]=-.23037781330885523;l=8;i=g;return l|0}if(!(Jb(a,48)|0)){m=0;do{h[b+(m<<3)>>3]=+h[400+(m<<3)>>3];h[d+(m<<3)>>3]=+h[480+(m<<3)>>3];h[e+(m<<3)>>3]=+h[560+(m<<3)>>3];h[f+(m<<3)>>3]=+h[640+(m<<3)>>3];m=m+1|0}while((m|0)!=10);l=10;i=g;return l|0}if(!(Jb(a,56)|0)){m=0;do{h[b+(m<<3)>>3]=+h[720+(m<<3)>>3];h[d+(m<<3)>>3]=+h[816+(m<<3)>>3];h[e+(m<<3)>>3]=+h[912+(m<<3)>>3];h[f+(m<<3)>>3]=+h[1008+(m<<3)>>3];m=m+1|0}while((m|0)!=12);l=12;i=g;return l|0}if(!(Jb(a,64)|0)){m=0;do{h[b+(m<<3)>>3]=+h[1104+(m<<3)>>3];h[d+(m<<3)>>3]=+h[1216+(m<<3)>>3];h[e+(m<<3)>>3]=+h[1328+(m<<3)>>3];h[f+(m<<3)>>3]=+h[1440+(m<<3)>>3];m=m+1|0}while((m|0)!=14);l=14;i=g;return l|0}if(!(Jb(a,72)|0)){m=0;do{h[b+(m<<3)>>3]=+h[1552+(m<<3)>>3];h[d+(m<<3)>>3]=+h[1680+(m<<3)>>3];h[e+(m<<3)>>3]=+h[1808+(m<<3)>>3];h[f+(m<<3)>>3]=+h[1936+(m<<3)>>3];m=m+1|0}while((m|0)!=16);l=16;i=g;return l|0}if(!(Jb(a,80)|0)){m=0;do{h[b+(m<<3)>>3]=+h[2064+(m<<3)>>3];h[d+(m<<3)>>3]=+h[2208+(m<<3)>>3];h[e+(m<<3)>>3]=+h[2352+(m<<3)>>3];h[f+(m<<3)>>3]=+h[2496+(m<<3)>>3];m=m+1|0}while((m|0)!=18);l=18;i=g;return l|0}if(!(Jb(a,88)|0)){m=0;do{h[b+(m<<3)>>3]=+h[2640+(m<<3)>>3];h[d+(m<<3)>>3]=+h[2800+(m<<3)>>3];h[e+(m<<3)>>3]=+h[2960+(m<<3)>>3];h[f+(m<<3)>>3]=+h[3120+(m<<3)>>3];m=m+1|0}while((m|0)!=20);l=20;i=g;return l|0}if(!(Jb(a,96)|0)){m=0;do{h[b+(m<<3)>>3]=+h[3280+(m<<3)>>3];h[d+(m<<3)>>3]=+h[3472+(m<<3)>>3];h[e+(m<<3)>>3]=+h[3664+(m<<3)>>3];h[f+(m<<3)>>3]=+h[3856+(m<<3)>>3];m=m+1|0}while((m|0)!=24);l=24;i=g;return l|0}if(!(Jb(a,104)|0)){m=0;do{h[b+(m<<3)>>3]=+h[4048+(m<<3)>>3];h[d+(m<<3)>>3]=+h[4256+(m<<3)>>3];h[e+(m<<3)>>3]=+h[4464+(m<<3)>>3];h[f+(m<<3)>>3]=+h[4672+(m<<3)>>3];m=m+1|0}while((m|0)!=26);l=26;i=g;return l|0}if(!(Jb(a,112)|0)){m=0;do{h[b+(m<<3)>>3]=+h[4880+(m<<3)>>3];h[d+(m<<3)>>3]=+h[5056+(m<<3)>>3];h[e+(m<<3)>>3]=+h[5232+(m<<3)>>3];h[f+(m<<3)>>3]=+h[5408+(m<<3)>>3];m=m+1|0}while((m|0)!=22);l=22;i=g;return l|0}if(!(Jb(a,120)|0)){m=0;do{h[b+(m<<3)>>3]=+h[5584+(m<<3)>>3];h[d+(m<<3)>>3]=+h[5808+(m<<3)>>3];h[e+(m<<3)>>3]=+h[6032+(m<<3)>>3];h[f+(m<<3)>>3]=+h[6256+(m<<3)>>3];m=m+1|0}while((m|0)!=28);l=28;i=g;return l|0}if(!(Jb(a,128)|0)){m=0;do{h[b+(m<<3)>>3]=+h[6480+(m<<3)>>3];h[d+(m<<3)>>3]=+h[6720+(m<<3)>>3];h[e+(m<<3)>>3]=+h[6960+(m<<3)>>3];h[f+(m<<3)>>3]=+h[7200+(m<<3)>>3];m=m+1|0}while((m|0)!=30);l=30;i=g;return l|0}if(!(Jb(a,136)|0)){h[b>>3]=.7071067811865476;h[d>>3]=-.7071067811865476;h[e>>3]=.7071067811865476;h[f>>3]=.7071067811865476;h[b+8>>3]=.7071067811865476;h[d+8>>3]=.7071067811865476;h[e+8>>3]=.7071067811865476;h[f+8>>3]=-.7071067811865476;l=2;i=g;return l|0}if(!(Jb(a,144)|0)){h[b>>3]=-.08838834764831845;h[d>>3]=0.0;h[e>>3]=0.0;h[f>>3]=-.08838834764831845;h[b+8>>3]=.08838834764831845;h[d+8>>3]=0.0;h[e+8>>3]=0.0;h[f+8>>3]=-.08838834764831845;h[b+16>>3]=.7071067811865476;h[d+16>>3]=-.7071067811865476;h[e+16>>3]=.7071067811865476;h[f+16>>3]=.7071067811865476;h[b+24>>3]=.7071067811865476;h[d+24>>3]=.7071067811865476;h[e+24>>3]=.7071067811865476;h[f+24>>3]=-.7071067811865476;h[b+32>>3]=.08838834764831845;h[d+32>>3]=0.0;h[e+32>>3]=0.0;h[f+32>>3]=.08838834764831845;h[b+40>>3]=-.08838834764831845;h[d+40>>3]=0.0;h[e+40>>3]=0.0;h[f+40>>3]=.08838834764831845;l=6;i=g;return l|0}if(!(Jb(a,152)|0)){n=j;o=n+80|0;do{c[n>>2]=0;n=n+4|0}while((n|0)<(o|0));h[j+32>>3]=-.7071067811865476;h[j+40>>3]=.7071067811865476;n=k;o=n+80|0;do{c[n>>2]=0;n=n+4|0}while((n|0)<(o|0));h[k+32>>3]=.7071067811865476;h[k+40>>3]=.7071067811865476;m=0;do{h[b+(m<<3)>>3]=+h[7440+(m<<3)>>3];h[d+(m<<3)>>3]=+h[j+(m<<3)>>3];h[e+(m<<3)>>3]=+h[k+(m<<3)>>3];h[f+(m<<3)>>3]=+h[7520+(m<<3)>>3];m=m+1|0}while((m|0)!=10);l=10;i=g;return l|0}if(!(Jb(a,160)|0)){h[b>>3]=0.0;h[d>>3]=0.0;h[e>>3]=0.0;h[f>>3]=0.0;h[b+8>>3]=-.1767766952966369;h[d+8>>3]=.3535533905932738;h[e+8>>3]=.3535533905932738;h[f+8>>3]=.1767766952966369;h[b+16>>3]=.3535533905932738;h[d+16>>3]=-.7071067811865476;h[e+16>>3]=.7071067811865476;h[f+16>>3]=.3535533905932738;h[b+24>>3]=1.0606601717798214;h[d+24>>3]=.3535533905932738;h[e+24>>3]=.3535533905932738;h[f+24>>3]=-1.0606601717798214;h[b+32>>3]=.3535533905932738;h[d+32>>3]=0.0;h[e+32>>3]=0.0;h[f+32>>3]=.3535533905932738;h[b+40>>3]=-.1767766952966369;h[d+40>>3]=0.0;h[e+40>>3]=0.0;h[f+40>>3]=.1767766952966369;l=6;i=g;return l|0}if(!(Jb(a,168)|0)){n=j;o=n+80|0;do{c[n>>2]=0;n=n+4|0}while((n|0)<(o|0));h[j+24>>3]=.3535533905932738;h[j+32>>3]=-.7071067811865476;h[j+40>>3]=.3535533905932738;n=k;o=n+80|0;do{c[n>>2]=0;n=n+4|0}while((n|0)<(o|0));h[k+24>>3]=.3535533905932738;h[k+32>>3]=.7071067811865476;h[k+40>>3]=.3535533905932738;m=0;do{h[b+(m<<3)>>3]=+h[7600+(m<<3)>>3];h[d+(m<<3)>>3]=+h[j+(m<<3)>>3];h[e+(m<<3)>>3]=+h[k+(m<<3)>>3];h[f+(m<<3)>>3]=+h[7680+(m<<3)>>3];m=m+1|0}while((m|0)!=10);l=10;i=g;return l|0}if(!(Jb(a,176)|0)){n=j;o=n+112|0;do{c[n>>2]=0;n=n+4|0}while((n|0)<(o|0));h[j+40>>3]=.3535533905932738;h[j+48>>3]=-.7071067811865476;h[j+56>>3]=.3535533905932738;n=k;o=n+112|0;do{c[n>>2]=0;n=n+4|0}while((n|0)<(o|0));h[k+40>>3]=.3535533905932738;h[k+48>>3]=.7071067811865476;h[k+56>>3]=.3535533905932738;m=0;do{h[b+(m<<3)>>3]=+h[7760+(m<<3)>>3];h[d+(m<<3)>>3]=+h[j+(m<<3)>>3];h[e+(m<<3)>>3]=+h[k+(m<<3)>>3];h[f+(m<<3)>>3]=+h[7872+(m<<3)>>3];m=m+1|0}while((m|0)!=14);l=14;i=g;return l|0}if(!(Jb(a,184)|0)){Nb(j|0,0,144)|0;h[j+56>>3]=.3535533905932738;h[j+64>>3]=-.7071067811865476;h[j+72>>3]=.3535533905932738;Nb(k|0,0,144)|0;h[k+56>>3]=.3535533905932738;h[k+64>>3]=.7071067811865476;h[k+72>>3]=.3535533905932738;m=0;do{h[b+(m<<3)>>3]=+h[7984+(m<<3)>>3];h[d+(m<<3)>>3]=+h[j+(m<<3)>>3];h[e+(m<<3)>>3]=+h[k+(m<<3)>>3];h[f+(m<<3)>>3]=+h[8128+(m<<3)>>3];m=m+1|0}while((m|0)!=18);l=18;i=g;return l|0}if(!(Jb(a,192)|0)){h[b>>3]=-.3535533905932738;h[d>>3]=-.1767766952966369;h[e>>3]=.1767766952966369;h[f>>3]=-.3535533905932738;h[b+8>>3]=1.0606601717798214;h[d+8>>3]=.5303300858899107;h[e+8>>3]=.5303300858899107;h[f+8>>3]=-1.0606601717798214;h[b+16>>3]=1.0606601717798214;h[d+16>>3]=-.5303300858899107;h[e+16>>3]=.5303300858899107;h[f+16>>3]=1.0606601717798214;h[b+24>>3]=-.3535533905932738;h[d+24>>3]=.1767766952966369;h[e+24>>3]=.1767766952966369;h[f+24>>3]=.3535533905932738;l=4;i=g;return l|0}if(!(Jb(a,200)|0)){h[b>>3]=.06629126073623884;h[d>>3]=0.0;h[e>>3]=0.0;h[f>>3]=.06629126073623884;h[b+8>>3]=-.19887378220871652;h[d+8>>3]=0.0;h[e+8>>3]=0.0;h[f+8>>3]=.19887378220871652;h[b+16>>3]=-.15467960838455727;h[d+16>>3]=-.1767766952966369;h[e+16>>3]=.1767766952966369;h[f+16>>3]=-.15467960838455727;h[b+24>>3]=.9943689110435825;h[d+24>>3]=.5303300858899107;h[e+24>>3]=.5303300858899107;h[f+24>>3]=-.9943689110435825;h[b+32>>3]=.9943689110435825;h[d+32>>3]=-.5303300858899107;h[e+32>>3]=.5303300858899107;h[f+32>>3]=.9943689110435825;h[b+40>>3]=-.15467960838455727;h[d+40>>3]=.1767766952966369;h[e+40>>3]=.1767766952966369;h[f+40>>3]=.15467960838455727;h[b+48>>3]=-.19887378220871652;h[d+48>>3]=0.0;h[e+48>>3]=0.0;h[f+48>>3]=-.19887378220871652;h[b+56>>3]=.06629126073623884;h[d+56>>3]=0.0;h[e+56>>3]=0.0;h[f+56>>3]=-.06629126073623884;l=8;i=g;return l|0}if(!(Jb(a,208)|0)){n=j;o=n+96|0;do{c[n>>2]=0;n=n+4|0}while((n|0)<(o|0));h[j+32>>3]=-.1767766952966369;h[j+40>>3]=.5303300858899107;h[j+48>>3]=-.5303300858899107;h[j+56>>3]=.1767766952966369;n=k;o=n+96|0;do{c[n>>2]=0;n=n+4|0}while((n|0)<(o|0));h[k+32>>3]=.1767766952966369;h[k+40>>3]=.5303300858899107;h[k+48>>3]=.5303300858899107;h[k+56>>3]=.1767766952966369;m=0;do{h[b+(m<<3)>>3]=+h[8272+(m<<3)>>3];h[d+(m<<3)>>3]=+h[j+(m<<3)>>3];h[e+(m<<3)>>3]=+h[k+(m<<3)>>3];h[f+(m<<3)>>3]=+h[8368+(m<<3)>>3];m=m+1|0}while((m|0)!=12);l=12;i=g;return l|0}if(!(Jb(a,216)|0)){n=j;o=n+128|0;do{c[n>>2]=0;n=n+4|0}while((n|0)<(o|0));h[j+48>>3]=-.1767766952966369;h[j+56>>3]=.5303300858899107;h[j+64>>3]=-.5303300858899107;h[j+72>>3]=.1767766952966369;n=k;o=n+128|0;do{c[n>>2]=0;n=n+4|0}while((n|0)<(o|0));h[k+48>>3]=.1767766952966369;h[k+56>>3]=.5303300858899107;h[k+64>>3]=.5303300858899107;h[k+72>>3]=.1767766952966369;n=0;do{h[b+(n<<3)>>3]=+h[8464+(n<<3)>>3];h[d+(n<<3)>>3]=+h[j+(n<<3)>>3];h[e+(n<<3)>>3]=+h[k+(n<<3)>>3];h[f+(n<<3)>>3]=+h[8592+(n<<3)>>3];n=n+1|0}while((n|0)!=16);l=16;i=g;return l|0}if(!(Jb(a,224)|0)){Nb(j|0,0,160)|0;h[j+64>>3]=-.1767766952966369;h[j+72>>3]=.5303300858899107;h[j+80>>3]=-.5303300858899107;h[j+88>>3]=.1767766952966369;Nb(k|0,0,160)|0;h[k+64>>3]=.1767766952966369;h[k+72>>3]=.5303300858899107;h[k+80>>3]=.5303300858899107;h[k+88>>3]=.1767766952966369;n=0;do{h[b+(n<<3)>>3]=+h[8720+(n<<3)>>3];h[d+(n<<3)>>3]=+h[j+(n<<3)>>3];h[e+(n<<3)>>3]=+h[k+(n<<3)>>3];h[f+(n<<3)>>3]=+h[8880+(n<<3)>>3];n=n+1|0}while((n|0)!=20);l=20;i=g;return l|0}if(!(Jb(a,232)|0)){n=0;do{h[b+(n<<3)>>3]=+h[9040+(n<<3)>>3];h[d+(n<<3)>>3]=+h[9120+(n<<3)>>3];h[e+(n<<3)>>3]=+h[9200+(n<<3)>>3];h[f+(n<<3)>>3]=+h[9280+(n<<3)>>3];n=n+1|0}while((n|0)!=10);l=10;i=g;return l|0}if(!(Jb(a,240)|0)){n=0;do{h[b+(n<<3)>>3]=+h[9360+(n<<3)>>3];h[d+(n<<3)>>3]=+h[9456+(n<<3)>>3];h[e+(n<<3)>>3]=+h[9552+(n<<3)>>3];h[f+(n<<3)>>3]=+h[9648+(n<<3)>>3];n=n+1|0}while((n|0)!=12);l=12;i=g;return l|0}if(!(Jb(a,248)|0)){n=0;do{h[b+(n<<3)>>3]=+h[9744+(n<<3)>>3];h[d+(n<<3)>>3]=+h[9888+(n<<3)>>3];h[e+(n<<3)>>3]=+h[10032+(n<<3)>>3];h[f+(n<<3)>>3]=+h[10176+(n<<3)>>3];n=n+1|0}while((n|0)!=18);l=18;i=g;return l|0}if(!(Jb(a,256)|0)){h[b>>3]=-.01565572813546454;h[d>>3]=.0727326195128539;h[e>>3]=-.0727326195128539;h[f>>3]=-.01565572813546454;h[b+8>>3]=-.0727326195128539;h[d+8>>3]=.3378976624578092;h[e+8>>3]=.3378976624578092;h[f+8>>3]=.0727326195128539;h[b+16>>3]=.38486484686420286;h[d+16>>3]=-.8525720202122554;h[e+16>>3]=.8525720202122554;h[f+16>>3]=.38486484686420286;h[b+24>>3]=.8525720202122554;h[d+24>>3]=.38486484686420286;h[e+24>>3]=.38486484686420286;h[f+24>>3]=-.8525720202122554;h[b+32>>3]=.3378976624578092;h[d+32>>3]=.0727326195128539;h[e+32>>3]=-.0727326195128539;h[f+32>>3]=.3378976624578092;h[b+40>>3]=-.0727326195128539;h[d+40>>3]=-.01565572813546454;h[e+40>>3]=-.01565572813546454;h[f+40>>3]=.0727326195128539;l=6;i=g;return l|0}if(!(Jb(a,264)|0)){n=0;do{h[b+(n<<3)>>3]=+h[10320+(n<<3)>>3];h[d+(n<<3)>>3]=+h[10416+(n<<3)>>3];h[e+(n<<3)>>3]=+h[10512+(n<<3)>>3];h[f+(n<<3)>>3]=+h[10608+(n<<3)>>3];n=n+1|0}while((n|0)!=12);l=12;i=g;return l|0}if(!(Jb(a,272)|0)){n=0;do{h[b+(n<<3)>>3]=+h[10704+(n<<3)>>3];h[d+(n<<3)>>3]=+h[10848+(n<<3)>>3];h[e+(n<<3)>>3]=+h[10992+(n<<3)>>3];h[f+(n<<3)>>3]=+h[11136+(n<<3)>>3];n=n+1|0}while((n|0)!=18);l=18;i=g;return l|0}if(!(Jb(a,280)|0)){n=0;do{h[b+(n<<3)>>3]=+h[11280+(n<<3)>>3];h[d+(n<<3)>>3]=+h[11472+(n<<3)>>3];h[e+(n<<3)>>3]=+h[11664+(n<<3)>>3];h[f+(n<<3)>>3]=+h[11856+(n<<3)>>3];n=n+1|0}while((n|0)!=24);l=24;i=g;return l|0}if(!(Jb(a,288)|0)){n=0;do{h[b+(n<<3)>>3]=+h[12048+(n<<3)>>3];h[d+(n<<3)>>3]=+h[12288+(n<<3)>>3];h[e+(n<<3)>>3]=+h[12528+(n<<3)>>3];h[f+(n<<3)>>3]=+h[12768+(n<<3)>>3];n=n+1|0}while((n|0)!=30);l=30;i=g;return l|0}if(!(Jb(a,296)|0)){h[b>>3]=-.12940952255092145;h[d>>3]=-.48296291314469025;h[e>>3]=.48296291314469025;h[f>>3]=-.12940952255092145;h[b+8>>3]=.22414386804185735;h[d+8>>3]=.836516303737469;h[e+8>>3]=.836516303737469;h[f+8>>3]=-.22414386804185735;h[b+16>>3]=.836516303737469;h[d+16>>3]=-.22414386804185735;h[e+16>>3]=.22414386804185735;h[f+16>>3]=.836516303737469;h[b+24>>3]=.48296291314469025;h[d+24>>3]=-.12940952255092145;h[e+24>>3]=-.12940952255092145;h[f+24>>3]=-.48296291314469025;l=4;i=g;return l|0}if(!(Jb(a,304)|0)){h[b>>3]=.035226291882100656;h[d>>3]=-.3326705529509569;h[e>>3]=.3326705529509569;h[f>>3]=.035226291882100656;h[b+8>>3]=-.08544127388224149;h[d+8>>3]=.8068915093133388;h[e+8>>3]=.8068915093133388;h[f+8>>3]=.08544127388224149;h[b+16>>3]=-.13501102001039084;h[d+16>>3]=-.4598775021193313;h[e+16>>3]=.4598775021193313;h[f+16>>3]=-.13501102001039084;h[b+24>>3]=.4598775021193313;h[d+24>>3]=-.13501102001039084;h[e+24>>3]=-.13501102001039084;h[f+24>>3]=-.4598775021193313;h[b+32>>3]=.8068915093133388;h[d+32>>3]=.08544127388224149;h[e+32>>3]=-.08544127388224149;h[f+32>>3]=.8068915093133388;h[b+40>>3]=.3326705529509569;h[d+40>>3]=.035226291882100656;h[e+40>>3]=.035226291882100656;h[f+40>>3]=-.3326705529509569;l=6;i=g;return l|0}if(!(Jb(a,312)|0)){h[b>>3]=-.07576571478927333;h[d>>3]=-.0322231006040427;h[e>>3]=.0322231006040427;h[f>>3]=-.07576571478927333;h[b+8>>3]=-.02963552764599851;h[d+8>>3]=-.012603967262037833;h[e+8>>3]=-.012603967262037833;h[f+8>>3]=.02963552764599851;h[b+16>>3]=.49761866763201545;h[d+16>>3]=.09921954357684722;h[e+16>>3]=-.09921954357684722;h[f+16>>3]=.49761866763201545;h[b+24>>3]=.8037387518059161;h[d+24>>3]=.29785779560527736;h[e+24>>3]=.29785779560527736;h[f+24>>3]=-.8037387518059161;h[b+32>>3]=.29785779560527736;h[d+32>>3]=-.8037387518059161;h[e+32>>3]=.8037387518059161;h[f+32>>3]=.29785779560527736;h[b+40>>3]=-.09921954357684722;h[d+40>>3]=.49761866763201545;h[e+40>>3]=.49761866763201545;h[f+40>>3]=.09921954357684722;h[b+48>>3]=-.012603967262037833;h[d+48>>3]=.02963552764599851;h[e+48>>3]=-.02963552764599851;h[f+48>>3]=-.012603967262037833;h[b+56>>3]=.0322231006040427;h[d+56>>3]=-.07576571478927333;h[e+56>>3]=-.07576571478927333;h[f+56>>3]=-.0322231006040427;l=8;i=g;return l|0}if(!(Jb(a,320)|0)){n=0;do{h[b+(n<<3)>>3]=+h[13008+(n<<3)>>3];h[d+(n<<3)>>3]=+h[13088+(n<<3)>>3];h[e+(n<<3)>>3]=+h[13168+(n<<3)>>3];h[f+(n<<3)>>3]=+h[13248+(n<<3)>>3];n=n+1|0}while((n|0)!=10);l=10;i=g;return l|0}if(!(Jb(a,328)|0)){n=0;do{h[b+(n<<3)>>3]=+h[13328+(n<<3)>>3];h[d+(n<<3)>>3]=+h[13424+(n<<3)>>3];h[e+(n<<3)>>3]=+h[13520+(n<<3)>>3];h[f+(n<<3)>>3]=+h[13616+(n<<3)>>3];n=n+1|0}while((n|0)!=12);l=12;i=g;return l|0}if(!(Jb(a,336)|0)){n=0;do{h[b+(n<<3)>>3]=+h[13712+(n<<3)>>3];h[d+(n<<3)>>3]=+h[13824+(n<<3)>>3];h[e+(n<<3)>>3]=+h[13936+(n<<3)>>3];h[f+(n<<3)>>3]=+h[14048+(n<<3)>>3];n=n+1|0}while((n|0)!=14);l=14;i=g;return l|0}if(!(Jb(a,344)|0)){n=0;do{h[b+(n<<3)>>3]=+h[14160+(n<<3)>>3];h[d+(n<<3)>>3]=+h[14288+(n<<3)>>3];h[e+(n<<3)>>3]=+h[14416+(n<<3)>>3];h[f+(n<<3)>>3]=+h[14544+(n<<3)>>3];n=n+1|0}while((n|0)!=16);l=16;i=g;return l|0}if(!(Jb(a,352)|0)){n=0;do{h[b+(n<<3)>>3]=+h[14672+(n<<3)>>3];h[d+(n<<3)>>3]=+h[14816+(n<<3)>>3];h[e+(n<<3)>>3]=+h[14960+(n<<3)>>3];h[f+(n<<3)>>3]=+h[15104+(n<<3)>>3];n=n+1|0}while((n|0)!=18);l=18;i=g;return l|0}if(!(Jb(a,360)|0)){a=0;do{h[b+(a<<3)>>3]=+h[15248+(a<<3)>>3];h[d+(a<<3)>>3]=+h[15408+(a<<3)>>3];h[e+(a<<3)>>3]=+h[15568+(a<<3)>>3];h[f+(a<<3)>>3]=+h[15728+(a<<3)>>3];a=a+1|0}while((a|0)!=20);l=20;i=g;return l|0}else{oa(368)|0;l=-1;i=g;return l|0}}h[b>>3]=.7071067811865475;h[d>>3]=-.7071067811865475;h[e>>3]=.7071067811865475;h[f>>3]=.7071067811865475;h[b+8>>3]=.7071067811865475;h[d+8>>3]=.7071067811865475;h[e+8>>3]=.7071067811865475;h[f+8>>3]=-.7071067811865475;l=2;i=g;return l|0}function cb(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,i=0,j=0,k=0,l=0,m=0;if((c|0)<0){e=-1;return e|0}if(!c){if((b|0)>0)f=0;else{e=b;return e|0}do{h[d+(f<<3)>>3]=+h[a+(f<<3)>>3];f=f+1|0}while((f|0)!=(b|0));e=b;return e|0}f=Z(b+-1|0,c)|0;b=f+1|0;if((f|0)>-1){g=0;i=1;j=0}else{e=b;return e|0}while(1){f=i+-1|0;k=d+(g<<3)|0;h[k>>3]=0.0;if(!f){h[k>>3]=+h[a+(j<<3)>>3];l=c;m=j+1|0}else{l=f;m=j}g=g+1|0;if((g|0)>=(b|0)){e=b;break}else{i=l;j=m}}return e|0}function db(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,i=0,j=0,k=0,l=0,m=0;if((c|0)<0){e=-1;return e|0}if(!c){if((b|0)>0)f=0;else{e=b;return e|0}do{h[d+(f<<3)>>3]=+h[a+(f<<3)>>3];f=f+1|0}while((f|0)!=(b|0));e=b;return e|0}f=Z(c,b)|0;if((f|0)>0){g=0;i=1;j=0}else{e=f;return e|0}while(1){b=i+-1|0;k=d+(g<<3)|0;h[k>>3]=0.0;if(!b){h[k>>3]=+h[a+(j<<3)>>3];l=c;m=j+1|0}else{l=b;m=j}g=g+1|0;if((g|0)==(f|0)){e=f;break}else{i=l;j=m}}return e|0}function eb(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0;if((c|0)<0){e=-1;return e|0}if(!c){if((b|0)>0)f=0;else{e=b;return e|0}do{h[d+(f<<3)>>3]=+h[a+(f<<3)>>3];f=f+1|0}while((f|0)!=(b|0));e=b;return e|0}else{f=(b+-1|0)/(c|0)|0;b=f+1|0;if((f|0)>-1)g=0;else{e=b;return e|0}do{h[d+(g<<3)>>3]=+h[a+((Z(g,c)|0)<<3)>>3];g=g+1|0}while((g|0)<(b|0));e=b;return e|0}return 0}function fb(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,i=0,j=0.0,k=0;if((b|0)>0){e=0;do{h[d+(e+c<<3)>>3]=+h[a+(e<<3)>>3];e=e+1|0}while((e|0)!=(b|0))}if(!(b&1))f=b;else{h[d+(c+b<<3)>>3]=+h[a+(b+-1<<3)>>3];f=b+1|0}if((c|0)<=0)return f|0;b=f+c|0;a=b+-1|0;e=c+-1|0;g=0;i=0;while(1){j=+h[d+(i+c<<3)>>3];h[d+(e+g<<3)>>3]=+h[d+(a+g<<3)>>3];h[d+(i+b<<3)>>3]=j;k=i+1|0;if((k|0)==(c|0))break;else{g=~i;i=k}}return f|0}function gb(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,i=0,j=0.0,k=0;if((b|0)>0){e=0;do{h[d+(e+c<<3)>>3]=+h[a+(e<<3)>>3];e=e+1|0}while((e|0)!=(b|0))}if((c|0)<=0)return b|0;e=c+b|0;a=e+-1|0;f=c+-1|0;g=0;i=0;while(1){j=+h[d+(a+g<<3)>>3];h[d+(f+g<<3)>>3]=+h[d+(i+c<<3)>>3];h[d+(i+e<<3)>>3]=j;k=i+1|0;if((k|0)==(c|0))break;else{g=~i;i=k}}return b|0}function hb(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0;d=(c|0)>-1?c:0-c|0;if((d|0)>(b|0))e=Z((d|0)%(b|0)|0,c>>31|1)|0;else e=c;if((e|0)<0)f=(e+b|0)%(b|0)|0;else f=e;e=f<<3;c=Kb(e)|0;d=(f|0)>0;if(d)Qb(c|0,a|0,e|0)|0;e=b-f|0;if((e|0)>0){b=0;do{h[a+(b<<3)>>3]=+h[a+(b+f<<3)>>3];b=b+1|0}while((b|0)!=(e|0))}if(!d){Lb(c);return}Qb(a+(e<<3)|0,c|0,f<<3|0)|0;Lb(c);return}function ib(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;if((b|0)>0){c=1;d=0;while(1){e=c<<1;d=d+1|0;if((d|0)==(b|0)){f=e;break}else c=e}}else f=1;return ((a|0)%(f|0)|0|0)==0|0}function jb(a,b){a=a|0;b=b|0;return ~~(+X(+(+(a|0)/(+(b|0)+-1.0)))/.6931471805599453)|0}function kb(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0;b=(a|0)!=0;if(b)d=ab(a)|0;else d=0;e=Kb((d<<5)+88|0)|0;c[e+52>>2]=d;c[e+68>>2]=d;c[e+64>>2]=d;c[e+60>>2]=d;c[e+56>>2]=d;Rb(e|0,a|0)|0;f=e+88|0;if(b){b=d<<1;g=d*3|0;bb(a,f,f+(d<<3)|0,f+(b<<3)|0,f+(g<<3)|0)|0;h=b;i=g}else{h=d<<1;i=d*3|0}c[e+72>>2]=f;c[e+76>>2]=f+(d<<3);c[e+80>>2]=f+(h<<3);c[e+84>>2]=f+(i<<3);return e|0}function lb(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0;g=i;i=i+16|0;h=g;j=c[b+52>>2]|0;if((f|0)>100){oa(15888)|0;Ea(-1)}k=jb(e,j)|0;if((k|0)<(f|0)){c[h>>2]=k;pa(15952,h|0)|0;Ea(-1)}do if(!d){h=(Z(f<<1,j+1|0)|0)+e|0;l=Kb((h<<3)+488|0)|0;c[l+24>>2]=h;h=l+44|0;a[h>>0]=115;a[h+1>>0]=121;a[h+2>>0]=109;a[h+3>>0]=0;m=l}else{if((Jb(d,16416)|0)!=0?(Jb(d,16424)|0)!=0:0){if((Jb(d,16448)|0)!=0?(Jb(d,16456)|0)!=0:0){if((Jb(d,16464)|0)!=0?(Jb(d,16472)|0)!=0:0){m=0;break}if(((Db(b,16088)|0)==0?(Db(b,16440)|0)==0:0)?(Db(b,16096)|0)==0:0){oa(16104)|0;Ea(-1)}l=Z(f+1|0,e)|0;h=Kb((l<<3)+488|0)|0;c[h+24>>2]=l;l=h+44|0;a[l>>0]=112;a[l+1>>0]=101;a[l+2>>0]=114;a[l+3>>0]=0;m=h;break}if(!(ib(e,f)|0)){oa(16032)|0;Ea(-1)}else{h=Z(f+1|0,e)|0;l=Kb((h<<3)+488|0)|0;c[l+24>>2]=h;h=l+44|0;a[h>>0]=112;a[h+1>>0]=101;a[h+2>>0]=114;a[h+3>>0]=0;m=l;break}}l=(Z(f<<1,j+1|0)|0)+e|0;h=Kb((l<<3)+488|0)|0;c[h+24>>2]=l;l=h+44|0;a[l>>0]=115;a[l+1>>0]=121;a[l+2>>0]=109;a[l+3>>0]=0;m=h}while(0);c[m>>2]=b;c[m+20>>2]=e;c[m+32>>2]=f;c[m+36>>2]=k;Rb(m+8|0,d|0)|0;c[m+40>>2]=e&1^1;c[m+4>>2]=0;k=m+54|0;a[k>>0]=a[16184]|0;a[k+1>>0]=a[16185]|0;a[k+2>>0]=a[16186]|0;a[k+3>>0]=a[16187]|0;a[k+4>>0]=a[16188]|0;a[k+5>>0]=a[16189]|0;a[k+6>>0]=a[16190]|0;c[m+68>>2]=0;c[m+28>>2]=f+2;c[m+484>>2]=m+488;if((Jb(d,16416)|0)!=0?(Jb(d,16424)|0)!=0:0){if((((Jb(d,16448)|0)!=0?(Jb(d,16456)|0)!=0:0)?(Jb(d,16464)|0)!=0:0)?(Jb(d,16472)|0)!=0:0){i=g;return m|0}d=Z(f+1|0,e)|0;if((d|0)<=0){i=g;return m|0}Nb(m+488|0,0,d<<3|0)|0;i=g;return m|0}d=j+1|0;if(((Z(f<<1,d)|0)+e|0)<=0){i=g;return m|0}Nb(m+488|0,0,((Z(d,f)|0)<<4)+(e<<3)|0)|0;i=g;return m|0}function mb(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0.0,F=0.0,G=0,H=0,I=0,J=0.0,K=0.0,L=0.0,M=0.0,N=0.0,O=0,P=0,Q=0,R=0.0,S=0.0,T=0.0,U=0.0,V=0,W=0.0,X=0.0;d=i;i=i+16|0;e=d;f=a+20|0;g=c[f>>2]|0;j=c[a+32>>2]|0;k=a+76|0;c[a+76+(j+1<<2)>>2]=g;l=a+24|0;c[l>>2]=0;c[a+72>>2]=0;m=g<<3;n=Kb(m)|0;o=Kb(m)|0;m=c[f>>2]|0;if((m|0)>0)Qb(n|0,b|0,((m|0)>1?m<<3:8)|0)|0;m=c[(c[a>>2]|0)+56>>2]|0;b=a+44|0;if(Jb(b,16432)|0){if(Jb(b,16440)|0){pa(16208,e|0)|0;Ea(-1)}e=(j|0)>0;if(!e){b=c[a+80>>2]|0;c[k>>2]=b;c[l>>2]=b;Lb(n);Lb(o);i=d;return}b=m+-2|0;m=g;f=j;while(1){m=~~+Y(+(+(b+m|0)*.5));c[a+76+(f<<2)>>2]=m;p=(c[l>>2]|0)+m|0;c[l>>2]=p;if((f|0)<=1){q=p;break}else f=f+-1|0}f=c[a+80>>2]|0;c[k>>2]=f;m=q+f|0;c[l>>2]=m;if(!e){Lb(n);Lb(o);i=d;return}e=a+54|0;f=j+-1|0;q=a+488|0;b=m;m=0;p=g;do{r=a+76+(j-m<<2)|0;s=c[r>>2]|0;b=b-s|0;if((Jb(e,16192)|0)!=0?(Jb(e,16200)|0)!=0:0){t=c[a>>2]|0;u=c[t+56>>2]|0;if((s|0)>0){v=(u|0)>0;w=t+72|0;x=t+76|0;t=(p<<1)+-1|0;y=0;do{z=y<<1;A=z|1;B=o+(y<<3)|0;h[B>>3]=0.0;C=a+488+(y+b<<3)|0;h[C>>3]=0.0;if(v){D=z^-2;z=t-A|0;E=0.0;F=0.0;G=0;while(1){H=A-G|0;I=(H|0)<(p|0);do if(!((H|0)>-1&I)){if((H|0)<0){J=+h[n+(G+D<<3)>>3];K=E+ +h[(c[w>>2]|0)+(G<<3)>>3]*J;h[B>>3]=K;L=F+ +h[(c[x>>2]|0)+(G<<3)>>3]*J;h[C>>3]=L;M=L;N=K;break}if(I){M=F;N=E}else{K=+h[n+(z+G<<3)>>3];L=E+ +h[(c[w>>2]|0)+(G<<3)>>3]*K;h[B>>3]=L;J=F+ +h[(c[x>>2]|0)+(G<<3)>>3]*K;h[C>>3]=J;M=J;N=L}}else{L=+h[n+(H<<3)>>3];J=E+ +h[(c[w>>2]|0)+(G<<3)>>3]*L;h[B>>3]=J;K=F+ +h[(c[x>>2]|0)+(G<<3)>>3]*L;h[C>>3]=K;M=K;N=J}while(0);G=G+1|0;if((G|0)==(u|0))break;else{E=N;F=M}}}y=y+1|0}while((y|0)!=(s|0))}}else vb(a,n,p,o,a+488+(b<<3)|0);p=c[r>>2]|0;y=(s|0)>0;if((m|0)==(f|0)){if(y)Qb(q|0,o|0,s<<3|0)|0}else if(y)Qb(n|0,o|0,s<<3|0)|0;m=m+1|0}while((m|0)!=(j|0));Lb(n);Lb(o);i=d;return}m=(j|0)>0;if(m){O=g;P=j}else{q=c[a+80>>2]|0;c[k>>2]=q;c[l>>2]=q;Lb(n);Lb(o);i=d;return}while(1){O=~~+Y(+(+(O|0)*.5));c[a+76+(P<<2)>>2]=O;q=(c[l>>2]|0)+O|0;c[l>>2]=q;if((P|0)<=1){Q=q;break}else P=P+-1|0}P=c[a+80>>2]|0;c[k>>2]=P;k=Q+P|0;c[l>>2]=k;if(!m){Lb(n);Lb(o);i=d;return}m=a+54|0;l=j+-1|0;P=a+488|0;Q=k;k=0;O=g;do{g=a+76+(j-k<<2)|0;q=c[g>>2]|0;Q=Q-q|0;if((Jb(m,16192)|0)!=0?(Jb(m,16200)|0)!=0:0){f=c[a>>2]|0;p=c[f+56>>2]|0;b=(p|0)/2|0;e=(O|0)%2|0;if((q|0)>0){y=(p|0)>0;u=f+72|0;x=f+76|0;f=(e|0)==0;w=(e|0)==1;e=n+(O+-1<<3)|0;t=O+1|0;v=~O;G=0;do{C=(G<<1)+b|0;B=o+(G<<3)|0;h[B>>3]=0.0;z=a+488+(G+Q<<3)|0;h[z>>3]=0.0;a:do if(y){if(f){M=0.0;N=0.0;D=0;while(1){A=C-D|0;H=(A|0)<(O|0);do if(!((A|0)>=(b|0)&H)){if((A|0)<(b|0)&(A|0)>-1){F=+h[n+(A<<3)>>3];E=M+ +h[(c[u>>2]|0)+(D<<3)>>3]*F;h[B>>3]=E;J=N+ +h[(c[x>>2]|0)+(D<<3)>>3]*F;h[z>>3]=J;R=J;S=E;break}if((A|0)<0){E=+h[n+(A+O<<3)>>3];J=M+ +h[(c[u>>2]|0)+(D<<3)>>3]*E;h[B>>3]=J;F=N+ +h[(c[x>>2]|0)+(D<<3)>>3]*E;h[z>>3]=F;R=F;S=J;break}if(H){R=N;S=M}else{J=+h[n+(A-O<<3)>>3];F=M+ +h[(c[u>>2]|0)+(D<<3)>>3]*J;h[B>>3]=F;E=N+ +h[(c[x>>2]|0)+(D<<3)>>3]*J;h[z>>3]=E;R=E;S=F}}else{F=+h[n+(A<<3)>>3];E=M+ +h[(c[u>>2]|0)+(D<<3)>>3]*F;h[B>>3]=E;J=N+ +h[(c[x>>2]|0)+(D<<3)>>3]*F;h[z>>3]=J;R=J;S=E}while(0);D=D+1|0;if((D|0)==(p|0))break a;else{M=S;N=R}}}else{T=0.0;U=0.0;V=0}while(1){D=C-V|0;do if(!((D|0)>=(b|0)&(D|0)<(O|0))){if((D|0)<(b|0)&(D|0)>-1){N=+h[n+(D<<3)>>3];M=T+ +h[(c[u>>2]|0)+(V<<3)>>3]*N;h[B>>3]=M;E=U+ +h[(c[x>>2]|0)+(V<<3)>>3]*N;h[z>>3]=E;W=E;X=M;break}if(w&(D|0)<0){M=+h[(c[u>>2]|0)+(V<<3)>>3];if((D|0)==-1){E=+h[e>>3];N=T+M*E;h[B>>3]=N;J=U+ +h[(c[x>>2]|0)+(V<<3)>>3]*E;h[z>>3]=J;W=J;X=N;break}else{N=+h[n+(t+D<<3)>>3];J=T+M*N;h[B>>3]=J;M=U+ +h[(c[x>>2]|0)+(V<<3)>>3]*N;h[z>>3]=M;W=M;X=J;break}}if(w&(D|0)>=(O|0)){J=+h[(c[u>>2]|0)+(V<<3)>>3];if((D|0)==(O|0)){M=+h[e>>3];N=T+J*M;h[B>>3]=N;E=U+ +h[(c[x>>2]|0)+(V<<3)>>3]*M;h[z>>3]=E;W=E;X=N;break}else{N=+h[n+(D+v<<3)>>3];E=T+J*N;h[B>>3]=E;J=U+ +h[(c[x>>2]|0)+(V<<3)>>3]*N;h[z>>3]=J;W=J;X=E;break}}else{W=U;X=T}}else{E=+h[n+(D<<3)>>3];J=T+ +h[(c[u>>2]|0)+(V<<3)>>3]*E;h[B>>3]=J;N=U+ +h[(c[x>>2]|0)+(V<<3)>>3]*E;h[z>>3]=N;W=N;X=J}while(0);V=V+1|0;if((V|0)==(p|0))break;else{T=X;U=W}}}while(0);G=G+1|0}while((G|0)!=(q|0))}}else vb(a,n,O,o,a+488+(Q<<3)|0);O=c[g>>2]|0;G=(q|0)>0;if((k|0)==(l|0)){if(G)Qb(P|0,o|0,q<<3|0)|0}else if(G)Qb(n|0,o|0,q<<3|0)|0;k=k+1|0}while((k|0)!=(j|0));Lb(n);Lb(o);i=d;return}function nb(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0.0,U=0,V=0.0,W=0,X=0;d=i;i=i+32|0;e=d+16|0;f=d;g=d+8|0;j=c[a+32>>2]|0;k=c[a+76>>2]|0;l=a+20|0;m=Kb((c[l>>2]<<3)+8|0)|0;n=a+44|0;do if(!(Jb(n,16432)|0)){o=a+54|0;if((Jb(o,16192)|0)!=0?(Jb(o,16200)|0)!=0:0){if(Jb(a+54|0,16184)|0){p=48;break}q=c[a+80>>2]|0;r=c[a>>2]|0;s=(c[r+68>>2]|0)+(c[r+64>>2]|0)|0;t=(s|0)/2|0;u=Kb((t+(c[a+76+(j<<2)>>2]|0)<<4)+-8|0)|0;if((k|0)>0){v=c[a+484>>2]|0;w=0;do{h[m+(w<<3)>>3]=+h[v+(w<<3)>>3];w=w+1|0}while((w|0)!=(k|0))}if((j|0)>0){w=c[a+484>>2]|0;v=(s|0)/4|0;x=(s|0)>3;y=r+80|0;z=r+84|0;A=0-v|0;B=u+((v<<3)+-8)|0;C=q;D=0;E=k;while(1){F=C+-1|0;G=v+F|0;if((G|0)>0){H=t+F|0;F=0;I=-2;J=-1;do{I=I+2|0;J=J+2|0;K=u+(I<<3)|0;h[K>>3]=0.0;L=u+(J<<3)|0;h[L>>3]=0.0;if(x){M=F+C|0;N=0;do{O=N<<1;P=F-N|0;Q=(P|0)<(C|0);do if(!((P|0)>-1&Q)){if((P|0)<(H|0)&(Q^1)){R=c[y>>2]|0;S=P-C|0;T=+h[m+(S<<3)>>3];U=c[z>>2]|0;V=+h[w+(S+E<<3)>>3];h[K>>3]=+h[K>>3]+(+h[R+(O<<3)>>3]*T+ +h[U+(O<<3)>>3]*V);S=O|1;h[L>>3]=+h[L>>3]+(+h[R+(S<<3)>>3]*T+ +h[U+(S<<3)>>3]*V);break}if((P|0)<0&(P|0)>(A|0)){S=c[y>>2]|0;U=M-N|0;V=+h[m+(U<<3)>>3];R=c[z>>2]|0;T=+h[w+(U+E<<3)>>3];h[K>>3]=+h[K>>3]+(+h[S+(O<<3)>>3]*V+ +h[R+(O<<3)>>3]*T);U=O|1;h[L>>3]=+h[L>>3]+(+h[S+(U<<3)>>3]*V+ +h[R+(U<<3)>>3]*T)}}else{U=c[y>>2]|0;T=+h[m+(P<<3)>>3];R=c[z>>2]|0;V=+h[w+(P+E<<3)>>3];h[K>>3]=+h[K>>3]+(+h[U+(O<<3)>>3]*T+ +h[R+(O<<3)>>3]*V);S=O|1;h[L>>3]=+h[L>>3]+(+h[U+(S<<3)>>3]*T+ +h[R+(S<<3)>>3]*V)}while(0);N=N+1|0}while((N|0)<(v|0))}F=F+1|0}while((F|0)!=(G|0))}if((v|0)<=((C<<1)+-1+v|0))Qb(m|0,B|0,C<<4|0)|0;E=C+E|0;G=D+1|0;if((G|0)==(j|0))break;else{C=c[a+76+(D+2<<2)>>2]|0;D=G}}}Lb(u);break}D=c[a+80>>2]|0;C=c[a+76+(j<<2)>>2]|0;E=C<<1;B=c[a>>2]|0;v=((c[B+68>>2]|0)+(c[B+64>>2]|0)|0)/2|0;w=Kb(C<<4)|0;C=Kb(v+E<<3)|0;z=((v<<1)+E<<3)+-8|0;E=Kb(z)|0;v=Kb(z)|0;if((k|0)>0){z=c[a+484>>2]|0;y=0;do{h[m+(y<<3)>>3]=+h[z+(y<<3)>>3];y=y+1|0}while((y|0)!=(k|0))}a:do if((j|0)>0){y=a+484|0;z=a+4|0;u=a+68|0;A=B;x=D;t=0;q=k;while(1){r=(c[y>>2]|0)+(q<<3)|0;s=(c[A+68>>2]|0)+(c[A+64>>2]|0)|0;G=(s|0)/2|0;F=x<<1;db(m,x,2,w)|0;H=(s|0)/4|0;fb(w,F,H,C)|0;s=G+F|0;J=c[a>>2]|0;if((c[J+64>>2]|0)!=(c[J+68>>2]|0))break;if((Jb(o,16192)|0)!=0?(Jb(o,16200)|0)!=0:0)W=J;else{c[z>>2]=Ya(s,G)|0;c[u>>2]=1;W=c[a>>2]|0}wb(a,C,s,c[W+80>>2]|0,G,E);db(r,x,2,w)|0;fb(w,F,H,C)|0;wb(a,C,s,c[(c[a>>2]|0)+84>>2]|0,G,v);if((G|0)<=(s+-1|0)){s=1-G|0;H=F+-1+G|0;F=G+-1|0;do{h[m+(s+F<<3)>>3]=+h[E+(F<<3)>>3]+ +h[v+(F<<3)>>3];F=F+1|0}while((F|0)!=(H|0))}H=c[a>>2]|0;do if((c[H+64>>2]|0)==(c[H+68>>2]|0)){if((Jb(o,16192)|0)!=0?(Jb(o,16200)|0)!=0:0)break;$a(c[z>>2]|0);c[u>>2]=0}while(0);H=t+1|0;if((H|0)>=(j|0))break a;F=x+q|0;A=c[a>>2]|0;x=c[a+76+(t+2<<2)>>2]|0;t=H;q=F}pa(16256,g|0)|0;Ea(-1)}while(0);Lb(w);Lb(E);Lb(v);Lb(C)}else p=48;while(0);do if((p|0)==48){if(Jb(n,16440)|0){pa(16208,e|0)|0;Ea(-1)}if(!(Jb(a+54|0,16184)|0)){g=c[a+80>>2]|0;W=c[a>>2]|0;o=W+64|0;D=W+68|0;B=((c[D>>2]|0)+(c[o>>2]|0)|0)/2|0;q=Kb((B+(c[a+76+(j<<2)>>2]|0)<<4)+-16|0)|0;if((k|0)>0){t=c[a+484>>2]|0;x=0;do{h[m+(x<<3)>>3]=+h[t+(x<<3)>>3];x=x+1|0}while((x|0)!=(k|0))}if((j|0)>0){x=c[a+484>>2]|0;t=W+80|0;C=W+84|0;v=B+-2|0;E=q+((B<<3)+-16)|0;w=2-B|0;A=g;u=0;z=k;while(1){if((A|0)>0){y=(c[o>>2]|0)+(c[D>>2]|0)|0;F=(y|0)/4|0;H=(y|0)>3;y=-2;s=-1;G=0;do{y=y+2|0;s=s+2|0;r=q+(y<<3)|0;h[r>>3]=0.0;J=q+(s<<3)|0;h[J>>3]=0.0;if(H){I=0;do{N=I<<1;L=G-I|0;if((L|0)>-1&(L|0)<(A|0)){K=c[t>>2]|0;V=+h[m+(L<<3)>>3];M=c[C>>2]|0;T=+h[x+(L+z<<3)>>3];h[r>>3]=+h[r>>3]+(+h[K+(N<<3)>>3]*V+ +h[M+(N<<3)>>3]*T);L=N|1;h[J>>3]=+h[J>>3]+(+h[K+(L<<3)>>3]*V+ +h[M+(L<<3)>>3]*T)}I=I+1|0}while((I|0)<(F|0))}G=G+1|0}while((G|0)!=(A|0))}if((v|0)<(A<<1|0))Qb(m|0,E|0,w+(A<<1)<<3|0)|0;z=A+z|0;G=u+1|0;if((G|0)==(j|0))break;else{A=c[a+76+(u+2<<2)>>2]|0;u=G}}}Lb(q);break}u=a+54|0;if((Jb(u,16192)|0)!=0?(Jb(u,16200)|0)!=0:0){pa(16208,e|0)|0;Ea(-1)}A=c[(c[a>>2]|0)+56>>2]|0;z=(c[a+76+(j<<2)>>2]<<1)+-1|0;w=Kb(z<<3)|0;E=(z+A<<3)+-8|0;z=Kb(E)|0;v=Kb(E)|0;if((k|0)>0){E=c[a+484>>2]|0;x=0;do{h[m+(x<<3)>>3]=+h[E+(x<<3)>>3];x=x+1|0}while((x|0)!=(k|0))}b:do if((j|0)>0){x=a+4|0;E=a+68|0;q=a+484|0;C=A+-2|0;t=2-A|0;D=0;o=k;while(1){D=D+1|0;g=a+76+(D<<2)|0;B=c[g>>2]|0;cb(m,B,2,w)|0;W=c[g>>2]|0;g=W<<1;G=g+-1|0;F=c[a>>2]|0;if((c[F+64>>2]|0)!=(c[F+68>>2]|0))break;if((Jb(u,16192)|0)!=0?(Jb(u,16200)|0)!=0:0)X=F;else{c[x>>2]=Ya(G,A)|0;c[E>>2]=1;X=c[a>>2]|0}wb(a,w,G,c[X+80>>2]|0,A,z);cb((c[q>>2]|0)+(o<<3)|0,B,2,w)|0;wb(a,w,G,c[(c[a>>2]|0)+84>>2]|0,A,v);if((C|0)<(g|0)){g=W<<1;W=C;do{h[m+(t+W<<3)>>3]=+h[z+(W<<3)>>3]+ +h[v+(W<<3)>>3];W=W+1|0}while((W|0)!=(g|0))}o=B+o|0;g=c[a>>2]|0;do if((c[g+64>>2]|0)==(c[g+68>>2]|0)){if((Jb(u,16192)|0)!=0?(Jb(u,16200)|0)!=0:0)break;$a(c[x>>2]|0);c[E>>2]=0}while(0);if((D|0)>=(j|0))break b}pa(16256,f|0)|0;Ea(-1)}while(0);Lb(w);Lb(z);Lb(v)}while(0);f=c[l>>2]|0;if((f|0)<=0){Lb(m);i=d;return}Qb(b|0,m|0,((f|0)>1?f<<3:8)|0)|0;Lb(m);i=d;return}function ob(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0.0,E=0.0,F=0,G=0,H=0,I=0,J=0.0,K=0.0,L=0.0,M=0.0,N=0.0,O=0,P=0.0,Q=0,R=0,S=0,T=0,U=0;d=i;i=i+16|0;e=d+8|0;f=d;if(Jb(a+8|0,16448)|0){pa(16312,e|0)|0;Ea(-1)}if(!(Jb(a+54|0,16184)|0)){g=c[a+20>>2]|0;j=c[a+32>>2]|0;c[a+76+(j<<2)>>2]=g;c[a+76>>2]=g;k=j+1|0;l=Z(k,g)|0;c[a+76+(k<<2)>>2]=l;k=a+24|0;c[k>>2]=l;if((j|0)>1){l=1;do{c[a+76+(l<<2)>>2]=g;l=l+1|0}while((l|0)!=(j|0))}l=g<<3;m=Kb(l)|0;n=Kb(l)|0;l=(g|0)>0;if(l){o=0;do{h[a+488+(o<<3)>>3]=+h[b+(o<<3)>>3];o=o+1|0}while((o|0)!=(g|0))}if((j|0)>0){o=(g|0)%2|0;p=(o|0)==0;q=(o|0)==1;o=a+488+(g+-1<<3)|0;r=~g;s=1;t=0;u=c[k>>2]|0;do{u=u-g|0;s=s<<((t|0)>0&1);k=c[a>>2]|0;v=Z(c[k+56>>2]|0,s)|0;w=(v|0)/2|0;if(l){x=(v|0)>0;y=k+72|0;z=k+76|0;k=0;do{A=k+w|0;B=m+(k<<3)|0;h[B>>3]=0.0;C=n+(k<<3)|0;h[C>>3]=0.0;if(x){D=0.0;E=0.0;F=0;G=-1;while(1){H=F;while(1)if((H|0)<(g|0)){I=H;break}else H=H-g|0;G=G+1|0;H=A-I|0;do if(!((H|0)>=(w|0)&(H|0)<(g|0))){if((H|0)<(w|0)&(H|0)>-1){J=+h[a+488+(H<<3)>>3];K=D+ +h[(c[y>>2]|0)+(G<<3)>>3]*J;h[B>>3]=K;L=E+J*+h[(c[z>>2]|0)+(G<<3)>>3];h[C>>3]=L;M=L;N=K;break}if((H|0)<0){K=+h[a+488+(H+g<<3)>>3];L=D+ +h[(c[y>>2]|0)+(G<<3)>>3]*K;h[B>>3]=L;J=E+K*+h[(c[z>>2]|0)+(G<<3)>>3];h[C>>3]=J;M=J;N=L;break}O=(H|0)>=(g|0);if(p&O){L=+h[a+488+(H-g<<3)>>3];J=D+ +h[(c[y>>2]|0)+(G<<3)>>3]*L;h[B>>3]=J;K=E+L*+h[(c[z>>2]|0)+(G<<3)>>3];h[C>>3]=K;M=K;N=J;break}if(q&O){J=+h[(c[y>>2]|0)+(G<<3)>>3];if((A-G|0)==(g|0)){K=+h[o>>3];L=D+J*K;h[B>>3]=L;P=E+K*+h[(c[z>>2]|0)+(G<<3)>>3];h[C>>3]=P;M=P;N=L;break}else{L=+h[a+488+(H+r<<3)>>3];P=D+J*L;h[B>>3]=P;J=E+L*+h[(c[z>>2]|0)+(G<<3)>>3];h[C>>3]=J;M=J;N=P;break}}else{M=E;N=D}}else{P=+h[a+488+(H<<3)>>3];J=D+ +h[(c[y>>2]|0)+(G<<3)>>3]*P;h[B>>3]=J;L=E+P*+h[(c[z>>2]|0)+(G<<3)>>3];h[C>>3]=L;M=L;N=J}while(0);F=I+s|0;if((F|0)>=(v|0))break;else{D=N;E=M}}}k=k+1|0}while((k|0)!=(g|0));Q=0;do{h[a+488+(Q<<3)>>3]=+h[m+(Q<<3)>>3];h[a+488+(Q+u<<3)>>3]=+h[n+(Q<<3)>>3];Q=Q+1|0}while((Q|0)!=(g|0))}t=t+1|0}while((t|0)!=(j|0))}Lb(m);Lb(n);i=d;return}else{n=a+54|0;if((Jb(n,16192)|0)!=0?(Jb(n,16200)|0)!=0:0){pa(16312,e|0)|0;Ea(-1)}e=c[a+20>>2]|0;m=c[a+32>>2]|0;c[a+76+(m<<2)>>2]=e;c[a+76>>2]=e;j=m+1|0;t=Z(j,e)|0;c[a+76+(j<<2)>>2]=t;j=a+24|0;c[j>>2]=t;if((m|0)>1){t=1;g=1;while(1){Q=t<<1;c[a+76+(g<<2)>>2]=e;g=g+1|0;if((g|0)==(m|0)){R=Q;break}else t=Q}}else R=1;t=c[(c[a>>2]|0)+52>>2]|0;g=Z(t,R<<3)|0;Q=Kb(g)|0;u=Kb(g)|0;g=(e|0)%2|0;s=Kb((Z(t,R)|0)+e+g<<3)|0;I=((Z(R<<1,t)|0)+e+g<<3)+-1|0;R=Kb(I)|0;r=Kb(I)|0;I=(e|0)>0;if(I){o=0;do{h[a+488+(o<<3)>>3]=+h[b+(o<<3)>>3];o=o+1|0}while((o|0)!=(e|0))}a:do if((m|0)>0){o=a+488|0;b=g+e|0;q=a+4|0;p=a+68|0;l=(t|0)>0;k=1;v=0;z=c[j>>2]|0;while(1){z=z-e|0;if((v|0)<=0)if(l){y=c[a>>2]|0;w=c[y+72>>2]|0;x=c[y+76>>2]|0;y=0;do{h[Q+(y<<3)>>3]=+h[w+(y<<3)>>3];h[u+(y<<3)>>3]=+h[x+(y<<3)>>3];y=y+1|0}while((y|0)!=(t|0));S=k;T=t}else{S=k;T=t}else{y=k<<1;x=Z(y,t)|0;w=c[a>>2]|0;db(c[w+72>>2]|0,c[w+56>>2]|0,y,Q)|0;w=c[a>>2]|0;db(c[w+76>>2]|0,c[w+60>>2]|0,y,u)|0;S=y;T=x}fb(o,e,(T|0)/2|0,s)|0;x=c[a>>2]|0;if((c[x+56>>2]|0)!=(c[x+60>>2]|0))break;if((Jb(n,16192)|0)!=0?(Jb(n,16200)|0)!=0:0)U=T+b|0;else{x=T+b|0;c[q>>2]=Ya(x,T)|0;c[p>>2]=1;U=x}wb(a,s,U,Q,T,R);wb(a,s,U,u,T,r);x=c[a>>2]|0;do if((c[x+56>>2]|0)==(c[x+60>>2]|0)){if((Jb(n,16192)|0)!=0?(Jb(n,16200)|0)!=0:0)break;$a(c[q>>2]|0);c[p>>2]=0}while(0);if(I){x=0;do{y=x+T|0;h[a+488+(x<<3)>>3]=+h[R+(y<<3)>>3];h[a+488+(x+z<<3)>>3]=+h[r+(y<<3)>>3];x=x+1|0}while((x|0)!=(e|0))}v=v+1|0;if((v|0)>=(m|0))break a;else k=S}pa(16256,f|0)|0;Ea(-1)}while(0);Lb(Q);Lb(u);Lb(s);Lb(R);Lb(r);i=d;return}}function pb(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0;d=i;i=i+16|0;e=d;f=c[a+20>>2]|0;g=c[a+32>>2]|0;j=c[(c[a>>2]|0)+64>>2]|0;k=f<<3;l=Kb(k)|0;m=Kb(k)|0;n=Kb(k)|0;o=Kb(k)|0;p=Kb(k)|0;q=Kb(k)|0;r=Kb(k)|0;s=j+f+((f|0)%2|0)<<3;t=Kb(s)|0;u=Kb(s)|0;s=(j<<1)+f<<3;v=Kb(s)|0;w=Kb(s)|0;s=Kb(k)|0;x=Kb(k)|0;if((g|0)<=0){Lb(l);Lb(m);Lb(n);Lb(o);Lb(r);Lb(t);Lb(u);Lb(v);Lb(w);Lb(s);Lb(x);Lb(p);Lb(q);i=d;return}k=(f|0)>0;y=g+-1|0;z=(j|0)/2|0;A=a+54|0;B=a+4|0;C=a+68|0;D=j+-1|0;E=1-j|0;F=a+484|0;G=f<<3;H=0;a:while(1){I=f+(Z(f,H)|0)|0;if(k)Nb(b|0,0,G|0)|0;if(!H){if(k){J=c[F>>2]|0;Qb(l|0,J|0,G|0)|0;Qb(m|0,J+(f<<3)|0,G|0)|0}}else if(k)Qb(m|0,(c[F>>2]|0)+(I<<3)|0,G|0)|0;I=~~+Ab(1.0,y-H|0);if((I|0)>0){J=0;do{K=(J|0)<(f|0);if(K){L=J;M=0;while(1){h[n+(M<<3)>>3]=+h[l+(L<<3)>>3];h[o+(M<<3)>>3]=+h[m+(L<<3)>>3];N=M+1|0;L=L+I|0;if((L|0)>=(f|0)){O=N;P=M;break}else M=N}if((P|0)>-1){M=(P>>>1)+1|0;L=0;N=0;while(1){h[p+(N<<3)>>3]=+h[n+(L<<3)>>3];h[q+(N<<3)>>3]=+h[o+(L<<3)>>3];N=N+1|0;if((N|0)==(M|0)){Q=O;R=M;break}else L=L+2|0}}else{Q=O;R=0}}else{Q=0;R=0}db(p,R,2,r)|0;L=R<<1;fb(r,L,z,t)|0;db(q,R,2,r)|0;fb(r,L,z,u)|0;M=L+j|0;L=c[a>>2]|0;do if((c[L+64>>2]|0)==(c[L+68>>2]|0)){if((Jb(A,16192)|0)!=0?(Jb(A,16200)|0)!=0:0){S=22;break}c[B>>2]=Ya(M,j)|0;c[C>>2]=1;T=c[a>>2]|0}else S=22;while(0);if((S|0)==22){S=0;if((c[L+56>>2]|0)==(c[L+60>>2]|0))T=L;else{S=23;break a}}wb(a,t,M,c[T+80>>2]|0,j,v);wb(a,u,M,c[(c[a>>2]|0)+84>>2]|0,j,w);N=M+-1|0;if((j|0)<=(N|0)){U=D;do{h[s+(E+U<<3)>>3]=+h[v+(U<<3)>>3]+ +h[w+(U<<3)>>3];U=U+1|0}while((U|0)<(N|0))}if((Q|0)>1){N=((Q+-2|0)>>>1)+1|0;U=1;M=0;while(1){h[p+(M<<3)>>3]=+h[n+(U<<3)>>3];h[q+(M<<3)>>3]=+h[o+(U<<3)>>3];M=M+1|0;if((M|0)==(N|0)){V=N;break}else U=U+2|0}}else V=0;db(p,V,2,r)|0;U=V<<1;fb(r,U,z,t)|0;db(q,V,2,r)|0;fb(r,U,z,u)|0;N=U+j|0;wb(a,t,N,c[(c[a>>2]|0)+80>>2]|0,j,v);wb(a,u,N,c[(c[a>>2]|0)+84>>2]|0,j,w);M=N+-1|0;if((j|0)<=(M|0)){N=D;do{h[x+(E+N<<3)>>3]=+h[v+(N<<3)>>3]+ +h[w+(N<<3)>>3];N=N+1|0}while((N|0)<(M|0))}hb(x,U,-1);if(K){M=J;N=0;while(1){h[b+(M<<3)>>3]=(+h[s+(N<<3)>>3]+ +h[x+(N<<3)>>3])*.5;M=M+I|0;if((M|0)>=(f|0))break;else N=N+1|0}}J=J+1|0}while((J|0)<(I|0))}if(k)Qb(l|0,b|0,G|0)|0;H=H+1|0;if((H|0)>=(g|0)){S=35;break}}if((S|0)==23){pa(16256,e|0)|0;Ea(-1)}else if((S|0)==35){Lb(l);Lb(m);Lb(n);Lb(o);Lb(r);Lb(t);Lb(u);Lb(v);Lb(w);Lb(s);Lb(x);Lb(p);Lb(q);i=d;return}}function qb(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0.0,r=0.0,s=0.0,t=0.0,u=0.0,v=0,w=0,x=0,y=0,z=0,A=0,B=0.0,C=0.0,D=0.0,E=0.0;d=c[a+20>>2]|0;e=c[a+32>>2]|0;c[a+76+(e<<2)>>2]=d;c[a+76>>2]=d;f=e+1|0;g=Z(f,d)|0;c[a+76+(f<<2)>>2]=g;f=a+24|0;c[f>>2]=g;if((e|0)>1){g=1;do{c[a+76+(g<<2)>>2]=d;g=g+1|0}while((g|0)!=(e|0))}g=d<<3;i=Kb(g)|0;j=Kb(g)|0;g=(d|0)>0;if(g){k=0;do{h[a+488+(k<<3)>>3]=+h[b+(k<<3)>>3];k=k+1|0}while((k|0)!=(d|0))}if((e|0)<=0){Lb(i);Lb(j);return}k=1;b=0;l=c[f>>2]|0;do{l=l-d|0;k=k<<((b|0)>0&1);f=c[a>>2]|0;m=c[f+56>>2]|0;n=Kb(m<<4)|0;if((m|0)>0){o=c[f+72>>2]|0;p=c[f+76>>2]|0;f=0;do{h[n+(f<<3)>>3]=+h[o+(f<<3)>>3]/1.4142135623730951;h[n+(f+m<<3)>>3]=+h[p+(f<<3)>>3]/1.4142135623730951;f=f+1|0}while((f|0)!=(m|0))}if(g){q=+h[n>>3];r=+h[n+(m<<3)>>3];f=(m|0)>1;p=0;do{s=+h[a+488+(p<<3)>>3];t=q*s;o=i+(p<<3)|0;h[o>>3]=t;u=r*s;v=j+(p<<3)|0;h[v>>3]=u;if(f){s=t;t=u;w=1;x=p;while(1){y=x-k|0;while(1)if((y|0)<(d|0)){z=y;break}else y=y-d|0;while(1)if((z|0)<0)z=z+d|0;else{A=z;break}u=+h[a+488+(A<<3)>>3];B=s+ +h[n+(w<<3)>>3]*u;C=t+ +h[n+(w+m<<3)>>3]*u;y=w+1|0;if((y|0)==(m|0)){D=B;E=C;break}else{s=B;t=C;w=y;x=A}}h[o>>3]=D;h[v>>3]=E}p=p+1|0}while((p|0)!=(d|0));Lb(n);if(g){p=0;do{h[a+488+(p<<3)>>3]=+h[i+(p<<3)>>3];h[a+488+(p+l<<3)>>3]=+h[j+(p<<3)>>3];p=p+1|0}while((p|0)!=(d|0))}}else Lb(n);b=b+1|0}while((b|0)!=(e|0));Lb(i);Lb(j);return}function rb(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0.0,s=0.0,t=0.0,u=0.0,v=0,w=0,x=0,y=0,z=0,A=0.0;d=c[a+20>>2]|0;e=c[a+32>>2]|0;f=~~+Eb(+(e|0)+-1.0);g=Kb(d<<3)|0;i=(d|0)>0;if(i){j=c[a+484>>2]|0;k=0;do{h[b+(k<<3)>>3]=+h[j+(k<<3)>>3];k=k+1|0}while((k|0)!=(d|0))}if((e|0)<=0){Lb(g);return}k=d<<3;j=f;f=0;l=d;while(1){j=(f|0)>0?(j|0)/2|0:j;m=c[a>>2]|0;n=c[m+56>>2]|0;o=Kb(n<<4)|0;if((n|0)>0){p=c[m+72>>2]|0;q=c[m+76>>2]|0;m=0;do{h[o+(m<<3)>>3]=+h[p+(m<<3)>>3]/1.4142135623730951;h[o+(m+n<<3)>>3]=+h[q+(m<<3)>>3]/1.4142135623730951;m=m+1|0}while((m|0)!=(n|0))}if(i){r=+h[o>>3];s=+h[o+(n<<3)>>3];m=(n|0)>1;q=0;do{t=r*+h[b+(q<<3)>>3]+s*+h[a+488+(q+l<<3)>>3];p=g+(q<<3)|0;h[p>>3]=t;if(m){u=t;v=1;w=q;while(1){x=w+j|0;while(1)if((x|0)<(d|0)){y=x;break}else x=x-d|0;while(1)if((y|0)<0)y=y+d|0;else{z=y;break}t=u+(+h[o+(v<<3)>>3]*+h[b+(z<<3)>>3]+ +h[o+(v+n<<3)>>3]*+h[a+488+(z+l<<3)>>3]);x=v+1|0;if((x|0)==(n|0)){A=t;break}else{u=t;v=x;w=z}}h[p>>3]=A}q=q+1|0}while((q|0)!=(d|0));Lb(o);if(i)Qb(b|0,g|0,k|0)|0}else Lb(o);f=f+1|0;if((f|0)==(e|0))break;else l=l+d|0}Lb(g);return}function sb(b,c){b=b|0;c=c|0;var d=0,e=0;d=i;i=i+16|0;if(!(Jb(c,16440)|0)){e=b+44|0;a[e>>0]=115;a[e+1>>0]=121;a[e+2>>0]=109;a[e+3>>0]=0;i=d;return}if(Jb(c,16432)|0){pa(16208,d|0)|0;Ea(-1)}c=b+44|0;a[c>>0]=112;a[c+1>>0]=101;a[c+2>>0]=114;a[c+3>>0]=0;i=d;return}function tb(a){a=a|0;Lb(a);return}function ub(a){a=a|0;Lb(a);return}function vb(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0;g=i;i=i+32|0;h=g+16|0;j=g;k=g+8|0;l=c[a>>2]|0;m=c[l+56>>2]|0;n=(c[l+60>>2]|0)+m|0;l=(n|0)/2|0;o=a+44|0;if(!(Jb(o,16432)|0)){p=Kb(l+d+((d|0)%2|0)<<3)|0;q=fb(b,d,(n|0)/4|0,p)|0;n=q+l|0;r=c[a>>2]|0;s=r+56|0;t=Kb(((c[s>>2]|0)+n<<3)+-8|0)|0;u=c[s>>2]|0;if((u|0)!=(c[r+60>>2]|0)){pa(16256,k|0)|0;Ea(-1)}k=a+54|0;if((Jb(k,16192)|0)!=0?(Jb(k,16200)|0)!=0:0){v=r;w=u}else{c[a+4>>2]=Ya(n,u)|0;c[a+68>>2]=1;u=c[a>>2]|0;v=u;w=c[u+56>>2]|0}wb(a,p,n,c[v+72>>2]|0,w,t);w=t+(l<<3)|0;eb(w,q,2,e)|0;l=c[a>>2]|0;wb(a,p,n,c[l+76>>2]|0,c[l+60>>2]|0,t);eb(w,q,2,f)|0;x=t;y=p}else{if(Jb(o,16440)|0){pa(16208,h|0)|0;Ea(-1)}h=m+-1|0;o=h<<1;p=Kb(o+d<<3)|0;t=gb(b,d,h,p)|0;d=Kb(t+(h*3|0)<<3)|0;h=c[a>>2]|0;b=c[h+56>>2]|0;if((b|0)!=(c[h+60>>2]|0)){pa(16256,j|0)|0;Ea(-1)}j=a+54|0;if((Jb(j,16192)|0)!=0?(Jb(j,16200)|0)!=0:0){z=t+o|0;A=h;B=b}else{b=t+o|0;c[a+4>>2]=Ya(b,m)|0;c[a+68>>2]=1;o=c[a>>2]|0;z=b;A=o;B=c[o+56>>2]|0}wb(a,p,z,c[A+72>>2]|0,B,d);B=d+(m<<3)|0;A=m+-2+t|0;eb(B,A,2,e)|0;e=c[a>>2]|0;wb(a,p,z,c[e+76>>2]|0,c[e+60>>2]|0,d);eb(B,A,2,f)|0;x=d;y=p}p=c[a>>2]|0;if((c[p+56>>2]|0)!=(c[p+60>>2]|0)){Lb(y);Lb(x);i=g;return}p=a+54|0;if((Jb(p,16192)|0)!=0?(Jb(p,16200)|0)!=0:0){Lb(y);Lb(x);i=g;return}$a(c[a+4>>2]|0);c[a+68>>2]=0;Lb(y);Lb(x);i=g;return}function wb(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0;h=i;i=i+16|0;j=h;k=a+54|0;if(!(Jb(k,16184)|0)){Za(b,d,e,f,g);i=h;return}if((Jb(k,16192)|0)!=0?(Jb(k,16200)|0)!=0:0){pa(16360,j|0)|0;Ea(-1)}if(!(c[a+68>>2]|0)){j=Ya(d,f)|0;f=a+4|0;c[f>>2]=j;_a(j,b,e,g);$a(c[f>>2]|0);i=h;return}else{_a(c[a+4>>2]|0,b,e,g);i=h;return}}function xb(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;if((Jb(b,16416)|0)!=0?(Jb(b,16424)|0)!=0:0){if((Jb(b,16448)|0)!=0?(Jb(b,16456)|0)!=0:0){if((Jb(b,16464)|0)!=0?(Jb(b,16472)|0)!=0:0){f=0;return f|0}f=Z(d+1|0,a)|0;return f|0}f=Z(d+1|0,a)|0;return f|0}if(!(Jb(e,16432)|0)){if((d|0)>0){b=a;g=0;h=d;while(1){i=~~+Y(+(+(b|0)*.5));j=i+g|0;if((h|0)>1){b=i;g=j;h=h+-1|0}else{k=i;l=j;break}}}else{k=a;l=0}f=l+k|0;return f|0}if(Jb(e,16440)|0){f=0;return f|0}if((d|0)>0){e=c+-2|0;c=a;k=0;l=d;while(1){d=~~+Y(+(+(e+c|0)*.5));h=d+k|0;if((l|0)>1){c=d;k=h;l=l+-1|0}else{m=d;n=h;break}}}else{m=a;n=0}f=n+m|0;return f|0}function yb(a,b,d,e,f,g,i,j,k){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;i=i|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;l=kb(d)|0;d=c[l+52>>2]|0;if((d|0)>0){m=c[l+72>>2]|0;n=c[l+76>>2]|0;o=c[l+80>>2]|0;p=d<<1;q=c[l+84>>2]|0;r=d*3|0;s=0;do{h[k+(s<<3)>>3]=+h[m+(s<<3)>>3];h[k+(d+s<<3)>>3]=+h[n+(s<<3)>>3];h[k+(p+s<<3)>>3]=+h[o+(s<<3)>>3];h[k+(r+s<<3)>>3]=+h[q+(s<<3)>>3];s=s+1|0}while((s|0)<(d|0))}d=lb(l,e,b,f)|0;do if((Jb(e,16416)|0)!=0?(Jb(e,16424)|0)!=0:0){if((Jb(e,16448)|0)!=0?(Jb(e,16456)|0)!=0:0){if((Jb(e,16464)|0)!=0?(Jb(e,16472)|0)!=0:0)break;qb(d,a);break}ob(d,a)}else t=6;while(0);if((t|0)==6){sb(d,g);mb(d,a)}a=d+28|0;if((c[a>>2]|0)>0){g=0;do{c[j+(g<<2)>>2]=c[d+76+(g<<2)>>2];g=g+1|0}while((g|0)<(c[a>>2]|0))}a=c[d+24>>2]|0;if((a|0)<=0){tb(l);ub(d);return}g=c[d+484>>2]|0;j=0;do{h[i+(j<<3)>>3]=+h[g+(j<<3)>>3];j=j+1|0}while((j|0)<(a|0));tb(l);ub(d);return}function zb(a,b,d,e,f,g,i,j,k,l){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;i=i|0;j=j|0;k=k|0;l=l|0;var m=0;m=kb(d)|0;d=lb(m,e,j,f)|0;if((b|0)>0){f=c[d+484>>2]|0;j=0;do{h[f+(j<<3)>>3]=+h[a+(j<<3)>>3];j=j+1|0}while((j|0)!=(b|0))}c[d+28>>2]=l;if((l|0)>0){b=0;do{c[d+76+(b<<2)>>2]=c[k+(b<<2)>>2];b=b+1|0}while((b|0)!=(l|0))}if((Jb(e,16416)|0)!=0?(Jb(e,16424)|0)!=0:0){if((Jb(e,16448)|0)!=0?(Jb(e,16456)|0)!=0:0){if((Jb(e,16464)|0)!=0?(Jb(e,16472)|0)!=0:0){tb(m);ub(d);return}rb(d,i);tb(m);ub(d);return}pb(d,i);tb(m);ub(d);return}sb(d,g);nb(d,i);tb(m);ub(d);return}function Ab(a,b){a=+a;b=b|0;return +(+Gb(a,b))}function Bb(b,c){b=b|0;c=c|0;var d=0;d=Cb(b,c)|0;return ((a[d>>0]|0)==(c&255)<<24>>24?d:0)|0}function Cb(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;e=d&255;if(!e){f=b+(Pb(b|0)|0)|0;return f|0}a:do if(!(b&3))g=b;else{h=d&255;i=b;while(1){j=a[i>>0]|0;if(j<<24>>24==0?1:j<<24>>24==h<<24>>24){f=i;break}j=i+1|0;if(!(j&3)){g=j;break a}else i=j}return f|0}while(0);b=Z(e,16843009)|0;e=c[g>>2]|0;b:do if(!((e&-2139062144^-2139062144)&e+-16843009)){i=e;h=g;while(1){j=i^b;if((j&-2139062144^-2139062144)&j+-16843009){k=h;break b}j=h+4|0;i=c[j>>2]|0;if((i&-2139062144^-2139062144)&i+-16843009){k=j;break}else h=j}}else k=g;while(0);g=d&255;d=k;while(1){k=a[d>>0]|0;if(k<<24>>24==0?1:k<<24>>24==g<<24>>24){f=d;break}else d=d+1|0}return f|0}function Db(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0;f=i;i=i+1056|0;g=f+1024|0;h=f;j=a[e>>0]|0;if(!(j<<24>>24)){k=b;i=f;return k|0}l=Bb(b,j<<24>>24)|0;if(!l){k=0;i=f;return k|0}b=a[e+1>>0]|0;if(!(b<<24>>24)){k=l;i=f;return k|0}m=l+1|0;n=a[m>>0]|0;if(!(n<<24>>24)){k=0;i=f;return k|0}o=a[e+2>>0]|0;if(!(o<<24>>24)){p=b&255|(j&255)<<8;q=m;m=n;r=l;s=d[l>>0]<<8|n&255;while(1){t=s&65535;if((t|0)==(p|0)){u=r;v=m;break}w=q+1|0;x=a[w>>0]|0;if(!(x<<24>>24)){u=q;v=0;break}else{y=q;q=w;m=x;s=x&255|t<<8;r=y}}k=v<<24>>24!=0?u:0;i=f;return k|0}u=l+2|0;v=a[u>>0]|0;if(!(v<<24>>24)){k=0;i=f;return k|0}r=a[e+3>>0]|0;if(!(r<<24>>24)){s=(b&255)<<16|(j&255)<<24|(o&255)<<8;m=(v&255)<<8|(n&255)<<16|d[l>>0]<<24;if((m|0)==(s|0)){z=u;A=v}else{q=u;u=m;while(1){m=q+1|0;p=a[m>>0]|0;u=(p&255|u)<<8;if(p<<24>>24==0|(u|0)==(s|0)){z=m;A=p;break}else q=m}}k=A<<24>>24!=0?z+-2|0:0;i=f;return k|0}z=l+3|0;A=a[z>>0]|0;if(!(A<<24>>24)){k=0;i=f;return k|0}if(!(a[e+4>>0]|0)){q=(b&255)<<16|(j&255)<<24|(o&255)<<8|r&255;r=(v&255)<<8|(n&255)<<16|A&255|d[l>>0]<<24;if((r|0)==(q|0)){B=z;C=A}else{A=z;z=r;while(1){r=A+1|0;n=a[r>>0]|0;z=n&255|z<<8;if(n<<24>>24==0|(z|0)==(q|0)){B=r;C=n;break}else A=r}}k=C<<24>>24!=0?B+-3|0:0;i=f;return k|0};c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;c[g+12>>2]=0;c[g+16>>2]=0;c[g+20>>2]=0;c[g+24>>2]=0;c[g+28>>2]=0;B=j;j=0;while(1){if(!(a[l+j>>0]|0)){D=0;break}C=g+(((B&255)>>>5&255)<<2)|0;c[C>>2]=c[C>>2]|1<<(B&31);C=j+1|0;c[h+((B&255)<<2)>>2]=C;B=a[e+C>>0]|0;if(!(B<<24>>24)){E=C;F=j;G=23;break}else j=C}a:do if((G|0)==23){b:do if(E>>>0>1){j=1;B=-1;C=0;c:while(1){A=j;q=C;z=1;while(1){r=A;n=q;d:while(1){v=r;o=1;while(1){b=a[e+(o+B)>>0]|0;s=a[e+v>>0]|0;if(b<<24>>24!=s<<24>>24){H=v;I=b;J=s;K=n;break d}if((o|0)==(z|0))break;o=o+1|0;v=o+n|0;if(v>>>0>=E>>>0){L=B;M=z;break c}}n=n+z|0;r=n+1|0;if(r>>>0>=E>>>0){L=B;M=z;break c}}r=H-B|0;if((I&255)<=(J&255)){N=K;break}n=H+1|0;if(n>>>0>>0){A=n;q=H;z=r}else{L=B;M=r;break c}}j=N+2|0;if(j>>>0>=E>>>0){L=N;M=1;break}else{B=N;C=N+1|0}}C=1;B=-1;j=0;while(1){z=C;q=j;A=1;while(1){r=z;n=q;e:while(1){v=r;o=1;while(1){s=a[e+(o+B)>>0]|0;b=a[e+v>>0]|0;if(s<<24>>24!=b<<24>>24){O=v;P=s;Q=b;R=n;break e}if((o|0)==(A|0))break;o=o+1|0;v=o+n|0;if(v>>>0>=E>>>0){S=L;T=B;U=M;V=A;break b}}n=n+A|0;r=n+1|0;if(r>>>0>=E>>>0){S=L;T=B;U=M;V=A;break b}}r=O-B|0;if((P&255)>=(Q&255)){W=R;break}n=O+1|0;if(n>>>0>>0){z=n;q=O;A=r}else{S=L;T=B;U=M;V=r;break b}}C=W+2|0;if(C>>>0>=E>>>0){S=L;T=W;U=M;V=1;break}else{B=W;j=W+1|0}}}else{S=-1;T=-1;U=1;V=1}while(0);j=(T+1|0)>>>0>(S+1|0)>>>0;B=j?V:U;C=j?T:S;j=C+1|0;if(!(Ib(e,e+B|0,j)|0)){A=E-B|0;q=E|63;if((E|0)==(B|0)){X=q;Y=E}else{z=l;r=0;n=l;f:while(1){v=z;do if((n-v|0)>>>0>>0){o=Hb(n,0,q)|0;if(o)if((o-v|0)>>>0>>0){D=0;break a}else{Z=o;break}else{Z=n+q|0;break}}else Z=n;while(0);v=a[z+F>>0]|0;if(!(1<<(v&31)&c[g+(((v&255)>>>5&255)<<2)>>2])){z=z+E|0;r=0;n=Z;continue}o=c[h+((v&255)<<2)>>2]|0;v=E-o|0;if((E|0)!=(o|0)){z=z+((r|0)!=0&v>>>0>>0?A:v)|0;r=0;n=Z;continue}v=j>>>0>r>>>0?j:r;o=a[e+v>>0]|0;g:do if(!(o<<24>>24))_=j;else{b=o;s=v;while(1){if(b<<24>>24!=(a[z+s>>0]|0)){$=s;break}s=s+1|0;b=a[e+s>>0]|0;if(!(b<<24>>24)){_=j;break g}}z=z+($-C)|0;r=0;n=Z;continue f}while(0);do{if(_>>>0<=r>>>0){D=z;break a}_=_+-1|0}while((a[e+_>>0]|0)==(a[z+_>>0]|0));z=z+B|0;r=A;n=Z}}}else{n=E-C+-1|0;X=E|63;Y=(C>>>0>n>>>0?C:n)+1|0}n=e+j|0;A=l;r=l;h:while(1){B=A;do if((r-B|0)>>>0>>0){z=Hb(r,0,X)|0;if(z)if((z-B|0)>>>0>>0){D=0;break a}else{aa=z;break}else{aa=r+X|0;break}}else aa=r;while(0);B=a[A+F>>0]|0;if(!(1<<(B&31)&c[g+(((B&255)>>>5&255)<<2)>>2])){A=A+E|0;r=aa;continue}z=c[h+((B&255)<<2)>>2]|0;if((E|0)!=(z|0)){A=A+(E-z)|0;r=aa;continue}z=a[n>>0]|0;i:do if(!(z<<24>>24))ba=j;else{B=z;q=j;while(1){if(B<<24>>24!=(a[A+q>>0]|0)){ca=q;break}q=q+1|0;B=a[e+q>>0]|0;if(!(B<<24>>24)){ba=j;break i}}A=A+(ca-C)|0;r=aa;continue h}while(0);do{if(!ba){D=A;break a}ba=ba+-1|0}while((a[e+ba>>0]|0)==(a[A+ba>>0]|0));A=A+Y|0;r=aa}}while(0);k=D;i=f;return k|0}function Eb(a){a=+a;var b=0,d=0,e=0,f=0,j=0.0,l=0.0,m=0.0,n=0.0;b=i;i=i+16|0;d=b;h[k>>3]=a;e=c[k+4>>2]|0;f=e&2147483647;do if(f>>>0>1083174911){if(((e|0)>-1|(e|0)==-1&(c[k>>2]|0)>>>0>4294967295)&f>>>0>1083179007){j=a*89884656743115795.0e291;i=b;return +j}if(f>>>0>2146435071){j=-1.0/a;i=b;return +j}if((e|0)<0)if(!(a<=-1075.0)){if(!(a+-4503599627370496.0+4503599627370496.0!=a))break;g[d>>2]=-1.401298464324817e-045/a;break}else{g[d>>2]=-1.401298464324817e-045/a;j=0.0;i=b;return +j}}else if(f>>>0<1016070144){j=a+1.0;i=b;return +j}while(0);l=a+26388279066624.0;h[k>>3]=l;f=(c[k>>2]|0)+128|0;d=f<<1&510;m=+h[16480+(d<<3)>>3];n=a-(l+-26388279066624.0)-+h[16480+((d|1)<<3)>>3];j=+Gb(m+m*n*(n*(n*(n*(n*1.3333559164630223e-003+.009618129842126066)+.0555041086648214)+.2402265069591)+.6931471805599453),(f&-256|0)/256|0);i=b;return +j}function Fb(a){a=+a;var b=0,d=0,e=0,f=0.0,g=0,i=0,j=0,l=0,m=0,n=0.0,o=0.0,p=0.0,q=0.0,r=0.0,s=0.0;h[k>>3]=a;b=c[k>>2]|0;d=c[k+4>>2]|0;e=(d|0)<0;do if(!(e|d>>>0<1048576)){if(d>>>0>2146435071){f=a;return +f}if((b|0)==0&0==0&(d|0)==1072693248){f=0.0;return +f}else{g=b;i=d;j=d;l=-1023}}else{if((b|0)==0&(d&2147483647|0)==0){f=-1.0/(a*a);return +f}if(!e){h[k>>3]=a*18014398509481984.0;m=c[k+4>>2]|0;g=c[k>>2]|0;i=m;j=m;l=-1077;break}f=(a-a)/0.0;return +f}while(0);i=j+614242|0;c[k>>2]=g;c[k+4>>2]=(i&1048575)+1072079006;a=+h[k>>3]+-1.0;n=a*(a*.5);o=a/(a+2.0);p=o*o;q=p*p;h[k>>3]=a-n;g=c[k+4>>2]|0;c[k>>2]=0;c[k+4>>2]=g;r=+h[k>>3];s=o*(n+(q*(q*(q*.15313837699209373+.22222198432149784)+.3999999999940942)+p*(q*(q*(q*.14798198605116586+.1818357216161805)+.2857142874366239)+.6666666666666735)))+(a-r-n);n=r*.4342944818781689;a=+(l+(i>>>20)|0);q=a*.30102999566361177;p=q+n;f=p+(n+(q-p)+(s*.4342944818781689+(a*3.694239077158931e-013+(r+s)*2.5082946711645275e-011)));return +f}function Gb(a,b){a=+a;b=b|0;var d=0.0,e=0,f=0,g=0,i=0.0;if((b|0)>1023){d=a*89884656743115795.0e291;e=b+-1023|0;if((e|0)>1023){f=b+-2046|0;g=(f|0)>1023?1023:f;i=d*89884656743115795.0e291}else{g=e;i=d}}else if((b|0)<-1022){d=a*2.2250738585072014e-308;e=b+1022|0;if((e|0)<-1022){f=b+2044|0;g=(f|0)<-1022?-1022:f;i=d*2.2250738585072014e-308}else{g=e;i=d}}else{g=b;i=a}b=Ob(g+1023|0,0,52)|0;g=B;c[k>>2]=b;c[k+4>>2]=g;return +(i*+h[k>>3])}function Hb(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;f=d&255;g=(e|0)!=0;a:do if(g&(b&3|0)!=0){h=d&255;i=e;j=b;while(1){if((a[j>>0]|0)==h<<24>>24){k=i;l=j;m=6;break a}n=j+1|0;o=i+-1|0;p=(o|0)!=0;if(p&(n&3|0)!=0){i=o;j=n}else{q=o;r=p;s=n;m=5;break}}}else{q=e;r=g;s=b;m=5}while(0);if((m|0)==5)if(r){k=q;l=s;m=6}else{t=0;u=s}b:do if((m|0)==6){s=d&255;if((a[l>>0]|0)==s<<24>>24){t=k;u=l}else{q=Z(f,16843009)|0;c:do if(k>>>0>3){r=k;b=l;while(1){g=c[b>>2]^q;if((g&-2139062144^-2139062144)&g+-16843009){v=r;w=b;break}g=b+4|0;e=r+-4|0;if(e>>>0>3){r=e;b=g}else{x=e;y=g;m=11;break c}}z=v;A=w}else{x=k;y=l;m=11}while(0);if((m|0)==11)if(!x){t=0;u=y;break}else{z=x;A=y}while(1){if((a[A>>0]|0)==s<<24>>24){t=z;u=A;break b}q=A+1|0;z=z+-1|0;if(!z){t=0;u=q;break}else A=q}}}while(0);return ((t|0)!=0?u:0)|0}function Ib(b,c,d){b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;if(!d){e=0;return e|0}else{f=d;g=b;h=c}while(1){c=a[g>>0]|0;b=a[h>>0]|0;if(c<<24>>24!=b<<24>>24){i=c;j=b;break}f=f+-1|0;if(!f){e=0;k=5;break}else{g=g+1|0;h=h+1|0}}if((k|0)==5)return e|0;e=(i&255)-(j&255)|0;return e|0}function Jb(b,c){b=b|0;c=c|0;var d=0,e=0,f=0,g=0;d=a[b>>0]|0;e=a[c>>0]|0;if(d<<24>>24==0?1:d<<24>>24!=e<<24>>24){f=d;g=e}else{e=b;b=c;do{e=e+1|0;b=b+1|0;c=a[e>>0]|0;d=a[b>>0]|0}while(!(c<<24>>24==0?1:c<<24>>24!=d<<24>>24));f=c;g=d}return (f&255)-(g&255)|0}function Kb(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ka=0,la=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ua=0,va=0,wa=0,ya=0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0,Fa=0,Ga=0,Ha=0,Ia=0,Ja=0,Ka=0,La=0,Ma=0,Na=0,Oa=0,Pa=0,Qa=0,Ra=0,Sa=0,Ta=0,Ua=0,Va=0,Wa=0,Xa=0;do if(a>>>0<245){b=a>>>0<11?16:a+11&-8;d=b>>>3;e=c[5144]|0;f=e>>>d;if(f&3){g=(f&1^1)+d|0;h=g<<1;i=20616+(h<<2)|0;j=20616+(h+2<<2)|0;h=c[j>>2]|0;k=h+8|0;l=c[k>>2]|0;do if((i|0)!=(l|0)){if(l>>>0<(c[5148]|0)>>>0)xa();m=l+12|0;if((c[m>>2]|0)==(h|0)){c[m>>2]=i;c[j>>2]=l;break}else xa()}else c[5144]=e&~(1<>2]=l|3;j=h+(l|4)|0;c[j>>2]=c[j>>2]|1;n=k;return n|0}j=c[5146]|0;if(b>>>0>j>>>0){if(f){l=2<>>12&16;m=l>>>i;l=m>>>5&8;o=m>>>l;m=o>>>2&4;p=o>>>m;o=p>>>1&2;q=p>>>o;p=q>>>1&1;r=(l|i|m|o|p)+(q>>>p)|0;p=r<<1;q=20616+(p<<2)|0;o=20616+(p+2<<2)|0;p=c[o>>2]|0;m=p+8|0;i=c[m>>2]|0;do if((q|0)!=(i|0)){if(i>>>0<(c[5148]|0)>>>0)xa();l=i+12|0;if((c[l>>2]|0)==(p|0)){c[l>>2]=q;c[o>>2]=i;s=c[5146]|0;break}else xa()}else{c[5144]=e&~(1<>2]=b|3;i=p+b|0;c[p+(b|4)>>2]=e|1;c[p+j>>2]=e;if(s){j=c[5149]|0;o=s>>>3;q=o<<1;d=20616+(q<<2)|0;f=c[5144]|0;k=1<>2]|0;if(h>>>0<(c[5148]|0)>>>0)xa();else{t=o;u=h}}else{c[5144]=f|k;t=20616+(q+2<<2)|0;u=d}c[t>>2]=j;c[u+12>>2]=j;c[j+8>>2]=u;c[j+12>>2]=d}c[5146]=e;c[5149]=i;n=m;return n|0}i=c[5145]|0;if(i){e=(i&0-i)+-1|0;i=e>>>12&16;d=e>>>i;e=d>>>5&8;j=d>>>e;d=j>>>2&4;q=j>>>d;j=q>>>1&2;k=q>>>j;q=k>>>1&1;f=c[20880+((e|i|d|j|q)+(k>>>q)<<2)>>2]|0;q=(c[f+4>>2]&-8)-b|0;k=f;j=f;while(1){f=c[k+16>>2]|0;if(!f){d=c[k+20>>2]|0;if(!d){v=q;w=j;break}else x=d}else x=f;f=(c[x+4>>2]&-8)-b|0;d=f>>>0>>0;q=d?f:q;k=x;j=d?x:j}j=c[5148]|0;if(w>>>0>>0)xa();k=w+b|0;if(w>>>0>=k>>>0)xa();q=c[w+24>>2]|0;m=c[w+12>>2]|0;do if((m|0)==(w|0)){p=w+20|0;r=c[p>>2]|0;if(!r){d=w+16|0;f=c[d>>2]|0;if(!f){y=0;break}else{z=f;A=d}}else{z=r;A=p}while(1){p=z+20|0;r=c[p>>2]|0;if(r){z=r;A=p;continue}p=z+16|0;r=c[p>>2]|0;if(!r){B=z;C=A;break}else{z=r;A=p}}if(C>>>0>>0)xa();else{c[C>>2]=0;y=B;break}}else{p=c[w+8>>2]|0;if(p>>>0>>0)xa();r=p+12|0;if((c[r>>2]|0)!=(w|0))xa();d=m+8|0;if((c[d>>2]|0)==(w|0)){c[r>>2]=m;c[d>>2]=p;y=m;break}else xa()}while(0);do if(q){m=c[w+28>>2]|0;j=20880+(m<<2)|0;if((w|0)==(c[j>>2]|0)){c[j>>2]=y;if(!y){c[5145]=c[5145]&~(1<>>0<(c[5148]|0)>>>0)xa();m=q+16|0;if((c[m>>2]|0)==(w|0))c[m>>2]=y;else c[q+20>>2]=y;if(!y)break}m=c[5148]|0;if(y>>>0>>0)xa();c[y+24>>2]=q;j=c[w+16>>2]|0;do if(j)if(j>>>0>>0)xa();else{c[y+16>>2]=j;c[j+24>>2]=y;break}while(0);j=c[w+20>>2]|0;if(j)if(j>>>0<(c[5148]|0)>>>0)xa();else{c[y+20>>2]=j;c[j+24>>2]=y;break}}while(0);if(v>>>0<16){q=v+b|0;c[w+4>>2]=q|3;j=w+(q+4)|0;c[j>>2]=c[j>>2]|1}else{c[w+4>>2]=b|3;c[w+(b|4)>>2]=v|1;c[w+(v+b)>>2]=v;j=c[5146]|0;if(j){q=c[5149]|0;m=j>>>3;j=m<<1;p=20616+(j<<2)|0;d=c[5144]|0;r=1<>2]|0;if(f>>>0<(c[5148]|0)>>>0)xa();else{D=m;E=f}}else{c[5144]=d|r;D=20616+(j+2<<2)|0;E=p}c[D>>2]=q;c[E+12>>2]=q;c[q+8>>2]=E;c[q+12>>2]=p}c[5146]=v;c[5149]=k}n=w+8|0;return n|0}else F=b}else F=b}else if(a>>>0<=4294967231){p=a+11|0;q=p&-8;j=c[5145]|0;if(j){r=0-q|0;d=p>>>8;if(d)if(q>>>0>16777215)G=31;else{p=(d+1048320|0)>>>16&8;f=d<>>16&4;m=f<>>16&2;i=14-(d|p|f)+(m<>>15)|0;G=q>>>(i+7|0)&1|i<<1}else G=0;i=c[20880+(G<<2)>>2]|0;a:do if(!i){H=r;I=0;J=0;K=86}else{f=r;m=0;p=q<<((G|0)==31?0:25-(G>>>1)|0);d=i;e=0;while(1){h=c[d+4>>2]&-8;o=h-q|0;if(o>>>0>>0)if((h|0)==(q|0)){L=o;M=d;N=d;K=90;break a}else{O=o;P=d}else{O=f;P=e}o=c[d+20>>2]|0;d=c[d+16+(p>>>31<<2)>>2]|0;h=(o|0)==0|(o|0)==(d|0)?m:o;if(!d){H=O;I=h;J=P;K=86;break}else{f=O;m=h;p=p<<1;e=P}}}while(0);if((K|0)==86){if((I|0)==0&(J|0)==0){i=2<>>12&16;b=i>>>r;i=b>>>5&8;k=b>>>i;b=k>>>2&4;e=k>>>b;k=e>>>1&2;p=e>>>k;e=p>>>1&1;Q=c[20880+((i|r|b|k|e)+(p>>>e)<<2)>>2]|0;R=0}else{Q=I;R=J}if(!Q){S=H;T=R}else{L=H;M=Q;N=R;K=90}}if((K|0)==90)while(1){K=0;e=(c[M+4>>2]&-8)-q|0;p=e>>>0>>0;k=p?e:L;e=p?M:N;p=c[M+16>>2]|0;if(p){L=k;M=p;N=e;K=90;continue}M=c[M+20>>2]|0;if(!M){S=k;T=e;break}else{L=k;N=e;K=90}}if((T|0)!=0?S>>>0<((c[5146]|0)-q|0)>>>0:0){j=c[5148]|0;if(T>>>0>>0)xa();e=T+q|0;if(T>>>0>=e>>>0)xa();k=c[T+24>>2]|0;p=c[T+12>>2]|0;do if((p|0)==(T|0)){b=T+20|0;r=c[b>>2]|0;if(!r){i=T+16|0;m=c[i>>2]|0;if(!m){U=0;break}else{V=m;W=i}}else{V=r;W=b}while(1){b=V+20|0;r=c[b>>2]|0;if(r){V=r;W=b;continue}b=V+16|0;r=c[b>>2]|0;if(!r){X=V;Y=W;break}else{V=r;W=b}}if(Y>>>0>>0)xa();else{c[Y>>2]=0;U=X;break}}else{b=c[T+8>>2]|0;if(b>>>0>>0)xa();r=b+12|0;if((c[r>>2]|0)!=(T|0))xa();i=p+8|0;if((c[i>>2]|0)==(T|0)){c[r>>2]=p;c[i>>2]=b;U=p;break}else xa()}while(0);do if(k){p=c[T+28>>2]|0;j=20880+(p<<2)|0;if((T|0)==(c[j>>2]|0)){c[j>>2]=U;if(!U){c[5145]=c[5145]&~(1<>>0<(c[5148]|0)>>>0)xa();p=k+16|0;if((c[p>>2]|0)==(T|0))c[p>>2]=U;else c[k+20>>2]=U;if(!U)break}p=c[5148]|0;if(U>>>0

>>0)xa();c[U+24>>2]=k;j=c[T+16>>2]|0;do if(j)if(j>>>0

>>0)xa();else{c[U+16>>2]=j;c[j+24>>2]=U;break}while(0);j=c[T+20>>2]|0;if(j)if(j>>>0<(c[5148]|0)>>>0)xa();else{c[U+20>>2]=j;c[j+24>>2]=U;break}}while(0);b:do if(S>>>0>=16){c[T+4>>2]=q|3;c[T+(q|4)>>2]=S|1;c[T+(S+q)>>2]=S;k=S>>>3;if(S>>>0<256){j=k<<1;p=20616+(j<<2)|0;b=c[5144]|0;i=1<>2]|0;if(r>>>0<(c[5148]|0)>>>0)xa();else{Z=k;_=r}}else{c[5144]=b|i;Z=20616+(j+2<<2)|0;_=p}c[Z>>2]=e;c[_+12>>2]=e;c[T+(q+8)>>2]=_;c[T+(q+12)>>2]=p;break}p=S>>>8;if(p)if(S>>>0>16777215)$=31;else{j=(p+1048320|0)>>>16&8;i=p<>>16&4;b=i<>>16&2;r=14-(p|j|i)+(b<>>15)|0;$=S>>>(r+7|0)&1|r<<1}else $=0;r=20880+($<<2)|0;c[T+(q+28)>>2]=$;c[T+(q+20)>>2]=0;c[T+(q+16)>>2]=0;i=c[5145]|0;b=1<<$;if(!(i&b)){c[5145]=i|b;c[r>>2]=e;c[T+(q+24)>>2]=r;c[T+(q+12)>>2]=e;c[T+(q+8)>>2]=e;break}b=c[r>>2]|0;c:do if((c[b+4>>2]&-8|0)!=(S|0)){r=S<<(($|0)==31?0:25-($>>>1)|0);i=b;while(1){j=i+16+(r>>>31<<2)|0;p=c[j>>2]|0;if(!p){aa=j;ba=i;break}if((c[p+4>>2]&-8|0)==(S|0)){ca=p;break c}else{r=r<<1;i=p}}if(aa>>>0<(c[5148]|0)>>>0)xa();else{c[aa>>2]=e;c[T+(q+24)>>2]=ba;c[T+(q+12)>>2]=e;c[T+(q+8)>>2]=e;break b}}else ca=b;while(0);b=ca+8|0;i=c[b>>2]|0;r=c[5148]|0;if(i>>>0>=r>>>0&ca>>>0>=r>>>0){c[i+12>>2]=e;c[b>>2]=e;c[T+(q+8)>>2]=i;c[T+(q+12)>>2]=ca;c[T+(q+24)>>2]=0;break}else xa()}else{i=S+q|0;c[T+4>>2]=i|3;b=T+(i+4)|0;c[b>>2]=c[b>>2]|1}while(0);n=T+8|0;return n|0}else F=q}else F=q}else F=-1;while(0);T=c[5146]|0;if(T>>>0>=F>>>0){S=T-F|0;ca=c[5149]|0;if(S>>>0>15){c[5149]=ca+F;c[5146]=S;c[ca+(F+4)>>2]=S|1;c[ca+T>>2]=S;c[ca+4>>2]=F|3}else{c[5146]=0;c[5149]=0;c[ca+4>>2]=T|3;S=ca+(T+4)|0;c[S>>2]=c[S>>2]|1}n=ca+8|0;return n|0}ca=c[5147]|0;if(ca>>>0>F>>>0){S=ca-F|0;c[5147]=S;ca=c[5150]|0;c[5150]=ca+F;c[ca+(F+4)>>2]=S|1;c[ca+4>>2]=F|3;n=ca+8|0;return n|0}do if(!(c[5262]|0)){ca=ma(30)|0;if(!(ca+-1&ca)){c[5264]=ca;c[5263]=ca;c[5265]=-1;c[5266]=-1;c[5267]=0;c[5255]=0;c[5262]=(za(0)|0)&-16^1431655768;break}else xa()}while(0);ca=F+48|0;S=c[5264]|0;T=F+47|0;ba=S+T|0;aa=0-S|0;S=ba&aa;if(S>>>0<=F>>>0){n=0;return n|0}$=c[5254]|0;if(($|0)!=0?(_=c[5252]|0,Z=_+S|0,Z>>>0<=_>>>0|Z>>>0>$>>>0):0){n=0;return n|0}d:do if(!(c[5255]&4)){$=c[5150]|0;e:do if($){Z=21024;while(1){_=c[Z>>2]|0;if(_>>>0<=$>>>0?(U=Z+4|0,(_+(c[U>>2]|0)|0)>>>0>$>>>0):0){da=Z;ea=U;break}Z=c[Z+8>>2]|0;if(!Z){K=174;break e}}Z=ba-(c[5147]|0)&aa;if(Z>>>0<2147483647){U=ja(Z|0)|0;_=(U|0)==((c[da>>2]|0)+(c[ea>>2]|0)|0);X=_?Z:0;if(_)if((U|0)==(-1|0))fa=X;else{ga=U;ha=X;K=194;break d}else{ia=U;ka=Z;la=X;K=184}}else fa=0}else K=174;while(0);do if((K|0)==174){$=ja(0)|0;if(($|0)!=(-1|0)){q=$;X=c[5263]|0;Z=X+-1|0;if(!(Z&q))na=S;else na=S-q+(Z+q&0-X)|0;X=c[5252]|0;q=X+na|0;if(na>>>0>F>>>0&na>>>0<2147483647){Z=c[5254]|0;if((Z|0)!=0?q>>>0<=X>>>0|q>>>0>Z>>>0:0){fa=0;break}Z=ja(na|0)|0;q=(Z|0)==($|0);X=q?na:0;if(q){ga=$;ha=X;K=194;break d}else{ia=Z;ka=na;la=X;K=184}}else fa=0}else fa=0}while(0);f:do if((K|0)==184){X=0-ka|0;do if(ca>>>0>ka>>>0&(ka>>>0<2147483647&(ia|0)!=(-1|0))?(Z=c[5264]|0,$=T-ka+Z&0-Z,$>>>0<2147483647):0)if((ja($|0)|0)==(-1|0)){ja(X|0)|0;fa=la;break f}else{oa=$+ka|0;break}else oa=ka;while(0);if((ia|0)==(-1|0))fa=la;else{ga=ia;ha=oa;K=194;break d}}while(0);c[5255]=c[5255]|4;pa=fa;K=191}else{pa=0;K=191}while(0);if((((K|0)==191?S>>>0<2147483647:0)?(fa=ja(S|0)|0,S=ja(0)|0,fa>>>0>>0&((fa|0)!=(-1|0)&(S|0)!=(-1|0))):0)?(oa=S-fa|0,S=oa>>>0>(F+40|0)>>>0,S):0){ga=fa;ha=S?oa:pa;K=194}if((K|0)==194){pa=(c[5252]|0)+ha|0;c[5252]=pa;if(pa>>>0>(c[5253]|0)>>>0)c[5253]=pa;pa=c[5150]|0;g:do if(pa){oa=21024;do{S=c[oa>>2]|0;fa=oa+4|0;ia=c[fa>>2]|0;if((ga|0)==(S+ia|0)){qa=S;ra=fa;sa=ia;ua=oa;K=204;break}oa=c[oa+8>>2]|0}while((oa|0)!=0);if(((K|0)==204?(c[ua+12>>2]&8|0)==0:0)?pa>>>0>>0&pa>>>0>=qa>>>0:0){c[ra>>2]=sa+ha;oa=(c[5147]|0)+ha|0;ia=pa+8|0;fa=(ia&7|0)==0?0:0-ia&7;ia=oa-fa|0;c[5150]=pa+fa;c[5147]=ia;c[pa+(fa+4)>>2]=ia|1;c[pa+(oa+4)>>2]=40;c[5151]=c[5266];break}oa=c[5148]|0;if(ga>>>0>>0){c[5148]=ga;va=ga}else va=oa;oa=ga+ha|0;ia=21024;while(1){if((c[ia>>2]|0)==(oa|0)){wa=ia;ya=ia;K=212;break}ia=c[ia+8>>2]|0;if(!ia){Aa=21024;break}}if((K|0)==212)if(!(c[ya+12>>2]&8)){c[wa>>2]=ga;ia=ya+4|0;c[ia>>2]=(c[ia>>2]|0)+ha;ia=ga+8|0;oa=(ia&7|0)==0?0:0-ia&7;ia=ga+(ha+8)|0;fa=(ia&7|0)==0?0:0-ia&7;ia=ga+(fa+ha)|0;S=oa+F|0;la=ga+S|0;ka=ia-(ga+oa)-F|0;c[ga+(oa+4)>>2]=F|3;h:do if((ia|0)!=(pa|0)){if((ia|0)==(c[5149]|0)){T=(c[5146]|0)+ka|0;c[5146]=T;c[5149]=la;c[ga+(S+4)>>2]=T|1;c[ga+(T+S)>>2]=T;break}T=ha+4|0;ca=c[ga+(T+fa)>>2]|0;if((ca&3|0)==1){na=ca&-8;ea=ca>>>3;i:do if(ca>>>0>=256){da=c[ga+((fa|24)+ha)>>2]|0;aa=c[ga+(ha+12+fa)>>2]|0;do if((aa|0)==(ia|0)){ba=fa|16;X=ga+(T+ba)|0;$=c[X>>2]|0;if(!$){Z=ga+(ba+ha)|0;ba=c[Z>>2]|0;if(!ba){Ba=0;break}else{Ca=ba;Da=Z}}else{Ca=$;Da=X}while(1){X=Ca+20|0;$=c[X>>2]|0;if($){Ca=$;Da=X;continue}X=Ca+16|0;$=c[X>>2]|0;if(!$){Ea=Ca;Fa=Da;break}else{Ca=$;Da=X}}if(Fa>>>0>>0)xa();else{c[Fa>>2]=0;Ba=Ea;break}}else{X=c[ga+((fa|8)+ha)>>2]|0;if(X>>>0>>0)xa();$=X+12|0;if((c[$>>2]|0)!=(ia|0))xa();Z=aa+8|0;if((c[Z>>2]|0)==(ia|0)){c[$>>2]=aa;c[Z>>2]=X;Ba=aa;break}else xa()}while(0);if(!da)break;aa=c[ga+(ha+28+fa)>>2]|0;X=20880+(aa<<2)|0;do if((ia|0)!=(c[X>>2]|0)){if(da>>>0<(c[5148]|0)>>>0)xa();Z=da+16|0;if((c[Z>>2]|0)==(ia|0))c[Z>>2]=Ba;else c[da+20>>2]=Ba;if(!Ba)break i}else{c[X>>2]=Ba;if(Ba)break;c[5145]=c[5145]&~(1<>>0>>0)xa();c[Ba+24>>2]=da;X=fa|16;Z=c[ga+(X+ha)>>2]|0;do if(Z)if(Z>>>0>>0)xa();else{c[Ba+16>>2]=Z;c[Z+24>>2]=Ba;break}while(0);Z=c[ga+(T+X)>>2]|0;if(!Z)break;if(Z>>>0<(c[5148]|0)>>>0)xa();else{c[Ba+20>>2]=Z;c[Z+24>>2]=Ba;break}}else{Z=c[ga+((fa|8)+ha)>>2]|0;aa=c[ga+(ha+12+fa)>>2]|0;da=20616+(ea<<1<<2)|0;do if((Z|0)!=(da|0)){if(Z>>>0>>0)xa();if((c[Z+12>>2]|0)==(ia|0))break;xa()}while(0);if((aa|0)==(Z|0)){c[5144]=c[5144]&~(1<>>0>>0)xa();X=aa+8|0;if((c[X>>2]|0)==(ia|0)){Ga=X;break}xa()}while(0);c[Z+12>>2]=aa;c[Ga>>2]=Z}while(0);Ha=ga+((na|fa)+ha)|0;Ia=na+ka|0}else{Ha=ia;Ia=ka}ea=Ha+4|0;c[ea>>2]=c[ea>>2]&-2;c[ga+(S+4)>>2]=Ia|1;c[ga+(Ia+S)>>2]=Ia;ea=Ia>>>3;if(Ia>>>0<256){T=ea<<1;ca=20616+(T<<2)|0;da=c[5144]|0;X=1<>2]|0;if($>>>0>=(c[5148]|0)>>>0){Ja=ea;Ka=$;break}xa()}while(0);c[Ja>>2]=la;c[Ka+12>>2]=la;c[ga+(S+8)>>2]=Ka;c[ga+(S+12)>>2]=ca;break}T=Ia>>>8;do if(!T)La=0;else{if(Ia>>>0>16777215){La=31;break}X=(T+1048320|0)>>>16&8;da=T<>>16&4;$=da<>>16&2;ea=14-(na|X|da)+($<>>15)|0;La=Ia>>>(ea+7|0)&1|ea<<1}while(0);T=20880+(La<<2)|0;c[ga+(S+28)>>2]=La;c[ga+(S+20)>>2]=0;c[ga+(S+16)>>2]=0;ca=c[5145]|0;ea=1<>2]=la;c[ga+(S+24)>>2]=T;c[ga+(S+12)>>2]=la;c[ga+(S+8)>>2]=la;break}ea=c[T>>2]|0;j:do if((c[ea+4>>2]&-8|0)!=(Ia|0)){T=Ia<<((La|0)==31?0:25-(La>>>1)|0);ca=ea;while(1){da=ca+16+(T>>>31<<2)|0;$=c[da>>2]|0;if(!$){Ma=da;Na=ca;break}if((c[$+4>>2]&-8|0)==(Ia|0)){Oa=$;break j}else{T=T<<1;ca=$}}if(Ma>>>0<(c[5148]|0)>>>0)xa();else{c[Ma>>2]=la;c[ga+(S+24)>>2]=Na;c[ga+(S+12)>>2]=la;c[ga+(S+8)>>2]=la;break h}}else Oa=ea;while(0);ea=Oa+8|0;ca=c[ea>>2]|0;T=c[5148]|0;if(ca>>>0>=T>>>0&Oa>>>0>=T>>>0){c[ca+12>>2]=la;c[ea>>2]=la;c[ga+(S+8)>>2]=ca;c[ga+(S+12)>>2]=Oa;c[ga+(S+24)>>2]=0;break}else xa()}else{ca=(c[5147]|0)+ka|0;c[5147]=ca;c[5150]=la;c[ga+(S+4)>>2]=ca|1}while(0);n=ga+(oa|8)|0;return n|0}else Aa=21024;while(1){S=c[Aa>>2]|0;if(S>>>0<=pa>>>0?(la=c[Aa+4>>2]|0,ka=S+la|0,ka>>>0>pa>>>0):0){Pa=S;Qa=la;Ra=ka;break}Aa=c[Aa+8>>2]|0}oa=Pa+(Qa+-39)|0;ka=Pa+(Qa+-47+((oa&7|0)==0?0:0-oa&7))|0;oa=pa+16|0;la=ka>>>0>>0?pa:ka;ka=la+8|0;S=ga+8|0;ia=(S&7|0)==0?0:0-S&7;S=ha+-40-ia|0;c[5150]=ga+ia;c[5147]=S;c[ga+(ia+4)>>2]=S|1;c[ga+(ha+-36)>>2]=40;c[5151]=c[5266];S=la+4|0;c[S>>2]=27;c[ka>>2]=c[5256];c[ka+4>>2]=c[5257];c[ka+8>>2]=c[5258];c[ka+12>>2]=c[5259];c[5256]=ga;c[5257]=ha;c[5259]=0;c[5258]=ka;ka=la+28|0;c[ka>>2]=7;if((la+32|0)>>>0>>0){ia=ka;do{ka=ia;ia=ia+4|0;c[ia>>2]=7}while((ka+8|0)>>>0>>0)}if((la|0)!=(pa|0)){ia=la-pa|0;c[S>>2]=c[S>>2]&-2;c[pa+4>>2]=ia|1;c[la>>2]=ia;ka=ia>>>3;if(ia>>>0<256){fa=ka<<1;ca=20616+(fa<<2)|0;ea=c[5144]|0;T=1<>2]|0;if(Z>>>0<(c[5148]|0)>>>0)xa();else{Sa=ka;Ta=Z}}else{c[5144]=ea|T;Sa=20616+(fa+2<<2)|0;Ta=ca}c[Sa>>2]=pa;c[Ta+12>>2]=pa;c[pa+8>>2]=Ta;c[pa+12>>2]=ca;break}ca=ia>>>8;if(ca)if(ia>>>0>16777215)Ua=31;else{fa=(ca+1048320|0)>>>16&8;T=ca<>>16&4;ea=T<>>16&2;Z=14-(ca|fa|T)+(ea<>>15)|0;Ua=ia>>>(Z+7|0)&1|Z<<1}else Ua=0;Z=20880+(Ua<<2)|0;c[pa+28>>2]=Ua;c[pa+20>>2]=0;c[oa>>2]=0;T=c[5145]|0;ea=1<>2]=pa;c[pa+24>>2]=Z;c[pa+12>>2]=pa;c[pa+8>>2]=pa;break}ea=c[Z>>2]|0;k:do if((c[ea+4>>2]&-8|0)!=(ia|0)){Z=ia<<((Ua|0)==31?0:25-(Ua>>>1)|0);T=ea;while(1){fa=T+16+(Z>>>31<<2)|0;ca=c[fa>>2]|0;if(!ca){Va=fa;Wa=T;break}if((c[ca+4>>2]&-8|0)==(ia|0)){Xa=ca;break k}else{Z=Z<<1;T=ca}}if(Va>>>0<(c[5148]|0)>>>0)xa();else{c[Va>>2]=pa;c[pa+24>>2]=Wa;c[pa+12>>2]=pa;c[pa+8>>2]=pa;break g}}else Xa=ea;while(0);ea=Xa+8|0;ia=c[ea>>2]|0;oa=c[5148]|0;if(ia>>>0>=oa>>>0&Xa>>>0>=oa>>>0){c[ia+12>>2]=pa;c[ea>>2]=pa;c[pa+8>>2]=ia;c[pa+12>>2]=Xa;c[pa+24>>2]=0;break}else xa()}}else{ia=c[5148]|0;if((ia|0)==0|ga>>>0>>0)c[5148]=ga;c[5256]=ga;c[5257]=ha;c[5259]=0;c[5153]=c[5262];c[5152]=-1;ia=0;do{ea=ia<<1;oa=20616+(ea<<2)|0;c[20616+(ea+3<<2)>>2]=oa;c[20616+(ea+2<<2)>>2]=oa;ia=ia+1|0}while((ia|0)!=32);ia=ga+8|0;oa=(ia&7|0)==0?0:0-ia&7;ia=ha+-40-oa|0;c[5150]=ga+oa;c[5147]=ia;c[ga+(oa+4)>>2]=ia|1;c[ga+(ha+-36)>>2]=40;c[5151]=c[5266]}while(0);ha=c[5147]|0;if(ha>>>0>F>>>0){ga=ha-F|0;c[5147]=ga;ha=c[5150]|0;c[5150]=ha+F;c[ha+(F+4)>>2]=ga|1;c[ha+4>>2]=F|3;n=ha+8|0;return n|0}}c[(ta()|0)>>2]=12;n=0;return n|0}function Lb(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0;if(!a)return;b=a+-8|0;d=c[5148]|0;if(b>>>0>>0)xa();e=c[a+-4>>2]|0;f=e&3;if((f|0)==1)xa();g=e&-8;h=a+(g+-8)|0;do if(!(e&1)){i=c[b>>2]|0;if(!f)return;j=-8-i|0;k=a+j|0;l=i+g|0;if(k>>>0>>0)xa();if((k|0)==(c[5149]|0)){m=a+(g+-4)|0;n=c[m>>2]|0;if((n&3|0)!=3){o=k;p=l;break}c[5146]=l;c[m>>2]=n&-2;c[a+(j+4)>>2]=l|1;c[h>>2]=l;return}n=i>>>3;if(i>>>0<256){i=c[a+(j+8)>>2]|0;m=c[a+(j+12)>>2]|0;q=20616+(n<<1<<2)|0;if((i|0)!=(q|0)){if(i>>>0>>0)xa();if((c[i+12>>2]|0)!=(k|0))xa()}if((m|0)==(i|0)){c[5144]=c[5144]&~(1<>>0>>0)xa();q=m+8|0;if((c[q>>2]|0)==(k|0))r=q;else xa()}else r=m+8|0;c[i+12>>2]=m;c[r>>2]=i;o=k;p=l;break}i=c[a+(j+24)>>2]|0;m=c[a+(j+12)>>2]|0;do if((m|0)==(k|0)){q=a+(j+20)|0;n=c[q>>2]|0;if(!n){s=a+(j+16)|0;t=c[s>>2]|0;if(!t){u=0;break}else{v=t;w=s}}else{v=n;w=q}while(1){q=v+20|0;n=c[q>>2]|0;if(n){v=n;w=q;continue}q=v+16|0;n=c[q>>2]|0;if(!n){x=v;y=w;break}else{v=n;w=q}}if(y>>>0>>0)xa();else{c[y>>2]=0;u=x;break}}else{q=c[a+(j+8)>>2]|0;if(q>>>0>>0)xa();n=q+12|0;if((c[n>>2]|0)!=(k|0))xa();s=m+8|0;if((c[s>>2]|0)==(k|0)){c[n>>2]=m;c[s>>2]=q;u=m;break}else xa()}while(0);if(i){m=c[a+(j+28)>>2]|0;q=20880+(m<<2)|0;if((k|0)==(c[q>>2]|0)){c[q>>2]=u;if(!u){c[5145]=c[5145]&~(1<>>0<(c[5148]|0)>>>0)xa();m=i+16|0;if((c[m>>2]|0)==(k|0))c[m>>2]=u;else c[i+20>>2]=u;if(!u){o=k;p=l;break}}m=c[5148]|0;if(u>>>0>>0)xa();c[u+24>>2]=i;q=c[a+(j+16)>>2]|0;do if(q)if(q>>>0>>0)xa();else{c[u+16>>2]=q;c[q+24>>2]=u;break}while(0);q=c[a+(j+20)>>2]|0;if(q)if(q>>>0<(c[5148]|0)>>>0)xa();else{c[u+20>>2]=q;c[q+24>>2]=u;o=k;p=l;break}else{o=k;p=l}}else{o=k;p=l}}else{o=b;p=g}while(0);if(o>>>0>=h>>>0)xa();b=a+(g+-4)|0;u=c[b>>2]|0;if(!(u&1))xa();if(!(u&2)){if((h|0)==(c[5150]|0)){d=(c[5147]|0)+p|0;c[5147]=d;c[5150]=o;c[o+4>>2]=d|1;if((o|0)!=(c[5149]|0))return;c[5149]=0;c[5146]=0;return}if((h|0)==(c[5149]|0)){d=(c[5146]|0)+p|0;c[5146]=d;c[5149]=o;c[o+4>>2]=d|1;c[o+d>>2]=d;return}d=(u&-8)+p|0;x=u>>>3;do if(u>>>0>=256){y=c[a+(g+16)>>2]|0;w=c[a+(g|4)>>2]|0;do if((w|0)==(h|0)){v=a+(g+12)|0;r=c[v>>2]|0;if(!r){f=a+(g+8)|0;e=c[f>>2]|0;if(!e){z=0;break}else{A=e;B=f}}else{A=r;B=v}while(1){v=A+20|0;r=c[v>>2]|0;if(r){A=r;B=v;continue}v=A+16|0;r=c[v>>2]|0;if(!r){C=A;D=B;break}else{A=r;B=v}}if(D>>>0<(c[5148]|0)>>>0)xa();else{c[D>>2]=0;z=C;break}}else{v=c[a+g>>2]|0;if(v>>>0<(c[5148]|0)>>>0)xa();r=v+12|0;if((c[r>>2]|0)!=(h|0))xa();f=w+8|0;if((c[f>>2]|0)==(h|0)){c[r>>2]=w;c[f>>2]=v;z=w;break}else xa()}while(0);if(y){w=c[a+(g+20)>>2]|0;l=20880+(w<<2)|0;if((h|0)==(c[l>>2]|0)){c[l>>2]=z;if(!z){c[5145]=c[5145]&~(1<>>0<(c[5148]|0)>>>0)xa();w=y+16|0;if((c[w>>2]|0)==(h|0))c[w>>2]=z;else c[y+20>>2]=z;if(!z)break}w=c[5148]|0;if(z>>>0>>0)xa();c[z+24>>2]=y;l=c[a+(g+8)>>2]|0;do if(l)if(l>>>0>>0)xa();else{c[z+16>>2]=l;c[l+24>>2]=z;break}while(0);l=c[a+(g+12)>>2]|0;if(l)if(l>>>0<(c[5148]|0)>>>0)xa();else{c[z+20>>2]=l;c[l+24>>2]=z;break}}}else{l=c[a+g>>2]|0;w=c[a+(g|4)>>2]|0;y=20616+(x<<1<<2)|0;if((l|0)!=(y|0)){if(l>>>0<(c[5148]|0)>>>0)xa();if((c[l+12>>2]|0)!=(h|0))xa()}if((w|0)==(l|0)){c[5144]=c[5144]&~(1<>>0<(c[5148]|0)>>>0)xa();y=w+8|0;if((c[y>>2]|0)==(h|0))E=y;else xa()}else E=w+8|0;c[l+12>>2]=w;c[E>>2]=l}while(0);c[o+4>>2]=d|1;c[o+d>>2]=d;if((o|0)==(c[5149]|0)){c[5146]=d;return}else F=d}else{c[b>>2]=u&-2;c[o+4>>2]=p|1;c[o+p>>2]=p;F=p}p=F>>>3;if(F>>>0<256){u=p<<1;b=20616+(u<<2)|0;d=c[5144]|0;E=1<>2]|0;if(h>>>0<(c[5148]|0)>>>0)xa();else{G=p;H=h}}else{c[5144]=d|E;G=20616+(u+2<<2)|0;H=b}c[G>>2]=o;c[H+12>>2]=o;c[o+8>>2]=H;c[o+12>>2]=b;return}b=F>>>8;if(b)if(F>>>0>16777215)I=31;else{H=(b+1048320|0)>>>16&8;G=b<>>16&4;u=G<>>16&2;E=14-(b|H|G)+(u<>>15)|0;I=F>>>(E+7|0)&1|E<<1}else I=0;E=20880+(I<<2)|0;c[o+28>>2]=I;c[o+20>>2]=0;c[o+16>>2]=0;G=c[5145]|0;u=1<>2]|0;b:do if((c[H+4>>2]&-8|0)!=(F|0)){b=F<<((I|0)==31?0:25-(I>>>1)|0);d=H;while(1){h=d+16+(b>>>31<<2)|0;p=c[h>>2]|0;if(!p){J=h;K=d;break}if((c[p+4>>2]&-8|0)==(F|0)){L=p;break b}else{b=b<<1;d=p}}if(J>>>0<(c[5148]|0)>>>0)xa();else{c[J>>2]=o;c[o+24>>2]=K;c[o+12>>2]=o;c[o+8>>2]=o;break a}}else L=H;while(0);H=L+8|0;d=c[H>>2]|0;b=c[5148]|0;if(d>>>0>=b>>>0&L>>>0>=b>>>0){c[d+12>>2]=o;c[H>>2]=o;c[o+8>>2]=d;c[o+12>>2]=L;c[o+24>>2]=0;break}else xa()}else{c[5145]=G|u;c[E>>2]=o;c[o+24>>2]=E;c[o+12>>2]=o;c[o+8>>2]=o}while(0);o=(c[5152]|0)+-1|0;c[5152]=o;if(!o)M=21032;else return;while(1){o=c[M>>2]|0;if(!o)break;else M=o+8|0}c[5152]=-1;return}function Mb(){}function Nb(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;f=b+e|0;if((e|0)>=20){d=d&255;g=b&3;h=d|d<<8|d<<16|d<<24;i=f&~3;if(g){g=b+4-g|0;while((b|0)<(g|0)){a[b>>0]=d;b=b+1|0}}while((b|0)<(i|0)){c[b>>2]=h;b=b+4|0}}while((b|0)<(f|0)){a[b>>0]=d;b=b+1|0}return b-e|0}function Ob(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){B=b<>>32-c;return a<>0]|0)c=c+1|0;return c-b|0}function Qb(b,d,e){b=b|0;d=d|0;e=e|0;var f=0;if((e|0)>=4096)return ka(b|0,d|0,e|0)|0;f=b|0;if((b&3)==(d&3)){while(b&3){if(!e)return f|0;a[b>>0]=a[d>>0]|0;b=b+1|0;d=d+1|0;e=e-1|0}while((e|0)>=4){c[b>>2]=c[d>>2];b=b+4|0;d=d+4|0;e=e-4|0}}while((e|0)>0){a[b>>0]=a[d>>0]|0;b=b+1|0;d=d+1|0;e=e-1|0}return f|0}function Rb(b,c){b=b|0;c=c|0;var d=0;do{a[b+d>>0]=a[c+d>>0];d=d+1|0}while(a[c+(d-1)>>0]|0);return b|0} // EMSCRIPTEN_END_FUNCS return{_filtcoef:bb,_free:Lb,_wave_transform:yb,_wtoutputlength:xb,_memset:Nb,_malloc:Kb,_memcpy:Qb,_strlen:Pb,_inv_wave_transform:zb,_filtlength:ab,_strcpy:Rb,_bitshift64Shl:Ob,runPostSets:Mb,stackAlloc:Ga,stackSave:Ha,stackRestore:Ia,establishStackSpace:Ja,setThrew:Ka,setTempRet0:Na,getTempRet0:Oa}})