UNPKG

opus-encdec

Version:

A JavaScript library for encoding and decoding OPUS audio

5 lines 368 kB
var Module=typeof Module!=="undefined"?Module:{};(function(root,factory,globalExport){var lib,env;if(typeof define==="function"&&define.amd){define(["require"],function(req){lib=factory(root,req);return lib})}else if(typeof module==="object"&&module.exports){env=typeof process!=="undefined"&&process&&process.env?process.env:root;lib=factory(env,module.require);module.exports=lib}else{lib=factory(root);root[globalExport]=lib}})(typeof self!=="undefined"?self:typeof window!=="undefined"?window:typeof global!=="undefined"?global:this,function(global,require){null;var Module={};Module["isReady"]=false;Module["onready"]=null;Module["onRuntimeInitialized"]=function(){Module["isReady"]=true;if(Module["onready"])setTimeout(Module["onready"],0)};if(global&&global.OPUS_SCRIPT_LOCATION){Module["locateFile"]=function(fileName){var path=global.OPUS_SCRIPT_LOCATION||"";if(path[fileName])return path[fileName];path+=path&&!/\/$/.test(path)?"/":"";return path+fileName}}var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var arguments_=[];var thisProgram="./this.program";var quit_=function(status,toThrow){throw toThrow};var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;ENVIRONMENT_IS_WEB=typeof window==="object";ENVIRONMENT_IS_WORKER=typeof importScripts==="function";ENVIRONMENT_IS_NODE=typeof process==="object"&&typeof process.versions==="object"&&typeof process.versions.node==="string";ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;var nodeFS;var nodePath;if(ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){scriptDirectory=require("path").dirname(scriptDirectory)+"/"}else{scriptDirectory=__dirname+"/"}read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);return nodeFS["readFileSync"](filename,binary?null:"utf8")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};if(process["argv"].length>1){thisProgram=process["argv"][1].replace(/\\/g,"/")}arguments_=process["argv"].slice(2);if(typeof module!=="undefined"){module["exports"]=Module}process["on"]("uncaughtException",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process["on"]("unhandledRejection",abort);quit_=function(status){process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"}}else if(ENVIRONMENT_IS_SHELL){if(typeof read!="undefined"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer==="function"){return new Uint8Array(readbuffer(f))}data=read(f,"binary");assert(typeof data==="object");return data};if(typeof scriptArgs!="undefined"){arguments_=scriptArgs}else if(typeof arguments!="undefined"){arguments_=arguments}if(typeof quit==="function"){quit_=function(status){quit(status)}}if(typeof print!=="undefined"){if(typeof console==="undefined")console={};console.log=print;console.warn=console.error=typeof printErr!=="undefined"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!=="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf("/")+1)}else{scriptDirectory=""}{read_=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime=Module["noExitRuntime"]||true;var WebAssembly={Memory:function(opts){this.buffer=new ArrayBuffer(opts["initial"]*65536)},Module:function(binary){},Instance:function(module,info){this.exports=( // EMSCRIPTEN_START_ASM function instantiate(ue){function le(ve){ve.set=(function(we,xe){this[we]=xe});ve.get=(function(we){return this[we]});return ve}var a;var b=new ArrayBuffer(16);var c=new Int32Array(b);var d=new Float32Array(b);var e=new Float64Array(b);function me(ye){return c[ye]}function ne(ye,ze){c[ye]=ze}function oe(){return e[0]}function pe(ze){e[0]=ze}function qe(ze){d[2]=ze}function re(){return d[2]}function se(Ae){var f=Ae.a;var g=f.buffer;var h=new Int8Array(g);var i=new Int16Array(g);var j=new Int32Array(g);var k=new Uint8Array(g);var l=new Uint16Array(g);var m=new Uint32Array(g);var n=new Float32Array(g);var o=new Float64Array(g);var p=Math.imul;var q=Math.fround;var r=Math.abs;var s=Math.clz32;var t=Math.min;var u=Math.max;var v=Math.floor;var w=Math.ceil;var x=Math.trunc;var y=Math.sqrt;var z=Ae.abort;var A=NaN;var B=Infinity;var C=Ae.b;var D=Ae.c;var E=Ae.d;var F=Ae.e;var G=Ae.f;var H=Ae.g;var I=5296384;var J=0; // EMSCRIPTEN_START_FUNCS function ob(a,b,c,d,e,f,g,l,m,o,t,u){var w=0,x=0,y=q(0),A=0,B=q(0),C=q(0),D=0,E=0,F=0,G=q(0),H=0,J=0,K=0,N=0,R=0,S=0,V=0,W=0,X=0,Y=0,Z=q(0),_=0,$=0,aa=0,ba=0,ca=0,da=q(0),ea=0,ha=0,ja=0,ka=q(0),la=0,ma=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=q(0),va=q(0);x=I-624|0;I=x;j[x+616>>2]=0;j[a+18136>>2]=0;w=-1;a:{if((c|0)<1){break a}J=(e|0)<1276?e:1276;if((J|0)<1){break a}if((J|0)==1){w=-2;if(j[a+144>>2]==(p(c,10)|0)){break a}}E=j[a>>2]+a|0;ea=j[a+4>>2];aa=j[a+108>>2]!=2051?j[a+116>>2]:aa;w=j[a+168>>2];j[x+416>>2]=x+612;P(E,10015,x+416|0);j[x+544>>2]=0;X=(f|0)<(w|0)?f:w;b:{c:{d:{e:{f:{g:{if(j[a+44>>2]<7){break g}f=j[a+144>>2];if((f|0)<16e3){break g}ja=1;A=p(j[a+112>>2],c);if((A|0)>=1){w=0;while(1){B=n[(w<<2)+b>>2];C=B>C?C:B;y=y>B?y:B;w=w+1|0;if((A|0)!=(w|0)){continue}break}}$=j[a+7640>>2];V=j[a+7636>>2];Wc(a+188|0,j[x+612>>2],g,l,c,m,o,f,X,t,x+544|0);B=q(-C);qa=0;if(q(q(1)/q(1<<X))>=(y>B?y:B)){break b}if(n[x+580>>2]>q(.10000000149011612)^1){break c}C=q(n[a+18128>>2]*q(.9990000128746033));f=p(j[a+112>>2],c);if((f|0)<1){break f}w=0;y=q(0);while(1){B=y;y=n[(w<<2)+b>>2];y=q(B+q(y*y));w=w+1|0;if((f|0)!=(w|0)){continue}break}B=q(f|0);if(q(y/B)<C){break d}w=0;y=q(0);while(1){C=y;y=n[(w<<2)+b>>2];y=q(C+q(y*y));w=w+1|0;if((f|0)!=(w|0)){continue}break}break e}$=-1;if(j[a+7648>>2]){ub(a+188|0)}V=-1;break c}y=q(0);B=q(f|0);if(q(q(0)/B)<C){break d}}C=q(y/B)}n[a+18128>>2]=C}j[a+140>>2]=-1;ja=0;qa=1}j[a+18120>>2]=0;if(j[x+544>>2]){if(j[a+124>>2]==-1e3){f=a;h:{i:{g=j[a+14228>>2];if((g|0)!=1002){if(g){break i}g=x+564|0;break h}g=x+572|0;break h}g=x+568|0}sa=v(+q(q(q(1)-n[g>>2])*q(100))+.5);j:{if(r(sa)<2147483648){g=~~sa;break j}g=-2147483648}j[f+140>>2]=g}f=a;l=j[x+576>>2];g=1101;k:{if((l|0)<13){break k}g=1102;if((l|0)<15){break k}g=1103;if((l|0)<17){break k}g=(l|0)<19?1104:1105}j[f+18120>>2]=g}y=q(0);if(!(j[a+120>>2]==1|j[a+112>>2]!=2)){y=Oc(b,c,j[a+144>>2],a+14260|0)}f=c;if(!f){f=j[a+144>>2]/400|0}l:{m:{w=j[a+164>>2];if((w|0)!=-1e3){if((w|0)==-1){break m}g=j[a+144>>2];break l}g=j[a+144>>2];w=p(g,j[a+112>>2])+((p(g,60)|0)/(f|0)|0)|0;break l}g=j[a+144>>2];w=(p(J,g)<<3)/(f|0)|0}j[a+160>>2]=w;S=(g|0)/(c|0)|0;n:{o:{p:{Y=j[a+148>>2];q:{if(!Y){f=(p(g,12)|0)/(c|0)|0;l=(((f|0)/2|0)+((p(w,12)|0)/8|0)|0)/(f|0)|0;J=(l|0)<(J|0)?l:J;w=(p(J,f)<<3)/12|0;j[a+160>>2]=w;f=1;if((J|0)<2){break q}}r:{if((J|0)<3|(p(S,24)|0)>(w|0)){break r}ba=p(J,S);if((S|0)>49){break p}if((ba|0)<300){break r}if((w|0)>=2400){break o}}f=J}b=j[a+14240>>2];l=b?b:1101;g=0;m=j[a+14192>>2];w=0;b=j[a+14224>>2];A=(S|0)>100?1002:b?b:1e3;b=(S|0)==25&(A|0)!=1e3;c=b?50:S;s:{if((c|0)>16){break s}if(!((c|0)==10|(A|0)!=1e3?(e|0)!=1:0)){b=(c|0)<13;A=1e3;c=(c|0)==12?25:16;break s}g=50/(c|0)|0;b=3;c=50}if((c|0)<=399){while(1){w=w+1|0;c=c<<1;if((c|0)<400){continue}break}w=w<<3}t:{if((l|0)>=1104){c=1103;if((A|0)==1e3){break t}}if((l|0)==1102){c=1101;if((A|0)==1002){break t}}c=(l|0)<1105?(A|0)==1001?1104:l:l}e=d;u:{v:{switch(A-1e3|0){case 0:c=w-16|(c<<5)+96&224;break u;case 2:c=(((c|0)>1102?c:1102)<<5)- -64&96|w|128;break u;default:break v}}c=w+240|c<<4|96}h[e|0]=c|(((m|0)==2)<<2|b);if((b|0)==3){h[d+1|0]=g}w=b>>>0<2?1:2;if(j[a+148>>2]){break a}a=(f|0)>(w|0)?f:w;w=pb(d,w,a)?-3:a;break a}ta=ba<<3;m=j[a+40>>2];R=j[a+44>>2];D=j[a+112>>2];f=w;if((S|0)==50){break n}ca=1;f=p(p(D,-40)-20|0,S-50|0)+w|0;break n}ta=ba<<3;m=j[a+40>>2];R=j[a+44>>2];D=j[a+112>>2];f=w}l=R+90|0;t=(p(l,Y?f:f+((f|0)/-12|0)|0)|0)/100|0;N=p(m,12)+20|0;A=(p(t,m)|0)/(N|0)|0;o=127;w:{x:{switch(j[a+124>>2]-3001|0){case 1:o=0;break w;case 0:break w;default:break x}}f=j[a+140>>2];if((f|0)>=0){o=p(f,327)>>8;if(j[a+108>>2]!=2049){break w}o=(o|0)<115?o:115;break w}o=j[a+108>>2]==2048?115:48}f=j[a+120>>2];y:{z:{if((f|0)!=-1e3){if((D|0)!=2){break z}j[a+14192>>2]=f;D=f;break y}if((D|0)!=2){break z}D=((p(p(o,o),2e3)>>>14|0)+(j[a+14192>>2]==2?16e3:18e3)|0)<(t-A|0)?2:1}j[a+14192>>2]=D}_=!(j[x+544>>2]|ja)&j[a+184>>2]!=0;j[a+56>>2]=_;t=ca?p(p(D,-40)-20|0,S-50|0)+w|0:w;A=(p(Y?t:((t|0)/-12|0)+t|0,l)|0)/100|0;F=(p(A,m)|0)/(N|0)|0;K=j[a+108>>2];A:{if((K|0)==2051){t=1002;j[a+14224>>2]=1002;K=a+14224|0;F=((g|0)/100|0)>(c|0);break A}f=j[a+136>>2];B:{if((f|0)==-1e3){H=a;F=A-F|0;B=q(q(1)-y);C=q(q(y*q(1e4))+q(B*q(1e4)));C:{if(q(r(C))<q(2147483648)){f=~~C;break C}f=-2147483648}t=f;y=q(q(y*q(44e3))+q(B*q(64e3)));D:{if(q(r(y))<q(2147483648)){A=~~y;break D}A=-2147483648}f=t+(p(A-f|0,p(o,o))>>14)|0;f=(K|0)==2048?f+8e3|0:f;W=f-4e3|0;A=f+4e3|0;t=f;f=j[a+14228>>2];f=(F|0)<(((f|0)==1002?W:(f|0)>0?A:t)|0)?1e3:1002;j[H+14224>>2]=f;if(!(!j[a+48>>2]|128-o>>4>=(m|0))){j[a+14224>>2]=1e3;f=1e3}t=(p(ca?9e3:6e3,c)|0)/(g<<3)|0;if((t|0)<=(J|0)?!(_&(o|0)>100):0){break B}f=(t|0)>(J|0)?1002:1e3}j[a+14224>>2]=f}K=a+14224|0;g=(g|0)/100|0;F=(g|0)>(c|0);if((c|0)>=(g|0)){t=f;break A}t=1002;if((f|0)==1002){t=f;break A}j[K>>2]=1002}if(j[a+176>>2]){j[K>>2]=1002;t=1002}A=0;E:{F:{G:{f=j[a+14228>>2];if((f|0)<1){break G}if(!((t|0)!=1002?(f|0)==1002:0)){if((t|0)!=1002){break G}g=1002;if((f|0)==1002){break F}}g=1002;ra=1;H:{if((t|0)!=1002){_=1;g=t;break H}_=0;t=0;if(F){break E}j[K>>2]=f;ra=0;A=1;g=f}t=1;break E}g=t}ra=1;_=0;t=0}F=t;I:{J:{if((D|0)!=1|j[a+14232>>2]!=2|(j[a+68>>2]|(f|0)==1002)){break J}if((g|0)==1002){break J}D=2;j[a+14192>>2]=2;j[a+68>>2]=1;break I}j[a+68>>2]=0}ea=a+ea|0;w=ca?p(p(D,-40)-20|0,S-50|0)+w|0:w;D=(p(Y?w:((w|0)/-12|0)+w|0,l)|0)/100|0;K:{L:{M:{N:{O:{P:{Q:{if((g&-2)==1e3){l=1;t=1002;Y=0;w=(R|0)<=1?(D<<2)/5|0:D;D=w-((p(m,w)|0)/(p(m,6)+10|0)|0)|0;m=D;if((g|0)!=1002){break Q}break P}t=1002;if((g|0)==1002){Y=0;l=1;if((R|0)>4){break P}D=(p(D,9)|0)/10|0;break P}m=D-((p(m,D)|0)/(N|0)|0)|0}D=m;Y=0;l=1;if((f|0)==1002){Ja(ea,j[a+180>>2],x+440|0);Y=1;g=j[a+14224>>2]}if((g|0)==1002){break P}l=0;if(j[a+84>>2]?0:!j[a+14252>>2]){break O}t=g}f=p(o,o);m=(p(f,2e3)>>14)+12e3|0;o=(p(f,2500)>>14)+11e3|0;R:{S:{f=j[a+14252>>2];if(!f){w=1105;g=1;if((m+(j[a+14244>>2]<1105?2e3:-2e3)|0)<=(D|0)){break M}if(f){break R}if(j[a+14244>>2]<1104){break S}o=o-1e3|0;break R}if((m|0)>(D|0)){break R}j[a+14240>>2]=1105;j[a+14244>>2]=1105;w=1105;break L}o=o+1e3|0}if((o|0)<=(D|0)){w=1104;g=1;break M}if(!f){w=1103;g=0;if(((j[a+14244>>2]<1103?9700:8300)|0)<=(D|0)){break M}w=9e3;if(f){break N}w=j[a+14244>>2]<1102?9700:8300;break N}w=9e3;if((D|0)<9e3){break N}j[a+14240>>2]=1103;j[a+14244>>2]=1103;w=1103;break L}w=j[a+14240>>2];break K}w=(w|0)>(D|0)?1101:1103;g=0}j[a+14240>>2]=w;j[a+14244>>2]=w;if(f|l|(j[a+88>>2]|g^1)){break L}w=1103;j[a+14240>>2]=1103}g=t}f=j[a+132>>2];if((f|0)<(w|0)){j[a+14240>>2]=f;w=f}m=j[a+128>>2];if((m|0)!=-1e3){j[a+14240>>2]=m;w=m}if(!((g|0)==1002|(ba|0)>1874)){w=(w|0)<1103?w:1103;j[a+14240>>2]=w}g=j[a+144>>2];T:{if((g|0)>24e3){f=w;break T}f=1104;U:{V:{W:{X:{if((w|0)<=1104){if((g|0)>=16001){f=w;break T}if((w|0)>1103){break X}if((g|0)<12001){break W}f=w;break T}j[a+14240>>2]=1104;if((g|0)>=16001){break T}}f=1103;j[a+14240>>2]=1103;if((g|0)>=12001){break T}break V}if((w|0)>1102){break V}if((g|0)>8e3){f=w;break T}f=w;if((w|0)!=1102){break T}break U}f=1102;j[a+14240>>2]=1102;if((g|0)>8e3){break T}}f=1101;j[a+14240>>2]=1101}t=j[a+18120>>2];if(!(!t|(m|0)!=-1e3)){w=a;m=t;R=j[a+14192>>2];Y:{Z:{if((p(R,18e3)|0)>=(D|0)){o=0;if(!l){break Z}l=1;g=1101;break Y}if((p(R,24e3)|0)<(D|0)){o=l;break Z}o=l;g=1102;if(!(l^1)){break Y}}l=o;g=(p(R,3e4)|0)<(D|0)?(p(R,44e3)|0)<(D|0)?1105:1104:1103}g=(g|0)<(t|0)?m:g;j[w+18120>>2]=g;f=(f|0)<(g|0)?f:g;j[a+14240>>2]=f}w=0;_:{if(!j[a+48>>2]|l){break _}g=j[a+40>>2];if(!g){break _}l=125-((g|0)<25?g:25)|0;m=j[a+52>>2];o=(m|0)==1;t=(g|0)<6;w=f;$:{while(1){R=w<<3;g=j[R+41868>>2];g=p(l,(j[R+41864>>2]-(o?g:0)|0)+(m?0:g)|0);g=(p(g&65535,655)>>>16|0)+p(g>>16,655)|0;if((g|0)<(D|0)|t){break $}if((w|0)>1101){w=w-1|0;j[a+14240>>2]=w;continue}break}j[a+14240>>2]=f;w=0;break _}w=(g|0)<(D|0)}j[a+52>>2]=w;j[x+400>>2]=X;P(E,4036,x+400|0);w=j[a+14224>>2];if(!((w|0)!=1002|j[a+14240>>2]!=1102)){j[a+14240>>2]=1103}aa:{ba:{ca:{da:{ea:{fa:{if(j[a+176>>2]){t=1101;j[a+14240>>2]=1101;break fa}t=j[a+14240>>2];if((w|0)!=1e3){break fa}if((t|0)>1103){break ea}}if(!((w|0)!=1001|(t|0)>1103)){j[K>>2]=1e3;w=1e3}l=j[a+144>>2];g=(l|0)/50|0;if((g|0)<(c|0)){break da}m=w;break ca}m=1001;j[a+14224>>2]=1001;l=j[a+144>>2];g=(l|0)/50|0;if((g|0)<(c|0)|((p(l,3)|0)/50|0)<(c|0)){break ba}break aa}m=1e3;if((w|0)!=1e3){break ba}}f=p(l,3);o=(f|0)/50|0;if((o|0)>=(c|0)){break aa}if((m|0)!=1e3){break ba}if(((l<<1)/25|0)==(c|0)){g=(l|0)/25|0;break ba}g=((f|0)/25|0)==(c|0)?o:g}c=(c|0)/(g|0)|0;if((V|0)!=-1){j[a+7640>>2]=$;j[a+7636>>2]=V}w=Lc(a,b,c,g,d,e,A,X,u);break a}if(j[a+14248>>2]){j[a+14248>>2]=0;Y=2;F=1;_=1}e=j[a+160>>2];V=0;ga:{if(!F){f=0;g=0;break ga}f=0;g=0;if((m|0)==1002){break ga}g=j[a+14192>>2];f=p(g,40)+20|0;m=(p(e+p(f,200-S|0)|0,3)|0)/3200|0;f=(f+((p((J<<3)-(f<<1)|0,240)|0)/((48e3/(S|0)|0)+240|0)|0)|0)/8|0;f=(f|0)>(m|0)?m:f;V=(f|0)>(g<<3|4)?(f|0)<257?f:257:0;f=(V|0)!=0;g=f}R=g;X=d+1|0;$=J-1|0;ab(x+440|0,X,$);ma=c+aa|0;g=x-((p(ma,j[a+112>>2])<<2)+15&-16)|0;I=g;oa=a+14280|0;m=j[a+112>>2];F=M(g,oa+(p(m,j[a+172>>2]-aa|0)<<2)|0,p(m,aa)<<2);A=(p(c,e)|0)/(l<<3)|0;m=a;ha:{if(j[a+14224>>2]==1002){l=Q(60)<<8;break ha}l=j[ea+8>>2]}e=j[a+14200>>2];l=l-e|0;e=p(l>>16,983)+e+(p(l&65535,983)>>>16)|0;j[m+14200>>2]=e;m=a+14208|0;w=na(e>>8);o=j[a+112>>2];l=F+(p(o,aa)<<2)|0;e=j[a+144>>2];ia:{if(j[a+108>>2]==2048){if((c|0)<1){break ia}e=(p(w<<16>>16,2471)|0)/((e|0)/1e3|0)|0;w=e<<16>>16;N=((p(w,e>>16)+(p(w,e&65535)>>16)|0)+p(e,(e>>15)+1>>1)|0)-8388608|0;H=N<<16>>16;w=p(e,-471)+268435456|0;e=w>>6;pa=e&65535;ha=p(H,pa)>>16;W=H;H=w>>22;da=q(q((ha+p(W,H)|0)+p(e,(N>>15)+1>>1)|0)*q(3.725290298461914e-9));W=p(e,(w>>21)+1>>1);e=e<<16>>16;ka=q(q((W+p(e,H)|0)+(p(e,pa)>>16)|0)*q(3.725290298461914e-9));ua=q(q(w|0)*q(3.725290298461914e-9));e=0;va=q(q(0-(w<<1)|0)*q(3.725290298461914e-9));y=n[a+14212>>2];C=n[a+14208>>2];while(1){Z=C;w=p(e,o)<<2;C=n[w+b>>2];B=q(ua*C);G=q(Z+B);B=q(q(B-q(ka*G))+q(1.0000000031710769e-30));n[a+14212>>2]=B;C=q(q(va*C)+q(y-q(da*G)));n[a+14208>>2]=C;n[l+w>>2]=G;y=B;e=e+1|0;if((e|0)!=(c|0)){continue}break}if((o|0)!=2){break ia}w=l+4|0;N=b+4|0;y=n[a+14220>>2];C=n[a+14216>>2];e=0;while(1){Z=C;H=e<<3;C=n[H+N>>2];B=q(ua*C);G=q(Z+B);B=q(q(B-q(ka*G))+q(1.0000000031710769e-30));n[a+14220>>2]=B;C=q(q(va*C)+q(y-q(da*G)));n[a+14216>>2]=C;n[w+H>>2]=G;y=B;e=e+1|0;if((e|0)!=(c|0)){continue}break}break ia}C=q(q(18.900001525878906)/q(e|0));G=q(q(1)-C);y=n[m>>2];if((o|0)!=2){e=0;if((c|0)>0){while(1){w=e<<2;B=n[w+b>>2];n[l+w>>2]=B-y;y=q(q(G*y)+q(q(C*B)+q(1.0000000031710769e-30)));e=e+1|0;if((e|0)!=(c|0)){continue}break}}n[m>>2]=y;break ia}B=n[a+14216>>2];if((c|0)>=1){e=0;while(1){w=e<<3;N=w|4;da=n[N+b>>2];ka=n[b+w>>2];n[l+w>>2]=ka-y;n[l+N>>2]=da-B;y=q(q(G*y)+q(q(C*ka)+q(1.0000000031710769e-30)));B=q(q(G*B)+q(q(C*da)+q(1.0000000031710769e-30)));e=e+1|0;if((e|0)!=(c|0)){continue}break}}n[a+14216>>2]=B;n[a+14208>>2]=y}ja:{if(!u){break ja}y=q(0);u=p(c,o);if((u|0)>=1){e=0;while(1){B=y;y=n[l+(e<<2)>>2];y=q(B+q(y*y));e=e+1|0;if((u|0)!=(e|0)){continue}break}}if(y==y?!(y<q(1e9)^1):0){break ja}O(l,0,u<<2);j[m+8>>2]=0;j[m+12>>2]=0;j[m>>2]=0;j[m+4>>2]=0}C=q(1);ka:{if(j[K>>2]!=1002){e=1;m=g;N=g-((p(c,o)<<1)+15&-16)|0;I=N;da=n[x+580>>2];pa=j[x+544>>2];g=J-V|0;A=p((((g|0)<(A|0)?g:A)<<3)-8|0,S);la:{ma:{na:{W=a;oa:{pa:{qa:{o=j[K>>2];if((o|0)==1001){l=(j[a+52>>2]<<1)+(j[a+144>>2]==(p(c,50)|0)?2:1)|0;H=j[a+148>>2];u=j[a+14192>>2];g=(A|0)/(u|0)|0;if((g|0)<12e3){break qa}e=2;if((g|0)<16e3){break qa}e=3;if((g|0)<2e4){break qa}e=4;if((g|0)<24e3){break qa}e=5;if((g|0)<32e3){break qa}e=6;if((g|0)<64e3){break qa}e=j[(l<<2)+50840>>2]+((g-64e3|0)/2|0)|0;break pa}j[a+36>>2]=A;u=j[a+14256>>2];if(u){break oa}g=A;break la}w=p(e,20);la=w+50720|0;e=j[la>>2];ha=w+50700|0;w=j[ha>>2];l=l<<2;e=(p(j[l+ha>>2],e-g|0)+p(j[l+la>>2],g-w|0)|0)/(e-w|0)|0}e=H?e:e+100|0;e=p((t|0)==1104?e+300|0:e,u);g=(u|0)==2?(g|0)>11999?e-1e3|0:e:e;j[W+36>>2]=g;u=j[a+14256>>2];if(!u){break na}A=g}if(j[a+148>>2]){break ma}g=A;break la}C=q(q(1)-q(xa(+q(q(g-A|0)*q(.0009765625))*.6931471805599453)));break la}if(j[a+176>>2]){g=A;break la}B=q(8e3);l=13;ra:{sa:{ta:{la=j[a+14240>>2];switch(la-1101|0){case 0:break ra;case 1:break ta;default:break sa}}B=q(12e3);l=15;break ra}B=q(16e3);l=17}y=q(0);e=j[a+112>>2];if((e|0)>=1){g=0;while(1){ha=p(g,21);w=0;while(1){G=n[(w+ha<<2)+u>>2];H=G<q(.5);Z=y;W=(H?G:q(.5))>q(-2);y=W?q(.5):q(-2);y=W?H?G:y:y;y=q(Z+(y>q(0)?q(y*q(.5)):y));w=w+1|0;if((w|0)!=(l|0)){continue}break}g=g+1|0;if((e|0)!=(g|0)){continue}break}}g=(0-(A<<1)|0)/3|0;y=q(B*q(q(q(y/q(l|0))*q(e|0))+q(.20000000298023224)));ua:{if(q(r(y))<q(2147483648)){e=~~y;break ua}e=-2147483648}e=(e|0)>(g|0)?e:g;g=a;if((la&-2)==1104){e=(p(e,3)|0)/5|0}l=g;g=e+A|0;j[l+36>>2]=g}A=j[a+112>>2];j[a+8>>2]=A;H=j[a+14192>>2];j[a+12>>2]=H;l=j[a+144>>2];j[a+32>>2]=(p(c,1e3)|0)/(l|0);w=8e3;u=8e3;va:{wa:{switch(t-1101|0){default:u=12e3;w=16e3;if((t|0)==1103|(o|0)==1001){break va}L(50496,50583,1755);z();case 0:break va;case 1:break wa}}w=12e3;u=12e3}j[a+28>>2]=w;j[a+20>>2]=16e3;j[a+24>>2]=(o|0)==1001?16e3:8e3;xa:{if((o|0)!=1e3){break xa}e=ca?(ba<<4)/3|0:ta;if((e|0)>7999){break xa}j[a+20>>2]=12e3;j[a+28>>2]=u;if((e|0)>6999){break xa}j[a+28>>2]=8e3;j[a+20>>2]=8e3}ba=da>=q(.10000000149011612);w=$<<3;j[a- -64>>2]=w;e=j[a+148>>2];j[a+60>>2]=!e;ya:{za:{Aa:{Ba:{if(!(f^1|(V|0)<2)){f=(V<<3^-1)+w|0;j[a+64>>2]=f;if((o|0)!=1001){break ya}w=f-20|0;j[a+64>>2]=w;if(!e){break za}break Ba}if(!e){break Aa}if((o|0)!=1001){break ya}}g=1;o=(j[a+52>>2]<<1)+((l|0)==(p(c,50)|0)?2:1)|0;W=a;e=H;Ca:{Da:{f=((p(l,w)|0)/(c|0)|0)/(H|0)|0;if((f|0)<12e3){break Da}g=2;if((f|0)<16e3){break Da}g=3;if((f|0)<2e4){break Da}g=4;if((f|0)<24e3){break Da}g=5;if((f|0)<32e3){break Da}g=6;if((f|0)<64e3){break Da}g=j[(o<<2)+50840>>2]+((f-64e3|0)/2|0)|0;break Ca}u=p(g,20);w=u+50720|0;g=j[w>>2];ca=u+50700|0;u=j[ca>>2];o=o<<2;g=(p(j[o+ca>>2],g-f|0)+p(j[o+w>>2],f-u|0)|0)/(g-u|0)|0}e=p(e,(t|0)==1104?g+300|0:g);j[W+64>>2]=(p((H|0)==2?(f|0)>11999?e-1e3|0:e:e,c)|0)/(l|0);break ya}if((o|0)!=1001){break ya}}e=(p(c,g)|0)/(l|0)|0;j[a+64>>2]=(e|0)>(w|0)?w:e}e=a+8|0;f=pa?ba:-1;if(Y){w=0;j[x+432>>2]=0;g=(l|0)/400|0;o=p((j[a+172>>2]-g|0)-j[a+116>>2]|0,A)<<2;u=(o+a|0)+14280|0;H=u;u=j[x+612>>2];nb(H,H,q(0),q(1),j[u+4>>2],g,A,j[u+60>>2],l);O(oa,0,o);l=j[a+172>>2];o=p(l,j[a+112>>2]);if((o|0)>=1){while(1){g=N+(w<<1)|0;y=q(n[((w<<2)+a|0)+14280>>2]*q(32768));y=y>q(-32768)?y:q(-32768);y=je(y<q(32767)?y:q(32767));Ea:{if(q(r(y))<q(2147483648)){u=~~y;break Ea}u=-2147483648}i[g>>1]=u;w=w+1|0;if((o|0)!=(w|0)){continue}break}}Eb(ea,e,N,l,0,x+432|0,Y,f);j[a+72>>2]=0;A=j[a+112>>2]}l=p(c,A);if((l|0)>=1){o=p(A,aa);w=0;while(1){g=N+(w<<1)|0;y=q(n[F+(o+w<<2)>>2]*q(32768));y=y>q(-32768)?y:q(-32768);y=je(y<q(32767)?y:q(32767));Fa:{if(q(r(y))<q(2147483648)){u=~~y;break Fa}u=-2147483648}i[g>>1]=u;w=w+1|0;if((l|0)!=(w|0)){continue}break}}Ga:{if(Eb(ea,e,N,c,x+440|0,x+620|0,0,f)){m=-3}else{e=j[a+80>>2];Ha:{Ia:{f=j[a+14224>>2];if((f|0)==1e3){if((e|0)==8e3){t=1101;break Ha}if((e|0)==16e3){break Ia}if((e|0)!=12e3){break Ha}t=1102;break Ha}if((e|0)==16e3){break Ha}L(50602,50583,1863);z()}t=1103}Ja:{if(j[a+96>>2]){e=j[a+18132>>2];j[a+72>>2]=!e;if(!j[x+620>>2]){break Ja}if(e){break Ga}j[a+14248>>2]=1;_=0;f=j[a+14192>>2];e=p(f,40)+20|0;g=(p(j[a+160>>2]+p(e,200-S|0)|0,3)|0)/3200|0;e=(e+((p((J<<3)-(e<<1)|0,240)|0)/((48e3/(S|0)|0)+240|0)|0)|0)/8|0;e=(e|0)>(g|0)?g:e;V=(e|0)>(f<<3|4)?(e|0)<257?e:257:0;R=(V|0)!=0;break Ga}j[a+72>>2]=0;if(j[x+620>>2]){break Ga}}w=0;j[a+18136>>2]=0;b=j[a+14192>>2];a=j[a+144>>2]/(c|0)|0;if((a|0)<=399){while(1){w=w+1|0;a=a<<1;if((a|0)<400){continue}break}w=w<<3}Ka:{La:{switch(f-1e3|0){case 0:a=w-16|(t<<5)+96&224;break Ka;case 2:a=(((t|0)>1102?t:1102)<<5)- -64&96|w|128;break Ka;default:break La}}a=w+240|t<<4|96}h[d|0]=a|((b|0)==2)<<2;m=1}break ka}g=m}e=x;f=t-1101|0;if(f>>>0<=3){f=j[(f<<2)+50860>>2]}else{f=21}j[e+384>>2]=f;P(E,10012,x+384|0);j[x+368>>2]=j[a+14192>>2];P(E,10008,x+368|0);j[x+352>>2]=-1;P(E,4002,x+352|0);Ma:{if(j[a+14224>>2]==1e3){w=j[a+112>>2];o=g-(((p(w,j[a+144>>2])|0)/400<<2)+15&-16)|0;I=o;break Ma}j[x+336>>2]=0;P(E,4006,x+336|0);j[x+320>>2]=!j[a+76>>2]<<1;P(E,10002,x+320|0);f=j[a+148>>2];e=j[a+14224>>2];Na:{Oa:{Pa:{if((e|0)==1001){if(!f){w=j[a+112>>2];A=j[a+144>>2];f=(p(w,A)|0)/400|0;o=g-((f<<2)+15&-16)|0;I=o;e=1001;break Na}j[x+256>>2]=j[a+160>>2]-j[a+36>>2];P(E,4002,x+256|0);j[x+240>>2]=0;P(E,4020,x+240|0);break Pa}if(!f){break Oa}j[x+304>>2]=1;P(E,4006,x+304|0);j[x+288>>2]=j[a+152>>2];P(E,4020,x+288|0);j[x+272>>2]=j[a+160>>2];P(E,4002,x+272|0)}e=j[K>>2]}w=j[a+112>>2];A=j[a+144>>2];f=(p(w,A)|0)/400|0;o=g-((f<<2)+15&-16)|0;I=o;if((e|0)==1e3){break Ma}}g=e;e=j[a+14228>>2];if((g|0)==(e|0)|(e|0)<1){break Ma}M(o,((p(j[a+172>>2]+(((A|0)/-400|0)-aa|0)|0,w)<<2)+a|0)+14280|0,f<<2)}e=j[a+172>>2];f=p(e-ma|0,w);Qa:{if((f|0)>=1){e=a+14280|0;f=f<<2;U(oa,e+(p(c,w)<<2)|0,f);M(e+f|0,F,p(w,ma)<<2);break Qa}M(oa,F+(p(ma-e|0,w)<<2)|0,p(e,w)<<2)}y=n[a+14204>>2];if(!(y<q(1)^1?!(C<q(1)):0)){e=j[x+612>>2];nb(F,F,y,C,j[e+4>>2],c,j[a+112>>2],j[e+60>>2],j[a+144>>2])}n[a+14204>>2]=C;f=j[a+14224>>2];if(!(j[a+14192>>2]!=1?(f|0)==1001:0)){e=a;g=16384;Ra:{if((D|0)>32e3){break Ra}g=0;if((D|0)<16e3){break Ra}g=16384-((65536e3-(D<<11)|0)/(D-14e3|0)|0)|0}j[e+92>>2]=g}Sa:{if(j[a+14256>>2]|j[a+112>>2]!=2){break Sa}l=i[a+14196>>1];g=j[a+92>>2];if((g|0)>16383?(l|0)>=16384:0){break Sa}y=q(q(1)-q(q(g|0)*q(6103515625e-14)));w=0;m=j[x+612>>2];u=48e3/j[a+144>>2]|0;e=j[m+4>>2]/(u|0)|0;if((e|0)>0){C=q(q(1)-q(q(l|0)*q(6103515625e-14)));l=j[m+60>>2];while(1){m=w<<3;A=m+F|0;B=n[A>>2];Z=B;G=n[l+(p(u,w)<<2)>>2];G=q(G*G);m=F+(m|4)|0;B=n[m>>2];G=q(q(q(y*G)+q(C*q(q(1)-G)))*q(q(Z-B)*q(.5)));n[A>>2]=Z-G;n[m>>2]=B+G;w=w+1|0;if((e|0)!=(w|0)){continue}break}w=e}if((c|0)>(w|0)){while(1){e=w<<3;l=e+F|0;B=n[l>>2];Z=B;e=F+(e|4)|0;B=n[e>>2];C=q(y*q(q(Z-B)*q(.5)));n[l>>2]=Z-C;n[e>>2]=B+C;w=w+1|0;if((w|0)!=(c|0)){continue}break}}i[a+14196>>1]=g}Ta:{Ua:{if((f|0)==1002|(s(j[x+468>>2])+(j[x+460>>2]+((f|0)==1001?5:-15)|0)|0)>$<<3){break Ua}if((f|0)==1001){T(x+440|0,R,12)}if(!R){break Ua}g=1;T(x+440|0,_,1);e=j[x+460>>2]+s(j[x+468>>2])|0;l=e-21|0;f=e-32|0;e=j[K>>2];f=$-(((e|0)==1001?l:f)+7>>3)|0;f=(f|0)<(V|0)?f:V;f=(f|0)>2?f:2;f=(f|0)<257?f:257;l=0;if((e|0)!=1001){break Ta}ga(x+440|0,f-2|0,256);break Ta}g=0;j[a+14248>>2]=0;l=1;f=0}D=j[K>>2];Va:{if((D|0)==1e3){e=j[x+468>>2];m=j[x+460>>2];$a(x+440|0);w=(m+s(e)|0)-25>>3;A=w;break Va}w=$-f|0;fa(x+440|0,w);A=0}Wa:{if(!(j[K>>2]!=1e3|g)){e=_;u=0;break Wa}j[x+224>>2]=x+544;P(E,10022,x+224|0);if(j[K>>2]==1001){j[x+432>>2]=j[a+100>>2];j[x+436>>2]=j[a+104>>2];j[x+208>>2]=x+432;P(E,10028,x+208|0)}e=_;u=0;if(!(g&e)){break Wa}j[x+192>>2]=0;P(E,10010,x+192|0);j[x+176>>2]=0;P(E,4006,x+176|0);j[x+160>>2]=-1;P(E,4002,x+160|0);m=-3;if((ia(E,F,j[a+144>>2]/200|0,w+X|0,f,0)|0)<0){break ka}j[x+144>>2]=x+616;P(E,4031,x+144|0);P(E,4028,0);e=1;u=1}j[x+128>>2]=(D|0)==1002?0:17;P(E,10010,x+128|0);m=j[K>>2];Xa:{if((m|0)==1e3){break Xa}D=m;m=j[a+14228>>2];if(!((D|0)==(m|0)|(m|0)<1)){P(E,4028,0);ia(E,o,j[a+144>>2]/400|0,x+432|0,2,0);j[x+112>>2]=0;P(E,10002,x+112|0)}if(((j[x+460>>2]+s(j[x+468>>2])|0)-32|0)>w<<3){break Xa}if(!(!j[a+148>>2]|(!u|j[K>>2]!=1001))){j[x+96>>2]=j[a+160>>2]-j[a+36>>2];P(E,4002,x+96|0)}j[x+80>>2]=j[a+148>>2];P(E,4006,x+80|0);A=ia(E,F,c,0,w,x+440|0);m=-3;if((A|0)<0){break ka}if(!j[a+148>>2]|(!u|j[K>>2]!=1001)){break Xa}U(A+X|0,w+X|0,f);w=f+w|0}Ya:{if(!(e|l)){e=j[a+144>>2];P(E,4028,0);j[x+64>>2]=0;P(E,10010,x- -64|0);j[x+48>>2]=0;P(E,10002,x+48|0);j[x+32>>2]=0;P(E,4006,x+32|0);j[x+16>>2]=-1;P(E,4002,x+16|0);if(j[a+14224>>2]==1001){fa(x+440|0,A);w=A}l=(e|0)/200|0;m=c-l|0;e=(e|0)/400|0;ia(E,F+(p(j[a+112>>2],m-e|0)<<2)|0,e,x+432|0,2,0);if((ia(E,F+(p(m,j[a+112>>2])<<2)|0,l,w+X|0,f,0)|0)<0){break Ya}j[x>>2]=x+616;P(E,4031,x)}m=j[a+14192>>2];l=j[a+14224>>2];w=0;e=j[a+144>>2]/(c|0)|0;if((e|0)<=399){while(1){w=w+1|0;e=e<<1;if((e|0)<400){continue}break}w=w<<3}e=d;Za:{_a:{switch(l-1e3|0){case 0:l=w-16|(t<<5)+96&224;break Za;case 2:l=(((t|0)>1102?t:1102)<<5)- -64&96|w|128;break Za;default:break _a}}l=w+240|t<<4|96}h[e|0]=l|((m|0)==2)<<2;m=j[x+468>>2];j[a+18136>>2]=m^j[x+616>>2];j[a+14228>>2]=ra?j[K>>2]:1002;j[a+14252>>2]=0;j[a+14236>>2]=c;l=j[a+14192>>2];j[a+14232>>2]=l;$a:{if(!(!j[a+184>>2]|!(j[x+544>>2]|ja))){if(!(qa^1|n[x+580>>2]<q(.10000000149011612)^1)){B=n[a+18128>>2];y=q(0);e=p(j[a+112>>2],c);if((e|0)>=1){w=0;while(1){C=y;y=n[(w<<2)+b>>2];y=q(C+q(y*y));w=w+1|0;if((e|0)!=(w|0)){continue}break}}ja=B>=q(q(y/q(e|0))*q(316.2300109863281))}ab:{if(ja){b=j[a+18124>>2];j[a+18124>>2]=b+1;if((b|0)<10){break $a}if((b|0)<30){break ab}j[a+18124>>2]=10;break $a}j[a+18124>>2]=0;break $a}w=0;j[a+18136>>2]=0;b=j[a+14224>>2];a=j[a+144>>2]/(c|0)|0;if((a|0)<=399){while(1){w=w+1|0;a=a<<1;if((a|0)<400){continue}break}w=w<<3}bb:{cb:{switch(b-1e3|0){case 0:a=w-16|(t<<5)+96&224;break bb;case 2:a=(((t|0)>1102?t:1102)<<5)- -64&96|w|128;break bb;default:break cb}}a=w+240|t<<4|96}h[d|0]=a|((l|0)==2)<<2;m=1;break ka}j[a+18124>>2]=0}db:{if(((j[x+460>>2]+s(m)|0)-32|0)>$<<3){h[X|0]=0;j[a+18136>>2]=0;A=1;break db}if(j[K>>2]!=1e3|g|(A|0)<3){break db}while(1){if(k[d+A|0]){break db}b=(A|0)>3;A=A-1|0;if(b){continue}break}A=2}b=(f+A|0)+1|0;eb:{if(j[a+148>>2]){J=b;break eb}m=-3;if(pb(d,b,J)){break ka}}m=J;break ka}m=-3}w=m}I=x+624|0;return w}function ia(a,b,c,d,e,f){var g=q(0),m=q(0),o=0,w=q(0),x=q(0),y=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,J=0,K=0,P=0,Q=0,R=0,S=0,U=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,ha=0,ia=0,ja=0,ka=0,la=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=q(0),Ba=0,Ca=0,Ea=0,Fa=0,Ha=0,Ja=0,Ka=0,La=0,Ma=0,Na=q(0),Oa=0,Pa=0,Qa=q(0),Ra=q(0),Sa=q(0),Ta=0,Ua=q(0),Va=q(0);F=I-192|0;I=F;D=j[a+8>>2];Z=j[a+4>>2];j[F+28>>2]=15;j[F+24>>2]=0;j[F+20>>2]=0;j[F+16>>2]=0;j[F+4>>2]=0;E=j[a+36>>2];J=j[a+32>>2];H=j[a>>2];P=j[H+32>>2];ia=j[H+4>>2];_=j[H+8>>2];j[F+12>>2]=0;C=-1;a:{if(!b|(e|0)<2){break a}o=j[H+36>>2];if((o|0)<0){break a}ca=p(j[a+28>>2],c);c=j[H+44>>2];while(1){if(c<<G!=(ca|0)){y=(o|0)>(G|0);G=G+1|0;if(y){continue}break a}break}b:{if(!f){va=1;o=1;B=0;break b}va=V(f);c=j[f+20>>2]+s(j[f+28>>2])|0;o=c-32|0;B=c-28>>3}c:{d:{if(!j[a+48>>2]){aa=ia+1024|0;Q=(e|0)<1275?e:1275;A=Q-B|0;c=j[a+40>>2];e:{if(j[a+44>>2]){if((c|0)==-1){break d}e=j[H>>2];ka=(p(c,ca)+(e>>4)|0)/(e>>3)|0;y=ka>>6;break e}if((c|0)==-1){break d}e=j[H>>2];e=((p(c,ca)+((o|0)>1?o:0)|0)+(e<<2)|0)/(e<<3)|0;e=(e|0)>(Q|0)?Q:e;Q=(e|0)>2?e:2;y=Q-B|0}C=c;break c}L(42472,42508,1547);z()}y=A}if(!f){ab(F+32|0,d,Q);f=F+32|0}e=a+244|0;d=p(Z,aa)<<2;wa=p(Z,_);oa=3-G|0;da=p(Q,400)>>oa;f:{if(!j[a+52>>2]|(ka|0)<1){break f}c=((o|0)==1)<<1;aa=(ka<<1)-j[a+208>>2]>>6;c=(c|0)>(aa|0)?c:aa;if((c|0)>=(A|0)){break f}Q=c+B|0;fa(f,Q);A=c}ba=d+e|0;pa=wa<<2;aa=(C|0)>(da|0);Ba=p(D,40);ua=400>>>G|0;R=j[H+12>>2];qa=ca+ia|0;$=F-((p(qa,Z)<<2)+15&-16)|0;S=$;I=$;x=n[a+224>>2];U=j[a+28>>2];d=(p(ca-ia|0,D)|0)/(U|0)|0;g:{h:{if((d|0)>=1){c=0;while(1){w=n[(c<<2)+b>>2];g=g<w?g:w;m=m>w?m:w;c=c+1|0;if((d|0)!=(c|0)){continue}break}g=q(-g);if((g<m?m:g)<x){break g}c=0;g=q(0);m=q(0);while(1){x=n[(c<<2)+b>>2];g=g<x?g:x;m=m>x?m:x;c=c+1|0;if((d|0)!=(c|0)){continue}break}break h}if(x>q(0)){break g}}g=q(-g);x=g<m?m:g}K=p(Z,ia);ra=aa?da:C;ta=(C|0)==-1;xa=1;g=q(0);C=(p(D,ia)|0)/(U|0)|0;i:{if((C|0)<1){m=q(0);break i}d=(d<<2)+b|0;c=0;m=q(0);while(1){w=n[d+(c<<2)>>2];g=g<w?g:w;m=m>w?m:w;c=c+1|0;if((C|0)!=(c|0)){continue}break}}c=K<<2;d=(E|0)>(R|0);K=Q<<3;g=q(-g);g=g<m?m:g;n[a+224>>2]=g;g=g<x?x:g;j:{if((o|0)!=1){break j}o=g<=q(q(1)/q(1<<j[a+60>>2]));T(f,o,15);if(o^1){o=1;break j}Y=1;k:{if((ka|0)<1){o=K;break k}A=2;o=B+2|0;y=(o|0)>(Q|0)?Q:o;fa(f,y);Q=y;o=y<<3;K=o}j[f+20>>2]=(o-s(j[f+28>>2])|0)+32;xa=0}e=c+e|0;aa=1<<G;X=d?R:E;Ma=(Z|0)>1?Z:1;d=H+16|0;C=$+(ia<<2)|0;c=0;while(1){B=c<<2;cd(B+b|0,C+(p(c,qa)<<2)|0,ca,Z,j[a+28>>2],d,(a+B|0)+192|0,j[a+16>>2]!=0&g>q(65536));c=c+1|0;if((Ma|0)!=(c|0)){continue}break}c=0;if(!(j[a+20>>2]|(!(j[a+64>>2]!=0&(A|0)>3|(p(D,12)|0)<(A|0))|(J|Y)))){c=j[a+24>>2]>4}Ka=j[a+100>>2];sa=a+120|0;ya=bd(a,$,e,Z,ca,Ka,F+28|0,F+24|0,F+80|0,c,A,sa);Na=n[F+24>>2];l:{if(!(Na>q(.4000000059604645))){b=0;if(n[a+108>>2]>q(.4000000059604645)^1){break l}}if(j[sa>>2]){b=0;if(+n[a+124>>2]>.3^1){break l}}Ea=+j[F+28>>2];Fa=+j[a+104>>2];b=Ea>Fa*1.26|Ea<Fa*.79}La=b;m:{if(!ya){if((o+16|0)>(K|0)|J){break m}T(f,0,1);break m}T(f,1,1);b=j[F+28>>2];c=b+1|0;d=s(c);e=27-d|0;ga(f,e,6);W(f,c+(-16<<e)|0,31-d|0);j[F+28>>2]=b;W(f,j[F+80>>2],3);N(f,Ka,42528,2)}Ha=1;U=0;if(!(j[a+64>>2]|j[a+24>>2]<1)){c=0;U=ad($,qa,Z,F+12|0,F+16|0,!J|(y|0)>14?c:j[a+184>>2]!=2,F+4|0)}b=H;n:{o:{if(!(!G|((j[f+20>>2]+s(j[f+28>>2])|0)-29|0)>(K|0))){if(U){break o}Ha=0}o=S-((p(Z,ca)<<2)+15&-16)|0;I=o;c=(wa<<2)+15&-16;ea=o-c|0;d=ea;I=d;e=d-c|0;c=e;I=c;ha=p(D,_);Y=c-((ha<<2)+15&-16)|0;C=Y;I=C;Ja=1;U=0;ia=0;break n}o=S-((p(Z,ca)<<2)+15&-16)|0;I=o;c=(wa<<2)+15&-16;ea=o-c|0;d=ea;I=d;e=d-c|0;c=e;I=c;ha=p(D,_);Y=c-((ha<<2)+15&-16)|0;C=Y;I=C;p:{if(j[a+24>>2]<8){Ha=0;break p}Ha=0;Da(H,0,$,o,D,Z,G,j[a+28>>2]);Ga(H,o,ea,X,D,G);Ia(H,X,E,ea,Y,D);Ca=1;if((ha|0)<1){break p}g=q(q(G|0)*q(.5));c=0;while(1){d=(c<<2)+Y|0;n[d>>2]=g+n[d>>2];c=c+1|0;if((ha|0)!=(c|0)){continue}break}}ia=aa}Da(b,ia,$,o,D,Z,G,j[a+28>>2]);q:{r:{g=n[o>>2];if(g==g){if((D|0)==1){break r}g=n[(ca<<2)+o>>2];qa=0;if(g==g){break q}}L(42531,42508,1729);z()}qa=0;if((Z|0)!=2){break q}j[F+16>>2]=0;qa=1}Ga(H,o,ea,X,D,G);if(!(!j[a+64>>2]|(E|0)<3)){c=2;while(1){b=(c<<2)+ea|0;g=n[b>>2];m=q(n[ea>>2]*q(9999999747378752e-20));g=g<m?g:m;n[b>>2]=g>q(1.0000000036274937e-15)?g:q(1.0000000036274937e-15);c=c+1|0;if((E|0)!=(c|0)){continue}break}}Ia(H,X,E,ea,e,D);b=C-((ha<<2)+15&-16)|0;za=b;I=b;Oa=E<<2;la=O(b,0,Oa);g=q(0);s:{t:{if(J){break t}na=j[a+236>>2];g=q(0);if(!na){break t}b=j[a+64>>2];if(b){break s}u:{v:{w:{if((D|0)<1){break w}b=j[a+92>>2];S=(b|0)>2?b:2;b=l[P>>1];B=0;d=0;m=q(0);g=q(0);while(1){Ta=p(B,_);C=b;c=0;while(1){x=n[na+(c+Ta<<2)>>2];ja=x<q(.25);Aa=m;Pa=(ja?x:q(.25))>q(-2);m=Pa?q(.25):q(-2);m=Pa?ja?x:m:m;x=m>q(0)?q(m*q(.5)):m;m=q(Aa+q(x*q((c<<1|1)-S|0)));ja=C<<16;c=c+1|0;C=i[P+(c<<1)>>1];ja=C-(ja>>16)|0;g=q(g+q(x*q(ja|0)));d=d+ja|0;if((c|0)!=(S|0)){continue}break}B=B+1|0;if((B|0)!=(D|0)){continue}break}c=0;if((d|0)<=0){break w}m=q(q(q(m*q(6))/q(p(S+1|0,p(S-1|0,p(D,S)))|0))*q(.5));m=m<q(.03099999949336052)?m:q(.03099999949336052);g=q(g/q(d|0));d=i[P+(S<<1)>>1]/2<<16>>16;while(1){b=c;c=c+1|0;if((d|0)>i[P+(c<<1)>>1]){continue}break}x=m>q(-.03099999949336052)?m:q(-.03099999949336052);g=q(g+q(.20000000298023224));c=0;d=0;while(1){C=c<<2;w=n[C+na>>2];if((D|0)==2){m=n[na+(c+_<<2)>>2];w=m<w?w:m}m=q((w<q(0)?w:q(0))-q(g+q(x*q(c-b|0))));if(!(m>q(.25)^1)){n[C+la>>2]=m+q(-.25);d=d+1|0}c=c+1|0;if((S|0)!=(c|0)){continue}break}if((d|0)<3){break u}m=q(g+q(.25));g=q(0);if(!(m>q(0)^1)){break v}c=0;while(1){b=la+(c<<2)|0;n[b>>2]=u(q(n[b>>2]+q(-.25)),q(0));c=c+1|0;if((S|0)!=(c|0)){continue}break}g=m;break u}L(42604,42508,1770);z()}O(la,0,S<<2);x=q(0)}Ua=q(g+q(.20000000298023224));g=q(x*q(64))}Aa=g;b=j[a+64>>2];if(b){break s}m=q(0);if((E|0)>(J|0)){g=Ja?q(0):q(q(G|0)*q(.5));w=q(-10);c=J;while(1){x=q(w+q(-1));w=q(n[(c<<2)+e>>2]-g);w=w<x?x:w;if((D|0)==2){x=q(n[(c+_<<2)+e>>2]-g);w=w>x?w:x}m=q(m+w);c=c+1|0;if((E|0)!=(c|0)){continue}break}}g=n[a+240>>2];Qa=q(t(q(u(q(q(m/q(E-J|0))-g),q(-1.5))),q(3)));n[a+240>>2]=g+q(Qa*q(.019999999552965164));b=0}if(!Ca){M(Y,e,ha<<2)}c=pa;pa=ba+pa|0;ja=c+pa|0;Ja=c+ja|0;c=ta?da:ra;ra=Ba+20|0;da=c-p(ra,ua-50|0)|0;x:{if(!G){break x}c=(j[f+20>>2]+s(j[f+28>>2])|0)-29|0;y:{if((K|0)<(c|0)|U){break y}U=0;if(b|J|j[a+24>>2]<5){break y}c=1;w=n[ba>>2];z:{A:{if((D|0)==1){n[F+80>>2]=w;if((E|0)<2){break z}while(1){g=q(w+q(-1));b=c<<2;m=n[b+ba>>2];w=g>m?g:m;n[b+(F+80|0)>>2]=w;c=c+1|0;if((E|0)!=(c|0)){continue}break}break A}g=n[(_<<2)+ba>>2];w=g<w?w:g;n[F+80>>2]=w;if((E|0)<2){break z}while(1){g=q(w+q(-1));b=c<<2;m=n[b+ba>>2];x=n[(c+_<<2)+ba>>2];m=m>x?m:x;w=g>m?g:m;n[b+(F+80|0)>>2]=w;c=c+1|0;if((E|0)!=(c|0)){continue}break}}if((E|0)<2){break z}c=E-2|0;while(1){b=(F+80|0)+(c<<2)|0;g=n[b>>2];m=q(n[b+4>>2]+q(-1));n[b>>2]=g>m?g:m;b=(c|0)>0;c=c-1|0;if(b){continue}break}}b=(D|0)>1?D:1;C=E-1|0;d=0;B=(E|0)<4;w=q(0);while(1){if(!B){U=p(d,_);c=2;while(1){w=q(w+q(u(q(q(u(n[(c+U<<2)+e>>2],q(0)))-q(u(n[(F+80|0)+(c<<2)>>2],q(0)))),q(0))));c=c+1|0;if((C|0)!=(c|0)){continue}break}}d=d+1|0;if((b|0)!=(d|0)){continue}break}U=0;if(!(q(w/q(p(E-3|0,D)|0))>q(1)^1)){Da(H,aa,$,o,D,Z,G,j[a+28>>2]);Ga(H,o,ea,X,D,G);Ia(H,X,E,ea,e,D);if((ha|0)>=1){g=q(q(G|0)*q(.5));c=0;while(1){b=(c<<2)+Y|0;n[b>>2]=g+n[b>>2];c=c+1|0;if((ha|0)!=(c|0)){continue}break}}j[F+12>>2]=1045220557;U=1;ia=aa}c=(j[f+20>>2]+s(j[f+28>>2])|0)-29|0}if((c|0)>(K|0)){break x}T(f,U,3)}$=za-((p(D,ca)<<2)+15&-16)|0;b=$;I=b;ld(H,o,b,ea,X,D,aa);C=0;if(!((p(D,15)|0)>(y|0)|J|j[a+24>>2]<2)){C=!j[a+64>>2]}c=b;b=(_<<2)+15&-16;Z=c-b|0;c=Z;I=c;c=c-b|0;I=c;ta=c-b|0;d=ta;I=d;Va=_c(e,Y,_,J,E,D,Z,j[a+60>>2],j[H+56>>2],U,j[a+44>>2],j[a+52>>2],P,G,y,F+8|0,j[a+64>>2],la,sa,c,d);Y=d-b|0;d=Y;I=d;B:{if(C){b=20480/(y|0)|0;b=Zc(H,X,U,Y,(b|0)<78?80:b+2|0,$,ca,G,n[F+12>>2],j[F+16>>2],c);if((E|0)<=(R|0)){break B}c=(Y+(X<<2)|0)-4|0;while(1){j[Y+(R<<2)>>2]=j[c>>2];R=R+1|0;if((R|0)!=(E|0)){continue}break}break B}if(!(!J|!j[F+4>>2])){b=0;if((E|0)<1){break B}c=0;while(1){j[Y+(c<<2)>>2]=1;c=c+1|0;if((E|0)!=(c|0)){continue}break}break B}if(!(!J|(y|0)>14|j[a+184>>2]==2)){b=U;if((E|0)<1){break B}O(Y,0,Oa);break B}b=0;if((E|0)<1){break B}c=0;while(1){j[Y+(c<<2)>>2]=U;c=c+1|0;if((E|0)!=(c|0)){continue}break}}Ba=(D|0)>1?D:1;la=d-((ha<<2)+15&-16)|0;Ca=la;I=la;o=0;while(1){na=(E|0)<=(J|0);if(!na){C=p(o,_);c=J;while(1){d=c+C<<2;B=d+e|0;g=n[B>>2];if(!(q(r(q(g-n[d+ba>>2])))<q(2)^1)){n[B>>2]=g+q(n[d+Ja>>2]*q(-.25))}c=c+1|0;if((E|0)!=(c|0)){continue}break}}o=o+1|0;if((Ba|0)!=(o|0)){continue}break}zd(H,J,E,X,e,ba,K,la,f,D,G,A,j[a+12>>2],a+84|0,j[a+24>>2]>3,j[a+56>>2],j[a+64>>2]);R=0;o=j[f+4>>2]<<3;C=(j[f+20>>2]+s(j[f+28>>2])|0)-32|0;d=U?2:4;S=(G|0)!=0&o>>>0>=C+(d|1)>>>0;B=0;C:{if(na){break C}c=Y+(J<<2)|0;za=o-S|0;D:{if(za>>>0>=d+C>>>0){T(f,j[c>>2],d);C=(j[f+20>>2]+s(j[f+28>>2])|0)-32|0;B=j[c>>2];break D}j[c>>2]=0;B=0}c=J+1|0;if((E|0)==(c|0)){break C}ua=U?4:5;o=B;while(1){d=Y+(c<<2)|0;E:{if(za>>>0>=C+ua>>>0){T(f,j[d>>2]^o,ua);o=j[d>>2];B=B|o;C=(j[f+20>>2]+s(j[f+28>>2])|0)-32|0;break E}j[d>>2]=o}c=c+1|0;if((E|0)!=(c|0)){continue}break}}F:{if(!S){break F}d=(G<<3)+1744|0;c=U<<2;if(k[d+(c+B|0)|0]==k[d+((c|2)+B|0)|0]){break F}T(f,b,1);R=b<<1}if(!na){b=(U<<2)+R|0;d=G<<3;c=J;while(1){o=Y+(c<<2)|0;j[o>>2]=h[(d+(b+j[o>>2]|0)|0)+1744|0];c=c+1|0;if((E|0)!=(c|0)){continue}break}}d=a+100|0;if(((j[f+20>>2]+s(j[f+28>>2])|0)-28|0)<=(K|0)){G:{if(j[a+64>>2]){c=2;j[a+80>>2]=2;j[a+100>>2]=0;break G}b=a;H:{I:{J:{if(J){if(!j[a+24>>2]){break I}if(U){break J}c=3;break H}c=j[a+24>>2];if(!((c|0)>2?!((p(D,10)|0)>(A|0)|ia):0)){if(!c){break I}break J}c=jd(H,$,a+88|0,j[a+80>>2],a+96|0,d,(ya|0)!=0,X,D,aa,ta);break H}c=2;break H}c=0}j[b+80>>2]=c}N(f,c,42630,5)}if(j[a+64>>2]){j[Z>>2]=(y|0)>26?8:(y|0)/3|0}aa=Ca-((_<<2)+15&-16)|0;ya=aa;I=aa;rc(H,aa,G,D);K=K<<3;d=0;C=V(f);if(!na){A=6;y=J;while(1){c=y;y=c+1|0;o=c<<2;B=o+Z|0;b=0;K:{if(((A<<3)+C|0)>=(K-d|0)){break K}L:{R=o+aa|0;if(j[R>>2]<=0){o=0;break L}c=p(i[P+(y<<1)>>1]-i[P+(c<<1)>>1]|0,D)<<G;o=c<<3;c=(c|0)>48?c:48;X=(c|0)>(o|0)?o:c;o=A;c=0;while(1){S=j[B>>2];T(f,(S|0)>(c|0),o);C=V(f);if((c|0)>=(S|0)){o=c;break L}b=b+X|0;d=d+X|0;if((C+8|0)<(K-d|0)){o=1;c=c+1|0;if(j[R>>2]<=(b|0)){break L}continue}break}A=(A|0)>2?A-1|0:2;break K}if(!o){break K}A=(A|0)>2?A-1|0:2}j[B>>2]=b;if((E|0)!=(y|0)){continue}break}}if((D|0)==2){if(G){b=j[H+32>>2];B=l[b>>1];g=q(1.0000000036274937e-15);o=0;x=q(1.0000000036274937e-15);while(1){c=B<<16>>16<<G;o=o+1|0;B=i[b+(o<<1)>>1];y=B<<G;if((c|0)<(y|0)){while(1){m=n[$+(c<<2)>>2];w=n[$+(c+ca<<2)>>2];x=q(x+q(q(r(q(m+w)))+q(r(q(m-w)))));g=q(g+q(q(r(m))+q(r(w))));c=c+1|0;if((y|0)!=(c|0)){continue}break}}if((o|0)!=13){continue}break}b=i[b+26>>1]<<G+1;j[F+20>>2]=q(q(x*q(.7071070075035095))*q(b+(G>>>0<2?5:13)|0))>q(g*q(b|0))}b=md(q((da|0)/1e3|0),j[a+232>>2]);b=(b|0)<(J|0)?J:b;j[a+232>>2]=(b|0)>(E|0)?E:b}o=5;if((C+48|0)<=(K-d|0)){y=f;M:{if(!(j[a+64>>2]?0:(J|0)<=0)){j[a+228>>2]=0;o=5;break M}C=j[a+232>>2];Ra=n[F+12>>2];g=q(4);N:{if((da|0)<64e3){break N}g=q(5);if((da|0)>79999){break N}g=q(q(q(da-64e3>>10)*q(.0625))+q(4))}if((D|0)==2){o=j[H+32>>2];A=l[o>>1];m=q(0);b=0;while(1){c=A<<16;w=q(0);b=b+1|0;A=i[o+(b<<1)>>1];c=c>>16;B=A-c<<G;if((B|0)>=1){c=c<<G;K=$+(c<<2)|0;X=$+(c+ca<<2)|0;c=0;while(1){R=c<<2;w=q(w+q(n[R+K>>2]*n[X+R>>2]));c=c+1|0;if((B|0)!=(c|0)){continue}break}}m=q(m+w);if((b|0)!=8){continue}break}x=q(t(q(r(q(m*q(.125)))),q(1)));m=x;if((C|0)>=9){A=l[o+16>>1];b=8;m=x;while(1){c=A<<16;w=q(0);b=b+1|0;A=i[o+(b<<1)>>1];c=c>>16;B=A-c<<G;if((B|0)>=1){c=c<<G;K=$+(c<<2)|0;X=$+(c+ca<<2)|0;c=0;while(1){R=c<<2;w=q(w+q(n[R+K>>2]*n[X+R>>2]));c=c+1|0;if((B|0)!=(c|0)){continue}break}}w=q(r(w));m=m<w?m:w;if((b|0)!=(C|0)){continue}break}}Fa=ma(+q(q(1.0010000467300415)-q(x*x)));m=q(t(q(r(m)),q(1)));Ea=ma(+q(q(1.0010000467300415)-q(m*m)));m=q(n[a+228>>2]+q(.25));x=q(Fa*1.4426950408889634);w=q(x*q(.5));Sa=q(Ea*1.4426950408889634);w=q((w>Sa?w:Sa)*q(-.5));n[a+228>>2]=m<w?m:w;g=q(g+q(u(q(x*q(.75)),q(-4))))}b=E-1|0;o=2-E|0;w=q(0);B=0;while(1){if((E|0)>=2){A=p(j[H+8>>2],B);c=0;while(1){w=q(w+q(n[(c+A<<2)+e>>2]*q(o+(c<<1)|0)));c=c+1|0;if((b|0)!=(c|0)){continue}break}}B=B+1|0;if((Ba|0)!=(B|0)){continue}break}x=g;g=q(q(q(w/q(p(b,D)|0))+q(1))/q(6));b=g>q(2);c=g<q(-2);m=c?b?q(2):q(-2):q(2);g=q(q(q(x-(c?m:b?m:g))-Aa)-q(Ra+Ra));if(j[sa>>2]){x=g;g=q(n[a+128>>2]+q(.05000000074505806));g=q(g+g);b=g>q(2);c=g<q(-2);m=c?b?q(2):q(-2):q(2);g=q(x-(c?m:b?m:g))}g=q(v(q(g+q(.5))));O:{if(q(r(g))<q(2147483648)){b=~~g;break O}b=-2147483648}b=(b|0)<10?b:10;o=(b|0)>0?b:0}N(y,o,42820,7);C=V(f)}if((ka|0)>=1){c=j[H+36>>2];if(J){b=(p(D,-72)+ka|0)-32|0;b=(b|0)>0?b:0}else{b=ka-(ra<<3)|0}X=c-G|0;R=j[a+52>>2];b=R?(j[a+216>>2]>>X)+b|0:b;c=1275>>>oa|0;Q=(c|0)>(Q|0)?Q:c;ta=Q;P:{Q:{R:{if(!J){K=j[H+32>>2];c=j[a+92>>2];oa=j[H+8>>2];y=c?c:oa;A=i[K+(y<<1)>>1]<<G;S=j[a+236>>2];P=j[a+64>>2];g=n[a+228>>2];B=j[a+232>>2];m=n[F+12>>2];va=j[F+8>>2];A=(D|0)==2?(i[K+(((B|0)<(y|0)?B:y)<<1)>>1]<<G)+A|0:A;ra=j[sa>>2];c=b;S:{if(!ra){break S}x=n[a+136>>2];c=b;if(+x<.4^1){break S}c=b;x=q(q(q(.4000000059604645)-x)*q(A<<3));T:{if(q(r(x))<q(2147483648)){e=~~x;break T}e=-2147483648}c=c-e|0}x=q(m+q(-.04399999976158142));if((D|0)==2){e=c;y=(B|0)<(y|0)?B:y;y=(i[K+(y<<1)>>1]<<G)-y|0;Aa=q(q(q(q(y|0)*q(.800000011920929))/q(A|0))*q(c|0));g=q(q((g<q(1)?g:q(1))+q(-.10000000149011612))*q(y<<3));g=g>Aa?Aa:g;U:{if(q(r(g))<q(2147483648)){c=~~g;break U}c=-2147483648}c=e-c|0}e=(va+(-19<<G)|0)+c|0;g=q(x*q(e|0));V:{if(q(r(g))<q(2147483648)){c=~~g;break V}c=-2147483648}e=c+e|0;if(!(!ra|P)){g=q(A<<3);x=q(n[a+124>>2]+q(-.15000000596046448));x=q(q(g*q(1.2000000476837158))*(x<q(0)?q(-.11999999731779099):q(x+q(-.11999999731779099))));W:{if(q(r(x))<q(2147483648)){c=~~x;break W}c=-2147483648}g=q(g*q(.800000011920929));X:{if(q(r(g))<q(2147483648)){y=~~g;break X}y=-2147483648}e=c+((La?y:0)+e|0)|0}B=!S|(P|0)!=0;if(!B){y=(e|0)/4|0;P=y;g=q(Ua*q(A<<3));Y:{if(q(r(g))<q(2147483648)){c=~~g;break Y}c=-2147483648}c=c+e|0;e=(c|0)<(y|0)?P:c}A=e>>2;P=e;g=q(Va*q(p(i[(K+(oa<<1)|0)-4>>1]<<G,D)<<3));Z:{if(q(r(g))<q(2147483648)){y=~~g;break Z}y=-2147483648}c=(A|0)<(y|0)?y:A;e=(c|0)>(e|0)?P:c;if(!(!R|B^1)){g=q(q(e-b|0)*q(.6700000166893005));_:{if(q(r(g))<q(2147483648)){c=~~g;break _}c=-2147483648}e=c+b|0}c=e;if(S|m<q(.20000000298023224)^1){break Q}c=96e3-da|0;c=(c|0)<32e3?c:32e3;g=q(q(((c|0)<0?q(0):q(q(c|0)*q(3099999958067201e-21)))*Qa)*q(e|0));if(!(q(r(g))<q(2147483648))){break R}c=~~g+e|0;break Q}c=b;b=j[a+188>>2];c=(c+((b|0)<100?96>>>oa|0:0)|0)-((b|0)>100?144>>>oa|0:0)|0;g=n[F+12>>2];m=q(q(g+q(-.25))*q(400));$:{if(q(r(m))<q(2147483648)){b=~~m;break $}b=-2147483648}b=b+c|0;e=g>q(.699999988079071)?(b|0)>400?b:400:b;b=((d+C|0)+63>>6)+2|0;c=(d+va|0)+359>>6;b=(b|0)>(c|0)?b:c;break P}c=e- -2147483648|0}e=c;b=b<<1;e=(b|0)<(e|0)?b:e;b=((d+C|0)+63>>6)+2|0}e=e+C|0;c=e+32>>6;b=(b|0)>(c|0)?b:c;c=(b|0)>(Q|0)?ta:b;w=q(.0010000000474974513);b=j[a+220>>2];if((b|0)<=969){j[a+220>>2]=b+1;w=q(q(1)/q(b+21|0))}b=xa?c:2;aa:{if(!R){break aa}d=j[a+208>>2]+((xa?c<<6:128)-ka|0)|0;j[a+208>>2]=d;c=a;C=c;y=j[c+212>>2];g=q(w*q((((xa?e-ka|0:0)<<X)-j[c+216>>2]|0)-y|0));ba:{if(q(r(g))<q(2147483648)){c=~~g;break ba}c=-2147483648}c=c+y|0;j[C+212>>2]=c;j[a+216>>2]=0-c;if((d|0)>-1){break aa}j[a+208>>2]=0;b=(xa?(d|0)/-64|0:0)+b|0}Q=(b|0)>(Q|0)?Q:b;fa(f,Q)}c=(_<<2)+15&-16;b=ya-c|0;I=b;e=b-c|0;d=e;I=d;c=d-c|0;oa=c;I=c;B=0;y=H;C=J;A=E;R=a+232|0;X=F+20|0;ua=Q<<6;K=ua+(V(f)^-1)|0;S=K;d=0;ca:{if(G>>>0<2){break ca}d=0;if(!U){break ca}B=(K|0)>=((G<<3)+16|0);d=B<<3}K=d;ka=S-K|0;ra=F+80|0;d=e;S=b;ta=c;ya=D;za=G;Ca=f;va=j[a+92>>2];if(j[sa>>2]){sa=j[a+152>>2];La=sa;P=13;da:{if((da|0)<(p(D,32e3)|0)){break da}P=16;if((da|0)<(p(D,48e3)|0)){break da}P=18;if((da|0)<(p(D,6e4)|0)){break da}P=(da|0)<(p(D,8e4)|0)?19:20}P=(P|0)<(sa|0)?La:P}else{P=E-1|0}y=gd(y,C,A,Z,aa,o,R,X,ka,ra,d,S,ta,ya,za,Ca,va,j[a+64>>2]?1:P);d=y;o=a;A=j[a+92>>2];if(A){d=A+1|0;A=A-1|0;A=(A|0)>(y|0)?A:y;d=(d|0)<(A|0)?d:A}j[o+92>>2]=d;xd(H,J,E,ba,la,b,f,D);o=0;d=oa-(ha+15&-16)|0;I=d;id(H,J,E,$,(D|0)==2?$+(ca<<2)|0:0,d,ea,e,ia,j[a+80>>2],j[F+20>>2],j[a+232>>2],Y,ua-K|0,j[F+80>>2],f,G,y,a+76|0,j[a+24>>2],j[a+72>>2],j[a+68>>2]);if(B){W(f,j[a+116>>2]<2,1)}wd(H,J,E,ba,la,b,c,(((Q<<3)-j[f+20>>2]|0)-s(j[f+28>>2])|0)+32|0,f,D);b=wa<<2;e=O(Ja,0,b);while(1){if(!na){y=p(o,_);c=J;while(1){A=c+y<<2;g=n[A+la>>2];d=g>q(.5);C=e+A|0;A=(d?q(.5):g)<q(-.5);m=A?q(-.5):q(.5);n[C>>2]=d?m:A?m:g;c=c+1|0;if((E|0)!=(c|0)){continue}break}}o=o+1|0;if((Ba|0)!=(o|0)){continue}break}if(!(!(xa^1)|(ha|0)<1)){c=0;while(1){j[(c<<2)+ba>>2]=-1042284544;c=c+1|0;if((ha|0)!=(c|0)){continue}break}}c=j[F+28>>2];j[a+112>>2]=Ka;n[a+108>>2]=Na;j[a+104>>2]=c;if(qa){c=_<<2;M(c+ba|0,ba,c)}ea:{if(U){c=0;if((wa|0)<=0){break ea}while(1){b=c<<2;d=b+pa|0;g=n[d>>2];m=n[b+ba>>2];n[d>>2]=g<m?g:m;c=c+1|0;if((wa|0)!=(c|0)){continue}break}break ea}M(ja,pa,b);M(pa,ba,b)}d=(J|0)<1;e=0;while(1){if(!d){o=p(e,_);c=0;while(1){b=c+o<<2;j[b+ba>>2]=0;j[b+ja>>2]=-1042284544;j[b+pa>>2]=-1042284544;c=c+1|0;if((J|0)!=(c|0)){continue}break}}if((E|0)<(_|0)){o=p(e,_);c=E;while(1){b=c+o<<2;j[b+ba>>2]=0;j[b+ja>>2]=-1042284544;j[b+pa>>2]=-1042284544;c=c+1|0;if((_|0)!=(c|0)){continue}break}}e=e+1|0;if((Ma|0)!=(e|0)){continue}break}j[a+116>>2]=!U&(Ha^-1)?0:j[a+116>>2]+1|0;j[a+76>>2]=j[f+28>>2];$a(f);C=j[f+44>>2]?-3:Q}I=F+192|0;return C}function Wc(a,b,c,d,e,f,g,i,k,l,m){var o=q(0),s=0,w=q(0),x=q(0),z=0,A=q(0),B=q(0),C=q(0),D=q(0),E=q(0),F=0,G=0,H=q(0),J=0,K=q(0),L=0,N=0,O=q(0),P=q(0),Q=q(0),R=q(0),S=q(0),T=0,U=q(0),V=q(0),W=q(0),X=q(0),Y=q(0),Z=q(0),_=0,$=q(0),aa=q(0),ba=q(0),ca=q(0),da=q(0),ea=q(0),fa=q(0),ga=q(0),ha=q(0),ia=0,ja=0,ka=q(0),la=q(0),na=0,pa=0,qa=0,ra=q(0),sa=q(0),ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=q(0),Ba=q(0),Ca=q(0),Da=q(0),Ea=q(0),Fa=0,Ga=0,Ha=q(0),Ia=q(0);s=I-11360|0;I=s;if(c){z=(p(i,95)|0)/50|0;d=d&-2;va=(d|0)>(z|0)?z:d;ia=j[a+7440>>2];ja=va-ia|0;if((ja|0)>=1){wa=a+7464|0;Fa=a+3852|0;Ga=a+4812|0;xa=a+7592|0;na=a+2892|0;qa=(i|0)/50|0;o=q(q(.0005699999746866524)/q(1<<((k|0)>8?k:8)-8));ra=q(o*o);Ha=q(ra*q(3));while(1){if(!j[a+7460>>2]){j[a+7460>>2]=1;j[a+5772>>2]=240}z=(ja|0)>(qa|0)?qa:ja;pa=j[a+7436>>2];i=j[a+8>>2];a:{if((i|0)!=16e3){d=ia;if((i|0)!=48e3){break a}z=(z|0)/2|0;d=(ia|0)/2|0;break a}z=(p(z,3)|0)/2|0;d=(p(ia,3)|0)/2|0}G=j[b+72>>2];J=j[a+5772>>2];F=720-J|0;Z=q(tb(l,c,((J<<2)+a|0)+2892|0,xa,(z|0)<(F|0)?z:F,d,f,g,i)+n[a+7456>>2]);n[a+7456>>2]=Z;i=j[a+5772>>2]+z|0;b:{if((i|0)<=719){j[a+5772>>2]=i;break b}ta=pa+1|0;fa=q(q(1)/q(((pa|0)<100?ta:100)|0));F=j[a+7444>>2];j[a+7444>>2]=((F|0)>98?-99:1)+F;L=Nc(na,k);i=0;while(1){J=(s+5760|0)+(i<<3)|0;N=i<<2;o=n[N+48944>>2];N=N+na|0;n[J>>2]=o*n[N>>2];n[J+4>>2]=o*n[N+960>>2];J=479-i|0;N=(s+5760|0)+(J<<3)|0;n[N>>2]=o*n[(J<<2)+na>>2];n[N+4>>2]=o*n[(719-i<<2)+na>>2];i=i+1|0;if((i|0)!=240){continue}break}M(na,Ga,960);i=j[a+5772>>2];z=i+z|0;o=tb(l,c,Fa,xa,z-720|0,(d-i|0)+720|0,f,g,j[a+8>>2]);j[a+5772>>2]=z-480;n[a+7456>>2]=o;N=(F<<6)+a|0;J=N+7604|0;if(L){d=j[a+7444>>2];d=(((d|0)<2?98:-2)+d<<6)+a|0;i=d+7660|0;z=j[i+4>>2];j[J+56>>2]=j[i>>2];j[J+60>>2]=z;i=d+7652|0;z=j[i+4>>2];j[J+48>>2]=j[i>>2];j[J+52>>2]=z;i=d+7644|0;z=j[i+4>>2];j[J+40>>2]=j[i>>2];j[J+44>>2]=z;i=d+7636|0;z=j[i+4>>2];j[J+32>>2]=j[i>>2];j[J+36>>2]=z;i=d+7628|0;z=j[i+4>>2];j[J+24>>2]=j[i>>2];j[J+28>>2]=z;i=d+7620|0;z=j[i+4>>2];j[J+16>>2]=j[i>>2];j[J+20>>2]=z;i=d+7612|0;z=j[i+4>>2];j[J+8>>2]=j[i>>2];j[J+12>>2]=z;d=d+7604|0;i=j[d+4>>2];j[J>>2]=j[d>>2];j[J+4>>2]=i;break b}fd(G,s+5760|0,s+1920|0);i=1;K=n[s+1920>>2];if(K!=K){j[J>>2]=0;break b}while(1){d=((0-i<<3)+s|0)+5760|0;o=n[d>>2];z=(s+1920|0)+(i<<3)|0;x=n[z>>2];D=q(o-x);A=n[z+4>>2];P=n[d+4>>2];E=q(A+P);w=q(0);F=i<<2;z=F+a|0;L=z;O=q(x+o);o=q(O*O);A=q(A-P);x=q(A*A);C=q(0);c:{if(q(o+x)<q(1.000000045813705e-18)){break c}C=q((A<q(0)?q(-1.5707963705062866):q(1.5707963705062866))-q(q(q(A*O)*q(q(o*q(.43157973885536194))+x))/q(q(q(o*q(.6784840226173401))+x)*q(q(o*q(.0859554186463356))+x))));if(!(o<x^1)){break c}C=A<q(0)?q(-1.5707963705062866):q(1.5707963705062866);A=q(O*A);C=q(q(C+q(q(A*q(o+q(x*q(.43157973885536194))))/q(q(o+q(x*q(.6784840226173401)))*q(o+q(x*q(.0859554186463356))))))-(A<q(0)?q(-1.5707963705062866):q(1.5707963705062866)))}H=q(C*q(.15915493667125702));O=q(H-n[z+12>>2]);o=q(O-n[z+972>>2]);x=q(D*D);A=q(E*E);d:{if(q(x+A)<q(1.000000045813705e-18)){break d}if(!(x>A^1)){w=q((D<q(0)?q(-1.5707963705062866):q(1.5707963705062866))-q(q(q(D*E)*q(x+q(A*q(.43157973885536194))))/q(q(x+q(A*q(.6784840226173401)))*q(x+q(A*q(.0859554186463356))))));break d}w=q(D*E);w=q(q((D<q(0)?q(-1.5707963705062866):q(1.5707963705062866))+q(q(w*q(q(x*q(.43157973885536194))+A))/q(q(q(x*q(.6784840226173401))+A)*q(q(x*q(.0859554186463356))+A))))-(w<q(0)?q(-1.5707963705062866):q(1.5707963705062866)))}x=q(w*q(.15915493667125702));A=q(x-H);D=q(A-O);w=je(D);e:{if(q(r(w))<q(2147483648)){d=~~w;break e}d=-2147483648}T=s+F|0;w=o;o=je(o);f:{if(q(r(o))<q(2147483648)){G=~~o;break f}G=-2147483648}w=q(w-q(G|0));o=q(D-q(d|0));n[T>>2]=q(r(w))+q(r(o));d=z+1932|0;D=n[d>>2];o=q(o*o);o=q(o*o);n[F+(s+1e4|0)>>2]=q(q(1)/q(q(o*q(62341.81640625))+q(1)))+q(-.014999999664723873);w=q(w*w);n[F+(s+960|0)>>2]=q(q(1)/q(q(q(q(q(D+q(w*w))+q(o+o))*q(.25))*q(62341.81640625))+q(1)))+q(-.014999999664723873);n[L+12>>2]=x;n[z+972>>2]=A;n[d>>2]=o;i=i+1|0;if((i|0)!=240){continue}break}i=2;o=n[s+10008>>2];while(1){d=i<<2;z=d+(s+960|0)|0;x=n[z>>2];A=n[(d+s|0)+9996>>2];i=i+1|0;w=n[(s+1e4|0)+(i<<2)>>2];A=w<A?A:w;o=q((o<A?o:A)+q(-.10000000149011612));n[z>>2]=(o<x?x:o)*q(.8999999761581421);o=w;if((i|0)!=239){continue}break}ua=N+7620|0;j[ua>>2]=0;_=j[a+7436>>2];if(!_){j[a+7008>>2]=1343554297;j[a+7012>>2]=1343554297;j[a+7080>>2]=-803929351;j[a+7084>>2]=-803929351;j[a+7088>>2]=-803929351;j[a+7092>>2]=-803929351;j[a+7016>>2]=1343554297;j[a+7020>>2]=1343554297;j[a+7096>>2]=-803929351;j[a+7100>>2]=-803929351;j[a+7024>>2]=1343554297;j[a+7028>>2]=1343554297;j[a+7104>>2]=-803929351;j[a+7108>>2]=-803929351;j[a+7032>>2]=1343554297;j[a+7036>>2]=1343554297;j[a+7112>>2]=-803929351;j[a+7116>>2]=-803929351;j[a+7040>>2]=1343554297;j[a+7044>>2]=1343554297;j[a+7048>>2]=1343554297;j[a+7052>>2]=1343554297;j[a+7120>>2]=-803929351;j[a+7124>>2]=-803929351;j[a+7056>>2]=1343554297;j[a+7060>>2]=1343554297;j[a+7136>>2]=-803929351;j[a+7140>>2]=-803929351;j[a+7128>>2]=-803929351;j[a+7132>>2]=-803929351;j[a+7064>>2]=1343554297;j[a+7068>>2]=1343554297;j[a+7072>>2]=1343554297;j[a+7144>>2]=-803929351;j[a+7148>>2]=-803929351;j[a+7076>>2]=1343554297}o=q(K+K);w=q(o*o);o=n[s+1924>>2];o=q(o+o);w=q(w+q(o*o));o=n[s+1928>>2];x=q(o*o);o=n[s+5752>>2];x=q(x+q(o*o));o=n[s+1932>>2];x=q(x+q(o*o));o=n[s+5756>>2];w=q(w+q(x+q(o*o)));o=n[s+1936>>2];x=q(o*o);o=n[s+5744>>2];x=q(x+q(o*o));o=n[s+1940>>2];x=q(x+q(o*o));o=n[s+5748>>2];w=q(w+q(x+q(o*o)));o=n[s+1944>>2];x=q(o*o);o=n[s+5736>>2];x=q(x+q(o*o));o=n[s+1948>>2];x=q(x+q(o*o));o=n[s+5740>>2];D=q(q(ma(+q(q(w+q(x+q(o*o)))+q(1.000000013351432e-10))))*q(.7213475108146667));n[s+9888>>2]=D;K=q(0);d=0;i=4;$=q(0);O=q(0);P=q(0);ga=q(0);ha=q(0);Q=q(0);while(1){A=q(0);H=q(0);E=q(0);F=d+1|0;L=F<<2;z=j[L+49904>>2];if((z|0)>(i|0)){while(1){G=(s+1920|0)+(i<<3)|0;o=n[G>>2];w=q(o*o);T=((0-i<<3)+s|0)+5760|0;o=n[T>>2];w=q(w+q(o*o));o=n[G+4>>2];w=q(w+q(o*o));o=n[T+4>>2];o=q(w+q(o*o));E=q(E+o);G=i<<2;H=q(H+q(o*q(u(n[G+(s+960|0)>>2],q(0)))));A=q(A+q(q(o+o)*q(q(.5)-n[s+G>>2])));i=i+1|0;if((z|0)!=(i|0)){continue}break}}if(!(E==E?!(E<q(1e9)^1):0)){j[J>>2]=0;break b}G=d<