diff --git a/CHANGELOG.md b/CHANGELOG.md index c9b2454..c2d2b03 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,10 +3,12 @@ All notable changes to this project will be documented in this file. This library adheres to a versioning policy described in [the README](./README.md#versioning). The public API of this library consists of the functions exported in [h3core.js](./lib/h3core.js). ## [Unreleased] +### Breaking changes +- Updated the core library to `v4.0.0-rc5`. (#151) ## [4.0.0-rc3] - 2022-08-11 ### Fixed -- Fail package publish if there are library changes +- Fail package publish if there are library changes (#148) ## [4.0.0-rc2] - 2022-08-11 ### Added diff --git a/H3_VERSION b/H3_VERSION index 048bc5b..1882577 100644 --- a/H3_VERSION +++ b/H3_VERSION @@ -1 +1 @@ -4.0.0-rc4 +4.0.0-rc5 diff --git a/README.md b/README.md index 73564b5..81a0718 100644 --- a/README.md +++ b/README.md @@ -134,7 +134,7 @@ const coordinates = h3.cellsToMultiPolygon(hexagons, true); * [.localIjToCell(origin, coords)](#module_h3.localIjToCell) ⇒ H3Index * [.greatCircleDistance(latLng1, latLng2, unit)](#module_h3.greatCircleDistance) ⇒ number * [.cellArea(h3Index, unit)](#module_h3.cellArea) ⇒ number - * [.exactEdgeLength(edge, unit)](#module_h3.exactEdgeLength) ⇒ number + * [.edgeLength(edge, unit)](#module_h3.edgeLength) ⇒ number * [.getHexagonAreaAvg(res, unit)](#module_h3.getHexagonAreaAvg) ⇒ number * [.getHexagonEdgeLengthAvg(res, unit)](#module_h3.getHexagonEdgeLengthAvg) ⇒ number * [.cellToVertex(h3Index, vertexNum)](#module_h3.cellToVertex) ⇒ H3Index @@ -851,10 +851,10 @@ Exact area of a given cell * * * - + -### h3.exactEdgeLength(edge, unit) ⇒ number -Exact length of a given unidirectional edge +### h3.edgeLength(edge, unit) ⇒ number +Calculate length of a given unidirectional edge **Returns**: number - Cell area **Throws**: diff --git a/lib/bindings.js b/lib/bindings.js index b9f2e80..34d4e3c 100644 --- a/lib/bindings.js +++ b/lib/bindings.js @@ -87,9 +87,9 @@ export default [ ['cellAreaM2', H3_ERROR, [H3_LOWER, H3_UPPER, POINTER]], ['cellAreaKm2', H3_ERROR, [H3_LOWER, H3_UPPER, POINTER]], ['cellAreaRads2', H3_ERROR, [H3_LOWER, H3_UPPER, POINTER]], - ['exactEdgeLengthM', H3_ERROR, [H3_LOWER, H3_UPPER, POINTER]], - ['exactEdgeLengthKm', H3_ERROR, [H3_LOWER, H3_UPPER, POINTER]], - ['exactEdgeLengthRads', H3_ERROR, [H3_LOWER, H3_UPPER, POINTER]], + ['edgeLengthM', H3_ERROR, [H3_LOWER, H3_UPPER, POINTER]], + ['edgeLengthKm', H3_ERROR, [H3_LOWER, H3_UPPER, POINTER]], + ['edgeLengthRads', H3_ERROR, [H3_LOWER, H3_UPPER, POINTER]], ['getNumCells', H3_ERROR, [RESOLUTION, POINTER]], ['getRes0Cells', H3_ERROR, [POINTER]], ['res0CellCount', NUMBER], diff --git a/lib/h3core.js b/lib/h3core.js index f9d8b1f..33dbdaa 100644 --- a/lib/h3core.js +++ b/lib/h3core.js @@ -1384,26 +1384,26 @@ export function cellArea(h3Index, unit) { } /** - * Exact length of a given unidirectional edge + * Calculate length of a given unidirectional edge * @static * @param {H3Index} edge H3 index of the edge to measure * @param {string} unit Distance unit (either UNITS.m, UNITS.km, or UNITS.rads) * @return {number} Cell area * @throws {H3Error} If the input is invalid */ -export function exactEdgeLength(edge, unit) { +export function edgeLength(edge, unit) { const [lower, upper] = h3IndexToSplitLong(edge); const out = C._malloc(SZ_DBL); try { switch (unit) { case UNITS.m: - throwIfError(H3.exactEdgeLengthM(lower, upper, out)); + throwIfError(H3.edgeLengthM(lower, upper, out)); break; case UNITS.km: - throwIfError(H3.exactEdgeLengthKm(lower, upper, out)); + throwIfError(H3.edgeLengthKm(lower, upper, out)); break; case UNITS.rads: - throwIfError(H3.exactEdgeLengthRads(lower, upper, out)); + throwIfError(H3.edgeLengthRads(lower, upper, out)); break; default: throw JSBindingError(E_UNKNOWN_UNIT, unit); diff --git a/lib/legacy-mapping.js b/lib/legacy-mapping.js index 65c68e7..51576c2 100644 --- a/lib/legacy-mapping.js +++ b/lib/legacy-mapping.js @@ -51,7 +51,7 @@ module.exports = { experimentalLocalIjToH3: 'localIjToCell', pointDist: 'greatCircleDistance', cellArea: 'cellArea', - exactEdgeLength: 'exactEdgeLength', + exactEdgeLength: 'edgeLength', hexArea: 'getHexagonAreaAvg', edgeLength: 'getHexagonEdgeLengthAvg', numHexagons: 'getNumCells', diff --git a/out/binding-functions b/out/binding-functions index f5cc53d..9247fe4 100644 --- a/out/binding-functions +++ b/out/binding-functions @@ -12,7 +12,7 @@ greatCircleDistance getHexagonAreaAvg cellArea getHexagonEdgeLengthAvg -exactEdgeLength +edgeLength getNumCells getRes0Cells getPentagons diff --git a/out/libh3.js b/out/libh3.js index 1ae04e0..3140f43 100644 --- a/out/libh3.js +++ b/out/libh3.js @@ -7,14 +7,14 @@ var Module=typeof libh3!=="undefined"?libh3:{};var moduleOverrides={};var key;fo var asm=(/** @suppress {uselessCode} */ function(global,env,buffer) { "almost asm";var a=new global.Int8Array(buffer),b=new global.Int32Array(buffer),c=new global.Uint8Array(buffer),d=new global.Float32Array(buffer),e=new global.Float64Array(buffer),f=env.o|0,g=env.p|0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0.0,p=global.Math.floor,q=global.Math.abs,r=global.Math.sqrt,s=global.Math.pow,t=global.Math.cos,u=global.Math.sin,v=global.Math.tan,w=global.Math.acos,x=global.Math.asin,y=global.Math.atan,z=global.Math.atan2,A=global.Math.ceil,B=global.Math.imul,C=global.Math.min,D=global.Math.clz32,E=env.a,F=env.b,G=env.c,H=env.d,I=env.e,J=env.f,K=env.g,L=env.h,M=env.i,N=env.j,O=env.k,P=env.l,Q=env.m,R=env.n,S=23920,T=5266800,U=0.0;function V(newBuffer){a=new Int8Array(newBuffer);c=new Uint8Array(newBuffer);b=new Int32Array(newBuffer);d=new Float32Array(newBuffer);e=new Float64Array(newBuffer);buffer=newBuffer;return true} // EMSCRIPTEN_START_FUNCS -function W(a){a=a|0;var b=0;b=S;S=S+a|0;S=S+15&-16;return b|0}function X(){return S|0}function Y(a){a=a|0;S=a}function Z(a,b){a=a|0;b=b|0;S=a;T=b}function _(a,c){a=a|0;c=c|0;var d=0,e=0,f=0,g=0;d=((a|0)<0)<<31>>31;if((a|0)<0){d=2;return d|0}g=md(a|0,d|0,3,0)|0;f=G()|0;e=gd(a|0,d|0,1,0)|0;e=md(g|0,f|0,e|0,G()|0)|0;e=gd(e|0,G()|0,1,0)|0;a=G()|0;d=c;b[d>>2]=e;b[d+4>>2]=a;d=0;return d|0}function $(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0;if(!(ba(a,b,c,d,0)|0)){d=0;return d|0}e=((c|0)<0)<<31>>31;g=md(c|0,e|0,3,0)|0;f=G()|0;e=gd(c|0,e|0,1,0)|0;e=md(g|0,f|0,e|0,G()|0)|0;e=gd(e|0,G()|0,1,0)|0;f=G()|0;if((c|0)<0){d=2;return d|0}vd(d|0,0,e<<3|0)|0;g=fd(e,4)|0;if(!g){d=13;return d|0}d=ca(a,b,c,d,g,e,f,0)|0;ed(g);return d|0}function aa(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0;if(!(ba(a,b,c,d,e)|0)){d=0;return d|0}f=((c|0)<0)<<31>>31;h=md(c|0,f|0,3,0)|0;g=G()|0;f=gd(c|0,f|0,1,0)|0;f=md(h|0,g|0,f|0,G()|0)|0;f=gd(f|0,G()|0,1,0)|0;g=G()|0;if((c|0)<0){h=2;return h|0}vd(d|0,0,f<<3|0)|0;if(e|0){vd(e|0,0,f<<2|0)|0;h=ca(a,b,c,d,e,f,g,0)|0;return h|0}e=fd(f,4)|0;if(!e){h=13;return h|0}h=ca(a,b,c,d,e,f,g,0)|0;ed(e);return h|0}function ba(a,c,d,e,f){a=a|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;q=S;S=S+16|0;o=q;p=q+8|0;n=o;b[n>>2]=a;b[n+4>>2]=c;if((d|0)<0){p=2;S=q;return p|0}g=e;b[g>>2]=a;b[g+4>>2]=c;g=(f|0)!=0;if(g)b[f>>2]=0;if(ub(a,c)|0){p=9;S=q;return p|0}b[p>>2]=0;a:do if((d|0)>=1)if(g){l=1;k=0;m=0;n=1;g=a;while(1){if(!(k|m)){g=da(g,c,4,p,o)|0;if(g|0)break a;c=o;g=b[c>>2]|0;c=b[c+4>>2]|0;if(ub(g,c)|0){g=9;break a}}g=da(g,c,b[22384+(m<<2)>>2]|0,p,o)|0;if(g|0)break a;c=o;g=b[c>>2]|0;c=b[c+4>>2]|0;a=e+(l<<3)|0;b[a>>2]=g;b[a+4>>2]=c;b[f+(l<<2)>>2]=n;a=k+1|0;h=(a|0)==(n|0);i=m+1|0;j=(i|0)==6;if(ub(g,c)|0){g=9;break a}n=n+(j&h&1)|0;if((n|0)>(d|0)){g=0;break}else{l=l+1|0;k=h?0:a;m=h?(j?0:i):m}}}else{l=1;k=0;m=0;n=1;g=a;while(1){if(!(k|m)){g=da(g,c,4,p,o)|0;if(g|0)break a;c=o;g=b[c>>2]|0;c=b[c+4>>2]|0;if(ub(g,c)|0){g=9;break a}}g=da(g,c,b[22384+(m<<2)>>2]|0,p,o)|0;if(g|0)break a;c=o;g=b[c>>2]|0;c=b[c+4>>2]|0;a=e+(l<<3)|0;b[a>>2]=g;b[a+4>>2]=c;a=k+1|0;h=(a|0)==(n|0);i=m+1|0;j=(i|0)==6;if(ub(g,c)|0){g=9;break a}n=n+(j&h&1)|0;if((n|0)>(d|0)){g=0;break}else{l=l+1|0;k=h?0:a;m=h?(j?0:i):m}}}else g=0;while(0);p=g;S=q;return p|0}function ca(a,c,d,e,f,g,h,i){a=a|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;q=S;S=S+16|0;o=q+8|0;p=q;j=od(a|0,c|0,g|0,h|0)|0;l=G()|0;m=e+(j<<3)|0;r=m;s=b[r>>2]|0;r=b[r+4>>2]|0;k=(s|0)==(a|0)&(r|0)==(c|0);if(!((s|0)==0&(r|0)==0|k))do{j=gd(j|0,l|0,1,0)|0;j=nd(j|0,G()|0,g|0,h|0)|0;l=G()|0;m=e+(j<<3)|0;s=m;r=b[s>>2]|0;s=b[s+4>>2]|0;k=(r|0)==(a|0)&(s|0)==(c|0)}while(!((r|0)==0&(s|0)==0|k));j=f+(j<<2)|0;if(k?(b[j>>2]|0)<=(i|0):0){s=0;S=q;return s|0}s=m;b[s>>2]=a;b[s+4>>2]=c;b[j>>2]=i;if((i|0)>=(d|0)){s=0;S=q;return s|0}k=i+1|0;b[o>>2]=0;j=da(a,c,2,o,p)|0;switch(j|0){case 9:{n=9;break}case 0:{j=p;j=ca(b[j>>2]|0,b[j+4>>2]|0,d,e,f,g,h,k)|0;if(!j)n=9;break}default:{}}a:do if((n|0)==9){b[o>>2]=0;j=da(a,c,3,o,p)|0;switch(j|0){case 9:break;case 0:{j=p;j=ca(b[j>>2]|0,b[j+4>>2]|0,d,e,f,g,h,k)|0;if(j|0)break a;break}default:break a}b[o>>2]=0;j=da(a,c,1,o,p)|0;switch(j|0){case 9:break;case 0:{j=p;j=ca(b[j>>2]|0,b[j+4>>2]|0,d,e,f,g,h,k)|0;if(j|0)break a;break}default:break a}b[o>>2]=0;j=da(a,c,5,o,p)|0;switch(j|0){case 9:break;case 0:{j=p;j=ca(b[j>>2]|0,b[j+4>>2]|0,d,e,f,g,h,k)|0;if(j|0)break a;break}default:break a}b[o>>2]=0;j=da(a,c,4,o,p)|0;switch(j|0){case 9:break;case 0:{j=p;j=ca(b[j>>2]|0,b[j+4>>2]|0,d,e,f,g,h,k)|0;if(j|0)break a;break}default:break a}b[o>>2]=0;j=da(a,c,6,o,p)|0;switch(j|0){case 9:break;case 0:{j=p;j=ca(b[j>>2]|0,b[j+4>>2]|0,d,e,f,g,h,k)|0;if(j|0)break a;break}default:break a}s=0;S=q;return s|0}while(0);s=j;S=q;return s|0}function da(a,c,d,e,f){a=a|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;if(d>>>0>6){f=1;return f|0}if((b[e>>2]|0)>0){g=0;do{d=Pa(d)|0;g=g+1|0}while((g|0)<(b[e>>2]|0))}m=qd(a|0,c|0,45)|0;G()|0;l=m&127;if(l>>>0>121){f=5;return f|0}j=Cb(a,c)|0;g=qd(a|0,c|0,52)|0;G()|0;g=g&15;a:do if(!g)k=8;else{while(1){h=(15-g|0)*3|0;i=qd(a|0,c|0,h|0)|0;G()|0;i=i&7;if((i|0)==7){c=5;break}p=(Ib(g)|0)==0;g=g+-1|0;n=rd(7,0,h|0)|0;c=c&~(G()|0);o=rd(b[(p?432:16)+(i*28|0)+(d<<2)>>2]|0,0,h|0)|0;h=G()|0;d=b[(p?640:224)+(i*28|0)+(d<<2)>>2]|0;a=o|a&~n;c=h|c;if(!d){d=0;break a}if(!g){k=8;break a}}return c|0}while(0);if((k|0)==8){p=b[848+(l*28|0)+(d<<2)>>2]|0;o=rd(p|0,0,45)|0;a=o|a;c=G()|0|c&-1040385;d=b[4272+(l*28|0)+(d<<2)>>2]|0;if((p&127|0)==127){p=rd(b[848+(l*28|0)+20>>2]|0,0,45)|0;c=G()|0|c&-1040385;d=b[4272+(l*28|0)+20>>2]|0;a=Eb(p|a,c)|0;c=G()|0;b[e>>2]=(b[e>>2]|0)+1}}i=qd(a|0,c|0,45)|0;G()|0;i=i&127;b:do if(!(la(i)|0)){if((d|0)>0){g=0;do{a=Eb(a,c)|0;c=G()|0;g=g+1|0}while((g|0)!=(d|0))}}else{c:do if((Cb(a,c)|0)==1){if((l|0)!=(i|0))if(ra(i,b[7696+(l*28|0)>>2]|0)|0){a=Gb(a,c)|0;h=1;c=G()|0;break}else{a=Eb(a,c)|0;h=1;c=G()|0;break}switch(j|0){case 3:{a=Eb(a,c)|0;c=G()|0;b[e>>2]=(b[e>>2]|0)+1;h=0;break c}case 5:{a=Gb(a,c)|0;c=G()|0;b[e>>2]=(b[e>>2]|0)+5;h=0;break c}case 0:{p=9;return p|0}default:{p=1;return p|0}}}else h=0;while(0);if((d|0)>0){g=0;do{a=Db(a,c)|0;c=G()|0;g=g+1|0}while((g|0)!=(d|0))}if((l|0)!=(i|0)){if(!(ma(i)|0)){if((h|0)!=0|(Cb(a,c)|0)!=5)break;b[e>>2]=(b[e>>2]|0)+1;break}switch(m&127){case 8:case 118:break b;default:{}}if((Cb(a,c)|0)!=3)b[e>>2]=(b[e>>2]|0)+1}}while(0);b[e>>2]=((b[e>>2]|0)+d|0)%6|0;p=f;b[p>>2]=a;b[p+4>>2]=c;p=0;return p|0}function ea(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0;i=S;S=S+16|0;g=i;h=i+8|0;f=(ub(a,c)|0)==0;f=f?1:2;while(1){b[h>>2]=0;k=(da(a,c,f,h,g)|0)==0;j=g;if(k&((b[j>>2]|0)==(d|0)?(b[j+4>>2]|0)==(e|0):0)){a=4;break}f=f+1|0;if(f>>>0>=7){f=7;a=4;break}}if((a|0)==4){S=i;return f|0}return 0}function fa(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;p=S;S=S+16|0;n=p;o=p+8|0;m=n;b[m>>2]=a;b[m+4>>2]=c;if(!d){o=e;b[o>>2]=a;b[o+4>>2]=c;o=0;S=p;return o|0}b[o>>2]=0;a:do if(!(ub(a,c)|0)){g=(d|0)>0;if(g){f=0;m=a;do{a=da(m,c,4,o,n)|0;if(a|0)break a;c=n;m=b[c>>2]|0;c=b[c+4>>2]|0;f=f+1|0;if(ub(m,c)|0){a=9;break a}}while((f|0)<(d|0));l=e;b[l>>2]=m;b[l+4>>2]=c;l=d+-1|0;if(g){k=0;a=1;do{f=22384+(k<<2)|0;if((k|0)==5){h=b[f>>2]|0;g=0;f=a;while(1){a=n;a=da(b[a>>2]|0,b[a+4>>2]|0,h,o,n)|0;if(a|0)break a;if((g|0)!=(l|0)){j=n;i=b[j>>2]|0;j=b[j+4>>2]|0;a=e+(f<<3)|0;b[a>>2]=i;b[a+4>>2]=j;if(!(ub(i,j)|0))a=f+1|0;else{a=9;break a}}else a=f;g=g+1|0;if((g|0)>=(d|0))break;else f=a}}else{h=n;j=b[f>>2]|0;i=0;f=a;g=b[h>>2]|0;h=b[h+4>>2]|0;while(1){a=da(g,h,j,o,n)|0;if(a|0)break a;h=n;g=b[h>>2]|0;h=b[h+4>>2]|0;a=e+(f<<3)|0;b[a>>2]=g;b[a+4>>2]=h;a=f+1|0;if(ub(g,h)|0){a=9;break a}i=i+1|0;if((i|0)>=(d|0))break;else f=a}}k=k+1|0}while(k>>>0<6);a=n;h=m;f=b[a>>2]|0;g=c;a=b[a+4>>2]|0}else{h=m;f=m;g=c;a=c}}else{h=e;b[h>>2]=a;b[h+4>>2]=c;h=a;f=a;g=c;a=c}a=(h|0)==(f|0)&(g|0)==(a|0)?0:9}else a=9;while(0);o=a;S=p;return o|0}function ga(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;j=S;S=S+48|0;f=j+8|0;g=j;if(d|0){e=15;S=j;return e|0}d=a;i=b[d+4>>2]|0;h=g;b[h>>2]=b[d>>2];b[h+4>>2]=i;zc(g,f);h=ya(f,c)|0;i=G()|0;c=b[g>>2]|0;g=b[a+8>>2]|0;if((g|0)>0){f=b[a+12>>2]|0;d=0;do{c=(b[f+(d<<3)>>2]|0)+c|0;d=d+1|0}while((d|0)<(g|0))}a=((c|0)<0)<<31>>31;g=(i|0)<(a|0)|(i|0)==(a|0)&h>>>0>>0;h=gd((g?c:h)|0,(g?a:i)|0,12,0)|0;i=G()|0;b[e>>2]=h;b[e+4>>2]=i;e=0;S=j;return e|0}function ha(a,c,d,f,g,h,i){a=a|0;c=c|0;d=d|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0.0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,H=0,I=0,J=0,K=0,L=0.0,M=0.0,N=0.0;K=S;S=S+64|0;F=K+40|0;H=K+24|0;I=K+8|0;A=K;j=b[a>>2]|0;if((j|0)<=0){J=0;S=K;return J|0}B=a+4|0;C=F+8|0;D=H+8|0;E=I+8|0;y=0;a:while(1){k=b[B>>2]|0;x=k+(y<<4)|0;b[F>>2]=b[x>>2];b[F+4>>2]=b[x+4>>2];b[F+8>>2]=b[x+8>>2];b[F+12>>2]=b[x+12>>2];if((y|0)==(j+-1|0)){b[H>>2]=b[k>>2];b[H+4>>2]=b[k+4>>2];b[H+8>>2]=b[k+8>>2];b[H+12>>2]=b[k+12>>2]}else{x=k+(y+1<<4)|0;b[H>>2]=b[x>>2];b[H+4>>2]=b[x+4>>2];b[H+8>>2]=b[x+8>>2];b[H+12>>2]=b[x+12>>2]}t=za(F,H,f)|0;u=G()|0;if((u|0)>0|(u|0)==0&t>>>0>0){v=+(t>>>0)+4294967296.0*+(u|0);w=0;x=0;do{N=+e[F>>3];j=hd(t|0,u|0,w|0,x|0)|0;M=+(j>>>0)+4294967296.0*+(G()|0);L=+(w>>>0)+4294967296.0*+(x|0);e[I>>3]=N*M/v+ +e[H>>3]*L/v;e[E>>3]=+e[C>>3]*M/v+ +e[D>>3]*L/v;j=Jb(I,f,A)|0;if(j|0)break a;s=A;r=b[s>>2]|0;s=b[s+4>>2]|0;m=od(r|0,s|0,c|0,d|0)|0;o=G()|0;j=i+(m<<3)|0;l=j;k=b[l>>2]|0;l=b[l+4>>2]|0;b:do if((k|0)==0&(l|0)==0){z=j;J=14}else{p=0;q=0;n=l;j=o;while(1){if((p|0)>(d|0)|(p|0)==(d|0)&q>>>0>c>>>0){j=1;break a}if((k|0)==(r|0)&(n|0)==(s|0))break b;l=gd(m|0,j|0,1,0)|0;m=nd(l|0,G()|0,c|0,d|0)|0;j=G()|0;q=gd(q|0,p|0,1,0)|0;p=G()|0;l=i+(m<<3)|0;n=l;k=b[n>>2]|0;n=b[n+4>>2]|0;if((k|0)==0&(n|0)==0){z=l;J=14;break}}}while(0);if((J|0)==14?(J=0,!((r|0)==0&(s|0)==0)):0){q=z;b[q>>2]=r;b[q+4>>2]=s;q=h+(b[g>>2]<<3)|0;b[q>>2]=r;b[q+4>>2]=s;q=g;q=gd(b[q>>2]|0,b[q+4>>2]|0,1,0)|0;r=G()|0;s=g;b[s>>2]=q;b[s+4>>2]=r}w=gd(w|0,x|0,1,0)|0;x=G()|0}while((u|0)>(x|0)|(u|0)==(x|0)&t>>>0>w>>>0)}y=y+1|0;j=b[a>>2]|0;if((y|0)>=(j|0)){j=0;J=19;break}}if((J|0)==19){S=K;return j|0}J=j;S=K;return J|0}function ia(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,H=0,I=0,J=0,K=0;K=S;S=S+112|0;F=K+80|0;l=K+72|0;H=K;I=K+56|0;if(d|0){J=15;S=K;return J|0}m=a+8|0;J=dd((b[m>>2]<<5)+32|0)|0;if(!J){J=13;S=K;return J|0}Ac(a,J);d=a;j=b[d+4>>2]|0;i=l;b[i>>2]=b[d>>2];b[i+4>>2]=j;zc(l,F);i=ya(F,c)|0;j=G()|0;d=b[l>>2]|0;g=b[m>>2]|0;if((g|0)>0){h=b[a+12>>2]|0;f=0;do{d=(b[h+(f<<3)>>2]|0)+d|0;f=f+1|0}while((f|0)!=(g|0))}D=((d|0)<0)<<31>>31;E=(j|0)<(D|0)|(j|0)==(D|0)&i>>>0>>0;k=E?d:i;i=E?D:j;D=gd(k|0,i|0,12,0)|0;E=G()|0;f=fd(D,8)|0;if(!f){ed(J);J=13;S=K;return J|0}j=fd(D,8)|0;if(!j){ed(J);ed(f);J=13;S=K;return J|0}B=F;b[B>>2]=0;b[B+4>>2]=0;B=a;C=b[B+4>>2]|0;d=l;b[d>>2]=b[B>>2];b[d+4>>2]=C;d=ha(l,D,E,c,F,f,j)|0;a:do if(!d){b:do if((b[m>>2]|0)>0){h=a+12|0;g=0;while(1){d=ha((b[h>>2]|0)+(g<<3)|0,D,E,c,F,f,j)|0;g=g+1|0;if(d|0)break;if((g|0)>=(b[m>>2]|0))break b}ed(f);ed(j);ed(J);break a}while(0);if((i|0)>-1|(i|0)==-1&k>>>0>4294967284){B=(E|0)>0|(E|0)==0&D>>>0>1;C=B?D:1;vd(j|0,0,C<<3|0)|0}C=F;B=b[C+4>>2]|0;c:do if((B|0)>0|(B|0)==0&(b[C>>2]|0)>>>0>0){y=f;z=j;A=f;B=j;C=f;d=f;v=f;w=j;x=j;f=j;d:while(1){r=0;s=0;t=0;u=0;g=0;h=0;while(1){i=H;j=i+56|0;do{b[i>>2]=0;i=i+4|0}while((i|0)<(j|0));l=y+(r<<3)|0;k=b[l>>2]|0;l=b[l+4>>2]|0;if(ba(k,l,1,H,0)|0){i=H;j=i+56|0;do{b[i>>2]=0;i=i+4|0}while((i|0)<(j|0));i=fd(7,4)|0;if(i|0){ca(k,l,1,H,i,7,0,0)|0;ed(i)}}q=0;while(1){p=H+(q<<3)|0;o=b[p>>2]|0;p=b[p+4>>2]|0;e:do if(!((o|0)==0&(p|0)==0)){m=od(o|0,p|0,D|0,E|0)|0;k=G()|0;i=e+(m<<3)|0;l=i;j=b[l>>2]|0;l=b[l+4>>2]|0;if(!((j|0)==0&(l|0)==0)){c=0;n=0;do{if((c|0)>(E|0)|(c|0)==(E|0)&n>>>0>D>>>0)break d;if((j|0)==(o|0)&(l|0)==(p|0)){i=g;j=h;break e}i=gd(m|0,k|0,1,0)|0;m=nd(i|0,G()|0,D|0,E|0)|0;k=G()|0;n=gd(n|0,c|0,1,0)|0;c=G()|0;i=e+(m<<3)|0;l=i;j=b[l>>2]|0;l=b[l+4>>2]|0}while(!((j|0)==0&(l|0)==0))}if(!((o|0)==0&(p|0)==0)){Mb(o,p,I)|0;if(Bc(a,J,I)|0){n=gd(g|0,h|0,1,0)|0;h=G()|0;c=i;b[c>>2]=o;b[c+4>>2]=p;g=z+(g<<3)|0;b[g>>2]=o;b[g+4>>2]=p;g=n}i=g;j=h}else{i=g;j=h}}else{i=g;j=h}while(0);q=q+1|0;if(q>>>0>=7)break;else{g=i;h=j}}r=gd(r|0,s|0,1,0)|0;s=G()|0;t=gd(t|0,u|0,1,0)|0;u=G()|0;h=F;g=b[h>>2]|0;h=b[h+4>>2]|0;if(!((u|0)<(h|0)|(u|0)==(h|0)&t>>>0>>0))break;else{g=i;h=j}}if((h|0)>0|(h|0)==0&g>>>0>0){g=0;h=0;do{u=y+(g<<3)|0;b[u>>2]=0;b[u+4>>2]=0;g=gd(g|0,h|0,1,0)|0;h=G()|0;u=F;t=b[u+4>>2]|0}while((h|0)<(t|0)|((h|0)==(t|0)?g>>>0<(b[u>>2]|0)>>>0:0))}u=F;b[u>>2]=i;b[u+4>>2]=j;if((j|0)>0|(j|0)==0&i>>>0>0){q=f;r=x;s=C;t=w;u=z;f=v;x=d;w=A;v=q;d=r;C=B;B=s;A=t;z=y;y=u}else break c}ed(A);ed(B);ed(J);d=1;break a}else d=j;while(0);ed(J);ed(f);ed(d);d=0}else{ed(f);ed(j);ed(J)}while(0);J=d;S=K;return J|0}function ja(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;l=S;S=S+176|0;j=l;if((c|0)<1){Vc(d,0,0);k=0;S=l;return k|0}i=a;i=qd(b[i>>2]|0,b[i+4>>2]|0,52)|0;G()|0;Vc(d,(c|0)>6?c:6,i&15);i=0;while(1){e=a+(i<<3)|0;e=Nb(b[e>>2]|0,b[e+4>>2]|0,j)|0;if(e|0)break;e=b[j>>2]|0;if((e|0)>0){h=0;do{g=j+8+(h<<4)|0;h=h+1|0;e=j+8+(((h|0)%(e|0)|0)<<4)|0;f=_c(d,e,g)|0;if(!f)Zc(d,g,e)|0;else Yc(d,f)|0;e=b[j>>2]|0}while((h|0)<(e|0))}i=i+1|0;if((i|0)>=(c|0)){e=0;k=13;break}}if((k|0)==13){S=l;return e|0}Wc(d);k=e;S=l;return k|0}function ka(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0;g=S;S=S+32|0;e=g;f=g+16|0;a=ja(a,c,f)|0;if(a|0){f=a;S=g;return f|0}b[d>>2]=0;b[d+4>>2]=0;b[d+8>>2]=0;a=Xc(f)|0;if(a|0)do{c=lc(d)|0;do{mc(c,a)|0;h=a+16|0;b[e>>2]=b[h>>2];b[e+4>>2]=b[h+4>>2];b[e+8>>2]=b[h+8>>2];b[e+12>>2]=b[h+12>>2];Yc(f,a)|0;a=$c(f,e)|0}while((a|0)!=0);a=Xc(f)|0}while((a|0)!=0);if(oc(d)|0){h=1;S=g;return h|0}Wc(f);h=0;S=g;return h|0}function la(a){a=a|0;if(a>>>0>121){a=0;return a|0}a=b[7696+(a*28|0)+16>>2]|0;return a|0}function ma(a){a=a|0;return (a|0)==4|(a|0)==117|0}function na(a){a=a|0;return b[11120+((b[a>>2]|0)*216|0)+((b[a+4>>2]|0)*72|0)+((b[a+8>>2]|0)*24|0)+(b[a+12>>2]<<3)>>2]|0}function oa(a){a=a|0;return b[11120+((b[a>>2]|0)*216|0)+((b[a+4>>2]|0)*72|0)+((b[a+8>>2]|0)*24|0)+(b[a+12>>2]<<3)+4>>2]|0}function pa(a,c){a=a|0;c=c|0;a=7696+(a*28|0)|0;b[c>>2]=b[a>>2];b[c+4>>2]=b[a+4>>2];b[c+8>>2]=b[a+8>>2];b[c+12>>2]=b[a+12>>2];return}function qa(a,c){a=a|0;c=c|0;var d=0,e=0;if(c>>>0>20){c=-1;return c|0}do if((b[11120+(c*216|0)>>2]|0)!=(a|0))if((b[11120+(c*216|0)+8>>2]|0)!=(a|0))if((b[11120+(c*216|0)+16>>2]|0)!=(a|0))if((b[11120+(c*216|0)+24>>2]|0)!=(a|0))if((b[11120+(c*216|0)+32>>2]|0)!=(a|0))if((b[11120+(c*216|0)+40>>2]|0)!=(a|0))if((b[11120+(c*216|0)+48>>2]|0)!=(a|0))if((b[11120+(c*216|0)+56>>2]|0)!=(a|0))if((b[11120+(c*216|0)+64>>2]|0)!=(a|0))if((b[11120+(c*216|0)+72>>2]|0)!=(a|0))if((b[11120+(c*216|0)+80>>2]|0)!=(a|0))if((b[11120+(c*216|0)+88>>2]|0)!=(a|0))if((b[11120+(c*216|0)+96>>2]|0)!=(a|0))if((b[11120+(c*216|0)+104>>2]|0)!=(a|0))if((b[11120+(c*216|0)+112>>2]|0)!=(a|0))if((b[11120+(c*216|0)+120>>2]|0)!=(a|0))if((b[11120+(c*216|0)+128>>2]|0)!=(a|0))if((b[11120+(c*216|0)+136>>2]|0)==(a|0)){a=2;d=1;e=2}else{if((b[11120+(c*216|0)+144>>2]|0)==(a|0)){a=0;d=2;e=0;break}if((b[11120+(c*216|0)+152>>2]|0)==(a|0)){a=0;d=2;e=1;break}if((b[11120+(c*216|0)+160>>2]|0)==(a|0)){a=0;d=2;e=2;break}if((b[11120+(c*216|0)+168>>2]|0)==(a|0)){a=1;d=2;e=0;break}if((b[11120+(c*216|0)+176>>2]|0)==(a|0)){a=1;d=2;e=1;break}if((b[11120+(c*216|0)+184>>2]|0)==(a|0)){a=1;d=2;e=2;break}if((b[11120+(c*216|0)+192>>2]|0)==(a|0)){a=2;d=2;e=0;break}if((b[11120+(c*216|0)+200>>2]|0)==(a|0)){a=2;d=2;e=1;break}if((b[11120+(c*216|0)+208>>2]|0)==(a|0)){a=2;d=2;e=2;break}else a=-1;return a|0}else{a=2;d=1;e=1}else{a=2;d=1;e=0}else{a=1;d=1;e=2}else{a=1;d=1;e=1}else{a=1;d=1;e=0}else{a=0;d=1;e=2}else{a=0;d=1;e=1}else{a=0;d=1;e=0}else{a=2;d=0;e=2}else{a=2;d=0;e=1}else{a=2;d=0;e=0}else{a=1;d=0;e=2}else{a=1;d=0;e=1}else{a=1;d=0;e=0}else{a=0;d=0;e=2}else{a=0;d=0;e=1}else{a=0;d=0;e=0}while(0);c=b[11120+(c*216|0)+(d*72|0)+(a*24|0)+(e<<3)+4>>2]|0;return c|0}function ra(a,c){a=a|0;c=c|0;if((b[7696+(a*28|0)+20>>2]|0)==(c|0)){c=1;return c|0}c=(b[7696+(a*28|0)+24>>2]|0)==(c|0);return c|0}function sa(a,c){a=a|0;c=c|0;return b[848+(a*28|0)+(c<<2)>>2]|0}function ta(a,c){a=a|0;c=c|0;if((b[848+(a*28|0)>>2]|0)==(c|0)){c=0;return c|0}if((b[848+(a*28|0)+4>>2]|0)==(c|0)){c=1;return c|0}if((b[848+(a*28|0)+8>>2]|0)==(c|0)){c=2;return c|0}if((b[848+(a*28|0)+12>>2]|0)==(c|0)){c=3;return c|0}if((b[848+(a*28|0)+16>>2]|0)==(c|0)){c=4;return c|0}if((b[848+(a*28|0)+20>>2]|0)==(c|0)){c=5;return c|0}else return ((b[848+(a*28|0)+24>>2]|0)==(c|0)?6:7)|0;return 0}function ua(){return 122}function va(a){a=a|0;var c=0,d=0,e=0;c=0;do{rd(c|0,0,45)|0;e=G()|0|134225919;d=a+(c<<3)|0;b[d>>2]=-1;b[d+4>>2]=e;c=c+1|0}while((c|0)!=122);return 0}function wa(a){a=a|0;return +e[a+16>>3]<+e[a+24>>3]|0}function xa(a,b){a=a|0;b=b|0;var c=0.0,d=0.0,f=0.0;c=+e[b>>3];if(!(c>=+e[a+8>>3])){b=0;return b|0}if(!(c<=+e[a>>3])){b=0;return b|0}d=+e[a+16>>3];c=+e[a+24>>3];f=+e[b+8>>3];b=f>=c;a=f<=d&1;if(d>2]=0;h=h+4|0}while((h|0)<(j|0));Rb(c,g)|0;j=b[g>>2]|0;g=b[g+4>>2]|0;Mb(j,g,d)|0;Nb(j,g,f)|0;k=+Xb(d,f+8|0);e[d>>3]=+e[a>>3];g=d+8|0;e[g>>3]=+e[a+16>>3];e[f>>3]=+e[a+8>>3];j=f+8|0;e[j>>3]=+e[a+24>>3];l=+Xb(d,f);k=+A(+(l*l/+sd(+(+q(+((+e[g>>3]-+e[j>>3])/(+e[d>>3]-+e[f>>3])))),3.0)/(k*(k*2.59807621135)*.8)));j=~~k>>>0;g=+q(k)>=1.0?(k>0.0?~~+C(+p(k/4294967296.0),4294967295.0)>>>0:~~+A((k-+(~~k>>>0))/4294967296.0)>>>0):0;h=(j|0)==0&(g|0)==0;F((h?0:g)|0);S=i;return (h?1:j)|0}function za(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0.0;i=S;S=S+288|0;e=i+264|0;f=i+96|0;g=i;h=g;j=h+96|0;do{b[h>>2]=0;h=h+4|0}while((h|0)<(j|0));Rb(d,g)|0;j=g;g=b[j>>2]|0;j=b[j+4>>2]|0;Mb(g,j,e)|0;Nb(g,j,f)|0;k=+Xb(e,f+8|0);k=+A(+(+Xb(a,c)/(k*2.0)));j=~~k>>>0;g=+q(k)>=1.0?(k>0.0?~~+C(+p(k/4294967296.0),4294967295.0)>>>0:~~+A((k-+(~~k>>>0))/4294967296.0)>>>0):0;h=(j|0)==0&(g|0)==0;F((h?0:g)|0);S=i;return (h?1:j)|0}function Aa(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;b[a>>2]=c;b[a+4>>2]=d;b[a+8>>2]=e;return}function Ba(a,c){a=a|0;c=c|0;var d=0,f=0,g=0,h=0,i=0.0,j=0.0,k=0.0,l=0.0,m=0,n=0,o=0.0;n=c+8|0;b[n>>2]=0;k=+e[a>>3];i=+q(+k);l=+e[a+8>>3];j=+q(+l)/.8660254037844386;i=i+j*.5;d=~~i;a=~~j;i=i-+(d|0);j=j-+(a|0);do if(i<.5)if(i<.3333333333333333){b[c>>2]=d;if(j<(i+1.0)*.5){b[c+4>>2]=a;break}else{a=a+1|0;b[c+4>>2]=a;break}}else{o=1.0-i;a=(!(j>2]=a;if(o<=j&j>2]=d;break}else{b[c>>2]=d;break}}else{if(!(i<.6666666666666666)){d=d+1|0;b[c>>2]=d;if(j>2]=a;break}else{a=a+1|0;b[c+4>>2]=a;break}}if(j<1.0-i){b[c+4>>2]=a;if(i*2.0+-1.0>2]=d;break}}else{a=a+1|0;b[c+4>>2]=a}d=d+1|0;b[c>>2]=d}while(0);do if(k<0.0)if(!(a&1)){m=(a|0)/2|0;m=hd(d|0,((d|0)<0)<<31>>31|0,m|0,((m|0)<0)<<31>>31|0)|0;d=~~(+(d|0)-(+(m>>>0)+4294967296.0*+(G()|0))*2.0);b[c>>2]=d;break}else{m=(a+1|0)/2|0;m=hd(d|0,((d|0)<0)<<31>>31|0,m|0,((m|0)<0)<<31>>31|0)|0;d=~~(+(d|0)-((+(m>>>0)+4294967296.0*+(G()|0))*2.0+1.0));b[c>>2]=d;break}while(0);m=c+4|0;if(l<0.0){d=d-((a<<1|1|0)/2|0)|0;b[c>>2]=d;a=0-a|0;b[m>>2]=a}f=a-d|0;if((d|0)<0){g=0-d|0;b[m>>2]=f;b[n>>2]=g;b[c>>2]=0;a=f;d=0}else g=0;if((a|0)<0){d=d-a|0;b[c>>2]=d;g=g-a|0;b[n>>2]=g;b[m>>2]=0;a=0}h=d-g|0;f=a-g|0;if((g|0)<0){b[c>>2]=h;b[m>>2]=f;b[n>>2]=0;a=f;d=h;g=0}f=(a|0)<(d|0)?a:d;f=(g|0)<(f|0)?g:f;if((f|0)<=0)return;b[c>>2]=d-f;b[m>>2]=a-f;b[n>>2]=g-f;return}function Ca(a){a=a|0;var c=0,d=0,e=0,f=0,g=0,h=0;c=b[a>>2]|0;h=a+4|0;d=b[h>>2]|0;if((c|0)<0){d=d-c|0;b[h>>2]=d;g=a+8|0;b[g>>2]=(b[g>>2]|0)-c;b[a>>2]=0;c=0}if((d|0)<0){c=c-d|0;b[a>>2]=c;g=a+8|0;f=(b[g>>2]|0)-d|0;b[g>>2]=f;b[h>>2]=0;d=0}else{f=a+8|0;g=f;f=b[f>>2]|0}if((f|0)<0){c=c-f|0;b[a>>2]=c;d=d-f|0;b[h>>2]=d;b[g>>2]=0;f=0}e=(d|0)<(c|0)?d:c;e=(f|0)<(e|0)?f:e;if((e|0)<=0)return;b[a>>2]=c-e;b[h>>2]=d-e;b[g>>2]=f-e;return}function Da(a,c){a=a|0;c=c|0;var d=0.0,f=0;f=b[a+8>>2]|0;d=+((b[a+4>>2]|0)-f|0);e[c>>3]=+((b[a>>2]|0)-f|0)-d*.5;e[c+8>>3]=d*.8660254037844386;return}function Ea(a,c,d){a=a|0;c=c|0;d=d|0;b[d>>2]=(b[c>>2]|0)+(b[a>>2]|0);b[d+4>>2]=(b[c+4>>2]|0)+(b[a+4>>2]|0);b[d+8>>2]=(b[c+8>>2]|0)+(b[a+8>>2]|0);return}function Fa(a,c,d){a=a|0;c=c|0;d=d|0;b[d>>2]=(b[a>>2]|0)-(b[c>>2]|0);b[d+4>>2]=(b[a+4>>2]|0)-(b[c+4>>2]|0);b[d+8>>2]=(b[a+8>>2]|0)-(b[c+8>>2]|0);return}function Ga(a,c){a=a|0;c=c|0;var d=0,e=0;d=B(b[a>>2]|0,c)|0;b[a>>2]=d;d=a+4|0;e=B(b[d>>2]|0,c)|0;b[d>>2]=e;a=a+8|0;c=B(b[a>>2]|0,c)|0;b[a>>2]=c;return}function Ha(a){a=a|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0;h=b[a>>2]|0;i=(h|0)<0;e=(b[a+4>>2]|0)-(i?h:0)|0;g=(e|0)<0;f=(g?0-e|0:0)+((b[a+8>>2]|0)-(i?h:0))|0;d=(f|0)<0;a=d?0:f;c=(g?0:e)-(d?f:0)|0;f=(i?0:h)-(g?e:0)-(d?f:0)|0;d=(c|0)<(f|0)?c:f;d=(a|0)<(d|0)?a:d;e=(d|0)>0;a=a-(e?d:0)|0;c=c-(e?d:0)|0;a:do switch(f-(e?d:0)|0){case 0:switch(c|0){case 0:{i=(a|0)==0?0:(a|0)==1?1:7;return i|0}case 1:{i=(a|0)==0?2:(a|0)==1?3:7;return i|0}default:break a}case 1:switch(c|0){case 0:{i=(a|0)==0?4:(a|0)==1?5:7;return i|0}case 1:{if(!a)a=6;else break a;return a|0}default:break a}default:{}}while(0);i=7;return i|0}function Ia(a){a=a|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0;h=a+8|0;d=b[h>>2]|0;c=(b[a>>2]|0)-d|0;i=a+4|0;d=(b[i>>2]|0)-d|0;e=cd(+((c*3|0)-d|0)/7.0)|0;b[a>>2]=e;c=cd(+((d<<1)+c|0)/7.0)|0;b[i>>2]=c;b[h>>2]=0;d=c-e|0;if((e|0)<0){g=0-e|0;b[i>>2]=d;b[h>>2]=g;b[a>>2]=0;c=d;e=0;d=g}else d=0;if((c|0)<0){e=e-c|0;b[a>>2]=e;d=d-c|0;b[h>>2]=d;b[i>>2]=0;c=0}g=e-d|0;f=c-d|0;if((d|0)<0){b[a>>2]=g;b[i>>2]=f;b[h>>2]=0;c=f;f=g;d=0}else f=e;e=(c|0)<(f|0)?c:f;e=(d|0)<(e|0)?d:e;if((e|0)<=0)return;b[a>>2]=f-e;b[i>>2]=c-e;b[h>>2]=d-e;return}function Ja(a){a=a|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0;h=a+8|0;d=b[h>>2]|0;c=(b[a>>2]|0)-d|0;i=a+4|0;d=(b[i>>2]|0)-d|0;e=cd(+((c<<1)+d|0)/7.0)|0;b[a>>2]=e;c=cd(+((d*3|0)-c|0)/7.0)|0;b[i>>2]=c;b[h>>2]=0;d=c-e|0;if((e|0)<0){g=0-e|0;b[i>>2]=d;b[h>>2]=g;b[a>>2]=0;c=d;e=0;d=g}else d=0;if((c|0)<0){e=e-c|0;b[a>>2]=e;d=d-c|0;b[h>>2]=d;b[i>>2]=0;c=0}g=e-d|0;f=c-d|0;if((d|0)<0){b[a>>2]=g;b[i>>2]=f;b[h>>2]=0;c=f;f=g;d=0}else f=e;e=(c|0)<(f|0)?c:f;e=(d|0)<(e|0)?d:e;if((e|0)<=0)return;b[a>>2]=f-e;b[i>>2]=c-e;b[h>>2]=d-e;return}function Ka(a){a=a|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0;c=b[a>>2]|0;h=a+4|0;d=b[h>>2]|0;i=a+8|0;e=b[i>>2]|0;f=d+(c*3|0)|0;b[a>>2]=f;d=e+(d*3|0)|0;b[h>>2]=d;c=(e*3|0)+c|0;b[i>>2]=c;e=d-f|0;if((f|0)<0){c=c-f|0;b[h>>2]=e;b[i>>2]=c;b[a>>2]=0;d=e;e=0}else e=f;if((d|0)<0){e=e-d|0;b[a>>2]=e;c=c-d|0;b[i>>2]=c;b[h>>2]=0;d=0}g=e-c|0;f=d-c|0;if((c|0)<0){b[a>>2]=g;b[h>>2]=f;b[i>>2]=0;e=g;c=0}else f=d;d=(f|0)<(e|0)?f:e;d=(c|0)<(d|0)?c:d;if((d|0)<=0)return;b[a>>2]=e-d;b[h>>2]=f-d;b[i>>2]=c-d;return}function La(a){a=a|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0;f=b[a>>2]|0;h=a+4|0;c=b[h>>2]|0;i=a+8|0;d=b[i>>2]|0;e=(c*3|0)+f|0;f=d+(f*3|0)|0;b[a>>2]=f;b[h>>2]=e;c=(d*3|0)+c|0;b[i>>2]=c;d=e-f|0;if((f|0)<0){c=c-f|0;b[h>>2]=d;b[i>>2]=c;b[a>>2]=0;f=0}else d=e;if((d|0)<0){f=f-d|0;b[a>>2]=f;c=c-d|0;b[i>>2]=c;b[h>>2]=0;d=0}g=f-c|0;e=d-c|0;if((c|0)<0){b[a>>2]=g;b[h>>2]=e;b[i>>2]=0;f=g;c=0}else e=d;d=(e|0)<(f|0)?e:f;d=(c|0)<(d|0)?c:d;if((d|0)<=0)return;b[a>>2]=f-d;b[h>>2]=e-d;b[i>>2]=c-d;return}function Ma(a,c){a=a|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0;if((c+-1|0)>>>0>=6)return;f=(b[15440+(c*12|0)>>2]|0)+(b[a>>2]|0)|0;b[a>>2]=f;i=a+4|0;e=(b[15440+(c*12|0)+4>>2]|0)+(b[i>>2]|0)|0;b[i>>2]=e;h=a+8|0;c=(b[15440+(c*12|0)+8>>2]|0)+(b[h>>2]|0)|0;b[h>>2]=c;d=e-f|0;if((f|0)<0){c=c-f|0;b[i>>2]=d;b[h>>2]=c;b[a>>2]=0;e=0}else{d=e;e=f}if((d|0)<0){e=e-d|0;b[a>>2]=e;c=c-d|0;b[h>>2]=c;b[i>>2]=0;d=0}g=e-c|0;f=d-c|0;if((c|0)<0){b[a>>2]=g;b[i>>2]=f;b[h>>2]=0;e=g;c=0}else f=d;d=(f|0)<(e|0)?f:e;d=(c|0)<(d|0)?c:d;if((d|0)<=0)return;b[a>>2]=e-d;b[i>>2]=f-d;b[h>>2]=c-d;return}function Na(a){a=a|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0;f=b[a>>2]|0;h=a+4|0;c=b[h>>2]|0;i=a+8|0;d=b[i>>2]|0;e=c+f|0;f=d+f|0;b[a>>2]=f;b[h>>2]=e;c=d+c|0;b[i>>2]=c;d=e-f|0;if((f|0)<0){c=c-f|0;b[h>>2]=d;b[i>>2]=c;b[a>>2]=0;e=0}else{d=e;e=f}if((d|0)<0){e=e-d|0;b[a>>2]=e;c=c-d|0;b[i>>2]=c;b[h>>2]=0;d=0}g=e-c|0;f=d-c|0;if((c|0)<0){b[a>>2]=g;b[h>>2]=f;b[i>>2]=0;e=g;c=0}else f=d;d=(f|0)<(e|0)?f:e;d=(c|0)<(d|0)?c:d;if((d|0)<=0)return;b[a>>2]=e-d;b[h>>2]=f-d;b[i>>2]=c-d;return}function Oa(a){a=a|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0;c=b[a>>2]|0;h=a+4|0;e=b[h>>2]|0;i=a+8|0;d=b[i>>2]|0;f=e+c|0;b[a>>2]=f;e=d+e|0;b[h>>2]=e;c=d+c|0;b[i>>2]=c;d=e-f|0;if((f|0)<0){c=c-f|0;b[h>>2]=d;b[i>>2]=c;b[a>>2]=0;e=0}else{d=e;e=f}if((d|0)<0){e=e-d|0;b[a>>2]=e;c=c-d|0;b[i>>2]=c;b[h>>2]=0;d=0}g=e-c|0;f=d-c|0;if((c|0)<0){b[a>>2]=g;b[h>>2]=f;b[i>>2]=0;e=g;c=0}else f=d;d=(f|0)<(e|0)?f:e;d=(c|0)<(d|0)?c:d;if((d|0)<=0)return;b[a>>2]=e-d;b[h>>2]=f-d;b[i>>2]=c-d;return}function Pa(a){a=a|0;switch(a|0){case 1:{a=5;break}case 5:{a=4;break}case 4:{a=6;break}case 6:{a=2;break}case 2:{a=3;break}case 3:{a=1;break}default:{}}return a|0}function Qa(a){a=a|0;switch(a|0){case 1:{a=3;break}case 3:{a=2;break}case 2:{a=6;break}case 6:{a=4;break}case 4:{a=5;break}case 5:{a=1;break}default:{}}return a|0}function Ra(a){a=a|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0;c=b[a>>2]|0;h=a+4|0;d=b[h>>2]|0;i=a+8|0;e=b[i>>2]|0;f=d+(c<<1)|0;b[a>>2]=f;d=e+(d<<1)|0;b[h>>2]=d;c=(e<<1)+c|0;b[i>>2]=c;e=d-f|0;if((f|0)<0){c=c-f|0;b[h>>2]=e;b[i>>2]=c;b[a>>2]=0;d=e;e=0}else e=f;if((d|0)<0){e=e-d|0;b[a>>2]=e;c=c-d|0;b[i>>2]=c;b[h>>2]=0;d=0}g=e-c|0;f=d-c|0;if((c|0)<0){b[a>>2]=g;b[h>>2]=f;b[i>>2]=0;e=g;c=0}else f=d;d=(f|0)<(e|0)?f:e;d=(c|0)<(d|0)?c:d;if((d|0)<=0)return;b[a>>2]=e-d;b[h>>2]=f-d;b[i>>2]=c-d;return}function Sa(a){a=a|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0;f=b[a>>2]|0;h=a+4|0;c=b[h>>2]|0;i=a+8|0;d=b[i>>2]|0;e=(c<<1)+f|0;f=d+(f<<1)|0;b[a>>2]=f;b[h>>2]=e;c=(d<<1)+c|0;b[i>>2]=c;d=e-f|0;if((f|0)<0){c=c-f|0;b[h>>2]=d;b[i>>2]=c;b[a>>2]=0;f=0}else d=e;if((d|0)<0){f=f-d|0;b[a>>2]=f;c=c-d|0;b[i>>2]=c;b[h>>2]=0;d=0}g=f-c|0;e=d-c|0;if((c|0)<0){b[a>>2]=g;b[h>>2]=e;b[i>>2]=0;f=g;c=0}else e=d;d=(e|0)<(f|0)?e:f;d=(c|0)<(d|0)?c:d;if((d|0)<=0)return;b[a>>2]=f-d;b[h>>2]=e-d;b[i>>2]=c-d;return}function Ta(a,c){a=a|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0;h=(b[a>>2]|0)-(b[c>>2]|0)|0;i=(h|0)<0;e=(b[a+4>>2]|0)-(b[c+4>>2]|0)-(i?h:0)|0;g=(e|0)<0;f=(i?0-h|0:0)+(b[a+8>>2]|0)-(b[c+8>>2]|0)+(g?0-e|0:0)|0;a=(f|0)<0;c=a?0:f;d=(g?0:e)-(a?f:0)|0;f=(i?0:h)-(g?e:0)-(a?f:0)|0;a=(d|0)<(f|0)?d:f;a=(c|0)<(a|0)?c:a;e=(a|0)>0;c=c-(e?a:0)|0;d=d-(e?a:0)|0;a=f-(e?a:0)|0;a=(a|0)>-1?a:0-a|0;d=(d|0)>-1?d:0-d|0;c=(c|0)>-1?c:0-c|0;c=(d|0)>(c|0)?d:c;return ((a|0)>(c|0)?a:c)|0}function Ua(a,c){a=a|0;c=c|0;var d=0;d=b[a+8>>2]|0;b[c>>2]=(b[a>>2]|0)-d;b[c+4>>2]=(b[a+4>>2]|0)-d;return}function Va(a,c){a=a|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0;e=b[a>>2]|0;b[c>>2]=e;a=b[a+4>>2]|0;h=c+4|0;b[h>>2]=a;i=c+8|0;b[i>>2]=0;d=a-e|0;if((e|0)<0){a=0-e|0;b[h>>2]=d;b[i>>2]=a;b[c>>2]=0;e=0}else{d=a;a=0}if((d|0)<0){e=e-d|0;b[c>>2]=e;a=a-d|0;b[i>>2]=a;b[h>>2]=0;d=0}g=e-a|0;f=d-a|0;if((a|0)<0){b[c>>2]=g;b[h>>2]=f;b[i>>2]=0;d=f;f=g;a=0}else f=e;e=(d|0)<(f|0)?d:f;e=(a|0)<(e|0)?a:e;if((e|0)<=0)return;b[c>>2]=f-e;b[h>>2]=d-e;b[i>>2]=a-e;return}function Wa(a){a=a|0;var c=0,d=0,e=0,f=0;c=a+8|0;f=b[c>>2]|0;d=f-(b[a>>2]|0)|0;b[a>>2]=d;e=a+4|0;a=(b[e>>2]|0)-f|0;b[e>>2]=a;b[c>>2]=0-(a+d);return}function Xa(a){a=a|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0;d=b[a>>2]|0;c=0-d|0;b[a>>2]=c;h=a+8|0;b[h>>2]=0;i=a+4|0;e=b[i>>2]|0;f=e+d|0;if((d|0)>0){b[i>>2]=f;b[h>>2]=d;b[a>>2]=0;c=0;e=f}else d=0;if((e|0)<0){g=c-e|0;b[a>>2]=g;d=d-e|0;b[h>>2]=d;b[i>>2]=0;f=g-d|0;c=0-d|0;if((d|0)<0){b[a>>2]=f;b[i>>2]=c;b[h>>2]=0;e=c;d=0}else{e=0;f=g}}else f=c;c=(e|0)<(f|0)?e:f;c=(d|0)<(c|0)?d:c;if((c|0)<=0)return;b[a>>2]=f-c;b[i>>2]=e-c;b[h>>2]=d-c;return}function Ya(a,c,d,e,f){a=a|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0;k=S;S=S+64|0;j=k;i=k+56|0;if(!(0==0&(c&2013265920|0)==134217728&(0==0&(e&2013265920|0)==134217728))){f=5;S=k;return f|0}if((a|0)==(d|0)&(c|0)==(e|0)){b[f>>2]=0;f=0;S=k;return f|0}g=qd(a|0,c|0,52)|0;G()|0;g=g&15;h=qd(d|0,e|0,52)|0;G()|0;if((g|0)!=(h&15|0)){f=12;S=k;return f|0}h=g+-1|0;if(g>>>0>1){sb(a,c,h,j)|0;sb(d,e,h,i)|0;h=j;do if((b[h>>2]|0)==(b[i>>2]|0)?(b[h+4>>2]|0)==(b[i+4>>2]|0):0){i=(g^15)*3|0;h=qd(a|0,c|0,i|0)|0;G()|0;h=h&7;i=qd(d|0,e|0,i|0)|0;G()|0;i=i&7;if((!((h|0)==0|(i|0)==0)?(b[15536+(h<<2)>>2]|0)!=(i|0):0)?(b[15568+(h<<2)>>2]|0)!=(i|0):0)break;b[f>>2]=1;f=0;S=k;return f|0}while(0)}g=j;h=g+56|0;do{b[g>>2]=0;g=g+4|0}while((g|0)<(h|0));$(a,c,1,j)|0;c=j;if(((((!((b[c>>2]|0)==(d|0)?(b[c+4>>2]|0)==(e|0):0)?(c=j+8|0,!((b[c>>2]|0)==(d|0)?(b[c+4>>2]|0)==(e|0):0)):0)?(c=j+16|0,!((b[c>>2]|0)==(d|0)?(b[c+4>>2]|0)==(e|0):0)):0)?(c=j+24|0,!((b[c>>2]|0)==(d|0)?(b[c+4>>2]|0)==(e|0):0)):0)?(c=j+32|0,!((b[c>>2]|0)==(d|0)?(b[c+4>>2]|0)==(e|0):0)):0)?(c=j+40|0,!((b[c>>2]|0)==(d|0)?(b[c+4>>2]|0)==(e|0):0)):0){g=j+48|0;g=((b[g>>2]|0)==(d|0)?(b[g+4>>2]|0)==(e|0):0)&1}else g=1;b[f>>2]=g;f=0;S=k;return f|0}function Za(a,c,d,e,f){a=a|0;c=c|0;d=d|0;e=e|0;f=f|0;d=ea(a,c,d,e)|0;if((d|0)==7){f=11;return f|0}e=rd(d|0,0,56)|0;c=c&-2130706433|(G()|0)|268435456;b[f>>2]=a|e;b[f+4>>2]=c;f=0;return f|0}function _a(a,c,d){a=a|0;c=c|0;d=d|0;if(!(0==0&(c&2013265920|0)==268435456)){d=6;return d|0}b[d>>2]=a;b[d+4>>2]=c&-2130706433|134217728;d=0;return d|0}function $a(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,f=0,g=0;f=S;S=S+16|0;e=f;b[e>>2]=0;if(!(0==0&(c&2013265920|0)==268435456)){e=6;S=f;return e|0}g=qd(a|0,c|0,56)|0;G()|0;e=da(a,c&-2130706433|134217728,g&7,e,d)|0;S=f;return e|0}function ab(a,b){a=a|0;b=b|0;var c=0;c=qd(a|0,b|0,56)|0;G()|0;switch(c&7){case 0:case 7:{c=0;return c|0}default:{}}c=b&-2130706433|134217728;if(!(0==0&(b&2013265920|0)==268435456)){c=0;return c|0}if(0==0&(b&117440512|0)==16777216&(ub(a,c)|0)!=0){c=0;return c|0}c=rb(a,c)|0;return c|0}function bb(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0;f=S;S=S+16|0;e=f;if(!(0==0&(c&2013265920|0)==268435456)){e=6;S=f;return e|0}g=c&-2130706433|134217728;h=d;b[h>>2]=a;b[h+4>>2]=g;b[e>>2]=0;c=qd(a|0,c|0,56)|0;G()|0;e=da(a,g,c&7,e,d+8|0)|0;S=f;return e|0}function cb(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,f=0;f=(ub(a,c)|0)==0;c=c&-2130706433;e=d;b[e>>2]=f?a:0;b[e+4>>2]=f?c|285212672:0;e=d+8|0;b[e>>2]=a;b[e+4>>2]=c|301989888;e=d+16|0;b[e>>2]=a;b[e+4>>2]=c|318767104;e=d+24|0;b[e>>2]=a;b[e+4>>2]=c|335544320;e=d+32|0;b[e>>2]=a;b[e+4>>2]=c|352321536;d=d+40|0;b[d>>2]=a;b[d+4>>2]=c|369098752;return 0}function db(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;i=S;S=S+16|0;g=i;h=c&-2130706433|134217728;if(!(0==0&(c&2013265920|0)==268435456)){h=6;S=i;return h|0}f=qd(a|0,c|0,56)|0;G()|0;f=Pc(a,h,f&7)|0;if((f|0)==-1){b[d>>2]=0;h=6;S=i;return h|0}e=Lb(a,h,g)|0;do if(!e){e=qd(a|0,c|0,52)|0;G()|0;e=e&15;if(!(ub(a,h)|0)){nb(g,e,f,2,d);e=0;break}else{jb(g,e,f,2,d);e=0;break}}while(0);h=e;S=i;return h|0}function eb(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=S;S=S+16|0;e=d;fb(a,b,c,e);Ba(e,c+4|0);S=d;return}function fb(a,c,d,f){a=a|0;c=c|0;d=d|0;f=f|0;var g=0.0,h=0.0,i=0.0,j=0,k=0;j=S;S=S+16|0;k=j;gb(a,d,k);h=+w(+(1.0-+e[k>>3]*.5));if(h<1.0e-16){b[f>>2]=0;b[f+4>>2]=0;b[f+8>>2]=0;b[f+12>>2]=0;S=j;return}k=b[d>>2]|0;g=+e[15920+(k*24|0)>>3];g=+Ub(g-+Ub(+Zb(15600+(k<<4)|0,a)));if(!(Ib(c)|0))i=g;else i=+Ub(g+-.3334731722518321);g=+v(+h)/.381966011250105;if((c|0)>0){a=0;do{g=g*2.6457513110645907;a=a+1|0}while((a|0)!=(c|0))}h=+t(+i)*g;e[f>>3]=h;i=+u(+i)*g;e[f+8>>3]=i;S=j;return}function gb(a,c,d){a=a|0;c=c|0;d=d|0;var f=0.0,g=0,h=0;h=S;S=S+32|0;g=h;Oc(a,g);b[c>>2]=0;e[d>>3]=5.0;f=+Nc(16400,g);if(f<+e[d>>3]){b[c>>2]=0;e[d>>3]=f}f=+Nc(16424,g);if(f<+e[d>>3]){b[c>>2]=1;e[d>>3]=f}f=+Nc(16448,g);if(f<+e[d>>3]){b[c>>2]=2;e[d>>3]=f}f=+Nc(16472,g);if(f<+e[d>>3]){b[c>>2]=3;e[d>>3]=f}f=+Nc(16496,g);if(f<+e[d>>3]){b[c>>2]=4;e[d>>3]=f}f=+Nc(16520,g);if(f<+e[d>>3]){b[c>>2]=5;e[d>>3]=f}f=+Nc(16544,g);if(f<+e[d>>3]){b[c>>2]=6;e[d>>3]=f}f=+Nc(16568,g);if(f<+e[d>>3]){b[c>>2]=7;e[d>>3]=f}f=+Nc(16592,g);if(f<+e[d>>3]){b[c>>2]=8;e[d>>3]=f}f=+Nc(16616,g);if(f<+e[d>>3]){b[c>>2]=9;e[d>>3]=f}f=+Nc(16640,g);if(f<+e[d>>3]){b[c>>2]=10;e[d>>3]=f}f=+Nc(16664,g);if(f<+e[d>>3]){b[c>>2]=11;e[d>>3]=f}f=+Nc(16688,g);if(f<+e[d>>3]){b[c>>2]=12;e[d>>3]=f}f=+Nc(16712,g);if(f<+e[d>>3]){b[c>>2]=13;e[d>>3]=f}f=+Nc(16736,g);if(f<+e[d>>3]){b[c>>2]=14;e[d>>3]=f}f=+Nc(16760,g);if(f<+e[d>>3]){b[c>>2]=15;e[d>>3]=f}f=+Nc(16784,g);if(f<+e[d>>3]){b[c>>2]=16;e[d>>3]=f}f=+Nc(16808,g);if(f<+e[d>>3]){b[c>>2]=17;e[d>>3]=f}f=+Nc(16832,g);if(f<+e[d>>3]){b[c>>2]=18;e[d>>3]=f}f=+Nc(16856,g);if(!(f<+e[d>>3])){S=h;return}b[c>>2]=19;e[d>>3]=f;S=h;return}function hb(a,c,d,f,g){a=a|0;c=c|0;d=d|0;f=f|0;g=g|0;var h=0.0,i=0.0;h=+Kc(a);if(h<1.0e-16){c=15600+(c<<4)|0;b[g>>2]=b[c>>2];b[g+4>>2]=b[c+4>>2];b[g+8>>2]=b[c+8>>2];b[g+12>>2]=b[c+12>>2];return}i=+z(+(+e[a+8>>3]),+(+e[a>>3]));if((d|0)>0){a=0;do{h=h/2.6457513110645907;a=a+1|0}while((a|0)!=(d|0))}if(!f){h=+y(+(h*.381966011250105));if(Ib(d)|0)i=+Ub(i+.3334731722518321)}else{h=h/3.0;d=(Ib(d)|0)==0;h=+y(+((d?h:h/2.6457513110645907)*.381966011250105))}_b(15600+(c<<4)|0,+Ub(+e[15920+(c*24|0)>>3]-i),h,g);return}function ib(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,f=0;e=S;S=S+16|0;f=e;Da(a+4|0,f);hb(f,b[a>>2]|0,c,0,d);S=e;return}function jb(a,c,d,f,g){a=a|0;c=c|0;d=d|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,I=0.0,J=0.0;G=S;S=S+272|0;h=G+256|0;u=G+240|0;D=G;E=G+224|0;F=G+208|0;v=G+176|0;w=G+160|0;x=G+192|0;y=G+144|0;z=G+128|0;A=G+112|0;B=G+96|0;C=G+80|0;b[h>>2]=c;b[u>>2]=b[a>>2];b[u+4>>2]=b[a+4>>2];b[u+8>>2]=b[a+8>>2];b[u+12>>2]=b[a+12>>2];kb(u,h,D);b[g>>2]=0;u=f+d+((f|0)==5&1)|0;if((u|0)<=(d|0)){S=G;return}k=b[h>>2]|0;l=E+4|0;m=v+4|0;n=d+5|0;o=16880+(k<<2)|0;p=16960+(k<<2)|0;q=z+8|0;r=A+8|0;s=B+8|0;t=F+4|0;j=d;a:while(1){i=D+(((j|0)%5|0)<<4)|0;b[F>>2]=b[i>>2];b[F+4>>2]=b[i+4>>2];b[F+8>>2]=b[i+8>>2];b[F+12>>2]=b[i+12>>2];do{}while((lb(F,k,0,1)|0)==2);if((j|0)>(d|0)&(Ib(c)|0)!=0){b[v>>2]=b[F>>2];b[v+4>>2]=b[F+4>>2];b[v+8>>2]=b[F+8>>2];b[v+12>>2]=b[F+12>>2];Da(l,w);f=b[v>>2]|0;h=b[17040+(f*80|0)+(b[E>>2]<<2)>>2]|0;b[v>>2]=b[18640+(f*80|0)+(h*20|0)>>2];i=b[18640+(f*80|0)+(h*20|0)+16>>2]|0;if((i|0)>0){a=0;do{Na(m);a=a+1|0}while((a|0)<(i|0))}i=18640+(f*80|0)+(h*20|0)+4|0;b[x>>2]=b[i>>2];b[x+4>>2]=b[i+4>>2];b[x+8>>2]=b[i+8>>2];Ga(x,(b[o>>2]|0)*3|0);Ea(m,x,m);Ca(m);Da(m,y);I=+(b[p>>2]|0);e[z>>3]=I*3.0;e[q>>3]=0.0;J=I*-1.5;e[A>>3]=J;e[r>>3]=I*2.598076211353316;e[B>>3]=J;e[s>>3]=I*-2.598076211353316;switch(b[17040+((b[v>>2]|0)*80|0)+(b[F>>2]<<2)>>2]|0){case 1:{a=A;f=z;break}case 3:{a=B;f=A;break}case 2:{a=z;f=B;break}default:{a=12;break a}}Lc(w,y,f,a,C);hb(C,b[v>>2]|0,k,1,g+8+(b[g>>2]<<4)|0);b[g>>2]=(b[g>>2]|0)+1}if((j|0)<(n|0)){Da(t,v);hb(v,b[F>>2]|0,k,1,g+8+(b[g>>2]<<4)|0);b[g>>2]=(b[g>>2]|0)+1};b[E>>2]=b[F>>2];b[E+4>>2]=b[F+4>>2];b[E+8>>2]=b[F+8>>2];b[E+12>>2]=b[F+12>>2];j=j+1|0;if((j|0)>=(u|0)){a=3;break}}if((a|0)==3){S=G;return}else if((a|0)==12)H(22416,22463,571,22473)}function kb(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;j=S;S=S+128|0;e=j+64|0;f=j;g=e;h=20240;i=g+60|0;do{b[g>>2]=b[h>>2];g=g+4|0;h=h+4|0}while((g|0)<(i|0));g=f;h=20304;i=g+60|0;do{b[g>>2]=b[h>>2];g=g+4|0;h=h+4|0}while((g|0)<(i|0));i=(Ib(b[c>>2]|0)|0)==0;e=i?e:f;f=a+4|0;Ra(f);Sa(f);if(Ib(b[c>>2]|0)|0){La(f);b[c>>2]=(b[c>>2]|0)+1}b[d>>2]=b[a>>2];c=d+4|0;Ea(f,e,c);Ca(c);b[d+16>>2]=b[a>>2];c=d+20|0;Ea(f,e+12|0,c);Ca(c);b[d+32>>2]=b[a>>2];c=d+36|0;Ea(f,e+24|0,c);Ca(c);b[d+48>>2]=b[a>>2];c=d+52|0;Ea(f,e+36|0,c);Ca(c);b[d+64>>2]=b[a>>2];d=d+68|0;Ea(f,e+48|0,d);Ca(d);S=j;return}function lb(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;p=S;S=S+32|0;n=p+12|0;i=p;o=a+4|0;m=b[16960+(c<<2)>>2]|0;l=(e|0)!=0;m=l?m*3|0:m;f=b[o>>2]|0;k=a+8|0;h=b[k>>2]|0;if(l){g=a+12|0;e=b[g>>2]|0;f=h+f+e|0;if((f|0)==(m|0)){o=1;S=p;return o|0}else j=g}else{j=a+12|0;e=b[j>>2]|0;f=h+f+e|0}if((f|0)<=(m|0)){o=0;S=p;return o|0}do if((e|0)>0){e=b[a>>2]|0;if((h|0)>0){g=18640+(e*80|0)+60|0;e=a;break}e=18640+(e*80|0)+40|0;if(!d){g=e;e=a}else{Aa(n,m,0,0);Fa(o,n,i);Oa(i);Ea(i,n,o);g=e;e=a}}else{g=18640+((b[a>>2]|0)*80|0)+20|0;e=a}while(0);b[e>>2]=b[g>>2];f=g+16|0;if((b[f>>2]|0)>0){e=0;do{Na(o);e=e+1|0}while((e|0)<(b[f>>2]|0))}a=g+4|0;b[n>>2]=b[a>>2];b[n+4>>2]=b[a+4>>2];b[n+8>>2]=b[a+8>>2];c=b[16880+(c<<2)>>2]|0;Ga(n,l?c*3|0:c);Ea(o,n,o);Ca(o);if(l)e=((b[k>>2]|0)+(b[o>>2]|0)+(b[j>>2]|0)|0)==(m|0)?1:2;else e=2;o=e;S=p;return o|0}function mb(a,b){a=a|0;b=b|0;var c=0;do c=lb(a,b,0,1)|0;while((c|0)==2);return c|0}function nb(a,c,d,f,g){a=a|0;c=c|0;d=d|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0.0,D=0.0;B=S;S=S+240|0;h=B+224|0;x=B+208|0;y=B;z=B+192|0;A=B+176|0;s=B+160|0;t=B+144|0;u=B+128|0;v=B+112|0;w=B+96|0;b[h>>2]=c;b[x>>2]=b[a>>2];b[x+4>>2]=b[a+4>>2];b[x+8>>2]=b[a+8>>2];b[x+12>>2]=b[a+12>>2];ob(x,h,y);b[g>>2]=0;r=f+d+((f|0)==6&1)|0;if((r|0)<=(d|0)){S=B;return}k=b[h>>2]|0;l=d+6|0;m=16960+(k<<2)|0;n=t+8|0;o=u+8|0;p=v+8|0;q=z+4|0;i=0;j=d;f=-1;a:while(1){h=(j|0)%6|0;a=y+(h<<4)|0;b[z>>2]=b[a>>2];b[z+4>>2]=b[a+4>>2];b[z+8>>2]=b[a+8>>2];b[z+12>>2]=b[a+12>>2];a=i;i=lb(z,k,0,1)|0;if((j|0)>(d|0)&(Ib(c)|0)!=0?((a|0)!=1?(b[z>>2]|0)!=(f|0):0):0){Da(y+(((h+5|0)%6|0)<<4)+4|0,A);Da(y+(h<<4)+4|0,s);C=+(b[m>>2]|0);e[t>>3]=C*3.0;e[n>>3]=0.0;D=C*-1.5;e[u>>3]=D;e[o>>3]=C*2.598076211353316;e[v>>3]=D;e[p>>3]=C*-2.598076211353316;h=b[x>>2]|0;switch(b[17040+(h*80|0)+(((f|0)==(h|0)?b[z>>2]|0:f)<<2)>>2]|0){case 1:{a=u;f=t;break}case 3:{a=v;f=u;break}case 2:{a=t;f=v;break}default:{a=8;break a}}Lc(A,s,f,a,w);if(!(Mc(A,w)|0)?!(Mc(s,w)|0):0){hb(w,b[x>>2]|0,k,1,g+8+(b[g>>2]<<4)|0);b[g>>2]=(b[g>>2]|0)+1}}if((j|0)<(l|0)){Da(q,A);hb(A,b[z>>2]|0,k,1,g+8+(b[g>>2]<<4)|0);b[g>>2]=(b[g>>2]|0)+1}j=j+1|0;if((j|0)>=(r|0)){a=3;break}else f=b[z>>2]|0}if((a|0)==3){S=B;return}else if((a|0)==8)H(22500,22463,736,22545)}function ob(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;j=S;S=S+160|0;e=j+80|0;f=j;g=e;h=20368;i=g+72|0;do{b[g>>2]=b[h>>2];g=g+4|0;h=h+4|0}while((g|0)<(i|0));g=f;h=20448;i=g+72|0;do{b[g>>2]=b[h>>2];g=g+4|0;h=h+4|0}while((g|0)<(i|0));i=(Ib(b[c>>2]|0)|0)==0;e=i?e:f;f=a+4|0;Ra(f);Sa(f);if(Ib(b[c>>2]|0)|0){La(f);b[c>>2]=(b[c>>2]|0)+1}b[d>>2]=b[a>>2];c=d+4|0;Ea(f,e,c);Ca(c);b[d+16>>2]=b[a>>2];c=d+20|0;Ea(f,e+12|0,c);Ca(c);b[d+32>>2]=b[a>>2];c=d+36|0;Ea(f,e+24|0,c);Ca(c);b[d+48>>2]=b[a>>2];c=d+52|0;Ea(f,e+36|0,c);Ca(c);b[d+64>>2]=b[a>>2];c=d+68|0;Ea(f,e+48|0,c);Ca(c);b[d+80>>2]=b[a>>2];d=d+84|0;Ea(f,e+60|0,d);Ca(d);S=j;return}function pb(a,b){a=a|0;b=b|0;b=qd(a|0,b|0,52)|0;G()|0;return b&15|0}function qb(a,b){a=a|0;b=b|0;b=qd(a|0,b|0,45)|0;G()|0;return b&127|0}function rb(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0;if(!(0==0&(b&-16777216|0)==134217728)){b=0;return b|0}g=qd(a|0,b|0,45)|0;G()|0;g=g&127;if(g>>>0>121){b=0;return b|0}c=qd(a|0,b|0,52)|0;G()|0;c=c&15;do if(c|0){e=1;d=0;while(1){f=qd(a|0,b|0,(15-e|0)*3|0)|0;G()|0;f=f&7;if((f|0)!=0&(d^1))if((f|0)==1&(la(g)|0)!=0){h=0;d=13;break}else d=1;if((f|0)==7){h=0;d=13;break}if(e>>>0>>0)e=e+1|0;else{d=9;break}}if((d|0)==9){if((c|0)==15)h=1;else break;return h|0}else if((d|0)==13)return h|0}while(0);while(1){h=qd(a|0,b|0,(14-c|0)*3|0)|0;G()|0;if(!((h&7|0)==7&0==0)){h=0;d=13;break}if(c>>>0<14)c=c+1|0;else{h=1;d=13;break}}if((d|0)==13)return h|0;return 0}function sb(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var f=0,g=0;g=qd(a|0,c|0,52)|0;G()|0;g=g&15;if(d>>>0>15){e=4;return e|0}if((g|0)<(d|0)){e=12;return e|0}if((g|0)==(d|0)){b[e>>2]=a;b[e+4>>2]=c;e=0;return e|0}f=rd(d|0,0,52)|0;f=f|a;a=G()|0|c&-15728641;if((g|0)>(d|0))do{c=rd(7,0,(14-d|0)*3|0)|0;d=d+1|0;f=c|f;a=G()|0|a}while((d|0)<(g|0));b[e>>2]=f;b[e+4>>2]=a;e=0;return e|0}function tb(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0;g=qd(a|0,c|0,52)|0;G()|0;g=g&15;if(!((d|0)<16&(g|0)<=(d|0))){e=4;return e|0}f=d-g|0;d=qd(a|0,c|0,45)|0;G()|0;a:do if(!(la(d&127)|0)){d=xc(7,0,f,((f|0)<0)<<31>>31)|0;f=G()|0}else{b:do if(g|0){d=1;while(1){h=rd(7,0,(15-d|0)*3|0)|0;if(!((h&a|0)==0&((G()|0)&c|0)==0))break;if(d>>>0>>0)d=d+1|0;else break b}d=xc(7,0,f,((f|0)<0)<<31>>31)|0;f=G()|0;break a}while(0);d=xc(7,0,f,((f|0)<0)<<31>>31)|0;d=md(d|0,G()|0,5,0)|0;d=gd(d|0,G()|0,-5,-1)|0;d=kd(d|0,G()|0,6,0)|0;d=gd(d|0,G()|0,1,0)|0;f=G()|0}while(0);h=e;b[h>>2]=d;b[h+4>>2]=f;h=0;return h|0}function ub(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;e=qd(a|0,b|0,45)|0;G()|0;if(!(la(e&127)|0)){e=0;return e|0}e=qd(a|0,b|0,52)|0;G()|0;e=e&15;a:do if(!e)c=0;else{d=1;while(1){c=qd(a|0,b|0,(15-d|0)*3|0)|0;G()|0;c=c&7;if(c|0)break a;if(d>>>0>>0)d=d+1|0;else{c=0;break}}}while(0);e=(c|0)==0&1;return e|0}function vb(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;h=S;S=S+16|0;g=h;Sb(g,a,c,d);c=g;a=b[c>>2]|0;c=b[c+4>>2]|0;if((a|0)==0&(c|0)==0){S=h;return 0}f=0;d=0;do{i=e+(f<<3)|0;b[i>>2]=a;b[i+4>>2]=c;f=gd(f|0,d|0,1,0)|0;d=G()|0;Tb(g);i=g;a=b[i>>2]|0;c=b[i+4>>2]|0}while(!((a|0)==0&(c|0)==0));S=h;return 0}function wb(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;if((d|0)<(c|0)){c=b;d=a;F(c|0);return d|0}c=rd(-1,-1,((d-c|0)*3|0)+3|0)|0;d=rd(~c|0,~(G()|0)|0,(15-d|0)*3|0)|0;c=~(G()|0)&b;d=~d&a;F(c|0);return d|0}function xb(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var f=0;f=qd(a|0,c|0,52)|0;G()|0;f=f&15;if(!((d|0)<16&(f|0)<=(d|0))){e=4;return e|0}if((f|0)<(d|0)){f=rd(-1,-1,((d+-1-f|0)*3|0)+3|0)|0;f=rd(~f|0,~(G()|0)|0,(15-d|0)*3|0)|0;c=~(G()|0)&c;a=~f&a}f=rd(d|0,0,52)|0;d=c&-15728641|(G()|0);b[e>>2]=a|f;b[e+4>>2]=d;e=0;return e|0}function yb(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;if((d|0)==0&(e|0)==0){y=0;return y|0}f=a;g=b[f>>2]|0;f=b[f+4>>2]|0;if(0==0&(f&15728640|0)==0){if(!((e|0)>0|(e|0)==0&d>>>0>0)){y=0;return y|0}y=c;b[y>>2]=g;b[y+4>>2]=f;if((d|0)==1&(e|0)==0){y=0;return y|0}f=1;do{w=a+(f<<3)|0;x=b[w+4>>2]|0;y=c+(f<<3)|0;b[y>>2]=b[w>>2];b[y+4>>2]=x;f=f+1|0}while(0<(e|0)|0==(e|0)&f>>>0>>0);f=0;return f|0}v=d<<3;x=dd(v)|0;if(!x){y=13;return y|0}ud(x|0,a|0,v|0)|0;w=fd(d,8)|0;if(!w){ed(x);y=13;return y|0}a:do if(d|0){b:while(1){f=x;s=b[f>>2]|0;f=b[f+4>>2]|0;t=qd(s|0,f|0,52)|0;G()|0;t=t&15;u=t+-1|0;r=(d|0)>0;c:do if(r){o=((d|0)<0)<<31>>31;p=rd(u|0,0,52)|0;q=G()|0;if(u>>>0>15){if(!((s|0)==0&(f|0)==0)){y=17;break b}g=0;while(1){g=g+1|0;if((g|0)>=(d|0))break c;e=x+(g<<3)|0;q=b[e>>2]|0;e=b[e+4>>2]|0;if(!((q|0)==0&(e|0)==0)){f=e;y=17;break b}}}g=0;a=s;e=f;while(1){if(!((a|0)==0&(e|0)==0)){if(!(0==0&(e&117440512|0)==0)){y=22;break b}i=qd(a|0,e|0,52)|0;G()|0;i=i&15;if((i|0)<(u|0)){f=12;y=28;break b}if((i|0)!=(u|0)){a=a|p;e=e&-15728641|q;if(i>>>0>=t>>>0){h=u;do{n=rd(7,0,(14-h|0)*3|0)|0;h=h+1|0;a=n|a;e=G()|0|e}while(h>>>0>>0)}}h=od(a|0,e|0,d|0,o|0)|0;G()|0;k=w+(h<<3)|0;i=k;j=b[i>>2]|0;i=b[i+4>>2]|0;if((j|0)==0&(i|0)==0)h=k;else{n=0;while(1){if((n|0)>(d|0)){y=32;break b}if((j|0)==(a|0)&(i&-117440513|0)==(e|0)){l=qd(j|0,i|0,56)|0;G()|0;l=l&7;m=l+1|0;z=qd(j|0,i|0,45)|0;G()|0;d:do if(!(la(z&127)|0))i=7;else{j=qd(j|0,i|0,52)|0;G()|0;j=j&15;if(!j){i=6;break}i=1;while(1){z=rd(7,0,(15-i|0)*3|0)|0;if(!((z&a|0)==0&((G()|0)&e|0)==0)){i=7;break d}if(i>>>0>>0)i=i+1|0;else{i=6;break}}}while(0);if((l+2|0)>>>0>i>>>0){y=42;break b}z=rd(m|0,0,56)|0;e=G()|0|e&-117440513;m=k;b[m>>2]=0;b[m+4>>2]=0;a=z|a}else h=(h+1|0)%(d|0)|0;k=w+(h<<3)|0;i=k;j=b[i>>2]|0;i=b[i+4>>2]|0;if((j|0)==0&(i|0)==0){h=k;break}else n=n+1|0}}z=h;b[z>>2]=a;b[z+4>>2]=e}g=g+1|0;if((g|0)>=(d|0))break c;e=x+(g<<3)|0;a=b[e>>2]|0;e=b[e+4>>2]|0}}while(0);if((d+5|0)>>>0<11){y=85;break}q=fd((d|0)/6|0,8)|0;if(!q){y=49;break}e:do if(r){n=0;m=0;do{i=w+(n<<3)|0;e=i;g=b[e>>2]|0;e=b[e+4>>2]|0;if(!((g|0)==0&(e|0)==0)){j=qd(g|0,e|0,56)|0;G()|0;j=j&7;a=j+1|0;k=e&-117440513;z=qd(g|0,e|0,45)|0;G()|0;f:do if(la(z&127)|0){l=qd(g|0,e|0,52)|0;G()|0;l=l&15;if(l|0){h=1;while(1){z=rd(7,0,(15-h|0)*3|0)|0;if(!((g&z|0)==0&(k&(G()|0)|0)==0))break f;if(h>>>0>>0)h=h+1|0;else break}}e=rd(a|0,0,56)|0;g=e|g;e=G()|0|k;a=i;b[a>>2]=g;b[a+4>>2]=e;a=j+2|0}while(0);if((a|0)==7){z=q+(m<<3)|0;b[z>>2]=g;b[z+4>>2]=e&-117440513;m=m+1|0}}n=n+1|0}while((n|0)!=(d|0));if(r){n=((d|0)<0)<<31>>31;o=rd(u|0,0,52)|0;p=G()|0;if(u>>>0>15){if(!((s|0)==0&(f|0)==0)){f=4;y=75;break b}f=0;while(1){f=f+1|0;if((f|0)>=(d|0)){g=0;f=m;break e}z=x+(f<<3)|0;if(!((b[z>>2]|0)==0&(b[z+4>>2]|0)==0)){f=4;y=75;break b}}}l=0;g=0;k=s;while(1){do if(!((k|0)==0&(f|0)==0)){i=qd(k|0,f|0,52)|0;G()|0;i=i&15;if((i|0)<(u|0)){f=12;y=75;break b}do if((i|0)==(u|0)){e=k;i=f}else{e=k|o;a=f&-15728641|p;if(i>>>0>>0){i=a;break}h=u;do{z=rd(7,0,(14-h|0)*3|0)|0;h=h+1|0;e=z|e;a=G()|0|a}while(h>>>0>>0);i=a}while(0);h=od(e|0,i|0,d|0,n|0)|0;G()|0;a=0;while(1){if((a|0)>(d|0)){y=78;break b}z=w+(h<<3)|0;j=b[z+4>>2]|0;if((j&-117440513|0)==(i|0)?(b[z>>2]|0)==(e|0):0){y=80;break}h=(h+1|0)%(d|0)|0;z=w+(h<<3)|0;if((b[z>>2]|0)==(e|0)?(b[z+4>>2]|0)==(i|0):0)break;else a=a+1|0}if((y|0)==80?(y=0,0==0&(j&117440512|0)==100663296):0)break;z=c+(g<<3)|0;b[z>>2]=k;b[z+4>>2]=f;g=g+1|0}while(0);f=l+1|0;if((f|0)>=(d|0)){f=m;break e}z=x+(f<<3)|0;l=f;k=b[z>>2]|0;f=b[z+4>>2]|0}}else{g=0;f=m}}else{g=0;f=0}while(0);vd(w|0,0,v|0)|0;ud(x|0,q|0,f<<3|0)|0;ed(q);if(!f)break a;else{c=c+(g<<3)|0;d=f}}if((y|0)==17)if(0==0&(f&117440512|0)==0){f=4;y=28}else y=22;else if((y|0)==32){ed(x);ed(w);z=1;return z|0}else if((y|0)==42){ed(x);ed(w);z=10;return z|0}else if((y|0)==49){ed(x);ed(w);z=13;return z|0}else if((y|0)==75){ed(x);ed(w);z=f;return z|0}else if((y|0)==78){ed(q);ed(x);ed(w);z=1;return z|0}else if((y|0)==85){ud(c|0,x|0,d<<3|0)|0;break}if((y|0)==22){ed(x);ed(w);z=5;return z|0}else if((y|0)==28){ed(x);ed(w);z=f;return z|0}}while(0);ed(x);ed(w);z=0;return z|0}function zb(a,c,d,e,f,g,h){a=a|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;q=S;S=S+16|0;p=q;if(!((d|0)>0|(d|0)==0&c>>>0>0)){p=0;S=q;return p|0}if((h|0)>=16){p=12;S=q;return p|0}n=0;o=0;m=0;i=0;a:while(1){k=a+(n<<3)|0;j=b[k>>2]|0;k=b[k+4>>2]|0;l=qd(j|0,k|0,52)|0;G()|0;if((l&15|0)>(h|0)){i=12;j=11;break}Sb(p,j,k,h);l=p;k=b[l>>2]|0;l=b[l+4>>2]|0;if((k|0)==0&(l|0)==0)j=m;else{j=m;do{if(!((i|0)<(g|0)|(i|0)==(g|0)&j>>>0>>0)){j=10;break a}m=e+(j<<3)|0;b[m>>2]=k;b[m+4>>2]=l;j=gd(j|0,i|0,1,0)|0;i=G()|0;Tb(p);m=p;k=b[m>>2]|0;l=b[m+4>>2]|0}while(!((k|0)==0&(l|0)==0))}n=gd(n|0,o|0,1,0)|0;o=G()|0;if(!((o|0)<(d|0)|(o|0)==(d|0)&n>>>0>>0)){i=0;j=11;break}else m=j}if((j|0)==10){p=14;S=q;return p|0}else if((j|0)==11){S=q;return i|0}return 0}function Ab(a,c,d,e,f){a=a|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;n=S;S=S+16|0;m=n;a:do if((d|0)>0|(d|0)==0&c>>>0>0){k=0;h=0;g=0;l=0;while(1){j=a+(k<<3)|0;i=b[j>>2]|0;j=b[j+4>>2]|0;if(!((i|0)==0&(j|0)==0)){j=(tb(i,j,e,m)|0)==0;i=m;h=gd(b[i>>2]|0,b[i+4>>2]|0,h|0,g|0)|0;g=G()|0;if(!j){g=12;break}}k=gd(k|0,l|0,1,0)|0;l=G()|0;if(!((l|0)<(d|0)|(l|0)==(d|0)&k>>>0>>0))break a}S=n;return g|0}else{h=0;g=0}while(0);b[f>>2]=h;b[f+4>>2]=g;f=0;S=n;return f|0}function Bb(a,b){a=a|0;b=b|0;b=qd(a|0,b|0,52)|0;G()|0;return b&1|0}function Cb(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;e=qd(a|0,b|0,52)|0;G()|0;e=e&15;if(!e){e=0;return e|0}d=1;while(1){c=qd(a|0,b|0,(15-d|0)*3|0)|0;G()|0;c=c&7;if(c|0){d=5;break}if(d>>>0>>0)d=d+1|0;else{c=0;d=5;break}}if((d|0)==5)return c|0;return 0}function Db(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0;i=qd(a|0,b|0,52)|0;G()|0;i=i&15;if(!i){h=b;i=a;F(h|0);return i|0}h=1;c=0;while(1){f=(15-h|0)*3|0;d=rd(7,0,f|0)|0;e=G()|0;g=qd(a|0,b|0,f|0)|0;G()|0;f=rd(Pa(g&7)|0,0,f|0)|0;g=G()|0;a=f|a&~d;b=g|b&~e;a:do if(!c)if(!((f&d|0)==0&(g&e|0)==0)){d=qd(a|0,b|0,52)|0;G()|0;d=d&15;if(!d)c=1;else{c=1;b:while(1){g=qd(a|0,b|0,(15-c|0)*3|0)|0;G()|0;switch(g&7){case 1:break b;case 0:break;default:{c=1;break a}}if(c>>>0>>0)c=c+1|0;else{c=1;break a}}c=1;while(1){g=(15-c|0)*3|0;e=qd(a|0,b|0,g|0)|0;G()|0;f=rd(7,0,g|0)|0;b=b&~(G()|0);g=rd(Pa(e&7)|0,0,g|0)|0;a=a&~f|g;b=b|(G()|0);if(c>>>0>>0)c=c+1|0;else{c=1;break}}}}else c=0;while(0);if(h>>>0>>0)h=h+1|0;else break}F(b|0);return a|0}function Eb(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0;d=qd(a|0,b|0,52)|0;G()|0;d=d&15;if(!d){c=b;d=a;F(c|0);return d|0}c=1;while(1){f=(15-c|0)*3|0;g=qd(a|0,b|0,f|0)|0;G()|0;e=rd(7,0,f|0)|0;b=b&~(G()|0);f=rd(Pa(g&7)|0,0,f|0)|0;a=f|a&~e;b=G()|0|b;if(c>>>0>>0)c=c+1|0;else break}F(b|0);return a|0}function Fb(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0;i=qd(a|0,b|0,52)|0;G()|0;i=i&15;if(!i){h=b;i=a;F(h|0);return i|0}h=1;c=0;while(1){f=(15-h|0)*3|0;d=rd(7,0,f|0)|0;e=G()|0;g=qd(a|0,b|0,f|0)|0;G()|0;f=rd(Qa(g&7)|0,0,f|0)|0;g=G()|0;a=f|a&~d;b=g|b&~e;a:do if(!c)if(!((f&d|0)==0&(g&e|0)==0)){d=qd(a|0,b|0,52)|0;G()|0;d=d&15;if(!d)c=1;else{c=1;b:while(1){g=qd(a|0,b|0,(15-c|0)*3|0)|0;G()|0;switch(g&7){case 1:break b;case 0:break;default:{c=1;break a}}if(c>>>0>>0)c=c+1|0;else{c=1;break a}}c=1;while(1){e=(15-c|0)*3|0;f=rd(7,0,e|0)|0;g=b&~(G()|0);b=qd(a|0,b|0,e|0)|0;G()|0;b=rd(Qa(b&7)|0,0,e|0)|0;a=a&~f|b;b=g|(G()|0);if(c>>>0>>0)c=c+1|0;else{c=1;break}}}}else c=0;while(0);if(h>>>0>>0)h=h+1|0;else break}F(b|0);return a|0}function Gb(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0;d=qd(a|0,b|0,52)|0;G()|0;d=d&15;if(!d){c=b;d=a;F(c|0);return d|0}c=1;while(1){g=(15-c|0)*3|0;f=rd(7,0,g|0)|0;e=b&~(G()|0);b=qd(a|0,b|0,g|0)|0;G()|0;b=rd(Qa(b&7)|0,0,g|0)|0;a=b|a&~f;b=G()|0|e;if(c>>>0>>0)c=c+1|0;else break}F(b|0);return a|0}function Hb(a,c){a=a|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;j=S;S=S+64|0;i=j+40|0;e=j+24|0;f=j+12|0;g=j;rd(c|0,0,52)|0;d=G()|0|134225919;if(!c){if((b[a+4>>2]|0)>2){h=0;i=0;F(h|0);S=j;return i|0}if((b[a+8>>2]|0)>2){h=0;i=0;F(h|0);S=j;return i|0}if((b[a+12>>2]|0)>2){h=0;i=0;F(h|0);S=j;return i|0}rd(na(a)|0,0,45)|0;h=G()|0|d;i=-1;F(h|0);S=j;return i|0};b[i>>2]=b[a>>2];b[i+4>>2]=b[a+4>>2];b[i+8>>2]=b[a+8>>2];b[i+12>>2]=b[a+12>>2];h=i+4|0;if((c|0)>0){a=-1;while(1){b[e>>2]=b[h>>2];b[e+4>>2]=b[h+4>>2];b[e+8>>2]=b[h+8>>2];if(!(c&1)){Ja(h);b[f>>2]=b[h>>2];b[f+4>>2]=b[h+4>>2];b[f+8>>2]=b[h+8>>2];La(f)}else{Ia(h);b[f>>2]=b[h>>2];b[f+4>>2]=b[h+4>>2];b[f+8>>2]=b[h+8>>2];Ka(f)}Fa(e,f,g);Ca(g);l=(15-c|0)*3|0;k=rd(7,0,l|0)|0;d=d&~(G()|0);l=rd(Ha(g)|0,0,l|0)|0;a=l|a&~k;d=G()|0|d;if((c|0)>1)c=c+-1|0;else break}}else a=-1;a:do if(((b[h>>2]|0)<=2?(b[i+8>>2]|0)<=2:0)?(b[i+12>>2]|0)<=2:0){e=na(i)|0;c=rd(e|0,0,45)|0;c=c|a;a=G()|0|d&-1040385;g=oa(i)|0;if(!(la(e)|0)){if((g|0)<=0)break;f=0;while(1){e=qd(c|0,a|0,52)|0;G()|0;e=e&15;if(e){d=1;while(1){l=(15-d|0)*3|0;i=qd(c|0,a|0,l|0)|0;G()|0;k=rd(7,0,l|0)|0;a=a&~(G()|0);l=rd(Pa(i&7)|0,0,l|0)|0;c=c&~k|l;a=a|(G()|0);if(d>>>0>>0)d=d+1|0;else break}}f=f+1|0;if((f|0)==(g|0))break a}}f=qd(c|0,a|0,52)|0;G()|0;f=f&15;b:do if(f){d=1;c:while(1){l=qd(c|0,a|0,(15-d|0)*3|0)|0;G()|0;switch(l&7){case 1:break c;case 0:break;default:break b}if(d>>>0>>0)d=d+1|0;else break b}if(ra(e,b[i>>2]|0)|0){d=1;while(1){i=(15-d|0)*3|0;k=rd(7,0,i|0)|0;l=a&~(G()|0);a=qd(c|0,a|0,i|0)|0;G()|0;a=rd(Qa(a&7)|0,0,i|0)|0;c=c&~k|a;a=l|(G()|0);if(d>>>0>>0)d=d+1|0;else break}}else{d=1;while(1){l=(15-d|0)*3|0;i=qd(c|0,a|0,l|0)|0;G()|0;k=rd(7,0,l|0)|0;a=a&~(G()|0);l=rd(Pa(i&7)|0,0,l|0)|0;c=c&~k|l;a=a|(G()|0);if(d>>>0>>0)d=d+1|0;else break}}}while(0);if((g|0)>0){d=0;do{c=Db(c,a)|0;a=G()|0;d=d+1|0}while((d|0)!=(g|0))}}else{c=0;a=0}while(0);k=a;l=c;F(k|0);S=j;return l|0}function Ib(a){a=a|0;return (a|0)%2|0|0}function Jb(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,f=0;f=S;S=S+16|0;e=f;if(c>>>0>15){e=4;S=f;return e|0}if(0==0?(b[a+4>>2]&2146435072|0)==2146435072:0){e=3;S=f;return e|0}if(0==0?(b[a+8+4>>2]&2146435072|0)==2146435072:0){e=3;S=f;return e|0}eb(a,c,e);c=Hb(e,c)|0;e=G()|0;b[d>>2]=c;b[d+4>>2]=e;e=(c|0)==0&(e|0)==0&1;S=f;return e|0}function Kb(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0;f=d+4|0;g=qd(a|0,c|0,52)|0;G()|0;g=g&15;h=qd(a|0,c|0,45)|0;G()|0;e=(g|0)==0;if(!(la(h&127)|0)){if(e){h=0;return h|0}if((b[f>>2]|0)==0?(b[d+8>>2]|0)==0:0)e=(b[d+12>>2]|0)!=0&1;else e=1}else if(e){h=1;return h|0}else e=1;d=1;while(1){if(!(d&1))La(f);else Ka(f);h=qd(a|0,c|0,(15-d|0)*3|0)|0;G()|0;Ma(f,h&7);if(d>>>0>>0)d=d+1|0;else break}return e|0}function Lb(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;l=S;S=S+16|0;j=l;k=qd(a|0,c|0,45)|0;G()|0;k=k&127;if(k>>>0>121){b[d>>2]=0;b[d+4>>2]=0;b[d+8>>2]=0;b[d+12>>2]=0;k=5;S=l;return k|0}a:do if((la(k)|0)!=0?(g=qd(a|0,c|0,52)|0,G()|0,g=g&15,(g|0)!=0):0){e=1;b:while(1){i=qd(a|0,c|0,(15-e|0)*3|0)|0;G()|0;switch(i&7){case 5:break b;case 0:break;default:{e=c;break a}}if(e>>>0>>0)e=e+1|0;else{e=c;break a}}f=1;e=c;while(1){c=(15-f|0)*3|0;h=rd(7,0,c|0)|0;i=e&~(G()|0);e=qd(a|0,e|0,c|0)|0;G()|0;e=rd(Qa(e&7)|0,0,c|0)|0;a=a&~h|e;e=i|(G()|0);if(f>>>0>>0)f=f+1|0;else break}}else e=c;while(0);i=7696+(k*28|0)|0;b[d>>2]=b[i>>2];b[d+4>>2]=b[i+4>>2];b[d+8>>2]=b[i+8>>2];b[d+12>>2]=b[i+12>>2];if(!(Kb(a,e,d)|0)){k=0;S=l;return k|0}h=d+4|0;b[j>>2]=b[h>>2];b[j+4>>2]=b[h+4>>2];b[j+8>>2]=b[h+8>>2];g=qd(a|0,e|0,52)|0;G()|0;i=g&15;if(!(g&1))g=i;else{La(h);g=i+1|0}if(!(la(k)|0))e=0;else{c:do if(!i)e=0;else{c=1;while(1){f=qd(a|0,e|0,(15-c|0)*3|0)|0;G()|0;f=f&7;if(f|0){e=f;break c}if(c>>>0>>0)c=c+1|0;else{e=0;break}}}while(0);e=(e|0)==4&1}if(!(lb(d,g,e,0)|0)){if((g|0)!=(i|0)){b[h>>2]=b[j>>2];b[h+4>>2]=b[j+4>>2];b[h+8>>2]=b[j+8>>2]}}else{if(la(k)|0)do{}while((lb(d,g,0,0)|0)!=0);if((g|0)!=(i|0))Ja(h)}k=0;S=l;return k|0}function Mb(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0;f=S;S=S+16|0;d=f;e=Lb(a,b,d)|0;if(e|0){S=f;return e|0}e=qd(a|0,b|0,52)|0;G()|0;ib(d,e&15,c);e=0;S=f;return e|0}function Nb(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0;g=S;S=S+16|0;f=g;d=Lb(a,b,f)|0;if(d|0){f=d;S=g;return f|0}d=qd(a|0,b|0,45)|0;G()|0;d=(la(d&127)|0)==0;e=qd(a|0,b|0,52)|0;G()|0;e=e&15;a:do if(!d){if(e|0){d=1;while(1){h=rd(7,0,(15-d|0)*3|0)|0;if(!((h&a|0)==0&((G()|0)&b|0)==0))break a;if(d>>>0>>0)d=d+1|0;else break}}jb(f,e,0,5,c);h=0;S=g;return h|0}while(0);nb(f,e,0,6,c);h=0;S=g;return h|0}function Ob(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,f=0,g=0;f=qd(a|0,c|0,45)|0;G()|0;if(!(la(f&127)|0)){f=2;b[d>>2]=f;return 0}f=qd(a|0,c|0,52)|0;G()|0;f=f&15;if(!f){f=5;b[d>>2]=f;return 0}e=1;while(1){g=rd(7,0,(15-e|0)*3|0)|0;if(!((g&a|0)==0&((G()|0)&c|0)==0)){e=2;a=6;break}if(e>>>0>>0)e=e+1|0;else{e=5;a=6;break}}if((a|0)==6){b[d>>2]=e;return 0}return 0}function Pb(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;m=S;S=S+128|0;k=m+112|0;g=m+96|0;l=m;f=qd(a|0,c|0,52)|0;G()|0;i=f&15;b[k>>2]=i;h=qd(a|0,c|0,45)|0;G()|0;h=h&127;a:do if(la(h)|0){if(i|0){e=1;while(1){j=rd(7,0,(15-e|0)*3|0)|0;if(!((j&a|0)==0&((G()|0)&c|0)==0)){f=0;break a}if(e>>>0>>0)e=e+1|0;else break}}if(!(f&1)){j=rd(i+1|0,0,52)|0;l=G()|0|c&-15728641;k=rd(7,0,(14-i|0)*3|0)|0;l=Pb((j|a)&~k,l&~(G()|0),d)|0;S=m;return l|0}else f=1}else f=0;while(0);e=Lb(a,c,g)|0;if(!e){if(f){kb(g,k,l);j=5}else{ob(g,k,l);j=6}b:do if(la(h)|0)if(!i)a=5;else{e=1;while(1){h=rd(7,0,(15-e|0)*3|0)|0;if(!((h&a|0)==0&((G()|0)&c|0)==0)){a=2;break b}if(e>>>0>>0)e=e+1|0;else{a=5;break}}}else a=2;while(0);vd(d|0,-1,a<<2|0)|0;c:do if(f){g=0;while(1){h=l+(g<<4)|0;mb(h,b[k>>2]|0)|0;h=b[h>>2]|0;i=b[d>>2]|0;if((i|0)==-1|(i|0)==(h|0))e=d;else{f=0;do{f=f+1|0;if(f>>>0>=a>>>0){e=1;break c}e=d+(f<<2)|0;i=b[e>>2]|0}while(!((i|0)==-1|(i|0)==(h|0)))}b[e>>2]=h;g=g+1|0;if(g>>>0>=j>>>0){e=0;break}}}else{g=0;while(1){h=l+(g<<4)|0;lb(h,b[k>>2]|0,0,1)|0;h=b[h>>2]|0;i=b[d>>2]|0;if((i|0)==-1|(i|0)==(h|0))e=d;else{f=0;do{f=f+1|0;if(f>>>0>=a>>>0){e=1;break c}e=d+(f<<2)|0;i=b[e>>2]|0}while(!((i|0)==-1|(i|0)==(h|0)))}b[e>>2]=h;g=g+1|0;if(g>>>0>=j>>>0){e=0;break}}}while(0)}l=e;S=m;return l|0}function Qb(){return 12}function Rb(a,c){a=a|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;if(a>>>0>15){i=4;return i|0}rd(a|0,0,52)|0;i=G()|0|134225919;if(!a){d=0;e=0;do{if(la(e)|0){rd(e|0,0,45)|0;h=i|(G()|0);a=c+(d<<3)|0;b[a>>2]=-1;b[a+4>>2]=h;d=d+1|0}e=e+1|0}while((e|0)!=122);d=0;return d|0}d=0;h=0;do{if(la(h)|0){rd(h|0,0,45)|0;e=1;f=-1;g=i|(G()|0);while(1){j=rd(7,0,(15-e|0)*3|0)|0;f=f&~j;g=g&~(G()|0);if((e|0)==(a|0))break;else e=e+1|0}j=c+(d<<3)|0;b[j>>2]=f;b[j+4>>2]=g;d=d+1|0}h=h+1|0}while((h|0)!=122);d=0;return d|0}function Sb(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var f=0,g=0;f=qd(c|0,d|0,52)|0;G()|0;f=f&15;if((c|0)==0&(d|0)==0|((e|0)>15|(f|0)>(e|0))){e=-1;f=-1;c=0;d=0}else{g=wb(c,d,f+1|0,e)|0;d=(G()|0)&-15728641;c=rd(e|0,0,52)|0;c=g|c;d=d|(G()|0);g=(ub(c,d)|0)==0;e=g?-1:e}g=a;b[g>>2]=c;b[g+4>>2]=d;b[a+8>>2]=f;b[a+12>>2]=e;return}function Tb(a){a=a|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;d=a;c=b[d>>2]|0;d=b[d+4>>2]|0;if((c|0)==0&(d|0)==0)return;e=qd(c|0,d|0,52)|0;G()|0;e=e&15;i=rd(1,0,(e^15)*3|0)|0;c=gd(i|0,G()|0,c|0,d|0)|0;d=G()|0;i=a;b[i>>2]=c;b[i+4>>2]=d;i=a+8|0;h=b[i>>2]|0;if((e|0)<(h|0))return;j=a+12|0;g=e;while(1){if((g|0)==(h|0)){e=5;break}k=(g|0)==(b[j>>2]|0);f=(15-g|0)*3|0;e=qd(c|0,d|0,f|0)|0;G()|0;e=e&7;if(k&((e|0)==1&0==0)){e=7;break}if(!((e|0)==7&0==0)){e=10;break}k=rd(1,0,f|0)|0;c=gd(c|0,d|0,k|0,G()|0)|0;d=G()|0;k=a;b[k>>2]=c;b[k+4>>2]=d;if((g|0)>(h|0))g=g+-1|0;else{e=10;break}}if((e|0)==5){k=a;b[k>>2]=0;b[k+4>>2]=0;b[i>>2]=-1;b[j>>2]=-1;return}else if((e|0)==7){h=rd(1,0,f|0)|0;h=gd(c|0,d|0,h|0,G()|0)|0;i=G()|0;k=a;b[k>>2]=h;b[k+4>>2]=i;b[j>>2]=g+-1;return}else if((e|0)==10)return}function Ub(a){a=+a;var b=0.0;b=a<0.0?a+6.283185307179586:a;return +(!(a>=6.283185307179586)?b:b+-6.283185307179586)}function Vb(a,b){a=a|0;b=b|0;if(!(+q(+(+e[a>>3]-+e[b>>3]))<1.7453292519943298e-11)){b=0;return b|0}b=+q(+(+e[a+8>>3]-+e[b+8>>3]))<1.7453292519943298e-11;return b|0}function Wb(a,b){a=a|0;b=b|0;var c=0.0,d=0.0,f=0.0,g=0.0;f=+e[b>>3];d=+e[a>>3];g=+u(+((f-d)*.5));c=+u(+((+e[b+8>>3]-+e[a+8>>3])*.5));c=g*g+c*(+t(+f)*+t(+d)*c);return +(+z(+(+r(+c)),+(+r(+(1.0-c))))*2.0)}function Xb(a,b){a=a|0;b=b|0;var c=0.0,d=0.0,f=0.0,g=0.0;f=+e[b>>3];d=+e[a>>3];g=+u(+((f-d)*.5));c=+u(+((+e[b+8>>3]-+e[a+8>>3])*.5));c=g*g+c*(+t(+f)*+t(+d)*c);return +(+z(+(+r(+c)),+(+r(+(1.0-c))))*2.0*6371.007180918475)}function Yb(a,b){a=a|0;b=b|0;var c=0.0,d=0.0,f=0.0,g=0.0;f=+e[b>>3];d=+e[a>>3];g=+u(+((f-d)*.5));c=+u(+((+e[b+8>>3]-+e[a+8>>3])*.5));c=g*g+c*(+t(+f)*+t(+d)*c);return +(+z(+(+r(+c)),+(+r(+(1.0-c))))*2.0*6371.007180918475*1.0e3)}function Zb(a,b){a=a|0;b=b|0;var c=0.0,d=0.0,f=0.0,g=0.0,h=0.0;g=+e[b>>3];d=+t(+g);f=+e[b+8>>3]-+e[a+8>>3];h=d*+u(+f);c=+e[a>>3];return +(+z(+h,+(+u(+g)*+t(+c)-+t(+f)*(d*+u(+c)))))}function _b(a,c,d,f){a=a|0;c=+c;d=+d;f=f|0;var g=0,h=0.0,i=0.0,j=0.0;if(d<1.0e-16){b[f>>2]=b[a>>2];b[f+4>>2]=b[a+4>>2];b[f+8>>2]=b[a+8>>2];b[f+12>>2]=b[a+12>>2];return}h=c<0.0?c+6.283185307179586:c;h=!(c>=6.283185307179586)?h:h+-6.283185307179586;do if(h<1.0e-16){c=+e[a>>3]+d;e[f>>3]=c;g=f}else{g=+q(+(h+-3.141592653589793))<1.0e-16;c=+e[a>>3];if(g){c=c-d;e[f>>3]=c;g=f;break}i=+t(+d);d=+u(+d);c=i*+u(+c)+ +t(+h)*(d*+t(+c));c=c>1.0?1.0:c;c=+x(+(c<-1.0?-1.0:c));e[f>>3]=c;if(+q(+(c+-1.5707963267948966))<1.0e-16){e[f>>3]=1.5707963267948966;e[f+8>>3]=0.0;return}if(+q(+(c+1.5707963267948966))<1.0e-16){e[f>>3]=-1.5707963267948966;e[f+8>>3]=0.0;return}j=+t(+c);h=d*+u(+h)/j;d=+e[a>>3];c=(i-+u(+c)*+u(+d))/+t(+d)/j;i=h>1.0?1.0:h;c=c>1.0?1.0:c;c=+e[a+8>>3]+ +z(+(i<-1.0?-1.0:i),+(c<-1.0?-1.0:c));if(c>3.141592653589793)do c=c+-6.283185307179586;while(c>3.141592653589793);if(c<-3.141592653589793)do c=c+6.283185307179586;while(c<-3.141592653589793);e[f+8>>3]=c;return}while(0);if(+q(+(c+-1.5707963267948966))<1.0e-16){e[g>>3]=1.5707963267948966;e[f+8>>3]=0.0;return}if(+q(+(c+1.5707963267948966))<1.0e-16){e[g>>3]=-1.5707963267948966;e[f+8>>3]=0.0;return}c=+e[a+8>>3];if(c>3.141592653589793)do c=c+-6.283185307179586;while(c>3.141592653589793);if(c<-3.141592653589793)do c=c+6.283185307179586;while(c<-3.141592653589793);e[f+8>>3]=c;return}function $b(a,b){a=a|0;b=b|0;if(a>>>0>15){b=4;return b|0}e[b>>3]=+e[20528+(a<<3)>>3];b=0;return b|0}function ac(a,b){a=a|0;b=b|0;if(a>>>0>15){b=4;return b|0}e[b>>3]=+e[20656+(a<<3)>>3];b=0;return b|0}function bc(a,b){a=a|0;b=b|0;if(a>>>0>15){b=4;return b|0}e[b>>3]=+e[20784+(a<<3)>>3];b=0;return b|0}function cc(a,b){a=a|0;b=b|0;if(a>>>0>15){b=4;return b|0}e[b>>3]=+e[20912+(a<<3)>>3];b=0;return b|0}function dc(a,c){a=a|0;c=c|0;var d=0;if(a>>>0>15){c=4;return c|0}d=xc(7,0,a,((a|0)<0)<<31>>31)|0;d=md(d|0,G()|0,120,0)|0;a=G()|0;b[c>>2]=d|2;b[c+4>>2]=a;c=0;return c|0}function ec(a,b,c){a=a|0;b=b|0;c=c|0;var d=0.0,f=0.0,g=0.0,h=0.0,i=0.0,j=0.0,k=0.0,l=0.0,m=0.0,n=0.0;n=+e[b>>3];l=+e[a>>3];j=+u(+((n-l)*.5));g=+e[b+8>>3];k=+e[a+8>>3];h=+u(+((g-k)*.5));i=+t(+l);m=+t(+n);h=j*j+h*(m*i*h);h=+z(+(+r(+h)),+(+r(+(1.0-h))))*2.0;j=+e[c>>3];n=+u(+((j-n)*.5));d=+e[c+8>>3];g=+u(+((d-g)*.5));f=+t(+j);g=n*n+g*(m*f*g);g=+z(+(+r(+g)),+(+r(+(1.0-g))))*2.0;j=+u(+((l-j)*.5));d=+u(+((k-d)*.5));d=j*j+d*(i*f*d);d=+z(+(+r(+d)),+(+r(+(1.0-d))))*2.0;f=(h+g+d)*.5;return +(+y(+(+r(+(+v(+(f*.5))*+v(+((f-h)*.5))*+v(+((f-g)*.5))*+v(+((f-d)*.5))))))*4.0)}function fc(a,c,d){a=a|0;c=c|0;d=d|0;var f=0.0,g=0,h=0,i=0,j=0;j=S;S=S+192|0;h=j+168|0;i=j;g=Mb(a,c,h)|0;if(g|0){d=g;S=j;return d|0}a=Nb(a,c,i)|0;if(a|0){d=a;S=j;return d|0}c=b[i>>2]|0;if((c|0)>0){f=+ec(i+8|0,i+8+(((c|0)!=1&1)<<4)|0,h)+0.0;if((c|0)!=1){a=1;do{g=a;a=a+1|0;f=f+ +ec(i+8+(g<<4)|0,i+8+(((a|0)%(c|0)|0)<<4)|0,h)}while((a|0)<(c|0))}}else f=0.0;e[d>>3]=f;d=0;S=j;return d|0}function gc(a,c,d){a=a|0;c=c|0;d=d|0;var f=0,g=0.0,h=0,i=0,j=0;j=S;S=S+192|0;h=j+168|0;i=j;f=Mb(a,c,h)|0;if(!f){f=Nb(a,c,i)|0;if(!f){a=b[i>>2]|0;if((a|0)>0){g=+ec(i+8|0,i+8+(((a|0)!=1&1)<<4)|0,h)+0.0;if((a|0)!=1){f=1;do{c=f;f=f+1|0;g=g+ +ec(i+8+(c<<4)|0,i+8+(((f|0)%(a|0)|0)<<4)|0,h)}while((f|0)<(a|0))}}else g=0.0;e[d>>3]=g*6371.007180918475*6371.007180918475;d=0;S=j;return d|0}}d=f;S=j;return d|0}function hc(a,b,c){a=a|0;b=b|0;c=c|0;a=gc(a,b,c)|0;if(a|0)return a|0;e[c>>3]=+e[c>>3]*1.0e3*1.0e3;return a|0}function ic(a,c,d){a=a|0;c=c|0;d=d|0;var f=0.0,g=0.0,h=0.0,i=0,j=0,k=0.0,l=0.0,m=0.0;j=S;S=S+176|0;i=j;a=db(a,c,i)|0;if(a|0){i=a;S=j;return i|0}e[d>>3]=0.0;a=b[i>>2]|0;if((a|0)<=1){i=0;S=j;return i|0}c=a+-1|0;a=0;f=+e[i+8>>3];g=+e[i+16>>3];h=0.0;do{a=a+1|0;l=f;f=+e[i+8+(a<<4)>>3];m=+u(+((f-l)*.5));k=g;g=+e[i+8+(a<<4)+8>>3];k=+u(+((g-k)*.5));k=m*m+k*(+t(+f)*+t(+l)*k);h=h+ +z(+(+r(+k)),+(+r(+(1.0-k))))*2.0}while((a|0)<(c|0));e[d>>3]=h;i=0;S=j;return i|0}function jc(a,c,d){a=a|0;c=c|0;d=d|0;var f=0.0,g=0.0,h=0.0,i=0,j=0,k=0.0,l=0.0,m=0.0;j=S;S=S+176|0;i=j;a=db(a,c,i)|0;if(a|0){i=a;h=+e[d>>3];h=h*6371.007180918475;e[d>>3]=h;S=j;return i|0}e[d>>3]=0.0;a=b[i>>2]|0;if((a|0)<=1){i=0;h=0.0;h=h*6371.007180918475;e[d>>3]=h;S=j;return i|0}c=a+-1|0;a=0;f=+e[i+8>>3];g=+e[i+16>>3];h=0.0;do{a=a+1|0;l=f;f=+e[i+8+(a<<4)>>3];m=+u(+((f-l)*.5));k=g;g=+e[i+8+(a<<4)+8>>3];k=+u(+((g-k)*.5));k=m*m+k*(+t(+l)*+t(+f)*k);h=h+ +z(+(+r(+k)),+(+r(+(1.0-k))))*2.0}while((a|0)!=(c|0));e[d>>3]=h;i=0;m=h;m=m*6371.007180918475;e[d>>3]=m;S=j;return i|0}function kc(a,c,d){a=a|0;c=c|0;d=d|0;var f=0.0,g=0.0,h=0.0,i=0,j=0,k=0.0,l=0.0,m=0.0;j=S;S=S+176|0;i=j;a=db(a,c,i)|0;if(a|0){i=a;h=+e[d>>3];h=h*6371.007180918475;h=h*1.0e3;e[d>>3]=h;S=j;return i|0}e[d>>3]=0.0;a=b[i>>2]|0;if((a|0)<=1){i=0;h=0.0;h=h*6371.007180918475;h=h*1.0e3;e[d>>3]=h;S=j;return i|0}c=a+-1|0;a=0;f=+e[i+8>>3];g=+e[i+16>>3];h=0.0;do{a=a+1|0;l=f;f=+e[i+8+(a<<4)>>3];m=+u(+((f-l)*.5));k=g;g=+e[i+8+(a<<4)+8>>3];k=+u(+((g-k)*.5));k=m*m+k*(+t(+l)*+t(+f)*k);h=h+ +z(+(+r(+k)),+(+r(+(1.0-k))))*2.0}while((a|0)!=(c|0));e[d>>3]=h;i=0;m=h;m=m*6371.007180918475;m=m*1.0e3;e[d>>3]=m;S=j;return i|0}function lc(a){a=a|0;var c=0,d=0,e=0;c=fd(1,12)|0;if(!c)H(22635,22590,49,22648);d=a+4|0;e=b[d>>2]|0;if(e|0){e=e+8|0;b[e>>2]=c;b[d>>2]=c;return c|0}if(b[a>>2]|0)H(22665,22590,61,22688);e=a;b[e>>2]=c;b[d>>2]=c;return c|0}function mc(a,c){a=a|0;c=c|0;var d=0,e=0;e=dd(24)|0;if(!e)H(22702,22590,78,22716);b[e>>2]=b[c>>2];b[e+4>>2]=b[c+4>>2];b[e+8>>2]=b[c+8>>2];b[e+12>>2]=b[c+12>>2];b[e+16>>2]=0;c=a+4|0;d=b[c>>2]|0;if(d|0){b[d+16>>2]=e;b[c>>2]=e;return e|0}if(b[a>>2]|0)H(22731,22590,82,22716);b[a>>2]=e;b[c>>2]=e;return e|0}function nc(a){a=a|0;var c=0,d=0,e=0,f=0;if(!a)return;e=1;while(1){c=b[a>>2]|0;if(c|0)do{d=b[c>>2]|0;if(d|0)do{f=d;d=b[d+16>>2]|0;ed(f)}while((d|0)!=0);f=c;c=b[c+8>>2]|0;ed(f)}while((c|0)!=0);c=a;a=b[a+8>>2]|0;if(!e)ed(c);if(!a)break;else e=0}return}function oc(a){a=a|0;var c=0,d=0,f=0,g=0,h=0.0,i=0,j=0.0,k=0.0,l=0,m=0,n=0,o=0,p=0,r=0,s=0.0,t=0.0,u=0.0,v=0.0,w=0.0,x=0.0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,I=0,J=0,K=0;g=a+8|0;if(b[g>>2]|0){K=1;return K|0}f=b[a>>2]|0;if(!f){K=0;return K|0}c=f;d=0;do{d=d+1|0;c=b[c+8>>2]|0}while((c|0)!=0);if(d>>>0<2){K=0;return K|0}I=dd(d<<2)|0;if(!I)H(22751,22590,317,22770);G=dd(d<<5)|0;if(!G)H(22792,22590,321,22770);b[a>>2]=0;z=a+4|0;b[z>>2]=0;b[g>>2]=0;d=0;F=0;y=0;n=0;a:while(1){m=b[f>>2]|0;if(m){h=0.0;i=m;do{k=+e[i+8>>3];c=i;i=b[i+16>>2]|0;l=(i|0)==0;g=l?m:i;j=+e[g+8>>3];if(+q(+(k-j))>3.141592653589793){K=14;break}h=h+(j-k)*(+e[c>>3]+ +e[g>>3])}while(!l);if((K|0)==14){K=0;h=0.0;c=m;do{x=+e[c+8>>3];E=c+16|0;D=b[E>>2]|0;D=(D|0)==0?m:D;w=+e[D+8>>3];h=h+(+e[c>>3]+ +e[D>>3])*((w<0.0?w+6.283185307179586:w)-(x<0.0?x+6.283185307179586:x));c=b[((c|0)==0?f:E)>>2]|0}while((c|0)!=0)}if(h>0.0){b[I+(F<<2)>>2]=f;F=F+1|0;g=y;c=n}else K=19}else K=19;if((K|0)==19){K=0;do if(!d)if(!n)if(!(b[a>>2]|0)){g=z;i=a;c=f;d=a;break}else{K=27;break a}else{g=z;i=n+8|0;c=f;d=a;break}else{c=d+8|0;if(b[c>>2]|0){K=21;break a}d=fd(1,12)|0;if(!d){K=23;break a}b[c>>2]=d;g=d+4|0;i=d;c=n}while(0);b[i>>2]=f;b[g>>2]=f;i=G+(y<<5)|0;l=b[f>>2]|0;if(l){m=G+(y<<5)+8|0;e[m>>3]=1797693134862315708145274.0e284;n=G+(y<<5)+24|0;e[n>>3]=1797693134862315708145274.0e284;e[i>>3]=-1797693134862315708145274.0e284;o=G+(y<<5)+16|0;e[o>>3]=-1797693134862315708145274.0e284;u=1797693134862315708145274.0e284;v=-1797693134862315708145274.0e284;g=0;p=l;k=1797693134862315708145274.0e284;s=1797693134862315708145274.0e284;t=-1797693134862315708145274.0e284;j=-1797693134862315708145274.0e284;while(1){h=+e[p>>3];x=+e[p+8>>3];p=b[p+16>>2]|0;r=(p|0)==0;w=+e[(r?l:p)+8>>3];if(h>3]=h;k=h}if(x>3]=x;s=x}if(h>t)e[i>>3]=h;else h=t;if(x>j){e[o>>3]=x;j=x}u=x>0.0&xv?x:v;g=g|+q(+(x-w))>3.141592653589793;if(r)break;else t=h}if(g){e[o>>3]=v;e[n>>3]=u}}else{b[i>>2]=0;b[i+4>>2]=0;b[i+8>>2]=0;b[i+12>>2]=0;b[i+16>>2]=0;b[i+20>>2]=0;b[i+24>>2]=0;b[i+28>>2]=0}g=y+1|0}E=f+8|0;f=b[E>>2]|0;b[E>>2]=0;if(!f){K=45;break}else{y=g;n=c}}if((K|0)==21)H(22568,22590,35,22602);else if((K|0)==23)H(22622,22590,37,22602);else if((K|0)==27)H(22665,22590,61,22688);else if((K|0)==45){b:do if((F|0)>0){E=(g|0)==0;C=g<<2;D=(a|0)==0;B=0;c=0;while(1){A=b[I+(B<<2)>>2]|0;if(!E){y=dd(C)|0;if(!y){K=50;break}z=dd(C)|0;if(!z){K=52;break}c:do if(!D){g=0;d=0;i=a;while(1){f=G+(g<<5)|0;if(pc(b[i>>2]|0,f,b[A>>2]|0)|0){b[y+(d<<2)>>2]=i;b[z+(d<<2)>>2]=f;r=d+1|0}else r=d;i=b[i+8>>2]|0;if(!i)break;else{g=g+1|0;d=r}}if((r|0)>0){f=b[y>>2]|0;if((r|0)==1)d=f;else{o=0;p=-1;d=f;n=f;while(1){l=b[n>>2]|0;f=0;i=0;while(1){g=b[b[y+(i<<2)>>2]>>2]|0;if((g|0)==(l|0))m=f;else m=f+((pc(g,b[z+(i<<2)>>2]|0,b[l>>2]|0)|0)&1)|0;i=i+1|0;if((i|0)==(r|0))break;else f=m}g=(m|0)>(p|0);d=g?n:d;f=o+1|0;if((f|0)==(r|0))break c;o=f;p=g?m:p;n=b[y+(f<<2)>>2]|0}}}else d=0}else d=0;while(0);ed(y);ed(z);if(d){g=d+4|0;f=b[g>>2]|0;if(!f){if(b[d>>2]|0){K=70;break}}else d=f+8|0;b[d>>2]=A;b[g>>2]=A}else K=73}else K=73;if((K|0)==73){K=0;c=b[A>>2]|0;if(c|0)do{z=c;c=b[c+16>>2]|0;ed(z)}while((c|0)!=0);ed(A);c=2}B=B+1|0;if((B|0)>=(F|0)){J=c;break b}}if((K|0)==50)H(22807,22590,249,22826);else if((K|0)==52)H(22845,22590,252,22826);else if((K|0)==70)H(22665,22590,61,22688)}else J=0;while(0);ed(I);ed(G);K=J;return K|0}return 0}function pc(a,c,d){a=a|0;c=c|0;d=d|0;var f=0.0,g=0.0,h=0.0,i=0.0,j=0.0,k=0.0,l=0.0,m=0;if(!(xa(c,d)|0)){a=0;return a|0}c=wa(c)|0;f=+e[d>>3];g=+e[d+8>>3];g=c&g<0.0?g+6.283185307179586:g;a=b[a>>2]|0;if(!a){a=0;return a|0}if(c){c=0;l=g;d=a;a:while(1){while(1){i=+e[d>>3];g=+e[d+8>>3];d=d+16|0;m=b[d>>2]|0;m=(m|0)==0?a:m;h=+e[m>>3];j=+e[m+8>>3];if(i>h){k=i;i=j}else{k=h;h=i;i=g;g=j}f=f==h|f==k?f+2.220446049250313e-16:f;if(!(fk))break;d=b[d>>2]|0;if(!d){d=22;break a}}j=i<0.0?i+6.283185307179586:i;i=g<0.0?g+6.283185307179586:g;l=j==l|i==l?l+-2.220446049250313e-16:l;k=j+(i-j)*((f-h)/(k-h));if((k<0.0?k+6.283185307179586:k)>l)c=c^1;d=b[d>>2]|0;if(!d){d=22;break}}if((d|0)==22)return c|0}else{c=0;l=g;d=a;b:while(1){while(1){i=+e[d>>3];g=+e[d+8>>3];d=d+16|0;m=b[d>>2]|0;m=(m|0)==0?a:m;h=+e[m>>3];j=+e[m+8>>3];if(i>h){k=i;i=j}else{k=h;h=i;i=g;g=j}f=f==h|f==k?f+2.220446049250313e-16:f;if(!(fk))break;d=b[d>>2]|0;if(!d){d=22;break b}}l=i==l|g==l?l+-2.220446049250313e-16:l;if(i+(g-i)*((f-h)/(k-h))>l)c=c^1;d=b[d>>2]|0;if(!d){d=22;break}}if((d|0)==22)return c|0}return 0}function qc(c,d,e,f,g){c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;u=S;S=S+32|0;t=u+16|0;s=u;h=qd(c|0,d|0,52)|0;G()|0;h=h&15;p=qd(e|0,f|0,52)|0;G()|0;if((h|0)!=(p&15|0)){t=12;S=u;return t|0}l=qd(c|0,d|0,45)|0;G()|0;l=l&127;m=qd(e|0,f|0,45)|0;G()|0;m=m&127;if(l>>>0>121|m>>>0>121){t=5;S=u;return t|0}p=(l|0)!=(m|0);if(p){j=ta(l,m)|0;if((j|0)==7){t=1;S=u;return t|0}k=ta(m,l)|0;if((k|0)==7)H(22869,22893,161,22903);else{q=j;i=k}}else{q=0;i=0}n=la(l)|0;o=la(m)|0;b[t>>2]=0;b[t+4>>2]=0;b[t+8>>2]=0;b[t+12>>2]=0;do if(!q){Kb(e,f,t)|0;if((n|0)!=0&(o|0)!=0){if((m|0)!=(l|0))H(22976,22893,261,22903);i=Cb(c,d)|0;h=Cb(e,f)|0;if(!((i|0)==7|(h|0)==7))if(!(a[21872+(i*7|0)+h>>0]|0)){i=b[21040+(i*28|0)+(h<<2)>>2]|0;if((i|0)>0){j=t+4|0;h=0;do{Oa(j);h=h+1|0}while((h|0)!=(i|0));r=51}else r=51}else h=1;else h=5}else r=51}else{m=b[4272+(l*28|0)+(q<<2)>>2]|0;j=(m|0)>0;if(!o)if(j){l=0;k=e;j=f;do{k=Gb(k,j)|0;j=G()|0;i=Qa(i)|0;l=l+1|0}while((l|0)!=(m|0));m=i;l=k;k=j}else{m=i;l=e;k=f}else if(j){l=0;k=e;j=f;do{k=Fb(k,j)|0;j=G()|0;i=Qa(i)|0;if((i|0)==1)i=Qa(1)|0;l=l+1|0}while((l|0)!=(m|0));m=i;l=k;k=j}else{m=i;l=e;k=f}Kb(l,k,t)|0;if(!p)H(22918,22893,191,22903);j=(n|0)!=0;i=(o|0)!=0;if(j&i)H(22945,22893,192,22903);if(!j)if(i){i=Cb(l,k)|0;if((i|0)==7){h=5;break}if(a[21872+(i*7|0)+m>>0]|0){h=1;break}l=0;k=b[21040+(m*28|0)+(i<<2)>>2]|0}else{l=0;k=0}else{i=Cb(c,d)|0;if((i|0)==7){h=5;break}if(a[21872+(i*7|0)+q>>0]|0){h=1;break}k=b[21040+(i*28|0)+(q<<2)>>2]|0;l=k}if((l|k|0)<0)h=5;else{if((k|0)>0){j=t+4|0;i=0;do{Oa(j);i=i+1|0}while((i|0)!=(k|0))};b[s>>2]=0;b[s+4>>2]=0;b[s+8>>2]=0;Ma(s,q);if(h|0)while(1){if(!(Ib(h)|0))La(s);else Ka(s);if((h|0)>1)h=h+-1|0;else break}if((l|0)>0){h=0;do{Oa(s);h=h+1|0}while((h|0)!=(l|0))}r=t+4|0;Ea(r,s,r);Ca(r);r=51}}while(0);if((r|0)==51){h=t+4|0;b[g>>2]=b[h>>2];b[g+4>>2]=b[h+4>>2];b[g+8>>2]=b[h+8>>2];h=0}t=h;S=u;return t|0}function rc(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;p=S;S=S+48|0;h=p+36|0;i=p+24|0;j=p+12|0;k=p;g=qd(a|0,c|0,52)|0;G()|0;g=g&15;n=qd(a|0,c|0,45)|0;G()|0;n=n&127;if(n>>>0>121){e=5;S=p;return e|0}l=la(n)|0;rd(g|0,0,52)|0;r=G()|0|134225919;q=e;b[q>>2]=-1;b[q+4>>2]=r;if(!g){if((b[d>>2]|0)>1){r=1;S=p;return r|0}if((b[d+4>>2]|0)>1){r=1;S=p;return r|0}if((b[d+8>>2]|0)>1){r=1;S=p;return r|0}f=sa(n,Ha(d)|0)|0;if((f|0)==127){r=1;S=p;return r|0}o=rd(f|0,0,45)|0;q=G()|0;n=e;q=b[n+4>>2]&-1040385|q;r=e;b[r>>2]=b[n>>2]|o;b[r+4>>2]=q;r=0;S=p;return r|0};b[h>>2]=b[d>>2];b[h+4>>2]=b[d+4>>2];b[h+8>>2]=b[d+8>>2];while(1){b[i>>2]=b[h>>2];b[i+4>>2]=b[h+4>>2];b[i+8>>2]=b[h+8>>2];if(!(Ib(g)|0)){Ja(h);b[j>>2]=b[h>>2];b[j+4>>2]=b[h+4>>2];b[j+8>>2]=b[h+8>>2];La(j)}else{Ia(h);b[j>>2]=b[h>>2];b[j+4>>2]=b[h+4>>2];b[j+8>>2]=b[h+8>>2];Ka(j)}Fa(i,j,k);Ca(k);q=e;s=b[q>>2]|0;q=b[q+4>>2]|0;t=(15-g|0)*3|0;d=rd(7,0,t|0)|0;q=q&~(G()|0);t=rd(Ha(k)|0,0,t|0)|0;q=G()|0|q;r=e;b[r>>2]=t|s&~d;b[r+4>>2]=q;if((g|0)>1)g=g+-1|0;else break}a:do if(((b[h>>2]|0)<=1?(b[h+4>>2]|0)<=1:0)?(b[h+8>>2]|0)<=1:0){d=Ha(h)|0;i=sa(n,d)|0;if((i|0)==127)k=0;else k=la(i)|0;b:do if(!d)if((l|0)!=0&(k|0)!=0){f=Cb(a,c)|0;g=e;g=Cb(b[g>>2]|0,b[g+4>>2]|0)|0;if((f|0)==7|(g|0)==7){f=5;break a}g=b[21248+(f*28|0)+(g<<2)>>2]|0;if((g|0)<0){f=5;break a}if(!g){f=i;g=56}else{h=e;f=0;d=b[h>>2]|0;h=b[h+4>>2]|0;do{d=Eb(d,h)|0;h=G()|0;t=e;b[t>>2]=d;b[t+4>>2]=h;f=f+1|0}while((f|0)<(g|0));f=i;g=55}}else{f=i;g=55}else{if(l){g=Cb(a,c)|0;if((g|0)==7){f=5;break a}h=b[21248+(g*28|0)+(d<<2)>>2]|0;if((h|0)>0){g=d;d=0;do{g=Pa(g)|0;d=d+1|0}while((d|0)!=(h|0))}else g=d;if((g|0)==1){f=9;break a}d=sa(n,g)|0;if((d|0)==127)H(23003,22893,406,23033);if(!(la(d)|0)){f=d;o=h;m=g}else H(23048,22893,407,23033)}else{f=i;o=0;m=d}j=b[4272+(n*28|0)+(m<<2)>>2]|0;if((j|0)<=-1)H(23079,22893,414,23033);if(!k){if((o|0)<0){f=5;break a}if(o|0){h=e;g=0;d=b[h>>2]|0;h=b[h+4>>2]|0;do{d=Eb(d,h)|0;h=G()|0;t=e;b[t>>2]=d;b[t+4>>2]=h;g=g+1|0}while((g|0)<(o|0))}if((j|0)<=0){g=55;break}h=e;g=0;d=b[h>>2]|0;h=b[h+4>>2]|0;while(1){d=Eb(d,h)|0;h=G()|0;t=e;b[t>>2]=d;b[t+4>>2]=h;g=g+1|0;if((g|0)==(j|0)){g=55;break b}}}i=ta(f,n)|0;if((i|0)==7)H(22869,22893,423,23033);g=e;d=b[g>>2]|0;g=b[g+4>>2]|0;if((j|0)>0){h=0;do{d=Eb(d,g)|0;g=G()|0;t=e;b[t>>2]=d;b[t+4>>2]=g;h=h+1|0}while((h|0)!=(j|0))}g=Cb(d,g)|0;if((g|0)==7){f=5;break a}d=ma(f)|0;d=b[(d?21664:21456)+(i*28|0)+(g<<2)>>2]|0;if((d|0)<0){f=5;break a}if(!d)g=55;else{i=e;g=0;h=b[i>>2]|0;i=b[i+4>>2]|0;do{h=Db(h,i)|0;i=G()|0;t=e;b[t>>2]=h;b[t+4>>2]=i;g=g+1|0}while((g|0)<(d|0));g=55}}while(0);if((g|0)==55)if(k)g=56;if((g|0)==56){t=e;if((Cb(b[t>>2]|0,b[t+4>>2]|0)|0)==1){f=9;break}}t=e;r=b[t>>2]|0;t=b[t+4>>2]&-1040385;s=rd(f|0,0,45)|0;t=t|(G()|0);f=e;b[f>>2]=r|s;b[f+4>>2]=t;f=0}else f=1;while(0);t=f;S=p;return t|0}function sc(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0;h=S;S=S+16|0;g=h;if(!e){a=qc(a,b,c,d,g)|0;if(!a){Ua(g,f);a=0}}else a=15;S=h;return a|0}function tc(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0;g=S;S=S+16|0;f=g;if(!d){Va(c,f);a=rc(a,b,f,e)|0}else a=15;S=g;return a|0}function uc(a,c,d,e,f){a=a|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0;j=S;S=S+32|0;h=j+12|0;i=j;g=qc(a,c,a,c,h)|0;if(g|0){i=g;S=j;return i|0}a=qc(a,c,d,e,i)|0;if(a|0){i=a;S=j;return i|0}h=Ta(h,i)|0;i=f;b[i>>2]=h;b[i+4>>2]=((h|0)<0)<<31>>31;i=0;S=j;return i|0}function vc(a,c,d,e,f){a=a|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0;j=S;S=S+32|0;h=j+12|0;i=j;g=qc(a,c,a,c,h)|0;if(!g){g=qc(a,c,d,e,i)|0;if(!g){e=Ta(h,i)|0;e=gd(e|0,((e|0)<0)<<31>>31|0,1,0)|0;h=G()|0;i=f;b[i>>2]=e;b[i+4>>2]=h;i=0;S=j;return i|0}}i=g;S=j;return i|0}function wc(a,c,d,e,f){a=a|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0.0,k=0.0,l=0,m=0,n=0,o=0,p=0.0,r=0.0,s=0.0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0.0;z=S;S=S+48|0;h=z+24|0;i=z+12|0;y=z;g=qc(a,c,a,c,h)|0;if(!g){g=qc(a,c,d,e,i)|0;if(!g){w=Ta(h,i)|0;x=((w|0)<0)<<31>>31;b[h>>2]=0;b[h+4>>2]=0;b[h+8>>2]=0;b[i>>2]=0;b[i+4>>2]=0;b[i+8>>2]=0;g=qc(a,c,a,c,h)|0;if(!g){g=qc(a,c,d,e,i)|0;if(!g){Wa(h);Wa(i);if(!w){g=h+4|0;d=h+8|0;t=g;u=d;v=h;e=b[h>>2]|0;g=b[g>>2]|0;d=b[d>>2]|0;r=0.0;s=0.0;p=0.0}else{m=b[h>>2]|0;p=+(w|0);t=h+4|0;n=b[t>>2]|0;u=h+8|0;o=b[u>>2]|0;v=h;e=m;g=n;d=o;r=+((b[i>>2]|0)-m|0)/p;s=+((b[i+4>>2]|0)-n|0)/p;p=+((b[i+8>>2]|0)-o|0)/p}b[y>>2]=e;o=y+4|0;b[o>>2]=g;n=y+8|0;b[n>>2]=d;a:do if((w|0)<0)g=0;else{l=0;m=0;g=e;while(1){k=+(m>>>0)+4294967296.0*+(l|0);A=r*k+ +(g|0);j=s*k+ +(b[t>>2]|0);k=p*k+ +(b[u>>2]|0);d=~~+td(+A);h=~~+td(+j);g=~~+td(+k);A=+q(+(+(d|0)-A));j=+q(+(+(h|0)-j));k=+q(+(+(g|0)-k));do if(!(A>j&A>k)){i=0-d|0;if(j>k){e=i-g|0;break}else{e=h;g=i-h|0;break}}else{d=0-(h+g)|0;e=h}while(0);b[y>>2]=d;b[o>>2]=e;b[n>>2]=g;Xa(y);g=rc(a,c,y,f+(m<<3)|0)|0;if(g|0)break a;if(!((l|0)<(x|0)|(l|0)==(x|0)&m>>>0>>0)){g=0;break a}g=gd(m|0,l|0,1,0)|0;i=G()|0;l=i;m=g;g=b[v>>2]|0}}while(0)}}y=g;S=z;return y|0}}y=g;S=z;return y|0}function xc(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0;if((c|0)==0&(d|0)==0){e=0;f=1;F(e|0);return f|0}f=a;e=b;a=1;b=0;do{g=(c&1|0)==0&0==0;a=md((g?1:f)|0,(g?0:e)|0,a|0,b|0)|0;b=G()|0;c=pd(c|0,d|0,1)|0;d=G()|0;f=md(f|0,e|0,f|0,e|0)|0;e=G()|0}while(!((c|0)==0&(d|0)==0));F(b|0);return a|0}function yc(a,c,d){a=a|0;c=c|0;d=d|0;var f=0.0,g=0.0,h=0.0,i=0.0,j=0.0,k=0.0,l=0,m=0.0,n=0,o=0;if(!(xa(c,d)|0)){o=0;return o|0}c=wa(c)|0;f=+e[d>>3];g=+e[d+8>>3];g=c&g<0.0?g+6.283185307179586:g;o=b[a>>2]|0;if((o|0)<=0){o=0;return o|0}n=b[a+4>>2]|0;if(c){c=0;m=g;d=-1;a=0;a:while(1){l=a;while(1){i=+e[n+(l<<4)>>3];g=+e[n+(l<<4)+8>>3];a=(d+2|0)%(o|0)|0;h=+e[n+(a<<4)>>3];j=+e[n+(a<<4)+8>>3];if(i>h){k=i;i=j}else{k=h;h=i;i=g;g=j}f=f==h|f==k?f+2.220446049250313e-16:f;if(!(fk))break;d=l+1|0;if((d|0)>=(o|0)){d=22;break a}else{a=l;l=d;d=a}}j=i<0.0?i+6.283185307179586:i;i=g<0.0?g+6.283185307179586:g;m=j==m|i==m?m+-2.220446049250313e-16:m;k=j+(i-j)*((f-h)/(k-h));if((k<0.0?k+6.283185307179586:k)>m)c=c^1;a=l+1|0;if((a|0)>=(o|0)){d=22;break}else d=l}if((d|0)==22)return c|0}else{c=0;m=g;d=-1;a=0;b:while(1){l=a;while(1){i=+e[n+(l<<4)>>3];g=+e[n+(l<<4)+8>>3];a=(d+2|0)%(o|0)|0;h=+e[n+(a<<4)>>3];j=+e[n+(a<<4)+8>>3];if(i>h){k=i;i=j}else{k=h;h=i;i=g;g=j}f=f==h|f==k?f+2.220446049250313e-16:f;if(!(fk))break;d=l+1|0;if((d|0)>=(o|0)){d=22;break b}else{a=l;l=d;d=a}}m=i==m|g==m?m+-2.220446049250313e-16:m;if(i+(g-i)*((f-h)/(k-h))>m)c=c^1;a=l+1|0;if((a|0)>=(o|0)){d=22;break}else d=l}if((d|0)==22)return c|0}return 0}function zc(a,c){a=a|0;c=c|0;var d=0.0,f=0.0,g=0.0,h=0.0,i=0.0,j=0.0,k=0.0,l=0.0,m=0.0,n=0,o=0,p=0,r=0,s=0,t=0,u=0,v=0;r=b[a>>2]|0;if(!r){b[c>>2]=0;b[c+4>>2]=0;b[c+8>>2]=0;b[c+12>>2]=0;b[c+16>>2]=0;b[c+20>>2]=0;b[c+24>>2]=0;b[c+28>>2]=0;return}s=c+8|0;e[s>>3]=1797693134862315708145274.0e284;t=c+24|0;e[t>>3]=1797693134862315708145274.0e284;e[c>>3]=-1797693134862315708145274.0e284;u=c+16|0;e[u>>3]=-1797693134862315708145274.0e284;if((r|0)<=0)return;o=b[a+4>>2]|0;l=1797693134862315708145274.0e284;m=-1797693134862315708145274.0e284;n=0;a=-1;h=1797693134862315708145274.0e284;i=1797693134862315708145274.0e284;k=-1797693134862315708145274.0e284;f=-1797693134862315708145274.0e284;p=0;while(1){d=+e[o+(p<<4)>>3];j=+e[o+(p<<4)+8>>3];a=a+2|0;g=+e[o+(((a|0)==(r|0)?0:a)<<4)+8>>3];if(d>3]=d;h=d}if(j>3]=j;i=j}if(d>k)e[c>>3]=d;else d=k;if(j>f){e[u>>3]=j;f=j}l=j>0.0&jm?j:m;n=n|+q(+(j-g))>3.141592653589793;a=p+1|0;if((a|0)==(r|0))break;else{v=p;k=d;p=a;a=v}}if(!n)return;e[u>>3]=m;e[t>>3]=l;return}function Ac(a,c){a=a|0;c=c|0;var d=0,f=0,g=0,h=0.0,i=0.0,j=0.0,k=0.0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;r=b[a>>2]|0;if(r){s=c+8|0;e[s>>3]=1797693134862315708145274.0e284;t=c+24|0;e[t>>3]=1797693134862315708145274.0e284;e[c>>3]=-1797693134862315708145274.0e284;u=c+16|0;e[u>>3]=-1797693134862315708145274.0e284;if((r|0)>0){g=b[a+4>>2]|0;o=1797693134862315708145274.0e284;p=-1797693134862315708145274.0e284;f=0;d=-1;k=1797693134862315708145274.0e284;l=1797693134862315708145274.0e284;n=-1797693134862315708145274.0e284;i=-1797693134862315708145274.0e284;v=0;while(1){h=+e[g+(v<<4)>>3];m=+e[g+(v<<4)+8>>3];z=d+2|0;j=+e[g+(((z|0)==(r|0)?0:z)<<4)+8>>3];if(h>3]=h;k=h}if(m>3]=m;l=m}if(h>n)e[c>>3]=h;else h=n;if(m>i){e[u>>3]=m;i=m}o=m>0.0&mp?m:p;f=f|+q(+(m-j))>3.141592653589793;d=v+1|0;if((d|0)==(r|0))break;else{z=v;n=h;v=d;d=z}}if(f){e[u>>3]=p;e[t>>3]=o}}}else{b[c>>2]=0;b[c+4>>2]=0;b[c+8>>2]=0;b[c+12>>2]=0;b[c+16>>2]=0;b[c+20>>2]=0;b[c+24>>2]=0;b[c+28>>2]=0}z=a+8|0;d=b[z>>2]|0;if((d|0)<=0)return;y=a+12|0;x=0;do{g=b[y>>2]|0;f=x;x=x+1|0;t=c+(x<<5)|0;u=b[g+(f<<3)>>2]|0;if(u){v=c+(x<<5)+8|0;e[v>>3]=1797693134862315708145274.0e284;a=c+(x<<5)+24|0;e[a>>3]=1797693134862315708145274.0e284;e[t>>3]=-1797693134862315708145274.0e284;w=c+(x<<5)+16|0;e[w>>3]=-1797693134862315708145274.0e284;if((u|0)>0){r=b[g+(f<<3)+4>>2]|0;o=1797693134862315708145274.0e284;p=-1797693134862315708145274.0e284;g=0;f=-1;s=0;k=1797693134862315708145274.0e284;l=1797693134862315708145274.0e284;m=-1797693134862315708145274.0e284;i=-1797693134862315708145274.0e284;while(1){h=+e[r+(s<<4)>>3];n=+e[r+(s<<4)+8>>3];f=f+2|0;j=+e[r+(((f|0)==(u|0)?0:f)<<4)+8>>3];if(h>3]=h;k=h}if(n>3]=n;l=n}if(h>m)e[t>>3]=h;else h=m;if(n>i){e[w>>3]=n;i=n}o=n>0.0&np?n:p;g=g|+q(+(n-j))>3.141592653589793;f=s+1|0;if((f|0)==(u|0))break;else{A=s;s=f;m=h;f=A}}if(g){e[w>>3]=p;e[a>>3]=o}}}else{b[t>>2]=0;b[t+4>>2]=0;b[t+8>>2]=0;b[t+12>>2]=0;b[t+16>>2]=0;b[t+20>>2]=0;b[t+24>>2]=0;b[t+28>>2]=0;d=b[z>>2]|0}}while((x|0)<(d|0));return}function Bc(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,f=0,g=0;if(!(yc(a,c,d)|0)){f=0;return f|0}f=a+8|0;if((b[f>>2]|0)<=0){f=1;return f|0}e=a+12|0;a=0;while(1){g=a;a=a+1|0;if(yc((b[e>>2]|0)+(g<<3)|0,c+(a<<5)|0,d)|0){a=0;e=6;break}if((a|0)>=(b[f>>2]|0)){a=1;e=6;break}}if((e|0)==6)return a|0;return 0}function Cc(){return 8}function Dc(){return 16}function Ec(){return 168}function Fc(){return 8}function Gc(){return 16}function Hc(){return 12}function Ic(){return 8}function Jc(a){a=a|0;return +(+((b[a>>2]|0)>>>0)+4294967296.0*+(b[a+4>>2]|0))}function Kc(a){a=a|0;var b=0.0,c=0.0;c=+e[a>>3];b=+e[a+8>>3];return +(+r(+(c*c+b*b)))}function Lc(a,b,c,d,f){a=a|0;b=b|0;c=c|0;d=d|0;f=f|0;var g=0.0,h=0.0,i=0.0,j=0.0,k=0.0,l=0.0,m=0.0,n=0.0;k=+e[a>>3];j=+e[b>>3]-k;i=+e[a+8>>3];h=+e[b+8>>3]-i;m=+e[c>>3];g=+e[d>>3]-m;n=+e[c+8>>3];l=+e[d+8>>3]-n;g=(g*(i-n)-(k-m)*l)/(j*l-h*g);e[f>>3]=k+j*g;e[f+8>>3]=i+h*g;return}function Mc(a,b){a=a|0;b=b|0;if(!(+e[a>>3]==+e[b>>3])){b=0;return b|0}b=+e[a+8>>3]==+e[b+8>>3];return b|0}function Nc(a,b){a=a|0;b=b|0;var c=0.0,d=0.0,f=0.0;f=+e[a>>3]-+e[b>>3];d=+e[a+8>>3]-+e[b+8>>3];c=+e[a+16>>3]-+e[b+16>>3];return +(f*f+d*d+c*c)}function Oc(a,b){a=a|0;b=b|0;var c=0.0,d=0.0,f=0.0;c=+e[a>>3];d=+t(+c);c=+u(+c);e[b+16>>3]=c;c=+e[a+8>>3];f=d*+t(+c);e[b>>3]=f;c=d*+u(+c);e[b+8>>3]=c;return}function Pc(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,f=0,g=0;g=S;S=S+16|0;f=g;e=ub(a,c)|0;if((d+-1|0)>>>0>5){f=-1;S=g;return f|0}e=(e|0)!=0;if((d|0)==1&e){f=-1;S=g;return f|0}do if(!(Qc(a,c,f)|0))if(e){e=((b[21936+(d<<2)>>2]|0)+5-(b[f>>2]|0)|0)%5|0;break}else{e=((b[21968+(d<<2)>>2]|0)+6-(b[f>>2]|0)|0)%6|0;break}else e=-1;while(0);f=e;S=g;return f|0}function Qc(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;l=S;S=S+32|0;i=l+16|0;j=l;e=Lb(a,c,i)|0;if(e|0){d=e;S=l;return d|0}f=qb(a,c)|0;k=Cb(a,c)|0;pa(f,j);e=qa(f,b[i>>2]|0)|0;do if(la(f)|0){do switch(f|0){case 4:{a=0;g=15;break}case 14:{a=1;g=15;break}case 24:{a=2;g=15;break}case 38:{a=3;g=15;break}case 49:{a=4;g=15;break}case 58:{a=5;g=15;break}case 63:{a=6;g=15;break}case 72:{a=7;g=15;break}case 83:{a=8;g=15;break}case 97:{a=9;g=15;break}case 107:{a=10;g=15;break}case 117:{a=11;g=15;break}default:{h=0;c=0}}while(0);if((g|0)==15){h=b[22e3+(a*24|0)+8>>2]|0;c=b[22e3+(a*24|0)+16>>2]|0}a=b[i>>2]|0;if((a|0)!=(b[j>>2]|0)){j=ma(f)|0;a=b[i>>2]|0;if(j|(a|0)==(c|0))e=(e+1|0)%6|0}if((k|0)==3&(a|0)==(c|0)){e=(e+5|0)%6|0;break}if((k|0)==5&(a|0)==(h|0))e=(e+1|0)%6|0}while(0);b[d>>2]=e;d=0;S=l;return d|0}function Rc(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;w=S;S=S+32|0;v=w+24|0;t=w+20|0;r=w+8|0;p=w+16|0;n=w;i=(ub(a,c)|0)==0;i=i?6:5;k=qd(a|0,c|0,52)|0;G()|0;k=k&15;if(i>>>0<=d>>>0){e=2;S=w;return e|0}l=(k|0)==0;if(!(!l?(s=rd(7,0,(k^15)*3|0)|0,(s&a|0)==0&((G()|0)&c|0)==0):0)){f=(ub(a,c)|0)!=0;if(((f?4:5)|0)<(d|0)){e=1;S=w;return e|0}if(Qc(a,c,v)|0){e=1;S=w;return e|0}g=(b[v>>2]|0)+d|0;if(f)f=22288+(((g|0)%5|0)<<2)|0;else f=22320+(((g|0)%6|0)<<2)|0;s=b[f>>2]|0;if((s|0)==7){e=1;S=w;return e|0}b[t>>2]=0;da(a,c,s,t,r)|0;h=r;j=b[h>>2]|0;h=b[h+4>>2]|0;g=h>>>0>>0|(h|0)==(c|0)&j>>>0>>0;f=g?j:a;g=g?h:c;if(!(!l?(l=rd(7,0,(k^15)*3|0)|0,(j&l|0)==0&(h&(G()|0)|0)==0):0))o=13;a:do if((o|0)==13){h=(d+-1+i|0)%(i|0)|0;i=ub(a,c)|0;do if((h|0)>=0?(m=(i|0)!=0,((m?4:5)|0)>=(h|0)):0){if(Qc(a,c,v)|0)break;h=(b[v>>2]|0)+h|0;if(m)h=22288+(((h|0)%5|0)<<2)|0;else h=22320+(((h|0)%6|0)<<2)|0;h=b[h>>2]|0;if((h|0)!=7){b[p>>2]=0;da(a,c,h,p,n)|0;j=n;i=b[j>>2]|0;j=b[j+4>>2]|0;if(j>>>0>>0|(j|0)==(g|0)&i>>>0>>0){if(!(ub(i,j)|0))f=b[22384+((((b[p>>2]|0)+(b[22352+(h<<2)>>2]|0)|0)%6|0)<<2)>>2]|0;else f=ea(i,j,a,c)|0;d=ub(i,j)|0;if((f+-1|0)>>>0<=5?(q=(d|0)!=0,!((f|0)==1&q)):0){do if(!(Qc(i,j,v)|0))if(q){d=((b[21936+(f<<2)>>2]|0)+5-(b[v>>2]|0)|0)%5|0;break}else{d=((b[21968+(f<<2)>>2]|0)+6-(b[v>>2]|0)|0)%6|0;break}else d=-1;while(0);f=i;g=j}else{d=-1;f=i;g=j}}h=r;j=b[h>>2]|0;h=b[h+4>>2]|0;break a}}while(0);e=1;S=w;return e|0}while(0);if((f|0)==(j|0)&(g|0)==(h|0)){i=(ub(j,h)|0)!=0;if(i)a=ea(j,h,a,c)|0;else a=b[22384+((((b[t>>2]|0)+(b[22352+(s<<2)>>2]|0)|0)%6|0)<<2)>>2]|0;d=ub(j,h)|0;if((a+-1|0)>>>0<=5?(u=(d|0)!=0,!((a|0)==1&u)):0)do if(!(Qc(j,h,v)|0))if(u){d=((b[21936+(a<<2)>>2]|0)+5-(b[v>>2]|0)|0)%5|0;break}else{d=((b[21968+(a<<2)>>2]|0)+6-(b[v>>2]|0)|0)%6|0;break}else d=-1;while(0);else d=-1;d=d+1|0;d=(d|0)==6|i&(d|0)==5?0:d}c=g;a=f}u=rd(d|0,0,56)|0;v=G()|0|c&-2130706433|536870912;b[e>>2]=u|a;b[e+4>>2]=v;e=0;S=w;return e|0}function Sc(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,f=0,g=0;g=(ub(a,c)|0)==0;e=Rc(a,c,0,d)|0;f=(e|0)==0;if(g){if(!f){g=e;return g|0}e=Rc(a,c,1,d+8|0)|0;if(e|0){g=e;return g|0}e=Rc(a,c,2,d+16|0)|0;if(e|0){g=e;return g|0}e=Rc(a,c,3,d+24|0)|0;if(e|0){g=e;return g|0}e=Rc(a,c,4,d+32|0)|0;if(!e)return Rc(a,c,5,d+40|0)|0;else{g=e;return g|0}}if(!f){g=e;return g|0}e=Rc(a,c,1,d+8|0)|0;if(e|0){g=e;return g|0}e=Rc(a,c,2,d+16|0)|0;if(e|0){g=e;return g|0}e=Rc(a,c,3,d+24|0)|0;if(e|0){g=e;return g|0}e=Rc(a,c,4,d+32|0)|0;if(e|0){g=e;return g|0}g=d+40|0;b[g>>2]=0;b[g+4>>2]=0;g=0;return g|0}function Tc(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;j=S;S=S+192|0;f=j;g=j+168|0;h=qd(a|0,c|0,56)|0;G()|0;h=h&7;i=c&-2130706433|134217728;e=Lb(a,i,g)|0;if(e|0){i=e;S=j;return i|0}c=qd(a|0,c|0,52)|0;G()|0;c=c&15;if(!(ub(a,i)|0))nb(g,c,h,1,f);else jb(g,c,h,1,f);i=f+8|0;b[d>>2]=b[i>>2];b[d+4>>2]=b[i+4>>2];b[d+8>>2]=b[i+8>>2];b[d+12>>2]=b[i+12>>2];i=0;S=j;return i|0}function Uc(a,c){a=a|0;c=c|0;var d=0,e=0,f=0,g=0;f=S;S=S+16|0;d=f;if(!(0==0&(c&2013265920|0)==536870912)){e=0;S=f;return e|0}e=c&-2130706433|134217728;if(!(rb(a,e)|0)){e=0;S=f;return e|0}g=qd(a|0,c|0,56)|0;G()|0;g=(Rc(a,e,g&7,d)|0)==0;e=d;e=g&((b[e>>2]|0)==(a|0)?(b[e+4>>2]|0)==(c|0):0)&1;S=f;return e|0}function Vc(a,c,d){a=a|0;c=c|0;d=d|0;var e=0;if((c|0)>0){e=fd(c,4)|0;b[a>>2]=e;if(!e)H(23102,23125,40,23139)}else b[a>>2]=0;b[a+4>>2]=c;b[a+8>>2]=0;b[a+12>>2]=d;return}function Wc(a){a=a|0;var c=0,d=0,f=0,g=0,h=0,i=0,j=0;g=a+4|0;h=a+12|0;i=a+8|0;a:while(1){d=b[g>>2]|0;c=0;while(1){if((c|0)>=(d|0))break a;f=b[a>>2]|0;j=b[f+(c<<2)>>2]|0;if(!j)c=c+1|0;else break}c=f+(~~(+q(+(+s(10.0,+(+(15-(b[h>>2]|0)|0)))*(+e[j>>3]+ +e[j+8>>3])))%+(d|0))>>>0<<2)|0;d=b[c>>2]|0;b:do if(d|0){f=j+32|0;if((d|0)==(j|0))b[c>>2]=b[f>>2];else{d=d+32|0;c=b[d>>2]|0;if(!c)break;while(1){if((c|0)==(j|0))break;d=c+32|0;c=b[d>>2]|0;if(!c)break b}b[d>>2]=b[f>>2]}ed(j);b[i>>2]=(b[i>>2]|0)+-1}while(0)}ed(b[a>>2]|0);return}function Xc(a){a=a|0;var c=0,d=0,e=0;e=b[a+4>>2]|0;d=0;while(1){if((d|0)>=(e|0)){c=0;d=4;break}c=b[(b[a>>2]|0)+(d<<2)>>2]|0;if(!c)d=d+1|0;else{d=4;break}}if((d|0)==4)return c|0;return 0}function Yc(a,c){a=a|0;c=c|0;var d=0,f=0,g=0,h=0;d=~~(+q(+(+s(10.0,+(+(15-(b[a+12>>2]|0)|0)))*(+e[c>>3]+ +e[c+8>>3])))%+(b[a+4>>2]|0))>>>0;d=(b[a>>2]|0)+(d<<2)|0;f=b[d>>2]|0;if(!f){h=1;return h|0}h=c+32|0;do if((f|0)!=(c|0)){d=b[f+32>>2]|0;if(!d){h=1;return h|0}g=d;while(1){if((g|0)==(c|0)){g=8;break}d=b[g+32>>2]|0;if(!d){d=1;g=10;break}else{f=g;g=d}}if((g|0)==8){b[f+32>>2]=b[h>>2];break}else if((g|0)==10)return d|0}else b[d>>2]=b[h>>2];while(0);ed(c);h=a+8|0;b[h>>2]=(b[h>>2]|0)+-1;h=0;return h|0}function Zc(a,c,d){a=a|0;c=c|0;d=d|0;var f=0,g=0,h=0,i=0;h=dd(40)|0;if(!h)H(23155,23125,98,23168);b[h>>2]=b[c>>2];b[h+4>>2]=b[c+4>>2];b[h+8>>2]=b[c+8>>2];b[h+12>>2]=b[c+12>>2];g=h+16|0;b[g>>2]=b[d>>2];b[g+4>>2]=b[d+4>>2];b[g+8>>2]=b[d+8>>2];b[g+12>>2]=b[d+12>>2];b[h+32>>2]=0;g=~~(+q(+(+s(10.0,+(+(15-(b[a+12>>2]|0)|0)))*(+e[c>>3]+ +e[c+8>>3])))%+(b[a+4>>2]|0))>>>0;g=(b[a>>2]|0)+(g<<2)|0;f=b[g>>2]|0;do if(!f)b[g>>2]=h;else{while(1){if(Vb(f,c)|0?Vb(f+16|0,d)|0:0)break;g=b[f+32>>2]|0;f=(g|0)==0?f:g;if(!(b[f+32>>2]|0)){i=10;break}}if((i|0)==10){b[f+32>>2]=h;break}ed(h);i=f;return i|0}while(0);i=a+8|0;b[i>>2]=(b[i>>2]|0)+1;i=h;return i|0}function _c(a,c,d){a=a|0;c=c|0;d=d|0;var f=0,g=0;g=~~(+q(+(+s(10.0,+(+(15-(b[a+12>>2]|0)|0)))*(+e[c>>3]+ +e[c+8>>3])))%+(b[a+4>>2]|0))>>>0;g=b[(b[a>>2]|0)+(g<<2)>>2]|0;if(!g){d=0;return d|0}if(!d){a=g;while(1){if(Vb(a,c)|0){f=10;break}a=b[a+32>>2]|0;if(!a){a=0;f=10;break}}if((f|0)==10)return a|0}a=g;while(1){if(Vb(a,c)|0?Vb(a+16|0,d)|0:0){f=10;break}a=b[a+32>>2]|0;if(!a){a=0;f=10;break}}if((f|0)==10)return a|0;return 0}function $c(a,c){a=a|0;c=c|0;var d=0;d=~~(+q(+(+s(10.0,+(+(15-(b[a+12>>2]|0)|0)))*(+e[c>>3]+ +e[c+8>>3])))%+(b[a+4>>2]|0))>>>0;a=b[(b[a>>2]|0)+(d<<2)>>2]|0;if(!a){d=0;return d|0}while(1){if(Vb(a,c)|0){c=5;break}a=b[a+32>>2]|0;if(!a){a=0;c=5;break}}if((c|0)==5)return a|0;return 0}function ad(){return 23184}function bd(a){a=+a;return +(+wd(+a))}function cd(a){a=+a;return ~~+bd(a)|0}function dd(a){a=a|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;w=S;S=S+16|0;n=w;do if(a>>>0<245){k=a>>>0<11?16:a+11&-8;a=k>>>3;m=b[5797]|0;d=m>>>a;if(d&3|0){c=(d&1^1)+a|0;a=23228+(c<<1<<2)|0;d=a+8|0;e=b[d>>2]|0;f=e+8|0;g=b[f>>2]|0;if((g|0)==(a|0))b[5797]=m&~(1<>2]=a;b[d>>2]=g}v=c<<3;b[e+4>>2]=v|3;v=e+v+4|0;b[v>>2]=b[v>>2]|1;v=f;S=w;return v|0}l=b[5799]|0;if(k>>>0>l>>>0){if(d|0){c=2<>>12&16;c=c>>>i;d=c>>>5&8;c=c>>>d;g=c>>>2&4;c=c>>>g;a=c>>>1&2;c=c>>>a;e=c>>>1&1;e=(d|i|g|a|e)+(c>>>e)|0;c=23228+(e<<1<<2)|0;a=c+8|0;g=b[a>>2]|0;i=g+8|0;d=b[i>>2]|0;if((d|0)==(c|0)){a=m&~(1<>2]=c;b[a>>2]=d;a=m}v=e<<3;h=v-k|0;b[g+4>>2]=k|3;f=g+k|0;b[f+4>>2]=h|1;b[g+v>>2]=h;if(l|0){e=b[5802]|0;c=l>>>3;d=23228+(c<<1<<2)|0;c=1<>2]|0}b[a>>2]=e;b[c+12>>2]=e;b[e+8>>2]=c;b[e+12>>2]=d}b[5799]=h;b[5802]=f;v=i;S=w;return v|0}g=b[5798]|0;if(g){d=(g&0-g)+-1|0;f=d>>>12&16;d=d>>>f;e=d>>>5&8;d=d>>>e;h=d>>>2&4;d=d>>>h;i=d>>>1&2;d=d>>>i;j=d>>>1&1;j=b[23492+((e|f|h|i|j)+(d>>>j)<<2)>>2]|0;d=j;i=j;j=(b[j+4>>2]&-8)-k|0;while(1){a=b[d+16>>2]|0;if(!a){a=b[d+20>>2]|0;if(!a)break}h=(b[a+4>>2]&-8)-k|0;f=h>>>0>>0;d=a;i=f?a:i;j=f?h:j}h=i+k|0;if(h>>>0>i>>>0){f=b[i+24>>2]|0;c=b[i+12>>2]|0;do if((c|0)==(i|0)){a=i+20|0;c=b[a>>2]|0;if(!c){a=i+16|0;c=b[a>>2]|0;if(!c){d=0;break}}while(1){e=c+20|0;d=b[e>>2]|0;if(!d){e=c+16|0;d=b[e>>2]|0;if(!d)break;else{c=d;a=e}}else{c=d;a=e}}b[a>>2]=0;d=c}else{d=b[i+8>>2]|0;b[d+12>>2]=c;b[c+8>>2]=d;d=c}while(0);do if(f|0){c=b[i+28>>2]|0;a=23492+(c<<2)|0;if((i|0)==(b[a>>2]|0)){b[a>>2]=d;if(!d){b[5798]=g&~(1<>2]|0)==(i|0)?v:f+20|0)>>2]=d;if(!d)break}b[d+24>>2]=f;c=b[i+16>>2]|0;if(c|0){b[d+16>>2]=c;b[c+24>>2]=d}c=b[i+20>>2]|0;if(c|0){b[d+20>>2]=c;b[c+24>>2]=d}}while(0);if(j>>>0<16){v=j+k|0;b[i+4>>2]=v|3;v=i+v+4|0;b[v>>2]=b[v>>2]|1}else{b[i+4>>2]=k|3;b[h+4>>2]=j|1;b[h+j>>2]=j;if(l|0){e=b[5802]|0;c=l>>>3;d=23228+(c<<1<<2)|0;c=1<>2]|0}b[a>>2]=e;b[c+12>>2]=e;b[e+8>>2]=c;b[e+12>>2]=d}b[5799]=j;b[5802]=h}v=i+8|0;S=w;return v|0}else m=k}else m=k}else m=k}else if(a>>>0<=4294967231){a=a+11|0;k=a&-8;e=b[5798]|0;if(e){f=0-k|0;a=a>>>8;if(a)if(k>>>0>16777215)j=31;else{m=(a+1048320|0)>>>16&8;q=a<>>16&4;q=q<>>16&2;j=14-(i|m|j)+(q<>>15)|0;j=k>>>(j+7|0)&1|j<<1}else j=0;d=b[23492+(j<<2)>>2]|0;a:do if(!d){d=0;a=0;q=61}else{a=0;i=k<<((j|0)==31?0:25-(j>>>1)|0);g=0;while(1){h=(b[d+4>>2]&-8)-k|0;if(h>>>0>>0)if(!h){a=d;f=0;q=65;break a}else{a=d;f=h}q=b[d+20>>2]|0;d=b[d+16+(i>>>31<<2)>>2]|0;g=(q|0)==0|(q|0)==(d|0)?g:q;if(!d){d=g;q=61;break}else i=i<<1}}while(0);if((q|0)==61){if((d|0)==0&(a|0)==0){a=2<>>12&16;m=m>>>h;g=m>>>5&8;m=m>>>g;i=m>>>2&4;m=m>>>i;j=m>>>1&2;m=m>>>j;d=m>>>1&1;a=0;d=b[23492+((g|h|i|j|d)+(m>>>d)<<2)>>2]|0}if(!d){i=a;h=f}else q=65}if((q|0)==65){g=d;while(1){m=(b[g+4>>2]&-8)-k|0;d=m>>>0>>0;f=d?m:f;a=d?g:a;d=b[g+16>>2]|0;if(!d)d=b[g+20>>2]|0;if(!d){i=a;h=f;break}else g=d}}if(((i|0)!=0?h>>>0<((b[5799]|0)-k|0)>>>0:0)?(l=i+k|0,l>>>0>i>>>0):0){g=b[i+24>>2]|0;c=b[i+12>>2]|0;do if((c|0)==(i|0)){a=i+20|0;c=b[a>>2]|0;if(!c){a=i+16|0;c=b[a>>2]|0;if(!c){c=0;break}}while(1){f=c+20|0;d=b[f>>2]|0;if(!d){f=c+16|0;d=b[f>>2]|0;if(!d)break;else{c=d;a=f}}else{c=d;a=f}}b[a>>2]=0}else{v=b[i+8>>2]|0;b[v+12>>2]=c;b[c+8>>2]=v}while(0);do if(g){a=b[i+28>>2]|0;d=23492+(a<<2)|0;if((i|0)==(b[d>>2]|0)){b[d>>2]=c;if(!c){e=e&~(1<>2]|0)==(i|0)?v:g+20|0)>>2]=c;if(!c)break}b[c+24>>2]=g;a=b[i+16>>2]|0;if(a|0){b[c+16>>2]=a;b[a+24>>2]=c}a=b[i+20>>2]|0;if(a){b[c+20>>2]=a;b[a+24>>2]=c}}while(0);b:do if(h>>>0<16){v=h+k|0;b[i+4>>2]=v|3;v=i+v+4|0;b[v>>2]=b[v>>2]|1}else{b[i+4>>2]=k|3;b[l+4>>2]=h|1;b[l+h>>2]=h;c=h>>>3;if(h>>>0<256){d=23228+(c<<1<<2)|0;a=b[5797]|0;c=1<>2]|0}b[a>>2]=l;b[c+12>>2]=l;b[l+8>>2]=c;b[l+12>>2]=d;break}c=h>>>8;if(c)if(h>>>0>16777215)d=31;else{u=(c+1048320|0)>>>16&8;v=c<>>16&4;v=v<>>16&2;d=14-(t|u|d)+(v<>>15)|0;d=h>>>(d+7|0)&1|d<<1}else d=0;c=23492+(d<<2)|0;b[l+28>>2]=d;a=l+16|0;b[a+4>>2]=0;b[a>>2]=0;a=1<>2]=l;b[l+24>>2]=c;b[l+12>>2]=l;b[l+8>>2]=l;break}c=b[c>>2]|0;c:do if((b[c+4>>2]&-8|0)!=(h|0)){e=h<<((d|0)==31?0:25-(d>>>1)|0);while(1){d=c+16+(e>>>31<<2)|0;a=b[d>>2]|0;if(!a)break;if((b[a+4>>2]&-8|0)==(h|0)){c=a;break c}else{e=e<<1;c=a}}b[d>>2]=l;b[l+24>>2]=c;b[l+12>>2]=l;b[l+8>>2]=l;break b}while(0);u=c+8|0;v=b[u>>2]|0;b[v+12>>2]=l;b[u>>2]=l;b[l+8>>2]=v;b[l+12>>2]=c;b[l+24>>2]=0}while(0);v=i+8|0;S=w;return v|0}else m=k}else m=k}else m=-1;while(0);d=b[5799]|0;if(d>>>0>=m>>>0){c=d-m|0;a=b[5802]|0;if(c>>>0>15){v=a+m|0;b[5802]=v;b[5799]=c;b[v+4>>2]=c|1;b[a+d>>2]=c;b[a+4>>2]=m|3}else{b[5799]=0;b[5802]=0;b[a+4>>2]=d|3;v=a+d+4|0;b[v>>2]=b[v>>2]|1}v=a+8|0;S=w;return v|0}h=b[5800]|0;if(h>>>0>m>>>0){t=h-m|0;b[5800]=t;v=b[5803]|0;u=v+m|0;b[5803]=u;b[u+4>>2]=t|1;b[v+4>>2]=m|3;v=v+8|0;S=w;return v|0}if(!(b[5915]|0)){b[5917]=4096;b[5916]=4096;b[5918]=-1;b[5919]=-1;b[5920]=0;b[5908]=0;b[5915]=n&-16^1431655768;a=4096}else a=b[5917]|0;i=m+48|0;j=m+47|0;g=a+j|0;f=0-a|0;k=g&f;if(k>>>0<=m>>>0){v=0;S=w;return v|0}a=b[5907]|0;if(a|0?(l=b[5905]|0,n=l+k|0,n>>>0<=l>>>0|n>>>0>a>>>0):0){v=0;S=w;return v|0}d:do if(!(b[5908]&4)){d=b[5803]|0;e:do if(d){e=23636;while(1){n=b[e>>2]|0;if(n>>>0<=d>>>0?(n+(b[e+4>>2]|0)|0)>>>0>d>>>0:0)break;a=b[e+8>>2]|0;if(!a){q=128;break e}else e=a}c=g-h&f;if(c>>>0<2147483647){a=xd(c|0)|0;if((a|0)==((b[e>>2]|0)+(b[e+4>>2]|0)|0)){if((a|0)!=(-1|0)){h=c;g=a;q=145;break d}}else{e=a;q=136}}else c=0}else q=128;while(0);do if((q|0)==128){d=xd(0)|0;if((d|0)!=(-1|0)?(c=d,o=b[5916]|0,p=o+-1|0,c=((p&c|0)==0?0:(p+c&0-o)-c|0)+k|0,o=b[5905]|0,p=c+o|0,c>>>0>m>>>0&c>>>0<2147483647):0){n=b[5907]|0;if(n|0?p>>>0<=o>>>0|p>>>0>n>>>0:0){c=0;break}a=xd(c|0)|0;if((a|0)==(d|0)){h=c;g=d;q=145;break d}else{e=a;q=136}}else c=0}while(0);do if((q|0)==136){d=0-c|0;if(!(i>>>0>c>>>0&(c>>>0<2147483647&(e|0)!=(-1|0))))if((e|0)==(-1|0)){c=0;break}else{h=c;g=e;q=145;break d}a=b[5917]|0;a=j-c+a&0-a;if(a>>>0>=2147483647){h=c;g=e;q=145;break d}if((xd(a|0)|0)==(-1|0)){xd(d|0)|0;c=0;break}else{h=a+c|0;g=e;q=145;break d}}while(0);b[5908]=b[5908]|4;q=143}else{c=0;q=143}while(0);if(((q|0)==143?k>>>0<2147483647:0)?(t=xd(k|0)|0,p=xd(0)|0,r=p-t|0,s=r>>>0>(m+40|0)>>>0,!((t|0)==(-1|0)|s^1|t>>>0

>>0&((t|0)!=(-1|0)&(p|0)!=(-1|0))^1)):0){h=s?r:c;g=t;q=145}if((q|0)==145){c=(b[5905]|0)+h|0;b[5905]=c;if(c>>>0>(b[5906]|0)>>>0)b[5906]=c;j=b[5803]|0;f:do if(j){c=23636;while(1){a=b[c>>2]|0;d=b[c+4>>2]|0;if((g|0)==(a+d|0)){q=154;break}e=b[c+8>>2]|0;if(!e)break;else c=e}if(((q|0)==154?(u=c+4|0,(b[c+12>>2]&8|0)==0):0)?g>>>0>j>>>0&a>>>0<=j>>>0:0){b[u>>2]=d+h;v=(b[5800]|0)+h|0;t=j+8|0;t=(t&7|0)==0?0:0-t&7;u=j+t|0;t=v-t|0;b[5803]=u;b[5800]=t;b[u+4>>2]=t|1;b[j+v+4>>2]=40;b[5804]=b[5919];break}if(g>>>0<(b[5801]|0)>>>0)b[5801]=g;d=g+h|0;c=23636;while(1){if((b[c>>2]|0)==(d|0)){q=162;break}a=b[c+8>>2]|0;if(!a)break;else c=a}if((q|0)==162?(b[c+12>>2]&8|0)==0:0){b[c>>2]=g;l=c+4|0;b[l>>2]=(b[l>>2]|0)+h;l=g+8|0;l=g+((l&7|0)==0?0:0-l&7)|0;c=d+8|0;c=d+((c&7|0)==0?0:0-c&7)|0;k=l+m|0;i=c-l-m|0;b[l+4>>2]=m|3;g:do if((j|0)==(c|0)){v=(b[5800]|0)+i|0;b[5800]=v;b[5803]=k;b[k+4>>2]=v|1}else{if((b[5802]|0)==(c|0)){v=(b[5799]|0)+i|0;b[5799]=v;b[5802]=k;b[k+4>>2]=v|1;b[k+v>>2]=v;break}a=b[c+4>>2]|0;if((a&3|0)==1){h=a&-8;e=a>>>3;h:do if(a>>>0<256){a=b[c+8>>2]|0;d=b[c+12>>2]|0;if((d|0)==(a|0)){b[5797]=b[5797]&~(1<>2]=d;b[d+8>>2]=a;break}}else{g=b[c+24>>2]|0;a=b[c+12>>2]|0;do if((a|0)==(c|0)){d=c+16|0;e=d+4|0;a=b[e>>2]|0;if(!a){a=b[d>>2]|0;if(!a){a=0;break}}else d=e;while(1){f=a+20|0;e=b[f>>2]|0;if(!e){f=a+16|0;e=b[f>>2]|0;if(!e)break;else{a=e;d=f}}else{a=e;d=f}}b[d>>2]=0}else{v=b[c+8>>2]|0;b[v+12>>2]=a;b[a+8>>2]=v}while(0);if(!g)break;d=b[c+28>>2]|0;e=23492+(d<<2)|0;do if((b[e>>2]|0)!=(c|0)){v=g+16|0;b[((b[v>>2]|0)==(c|0)?v:g+20|0)>>2]=a;if(!a)break h}else{b[e>>2]=a;if(a|0)break;b[5798]=b[5798]&~(1<>2]=g;d=c+16|0;e=b[d>>2]|0;if(e|0){b[a+16>>2]=e;b[e+24>>2]=a}d=b[d+4>>2]|0;if(!d)break;b[a+20>>2]=d;b[d+24>>2]=a}while(0);c=c+h|0;f=h+i|0}else f=i;c=c+4|0;b[c>>2]=b[c>>2]&-2;b[k+4>>2]=f|1;b[k+f>>2]=f;c=f>>>3;if(f>>>0<256){d=23228+(c<<1<<2)|0;a=b[5797]|0;c=1<>2]|0}b[a>>2]=k;b[c+12>>2]=k;b[k+8>>2]=c;b[k+12>>2]=d;break}c=f>>>8;do if(!c)e=0;else{if(f>>>0>16777215){e=31;break}u=(c+1048320|0)>>>16&8;v=c<>>16&4;v=v<>>16&2;e=14-(t|u|e)+(v<>>15)|0;e=f>>>(e+7|0)&1|e<<1}while(0);c=23492+(e<<2)|0;b[k+28>>2]=e;a=k+16|0;b[a+4>>2]=0;b[a>>2]=0;a=b[5798]|0;d=1<>2]=k;b[k+24>>2]=c;b[k+12>>2]=k;b[k+8>>2]=k;break}c=b[c>>2]|0;i:do if((b[c+4>>2]&-8|0)!=(f|0)){e=f<<((e|0)==31?0:25-(e>>>1)|0);while(1){d=c+16+(e>>>31<<2)|0;a=b[d>>2]|0;if(!a)break;if((b[a+4>>2]&-8|0)==(f|0)){c=a;break i}else{e=e<<1;c=a}}b[d>>2]=k;b[k+24>>2]=c;b[k+12>>2]=k;b[k+8>>2]=k;break g}while(0);u=c+8|0;v=b[u>>2]|0;b[v+12>>2]=k;b[u>>2]=k;b[k+8>>2]=v;b[k+12>>2]=c;b[k+24>>2]=0}while(0);v=l+8|0;S=w;return v|0}c=23636;while(1){a=b[c>>2]|0;if(a>>>0<=j>>>0?(v=a+(b[c+4>>2]|0)|0,v>>>0>j>>>0):0)break;c=b[c+8>>2]|0}f=v+-47|0;a=f+8|0;a=f+((a&7|0)==0?0:0-a&7)|0;f=j+16|0;a=a>>>0>>0?j:a;c=a+8|0;d=h+-40|0;t=g+8|0;t=(t&7|0)==0?0:0-t&7;u=g+t|0;t=d-t|0;b[5803]=u;b[5800]=t;b[u+4>>2]=t|1;b[g+d+4>>2]=40;b[5804]=b[5919];d=a+4|0;b[d>>2]=27;b[c>>2]=b[5909];b[c+4>>2]=b[5910];b[c+8>>2]=b[5911];b[c+12>>2]=b[5912];b[5909]=g;b[5910]=h;b[5912]=0;b[5911]=c;c=a+24|0;do{u=c;c=c+4|0;b[c>>2]=7}while((u+8|0)>>>0>>0);if((a|0)!=(j|0)){g=a-j|0;b[d>>2]=b[d>>2]&-2;b[j+4>>2]=g|1;b[a>>2]=g;c=g>>>3;if(g>>>0<256){d=23228+(c<<1<<2)|0;a=b[5797]|0;c=1<>2]|0}b[a>>2]=j;b[c+12>>2]=j;b[j+8>>2]=c;b[j+12>>2]=d;break}c=g>>>8;if(c)if(g>>>0>16777215)e=31;else{u=(c+1048320|0)>>>16&8;v=c<>>16&4;v=v<>>16&2;e=14-(t|u|e)+(v<>>15)|0;e=g>>>(e+7|0)&1|e<<1}else e=0;d=23492+(e<<2)|0;b[j+28>>2]=e;b[j+20>>2]=0;b[f>>2]=0;c=b[5798]|0;a=1<>2]=j;b[j+24>>2]=d;b[j+12>>2]=j;b[j+8>>2]=j;break}c=b[d>>2]|0;j:do if((b[c+4>>2]&-8|0)!=(g|0)){e=g<<((e|0)==31?0:25-(e>>>1)|0);while(1){d=c+16+(e>>>31<<2)|0;a=b[d>>2]|0;if(!a)break;if((b[a+4>>2]&-8|0)==(g|0)){c=a;break j}else{e=e<<1;c=a}}b[d>>2]=j;b[j+24>>2]=c;b[j+12>>2]=j;b[j+8>>2]=j;break f}while(0);u=c+8|0;v=b[u>>2]|0;b[v+12>>2]=j;b[u>>2]=j;b[j+8>>2]=v;b[j+12>>2]=c;b[j+24>>2]=0}}else{v=b[5801]|0;if((v|0)==0|g>>>0>>0)b[5801]=g;b[5909]=g;b[5910]=h;b[5912]=0;b[5806]=b[5915];b[5805]=-1;b[5810]=23228;b[5809]=23228;b[5812]=23236;b[5811]=23236;b[5814]=23244;b[5813]=23244;b[5816]=23252;b[5815]=23252;b[5818]=23260;b[5817]=23260;b[5820]=23268;b[5819]=23268;b[5822]=23276;b[5821]=23276;b[5824]=23284;b[5823]=23284;b[5826]=23292;b[5825]=23292;b[5828]=23300;b[5827]=23300;b[5830]=23308;b[5829]=23308;b[5832]=23316;b[5831]=23316;b[5834]=23324;b[5833]=23324;b[5836]=23332;b[5835]=23332;b[5838]=23340;b[5837]=23340;b[5840]=23348;b[5839]=23348;b[5842]=23356;b[5841]=23356;b[5844]=23364;b[5843]=23364;b[5846]=23372;b[5845]=23372;b[5848]=23380;b[5847]=23380;b[5850]=23388;b[5849]=23388;b[5852]=23396;b[5851]=23396;b[5854]=23404;b[5853]=23404;b[5856]=23412;b[5855]=23412;b[5858]=23420;b[5857]=23420;b[5860]=23428;b[5859]=23428;b[5862]=23436;b[5861]=23436;b[5864]=23444;b[5863]=23444;b[5866]=23452;b[5865]=23452;b[5868]=23460;b[5867]=23460;b[5870]=23468;b[5869]=23468;b[5872]=23476;b[5871]=23476;v=h+-40|0;t=g+8|0;t=(t&7|0)==0?0:0-t&7;u=g+t|0;t=v-t|0;b[5803]=u;b[5800]=t;b[u+4>>2]=t|1;b[g+v+4>>2]=40;b[5804]=b[5919]}while(0);c=b[5800]|0;if(c>>>0>m>>>0){t=c-m|0;b[5800]=t;v=b[5803]|0;u=v+m|0;b[5803]=u;b[u+4>>2]=t|1;b[v+4>>2]=m|3;v=v+8|0;S=w;return v|0}}v=ad()|0;b[v>>2]=12;v=0;S=w;return v|0}function ed(a){a=a|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;if(!a)return;d=a+-8|0;f=b[5801]|0;a=b[a+-4>>2]|0;c=a&-8;j=d+c|0;do if(!(a&1)){e=b[d>>2]|0;if(!(a&3))return;h=d+(0-e)|0;g=e+c|0;if(h>>>0>>0)return;if((b[5802]|0)==(h|0)){a=j+4|0;c=b[a>>2]|0;if((c&3|0)!=3){i=h;c=g;break}b[5799]=g;b[a>>2]=c&-2;b[h+4>>2]=g|1;b[h+g>>2]=g;return}d=e>>>3;if(e>>>0<256){a=b[h+8>>2]|0;c=b[h+12>>2]|0;if((c|0)==(a|0)){b[5797]=b[5797]&~(1<>2]=c;b[c+8>>2]=a;i=h;c=g;break}}f=b[h+24>>2]|0;a=b[h+12>>2]|0;do if((a|0)==(h|0)){c=h+16|0;d=c+4|0;a=b[d>>2]|0;if(!a){a=b[c>>2]|0;if(!a){a=0;break}}else c=d;while(1){e=a+20|0;d=b[e>>2]|0;if(!d){e=a+16|0;d=b[e>>2]|0;if(!d)break;else{a=d;c=e}}else{a=d;c=e}}b[c>>2]=0}else{i=b[h+8>>2]|0;b[i+12>>2]=a;b[a+8>>2]=i}while(0);if(f){c=b[h+28>>2]|0;d=23492+(c<<2)|0;if((b[d>>2]|0)==(h|0)){b[d>>2]=a;if(!a){b[5798]=b[5798]&~(1<>2]|0)==(h|0)?i:f+20|0)>>2]=a;if(!a){i=h;c=g;break}}b[a+24>>2]=f;c=h+16|0;d=b[c>>2]|0;if(d|0){b[a+16>>2]=d;b[d+24>>2]=a}c=b[c+4>>2]|0;if(c){b[a+20>>2]=c;b[c+24>>2]=a;i=h;c=g}else{i=h;c=g}}else{i=h;c=g}}else{i=d;h=d}while(0);if(h>>>0>=j>>>0)return;a=j+4|0;e=b[a>>2]|0;if(!(e&1))return;if(!(e&2)){if((b[5803]|0)==(j|0)){j=(b[5800]|0)+c|0;b[5800]=j;b[5803]=i;b[i+4>>2]=j|1;if((i|0)!=(b[5802]|0))return;b[5802]=0;b[5799]=0;return}if((b[5802]|0)==(j|0)){j=(b[5799]|0)+c|0;b[5799]=j;b[5802]=h;b[i+4>>2]=j|1;b[h+j>>2]=j;return}f=(e&-8)+c|0;d=e>>>3;do if(e>>>0<256){c=b[j+8>>2]|0;a=b[j+12>>2]|0;if((a|0)==(c|0)){b[5797]=b[5797]&~(1<>2]=a;b[a+8>>2]=c;break}}else{g=b[j+24>>2]|0;a=b[j+12>>2]|0;do if((a|0)==(j|0)){c=j+16|0;d=c+4|0;a=b[d>>2]|0;if(!a){a=b[c>>2]|0;if(!a){d=0;break}}else c=d;while(1){e=a+20|0;d=b[e>>2]|0;if(!d){e=a+16|0;d=b[e>>2]|0;if(!d)break;else{a=d;c=e}}else{a=d;c=e}}b[c>>2]=0;d=a}else{d=b[j+8>>2]|0;b[d+12>>2]=a;b[a+8>>2]=d;d=a}while(0);if(g|0){a=b[j+28>>2]|0;c=23492+(a<<2)|0;if((b[c>>2]|0)==(j|0)){b[c>>2]=d;if(!d){b[5798]=b[5798]&~(1<>2]|0)==(j|0)?e:g+20|0)>>2]=d;if(!d)break}b[d+24>>2]=g;a=j+16|0;c=b[a>>2]|0;if(c|0){b[d+16>>2]=c;b[c+24>>2]=d}a=b[a+4>>2]|0;if(a|0){b[d+20>>2]=a;b[a+24>>2]=d}}}while(0);b[i+4>>2]=f|1;b[h+f>>2]=f;if((i|0)==(b[5802]|0)){b[5799]=f;return}}else{b[a>>2]=e&-2;b[i+4>>2]=c|1;b[h+c>>2]=c;f=c}a=f>>>3;if(f>>>0<256){d=23228+(a<<1<<2)|0;c=b[5797]|0;a=1<>2]|0}b[c>>2]=i;b[a+12>>2]=i;b[i+8>>2]=a;b[i+12>>2]=d;return}a=f>>>8;if(a)if(f>>>0>16777215)e=31;else{h=(a+1048320|0)>>>16&8;j=a<>>16&4;j=j<>>16&2;e=14-(g|h|e)+(j<>>15)|0;e=f>>>(e+7|0)&1|e<<1}else e=0;a=23492+(e<<2)|0;b[i+28>>2]=e;b[i+20>>2]=0;b[i+16>>2]=0;c=b[5798]|0;d=1<>2]=i;b[i+24>>2]=a;b[i+12>>2]=i;b[i+8>>2]=i}else{a=b[a>>2]|0;b:do if((b[a+4>>2]&-8|0)!=(f|0)){e=f<<((e|0)==31?0:25-(e>>>1)|0);while(1){d=a+16+(e>>>31<<2)|0;c=b[d>>2]|0;if(!c)break;if((b[c+4>>2]&-8|0)==(f|0)){a=c;break b}else{e=e<<1;a=c}}b[d>>2]=i;b[i+24>>2]=a;b[i+12>>2]=i;b[i+8>>2]=i;break a}while(0);h=a+8|0;j=b[h>>2]|0;b[j+12>>2]=i;b[h>>2]=i;b[i+8>>2]=j;b[i+12>>2]=a;b[i+24>>2]=0}while(0);j=(b[5805]|0)+-1|0;b[5805]=j;if(j|0)return;a=23644;while(1){a=b[a>>2]|0;if(!a)break;else a=a+8|0}b[5805]=-1;return}function fd(a,c){a=a|0;c=c|0;var d=0;if(a){d=B(c,a)|0;if((c|a)>>>0>65535)d=((d>>>0)/(a>>>0)|0|0)==(c|0)?d:-1}else d=0;a=dd(d)|0;if(!a)return a|0;if(!(b[a+-4>>2]&3))return a|0;vd(a|0,0,d|0)|0;return a|0}function gd(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;c=a+c>>>0;return (F(b+d+(c>>>0>>0|0)>>>0|0),c|0)|0}function hd(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;d=b-d-(c>>>0>a>>>0|0)>>>0;return (F(d|0),a-c>>>0|0)|0}function id(a){a=a|0;return (a?31-(D(a^a-1)|0)|0:32)|0}function jd(a,c,d,e,f){a=a|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;l=a;j=c;k=j;h=d;n=e;i=n;if(!k){g=(f|0)!=0;if(!i){if(g){b[f>>2]=(l>>>0)%(h>>>0);b[f+4>>2]=0}n=0;f=(l>>>0)/(h>>>0)>>>0;return (F(n|0),f)|0}else{if(!g){n=0;f=0;return (F(n|0),f)|0}b[f>>2]=a|0;b[f+4>>2]=c&0;n=0;f=0;return (F(n|0),f)|0}}g=(i|0)==0;do if(h){if(!g){g=(D(i|0)|0)-(D(k|0)|0)|0;if(g>>>0<=31){m=g+1|0;i=31-g|0;c=g-31>>31;h=m;a=l>>>(m>>>0)&c|k<>>(m>>>0)&c;g=0;i=l<>2]=a|0;b[f+4>>2]=j|c&0;n=0;f=0;return (F(n|0),f)|0}g=h-1|0;if(g&h|0){i=(D(h|0)|0)+33-(D(k|0)|0)|0;p=64-i|0;m=32-i|0;j=m>>31;o=i-32|0;c=o>>31;h=i;a=m-1>>31&k>>>(o>>>0)|(k<>>(i>>>0))&c;c=c&k>>>(i>>>0);g=l<>>(o>>>0))&j|l<>31;break}if(f|0){b[f>>2]=g&l;b[f+4>>2]=0}if((h|0)==1){o=j|c&0;p=a|0|0;return (F(o|0),p)|0}else{p=id(h|0)|0;o=k>>>(p>>>0)|0;p=k<<32-p|l>>>(p>>>0)|0;return (F(o|0),p)|0}}else{if(g){if(f|0){b[f>>2]=(k>>>0)%(h>>>0);b[f+4>>2]=0}o=0;p=(k>>>0)/(h>>>0)>>>0;return (F(o|0),p)|0}if(!l){if(f|0){b[f>>2]=0;b[f+4>>2]=(k>>>0)%(i>>>0)}o=0;p=(k>>>0)/(i>>>0)>>>0;return (F(o|0),p)|0}g=i-1|0;if(!(g&i)){if(f|0){b[f>>2]=a|0;b[f+4>>2]=g&k|c&0}o=0;p=k>>>((id(i|0)|0)>>>0);return (F(o|0),p)|0}g=(D(i|0)|0)-(D(k|0)|0)|0;if(g>>>0<=30){c=g+1|0;i=31-g|0;h=c;a=k<>>(c>>>0);c=k>>>(c>>>0);g=0;i=l<>2]=a|0;b[f+4>>2]=j|c&0;o=0;p=0;return (F(o|0),p)|0}while(0);if(!h){k=i;j=0;i=0}else{m=d|0|0;l=n|e&0;k=gd(m|0,l|0,-1,-1)|0;d=G()|0;j=i;i=0;do{e=j;j=g>>>31|j<<1;g=i|g<<1;e=a<<1|e>>>31|0;n=a>>>31|c<<1|0;hd(k|0,d|0,e|0,n|0)|0;p=G()|0;o=p>>31|((p|0)<0?-1:0)<<1;i=o&1;a=hd(e|0,n|0,o&m|0,(((p|0)<0?-1:0)>>31|((p|0)<0?-1:0)<<1)&l|0)|0;c=G()|0;h=h-1|0}while((h|0)!=0);k=j;j=0}h=0;if(f|0){b[f>>2]=a;b[f+4>>2]=c}o=(g|0)>>>31|(k|h)<<1|(h<<1|g>>>31)&0|j;p=(g<<1|0>>>31)&-2|i;return (F(o|0),p)|0}function kd(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;j=b>>31|((b|0)<0?-1:0)<<1;i=((b|0)<0?-1:0)>>31|((b|0)<0?-1:0)<<1;f=d>>31|((d|0)<0?-1:0)<<1;e=((d|0)<0?-1:0)>>31|((d|0)<0?-1:0)<<1;h=hd(j^a|0,i^b|0,j|0,i|0)|0;g=G()|0;a=f^j;b=e^i;return hd((jd(h,g,hd(f^c|0,e^d|0,f|0,e|0)|0,G()|0,0)|0)^a|0,(G()|0)^b|0,a|0,b|0)|0}function ld(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;f=a&65535;e=b&65535;c=B(e,f)|0;d=a>>>16;a=(c>>>16)+(B(e,d)|0)|0;e=b>>>16;b=B(e,f)|0;return (F((a>>>16)+(B(e,d)|0)+(((a&65535)+b|0)>>>16)|0),a+b<<16|c&65535|0)|0}function md(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0;e=a;f=c;c=ld(e,f)|0;a=G()|0;return (F((B(b,f)|0)+(B(d,e)|0)+a|a&0|0),c|0|0)|0}function nd(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0;f=S;S=S+16|0;i=f|0;h=c>>31|((c|0)<0?-1:0)<<1;g=((c|0)<0?-1:0)>>31|((c|0)<0?-1:0)<<1;k=e>>31|((e|0)<0?-1:0)<<1;j=((e|0)<0?-1:0)>>31|((e|0)<0?-1:0)<<1;a=hd(h^a|0,g^c|0,h|0,g|0)|0;c=G()|0;jd(a,c,hd(k^d|0,j^e|0,k|0,j|0)|0,G()|0,i)|0;e=hd(b[i>>2]^h|0,b[i+4>>2]^g|0,h|0,g|0)|0;d=G()|0;S=f;return (F(d|0),e)|0}function od(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var f=0,g=0;g=S;S=S+16|0;f=g|0;jd(a,c,d,e,f)|0;S=g;return (F(b[f+4>>2]|0),b[f>>2]|0)|0}function pd(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){F(b>>c|0);return a>>>c|(b&(1<>c-32|0}function qd(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){F(b>>>c|0);return a>>>c|(b&(1<>>c-32|0}function rd(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){F(b<>>32-c|0);return a<=0.0?+p(a+.5):+A(a-.5)}function ud(c,d,e){c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0;if((e|0)>=8192){K(c|0,d|0,e|0)|0;return c|0}h=c|0;g=c+e|0;if((c&3)==(d&3)){while(c&3){if(!e)return h|0;a[c>>0]=a[d>>0]|0;c=c+1|0;d=d+1|0;e=e-1|0}e=g&-4|0;f=e-64|0;while((c|0)<=(f|0)){b[c>>2]=b[d>>2];b[c+4>>2]=b[d+4>>2];b[c+8>>2]=b[d+8>>2];b[c+12>>2]=b[d+12>>2];b[c+16>>2]=b[d+16>>2];b[c+20>>2]=b[d+20>>2];b[c+24>>2]=b[d+24>>2];b[c+28>>2]=b[d+28>>2];b[c+32>>2]=b[d+32>>2];b[c+36>>2]=b[d+36>>2];b[c+40>>2]=b[d+40>>2];b[c+44>>2]=b[d+44>>2];b[c+48>>2]=b[d+48>>2];b[c+52>>2]=b[d+52>>2];b[c+56>>2]=b[d+56>>2];b[c+60>>2]=b[d+60>>2];c=c+64|0;d=d+64|0}while((c|0)<(e|0)){b[c>>2]=b[d>>2];c=c+4|0;d=d+4|0}}else{e=g-4|0;while((c|0)<(e|0)){a[c>>0]=a[d>>0]|0;a[c+1>>0]=a[d+1>>0]|0;a[c+2>>0]=a[d+2>>0]|0;a[c+3>>0]=a[d+3>>0]|0;c=c+4|0;d=d+4|0}}while((c|0)<(g|0)){a[c>>0]=a[d>>0]|0;c=c+1|0;d=d+1|0}return h|0}function vd(c,d,e){c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;h=c+e|0;d=d&255;if((e|0)>=67){while(c&3){a[c>>0]=d;c=c+1|0}f=h&-4|0;i=d|d<<8|d<<16|d<<24;g=f-64|0;while((c|0)<=(g|0)){b[c>>2]=i;b[c+4>>2]=i;b[c+8>>2]=i;b[c+12>>2]=i;b[c+16>>2]=i;b[c+20>>2]=i;b[c+24>>2]=i;b[c+28>>2]=i;b[c+32>>2]=i;b[c+36>>2]=i;b[c+40>>2]=i;b[c+44>>2]=i;b[c+48>>2]=i;b[c+52>>2]=i;b[c+56>>2]=i;b[c+60>>2]=i;c=c+64|0}while((c|0)<(f|0)){b[c>>2]=i;c=c+4|0}}while((c|0)<(h|0)){a[c>>0]=d;c=c+1|0}return h-e|0}function wd(a){a=+a;return a>=0.0?+p(a+.5):+A(a-.5)}function xd(a){a=a|0;var c=0,d=0,e=0;e=J()|0;d=b[g>>2]|0;c=d+a|0;if((a|0)>0&(c|0)<(d|0)|(c|0)<0){M(c|0)|0;I(12);return -1}if((c|0)>(e|0))if(!(L(c|0)|0)){I(12);return -1}b[g>>2]=c;return d|0} +function W(a){a=a|0;var b=0;b=S;S=S+a|0;S=S+15&-16;return b|0}function X(){return S|0}function Y(a){a=a|0;S=a}function Z(a,b){a=a|0;b=b|0;S=a;T=b}function _(a,c){a=a|0;c=c|0;var d=0,e=0,f=0,g=0;d=((a|0)<0)<<31>>31;if((a|0)<0){d=2;return d|0}g=md(a|0,d|0,3,0)|0;f=G()|0;e=gd(a|0,d|0,1,0)|0;e=md(g|0,f|0,e|0,G()|0)|0;e=gd(e|0,G()|0,1,0)|0;a=G()|0;d=c;b[d>>2]=e;b[d+4>>2]=a;d=0;return d|0}function $(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0;if(!(ba(a,b,c,d,0)|0)){d=0;return d|0}e=((c|0)<0)<<31>>31;g=md(c|0,e|0,3,0)|0;f=G()|0;e=gd(c|0,e|0,1,0)|0;e=md(g|0,f|0,e|0,G()|0)|0;e=gd(e|0,G()|0,1,0)|0;f=G()|0;if((c|0)<0){d=2;return d|0}vd(d|0,0,e<<3|0)|0;g=fd(e,4)|0;if(!g){d=13;return d|0}d=ca(a,b,c,d,g,e,f,0)|0;ed(g);return d|0}function aa(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0;if(!(ba(a,b,c,d,e)|0)){d=0;return d|0}f=((c|0)<0)<<31>>31;h=md(c|0,f|0,3,0)|0;g=G()|0;f=gd(c|0,f|0,1,0)|0;f=md(h|0,g|0,f|0,G()|0)|0;f=gd(f|0,G()|0,1,0)|0;g=G()|0;if((c|0)<0){h=2;return h|0}vd(d|0,0,f<<3|0)|0;if(e|0){vd(e|0,0,f<<2|0)|0;h=ca(a,b,c,d,e,f,g,0)|0;return h|0}e=fd(f,4)|0;if(!e){h=13;return h|0}h=ca(a,b,c,d,e,f,g,0)|0;ed(e);return h|0}function ba(a,c,d,e,f){a=a|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;q=S;S=S+16|0;o=q;p=q+8|0;n=o;b[n>>2]=a;b[n+4>>2]=c;if((d|0)<0){p=2;S=q;return p|0}g=e;b[g>>2]=a;b[g+4>>2]=c;g=(f|0)!=0;if(g)b[f>>2]=0;if(ub(a,c)|0){p=9;S=q;return p|0}b[p>>2]=0;a:do if((d|0)>=1)if(g){l=1;k=0;m=0;n=1;g=a;while(1){if(!(k|m)){g=da(g,c,4,p,o)|0;if(g|0)break a;c=o;g=b[c>>2]|0;c=b[c+4>>2]|0;if(ub(g,c)|0){g=9;break a}}g=da(g,c,b[22384+(m<<2)>>2]|0,p,o)|0;if(g|0)break a;c=o;g=b[c>>2]|0;c=b[c+4>>2]|0;a=e+(l<<3)|0;b[a>>2]=g;b[a+4>>2]=c;b[f+(l<<2)>>2]=n;a=k+1|0;h=(a|0)==(n|0);i=m+1|0;j=(i|0)==6;if(ub(g,c)|0){g=9;break a}n=n+(j&h&1)|0;if((n|0)>(d|0)){g=0;break}else{l=l+1|0;k=h?0:a;m=h?(j?0:i):m}}}else{l=1;k=0;m=0;n=1;g=a;while(1){if(!(k|m)){g=da(g,c,4,p,o)|0;if(g|0)break a;c=o;g=b[c>>2]|0;c=b[c+4>>2]|0;if(ub(g,c)|0){g=9;break a}}g=da(g,c,b[22384+(m<<2)>>2]|0,p,o)|0;if(g|0)break a;c=o;g=b[c>>2]|0;c=b[c+4>>2]|0;a=e+(l<<3)|0;b[a>>2]=g;b[a+4>>2]=c;a=k+1|0;h=(a|0)==(n|0);i=m+1|0;j=(i|0)==6;if(ub(g,c)|0){g=9;break a}n=n+(j&h&1)|0;if((n|0)>(d|0)){g=0;break}else{l=l+1|0;k=h?0:a;m=h?(j?0:i):m}}}else g=0;while(0);p=g;S=q;return p|0}function ca(a,c,d,e,f,g,h,i){a=a|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;q=S;S=S+16|0;o=q+8|0;p=q;j=od(a|0,c|0,g|0,h|0)|0;l=G()|0;m=e+(j<<3)|0;r=m;s=b[r>>2]|0;r=b[r+4>>2]|0;k=(s|0)==(a|0)&(r|0)==(c|0);if(!((s|0)==0&(r|0)==0|k))do{j=gd(j|0,l|0,1,0)|0;j=nd(j|0,G()|0,g|0,h|0)|0;l=G()|0;m=e+(j<<3)|0;s=m;r=b[s>>2]|0;s=b[s+4>>2]|0;k=(r|0)==(a|0)&(s|0)==(c|0)}while(!((r|0)==0&(s|0)==0|k));j=f+(j<<2)|0;if(k?(b[j>>2]|0)<=(i|0):0){s=0;S=q;return s|0}s=m;b[s>>2]=a;b[s+4>>2]=c;b[j>>2]=i;if((i|0)>=(d|0)){s=0;S=q;return s|0}k=i+1|0;b[o>>2]=0;j=da(a,c,2,o,p)|0;switch(j|0){case 9:{n=9;break}case 0:{j=p;j=ca(b[j>>2]|0,b[j+4>>2]|0,d,e,f,g,h,k)|0;if(!j)n=9;break}default:{}}a:do if((n|0)==9){b[o>>2]=0;j=da(a,c,3,o,p)|0;switch(j|0){case 9:break;case 0:{j=p;j=ca(b[j>>2]|0,b[j+4>>2]|0,d,e,f,g,h,k)|0;if(j|0)break a;break}default:break a}b[o>>2]=0;j=da(a,c,1,o,p)|0;switch(j|0){case 9:break;case 0:{j=p;j=ca(b[j>>2]|0,b[j+4>>2]|0,d,e,f,g,h,k)|0;if(j|0)break a;break}default:break a}b[o>>2]=0;j=da(a,c,5,o,p)|0;switch(j|0){case 9:break;case 0:{j=p;j=ca(b[j>>2]|0,b[j+4>>2]|0,d,e,f,g,h,k)|0;if(j|0)break a;break}default:break a}b[o>>2]=0;j=da(a,c,4,o,p)|0;switch(j|0){case 9:break;case 0:{j=p;j=ca(b[j>>2]|0,b[j+4>>2]|0,d,e,f,g,h,k)|0;if(j|0)break a;break}default:break a}b[o>>2]=0;j=da(a,c,6,o,p)|0;switch(j|0){case 9:break;case 0:{j=p;j=ca(b[j>>2]|0,b[j+4>>2]|0,d,e,f,g,h,k)|0;if(j|0)break a;break}default:break a}s=0;S=q;return s|0}while(0);s=j;S=q;return s|0}function da(a,c,d,e,f){a=a|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;if(d>>>0>6){f=1;return f|0}if((b[e>>2]|0)>0){g=0;do{d=Pa(d)|0;g=g+1|0}while((g|0)<(b[e>>2]|0))}m=qd(a|0,c|0,45)|0;G()|0;l=m&127;if(l>>>0>121){f=5;return f|0}j=Cb(a,c)|0;g=qd(a|0,c|0,52)|0;G()|0;g=g&15;a:do if(!g)k=8;else{while(1){h=(15-g|0)*3|0;i=qd(a|0,c|0,h|0)|0;G()|0;i=i&7;if((i|0)==7){c=5;break}p=(Ib(g)|0)==0;g=g+-1|0;n=rd(7,0,h|0)|0;c=c&~(G()|0);o=rd(b[(p?432:16)+(i*28|0)+(d<<2)>>2]|0,0,h|0)|0;h=G()|0;d=b[(p?640:224)+(i*28|0)+(d<<2)>>2]|0;a=o|a&~n;c=h|c;if(!d){d=0;break a}if(!g){k=8;break a}}return c|0}while(0);if((k|0)==8){p=b[848+(l*28|0)+(d<<2)>>2]|0;o=rd(p|0,0,45)|0;a=o|a;c=G()|0|c&-1040385;d=b[4272+(l*28|0)+(d<<2)>>2]|0;if((p&127|0)==127){p=rd(b[848+(l*28|0)+20>>2]|0,0,45)|0;c=G()|0|c&-1040385;d=b[4272+(l*28|0)+20>>2]|0;a=Eb(p|a,c)|0;c=G()|0;b[e>>2]=(b[e>>2]|0)+1}}i=qd(a|0,c|0,45)|0;G()|0;i=i&127;b:do if(!(la(i)|0)){if((d|0)>0){g=0;do{a=Eb(a,c)|0;c=G()|0;g=g+1|0}while((g|0)!=(d|0))}}else{c:do if((Cb(a,c)|0)==1){if((l|0)!=(i|0))if(ra(i,b[7696+(l*28|0)>>2]|0)|0){a=Gb(a,c)|0;h=1;c=G()|0;break}else{a=Eb(a,c)|0;h=1;c=G()|0;break}switch(j|0){case 3:{a=Eb(a,c)|0;c=G()|0;b[e>>2]=(b[e>>2]|0)+1;h=0;break c}case 5:{a=Gb(a,c)|0;c=G()|0;b[e>>2]=(b[e>>2]|0)+5;h=0;break c}case 0:{p=9;return p|0}default:{p=1;return p|0}}}else h=0;while(0);if((d|0)>0){g=0;do{a=Db(a,c)|0;c=G()|0;g=g+1|0}while((g|0)!=(d|0))}if((l|0)!=(i|0)){if(!(ma(i)|0)){if((h|0)!=0|(Cb(a,c)|0)!=5)break;b[e>>2]=(b[e>>2]|0)+1;break}switch(m&127){case 8:case 118:break b;default:{}}if((Cb(a,c)|0)!=3)b[e>>2]=(b[e>>2]|0)+1}}while(0);b[e>>2]=((b[e>>2]|0)+d|0)%6|0;p=f;b[p>>2]=a;b[p+4>>2]=c;p=0;return p|0}function ea(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0;i=S;S=S+16|0;g=i;h=i+8|0;f=(ub(a,c)|0)==0;f=f?1:2;while(1){b[h>>2]=0;k=(da(a,c,f,h,g)|0)==0;j=g;if(k&((b[j>>2]|0)==(d|0)?(b[j+4>>2]|0)==(e|0):0)){a=4;break}f=f+1|0;if(f>>>0>=7){f=7;a=4;break}}if((a|0)==4){S=i;return f|0}return 0}function fa(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;p=S;S=S+16|0;n=p;o=p+8|0;m=n;b[m>>2]=a;b[m+4>>2]=c;if(!d){o=e;b[o>>2]=a;b[o+4>>2]=c;o=0;S=p;return o|0}b[o>>2]=0;a:do if(!(ub(a,c)|0)){g=(d|0)>0;if(g){f=0;m=a;do{a=da(m,c,4,o,n)|0;if(a|0)break a;c=n;m=b[c>>2]|0;c=b[c+4>>2]|0;f=f+1|0;if(ub(m,c)|0){a=9;break a}}while((f|0)<(d|0));l=e;b[l>>2]=m;b[l+4>>2]=c;l=d+-1|0;if(g){k=0;a=1;do{f=22384+(k<<2)|0;if((k|0)==5){h=b[f>>2]|0;g=0;f=a;while(1){a=n;a=da(b[a>>2]|0,b[a+4>>2]|0,h,o,n)|0;if(a|0)break a;if((g|0)!=(l|0)){j=n;i=b[j>>2]|0;j=b[j+4>>2]|0;a=e+(f<<3)|0;b[a>>2]=i;b[a+4>>2]=j;if(!(ub(i,j)|0))a=f+1|0;else{a=9;break a}}else a=f;g=g+1|0;if((g|0)>=(d|0))break;else f=a}}else{h=n;j=b[f>>2]|0;i=0;f=a;g=b[h>>2]|0;h=b[h+4>>2]|0;while(1){a=da(g,h,j,o,n)|0;if(a|0)break a;h=n;g=b[h>>2]|0;h=b[h+4>>2]|0;a=e+(f<<3)|0;b[a>>2]=g;b[a+4>>2]=h;a=f+1|0;if(ub(g,h)|0){a=9;break a}i=i+1|0;if((i|0)>=(d|0))break;else f=a}}k=k+1|0}while(k>>>0<6);a=n;h=m;f=b[a>>2]|0;g=c;a=b[a+4>>2]|0}else{h=m;f=m;g=c;a=c}}else{h=e;b[h>>2]=a;b[h+4>>2]=c;h=a;f=a;g=c;a=c}a=(h|0)==(f|0)&(g|0)==(a|0)?0:9}else a=9;while(0);o=a;S=p;return o|0}function ga(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0;i=S;S=S+48|0;f=i+16|0;g=i+8|0;h=i;if(d|0){h=15;S=i;return h|0}k=a;j=b[k+4>>2]|0;d=g;b[d>>2]=b[k>>2];b[d+4>>2]=j;zc(g,f);c=ya(f,c,h)|0;if(!c){d=b[g>>2]|0;g=b[a+8>>2]|0;if((g|0)>0){f=b[a+12>>2]|0;c=0;do{d=(b[f+(c<<3)>>2]|0)+d|0;c=c+1|0}while((c|0)<(g|0))}c=h;f=b[c>>2]|0;c=b[c+4>>2]|0;g=((d|0)<0)<<31>>31;if((c|0)<(g|0)|(c|0)==(g|0)&f>>>0>>0){c=h;b[c>>2]=d;b[c+4>>2]=g;c=g}else d=f;j=gd(d|0,c|0,12,0)|0;k=G()|0;c=h;b[c>>2]=j;b[c+4>>2]=k;c=e;b[c>>2]=j;b[c+4>>2]=k;c=0}k=c;S=i;return k|0}function ha(a,c,d,f,g,h,i){a=a|0;c=c|0;d=d|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,H=0,I=0,J=0.0,K=0.0,L=0.0,M=0.0;I=S;S=S+64|0;D=I+48|0;E=I+32|0;F=I+24|0;x=I+8|0;y=I;k=b[a>>2]|0;if((k|0)<=0){H=0;S=I;return H|0}z=a+4|0;A=D+8|0;B=E+8|0;C=x+8|0;j=0;v=0;while(1){l=b[z>>2]|0;u=l+(v<<4)|0;b[D>>2]=b[u>>2];b[D+4>>2]=b[u+4>>2];b[D+8>>2]=b[u+8>>2];b[D+12>>2]=b[u+12>>2];if((v|0)==(k+-1|0)){b[E>>2]=b[l>>2];b[E+4>>2]=b[l+4>>2];b[E+8>>2]=b[l+8>>2];b[E+12>>2]=b[l+12>>2]}else{u=l+(v+1<<4)|0;b[E>>2]=b[u>>2];b[E+4>>2]=b[u+4>>2];b[E+8>>2]=b[u+8>>2];b[E+12>>2]=b[u+12>>2]}k=za(D,E,f,F)|0;a:do if(!k){l=F;k=b[l>>2]|0;l=b[l+4>>2]|0;if((l|0)>0|(l|0)==0&k>>>0>0){t=0;u=0;b:while(1){M=+e[D>>3];s=hd(k|0,l|0,t|0,u|0)|0;L=+(s>>>0)+4294967296.0*+(G()|0);J=+(k>>>0)+4294967296.0*+(l|0);K=+(t>>>0)+4294967296.0*+(u|0);e[x>>3]=M*L/J+ +e[E>>3]*K/J;e[C>>3]=+e[A>>3]*L/J+ +e[B>>3]*K/J;k=Jb(x,f,y)|0;if(k|0){j=k;break}s=y;r=b[s>>2]|0;s=b[s+4>>2]|0;o=od(r|0,s|0,c|0,d|0)|0;m=G()|0;k=i+(o<<3)|0;n=k;l=b[n>>2]|0;n=b[n+4>>2]|0;c:do if((l|0)==0&(n|0)==0){w=k;H=16}else{p=0;q=0;while(1){if((p|0)>(d|0)|(p|0)==(d|0)&q>>>0>c>>>0){j=1;break b}if((l|0)==(r|0)&(n|0)==(s|0))break c;k=gd(o|0,m|0,1,0)|0;o=nd(k|0,G()|0,c|0,d|0)|0;m=G()|0;q=gd(q|0,p|0,1,0)|0;p=G()|0;k=i+(o<<3)|0;n=k;l=b[n>>2]|0;n=b[n+4>>2]|0;if((l|0)==0&(n|0)==0){w=k;H=16;break}}}while(0);if((H|0)==16?(H=0,!((r|0)==0&(s|0)==0)):0){q=w;b[q>>2]=r;b[q+4>>2]=s;q=h+(b[g>>2]<<3)|0;b[q>>2]=r;b[q+4>>2]=s;q=g;q=gd(b[q>>2]|0,b[q+4>>2]|0,1,0)|0;r=G()|0;s=g;b[s>>2]=q;b[s+4>>2]=r}t=gd(t|0,u|0,1,0)|0;u=G()|0;l=F;k=b[l>>2]|0;l=b[l+4>>2]|0;if(!((l|0)>(u|0)|(l|0)==(u|0)&k>>>0>t>>>0)){l=1;break a}}l=0}else l=1}else{l=0;j=k}while(0);v=v+1|0;if(!l){H=21;break}k=b[a>>2]|0;if((v|0)>=(k|0)){j=0;H=21;break}}if((H|0)==21){S=I;return j|0}return 0}function ia(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,H=0,I=0,J=0,K=0;K=S;S=S+112|0;F=K+80|0;j=K+72|0;H=K;I=K+56|0;if(d|0){J=15;S=K;return J|0}k=a+8|0;J=dd((b[k>>2]<<5)+32|0)|0;if(!J){J=13;S=K;return J|0}Ac(a,J);D=a;E=b[D+4>>2]|0;d=j;b[d>>2]=b[D>>2];b[d+4>>2]=E;zc(j,F);d=ya(F,c,H)|0;if(!d){d=b[j>>2]|0;g=b[k>>2]|0;if((g|0)>0){h=b[a+12>>2]|0;f=0;do{d=(b[h+(f<<3)>>2]|0)+d|0;f=f+1|0}while((f|0)!=(g|0));f=d}else f=d;d=H;g=b[d>>2]|0;d=b[d+4>>2]|0;h=((f|0)<0)<<31>>31;if((d|0)<(h|0)|(d|0)==(h|0)&g>>>0>>0){d=H;b[d>>2]=f;b[d+4>>2]=h;d=h}else f=g;D=gd(f|0,d|0,12,0)|0;E=G()|0;d=H;b[d>>2]=D;b[d+4>>2]=E;d=0}else{D=0;E=0}if(d|0){ed(J);J=d;S=K;return J|0}f=fd(D,8)|0;if(!f){ed(J);J=13;S=K;return J|0}i=fd(D,8)|0;if(!i){ed(J);ed(f);J=13;S=K;return J|0}B=F;b[B>>2]=0;b[B+4>>2]=0;B=a;C=b[B+4>>2]|0;d=j;b[d>>2]=b[B>>2];b[d+4>>2]=C;d=ha(j,D,E,c,F,f,i)|0;a:do if(!d){b:do if((b[k>>2]|0)>0){h=a+12|0;g=0;while(1){d=ha((b[h>>2]|0)+(g<<3)|0,D,E,c,F,f,i)|0;g=g+1|0;if(d|0)break;if((g|0)>=(b[k>>2]|0))break b}ed(f);ed(i);ed(J);break a}while(0);if((E|0)>0|(E|0)==0&D>>>0>0)vd(i|0,0,D<<3|0)|0;C=F;B=b[C+4>>2]|0;c:do if((B|0)>0|(B|0)==0&(b[C>>2]|0)>>>0>0){y=f;z=i;A=f;B=i;C=f;d=f;v=f;w=i;x=i;f=i;d:while(1){r=0;s=0;t=0;u=0;g=0;h=0;while(1){i=H;j=i+56|0;do{b[i>>2]=0;i=i+4|0}while((i|0)<(j|0));c=y+(r<<3)|0;k=b[c>>2]|0;c=b[c+4>>2]|0;if(ba(k,c,1,H,0)|0){i=H;j=i+56|0;do{b[i>>2]=0;i=i+4|0}while((i|0)<(j|0));i=fd(7,4)|0;if(i|0){ca(k,c,1,H,i,7,0,0)|0;ed(i)}}q=0;while(1){p=H+(q<<3)|0;o=b[p>>2]|0;p=b[p+4>>2]|0;e:do if(!((o|0)==0&(p|0)==0)){l=od(o|0,p|0,D|0,E|0)|0;k=G()|0;i=e+(l<<3)|0;c=i;j=b[c>>2]|0;c=b[c+4>>2]|0;if(!((j|0)==0&(c|0)==0)){m=0;n=0;do{if((m|0)>(E|0)|(m|0)==(E|0)&n>>>0>D>>>0)break d;if((j|0)==(o|0)&(c|0)==(p|0)){i=g;j=h;break e}i=gd(l|0,k|0,1,0)|0;l=nd(i|0,G()|0,D|0,E|0)|0;k=G()|0;n=gd(n|0,m|0,1,0)|0;m=G()|0;i=e+(l<<3)|0;c=i;j=b[c>>2]|0;c=b[c+4>>2]|0}while(!((j|0)==0&(c|0)==0))}if(!((o|0)==0&(p|0)==0)){Mb(o,p,I)|0;if(Bc(a,J,I)|0){n=gd(g|0,h|0,1,0)|0;h=G()|0;m=i;b[m>>2]=o;b[m+4>>2]=p;g=z+(g<<3)|0;b[g>>2]=o;b[g+4>>2]=p;g=n}i=g;j=h}else{i=g;j=h}}else{i=g;j=h}while(0);q=q+1|0;if(q>>>0>=7)break;else{g=i;h=j}}r=gd(r|0,s|0,1,0)|0;s=G()|0;t=gd(t|0,u|0,1,0)|0;u=G()|0;h=F;g=b[h>>2]|0;h=b[h+4>>2]|0;if(!((u|0)<(h|0)|(u|0)==(h|0)&t>>>0>>0))break;else{g=i;h=j}}if((h|0)>0|(h|0)==0&g>>>0>0){g=0;h=0;do{u=y+(g<<3)|0;b[u>>2]=0;b[u+4>>2]=0;g=gd(g|0,h|0,1,0)|0;h=G()|0;u=F;t=b[u+4>>2]|0}while((h|0)<(t|0)|((h|0)==(t|0)?g>>>0<(b[u>>2]|0)>>>0:0))}u=F;b[u>>2]=i;b[u+4>>2]=j;if((j|0)>0|(j|0)==0&i>>>0>0){q=f;r=x;s=C;t=w;u=z;f=v;x=d;w=A;v=q;d=r;C=B;B=s;A=t;z=y;y=u}else break c}ed(A);ed(B);ed(J);d=1;break a}else d=i;while(0);ed(J);ed(f);ed(d);d=0}else{ed(f);ed(i);ed(J)}while(0);J=d;S=K;return J|0}function ja(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;l=S;S=S+176|0;j=l;if((c|0)<1){Vc(d,0,0);k=0;S=l;return k|0}i=a;i=qd(b[i>>2]|0,b[i+4>>2]|0,52)|0;G()|0;Vc(d,(c|0)>6?c:6,i&15);i=0;while(1){e=a+(i<<3)|0;e=Nb(b[e>>2]|0,b[e+4>>2]|0,j)|0;if(e|0)break;e=b[j>>2]|0;if((e|0)>0){h=0;do{g=j+8+(h<<4)|0;h=h+1|0;e=j+8+(((h|0)%(e|0)|0)<<4)|0;f=_c(d,e,g)|0;if(!f)Zc(d,g,e)|0;else Yc(d,f)|0;e=b[j>>2]|0}while((h|0)<(e|0))}i=i+1|0;if((i|0)>=(c|0)){e=0;k=13;break}}if((k|0)==13){S=l;return e|0}Wc(d);k=e;S=l;return k|0}function ka(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0;g=S;S=S+32|0;e=g;f=g+16|0;a=ja(a,c,f)|0;if(a|0){f=a;S=g;return f|0}b[d>>2]=0;b[d+4>>2]=0;b[d+8>>2]=0;a=Xc(f)|0;if(a|0)do{c=lc(d)|0;do{mc(c,a)|0;h=a+16|0;b[e>>2]=b[h>>2];b[e+4>>2]=b[h+4>>2];b[e+8>>2]=b[h+8>>2];b[e+12>>2]=b[h+12>>2];Yc(f,a)|0;a=$c(f,e)|0}while((a|0)!=0);a=Xc(f)|0}while((a|0)!=0);if(oc(d)|0){h=1;S=g;return h|0}Wc(f);h=0;S=g;return h|0}function la(a){a=a|0;if(a>>>0>121){a=0;return a|0}a=b[7696+(a*28|0)+16>>2]|0;return a|0}function ma(a){a=a|0;return (a|0)==4|(a|0)==117|0}function na(a){a=a|0;return b[11120+((b[a>>2]|0)*216|0)+((b[a+4>>2]|0)*72|0)+((b[a+8>>2]|0)*24|0)+(b[a+12>>2]<<3)>>2]|0}function oa(a){a=a|0;return b[11120+((b[a>>2]|0)*216|0)+((b[a+4>>2]|0)*72|0)+((b[a+8>>2]|0)*24|0)+(b[a+12>>2]<<3)+4>>2]|0}function pa(a,c){a=a|0;c=c|0;a=7696+(a*28|0)|0;b[c>>2]=b[a>>2];b[c+4>>2]=b[a+4>>2];b[c+8>>2]=b[a+8>>2];b[c+12>>2]=b[a+12>>2];return}function qa(a,c){a=a|0;c=c|0;var d=0,e=0;if(c>>>0>20){c=-1;return c|0}do if((b[11120+(c*216|0)>>2]|0)!=(a|0))if((b[11120+(c*216|0)+8>>2]|0)!=(a|0))if((b[11120+(c*216|0)+16>>2]|0)!=(a|0))if((b[11120+(c*216|0)+24>>2]|0)!=(a|0))if((b[11120+(c*216|0)+32>>2]|0)!=(a|0))if((b[11120+(c*216|0)+40>>2]|0)!=(a|0))if((b[11120+(c*216|0)+48>>2]|0)!=(a|0))if((b[11120+(c*216|0)+56>>2]|0)!=(a|0))if((b[11120+(c*216|0)+64>>2]|0)!=(a|0))if((b[11120+(c*216|0)+72>>2]|0)!=(a|0))if((b[11120+(c*216|0)+80>>2]|0)!=(a|0))if((b[11120+(c*216|0)+88>>2]|0)!=(a|0))if((b[11120+(c*216|0)+96>>2]|0)!=(a|0))if((b[11120+(c*216|0)+104>>2]|0)!=(a|0))if((b[11120+(c*216|0)+112>>2]|0)!=(a|0))if((b[11120+(c*216|0)+120>>2]|0)!=(a|0))if((b[11120+(c*216|0)+128>>2]|0)!=(a|0))if((b[11120+(c*216|0)+136>>2]|0)==(a|0)){a=2;d=1;e=2}else{if((b[11120+(c*216|0)+144>>2]|0)==(a|0)){a=0;d=2;e=0;break}if((b[11120+(c*216|0)+152>>2]|0)==(a|0)){a=0;d=2;e=1;break}if((b[11120+(c*216|0)+160>>2]|0)==(a|0)){a=0;d=2;e=2;break}if((b[11120+(c*216|0)+168>>2]|0)==(a|0)){a=1;d=2;e=0;break}if((b[11120+(c*216|0)+176>>2]|0)==(a|0)){a=1;d=2;e=1;break}if((b[11120+(c*216|0)+184>>2]|0)==(a|0)){a=1;d=2;e=2;break}if((b[11120+(c*216|0)+192>>2]|0)==(a|0)){a=2;d=2;e=0;break}if((b[11120+(c*216|0)+200>>2]|0)==(a|0)){a=2;d=2;e=1;break}if((b[11120+(c*216|0)+208>>2]|0)==(a|0)){a=2;d=2;e=2;break}else a=-1;return a|0}else{a=2;d=1;e=1}else{a=2;d=1;e=0}else{a=1;d=1;e=2}else{a=1;d=1;e=1}else{a=1;d=1;e=0}else{a=0;d=1;e=2}else{a=0;d=1;e=1}else{a=0;d=1;e=0}else{a=2;d=0;e=2}else{a=2;d=0;e=1}else{a=2;d=0;e=0}else{a=1;d=0;e=2}else{a=1;d=0;e=1}else{a=1;d=0;e=0}else{a=0;d=0;e=2}else{a=0;d=0;e=1}else{a=0;d=0;e=0}while(0);c=b[11120+(c*216|0)+(d*72|0)+(a*24|0)+(e<<3)+4>>2]|0;return c|0}function ra(a,c){a=a|0;c=c|0;if((b[7696+(a*28|0)+20>>2]|0)==(c|0)){c=1;return c|0}c=(b[7696+(a*28|0)+24>>2]|0)==(c|0);return c|0}function sa(a,c){a=a|0;c=c|0;return b[848+(a*28|0)+(c<<2)>>2]|0}function ta(a,c){a=a|0;c=c|0;if((b[848+(a*28|0)>>2]|0)==(c|0)){c=0;return c|0}if((b[848+(a*28|0)+4>>2]|0)==(c|0)){c=1;return c|0}if((b[848+(a*28|0)+8>>2]|0)==(c|0)){c=2;return c|0}if((b[848+(a*28|0)+12>>2]|0)==(c|0)){c=3;return c|0}if((b[848+(a*28|0)+16>>2]|0)==(c|0)){c=4;return c|0}if((b[848+(a*28|0)+20>>2]|0)==(c|0)){c=5;return c|0}else return ((b[848+(a*28|0)+24>>2]|0)==(c|0)?6:7)|0;return 0}function ua(){return 122}function va(a){a=a|0;var c=0,d=0,e=0;c=0;do{rd(c|0,0,45)|0;e=G()|0|134225919;d=a+(c<<3)|0;b[d>>2]=-1;b[d+4>>2]=e;c=c+1|0}while((c|0)!=122);return 0}function wa(a){a=a|0;return +e[a+16>>3]<+e[a+24>>3]|0}function xa(a,b){a=a|0;b=b|0;var c=0.0,d=0.0,f=0.0;c=+e[b>>3];if(!(c>=+e[a+8>>3])){b=0;return b|0}if(!(c<=+e[a>>3])){b=0;return b|0}d=+e[a+16>>3];c=+e[a+24>>3];f=+e[b+8>>3];b=f>=c;a=f<=d&1;if(d>2]=0;g=g+4|0}while((g|0)<(h|0));c=Rb(c,k)|0;if(c|0){d=c;S=l;return d|0}g=k;c=b[g>>2]|0;g=b[g+4>>2]|0;Mb(c,g,i)|0;Nb(c,g,j)|0;m=+Xb(i,j+8|0);e[i>>3]=+e[a>>3];g=i+8|0;e[g>>3]=+e[a+16>>3];e[j>>3]=+e[a+8>>3];c=j+8|0;e[c>>3]=+e[a+24>>3];n=+Xb(i,j);m=+A(+(n*n/+sd(+(+q(+((+e[g>>3]-+e[c>>3])/(+e[i>>3]-+e[j>>3])))),3.0)/(m*(m*2.59807621135)*.8)));e[f>>3]=m;c=~~m>>>0;g=+q(m)>=1.0?(m>0.0?~~+C(+p(m/4294967296.0),4294967295.0)>>>0:~~+A((m-+(~~m>>>0))/4294967296.0)>>>0):0;if(0==0?(b[f+4>>2]&2146435072|0)==2146435072:0)c=1;else{k=(c|0)==0&(g|0)==0;b[d>>2]=k?1:c;b[d+4>>2]=k?0:g;c=0}d=c;S=l;return d|0}function za(a,c,d,g){a=a|0;c=c|0;d=d|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0.0;m=S;S=S+288|0;j=m+264|0;k=m+96|0;l=m;h=l;i=h+96|0;do{b[h>>2]=0;h=h+4|0}while((h|0)<(i|0));d=Rb(d,l)|0;if(d|0){g=d;S=m;return g|0}d=l;h=b[d>>2]|0;d=b[d+4>>2]|0;Mb(h,d,j)|0;Nb(h,d,k)|0;n=+Xb(j,k+8|0);n=+A(+(+Xb(a,c)/(n*2.0)));e[f>>3]=n;d=~~n>>>0;h=+q(n)>=1.0?(n>0.0?~~+C(+p(n/4294967296.0),4294967295.0)>>>0:~~+A((n-+(~~n>>>0))/4294967296.0)>>>0):0;if(0==0?(b[f+4>>2]&2146435072|0)==2146435072:0){g=1;S=m;return g|0}l=(d|0)==0&(h|0)==0;b[g>>2]=l?1:d;b[g+4>>2]=l?0:h;g=0;S=m;return g|0}function Aa(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;b[a>>2]=c;b[a+4>>2]=d;b[a+8>>2]=e;return}function Ba(a,c){a=a|0;c=c|0;var d=0,f=0,g=0,h=0,i=0.0,j=0.0,k=0.0,l=0.0,m=0,n=0,o=0.0;n=c+8|0;b[n>>2]=0;k=+e[a>>3];i=+q(+k);l=+e[a+8>>3];j=+q(+l)/.8660254037844386;i=i+j*.5;d=~~i;a=~~j;i=i-+(d|0);j=j-+(a|0);do if(i<.5)if(i<.3333333333333333){b[c>>2]=d;if(j<(i+1.0)*.5){b[c+4>>2]=a;break}else{a=a+1|0;b[c+4>>2]=a;break}}else{o=1.0-i;a=(!(j>2]=a;if(o<=j&j>2]=d;break}else{b[c>>2]=d;break}}else{if(!(i<.6666666666666666)){d=d+1|0;b[c>>2]=d;if(j>2]=a;break}else{a=a+1|0;b[c+4>>2]=a;break}}if(j<1.0-i){b[c+4>>2]=a;if(i*2.0+-1.0>2]=d;break}}else{a=a+1|0;b[c+4>>2]=a}d=d+1|0;b[c>>2]=d}while(0);do if(k<0.0)if(!(a&1)){m=(a|0)/2|0;m=hd(d|0,((d|0)<0)<<31>>31|0,m|0,((m|0)<0)<<31>>31|0)|0;d=~~(+(d|0)-(+(m>>>0)+4294967296.0*+(G()|0))*2.0);b[c>>2]=d;break}else{m=(a+1|0)/2|0;m=hd(d|0,((d|0)<0)<<31>>31|0,m|0,((m|0)<0)<<31>>31|0)|0;d=~~(+(d|0)-((+(m>>>0)+4294967296.0*+(G()|0))*2.0+1.0));b[c>>2]=d;break}while(0);m=c+4|0;if(l<0.0){d=d-((a<<1|1|0)/2|0)|0;b[c>>2]=d;a=0-a|0;b[m>>2]=a}f=a-d|0;if((d|0)<0){g=0-d|0;b[m>>2]=f;b[n>>2]=g;b[c>>2]=0;a=f;d=0}else g=0;if((a|0)<0){d=d-a|0;b[c>>2]=d;g=g-a|0;b[n>>2]=g;b[m>>2]=0;a=0}h=d-g|0;f=a-g|0;if((g|0)<0){b[c>>2]=h;b[m>>2]=f;b[n>>2]=0;a=f;d=h;g=0}f=(a|0)<(d|0)?a:d;f=(g|0)<(f|0)?g:f;if((f|0)<=0)return;b[c>>2]=d-f;b[m>>2]=a-f;b[n>>2]=g-f;return}function Ca(a){a=a|0;var c=0,d=0,e=0,f=0,g=0,h=0;c=b[a>>2]|0;h=a+4|0;d=b[h>>2]|0;if((c|0)<0){d=d-c|0;b[h>>2]=d;g=a+8|0;b[g>>2]=(b[g>>2]|0)-c;b[a>>2]=0;c=0}if((d|0)<0){c=c-d|0;b[a>>2]=c;g=a+8|0;f=(b[g>>2]|0)-d|0;b[g>>2]=f;b[h>>2]=0;d=0}else{f=a+8|0;g=f;f=b[f>>2]|0}if((f|0)<0){c=c-f|0;b[a>>2]=c;d=d-f|0;b[h>>2]=d;b[g>>2]=0;f=0}e=(d|0)<(c|0)?d:c;e=(f|0)<(e|0)?f:e;if((e|0)<=0)return;b[a>>2]=c-e;b[h>>2]=d-e;b[g>>2]=f-e;return}function Da(a,c){a=a|0;c=c|0;var d=0.0,f=0;f=b[a+8>>2]|0;d=+((b[a+4>>2]|0)-f|0);e[c>>3]=+((b[a>>2]|0)-f|0)-d*.5;e[c+8>>3]=d*.8660254037844386;return}function Ea(a,c,d){a=a|0;c=c|0;d=d|0;b[d>>2]=(b[c>>2]|0)+(b[a>>2]|0);b[d+4>>2]=(b[c+4>>2]|0)+(b[a+4>>2]|0);b[d+8>>2]=(b[c+8>>2]|0)+(b[a+8>>2]|0);return}function Fa(a,c,d){a=a|0;c=c|0;d=d|0;b[d>>2]=(b[a>>2]|0)-(b[c>>2]|0);b[d+4>>2]=(b[a+4>>2]|0)-(b[c+4>>2]|0);b[d+8>>2]=(b[a+8>>2]|0)-(b[c+8>>2]|0);return}function Ga(a,c){a=a|0;c=c|0;var d=0,e=0;d=B(b[a>>2]|0,c)|0;b[a>>2]=d;d=a+4|0;e=B(b[d>>2]|0,c)|0;b[d>>2]=e;a=a+8|0;c=B(b[a>>2]|0,c)|0;b[a>>2]=c;return}function Ha(a){a=a|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0;h=b[a>>2]|0;i=(h|0)<0;e=(b[a+4>>2]|0)-(i?h:0)|0;g=(e|0)<0;f=(g?0-e|0:0)+((b[a+8>>2]|0)-(i?h:0))|0;d=(f|0)<0;a=d?0:f;c=(g?0:e)-(d?f:0)|0;f=(i?0:h)-(g?e:0)-(d?f:0)|0;d=(c|0)<(f|0)?c:f;d=(a|0)<(d|0)?a:d;e=(d|0)>0;a=a-(e?d:0)|0;c=c-(e?d:0)|0;a:do switch(f-(e?d:0)|0){case 0:switch(c|0){case 0:{i=(a|0)==0?0:(a|0)==1?1:7;return i|0}case 1:{i=(a|0)==0?2:(a|0)==1?3:7;return i|0}default:break a}case 1:switch(c|0){case 0:{i=(a|0)==0?4:(a|0)==1?5:7;return i|0}case 1:{if(!a)a=6;else break a;return a|0}default:break a}default:{}}while(0);i=7;return i|0}function Ia(a){a=a|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0;h=a+8|0;d=b[h>>2]|0;c=(b[a>>2]|0)-d|0;i=a+4|0;d=(b[i>>2]|0)-d|0;e=cd(+((c*3|0)-d|0)/7.0)|0;b[a>>2]=e;c=cd(+((d<<1)+c|0)/7.0)|0;b[i>>2]=c;b[h>>2]=0;d=c-e|0;if((e|0)<0){g=0-e|0;b[i>>2]=d;b[h>>2]=g;b[a>>2]=0;c=d;e=0;d=g}else d=0;if((c|0)<0){e=e-c|0;b[a>>2]=e;d=d-c|0;b[h>>2]=d;b[i>>2]=0;c=0}g=e-d|0;f=c-d|0;if((d|0)<0){b[a>>2]=g;b[i>>2]=f;b[h>>2]=0;c=f;f=g;d=0}else f=e;e=(c|0)<(f|0)?c:f;e=(d|0)<(e|0)?d:e;if((e|0)<=0)return;b[a>>2]=f-e;b[i>>2]=c-e;b[h>>2]=d-e;return}function Ja(a){a=a|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0;h=a+8|0;d=b[h>>2]|0;c=(b[a>>2]|0)-d|0;i=a+4|0;d=(b[i>>2]|0)-d|0;e=cd(+((c<<1)+d|0)/7.0)|0;b[a>>2]=e;c=cd(+((d*3|0)-c|0)/7.0)|0;b[i>>2]=c;b[h>>2]=0;d=c-e|0;if((e|0)<0){g=0-e|0;b[i>>2]=d;b[h>>2]=g;b[a>>2]=0;c=d;e=0;d=g}else d=0;if((c|0)<0){e=e-c|0;b[a>>2]=e;d=d-c|0;b[h>>2]=d;b[i>>2]=0;c=0}g=e-d|0;f=c-d|0;if((d|0)<0){b[a>>2]=g;b[i>>2]=f;b[h>>2]=0;c=f;f=g;d=0}else f=e;e=(c|0)<(f|0)?c:f;e=(d|0)<(e|0)?d:e;if((e|0)<=0)return;b[a>>2]=f-e;b[i>>2]=c-e;b[h>>2]=d-e;return}function Ka(a){a=a|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0;c=b[a>>2]|0;h=a+4|0;d=b[h>>2]|0;i=a+8|0;e=b[i>>2]|0;f=d+(c*3|0)|0;b[a>>2]=f;d=e+(d*3|0)|0;b[h>>2]=d;c=(e*3|0)+c|0;b[i>>2]=c;e=d-f|0;if((f|0)<0){c=c-f|0;b[h>>2]=e;b[i>>2]=c;b[a>>2]=0;d=e;e=0}else e=f;if((d|0)<0){e=e-d|0;b[a>>2]=e;c=c-d|0;b[i>>2]=c;b[h>>2]=0;d=0}g=e-c|0;f=d-c|0;if((c|0)<0){b[a>>2]=g;b[h>>2]=f;b[i>>2]=0;e=g;c=0}else f=d;d=(f|0)<(e|0)?f:e;d=(c|0)<(d|0)?c:d;if((d|0)<=0)return;b[a>>2]=e-d;b[h>>2]=f-d;b[i>>2]=c-d;return}function La(a){a=a|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0;f=b[a>>2]|0;h=a+4|0;c=b[h>>2]|0;i=a+8|0;d=b[i>>2]|0;e=(c*3|0)+f|0;f=d+(f*3|0)|0;b[a>>2]=f;b[h>>2]=e;c=(d*3|0)+c|0;b[i>>2]=c;d=e-f|0;if((f|0)<0){c=c-f|0;b[h>>2]=d;b[i>>2]=c;b[a>>2]=0;f=0}else d=e;if((d|0)<0){f=f-d|0;b[a>>2]=f;c=c-d|0;b[i>>2]=c;b[h>>2]=0;d=0}g=f-c|0;e=d-c|0;if((c|0)<0){b[a>>2]=g;b[h>>2]=e;b[i>>2]=0;f=g;c=0}else e=d;d=(e|0)<(f|0)?e:f;d=(c|0)<(d|0)?c:d;if((d|0)<=0)return;b[a>>2]=f-d;b[h>>2]=e-d;b[i>>2]=c-d;return}function Ma(a,c){a=a|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0;if((c+-1|0)>>>0>=6)return;f=(b[15440+(c*12|0)>>2]|0)+(b[a>>2]|0)|0;b[a>>2]=f;i=a+4|0;e=(b[15440+(c*12|0)+4>>2]|0)+(b[i>>2]|0)|0;b[i>>2]=e;h=a+8|0;c=(b[15440+(c*12|0)+8>>2]|0)+(b[h>>2]|0)|0;b[h>>2]=c;d=e-f|0;if((f|0)<0){c=c-f|0;b[i>>2]=d;b[h>>2]=c;b[a>>2]=0;e=0}else{d=e;e=f}if((d|0)<0){e=e-d|0;b[a>>2]=e;c=c-d|0;b[h>>2]=c;b[i>>2]=0;d=0}g=e-c|0;f=d-c|0;if((c|0)<0){b[a>>2]=g;b[i>>2]=f;b[h>>2]=0;e=g;c=0}else f=d;d=(f|0)<(e|0)?f:e;d=(c|0)<(d|0)?c:d;if((d|0)<=0)return;b[a>>2]=e-d;b[i>>2]=f-d;b[h>>2]=c-d;return}function Na(a){a=a|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0;f=b[a>>2]|0;h=a+4|0;c=b[h>>2]|0;i=a+8|0;d=b[i>>2]|0;e=c+f|0;f=d+f|0;b[a>>2]=f;b[h>>2]=e;c=d+c|0;b[i>>2]=c;d=e-f|0;if((f|0)<0){c=c-f|0;b[h>>2]=d;b[i>>2]=c;b[a>>2]=0;e=0}else{d=e;e=f}if((d|0)<0){e=e-d|0;b[a>>2]=e;c=c-d|0;b[i>>2]=c;b[h>>2]=0;d=0}g=e-c|0;f=d-c|0;if((c|0)<0){b[a>>2]=g;b[h>>2]=f;b[i>>2]=0;e=g;c=0}else f=d;d=(f|0)<(e|0)?f:e;d=(c|0)<(d|0)?c:d;if((d|0)<=0)return;b[a>>2]=e-d;b[h>>2]=f-d;b[i>>2]=c-d;return}function Oa(a){a=a|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0;c=b[a>>2]|0;h=a+4|0;e=b[h>>2]|0;i=a+8|0;d=b[i>>2]|0;f=e+c|0;b[a>>2]=f;e=d+e|0;b[h>>2]=e;c=d+c|0;b[i>>2]=c;d=e-f|0;if((f|0)<0){c=c-f|0;b[h>>2]=d;b[i>>2]=c;b[a>>2]=0;e=0}else{d=e;e=f}if((d|0)<0){e=e-d|0;b[a>>2]=e;c=c-d|0;b[i>>2]=c;b[h>>2]=0;d=0}g=e-c|0;f=d-c|0;if((c|0)<0){b[a>>2]=g;b[h>>2]=f;b[i>>2]=0;e=g;c=0}else f=d;d=(f|0)<(e|0)?f:e;d=(c|0)<(d|0)?c:d;if((d|0)<=0)return;b[a>>2]=e-d;b[h>>2]=f-d;b[i>>2]=c-d;return}function Pa(a){a=a|0;switch(a|0){case 1:{a=5;break}case 5:{a=4;break}case 4:{a=6;break}case 6:{a=2;break}case 2:{a=3;break}case 3:{a=1;break}default:{}}return a|0}function Qa(a){a=a|0;switch(a|0){case 1:{a=3;break}case 3:{a=2;break}case 2:{a=6;break}case 6:{a=4;break}case 4:{a=5;break}case 5:{a=1;break}default:{}}return a|0}function Ra(a){a=a|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0;c=b[a>>2]|0;h=a+4|0;d=b[h>>2]|0;i=a+8|0;e=b[i>>2]|0;f=d+(c<<1)|0;b[a>>2]=f;d=e+(d<<1)|0;b[h>>2]=d;c=(e<<1)+c|0;b[i>>2]=c;e=d-f|0;if((f|0)<0){c=c-f|0;b[h>>2]=e;b[i>>2]=c;b[a>>2]=0;d=e;e=0}else e=f;if((d|0)<0){e=e-d|0;b[a>>2]=e;c=c-d|0;b[i>>2]=c;b[h>>2]=0;d=0}g=e-c|0;f=d-c|0;if((c|0)<0){b[a>>2]=g;b[h>>2]=f;b[i>>2]=0;e=g;c=0}else f=d;d=(f|0)<(e|0)?f:e;d=(c|0)<(d|0)?c:d;if((d|0)<=0)return;b[a>>2]=e-d;b[h>>2]=f-d;b[i>>2]=c-d;return}function Sa(a){a=a|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0;f=b[a>>2]|0;h=a+4|0;c=b[h>>2]|0;i=a+8|0;d=b[i>>2]|0;e=(c<<1)+f|0;f=d+(f<<1)|0;b[a>>2]=f;b[h>>2]=e;c=(d<<1)+c|0;b[i>>2]=c;d=e-f|0;if((f|0)<0){c=c-f|0;b[h>>2]=d;b[i>>2]=c;b[a>>2]=0;f=0}else d=e;if((d|0)<0){f=f-d|0;b[a>>2]=f;c=c-d|0;b[i>>2]=c;b[h>>2]=0;d=0}g=f-c|0;e=d-c|0;if((c|0)<0){b[a>>2]=g;b[h>>2]=e;b[i>>2]=0;f=g;c=0}else e=d;d=(e|0)<(f|0)?e:f;d=(c|0)<(d|0)?c:d;if((d|0)<=0)return;b[a>>2]=f-d;b[h>>2]=e-d;b[i>>2]=c-d;return}function Ta(a,c){a=a|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0;h=(b[a>>2]|0)-(b[c>>2]|0)|0;i=(h|0)<0;e=(b[a+4>>2]|0)-(b[c+4>>2]|0)-(i?h:0)|0;g=(e|0)<0;f=(i?0-h|0:0)+(b[a+8>>2]|0)-(b[c+8>>2]|0)+(g?0-e|0:0)|0;a=(f|0)<0;c=a?0:f;d=(g?0:e)-(a?f:0)|0;f=(i?0:h)-(g?e:0)-(a?f:0)|0;a=(d|0)<(f|0)?d:f;a=(c|0)<(a|0)?c:a;e=(a|0)>0;c=c-(e?a:0)|0;d=d-(e?a:0)|0;a=f-(e?a:0)|0;a=(a|0)>-1?a:0-a|0;d=(d|0)>-1?d:0-d|0;c=(c|0)>-1?c:0-c|0;c=(d|0)>(c|0)?d:c;return ((a|0)>(c|0)?a:c)|0}function Ua(a,c){a=a|0;c=c|0;var d=0;d=b[a+8>>2]|0;b[c>>2]=(b[a>>2]|0)-d;b[c+4>>2]=(b[a+4>>2]|0)-d;return}function Va(a,c){a=a|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0;e=b[a>>2]|0;b[c>>2]=e;a=b[a+4>>2]|0;h=c+4|0;b[h>>2]=a;i=c+8|0;b[i>>2]=0;d=a-e|0;if((e|0)<0){a=0-e|0;b[h>>2]=d;b[i>>2]=a;b[c>>2]=0;e=0}else{d=a;a=0}if((d|0)<0){e=e-d|0;b[c>>2]=e;a=a-d|0;b[i>>2]=a;b[h>>2]=0;d=0}g=e-a|0;f=d-a|0;if((a|0)<0){b[c>>2]=g;b[h>>2]=f;b[i>>2]=0;d=f;f=g;a=0}else f=e;e=(d|0)<(f|0)?d:f;e=(a|0)<(e|0)?a:e;if((e|0)<=0)return;b[c>>2]=f-e;b[h>>2]=d-e;b[i>>2]=a-e;return}function Wa(a){a=a|0;var c=0,d=0,e=0,f=0;c=a+8|0;f=b[c>>2]|0;d=f-(b[a>>2]|0)|0;b[a>>2]=d;e=a+4|0;a=(b[e>>2]|0)-f|0;b[e>>2]=a;b[c>>2]=0-(a+d);return}function Xa(a){a=a|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0;d=b[a>>2]|0;c=0-d|0;b[a>>2]=c;h=a+8|0;b[h>>2]=0;i=a+4|0;e=b[i>>2]|0;f=e+d|0;if((d|0)>0){b[i>>2]=f;b[h>>2]=d;b[a>>2]=0;c=0;e=f}else d=0;if((e|0)<0){g=c-e|0;b[a>>2]=g;d=d-e|0;b[h>>2]=d;b[i>>2]=0;f=g-d|0;c=0-d|0;if((d|0)<0){b[a>>2]=f;b[i>>2]=c;b[h>>2]=0;e=c;d=0}else{e=0;f=g}}else f=c;c=(e|0)<(f|0)?e:f;c=(d|0)<(c|0)?d:c;if((c|0)<=0)return;b[a>>2]=f-c;b[i>>2]=e-c;b[h>>2]=d-c;return}function Ya(a,c,d,e,f){a=a|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0;k=S;S=S+64|0;j=k;i=k+56|0;if(!(0==0&(c&2013265920|0)==134217728&(0==0&(e&2013265920|0)==134217728))){f=5;S=k;return f|0}if((a|0)==(d|0)&(c|0)==(e|0)){b[f>>2]=0;f=0;S=k;return f|0}g=qd(a|0,c|0,52)|0;G()|0;g=g&15;h=qd(d|0,e|0,52)|0;G()|0;if((g|0)!=(h&15|0)){f=12;S=k;return f|0}h=g+-1|0;if(g>>>0>1){sb(a,c,h,j)|0;sb(d,e,h,i)|0;h=j;do if((b[h>>2]|0)==(b[i>>2]|0)?(b[h+4>>2]|0)==(b[i+4>>2]|0):0){i=(g^15)*3|0;h=qd(a|0,c|0,i|0)|0;G()|0;h=h&7;i=qd(d|0,e|0,i|0)|0;G()|0;i=i&7;if((!((h|0)==0|(i|0)==0)?(b[15536+(h<<2)>>2]|0)!=(i|0):0)?(b[15568+(h<<2)>>2]|0)!=(i|0):0)break;b[f>>2]=1;f=0;S=k;return f|0}while(0)}g=j;h=g+56|0;do{b[g>>2]=0;g=g+4|0}while((g|0)<(h|0));$(a,c,1,j)|0;c=j;if(((((!((b[c>>2]|0)==(d|0)?(b[c+4>>2]|0)==(e|0):0)?(c=j+8|0,!((b[c>>2]|0)==(d|0)?(b[c+4>>2]|0)==(e|0):0)):0)?(c=j+16|0,!((b[c>>2]|0)==(d|0)?(b[c+4>>2]|0)==(e|0):0)):0)?(c=j+24|0,!((b[c>>2]|0)==(d|0)?(b[c+4>>2]|0)==(e|0):0)):0)?(c=j+32|0,!((b[c>>2]|0)==(d|0)?(b[c+4>>2]|0)==(e|0):0)):0)?(c=j+40|0,!((b[c>>2]|0)==(d|0)?(b[c+4>>2]|0)==(e|0):0)):0){g=j+48|0;g=((b[g>>2]|0)==(d|0)?(b[g+4>>2]|0)==(e|0):0)&1}else g=1;b[f>>2]=g;f=0;S=k;return f|0}function Za(a,c,d,e,f){a=a|0;c=c|0;d=d|0;e=e|0;f=f|0;d=ea(a,c,d,e)|0;if((d|0)==7){f=11;return f|0}e=rd(d|0,0,56)|0;c=c&-2130706433|(G()|0)|268435456;b[f>>2]=a|e;b[f+4>>2]=c;f=0;return f|0}function _a(a,c,d){a=a|0;c=c|0;d=d|0;if(!(0==0&(c&2013265920|0)==268435456)){d=6;return d|0}b[d>>2]=a;b[d+4>>2]=c&-2130706433|134217728;d=0;return d|0}function $a(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,f=0,g=0;f=S;S=S+16|0;e=f;b[e>>2]=0;if(!(0==0&(c&2013265920|0)==268435456)){e=6;S=f;return e|0}g=qd(a|0,c|0,56)|0;G()|0;e=da(a,c&-2130706433|134217728,g&7,e,d)|0;S=f;return e|0}function ab(a,b){a=a|0;b=b|0;var c=0;c=qd(a|0,b|0,56)|0;G()|0;switch(c&7){case 0:case 7:{c=0;return c|0}default:{}}c=b&-2130706433|134217728;if(!(0==0&(b&2013265920|0)==268435456)){c=0;return c|0}if(0==0&(b&117440512|0)==16777216&(ub(a,c)|0)!=0){c=0;return c|0}c=rb(a,c)|0;return c|0}function bb(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0;f=S;S=S+16|0;e=f;if(!(0==0&(c&2013265920|0)==268435456)){e=6;S=f;return e|0}g=c&-2130706433|134217728;h=d;b[h>>2]=a;b[h+4>>2]=g;b[e>>2]=0;c=qd(a|0,c|0,56)|0;G()|0;e=da(a,g,c&7,e,d+8|0)|0;S=f;return e|0}function cb(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,f=0;f=(ub(a,c)|0)==0;c=c&-2130706433;e=d;b[e>>2]=f?a:0;b[e+4>>2]=f?c|285212672:0;e=d+8|0;b[e>>2]=a;b[e+4>>2]=c|301989888;e=d+16|0;b[e>>2]=a;b[e+4>>2]=c|318767104;e=d+24|0;b[e>>2]=a;b[e+4>>2]=c|335544320;e=d+32|0;b[e>>2]=a;b[e+4>>2]=c|352321536;d=d+40|0;b[d>>2]=a;b[d+4>>2]=c|369098752;return 0}function db(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;i=S;S=S+16|0;g=i;h=c&-2130706433|134217728;if(!(0==0&(c&2013265920|0)==268435456)){h=6;S=i;return h|0}f=qd(a|0,c|0,56)|0;G()|0;f=Pc(a,h,f&7)|0;if((f|0)==-1){b[d>>2]=0;h=6;S=i;return h|0}e=Lb(a,h,g)|0;do if(!e){e=qd(a|0,c|0,52)|0;G()|0;e=e&15;if(!(ub(a,h)|0)){nb(g,e,f,2,d);e=0;break}else{jb(g,e,f,2,d);e=0;break}}while(0);h=e;S=i;return h|0}function eb(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=S;S=S+16|0;e=d;fb(a,b,c,e);Ba(e,c+4|0);S=d;return}function fb(a,c,d,f){a=a|0;c=c|0;d=d|0;f=f|0;var g=0.0,h=0.0,i=0.0,j=0,k=0;j=S;S=S+16|0;k=j;gb(a,d,k);h=+w(+(1.0-+e[k>>3]*.5));if(h<1.0e-16){b[f>>2]=0;b[f+4>>2]=0;b[f+8>>2]=0;b[f+12>>2]=0;S=j;return}k=b[d>>2]|0;g=+e[15920+(k*24|0)>>3];g=+Ub(g-+Ub(+Zb(15600+(k<<4)|0,a)));if(!(Ib(c)|0))i=g;else i=+Ub(g+-.3334731722518321);g=+v(+h)/.381966011250105;if((c|0)>0){a=0;do{g=g*2.6457513110645907;a=a+1|0}while((a|0)!=(c|0))}h=+t(+i)*g;e[f>>3]=h;i=+u(+i)*g;e[f+8>>3]=i;S=j;return}function gb(a,c,d){a=a|0;c=c|0;d=d|0;var f=0.0,g=0,h=0;h=S;S=S+32|0;g=h;Oc(a,g);b[c>>2]=0;e[d>>3]=5.0;f=+Nc(16400,g);if(f<+e[d>>3]){b[c>>2]=0;e[d>>3]=f}f=+Nc(16424,g);if(f<+e[d>>3]){b[c>>2]=1;e[d>>3]=f}f=+Nc(16448,g);if(f<+e[d>>3]){b[c>>2]=2;e[d>>3]=f}f=+Nc(16472,g);if(f<+e[d>>3]){b[c>>2]=3;e[d>>3]=f}f=+Nc(16496,g);if(f<+e[d>>3]){b[c>>2]=4;e[d>>3]=f}f=+Nc(16520,g);if(f<+e[d>>3]){b[c>>2]=5;e[d>>3]=f}f=+Nc(16544,g);if(f<+e[d>>3]){b[c>>2]=6;e[d>>3]=f}f=+Nc(16568,g);if(f<+e[d>>3]){b[c>>2]=7;e[d>>3]=f}f=+Nc(16592,g);if(f<+e[d>>3]){b[c>>2]=8;e[d>>3]=f}f=+Nc(16616,g);if(f<+e[d>>3]){b[c>>2]=9;e[d>>3]=f}f=+Nc(16640,g);if(f<+e[d>>3]){b[c>>2]=10;e[d>>3]=f}f=+Nc(16664,g);if(f<+e[d>>3]){b[c>>2]=11;e[d>>3]=f}f=+Nc(16688,g);if(f<+e[d>>3]){b[c>>2]=12;e[d>>3]=f}f=+Nc(16712,g);if(f<+e[d>>3]){b[c>>2]=13;e[d>>3]=f}f=+Nc(16736,g);if(f<+e[d>>3]){b[c>>2]=14;e[d>>3]=f}f=+Nc(16760,g);if(f<+e[d>>3]){b[c>>2]=15;e[d>>3]=f}f=+Nc(16784,g);if(f<+e[d>>3]){b[c>>2]=16;e[d>>3]=f}f=+Nc(16808,g);if(f<+e[d>>3]){b[c>>2]=17;e[d>>3]=f}f=+Nc(16832,g);if(f<+e[d>>3]){b[c>>2]=18;e[d>>3]=f}f=+Nc(16856,g);if(!(f<+e[d>>3])){S=h;return}b[c>>2]=19;e[d>>3]=f;S=h;return}function hb(a,c,d,f,g){a=a|0;c=c|0;d=d|0;f=f|0;g=g|0;var h=0.0,i=0.0;h=+Kc(a);if(h<1.0e-16){c=15600+(c<<4)|0;b[g>>2]=b[c>>2];b[g+4>>2]=b[c+4>>2];b[g+8>>2]=b[c+8>>2];b[g+12>>2]=b[c+12>>2];return}i=+z(+(+e[a+8>>3]),+(+e[a>>3]));if((d|0)>0){a=0;do{h=h/2.6457513110645907;a=a+1|0}while((a|0)!=(d|0))}if(!f){h=+y(+(h*.381966011250105));if(Ib(d)|0)i=+Ub(i+.3334731722518321)}else{h=h/3.0;d=(Ib(d)|0)==0;h=+y(+((d?h:h/2.6457513110645907)*.381966011250105))}_b(15600+(c<<4)|0,+Ub(+e[15920+(c*24|0)>>3]-i),h,g);return}function ib(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,f=0;e=S;S=S+16|0;f=e;Da(a+4|0,f);hb(f,b[a>>2]|0,c,0,d);S=e;return}function jb(a,c,d,f,g){a=a|0;c=c|0;d=d|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,I=0.0,J=0.0;G=S;S=S+272|0;h=G+256|0;u=G+240|0;D=G;E=G+224|0;F=G+208|0;v=G+176|0;w=G+160|0;x=G+192|0;y=G+144|0;z=G+128|0;A=G+112|0;B=G+96|0;C=G+80|0;b[h>>2]=c;b[u>>2]=b[a>>2];b[u+4>>2]=b[a+4>>2];b[u+8>>2]=b[a+8>>2];b[u+12>>2]=b[a+12>>2];kb(u,h,D);b[g>>2]=0;u=f+d+((f|0)==5&1)|0;if((u|0)<=(d|0)){S=G;return}k=b[h>>2]|0;l=E+4|0;m=v+4|0;n=d+5|0;o=16880+(k<<2)|0;p=16960+(k<<2)|0;q=z+8|0;r=A+8|0;s=B+8|0;t=F+4|0;j=d;a:while(1){i=D+(((j|0)%5|0)<<4)|0;b[F>>2]=b[i>>2];b[F+4>>2]=b[i+4>>2];b[F+8>>2]=b[i+8>>2];b[F+12>>2]=b[i+12>>2];do{}while((lb(F,k,0,1)|0)==2);if((j|0)>(d|0)&(Ib(c)|0)!=0){b[v>>2]=b[F>>2];b[v+4>>2]=b[F+4>>2];b[v+8>>2]=b[F+8>>2];b[v+12>>2]=b[F+12>>2];Da(l,w);f=b[v>>2]|0;h=b[17040+(f*80|0)+(b[E>>2]<<2)>>2]|0;b[v>>2]=b[18640+(f*80|0)+(h*20|0)>>2];i=b[18640+(f*80|0)+(h*20|0)+16>>2]|0;if((i|0)>0){a=0;do{Na(m);a=a+1|0}while((a|0)<(i|0))}i=18640+(f*80|0)+(h*20|0)+4|0;b[x>>2]=b[i>>2];b[x+4>>2]=b[i+4>>2];b[x+8>>2]=b[i+8>>2];Ga(x,(b[o>>2]|0)*3|0);Ea(m,x,m);Ca(m);Da(m,y);I=+(b[p>>2]|0);e[z>>3]=I*3.0;e[q>>3]=0.0;J=I*-1.5;e[A>>3]=J;e[r>>3]=I*2.598076211353316;e[B>>3]=J;e[s>>3]=I*-2.598076211353316;switch(b[17040+((b[v>>2]|0)*80|0)+(b[F>>2]<<2)>>2]|0){case 1:{a=A;f=z;break}case 3:{a=B;f=A;break}case 2:{a=z;f=B;break}default:{a=12;break a}}Lc(w,y,f,a,C);hb(C,b[v>>2]|0,k,1,g+8+(b[g>>2]<<4)|0);b[g>>2]=(b[g>>2]|0)+1}if((j|0)<(n|0)){Da(t,v);hb(v,b[F>>2]|0,k,1,g+8+(b[g>>2]<<4)|0);b[g>>2]=(b[g>>2]|0)+1};b[E>>2]=b[F>>2];b[E+4>>2]=b[F+4>>2];b[E+8>>2]=b[F+8>>2];b[E+12>>2]=b[F+12>>2];j=j+1|0;if((j|0)>=(u|0)){a=3;break}}if((a|0)==3){S=G;return}else if((a|0)==12)H(22416,22463,571,22473)}function kb(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;j=S;S=S+128|0;e=j+64|0;f=j;g=e;h=20240;i=g+60|0;do{b[g>>2]=b[h>>2];g=g+4|0;h=h+4|0}while((g|0)<(i|0));g=f;h=20304;i=g+60|0;do{b[g>>2]=b[h>>2];g=g+4|0;h=h+4|0}while((g|0)<(i|0));i=(Ib(b[c>>2]|0)|0)==0;e=i?e:f;f=a+4|0;Ra(f);Sa(f);if(Ib(b[c>>2]|0)|0){La(f);b[c>>2]=(b[c>>2]|0)+1}b[d>>2]=b[a>>2];c=d+4|0;Ea(f,e,c);Ca(c);b[d+16>>2]=b[a>>2];c=d+20|0;Ea(f,e+12|0,c);Ca(c);b[d+32>>2]=b[a>>2];c=d+36|0;Ea(f,e+24|0,c);Ca(c);b[d+48>>2]=b[a>>2];c=d+52|0;Ea(f,e+36|0,c);Ca(c);b[d+64>>2]=b[a>>2];d=d+68|0;Ea(f,e+48|0,d);Ca(d);S=j;return}function lb(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;p=S;S=S+32|0;n=p+12|0;i=p;o=a+4|0;m=b[16960+(c<<2)>>2]|0;l=(e|0)!=0;m=l?m*3|0:m;f=b[o>>2]|0;k=a+8|0;h=b[k>>2]|0;if(l){g=a+12|0;e=b[g>>2]|0;f=h+f+e|0;if((f|0)==(m|0)){o=1;S=p;return o|0}else j=g}else{j=a+12|0;e=b[j>>2]|0;f=h+f+e|0}if((f|0)<=(m|0)){o=0;S=p;return o|0}do if((e|0)>0){e=b[a>>2]|0;if((h|0)>0){g=18640+(e*80|0)+60|0;e=a;break}e=18640+(e*80|0)+40|0;if(!d){g=e;e=a}else{Aa(n,m,0,0);Fa(o,n,i);Oa(i);Ea(i,n,o);g=e;e=a}}else{g=18640+((b[a>>2]|0)*80|0)+20|0;e=a}while(0);b[e>>2]=b[g>>2];f=g+16|0;if((b[f>>2]|0)>0){e=0;do{Na(o);e=e+1|0}while((e|0)<(b[f>>2]|0))}a=g+4|0;b[n>>2]=b[a>>2];b[n+4>>2]=b[a+4>>2];b[n+8>>2]=b[a+8>>2];c=b[16880+(c<<2)>>2]|0;Ga(n,l?c*3|0:c);Ea(o,n,o);Ca(o);if(l)e=((b[k>>2]|0)+(b[o>>2]|0)+(b[j>>2]|0)|0)==(m|0)?1:2;else e=2;o=e;S=p;return o|0}function mb(a,b){a=a|0;b=b|0;var c=0;do c=lb(a,b,0,1)|0;while((c|0)==2);return c|0}function nb(a,c,d,f,g){a=a|0;c=c|0;d=d|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0.0,D=0.0;B=S;S=S+240|0;h=B+224|0;x=B+208|0;y=B;z=B+192|0;A=B+176|0;s=B+160|0;t=B+144|0;u=B+128|0;v=B+112|0;w=B+96|0;b[h>>2]=c;b[x>>2]=b[a>>2];b[x+4>>2]=b[a+4>>2];b[x+8>>2]=b[a+8>>2];b[x+12>>2]=b[a+12>>2];ob(x,h,y);b[g>>2]=0;r=f+d+((f|0)==6&1)|0;if((r|0)<=(d|0)){S=B;return}k=b[h>>2]|0;l=d+6|0;m=16960+(k<<2)|0;n=t+8|0;o=u+8|0;p=v+8|0;q=z+4|0;i=0;j=d;f=-1;a:while(1){h=(j|0)%6|0;a=y+(h<<4)|0;b[z>>2]=b[a>>2];b[z+4>>2]=b[a+4>>2];b[z+8>>2]=b[a+8>>2];b[z+12>>2]=b[a+12>>2];a=i;i=lb(z,k,0,1)|0;if((j|0)>(d|0)&(Ib(c)|0)!=0?((a|0)!=1?(b[z>>2]|0)!=(f|0):0):0){Da(y+(((h+5|0)%6|0)<<4)+4|0,A);Da(y+(h<<4)+4|0,s);C=+(b[m>>2]|0);e[t>>3]=C*3.0;e[n>>3]=0.0;D=C*-1.5;e[u>>3]=D;e[o>>3]=C*2.598076211353316;e[v>>3]=D;e[p>>3]=C*-2.598076211353316;h=b[x>>2]|0;switch(b[17040+(h*80|0)+(((f|0)==(h|0)?b[z>>2]|0:f)<<2)>>2]|0){case 1:{a=u;f=t;break}case 3:{a=v;f=u;break}case 2:{a=t;f=v;break}default:{a=8;break a}}Lc(A,s,f,a,w);if(!(Mc(A,w)|0)?!(Mc(s,w)|0):0){hb(w,b[x>>2]|0,k,1,g+8+(b[g>>2]<<4)|0);b[g>>2]=(b[g>>2]|0)+1}}if((j|0)<(l|0)){Da(q,A);hb(A,b[z>>2]|0,k,1,g+8+(b[g>>2]<<4)|0);b[g>>2]=(b[g>>2]|0)+1}j=j+1|0;if((j|0)>=(r|0)){a=3;break}else f=b[z>>2]|0}if((a|0)==3){S=B;return}else if((a|0)==8)H(22500,22463,736,22545)}function ob(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;j=S;S=S+160|0;e=j+80|0;f=j;g=e;h=20368;i=g+72|0;do{b[g>>2]=b[h>>2];g=g+4|0;h=h+4|0}while((g|0)<(i|0));g=f;h=20448;i=g+72|0;do{b[g>>2]=b[h>>2];g=g+4|0;h=h+4|0}while((g|0)<(i|0));i=(Ib(b[c>>2]|0)|0)==0;e=i?e:f;f=a+4|0;Ra(f);Sa(f);if(Ib(b[c>>2]|0)|0){La(f);b[c>>2]=(b[c>>2]|0)+1}b[d>>2]=b[a>>2];c=d+4|0;Ea(f,e,c);Ca(c);b[d+16>>2]=b[a>>2];c=d+20|0;Ea(f,e+12|0,c);Ca(c);b[d+32>>2]=b[a>>2];c=d+36|0;Ea(f,e+24|0,c);Ca(c);b[d+48>>2]=b[a>>2];c=d+52|0;Ea(f,e+36|0,c);Ca(c);b[d+64>>2]=b[a>>2];c=d+68|0;Ea(f,e+48|0,c);Ca(c);b[d+80>>2]=b[a>>2];d=d+84|0;Ea(f,e+60|0,d);Ca(d);S=j;return}function pb(a,b){a=a|0;b=b|0;b=qd(a|0,b|0,52)|0;G()|0;return b&15|0}function qb(a,b){a=a|0;b=b|0;b=qd(a|0,b|0,45)|0;G()|0;return b&127|0}function rb(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0;if(!(0==0&(b&-16777216|0)==134217728)){b=0;return b|0}g=qd(a|0,b|0,45)|0;G()|0;g=g&127;if(g>>>0>121){b=0;return b|0}c=qd(a|0,b|0,52)|0;G()|0;c=c&15;do if(c|0){e=1;d=0;while(1){f=qd(a|0,b|0,(15-e|0)*3|0)|0;G()|0;f=f&7;if((f|0)!=0&(d^1))if((f|0)==1&(la(g)|0)!=0){h=0;d=13;break}else d=1;if((f|0)==7){h=0;d=13;break}if(e>>>0>>0)e=e+1|0;else{d=9;break}}if((d|0)==9){if((c|0)==15)h=1;else break;return h|0}else if((d|0)==13)return h|0}while(0);while(1){h=qd(a|0,b|0,(14-c|0)*3|0)|0;G()|0;if(!((h&7|0)==7&0==0)){h=0;d=13;break}if(c>>>0<14)c=c+1|0;else{h=1;d=13;break}}if((d|0)==13)return h|0;return 0}function sb(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var f=0,g=0;g=qd(a|0,c|0,52)|0;G()|0;g=g&15;if(d>>>0>15){e=4;return e|0}if((g|0)<(d|0)){e=12;return e|0}if((g|0)==(d|0)){b[e>>2]=a;b[e+4>>2]=c;e=0;return e|0}f=rd(d|0,0,52)|0;f=f|a;a=G()|0|c&-15728641;if((g|0)>(d|0))do{c=rd(7,0,(14-d|0)*3|0)|0;d=d+1|0;f=c|f;a=G()|0|a}while((d|0)<(g|0));b[e>>2]=f;b[e+4>>2]=a;e=0;return e|0}function tb(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0;g=qd(a|0,c|0,52)|0;G()|0;g=g&15;if(!((d|0)<16&(g|0)<=(d|0))){e=4;return e|0}f=d-g|0;d=qd(a|0,c|0,45)|0;G()|0;a:do if(!(la(d&127)|0)){d=xc(7,0,f,((f|0)<0)<<31>>31)|0;f=G()|0}else{b:do if(g|0){d=1;while(1){h=rd(7,0,(15-d|0)*3|0)|0;if(!((h&a|0)==0&((G()|0)&c|0)==0))break;if(d>>>0>>0)d=d+1|0;else break b}d=xc(7,0,f,((f|0)<0)<<31>>31)|0;f=G()|0;break a}while(0);d=xc(7,0,f,((f|0)<0)<<31>>31)|0;d=md(d|0,G()|0,5,0)|0;d=gd(d|0,G()|0,-5,-1)|0;d=kd(d|0,G()|0,6,0)|0;d=gd(d|0,G()|0,1,0)|0;f=G()|0}while(0);h=e;b[h>>2]=d;b[h+4>>2]=f;h=0;return h|0}function ub(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;e=qd(a|0,b|0,45)|0;G()|0;if(!(la(e&127)|0)){e=0;return e|0}e=qd(a|0,b|0,52)|0;G()|0;e=e&15;a:do if(!e)c=0;else{d=1;while(1){c=qd(a|0,b|0,(15-d|0)*3|0)|0;G()|0;c=c&7;if(c|0)break a;if(d>>>0>>0)d=d+1|0;else{c=0;break}}}while(0);e=(c|0)==0&1;return e|0}function vb(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;h=S;S=S+16|0;g=h;Sb(g,a,c,d);c=g;a=b[c>>2]|0;c=b[c+4>>2]|0;if((a|0)==0&(c|0)==0){S=h;return 0}f=0;d=0;do{i=e+(f<<3)|0;b[i>>2]=a;b[i+4>>2]=c;f=gd(f|0,d|0,1,0)|0;d=G()|0;Tb(g);i=g;a=b[i>>2]|0;c=b[i+4>>2]|0}while(!((a|0)==0&(c|0)==0));S=h;return 0}function wb(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;if((d|0)<(c|0)){c=b;d=a;F(c|0);return d|0}c=rd(-1,-1,((d-c|0)*3|0)+3|0)|0;d=rd(~c|0,~(G()|0)|0,(15-d|0)*3|0)|0;c=~(G()|0)&b;d=~d&a;F(c|0);return d|0}function xb(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var f=0;f=qd(a|0,c|0,52)|0;G()|0;f=f&15;if(!((d|0)<16&(f|0)<=(d|0))){e=4;return e|0}if((f|0)<(d|0)){f=rd(-1,-1,((d+-1-f|0)*3|0)+3|0)|0;f=rd(~f|0,~(G()|0)|0,(15-d|0)*3|0)|0;c=~(G()|0)&c;a=~f&a}f=rd(d|0,0,52)|0;d=c&-15728641|(G()|0);b[e>>2]=a|f;b[e+4>>2]=d;e=0;return e|0}function yb(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;if((d|0)==0&(e|0)==0){y=0;return y|0}f=a;g=b[f>>2]|0;f=b[f+4>>2]|0;if(0==0&(f&15728640|0)==0){if(!((e|0)>0|(e|0)==0&d>>>0>0)){y=0;return y|0}y=c;b[y>>2]=g;b[y+4>>2]=f;if((d|0)==1&(e|0)==0){y=0;return y|0}f=1;do{w=a+(f<<3)|0;x=b[w+4>>2]|0;y=c+(f<<3)|0;b[y>>2]=b[w>>2];b[y+4>>2]=x;f=f+1|0}while(0<(e|0)|0==(e|0)&f>>>0>>0);f=0;return f|0}v=d<<3;x=dd(v)|0;if(!x){y=13;return y|0}ud(x|0,a|0,v|0)|0;w=fd(d,8)|0;if(!w){ed(x);y=13;return y|0}a:do if(d|0){b:while(1){f=x;s=b[f>>2]|0;f=b[f+4>>2]|0;t=qd(s|0,f|0,52)|0;G()|0;t=t&15;u=t+-1|0;r=(d|0)>0;c:do if(r){o=((d|0)<0)<<31>>31;p=rd(u|0,0,52)|0;q=G()|0;if(u>>>0>15){if(!((s|0)==0&(f|0)==0)){y=17;break b}g=0;while(1){g=g+1|0;if((g|0)>=(d|0))break c;e=x+(g<<3)|0;q=b[e>>2]|0;e=b[e+4>>2]|0;if(!((q|0)==0&(e|0)==0)){f=e;y=17;break b}}}g=0;a=s;e=f;while(1){if(!((a|0)==0&(e|0)==0)){if(!(0==0&(e&117440512|0)==0)){y=22;break b}i=qd(a|0,e|0,52)|0;G()|0;i=i&15;if((i|0)<(u|0)){f=12;y=28;break b}if((i|0)!=(u|0)){a=a|p;e=e&-15728641|q;if(i>>>0>=t>>>0){h=u;do{n=rd(7,0,(14-h|0)*3|0)|0;h=h+1|0;a=n|a;e=G()|0|e}while(h>>>0>>0)}}h=od(a|0,e|0,d|0,o|0)|0;G()|0;k=w+(h<<3)|0;i=k;j=b[i>>2]|0;i=b[i+4>>2]|0;if((j|0)==0&(i|0)==0)h=k;else{n=0;while(1){if((n|0)>(d|0)){y=32;break b}if((j|0)==(a|0)&(i&-117440513|0)==(e|0)){l=qd(j|0,i|0,56)|0;G()|0;l=l&7;m=l+1|0;z=qd(j|0,i|0,45)|0;G()|0;d:do if(!(la(z&127)|0))i=7;else{j=qd(j|0,i|0,52)|0;G()|0;j=j&15;if(!j){i=6;break}i=1;while(1){z=rd(7,0,(15-i|0)*3|0)|0;if(!((z&a|0)==0&((G()|0)&e|0)==0)){i=7;break d}if(i>>>0>>0)i=i+1|0;else{i=6;break}}}while(0);if((l+2|0)>>>0>i>>>0){y=42;break b}z=rd(m|0,0,56)|0;e=G()|0|e&-117440513;m=k;b[m>>2]=0;b[m+4>>2]=0;a=z|a}else h=(h+1|0)%(d|0)|0;k=w+(h<<3)|0;i=k;j=b[i>>2]|0;i=b[i+4>>2]|0;if((j|0)==0&(i|0)==0){h=k;break}else n=n+1|0}}z=h;b[z>>2]=a;b[z+4>>2]=e}g=g+1|0;if((g|0)>=(d|0))break c;e=x+(g<<3)|0;a=b[e>>2]|0;e=b[e+4>>2]|0}}while(0);if((d+5|0)>>>0<11){y=85;break}q=fd((d|0)/6|0,8)|0;if(!q){y=49;break}e:do if(r){n=0;m=0;do{i=w+(n<<3)|0;e=i;g=b[e>>2]|0;e=b[e+4>>2]|0;if(!((g|0)==0&(e|0)==0)){j=qd(g|0,e|0,56)|0;G()|0;j=j&7;a=j+1|0;k=e&-117440513;z=qd(g|0,e|0,45)|0;G()|0;f:do if(la(z&127)|0){l=qd(g|0,e|0,52)|0;G()|0;l=l&15;if(l|0){h=1;while(1){z=rd(7,0,(15-h|0)*3|0)|0;if(!((g&z|0)==0&(k&(G()|0)|0)==0))break f;if(h>>>0>>0)h=h+1|0;else break}}e=rd(a|0,0,56)|0;g=e|g;e=G()|0|k;a=i;b[a>>2]=g;b[a+4>>2]=e;a=j+2|0}while(0);if((a|0)==7){z=q+(m<<3)|0;b[z>>2]=g;b[z+4>>2]=e&-117440513;m=m+1|0}}n=n+1|0}while((n|0)!=(d|0));if(r){n=((d|0)<0)<<31>>31;o=rd(u|0,0,52)|0;p=G()|0;if(u>>>0>15){if(!((s|0)==0&(f|0)==0)){f=4;y=75;break b}f=0;while(1){f=f+1|0;if((f|0)>=(d|0)){g=0;f=m;break e}z=x+(f<<3)|0;if(!((b[z>>2]|0)==0&(b[z+4>>2]|0)==0)){f=4;y=75;break b}}}l=0;g=0;k=s;while(1){do if(!((k|0)==0&(f|0)==0)){i=qd(k|0,f|0,52)|0;G()|0;i=i&15;if((i|0)<(u|0)){f=12;y=75;break b}do if((i|0)==(u|0)){e=k;i=f}else{e=k|o;a=f&-15728641|p;if(i>>>0>>0){i=a;break}h=u;do{z=rd(7,0,(14-h|0)*3|0)|0;h=h+1|0;e=z|e;a=G()|0|a}while(h>>>0>>0);i=a}while(0);h=od(e|0,i|0,d|0,n|0)|0;G()|0;a=0;while(1){if((a|0)>(d|0)){y=78;break b}z=w+(h<<3)|0;j=b[z+4>>2]|0;if((j&-117440513|0)==(i|0)?(b[z>>2]|0)==(e|0):0){y=80;break}h=(h+1|0)%(d|0)|0;z=w+(h<<3)|0;if((b[z>>2]|0)==(e|0)?(b[z+4>>2]|0)==(i|0):0)break;else a=a+1|0}if((y|0)==80?(y=0,0==0&(j&117440512|0)==100663296):0)break;z=c+(g<<3)|0;b[z>>2]=k;b[z+4>>2]=f;g=g+1|0}while(0);f=l+1|0;if((f|0)>=(d|0)){f=m;break e}z=x+(f<<3)|0;l=f;k=b[z>>2]|0;f=b[z+4>>2]|0}}else{g=0;f=m}}else{g=0;f=0}while(0);vd(w|0,0,v|0)|0;ud(x|0,q|0,f<<3|0)|0;ed(q);if(!f)break a;else{c=c+(g<<3)|0;d=f}}if((y|0)==17)if(0==0&(f&117440512|0)==0){f=4;y=28}else y=22;else if((y|0)==32){ed(x);ed(w);z=1;return z|0}else if((y|0)==42){ed(x);ed(w);z=10;return z|0}else if((y|0)==49){ed(x);ed(w);z=13;return z|0}else if((y|0)==75){ed(x);ed(w);z=f;return z|0}else if((y|0)==78){ed(q);ed(x);ed(w);z=1;return z|0}else if((y|0)==85){ud(c|0,x|0,d<<3|0)|0;break}if((y|0)==22){ed(x);ed(w);z=5;return z|0}else if((y|0)==28){ed(x);ed(w);z=f;return z|0}}while(0);ed(x);ed(w);z=0;return z|0}function zb(a,c,d,e,f,g,h){a=a|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;q=S;S=S+16|0;p=q;if(!((d|0)>0|(d|0)==0&c>>>0>0)){p=0;S=q;return p|0}if((h|0)>=16){p=12;S=q;return p|0}n=0;o=0;m=0;i=0;a:while(1){k=a+(n<<3)|0;j=b[k>>2]|0;k=b[k+4>>2]|0;l=qd(j|0,k|0,52)|0;G()|0;if((l&15|0)>(h|0)){i=12;j=11;break}Sb(p,j,k,h);l=p;k=b[l>>2]|0;l=b[l+4>>2]|0;if((k|0)==0&(l|0)==0)j=m;else{j=m;do{if(!((i|0)<(g|0)|(i|0)==(g|0)&j>>>0>>0)){j=10;break a}m=e+(j<<3)|0;b[m>>2]=k;b[m+4>>2]=l;j=gd(j|0,i|0,1,0)|0;i=G()|0;Tb(p);m=p;k=b[m>>2]|0;l=b[m+4>>2]|0}while(!((k|0)==0&(l|0)==0))}n=gd(n|0,o|0,1,0)|0;o=G()|0;if(!((o|0)<(d|0)|(o|0)==(d|0)&n>>>0>>0)){i=0;j=11;break}else m=j}if((j|0)==10){p=14;S=q;return p|0}else if((j|0)==11){S=q;return i|0}return 0}function Ab(a,c,d,e,f){a=a|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;n=S;S=S+16|0;m=n;a:do if((d|0)>0|(d|0)==0&c>>>0>0){k=0;h=0;g=0;l=0;while(1){j=a+(k<<3)|0;i=b[j>>2]|0;j=b[j+4>>2]|0;if(!((i|0)==0&(j|0)==0)){j=(tb(i,j,e,m)|0)==0;i=m;h=gd(b[i>>2]|0,b[i+4>>2]|0,h|0,g|0)|0;g=G()|0;if(!j){g=12;break}}k=gd(k|0,l|0,1,0)|0;l=G()|0;if(!((l|0)<(d|0)|(l|0)==(d|0)&k>>>0>>0))break a}S=n;return g|0}else{h=0;g=0}while(0);b[f>>2]=h;b[f+4>>2]=g;f=0;S=n;return f|0}function Bb(a,b){a=a|0;b=b|0;b=qd(a|0,b|0,52)|0;G()|0;return b&1|0}function Cb(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;e=qd(a|0,b|0,52)|0;G()|0;e=e&15;if(!e){e=0;return e|0}d=1;while(1){c=qd(a|0,b|0,(15-d|0)*3|0)|0;G()|0;c=c&7;if(c|0){d=5;break}if(d>>>0>>0)d=d+1|0;else{c=0;d=5;break}}if((d|0)==5)return c|0;return 0}function Db(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0;i=qd(a|0,b|0,52)|0;G()|0;i=i&15;if(!i){h=b;i=a;F(h|0);return i|0}h=1;c=0;while(1){f=(15-h|0)*3|0;d=rd(7,0,f|0)|0;e=G()|0;g=qd(a|0,b|0,f|0)|0;G()|0;f=rd(Pa(g&7)|0,0,f|0)|0;g=G()|0;a=f|a&~d;b=g|b&~e;a:do if(!c)if(!((f&d|0)==0&(g&e|0)==0)){d=qd(a|0,b|0,52)|0;G()|0;d=d&15;if(!d)c=1;else{c=1;b:while(1){g=qd(a|0,b|0,(15-c|0)*3|0)|0;G()|0;switch(g&7){case 1:break b;case 0:break;default:{c=1;break a}}if(c>>>0>>0)c=c+1|0;else{c=1;break a}}c=1;while(1){g=(15-c|0)*3|0;e=qd(a|0,b|0,g|0)|0;G()|0;f=rd(7,0,g|0)|0;b=b&~(G()|0);g=rd(Pa(e&7)|0,0,g|0)|0;a=a&~f|g;b=b|(G()|0);if(c>>>0>>0)c=c+1|0;else{c=1;break}}}}else c=0;while(0);if(h>>>0>>0)h=h+1|0;else break}F(b|0);return a|0}function Eb(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0;d=qd(a|0,b|0,52)|0;G()|0;d=d&15;if(!d){c=b;d=a;F(c|0);return d|0}c=1;while(1){f=(15-c|0)*3|0;g=qd(a|0,b|0,f|0)|0;G()|0;e=rd(7,0,f|0)|0;b=b&~(G()|0);f=rd(Pa(g&7)|0,0,f|0)|0;a=f|a&~e;b=G()|0|b;if(c>>>0>>0)c=c+1|0;else break}F(b|0);return a|0}function Fb(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0;i=qd(a|0,b|0,52)|0;G()|0;i=i&15;if(!i){h=b;i=a;F(h|0);return i|0}h=1;c=0;while(1){f=(15-h|0)*3|0;d=rd(7,0,f|0)|0;e=G()|0;g=qd(a|0,b|0,f|0)|0;G()|0;f=rd(Qa(g&7)|0,0,f|0)|0;g=G()|0;a=f|a&~d;b=g|b&~e;a:do if(!c)if(!((f&d|0)==0&(g&e|0)==0)){d=qd(a|0,b|0,52)|0;G()|0;d=d&15;if(!d)c=1;else{c=1;b:while(1){g=qd(a|0,b|0,(15-c|0)*3|0)|0;G()|0;switch(g&7){case 1:break b;case 0:break;default:{c=1;break a}}if(c>>>0>>0)c=c+1|0;else{c=1;break a}}c=1;while(1){e=(15-c|0)*3|0;f=rd(7,0,e|0)|0;g=b&~(G()|0);b=qd(a|0,b|0,e|0)|0;G()|0;b=rd(Qa(b&7)|0,0,e|0)|0;a=a&~f|b;b=g|(G()|0);if(c>>>0>>0)c=c+1|0;else{c=1;break}}}}else c=0;while(0);if(h>>>0>>0)h=h+1|0;else break}F(b|0);return a|0}function Gb(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0;d=qd(a|0,b|0,52)|0;G()|0;d=d&15;if(!d){c=b;d=a;F(c|0);return d|0}c=1;while(1){g=(15-c|0)*3|0;f=rd(7,0,g|0)|0;e=b&~(G()|0);b=qd(a|0,b|0,g|0)|0;G()|0;b=rd(Qa(b&7)|0,0,g|0)|0;a=b|a&~f;b=G()|0|e;if(c>>>0>>0)c=c+1|0;else break}F(b|0);return a|0}function Hb(a,c){a=a|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;j=S;S=S+64|0;i=j+40|0;e=j+24|0;f=j+12|0;g=j;rd(c|0,0,52)|0;d=G()|0|134225919;if(!c){if((b[a+4>>2]|0)>2){h=0;i=0;F(h|0);S=j;return i|0}if((b[a+8>>2]|0)>2){h=0;i=0;F(h|0);S=j;return i|0}if((b[a+12>>2]|0)>2){h=0;i=0;F(h|0);S=j;return i|0}rd(na(a)|0,0,45)|0;h=G()|0|d;i=-1;F(h|0);S=j;return i|0};b[i>>2]=b[a>>2];b[i+4>>2]=b[a+4>>2];b[i+8>>2]=b[a+8>>2];b[i+12>>2]=b[a+12>>2];h=i+4|0;if((c|0)>0){a=-1;while(1){b[e>>2]=b[h>>2];b[e+4>>2]=b[h+4>>2];b[e+8>>2]=b[h+8>>2];if(!(c&1)){Ja(h);b[f>>2]=b[h>>2];b[f+4>>2]=b[h+4>>2];b[f+8>>2]=b[h+8>>2];La(f)}else{Ia(h);b[f>>2]=b[h>>2];b[f+4>>2]=b[h+4>>2];b[f+8>>2]=b[h+8>>2];Ka(f)}Fa(e,f,g);Ca(g);l=(15-c|0)*3|0;k=rd(7,0,l|0)|0;d=d&~(G()|0);l=rd(Ha(g)|0,0,l|0)|0;a=l|a&~k;d=G()|0|d;if((c|0)>1)c=c+-1|0;else break}}else a=-1;a:do if(((b[h>>2]|0)<=2?(b[i+8>>2]|0)<=2:0)?(b[i+12>>2]|0)<=2:0){e=na(i)|0;c=rd(e|0,0,45)|0;c=c|a;a=G()|0|d&-1040385;g=oa(i)|0;if(!(la(e)|0)){if((g|0)<=0)break;f=0;while(1){e=qd(c|0,a|0,52)|0;G()|0;e=e&15;if(e){d=1;while(1){l=(15-d|0)*3|0;i=qd(c|0,a|0,l|0)|0;G()|0;k=rd(7,0,l|0)|0;a=a&~(G()|0);l=rd(Pa(i&7)|0,0,l|0)|0;c=c&~k|l;a=a|(G()|0);if(d>>>0>>0)d=d+1|0;else break}}f=f+1|0;if((f|0)==(g|0))break a}}f=qd(c|0,a|0,52)|0;G()|0;f=f&15;b:do if(f){d=1;c:while(1){l=qd(c|0,a|0,(15-d|0)*3|0)|0;G()|0;switch(l&7){case 1:break c;case 0:break;default:break b}if(d>>>0>>0)d=d+1|0;else break b}if(ra(e,b[i>>2]|0)|0){d=1;while(1){i=(15-d|0)*3|0;k=rd(7,0,i|0)|0;l=a&~(G()|0);a=qd(c|0,a|0,i|0)|0;G()|0;a=rd(Qa(a&7)|0,0,i|0)|0;c=c&~k|a;a=l|(G()|0);if(d>>>0>>0)d=d+1|0;else break}}else{d=1;while(1){l=(15-d|0)*3|0;i=qd(c|0,a|0,l|0)|0;G()|0;k=rd(7,0,l|0)|0;a=a&~(G()|0);l=rd(Pa(i&7)|0,0,l|0)|0;c=c&~k|l;a=a|(G()|0);if(d>>>0>>0)d=d+1|0;else break}}}while(0);if((g|0)>0){d=0;do{c=Db(c,a)|0;a=G()|0;d=d+1|0}while((d|0)!=(g|0))}}else{c=0;a=0}while(0);k=a;l=c;F(k|0);S=j;return l|0}function Ib(a){a=a|0;return (a|0)%2|0|0}function Jb(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,f=0;f=S;S=S+16|0;e=f;if(c>>>0>15){e=4;S=f;return e|0}if(0==0?(b[a+4>>2]&2146435072|0)==2146435072:0){e=3;S=f;return e|0}if(0==0?(b[a+8+4>>2]&2146435072|0)==2146435072:0){e=3;S=f;return e|0}eb(a,c,e);c=Hb(e,c)|0;e=G()|0;b[d>>2]=c;b[d+4>>2]=e;e=(c|0)==0&(e|0)==0&1;S=f;return e|0}function Kb(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0;f=d+4|0;g=qd(a|0,c|0,52)|0;G()|0;g=g&15;h=qd(a|0,c|0,45)|0;G()|0;e=(g|0)==0;if(!(la(h&127)|0)){if(e){h=0;return h|0}if((b[f>>2]|0)==0?(b[d+8>>2]|0)==0:0)e=(b[d+12>>2]|0)!=0&1;else e=1}else if(e){h=1;return h|0}else e=1;d=1;while(1){if(!(d&1))La(f);else Ka(f);h=qd(a|0,c|0,(15-d|0)*3|0)|0;G()|0;Ma(f,h&7);if(d>>>0>>0)d=d+1|0;else break}return e|0}function Lb(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;l=S;S=S+16|0;j=l;k=qd(a|0,c|0,45)|0;G()|0;k=k&127;if(k>>>0>121){b[d>>2]=0;b[d+4>>2]=0;b[d+8>>2]=0;b[d+12>>2]=0;k=5;S=l;return k|0}a:do if((la(k)|0)!=0?(g=qd(a|0,c|0,52)|0,G()|0,g=g&15,(g|0)!=0):0){e=1;b:while(1){i=qd(a|0,c|0,(15-e|0)*3|0)|0;G()|0;switch(i&7){case 5:break b;case 0:break;default:{e=c;break a}}if(e>>>0>>0)e=e+1|0;else{e=c;break a}}f=1;e=c;while(1){c=(15-f|0)*3|0;h=rd(7,0,c|0)|0;i=e&~(G()|0);e=qd(a|0,e|0,c|0)|0;G()|0;e=rd(Qa(e&7)|0,0,c|0)|0;a=a&~h|e;e=i|(G()|0);if(f>>>0>>0)f=f+1|0;else break}}else e=c;while(0);i=7696+(k*28|0)|0;b[d>>2]=b[i>>2];b[d+4>>2]=b[i+4>>2];b[d+8>>2]=b[i+8>>2];b[d+12>>2]=b[i+12>>2];if(!(Kb(a,e,d)|0)){k=0;S=l;return k|0}h=d+4|0;b[j>>2]=b[h>>2];b[j+4>>2]=b[h+4>>2];b[j+8>>2]=b[h+8>>2];g=qd(a|0,e|0,52)|0;G()|0;i=g&15;if(!(g&1))g=i;else{La(h);g=i+1|0}if(!(la(k)|0))e=0;else{c:do if(!i)e=0;else{c=1;while(1){f=qd(a|0,e|0,(15-c|0)*3|0)|0;G()|0;f=f&7;if(f|0){e=f;break c}if(c>>>0>>0)c=c+1|0;else{e=0;break}}}while(0);e=(e|0)==4&1}if(!(lb(d,g,e,0)|0)){if((g|0)!=(i|0)){b[h>>2]=b[j>>2];b[h+4>>2]=b[j+4>>2];b[h+8>>2]=b[j+8>>2]}}else{if(la(k)|0)do{}while((lb(d,g,0,0)|0)!=0);if((g|0)!=(i|0))Ja(h)}k=0;S=l;return k|0}function Mb(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0;f=S;S=S+16|0;d=f;e=Lb(a,b,d)|0;if(e|0){S=f;return e|0}e=qd(a|0,b|0,52)|0;G()|0;ib(d,e&15,c);e=0;S=f;return e|0}function Nb(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0;g=S;S=S+16|0;f=g;d=Lb(a,b,f)|0;if(d|0){f=d;S=g;return f|0}d=qd(a|0,b|0,45)|0;G()|0;d=(la(d&127)|0)==0;e=qd(a|0,b|0,52)|0;G()|0;e=e&15;a:do if(!d){if(e|0){d=1;while(1){h=rd(7,0,(15-d|0)*3|0)|0;if(!((h&a|0)==0&((G()|0)&b|0)==0))break a;if(d>>>0>>0)d=d+1|0;else break}}jb(f,e,0,5,c);h=0;S=g;return h|0}while(0);nb(f,e,0,6,c);h=0;S=g;return h|0}function Ob(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,f=0,g=0;f=qd(a|0,c|0,45)|0;G()|0;if(!(la(f&127)|0)){f=2;b[d>>2]=f;return 0}f=qd(a|0,c|0,52)|0;G()|0;f=f&15;if(!f){f=5;b[d>>2]=f;return 0}e=1;while(1){g=rd(7,0,(15-e|0)*3|0)|0;if(!((g&a|0)==0&((G()|0)&c|0)==0)){e=2;a=6;break}if(e>>>0>>0)e=e+1|0;else{e=5;a=6;break}}if((a|0)==6){b[d>>2]=e;return 0}return 0}function Pb(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;m=S;S=S+128|0;k=m+112|0;g=m+96|0;l=m;f=qd(a|0,c|0,52)|0;G()|0;i=f&15;b[k>>2]=i;h=qd(a|0,c|0,45)|0;G()|0;h=h&127;a:do if(la(h)|0){if(i|0){e=1;while(1){j=rd(7,0,(15-e|0)*3|0)|0;if(!((j&a|0)==0&((G()|0)&c|0)==0)){f=0;break a}if(e>>>0>>0)e=e+1|0;else break}}if(!(f&1)){j=rd(i+1|0,0,52)|0;l=G()|0|c&-15728641;k=rd(7,0,(14-i|0)*3|0)|0;l=Pb((j|a)&~k,l&~(G()|0),d)|0;S=m;return l|0}else f=1}else f=0;while(0);e=Lb(a,c,g)|0;if(!e){if(f){kb(g,k,l);j=5}else{ob(g,k,l);j=6}b:do if(la(h)|0)if(!i)a=5;else{e=1;while(1){h=rd(7,0,(15-e|0)*3|0)|0;if(!((h&a|0)==0&((G()|0)&c|0)==0)){a=2;break b}if(e>>>0>>0)e=e+1|0;else{a=5;break}}}else a=2;while(0);vd(d|0,-1,a<<2|0)|0;c:do if(f){g=0;while(1){h=l+(g<<4)|0;mb(h,b[k>>2]|0)|0;h=b[h>>2]|0;i=b[d>>2]|0;if((i|0)==-1|(i|0)==(h|0))e=d;else{f=0;do{f=f+1|0;if(f>>>0>=a>>>0){e=1;break c}e=d+(f<<2)|0;i=b[e>>2]|0}while(!((i|0)==-1|(i|0)==(h|0)))}b[e>>2]=h;g=g+1|0;if(g>>>0>=j>>>0){e=0;break}}}else{g=0;while(1){h=l+(g<<4)|0;lb(h,b[k>>2]|0,0,1)|0;h=b[h>>2]|0;i=b[d>>2]|0;if((i|0)==-1|(i|0)==(h|0))e=d;else{f=0;do{f=f+1|0;if(f>>>0>=a>>>0){e=1;break c}e=d+(f<<2)|0;i=b[e>>2]|0}while(!((i|0)==-1|(i|0)==(h|0)))}b[e>>2]=h;g=g+1|0;if(g>>>0>=j>>>0){e=0;break}}}while(0)}l=e;S=m;return l|0}function Qb(){return 12}function Rb(a,c){a=a|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;if(a>>>0>15){i=4;return i|0}rd(a|0,0,52)|0;i=G()|0|134225919;if(!a){d=0;e=0;do{if(la(e)|0){rd(e|0,0,45)|0;h=i|(G()|0);a=c+(d<<3)|0;b[a>>2]=-1;b[a+4>>2]=h;d=d+1|0}e=e+1|0}while((e|0)!=122);d=0;return d|0}d=0;h=0;do{if(la(h)|0){rd(h|0,0,45)|0;e=1;f=-1;g=i|(G()|0);while(1){j=rd(7,0,(15-e|0)*3|0)|0;f=f&~j;g=g&~(G()|0);if((e|0)==(a|0))break;else e=e+1|0}j=c+(d<<3)|0;b[j>>2]=f;b[j+4>>2]=g;d=d+1|0}h=h+1|0}while((h|0)!=122);d=0;return d|0}function Sb(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var f=0,g=0;f=qd(c|0,d|0,52)|0;G()|0;f=f&15;if((c|0)==0&(d|0)==0|((e|0)>15|(f|0)>(e|0))){e=-1;f=-1;c=0;d=0}else{g=wb(c,d,f+1|0,e)|0;d=(G()|0)&-15728641;c=rd(e|0,0,52)|0;c=g|c;d=d|(G()|0);g=(ub(c,d)|0)==0;e=g?-1:e}g=a;b[g>>2]=c;b[g+4>>2]=d;b[a+8>>2]=f;b[a+12>>2]=e;return}function Tb(a){a=a|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;d=a;c=b[d>>2]|0;d=b[d+4>>2]|0;if((c|0)==0&(d|0)==0)return;e=qd(c|0,d|0,52)|0;G()|0;e=e&15;i=rd(1,0,(e^15)*3|0)|0;c=gd(i|0,G()|0,c|0,d|0)|0;d=G()|0;i=a;b[i>>2]=c;b[i+4>>2]=d;i=a+8|0;h=b[i>>2]|0;if((e|0)<(h|0))return;j=a+12|0;g=e;while(1){if((g|0)==(h|0)){e=5;break}k=(g|0)==(b[j>>2]|0);f=(15-g|0)*3|0;e=qd(c|0,d|0,f|0)|0;G()|0;e=e&7;if(k&((e|0)==1&0==0)){e=7;break}if(!((e|0)==7&0==0)){e=10;break}k=rd(1,0,f|0)|0;c=gd(c|0,d|0,k|0,G()|0)|0;d=G()|0;k=a;b[k>>2]=c;b[k+4>>2]=d;if((g|0)>(h|0))g=g+-1|0;else{e=10;break}}if((e|0)==5){k=a;b[k>>2]=0;b[k+4>>2]=0;b[i>>2]=-1;b[j>>2]=-1;return}else if((e|0)==7){h=rd(1,0,f|0)|0;h=gd(c|0,d|0,h|0,G()|0)|0;i=G()|0;k=a;b[k>>2]=h;b[k+4>>2]=i;b[j>>2]=g+-1;return}else if((e|0)==10)return}function Ub(a){a=+a;var b=0.0;b=a<0.0?a+6.283185307179586:a;return +(!(a>=6.283185307179586)?b:b+-6.283185307179586)}function Vb(a,b){a=a|0;b=b|0;if(!(+q(+(+e[a>>3]-+e[b>>3]))<1.7453292519943298e-11)){b=0;return b|0}b=+q(+(+e[a+8>>3]-+e[b+8>>3]))<1.7453292519943298e-11;return b|0}function Wb(a,b){a=a|0;b=b|0;var c=0.0,d=0.0,f=0.0,g=0.0;f=+e[b>>3];d=+e[a>>3];g=+u(+((f-d)*.5));c=+u(+((+e[b+8>>3]-+e[a+8>>3])*.5));c=g*g+c*(+t(+f)*+t(+d)*c);return +(+z(+(+r(+c)),+(+r(+(1.0-c))))*2.0)}function Xb(a,b){a=a|0;b=b|0;var c=0.0,d=0.0,f=0.0,g=0.0;f=+e[b>>3];d=+e[a>>3];g=+u(+((f-d)*.5));c=+u(+((+e[b+8>>3]-+e[a+8>>3])*.5));c=g*g+c*(+t(+f)*+t(+d)*c);return +(+z(+(+r(+c)),+(+r(+(1.0-c))))*2.0*6371.007180918475)}function Yb(a,b){a=a|0;b=b|0;var c=0.0,d=0.0,f=0.0,g=0.0;f=+e[b>>3];d=+e[a>>3];g=+u(+((f-d)*.5));c=+u(+((+e[b+8>>3]-+e[a+8>>3])*.5));c=g*g+c*(+t(+f)*+t(+d)*c);return +(+z(+(+r(+c)),+(+r(+(1.0-c))))*2.0*6371.007180918475*1.0e3)}function Zb(a,b){a=a|0;b=b|0;var c=0.0,d=0.0,f=0.0,g=0.0,h=0.0;g=+e[b>>3];d=+t(+g);f=+e[b+8>>3]-+e[a+8>>3];h=d*+u(+f);c=+e[a>>3];return +(+z(+h,+(+u(+g)*+t(+c)-+t(+f)*(d*+u(+c)))))}function _b(a,c,d,f){a=a|0;c=+c;d=+d;f=f|0;var g=0,h=0.0,i=0.0,j=0.0;if(d<1.0e-16){b[f>>2]=b[a>>2];b[f+4>>2]=b[a+4>>2];b[f+8>>2]=b[a+8>>2];b[f+12>>2]=b[a+12>>2];return}h=c<0.0?c+6.283185307179586:c;h=!(c>=6.283185307179586)?h:h+-6.283185307179586;do if(h<1.0e-16){c=+e[a>>3]+d;e[f>>3]=c;g=f}else{g=+q(+(h+-3.141592653589793))<1.0e-16;c=+e[a>>3];if(g){c=c-d;e[f>>3]=c;g=f;break}i=+t(+d);d=+u(+d);c=i*+u(+c)+ +t(+h)*(d*+t(+c));c=c>1.0?1.0:c;c=+x(+(c<-1.0?-1.0:c));e[f>>3]=c;if(+q(+(c+-1.5707963267948966))<1.0e-16){e[f>>3]=1.5707963267948966;e[f+8>>3]=0.0;return}if(+q(+(c+1.5707963267948966))<1.0e-16){e[f>>3]=-1.5707963267948966;e[f+8>>3]=0.0;return}j=+t(+c);h=d*+u(+h)/j;d=+e[a>>3];c=(i-+u(+c)*+u(+d))/+t(+d)/j;i=h>1.0?1.0:h;c=c>1.0?1.0:c;c=+e[a+8>>3]+ +z(+(i<-1.0?-1.0:i),+(c<-1.0?-1.0:c));if(c>3.141592653589793)do c=c+-6.283185307179586;while(c>3.141592653589793);if(c<-3.141592653589793)do c=c+6.283185307179586;while(c<-3.141592653589793);e[f+8>>3]=c;return}while(0);if(+q(+(c+-1.5707963267948966))<1.0e-16){e[g>>3]=1.5707963267948966;e[f+8>>3]=0.0;return}if(+q(+(c+1.5707963267948966))<1.0e-16){e[g>>3]=-1.5707963267948966;e[f+8>>3]=0.0;return}c=+e[a+8>>3];if(c>3.141592653589793)do c=c+-6.283185307179586;while(c>3.141592653589793);if(c<-3.141592653589793)do c=c+6.283185307179586;while(c<-3.141592653589793);e[f+8>>3]=c;return}function $b(a,b){a=a|0;b=b|0;if(a>>>0>15){b=4;return b|0}e[b>>3]=+e[20528+(a<<3)>>3];b=0;return b|0}function ac(a,b){a=a|0;b=b|0;if(a>>>0>15){b=4;return b|0}e[b>>3]=+e[20656+(a<<3)>>3];b=0;return b|0}function bc(a,b){a=a|0;b=b|0;if(a>>>0>15){b=4;return b|0}e[b>>3]=+e[20784+(a<<3)>>3];b=0;return b|0}function cc(a,b){a=a|0;b=b|0;if(a>>>0>15){b=4;return b|0}e[b>>3]=+e[20912+(a<<3)>>3];b=0;return b|0}function dc(a,c){a=a|0;c=c|0;var d=0;if(a>>>0>15){c=4;return c|0}d=xc(7,0,a,((a|0)<0)<<31>>31)|0;d=md(d|0,G()|0,120,0)|0;a=G()|0;b[c>>2]=d|2;b[c+4>>2]=a;c=0;return c|0}function ec(a,b,c){a=a|0;b=b|0;c=c|0;var d=0.0,f=0.0,g=0.0,h=0.0,i=0.0,j=0.0,k=0.0,l=0.0,m=0.0,n=0.0;n=+e[b>>3];l=+e[a>>3];j=+u(+((n-l)*.5));g=+e[b+8>>3];k=+e[a+8>>3];h=+u(+((g-k)*.5));i=+t(+l);m=+t(+n);h=j*j+h*(m*i*h);h=+z(+(+r(+h)),+(+r(+(1.0-h))))*2.0;j=+e[c>>3];n=+u(+((j-n)*.5));d=+e[c+8>>3];g=+u(+((d-g)*.5));f=+t(+j);g=n*n+g*(m*f*g);g=+z(+(+r(+g)),+(+r(+(1.0-g))))*2.0;j=+u(+((l-j)*.5));d=+u(+((k-d)*.5));d=j*j+d*(i*f*d);d=+z(+(+r(+d)),+(+r(+(1.0-d))))*2.0;f=(h+g+d)*.5;return +(+y(+(+r(+(+v(+(f*.5))*+v(+((f-h)*.5))*+v(+((f-g)*.5))*+v(+((f-d)*.5))))))*4.0)}function fc(a,c,d){a=a|0;c=c|0;d=d|0;var f=0.0,g=0,h=0,i=0,j=0;j=S;S=S+192|0;h=j+168|0;i=j;g=Mb(a,c,h)|0;if(g|0){d=g;S=j;return d|0}a=Nb(a,c,i)|0;if(a|0){d=a;S=j;return d|0}c=b[i>>2]|0;if((c|0)>0){f=+ec(i+8|0,i+8+(((c|0)!=1&1)<<4)|0,h)+0.0;if((c|0)!=1){a=1;do{g=a;a=a+1|0;f=f+ +ec(i+8+(g<<4)|0,i+8+(((a|0)%(c|0)|0)<<4)|0,h)}while((a|0)<(c|0))}}else f=0.0;e[d>>3]=f;d=0;S=j;return d|0}function gc(a,c,d){a=a|0;c=c|0;d=d|0;var f=0,g=0.0,h=0,i=0,j=0;j=S;S=S+192|0;h=j+168|0;i=j;f=Mb(a,c,h)|0;if(!f){f=Nb(a,c,i)|0;if(!f){a=b[i>>2]|0;if((a|0)>0){g=+ec(i+8|0,i+8+(((a|0)!=1&1)<<4)|0,h)+0.0;if((a|0)!=1){f=1;do{c=f;f=f+1|0;g=g+ +ec(i+8+(c<<4)|0,i+8+(((f|0)%(a|0)|0)<<4)|0,h)}while((f|0)<(a|0))}}else g=0.0;e[d>>3]=g*6371.007180918475*6371.007180918475;d=0;S=j;return d|0}}d=f;S=j;return d|0}function hc(a,b,c){a=a|0;b=b|0;c=c|0;a=gc(a,b,c)|0;if(a|0)return a|0;e[c>>3]=+e[c>>3]*1.0e3*1.0e3;return a|0}function ic(a,c,d){a=a|0;c=c|0;d=d|0;var f=0.0,g=0.0,h=0.0,i=0,j=0,k=0.0,l=0.0,m=0.0;j=S;S=S+176|0;i=j;a=db(a,c,i)|0;if(a|0){i=a;S=j;return i|0}e[d>>3]=0.0;a=b[i>>2]|0;if((a|0)<=1){i=0;S=j;return i|0}c=a+-1|0;a=0;f=+e[i+8>>3];g=+e[i+16>>3];h=0.0;do{a=a+1|0;l=f;f=+e[i+8+(a<<4)>>3];m=+u(+((f-l)*.5));k=g;g=+e[i+8+(a<<4)+8>>3];k=+u(+((g-k)*.5));k=m*m+k*(+t(+f)*+t(+l)*k);h=h+ +z(+(+r(+k)),+(+r(+(1.0-k))))*2.0}while((a|0)<(c|0));e[d>>3]=h;i=0;S=j;return i|0}function jc(a,c,d){a=a|0;c=c|0;d=d|0;var f=0.0,g=0.0,h=0.0,i=0,j=0,k=0.0,l=0.0,m=0.0;j=S;S=S+176|0;i=j;a=db(a,c,i)|0;if(a|0){i=a;h=+e[d>>3];h=h*6371.007180918475;e[d>>3]=h;S=j;return i|0}e[d>>3]=0.0;a=b[i>>2]|0;if((a|0)<=1){i=0;h=0.0;h=h*6371.007180918475;e[d>>3]=h;S=j;return i|0}c=a+-1|0;a=0;f=+e[i+8>>3];g=+e[i+16>>3];h=0.0;do{a=a+1|0;l=f;f=+e[i+8+(a<<4)>>3];m=+u(+((f-l)*.5));k=g;g=+e[i+8+(a<<4)+8>>3];k=+u(+((g-k)*.5));k=m*m+k*(+t(+l)*+t(+f)*k);h=h+ +z(+(+r(+k)),+(+r(+(1.0-k))))*2.0}while((a|0)!=(c|0));e[d>>3]=h;i=0;m=h;m=m*6371.007180918475;e[d>>3]=m;S=j;return i|0}function kc(a,c,d){a=a|0;c=c|0;d=d|0;var f=0.0,g=0.0,h=0.0,i=0,j=0,k=0.0,l=0.0,m=0.0;j=S;S=S+176|0;i=j;a=db(a,c,i)|0;if(a|0){i=a;h=+e[d>>3];h=h*6371.007180918475;h=h*1.0e3;e[d>>3]=h;S=j;return i|0}e[d>>3]=0.0;a=b[i>>2]|0;if((a|0)<=1){i=0;h=0.0;h=h*6371.007180918475;h=h*1.0e3;e[d>>3]=h;S=j;return i|0}c=a+-1|0;a=0;f=+e[i+8>>3];g=+e[i+16>>3];h=0.0;do{a=a+1|0;l=f;f=+e[i+8+(a<<4)>>3];m=+u(+((f-l)*.5));k=g;g=+e[i+8+(a<<4)+8>>3];k=+u(+((g-k)*.5));k=m*m+k*(+t(+l)*+t(+f)*k);h=h+ +z(+(+r(+k)),+(+r(+(1.0-k))))*2.0}while((a|0)!=(c|0));e[d>>3]=h;i=0;m=h;m=m*6371.007180918475;m=m*1.0e3;e[d>>3]=m;S=j;return i|0}function lc(a){a=a|0;var c=0,d=0,e=0;c=fd(1,12)|0;if(!c)H(22635,22590,49,22648);d=a+4|0;e=b[d>>2]|0;if(e|0){e=e+8|0;b[e>>2]=c;b[d>>2]=c;return c|0}if(b[a>>2]|0)H(22665,22590,61,22688);e=a;b[e>>2]=c;b[d>>2]=c;return c|0}function mc(a,c){a=a|0;c=c|0;var d=0,e=0;e=dd(24)|0;if(!e)H(22702,22590,78,22716);b[e>>2]=b[c>>2];b[e+4>>2]=b[c+4>>2];b[e+8>>2]=b[c+8>>2];b[e+12>>2]=b[c+12>>2];b[e+16>>2]=0;c=a+4|0;d=b[c>>2]|0;if(d|0){b[d+16>>2]=e;b[c>>2]=e;return e|0}if(b[a>>2]|0)H(22731,22590,82,22716);b[a>>2]=e;b[c>>2]=e;return e|0}function nc(a){a=a|0;var c=0,d=0,e=0,f=0;if(!a)return;e=1;while(1){c=b[a>>2]|0;if(c|0)do{d=b[c>>2]|0;if(d|0)do{f=d;d=b[d+16>>2]|0;ed(f)}while((d|0)!=0);f=c;c=b[c+8>>2]|0;ed(f)}while((c|0)!=0);c=a;a=b[a+8>>2]|0;if(!e)ed(c);if(!a)break;else e=0}return}function oc(a){a=a|0;var c=0,d=0,f=0,g=0,h=0.0,i=0,j=0.0,k=0.0,l=0,m=0,n=0,o=0,p=0,r=0,s=0.0,t=0.0,u=0.0,v=0.0,w=0.0,x=0.0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,I=0,J=0,K=0;g=a+8|0;if(b[g>>2]|0){K=1;return K|0}f=b[a>>2]|0;if(!f){K=0;return K|0}c=f;d=0;do{d=d+1|0;c=b[c+8>>2]|0}while((c|0)!=0);if(d>>>0<2){K=0;return K|0}I=dd(d<<2)|0;if(!I)H(22751,22590,317,22770);G=dd(d<<5)|0;if(!G)H(22792,22590,321,22770);b[a>>2]=0;z=a+4|0;b[z>>2]=0;b[g>>2]=0;d=0;F=0;y=0;n=0;a:while(1){m=b[f>>2]|0;if(m){h=0.0;i=m;do{k=+e[i+8>>3];c=i;i=b[i+16>>2]|0;l=(i|0)==0;g=l?m:i;j=+e[g+8>>3];if(+q(+(k-j))>3.141592653589793){K=14;break}h=h+(j-k)*(+e[c>>3]+ +e[g>>3])}while(!l);if((K|0)==14){K=0;h=0.0;c=m;do{x=+e[c+8>>3];E=c+16|0;D=b[E>>2]|0;D=(D|0)==0?m:D;w=+e[D+8>>3];h=h+(+e[c>>3]+ +e[D>>3])*((w<0.0?w+6.283185307179586:w)-(x<0.0?x+6.283185307179586:x));c=b[((c|0)==0?f:E)>>2]|0}while((c|0)!=0)}if(h>0.0){b[I+(F<<2)>>2]=f;F=F+1|0;g=y;c=n}else K=19}else K=19;if((K|0)==19){K=0;do if(!d)if(!n)if(!(b[a>>2]|0)){g=z;i=a;c=f;d=a;break}else{K=27;break a}else{g=z;i=n+8|0;c=f;d=a;break}else{c=d+8|0;if(b[c>>2]|0){K=21;break a}d=fd(1,12)|0;if(!d){K=23;break a}b[c>>2]=d;g=d+4|0;i=d;c=n}while(0);b[i>>2]=f;b[g>>2]=f;i=G+(y<<5)|0;l=b[f>>2]|0;if(l){m=G+(y<<5)+8|0;e[m>>3]=1797693134862315708145274.0e284;n=G+(y<<5)+24|0;e[n>>3]=1797693134862315708145274.0e284;e[i>>3]=-1797693134862315708145274.0e284;o=G+(y<<5)+16|0;e[o>>3]=-1797693134862315708145274.0e284;u=1797693134862315708145274.0e284;v=-1797693134862315708145274.0e284;g=0;p=l;k=1797693134862315708145274.0e284;s=1797693134862315708145274.0e284;t=-1797693134862315708145274.0e284;j=-1797693134862315708145274.0e284;while(1){h=+e[p>>3];x=+e[p+8>>3];p=b[p+16>>2]|0;r=(p|0)==0;w=+e[(r?l:p)+8>>3];if(h>3]=h;k=h}if(x>3]=x;s=x}if(h>t)e[i>>3]=h;else h=t;if(x>j){e[o>>3]=x;j=x}u=x>0.0&xv?x:v;g=g|+q(+(x-w))>3.141592653589793;if(r)break;else t=h}if(g){e[o>>3]=v;e[n>>3]=u}}else{b[i>>2]=0;b[i+4>>2]=0;b[i+8>>2]=0;b[i+12>>2]=0;b[i+16>>2]=0;b[i+20>>2]=0;b[i+24>>2]=0;b[i+28>>2]=0}g=y+1|0}E=f+8|0;f=b[E>>2]|0;b[E>>2]=0;if(!f){K=45;break}else{y=g;n=c}}if((K|0)==21)H(22568,22590,35,22602);else if((K|0)==23)H(22622,22590,37,22602);else if((K|0)==27)H(22665,22590,61,22688);else if((K|0)==45){b:do if((F|0)>0){E=(g|0)==0;C=g<<2;D=(a|0)==0;B=0;c=0;while(1){A=b[I+(B<<2)>>2]|0;if(!E){y=dd(C)|0;if(!y){K=50;break}z=dd(C)|0;if(!z){K=52;break}c:do if(!D){g=0;d=0;i=a;while(1){f=G+(g<<5)|0;if(pc(b[i>>2]|0,f,b[A>>2]|0)|0){b[y+(d<<2)>>2]=i;b[z+(d<<2)>>2]=f;r=d+1|0}else r=d;i=b[i+8>>2]|0;if(!i)break;else{g=g+1|0;d=r}}if((r|0)>0){f=b[y>>2]|0;if((r|0)==1)d=f;else{o=0;p=-1;d=f;n=f;while(1){l=b[n>>2]|0;f=0;i=0;while(1){g=b[b[y+(i<<2)>>2]>>2]|0;if((g|0)==(l|0))m=f;else m=f+((pc(g,b[z+(i<<2)>>2]|0,b[l>>2]|0)|0)&1)|0;i=i+1|0;if((i|0)==(r|0))break;else f=m}g=(m|0)>(p|0);d=g?n:d;f=o+1|0;if((f|0)==(r|0))break c;o=f;p=g?m:p;n=b[y+(f<<2)>>2]|0}}}else d=0}else d=0;while(0);ed(y);ed(z);if(d){g=d+4|0;f=b[g>>2]|0;if(!f){if(b[d>>2]|0){K=70;break}}else d=f+8|0;b[d>>2]=A;b[g>>2]=A}else K=73}else K=73;if((K|0)==73){K=0;c=b[A>>2]|0;if(c|0)do{z=c;c=b[c+16>>2]|0;ed(z)}while((c|0)!=0);ed(A);c=2}B=B+1|0;if((B|0)>=(F|0)){J=c;break b}}if((K|0)==50)H(22807,22590,249,22826);else if((K|0)==52)H(22845,22590,252,22826);else if((K|0)==70)H(22665,22590,61,22688)}else J=0;while(0);ed(I);ed(G);K=J;return K|0}return 0}function pc(a,c,d){a=a|0;c=c|0;d=d|0;var f=0.0,g=0.0,h=0.0,i=0.0,j=0.0,k=0.0,l=0.0,m=0;if(!(xa(c,d)|0)){a=0;return a|0}c=wa(c)|0;f=+e[d>>3];g=+e[d+8>>3];g=c&g<0.0?g+6.283185307179586:g;a=b[a>>2]|0;if(!a){a=0;return a|0}if(c){c=0;l=g;d=a;a:while(1){while(1){i=+e[d>>3];g=+e[d+8>>3];d=d+16|0;m=b[d>>2]|0;m=(m|0)==0?a:m;h=+e[m>>3];j=+e[m+8>>3];if(i>h){k=i;i=j}else{k=h;h=i;i=g;g=j}f=f==h|f==k?f+2.220446049250313e-16:f;if(!(fk))break;d=b[d>>2]|0;if(!d){d=22;break a}}j=i<0.0?i+6.283185307179586:i;i=g<0.0?g+6.283185307179586:g;l=j==l|i==l?l+-2.220446049250313e-16:l;k=j+(i-j)*((f-h)/(k-h));if((k<0.0?k+6.283185307179586:k)>l)c=c^1;d=b[d>>2]|0;if(!d){d=22;break}}if((d|0)==22)return c|0}else{c=0;l=g;d=a;b:while(1){while(1){i=+e[d>>3];g=+e[d+8>>3];d=d+16|0;m=b[d>>2]|0;m=(m|0)==0?a:m;h=+e[m>>3];j=+e[m+8>>3];if(i>h){k=i;i=j}else{k=h;h=i;i=g;g=j}f=f==h|f==k?f+2.220446049250313e-16:f;if(!(fk))break;d=b[d>>2]|0;if(!d){d=22;break b}}l=i==l|g==l?l+-2.220446049250313e-16:l;if(i+(g-i)*((f-h)/(k-h))>l)c=c^1;d=b[d>>2]|0;if(!d){d=22;break}}if((d|0)==22)return c|0}return 0}function qc(c,d,e,f,g){c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;u=S;S=S+32|0;t=u+16|0;s=u;h=qd(c|0,d|0,52)|0;G()|0;h=h&15;p=qd(e|0,f|0,52)|0;G()|0;if((h|0)!=(p&15|0)){t=12;S=u;return t|0}l=qd(c|0,d|0,45)|0;G()|0;l=l&127;m=qd(e|0,f|0,45)|0;G()|0;m=m&127;if(l>>>0>121|m>>>0>121){t=5;S=u;return t|0}p=(l|0)!=(m|0);if(p){j=ta(l,m)|0;if((j|0)==7){t=1;S=u;return t|0}k=ta(m,l)|0;if((k|0)==7)H(22869,22893,161,22903);else{q=j;i=k}}else{q=0;i=0}n=la(l)|0;o=la(m)|0;b[t>>2]=0;b[t+4>>2]=0;b[t+8>>2]=0;b[t+12>>2]=0;do if(!q){Kb(e,f,t)|0;if((n|0)!=0&(o|0)!=0){if((m|0)!=(l|0))H(22976,22893,261,22903);i=Cb(c,d)|0;h=Cb(e,f)|0;if(!((i|0)==7|(h|0)==7))if(!(a[21872+(i*7|0)+h>>0]|0)){i=b[21040+(i*28|0)+(h<<2)>>2]|0;if((i|0)>0){j=t+4|0;h=0;do{Oa(j);h=h+1|0}while((h|0)!=(i|0));r=51}else r=51}else h=1;else h=5}else r=51}else{m=b[4272+(l*28|0)+(q<<2)>>2]|0;j=(m|0)>0;if(!o)if(j){l=0;k=e;j=f;do{k=Gb(k,j)|0;j=G()|0;i=Qa(i)|0;l=l+1|0}while((l|0)!=(m|0));m=i;l=k;k=j}else{m=i;l=e;k=f}else if(j){l=0;k=e;j=f;do{k=Fb(k,j)|0;j=G()|0;i=Qa(i)|0;if((i|0)==1)i=Qa(1)|0;l=l+1|0}while((l|0)!=(m|0));m=i;l=k;k=j}else{m=i;l=e;k=f}Kb(l,k,t)|0;if(!p)H(22918,22893,191,22903);j=(n|0)!=0;i=(o|0)!=0;if(j&i)H(22945,22893,192,22903);if(!j)if(i){i=Cb(l,k)|0;if((i|0)==7){h=5;break}if(a[21872+(i*7|0)+m>>0]|0){h=1;break}l=0;k=b[21040+(m*28|0)+(i<<2)>>2]|0}else{l=0;k=0}else{i=Cb(c,d)|0;if((i|0)==7){h=5;break}if(a[21872+(i*7|0)+q>>0]|0){h=1;break}k=b[21040+(i*28|0)+(q<<2)>>2]|0;l=k}if((l|k|0)<0)h=5;else{if((k|0)>0){j=t+4|0;i=0;do{Oa(j);i=i+1|0}while((i|0)!=(k|0))};b[s>>2]=0;b[s+4>>2]=0;b[s+8>>2]=0;Ma(s,q);if(h|0)while(1){if(!(Ib(h)|0))La(s);else Ka(s);if((h|0)>1)h=h+-1|0;else break}if((l|0)>0){h=0;do{Oa(s);h=h+1|0}while((h|0)!=(l|0))}r=t+4|0;Ea(r,s,r);Ca(r);r=51}}while(0);if((r|0)==51){h=t+4|0;b[g>>2]=b[h>>2];b[g+4>>2]=b[h+4>>2];b[g+8>>2]=b[h+8>>2];h=0}t=h;S=u;return t|0}function rc(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;p=S;S=S+48|0;h=p+36|0;i=p+24|0;j=p+12|0;k=p;g=qd(a|0,c|0,52)|0;G()|0;g=g&15;n=qd(a|0,c|0,45)|0;G()|0;n=n&127;if(n>>>0>121){e=5;S=p;return e|0}l=la(n)|0;rd(g|0,0,52)|0;r=G()|0|134225919;q=e;b[q>>2]=-1;b[q+4>>2]=r;if(!g){if((b[d>>2]|0)>1){r=1;S=p;return r|0}if((b[d+4>>2]|0)>1){r=1;S=p;return r|0}if((b[d+8>>2]|0)>1){r=1;S=p;return r|0}f=sa(n,Ha(d)|0)|0;if((f|0)==127){r=1;S=p;return r|0}o=rd(f|0,0,45)|0;q=G()|0;n=e;q=b[n+4>>2]&-1040385|q;r=e;b[r>>2]=b[n>>2]|o;b[r+4>>2]=q;r=0;S=p;return r|0};b[h>>2]=b[d>>2];b[h+4>>2]=b[d+4>>2];b[h+8>>2]=b[d+8>>2];while(1){b[i>>2]=b[h>>2];b[i+4>>2]=b[h+4>>2];b[i+8>>2]=b[h+8>>2];if(!(Ib(g)|0)){Ja(h);b[j>>2]=b[h>>2];b[j+4>>2]=b[h+4>>2];b[j+8>>2]=b[h+8>>2];La(j)}else{Ia(h);b[j>>2]=b[h>>2];b[j+4>>2]=b[h+4>>2];b[j+8>>2]=b[h+8>>2];Ka(j)}Fa(i,j,k);Ca(k);q=e;s=b[q>>2]|0;q=b[q+4>>2]|0;t=(15-g|0)*3|0;d=rd(7,0,t|0)|0;q=q&~(G()|0);t=rd(Ha(k)|0,0,t|0)|0;q=G()|0|q;r=e;b[r>>2]=t|s&~d;b[r+4>>2]=q;if((g|0)>1)g=g+-1|0;else break}a:do if(((b[h>>2]|0)<=1?(b[h+4>>2]|0)<=1:0)?(b[h+8>>2]|0)<=1:0){d=Ha(h)|0;i=sa(n,d)|0;if((i|0)==127)k=0;else k=la(i)|0;b:do if(!d)if((l|0)!=0&(k|0)!=0){f=Cb(a,c)|0;g=e;g=Cb(b[g>>2]|0,b[g+4>>2]|0)|0;if((f|0)==7|(g|0)==7){f=5;break a}g=b[21248+(f*28|0)+(g<<2)>>2]|0;if((g|0)<0){f=5;break a}if(!g){f=i;g=56}else{h=e;f=0;d=b[h>>2]|0;h=b[h+4>>2]|0;do{d=Eb(d,h)|0;h=G()|0;t=e;b[t>>2]=d;b[t+4>>2]=h;f=f+1|0}while((f|0)<(g|0));f=i;g=55}}else{f=i;g=55}else{if(l){g=Cb(a,c)|0;if((g|0)==7){f=5;break a}h=b[21248+(g*28|0)+(d<<2)>>2]|0;if((h|0)>0){g=d;d=0;do{g=Pa(g)|0;d=d+1|0}while((d|0)!=(h|0))}else g=d;if((g|0)==1){f=9;break a}d=sa(n,g)|0;if((d|0)==127)H(23003,22893,406,23033);if(!(la(d)|0)){f=d;o=h;m=g}else H(23048,22893,407,23033)}else{f=i;o=0;m=d}j=b[4272+(n*28|0)+(m<<2)>>2]|0;if((j|0)<=-1)H(23079,22893,414,23033);if(!k){if((o|0)<0){f=5;break a}if(o|0){h=e;g=0;d=b[h>>2]|0;h=b[h+4>>2]|0;do{d=Eb(d,h)|0;h=G()|0;t=e;b[t>>2]=d;b[t+4>>2]=h;g=g+1|0}while((g|0)<(o|0))}if((j|0)<=0){g=55;break}h=e;g=0;d=b[h>>2]|0;h=b[h+4>>2]|0;while(1){d=Eb(d,h)|0;h=G()|0;t=e;b[t>>2]=d;b[t+4>>2]=h;g=g+1|0;if((g|0)==(j|0)){g=55;break b}}}i=ta(f,n)|0;if((i|0)==7)H(22869,22893,423,23033);g=e;d=b[g>>2]|0;g=b[g+4>>2]|0;if((j|0)>0){h=0;do{d=Eb(d,g)|0;g=G()|0;t=e;b[t>>2]=d;b[t+4>>2]=g;h=h+1|0}while((h|0)!=(j|0))}g=Cb(d,g)|0;if((g|0)==7){f=5;break a}d=ma(f)|0;d=b[(d?21664:21456)+(i*28|0)+(g<<2)>>2]|0;if((d|0)<0){f=5;break a}if(!d)g=55;else{i=e;g=0;h=b[i>>2]|0;i=b[i+4>>2]|0;do{h=Db(h,i)|0;i=G()|0;t=e;b[t>>2]=h;b[t+4>>2]=i;g=g+1|0}while((g|0)<(d|0));g=55}}while(0);if((g|0)==55)if(k)g=56;if((g|0)==56){t=e;if((Cb(b[t>>2]|0,b[t+4>>2]|0)|0)==1){f=9;break}}t=e;r=b[t>>2]|0;t=b[t+4>>2]&-1040385;s=rd(f|0,0,45)|0;t=t|(G()|0);f=e;b[f>>2]=r|s;b[f+4>>2]=t;f=0}else f=1;while(0);t=f;S=p;return t|0}function sc(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0;h=S;S=S+16|0;g=h;if(!e){a=qc(a,b,c,d,g)|0;if(!a){Ua(g,f);a=0}}else a=15;S=h;return a|0}function tc(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0;g=S;S=S+16|0;f=g;if(!d){Va(c,f);a=rc(a,b,f,e)|0}else a=15;S=g;return a|0}function uc(a,c,d,e,f){a=a|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0;j=S;S=S+32|0;h=j+12|0;i=j;g=qc(a,c,a,c,h)|0;if(g|0){i=g;S=j;return i|0}a=qc(a,c,d,e,i)|0;if(a|0){i=a;S=j;return i|0}h=Ta(h,i)|0;i=f;b[i>>2]=h;b[i+4>>2]=((h|0)<0)<<31>>31;i=0;S=j;return i|0}function vc(a,c,d,e,f){a=a|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0;j=S;S=S+32|0;h=j+12|0;i=j;g=qc(a,c,a,c,h)|0;if(!g){g=qc(a,c,d,e,i)|0;if(!g){e=Ta(h,i)|0;e=gd(e|0,((e|0)<0)<<31>>31|0,1,0)|0;h=G()|0;i=f;b[i>>2]=e;b[i+4>>2]=h;i=0;S=j;return i|0}}i=g;S=j;return i|0}function wc(a,c,d,e,f){a=a|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0.0,k=0.0,l=0,m=0,n=0,o=0,p=0.0,r=0.0,s=0.0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0.0;z=S;S=S+48|0;h=z+24|0;i=z+12|0;y=z;g=qc(a,c,a,c,h)|0;if(!g){g=qc(a,c,d,e,i)|0;if(!g){w=Ta(h,i)|0;x=((w|0)<0)<<31>>31;b[h>>2]=0;b[h+4>>2]=0;b[h+8>>2]=0;b[i>>2]=0;b[i+4>>2]=0;b[i+8>>2]=0;g=qc(a,c,a,c,h)|0;if(!g){g=qc(a,c,d,e,i)|0;if(!g){Wa(h);Wa(i);if(!w){g=h+4|0;d=h+8|0;t=g;u=d;v=h;e=b[h>>2]|0;g=b[g>>2]|0;d=b[d>>2]|0;r=0.0;s=0.0;p=0.0}else{m=b[h>>2]|0;p=+(w|0);t=h+4|0;n=b[t>>2]|0;u=h+8|0;o=b[u>>2]|0;v=h;e=m;g=n;d=o;r=+((b[i>>2]|0)-m|0)/p;s=+((b[i+4>>2]|0)-n|0)/p;p=+((b[i+8>>2]|0)-o|0)/p}b[y>>2]=e;o=y+4|0;b[o>>2]=g;n=y+8|0;b[n>>2]=d;a:do if((w|0)<0)g=0;else{l=0;m=0;g=e;while(1){k=+(m>>>0)+4294967296.0*+(l|0);A=r*k+ +(g|0);j=s*k+ +(b[t>>2]|0);k=p*k+ +(b[u>>2]|0);d=~~+td(+A);h=~~+td(+j);g=~~+td(+k);A=+q(+(+(d|0)-A));j=+q(+(+(h|0)-j));k=+q(+(+(g|0)-k));do if(!(A>j&A>k)){i=0-d|0;if(j>k){e=i-g|0;break}else{e=h;g=i-h|0;break}}else{d=0-(h+g)|0;e=h}while(0);b[y>>2]=d;b[o>>2]=e;b[n>>2]=g;Xa(y);g=rc(a,c,y,f+(m<<3)|0)|0;if(g|0)break a;if(!((l|0)<(x|0)|(l|0)==(x|0)&m>>>0>>0)){g=0;break a}g=gd(m|0,l|0,1,0)|0;i=G()|0;l=i;m=g;g=b[v>>2]|0}}while(0)}}y=g;S=z;return y|0}}y=g;S=z;return y|0}function xc(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0;if((c|0)==0&(d|0)==0){e=0;f=1;F(e|0);return f|0}f=a;e=b;a=1;b=0;do{g=(c&1|0)==0&0==0;a=md((g?1:f)|0,(g?0:e)|0,a|0,b|0)|0;b=G()|0;c=pd(c|0,d|0,1)|0;d=G()|0;f=md(f|0,e|0,f|0,e|0)|0;e=G()|0}while(!((c|0)==0&(d|0)==0));F(b|0);return a|0}function yc(a,c,d){a=a|0;c=c|0;d=d|0;var f=0.0,g=0.0,h=0.0,i=0.0,j=0.0,k=0.0,l=0,m=0.0,n=0,o=0;if(!(xa(c,d)|0)){o=0;return o|0}c=wa(c)|0;f=+e[d>>3];g=+e[d+8>>3];g=c&g<0.0?g+6.283185307179586:g;o=b[a>>2]|0;if((o|0)<=0){o=0;return o|0}n=b[a+4>>2]|0;if(c){c=0;m=g;d=-1;a=0;a:while(1){l=a;while(1){i=+e[n+(l<<4)>>3];g=+e[n+(l<<4)+8>>3];a=(d+2|0)%(o|0)|0;h=+e[n+(a<<4)>>3];j=+e[n+(a<<4)+8>>3];if(i>h){k=i;i=j}else{k=h;h=i;i=g;g=j}f=f==h|f==k?f+2.220446049250313e-16:f;if(!(fk))break;d=l+1|0;if((d|0)>=(o|0)){d=22;break a}else{a=l;l=d;d=a}}j=i<0.0?i+6.283185307179586:i;i=g<0.0?g+6.283185307179586:g;m=j==m|i==m?m+-2.220446049250313e-16:m;k=j+(i-j)*((f-h)/(k-h));if((k<0.0?k+6.283185307179586:k)>m)c=c^1;a=l+1|0;if((a|0)>=(o|0)){d=22;break}else d=l}if((d|0)==22)return c|0}else{c=0;m=g;d=-1;a=0;b:while(1){l=a;while(1){i=+e[n+(l<<4)>>3];g=+e[n+(l<<4)+8>>3];a=(d+2|0)%(o|0)|0;h=+e[n+(a<<4)>>3];j=+e[n+(a<<4)+8>>3];if(i>h){k=i;i=j}else{k=h;h=i;i=g;g=j}f=f==h|f==k?f+2.220446049250313e-16:f;if(!(fk))break;d=l+1|0;if((d|0)>=(o|0)){d=22;break b}else{a=l;l=d;d=a}}m=i==m|g==m?m+-2.220446049250313e-16:m;if(i+(g-i)*((f-h)/(k-h))>m)c=c^1;a=l+1|0;if((a|0)>=(o|0)){d=22;break}else d=l}if((d|0)==22)return c|0}return 0}function zc(a,c){a=a|0;c=c|0;var d=0.0,f=0.0,g=0.0,h=0.0,i=0.0,j=0.0,k=0.0,l=0.0,m=0.0,n=0,o=0,p=0,r=0,s=0,t=0,u=0,v=0;r=b[a>>2]|0;if(!r){b[c>>2]=0;b[c+4>>2]=0;b[c+8>>2]=0;b[c+12>>2]=0;b[c+16>>2]=0;b[c+20>>2]=0;b[c+24>>2]=0;b[c+28>>2]=0;return}s=c+8|0;e[s>>3]=1797693134862315708145274.0e284;t=c+24|0;e[t>>3]=1797693134862315708145274.0e284;e[c>>3]=-1797693134862315708145274.0e284;u=c+16|0;e[u>>3]=-1797693134862315708145274.0e284;if((r|0)<=0)return;o=b[a+4>>2]|0;l=1797693134862315708145274.0e284;m=-1797693134862315708145274.0e284;n=0;a=-1;h=1797693134862315708145274.0e284;i=1797693134862315708145274.0e284;k=-1797693134862315708145274.0e284;f=-1797693134862315708145274.0e284;p=0;while(1){d=+e[o+(p<<4)>>3];j=+e[o+(p<<4)+8>>3];a=a+2|0;g=+e[o+(((a|0)==(r|0)?0:a)<<4)+8>>3];if(d>3]=d;h=d}if(j>3]=j;i=j}if(d>k)e[c>>3]=d;else d=k;if(j>f){e[u>>3]=j;f=j}l=j>0.0&jm?j:m;n=n|+q(+(j-g))>3.141592653589793;a=p+1|0;if((a|0)==(r|0))break;else{v=p;k=d;p=a;a=v}}if(!n)return;e[u>>3]=m;e[t>>3]=l;return}function Ac(a,c){a=a|0;c=c|0;var d=0,f=0,g=0,h=0.0,i=0.0,j=0.0,k=0.0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;r=b[a>>2]|0;if(r){s=c+8|0;e[s>>3]=1797693134862315708145274.0e284;t=c+24|0;e[t>>3]=1797693134862315708145274.0e284;e[c>>3]=-1797693134862315708145274.0e284;u=c+16|0;e[u>>3]=-1797693134862315708145274.0e284;if((r|0)>0){g=b[a+4>>2]|0;o=1797693134862315708145274.0e284;p=-1797693134862315708145274.0e284;f=0;d=-1;k=1797693134862315708145274.0e284;l=1797693134862315708145274.0e284;n=-1797693134862315708145274.0e284;i=-1797693134862315708145274.0e284;v=0;while(1){h=+e[g+(v<<4)>>3];m=+e[g+(v<<4)+8>>3];z=d+2|0;j=+e[g+(((z|0)==(r|0)?0:z)<<4)+8>>3];if(h>3]=h;k=h}if(m>3]=m;l=m}if(h>n)e[c>>3]=h;else h=n;if(m>i){e[u>>3]=m;i=m}o=m>0.0&mp?m:p;f=f|+q(+(m-j))>3.141592653589793;d=v+1|0;if((d|0)==(r|0))break;else{z=v;n=h;v=d;d=z}}if(f){e[u>>3]=p;e[t>>3]=o}}}else{b[c>>2]=0;b[c+4>>2]=0;b[c+8>>2]=0;b[c+12>>2]=0;b[c+16>>2]=0;b[c+20>>2]=0;b[c+24>>2]=0;b[c+28>>2]=0}z=a+8|0;d=b[z>>2]|0;if((d|0)<=0)return;y=a+12|0;x=0;do{g=b[y>>2]|0;f=x;x=x+1|0;t=c+(x<<5)|0;u=b[g+(f<<3)>>2]|0;if(u){v=c+(x<<5)+8|0;e[v>>3]=1797693134862315708145274.0e284;a=c+(x<<5)+24|0;e[a>>3]=1797693134862315708145274.0e284;e[t>>3]=-1797693134862315708145274.0e284;w=c+(x<<5)+16|0;e[w>>3]=-1797693134862315708145274.0e284;if((u|0)>0){r=b[g+(f<<3)+4>>2]|0;o=1797693134862315708145274.0e284;p=-1797693134862315708145274.0e284;g=0;f=-1;s=0;k=1797693134862315708145274.0e284;l=1797693134862315708145274.0e284;m=-1797693134862315708145274.0e284;i=-1797693134862315708145274.0e284;while(1){h=+e[r+(s<<4)>>3];n=+e[r+(s<<4)+8>>3];f=f+2|0;j=+e[r+(((f|0)==(u|0)?0:f)<<4)+8>>3];if(h>3]=h;k=h}if(n>3]=n;l=n}if(h>m)e[t>>3]=h;else h=m;if(n>i){e[w>>3]=n;i=n}o=n>0.0&np?n:p;g=g|+q(+(n-j))>3.141592653589793;f=s+1|0;if((f|0)==(u|0))break;else{A=s;s=f;m=h;f=A}}if(g){e[w>>3]=p;e[a>>3]=o}}}else{b[t>>2]=0;b[t+4>>2]=0;b[t+8>>2]=0;b[t+12>>2]=0;b[t+16>>2]=0;b[t+20>>2]=0;b[t+24>>2]=0;b[t+28>>2]=0;d=b[z>>2]|0}}while((x|0)<(d|0));return}function Bc(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,f=0,g=0;if(!(yc(a,c,d)|0)){f=0;return f|0}f=a+8|0;if((b[f>>2]|0)<=0){f=1;return f|0}e=a+12|0;a=0;while(1){g=a;a=a+1|0;if(yc((b[e>>2]|0)+(g<<3)|0,c+(a<<5)|0,d)|0){a=0;e=6;break}if((a|0)>=(b[f>>2]|0)){a=1;e=6;break}}if((e|0)==6)return a|0;return 0}function Cc(){return 8}function Dc(){return 16}function Ec(){return 168}function Fc(){return 8}function Gc(){return 16}function Hc(){return 12}function Ic(){return 8}function Jc(a){a=a|0;return +(+((b[a>>2]|0)>>>0)+4294967296.0*+(b[a+4>>2]|0))}function Kc(a){a=a|0;var b=0.0,c=0.0;c=+e[a>>3];b=+e[a+8>>3];return +(+r(+(c*c+b*b)))}function Lc(a,b,c,d,f){a=a|0;b=b|0;c=c|0;d=d|0;f=f|0;var g=0.0,h=0.0,i=0.0,j=0.0,k=0.0,l=0.0,m=0.0,n=0.0;k=+e[a>>3];j=+e[b>>3]-k;i=+e[a+8>>3];h=+e[b+8>>3]-i;m=+e[c>>3];g=+e[d>>3]-m;n=+e[c+8>>3];l=+e[d+8>>3]-n;g=(g*(i-n)-(k-m)*l)/(j*l-h*g);e[f>>3]=k+j*g;e[f+8>>3]=i+h*g;return}function Mc(a,b){a=a|0;b=b|0;if(!(+e[a>>3]==+e[b>>3])){b=0;return b|0}b=+e[a+8>>3]==+e[b+8>>3];return b|0}function Nc(a,b){a=a|0;b=b|0;var c=0.0,d=0.0,f=0.0;f=+e[a>>3]-+e[b>>3];d=+e[a+8>>3]-+e[b+8>>3];c=+e[a+16>>3]-+e[b+16>>3];return +(f*f+d*d+c*c)}function Oc(a,b){a=a|0;b=b|0;var c=0.0,d=0.0,f=0.0;c=+e[a>>3];d=+t(+c);c=+u(+c);e[b+16>>3]=c;c=+e[a+8>>3];f=d*+t(+c);e[b>>3]=f;c=d*+u(+c);e[b+8>>3]=c;return}function Pc(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,f=0,g=0;g=S;S=S+16|0;f=g;e=ub(a,c)|0;if((d+-1|0)>>>0>5){f=-1;S=g;return f|0}e=(e|0)!=0;if((d|0)==1&e){f=-1;S=g;return f|0}do if(!(Qc(a,c,f)|0))if(e){e=((b[21936+(d<<2)>>2]|0)+5-(b[f>>2]|0)|0)%5|0;break}else{e=((b[21968+(d<<2)>>2]|0)+6-(b[f>>2]|0)|0)%6|0;break}else e=-1;while(0);f=e;S=g;return f|0}function Qc(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;l=S;S=S+32|0;i=l+16|0;j=l;e=Lb(a,c,i)|0;if(e|0){d=e;S=l;return d|0}f=qb(a,c)|0;k=Cb(a,c)|0;pa(f,j);e=qa(f,b[i>>2]|0)|0;do if(la(f)|0){do switch(f|0){case 4:{a=0;g=15;break}case 14:{a=1;g=15;break}case 24:{a=2;g=15;break}case 38:{a=3;g=15;break}case 49:{a=4;g=15;break}case 58:{a=5;g=15;break}case 63:{a=6;g=15;break}case 72:{a=7;g=15;break}case 83:{a=8;g=15;break}case 97:{a=9;g=15;break}case 107:{a=10;g=15;break}case 117:{a=11;g=15;break}default:{h=0;c=0}}while(0);if((g|0)==15){h=b[22e3+(a*24|0)+8>>2]|0;c=b[22e3+(a*24|0)+16>>2]|0}a=b[i>>2]|0;if((a|0)!=(b[j>>2]|0)){j=ma(f)|0;a=b[i>>2]|0;if(j|(a|0)==(c|0))e=(e+1|0)%6|0}if((k|0)==3&(a|0)==(c|0)){e=(e+5|0)%6|0;break}if((k|0)==5&(a|0)==(h|0))e=(e+1|0)%6|0}while(0);b[d>>2]=e;d=0;S=l;return d|0}function Rc(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;w=S;S=S+32|0;v=w+24|0;t=w+20|0;r=w+8|0;p=w+16|0;n=w;i=(ub(a,c)|0)==0;i=i?6:5;k=qd(a|0,c|0,52)|0;G()|0;k=k&15;if(i>>>0<=d>>>0){e=2;S=w;return e|0}l=(k|0)==0;if(!(!l?(s=rd(7,0,(k^15)*3|0)|0,(s&a|0)==0&((G()|0)&c|0)==0):0)){f=(ub(a,c)|0)!=0;if(((f?4:5)|0)<(d|0)){e=1;S=w;return e|0}if(Qc(a,c,v)|0){e=1;S=w;return e|0}g=(b[v>>2]|0)+d|0;if(f)f=22288+(((g|0)%5|0)<<2)|0;else f=22320+(((g|0)%6|0)<<2)|0;s=b[f>>2]|0;if((s|0)==7){e=1;S=w;return e|0}b[t>>2]=0;da(a,c,s,t,r)|0;h=r;j=b[h>>2]|0;h=b[h+4>>2]|0;g=h>>>0>>0|(h|0)==(c|0)&j>>>0>>0;f=g?j:a;g=g?h:c;if(!(!l?(l=rd(7,0,(k^15)*3|0)|0,(j&l|0)==0&(h&(G()|0)|0)==0):0))o=13;a:do if((o|0)==13){h=(d+-1+i|0)%(i|0)|0;i=ub(a,c)|0;do if((h|0)>=0?(m=(i|0)!=0,((m?4:5)|0)>=(h|0)):0){if(Qc(a,c,v)|0)break;h=(b[v>>2]|0)+h|0;if(m)h=22288+(((h|0)%5|0)<<2)|0;else h=22320+(((h|0)%6|0)<<2)|0;h=b[h>>2]|0;if((h|0)!=7){b[p>>2]=0;da(a,c,h,p,n)|0;j=n;i=b[j>>2]|0;j=b[j+4>>2]|0;if(j>>>0>>0|(j|0)==(g|0)&i>>>0>>0){if(!(ub(i,j)|0))f=b[22384+((((b[p>>2]|0)+(b[22352+(h<<2)>>2]|0)|0)%6|0)<<2)>>2]|0;else f=ea(i,j,a,c)|0;d=ub(i,j)|0;if((f+-1|0)>>>0<=5?(q=(d|0)!=0,!((f|0)==1&q)):0){do if(!(Qc(i,j,v)|0))if(q){d=((b[21936+(f<<2)>>2]|0)+5-(b[v>>2]|0)|0)%5|0;break}else{d=((b[21968+(f<<2)>>2]|0)+6-(b[v>>2]|0)|0)%6|0;break}else d=-1;while(0);f=i;g=j}else{d=-1;f=i;g=j}}h=r;j=b[h>>2]|0;h=b[h+4>>2]|0;break a}}while(0);e=1;S=w;return e|0}while(0);if((f|0)==(j|0)&(g|0)==(h|0)){i=(ub(j,h)|0)!=0;if(i)a=ea(j,h,a,c)|0;else a=b[22384+((((b[t>>2]|0)+(b[22352+(s<<2)>>2]|0)|0)%6|0)<<2)>>2]|0;d=ub(j,h)|0;if((a+-1|0)>>>0<=5?(u=(d|0)!=0,!((a|0)==1&u)):0)do if(!(Qc(j,h,v)|0))if(u){d=((b[21936+(a<<2)>>2]|0)+5-(b[v>>2]|0)|0)%5|0;break}else{d=((b[21968+(a<<2)>>2]|0)+6-(b[v>>2]|0)|0)%6|0;break}else d=-1;while(0);else d=-1;d=d+1|0;d=(d|0)==6|i&(d|0)==5?0:d}c=g;a=f}u=rd(d|0,0,56)|0;v=G()|0|c&-2130706433|536870912;b[e>>2]=u|a;b[e+4>>2]=v;e=0;S=w;return e|0}function Sc(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,f=0,g=0;g=(ub(a,c)|0)==0;e=Rc(a,c,0,d)|0;f=(e|0)==0;if(g){if(!f){g=e;return g|0}e=Rc(a,c,1,d+8|0)|0;if(e|0){g=e;return g|0}e=Rc(a,c,2,d+16|0)|0;if(e|0){g=e;return g|0}e=Rc(a,c,3,d+24|0)|0;if(e|0){g=e;return g|0}e=Rc(a,c,4,d+32|0)|0;if(!e)return Rc(a,c,5,d+40|0)|0;else{g=e;return g|0}}if(!f){g=e;return g|0}e=Rc(a,c,1,d+8|0)|0;if(e|0){g=e;return g|0}e=Rc(a,c,2,d+16|0)|0;if(e|0){g=e;return g|0}e=Rc(a,c,3,d+24|0)|0;if(e|0){g=e;return g|0}e=Rc(a,c,4,d+32|0)|0;if(e|0){g=e;return g|0}g=d+40|0;b[g>>2]=0;b[g+4>>2]=0;g=0;return g|0}function Tc(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;j=S;S=S+192|0;f=j;g=j+168|0;h=qd(a|0,c|0,56)|0;G()|0;h=h&7;i=c&-2130706433|134217728;e=Lb(a,i,g)|0;if(e|0){i=e;S=j;return i|0}c=qd(a|0,c|0,52)|0;G()|0;c=c&15;if(!(ub(a,i)|0))nb(g,c,h,1,f);else jb(g,c,h,1,f);i=f+8|0;b[d>>2]=b[i>>2];b[d+4>>2]=b[i+4>>2];b[d+8>>2]=b[i+8>>2];b[d+12>>2]=b[i+12>>2];i=0;S=j;return i|0}function Uc(a,c){a=a|0;c=c|0;var d=0,e=0,f=0,g=0;f=S;S=S+16|0;d=f;if(!(0==0&(c&2013265920|0)==536870912)){e=0;S=f;return e|0}e=c&-2130706433|134217728;if(!(rb(a,e)|0)){e=0;S=f;return e|0}g=qd(a|0,c|0,56)|0;G()|0;g=(Rc(a,e,g&7,d)|0)==0;e=d;e=g&((b[e>>2]|0)==(a|0)?(b[e+4>>2]|0)==(c|0):0)&1;S=f;return e|0}function Vc(a,c,d){a=a|0;c=c|0;d=d|0;var e=0;if((c|0)>0){e=fd(c,4)|0;b[a>>2]=e;if(!e)H(23102,23125,40,23139)}else b[a>>2]=0;b[a+4>>2]=c;b[a+8>>2]=0;b[a+12>>2]=d;return}function Wc(a){a=a|0;var c=0,d=0,f=0,g=0,h=0,i=0,j=0;g=a+4|0;h=a+12|0;i=a+8|0;a:while(1){d=b[g>>2]|0;c=0;while(1){if((c|0)>=(d|0))break a;f=b[a>>2]|0;j=b[f+(c<<2)>>2]|0;if(!j)c=c+1|0;else break}c=f+(~~(+q(+(+s(10.0,+(+(15-(b[h>>2]|0)|0)))*(+e[j>>3]+ +e[j+8>>3])))%+(d|0))>>>0<<2)|0;d=b[c>>2]|0;b:do if(d|0){f=j+32|0;if((d|0)==(j|0))b[c>>2]=b[f>>2];else{d=d+32|0;c=b[d>>2]|0;if(!c)break;while(1){if((c|0)==(j|0))break;d=c+32|0;c=b[d>>2]|0;if(!c)break b}b[d>>2]=b[f>>2]}ed(j);b[i>>2]=(b[i>>2]|0)+-1}while(0)}ed(b[a>>2]|0);return}function Xc(a){a=a|0;var c=0,d=0,e=0;e=b[a+4>>2]|0;d=0;while(1){if((d|0)>=(e|0)){c=0;d=4;break}c=b[(b[a>>2]|0)+(d<<2)>>2]|0;if(!c)d=d+1|0;else{d=4;break}}if((d|0)==4)return c|0;return 0}function Yc(a,c){a=a|0;c=c|0;var d=0,f=0,g=0,h=0;d=~~(+q(+(+s(10.0,+(+(15-(b[a+12>>2]|0)|0)))*(+e[c>>3]+ +e[c+8>>3])))%+(b[a+4>>2]|0))>>>0;d=(b[a>>2]|0)+(d<<2)|0;f=b[d>>2]|0;if(!f){h=1;return h|0}h=c+32|0;do if((f|0)!=(c|0)){d=b[f+32>>2]|0;if(!d){h=1;return h|0}g=d;while(1){if((g|0)==(c|0)){g=8;break}d=b[g+32>>2]|0;if(!d){d=1;g=10;break}else{f=g;g=d}}if((g|0)==8){b[f+32>>2]=b[h>>2];break}else if((g|0)==10)return d|0}else b[d>>2]=b[h>>2];while(0);ed(c);h=a+8|0;b[h>>2]=(b[h>>2]|0)+-1;h=0;return h|0}function Zc(a,c,d){a=a|0;c=c|0;d=d|0;var f=0,g=0,h=0,i=0;h=dd(40)|0;if(!h)H(23155,23125,98,23168);b[h>>2]=b[c>>2];b[h+4>>2]=b[c+4>>2];b[h+8>>2]=b[c+8>>2];b[h+12>>2]=b[c+12>>2];g=h+16|0;b[g>>2]=b[d>>2];b[g+4>>2]=b[d+4>>2];b[g+8>>2]=b[d+8>>2];b[g+12>>2]=b[d+12>>2];b[h+32>>2]=0;g=~~(+q(+(+s(10.0,+(+(15-(b[a+12>>2]|0)|0)))*(+e[c>>3]+ +e[c+8>>3])))%+(b[a+4>>2]|0))>>>0;g=(b[a>>2]|0)+(g<<2)|0;f=b[g>>2]|0;do if(!f)b[g>>2]=h;else{while(1){if(Vb(f,c)|0?Vb(f+16|0,d)|0:0)break;g=b[f+32>>2]|0;f=(g|0)==0?f:g;if(!(b[f+32>>2]|0)){i=10;break}}if((i|0)==10){b[f+32>>2]=h;break}ed(h);i=f;return i|0}while(0);i=a+8|0;b[i>>2]=(b[i>>2]|0)+1;i=h;return i|0}function _c(a,c,d){a=a|0;c=c|0;d=d|0;var f=0,g=0;g=~~(+q(+(+s(10.0,+(+(15-(b[a+12>>2]|0)|0)))*(+e[c>>3]+ +e[c+8>>3])))%+(b[a+4>>2]|0))>>>0;g=b[(b[a>>2]|0)+(g<<2)>>2]|0;if(!g){d=0;return d|0}if(!d){a=g;while(1){if(Vb(a,c)|0){f=10;break}a=b[a+32>>2]|0;if(!a){a=0;f=10;break}}if((f|0)==10)return a|0}a=g;while(1){if(Vb(a,c)|0?Vb(a+16|0,d)|0:0){f=10;break}a=b[a+32>>2]|0;if(!a){a=0;f=10;break}}if((f|0)==10)return a|0;return 0}function $c(a,c){a=a|0;c=c|0;var d=0;d=~~(+q(+(+s(10.0,+(+(15-(b[a+12>>2]|0)|0)))*(+e[c>>3]+ +e[c+8>>3])))%+(b[a+4>>2]|0))>>>0;a=b[(b[a>>2]|0)+(d<<2)>>2]|0;if(!a){d=0;return d|0}while(1){if(Vb(a,c)|0){c=5;break}a=b[a+32>>2]|0;if(!a){a=0;c=5;break}}if((c|0)==5)return a|0;return 0}function ad(){return 23184}function bd(a){a=+a;return +(+wd(+a))}function cd(a){a=+a;return ~~+bd(a)|0}function dd(a){a=a|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;w=S;S=S+16|0;n=w;do if(a>>>0<245){k=a>>>0<11?16:a+11&-8;a=k>>>3;m=b[5797]|0;d=m>>>a;if(d&3|0){c=(d&1^1)+a|0;a=23228+(c<<1<<2)|0;d=a+8|0;e=b[d>>2]|0;f=e+8|0;g=b[f>>2]|0;if((g|0)==(a|0))b[5797]=m&~(1<>2]=a;b[d>>2]=g}v=c<<3;b[e+4>>2]=v|3;v=e+v+4|0;b[v>>2]=b[v>>2]|1;v=f;S=w;return v|0}l=b[5799]|0;if(k>>>0>l>>>0){if(d|0){c=2<>>12&16;c=c>>>i;d=c>>>5&8;c=c>>>d;g=c>>>2&4;c=c>>>g;a=c>>>1&2;c=c>>>a;e=c>>>1&1;e=(d|i|g|a|e)+(c>>>e)|0;c=23228+(e<<1<<2)|0;a=c+8|0;g=b[a>>2]|0;i=g+8|0;d=b[i>>2]|0;if((d|0)==(c|0)){a=m&~(1<>2]=c;b[a>>2]=d;a=m}v=e<<3;h=v-k|0;b[g+4>>2]=k|3;f=g+k|0;b[f+4>>2]=h|1;b[g+v>>2]=h;if(l|0){e=b[5802]|0;c=l>>>3;d=23228+(c<<1<<2)|0;c=1<>2]|0}b[a>>2]=e;b[c+12>>2]=e;b[e+8>>2]=c;b[e+12>>2]=d}b[5799]=h;b[5802]=f;v=i;S=w;return v|0}g=b[5798]|0;if(g){d=(g&0-g)+-1|0;f=d>>>12&16;d=d>>>f;e=d>>>5&8;d=d>>>e;h=d>>>2&4;d=d>>>h;i=d>>>1&2;d=d>>>i;j=d>>>1&1;j=b[23492+((e|f|h|i|j)+(d>>>j)<<2)>>2]|0;d=j;i=j;j=(b[j+4>>2]&-8)-k|0;while(1){a=b[d+16>>2]|0;if(!a){a=b[d+20>>2]|0;if(!a)break}h=(b[a+4>>2]&-8)-k|0;f=h>>>0>>0;d=a;i=f?a:i;j=f?h:j}h=i+k|0;if(h>>>0>i>>>0){f=b[i+24>>2]|0;c=b[i+12>>2]|0;do if((c|0)==(i|0)){a=i+20|0;c=b[a>>2]|0;if(!c){a=i+16|0;c=b[a>>2]|0;if(!c){d=0;break}}while(1){e=c+20|0;d=b[e>>2]|0;if(!d){e=c+16|0;d=b[e>>2]|0;if(!d)break;else{c=d;a=e}}else{c=d;a=e}}b[a>>2]=0;d=c}else{d=b[i+8>>2]|0;b[d+12>>2]=c;b[c+8>>2]=d;d=c}while(0);do if(f|0){c=b[i+28>>2]|0;a=23492+(c<<2)|0;if((i|0)==(b[a>>2]|0)){b[a>>2]=d;if(!d){b[5798]=g&~(1<>2]|0)==(i|0)?v:f+20|0)>>2]=d;if(!d)break}b[d+24>>2]=f;c=b[i+16>>2]|0;if(c|0){b[d+16>>2]=c;b[c+24>>2]=d}c=b[i+20>>2]|0;if(c|0){b[d+20>>2]=c;b[c+24>>2]=d}}while(0);if(j>>>0<16){v=j+k|0;b[i+4>>2]=v|3;v=i+v+4|0;b[v>>2]=b[v>>2]|1}else{b[i+4>>2]=k|3;b[h+4>>2]=j|1;b[h+j>>2]=j;if(l|0){e=b[5802]|0;c=l>>>3;d=23228+(c<<1<<2)|0;c=1<>2]|0}b[a>>2]=e;b[c+12>>2]=e;b[e+8>>2]=c;b[e+12>>2]=d}b[5799]=j;b[5802]=h}v=i+8|0;S=w;return v|0}else m=k}else m=k}else m=k}else if(a>>>0<=4294967231){a=a+11|0;k=a&-8;e=b[5798]|0;if(e){f=0-k|0;a=a>>>8;if(a)if(k>>>0>16777215)j=31;else{m=(a+1048320|0)>>>16&8;q=a<>>16&4;q=q<>>16&2;j=14-(i|m|j)+(q<>>15)|0;j=k>>>(j+7|0)&1|j<<1}else j=0;d=b[23492+(j<<2)>>2]|0;a:do if(!d){d=0;a=0;q=61}else{a=0;i=k<<((j|0)==31?0:25-(j>>>1)|0);g=0;while(1){h=(b[d+4>>2]&-8)-k|0;if(h>>>0>>0)if(!h){a=d;f=0;q=65;break a}else{a=d;f=h}q=b[d+20>>2]|0;d=b[d+16+(i>>>31<<2)>>2]|0;g=(q|0)==0|(q|0)==(d|0)?g:q;if(!d){d=g;q=61;break}else i=i<<1}}while(0);if((q|0)==61){if((d|0)==0&(a|0)==0){a=2<>>12&16;m=m>>>h;g=m>>>5&8;m=m>>>g;i=m>>>2&4;m=m>>>i;j=m>>>1&2;m=m>>>j;d=m>>>1&1;a=0;d=b[23492+((g|h|i|j|d)+(m>>>d)<<2)>>2]|0}if(!d){i=a;h=f}else q=65}if((q|0)==65){g=d;while(1){m=(b[g+4>>2]&-8)-k|0;d=m>>>0>>0;f=d?m:f;a=d?g:a;d=b[g+16>>2]|0;if(!d)d=b[g+20>>2]|0;if(!d){i=a;h=f;break}else g=d}}if(((i|0)!=0?h>>>0<((b[5799]|0)-k|0)>>>0:0)?(l=i+k|0,l>>>0>i>>>0):0){g=b[i+24>>2]|0;c=b[i+12>>2]|0;do if((c|0)==(i|0)){a=i+20|0;c=b[a>>2]|0;if(!c){a=i+16|0;c=b[a>>2]|0;if(!c){c=0;break}}while(1){f=c+20|0;d=b[f>>2]|0;if(!d){f=c+16|0;d=b[f>>2]|0;if(!d)break;else{c=d;a=f}}else{c=d;a=f}}b[a>>2]=0}else{v=b[i+8>>2]|0;b[v+12>>2]=c;b[c+8>>2]=v}while(0);do if(g){a=b[i+28>>2]|0;d=23492+(a<<2)|0;if((i|0)==(b[d>>2]|0)){b[d>>2]=c;if(!c){e=e&~(1<>2]|0)==(i|0)?v:g+20|0)>>2]=c;if(!c)break}b[c+24>>2]=g;a=b[i+16>>2]|0;if(a|0){b[c+16>>2]=a;b[a+24>>2]=c}a=b[i+20>>2]|0;if(a){b[c+20>>2]=a;b[a+24>>2]=c}}while(0);b:do if(h>>>0<16){v=h+k|0;b[i+4>>2]=v|3;v=i+v+4|0;b[v>>2]=b[v>>2]|1}else{b[i+4>>2]=k|3;b[l+4>>2]=h|1;b[l+h>>2]=h;c=h>>>3;if(h>>>0<256){d=23228+(c<<1<<2)|0;a=b[5797]|0;c=1<>2]|0}b[a>>2]=l;b[c+12>>2]=l;b[l+8>>2]=c;b[l+12>>2]=d;break}c=h>>>8;if(c)if(h>>>0>16777215)d=31;else{u=(c+1048320|0)>>>16&8;v=c<>>16&4;v=v<>>16&2;d=14-(t|u|d)+(v<>>15)|0;d=h>>>(d+7|0)&1|d<<1}else d=0;c=23492+(d<<2)|0;b[l+28>>2]=d;a=l+16|0;b[a+4>>2]=0;b[a>>2]=0;a=1<>2]=l;b[l+24>>2]=c;b[l+12>>2]=l;b[l+8>>2]=l;break}c=b[c>>2]|0;c:do if((b[c+4>>2]&-8|0)!=(h|0)){e=h<<((d|0)==31?0:25-(d>>>1)|0);while(1){d=c+16+(e>>>31<<2)|0;a=b[d>>2]|0;if(!a)break;if((b[a+4>>2]&-8|0)==(h|0)){c=a;break c}else{e=e<<1;c=a}}b[d>>2]=l;b[l+24>>2]=c;b[l+12>>2]=l;b[l+8>>2]=l;break b}while(0);u=c+8|0;v=b[u>>2]|0;b[v+12>>2]=l;b[u>>2]=l;b[l+8>>2]=v;b[l+12>>2]=c;b[l+24>>2]=0}while(0);v=i+8|0;S=w;return v|0}else m=k}else m=k}else m=-1;while(0);d=b[5799]|0;if(d>>>0>=m>>>0){c=d-m|0;a=b[5802]|0;if(c>>>0>15){v=a+m|0;b[5802]=v;b[5799]=c;b[v+4>>2]=c|1;b[a+d>>2]=c;b[a+4>>2]=m|3}else{b[5799]=0;b[5802]=0;b[a+4>>2]=d|3;v=a+d+4|0;b[v>>2]=b[v>>2]|1}v=a+8|0;S=w;return v|0}h=b[5800]|0;if(h>>>0>m>>>0){t=h-m|0;b[5800]=t;v=b[5803]|0;u=v+m|0;b[5803]=u;b[u+4>>2]=t|1;b[v+4>>2]=m|3;v=v+8|0;S=w;return v|0}if(!(b[5915]|0)){b[5917]=4096;b[5916]=4096;b[5918]=-1;b[5919]=-1;b[5920]=0;b[5908]=0;b[5915]=n&-16^1431655768;a=4096}else a=b[5917]|0;i=m+48|0;j=m+47|0;g=a+j|0;f=0-a|0;k=g&f;if(k>>>0<=m>>>0){v=0;S=w;return v|0}a=b[5907]|0;if(a|0?(l=b[5905]|0,n=l+k|0,n>>>0<=l>>>0|n>>>0>a>>>0):0){v=0;S=w;return v|0}d:do if(!(b[5908]&4)){d=b[5803]|0;e:do if(d){e=23636;while(1){n=b[e>>2]|0;if(n>>>0<=d>>>0?(n+(b[e+4>>2]|0)|0)>>>0>d>>>0:0)break;a=b[e+8>>2]|0;if(!a){q=128;break e}else e=a}c=g-h&f;if(c>>>0<2147483647){a=xd(c|0)|0;if((a|0)==((b[e>>2]|0)+(b[e+4>>2]|0)|0)){if((a|0)!=(-1|0)){h=c;g=a;q=145;break d}}else{e=a;q=136}}else c=0}else q=128;while(0);do if((q|0)==128){d=xd(0)|0;if((d|0)!=(-1|0)?(c=d,o=b[5916]|0,p=o+-1|0,c=((p&c|0)==0?0:(p+c&0-o)-c|0)+k|0,o=b[5905]|0,p=c+o|0,c>>>0>m>>>0&c>>>0<2147483647):0){n=b[5907]|0;if(n|0?p>>>0<=o>>>0|p>>>0>n>>>0:0){c=0;break}a=xd(c|0)|0;if((a|0)==(d|0)){h=c;g=d;q=145;break d}else{e=a;q=136}}else c=0}while(0);do if((q|0)==136){d=0-c|0;if(!(i>>>0>c>>>0&(c>>>0<2147483647&(e|0)!=(-1|0))))if((e|0)==(-1|0)){c=0;break}else{h=c;g=e;q=145;break d}a=b[5917]|0;a=j-c+a&0-a;if(a>>>0>=2147483647){h=c;g=e;q=145;break d}if((xd(a|0)|0)==(-1|0)){xd(d|0)|0;c=0;break}else{h=a+c|0;g=e;q=145;break d}}while(0);b[5908]=b[5908]|4;q=143}else{c=0;q=143}while(0);if(((q|0)==143?k>>>0<2147483647:0)?(t=xd(k|0)|0,p=xd(0)|0,r=p-t|0,s=r>>>0>(m+40|0)>>>0,!((t|0)==(-1|0)|s^1|t>>>0

>>0&((t|0)!=(-1|0)&(p|0)!=(-1|0))^1)):0){h=s?r:c;g=t;q=145}if((q|0)==145){c=(b[5905]|0)+h|0;b[5905]=c;if(c>>>0>(b[5906]|0)>>>0)b[5906]=c;j=b[5803]|0;f:do if(j){c=23636;while(1){a=b[c>>2]|0;d=b[c+4>>2]|0;if((g|0)==(a+d|0)){q=154;break}e=b[c+8>>2]|0;if(!e)break;else c=e}if(((q|0)==154?(u=c+4|0,(b[c+12>>2]&8|0)==0):0)?g>>>0>j>>>0&a>>>0<=j>>>0:0){b[u>>2]=d+h;v=(b[5800]|0)+h|0;t=j+8|0;t=(t&7|0)==0?0:0-t&7;u=j+t|0;t=v-t|0;b[5803]=u;b[5800]=t;b[u+4>>2]=t|1;b[j+v+4>>2]=40;b[5804]=b[5919];break}if(g>>>0<(b[5801]|0)>>>0)b[5801]=g;d=g+h|0;c=23636;while(1){if((b[c>>2]|0)==(d|0)){q=162;break}a=b[c+8>>2]|0;if(!a)break;else c=a}if((q|0)==162?(b[c+12>>2]&8|0)==0:0){b[c>>2]=g;l=c+4|0;b[l>>2]=(b[l>>2]|0)+h;l=g+8|0;l=g+((l&7|0)==0?0:0-l&7)|0;c=d+8|0;c=d+((c&7|0)==0?0:0-c&7)|0;k=l+m|0;i=c-l-m|0;b[l+4>>2]=m|3;g:do if((j|0)==(c|0)){v=(b[5800]|0)+i|0;b[5800]=v;b[5803]=k;b[k+4>>2]=v|1}else{if((b[5802]|0)==(c|0)){v=(b[5799]|0)+i|0;b[5799]=v;b[5802]=k;b[k+4>>2]=v|1;b[k+v>>2]=v;break}a=b[c+4>>2]|0;if((a&3|0)==1){h=a&-8;e=a>>>3;h:do if(a>>>0<256){a=b[c+8>>2]|0;d=b[c+12>>2]|0;if((d|0)==(a|0)){b[5797]=b[5797]&~(1<>2]=d;b[d+8>>2]=a;break}}else{g=b[c+24>>2]|0;a=b[c+12>>2]|0;do if((a|0)==(c|0)){d=c+16|0;e=d+4|0;a=b[e>>2]|0;if(!a){a=b[d>>2]|0;if(!a){a=0;break}}else d=e;while(1){f=a+20|0;e=b[f>>2]|0;if(!e){f=a+16|0;e=b[f>>2]|0;if(!e)break;else{a=e;d=f}}else{a=e;d=f}}b[d>>2]=0}else{v=b[c+8>>2]|0;b[v+12>>2]=a;b[a+8>>2]=v}while(0);if(!g)break;d=b[c+28>>2]|0;e=23492+(d<<2)|0;do if((b[e>>2]|0)!=(c|0)){v=g+16|0;b[((b[v>>2]|0)==(c|0)?v:g+20|0)>>2]=a;if(!a)break h}else{b[e>>2]=a;if(a|0)break;b[5798]=b[5798]&~(1<>2]=g;d=c+16|0;e=b[d>>2]|0;if(e|0){b[a+16>>2]=e;b[e+24>>2]=a}d=b[d+4>>2]|0;if(!d)break;b[a+20>>2]=d;b[d+24>>2]=a}while(0);c=c+h|0;f=h+i|0}else f=i;c=c+4|0;b[c>>2]=b[c>>2]&-2;b[k+4>>2]=f|1;b[k+f>>2]=f;c=f>>>3;if(f>>>0<256){d=23228+(c<<1<<2)|0;a=b[5797]|0;c=1<>2]|0}b[a>>2]=k;b[c+12>>2]=k;b[k+8>>2]=c;b[k+12>>2]=d;break}c=f>>>8;do if(!c)e=0;else{if(f>>>0>16777215){e=31;break}u=(c+1048320|0)>>>16&8;v=c<>>16&4;v=v<>>16&2;e=14-(t|u|e)+(v<>>15)|0;e=f>>>(e+7|0)&1|e<<1}while(0);c=23492+(e<<2)|0;b[k+28>>2]=e;a=k+16|0;b[a+4>>2]=0;b[a>>2]=0;a=b[5798]|0;d=1<>2]=k;b[k+24>>2]=c;b[k+12>>2]=k;b[k+8>>2]=k;break}c=b[c>>2]|0;i:do if((b[c+4>>2]&-8|0)!=(f|0)){e=f<<((e|0)==31?0:25-(e>>>1)|0);while(1){d=c+16+(e>>>31<<2)|0;a=b[d>>2]|0;if(!a)break;if((b[a+4>>2]&-8|0)==(f|0)){c=a;break i}else{e=e<<1;c=a}}b[d>>2]=k;b[k+24>>2]=c;b[k+12>>2]=k;b[k+8>>2]=k;break g}while(0);u=c+8|0;v=b[u>>2]|0;b[v+12>>2]=k;b[u>>2]=k;b[k+8>>2]=v;b[k+12>>2]=c;b[k+24>>2]=0}while(0);v=l+8|0;S=w;return v|0}c=23636;while(1){a=b[c>>2]|0;if(a>>>0<=j>>>0?(v=a+(b[c+4>>2]|0)|0,v>>>0>j>>>0):0)break;c=b[c+8>>2]|0}f=v+-47|0;a=f+8|0;a=f+((a&7|0)==0?0:0-a&7)|0;f=j+16|0;a=a>>>0>>0?j:a;c=a+8|0;d=h+-40|0;t=g+8|0;t=(t&7|0)==0?0:0-t&7;u=g+t|0;t=d-t|0;b[5803]=u;b[5800]=t;b[u+4>>2]=t|1;b[g+d+4>>2]=40;b[5804]=b[5919];d=a+4|0;b[d>>2]=27;b[c>>2]=b[5909];b[c+4>>2]=b[5910];b[c+8>>2]=b[5911];b[c+12>>2]=b[5912];b[5909]=g;b[5910]=h;b[5912]=0;b[5911]=c;c=a+24|0;do{u=c;c=c+4|0;b[c>>2]=7}while((u+8|0)>>>0>>0);if((a|0)!=(j|0)){g=a-j|0;b[d>>2]=b[d>>2]&-2;b[j+4>>2]=g|1;b[a>>2]=g;c=g>>>3;if(g>>>0<256){d=23228+(c<<1<<2)|0;a=b[5797]|0;c=1<>2]|0}b[a>>2]=j;b[c+12>>2]=j;b[j+8>>2]=c;b[j+12>>2]=d;break}c=g>>>8;if(c)if(g>>>0>16777215)e=31;else{u=(c+1048320|0)>>>16&8;v=c<>>16&4;v=v<>>16&2;e=14-(t|u|e)+(v<>>15)|0;e=g>>>(e+7|0)&1|e<<1}else e=0;d=23492+(e<<2)|0;b[j+28>>2]=e;b[j+20>>2]=0;b[f>>2]=0;c=b[5798]|0;a=1<>2]=j;b[j+24>>2]=d;b[j+12>>2]=j;b[j+8>>2]=j;break}c=b[d>>2]|0;j:do if((b[c+4>>2]&-8|0)!=(g|0)){e=g<<((e|0)==31?0:25-(e>>>1)|0);while(1){d=c+16+(e>>>31<<2)|0;a=b[d>>2]|0;if(!a)break;if((b[a+4>>2]&-8|0)==(g|0)){c=a;break j}else{e=e<<1;c=a}}b[d>>2]=j;b[j+24>>2]=c;b[j+12>>2]=j;b[j+8>>2]=j;break f}while(0);u=c+8|0;v=b[u>>2]|0;b[v+12>>2]=j;b[u>>2]=j;b[j+8>>2]=v;b[j+12>>2]=c;b[j+24>>2]=0}}else{v=b[5801]|0;if((v|0)==0|g>>>0>>0)b[5801]=g;b[5909]=g;b[5910]=h;b[5912]=0;b[5806]=b[5915];b[5805]=-1;b[5810]=23228;b[5809]=23228;b[5812]=23236;b[5811]=23236;b[5814]=23244;b[5813]=23244;b[5816]=23252;b[5815]=23252;b[5818]=23260;b[5817]=23260;b[5820]=23268;b[5819]=23268;b[5822]=23276;b[5821]=23276;b[5824]=23284;b[5823]=23284;b[5826]=23292;b[5825]=23292;b[5828]=23300;b[5827]=23300;b[5830]=23308;b[5829]=23308;b[5832]=23316;b[5831]=23316;b[5834]=23324;b[5833]=23324;b[5836]=23332;b[5835]=23332;b[5838]=23340;b[5837]=23340;b[5840]=23348;b[5839]=23348;b[5842]=23356;b[5841]=23356;b[5844]=23364;b[5843]=23364;b[5846]=23372;b[5845]=23372;b[5848]=23380;b[5847]=23380;b[5850]=23388;b[5849]=23388;b[5852]=23396;b[5851]=23396;b[5854]=23404;b[5853]=23404;b[5856]=23412;b[5855]=23412;b[5858]=23420;b[5857]=23420;b[5860]=23428;b[5859]=23428;b[5862]=23436;b[5861]=23436;b[5864]=23444;b[5863]=23444;b[5866]=23452;b[5865]=23452;b[5868]=23460;b[5867]=23460;b[5870]=23468;b[5869]=23468;b[5872]=23476;b[5871]=23476;v=h+-40|0;t=g+8|0;t=(t&7|0)==0?0:0-t&7;u=g+t|0;t=v-t|0;b[5803]=u;b[5800]=t;b[u+4>>2]=t|1;b[g+v+4>>2]=40;b[5804]=b[5919]}while(0);c=b[5800]|0;if(c>>>0>m>>>0){t=c-m|0;b[5800]=t;v=b[5803]|0;u=v+m|0;b[5803]=u;b[u+4>>2]=t|1;b[v+4>>2]=m|3;v=v+8|0;S=w;return v|0}}v=ad()|0;b[v>>2]=12;v=0;S=w;return v|0}function ed(a){a=a|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;if(!a)return;d=a+-8|0;f=b[5801]|0;a=b[a+-4>>2]|0;c=a&-8;j=d+c|0;do if(!(a&1)){e=b[d>>2]|0;if(!(a&3))return;h=d+(0-e)|0;g=e+c|0;if(h>>>0>>0)return;if((b[5802]|0)==(h|0)){a=j+4|0;c=b[a>>2]|0;if((c&3|0)!=3){i=h;c=g;break}b[5799]=g;b[a>>2]=c&-2;b[h+4>>2]=g|1;b[h+g>>2]=g;return}d=e>>>3;if(e>>>0<256){a=b[h+8>>2]|0;c=b[h+12>>2]|0;if((c|0)==(a|0)){b[5797]=b[5797]&~(1<>2]=c;b[c+8>>2]=a;i=h;c=g;break}}f=b[h+24>>2]|0;a=b[h+12>>2]|0;do if((a|0)==(h|0)){c=h+16|0;d=c+4|0;a=b[d>>2]|0;if(!a){a=b[c>>2]|0;if(!a){a=0;break}}else c=d;while(1){e=a+20|0;d=b[e>>2]|0;if(!d){e=a+16|0;d=b[e>>2]|0;if(!d)break;else{a=d;c=e}}else{a=d;c=e}}b[c>>2]=0}else{i=b[h+8>>2]|0;b[i+12>>2]=a;b[a+8>>2]=i}while(0);if(f){c=b[h+28>>2]|0;d=23492+(c<<2)|0;if((b[d>>2]|0)==(h|0)){b[d>>2]=a;if(!a){b[5798]=b[5798]&~(1<>2]|0)==(h|0)?i:f+20|0)>>2]=a;if(!a){i=h;c=g;break}}b[a+24>>2]=f;c=h+16|0;d=b[c>>2]|0;if(d|0){b[a+16>>2]=d;b[d+24>>2]=a}c=b[c+4>>2]|0;if(c){b[a+20>>2]=c;b[c+24>>2]=a;i=h;c=g}else{i=h;c=g}}else{i=h;c=g}}else{i=d;h=d}while(0);if(h>>>0>=j>>>0)return;a=j+4|0;e=b[a>>2]|0;if(!(e&1))return;if(!(e&2)){if((b[5803]|0)==(j|0)){j=(b[5800]|0)+c|0;b[5800]=j;b[5803]=i;b[i+4>>2]=j|1;if((i|0)!=(b[5802]|0))return;b[5802]=0;b[5799]=0;return}if((b[5802]|0)==(j|0)){j=(b[5799]|0)+c|0;b[5799]=j;b[5802]=h;b[i+4>>2]=j|1;b[h+j>>2]=j;return}f=(e&-8)+c|0;d=e>>>3;do if(e>>>0<256){c=b[j+8>>2]|0;a=b[j+12>>2]|0;if((a|0)==(c|0)){b[5797]=b[5797]&~(1<>2]=a;b[a+8>>2]=c;break}}else{g=b[j+24>>2]|0;a=b[j+12>>2]|0;do if((a|0)==(j|0)){c=j+16|0;d=c+4|0;a=b[d>>2]|0;if(!a){a=b[c>>2]|0;if(!a){d=0;break}}else c=d;while(1){e=a+20|0;d=b[e>>2]|0;if(!d){e=a+16|0;d=b[e>>2]|0;if(!d)break;else{a=d;c=e}}else{a=d;c=e}}b[c>>2]=0;d=a}else{d=b[j+8>>2]|0;b[d+12>>2]=a;b[a+8>>2]=d;d=a}while(0);if(g|0){a=b[j+28>>2]|0;c=23492+(a<<2)|0;if((b[c>>2]|0)==(j|0)){b[c>>2]=d;if(!d){b[5798]=b[5798]&~(1<>2]|0)==(j|0)?e:g+20|0)>>2]=d;if(!d)break}b[d+24>>2]=g;a=j+16|0;c=b[a>>2]|0;if(c|0){b[d+16>>2]=c;b[c+24>>2]=d}a=b[a+4>>2]|0;if(a|0){b[d+20>>2]=a;b[a+24>>2]=d}}}while(0);b[i+4>>2]=f|1;b[h+f>>2]=f;if((i|0)==(b[5802]|0)){b[5799]=f;return}}else{b[a>>2]=e&-2;b[i+4>>2]=c|1;b[h+c>>2]=c;f=c}a=f>>>3;if(f>>>0<256){d=23228+(a<<1<<2)|0;c=b[5797]|0;a=1<>2]|0}b[c>>2]=i;b[a+12>>2]=i;b[i+8>>2]=a;b[i+12>>2]=d;return}a=f>>>8;if(a)if(f>>>0>16777215)e=31;else{h=(a+1048320|0)>>>16&8;j=a<>>16&4;j=j<>>16&2;e=14-(g|h|e)+(j<>>15)|0;e=f>>>(e+7|0)&1|e<<1}else e=0;a=23492+(e<<2)|0;b[i+28>>2]=e;b[i+20>>2]=0;b[i+16>>2]=0;c=b[5798]|0;d=1<>2]=i;b[i+24>>2]=a;b[i+12>>2]=i;b[i+8>>2]=i}else{a=b[a>>2]|0;b:do if((b[a+4>>2]&-8|0)!=(f|0)){e=f<<((e|0)==31?0:25-(e>>>1)|0);while(1){d=a+16+(e>>>31<<2)|0;c=b[d>>2]|0;if(!c)break;if((b[c+4>>2]&-8|0)==(f|0)){a=c;break b}else{e=e<<1;a=c}}b[d>>2]=i;b[i+24>>2]=a;b[i+12>>2]=i;b[i+8>>2]=i;break a}while(0);h=a+8|0;j=b[h>>2]|0;b[j+12>>2]=i;b[h>>2]=i;b[i+8>>2]=j;b[i+12>>2]=a;b[i+24>>2]=0}while(0);j=(b[5805]|0)+-1|0;b[5805]=j;if(j|0)return;a=23644;while(1){a=b[a>>2]|0;if(!a)break;else a=a+8|0}b[5805]=-1;return}function fd(a,c){a=a|0;c=c|0;var d=0;if(a){d=B(c,a)|0;if((c|a)>>>0>65535)d=((d>>>0)/(a>>>0)|0|0)==(c|0)?d:-1}else d=0;a=dd(d)|0;if(!a)return a|0;if(!(b[a+-4>>2]&3))return a|0;vd(a|0,0,d|0)|0;return a|0}function gd(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;c=a+c>>>0;return (F(b+d+(c>>>0>>0|0)>>>0|0),c|0)|0}function hd(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;d=b-d-(c>>>0>a>>>0|0)>>>0;return (F(d|0),a-c>>>0|0)|0}function id(a){a=a|0;return (a?31-(D(a^a-1)|0)|0:32)|0}function jd(a,c,d,e,f){a=a|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;l=a;j=c;k=j;h=d;n=e;i=n;if(!k){g=(f|0)!=0;if(!i){if(g){b[f>>2]=(l>>>0)%(h>>>0);b[f+4>>2]=0}n=0;f=(l>>>0)/(h>>>0)>>>0;return (F(n|0),f)|0}else{if(!g){n=0;f=0;return (F(n|0),f)|0}b[f>>2]=a|0;b[f+4>>2]=c&0;n=0;f=0;return (F(n|0),f)|0}}g=(i|0)==0;do if(h){if(!g){g=(D(i|0)|0)-(D(k|0)|0)|0;if(g>>>0<=31){m=g+1|0;i=31-g|0;c=g-31>>31;h=m;a=l>>>(m>>>0)&c|k<>>(m>>>0)&c;g=0;i=l<>2]=a|0;b[f+4>>2]=j|c&0;n=0;f=0;return (F(n|0),f)|0}g=h-1|0;if(g&h|0){i=(D(h|0)|0)+33-(D(k|0)|0)|0;p=64-i|0;m=32-i|0;j=m>>31;o=i-32|0;c=o>>31;h=i;a=m-1>>31&k>>>(o>>>0)|(k<>>(i>>>0))&c;c=c&k>>>(i>>>0);g=l<>>(o>>>0))&j|l<>31;break}if(f|0){b[f>>2]=g&l;b[f+4>>2]=0}if((h|0)==1){o=j|c&0;p=a|0|0;return (F(o|0),p)|0}else{p=id(h|0)|0;o=k>>>(p>>>0)|0;p=k<<32-p|l>>>(p>>>0)|0;return (F(o|0),p)|0}}else{if(g){if(f|0){b[f>>2]=(k>>>0)%(h>>>0);b[f+4>>2]=0}o=0;p=(k>>>0)/(h>>>0)>>>0;return (F(o|0),p)|0}if(!l){if(f|0){b[f>>2]=0;b[f+4>>2]=(k>>>0)%(i>>>0)}o=0;p=(k>>>0)/(i>>>0)>>>0;return (F(o|0),p)|0}g=i-1|0;if(!(g&i)){if(f|0){b[f>>2]=a|0;b[f+4>>2]=g&k|c&0}o=0;p=k>>>((id(i|0)|0)>>>0);return (F(o|0),p)|0}g=(D(i|0)|0)-(D(k|0)|0)|0;if(g>>>0<=30){c=g+1|0;i=31-g|0;h=c;a=k<>>(c>>>0);c=k>>>(c>>>0);g=0;i=l<>2]=a|0;b[f+4>>2]=j|c&0;o=0;p=0;return (F(o|0),p)|0}while(0);if(!h){k=i;j=0;i=0}else{m=d|0|0;l=n|e&0;k=gd(m|0,l|0,-1,-1)|0;d=G()|0;j=i;i=0;do{e=j;j=g>>>31|j<<1;g=i|g<<1;e=a<<1|e>>>31|0;n=a>>>31|c<<1|0;hd(k|0,d|0,e|0,n|0)|0;p=G()|0;o=p>>31|((p|0)<0?-1:0)<<1;i=o&1;a=hd(e|0,n|0,o&m|0,(((p|0)<0?-1:0)>>31|((p|0)<0?-1:0)<<1)&l|0)|0;c=G()|0;h=h-1|0}while((h|0)!=0);k=j;j=0}h=0;if(f|0){b[f>>2]=a;b[f+4>>2]=c}o=(g|0)>>>31|(k|h)<<1|(h<<1|g>>>31)&0|j;p=(g<<1|0>>>31)&-2|i;return (F(o|0),p)|0}function kd(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;j=b>>31|((b|0)<0?-1:0)<<1;i=((b|0)<0?-1:0)>>31|((b|0)<0?-1:0)<<1;f=d>>31|((d|0)<0?-1:0)<<1;e=((d|0)<0?-1:0)>>31|((d|0)<0?-1:0)<<1;h=hd(j^a|0,i^b|0,j|0,i|0)|0;g=G()|0;a=f^j;b=e^i;return hd((jd(h,g,hd(f^c|0,e^d|0,f|0,e|0)|0,G()|0,0)|0)^a|0,(G()|0)^b|0,a|0,b|0)|0}function ld(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;f=a&65535;e=b&65535;c=B(e,f)|0;d=a>>>16;a=(c>>>16)+(B(e,d)|0)|0;e=b>>>16;b=B(e,f)|0;return (F((a>>>16)+(B(e,d)|0)+(((a&65535)+b|0)>>>16)|0),a+b<<16|c&65535|0)|0}function md(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0;e=a;f=c;c=ld(e,f)|0;a=G()|0;return (F((B(b,f)|0)+(B(d,e)|0)+a|a&0|0),c|0|0)|0}function nd(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0;f=S;S=S+16|0;i=f|0;h=c>>31|((c|0)<0?-1:0)<<1;g=((c|0)<0?-1:0)>>31|((c|0)<0?-1:0)<<1;k=e>>31|((e|0)<0?-1:0)<<1;j=((e|0)<0?-1:0)>>31|((e|0)<0?-1:0)<<1;a=hd(h^a|0,g^c|0,h|0,g|0)|0;c=G()|0;jd(a,c,hd(k^d|0,j^e|0,k|0,j|0)|0,G()|0,i)|0;e=hd(b[i>>2]^h|0,b[i+4>>2]^g|0,h|0,g|0)|0;d=G()|0;S=f;return (F(d|0),e)|0}function od(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var f=0,g=0;g=S;S=S+16|0;f=g|0;jd(a,c,d,e,f)|0;S=g;return (F(b[f+4>>2]|0),b[f>>2]|0)|0}function pd(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){F(b>>c|0);return a>>>c|(b&(1<>c-32|0}function qd(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){F(b>>>c|0);return a>>>c|(b&(1<>>c-32|0}function rd(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){F(b<>>32-c|0);return a<=0.0?+p(a+.5):+A(a-.5)}function ud(c,d,e){c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0;if((e|0)>=8192){K(c|0,d|0,e|0)|0;return c|0}h=c|0;g=c+e|0;if((c&3)==(d&3)){while(c&3){if(!e)return h|0;a[c>>0]=a[d>>0]|0;c=c+1|0;d=d+1|0;e=e-1|0}e=g&-4|0;f=e-64|0;while((c|0)<=(f|0)){b[c>>2]=b[d>>2];b[c+4>>2]=b[d+4>>2];b[c+8>>2]=b[d+8>>2];b[c+12>>2]=b[d+12>>2];b[c+16>>2]=b[d+16>>2];b[c+20>>2]=b[d+20>>2];b[c+24>>2]=b[d+24>>2];b[c+28>>2]=b[d+28>>2];b[c+32>>2]=b[d+32>>2];b[c+36>>2]=b[d+36>>2];b[c+40>>2]=b[d+40>>2];b[c+44>>2]=b[d+44>>2];b[c+48>>2]=b[d+48>>2];b[c+52>>2]=b[d+52>>2];b[c+56>>2]=b[d+56>>2];b[c+60>>2]=b[d+60>>2];c=c+64|0;d=d+64|0}while((c|0)<(e|0)){b[c>>2]=b[d>>2];c=c+4|0;d=d+4|0}}else{e=g-4|0;while((c|0)<(e|0)){a[c>>0]=a[d>>0]|0;a[c+1>>0]=a[d+1>>0]|0;a[c+2>>0]=a[d+2>>0]|0;a[c+3>>0]=a[d+3>>0]|0;c=c+4|0;d=d+4|0}}while((c|0)<(g|0)){a[c>>0]=a[d>>0]|0;c=c+1|0;d=d+1|0}return h|0}function vd(c,d,e){c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;h=c+e|0;d=d&255;if((e|0)>=67){while(c&3){a[c>>0]=d;c=c+1|0}f=h&-4|0;i=d|d<<8|d<<16|d<<24;g=f-64|0;while((c|0)<=(g|0)){b[c>>2]=i;b[c+4>>2]=i;b[c+8>>2]=i;b[c+12>>2]=i;b[c+16>>2]=i;b[c+20>>2]=i;b[c+24>>2]=i;b[c+28>>2]=i;b[c+32>>2]=i;b[c+36>>2]=i;b[c+40>>2]=i;b[c+44>>2]=i;b[c+48>>2]=i;b[c+52>>2]=i;b[c+56>>2]=i;b[c+60>>2]=i;c=c+64|0}while((c|0)<(f|0)){b[c>>2]=i;c=c+4|0}}while((c|0)<(h|0)){a[c>>0]=d;c=c+1|0}return h-e|0}function wd(a){a=+a;return a>=0.0?+p(a+.5):+A(a-.5)}function xd(a){a=a|0;var c=0,d=0,e=0;e=J()|0;d=b[g>>2]|0;c=d+a|0;if((a|0)>0&(c|0)<(d|0)|(c|0)<0){M(c|0)|0;I(12);return -1}if((c|0)>(e|0))if(!(L(c|0)|0)){I(12);return -1}b[g>>2]=c;return d|0} // EMSCRIPTEN_END_FUNCS -return{___divdi3:kd,___muldi3:md,___remdi3:nd,___uremdi3:od,_areNeighborCells:Ya,_bitshift64Ashr:pd,_bitshift64Lshr:qd,_bitshift64Shl:rd,_calloc:fd,_cellAreaKm2:gc,_cellAreaM2:hc,_cellAreaRads2:fc,_cellToBoundary:Nb,_cellToCenterChild:xb,_cellToChildren:vb,_cellToChildrenSize:tb,_cellToLatLng:Mb,_cellToLocalIj:sc,_cellToParent:sb,_cellToVertex:Rc,_cellToVertexes:Sc,_cellsToDirectedEdge:Za,_cellsToLinkedMultiPolygon:ka,_compactCells:yb,_destroyLinkedMultiPolygon:nc,_directedEdgeToBoundary:db,_directedEdgeToCells:bb,_emscripten_replace_memory:V,_exactEdgeLengthKm:jc,_exactEdgeLengthM:kc,_exactEdgeLengthRads:ic,_free:ed,_getBaseCellNumber:qb,_getDirectedEdgeDestination:$a,_getDirectedEdgeOrigin:_a,_getHexagonAreaAvgKm2:$b,_getHexagonAreaAvgM2:ac,_getHexagonEdgeLengthAvgKm:bc,_getHexagonEdgeLengthAvgM:cc,_getIcosahedronFaces:Pb,_getNumCells:dc,_getPentagons:Rb,_getRes0Cells:va,_getResolution:pb,_greatCircleDistanceKm:Xb,_greatCircleDistanceM:Yb,_greatCircleDistanceRads:Wb,_gridDisk:$,_gridDiskDistances:aa,_gridDistance:uc,_gridPathCells:wc,_gridPathCellsSize:vc,_gridRingUnsafe:fa,_i64Add:gd,_i64Subtract:hd,_isPentagon:ub,_isResClassIII:Bb,_isValidCell:rb,_isValidDirectedEdge:ab,_isValidVertex:Uc,_latLngToCell:Jb,_llvm_minnum_f64:sd,_llvm_round_f64:td,_localIjToCell:tc,_malloc:dd,_maxFaceCount:Ob,_maxGridDiskSize:_,_maxPolygonToCellsSize:ga,_memcpy:ud,_memset:vd,_originToDirectedEdges:cb,_pentagonCount:Qb,_polygonToCells:ia,_readInt64AsDoubleFromPointer:Jc,_res0CellCount:ua,_round:wd,_sbrk:xd,_sizeOfCellBoundary:Ec,_sizeOfCoordIJ:Ic,_sizeOfGeoLoop:Fc,_sizeOfGeoPolygon:Gc,_sizeOfH3Index:Cc,_sizeOfLatLng:Dc,_sizeOfLinkedGeoPolygon:Hc,_uncompactCells:zb,_uncompactCellsSize:Ab,_vertexToLatLng:Tc,establishStackSpace:Z,stackAlloc:W,stackRestore:Y,stackSave:X}}) +return{___divdi3:kd,___muldi3:md,___remdi3:nd,___uremdi3:od,_areNeighborCells:Ya,_bitshift64Ashr:pd,_bitshift64Lshr:qd,_bitshift64Shl:rd,_calloc:fd,_cellAreaKm2:gc,_cellAreaM2:hc,_cellAreaRads2:fc,_cellToBoundary:Nb,_cellToCenterChild:xb,_cellToChildren:vb,_cellToChildrenSize:tb,_cellToLatLng:Mb,_cellToLocalIj:sc,_cellToParent:sb,_cellToVertex:Rc,_cellToVertexes:Sc,_cellsToDirectedEdge:Za,_cellsToLinkedMultiPolygon:ka,_compactCells:yb,_destroyLinkedMultiPolygon:nc,_directedEdgeToBoundary:db,_directedEdgeToCells:bb,_edgeLengthKm:jc,_edgeLengthM:kc,_edgeLengthRads:ic,_emscripten_replace_memory:V,_free:ed,_getBaseCellNumber:qb,_getDirectedEdgeDestination:$a,_getDirectedEdgeOrigin:_a,_getHexagonAreaAvgKm2:$b,_getHexagonAreaAvgM2:ac,_getHexagonEdgeLengthAvgKm:bc,_getHexagonEdgeLengthAvgM:cc,_getIcosahedronFaces:Pb,_getNumCells:dc,_getPentagons:Rb,_getRes0Cells:va,_getResolution:pb,_greatCircleDistanceKm:Xb,_greatCircleDistanceM:Yb,_greatCircleDistanceRads:Wb,_gridDisk:$,_gridDiskDistances:aa,_gridDistance:uc,_gridPathCells:wc,_gridPathCellsSize:vc,_gridRingUnsafe:fa,_i64Add:gd,_i64Subtract:hd,_isPentagon:ub,_isResClassIII:Bb,_isValidCell:rb,_isValidDirectedEdge:ab,_isValidVertex:Uc,_latLngToCell:Jb,_llvm_minnum_f64:sd,_llvm_round_f64:td,_localIjToCell:tc,_malloc:dd,_maxFaceCount:Ob,_maxGridDiskSize:_,_maxPolygonToCellsSize:ga,_memcpy:ud,_memset:vd,_originToDirectedEdges:cb,_pentagonCount:Qb,_polygonToCells:ia,_readInt64AsDoubleFromPointer:Jc,_res0CellCount:ua,_round:wd,_sbrk:xd,_sizeOfCellBoundary:Ec,_sizeOfCoordIJ:Ic,_sizeOfGeoLoop:Fc,_sizeOfGeoPolygon:Gc,_sizeOfH3Index:Cc,_sizeOfLatLng:Dc,_sizeOfLinkedGeoPolygon:Hc,_uncompactCells:zb,_uncompactCellsSize:Ab,_vertexToLatLng:Tc,establishStackSpace:Z,stackAlloc:W,stackRestore:Y,stackSave:X}}) // EMSCRIPTEN_END_ASM -(asmGlobalArg,asmLibraryArg,buffer);var ___divdi3=Module["___divdi3"]=asm["___divdi3"];var ___muldi3=Module["___muldi3"]=asm["___muldi3"];var ___remdi3=Module["___remdi3"]=asm["___remdi3"];var ___uremdi3=Module["___uremdi3"]=asm["___uremdi3"];var _areNeighborCells=Module["_areNeighborCells"]=asm["_areNeighborCells"];var _bitshift64Ashr=Module["_bitshift64Ashr"]=asm["_bitshift64Ashr"];var _bitshift64Lshr=Module["_bitshift64Lshr"]=asm["_bitshift64Lshr"];var _bitshift64Shl=Module["_bitshift64Shl"]=asm["_bitshift64Shl"];var _calloc=Module["_calloc"]=asm["_calloc"];var _cellAreaKm2=Module["_cellAreaKm2"]=asm["_cellAreaKm2"];var _cellAreaM2=Module["_cellAreaM2"]=asm["_cellAreaM2"];var _cellAreaRads2=Module["_cellAreaRads2"]=asm["_cellAreaRads2"];var _cellToBoundary=Module["_cellToBoundary"]=asm["_cellToBoundary"];var _cellToCenterChild=Module["_cellToCenterChild"]=asm["_cellToCenterChild"];var _cellToChildren=Module["_cellToChildren"]=asm["_cellToChildren"];var _cellToChildrenSize=Module["_cellToChildrenSize"]=asm["_cellToChildrenSize"];var _cellToLatLng=Module["_cellToLatLng"]=asm["_cellToLatLng"];var _cellToLocalIj=Module["_cellToLocalIj"]=asm["_cellToLocalIj"];var _cellToParent=Module["_cellToParent"]=asm["_cellToParent"];var _cellToVertex=Module["_cellToVertex"]=asm["_cellToVertex"];var _cellToVertexes=Module["_cellToVertexes"]=asm["_cellToVertexes"];var _cellsToDirectedEdge=Module["_cellsToDirectedEdge"]=asm["_cellsToDirectedEdge"];var _cellsToLinkedMultiPolygon=Module["_cellsToLinkedMultiPolygon"]=asm["_cellsToLinkedMultiPolygon"];var _compactCells=Module["_compactCells"]=asm["_compactCells"];var _destroyLinkedMultiPolygon=Module["_destroyLinkedMultiPolygon"]=asm["_destroyLinkedMultiPolygon"];var _directedEdgeToBoundary=Module["_directedEdgeToBoundary"]=asm["_directedEdgeToBoundary"];var _directedEdgeToCells=Module["_directedEdgeToCells"]=asm["_directedEdgeToCells"];var _emscripten_replace_memory=Module["_emscripten_replace_memory"]=asm["_emscripten_replace_memory"];var _exactEdgeLengthKm=Module["_exactEdgeLengthKm"]=asm["_exactEdgeLengthKm"];var _exactEdgeLengthM=Module["_exactEdgeLengthM"]=asm["_exactEdgeLengthM"];var _exactEdgeLengthRads=Module["_exactEdgeLengthRads"]=asm["_exactEdgeLengthRads"];var _free=Module["_free"]=asm["_free"];var _getBaseCellNumber=Module["_getBaseCellNumber"]=asm["_getBaseCellNumber"];var _getDirectedEdgeDestination=Module["_getDirectedEdgeDestination"]=asm["_getDirectedEdgeDestination"];var _getDirectedEdgeOrigin=Module["_getDirectedEdgeOrigin"]=asm["_getDirectedEdgeOrigin"];var _getHexagonAreaAvgKm2=Module["_getHexagonAreaAvgKm2"]=asm["_getHexagonAreaAvgKm2"];var _getHexagonAreaAvgM2=Module["_getHexagonAreaAvgM2"]=asm["_getHexagonAreaAvgM2"];var _getHexagonEdgeLengthAvgKm=Module["_getHexagonEdgeLengthAvgKm"]=asm["_getHexagonEdgeLengthAvgKm"];var _getHexagonEdgeLengthAvgM=Module["_getHexagonEdgeLengthAvgM"]=asm["_getHexagonEdgeLengthAvgM"];var _getIcosahedronFaces=Module["_getIcosahedronFaces"]=asm["_getIcosahedronFaces"];var _getNumCells=Module["_getNumCells"]=asm["_getNumCells"];var _getPentagons=Module["_getPentagons"]=asm["_getPentagons"];var _getRes0Cells=Module["_getRes0Cells"]=asm["_getRes0Cells"];var _getResolution=Module["_getResolution"]=asm["_getResolution"];var _greatCircleDistanceKm=Module["_greatCircleDistanceKm"]=asm["_greatCircleDistanceKm"];var _greatCircleDistanceM=Module["_greatCircleDistanceM"]=asm["_greatCircleDistanceM"];var _greatCircleDistanceRads=Module["_greatCircleDistanceRads"]=asm["_greatCircleDistanceRads"];var _gridDisk=Module["_gridDisk"]=asm["_gridDisk"];var _gridDiskDistances=Module["_gridDiskDistances"]=asm["_gridDiskDistances"];var _gridDistance=Module["_gridDistance"]=asm["_gridDistance"];var _gridPathCells=Module["_gridPathCells"]=asm["_gridPathCells"];var _gridPathCellsSize=Module["_gridPathCellsSize"]=asm["_gridPathCellsSize"];var _gridRingUnsafe=Module["_gridRingUnsafe"]=asm["_gridRingUnsafe"];var _i64Add=Module["_i64Add"]=asm["_i64Add"];var _i64Subtract=Module["_i64Subtract"]=asm["_i64Subtract"];var _isPentagon=Module["_isPentagon"]=asm["_isPentagon"];var _isResClassIII=Module["_isResClassIII"]=asm["_isResClassIII"];var _isValidCell=Module["_isValidCell"]=asm["_isValidCell"];var _isValidDirectedEdge=Module["_isValidDirectedEdge"]=asm["_isValidDirectedEdge"];var _isValidVertex=Module["_isValidVertex"]=asm["_isValidVertex"];var _latLngToCell=Module["_latLngToCell"]=asm["_latLngToCell"];var _llvm_minnum_f64=Module["_llvm_minnum_f64"]=asm["_llvm_minnum_f64"];var _llvm_round_f64=Module["_llvm_round_f64"]=asm["_llvm_round_f64"];var _localIjToCell=Module["_localIjToCell"]=asm["_localIjToCell"];var _malloc=Module["_malloc"]=asm["_malloc"];var _maxFaceCount=Module["_maxFaceCount"]=asm["_maxFaceCount"];var _maxGridDiskSize=Module["_maxGridDiskSize"]=asm["_maxGridDiskSize"];var _maxPolygonToCellsSize=Module["_maxPolygonToCellsSize"]=asm["_maxPolygonToCellsSize"];var _memcpy=Module["_memcpy"]=asm["_memcpy"];var _memset=Module["_memset"]=asm["_memset"];var _originToDirectedEdges=Module["_originToDirectedEdges"]=asm["_originToDirectedEdges"];var _pentagonCount=Module["_pentagonCount"]=asm["_pentagonCount"];var _polygonToCells=Module["_polygonToCells"]=asm["_polygonToCells"];var _readInt64AsDoubleFromPointer=Module["_readInt64AsDoubleFromPointer"]=asm["_readInt64AsDoubleFromPointer"];var _res0CellCount=Module["_res0CellCount"]=asm["_res0CellCount"];var _round=Module["_round"]=asm["_round"];var _sbrk=Module["_sbrk"]=asm["_sbrk"];var _sizeOfCellBoundary=Module["_sizeOfCellBoundary"]=asm["_sizeOfCellBoundary"];var _sizeOfCoordIJ=Module["_sizeOfCoordIJ"]=asm["_sizeOfCoordIJ"];var _sizeOfGeoLoop=Module["_sizeOfGeoLoop"]=asm["_sizeOfGeoLoop"];var _sizeOfGeoPolygon=Module["_sizeOfGeoPolygon"]=asm["_sizeOfGeoPolygon"];var _sizeOfH3Index=Module["_sizeOfH3Index"]=asm["_sizeOfH3Index"];var _sizeOfLatLng=Module["_sizeOfLatLng"]=asm["_sizeOfLatLng"];var _sizeOfLinkedGeoPolygon=Module["_sizeOfLinkedGeoPolygon"]=asm["_sizeOfLinkedGeoPolygon"];var _uncompactCells=Module["_uncompactCells"]=asm["_uncompactCells"];var _uncompactCellsSize=Module["_uncompactCellsSize"]=asm["_uncompactCellsSize"];var _vertexToLatLng=Module["_vertexToLatLng"]=asm["_vertexToLatLng"];var establishStackSpace=Module["establishStackSpace"]=asm["establishStackSpace"];var stackAlloc=Module["stackAlloc"]=asm["stackAlloc"];var stackRestore=Module["stackRestore"]=asm["stackRestore"];var stackSave=Module["stackSave"]=asm["stackSave"];Module["asm"]=asm;Module["cwrap"]=cwrap;Module["setValue"]=setValue;Module["getValue"]=getValue;if(memoryInitializer){if(!isDataURI(memoryInitializer)){memoryInitializer=locateFile(memoryInitializer)}if(ENVIRONMENT_IS_NODE||ENVIRONMENT_IS_SHELL){var data=readBinary(memoryInitializer);HEAPU8.set(data,GLOBAL_BASE)}else{addRunDependency("memory initializer");var applyMemoryInitializer=function(data){if(data.byteLength)data=new Uint8Array(data);HEAPU8.set(data,GLOBAL_BASE);if(Module["memoryInitializerRequest"])delete Module["memoryInitializerRequest"].response;removeRunDependency("memory initializer")};var doBrowserLoad=function(){readAsync(memoryInitializer,applyMemoryInitializer,function(){throw"could not load memory initializer "+memoryInitializer})};var memoryInitializerBytes=tryParseAsDataURI(memoryInitializer);if(memoryInitializerBytes){applyMemoryInitializer(memoryInitializerBytes.buffer)}else if(Module["memoryInitializerRequest"]){var useRequest=function(){var request=Module["memoryInitializerRequest"];var response=request.response;if(request.status!==200&&request.status!==0){var data=tryParseAsDataURI(Module["memoryInitializerRequestURL"]);if(data){response=data.buffer}else{console.warn("a problem seems to have happened with Module.memoryInitializerRequest, status: "+request.status+", retrying "+memoryInitializer);doBrowserLoad();return}}applyMemoryInitializer(response)};if(Module["memoryInitializerRequest"].response){setTimeout(useRequest,0)}else{Module["memoryInitializerRequest"].addEventListener("load",useRequest)}}else{doBrowserLoad()}}}var calledRun;function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function run(args){args=args||arguments_;if(runDependencies>0){return}preRun();if(runDependencies>0)return;function doRun(){if(calledRun)return;calledRun=true;if(ABORT)return;initRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}Module["run"]=run;function abort(what){if(Module["onAbort"]){Module["onAbort"](what)}what+="";out(what);err(what);ABORT=true;EXITSTATUS=1;throw"abort("+what+"). Build with -s ASSERTIONS=1 for more info."}Module["abort"]=abort;if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}noExitRuntime=true;run(); +(asmGlobalArg,asmLibraryArg,buffer);var ___divdi3=Module["___divdi3"]=asm["___divdi3"];var ___muldi3=Module["___muldi3"]=asm["___muldi3"];var ___remdi3=Module["___remdi3"]=asm["___remdi3"];var ___uremdi3=Module["___uremdi3"]=asm["___uremdi3"];var _areNeighborCells=Module["_areNeighborCells"]=asm["_areNeighborCells"];var _bitshift64Ashr=Module["_bitshift64Ashr"]=asm["_bitshift64Ashr"];var _bitshift64Lshr=Module["_bitshift64Lshr"]=asm["_bitshift64Lshr"];var _bitshift64Shl=Module["_bitshift64Shl"]=asm["_bitshift64Shl"];var _calloc=Module["_calloc"]=asm["_calloc"];var _cellAreaKm2=Module["_cellAreaKm2"]=asm["_cellAreaKm2"];var _cellAreaM2=Module["_cellAreaM2"]=asm["_cellAreaM2"];var _cellAreaRads2=Module["_cellAreaRads2"]=asm["_cellAreaRads2"];var _cellToBoundary=Module["_cellToBoundary"]=asm["_cellToBoundary"];var _cellToCenterChild=Module["_cellToCenterChild"]=asm["_cellToCenterChild"];var _cellToChildren=Module["_cellToChildren"]=asm["_cellToChildren"];var _cellToChildrenSize=Module["_cellToChildrenSize"]=asm["_cellToChildrenSize"];var _cellToLatLng=Module["_cellToLatLng"]=asm["_cellToLatLng"];var _cellToLocalIj=Module["_cellToLocalIj"]=asm["_cellToLocalIj"];var _cellToParent=Module["_cellToParent"]=asm["_cellToParent"];var _cellToVertex=Module["_cellToVertex"]=asm["_cellToVertex"];var _cellToVertexes=Module["_cellToVertexes"]=asm["_cellToVertexes"];var _cellsToDirectedEdge=Module["_cellsToDirectedEdge"]=asm["_cellsToDirectedEdge"];var _cellsToLinkedMultiPolygon=Module["_cellsToLinkedMultiPolygon"]=asm["_cellsToLinkedMultiPolygon"];var _compactCells=Module["_compactCells"]=asm["_compactCells"];var _destroyLinkedMultiPolygon=Module["_destroyLinkedMultiPolygon"]=asm["_destroyLinkedMultiPolygon"];var _directedEdgeToBoundary=Module["_directedEdgeToBoundary"]=asm["_directedEdgeToBoundary"];var _directedEdgeToCells=Module["_directedEdgeToCells"]=asm["_directedEdgeToCells"];var _edgeLengthKm=Module["_edgeLengthKm"]=asm["_edgeLengthKm"];var _edgeLengthM=Module["_edgeLengthM"]=asm["_edgeLengthM"];var _edgeLengthRads=Module["_edgeLengthRads"]=asm["_edgeLengthRads"];var _emscripten_replace_memory=Module["_emscripten_replace_memory"]=asm["_emscripten_replace_memory"];var _free=Module["_free"]=asm["_free"];var _getBaseCellNumber=Module["_getBaseCellNumber"]=asm["_getBaseCellNumber"];var _getDirectedEdgeDestination=Module["_getDirectedEdgeDestination"]=asm["_getDirectedEdgeDestination"];var _getDirectedEdgeOrigin=Module["_getDirectedEdgeOrigin"]=asm["_getDirectedEdgeOrigin"];var _getHexagonAreaAvgKm2=Module["_getHexagonAreaAvgKm2"]=asm["_getHexagonAreaAvgKm2"];var _getHexagonAreaAvgM2=Module["_getHexagonAreaAvgM2"]=asm["_getHexagonAreaAvgM2"];var _getHexagonEdgeLengthAvgKm=Module["_getHexagonEdgeLengthAvgKm"]=asm["_getHexagonEdgeLengthAvgKm"];var _getHexagonEdgeLengthAvgM=Module["_getHexagonEdgeLengthAvgM"]=asm["_getHexagonEdgeLengthAvgM"];var _getIcosahedronFaces=Module["_getIcosahedronFaces"]=asm["_getIcosahedronFaces"];var _getNumCells=Module["_getNumCells"]=asm["_getNumCells"];var _getPentagons=Module["_getPentagons"]=asm["_getPentagons"];var _getRes0Cells=Module["_getRes0Cells"]=asm["_getRes0Cells"];var _getResolution=Module["_getResolution"]=asm["_getResolution"];var _greatCircleDistanceKm=Module["_greatCircleDistanceKm"]=asm["_greatCircleDistanceKm"];var _greatCircleDistanceM=Module["_greatCircleDistanceM"]=asm["_greatCircleDistanceM"];var _greatCircleDistanceRads=Module["_greatCircleDistanceRads"]=asm["_greatCircleDistanceRads"];var _gridDisk=Module["_gridDisk"]=asm["_gridDisk"];var _gridDiskDistances=Module["_gridDiskDistances"]=asm["_gridDiskDistances"];var _gridDistance=Module["_gridDistance"]=asm["_gridDistance"];var _gridPathCells=Module["_gridPathCells"]=asm["_gridPathCells"];var _gridPathCellsSize=Module["_gridPathCellsSize"]=asm["_gridPathCellsSize"];var _gridRingUnsafe=Module["_gridRingUnsafe"]=asm["_gridRingUnsafe"];var _i64Add=Module["_i64Add"]=asm["_i64Add"];var _i64Subtract=Module["_i64Subtract"]=asm["_i64Subtract"];var _isPentagon=Module["_isPentagon"]=asm["_isPentagon"];var _isResClassIII=Module["_isResClassIII"]=asm["_isResClassIII"];var _isValidCell=Module["_isValidCell"]=asm["_isValidCell"];var _isValidDirectedEdge=Module["_isValidDirectedEdge"]=asm["_isValidDirectedEdge"];var _isValidVertex=Module["_isValidVertex"]=asm["_isValidVertex"];var _latLngToCell=Module["_latLngToCell"]=asm["_latLngToCell"];var _llvm_minnum_f64=Module["_llvm_minnum_f64"]=asm["_llvm_minnum_f64"];var _llvm_round_f64=Module["_llvm_round_f64"]=asm["_llvm_round_f64"];var _localIjToCell=Module["_localIjToCell"]=asm["_localIjToCell"];var _malloc=Module["_malloc"]=asm["_malloc"];var _maxFaceCount=Module["_maxFaceCount"]=asm["_maxFaceCount"];var _maxGridDiskSize=Module["_maxGridDiskSize"]=asm["_maxGridDiskSize"];var _maxPolygonToCellsSize=Module["_maxPolygonToCellsSize"]=asm["_maxPolygonToCellsSize"];var _memcpy=Module["_memcpy"]=asm["_memcpy"];var _memset=Module["_memset"]=asm["_memset"];var _originToDirectedEdges=Module["_originToDirectedEdges"]=asm["_originToDirectedEdges"];var _pentagonCount=Module["_pentagonCount"]=asm["_pentagonCount"];var _polygonToCells=Module["_polygonToCells"]=asm["_polygonToCells"];var _readInt64AsDoubleFromPointer=Module["_readInt64AsDoubleFromPointer"]=asm["_readInt64AsDoubleFromPointer"];var _res0CellCount=Module["_res0CellCount"]=asm["_res0CellCount"];var _round=Module["_round"]=asm["_round"];var _sbrk=Module["_sbrk"]=asm["_sbrk"];var _sizeOfCellBoundary=Module["_sizeOfCellBoundary"]=asm["_sizeOfCellBoundary"];var _sizeOfCoordIJ=Module["_sizeOfCoordIJ"]=asm["_sizeOfCoordIJ"];var _sizeOfGeoLoop=Module["_sizeOfGeoLoop"]=asm["_sizeOfGeoLoop"];var _sizeOfGeoPolygon=Module["_sizeOfGeoPolygon"]=asm["_sizeOfGeoPolygon"];var _sizeOfH3Index=Module["_sizeOfH3Index"]=asm["_sizeOfH3Index"];var _sizeOfLatLng=Module["_sizeOfLatLng"]=asm["_sizeOfLatLng"];var _sizeOfLinkedGeoPolygon=Module["_sizeOfLinkedGeoPolygon"]=asm["_sizeOfLinkedGeoPolygon"];var _uncompactCells=Module["_uncompactCells"]=asm["_uncompactCells"];var _uncompactCellsSize=Module["_uncompactCellsSize"]=asm["_uncompactCellsSize"];var _vertexToLatLng=Module["_vertexToLatLng"]=asm["_vertexToLatLng"];var establishStackSpace=Module["establishStackSpace"]=asm["establishStackSpace"];var stackAlloc=Module["stackAlloc"]=asm["stackAlloc"];var stackRestore=Module["stackRestore"]=asm["stackRestore"];var stackSave=Module["stackSave"]=asm["stackSave"];Module["asm"]=asm;Module["cwrap"]=cwrap;Module["setValue"]=setValue;Module["getValue"]=getValue;if(memoryInitializer){if(!isDataURI(memoryInitializer)){memoryInitializer=locateFile(memoryInitializer)}if(ENVIRONMENT_IS_NODE||ENVIRONMENT_IS_SHELL){var data=readBinary(memoryInitializer);HEAPU8.set(data,GLOBAL_BASE)}else{addRunDependency("memory initializer");var applyMemoryInitializer=function(data){if(data.byteLength)data=new Uint8Array(data);HEAPU8.set(data,GLOBAL_BASE);if(Module["memoryInitializerRequest"])delete Module["memoryInitializerRequest"].response;removeRunDependency("memory initializer")};var doBrowserLoad=function(){readAsync(memoryInitializer,applyMemoryInitializer,function(){throw"could not load memory initializer "+memoryInitializer})};var memoryInitializerBytes=tryParseAsDataURI(memoryInitializer);if(memoryInitializerBytes){applyMemoryInitializer(memoryInitializerBytes.buffer)}else if(Module["memoryInitializerRequest"]){var useRequest=function(){var request=Module["memoryInitializerRequest"];var response=request.response;if(request.status!==200&&request.status!==0){var data=tryParseAsDataURI(Module["memoryInitializerRequestURL"]);if(data){response=data.buffer}else{console.warn("a problem seems to have happened with Module.memoryInitializerRequest, status: "+request.status+", retrying "+memoryInitializer);doBrowserLoad();return}}applyMemoryInitializer(response)};if(Module["memoryInitializerRequest"].response){setTimeout(useRequest,0)}else{Module["memoryInitializerRequest"].addEventListener("load",useRequest)}}else{doBrowserLoad()}}}var calledRun;function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function run(args){args=args||arguments_;if(runDependencies>0){return}preRun();if(runDependencies>0)return;function doRun(){if(calledRun)return;calledRun=true;if(ABORT)return;initRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}Module["run"]=run;function abort(what){if(Module["onAbort"]){Module["onAbort"](what)}what+="";out(what);err(what);ABORT=true;EXITSTATUS=1;throw"abort("+what+"). Build with -s ASSERTIONS=1 for more info."}Module["abort"]=abort;if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}noExitRuntime=true;run(); diff --git a/test/h3core.spec.js b/test/h3core.spec.js index b99306c..d846b1f 100644 --- a/test/h3core.spec.js +++ b/test/h3core.spec.js @@ -1814,13 +1814,13 @@ test('cellArea - bad units', assert => { assert.end(); }); -test('exactEdgeLength', assert => { +test('edgeLength', assert => { for (let res = 0; res < 16; res++) { const h3Index = h3.latLngToCell(0, 0, res); const edges = h3.originToDirectedEdges(h3Index); for (let i = 0; i < edges.length; i++) { const edge = edges[i]; - const lengthKm = h3.exactEdgeLength(edge, h3.UNITS.km); + const lengthKm = h3.edgeLength(edge, h3.UNITS.km); assert.ok(lengthKm > 0, 'Has some length'); assert.ok( // res 0 has high distortion of average edge length due to high pentagon proportion @@ -1829,7 +1829,7 @@ test('exactEdgeLength', assert => { almostEqual(lengthKm, h3.getHexagonEdgeLengthAvg(res, h3.UNITS.km), 0.2), `Edge length is close to average edge length at res ${res}, km` ); - const lengthM = h3.exactEdgeLength(edge, h3.UNITS.m); + const lengthM = h3.edgeLength(edge, h3.UNITS.m); assert.ok( // res 0 has high distortion of average edge length due to high pentagon proportion res === 0 || @@ -1838,28 +1838,24 @@ test('exactEdgeLength', assert => { `Edge length is close to average edge length at res ${res}, m` ); assert.ok(lengthM > lengthKm, 'm > Km'); - assert.ok(lengthKm > h3.exactEdgeLength(edge, h3.UNITS.rads), 'Km > rads'); + assert.ok(lengthKm > h3.edgeLength(edge, h3.UNITS.rads), 'Km > rads'); } } assert.end(); }); -test('exactEdgeLength - bad units', assert => { +test('edgeLength - bad units', assert => { const h3Index = h3.latLngToCell(0, 0, 9); const edge = h3.originToDirectedEdges(h3Index)[0]; - assert.throws(() => h3.exactEdgeLength(edge), {code: E_UNKNOWN_UNIT}, 'throws on missing unit'); + assert.throws(() => h3.edgeLength(edge), {code: E_UNKNOWN_UNIT}, 'throws on missing unit'); assert.throws( - () => h3.exactEdgeLength(edge, 'foo'), + () => h3.edgeLength(edge, 'foo'), {code: E_UNKNOWN_UNIT}, 'throws on unknown unit' ); + assert.throws(() => h3.edgeLength(edge, 42), {code: E_UNKNOWN_UNIT}, 'throws on unknown unit'); assert.throws( - () => h3.exactEdgeLength(edge, 42), - {code: E_UNKNOWN_UNIT}, - 'throws on unknown unit' - ); - assert.throws( - () => h3.exactEdgeLength(edge, h3.UNITS.m2), + () => h3.edgeLength(edge, h3.UNITS.m2), {code: E_UNKNOWN_UNIT}, 'throws on invalid unit' );