UNPKG

pathkit-asmjs

Version:

A asm.js version of Skia's PathOps toolkit

25 lines (22 loc) 666 kB
var PathKitInit = (() => { var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined; if (typeof __filename !== 'undefined') _scriptDir = _scriptDir || __filename; return ( function(PathKitInit) { PathKitInit = PathKitInit || {}; null;var f;f||(f=typeof PathKitInit !== 'undefined' ? PathKitInit : {});var aa=Object.assign,ba,ca;f.ready=new Promise(function(a,b){ba=a;ca=b}); (function(a){var b={};a.loadCmdsTypedArray=function(h){for(var l=0,m=0;m<h.length;m++)l+=h[m].length;if(b[l])var n=b[l];else n=new Float32Array(l),b[l]=n;var p=0;for(m=0;m<h.length;m++)for(var r=0;r<h[m].length;r++){var u=h[m][r];"string"===typeof u&&(u=a.SkBits2FloatUnsigned(parseInt(u)));n[p]=u;p++}h=a._malloc(n.length*n.BYTES_PER_ELEMENT);a.HEAPF32.set(n,h/n.BYTES_PER_ELEMENT);return[h,l]};a.FromCmds=function(h){h=a.loadCmdsTypedArray(h);var l=a._FromCmds(h[0],h[1]);a._free(h[0]);return l};var c, d,e,g,k;a.cubicYFromX=function(h,l,m,n,p){c&&d===h&&e===l&&g===m&&k===n||(c&&c.delete(),c=new a._SkCubicMap([h,l],[m,n]),d=h,e=l,g=m,k=n);return c.computeYFromX(p)};a.cubicPtFromT=function(h,l,m,n,p){c&&d===h&&e===l&&g===m&&k===n||(c&&c.delete(),c=new a._SkCubicMap([h,l],[m,n]),d=h,e=l,g=m,k=n);return c.computePtFromT(p)}})(f); (function(a){a.onRuntimeInitialized=function(){a.SkPath.prototype.addPath=function(){var b=arguments[0];if(1===arguments.length)this._addPath(b,1,0,0,0,1,0,0,0,1);else if(2===arguments.length){var c=arguments[1];this._addPath(b,c.a,c.c,c.e,c.b,c.d,c.f,0,0,1)}else if(7===arguments.length)c=arguments,this._addPath(b,c[1],c[3],c[5],c[2],c[4],c[6],0,0,1);else if(10===arguments.length)c=arguments,this._addPath(b,c[1],c[2],c[3],c[4],c[5],c[6],c[7],c[8],c[9]);else return console.Ma("addPath expected to take 1, 2, 7, or 10 args. Got "+ arguments.length),null;return this};a.SkPath.prototype.arc=function(b,c,d,e,g,k){this._arc(b,c,d,e,g,!!k);return this};a.SkPath.prototype.arcTo=function(b,c,d,e,g){this._arcTo(b,c,d,e,g);return this};a.SkPath.prototype.bezierCurveTo=function(b,c,d,e,g,k){this._cubicTo(b,c,d,e,g,k);return this};a.SkPath.prototype.close=function(){this._close();return this};a.SkPath.prototype.closePath=function(){this._close();return this};a.SkPath.prototype.conicTo=function(b,c,d,e,g){this._conicTo(b,c,d,e,g);return this}; a.SkPath.prototype.cubicTo=function(b,c,d,e,g,k){this._cubicTo(b,c,d,e,g,k);return this};a.SkPath.prototype.dash=function(b,c,d){return this._dash(b,c,d)?this:null};a.SkPath.prototype.ellipse=function(b,c,d,e,g,k,h,l){this._ellipse(b,c,d,e,g,k,h,!!l);return this};a.SkPath.prototype.lineTo=function(b,c){this._lineTo(b,c);return this};a.SkPath.prototype.moveTo=function(b,c){this._moveTo(b,c);return this};a.SkPath.prototype.op=function(b,c){return this._op(b,c)?this:null};a.SkPath.prototype.quadraticCurveTo= function(b,c,d,e){this._quadTo(b,c,d,e);return this};a.SkPath.prototype.quadTo=function(b,c,d,e){this._quadTo(b,c,d,e);return this};a.SkPath.prototype.rect=function(b,c,d,e){this._rect(b,c,d,e);return this};a.SkPath.prototype.simplify=function(){return this._simplify()?this:null};a.SkPath.prototype.stroke=function(b){b=b||{};b.width=b.width||1;b.miter_limit=b.miter_limit||4;b.cap=b.cap||a.StrokeCap.BUTT;b.join=b.join||a.StrokeJoin.MITER;return this._stroke(b)?this:null};a.SkPath.prototype.transform= function(){if(1===arguments.length)this._transform(arguments[0]);else if(9===arguments.length){var b=arguments;this._transform(b[0],b[1],b[2],b[3],b[4],b[5],b[6],b[7],b[8])}else return console.Ma("transform expected to take 1 or 9 arguments. Got "+arguments.length),null;return this};a.SkPath.prototype.trim=function(b,c,d){return this._trim(b,c,!!d)?this:null}}})(f); var da=aa({},f),ea="object"===typeof window,q="function"===typeof importScripts,fa="object"===typeof process&&"object"===typeof process.versions&&"string"===typeof process.versions.node,ha=!ea&&!fa&&!q,v="";function ia(a){return f.locateFile?f.locateFile(a,v):v+a}var ja,w,ka,fs,la,ma; if(fa)v=q?require("path").dirname(v)+"/":__dirname+"/",ma=()=>{la||(fs=require("fs"),la=require("path"))},ja=function(a,b){ma();a=la.normalize(a);return fs.readFileSync(a,b?null:"utf8")},ka=a=>{a=ja(a,!0);a.buffer||(a=new Uint8Array(a));return a},w=(a,b,c)=>{ma();a=la.normalize(a);fs.readFile(a,function(d,e){d?c(d):b(e.buffer)})},1<process.argv.length&&process.argv[1].replace(/\\/g,"/"),process.argv.slice(2),process.on("uncaughtException",function(a){throw a;}),process.on("unhandledRejection",function(a){throw a; }),f.inspect=function(){return"[Emscripten Module object]"};else if(ea||q)q?v=self.location.href:"undefined"!==typeof document&&document.currentScript&&(v=document.currentScript.src),_scriptDir&&(v=_scriptDir),0!==v.indexOf("blob:")?v=v.substr(0,v.replace(/[?#].*/,"").lastIndexOf("/")+1):v="",ja=a=>{var b=new XMLHttpRequest;b.open("GET",a,!1);b.send(null);return b.responseText},q&&(ka=a=>{var b=new XMLHttpRequest;b.open("GET",a,!1);b.responseType="arraybuffer";b.send(null);return new Uint8Array(b.response)}), w=(a,b,c)=>{var d=new XMLHttpRequest;d.open("GET",a,!0);d.responseType="arraybuffer";d.onload=()=>{200==d.status||0==d.status&&d.response?b(d.response):c()};d.onerror=c;d.send(null)};var na=f.print||console.log.bind(console),x=f.printErr||console.warn.bind(console);aa(f,da);da=null;var A;f.wasmBinary&&(A=f.wasmBinary);var noExitRuntime=f.noExitRuntime||!0;function oa(){this.buffer=new ArrayBuffer(pa/65536*65536)}function qa(){this.exports=( // EMSCRIPTEN_START_ASM function instantiate(Ja){function c(d){d.set=function(a,b){this[a]=b};d.get=function(a){return this[a]};return d}var e;var f=new ArrayBuffer(16);var g=new Int32Array(f);var h=new Float32Array(f);var i=new Float64Array(f);function j(k){return g[k]}function l(k,m){g[k]=m}function n(){return i[0]}function o(m){i[0]=m}function p(m){h[2]=m}function q(){return h[2]}function Ha(Ia){var r=Ia.a;var s=r.buffer;r.grow=Fa;var t=new Int8Array(s);var u=new Int16Array(s);var v=new Int32Array(s);var w=new Uint8Array(s);var x=new Uint16Array(s);var y=new Uint32Array(s);var z=new Float32Array(s);var A=new Float64Array(s);var B=Math.imul;var C=Math.fround;var D=Math.abs;var E=Math.clz32;var F=Math.min;var G=Math.max;var H=Math.floor;var I=Math.ceil;var J=Math.trunc;var K=Math.sqrt;var L=Ia.abort;var M=NaN;var N=Infinity;var O=Ia.b;var P=Ia.c;var Q=Ia.d;var R=Ia.e;var S=Ia.f;var T=Ia.g;var U=Ia.h;var V=Ia.i;var W=Ia.j;var X=Ia.k;var Y=Ia.l;var Z=Ia.m;var _=Ia.n;var $=Ia.o;var aa=Ia.p;var ba=Ia.q;var ca=Ia.r;var da=Ia.s;var ea=Ia.t;var fa=Ia.u;var ga=Ia.v;var ha=Ia.w;var ia=Ia.x;var ja=Ia.y;var ka=Ia.z;var la=Ia.A;var ma=Ia.B;var na=Ia.C;var oa=Ia.D;var pa=Ia.E;var qa=Ia.F;var ra=Ia.G;var sa=Ia.H;var ta=Ia.I;var ua=Ia.J;var va=Ia.K;var wa=Ia.L;var xa=5254464;var ya=0; // EMSCRIPTEN_START_FUNCS function cd(a,b,c){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,y=0,z=0,C=0,D=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;o=xa-1088|0;xa=o;t[c+454|0]=0;t[c+456|0]=1;v[c+448>>2]=0;d=v[a>>2];S=c,T=(za[v[v[d>>2]+60>>2]](d)|0)+4|0,t[S+455|0]=T;a:{e=v[a+1044>>2];f=v[b+1044>>2];d=ni(a,e,b,f,o+1084|0);if(!d){break a}if(!((d|0)!=2|v[o+1084>>2]!=2)){ki(a,b,c);break a}L=a+1028|0;g=v[a+1032>>2];d=0-g&3;if((d|8)>>>0>v[a+1036>>2]-g>>>0){Wa(L,8,4);g=v[a+1032>>2];d=0-g&3}d=d+g|0;v[a+1032>>2]=d+8;v[d>>2]=0;v[d+4>>2]=0;v[d>>2]=f;v[d+4>>2]=v[e+72>>2];v[e+72>>2]=d;M=b+1028|0;s=b+1044|0;p=a+1044|0;g=v[b+1032>>2];d=0-g&3;if((d|8)>>>0>v[b+1036>>2]-g>>>0){Wa(M,8,4);g=v[b+1032>>2];d=0-g&3}d=d+g|0;v[b+1032>>2]=d+8;v[d>>2]=0;v[d+4>>2]=0;v[d>>2]=e;v[d+4>>2]=v[f+72>>2];v[f+72>>2]=d;N=8;while(1){b:{c:{i=v[p>>2];d=v[i+80>>2];if(!d){break c}f=w[i+144|0]!=0;g=1e4;while(1){g=g-1|0;if(!g){t[a+1062|0]=1;break a}e=w[d+144|0];if(!(!(!e&f)&(!(A[i+136>>3]<A[d+136>>3])|(e|0)!=(f&1)))){f=(e|0)!=0;i=d}d=v[d+80>>2];if(d){continue}break}if(i){break c}if(!w[a+1062|0]){break b}break a}d:{e:{f:{e=v[s>>2];d=v[e+80>>2];g:{if(d){f=w[e+144|0]!=0;g=1e4;while(1){g=g-1|0;if(!g){t[b+1062|0]=1;break a}j=w[d+144|0];if(!(!(!j&f)&(!(A[e+136>>3]<A[d+136>>3])|(j|0)!=(f&1)))){f=(j|0)!=0;e=d}d=v[d+80>>2];if(d){continue}break}if(!e){break g}}if(A[i+136>>3]>A[e+136>>3]){break g}d=w[e+144|0];if(w[i+144|0]){break f}if(!d){break e}}if(w[b+1062|0]){break a}if(w[i+144|0]){break b}u[a+1060>>1]=0;u[b+1060>>1]=0;d=v[a+1052>>2];h:{if(d){v[a+1052>>2]=v[d+80>>2];break h}e=v[a>>2];d=v[a+1032>>2];g=0-d&7;if((g|152)>>>0>v[a+1036>>2]-d>>>0){Wa(L,152,8);d=v[a+1032>>2];g=0-d&7}d=d+g|0;v[a+1032>>2]=d+152;t[d+32|0]=0;v[d+24>>2]=0;v[d+28>>2]=-1074790400;v[d+16>>2]=0;v[d+20>>2]=2146959360;t[d+64|0]=0;v[d+56>>2]=0;v[d+60>>2]=-1074790400;v[d+8>>2]=0;v[d+12>>2]=2146959360;v[d+48>>2]=0;v[d+52>>2]=2146959360;v[d+40>>2]=0;v[d+44>>2]=2146959360;S=d,T=za[v[v[e>>2]+56>>2]](e,L)|0,v[S>>2]=T}t[d+148|0]=0;t[d+145|0]=0;v[d+72>>2]=0;v[a+1056>>2]=v[a+1056>>2]+1;if(!Bf(d,i,(A[i+120>>3]+A[i+128>>3])*.5,L)){break b}if(!ae(a,i,b)){break a}if(!ae(a,d,b)){break a}break d}if(d){break b}}u[a+1060>>1]=0;u[b+1060>>1]=0;d=v[b+1052>>2];i:{if(d){v[b+1052>>2]=v[d+80>>2];break i}f=v[b>>2];d=v[b+1032>>2];g=0-d&7;if((g|152)>>>0>v[b+1036>>2]-d>>>0){Wa(M,152,8);d=v[b+1032>>2];g=0-d&7}d=d+g|0;v[b+1032>>2]=d+152;t[d+32|0]=0;v[d+24>>2]=0;v[d+28>>2]=-1074790400;v[d+16>>2]=0;v[d+20>>2]=2146959360;t[d+64|0]=0;v[d+56>>2]=0;v[d+60>>2]=-1074790400;v[d+8>>2]=0;v[d+12>>2]=2146959360;v[d+48>>2]=0;v[d+52>>2]=2146959360;v[d+40>>2]=0;v[d+44>>2]=2146959360;S=d,T=za[v[v[f>>2]+56>>2]](f,M)|0,v[S>>2]=T}t[d+148|0]=0;t[d+145|0]=0;v[d+72>>2]=0;v[b+1056>>2]=v[b+1056>>2]+1;if(!Bf(d,e,(A[e+120>>3]+A[e+128>>3])*.5,M)){break b}if(!ae(b,e,a)){break a}if(!ae(b,d,a)){break a}}j:{if(v[a+1056>>2]<9|v[b+1056>>2]<9){break j}if((N|0)==8){g=1e5;e=v[p>>2];f=e;d=v[e+80>>2];if(d){while(1){f=A[d+128>>3]>A[f+128>>3]?d:f;g=g-1|0;d=v[d+80>>2];if(d){continue}break}}J=A[f+128>>3];C=A[e+120>>3]}Q=0;H=xa-16|0;xa=H;d=v[a+1044>>2];k:{if(!d){break k}Q=1;while(1){f=1;e=d;g=v[d+80>>2];if(!g){break k}l:{while(1){i=g;if(A[g+120>>3]>A[e+128>>3]){i=e;break l}f=f+1|0;e=g;g=v[i+80>>2];if(g){continue}break}g=0}m:{if((f|0)>=9){Af(a,b,d,i);v[H+12>>2]=d;while(1){k=0;n=0;K=0;y=xa-32|0;xa=y;n:{o:{p:{q:{r:{while(1){s:{t:{if(w[d+32|0]){if(!w[d- -64|0]){break s}k=k?k:d;n=d;break t}u:{if(!k){k=0;break u}if(w[d+144|0]){break q}}n=0}if((d|0)==(i|0)){break r}d=v[d+80>>2];if(d){continue}break p}break}if(n){break q}}n=i}if(!k){break p}if(n){break o}}v[H+12>>2]=0;d=1;break n}r=A[k+120>>3];v[y+24>>2]=0;v[y+28>>2]=0;f=v[k+76>>2];O=A[k+24>>3];d=v[k+72>>2];v:{if(!d){j=0;break v}while(1){j=v[d>>2];if((A[j+120>>3]-O)*(A[j+128>>3]-O)<=0){break v}d=v[d+4>>2];if(d){continue}break}j=0}v[y+20>>2]=j;R=A[k+56>>3];w:{x:{if(!f|r!=A[f+128>>3]){break x}D=A[f+120>>3]-r;q=0;z=0;d=xa-192|0;xa=d;e=v[a>>2];t[d+72|0]=0;j=d- -64|0;v[j>>2]=0;v[j+4>>2]=-1074790400;v[d+56>>2]=0;v[d+60>>2]=2146959360;t[d+104|0]=0;v[d+96>>2]=0;v[d+100>>2]=-1074790400;v[d+88>>2]=0;v[d+92>>2]=2146959360;v[d+48>>2]=0;v[d+52>>2]=2146959360;v[d+80>>2]=0;v[d+84>>2]=2146959360;e=za[v[v[e>>2]+56>>2]](e,a+1028|0)|0;h=r;A[d+168>>3]=h;v[d+40>>2]=e;A[d+160>>3]=h;e=v[a>>2];za[v[v[e>>2]+76>>2]](d+24|0,e,h);j=d+48|0;P=d+128|0;l=v[b>>2];m=D;y:{z:{while(1){F=0;while(1){G=m*.5;m=A[d+160>>3]+G;A[d+160>>3]=m;A:{B:{if(m!=m){break B}I=A[d+168>>3];if(I!=I){break B}e=v[a>>2];za[v[v[e>>2]+84>>2]](e,m,I,v[d+40>>2]);Sb(P,v[d+40>>2]);t[d+72|0]=0;v[d+64>>2]=0;v[d+68>>2]=-1074790400;v[d+56>>2]=0;v[d+60>>2]=2146959360;t[d+104|0]=0;v[d+96>>2]=0;v[d+100>>2]=-1074790400;v[d+48>>2]=0;v[d+52>>2]=2146959360;v[d+88>>2]=0;v[d+92>>2]=2146959360;v[d+80>>2]=0;v[d+84>>2]=2146959360;m=A[d+152>>3]-A[d+136>>3];I=A[d+144>>3]-A[d+128>>3];A[d+176>>3]=m>I?m:I;e=v[d+40>>2];e=za[v[v[e>>2]+16>>2]](e)|0;t[d+188|0]=0;t[d+185|0]=0;t[d+184|0]=e;break A}e=w[d+184|0]}if(e&255){break y}e=v[d+40>>2];if(bb(d+24|0,za[v[v[e>>2]+12>>2]](e,0)|0)){break z}m=F?-G:G;e=v[d+40>>2];e=za[v[v[e>>2]+12>>2]](e,0)|0;F=v[e+12>>2];v[d+32>>2]=v[e+8>>2];v[d+36>>2]=F;F=v[e+4>>2];v[d+24>>2]=v[e>>2];v[d+28>>2]=F;sb(j,v[a>>2],A[d+160>>3],d+24|0,l);C:{if(w[d+72|0]){e=v[b+1044>>2];G=A[d+64>>3];while(1){if((A[e+120>>3]-G)*(A[e+128>>3]-G)<=0){break C}e=v[e+80>>2];if(e){continue}break}}m=-m;F=1;continue}break}A[y+24>>3]=G;e=v[j+12>>2];v[d+16>>2]=v[j+8>>2];v[d+20>>2]=e;e=v[j+4>>2];v[d+8>>2]=v[j>>2];v[d+12>>2]=e;G=A[d+160>>3];e=D<0?G>=h:h>=G;q=1;h=G;if(!e){continue}break}v[y+20>>2]=0;break y}if(!q){break y}m=0;D=0;e=v[a>>2];if(!bb(d+24|0,za[v[v[e>>2]+8>>2]](e,0)|0)){e=v[a>>2];j=za[v[v[e>>2]+72>>2]](e)|0;D=bb(d+24|0,za[v[v[e>>2]+8>>2]](e,j)|0)?1:h}D:{if(!bb(d+8|0,za[v[v[l>>2]+8>>2]](l,0)|0)){m=1;e=v[b>>2];j=za[v[v[e>>2]+72>>2]](e)|0;if(!bb(d+8|0,za[v[v[e>>2]+8>>2]](e,j)|0)){break D}}A[y+24>>3]=m}A[y+8>>3]=D;z=1}xa=d+192|0;if(!z){break x}m=A[y+8>>3];if(!(m>A[f+120>>3])|!(m<r)){break x}d=v[f+72>>2];if(!d){break x}h=A[y+24>>3];while(1){e=v[d>>2];if(!((A[e+120>>3]-h)*(A[e+128>>3]-h)<=0)){d=v[d+4>>2];if(d){continue}break x}break}v[y+20>>2]=e;k=pi(a,f,m);if(!w[k+32|0]){v[k+24>>2]=0;v[k+28>>2]=-1074790400}t[k+32|0]=1;if(!w[k- -64|0]){v[k+56>>2]=0;v[k+60>>2]=-1074790400}t[k+64|0]=1;if(!w[f- -64|0]){v[f+56>>2]=0;v[f+60>>2]=-1074790400}t[f+64|0]=1;if(!(!(h>A[e+120>>3])|!(h<A[e+128>>3]))){f=pi(b,e,h);if(O<R){if(!w[e- -64|0]){v[e+56>>2]=0;v[e+60>>2]=-1074790400}t[e+64|0]=1;if(!w[f+32|0]){v[f+24>>2]=0;v[f+28>>2]=-1074790400}t[f+32|0]=1;if(!w[f- -64|0]){v[f+56>>2]=0;v[f+60>>2]=-1074790400}t[f+64|0]=1;v[y+20>>2]=f;break w}if(!w[e+32|0]){v[e+24>>2]=0;v[e+28>>2]=-1074790400}t[e+32|0]=1;if(!w[e- -64|0]){v[e+56>>2]=0;v[e+60>>2]=-1074790400}t[e+64|0]=1;if(!w[f+32|0]){v[f+24>>2]=0;v[f+28>>2]=-1074790400}t[f+32|0]=1}f=e;break w}f=v[y+20>>2];if(f){break w}d=0;break n}d=v[n+72>>2];E:{if(!d){j=0;break E}h=A[n+56>>3];while(1){j=v[d>>2];if((A[j+120>>3]-h)*(A[j+128>>3]-h)<=0){break E}d=v[d+4>>2];if(d){continue}break}j=0}P=O<R;F:{if(P){e=f;f=j;break F}v[y+24>>2]=0;v[y+28>>2]=0;v[y+20>>2]=j;e=j}j=0;d=1;G:{if(!e|!f){break G}l=v[n+80>>2];d=k;while(1){H:{j=be(d)|j;d=v[d+80>>2];if((l|0)==(d|0)){break H}if(d){continue}}break}v[k+72>>2]=0;d=v[a+1032>>2];l=0-d&3;if((l|8)>>>0>v[a+1036>>2]-d>>>0){Wa(a+1028|0,8,4);d=v[a+1032>>2];l=0-d&3}d=d+l|0;v[a+1032>>2]=d+8;v[d>>2]=0;v[d+4>>2]=0;v[d>>2]=e;v[d+4>>2]=v[k+72>>2];v[k+72>>2]=d;l=v[f+80>>2];d=e;while(1){I:{K=be(d)|K;d=v[d+80>>2];if((l|0)==(d|0)){break I}if(d){continue}}break}v[e+72>>2]=0;d=v[b+1032>>2];l=0-d&3;if((l|8)>>>0>v[b+1036>>2]-d>>>0){Wa(b+1028|0,8,4);d=v[b+1032>>2];l=0-d&3}d=d+l|0;v[b+1032>>2]=d+8;v[d>>2]=0;v[d+4>>2]=0;v[d>>2]=k;v[d+4>>2]=v[e+72>>2];v[e+72>>2]=d;if((k|0)!=(n|0)){d=v[k+80>>2];F=v[n+80>>2];if(!(!d|(F|0)==(d|0))){z=v[a+1056>>2];l=v[a+1052>>2];while(1){q=v[d+80>>2];if((z|0)>0){v[d+80>>2]=l;v[a+1052>>2]=d;t[d+148|0]=1;l=d}z=z-1|0;if(q){d=q;if((F|0)!=(d|0)){continue}}break}v[a+1056>>2]=z}if(F){v[F+76>>2]=k}v[k+80>>2]=F}if((e|0)!=(f|0)){d=v[e+80>>2];q=v[f+80>>2];if(!(!d|(q|0)==(d|0))){z=v[b+1056>>2];l=v[b+1052>>2];while(1){f=v[d+80>>2];if((z|0)>0){v[d+80>>2]=l;v[b+1052>>2]=d;t[d+148|0]=1;l=d}z=z-1|0;if(f){d=f;if((q|0)!=(d|0)){continue}}break}v[b+1056>>2]=z}if(q){v[q+76>>2]=e}v[e+80>>2]=q}m=A[n+128>>3];A[k+128>>3]=m;d=v[a>>2];u[k+146>>1]=0;f=k+8|0;h=A[k+120>>3];if(!(h!=h|m!=m)){za[v[v[d>>2]+84>>2]](d,h,m,v[k>>2]);Sb(k+88|0,v[k>>2]);t[k+32|0]=0;v[k+24>>2]=0;v[k+28>>2]=-1074790400;v[k+16>>2]=0;v[k+20>>2]=2146959360;t[k- -64|0]=0;v[k+56>>2]=0;v[k+60>>2]=-1074790400;v[k+8>>2]=0;v[k+12>>2]=2146959360;v[k+48>>2]=0;v[k+52>>2]=2146959360;v[k+40>>2]=0;v[k+44>>2]=2146959360;h=A[k+112>>3]-A[k+96>>3];m=A[k+104>>3]-A[k+88>>3];A[k+136>>3]=h>m?h:m;d=v[k>>2];d=za[v[v[d>>2]+16>>2]](d)|0;t[k+148|0]=0;t[k+145|0]=0;t[k+144|0]=d;h=A[k+120>>3];d=v[a>>2]}l=d;d=v[k>>2];sb(f,l,h,za[v[v[d>>2]+12>>2]](d,0)|0,v[b>>2]);f=v[a>>2];h=A[k+128>>3];d=v[k>>2];l=za[v[v[d>>2]+72>>2]](d)|0;sb(k+40|0,f,h,za[v[v[d>>2]+12>>2]](d,l)|0,v[b>>2]);h=A[k+24>>3];J:{if(!((0-h)*(1-h)<=0)){break J}r=A[k+56>>3];if(!((0-r)*(1-r)<=0)){break J}K:{if(P){m=h;h=r;break K}A[y+24>>3]=r;m=r}A[e+128>>3]=h;A[e+120>>3]=m;d=v[b>>2];u[e+146>>1]=0;if(m!=m|h!=h){break J}za[v[v[d>>2]+84>>2]](d,m,h,v[e>>2]);Sb(e+88|0,v[e>>2]);t[e+32|0]=0;v[e+24>>2]=0;v[e+28>>2]=-1074790400;v[e+16>>2]=0;v[e+20>>2]=2146959360;t[e- -64|0]=0;v[e+56>>2]=0;v[e+60>>2]=-1074790400;v[e+8>>2]=0;v[e+12>>2]=2146959360;v[e+48>>2]=0;v[e+52>>2]=2146959360;v[e+40>>2]=0;v[e+44>>2]=2146959360;h=A[e+112>>3]-A[e+96>>3];m=A[e+104>>3]-A[e+88>>3];A[e+136>>3]=h>m?h:m;d=v[e>>2];d=za[v[v[d>>2]+16>>2]](d)|0;t[e+148|0]=0;t[e+145|0]=0;t[e+144|0]=d}f=v[k+80>>2];d=v[k+76>>2];L:{if(d){v[d+80>>2]=f;if(!f){break L}v[f+76>>2]=d;d=0;if(!(A[f+120>>3]>A[f+128>>3])){break L}break n}v[a+1044>>2]=f;if(!f){break L}v[f+76>>2]=0}h=A[k+24>>3];d=v[a+1056>>2];v[a+1056>>2]=d-1;M:{if((0-h)*(1-h)<=0){v[k+80>>2]=v[a+1048>>2];v[a+1048>>2]=k;break M}if((d|0)<=0){break M}v[k+80>>2]=v[a+1052>>2];v[a+1052>>2]=k;t[k+148|0]=1}l=v[e+80>>2];d=v[e+76>>2];N:{if(d){v[d+80>>2]=l;if(!l){break N}v[l+76>>2]=d;d=0;if(!(A[l+120>>3]>A[l+128>>3])){break N}break n}v[b+1044>>2]=l;if(!l){break N}v[l+76>>2]=0}v[b+1056>>2]=v[b+1056>>2]-1;v[e+80>>2]=v[b+1048>>2];v[b+1048>>2]=e;if((j|K)&1){j=0;d=0;if(!oi(a)){break G}d=0;if(!oi(b)){break G}}j=0;if(!(!v[a+1044>>2]|(w[f+148|0]|!f))){j=v[b+1044>>2]?f:0}d=1}v[H+12>>2]=j}xa=y+32|0;if(!d){Q=0;break k}d=v[H+12>>2];if(w[i+148|0]?0:d){continue}break}if(w[g+148|0]|(!v[a+1044>>2]|(!v[b+1044>>2]|!g))){break m}}d=g;if(d){continue}}break}}xa=H+16|0;if(!Q){break a}N=N-1|0;if(!(!v[s>>2]|(N|!v[p>>2]))){i=v[a+1044>>2];g=i;d=v[g+80>>2];O:{if(!d){break O}l=1e5;g=i;while(1){g=A[d+128>>3]>A[g+128>>3]?d:g;d=v[d+80>>2];if(!d){break O}l=l-2|0;if(!l){g=0;break O}g=A[d+128>>3]>A[g+128>>3]?d:g;d=v[d+80>>2];if(d){continue}break}}j=v[b+1044>>2];l=j;d=v[j+80>>2];P:{Q:{if(!d){break Q}f=1e5;l=j;while(1){l=A[d+128>>3]>A[l+128>>3]?d:l;d=v[d+80>>2];if(!d){break Q}f=f-2|0;if(!f){break P}l=A[d+128>>3]>A[l+128>>3]?d:l;d=v[d+80>>2];if(d){continue}break}}if(!g|!l){break P}e=v[g+80>>2];f=0;d=i;while(1){R:{f=be(d)|f;d=v[d+80>>2];if((e|0)==(d|0)){break R}if(d){continue}}break}e=0;v[i+72>>2]=0;d=v[a+1032>>2];k=0-d&3;if((k|8)>>>0>v[a+1036>>2]-d>>>0){Wa(a+1028|0,8,4);d=v[a+1032>>2];k=0-d&3}d=d+k|0;v[a+1032>>2]=d+8;v[d>>2]=0;v[d+4>>2]=0;v[d>>2]=j;v[d+4>>2]=v[i+72>>2];v[i+72>>2]=d;n=v[l+80>>2];d=j;while(1){S:{e=be(d)|e;d=v[d+80>>2];if((n|0)==(d|0)){break S}if(d){continue}}break}v[j+72>>2]=0;d=v[b+1032>>2];k=0-d&3;if((k|8)>>>0>v[b+1036>>2]-d>>>0){Wa(b+1028|0,8,4);d=v[b+1032>>2];k=0-d&3}d=d+k|0;v[b+1032>>2]=d+8;v[d>>2]=0;v[d+4>>2]=0;v[d>>2]=i;v[d+4>>2]=v[j+72>>2];v[j+72>>2]=d;if((g|0)!=(i|0)){d=v[i+80>>2];q=v[g+80>>2];if(!(!d|(q|0)==(d|0))){k=v[a+1056>>2];n=v[a+1052>>2];while(1){g=v[d+80>>2];if((k|0)>0){v[d+80>>2]=n;v[a+1052>>2]=d;t[d+148|0]=1;n=d}k=k-1|0;if(g){d=g;if((q|0)!=(d|0)){continue}}break}v[a+1056>>2]=k}if(q){v[q+76>>2]=i}v[i+80>>2]=q}if((j|0)!=(l|0)){d=v[j+80>>2];n=v[l+80>>2];if(!(!d|(n|0)==(d|0))){l=v[b+1056>>2];k=v[b+1052>>2];while(1){g=v[d+80>>2];if((l|0)>0){v[d+80>>2]=k;v[b+1052>>2]=d;t[d+148|0]=1;k=d}l=l-1|0;if(g){d=g;if((n|0)!=(d|0)){continue}}break}v[b+1056>>2]=l}if(n){v[n+76>>2]=j}v[j+80>>2]=n}A[i+128>>3]=J;A[i+120>>3]=C;d=v[a>>2];u[i+146>>1]=0;if(!(C!=C|J!=J)){za[v[v[d>>2]+84>>2]](d,C,J,v[i>>2]);Sb(i+88|0,v[i>>2]);t[i+32|0]=0;v[i+24>>2]=0;v[i+28>>2]=-1074790400;v[i+16>>2]=0;v[i+20>>2]=2146959360;t[i- -64|0]=0;v[i+56>>2]=0;v[i+60>>2]=-1074790400;v[i+8>>2]=0;v[i+12>>2]=2146959360;v[i+48>>2]=0;v[i+52>>2]=2146959360;v[i+40>>2]=0;v[i+44>>2]=2146959360;h=A[i+112>>3]-A[i+96>>3];m=A[i+104>>3]-A[i+88>>3];A[i+136>>3]=h>m?h:m;d=v[i>>2];d=za[v[v[d>>2]+16>>2]](d)|0;t[i+148|0]=0;t[i+145|0]=0;t[i+144|0]=d;d=v[a>>2]}sb(i+8|0,d,C,za[v[v[d>>2]+8>>2]](d,0)|0,v[b>>2]);d=v[a>>2];g=za[v[v[d>>2]+72>>2]](d)|0;sb(i+40|0,d,J,za[v[v[d>>2]+8>>2]](d,g)|0,v[b>>2]);h=A[i+56>>3];r=h==-1?1:h<1?h:1;m=A[i+24>>3];D=m==-1?0:m>0?m:0;d=h>m;h=d?r:D;A[j+128>>3]=h;m=d?D:r;A[j+120>>3]=m;d=v[b>>2];u[j+146>>1]=0;if(!(m!=m|h!=h)){za[v[v[d>>2]+84>>2]](d,m,h,v[j>>2]);Sb(j+88|0,v[j>>2]);t[j+32|0]=0;v[j+24>>2]=0;v[j+28>>2]=-1074790400;v[j+16>>2]=0;v[j+20>>2]=2146959360;t[j- -64|0]=0;v[j+56>>2]=0;v[j+60>>2]=-1074790400;v[j+8>>2]=0;v[j+12>>2]=2146959360;v[j+48>>2]=0;v[j+52>>2]=2146959360;v[j+40>>2]=0;v[j+44>>2]=2146959360;h=A[j+112>>3]-A[j+96>>3];m=A[j+104>>3]-A[j+88>>3];A[j+136>>3]=h>m?h:m;d=v[j>>2];d=za[v[v[d>>2]+16>>2]](d)|0;t[j+148|0]=0;t[j+145|0]=0;t[j+144|0]=d}d=v[i+80>>2];g=v[i+76>>2];T:{U:{if(g){v[g+80>>2]=d;if(!d){break U}v[d+76>>2]=g;if(!(A[d+120>>3]>A[d+128>>3])){break U}break T}v[a+1044>>2]=d;if(!d){break U}v[d+76>>2]=0}h=A[i+24>>3];d=v[a+1056>>2];v[a+1056>>2]=d-1;if((0-h)*(1-h)<=0){v[i+80>>2]=v[a+1048>>2];v[a+1048>>2]=i;break T}if((d|0)<=0){break T}v[i+80>>2]=v[a+1052>>2];v[a+1052>>2]=i;t[i+148|0]=1}f=e|f;d=v[j+80>>2];e=v[j+76>>2];V:{W:{if(e){v[e+80>>2]=d;if(!d){break W}v[d+76>>2]=e;if(!(A[d+120>>3]>A[d+128>>3])){break W}break V}v[b+1044>>2]=d;if(!d){break W}v[d+76>>2]=0}v[b+1056>>2]=v[b+1056>>2]-1;v[j+80>>2]=v[b+1048>>2];v[b+1048>>2]=j}if(!(f&1)){break P}d=v[a+1044>>2];X:{if(!d){break X}f=v[a+1056>>2];e=v[a+1052>>2];l=1e3;while(1){g=v[d+80>>2];Y:{if(!v[d+72>>2]){if(A[d+120>>3]==0){t[a+1060|0]=1}if(A[d+128>>3]==1){t[a+1061|0]=1}i=v[d+76>>2];Z:{if(i){v[i+80>>2]=g;if(!g){break Z}v[g+76>>2]=i;if(!(A[g+120>>3]>A[g+128>>3])){break Z}break X}v[a+1044>>2]=g;if(!g){break Z}v[g+76>>2]=0}i=f-1|0;v[a+1056>>2]=i;if((f|0)<=0){break X}v[d+80>>2]=e;v[a+1052>>2]=d;t[d+148|0]=1;e=d;f=i;if(l){break Y}break X}if((l|0)<=0){break X}}l=l-1|0;d=g;if(d){continue}break}}d=v[b+1044>>2];if(!d){break P}f=v[b+1056>>2];e=v[b+1052>>2];l=1e3;while(1){g=v[d+80>>2];_:{if(!v[d+72>>2]){if(A[d+120>>3]==0){t[b+1060|0]=1}if(A[d+128>>3]==1){t[b+1061|0]=1}i=v[d+76>>2];$:{if(i){v[i+80>>2]=g;if(!g){break $}v[g+76>>2]=i;if(!(A[g+120>>3]>A[g+128>>3])){break $}break P}v[b+1044>>2]=g;if(!g){break $}v[g+76>>2]=0}i=f-1|0;v[b+1056>>2]=i;if((f|0)<=0){break P}v[d+80>>2]=e;v[b+1052>>2]=d;t[d+148|0]=1;e=d;f=i;if(l){break _}break P}if((l|0)<=0){break P}}l=l-1|0;d=g;if(d){continue}break}}}if(v[a+1056>>2]<9|v[b+1056>>2]<9){break j}e=v[p>>2];if(!e){break a}g=1e5;d=e;f=v[d+80>>2];aa:{if(!f){break aa}while(1){d=A[f+128>>3]>A[d+128>>3]?f:d;f=v[f+80>>2];if(!f){break aa}g=g-2|0;if(!g){d=0;break aa}d=A[f+128>>3]>A[d+128>>3]?f:d;f=v[f+80>>2];if(f){continue}break}}Af(a,b,e,d);e=v[b+1044>>2];if(!e){break a}g=1e5;d=e;f=v[d+80>>2];ba:{if(!f){break ba}while(1){d=A[f+128>>3]>A[d+128>>3]?f:d;f=v[f+80>>2];if(!f){break ba}g=g-2|0;if(!g){d=0;break ba}d=A[f+128>>3]>A[d+128>>3]?f:d;f=v[f+80>>2];if(f){continue}break}}Af(b,a,e,d);f=v[a+1044>>2];while(1){d=f;f=v[d+80>>2];ca:{if(A[d+24>>3]<0|A[d+56>>3]<0){break ca}e=v[d>>2];e=za[v[v[e>>2]+12>>2]](e,0)|0;h=A[e>>3];m=A[e+8>>3];r=A[d+16>>3];D=A[d+8>>3];e=v[d>>2];g=za[v[v[e>>2]+72>>2]](e)|0;e=za[v[v[e>>2]+12>>2]](e,g)|0;if((D-h)*(A[d+40>>3]-A[e>>3])+(r-m)*(A[d+48>>3]-A[e+8>>3])<=0){break ca}g=d;j=v[d+72>>2];da:{if(j){while(1){d=j;j=v[d+4>>2];l=v[d>>2];ea:{if(!w[g+145|0]){e=v[g+72>>2];break ea}e=v[g+72>>2];if(e){h=A[g+56>>3];m=A[g+24>>3];k=0;d=e;n=0;while(1){i=v[d>>2];if((i|0)!=(l|0)){r=A[i+120>>3];D=A[i+128>>3];n=(r-h)*(D-h)<=0|n;k=(r-m)*(D-m)<=0|k}d=v[d+4>>2];if(d){continue}break}if(k&n&1){break ea}}t[g+32|0]=0;v[g+24>>2]=0;v[g+28>>2]=-1074790400;t[g+145|0]=0;v[g+16>>2]=0;v[g+20>>2]=2146959360;t[g+64|0]=0;v[g+56>>2]=0;v[g+60>>2]=-1074790400;v[g+8>>2]=0;v[g+12>>2]=2146959360;v[g+48>>2]=0;v[g+52>>2]=2146959360;v[g+40>>2]=0;v[g+44>>2]=2146959360}d=0;fa:{while(1){i=d;d=e;if(!d){break fa}e=v[d+4>>2];if((l|0)!=v[d>>2]){continue}break}if(i){v[i+4>>2]=e;break fa}v[g+72>>2]=e;if(e){break fa}if(A[g+120>>3]==0){t[a+1060|0]=1}if(A[g+128>>3]==1){t[a+1061|0]=1}d=v[g+80>>2];e=v[g+76>>2];ga:{if(e){v[e+80>>2]=d;if(!d){break ga}v[d+76>>2]=e;if(!(A[d+120>>3]>A[d+128>>3])){break ga}break fa}v[a+1044>>2]=d;if(!d){break ga}v[d+76>>2]=0}d=v[a+1056>>2];v[a+1056>>2]=d-1;if((d|0)<=0){break fa}v[g+80>>2]=v[a+1052>>2];v[a+1052>>2]=g;t[g+148|0]=1}ha:{if(!w[l+145|0]){e=v[l+72>>2];break ha}e=v[l+72>>2];if(e){h=A[l+56>>3];m=A[l+24>>3];k=0;d=e;n=0;while(1){i=v[d>>2];if((i|0)!=(g|0)){r=A[i+120>>3];D=A[i+128>>3];n=(r-h)*(D-h)<=0|n;k=(r-m)*(D-m)<=0|k}d=v[d+4>>2];if(d){continue}break}if(k&n&1){break ha}}v[l+24>>2]=0;v[l+28>>2]=-1074790400;t[l+145|0]=0;v[l+56>>2]=0;v[l+60>>2]=-1074790400;v[l+8>>2]=0;v[l+12>>2]=2146959360;v[l+40>>2]=0;v[l+44>>2]=2146959360;t[l+32|0]=0;v[l+16>>2]=0;v[l+20>>2]=2146959360;t[l- -64|0]=0;v[l+48>>2]=0;v[l+52>>2]=2146959360}d=0;ia:{while(1){i=d;d=e;if(!d){break ia}e=v[d+4>>2];if((g|0)!=v[d>>2]){continue}break}if(i){v[i+4>>2]=e;break ia}v[l+72>>2]=e;if(e){break ia}if(A[l+120>>3]==0){t[b+1060|0]=1}if(A[l+128>>3]==1){t[b+1061|0]=1}d=v[l+80>>2];e=v[l+76>>2];ja:{if(e){v[e+80>>2]=d;if(!d){break ja}v[d+76>>2]=e;if(!(A[d+120>>3]>A[d+128>>3])){break ja}break ia}v[b+1044>>2]=d;if(!d){break ja}v[d+76>>2]=0}d=v[b+1056>>2];v[b+1056>>2]=d-1;if((d|0)<=0){break ia}v[l+80>>2]=v[b+1052>>2];v[b+1052>>2]=l;t[l+148|0]=1}ka:{if(!w[g+148|0]){break ka}e=v[b+1044>>2];if(!e){break ka}while(1){la:{d=v[e+72>>2];if(!d){break la}while(1){if((g|0)!=v[d>>2]){d=v[d+4>>2];if(d){continue}break la}break}d=0;break da}e=v[e+80>>2];if(e){continue}break}}if(j){continue}break}}d=1}if(!d){break a}}if(f){continue}break}f=0;d=v[p>>2];if(d){while(1){f=w[d+144|0]+f|0;d=v[d+80>>2];if(d){continue}break}}d=v[a>>2];if((za[v[v[d>>2]+60>>2]](d)|0)<(f|0)){break b}}if(!v[p>>2]){break b}if(v[s>>2]){continue}}break}d=v[a+1048>>2];if(d){if(v[d+80>>2]){C=0;l=xa-48|0;xa=l;while(1){j=0;f=v[a+1048>>2];d=f;ma:{while(1){if(!d){break ma}h=A[d+120>>3];j=h<C|(h>A[j+128>>3]?j:0)?j:d;d=v[d+80>>2];if(d){continue}break}if(!j){break ma}C=A[j+128>>3];d=0;g=0;i=0;while(1){e=d;d=f;h=A[d+120>>3];if(!(h<C|(h>A[g+120>>3]?g:0))){i=e;g=d}f=v[d+80>>2];if(f){continue}break}if(!g){continue}e=l+32|0;d=v[a>>2];h=(C+A[g+120>>3])*.5;za[v[v[d>>2]+76>>2]](e,d,h);t[l+24|0]=0;d=l;v[d+16>>2]=0;v[d+20>>2]=-1074790400;v[d+8>>2]=0;v[d+12>>2]=2146959360;v[d>>2]=0;v[d+4>>2]=2146959360;sb(d,v[a>>2],h,e,v[b>>2]);if(!w[d+24|0]){continue}A[j+128>>3]=A[g+128>>3];t[j- -64|0]=w[g- -64|0];d=v[g+60>>2];v[j+56>>2]=v[g+56>>2];v[j+60>>2]=d;d=v[g+52>>2];v[j+48>>2]=v[g+48>>2];v[j+52>>2]=d;d=v[g+44>>2];v[j+40>>2]=v[g+40>>2];v[j+44>>2]=d;d=v[g+80>>2];if(i){v[i+80>>2]=d;continue}v[a+1048>>2]=d;continue}break}xa=l+48|0;d=v[a+1048>>2]}while(1){if(!d){break a}na:{if(!w[d+32|0]|!w[d- -64|0]){break na}h=A[d+24>>3];if(h<0){break a}e=v[d>>2];f=qk(c,A[d+120>>3],h,za[v[v[e>>2]+12>>2]](e,0)|0);h=A[d+128>>3];m=A[d+56>>3];e=v[d>>2];g=za[v[v[e>>2]+72>>2]](e)|0;if((f|0)<0|(qk(c,h,m,za[v[v[e>>2]+12>>2]](e,g)|0)|0)>=0){break na}e=Zn(f);u[c+448>>1]=e&x[c+448>>1];u[c+450>>1]=e&x[c+450>>1]}d=v[d+80>>2];if(d){continue}break}}e=ki(a,b,c);i=e&1;oa:{if(i|!w[a+1060|0]){break oa}t[o+72|0]=0;v[o+64>>2]=0;v[o+68>>2]=-1074790400;v[o+56>>2]=0;v[o+60>>2]=2146959360;v[o+48>>2]=0;v[o+52>>2]=2146959360;d=v[a>>2];f=za[v[v[d>>2]+8>>2]](d,0)|0;sb(o+48|0,d,0,f,v[b>>2]);if(!w[o+72|0]){break oa}La(c,0,A[o+64>>3],o+48|0)}j=e&2;pa:{if(j|!w[a+1061|0]){break pa}t[o+72|0]=0;v[o+64>>2]=0;v[o+68>>2]=-1074790400;v[o+56>>2]=0;v[o+60>>2]=2146959360;v[o+48>>2]=0;v[o+52>>2]=2146959360;d=v[a>>2];f=za[v[v[d>>2]+72>>2]](d)|0;sb(o+48|0,d,1,za[v[v[d>>2]+8>>2]](d,f)|0,v[b>>2]);if(!w[o+72|0]){break pa}La(c,1,A[o+64>>3],o+48|0)}l=e&4;qa:{if(l|!w[b+1060|0]){break qa}t[o+72|0]=0;v[o+64>>2]=0;v[o+68>>2]=-1074790400;v[o+56>>2]=0;v[o+60>>2]=2146959360;v[o+48>>2]=0;v[o+52>>2]=2146959360;d=v[b>>2];f=za[v[v[d>>2]+8>>2]](d,0)|0;sb(o+48|0,d,0,f,v[a>>2]);if(!w[o+72|0]){break qa}La(c,A[o+64>>3],0,o+48|0)}n=e&8;ra:{if(n|!w[b+1061|0]){break ra}t[o+72|0]=0;v[o+64>>2]=0;v[o+68>>2]=-1074790400;v[o+56>>2]=0;v[o+60>>2]=2146959360;v[o+48>>2]=0;v[o+52>>2]=2146959360;d=v[b>>2];e=za[v[v[d>>2]+72>>2]](d)|0;sb(o+48|0,d,1,za[v[v[d>>2]+8>>2]](d,e)|0,v[a>>2]);if(!w[o+72|0]){break ra}La(c,A[o+64>>3],1,o+48|0)}if(!v[p>>2]|!v[s>>2]){break a}f=v[a+1052>>2];if(f){while(1){g=v[f+80>>2];if(w[f+144|0]){d=v[p>>2];sa:{if(!d){d=0;e=p;break sa}h=A[f+120>>3];e=p;if(!(h>=A[d+128>>3])){break sa}ta:{while(1){e=d;d=v[d+80>>2];if(d){if(h>=A[d+128>>3]){continue}break ta}break}d=0}e=e+80|0}v[f+80>>2]=d;v[e>>2]=f}f=g;if(f){continue}break}}f=v[b+1052>>2];if(f){while(1){g=v[f+80>>2];if(w[f+144|0]){d=v[s>>2];ua:{if(!d){d=0;e=s;break ua}h=A[f+120>>3];e=s;if(!(h>=A[d+128>>3])){break ua}va:{while(1){e=d;d=v[d+80>>2];if(d){if(h>=A[d+128>>3]){continue}break va}break}d=0}e=e+80|0}v[f+80>>2]=d;v[e>>2]=f}f=g;if(f){continue}break}}d=v[p>>2];wa:{if(!(A[d+120>>3]<1.1920928955078125e-7)|i){break wa}e=v[a>>2];e=za[v[v[e>>2]+8>>2]](e,0)|0;if(!v[d+72>>2]){break wa}h=ce(d,e);f=o+48|0;g=v[b>>2];za[v[v[g>>2]+76>>2]](f,g,h);if(!bb(f,e)){break wa}La(c,0,h,e)}xa:{if(l){break xa}f=v[s>>2];if(!(A[f+120>>3]<1.1920928955078125e-7)){break xa}e=v[b>>2];e=za[v[v[e>>2]+8>>2]](e,0)|0;if(!v[f+72>>2]){break xa}h=ce(f,e);f=o+48|0;g=v[a>>2];za[v[v[g>>2]+76>>2]](f,g,h);if(!bb(f,e)){break xa}La(c,h,0,e)}ya:{if(j){break ya}f=v[p>>2];g=v[f+80>>2];if(g){i=1e5;while(1){za:{f=A[g+128>>3]>A[f+128>>3]?g:f;e=v[g+80>>2];if(!e){break za}i=i-2|0;if(!i){break a}f=A[e+128>>3]>A[f+128>>3]?e:f;g=v[e+80>>2];if(g){continue}}break}if(!f){break a}}if(!(A[f+128>>3]>.9999998807907104)){break ya}e=v[a>>2];g=za[v[v[e>>2]+72>>2]](e)|0;e=za[v[v[e>>2]+8>>2]](e,g)|0;if(!v[f+72>>2]){break ya}h=ce(f,e);f=o+48|0;g=v[b>>2];za[v[v[g>>2]+76>>2]](f,g,h);if(!bb(f,e)){break ya}La(c,1,h,e)}Aa:{if(n){break Aa}f=v[s>>2];g=v[f+80>>2];if(g){i=1e5;while(1){Ba:{f=A[g+128>>3]>A[f+128>>3]?g:f;e=v[g+80>>2];if(!e){break Ba}i=i-2|0;if(!i){break a}f=A[e+128>>3]>A[f+128>>3]?e:f;g=v[e+80>>2];if(g){continue}}break}if(!f){break a}}if(!(A[f+128>>3]>.9999998807907104)){break Aa}e=v[b>>2];g=za[v[v[e>>2]+72>>2]](e)|0;e=za[v[v[e>>2]+8>>2]](e,g)|0;if(!v[f+72>>2]){break Aa}h=ce(f,e);f=o+48|0;g=v[a>>2];za[v[v[g>>2]+76>>2]](f,g,h);if(!bb(f,e)){break Aa}La(c,h,1,e)}i=o+48|0;v[i+1024>>2]=0;v[i+1012>>2]=0;v[i+1016>>2]=36;v[i+1008>>2]=i;ji(i+1008|0);f=v[i+1016>>2];e=v[i+1012>>2];g=e+2|0;v[i+1012>>2]=g&-2|e&1;v[i+1016>>2]=f;e=v[i+1008>>2]+B(e>>>1|0,56)|0;v[e+40>>2]=-536870912;v[e+44>>2]=1206910975;while(1){Ca:{if(!d){break Ca}while(1){if(!(!w[d+32|0]|!w[d- -64|0])){d=v[d+80>>2];if(d){continue}break Ca}break}f=v[s>>2];if(f){while(1){j=v[i+1008>>2];g=v[i+1024>>2];l=j+B(g,56)|0;e=v[f>>2];n=v[d>>2];Da:{if(!bb(za[v[v[n>>2]+8>>2]](n,0)|0,za[v[v[e>>2]+8>>2]](e,0)|0)){break Da}n=za[v[v[n>>2]+8>>2]](n,0)|0;e=za[v[v[e>>2]+8>>2]](e,0)|0;h=A[n>>3]-A[e>>3];r=h*h;h=A[n+8>>3]-A[e+8>>3];h=r+h*h;if(h>A[l+40>>3]){break Da}v[l>>2]=d;e=j+B(g,56)|0;v[e+4>>2]=f;A[e+8>>3]=A[d+120>>3];A[e+16>>3]=A[d+128>>3];A[e+24>>3]=A[f+120>>3];m=A[f+128>>3];v[e+48>>2]=0;v[e+52>>2]=0;A[e+32>>3]=m;A[l+40>>3]=h}e=v[f>>2];n=za[v[v[e>>2]+72>>2]](e)|0;e=v[f>>2];k=v[d>>2];Ea:{if(!bb(za[v[v[k>>2]+8>>2]](k,0)|0,za[v[v[e>>2]+8>>2]](e,n)|0)){break Ea}k=za[v[v[k>>2]+8>>2]](k,0)|0;p=za[v[v[e>>2]+8>>2]](e,n)|0;h=A[k>>3]-A[p>>3];r=h*h;h=A[k+8>>3]-A[p+8>>3];h=r+h*h;e=j+B(g,56)|0;if(h>A[e+40>>3]){break Ea}v[l>>2]=d;v[e+4>>2]=f;A[e+8>>3]=A[d+120>>3];A[e+16>>3]=A[d+128>>3];A[e+24>>3]=A[f+120>>3];m=A[f+128>>3];v[e+52>>2]=n;v[e+48>>2]=0;A[e+32>>3]=m;A[e+40>>3]=h}e=v[d>>2];n=za[v[v[e>>2]+72>>2]](e)|0;e=v[f>>2];k=v[d>>2];Fa:{if(!bb(za[v[v[k>>2]+8>>2]](k,n)|0,za[v[v[e>>2]+8>>2]](e,0)|0)){break Fa}k=za[v[v[k>>2]+8>>2]](k,n)|0;p=za[v[v[e>>2]+8>>2]](e,0)|0;h=A[k>>3]-A[p>>3];r=h*h;h=A[k+8>>3]-A[p+8>>3];h=r+h*h;e=j+B(g,56)|0;if(h>A[e+40>>3]){break Fa}v[l>>2]=d;v[e+4>>2]=f;A[e+8>>3]=A[d+120>>3];A[e+16>>3]=A[d+128>>3];A[e+24>>3]=A[f+120>>3];m=A[f+128>>3];v[e+52>>2]=0;v[e+48>>2]=n;A[e+32>>3]=m;A[e+40>>3]=h}e=v[d>>2];n=za[v[v[e>>2]+72>>2]](e)|0;e=v[f>>2];k=za[v[v[e>>2]+72>>2]](e)|0;e=v[f>>2];p=v[d>>2];Ga:{if(!bb(za[v[v[p>>2]+8>>2]](p,n)|0,za[v[v[e>>2]+8>>2]](e,k)|0)){C=A[(j+B(g,56)|0)+40>>3];break Ga}p=za[v[v[p>>2]+8>>2]](p,n)|0;q=za[v[v[e>>2]+8>>2]](e,k)|0;e=j+B(g,56)|0;C=A[e+40>>3];h=A[p>>3]-A[q>>3];r=h*h;h=A[p+8>>3]-A[q+8>>3];h=r+h*h;if(C<h){break Ga}v[l>>2]=d;v[e+4>>2]=f;A[e+8>>3]=A[d+120>>3];A[e+16>>3]=A[d+128>>3];A[e+24>>3]=A[f+120>>3];m=A[f+128>>3];v[e+52>>2]=k;v[e+48>>2]=n;A[e+32>>3]=m;A[e+40>>3]=h;C=h}if(C!=3.4028234663852886e38){n=v[i+1024>>2];Ha:{if((n|0)>0){p=j+B(g,56)|0;k=p+40|0;q=v[i+1008>>2];l=v[l>>2];e=0;while(1){Ia:{y=q+B(e,56)|0;z=v[y>>2];Ja:{if((z|0)==(l|0)|A[z+128>>3]==A[l+120>>3]|A[z+120>>3]==A[l+128>>3]){break Ja}z=v[y+4>>2];H=v[p+4>>2];if((z|0)==(H|0)|A[z+128>>3]==A[H+120>>3]){break Ja}if(A[z+120>>3]!=A[H+128>>3]){break Ia}}e=q+B(e,56)|0;if(A[e+40>>3]>C){v[y>>2]=l;v[e+4>>2]=v[p+4>>2];A[e+40>>3]=C;l=j+B(g,56)|0;v[e+48>>2]=v[l+48>>2];v[e+52>>2]=v[l+52>>2]}g=j+B(g,56)|0;h=A[g+8>>3];m=A[e+8>>3];A[e+8>>3]=h<m?h:m;h=A[g+16>>3];m=A[e+16>>3];A[e+16>>3]=h>m?h:m;h=A[g+24>>3];m=A[e+24>>3];A[e+24>>3]=h<m?h:m;h=A[g+32>>3];m=A[e+32>>3];A[e+32>>3]=h>m?h:m;break Ha}e=e+1|0;if((n|0)!=(e|0)){continue}break}}v[i+1024>>2]=n+1;ji(i+1008|0);e=v[i+1016>>2];g=v[i+1012>>2];j=g+2|0;v[i+1012>>2]=j&-2|g&1;v[i+1016>>2]=e;k=(v[i+1008>>2]+B(g>>>1|0,56)|0)+40|0}v[k>>2]=-536870912;v[k+4>>2]=1206910975}f=v[f+80>>2];if(f){continue}break}}d=v[d+80>>2];if(d){continue}}break}g=0;d=xa-128|0;xa=d;k=0;f=54;v[d+112>>2]=0;v[d+116>>2]=54;v[d+108>>2]=d;n=v[i+1024>>2];if((n|0)<=0){e=d}else{while(1){j=k>>>1|0;s=j+1|0;y=Xn(s,0,3,0);z=v[i+1008>>2]+B(g,56)|0;e=0;p=f>>>1|0;q=ya;q=!(k&1)|((q|0)==(e|0)&p>>>0<=y>>>0|e>>>0<q>>>0);Ka:{if((q?1:e)|(q?0:f&1)?!e&p>>>0>=s>>>0|e:0){break Ka}l=e;K=p;q=s;p=0;e=s+1|0;p=e?p:1;s=e;e=p>>>1|0;s=p<<31|s>>>1;p=q+s|0;e=p>>>0<s>>>0?e+1|0:e;p=p+7|0;e=p>>>0<7?e+1|0:e;p=p&-8;s=l;l=e&1;if((K|0)==(p|0)&(s|0)==(l|0)){break Ka}e=!l&p>>>0<2147483647?p:2147483647;v[d+112>>2]=k;v[d+116>>2]=f&1|e<<1;e=Gb(e,4);f=v[d+116>>2];k=v[d+112>>2];j=k<<1&-4;if(j){Ra(e,v[d+108>>2],j);k=v[d+112>>2];f=v[d+116>>2]}if(k&1){Ka(v[d+108>>2]);k=v[d+112>>2];f=v[d+116>>2]}v[d+108>>2]=e;j=k>>>1|0;k=k&-2|1;f=f&-2;n=v[i+1024>>2]}e=k+2|0;v[d+112>>2]=e&-2|k&1;v[d+116>>2]=f;v[v[d+108>>2]+(j<<2)>>2]=z;g=g+1|0;if((n|0)>(g|0)){k=v[d+112>>2];f=v[d+116>>2];continue}break}g=v[d+112>>2]>>>1|0;e=v[d+108>>2]}f=(e?e+(g<<2)|0:0)-e|0;if((f|0)>=8){f=f>>2;ii(64-(E(f-2|0)<<1)|0,e,f,d+120|0);n=v[i+1024>>2]}e=c;g=0;if((n|0)>0){while(1){c=v[v[d+108>>2]+(g<<2)>>2];f=v[c>>2];j=v[c+48>>2];h=A[v[c+4>>2]+(v[c+52>>2]?128:120)>>3];c=v[f>>2];La(e,A[f+(j?128:120)>>3],h,za[v[v[c>>2]+8>>2]](c,j)|0);g=g+1|0;if((g|0)<v[i+1024>>2]){continue}break}}if(t[d+112|0]&1){Ka(v[d+108>>2])}xa=d+128|0;f=w[e+454|0]-1|0;g=e+240|0;d=0;while(1){j=(d|0)<(f|0)?f:d;while(1){c=d;if((d|0)==(j|0)){if(!(t[i+1012|0]&1)){break a}Ka(v[i+1008>>2]);break a}l=1<<c;d=x[e+448>>1];p=l&d;s=d;d=c+1|0;if(s>>>d&1?p:0){continue}break}j=o+32|0;n=v[a>>2];h=(A[g+(c<<3)>>3]+A[g+(d<<3)>>3])*.5;za[v[v[n>>2]+76>>2]](j,n,h);t[o+24|0]=0;v[o+16>>2]=0;v[o+20>>2]=-1074790400;v[o+8>>2]=0;v[o+12>>2]=2146959360;v[o>>2]=0;v[o+4>>2]=2146959360;sb(o,v[a>>2],h,j,v[b>>2]);if(!w[o+24|0]){continue}La:{j=x[e+448>>1];if(j&l){dc(e,c);break La}if(j>>>d&1){dc(e,d);break La}oc(e,c);oc(e,d);continue}f=f-1|0;d=c;oc(e,d);continue}}xa=o+1088|0}function Qd(a,b,c){var d=0,e=0,f=C(0),g=0,h=C(0),i=0,k=0,m=C(0),n=0,o=0,r=C(0),s=0,y=0,A=0,E=0,F=0,G=0,H=0,I=0,J=0,M=C(0),N=0,O=0,P=0,Q=0,R=C(0),S=0,T=0,U=C(0),V=C(0),W=C(0),X=0,Y=C(0),Z=C(0),_=0,$=C(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;k=xa-80|0;xa=k;e=v[b+36>>2];if(e&128){e=jb(b);v[b+36>>2]=e}a:{if(!(e&15)){if(!c|(a|0)==(c|0)){break a}F=v[a>>2];v[F>>2]=v[F>>2]+1;b=v[c>>2];v[c>>2]=F;b:{if(!b){break b}F=v[b>>2];v[b>>2]=F-1;if((F|0)!=1){break b}Sa(qb(b))}v[c+4>>2]=v[a+4>>2];b=w[c+10|0]&-4|w[a+10|0]&3;t[c+10|0]=b;t[c+10|0]=b&251|w[a+10|0]&4;t[c+8|0]=w[a+8|0];t[c+9|0]=w[a+9|0];break a}if((e&192)==128){e=Wd(b);v[b+36>>2]=e}G=c?c:a;if(e&8){c=Yb();u[k+64>>1]=514;v[k+60>>2]=-1;v[k+56>>2]=c;t[k+66|0]=w[a+10|0]&3;c=Yb();t[k+50|0]=0;u[k+48>>1]=514;v[k+44>>2]=-1;v[k+40>>2]=c;S=k+40|0;X=a;i=xa-240|0;xa=i;e=v[b+36>>2];if((e&192)==128){e=Wd(b);v[b+36>>2]=e}E=a;c:{if(!(e&8)){break c}d:{e:{f:{ba=+z[b+24>>2];ca=+z[b+28>>2];da=K(ba*ba+ca*ca);g:{if(da==0){h=C(1);break g}da=1/da;ba=da*ba;m=C(ba);if(((p(m),j(2))&2139095040)==2139095040){break f}ca=da*ca;f=C(ca);if(((p(f),j(2))&2139095040)==2139095040){break f}h=C(da*+C(z[b+32>>2]+C(-6103515625e-14)));if(((p(h),j(2))&2139095040)==2139095040){break f}if(ba!=0){break g}if(ca==0){break f}}a=v[E>>2];if(w[a+84|0]){c=Za(a+4|0,v[a+20>>2],v[a+28>>2]);t[a+84|0]=0;t[a+85|0]=c}h:{r=z[a+4>>2];M=z[a+12>>2];c=m>=C(0);Y=z[a+8>>2];Z=z[a+16>>2];a=f>=C(0);U=C(h+C(C(m*(c?r:M))+C(f*(a?Y:Z))));switch((C(U*C(h+C(C(m*(c?M:r))+C(f*(a?Z:Y)))))>C(0)?!(U<C(0)):2)-1|0){case 0:break c;case 1:break h;default:break f}}v[i+232>>2]=1065353216;v[i+236>>2]=128;v[i+224>>2]=0;v[i+228>>2]=0;z[i+216>>2]=f;z[i+200>>2]=f;v[i+192>>2]=1065353216;v[i+196>>2]=16;v[i+184>>2]=0;v[i+188>>2]=0;v[i+176>>2]=1065353216;v[i+180>>2]=0;v[i+168>>2]=0;v[i+172>>2]=0;v[i+160>>2]=1065353216;v[i+164>>2]=0;z[i+220>>2]=h*C(-f);z[i+204>>2]=m;f=C(-m);z[i+212>>2]=f;z[i+208>>2]=h*f;a=jb(i+200|0);v[i+236>>2]=a;if(!(a&15)){$b(i+160|0);break e}if(Fh(i+200|0,i+160|0)){break e}a=Yb();v[i+12>>2]=-1;v[i+8>>2]=a;u[i+16>>1]=514;t[i+18|0]=w[i+18|0]&248;break d}H=1;a=Yb();v[a>>2]=v[a>>2]+1;c=v[S>>2];v[S>>2]=a;i:{if(!c){break i}e=v[c>>2];v[c>>2]=e-1;if((e|0)!=1){break i}Sa(qb(c))}v[S+4>>2]=-1;u[S+8>>1]=514;t[S+10|0]=w[S+10|0]&248;if(!a){break c}c=v[a>>2];v[a>>2]=c-1;if((c|0)!=1){break c}Sa(qb(a));break c}a=Yb();t[i+154|0]=0;u[i+152>>1]=514;v[i+148>>2]=-1;v[i+144>>2]=a;Qd(E,i+160|0,i+144|0);a=v[i+144>>2];j:{if(!w[a+84|0]){H=w[a+85|0];break j}H=Za(a+4|0,v[a+20>>2],v[a+28>>2]);t[a+84|0]=0;t[a+85|0]=H}k:{if(!(H&255)){a=Yb();v[i+12>>2]=-1;v[i+8>>2]=a;u[i+16>>1]=514;t[i+18|0]=w[i+18|0]&248;break k}v[i+136>>2]=2139095039;v[i+140>>2]=2139095039;v[i+128>>2]=-8388609;v[i+132>>2]=0;s=i+40|0;a=s;v[a>>2]=0;v[a+4>>2]=0;v[a+64>>2]=0;v[a+68>>2]=-1;t[a+72|0]=0;v[a+76>>2]=2;t[a+60|0]=1;v[a+44>>2]=0;v[a+48>>2]=0;t[a+40|0]=0;v[a+8>>2]=0;v[a+12>>2]=0;v[a+16>>2]=0;v[a+20>>2]=0;v[a+24>>2]=0;v[a+28>>2]=0;v[a+52>>2]=0;v[a+56>>2]=-1;v[a+32>>2]=0;v[a+36>>2]=0;v[i+120>>2]=0;v[i+124>>2]=0;O=i+128|0;g=xa-816|0;xa=g;v[g+700>>2]=0;c=g+560|4;v[g+560>>2]=c;A=g+520|0;a=v[i+144>>2];e=v[a+20>>2];v[A+12>>2]=e;v[A+8>>2]=e;e=v[a+32>>2];v[A>>2]=e;v[A+4>>2]=e?e+v[a+40>>2]|0:0;a=v[a+44>>2];u[A+36>>1]=0;v[A+16>>2]=a?a-4|0:0;t[g+8|0]=0;H=A+20|0;ga=g+444|0;ha=g+12|0;while(1){l:{d=w[A+36|0];m:{n:{o:{p:{q:{r:{s:{a=v[A>>2];y=v[A+4>>2];if((a|0)!=(y|0)){if(d){break s}while(1){e=a+1|0;v[A>>2]=e;t:{u:{a=w[a|0];switch(a|0){case 5:break t;case 0:break u;default:break r}}t[A+37|0]=1;a=v[A+8>>2];v[A+12>>2]=a;v[A+8>>2]=a+8}a=e;if((y|0)!=(a|0)){continue}break}}if(!d){break q}a=v[A+8>>2]-8|0;e=v[a+4>>2];v[A+20>>2]=v[a>>2];v[A+24>>2]=e;a=v[A+12>>2];e=v[a+4>>2];v[A+28>>2]=v[a>>2];v[A+32>>2]=e;break o}v[A>>2]=a+1;v:{w:{a=w[a|0];switch(a|0){case 5:break v;case 0:break w;default:break r}}a=v[A+8>>2];e=a-8|0;d=v[e+4>>2];v[A+20>>2]=v[e>>2];v[A+24>>2]=d;e=v[A+12>>2];d=v[e+4>>2];v[A+28>>2]=v[e>>2];v[A+32>>2]=d;v[A+8>>2]=a+8;v[A+12>>2]=a;break o}a=v[A+8>>2]-8|0;e=v[a+4>>2];v[A+20>>2]=v[a>>2];v[A+24>>2]=e;a=v[A+12>>2];e=v[a+4>>2];v[A+28>>2]=v[a>>2];v[A+32>>2]=e;break o}ia=w[A+37|0];u[A+36>>1]=1;e=v[A+8>>2];v[A+8>>2]=e+((a<<2)+8&2040);d=a-1|0;y=v[A+16>>2]+((d&a)<<1)|0;v[A+16>>2]=y;a=e-8|0;x:{switch(d|0){case 1:d=0;e=xa-112|0;xa=e;y=g+444|0;v[g+4>>2]=y;o=g+12|0;v[g>>2]=o;Za(e+96|0,a,3);y:{if(z[e+108>>2]<=z[O+4>>2]|z[e+100>>2]>=z[O+12>>2]){break y}J=Xh(a,e+48|0);if((J|0)<0){break y}while(1){a=0;Q=Wh((e+48|0)+(d<<4)|0,e);if((Q|0)>=0){while(1){Bh(g,e+(a<<4)|0,O);T=(a|0)==(Q|0);a=a+1|0;if(!T){continue}break}}a=(d|0)==(J|0);d=d+1|0;if(!a){continue}break}}v[v[g+4>>2]>>2]=6;v[g+4>>2]=y;v[g>>2]=o;xa=e+112|0;break m;case 0:break n;case 3:break p;case 2:break x;default:continue}}f=z[y>>2];e=v[a+20>>2];v[g+768>>2]=v[a+16>>2];v[g+772>>2]=e;e=v[a+12>>2];v[g+760>>2]=v[a+8>>2];v[g+764>>2]=e;e=v[a+4>>2];v[g+752>>2]=v[a>>2];v[g+756>>2]=e;z[g+776>>2]=f;a=Mh(g+752|0,C(.25));e=1<<a;v[g+700>>2]=e;d=v[g+560>>2];if((d|0)!=(c|0)){Ka(d)}e=e<<1|1;z:{if(e>>>0>=18){e=Gb(e,8);v[g+560>>2]=e;break z}v[g+560>>2]=c;e=c}a=pf(g+752|0,e,a);v[g+700>>2]=a;d=0;if((a|0)<=0){continue}while(1){v[g+4>>2]=ga;v[g>>2]=ha;Za(g+800|0,e,3);A:{if(z[g+812>>2]<=z[O+4>>2]|z[g+804>>2]>=z[O+12>>2]){break A}o=0;y=Xh(e,g+752|0);if((y|0)<0){break A}while(1){a=0;J=Wh((g+752|0)+(o<<4)|0,g+704|0);if((J|0)>=0){while(1){Bh(g,(g+704|0)+(a<<4)|0,O);Q=(a|0)==(J|0);a=a+1|0;if(!Q){continue}break}}a=(o|0)==(y|0);o=o+1|0;if(!a){continue}break}}v[v[g+4>>2]>>2]=6;v[g+4>>2]=ga;v[g>>2]=ha;if(v[g+444>>2]!=6){za[267](g,(ia|0)!=0,s)}e=e+16|0;d=d+1|0;if((d|0)<v[g+700>>2]){continue}break}continue}a=v[g+560>>2];if((a|0)!=(c|0)){Ka(a)}xa=g+816|0;break l}P=0;y=xa-176|0;xa=y;aa=g+444|0;v[g+4>>2]=aa;fa=g+12|0;v[g>>2]=fa;Za(y+160|0,a,4);f=z[y+172>>2];B:{if(!(f>z[O+4>>2])){break B}h=z[y+164>>2];if(!(h<z[O+12>>2])){break B}if(f>C(4194304)?1:z[y+160>>2]<C(-4194304)|h<C(-4194304)|z[y+168>>2]>C(4194304)){e=v[a>>2];d=v[a+4>>2];o=v[a+24>>2];a=v[a+28>>2];v[g+4>>2]=aa;v[g>>2]=fa;v[y+8>>2]=o;v[y+12>>2]=a;v[y>>2]=e;v[y+4>>2]=d;e=Ch(y,O,y+80|0,w[g+8|0]);C:{if((e|0)<=0){break C}o=v[g>>2];J=0;if((e|0)!=1){T=e&-2;a=0;while(1){d=y+80|0;P=J<<3;Q=d+(P|8)|0;_=v[Q>>2];ea=v[Q+4>>2];P=d+P|0;ka=v[P+4>>2];P=v[P>>2];ja=v[g+4>>2];v[g+4>>2]=ja+4;v[ja>>2]=1;v[o>>2]=P;v[o+4>>2]=ka;o=v[g>>2];v[o+8>>2]=_;v[o+12>>2]=ea;o=v[g>>2];v[g>>2]=o+16;J=J+2|0;d=d+(J<<3)|0;P=v[d>>2];d=v[d+4>>2];_=v[Q+4>>2];Q=v[Q>>2];ea=v[g+4>>2];v[g+4>>2]=ea+4;v[ea>>2]=1;v[o+16>>2]=Q;v[o+20>>2]=_;o=v[g>>2];v[o+8>>2]=P;v[o+12>>2]=d;o=v[g>>2]+16|0;v[g>>2]=o;a=a+2|0;if((T|0)!=(a|0)){continue}break}}if(!(e&1)){break C}a=(y+80|0)+(J<<3)|0;e=v[a+8>>2];d=v[a+12>>2];J=v[a>>2];a=v[a+4>>2];Q=v[g+4>>2];v[g+4>>2]=Q+4;v[Q>>2]=1;v[o>>2]=J;v[o+4>>2]=a;a=v[g>>2];v[a+8>>2]=e;v[a+12>>2]=d;v[g>>2]=v[g>>2]+16}break B}e=xa-16|0;xa=e;m=z[a+20>>2];h=z[a+4>>2];f=z[a+12>>2];r=C(m+C(C(h-f)-f));d=e+8|0;Q=Pb(C(C(C(f-m)*C(3))+C(z[a+28>>2]-h)),C(r+r),C(f-h),d);o=a;a=y+80|0;Uh(o,a,d,Q);D:{if(!a|(Q|0)<=0){break D}f=z[a+28>>2];z[a+36>>2]=f;z[a+20>>2]=f;if((Q|0)!=2){break D}f=z[a+52>>2];z[a+60>>2]=f;z[a+44>>2]=f}xa=e+16|0;if((Q|0)<0){break B}while(1){J=0;e=xa-16|0;xa=e;a=(y+80|0)+B(P,24)|0;f=z[a+8>>2];m=z[a+16>>2];h=z[a>>2];r=C(m+C(C(h-f)-f));d=e+8|0;T=Pb(C(C(C(f-m)*C(3))+C(z[a+24>>2]-h)),C(r+r),C(f-h),d);Uh(a,y,d,T);E:{if(!y|(T|0)<=0){break E}f=z[y+24>>2];z[y+32>>2]=f;z[y+16>>2]=f;if((T|0)!=2){break E}f=z[y+48>>2];z[y+56>>2]=f;z[y+40>>2]=f}xa=e+16|0;if((T|0)>=0){while(1){r=C(0);d=xa-128|0;xa=d;a=y+B(J,24)|0;Y=z[a+4>>2];Z=z[a+28>>2];o=Y>Z;F:{if(o){e=v[a+28>>2];v[d>>2]=v[a+24>>2];v[d+4>>2]=e;e=v[a+20>>2];v[d+8>>2]=v[a+16>>2];v[d+12>>2]=e;e=v[a+12>>2];v[d+16>>2]=v[a+8>>2];v[d+20>>2]=e;f=z[a+4>>2];e=v[a+4>>2];v[d+24>>2]=v[a>>2];v[d+28>>2]=e;break F}e=v[a+28>>2];v[d+24>>2]=v[a+24>>2];v[d+28>>2]=e;e=v[a+20>>2];v[d+16>>2]=v[a+16>>2];v[d+20>>2]=e;e=v[a+4>>2];v[d>>2]=v[a>>2];v[d+4>>2]=e;e=v[a+12>>2];v[d+8>>2]=v[a+8>>2];v[d+12>>2]=e;f=z[d+28>>2]}h=z[O+4>>2];G:{if(f<=h){break G}m=z[O+12>>2];M=z[d+4>>2];if(m<=M){break G}if(h>M){if(!rf(d,h,d- -64|0)){f=z[d+4>>2];M=C(h-f);h=z[d+12>>2];U=C(C(h-f)*C(3));m=z[d+20>>2];V=C(C(f+C(C(m-h)-h))*C(3));W=C(C(C(C(h-m)*C(3))+z[d+28>>2])-f);m=C(3.4028234663852886e38);h=C(.25);f=C(.5);while(1){H:{$=C(f*C(C(C(C(W*f)+V)*f)+U));R=C(D(C($-M)));a=R<m;r=a?f:r;m=a?R:m;if(!(m>C(.25))){break H}R=f;f=C(f+(M>$?h:C(-h)));a=R!=f;h=C(h*C(.5));if(a){continue}}break}mc(d,d- -64|0,r)}f=z[O+4>>2];h=z[d+100>>2];if(!(!(f>z[d+92>>2])|!(h<f)|!(z[d+108>>2]<f))){a=v[d+116>>2];v[d+56>>2]=v[d+112>>2];v[d+60>>2]=a;a=v[d+108>>2];v[d+48>>2]=v[d+104>>2];v[d+52>>2]=a;a=v[d+92>>2];v[d+32>>2]=v[d+88>>2];v[d+36>>2]=a;a=v[d+100>>2];v[d+40>>2]=v[d+96>>2];v[d+44>>2]=a;if(!rf(d+32|0,f,d- -64|0)){m=f;f=z[d+36>>2];M=C(m-f);h=z[d+44>>2];U=C(C(h-f)*C(3));r=z[d+52>>2];V=C(C(f+C(C(r-h)-h))*C(3));W=C(C(C(C(h-r)*C(3))+z[d+60>>2])-f);m=C(3.4028234663852886e38);r=C(0);h=C(.25);f=C(.5);while(1){I:{$=C(f*C(C(C(C(W*f)+V)*f)+U));R=C(D(C($-M)));a=R<m;r=a?f:r;m=a?R:m;if(!(m>C(.25))){break I}R=f;f=C(f+(M>$?h:C(-h)));a=R!=f;h=C(h*C(.5));if(a){continue}}break}mc(d+32|0,d- -64|0,r)}h=z[d+100>>2];f=z[O+4>>2]}z[d+92>>2]=f;if(f>h){z[d+100>>2]=f}a=v[d+92>>2];v[d>>2]=v[d+88>>2];v[d+4>>2]=a;a=v[d+100>>2];v[d+8>>2]=v[d+96>>2];v[d+12>>2]=a;a=v[d+108>>2];v[d+16>>2]=v[d+104>>2];v[d+20>>2]=a;m=z[O+12>>2];f=z[d+28>>2]}J:{if(!(f>m)){h=z[d+24>>2];break J}if(!rf(d,m,d- -64|0)){f=z[d+4>>2];M=C(m-f);h=z[d+12>>2];U=C(C(h-f)*C(3));r=z[d+20>>2];V=C(C(f+C(C(r-h)-h))*C(3));W=C(C(C(C(h-r)*C(3))+z[d+28>>2])-f);m=C(3.4028234663852886e38);r=C(0);h=C(.25);f=C(.5);while(1){K:{$=C(f*C(C(C(C(W*f)+V)*f)+U));R=C(D(C($-M)));a=R<m;r=a?f:r;m=a?R:m;if(!(m>C(.25))){break K}R=f;f=C(f+(M>$?h:C(-h)));a=R!=f;h=C(h*C(.5));if(a){continue}}break}mc(d,d- -64|0,r)}f=z[O+12>>2];z[d+92>>2]=f;if(f<z[d+84>>2]){z[d+84>>2]=f}a=v[d+76>>2];v[d+8>>2]=v[d+72>>2];v[d+12>>2]=a;a=v[d+84>>2];v[d+16>>2]=v[d+80>>2];v[d+20>>2]=a;f=z[d+92>>2];e=v[d+92>>2];h=z[d+88>>2];v[d+24>>2]=v[d+88>>2];v[d+28>>2]=e}r=z[d>>2];if(r>h){r=z[d+24>>2];o=v[d+24>>2];_=v[d+28>>2];f=z[d+4>>2];a=v[d+4>>2];h=z[d>>2];v[d+24>>2]=v[d>>2];v[d+28>>2]=a;v[d>>2]=o;v[d+4>>2]=_;o=v[d+8>>2];_=v[d+12>>2];ea=v[d+20>>2];v[d+8>>2]=v[d+16>>2];v[d+12>>2]=ea;v[d+16>>2]=o;v[d+20>>2]=_;o=!(Y>Z)}M=z[O>>2];if(M>=h){h=z[d+4>>2];a=v[g+4>>2];v[g+4>>2]=a+4;v[a>>2]=1;a=v[g>>2];z[a+8>>2]=M;z[a+4>>2]=o?f:h;z[a>>2]=M;z[a+12>>2]=o?h:f;v[g>>2]=a+16;break G}m=z[O+8>>2];if(r>=m){if(w[g+8|0]){break G}h=z[d+4>>2];a=v[g+4>>2];v[g+4>>2]=a+4;v[a>>2]=1;a=v[g>>2];z[a+8>>2]=m;z[a+4>>2]=o?f:h;z[a>>2]=m;z[a+12>>2]=o?h:f;v[g>>2]=a+16;break G}if(r<M){if(!Qh(d,M,d- -64|0)){f=z[d>>2];M=C(M-f);h=z[d+8>>2];Y=C(C(h-f)*C(3));r=z[d+16>>2];Z=C(C(f+C(C(r-h)-h))*C(3));U=C(C(C(C(h-r)*C(3))+z[d+24>>2])-f);m=C(3.4028234663852886e38);r=C(0);h=C(.25);f=C(.5);while(1){L:{V=C(f*C(C(C(C(U*f)+Z)*f)+Y));W=C(D(C(V-M)));a=W<m;r=a?f:r;m=a?W:m;if(!(m>C(.25))){break L}R=f;f=C(f+(M>V?h:C(-h)));a=R!=f;h=C(h*C(.5));if(a){continue}}break}mc(d,d- -64|0,r)}h=z[d+92>>2];f=z[O>>2];r=z[d+68>>2];a=v[g+4>>2];v[g+4>>2]=a+4;v[a>>2]=1;a=v[g>>2];z[a+8>>2]=f;z[a+4>>2]=o?h:r;z[a>>2]=f;z[a+12>>2]=o?r:h;v[g>>2]=a+16;z[d+88>>2]=f;if(f>z[d+96>>2]){z[d+96>>2]=f}a=v[d+92>>2];v[d>>2]=v[d+88>>2];v[d+4>>2]=a;a=v[d+100>>2];v[d+8>>2]=v[d+96>>2];v[d+12>>2]=a;a=v[d+108>>2];v[d+16>>2]=v[d+104>>2];v[d+20>>2]=a;m=z[O+8>>2];h=z[d+24>>2]}if(h>m){if(!Qh(d,m,d- -64|0)){f=z[d>>2];M=C(m-f);h=z[d+8>>2];Y=C(C(h-f)*C(3));r=z[d+16>>2];Z=C(C(f+C(C(r-h)-h))*C(3));U=C(C(C(C(h-r)*C(3))+z[d+24>>2])-f);m=C(3.4028234663852886e38);r=C(0);h=C(.25);f=C(.5);while(1){M:{V=C(f*C(C(C(C(U*f)+Z)*f)+Y));W=C(D(C(V-M)));a=W<m;r=a?f:r;m=a?W:m;if(!(m>C(.25))){break M}R=f;f=C(f+(M>V?h:C(-h)));a=R!=f;h=C(h*C(.5));if(a){continue}}break}mc(d,d- -64|0,r)}f=z[O+8>>2];z[d+88>>2]=f;if(f<z[d+80>>2]){z[d+80>>2]=f}a=v[g+4>>2];v[g+4>>2]=a+4;v[a>>2]=4;N:{if(o){e=v[d+92>>2];a=v[g>>2];v[a>>2]=v[d+88>>2];v[a+4>>2]=e;e=v[d+84>>2];a=v[g>>2];v[a+8>>2]=v[d+80>>2];v[a+12>>2]=e;e=v[d+76>>2];a=v[g>>2];v[a+16>>2]=v[d+72>>2];v[a+20>>2]=e;e=v[d+68>>2];a=v[g>>2];v[a+24>>2]=v[d+64>>2];v[a+28>>2]=e;break N}e=v[d+68>>2];a=v[g>>2];v[a>>2]=v[d+64>>2];v[a+4>>2]=e;e=v[d+92>>2];v[a+24>>2]=v[d+88>>2];v[a+28>>2]=e;e=v[d+84>>2];v[a+16>>2]=v[d+80>>2];v[a+20>>2]=e;e=v[d+76>>2];v[a+8>>2]=v[d+72>>2];v[a+12>>2]=e}f=z[O+8>>2];h=z[d+116>>2];r=z[d+92>>2];e=v[g+4>>2];v[g+4>>2]=e+4;a=v[g>>2];v[e>>2]=1;z[a+44>>2]=o?r:h;z[a+40>>2]=f;z[a+36>>2]=o?h:r;z[a+32>>2]=f;v[g>>2]=a+48;break G}a=v[g+4>>2];v[g+4>>2]=a+4;v[a>>2]=4;O:{if(o){e=v[d+28>>2];a=v[g>>2];v[a>>2]=v[d+24>>2];v[a+4>>2]=e;e=v[d+20>>2];a=v[g>>2];v[a+8>>2]=v[d+16>>2];v[a+12>>2]=e;e=v[d+12>>2];a=v[g>>2];v[a+16>>2]=v[d+8>>2];v[a+20>>2]=e;e=v[d+4>>2];a=v[g>>2];v[a+24>>2]=v[d>>2];v[a+28>>2]=e;break O}e=v[d+4>>2];a=v[g>>2];v[a>>2]=v[d>>2];v[a+4>>2]=e;e=v[d+28>>2];v[a+24>>2]=v[d+24>>2];v[a+28>>2]=e;e=v[d+20>>2];v[a+16>>2]=v[d+16>>2];v[a+20>>2]=e;e=v[d+12>>2];v[a+8>>2]=v[d+8>>2];v[a+12>>2]=e}v[g>>2]=v[g>>2]+32}xa=d+128|0;a=(J|0)==(T|0);J=J+1|0;if(!a){continue}break}}a=(P|0)==(Q|0);P=P+1|0;if(!a){continue}break}}v[v[g+4>>2]>>2]=6;v[g+4>>2]=aa;v[g>>2]=fa;xa=y+176|0;break m}u[A+36>>1]=256;ia=0;a=H}e=v[a>>2];d=v[a+4>>2];y=v[a+8>>2];a=v[a+12>>2];v[g+4>>2]=ga;v[g>>2]=ha;v[g+712>>2]=y;v[g+716>>2]=a;v[g+704>>2]=e;v[g+708>>2]=d;y=Ch(g+704|0,O,g+752|0,w[g+8|0]);P:{if((y|0)<=0){break P}a=0;e=v[g>>2];if((y|0)!=1){Q=y&-2;d=0;while(1){T=v[g+4>>2];v[g+4>>2]=T+4;o=g+752|0;P=a<<3;J=o+(P|8)|0;aa=v[J>>2];fa=v[J+4>>2];P=o+P|0;_=v[P+4>>2];P=v[P>>2];v[T>>2]=1;v[e>>2]=P;v[e+4>>2]=_;e=v[g>>2];v[e+8>>2]=aa;v[e+12>>2]=fa;v[g>>2]=e+16;T=v[g+4>>2];v[g+4>>2]=T+4;a=a+2|0;o=o+(a<<3)|0;P=v[o>>2];o=v[o+4>>2];aa=v[J+4>>2];J=v[J>>2];v[T>>2]=1;v[e+16>>2]=J;v[e+20>>2]=aa;e=v[g>>2];v[e+8>>2]=P;v[e+12>>2]=o;e=e+16|0;v[g>>2]=e;d=d+2|0;if((Q|0)!=(d|0)){continue}break}}if(!(y&1)){break P}d=v[g+4>>2];v[g+4>>2]=d+4;a=(g+752|0)+(a<<3)|0;y=v[a+8>>2];o=v[a+12>>2];J=v[a>>2];a=v[a+4>>2];v[d>>2]=1;v[e>>2]=J;v[e+4>>2]=a;a=v[g>>2];v[a+8>>2]=y;v[a+12>>2]=o;v[g>>2]=a+16}v[v[g+4>>2]>>2]=6;v[g+4>>2]=ga;v[g>>2]=ha}if(v[g+444>>2]==6){continue}za[267](g,(ia|0)!=0,s);continue}break}v[i+76>>2]=w[E+10|0]&3;c=xa-16|0;xa=c;a=Ya(92);e=v[s>>2];E=v[s+4>>2];v[s>>2]=0;v[s+4>>2]=0;H=v[s+8>>2];d=v[s+12>>2];v[s+8>>2]=0;g=v[s+16>>2];A=v[s+20>>2];v[s+12>>2]=0;v[s+16>>2]=0;y=v[s+24>>2];O=v[s+28>>2];v[s+20>>2]=0;v[s+24>>2]=0;o=v[s+32>>2];v[s+28>>2]=0;v[s+32>>2]=0;J=v[s+44>>2];v[a+52>>2]=o;v[a+44>>2]=y;v[a+48>>2]=O;v[a+36>>2]=g;v[a+40>>2]=A;v[a+28>>2]=H;v[a+32>>2]=d;v[a+20>>2]=e;v[a+24>>2]=E;v[a>>2]=1;sd(a+60|0);t[a+90|0]=J;v[a+56>>2]=0;t[a+84|0]=1;u[a+86>>1]=0;u[a+88>>1]=44032;e=Za(a+4|0,v[a+20>>2],v[a+28>>2]);t[a+84|0]=0;t[a+85|0]=e;v[c+8>>2]=a;A=i+8|0;a=A;e=xa-16|0;xa=e;Q:{R:{S:{switch(v[s+64>>2]-2|0){default:H=v[c+8>>2];E=2;d=2;break Q;case 0:E=w[s+72|0];H=v[c+8>>2];t[H+89|0]=v[s+68>>2];t[H+88|0]=E;t[H+86|0]=1;break R;case 1:break S}}E=w[s+72|0];H=v[c+8>>2];t[H+89|0]=v[s+68>>2];t[H+88|0]=E;t[H+87|0]=1}d=0}g=v[s+76>>2];v[c+8>>2]=0;v[e+8>>2]=H;H=v[s+36>>2];y=w[s+40|0];O=v[e+8>>2];v[e+8>>2]=0;t[a+9|0]=E;t[a+8|0]=(g|0)==2?d:g;v[a+4>>2]=-1;v[a>>2]=O;t[a+10|0]=w[a+10|0]&248|(H&3|(y?4:0));E=v[e+8>>2];T:{if(!E){break T}H=v[E>>2];v[E>>2]=H-1;if((H|0)!=1){break T}Sa(qb(E))}H=v[a>>2];E=v[H+32>>2];d=E;E=E?E+v[H+40>>2]|0:0;if(d>>>0<E>>>0){v[a+4>>2]=v[s+56>>2]^(w[E-1|0]==5?-1:0)}xa=e+16|0;a=v[c+8>>2];U:{if(!a){break U}e=v[a>>2];v[a>>2]=e-1;if((e|0)!=1){break U}Sa(qb(a))}Ka(0);Ka(0);Ka(0);a=v[s>>2];if(a){Ka(a);v[s+8>>2]=0;v[s>>2]=0;v[s+4>>2]=0}a=v[s+12>>2];if(a){Ka(a);v[s+20>>2]=0;v[s+12>>2]=0;v[s+16>>2]=0}a=v[s+24>>2];if(a){Ka(a);v[s+32>>2]=0;v[s+24>>2]=0;v[s+28>>2]=0}v[s+76>>2]=2;t[s+60|0]=1;v[s+44>>2]=0;v[s+48>>2]=0;t[s+40|0]=0;v[s+36>>2]=0;