-
Notifications
You must be signed in to change notification settings - Fork 2
/
uranium.js
199 lines (195 loc) · 995 KB
/
uranium.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
var b4w="object"===typeof b4w?b4w:function(g){var F={};g.module=F;var u={};g.register=function(g,u){F[g]||(F[g]=u)};g.require=function(g,H){if(!F[g])throw Error('Module "'+g+'" not found');H=H||"__b4w_default";u[H]||(u[H]=function(g){return function(H){var N=F[H];if(!N)throw Error('Module "'+H+'" not found');N.Ra||(N.Ra={});N.Ra[g]||(N.Ra[g]={},N(N.Ra[g],u[g]));return N.Ra[g]}}(H));return u[H](g)};g.module_check=function(g){return F[g]?!0:!1};g.get_namespace=function(g){for(var H in u)if(u[H]==g)return H;
return""};g.worker_listeners=[];g.worker_namespaces=[];return g}({});
b4w.module.__ipc=function(g,F){function u(g,u,m){for(var e=0;e<T.length;e+=2)T[e+1]==g&&(ha[e+Number(!u)]=m)}function Oa(g){for(var u=0;u<g.length;u++){var m=g[u],e=0,x;for(x in m){var q=m[x];switch(q.constructor){case Float32Array:e+=q.length;break;case Number:e+=1}}--e;m.I=e}}g.ld=0;var H=g.ec=1,ga=g.fc=2;g.ed=3;g.gd=4;g.hd=5;g.jd=6;g.md=7;var qa=g.hb=8,N=g.gc=9,ia=g.hc=10;g.Lh=11;var X=g.ic=12;g.jc=13;g.nd=14;g.kd=15;g.fd=16;g.Od=100;g.od=101;g.pd=102;g.qd=103;g.rd=104;g.ud=105;g.td=106;g.vd=107;
g.wd=108;g.xd=109;g.yd=110;g.zd=111;g.Ad=112;g.Cd=113;g.Dd=114;g.Rd=115;g.Ed=116;g.Fd=117;g.Gd=118;g.Id=119;g.Jd=120;g.Kd=121;g.Md=122;g.Nd=123;g.Pd=124;g.Bd=125;g.Ud=126;g.Hd=127;g.Sd=128;g.Td=129;g.Vd=130;g.Wd=131;g.Xd=132;g.Yd=133;g.Zd=134;g.$d=135;g.ae=136;g.be=137;g.ce=138;g.de=139;g.ee=140;var ra=g.fe=141;g.ge=142;g.sd=143;g.he=144;g.ie=145;g.Qd=146;g.Ld=147;g.je=148;var ha=b4w.worker_listeners,T=b4w.worker_namespaces,x={L:X,ta:0,time:0,o:new Float32Array(3),k:new Float32Array(4),F:new Float32Array(3),
D:new Float32Array(3),I:0},sa={L:qa,kb:0,vb:0,o:new Float32Array(3),k:new Float32Array(4),I:0},ta={L:N,id:0,ua:0,Ba:0,Ea:0,I:0},ua={L:ia,id:0,ua:0,Ba:0,Ea:0,Da:new Float32Array(3),Ca:new Float32Array(3),I:0},ja={L:H,T:0,U:0,result:0,I:0},ka={L:ga,T:0,U:0,result:0,xa:new Float32Array(3),wa:new Float32Array(3),Jb:0,I:0},va={L:ra,ta:0,o:new Float32Array(3),k:new Float32Array(4),I:0},hb=[x,sa,ta,ua,ja,ka,va];g.we=function(g){var x={rb:!1,pa:null,aa:[],fa:""};if(g)if(x.pa={addEventListener:function(e,
g){"message"!=e&&panic("Wrong web worker event");u(x.fa,x.rb,g)},removeEventListener:function(e){"message"!=e&&panic("Wrong web worker event");u(x.fa,x.rb,null)},postMessage:function(e){var g;a:{for(g=0;g<T.length;g+=2)if(T[g+1]==x.fa){g=ha[g+Number(!!x.rb)];break a}g=null}g({data:e})},terminate:function(){for(var e=0;e<T.length;e+=2)if(T[e+1]==x.fa){ha.splice(e,2);T.splice(e,2);break}}},x.rb){var m=F("__util");g=F("__container");var e=b4w.get_namespace(F),m=m.Hi(e+"_worker");T.push(e);T.push(m);
ha.push(null);ha.push(null);x.fa=m;g.Ee("")?(g=g.Ee(""),g.addEventListener("load",function(){b4w.require("__bindings",x.fa)},!1)):(g=document.createElement("script"),g.src="",g.defer="defer",g.async="async",g.addEventListener("load",function(){b4w.require("__bindings",x.fa)},!1),document.head.appendChild(g))}else x.fa=b4w.get_namespace(F);else x.pa=self;return x};g.qe=function(g,u){function m(e){if(e.constructor==ArrayBuffer)e=new Float32Array(e);else if(e[0].constructor==ArrayBuffer){for(var F=0;F<
e.length;F++)m(e[F]);return}F=e[0]|0;switch(F){case X:var q=x;q.ta=e[1]|0;q.time=e[2];q.o[0]=e[3];q.o[1]=e[4];q.o[2]=e[5];q.k[0]=e[6];q.k[1]=e[7];q.k[2]=e[8];q.k[3]=e[9];q.F[0]=e[10];q.F[1]=e[11];q.F[2]=e[12];q.D[0]=e[13];q.D[1]=e[14];q.D[2]=e[15];break;case qa:q=sa;q.kb=e[1]|0;q.vb=e[2]|0;q.o[0]=e[3];q.o[1]=e[4];q.o[2]=e[5];q.k[0]=e[6];q.k[1]=e[7];q.k[2]=e[8];q.k[3]=e[9];break;case N:q=ta;q.id=e[1]|0;q.ua=e[2]|0;q.Ba=e[3];q.Ea=e[4];break;case ia:q=ua;q.id=e[1]|0;q.ua=e[2]|0;q.Ba=e[3];q.Ea=e[4];q.Da[0]=
e[5];q.Da[1]=e[6];q.Da[2]=e[7];q.Ca[0]=e[8];q.Ca[1]=e[9];q.Ca[2]=e[10];break;case H:q=ja;q.T=e[1]|0;q.U=e[2]|0;q.result=!!e[3];break;case ga:q=ka;q.T=e[1]|0;q.U=e[2]|0;q.result=!!e[3];q.xa[0]=e[4];q.xa[1]=e[5];q.xa[2]=e[6];q.wa[0]=e[7];q.wa[1]=e[8];q.wa[2]=e[9];q.Jb=e[10];break;case ra:q=va;q.ta=e[1]|0;q.o[0]=e[2];q.o[1]=e[3];q.o[2]=e[4];q.k[0]=e[5];q.k[1]=e[6];q.k[2]=e[7];q.k[3]=e[8];break;default:q=e}u(g,F,q)}Oa(hb);g.pa.addEventListener("message",function(e){m(e.data)},!1)};g.bi=function(){};g.G=
function(g,u){if(g)switch(u){case X:var m=x,e=new Float32Array(m.I);e[0]=m.L;e[1]=m.ta;e[2]=m.time;e[3]=m.o[0];e[4]=m.o[1];e[5]=m.o[2];e[6]=m.k[0];e[7]=m.k[1];e[8]=m.k[2];e[9]=m.k[3];e[10]=m.F[0];e[11]=m.F[1];e[12]=m.F[2];e[13]=m.D[0];e[14]=m.D[1];e[15]=m.D[2];g.aa.push(e.buffer);break;case qa:m=sa;e=new Float32Array(m.I);e[0]=m.L;e[1]=m.kb;e[2]=m.vb;e[3]=m.o[0];e[4]=m.o[1];e[5]=m.o[2];e[6]=m.k[0];e[7]=m.k[1];e[8]=m.k[2];e[9]=m.k[3];g.aa.push(e.buffer);break;case N:m=ta;e=new Float32Array(m.I);e[0]=
m.L;e[1]=m.id;e[2]=m.ua;e[3]=m.Ba;e[4]=m.Ea;g.aa.push(e.buffer);break;case ia:m=ua;e=new Float32Array(m.I);e[0]=m.L;e[1]=m.id;e[2]=m.ua;e[3]=m.Ba;e[4]=m.Ea;e[5]=m.Da[0];e[6]=m.Da[1];e[7]=m.Da[2];e[8]=m.Ca[0];e[9]=m.Ca[1];e[10]=m.Ca[2];g.aa.push(e.buffer);break;case H:m=ja;e=new Float32Array(m.I);e[0]=m.L;e[1]=m.T;e[2]=m.U;e[3]=m.result;g.aa.push(e.buffer);break;case ga:m=ka;e=new Float32Array(m.I);e[0]=m.L;e[1]=m.T;e[2]=m.U;e[3]=m.result;e[4]=m.xa[0];e[5]=m.xa[1];e[6]=m.xa[2];e[7]=m.wa[0];e[8]=m.wa[1];
e[9]=m.wa[2];e[10]=m.Jb;g.aa.push(e.buffer);break;case ra:m=va;e=new Float32Array(m.I);e[0]=m.L;e[1]=m.ta;e[2]=m.o[0];e[3]=m.o[1];e[4]=m.o[2];e[5]=m.k[0];e[6]=m.k[1];e[7]=m.k[2];e[8]=m.k[3];g.aa.push(e.buffer);break;default:e=[];for(m=1;m<arguments.length;m++)e.push(arguments[m]);g.pa.postMessage(e)}};g.bf=function(g){g&&g.aa.length&&(g.pa.postMessage(g.aa),g.aa.length=0)};g.Aa=function(g){switch(g){case X:return x;case qa:return sa;case N:return ta;case ia:return ua;case H:return ja;case ga:return ka;
case ra:return va;default:return null}};g.terminate=function(g){g.pa.terminate();g.pa=null};g.si=function(g){return!!g.pa};g.ti=function(g){return!!g.fa}};
b4w.module.__bindings=function(g,F){function u(){if(G)return G;throw"No active world";}function Oa(a,c,b,v,d,h,t,k,f,e){var g=ga(c,b);v=K(v[0],v[1],v[2]);g=Mb(g.Jc,g.Ic,g.Vc,g.Uc);Pa(g,k);d=$c(g,v,d,h);ib(d,t);H(a,d,!1,f,e).Tb=b?b.length/3:c.length/9}function H(a,c,b,v,d){b={id:a,g:c,Yb:!0,Ce:b,rc:v,sc:d,o:new Float32Array([0,0,0]),k:new Float32Array([0,0,0,1]),F:new Float32Array([0,0,0]),D:new Float32Array([0,0,0]),V:K(0,0,0),P:ba(0,0,0,1),Za:K(0,0,0),Ya:K(0,0,0),ea:null,Hb:!1,Ib:-1,Tb:0};var h=
u();h.O[a]=b;h.S.push(b);Nb(c,v,d);return b}function ga(a,c){var b=a.length,v=Ob(b);I.set(a,v>>2);if(c){var d=c.length,h=Pb(d);z.set(c,h>>2)}else for(var d=a.length/3,h=Pb(d),t=h>>2,k=0;k<d;k++)z[t+k]=k;return{Ic:h,Jc:d,Uc:v,Vc:b}}function qa(a,c,b,v,d,h,t,k){var f=ga(c,b);v=K(v[0],v[1],v[2]);f=Mb(f.Jc,f.Ic,f.Vc,f.Uc);Pa(f,h);h=ad(f,v);a=H(a,h,!1,t,k);ib(h,d);a.Tb=b?b.length/3:c.length/9}function N(a,c,b,v,d,h,t,k,f,e,g,l,p,y,A,E,C,B,O,w,m,q){if(m.length)for(k=bd(),f=0;f<m.length;f++){q=m[f];var r=
q.trans;C=q.quat;E=q.bounding_type;q=q.worker_bounding;r=K(r[0],r[1],r[2]);C=C?ba(C[0],C[1],C[2],C[3]):0;E=ia(E,q,!1);Pa(E,p);cd(k,r,C,E)}else k=ia(E,C,q),Pa(k,p);switch(v){case "STATIC":t=0;var u=1,x=1,z=1;break;case "DYNAMIC":z=x=u=0;break;case "RIGID_BODY":z=x=u=1;break;case "NO_COLLISION":d=!0;break;default:return console.error("Unsupported physics type: "+v),null}c=K(c[0],c[1],c[2]);b=b?ba(b[0],b[1],b[2],b[3]):0;e=d?dd(k,c,b):ed(k,t,c,b,e,g,B,u,x,z,O,w);ib(e,l);h&&fd(e);"RIGID_BODY"!=v&&"DYNAMIC"!=
v||!t||d?H(a,e,!1,y,A):H(a,e,!0,y,A)}function ia(a,c,b){if("BOX"==a){a=(c.max_x-c.min_x)/2;var v=(c.max_y-c.min_y)/2,d=(c.max_z-c.min_z)/2,h=(c.max_x+c.min_x)/2,t=(c.max_y+c.min_y)/2,k=(c.max_z+c.min_z)/2;X(b,a,v,d,h,t,k)&&(k=t=h=0);c=gd(a,v,d,h,t,k)}else if("CYLINDER"==a)a=c.radius,v=c.height/2,d=c.radius,h=c.center[0],t=c.center[1],k=c.center[2],X(b,a,v,d,h,t,k)&&(k=t=h=0),c=hd(a,v,d,h,t,k);else if("CONE"==a)a=c.radius,v=c.height/2,d=c.radius,h=c.center[0],t=c.center[1],k=c.center[2],X(b,a,v,d,
h,t,k)&&(k=t=h=0),c=id(c.radius,c.height,h,t,k);else if("SPHERE"==a)a=v=d=c.radius,h=c.center[0],t=c.center[1],k=c.center[2],X(b,a,v,d,h,t,k)&&(k=t=h=0),c=jd(c.radius,h,t,k);else if("CAPSULE"==a)a=c.radius,v=c.height+2*c.radius,d=c.radius,h=c.center[0],t=c.center[1],k=c.center[2],X(b,a,v,d,h,t,k)&&(k=t=h=0),c=kd(c.radius,c.height,h,t,k);else if("EMPTY"==a)c=ld();else throw"Wrong collision bounds type: "+a;return c}function X(a,c,b,d,n,h,t){return"OFF"==a||"AUTO"==a&&Math.abs(n)<.1*c&&Math.abs(h)<
.1*b&&Math.abs(t)<.1*d?!0:!1}function ra(a){var c=G.O[a];if(!c)throw"Wrong body id";Qb(a);var b=jb(G,a);b&&md(b);nd(c.g);delete G.O[a];G.S.splice(G.S.indexOf(c),1)}function ha(a,c,b,d,n,h,t,k,f,e,g){d=x(d);n=K(n[0],n[1],n[2]);h=ba(h[0],h[1],h[2],h[3]);t=x(t);k=K(k[0],k[1],k[2]);f=ba(f[0],f[1],f[2],f[3]);switch(c){case "GENERIC_6_DOF":g=Rb(d,n,h,t,k,f);break;case "GENERIC_6_DOF_SPRING":e=e?Qa(e[0],e[1],e[2],e[3],e[4],e[5]):Qa(0,0,0,0,0,0);g=g?Qa(g[0],g[1],g[2],g[3],g[4],g[5]):Qa(1,1,1,1,1,1);g=od(d,
n,h,t,k,f,e,g);break;case "HINGE":b.use_limit_x=!0;b.use_limit_y=!0;b.use_limit_z=!0;b.use_angular_limit_y=!0;b.use_angular_limit_z=!0;b.limit_max_x=0;b.limit_min_x=0;b.limit_max_y=0;b.limit_min_y=0;b.limit_max_z=0;b.limit_min_z=0;b.limit_angle_max_y=0;b.limit_angle_min_y=0;b.limit_angle_max_z=0;b.limit_angle_min_z=0;c="GENERIC_6_DOF";g=Rb(d,n,h,t,k,f);break;case "BALL":g=pd(d,n,t,k);break;case "CONE_TWIST":g=qd(d,n,h,t,k,f);break;default:g=null}if(g){d=g;e=c;switch(e){case "GENERIC_6_DOF":case "GENERIC_6_DOF_SPRING":e=
[!1,!1,!1,!1,!1,!1];b.use_limit_x&&(e[0]=[b.limit_min_x,b.limit_max_x]);b.use_limit_y&&(e[1]=[b.limit_min_y,b.limit_max_y]);b.use_limit_z&&(e[2]=[b.limit_min_z,b.limit_max_z]);b.use_angular_limit_x&&(e[3]=[b.limit_angle_min_x,b.limit_angle_max_x]);b.use_angular_limit_y&&(e[4]=[b.limit_angle_min_y,b.limit_angle_max_y]);b.use_angular_limit_z&&(e[5]=[b.limit_angle_min_z,b.limit_angle_max_z]);for(b=0;b<e.length;b++)e[b]?Sb(d,b,e[b][0],e[b][1]):Sb(d,b,1,-1);break;case "HINGE":b.use_angular_limit_x&&rd(d,
b.limit_angle_min_x,b.limit_angle_max_x);break;case "BALL":break;case "CONE_TWIST":b.use_angular_limit_x&&kb(d,3,b.limit_angle_max_x);b.use_angular_limit_y&&kb(d,4,b.limit_angle_max_y);b.use_angular_limit_z&&kb(d,5,b.limit_angle_min_z);break;default:throw"Wrong constraint pivot type: "+e;}b=g;switch(c){case "GENERIC_6_DOF":case "GENERIC_6_DOF_SPRING":c=[0,1,2,3,4,5];break;case "HINGE":c=[-1];break;case "BALL":c=[-1];break;case "CONE_TWIST":c=[3,4,5];break;default:throw"Wrong constraint pivot type: "+
c;}for(d=0;d<c.length;d++)e=c[d],Tb(b,sd(),0,e),Tb(b,td(),.5,e);ud(g,!0);u().mb[a]=g}}function T(a){var c=u(),b=c.mb[a];if(b)vd(b),delete c.mb[a];else throw"Wrong constraint";}function x(a){if(a=u().O[a])return a.g;throw"Wrong body ID";}function sa(a,c,b,d,n,h){var t=x(a);c=wd(c,b,d,n,h);t=xd(t,c);c={g:t,Be:c,cd:[]};u().va[a]=c;Ca(t)}function ta(a,c,b,d){var n=x(a);c=yd(n,c,b,d);b={g:c,Ua:[]};u().R[a]=b;Ca(c);if(a=u().da)for(Ub(c,a.g),b=0;b<a.ma.length;b++)a.ma[b]&&Vb(c,b)}function ua(a,c,b,d){var n=
x(a);c=zd(n,c,b,d);b={g:c,Ua:[]};u().X[a]=b;Ca(c);if(a=u().da)for(Wb(c,a.g),b=0;b<a.ma.length;b++)a.ma[b]&&Xb(c,b)}function ja(a){if(a=u().va[a])return a;throw"Wrong car body ID";}function ka(a){if(a=u().R[a])return a;throw"Wrong boat body ID";}function va(a,c,b,d,n,h){a=ja(a);c=K(c[0],c[1],c[2]);Ad(a.g,a.Be,c,b,d,n,h);b={o:new Float32Array(3),k:new Float32Array(4),V:K(0,0,0),P:ba(0,0,0,1)};a.cd.push(b)}function hb(a,c,b){a=ka(a);c=K(c[0],c[1],c[2]);Bd(a.g,c);b&&(b={o:new Float32Array(3),k:new Float32Array(4),
V:K(0,0,0),P:ba(0,0,0,1)},a.Ua.push(b))}function Xc(a,c,b){a=u().X[a];if(!a)throw"Wrong floater body ID";c=K(c[0],c[1],c[2]);Cd(a.g,c);b&&(b={o:new Float32Array(3),k:new Float32Array(4),V:K(0,0,0),P:ba(0,0,0,1)},a.Ua.push(b))}function Yc(a,c,b,d,n,h,t,k,f,e){var g=x(a);f=u().O[a];e=f.sc;f=f.rc;c=Dd(g,c,b,d,n,h,t,k,f,e);b={g:c};u().A[a]=b;Ca(c);if(a=u().da)for(Yb(c,a.g),b=0;b<a.ma.length;b++)a.ma[b]&&Zb(c,b)}function m(a,c,b){var d=u().A[a].g;a=x(a);Q(a);Ed(d,b,0,c)}function e(a,c){var b=u().A[a].g;
Fd(b,c)}function Zc(a,c){var b=u().A[a].g;Gd(b,c)}function q(a,c){var b=u().A[a].g;Hd(b,c)}function Id(a,c){var b=u().A[a].g;Jd(b,c)}function Kd(a){var c=u().A[a].g;a=x(a);Q(a);Ld(c)}function $b(a,c,b){var d=u().A[a].g;a=x(a);Q(a);Md(d,c,b)}function Nd(a,c){var b=u().A[a].g,d=x(a);Q(d);Od(b,c)}function Pd(a,c){var b=u().A[a].g,d=x(a);Q(d);Qd(b,c)}function Rd(a,c,b){var d=u().A[a].g;a=x(a);Q(a);Sd(d,c,b)}function Td(a,c){for(var b=u().Va,d=0;d<a.length;d++){for(var n=a[d],h=!1,t=0;t<b.length;t++)if(b[t].T===
n[0]&&b[t].U===n[1]){h=!0;break}if(!h){n={T:n[0],U:n[1],Mb:x(n[0]),Nb:x(n[1]),tb:!1,Ka:new Float32Array(3),Rb:new Float32Array(3),jb:c};h=n.Mb;t=n.Nb;u();var k=u().lb;k.Ta=Ud(k.Ta,k.size,h,t);k.size+=1;b.push(n)}}}function Vd(a){for(var c=u().Va,b=0;b<a.length;b++)for(var d=a[b],n=0;n<c.length;n++){var h=c[n];if(h.T===d[0]&&h.U===d[1]){var t=h.Mb,h=h.Nb,k=u().lb;k.Ta=Wd(k.Ta,k.size,t,h);--k.size;c.splice(n,1);n--}}}function Xd(a){if(a=u().O[a])a.Hb=!0,a.Ib=-1;else throw"Wrong body ID";}function Yd(a){if(a=
u().O[a])a.Hb=!1;else throw"Wrong body ID";}function Zd(a,c,b,d,n,h,t,k,f){G.Ha[a]&&lb(a,G);c={id:a,Zh:c,Fe:b,pf:d,tb:1,ve:n,re:h,se:t,jb:k,Re:f,xe:c?x(c):0,Ac:K(b[0],b[1],b[2]),Bc:K(d[0],d[1],d[2]),ze:K(0,0,0),ye:K(0,0,0),Ae:$d(k)};G.Ha[a]=c;G.Oa.push(c)}function lb(a,c){var b=c.Ha[a];delete c.Ha[a];c.Oa.splice(c.Oa.indexOf(b),1)}function ae(a){G.Ha[a]&&lb(a,G)}function be(a,c,b){G.Ha[a]&&(a=G.Ha[a],a.Fe.set(c),a.pf.set(b),ac(c,a.Ac),ac(b,a.Bc))}function ce(a){world=u();if(!world.da){a=de(a);world.da=
{g:a,ma:[]};for(var c in world.X)Wb(world.X[c].g,a);for(var b in world.R)Ub(world.R[b].g,a);for(var d in world.A)Yb(world.A[d].g,a)}}function ee(a,c,b,d,n,h,t,k,f,e){world=u();if(world.da){var g=a.dst_noise_scale0,l=a.dst_noise_scale1,p=a.dst_noise_freq0,y=a.dst_noise_freq1,A=a.dir_min_shore_fac,E=a.dir_freq,C=a.dir_noise_scale,B=a.dir_noise_freq,O=a.dir_min_noise_fac,w=a.dst_min_fac;a=a.waves_hor_fac;if(e){var m=e.length;m?(m=Ob(m),I.set(e,m>>2)):m=null}else m=null;world.da.ma.push(m);water_du_id=
world.da.g;fe(water_du_id,g,l,p,y,A,E,C,B,O,w,a,c,b,d,n,h,t,k,f,m);if(m){c=world.da.ma.length-1;for(var q in world.X)Xb(world.X[q].g,c);for(var r in world.R)Vb(world.R[r].g,c);for(var x in world.A)Zb(world.A[x].g,c)}}}function ge(a){var c=u().da;c?he(c.g,a):console.error("No water added for physics world")}function ie(a){var c=u(),b=c.O[a];if(!b)throw"Wrong body ID";b.Yb=!0;bc(a,b.o,b.k);Nb(b.g,b.rc,b.sc);(a=jb(c,a))&&Ca(a)}function jb(a,c){return a.va[c]?a.va[c].g:a.R[c]?a.R[c].g:a.X[c]?a.X[c].g:
a.A[c]?a.A[c].g:null}function Qb(a){var c=u(),b=c.O[a];if(!b)throw"Wrong body ID";b.Yb=!1;(a=jb(c,a))&&je(a);ke(b.g)}function le(a){a=x(a);Q(a)}function bc(a,c,b){var d=G.O[a],n=d.g,h=c[0],t=c[1];c=c[2];var k=b[0],f=b[1],e=b[2],g=b[3];d.o[0]=h;d.o[1]=t;d.o[2]=c;d.k[0]=k;d.k[1]=f;d.k[2]=e;d.k[3]=g;if(G.A[a]){me(n,h,t,c);d=mb;d[0]=0;d[1]=0;d[2]=1;c=d[0];k=d[1];f=d[2];n=b[0];h=b[1];t=b[2];b=b[3];var e=b*c+h*f-t*k,g=b*k+t*c-n*f,l=b*f+n*k-h*c;c=-n*c-h*k-t*f;d[0]=e*b+c*-n+g*-t-l*-h;d[1]=g*b+c*-h+l*-n-e*
-t;d[2]=l*b+c*-t+e*-h-g*-n;b=cc;b[0]=d[0];b[1]=0;b[2]=d[2];n=b[0];h=b[1];t=b[2];c=Math.sqrt(n*n+h*h+t*t);c?1!==c&&(c=1/c,b[0]=n*c,b[1]=h*c,b[2]=t*c):(b[0]=0,b[1]=0,b[2]=0);n=b[0]*d[0]+b[2]*d[2];d=0>d[1]?1:-1;h=mb;h[0]=0;h[1]=0;h[2]=1;$b(a,Math.acos(b[2]*h[2])*(0<-b[0]*h[2]?-1:1),Math.acos(n)*d)}else Q(n),ne(n,h,t,c,k,f,e,g)}function oe(a,c,b,d){a=x(a);Q(a);pe(a,c,b,d)}function qe(a,c,b,d){var n=u().O[a];n.ea=n.ea||new Float32Array(3);n.ea[0]=c;n.ea[1]=b;n.ea[2]=d;a=x(a);Q(a)}function re(a,c,b,d){var n=
u().O[a];n.ka=n.ka||new Float32Array(3);n.ka[0]=c;n.ka[1]=b;n.ka[2]=d;a=x(a);Q(a)}function se(a,c,b,d){var n=ja(a);a=x(a);Q(a);te(n.g,c,b,d)}function ue(a,c,b,d){var n=ka(a);a=x(a);Q(a);ve(n.g,c,b,d)}function we(a,c){var b=x(a);xe(b,c)}function ye(a,c,b){a=x(a);ze(a,c,b)}function Ae(){var a=nb();if(a){var c=self.console;self.console={};console.log=function(){for(var a=[p.md],c=0;c<arguments.length;c++)a.push(arguments[c]);self.postMessage(a)};console.error=function(){for(var a=[p.gd],c=0;c<arguments.length;c++)a.push(arguments[c]);
self.postMessage(a)};console.profile=function(){c.profile.apply(c,arguments)};console.profileEnd=function(){c.profileEnd.apply(c,arguments)};fbmsg=function(){for(var a=[p.hd],c=0;c<arguments.length;c++)a.push(arguments[c]);self.postMessage(a)}}ob=Be(0);qb=K(0,0,0);rb=K(0,0,0);Ce();L=p.we(!a);p.qe(L,De);p.G(L,p.ld)}function Ce(){dc(60,0);var a=new Float32Array([0,0,0,1]);N(0,new Float32Array([1,1,0]),a,"RIGID_BODY",!1,!0,3,0,0,.04,.1,0,0,1,255,"BOX",{min_x:-1,min_y:-1,min_z:-1,max_x:1,max_y:1,max_z:1},
2,.5,1,[],!1);var c={center:new Float32Array([0,0,0]),radius:2};N(1,new Float32Array([-1,1,0]),a,"RIGID_BODY",!1,!0,3,0,0,.04,.1,0,0,1,255,"SPHERE",c,2,.5,1,[],!1);a=new Float32Array([-5,0,-5,5,0,-5,0,0,5]);Oa(10,a,null,new Float32Array([0,0,0]),0,0,0,0,1,255);for(c=a=0;100>c;c++)ec(G,a,la),a+=la;Ee();G=null;Ra=0}function ec(a,c,b){if(b=fc(b,3,la))for(var d=0;d<b;d++){var n=gc(c,d,b);hc(a);ic(la);d==b-1&&jc(a,n)}kc()}function dc(a,c){la=1/a;sb=c;Fe();G={O:{},S:[],mb:{},va:{},R:{},Va:[],lb:{Ta:null,
size:0},Ha:{},Oa:[],A:{},X:{},da:null}}function lc(){if(0==Da){var a=performance.now()/1E3;Ea||(Ea=a);var c=a-Ea;if(tb&&G){if(c&&sb){var b=1/c,d=Ra,n=Math.exp(-c/sb);Ra=(1-n)*b+n*d;p.G(L,p.kd,Math.round(Ra))}Da=fc(c,3,la);Sa=0}Ea=a}else a=gc(Ea,Sa,Da),hc(G),ic(la),jc(G,a),Sa==Da-1?(kc(),Da=0):Sa++;self.setTimeout(lc,1)}function hc(a){for(var c=0;c<a.S.length;c++){var b=a.S[c];b.ea&&Ge(b.g,b.ea[0],b.ea[1],b.ea[2]);b.ka&&He(b.g,b.ka[0],b.ka[1],b.ka[2])}}function jc(a,c){for(var b=0;b<a.S.length;b++){var d=
a.S[b],n=d.id;if(d.Ce&&d.Yb){a.A[n]?Ie(a.A[n].g,d.g,d.V,d.P,d.Za,d.Ya):Je(d.g,d.V,d.P,d.Za,d.Ya);var h;h=d;var t=I[h.Za/4],k=I[h.Za/4+1],f=I[h.Za/4+2],e=I[h.Ya/4],g=I[h.Ya/4+1],l=I[h.Ya/4+2];Ta(h)||h.F[0]!=t||h.F[1]!=k||h.F[2]!=f||h.D[0]!=e||h.D[1]!=g||h.D[2]!=l?(h.F[0]=t,h.F[1]=k,h.F[2]=f,h.D[0]=e,h.D[1]=g,h.D[2]=l,h=!0):h=!1;h&&(h=p.Aa(p.ic),h.ta=n,h.time=c,h.o=d.o,h.k=d.k,h.F=d.F,h.D=d.D,p.G(L,p.ic));d.Hb&&(h=Ke(d.g),h!=d.Ib&&p.G(L,p.ed,n,h),d.Ib=h)}}for(var m in a.va){b=a.va[m];d=b.cd;for(n=0;n<
d.length;n++)h=d[n],Le(b.g,n,h.V,h.P),Ta(h)&&(t=p.Aa(p.hb),t.kb=m,t.vb=n,t.o=h.o,t.k=h.k,p.G(L,p.hb));b=Me(b.g);p.G(L,p.jc,m,b)}for(var y in a.R){m=a.R[y];b=m.Ua;for(d=0;d<b.length;d++)n=b[d],Ne(m.g,d,n.V,n.P),Ta(n)&&(h=p.Aa(p.hb),h.kb=y,h.vb=d,h.o=n.o,h.k=n.k,p.G(L,p.hb));m=Oe(m.g);p.G(L,p.jc,y,m)}for(var A in a.X)for(y=a.X[A],m=y.Ua,b=0;b<m.length;b++)d=m[b],Pe(y.g,b,d.V,d.P),Ta(d)&&p.G(L,p.jd,A,b,d.o,d.k);A=a.lb.Ta;y=a.lb.size;A&&Qe(A,y);for(m=0;m<a.Va.length;m++)b=a.Va[m],d=b.Mb,n=b.Nb,h=Re(A,
y,d,n,qb,rb,ob),t=b.T,k=b.U,f=mb,e=cc,b.jb?(g=p.Aa(p.fc),Ua(qb,f),Ua(rb,e),mc(b,h,f,e)&&(l=I[ob>>2],d<n&&t>k?nc(f,e,l):d>n&&t<k&&nc(f,e,l),g.T=t,g.U=k,g.result=h,g.xa=f,g.wa=e,g.Jb=l,p.G(L,p.fc)),b.Ka[0]=f[0],b.Ka[1]=f[1],b.Ka[2]=f[2]):(g=p.Aa(p.ec),mc(b,h,f,e)&&(g.T=t,g.U=k,g.result=h,p.G(L,p.ec))),b.tb=h;for(A=0;A<a.Oa.length;A++){y=a.Oa[A];m=y.Ae;b=y.jb;d=Se(y.xe,y.Ac,y.Bc,y.ve,y.se,b,y.Re,m);for(n=0;n<d;n++){a:{h=Te(m,n);t=u();for(k=0;k<t.S.length;k++)if(f=t.S[k],f.g==h){t=f.id;break a}t=null}k=
Ue(m,n);b?(h=p.Aa(p.hc),h.id=y.id,h.ua=t,h.Ba=k,h.Ea=c,t=y.ze,Ve(m,n,t),Ua(t,h.Da),t=y.ye,We(m,n,t),Ua(t,h.Ca),p.G(L,p.hc)):(h=p.Aa(p.gc),h.id=y.id,h.ua=t,h.Ba=k,h.Ea=c,p.G(L,p.gc))}y.re&&(lb(y.id,a),A--)}p.bf(L)}function nc(a,c,b){a[0]+=c[0]*b;a[1]+=c[1]*b;a[2]+=c[2]*b;c[0]*=-1;c[1]*=-1;c[2]*=-1}function mc(a,c,b,d){return a.jb?c!=a.tb||b[0]!=a.Ka[0]||b[1]!=a.Ka[1]||b[2]!=a.Ka[2]||d[0]!=a.Rb[2]||d[1]!=a.Rb[2]||d[2]!=a.Rb[2]:c!=a.tb}function Ua(a,c){for(var b=0;b<c.length;b++)c[b]=I[(a>>2)+b]}function ac(a,
c){for(var b=0;b<a.length;b++)I[(c>>2)+b]=a[b]}function Ta(a){var c=I[a.V/4],b=I[a.V/4+1],d=I[a.V/4+2],n=I[a.P/4],h=I[a.P/4+1],f=I[a.P/4+2],k=I[a.P/4+3];if(a.o[0]==c&&a.o[1]==b&&a.o[2]==d&&a.k[0]==n&&a.k[1]==h&&a.k[2]==f&&a.k[3]==k)return!1;a.o[0]=c;a.o[1]=b;a.o[2]=d;a.k[0]=n;a.k[1]=h;a.k[2]=f;a.k[3]=k;return!0}function Xe(){function a(a){E=E+a+"\n"}for(var c=u(),b=Fa(c.mb),d=Fa(c.va),n=Fa(c.R),h=Fa(c.A),f=c.Va.length,k=c.Oa.length,e=Fa(c.X),g=c.S.length,l=0,m={},q=0;q<g;q++){var y=c.S[q],A=wa(Ye(y.g));
m[A]=m[A]||0;m[A]++;l+=y.Tb}var E="";a("Bodies: "+g+" "+JSON.stringify(m).replace("{","(").replace("}",")").replace(/\"/g,"").toLowerCase());a("Triangles: "+l);a("Characters: "+h);a("Cars: "+d);a("Boats: "+n);a("Floaters: "+e);a("Constraints: "+b);a("Collision Tests: "+f);a("Ray Tests: "+k);p.G(L,p.fd,E)}function Fa(a){var c=0,b;for(b in a)c++;return c}function De(a,c,b){switch(c){case p.Od:self.performance||(self.performance={});if(!self.performance.now){var d=b[1];self.performance.now=function(){return Date.now()-
d}}dc(b[2],b[3]);nb()&&lc();break;case p.je:ec(G,b[1],b[2]);break;case p.Qd:p.G(L,p.nd,b[1],performance.now());break;case p.Mh:set_active_world(b[1]);break;case p.Pd:tb=!1;break;case p.Vd:tb=!0;break;case p.Cd:Oa.apply(this,b.slice(1));break;case p.Ad:qa.apply(this,b.slice(1));break;case p.ud:N.apply(this,b.slice(1));break;case p.Rd:ra(b[1]);break;case p.yd:ha.apply(this,b.slice(1));break;case p.Td:T(b[1]);break;case p.vd:sa(b[1],b[2],b[3],b[4],b[5],b[6]);break;case p.td:ta(b[1],b[2],b[3],b[4]);break;
case p.zd:ua(b[1],b[2],b[3],b[4]);break;case p.qd:va.apply(this,b.slice(1));break;case p.pd:hb.apply(this,b.slice(1));break;case p.rd:Xc.apply(this,b.slice(1));break;case p.wd:Yc.apply(this,b.slice(1));break;case p.xd:Td(b[1],b[2]);break;case p.Sd:Vd(b[1]);break;case p.Fd:Xd(b[1]);break;case p.Kd:Yd(b[1]);break;case p.Bd:Zd(b[1],b[2],b[3],b[4],b[5],b[6],b[7],b[8],b[9]);break;case p.Hd:be(b[1],b[2],b[3]);break;case p.Ud:ae(b[1]);break;case p.Nd:ie(b[1]);break;case p.Md:Qb(b[1]);break;case p.od:le(b[1]);
break;case p.fe:bc(b.ta,b.o,b.k);break;case p.ee:oe(b[1],b[2],b[3],b[4]);break;case p.Ed:qe(b[1],b[2],b[3],b[4]);break;case p.Gd:re(b[1],b[2],b[3],b[4]);break;case p.Yd:m(b[1],b[2],b[3]);break;case p.Zd:e(b[1],b[2]);break;case p.ce:Zc(b[1],b[2]);break;case p.ae:q(b[1],b[2]);break;case p.Wd:Id(b[1],b[2]);break;case p.Id:Kd(b[1]);break;case p.$d:$b(b[1],b[2],b[3]);break;case p.Xd:Nd(b[1],b[2]);break;case p.be:Pd(b[1],b[2]);break;case p.Jd:Rd(b[1],b[2],b[3]);break;case p.ie:se(b[1],b[2],b[3],b[4]);break;
case p.he:ue(b[1],b[2],b[3],b[4]);break;case p.de:we(b[1],b[2]);break;case p.Nh:ye(b[1],b[2],b[3]);break;case p.Dd:ce.apply(this,b.slice(1));break;case p.sd:ee.apply(this,b.slice(1));break;case p.ge:ge(b[1]);break;case p.Ld:Xe();break;default:throw"Unknown message "+c;}}function nb(){return"function"===typeof importScripts}function oc(a){eval.call(null,a)}function J(a,c){a||ca("Assertion failed: "+c)}function pc(a){var c=d["_"+a];if(!c)try{c=eval("_"+a)}catch(b){}J(c,"Cannot call unknown function "+
a+" (perhaps LLVM optimizations or closure removed it?)");return c}function qc(a,c,b){b=b||"i8";"*"===b.charAt(b.length-1)&&(b="i32");switch(b){case "i1":D[a>>0]=c;break;case "i8":D[a>>0]=c;break;case "i16":ma[a>>1]=c;break;case "i32":z[a>>2]=c;break;case "i64":ub=[c>>>0,(xa=c,1<=+rc(xa)?0<xa?(Ze(+vb(xa/4294967296),4294967295)|0)>>>0:~~+$e((xa-+(~~xa>>>0))/4294967296)>>>0:0)];z[a>>2]=ub[0];z[a+4>>2]=ub[1];break;case "float":I[a>>2]=c;break;case "double":Ga[a>>3]=c;break;default:ca("invalid type for setValue: "+
b)}}function sc(a,c){c=c||"i8";"*"===c.charAt(c.length-1)&&(c="i32");switch(c){case "i1":return D[a>>0];case "i8":return D[a>>0];case "i16":return ma[a>>1];case "i32":return z[a>>2];case "i64":return z[a>>2];case "float":return I[a>>2];case "double":return Ga[a>>3];default:ca("invalid type for setValue: "+c)}return null}function Z(a,c,b,d){var n,h;"number"===typeof a?(n=!0,h=a):(n=!1,h=a.length);var f="string"===typeof c?c:null;b=4==b?d:[da,r.yb,r.Zb,r.Ja][void 0===b?2:b](Math.max(h,f?1:c.length));
if(n){d=b;J(0==(b&3));for(a=b+(h&-4);d<a;d+=4)z[d>>2]=0;for(a=b+h;d<a;)D[d++>>0]=0;return b}if("i8"===f)return a.subarray||a.slice?P.set(a,b):P.set(new Uint8Array(a),b),b;d=0;for(var k,e;d<h;){var g=a[d];"function"===typeof g&&(g=r.ni(g));n=f||c[d];0===n?d++:("i64"==n&&(n="i32"),qc(b+d,g,n),e!==n&&(k=r.Gc(n),e=n),d+=k)}return b}function wa(a,c){if(0===c||!a)return"";for(var b=0,v,n=0;;){v=P[a+n>>0];b|=v;if(0==v&&!c)break;n++;if(c&&n==c)break}c||(c=n);v="";if(128>b){for(;0<c;)b=String.fromCharCode.apply(String,
P.subarray(a,a+Math.min(c,1024))),v=v?v+b:b,a+=1024,c-=1024;return v}return d.UTF8ToString(a)}function tc(a,c){for(var b,d,n,h,f,k,e="";;){b=a[c++];if(!b)return e;b&128?(d=a[c++]&63,192==(b&224)?e+=String.fromCharCode((b&31)<<6|d):(n=a[c++]&63,224==(b&240)?b=(b&15)<<12|d<<6|n:(h=a[c++]&63,240==(b&248)?b=(b&7)<<18|d<<12|n<<6|h:(f=a[c++]&63,248==(b&252)?b=(b&3)<<24|d<<18|n<<12|h<<6|f:(k=a[c++]&63,b=(b&1)<<30|d<<24|n<<18|h<<12|f<<6|k))),65536>b?e+=String.fromCharCode(b):(b-=65536,e+=String.fromCharCode(55296|
b>>10,56320|b&1023)))):e+=String.fromCharCode(b)}}function wb(a,c,b,d){if(!(0<d))return 0;var n=b;d=b+d-1;for(var h=0;h<a.length;++h){var f=a.charCodeAt(h);55296<=f&&57343>=f&&(f=65536+((f&1023)<<10)|a.charCodeAt(++h)&1023);if(127>=f){if(b>=d)break;c[b++]=f}else{if(2047>=f){if(b+1>=d)break;c[b++]=192|f>>6}else{if(65535>=f){if(b+2>=d)break;c[b++]=224|f>>12}else{if(2097151>=f){if(b+3>=d)break;c[b++]=240|f>>18}else{if(67108863>=f){if(b+4>=d)break;c[b++]=248|f>>24}else{if(b+5>=d)break;c[b++]=252|f>>30;
c[b++]=128|f>>24&63}c[b++]=128|f>>18&63}c[b++]=128|f>>12&63}c[b++]=128|f>>6&63}c[b++]=128|f&63}}c[b]=0;return b-n}function uc(a){for(var c=0,b=0;b<a.length;++b){var d=a.charCodeAt(b);55296<=d&&57343>=d&&(d=65536+((d&1023)<<10)|a.charCodeAt(++b)&1023);127>=d?++c:c=2047>=d?c+2:65535>=d?c+3:2097151>=d?c+4:67108863>=d?c+5:c+6}return c}function af(a){function c(b,d,h){d=d||Infinity;var f="",n=[],v;if("N"===a[k]){k++;"K"===a[k]&&k++;for(v=[];"E"!==a[k];)if("S"===a[k]){k++;var e=a.indexOf("_",k);v.push(l[a.substring(k,
e)||0]||"?");k=e+1}else if("C"===a[k])v.push(v[v.length-1]),k+=2;else{var e=parseInt(a.substr(k)),t=e.toString().length;if(!e||!t){k--;break}var p=a.substr(k+t,e);v.push(p);l.push(p);k+=t+e}k++;v=v.join("::");d--;if(0===d)return b?[v]:v}else if(("K"===a[k]||m&&"L"===a[k])&&k++,e=parseInt(a.substr(k)))t=e.toString().length,v=a.substr(k+t,e),k+=t+e;m=!1;"I"===a[k]?(k++,e=c(!0),t=c(!0,1,!0),f+=t[0]+" "+v+"<"+e.join(", ")+">"):f=v;a:for(;k<a.length&&0<d--;)if(v=a[k++],v in g)n.push(g[v]);else switch(v){case "P":n.push(c(!0,
1,!0)[0]+"*");break;case "R":n.push(c(!0,1,!0)[0]+"&");break;case "L":k++;e=a.indexOf("E",k)-k;n.push(a.substr(k,e));k+=e+2;break;case "A":e=parseInt(a.substr(k));k+=e.toString().length;if("_"!==a[k])throw"?";k++;n.push(c(!0,1,!0)[0]+" ["+e+"]");break;case "E":break a;default:f+="?"+v;break a}h||1!==n.length||"void"!==n[0]||(n=[]);return b?(f&&n.push(f+"?"),n):f+("("+n.join(", ")+")")}var b=!!d.___cxa_demangle;if(b)try{var f=da(a.length);xb(a.substr(1),f);var n=da(4),h=d.___cxa_demangle(f,0,0,n);
if(0===sc(n,"i32")&&h)return wa(h)}catch(e){}finally{f&&yb(f),n&&yb(n),h&&yb(h)}var k=3,g={v:"void",b:"bool",c:"char",s:"short",i:"int",l:"long",f:"float",d:"double",w:"wchar_t",a:"signed char",h:"unsigned char",t:"unsigned short",j:"unsigned int",m:"unsigned long",x:"long long",y:"unsigned long long",z:"..."},l=[],m=!0,f=a;try{if("Object._main"==a||"_main"==a)return"main()";"number"===typeof a&&(a=wa(a));if("_"!==a[0]||"_"!==a[1]||"Z"!==a[2])return a;switch(a[3]){case "n":return"operator new()";
case "d":return"operator delete()"}f=c()}catch(p){f+="?"}0<=f.indexOf("?")&&!b&&r.Qa("warning: a problem occurred in builtin C++ name demangling; build with -s DEMANGLE_SUPPORT=1 to link in libcxxabi demangling");return f}function bf(a){return a.replace(/__Z[\w\d_]+/g,function(a){var b=af(a);return a===b?a:a+" ["+b+"]"})}function vc(){var a=bf,c;a:{c=Error();if(!c.stack){try{throw Error(0);}catch(b){c=b}if(!c.stack){c="(no stack trace available)";break a}}c=c.stack.toString()}return a(c)}function cf(a){0<
a%4096&&(a+=4096-a%4096);return a}function ya(a){for(;0<a.length;){var c=a.shift();if("function"==typeof c)c();else{var b=c.oa;"number"===typeof b?void 0===c.sa?r.za("v",b):r.za("vi",b,[c.sa]):b(void 0===c.sa?null:c.sa)}}}function wc(a){zb.unshift(a)}function xc(a){yc.unshift(a)}function Ha(a,c,b){b=Array(0<b?b:uc(a)+1);a=wb(a,b,0,b.length);c&&(b.length=a);return b}function xb(a,c,b){a=Ha(a,b);for(b=0;b<a.length;)D[c+b>>0]=a[b],b+=1}function zc(a,c){for(var b=0;b<a.length;b++)D[c++>>0]=a[b]}function Ac(a,
c,b){for(var d=0;d<a.length;++d)D[c++>>0]=a.charCodeAt(d);b||(D[c>>0]=0)}function Ab(a,c){return 0<=a?a:32>=c?2*Math.abs(1<<c-1)+a:Math.pow(2,c)+a}function Bc(a,c){if(0>=a)return a;var b=32>=c?Math.abs(1<<c-1):Math.pow(2,c-1);a>=b&&(32>=c||a>b)&&(a=-2*b+a);return a}function Bb(){ea++;d.monitorRunDependencies&&d.monitorRunDependencies(ea)}function Cb(){ea--;d.monitorRunDependencies&&d.monitorRunDependencies(ea);if(0==ea&&(null!==Db&&(clearInterval(Db),Db=null),Ia)){var a=Ia;Ia=null;a()}}function za(){return!!za.ca}
function Ja(){var a=M.sb;if(!a)return(f.setTempRet0(0),0)|0;var c=M.ia[a],b=c.type;if(!b)return(f.setTempRet0(0),a)|0;var e=Array.prototype.slice.call(arguments);d.___cxa_is_pointer_type(b);Ja.q||(Ja.q=da(4));z[Ja.q>>2]=a;for(var a=Ja.q,n=0;n<e.length;n++)if(e[n]&&d.___cxa_can_catch(e[n],b,a))return a=z[a>>2],c.oc=a,(f.setTempRet0(e[n]),a)|0;a=z[a>>2];return(f.setTempRet0(b),a)|0}function Ka(a,c){Ka.q||(Ka.q={});a in Ka.q||(r.za("v",c),Ka.q[a]=1)}function La(a){return z[Va>>2]=a}function Wa(a,c,b){a=
(void 0).Le(a);if(!a)return La(Aa.Cb),-1;try{return(void 0).write(a,D,c,b)}catch(d){return(void 0).Pe(d),-1}}function Eb(a){return(a=(void 0).Hc(a))?a.ji:-1}function Xa(a,c){var b=Ab(a&255);D[Xa.q>>0]=b;var d=Eb(c);if(-1==Wa(d,Xa.q,1)){if(b=(void 0).Hc(c))b.error=!0;return-1}return b}function Ya(a,c){l.n.$b=a;l.n.Ab=c;if(!l.n.oa)return 1;0==a?(l.n.Ia=function(){setTimeout(l.n.Wb,c)},l.n.method="timeout"):1==a&&(l.n.Ia=function(){l.requestAnimationFrame(l.n.Wb)},l.n.method="rAF");return 0}function Cc(a,
c,b,f,n){d.noExitRuntime=!0;J(!l.n.oa,"emscripten_set_main_loop: there can only be one main loop function at once: call emscripten_cancel_main_loop to cancel the previous one before setting a new one with different parameters.");l.n.oa=a;l.n.sa=f;var h=l.n.Wa;l.n.Wb=function(){if(!U)if(0<l.n.Wc.length){var c=Date.now(),b=l.n.Wc.shift();b.oa(b.sa);if(l.n.wb){var n=l.n.wb,e=0==n%1?n-1:Math.floor(n);l.n.wb=b.di?e:(8*n+(e+.5))/9}console.log('main loop blocker "'+b.name+'" took '+(Date.now()-c)+" ms");
l.n.sf();setTimeout(l.n.Wb,0)}else h<l.n.Wa||(l.n.Lb=l.n.Lb+1|0,1==l.n.$b&&1<l.n.Ab&&0!=l.n.Lb%l.n.Ab?l.n.Ia():("timeout"===l.n.method&&d.Kb&&(d.Ga("Looks like you are rendering without using requestAnimationFrame for the main loop. You should use 0 for the frame rate in emscripten_set_main_loop in order to use requestAnimationFrame, as that can greatly improve your frame rates!"),l.n.method=""),l.n.jf(function(){"undefined"!==typeof f?r.za("vi",a,[f]):r.za("v",a)}),h<l.n.Wa||("object"===typeof SDL&&
SDL.audio&&SDL.audio.df&&SDL.audio.df(),l.n.Ia())))};n||(c&&0<c?Ya(0,1E3/c):Ya(1,1),l.n.Ia());if(b)throw"SimulateInfiniteLoop";}function Dc(a,c,b,d){b=b*c;if(0==b)return 0;var f=Eb(d);a=Wa(f,a,b);if(-1==a){if(c=(void 0).Hc(d))c.error=!0;return 0}return a/c|0}function Ec(a){return 0>a||0===a&&-Infinity===1/a}function Fc(a,c){function b(a){f=r.cf(f,a);"double"===a?(a=Ga[c+f>>3],f+=8):"i64"==a?(a=[z[c+f>>2],z[c+(f+4)>>2]],f+=8):(J(0===(f&3)),a=z[c+f>>2],f+=4);return a}J(0===(c&3));for(var d=a,f=0,h=
[],e,k;;){var g=d;e=D[d>>0];if(0===e)break;k=D[d+1>>0];if(37==e){var l=!1,m=!1,p=!1,q=!1,y=!1;a:for(;;){switch(k){case 43:l=!0;break;case 45:m=!0;break;case 35:p=!0;break;case 48:if(q)break a;else{q=!0;break}case 32:y=!0;break;default:break a}d++;k=D[d+1>>0]}var A=0;if(42==k)A=b("i32"),d++,k=D[d+1>>0];else for(;48<=k&&57>=k;)A=10*A+(k-48),d++,k=D[d+1>>0];var E=!1,C=-1;if(46==k){C=0;E=!0;d++;k=D[d+1>>0];if(42==k)C=b("i32"),d++;else for(;;){k=D[d+1>>0];if(48>k||57<k)break;C=10*C+(k-48);d++}k=D[d+1>>
0]}0>C&&(C=6,E=!1);var B;switch(String.fromCharCode(k)){case "h":k=D[d+2>>0];104==k?(d++,B=1):B=2;break;case "l":k=D[d+2>>0];108==k?(d++,B=8):B=4;break;case "L":case "q":case "j":B=8;break;case "z":case "t":case "I":B=4;break;default:B=null}B&&d++;k=D[d+1>>0];switch(String.fromCharCode(k)){case "d":case "i":case "u":case "o":case "x":case "X":case "p":g=100==k||105==k;B=B||4;var O=e=b("i"+8*B),w;8==B&&(e=r.We(e[0],e[1],117==k));4>=B&&(e=(g?Bc:Ab)(e&Math.pow(256,B)-1,8*B));var u=Math.abs(e),g="";if(100==
k||105==k)8==B&&Ma?w=Ma.stringify(O[0],O[1],null):w=Bc(e,8*B).toString(10);else if(117==k)8==B&&Ma?w=Ma.stringify(O[0],O[1],!0):w=Ab(e,8*B).toString(10),e=Math.abs(e);else if(111==k)w=(p?"0":"")+u.toString(8);else if(120==k||88==k){g=p&&0!=e?"0x":"";if(8==B&&Ma)if(O[1]){w=(O[1]>>>0).toString(16);for(p=(O[0]>>>0).toString(16);8>p.length;)p="0"+p;w+=p}else w=(O[0]>>>0).toString(16);else if(0>e){e=-e;w=(u-1).toString(16);O=[];for(p=0;p<w.length;p++)O.push((15-parseInt(w[p],16)).toString(16));for(w=O.join("");w.length<
2*B;)w="f"+w}else w=u.toString(16);88==k&&(g=g.toUpperCase(),w=w.toUpperCase())}else 112==k&&(0===u?w="(nil)":(g="0x",w=u.toString(16)));if(E)for(;w.length<C;)w="0"+w;0<=e&&(l?g="+"+g:y&&(g=" "+g));"-"==w.charAt(0)&&(g="-"+g,w=w.substr(1));for(;g.length+w.length<A;)m?w+=" ":q?w="0"+w:g=" "+g;w=g+w;w.split("").forEach(function(a){h.push(a.charCodeAt(0))});break;case "f":case "F":case "e":case "E":case "g":case "G":e=b("double");if(isNaN(e))w="nan",q=!1;else if(isFinite(e)){E=!1;B=Math.min(C,20);if(103==
k||71==k)E=!0,C=C||1,B=parseInt(e.toExponential(B).split("e")[1],10),C>B&&-4<=B?(k=(103==k?"f":"F").charCodeAt(0),C-=B+1):(k=(103==k?"e":"E").charCodeAt(0),C--),B=Math.min(C,20);if(101==k||69==k)w=e.toExponential(B),/[eE][-+]\d$/.test(w)&&(w=w.slice(0,-1)+"0"+w.slice(-1));else if(102==k||70==k)w=e.toFixed(B),0===e&&Ec(e)&&(w="-"+w);g=w.split("e");if(E&&!p)for(;1<g[0].length&&-1!=g[0].indexOf(".")&&("0"==g[0].slice(-1)||"."==g[0].slice(-1));)g[0]=g[0].slice(0,-1);else for(p&&-1==w.indexOf(".")&&(g[0]+=
".");C>B++;)g[0]+="0";w=g[0]+(1<g.length?"e"+g[1]:"");69==k&&(w=w.toUpperCase());0<=e&&(l?w="+"+w:y&&(w=" "+w))}else w=(0>e?"-":"")+"inf",q=!1;for(;w.length<A;)m?w+=" ":!q||"-"!=w[0]&&"+"!=w[0]?w=(q?"0":" ")+w:w=w[0]+"0"+w.slice(1);97>k&&(w=w.toUpperCase());w.split("").forEach(function(a){h.push(a.charCodeAt(0))});break;case "s":q=(l=b("i8*"))?Gc(l):6;E&&(q=Math.min(q,C));if(!m)for(;q<A--;)h.push(32);if(l)for(p=0;p<q;p++)h.push(P[l++>>0]);else h=h.concat(Ha("(null)".substr(0,q),!0));if(m)for(;q<A--;)h.push(32);
break;case "c":for(m&&h.push(b("i8"));0<--A;)h.push(32);m||h.push(b("i8"));break;case "n":m=b("i32*");z[m>>2]=h.length;break;case "%":h.push(e);break;default:for(p=g;p<d+2;p++)h.push(D[p>>0])}d+=2}else h.push(e),d+=1}return h}function Hc(a,c,b){b=Fc(c,b);c=r.zb();a=Dc(Z(b,"i8",1),1,b.length,a);r.fb(c);return a}function Za(a){var c=Za;c.q||(V=cf(V),c.q=!0,J(r.Ja),c.ca=r.Ja,r.Ja=function(){ca("cannot dynamically allocate, sbrk now has control")});var b=V;return 0==a||c.ca(a)?b:4294967295}function da(a){return r.Ja(a+
8)+8&4294967288}function na(a){this.name="ExitStatus";this.message="Program terminated with exit("+a+")";this.status=a}function Fb(a){function c(){if(!d.calledRun&&(d.calledRun=!0,!U)){Na||(Na=!0,ya($a));ya(Ic);ab&&null!==bb&&d.Ga("pre-main prep time: "+(Date.now()-bb)+" ms");if(d.onRuntimeInitialized)d.onRuntimeInitialized();d._main&&Jc&&d.callMain(a);if(d.postRun)for("function"==typeof d.postRun&&(d.postRun=[d.postRun]);d.postRun.length;)xc(d.postRun.shift());ya(yc)}}a=a||d.arguments;null===bb&&
(bb=Date.now());if(!(0<ea)){if(d.preRun)for("function"==typeof d.preRun&&(d.preRun=[d.preRun]);d.preRun.length;)wc(d.preRun.shift());ya(zb);0<ea||d.calledRun||(d.setStatus?(d.setStatus("Running..."),setTimeout(function(){setTimeout(function(){d.setStatus("")},1);c()},1)):c())}}function Kc(a,c){if(!c||!d.noExitRuntime){if(!d.noExitRuntime&&(U=!0,W=Lc,ya(Mc),d.onExit))d.onExit(a);cb?(process.stdout.once("drain",function(){process.exit(a)}),console.log(" "),setTimeout(function(){process.exit(a)},500)):
Gb&&"function"===typeof quit&&quit(a);throw new na(a);}}function ca(a){void 0!==a?(d.print(a),d.Ga(a),a=JSON.stringify(a)):a="";U=!0;var c="abort("+a+") at "+vc()+"\nIf this abort() is unexpected, build with -s ASSERTIONS=1 which can give more information.";Nc&&Nc.forEach(function(b){c=b(c,a)});throw c;}var p=F("__ipc"),la=1/60,tb=!0,Da=0,Sa=0,Ea=0,sb=0,G=null,L=null,Ra=0,mb=new Float32Array(3),cc=new Float32Array(3),ob=null,qb=null,rb=null,d={onRuntimeInitialized:function(){Ae()}};d.locateFile=nb()?
null:function(){for(var a=b4w.get_namespace(F),c=0;c<b4w.worker_namespaces.length;c+=2)if(b4w.worker_namespaces[c+1]==a)return b4w.require("config",b4w.worker_namespaces[c]).get("physics_uranium_path")+".mem";return"NOT_FOUND"};d||(d=eval("(function() { try { return Module || {} } catch(e) { return {} } })()"));var db={},fa;for(fa in d)d.hasOwnProperty(fa)&&(db[fa]=d[fa]);var ab="object"===typeof window,cb="object"===typeof process&&"function"===typeof F&&!ab,Hb="function"===typeof importScripts,
Gb=!ab&&!cb&&!Hb;if(cb){d.print||(d.print=function(a){process.stdout.write(a+"\n")});d.printErr||(d.printErr=function(a){process.stderr.write(a+"\n")});var Oc=F("fs"),Pc=F("path");d.read=function(a,c){a=Pc.normalize(a);var b=Oc.readFileSync(a);b||a==Pc.resolve(a)||(a=path.join(__dirname,"..","src",a),b=Oc.readFileSync(a));b&&!c&&(b=b.toString());return b};d.readBinary=function(a){return d.read(a,!0)};d.load=function(a){oc(read(a))};d.thisProgram||(d.thisProgram=1<process.argv.length?process.argv[1].replace(/\\/g,
"/"):"unknown-program");d.arguments=process.argv.slice(2);"undefined"!==typeof module&&(module.exports=d);process.on("uncaughtException",function(a){if(!(a instanceof na))throw a;});d.inspect=function(){return"[Emscripten Module object]"}}else if(Gb)d.print||(d.print=print),"undefined"!=typeof printErr&&(d.printErr=printErr),d.read="undefined"!=typeof read?read:function(){throw"no read() available (jsc?)";},d.readBinary=function(a){if("function"===typeof readbuffer)return new Uint8Array(readbuffer(a));
a=read(a,"binary");J("object"===typeof a);return a},"undefined"!=typeof scriptArgs?d.arguments=scriptArgs:"undefined"!=typeof arguments&&(d.arguments=arguments),eval("if (typeof gc === 'function' && gc.toString().indexOf('[native code]') > 0) var gc = undefined");else if(ab||Hb)d.read=function(a){var c=new XMLHttpRequest;c.open("GET",a,!1);c.send(null);return c.responseText},"undefined"!=typeof arguments&&(d.arguments=arguments),"undefined"!==typeof console?(d.print||(d.print=function(a){console.log(a)}),
d.printErr||(d.printErr=function(a){console.log(a)})):d.print||(d.print=function(){}),Hb&&(d.load=importScripts),"undefined"===typeof d.setWindowTitle&&(d.setWindowTitle=function(a){document.title=a});else throw"Unknown runtime environment. Where are we?";!d.load&&d.read&&(d.load=function(a){oc(d.read(a))});d.print||(d.print=function(){});d.printErr||(d.printErr=d.print);d.arguments||(d.arguments=[]);d.thisProgram||(d.thisProgram="./this.program");d.print=d.print;d.Ga=d.printErr;d.preRun=[];d.postRun=
[];for(fa in db)db.hasOwnProperty(fa)&&(d[fa]=db[fa]);var r={nf:function(a){Qc=a},Me:function(){return Qc},zb:function(){return W},fb:function(a){W=a},Gc:function(a){switch(a){case "i1":case "i8":return 1;case "i16":return 2;case "i32":return 4;case "i64":return 8;case "float":return 4;case "double":return 8;default:return"*"===a[a.length-1]?r.qa:"i"===a[0]?(a=parseInt(a.substr(1)),J(0===a%8),a/8):0}},Ke:function(a){return Math.max(r.Gc(a),r.qa)},Oh:16,cf:function(a,c){"double"===c||"i64"===c?a&7&&
(J(4===(a&7)),a+=4):J(0===(a&3));return a},ki:function(a,c,b){return b||"i64"!=a&&"double"!=a?a?Math.min(c||(a?r.Ke(a):0),r.qa):Math.min(c,8):8},za:function(a,c,b){return b&&b.length?(b.splice||(b=Array.prototype.slice.call(b)),b.splice(0,0,c),d["dynCall_"+a].apply(null,b)):d["dynCall_"+a].call(null,c)},ob:[],le:function(a){for(var c=0;c<r.ob.length;c++)if(!r.ob[c])return r.ob[c]=a,2*(1+c);throw"Finished up all reserved function pointers. Use a higher value for RESERVED_FUNCTION_POINTERS.";},ff:function(a){r.ob[(a-
2)/2]=null},Qa:function(a){r.Qa.q||(r.Qa.q={});r.Qa.q[a]||(r.Qa.q[a]=1,d.Ga(a))},Ob:{},mi:function(a,c){J(c);r.Ob[c]||(r.Ob[c]={});var b=r.Ob[c];b[a]||(b[a]=function(){return r.za(c,a,arguments)});return b[a]},li:function(){throw"You must build with -s RETAIN_COMPILER_SETTINGS=1 for Runtime.getCompilerSetting or emscripten_get_compiler_setting to work";},yb:function(a){var c=W;W=W+a|0;W=W+15&-16;return c},Zb:function(a){var c=oa;oa=oa+a|0;oa=oa+15&-16;return c},Ja:function(a){var c=V;V=V+a|0;V=V+
15&-16;if(a=V>=pa)ca("Cannot enlarge memory arrays. Either (1) compile with -s TOTAL_MEMORY=X with X higher than the current value "+pa+", (2) compile with ALLOW_MEMORY_GROWTH which adjusts the size at runtime but prevents some optimizations, or (3) set Module.TOTAL_MEMORY before the program runs."),a=!0;return a?(V=c,0):c},Gb:function(a,c){return Math.ceil(a/(c?c:16))*(c?c:16)},We:function(a,c,b){return b?+(a>>>0)+4294967296*+(c>>>0):+(a>>>0)+4294967296*+(c|0)},Jh:8,qa:4,Sh:0};d.Runtime=r;r.addFunction=
r.le;r.removeFunction=r.ff;var U=!1,xa,ub,Qc,Rc,Sc;(function(){function a(a){a=a.toString().match(d).slice(1);return{arguments:a[0],body:a[1],returnValue:a[2]}}var c={stackSave:function(){r.zb()},stackRestore:function(){r.fb()},arrayToC:function(a){var c=r.yb(a.length);zc(a,c);return c},stringToC:function(a){var c=0;null!==a&&void 0!==a&&0!==a&&(c=r.yb((a.length<<2)+1),xb(a,c));return c}},b={string:c.stringToC,array:c.arrayToC};Sc=function(a,c,d,f,h){a=pc(a);var e=[],n=0;if(f)for(var y=0;y<f.length;y++){var A=
b[d[y]];A?(0===n&&(n=r.zb()),e[y]=A(f[y])):e[y]=f[y]}d=a.apply(null,e);"string"===c&&(d=wa(d));if(0!==n){if(h&&h.async){EmterpreterAsync.Yh.push(function(){r.fb(n)});return}r.fb(n)}return d};var d=/^function\s*\(([^)]*)\)\s*{\s*([^*]*?)[\s;]*(?:return\s*(.*?)[;\s]*)?}$/,f={},h;for(h in c)c.hasOwnProperty(h)&&(f[h]=a(c[h]));Rc=function(c,b,d){d=d||[];var h=pc(c);c=d.every(function(a){return"number"===a});var e="string"!==b;if(e&&c)return h;var g=d.map(function(a,c){return"$"+c});b="(function("+g.join(",")+
") {";var v=d.length;if(!c){b+="var stack = "+f.stackSave.body+";";for(var y=0;y<v;y++){var A=g[y],E=d[y];"number"!==E&&(E=f[E+"ToC"],b+="var "+E.arguments+" = "+A+";",b+=E.body+";",b+=A+"="+E.returnValue+";")}}d=a(function(){return h}).returnValue;b+="var ret = "+d+"("+g.join(",")+");";e||(d=a(function(){return wa}).returnValue,b+="ret = "+d+"(ret);");c||(b+=f.stackRestore.body.replace("()","(stack)")+";");return eval(b+"return ret})")}})();d.cwrap=Rc;d.ccall=Sc;d.setValue=qc;d.getValue=sc;d.ALLOC_NORMAL=
0;d.ALLOC_STACK=1;d.ALLOC_STATIC=2;d.ALLOC_DYNAMIC=3;d.ALLOC_NONE=4;d.allocate=Z;d.getMemory=function(a){return Tc?"undefined"!==typeof Za&&!Za.q||!Na?r.Ja(a):da(a):r.Zb(a)};d.Pointer_stringify=wa;d.AsciiToString=function(a){for(var c="";;){var b=D[a++>>0];if(!b)return c;c+=String.fromCharCode(b)}};d.stringToAscii=function(a,c){return Ac(a,c,!1)};d.UTF8ArrayToString=tc;d.UTF8ToString=function(a){return tc(P,a)};d.stringToUTF8Array=wb;d.stringToUTF8=function(a,c,b){return wb(a,P,c,b)};d.lengthBytesUTF8=
uc;d.UTF16ToString=function(a){for(var c=0,b="";;){var d=ma[a+2*c>>1];if(0==d)return b;++c;b+=String.fromCharCode(d)}};d.stringToUTF16=function(a,c,b){void 0===b&&(b=2147483647);if(2>b)return 0;b-=2;var d=c;b=b<2*a.length?b/2:a.length;for(var f=0;f<b;++f)ma[c>>1]=a.charCodeAt(f),c+=2;ma[c>>1]=0;return c-d};d.lengthBytesUTF16=function(a){return 2*a.length};d.UTF32ToString=function(a){for(var c=0,b="";;){var d=z[a+4*c>>2];if(0==d)return b;++c;65536<=d?(d=d-65536,b+=String.fromCharCode(55296|d>>10,56320|
d&1023)):b+=String.fromCharCode(d)}};d.stringToUTF32=function(a,c,b){void 0===b&&(b=2147483647);if(4>b)return 0;var d=c;b=d+b-4;for(var f=0;f<a.length;++f){var h=a.charCodeAt(f);if(55296<=h&&57343>=h)var e=a.charCodeAt(++f),h=65536+((h&1023)<<10)|e&1023;z[c>>2]=h;c+=4;if(c+4>b)break}z[c>>2]=0;return c-d};d.lengthBytesUTF32=function(a){for(var c=0,b=0;b<a.length;++b){var d=a.charCodeAt(b);55296<=d&&57343>=d&&++b;c+=4}return c};d.stackTrace=vc;for(var D,P,ma,Uc,z,eb,I,Ga,fb=0,oa=0,Tc=!1,Vc=0,W=0,Ib=
0,Wc=0,V=0,Jb=d.TOTAL_STACK||5242880,pa=d.TOTAL_MEMORY||67108864,Y=65536;Y<pa||Y<2*Jb;)Y=16777216>Y?2*Y:Y+16777216;Y!==pa&&(d.Ga("increasing TOTAL_MEMORY to "+Y+" to be compliant with the asm.js spec (and given that TOTAL_STACK="+Jb+")"),pa=Y);J("undefined"!==typeof Int32Array&&"undefined"!==typeof Float64Array&&!!(new Int32Array(1)).subarray&&!!(new Int32Array(1)).set,"JS engine does not provide full typed array support");var R;R=new ArrayBuffer(pa);D=new Int8Array(R);ma=new Int16Array(R);z=new Int32Array(R);
P=new Uint8Array(R);Uc=new Uint16Array(R);eb=new Uint32Array(R);I=new Float32Array(R);Ga=new Float64Array(R);z[0]=255;J(255===P[0]&&0===P[3],"Typed arrays 2 must be run on a little-endian system");d.HEAP=void 0;d.buffer=R;d.HEAP8=D;d.HEAP16=ma;d.HEAP32=z;d.HEAPU8=P;d.HEAPU16=Uc;d.HEAPU32=eb;d.HEAPF32=I;d.HEAPF64=Ga;var zb=[],$a=[],Ic=[],Mc=[],yc=[],Na=!1;d.addOnPreRun=d.Xh=wc;d.addOnInit=d.Uh=function(a){$a.unshift(a)};d.addOnPreMain=d.Wh=function(a){Ic.unshift(a)};d.addOnExit=d.Th=function(a){Mc.unshift(a)};
d.addOnPostRun=d.Vh=xc;d.intArrayFromString=Ha;d.intArrayToString=function(a){for(var c=[],b=0;b<a.length;b++){var d=a[b];255<d&&(d&=255);c.push(String.fromCharCode(d))}return c.join("")};d.writeStringToMemory=xb;d.writeArrayToMemory=zc;d.writeAsciiToMemory=Ac;Math.imul&&-5===Math.imul(4294967295,5)||(Math.imul=function(a,c){var b=a&65535,d=c&65535;return b*d+((a>>>16)*d+b*(c>>>16)<<16)|0});Math.ri=Math.imul;Math.clz32||(Math.clz32=function(a){a=a>>>0;for(var c=0;32>c;c++)if(a&1<<31-c)return c;return 32});
Math.ci=Math.clz32;var rc=Math.abs,df=Math.cos,ef=Math.sin,ff=Math.acos,gf=Math.asin,hf=Math.atan2,jf=Math.sqrt,$e=Math.ceil,vb=Math.floor,kf=Math.pow,Ze=Math.min,ea=0,Db=null,Ia=null;d.addRunDependency=Bb;d.removeRunDependency=Cb;d.preloadedImages={};d.preloadedAudios={};var aa=null,fb=8,oa=fb+16336;$a.push({oa:function(){lf()}});var aa="uranium.js.mem",Ba=r.Gb(Z(12,"i8",2),8);J(0==Ba%8);var mf=df;d._i64Subtract=nf;var of=rc,pf=vb,M={sb:0,te:[],ia:{},xc:function(a){if(!a||M.ia[a])return a;for(var c in M.ia)if(M.ia[c].oc===
a)return c;return a},me:function(a){a&&M.ia[a].eb++},ei:function(a){if(a){var c=M.ia[a];J(0<c.eb);c.eb--;0===c.eb&&(c.yc&&r.za("vi",c.yc,[a]),delete M.ia[a],___cxa_free_exception(a))}},ue:function(a){a&&(M.ia[a].eb=0)}};d._memset=qf;var rf=ff;d._strlen=Gc;var sf=jf,Va=0,Aa={jh:1,Ig:2,wh:3,fg:4,gg:5,fh:6,vf:7,Jg:8,Cb:9,Mf:10,Bf:11,Gh:11,Ng:12,wf:13,Zf:14,Wg:15,Kf:16,Yf:17,Hh:18,Hg:19,Yg:20,ig:21,Db:22,Cg:23,ug:24,dh:25,Dh:26,$f:27,Sg:28,vh:29,sh:30,vg:31,lh:32,Vf:33,ph:34,Og:42,cg:43,Nf:44,kg:45,lg:46,
mg:47,sg:48,Eh:49,Fg:50,jg:51,Sf:35,Kg:37,Df:52,Gf:53,Ih:54,Dg:55,Hf:56,If:57,Tf:35,Jf:59,Ug:60,Gg:61,Ah:62,Tg:63,Pg:64,Qg:65,rh:66,Lg:67,zf:68,xh:69,Of:70,mh:71,xg:72,Wf:73,Ff:74,eh:76,Ef:77,qh:78,ng:79,og:80,rg:81,qg:82,pg:83,Vg:38,Zg:39,yg:36,tg:40,gh:95,kh:96,Rf:104,Eg:105,Af:97,oh:91,ah:88,Rg:92,th:108,Qf:111,xf:98,Pf:103,Bg:101,zg:100,Bh:110,ag:112,bg:113,eg:115,Cf:114,Uf:89,wg:90,nh:93,uh:94,yf:99,Ag:102,hg:106,Xg:107,Ch:109,Fh:87,Xf:122,yh:116,bh:95,Mg:123,dg:84,hh:75,Lf:125,$g:131,ih:130,
zh:86},gb={},tf=vb,Kb=1,uf=kf,l={n:{Ia:null,method:"",Wa:0,oa:null,sa:0,$b:0,Ab:0,Lb:0,Wc:[],pause:function(){l.n.Ia=null;l.n.Wa++},hf:function(){l.n.Wa++;var a=l.n.$b,c=l.n.Ab,b=l.n.oa;l.n.oa=null;Cc(b,0,!1,l.n.sa,!0);Ya(a,c);l.n.Ia()},sf:function(){if(d.setStatus){var a=d.statusMessage||"Please wait...",c=l.n.wb,b=l.n.ii;c?c<b?d.setStatus(a+" ("+(b-c)+"/"+b+")"):d.setStatus(a):d.setStatus("")}},jf:function(a){if(!(U||d.preMainLoop&&!1===d.preMainLoop())){try{a()}catch(c){if(c instanceof na)return;
c&&"object"===typeof c&&c.stack&&d.Ga("exception thrown: "+[c,c.stack]);throw c;}d.postMainLoop&&d.postMainLoop()}}},Qb:!1,Ub:!1,Ye:[],Ni:[],Se:function(){function a(){l.Ub=document.pointerLockElement===b||document.mozPointerLockElement===b||document.webkitPointerLockElement===b||document.msPointerLockElement===b}d.preloadPlugins||(d.preloadPlugins=[]);if(!l.Te){l.Te=!0;try{l.qb=!0}catch(c){l.qb=!1,console.log("warning: no blob constructor, cannot create blobs with mimetypes")}l.BlobBuilder="undefined"!=
typeof MozBlobBuilder?MozBlobBuilder:"undefined"!=typeof WebKitBlobBuilder?WebKitBlobBuilder:l.qb?null:console.log("warning: no BlobBuilder");l.ib="undefined"!=typeof window?window.URL?window.URL:window.webkitURL:void 0;d.Tc||"undefined"!==typeof l.ib||(console.log("warning: Browser does not support creating object URLs. Built-in browser image decoding will not be available."),d.Tc=!0);d.preloadPlugins.push({canHandle:function(a){return!d.Tc&&/\.(jpg|jpeg|png|bmp)$/i.test(a)},handle:function(a,c,
b,f){var e=null;if(l.qb)try{e=new Blob([a],{type:l.Pb(c)}),e.size!==a.length&&(e=new Blob([(new Uint8Array(a)).buffer],{type:l.Pb(c)}))}catch(g){r.Qa("Blob constructor present but fails: "+g+"; falling back to blob builder")}e||(e=new l.BlobBuilder,e.append((new Uint8Array(a)).buffer),e=e.getBlob());var m=l.ib.createObjectURL(e),p=new Image;p.onload=function(){J(p.complete,"Image "+c+" could not be decoded");var f=document.createElement("canvas");f.width=p.width;f.height=p.height;f.getContext("2d").drawImage(p,
0,0);d.preloadedImages[c]=f;l.ib.revokeObjectURL(m);b&&b(a)};p.onerror=function(){console.log("Image "+m+" could not be decoded");f&&f()};p.src=m}});d.preloadPlugins.push({canHandle:function(a){return!d.wi&&a.substr(-4)in{".ogg":1,".wav":1,".mp3":1}},handle:function(a,c,b,f){function e(y){m||(m=!0,d.preloadedAudios[c]=y,b&&b(a))}function g(){m||(m=!0,d.preloadedAudios[c]=new Audio,f&&f())}var m=!1;if(l.qb){try{var p=new Blob([a],{type:l.Pb(c)})}catch(q){return g()}var p=l.ib.createObjectURL(p),r=
new Audio;r.addEventListener("canplaythrough",function(){e(r)},!1);r.onerror=function(){if(!m){console.log("warning: browser could not fully decode audio "+c+", trying slower base64 approach");for(var b="",d=0,f=0,h=0;h<a.length;h++)for(d=d<<8|a[h],f+=8;6<=f;)var g=d>>f-6&63,f=f-6,b=b+"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[g];2==f?(b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[(d&3)<<4],b+="=="):4==f&&(b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[(d&
15)<<2],b+="=");r.src="data:audio/x-"+c.substr(-3)+";base64,"+b;e(r)}};r.src=p;l.kf(function(){e(r)},1E4)}else return g()}});var b=d.canvas;b&&(b.Vb=b.requestPointerLock||b.mozRequestPointerLock||b.webkitRequestPointerLock||b.msRequestPointerLock||function(){},b.Dc=document.exitPointerLock||document.mozExitPointerLock||document.webkitExitPointerLock||document.msExitPointerLock||function(){},b.Dc=b.Dc.bind(document),document.addEventListener("pointerlockchange",a,!1),document.addEventListener("mozpointerlockchange",
a,!1),document.addEventListener("webkitpointerlockchange",a,!1),document.addEventListener("mspointerlockchange",a,!1),d.elementPointerLock&&b.addEventListener("click",function(a){!l.Ub&&b.Vb&&(b.Vb(),a.preventDefault())},!1))}},uc:function(a,c,b,f){if(c&&d.Kb&&a==d.canvas)return d.Kb;var e,h;if(c){h={antialias:!1,alpha:!1};if(f)for(var g in f)h[g]=f[g];if(h=GL.uc(a,h))e=GL.getContext(h).Kh;a.style.backgroundColor="black"}else e=a.getContext("2d");if(!e)return null;b&&(c||J("undefined"===typeof GLctx,
"cannot set in module if GLctx is used, but we are a non-GL context that would replace it"),d.Kb=e,c&&GL.vi(h),d.Ii=c,l.Ye.forEach(function(a){a()}),l.Se());return e},fi:function(){},Fc:!1,ub:void 0,Pa:void 0,xb:function(a,c,b){function f(){l.Qb=!1;var a=e.parentNode;(document.webkitFullScreenElement||document.webkitFullscreenElement||document.mozFullScreenElement||document.mozFullscreenElement||document.fullScreenElement||document.fullscreenElement||document.msFullScreenElement||document.msFullscreenElement||
document.webkitCurrentFullScreenElement)===a?(e.pc=document.cancelFullScreen||document.mozCancelFullScreen||document.webkitCancelFullScreen||document.msExitFullscreen||document.exitFullscreen||function(){},e.pc=e.pc.bind(document),l.ub&&e.Vb(),l.Qb=!0,l.Pa&&l.mf()):(a.parentNode.insertBefore(e,a),a.parentNode.removeChild(a),l.Pa&&l.of());if(d.onFullScreen)d.onFullScreen(l.Qb);l.ad(e)}l.ub=a;l.Pa=c;l.bd=b;"undefined"===typeof l.ub&&(l.ub=!0);"undefined"===typeof l.Pa&&(l.Pa=!1);"undefined"===typeof l.bd&&
(l.bd=null);var e=d.canvas;l.Fc||(l.Fc=!0,document.addEventListener("fullscreenchange",f,!1),document.addEventListener("mozfullscreenchange",f,!1),document.addEventListener("webkitfullscreenchange",f,!1),document.addEventListener("MSFullscreenChange",f,!1));var h=document.createElement("div");e.parentNode.insertBefore(h,e);h.appendChild(e);h.xb=h.requestFullScreen||h.mozRequestFullScreen||h.msRequestFullscreen||(h.webkitRequestFullScreen?function(){h.webkitRequestFullScreen(Element.ALLOW_KEYBOARD_INPUT)}:
null);b?h.xb({Ji:b}):h.xb()},Na:0,Ec:function(a){var c=Date.now();if(0===l.Na)l.Na=c+1E3/60;else for(;c+2>=l.Na;)l.Na+=1E3/60;c=Math.max(l.Na-c,0);setTimeout(a,c)},requestAnimationFrame:function(a){"undefined"===typeof window?l.Ec(a):(window.requestAnimationFrame||(window.requestAnimationFrame=window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.msRequestAnimationFrame||window.oRequestAnimationFrame||l.Ec),window.requestAnimationFrame(a))},Bi:function(a){return function(){if(!U)return a.apply(null,
arguments)}},Sa:!0,cb:[],xi:function(){l.Sa=!1},zi:function(){l.Sa=!0;if(0<l.cb.length){var a=l.cb;l.cb=[];a.forEach(function(a){a()})}},Ci:function(a){return l.requestAnimationFrame(function(){U||(l.Sa?a():l.cb.push(a))})},kf:function(a,c){d.noExitRuntime=!0;return setTimeout(function(){U||(l.Sa?a():l.cb.push(a))},c)},Di:function(a,c){d.noExitRuntime=!0;return setInterval(function(){U||l.Sa&&a()},c)},Pb:function(a){return{jpg:"image/jpeg",jpeg:"image/jpeg",png:"image/png",bmp:"image/bmp",ogg:"audio/ogg",
wav:"audio/wav",mp3:"audio/mpeg"}[a.substr(a.lastIndexOf(".")+1)]},pb:function(a){window.pb||(window.pb=navigator.getUserMedia||navigator.mozGetUserMedia);window.pb(a)},Ie:function(a){return a.movementX||a.mozMovementX||a.webkitMovementX||0},Je:function(a){return a.movementY||a.mozMovementY||a.webkitMovementY||0},oi:function(a){var c=0;switch(a.type){case "DOMMouseScroll":c=a.detail;break;case "mousewheel":c=a.wheelDelta;break;case "wheel":c=a.deltaY;break;default:throw"unrecognized mouse wheel event: "+
a.type;}return c},La:0,Ma:0,ab:0,bb:0,touches:{},Nc:{},$h:function(a){if(l.Ub)"mousemove"!=a.type&&"mozMovementX"in a?l.ab=l.bb=0:(l.ab=l.Ie(a),l.bb=l.Je(a)),"undefined"!=typeof SDL?(l.La=SDL.La+l.ab,l.Ma=SDL.Ma+l.bb):(l.La+=l.ab,l.Ma+=l.bb);else{var c=d.canvas.getBoundingClientRect(),b=d.canvas.width,f=d.canvas.height,e="undefined"!==typeof window.scrollX?window.scrollX:window.pageXOffset,h="undefined"!==typeof window.scrollY?window.scrollY:window.pageYOffset;if("touchstart"===a.type||"touchend"===
a.type||"touchmove"===a.type){var g=a.Gi;if(void 0!==g)if(e=g.pageX-(e+c.left),h=g.pageY-(h+c.top),e*=b/c.width,h*=f/c.height,c={x:e,y:h},"touchstart"===a.type)l.Nc[g.identifier]=c,l.touches[g.identifier]=c;else if("touchend"===a.type||"touchmove"===a.type)(a=l.touches[g.identifier])||(a=c),l.Nc[g.identifier]=a,l.touches[g.identifier]=c}else g=a.pageX-(e+c.left),a=a.pageY-(h+c.top),g*=b/c.width,a*=f/c.height,l.ab=g-l.La,l.bb=a-l.Ma,l.La=g,l.Ma=a}},uf:function(a,c,b){var d=new XMLHttpRequest;d.open("GET",
a,!0);d.responseType="arraybuffer";d.onload=function(){200==d.status||0==d.status&&d.response?c(d.response):b()};d.onerror=b;d.send(null)},pe:function(a,c,b,d){l.uf(a,function(b){J(b,'Loading data file "'+a+'" failed (no arrayBuffer).');c(new Uint8Array(b));d||Cb()},function(){if(b)b();else throw'Loading data file "'+a+'" failed.';});d||Bb()},gf:[],bc:function(){var a=d.canvas;l.gf.forEach(function(c){c(a.width,a.height)})},lf:function(a,c,b){l.ad(d.canvas,a,c);b||l.bc()},Mi:0,Li:0,mf:function(){if("undefined"!=
typeof SDL){var a=eb[SDL.screen+0*r.qa>>2];z[SDL.screen+0*r.qa>>2]=a|8388608}l.bc()},of:function(){if("undefined"!=typeof SDL){var a=eb[SDL.screen+0*r.qa>>2];z[SDL.screen+0*r.qa>>2]=a&-8388609}l.bc()},ad:function(a,c,b){c&&b?(a.tf=c,a.Qe=b):(c=a.tf,b=a.Qe);var f=c,e=b;d.forcedAspectRatio&&0<d.forcedAspectRatio&&(f/e<d.forcedAspectRatio?f=Math.round(e*d.forcedAspectRatio):e=Math.round(f/d.forcedAspectRatio));if((document.webkitFullScreenElement||document.webkitFullscreenElement||document.mozFullScreenElement||
document.mozFullscreenElement||document.fullScreenElement||document.fullscreenElement||document.msFullScreenElement||document.msFullscreenElement||document.webkitCurrentFullScreenElement)===a.parentNode&&"undefined"!=typeof screen)var h=Math.min(screen.width/f,screen.height/e),f=Math.round(f*h),e=Math.round(e*h);l.Pa?(a.width!=f&&(a.width=f),a.height!=e&&(a.height=e),"undefined"!=typeof a.style&&(a.style.removeProperty("width"),a.style.removeProperty("height"))):(a.width!=c&&(a.width=c),a.height!=
b&&(a.height=b),"undefined"!=typeof a.style&&(f!=c||e!=b?(a.style.setProperty("width",f+"px","important"),a.style.setProperty("height",e+"px","important")):(a.style.removeProperty("width"),a.style.removeProperty("height"))))},Ki:{},Sc:0,pi:function(){var a=l.Sc;l.Sc++;return a}},vf=hf;d._i64Add=wf;d._bitshift64Lshr=xf;var yf=gf,zf=ef;d._memcpy=Af;d._memmove=Bf;d._malloc=da;d._llvm_bswap_i32=Cf;var Df=Z(1,"i32*",2);Xa.q=Z([0],"i8",2);Va=r.Zb(4);z[Va>>2]=0;d.requestFullScreen=function(a,c,b){l.xb(a,
c,b)};d.requestAnimationFrame=function(a){l.requestAnimationFrame(a)};d.setCanvasSize=function(a,c,b){l.lf(a,c,b)};d.pauseMainLoop=function(){l.n.pause()};d.resumeMainLoop=function(){l.n.hf()};d.getUserMedia=function(){l.pb()};d.createContext=function(a,c,b,d){return l.uc(a,c,b,d)};Vc=W=r.Gb(oa);Tc=!0;Ib=Vc+Jb;Wc=V=r.Gb(Ib);J(Wc<pa,"TOTAL_MEMORY not big enough for stack");var Ef=Z([8,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,
1,0,2,0,1,0,6,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,7,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,6,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0],"i8",3);d.ne={Math:Math,Int8Array:Int8Array,Int16Array:Int16Array,Int32Array:Int32Array,Uint8Array:Uint8Array,
Uint16Array:Uint16Array,Uint32Array:Uint32Array,Float32Array:Float32Array,Float64Array:Float64Array,NaN:NaN,Infinity:Infinity};d.oe={abort:ca,assert:J,invoke_viiiii:function(a,c,b,e,g,h){try{d.dynCall_viiiii(a,c,b,e,g,h)}catch(l){if("number"!==typeof l&&"longjmp"!==l)throw l;f.setThrew(1,0)}},invoke_vid:function(a,c,b){try{d.dynCall_vid(a,c,b)}catch(e){if("number"!==typeof e&&"longjmp"!==e)throw e;f.setThrew(1,0)}},invoke_vi:function(a,c){try{d.dynCall_vi(a,c)}catch(b){if("number"!==typeof b&&"longjmp"!==
b)throw b;f.setThrew(1,0)}},invoke_viiidii:function(a,c,b,e,g,h,l){try{d.dynCall_viiidii(a,c,b,e,g,h,l)}catch(k){if("number"!==typeof k&&"longjmp"!==k)throw k;f.setThrew(1,0)}},invoke_vii:function(a,c,b){try{d.dynCall_vii(a,c,b)}catch(e){if("number"!==typeof e&&"longjmp"!==e)throw e;f.setThrew(1,0)}},invoke_iiiiiiiiiii:function(a,c,b,e,g,h,l,k,m,p,q){try{return d.dynCall_iiiiiiiiiii(a,c,b,e,g,h,l,k,m,p,q)}catch(r){if("number"!==typeof r&&"longjmp"!==r)throw r;f.setThrew(1,0)}},invoke_ii:function(a,
c){try{return d.dynCall_ii(a,c)}catch(b){if("number"!==typeof b&&"longjmp"!==b)throw b;f.setThrew(1,0)}},invoke_viidi:function(a,c,b,e,g){try{d.dynCall_viidi(a,c,b,e,g)}catch(h){if("number"!==typeof h&&"longjmp"!==h)throw h;f.setThrew(1,0)}},invoke_viddiii:function(a,c,b,e,g,h,l){try{d.dynCall_viddiii(a,c,b,e,g,h,l)}catch(k){if("number"!==typeof k&&"longjmp"!==k)throw k;f.setThrew(1,0)}},invoke_vidii:function(a,c,b,e,g){try{d.dynCall_vidii(a,c,b,e,g)}catch(h){if("number"!==typeof h&&"longjmp"!==h)throw h;
f.setThrew(1,0)}},invoke_iiiii:function(a,c,b,e,g){try{return d.dynCall_iiiii(a,c,b,e,g)}catch(h){if("number"!==typeof h&&"longjmp"!==h)throw h;f.setThrew(1,0)}},invoke_vidi:function(a,c,b,e){try{d.dynCall_vidi(a,c,b,e)}catch(g){if("number"!==typeof g&&"longjmp"!==g)throw g;f.setThrew(1,0)}},invoke_viiiiddddiid:function(a,c,b,e,g,h,l,k,m,p,q,r){try{d.dynCall_viiiiddddiid(a,c,b,e,g,h,l,k,m,p,q,r)}catch(u){if("number"!==typeof u&&"longjmp"!==u)throw u;f.setThrew(1,0)}},invoke_diiiii:function(a,c,b,
e,g,h){try{return d.dynCall_diiiii(a,c,b,e,g,h)}catch(l){if("number"!==typeof l&&"longjmp"!==l)throw l;f.setThrew(1,0)}},invoke_iiii:function(a,c,b,e){try{return d.dynCall_iiii(a,c,b,e)}catch(g){if("number"!==typeof g&&"longjmp"!==g)throw g;f.setThrew(1,0)}},invoke_viiiiii:function(a,c,b,e,g,h,l){try{d.dynCall_viiiiii(a,c,b,e,g,h,l)}catch(k){if("number"!==typeof k&&"longjmp"!==k)throw k;f.setThrew(1,0)}},invoke_iiid:function(a,c,b,e){try{return d.dynCall_iiid(a,c,b,e)}catch(g){if("number"!==typeof g&&
"longjmp"!==g)throw g;f.setThrew(1,0)}},invoke_di:function(a,c){try{return d.dynCall_di(a,c)}catch(b){if("number"!==typeof b&&"longjmp"!==b)throw b;f.setThrew(1,0)}},invoke_iiiiiii:function(a,c,b,e,g,h,l){try{return d.dynCall_iiiiiii(a,c,b,e,g,h,l)}catch(k){if("number"!==typeof k&&"longjmp"!==k)throw k;f.setThrew(1,0)}},invoke_diiidii:function(a,c,b,e,g,h,l){try{return d.dynCall_diiidii(a,c,b,e,g,h,l)}catch(k){if("number"!==typeof k&&"longjmp"!==k)throw k;f.setThrew(1,0)}},invoke_viidii:function(a,
c,b,e,g,h){try{d.dynCall_viidii(a,c,b,e,g,h)}catch(l){if("number"!==typeof l&&"longjmp"!==l)throw l;f.setThrew(1,0)}},invoke_didii:function(a,c,b,e,g){try{return d.dynCall_didii(a,c,b,e,g)}catch(h){if("number"!==typeof h&&"longjmp"!==h)throw h;f.setThrew(1,0)}},invoke_viiiiiiiii:function(a,c,b,e,g,h,l,k,m,p){try{d.dynCall_viiiiiiiii(a,c,b,e,g,h,l,k,m,p)}catch(q){if("number"!==typeof q&&"longjmp"!==q)throw q;f.setThrew(1,0)}},invoke_viiiiiiiiii:function(a,c,b,e,g,h,l,k,m,p,q){try{d.dynCall_viiiiiiiiii(a,
c,b,e,g,h,l,k,m,p,q)}catch(r){if("number"!==typeof r&&"longjmp"!==r)throw r;f.setThrew(1,0)}},invoke_iii:function(a,c,b){try{return d.dynCall_iii(a,c,b)}catch(e){if("number"!==typeof e&&"longjmp"!==e)throw e;f.setThrew(1,0)}},invoke_diii:function(a,c,b,e){try{return d.dynCall_diii(a,c,b,e)}catch(g){if("number"!==typeof g&&"longjmp"!==g)throw g;f.setThrew(1,0)}},invoke_diiiiiiiiii:function(a,c,b,e,g,h,l,k,m,p,q){try{return d.dynCall_diiiiiiiiii(a,c,b,e,g,h,l,k,m,p,q)}catch(r){if("number"!==typeof r&&
"longjmp"!==r)throw r;f.setThrew(1,0)}},invoke_viiiid:function(a,c,b,e,g,h){try{d.dynCall_viiiid(a,c,b,e,g,h)}catch(l){if("number"!==typeof l&&"longjmp"!==l)throw l;f.setThrew(1,0)}},invoke_diiiiiiiii:function(a,c,b,e,g,h,l,k,m,p){try{return d.dynCall_diiiiiiiii(a,c,b,e,g,h,l,k,m,p)}catch(q){if("number"!==typeof q&&"longjmp"!==q)throw q;f.setThrew(1,0)}},invoke_did:function(a,c,b){try{return d.dynCall_did(a,c,b)}catch(e){if("number"!==typeof e&&"longjmp"!==e)throw e;f.setThrew(1,0)}},invoke_viiiidddddidi:function(a,
c,b,e,g,h,l,k,m,p,q,r,u){try{d.dynCall_viiiidddddidi(a,c,b,e,g,h,l,k,m,p,q,r,u)}catch(y){if("number"!==typeof y&&"longjmp"!==y)throw y;f.setThrew(1,0)}},invoke_diidii:function(a,c,b,e,g,h){try{return d.dynCall_diidii(a,c,b,e,g,h)}catch(l){if("number"!==typeof l&&"longjmp"!==l)throw l;f.setThrew(1,0)}},invoke_diiii:function(a,c,b,e,g){try{return d.dynCall_diiii(a,c,b,e,g)}catch(h){if("number"!==typeof h&&"longjmp"!==h)throw h;f.setThrew(1,0)}},invoke_iiiiiiiiii:function(a,c,b,e,g,h,l,k,m,p){try{return d.dynCall_iiiiiiiiii(a,
c,b,e,g,h,l,k,m,p)}catch(q){if("number"!==typeof q&&"longjmp"!==q)throw q;f.setThrew(1,0)}},invoke_viiid:function(a,c,b,e,g){try{d.dynCall_viiid(a,c,b,e,g)}catch(h){if("number"!==typeof h&&"longjmp"!==h)throw h;f.setThrew(1,0)}},invoke_viii:function(a,c,b,e){try{d.dynCall_viii(a,c,b,e)}catch(g){if("number"!==typeof g&&"longjmp"!==g)throw g;f.setThrew(1,0)}},invoke_v:function(a){try{d.dynCall_v(a)}catch(c){if("number"!==typeof c&&"longjmp"!==c)throw c;f.setThrew(1,0)}},invoke_viid:function(a,c,b,e){try{d.dynCall_viid(a,
c,b,e)}catch(g){if("number"!==typeof g&&"longjmp"!==g)throw g;f.setThrew(1,0)}},invoke_iidid:function(a,c,b,e,g){try{return d.dynCall_iidid(a,c,b,e,g)}catch(h){if("number"!==typeof h&&"longjmp"!==h)throw h;f.setThrew(1,0)}},invoke_viiii:function(a,c,b,e,g){try{d.dynCall_viiii(a,c,b,e,g)}catch(h){if("number"!==typeof h&&"longjmp"!==h)throw h;f.setThrew(1,0)}},_cosf:mf,_send:function(a,c,b){return(void 0).qi(a)?Wa(a,c,b):(La(Aa.Cb),-1)},_sqrtf:sf,___cxa_guard_acquire:function(a){return D[a>>0]?0:D[a>>
0]=1},_asinf:yf,_vfprintf:function(a,c,b){return Hc(a,c,z[b>>2])},_atan2f:vf,__ZSt18uncaught_exceptionv:za,_floor:tf,___cxa_guard_release:function(){},_pwrite:function(a,c,b,d){a=(void 0).Le(a);if(!a)return La(Aa.Cb),-1;try{return(void 0).write(a,D,c,b,d)}catch(e){return(void 0).Pe(e),-1}},_acosf:rf,_fprintf:Hc,_emscripten_set_main_loop_timing:Ya,_fabsf:of,_sbrk:Za,_llvm_pow_f32:uf,___cxa_begin_catch:function(a){za.ca--;M.te.push(a);M.me(M.xc(a));return a},_sinf:zf,_fileno:Eb,___resumeException:function(a){M.sb||
(M.sb=a);M.ue(M.xc(a));throw a+" - Exception catching is disabled, this exception cannot be caught. Compile with -s DISABLE_EXCEPTION_CATCHING=0 or DISABLE_EXCEPTION_CATCHING=2 to catch.";},___cxa_find_matching_catch:Ja,_sysconf:function(a){switch(a){case 30:return 4096;case 85:return Y/4096;case 132:case 133:case 12:case 137:case 138:case 15:case 235:case 16:case 17:case 18:case 19:case 20:case 149:case 13:case 10:case 236:case 153:case 9:case 21:case 22:case 159:case 154:case 14:case 77:case 78:case 139:case 80:case 81:case 82:case 68:case 67:case 164:case 11:case 29:case 47:case 48:case 95:case 52:case 51:case 46:return 200809;
case 79:return 0;case 27:case 246:case 127:case 128:case 23:case 24:case 160:case 161:case 181:case 182:case 242:case 183:case 184:case 243:case 244:case 245:case 165:case 178:case 179:case 49:case 50:case 168:case 169:case 175:case 170:case 171:case 172:case 97:case 76:case 32:case 173:case 35:return-1;case 176:case 177:case 7:case 155:case 8:case 157:case 125:case 126:case 92:case 93:case 129:case 130:case 131:case 94:case 91:return 1;case 74:case 60:case 69:case 70:case 4:return 1024;case 31:case 42:case 72:return 32;
case 87:case 26:case 33:return 2147483647;case 34:case 1:return 47839;case 38:case 36:return 99;case 43:case 37:return 2048;case 0:return 2097152;case 3:return 65536;case 28:return 32768;case 44:return 32767;case 75:return 16384;case 39:return 1E3;case 89:return 700;case 71:return 256;case 40:return 255;case 2:return 100;case 180:return 64;case 25:return 20;case 5:return 16;case 6:return 6;case 73:return 4;case 84:return"object"===typeof navigator?navigator.hardwareConcurrency||1:1}La(Aa.Db);return-1},
__reallyNegative:Ec,___setErrNo:La,_pthread_getspecific:function(a){return gb[a]||0},_emscripten_memcpy_big:function(a,c,b){P.set(P.subarray(c,c+b),a);return a},_pthread_once:Ka,_floorf:pf,_pthread_key_create:function(a){if(0==a)return Aa.Db;z[a>>2]=Kb;gb[Kb]=0;Kb++;return 0},_write:Wa,_emscripten_set_main_loop:Cc,___errno_location:function(){return Va},_pthread_setspecific:function(a,c){if(!(a in gb))return Aa.Db;gb[a]=c;return 0},_fputc:Xa,___cxa_throw:function(a,c,b){M.ia[a]={yi:a,oc:a,type:c,
yc:b,eb:0};M.sb=a;"uncaught_exception"in za?za.ca++:za.ca=1;throw a+" - Exception catching is disabled, this exception cannot be caught. Compile with -s DISABLE_EXCEPTION_CATCHING=0 or DISABLE_EXCEPTION_CATCHING=2 to catch.";},_abort:function(){d.abort()},_fwrite:Dc,_time:function(a){var c=Date.now()/1E3|0;a&&(z[a>>2]=c);return c},___cxa_allocate_exception:function(a){return da(a)},__formatString:Fc,_llvm_trap:function(){ca("trap!")},___cxa_pure_virtual:function(){U=!0;throw"Pure virtual function called!";
},STACKTOP:W,STACK_MAX:Ib,tempDoublePtr:Ba,ABORT:U,cttz_i8:Ef,_stderr:Df};// EMSCRIPTEN_START_ASM
var f=(function(global,env,buffer) {
"use asm";var a=new global.Int8Array(buffer);var b=new global.Int16Array(buffer);var c=new global.Int32Array(buffer);var d=new global.Uint8Array(buffer);var e=new global.Uint16Array(buffer);var f=new global.Uint32Array(buffer);var g=new global.Float32Array(buffer);var h=new global.Float64Array(buffer);var i=env.STACKTOP|0;var j=env.STACK_MAX|0;var k=env.tempDoublePtr|0;var l=env.ABORT|0;var m=env.cttz_i8|0;var n=env._stderr|0;var o=0;var p=0;var q=0;var r=0;var s=global.NaN,t=global.Infinity;var u=0,v=0,w=0,x=0,y=0.0,z=0,A=0,B=0,C=0.0;var D=0;var E=0;var F=0;var G=0;var H=0;var I=0;var J=0;var K=0;var L=0;var M=0;var N=global.Math.floor;var O=global.Math.abs;var P=global.Math.sqrt;var Q=global.Math.pow;var R=global.Math.cos;var S=global.Math.sin;var T=global.Math.tan;var U=global.Math.acos;var V=global.Math.asin;var W=global.Math.atan;var X=global.Math.atan2;var Y=global.Math.exp;var Z=global.Math.log;var _=global.Math.ceil;var $=global.Math.imul;var aa=global.Math.min;var ba=global.Math.clz32;var ca=env.abort;var da=env.assert;var ea=env.invoke_viiiii;var fa=env.invoke_vid;var ga=env.invoke_vi;var ha=env.invoke_viiidii;var ia=env.invoke_vii;var ja=env.invoke_iiiiiiiiiii;var ka=env.invoke_ii;var la=env.invoke_viidi;var ma=env.invoke_viddiii;var na=env.invoke_vidii;var oa=env.invoke_iiiii;var pa=env.invoke_vidi;var qa=env.invoke_viiiiddddiid;var ra=env.invoke_diiiii;var sa=env.invoke_iiii;var ta=env.invoke_viiiiii;var ua=env.invoke_iiid;var va=env.invoke_di;var wa=env.invoke_iiiiiii;var xa=env.invoke_diiidii;var ya=env.invoke_viidii;var za=env.invoke_didii;var Aa=env.invoke_viiiiiiiii;var Ba=env.invoke_viiiiiiiiii;var Ca=env.invoke_iii;var Da=env.invoke_diii;var Ea=env.invoke_diiiiiiiiii;var Fa=env.invoke_viiiid;var Ga=env.invoke_diiiiiiiii;var Ha=env.invoke_did;var Ia=env.invoke_viiiidddddidi;var Ja=env.invoke_diidii;var Ka=env.invoke_diiii;var La=env.invoke_iiiiiiiiii;var Ma=env.invoke_viiid;var Na=env.invoke_viii;var Oa=env.invoke_v;var Pa=env.invoke_viid;var Qa=env.invoke_iidid;var Ra=env.invoke_viiii;var Sa=env._cosf;var Ta=env._send;var Ua=env._sqrtf;var Va=env.___cxa_guard_acquire;var Wa=env._asinf;var Xa=env._vfprintf;var Ya=env._atan2f;var Za=env.__ZSt18uncaught_exceptionv;var _a=env._floor;var $a=env.___cxa_guard_release;var ab=env._pwrite;var bb=env._acosf;var cb=env._fprintf;var db=env._emscripten_set_main_loop_timing;var eb=env._fabsf;var fb=env._sbrk;var gb=env._llvm_pow_f32;var hb=env.___cxa_begin_catch;var ib=env._sinf;var jb=env._fileno;var kb=env.___resumeException;var lb=env.___cxa_find_matching_catch;var mb=env._sysconf;var nb=env.__reallyNegative;var ob=env.___setErrNo;var pb=env._pthread_getspecific;var qb=env._emscripten_memcpy_big;var rb=env._pthread_once;var sb=env._floorf;var tb=env._pthread_key_create;var ub=env._write;var vb=env._emscripten_set_main_loop;var wb=env.___errno_location;var xb=env._pthread_setspecific;var yb=env._fputc;var zb=env.___cxa_throw;var Ab=env._abort;var Bb=env._fwrite;var Cb=env._time;var Db=env.___cxa_allocate_exception;var Eb=env.__formatString;var Fb=env._llvm_trap;var Gb=env.___cxa_pure_virtual;var Hb=0.0;
// EMSCRIPTEN_START_FUNCS
function uc(a){a=a|0;var b=0;b=i;i=i+a|0;i=i+15&-16;return b|0}function vc(){return i|0}function wc(a){a=a|0;i=a}function xc(a,b){a=a|0;b=b|0;i=a;j=b}function yc(a,b){a=a|0;b=b|0;if(!o){o=a;p=b}}function zc(b){b=b|0;a[k>>0]=a[b>>0];a[k+1>>0]=a[b+1>>0];a[k+2>>0]=a[b+2>>0];a[k+3>>0]=a[b+3>>0]}function Ac(b){b=b|0;a[k>>0]=a[b>>0];a[k+1>>0]=a[b+1>>0];a[k+2>>0]=a[b+2>>0];a[k+3>>0]=a[b+3>>0];a[k+4>>0]=a[b+4>>0];a[k+5>>0]=a[b+5>>0];a[k+6>>0]=a[b+6>>0];a[k+7>>0]=a[b+7>>0]}function Bc(a){a=a|0;D=a}function Cc(){return D|0}function Dc(){var b=0,d=0,e=0,f=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;b=ws(196)|0;a:do if(!b){while(1){d=c[3728]|0;c[3728]=d+0;if(!d)break;qc[d&3]();d=ws(196)|0;if(d){e=d;break a}}d=Db(4)|0;c[d>>2]=14864;zb(d|0,14896,182);}else e=b;while(0);c[e>>2]=3472;a[e+40>>0]=1;c[e+36>>2]=0;c[e+28>>2]=0;c[e+32>>2]=0;a[e+60>>0]=1;c[e+56>>2]=0;c[e+48>>2]=0;c[e+52>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;c[e+12>>2]=-1;c[e+16>>2]=0;c[e+20>>2]=0;a[e+100>>0]=1;c[e+96>>2]=0;c[e+88>>2]=0;c[e+92>>2]=0;a[e+120>>0]=1;c[e+116>>2]=0;c[e+108>>2]=0;c[e+112>>2]=0;c[e+64>>2]=0;c[e+68>>2]=0;c[e+72>>2]=-1;c[e+76>>2]=0;c[e+80>>2]=0;a[e+193>>0]=0;a[e+194>>0]=1;a[e+192>>0]=1;g[e+140>>2]=0.0;c[e+144>>2]=0;c[e+164>>2]=0;c[e+148>>2]=1;c[e+152>>2]=0;c[e+156>>2]=10;c[e+160>>2]=1;c[e+168>>2]=0;c[e+172>>2]=0;g[e+176>>2]=0.0;c[3708]=(c[3708]|0)+1;b=ws(95)|0;if(!b)f=0;else{d=b+4+15&-16;c[d+-4>>2]=b;f=d}_i(f);c[e+136>>2]=f;c[e+188>>2]=0;c[e+180>>2]=0;c[e+184>>2]=0;f=e+124|0;c[f>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;c[3708]=(c[3708]|0)+1;f=ws(223)|0;if(!f)h=0;else{d=f+4+15&-16;c[d+-4>>2]=f;h=d}c[h>>2]=1640;a[h+20>>0]=1;c[h+16>>2]=0;c[h+8>>2]=0;c[h+12>>2]=0;a[h+40>>0]=1;c[h+36>>2]=0;c[h+28>>2]=0;c[h+32>>2]=0;a[h+60>>0]=1;c[h+56>>2]=0;c[h+48>>2]=0;c[h+52>>2]=0;a[h+80>>0]=1;c[h+76>>2]=0;c[h+68>>2]=0;c[h+72>>2]=0;a[h+100>>0]=1;c[h+96>>2]=0;c[h+88>>2]=0;c[h+92>>2]=0;a[h+120>>0]=1;c[h+116>>2]=0;c[h+108>>2]=0;c[h+112>>2]=0;a[h+140>>0]=1;c[h+136>>2]=0;c[h+128>>2]=0;c[h+132>>2]=0;a[h+160>>0]=1;c[h+156>>2]=0;c[h+148>>2]=0;c[h+152>>2]=0;a[h+180>>0]=1;c[h+176>>2]=0;c[h+168>>2]=0;c[h+172>>2]=0;c[h+192>>2]=12;c[h+196>>2]=13;c[h+200>>2]=0;d=ws(92)|0;b:do if(!d){while(1){f=c[3728]|0;c[3728]=f+0;if(!f)break;qc[f&3]();f=ws(92)|0;if(f){i=f;break b}}f=Db(4)|0;c[f>>2]=14864;zb(f|0,14896,182);}else i=d;while(0);c[i>>2]=6880;c[3708]=(c[3708]|0)+1;d=ws(379)|0;if(!d)j=0;else{f=d+4+15&-16;c[f+-4>>2]=d;j=f}g[j+308>>2]=9.999999747378752e-05;f=j+332|0;a[f>>0]=a[f>>0]&-16;f=i+24|0;c[f>>2]=j;c[3708]=(c[3708]|0)+1;j=ws(23)|0;if(!j)k=0;else{d=j+4+15&-16;c[d+-4>>2]=j;k=d}c[k>>2]=11976;d=i+28|0;c[d>>2]=k;c[3708]=(c[3708]|0)+1;k=ws(43)|0;if(!k)l=0;else{j=k+4+15&-16;c[j+-4>>2]=k;l=j}j=c[f>>2]|0;f=c[d>>2]|0;a[l+4>>0]=0;c[l>>2]=13688;c[l+16>>2]=0;c[l+20>>2]=3;c[l+12>>2]=j;c[l+8>>2]=f;c[i+32>>2]=l;c[3708]=(c[3708]|0)+1;l=ws(27)|0;if(!l)m=0;else{f=l+4+15&-16;c[f+-4>>2]=l;m=f}a[m+4>>0]=0;c[m>>2]=6968;c[i+36>>2]=m;c[3708]=(c[3708]|0)+1;m=ws(27)|0;if(!m)n=0;else{f=m+4+15&-16;c[f+-4>>2]=m;n=f}a[n+4>>0]=0;c[n>>2]=6992;c[i+40>>2]=n;c[3708]=(c[3708]|0)+1;n=ws(27)|0;if(!n)o=0;else{f=n+4+15&-16;c[f+-4>>2]=n;o=f}a[o+4>>0]=0;c[o>>2]=7016;c[i+44>>2]=o;c[3708]=(c[3708]|0)+1;o=ws(27)|0;if(!o)p=0;else{f=o+4+15&-16;c[f+-4>>2]=o;p=f}a[p+4>>0]=0;c[p>>2]=7040;c[i+48>>2]=p;c[3708]=(c[3708]|0)+1;p=ws(27)|0;if(!p)q=0;else{f=p+4+15&-16;c[f+-4>>2]=p;q=f}a[q+4>>0]=0;c[q>>2]=7064;c[i+52>>2]=q;c[3708]=(c[3708]|0)+1;q=ws(27)|0;if(!q)r=0;else{f=q+4+15&-16;c[f+-4>>2]=q;r=f}a[r+4>>0]=0;c[r>>2]=7088;c[i+56>>2]=r;c[3708]=(c[3708]|0)+1;r=ws(27)|0;if(!r)s=0;else{f=r+4+15&-16;c[f+-4>>2]=r;s=f}a[s+4>>0]=0;c[s>>2]=7112;c[i+60>>2]=s;c[3708]=(c[3708]|0)+1;s=ws(27)|0;if(!s)t=0;else{f=s+4+15&-16;c[f+-4>>2]=s;t=f}a[t+4>>0]=0;c[t>>2]=7136;c[i+76>>2]=t;c[3708]=(c[3708]|0)+1;t=ws(27)|0;if(!t)u=0;else{f=t+4+15&-16;c[f+-4>>2]=t;u=f}c[u>>2]=7136;c[i+80>>2]=u;a[u+4>>0]=1;c[3708]=(c[3708]|0)+1;u=ws(27)|0;if(!u)v=0;else{f=u+4+15&-16;c[f+-4>>2]=u;v=f}a[v+4>>0]=0;c[v>>2]=7160;c[i+72>>2]=v;c[3708]=(c[3708]|0)+1;v=ws(35)|0;if(!v)w=0;else{f=v+4+15&-16;c[f+-4>>2]=v;w=f}a[w+4>>0]=0;c[w>>2]=7184;c[w+8>>2]=1;c[w+12>>2]=0;c[i+88>>2]=w;c[3708]=(c[3708]|0)+1;w=ws(35)|0;if(!w)x=0;else{f=w+4+15&-16;c[f+-4>>2]=w;x=f}c[x>>2]=7184;c[x+8>>2]=1;c[x+12>>2]=0;c[i+84>>2]=x;a[x+4>>0]=1;a[i+12>>0]=1;c[3708]=(c[3708]|0)+1;x=ws(39)|0;if(!x)y=0;else{f=x+4+15&-16;c[f+-4>>2]=x;y=f}c[y>>2]=772;f=y+4|0;c[f>>2]=4096;c[3708]=(c[3708]|0)+1;x=ws(3162131)|0;if(!x)z=0;else{w=x+4+15&-16;c[w+-4>>2]=x;z=w}c[y+16>>2]=z;c[y+12>>2]=z;w=c[f>>2]|0;c[y+8>>2]=w;f=w+-1|0;if(!f)A=z;else{w=c[y>>2]|0;x=f;v=z;do{u=v;v=v+w|0;c[u>>2]=v;x=x+-1|0}while((x|0)!=0);A=z+($(w,f)|0)|0}c[A>>2]=0;c[i+8>>2]=y;a[i+20>>0]=1;c[3708]=(c[3708]|0)+1;y=ws(39)|0;if(!y)B=0;else{A=y+4+15&-16;c[A+-4>>2]=y;B=A}c[B>>2]=80;A=B+4|0;c[A>>2]=4096;c[3708]=(c[3708]|0)+1;y=ws(327699)|0;if(!y)C=0;else{f=y+4+15&-16;c[f+-4>>2]=y;C=f}c[B+16>>2]=C;c[B+12>>2]=C;f=c[A>>2]|0;c[B+8>>2]=f;A=f+-1|0;if(!A)D=C;else{f=c[B>>2]|0;y=A;w=C;do{z=w;w=w+f|0;c[z>>2]=w;y=y+-1|0}while((y|0)!=0);D=C+($(f,A)|0)|0}c[D>>2]=0;c[i+16>>2]=B;B=ws(5260)|0;c:do if(!B){while(1){D=c[3728]|0;c[3728]=D+0;if(!D)break;qc[D&3]();D=ws(5260)|0;if(D){E=D;break c}}D=Db(4)|0;c[D>>2]=14864;zb(D|0,14896,182);}else E=B;while(0);c[E>>2]=4496;c[E+4>>2]=2;a[E+24>>0]=1;c[E+20>>2]=0;c[E+12>>2]=0;c[E+16>>2]=0;c[E+28>>2]=8168;B=E+5256|0;c[B>>2]=i;c[E+60>>2]=52;c[E+64>>2]=Ob[c[(c[i>>2]|0)+12>>2]&127](i)|0;c[E+68>>2]=Ob[c[(c[i>>2]|0)+8>>2]&127](i)|0;i=0;do{D=0;do{A=c[B>>2]|0;c[E+72+(i*144|0)+(D<<2)>>2]=Wb[c[(c[A>>2]|0)+16>>2]&31](A,i,D)|0;D=D+1|0}while((D|0)<36);i=i+1|0}while((i|0)<36);c[3708]=(c[3708]|0)+1;i=ws(351)|0;if(!i){F=0;ch(F,E,e,h);c[F>>2]=616;c[2]=F;return}B=i+4+15&-16;c[B+-4>>2]=i;F=B;ch(F,E,e,h);c[F>>2]=616;c[2]=F;return}function Ec(){var a=0,b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;a=c[2]|0;b=Ob[c[(c[a>>2]|0)+104>>2]&127](a)|0;a=c[2]|0;if((b|0)>0){d=a;e=b;while(1){b=e;e=e+-1|0;f=ec[c[(c[d>>2]|0)+108>>2]&31](d,e)|0;g=c[2]|0;Mb[c[(c[g>>2]|0)+60>>2]&127](g,f);if(f)Kb[c[(c[f>>2]|0)+4>>2]&255](f);f=c[2]|0;if((b|0)<=1){h=f;break}else d=f}}else h=a;a=c[h+8>>2]|0;if((a|0)>0){d=h;e=a;do{a=e;e=e+-1|0;f=c[(c[d+16>>2]|0)+(e<<2)>>2]|0;Ke(c[f+192>>2]|0);b=c[2]|0;Mb[c[(c[b>>2]|0)+40>>2]&127](b,f);if(f)Kb[c[(c[f>>2]|0)+4>>2]&255](f);d=c[2]|0}while((a|0)>1);i=d;j=d}else{i=h;j=h}h=c[i+68>>2]|0;i=Ob[c[(c[j>>2]|0)+100>>2]&127](j)|0;j=c[2]|0;d=c[j+24>>2]|0;e=c[d+5256>>2]|0;if(j)Kb[c[(c[j>>2]|0)+4>>2]&255](j);if(d)Kb[c[(c[d>>2]|0)+4>>2]&255](d);if(e)Kb[c[(c[e>>2]|0)+4>>2]&255](e);if(i)Kb[c[(c[i>>2]|0)+4>>2]&255](i);if(!h){c[2]=0;return}Kb[c[(c[h>>2]|0)+4>>2]&255](h);c[2]=0;return}function Fc(a){a=a|0;return ws(a<<2)|0}function Gc(a){a=a|0;return ws(a<<2)|0}function Hc(a){a=a|0;return ws(a<<2)|0}function Ic(a,b,d){a=a|0;b=b|0;d=d|0;c[a+(d<<2)>>2]=b;return}function Jc(a){a=a|0;xs(a);return}function Kc(){var a=0,b=0,d=0;a=ws(4)|0;if(a){b=a;return b|0}while(1){a=c[3728]|0;c[3728]=a+0;if(!a){d=4;break}qc[a&3]();a=ws(4)|0;if(a){b=a;d=5;break}}if((d|0)==4){a=Db(4)|0;c[a>>2]=14864;zb(a|0,14896,182);}else if((d|0)==5)return b|0;return 0}function Lc(a){a=a|0;return c[a>>2]|0}function Mc(a){a=+a;var b=0;b=ws(4)|0;g[b>>2]=a;return b|0}function Nc(a,b,c){a=+a;b=+b;c=+c;var d=0;d=ws(12)|0;g[d>>2]=a;g[d+4>>2]=b;g[d+8>>2]=c;return d|0}function Oc(a,b,c,d){a=+a;b=+b;c=+c;d=+d;var e=0;e=ws(16)|0;g[e>>2]=a;g[e+4>>2]=b;g[e+8>>2]=c;g[e+12>>2]=d;return e|0}function Pc(a,b,c,d,e,f){a=+a;b=+b;c=+c;d=+d;e=+e;f=+f;var h=0;h=ws(24)|0;g[h>>2]=a;g[h+4>>2]=b;g[h+8>>2]=c;g[h+12>>2]=d;g[h+16>>2]=e;g[h+20>>2]=f;return h|0}function Qc(b,d,e,f){b=b|0;d=d|0;e=+e;f=+f;var h=0,j=0,k=0,l=0,m=0,n=0,o=0;h=i;i=i+160|0;j=h+144|0;k=h;c[j>>2]=0;c[j+4>>2]=0;c[j+8>>2]=0;c[j+12>>2]=0;l=c[d>>2]|0;m=c[d+4>>2]|0;n=c[d+8>>2]|0;g[k>>2]=0.0;c[k+4>>2]=0;c[k+72>>2]=b;b=k+76|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;c[b+16>>2]=0;c[b+20>>2]=0;g[k+100>>2]=.5;g[k+104>>2]=0.0;g[k+108>>2]=0.0;g[k+112>>2]=.800000011920929;g[k+116>>2]=1.0;a[k+120>>0]=0;g[k+124>>2]=.004999999888241291;g[k+128>>2]=.009999999776482582;g[k+132>>2]=.009999999776482582;g[k+136>>2]=.009999999776482582;c[k+8>>2]=1065353216;b=k+12|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;c[k+28>>2]=1065353216;b=k+32|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;c[k+48>>2]=1065353216;b=k+52|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;c[b+16>>2]=0;c[3708]=(c[3708]|0)+1;b=ws(659)|0;if(!b)o=0;else{d=b+4+15&-16;c[d+-4>>2]=b;o=d}Zh(o,k);k=o+284|0;d=c[k>>2]|0;g[o+224>>2]=e;g[o+228>>2]=f;c[k>>2]=d+3;c[o+4>>2]=1065353216;d=o+8|0;c[d>>2]=c[j>>2];c[d+4>>2]=c[j+4>>2];c[d+8>>2]=c[j+8>>2];c[o+20>>2]=0;c[o+24>>2]=1065353216;j=o+28|0;c[j>>2]=0;c[j+4>>2]=0;c[j+8>>2]=0;c[j+12>>2]=0;c[o+44>>2]=1065353216;g[o+48>>2]=0.0;c[o+52>>2]=l;c[o+56>>2]=m;c[o+60>>2]=n;g[o+64>>2]=0.0;i=h;return o|0}function Rc(d,e,f,h){d=d|0;e=e|0;f=f|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;i=(d|0)/3|0;d=(f|0)/3|0;c[3708]=(c[3708]|0)+1;f=ws(103)|0;if(!f)j=0;else{k=f+4+15&-16;c[k+-4>>2]=f;j=k}c[j+4>>2]=1065353216;c[j+8>>2]=1065353216;c[j+12>>2]=1065353216;g[j+16>>2]=0.0;c[j>>2]=11272;k=j+36|0;a[k>>0]=1;f=j+32|0;c[f>>2]=0;l=j+24|0;c[l>>2]=0;m=j+28|0;c[m>>2]=0;c[j+48>>2]=0;c[3708]=(c[3708]|0)+1;n=ws(51)|0;if(!n)o=0;else{p=n+4+15&-16;c[p+-4>>2]=n;o=p}p=c[l>>2]|0;if((p|0)>0){n=0;do{q=o+(n<<5)|0;r=(c[f>>2]|0)+(n<<5)|0;c[q>>2]=c[r>>2];c[q+4>>2]=c[r+4>>2];c[q+8>>2]=c[r+8>>2];c[q+12>>2]=c[r+12>>2];c[q+16>>2]=c[r+16>>2];c[q+20>>2]=c[r+20>>2];c[q+24>>2]=c[r+24>>2];c[q+28>>2]=c[r+28>>2];n=n+1|0}while((n|0)!=(p|0));}p=c[f>>2]|0;if(p){if(a[k>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[p+-4>>2]|0);}c[f>>2]=0}a[k>>0]=1;c[f>>2]=o;c[m>>2]=1;m=c[l>>2]|0;c[o+(m<<5)>>2]=i;c[o+(m<<5)+4>>2]=e;c[o+(m<<5)+8>>2]=12;c[o+(m<<5)+12>>2]=d;c[o+(m<<5)+16>>2]=h;c[o+(m<<5)+20>>2]=12;c[o+(m<<5)+24>>2]=2;c[o+(m<<5)+28>>2]=0;m=c[l>>2]|0;c[l>>2]=m+1;c[(c[f>>2]|0)+(m<<5)+24>>2]=2;c[3708]=(c[3708]|0)+1;m=ws(99)|0;if(!m)s=0;else{f=m+4+15&-16;c[f+-4>>2]=m;s=f}Wo(s,j);c[s>>2]=8864;j=s+56|0;c[j>>2]=0;c[j+4>>2]=0;b[j+8>>1]=0;c[s+4>>2]=21;c[3708]=(c[3708]|0)+1;f=ws(191)|0;if(!f)t=0;else{m=f+4+15&-16;c[m+-4>>2]=f;t=m}c[t+52>>2]=283;a[t+60>>0]=0;a[t+80>>0]=1;c[t+76>>2]=0;c[t+68>>2]=0;c[t+72>>2]=0;a[t+100>>0]=1;c[t+96>>2]=0;c[t+88>>2]=0;c[t+92>>2]=0;a[t+120>>0]=1;c[t+116>>2]=0;c[t+108>>2]=0;c[t+112>>2]=0;a[t+140>>0]=1;c[t+136>>2]=0;c[t+128>>2]=0;c[t+132>>2]=0;c[t+144>>2]=0;a[t+164>>0]=1;c[t+160>>2]=0;c[t+152>>2]=0;c[t+156>>2]=0;c[t+168>>2]=0;c[t+4>>2]=-8388609;c[t+8>>2]=-8388609;c[t+12>>2]=-8388609;g[t+16>>2]=0.0;c[t+20>>2]=2139095039;c[t+24>>2]=2139095039;c[t+28>>2]=2139095039;g[t+32>>2]=0.0;c[t>>2]=10504;c[j>>2]=t;io(t,c[s+52>>2]|0,(a[s+64>>0]|0)!=0,s+20|0,s+36|0);a[s+65>>0]=1;return s|0}function Sc(b,d){b=b|0;d=d|0;var e=0,f=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;e=i;i=i+16|0;f=e;c[f>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;c[f+12>>2]=0;h=c[d>>2]|0;j=c[d+4>>2]|0;k=c[d+8>>2]|0;c[3708]=(c[3708]|0)+1;d=ws(327)|0;if(!d)l=0;else{m=d+4+15&-16;c[m+-4>>2]=d;l=m}c[l+164>>2]=1065353216;c[l+168>>2]=1065353216;c[l+172>>2]=1065353216;g[l+176>>2]=0.0;c[l+180>>2]=0;g[l+184>>2]=999999984306749440.0;m=l+188|0;d=l+204|0;c[m>>2]=0;c[m+4>>2]=0;c[m+8>>2]=0;c[m+12>>2]=0;c[d>>2]=1;c[l+208>>2]=-1;c[l+212>>2]=-1;c[l+216>>2]=1;g[l+220>>2]=0.0;g[l+224>>2]=.5;g[l+228>>2]=0.0;g[l+232>>2]=0.0;c[l+240>>2]=0;c[l+244>>2]=-1;g[l+248>>2]=1.0;g[l+252>>2]=0.0;g[l+256>>2]=0.0;c[l+260>>2]=0;a[l+280>>0]=1;c[l+276>>2]=0;c[l+268>>2]=0;c[l+272>>2]=0;m=l+8|0;n=l+24|0;c[m>>2]=0;c[m+4>>2]=0;c[m+8>>2]=0;c[m+12>>2]=0;c[n>>2]=1065353216;o=l+28|0;p=l+44|0;c[o>>2]=0;c[o+4>>2]=0;c[o+8>>2]=0;c[o+12>>2]=0;c[p>>2]=1065353216;q=l+48|0;c[q>>2]=0;c[q+4>>2]=0;c[q+8>>2]=0;c[q+12>>2]=0;c[q+16>>2]=0;c[l>>2]=8088;a[l+304>>0]=1;c[l+300>>2]=0;c[l+292>>2]=0;c[l+296>>2]=0;c[l+236>>2]=4;c[l+284>>2]=1;c[l+4>>2]=1065353216;c[m>>2]=c[f>>2];c[m+4>>2]=c[f+4>>2];c[m+8>>2]=c[f+8>>2];c[l+20>>2]=0;c[n>>2]=1065353216;c[o>>2]=0;c[o+4>>2]=0;c[o+8>>2]=0;c[o+12>>2]=0;c[p>>2]=1065353216;g[q>>2]=0.0;c[l+52>>2]=h;c[l+56>>2]=j;c[l+60>>2]=k;g[l+64>>2]=0.0;hi(l,b);c[d>>2]=4;i=e;return l|0}function Tc(a,b,d,e,f,h){a=+a;b=+b;d=+d;e=+e;f=+f;h=+h;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0.0,t=0,u=0.0,v=0,w=0,x=0.0,y=0;j=i;i=i+16|0;k=j;c[3708]=(c[3708]|0)+1;l=ws(79)|0;if(!l)m=0;else{n=l+4+15&-16;c[n+-4>>2]=l;m=n}g[k>>2]=a;n=k+4|0;g[n>>2]=b;l=k+8|0;g[l>>2]=d;g[k+12>>2]=0.0;c[m+8>>2]=0;c[m+12>>2]=-1;o=m+16|0;c[o>>2]=1065353216;p=m+20|0;c[p>>2]=1065353216;q=m+24|0;c[q>>2]=1065353216;g[m+28>>2]=0.0;r=m+48|0;g[r>>2]=.03999999910593033;c[m+56>>2]=0;c[m>>2]=8656;c[m+4>>2]=0;d=+g[k>>2];b=+g[n>>2];a=+g[l>>2];s=+g[k+((d<b?(d<a?0:2):b<a?1:2)<<2)>>2]*.10000000149011612;if(s<.03999999910593033){a=+cm(m);b=+Zb[c[(c[m>>2]|0)+48>>2]&7](m);d=+Zb[c[(c[m>>2]|0)+48>>2]&7](m);t=m+32|0;u=a+ +g[t>>2];v=m+36|0;a=b+ +g[v>>2];w=m+40|0;b=d+ +g[w>>2];g[r>>2]=s;s=+Zb[c[(c[m>>2]|0)+48>>2]&7](m);d=+Zb[c[(c[m>>2]|0)+48>>2]&7](m);x=b-+Zb[c[(c[m>>2]|0)+48>>2]&7](m);g[t>>2]=u-s;g[v>>2]=a-d;g[w>>2]=x;g[m+44>>2]=0.0;y=c[m>>2]|0}else y=8656;x=+Zb[c[y+48>>2]&7](m);d=+Zb[c[(c[m>>2]|0)+48>>2]&7](m);a=+Zb[c[(c[m>>2]|0)+48>>2]&7](m);s=+g[n>>2]*+g[p>>2]-d;d=+g[l>>2]*+g[q>>2]-a;g[m+32>>2]=+g[k>>2]*+g[o>>2]-x;g[m+36>>2]=s;g[m+40>>2]=d;g[m+44>>2]=0.0;o=Le(m,e,f,h)|0;i=j;return o|0}function Uc(){var a=0,b=0,d=0;c[3708]=(c[3708]|0)+1;a=ws(115)|0;if(!a)b=0;else{d=a+4+15&-16;c[d+-4>>2]=a;b=d}cn(b,1);return b|0}function Vc(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0.0,r=0.0,s=0.0,t=0.0,u=0.0,v=0.0,w=0.0,x=0.0,y=0.0,z=0.0,A=0.0;f=i;i=i+64|0;h=f;c[h>>2]=1065353216;j=h+4|0;k=h+20|0;c[j>>2]=0;c[j+4>>2]=0;c[j+8>>2]=0;c[j+12>>2]=0;c[k>>2]=1065353216;l=h+24|0;m=h+40|0;c[l>>2]=0;c[l+4>>2]=0;c[l+8>>2]=0;c[l+12>>2]=0;c[m>>2]=1065353216;n=h+44|0;c[n>>2]=0;c[n+4>>2]=0;c[n+8>>2]=0;o=c[b+4>>2]|0;p=c[b+8>>2]|0;c[h+48>>2]=c[b>>2];c[h+52>>2]=o;c[h+56>>2]=p;g[h+60>>2]=0.0;if(!d){fn(a,h,e);i=f;return}q=+g[d>>2];r=+g[d+4>>2];s=+g[d+8>>2];t=+g[d+12>>2];u=2.0/(q*q+r*r+s*s+t*t);v=q*u;w=r*u;x=s*u;u=t*v;y=t*w;z=t*x;t=q*v;v=q*w;A=q*x;q=r*w;w=r*x;r=s*x;g[h>>2]=1.0-(q+r);g[j>>2]=v-z;g[h+8>>2]=A+y;g[h+12>>2]=0.0;g[h+16>>2]=v+z;g[k>>2]=1.0-(t+r);g[l>>2]=w-u;g[h+28>>2]=0.0;g[h+32>>2]=A-y;g[h+36>>2]=w+u;g[m>>2]=1.0-(t+q);g[n>>2]=0.0;fn(a,h,e);i=f;return}function Wc(a,b,d,e,f,h){a=+a;b=+b;d=+d;e=+e;f=+f;h=+h;var j=0,k=0,l=0,m=0,n=0;j=i;i=i+16|0;k=j;c[3708]=(c[3708]|0)+1;l=ws(79)|0;if(!l)m=0;else{n=l+4+15&-16;c[n+-4>>2]=l;m=n}g[k>>2]=a;g[k+4>>2]=b;g[k+8>>2]=d;g[k+12>>2]=0.0;Ln(m,k);k=Le(m,e,f,h)|0;i=j;return k|0}function Xc(a,b,d,e,f){a=+a;b=+b;d=+d;e=+e;f=+f;var h=0,i=0,j=0;c[3708]=(c[3708]|0)+1;h=ws(99)|0;if(!h)i=0;else{j=h+4+15&-16;c[j+-4>>2]=h;i=j}c[i+8>>2]=0;c[i+12>>2]=-1;c[i+16>>2]=1065353216;c[i+20>>2]=1065353216;c[i+24>>2]=1065353216;g[i+28>>2]=0.0;g[i+48>>2]=.03999999910593033;c[i>>2]=9968;g[i+60>>2]=a;g[i+64>>2]=b;c[i+4>>2]=11;c[i+68>>2]=0;c[i+72>>2]=1;c[i+76>>2]=2;g[i+32>>2]=a;g[i+36>>2]=b;g[i+40>>2]=a;g[i+56>>2]=a/+P(+(a*a+b*b));return Le(i,d,e,f)|0}function Yc(a,b,d,e){a=+a;b=+b;d=+d;e=+e;var f=0,h=0,i=0;c[3708]=(c[3708]|0)+1;f=ws(75)|0;if(!f)h=0;else{i=f+4+15&-16;c[i+-4>>2]=f;h=i}c[h+8>>2]=0;c[h+12>>2]=-1;c[h+16>>2]=1065353216;c[h+20>>2]=1065353216;c[h+24>>2]=1065353216;g[h+28>>2]=0.0;c[h>>2]=11048;c[h+4>>2]=8;g[h+32>>2]=a;g[h+48>>2]=a;return Le(h,b,d,e)|0}function Zc(a,b,d,e,f){a=+a;b=+b;d=+d;e=+e;f=+f;var h=0,i=0,j=0;c[3708]=(c[3708]|0)+1;h=ws(79)|0;if(!h)i=0;else{j=h+4+15&-16;c[j+-4>>2]=h;i=j}c[i+8>>2]=0;c[i+12>>2]=-1;c[i+16>>2]=1065353216;c[i+20>>2]=1065353216;c[i+24>>2]=1065353216;g[i+28>>2]=0.0;g[i+48>>2]=.03999999910593033;c[i>>2]=9536;c[i+4>>2]=10;c[i+56>>2]=1;g[i+32>>2]=a;g[i+36>>2]=b*.5;g[i+40>>2]=a;g[i+44>>2]=0.0;return Le(i,d,e,f)|0}function _c(){var a=0,b=0,d=0;c[3708]=(c[3708]|0)+1;a=ws(55)|0;if(!a)b=0;else{d=a+4+15&-16;c[d+-4>>2]=a;b=d}c[b+8>>2]=0;c[b+12>>2]=-1;g[b+16>>2]=0.0;c[b>>2]=10384;c[b+4>>2]=27;return b|0}function $c(a){a=a|0;var b=0;switch(c[(c[a+192>>2]|0)+4>>2]|0){case 10:{b=88;break}case 11:{b=80;break}case 13:{b=64;break}case 21:{b=48;break}case 27:{b=40;break}case 31:{b=24;break}case 8:{b=11176;break}case 0:{b=96;break}default:b=16}return b|0}function ad(a,b,d,e){a=a|0;b=+b;d=+d;e=+e;var f=0;f=a+284|0;c[f>>2]=(c[f>>2]|0)+1;g[a+52>>2]=b;g[a+56>>2]=d;g[a+60>>2]=e;g[a+64>>2]=0.0;return}function bd(a,b,d,e,f){a=a|0;b=+b;d=+d;e=+e;f=+f;var h=0.0,i=0.0,j=0.0,k=0.0,l=0.0,m=0.0,n=0.0,o=0;h=2.0/(b*b+d*d+e*e+f*f);i=h*b;j=h*d;k=h*e;h=i*f;l=j*f;m=k*f;f=i*b;i=j*b;n=k*b;b=j*d;j=k*d;d=k*e;o=a+284|0;c[o>>2]=(c[o>>2]|0)+1;g[a+4>>2]=1.0-(b+d);g[a+8>>2]=i-m;g[a+12>>2]=n+l;g[a+16>>2]=0.0;g[a+20>>2]=i+m;g[a+24>>2]=1.0-(f+d);g[a+28>>2]=j-h;g[a+32>>2]=0.0;g[a+36>>2]=n-l;g[a+40>>2]=j+h;g[a+44>>2]=1.0-(f+b);g[a+48>>2]=0.0;return}function cd(a,b,d,e,f,h,i,j){a=a|0;b=+b;d=+d;e=+e;f=+f;h=+h;i=+i;j=+j;var k=0.0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0,r=0;k=2.0/(f*f+h*h+i*i+j*j);l=k*f;m=k*h;n=k*i;k=l*j;o=m*j;p=n*j;j=l*f;l=m*f;q=n*f;f=m*h;m=n*h;h=n*i;r=a+284|0;c[r>>2]=(c[r>>2]|0)+1;g[a+4>>2]=1.0-(f+h);g[a+8>>2]=l-p;g[a+12>>2]=q+o;g[a+16>>2]=0.0;g[a+20>>2]=l+p;g[a+24>>2]=1.0-(j+h);g[a+28>>2]=m-k;g[a+32>>2]=0.0;g[a+36>>2]=q-o;g[a+40>>2]=m+k;g[a+44>>2]=1.0-(j+f);g[a+48>>2]=0.0;g[a+52>>2]=b;g[a+56>>2]=d;g[a+60>>2]=e;g[a+64>>2]=0.0;return}function dd(a,b){a=a|0;b=b|0;var d=0,e=0;d=c[a+56>>2]|0;e=c[a+60>>2]|0;c[b>>2]=c[a+52>>2];c[b+4>>2]=d;c[b+8>>2]=e;return}function ed(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;e=i;i=i+80|0;f=e+16|0;g=e;h=a+4|0;c[f>>2]=c[h>>2];c[f+4>>2]=c[h+4>>2];c[f+8>>2]=c[h+8>>2];c[f+12>>2]=c[h+12>>2];h=f+16|0;j=a+20|0;c[h>>2]=c[j>>2];c[h+4>>2]=c[j+4>>2];c[h+8>>2]=c[j+8>>2];c[h+12>>2]=c[j+12>>2];j=f+32|0;h=a+36|0;c[j>>2]=c[h>>2];c[j+4>>2]=c[h+4>>2];c[j+8>>2]=c[h+8>>2];c[j+12>>2]=c[h+12>>2];h=f+48|0;j=a+52|0;c[h>>2]=c[j>>2];c[h+4>>2]=c[j+4>>2];c[h+8>>2]=c[j+8>>2];c[h+12>>2]=c[j+12>>2];j=c[f+52>>2]|0;a=c[f+56>>2]|0;c[b>>2]=c[h>>2];c[b+4>>2]=j;c[b+8>>2]=a;Me(f,g);c[d>>2]=c[g>>2];c[d+4>>2]=c[g+4>>2];c[d+8>>2]=c[g+8>>2];c[d+12>>2]=c[g+12>>2];i=e;return}function fd(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0;g=i;i=i+80|0;h=g+16|0;j=g;k=a+68|0;c[h>>2]=c[k>>2];c[h+4>>2]=c[k+4>>2];c[h+8>>2]=c[k+8>>2];c[h+12>>2]=c[k+12>>2];k=h+16|0;l=a+84|0;c[k>>2]=c[l>>2];c[k+4>>2]=c[l+4>>2];c[k+8>>2]=c[l+8>>2];c[k+12>>2]=c[l+12>>2];l=h+32|0;k=a+100|0;c[l>>2]=c[k>>2];c[l+4>>2]=c[k+4>>2];c[l+8>>2]=c[k+8>>2];c[l+12>>2]=c[k+12>>2];k=h+48|0;l=a+116|0;c[k>>2]=c[l>>2];c[k+4>>2]=c[l+4>>2];c[k+8>>2]=c[l+8>>2];c[k+12>>2]=c[l+12>>2];l=c[h+52>>2]|0;m=c[h+56>>2]|0;c[b>>2]=c[k>>2];c[b+4>>2]=l;c[b+8>>2]=m;Me(h,j);c[d>>2]=c[j>>2];c[d+4>>2]=c[j+4>>2];c[d+8>>2]=c[j+8>>2];c[d+12>>2]=c[j+12>>2];j=c[a+136>>2]|0;d=c[a+140>>2]|0;c[e>>2]=c[a+132>>2];c[e+4>>2]=j;c[e+8>>2]=d;d=c[a+152>>2]|0;e=c[a+156>>2]|0;c[f>>2]=c[a+148>>2];c[f+4>>2]=d;c[f+8>>2]=e;i=g;return}function gd(a,b){a=a|0;b=+b;Jb[c[(c[a>>2]|0)+44>>2]&31](a,b);return}function hd(a){a=a|0;return +(+Zb[c[(c[a>>2]|0)+48>>2]&7](a));}function id(a,b){a=a|0;b=b|0;c[a+244>>2]=b;return}function jd(a){a=a|0;return c[a+244>>2]|0}function kd(b,d,e,f,h,j,l,m,n,o,p,q){b=b|0;d=+d;e=e|0;f=f|0;h=+h;j=+j;l=+l;m=+m;n=+n;o=+o;p=+p;q=+q;var r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0.0,F=0.0,G=0.0,H=0,I=0.0,J=0.0,K=0.0,L=0,M=0.0,N=0.0,O=0.0,P=0.0,Q=0.0,R=0.0,S=0.0,T=0.0,U=0.0,V=0.0,W=0.0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0;r=i;i=i+192|0;s=r+180|0;t=r+176|0;u=r+172|0;v=r+168|0;w=r+164|0;x=r+160|0;y=r+144|0;z=r;c[y>>2]=0;c[y+4>>2]=0;c[y+8>>2]=0;c[y+12>>2]=0;A=c[e>>2]|0;B=c[e+4>>2]|0;C=c[e+8>>2]|0;if(!f){D=1065353216;E=0.0;F=0.0;G=0.0;H=1065353216;I=0.0;J=0.0;K=0.0;L=1065353216}else{M=+g[f>>2];N=+g[f+4>>2];O=+g[f+8>>2];P=+g[f+12>>2];Q=2.0/(M*M+N*N+O*O+P*P);R=M*Q;S=N*Q;T=O*Q;Q=P*R;U=P*S;V=P*T;P=M*R;R=M*S;W=M*T;M=N*S;S=N*T;N=O*T;f=(g[k>>2]=1.0-(M+N),c[k>>2]|0);e=(g[k>>2]=1.0-(P+N),c[k>>2]|0);D=f;E=R-V;F=W+U;G=R+V;H=e;I=S-Q;J=W-U;K=S+Q;L=(g[k>>2]=1.0-(P+M),c[k>>2]|0);}if(d>0.0)Tb[c[(c[b>>2]|0)+32>>2]&15](b,d,y);g[z>>2]=d;c[z+4>>2]=0;c[z+72>>2]=b;b=z+76|0;c[b>>2]=c[y>>2];c[b+4>>2]=c[y+4>>2];c[b+8>>2]=c[y+8>>2];c[b+12>>2]=c[y+12>>2];g[z+92>>2]=0.0;g[z+96>>2]=0.0;g[z+100>>2]=.5;g[z+104>>2]=0.0;g[z+108>>2]=0.0;g[z+112>>2]=.800000011920929;g[z+116>>2]=1.0;a[z+120>>0]=0;g[z+124>>2]=.004999999888241291;g[z+128>>2]=.009999999776482582;g[z+132>>2]=.009999999776482582;g[z+136>>2]=.009999999776482582;c[z+8>>2]=1065353216;y=z+12|0;c[y>>2]=0;c[y+4>>2]=0;c[y+8>>2]=0;c[y+12>>2]=0;c[z+28>>2]=1065353216;y=z+32|0;c[y>>2]=0;c[y+4>>2]=0;c[y+8>>2]=0;c[y+12>>2]=0;c[z+48>>2]=1065353216;y=z+52|0;c[y>>2]=0;c[y+4>>2]=0;c[y+8>>2]=0;c[y+12>>2]=0;c[y+16>>2]=0;c[3708]=(c[3708]|0)+1;y=ws(659)|0;if(!y)X=0;else{b=y+4+15&-16;c[b+-4>>2]=y;X=b}Zh(X,z);g[X+496>>2]=.800000011920929;g[X+500>>2]=.5;g[s>>2]=h;g[t>>2]=j;g[u>>2]=0.0;g[v>>2]=1.0;c[X+468>>2]=c[(h<0.0?u:h>1.0?v:s)>>2];g[w>>2]=0.0;g[x>>2]=1.0;c[X+472>>2]=c[(j<0.0?w:j>1.0?x:t)>>2];t=X+284|0;x=c[t>>2]|0;g[X+568>>2]=m;g[X+572>>2]=n;g[X+576>>2]=o;g[X+580>>2]=0.0;g[X+224>>2]=p;c[t>>2]=x+3;g[X+228>>2]=q;if(!(l<.5)){Y=x+4|0;c[t>>2]=Y;Z=X+4|0;c[Z>>2]=D;_=X+8|0;g[_>>2]=E;$=X+12|0;g[$>>2]=F;aa=X+16|0;g[aa>>2]=0.0;ba=X+20|0;g[ba>>2]=G;ca=X+24|0;c[ca>>2]=H;da=X+28|0;g[da>>2]=I;ea=X+32|0;g[ea>>2]=0.0;fa=X+36|0;g[fa>>2]=J;ga=X+40|0;g[ga>>2]=K;ha=X+44|0;c[ha>>2]=L;ia=X+48|0;g[ia>>2]=0.0;ja=X+52|0;c[ja>>2]=A;ka=X+56|0;c[ka>>2]=B;la=X+60|0;c[la>>2]=C;ma=X+64|0;g[ma>>2]=0.0;i=r;return X|0}g[X+256>>2]=.03999999910593033;g[X+252>>2]=l*.5;Y=x+4|0;c[t>>2]=Y;Z=X+4|0;c[Z>>2]=D;_=X+8|0;g[_>>2]=E;$=X+12|0;g[$>>2]=F;aa=X+16|0;g[aa>>2]=0.0;ba=X+20|0;g[ba>>2]=G;ca=X+24|0;c[ca>>2]=H;da=X+28|0;g[da>>2]=I;ea=X+32|0;g[ea>>2]=0.0;fa=X+36|0;g[fa>>2]=J;ga=X+40|0;g[ga>>2]=K;ha=X+44|0;c[ha>>2]=L;ia=X+48|0;g[ia>>2]=0.0;ja=X+52|0;c[ja>>2]=A;ka=X+56|0;c[ka>>2]=B;la=X+60|0;c[la>>2]=C;ma=X+64|0;g[ma>>2]=0.0;i=r;return X|0}function ld(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,h=0,i=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0.0,s=0.0,t=0,u=0.0,v=0.0,w=0.0,x=0,y=0,z=0.0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0.0,N=0.0,O=0.0,P=0.0,Q=0.0,R=0.0,S=0.0,T=0.0,U=0.0,V=0.0,W=0.0;c[3708]=(c[3708]|0)+1;f=ws(327)|0;if(!f)h=0;else{i=f+4+15&-16;c[i+-4>>2]=f;h=i}i=h+4|0;c[h+164>>2]=1065353216;c[h+168>>2]=1065353216;c[h+172>>2]=1065353216;g[h+176>>2]=0.0;c[h+180>>2]=0;g[h+184>>2]=999999984306749440.0;f=h+188|0;j=h+204|0;c[f>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;c[f+12>>2]=0;c[j>>2]=1;c[h+208>>2]=-1;c[h+212>>2]=-1;c[h+216>>2]=1;g[h+220>>2]=0.0;g[h+224>>2]=.5;g[h+228>>2]=0.0;g[h+232>>2]=0.0;c[h+240>>2]=0;c[h+244>>2]=-1;g[h+248>>2]=1.0;g[h+252>>2]=0.0;g[h+256>>2]=0.0;c[h+260>>2]=0;a[h+280>>0]=1;c[h+276>>2]=0;c[h+268>>2]=0;c[h+272>>2]=0;f=h+284|0;c[f>>2]=0;c[i>>2]=1065353216;l=h+8|0;m=h+24|0;c[l>>2]=0;c[l+4>>2]=0;c[l+8>>2]=0;c[l+12>>2]=0;c[m>>2]=1065353216;n=h+28|0;o=h+44|0;c[n>>2]=0;c[n+4>>2]=0;c[n+8>>2]=0;c[n+12>>2]=0;c[o>>2]=1065353216;p=h+48|0;c[p>>2]=0;c[p+4>>2]=0;c[p+8>>2]=0;c[p+12>>2]=0;c[p+16>>2]=0;c[h>>2]=8088;a[h+304>>0]=1;c[h+300>>2]=0;c[h+292>>2]=0;c[h+296>>2]=0;c[h+236>>2]=4;hi(h,b);c[j>>2]=4;j=c[d>>2]|0;b=c[d+4>>2]|0;q=c[d+8>>2]|0;if(!e){r=0.0;s=0.0;t=1065353216;u=0.0;v=0.0;w=0.0;x=1065353216;y=1065353216;z=0.0;A=c[f>>2]|0;B=A+1|0;c[f>>2]=B;c[i>>2]=y;g[l>>2]=z;C=h+12|0;g[C>>2]=r;D=h+16|0;g[D>>2]=0.0;E=h+20|0;g[E>>2]=s;c[m>>2]=t;g[n>>2]=u;F=h+32|0;g[F>>2]=0.0;G=h+36|0;g[G>>2]=v;H=h+40|0;g[H>>2]=w;c[o>>2]=x;g[p>>2]=0.0;I=h+52|0;c[I>>2]=j;J=h+56|0;c[J>>2]=b;K=h+60|0;c[K>>2]=q;L=h+64|0;g[L>>2]=0.0;return h|0}M=+g[e>>2];N=+g[e+4>>2];O=+g[e+8>>2];P=+g[e+12>>2];Q=2.0/(M*M+N*N+O*O+P*P);R=M*Q;S=N*Q;T=O*Q;Q=P*R;U=P*S;V=P*T;P=M*R;R=M*S;W=M*T;M=N*S;S=N*T;N=O*T;e=(g[k>>2]=1.0-(M+N),c[k>>2]|0);d=(g[k>>2]=1.0-(P+N),c[k>>2]|0);r=W+U;s=R+V;t=d;u=S-Q;v=W-U;w=S+Q;x=(g[k>>2]=1.0-(P+M),c[k>>2]|0);y=e;z=R-V;A=c[f>>2]|0;B=A+1|0;c[f>>2]=B;c[i>>2]=y;g[l>>2]=z;C=h+12|0;g[C>>2]=r;D=h+16|0;g[D>>2]=0.0;E=h+20|0;g[E>>2]=s;c[m>>2]=t;g[n>>2]=u;F=h+32|0;g[F>>2]=0.0;G=h+36|0;g[G>>2]=v;H=h+40|0;g[H>>2]=w;c[o>>2]=x;g[p>>2]=0.0;I=h+52|0;c[I>>2]=j;J=h+56|0;c[J>>2]=b;K=h+60|0;c[K>>2]=q;L=h+64|0;g[L>>2]=0.0;return h|0}function md(a){a=a|0;Ke(c[a+192>>2]|0);if(!a)return;Kb[c[(c[a>>2]|0)+4>>2]&255](a);return}function nd(a,b,d){a=+a;b=+b;d=+d;var e=0;e=c[2]|0;return sc[c[(c[e>>2]|0)+184>>2]&3](e,a,~~b,d)|0}function od(a,b,d){a=+a;b=b|0;d=d|0;var e=0;e=c[2]|0;return +(+bc[c[(c[e>>2]|0)+188>>2]&1](e,a,b,d));}function pd(a){a=+a;var b=0;b=c[2]|0;Jb[c[(c[b>>2]|0)+192>>2]&31](b,a);return}function qd(){var a=0;a=c[2]|0;Kb[c[(c[a>>2]|0)+196>>2]&255](a);return}function rd(a,b,d,e,f,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0.0,u=0.0,v=0.0,w=0.0,x=0.0,y=0.0,z=0.0,A=0.0,B=0.0,C=0.0,D=0.0,E=0;j=i;i=i+128|0;k=j+64|0;l=j;c[k>>2]=1065353216;m=k+4|0;n=k+20|0;c[m>>2]=0;c[m+4>>2]=0;c[m+8>>2]=0;c[m+12>>2]=0;c[n>>2]=1065353216;o=k+24|0;p=k+40|0;c[o>>2]=0;c[o+4>>2]=0;c[o+8>>2]=0;c[o+12>>2]=0;c[p>>2]=1065353216;q=k+44|0;c[q>>2]=0;c[q+4>>2]=0;c[q+8>>2]=0;r=c[b+4>>2]|0;s=c[b+8>>2]|0;c[k+48>>2]=c[b>>2];c[k+52>>2]=r;c[k+56>>2]=s;g[k+60>>2]=0.0;if(d){t=+g[d>>2];u=+g[d+4>>2];v=+g[d+8>>2];w=+g[d+12>>2];x=2.0/(t*t+u*u+v*v+w*w);y=t*x;z=u*x;A=v*x;x=w*y;B=w*z;C=w*A;w=t*y;y=t*z;D=t*A;t=u*z;z=u*A;u=v*A;g[k>>2]=1.0-(t+u);g[m>>2]=y-C;g[k+8>>2]=D+B;g[k+12>>2]=0.0;g[k+16>>2]=y+C;g[n>>2]=1.0-(w+u);g[o>>2]=z-x;g[k+28>>2]=0.0;g[k+32>>2]=D-B;g[k+36>>2]=z+x;g[p>>2]=1.0-(w+t);g[q>>2]=0.0}c[l>>2]=1065353216;q=l+4|0;p=l+20|0;c[q>>2]=0;c[q+4>>2]=0;c[q+8>>2]=0;c[q+12>>2]=0;c[p>>2]=1065353216;o=l+24|0;n=l+40|0;c[o>>2]=0;c[o+4>>2]=0;c[o+8>>2]=0;c[o+12>>2]=0;c[n>>2]=1065353216;m=l+44|0;c[m>>2]=0;c[m+4>>2]=0;c[m+8>>2]=0;d=c[f+4>>2]|0;s=c[f+8>>2]|0;c[l+48>>2]=c[f>>2];c[l+52>>2]=d;c[l+56>>2]=s;g[l+60>>2]=0.0;if(h){t=+g[h>>2];w=+g[h+4>>2];x=+g[h+8>>2];z=+g[h+12>>2];B=2.0/(t*t+w*w+x*x+z*z);D=t*B;u=w*B;C=x*B;B=z*D;y=z*u;A=z*C;z=t*D;D=t*u;v=t*C;t=w*u;u=w*C;w=x*C;g[l>>2]=1.0-(t+w);g[q>>2]=D-A;g[l+8>>2]=v+y;g[l+12>>2]=0.0;g[l+16>>2]=D+A;g[p>>2]=1.0-(z+w);g[o>>2]=u-B;g[l+28>>2]=0.0;g[l+32>>2]=v-y;g[l+36>>2]=u+B;g[n>>2]=1.0-(z+t);g[m>>2]=0.0}c[3708]=(c[3708]|0)+1;m=ws(1331)|0;if(!m){E=0;Wf(E,a,e,k,l,1);i=j;return E|0}n=m+4+15&-16;c[n+-4>>2]=m;E=n;Wf(E,a,e,k,l,1);i=j;return E|0}function sd(b,d,e,f,h,j,k,l){b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;j=j|0;k=k|0;l=l|0;var m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0.0,x=0.0,y=0.0,z=0.0,A=0.0,B=0.0,C=0.0,D=0.0,E=0.0,F=0.0,G=0.0,H=0;m=i;i=i+128|0;n=m+64|0;o=m;c[n>>2]=1065353216;p=n+4|0;q=n+20|0;c[p>>2]=0;c[p+4>>2]=0;c[p+8>>2]=0;c[p+12>>2]=0;c[q>>2]=1065353216;r=n+24|0;s=n+40|0;c[r>>2]=0;c[r+4>>2]=0;c[r+8>>2]=0;c[r+12>>2]=0;c[s>>2]=1065353216;t=n+44|0;c[t>>2]=0;c[t+4>>2]=0;c[t+8>>2]=0;u=c[d+4>>2]|0;v=c[d+8>>2]|0;c[n+48>>2]=c[d>>2];c[n+52>>2]=u;c[n+56>>2]=v;g[n+60>>2]=0.0;if(e){w=+g[e>>2];x=+g[e+4>>2];y=+g[e+8>>2];z=+g[e+12>>2];A=2.0/(w*w+x*x+y*y+z*z);B=w*A;C=x*A;D=y*A;A=z*B;E=z*C;F=z*D;z=w*B;B=w*C;G=w*D;w=x*C;C=x*D;x=y*D;g[n>>2]=1.0-(w+x);g[p>>2]=B-F;g[n+8>>2]=G+E;g[n+12>>2]=0.0;g[n+16>>2]=B+F;g[q>>2]=1.0-(z+x);g[r>>2]=C-A;g[n+28>>2]=0.0;g[n+32>>2]=G-E;g[n+36>>2]=C+A;g[s>>2]=1.0-(z+w);g[t>>2]=0.0}c[o>>2]=1065353216;t=o+4|0;s=o+20|0;c[t>>2]=0;c[t+4>>2]=0;c[t+8>>2]=0;c[t+12>>2]=0;c[s>>2]=1065353216;r=o+24|0;q=o+40|0;c[r>>2]=0;c[r+4>>2]=0;c[r+8>>2]=0;c[r+12>>2]=0;c[q>>2]=1065353216;p=o+44|0;c[p>>2]=0;c[p+4>>2]=0;c[p+8>>2]=0;e=c[h+4>>2]|0;v=c[h+8>>2]|0;c[o+48>>2]=c[h>>2];c[o+52>>2]=e;c[o+56>>2]=v;g[o+60>>2]=0.0;if(j){w=+g[j>>2];z=+g[j+4>>2];A=+g[j+8>>2];C=+g[j+12>>2];E=2.0/(w*w+z*z+A*A+C*C);G=w*E;x=z*E;F=A*E;E=C*G;B=C*x;D=C*F;C=w*G;G=w*x;y=w*F;w=z*x;x=z*F;z=A*F;g[o>>2]=1.0-(w+z);g[t>>2]=G-D;g[o+8>>2]=y+B;g[o+12>>2]=0.0;g[o+16>>2]=G+D;g[s>>2]=1.0-(C+z);g[r>>2]=x-E;g[o+28>>2]=0.0;g[o+32>>2]=y-B;g[o+36>>2]=x+E;g[q>>2]=1.0-(C+w);g[p>>2]=0.0}c[3708]=(c[3708]|0)+1;p=ws(1407)|0;if(!p)H=0;else{q=p+4+15&-16;c[q+-4>>2]=p;H=q}Wf(H,b,f,n,o,1);c[H>>2]=1208;c[H+4>>2]=9;g[H+1316>>2]=0.0;o=H+1340|0;g[o>>2]=0.0;n=H+1364|0;g[n>>2]=1.0;g[H+1320>>2]=0.0;f=H+1344|0;g[f>>2]=0.0;b=H+1368|0;g[b>>2]=1.0;g[H+1324>>2]=0.0;q=H+1348|0;g[q>>2]=0.0;p=H+1372|0;g[p>>2]=1.0;g[H+1328>>2]=0.0;r=H+1352|0;g[r>>2]=0.0;s=H+1376|0;g[s>>2]=1.0;g[H+1332>>2]=0.0;t=H+1356|0;g[t>>2]=0.0;j=H+1380|0;g[j>>2]=1.0;g[H+1336>>2]=0.0;v=H+1360|0;g[v>>2]=0.0;e=H+1384|0;g[e>>2]=1.0;a[H+1309>>0]=1;a[H+788>>0]=1;c[o>>2]=c[k>>2];c[n>>2]=c[l>>2];a[H+1310>>0]=1;a[H+789>>0]=1;c[f>>2]=c[k+4>>2];c[b>>2]=c[l+4>>2];a[H+1311>>0]=1;a[H+790>>0]=1;c[q>>2]=c[k+8>>2];c[p>>2]=c[l+8>>2];a[H+1312>>0]=1;a[H+912>>0]=1;c[r>>2]=c[k+12>>2];c[s>>2]=c[l+12>>2];a[H+1313>>0]=1;a[H+976>>0]=1;c[t>>2]=c[k+16>>2];c[j>>2]=c[l+16>>2];a[H+1314>>0]=1;a[H+1040>>0]=1;c[v>>2]=c[k+20>>2];c[e>>2]=c[l+20>>2];i=m;return H|0}function td(b,d,e,f,h,i){b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;i=i|0;var j=0,l=0,m=0,n=0,o=0,p=0.0,q=0.0,r=0.0,s=0,t=0.0,u=0.0,v=0.0,w=0.0,x=0.0,y=0.0,z=0.0,A=0.0,B=0.0,C=0.0,D=0.0,E=0.0,F=0.0,G=0.0,H=0,I=0,J=0,K=0.0,L=0.0,M=0.0,N=0,O=0.0,P=0.0,Q=0.0,R=0;j=c[d>>2]|0;l=c[d+4>>2]|0;m=c[d+8>>2]|0;if(!e){n=1065353216;o=1065353216;p=0.0;q=0.0;r=0.0;s=1065353216;t=0.0;u=0.0;v=0.0}else{w=+g[e>>2];x=+g[e+4>>2];y=+g[e+8>>2];z=+g[e+12>>2];A=2.0/(w*w+x*x+y*y+z*z);B=w*A;C=x*A;D=y*A;A=z*B;E=z*C;F=z*D;z=w*B;B=w*C;G=w*D;w=x*C;C=x*D;x=y*D;e=(g[k>>2]=1.0-(w+x),c[k>>2]|0);d=(g[k>>2]=1.0-(z+x),c[k>>2]|0);n=e;o=d;p=C-A;q=G-E;r=C+A;s=(g[k>>2]=1.0-(z+w),c[k>>2]|0);t=B-F;u=G+E;v=B+F}d=c[h>>2]|0;e=c[h+4>>2]|0;H=c[h+8>>2]|0;if(!i){I=1065353216;J=1065353216;K=0.0;L=0.0;M=0.0;N=1065353216;O=0.0;P=0.0;Q=0.0}else{F=+g[i>>2];B=+g[i+4>>2];E=+g[i+8>>2];G=+g[i+12>>2];w=2.0/(F*F+B*B+E*E+G*G);z=F*w;A=B*w;C=E*w;w=G*z;x=G*A;D=G*C;G=F*z;z=F*A;y=F*C;F=B*A;A=B*C;B=E*C;i=(g[k>>2]=1.0-(F+B),c[k>>2]|0);h=(g[k>>2]=1.0-(G+B),c[k>>2]|0);I=i;J=h;K=A-w;L=y-x;M=A+w;N=(g[k>>2]=1.0-(G+F),c[k>>2]|0);O=z-D;P=y+x;Q=z+D}c[3708]=(c[3708]|0)+1;h=ws(787)|0;if(!h)R=0;else{i=h+4+15&-16;c[i+-4>>2]=h;R=i}c[R+4>>2]=4;c[R+8>>2]=-1;c[R+12>>2]=-1;g[R+16>>2]=3402823466385288598117041.0e14;a[R+20>>0]=1;a[R+21>>0]=0;c[R+24>>2]=-1;c[R+28>>2]=b;c[R+32>>2]=f;g[R+36>>2]=0.0;g[R+40>>2]=.30000001192092896;c[R+44>>2]=0;c[R>>2]=1360;c[R+552>>2]=n;g[R+556>>2]=t;g[R+560>>2]=u;g[R+564>>2]=0.0;g[R+568>>2]=v;c[R+572>>2]=o;g[R+576>>2]=p;g[R+580>>2]=0.0;g[R+584>>2]=q;g[R+588>>2]=r;c[R+592>>2]=s;g[R+596>>2]=0.0;c[R+600>>2]=j;c[R+604>>2]=l;c[R+608>>2]=m;g[R+612>>2]=0.0;c[R+616>>2]=I;g[R+620>>2]=O;g[R+624>>2]=P;g[R+628>>2]=0.0;g[R+632>>2]=Q;c[R+636>>2]=J;g[R+640>>2]=K;g[R+644>>2]=0.0;g[R+648>>2]=L;g[R+652>>2]=M;c[R+656>>2]=N;g[R+660>>2]=0.0;c[R+664>>2]=d;c[R+668>>2]=e;c[R+672>>2]=H;g[R+676>>2]=0.0;g[R+688>>2]=0.0;g[R+692>>2]=-1.0;g[R+696>>2]=.8999999761581421;g[R+700>>2]=.30000001192092896;g[R+704>>2]=1.0;g[R+708>>2]=0.0;g[R+712>>2]=0.0;a[R+716>>0]=0;a[R+736>>0]=0;a[R+737>>0]=0;a[R+738>>0]=0;a[R+739>>0]=1;a[R+740>>0]=1;H=R+748|0;c[H>>2]=0;c[H+4>>2]=0;c[H+8>>2]=0;c[H+12>>2]=0;c[H+16>>2]=0;g[R+732>>2]=-1.0;return R|0}function ud(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0;h=c[d>>2]|0;i=c[d+4>>2]|0;j=c[d+8>>2]|0;d=c[f>>2]|0;k=c[f+4>>2]|0;l=c[f+8>>2]|0;c[3708]=(c[3708]|0)+1;f=ws(379)|0;if(!f)m=0;else{n=f+4+15&-16;c[n+-4>>2]=f;m=n}c[m+4>>2]=3;c[m+8>>2]=-1;c[m+12>>2]=-1;g[m+16>>2]=3402823466385288598117041.0e14;a[m+20>>0]=1;a[m+21>>0]=0;c[m+24>>2]=-1;c[m+28>>2]=b;c[m+32>>2]=e;g[m+36>>2]=0.0;g[m+40>>2]=.30000001192092896;c[m+44>>2]=0;c[m>>2]=1488;c[m+300>>2]=h;c[m+304>>2]=i;c[m+308>>2]=j;g[m+312>>2]=0.0;c[m+316>>2]=d;c[m+320>>2]=k;c[m+324>>2]=l;g[m+328>>2]=0.0;c[m+332>>2]=0;a[m+344>>0]=0;g[m+348>>2]=.30000001192092896;g[m+352>>2]=1.0;g[m+356>>2]=0.0;return m|0}function vd(b,d,e,f,h,i){b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;i=i|0;var j=0,l=0,m=0,n=0,o=0,p=0.0,q=0.0,r=0.0,s=0,t=0.0,u=0.0,v=0.0,w=0.0,x=0.0,y=0.0,z=0.0,A=0.0,B=0.0,C=0.0,D=0.0,E=0.0,F=0.0,G=0.0,H=0,I=0,J=0,K=0.0,L=0.0,M=0.0,N=0,O=0.0,P=0.0,Q=0.0,R=0;j=c[d>>2]|0;l=c[d+4>>2]|0;m=c[d+8>>2]|0;if(!e){n=1065353216;o=1065353216;p=0.0;q=0.0;r=0.0;s=1065353216;t=0.0;u=0.0;v=0.0}else{w=+g[e>>2];x=+g[e+4>>2];y=+g[e+8>>2];z=+g[e+12>>2];A=2.0/(w*w+x*x+y*y+z*z);B=w*A;C=x*A;D=y*A;A=z*B;E=z*C;F=z*D;z=w*B;B=w*C;G=w*D;w=x*C;C=x*D;x=y*D;e=(g[k>>2]=1.0-(w+x),c[k>>2]|0);d=(g[k>>2]=1.0-(z+x),c[k>>2]|0);n=e;o=d;p=C-A;q=G-E;r=C+A;s=(g[k>>2]=1.0-(z+w),c[k>>2]|0);t=B-F;u=G+E;v=B+F}d=c[h>>2]|0;e=c[h+4>>2]|0;H=c[h+8>>2]|0;if(!i){I=1065353216;J=1065353216;K=0.0;L=0.0;M=0.0;N=1065353216;O=0.0;P=0.0;Q=0.0}else{F=+g[i>>2];B=+g[i+4>>2];E=+g[i+8>>2];G=+g[i+12>>2];w=2.0/(F*F+B*B+E*E+G*G);z=F*w;A=B*w;C=E*w;w=G*z;x=G*A;D=G*C;G=F*z;z=F*A;y=F*C;F=B*A;A=B*C;B=E*C;i=(g[k>>2]=1.0-(F+B),c[k>>2]|0);h=(g[k>>2]=1.0-(G+B),c[k>>2]|0);I=i;J=h;K=A-w;L=y-x;M=A+w;N=(g[k>>2]=1.0-(G+F),c[k>>2]|0);O=z-D;P=y+x;Q=z+D}c[3708]=(c[3708]|0)+1;h=ws(627)|0;if(!h)R=0;else{i=h+4+15&-16;c[i+-4>>2]=h;R=i}c[R+4>>2]=5;c[R+8>>2]=-1;c[R+12>>2]=-1;g[R+16>>2]=3402823466385288598117041.0e14;a[R+20>>0]=1;a[R+21>>0]=0;c[R+24>>2]=-1;c[R+28>>2]=b;c[R+32>>2]=f;g[R+36>>2]=0.0;g[R+40>>2]=.30000001192092896;c[R+44>>2]=0;c[R>>2]=856;c[R+300>>2]=n;g[R+304>>2]=t;g[R+308>>2]=u;g[R+312>>2]=0.0;g[R+316>>2]=v;c[R+320>>2]=o;g[R+324>>2]=p;g[R+328>>2]=0.0;g[R+332>>2]=q;g[R+336>>2]=r;c[R+340>>2]=s;g[R+344>>2]=0.0;c[R+348>>2]=j;c[R+352>>2]=l;c[R+356>>2]=m;g[R+360>>2]=0.0;c[R+364>>2]=I;g[R+368>>2]=O;g[R+372>>2]=P;g[R+376>>2]=0.0;g[R+380>>2]=Q;c[R+384>>2]=J;g[R+388>>2]=K;g[R+392>>2]=0.0;g[R+396>>2]=L;g[R+400>>2]=M;c[R+404>>2]=N;g[R+408>>2]=0.0;c[R+412>>2]=d;c[R+416>>2]=e;c[R+420>>2]=H;g[R+424>>2]=0.0;H=R+524|0;a[R+552>>0]=0;a[H>>0]=0;a[H+1>>0]=0;a[H+2>>0]=0;a[H+3>>0]=0;g[R+572>>2]=-1.0;g[R+444>>2]=999999984306749440.0;g[R+448>>2]=999999984306749440.0;g[R+452>>2]=999999984306749440.0;g[R+428>>2]=1.0;g[R+432>>2]=.30000001192092896;g[R+436>>2]=1.0;g[R+440>>2]=.009999999776482582;g[R+456>>2]=.05000000074505806;c[R+592>>2]=0;g[R+596>>2]=0.0;g[R+600>>2]=.699999988079071;g[R+604>>2]=0.0;return R|0}function wd(a,b,c,d){a=a|0;b=b|0;c=+c;d=+d;var e=0.0,f=0.0,h=0.0,i=0;if((b|0)<3){g[a+680+(b<<2)>>2]=c;g[a+696+(b<<2)>>2]=d;return}e=+vs(c);if(!(e<-3.1415927410125732))if(e>3.1415927410125732)f=e+-6.2831854820251465;else f=e;else f=e+6.2831854820251465;e=+vs(d);if(!(e<-3.1415927410125732))if(e>3.1415927410125732)h=e+-6.2831854820251465;else h=e;else h=e+6.2831854820251465;i=b+-3|0;g[a+868+(i<<6)>>2]=f;g[a+868+(i<<6)+4>>2]=h;return}function xd(a,b,c){a=a|0;b=+b;c=+c;var d=0,e=0.0,f=0.0;d=a+688|0;e=(c-b)*.5;g[a+692>>2]=e;c=+vs(e+b);if(!(c<-3.1415927410125732))if(c>3.1415927410125732)f=c+-6.2831854820251465;else f=c;else f=c+6.2831854820251465;g[d>>2]=f;g[a+696>>2]=.8999999761581421;g[a+700>>2]=.30000001192092896;g[a+704>>2]=1.0;return}function yd(a,b,c){a=a|0;b=b|0;c=+c;if((b|0)==5){g[a+444>>2]=c;return}else if((b|0)==3){g[a+452>>2]=c;return}else if((b|0)==4){g[a+448>>2]=c;return}else return}function zd(a,b,d,e){a=a|0;b=b|0;d=+d;e=e|0;Pb[c[(c[a>>2]|0)+28>>2]&7](a,b,d,e);return}function Ad(){return 4}function Bd(){return 2}function Cd(a,b){a=a|0;b=b|0;var d=0;d=c[2]|0;pc[c[(c[d>>2]|0)+56>>2]&63](d,a,b);return}function Dd(a){a=a|0;var b=0;b=c[2]|0;Mb[c[(c[b>>2]|0)+60>>2]&127](b,a);return}function Ed(a,b,d,e,f){a=+a;b=+b;d=+d;e=+e;f=+f;var h=0,i=0,j=0;h=ws(24)|0;a:do if(!h){while(1){i=c[3728]|0;c[3728]=i+0;if(!i)break;qc[i&3]();i=ws(24)|0;if(i){j=i;break a}}i=Db(4)|0;c[i>>2]=14864;zb(i|0,14896,182);}else j=h;while(0);g[j+20>>2]=6.0e3;g[j>>2]=b;g[j+8>>2]=d;g[j+4>>2]=a;g[j+16>>2]=e;g[j+12>>2]=f;return j|0}function Fd(b,d){b=b|0;d=d|0;var e=0,f=0,h=0;d=ws(8)|0;a:do if(!d){while(1){e=c[3728]|0;c[3728]=e+0;if(!e)break;qc[e&3]();e=ws(8)|0;if(e){f=e;break a}}e=Db(4)|0;c[e>>2]=14864;zb(e|0,14896,182);}else f=d;while(0);d=c[2]|0;c[f>>2]=2656;c[f+4>>2]=d;d=ws(152)|0;b:do if(!d){while(1){e=c[3728]|0;c[3728]=e+0;if(!e)break;qc[e&3]();e=ws(152)|0;if(e){h=e;break b}}e=Db(4)|0;c[e>>2]=14864;zb(e|0,14896,182);}else h=d;while(0);c[h>>2]=2616;a[h+20>>0]=1;c[h+16>>2]=0;c[h+8>>2]=0;c[h+12>>2]=0;a[h+40>>0]=1;c[h+36>>2]=0;c[h+28>>2]=0;c[h+32>>2]=0;a[h+60>>0]=1;c[h+56>>2]=0;c[h+48>>2]=0;c[h+52>>2]=0;a[h+80>>0]=1;c[h+76>>2]=0;c[h+68>>2]=0;c[h+72>>2]=0;c[h+100>>2]=f;g[h+104>>2]=0.0;a[h+148>>0]=1;c[h+144>>2]=0;c[h+136>>2]=0;c[h+140>>2]=0;c[h+116>>2]=b;c[h+120>>2]=0;c[h+124>>2]=2;c[h+128>>2]=1;g[h+112>>2]=0.0;g[h+108>>2]=0.0;si(h,0,1,2);return h|0}function Gd(b,d,e,f){b=b|0;d=+d;e=+e;f=+f;var h=0,i=0,j=0;h=ws(80)|0;a:do if(!h){while(1){i=c[3728]|0;c[3728]=i+0;if(!i)break;qc[i&3]();i=ws(80)|0;if(i){j=i;break a}}i=Db(4)|0;c[i>>2]=14864;zb(i|0,14896,182);}else j=h;while(0);c[j>>2]=496;g[j+16>>2]=d;g[j+28>>2]=e;g[j+32>>2]=f;a[j+76>>0]=1;c[j+72>>2]=0;c[j+64>>2]=0;c[j+68>>2]=0;c[j+36>>2]=b;c[j+48>>2]=0;c[j+52>>2]=2;c[j+56>>2]=1;c[j+20>>2]=c[b+468>>2];c[j+24>>2]=c[b+472>>2];mf(j,0,1,2);return j|0}function Hd(b,d,e,f){b=b|0;d=+d;e=+e;f=+f;var h=0,i=0,j=0;h=ws(56)|0;a:do if(!h){while(1){i=c[3728]|0;c[3728]=i+0;if(!i)break;qc[i&3]();i=ws(56)|0;if(i){j=i;break a}}i=Db(4)|0;c[i>>2]=14864;zb(i|0,14896,182);}else j=h;while(0);c[j>>2]=552;g[j+8>>2]=d;g[j+20>>2]=e;g[j+24>>2]=f;a[j+52>>0]=1;c[j+48>>2]=0;c[j+40>>2]=0;c[j+44>>2]=0;c[j+4>>2]=b;c[j+12>>2]=c[b+468>>2];c[j+16>>2]=c[b+472>>2];c[j+32>>2]=0;return j|0}function Id(a){a=+a;var b=0,d=0,e=0;b=ws(12)|0;a:do if(!b){while(1){d=c[3728]|0;c[3728]=d+0;if(!d)break;qc[d&3]();d=ws(12)|0;if(d){e=d;break a}}d=Db(4)|0;c[d>>2]=14864;zb(d|0,14896,182);}else e=b;while(0);c[e>>2]=0;g[e+4>>2]=0.0;g[e+8>>2]=a;return e|0}function Jd(a,b,d,e,f,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w){a=a|0;b=+b;d=+d;e=+e;f=+f;h=+h;i=+i;j=+j;k=+k;l=+l;m=+m;n=+n;o=+o;p=+p;q=+q;r=+r;s=+s;t=+t;u=+u;v=+v;w=w|0;var x=0,y=0,z=0,A=0,B=0,C=0,D=0;x=ws(44)|0;a:do if(!x){while(1){y=c[3728]|0;c[3728]=y+0;if(!y)break;qc[y&3]();y=ws(44)|0;if(y){z=y;break a}}y=Db(4)|0;c[y>>2]=14864;zb(y|0,14896,182);}else z=x;while(0);x=z;y=x+36|0;do{c[x>>2]=0;x=x+4|0}while((x|0)<(y|0));g[z>>2]=b;g[z+4>>2]=d;g[z+8>>2]=e;g[z+12>>2]=f;g[z+16>>2]=h;g[z+20>>2]=i;g[z+24>>2]=j;g[z+28>>2]=k;g[z+32>>2]=l;g[z+36>>2]=m;g[z+40>>2]=n;x=~~v;y=ws(44)|0;b:do if(!y){while(1){A=c[3728]|0;c[3728]=A+0;if(!A)break;qc[A&3]();A=ws(44)|0;if(A){B=A;break b}}A=Db(4)|0;c[A>>2]=14864;zb(A|0,14896,182);}else B=y;while(0);c[B>>2]=w;c[B+4>>2]=0;c[B+40>>2]=z;g[B+8>>2]=o;g[B+12>>2]=p;g[B+16>>2]=q;g[B+20>>2]=r;g[B+24>>2]=s;g[B+28>>2]=t;g[B+32>>2]=u;c[B+36>>2]=x;x=c[a>>2]|0;if(!x){c[a>>2]=B;return}else C=x;do{D=C+4|0;C=c[D>>2]|0}while((C|0)!=0);c[D>>2]=B;return}function Kd(a,b){a=a|0;b=+b;g[a+4>>2]=b;return}function Ld(d,e,f,h,i,j,k,l,m,n){d=d|0;e=+e;f=+f;h=+h;i=+i;j=+j;k=+k;l=+l;m=m|0;n=n|0;var o=0,p=0,q=0;o=ws(148)|0;a:do if(!o){while(1){p=c[3728]|0;c[3728]=p+0;if(!p)break;qc[p&3]();p=ws(148)|0;if(p){q=p;break a}}p=Db(4)|0;c[p>>2]=14864;zb(p|0,14896,182);}else q=o;while(0);c[q>>2]=240;o=q+4|0;c[o>>2]=d;g[q+8>>2]=f*.5;g[q+12>>2]=j;b[q+16>>1]=0;g[q+36>>2]=e;g[q+40>>2]=0.0;g[q+44>>2]=1.0;c[q+48>>2]=0;c[q+52>>2]=0;g[q+56>>2]=+(m<<16>>16);g[q+60>>2]=+(n<<16>>16);g[q+120>>2]=h;g[q+124>>2]=h;g[q+128>>2]=i;g[q+132>>2]=25.0;g[q+136>>2]=k;g[q+140>>2]=l;a[q+144>>0]=0;g[q+112>>2]=1.0;g[q+116>>2]=1.0;l=+g[d+368>>2];if(l!=0.0){k=1.0/l*0.0;g[d+388>>2]=k;g[d+392>>2]=k;g[d+396>>2]=k;g[d+400>>2]=0.0}n=d+404|0;c[n>>2]=0;c[n+4>>2]=0;c[n+8>>2]=0;c[n+12>>2]=0;n=c[o>>2]|0;o=n+284|0;c[o>>2]=(c[o>>2]|0)+1;o=n+568|0;d=q+20|0;c[o>>2]=0;c[o+4>>2]=0;c[o+8>>2]=0;c[o+12>>2]=0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;c[d+12>>2]=0;c[n+468>>2]=1036831949;c[n+472>>2]=1036831949;return q|0}function Md(b,d,e,f,h,j,k){b=b|0;d=d|0;e=e|0;f=+f;h=+h;j=+j;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0;l=i;i=i+192|0;m=l;n=l+144|0;o=l+128|0;p=l+112|0;q=l+96|0;r=l+160|0;s=c[e>>2]|0;t=c[e+4>>2]|0;u=c[e+8>>2]|0;e=c[d>>2]|0;v=c[d+4>>2]|0;w=c[d+8>>2]|0;x=c[d+16>>2]|0;y=k&1;k=c[d+12>>2]|0;z=c[d+20>>2]|0;d=b+136|0;A=c[d>>2]|0;B=b+140|0;if((A|0)==(c[B>>2]|0)?(C=(A|0)!=0?A<<1:1,(A|0)<(C|0)):0){if(!C){D=0;E=A}else{c[3708]=(c[3708]|0)+1;F=ws((C*284|3)+16|0)|0;if(!F)G=0;else{H=F+4+15&-16;c[H+-4>>2]=F;G=H}D=G;E=c[d>>2]|0}G=b+144|0;if((E|0)>0){H=0;do{F=c[G>>2]|0;I=D+(H*284|0)|0;J=F+(H*284|0)|0;K=I+92|0;do{c[I>>2]=c[J>>2];I=I+4|0;J=J+4|0}while((I|0)<(K|0));L=D+(H*284|0)+92|0;M=F+(H*284|0)+92|0;c[L>>2]=c[M>>2];c[L+4>>2]=c[M+4>>2];c[L+8>>2]=c[M+8>>2];c[L+12>>2]=c[M+12>>2];M=D+(H*284|0)+108|0;L=F+(H*284|0)+108|0;c[M>>2]=c[L>>2];c[M+4>>2]=c[L+4>>2];c[M+8>>2]=c[L+8>>2];c[M+12>>2]=c[L+12>>2];L=D+(H*284|0)+124|0;M=F+(H*284|0)+124|0;c[L>>2]=c[M>>2];c[L+4>>2]=c[M+4>>2];c[L+8>>2]=c[M+8>>2];c[L+12>>2]=c[M+12>>2];M=D+(H*284|0)+140|0;L=F+(H*284|0)+140|0;c[M>>2]=c[L>>2];c[M+4>>2]=c[L+4>>2];c[M+8>>2]=c[L+8>>2];c[M+12>>2]=c[L+12>>2];I=D+(H*284|0)+156|0;J=F+(H*284|0)+156|0;K=I+128|0;do{c[I>>2]=c[J>>2];I=I+4|0;J=J+4|0}while((I|0)<(K|0));H=H+1|0}while((H|0)!=(E|0));}E=c[G>>2]|0;H=b+148|0;if(E){if(a[H>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[E+-4>>2]|0);}c[G>>2]=0}a[H>>0]=1;c[G>>2]=D;c[B>>2]=C;N=c[d>>2]|0}else N=A;A=b+144|0;C=c[A>>2]|0;I=C+(N*284|0)|0;J=m;K=I+92|0;do{c[I>>2]=c[J>>2];I=I+4|0;J=J+4|0}while((I|0)<(K|0));m=C+(N*284|0)+92|0;c[m>>2]=c[n>>2];c[m+4>>2]=c[n+4>>2];c[m+8>>2]=c[n+8>>2];c[m+12>>2]=c[n+12>>2];n=C+(N*284|0)+108|0;c[n>>2]=c[o>>2];c[n+4>>2]=c[o+4>>2];c[n+8>>2]=c[o+8>>2];c[n+12>>2]=c[o+12>>2];o=C+(N*284|0)+124|0;c[o>>2]=c[p>>2];c[o+4>>2]=c[p+4>>2];c[o+8>>2]=c[p+8>>2];c[o+12>>2]=c[p+12>>2];p=C+(N*284|0)+140|0;c[p>>2]=c[q>>2];c[p+4>>2]=c[q+4>>2];c[p+8>>2]=c[q+8>>2];c[p+12>>2]=c[q+12>>2];q=C+(N*284|0)+156|0;c[q>>2]=s;c[C+(N*284|0)+160>>2]=t;c[C+(N*284|0)+164>>2]=u;g[C+(N*284|0)+168>>2]=0.0;c[q+16>>2]=0;c[q+20>>2]=-1082130432;c[q+24>>2]=0;g[q+28>>2]=0.0;c[q+32>>2]=-1082130432;c[q+36>>2]=0;c[q+40>>2]=0;g[q+44>>2]=0.0;g[q+48>>2]=f;c[q+52>>2]=k;g[q+56>>2]=j;c[q+60>>2]=e;c[q+64>>2]=v;c[q+68>>2]=w;c[q+72>>2]=x;g[q+76>>2]=0.0;g[q+80>>2]=0.0;g[q+84>>2]=0.0;g[q+88>>2]=.10000000149011612;c[q+92>>2]=z;g[q+96>>2]=0.0;g[q+100>>2]=0.0;a[q+104>>0]=y;I=q+105|0;J=r;K=I+23|0;do{a[I>>0]=a[J>>0]|0;I=I+1|0;J=J+1|0}while((I|0)<(K|0));J=c[d>>2]|0;c[d>>2]=J+1;I=b+116|0;li(c[I>>2]|0,(c[A>>2]|0)+(J*284|0)|0,0);mi(c[I>>2]|0,c[A>>2]|0,(c[d>>2]|0)+-1|0,0);g[(c[A>>2]|0)+(((c[d>>2]|0)+-1|0)*284|0)+244>>2]=h;i=l;return}function Nd(b,d){b=b|0;d=d|0;var e=0,f=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0.0,E=0.0,F=0.0,G=0.0,H=0.0,I=0.0;e=i;i=i+128|0;f=e+104|0;h=e+88|0;j=e+72|0;k=e+56|0;l=e;m=c[d>>2]|0;n=c[d+4>>2]|0;o=c[d+8>>2]|0;d=b+64|0;p=c[d>>2]|0;q=b+68|0;if((p|0)==(c[q>>2]|0)?(r=(p|0)!=0?p<<1:1,(p|0)<(r|0)):0){if(!r){s=0;t=p}else{c[3708]=(c[3708]|0)+1;u=ws((r*172|3)+16|0)|0;if(!u)v=0;else{w=u+4+15&-16;c[w+-4>>2]=u;v=w}s=v;t=c[d>>2]|0}v=b+72|0;if((t|0)>0){w=0;do{u=s+(w*172|0)|0;x=c[v>>2]|0;y=x+(w*172|0)|0;c[u>>2]=c[y>>2];c[u+4>>2]=c[y+4>>2];c[u+8>>2]=c[y+8>>2];c[u+12>>2]=c[y+12>>2];y=s+(w*172|0)+16|0;u=x+(w*172|0)+16|0;c[y>>2]=c[u>>2];c[y+4>>2]=c[u+4>>2];c[y+8>>2]=c[u+8>>2];c[y+12>>2]=c[u+12>>2];u=s+(w*172|0)+32|0;y=x+(w*172|0)+32|0;c[u>>2]=c[y>>2];c[u+4>>2]=c[y+4>>2];c[u+8>>2]=c[y+8>>2];c[u+12>>2]=c[y+12>>2];y=s+(w*172|0)+48|0;u=x+(w*172|0)+48|0;c[y>>2]=c[u>>2];c[y+4>>2]=c[u+4>>2];c[y+8>>2]=c[u+8>>2];c[y+12>>2]=c[u+12>>2];z=s+(w*172|0)+64|0;A=x+(w*172|0)+64|0;B=z+108|0;do{c[z>>2]=c[A>>2];z=z+4|0;A=A+4|0}while((z|0)<(B|0));w=w+1|0}while((w|0)!=(t|0));}t=c[v>>2]|0;w=b+76|0;if(t){if(a[w>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[t+-4>>2]|0);}c[v>>2]=0}a[w>>0]=1;c[v>>2]=s;c[q>>2]=r;C=c[d>>2]|0}else C=p;p=b+72|0;r=c[p>>2]|0;q=r+(C*172|0)|0;c[q>>2]=c[f>>2];c[q+4>>2]=c[f+4>>2];c[q+8>>2]=c[f+8>>2];c[q+12>>2]=c[f+12>>2];f=r+(C*172|0)+16|0;c[f>>2]=c[h>>2];c[f+4>>2]=c[h+4>>2];c[f+8>>2]=c[h+8>>2];c[f+12>>2]=c[h+12>>2];h=r+(C*172|0)+32|0;c[h>>2]=c[j>>2];c[h+4>>2]=c[j+4>>2];c[h+8>>2]=c[j+8>>2];c[h+12>>2]=c[j+12>>2];j=r+(C*172|0)+48|0;c[j>>2]=c[k>>2];c[j+4>>2]=c[k+4>>2];c[j+8>>2]=c[k+8>>2];c[j+12>>2]=c[k+12>>2];k=r+(C*172|0)+64|0;z=k;A=l;B=z+52|0;do{c[z>>2]=c[A>>2];z=z+4|0;A=A+4|0}while((z|0)<(B|0));c[k+52>>2]=m;c[k+56>>2]=n;c[k+60>>2]=o;g[k+64>>2]=0.0;c[k+68>>2]=0;c[k+72>>2]=-1082130432;c[k+76>>2]=0;g[k+80>>2]=0.0;c[k+84>>2]=-1082130432;o=k+88|0;c[o>>2]=0;c[o+4>>2]=0;c[o+8>>2]=0;c[o+12>>2]=0;c[o+16>>2]=0;o=c[d>>2]|0;c[d>>2]=o+1;k=b+36|0;gf(c[k>>2]|0,(c[p>>2]|0)+(o*172|0)|0,0);o=(c[d>>2]|0)+-1|0;d=c[p>>2]|0;p=d+(o*172|0)|0;gf(c[k>>2]|0,p,0);D=-+g[d+(o*172|0)+80>>2];E=-+g[d+(o*172|0)+84>>2];F=-+g[d+(o*172|0)+88>>2];G=+g[d+(o*172|0)+104>>2];H=+g[d+(o*172|0)+100>>2];I=+g[d+(o*172|0)+96>>2];g[p>>2]=I;g[d+(o*172|0)+4>>2]=G*E-H*F;g[d+(o*172|0)+8>>2]=D;g[d+(o*172|0)+12>>2]=0.0;g[d+(o*172|0)+16>>2]=H;g[d+(o*172|0)+20>>2]=I*F-G*D;g[d+(o*172|0)+24>>2]=E;g[d+(o*172|0)+28>>2]=0.0;g[d+(o*172|0)+32>>2]=G;g[d+(o*172|0)+36>>2]=H*D-I*E;g[d+(o*172|0)+40>>2]=F;g[d+(o*172|0)+44>>2]=0.0;p=d+(o*172|0)+64|0;k=d+(o*172|0)+48|0;c[k>>2]=c[p>>2];c[k+4>>2]=c[p+4>>2];c[k+8>>2]=c[p+8>>2];c[k+12>>2]=c[p+12>>2];i=e;return}function Od(b,d){b=b|0;d=d|0;var e=0,f=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0.0,E=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,O=0.0,P=0.0,Q=0.0;e=i;i=i+128|0;f=e+104|0;h=e+88|0;j=e+72|0;k=e+56|0;l=e;m=c[d>>2]|0;n=c[d+4>>2]|0;o=c[d+8>>2]|0;d=b+40|0;p=c[d>>2]|0;q=b+44|0;if((p|0)==(c[q>>2]|0)?(r=(p|0)!=0?p<<1:1,(p|0)<(r|0)):0){if(!r){s=0;t=p}else{c[3708]=(c[3708]|0)+1;u=ws((r*132|3)+16|0)|0;if(!u)v=0;else{w=u+4+15&-16;c[w+-4>>2]=u;v=w}s=v;t=c[d>>2]|0}v=b+48|0;if((t|0)>0){w=0;do{u=s+(w*132|0)|0;x=c[v>>2]|0;y=x+(w*132|0)|0;c[u>>2]=c[y>>2];c[u+4>>2]=c[y+4>>2];c[u+8>>2]=c[y+8>>2];c[u+12>>2]=c[y+12>>2];y=s+(w*132|0)+16|0;u=x+(w*132|0)+16|0;c[y>>2]=c[u>>2];c[y+4>>2]=c[u+4>>2];c[y+8>>2]=c[u+8>>2];c[y+12>>2]=c[u+12>>2];u=s+(w*132|0)+32|0;y=x+(w*132|0)+32|0;c[u>>2]=c[y>>2];c[u+4>>2]=c[y+4>>2];c[u+8>>2]=c[y+8>>2];c[u+12>>2]=c[y+12>>2];y=s+(w*132|0)+48|0;u=x+(w*132|0)+48|0;c[y>>2]=c[u>>2];c[y+4>>2]=c[u+4>>2];c[y+8>>2]=c[u+8>>2];c[y+12>>2]=c[u+12>>2];z=s+(w*132|0)+64|0;A=x+(w*132|0)+64|0;B=z+68|0;do{c[z>>2]=c[A>>2];z=z+4|0;A=A+4|0}while((z|0)<(B|0));w=w+1|0}while((w|0)!=(t|0));}t=c[v>>2]|0;w=b+52|0;if(t){if(a[w>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[t+-4>>2]|0);}c[v>>2]=0}a[w>>0]=1;c[v>>2]=s;c[q>>2]=r;C=c[d>>2]|0}else C=p;p=b+48|0;r=c[p>>2]|0;q=r+(C*132|0)|0;c[q>>2]=c[f>>2];c[q+4>>2]=c[f+4>>2];c[q+8>>2]=c[f+8>>2];c[q+12>>2]=c[f+12>>2];f=r+(C*132|0)+16|0;c[f>>2]=c[h>>2];c[f+4>>2]=c[h+4>>2];c[f+8>>2]=c[h+8>>2];c[f+12>>2]=c[h+12>>2];h=r+(C*132|0)+32|0;c[h>>2]=c[j>>2];c[h+4>>2]=c[j+4>>2];c[h+8>>2]=c[j+8>>2];c[h+12>>2]=c[j+12>>2];j=r+(C*132|0)+48|0;c[j>>2]=c[k>>2];c[j+4>>2]=c[k+4>>2];c[j+8>>2]=c[k+8>>2];c[j+12>>2]=c[k+12>>2];k=r+(C*132|0)+64|0;z=k;A=l;B=z+52|0;do{c[z>>2]=c[A>>2];z=z+4|0;A=A+4|0}while((z|0)<(B|0));c[k+52>>2]=m;c[k+56>>2]=n;c[k+60>>2]=o;g[k+64>>2]=0.0;k=c[d>>2]|0;c[d>>2]=k+1;o=c[p>>2]|0;a[o+(k*132|0)+112>>0]=0;n=b+4|0;b=c[n>>2]|0;D=+g[b+4>>2];E=+g[b+8>>2];F=+g[b+12>>2];G=+g[b+20>>2];H=+g[b+24>>2];I=+g[b+28>>2];J=+g[b+36>>2];K=+g[b+40>>2];L=+g[b+44>>2];M=+g[o+(k*132|0)+116>>2];N=+g[o+(k*132|0)+120>>2];O=+g[o+(k*132|0)+124>>2];P=+g[b+56>>2]+(G*M+H*N+I*O);Q=+g[b+60>>2]+(J*M+K*N+L*O);g[o+(k*132|0)+64>>2]=+g[b+52>>2]+(D*M+E*N+F*O);g[o+(k*132|0)+68>>2]=P;g[o+(k*132|0)+72>>2]=Q;g[o+(k*132|0)+76>>2]=0.0;Q=E*0.0;E=H*0.0;H=K*0.0;g[o+(k*132|0)+80>>2]=D*0.0+Q-F;g[o+(k*132|0)+84>>2]=G*0.0+E-I;g[o+(k*132|0)+88>>2]=J*0.0+H-L;g[o+(k*132|0)+92>>2]=0.0;g[o+(k*132|0)+96>>2]=D+Q+F*0.0;g[o+(k*132|0)+100>>2]=G+E+I*0.0;g[o+(k*132|0)+104>>2]=J+H+L*0.0;g[o+(k*132|0)+108>>2]=0.0;k=(c[d>>2]|0)+-1|0;d=c[p>>2]|0;a[d+(k*132|0)+112>>0]=0;p=c[n>>2]|0;L=+g[p+4>>2];H=+g[p+8>>2];J=+g[p+12>>2];I=+g[p+20>>2];E=+g[p+24>>2];G=+g[p+28>>2];F=+g[p+36>>2];Q=+g[p+40>>2];D=+g[p+44>>2];K=+g[d+(k*132|0)+116>>2];P=+g[d+(k*132|0)+120>>2];O=+g[d+(k*132|0)+124>>2];N=+g[p+56>>2]+(I*K+E*P+G*O);M=+g[p+60>>2]+(F*K+Q*P+D*O);g[d+(k*132|0)+64>>2]=+g[p+52>>2]+(L*K+H*P+J*O);g[d+(k*132|0)+68>>2]=N;g[d+(k*132|0)+72>>2]=M;g[d+(k*132|0)+76>>2]=0.0;M=H*0.0;H=L*0.0+M-J;N=E*0.0;E=I*0.0+N-G;O=Q*0.0;Q=F*0.0+O-D;g[d+(k*132|0)+80>>2]=H;g[d+(k*132|0)+84>>2]=E;g[d+(k*132|0)+88>>2]=Q;g[d+(k*132|0)+92>>2]=0.0;P=L+M+J*0.0;J=I+N+G*0.0;G=F+O+D*0.0;g[d+(k*132|0)+96>>2]=P;g[d+(k*132|0)+100>>2]=J;g[d+(k*132|0)+104>>2]=G;g[d+(k*132|0)+108>>2]=0.0;D=-H;H=-E;E=-Q;g[d+(k*132|0)>>2]=P;g[d+(k*132|0)+4>>2]=G*H-J*E;g[d+(k*132|0)+8>>2]=D;g[d+(k*132|0)+12>>2]=0.0;g[d+(k*132|0)+16>>2]=J;g[d+(k*132|0)+20>>2]=P*E-G*D;g[d+(k*132|0)+24>>2]=H;g[d+(k*132|0)+28>>2]=0.0;g[d+(k*132|0)+32>>2]=G;g[d+(k*132|0)+36>>2]=J*D-P*H;g[d+(k*132|0)+40>>2]=E;g[d+(k*132|0)+44>>2]=0.0;p=d+(k*132|0)+64|0;n=d+(k*132|0)+48|0;c[n>>2]=c[p>>2];c[n+4>>2]=c[p+4>>2];c[n+8>>2]=c[p+8>>2];c[n+12>>2]=c[p+12>>2];i=e;return}function Pd(a,b){a=a|0;b=b|0;c[a+32>>2]=b;c[a+28>>2]=0;return}function Qd(a,b){a=a|0;b=b|0;c[a+48>>2]=b;c[a+52>>2]=0;return}function Rd(a,b){a=a|0;b=b|0;c[a+40>>2]=b;c[a+44>>2]=0;return}function Sd(a,b){a=a|0;b=b|0;c[a+28>>2]=b;return}function Td(a,b){a=a|0;b=b|0;c[a+52>>2]=b;return}function Ud(a,b){a=a|0;b=b|0;c[a+44>>2]=b;return}function Vd(b,d){b=b|0;d=d|0;var e=0,f=0,h=0,i=0,j=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.0,G=0.0,H=0.0;if((d|0)>0){e=0;do{a[(c[b+(e<<2)>>2]|0)+8>>0]=0;e=e+1|0}while((e|0)!=(d|0));}e=c[(c[2]|0)+24>>2]|0;f=Ob[c[(c[e>>2]|0)+36>>2]&127](e)|0;if((f|0)<=0)return;h=(d|0)<0;i=0;do{j=ec[c[(c[e>>2]|0)+40>>2]&31](e,i)|0;l=c[j+748>>2]|0;if((l|0)>0){m=j+740|0;n=j+744|0;o=0;do{p=j+4+(o*184|0)+80|0;a:do if(+g[p>>2]<.2?(q=c[m>>2]|0,r=c[n>>2]|0,s=q>>>0<r>>>0?q:r,!h):0){t=d;u=0;while(1){v=t;while(1){w=v-u|0;x=((w|0)/2|0)+u|0;y=c[b+(x<<2)>>2]|0;z=c[y>>2]|0;if(z>>>0<=s>>>0)break;if((w|0)<2)break a;else v=x+-1|0}if(z>>>0>=s>>>0)break;u=x+1|0;if((v|0)<(u|0))break a;else t=v}if((x|0)!=-1){t=q>>>0>r>>>0?q:r;u=y;w=x;while(1){if((c[u+4>>2]|0)==(t|0)){A=w;break}w=w+-1|0;u=c[b+(w<<2)>>2]|0;if((c[u>>2]|0)!=(z|0)){B=y;C=x;D=18;break}}b:do if((D|0)==18)while(1){D=0;if((c[B+4>>2]|0)==(t|0)){A=C;break b}C=C+1|0;B=c[b+(C<<2)>>2]|0;if((c[B>>2]|0)!=(z|0))break a;else D=18}while(0);if((A|0)!=-1){t=c[b+(A<<2)>>2]|0;a[t+8>>0]=1;v=c[j+4+(o*184|0)+64>>2]|0;c[t+24>>2]=v;u=c[j+4+(o*184|0)+68>>2]|0;w=t+28|0;c[w>>2]=u;r=c[j+4+(o*184|0)+72>>2]|0;E=t+32|0;c[E>>2]=r;if((q|0)==(s|0)){c[t+12>>2]=c[j+4+(o*184|0)+32>>2];c[t+16>>2]=c[j+4+(o*184|0)+36>>2];c[t+20>>2]=c[j+4+(o*184|0)+40>>2]}else{F=(c[k>>2]=r,+g[k>>2]);G=(c[k>>2]=u,+g[k>>2]);H=(c[k>>2]=v,+g[k>>2]);c[t+12>>2]=c[j+4+(o*184|0)+48>>2];c[t+16>>2]=c[j+4+(o*184|0)+52>>2];c[t+20>>2]=c[j+4+(o*184|0)+56>>2];g[t+24>>2]=-H;g[w>>2]=-G;g[E>>2]=-F}c[t+36>>2]=c[p>>2]}}}while(0);o=o+1|0}while((o|0)!=(l|0));}i=i+1|0}while((i|0)!=(f|0));return}function Wd(a){a=a|0;var b=0,d=0,e=0.0,f=0,h=0.0,i=0,j=0,k=0,l=0.0,m=0.0,n=0.0;b=c[(c[2]|0)+24>>2]|0;d=Ob[c[(c[b>>2]|0)+36>>2]&127](b)|0;if((d|0)<=0){e=0.0;return +e}f=0;h=0.0;while(1){i=ec[c[(c[b>>2]|0)+40>>2]&31](b,f)|0;j=c[i+748>>2]|0;if((j|0)>0?((a|0)==(c[i+740>>2]|0)?1:(a|0)==(c[i+744>>2]|0)):0){k=0;l=h;while(1){if(+g[i+4+(k*184|0)+80>>2]<.2)m=l+ +g[i+4+(k*184|0)+120>>2];else m=l;k=k+1|0;if((k|0)==(j|0)){n=m;break}else l=m}}else n=h;f=f+1|0;if((f|0)==(d|0)){e=n;break}else h=n}return +e}function Xd(b){b=b|0;var d=0,e=0,f=0;d=ws(108)|0;a:do if(!d){while(1){e=c[3728]|0;c[3728]=e+0;if(!e)break;qc[e&3]();e=ws(108)|0;if(e){f=e;break a}}e=Db(4)|0;c[e>>2]=14864;zb(e|0,14896,182);}else f=d;while(0);a[f>>0]=b&1;a[f+24>>0]=1;c[f+20>>2]=0;c[f+12>>2]=0;c[f+16>>2]=0;a[f+44>>0]=1;c[f+40>>2]=0;c[f+32>>2]=0;c[f+36>>2]=0;a[f+64>>0]=1;c[f+60>>2]=0;c[f+52>>2]=0;c[f+56>>2]=0;a[f+84>>0]=1;c[f+80>>2]=0;c[f+72>>2]=0;c[f+76>>2]=0;a[f+104>>0]=1;c[f+100>>2]=0;c[f+92>>2]=0;c[f+96>>2]=0;return f|0}function Yd(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;d=b+12|0;e=b+20|0;f=c[e>>2]|0;g=b+24|0;if(f){if(a[g>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[f+-4>>2]|0);}c[e>>2]=0}a[g>>0]=1;c[e>>2]=0;c[d>>2]=0;c[b+16>>2]=0;d=b+52|0;f=b+60|0;h=c[f>>2]|0;i=b+64|0;if(h){if(a[i>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[h+-4>>2]|0);}c[f>>2]=0}a[i>>0]=1;c[f>>2]=0;c[d>>2]=0;h=b+56|0;c[h>>2]=0;j=b+72|0;k=b+80|0;l=c[k>>2]|0;m=b+84|0;if(l){if(a[m>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[l+-4>>2]|0);}c[k>>2]=0}a[m>>0]=1;c[k>>2]=0;c[j>>2]=0;l=b+76|0;c[l>>2]=0;n=b+92|0;o=b+100|0;p=c[o>>2]|0;q=b+104|0;if(p){if(a[q>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[p+-4>>2]|0);}c[o>>2]=0}a[q>>0]=1;c[o>>2]=0;c[n>>2]=0;p=b+96|0;c[p>>2]=0;a[q>>0]=1;c[o>>2]=0;c[n>>2]=0;c[p>>2]=0;p=c[k>>2]|0;if(p){if(a[m>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[p+-4>>2]|0);}c[k>>2]=0}a[m>>0]=1;c[k>>2]=0;c[j>>2]=0;c[l>>2]=0;l=c[f>>2]|0;if(l){if(a[i>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[l+-4>>2]|0);}c[f>>2]=0}a[i>>0]=1;c[f>>2]=0;c[d>>2]=0;c[h>>2]=0;h=b+32|0;d=b+40|0;f=c[d>>2]|0;i=b+44|0;if(f){if(a[i>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[f+-4>>2]|0);}c[d>>2]=0}a[i>>0]=1;c[d>>2]=0;c[h>>2]=0;c[b+36>>2]=0;h=c[e>>2]|0;if(!h){xs(b);return}if(!(a[g>>0]|0)){xs(b);return}c[3710]=(c[3710]|0)+1;xs(c[h+-4>>2]|0);xs(b);return}function Zd(e,f,h,j,l,m,n,o){e=e|0;f=f|0;h=h|0;j=j|0;l=l|0;m=m|0;n=n|0;o=o|0;var p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0.0,A=0.0,B=0.0,C=0.0,D=0.0,E=0.0,F=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,O=0.0,P=0,Q=0,R=0,S=0,T=0;p=i;i=i+128|0;q=p+104|0;r=p+88|0;s=p+72|0;t=p;u=c[f>>2]|0;v=c[f+4>>2]|0;w=c[f+8>>2]|0;f=c[h>>2]|0;x=c[h+4>>2]|0;y=c[h+8>>2]|0;do if(e)if(n){z=+g[e+52>>2];A=+g[e+56>>2];B=+g[e+60>>2];C=(c[k>>2]=u,+g[k>>2])+z;D=(c[k>>2]=v,+g[k>>2])+A;E=(c[k>>2]=w,+g[k>>2])+B;g[r>>2]=C;g[r+4>>2]=D;g[r+8>>2]=E;g[r+12>>2]=0.0;E=(c[k>>2]=f,+g[k>>2])+z;z=(c[k>>2]=x,+g[k>>2])+A;A=(c[k>>2]=y,+g[k>>2])+B;g[s>>2]=E;g[s+4>>2]=z;g[s+8>>2]=A;g[s+12>>2]=0.0;F=e;break}else{A=(c[k>>2]=u,+g[k>>2]);z=+g[e+4>>2];E=(c[k>>2]=v,+g[k>>2]);B=+g[e+8>>2];D=(c[k>>2]=w,+g[k>>2]);C=+g[e+12>>2];G=+g[e+20>>2];H=+g[e+24>>2];I=+g[e+28>>2];J=+g[e+36>>2];K=+g[e+40>>2];L=+g[e+44>>2];M=+g[e+52>>2];N=+g[e+56>>2];O=+g[e+60>>2];g[r>>2]=A*z+E*B+D*C+M;g[r+4>>2]=A*G+E*H+D*I+N;g[r+8>>2]=A*J+E*K+D*L+O;g[r+12>>2]=0.0;D=(c[k>>2]=f,+g[k>>2]);E=(c[k>>2]=x,+g[k>>2]);A=(c[k>>2]=y,+g[k>>2]);g[s>>2]=D*z+E*B+A*C+M;g[s+4>>2]=D*G+E*H+A*I+N;g[s+8>>2]=D*J+E*K+A*L+O;g[s+12>>2]=0.0;F=e;break}else{c[r>>2]=u;c[r+4>>2]=v;c[r+8>>2]=w;g[r+12>>2]=0.0;c[s>>2]=f;c[s+4>>2]=x;c[s+8>>2]=y;g[s+12>>2]=0.0;F=0}while(0);g[t+4>>2]=1.0;y=t+8|0;c[y>>2]=0;b[t+12>>1]=1;b[t+14>>1]=-1;c[t+16>>2]=0;c[t>>2]=112;x=t+36|0;f=t+52|0;c[t+20>>2]=j;a[t+24>>0]=l&1;a[t+25>>0]=m&1;c[t+28>>2]=F;c[x>>2]=c[r>>2];c[x+4>>2]=c[r+4>>2];c[x+8>>2]=c[r+8>>2];c[x+12>>2]=c[r+12>>2];c[f>>2]=c[s>>2];c[f+4>>2]=c[s+4>>2];c[f+8>>2]=c[s+8>>2];c[f+12>>2]=c[s+12>>2];f=t+32|0;c[f>>2]=o;x=c[o+12>>2]|0;if((x|0)>0){F=o;m=0;l=x;while(1){x=F+40|0;if(!(a[(c[x>>2]|0)+m>>0]|0)){j=l+-1|0;w=F+20|0;v=c[w>>2]|0;u=v+(m<<2)|0;e=d[u>>0]|d[u+1>>0]<<8|d[u+2>>0]<<16|d[u+3>>0]<<24;c[u>>2]=c[v+(j<<2)>>2];v=(c[w>>2]|0)+(j<<2)|0;a[v>>0]=e;a[v+1>>0]=e>>8;a[v+2>>0]=e>>16;a[v+3>>0]=e>>24;e=c[x>>2]|0;v=e+m|0;w=a[v>>0]|0;a[v>>0]=a[e+j>>0]|0;a[(c[x>>2]|0)+j>>0]=w;w=F+60|0;x=c[w>>2]|0;e=x+(m<<2)|0;v=d[e>>0]|d[e+1>>0]<<8|d[e+2>>0]<<16|d[e+3>>0]<<24;c[e>>2]=c[x+(j<<2)>>2];x=(c[w>>2]|0)+(j<<2)|0;a[x>>0]=v;a[x+1>>0]=v>>8;a[x+2>>0]=v>>16;a[x+3>>0]=v>>24;if(a[F>>0]|0){v=F+80|0;x=c[v>>2]|0;w=x+(m<<4)|0;e=q;u=w;n=e+16|0;do{a[e>>0]=a[u>>0]|0;e=e+1|0;u=u+1|0}while((e|0)<(n|0));h=x+(j<<4)|0;c[w>>2]=c[h>>2];c[w+4>>2]=c[h+4>>2];c[w+8>>2]=c[h+8>>2];c[w+12>>2]=c[h+12>>2];e=(c[v>>2]|0)+(j<<4)|0;u=q;n=e+16|0;do{a[e>>0]=a[u>>0]|0;e=e+1|0;u=u+1|0}while((e|0)<(n|0));v=F+100|0;w=c[v>>2]|0;x=w+(m<<4)|0;e=q;u=x;n=e+16|0;do{a[e>>0]=a[u>>0]|0;e=e+1|0;u=u+1|0}while((e|0)<(n|0));h=w+(j<<4)|0;c[x>>2]=c[h>>2];c[x+4>>2]=c[h+4>>2];c[x+8>>2]=c[h+8>>2];c[x+12>>2]=c[h+12>>2];e=(c[v>>2]|0)+(j<<4)|0;u=q;n=e+16|0;do{a[e>>0]=a[u>>0]|0;e=e+1|0;u=u+1|0}while((e|0)<(n|0));}u=c[f>>2]|0;e=u+12|0;c[e>>2]=(c[e>>2]|0)+-1;e=u+32|0;c[e>>2]=(c[e>>2]|0)+-1;e=u+52|0;c[e>>2]=(c[e>>2]|0)+-1;if(a[u>>0]|0){e=u+72|0;c[e>>2]=(c[e>>2]|0)+-1;e=u+92|0;c[e>>2]=(c[e>>2]|0)+-1}P=u;Q=m+-1|0;R=j}else{P=F;Q=m;R=l}m=Q+1|0;if((m|0)>=(R|0))break;else{F=P;l=R}}R=c[P+12>>2]|0;if((R|0)>0){l=c[P+40>>2]|0;F=0;do{a[l+F>>0]=0;F=F+1|0}while((F|0)!=(R|0));S=P}else S=P}else S=o;c[S+4>>2]=0;S=c[2]|0;tc[c[(c[S>>2]|0)+32>>2]&63](S,r,s,t);if(!(c[y>>2]|0)){T=c[(c[f>>2]|0)+12>>2]|0;i=p;return T|0}else{T=Ne(t)|0;i=p;return T|0}return 0}function _d(a,b){a=a|0;b=b|0;return c[(c[a+20>>2]|0)+(b<<2)>>2]|0}function $d(b,d){b=b|0;d=d|0;var e=0.0;if(!(a[(c[b+40>>2]|0)+d>>0]|0)){e=-1.0;return +e}e=+g[(c[b+60>>2]|0)+(d<<2)>>2];return +e}function ae(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,h=0;f=c[b+80>>2]|0;if(!(a[(c[b+40>>2]|0)+d>>0]|0)){g[e>>2]=0.0;g[e+4>>2]=0.0;g[e+8>>2]=0.0;return}else{b=c[f+(d<<4)+8>>2]|0;h=c[f+(d<<4)+4>>2]|0;c[e>>2]=c[f+(d<<4)>>2];c[e+4>>2]=h;c[e+8>>2]=b;return}}function be(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,h=0;f=c[b+100>>2]|0;if(!(a[(c[b+40>>2]|0)+d>>0]|0)){g[e>>2]=0.0;g[e+4>>2]=0.0;g[e+8>>2]=0.0;return}else{b=c[f+(d<<4)+8>>2]|0;h=c[f+(d<<4)+4>>2]|0;c[e>>2]=c[f+(d<<4)>>2];c[e+4>>2]=h;c[e+8>>2]=b;return}}function ce(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=(b|0)==0?1:b;b=(d|0)==0?-1:d;d=c[2]|0;if((a|0)==0?1:(c[a+236>>2]&2|0)==0){tc[c[(c[d>>2]|0)+36>>2]&63](d,a,e&65535,b&65535);return}else{tc[c[(c[d>>2]|0)+88>>2]&63](d,a,e&65535,b&65535);return}}function de(a){a=a|0;var b=0;b=c[2]|0;Mb[c[(c[b>>2]|0)+40>>2]&127](b,a);return}function ee(a){a=a|0;var b=0;b=c[2]|0;Mb[c[(c[b>>2]|0)+64>>2]&127](b,a);return}function fe(a){a=a|0;var b=0;b=c[2]|0;Mb[c[(c[b>>2]|0)+68>>2]&127](b,a);return}function ge(a){a=a|0;var b=0;if(c[a+204>>2]&3)return;b=a+216|0;if((c[b>>2]&-2|0)!=4)c[b>>2]=1;g[a+220>>2]=0.0;return}function he(a){a=a|0;var b=0;b=a+216|0;if((c[b>>2]&-2|0)==4)return;c[b>>2]=4;return}function ie(a,b,d,e){a=a|0;b=+b;d=+d;e=+e;var f=0;f=a+284|0;c[f>>2]=(c[f>>2]|0)+1;g[a+336>>2]=b;g[a+340>>2]=d;g[a+344>>2]=e;g[a+348>>2]=0.0;return}function je(a,b,d,e){a=a|0;b=+b;d=+d;e=+e;var f=0,h=0.0;f=a+436|0;c[f>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;c[f+12>>2]=0;c[f+16>>2]=0;c[f+20>>2]=0;c[f+24>>2]=0;c[f+28>>2]=0;h=+g[a+376>>2]*d;d=+g[a+380>>2]*e;g[f>>2]=+g[a+372>>2]*b+0.0;g[a+440>>2]=h+0.0;g[a+444>>2]=d+0.0;return}function ke(a,b,c,d){a=a|0;b=+b;c=+c;d=+d;var e=0.0,f=0;e=+g[a+572>>2]*c;c=+g[a+576>>2]*d;f=a+452|0;g[f>>2]=+g[a+568>>2]*b+ +g[f>>2];f=a+456|0;g[f>>2]=e+ +g[f>>2];f=a+460|0;g[f>>2]=c+ +g[f>>2];return}function le(a,b,d,e){a=a|0;b=+b;d=+d;e=+e;var f=0;f=c[a+144>>2]|0;g[f+820>>2]=b;g[f+1104>>2]=b;g[f+824>>2]=d;g[f+1108>>2]=d;g[f+232>>2]=e;g[f+516>>2]=e;return}function me(a,b,d,e){a=a|0;b=+b;d=+d;e=+e;var f=0;g[a+8>>2]=b;f=c[a+72>>2]|0;g[f+168>>2]=d;g[f+340>>2]=d;g[f+512>>2]=d;g[f+684>>2]=d;g[a+4>>2]=e;return}function ne(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,h=0,j=0,k=0,l=0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0,r=0.0,s=0.0,t=0.0,u=0.0,v=0.0,w=0.0,x=0.0,y=0.0,z=0.0,A=0.0,B=0.0,C=0.0,D=0.0,E=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;f=i;i=i+80|0;h=f+16|0;j=f;k=a+116|0;l=a+144|0;mi(c[k>>2]|0,c[l>>2]|0,b,1);a=c[k>>2]|0;m=+g[a+4>>2];n=+g[a+20>>2];o=+g[a+36>>2];p=+g[a+8>>2];q=+g[a+24>>2];r=+g[a+40>>2];s=+g[a+12>>2];t=+g[a+28>>2];u=+g[a+44>>2];v=-+g[a+52>>2];w=-+g[a+56>>2];x=-+g[a+60>>2];a=c[l>>2]|0;y=+g[a+(b*284|0)+92>>2];z=+g[a+(b*284|0)+108>>2];A=+g[a+(b*284|0)+124>>2];B=+g[a+(b*284|0)+96>>2];C=+g[a+(b*284|0)+112>>2];D=+g[a+(b*284|0)+128>>2];E=+g[a+(b*284|0)+100>>2];F=+g[a+(b*284|0)+116>>2];G=+g[a+(b*284|0)+132>>2];H=+g[a+(b*284|0)+140>>2];I=+g[a+(b*284|0)+144>>2];J=+g[a+(b*284|0)+148>>2];K=m*v+n*w+o*x+(m*H+n*I+o*J);L=p*v+q*w+r*x+(p*H+q*I+r*J);M=s*v+t*w+u*x+(s*H+t*I+u*J);g[h>>2]=m*y+n*z+o*A;g[h+4>>2]=m*B+n*C+o*D;g[h+8>>2]=m*E+n*F+o*G;g[h+12>>2]=0.0;g[h+16>>2]=p*y+q*z+r*A;g[h+20>>2]=p*B+q*C+r*D;g[h+24>>2]=p*E+q*F+r*G;g[h+28>>2]=0.0;g[h+32>>2]=s*y+t*z+u*A;g[h+36>>2]=s*B+t*C+u*D;g[h+40>>2]=s*E+t*F+u*G;g[h+44>>2]=0.0;g[h+48>>2]=K;g[h+52>>2]=L;g[h+56>>2]=M;g[h+60>>2]=0.0;g[d>>2]=K;g[d+4>>2]=L;g[d+8>>2]=M;Me(h,j);c[e>>2]=c[j>>2];c[e+4>>2]=c[j+4>>2];c[e+8>>2]=c[j+8>>2];c[e+12>>2]=c[j+12>>2];i=f;return}function oe(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0.0,p=0.0,q=0.0,r=0.0,s=0.0,t=0.0,u=0.0,v=0.0,w=0.0,x=0.0,y=0.0,z=0.0,A=0.0,B=0.0,C=0.0,D=0.0,E=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,O=0.0;f=i;i=i+80|0;h=f+16|0;j=f;k=a+72|0;l=c[k>>2]|0;m=l+(b*172|0)|0;n=a+36|0;gf(c[n>>2]|0,m,1);o=-+g[l+(b*172|0)+80>>2];p=-+g[l+(b*172|0)+84>>2];q=-+g[l+(b*172|0)+88>>2];r=+g[l+(b*172|0)+104>>2];s=+g[l+(b*172|0)+100>>2];t=+g[l+(b*172|0)+96>>2];g[m>>2]=t;g[l+(b*172|0)+4>>2]=r*p-s*q;g[l+(b*172|0)+8>>2]=o;g[l+(b*172|0)+12>>2]=0.0;g[l+(b*172|0)+16>>2]=s;g[l+(b*172|0)+20>>2]=t*q-r*o;g[l+(b*172|0)+24>>2]=p;g[l+(b*172|0)+28>>2]=0.0;g[l+(b*172|0)+32>>2]=r;g[l+(b*172|0)+36>>2]=s*o-t*p;g[l+(b*172|0)+40>>2]=q;g[l+(b*172|0)+44>>2]=0.0;m=l+(b*172|0)+64|0;a=l+(b*172|0)+48|0;c[a>>2]=c[m>>2];c[a+4>>2]=c[m+4>>2];c[a+8>>2]=c[m+8>>2];c[a+12>>2]=c[m+12>>2];m=c[n>>2]|0;q=+g[m+4>>2];p=+g[m+20>>2];t=+g[m+36>>2];o=+g[m+8>>2];s=+g[m+24>>2];r=+g[m+40>>2];u=+g[m+12>>2];v=+g[m+28>>2];w=+g[m+44>>2];x=-+g[m+52>>2];y=-+g[m+56>>2];z=-+g[m+60>>2];m=c[k>>2]|0;A=+g[m+(b*172|0)>>2];B=+g[m+(b*172|0)+16>>2];C=+g[m+(b*172|0)+32>>2];D=+g[m+(b*172|0)+4>>2];E=+g[m+(b*172|0)+20>>2];F=+g[m+(b*172|0)+36>>2];G=+g[m+(b*172|0)+8>>2];H=+g[m+(b*172|0)+24>>2];I=+g[m+(b*172|0)+40>>2];J=+g[m+(b*172|0)+48>>2];K=+g[m+(b*172|0)+52>>2];L=+g[m+(b*172|0)+56>>2];M=q*x+p*y+t*z+(q*J+p*K+t*L);N=o*x+s*y+r*z+(o*J+s*K+r*L);O=u*x+v*y+w*z+(u*J+v*K+w*L);g[h>>2]=q*A+p*B+t*C;g[h+4>>2]=q*D+p*E+t*F;g[h+8>>2]=q*G+p*H+t*I;g[h+12>>2]=0.0;g[h+16>>2]=o*A+s*B+r*C;g[h+20>>2]=o*D+s*E+r*F;g[h+24>>2]=o*G+s*H+r*I;g[h+28>>2]=0.0;g[h+32>>2]=u*A+v*B+w*C;g[h+36>>2]=u*D+v*E+w*F;g[h+40>>2]=u*G+v*H+w*I;g[h+44>>2]=0.0;g[h+48>>2]=M;g[h+52>>2]=N;g[h+56>>2]=O;g[h+60>>2]=0.0;g[d>>2]=M;g[d+4>>2]=N;g[d+8>>2]=O;Me(h,j);c[e>>2]=c[j>>2];c[e+4>>2]=c[j+4>>2];c[e+8>>2]=c[j+8>>2];c[e+12>>2]=c[j+12>>2];i=f;return}function pe(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0.0,q=0.0,r=0.0,s=0.0,t=0.0,u=0.0,v=0.0,w=0.0,x=0.0,y=0.0,z=0.0,A=0.0,B=0.0,C=0.0,D=0,E=0,F=0;h=i;i=i+80|0;j=h+16|0;k=h;l=b+48|0;m=c[l>>2]|0;a[m+(d*132|0)+112>>0]=0;n=c[b+4>>2]|0;b=n+4|0;c[j>>2]=c[b>>2];c[j+4>>2]=c[b+4>>2];c[j+8>>2]=c[b+8>>2];c[j+12>>2]=c[b+12>>2];b=j+16|0;o=n+20|0;c[b>>2]=c[o>>2];c[b+4>>2]=c[o+4>>2];c[b+8>>2]=c[o+8>>2];c[b+12>>2]=c[o+12>>2];o=j+32|0;b=n+36|0;c[o>>2]=c[b>>2];c[o+4>>2]=c[b+4>>2];c[o+8>>2]=c[b+8>>2];c[o+12>>2]=c[b+12>>2];b=j+48|0;o=n+52|0;c[b>>2]=c[o>>2];c[b+4>>2]=c[o+4>>2];c[b+8>>2]=c[o+8>>2];c[b+12>>2]=c[o+12>>2];o=c[n+504>>2]|0;if(o)Mb[c[(c[o>>2]|0)+8>>2]&127](o,j);p=+g[m+(d*132|0)+116>>2];q=+g[j>>2];r=+g[m+(d*132|0)+120>>2];s=+g[j+4>>2];t=+g[m+(d*132|0)+124>>2];u=+g[j+8>>2];v=+g[j+16>>2];w=+g[j+20>>2];x=+g[j+24>>2];y=+g[j+32>>2];z=+g[j+36>>2];A=+g[j+40>>2];B=p*v+r*w+t*x+ +g[j+52>>2];C=p*y+r*z+t*A+ +g[j+56>>2];g[m+(d*132|0)+64>>2]=p*q+r*s+t*u+ +g[j+48>>2];g[m+(d*132|0)+68>>2]=B;g[m+(d*132|0)+72>>2]=C;g[m+(d*132|0)+76>>2]=0.0;C=s*0.0;s=w*0.0;w=z*0.0;o=m+(d*132|0)+80|0;g[o>>2]=q*0.0+C-u;n=m+(d*132|0)+84|0;g[n>>2]=v*0.0+s-x;b=m+(d*132|0)+88|0;g[b>>2]=y*0.0+w-A;g[m+(d*132|0)+92>>2]=0.0;D=m+(d*132|0)+96|0;g[D>>2]=q+C+u*0.0;E=m+(d*132|0)+100|0;g[E>>2]=v+s+x*0.0;F=m+(d*132|0)+104|0;g[F>>2]=y+w+A*0.0;g[m+(d*132|0)+108>>2]=0.0;A=-+g[o>>2];w=-+g[n>>2];y=-+g[b>>2];x=+g[F>>2];s=+g[E>>2];v=+g[D>>2];g[m+(d*132|0)>>2]=v;g[m+(d*132|0)+4>>2]=x*w-s*y;g[m+(d*132|0)+8>>2]=A;g[m+(d*132|0)+12>>2]=0.0;g[m+(d*132|0)+16>>2]=s;g[m+(d*132|0)+20>>2]=v*y-x*A;g[m+(d*132|0)+24>>2]=w;g[m+(d*132|0)+28>>2]=0.0;g[m+(d*132|0)+32>>2]=x;g[m+(d*132|0)+36>>2]=s*A-v*w;g[m+(d*132|0)+40>>2]=y;g[m+(d*132|0)+44>>2]=0.0;D=m+(d*132|0)+64|0;E=m+(d*132|0)+48|0;c[E>>2]=c[D>>2];c[E+4>>2]=c[D+4>>2];c[E+8>>2]=c[D+8>>2];c[E+12>>2]=c[D+12>>2];D=c[l>>2]|0;l=D+(d*132|0)|0;c[j>>2]=c[l>>2];c[j+4>>2]=c[l+4>>2];c[j+8>>2]=c[l+8>>2];c[j+12>>2]=c[l+12>>2];l=j+16|0;E=D+(d*132|0)+16|0;c[l>>2]=c[E>>2];c[l+4>>2]=c[E+4>>2];c[l+8>>2]=c[E+8>>2];c[l+12>>2]=c[E+12>>2];E=j+32|0;l=D+(d*132|0)+32|0;c[E>>2]=c[l>>2];c[E+4>>2]=c[l+4>>2];c[E+8>>2]=c[l+8>>2];c[E+12>>2]=c[l+12>>2];l=j+48|0;E=D+(d*132|0)+48|0;c[l>>2]=c[E>>2];c[l+4>>2]=c[E+4>>2];c[l+8>>2]=c[E+8>>2];c[l+12>>2]=c[E+12>>2];E=c[j+52>>2]|0;d=c[j+56>>2]|0;c[e>>2]=c[l>>2];c[e+4>>2]=E;c[e+8>>2]=d;Me(j,k);c[f>>2]=c[k>>2];c[f+4>>2]=c[k+4>>2];c[f+8>>2]=c[k+8>>2];c[f+12>>2]=c[k+12>>2];i=h;return}function qe(a){a=a|0;return +(+g[a+112>>2]);}function re(a){a=a|0;return +(+g[a+12>>2]);}function se(a){a=a|0;var b=0.0,c=0.0,d=0.0;b=+g[a+336>>2];c=+g[a+340>>2];d=+g[a+344>>2];return +(+P(+(b*b+c*c+d*d))*3.6);}function te(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;g[a+20>>2]=+(b|0);g[a+24>>2]=+(c|0);g[a+28>>2]=+(d|0);g[a+32>>2]=0.0;return}function ue(a,d){a=a|0;d=d|0;var e=0;e=d<<16>>16;if(!e)c[a+120>>2]=c[a+124>>2];else if((e|0)==1)c[a+120>>2]=c[a+128>>2];else if((e|0)==3)c[a+120>>2]=c[a+132>>2];b[a+16>>1]=d;return}function ve(a,c){a=a|0;c=+c;g[a+124>>2]=c;if(b[a+16>>1]|0)return;g[a+120>>2]=c;return}function we(a,c){a=a|0;c=+c;g[a+128>>2]=c;if((b[a+16>>1]|0)!=1)return;g[a+120>>2]=c;return}function xe(a,c){a=a|0;c=+c;g[a+132>>2]=c;if((b[a+16>>1]|0)!=3)return;g[a+120>>2]=c;return}function ye(a,b,c){a=a|0;b=+b;c=+c;g[a+36>>2]=b;g[a+40>>2]=c;return}function ze(a,b){a=a|0;b=+b;g[a+36>>2]=b;return}function Ae(a,b){a=a|0;b=+b;g[a+40>>2]=b;return}function Be(a,b,c){a=a|0;b=+b;c=+c;var d=0;d=a+36|0;g[d>>2]=+g[d>>2]+b;d=a+40|0;g[d>>2]=+g[d>>2]+c;return}function Ce(b){b=b|0;var d=0,e=0.0,f=0.0,h=0.0,i=0.0;if(!(+g[b+112>>2]<1.0))return;d=b+144|0;if(a[d>>0]|0)return;a[d>>0]=1;d=c[b+4>>2]|0;e=+g[d+368>>2];f=+g[b+136>>2]/e;h=f*0.0;i=e*(f*+g[d+376>>2]);f=e*(h*+g[d+380>>2]);b=d+336|0;g[b>>2]=e*(h*+g[d+372>>2])+ +g[b>>2];b=d+340|0;g[b>>2]=i+ +g[b>>2];b=d+344|0;g[b>>2]=f+ +g[b>>2];return}function De(a,b,d,e,f,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;var i=0,j=0,k=0.0;i=c[b+120>>2]|0;j=c[b+124>>2]|0;c[d>>2]=c[b+116>>2];c[d+4>>2]=i;c[d+8>>2]=j;k=+g[a+36>>2]*.5;g[e+12>>2]=+R(+k);g[e>>2]=0.0;g[e+4>>2]=+S(+k);g[e+8>>2]=0.0;e=c[b+136>>2]|0;a=c[b+140>>2]|0;c[f>>2]=c[b+132>>2];c[f+4>>2]=e;c[f+8>>2]=a;a=c[b+152>>2]|0;f=c[b+156>>2]|0;c[h>>2]=c[b+148>>2];c[h+4>>2]=a;c[h+8>>2]=f;return}function Ee(a,b){a=a|0;b=+b;var d=0.0,e=0.0;d=-b;b=+g[a+368>>2];if(b!=0.0){e=1.0/b;b=e*0.0;g[a+388>>2]=b;g[a+392>>2]=e*d;g[a+396>>2]=b;g[a+400>>2]=0.0}c[a+404>>2]=0;g[a+408>>2]=d;c[a+412>>2]=0;g[a+416>>2]=0.0;return}function Fe(a,b,d){a=a|0;b=+b;d=+d;var e=0,f=0,h=0,j=0,k=0,l=0,m=0;e=i;i=i+32|0;f=e+20|0;h=e+16|0;j=e+12|0;k=e+8|0;l=e+4|0;m=e;g[f>>2]=b;g[h>>2]=d;g[j>>2]=0.0;g[k>>2]=1.0;c[a+468>>2]=c[(b<0.0?j:b>1.0?k:f)>>2];g[l>>2]=0.0;g[m>>2]=1.0;c[a+472>>2]=c[(d<0.0?l:d>1.0?m:h)>>2];i=e;return}function Ge(b,d,e,f){b=b|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,r=0;g=ws(40)|0;a:do if(!g){while(1){h=c[3728]|0;c[3728]=h+0;if(!h)break;qc[h&3]();h=ws(40)|0;if(h){i=h;break a}}h=Db(4)|0;c[h>>2]=14864;zb(h|0,14896,182);}else i=g;while(0);c[i>>2]=0;c[i+4>>2]=0;c[i+8>>2]=0;c[i>>2]=e>>>0<f>>>0?e:f;c[i+4>>2]=e>>>0>f>>>0?e:f;a[i+8>>0]=0;f=i+12|0;e=d+1|0;c[f>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;c[f+12>>2]=0;c[f+16>>2]=0;c[f+20>>2]=0;c[f+24>>2]=0;f=ys(b,e<<2)|0;c[f+(d<<2)>>2]=i;if((d|0)>0){j=1;k=e}else return f|0;while(1){if(j)l=~~+N(+(+(k|0)/1.247330950103979));else l=k;if((l|0)>(d|0))m=0;else{i=e-l|0;b=l;g=0;h=0;while(1){n=f+(g<<2)|0;o=c[n>>2]|0;p=f+(b<<2)|0;q=c[p>>2]|0;if(((c[o>>2]|0)-(c[q>>2]|0)|0)>0){c[n>>2]=q;c[p>>2]=o;r=1}else r=h;o=g+1|0;if((o|0)==(i|0))break;else{b=o+l|0;g=o;h=r}}m=(r&1)!=0}j=(l|0)>1;if(!(j|m))break;else k=l}return f|0}function He(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;f=d>>>0<e>>>0?d:e;a:do if((b|0)>=0){g=b;h=0;while(1){i=g;while(1){j=i-h|0;k=((j|0)/2|0)+h|0;l=c[a+(k<<2)>>2]|0;m=c[l>>2]|0;if(m>>>0<=f>>>0)break;if((j|0)<2){n=-1;break a}else i=k+-1|0}if(m>>>0>=f>>>0)break;h=k+1|0;if((i|0)<(h|0)){n=-1;break a}else g=i}if((k|0)!=-1){g=d>>>0>e>>>0?d:e;h=l;j=k;while(1){if((c[h+4>>2]|0)==(g|0)){n=j;break a}j=j+-1|0;h=c[a+(j<<2)>>2]|0;if((c[h>>2]|0)!=(m|0)){o=l;p=k;break}}while(1){if((c[o+4>>2]|0)==(g|0)){n=p;break a}p=p+1|0;o=c[a+(p<<2)>>2]|0;if((c[o>>2]|0)!=(m|0)){n=-1;break}}}else n=-1}else n=-1;while(0);m=c[a+(n<<2)>>2]|0;if((n|0)<(b|0))q=n;else{xs(m);r=b<<2;s=r+-4|0;t=ys(a,s)|0;return t|0}do{n=q;q=q+1|0;c[a+(n<<2)>>2]=c[a+(q<<2)>>2]}while((q|0)!=(b|0));xs(m);r=b<<2;s=r+-4|0;t=ys(a,s)|0;return t|0}function Ie(b,d,e,f,h,i,j){b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;i=i|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;k=e>>>0<f>>>0?e:f;a:do if((d|0)>=0){l=d;m=0;while(1){n=l;while(1){o=n-m|0;p=((o|0)/2|0)+m|0;q=c[b+(p<<2)>>2]|0;r=c[q>>2]|0;if(r>>>0<=k>>>0)break;if((o|0)<2){s=-1;break a}else n=p+-1|0}if(r>>>0>=k>>>0)break;m=p+1|0;if((n|0)<(m|0)){s=-1;break a}else l=n}if((p|0)!=-1){l=e>>>0>f>>>0?e:f;m=q;o=p;while(1){if((c[m+4>>2]|0)==(l|0)){s=o;break a}o=o+-1|0;m=c[b+(o<<2)>>2]|0;if((c[m>>2]|0)!=(r|0)){t=q;u=p;break}}while(1){if((c[t+4>>2]|0)==(l|0)){s=u;break a}u=u+1|0;t=c[b+(u<<2)>>2]|0;if((c[t>>2]|0)!=(r|0)){s=-1;break}}}else s=-1}else s=-1;while(0);r=c[b+(s<<2)>>2]|0;s=a[r+8>>0]|0;do if(h)if(!(s<<24>>24)){g[h>>2]=0.0;g[h+4>>2]=0.0;g[h+8>>2]=0.0;break}else{c[h>>2]=c[r+12>>2];c[h+4>>2]=c[r+16>>2];c[h+8>>2]=c[r+20>>2];break}while(0);do if(i)if(!(s<<24>>24)){g[i>>2]=0.0;g[i+4>>2]=0.0;g[i+8>>2]=0.0;break}else{c[i>>2]=c[r+24>>2];c[i+4>>2]=c[r+28>>2];c[i+8>>2]=c[r+32>>2];break}while(0);if(!j){v=s<<24>>24!=0;return v|0}if(!(s<<24>>24)){g[j>>2]=0.0;v=s<<24>>24!=0;return v|0}else{c[j>>2]=c[r+36>>2];v=s<<24>>24!=0;return v|0}return 0}function Je(a){a=a|0;var b=0;b=i;i=i+16|0;hb(a|0)|0;if(rb(15432,3)|0)Sr(15440,b);b=pb(c[3856]|0)|0;if(((b|0)!=0?(a=c[b>>2]|0,(a|0)!=0):0)?(b=a+48|0,(c[b>>2]&-256|0)==1126902528?(c[b+4>>2]|0)==1129074247:0):0)Wr(c[a+12>>2]|0);a=c[3712]|0;c[3712]=a+0;Wr(a);}function Ke(a){a=a|0;var b=0,d=0,e=0,f=0;if((c[a+4>>2]|0)==31?(b=c[a+20>>2]|0,(b|0)>0):0){d=a+28|0;e=b;do{b=e;e=e+-1|0;f=c[(c[d>>2]|0)+(e*80|0)+64>>2]|0;Mb[c[(c[a>>2]|0)+64>>2]&127](a,f);Ke(f);}while((b|0)>1);}Kb[c[(c[a>>2]|0)+4>>2]&255](a);return}function Le(a,b,d,e){a=a|0;b=+b;d=+d;e=+e;var f=0,h=0,j=0,k=0,l=0,m=0;f=i;i=i+64|0;h=f;if((!(+O(+b)>.01)?!(+O(+d)>.01):0)?!(+O(+e)>.01):0){j=a;i=f;return j|0}c[3708]=(c[3708]|0)+1;k=ws(115)|0;if(!k)l=0;else{m=k+4+15&-16;c[m+-4>>2]=k;l=m}cn(l,1);c[h>>2]=1065353216;m=h+4|0;c[m>>2]=0;c[m+4>>2]=0;c[m+8>>2]=0;c[m+12>>2]=0;c[h+20>>2]=1065353216;m=h+24|0;c[m>>2]=0;c[m+4>>2]=0;c[m+8>>2]=0;c[m+12>>2]=0;c[h+40>>2]=1065353216;m=h+44|0;c[m>>2]=0;c[m+4>>2]=0;c[m+8>>2]=0;g[h+48>>2]=b;g[h+52>>2]=d;g[h+56>>2]=e;g[h+60>>2]=0.0;fn(l,h,a);j=l;i=f;return j|0}function Me(a,b){a=a|0;b=b|0;var d=0,e=0,f=0.0,h=0.0,j=0.0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;d=i;i=i+16|0;e=d;f=+g[a>>2];h=+g[a+20>>2];j=+g[a+40>>2];l=f+h+j;if(l>0.0){m=+P(+(l+1.0));l=m*.5;g[e+12>>2]=l;n=.5/m;m=n*(+g[a+36>>2]-+g[a+24>>2]);g[e>>2]=m;o=n*(+g[a+8>>2]-+g[a+32>>2]);g[e+4>>2]=o;p=n*(+g[a+16>>2]-+g[a+4>>2]);g[e+8>>2]=p;q=(g[k>>2]=m,c[k>>2]|0);r=(g[k>>2]=o,c[k>>2]|0);s=(g[k>>2]=p,c[k>>2]|0);t=q;u=r;v=s;w=(g[k>>2]=l,c[k>>2]|0);c[b>>2]=t;x=b+4|0;c[x>>2]=u;y=b+8|0;c[y>>2]=v;z=b+12|0;c[z>>2]=w;i=d;return}else{s=f<h?(h<j?2:1):f<j?2:0;r=((s+1|0)>>>0)%3|0;q=((s+2|0)>>>0)%3|0;j=+P(+(+g[a+(s<<4)+(s<<2)>>2]-+g[a+(r<<4)+(r<<2)>>2]-+g[a+(q<<4)+(q<<2)>>2]+1.0));g[e+(s<<2)>>2]=j*.5;f=.5/j;A=e+12|0;g[A>>2]=f*(+g[a+(q<<4)+(r<<2)>>2]-+g[a+(r<<4)+(q<<2)>>2]);g[e+(r<<2)>>2]=f*(+g[a+(r<<4)+(s<<2)>>2]+ +g[a+(s<<4)+(r<<2)>>2]);g[e+(q<<2)>>2]=f*(+g[a+(q<<4)+(s<<2)>>2]+ +g[a+(s<<4)+(q<<2)>>2]);t=c[e>>2]|0;u=c[e+4>>2]|0;v=c[e+8>>2]|0;w=c[A>>2]|0;c[b>>2]=t;x=b+4|0;c[x>>2]=u;y=b+8|0;c[y>>2]=v;z=b+12|0;c[z>>2]=w;i=d;return}}function Ne(b){b=b|0;var e=0,f=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;e=i;i=i+16|0;f=e;h=b+32|0;j=c[h>>2]|0;k=c[j+12>>2]|0;if(a[b+24>>0]|0){l=k-(c[j+4>>2]|0)|0;i=e;return l|0}b=j+40|0;m=k+-1|0;k=j+20|0;n=c[k>>2]|0;if(a[c[b>>2]>>0]|0){o=d[n>>0]|d[n+1>>0]<<8|d[n+2>>0]<<16|d[n+3>>0]<<24;c[n>>2]=c[n+(m<<2)>>2];p=(c[k>>2]|0)+(m<<2)|0;a[p>>0]=o;a[p+1>>0]=o>>8;a[p+2>>0]=o>>16;a[p+3>>0]=o>>24;o=c[b>>2]|0;p=a[o>>0]|0;a[o>>0]=a[o+m>>0]|0;a[(c[b>>2]|0)+m>>0]=p;p=j+60|0;o=c[p>>2]|0;q=d[o>>0]|d[o+1>>0]<<8|d[o+2>>0]<<16|d[o+3>>0]<<24;c[o>>2]=c[o+(m<<2)>>2];o=(c[p>>2]|0)+(m<<2)|0;a[o>>0]=q;a[o+1>>0]=q>>8;a[o+2>>0]=q>>16;a[o+3>>0]=q>>24;if(a[j>>0]|0){q=j+80|0;o=c[q>>2]|0;r=f;s=o;t=r+16|0;do{a[r>>0]=a[s>>0]|0;r=r+1|0;s=s+1|0}while((r|0)<(t|0));p=o+(m<<4)|0;c[o>>2]=c[p>>2];c[o+4>>2]=c[p+4>>2];c[o+8>>2]=c[p+8>>2];c[o+12>>2]=c[p+12>>2];r=(c[q>>2]|0)+(m<<4)|0;s=f;t=r+16|0;do{a[r>>0]=a[s>>0]|0;r=r+1|0;s=s+1|0}while((r|0)<(t|0));q=j+100|0;p=c[q>>2]|0;r=f;s=p;t=r+16|0;do{a[r>>0]=a[s>>0]|0;r=r+1|0;s=s+1|0}while((r|0)<(t|0));o=p+(m<<4)|0;c[p>>2]=c[o>>2];c[p+4>>2]=c[o+4>>2];c[p+8>>2]=c[o+8>>2];c[p+12>>2]=c[o+12>>2];r=(c[q>>2]|0)+(m<<4)|0;s=f;t=r+16|0;do{a[r>>0]=a[s>>0]|0;r=r+1|0;s=s+1|0}while((r|0)<(t|0));}Oe(c[h>>2]|0,1);l=1;i=e;return l|0}q=n+4|0;o=d[q>>0]|d[q+1>>0]<<8|d[q+2>>0]<<16|d[q+3>>0]<<24;c[q>>2]=c[n+(m<<2)>>2];n=(c[k>>2]|0)+(m<<2)|0;a[n>>0]=o;a[n+1>>0]=o>>8;a[n+2>>0]=o>>16;a[n+3>>0]=o>>24;o=c[b>>2]|0;n=o+1|0;k=a[n>>0]|0;a[n>>0]=a[o+m>>0]|0;a[(c[b>>2]|0)+m>>0]=k;k=j+60|0;b=c[k>>2]|0;o=b+4|0;n=d[o>>0]|d[o+1>>0]<<8|d[o+2>>0]<<16|d[o+3>>0]<<24;c[o>>2]=c[b+(m<<2)>>2];b=(c[k>>2]|0)+(m<<2)|0;a[b>>0]=n;a[b+1>>0]=n>>8;a[b+2>>0]=n>>16;a[b+3>>0]=n>>24;if(a[j>>0]|0){n=j+80|0;b=c[n>>2]|0;k=b+16|0;r=f;s=k;t=r+16|0;do{a[r>>0]=a[s>>0]|0;r=r+1|0;s=s+1|0}while((r|0)<(t|0));o=b+(m<<4)|0;c[k>>2]=c[o>>2];c[k+4>>2]=c[o+4>>2];c[k+8>>2]=c[o+8>>2];c[k+12>>2]=c[o+12>>2];r=(c[n>>2]|0)+(m<<4)|0;s=f;t=r+16|0;do{a[r>>0]=a[s>>0]|0;r=r+1|0;s=s+1|0}while((r|0)<(t|0));n=j+100|0;j=c[n>>2]|0;o=j+16|0;r=f;s=o;t=r+16|0;do{a[r>>0]=a[s>>0]|0;r=r+1|0;s=s+1|0}while((r|0)<(t|0));k=j+(m<<4)|0;c[o>>2]=c[k>>2];c[o+4>>2]=c[k+4>>2];c[o+8>>2]=c[k+8>>2];c[o+12>>2]=c[k+12>>2];r=(c[n>>2]|0)+(m<<4)|0;s=f;t=r+16|0;do{a[r>>0]=a[s>>0]|0;r=r+1|0;s=s+1|0}while((r|0)<(t|0));}Oe(c[h>>2]|0,2);m=c[h>>2]|0;h=m+20|0;n=c[h>>2]|0;k=c[n>>2]|0;o=c[n+4>>2]|0;j=k;b=o;if((k|0)!=(o|0)){l=2;i=e;return l|0}o=m+60|0;k=c[o>>2]|0;if(+g[k>>2]==+g[k+4>>2]){if(!(a[m>>0]|0)){l=0;i=e;return l|0}k=c[m+80>>2]|0;if(((((((+g[k+12>>2]==+g[k+28>>2]?+g[k+8>>2]==+g[k+24>>2]:0)?+g[k+4>>2]==+g[k+20>>2]:0)?+g[k>>2]==+g[k+16>>2]:0)?(k=c[m+100>>2]|0,+g[k+12>>2]==+g[k+28>>2]):0)?+g[k+8>>2]==+g[k+24>>2]:0)?+g[k+4>>2]==+g[k+20>>2]:0)?+g[k>>2]==+g[k+16>>2]:0){l=0;i=e;return l|0}else u=m}else u=m;c[n>>2]=b;b=(c[h>>2]|0)+4|0;a[b>>0]=j;a[b+1>>0]=j>>8;a[b+2>>0]=j>>16;a[b+3>>0]=j>>24;j=m+40|0;b=c[j>>2]|0;h=a[b>>0]|0;a[b>>0]=a[b+1>>0]|0;a[(c[j>>2]|0)+1>>0]=h;h=c[o>>2]|0;j=d[h>>0]|d[h+1>>0]<<8|d[h+2>>0]<<16|d[h+3>>0]<<24;c[h>>2]=c[h+4>>2];h=(c[o>>2]|0)+4|0;a[h>>0]=j;a[h+1>>0]=j>>8;a[h+2>>0]=j>>16;a[h+3>>0]=j>>24;if(!(a[u>>0]|0)){l=1;i=e;return l|0}u=m+80|0;j=c[u>>2]|0;r=f;s=j;t=r+16|0;do{a[r>>0]=a[s>>0]|0;r=r+1|0;s=s+1|0}while((r|0)<(t|0));h=j+16|0;c[j>>2]=c[h>>2];c[j+4>>2]=c[h+4>>2];c[j+8>>2]=c[h+8>>2];c[j+12>>2]=c[h+12>>2];r=(c[u>>2]|0)+16|0;s=f;t=r+16|0;do{a[r>>0]=a[s>>0]|0;r=r+1|0;s=s+1|0}while((r|0)<(t|0));u=m+100|0;m=c[u>>2]|0;r=f;s=m;t=r+16|0;do{a[r>>0]=a[s>>0]|0;r=r+1|0;s=s+1|0}while((r|0)<(t|0));h=m+16|0;c[m>>2]=c[h>>2];c[m+4>>2]=c[h+4>>2];c[m+8>>2]=c[h+8>>2];c[m+12>>2]=c[h+12>>2];r=(c[u>>2]|0)+16|0;s=f;t=r+16|0;do{a[r>>0]=a[s>>0]|0;r=r+1|0;s=s+1|0}while((r|0)<(t|0));l=1;i=e;return l|0}function Oe(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0;e=i;i=i+32|0;f=e+16|0;g=e;h=b+12|0;j=c[h>>2]|0;if((j|0)<(d|0)){k=b+16|0;if((c[k>>2]|0)<(d|0)){if(!d){l=0;m=j}else{c[3708]=(c[3708]|0)+1;n=ws((d<<2|3)+16|0)|0;if(!n)o=0;else{p=n+4+15&-16;c[p+-4>>2]=n;o=p}l=o;m=c[h>>2]|0}o=b+20|0;if((m|0)>0){p=0;do{c[l+(p<<2)>>2]=c[(c[o>>2]|0)+(p<<2)>>2];p=p+1|0}while((p|0)!=(m|0));}m=c[o>>2]|0;p=b+24|0;if(m){if(a[p>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[m+-4>>2]|0);}c[o>>2]=0}a[p>>0]=1;c[o>>2]=l;c[k>>2]=d;q=o}else q=b+20|0;o=j;do{c[(c[q>>2]|0)+(o<<2)>>2]=0;o=o+1|0}while((o|0)!=(d|0));}c[h>>2]=d;h=b+32|0;o=c[h>>2]|0;if((o|0)<(d|0)){q=b+36|0;do if((c[q>>2]|0)<(d|0)){if(!d){r=0;s=o}else{c[3708]=(c[3708]|0)+1;j=ws(d+19|0)|0;if(!j)t=0;else{k=j+4+15&-16;c[k+-4>>2]=j;t=k}r=t;s=c[h>>2]|0}k=b+40|0;j=c[k>>2]|0;if((s|0)<=0){if(!j){a[b+44>>0]=1;c[k>>2]=r;c[q>>2]=d;u=r;break}}else{l=0;do{a[r+l>>0]=a[j+l>>0]|0;l=l+1|0}while((l|0)!=(s|0));}l=b+44|0;if(a[l>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[j+-4>>2]|0);}a[l>>0]=1;c[k>>2]=r;c[q>>2]=d;u=r}else u=c[b+40>>2]|0;while(0);Cs(u+o|0,0,d-o|0)|0}c[h>>2]=d;h=b+52|0;o=c[h>>2]|0;if((o|0)<(d|0)){u=b+56|0;do if((c[u>>2]|0)<(d|0)){if(!d){v=0;w=o}else{c[3708]=(c[3708]|0)+1;r=ws((d<<2|3)+16|0)|0;if(!r)x=0;else{q=r+4+15&-16;c[q+-4>>2]=r;x=q}v=x;w=c[h>>2]|0}q=b+60|0;r=c[q>>2]|0;if((w|0)<=0){if(!r){a[b+64>>0]=1;c[q>>2]=v;c[u>>2]=d;y=v;break}}else{s=0;do{c[v+(s<<2)>>2]=c[r+(s<<2)>>2];s=s+1|0}while((s|0)!=(w|0));}s=b+64|0;if(a[s>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[r+-4>>2]|0);}a[s>>0]=1;c[q>>2]=v;c[u>>2]=d;y=v}else y=c[b+60>>2]|0;while(0);Cs(y+(o<<2)|0,0,d-o<<2|0)|0}c[h>>2]=d;if(!(a[b>>0]|0)){i=e;return}h=b+72|0;o=c[h>>2]|0;if((o|0)<(d|0)){y=b+76|0;if((c[y>>2]|0)<(d|0)){if(!d){z=0;A=o}else{c[3708]=(c[3708]|0)+1;v=ws((d<<4|3)+16|0)|0;if(!v)B=0;else{u=v+4+15&-16;c[u+-4>>2]=v;B=u}z=B;A=c[h>>2]|0}B=b+80|0;if((A|0)>0){u=0;do{v=z+(u<<4)|0;w=(c[B>>2]|0)+(u<<4)|0;c[v>>2]=c[w>>2];c[v+4>>2]=c[w+4>>2];c[v+8>>2]=c[w+8>>2];c[v+12>>2]=c[w+12>>2];u=u+1|0}while((u|0)!=(A|0));}A=c[B>>2]|0;u=b+84|0;if(A){if(a[u>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[A+-4>>2]|0);}c[B>>2]=0}a[u>>0]=1;c[B>>2]=z;c[y>>2]=d;C=B}else C=b+80|0;B=o;do{o=(c[C>>2]|0)+(B<<4)|0;c[o>>2]=c[f>>2];c[o+4>>2]=c[f+4>>2];c[o+8>>2]=c[f+8>>2];c[o+12>>2]=c[f+12>>2];B=B+1|0}while((B|0)!=(d|0));}c[h>>2]=d;h=b+92|0;B=c[h>>2]|0;if((B|0)<(d|0)){f=b+96|0;if((c[f>>2]|0)<(d|0)){if(!d){D=0;E=B}else{c[3708]=(c[3708]|0)+1;C=ws((d<<4|3)+16|0)|0;if(!C)F=0;else{o=C+4+15&-16;c[o+-4>>2]=C;F=o}D=F;E=c[h>>2]|0}F=b+100|0;if((E|0)>0){o=0;do{C=D+(o<<4)|0;y=(c[F>>2]|0)+(o<<4)|0;c[C>>2]=c[y>>2];c[C+4>>2]=c[y+4>>2];c[C+8>>2]=c[y+8>>2];c[C+12>>2]=c[y+12>>2];o=o+1|0}while((o|0)!=(E|0));}E=c[F>>2]|0;o=b+104|0;if(E){if(a[o>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[E+-4>>2]|0);}c[F>>2]=0}a[o>>0]=1;c[F>>2]=D;c[f>>2]=d;G=F}else G=b+100|0;b=B;do{B=(c[G>>2]|0)+(b<<4)|0;c[B>>2]=c[g>>2];c[B+4>>2]=c[g+4>>2];c[B+8>>2]=c[g+8>>2];c[B+12>>2]=c[g+12>>2];b=b+1|0}while((b|0)!=(d|0));}c[h>>2]=d;i=e;return}function Pe(a){a=a|0;return}function Qe(a){a=a|0;xs(a);return}function Re(a,d){a=a|0;d=d|0;var e=0,f=0;if(!((b[a+14>>1]&b[d+4>>1])<<16>>16)){e=0;return e|0}if(!((b[d+6>>1]&b[a+12>>1])<<16>>16)){e=0;return e|0}f=c[a+20>>2]|0;if(!f){e=1;return e|0}e=(c[(c[d>>2]|0)+244>>2]|0)==(f|0);return e|0}function Se(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0.0,q=0,r=0.0,s=0.0,t=0.0,u=0.0,v=0.0,w=0.0,x=0.0,y=0.0,z=0.0,A=0.0,B=0.0,C=0.0,D=0.0,E=0.0,F=0.0;f=i;i=i+96|0;h=f+80|0;j=f+64|0;k=f+48|0;l=f+32|0;m=f+16|0;n=f;o=c[d>>2]|0;if((o|0)==(c[b+28>>2]|0)){p=1.0;i=f;return +p}c[b+8>>2]=o;q=(a[b+24>>0]|0)==0;if(q)c[b+4>>2]=c[d+24>>2];r=+g[d+24>>2];do if(a[b+25>>0]|0){s=1.0-r;t=s*+g[b+36>>2]+r*+g[b+52>>2];u=s*+g[b+40>>2]+r*+g[b+56>>2];v=s*+g[b+44>>2]+r*+g[b+60>>2];s=+g[d+8>>2];w=+g[d+12>>2];x=+g[d+16>>2];if(e){y=t;z=u;A=v;B=s;C=w;D=x;E=+g[d+20>>2];F=r;break}else{y=t;z=u;A=v;B=+g[o+4>>2]*s+ +g[o+8>>2]*w+ +g[o+12>>2]*x;C=s*+g[o+20>>2]+w*+g[o+24>>2]+x*+g[o+28>>2];D=s*+g[o+36>>2]+w*+g[o+40>>2]+x*+g[o+44>>2];E=0.0;F=r;break}}else{y=0.0;z=0.0;A=0.0;B=0.0;C=0.0;D=0.0;E=0.0;F=r}while(0);d=c[b>>2]|0;if(q){q=c[d+24>>2]|0;g[m>>2]=y;g[m+4>>2]=z;g[m+8>>2]=A;g[n>>2]=B;g[n+4>>2]=C;g[n+8>>2]=D;g[n+12>>2]=E;c[j>>2]=c[m>>2];c[j+4>>2]=c[m+4>>2];c[j+8>>2]=c[m+8>>2];c[j+12>>2]=c[m+12>>2];c[h>>2]=c[n>>2];c[h+4>>2]=c[n+4>>2];c[h+8>>2]=c[n+8>>2];c[h+12>>2]=c[n+12>>2];ac[q&3](b,o,F,j,h);}else{q=c[d+28>>2]|0;g[k>>2]=y;g[k+4>>2]=z;g[k+8>>2]=A;g[l>>2]=B;g[l+4>>2]=C;g[l+8>>2]=D;g[l+12>>2]=E;c[j>>2]=c[k>>2];c[j+4>>2]=c[k+4>>2];c[j+8>>2]=c[k+8>>2];c[j+12>>2]=c[k+12>>2];c[h>>2]=c[l>>2];c[h+4>>2]=c[l+4>>2];c[h+8>>2]=c[l+8>>2];c[h+12>>2]=c[l+12>>2];ac[q&3](b,o,F,j,h);}p=+g[b+4>>2];i=f;return +p}function Te(a){a=a|0;return c[(c[a+32>>2]|0)+12>>2]|0}function Ue(b,d,e,f,g){b=b|0;d=d|0;e=+e;f=f|0;g=g|0;var h=0,j=0,k=0,l=0;h=i;i=i+32|0;j=h+16|0;k=h;l=c[b+32>>2]|0;if(!(a[b+25>>0]|0)){Xe(l,d,e);i=h;return}else{c[k>>2]=c[f>>2];c[k+4>>2]=c[f+4>>2];c[k+8>>2]=c[f+8>>2];c[k+12>>2]=c[f+12>>2];c[j>>2]=c[g>>2];c[j+4>>2]=c[g+4>>2];c[j+8>>2]=c[g+8>>2];c[j+12>>2]=c[g+12>>2];We(l,d,e,k,j);i=h;return}}function Ve(b,e,f,h,j){b=b|0;e=e|0;f=+f;h=h|0;j=j|0;var 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;k=i;i=i+32|0;l=k+16|0;m=k;n=b+32|0;o=c[n>>2]|0;p=c[o+12>>2]|0;a:do if((p|0)>0){q=o+20|0;r=c[q>>2]|0;s=0;while(1){t=r+(s<<2)|0;if((c[t>>2]|0)==(e|0))break;u=s+1|0;if((u|0)<(p|0))s=u;else break a}if((s|0)<(p|0)){u=o+40|0;a[(c[u>>2]|0)+s>>0]=1;v=o+60|0;w=(c[v>>2]|0)+(s<<2)|0;x=a[b+25>>0]|0;b:do if(!(+g[w>>2]==f)){g[w>>2]=f;if(!(x<<24>>24)){i=k;return}else{y=c[o+80>>2]|0;break}}else{do if(x<<24>>24){z=c[o+80>>2]|0;if(((((((+g[z+(s<<4)+12>>2]==+g[h+12>>2]?+g[z+(s<<4)+8>>2]==+g[h+8>>2]:0)?+g[z+(s<<4)+4>>2]==+g[h+4>>2]:0)?+g[z+(s<<4)>>2]==+g[h>>2]:0)?(A=c[o+100>>2]|0,+g[A+(s<<4)+12>>2]==+g[j+12>>2]):0)?+g[A+(s<<4)+8>>2]==+g[j+8>>2]:0)?+g[A+(s<<4)+4>>2]==+g[j+4>>2]:0)?+g[A+(s<<4)>>2]==+g[j>>2]:0)break;g[w>>2]=f;y=z;break b}while(0);z=p-(c[o+4>>2]|0)+-1|0;A=d[t>>0]|d[t+1>>0]<<8|d[t+2>>0]<<16|d[t+3>>0]<<24;c[t>>2]=c[r+(z<<2)>>2];B=(c[q>>2]|0)+(z<<2)|0;a[B>>0]=A;a[B+1>>0]=A>>8;a[B+2>>0]=A>>16;a[B+3>>0]=A>>24;A=c[u>>2]|0;B=A+s|0;C=a[B>>0]|0;a[B>>0]=a[A+z>>0]|0;a[(c[u>>2]|0)+z>>0]=C;C=c[v>>2]|0;A=C+(s<<2)|0;B=d[A>>0]|d[A+1>>0]<<8|d[A+2>>0]<<16|d[A+3>>0]<<24;c[A>>2]=c[C+(z<<2)>>2];C=(c[v>>2]|0)+(z<<2)|0;a[C>>0]=B;a[C+1>>0]=B>>8;a[C+2>>0]=B>>16;a[C+3>>0]=B>>24;if(a[o>>0]|0){B=o+80|0;C=c[B>>2]|0;A=C+(s<<4)|0;D=l;E=A;F=D+16|0;do{a[D>>0]=a[E>>0]|0;D=D+1|0;E=E+1|0}while((D|0)<(F|0));G=C+(z<<4)|0;c[A>>2]=c[G>>2];c[A+4>>2]=c[G+4>>2];c[A+8>>2]=c[G+8>>2];c[A+12>>2]=c[G+12>>2];D=(c[B>>2]|0)+(z<<4)|0;E=l;F=D+16|0;do{a[D>>0]=a[E>>0]|0;D=D+1|0;E=E+1|0}while((D|0)<(F|0));B=o+100|0;A=c[B>>2]|0;C=A+(s<<4)|0;D=l;E=C;F=D+16|0;do{a[D>>0]=a[E>>0]|0;D=D+1|0;E=E+1|0}while((D|0)<(F|0));G=A+(z<<4)|0;c[C>>2]=c[G>>2];c[C+4>>2]=c[G+4>>2];c[C+8>>2]=c[G+8>>2];c[C+12>>2]=c[G+12>>2];D=(c[B>>2]|0)+(z<<4)|0;E=l;F=D+16|0;do{a[D>>0]=a[E>>0]|0;D=D+1|0;E=E+1|0}while((D|0)<(F|0));}E=(c[n>>2]|0)+4|0;c[E>>2]=(c[E>>2]|0)+1;i=k;return}while(0);v=y+(s<<4)|0;c[v>>2]=c[h>>2];c[v+4>>2]=c[h+4>>2];c[v+8>>2]=c[h+8>>2];c[v+12>>2]=c[h+12>>2];v=(c[(c[n>>2]|0)+100>>2]|0)+(s<<4)|0;c[v>>2]=c[j>>2];c[v+4>>2]=c[j+4>>2];c[v+8>>2]=c[j+8>>2];c[v+12>>2]=c[j+12>>2];i=k;return}}while(0);if(!(a[b+25>>0]|0)){Xe(o,e,f);i=k;return}else{c[m>>2]=c[h>>2];c[m+4>>2]=c[h+4>>2];c[m+8>>2]=c[h+8>>2];c[m+12>>2]=c[h+12>>2];c[l>>2]=c[j>>2];c[l+4>>2]=c[j+4>>2];c[l+8>>2]=c[j+8>>2];c[l+12>>2]=c[j+12>>2];We(o,e,f,m,l);i=k;return}}function We(b,d,e,f,h){b=b|0;d=d|0;e=+e;f=f|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0;i=d;d=b+12|0;j=c[d>>2]|0;k=b+16|0;if((j|0)==(c[k>>2]|0)?(l=(j|0)!=0?j<<1:1,(j|0)<(l|0)):0){if(!l){m=0;n=j}else{c[3708]=(c[3708]|0)+1;o=ws((l<<2|3)+16|0)|0;if(!o)p=0;else{q=o+4+15&-16;c[q+-4>>2]=o;p=q}m=p;n=c[d>>2]|0}p=b+20|0;if((n|0)>0){q=0;do{c[m+(q<<2)>>2]=c[(c[p>>2]|0)+(q<<2)>>2];q=q+1|0}while((q|0)!=(n|0));}q=c[p>>2]|0;o=b+24|0;if(!q)r=n;else{if(!(a[o>>0]|0))s=n;else{c[3710]=(c[3710]|0)+1;xs(c[q+-4>>2]|0);s=c[d>>2]|0}c[p>>2]=0;r=s}a[o>>0]=1;c[p>>2]=m;c[k>>2]=l;t=r}else t=j;c[(c[b+20>>2]|0)+(t<<2)>>2]=i;c[d>>2]=t+1;t=b+32|0;d=c[t>>2]|0;i=b+36|0;if((d|0)==(c[i>>2]|0)?(j=(d|0)!=0?d<<1:1,(d|0)<(j|0)):0){if(!j){u=0;v=d}else{c[3708]=(c[3708]|0)+1;r=ws(j+19|0)|0;if(!r)w=0;else{l=r+4+15&-16;c[l+-4>>2]=r;w=l}u=w;v=c[t>>2]|0}w=b+40|0;l=c[w>>2]|0;if((v|0)<=0)if(!l)x=b+44|0;else y=24;else{r=0;do{a[u+r>>0]=a[l+r>>0]|0;r=r+1|0}while((r|0)!=(v|0));y=24}if((y|0)==24){v=b+44|0;if(a[v>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[l+-4>>2]|0);}c[w>>2]=0;x=v}a[x>>0]=1;c[w>>2]=u;c[i>>2]=j;z=c[t>>2]|0}else z=d;a[(c[b+40>>2]|0)+z>>0]=1;c[t>>2]=z+1;z=b+52|0;t=c[z>>2]|0;d=b+56|0;if((t|0)==(c[d>>2]|0)?(j=(t|0)!=0?t<<1:1,(t|0)<(j|0)):0){if(!j){A=0;B=t}else{c[3708]=(c[3708]|0)+1;i=ws((j<<2|3)+16|0)|0;if(!i)C=0;else{u=i+4+15&-16;c[u+-4>>2]=i;C=u}A=C;B=c[z>>2]|0}C=b+60|0;u=c[C>>2]|0;if((B|0)<=0)if(!u)D=b+64|0;else y=38;else{i=0;do{c[A+(i<<2)>>2]=c[u+(i<<2)>>2];i=i+1|0}while((i|0)!=(B|0));y=38}if((y|0)==38){y=b+64|0;if(a[y>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[u+-4>>2]|0);}c[C>>2]=0;D=y}a[D>>0]=1;c[C>>2]=A;c[d>>2]=j;E=c[z>>2]|0}else E=t;g[(c[b+60>>2]|0)+(E<<2)>>2]=e;c[z>>2]=E+1;E=b+72|0;z=c[E>>2]|0;t=b+76|0;if((z|0)==(c[t>>2]|0)?(j=(z|0)!=0?z<<1:1,(z|0)<(j|0)):0){if(!j){F=0;G=z}else{c[3708]=(c[3708]|0)+1;d=ws((j<<4|3)+16|0)|0;if(!d)H=0;else{A=d+4+15&-16;c[A+-4>>2]=d;H=A}F=H;G=c[E>>2]|0}H=b+80|0;if((G|0)>0){A=0;do{d=F+(A<<4)|0;C=(c[H>>2]|0)+(A<<4)|0;c[d>>2]=c[C>>2];c[d+4>>2]=c[C+4>>2];c[d+8>>2]=c[C+8>>2];c[d+12>>2]=c[C+12>>2];A=A+1|0}while((A|0)!=(G|0));}G=c[H>>2]|0;A=b+84|0;if(G){if(a[A>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[G+-4>>2]|0);}c[H>>2]=0}a[A>>0]=1;c[H>>2]=F;c[t>>2]=j;I=c[E>>2]|0}else I=z;z=(c[b+80>>2]|0)+(I<<4)|0;c[z>>2]=c[f>>2];c[z+4>>2]=c[f+4>>2];c[z+8>>2]=c[f+8>>2];c[z+12>>2]=c[f+12>>2];c[E>>2]=(c[E>>2]|0)+1;E=b+92|0;f=c[E>>2]|0;z=b+96|0;if((f|0)!=(c[z>>2]|0)){J=f;K=b+100|0;L=c[K>>2]|0;M=L+(J<<4)|0;c[M>>2]=c[h>>2];c[M+4>>2]=c[h+4>>2];c[M+8>>2]=c[h+8>>2];c[M+12>>2]=c[h+12>>2];N=c[E>>2]|0;O=N+1|0;c[E>>2]=O;return}I=(f|0)!=0?f<<1:1;if((f|0)>=(I|0)){J=f;K=b+100|0;L=c[K>>2]|0;M=L+(J<<4)|0;c[M>>2]=c[h>>2];c[M+4>>2]=c[h+4>>2];c[M+8>>2]=c[h+8>>2];c[M+12>>2]=c[h+12>>2];N=c[E>>2]|0;O=N+1|0;c[E>>2]=O;return}if(!I){P=0;Q=f}else{c[3708]=(c[3708]|0)+1;f=ws((I<<4|3)+16|0)|0;if(!f)R=0;else{j=f+4+15&-16;c[j+-4>>2]=f;R=j}P=R;Q=c[E>>2]|0}R=b+100|0;if((Q|0)>0){j=0;do{f=P+(j<<4)|0;t=(c[R>>2]|0)+(j<<4)|0;c[f>>2]=c[t>>2];c[f+4>>2]=c[t+4>>2];c[f+8>>2]=c[t+8>>2];c[f+12>>2]=c[t+12>>2];j=j+1|0}while((j|0)!=(Q|0));}Q=c[R>>2]|0;j=b+104|0;if(Q){if(a[j>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[Q+-4>>2]|0);}c[R>>2]=0}a[j>>0]=1;c[R>>2]=P;c[z>>2]=I;J=c[E>>2]|0;K=b+100|0;L=c[K>>2]|0;M=L+(J<<4)|0;c[M>>2]=c[h>>2];c[M+4>>2]=c[h+4>>2];c[M+8>>2]=c[h+8>>2];c[M+12>>2]=c[h+12>>2];N=c[E>>2]|0;O=N+1|0;c[E>>2]=O;return}function Xe(b,d,e){b=b|0;d=d|0;e=+e;var f=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0;f=d;d=b+12|0;h=c[d>>2]|0;i=b+16|0;if((h|0)==(c[i>>2]|0)?(j=(h|0)!=0?h<<1:1,(h|0)<(j|0)):0){if(!j){k=0;l=h}else{c[3708]=(c[3708]|0)+1;m=ws((j<<2|3)+16|0)|0;if(!m)n=0;else{o=m+4+15&-16;c[o+-4>>2]=m;n=o}k=n;l=c[d>>2]|0}n=b+20|0;if((l|0)>0){o=0;do{c[k+(o<<2)>>2]=c[(c[n>>2]|0)+(o<<2)>>2];o=o+1|0}while((o|0)!=(l|0));}o=c[n>>2]|0;m=b+24|0;if(!o)p=l;else{if(!(a[m>>0]|0))q=l;else{c[3710]=(c[3710]|0)+1;xs(c[o+-4>>2]|0);q=c[d>>2]|0}c[n>>2]=0;p=q}a[m>>0]=1;c[n>>2]=k;c[i>>2]=j;r=p}else r=h;c[(c[b+20>>2]|0)+(r<<2)>>2]=f;c[d>>2]=r+1;r=b+32|0;d=c[r>>2]|0;f=b+36|0;if((d|0)==(c[f>>2]|0)?(h=(d|0)!=0?d<<1:1,(d|0)<(h|0)):0){if(!h){s=0;t=d}else{c[3708]=(c[3708]|0)+1;p=ws(h+19|0)|0;if(!p)u=0;else{j=p+4+15&-16;c[j+-4>>2]=p;u=j}s=u;t=c[r>>2]|0}u=b+40|0;j=c[u>>2]|0;if((t|0)<=0)if(!j)v=b+44|0;else w=24;else{p=0;do{a[s+p>>0]=a[j+p>>0]|0;p=p+1|0}while((p|0)!=(t|0));w=24}if((w|0)==24){t=b+44|0;if(a[t>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[j+-4>>2]|0);}c[u>>2]=0;v=t}a[v>>0]=1;c[u>>2]=s;c[f>>2]=h;x=c[r>>2]|0}else x=d;a[(c[b+40>>2]|0)+x>>0]=1;c[r>>2]=x+1;x=b+52|0;r=c[x>>2]|0;d=b+56|0;if((r|0)!=(c[d>>2]|0)){y=r;z=b+60|0;A=c[z>>2]|0;B=A+(y<<2)|0;g[B>>2]=e;C=y+1|0;c[x>>2]=C;return}h=(r|0)!=0?r<<1:1;if((r|0)>=(h|0)){y=r;z=b+60|0;A=c[z>>2]|0;B=A+(y<<2)|0;g[B>>2]=e;C=y+1|0;c[x>>2]=C;return}if(!h){D=0;E=r}else{c[3708]=(c[3708]|0)+1;r=ws((h<<2|3)+16|0)|0;if(!r)F=0;else{f=r+4+15&-16;c[f+-4>>2]=r;F=f}D=F;E=c[x>>2]|0}F=b+60|0;f=c[F>>2]|0;if((E|0)<=0)if(!f)G=b+64|0;else w=38;else{r=0;do{c[D+(r<<2)>>2]=c[f+(r<<2)>>2];r=r+1|0}while((r|0)!=(E|0));w=38}if((w|0)==38){w=b+64|0;if(a[w>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[f+-4>>2]|0);}c[F>>2]=0;G=w}a[G>>0]=1;c[F>>2]=D;c[d>>2]=h;y=c[x>>2]|0;z=b+60|0;A=c[z>>2]|0;B=A+(y<<2)|0;g[B>>2]=e;C=y+1|0;c[x>>2]=C;return}function Ye(a){a=a|0;return}function Ze(a){a=a|0;xs(a);return}function _e(d,f,h){d=d|0;f=f|0;h=+h;var j=0,l=0,m=0,n=0,o=0,p=0.0,q=0.0,r=0.0,s=0.0,t=0,u=0.0,v=0,w=0.0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0.0,G=0.0,H=0.0,I=0.0,J=0.0,K=0.0,L=0,M=0,N=0,Q=0,T=0,U=0,V=0,W=0,X=0.0,Y=0.0,Z=0.0,_=0.0,$=0.0,aa=0.0,ba=0.0,ca=0.0,da=0.0,ea=0.0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0;j=i;i=i+96|0;l=j;m=d+4|0;n=c[m>>2]|0;o=d+64|0;Hs(o|0,n+52|0,16)|0;p=+g[d+8>>2];q=p+ +g[d+12>>2];r=q*0.0;s=+g[o>>2];t=d+68|0;u=+g[t>>2];v=d+72|0;w=+g[v>>2];g[d+80>>2]=s+r;g[d+84>>2]=u-q;g[d+88>>2]=r+w;g[d+92>>2]=0.0;r=p*0.0*1.100000023841858;g[d+96>>2]=s+r;g[d+100>>2]=u+r;g[d+104>>2]=p*1.100000023841858+w;g[d+108>>2]=0.0;x=n;n=d+56|0;y=d+60|0;z=l+4|0;A=l+8|0;c[A>>2]=0;B=l+12|0;C=l+14|0;D=l+16|0;E=D+36|0;do{c[D>>2]=0;D=D+4|0}while((D|0)<(E|0));c[l>>2]=296;c[l+84>>2]=x;b[B>>1]=~~+g[n>>2];b[C>>1]=~~+g[y>>2];g[z>>2]=1.0;tc[c[(c[f>>2]|0)+32>>2]&63](f,o,d+80|0,l);if(!(c[A>>2]|0))g[d+112>>2]=1.0;else c[d+112>>2]=c[z>>2];g[z>>2]=1.0;tc[c[(c[f>>2]|0)+32>>2]&63](f,o,d+96|0,l);if(!(c[A>>2]|0))g[d+116>>2]=1.0;else c[d+116>>2]=c[z>>2];z=c[d+48>>2]|0;if(z){w=+rf(z,+g[o>>2],+g[v>>2],c[d+52>>2]|0);g[d+44>>2]=+g[t>>2]-w}t=d+16|0;if((e[t>>1]|0)<2){v=c[m>>2]|0;o=v+336|0;z=c[o>>2]|0;A=v+340|0;w=+g[A>>2];f=v+344|0;y=f;C=c[y>>2]|0;n=c[y+4>>2]|0;y=d+140|0;p=+g[y>>2];B=d+44|0;r=+g[B>>2];u=p-r;s=+g[d+112>>2];do if(!(r<p&r>-1.5)){if(s<.9?(a[d+144>>0]|0)==0:0){q=(.8999999761581421-s)*(+g[d+120>>2]*4.0);x=(g[k>>2]=q,c[k>>2]|0);if((x&2147483647)>>>0<=2139095040)if((x|0)<0)F=q;else F=q<5.0?q:5.0;else F=5.0;x=v+284|0;c[x>>2]=(c[x>>2]|0)+1;c[o>>2]=z;g[A>>2]=F;x=f;c[x>>2]=C;c[x+4>>2]=n;break}if(w<0.0&s<=.949999988079071){a[d+144>>0]=0;x=v+284|0;c[x>>2]=(c[x>>2]|0)+1;c[o>>2]=z;g[A>>2]=0.0;x=f;c[x>>2]=C;c[x+4>>2]=n;break}if(s<1.0?(a[d+144>>0]|0)==0:0){q=(s+-.949999988079071)*(+g[d+120>>2]*-13.0);x=v+284|0;c[x>>2]=(c[x>>2]|0)+1;c[o>>2]=z;g[A>>2]=q;x=f;c[x>>2]=C;c[x+4>>2]=n}}else{q=(c[k>>2]=C,+g[k>>2]);G=+g[v+368>>2];H=1.0/G;I=u<.20000000298023224?u:.20000000298023224;J=I*(H*0.0*h);K=G*(+g[v+376>>2]*(I*(H*10.0*h)));H=G*(J*+g[v+380>>2]);g[o>>2]=(c[k>>2]=z,+g[k>>2])+G*(+g[v+372>>2]*J);g[A>>2]=K+w;g[f>>2]=H+q}while(0);f=c[m>>2]|0;w=+g[f+368>>2];if(w!=0.0){s=1.0/w*0.0;g[f+388>>2]=s;g[f+392>>2]=s;g[f+396>>2]=s;g[f+400>>2]=0.0}A=f+404|0;c[A>>2]=0;c[A+4>>2]=0;c[A+8>>2]=0;c[A+12>>2]=0;if(+g[B>>2]>+g[y>>2]?(b[t>>1]&-2)<<16>>16!=2:0){A=c[m>>2]|0;s=+g[A+368>>2];w=1.0/s;F=u*-2.0;u=F<1.0?F:1.0;F=u*(w*0.0*h);r=s*(+g[A+376>>2]*(u*(w*-10.0*h)));w=s*(F*+g[A+380>>2]);f=A+336|0;g[f>>2]=+g[f>>2]+s*(+g[A+372>>2]*F);f=A+340|0;g[f>>2]=r+ +g[f>>2];f=A+344|0;g[f>>2]=w+ +g[f>>2];L=y;M=B}else{L=y;M=B}}else{L=d+140|0;M=d+44|0}B=c[m>>2]|0;y=B+336|0;f=c[y>>2]|0;A=B+340|0;v=c[A>>2]|0;z=B+344|0;o=c[z>>2]|0;C=B+348|0;n=c[C>>2]|0;w=(c[k>>2]=f,+g[k>>2]);r=(c[k>>2]=v,+g[k>>2]);F=(c[k>>2]=o,+g[k>>2]);s=+P(+(w*w+r*r+F*F));x=d+20|0;D=c[x>>2]|0;E=c[d+24>>2]|0;N=d+28|0;Q=c[N>>2]|0;u=+g[M>>2];p=+g[L>>2];T=u<p;q=(c[k>>2]=D,+g[k>>2]);H=(c[k>>2]=Q,+g[k>>2]);if(!T?(b[t>>1]|0)!=3:0){U=Q;V=E;W=D}else{K=+g[d+40>>2]*.5;J=+S(+K);G=J*0.0;I=+R(+K);K=(c[k>>2]=E,+g[k>>2]);X=H*G-K*G;Y=q*G;Z=Y-H*J;_=K*J-Y;Y=G*X;$=I*2.0;E=(g[k>>2]=q+$*X+(G*_-G*Z)*2.0,c[k>>2]|0);D=(g[k>>2]=K+$*Z+(Y-J*_)*2.0,c[k>>2]|0);U=(g[k>>2]=H+$*_+(J*Z-Y)*2.0,c[k>>2]|0);V=D;W=E}Y=+g[d+36>>2]*.5;Z=+S(+Y);J=Z*0.0;_=+R(+Y);Y=(c[k>>2]=U,+g[k>>2]);$=(c[k>>2]=V,+g[k>>2]);K=$*J;G=Y*Z-K;X=(c[k>>2]=W,+g[k>>2]);I=X*J-Y*J;aa=K-X*Z;K=J*I;ba=_*2.0;_=X+ba*G+(Z*aa-K)*2.0;X=$+ba*I+(J*G-J*aa)*2.0;J=Y+ba*aa+(K-Z*G)*2.0;G=+O(+_);Z=+O(+X);K=+O(+J);g[l>>2]=G;g[l+4>>2]=Z;g[l+8>>2]=K;g[l+12>>2]=0.0;aa=+g[l+((G<Z?(Z<K?2:1):G<K?2:0)<<2)>>2];if(aa>0.0){K=1.0/aa;aa=_*K;_=X*K;X=J*K;K=1.0/+P(+(X*X+(aa*aa+_*_)));ca=aa*K;da=X*K;ea=_*K}else{ca=1.0;da=0.0;ea=0.0}l=b[t>>1]|0;if(l<<16>>16==1|l<<16>>16==0){if(+g[d+112>>2]<1.0|T){K=1.0/+P(+(da*da+(ca*ca+0.0)));_=ca*K;X=da*K;aa=F*X+(w*_+K*0.0*0.0);t=(g[k>>2]=_*aa,c[k>>2]|0);W=(g[k>>2]=X*aa,c[k>>2]|0);aa=1.0-h*2.0;V=(g[k>>2]=aa,c[k>>2]|0);X=(V&2147483647)>>>0>2139095040|(V|0)<0?0.0:aa<0.0?0.0:aa;V=H!=0.0;if(q!=0.0)if(V){fa=f;ga=o}else{fa=t;ga=W}else if(!V)if(u>p){fa=0;ga=0}else{V=(g[k>>2]=w*X,c[k>>2]|0);fa=V;ga=(g[k>>2]=F*X,c[k>>2]|0);}else{fa=t;ga=W}W=d+120|0;if(s>+g[W>>2]){t=(g[k>>2]=X*(c[k>>2]=fa,+g[k>>2]),c[k>>2]|0);ha=t;ia=(g[k>>2]=X*(c[k>>2]=ga,+g[k>>2]),c[k>>2]|0);}else{ha=fa;ia=ga}ga=T?(g[k>>2]=r*X,c[k>>2]|0):v;v=B+284|0;c[v>>2]=(c[v>>2]|0)+1;c[y>>2]=ha;c[A>>2]=ga;c[z>>2]=ia;c[C>>2]=n;ja=W}else ja=d+120|0;if(!(s<+g[ja>>2])){i=j;return}if(!(+g[x>>2]!=0.0)?!(+g[N>>2]!=0.0):0){i=j;return}N=c[m>>2]|0;s=+g[N+368>>2];X=1.0/s;r=s*((+g[M>>2]<+g[L>>2]?ea*20.0:0.0)*X*h*+g[N+376>>2]);F=s*(da*20.0*X*h*+g[N+380>>2]);L=N+336|0;g[L>>2]=s*(+g[N+372>>2]*(ca*20.0*X*h))+ +g[L>>2];L=N+340|0;g[L>>2]=r+ +g[L>>2];L=N+344|0;g[L>>2]=F+ +g[L>>2];i=j;return}else if(l<<16>>16==2){F=+g[d+124>>2];if(q!=0.0|H!=0.0){L=(g[k>>2]=ca*.20000000298023224*F,c[k>>2]|0);ka=L;la=(g[k>>2]=da*.20000000298023224*F,c[k>>2]|0);}else{ka=0;la=0}r=H*F*(+g[d+40>>2]<0.0?1.0:-1.0);L=B+284|0;c[L>>2]=(c[L>>2]|0)+1;c[y>>2]=ka;g[A>>2]=r;c[z>>2]=la;g[C>>2]=0.0;i=j;return}else if(l<<16>>16==3){if(q!=0.0|H!=0.0){H=+g[d+120>>2];d=(g[k>>2]=ca*H,c[k>>2]|0);l=(g[k>>2]=ea*H,c[k>>2]|0);ma=d;na=l;oa=(g[k>>2]=da*H,c[k>>2]|0);}else{ma=0;na=0;oa=0}l=B+284|0;c[l>>2]=(c[l>>2]|0)+1;c[y>>2]=ma;c[A>>2]=na;c[z>>2]=oa;g[C>>2]=0.0;i=j;return}else{i=j;return}}function $e(a,b){a=a|0;b=b|0;return}function af(a){a=a|0;xs(a);return}function bf(a,c){a=a|0;c=c|0;var d=0;if(!((b[a+14>>1]&b[c+4>>1])<<16>>16)){d=0;return d|0}d=(b[c+6>>1]&b[a+12>>1])<<16>>16!=0;return d|0}function cf(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0;if((c[b>>2]|0)==(c[a+84>>2]|0)){e=1.0;return +e}e=+df(a,b,d);return +e}function df(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,h=0,i=0.0,j=0.0,k=0.0,l=0.0,m=0.0;e=b+24|0;c[a+4>>2]=c[e>>2];f=c[b>>2]|0;c[a+8>>2]=f;if(d){d=a+52|0;h=b+8|0;c[d>>2]=c[h>>2];c[d+4>>2]=c[h+4>>2];c[d+8>>2]=c[h+8>>2];c[d+12>>2]=c[h+12>>2]}else{i=+g[b+8>>2];j=+g[b+12>>2];k=+g[b+16>>2];l=i*+g[f+20>>2]+j*+g[f+24>>2]+k*+g[f+28>>2];m=i*+g[f+36>>2]+j*+g[f+40>>2]+k*+g[f+44>>2];g[a+52>>2]=+g[f+4>>2]*i+ +g[f+8>>2]*j+ +g[f+12>>2]*k;g[a+56>>2]=l;g[a+60>>2]=m;g[a+64>>2]=0.0}m=+g[e>>2];l=1.0-m;g[a+68>>2]=l*+g[a+20>>2]+m*+g[a+36>>2];g[a+72>>2]=l*+g[a+24>>2]+m*+g[a+40>>2];g[a+76>>2]=l*+g[a+28>>2]+m*+g[a+44>>2];return +(+g[e>>2]);}function ef(b){b=b|0;var d=0,e=0,f=0,g=0;c[b>>2]=496;d=b+64|0;e=b+72|0;f=c[e>>2]|0;g=b+76|0;if(f){if(a[g>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[f+-4>>2]|0);}c[e>>2]=0}a[g>>0]=1;c[e>>2]=0;c[d>>2]=0;c[b+68>>2]=0;return}function ff(b){b=b|0;var d=0;c[b>>2]=496;d=c[b+72>>2]|0;if(!d){xs(b);return}if(!(a[b+76>>0]|0)){xs(b);return}c[3710]=(c[3710]|0)+1;xs(c[d+-4>>2]|0);xs(b);return}function gf(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,h=0,j=0,k=0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0,r=0.0,s=0.0,t=0.0,u=0.0,v=0.0,w=0.0,x=0.0,y=0.0;f=i;i=i+64|0;h=f;a[d+112>>0]=0;j=b+4|0;c[h>>2]=c[j>>2];c[h+4>>2]=c[j+4>>2];c[h+8>>2]=c[j+8>>2];c[h+12>>2]=c[j+12>>2];j=h+16|0;k=b+20|0;c[j>>2]=c[k>>2];c[j+4>>2]=c[k+4>>2];c[j+8>>2]=c[k+8>>2];c[j+12>>2]=c[k+12>>2];k=h+32|0;j=b+36|0;c[k>>2]=c[j>>2];c[k+4>>2]=c[j+4>>2];c[k+8>>2]=c[j+8>>2];c[k+12>>2]=c[j+12>>2];j=h+48|0;k=b+52|0;c[j>>2]=c[k>>2];c[j+4>>2]=c[k+4>>2];c[j+8>>2]=c[k+8>>2];c[j+12>>2]=c[k+12>>2];if(e?(e=c[b+504>>2]|0,(e|0)!=0):0)Mb[c[(c[e>>2]|0)+8>>2]&127](e,h);l=+g[d+116>>2];m=+g[h>>2];n=+g[d+120>>2];o=+g[h+4>>2];p=+g[d+124>>2];q=+g[h+8>>2];r=+g[h+16>>2];s=+g[h+20>>2];t=+g[h+24>>2];u=+g[h+32>>2];v=+g[h+36>>2];w=+g[h+40>>2];x=l*r+n*s+p*t+ +g[h+52>>2];y=l*u+n*v+p*w+ +g[h+56>>2];g[d+64>>2]=l*m+n*o+p*q+ +g[h+48>>2];g[d+68>>2]=x;g[d+72>>2]=y;g[d+76>>2]=0.0;y=+g[d+132>>2];x=+g[d+136>>2];p=+g[d+140>>2];g[d+80>>2]=m*y+o*x+q*p;g[d+84>>2]=y*r+x*s+p*t;g[d+88>>2]=y*u+x*v+p*w;g[d+92>>2]=0.0;p=+g[d+148>>2];x=+g[d+152>>2];y=+g[d+156>>2];g[d+96>>2]=m*p+o*x+q*y;g[d+100>>2]=p*r+x*s+y*t;g[d+104>>2]=p*u+x*v+y*w;g[d+108>>2]=0.0;i=f;return}function hf(b,d){b=b|0;d=+d;var e=0,f=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0.0,z=0.0,A=0.0,B=0.0,C=0.0,D=0.0,E=0,F=0,G=0,H=0.0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,Q=0,T=0,U=0.0,V=0,W=0,X=0.0,Y=0,Z=0.0,_=0.0;e=i;i=i+96|0;f=e+84|0;h=e+80|0;j=e+76|0;k=e+72|0;l=e+68|0;m=e+64|0;n=e+48|0;o=e+32|0;p=e+16|0;q=e;r=b+64|0;s=c[r>>2]|0;if((s|0)>0){t=b+72|0;u=b+36|0;v=0;do{w=c[t>>2]|0;x=w+(v*172|0)|0;gf(c[u>>2]|0,x,0);y=-+g[w+(v*172|0)+80>>2];z=-+g[w+(v*172|0)+84>>2];A=-+g[w+(v*172|0)+88>>2];B=+g[w+(v*172|0)+104>>2];C=+g[w+(v*172|0)+100>>2];D=+g[w+(v*172|0)+96>>2];g[x>>2]=D;g[w+(v*172|0)+4>>2]=B*z-C*A;g[w+(v*172|0)+8>>2]=y;g[w+(v*172|0)+12>>2]=0.0;g[w+(v*172|0)+16>>2]=C;g[w+(v*172|0)+20>>2]=D*A-B*y;g[w+(v*172|0)+24>>2]=z;g[w+(v*172|0)+28>>2]=0.0;g[w+(v*172|0)+32>>2]=B;g[w+(v*172|0)+36>>2]=C*y-D*z;g[w+(v*172|0)+40>>2]=A;g[w+(v*172|0)+44>>2]=0.0;x=w+(v*172|0)+64|0;E=w+(v*172|0)+48|0;c[E>>2]=c[x>>2];c[E+4>>2]=c[x+4>>2];c[E+8>>2]=c[x+8>>2];c[E+12>>2]=c[x+12>>2];v=v+1|0;x=c[r>>2]|0}while((v|0)<(x|0));F=u;G=x}else{F=b+36|0;G=s}s=c[F>>2]|0;u=c[b+56>>2]|0;A=+g[s+4+(u<<2)>>2];z=+g[s+20+(u<<2)>>2];D=+g[s+36+(u<<2)>>2];u=s+336|0;y=+g[u>>2];v=s+340|0;C=+g[v>>2];t=s+344|0;B=+g[t>>2];H=+P(+(y*y+C*C+B*B))*3.5999999046325684;x=b+12|0;g[x>>2]=H;if(A*+g[u>>2]+z*+g[v>>2]+D*+g[t>>2]<0.0)g[x>>2]=-H;do if((G|0)>0){x=b+72|0;t=b+40|0;v=b+16|0;u=n+4|0;E=n+8|0;w=n+12|0;I=o+4|0;J=o+8|0;K=o+12|0;L=b+44|0;M=G;N=0;O=0;while(1){Q=c[x>>2]|0;T=c[t>>2]|0;if(!T)U=-1.0;else{H=+g[Q+(N*172|0)+52>>2];B=+rf(T,+g[Q+(N*172|0)+48>>2],+g[Q+(N*172|0)+56>>2],c[L>>2]|0);if(H<=B)a[Q+(N*172|0)+112>>0]=1;U=B-H}if(!(a[Q+(N*172|0)+112>>0]|0)){V=M;W=O}else{H=1.0/+(M|0);T=c[F>>2]|0;B=1.0/+g[T+368>>2];C=U<.5?U:.5;y=+g[v>>2];X=y*(C*(H*0.0*B*10.0*d));g[n>>2]=X;g[u>>2]=y*(C*(H*B*10.0*d));g[E>>2]=X;g[w>>2]=0.0;X=+g[Q+(N*172|0)+68>>2]-+g[T+56>>2];B=+g[Q+(N*172|0)+72>>2]-+g[T+60>>2];g[o>>2]=+g[Q+(N*172|0)+64>>2]-+g[T+52>>2];g[I>>2]=X;g[J>>2]=B;g[K>>2]=0.0;jf(T,n,o);V=c[r>>2]|0;W=O+1|0}N=N+1|0;if((N|0)>=(V|0))break;else{M=V;O=W}}if((W|0)<=0){Y=c[F>>2]|0;break}B=+g[b+8>>2]*d*+(V|0);X=A*B*10.0;H=z*B*10.0;C=D*B*10.0;B=+g[b+4>>2];y=+R(+B);Z=+S(+-B);B=Z*0.0;_=y*0.0;g[p>>2]=y*X+B*H+(Z+0.0)*C;g[p+4>>2]=_*X+H*(B+1.0)+B*C;g[p+8>>2]=_*H-Z*X+y*C;g[p+12>>2]=0.0;g[q>>2]=-A;g[q+4>>2]=-z;g[q+8>>2]=-D;g[q+12>>2]=0.0;jf(c[F>>2]|0,p,q);O=c[F>>2]|0;C=+g[b+28>>2];y=+g[b+32>>2];g[f>>2]=C;g[h>>2]=y;g[j>>2]=0.0;g[k>>2]=1.0;c[O+468>>2]=c[(C<0.0?j:C>1.0?k:f)>>2];g[l>>2]=0.0;g[m>>2]=1.0;c[O+472>>2]=c[(y<0.0?l:y>1.0?m:h)>>2];i=e;return}else Y=s;while(0);D=+g[b+20>>2];z=+g[b+24>>2];g[f>>2]=D;g[h>>2]=z;g[j>>2]=0.0;g[k>>2]=1.0;c[Y+468>>2]=c[(D<0.0?j:D>1.0?k:f)>>2];g[l>>2]=0.0;g[m>>2]=1.0;c[Y+472>>2]=c[(z<0.0?l:z>1.0?m:h)>>2];i=e;return}function jf(a,b,c){a=a|0;b=b|0;c=c|0;var d=0.0,e=0.0,f=0,h=0.0,i=0,j=0.0,k=0.0,l=0.0,m=0,n=0.0,o=0.0;d=+g[a+368>>2];if(!(d!=0.0))return;e=+g[a+372>>2];f=b+4|0;h=+g[a+376>>2];i=b+8|0;j=+g[a+380>>2];k=d*(+g[f>>2]*h);l=d*(+g[i>>2]*j);m=a+336|0;g[m>>2]=d*(+g[b>>2]*e)+ +g[m>>2];m=a+340|0;g[m>>2]=k+ +g[m>>2];m=a+344|0;g[m>>2]=l+ +g[m>>2];l=+g[b>>2]*e;e=+g[f>>2]*h;h=+g[i>>2]*j;j=+g[c+4>>2];k=+g[c+8>>2];d=j*h-e*k;n=+g[c>>2];o=l*k-h*n;h=e*n-l*j;j=(d*+g[a+304>>2]+o*+g[a+308>>2]+h*+g[a+312>>2])*+g[a+572>>2];l=(d*+g[a+320>>2]+o*+g[a+324>>2]+h*+g[a+328>>2])*+g[a+576>>2];c=a+352|0;g[c>>2]=(+g[a+288>>2]*d+ +g[a+292>>2]*o+h*+g[a+296>>2])*+g[a+568>>2]+ +g[c>>2];c=a+356|0;g[c>>2]=j+ +g[c>>2];c=a+360|0;g[c>>2]=l+ +g[c>>2];return}function kf(a,b,d){a=a|0;b=b|0;d=+d;Jb[c[(c[a>>2]|0)+16>>2]&31](a,d);return}function lf(a,b){a=a|0;b=b|0;return}function mf(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;c[a+48>>2]=b;c[a+52>>2]=d;c[a+56>>2]=e;return}function nf(b){b=b|0;var d=0,e=0,f=0,g=0;c[b>>2]=552;d=b+40|0;e=b+48|0;f=c[e>>2]|0;g=b+52|0;if(f){if(a[g>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[f+-4>>2]|0);}c[e>>2]=0}a[g>>0]=1;c[e>>2]=0;c[d>>2]=0;c[b+44>>2]=0;return}function of(b){b=b|0;var d=0;c[b>>2]=552;d=c[b+48>>2]|0;if(!d){xs(b);return}if(!(a[b+52>>0]|0)){xs(b);return}c[3710]=(c[3710]|0)+1;xs(c[d+-4>>2]|0);xs(b);return}function pf(b,d,e){b=b|0;d=d|0;e=+e;var f=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0.0,w=0.0,x=0.0,y=0.0,z=0.0,A=0.0,B=0.0,C=0.0,D=0.0,E=0.0,F=0.0,G=0.0,H=0.0,I=0.0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0.0,V=0,W=0,X=0,Y=0,Z=0;d=i;i=i+64|0;f=d+52|0;h=d+48|0;j=d+44|0;k=d+40|0;l=d+36|0;m=d+32|0;n=d+16|0;o=d;p=b+40|0;if((c[p>>2]|0)>0){q=b+48|0;r=b+4|0;s=0;do{t=c[q>>2]|0;a[t+(s*132|0)+112>>0]=0;u=c[r>>2]|0;v=+g[u+4>>2];w=+g[u+8>>2];x=+g[u+12>>2];y=+g[u+20>>2];z=+g[u+24>>2];A=+g[u+28>>2];B=+g[u+36>>2];C=+g[u+40>>2];D=+g[u+44>>2];E=+g[t+(s*132|0)+116>>2];F=+g[t+(s*132|0)+120>>2];G=+g[t+(s*132|0)+124>>2];H=+g[u+56>>2]+(y*E+z*F+A*G);I=+g[u+60>>2]+(B*E+C*F+D*G);g[t+(s*132|0)+64>>2]=+g[u+52>>2]+(v*E+w*F+x*G);g[t+(s*132|0)+68>>2]=H;g[t+(s*132|0)+72>>2]=I;g[t+(s*132|0)+76>>2]=0.0;I=w*0.0;w=v*0.0+I-x;H=z*0.0;z=y*0.0+H-A;G=C*0.0;C=B*0.0+G-D;g[t+(s*132|0)+80>>2]=w;g[t+(s*132|0)+84>>2]=z;g[t+(s*132|0)+88>>2]=C;g[t+(s*132|0)+92>>2]=0.0;F=v+I+x*0.0;x=y+H+A*0.0;A=B+G+D*0.0;g[t+(s*132|0)+96>>2]=F;g[t+(s*132|0)+100>>2]=x;g[t+(s*132|0)+104>>2]=A;g[t+(s*132|0)+108>>2]=0.0;D=-w;w=-z;z=-C;g[t+(s*132|0)>>2]=F;g[t+(s*132|0)+4>>2]=A*w-x*z;g[t+(s*132|0)+8>>2]=D;g[t+(s*132|0)+12>>2]=0.0;g[t+(s*132|0)+16>>2]=x;g[t+(s*132|0)+20>>2]=F*z-A*D;g[t+(s*132|0)+24>>2]=w;g[t+(s*132|0)+28>>2]=0.0;g[t+(s*132|0)+32>>2]=A;g[t+(s*132|0)+36>>2]=x*D-F*w;g[t+(s*132|0)+40>>2]=z;g[t+(s*132|0)+44>>2]=0.0;u=t+(s*132|0)+64|0;J=t+(s*132|0)+48|0;c[J>>2]=c[u>>2];c[J+4>>2]=c[u+4>>2];c[J+8>>2]=c[u+8>>2];c[J+12>>2]=c[u+12>>2];s=s+1|0;K=c[p>>2]|0}while((s|0)<(K|0));if((K|0)>0){s=b+32|0;u=b+8|0;J=n+4|0;t=n+8|0;L=n+12|0;M=o+4|0;N=o+8|0;O=o+12|0;P=b+28|0;Q=K;K=0;R=0;while(1){S=c[q>>2]|0;T=c[s>>2]|0;if(!T)U=-1.0;else{z=+g[S+(K*132|0)+52>>2];w=+rf(T,+g[S+(K*132|0)+48>>2],+g[S+(K*132|0)+56>>2],c[P>>2]|0);if(z<=w)a[S+(K*132|0)+112>>0]=1;U=w-z}if(!(a[S+(K*132|0)+112>>0]|0)){V=Q;W=R}else{z=1.0/+(Q|0);T=c[r>>2]|0;w=1.0/+g[T+368>>2];F=U<1.0?U:1.0;D=+g[u>>2];x=D*(F*(z*0.0*w*10.0*e));g[n>>2]=x;g[J>>2]=D*(F*(z*w*10.0*e));g[t>>2]=x;g[L>>2]=0.0;x=+g[S+(K*132|0)+68>>2]-+g[T+56>>2];w=+g[S+(K*132|0)+72>>2]-+g[T+60>>2];g[o>>2]=+g[S+(K*132|0)+64>>2]-+g[T+52>>2];g[M>>2]=x;g[N>>2]=w;g[O>>2]=0.0;jf(T,n,o);V=c[p>>2]|0;W=R+1|0}K=K+1|0;if((K|0)>=(V|0))break;else{Q=V;R=W}}R=c[r>>2]|0;if((W|0)>0){e=+g[b+20>>2];U=+g[b+24>>2];g[f>>2]=e;g[h>>2]=U;g[j>>2]=0.0;g[k>>2]=1.0;c[R+468>>2]=c[(e<0.0?j:e>1.0?k:f)>>2];g[l>>2]=0.0;g[m>>2]=1.0;c[R+472>>2]=c[(U<0.0?l:U>1.0?m:h)>>2];i=d;return}else X=R}else{Y=r;Z=5}}else{Y=b+4|0;Z=5}if((Z|0)==5)X=c[Y>>2]|0;U=+g[b+12>>2];e=+g[b+16>>2];g[f>>2]=U;g[h>>2]=e;g[j>>2]=0.0;g[k>>2]=1.0;c[X+468>>2]=c[(U<0.0?j:U>1.0?k:f)>>2];g[l>>2]=0.0;g[m>>2]=1.0;c[X+472>>2]=c[(e<0.0?l:e>1.0?m:h)>>2];i=d;return}function qf(a,b){a=a|0;b=b|0;return}function rf(a,b,d,e){a=a|0;b=+b;d=+d;e=e|0;var f=0,i=0,j=0,l=0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0,r=0.0,s=0.0,t=0,u=0,v=0,w=0.0,x=0,y=0,z=0,A=0,B=0,C=0.0,E=0,F=0,G=0.0,H=0.0,I=0.0,J=0.0;f=c[a>>2]|0;if(!e)i=f;else{j=0;l=f;while(1){j=j+1|0;f=c[l+4>>2]|0;if((j|0)==(e|0)){i=f;break}else l=f}}if((i|0)!=0?(m=+g[i+28>>2],m!=0.0):0){n=+g[a+4>>2];l=c[i+40>>2]|0;o=+g[l>>2];p=n*+g[l+8>>2];q=+sf(o*(p+b),o*(p+d));p=+g[l+4>>2];o=n*+g[l+12>>2];r=+sf(p*(d-o),p*(b-o))*(q*m);e=c[i>>2]|0;if((e|0)!=0?(q=(b-+g[i+16>>2])/+g[i+8>>2]+.5,o=(+g[i+20>>2]+d)/+g[i+12>>2]+.5,!(o<0.0|(q>1.0|q<0.0|o>1.0))):0){j=c[i+36>>2]|0;p=+(j|0)+-.5;s=q*p;q=o*p;h[k>>3]=s;f=c[k>>2]|0;t=c[k+4>>2]|0;u=Fs(f|0,t|0,52)|0;v=u&2047;u=v+-1023|0;do if((u|0)>51)if((f|0)==0&(t&1048575|0)==0|(u|0)!=1024){c[k>>2]=0;c[k+4>>2]=t&-2147483648;w=+h[k>>3];x=t;y=f}else{w=s;x=t;y=f}else{if(v>>>0<1023){w=s;x=t&-2147483648;y=0;break}z=Fs(-1,1048575,u|0)|0;A=D;if((z&f|0)==0&(A&t|0)==0){c[k>>2]=0;c[k+4>>2]=t&-2147483648;w=+h[k>>3];x=t;y=f;break}else{B=f&~z;z=t&~A;c[k>>2]=B;c[k+4>>2]=z;w=s-+h[k>>3];x=z;y=B;break}}while(0);s=w;h[k>>3]=q;t=c[k>>2]|0;f=c[k+4>>2]|0;u=Fs(t|0,f|0,52)|0;v=u&2047;u=v+-1023|0;do if((u|0)>51)if((t|0)==0&(f&1048575|0)==0|(u|0)!=1024){c[k>>2]=0;c[k+4>>2]=f&-2147483648;C=+h[k>>3];E=f;F=t}else{C=q;E=f;F=t}else{if(v>>>0<1023){C=q;E=f&-2147483648;F=0;break}B=Fs(-1,1048575,u|0)|0;z=D;if((B&t|0)==0&(z&f|0)==0){c[k>>2]=0;c[k+4>>2]=f&-2147483648;C=+h[k>>3];E=f;F=t;break}else{A=t&~B;B=f&~z;c[k>>2]=A;c[k+4>>2]=B;C=q-+h[k>>3];E=B;F=A;break}}while(0);q=C;c[k>>2]=y;c[k+4>>2]=x;x=~~+h[k>>3];c[k>>2]=F;c[k+4>>2]=E;E=~~+h[k>>3];F=j+-1|0;y=$(E,j)|0;f=x+1|0;t=(f|0)<(F|0)?f:F;f=E+1|0;E=$((f|0)<(F|0)?f:F,j)|0;C=1.0-s;w=(1.0-q)*(C*+g[e+(y+x<<2)>>2]+s*+g[e+(t+y<<2)>>2])+q*(C*+g[e+(E+x<<2)>>2]+s*+g[e+(E+t<<2)>>2]);s=+g[i+32>>2]/+g[i+24>>2]/3.141592653589793;C=+g[l+24>>2];q=n*+g[l+28>>2];p=C*(q+b);b=C*(q+d);d=+P(+w);q=m;m=+g[l+16>>2];i=(g[k>>2]=w,c[k>>2]|0);do if((i&2147483647)>>>0<=2139095040){t=(g[k>>2]=m,c[k>>2]|0);if((t&2147483647)>>>0<=2139095040)if((t^i|0)<0){G=(i|0)<0?m:w;break}else{G=w<m?m:w;break}else G=w}else G=m;while(0);m=q*G*+S(+(d/s+n*+g[l+20>>2]));n=+sf(p,b);b=+g[l+32>>2];i=(g[k>>2]=n,c[k>>2]|0);do if((i&2147483647)>>>0<=2139095040){t=(g[k>>2]=b,c[k>>2]|0);if((t&2147483647)>>>0<=2139095040)if((t^i|0)<0){H=(i|0)<0?b:n;break}else{H=n<b?b:n;break}else H=n}else H=b;while(0);b=+g[l+36>>2];n=d>b?d:b;I=r*n+m*H*(1.0-n);}else I=r;J=I+ +g[a+8>>2];return +J}J=+g[a+8>>2];return +J}function sf(a,b){a=+a;b=+b;var d=0.0,e=0,f=0,i=0.0,j=0.0,l=0.0,m=0,n=0,o=0,p=0,q=0.0,r=0.0,s=0.0,t=0.0,u=0.0,v=0,w=0,x=0.0,y=0.0,z=0.0,A=0.0,B=0.0;d=a*.3660254180431366+b*.3660254180431366;e=~~+N(+(d+a));f=~~+N(+(d+b));d=+(e|0);i=+(f|0);j=d*.21132487058639526+i*.21132487058639526;l=a-d+j;d=b-i+j;m=l>d&1;n=m^1;j=l+.21132487058639526-+(m|0);i=d+.21132487058639526-+(n|0);b=l+-.5773502588272095;a=d+-.5773502588272095;o=(e|0)%289|0;e=(f|0)%289|0;f=(($(e*34|1,e)|0)%289|0)+o|0;p=($(f*34|1,f)|0)%289|0;f=n+e|0;n=(($(f*34|1,f)|0)%289|0)+o+m|0;m=($(n*34|1,n)|0)%289|0;n=e+1|0;e=o+1+(($(n*34|1,n)|0)%289|0)|0;n=($(e*34|1,e)|0)%289|0;q=.5-(l*l+d*d);e=(g[k>>2]=q,c[k>>2]|0);r=(e&2147483647)>>>0>2139095040|(e|0)<0?0.0:q<0.0?0.0:q;q=.5-(j*j+i*i);e=(g[k>>2]=q,c[k>>2]|0);s=(e&2147483647)>>>0>2139095040|(e|0)<0?0.0:q<0.0?0.0:q;q=.5-(b*b+a*a);e=(g[k>>2]=q,c[k>>2]|0);t=(e&2147483647)>>>0>2139095040|(e|0)<0?0.0:q<0.0?0.0:q;q=r*(r*(r*r));r=s*(s*(s*s));s=t*(t*(t*t));t=+(p|0)*.024390242993831635;h[k>>3]=t;p=c[k>>2]|0;e=c[k+4>>2]|0;o=Fs(p|0,e|0,52)|0;f=o&2047;o=f+-1023|0;do if((o|0)>51)if((p|0)==0&(e&1048575|0)==0|(o|0)!=1024){c[k>>2]=0;c[k+4>>2]=e&-2147483648;u=+h[k>>3]}else u=t;else if(f>>>0>=1023){v=Fs(-1,1048575,o|0)|0;w=D;if((v&p|0)==0&(w&e|0)==0){c[k>>2]=0;c[k+4>>2]=e&-2147483648;u=+h[k>>3];break}else{c[k>>2]=p&~v;c[k+4>>2]=e&~w;u=t-+h[k>>3];break}}else u=t;while(0);t=u*2.0+-1.0;u=+(m|0)*.024390242993831635;h[k>>3]=u;m=c[k>>2]|0;e=c[k+4>>2]|0;p=Fs(m|0,e|0,52)|0;o=p&2047;p=o+-1023|0;do if((p|0)>51)if((m|0)==0&(e&1048575|0)==0|(p|0)!=1024){c[k>>2]=0;c[k+4>>2]=e&-2147483648;x=+h[k>>3]}else x=u;else if(o>>>0>=1023){f=Fs(-1,1048575,p|0)|0;w=D;if((f&m|0)==0&(w&e|0)==0){c[k>>2]=0;c[k+4>>2]=e&-2147483648;x=+h[k>>3];break}else{c[k>>2]=m&~f;c[k+4>>2]=e&~w;x=u-+h[k>>3];break}}else x=u;while(0);u=x*2.0+-1.0;x=+(n|0)*.024390242993831635;h[k>>3]=x;n=c[k>>2]|0;e=c[k+4>>2]|0;m=Fs(n|0,e|0,52)|0;p=m&2047;m=p+-1023|0;do if((m|0)>51)if((n|0)==0&(e&1048575|0)==0|(m|0)!=1024){c[k>>2]=0;c[k+4>>2]=e&-2147483648;y=+h[k>>3]}else y=x;else if(p>>>0>=1023){o=Fs(-1,1048575,m|0)|0;w=D;if((o&n|0)==0&(w&e|0)==0){c[k>>2]=0;c[k+4>>2]=e&-2147483648;y=+h[k>>3];break}else{c[k>>2]=n&~o;c[k+4>>2]=e&~w;y=x-+h[k>>3];break}}else y=x;while(0);x=y*2.0+-1.0;y=+O(+t)+-.5;z=+O(+u)+-.5;A=+O(+x)+-.5;B=t-+N(+(t+.5));t=u-+N(+(u+.5));u=x-+N(+(x+.5));return +(((d*y+l*B)*(q*(1.79284291400159-(y*y+B*B)*.85373472095314))+(i*z+j*t)*(r*(1.79284291400159-(z*z+t*t)*.85373472095314))+(a*A+b*u)*(s*(1.79284291400159-(A*A+u*u)*.85373472095314)))*130.0);}function tf(a){a=a|0;dh(a);return}function uf(a){a=a|0;dh(a);if(!a)return;c[3710]=(c[3710]|0)+1;xs(c[a+-4>>2]|0);return}function vf(b,d,e,f){b=b|0;d=+d;e=e|0;f=+f;var h=0,i=0.0,j=0,k=0.0,l=0,m=0,n=0,o=0;if(e){g[b+268>>2]=f;h=b+264|0;i=+g[h>>2]+d;g[h>>2]=i;if(i>=f){j=~~(i/f);g[h>>2]=i-+(j|0)*f;k=f;l=e;m=j;n=5}}else{g[b+264>>2]=(a[b+300>>0]|0)!=0?0.0:d;g[b+268>>2]=0.0;j=!(+O(+d)<1.1920928955078125e-07)&1;k=d;l=j;m=j;n=5}if((n|0)==5?(m|0)!=0:0){n=(m|0)>(l|0)?l:m;Jb[c[(c[b>>2]|0)+164>>2]&31](b,k*+(n|0));Kb[c[(c[b>>2]|0)+172>>2]&255](b);o=n;return o|0}Kb[c[(c[b>>2]|0)+80>>2]&255](b);o=0;return o|0}function wf(a,b,c,d){a=a|0;b=+b;c=c|0;d=d|0;return +(b-+g[a+264>>2]-+(~c+d|0)*+g[a+268>>2]);}function xf(a,b){a=a|0;b=+b;Jb[c[(c[a>>2]|0)+160>>2]&31](a,b);return}function yf(a){a=a|0;Kb[c[(c[a>>2]|0)+120>>2]&255](a);return}function zf(a,b){a=a|0;b=b|0;c[a+72>>2]=b;return}function Af(a){a=a|0;return c[a+72>>2]|0}function Bf(a){a=a|0;return 2}function Cf(a,b){a=a|0;b=b|0;return}function Df(a,b){a=a|0;b=+b;var d=0,e=0,f=0,g=0;d=a+280|0;if((c[d>>2]|0)<=0)return;e=a+288|0;f=0;do{g=c[(c[e>>2]|0)+(f<<2)>>2]|0;rc[c[(c[g>>2]|0)+8>>2]&7](g,a,b);f=f+1|0}while((f|0)<(c[d>>2]|0));return}function Ef(b,d){b=b|0;d=d|0;var e=0,f=0,h=0,i=0.0;if(a[b+527>>0]|0){c[d>>2]=0;c[d+4>>2]=0;return}c[d>>2]=3;e=d+4|0;c[e>>2]=3;f=c[b+28>>2]|0;h=c[b+32>>2]|0;Ff(b,f+4|0,h+4|0,f+288|0,h+288|0);if(((a[b+526>>0]|0)!=0?(h=c[d>>2]|0,c[d>>2]=h+1,f=c[e>>2]|0,c[e>>2]=f+-1,i=+g[b+456>>2],+g[b+444>>2]<i):0)?+g[b+448>>2]<i:0){c[d>>2]=h+2;c[e>>2]=f+-2}if(!(a[b+525>>0]|0))return;c[d>>2]=(c[d>>2]|0)+1;c[e>>2]=(c[e>>2]|0)+-1;return}function Ff(b,d,e,f,h){b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;var j=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0.0,v=0.0,w=0.0,x=0.0,y=0.0,z=0.0,A=0.0,B=0.0,C=0.0,D=0.0,E=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,Q=0.0,T=0.0,V=0.0,W=0.0,Y=0.0,Z=0.0,_=0.0,$=0.0,aa=0.0,ba=0.0,ca=0.0,da=0.0,ea=0.0,fa=0.0,ga=0.0,ha=0.0,ia=0.0,ja=0.0,ka=0.0,la=0.0,ma=0.0,na=0.0,oa=0.0,pa=0.0,qa=0.0,ra=0.0,sa=0.0,ta=0.0,ua=0.0,va=0.0,wa=0.0,xa=0.0,ya=0.0,za=0.0,Aa=0.0,Ba=0.0,Ca=0.0,Da=0.0,Ea=0,Fa=0.0,Ga=0,Ha=0,Ia=0,Ja=0.0,Ka=0.0,La=0.0,Ma=0.0,Na=0.0,Oa=0.0,Pa=0,Qa=0.0,Ra=0.0,Sa=0.0,Ta=0.0,Ua=0.0,Va=0.0,Wa=0.0,Xa=0.0,Ya=0.0,Za=0.0;j=i;i=i+144|0;l=j+80|0;m=j+64|0;n=j+48|0;o=j+32|0;p=j+16|0;q=j;r=b+504|0;g[r>>2]=0.0;g[b+500>>2]=0.0;s=b+525|0;a[s>>0]=0;t=b+526|0;a[t>>0]=0;if((a[b+552>>0]|0)!=0?(a[b+527>>0]|0)==0:0){u=+g[b+556>>2];v=+g[b+560>>2];w=+g[b+564>>2];x=+g[b+568>>2];y=2.0/(u*u+v*v+w*w+x*x);z=u*y;A=v*y;B=w*y;y=x*z;C=x*A;D=x*B;x=u*z;z=u*A;E=u*B;u=v*A;A=v*B;v=w*B;B=1.0-(u+v);w=z-D;F=E+C;G=z+D;D=1.0-(x+v);v=A-y;z=E-C;C=A+y;y=1.0-(x+u);u=+g[b+300>>2];x=+g[d>>2];A=+g[b+316>>2];E=+g[d+4>>2];H=+g[b+332>>2];I=+g[d+8>>2];J=u*x+A*E+H*I;K=+g[b+304>>2];L=+g[b+320>>2];M=+g[b+336>>2];N=x*K+E*L+I*M;Q=+g[b+308>>2];T=+g[b+324>>2];V=+g[b+340>>2];W=x*Q+E*T+I*V;Y=+g[d+16>>2];Z=+g[d+20>>2];_=+g[d+24>>2];$=u*Y+A*Z+H*_;aa=K*Y+L*Z+M*_;ba=Q*Y+T*Z+V*_;ca=+g[d+32>>2];da=+g[d+36>>2];ea=+g[d+40>>2];fa=u*ca+A*da+H*ea;H=K*ca+L*da+M*ea;M=Q*ca+T*da+V*ea;V=+g[b+348>>2];T=+g[b+352>>2];Q=+g[b+356>>2];L=+g[b+364>>2];K=+g[e>>2];A=+g[b+380>>2];u=+g[e+4>>2];ga=+g[b+396>>2];ha=+g[e+8>>2];ia=L*K+A*u+ga*ha;ja=+g[b+368>>2];ka=+g[b+384>>2];la=+g[b+400>>2];ma=K*ja+u*ka+ha*la;na=+g[b+372>>2];oa=+g[b+388>>2];pa=+g[b+404>>2];qa=K*na+u*oa+ha*pa;ra=+g[e+16>>2];sa=+g[e+20>>2];ta=+g[e+24>>2];ua=L*ra+A*sa+ga*ta;va=ja*ra+ka*sa+la*ta;wa=na*ra+oa*sa+pa*ta;xa=+g[e+32>>2];ya=+g[e+36>>2];za=+g[e+40>>2];Aa=L*xa+A*ya+ga*za;ga=ja*xa+ka*ya+la*za;la=na*xa+oa*ya+pa*za;pa=+g[b+412>>2];oa=+g[b+416>>2];na=+g[b+420>>2];ka=B*ia+G*ma+z*qa;ja=w*ia+D*ma+C*qa;A=F*ia+v*ma+y*qa;L=z*wa+(B*ua+G*va);Ba=C*wa+(w*ua+D*va);Ca=y*wa+(F*ua+v*va);Da=z*la+(B*Aa+G*ga);G=C*la+(w*Aa+D*ga);D=y*la+(F*Aa+v*ga);v=-(+g[d+48>>2]+(x*V+E*T+I*Q));I=-(Y*V+Z*T+_*Q+ +g[d+52>>2]);_=-(ca*V+da*T+ea*Q+ +g[d+56>>2]);Q=J*v+$*I+fa*_;ea=N*v+aa*I+H*_;T=W*v+ba*I+M*_;_=T*A+(Q*ka+ea*ja)+(ia*0.0+ma*0.0+qa*0.0+(+g[e+48>>2]+(K*pa+u*oa+ha*na)));ha=T*Ca+(Q*L+ea*Ba)+(wa*0.0+(ua*0.0+va*0.0)+(ra*pa+sa*oa+ta*na+ +g[e+52>>2]));ta=T*D+(Q*Da+ea*G)+(la*0.0+(Aa*0.0+ga*0.0)+(xa*pa+ya*oa+za*na+ +g[e+56>>2]));g[l>>2]=W*A+(J*ka+N*ja);g[l+4>>2]=ba*A+($*ka+aa*ja);g[l+8>>2]=M*A+(fa*ka+H*ja);g[l+12>>2]=0.0;g[l+16>>2]=W*Ca+(J*L+N*Ba);g[l+20>>2]=ba*Ca+($*L+aa*Ba);g[l+24>>2]=M*Ca+(fa*L+H*Ba);g[l+28>>2]=0.0;g[l+32>>2]=W*D+(J*Da+N*G);g[l+36>>2]=ba*D+($*Da+aa*G);g[l+40>>2]=M*D+(fa*Da+H*G);g[l+44>>2]=0.0;g[l+48>>2]=_;g[l+52>>2]=ha;g[l+56>>2]=ta;g[l+60>>2]=0.0;Me(l,m);ta=+g[m>>2];ha=+g[m+4>>2];_=+g[m+8>>2];G=ta*ta+ha*ha+_*_;if(!(+O(+G)<1.1920928955078125e-07)?(g[b+472>>2]=0.0,H=1.0/+P(+G),g[b+460>>2]=ta*H,g[b+464>>2]=ha*H,g[b+468>>2]=_*H,H=+g[m+12>>2],_=H<-1.0?-1.0:H,H=+U(+(_>1.0?1.0:_))*2.0,g[r>>2]=H,!(+O(+H)<1.1920928955078125e-07)):0)a[t>>0]=1;i=j;return}Me(d,n);m=b+300|0;Me(m,o);H=+g[n+12>>2];_=+g[o>>2];ha=+g[n>>2];ta=+g[o+12>>2];G=+g[n+4>>2];Da=+g[o+8>>2];fa=+g[n+8>>2];D=+g[o+4>>2];M=H*_+ha*ta+G*Da-fa*D;aa=_*fa+(ta*G+H*D)-ha*Da;$=H*Da+ta*fa+ha*D-_*G;ba=H*ta-_*ha-G*D-Da*fa;Me(e,p);o=b+364|0;Me(o,q);fa=+g[p+12>>2];Da=+g[q>>2];D=+g[p>>2];G=+g[q+12>>2];ha=+g[p+4>>2];_=+g[q+8>>2];ta=+g[p+8>>2];H=+g[q+4>>2];N=fa*Da+D*G+ha*_-ta*H;J=Da*ta+(G*ha+fa*H)-D*_;W=fa*_+G*ta+D*H-Da*ha;Ba=fa*G-Da*D-ha*H-_*ta;ta=-N;_=-J;H=-W;ha=ba*ta+M*Ba+$*_-aa*H;D=M*H+(aa*Ba+ba*_)-$*ta;Da=aa*ta+($*Ba+ba*H)-M*_;G=ba*Ba-M*ta-aa*_-$*H;fa=+g[236];L=+g[238];Ca=+g[237];ja=fa*G+L*D-Ca*Da;ka=fa*Da+Ca*G-L*ha;A=L*G+Ca*ha-fa*D;na=-(fa*ha)-Ca*D-L*Da;za=-ha;oa=-D;ya=-Da;pa=ka*ya+(G*ja+na*za)-A*oa;xa=A*za+(G*ka+na*oa)-ja*ya;ga=ja*oa+(G*A+na*ya)-ka*za;za=1.0/+P(+(ga*ga+(pa*pa+xa*xa)));ka=za*pa;pa=za*xa;xa=za*ga;ga=L*xa+(Ca*pa+fa*ka);do if(ga<-.9999998807907104)if(+O(+L)>.7071067690849304){za=1.0/+P(+(L*L+Ca*Ca));Ea=0;Fa=-(L*za);Ga=(g[k>>2]=Ca*za,c[k>>2]|0);Ha=0;break}else{za=1.0/+P(+(fa*fa+Ca*Ca));Ea=(g[k>>2]=-(Ca*za),c[k>>2]|0);Fa=fa*za;Ga=0;Ha=0;break}else{za=+P(+((ga+1.0)*2.0));ya=1.0/za;q=(g[k>>2]=(Ca*xa-L*pa)*ya,c[k>>2]|0);p=(g[k>>2]=(fa*pa-Ca*ka)*ya,c[k>>2]|0);Ea=q;Fa=(L*ka-fa*xa)*ya;Ga=p;Ha=(g[k>>2]=za*.5,c[k>>2]|0);}while(0);xa=(c[k>>2]=Ea,+g[k>>2]);fa=(c[k>>2]=Ga,+g[k>>2]);ka=(c[k>>2]=Ha,+g[k>>2]);L=1.0/+P(+(ka*ka+(fa*fa+(Fa*Fa+xa*xa))));Ca=xa*L;xa=Fa*L;Fa=fa*L;fa=ka*L;L=-Ca;ka=-xa;pa=-Fa;ga=Da*ka+(ha*fa+G*L)-D*pa;za=ha*pa+(G*ka+D*fa)-Da*L;ya=D*L+(Da*fa+G*pa)-ha*ka;na=G*fa-ha*L-D*ka-Da*pa;pa=1.0/+P(+(na*na+(ya*ya+(ga*ga+za*za))));Da=pa*ga;ga=pa*za;za=pa*ya;ya=pa*na;Ha=b+444|0;na=+g[Ha>>2];Ga=b+456|0;pa=+g[Ga>>2];Ea=(g[k>>2]=na,c[k>>2]|0);if(na>=pa?(ka=+g[b+448>>2],ka>=pa):0){pa=fa<-1.0?-1.0:fa;fa=+U(+(pa>1.0?1.0:pa))*2.0;if(fa>1.1920928955078125e-07){pa=1.0/+P(+(Fa*Fa+(Ca*Ca+xa*xa)));D=Ca*pa;Ca=xa*pa;xa=Fa*pa;if(+O(+Ca)>1.1920928955078125e-07){pa=xa*xa/(Ca*Ca);Fa=+P(+((pa+1.0)/(1.0/(ka*ka)+pa/(na*na))));Ia=(g[k>>2]=Fa,c[k>>2]|0);Ja=Ca;Ka=xa;La=D}else{Ia=Ea;Ja=Ca;Ka=xa;La=D}}else{Ia=0;Ja=0.0;Ka=0.0;La=0.0}D=(c[k>>2]=Ia,+g[k>>2]);xa=+g[b+428>>2];Ca=D*xa;if(fa>Ca){a[t>>0]=1;Fa=fa-Ca;g[b+528>>2]=fa<D&xa<.9999998807907104?Fa/(D-Ca):1.0;g[r>>2]=Fa;if(+O(+Ja)>1.1920928955078125e-07){Fa=+O(+(Ja*(-Ka/Ja*(ka/na))));na=Ka<-0.0?Fa:-Fa;Fa=1.0/+P(+(Ja*Ja+La*La+na*na));Ma=La*Fa;Na=Ja*Fa;Oa=-(na*Fa);}else{Ma=La;Na=Ja;Oa=Ka}Ka=-Ma;Ma=-Na;Na=-Oa;Oa=J*Na+Ba*Ka-W*Ma;Ja=Ba*Ma+W*Ka-N*Na;La=Ba*Na+N*Ma-J*Ka;Fa=-(N*Ka)-J*Ma-W*Na;Na=Ja*H+(Ba*Oa+Fa*ta)-La*_;Ma=La*ta+(Ba*Ja+Fa*_)-Oa*H;Ka=Oa*_+(Ba*La+Fa*H)-Ja*ta;g[b+460>>2]=Na;g[b+464>>2]=Ma;g[b+468>>2]=Ka;g[b+472>>2]=0.0;Ia=b+536|0;c[Ia>>2]=0;c[Ia+4>>2]=0;c[Ia+8>>2]=0;c[Ia+12>>2]=0;g[b+492>>2]=1.0/(Na*(+g[f>>2]*Na+ +g[f+16>>2]*Ma+ +g[f+32>>2]*Ka)+Ma*(Na*+g[f+4>>2]+Ma*+g[f+20>>2]+Ka*+g[f+36>>2])+Ka*(Na*+g[f+8>>2]+Ma*+g[f+24>>2]+Ka*+g[f+40>>2])+(Na*(Na*+g[h>>2]+Ma*+g[h+16>>2]+Ka*+g[h+32>>2])+Ma*(Na*+g[h+4>>2]+Ma*+g[h+20>>2]+Ka*+g[h+36>>2])+Ka*(Na*+g[h+8>>2]+Ma*+g[h+24>>2]+Ka*+g[h+40>>2])));}}else Pa=21;a:do if((Pa|0)==21){Ka=+g[m>>2];Ma=+g[b+316>>2];Na=+g[b+332>>2];Ja=+g[d>>2];Fa=+g[d+4>>2];La=+g[d+8>>2];Oa=Ka*Ja+Ma*Fa+Na*La;na=+g[d+16>>2];ka=+g[d+20>>2];Ca=+g[d+24>>2];D=Ka*na+Ma*ka+Na*Ca;xa=+g[d+32>>2];fa=+g[d+36>>2];pa=+g[d+40>>2];L=Ka*xa+Ma*fa+Na*pa;Na=+g[b+304>>2];Ma=+g[b+320>>2];Ka=+g[b+336>>2];ha=Ja*Na+Fa*Ma+La*Ka;G=na*Na+ka*Ma+Ca*Ka;A=xa*Na+fa*Ma+pa*Ka;Ka=+g[b+308>>2];Ma=+g[b+324>>2];Na=+g[b+340>>2];oa=Ja*Ka+Fa*Ma+La*Na;La=na*Ka+ka*Ma+Ca*Na;Ca=xa*Ka+fa*Ma+pa*Na;Na=+g[o>>2];pa=+g[b+380>>2];Ma=+g[b+396>>2];fa=Na*+g[e>>2]+pa*+g[e+4>>2]+Ma*+g[e+8>>2];Ka=Na*+g[e+16>>2]+pa*+g[e+20>>2]+Ma*+g[e+24>>2];xa=Na*+g[e+32>>2]+pa*+g[e+36>>2]+Ma*+g[e+40>>2];Ma=Oa*fa+D*Ka+L*xa;pa=ha*fa+G*Ka+A*xa;Na=oa*fa+La*Ka+Ca*xa;ka=+g[Ha>>2];na=+g[Ga>>2];do if(ka<na){Fa=+g[b+448>>2];if(Fa<na){if(+O(+pa)<1.1920928955078125e-07?+O(+Na)<1.1920928955078125e-07:0)break a;a[t>>0]=1;g[b+460>>2]=-(L*Ka-D*xa);g[b+464>>2]=-(Oa*xa-L*fa);g[b+468>>2]=-(D*fa-Oa*Ka);g[b+472>>2]=0.0;break a}if(+O(+Ma)<1.1920928955078125e-07?+O(+Na)<1.1920928955078125e-07:0){Qa=Ma;Ra=pa;Sa=Na;break}a[t>>0]=1;if(Fa>=na){Ja=+X(+Na,+Ma);if(Ja>Fa){Qa=+R(+Fa);Ra=0.0;Sa=+S(+Fa);break}if(Ja<-Fa){Qa=+R(+Fa);Ra=0.0;Sa=-+S(+Fa);}else{Qa=Ma;Ra=0.0;Sa=Na}}else{Qa=Ma;Ra=pa;Sa=Na}}else{if(+O(+Ma)<1.1920928955078125e-07?+O(+pa)<1.1920928955078125e-07:0){Qa=Ma;Ra=pa;Sa=Na;break}a[t>>0]=1;if(ka>=na){Fa=+X(+pa,+Ma);if(Fa>ka){Qa=+R(+ka);Ra=+S(+ka);Sa=0.0;break}if(Fa<-ka){Qa=+R(+ka);Ra=-+S(+ka);Sa=0.0}else{Qa=Ma;Ra=pa;Sa=0.0}}else{Qa=Ma;Ra=pa;Sa=Na}}while(0);Na=oa*Sa+(ha*Ra+Oa*Qa);pa=La*Sa+(G*Ra+D*Qa);Ma=Ca*Sa+(A*Ra+L*Qa);ka=1.0/+P(+(Ma*Ma+(Na*Na+pa*pa)));na=ka*Na;Na=ka*pa;pa=ka*Ma;Ma=Ka*pa-xa*Na;ka=xa*na-fa*pa;pa=fa*Na-Ka*na;na=-Ma;Na=-ka;Fa=-pa;Ia=b+460|0;g[Ia>>2]=na;Ea=b+464|0;g[Ea>>2]=Na;p=b+468|0;g[p>>2]=Fa;g[b+472>>2]=0.0;Ja=+P(+(Ma*Ma+ka*ka+pa*pa));g[r>>2]=Ja;if(!(+O(+Ja)<1.1920928955078125e-07)){pa=1.0/Ja;g[Ia>>2]=pa*na;g[Ea>>2]=pa*Na;g[p>>2]=pa*Fa}}while(0);Qa=+g[b+452>>2];r=b+512|0;if(!(Qa>=0.0)){g[r>>2]=0.0;i=j;return}Ra=ya<-1.0?-1.0:ya;Sa=+U(+(Ra>1.0?1.0:Ra))*2.0;if(Sa>3.1415927410125732){Ra=ya>1.0?-1.0:-ya;Ta=-za;Ua=-ga;Va=-Da;Wa=+U(+(Ra>1.0?1.0:Ra))*2.0}else{Ta=za;Ua=ga;Va=Da;Wa=Sa}g[r>>2]=Wa;if(Wa>1.1920928955078125e-07){Sa=1.0/+P(+(Ta*Ta+(Ua*Ua+Va*Va)));Xa=Ta*Sa;Ya=Ua*Sa;Za=Va*Sa}else{Xa=Ta;Ya=Ua;Za=Va}Va=+g[b+428>>2];Ua=Qa*Va;if(Wa>Ua){a[s>>0]=1;Ta=Wa-Ua;g[b+532>>2]=Wa<Qa&Va<.9999998807907104?Ta/(Qa-Ua):1.0;g[b+508>>2]=Ta;Ta=-Za;Ua=-Ya;Qa=-Xa;Va=J*Qa+Ba*Ta-W*Ua;Wa=Ba*Ua+W*Ta-N*Qa;Sa=Ba*Qa+N*Ua-J*Ta;Da=-(N*Ta)-J*Ua-W*Qa;Qa=Wa*H+(Ba*Va+Da*ta)-Sa*_;W=Sa*ta+(Ba*Wa+Da*_)-Va*H;Ua=Va*_+(Ba*Sa+Da*H)-Wa*ta;g[b+476>>2]=Qa;g[b+480>>2]=W;g[b+484>>2]=Ua;g[b+488>>2]=0.0;g[b+496>>2]=1.0/(Qa*(+g[f>>2]*Qa+ +g[f+16>>2]*W+ +g[f+32>>2]*Ua)+W*(Qa*+g[f+4>>2]+W*+g[f+20>>2]+Ua*+g[f+36>>2])+Ua*(Qa*+g[f+8>>2]+W*+g[f+24>>2]+Ua*+g[f+40>>2])+(Qa*(Qa*+g[h>>2]+W*+g[h+16>>2]+Ua*+g[h+32>>2])+W*(Qa*+g[h+4>>2]+W*+g[h+20>>2]+Ua*+g[h+36>>2])+Ua*(Qa*+g[h+8>>2]+W*+g[h+24>>2]+Ua*+g[h+40>>2])));}if(!(a[t>>0]|0)){i=j;return}Ua=-Za;Za=-Ya;Ya=-Xa;Xa=aa*Ya+ba*Ua-$*Za;W=ba*Za+$*Ua-M*Ya;Qa=ba*Ya+M*Za-aa*Ua;ta=-(M*Ua)-aa*Za-$*Ya;Ya=-M;M=-aa;aa=-$;g[b+536>>2]=W*aa+(ba*Xa+ta*Ya)-Qa*M;g[b+540>>2]=Qa*Ya+(ba*W+ta*M)-Xa*aa;g[b+544>>2]=Xa*M+(ba*Qa+ta*aa)-W*Ya;g[b+548>>2]=0.0;i=j;return}
function Nh(b,e,f){b=b|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,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;g=b+12|0;h=e;while(1){e=c[g>>2]|0;i=c[e+(((h+f|0)/2|0)<<2)>>2]|0;j=i+28|0;k=i+32|0;i=e;e=h;l=f;while(1){m=c[(c[j>>2]|0)+208>>2]|0;n=(m|0)>-1;if(n){o=e;while(1){p=c[i+(o<<2)>>2]|0;q=c[(c[p+28>>2]|0)+208>>2]|0;if((q|0)>-1)r=q;else r=c[(c[p+32>>2]|0)+208>>2]|0;if((r|0)<(m|0))o=o+1|0;else{s=o;break}}}else{o=c[(c[k>>2]|0)+208>>2]|0;p=e;while(1){q=c[i+(p<<2)>>2]|0;t=c[(c[q+28>>2]|0)+208>>2]|0;if((t|0)>-1)u=t;else u=c[(c[q+32>>2]|0)+208>>2]|0;if((u|0)<(o|0))p=p+1|0;else{s=p;break}}}if(n){p=l;while(1){o=c[i+(p<<2)>>2]|0;q=c[(c[o+28>>2]|0)+208>>2]|0;if((q|0)>-1)v=q;else v=c[(c[o+32>>2]|0)+208>>2]|0;if((m|0)<(v|0))p=p+-1|0;else{w=p;break}}}else{p=c[(c[k>>2]|0)+208>>2]|0;m=l;while(1){n=c[i+(m<<2)>>2]|0;o=c[(c[n+28>>2]|0)+208>>2]|0;if((o|0)>-1)x=o;else x=c[(c[n+32>>2]|0)+208>>2]|0;if((p|0)<(x|0))m=m+-1|0;else{w=m;break}}}if((s|0)>(w|0)){y=s;z=w}else{m=i+(s<<2)|0;p=d[m>>0]|d[m+1>>0]<<8|d[m+2>>0]<<16|d[m+3>>0]<<24;c[m>>2]=c[i+(w<<2)>>2];m=(c[g>>2]|0)+(w<<2)|0;a[m>>0]=p;a[m+1>>0]=p>>8;a[m+2>>0]=p>>16;a[m+3>>0]=p>>24;y=s+1|0;z=w+-1|0}if((y|0)>(z|0))break;i=c[g>>2]|0;e=y;l=z}if((z|0)>(h|0))Nh(b,h,z);if((y|0)<(f|0))h=y;else break}return}function Oh(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;d=b+32|0;e=c[d>>2]|0;if(!e)f=0;else f=c[b+40>>2]|0;g=b+52|0;h=c[g>>2]|0;if(!h)i=0;else i=c[b+60>>2]|0;j=b+72|0;k=c[j>>2]|0;if(!k)l=0;else l=c[b+80>>2]|0;m=c[b+8>>2]|0;+gc[c[(c[m>>2]|0)+12>>2]&3](m,f,e,i,h,l,k,c[b+4>>2]|0,c[b+20>>2]|0,c[b+24>>2]|0);k=c[d>>2]|0;if((k|0)<0){l=b+36|0;h=b+40|0;if((c[l>>2]|0)<0){i=c[h>>2]|0;e=b+44|0;if(i){if(a[e>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[i+-4>>2]|0);}c[h>>2]=0}a[e>>0]=1;c[h>>2]=0;c[l>>2]=0;n=k}else n=k;do{c[(c[h>>2]|0)+(n<<2)>>2]=0;n=n+1|0}while((n|0)!=0);}c[d>>2]=0;d=c[g>>2]|0;if((d|0)<0){n=b+56|0;h=b+60|0;if((c[n>>2]|0)<0){k=c[h>>2]|0;l=b+64|0;if(k){if(a[l>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[k+-4>>2]|0);}c[h>>2]=0}a[l>>0]=1;c[h>>2]=0;c[n>>2]=0;o=d}else o=d;do{c[(c[h>>2]|0)+(o<<2)>>2]=0;o=o+1|0}while((o|0)!=0);}c[g>>2]=0;g=c[j>>2]|0;if((g|0)>=0){c[j>>2]=0;return}o=b+76|0;h=b+80|0;if((c[o>>2]|0)<0){d=c[h>>2]|0;n=b+84|0;if(d){if(a[n>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[d+-4>>2]|0);}c[h>>2]=0}a[n>>0]=1;c[h>>2]=0;c[o>>2]=0;p=g}else p=g;do{c[(c[h>>2]|0)+(p<<2)>>2]=0;p=p+1|0}while((p|0)!=0);c[j>>2]=0;return}function Ph(a){a=a|0;return}function Qh(a){a=a|0;xs(a);return}function Rh(a,d){a=a|0;d=d|0;var e=0,f=0,g=0;e=c[d>>2]|0;f=c[a+80>>2]|0;if((e|0)==(f|0)){g=0;return g|0}if(!((b[a+10>>1]&b[d+4>>1])<<16>>16)){g=0;return g|0}if(!((b[d+6>>1]&b[a+8>>1])<<16>>16)){g=0;return g|0}d=c[a+92>>2]|0;g=Wb[c[(c[d>>2]|0)+28>>2]&31](d,f,e)|0;return g|0}function Sh(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0.0,h=0,i=0,j=0,k=0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0;e=c[b>>2]|0;if((e|0)==(c[a+80>>2]|0)){f=1.0;return +f}if(c[e+204>>2]&4){f=1.0;return +f}h=b+8|0;i=b+12|0;j=b+16|0;if((+g[a+28>>2]-+g[a+12>>2])*+g[h>>2]+(+g[a+32>>2]-+g[a+16>>2])*+g[i>>2]+(+g[a+36>>2]-+g[a+20>>2])*+g[j>>2]>=-+g[a+84>>2]){f=1.0;return +f}k=b+40|0;c[a+4>>2]=c[k>>2];c[a+76>>2]=e;if(d){d=a+44|0;c[d>>2]=c[h>>2];c[d+4>>2]=c[h+4>>2];c[d+8>>2]=c[h+8>>2];c[d+12>>2]=c[h+12>>2]}else{l=+g[b+8>>2];m=+g[i>>2];n=+g[j>>2];o=l*+g[e+20>>2]+m*+g[e+24>>2]+n*+g[e+28>>2];p=l*+g[e+36>>2]+m*+g[e+40>>2]+n*+g[e+44>>2];g[a+44>>2]=+g[e+4>>2]*l+ +g[e+8>>2]*m+ +g[e+12>>2]*n;g[a+48>>2]=o;g[a+52>>2]=p;g[a+56>>2]=0.0}e=a+60|0;a=b+24|0;c[e>>2]=c[a>>2];c[e+4>>2]=c[a+4>>2];c[e+8>>2]=c[a+8>>2];c[e+12>>2]=c[a+12>>2];f=+g[k>>2];return +f}function Th(a){a=a|0;xs(a);return}function Uh(a,c){a=a|0;c=c|0;var d=0;if(!((b[a+10>>1]&b[c+4>>1])<<16>>16)){d=0;return d|0}d=(b[c+6>>1]&b[a+8>>1])<<16>>16!=0;return d|0}function Vh(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,h=0,i=0,j=0,k=0.0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0;e=b+40|0;c[a+4>>2]=c[e>>2];f=c[b>>2]|0;c[a+76>>2]=f;if(d){d=a+44|0;h=b+8|0;c[d>>2]=c[h>>2];c[d+4>>2]=c[h+4>>2];c[d+8>>2]=c[h+8>>2];c[d+12>>2]=c[h+12>>2];i=a+60|0;j=b+24|0;c[i>>2]=c[j>>2];c[i+4>>2]=c[j+4>>2];c[i+8>>2]=c[j+8>>2];c[i+12>>2]=c[j+12>>2];k=+g[e>>2];return +k}else{l=+g[b+8>>2];m=+g[b+12>>2];n=+g[b+16>>2];o=l*+g[f+20>>2]+m*+g[f+24>>2]+n*+g[f+28>>2];p=l*+g[f+36>>2]+m*+g[f+40>>2]+n*+g[f+44>>2];g[a+44>>2]=+g[f+4>>2]*l+ +g[f+8>>2]*m+ +g[f+12>>2]*n;g[a+48>>2]=o;g[a+52>>2]=p;g[a+56>>2]=0.0;i=a+60|0;j=b+24|0;c[i>>2]=c[j>>2];c[i+4>>2]=c[j+4>>2];c[i+8>>2]=c[j+8>>2];c[i+12>>2]=c[j+12>>2];k=+g[e>>2];return +k}return +(0.0);}function Wh(b){b=b|0;var d=0,e=0,f=0,g=0,h=0;c[b>>2]=2072;d=b+72|0;e=b+80|0;f=c[e>>2]|0;g=b+84|0;if(f){if(a[g>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[f+-4>>2]|0);}c[e>>2]=0}a[g>>0]=1;c[e>>2]=0;c[d>>2]=0;c[b+76>>2]=0;d=b+52|0;e=b+60|0;g=c[e>>2]|0;f=b+64|0;if(g){if(a[f>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[g+-4>>2]|0);}c[e>>2]=0}a[f>>0]=1;c[e>>2]=0;c[d>>2]=0;c[b+56>>2]=0;d=b+32|0;e=b+40|0;f=c[e>>2]|0;g=b+44|0;if(!f){a[g>>0]=1;c[e>>2]=0;c[d>>2]=0;h=b+36|0;c[h>>2]=0;return}if(a[g>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[f+-4>>2]|0);}c[e>>2]=0;a[g>>0]=1;c[e>>2]=0;c[d>>2]=0;h=b+36|0;c[h>>2]=0;return}function Xh(a){a=a|0;Wh(a);xs(a);return}function Yh(b,d,e,f,g,h){b=b|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,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0;if((h|0)<0){i=c[b+8>>2]|0;+gc[c[(c[i>>2]|0)+12>>2]&3](i,d,e,f,g,c[b+12>>2]|0,c[b+16>>2]|0,c[b+4>>2]|0,c[b+20>>2]|0,c[b+24>>2]|0);return}i=c[b+16>>2]|0;a:do if((i|0)>0){j=c[b+12>>2]|0;k=0;while(1){l=j+(k<<2)|0;m=c[l>>2]|0;n=c[(c[m+28>>2]|0)+208>>2]|0;if((n|0)>-1)o=n;else o=c[(c[m+32>>2]|0)+208>>2]|0;if((o|0)==(h|0)){p=k;q=l;break a}l=k+1|0;if((l|0)<(i|0))k=l;else{p=l;q=0;break}}}else{p=0;q=0}while(0);if((p|0)<(i|0)){o=c[b+12>>2]|0;k=p;p=0;while(1){j=c[o+(k<<2)>>2]|0;l=c[(c[j+28>>2]|0)+208>>2]|0;if((l|0)>-1)r=l;else r=c[(c[j+32>>2]|0)+208>>2]|0;j=((r|0)==(h|0)&1)+p|0;k=k+1|0;if((k|0)==(i|0)){s=j;break}else p=j}}else s=0;p=b+4|0;i=c[p>>2]|0;if((c[i+72>>2]|0)<2){k=c[b+8>>2]|0;+gc[c[(c[k>>2]|0)+12>>2]&3](k,d,e,f,g,q,s,i,c[b+20>>2]|0,c[b+24>>2]|0);return}if((e|0)>0){i=b+32|0;k=b+36|0;h=b+40|0;r=b+44|0;o=c[i>>2]|0;j=c[k>>2]|0;l=0;while(1){m=d+(l<<2)|0;if((o|0)==(j|0)){n=(j|0)!=0?j<<1:1;if((j|0)<(n|0)){if(!n){t=0;u=j}else{c[3708]=(c[3708]|0)+1;v=ws((n<<2|3)+16|0)|0;if(!v)w=0;else{x=v+4+15&-16;c[x+-4>>2]=v;w=x}t=w;u=c[i>>2]|0}if((u|0)>0){x=0;do{c[t+(x<<2)>>2]=c[(c[h>>2]|0)+(x<<2)>>2];x=x+1|0}while((x|0)!=(u|0));}x=c[h>>2]|0;if(!x)y=u;else{if(!(a[r>>0]|0))z=u;else{c[3710]=(c[3710]|0)+1;xs(c[x+-4>>2]|0);z=c[i>>2]|0}c[h>>2]=0;y=z}a[r>>0]=1;c[h>>2]=t;c[k>>2]=n;A=y;B=n}else{A=j;B=j}}else{A=o;B=j}c[(c[h>>2]|0)+(A<<2)>>2]=c[m>>2];o=A+1|0;c[i>>2]=o;l=l+1|0;if((l|0)==(e|0))break;else j=B}}if((g|0)>0){B=b+52|0;j=b+56|0;e=b+60|0;l=b+64|0;o=c[B>>2]|0;i=c[j>>2]|0;A=0;while(1){h=f+(A<<2)|0;if((o|0)==(i|0)){y=(i|0)!=0?i<<1:1;if((i|0)<(y|0)){if(!y){C=0;D=i}else{c[3708]=(c[3708]|0)+1;k=ws((y<<2|3)+16|0)|0;if(!k)E=0;else{t=k+4+15&-16;c[t+-4>>2]=k;E=t}C=E;D=c[B>>2]|0}if((D|0)>0){t=0;do{c[C+(t<<2)>>2]=c[(c[e>>2]|0)+(t<<2)>>2];t=t+1|0}while((t|0)!=(D|0));}t=c[e>>2]|0;if(!t)F=D;else{if(!(a[l>>0]|0))G=D;else{c[3710]=(c[3710]|0)+1;xs(c[t+-4>>2]|0);G=c[B>>2]|0}c[e>>2]=0;F=G}a[l>>0]=1;c[e>>2]=C;c[j>>2]=y;H=F;I=y}else{H=i;I=i}}else{H=o;I=i}c[(c[e>>2]|0)+(H<<2)>>2]=c[h>>2];o=H+1|0;c[B>>2]=o;A=A+1|0;if((A|0)==(g|0))break;else i=I}}I=b+72|0;if((s|0)>0){i=b+76|0;g=b+80|0;A=b+84|0;o=c[I>>2]|0;B=c[i>>2]|0;H=0;while(1){e=q+(H<<2)|0;if((o|0)==(B|0)){F=(B|0)!=0?B<<1:1;if((B|0)<(F|0)){if(!F){J=0;K=B}else{c[3708]=(c[3708]|0)+1;j=ws((F<<2|3)+16|0)|0;if(!j)L=0;else{C=j+4+15&-16;c[C+-4>>2]=j;L=C}J=L;K=c[I>>2]|0}if((K|0)>0){C=0;do{c[J+(C<<2)>>2]=c[(c[g>>2]|0)+(C<<2)>>2];C=C+1|0}while((C|0)!=(K|0));}C=c[g>>2]|0;if(!C)M=K;else{if(!(a[A>>0]|0))N=K;else{c[3710]=(c[3710]|0)+1;xs(c[C+-4>>2]|0);N=c[I>>2]|0}c[g>>2]=0;M=N}a[A>>0]=1;c[g>>2]=J;c[i>>2]=F;O=M;P=F}else{O=B;P=B}}else{O=o;P=B}c[(c[g>>2]|0)+(O<<2)>>2]=c[e>>2];C=O+1|0;c[I>>2]=C;H=H+1|0;if((H|0)==(s|0)){Q=C;break}else{o=C;B=P}}}else Q=c[I>>2]|0;if(((c[b+52>>2]|0)+Q|0)<=(c[(c[p>>2]|0)+72>>2]|0))return;Oh(b);return}function Zh(b,d){b=b|0;d=d|0;var e=0;c[b+164>>2]=1065353216;c[b+168>>2]=1065353216;c[b+172>>2]=1065353216;g[b+176>>2]=0.0;c[b+180>>2]=0;g[b+184>>2]=999999984306749440.0;e=b+188|0;c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;c[e+12>>2]=0;c[b+204>>2]=1;c[b+208>>2]=-1;c[b+212>>2]=-1;c[b+216>>2]=1;g[b+220>>2]=0.0;g[b+224>>2]=.5;g[b+228>>2]=0.0;g[b+232>>2]=0.0;c[b+236>>2]=1;c[b+240>>2]=0;c[b+244>>2]=-1;g[b+248>>2]=1.0;g[b+252>>2]=0.0;g[b+256>>2]=0.0;c[b+260>>2]=0;a[b+280>>0]=1;c[b+276>>2]=0;c[b+268>>2]=0;c[b+272>>2]=0;c[b+284>>2]=0;c[b+4>>2]=1065353216;e=b+8|0;c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;c[e+12>>2]=0;c[b+24>>2]=1065353216;e=b+28|0;c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;c[e+12>>2]=0;c[b+44>>2]=1065353216;e=b+48|0;c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;c[e+12>>2]=0;c[e+16>>2]=0;c[b>>2]=2512;a[b+524>>0]=1;c[b+520>>2]=0;c[b+512>>2]=0;c[b+516>>2]=0;_h(b,d);return}function _h(b,d){b=b|0;d=d|0;var e=0,f=0,h=0,j=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.0,B=0.0,C=0,D=0,E=0,F=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,O=0.0,P=0.0,Q=0.0,R=0.0,S=0.0,T=0.0,U=0.0,V=0.0,W=0.0;e=i;i=i+32|0;f=e+20|0;h=e+16|0;j=e+12|0;l=e+8|0;m=e+4|0;n=e;c[b+236>>2]=2;o=b+336|0;c[o>>2]=0;c[o+4>>2]=0;c[o+8>>2]=0;c[o+12>>2]=0;c[o+16>>2]=0;c[o+20>>2]=0;c[o+24>>2]=0;c[o+28>>2]=0;c[b+568>>2]=1065353216;c[b+572>>2]=1065353216;c[b+576>>2]=1065353216;g[b+580>>2]=0.0;o=b+372|0;c[o>>2]=1065353216;p=b+376|0;c[p>>2]=1065353216;q=b+380|0;c[q>>2]=1065353216;r=b+392|0;s=b+396|0;t=b+400|0;u=b+408|0;v=b+412|0;w=b+436|0;x=d+92|0;y=b+384|0;z=y+36|0;do{c[y>>2]=0;y=y+4|0}while((y|0)<(z|0));c[w>>2]=0;c[w+4>>2]=0;c[w+8>>2]=0;c[w+12>>2]=0;c[w+16>>2]=0;c[w+20>>2]=0;c[w+24>>2]=0;c[w+28>>2]=0;A=+g[x>>2];B=+g[d+96>>2];g[f>>2]=A;g[h>>2]=B;g[j>>2]=0.0;g[l>>2]=1.0;c[b+468>>2]=c[(A<0.0?j:A>1.0?l:f)>>2];g[m>>2]=0.0;g[n>>2]=1.0;c[b+472>>2]=c[(B<0.0?m:B>1.0?n:h)>>2];c[b+496>>2]=c[d+112>>2];c[b+500>>2]=c[d+116>>2];h=c[d+4>>2]|0;c[b+504>>2]=h;c[b+632>>2]=0;c[b+636>>2]=0;a[b+476>>0]=a[d+120>>0]|0;c[b+480>>2]=c[d+124>>2];c[b+484>>2]=c[d+128>>2];c[b+488>>2]=c[d+132>>2];c[b+492>>2]=c[d+136>>2];if(!h){n=b+4|0;m=d+8|0;c[n>>2]=c[m>>2];c[n+4>>2]=c[m+4>>2];c[n+8>>2]=c[m+8>>2];c[n+12>>2]=c[m+12>>2];m=b+20|0;f=d+24|0;c[m>>2]=c[f>>2];c[m+4>>2]=c[f+4>>2];c[m+8>>2]=c[f+8>>2];c[m+12>>2]=c[f+12>>2];f=b+36|0;l=d+40|0;c[f>>2]=c[l>>2];c[f+4>>2]=c[l+4>>2];c[f+8>>2]=c[l+8>>2];c[f+12>>2]=c[l+12>>2];l=b+52|0;j=d+56|0;c[l>>2]=c[j>>2];c[l+4>>2]=c[j+4>>2];c[l+8>>2]=c[j+8>>2];c[l+12>>2]=c[j+12>>2];C=n;D=m;E=f;F=l}else{l=b+4|0;Mb[c[(c[h>>2]|0)+8>>2]&127](h,l);C=l;D=b+20|0;E=b+36|0;F=b+52|0}l=b+68|0;c[l>>2]=c[C>>2];c[l+4>>2]=c[C+4>>2];c[l+8>>2]=c[C+8>>2];c[l+12>>2]=c[C+12>>2];C=b+84|0;c[C>>2]=c[D>>2];c[C+4>>2]=c[D+4>>2];c[C+8>>2]=c[D+8>>2];c[C+12>>2]=c[D+12>>2];D=b+100|0;c[D>>2]=c[E>>2];c[D+4>>2]=c[E+4>>2];c[D+8>>2]=c[E+8>>2];c[D+12>>2]=c[E+12>>2];E=b+116|0;c[E>>2]=c[F>>2];c[E+4>>2]=c[F+4>>2];c[E+8>>2]=c[F+8>>2];c[E+12>>2]=c[F+12>>2];F=b+132|0;c[F>>2]=0;c[F+4>>2]=0;c[F+8>>2]=0;c[F+12>>2]=0;c[F+16>>2]=0;c[F+20>>2]=0;c[F+24>>2]=0;c[F+28>>2]=0;c[b+224>>2]=c[d+100>>2];c[b+232>>2]=c[d+104>>2];c[b+228>>2]=c[d+108>>2];Mb[c[(c[b>>2]|0)+8>>2]&127](b,c[d+72>>2]|0);F=c[644]|0;c[644]=F+1;c[b+532>>2]=F;B=+g[d>>2];F=b+204|0;E=c[F>>2]|0;if(B==0.0){c[F>>2]=E|1;G=0.0}else{c[F>>2]=E&-2;G=1.0/B}E=b+368|0;g[E>>2]=G;A=B*+g[u>>2];H=B*+g[v>>2];g[b+388>>2]=B*+g[b+404>>2];g[r>>2]=A;g[s>>2]=H;g[t>>2]=0.0;H=+g[d+76>>2];t=H!=0.0?(g[k>>2]=1.0/H,c[k>>2]|0):0;H=+g[d+80>>2];s=H!=0.0?(g[k>>2]=1.0/H,c[k>>2]|0):0;H=+g[d+84>>2];d=H!=0.0?(g[k>>2]=1.0/H,c[k>>2]|0):0;c[b+420>>2]=t;c[b+424>>2]=s;c[b+428>>2]=d;g[b+432>>2]=0.0;H=G*+g[p>>2];A=G*+g[q>>2];r=b+584|0;g[r>>2]=G*+g[b+372>>2];v=b+588|0;g[v>>2]=H;u=b+592|0;g[u>>2]=A;F=b+596|0;g[F>>2]=0.0;A=+g[b+4>>2];H=(c[k>>2]=t,+g[k>>2]);G=A*H;B=+g[b+8>>2];I=(c[k>>2]=s,+g[k>>2]);J=B*I;K=+g[b+12>>2];L=(c[k>>2]=d,+g[k>>2]);M=K*L;N=+g[b+20>>2];O=H*N;P=+g[b+24>>2];Q=I*P;R=+g[b+28>>2];S=L*R;T=+g[b+36>>2];U=H*T;H=+g[b+40>>2];V=I*H;I=+g[b+44>>2];W=L*I;g[b+288>>2]=A*G+B*J+K*M;g[b+292>>2]=G*N+J*P+M*R;g[b+296>>2]=G*T+J*H+M*I;g[b+300>>2]=0.0;g[b+304>>2]=A*O+B*Q+K*S;g[b+308>>2]=N*O+P*Q+R*S;g[b+312>>2]=O*T+Q*H+S*I;g[b+316>>2]=0.0;g[b+320>>2]=A*U+B*V+K*W;g[b+324>>2]=N*U+P*V+R*W;g[b+328>>2]=T*U+H*V+I*W;g[b+332>>2]=0.0;c[b+528>>2]=8;d=b+536|0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;c[d+12>>2]=0;c[d+16>>2]=0;c[d+20>>2]=0;c[d+24>>2]=0;c[d+28>>2]=0;W=+g[E>>2];I=W*+g[p>>2];V=W*+g[q>>2];g[r>>2]=+g[o>>2]*W;g[v>>2]=I;g[u>>2]=V;y=F;z=y+36|0;do{c[y>>2]=0;y=y+4|0}while((y|0)<(z|0));i=e;return}function $h(b,d,e,f,h){b=b|0;d=+d;e=e|0;f=f|0;h=h|0;var j=0,k=0,l=0;j=i;i=i+144|0;k=j;c[b+164>>2]=1065353216;c[b+168>>2]=1065353216;c[b+172>>2]=1065353216;g[b+176>>2]=0.0;c[b+180>>2]=0;g[b+184>>2]=999999984306749440.0;l=b+188|0;c[l>>2]=0;c[l+4>>2]=0;c[l+8>>2]=0;c[l+12>>2]=0;c[b+204>>2]=1;c[b+208>>2]=-1;c[b+212>>2]=-1;c[b+216>>2]=1;g[b+220>>2]=0.0;g[b+224>>2]=.5;g[b+228>>2]=0.0;g[b+232>>2]=0.0;c[b+236>>2]=1;c[b+240>>2]=0;c[b+244>>2]=-1;g[b+248>>2]=1.0;g[b+252>>2]=0.0;g[b+256>>2]=0.0;c[b+260>>2]=0;a[b+280>>0]=1;c[b+276>>2]=0;c[b+268>>2]=0;c[b+272>>2]=0;c[b+284>>2]=0;c[b+4>>2]=1065353216;l=b+8|0;c[l>>2]=0;c[l+4>>2]=0;c[l+8>>2]=0;c[l+12>>2]=0;c[b+24>>2]=1065353216;l=b+28|0;c[l>>2]=0;c[l+4>>2]=0;c[l+8>>2]=0;c[l+12>>2]=0;c[b+44>>2]=1065353216;l=b+48|0;c[l>>2]=0;c[l+4>>2]=0;c[l+8>>2]=0;c[l+12>>2]=0;c[l+16>>2]=0;c[b>>2]=2512;a[b+524>>0]=1;c[b+520>>2]=0;c[b+512>>2]=0;c[b+516>>2]=0;g[k>>2]=d;c[k+4>>2]=e;c[k+72>>2]=f;f=k+76|0;c[f>>2]=c[h>>2];c[f+4>>2]=c[h+4>>2];c[f+8>>2]=c[h+8>>2];c[f+12>>2]=c[h+12>>2];g[k+92>>2]=0.0;g[k+96>>2]=0.0;g[k+100>>2]=.5;g[k+104>>2]=0.0;g[k+108>>2]=0.0;g[k+112>>2]=.800000011920929;g[k+116>>2]=1.0;a[k+120>>0]=0;g[k+124>>2]=.004999999888241291;g[k+128>>2]=.009999999776482582;g[k+132>>2]=.009999999776482582;g[k+136>>2]=.009999999776482582;c[k+8>>2]=1065353216;h=k+12|0;c[h>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;c[h+12>>2]=0;c[k+28>>2]=1065353216;h=k+32|0;c[h>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;c[h+12>>2]=0;c[k+48>>2]=1065353216;h=k+52|0;c[h>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;c[h+12>>2]=0;c[h+16>>2]=0;_h(b,k);i=j;return}function ai(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0.0,s=0.0,t=0.0,u=0.0,v=0.0,w=0.0,x=0.0,y=0.0,z=0.0,A=0.0,B=0.0,C=0.0,D=0.0,E=0.0,F=0.0,G=0.0,H=0.0,I=0.0,J=0.0;d=a+68|0;if(!(c[a+204>>2]&2)){c[d>>2]=c[b>>2];c[d+4>>2]=c[b+4>>2];c[d+8>>2]=c[b+8>>2];c[d+12>>2]=c[b+12>>2];e=a+84|0;f=b+16|0;c[e>>2]=c[f>>2];c[e+4>>2]=c[f+4>>2];c[e+8>>2]=c[f+8>>2];c[e+12>>2]=c[f+12>>2];e=a+100|0;h=b+32|0;c[e>>2]=c[h>>2];c[e+4>>2]=c[h+4>>2];c[e+8>>2]=c[h+8>>2];c[e+12>>2]=c[h+12>>2];e=a+116|0;i=b+48|0;c[e>>2]=c[i>>2];c[e+4>>2]=c[i+4>>2];c[e+8>>2]=c[i+8>>2];c[e+12>>2]=c[i+12>>2];j=a+20|0;k=f;l=a+36|0;m=a+4|0;n=h;o=a+52|0;p=i;q=b}else{i=a+4|0;c[d>>2]=c[i>>2];c[d+4>>2]=c[i+4>>2];c[d+8>>2]=c[i+8>>2];c[d+12>>2]=c[i+12>>2];d=a+84|0;h=a+20|0;c[d>>2]=c[h>>2];c[d+4>>2]=c[h+4>>2];c[d+8>>2]=c[h+8>>2];c[d+12>>2]=c[h+12>>2];d=a+100|0;f=a+36|0;c[d>>2]=c[f>>2];c[d+4>>2]=c[f+4>>2];c[d+8>>2]=c[f+8>>2];c[d+12>>2]=c[f+12>>2];d=a+116|0;e=a+52|0;c[d>>2]=c[e>>2];c[d+4>>2]=c[e+4>>2];c[d+8>>2]=c[e+8>>2];c[d+12>>2]=c[e+12>>2];j=h;k=b+16|0;l=f;m=i;n=b+32|0;o=e;p=b+48|0;q=b}b=a+132|0;e=a+336|0;c[b>>2]=c[e>>2];c[b+4>>2]=c[e+4>>2];c[b+8>>2]=c[e+8>>2];c[b+12>>2]=c[e+12>>2];e=a+148|0;b=a+352|0;c[e>>2]=c[b>>2];c[e+4>>2]=c[b+4>>2];c[e+8>>2]=c[b+8>>2];c[e+12>>2]=c[b+12>>2];c[m>>2]=c[q>>2];c[m+4>>2]=c[q+4>>2];c[m+8>>2]=c[q+8>>2];c[m+12>>2]=c[q+12>>2];c[j>>2]=c[k>>2];c[j+4>>2]=c[k+4>>2];c[j+8>>2]=c[k+8>>2];c[j+12>>2]=c[k+12>>2];c[l>>2]=c[n>>2];c[l+4>>2]=c[n+4>>2];c[l+8>>2]=c[n+8>>2];c[l+12>>2]=c[n+12>>2];c[o>>2]=c[p>>2];c[o+4>>2]=c[p+4>>2];c[o+8>>2]=c[p+8>>2];c[o+12>>2]=c[p+12>>2];r=+g[a+4>>2];s=+g[a+420>>2];t=r*s;u=+g[a+8>>2];v=+g[a+424>>2];w=u*v;x=+g[a+12>>2];y=+g[a+428>>2];z=x*y;A=+g[a+20>>2];B=s*A;C=+g[a+24>>2];D=v*C;E=+g[a+28>>2];F=y*E;G=+g[a+36>>2];H=s*G;s=+g[a+40>>2];I=v*s;v=+g[a+44>>2];J=y*v;g[a+288>>2]=r*t+u*w+x*z;g[a+292>>2]=t*A+w*C+z*E;g[a+296>>2]=t*G+w*s+z*v;g[a+300>>2]=0.0;g[a+304>>2]=r*B+u*D+x*F;g[a+308>>2]=A*B+C*D+E*F;g[a+312>>2]=B*G+D*s+F*v;g[a+316>>2]=0.0;g[a+320>>2]=r*H+u*I+x*J;g[a+324>>2]=A*H+C*I+E*J;g[a+328>>2]=G*H+s*I+v*J;g[a+332>>2]=0.0;return}function bi(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0;e=d;f=b+512|0;g=c[f>>2]|0;a:do if((g|0)>0){h=c[b+520>>2]|0;i=0;while(1){if((c[h+(i<<2)>>2]|0)==(d|0))break;j=i+1|0;if((j|0)<(g|0))i=j;else break a}if((i|0)!=(g|0))return}while(0);h=b+516|0;if((g|0)==(c[h>>2]|0)?(j=(g|0)!=0?g<<1:1,(g|0)<(j|0)):0){if(!j){k=0;l=g}else{c[3708]=(c[3708]|0)+1;m=ws((j<<2|3)+16|0)|0;if(!m)n=0;else{o=m+4+15&-16;c[o+-4>>2]=m;n=o}k=n;l=c[f>>2]|0}n=b+520|0;if((l|0)>0){o=0;do{c[k+(o<<2)>>2]=c[(c[n>>2]|0)+(o<<2)>>2];o=o+1|0}while((o|0)!=(l|0));}o=c[n>>2]|0;m=b+524|0;if(!o)p=l;else{if(!(a[m>>0]|0))q=l;else{c[3710]=(c[3710]|0)+1;xs(c[o+-4>>2]|0);q=c[f>>2]|0}c[n>>2]=0;p=q}a[m>>0]=1;c[n>>2]=k;c[h>>2]=j;r=p}else r=g;c[(c[b+520>>2]|0)+(r<<2)>>2]=e;c[f>>2]=r+1;r=c[d+28>>2]|0;f=c[d+32>>2]|0;if((r|0)==(b|0)){d=f;e=b+268|0;g=c[e>>2]|0;p=b+272|0;if((g|0)==(c[p>>2]|0)?(j=(g|0)!=0?g<<1:1,(g|0)<(j|0)):0){if(!j){s=0;t=g}else{c[3708]=(c[3708]|0)+1;h=ws((j<<2|3)+16|0)|0;if(!h)u=0;else{k=h+4+15&-16;c[k+-4>>2]=h;u=k}s=u;t=c[e>>2]|0}u=b+276|0;if((t|0)>0){k=0;do{c[s+(k<<2)>>2]=c[(c[u>>2]|0)+(k<<2)>>2];k=k+1|0}while((k|0)!=(t|0));}k=c[u>>2]|0;h=b+280|0;if(!k)v=t;else{if(!(a[h>>0]|0))w=t;else{c[3710]=(c[3710]|0)+1;xs(c[k+-4>>2]|0);w=c[e>>2]|0}c[u>>2]=0;v=w}a[h>>0]=1;c[u>>2]=s;c[p>>2]=j;x=v}else x=g;c[(c[b+276>>2]|0)+(x<<2)>>2]=d;c[e>>2]=x+1;c[b+260>>2]=x>>>31^1;return}else{x=r;r=f+268|0;b=c[r>>2]|0;e=f+272|0;if((b|0)==(c[e>>2]|0)?(d=(b|0)!=0?b<<1:1,(b|0)<(d|0)):0){if(!d){y=0;z=b}else{c[3708]=(c[3708]|0)+1;g=ws((d<<2|3)+16|0)|0;if(!g)A=0;else{v=g+4+15&-16;c[v+-4>>2]=g;A=v}y=A;z=c[r>>2]|0}A=f+276|0;if((z|0)>0){v=0;do{c[y+(v<<2)>>2]=c[(c[A>>2]|0)+(v<<2)>>2];v=v+1|0}while((v|0)!=(z|0));}v=c[A>>2]|0;g=f+280|0;if(!v)B=z;else{if(!(a[g>>0]|0))C=z;else{c[3710]=(c[3710]|0)+1;xs(c[v+-4>>2]|0);C=c[r>>2]|0}c[A>>2]=0;B=C}a[g>>0]=1;c[A>>2]=y;c[e>>2]=d;D=B}else D=b;c[(c[f+276>>2]|0)+(D<<2)>>2]=x;c[r>>2]=D+1;c[f+260>>2]=D>>>31^1;return}}function ci(b,d){b=b|0;d=d|0;var 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;e=b+512|0;f=c[e>>2]|0;if((f|0)<=0)return;g=b+520|0;h=c[g>>2]|0;i=0;while(1){if((c[h+(i<<2)>>2]|0)==(d|0))break;j=i+1|0;if((j|0)<(f|0))i=j;else{k=25;break}}if((k|0)==25)return;if((i|0)<(f|0))l=0;else return;while(1){m=h+(l<<2)|0;if((c[m>>2]|0)==(d|0)){k=8;break}i=l+1|0;if((i|0)<(f|0))l=i;else break}if((k|0)==8?(l|0)<(f|0):0){l=d;k=f+-1|0;c[m>>2]=c[h+(k<<2)>>2];h=(c[g>>2]|0)+(k<<2)|0;a[h>>0]=l;a[h+1>>0]=l>>8;a[h+2>>0]=l>>16;a[h+3>>0]=l>>24;c[e>>2]=(c[e>>2]|0)+-1}e=c[d+28>>2]|0;l=c[d+32>>2]|0;if((e|0)==(b|0)){d=b+268|0;h=c[d>>2]|0;a:do if((h|0)>0){k=b+276|0;g=c[k>>2]|0;m=0;while(1){n=g+(m<<2)|0;if((c[n>>2]|0)==(l|0))break;f=m+1|0;if((f|0)<(h|0))m=f;else{o=h;break a}}if((m|0)<(h|0)){f=l;i=h+-1|0;c[n>>2]=c[g+(i<<2)>>2];j=(c[k>>2]|0)+(i<<2)|0;a[j>>0]=f;a[j+1>>0]=f>>8;a[j+2>>0]=f>>16;a[j+3>>0]=f>>24;f=(c[d>>2]|0)+-1|0;c[d>>2]=f;o=f}else o=h}else o=h;while(0);c[b+260>>2]=(o|0)>0&1;return}else{o=l+268|0;b=c[o>>2]|0;b:do if((b|0)>0){h=l+276|0;d=c[h>>2]|0;n=0;while(1){p=d+(n<<2)|0;if((c[p>>2]|0)==(e|0))break;f=n+1|0;if((f|0)<(b|0))n=f;else{q=b;break b}}if((n|0)<(b|0)){k=e;g=b+-1|0;c[p>>2]=c[d+(g<<2)>>2];m=(c[h>>2]|0)+(g<<2)|0;a[m>>0]=k;a[m+1>>0]=k>>8;a[m+2>>0]=k>>16;a[m+3>>0]=k>>24;k=(c[o>>2]|0)+-1|0;c[o>>2]=k;q=k}else q=b}else q=b;while(0);c[l+260>>2]=(q|0)>0&1;return}}function di(a){a=a|0;return 488}function ei(a,b,e){a=a|0;b=b|0;e=e|0;Rj(a,b,e)|0;c[b+256>>2]=c[a+288>>2];c[b+260>>2]=c[a+292>>2];c[b+264>>2]=c[a+296>>2];c[b+268>>2]=c[a+300>>2];c[b+272>>2]=c[a+304>>2];c[b+276>>2]=c[a+308>>2];c[b+280>>2]=c[a+312>>2];c[b+284>>2]=c[a+316>>2];c[b+288>>2]=c[a+320>>2];c[b+292>>2]=c[a+324>>2];c[b+296>>2]=c[a+328>>2];c[b+300>>2]=c[a+332>>2];c[b+304>>2]=c[a+336>>2];c[b+308>>2]=c[a+340>>2];c[b+312>>2]=c[a+344>>2];c[b+316>>2]=c[a+348>>2];c[b+320>>2]=c[a+352>>2];c[b+324>>2]=c[a+356>>2];c[b+328>>2]=c[a+360>>2];c[b+332>>2]=c[a+364>>2];c[b+448>>2]=c[a+368>>2];c[b+336>>2]=c[a+568>>2];c[b+340>>2]=c[a+572>>2];c[b+344>>2]=c[a+576>>2];c[b+348>>2]=c[a+580>>2];c[b+352>>2]=c[a+372>>2];c[b+356>>2]=c[a+376>>2];c[b+360>>2]=c[a+380>>2];c[b+364>>2]=c[a+384>>2];c[b+368>>2]=c[a+388>>2];c[b+372>>2]=c[a+392>>2];c[b+376>>2]=c[a+396>>2];c[b+380>>2]=c[a+400>>2];c[b+384>>2]=c[a+404>>2];c[b+388>>2]=c[a+408>>2];c[b+392>>2]=c[a+412>>2];c[b+396>>2]=c[a+416>>2];c[b+400>>2]=c[a+420>>2];c[b+404>>2]=c[a+424>>2];c[b+408>>2]=c[a+428>>2];c[b+412>>2]=c[a+432>>2];c[b+416>>2]=c[a+436>>2];c[b+420>>2]=c[a+440>>2];c[b+424>>2]=c[a+444>>2];c[b+428>>2]=c[a+448>>2];c[b+432>>2]=c[a+452>>2];c[b+436>>2]=c[a+456>>2];c[b+440>>2]=c[a+460>>2];c[b+444>>2]=c[a+464>>2];c[b+452>>2]=c[a+468>>2];c[b+456>>2]=c[a+472>>2];c[b+484>>2]=d[a+476>>0];c[b+460>>2]=c[a+480>>2];c[b+464>>2]=c[a+484>>2];c[b+468>>2]=c[a+488>>2];c[b+472>>2]=c[a+492>>2];c[b+476>>2]=c[a+496>>2];c[b+480>>2]=c[a+500>>2];return 2584}function fi(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=c[(c[b>>2]|0)+16>>2]|0;e=Ob[c[(c[a>>2]|0)+16>>2]&127](a)|0;f=Wb[d&31](b,e,1)|0;e=Wb[c[(c[a>>2]|0)+20>>2]&31](a,c[f+8>>2]|0,b)|0;Ib[c[(c[b>>2]|0)+20>>2]&31](b,f,e,1497645650,a);return}function gi(b){b=b|0;var d=0,e=0,f=0,g=0;c[b>>2]=2512;d=b+512|0;e=b+520|0;f=c[e>>2]|0;g=b+524|0;if(f){if(a[g>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[f+-4>>2]|0);}c[e>>2]=0}a[g>>0]=1;c[e>>2]=0;c[d>>2]=0;c[b+516>>2]=0;c[b>>2]=4680;d=b+268|0;e=b+276|0;g=c[e>>2]|0;f=b+280|0;if(g){if(a[f>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[g+-4>>2]|0);}c[e>>2]=0}a[f>>0]=1;c[e>>2]=0;c[d>>2]=0;c[b+272>>2]=0;c[3710]=(c[3710]|0)+1;xs(c[b+-4>>2]|0);return}function hi(a,b){a=a|0;b=b|0;var d=0;d=a+284|0;c[d>>2]=(c[d>>2]|0)+1;c[a+192>>2]=b;c[a+200>>2]=b;return}function ii(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=c[a+268>>2]|0;a:do if((d|0)>0){e=c[a+276>>2]|0;f=0;while(1){if((c[e+(f<<2)>>2]|0)==(b|0)){g=f;break a}f=f+1|0;if((f|0)>=(d|0)){g=d;break}}}else g=d;while(0);return (g|0)>=(d|0)|0}function ji(b){b=b|0;var d=0,e=0,f=0,g=0,h=0;c[b>>2]=2616;d=b+136|0;e=b+144|0;f=c[e>>2]|0;g=b+148|0;if(f){if(a[g>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[f+-4>>2]|0);}c[e>>2]=0}a[g>>0]=1;c[e>>2]=0;c[d>>2]=0;c[b+140>>2]=0;d=b+68|0;e=b+76|0;g=c[e>>2]|0;f=b+80|0;if(g){if(a[f>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[g+-4>>2]|0);}c[e>>2]=0}a[f>>0]=1;c[e>>2]=0;c[d>>2]=0;c[b+72>>2]=0;d=b+48|0;e=b+56|0;f=c[e>>2]|0;g=b+60|0;if(f){if(a[g>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[f+-4>>2]|0);}c[e>>2]=0}a[g>>0]=1;c[e>>2]=0;c[d>>2]=0;c[b+52>>2]=0;d=b+28|0;e=b+36|0;g=c[e>>2]|0;f=b+40|0;if(g){if(a[f>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[g+-4>>2]|0);}c[e>>2]=0}a[f>>0]=1;c[e>>2]=0;c[d>>2]=0;c[b+32>>2]=0;d=b+8|0;e=b+16|0;f=c[e>>2]|0;g=b+20|0;if(!f){a[g>>0]=1;c[e>>2]=0;c[d>>2]=0;h=b+12|0;c[h>>2]=0;return}if(a[g>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[f+-4>>2]|0);}c[e>>2]=0;a[g>>0]=1;c[e>>2]=0;c[d>>2]=0;h=b+12|0;c[h>>2]=0;return}function ki(a){a=a|0;ji(a);xs(a);return}function li(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,h=0,j=0,k=0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0,r=0.0,s=0.0,t=0.0,u=0.0,v=0.0,w=0.0,x=0.0,y=0.0;f=i;i=i+64|0;h=f;a[d+84>>0]=0;j=b+4|0;c[h>>2]=c[j>>2];c[h+4>>2]=c[j+4>>2];c[h+8>>2]=c[j+8>>2];c[h+12>>2]=c[j+12>>2];j=h+16|0;k=b+20|0;c[j>>2]=c[k>>2];c[j+4>>2]=c[k+4>>2];c[j+8>>2]=c[k+8>>2];c[j+12>>2]=c[k+12>>2];k=h+32|0;j=b+36|0;c[k>>2]=c[j>>2];c[k+4>>2]=c[j+4>>2];c[k+8>>2]=c[j+8>>2];c[k+12>>2]=c[j+12>>2];j=h+48|0;k=b+52|0;c[j>>2]=c[k>>2];c[j+4>>2]=c[k+4>>2];c[j+8>>2]=c[k+8>>2];c[j+12>>2]=c[k+12>>2];if(e?(e=c[b+504>>2]|0,(e|0)!=0):0)Mb[c[(c[e>>2]|0)+8>>2]&127](e,h);l=+g[d+156>>2];m=+g[h>>2];n=+g[d+160>>2];o=+g[h+4>>2];p=+g[d+164>>2];q=+g[h+8>>2];r=+g[h+16>>2];s=+g[h+20>>2];t=+g[h+24>>2];u=+g[h+32>>2];v=+g[h+36>>2];w=+g[h+40>>2];x=l*r+n*s+p*t+ +g[h+52>>2];y=l*u+n*v+p*w+ +g[h+56>>2];g[d+36>>2]=l*m+n*o+p*q+ +g[h+48>>2];g[d+40>>2]=x;g[d+44>>2]=y;g[d+48>>2]=0.0;y=+g[d+172>>2];x=+g[d+176>>2];p=+g[d+180>>2];g[d+52>>2]=m*y+o*x+q*p;g[d+56>>2]=y*r+x*s+p*t;g[d+60>>2]=y*u+x*v+p*w;g[d+64>>2]=0.0;p=+g[d+188>>2];x=+g[d+192>>2];y=+g[d+196>>2];g[d+68>>2]=m*p+o*x+q*y;g[d+72>>2]=p*r+x*s+y*t;g[d+76>>2]=p*u+x*v+y*w;g[d+80>>2]=0.0;i=f;return}function mi(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0.0,f=0.0,h=0.0,i=0.0,j=0,k=0.0,l=0.0,m=0,n=0.0,o=0,p=0.0,q=0.0,r=0,s=0.0,t=0.0,u=0.0,v=0.0,w=0.0,x=0.0,y=0.0,z=0.0,A=0.0,B=0.0,C=0.0,D=0.0,E=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;li(a,b+(c*284|0)|0,d);d=b+(c*284|0)+52|0;e=+g[d>>2];f=-e;a=b+(c*284|0)+56|0;h=+g[a>>2];i=-h;j=b+(c*284|0)+60|0;k=+g[j>>2];l=-k;m=b+(c*284|0)+76|0;n=+g[m>>2];o=b+(c*284|0)+72|0;p=+g[o>>2];q=n*i-p*l;r=b+(c*284|0)+68|0;s=+g[r>>2];t=s*l-n*f;u=p*f-s*i;v=1.0/+P(+(u*u+(q*q+t*t)));w=q*v;q=v*t;t=v*u;u=+g[b+(c*284|0)+232>>2]*.5;v=+S(+u)/+P(+(e*e+h*h+k*k));k=v*f;h=v*i;e=v*l;v=+R(+u);u=2.0/(v*v+(e*e+(k*k+h*h)));x=k*u;y=h*u;z=e*u;u=v*x;A=v*y;B=v*z;v=k*x;x=k*y;C=k*z;k=h*y;y=h*z;h=e*z;z=1.0-(k+h);e=x-B;D=C+A;E=x+B;B=1.0-(v+h);h=y-u;x=C-A;A=y+u;u=1.0-(v+k);k=+g[b+(c*284|0)+236>>2]*-.5;v=+S(+k)/+P(+(n*n+(p*p+s*s)));y=s*v;s=p*v;p=n*v;v=+R(+k);k=2.0/(v*v+(p*p+(y*y+s*s)));n=y*k;C=s*k;F=p*k;k=v*n;G=v*C;H=v*F;v=y*n;n=y*C;I=y*F;y=s*C;C=s*F;s=p*F;F=1.0-(y+s);p=n-H;J=I+G;K=n+H;H=1.0-(v+s);s=C-k;n=I-G;G=C+k;k=1.0-(v+y);y=+g[r>>2];v=+g[o>>2];C=+g[m>>2];I=D*n+(e*K+z*F);L=D*G+(z*p+e*H);M=z*J+e*s+D*k;D=h*n+(B*K+E*F);e=h*G+(E*p+B*H);z=E*J+B*s+h*k;h=u*n+(A*K+x*F);F=u*G+(x*p+A*H);H=x*J+A*s+u*k;g[b+(c*284|0)+92>>2]=C*M+(y*I+v*L);g[b+(c*284|0)+96>>2]=t*M+(w*I+q*L);g[b+(c*284|0)+100>>2]=M*l+(I*f+L*i);g[b+(c*284|0)+104>>2]=0.0;g[b+(c*284|0)+108>>2]=C*z+(y*D+v*e);g[b+(c*284|0)+112>>2]=t*z+(w*D+q*e);g[b+(c*284|0)+116>>2]=z*l+(D*f+e*i);g[b+(c*284|0)+120>>2]=0.0;g[b+(c*284|0)+124>>2]=C*H+(y*h+v*F);g[b+(c*284|0)+128>>2]=t*H+(w*h+q*F);g[b+(c*284|0)+132>>2]=H*l+(h*f+F*i);g[b+(c*284|0)+136>>2]=0.0;i=+g[b+(c*284|0)+32>>2];F=i*+g[a>>2]+ +g[b+(c*284|0)+40>>2];f=i*+g[j>>2]+ +g[b+(c*284|0)+44>>2];g[b+(c*284|0)+140>>2]=+g[d>>2]*i+ +g[b+(c*284|0)+36>>2];g[b+(c*284|0)+144>>2]=F;g[b+(c*284|0)+148>>2]=f;g[b+(c*284|0)+152>>2]=0.0;return}function ni(b,d){b=b|0;d=+d;var e=0,f=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0.0,u=0.0,v=0.0,w=0.0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0.0,O=0.0,Q=0.0,R=0.0,S=0.0,T=0.0,U=0.0,V=0.0,W=0.0,X=0,Y=0,Z=0.0,_=0.0;e=i;i=i+96|0;f=e+72|0;h=e+32|0;j=e+16|0;k=e;l=b+136|0;m=c[l>>2]|0;n=b+116|0;if((m|0)>0){o=b+144|0;p=0;do{mi(c[n>>2]|0,c[o>>2]|0,p,0);p=p+1|0;q=c[l>>2]|0}while((p|0)<(q|0));r=n;s=q}else{r=n;s=m}m=c[r>>2]|0;n=m+336|0;t=+g[n>>2];p=m+340|0;u=+g[p>>2];o=m+344|0;v=+g[o>>2];w=+P(+(t*t+u*u+v*v))*3.5999999046325684;q=b+112|0;g[q>>2]=w;x=b+128|0;y=c[x>>2]|0;if(+g[m+4+(y<<2)>>2]*+g[n>>2]+ +g[m+20+(y<<2)>>2]*+g[p>>2]+ +g[m+36+(y<<2)>>2]*+g[o>>2]<0.0)g[q>>2]=-w;a:do if((s|0)>0){q=b+144|0;o=h+32|0;y=b+100|0;p=h+16|0;n=0;z=m;do{A=c[q>>2]|0;B=A+(n*284|0)|0;li(z,B,0);C=A+(n*284|0)+204|0;D=A+(n*284|0)+212|0;w=+g[C>>2]+ +g[D>>2];E=A+(n*284|0)+52|0;F=A+(n*284|0)+56|0;G=A+(n*284|0)+60|0;H=A+(n*284|0)+36|0;I=A+(n*284|0)+16|0;v=w*+g[F>>2]+ +g[A+(n*284|0)+40>>2];u=w*+g[G>>2]+ +g[A+(n*284|0)+44>>2];g[A+(n*284|0)+16>>2]=+g[E>>2]*w+ +g[H>>2];J=A+(n*284|0)+20|0;g[J>>2]=v;K=A+(n*284|0)+24|0;g[K>>2]=u;g[A+(n*284|0)+28>>2]=0.0;g[o>>2]=-1.0;L=c[y>>2]|0;M=Sb[c[(c[L>>2]|0)+8>>2]&31](L,H,I,h)|0;H=A+(n*284|0)+88|0;c[H>>2]=0;do if(M){u=w*+g[o>>2];c[B>>2]=c[p>>2];c[B+4>>2]=c[p+4>>2];c[B+8>>2]=c[p+8>>2];c[B+12>>2]=c[p+12>>2];a[A+(n*284|0)+84>>0]=1;if((a[2760]|0)==0?(Va(2760)|0)!=0:0){c[f>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;c[f+12>>2]=0;$h(2768,0.0,0,0,f);$a(2760);}c[743]=c[743]|1;g[784]=0.0;v=+g[794]*0.0;t=+g[795]*0.0;g[789]=+g[793]*0.0;g[790]=v;g[791]=t;g[792]=0.0;c[797]=0;c[798]=0;c[799]=0;c[800]=0;t=+g[786]*0.0;v=+g[787]*0.0;g[838]=+g[785]*0.0;g[839]=t;g[840]=v;g[841]=0.0;c[H>>2]=2768;v=u-+g[D>>2];L=A+(n*284|0)+32|0;g[L>>2]=v;u=+g[C>>2];t=+g[A+(n*284|0)+208>>2]*.009999999776482582;N=u-t;O=u+t;if(v<N){g[L>>2]=N;Q=N}else Q=v;if(Q>O)g[L>>2]=O;c[I>>2]=c[h>>2];c[I+4>>2]=c[h+4>>2];c[I+8>>2]=c[h+8>>2];c[I+12>>2]=c[h+12>>2];O=+g[B>>2];v=+g[A+(n*284|0)+4>>2];N=+g[A+(n*284|0)+8>>2];t=O*+g[E>>2]+v*+g[F>>2]+N*+g[G>>2];L=c[r>>2]|0;u=+g[I>>2]-+g[L+52>>2];R=+g[J>>2]-+g[L+56>>2];S=+g[K>>2]-+g[L+60>>2];T=+g[L+356>>2];U=+g[L+360>>2];V=+g[L+352>>2];if(!(t>=-.10000000149011612)){W=-1.0/t;g[A+(n*284|0)+272>>2]=W*(O*(T*S-R*U+ +g[L+336>>2])+v*(u*U-S*V+ +g[L+340>>2])+N*(R*V-u*T+ +g[L+344>>2]));g[A+(n*284|0)+268>>2]=W;break}else{g[A+(n*284|0)+272>>2]=0.0;g[A+(n*284|0)+268>>2]=10.0;break}}else{c[A+(n*284|0)+32>>2]=c[C>>2];g[A+(n*284|0)+272>>2]=0.0;W=-+g[F>>2];T=-+g[G>>2];g[B>>2]=-+g[E>>2];g[A+(n*284|0)+4>>2]=W;g[A+(n*284|0)+8>>2]=T;g[A+(n*284|0)+12>>2]=0.0;g[A+(n*284|0)+268>>2]=1.0}while(0);n=n+1|0;X=c[l>>2]|0;z=c[r>>2]|0}while((n|0)<(X|0));w=1.0/+g[z+368>>2];if((X|0)>0){n=c[q>>2]|0;p=0;do{if(a[n+(p*284|0)+84>>0]|0){T=+g[n+(p*284|0)+272>>2];W=w*(+g[n+(p*284|0)+216>>2]*(+g[n+(p*284|0)+204>>2]-+g[n+(p*284|0)+32>>2])*+g[n+(p*284|0)+268>>2]-T*+g[(T<0.0?n+(p*284|0)+220|0:n+(p*284|0)+224|0)>>2]);o=n+(p*284|0)+276|0;g[o>>2]=W;if(W<0.0)g[o>>2]=0.0}else g[n+(p*284|0)+276>>2]=0.0;p=p+1|0}while((p|0)!=(X|0));p=j+4|0;o=j+8|0;y=j+12|0;A=k+4|0;E=k+8|0;B=k+12|0;G=n;F=z;C=0;while(1){w=+g[G+(C*284|0)+276>>2];W=+g[G+(C*284|0)+248>>2];T=w>W?W:w;w=T*+g[G+(C*284|0)+4>>2]*d;W=T*+g[G+(C*284|0)+8>>2]*d;g[j>>2]=+g[G+(C*284|0)>>2]*T*d;g[p>>2]=w;g[o>>2]=W;g[y>>2]=0.0;W=+g[G+(C*284|0)+20>>2]-+g[F+56>>2];w=+g[G+(C*284|0)+24>>2]-+g[F+60>>2];g[k>>2]=+g[G+(C*284|0)+16>>2]-+g[F+52>>2];g[A>>2]=W;g[E>>2]=w;g[B>>2]=0.0;jf(F,j,k);K=C+1|0;if((K|0)>=(c[l>>2]|0))break a;G=c[q>>2]|0;F=c[r>>2]|0;C=K}}}while(0);Jb[c[(c[b>>2]|0)+20>>2]&31](b,d);k=c[l>>2]|0;if((k|0)<=0){i=e;return}l=c[b+144>>2]|0;b=c[r>>2]|0;r=b+52|0;j=b+56|0;X=b+60|0;h=b+356|0;f=b+360|0;m=b+352|0;s=b+344|0;C=b+340|0;F=b+336|0;q=0;do{Q=+g[l+(q*284|0)+36>>2]-+g[r>>2];w=+g[l+(q*284|0)+40>>2]-+g[j>>2];W=+g[l+(q*284|0)+44>>2]-+g[X>>2];T=+g[h>>2];u=+g[f>>2];V=+g[m>>2];if(!(a[l+(q*284|0)+84>>0]|0)){G=l+(q*284|0)+240|0;R=+g[G>>2];B=l+(q*284|0)+236|0;g[B>>2]=R+ +g[B>>2];Y=G;Z=R}else{G=c[x>>2]|0;R=+g[b+4+(G<<2)>>2];N=+g[b+20+(G<<2)>>2];S=+g[b+36+(G<<2)>>2];U=+g[l+(q*284|0)>>2];v=+g[l+(q*284|0)+4>>2];O=+g[l+(q*284|0)+8>>2];t=R*U+N*v+S*O;_=((w*V-Q*T+ +g[s>>2])*(S-O*t)+((T*W-w*u+ +g[F>>2])*(R-U*t)+(Q*u-W*V+ +g[C>>2])*(N-v*t)))*d/+g[l+(q*284|0)+212>>2];G=l+(q*284|0)+240|0;g[G>>2]=_;B=l+(q*284|0)+236|0;g[B>>2]=_+ +g[B>>2];Y=G;Z=_}g[Y>>2]=Z*.9900000095367432;q=q+1|0}while((q|0)!=(k|0));i=e;return}function oi(b,d){b=b|0;d=+d;var e=0,f=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0.0,J=0.0,K=0.0,L=0,M=0.0,N=0,O=0.0,Q=0.0,R=0.0,S=0.0,T=0.0,U=0.0,V=0.0,W=0.0,X=0.0,Y=0.0,Z=0.0,_=0.0,$=0.0,aa=0.0,ba=0.0,ca=0.0,da=0.0,ea=0.0,fa=0.0,ga=0.0,ha=0.0,ia=0,ja=0.0,ka=0.0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0;e=i;i=i+160|0;f=e+144|0;h=e+128|0;j=e+80|0;k=e+64|0;l=e+48|0;m=e+32|0;n=e+16|0;o=e;p=b+136|0;q=c[p>>2]|0;if(!q){i=e;return}r=b+8|0;s=c[r>>2]|0;if((s|0)<(q|0)){t=b+12|0;if((c[t>>2]|0)<(q|0)){c[3708]=(c[3708]|0)+1;u=ws((q<<4|3)+16|0)|0;if(!u)v=0;else{w=u+4+15&-16;c[w+-4>>2]=u;v=w}w=c[r>>2]|0;u=b+16|0;if((w|0)>0){x=0;do{y=v+(x<<4)|0;z=(c[u>>2]|0)+(x<<4)|0;c[y>>2]=c[z>>2];c[y+4>>2]=c[z+4>>2];c[y+8>>2]=c[z+8>>2];c[y+12>>2]=c[z+12>>2];x=x+1|0}while((x|0)!=(w|0));}w=c[u>>2]|0;x=b+20|0;if(w){if(a[x>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[w+-4>>2]|0);}c[u>>2]=0}a[x>>0]=1;c[u>>2]=v;c[t>>2]=q;A=u}else A=b+16|0;u=s;do{s=(c[A>>2]|0)+(u<<4)|0;c[s>>2]=c[f>>2];c[s+4>>2]=c[f+4>>2];c[s+8>>2]=c[f+8>>2];c[s+12>>2]=c[f+12>>2];u=u+1|0}while((u|0)!=(q|0));}c[r>>2]=q;r=b+28|0;u=c[r>>2]|0;if((u|0)<(q|0)){f=b+32|0;if((c[f>>2]|0)<(q|0)){c[3708]=(c[3708]|0)+1;A=ws((q<<4|3)+16|0)|0;if(!A)B=0;else{s=A+4+15&-16;c[s+-4>>2]=A;B=s}s=c[r>>2]|0;A=b+36|0;if((s|0)>0){t=0;do{v=B+(t<<4)|0;x=(c[A>>2]|0)+(t<<4)|0;c[v>>2]=c[x>>2];c[v+4>>2]=c[x+4>>2];c[v+8>>2]=c[x+8>>2];c[v+12>>2]=c[x+12>>2];t=t+1|0}while((t|0)!=(s|0));}s=c[A>>2]|0;t=b+40|0;if(s){if(a[t>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[s+-4>>2]|0);}c[A>>2]=0}a[t>>0]=1;c[A>>2]=B;c[f>>2]=q;C=A}else C=b+36|0;A=u;do{u=(c[C>>2]|0)+(A<<4)|0;c[u>>2]=c[h>>2];c[u+4>>2]=c[h+4>>2];c[u+8>>2]=c[h+8>>2];c[u+12>>2]=c[h+12>>2];A=A+1|0}while((A|0)!=(q|0));}c[r>>2]=q;r=b+48|0;A=c[r>>2]|0;if((q|0)>(A|0)){h=b+52|0;do if((c[h>>2]|0)<(q|0)){c[3708]=(c[3708]|0)+1;C=ws((q<<2|3)+16|0)|0;if(!C)D=0;else{u=C+4+15&-16;c[u+-4>>2]=C;D=u}u=c[r>>2]|0;C=b+56|0;f=c[C>>2]|0;if((u|0)<=0){if(!f){a[b+60>>0]=1;c[C>>2]=D;c[h>>2]=q;E=D;break}}else{B=0;do{c[D+(B<<2)>>2]=c[f+(B<<2)>>2];B=B+1|0}while((B|0)!=(u|0));}u=b+60|0;if(a[u>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[f+-4>>2]|0);}a[u>>0]=1;c[C>>2]=D;c[h>>2]=q;E=D}else E=c[b+56>>2]|0;while(0);Cs(E+(A<<2)|0,0,q-A<<2|0)|0}c[r>>2]=q;r=b+68|0;A=c[r>>2]|0;if((q|0)>(A|0)){E=b+72|0;do if((c[E>>2]|0)<(q|0)){c[3708]=(c[3708]|0)+1;D=ws((q<<2|3)+16|0)|0;if(!D)F=0;else{h=D+4+15&-16;c[h+-4>>2]=D;F=h}h=c[r>>2]|0;D=b+76|0;u=c[D>>2]|0;if((h|0)<=0){if(!u){a[b+80>>0]=1;c[D>>2]=F;c[E>>2]=q;G=F;break}}else{B=0;do{c[F+(B<<2)>>2]=c[u+(B<<2)>>2];B=B+1|0}while((B|0)!=(h|0));}h=b+80|0;if(a[h>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[u+-4>>2]|0);}a[h>>0]=1;c[D>>2]=F;c[E>>2]=q;G=F}else G=c[b+76>>2]|0;while(0);Cs(G+(A<<2)|0,0,q-A<<2|0)|0}c[r>>2]=q;q=c[p>>2]|0;if((q|0)<=0){i=e;return}r=b+76|0;A=c[r>>2]|0;G=b+56|0;F=c[G>>2]|0;E=0;do{g[A+(E<<2)>>2]=0.0;g[F+(E<<2)>>2]=0.0;E=E+1|0}while((E|0)!=(q|0));E=b+144|0;F=j+16|0;A=j+32|0;h=b+36|0;B=b+120|0;C=b+16|0;f=b+116|0;t=q;q=0;while(1){s=c[E>>2]|0;x=c[s+(q*284|0)+88>>2]|0;if(!x)H=t;else{v=s+(q*284|0)+92|0;c[j>>2]=c[v>>2];c[j+4>>2]=c[v+4>>2];c[j+8>>2]=c[v+8>>2];c[j+12>>2]=c[v+12>>2];v=s+(q*284|0)+108|0;c[F>>2]=c[v>>2];c[F+4>>2]=c[v+4>>2];c[F+8>>2]=c[v+8>>2];c[F+12>>2]=c[v+12>>2];v=s+(q*284|0)+124|0;c[A>>2]=c[v>>2];c[A+4>>2]=c[v+4>>2];c[A+8>>2]=c[v+8>>2];c[A+12>>2]=c[v+12>>2];v=c[h>>2]|0;w=c[B>>2]|0;z=c[j+16+(w<<2)>>2]|0;y=c[j+32+(w<<2)>>2]|0;c[v+(q<<4)>>2]=c[j+(w<<2)>>2];c[v+(q<<4)+4>>2]=z;c[v+(q<<4)+8>>2]=y;g[v+(q<<4)+12>>2]=0.0;v=c[h>>2]|0;y=v+(q<<4)|0;I=+g[y>>2];z=s+(q*284|0)|0;J=+g[z>>2];w=v+(q<<4)+4|0;K=+g[w>>2];L=s+(q*284|0)+4|0;M=+g[L>>2];N=v+(q<<4)+8|0;O=+g[N>>2];v=s+(q*284|0)+8|0;Q=+g[v>>2];R=I*J+K*M+O*Q;S=I-J*R;J=K-M*R;M=O-Q*R;R=1.0/+P(+(S*S+J*J+M*M));Q=S*R;g[y>>2]=Q;S=J*R;g[w>>2]=S;J=M*R;g[N>>2]=J;N=c[C>>2]|0;R=+g[L>>2];M=+g[v>>2];O=+g[z>>2];g[N+(q<<4)>>2]=R*J-M*S;g[N+(q<<4)+4>>2]=M*Q-J*O;g[N+(q<<4)+8>>2]=S*O-R*Q;g[N+(q<<4)+12>>2]=0.0;N=c[C>>2]|0;z=N+(q<<4)|0;Q=+g[z>>2];v=N+(q<<4)+4|0;R=+g[v>>2];L=N+(q<<4)+8|0;O=+g[L>>2];S=1.0/+P(+(Q*Q+R*R+O*O));g[z>>2]=Q*S;g[v>>2]=R*S;g[L>>2]=O*S;L=c[f>>2]|0;v=c[h>>2]|0;S=+g[v+(q<<4)>>2];O=+g[v+(q<<4)+4>>2];R=+g[v+(q<<4)+8>>2];if(S*S+O*O+R*R>1.100000023841858)T=0.0;else{Q=+g[s+(q*284|0)+16>>2];J=Q-+g[L+52>>2];M=+g[s+(q*284|0)+20>>2];K=M-+g[L+56>>2];I=+g[s+(q*284|0)+24>>2];U=I-+g[L+60>>2];V=Q-+g[x+52>>2];Q=M-+g[x+56>>2];M=I-+g[x+60>>2];I=+g[L+356>>2];W=+g[L+360>>2];X=+g[L+352>>2];Y=+g[x+356>>2];Z=+g[x+360>>2];_=+g[x+352>>2];$=R*K-O*U;aa=S*U-R*J;ba=O*J-S*K;ca=$*+g[L+4>>2]+aa*+g[L+20>>2]+ba*+g[L+36>>2];da=$*+g[L+8>>2]+aa*+g[L+24>>2]+ba*+g[L+40>>2];ea=$*+g[L+12>>2]+aa*+g[L+28>>2]+ba*+g[L+44>>2];ba=-S;aa=-O;$=-R;fa=Q*$-M*aa;ga=M*ba-V*$;$=V*aa-Q*ba;ba=fa*+g[x+4>>2]+ga*+g[x+20>>2]+$*+g[x+36>>2];aa=fa*+g[x+8>>2]+ga*+g[x+24>>2]+$*+g[x+40>>2];ha=fa*+g[x+12>>2]+ga*+g[x+28>>2]+$*+g[x+44>>2];T=(S*(U*I-K*W+ +g[L+336>>2]-(M*Y-Q*Z+ +g[x+336>>2]))+O*(+g[L+340>>2]+(J*W-U*X)-(+g[x+340>>2]+(V*Z-M*_)))+R*(K*X-J*I+ +g[L+344>>2]-(Q*_-V*Y+ +g[x+344>>2])))*-.20000000298023224*(1.0/(+g[x+368>>2]+(+g[L+368>>2]+(ca*(ca*+g[L+420>>2])+da*(da*+g[L+424>>2])+ea*(ea*+g[L+428>>2])))+(ba*(ba*+g[x+420>>2])+aa*(aa*+g[x+424>>2])+ha*(ha*+g[x+428>>2]))));}g[(c[r>>2]|0)+(q<<2)>>2]=T;H=c[p>>2]|0}q=q+1|0;if((q|0)>=(H|0))break;else t=H}if((H|0)<=0){i=e;return}H=c[E>>2]|0;t=0;q=0;while(1){j=c[H+(q*284|0)+88>>2]|0;if(j){T=+g[H+(q*284|0)+252>>2];if(T!=0.0){ia=H;ja=T*d}else{T=+g[H+(q*284|0)+256>>2];ha=T==0.0?0.0:T;B=c[f>>2]|0;A=c[C>>2]|0;T=+g[H+(q*284|0)+16>>2];aa=+g[H+(q*284|0)+20>>2];ba=+g[H+(q*284|0)+24>>2];ea=+g[A+(q<<4)>>2];da=+g[A+(q<<4)+4>>2];ca=+g[A+(q<<4)+8>>2];A=B+52|0;Y=T-+g[A>>2];F=B+56|0;V=aa-+g[F>>2];x=B+60|0;_=ba-+g[x>>2];Q=V*ca-_*da;I=_*ea-Y*ca;J=Y*da-V*ea;X=+g[B+288>>2]*Q+ +g[B+304>>2]*I+J*+g[B+320>>2];K=Q*+g[B+292>>2]+I*+g[B+308>>2]+J*+g[B+324>>2];R=Q*+g[B+296>>2]+I*+g[B+312>>2]+J*+g[B+328>>2];J=T-+g[j+52>>2];I=aa-+g[j+56>>2];Q=ba-+g[j+60>>2];M=ca*I-da*Q;Z=ea*Q-ca*J;U=da*J-ea*I;W=U*+g[j+320>>2]+(+g[j+288>>2]*M+ +g[j+304>>2]*Z);O=M*+g[j+292>>2]+Z*+g[j+308>>2]+U*+g[j+324>>2];S=M*+g[j+296>>2]+Z*+g[j+312>>2]+U*+g[j+328>>2];U=T-+g[A>>2];T=aa-+g[F>>2];aa=ba-+g[x>>2];ba=+g[B+356>>2];Z=+g[B+360>>2];M=+g[B+352>>2];$=+g[j+356>>2];ga=+g[j+360>>2];fa=+g[j+352>>2];ka=-(1.0/(+g[B+368>>2]+(ca*(V*X-Y*K)+(ea*(_*K-V*R)+da*(Y*R-_*X)))+(+g[j+368>>2]+(ca*(I*W-J*O)+(ea*(Q*O-I*S)+da*(J*S-Q*W)))))*((aa*ba-T*Z+ +g[B+336>>2]-(Q*$-I*ga+ +g[j+336>>2]))*ea+(+g[B+340>>2]+(U*Z-aa*M)-(+g[j+340>>2]+(J*ga-Q*fa)))*da+(T*M-U*ba+ +g[B+344>>2]-(I*fa-J*$+ +g[j+344>>2]))*ca));ca=ha<ka?ha:ka;ka=-ha;ia=c[E>>2]|0;ja=ca<ka?ka:ca}j=c[G>>2]|0;B=j+(q<<2)|0;g[B>>2]=0.0;x=ia+(q*284|0)+280|0;g[x>>2]=1.0;ca=+g[H+(q*284|0)+276>>2]*d*+g[H+(q*284|0)+228>>2];g[B>>2]=ja;ka=ja*.5;ha=+g[(c[r>>2]|0)+(q<<2)>>2];$=ka*ka+ha*ha;if($>ca*ca){ha=ca/+P(+$);g[x>>2]=ha*+g[x>>2];la=ia;ma=j;na=1}else{la=ia;ma=j;na=t}}else{j=c[G>>2]|0;g[j+(q<<2)>>2]=0.0;g[H+(q*284|0)+280>>2]=1.0;la=H;ma=j;na=t}q=q+1|0;oa=c[p>>2]|0;if((q|0)>=(oa|0))break;else{H=la;t=na}}if(na){if((oa|0)<=0){i=e;return}na=c[r>>2]|0;t=0;do{H=na+(t<<2)|0;if(+g[H>>2]!=0.0?(q=la+(t*284|0)+280|0,ja=+g[q>>2],ja<1.0):0){ia=ma+(t<<2)|0;g[ia>>2]=ja*+g[ia>>2];g[H>>2]=+g[q>>2]*+g[H>>2]}t=t+1|0}while((t|0)!=(oa|0));}if((oa|0)<=0){i=e;return}oa=k+4|0;t=k+8|0;na=k+12|0;H=l+4|0;q=l+8|0;ia=l+12|0;j=m+4|0;x=m+8|0;B=m+12|0;F=n+4|0;A=n+8|0;L=n+12|0;s=b+124|0;b=o+4|0;v=o+8|0;z=o+12|0;N=la;la=ma;ma=0;while(1){w=c[f>>2]|0;y=N+(ma*284|0)+16|0;ja=+g[y>>2]-+g[w+52>>2];pa=N+(ma*284|0)+20|0;d=+g[pa>>2]-+g[w+56>>2];qa=N+(ma*284|0)+24|0;ha=+g[qa>>2]-+g[w+60>>2];g[k>>2]=ja;g[oa>>2]=d;g[t>>2]=ha;g[na>>2]=0.0;$=+g[la+(ma<<2)>>2];if($!=0.0){ra=c[C>>2]|0;ca=$*+g[ra+(ma<<4)+4>>2];ka=$*+g[ra+(ma<<4)+8>>2];g[l>>2]=$*+g[ra+(ma<<4)>>2];g[H>>2]=ca;g[q>>2]=ka;g[ia>>2]=0.0;jf(w,l,k);}ka=+g[(c[r>>2]|0)+(ma<<2)>>2];if(ka!=0.0){w=c[(c[E>>2]|0)+(ma*284|0)+88>>2]|0;ca=+g[pa>>2]-+g[w+56>>2];$=+g[qa>>2]-+g[w+60>>2];g[m>>2]=+g[y>>2]-+g[w+52>>2];g[j>>2]=ca;g[x>>2]=$;g[B>>2]=0.0;y=c[h>>2]|0;$=+g[y+(ma<<4)>>2]*ka;ca=ka*+g[y+(ma<<4)+4>>2];J=ka*+g[y+(ma<<4)+8>>2];g[n>>2]=$;g[F>>2]=ca;g[A>>2]=J;g[L>>2]=0.0;y=c[f>>2]|0;qa=c[s>>2]|0;ka=+g[y+4+(qa<<2)>>2];fa=+g[y+20+(qa<<2)>>2];I=+g[y+36+(qa<<2)>>2];ba=(ka*ja+fa*d+I*ha)*(1.0-+g[N+(ma*284|0)+244>>2]);g[k>>2]=ja-ka*ba;g[oa>>2]=d-fa*ba;g[t>>2]=ha-I*ba;jf(y,n,k);g[o>>2]=-$;g[b>>2]=-ca;g[v>>2]=-J;g[z>>2]=0.0;jf(w,o,m);}w=ma+1|0;if((w|0)>=(c[p>>2]|0))break;N=c[E>>2]|0;la=c[G>>2]|0;ma=w}i=e;return}function pi(b,d){b=b|0;d=d|0;var e=0,f=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0.0,z=0.0;e=i;i=i+48|0;f=e+32|0;h=e+16|0;j=e;k=b+136|0;if((c[k>>2]|0)<=0){i=e;return}l=f+4|0;m=f+8|0;n=f+12|0;o=b+144|0;p=b+120|0;b=h+4|0;q=h+8|0;r=j+4|0;s=j+8|0;t=j+12|0;u=0;do{v=c[o>>2]|0;c[f>>2]=(a[v+(u*284|0)+84>>0]|0)==0?1065353216:0;c[l>>2]=0;c[m>>2]=1065353216;g[n>>2]=0.0;w=v+(u*284|0)+140|0;c[h>>2]=c[w>>2];c[h+4>>2]=c[w+4>>2];c[h+8>>2]=c[w+8>>2];c[h+12>>2]=c[w+12>>2];w=c[p>>2]|0;x=c[(c[d>>2]|0)+8>>2]|0;y=+g[v+(u*284|0)+108+(w<<2)>>2]+ +g[b>>2];z=+g[v+(u*284|0)+124+(w<<2)>>2]+ +g[q>>2];g[j>>2]=+g[v+(u*284|0)+92+(w<<2)>>2]+ +g[h>>2];g[r>>2]=y;g[s>>2]=z;g[t>>2]=0.0;tc[x&63](d,h,j,f);tc[c[(c[d>>2]|0)+8>>2]&63](d,h,(c[o>>2]|0)+(u*284|0)+16|0,f);u=u+1|0}while((u|0)<(c[k>>2]|0));i=e;return}function qi(a,d,e,f){a=a|0;d=d|0;e=e|0;f=f|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0.0,p=0.0,q=0.0,r=0.0;h=i;i=i+96|0;j=h;k=j+4|0;g[k>>2]=1.0;l=j+8|0;c[l>>2]=0;b[j+12>>1]=1;b[j+14>>1]=-1;c[j+16>>2]=0;c[j>>2]=3416;m=j+20|0;c[m>>2]=c[d>>2];c[m+4>>2]=c[d+4>>2];c[m+8>>2]=c[d+8>>2];c[m+12>>2]=c[d+12>>2];m=j+36|0;c[m>>2]=c[e>>2];c[m+4>>2]=c[e+4>>2];c[m+8>>2]=c[e+8>>2];c[m+12>>2]=c[e+12>>2];m=c[a+4>>2]|0;tc[c[(c[m>>2]|0)+32>>2]&63](m,d,e,j);e=c[l>>2]|0;if(!e){n=0;i=h;return n|0}if(!(c[e+236>>2]&2)){n=0;i=h;return n|0}if(c[e+204>>2]&4){n=0;i=h;return n|0}l=j+68|0;c[f>>2]=c[l>>2];c[f+4>>2]=c[l+4>>2];c[f+8>>2]=c[l+8>>2];c[f+12>>2]=c[l+12>>2];l=f+16|0;d=j+52|0;c[l>>2]=c[d>>2];c[l+4>>2]=c[d+4>>2];c[l+8>>2]=c[d+8>>2];c[l+12>>2]=c[d+12>>2];o=+g[l>>2];d=f+20|0;p=+g[d>>2];j=f+24|0;q=+g[j>>2];r=1.0/+P(+(o*o+p*p+q*q));g[l>>2]=o*r;g[d>>2]=p*r;g[j>>2]=q*r;c[f+32>>2]=c[k>>2];n=e;i=h;return n|0}function ri(a,b,d){a=a|0;b=b|0;d=+d;Jb[c[(c[a>>2]|0)+16>>2]&31](a,d);return}function si(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;c[a+120>>2]=b;c[a+124>>2]=d;c[a+128>>2]=e;return}function ti(a){a=a|0;return}function ui(a){a=a|0;xs(a);return}function vi(a){a=a|0;xs(a);return}function wi(b){b=b|0;var d=0,e=0;c[b>>2]=3472;if((a[b+192>>0]|0)!=0?(d=b+136|0,e=c[d>>2]|0,Kb[c[c[e>>2]>>2]&255](e),e=c[d>>2]|0,(e|0)!=0):0){c[3710]=(c[3710]|0)+1;xs(c[e+-4>>2]|0);}Xp(b+64|0);Xp(b+4|0);return}function xi(a){a=a|0;wi(a);xs(a);return}function yi(d,e,f,g,h,j,k,l,m){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;var n=0,o=0,p=0,q=0,r=0,s=0;m=i;i=i+48|0;l=m+16|0;g=m;c[3708]=(c[3708]|0)+1;n=ws(83)|0;if(!n)o=0;else{p=n+4+15&-16;c[p+-4>>2]=n;o=p}c[o>>2]=h;b[o+4>>1]=j;b[o+6>>1]=k;k=o+16|0;c[k>>2]=c[e>>2];c[k+4>>2]=c[e+4>>2];c[k+8>>2]=c[e+8>>2];c[k+12>>2]=c[e+12>>2];k=o+32|0;c[k>>2]=c[f>>2];c[k+4>>2]=c[f+4>>2];c[k+8>>2]=c[f+8>>2];c[k+12>>2]=c[f+12>>2];c[o+8>>2]=0;k=o+56|0;c[k>>2]=0;j=o+52|0;c[j>>2]=0;c[l>>2]=c[e>>2];c[l+4>>2]=c[e+4>>2];c[l+8>>2]=c[e+8>>2];c[l+12>>2]=c[e+12>>2];e=l+16|0;c[e>>2]=c[f>>2];c[e+4>>2]=c[f+4>>2];c[e+8>>2]=c[f+8>>2];c[e+12>>2]=c[f+12>>2];f=d+144|0;c[o+60>>2]=c[f>>2];e=d+188|0;h=(c[e>>2]|0)+1|0;c[e>>2]=h;c[o+12>>2]=h;h=d+4|0;e=d+8|0;p=c[e>>2]|0;if(!p){c[3708]=(c[3708]|0)+1;n=ws(63)|0;if(!n)q=0;else{r=n+4+15&-16;c[r+-4>>2]=n;q=r}r=q;n=r+44|0;do{c[r>>2]=0;r=r+4|0}while((r|0)<(n|0));s=q}else{c[e>>2]=0;s=p}c[s+32>>2]=0;c[s+36>>2]=o;c[s+40>>2]=0;c[s>>2]=c[l>>2];c[s+4>>2]=c[l+4>>2];c[s+8>>2]=c[l+8>>2];c[s+12>>2]=c[l+12>>2];c[s+16>>2]=c[l+16>>2];c[s+20>>2]=c[l+20>>2];c[s+24>>2]=c[l+24>>2];c[s+28>>2]=c[l+28>>2];$p(h,c[h>>2]|0,s);p=d+16|0;c[p>>2]=(c[p>>2]|0)+1;c[o+48>>2]=s;s=d+124+(c[f>>2]<<2)|0;c[j>>2]=0;c[k>>2]=c[s>>2];k=c[s>>2]|0;if(k)c[k+52>>2]=o;c[s>>2]=o;if(a[d+193>>0]|0){i=m;return o|0}c[g>>2]=3576;c[g+4>>2]=d;c[g+8>>2]=o;Ki(c[h>>2]|0,l,g);Ki(c[d+64>>2]|0,l,g);i=m;return o|0}function zi(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;f=d+60|0;if((c[f>>2]|0)==2){g=c[d+48>>2]|0;_p(b+64|0,g)|0;h=b+68|0;i=c[h>>2]|0;if(i){c[3710]=(c[3710]|0)+1;xs(c[i+-4>>2]|0);}c[h>>2]=g;g=b+76|0;c[g>>2]=(c[g>>2]|0)+-1}else{g=c[d+48>>2]|0;_p(b+4|0,g)|0;h=b+8|0;i=c[h>>2]|0;if(i){c[3710]=(c[3710]|0)+1;xs(c[i+-4>>2]|0);}c[h>>2]=g;g=b+16|0;c[g>>2]=(c[g>>2]|0)+-1}g=d+52|0;h=c[g>>2]|0;i=d+56|0;j=c[i>>2]|0;if(!h)c[b+124+(c[f>>2]<<2)>>2]=j;else c[h+56>>2]=j;j=c[i>>2]|0;if(j)c[j+52>>2]=c[g>>2];g=c[b+136>>2]|0;pc[c[(c[g>>2]|0)+16>>2]&63](g,d,e);c[3710]=(c[3710]|0)+1;xs(c[d+-4>>2]|0);a[b+194>>0]=1;return}function Ai(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;a=b+16|0;c[d>>2]=c[a>>2];c[d+4>>2]=c[a+4>>2];c[d+8>>2]=c[a+8>>2];c[d+12>>2]=c[a+12>>2];a=b+32|0;c[e>>2]=c[a>>2];c[e+4>>2]=c[a+4>>2];c[e+8>>2]=c[a+8>>2];c[e+12>>2]=c[a+12>>2];return}function Bi(a,b,d,e,f,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;var j=0,k=0,l=0,m=0,n=0;d=i;i=i+16|0;j=d;c[j>>2]=3616;c[j+4>>2]=e;k=a+4|0;l=e+4|0;m=e+20|0;n=e+32|0;Li(k,c[k>>2]|0,b,l,m,+g[n>>2],f,h,j);k=a+64|0;Li(k,c[k>>2]|0,b,l,m,+g[n>>2],f,h,j);i=d;return}function Ci(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;f=i;i=i+48|0;g=f+32|0;h=f;c[g>>2]=3656;c[g+4>>2]=e;c[h>>2]=c[b>>2];c[h+4>>2]=c[b+4>>2];c[h+8>>2]=c[b+8>>2];c[h+12>>2]=c[b+12>>2];b=h+16|0;c[b>>2]=c[d>>2];c[b+4>>2]=c[d+4>>2];c[b+8>>2]=c[d+8>>2];c[b+12>>2]=c[d+12>>2];Ki(c[a+4>>2]|0,h,g);Ki(c[a+64>>2]|0,h,g);i=f;return}function Di(b,d,e,f,h){b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;var j=0,k=0.0,l=0.0,m=0.0,n=0,o=0.0,p=0.0,q=0.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,E=0,F=0.0,G=0,H=0.0,I=0,J=0.0,K=0,L=0.0,M=0.0,N=0.0,O=0.0,P=0.0,Q=0.0,R=0.0,S=0.0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0;h=i;i=i+16|0;j=h;k=+g[e>>2];l=+g[e+4>>2];m=+g[e+8>>2];n=c[e+12>>2]|0;o=+g[f>>2];p=+g[f+4>>2];q=+g[f+8>>2];r=c[f+12>>2]|0;s=d+60|0;do if((c[s>>2]|0)==2){t=d+48|0;u=c[t>>2]|0;_p(b+64|0,u)|0;v=b+68|0;w=c[v>>2]|0;if(w){c[3710]=(c[3710]|0)+1;xs(c[w+-4>>2]|0);}c[v>>2]=u;u=b+76|0;c[u>>2]=(c[u>>2]|0)+-1;u=b+4|0;v=b+8|0;w=c[v>>2]|0;if(!w){c[3708]=(c[3708]|0)+1;x=ws(63)|0;if(!x)y=0;else{z=x+4+15&-16;c[z+-4>>2]=x;y=z}z=y;x=z+44|0;do{c[z>>2]=0;z=z+4|0}while((z|0)<(x|0));A=y}else{c[v>>2]=0;A=w}c[A+32>>2]=0;c[A+36>>2]=d;c[A+40>>2]=0;g[A>>2]=k;g[A+4>>2]=l;g[A+8>>2]=m;c[A+12>>2]=n;g[A+16>>2]=o;g[A+20>>2]=p;g[A+24>>2]=q;c[A+28>>2]=r;$p(u,c[u>>2]|0,A);z=b+16|0;c[z>>2]=(c[z>>2]|0)+1;c[t>>2]=A;B=1}else{z=b+168|0;c[z>>2]=(c[z>>2]|0)+1;z=c[d+48>>2]|0;C=+g[z>>2];if(((((C<=o?(x=z+16|0,D=+g[x>>2],D>=k):0)?(E=z+4|0,F=+g[E>>2],F<=p):0)?(G=z+20|0,H=+g[G>>2],H>=l):0)?(I=z+8|0,J=+g[I>>2],J<=q):0)?(K=z+24|0,L=+g[K>>2],L>=m):0){M=+g[d+16>>2];N=+g[d+20>>2];O=+g[d+24>>2];P=+g[b+140>>2];Q=(+g[d+32>>2]-M)*.5*P;R=P*((+g[d+36>>2]-N)*.5);S=P*((+g[d+40>>2]-O)*.5);P=k-M<0.0?-Q:Q;Q=l-N<0.0?-R:R;R=m-O<0.0?-S:S;T=b+4|0;if(!(!(C<=k)|!(F<=l)|!(J<=m)|!(D>=o)|!(H>=p)|!(L>=q))){B=0;break}L=k+-.05000000074505806;H=l+-.05000000074505806;D=m+-.05000000074505806;J=o+.05000000074505806;F=p+.05000000074505806;C=q+.05000000074505806;U=P>0.0;S=U?P+J:J;J=U?L:P+L;U=Q>0.0;L=U?Q+F:F;F=U?H:Q+H;U=R>0.0;H=U?R+C:C;C=U?D:R+D;U=_p(T,z)|0;a:do if(U){V=c[b+12>>2]|0;if((V|0)<=-1){W=c[T>>2]|0;break}if((V|0)>0){X=0;Y=U;while(1){Z=c[Y+32>>2]|0;X=X+1|0;if(!Z){W=Y;break a}if((X|0)>=(V|0)){W=Z;break}else Y=Z}}else W=U}else W=0;while(0);g[z>>2]=J;g[E>>2]=F;g[I>>2]=C;c[z+12>>2]=n;g[x>>2]=S;g[G>>2]=L;g[K>>2]=H;c[z+28>>2]=r;$p(T,W,z);U=b+172|0;c[U>>2]=(c[U>>2]|0)+1;B=1;break}U=b+4|0;t=_p(U,z)|0;b:do if(t){u=c[b+12>>2]|0;if((u|0)<=-1){_=c[U>>2]|0;break}if((u|0)>0){w=0;v=t;while(1){Y=c[v+32>>2]|0;w=w+1|0;if(!Y){_=v;break b}if((w|0)>=(u|0)){_=Y;break}else v=Y}}else _=t}else _=0;while(0);g[z>>2]=k;g[z+4>>2]=l;g[z+8>>2]=m;c[z+12>>2]=n;g[z+16>>2]=o;g[z+20>>2]=p;g[z+24>>2]=q;c[z+28>>2]=r;$p(U,_,z);t=b+172|0;c[t>>2]=(c[t>>2]|0)+1;B=1}while(0);_=d+52|0;r=c[_>>2]|0;n=d+56|0;W=c[n>>2]|0;if(!r)c[b+124+(c[s>>2]<<2)>>2]=W;else c[r+56>>2]=W;W=c[n>>2]|0;if(W)c[W+52>>2]=c[_>>2];W=d+16|0;c[W>>2]=c[e>>2];c[W+4>>2]=c[e+4>>2];c[W+8>>2]=c[e+8>>2];c[W+12>>2]=c[e+12>>2];e=d+32|0;c[e>>2]=c[f>>2];c[e+4>>2]=c[f+4>>2];c[e+8>>2]=c[f+8>>2];c[e+12>>2]=c[f+12>>2];f=c[b+144>>2]|0;c[s>>2]=f;s=b+124+(f<<2)|0;c[_>>2]=0;c[n>>2]=c[s>>2];n=c[s>>2]|0;if(n)c[n+52>>2]=d;c[s>>2]=d;if(!B){i=h;return}a[b+194>>0]=1;if(a[b+193>>0]|0){i=h;return}c[j>>2]=3576;c[j+4>>2]=b;B=b+64|0;s=d+48|0;Mi(B,c[B>>2]|0,c[s>>2]|0,j);B=b+4|0;Mi(B,c[B>>2]|0,c[s>>2]|0,j);i=h;return}function Ei(b,d){b=b|0;d=d|0;var e=0,f=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0.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;e=i;i=i+48|0;f=e+16|0;h=e;j=b+4|0;k=b+16|0;Yp(j,(($(c[b+152>>2]|0,c[k>>2]|0)|0)/100|0)+1|0);l=b+164|0;if(c[l>>2]|0){m=(($(c[b+148>>2]|0,c[b+76>>2]|0)|0)/100|0)+1|0;Yp(b+64|0,m);n=(c[l>>2]|0)-m|0;c[l>>2]=(n|0)<0?0:n}n=b+144|0;m=((c[n>>2]|0)+1|0)%2|0;c[n>>2]=m;n=c[b+124+(m<<2)>>2]|0;if(n){m=b+132|0;o=f+16|0;p=b+64|0;q=b+8|0;r=b+68|0;s=b+76|0;t=n;do{n=t+56|0;u=t;t=c[n>>2]|0;v=u+60|0;w=u+52|0;x=c[w>>2]|0;y=t;if(!x)c[b+124+(c[v>>2]<<2)>>2]=y;else c[x+56>>2]=y;y=c[n>>2]|0;if(y)c[y+52>>2]=c[w>>2];c[w>>2]=0;c[n>>2]=c[m>>2];n=c[m>>2]|0;if(n)c[n+52>>2]=u;c[m>>2]=u;n=u+48|0;w=c[n>>2]|0;_p(j,w)|0;y=c[q>>2]|0;if(y){c[3710]=(c[3710]|0)+1;xs(c[y+-4>>2]|0);}c[q>>2]=w;c[k>>2]=(c[k>>2]|0)+-1;w=u+16|0;y=u+32|0;c[f>>2]=c[w>>2];c[f+4>>2]=c[w+4>>2];c[f+8>>2]=c[w+8>>2];c[f+12>>2]=c[w+12>>2];c[o>>2]=c[y>>2];c[o+4>>2]=c[y+4>>2];c[o+8>>2]=c[y+8>>2];c[o+12>>2]=c[y+12>>2];y=c[r>>2]|0;if(!y){c[3708]=(c[3708]|0)+1;w=ws(63)|0;if(!w)z=0;else{x=w+4+15&-16;c[x+-4>>2]=w;z=x}x=z;w=x+44|0;do{c[x>>2]=0;x=x+4|0}while((x|0)<(w|0));A=z}else{c[r>>2]=0;A=y}c[A+32>>2]=0;c[A+36>>2]=u;c[A+40>>2]=0;c[A>>2]=c[f>>2];c[A+4>>2]=c[f+4>>2];c[A+8>>2]=c[f+8>>2];c[A+12>>2]=c[f+12>>2];c[A+16>>2]=c[f+16>>2];c[A+20>>2]=c[f+20>>2];c[A+24>>2]=c[f+24>>2];c[A+28>>2]=c[f+28>>2];$p(p,c[p>>2]|0,A);B=(c[s>>2]|0)+1|0;c[s>>2]=B;c[n>>2]=A;c[v>>2]=2}while((t|0)!=0);c[l>>2]=B;a[b+194>>0]=1}c[h>>2]=3576;c[h+4>>2]=b;B=b+193|0;if((a[B>>0]|0)!=0?(Mi(j,c[j>>2]|0,c[b+64>>2]|0,h),(a[B>>0]|0)!=0):0){B=c[j>>2]|0;Mi(j,B,B,h);}h=b+194|0;do if((a[h>>0]|0)!=0?(B=b+136|0,j=c[B>>2]|0,l=Ob[c[(c[j>>2]|0)+28>>2]&127](j)|0,j=l+4|0,t=c[j>>2]|0,(t|0)>0):0){A=($(c[b+156>>2]|0,t)|0)/100|0;s=c[b+160>>2]|0;p=(s|0)>(A|0)?s:A;A=(t|0)<(p|0)?t:p;p=b+184|0;if((A|0)>0){s=l+12|0;l=t;f=0;r=A;while(1){z=((c[p>>2]|0)+f|0)%(l|0)|0;o=c[s>>2]|0;k=c[o+(z<<4)>>2]|0;q=c[o+(z<<4)+4>>2]|0;z=c[k+48>>2]|0;o=c[q+48>>2]|0;if(((((+g[z>>2]<=+g[o+16>>2]?+g[z+16>>2]>=+g[o>>2]:0)?+g[z+4>>2]<=+g[o+20>>2]:0)?+g[z+20>>2]>=+g[o+4>>2]:0)?+g[z+8>>2]<=+g[o+24>>2]:0)?+g[z+24>>2]>=+g[o+8>>2]:0){C=l;D=f;E=r}else{o=c[B>>2]|0;Sb[c[(c[o>>2]|0)+12>>2]&31](o,k,q,d)|0;C=c[j>>2]|0;D=f+-1|0;E=r+-1|0}f=D+1|0;if((f|0)>=(E|0))break;else{l=C;r=E}}if((C|0)>0){F=C;G=E}else{c[p>>2]=0;break}}else{F=t;G=A}c[p>>2]=((c[p>>2]|0)+G|0)%(F|0)|0}while(0);F=b+180|0;c[F>>2]=(c[F>>2]|0)+1;c[b+160>>2]=1;a[h>>0]=0;h=b+168|0;F=c[h>>2]|0;G=b+172|0;E=c[G>>2]|0;if(!F)H=0.0;else H=+(E>>>0)/+(F>>>0);g[b+176>>2]=H;c[G>>2]=E>>>1;c[h>>2]=F>>>1;F=b+136|0;b=c[F>>2]|0;if(!(Ob[c[(c[b>>2]|0)+56>>2]&127](b)|0)){i=e;return}b=c[F>>2]|0;h=Ob[c[(c[b>>2]|0)+28>>2]&127](b)|0;b=h+4|0;E=c[b>>2]|0;if((E|0)>1){Ni(h,0,E+-1|0);I=0;J=0;K=0;L=0;M=44}else{N=E;O=0;P=0;Q=0;R=0}while(1){if((M|0)==44){M=0;N=c[b>>2]|0;O=J;P=I;Q=K;R=L}if((Q|0)>=(N|0))break;E=c[h+12>>2]|0;G=E+(Q<<4)|0;C=c[G>>2]|0;D=E+(Q<<4)+4|0;E=c[D>>2]|0;if(!((C|0)==(O|0)&(E|0)==(P|0))){r=c[C+48>>2]|0;l=c[E+48>>2]|0;if(((((+g[r>>2]<=+g[l+16>>2]?+g[r+16>>2]>=+g[l>>2]:0)?+g[r+4>>2]<=+g[l+20>>2]:0)?+g[r+20>>2]>=+g[l+4>>2]:0)?+g[r+8>>2]<=+g[l+24>>2]:0)?+g[r+24>>2]>=+g[l+8>>2]:0){S=E;T=R}else{U=E;M=53}}else{U=P;M=53}if((M|0)==53){M=0;E=c[F>>2]|0;pc[c[(c[E>>2]|0)+32>>2]&63](E,G,d);c[G>>2]=0;c[D>>2]=0;S=U;T=R+1|0}I=S;J=C;K=Q+1|0;L=T;M=44}if((N|0)>1){Ni(h,0,N+-1|0);V=c[b>>2]|0}else V=N;N=V-R|0;if((R|0)<0){M=h+8|0;if((c[M>>2]|0)<(N|0)){if((V|0)!=(R|0)){c[3708]=(c[3708]|0)+1;R=ws((N<<4|3)+16|0)|0;if(!R)W=0;else{T=R+4+15&-16;c[T+-4>>2]=R;W=T}T=c[b>>2]|0;R=h+12|0;if((T|0)>0){L=0;do{Q=c[R>>2]|0;c[W+(L<<4)>>2]=c[Q+(L<<4)>>2];c[W+(L<<4)+4>>2]=c[Q+(L<<4)+4>>2];c[W+(L<<4)+8>>2]=c[Q+(L<<4)+8>>2];c[W+(L<<4)+12>>2]=c[Q+(L<<4)+12>>2];L=L+1|0}while((L|0)!=(T|0));X=W;Y=R}else{X=W;Y=R}}else{X=0;Y=h+12|0}R=c[Y>>2]|0;W=h+16|0;if(R){if(a[W>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[R+-4>>2]|0);}c[Y>>2]=0}a[W>>0]=1;c[Y>>2]=X;c[M>>2]=N;Z=Y}else Z=h+12|0;h=V;do{V=(c[Z>>2]|0)+(h<<4)|0;h=h+1|0;c[V>>2]=0;c[V+4>>2]=0;c[V+8>>2]=0;c[V+12>>2]=0}while((h|0)!=(N|0));}c[b>>2]=N;i=e;return}function Fi(a){a=a|0;return c[a+136>>2]|0}function Gi(a){a=a|0;return c[a+136>>2]|0}function Hi(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=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,q=0.0,r=0.0,s=0.0,t=0.0,u=0.0,v=0.0;e=c[a+4>>2]|0;f=c[a+64>>2]|0;a=(f|0)==0;do if(!e)if(a){h=0.0;i=0.0;j=0.0;k=0.0;l=0.0;m=0.0;n=0.0;o=0.0}else{h=+g[f+4>>2];i=+g[f+8>>2];j=+g[f+12>>2];k=+g[f+16>>2];l=+g[f+20>>2];m=+g[f+24>>2];n=+g[f+28>>2];o=+g[f>>2]}else{p=+g[e>>2];if(a){h=+g[e+4>>2];i=+g[e+8>>2];j=+g[e+12>>2];k=+g[e+16>>2];l=+g[e+20>>2];m=+g[e+24>>2];n=+g[e+28>>2];o=p;break}q=+g[f>>2];r=p<q?p:q;q=+g[e+16>>2];p=+g[f+16>>2];s=q>p?q:p;p=+g[e+4>>2];q=+g[f+4>>2];t=p<q?p:q;q=+g[e+20>>2];p=+g[f+20>>2];u=q>p?q:p;p=+g[e+8>>2];q=+g[f+8>>2];v=p<q?p:q;q=+g[e+24>>2];p=+g[f+24>>2];if(q>p){h=t;i=v;j=0.0;k=s;l=u;m=q;n=0.0;o=r}else{h=t;i=v;j=0.0;k=s;l=u;m=p;n=0.0;o=r}}while(0);g[b>>2]=o;g[b+4>>2]=h;g[b+8>>2]=i;g[b+12>>2]=j;g[d>>2]=k;g[d+4>>2]=l;g[d+8>>2]=m;g[d+12>>2]=n;return}function Ii(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0;if((c[b+16>>2]|0)!=(0-(c[b+76>>2]|0)|0))return;d=b+64|0;e=b+4|0;f=c[e>>2]|0;if(f)Zp(e,f);f=b+8|0;e=c[f>>2]|0;if(e){c[3710]=(c[3710]|0)+1;xs(c[e+-4>>2]|0);}c[f>>2]=0;c[b+12>>2]=-1;f=b+28|0;e=b+36|0;g=c[e>>2]|0;h=b+40|0;if(g){if(a[h>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[g+-4>>2]|0);}c[e>>2]=0}a[h>>0]=1;c[e>>2]=0;c[f>>2]=0;c[b+32>>2]=0;c[b+20>>2]=0;f=c[d>>2]|0;if(f)Zp(d,f);f=b+68|0;d=c[f>>2]|0;if(d){c[3710]=(c[3710]|0)+1;xs(c[d+-4>>2]|0);}c[f>>2]=0;c[b+72>>2]=-1;f=b+88|0;d=b+96|0;e=c[d>>2]|0;h=b+100|0;if(e){if(a[h>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[e+-4>>2]|0);}c[d>>2]=0}a[h>>0]=1;c[d>>2]=0;c[f>>2]=0;c[b+92>>2]=0;c[b+80>>2]=0;a[b+193>>0]=0;a[b+194>>0]=1;c[b+144>>2]=0;c[b+164>>2]=0;c[b+148>>2]=1;c[b+152>>2]=0;c[b+156>>2]=10;c[b+160>>2]=1;f=b+168|0;d=b+124|0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;c[f>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;c[f+12>>2]=0;c[f+16>>2]=0;c[f+20>>2]=0;return}function Ji(a){a=a|0;return}function Ki(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,f=0.0,h=0.0,i=0.0,j=0.0,k=0.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;if(!a)return;e=+g[b>>2];f=+g[b+4>>2];h=+g[b+8>>2];i=+g[b+16>>2];j=+g[b+20>>2];k=+g[b+24>>2];c[3708]=(c[3708]|0)+1;b=ws(275)|0;l=b+4+15&-16;c[l+-4>>2]=b;c[l>>2]=a;a=1;b=l;l=64;while(1){m=a+-1|0;n=c[b+(m<<2)>>2]|0;do if(((((+g[n>>2]<=i?+g[n+16>>2]>=e:0)?+g[n+4>>2]<=j:0)?+g[n+20>>2]>=f:0)?+g[n+8>>2]<=k:0)?+g[n+24>>2]>=h:0){o=n+40|0;if(!(c[o>>2]|0)){Mb[c[(c[d>>2]|0)+12>>2]&127](d,n);p=m;q=b;r=l;break}s=c[n+36>>2]|0;do if((m|0)==(l|0)?(t=(l|0)!=0?l<<1:1,(a|0)<=(t|0)):0){if((t|0)!=0?(c[3708]=(c[3708]|0)+1,u=ws((t<<2|3)+16|0)|0,(u|0)!=0):0){v=u+4+15&-16;c[v+-4>>2]=u;w=v}else w=0;if((a|0)<=1){if(!b){x=w;y=t;break}}else{v=0;do{c[w+(v<<2)>>2]=c[b+(v<<2)>>2];v=v+1|0}while((v|0)!=(l|0));}c[3710]=(c[3710]|0)+1;xs(c[b+-4>>2]|0);x=w;y=t}else{x=b;y=l}while(0);c[x+(m<<2)>>2]=s;v=c[o>>2]|0;do if((a|0)==(y|0)){u=(a|0)!=0?a<<1:1;if((a|0)<(u|0)){if((u|0)!=0?(c[3708]=(c[3708]|0)+1,z=ws((u<<2|3)+16|0)|0,(z|0)!=0):0){A=z+4+15&-16;c[A+-4>>2]=z;B=A}else B=0;if((a|0)<=0){if(!x){C=B;D=u;break}}else{A=0;do{c[B+(A<<2)>>2]=c[x+(A<<2)>>2];A=A+1|0}while((A|0)!=(a|0));}c[3710]=(c[3710]|0)+1;xs(c[x+-4>>2]|0);C=B;D=u}else{C=x;D=a}}else{C=x;D=y}while(0);c[C+(a<<2)>>2]=v;p=a+1|0;q=C;r=D}else{p=m;q=b;r=l}while(0);if((p|0)>0){a=p;b=q;l=r}else break}if(!q)return;c[3710]=(c[3710]|0)+1;xs(c[q+-4>>2]|0);return}function Li(b,d,e,f,h,j,k,l,m){b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;j=+j;k=k|0;l=l|0;m=m|0;var n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0.0,O=0.0,P=0,Q=0.0,R=0.0,S=0.0,T=0.0,U=0.0,V=0.0,W=0.0,X=0.0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0;n=i;i=i+32|0;o=n;if(!d){i=n;return}p=b+44|0;q=c[p>>2]|0;r=b+48|0;if((q|0)<128){if((c[r>>2]|0)<128){c[3708]=(c[3708]|0)+1;s=ws(531)|0;if(!s)t=0;else{u=s+4+15&-16;c[u+-4>>2]=s;t=u}u=c[p>>2]|0;s=b+52|0;if((u|0)>0){v=0;do{c[t+(v<<2)>>2]=c[(c[s>>2]|0)+(v<<2)>>2];v=v+1|0}while((v|0)!=(u|0));}u=c[s>>2]|0;v=b+56|0;if(u){if(a[v>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[u+-4>>2]|0);}c[s>>2]=0}a[v>>0]=1;c[s>>2]=t;c[r>>2]=128;w=s}else w=b+52|0;s=q;do{c[(c[w>>2]|0)+(s<<2)>>2]=0;s=s+1|0}while((s|0)!=128);x=r}else x=r;c[p>>2]=128;r=b+52|0;c[c[r>>2]>>2]=d;d=l+4|0;s=l+8|0;w=o+4|0;q=o+8|0;t=o+12|0;v=k+4|0;u=k+8|0;y=o+16|0;z=o+20|0;A=o+24|0;B=o+28|0;C=h+4|0;D=e+4|0;E=f+4|0;F=h+8|0;G=e+8|0;H=f+8|0;I=b+56|0;b=1;J=126;while(1){K=b+-1|0;L=c[r>>2]|0;M=c[L+(K<<2)>>2]|0;N=+g[M+4>>2]-+g[d>>2];O=+g[M+8>>2]-+g[s>>2];g[o>>2]=+g[M>>2]-+g[l>>2];g[w>>2]=N;g[q>>2]=O;g[t>>2]=0.0;O=+g[M+20>>2]-+g[v>>2];N=+g[M+24>>2]-+g[u>>2];g[y>>2]=+g[M+16>>2]-+g[k>>2];g[z>>2]=O;g[A>>2]=N;g[B>>2]=0.0;P=c[h>>2]|0;N=+g[e>>2];O=+g[f>>2];Q=(+g[o+(P<<4)>>2]-N)*O;R=O*(+g[o+(1-P<<4)>>2]-N);P=c[C>>2]|0;N=+g[D>>2];O=+g[E>>2];S=(+g[o+(P<<4)+4>>2]-N)*O;T=O*(+g[o+(1-P<<4)+4>>2]-N);do if((!(S>R|Q>T)?(N=S>Q?S:Q,O=T<R?T:R,P=c[F>>2]|0,U=+g[G>>2],V=+g[H>>2],W=(+g[o+(P<<4)+8>>2]-U)*V,X=V*(+g[o+(1-P<<4)+8>>2]-U),!(W>O|N>X)):0)?((X<O?X:O)>0.0?(W>N?W:N)<j:0):0){P=M+40|0;if(!(c[P>>2]|0)){Mb[c[(c[m>>2]|0)+12>>2]&127](m,M);Y=K;Z=J;break}if((K|0)>(J|0)){_=c[p>>2]|0;$=_<<1;if((_|0)<($|0)){if((c[x>>2]|0)<($|0)){if(_){c[3708]=(c[3708]|0)+1;aa=ws((_<<3|3)+16|0)|0;if(!aa)ba=0;else{ca=aa+4+15&-16;c[ca+-4>>2]=aa;ba=ca}ca=c[p>>2]|0;if((ca|0)>0){aa=0;do{c[ba+(aa<<2)>>2]=c[(c[r>>2]|0)+(aa<<2)>>2];aa=aa+1|0}while((aa|0)!=(ca|0));da=ba}else da=ba}else da=0;ca=c[r>>2]|0;if(ca){if(a[I>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[ca+-4>>2]|0);}c[r>>2]=0}a[I>>0]=1;c[r>>2]=da;c[x>>2]=$;ea=da;fa=_}else{ea=L;fa=_}while(1){c[ea+(fa<<2)>>2]=0;fa=fa+1|0;ca=c[r>>2]|0;if((fa|0)==($|0)){ga=ca;break}else ea=ca}}else ga=L;c[p>>2]=$;ha=ga;ia=$+-2|0}else{ha=L;ia=J}c[ha+(K<<2)>>2]=c[M+36>>2];c[(c[r>>2]|0)+(b<<2)>>2]=c[P>>2];Y=b+1|0;Z=ia}else{Y=K;Z=J}while(0);if(!Y)break;else{b=Y;J=Z}}i=n;return}function Mi(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|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;if(!((d|0)!=0&(e|0)!=0))return;h=b+24|0;i=b+28|0;if((c[h>>2]|0)<128?(c[i>>2]|0)<128:0){c[3708]=(c[3708]|0)+1;j=ws(1043)|0;if(!j)k=0;else{l=j+4+15&-16;c[l+-4>>2]=j;k=l}l=c[h>>2]|0;j=b+32|0;if((l|0)>0){m=0;do{n=(c[j>>2]|0)+(m<<3)|0;o=c[n+4>>2]|0;p=k+(m<<3)|0;c[p>>2]=c[n>>2];c[p+4>>2]=o;m=m+1|0}while((m|0)!=(l|0));}l=c[j>>2]|0;m=b+36|0;if(l){if(a[m>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[l+-4>>2]|0);}c[j>>2]=0}a[m>>0]=1;c[j>>2]=k;c[i>>2]=128;q=i}else q=i;c[h>>2]=128;i=b+32|0;k=c[i>>2]|0;c[k>>2]=d;c[k+4>>2]=e;e=b+36|0;b=1;k=124;while(1){d=b+-1|0;j=c[i>>2]|0;m=c[j+(d<<3)>>2]|0;l=c[j+(d<<3)+4>>2]|0;if((d|0)>(k|0)){o=c[h>>2]|0;p=o<<1;if((o|0)<(p|0)?(c[q>>2]|0)<(p|0):0){if(o){c[3708]=(c[3708]|0)+1;n=ws((o<<4|3)+16|0)|0;if(!n)r=0;else{o=n+4+15&-16;c[o+-4>>2]=n;r=o}o=c[h>>2]|0;if((o|0)>0){n=0;do{s=(c[i>>2]|0)+(n<<3)|0;t=c[s+4>>2]|0;u=r+(n<<3)|0;c[u>>2]=c[s>>2];c[u+4>>2]=t;n=n+1|0}while((n|0)!=(o|0));v=r}else v=r}else v=0;o=c[i>>2]|0;if(o){if(a[e>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[o+-4>>2]|0);}c[i>>2]=0}a[e>>0]=1;c[i>>2]=v;c[q>>2]=p;w=v}else w=j;c[h>>2]=p;x=w;y=p+-4|0}else{x=j;y=k}do if((m|0)==(l|0)){o=m+40|0;if(!(c[o>>2]|0))z=d;else{n=m+36|0;t=c[n>>2]|0;c[x+(d<<3)>>2]=t;c[x+(d<<3)+4>>2]=t;t=b+1|0;u=c[i>>2]|0;s=c[o>>2]|0;c[u+(b<<3)>>2]=s;c[u+(b<<3)+4>>2]=s;s=c[i>>2]|0;u=c[o>>2]|0;c[s+(t<<3)>>2]=c[n>>2];c[s+(t<<3)+4>>2]=u;z=b+2|0}}else if(((((+g[m>>2]<=+g[l+16>>2]?+g[m+16>>2]>=+g[l>>2]:0)?+g[m+4>>2]<=+g[l+20>>2]:0)?+g[m+20>>2]>=+g[l+4>>2]:0)?+g[m+8>>2]<=+g[l+24>>2]:0)?+g[m+24>>2]>=+g[l+8>>2]:0){u=m+40|0;t=l+40|0;s=(c[t>>2]|0)!=0;if(!(c[u>>2]|0))if(s){n=m;o=c[l+36>>2]|0;c[x+(d<<3)>>2]=n;c[x+(d<<3)+4>>2]=o;o=c[i>>2]|0;A=c[t>>2]|0;c[o+(b<<3)>>2]=n;c[o+(b<<3)+4>>2]=A;z=b+1|0;break}else{pc[c[(c[f>>2]|0)+8>>2]&63](f,m,l);z=d;break}else{A=x+(d<<3)|0;o=m+36|0;n=c[o>>2]|0;if(s){s=l+36|0;B=c[s>>2]|0;c[A>>2]=n;c[x+(d<<3)+4>>2]=B;B=b+1|0;C=c[i>>2]|0;D=c[s>>2]|0;c[C+(b<<3)>>2]=c[u>>2];c[C+(b<<3)+4>>2]=D;D=b+2|0;C=c[i>>2]|0;s=c[t>>2]|0;c[C+(B<<3)>>2]=c[o>>2];c[C+(B<<3)+4>>2]=s;s=c[i>>2]|0;B=c[t>>2]|0;c[s+(D<<3)>>2]=c[u>>2];c[s+(D<<3)+4>>2]=B;z=b+3|0;break}else{B=l;c[A>>2]=n;c[x+(d<<3)+4>>2]=B;n=c[i>>2]|0;c[n+(b<<3)>>2]=c[u>>2];c[n+(b<<3)+4>>2]=B;z=b+1|0;break}}}else z=d;while(0);if(!z)break;else{b=z;k=y}}return}function Ni(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0;f=i;i=i+16|0;g=f;h=(e+d|0)/2|0;j=b+12|0;k=c[j>>2]|0;l=c[k+(h<<4)>>2]|0;m=c[k+(h<<4)+4>>2]|0;n=l;o=(l|0)==0;l=m;p=(m|0)==0;m=c[k+(h<<4)+8>>2]|0;h=l+12|0;q=n+12|0;r=k;k=d;s=e;while(1){a:do if(o){t=k;while(1){u=c[r+(t<<4)>>2]|0;if(!u)v=-1;else v=c[u+12>>2]|0;w=c[r+(t<<4)+4>>2]|0;if(!w)x=-1;else x=c[w+12>>2]|0;if(p)y=-1;else y=c[h>>2]|0;do if((v|0)<=-1){z=(u|0)==(n|0);A=(x|0)>(y|0);if(A|z^1)if(z&A)break;else{B=t;break a}if((w|0)!=(l|0)){B=t;break a}if((c[r+(t<<4)+8>>2]|0)>>>0<=m>>>0){B=t;break a}}while(0);t=t+1|0}}else{t=c[q>>2]|0;if(p){w=k;while(1){u=c[r+(w<<4)>>2]|0;if(!u)C=-1;else C=c[u+12>>2]|0;A=c[r+(w<<4)+4>>2]|0;if(!A)D=-1;else D=c[A+12>>2]|0;do if((C|0)<=(t|0)){z=(u|0)==(n|0);E=(D|0)>-1;if(E|z^1)if(z&E)break;else{B=w;break a}if((A|0)!=(l|0)){B=w;break a}if((c[r+(w<<4)+8>>2]|0)>>>0<=m>>>0){B=w;break a}}while(0);w=w+1|0}}w=c[h>>2]|0;A=k;while(1){u=c[r+(A<<4)>>2]|0;if(!u)F=-1;else F=c[u+12>>2]|0;E=c[r+(A<<4)+4>>2]|0;if(!E)G=-1;else G=c[E+12>>2]|0;do if((F|0)<=(t|0)){z=(u|0)==(n|0);H=(G|0)>(w|0);if(H|z^1)if(z&H)break;else{B=A;break a}if((E|0)!=(l|0)){B=A;break a}if((c[r+(A<<4)+8>>2]|0)>>>0<=m>>>0){B=A;break a}}while(0);A=A+1|0}}while(0);A=s;b:while(1){if(o)I=-1;else I=c[q>>2]|0;w=c[r+(A<<4)>>2]|0;if(!w)J=-1;else J=c[w+12>>2]|0;if(p)K=-1;else K=c[h>>2]|0;t=c[r+(A<<4)+4>>2]|0;if(!t)L=-1;else L=c[t+12>>2]|0;do if((I|0)<=(J|0)){E=(n|0)==(w|0);u=(K|0)>(L|0);if(u|E^1)if(E&u)break;else break b;if((l|0)!=(t|0))break b;if(m>>>0<=(c[r+(A<<4)+8>>2]|0)>>>0)break b}while(0);A=A+-1|0}if((B|0)>(A|0)){M=B;N=A}else{t=r+(B<<4)|0;w=g;u=t;E=w+16|0;do{a[w>>0]=a[u>>0]|0;w=w+1|0;u=u+1|0}while((w|0)<(E|0));H=r+(A<<4)|0;c[t>>2]=c[H>>2];c[t+4>>2]=c[H+4>>2];c[t+8>>2]=c[H+8>>2];c[t+12>>2]=c[H+12>>2];w=(c[j>>2]|0)+(A<<4)|0;u=g;E=w+16|0;do{a[w>>0]=a[u>>0]|0;w=w+1|0;u=u+1|0}while((w|0)<(E|0));M=B+1|0;N=A+-1|0}if((M|0)>(N|0))break;r=c[j>>2]|0;k=M;s=N}if((N|0)>(d|0))Ni(b,d,N);if((M|0)>=(e|0)){i=f;return}Ni(b,M,e);i=f;return}function Oi(a){a=a|0;return}function Pi(a){a=a|0;xs(a);return}function Qi(a,b,c){a=a|0;b=b|0;c=c|0;return}function Ri(a,b){a=a|0;b=b|0;var d=0;d=c[a+4>>2]|0;ec[c[(c[d>>2]|0)+8>>2]&31](d,c[b+36>>2]|0)|0;return}function Si(a,b,d){a=a|0;b=b|0;d=+d;Mb[c[(c[a>>2]|0)+12>>2]&127](a,b);return}function Ti(a,b){a=a|0;b=b|0;return 1}function Ui(a,b){a=a|0;b=b|0;return 1}function Vi(a){a=a|0;xs(a);return}function Wi(a,b){a=a|0;b=b|0;var d=0;d=c[a+4>>2]|0;ec[c[(c[d>>2]|0)+8>>2]&31](d,c[b+36>>2]|0)|0;return}function Xi(a){a=a|0;xs(a);return}function Yi(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;if((b|0)==(d|0))return;e=a+4|0;a=c[(c[e>>2]|0)+136>>2]|0;Wb[c[(c[a>>2]|0)+8>>2]&31](a,c[b+36>>2]|0,c[d+36>>2]|0)|0;d=(c[e>>2]|0)+160|0;c[d>>2]=(c[d>>2]|0)+1;return}function Zi(a,b){a=a|0;b=b|0;pc[c[(c[a>>2]|0)+8>>2]&63](a,b,c[(c[a+8>>2]|0)+48>>2]|0);return}function _i(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;c[b>>2]=3912;d=b+20|0;a[d>>0]=1;e=b+16|0;c[e>>2]=0;f=b+8|0;c[f>>2]=0;g=b+12|0;c[g>>2]=0;c[b+24>>2]=0;a[b+28>>0]=0;a[b+48>>0]=1;c[b+44>>2]=0;c[b+36>>2]=0;c[b+40>>2]=0;a[b+68>>0]=1;c[b+64>>2]=0;c[b+56>>2]=0;c[b+60>>2]=0;c[b+72>>2]=0;c[3708]=(c[3708]|0)+1;h=ws(51)|0;if(!h)i=0;else{j=h+4+15&-16;c[j+-4>>2]=h;i=j}j=c[f>>2]|0;if((j|0)>0){f=0;do{h=c[e>>2]|0;c[i+(f<<4)>>2]=c[h+(f<<4)>>2];c[i+(f<<4)+4>>2]=c[h+(f<<4)+4>>2];c[i+(f<<4)+8>>2]=c[h+(f<<4)+8>>2];c[i+(f<<4)+12>>2]=c[h+(f<<4)+12>>2];f=f+1|0}while((f|0)!=(j|0));}j=c[e>>2]|0;if(!j){a[d>>0]=1;c[e>>2]=i;c[g>>2]=2;$i(b);return}if(a[d>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[j+-4>>2]|0);}c[e>>2]=0;a[d>>0]=1;c[e>>2]=i;c[g>>2]=2;$i(b);return}function $i(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;d=b+12|0;e=c[d>>2]|0;f=b+36|0;g=c[f>>2]|0;if((e|0)<=(g|0))return;if((e|0)>=(g|0)){h=b+40|0;do if((c[h>>2]|0)<(e|0)){if(!e){i=0;j=g}else{c[3708]=(c[3708]|0)+1;k=ws((e<<2|3)+16|0)|0;if(!k)l=0;else{m=k+4+15&-16;c[m+-4>>2]=k;l=m}i=l;j=c[f>>2]|0}m=b+44|0;k=c[m>>2]|0;if((j|0)<=0){if(!k){a[b+48>>0]=1;c[m>>2]=i;c[h>>2]=e;n=i;break}}else{o=0;do{c[i+(o<<2)>>2]=c[k+(o<<2)>>2];o=o+1|0}while((o|0)!=(j|0));}o=b+48|0;if(a[o>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[k+-4>>2]|0);}a[o>>0]=1;c[m>>2]=i;c[h>>2]=e;n=i}else n=c[b+44>>2]|0;while(0);Cs(n+(g<<2)|0,0,e-g<<2|0)|0}c[f>>2]=e;f=b+56|0;n=c[f>>2]|0;if((e|0)>(n|0)){i=b+60|0;do if((c[i>>2]|0)<(e|0)){if(!e){p=0;q=n}else{c[3708]=(c[3708]|0)+1;h=ws((e<<2|3)+16|0)|0;if(!h)r=0;else{j=h+4+15&-16;c[j+-4>>2]=h;r=j}p=r;q=c[f>>2]|0}j=b+64|0;h=c[j>>2]|0;if((q|0)<=0){if(!h){a[b+68>>0]=1;c[j>>2]=p;c[i>>2]=e;s=p;break}}else{l=0;do{c[p+(l<<2)>>2]=c[h+(l<<2)>>2];l=l+1|0}while((l|0)!=(q|0));}l=b+68|0;if(a[l>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[h+-4>>2]|0);}a[l>>0]=1;c[j>>2]=p;c[i>>2]=e;s=p}else s=c[b+64>>2]|0;while(0);Cs(s+(n<<2)|0,0,e-n<<2|0)|0}c[f>>2]=e;if((e|0)>0){f=e<<2;Cs(c[b+44>>2]|0,-1,f|0)|0;Cs(c[b+64>>2]|0,-1,f|0)|0}if((g|0)<=0)return;f=c[b+16>>2]|0;e=c[b+44>>2]|0;n=c[b+64>>2]|0;b=0;do{s=c[(c[f+(b<<4)+4>>2]|0)+12>>2]<<16|c[(c[f+(b<<4)>>2]|0)+12>>2];p=s+~(s<<15)|0;s=(p>>10^p)*9|0;p=s>>6^s;s=p+~(p<<11)|0;p=e+(((s>>16^s)&(c[d>>2]|0)+-1)<<2)|0;c[n+(b<<2)>>2]=c[p>>2];c[p>>2]=b;b=b+1|0}while((b|0)!=(g|0));return}function aj(b){b=b|0;var d=0,e=0,f=0,g=0,h=0;c[b>>2]=3912;d=b+56|0;e=b+64|0;f=c[e>>2]|0;g=b+68|0;if(f){if(a[g>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[f+-4>>2]|0);}c[e>>2]=0}a[g>>0]=1;c[e>>2]=0;c[d>>2]=0;c[b+60>>2]=0;d=b+36|0;e=b+44|0;g=c[e>>2]|0;f=b+48|0;if(g){if(a[f>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[g+-4>>2]|0);}c[e>>2]=0}a[f>>0]=1;c[e>>2]=0;c[d>>2]=0;c[b+40>>2]=0;d=b+8|0;e=b+16|0;f=c[e>>2]|0;g=b+20|0;if(!f){a[g>>0]=1;c[e>>2]=0;c[d>>2]=0;h=b+12|0;c[h>>2]=0;return}if(a[g>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[f+-4>>2]|0);}c[e>>2]=0;a[g>>0]=1;c[e>>2]=0;c[d>>2]=0;h=b+12|0;c[h>>2]=0;return}function bj(a){a=a|0;aj(a);xs(a);return}function cj(a,b,d){a=a|0;b=b|0;d=d|0;a=b+8|0;b=c[a>>2]|0;if(!((d|0)!=0&(b|0)!=0))return;Kb[c[c[b>>2]>>2]&255](b);Mb[c[(c[d>>2]|0)+60>>2]&127](d,c[a>>2]|0);c[a>>2]=0;return}function dj(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=i;i=i+16|0;f=e;c[f>>2]=4040;c[f+4>>2]=b;c[f+8>>2]=a;c[f+12>>2]=d;pc[c[(c[a>>2]|0)+48>>2]&63](a,f,d);i=e;return}function ej(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=i;i=i+16|0;f=e;c[f>>2]=4064;c[f+4>>2]=b;pc[c[(c[a>>2]|0)+48>>2]&63](a,f,d);i=e;return}function fj(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;e=b;f=d;c[974]=(c[974]|0)+1;g=(c[b+12>>2]|0)>(c[d+12>>2]|0);d=c[(g?f:e)+12>>2]|0;b=c[(g?e:f)+12>>2]|0;f=b<<16|d;e=f+~(f<<15)|0;f=(e>>10^e)*9|0;e=f>>6^f;f=e+~(e<<11)|0;e=(f>>16^f)&(c[a+12>>2]|0)+-1;if((e|0)>=(c[a+36>>2]|0)){h=0;return h|0}f=c[(c[a+44>>2]|0)+(e<<2)>>2]|0;if((f|0)==-1){h=0;return h|0}e=c[a+16>>2]|0;g=a+64|0;a=f;while(1){if((c[(c[e+(a<<4)>>2]|0)+12>>2]|0)==(d|0)?(c[(c[e+(a<<4)+4>>2]|0)+12>>2]|0)==(b|0):0)break;f=c[(c[g>>2]|0)+(a<<2)>>2]|0;if((f|0)==-1){h=0;i=8;break}else a=f}if((i|0)==8)return h|0;h=e+(a<<4)|0;return h|0}function gj(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;f=b;g=d;c[970]=(c[970]|0)+1;h=(c[b+12>>2]|0)>(c[d+12>>2]|0);d=h?g:f;b=c[d+12>>2]|0;i=h?f:g;g=c[i+12>>2]|0;f=g<<16|b;h=f+~(f<<15)|0;f=(h>>10^h)*9|0;h=f>>6^f;f=h+~(h<<11)|0;h=a+12|0;j=(f>>16^f)&(c[h>>2]|0)+-1;f=a+44|0;k=c[(c[f>>2]|0)+(j<<2)>>2]|0;if((k|0)==-1){l=0;return l|0}m=a+16|0;n=c[m>>2]|0;o=a+64|0;p=k;while(1){if((c[(c[n+(p<<4)>>2]|0)+12>>2]|0)==(b|0)?(c[(c[n+(p<<4)+4>>2]|0)+12>>2]|0)==(g|0):0)break;k=c[(c[o>>2]|0)+(p<<2)>>2]|0;if((k|0)==-1){l=0;q=24;break}else p=k}if((q|0)==24)return l|0;g=n+(p<<4)|0;if(!g){l=0;return l|0}pc[c[(c[a>>2]|0)+32>>2]&63](a,g,e);b=c[n+(p<<4)+12>>2]|0;p=g-(c[m>>2]|0)>>4;g=(c[f>>2]|0)+(j<<2)|0;j=c[g>>2]|0;n=c[o>>2]|0;if((j|0)!=(p|0)){k=j;while(1){r=n+(k<<2)|0;j=c[r>>2]|0;if((j|0)==(p|0))break;else k=j}j=c[n+(p<<2)>>2]|0;if((k|0)==-1){s=j;q=12}else c[r>>2]=j}else{s=c[n+(p<<2)>>2]|0;q=12}if((q|0)==12)c[g>>2]=s;s=a+8|0;g=(c[s>>2]|0)+-1|0;n=c[a+72>>2]|0;if(n)Sb[c[(c[n>>2]|0)+12>>2]&31](n,d,i,e)|0;if((g|0)==(p|0)){c[s>>2]=(c[s>>2]|0)+-1;l=b;return l|0}e=c[m>>2]|0;m=c[(c[e+(g<<4)+4>>2]|0)+12>>2]<<16|c[(c[e+(g<<4)>>2]|0)+12>>2];i=m+~(m<<15)|0;m=(i>>10^i)*9|0;i=m>>6^m;m=i+~(i<<11)|0;i=(m>>16^m)&(c[h>>2]|0)+-1;h=(c[f>>2]|0)+(i<<2)|0;m=c[h>>2]|0;d=c[o>>2]|0;if((m|0)!=(g|0)){n=m;while(1){t=d+(n<<2)|0;m=c[t>>2]|0;if((m|0)==(g|0))break;else n=m}m=c[d+(g<<2)>>2]|0;if((n|0)==-1){u=m;q=22}else c[t>>2]=m}else{u=c[d+(g<<2)>>2]|0;q=22}if((q|0)==22)c[h>>2]=u;u=e+(p<<4)|0;h=e+(g<<4)|0;c[u>>2]=c[h>>2];c[u+4>>2]=c[h+4>>2];c[u+8>>2]=c[h+8>>2];c[u+12>>2]=c[h+12>>2];h=(c[f>>2]|0)+(i<<2)|0;c[(c[o>>2]|0)+(p<<2)>>2]=c[h>>2];c[h>>2]=p;c[s>>2]=(c[s>>2]|0)+-1;l=b;return l|0}function hj(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;e=a+8|0;if((c[e>>2]|0)<=0)return;f=a+16|0;g=0;a:while(1){while(1){h=c[f>>2]|0;i=h+(g<<4)|0;if(!(ec[c[(c[b>>2]|0)+8>>2]&31](b,i)|0))break;Sb[c[(c[a>>2]|0)+12>>2]&31](a,c[i>>2]|0,c[h+(g<<4)+4>>2]|0,d)|0;c[968]=(c[968]|0)+-1;if((g|0)>=(c[e>>2]|0)){j=7;break a}}g=g+1|0;if((g|0)>=(c[e>>2]|0)){j=7;break}}if((j|0)==7)return}function ij(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0;e=i;i=i+32|0;f=e;g=f+16|0;a[g>>0]=1;h=f+12|0;c[h>>2]=0;j=f+4|0;c[j>>2]=0;k=f+8|0;c[k>>2]=0;l=b+8|0;m=c[l>>2]|0;if((m|0)>0){n=b+16|0;o=m;m=0;p=0;q=0;while(1){r=c[n>>2]|0;s=r+(q<<4)|0;if((m|0)==(p|0)){t=(p|0)!=0?p<<1:1;if((p|0)<(t|0)){if(!t){u=0;v=p}else{c[3708]=(c[3708]|0)+1;w=ws((t<<4|3)+16|0)|0;if(!w)x=0;else{y=w+4+15&-16;c[y+-4>>2]=w;x=y}u=x;v=c[j>>2]|0}if((v|0)>0){y=0;do{w=c[h>>2]|0;c[u+(y<<4)>>2]=c[w+(y<<4)>>2];c[u+(y<<4)+4>>2]=c[w+(y<<4)+4>>2];c[u+(y<<4)+8>>2]=c[w+(y<<4)+8>>2];c[u+(y<<4)+12>>2]=c[w+(y<<4)+12>>2];y=y+1|0}while((y|0)!=(v|0));}y=c[h>>2]|0;if(!y)z=v;else{if(!(a[g>>0]|0))A=v;else{c[3710]=(c[3710]|0)+1;xs(c[y+-4>>2]|0);A=c[j>>2]|0}c[h>>2]=0;z=A}a[g>>0]=1;c[h>>2]=u;c[k>>2]=t;B=t;C=c[l>>2]|0;D=z}else{B=p;C=o;D=p}}else{B=p;C=o;D=m}y=c[h>>2]|0;c[y+(D<<4)>>2]=c[s>>2];c[y+(D<<4)+4>>2]=c[r+(q<<4)+4>>2];c[y+(D<<4)+8>>2]=c[r+(q<<4)+8>>2];c[y+(D<<4)+12>>2]=c[r+(q<<4)+12>>2];m=D+1|0;c[j>>2]=m;q=q+1|0;if((q|0)>=(C|0))break;else{o=C;p=B}}if((D|0)>-1){D=0;do{B=c[h>>2]|0;Sb[c[(c[b>>2]|0)+12>>2]&31](b,c[B+(D<<4)>>2]|0,c[B+(D<<4)+4>>2]|0,d)|0;D=D+1|0;B=c[j>>2]|0}while((D|0)<(B|0));E=B}else E=m}else E=0;m=b+56|0;if((c[m>>2]|0)>0){D=c[b+64>>2]|0;d=0;do{c[D+(d<<2)>>2]=-1;d=d+1|0}while((d|0)<(c[m>>2]|0));F=c[j>>2]|0}else F=E;if((F|0)>1){Ni(f,0,F+-1|0);G=c[j>>2]|0}else G=F;if((G|0)>0){G=0;do{F=c[h>>2]|0;Wb[c[(c[b>>2]|0)+8>>2]&31](b,c[F+(G<<4)>>2]|0,c[F+(G<<4)+4>>2]|0)|0;G=G+1|0}while((G|0)<(c[j>>2]|0));}j=c[h>>2]|0;if(!j){i=e;return}if(a[g>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[j+-4>>2]|0);}c[h>>2]=0;i=e;return}function jj(d,e,f){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,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;c[972]=(c[972]|0)+1;g=c[d+24>>2]|0;if(!g){if(!((b[f+6>>1]&b[e+4>>1])<<16>>16)){h=0;return h|0}if(!((b[e+6>>1]&b[f+4>>1])<<16>>16)){h=0;return h|0}}else if(!(Wb[c[(c[g>>2]|0)+8>>2]&31](g,e,f)|0)){h=0;return h|0}g=e;i=f;j=(c[e+12>>2]|0)>(c[f+12>>2]|0);f=j?i:g;e=f+12|0;k=c[e>>2]|0;l=j?g:i;i=l+12|0;g=c[i>>2]|0;j=g<<16|k;m=j+~(j<<15)|0;j=(m>>10^m)*9|0;m=j>>6^j;j=m+~(m<<11)|0;m=j>>16^j;j=d+12|0;n=c[j>>2]|0;o=m&n+-1;p=d+44|0;q=c[(c[p>>2]|0)+(o<<2)>>2]|0;a:do if((q|0)!=-1){r=c[d+16>>2]|0;s=d+64|0;t=q;while(1){if((c[(c[r+(t<<4)>>2]|0)+12>>2]|0)==(k|0)?(c[(c[r+(t<<4)+4>>2]|0)+12>>2]|0)==(g|0):0)break;u=c[(c[s>>2]|0)+(t<<2)>>2]|0;if((u|0)==-1)break a;else t=u}s=r+(t<<4)|0;if(s){h=s;return h|0}}while(0);g=d+8|0;k=c[g>>2]|0;if((k|0)==(n|0)){q=(n|0)!=0?n<<1:1;if((n|0)<(q|0)){if(!q){v=0;w=n}else{c[3708]=(c[3708]|0)+1;s=ws((q<<4|3)+16|0)|0;if(!s)x=0;else{u=s+4+15&-16;c[u+-4>>2]=s;x=u}v=x;w=c[g>>2]|0}x=d+16|0;if((w|0)>0){u=0;do{s=c[x>>2]|0;c[v+(u<<4)>>2]=c[s+(u<<4)>>2];c[v+(u<<4)+4>>2]=c[s+(u<<4)+4>>2];c[v+(u<<4)+8>>2]=c[s+(u<<4)+8>>2];c[v+(u<<4)+12>>2]=c[s+(u<<4)+12>>2];u=u+1|0}while((u|0)!=(w|0));}u=c[x>>2]|0;s=d+20|0;if(!u)y=w;else{if(!(a[s>>0]|0))z=w;else{c[3710]=(c[3710]|0)+1;xs(c[u+-4>>2]|0);z=c[g>>2]|0}c[x>>2]=0;y=z}a[s>>0]=1;c[x>>2]=v;c[j>>2]=q;A=y;B=q}else{A=n;B=n}}else{A=k;B=n}c[g>>2]=A+1;A=c[d+16>>2]|0;g=A+(k<<4)|0;q=c[d+72>>2]|0;if(!q)C=B;else{Wb[c[(c[q>>2]|0)+8>>2]&31](q,f,l)|0;C=c[j>>2]|0}if((n|0)<(C|0)){$i(d);D=(c[j>>2]|0)+-1&m}else D=o;o=(c[e>>2]|0)<(c[i>>2]|0);c[g>>2]=o?f:l;c[A+(k<<4)+4>>2]=o?l:f;f=A+(k<<4)+8|0;c[f>>2]=0;c[f+4>>2]=0;f=(c[p>>2]|0)+(D<<2)|0;c[(c[d+64>>2]|0)+(k<<2)>>2]=c[f>>2];c[f>>2]=k;h=g;return h|0}function kj(a){a=a|0;return c[a+16>>2]|0}function lj(a){a=a|0;return c[a+16>>2]|0}function mj(a){a=a|0;return a+4|0}function nj(a){a=a|0;return c[a+8>>2]|0}function oj(a,b){a=a|0;b=b|0;c[a+24>>2]=b;return}function pj(a){a=a|0;return 0}function qj(a,b){a=a|0;b=b|0;c[a+72>>2]=b;return}function rj(a){a=a|0;return}function sj(a){a=a|0;xs(a);return}function tj(a,b){a=a|0;b=b|0;var d=0;d=c[a+4>>2]|0;return ((c[b>>2]|0)==(d|0)?1:(c[b+4>>2]|0)==(d|0))|0}function uj(a){a=a|0;xs(a);return}function vj(a,b){a=a|0;b=b|0;var d=0;d=c[a+4>>2]|0;if((c[b>>2]|0)!=(d|0)?(c[b+4>>2]|0)!=(d|0):0)return 0;d=c[a+8>>2]|0;pc[c[(c[d>>2]|0)+32>>2]&63](d,b,c[a+12>>2]|0);return 0}function wj(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0.0;e=i;i=i+80|0;f=e+56|0;h=e+32|0;j=e;k=c[c[a>>2]>>2]|0;l=c[c[a+4>>2]>>2]|0;if(!(Wb[c[(c[b>>2]|0)+24>>2]&31](b,k,l)|0)){i=e;return}m=c[k+192>>2]|0;c[f>>2]=0;c[f+4>>2]=m;c[f+8>>2]=k;c[f+12>>2]=k+4;c[f+16>>2]=-1;c[f+20>>2]=-1;m=c[l+192>>2]|0;c[h>>2]=0;c[h+4>>2]=m;c[h+8>>2]=l;c[h+12>>2]=l+4;c[h+16>>2]=-1;c[h+20>>2]=-1;m=a+8|0;a=c[m>>2]|0;if(!a){n=Sb[c[(c[b>>2]|0)+8>>2]&31](b,f,h,0)|0;c[m>>2]=n;if(!n){i=e;return}else o=n}else o=a;c[j>>2]=8168;c[j+4>>2]=0;c[j+8>>2]=f;c[j+12>>2]=h;if((c[d+8>>2]|0)==1){Ib[c[(c[o>>2]|0)+8>>2]&31](o,f,h,d,j);i=e;return}p=+Vb[c[(c[o>>2]|0)+12>>2]&15](o,k,l,d,j);j=d+12|0;if(!(+g[j>>2]>p)){i=e;return}g[j>>2]=p;i=e;return}function xj(b){b=b|0;var d=0,e=0,f=0,g=0;c[b>>2]=4496;d=b+12|0;e=b+20|0;f=c[e>>2]|0;g=b+24|0;if(f){if(a[g>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[f+-4>>2]|0);}c[e>>2]=0}a[g>>0]=1;c[e>>2]=0;c[d>>2]=0;c[b+16>>2]=0;return}function yj(b){b=b|0;var d=0;c[b>>2]=4496;d=c[b+20>>2]|0;if(!d){xs(b);return}if(!(a[b+24>>0]|0)){xs(b);return}c[3710]=(c[3710]|0)+1;xs(c[d+-4>>2]|0);xs(b);return}function zj(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,h=0,j=0,k=0,l=0,m=0,n=0.0,o=0.0,p=0.0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;f=i;i=i+16|0;h=f+4|0;j=f;c[1120]=(c[1120]|0)+1;k=b+4|0;if(!(c[k>>2]&2))l=12176;else{m=c[d+192>>2]|0;n=+jc[c[(c[m>>2]|0)+20>>2]&1](m,.019999999552965164);g[h>>2]=n;m=c[e+192>>2]|0;o=+jc[c[(c[m>>2]|0)+20>>2]&1](m,.019999999552965164);g[j>>2]=o;l=n<o?h:j}j=c[l>>2]|0;o=+g[d+184>>2];n=+g[e+184>>2];p=o<n?o:n;l=c[b+68>>2]|0;h=l+8|0;m=c[h>>2]|0;if(!m){if(c[k>>2]&4){q=0;i=f;return q|0}c[3708]=(c[3708]|0)+1;k=ws(791)|0;if(!k)r=0;else{s=k+4+15&-16;c[s+-4>>2]=k;r=s}}else{s=l+12|0;l=c[s>>2]|0;c[s>>2]=c[l>>2];c[h>>2]=m+-1;r=l}c[r>>2]=1025;c[r+116>>2]=0;a[r+120>>0]=0;l=r+124|0;c[l>>2]=0;c[l+4>>2]=0;c[l+8>>2]=0;c[l+12>>2]=0;c[l+16>>2]=0;c[l+20>>2]=0;c[l+24>>2]=0;c[l+28>>2]=0;c[r+300>>2]=0;a[r+304>>0]=0;l=r+308|0;c[l>>2]=0;c[l+4>>2]=0;c[l+8>>2]=0;c[l+12>>2]=0;c[l+16>>2]=0;c[l+20>>2]=0;c[l+24>>2]=0;c[l+28>>2]=0;c[r+484>>2]=0;a[r+488>>0]=0;l=r+492|0;c[l>>2]=0;c[l+4>>2]=0;c[l+8>>2]=0;c[l+12>>2]=0;c[l+16>>2]=0;c[l+20>>2]=0;c[l+24>>2]=0;c[l+28>>2]=0;c[r+668>>2]=0;a[r+672>>0]=0;l=r+676|0;c[l>>2]=0;c[l+4>>2]=0;c[l+8>>2]=0;c[l+12>>2]=0;c[l+16>>2]=0;c[l+20>>2]=0;c[l+24>>2]=0;c[l+28>>2]=0;c[r+740>>2]=d;c[r+744>>2]=e;c[r+748>>2]=0;c[r+752>>2]=j;g[r+756>>2]=p;j=r;e=b+12|0;d=c[e>>2]|0;c[r+768>>2]=d;l=b+16|0;if((d|0)==(c[l>>2]|0)?(m=(d|0)!=0?d<<1:1,(d|0)<(m|0)):0){if(!m){t=0;u=d}else{c[3708]=(c[3708]|0)+1;h=ws((m<<2|3)+16|0)|0;if(!h)v=0;else{s=h+4+15&-16;c[s+-4>>2]=h;v=s}t=v;u=c[e>>2]|0}v=b+20|0;if((u|0)>0){s=0;do{c[t+(s<<2)>>2]=c[(c[v>>2]|0)+(s<<2)>>2];s=s+1|0}while((s|0)!=(u|0));}s=c[v>>2]|0;h=b+24|0;if(!s)w=u;else{if(!(a[h>>0]|0))x=u;else{c[3710]=(c[3710]|0)+1;xs(c[s+-4>>2]|0);x=c[e>>2]|0}c[v>>2]=0;w=x}a[h>>0]=1;c[v>>2]=t;c[l>>2]=m;y=w}else y=d;c[(c[b+20>>2]|0)+(y<<2)>>2]=j;c[e>>2]=y+1;q=r;i=f;return q|0}function Aj(a,b){a=a|0;b=b|0;c[b+748>>2]=0;return}function Bj(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0;c[1120]=(c[1120]|0)+-1;Mb[c[(c[b>>2]|0)+20>>2]&127](b,e);f=c[e+768>>2]|0;g=b+12|0;h=(c[g>>2]|0)+-1|0;i=b+20|0;j=c[i>>2]|0;k=j+(f<<2)|0;l=d[k>>0]|d[k+1>>0]<<8|d[k+2>>0]<<16|d[k+3>>0]<<24;c[k>>2]=c[j+(h<<2)>>2];j=(c[i>>2]|0)+(h<<2)|0;a[j>>0]=l;a[j+1>>0]=l>>8;a[j+2>>0]=l>>16;a[j+3>>0]=l>>24;c[(c[(c[i>>2]|0)+(f<<2)>>2]|0)+768>>2]=f;c[g>>2]=(c[g>>2]|0)+-1;g=c[b+68>>2]|0;if(!e)return;b=c[g+16>>2]|0;if(b>>>0<=e>>>0?(b+($(c[g>>2]|0,c[g+4>>2]|0)|0)|0)>>>0>e>>>0:0){b=g+12|0;c[e>>2]=c[b>>2];c[b>>2]=e;b=g+8|0;c[b>>2]=(c[b>>2]|0)+1;return}c[3710]=(c[3710]|0)+1;xs(c[e+-4>>2]|0);return}function Cj(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;f=i;i=i+16|0;g=f;c[g>>2]=a;c[g+4>>2]=e;e=c[a+72+((c[(c[b+4>>2]|0)+4>>2]|0)*144|0)+(c[(c[d+4>>2]|0)+4>>2]<<2)>>2]|0;a=Sb[c[(c[e>>2]|0)+8>>2]&31](e,g,b,d)|0;i=f;return a|0}function Dj(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;a=c[b+204>>2]|0;if(a&4){e=0;return e|0}b=c[d+204>>2]|0;if(b&4){e=0;return e|0}if(!(a&3)){e=1;return e|0}e=(b&3|0)==0;return e|0}function Ej(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;a=c[b+216>>2]|0;if((a|0)==2|(a|0)==5?(a=c[d+216>>2]|0,(a|0)==2|(a|0)==5):0){e=0;return e|0}if(!((c[b+260>>2]|0)!=0?!(ec[c[(c[b>>2]|0)+12>>2]&31](b,d)|0):0)){if(!(c[d+260>>2]|0)){e=1;return e|0}if(ec[c[(c[d>>2]|0)+12>>2]&31](d,b)|0){e=1;return e|0}}e=0;return e|0}function Fj(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;f=i;i=i+16|0;g=f;c[g>>2]=4608;c[g+4>>2]=d;c[g+8>>2]=a;pc[c[(c[b>>2]|0)+48>>2]&63](b,g,e);i=f;return}function Gj(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=c[a+64>>2]|0;a=d+8|0;e=c[a>>2]|0;if(e){f=d+12|0;d=c[f>>2]|0;c[f>>2]=c[d>>2];c[a>>2]=e+-1;g=d;return g|0}c[3708]=(c[3708]|0)+1;d=ws(b+19|0)|0;if(!d){g=0;return g|0}b=d+4+15&-16;c[b+-4>>2]=d;g=b;return g|0}function Hj(a,b){a=a|0;b=b|0;var d=0;d=c[a+64>>2]|0;if(!b)return;a=c[d+16>>2]|0;if(a>>>0<=b>>>0?(a+($(c[d>>2]|0,c[d+4>>2]|0)|0)|0)>>>0>b>>>0:0){a=d+12|0;c[b>>2]=c[a>>2];c[a>>2]=b;a=d+8|0;c[a>>2]=(c[a>>2]|0)+1;return}c[3710]=(c[3710]|0)+1;xs(c[b+-4>>2]|0);return}function Ij(a){a=a|0;return c[a+12>>2]|0}function Jj(a,b){a=a|0;b=b|0;return c[(c[a+20>>2]|0)+(b<<2)>>2]|0}function Kj(a){a=a|0;var b=0;if(!(c[a+12>>2]|0)){b=0;return b|0}b=c[a+20>>2]|0;return b|0}function Lj(a){a=a|0;return c[a+68>>2]|0}function Mj(a){a=a|0;return c[a+68>>2]|0}function Nj(a){a=a|0;xs(a);return}function Oj(a,b){a=a|0;b=b|0;var d=0;d=c[a+8>>2]|0;pc[c[d+60>>2]&63](b,d,c[a+4>>2]|0);return 0}function Pj(b){b=b|0;var d=0,e=0,f=0,g=0;c[b>>2]=4680;d=b+268|0;e=b+276|0;f=c[e>>2]|0;g=b+280|0;if(f){if(a[g>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[f+-4>>2]|0);}c[e>>2]=0}a[g>>0]=1;c[e>>2]=0;c[d>>2]=0;c[b+272>>2]=0;return}function Qj(b){b=b|0;var d=0,e=0,f=0,g=0;c[b>>2]=4680;d=b+268|0;e=b+276|0;f=c[e>>2]|0;g=b+280|0;if(f){if(a[g>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[f+-4>>2]|0);}c[e>>2]=0}a[g>>0]=1;c[e>>2]=0;c[d>>2]=0;c[b+272>>2]=0;c[3710]=(c[3710]|0)+1;xs(c[b+-4>>2]|0);return}function Rj(a,b,d){a=a|0;b=b|0;d=d|0;var 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;c[b+16>>2]=c[a+4>>2];c[b+20>>2]=c[a+8>>2];c[b+24>>2]=c[a+12>>2];c[b+28>>2]=c[a+16>>2];c[b+32>>2]=c[a+20>>2];c[b+36>>2]=c[a+24>>2];c[b+40>>2]=c[a+28>>2];c[b+44>>2]=c[a+32>>2];c[b+48>>2]=c[a+36>>2];c[b+52>>2]=c[a+40>>2];c[b+56>>2]=c[a+44>>2];c[b+60>>2]=c[a+48>>2];c[b+64>>2]=c[a+52>>2];c[b+68>>2]=c[a+56>>2];c[b+72>>2]=c[a+60>>2];c[b+76>>2]=c[a+64>>2];c[b+80>>2]=c[a+68>>2];c[b+84>>2]=c[a+72>>2];c[b+88>>2]=c[a+76>>2];c[b+92>>2]=c[a+80>>2];c[b+96>>2]=c[a+84>>2];c[b+100>>2]=c[a+88>>2];c[b+104>>2]=c[a+92>>2];c[b+108>>2]=c[a+96>>2];c[b+112>>2]=c[a+100>>2];c[b+116>>2]=c[a+104>>2];c[b+120>>2]=c[a+108>>2];c[b+124>>2]=c[a+112>>2];c[b+128>>2]=c[a+116>>2];c[b+132>>2]=c[a+120>>2];c[b+136>>2]=c[a+124>>2];c[b+140>>2]=c[a+128>>2];c[b+144>>2]=c[a+132>>2];c[b+148>>2]=c[a+136>>2];c[b+152>>2]=c[a+140>>2];c[b+156>>2]=c[a+144>>2];c[b+160>>2]=c[a+148>>2];c[b+164>>2]=c[a+152>>2];c[b+168>>2]=c[a+156>>2];c[b+172>>2]=c[a+160>>2];c[b+176>>2]=c[a+164>>2];c[b+180>>2]=c[a+168>>2];c[b+184>>2]=c[a+172>>2];c[b+188>>2]=c[a+176>>2];c[b+224>>2]=c[a+180>>2];c[b+192>>2]=c[a+184>>2];c[b>>2]=0;c[b+4>>2]=ec[c[(c[d>>2]|0)+28>>2]&31](d,c[a+192>>2]|0)|0;c[b+8>>2]=0;c[b+228>>2]=c[a+204>>2];c[b+232>>2]=c[a+208>>2];c[b+236>>2]=c[a+212>>2];c[b+240>>2]=c[a+216>>2];c[b+196>>2]=c[a+220>>2];c[b+200>>2]=c[a+224>>2];c[b+204>>2]=c[a+232>>2];c[b+208>>2]=c[a+228>>2];c[b+244>>2]=c[a+236>>2];e=ec[c[(c[d>>2]|0)+40>>2]&31](d,a)|0;f=ec[c[(c[d>>2]|0)+28>>2]&31](d,e)|0;c[b+12>>2]=f;if(!f){g=a+248|0;h=c[g>>2]|0;i=b+212|0;c[i>>2]=h;j=a+252|0;k=c[j>>2]|0;l=b+216|0;c[l>>2]=k;m=a+256|0;n=c[m>>2]|0;o=b+220|0;c[o>>2]=n;p=a+260|0;q=c[p>>2]|0;r=b+248|0;c[r>>2]=q;return 4744}Mb[c[(c[d>>2]|0)+48>>2]&127](d,e);g=a+248|0;h=c[g>>2]|0;i=b+212|0;c[i>>2]=h;j=a+252|0;k=c[j>>2]|0;l=b+216|0;c[l>>2]=k;m=a+256|0;n=c[m>>2]|0;o=b+220|0;c[o>>2]=n;p=a+260|0;q=c[p>>2]|0;r=b+248|0;c[r>>2]=q;return 4744}function Sj(a,b){a=a|0;b=b|0;var d=0,e=0;d=Ob[c[(c[a>>2]|0)+16>>2]&127](a)|0;e=Wb[c[(c[b>>2]|0)+16>>2]&31](b,d,1)|0;d=Wb[c[(c[a>>2]|0)+20>>2]&31](a,c[e+8>>2]|0,b)|0;Ib[c[(c[b>>2]|0)+20>>2]&31](b,e,d,1245859651,a);return}function Tj(a){a=a|0;return 256}function Uj(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;c[b>>2]=4784;d=b+8|0;e=c[d>>2]|0;f=b+16|0;g=c[f>>2]|0;if((e|0)>0){h=b+68|0;i=b+24|0;j=e;e=g;k=0;while(1){l=(c[e+(k<<2)>>2]|0)+188|0;m=c[l>>2]|0;if(!m){n=j;o=e}else{p=c[h>>2]|0;q=Ob[c[(c[p>>2]|0)+36>>2]&127](p)|0;pc[c[(c[q>>2]|0)+40>>2]&63](q,m,c[i>>2]|0);q=c[h>>2]|0;pc[c[(c[q>>2]|0)+12>>2]&63](q,m,c[i>>2]|0);c[l>>2]=0;n=c[d>>2]|0;o=c[f>>2]|0}k=k+1|0;if((k|0)>=(n|0)){r=o;break}else{j=n;e=o}}}else r=g;g=b+20|0;if(!r){a[g>>0]=1;c[f>>2]=0;c[d>>2]=0;s=b+12|0;c[s>>2]=0;return}if(a[g>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[r+-4>>2]|0);}c[f>>2]=0;a[g>>0]=1;c[f>>2]=0;c[d>>2]=0;s=b+12|0;c[s>>2]=0;return}function Vj(a){a=a|0;Uj(a);xs(a);return}function Wj(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;g=i;i=i+96|0;h=g+32|0;j=g+16|0;k=g;l=d;m=b+8|0;n=c[m>>2]|0;o=b+12|0;if((n|0)==(c[o>>2]|0)?(p=(n|0)!=0?n<<1:1,(n|0)<(p|0)):0){if(!p){q=0;r=n}else{c[3708]=(c[3708]|0)+1;s=ws((p<<2|3)+16|0)|0;if(!s)t=0;else{u=s+4+15&-16;c[u+-4>>2]=s;t=u}q=t;r=c[m>>2]|0}t=b+16|0;if((r|0)>0){u=0;do{c[q+(u<<2)>>2]=c[(c[t>>2]|0)+(u<<2)>>2];u=u+1|0}while((u|0)!=(r|0));}u=c[t>>2]|0;s=b+20|0;if(!u)v=r;else{if(!(a[s>>0]|0))w=r;else{c[3710]=(c[3710]|0)+1;xs(c[u+-4>>2]|0);w=c[m>>2]|0}c[t>>2]=0;v=w}a[s>>0]=1;c[t>>2]=q;c[o>>2]=p;x=v}else x=n;c[(c[b+16>>2]|0)+(x<<2)>>2]=l;c[m>>2]=x+1;x=d+4|0;c[h>>2]=c[x>>2];c[h+4>>2]=c[x+4>>2];c[h+8>>2]=c[x+8>>2];c[h+12>>2]=c[x+12>>2];x=h+16|0;m=d+20|0;c[x>>2]=c[m>>2];c[x+4>>2]=c[m+4>>2];c[x+8>>2]=c[m+8>>2];c[x+12>>2]=c[m+12>>2];m=h+32|0;x=d+36|0;c[m>>2]=c[x>>2];c[m+4>>2]=c[x+4>>2];c[m+8>>2]=c[x+8>>2];c[m+12>>2]=c[x+12>>2];x=h+48|0;m=d+52|0;c[x>>2]=c[m>>2];c[x+4>>2]=c[m+4>>2];c[x+8>>2]=c[m+8>>2];c[x+12>>2]=c[m+12>>2];m=d+192|0;x=c[m>>2]|0;tc[c[(c[x>>2]|0)+8>>2]&63](x,h,j,k);h=c[b+68>>2]|0;c[d+188>>2]=nc[c[(c[h>>2]|0)+8>>2]&1](h,j,k,c[(c[m>>2]|0)+4>>2]|0,d,e,f,c[b+24>>2]|0,0)|0;i=g;return}function Xj(b){b=b|0;var d=0,e=0,f=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0.0,J=0.0,K=0.0,L=0.0,M=0.0,N=0.0,O=0.0,P=0.0,Q=0.0,R=0.0,S=0.0,T=0.0,U=0.0,V=0.0,W=0.0,X=0.0,Y=0.0,Z=0.0,_=0.0,$=0.0,aa=0.0,ba=0.0,ca=0.0,da=0.0,ea=0.0;d=i;i=i+64|0;e=d+48|0;f=d+32|0;h=d+16|0;j=d;k=b+8|0;l=c[k>>2]|0;if((l|0)<=0){i=d;return}m=b+16|0;n=b+76|0;o=e+4|0;p=e+8|0;q=f+4|0;r=f+8|0;s=b+44|0;t=b+68|0;u=b+72|0;v=b+24|0;b=h+4|0;w=h+8|0;x=j+4|0;y=j+8|0;z=e+12|0;A=h+12|0;B=f+12|0;C=j+12|0;D=l;l=0;while(1){E=c[(c[m>>2]|0)+(l<<2)>>2]|0;if((a[n>>0]|0)==0?(F=c[E+216>>2]|0,(F|0)==2|(F|0)==5):0)G=D;else{F=E+192|0;H=c[F>>2]|0;tc[c[(c[H>>2]|0)+8>>2]&63](H,E+4|0,e,f);I=+g[e>>2]+-.019999999552965164;g[e>>2]=I;J=+g[o>>2]+-.019999999552965164;g[o>>2]=J;K=+g[p>>2]+-.019999999552965164;g[p>>2]=K;L=+g[f>>2]+.019999999552965164;g[f>>2]=L;M=+g[q>>2]+.019999999552965164;g[q>>2]=M;N=+g[r>>2]+.019999999552965164;g[r>>2]=N;if(((a[s>>0]|0)!=0?(c[E+236>>2]|0)==2:0)?(c[E+204>>2]&3|0)==0:0){H=c[F>>2]|0;tc[c[(c[H>>2]|0)+8>>2]&63](H,E+68|0,h,j);O=+g[h>>2]+-.019999999552965164;g[h>>2]=O;P=+g[b>>2]+-.019999999552965164;g[b>>2]=P;Q=+g[w>>2]+-.019999999552965164;g[w>>2]=Q;R=+g[j>>2]+.019999999552965164;g[j>>2]=R;S=+g[x>>2]+.019999999552965164;g[x>>2]=S;T=+g[y>>2]+.019999999552965164;g[y>>2]=T;U=+g[e>>2];if(O<U){g[e>>2]=O;V=O}else V=U;U=+g[o>>2];if(P<U){g[o>>2]=P;W=P}else W=U;U=+g[p>>2];if(Q<U){g[p>>2]=Q;X=Q}else X=U;U=+g[A>>2];if(U<+g[z>>2])g[z>>2]=U;U=+g[f>>2];if(U<R){g[f>>2]=R;Y=R}else Y=U;U=+g[q>>2];if(U<S){g[q>>2]=S;Z=S}else Z=U;U=+g[r>>2];if(U<T){g[r>>2]=T;_=T}else _=U;U=+g[C>>2];if(+g[B>>2]<U){g[B>>2]=U;$=Z;aa=X;ba=_;ca=V;da=Y;ea=W}else{$=Z;aa=X;ba=_;ca=V;da=Y;ea=W}}else{$=M;aa=K;ba=N;ca=I;da=L;ea=J}H=c[t>>2]|0;if((c[E+204>>2]&1|0)==0?(J=da-ca,L=$-ea,I=ba-aa,!(J*J+L*L+I*I<999999995904.0)):0){F=E+216|0;if((c[F>>2]&-2|0)!=4)c[F>>2]=5;if((a[4872]|0)!=0?(F=c[u>>2]|0,(F|0)!=0):0){a[4872]=0;Mb[c[(c[F>>2]|0)+36>>2]&127](F,4880);F=c[u>>2]|0;Mb[c[(c[F>>2]|0)+36>>2]&127](F,4936);F=c[u>>2]|0;Mb[c[(c[F>>2]|0)+36>>2]&127](F,5008);F=c[u>>2]|0;Mb[c[(c[F>>2]|0)+36>>2]&127](F,5080);}}else Ib[c[(c[H>>2]|0)+16>>2]&31](H,c[E+188>>2]|0,e,f,c[v>>2]|0);G=c[k>>2]|0}l=l+1|0;if((l|0)>=(G|0))break;else D=G}i=d;return}function Yj(a){a=a|0;var b=0;b=c[a+68>>2]|0;Mb[c[(c[b>>2]|0)+32>>2]&127](b,c[a+24>>2]|0);return}function Zj(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;Kb[c[(c[a>>2]|0)+8>>2]&255](a);Kb[c[(c[a>>2]|0)+12>>2]&255](a);b=a+24|0;d=c[b>>2]|0;if(!d)return;e=c[(c[d>>2]|0)+32>>2]|0;f=c[a+68>>2]|0;g=Ob[c[(c[f>>2]|0)+36>>2]&127](f)|0;tc[e&63](d,g,a+28|0,c[b>>2]|0);return}function _j(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;e=d+188|0;f=c[e>>2]|0;if(f){g=b+68|0;h=c[g>>2]|0;i=Ob[c[(c[h>>2]|0)+36>>2]&127](h)|0;h=b+24|0;pc[c[(c[i>>2]|0)+40>>2]&63](i,f,c[h>>2]|0);i=c[g>>2]|0;pc[c[(c[i>>2]|0)+12>>2]&63](i,f,c[h>>2]|0);c[e>>2]=0}e=b+8|0;h=c[e>>2]|0;if((h|0)<=0)return;f=b+16|0;b=c[f>>2]|0;i=0;while(1){j=b+(i<<2)|0;if((c[j>>2]|0)==(d|0))break;g=i+1|0;if((g|0)<(h|0))i=g;else{k=9;break}}if((k|0)==9)return;if((i|0)>=(h|0))return;i=d;d=h+-1|0;c[j>>2]=c[b+(d<<2)>>2];b=(c[f>>2]|0)+(d<<2)|0;a[b>>0]=i;a[b+1>>0]=i>>8;a[b+2>>0]=i>>16;a[b+3>>0]=i>>24;c[e>>2]=(c[e>>2]|0)+-1;return}function $j(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0.0,C=0.0,D=0.0,E=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,O=0.0,Q=0.0,R=0.0,S=0.0,T=0.0,U=0.0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0;h=i;i=i+880|0;j=h+696|0;k=h+336|0;l=h+320|0;m=h+264|0;n=h+248|0;o=h+232|0;p=h+200|0;q=h+184|0;r=h+64|0;s=h+48|0;t=h+32|0;u=h;c[m+8>>2]=0;c[m+12>>2]=-1;c[m+16>>2]=1065353216;c[m+20>>2]=1065353216;c[m+24>>2]=1065353216;g[m+28>>2]=0.0;c[m>>2]=11048;c[m+4>>2]=8;g[m+32>>2]=0.0;g[m+48>>2]=0.0;v=c[e+4>>2]|0;w=c[e+12>>2]|0;x=v+4|0;y=c[x>>2]|0;if((y|0)<20){c[j>>2]=5104;z=j+164|0;c[j+168>>2]=0;g[j+172>>2]=0.0;A=f+4|0;c[z>>2]=c[A>>2];g[k+308>>2]=9.999999747378752e-05;a[k+332>>0]=0;c[n>>2]=12504;c[n+4>>2]=k;c[n+8>>2]=m;c[n+12>>2]=v;c[o>>2]=11912;c[o+4>>2]=k;c[o+8>>2]=m;c[o+12>>2]=v;m=(c[f+16>>2]&8|0)==0?n:o;if((_b[c[(c[m>>2]|0)+8>>2]&3](m,b,d,w,w,j)|0?(m=j+132|0,B=+g[m>>2],o=j+136|0,C=+g[o>>2],n=j+140|0,D=+g[n>>2],E=B*B+C*C+D*D,E>9.999999747378752e-05):0)?(F=+g[z>>2],F<+g[A>>2]):0){G=1.0/+P(+E);g[m>>2]=B*G;g[o>>2]=C*G;g[n>>2]=D*G;c[p>>2]=c[e+8>>2];c[p+4>>2]=0;n=p+8|0;c[n>>2]=c[m>>2];c[n+4>>2]=c[m+4>>2];c[n+8>>2]=c[m+8>>2];c[n+12>>2]=c[m+12>>2];g[p+24>>2]=F;+fc[c[(c[f>>2]|0)+12>>2]&15](f,p,1);}i=h;return}if((y+-21|0)>>>0<9){p=w+16|0;m=w+32|0;F=+g[w>>2];G=+g[p>>2];D=+g[m>>2];C=+g[w+4>>2];B=+g[w+20>>2];E=+g[w+36>>2];H=+g[w+8>>2];I=+g[w+24>>2];J=+g[w+40>>2];K=-+g[w+48>>2];L=-+g[w+52>>2];M=-+g[w+56>>2];N=F*K+G*L+D*M;O=C*K+B*L+E*M;Q=H*K+I*L+J*M;M=+g[b+48>>2];L=+g[b+52>>2];K=+g[b+56>>2];R=N+(F*M+G*L+D*K);S=O+(C*M+B*L+E*K);T=Q+(H*M+I*L+J*K);g[q>>2]=R;g[q+4>>2]=S;g[q+8>>2]=T;g[q+12>>2]=0.0;K=+g[d+48>>2];L=+g[d+52>>2];M=+g[d+56>>2];U=N+(F*K+G*L+D*M);D=O+(C*K+B*L+E*M);E=Q+(H*K+I*L+J*M);if((c[x>>2]|0)==21){x=c[e+8>>2]|0;n=c[f+16>>2]|0;o=r+4|0;c[o>>2]=c[q>>2];c[o+4>>2]=c[q+4>>2];c[o+8>>2]=c[q+8>>2];c[o+12>>2]=c[q+12>>2];g[r+20>>2]=U;g[r+24>>2]=D;g[r+28>>2]=E;g[r+32>>2]=0.0;c[r+36>>2]=n;n=r+40|0;g[n>>2]=1.0;c[r>>2]=5136;c[r+44>>2]=f;c[r+48>>2]=x;c[r+52>>2]=v;x=r+56|0;c[x>>2]=c[w>>2];c[x+4>>2]=c[w+4>>2];c[x+8>>2]=c[w+8>>2];c[x+12>>2]=c[w+12>>2];x=r+72|0;c[x>>2]=c[p>>2];c[x+4>>2]=c[p+4>>2];c[x+8>>2]=c[p+8>>2];c[x+12>>2]=c[p+12>>2];x=r+88|0;c[x>>2]=c[m>>2];c[x+4>>2]=c[m+4>>2];c[x+8>>2]=c[m+8>>2];c[x+12>>2]=c[m+12>>2];x=r+104|0;o=w+48|0;c[x>>2]=c[o>>2];c[x+4>>2]=c[o+4>>2];c[x+8>>2]=c[o+8>>2];c[x+12>>2]=c[o+12>>2];c[n>>2]=c[f+4>>2];n=c[v+52>>2]|0;c[l>>2]=9008;c[l+4>>2]=n;c[l+8>>2]=r;r=c[v+56>>2]|0;c[j>>2]=0;c[j+4>>2]=0;c[j+8>>2]=0;c[j+12>>2]=0;c[k>>2]=0;c[k+4>>2]=0;c[k+8>>2]=0;c[k+12>>2]=0;if(!(a[r+60>>0]|0))eq(r,l,q,U,D,E,j,k);else fq(r,l,q,U,D,E,j,k,c[r+56>>2]|0);i=h;return}r=c[e+8>>2]|0;k=c[f+16>>2]|0;g[j+4>>2]=R;g[j+8>>2]=S;g[j+12>>2]=T;g[j+16>>2]=0.0;g[j+20>>2]=U;g[j+24>>2]=D;g[j+28>>2]=E;g[j+32>>2]=0.0;c[j+36>>2]=k;k=j+40|0;g[k>>2]=1.0;c[j>>2]=5160;c[j+44>>2]=f;c[j+48>>2]=r;c[j+52>>2]=v;r=j+56|0;c[r>>2]=c[w>>2];c[r+4>>2]=c[w+4>>2];c[r+8>>2]=c[w+8>>2];c[r+12>>2]=c[w+12>>2];r=j+72|0;c[r>>2]=c[p>>2];c[r+4>>2]=c[p+4>>2];c[r+8>>2]=c[p+8>>2];c[r+12>>2]=c[p+12>>2];p=j+88|0;c[p>>2]=c[m>>2];c[p+4>>2]=c[m+4>>2];c[p+8>>2]=c[m+8>>2];c[p+12>>2]=c[m+12>>2];m=j+104|0;p=w+48|0;c[m>>2]=c[p>>2];c[m+4>>2]=c[p+4>>2];c[m+8>>2]=c[p+8>>2];c[m+12>>2]=c[p+12>>2];c[k>>2]=c[f+4>>2];g[s>>2]=R;k=s+4|0;g[k>>2]=S;p=s+8|0;g[p>>2]=T;g[s+12>>2]=0.0;if(U<R)g[s>>2]=U;if(D<S)g[k>>2]=D;if(E<T)g[p>>2]=E;g[t>>2]=R;p=t+4|0;g[p>>2]=S;k=t+8|0;g[k>>2]=T;g[t+12>>2]=0.0;if(R<U)g[t>>2]=U;if(S<D)g[p>>2]=D;if(T<E)g[k>>2]=E;tc[c[(c[v>>2]|0)+64>>2]&63](v,j,s,t);i=h;return}if((y|0)!=31){i=h;return}y=c[v+68>>2]|0;t=c[e+8>>2]|0;c[u>>2]=5184;c[u+4>>2]=t;c[u+8>>2]=v;c[u+12>>2]=w;c[u+16>>2]=b;c[u+20>>2]=d;c[u+24>>2]=f;if(!y){f=c[v+20>>2]|0;if((f|0)>0)V=0;else{i=h;return}do{hk(u,V);V=V+1|0}while((V|0)<(f|0));i=h;return}E=+g[w+48>>2];T=+g[b+48>>2]-E;D=+g[w+52>>2];S=+g[b+52>>2]-D;U=+g[w+56>>2];R=+g[b+56>>2]-U;M=+g[w>>2];J=+g[w+16>>2];L=+g[w+32>>2];I=+g[w+4>>2];K=+g[w+20>>2];H=+g[w+36>>2];Q=+g[w+8>>2];B=+g[w+24>>2];C=+g[w+40>>2];O=T*M+S*J+R*L;G=T*I+S*K+R*H;F=T*Q+S*B+R*C;R=+g[d+48>>2]-E;E=+g[d+52>>2]-D;D=+g[d+56>>2]-U;d=c[y>>2]|0;if(d){U=R*M+E*J+D*L-O;L=R*I+E*K+D*H-G;H=R*Q+E*B+D*C-F;C=1.0/+P(+(U*U+L*L+H*H));D=U*C;B=L*C;E=H*C;C=D==0.0?999999984306749440.0:1.0/D;Q=B==0.0?999999984306749440.0:1.0/B;R=E==0.0?999999984306749440.0:1.0/E;y=C<0.0&1;w=Q<0.0&1;b=R<0.0&1;K=D*U+B*L+E*H;c[3708]=(c[3708]|0)+1;f=ws(531)|0;if(!f)W=0;else{V=f+4+15&-16;c[V+-4>>2]=f;W=V}Cs(W|0,0,512)|0;c[W>>2]=d;d=j+16|0;V=j+(y<<4)|0;f=j+((y^1)<<4)|0;y=j+(w<<4)+4|0;v=j+((w^1)<<4)+4|0;w=j+(b<<4)+8|0;t=j+((b^1)<<4)+8|0;b=W;W=128;e=128;s=1;k=126;while(1){p=s+-1|0;m=c[b+(p<<2)>>2]|0;c[j>>2]=c[m>>2];c[j+4>>2]=c[m+4>>2];c[j+8>>2]=c[m+8>>2];c[j+12>>2]=c[m+12>>2];r=m+16|0;c[d>>2]=c[r>>2];c[d+4>>2]=c[r+4>>2];c[d+8>>2]=c[r+8>>2];c[d+12>>2]=c[r+12>>2];H=C*(+g[V>>2]-O);E=C*(+g[f>>2]-O);L=Q*(+g[y>>2]-G);B=Q*(+g[v>>2]-G);do if((!(L>E|H>B)?(U=L>H?L:H,D=B<E?B:E,I=R*(+g[w>>2]-F),J=R*(+g[t>>2]-F),!(I>D|U>J)):0)?((J<D?J:D)>0.0?(I>U?I:U)<K:0):0){r=m+40|0;if(!(c[r>>2]|0)){Mb[c[(c[u>>2]|0)+12>>2]&127](u,m);X=b;Y=e;Z=W;_=p;$=k;break}if((p|0)>(k|0)){q=W<<1;if((W|0)<(q|0)){do if((e|0)<(q|0)){do if(!W){aa=0;ba=44}else{c[3708]=(c[3708]|0)+1;l=ws((W<<3|3)+16|0)|0;if(!l)ca=0;else{n=l+4+15&-16;c[n+-4>>2]=l;ca=n}if((W|0)>0)da=0;else{aa=ca;ba=44;break}do{c[ca+(da<<2)>>2]=c[b+(da<<2)>>2];da=da+1|0}while((da|0)!=(W|0));ea=ca}while(0);if((ba|0)==44){ba=0;if(!b){fa=aa;ga=q;break}else ea=aa}c[3710]=(c[3710]|0)+1;xs(c[b+-4>>2]|0);fa=ea;ga=q}else{fa=b;ga=e}while(0);Cs(fa+(W<<2)|0,0,W<<2|0)|0;ha=fa;ia=ga}else{ha=b;ia=e}ja=ha;ka=ia;la=q;ma=q+-2|0}else{ja=b;ka=e;la=W;ma=k}c[ja+(p<<2)>>2]=c[m+36>>2];c[ja+(s<<2)>>2]=c[r>>2];X=ja;Y=ka;Z=la;_=s+1|0;$=ma}else{X=b;Y=e;Z=W;_=p;$=k}while(0);if(!_)break;else{b=X;W=Z;e=Y;s=_;k=$}}if(X){c[3710]=(c[3710]|0)+1;xs(c[X+-4>>2]|0);}}i=h;return}function ak(d,e,f,h,j,k){d=d|0;e=e|0;f=f|0;h=h|0;j=j|0;k=+k;var 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.0,H=0.0,I=0,J=0.0,K=0.0,L=0.0,M=0.0,N=0,O=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0.0,ya=0.0,za=0.0,Aa=0.0,Ba=0.0,Ca=0.0,Da=0,Ea=0.0,Fa=0.0,Ga=0.0,Ha=0.0,Ia=0.0,Ja=0.0,Ka=0.0,La=0.0,Ma=0.0,Na=0.0,Oa=0.0,Pa=0.0,Qa=0.0,Ra=0.0,Sa=0.0,Ta=0.0,Ua=0.0,Va=0.0;l=i;i=i+976|0;m=l+800|0;n=l+440|0;o=l+432|0;p=l+408|0;q=l+184|0;r=l+168|0;s=l+152|0;t=l+136|0;u=l+112|0;v=l+96|0;w=l+80|0;x=l+64|0;y=l+48|0;z=l+24|0;A=l;B=c[h+4>>2]|0;C=c[h+12>>2]|0;D=c[B+4>>2]|0;if((D|0)<20){c[m>>2]=5104;E=m+164|0;c[m+168>>2]=0;g[m+172>>2]=k;F=j+4|0;c[E>>2]=c[F>>2];g[n+308>>2]=9.999999747378752e-05;a[n+332>>0]=0;c[o>>2]=11976;c[p>>2]=11744;c[p+4>>2]=n;c[p+8>>2]=o;c[p+12>>2]=d;c[p+16>>2]=B;c[p+20>>2]=0;if((jp(p,e,f,C,C,m)|0?(p=m+132|0,G=+g[p>>2],o=m+136|0,H=+g[o>>2],I=m+140|0,J=+g[I>>2],K=G*G+H*H+J*J,K>9.999999747378752e-05):0)?(L=+g[E>>2],L<+g[F>>2]):0){M=1.0/+P(+K);g[p>>2]=G*M;g[o>>2]=H*M;g[I>>2]=J*M;I=m+148|0;c[q>>2]=c[h+8>>2];c[q+4>>2]=0;o=q+8|0;c[o>>2]=c[p>>2];c[o+4>>2]=c[p+4>>2];c[o+8>>2]=c[p+8>>2];c[o+12>>2]=c[p+12>>2];p=q+24|0;c[p>>2]=c[I>>2];c[p+4>>2]=c[I+4>>2];c[p+8>>2]=c[I+8>>2];c[p+12>>2]=c[I+12>>2];g[q+40>>2]=L;+fc[c[(c[j>>2]|0)+12>>2]&15](j,q,1);}i=l;return}if((D+-21|0)>>>0>=9){if((D|0)!=31){i=l;return}I=B+20|0;if((c[I>>2]|0)<=0){i=l;return}p=B+28|0;o=C+4|0;F=C+8|0;E=C+16|0;N=C+20|0;O=C+24|0;Q=C+32|0;R=C+36|0;S=C+40|0;T=C+48|0;U=C+52|0;V=C+56|0;W=m+4|0;X=m+8|0;Y=m+12|0;Z=m+16|0;_=m+20|0;$=m+24|0;aa=m+28|0;ba=m+32|0;ca=m+36|0;da=m+40|0;ea=m+44|0;fa=m+48|0;ga=m+52|0;ha=m+56|0;ia=m+60|0;ja=z+4|0;ka=z+8|0;la=z+10|0;ma=z+12|0;na=z+16|0;oa=j+4|0;pa=h+8|0;qa=A+4|0;ra=A+8|0;sa=A+12|0;ta=A+16|0;ua=A+20|0;va=0;do{wa=c[p>>2]|0;L=+g[wa+(va*80|0)>>2];M=+g[wa+(va*80|0)+4>>2];J=+g[wa+(va*80|0)+8>>2];H=+g[wa+(va*80|0)+16>>2];G=+g[wa+(va*80|0)+20>>2];K=+g[wa+(va*80|0)+24>>2];xa=+g[wa+(va*80|0)+32>>2];ya=+g[wa+(va*80|0)+36>>2];za=+g[wa+(va*80|0)+40>>2];Aa=+g[wa+(va*80|0)+48>>2];Ba=+g[wa+(va*80|0)+52>>2];Ca=+g[wa+(va*80|0)+56>>2];Da=c[wa+(va*80|0)+64>>2]|0;Ea=+g[C>>2];Fa=+g[o>>2];Ga=+g[F>>2];Ha=+g[E>>2];Ia=+g[N>>2];Ja=+g[O>>2];Ka=+g[Q>>2];La=+g[R>>2];Ma=+g[S>>2];Na=Aa*Ea+Ba*Fa+Ca*Ga+ +g[T>>2];Oa=Aa*Ha+Ba*Ia+Ca*Ja+ +g[U>>2];Pa=Aa*Ka+Ba*La+Ca*Ma+ +g[V>>2];g[m>>2]=L*Ea+H*Fa+xa*Ga;g[W>>2]=M*Ea+G*Fa+ya*Ga;g[X>>2]=J*Ea+K*Fa+za*Ga;g[Y>>2]=0.0;g[Z>>2]=L*Ha+H*Ia+xa*Ja;g[_>>2]=M*Ha+G*Ia+ya*Ja;g[$>>2]=J*Ha+K*Ia+za*Ja;g[aa>>2]=0.0;g[ba>>2]=L*Ka+H*La+xa*Ma;g[ca>>2]=M*Ka+G*La+ya*Ma;g[da>>2]=J*Ka+K*La+za*Ma;g[ea>>2]=0.0;g[fa>>2]=Na;g[ga>>2]=Oa;g[ha>>2]=Pa;g[ia>>2]=0.0;b[ka>>1]=1;b[la>>1]=-1;c[z>>2]=5272;c[ma>>2]=j;c[na>>2]=va;c[ja>>2]=c[oa>>2];wa=c[pa>>2]|0;c[A>>2]=h;c[qa>>2]=Da;c[ra>>2]=wa;c[sa>>2]=m;c[ta>>2]=-1;c[ua>>2]=va;ak(d,e,f,A,z,k);va=va+1|0}while((va|0)<(c[I>>2]|0));i=l;return}if((D|0)==28){c[m>>2]=5104;I=m+164|0;c[m+168>>2]=0;g[m+172>>2]=k;va=j+4|0;c[I>>2]=c[va>>2];c[u>>2]=11744;c[u+4>>2]=0;c[u+8>>2]=0;c[u+12>>2]=d;c[u+16>>2]=0;c[u+20>>2]=B;if((jp(u,e,f,C,C,m)|0?(u=m+132|0,Pa=+g[u>>2],z=m+136|0,Oa=+g[z>>2],A=m+140|0,Na=+g[A>>2],Ma=Pa*Pa+Oa*Oa+Na*Na,Ma>9.999999747378752e-05):0)?(za=+g[I>>2],za<+g[va>>2]):0){La=1.0/+P(+Ma);g[u>>2]=Pa*La;g[z>>2]=Oa*La;g[A>>2]=Na*La;A=m+148|0;c[n>>2]=c[h+8>>2];c[n+4>>2]=0;z=n+8|0;c[z>>2]=c[u>>2];c[z+4>>2]=c[u+4>>2];c[z+8>>2]=c[u+8>>2];c[z+12>>2]=c[u+12>>2];u=n+24|0;c[u>>2]=c[A>>2];c[u+4>>2]=c[A+4>>2];c[u+8>>2]=c[A+8>>2];c[u+12>>2]=c[A+12>>2];g[n+40>>2]=za;+fc[c[(c[j>>2]|0)+12>>2]&15](j,n,1);}i=l;return}else if((D|0)==21){za=+g[C>>2];La=+g[C+16>>2];Na=+g[C+32>>2];Oa=+g[C+4>>2];Pa=+g[C+20>>2];Ma=+g[C+36>>2];K=+g[C+8>>2];Ka=+g[C+24>>2];J=+g[C+40>>2];ya=-+g[C+48>>2];G=-+g[C+52>>2];M=-+g[C+56>>2];xa=za*ya+La*G+Na*M;H=Oa*ya+Pa*G+Ma*M;L=K*ya+Ka*G+J*M;M=+g[e+48>>2];G=+g[e+52>>2];ya=+g[e+56>>2];g[r>>2]=xa+(za*M+La*G+Na*ya);g[r+4>>2]=H+(Oa*M+Pa*G+Ma*ya);g[r+8>>2]=L+(K*M+Ka*G+J*ya);g[r+12>>2]=0.0;ya=+g[f+48>>2];G=+g[f+52>>2];M=+g[f+56>>2];Ja=xa+(za*ya+La*G+Na*M);xa=H+(Oa*ya+Pa*G+Ma*M);H=L+(K*ya+Ka*G+J*M);M=+g[f>>2];G=+g[f+16>>2];ya=+g[f+32>>2];L=+g[f+4>>2];Ia=+g[f+20>>2];Ha=+g[f+36>>2];Ga=+g[f+8>>2];Fa=+g[f+24>>2];Ea=+g[f+40>>2];g[n>>2]=za*M+La*G+Na*ya;g[n+4>>2]=za*L+La*Ia+Na*Ha;g[n+8>>2]=za*Ga+La*Fa+Na*Ea;g[n+12>>2]=0.0;g[n+16>>2]=Oa*M+Pa*G+Ma*ya;g[n+20>>2]=Oa*L+Pa*Ia+Ma*Ha;g[n+24>>2]=Oa*Ga+Pa*Fa+Ma*Ea;g[n+28>>2]=0.0;g[n+32>>2]=K*M+Ka*G+J*ya;g[n+36>>2]=K*L+Ka*Ia+J*Ha;g[n+40>>2]=K*Ga+Ka*Fa+J*Ea;D=n+44|0;c[D>>2]=0;c[D+4>>2]=0;c[D+8>>2]=0;c[D+12>>2]=0;c[D+16>>2]=0;D=c[h+8>>2]|0;Ea=+Zb[c[(c[B>>2]|0)+48>>2]&7](B);c[q>>2]=12192;A=q+8|0;u=q+72|0;z=q+136|0;c[q+4>>2]=d;c[A>>2]=c[e>>2];c[A+4>>2]=c[e+4>>2];c[A+8>>2]=c[e+8>>2];c[A+12>>2]=c[e+12>>2];A=q+24|0;va=e+16|0;c[A>>2]=c[va>>2];c[A+4>>2]=c[va+4>>2];c[A+8>>2]=c[va+8>>2];c[A+12>>2]=c[va+12>>2];va=q+40|0;A=e+32|0;c[va>>2]=c[A>>2];c[va+4>>2]=c[A+4>>2];c[va+8>>2]=c[A+8>>2];c[va+12>>2]=c[A+12>>2];A=q+56|0;va=e+48|0;c[A>>2]=c[va>>2];c[A+4>>2]=c[va+4>>2];c[A+8>>2]=c[va+8>>2];c[A+12>>2]=c[va+12>>2];c[u>>2]=c[f>>2];c[u+4>>2]=c[f+4>>2];c[u+8>>2]=c[f+8>>2];c[u+12>>2]=c[f+12>>2];u=q+88|0;va=f+16|0;c[u>>2]=c[va>>2];c[u+4>>2]=c[va+4>>2];c[u+8>>2]=c[va+8>>2];c[u+12>>2]=c[va+12>>2];va=q+104|0;u=f+32|0;c[va>>2]=c[u>>2];c[va+4>>2]=c[u+4>>2];c[va+8>>2]=c[u+8>>2];c[va+12>>2]=c[u+12>>2];u=q+120|0;va=f+48|0;c[u>>2]=c[va>>2];c[u+4>>2]=c[va+4>>2];c[u+8>>2]=c[va+8>>2];c[u+12>>2]=c[va+12>>2];c[z>>2]=c[C>>2];c[z+4>>2]=c[C+4>>2];c[z+8>>2]=c[C+8>>2];c[z+12>>2]=c[C+12>>2];z=q+152|0;va=C+16|0;c[z>>2]=c[va>>2];c[z+4>>2]=c[va+4>>2];c[z+8>>2]=c[va+8>>2];c[z+12>>2]=c[va+12>>2];va=q+168|0;z=C+32|0;c[va>>2]=c[z>>2];c[va+4>>2]=c[z+4>>2];c[va+8>>2]=c[z+8>>2];c[va+12>>2]=c[z+12>>2];z=q+184|0;va=C+48|0;c[z>>2]=c[va>>2];c[z+4>>2]=c[va+4>>2];c[z+8>>2]=c[va+8>>2];c[z+12>>2]=c[va+12>>2];g[q+204>>2]=Ea;c[q>>2]=5224;c[q+212>>2]=j;c[q+216>>2]=D;c[q+220>>2]=B;c[q+200>>2]=c[j+4>>2];g[q+208>>2]=k;tc[c[(c[d>>2]|0)+8>>2]&63](d,n,s,t);D=c[B+52>>2]|0;c[m>>2]=9032;c[m+4>>2]=D;c[m+8>>2]=q;q=c[B+56>>2]|0;if(!(a[q+60>>0]|0))eq(q,m,r,Ja,xa,H,s,t);else fq(q,m,r,Ja,xa,H,s,t,c[q+56>>2]|0);i=l;return}else{H=+g[C>>2];xa=+g[C+16>>2];Ja=+g[C+32>>2];Ea=+g[C+4>>2];J=+g[C+20>>2];Fa=+g[C+36>>2];Ka=+g[C+8>>2];Ga=+g[C+24>>2];K=+g[C+40>>2];Ha=-+g[C+48>>2];Ia=-+g[C+52>>2];L=-+g[C+56>>2];ya=H*Ha+xa*Ia+Ja*L;G=Ea*Ha+J*Ia+Fa*L;M=Ka*Ha+Ga*Ia+K*L;L=+g[e+48>>2];Ia=+g[e+52>>2];Ha=+g[e+56>>2];Ma=ya+(H*L+xa*Ia+Ja*Ha);Pa=G+(Ea*L+J*Ia+Fa*Ha);Oa=M+(Ka*L+Ga*Ia+K*Ha);Ha=+g[f+48>>2];Ia=+g[f+52>>2];L=+g[f+56>>2];Na=ya+(H*Ha+xa*Ia+Ja*L);ya=G+(Ea*Ha+J*Ia+Fa*L);G=M+(Ka*Ha+Ga*Ia+K*L);L=+g[f>>2];Ia=+g[f+16>>2];Ha=+g[f+32>>2];M=+g[f+4>>2];La=+g[f+20>>2];za=+g[f+36>>2];Ca=+g[f+8>>2];Ba=+g[f+24>>2];Aa=+g[f+40>>2];g[m>>2]=H*L+xa*Ia+Ja*Ha;g[m+4>>2]=H*M+xa*La+Ja*za;g[m+8>>2]=H*Ca+xa*Ba+Ja*Aa;g[m+12>>2]=0.0;g[m+16>>2]=Ea*L+J*Ia+Fa*Ha;g[m+20>>2]=Ea*M+J*La+Fa*za;g[m+24>>2]=Ea*Ca+J*Ba+Fa*Aa;g[m+28>>2]=0.0;g[m+32>>2]=Ka*L+Ga*Ia+K*Ha;g[m+36>>2]=Ka*M+Ga*La+K*za;g[m+40>>2]=Ka*Ca+Ga*Ba+K*Aa;q=m+44|0;c[q>>2]=0;c[q+4>>2]=0;c[q+8>>2]=0;c[q+12>>2]=0;c[q+16>>2]=0;q=c[h+8>>2]|0;Aa=+Zb[c[(c[B>>2]|0)+48>>2]&7](B);c[n>>2]=12192;h=n+8|0;t=n+72|0;s=n+136|0;c[n+4>>2]=d;c[h>>2]=c[e>>2];c[h+4>>2]=c[e+4>>2];c[h+8>>2]=c[e+8>>2];c[h+12>>2]=c[e+12>>2];h=n+24|0;r=e+16|0;c[h>>2]=c[r>>2];c[h+4>>2]=c[r+4>>2];c[h+8>>2]=c[r+8>>2];c[h+12>>2]=c[r+12>>2];r=n+40|0;h=e+32|0;c[r>>2]=c[h>>2];c[r+4>>2]=c[h+4>>2];c[r+8>>2]=c[h+8>>2];c[r+12>>2]=c[h+12>>2];h=n+56|0;r=e+48|0;c[h>>2]=c[r>>2];c[h+4>>2]=c[r+4>>2];c[h+8>>2]=c[r+8>>2];c[h+12>>2]=c[r+12>>2];c[t>>2]=c[f>>2];c[t+4>>2]=c[f+4>>2];c[t+8>>2]=c[f+8>>2];c[t+12>>2]=c[f+12>>2];t=n+88|0;r=f+16|0;c[t>>2]=c[r>>2];c[t+4>>2]=c[r+4>>2];c[t+8>>2]=c[r+8>>2];c[t+12>>2]=c[r+12>>2];r=n+104|0;t=f+32|0;c[r>>2]=c[t>>2];c[r+4>>2]=c[t+4>>2];c[r+8>>2]=c[t+8>>2];c[r+12>>2]=c[t+12>>2];t=n+120|0;r=f+48|0;c[t>>2]=c[r>>2];c[t+4>>2]=c[r+4>>2];c[t+8>>2]=c[r+8>>2];c[t+12>>2]=c[r+12>>2];c[s>>2]=c[C>>2];c[s+4>>2]=c[C+4>>2];c[s+8>>2]=c[C+8>>2];c[s+12>>2]=c[C+12>>2];s=n+152|0;r=C+16|0;c[s>>2]=c[r>>2];c[s+4>>2]=c[r+4>>2];c[s+8>>2]=c[r+8>>2];c[s+12>>2]=c[r+12>>2];r=n+168|0;s=C+32|0;c[r>>2]=c[s>>2];c[r+4>>2]=c[s+4>>2];c[r+8>>2]=c[s+8>>2];c[r+12>>2]=c[s+12>>2];s=n+184|0;r=C+48|0;c[s>>2]=c[r>>2];c[s+4>>2]=c[r+4>>2];c[s+8>>2]=c[r+8>>2];c[s+12>>2]=c[r+12>>2];g[n+204>>2]=Aa;c[n>>2]=5248;c[n+212>>2]=j;c[n+216>>2]=q;c[n+220>>2]=B;c[n+200>>2]=c[j+4>>2];g[n+208>>2]=k;tc[c[(c[d>>2]|0)+8>>2]&63](d,m,v,w);g[x>>2]=Ma;m=x+4|0;g[m>>2]=Pa;d=x+8|0;g[d>>2]=Oa;g[x+12>>2]=0.0;if(Na<Ma){g[x>>2]=Na;Qa=Na}else Qa=Ma;if(ya<Pa){g[m>>2]=ya;Ra=ya}else Ra=Pa;if(G<Oa){g[d>>2]=G;Sa=G}else Sa=Oa;g[y>>2]=Ma;j=y+4|0;g[j>>2]=Pa;q=y+8|0;g[q>>2]=Oa;g[y+12>>2]=0.0;if(Ma<Na){g[y>>2]=Na;Ta=Na}else Ta=Ma;if(Pa<ya){g[j>>2]=ya;Ua=ya}else Ua=Pa;if(Oa<G){g[q>>2]=G;Va=G}else Va=Oa;g[x>>2]=+g[v>>2]+Qa;g[m>>2]=+g[v+4>>2]+Ra;g[d>>2]=+g[v+8>>2]+Sa;g[y>>2]=+g[w>>2]+Ta;g[j>>2]=+g[w+4>>2]+Ua;g[q>>2]=+g[w+8>>2]+Va;tc[c[(c[B>>2]|0)+64>>2]&63](B,n,x,y);i=l;return}}function bk(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,h=0,j=0,k=0,l=0,m=0,n=0.0,o=0.0,p=0.0,q=0.0,r=0.0,s=0.0;f=i;i=i+256|0;h=f+32|0;j=f+16|0;k=f;c[h>>2]=5296;l=h+36|0;c[l>>2]=c[b>>2];c[l+4>>2]=c[b+4>>2];c[l+8>>2]=c[b+8>>2];c[l+12>>2]=c[b+12>>2];m=h+52|0;c[m>>2]=c[d>>2];c[m+4>>2]=c[d+4>>2];c[m+8>>2]=c[d+8>>2];c[m+12>>2]=c[d+12>>2];c[h+212>>2]=a;c[h+216>>2]=e;c[h+68>>2]=1065353216;e=h+72|0;c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;c[e+12>>2]=0;c[h+88>>2]=1065353216;e=h+92|0;c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;c[e+12>>2]=0;c[h+108>>2]=1065353216;c[h+112>>2]=0;e=h+116|0;c[e>>2]=c[l>>2];c[e+4>>2]=c[l+4>>2];c[e+8>>2]=c[l+8>>2];c[e+12>>2]=c[l+12>>2];c[h+132>>2]=1065353216;e=h+136|0;c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;c[e+12>>2]=0;c[h+152>>2]=1065353216;e=h+156|0;c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;c[e+12>>2]=0;c[h+172>>2]=1065353216;c[h+176>>2]=0;e=h+180|0;c[e>>2]=c[d>>2];c[e+4>>2]=c[d+4>>2];c[e+8>>2]=c[d+8>>2];c[e+12>>2]=c[d+12>>2];n=+g[d>>2]-+g[b>>2];o=+g[d+4>>2]-+g[b+4>>2];p=+g[d+8>>2]-+g[b+8>>2];q=1.0/+P(+(n*n+o*o+p*p));r=n*q;n=o*q;o=p*q;q=r==0.0?999999984306749440.0:1.0/r;g[h+4>>2]=q;p=n==0.0?999999984306749440.0:1.0/n;g[h+8>>2]=p;s=o==0.0?999999984306749440.0:1.0/o;g[h+12>>2]=s;c[h+20>>2]=q<0.0&1;c[h+24>>2]=p<0.0&1;c[h+28>>2]=s<0.0&1;g[h+32>>2]=r*(+g[m>>2]-+g[l>>2])+n*(+g[h+56>>2]-+g[h+40>>2])+o*(+g[h+60>>2]-+g[h+44>>2]);l=c[a+68>>2]|0;a=c[(c[l>>2]|0)+24>>2]|0;c[j>>2]=0;c[j+4>>2]=0;c[j+8>>2]=0;c[j+12>>2]=0;c[k>>2]=0;c[k+4>>2]=0;c[k+8>>2]=0;c[k+12>>2]=0;Xb[a&7](l,b,d,h,j,k);i=f;return}function ck(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0.0,z=0.0,A=0.0,B=0.0,C=0,D=0.0,E=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;h=i;i=i+384|0;j=h+180|0;k=h+176|0;l=h+112|0;m=h+48|0;n=h+32|0;o=h+16|0;p=h;c[l>>2]=c[d>>2];c[l+4>>2]=c[d+4>>2];c[l+8>>2]=c[d+8>>2];c[l+12>>2]=c[d+12>>2];q=l+16|0;r=d+16|0;c[q>>2]=c[r>>2];c[q+4>>2]=c[r+4>>2];c[q+8>>2]=c[r+8>>2];c[q+12>>2]=c[r+12>>2];q=l+32|0;s=d+32|0;c[q>>2]=c[s>>2];c[q+4>>2]=c[s+4>>2];c[q+8>>2]=c[s+8>>2];c[q+12>>2]=c[s+12>>2];q=l+48|0;t=d+48|0;c[q>>2]=c[t>>2];c[q+4>>2]=c[t+4>>2];c[q+8>>2]=c[t+8>>2];c[q+12>>2]=c[t+12>>2];c[m>>2]=c[e>>2];c[m+4>>2]=c[e+4>>2];c[m+8>>2]=c[e+8>>2];c[m+12>>2]=c[e+12>>2];u=m+16|0;v=e+16|0;c[u>>2]=c[v>>2];c[u+4>>2]=c[v+4>>2];c[u+8>>2]=c[v+8>>2];c[u+12>>2]=c[v+12>>2];u=m+32|0;w=e+32|0;c[u>>2]=c[w>>2];c[u+4>>2]=c[w+4>>2];c[u+8>>2]=c[w+8>>2];c[u+12>>2]=c[w+12>>2];u=m+48|0;x=e+48|0;c[u>>2]=c[x>>2];c[u+4>>2]=c[x+4>>2];c[u+8>>2]=c[x+8>>2];c[u+12>>2]=c[x+12>>2];Qf(l,m,j,k);y=+g[k>>2];z=+g[j>>2]*y;A=y*+g[j+4>>2];B=y*+g[j+8>>2];k=j+4|0;m=k;c[m>>2]=0;c[m+4>>2]=0;m=j+24|0;C=m;c[C>>2]=0;c[C+4>>2]=0;C=j+44|0;c[C>>2]=0;c[C+4>>2]=0;c[C+8>>2]=0;c[C+12>>2]=0;c[C+16>>2]=0;Me(l,p);y=+g[p>>2];D=+g[p+4>>2];E=+g[p+8>>2];F=+g[p+12>>2];G=2.0/(y*y+D*D+E*E+F*F);H=y*G;I=D*G;J=E*G;G=F*H;K=F*I;L=F*J;F=y*H;H=y*I;M=y*J;y=D*I;I=D*J;D=E*J;g[j>>2]=1.0-(y+D);g[k>>2]=H-L;g[j+8>>2]=M+K;g[j+12>>2]=0.0;g[j+16>>2]=H+L;g[j+20>>2]=1.0-(F+D);g[m>>2]=I-G;g[j+28>>2]=0.0;g[j+32>>2]=M-K;g[j+36>>2]=I+G;g[j+40>>2]=1.0-(F+y);g[C>>2]=0.0;tc[c[(c[b>>2]|0)+8>>2]&63](b,j,n,o);y=+g[o>>2];C=o+4|0;F=+g[C>>2];m=o+8|0;G=+g[m>>2];k=n+4|0;p=n+8|0;I=+g[n>>2]+0.0;K=+g[k>>2]+0.0;M=+g[p>>2]+0.0;D=+P(+(z*z+A*A+B*B));B=D*+Zb[c[(c[b>>2]|0)+16>>2]&7](b);g[n+12>>2]=0.0;g[o+12>>2]=0.0;g[n>>2]=I-B;g[k>>2]=K-B;g[p>>2]=M-B;g[o>>2]=B+y;g[C>>2]=B+F;g[m>>2]=B+G;c[j>>2]=5320;m=j+36|0;c[m>>2]=c[d>>2];c[m+4>>2]=c[d+4>>2];c[m+8>>2]=c[d+8>>2];c[m+12>>2]=c[d+12>>2];d=j+52|0;c[d>>2]=c[r>>2];c[d+4>>2]=c[r+4>>2];c[d+8>>2]=c[r+8>>2];c[d+12>>2]=c[r+12>>2];r=j+68|0;c[r>>2]=c[s>>2];c[r+4>>2]=c[s+4>>2];c[r+8>>2]=c[s+8>>2];c[r+12>>2]=c[s+12>>2];s=j+84|0;c[s>>2]=c[t>>2];c[s+4>>2]=c[t+4>>2];c[s+8>>2]=c[t+8>>2];c[s+12>>2]=c[t+12>>2];t=j+100|0;c[t>>2]=c[e>>2];c[t+4>>2]=c[e+4>>2];c[t+8>>2]=c[e+8>>2];c[t+12>>2]=c[e+12>>2];e=j+116|0;c[e>>2]=c[v>>2];c[e+4>>2]=c[v+4>>2];c[e+8>>2]=c[v+8>>2];c[e+12>>2]=c[v+12>>2];v=j+132|0;c[v>>2]=c[w>>2];c[v+4>>2]=c[w+4>>2];c[v+8>>2]=c[w+8>>2];c[v+12>>2]=c[w+12>>2];w=j+148|0;c[w>>2]=c[x>>2];c[w+4>>2]=c[x+4>>2];c[w+8>>2]=c[x+8>>2];c[w+12>>2]=c[x+12>>2];c[j+180>>2]=a;c[j+184>>2]=f;g[j+188>>2]=0.0;c[j+192>>2]=b;G=+g[w>>2]-+g[s>>2];B=+g[j+152>>2]-+g[j+88>>2];F=+g[j+156>>2]-+g[j+92>>2];y=1.0/+P(+(G*G+B*B+F*F));M=G*y;K=B*y;I=F*y;y=M==0.0?999999984306749440.0:1.0/M;g[j+4>>2]=y;D=K==0.0?999999984306749440.0:1.0/K;g[j+8>>2]=D;A=I==0.0?999999984306749440.0:1.0/I;g[j+12>>2]=A;c[j+20>>2]=y<0.0&1;c[j+24>>2]=D<0.0&1;c[j+28>>2]=A<0.0&1;g[j+32>>2]=F*I+(G*M+B*K);s=c[a+68>>2]|0;Xb[c[(c[s>>2]|0)+24>>2]&7](s,q,u,j,n,o);i=h;return}function dk(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0.0,F=0.0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0.0,ja=0.0,ka=0.0,la=0.0,ma=0.0,na=0.0,oa=0.0,pa=0.0,qa=0.0,ra=0.0,sa=0,ta=0.0,ua=0.0,va=0.0,wa=0.0,xa=0.0,ya=0.0,za=0.0,Aa=0.0,Ba=0.0,Ca=0.0,Da=0.0,Ea=0.0,Fa=0.0,Ga=0,Ha=0,Ia=0,Ja=0,Ka=0,La=0,Ma=0,Na=0,Oa=0,Pa=0,Qa=0,Ra=0,Sa=0,Ta=0;f=i;i=i+480|0;h=f+416|0;j=f+400|0;l=f+384|0;m=f+320|0;n=f+304|0;o=f+288|0;p=f+272|0;q=f+256|0;r=f+240|0;s=f+224|0;t=f+208|0;u=f+192|0;v=f+176|0;w=f+160|0;x=f+144|0;y=f+128|0;z=f+32|0;A=f+16|0;B=f;if((Ob[c[(c[a>>2]|0)+20>>2]&127](a)|0)!=0?(C=Ob[c[(c[a>>2]|0)+20>>2]&127](a)|0,((Ob[c[(c[C>>2]|0)+48>>2]&127](C)|0)&32768|0)!=0):0){C=Ob[c[(c[a>>2]|0)+20>>2]&127](a)|0;rc[c[(c[C>>2]|0)+56>>2]&7](C,b,1.0);}C=d+4|0;D=c[C>>2]|0;switch(D|0){case 11:{E=+g[d+60>>2];F=+g[d+64>>2];G=c[d+72>>2]|0;H=Ob[c[(c[a>>2]|0)+20>>2]&127](a)|0;Qb[c[(c[H>>2]|0)+84>>2]&0](H,E,F,G,b,e);i=f;return}case 31:{G=c[d+20>>2]|0;if((G|0)<=0){i=f;return}H=d+28|0;I=b+4|0;J=b+8|0;K=b+16|0;L=b+20|0;M=b+24|0;N=b+32|0;O=b+36|0;P=b+40|0;Q=b+48|0;R=b+52|0;S=b+56|0;T=h+4|0;U=h+8|0;V=h+12|0;W=h+16|0;X=h+20|0;Y=h+24|0;Z=h+28|0;_=h+32|0;$=h+36|0;aa=h+40|0;ba=h+44|0;ca=h+48|0;da=h+52|0;ea=h+56|0;fa=h+60|0;ga=G;do{G=ga;ga=ga+-1|0;ha=c[H>>2]|0;F=+g[ha+(ga*80|0)>>2];E=+g[ha+(ga*80|0)+4>>2];ia=+g[ha+(ga*80|0)+8>>2];ja=+g[ha+(ga*80|0)+16>>2];ka=+g[ha+(ga*80|0)+20>>2];la=+g[ha+(ga*80|0)+24>>2];ma=+g[ha+(ga*80|0)+32>>2];na=+g[ha+(ga*80|0)+36>>2];oa=+g[ha+(ga*80|0)+40>>2];pa=+g[ha+(ga*80|0)+48>>2];qa=+g[ha+(ga*80|0)+52>>2];ra=+g[ha+(ga*80|0)+56>>2];sa=c[ha+(ga*80|0)+64>>2]|0;ha=c[(c[a>>2]|0)+28>>2]|0;ta=+g[b>>2];ua=+g[I>>2];va=+g[J>>2];wa=+g[K>>2];xa=+g[L>>2];ya=+g[M>>2];za=+g[N>>2];Aa=+g[O>>2];Ba=+g[P>>2];Ca=pa*ta+qa*ua+ra*va+ +g[Q>>2];Da=pa*wa+qa*xa+ra*ya+ +g[R>>2];Ea=pa*za+qa*Aa+ra*Ba+ +g[S>>2];g[h>>2]=F*ta+ja*ua+ma*va;g[T>>2]=E*ta+ka*ua+na*va;g[U>>2]=ia*ta+la*ua+oa*va;g[V>>2]=0.0;g[W>>2]=F*wa+ja*xa+ma*ya;g[X>>2]=E*wa+ka*xa+na*ya;g[Y>>2]=ia*wa+la*xa+oa*ya;g[Z>>2]=0.0;g[_>>2]=F*za+ja*Aa+ma*Ba;g[$>>2]=E*za+ka*Aa+na*Ba;g[aa>>2]=ia*za+la*Aa+oa*Ba;g[ba>>2]=0.0;g[ca>>2]=Ca;g[da>>2]=Da;g[ea>>2]=Ea;g[fa>>2]=0.0;tc[ha&63](a,h,sa,e);}while((G|0)>1);i=f;return}case 0:{h=d+32|0;c[j>>2]=c[h>>2];c[j+4>>2]=c[h+4>>2];c[j+8>>2]=c[h+8>>2];c[j+12>>2]=c[h+12>>2];Ea=+Zb[c[(c[d>>2]|0)+48>>2]&7](d);Da=+Zb[c[(c[d>>2]|0)+48>>2]&7](d);Ca=+Zb[c[(c[d>>2]|0)+48>>2]&7](d);Ba=Ea+ +g[j>>2];g[j>>2]=Ba;h=j+4|0;Ea=Da+ +g[h>>2];g[h>>2]=Ea;h=j+8|0;Da=Ca+ +g[h>>2];g[h>>2]=Da;h=Ob[c[(c[a>>2]|0)+20>>2]&127](a)|0;fa=c[(c[h>>2]|0)+72>>2]|0;g[l>>2]=-Ba;g[l+4>>2]=-Ea;g[l+8>>2]=-Da;g[l+12>>2]=0.0;Ib[fa&31](h,l,j,b,e);i=f;return}case 13:{j=c[d+56>>2]|0;Da=+Zb[c[(c[d>>2]|0)+92>>2]&7](d);l=d+32|0;c[n>>2]=c[l>>2];c[n+4>>2]=c[l+4>>2];c[n+8>>2]=c[l+8>>2];c[n+12>>2]=c[l+12>>2];Ea=+Zb[c[(c[d>>2]|0)+48>>2]&7](d);Ba=+Zb[c[(c[d>>2]|0)+48>>2]&7](d);Ca=+Zb[c[(c[d>>2]|0)+48>>2]&7](d);g[n>>2]=Ea+ +g[n>>2];l=n+4|0;g[l>>2]=Ba+ +g[l>>2];l=n+8|0;g[l>>2]=Ca+ +g[l>>2];Ca=+g[n+(j<<2)>>2];n=Ob[c[(c[a>>2]|0)+20>>2]&127](a)|0;Qb[c[(c[n>>2]|0)+80>>2]&0](n,Da,Ca,j,b,e);i=f;return}case 28:{Ca=+g[d+68>>2];j=Ob[c[(c[a>>2]|0)+20>>2]&127](a)|0;ac[c[(c[j>>2]|0)+88>>2]&3](j,d+52|0,Ca,b,e);i=f;return}case 9:{j=c[d+96>>2]|0;if((j|0)<=0){i=f;return}n=d+104|0;l=d+124|0;h=b+4|0;fa=b+8|0;ea=b+16|0;da=b+20|0;ca=b+24|0;ba=b+32|0;aa=b+36|0;$=b+40|0;_=b+48|0;Z=b+52|0;Y=b+56|0;X=m+4|0;W=m+8|0;V=m+12|0;U=m+16|0;T=m+20|0;S=m+24|0;R=m+28|0;Q=m+32|0;P=m+36|0;O=m+40|0;N=m+44|0;M=m+48|0;L=m+52|0;K=m+56|0;J=m+60|0;I=j;do{j=I;I=I+-1|0;ga=c[n>>2]|0;Ca=+g[ga+(I<<4)>>2];Da=+g[ga+(I<<4)+4>>2];Ba=+g[ga+(I<<4)+8>>2];ga=Ob[c[(c[a>>2]|0)+20>>2]&127](a)|0;H=c[(c[ga>>2]|0)+16>>2]|0;Ea=+g[(c[l>>2]|0)+(I<<2)>>2];oa=+g[b>>2];Aa=+g[h>>2];la=Aa*0.0;za=+g[fa>>2];ia=za*0.0;na=oa*0.0;ka=+g[ea>>2];E=+g[da>>2];ma=E*0.0;ja=+g[ca>>2];F=ja*0.0;ya=ka*0.0;xa=+g[ba>>2];wa=+g[aa>>2];va=wa*0.0;ua=+g[$>>2];ta=ua*0.0;ra=xa*0.0;qa=Ca*oa+Da*Aa+Ba*za+ +g[_>>2];pa=Ca*ka+Da*E+Ba*ja+ +g[Z>>2];Fa=Ca*xa+Da*wa+Ba*ua+ +g[Y>>2];g[m>>2]=oa+la+ia;g[X>>2]=na+Aa+ia;g[W>>2]=za+(na+la);g[V>>2]=0.0;g[U>>2]=ka+ma+F;g[T>>2]=ya+E+F;g[S>>2]=ja+(ya+ma);g[R>>2]=0.0;g[Q>>2]=xa+va+ta;g[P>>2]=ra+wa+ta;g[O>>2]=ua+(ra+va);g[N>>2]=0.0;g[M>>2]=qa;g[L>>2]=pa;g[K>>2]=Fa;g[J>>2]=0.0;Rb[H&0](ga,Ea,m,e);}while((j|0)>1);i=f;return}case 8:{Ea=+Zb[c[(c[d>>2]|0)+48>>2]&7](d);m=Ob[c[(c[a>>2]|0)+20>>2]&127](a)|0;Rb[c[(c[m>>2]|0)+16>>2]&0](m,Ea,b,e);i=f;return}case 10:{m=c[d+56>>2]|0;Ea=+g[d+32+(((m+2|0)%3|0)<<2)>>2];Fa=+g[d+32+(m<<2)>>2];J=Ob[c[(c[a>>2]|0)+20>>2]&127](a)|0;Qb[c[(c[J>>2]|0)+76>>2]&0](J,Ea,Fa,m,b,e);i=f;return}default:{a:do if((D|0)<7){m=c[d+56>>2]|0;if(!m){if((Ob[c[(c[d>>2]|0)+100>>2]&127](d)|0)<=0)break;J=t+4|0;K=b+4|0;L=t+8|0;M=b+8|0;N=b+16|0;O=b+20|0;P=b+24|0;Q=b+32|0;R=b+36|0;S=b+40|0;T=b+48|0;U=b+52|0;V=b+56|0;W=v+4|0;X=v+8|0;Y=v+12|0;Z=u+4|0;_=u+8|0;$=w+4|0;aa=w+8|0;ba=w+12|0;ca=0;while(1){tc[c[(c[d>>2]|0)+104>>2]&63](d,ca,t,u);Fa=+g[t>>2];Ea=+g[b>>2];pa=+g[J>>2];qa=+g[K>>2];va=+g[L>>2];ra=+g[M>>2];ua=+g[N>>2];ta=+g[O>>2];wa=+g[P>>2];xa=+g[Q>>2];ma=+g[R>>2];ya=+g[S>>2];ja=+g[T>>2];F=+g[U>>2];E=+g[V>>2];g[v>>2]=Fa*Ea+pa*qa+va*ra+ja;g[W>>2]=Fa*ua+pa*ta+va*wa+F;g[X>>2]=Fa*xa+pa*ma+va*ya+E;g[Y>>2]=0.0;va=+g[u>>2];pa=+g[Z>>2];Fa=+g[_>>2];g[w>>2]=va*Ea+pa*qa+Fa*ra+ja;g[$>>2]=va*ua+pa*ta+Fa*wa+F;g[aa>>2]=va*xa+pa*ma+Fa*ya+E;g[ba>>2]=0.0;da=Ob[c[(c[a>>2]|0)+20>>2]&127](a)|0;tc[c[(c[da>>2]|0)+8>>2]&63](da,v,w,e);ca=ca+1|0;if((ca|0)>=(Ob[c[(c[d>>2]|0)+100>>2]&127](d)|0))break a}}ca=m+28|0;if((c[ca>>2]|0)>0){ba=m+36|0;aa=q+4|0;$=q+8|0;_=q+12|0;Z=b+4|0;Y=b+8|0;X=b+16|0;W=b+20|0;V=b+24|0;U=b+32|0;T=b+36|0;S=b+40|0;R=b+48|0;Q=b+52|0;P=b+56|0;O=r+4|0;N=r+8|0;M=r+12|0;L=s+4|0;K=s+8|0;J=s+12|0;da=m+16|0;ea=o+4|0;fa=o+8|0;h=o+12|0;I=p+4|0;l=p+8|0;n=p+12|0;j=0;do{ga=c[ba>>2]|0;H=c[ga+(j*36|0)+4>>2]|0;b:do if((H|0)>0){G=c[ga+(j*36|0)+12>>2]|0;sa=G;ha=0;Ga=0;Ha=0;Ia=c[G+(H+-1<<2)>>2]|0;G=0;while(1){Ja=c[sa+(G<<2)>>2]|0;Ka=c[da>>2]|0;La=(g[k>>2]=(c[k>>2]=ha,+g[k>>2])+ +g[Ka+(Ja<<4)>>2],c[k>>2]|0);Ma=(g[k>>2]=(c[k>>2]=Ga,+g[k>>2])+ +g[Ka+(Ja<<4)+4>>2],c[k>>2]|0);Na=(g[k>>2]=(c[k>>2]=Ha,+g[k>>2])+ +g[Ka+(Ja<<4)+8>>2],c[k>>2]|0);Ka=Ob[c[(c[a>>2]|0)+20>>2]&127](a)|0;Oa=c[(c[Ka>>2]|0)+8>>2]|0;Pa=c[da>>2]|0;E=+g[Pa+(Ia<<4)>>2];ya=+g[b>>2];Fa=+g[Pa+(Ia<<4)+4>>2];ma=+g[Z>>2];pa=+g[Pa+(Ia<<4)+8>>2];xa=+g[Y>>2];va=+g[X>>2];F=+g[W>>2];wa=+g[V>>2];ta=+g[U>>2];ua=+g[T>>2];ja=+g[S>>2];ra=+g[R>>2];qa=+g[Q>>2];Ea=+g[P>>2];g[o>>2]=E*ya+Fa*ma+pa*xa+ra;g[ea>>2]=E*va+Fa*F+pa*wa+qa;g[fa>>2]=E*ta+Fa*ua+pa*ja+Ea;g[h>>2]=0.0;pa=+g[Pa+(Ja<<4)>>2];Fa=+g[Pa+(Ja<<4)+4>>2];E=+g[Pa+(Ja<<4)+8>>2];g[p>>2]=pa*ya+Fa*ma+E*xa+ra;g[I>>2]=pa*va+Fa*F+E*wa+qa;g[l>>2]=pa*ta+Fa*ua+E*ja+Ea;g[n>>2]=0.0;tc[Oa&63](Ka,o,p,e);Ka=G+1|0;Oa=c[ba>>2]|0;if((Ka|0)>=(c[Oa+(j*36|0)+4>>2]|0)){Qa=Na;Ra=Ma;Sa=La;break b}sa=c[Oa+(j*36|0)+12>>2]|0;ha=La;Ga=Ma;Ha=Na;Ia=Ja;G=Ka}}else{Qa=0;Ra=0;Sa=0}while(0);Ea=1.0/+(H|0);ga=Ob[c[(c[a>>2]|0)+20>>2]&127](a)|0;if((Ob[c[(c[ga>>2]|0)+48>>2]&127](ga)|0)&16384){ja=(c[k>>2]=Qa,+g[k>>2])*Ea;E=(c[k>>2]=Ra,+g[k>>2])*Ea;ua=Ea*(c[k>>2]=Sa,+g[k>>2]);c[q>>2]=1065353216;c[aa>>2]=1065353216;c[$>>2]=0;g[_>>2]=0.0;ga=c[ba>>2]|0;Ea=+g[ga+(j*36|0)+20>>2];Fa=+g[ga+(j*36|0)+24>>2];ta=+g[ga+(j*36|0)+28>>2];ga=Ob[c[(c[a>>2]|0)+20>>2]&127](a)|0;G=c[(c[ga>>2]|0)+8>>2]|0;pa=+g[b>>2];qa=+g[Z>>2];wa=+g[Y>>2];F=+g[X>>2];va=+g[W>>2];ra=+g[V>>2];xa=+g[U>>2];ma=+g[T>>2];ya=+g[S>>2];ka=+g[R>>2];la=+g[Q>>2];na=+g[P>>2];g[r>>2]=ua*pa+E*qa+ja*wa+ka;g[O>>2]=ua*F+E*va+ja*ra+la;g[N>>2]=ua*xa+E*ma+ja*ya+na;g[M>>2]=0.0;za=ua+Ea;Ea=E+Fa;Fa=ja+ta;g[s>>2]=za*pa+Ea*qa+Fa*wa+ka;g[L>>2]=za*F+Ea*va+Fa*ra+la;g[K>>2]=za*xa+Ea*ma+Fa*ya+na;g[J>>2]=0.0;tc[G&63](ga,r,s,q);}j=j+1|0}while((j|0)<(c[ca>>2]|0));}}while(0);q=c[C>>2]|0;if((q+-21|0)>>>0<9){c[x>>2]=1566444395;c[x+4>>2]=1566444395;c[x+8>>2]=1566444395;g[x+12>>2]=0.0;c[y>>2]=-581039253;c[y+4>>2]=-581039253;c[y+8>>2]=-581039253;g[y+12>>2]=0.0;s=Ob[c[(c[a>>2]|0)+20>>2]&127](a)|0;c[z>>2]=5344;c[z+4>>2]=5368;c[z+8>>2]=s;s=z+12|0;c[s>>2]=c[e>>2];c[s+4>>2]=c[e+4>>2];c[s+8>>2]=c[e+8>>2];c[s+12>>2]=c[e+12>>2];s=z+28|0;c[s>>2]=c[b>>2];c[s+4>>2]=c[b+4>>2];c[s+8>>2]=c[b+8>>2];c[s+12>>2]=c[b+12>>2];s=z+44|0;r=b+16|0;c[s>>2]=c[r>>2];c[s+4>>2]=c[r+4>>2];c[s+8>>2]=c[r+8>>2];c[s+12>>2]=c[r+12>>2];r=z+60|0;s=b+32|0;c[r>>2]=c[s>>2];c[r+4>>2]=c[s+4>>2];c[r+8>>2]=c[s+8>>2];c[r+12>>2]=c[s+12>>2];s=z+76|0;r=b+48|0;c[s>>2]=c[r>>2];c[s+4>>2]=c[r+4>>2];c[s+8>>2]=c[r+8>>2];c[s+12>>2]=c[r+12>>2];tc[c[(c[d>>2]|0)+64>>2]&63](d,z,y,x);Ta=c[C>>2]|0}else Ta=q;if((Ta|0)!=3){i=f;return}c[A>>2]=1566444395;c[A+4>>2]=1566444395;c[A+8>>2]=1566444395;g[A+12>>2]=0.0;c[B>>2]=-581039253;c[B+4>>2]=-581039253;c[B+8>>2]=-581039253;g[B+12>>2]=0.0;Ta=Ob[c[(c[a>>2]|0)+20>>2]&127](a)|0;c[z>>2]=5344;c[z+4>>2]=5368;c[z+8>>2]=Ta;Ta=z+12|0;c[Ta>>2]=c[e>>2];c[Ta+4>>2]=c[e+4>>2];c[Ta+8>>2]=c[e+8>>2];c[Ta+12>>2]=c[e+12>>2];e=z+28|0;c[e>>2]=c[b>>2];c[e+4>>2]=c[b+4>>2];c[e+8>>2]=c[b+8>>2];c[e+12>>2]=c[b+12>>2];e=z+44|0;Ta=b+16|0;c[e>>2]=c[Ta>>2];c[e+4>>2]=c[Ta+4>>2];c[e+8>>2]=c[Ta+8>>2];c[e+12>>2]=c[Ta+12>>2];Ta=z+60|0;e=b+32|0;c[Ta>>2]=c[e>>2];c[Ta+4>>2]=c[e+4>>2];c[Ta+8>>2]=c[e+8>>2];c[Ta+12>>2]=c[e+12>>2];e=z+76|0;Ta=b+48|0;c[e>>2]=c[Ta>>2];c[e+4>>2]=c[Ta+4>>2];c[e+8>>2]=c[Ta+8>>2];c[e+12>>2]=c[Ta+12>>2];Ta=c[d+96>>2]|0;tc[c[(c[Ta>>2]|0)+8>>2]&63](Ta,z+4|0,B,A);i=f;return}}}function ek(b){b=b|0;var d=0,e=0,f=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0.0,O=0.0,P=0.0,Q=0.0,R=0.0,S=0.0;d=i;i=i+112|0;e=d+96|0;f=d+80|0;h=d+64|0;j=d+48|0;k=d+32|0;l=d+16|0;m=d;if((((Ob[c[(c[b>>2]|0)+20>>2]&127](b)|0)!=0?(n=Ob[c[(c[b>>2]|0)+20>>2]&127](b)|0,((Ob[c[(c[n>>2]|0)+48>>2]&127](n)|0)&8|0)!=0):0)?(n=b+24|0,o=c[n>>2]|0,(o|0)!=0):0)?(p=Ob[c[(c[o>>2]|0)+36>>2]&127](o)|0,c[e>>2]=1065353216,c[e+4>>2]=1065353216,c[e+8>>2]=0,g[e+12>>2]=0.0,(p|0)>0):0){o=0;do{q=c[n>>2]|0;r=ec[c[(c[q>>2]|0)+40>>2]&31](q,o)|0;q=c[r+748>>2]|0;if((q|0)>0){s=0;do{t=Ob[c[(c[b>>2]|0)+20>>2]&127](b)|0;Lb[c[(c[t>>2]|0)+32>>2]&0](t,r+4+(s*184|0)+32|0,r+4+(s*184|0)+64|0,+g[r+4+(s*184|0)+80>>2],c[r+4+(s*184|0)+148>>2]|0,e);s=s+1|0}while((s|0)!=(q|0));}o=o+1|0}while((o|0)!=(p|0));}if(!(Ob[c[(c[b>>2]|0)+20>>2]&127](b)|0)){i=d;return}p=Ob[c[(c[b>>2]|0)+20>>2]&127](b)|0;if(!((Ob[c[(c[p>>2]|0)+48>>2]&127](p)|0)&3)){i=d;return}p=b+8|0;if((c[p>>2]|0)<=0){i=d;return}o=b+16|0;e=b+72|0;n=k+4|0;q=k+8|0;s=k+12|0;r=h+4|0;t=h+8|0;u=j+4|0;v=j+8|0;w=b+44|0;x=l+4|0;y=l+8|0;z=m+4|0;A=m+8|0;B=h+12|0;C=l+12|0;D=j+12|0;E=m+12|0;F=f+4|0;G=f+8|0;H=f+12|0;I=0;do{J=c[(c[o>>2]|0)+(I<<2)>>2]|0;K=J+204|0;if(!(c[K>>2]&32)){if((Ob[c[(c[b>>2]|0)+20>>2]&127](b)|0)!=0?(L=Ob[c[(c[b>>2]|0)+20>>2]&127](b)|0,((Ob[c[(c[L>>2]|0)+48>>2]&127](L)|0)&1|0)!=0):0){c[f>>2]=1065353216;c[F>>2]=1065353216;c[G>>2]=1065353216;g[H>>2]=0.0;switch(c[J+216>>2]|0){case 3:{c[f>>2]=0;c[F>>2]=1065353216;c[G>>2]=1065353216;g[H>>2]=0.0;break}case 1:{c[f>>2]=1065353216;c[F>>2]=1065353216;c[G>>2]=1065353216;g[H>>2]=0.0;break}case 4:{c[f>>2]=1065353216;c[F>>2]=0;c[G>>2]=0;g[H>>2]=0.0;break}case 2:{c[f>>2]=0;c[F>>2]=1065353216;c[G>>2]=0;g[H>>2]=0.0;break}case 5:{c[f>>2]=1065353216;c[F>>2]=1065353216;c[G>>2]=0;g[H>>2]=0.0;break}default:{c[f>>2]=1065353216;c[F>>2]=0;c[G>>2]=0;g[H>>2]=0.0}}tc[c[(c[b>>2]|0)+28>>2]&63](b,J+4|0,c[J+192>>2]|0,f);}L=c[e>>2]|0;if((L|0)!=0?((Ob[c[(c[L>>2]|0)+48>>2]&127](L)|0)&2|0)!=0:0){c[k>>2]=1065353216;c[n>>2]=0;c[q>>2]=0;g[s>>2]=0.0;L=J+192|0;M=c[L>>2]|0;tc[c[(c[M>>2]|0)+8>>2]&63](M,J+4|0,h,j);g[h>>2]=+g[h>>2]+-.019999999552965164;g[r>>2]=+g[r>>2]+-.019999999552965164;g[t>>2]=+g[t>>2]+-.019999999552965164;g[j>>2]=+g[j>>2]+.019999999552965164;g[u>>2]=+g[u>>2]+.019999999552965164;g[v>>2]=+g[v>>2]+.019999999552965164;do if(((a[w>>0]|0)!=0?(c[J+236>>2]|0)==2:0)?(c[K>>2]&3|0)==0:0){M=c[L>>2]|0;tc[c[(c[M>>2]|0)+8>>2]&63](M,J+68|0,l,m);N=+g[l>>2]+-.019999999552965164;g[l>>2]=N;O=+g[x>>2]+-.019999999552965164;g[x>>2]=O;P=+g[y>>2]+-.019999999552965164;g[y>>2]=P;Q=+g[m>>2]+.019999999552965164;g[m>>2]=Q;R=+g[z>>2]+.019999999552965164;g[z>>2]=R;S=+g[A>>2]+.019999999552965164;g[A>>2]=S;if(N<+g[h>>2])g[h>>2]=N;if(O<+g[r>>2])g[r>>2]=O;if(P<+g[t>>2])g[t>>2]=P;P=+g[C>>2];if(P<+g[B>>2])g[B>>2]=P;if(+g[j>>2]<Q)g[j>>2]=Q;if(+g[u>>2]<R)g[u>>2]=R;if(+g[v>>2]<S)g[v>>2]=S;S=+g[E>>2];if(!(+g[D>>2]<S))break;g[D>>2]=S}while(0);J=c[e>>2]|0;tc[c[(c[J>>2]|0)+52>>2]&63](J,h,j,k);}}I=I+1|0}while((I|0)<(c[p>>2]|0));i=d;return}
function qo(d,f){d=d|0;f=f|0;var h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0.0,da=0.0,ea=0.0,fa=0.0,ga=0.0,ha=0.0,ia=0.0,ja=0.0,ka=0,la=0,ma=0,na=0,oa=0.0,pa=0.0,qa=0.0,ra=0.0,sa=0,ta=0,ua=0,va=0,wa=0.0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0,Fa=0,Ga=0,Ha=0,Ia=0,Ja=0,Ka=0,La=0,Ma=0,Na=0,Oa=0,Pa=0,Qa=0,Ra=0,Sa=0,Ta=0.0,Ua=0.0,Va=0.0,Wa=0.0,Xa=0.0,Ya=0.0,Za=0.0,_a=0.0,$a=0.0,ab=0.0,bb=0.0,cb=0,db=0,eb=0,fb=0,gb=0,hb=0,ib=0,jb=0,kb=0,lb=0,mb=0,nb=0,ob=0,pb=0,qb=0,rb=0,sb=0,tb=0,ub=0,vb=0,wb=0,xb=0,yb=0,zb=0,Ab=0,Bb=0,Cb=0,Db=0,Eb=0,Gb=0,Hb=0,Ib=0.0,Jb=0,Lb=0,Mb=0,Nb=0,Pb=0,Qb=0,Rb=0,Sb=0,Tb=0,Ub=0,Vb=0,Wb=0,Xb=0,Yb=0,_b=0,$b=0,ac=0,bc=0,cc=0,dc=0,ec=0,fc=0,gc=0,hc=0,ic=0,jc=0.0,kc=0.0,lc=0.0,mc=0,nc=0,oc=0,qc=0,rc=0,sc=0,tc=0,uc=0,vc=0.0,wc=0.0,xc=0.0,yc=0.0,zc=0.0,Ac=0.0,Bc=0,Cc=0,Dc=0,Ec=0,Fc=0,Gc=0,Hc=0,Ic=0,Jc=0,Kc=0,Lc=0,Mc=0,Nc=0,Oc=0,Pc=0,Qc=0,Rc=0.0,Sc=0,Tc=0,Uc=0,Vc=0,Wc=0,Xc=0,Yc=0,Zc=0,_c=0,$c=0,ad=0,bd=0,cd=0,dd=0,ed=0,fd=0,gd=0,hd=0,id=0,jd=0,kd=0,ld=0,md=0,nd=0,od=0,pd=0,qd=0,rd=0,sd=0,td=0,ud=0,vd=0,wd=0,xd=0,yd=0,zd=0,Ad=0,Bd=0,Cd=0,Dd=0,Ed=0,Fd=0,Gd=0,Hd=0,Id=0,Jd=0,Kd=0,Ld=0,Md=0,Nd=0,Od=0,Pd=0,Qd=0,Rd=0,Sd=0,Td=0,Ud=0,Vd=0,Wd=0,Xd=0,Yd=0,Zd=0,_d=0,$d=0,ae=0,be=0,ce=0,de=0,ee=0,fe=0,ge=0,he=0,ie=0,je=0,ke=0,le=0,me=0,ne=0,oe=0,pe=0,qe=0,re=0,se=0,te=0,ue=0,ve=0,we=0,xe=0,ye=0,ze=0,Ae=0,Be=0,Ce=0,De=0,Ee=0,Fe=0,Ge=0,He=0,Ie=0,Je=0,Ke=0,Le=0,Me=0,Ne=0,Oe=0,Pe=0.0,Qe=0.0,Re=0,Se=0,Te=0,Ue=0,Ve=0,We=0,Xe=0,Ye=0,Ze=0,_e=0,$e=0,af=0,bf=0.0,cf=0.0,df=0.0,ef=0.0,ff=0.0,gf=0.0,hf=0.0,jf=0.0,kf=0,lf=0;h=i;i=i+336|0;j=h+256|0;l=h+240|0;m=h+224|0;n=h+164|0;o=h+152|0;p=h+136|0;q=h+112|0;r=h+304|0;s=h+96|0;t=h+72|0;u=h+56|0;v=h;w=h+20|0;x=d+56|0;y=c[x>>2]|0;if((y|0)!=0?(Kb[c[c[y>>2]>>2]&255](y),y=c[x>>2]|0,(y|0)!=0):0){c[3710]=(c[3710]|0)+1;xs(c[y+-4>>2]|0);}c[3708]=(c[3708]|0)+1;y=ws(151)|0;if(!y)z=0;else{A=y+4+15&-16;c[A+-4>>2]=y;z=A}c[z>>2]=14528;a[z+20>>0]=1;c[z+16>>2]=0;c[z+8>>2]=0;c[z+12>>2]=0;a[z+40>>0]=1;c[z+36>>2]=0;c[z+28>>2]=0;c[z+32>>2]=0;a[z+60>>0]=1;c[z+56>>2]=0;c[z+48>>2]=0;c[z+52>>2]=0;c[x>>2]=z;z=0;A=0;y=0;B=0;while(1){if((z|0)>=(Ob[c[(c[d>>2]|0)+96>>2]&127](d)|0))break;do if((A|0)==(B|0)){C=(B|0)!=0?B<<1:1;if((B|0)<(C|0)){if((C|0)!=0?(c[3708]=(c[3708]|0)+1,D=ws((C<<4|3)+16|0)|0,(D|0)!=0):0){E=D+4+15&-16;c[E+-4>>2]=D;F=E}else F=0;if((B|0)<=0){if(!y){G=B;H=F;I=C;break}}else{E=0;do{D=F+(E<<4)|0;J=y+(E<<4)|0;c[D>>2]=c[J>>2];c[D+4>>2]=c[J+4>>2];c[D+8>>2]=c[J+8>>2];c[D+12>>2]=c[J+12>>2];E=E+1|0}while((E|0)!=(B|0));}c[3710]=(c[3710]|0)+1;xs(c[y+-4>>2]|0);G=B;H=F;I=C}else{G=B;H=y;I=B}}else{G=A;H=y;I=B}while(0);E=H+(A<<4)|0;c[E>>2]=c[m>>2];c[E+4>>2]=c[m+4>>2];c[E+8>>2]=c[m+8>>2];c[E+12>>2]=c[m+12>>2];pc[c[(c[d>>2]|0)+108>>2]&63](d,z,E);z=z+1|0;A=G+1|0;y=H;B=I}I=n+16|0;a[I>>0]=1;B=n+12|0;c[B>>2]=0;H=n+4|0;c[H>>2]=0;c[n+8>>2]=0;G=n+36|0;a[G>>0]=1;z=n+32|0;c[z>>2]=0;m=n+24|0;c[m>>2]=0;F=n+28|0;c[F>>2]=0;E=n+56|0;a[E>>0]=1;J=n+52|0;c[J>>2]=0;D=n+44|0;c[D>>2]=0;K=n+48|0;c[K>>2]=0;if(f){if((A|0)>0){f=0;L=0;M=0;N=0;while(1){Q=f;f=f+1|0;if((f|0)<(A|0)){R=y+(Q<<4)|0;S=y+(Q<<4)+4|0;T=y+(Q<<4)+8|0;Q=f;U=L;V=M;W=N;while(1){X=Q;Q=Q+1|0;if((Q|0)<(A|0)){Y=y+(X<<4)|0;Z=y+(X<<4)+4|0;_=y+(X<<4)+8|0;X=Q;$=U;aa=V;ba=W;while(1){ca=+g[R>>2];da=+g[Y>>2]-ca;ea=+g[S>>2];fa=+g[Z>>2]-ea;ga=+g[T>>2];ha=+g[_>>2]-ga;ia=+g[y+(X<<4)>>2]-ca;ca=+g[y+(X<<4)+4>>2]-ea;ea=+g[y+(X<<4)+8>>2]-ga;ga=fa*ea-ha*ca;ja=ha*ia-da*ea;ea=da*ca-fa*ia;ia=1.0;ka=$;la=aa;ma=ba;na=0;while(1){fa=ga*ia;ca=ja*ia;da=ea*ia;ha=da*da+(fa*fa+ca*ca);a:do if(ha>9.999999747378752e-05){oa=1.0/+P(+ha);pa=fa*oa;qa=ca*oa;ra=da*oa;if((ka|0)>0){sa=0;do{if(pa*+g[ma+(sa<<4)>>2]+qa*+g[ma+(sa<<4)+4>>2]+ra*+g[ma+(sa<<4)+8>>2]>.9990000128746033){ta=ka;ua=la;va=ma;break a}sa=sa+1|0}while((sa|0)<(ka|0));}oa=pa*+g[R>>2]+qa*+g[S>>2]+ra*+g[T>>2];wa=-oa;sa=0;do{if(pa*+g[y+(sa<<4)>>2]+qa*+g[y+(sa<<4)+4>>2]+ra*+g[y+(sa<<4)+8>>2]-oa+-.009999999776482582>0.0){ta=ka;ua=la;va=ma;break a}sa=sa+1|0}while((sa|0)<(A|0));do if((ka|0)==(la|0)){sa=(la|0)!=0?la<<1:1;if((la|0)<(sa|0)){do if(!sa)xa=0;else{c[3708]=(c[3708]|0)+1;ya=ws((sa<<4|3)+16|0)|0;if(!ya){xa=0;break}za=ya+4+15&-16;c[za+-4>>2]=ya;xa=za}while(0);if((la|0)<=0){if(!ma){Aa=la;Ba=sa;Ca=xa;break}}else{za=0;do{ya=xa+(za<<4)|0;Da=ma+(za<<4)|0;c[ya>>2]=c[Da>>2];c[ya+4>>2]=c[Da+4>>2];c[ya+8>>2]=c[Da+8>>2];c[ya+12>>2]=c[Da+12>>2];za=za+1|0}while((za|0)!=(la|0));}c[3710]=(c[3710]|0)+1;xs(c[ma+-4>>2]|0);Aa=la;Ba=sa;Ca=xa}else{Aa=la;Ba=la;Ca=ma}}else{Aa=ka;Ba=la;Ca=ma}while(0);g[Ca+(Aa<<4)>>2]=pa;g[Ca+(Aa<<4)+4>>2]=qa;g[Ca+(Aa<<4)+8>>2]=ra;g[Ca+(Aa<<4)+12>>2]=wa;ta=ka+1|0;ua=Ba;va=Ca}else{ta=ka;ua=la;va=ma}while(0);na=na+1|0;if((na|0)==2)break;else{ia=-1.0;ka=ta;la=ua;ma=va}}X=X+1|0;if((X|0)==(A|0)){Ea=ta;Fa=ua;Ga=va;break}else{$=ta;aa=ua;ba=va}}}else{Ea=U;Fa=V;Ga=W}if((Q|0)==(A|0)){Ha=Ea;Ia=Fa;Ja=Ga;break}else{U=Ea;V=Fa;W=Ga}}}else{Ha=L;Ia=M;Ja=N}if((f|0)==(A|0)){Ka=Ha;La=Ja;break}else{L=Ha;M=Ia;N=Ja}}if((Ka|0)>0){Ja=0;N=0;Ia=0;while(1){M=La+(Ja<<4)|0;c[o>>2]=c[M>>2];c[o+4>>2]=c[M+4>>2];c[o+8>>2]=c[M+8>>2];ia=+g[La+(Ja<<4)+12>>2];ea=ia-+Zb[c[(c[d>>2]|0)+48>>2]&7](d);do if((Ja|0)==(N|0)){M=(N|0)!=0?N<<1:1;if((N|0)<(M|0)){if((M|0)!=0?(c[3708]=(c[3708]|0)+1,Ha=ws((M<<4|3)+16|0)|0,(Ha|0)!=0):0){L=Ha+4+15&-16;c[L+-4>>2]=Ha;Ma=L}else Ma=0;if((N|0)<=0){if(!Ia){Na=N;Oa=M;Pa=Ma;break}}else{L=0;do{Ha=Ma+(L<<4)|0;f=Ia+(L<<4)|0;c[Ha>>2]=c[f>>2];c[Ha+4>>2]=c[f+4>>2];c[Ha+8>>2]=c[f+8>>2];c[Ha+12>>2]=c[f+12>>2];L=L+1|0}while((L|0)!=(N|0));}c[3710]=(c[3710]|0)+1;xs(c[Ia+-4>>2]|0);Na=N;Oa=M;Pa=Ma}else{Na=N;Oa=N;Pa=Ia}}else{Na=Ja;Oa=N;Pa=Ia}while(0);L=Pa+(Na<<4)|0;c[L>>2]=c[o>>2];c[L+4>>2]=c[o+4>>2];c[L+8>>2]=c[o+8>>2];g[Pa+(Na<<4)+12>>2]=ea;L=Ja+1|0;if((L|0)<(Ka|0)){Ja=L;N=Oa;Ia=Pa}else{Qa=La;Ra=L;Sa=Pa;break}}if((Ra|0)>0){Pa=0;Ia=0;Oa=0;N=0;while(1){Ja=Pa;Pa=Pa+1|0;if((Pa|0)<(Ra|0)){Ka=Sa+(Ja<<4)+8|0;Na=Sa+(Ja<<4)+4|0;o=Sa+(Ja<<4)|0;Ma=Sa+(Ja<<4)+12|0;Ja=Pa;d=Ia;L=Oa;f=N;while(1){Ha=Ja;Ja=Ja+1|0;if((Ja|0)<(Ra|0)){Ga=Sa+(Ha<<4)+4|0;Fa=Sa+(Ha<<4)+8|0;Ea=Sa+(Ha<<4)|0;va=Sa+(Ha<<4)+12|0;Ha=Ja;ua=d;ta=L;Ca=f;while(1){ia=+g[Ga>>2];ja=+g[Sa+(Ha<<4)+8>>2];ga=+g[Fa>>2];da=+g[Sa+(Ha<<4)+4>>2];ca=ia*ja-ga*da;fa=+g[Sa+(Ha<<4)>>2];ha=+g[Ea>>2];oa=ga*fa-ja*ha;Ta=da*ha-ia*fa;Ua=+g[Ka>>2];Va=+g[Na>>2];Wa=da*Ua-ja*Va;Xa=+g[o>>2];Ya=ja*Xa-fa*Ua;ja=fa*Va-da*Xa;da=ga*Va-ia*Ua;fa=ha*Ua-ga*Xa;ga=ia*Xa-ha*Va;b:do if(((Ta*Ta+(ca*ca+oa*oa)>9.999999747378752e-05?ja*ja+(Wa*Wa+Ya*Ya)>9.999999747378752e-05:0)?ga*ga+(da*da+fa*fa)>9.999999747378752e-05:0)?(ha=Ua*Ta+(Va*oa+ca*Xa),+O(+ha)>9.999999974752427e-07):0){ia=-1.0/ha;ha=+g[Ma>>2];Za=+g[va>>2];_a=+g[Sa+(Ha<<4)+12>>2];$a=ia*(da*_a+(ca*ha+Wa*Za));ab=ia*(fa*_a+(oa*ha+Ya*Za));bb=ia*(ga*_a+(Ta*ha+ja*Za));Ba=0;do{if(+g[Sa+(Ba<<4)+12>>2]+($a*+g[Sa+(Ba<<4)>>2]+ab*+g[Sa+(Ba<<4)+4>>2]+bb*+g[Sa+(Ba<<4)+8>>2])+-.009999999776482582>0.0){cb=ua;db=ta;eb=Ca;break b}Ba=Ba+1|0}while((Ba|0)<(Ra|0));do if((ua|0)==(Ca|0)){Ba=(Ca|0)!=0?Ca<<1:1;if((Ca|0)>=(Ba|0)){fb=Ca;gb=ta;hb=Ca;break}do if(!Ba)ib=0;else{c[3708]=(c[3708]|0)+1;Aa=ws((Ba<<4|3)+16|0)|0;if(!Aa){ib=0;break}xa=Aa+4+15&-16;c[xa+-4>>2]=Aa;ib=xa}while(0);if((Ca|0)<=0){if(!ta){fb=Ca;gb=ib;hb=Ba;break}}else{xa=0;do{Aa=ib+(xa<<4)|0;W=ta+(xa<<4)|0;c[Aa>>2]=c[W>>2];c[Aa+4>>2]=c[W+4>>2];c[Aa+8>>2]=c[W+8>>2];c[Aa+12>>2]=c[W+12>>2];xa=xa+1|0}while((xa|0)!=(Ca|0));}c[3710]=(c[3710]|0)+1;xs(c[ta+-4>>2]|0);fb=Ca;gb=ib;hb=Ba}else{fb=ua;gb=ta;hb=Ca}while(0);g[gb+(fb<<4)>>2]=$a;g[gb+(fb<<4)+4>>2]=ab;g[gb+(fb<<4)+8>>2]=bb;g[gb+(fb<<4)+12>>2]=0.0;cb=ua+1|0;db=gb;eb=hb}else{cb=ua;db=ta;eb=Ca}while(0);Ha=Ha+1|0;if((Ha|0)==(Ra|0)){jb=cb;kb=db;lb=eb;break}else{ua=cb;ta=db;Ca=eb}}}else{jb=d;kb=L;lb=f}if((Ja|0)==(Ra|0)){mb=jb;nb=kb;ob=lb;break}else{d=jb;L=kb;f=lb}}}else{mb=Ia;nb=Oa;ob=N}if((Pa|0)==(Ra|0)){pb=Qa;qb=Sa;rb=mb;sb=nb;break}else{Ia=mb;Oa=nb;N=ob}}}else{pb=Qa;qb=Sa;rb=0;sb=0}}else{pb=La;qb=0;rb=0;sb=0}}else{pb=0;qb=0;rb=0;sb=0}Or(n,sb,rb);if(sb){c[3710]=(c[3710]|0)+1;xs(c[sb+-4>>2]|0);}if(qb){c[3710]=(c[3710]|0)+1;xs(c[qb+-4>>2]|0);}if(pb){c[3710]=(c[3710]|0)+1;xs(c[pb+-4>>2]|0);}}else Or(n,y,A);A=c[D>>2]|0;n=(A|0)>0;if(n){c[3708]=(c[3708]|0)+1;pb=ws((A<<4|3)+16|0)|0;if(!pb)tb=0;else{qb=pb+4+15&-16;c[qb+-4>>2]=pb;tb=qb}qb=0;do{pb=tb+(qb<<4)|0;c[pb>>2]=c[p>>2];c[pb+4>>2]=c[p+4>>2];c[pb+8>>2]=c[p+8>>2];c[pb+12>>2]=c[p+12>>2];qb=qb+1|0}while((qb|0)!=(A|0));ub=tb}else ub=0;tb=q+16|0;a[tb>>0]=1;qb=q+12|0;c[qb>>2]=0;p=q+4|0;c[p>>2]=0;pb=q+8|0;c[pb>>2]=0;sb=r;rb=sb+19|0;do{a[sb>>0]=0;sb=sb+1|0}while((sb|0)<(rb|0));if((A|0)<0)Fb();if(n){vo(q,A);q=r+3|0;r=c[qb>>2]|0;La=0;do{Sa=r+(La*36|0)|0;a[Sa+16>>0]=1;Qa=Sa+4|0;c[Qa>>2]=0;c[Qa+4>>2]=0;c[Qa+8>>2]=0;sb=Sa+20|0;vb=q;rb=sb+16|0;do{a[sb>>0]=a[vb>>0]|0;sb=sb+1|0;vb=vb+1|0}while((sb|0)<(rb|0));La=La+1|0}while((La|0)!=(A|0));}c[p>>2]=A;La=c[H>>2]|0;H=c[x>>2]|0;q=H+8|0;r=c[q>>2]|0;if((r|0)<(La|0)){Sa=H+12|0;if((c[Sa>>2]|0)<(La|0)){if(!La){wb=0;xb=r}else{c[3708]=(c[3708]|0)+1;Qa=ws((La<<4|3)+16|0)|0;if(!Qa)yb=0;else{ob=Qa+4+15&-16;c[ob+-4>>2]=Qa;yb=ob}wb=yb;xb=c[q>>2]|0}yb=H+16|0;if((xb|0)>0){ob=0;do{Qa=wb+(ob<<4)|0;N=(c[yb>>2]|0)+(ob<<4)|0;c[Qa>>2]=c[N>>2];c[Qa+4>>2]=c[N+4>>2];c[Qa+8>>2]=c[N+8>>2];c[Qa+12>>2]=c[N+12>>2];ob=ob+1|0}while((ob|0)!=(xb|0));}xb=c[yb>>2]|0;ob=H+20|0;if(xb){if(a[ob>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[xb+-4>>2]|0);}c[yb>>2]=0}a[ob>>0]=1;c[yb>>2]=wb;c[Sa>>2]=La;zb=yb}else zb=H+16|0;H=r;do{r=(c[zb>>2]|0)+(H<<4)|0;c[r>>2]=c[s>>2];c[r+4>>2]=c[s+4>>2];c[r+8>>2]=c[s+8>>2];c[r+12>>2]=c[s+12>>2];H=H+1|0}while((H|0)!=(La|0));}c[q>>2]=La;if((La|0)>0){q=0;do{H=(c[(c[x>>2]|0)+16>>2]|0)+(q<<4)|0;s=(c[B>>2]|0)+(q<<4)|0;c[H>>2]=c[s>>2];c[H+4>>2]=c[s+4>>2];c[H+8>>2]=c[s+8>>2];c[H+12>>2]=c[s+12>>2];q=q+1|0}while((q|0)!=(La|0));}if(n){n=j+4|0;La=j+24|0;q=j+8|0;s=j+20|0;H=j+16|0;zb=c[qb>>2]|0;r=0;do{yb=(c[z>>2]|0)+((c[(c[J>>2]|0)+(r<<2)>>2]|0)*12|0)|0;Sa=zb+(r*36|0)+4|0;wb=zb+(r*36|0)+8|0;ob=zb+(r*36|0)+12|0;xb=zb+(r*36|0)+16|0;N=c[Sa>>2]|0;Qa=yb;nb=0;while(1){Oa=Qa+4|0;mb=c[Qa+((c[Oa>>2]|0)*12|0)+8>>2]|0;if((N|0)==(c[wb>>2]|0)?(Ia=(N|0)!=0?N<<1:1,(N|0)<(Ia|0)):0){if(!Ia){Ab=0;Bb=N}else{c[3708]=(c[3708]|0)+1;Ra=ws((Ia<<2|3)+16|0)|0;if(!Ra)Cb=0;else{Pa=Ra+4+15&-16;c[Pa+-4>>2]=Ra;Cb=Pa}Ab=Cb;Bb=c[Sa>>2]|0}Pa=c[ob>>2]|0;if((Bb|0)<=0)if(!Pa)Db=Bb;else Eb=131;else{Ra=0;do{c[Ab+(Ra<<2)>>2]=c[Pa+(Ra<<2)>>2];Ra=Ra+1|0}while((Ra|0)!=(Bb|0));Eb=131}if((Eb|0)==131){Eb=0;if(a[xb>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[Pa+-4>>2]|0);}c[ob>>2]=0;Db=c[Sa>>2]|0}a[xb>>0]=1;c[ob>>2]=Ab;c[wb>>2]=Ia;Gb=Db}else Gb=N;c[(c[ob>>2]|0)+(Gb<<2)>>2]=mb;N=(c[Sa>>2]|0)+1|0;c[Sa>>2]=N;Ra=c[Qa+8>>2]|0;lb=c[B>>2]|0;ea=+g[lb+(Ra<<4)>>2]-+g[lb+(mb<<4)>>2];ja=+g[lb+(Ra<<4)+4>>2]-+g[lb+(mb<<4)+4>>2];Ta=+g[lb+(Ra<<4)+8>>2]-+g[lb+(mb<<4)+8>>2];ga=1.0/+P(+(ea*ea+ja*ja+Ta*Ta));if((nb|0)<2){g[j+(nb<<4)>>2]=ea*ga;g[j+(nb<<4)+4>>2]=ja*ga;g[j+(nb<<4)+8>>2]=Ta*ga;g[j+(nb<<4)+12>>2]=0.0;Hb=nb+1|0}else Hb=nb;lb=c[Oa>>2]|0;Qa=Qa+(((c[Qa+(lb*12|0)>>2]|0)+lb|0)*12|0)|0;if((Qa|0)==(yb|0))break;else nb=Hb}nb=ub+(r<<4)|0;if((Hb|0)==2){ga=+g[n>>2];Ta=+g[La>>2];ja=+g[q>>2];ea=+g[s>>2];Ya=ga*Ta-ja*ea;oa=+g[H>>2];fa=+g[j>>2];Wa=ja*oa-Ta*fa;Ta=ea*fa-ga*oa;yb=ub+(r<<4)+4|0;Qa=ub+(r<<4)+8|0;g[ub+(r<<4)+12>>2]=0.0;oa=1.0/+P(+(Ya*Ya+Wa*Wa+Ta*Ta));ga=Ya*oa;g[nb>>2]=ga;g[yb>>2]=Wa*oa;g[Qa>>2]=Ta*oa;g[zb+(r*36|0)+20>>2]=ga;c[zb+(r*36|0)+24>>2]=c[yb>>2];c[zb+(r*36|0)+28>>2]=c[Qa>>2];g[zb+(r*36|0)+32>>2]=1000000015047466219876688.0e6}else{c[nb>>2]=0;c[nb+4>>2]=0;c[nb+8>>2]=0;c[nb+12>>2]=0}Qa=c[Sa>>2]|0;if((Qa|0)>0){yb=c[(c[x>>2]|0)+16>>2]|0;ga=+g[nb>>2];oa=+g[ub+(r<<4)+4>>2];Ta=+g[ub+(r<<4)+8>>2];nb=c[ob>>2]|0;Wa=1000000015047466219876688.0e6;N=0;while(1){wb=c[nb+(N<<2)>>2]|0;Ya=+g[yb+(wb<<4)>>2]*ga+ +g[yb+(wb<<4)+4>>2]*oa+ +g[yb+(wb<<4)+8>>2]*Ta;fa=Wa>Ya?Ya:Wa;N=N+1|0;if((N|0)==(Qa|0)){Ib=fa;break}else Wa=fa}}else Ib=1000000015047466219876688.0e6;g[zb+(r*36|0)+32>>2]=-Ib;r=r+1|0}while((r|0)!=(A|0));}if((c[p>>2]|0)>0){A=0;r=0;zb=0;while(1){do if((zb|0)==(A|0)){H=(zb|0)!=0?zb<<1:1;if((zb|0)<(H|0)){if((H|0)!=0?(c[3708]=(c[3708]|0)+1,s=ws((H<<2|3)+16|0)|0,(s|0)!=0):0){q=s+4+15&-16;c[q+-4>>2]=s;Jb=q}else Jb=0;if((zb|0)<=0){if(!r){Lb=H;Mb=Jb;break}}else{q=0;do{c[Jb+(q<<2)>>2]=c[r+(q<<2)>>2];q=q+1|0}while((q|0)!=(zb|0));}c[3710]=(c[3710]|0)+1;xs(c[r+-4>>2]|0);Lb=H;Mb=Jb}else{Lb=zb;Mb=r}}else{Lb=A;Mb=r}while(0);c[Mb+(zb<<2)>>2]=zb;zb=zb+1|0;if((zb|0)>=(c[p>>2]|0))break;else{A=Lb;r=Mb}}if(!zb)Nb=Mb;else{r=t+16|0;Lb=t+12|0;A=t+4|0;Jb=t+8|0;q=w+16|0;Oa=w+12|0;mb=w+4|0;Ia=w+8|0;Pa=j+16|0;s=j+12|0;La=j+4|0;n=j+8|0;Hb=j+20|0;Gb=w+20|0;Db=zb;while(1){zb=Db+-1|0;Ab=c[Mb+(zb<<2)>>2]|0;c[3708]=(c[3708]|0)+1;Bb=ws(23)|0;if(!Bb)Pb=0;else{Cb=Bb+4+15&-16;c[Cb+-4>>2]=Bb;Pb=Cb}c[Pb>>2]=Ab;Cb=c[qb>>2]|0;Ib=+g[Cb+(Ab*36|0)+20>>2];Wa=+g[Cb+(Ab*36|0)+24>>2];Ta=+g[Cb+(Ab*36|0)+28>>2];c:do if((Db|0)>1){Ab=zb;Bb=Pb;Qa=1;N=1;yb=Cb;nb=zb;while(1){ob=Bb;Sa=Qa;wb=N;xb=nb;d:while(1){Qb=xb;do{lb=Qb;Qb=Qb+-1|0;if((lb|0)<=0){Rb=Ab;Sb=ob;Tb=wb;Ub=yb;break c}Vb=c[Mb+(Qb<<2)>>2]|0}while(!(Ib*+g[yb+(Vb*36|0)+20>>2]+Wa*+g[yb+(Vb*36|0)+24>>2]+Ta*+g[yb+(Vb*36|0)+28>>2]>.9990000128746033));do if((wb|0)==(Sa|0)){lb=(Sa|0)!=0?Sa<<1:1;if((Sa|0)>=(lb|0)){Wb=Sa;Xb=ob;break}do if(!lb)Yb=0;else{c[3708]=(c[3708]|0)+1;Ra=ws((lb<<2|3)+16|0)|0;if(!Ra){Yb=0;break}kb=Ra+4+15&-16;c[kb+-4>>2]=Ra;Yb=kb}while(0);if((Sa|0)<=0){if(!ob){Wb=lb;Xb=Yb;break}}else{Ba=0;do{c[Yb+(Ba<<2)>>2]=c[ob+(Ba<<2)>>2];Ba=Ba+1|0}while((Ba|0)!=(Sa|0));}c[3710]=(c[3710]|0)+1;xs(c[ob+-4>>2]|0);Wb=lb;Xb=Yb}else{Wb=Sa;Xb=ob}while(0);c[Xb+(wb<<2)>>2]=Vb;Ba=wb;wb=wb+1|0;Ba=0;while(1){_b=Mb+(Ba<<2)|0;if((c[_b>>2]|0)==(Vb|0))break;kb=Ba+1|0;if((kb|0)<(Ab|0))Ba=kb;else{ob=Xb;Sa=Wb;wb=wb;xb=Qb;continue d}}if((Ba|0)<(Ab|0))break;else{ob=Xb;Sa=Wb;xb=Qb}}xb=Ab+-1|0;Sa=Mb+(xb<<2)|0;c[_b>>2]=c[Sa>>2];a[Sa>>0]=Vb;a[Sa+1>>0]=Vb>>8;a[Sa+2>>0]=Vb>>16;a[Sa+3>>0]=Vb>>24;Sa=c[qb>>2]|0;if((Ab|0)>1){Ab=xb;Bb=Xb;Qa=Wb;N=wb;yb=Sa;nb=Qb}else{$b=xb;ac=Xb;bc=Wb;cc=wb;dc=Sa;ec=Qb;Eb=161;break}}}else{$b=zb;ac=Pb;bc=1;cc=1;dc=Cb;ec=zb;Eb=161}while(0);e:do if((Eb|0)==161){Eb=0;zb=ac;Cb=bc;nb=cc;yb=ec;while(1){N=yb;do{Qa=N;N=N+-1|0;if((Qa|0)<=0){Rb=$b;Sb=zb;Tb=nb;Ub=dc;break e}fc=c[Mb+(N<<2)>>2]|0}while(!(Ib*+g[dc+(fc*36|0)+20>>2]+Wa*+g[dc+(fc*36|0)+24>>2]+Ta*+g[dc+(fc*36|0)+28>>2]>.9990000128746033));do if((nb|0)==(Cb|0)?(wb=(Cb|0)!=0?Cb<<1:1,(Cb|0)<(wb|0)):0){do if(!wb)gc=0;else{c[3708]=(c[3708]|0)+1;Qa=ws((wb<<2|3)+16|0)|0;if(!Qa){gc=0;break}Bb=Qa+4+15&-16;c[Bb+-4>>2]=Qa;gc=Bb}while(0);if((Cb|0)<=0){if(!zb){hc=wb;ic=gc;break}}else{Ba=0;do{c[gc+(Ba<<2)>>2]=c[zb+(Ba<<2)>>2];Ba=Ba+1|0}while((Ba|0)!=(Cb|0));}c[3710]=(c[3710]|0)+1;xs(c[zb+-4>>2]|0);hc=wb;ic=gc}else{hc=Cb;ic=zb}while(0);c[ic+(nb<<2)>>2]=fc;zb=ic;Cb=hc;nb=nb+1|0;yb=N}}while(0);if((Tb|0)>1){a[r>>0]=1;c[Lb>>2]=0;c[A>>2]=0;c[Jb>>2]=0;yb=c[qb>>2]|0;nb=0;Cb=Ub;Ta=0.0;Wa=0.0;Ib=0.0;zb=0;while(1){Ba=c[Sb+(zb<<2)>>2]|0;jc=+g[Cb+(Ba*36|0)+20>>2]+Ta;kc=+g[Cb+(Ba*36|0)+24>>2]+Wa;lc=+g[Cb+(Ba*36|0)+28>>2]+Ib;Bb=Cb+(Ba*36|0)+4|0;if((c[Bb>>2]|0)>0){Qa=Cb+(Ba*36|0)+12|0;Ba=nb;Ab=0;while(1){H=c[(c[Qa>>2]|0)+(Ab<<2)>>2]|0;Sa=(c[(c[x>>2]|0)+16>>2]|0)+(H<<4)|0;c[u>>2]=c[Sa>>2];c[u+4>>2]=c[Sa+4>>2];c[u+8>>2]=c[Sa+8>>2];c[u+12>>2]=c[Sa+12>>2];f:do if((Ba|0)>0){Sa=c[Lb>>2]|0;xb=0;while(1){if((c[Sa+(xb*24|0)+20>>2]|0)==(H|0)){mc=Ba;break f}xb=xb+1|0;if((xb|0)>=(Ba|0)){Eb=200;break}}}else Eb=200;while(0);if((Eb|0)==200){Eb=0;c[v>>2]=c[u>>2];c[v+4>>2]=c[u+4>>2];c[v+8>>2]=c[u+8>>2];c[v+12>>2]=c[u+12>>2];do if((Ba|0)==(c[Jb>>2]|0)){N=(Ba|0)!=0?Ba<<1:1;if((Ba|0)>=(N|0)){nc=Ba;break}if(!N){oc=0;qc=Ba}else{c[3708]=(c[3708]|0)+1;xb=ws((N*24|3)+16|0)|0;if(!xb)rc=0;else{Sa=xb+4+15&-16;c[Sa+-4>>2]=xb;rc=Sa}oc=rc;qc=c[A>>2]|0}Sa=c[Lb>>2]|0;if((qc|0)<=0)if(!Sa)sc=qc;else Eb=209;else{xb=0;do{wb=oc+(xb*24|0)|0;ob=Sa+(xb*24|0)|0;c[wb>>2]=c[ob>>2];c[wb+4>>2]=c[ob+4>>2];c[wb+8>>2]=c[ob+8>>2];c[wb+12>>2]=c[ob+12>>2];c[wb+16>>2]=c[ob+16>>2];c[wb+20>>2]=c[ob+20>>2];xb=xb+1|0}while((xb|0)!=(qc|0));Eb=209}if((Eb|0)==209){Eb=0;if(!(a[r>>0]|0))tc=qc;else{c[3710]=(c[3710]|0)+1;xs(c[Sa+-4>>2]|0);tc=c[A>>2]|0}c[Lb>>2]=0;sc=tc}a[r>>0]=1;c[Lb>>2]=oc;c[Jb>>2]=N;nc=sc}else nc=Ba;while(0);xb=c[Lb>>2]|0;ob=xb+(nc*24|0)|0;c[ob>>2]=c[v>>2];c[ob+4>>2]=c[v+4>>2];c[ob+8>>2]=c[v+8>>2];c[ob+12>>2]=c[v+12>>2];c[ob+16>>2]=c[v+16>>2];c[xb+(nc*24|0)+20>>2]=H;xb=(c[A>>2]|0)+1|0;c[A>>2]=xb;mc=xb}Ab=Ab+1|0;if((Ab|0)>=(c[Bb>>2]|0)){uc=mc;break}else Ba=mc}}else uc=nb;Ba=zb+1|0;if((Ba|0)==(Tb|0))break;else{nb=uc;Cb=yb;Ta=jc;Wa=kc;Ib=lc;zb=Ba}}a[q>>0]=1;c[Oa>>2]=0;c[mb>>2]=0;c[Ia>>2]=0;zb=yb+20+((c[Sb>>2]|0)*9<<2)|0;c[Gb>>2]=c[zb>>2];c[Gb+4>>2]=c[zb+4>>2];c[Gb+8>>2]=c[zb+8>>2];c[Gb+12>>2]=c[zb+12>>2];Ib=1.0/+P(+(jc*jc+kc*kc+lc*lc));Wa=jc*Ib;Ta=kc*Ib;bb=lc*Ib;if(+O(+bb)>.7071067690849304){Ib=bb*bb+Ta*Ta;ab=1.0/+P(+Ib);$a=-(bb*ab);oa=Ta*ab;vc=Wa*$a;wc=0.0;xc=$a;yc=oa;zc=Ib*ab;Ac=-(Wa*oa);}else{oa=Wa*Wa+Ta*Ta;ab=1.0/+P(+oa);Ib=-(Ta*ab);$a=Wa*ab;vc=oa*ab;wc=Ib;xc=$a;yc=0.0;zc=-(bb*$a);Ac=bb*Ib}do if((uc|0)<2){if((uc|0)>0){Bc=uc;Cc=0;Dc=0;Ec=0}else{Fc=0;Gc=0;Eb=310;break}while(1){zb=c[Lb>>2]|0;do if((Cc|0)==(Dc|0)){Cb=(Dc|0)!=0?Dc<<1:1;if((Dc|0)>=(Cb|0)){Hc=Dc;Ic=Bc;Jc=Dc;Kc=Ec;break}do if(!Cb){Lc=0;Mc=Dc}else{c[3708]=(c[3708]|0)+1;nb=ws((Cb*24|3)+16|0)|0;if(!nb){Lc=0;Mc=Cc;break}Ba=nb+4+15&-16;c[Ba+-4>>2]=nb;Lc=Ba;Mc=Cc}while(0);if((Mc|0)<=0){if(Ec)Eb=231}else{N=0;do{Sa=Lc+(N*24|0)|0;Ba=Ec+(N*24|0)|0;c[Sa>>2]=c[Ba>>2];c[Sa+4>>2]=c[Ba+4>>2];c[Sa+8>>2]=c[Ba+8>>2];c[Sa+12>>2]=c[Ba+12>>2];c[Sa+16>>2]=c[Ba+16>>2];c[Sa+20>>2]=c[Ba+20>>2];N=N+1|0}while((N|0)!=(Mc|0));Eb=231}if((Eb|0)==231){Eb=0;c[3710]=(c[3710]|0)+1;xs(c[Ec+-4>>2]|0);}Hc=Cc;Ic=c[A>>2]|0;Jc=Cb;Kc=Lc}else{Hc=Cc;Ic=Bc;Jc=Dc;Kc=Ec}while(0);H=Kc+(Hc*24|0)|0;c[H>>2]=c[zb>>2];c[H+4>>2]=c[zb+4>>2];c[H+8>>2]=c[zb+8>>2];c[H+12>>2]=c[zb+12>>2];c[H+16>>2]=c[zb+16>>2];c[H+20>>2]=c[zb+20>>2];H=Cc+1|0;if((H|0)<(Ic|0)){Bc=Ic;Cc=H;Dc=Jc;Ec=Kc}else{Nc=Ic;Oc=H;Pc=Kc;Eb=280;break}}}else{H=c[Lb>>2]|0;N=uc;Ba=0;while(1){if(wc*+g[H+(Ba*24|0)>>2]+xc*+g[H+(Ba*24|0)+4>>2]+yc*+g[H+(Ba*24|0)+8>>2]<wc*+g[H>>2]+xc*+g[H+4>>2]+yc*+g[H+8>>2]){sb=j;vb=H;rb=sb+24|0;do{a[sb>>0]=a[vb>>0]|0;sb=sb+1|0;vb=vb+1|0}while((sb|0)<(rb|0));zb=H+(Ba*24|0)|0;c[H>>2]=c[zb>>2];c[H+4>>2]=c[zb+4>>2];c[H+8>>2]=c[zb+8>>2];c[H+12>>2]=c[zb+12>>2];c[H+16>>2]=c[zb+16>>2];c[H+20>>2]=c[zb+20>>2];sb=H+(Ba*24|0)|0;vb=j;rb=sb+24|0;do{a[sb>>0]=a[vb>>0]|0;sb=sb+1|0;vb=vb+1|0}while((sb|0)<(rb|0));Qc=uc}else Qc=N;Ba=Ba+1|0;if((Ba|0)>=(Qc|0))break;else N=Qc}g[H+16>>2]=-1000000015047466219876688.0e6;if((Qc|0)>1){N=H+8|0;Ib=+g[H+4>>2];Ba=1;do{$a=+g[H+(Ba*24|0)>>2]-+g[H>>2];ab=+g[H+(Ba*24|0)+4>>2]-Ib;oa=+g[H+(Ba*24|0)+8>>2]-+g[N>>2];ga=zc*$a+Ac*ab+vc*oa;fa=wc*$a+xc*ab+yc*oa;if(ga*ga+fa*fa<1.1920928955078125e-07)g[H+(Ba*24|0)+16>>2]=0.0;else{oa=+O(+ga);if(!(fa>=0.0))Rc=2.356194496154785-(fa+oa)/(oa-fa)*.7853981852531433;else Rc=.7853981852531433-(fa-oa)/(fa+oa)*.7853981852531433;g[H+(Ba*24|0)+16>>2]=ga<0.0?-Rc:Rc}Ba=Ba+1|0}while((Ba|0)!=(Qc|0));};c[l>>2]=c[H>>2];c[l+4>>2]=c[H+4>>2];c[l+8>>2]=c[H+8>>2];c[l+12>>2]=c[H+12>>2];xo(t,l,1,Qc+-1|0);Ba=c[Lb>>2]|0;c[3708]=(c[3708]|0)+1;N=ws(43)|0;if(!N)Sc=0;else{zb=N+4+15&-16;c[zb+-4>>2]=N;Sc=zb}zb=c[Lb>>2]|0;c[Sc>>2]=c[Ba>>2];c[Sc+4>>2]=c[Ba+4>>2];c[Sc+8>>2]=c[Ba+8>>2];c[Sc+12>>2]=c[Ba+12>>2];c[Sc+16>>2]=c[Ba+16>>2];c[Sc+20>>2]=c[Ba+20>>2];Ba=zb+24|0;c[3708]=(c[3708]|0)+1;zb=ws(67)|0;if(!zb)Tc=0;else{N=zb+4+15&-16;c[N+-4>>2]=zb;Tc=N}N=0;while(1){zb=Tc+(N*24|0)|0;Sa=Sc+(N*24|0)|0;c[zb>>2]=c[Sa>>2];c[zb+4>>2]=c[Sa+4>>2];c[zb+8>>2]=c[Sa+8>>2];c[zb+12>>2]=c[Sa+12>>2];c[zb+16>>2]=c[Sa+16>>2];c[zb+20>>2]=c[Sa+20>>2];if(!N)break;else N=N+1|0}c[3710]=(c[3710]|0)+1;xs(c[Sc+-4>>2]|0);N=Tc+24|0;c[N>>2]=c[Ba>>2];c[N+4>>2]=c[Ba+4>>2];c[N+8>>2]=c[Ba+8>>2];c[N+12>>2]=c[Ba+12>>2];c[N+16>>2]=c[Ba+16>>2];c[N+20>>2]=c[Ba+20>>2];if((c[A>>2]|0)==2){Uc=2;Vc=Tc;Eb=281;break}else{Wc=2;Xc=2;Yc=2;Zc=Tc;_c=2}while(1){g:do if((Wc|0)>1){N=c[Lb>>2]|0;H=N+(_c*24|0)|0;Ib=+g[H>>2];ga=+g[N+(_c*24|0)+4>>2];oa=+g[N+(_c*24|0)+8>>2];N=Wc;Sa=Xc;while(1){zb=N+-2|0;nb=N+-1|0;fa=+g[Zc+(zb*24|0)>>2];ab=fa-+g[Zc+(nb*24|0)>>2];$a=+g[Zc+(zb*24|0)+4>>2];Ya=$a-+g[Zc+(nb*24|0)+4>>2];ea=+g[Zc+(zb*24|0)+8>>2];ja=ea-+g[Zc+(nb*24|0)+8>>2];ca=fa-Ib;fa=$a-ga;$a=ea-oa;if((ab*fa-Ya*ca)*bb+(Wa*(Ya*$a-ja*fa)+Ta*(ja*ca-ab*$a))>0.0)break;if((nb|0)>1){N=nb;Sa=nb}else{$c=nb;ad=nb;bd=Yc;cd=Zc;break g}}do if((N|0)==(Yc|0)){Cb=(Yc|0)!=0?Yc<<1:1;if((Yc|0)>=(Cb|0)){dd=Yc;ed=Yc;fd=Zc;break}do if(Cb){c[3708]=(c[3708]|0)+1;nb=ws((Cb*24|3)+16|0)|0;if(!nb)gd=0;else{zb=nb+4+15&-16;c[zb+-4>>2]=nb;gd=zb}if((Sa|0)>0){hd=gd;id=gd;jd=Sa;Eb=259;break}else kd=gd;if(!Zc)ld=kd;else{md=kd;Eb=262}}else{hd=0;id=0;jd=Yc;Eb=259}while(0);if((Eb|0)==259){Eb=0;lb=0;do{zb=id+(lb*24|0)|0;nb=Zc+(lb*24|0)|0;c[zb>>2]=c[nb>>2];c[zb+4>>2]=c[nb+4>>2];c[zb+8>>2]=c[nb+8>>2];c[zb+12>>2]=c[nb+12>>2];c[zb+16>>2]=c[nb+16>>2];c[zb+20>>2]=c[nb+20>>2];lb=lb+1|0}while((lb|0)!=(jd|0));md=hd;Eb=262}if((Eb|0)==262){Eb=0;c[3710]=(c[3710]|0)+1;xs(c[Zc+-4>>2]|0);ld=md}dd=Sa;ed=Cb;fd=ld}else{dd=N;ed=Yc;fd=Zc}while(0);N=fd+(dd*24|0)|0;c[N>>2]=c[H>>2];c[N+4>>2]=c[H+4>>2];c[N+8>>2]=c[H+8>>2];c[N+12>>2]=c[H+12>>2];c[N+16>>2]=c[H+16>>2];c[N+20>>2]=c[H+20>>2];N=Sa+1|0;$c=N;ad=N;bd=ed;cd=fd}else{$c=Wc;ad=Xc;bd=Yc;cd=Zc}while(0);if(($c|0)==1){N=(c[Lb>>2]|0)+(_c*24|0)|0;do if((bd|0)==1){c[3708]=(c[3708]|0)+1;lb=ws(67)|0;if(!lb)nd=0;else{nb=lb+4+15&-16;c[nb+-4>>2]=lb;nd=nb}if((ad|0)<=0){if(!cd){od=ad;pd=2;qd=nd;break}}else{nb=0;do{lb=nd+(nb*24|0)|0;zb=cd+(nb*24|0)|0;c[lb>>2]=c[zb>>2];c[lb+4>>2]=c[zb+4>>2];c[lb+8>>2]=c[zb+8>>2];c[lb+12>>2]=c[zb+12>>2];c[lb+16>>2]=c[zb+16>>2];c[lb+20>>2]=c[zb+20>>2];nb=nb+1|0}while((nb|0)!=(ad|0));}c[3710]=(c[3710]|0)+1;xs(c[cd+-4>>2]|0);od=ad;pd=2;qd=nd}else{od=1;pd=bd;qd=cd}while(0);nb=qd+(od*24|0)|0;c[nb>>2]=c[N>>2];c[nb+4>>2]=c[N+4>>2];c[nb+8>>2]=c[N+8>>2];c[nb+12>>2]=c[N+12>>2];c[nb+16>>2]=c[N+16>>2];c[nb+20>>2]=c[N+20>>2];nb=ad+1|0;rd=nb;sd=nb;td=pd;ud=qd}else{rd=$c;sd=ad;td=bd;ud=cd}nb=_c+1|0;if((nb|0)==(c[A>>2]|0)){Nc=nb;Oc=sd;Pc=ud;Eb=280;break}else{Wc=rd;Xc=sd;Yc=td;Zc=ud;_c=nb}}}while(0);if((Eb|0)==280){Eb=0;if((Oc|0)>0){Uc=Oc;Vc=Pc;Eb=281}else{vd=Nc;wd=0;xd=Pc;Eb=282}}if((Eb|0)==281){Eb=0;yb=0;Ba=0;nb=0;Sa=0;H=0;while(1){zb=Vc+(H*24|0)+20|0;do if((yb|0)==(Ba|0)){lb=(Ba|0)!=0?Ba<<1:1;if((Ba|0)>=(lb|0)){yd=nb;zd=Sa;Ad=Ba;break}do if(!lb)Bd=0;else{c[3708]=(c[3708]|0)+1;Bb=ws((lb<<2|3)+16|0)|0;if(!Bb){Bd=0;break}Ab=Bb+4+15&-16;c[Ab+-4>>2]=Bb;Bd=Ab}while(0);if((Ba|0)<=0){if(nb)Eb=292}else{N=0;do{c[Bd+(N<<2)>>2]=c[nb+(N<<2)>>2];N=N+1|0}while((N|0)!=(Ba|0));Eb=292}if((Eb|0)==292){Eb=0;c[3710]=(c[3710]|0)+1;xs(c[nb+-4>>2]|0);c[Oa>>2]=0}a[q>>0]=1;c[Oa>>2]=Bd;c[Ia>>2]=lb;yd=Bd;zd=Bd;Ad=lb}else{yd=nb;zd=Sa;Ad=Ba}while(0);c[yd+(yb<<2)>>2]=c[zb>>2];yb=(c[mb>>2]|0)+1|0;c[mb>>2]=yb;N=c[A>>2]|0;h:do if((N|0)>0){Ab=c[Lb>>2]|0;Bb=c[zb>>2]|0;Qa=0;while(1){Cd=Ab+(Qa*24|0)+20|0;Qa=Qa+1|0;if((c[Cd>>2]|0)==(Bb|0))break;if((Qa|0)>=(N|0))break h}c[Cd>>2]=-1}while(0);H=H+1|0;if((H|0)==(Uc|0)){vd=N;wd=zd;xd=Vc;Eb=282;break}else{Ba=Ad;nb=yd;Sa=zd}}}i:do if((Eb|0)==282){Eb=0;if((vd|0)<=0){Fc=wd;Gc=xd;Eb=310;break}Sa=c[Lb>>2]|0;nb=c[p>>2]|0;Ba=c[qb>>2]|0;H=(nb|0)<1;yb=0;while(1){zb=c[Sa+(yb*24|0)+20>>2]|0;if(!((zb|0)==-1|H)){Qa=0;do{Bb=0;while(1){if((c[Sb+(Bb<<2)>>2]|0)==(Qa|0))break;Bb=Bb+1|0;if((Bb|0)>=(Tb|0)){Eb=306;break}}do if((Eb|0)==306){Eb=0;Bb=c[Ba+(Qa*36|0)+4>>2]|0;if((Bb|0)<=0)break;Ab=c[Ba+(Qa*36|0)+12>>2]|0;lb=0;do{if((c[Ab+(lb<<2)>>2]|0)==(zb|0)){Dd=wd;Ed=1;Fd=xd;break i}lb=lb+1|0}while((lb|0)<(Bb|0));}while(0);Qa=Qa+1|0}while((Qa|0)<(nb|0));}yb=yb+1|0;if((yb|0)>=(vd|0)){Fc=wd;Gc=xd;Eb=310;break}}}while(0);if((Eb|0)==310){Eb=0;wo((c[x>>2]|0)+24|0,w);Dd=Fc;Ed=0;Fd=Gc}if(Fd){c[3710]=(c[3710]|0)+1;xs(c[Fd+-4>>2]|0);}if(Dd){c[3710]=(c[3710]|0)+1;xs(c[Dd+-4>>2]|0);c[Oa>>2]=0}yb=c[Lb>>2]|0;if(yb){if(a[r>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[yb+-4>>2]|0);}c[Lb>>2]=0}a[r>>0]=1;c[Lb>>2]=0;c[A>>2]=0;c[Jb>>2]=0;if(Ed&(Tb|0)>0)Eb=321}else if((Tb|0)>0)Eb=321;if((Eb|0)==321){Eb=0;yb=c[qb>>2]|0;nb=0;do{Ba=c[Sb+(nb<<2)>>2]|0;a[Pa>>0]=1;c[s>>2]=0;c[La>>2]=0;c[n>>2]=0;H=c[yb+(Ba*36|0)+4>>2]|0;if((H|0)>0){Sa=H<<2;c[3708]=(c[3708]|0)+1;N=ws((Sa|3)+16|0)|0;if(!N)Gd=0;else{Qa=N+4+15&-16;c[Qa+-4>>2]=N;Gd=Qa}a[Pa>>0]=1;c[s>>2]=Gd;c[n>>2]=H;Cs(Gd|0,0,Sa|0)|0;c[La>>2]=H;Sa=c[yb+(Ba*36|0)+12>>2]|0;Qa=0;do{c[Gd+(Qa<<2)>>2]=c[Sa+(Qa<<2)>>2];Qa=Qa+1|0}while((Qa|0)!=(H|0));Hd=Gd}else{c[La>>2]=H;Hd=0}Qa=yb+(Ba*36|0)+20|0;c[Hb>>2]=c[Qa>>2];c[Hb+4>>2]=c[Qa+4>>2];c[Hb+8>>2]=c[Qa+8>>2];c[Hb+12>>2]=c[Qa+12>>2];wo((c[x>>2]|0)+24|0,j);if(Hd){c[3710]=(c[3710]|0)+1;xs(c[Hd+-4>>2]|0);c[s>>2]=0}nb=nb+1|0}while((nb|0)<(Tb|0));}if(Sb){c[3710]=(c[3710]|0)+1;xs(c[Sb+-4>>2]|0);}if(!Rb){Nb=Mb;break}else Db=Rb}}}else Nb=0;Rb=c[x>>2]|0;x=Rb+64|0;Db=Rb+68|0;Mb=Rb+72|0;Sb=Rb+28|0;c[x>>2]=0;c[x+4>>2]=0;c[x+8>>2]=0;c[x+12>>2]=0;Tb=c[Sb>>2]|0;if((Tb|0)>0){s=Rb+36|0;Hd=Rb+16|0;j=Rb+48|0;Hb=Rb+52|0;La=Rb+56|0;Gd=Rb+60|0;n=Tb;Pa=0;Ed=0;Jb=0;A=0;Lb=0;r=0;Oa=0;Dd=0;Fd=0;Gc=0;Fc=0;w=0;xd=0;while(1){wd=c[s>>2]|0;vd=c[wd+(xd*36|0)+4>>2]|0;if((vd|0)>0){zd=xd&65535;yd=xd|-65536;Ad=wd;wd=Pa;Vc=Ed;Uc=Jb;Cd=A;mb=Lb;Bd=r;Ia=Oa;q=Dd;Pc=Fd;Nc=Gc;Oc=Fc;_c=w;ud=0;while(1){Zc=ud+1|0;td=c[Ad+(xd*36|0)+12>>2]|0;Yc=c[td+(ud<<2)>>2]&65535;sd=c[td+(((Zc|0)==(vd|0)?0:Zc)<<2)>>2]&65535;td=Yc<<16>>16<sd<<16>>16;Xc=td?Yc:sd;rd=td?sd:Yc;Wc=td?Yc:sd;cd=td?sd:Yc;Yc=cd<<16>>16;sd=Pc+-1|0;td=((Wc&65535)<<16)+Yc&sd;j:do if(td>>>0<Cd>>>0?(bd=c[Uc+(td<<2)>>2]|0,(bd|0)!=-1):0){ad=bd;while(1){if(cd<<16>>16==(b[Vc+(ad<<2)>>1]|0)?Wc<<16>>16==(b[Vc+(ad<<2)+2>>1]|0):0)break;bd=c[Ia+(ad<<2)>>2]|0;if((bd|0)==-1){Id=0;break j}else ad=bd}Id=Nc+(ad<<2)|0}else Id=0;while(0);cd=Wc<<16>>16;td=c[Hd>>2]|0;Rc=+g[td+(cd<<4)>>2]-+g[td+(Yc<<4)>>2];yc=+g[td+(cd<<4)+4>>2]-+g[td+(Yc<<4)+4>>2];xc=+g[td+(cd<<4)+8>>2]-+g[td+(Yc<<4)+8>>2];wc=1.0/+P(+(Rc*Rc+yc*yc+xc*xc));vc=Rc*wc;Rc=yc*wc;yc=xc*wc;td=c[j>>2]|0;k:do if((td|0)>0){cd=c[La>>2]|0;Ba=0;while(1){wc=+g[cd+(Ba<<4)>>2];xc=+g[cd+(Ba<<4)+8>>2];Ac=xc-yc;do if(!(+O(+(wc-vc))>1.0e-06)){if(+O(+(+g[cd+(Ba<<4)+4>>2]-Rc))>1.0e-06)break;if(!(+O(+Ac)>1.0e-06))break k}while(0);Ac=yc+xc;do if(!(+O(+(vc+wc))>1.0e-06)){if(+O(+(Rc+ +g[cd+(Ba<<4)+4>>2]))>1.0e-06)break;if(!(+O(+Ac)>1.0e-06))break k}while(0);Ba=Ba+1|0;if((Ba|0)>=(td|0)){Eb=356;break}}}else Eb=356;while(0);if((Eb|0)==356){Eb=0;do if((td|0)==(c[Hb>>2]|0)){Yc=(td|0)!=0?td<<1:1;if((td|0)>=(Yc|0)){Jd=td;break}if(!Yc){Kd=0;Ld=td}else{c[3708]=(c[3708]|0)+1;Wc=ws((Yc<<4|3)+16|0)|0;if(!Wc)Md=0;else{Ba=Wc+4+15&-16;c[Ba+-4>>2]=Wc;Md=Ba}Kd=Md;Ld=c[j>>2]|0}if((Ld|0)>0){Ba=0;do{Wc=Kd+(Ba<<4)|0;cd=(c[La>>2]|0)+(Ba<<4)|0;c[Wc>>2]=c[cd>>2];c[Wc+4>>2]=c[cd+4>>2];c[Wc+8>>2]=c[cd+8>>2];c[Wc+12>>2]=c[cd+12>>2];Ba=Ba+1|0}while((Ba|0)!=(Ld|0));}Ba=c[La>>2]|0;if(Ba){if(a[Gd>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[Ba+-4>>2]|0);}c[La>>2]=0}a[Gd>>0]=1;c[La>>2]=Kd;c[Hb>>2]=Yc;Jd=c[j>>2]|0}else Jd=td;while(0);td=c[La>>2]|0;g[td+(Jd<<4)>>2]=vc;g[td+(Jd<<4)+4>>2]=Rc;g[td+(Jd<<4)+8>>2]=yc;g[td+(Jd<<4)+12>>2]=0.0;c[j>>2]=(c[j>>2]|0)+1}l:do if(!Id){td=(Xc&65535)<<16;Ba=td+(rd<<16>>16)|0;cd=Ba&sd;m:do if(cd>>>0<Cd>>>0){Wc=c[Uc+(cd<<2)>>2]|0;if((Wc|0)==-1)break;else Nd=Wc;while(1){if(rd<<16>>16==(b[Vc+(Nd<<2)>>1]|0)?Xc<<16>>16==(b[Vc+(Nd<<2)+2>>1]|0):0)break;Wc=c[Ia+(Nd<<2)>>2]|0;if((Wc|0)==-1)break m;else Nd=Wc}Wc=Nc+(Nd<<2)|0;b[Wc>>1]=yd;b[Wc+2>>1]=yd>>>16;Od=wd;Pd=Vc;Qd=Uc;Rd=Cd;Sd=mb;Td=Bd;Ud=Ia;Vd=q;Wd=Pc;Xd=Nc;Yd=Oc;Zd=_c;break l}while(0);do if((q|0)==(Pc|0)){Yc=(Pc|0)!=0?Pc<<1:1;if((Pc|0)>=(Yc|0)){_d=Pc;$d=Pc;ae=Nc;break}do if(!Yc)be=0;else{c[3708]=(c[3708]|0)+1;Wc=ws((Yc<<2|3)+16|0)|0;if(!Wc){be=0;break}ad=Wc+4+15&-16;c[ad+-4>>2]=Wc;be=ad}while(0);if((Pc|0)<=0){if(!Nc){_d=Pc;$d=Yc;ae=be;break}}else{ad=0;do{Wc=be+(ad<<2)|0;H=Nc+(ad<<2)|0;bd=e[H>>1]|e[H+2>>1]<<16;b[Wc>>1]=bd;b[Wc+2>>1]=bd>>>16;ad=ad+1|0}while((ad|0)!=(Pc|0));}c[3710]=(c[3710]|0)+1;xs(c[Nc+-4>>2]|0);_d=Pc;$d=Yc;ae=be}else{_d=q;$d=Pc;ae=Nc}while(0);ad=ae+(_d<<2)|0;b[ad>>1]=yd;b[ad+2>>1]=yd>>>16;ad=q+1|0;do if((_c|0)==(wd|0)){bd=(_c|0)!=0?_c<<1:1;if((_c|0)>=(bd|0)){ce=_c;de=Vc;break}do if(!bd)ee=0;else{c[3708]=(c[3708]|0)+1;Wc=ws((bd<<2|3)+16|0)|0;if(!Wc){ee=0;break}H=Wc+4+15&-16;c[H+-4>>2]=Wc;ee=H}while(0);if((_c|0)<=0){if(!Vc){ce=bd;de=ee;break}}else{Yc=0;do{H=ee+(Yc<<2)|0;Wc=Vc+(Yc<<2)|0;$c=e[Wc>>1]|e[Wc+2>>1]<<16;b[H>>1]=$c;b[H+2>>1]=$c>>>16;Yc=Yc+1|0}while((Yc|0)!=(_c|0));}c[3710]=(c[3710]|0)+1;xs(c[Vc+-4>>2]|0);ce=bd;de=ee}else{ce=wd;de=Vc}while(0);Yc=de+(_c<<2)|0;$c=td|rd&65535;b[Yc>>1]=$c;b[Yc+2>>1]=$c>>>16;$c=_c+1|0;if((Pc|0)<($d|0)){do if(($d|0)>(Cd|0)){if(($d|0)<(Cd|0)){fe=Uc;ge=Oc}else{do if((Oc|0)<($d|0)){do if(!$d)he=0;else{c[3708]=(c[3708]|0)+1;Yc=ws(($d<<2|3)+16|0)|0;if(!Yc){he=0;break}H=Yc+4+15&-16;c[H+-4>>2]=Yc;he=H}while(0);if((Cd|0)<=0){if(!Uc){ie=he;je=$d;break}}else{H=0;do{c[he+(H<<2)>>2]=c[Uc+(H<<2)>>2];H=H+1|0}while((H|0)!=(Cd|0));}c[3710]=(c[3710]|0)+1;xs(c[Uc+-4>>2]|0);ie=he;je=$d}else{ie=Uc;je=Oc}while(0);Cs(ie+(Cd<<2)|0,0,$d-Cd<<2|0)|0;fe=ie;ge=je}if(($d|0)>(mb|0)){do if((Bd|0)<($d|0)){do if(!$d)ke=0;else{c[3708]=(c[3708]|0)+1;bd=ws(($d<<2|3)+16|0)|0;if(!bd){ke=0;break}H=bd+4+15&-16;c[H+-4>>2]=bd;ke=H}while(0);if((mb|0)<=0){if(!Ia){le=$d;me=ke;break}}else{H=0;do{c[ke+(H<<2)>>2]=c[Ia+(H<<2)>>2];H=H+1|0}while((H|0)!=(mb|0));}c[3710]=(c[3710]|0)+1;xs(c[Ia+-4>>2]|0);le=$d;me=ke}else{le=Bd;me=Ia}while(0);Cs(me+(mb<<2)|0,0,$d-mb<<2|0)|0;ne=le;oe=me}else{ne=Bd;oe=Ia}if(($d|0)>0){H=$d<<2;Cs(fe|0,-1,H|0)|0;Cs(oe|0,-1,H|0)|0}if((Cd|0)<=0){pe=fe;qe=$d;re=$d;se=ne;te=oe;ue=ge;break}H=$d+-1|0;bd=0;do{Yc=fe+(((e[de+(bd<<2)+2>>1]<<16)+(b[de+(bd<<2)>>1]|0)&H)<<2)|0;c[oe+(bd<<2)>>2]=c[Yc>>2];c[Yc>>2]=bd;bd=bd+1|0}while((bd|0)!=(Cd|0));pe=fe;qe=$d;re=$d;se=ne;te=oe;ue=ge}else{pe=Uc;qe=Cd;re=mb;se=Bd;te=Ia;ue=Oc}while(0);ve=pe;we=qe;xe=re;ye=se;ze=te;Ae=ue;Be=Ba&$d+-1}else{ve=Uc;we=Cd;xe=mb;ye=Bd;ze=Ia;Ae=Oc;Be=cd}td=ve+(Be<<2)|0;c[ze+(q<<2)>>2]=c[td>>2];c[td>>2]=q;Od=ce;Pd=de;Qd=ve;Rd=we;Sd=xe;Td=ye;Ud=ze;Vd=ad;Wd=$d;Xd=ae;Yd=Ae;Zd=$c}else{b[Id+2>>1]=zd;Od=wd;Pd=Vc;Qd=Uc;Rd=Cd;Sd=mb;Td=Bd;Ud=Ia;Vd=q;Wd=Pc;Xd=Nc;Yd=Oc;Zd=_c}while(0);if((Zc|0)>=(vd|0))break;Ad=c[s>>2]|0;wd=Od;Vc=Pd;Uc=Qd;Cd=Rd;mb=Sd;Bd=Td;Ia=Ud;q=Vd;Pc=Wd;Nc=Xd;Oc=Yd;_c=Zd;ud=Zc}Ce=c[Sb>>2]|0;De=Od;Ee=Pd;Fe=Qd;Ge=Rd;He=Sd;Ie=Td;Je=Ud;Ke=Vd;Le=Wd;Me=Xd;Ne=Yd;Oe=Zd}else{Ce=n;De=Pa;Ee=Ed;Fe=Jb;Ge=A;He=Lb;Ie=r;Je=Oa;Ke=Dd;Le=Fd;Me=Gc;Ne=Fc;Oe=w}xd=xd+1|0;if((xd|0)>=(Ce|0))break;else{n=Ce;Pa=De;Ed=Ee;Jb=Fe;A=Ge;Lb=He;r=Ie;Oa=Je;Dd=Ke;Fd=Le;Gc=Me;Fc=Ne;w=Oe}}if((Ce|0)>0){Oe=c[s>>2]|0;s=c[Hd>>2]|0;yc=0.0;Hd=0;while(1){w=c[Oe+(Hd*36|0)+4>>2]|0;Ne=c[Oe+(Hd*36|0)+12>>2]|0;Fc=c[Ne>>2]|0;if((w+-2|0)<1)Pe=yc;else{Gc=s+(Fc<<4)|0;Le=s+(Fc<<4)+4|0;Fd=s+(Fc<<4)+8|0;Fc=w+-1|0;Rc=+g[x>>2];vc=+g[Db>>2];Ac=+g[Mb>>2];wc=yc;Ke=1;while(1){Dd=c[Ne+(Ke<<2)>>2]|0;Ke=Ke+1|0;Oa=c[Ne+(((Ke|0)%(w|0)|0)<<2)>>2]|0;xc=+g[Gc>>2];zc=+g[s+(Dd<<4)>>2];lc=xc-zc;kc=+g[Le>>2];jc=+g[s+(Dd<<4)+4>>2];Ta=kc-jc;Wa=+g[Fd>>2];bb=+g[s+(Dd<<4)+8>>2];oa=Wa-bb;ga=+g[s+(Oa<<4)>>2];Ib=xc-ga;$a=+g[s+(Oa<<4)+4>>2];ab=kc-$a;ca=+g[s+(Oa<<4)+8>>2];ja=Wa-ca;fa=Ta*ja-oa*ab;Ya=oa*Ib-lc*ja;ja=lc*ab-Ta*Ib;Ib=+P(+(ja*ja+(fa*fa+Ya*Ya)))*.5;Rc=Rc+(xc+zc+ga)*.3333333432674408*Ib;g[x>>2]=Rc;vc=(kc+jc+$a)*.3333333432674408*Ib+vc;g[Db>>2]=vc;Ac=Ib*((Wa+bb+ca)*.3333333432674408)+Ac;g[Mb>>2]=Ac;ca=wc+Ib;if((Ke|0)==(Fc|0)){Pe=ca;break}else wc=ca}}Hd=Hd+1|0;if((Hd|0)==(Ce|0)){Qe=Pe;Re=x;Se=Ce;Te=1;Ue=Ee;Ve=Fe;We=Je;Xe=Me;break}else yc=Pe}}else{Ye=Ce;Ze=Ee;_e=Fe;$e=Je;af=Me;Eb=337}}else{Ye=Tb;Ze=0;_e=0;$e=0;af=0;Eb=337}if((Eb|0)==337){Qe=0.0;Re=x;Se=Ye;Te=0;Ue=Ze;Ve=_e;We=$e;Xe=af}Pe=1.0/Qe;Qe=Pe*+g[Re>>2];g[Re>>2]=Qe;yc=Pe*+g[Db>>2];g[Db>>2]=yc;wc=Pe*+g[Mb>>2];g[Mb>>2]=wc;Mb=Rb+96|0;g[Mb>>2]=3402823466385288598117041.0e14;if(Te){Te=c[Rb+36>>2]|0;Pe=3402823466385288598117041.0e14;Db=0;while(1){Ac=+O(+(+g[Te+(Db*36|0)+32>>2]+(+g[Te+(Db*36|0)+20>>2]*Qe+ +g[Te+(Db*36|0)+24>>2]*yc+ +g[Te+(Db*36|0)+28>>2]*wc)));if(Ac<Pe){g[Mb>>2]=Ac;bf=Ac}else bf=Pe;Db=Db+1|0;if((Db|0)>=(Se|0)){cf=bf;break}else Pe=bf}}else cf=3402823466385288598117041.0e14;Se=c[Rb+8>>2]|0;if((Se|0)>0){Db=c[Rb+16>>2]|0;bf=-3402823466385288598117041.0e14;Pe=-3402823466385288598117041.0e14;wc=-3402823466385288598117041.0e14;yc=3402823466385288598117041.0e14;Qe=3402823466385288598117041.0e14;Ac=3402823466385288598117041.0e14;Te=0;while(1){vc=+g[Db+(Te<<4)>>2];Rc=vc<yc?vc:yc;ca=vc>bf?vc:bf;vc=+g[Db+(Te<<4)+4>>2];Ib=vc<Qe?vc:Qe;bb=vc>Pe?vc:Pe;vc=+g[Db+(Te<<4)+8>>2];Wa=vc<Ac?vc:Ac;$a=vc>wc?vc:wc;Te=Te+1|0;if((Te|0)==(Se|0)){df=ca;ef=bb;ff=$a;gf=Rc;hf=Ib;jf=Wa;break}else{bf=ca;Pe=bb;wc=$a;yc=Rc;Qe=Ib;Ac=Wa}}}else{df=-3402823466385288598117041.0e14;ef=-3402823466385288598117041.0e14;ff=-3402823466385288598117041.0e14;gf=3402823466385288598117041.0e14;hf=3402823466385288598117041.0e14;jf=3402823466385288598117041.0e14}g[Rb+100>>2]=df+gf;g[Rb+104>>2]=ef+hf;g[Rb+108>>2]=jf+ff;g[Rb+112>>2]=0.0;Ac=df-gf;gf=ef-hf;hf=ff-jf;g[Rb+116>>2]=Ac;g[Rb+120>>2]=gf;g[Rb+124>>2]=hf;g[Rb+128>>2]=0.0;jf=cf/1.7320507764816284;Se=Ac<gf?(gf<hf?2:1):Ac<hf?2:0;Te=Rb+116+(Se<<2)|0;hf=(+g[Te>>2]*.5-jf)*.0009765625;Db=Rb+80|0;Re=Rb+88|0;g[Re>>2]=jf;af=Rb+84|0;g[af>>2]=jf;g[Db>>2]=jf;Ac=+g[Te>>2]*.5;Te=Rb+80+(Se<<2)|0;g[Te>>2]=Ac;gf=Ac;$e=0;while(1){if(xr(Rb)|0){Eb=445;break}gf=gf-hf;g[Te>>2]=gf;$e=$e+1|0;if(($e|0)>=1024){Eb=444;break}}n:do if((Eb|0)==444){g[Re>>2]=jf;g[af>>2]=jf;g[Db>>2]=jf}else if((Eb|0)==445){gf=(+g[Mb>>2]-jf)*.0009765625;$e=1<<Se&3;Te=Rb+80+($e<<2)|0;_e=Rb+80+((1<<$e&3)<<2)|0;$e=c[_e>>2]|0;Ze=0;while(1){kf=c[Te>>2]|0;g[Te>>2]=gf+(c[k>>2]=kf,+g[k>>2]);hf=gf+ +g[_e>>2];g[_e>>2]=hf;Ze=Ze+1|0;if(!(xr(Rb)|0))break;if((Ze|0)>=1024)break n;else $e=(g[k>>2]=hf,c[k>>2]|0);}c[Te>>2]=kf;c[_e>>2]=$e}while(0);if(Ue){c[3710]=(c[3710]|0)+1;xs(c[Ue+-4>>2]|0);}if(Xe){c[3710]=(c[3710]|0)+1;xs(c[Xe+-4>>2]|0);}if(We){c[3710]=(c[3710]|0)+1;xs(c[We+-4>>2]|0);}if(Ve){c[3710]=(c[3710]|0)+1;xs(c[Ve+-4>>2]|0);}if(Nb){c[3710]=(c[3710]|0)+1;xs(c[Nb+-4>>2]|0);}Nb=c[p>>2]|0;Ve=c[qb>>2]|0;if((Nb|0)<=0){if(Ve){lf=Ve;Eb=466}}else{We=0;do{Xe=Ve+(We*36|0)+4|0;Ue=Ve+(We*36|0)+12|0;kf=c[Ue>>2]|0;Rb=Ve+(We*36|0)+16|0;if(kf){if(a[Rb>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[kf+-4>>2]|0);}c[Ue>>2]=0}a[Rb>>0]=1;c[Ue>>2]=0;c[Xe>>2]=0;c[Ve+(We*36|0)+8>>2]=0;We=We+1|0}while((We|0)!=(Nb|0));lf=Ve;Eb=466}if((Eb|0)==466){if(a[tb>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[lf+-4>>2]|0);}c[qb>>2]=0}a[tb>>0]=1;c[qb>>2]=0;c[p>>2]=0;c[pb>>2]=0;if(ub){c[3710]=(c[3710]|0)+1;xs(c[ub+-4>>2]|0);}ub=c[J>>2]|0;if(ub){if(a[E>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[ub+-4>>2]|0);}c[J>>2]=0}a[E>>0]=1;c[J>>2]=0;c[D>>2]=0;c[K>>2]=0;K=c[z>>2]|0;if(K){if(a[G>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[K+-4>>2]|0);}c[z>>2]=0}a[G>>0]=1;c[z>>2]=0;c[m>>2]=0;c[F>>2]=0;F=c[B>>2]|0;if(F){if(a[I>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[F+-4>>2]|0);}c[B>>2]=0}if(!y){i=h;return 1}c[3710]=(c[3710]|0)+1;xs(c[y+-4>>2]|0);i=h;return 1}function ro(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,h=0.0,j=0.0,k=0.0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0,r=0,s=0,t=0.0,u=0,v=0,w=0.0,x=0,y=0,z=0.0;e=i;i=i+2048|0;f=e;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;c[a+12>>2]=0;h=+g[d>>2];j=+g[d+4>>2];k=+g[d+8>>2];l=h*h+j*j+k*k;if(l<9.999999747378752e-05){m=1.0;n=0.0;o=0.0}else{p=1.0/+P(+l);m=h*p;n=j*p;o=k*p}if((Ob[c[(c[b>>2]|0)+96>>2]&127](b)|0)<=0){i=e;return}d=0;p=-999999984306749440.0;while(1){if(((Ob[c[(c[b>>2]|0)+96>>2]&127](b)|0)-d|0)<128){q=(Ob[c[(c[b>>2]|0)+96>>2]&127](b)|0)-d|0;if((q|0)>0){r=q;s=7}else{t=-3402823466385288598117041.0e14;u=-1}}else{r=128;s=7}if((s|0)==7){s=0;q=0;do{pc[c[(c[b>>2]|0)+108>>2]&63](b,q,f+(q<<4)|0);q=q+1|0}while((q|0)!=(r|0));v=0;w=-3402823466385288598117041.0e14;x=-1;while(1){k=m*+g[f+(v<<4)>>2]+n*+g[f+(v<<4)+4>>2]+o*+g[f+(v<<4)+8>>2];q=k>w;y=q?v:x;j=q?k:w;v=v+1|0;if((v|0)==(r|0)){t=j;u=y;break}else{w=j;x=y}}}if(t>p){y=f+(u<<4)|0;c[a>>2]=c[y>>2];c[a+4>>2]=c[y+4>>2];c[a+8>>2]=c[y+8>>2];c[a+12>>2]=c[y+12>>2];z=t}else z=p;d=d+128|0;if((d|0)>=(Ob[c[(c[b>>2]|0)+96>>2]&127](b)|0))break;else p=z}i=e;return}function so(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0.0,u=0,v=0.0,w=0.0,x=0.0,y=0.0,z=0,A=0.0,B=0,C=0,D=0.0;f=i;i=i+2048|0;h=f;if((e|0)>0)j=0;else{i=f;return}do{g[d+(j<<4)+12>>2]=-999999984306749440.0;j=j+1|0}while((j|0)!=(e|0));j=0;do{if((Ob[c[(c[a>>2]|0)+96>>2]&127](a)|0)>0){k=b+(j<<4)|0;l=b+(j<<4)+4|0;m=b+(j<<4)+8|0;n=d+(j<<4)+12|0;o=d+(j<<4)|0;p=0;do{if(((Ob[c[(c[a>>2]|0)+96>>2]&127](a)|0)-p|0)<128){q=(Ob[c[(c[a>>2]|0)+96>>2]&127](a)|0)-p|0;if((q|0)>0){r=q;s=8}else{t=-3402823466385288598117041.0e14;u=-1}}else{r=128;s=8}if((s|0)==8){s=0;q=0;do{pc[c[(c[a>>2]|0)+108>>2]&63](a,q,h+(q<<4)|0);q=q+1|0}while((q|0)!=(r|0));v=+g[k>>2];w=+g[l>>2];x=+g[m>>2];q=0;y=-3402823466385288598117041.0e14;z=-1;while(1){A=v*+g[h+(q<<4)>>2]+w*+g[h+(q<<4)+4>>2]+x*+g[h+(q<<4)+8>>2];B=A>y;C=B?q:z;D=B?A:y;q=q+1|0;if((q|0)==(r|0)){t=D;u=C;break}else{y=D;z=C}}}if(t>+g[n>>2]){z=h+(u<<4)|0;c[o>>2]=c[z>>2];c[o+4>>2]=c[z+4>>2];c[o+8>>2]=c[z+8>>2];c[o+12>>2]=c[z+12>>2];g[n>>2]=t}p=p+128|0}while((p|0)<(Ob[c[(c[a>>2]|0)+96>>2]&127](a)|0));}j=j+1|0}while((j|0)!=(e|0));i=f;return}function to(a,b,d){a=a|0;b=+b;d=d|0;var e=0,f=0,h=0,j=0,k=0.0,l=0,m=0.0,n=0.0,o=0.0;e=i;i=i+96|0;f=e+32|0;h=e+16|0;j=e;k=+Zb[c[(c[a>>2]|0)+48>>2]&7](a);c[f>>2]=1065353216;l=f+4|0;c[l>>2]=0;c[l+4>>2]=0;c[l+8>>2]=0;c[l+12>>2]=0;c[f+20>>2]=1065353216;l=f+24|0;c[l>>2]=0;c[l+4>>2]=0;c[l+8>>2]=0;c[l+12>>2]=0;c[f+40>>2]=1065353216;l=f+44|0;c[l>>2]=0;c[l+4>>2]=0;c[l+8>>2]=0;c[l+12>>2]=0;c[l+16>>2]=0;tc[c[(c[a>>2]|0)+8>>2]&63](a,f,h,j);m=(k+(+g[j>>2]-+g[h>>2])*.5)*2.0;n=(k+(+g[j+4>>2]-+g[h+4>>2])*.5)*2.0;o=(k+(+g[j+8>>2]-+g[h+8>>2])*.5)*2.0;k=m*m;m=n*n;n=o*o;o=b*.0833333283662796;g[d>>2]=o*(m+n);g[d+4>>2]=o*(k+n);g[d+8>>2]=o*(k+m);g[d+12>>2]=0.0;i=e;return}function uo(a){a=a|0;var b=0;c[a>>2]=10864;b=a+56|0;a=c[b>>2]|0;if(!a)return;Kb[c[c[a>>2]>>2]&255](a);a=c[b>>2]|0;if(!a)return;c[3710]=(c[3710]|0)+1;xs(c[a+-4>>2]|0);return}function vo(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;e=b+8|0;if((c[e>>2]|0)>=(d|0))return;if((d|0)!=0?(c[3708]=(c[3708]|0)+1,f=ws((d*36|3)+16|0)|0,(f|0)!=0):0){g=f+4+15&-16;c[g+-4>>2]=f;h=g}else h=0;g=b+4|0;f=c[g>>2]|0;i=b+12|0;if((f|0)>0){j=0;do{k=h+(j*36|0)|0;l=c[i>>2]|0;m=k+16|0;a[m>>0]=1;n=k+12|0;c[n>>2]=0;o=k+4|0;c[o>>2]=0;p=k+8|0;c[p>>2]=0;q=c[l+(j*36|0)+4>>2]|0;if((q|0)>0){r=q<<2;c[3708]=(c[3708]|0)+1;s=ws((r|3)+16|0)|0;if(!s)t=0;else{u=s+4+15&-16;c[u+-4>>2]=s;t=u}u=c[o>>2]|0;s=c[n>>2]|0;if((u|0)<=0)if(!s){a[m>>0]=1;c[n>>2]=t;c[p>>2]=q;Cs(t|0,0,r|0)|0}else v=13;else{w=0;do{c[t+(w<<2)>>2]=c[s+(w<<2)>>2];w=w+1|0}while((w|0)!=(u|0));v=13}if((v|0)==13){v=0;if(a[m>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[s+-4>>2]|0);}a[m>>0]=1;c[n>>2]=t;c[p>>2]=q;Cs(t|0,0,r|0)|0}u=c[n>>2]|0;c[o>>2]=q;w=c[l+(j*36|0)+12>>2]|0;x=0;do{c[u+(x<<2)>>2]=c[w+(x<<2)>>2];x=x+1|0}while((x|0)!=(q|0));}else c[o>>2]=q;x=k+20|0;w=l+(j*36|0)+20|0;c[x>>2]=c[w>>2];c[x+4>>2]=c[w+4>>2];c[x+8>>2]=c[w+8>>2];c[x+12>>2]=c[w+12>>2];j=j+1|0}while((j|0)!=(f|0));f=c[g>>2]|0;if((f|0)>0){g=0;do{j=c[i>>2]|0;t=j+(g*36|0)+4|0;v=j+(g*36|0)+12|0;w=c[v>>2]|0;x=j+(g*36|0)+16|0;if(w){if(a[x>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[w+-4>>2]|0);}c[v>>2]=0}a[x>>0]=1;c[v>>2]=0;c[t>>2]=0;c[j+(g*36|0)+8>>2]=0;g=g+1|0}while((g|0)!=(f|0));y=i}else y=i}else y=i;i=c[y>>2]|0;f=b+16|0;if(i){if(a[f>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[i+-4>>2]|0);}c[y>>2]=0}a[f>>0]=1;c[y>>2]=h;c[e>>2]=d;return}function wo(b,d){b=b|0;d=d|0;var 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;e=b+4|0;f=c[e>>2]|0;if((f|0)==(c[b+8>>2]|0)){vo(b,(f|0)!=0?f<<1:1);g=c[e>>2]|0}else g=f;f=(c[b+12>>2]|0)+(g*36|0)|0;g=f+16|0;a[g>>0]=1;b=f+12|0;c[b>>2]=0;h=f+4|0;c[h>>2]=0;i=f+8|0;c[i>>2]=0;j=c[d+4>>2]|0;if((j|0)<=0){c[h>>2]=j;k=f+20|0;l=d+20|0;c[k>>2]=c[l>>2];c[k+4>>2]=c[l+4>>2];c[k+8>>2]=c[l+8>>2];c[k+12>>2]=c[l+12>>2];m=c[e>>2]|0;n=m+1|0;c[e>>2]=n;return}o=j<<2;c[3708]=(c[3708]|0)+1;p=ws((o|3)+16|0)|0;if(!p)q=0;else{r=p+4+15&-16;c[r+-4>>2]=p;q=r}r=c[h>>2]|0;p=c[b>>2]|0;if((r|0)<=0)if(!p){a[g>>0]=1;c[b>>2]=q;c[i>>2]=j;Cs(q|0,0,o|0)|0}else s=10;else{t=0;do{c[q+(t<<2)>>2]=c[p+(t<<2)>>2];t=t+1|0}while((t|0)!=(r|0));s=10}if((s|0)==10){if(a[g>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[p+-4>>2]|0);}a[g>>0]=1;c[b>>2]=q;c[i>>2]=j;Cs(q|0,0,o|0)|0}o=c[b>>2]|0;c[h>>2]=j;h=c[d+12>>2]|0;b=0;do{c[o+(b<<2)>>2]=c[h+(b<<2)>>2];b=b+1|0}while((b|0)!=(j|0));k=f+20|0;l=d+20|0;c[k>>2]=c[l>>2];c[k+4>>2]=c[l+4>>2];c[k+8>>2]=c[l+8>>2];c[k+12>>2]=c[l+12>>2];m=c[e>>2]|0;n=m+1|0;c[e>>2]=n;return}function xo(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var h=0,j=0,k=0,l=0,m=0,n=0.0,o=0.0,p=0.0,q=0.0,r=0,s=0,t=0,u=0,v=0.0,w=0.0,x=0.0,y=0.0,z=0.0,A=0.0,B=0.0,C=0,D=0,E=0.0,F=0.0,G=0,H=0,I=0,J=0,K=0,L=0,M=0;h=i;i=i+32|0;j=h;k=(f+e|0)/2|0;l=b+12|0;m=c[l>>2]|0;n=+g[m+(k*24|0)>>2];o=+g[m+(k*24|0)+4>>2];p=+g[m+(k*24|0)+8>>2];q=+g[m+(k*24|0)+16>>2];r=c[m+(k*24|0)+20>>2]|0;k=d+4|0;s=d+8|0;t=m;m=e;u=f;while(1){v=+g[d>>2];w=+g[k>>2];x=+g[s>>2];y=n-v;z=o-w;A=p-x;B=y*y+z*z+A*A;C=m;a:while(1){A=+g[t+(C*24|0)+16>>2];do if(A!=q){if(!(A<q)){D=u;break a}}else{z=+g[t+(C*24|0)>>2]-v;y=+g[t+(C*24|0)+4>>2]-w;E=+g[t+(C*24|0)+8>>2]-x;F=z*z+y*y+E*E;if(F!=B)if(F<B)break;else{D=u;break a}else if((c[t+(C*24|0)+20>>2]|0)<(r|0))break;else{D=u;break a}}while(0);C=C+1|0}b:while(1){A=+g[t+(D*24|0)+16>>2];do if(q!=A){if(!(q<A))break b}else{F=+g[t+(D*24|0)>>2]-v;E=+g[t+(D*24|0)+4>>2]-w;y=+g[t+(D*24|0)+8>>2]-x;z=F*F+E*E+y*y;if(B!=z)if(B<z)break;else break b;else if((r|0)<(c[t+(D*24|0)+20>>2]|0))break;else break b}while(0);D=D+-1|0}if((C|0)>(D|0)){G=C;H=D}else{I=t+(C*24|0)|0;J=j;K=I;L=J+24|0;do{a[J>>0]=a[K>>0]|0;J=J+1|0;K=K+1|0}while((J|0)<(L|0));M=t+(D*24|0)|0;c[I>>2]=c[M>>2];c[I+4>>2]=c[M+4>>2];c[I+8>>2]=c[M+8>>2];c[I+12>>2]=c[M+12>>2];c[I+16>>2]=c[M+16>>2];c[I+20>>2]=c[M+20>>2];J=(c[l>>2]|0)+(D*24|0)|0;K=j;L=J+24|0;do{a[J>>0]=a[K>>0]|0;J=J+1|0;K=K+1|0}while((J|0)<(L|0));G=C+1|0;H=D+-1|0}if((G|0)>(H|0))break;t=c[l>>2]|0;m=G;u=H}if((H|0)>(e|0))xo(b,d,e,H);if((G|0)>=(f|0)){i=h;return}xo(b,d,G,f);i=h;return}function yo(a,b,d){a=a|0;b=b|0;d=d|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;c[a+12>>2]=0;return}function zo(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;if((e|0)>0)f=0;else return;do{b=d+(f<<4)|0;f=f+1|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0}while((f|0)!=(e|0));return}function Ao(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,h=0.0,j=0.0,k=0.0,l=0.0,m=0.0;e=i;i=i+16|0;f=e;pc[c[(c[b>>2]|0)+68>>2]&63](f,b,d);c[a>>2]=c[f>>2];c[a+4>>2]=c[f+4>>2];c[a+8>>2]=c[f+8>>2];c[a+12>>2]=c[f+12>>2];h=+g[d>>2];j=+g[d+4>>2];k=+g[d+8>>2];d=h*h+j*j+k*k<1.4210854715202004e-14;l=d?-1.0:h;h=d?-1.0:j;j=d?-1.0:k;k=1.0/+P(+(j*j+(l*l+h*h)));m=+Zb[c[(c[b>>2]|0)+48>>2]&7](b);g[a>>2]=+g[a>>2]+m*(k*l);b=a+4|0;g[b>>2]=m*(k*h)+ +g[b>>2];b=a+8|0;g[b>>2]=m*(k*j)+ +g[b>>2];i=e;return}function Bo(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0.0,h=0.0,i=0.0,j=0,k=0.0,l=0,m=0.0;f=+Zb[c[(c[a>>2]|0)+48>>2]&7](a);h=+Zb[c[(c[a>>2]|0)+48>>2]&7](a);i=+Zb[c[(c[a>>2]|0)+48>>2]&7](a);a=b+48|0;j=b+52|0;k=+g[j>>2]-h;l=b+56|0;m=+g[l>>2]-i;g[d>>2]=+g[a>>2]-f;g[d+4>>2]=k;g[d+8>>2]=m;g[d+12>>2]=0.0;m=h+ +g[j>>2];h=i+ +g[l>>2];g[e>>2]=f+ +g[a>>2];g[e+4>>2]=m;g[e+8>>2]=h;g[e+12>>2]=0.0;return}function Co(a,b,d){a=a|0;b=+b;d=d|0;var e=0.0;e=b*.4000000059604645*+Zb[c[(c[a>>2]|0)+48>>2]&7](a);b=e*+Zb[c[(c[a>>2]|0)+48>>2]&7](a);g[d>>2]=b;g[d+4>>2]=b;g[d+8>>2]=b;g[d+12>>2]=0.0;return}function Do(a){a=a|0;if(!a)return;c[3710]=(c[3710]|0)+1;xs(c[a+-4>>2]|0);return}function Eo(a){a=a|0;return 11176}function Fo(a,b){a=a|0;b=+b;g[a+48>>2]=b;return}function Go(a){a=a|0;return +(+g[a+32>>2]*+g[a+16>>2]);}function Ho(a){a=a|0;return}function Io(a){a=a|0;return}function Jo(b){b=b|0;var d=0,e=0,f=0,g=0;c[b>>2]=11272;d=b+24|0;e=b+32|0;f=c[e>>2]|0;g=b+36|0;if(f){if(a[g>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[f+-4>>2]|0);}c[e>>2]=0}a[g>>0]=1;c[e>>2]=0;c[d>>2]=0;c[b+28>>2]=0;return}function Ko(b){b=b|0;var d=0,e=0,f=0,g=0;c[b>>2]=11272;d=b+24|0;e=b+32|0;f=c[e>>2]|0;g=b+36|0;if(f){if(a[g>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[f+-4>>2]|0);}c[e>>2]=0}a[g>>0]=1;c[e>>2]=0;c[d>>2]=0;c[b+28>>2]=0;c[3710]=(c[3710]|0)+1;xs(c[b+-4>>2]|0);return}function Lo(a,b,d,e,f,g,h,i,j,k){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;var l=0;l=c[a+32>>2]|0;c[d>>2]=c[l+(k<<5)+12>>2];c[b>>2]=c[l+(k<<5)+16>>2];c[e>>2]=c[l+(k<<5)+28>>2];c[f>>2]=c[l+(k<<5)+20>>2];c[i>>2]=c[l+(k<<5)>>2];c[g>>2]=c[l+(k<<5)+4>>2];c[h>>2]=c[l+(k<<5)+8>>2];c[j>>2]=c[l+(k<<5)+24>>2];return}function Mo(a,b,d,e,f,g,h,i,j,k){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;var l=0;l=c[a+32>>2]|0;c[d>>2]=c[l+(k<<5)+12>>2];c[b>>2]=c[l+(k<<5)+16>>2];c[e>>2]=c[l+(k<<5)+28>>2];c[f>>2]=c[l+(k<<5)+20>>2];c[i>>2]=c[l+(k<<5)>>2];c[g>>2]=c[l+(k<<5)+4>>2];c[h>>2]=c[l+(k<<5)+8>>2];c[j>>2]=c[l+(k<<5)+24>>2];return}function No(a){a=a|0;return (c[a+48>>2]|0)==1|0}function Oo(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=a+52|0;c[e>>2]=c[b>>2];c[e+4>>2]=c[b+4>>2];c[e+8>>2]=c[b+8>>2];c[e+12>>2]=c[b+12>>2];b=a+68|0;c[b>>2]=c[d>>2];c[b+4>>2]=c[d+4>>2];c[b+8>>2]=c[d+8>>2];c[b+12>>2]=c[d+12>>2];c[a+48>>2]=1;return}function Po(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=a+52|0;c[b>>2]=c[e>>2];c[b+4>>2]=c[e+4>>2];c[b+8>>2]=c[e+8>>2];c[b+12>>2]=c[e+12>>2];e=a+68|0;c[d>>2]=c[e>>2];c[d+4>>2]=c[e+4>>2];c[d+8>>2]=c[e+8>>2];c[d+12>>2]=c[e+12>>2];return}function Qo(a,b){a=a|0;b=b|0;return}function Ro(a,b){a=a|0;b=b|0;return}function So(a){a=a|0;return c[a+24>>2]|0}function To(a,b){a=a|0;b=b|0;return}function Uo(a,b){a=a|0;b=b|0;return}function Vo(a){a=a|0;return 28}function Wo(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0,j=0,k=0,l=0;d=i;i=i+48|0;e=d+32|0;f=d+16|0;h=d;c[a+8>>2]=0;c[a+12>>2]=-1;j=a+16|0;g[j>>2]=0.0;c[a>>2]=11392;c[a+52>>2]=b;c[a+4>>2]=21;if(Ob[c[(c[b>>2]|0)+40>>2]&127](b)|0){pc[c[(c[b>>2]|0)+48>>2]&63](b,a+20|0,a+36|0);i=d;return}else{b=e+4|0;k=e+8|0;c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;c[e+12>>2]=0;g[e>>2]=1.0;pc[c[(c[a>>2]|0)+68>>2]&63](f,a,e);g[a+36>>2]=+g[f>>2]+ +g[j>>2];g[e>>2]=-1.0;pc[c[(c[a>>2]|0)+68>>2]&63](h,a,e);c[f>>2]=c[h>>2];c[f+4>>2]=c[h+4>>2];c[f+8>>2]=c[h+8>>2];c[f+12>>2]=c[h+12>>2];g[a+20>>2]=+g[f>>2]-+g[j>>2];c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;c[e+12>>2]=0;g[b>>2]=1.0;pc[c[(c[a>>2]|0)+68>>2]&63](f,a,e);l=f+4|0;g[a+40>>2]=+g[l>>2]+ +g[j>>2];g[b>>2]=-1.0;pc[c[(c[a>>2]|0)+68>>2]&63](h,a,e);c[f>>2]=c[h>>2];c[f+4>>2]=c[h+4>>2];c[f+8>>2]=c[h+8>>2];c[f+12>>2]=c[h+12>>2];g[a+24>>2]=+g[l>>2]-+g[j>>2];c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;c[e+12>>2]=0;g[k>>2]=1.0;pc[c[(c[a>>2]|0)+68>>2]&63](f,a,e);l=f+8|0;g[a+44>>2]=+g[l>>2]+ +g[j>>2];g[k>>2]=-1.0;pc[c[(c[a>>2]|0)+68>>2]&63](h,a,e);c[f>>2]=c[h>>2];c[f+4>>2]=c[h+4>>2];c[f+8>>2]=c[h+8>>2];c[f+12>>2]=c[h+12>>2];g[a+28>>2]=+g[l>>2]-+g[j>>2];i=d;return}}function Xo(a){a=a|0;return}function Yo(a){a=a|0;if(!a)return;c[3710]=(c[3710]|0)+1;xs(c[a+-4>>2]|0);return}function Zo(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,h=0,i=0,j=0,k=0,l=0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0,r=0.0,s=0.0,t=0.0,u=0.0,v=0.0,w=0.0,x=0.0,y=0.0,z=0.0,A=0.0,B=0.0,C=0.0,D=0.0,E=0.0,F=0.0,G=0.0,H=0.0,I=0.0,J=0.0,K=0.0;f=a+36|0;h=a+20|0;i=a+40|0;j=a+24|0;k=a+44|0;l=a+28|0;m=(+g[f>>2]-+g[h>>2])*.5;n=(+g[i>>2]-+g[j>>2])*.5;o=(+g[k>>2]-+g[l>>2])*.5;p=+Zb[c[(c[a>>2]|0)+48>>2]&7](a);q=+Zb[c[(c[a>>2]|0)+48>>2]&7](a);r=m+p;p=n+q;q=o+ +Zb[c[(c[a>>2]|0)+48>>2]&7](a);o=(+g[f>>2]+ +g[h>>2])*.5;n=(+g[i>>2]+ +g[j>>2])*.5;m=(+g[k>>2]+ +g[l>>2])*.5;s=+g[b>>2];t=+O(+s);u=+g[b+4>>2];v=+O(+u);w=+g[b+8>>2];x=+O(+w);y=+g[b+16>>2];z=+O(+y);A=+g[b+20>>2];B=+O(+A);C=+g[b+24>>2];D=+O(+C);E=+g[b+32>>2];F=+O(+E);G=+g[b+36>>2];H=+O(+G);I=+g[b+40>>2];J=+O(+I);K=o*s+n*u+m*w+ +g[b+48>>2];w=o*y+n*A+m*C+ +g[b+52>>2];C=o*E+n*G+m*I+ +g[b+56>>2];I=r*t+p*v+q*x;x=r*z+p*B+q*D;D=r*F+p*H+q*J;g[d>>2]=K-I;g[d+4>>2]=w-x;g[d+8>>2]=C-D;g[d+12>>2]=0.0;g[e>>2]=I+K;g[e+4>>2]=x+w;g[e+8>>2]=D+C;g[e+12>>2]=0.0;return}function _o(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0,j=0,k=0,l=0;d=i;i=i+48|0;e=d+32|0;f=d+16|0;h=d;j=(c[a+52>>2]|0)+4|0;c[j>>2]=c[b>>2];c[j+4>>2]=c[b+4>>2];c[j+8>>2]=c[b+8>>2];c[j+12>>2]=c[b+12>>2];b=e+4|0;j=e+8|0;k=a+16|0;c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;c[e+12>>2]=0;g[e>>2]=1.0;pc[c[(c[a>>2]|0)+68>>2]&63](f,a,e);g[a+36>>2]=+g[f>>2]+ +g[k>>2];g[e>>2]=-1.0;pc[c[(c[a>>2]|0)+68>>2]&63](h,a,e);c[f>>2]=c[h>>2];c[f+4>>2]=c[h+4>>2];c[f+8>>2]=c[h+8>>2];c[f+12>>2]=c[h+12>>2];g[a+20>>2]=+g[f>>2]-+g[k>>2];c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;c[e+12>>2]=0;g[b>>2]=1.0;pc[c[(c[a>>2]|0)+68>>2]&63](f,a,e);l=f+4|0;g[a+40>>2]=+g[l>>2]+ +g[k>>2];g[b>>2]=-1.0;pc[c[(c[a>>2]|0)+68>>2]&63](h,a,e);c[f>>2]=c[h>>2];c[f+4>>2]=c[h+4>>2];c[f+8>>2]=c[h+8>>2];c[f+12>>2]=c[h+12>>2];g[a+24>>2]=+g[l>>2]-+g[k>>2];c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;c[e+12>>2]=0;g[j>>2]=1.0;pc[c[(c[a>>2]|0)+68>>2]&63](f,a,e);l=f+8|0;g[a+44>>2]=+g[l>>2]+ +g[k>>2];g[j>>2]=-1.0;pc[c[(c[a>>2]|0)+68>>2]&63](h,a,e);c[f>>2]=c[h>>2];c[f+4>>2]=c[h+4>>2];c[f+8>>2]=c[h+8>>2];c[f+12>>2]=c[h+12>>2];g[a+28>>2]=+g[l>>2]-+g[k>>2];i=d;return}function $o(a){a=a|0;return (c[a+52>>2]|0)+4|0}function ap(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;f=i;i=i+48|0;g=f;c[g>>2]=11520;c[g+4>>2]=b;b=g+8|0;c[b>>2]=c[d>>2];c[b+4>>2]=c[d+4>>2];c[b+8>>2]=c[d+8>>2];c[b+12>>2]=c[d+12>>2];b=g+24|0;c[b>>2]=c[e>>2];c[b+4>>2]=c[e+4>>2];c[b+8>>2]=c[e+8>>2];c[b+12>>2]=c[e+12>>2];b=c[a+52>>2]|0;tc[c[(c[b>>2]|0)+8>>2]&63](b,g,d,e);i=f;return}function bp(a,b,d){a=a|0;b=+b;d=d|0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;c[d+12>>2]=0;return}function cp(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0.0,q=0.0,r=0.0,s=0.0,t=0.0,u=0.0;e=i;i=i+176|0;f=e+160|0;h=e+136|0;j=e+32|0;k=e+16|0;l=e;c[f>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;c[f+12>>2]=0;c[h>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;c[h+12>>2]=0;c[h+16>>2]=0;c[j>>2]=11544;m=j+4|0;c[m>>2]=0;c[m+4>>2]=0;c[m+8>>2]=0;c[m+12>>2]=0;c[j+20>>2]=1065353216;n=j+24|0;c[n>>2]=c[f>>2];c[n+4>>2]=c[f+4>>2];c[n+8>>2]=c[f+8>>2];c[j+36>>2]=0;c[j+40>>2]=1065353216;f=j+44|0;c[f>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;c[f+12>>2]=0;c[j+60>>2]=1065353216;c[j+64>>2]=0;f=j+68|0;o=h+4|0;c[f>>2]=c[o>>2];c[f+4>>2]=c[o+4>>2];c[f+8>>2]=c[o+8>>2];c[f+12>>2]=c[o+12>>2];g[j+84>>2]=-999999984306749440.0;p=+g[d>>2];q=+g[d+4>>2];r=q*0.0;s=+g[d+8>>2];t=s*0.0;u=p*+g[n>>2]+q+t;q=p*+g[j+28>>2]+r+s;g[j+88>>2]=p+r+t;g[j+92>>2]=u;g[j+96>>2]=q;g[j+100>>2]=0.0;c[k>>2]=1566444395;c[k+4>>2]=1566444395;c[k+8>>2]=1566444395;g[k+12>>2]=0.0;n=c[(c[b>>2]|0)+64>>2]|0;g[l>>2]=-999999984306749440.0;g[l+4>>2]=-999999984306749440.0;g[l+8>>2]=-999999984306749440.0;g[l+12>>2]=0.0;tc[n&63](b,j,l,k);c[a>>2]=c[m>>2];c[a+4>>2]=c[m+4>>2];c[a+8>>2]=c[m+8>>2];c[a+12>>2]=c[m+12>>2];i=e;return}function dp(a){a=a|0;return 11560}function ep(a){a=a|0;xs(a);return}function fp(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0.0,h=0.0,i=0.0,j=0.0,k=0.0,l=0.0,m=0.0;e=a+84|0;d=a+4|0;f=+g[a+88>>2];h=+g[a+92>>2];i=+g[a+96>>2];j=f*+g[b>>2]+h*+g[b+4>>2]+i*+g[b+8>>2];k=+g[e>>2];if(j>k){g[e>>2]=j;c[d>>2]=c[b>>2];c[d+4>>2]=c[b+4>>2];c[d+8>>2]=c[b+8>>2];c[d+12>>2]=c[b+12>>2];l=j}else l=k;a=b+16|0;k=f*+g[a>>2]+h*+g[b+20>>2]+i*+g[b+24>>2];if(k>l){g[e>>2]=k;c[d>>2]=c[a>>2];c[d+4>>2]=c[a+4>>2];c[d+8>>2]=c[a+8>>2];c[d+12>>2]=c[a+12>>2];m=k}else m=l;a=b+32|0;l=f*+g[a>>2]+h*+g[b+36>>2]+i*+g[b+40>>2];if(!(l>m))return;g[e>>2]=l;c[d>>2]=c[a>>2];c[d+4>>2]=c[a+4>>2];c[d+8>>2]=c[a+8>>2];c[d+12>>2]=c[a+12>>2];return}function gp(a){a=a|0;xs(a);return}function hp(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,h=0.0,i=0.0,j=0,k=0.0,l=0.0,m=0,n=0;f=b+16|0;h=+g[b>>2];i=+g[f>>2];j=b+32|0;k=h<i?h:i;l=+g[j>>2];if((k<l?k:l)>+g[a+24>>2])return;m=h>i?b:f;if(+g[(+g[m>>2]>l?m:j)>>2]<+g[a+8>>2])return;j=b+8|0;m=b+24|0;l=+g[j>>2];i=+g[m>>2];f=b+40|0;h=l<i?l:i;k=+g[f>>2];if((h<k?h:k)>+g[a+32>>2])return;n=l>i?j:m;if(+g[(+g[n>>2]>k?n:f)>>2]<+g[a+16>>2])return;f=b+4|0;n=b+20|0;k=+g[f>>2];i=+g[n>>2];m=b+36|0;l=k<i?k:i;h=+g[m>>2];if((l<h?l:h)>+g[a+28>>2])return;j=k>i?f:n;if(+g[(+g[j>>2]>h?j:m)>>2]<+g[a+12>>2])return;m=c[a+4>>2]|0;tc[c[(c[m>>2]|0)+8>>2]&63](m,b,d,e);return}function ip(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0.0,t=0.0,u=0.0,v=0.0,w=0.0,x=0.0,y=0.0,z=0.0,A=0.0,B=0.0,C=0.0,D=0.0,E=0,F=0,G=0,H=0,I=0,J=0,K=0.0,L=0,M=0.0,N=0,O=0.0,P=0.0,Q=0.0,R=0.0,S=0.0,T=0.0,U=0.0,V=0,W=0.0,X=0,Y=0.0,Z=0,_=0.0,$=0.0,aa=0.0,ba=0.0,ca=0.0,da=0.0,ea=0.0,fa=0.0,ga=0,ha=0,ia=0,ja=0;h=i;i=i+288|0;j=h+200|0;k=h+64|0;l=h+48|0;m=h+32|0;n=h+16|0;o=h;p=b+16|0;if(!(c[p>>2]|0)){q=c[b+12>>2]|0;r=c[b+20>>2]|0;s=+g[d>>2];t=+g[d+4>>2];u=+g[d+8>>2];v=+g[d+16>>2];w=+g[d+20>>2];x=+g[d+24>>2];y=+g[d+32>>2];z=+g[d+36>>2];A=+g[d+40>>2];B=+g[d+48>>2];C=+g[d+52>>2];D=+g[d+56>>2];E=e+4|0;F=e+20|0;G=e+36|0;H=e+8|0;I=e+24|0;J=e+40|0;K=+g[e>>2];L=e+16|0;M=+g[L>>2];N=e+32|0;O=+g[N>>2];P=+g[E>>2];Q=+g[F>>2];R=+g[G>>2];S=+g[H>>2];T=+g[I>>2];U=+g[J>>2];V=e+48|0;W=-+g[V>>2];X=e+52|0;Y=-+g[X>>2];Z=e+56|0;_=-+g[Z>>2];$=s*K+v*M+y*O;aa=t*K+w*M+z*O;ba=u*K+x*M+A*O;ca=s*P+v*Q+y*R;da=t*P+w*Q+z*R;ea=u*P+x*Q+A*R;fa=s*S+v*T+y*U;y=t*S+w*T+z*U;z=u*S+x*T+A*U;ga=c[(c[q>>2]|0)+64>>2]|0;ha=r+52|0;A=-+g[ha>>2];ia=r+56|0;x=-+g[ia>>2];ja=r+60|0;u=-+g[ja>>2];g[m>>2]=$*A+ca*x+fa*u;g[m+4>>2]=aa*A+da*x+y*u;g[m+8>>2]=ba*A+ea*x+z*u;g[m+12>>2]=0.0;pc[ga&63](l,q,m);u=+g[l>>2];x=+g[l+4>>2];A=+g[l+8>>2];w=B*K+C*M+D*O+(K*W+M*Y+O*_)+($*u+aa*x+ba*A);ba=B*P+C*Q+D*R+(P*W+Q*Y+R*_)+(ca*u+da*x+ea*A);ea=B*S+C*T+D*U+(S*W+T*Y+U*_)+(fa*u+y*x+z*A);A=+g[ha>>2];z=+g[ia>>2];x=+g[ja>>2];y=x*ea+(A*w+z*ba)-+g[r+68>>2];u=w-A*y;A=ba-z*y;z=ea-x*y;x=+g[e>>2];ea=+g[E>>2];ba=+g[H>>2];w=+g[L>>2];fa=+g[F>>2];_=+g[I>>2];U=+g[N>>2];Y=+g[G>>2];T=+g[J>>2];W=w*u+A*fa+z*_+ +g[X>>2];S=u*U+A*Y+z*T+ +g[Z>>2];g[n>>2]=ba*z+(x*u+ea*A)+ +g[V>>2];g[n+4>>2]=W;g[n+8>>2]=S;g[n+12>>2]=0.0;S=+g[ha>>2];W=+g[ia>>2];A=+g[ja>>2];g[o>>2]=x*S+ea*W+ba*A;g[o+4>>2]=S*w+W*fa+A*_;g[o+8>>2]=S*U+W*Y+A*T;g[o+12>>2]=0.0;oc[c[(c[f>>2]|0)+16>>2]&7](f,o,n,y);i=h;return}else{n=b+4|0;o=c[n>>2]|0;a[o+312>>0]=0;c[o>>2]=0;a[o+356>>0]=1;c[o+292>>2]=1566444395;c[o+296>>2]=1566444395;c[o+300>>2]=1566444395;g[o+304>>2]=0.0;ja=o+336|0;ia=o+332|0;c[ja>>2]=0;c[ja+4>>2]=0;c[ja+8>>2]=0;c[ja+12>>2]=0;a[ja+16>>0]=0;a[ia>>0]=a[ia>>0]&-16;ia=c[b+12>>2]|0;ja=c[p>>2]|0;o=c[ia+4>>2]|0;ha=c[ja+4>>2]|0;y=+Zb[c[(c[ia>>2]|0)+48>>2]&7](ia);V=c[p>>2]|0;T=+Zb[c[(c[V>>2]|0)+48>>2]&7](V);V=c[n>>2]|0;n=c[b+8>>2]|0;c[j>>2]=12120;c[j+4>>2]=0;c[j+8>>2]=1065353216;c[j+12>>2]=0;g[j+16>>2]=0.0;c[j+20>>2]=n;c[j+24>>2]=V;c[j+28>>2]=ia;c[j+32>>2]=ja;c[j+36>>2]=o;c[j+40>>2]=ha;g[j+44>>2]=y;g[j+48>>2]=T;a[j+52>>0]=0;c[j+60>>2]=-1;c[j+72>>2]=1;c[j+76>>2]=1;g[k+128>>2]=999999984306749440.0;c[k>>2]=c[d>>2];c[k+4>>2]=c[d+4>>2];c[k+8>>2]=c[d+8>>2];c[k+12>>2]=c[d+12>>2];ha=k+16|0;o=d+16|0;c[ha>>2]=c[o>>2];c[ha+4>>2]=c[o+4>>2];c[ha+8>>2]=c[o+8>>2];c[ha+12>>2]=c[o+12>>2];o=k+32|0;ha=d+32|0;c[o>>2]=c[ha>>2];c[o+4>>2]=c[ha+4>>2];c[o+8>>2]=c[ha+8>>2];c[o+12>>2]=c[ha+12>>2];ha=k+48|0;o=d+48|0;c[ha>>2]=c[o>>2];c[ha+4>>2]=c[o+4>>2];c[ha+8>>2]=c[o+8>>2];c[ha+12>>2]=c[o+12>>2];o=k+64|0;c[o>>2]=c[e>>2];c[o+4>>2]=c[e+4>>2];c[o+8>>2]=c[e+8>>2];c[o+12>>2]=c[e+12>>2];o=k+80|0;ha=e+16|0;c[o>>2]=c[ha>>2];c[o+4>>2]=c[ha+4>>2];c[o+8>>2]=c[ha+8>>2];c[o+12>>2]=c[ha+12>>2];ha=k+96|0;o=e+32|0;c[ha>>2]=c[o>>2];c[ha+4>>2]=c[o+4>>2];c[ha+8>>2]=c[o+8>>2];c[ha+12>>2]=c[o+12>>2];o=k+112|0;ha=e+48|0;c[o>>2]=c[ha>>2];c[o+4>>2]=c[ha+4>>2];c[o+8>>2]=c[ha+8>>2];c[o+12>>2]=c[ha+12>>2];vp(j,k,f,0,0);i=h;return}}function jp(b,d,e,f,h,j){b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;j=j|0;var 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.0,x=0.0,y=0.0,z=0.0,A=0.0,B=0.0,C=0.0,D=0.0,E=0.0,F=0.0,G=0.0,H=0.0,I=0.0,J=0.0,K=0,L=0,M=0,N=0,O=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0.0,ka=0,la=0,ma=0.0,na=0,oa=0,pa=0.0,qa=0,ra=0,sa=0,ta=0.0;l=i;i=i+304|0;m=l+256|0;n=l+192|0;o=l+176|0;p=l+160|0;q=l+144|0;r=l+128|0;s=l+64|0;t=l+48|0;u=l;v=+g[e+48>>2]-+g[d+48>>2];w=+g[e+52>>2]-+g[d+52>>2];x=+g[e+56>>2]-+g[d+56>>2];Qf(d,e,m,n);y=+g[n>>2];z=+g[m>>2]*y;A=y*+g[m+4>>2];B=y*+g[m+8>>2];g[o>>2]=z;g[o+4>>2]=A;g[o+8>>2]=B;g[o+12>>2]=0.0;y=+g[h+48>>2]-+g[f+48>>2];C=+g[h+52>>2]-+g[f+52>>2];D=+g[h+56>>2]-+g[f+56>>2];Qf(f,h,m,n);E=+g[n>>2];F=+g[m>>2]*E;G=E*+g[m+4>>2];H=E*+g[m+8>>2];g[p>>2]=F;g[p+4>>2]=G;g[p+8>>2]=H;g[p+12>>2]=0.0;h=c[b+12>>2]|0;E=+Zb[c[(c[h>>2]|0)+16>>2]&7](h);h=c[b+16>>2]|0;if(!h)I=0.0;else I=+Zb[c[(c[h>>2]|0)+16>>2]&7](h);J=E*+P(+(z*z+A*A+B*B))+I*+P(+(F*F+G*G+H*H));H=y-v;G=C-w;F=D-x;if(J+ +P(+(H*H+G*G+F*F))==0.0){K=0;i=l;return K|0}c[m>>2]=11816;h=m+36|0;g[h>>2]=999999984306749440.0;e=m+40|0;a[e>>0]=0;ip(b,d,f,m);L=(a[e>>0]|0)==0;e=m+20|0;c[q>>2]=c[e>>2];c[q+4>>2]=c[e+4>>2];c[q+8>>2]=c[e+8>>2];c[q+12>>2]=c[e+12>>2];a:do if(!L?(e=j+172|0,M=c[m+4>>2]|0,N=c[m+8>>2]|0,O=c[m+12>>2]|0,I=H*(c[k>>2]=M,+g[k>>2]),B=I+G*(c[k>>2]=N,+g[k>>2]),!(J+(B+F*(c[k>>2]=O,+g[k>>2]))<=1.1920928955078125e-07)):0){B=+g[m+16>>2];I=+g[h>>2]+ +g[e>>2];Q=j+168|0;R=u+36|0;S=u+40|0;T=u+20|0;U=u+4|0;V=u+8|0;W=u+12|0;X=u+16|0;Y=n+48|0;Z=t+4|0;_=t+8|0;$=t+12|0;aa=r+4|0;ba=r+8|0;ca=r+12|0;b:do if(I>1.0000000474974513e-03){da=M;ea=N;fa=O;A=I;z=0.0;ga=0;while(1){ha=c[Q>>2]|0;if(ha){ia=c[(c[ha>>2]|0)+20>>2]|0;c[r>>2]=1065353216;c[aa>>2]=1065353216;c[ba>>2]=1065353216;g[ca>>2]=0.0;Pb[ia&7](ha,q,.20000000298023224,r);}E=H*(c[k>>2]=da,+g[k>>2]);ja=G*(c[k>>2]=ea,+g[k>>2])+E;E=J+(F*(c[k>>2]=fa,+g[k>>2])+ja);if(E<=1.1920928955078125e-07){ka=0;break a}ja=z+A/E;if(!(!(ja<=z)&(!(ja<0.0)&!(ja>1.0)))){ka=0;break a}Pf(d,v,w,x,o,ja,n);Pf(f,y,C,D,p,ja,s);ha=c[Q>>2]|0;if(ha){ia=c[(c[ha>>2]|0)+20>>2]|0;c[t>>2]=1065353216;c[Z>>2]=0;c[_>>2]=0;g[$>>2]=0.0;Pb[ia&7](ha,Y,.20000000298023224,t);}Jb[c[c[j>>2]>>2]&31](j,ja);c[u>>2]=11816;g[R>>2]=999999984306749440.0;a[S>>0]=0;ip(b,n,s,u);if(!(a[S>>0]|0)){la=15;break}E=+g[R>>2];ma=+g[e>>2];c[q>>2]=c[T>>2];c[q+4>>2]=c[T+4>>2];c[q+8>>2]=c[T+8>>2];c[q+12>>2]=c[T+12>>2];na=ga+1|0;if((ga|0)>63){la=16;break}ha=c[W>>2]|0;ia=c[V>>2]|0;oa=c[U>>2]|0;A=E+ma;if(!(A>1.0000000474974513e-03)){pa=+g[X>>2];qa=ha;ra=ia;sa=oa;ta=ja;break b}else{da=oa;ea=ia;fa=ha;z=ja;ga=na}}if((la|0)==15)pc[c[(c[j>>2]|0)+8>>2]&63](j,-1,ga);else if((la|0)==16)pc[c[(c[j>>2]|0)+8>>2]&63](j,-2,na);ka=0;break a}else{pa=B;qa=O;ra=N;sa=M;ta=0.0}while(0);g[j+164>>2]=ta;c[j+132>>2]=sa;c[j+136>>2]=ra;c[j+140>>2]=qa;g[j+144>>2]=pa;M=j+148|0;c[M>>2]=c[q>>2];c[M+4>>2]=c[q+4>>2];c[M+8>>2]=c[q+8>>2];c[M+12>>2]=c[q+12>>2];ka=1}else ka=0;while(0);K=ka;i=l;return K|0}function kp(a){a=a|0;xs(a);return}function lp(a){a=a|0;xs(a);return}function mp(a,b,c){a=a|0;b=b|0;c=c|0;return}function np(a,b,c){a=a|0;b=b|0;c=c|0;return}function op(b,d,e,f){b=b|0;d=d|0;e=e|0;f=+f;var h=0,i=0;h=b+36|0;if(!(+g[h>>2]>f))return;a[b+40>>0]=1;i=b+4|0;c[i>>2]=c[d>>2];c[i+4>>2]=c[d+4>>2];c[i+8>>2]=c[d+8>>2];c[i+12>>2]=c[d+12>>2];d=b+20|0;c[d>>2]=c[e>>2];c[d+4>>2]=c[e+4>>2];c[d+8>>2]=c[e+8>>2];c[d+12>>2]=c[e+12>>2];g[h>>2]=f;return}function pp(a){a=a|0;return}function qp(b,d,e,f,h,j){b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;j=j|0;var 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.0,C=0.0,D=0.0,E=0,F=0,G=0,H=0,I=0,J=0.0,K=0,L=0.0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0.0,X=0.0,Y=0,Z=0,_=0.0,$=0.0,aa=0.0,ba=0,ca=0,da=0,ea=0.0;l=i;i=i+288|0;m=l+264|0;n=l+216|0;o=l+136|0;p=l;q=b+4|0;r=c[q>>2]|0;a[r+312>>0]=0;c[r>>2]=0;a[r+356>>0]=1;c[r+292>>2]=1566444395;c[r+296>>2]=1566444395;c[r+300>>2]=1566444395;g[r+304>>2]=0.0;s=r+336|0;t=r+332|0;c[s>>2]=0;c[s+4>>2]=0;c[s+8>>2]=0;c[s+12>>2]=0;a[s+16>>0]=0;a[t>>0]=a[t>>0]&-16;t=d+48|0;s=e+48|0;r=e+52|0;u=d+52|0;v=e+56|0;e=d+56|0;w=f+48|0;x=h+48|0;y=h+52|0;z=f+52|0;A=h+56|0;h=f+56|0;B=+g[s>>2]-+g[t>>2]-(+g[x>>2]-+g[w>>2]);C=+g[r>>2]-+g[u>>2]-(+g[y>>2]-+g[z>>2]);D=+g[v>>2]-+g[e>>2]-(+g[A>>2]-+g[h>>2]);c[n>>2]=11816;E=n+36|0;g[E>>2]=999999984306749440.0;F=n+40|0;a[F>>0]=0;G=c[b+8>>2]|0;H=c[b+12>>2]|0;b=c[q>>2]|0;c[o>>2]=12120;c[o+4>>2]=0;c[o+8>>2]=1065353216;c[o+12>>2]=0;g[o+16>>2]=0.0;c[o+20>>2]=0;c[o+24>>2]=b;c[o+28>>2]=G;c[o+32>>2]=H;c[o+36>>2]=c[G+4>>2];c[o+40>>2]=c[H+4>>2];g[o+44>>2]=+Zb[c[(c[G>>2]|0)+48>>2]&7](G);g[o+48>>2]=+Zb[c[(c[H>>2]|0)+48>>2]&7](H);a[o+52>>0]=0;c[o+60>>2]=-1;c[o+72>>2]=1;c[o+76>>2]=1;g[p+128>>2]=999999984306749440.0;c[p>>2]=c[d>>2];c[p+4>>2]=c[d+4>>2];c[p+8>>2]=c[d+8>>2];c[p+12>>2]=c[d+12>>2];H=p+16|0;G=d+16|0;c[H>>2]=c[G>>2];c[H+4>>2]=c[G+4>>2];c[H+8>>2]=c[G+8>>2];c[H+12>>2]=c[G+12>>2];G=p+32|0;H=d+32|0;c[G>>2]=c[H>>2];c[G+4>>2]=c[H+4>>2];c[G+8>>2]=c[H+8>>2];c[G+12>>2]=c[H+12>>2];H=p+48|0;c[H>>2]=c[t>>2];c[H+4>>2]=c[t+4>>2];c[H+8>>2]=c[t+8>>2];c[H+12>>2]=c[t+12>>2];G=p+64|0;c[G>>2]=c[f>>2];c[G+4>>2]=c[f+4>>2];c[G+8>>2]=c[f+8>>2];c[G+12>>2]=c[f+12>>2];G=p+80|0;d=f+16|0;c[G>>2]=c[d>>2];c[G+4>>2]=c[d+4>>2];c[G+8>>2]=c[d+8>>2];c[G+12>>2]=c[d+12>>2];d=p+96|0;G=f+32|0;c[d>>2]=c[G>>2];c[d+4>>2]=c[G+4>>2];c[d+8>>2]=c[G+8>>2];c[d+12>>2]=c[G+12>>2];G=p+112|0;c[G>>2]=c[w>>2];c[G+4>>2]=c[w+4>>2];c[G+8>>2]=c[w+8>>2];c[G+12>>2]=c[w+12>>2];vp(o,p,n,0,0);d=(a[F>>0]|0)==0;f=n+20|0;c[m>>2]=c[f>>2];c[m+4>>2]=c[f+4>>2];c[m+8>>2]=c[f+8>>2];c[m+12>>2]=c[f+12>>2];if(d){I=0;i=l;return I|0}J=+g[E>>2];d=n+4|0;b=n+8|0;q=n+12|0;K=n+16|0;L=+g[K>>2];M=c[d>>2]|0;N=c[b>>2]|0;O=c[q>>2]|0;do if(J>1.0000000474974513e-03){P=p+52|0;Q=p+56|0;R=p+116|0;S=p+120|0;T=M;U=N;V=O;W=J;X=0.0;Y=0;while(1){if((Y|0)>31){I=0;Z=13;break}_=B*(c[k>>2]=T,+g[k>>2]);$=_+C*(c[k>>2]=U,+g[k>>2]);_=X;X=X-W/($+D*(c[k>>2]=V,+g[k>>2]));if(!(!(X<=_)&(!(X<0.0)&!(X>1.0)))){I=0;Z=13;break}Jb[c[c[j>>2]>>2]&31](j,X);_=1.0-X;g[H>>2]=_*+g[t>>2]+X*+g[s>>2];g[P>>2]=_*+g[u>>2]+X*+g[r>>2];g[Q>>2]=_*+g[e>>2]+X*+g[v>>2];g[G>>2]=_*+g[w>>2]+X*+g[x>>2];g[R>>2]=_*+g[z>>2]+X*+g[y>>2];g[S>>2]=_*+g[h>>2]+X*+g[A>>2];vp(o,p,n,0,0);if(!(a[F>>0]|0)){I=0;Z=13;break}W=+g[E>>2];if(W<0.0){Z=8;break};c[m>>2]=c[f>>2];c[m+4>>2]=c[f+4>>2];c[m+8>>2]=c[f+8>>2];c[m+12>>2]=c[f+12>>2];T=c[d>>2]|0;U=c[b>>2]|0;V=c[q>>2]|0;if(!(W>1.0000000474974513e-03)){Z=10;break}else Y=Y+1|0}if((Z|0)==8){g[j+164>>2]=X;Y=c[b>>2]|0;S=c[q>>2]|0;R=c[K>>2]|0;c[j+132>>2]=c[d>>2];c[j+136>>2]=Y;c[j+140>>2]=S;c[j+144>>2]=R;R=j+148|0;c[R>>2]=c[f>>2];c[R+4>>2]=c[f+4>>2];c[R+8>>2]=c[f+8>>2];c[R+12>>2]=c[f+12>>2];I=1;i=l;return I|0}else if((Z|0)==10){aa=+g[K>>2];ba=T;ca=U;da=V;ea=X;break}else if((Z|0)==13){i=l;return I|0}}else{aa=L;ba=M;ca=N;da=O;ea=0.0}while(0);L=B*(c[k>>2]=ba,+g[k>>2]);B=L+C*(c[k>>2]=ca,+g[k>>2]);if(B+D*(c[k>>2]=da,+g[k>>2])>=-+g[j+172>>2]){I=0;i=l;return I|0}g[j+164>>2]=ea;c[j+132>>2]=ba;c[j+136>>2]=ca;c[j+140>>2]=da;g[j+144>>2]=aa;da=j+148|0;c[da>>2]=c[m>>2];c[da+4>>2]=c[m+4>>2];c[da+8>>2]=c[m+8>>2];c[da+12>>2]=c[m+12>>2];I=1;i=l;return I|0}function rp(a){a=a|0;xs(a);return}function sp(b,e,f,h,j,l,m,n,o,p){b=b|0;e=e|0;f=f|0;h=h|0;j=j|0;l=l|0;m=m|0;n=n|0;o=o|0;p=p|0;var q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0.0,A=0,B=0,C=0.0,D=0,E=0,F=0,G=0.0,H=0,I=0.0,J=0,K=0.0,L=0,M=0.0,N=0,O=0.0,Q=0,R=0.0,S=0,T=0.0,U=0,V=0.0,W=0,X=0.0,Y=0,Z=0.0,_=0,$=0.0,aa=0,ba=0.0,ca=0,da=0.0,ea=0,fa=0.0,ga=0,ha=0.0,ia=0,ja=0.0,ka=0.0,la=0.0,ma=0.0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0,Fa=0,Ga=0,Ha=0,Ia=0,Ja=0,Ka=0,La=0,Ma=0,Na=0,Oa=0,Pa=0,Qa=0,Ra=0,Sa=0,Ta=0.0,Ua=0.0,Va=0.0,Wa=0.0,Xa=0,Ya=0,Za=0,_a=0.0,$a=0.0,ab=0.0,bb=0,cb=0,db=0.0,eb=0.0,fb=0.0,gb=0.0,hb=0.0,ib=0.0,jb=0.0,kb=0.0,lb=0.0,mb=0,nb=0.0,ob=0.0,pb=0.0,qb=0.0,rb=0.0,sb=0,tb=0.0,ub=0.0,vb=0.0,wb=0.0,xb=0.0,yb=0.0,zb=0,Ab=0;p=i;i=i+10240|0;e=p+10216|0;b=p+10088|0;q=p+9708|0;r=p+9328|0;s=p+32|0;t=p+16|0;u=p;v=l+48|0;w=j+48|0;x=l+52|0;y=j+52|0;z=+g[x>>2]-+g[y>>2];A=l+56|0;B=j+56|0;C=+g[A>>2]-+g[B>>2];g[u>>2]=+g[v>>2]-+g[w>>2];D=u+4|0;g[D>>2]=z;E=u+8|0;g[E>>2]=C;g[u+12>>2]=0.0;c[b>>2]=f;c[b+4>>2]=h;C=+g[l>>2];z=+g[j>>2];F=l+16|0;G=+g[F>>2];H=j+16|0;I=+g[H>>2];J=l+32|0;K=+g[J>>2];L=j+32|0;M=+g[L>>2];N=j+4|0;O=+g[N>>2];Q=j+20|0;R=+g[Q>>2];S=j+36|0;T=+g[S>>2];U=j+8|0;V=+g[U>>2];W=j+24|0;X=+g[W>>2];Y=j+40|0;Z=+g[Y>>2];_=l+4|0;$=+g[_>>2];aa=l+20|0;ba=+g[aa>>2];ca=l+36|0;da=+g[ca>>2];ea=l+8|0;fa=+g[ea>>2];ga=l+24|0;ha=+g[ga>>2];ia=l+40|0;ja=+g[ia>>2];g[b+8>>2]=C*z+G*I+K*M;g[b+12>>2]=C*O+G*R+K*T;g[b+16>>2]=C*V+G*X+K*Z;g[b+20>>2]=0.0;g[b+24>>2]=z*$+I*ba+M*da;g[b+28>>2]=O*$+R*ba+T*da;g[b+32>>2]=V*$+X*ba+Z*da;g[b+36>>2]=0.0;g[b+40>>2]=z*fa+I*ha+M*ja;g[b+44>>2]=O*fa+R*ha+T*ja;g[b+48>>2]=V*fa+X*ha+Z*ja;g[b+52>>2]=0.0;Z=+g[v>>2]-+g[w>>2];X=+g[x>>2]-+g[y>>2];V=+g[A>>2]-+g[B>>2];T=+g[j>>2];R=+g[l>>2];O=+g[H>>2];M=+g[F>>2];I=+g[L>>2];z=+g[J>>2];K=+g[N>>2];G=+g[Q>>2];C=+g[S>>2];ka=+g[U>>2];la=+g[W>>2];ma=+g[Y>>2];g[b+56>>2]=T*R+O*M+I*z;g[b+60>>2]=T*$+O*ba+I*da;g[b+64>>2]=T*fa+O*ha+I*ja;g[b+68>>2]=0.0;g[b+72>>2]=R*K+M*G+z*C;g[b+76>>2]=$*K+ba*G+da*C;g[b+80>>2]=fa*K+ha*G+ja*C;g[b+84>>2]=0.0;g[b+88>>2]=R*ka+M*la+z*ma;g[b+92>>2]=$*ka+ba*la+da*ma;g[b+96>>2]=fa*ka+ha*la+ja*ma;g[b+100>>2]=0.0;g[b+104>>2]=Z*T+X*O+V*I;g[b+108>>2]=Z*K+X*G+V*C;g[b+112>>2]=Z*ka+X*la+V*ma;g[b+116>>2]=0.0;na=b+120|0;c[na>>2]=53;oa=b+124|0;c[oa>>2]=0;pa=q+128|0;c[q+364>>2]=0;c[pa>>2]=0;c[pa+4>>2]=0;c[pa+8>>2]=0;c[pa+12>>2]=0;c[q+376>>2]=2;c[q+368>>2]=0;g[q+144>>2]=0.0;ma=+g[u>>2];V=+g[D>>2];la=+g[E>>2];g[r>>2]=-ma;g[r+4>>2]=-V;g[r+8>>2]=-la;g[r+12>>2]=0.0;a:do if((Br(q,b,r)|0)==1){E=s+9280|0;D=s+9288|0;pa=s+9292|0;c[E>>2]=0;c[E+4>>2]=0;c[E+8>>2]=0;c[E+12>>2]=0;c[s>>2]=9;qa=s+40|0;ra=s+9276|0;c[ra>>2]=0;c[qa>>2]=0;c[qa+4>>2]=0;c[qa+8>>2]=0;c[qa+12>>2]=0;c[qa+16>>2]=0;sa=0;do{ta=128-sa+-1|0;ua=s+2108+(ta*56|0)|0;c[s+2108+(ta*56|0)+44>>2]=0;va=c[D>>2]|0;c[s+2108+(ta*56|0)+48>>2]=va;if(va)c[va+44>>2]=ua;c[D>>2]=ua;c[pa>>2]=(c[pa>>2]|0)+1;sa=sa+1|0}while((sa|0)!=128);sa=c[q+372>>2]|0;do if((c[sa+32>>2]|0)>>>0>1?Cr(q)|0:0){ua=s+9280|0;va=c[ua>>2]|0;if(va){ta=s+9284|0;wa=va;va=c[ta>>2]|0;xa=c[pa>>2]|0;do{ya=wa+44|0;za=wa+48|0;Aa=c[za>>2]|0;if(Aa)c[Aa+44>>2]=c[ya>>2];Aa=c[ya>>2]|0;if(Aa)c[Aa+48>>2]=c[za>>2];if((c[ua>>2]|0)==(wa|0))c[ua>>2]=c[za>>2];va=va+-1|0;c[wa+44>>2]=0;c[za>>2]=c[D>>2];za=c[D>>2]|0;if(za)c[za+44>>2]=wa;c[D>>2]=wa;xa=xa+1|0;wa=c[ua>>2]|0}while((wa|0)!=0);c[ta>>2]=va;c[pa>>2]=xa}c[s>>2]=0;c[ra>>2]=0;wa=c[sa>>2]|0;za=sa+12|0;Aa=c[za>>2]|0;X=+g[Aa+16>>2];ka=+g[wa+16>>2]-X;Z=+g[Aa+20>>2];C=+g[wa+20>>2]-Z;G=+g[Aa+24>>2];K=+g[wa+24>>2]-G;Aa=sa+4|0;ya=c[Aa>>2]|0;I=+g[ya+16>>2]-X;O=+g[ya+20>>2]-Z;T=+g[ya+24>>2]-G;Ba=sa+8|0;Ca=c[Ba>>2]|0;ja=+g[Ca+16>>2]-X;X=+g[Ca+20>>2]-Z;Z=+g[Ca+24>>2]-G;if(ka*O*Z+(C*T*ja+K*I*X-ka*T*X-C*I*Z)-K*O*ja<0.0){c[sa>>2]=ya;c[Aa>>2]=wa;Da=sa+16|0;Ea=sa+20|0;Fa=c[Da>>2]|0;c[Da>>2]=c[Ea>>2];c[Ea>>2]=Fa;Ga=ya;Ha=wa}else{Ga=wa;Ha=ya}ya=Dr(s,Ga,Ha,Ca,1)|0;Ca=Dr(s,c[Aa>>2]|0,c[sa>>2]|0,c[za>>2]|0,1)|0;wa=Dr(s,c[Ba>>2]|0,c[Aa>>2]|0,c[za>>2]|0,1)|0;Aa=Dr(s,c[sa>>2]|0,c[Ba>>2]|0,c[za>>2]|0,1)|0;za=s+9284|0;if((c[za>>2]|0)==4){Ba=c[E>>2]|0;ja=+g[Ba+16>>2];Fa=c[Ba+48>>2]|0;if(!Fa)Ia=Ba;else{Ea=Fa;O=ja*ja;Fa=Ba;while(1){ja=+g[Ea+16>>2];K=ja*ja;Ba=K<O;Da=Ba?Ea:Fa;Ea=c[Ea+48>>2]|0;if(!Ea){Ia=Da;break}else{O=Ba?K:O;Fa=Da}}}O=+g[Ia>>2];K=+g[Ia+4>>2];ja=+g[Ia+8>>2];Z=+g[Ia+12>>2];Fa=c[Ia+16>>2]|0;Ea=c[Ia+20>>2]|0;xa=c[Ia+24>>2]|0;va=c[Ia+28>>2]|0;a[ya+52>>0]=0;c[ya+32>>2]=Ca;a[Ca+52>>0]=0;c[Ca+32>>2]=ya;a[ya+53>>0]=0;c[ya+36>>2]=wa;a[wa+52>>0]=1;c[wa+32>>2]=ya;a[ya+54>>0]=0;c[ya+40>>2]=Aa;a[Aa+52>>0]=2;c[Aa+32>>2]=ya;a[Ca+53>>0]=2;c[Ca+36>>2]=Aa;a[Aa+54>>0]=1;c[Aa+40>>2]=Ca;a[Ca+54>>0]=1;c[Ca+40>>2]=wa;a[wa+53>>0]=2;c[wa+36>>2]=Ca;a[wa+54>>0]=1;c[wa+40>>2]=Aa;a[Aa+53>>0]=2;c[Aa+36>>2]=wa;c[s>>2]=0;ta=e+4|0;Da=e+8|0;I=O;O=K;K=ja;ja=Z;Ba=Fa;Fa=Ea;Ea=xa;xa=va;va=Ia;Ja=0;while(1){Ka=c[ra>>2]|0;if(Ka>>>0>=64){La=45;break}c[e>>2]=0;c[ta>>2]=0;c[Da>>2]=0;c[ra>>2]=Ka+1;Ma=s+60+(Ka<<5)|0;Ja=Ja+1|0;a[va+55>>0]=Ja;Na=va+4|0;Oa=va+8|0;Er(q,+g[va>>2],+g[Na>>2],+g[Oa>>2],Ma);if(+g[va>>2]*+g[s+60+(Ka<<5)+16>>2]+ +g[Na>>2]*+g[s+60+(Ka<<5)+20>>2]+ +g[Oa>>2]*+g[s+60+(Ka<<5)+24>>2]-+g[va+16>>2]>9.999999747378752e-05)Pa=0;else{La=44;break}do{Qa=Fr(s,Ja,Ma,c[va+32+(Pa<<2)>>2]|0,d[va+52+Pa>>0]|0,e)|0;Pa=Pa+1|0}while(Qa&Pa>>>0<3);if(!(Qa&(c[Da>>2]|0)>>>0>2)){La=43;break}Ma=c[e>>2]|0;Ka=c[ta>>2]|0;a[Ma+53>>0]=2;c[Ma+36>>2]=Ka;a[Ka+54>>0]=1;c[Ka+40>>2]=Ma;Ma=va+44|0;Ka=va+48|0;Oa=c[Ka>>2]|0;if(Oa)c[Oa+44>>2]=c[Ma>>2];Oa=c[Ma>>2]|0;if(Oa)c[Oa+48>>2]=c[Ka>>2];if((c[ua>>2]|0)==(va|0))c[ua>>2]=c[Ka>>2];c[za>>2]=(c[za>>2]|0)+-1;c[va+44>>2]=0;c[Ka>>2]=c[D>>2];Ka=c[D>>2]|0;if(Ka)c[Ka+44>>2]=va;c[D>>2]=va;c[pa>>2]=(c[pa>>2]|0)+1;Ka=c[E>>2]|0;Z=+g[Ka+16>>2];Oa=c[Ka+48>>2]|0;if(!Oa)Ra=Ka;else{Ma=Oa;C=Z*Z;Oa=Ka;while(1){Z=+g[Ma+16>>2];X=Z*Z;Ka=X<C;Na=Ka?Ma:Oa;Ma=c[Ma+48>>2]|0;if(!Ma){Ra=Na;break}else{C=Ka?X:C;Oa=Na}}}C=+g[Ra>>2];X=+g[Ra+4>>2];Z=+g[Ra+8>>2];T=+g[Ra+12>>2];Oa=c[Ra+16>>2]|0;Ma=c[Ra+20>>2]|0;Na=c[Ra+24>>2]|0;Ka=c[Ra+28>>2]|0;if(Ja>>>0>=255){Sa=Oa;Ta=C;Ua=X;Va=Z;Wa=T;Xa=Ma;Ya=Na;Za=Ka;break}else{I=C;O=X;K=Z;ja=T;Ba=Oa;Fa=Ma;Ea=Na;xa=Ka;va=Ra}}if((La|0)==43){c[s>>2]=4;Sa=Ba;Ta=I;Ua=O;Va=K;Wa=ja;Xa=Fa;Ya=Ea;Za=xa}else if((La|0)==44){c[s>>2]=7;Sa=Ba;Ta=I;Ua=O;Va=K;Wa=ja;Xa=Fa;Ya=Ea;Za=xa}else if((La|0)==45){c[s>>2]=6;Sa=Ba;Ta=I;Ua=O;Va=K;Wa=ja;Xa=Fa;Ya=Ea;Za=xa}T=(c[k>>2]=Sa,+g[k>>2]);Z=T*Ta;X=T*Ua;C=T*Va;g[s+40>>2]=Ta;g[s+44>>2]=Ua;g[s+48>>2]=Va;g[s+52>>2]=Wa;c[s+56>>2]=Sa;va=s+36|0;c[va>>2]=3;c[s+4>>2]=Xa;c[s+8>>2]=Ya;c[s+12>>2]=Za;Ja=Ya;za=Ja+16|0;T=+g[za>>2]-Z;ua=Ja+20|0;ka=+g[ua>>2]-X;ta=Ja+24|0;G=+g[ta>>2]-C;Ja=Za;Da=Ja+16|0;ha=+g[Da>>2]-Z;wa=Ja+20|0;fa=+g[wa>>2]-X;Aa=Ja+24|0;da=+g[Aa>>2]-C;ba=ka*da-G*fa;$=G*ha-T*da;da=T*fa-ka*ha;ha=+P(+(da*da+(ba*ba+$*$)));Ja=s+20|0;g[Ja>>2]=ha;$=+g[Da>>2]-Z;ba=+g[wa>>2]-X;da=+g[Aa>>2]-C;Aa=Xa;wa=Aa+16|0;ka=+g[wa>>2]-Z;Da=Aa+20|0;fa=+g[Da>>2]-X;Ca=Aa+24|0;T=+g[Ca>>2]-C;G=ba*T-da*fa;z=da*ka-$*T;T=$*fa-ba*ka;ka=+P(+(T*T+(G*G+z*z)));Aa=s+24|0;g[Aa>>2]=ka;z=+g[wa>>2]-Z;G=+g[Da>>2]-X;T=+g[Ca>>2]-C;ba=+g[za>>2]-Z;Z=+g[ua>>2]-X;X=+g[ta>>2]-C;C=G*X-T*Z;fa=T*ba-z*X;X=z*Z-G*ba;ba=+P(+(X*X+(C*C+fa*fa)));fa=ba+(ha+ka);g[Ja>>2]=ha/fa;g[Aa>>2]=ka/fa;g[s+28>>2]=ba/fa;if((c[s>>2]|0)!=9)if(!(c[va>>2]|0)){_a=0.0;$a=0.0;ab=0.0;break}else{bb=va;La=52;break}else{cb=0;db=0.0;eb=0.0;fb=0.0;gb=0.0;hb=0.0;ib=0.0;jb=0.0;kb=0.0;lb=0.0;break a}}else La=46}else La=46;while(0);if((La|0)==46){c[s>>2]=8;E=s+40|0;g[E>>2]=ma;pa=s+44|0;g[pa>>2]=V;D=s+48|0;g[D>>2]=la;ra=s+52|0;g[ra>>2]=0.0;fa=+P(+(ma*ma+V*V+la*la));if(fa>0.0){ba=1.0/fa;g[E>>2]=ba*ma;g[pa>>2]=ba*V;g[D>>2]=ba*la}else{c[qa>>2]=1065353216;c[pa>>2]=0;c[D>>2]=0}g[ra>>2]=0.0;g[s+56>>2]=0.0;ra=s+36|0;c[ra>>2]=1;c[s+4>>2]=c[sa>>2];g[s+20>>2]=1.0;bb=ra;La=52}if((La|0)==52){ra=t+4|0;D=t+8|0;ba=0.0;fa=0.0;ka=0.0;pa=0;while(1){E=c[na>>2]|0;va=c[oa>>2]|0;Aa=(c[b>>2]|0)+(va>>1)|0;if(!(va&1))mb=E;else mb=c[(c[Aa>>2]|0)+E>>2]|0;pc[mb&63](t,Aa,c[s+4+(pa<<2)>>2]|0);ha=+g[s+20+(pa<<2)>>2];C=ba+ +g[t>>2]*ha;X=fa+ha*+g[ra>>2];G=ka+ha*+g[D>>2];pa=pa+1|0;if(pa>>>0>=(c[bb>>2]|0)>>>0){_a=G;$a=X;ab=C;break}else{ba=C;fa=X;ka=G}}}ka=+g[j>>2];fa=+g[N>>2];ba=+g[U>>2];G=+g[H>>2];X=+g[Q>>2];C=+g[W>>2];ha=+g[L>>2];Z=+g[S>>2];z=+g[Y>>2];T=+g[w>>2];$=+g[y>>2];da=+g[B>>2];M=+g[qa>>2];R=+g[s+56>>2];nb=+g[s+44>>2];ob=+g[s+48>>2];pb=ab-M*R;qb=$a-R*nb;rb=_a-R*ob;cb=1;db=pb*ka+qb*fa+rb*ba+T;eb=pb*G+qb*X+rb*C+$;fb=pb*ha+qb*Z+rb*z+da;gb=-M;hb=-nb;ib=-ob;jb=ab*ka+$a*fa+_a*ba+T;kb=ab*ha+$a*Z+_a*z+da;lb=ab*G+$a*X+_a*C+$}else{cb=0;db=0.0;eb=0.0;fb=0.0;gb=0.0;hb=0.0;ib=0.0;jb=0.0;kb=0.0;lb=0.0}while(0);if(cb){g[n>>2]=jb;g[n+4>>2]=lb;g[n+8>>2]=kb;g[n+12>>2]=0.0;g[o>>2]=db;g[o+4>>2]=eb;g[o+8>>2]=fb;g[o+12>>2]=0.0;g[m>>2]=gb;g[m+4>>2]=hb;g[m+8>>2]=ib;g[m+12>>2]=0.0;sb=1;i=p;return sb|0}c[q>>2]=f;f=q+4|0;c[f>>2]=h;ib=+g[l>>2];hb=+g[j>>2];gb=+g[F>>2];fb=+g[H>>2];eb=+g[J>>2];db=+g[L>>2];kb=ib*hb+gb*fb+eb*db;lb=+g[N>>2];jb=+g[Q>>2];_a=+g[S>>2];$a=ib*lb+gb*jb+eb*_a;ab=+g[U>>2];la=+g[W>>2];V=+g[Y>>2];ma=ib*ab+gb*la+eb*V;eb=+g[_>>2];gb=+g[aa>>2];ib=+g[ca>>2];Wa=hb*eb+fb*gb+db*ib;Va=lb*eb+jb*gb+_a*ib;Ua=ab*eb+la*gb+V*ib;ib=+g[ea>>2];gb=+g[ga>>2];eb=+g[ia>>2];Ta=hb*ib+fb*gb+db*eb;$=lb*ib+jb*gb+_a*eb;C=ab*ib+la*gb+V*eb;ia=q+8|0;g[ia>>2]=kb;ga=q+12|0;g[ga>>2]=$a;ea=q+16|0;g[ea>>2]=ma;g[q+20>>2]=0.0;ca=q+24|0;g[ca>>2]=Wa;aa=q+28|0;g[aa>>2]=Va;_=q+32|0;g[_>>2]=Ua;g[q+36>>2]=0.0;J=q+40|0;g[J>>2]=Ta;F=q+44|0;g[F>>2]=$;l=q+48|0;g[l>>2]=C;g[q+52>>2]=0.0;eb=+g[v>>2]-+g[w>>2];gb=+g[x>>2]-+g[y>>2];ib=+g[A>>2]-+g[B>>2];A=q+56|0;g[A>>2]=kb;x=q+60|0;g[x>>2]=Wa;v=q+64|0;g[v>>2]=Ta;g[q+68>>2]=0.0;h=q+72|0;g[h>>2]=$a;cb=q+76|0;g[cb>>2]=Va;bb=q+80|0;g[bb>>2]=$;g[q+84>>2]=0.0;t=q+88|0;g[t>>2]=ma;mb=q+92|0;g[mb>>2]=Ua;oa=q+96|0;g[oa>>2]=C;g[q+100>>2]=0.0;na=q+104|0;g[na>>2]=eb*hb+gb*fb+ib*db;La=q+108|0;g[La>>2]=eb*lb+gb*jb+ib*_a;Xa=q+112|0;g[Xa>>2]=eb*ab+gb*la+ib*V;g[q+116>>2]=0.0;Za=q+120|0;c[Za>>2]=54;Ya=q+124|0;c[Ya>>2]=0;Sa=r+128|0;c[r+364>>2]=0;c[Sa>>2]=0;c[Sa+4>>2]=0;c[Sa+8>>2]=0;c[Sa+12>>2]=0;c[r+376>>2]=2;c[r+368>>2]=0;g[r+144>>2]=0.0;if(Br(r,q,u)|0){sb=0;i=p;return sb|0}u=r+372|0;r=c[u>>2]|0;if(!(c[r+32>>2]|0)){tb=0.0;ub=0.0;vb=0.0;wb=0.0;xb=0.0;yb=0.0}else{Sa=s+4|0;Ra=s+8|0;Qa=b+4|0;Pa=b+8|0;Ia=b+12|0;Ha=e+4|0;Ga=e+8|0;V=0.0;ib=0.0;la=0.0;pa=r;gb=0.0;ab=0.0;eb=0.0;r=0;while(1){_a=+g[pa+16+(r<<2)>>2];D=c[Za>>2]|0;ra=c[Ya>>2]|0;sa=(c[q>>2]|0)+(ra>>1)|0;if(!(ra&1))zb=D;else zb=c[(c[sa>>2]|0)+D>>2]|0;pc[zb&63](s,sa,c[pa+(r<<2)>>2]|0);jb=gb+_a*+g[s>>2];lb=ab+_a*+g[Sa>>2];db=eb+_a*+g[Ra>>2];sa=c[(c[u>>2]|0)+(r<<2)>>2]|0;fb=-+g[sa>>2];hb=-+g[sa+4>>2];C=-+g[sa+8>>2];sa=c[Za>>2]|0;D=c[Ya>>2]|0;ra=(c[f>>2]|0)+(D>>1)|0;if(!(D&1))Ab=sa;else Ab=c[(c[ra>>2]|0)+sa>>2]|0;Ua=+g[ca>>2]*fb+ +g[aa>>2]*hb+ +g[_>>2]*C;ma=+g[J>>2]*fb+ +g[F>>2]*hb+ +g[l>>2]*C;g[b>>2]=+g[ia>>2]*fb+ +g[ga>>2]*hb+ +g[ea>>2]*C;g[Qa>>2]=Ua;g[Pa>>2]=ma;g[Ia>>2]=0.0;pc[Ab&63](e,ra,b);ma=+g[e>>2];Ua=+g[Ha>>2];C=+g[Ga>>2];hb=V+_a*(ma*+g[A>>2]+Ua*+g[x>>2]+C*+g[v>>2]+ +g[na>>2]);fb=ib+_a*(ma*+g[h>>2]+Ua*+g[cb>>2]+C*+g[bb>>2]+ +g[La>>2]);$=la+_a*(ma*+g[t>>2]+Ua*+g[mb>>2]+C*+g[oa>>2]+ +g[Xa>>2]);r=r+1|0;pa=c[u>>2]|0;if(r>>>0>=(c[pa+32>>2]|0)>>>0){tb=db;ub=lb;vb=jb;wb=$;xb=fb;yb=hb;break}else{V=hb;ib=fb;la=$;gb=jb;ab=lb;eb=db}}}eb=+g[j>>2];ab=+g[N>>2];gb=+g[U>>2];la=+g[H>>2];ib=+g[Q>>2];V=+g[W>>2];db=+g[L>>2];lb=+g[S>>2];jb=+g[Y>>2];$=+g[w>>2];fb=+g[y>>2];hb=+g[B>>2];C=vb-yb;Ua=ub-xb;ma=tb-wb;_a=+P(+(C*C+Ua*Ua+ma*ma));Va=_a>9.999999747378752e-05?1.0/_a:1.0;g[n>>2]=vb*eb+ub*ab+tb*gb+$;g[n+4>>2]=vb*la+ub*ib+tb*V+fb;g[n+8>>2]=vb*db+ub*lb+tb*jb+hb;g[n+12>>2]=0.0;g[o>>2]=yb*eb+xb*ab+wb*gb+$;g[o+4>>2]=yb*la+xb*ib+wb*V+fb;g[o+8>>2]=yb*db+xb*lb+wb*jb+hb;g[o+12>>2]=0.0;g[m>>2]=Va*C;g[m+4>>2]=Va*Ua;g[m+8>>2]=Va*ma;g[m+12>>2]=0.0;sb=0;i=p;return sb|0}function tp(a){a=a|0;return}function up(a){a=a|0;xs(a);return}function vp(b,d,e,f,h){b=b|0;d=d|0;e=e|0;f=f|0;h=h|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.0,C=0.0,D=0.0,E=0,F=0.0,G=0,H=0.0,I=0,J=0.0,K=0.0,L=0.0,M=0.0,N=0,O=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0,Fa=0,Ga=0,Ha=0,Ia=0,Ja=0,Ka=0,La=0,Ma=0,Na=0,Oa=0,Pa=0.0,Qa=0.0,Ra=0.0,Sa=0.0,Ta=0.0,Ua=0.0,Va=0.0,Wa=0.0,Xa=0.0,Ya=0.0,Za=0.0,_a=0,$a=0,ab=0,bb=0.0,cb=0,db=0,eb=0.0,fb=0.0,gb=0.0,hb=0,ib=0,jb=0,kb=0.0,lb=0.0,mb=0.0,nb=0.0,ob=0,pb=0.0,qb=0.0,rb=0.0,sb=0.0,tb=0.0,ub=0.0,vb=0.0,wb=0,xb=0.0,yb=0.0,zb=0.0,Ab=0.0,Bb=0.0,Cb=0.0,Db=0.0,Eb=0.0,Fb=0.0,Gb=0.0,Hb=0,Ib=0.0,Jb=0.0,Kb=0.0,Lb=0,Mb=0,Ob=0,Pb=0.0,Qb=0,Rb=0.0,Sb=0.0,Tb=0.0,Ub=0.0,Vb=0.0,Wb=0.0,Xb=0.0,Yb=0.0,Zb=0.0;h=i;i=i+256|0;j=h+240|0;k=h+176|0;l=h+112|0;m=h+96|0;n=h+80|0;o=h+64|0;p=h+48|0;q=h+32|0;r=h+16|0;s=h;t=b+56|0;g[t>>2]=0.0;u=j+4|0;v=j+8|0;w=j+12|0;c[j>>2]=0;c[j+4>>2]=0;c[j+8>>2]=0;c[j+12>>2]=0;c[k>>2]=c[d>>2];c[k+4>>2]=c[d+4>>2];c[k+8>>2]=c[d+8>>2];c[k+12>>2]=c[d+12>>2];x=k+16|0;y=d+16|0;c[x>>2]=c[y>>2];c[x+4>>2]=c[y+4>>2];c[x+8>>2]=c[y+8>>2];c[x+12>>2]=c[y+12>>2];y=k+32|0;x=d+32|0;c[y>>2]=c[x>>2];c[y+4>>2]=c[x+4>>2];c[y+8>>2]=c[x+8>>2];c[y+12>>2]=c[x+12>>2];x=k+48|0;y=d+48|0;c[x>>2]=c[y>>2];c[x+4>>2]=c[y+4>>2];c[x+8>>2]=c[y+8>>2];c[x+12>>2]=c[y+12>>2];y=d+64|0;c[l>>2]=c[y>>2];c[l+4>>2]=c[y+4>>2];c[l+8>>2]=c[y+8>>2];c[l+12>>2]=c[y+12>>2];z=l+16|0;A=d+80|0;c[z>>2]=c[A>>2];c[z+4>>2]=c[A+4>>2];c[z+8>>2]=c[A+8>>2];c[z+12>>2]=c[A+12>>2];A=l+32|0;z=d+96|0;c[A>>2]=c[z>>2];c[A+4>>2]=c[z+4>>2];c[A+8>>2]=c[z+8>>2];c[A+12>>2]=c[z+12>>2];z=l+48|0;A=d+112|0;c[z>>2]=c[A>>2];c[z+4>>2]=c[A+4>>2];c[z+8>>2]=c[A+8>>2];c[z+12>>2]=c[A+12>>2];B=+g[x>>2];C=+g[z>>2];A=k+52|0;D=+g[A>>2];E=l+52|0;F=+g[E>>2];G=k+56|0;H=+g[G>>2];I=l+56|0;J=+g[I>>2];K=(B+C)*.5;L=(D+F)*.5;M=(H+J)*.5;g[x>>2]=B-K;g[A>>2]=D-L;g[G>>2]=H-M;g[z>>2]=C-K;g[E>>2]=F-L;g[I>>2]=J-M;z=b+28|0;x=b+32|0;if(((c[(c[z>>2]|0)+4>>2]|0)+-17|0)>>>0<2)N=((c[(c[x>>2]|0)+4>>2]|0)+-17|0)>>>0<2;else N=0;J=+g[b+44>>2];F=+g[b+48>>2];c[3026]=(c[3026]|0)+1;O=(a[b+52>>0]|0)==0;Q=b+64|0;c[Q>>2]=0;R=b+4|0;c[R>>2]=0;S=b+8|0;c[S>>2]=1065353216;T=b+12|0;c[T>>2]=0;U=b+16|0;g[U>>2]=0.0;V=b+68|0;c[V>>2]=0;W=b+60|0;c[W>>2]=-1;C=O?F:0.0;F=(O?J:0.0)+C;O=b+24|0;X=c[O>>2]|0;a[X+312>>0]=0;c[X>>2]=0;a[X+356>>0]=1;c[X+292>>2]=1566444395;c[X+296>>2]=1566444395;c[X+300>>2]=1566444395;g[X+304>>2]=0.0;Y=X+336|0;Z=X+332|0;c[Y>>2]=0;c[Y+4>>2]=0;c[Y+8>>2]=0;c[Y+12>>2]=0;a[Y+16>>0]=0;a[Z>>0]=a[Z>>0]&-16;Z=d+16|0;Y=d+32|0;X=d+4|0;_=d+20|0;$=d+36|0;aa=d+8|0;ba=d+24|0;ca=d+40|0;da=m+4|0;ea=m+8|0;fa=m+12|0;ga=d+80|0;ha=d+96|0;ia=d+68|0;ja=d+84|0;ka=d+100|0;la=d+72|0;ma=d+88|0;na=d+104|0;oa=n+4|0;pa=n+8|0;qa=n+12|0;ra=o+4|0;sa=k+4|0;ta=o+8|0;ua=k+8|0;va=k+16|0;wa=k+20|0;xa=k+24|0;ya=k+32|0;za=k+36|0;Aa=k+40|0;Ba=k+48|0;Ca=p+4|0;Da=l+4|0;Ea=p+8|0;Fa=l+8|0;Ga=l+16|0;Ha=l+20|0;Ia=l+24|0;Ja=l+32|0;Ka=l+36|0;La=l+40|0;Ma=l+48|0;Na=d+128|0;Oa=b+4|0;J=+g[R>>2];H=+g[S>>2];D=+g[T>>2];a:do if(N){B=J;Pa=H;Qa=D;Ra=999999984306749440.0;while(1){Sa=-B;Ta=-Pa;Ua=-Qa;Va=+g[X>>2]*Sa+ +g[_>>2]*Ta+ +g[$>>2]*Ua;Wa=+g[aa>>2]*Sa+ +g[ba>>2]*Ta+ +g[ca>>2]*Ua;g[m>>2]=+g[d>>2]*Sa+ +g[Z>>2]*Ta+ +g[Y>>2]*Ua;g[da>>2]=Va;g[ea>>2]=Wa;g[fa>>2]=0.0;Wa=B*+g[ia>>2]+Pa*+g[ja>>2]+Qa*+g[ka>>2];Va=B*+g[la>>2]+Pa*+g[ma>>2]+Qa*+g[na>>2];g[n>>2]=+g[y>>2]*B+ +g[ga>>2]*Pa+ +g[ha>>2]*Qa;g[oa>>2]=Wa;g[pa>>2]=Va;g[qa>>2]=0.0;Jn(o,c[z>>2]|0,m);Jn(p,c[x>>2]|0,n);Va=+g[o>>2];Wa=+g[ra>>2];Ua=+g[ta>>2];Ta=Va*+g[k>>2]+Wa*+g[sa>>2]+Ua*+g[ua>>2]+ +g[Ba>>2];Sa=Va*+g[va>>2]+Wa*+g[wa>>2]+Ua*+g[xa>>2]+ +g[A>>2];Ua=+g[p>>2];Wa=+g[Ca>>2];Va=+g[Ea>>2];Xa=Ua*+g[l>>2]+Wa*+g[Da>>2]+Va*+g[Fa>>2]+ +g[Ma>>2];Ya=Ua*+g[Ga>>2]+Wa*+g[Ha>>2]+Va*+g[Ia>>2]+ +g[E>>2];Va=Ta-Xa;Wa=Sa-Ya;Ua=+g[R>>2]*Va+ +g[S>>2]*Wa+ +g[T>>2]*0.0;if(Ua>0.0?Ua*Ua>Ra*+g[Na>>2]:0){Za=Ra;_a=22;break a}$a=c[O>>2]|0;ab=c[$a>>2]|0;if((ab|0)>0){bb=+g[$a+308>>2];cb=0;db=0;while(1){eb=Va-+g[$a+4+(db<<4)>>2];fb=Wa-+g[$a+4+(db<<4)+4>>2];gb=0.0-+g[$a+4+(db<<4)+8>>2];hb=cb|eb*eb+fb*fb+gb*gb<=bb;db=db+1|0;if((db|0)==(ab|0)){ib=hb;break}else cb=hb}}else ib=0;cb=$a+304|0;if((+g[cb>>2]==0.0?+g[$a+300>>2]==0.0:0)?Wa==+g[$a+296>>2]:0)jb=Va==+g[$a+292>>2];else jb=0;if(ib|jb){kb=Ra;_a=31;break a}bb=Ra-Ua;if(bb<=Ra*9.999999974752427e-07){lb=bb;mb=Ra;_a=33;break a}g[$a+292>>2]=Va;g[$a+296>>2]=Wa;g[$a+300>>2]=0.0;g[cb>>2]=0.0;a[$a+356>>0]=1;g[$a+4+(ab<<4)>>2]=Va;g[$a+4+(ab<<4)+4>>2]=Wa;g[$a+4+(ab<<4)+8>>2]=0.0;g[$a+4+(ab<<4)+12>>2]=0.0;cb=c[$a>>2]|0;g[$a+84+(cb<<4)>>2]=Ta;g[$a+84+(cb<<4)+4>>2]=Sa;g[$a+84+(cb<<4)+8>>2]=0.0;g[$a+84+(cb<<4)+12>>2]=0.0;cb=c[$a>>2]|0;g[$a+164+(cb<<4)>>2]=Xa;g[$a+164+(cb<<4)+4>>2]=Ya;g[$a+164+(cb<<4)+8>>2]=0.0;g[$a+164+(cb<<4)+12>>2]=0.0;c[$a>>2]=(c[$a>>2]|0)+1;cb=c[O>>2]|0;db=Vp(cb)|0;B=+g[cb+276>>2];Pa=+g[cb+280>>2];Qa=+g[cb+284>>2];bb=+g[cb+288>>2];if(!db){nb=Ra;_a=35;break a}gb=Ra;Ra=B*B+Pa*Pa+Qa*Qa;if(Ra<9.999999974752427e-07){ob=Oa;pb=B;qb=Qa;rb=bb;sb=Pa;tb=gb;_a=37;break a}if(gb-Ra<=gb*1.1920928955078125e-07){ub=Ra;_a=39;break a}g[Oa>>2]=B;g[S>>2]=Pa;g[T>>2]=Qa;g[U>>2]=bb;db=c[Q>>2]|0;c[Q>>2]=db+1;if((db|0)>1e3){vb=0.0;wb=0;xb=0.0;yb=0.0;zb=0.0;break a}if((c[c[O>>2]>>2]|0)==4){_a=42;break}}}else{Qa=J;Pa=H;B=D;Ra=999999984306749440.0;while(1){bb=-Qa;gb=-Pa;fb=-B;eb=+g[X>>2]*bb+ +g[_>>2]*gb+ +g[$>>2]*fb;Ab=+g[aa>>2]*bb+ +g[ba>>2]*gb+ +g[ca>>2]*fb;g[m>>2]=+g[d>>2]*bb+ +g[Z>>2]*gb+ +g[Y>>2]*fb;g[da>>2]=eb;g[ea>>2]=Ab;g[fa>>2]=0.0;Ab=Qa*+g[ia>>2]+Pa*+g[ja>>2]+B*+g[ka>>2];eb=Qa*+g[la>>2]+Pa*+g[ma>>2]+B*+g[na>>2];g[n>>2]=+g[y>>2]*Qa+ +g[ga>>2]*Pa+ +g[ha>>2]*B;g[oa>>2]=Ab;g[pa>>2]=eb;g[qa>>2]=0.0;Jn(o,c[z>>2]|0,m);Jn(p,c[x>>2]|0,n);eb=+g[o>>2];Ab=+g[ra>>2];fb=+g[ta>>2];gb=eb*+g[k>>2]+Ab*+g[sa>>2]+fb*+g[ua>>2]+ +g[Ba>>2];bb=eb*+g[va>>2]+Ab*+g[wa>>2]+fb*+g[xa>>2]+ +g[A>>2];Bb=eb*+g[ya>>2]+Ab*+g[za>>2]+fb*+g[Aa>>2]+ +g[G>>2];fb=+g[p>>2];Ab=+g[Ca>>2];eb=+g[Ea>>2];Cb=fb*+g[l>>2]+Ab*+g[Da>>2]+eb*+g[Fa>>2]+ +g[Ma>>2];Db=fb*+g[Ga>>2]+Ab*+g[Ha>>2]+eb*+g[Ia>>2]+ +g[E>>2];Eb=fb*+g[Ja>>2]+Ab*+g[Ka>>2]+eb*+g[La>>2]+ +g[I>>2];eb=gb-Cb;Ab=bb-Db;fb=Bb-Eb;Fb=+g[R>>2]*eb+ +g[S>>2]*Ab+ +g[T>>2]*fb;if(Fb>0.0?Fb*Fb>Ra*+g[Na>>2]:0){Za=Ra;_a=22;break a}db=c[O>>2]|0;cb=c[db>>2]|0;if((cb|0)>0){Gb=+g[db+308>>2];hb=0;Hb=0;while(1){Ib=eb-+g[db+4+(Hb<<4)>>2];Jb=Ab-+g[db+4+(Hb<<4)+4>>2];Kb=fb-+g[db+4+(Hb<<4)+8>>2];Lb=hb|Ib*Ib+Jb*Jb+Kb*Kb<=Gb;Hb=Hb+1|0;if((Hb|0)==(cb|0)){Mb=Lb;break}else hb=Lb}}else Mb=0;hb=db+304|0;if((+g[hb>>2]==0.0?fb==+g[db+300>>2]:0)?Ab==+g[db+296>>2]:0)Ob=eb==+g[db+292>>2];else Ob=0;if(Mb|Ob){kb=Ra;_a=31;break a}Gb=Ra-Fb;if(Gb<=Ra*9.999999974752427e-07){lb=Gb;mb=Ra;_a=33;break a}g[db+292>>2]=eb;g[db+296>>2]=Ab;g[db+300>>2]=fb;g[hb>>2]=0.0;a[db+356>>0]=1;g[db+4+(cb<<4)>>2]=eb;g[db+4+(cb<<4)+4>>2]=Ab;g[db+4+(cb<<4)+8>>2]=fb;g[db+4+(cb<<4)+12>>2]=0.0;hb=c[db>>2]|0;g[db+84+(hb<<4)>>2]=gb;g[db+84+(hb<<4)+4>>2]=bb;g[db+84+(hb<<4)+8>>2]=Bb;g[db+84+(hb<<4)+12>>2]=0.0;hb=c[db>>2]|0;g[db+164+(hb<<4)>>2]=Cb;g[db+164+(hb<<4)+4>>2]=Db;g[db+164+(hb<<4)+8>>2]=Eb;g[db+164+(hb<<4)+12>>2]=0.0;c[db>>2]=(c[db>>2]|0)+1;hb=c[O>>2]|0;Hb=Vp(hb)|0;Qa=+g[hb+276>>2];Pa=+g[hb+280>>2];B=+g[hb+284>>2];Gb=+g[hb+288>>2];if(!Hb){nb=Ra;_a=35;break a}Ya=Ra;Ra=Qa*Qa+Pa*Pa+B*B;if(Ra<9.999999974752427e-07){ob=Oa;pb=Qa;qb=B;rb=Gb;sb=Pa;tb=Ya;_a=37;break a}if(Ya-Ra<=Ya*1.1920928955078125e-07){ub=Ra;_a=39;break a}g[Oa>>2]=Qa;g[S>>2]=Pa;g[T>>2]=B;g[U>>2]=Gb;Hb=c[Q>>2]|0;c[Q>>2]=Hb+1;if((Hb|0)>1e3){vb=0.0;wb=0;xb=0.0;yb=0.0;zb=0.0;break a}if((c[c[O>>2]>>2]|0)==4){_a=42;break}}}while(0);if((_a|0)==22){c[V>>2]=10;Pb=Za;_a=43}else if((_a|0)==31){c[V>>2]=1;Pb=kb;_a=43}else if((_a|0)==33){c[V>>2]=!(lb<=0.0)?11:2;Pb=mb;_a=43}else if((_a|0)==35){c[V>>2]=3;Pb=nb;_a=43}else if((_a|0)==37){g[ob>>2]=pb;g[S>>2]=sb;g[T>>2]=qb;g[U>>2]=rb;c[V>>2]=6;Pb=tb;_a=43}else if((_a|0)==39){c[V>>2]=12;Pb=ub;_a=43}else if((_a|0)==42){c[V>>2]=13;vb=0.0;wb=0;xb=0.0;yb=0.0;zb=0.0}do if((_a|0)==43){ob=c[O>>2]|0;Vp(ob)|0;ub=+g[ob+260>>2];tb=+g[ob+264>>2];rb=+g[ob+268>>2];c[j>>2]=c[R>>2];c[j+4>>2]=c[R+4>>2];c[j+8>>2]=c[R+8>>2];c[j+12>>2]=c[R+12>>2];qb=+g[R>>2];sb=+g[S>>2];pb=+g[T>>2];nb=qb*qb+sb*sb+pb*pb;if(nb<.0001)c[V>>2]=5;if(nb>1.4210854715202004e-14){mb=1.0/+P(+nb);g[j>>2]=mb*+g[j>>2];g[u>>2]=mb*+g[u>>2];g[v>>2]=mb*+g[v>>2];nb=C/+P(+Pb);c[W>>2]=1;vb=1.0/mb-F;wb=1;xb=nb*qb+ub;yb=nb*sb+tb;zb=nb*pb+rb;break}else{c[W>>2]=2;vb=0.0;wb=0;xb=ub;yb=tb;zb=rb;break}}while(0);if(((c[b+72>>2]|0)!=0?(c[b+20>>2]|0)!=0:0)?(c[V>>2]|0)!=0:0)Qb=F+vb<.01;else Qb=0;V=wb^1;do if(Qb|V?(ob=c[b+20>>2]|0,(ob|0)!=0):0){c[3024]=(c[3024]|0)+1;c[R>>2]=0;c[R+4>>2]=0;c[R+8>>2]=0;c[R+12>>2]=0;if(!(Nb[c[(c[ob>>2]|0)+8>>2]&1](ob,c[O>>2]|0,c[z>>2]|0,c[x>>2]|0,k,l,R,q,r,f)|0)){Pb=+g[R>>2];rb=+g[S>>2];tb=+g[T>>2];if(!(Pb*Pb+rb*rb+tb*tb>0.0)){_a=66;break}ub=+g[r>>2];pb=+g[q>>2]-ub;nb=+g[r+4>>2];sb=+g[q+4>>2]-nb;qb=+g[r+8>>2];mb=+g[q+8>>2]-qb;lb=+P(+(pb*pb+sb*sb+mb*mb))-F;if(lb<vb|V){c[j>>2]=c[R>>2];c[j+4>>2]=c[R+4>>2];c[j+8>>2]=c[R+8>>2];c[j+12>>2]=c[R+12>>2];mb=+g[j>>2];sb=+g[u>>2];pb=+g[v>>2];kb=1.0/+P(+(mb*mb+sb*sb+pb*pb));g[j>>2]=mb*kb;g[u>>2]=sb*kb;g[v>>2]=pb*kb;c[W>>2]=6;Rb=lb;Sb=C*Pb+ub;Tb=C*rb+nb;Ub=C*tb+qb;break}c[W>>2]=5;if(wb){Rb=vb;Sb=xb;Tb=yb;Ub=zb;break}i=h;return}qb=+g[r>>2];tb=+g[q>>2];nb=qb-tb;rb=+g[r+4>>2];ub=+g[q+4>>2];Pb=rb-ub;lb=+g[r+8>>2];kb=+g[q+8>>2];pb=lb-kb;sb=nb*nb+Pb*Pb+pb*pb;if(!(sb<=1.4210854715202004e-14)){Vb=pb;Wb=Pb;Xb=nb;Yb=0.0;Zb=sb}else{sb=+g[b+4>>2];nb=+g[S>>2];Pb=+g[T>>2];Vb=Pb;Wb=nb;Xb=sb;Yb=+g[U>>2];Zb=sb*sb+nb*nb+Pb*Pb}if(!(Zb>1.4210854715202004e-14)){c[W>>2]=9;if(wb){Rb=vb;Sb=xb;Tb=yb;Ub=zb;break}i=h;return}Pb=1.0/+P(+Zb);nb=tb-qb;tb=ub-rb;ub=kb-lb;kb=-+P(+(nb*nb+tb*tb+ub*ub));if(vb>kb|V){g[j>>2]=Xb*Pb;g[u>>2]=Wb*Pb;g[v>>2]=Vb*Pb;g[w>>2]=Yb;c[W>>2]=3;Rb=kb;Sb=qb;Tb=rb;Ub=lb;break}c[W>>2]=8;if(wb){Rb=vb;Sb=xb;Tb=yb;Ub=zb}else{i=h;return}}else _a=66;while(0);if((_a|0)==66)if(wb){Rb=vb;Sb=xb;Tb=yb;Ub=zb}else{i=h;return}if(!(Rb<0.0)?!(Rb*Rb<+g[Na>>2]):0){i=h;return};c[R>>2]=c[j>>2];c[R+4>>2]=c[j+4>>2];c[R+8>>2]=c[j+8>>2];c[R+12>>2]=c[j+12>>2];g[t>>2]=Rb;t=c[(c[e>>2]|0)+16>>2]|0;g[s>>2]=K+Sb;g[s+4>>2]=L+Tb;g[s+8>>2]=M+Ub;g[s+12>>2]=0.0;oc[t&7](e,j,s,Rb);i=h;return}function wp(a){a=a|0;xs(a);return}function xp(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0,i=0,j=0,l=0.0,m=0.0,n=0.0,o=0,p=0,q=0,r=0.0,s=0.0,t=0.0,u=0.0,v=0.0,w=0.0,x=0.0,y=0.0,z=0.0,A=0.0,B=0.0,C=0.0,D=0.0,E=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,P=0.0,Q=0.0,R=0.0,S=0.0,T=0.0,U=0.0,V=0,W=0,X=0.0,Y=0.0,Z=0,_=0.0,$=0.0,aa=0.0,ba=0,ca=0.0,da=0.0,ea=0.0,fa=0.0,ga=0.0,ha=0.0,ia=0.0,ja=0.0,ka=0.0,la=0.0,ma=0.0,na=0.0,oa=0.0,pa=0.0,qa=0.0,ra=0.0,sa=0.0,ta=0.0,ua=0.0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0.0;d=a+748|0;e=c[d>>2]|0;if((e|0)!=4){c[d>>2]=e+1;f=e;h=(f|0)<0;i=h?0:f;j=a+4+(i*184|0)|0;Gs(j|0,b|0,184)|0;return i|0}l=+g[b+80>>2];m=+g[a+84>>2];e=m<l;n=e?m:l;l=+g[a+268>>2];d=l<n;m=d?l:n;n=+g[a+452>>2];o=n<m;p=+g[a+636>>2]<(o?n:m);q=p?3:o?2:d?1:(e^1)<<31>>31;m=+g[b>>2];if(q){n=+g[a+188>>2];l=m-n;r=+g[b+4>>2];s=+g[a+192>>2];t=r-s;u=+g[b+8>>2];v=+g[a+196>>2];w=u-v;x=+g[a+556>>2];y=+g[a+372>>2];z=x-y;A=+g[a+560>>2];B=+g[a+376>>2];C=A-B;D=+g[a+564>>2];E=+g[a+380>>2];F=D-E;G=t*F-w*C;H=w*z-l*F;F=l*C-t*z;e=(g[k>>2]=F*F+(G*G+H*H),c[k>>2]|0);if((q|0)==1){I=r;J=+g[a+12>>2];K=u;L=n;M=x;N=s;P=A;Q=v;R=D;S=E;T=B;U=y;V=e;W=0;X=+g[a+4>>2];Y=+g[a+8>>2];Z=7}else{_=n;$=s;aa=v;ba=e;ca=r;da=u;ea=y;fa=x;ga=B;ha=A;ia=E;ja=D;Z=6}}else{_=+g[a+188>>2];$=+g[a+192>>2];aa=+g[a+196>>2];ba=0;ca=+g[b+4>>2];da=+g[b+8>>2];ea=+g[a+372>>2];fa=+g[a+556>>2];ga=+g[a+376>>2];ha=+g[a+560>>2];ia=+g[a+380>>2];ja=+g[a+564>>2];Z=6}if((Z|0)==6){D=+g[a+4>>2];E=m-D;A=+g[a+8>>2];B=ca-A;x=+g[a+12>>2];y=da-x;u=fa-ea;r=ha-ga;v=ja-ia;s=B*v-y*r;n=y*u-E*v;v=E*r-B*u;e=(g[k>>2]=v*v+(s*s+n*n),c[k>>2]|0);if((q|0)==2){ka=D;la=A;ma=ca;na=x;oa=da;pa=_;qa=ea;ra=$;sa=ga;ta=aa;ua=ia;va=ba;wa=e;xa=0;Z=8}else{I=ca;J=x;K=da;L=_;M=fa;N=$;P=ha;Q=aa;R=ja;S=ia;T=ga;U=ea;V=ba;W=e;X=D;Y=A;Z=7}}if((Z|0)==7){A=m-X;D=I-Y;ea=K-J;ga=M-L;M=P-N;P=R-Q;R=D*P-ea*M;ia=ea*ga-A*P;P=A*M-D*ga;e=(g[k>>2]=P*P+(R*R+ia*ia),c[k>>2]|0);if(p){ya=V;za=W;Aa=e;Ba=0.0}else{ka=X;la=Y;ma=I;na=J;oa=K;pa=L;qa=U;ra=N;sa=T;ta=Q;ua=S;va=V;wa=W;xa=e;Z=8}}if((Z|0)==8){S=m-ka;ka=ma-la;la=oa-na;na=qa-pa;pa=sa-ra;ra=ua-ta;ta=ka*ra-la*pa;ua=la*na-S*ra;ra=S*pa-ka*na;ya=va;za=wa;Aa=xa;Ba=ra*ra+(ta*ta+ua*ua);}ua=+O(+(c[k>>2]=ya,+g[k>>2]));ta=+O(+(c[k>>2]=za,+g[k>>2]));ra=+O(+(c[k>>2]=Aa,+g[k>>2]));na=+O(+Ba);Aa=ua>-999999984306749440.0;Ba=Aa?ua:-999999984306749440.0;za=ta>Ba;ua=za?ta:Ba;ya=ra>ua;f=na>(ya?ra:ua)?3:ya?2:za?1:(Aa^1)<<31>>31;h=(f|0)<0;i=h?0:f;j=a+4+(i*184|0)|0;Gs(j|0,b|0,184)|0;return i|0}function yp(b,d,e){b=b|0;d=d|0;e=e|0;var f=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.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,O=0,P=0,Q=0,R=0;f=b+748|0;h=c[f>>2]|0;if((h|0)<=0)return;i=d+4|0;j=d+8|0;k=d+16|0;l=d+20|0;m=d+24|0;n=d+32|0;o=d+36|0;p=d+40|0;q=d+48|0;r=d+52|0;s=d+56|0;t=e+4|0;u=e+8|0;v=e+16|0;w=e+20|0;x=e+24|0;y=e+32|0;z=e+36|0;A=e+40|0;B=e+48|0;C=e+52|0;D=e+56|0;E=h;do{h=E;E=E+-1|0;F=+g[b+4+(E*184|0)>>2];G=+g[b+4+(E*184|0)+4>>2];H=+g[b+4+(E*184|0)+8>>2];I=F*+g[d>>2]+G*+g[i>>2]+H*+g[j>>2]+ +g[q>>2];J=F*+g[k>>2]+G*+g[l>>2]+H*+g[m>>2]+ +g[r>>2];K=F*+g[n>>2]+G*+g[o>>2]+H*+g[p>>2]+ +g[s>>2];g[b+4+(E*184|0)+48>>2]=I;g[b+4+(E*184|0)+52>>2]=J;g[b+4+(E*184|0)+56>>2]=K;g[b+4+(E*184|0)+60>>2]=0.0;H=+g[b+4+(E*184|0)+16>>2];G=+g[b+4+(E*184|0)+20>>2];F=+g[b+4+(E*184|0)+24>>2];L=H*+g[e>>2]+G*+g[t>>2]+F*+g[u>>2]+ +g[B>>2];M=H*+g[v>>2]+G*+g[w>>2]+F*+g[x>>2]+ +g[C>>2];N=H*+g[y>>2]+G*+g[z>>2]+F*+g[A>>2]+ +g[D>>2];g[b+4+(E*184|0)+32>>2]=L;g[b+4+(E*184|0)+36>>2]=M;g[b+4+(E*184|0)+40>>2]=N;g[b+4+(E*184|0)+44>>2]=0.0;g[b+4+(E*184|0)+80>>2]=(I-L)*+g[b+4+(E*184|0)+64>>2]+(J-M)*+g[b+4+(E*184|0)+68>>2]+(K-N)*+g[b+4+(E*184|0)+72>>2];O=b+4+(E*184|0)+148|0;c[O>>2]=(c[O>>2]|0)+1}while((h|0)>1);E=c[f>>2]|0;if((E|0)<=0)return;D=b+752|0;A=E;z=E;while(1){E=z;z=z+-1|0;y=b+4+(z*184|0)|0;N=+g[b+4+(z*184|0)+80>>2];K=+g[D>>2];if(N<=K){M=+g[b+4+(z*184|0)+32>>2]-(+g[b+4+(z*184|0)+48>>2]-+g[b+4+(z*184|0)+64>>2]*N);J=+g[b+4+(z*184|0)+36>>2]-(+g[b+4+(z*184|0)+52>>2]-N*+g[b+4+(z*184|0)+68>>2]);L=+g[b+4+(z*184|0)+40>>2]-(+g[b+4+(z*184|0)+56>>2]-N*+g[b+4+(z*184|0)+72>>2]);if(M*M+J*J+L*L>K*K){C=A+-1|0;if((C|0)==(z|0))P=A;else{Gs(y|0,b+4+(C*184|0)|0,184)|0;c[b+4+(C*184|0)+112>>2]=0;g[b+4+(C*184|0)+120>>2]=0.0;a[b+4+(C*184|0)+116>>0]=0;g[b+4+(C*184|0)+124>>2]=0.0;g[b+4+(C*184|0)+128>>2]=0.0;c[b+4+(C*184|0)+148>>2]=0;P=c[f>>2]|0}C=P+-1|0;c[f>>2]=C;Q=C}else Q=A}else{C=A+-1|0;if((C|0)==(z|0))R=A;else{Gs(y|0,b+4+(C*184|0)|0,184)|0;c[b+4+(C*184|0)+112>>2]=0;g[b+4+(C*184|0)+120>>2]=0.0;a[b+4+(C*184|0)+116>>0]=0;g[b+4+(C*184|0)+124>>2]=0.0;g[b+4+(C*184|0)+128>>2]=0.0;c[b+4+(C*184|0)+148>>2]=0;R=c[f>>2]|0}C=R+-1|0;c[f>>2]=C;Q=C}if((E|0)<=1)break;else A=Q}return}function zp(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,h=0,j=0,k=0.0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0,r=0.0,s=0.0,t=0.0,u=0.0,v=0.0,w=0.0,x=0.0,y=0.0,z=0.0,A=0.0,B=0,C=0.0,D=0.0,E=0.0,F=0.0,G=0,H=0,I=0,J=0.0,K=0.0;f=i;i=i+32|0;h=f+16|0;j=f;k=+g[b+16>>2];l=+g[b>>2];m=k-l;n=+g[b+20>>2];o=+g[b+4>>2];p=n-o;q=+g[b+24>>2];r=+g[b+8>>2];s=q-r;t=+g[b+32>>2];u=t-l;v=+g[b+36>>2];w=v-o;x=+g[b+40>>2];y=x-r;z=p*y-s*w;A=s*u-m*y;y=m*w-p*u;g[h>>2]=z;b=h+4|0;g[b>>2]=A;B=h+8|0;g[B>>2]=y;g[h+12>>2]=0.0;u=l*z+o*A+r*y;p=+g[a+4>>2];w=+g[a+8>>2];m=+g[a+12>>2];s=z*p+A*w+y*m-u;C=+g[a+20>>2];D=+g[a+24>>2];E=+g[a+28>>2];F=z*C+A*D+y*E-u;if(s*F>=0.0){i=f;return}G=c[a+36>>2]|0;H=s<=0.0;if(H&(G&1|0)!=0){i=f;return}u=s/(s-F);I=a+40|0;if(!(u<+g[I>>2])){i=f;return}F=z*z+A*A+y*y;s=F*-9.999999747378752e-05;J=1.0-u;K=C*u+p*J;p=D*u+w*J;w=E*u+m*J;J=l-K;l=o-p;o=r-w;r=k-K;k=n-p;n=q-w;if(!(y*(J*k-l*r)+(z*(l*n-o*k)+A*(o*r-J*n))>=s)){i=f;return}q=t-K;K=v-p;p=x-w;if(!(y*(r*K-k*q)+(z*(k*p-n*K)+A*(n*q-r*p))>=s)){i=f;return}if(!(y*(l*q-J*K)+(z*(o*K-l*p)+A*(J*p-o*q))>=s)){i=f;return}s=1.0/+P(+F);F=z*s;g[h>>2]=F;z=A*s;g[b>>2]=z;A=y*s;g[B>>2]=A;B=c[(c[a>>2]|0)+12>>2]|0;if(H&(G&2|0)==0){g[j>>2]=-F;g[j+4>>2]=-z;g[j+8>>2]=-A;g[j+12>>2]=0.0;g[I>>2]=+lc[B&3](a,j,u,d,e);i=f;return}else{g[I>>2]=+lc[B&3](a,h,u,d,e);i=f;return}}function Ap(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0.0,t=0.0,u=0.0,v=0.0,w=0.0,x=0.0;h=i;i=i+688|0;j=h+568|0;k=h+208|0;l=h+200|0;m=h+176|0;n=h;o=d+16|0;p=d+32|0;c[j+8>>2]=0;c[j+12>>2]=-1;c[j+16>>2]=1065353216;c[j+20>>2]=1065353216;c[j+24>>2]=1065353216;g[j+28>>2]=0.0;q=j+56|0;c[q>>2]=0;c[j>>2]=12312;r=j+60|0;c[j+4>>2]=1;c[r>>2]=c[d>>2];c[r+4>>2]=c[d+4>>2];c[r+8>>2]=c[d+8>>2];c[r+12>>2]=c[d+12>>2];d=j+76|0;c[d>>2]=c[o>>2];c[d+4>>2]=c[o+4>>2];c[d+8>>2]=c[o+8>>2];c[d+12>>2]=c[o+12>>2];o=j+92|0;c[o>>2]=c[p>>2];c[o+4>>2]=c[p+4>>2];c[o+8>>2]=c[p+8>>2];c[o+12>>2]=c[p+12>>2];c[j+48>>2]=c[b+204>>2];g[k+308>>2]=9.999999747378752e-05;a[k+332>>0]=0;c[l>>2]=11976;p=c[b+4>>2]|0;c[m>>2]=11744;c[m+4>>2]=k;c[m+8>>2]=l;c[m+12>>2]=p;c[m+16>>2]=j;c[m+20>>2]=0;c[n>>2]=5104;p=n+164|0;c[n+168>>2]=0;g[p>>2]=1.0;c[n+172>>2]=c[b+208>>2];l=b+136|0;if((jp(m,b+8|0,b+72|0,l,l,n)|0?(l=n+132|0,s=+g[l>>2],m=n+136|0,t=+g[m>>2],k=n+140|0,u=+g[k>>2],v=s*s+t*t+u*u,v>9.999999747378752e-05):0)?(w=+g[p>>2],w<+g[b+200>>2]):0){x=1.0/+P(+v);g[l>>2]=s*x;g[m>>2]=t*x;g[k>>2]=u*x;+$b[c[(c[b>>2]|0)+12>>2]&3](b,l,n+148|0,w,e,f);}c[j>>2]=10864;j=c[q>>2]|0;if(!j){i=h;return}Kb[c[c[j>>2]>>2]&255](j);j=c[q>>2]|0;if(!j){i=h;return}c[3710]=(c[3710]|0)+1;xs(c[j+-4>>2]|0);i=h;return}function Bp(a){a=a|0;xs(a);return}function Cp(a){a=a|0;var b=0,d=0;c[a>>2]=10864;b=a+56|0;d=c[b>>2]|0;if((d|0)!=0?(Kb[c[c[d>>2]>>2]&255](d),d=c[b>>2]|0,(d|0)!=0):0){c[3710]=(c[3710]|0)+1;xs(c[d+-4>>2]|0);}c[3710]=(c[3710]|0)+1;xs(c[a+-4>>2]|0);return}function Dp(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;tc[c[(c[a>>2]|0)+80>>2]&63](a,b,d,e);return}function Ep(a,b,d){a=a|0;b=+b;d=d|0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;c[d+12>>2]=0;return}function Fp(a){a=a|0;return 12456}function Gp(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,f=0.0,h=0.0,i=0.0,j=0.0,k=0.0;e=+g[d>>2];f=+g[d+4>>2];h=+g[d+8>>2];i=e*+g[b+60>>2]+f*+g[b+64>>2]+h*+g[b+68>>2];j=e*+g[b+76>>2]+f*+g[b+80>>2]+h*+g[b+84>>2];k=e*+g[b+92>>2]+f*+g[b+96>>2]+h*+g[b+100>>2];d=b+60+((i<j?(j<k?2:1):i<k?2:0)<<4)|0;c[a>>2]=c[d>>2];c[a+4>>2]=c[d+4>>2];c[a+8>>2]=c[d+8>>2];c[a+12>>2]=c[d+12>>2];return}function Hp(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0.0,r=0.0,s=0.0,t=0.0,u=0.0,v=0.0,w=0,x=0;if((e|0)<=0)return;f=a+60|0;h=a+64|0;i=a+68|0;j=a+76|0;k=a+80|0;l=a+84|0;m=a+92|0;n=a+96|0;o=a+100|0;p=0;do{q=+g[b+(p<<4)>>2];r=+g[b+(p<<4)+4>>2];s=+g[b+(p<<4)+8>>2];t=q*+g[f>>2]+r*+g[h>>2]+s*+g[i>>2];u=q*+g[j>>2]+r*+g[k>>2]+s*+g[l>>2];v=q*+g[m>>2]+r*+g[n>>2]+s*+g[o>>2];w=d+(p<<4)|0;x=a+60+((t<u?(u<v?2:1):t<v?2:0)<<4)|0;c[w>>2]=c[x>>2];c[w+4>>2]=c[x+4>>2];c[w+8>>2]=c[x+8>>2];c[w+12>>2]=c[x+12>>2];p=p+1|0}while((p|0)!=(e|0));return}function Ip(a){a=a|0;return 2}function Jp(a,b,c){a=a|0;b=b|0;c=c|0;var d=0.0,e=0.0,f=0.0,h=0.0,i=0.0,j=0.0,k=0.0,l=0.0,m=0;d=+g[a+60>>2];e=+g[a+76>>2]-d;f=+g[a+64>>2];h=+g[a+80>>2]-f;i=+g[a+68>>2];j=+g[a+84>>2]-i;k=+g[a+92>>2]-d;d=+g[a+96>>2]-f;f=+g[a+100>>2]-i;i=h*f-j*d;l=j*k-e*f;f=e*d-h*k;a=c+4|0;m=c+8|0;g[c+12>>2]=0.0;k=1.0/+P(+(f*f+(i*i+l*l)));h=k*i;g[c>>2]=h;i=k*l;g[a>>2]=i;l=f*k;g[m>>2]=l;if(!b)return;g[c>>2]=-h;g[a>>2]=-i;g[m>>2]=-l;return}function Kp(a){a=a|0;return 3}function Lp(a){a=a|0;return 3}function Mp(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;pc[c[(c[a>>2]|0)+108>>2]&63](a,b,d);pc[c[(c[a>>2]|0)+108>>2]&63](a,(b+1|0)%3|0,e);return}function Np(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=a+60+(b<<4)|0;c[d>>2]=c[e>>2];c[d+4>>2]=c[e+4>>2];c[d+8>>2]=c[e+8>>2];c[d+12>>2]=c[e+12>>2];return}function Op(a){a=a|0;return 1}function Pp(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;tc[c[(c[a>>2]|0)+124>>2]&63](a,e,b,d);return}function Qp(a,b,d){a=a|0;b=b|0;d=+d;var e=0,f=0,h=0,j=0.0,k=0.0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0,r=0.0,s=0.0,t=0.0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0;e=i;i=i+32|0;f=e+16|0;h=e;j=+g[a+60>>2];k=+g[a+76>>2]-j;l=+g[a+64>>2];m=+g[a+80>>2]-l;n=+g[a+68>>2];o=+g[a+84>>2]-n;p=+g[a+92>>2]-j;q=+g[a+96>>2]-l;r=+g[a+100>>2]-n;s=m*r-o*q;t=o*p-k*r;r=k*q-m*p;p=1.0/+P(+(r*r+(s*s+t*t)));m=p*s;s=p*t;t=r*p;u=b+4|0;v=b+8|0;p=+g[b>>2]*m+ +g[u>>2]*s+t*+g[v>>2]-(m*j+s*l+t*n);n=-d;if(!(p>=n)|!(p<=d)){w=0;i=e;return w|0}x=h+4|0;y=f+4|0;z=h+8|0;A=f+8|0;B=0;while(1){tc[c[(c[a>>2]|0)+104>>2]&63](a,B,f,h);d=+g[f>>2];p=+g[h>>2]-d;l=+g[y>>2];j=+g[x>>2]-l;r=+g[A>>2];q=+g[z>>2]-r;k=t*j-s*q;o=m*q-t*p;q=s*p-m*j;j=1.0/+P(+(q*q+(k*k+o*o)));p=j*k;k=j*o;o=q*j;B=B+1|0;if(+g[b>>2]*p+ +g[u>>2]*k+o*+g[v>>2]-(r*o+(d*p+l*k))<n){w=0;C=5;break}if((B|0)>=3){w=1;C=5;break}}if((C|0)==5){i=e;return w|0}return 0}function Rp(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0.0,h=0.0,i=0.0,j=0.0,k=0.0,l=0.0,m=0.0,n=0.0;f=+g[a+60>>2];h=+g[a+76>>2]-f;i=+g[a+64>>2];j=+g[a+80>>2]-i;k=+g[a+68>>2];l=+g[a+84>>2]-k;m=+g[a+92>>2]-f;f=+g[a+96>>2]-i;i=+g[a+100>>2]-k;k=j*i-l*f;n=l*m-h*i;i=h*f-j*m;g[d+12>>2]=0.0;m=1.0/+P(+(i*i+(k*k+n*n)));g[d>>2]=m*k;g[d+4>>2]=m*n;g[d+8>>2]=i*m;d=a+60|0;c[e>>2]=c[d>>2];c[e+4>>2]=c[d+4>>2];c[e+8>>2]=c[d+8>>2];c[e+12>>2]=c[d+12>>2];return}function Sp(b,d,e,f,h,j){b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;j=j|0;var 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.0,z=0,A=0.0,B=0,C=0.0,D=0,E=0,F=0.0,G=0,H=0,I=0.0,J=0,K=0.0,L=0.0,M=0,N=0.0,O=0,Q=0.0,R=0,S=0.0,T=0,U=0.0,V=0,W=0.0,X=0,Y=0.0,Z=0,_=0.0,$=0,aa=0.0,ba=0.0,ca=0,da=0.0,ea=0,fa=0.0,ga=0,ha=0.0,ia=0,ja=0.0,ka=0,la=0.0,ma=0,na=0.0,oa=0,pa=0.0,qa=0,ra=0.0,sa=0.0,ta=0.0,ua=0.0,va=0,wa=0,xa=0,ya=0.0,za=0.0,Aa=0.0,Ba=0.0,Ca=0.0,Da=0.0,Ea=0.0,Fa=0.0,Ga=0.0,Ha=0.0,Ia=0.0,Ja=0.0,Ka=0.0,La=0,Ma=0,Na=0,Oa=0,Pa=0.0,Qa=0.0,Ra=0.0,Sa=0.0,Ta=0.0,Ua=0.0,Va=0.0,Wa=0.0,Xa=0.0,Ya=0.0,Za=0.0,_a=0,$a=0,ab=0.0,bb=0.0,cb=0.0,db=0.0,eb=0.0,fb=0.0,gb=0.0,hb=0.0,ib=0,jb=0,kb=0,lb=0,mb=0.0,nb=0.0,ob=0,pb=0,qb=0,rb=0.0,sb=0.0,tb=0.0;l=i;i=i+128|0;m=l+112|0;n=l+96|0;o=l+80|0;p=l+64|0;q=l+48|0;r=l+32|0;s=l+16|0;t=l;u=b+4|0;v=c[u>>2]|0;a[v+312>>0]=0;c[v>>2]=0;a[v+356>>0]=1;c[v+292>>2]=1566444395;c[v+296>>2]=1566444395;c[v+300>>2]=1566444395;g[v+304>>2]=0.0;w=v+336|0;x=v+332|0;c[w>>2]=0;c[w+4>>2]=0;c[w+8>>2]=0;c[w+12>>2]=0;a[w+16>>0]=0;a[x>>0]=a[x>>0]&-16;x=e+48|0;w=d+48|0;y=+g[w>>2];v=e+52|0;z=d+52|0;A=+g[z>>2];B=e+56|0;e=d+56|0;C=+g[e>>2];D=h+48|0;E=f+48|0;F=+g[E>>2];G=h+52|0;H=f+52|0;I=+g[H>>2];J=h+56|0;h=f+56|0;K=+g[h>>2];L=+g[d>>2];M=d+4|0;N=+g[M>>2];O=d+8|0;Q=+g[O>>2];R=d+16|0;S=+g[R>>2];T=d+20|0;U=+g[T>>2];V=d+24|0;W=+g[V>>2];X=d+32|0;Y=+g[X>>2];Z=d+36|0;_=+g[Z>>2];$=d+40|0;aa=+g[$>>2];ba=+g[f>>2];ca=f+4|0;da=+g[ca>>2];ea=f+8|0;fa=+g[ea>>2];ga=f+16|0;ha=+g[ga>>2];ia=f+20|0;ja=+g[ia>>2];ka=f+24|0;la=+g[ka>>2];ma=f+32|0;na=+g[ma>>2];oa=f+36|0;pa=+g[oa>>2];qa=f+40|0;ra=+g[qa>>2];sa=+g[x>>2]-y-(+g[D>>2]-F);ta=+g[v>>2]-A-(+g[G>>2]-I);ua=+g[B>>2]-C-(+g[J>>2]-K);va=b+8|0;wa=c[va>>2]|0;xa=c[(c[wa>>2]|0)+64>>2]|0;ya=-sa;za=-ta;Aa=-ua;g[n>>2]=L*ya+S*za+Y*Aa;g[n+4>>2]=N*ya+U*za+_*Aa;g[n+8>>2]=Q*ya+W*za+aa*Aa;g[n+12>>2]=0.0;pc[xa&63](m,wa,n);Aa=+g[m>>2];za=+g[m+4>>2];ya=+g[m+8>>2];Ba=Aa*+g[d>>2]+za*+g[M>>2]+ya*+g[O>>2]+ +g[w>>2];Ca=Aa*+g[R>>2]+za*+g[T>>2]+ya*+g[V>>2]+ +g[z>>2];Da=Aa*+g[X>>2]+za*+g[Z>>2]+ya*+g[$>>2]+ +g[e>>2];$=b+12|0;b=c[$>>2]|0;Z=c[(c[b>>2]|0)+64>>2]|0;ya=sa*+g[ca>>2]+ta*+g[ia>>2]+ua*+g[oa>>2];za=sa*+g[ea>>2]+ta*+g[ka>>2]+ua*+g[qa>>2];g[p>>2]=sa*+g[f>>2]+ta*+g[ga>>2]+ua*+g[ma>>2];g[p+4>>2]=ya;g[p+8>>2]=za;g[p+12>>2]=0.0;pc[Z&63](o,b,p);za=+g[o>>2];ya=+g[o+4>>2];Aa=+g[o+8>>2];Ea=Ba-(za*+g[f>>2]+ya*+g[ca>>2]+Aa*+g[ea>>2]+ +g[E>>2]);Ba=Ca-(za*+g[ga>>2]+ya*+g[ia>>2]+Aa*+g[ka>>2]+ +g[H>>2]);Ca=Da-(za*+g[ma>>2]+ya*+g[oa>>2]+Aa*+g[qa>>2]+ +g[h>>2]);a:do if(Ea*Ea+Ba*Ba+Ca*Ca>9.999999747378752e-05){qa=r+4|0;oa=r+8|0;ma=r+12|0;ka=q+4|0;ia=q+8|0;ga=t+4|0;ea=t+8|0;ca=t+12|0;f=s+4|0;o=s+8|0;Aa=y;ya=A;za=C;Da=F;Fa=I;Ga=K;p=0;b=0;Z=0;X=0;Ha=0.0;V=32;Ia=Ea;Ja=Ca;T=0;Ka=Ba;while(1){if(!V){La=X;Ma=Z;Na=b;Oa=p;Pa=Ha;break a}V=V+-1|0;R=c[va>>2]|0;O=c[(c[R>>2]|0)+64>>2]|0;Qa=-Ia;Ra=-Ka;Sa=-Ja;g[r>>2]=L*Qa+S*Ra+Y*Sa;g[qa>>2]=N*Qa+U*Ra+_*Sa;g[oa>>2]=Q*Qa+W*Ra+aa*Sa;g[ma>>2]=0.0;pc[O&63](q,R,r);Sa=+g[q>>2];Ra=+g[ka>>2];Qa=+g[ia>>2];Ta=Aa+(L*Sa+N*Ra+Q*Qa);Ua=ya+(S*Sa+U*Ra+W*Qa);Va=za+(Y*Sa+_*Ra+aa*Qa);R=c[$>>2]|0;O=c[(c[R>>2]|0)+64>>2]|0;g[t>>2]=ba*Ia+ha*Ka+na*Ja;g[ga>>2]=da*Ia+ja*Ka+pa*Ja;g[ea>>2]=fa*Ia+la*Ka+ra*Ja;g[ca>>2]=0.0;pc[O&63](s,R,t);Qa=+g[s>>2];Ra=+g[f>>2];Sa=+g[o>>2];Wa=Da+(ba*Qa+da*Ra+fa*Sa);Xa=Fa+(ha*Qa+ja*Ra+la*Sa);Ya=Ga+(na*Qa+pa*Ra+ra*Sa);Sa=Ta-Wa;Ra=Ua-Xa;Qa=Va-Ya;Za=Ia*Sa+Ka*Ra+Ja*Qa;R=(g[k>>2]=Ia,c[k>>2]|0);O=(g[k>>2]=Ka,c[k>>2]|0);M=(g[k>>2]=Ja,c[k>>2]|0);if(Ha>1.0){_a=0;$a=24;break}if(Za>0.0){ab=sa*Ia+ta*Ka+ua*Ja;if(ab>=-1.4210854715202004e-14){_a=0;$a=24;break}bb=Ha-Za/ab;ab=1.0-bb;cb=ab*+g[e>>2]+bb*+g[B>>2];db=ab*+g[z>>2]+bb*+g[v>>2];eb=+g[w>>2]*ab+bb*+g[x>>2];fb=ab*+g[h>>2]+bb*+g[J>>2];gb=ab*+g[H>>2]+bb*+g[G>>2];hb=ab*+g[E>>2]+bb*+g[D>>2];ib=T;jb=M;kb=O;lb=R;mb=bb}else{cb=za;db=ya;eb=Aa;fb=Ga;gb=Fa;hb=Da;ib=X;jb=Z;kb=b;lb=p;mb=Ha}R=c[u>>2]|0;O=c[R>>2]|0;if((O|0)>0){bb=+g[R+308>>2];M=0;d=0;while(1){ab=Sa-+g[R+4+(d<<4)>>2];Za=Ra-+g[R+4+(d<<4)+4>>2];nb=Qa-+g[R+4+(d<<4)+8>>2];m=M|ab*ab+Za*Za+nb*nb<=bb;d=d+1|0;if((d|0)==(O|0)){ob=m;break}else M=m}}else ob=0;M=R+304|0;if((+g[M>>2]==0.0?Qa==+g[R+300>>2]:0)?Ra==+g[R+296>>2]:0)pb=Sa==+g[R+292>>2];else pb=0;if(ob|pb)qb=R;else{g[R+292>>2]=Sa;g[R+296>>2]=Ra;g[R+300>>2]=Qa;g[M>>2]=0.0;a[R+356>>0]=1;g[R+4+(O<<4)>>2]=Sa;g[R+4+(O<<4)+4>>2]=Ra;g[R+4+(O<<4)+8>>2]=Qa;g[R+4+(O<<4)+12>>2]=0.0;M=c[R>>2]|0;g[R+84+(M<<4)>>2]=Ta;g[R+84+(M<<4)+4>>2]=Ua;g[R+84+(M<<4)+8>>2]=Va;g[R+84+(M<<4)+12>>2]=0.0;M=c[R>>2]|0;g[R+164+(M<<4)>>2]=Wa;g[R+164+(M<<4)+4>>2]=Xa;g[R+164+(M<<4)+8>>2]=Ya;g[R+164+(M<<4)+12>>2]=0.0;c[R>>2]=(c[R>>2]|0)+1;qb=c[u>>2]|0}M=Vp(qb)|0;Ia=+g[qb+276>>2];Ka=+g[qb+280>>2];Ja=+g[qb+284>>2];if(!M){La=ib;Ma=jb;Na=kb;Oa=lb;Pa=mb;break a}if(!(Ia*Ia+Ka*Ka+Ja*Ja>9.999999747378752e-05)){La=ib;Ma=jb;Na=kb;Oa=lb;Pa=mb;break a}else{Aa=eb;ya=db;za=cb;Da=hb;Fa=gb;Ga=fb;p=lb;b=kb;Z=jb;X=ib;Ha=mb;T=c[qb+288>>2]|0}}if(($a|0)==24){i=l;return _a|0}}else{La=0;Ma=0;Na=0;Oa=0;Pa=0.0}while(0);g[j+164>>2]=Pa;Pa=(c[k>>2]=Oa,+g[k>>2]);mb=(c[k>>2]=Na,+g[k>>2]);fb=(c[k>>2]=Ma,+g[k>>2]);gb=fb*fb+(mb*mb+Pa*Pa);if(!(gb>=1.4210854715202004e-14)){Ma=j+132|0;c[Ma>>2]=0;c[Ma+4>>2]=0;c[Ma+8>>2]=0;c[Ma+12>>2]=0;rb=0.0;sb=0.0;tb=0.0}else{hb=1.0/+P(+gb);gb=Pa*hb;Pa=mb*hb;mb=fb*hb;g[j+132>>2]=gb;g[j+136>>2]=Pa;g[j+140>>2]=mb;c[j+144>>2]=La;rb=gb;sb=Pa;tb=mb}if(sa*rb+ta*sb+ua*tb>=-+g[j+172>>2]){_a=0;i=l;return _a|0}La=c[u>>2]|0;Vp(La)|0;Hs(j+148|0,La+260|0,16)|0;_a=1;i=l;return _a|0}function Tp(a){a=a|0;xs(a);return}function Up(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;e=c[b>>2]|0;do if((e|0)>3)if(!(a[d>>0]&8)){f=e+-1|0;c[b>>2]=f;g=b+52|0;h=b+4+(f<<4)|0;c[g>>2]=c[h>>2];c[g+4>>2]=c[h+4>>2];c[g+8>>2]=c[h+8>>2];c[g+12>>2]=c[h+12>>2];h=b+132|0;g=b+84+(f<<4)|0;c[h>>2]=c[g>>2];c[h+4>>2]=c[g+4>>2];c[h+8>>2]=c[g+8>>2];c[h+12>>2]=c[g+12>>2];g=b+212|0;h=b+164+(f<<4)|0;c[g>>2]=c[h>>2];c[g+4>>2]=c[h+4>>2];c[g+8>>2]=c[h+8>>2];c[g+12>>2]=c[h+12>>2];i=d;j=f;k=6}else{i=d;j=e;k=6}else{if((e|0)>2){i=d;j=3;k=6;break}if((e|0)>1){l=d;m=2;k=10;break}if((e|0)>0){n=d;o=1;break}else return}while(0);if((k|0)==6)if(!(a[i>>0]&4)){d=j+-1|0;c[b>>2]=d;e=b+36|0;f=b+4+(d<<4)|0;c[e>>2]=c[f>>2];c[e+4>>2]=c[f+4>>2];c[e+8>>2]=c[f+8>>2];c[e+12>>2]=c[f+12>>2];f=b+116|0;e=b+84+(d<<4)|0;c[f>>2]=c[e>>2];c[f+4>>2]=c[e+4>>2];c[f+8>>2]=c[e+8>>2];c[f+12>>2]=c[e+12>>2];e=b+196|0;f=b+164+(d<<4)|0;c[e>>2]=c[f>>2];c[e+4>>2]=c[f+4>>2];c[e+8>>2]=c[f+8>>2];c[e+12>>2]=c[f+12>>2];l=i;m=d;k=10}else{l=i;m=j;k=10}if((k|0)==10)if(!(a[l>>0]&2)){k=m+-1|0;c[b>>2]=k;j=b+20|0;i=b+4+(k<<4)|0;c[j>>2]=c[i>>2];c[j+4>>2]=c[i+4>>2];c[j+8>>2]=c[i+8>>2];c[j+12>>2]=c[i+12>>2];i=b+100|0;j=b+84+(k<<4)|0;c[i>>2]=c[j>>2];c[i+4>>2]=c[j+4>>2];c[i+8>>2]=c[j+8>>2];c[i+12>>2]=c[j+12>>2];j=b+180|0;i=b+164+(k<<4)|0;c[j>>2]=c[i>>2];c[j+4>>2]=c[i+4>>2];c[j+8>>2]=c[i+8>>2];c[j+12>>2]=c[i+12>>2];n=l;o=k}else{n=l;o=m}if(a[n>>0]&1)return;n=o+-1|0;c[b>>2]=n;o=b+4|0;m=b+4+(n<<4)|0;c[o>>2]=c[m>>2];c[o+4>>2]=c[m+4>>2];c[o+8>>2]=c[m+8>>2];c[o+12>>2]=c[m+12>>2];m=b+84|0;o=b+84+(n<<4)|0;c[m>>2]=c[o>>2];c[m+4>>2]=c[o+4>>2];c[m+8>>2]=c[o+8>>2];c[m+12>>2]=c[o+12>>2];o=b+164|0;m=b+164+(n<<4)|0;c[o>>2]=c[m>>2];c[o+4>>2]=c[m+4>>2];c[o+8>>2]=c[m+8>>2];c[o+12>>2]=c[m+12>>2];return}function Vp(b){b=b|0;var d=0,e=0,f=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0.0,s=0.0,t=0.0,u=0.0,v=0.0,w=0.0,x=0.0,y=0.0,z=0.0,A=0,B=0,C=0,D=0.0,E=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,O=0,P=0.0,Q=0.0,R=0.0,S=0.0,T=0.0,U=0.0,V=0.0,W=0.0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0.0,ha=0.0,ia=0.0,ja=0,ka=0.0,la=0;d=i;i=i+80|0;e=d+32|0;f=d+16|0;h=d;j=b+356|0;if(!(a[j>>0]|0)){k=a[b+312>>0]|0;l=k<<24>>24!=0;i=d;return l|0}m=b+316|0;n=b+336|0;o=b+332|0;c[n>>2]=0;c[n+4>>2]=0;c[n+8>>2]=0;c[n+12>>2]=0;a[n+16>>0]=0;p=a[o>>0]|0;q=p&-16;a[o>>0]=q;a[j>>0]=0;switch(c[b>>2]|0){case 3:{c[f>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;c[f+12>>2]=0;Wp(f,b+4|0,b+20|0,b+36|0,m);r=+g[n>>2];f=b+340|0;s=+g[f>>2];j=b+344|0;t=+g[j>>2];u=+g[b+84>>2]*r+ +g[b+100>>2]*s+ +g[b+116>>2]*t;v=r*+g[b+88>>2]+s*+g[b+104>>2]+t*+g[b+120>>2];w=r*+g[b+92>>2]+s*+g[b+108>>2]+t*+g[b+124>>2];g[b+244>>2]=u;g[b+248>>2]=v;g[b+252>>2]=w;g[b+256>>2]=0.0;x=+g[b+164>>2]*r+ +g[b+180>>2]*s+ +g[b+196>>2]*t;y=r*+g[b+168>>2]+s*+g[b+184>>2]+t*+g[b+200>>2];z=r*+g[b+172>>2]+s*+g[b+188>>2]+t*+g[b+204>>2];g[b+260>>2]=x;g[b+264>>2]=y;g[b+268>>2]=z;g[b+272>>2]=0.0;g[b+276>>2]=u-x;g[b+280>>2]=v-y;g[b+284>>2]=w-z;g[b+288>>2]=0.0;Up(b,b+332|0);if((+g[n>>2]>=0.0?+g[f>>2]>=0.0:0)?+g[j>>2]>=0.0:0)A=+g[b+348>>2]>=0.0&1;else A=0;a[b+312>>0]=A;k=A;l=k<<24>>24!=0;i=d;return l|0}case 4:{A=b+4|0;j=b+20|0;f=b+36|0;B=b+52|0;c[h>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;c[h+12>>2]=0;C=e+16|0;a[C>>0]=0;c[m>>2]=c[h>>2];c[m+4>>2]=c[h+4>>2];c[m+8>>2]=c[h+8>>2];c[m+12>>2]=c[h+12>>2];a[o>>0]=p|15;z=+g[j>>2];w=+g[A>>2];y=z-w;v=+g[b+24>>2];x=+g[b+8>>2];u=v-x;t=+g[b+28>>2];s=+g[b+12>>2];r=t-s;D=+g[f>>2];E=D-w;F=+g[b+40>>2];G=F-x;H=+g[b+44>>2];I=H-s;J=u*I-r*G;K=r*E-y*I;L=y*G-u*E;M=0.0-w;p=h+4|0;N=0.0-x;O=h+8|0;P=0.0-s;Q=+g[B>>2];R=Q-w;S=+g[b+56>>2];T=S-x;U=+g[b+60>>2];V=U-s;W=J*R+K*T+L*V;X=W*W<9.99999905104687e-09?-1:(M*J+N*K+L*P)*W<0.0&1;W=G*V-I*T;L=I*R-E*V;K=E*T-G*R;J=r*K+(y*W+u*L);Y=J*J<9.99999905104687e-09?-1:(P*K+(M*W+N*L))*J<0.0&1;J=r*T-u*V;L=y*V-r*R;r=u*R-y*T;T=I*r+(E*J+G*L);Z=T*T<9.99999905104687e-09?-1:(P*r+(M*J+N*L))*T<0.0&1;T=Q-z;Q=S-v;S=U-t;U=D-z;D=F-v;F=H-t;H=F*Q-D*S;L=U*S-F*T;F=D*T-U*Q;Q=(s-t)*F+((w-z)*H+(x-v)*L);_=Q*Q<9.99999905104687e-09?-1:((0.0-t)*F+((0.0-z)*H+(0.0-v)*L))*Q<0.0&1;$=Y|X|Z|_;do if(($|0)<0){a[b+352>>0]=1;aa=b+312|0}else{ba=(Y|0)==0;ca=(Z|0)==0;da=(_|0)==0;if(!$){ea=b+312|0;if(a[b+352>>0]|0){aa=ea;break}a[ea>>0]=1;ea=b+276|0;c[ea>>2]=0;c[ea+4>>2]=0;c[ea+8>>2]=0;c[ea+12>>2]=0;k=1;l=k<<24>>24!=0;i=d;return l|0}if((X|0)!=0?(Wp(h,A,j,f,e),Q=+g[e>>2],L=+g[e+4>>2],v=+g[e+8>>2],H=Q-+g[h>>2],z=L-+g[p>>2],F=v-+g[O>>2],t=H*H+z*z+F*F,t<3402823466385288598117041.0e14):0){ea=c[e+12>>2]|0;g[m>>2]=Q;g[b+320>>2]=L;g[b+324>>2]=v;c[b+328>>2]=ea;ea=a[C>>0]|0;a[o>>0]=ea&1|a[o>>0]&-16|ea&2|ea&4;ea=c[e+24>>2]|0;fa=c[e+28>>2]|0;c[n>>2]=c[e+20>>2];c[b+340>>2]=ea;c[b+344>>2]=fa;g[b+348>>2]=0.0;ga=t}else ga=3402823466385288598117041.0e14;if(!ba?(Wp(h,A,f,B,e),t=+g[e>>2],v=+g[e+4>>2],L=+g[e+8>>2],Q=t-+g[h>>2],F=v-+g[p>>2],z=L-+g[O>>2],H=Q*Q+F*F+z*z,H<ga):0){ba=c[e+12>>2]|0;g[m>>2]=t;g[b+320>>2]=v;g[b+324>>2]=L;c[b+328>>2]=ba;ba=a[C>>0]|0;fa=ba<<1&255;a[o>>0]=fa&4|(ba&1|a[o>>0]&-16)|fa&8;fa=c[e+24>>2]|0;ba=c[e+28>>2]|0;c[n>>2]=c[e+20>>2];g[b+340>>2]=0.0;c[b+344>>2]=fa;c[b+348>>2]=ba;ha=H}else ha=ga;if(!ca?(Wp(h,A,B,j,e),H=+g[e>>2],L=+g[e+4>>2],v=+g[e+8>>2],t=H-+g[h>>2],z=L-+g[p>>2],F=v-+g[O>>2],Q=t*t+z*z+F*F,Q<ha):0){ca=c[e+12>>2]|0;g[m>>2]=H;g[b+320>>2]=L;g[b+324>>2]=v;c[b+328>>2]=ca;ca=a[C>>0]|0;a[o>>0]=(ca&255)>>>1&2|(ca&1|a[o>>0]&-16)|ca<<2&8;ca=c[e+28>>2]|0;ba=c[e+24>>2]|0;c[n>>2]=c[e+20>>2];c[b+340>>2]=ca;g[b+344>>2]=0.0;c[b+348>>2]=ba;ia=Q}else ia=ha;if(!da?(Wp(h,j,B,f,e),Q=+g[e>>2],v=+g[e+4>>2],L=+g[e+8>>2],H=Q-+g[h>>2],F=v-+g[p>>2],z=L-+g[O>>2],H*H+F*F+z*z<ia):0){da=c[e+12>>2]|0;g[m>>2]=Q;g[b+320>>2]=v;g[b+324>>2]=L;c[b+328>>2]=da;da=a[C>>0]|0;a[o>>0]=da<<1&2|a[o>>0]&-16|da&4|da<<2&8;da=c[e+20>>2]|0;ba=c[e+28>>2]|0;ca=c[e+24>>2]|0;g[n>>2]=0.0;c[b+340>>2]=da;c[b+344>>2]=ba;c[b+348>>2]=ca}L=+g[n>>2];ca=b+340|0;v=+g[ca>>2];ba=b+344|0;Q=+g[ba>>2];da=b+348|0;z=+g[da>>2];F=+g[b+84>>2]*L+ +g[b+100>>2]*v+ +g[b+116>>2]*Q+ +g[b+132>>2]*z;H=L*+g[b+88>>2]+v*+g[b+104>>2]+Q*+g[b+120>>2]+z*+g[b+136>>2];t=L*+g[b+92>>2]+v*+g[b+108>>2]+Q*+g[b+124>>2]+z*+g[b+140>>2];g[b+244>>2]=F;g[b+248>>2]=H;g[b+252>>2]=t;g[b+256>>2]=0.0;x=+g[b+164>>2]*L+ +g[b+180>>2]*v+ +g[b+196>>2]*Q+ +g[b+212>>2]*z;w=L*+g[b+168>>2]+v*+g[b+184>>2]+Q*+g[b+200>>2]+z*+g[b+216>>2];s=L*+g[b+172>>2]+v*+g[b+188>>2]+Q*+g[b+204>>2]+z*+g[b+220>>2];g[b+260>>2]=x;g[b+264>>2]=w;g[b+268>>2]=s;g[b+272>>2]=0.0;g[b+276>>2]=F-x;g[b+280>>2]=H-w;g[b+284>>2]=t-s;g[b+288>>2]=0.0;Up(b,b+332|0);if((+g[n>>2]>=0.0?+g[ca>>2]>=0.0:0)?+g[ba>>2]>=0.0:0)ja=+g[da>>2]>=0.0&1;else ja=0;a[b+312>>0]=ja;k=ja;l=k<<24>>24!=0;i=d;return l|0}while(0);a[aa>>0]=0;k=0;l=k<<24>>24!=0;i=d;return l|0}case 2:{ia=+g[b+4>>2];ha=+g[b+8>>2];ga=+g[b+12>>2];s=+g[b+20>>2]-ia;t=+g[b+24>>2]-ha;w=+g[b+28>>2]-ga;H=(0.0-ia)*s+(0.0-ha)*t+(0.0-ga)*w;do if(H>0.0){ga=s*s+t*t+w*w;if(H<ga){a[o>>0]=q|3;ka=H/ga;break}else{a[o>>0]=q|2;ka=1.0;break}}else{a[o>>0]=q|1;ka=0.0}while(0);g[n>>2]=1.0-ka;aa=b+340|0;g[aa>>2]=ka;ja=b+344|0;g[ja>>2]=0.0;e=b+348|0;g[e>>2]=0.0;H=+g[b+84>>2];w=+g[b+88>>2];t=+g[b+92>>2];s=H+ka*(+g[b+100>>2]-H);H=w+ka*(+g[b+104>>2]-w);w=t+ka*(+g[b+108>>2]-t);g[b+244>>2]=s;g[b+248>>2]=H;g[b+252>>2]=w;g[b+256>>2]=0.0;t=+g[b+164>>2];ga=+g[b+168>>2];ha=+g[b+172>>2];ia=t+ka*(+g[b+180>>2]-t);t=ga+ka*(+g[b+184>>2]-ga);ga=ha+ka*(+g[b+188>>2]-ha);g[b+260>>2]=ia;g[b+264>>2]=t;g[b+268>>2]=ga;g[b+272>>2]=0.0;g[b+276>>2]=s-ia;g[b+280>>2]=H-t;g[b+284>>2]=w-ga;g[b+288>>2]=0.0;Up(b,b+332|0);if((+g[n>>2]>=0.0?+g[aa>>2]>=0.0:0)?+g[ja>>2]>=0.0:0)la=+g[e>>2]>=0.0&1;else la=0;a[b+312>>0]=la;k=la;l=k<<24>>24!=0;i=d;return l|0}case 1:{la=b+244|0;e=b+84|0;c[la>>2]=c[e>>2];c[la+4>>2]=c[e+4>>2];c[la+8>>2]=c[e+8>>2];c[la+12>>2]=c[e+12>>2];e=b+260|0;ja=b+164|0;c[e>>2]=c[ja>>2];c[e+4>>2]=c[ja+4>>2];c[e+8>>2]=c[ja+8>>2];c[e+12>>2]=c[ja+12>>2];ga=+g[b+248>>2]-+g[b+264>>2];w=+g[b+252>>2]-+g[b+268>>2];g[b+276>>2]=+g[la>>2]-+g[e>>2];g[b+280>>2]=ga;g[b+284>>2]=w;g[b+288>>2]=0.0;c[n>>2]=0;c[n+4>>2]=0;c[n+8>>2]=0;c[n+12>>2]=0;a[n+16>>0]=0;a[o>>0]=q;g[n>>2]=1.0;g[b+340>>2]=0.0;g[b+344>>2]=0.0;g[b+348>>2]=0.0;a[b+312>>0]=1;k=1;l=k<<24>>24!=0;i=d;return l|0}case 0:{a[b+312>>0]=0;k=0;l=k<<24>>24!=0;i=d;return l|0}default:{a[b+312>>0]=0;k=0;l=k<<24>>24!=0;i=d;return l|0}}return 0}function Wp(b,d,e,f,h){b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;var i=0,j=0,k=0.0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0,r=0.0,s=0.0,t=0.0,u=0.0,v=0.0,w=0.0,x=0.0,y=0.0,z=0.0,A=0.0,B=0.0,C=0.0,D=0.0,E=0.0,F=0.0,G=0.0,H=0.0,I=0.0;i=h+16|0;j=a[i>>0]&-16;a[i>>0]=j;k=+g[e>>2];l=+g[d>>2];m=k-l;n=+g[e+4>>2];o=+g[d+4>>2];p=n-o;q=+g[e+8>>2];r=+g[d+8>>2];s=q-r;t=+g[f>>2];u=t-l;v=+g[f+4>>2];w=v-o;x=+g[f+8>>2];y=x-r;z=+g[b>>2];A=z-l;B=+g[b+4>>2];C=B-o;D=+g[b+8>>2];E=D-r;F=m*A+p*C+s*E;G=u*A+w*C+y*E;if(F<=0.0&G<=0.0){c[h>>2]=c[d>>2];c[h+4>>2]=c[d+4>>2];c[h+8>>2]=c[d+8>>2];c[h+12>>2]=c[d+12>>2];a[i>>0]=j|1;g[h+20>>2]=1.0;g[h+24>>2]=0.0;g[h+28>>2]=0.0;g[h+32>>2]=0.0;return}E=z-k;C=B-n;A=D-q;H=m*E+p*C+s*A;I=u*E+w*C+y*A;if(!(!(H>=0.0)|!(I<=H))){c[h>>2]=c[e>>2];c[h+4>>2]=c[e+4>>2];c[h+8>>2]=c[e+8>>2];c[h+12>>2]=c[e+12>>2];a[i>>0]=j|2;g[h+20>>2]=0.0;g[h+24>>2]=1.0;g[h+28>>2]=0.0;g[h+32>>2]=0.0;return}A=F*I-H*G;if(H<=0.0&(F>=0.0&A<=0.0)){C=F/(F-H);g[h>>2]=l+m*C;g[h+4>>2]=o+p*C;g[h+8>>2]=r+s*C;g[h+12>>2]=0.0;a[i>>0]=j|3;g[h+20>>2]=1.0-C;g[h+24>>2]=C;g[h+28>>2]=0.0;g[h+32>>2]=0.0;return}C=z-t;z=B-v;B=D-x;D=m*C+p*z+s*B;E=u*C+w*z+y*B;if(!(!(E>=0.0)|!(D<=E))){c[h>>2]=c[f>>2];c[h+4>>2]=c[f+4>>2];c[h+8>>2]=c[f+8>>2];c[h+12>>2]=c[f+12>>2];a[i>>0]=j|4;g[h+20>>2]=0.0;g[h+24>>2]=0.0;g[h+28>>2]=1.0;g[h+32>>2]=0.0;return}B=D*G-F*E;if(E<=0.0&(G>=0.0&B<=0.0)){F=G/(G-E);g[h>>2]=l+u*F;g[h+4>>2]=o+w*F;g[h+8>>2]=r+y*F;g[h+12>>2]=0.0;a[i>>0]=j|5;g[h+20>>2]=1.0-F;g[h+24>>2]=0.0;g[h+28>>2]=F;g[h+32>>2]=0.0;return}F=H*E-D*I;if((F<=0.0?(G=I-H,G>=0.0):0)?(H=D-E,H>=0.0):0){E=G/(G+H);g[h>>2]=k+(t-k)*E;g[h+4>>2]=n+(v-n)*E;g[h+8>>2]=q+(x-q)*E;g[h+12>>2]=0.0;a[i>>0]=j|6;g[h+20>>2]=0.0;g[h+24>>2]=1.0-E;g[h+28>>2]=E;g[h+32>>2]=0.0;return}E=1.0/(A+(F+B));F=B*E;B=A*E;g[h>>2]=u*B+(l+m*F);g[h+4>>2]=w*B+(o+p*F);g[h+8>>2]=y*B+(s*F+r);g[h+12>>2]=0.0;a[i>>0]=j|7;g[h+20>>2]=1.0-F-B;g[h+24>>2]=F;g[h+28>>2]=B;g[h+32>>2]=0.0;return}function Xp(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;d=c[b>>2]|0;if(d)Zp(b,d);d=b+4|0;e=c[d>>2]|0;if(e){c[3710]=(c[3710]|0)+1;xs(c[e+-4>>2]|0);}c[d>>2]=0;c[b+8>>2]=-1;d=b+24|0;e=b+32|0;f=c[e>>2]|0;g=b+36|0;if(f){if(a[g>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[f+-4>>2]|0);}c[e>>2]=0}a[g>>0]=1;c[e>>2]=0;c[d>>2]=0;f=b+28|0;c[f>>2]=0;c[b+16>>2]=0;h=b+44|0;i=b+52|0;j=c[i>>2]|0;k=b+56|0;if(!j){a[k>>0]=1;c[i>>2]=0;c[h>>2]=0;c[b+48>>2]=0;a[g>>0]=1;c[e>>2]=0;c[d>>2]=0;c[f>>2]=0;return}if(!(a[k>>0]|0)){a[k>>0]=1;c[i>>2]=0;c[h>>2]=0;c[b+48>>2]=0;a[g>>0]=1;c[e>>2]=0;c[d>>2]=0;c[f>>2]=0;return}c[3710]=(c[3710]|0)+1;xs(c[j+-4>>2]|0);j=c[e>>2]|0;a[k>>0]=1;c[i>>2]=0;c[h>>2]=0;c[b+48>>2]=0;if(!j){a[g>>0]=1;c[e>>2]=0;c[d>>2]=0;c[f>>2]=0;return}if(a[g>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[j+-4>>2]|0);}c[e>>2]=0;a[g>>0]=1;c[e>>2]=0;c[d>>2]=0;c[f>>2]=0;return}function Yp(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;d=i;i=i+32|0;e=d;if((b|0)<0)f=c[a+12>>2]|0;else f=b;b=c[a>>2]|0;if(!((f|0)>0&(b|0)!=0)){i=d;return}g=a+16|0;h=f;f=b;while(1){b=f+40|0;if(!(c[b>>2]|0))j=f;else{k=b;b=0;l=f;while(1){m=(c[g>>2]|0)>>>b&1;n=l+32|0;o=c[n>>2]|0;if(o>>>0>l>>>0){p=o+40|0;q=(c[p>>2]|0)==(l|0)&1;r=q^1;s=c[o+36+(r<<2)>>2]|0;t=o+32|0;u=c[t>>2]|0;if(!u)c[a>>2]=l;else c[u+36+(((c[u+40>>2]|0)==(o|0)&1)<<2)>>2]=l;c[s+32>>2]=l;c[t>>2]=l;c[n>>2]=u;u=l+36|0;c[o+36>>2]=c[u>>2];c[p>>2]=c[k>>2];c[(c[u>>2]|0)+32>>2]=o;c[(c[k>>2]|0)+32>>2]=o;c[l+36+(q<<2)>>2]=o;c[l+36+(r<<2)>>2]=s;c[e>>2]=c[o>>2];c[e+4>>2]=c[o+4>>2];c[e+8>>2]=c[o+8>>2];c[e+12>>2]=c[o+12>>2];c[e+16>>2]=c[o+16>>2];c[e+20>>2]=c[o+20>>2];c[e+24>>2]=c[o+24>>2];c[e+28>>2]=c[o+28>>2];c[o>>2]=c[l>>2];c[o+4>>2]=c[l+4>>2];c[o+8>>2]=c[l+8>>2];c[o+12>>2]=c[l+12>>2];c[o+16>>2]=c[l+16>>2];c[o+20>>2]=c[l+20>>2];c[o+24>>2]=c[l+24>>2];c[o+28>>2]=c[l+28>>2];c[l>>2]=c[e>>2];c[l+4>>2]=c[e+4>>2];c[l+8>>2]=c[e+8>>2];c[l+12>>2]=c[e+12>>2];c[l+16>>2]=c[e+16>>2];c[l+20>>2]=c[e+20>>2];c[l+24>>2]=c[e+24>>2];c[l+28>>2]=c[e+28>>2];v=o}else v=l;o=c[v+36+(m<<2)>>2]|0;k=o+40|0;if(!(c[k>>2]|0)){j=o;break}else{b=b+1&31;l=o}}}if(!(_p(a,j)|0))w=0;else w=c[a>>2]|0;$p(a,w,j);c[g>>2]=(c[g>>2]|0)+1;l=h+-1|0;if(!l)break;h=l;f=c[a>>2]|0}i=d;return}function Zp(a,b){a=a|0;b=b|0;var d=0;d=b+40|0;if(c[d>>2]|0){Zp(a,c[b+36>>2]|0);Zp(a,c[d>>2]|0);}if((c[a>>2]|0)==(b|0))c[a>>2]=0;d=a+4|0;a=c[d>>2]|0;if(!a){c[d>>2]=b;return}c[3710]=(c[3710]|0)+1;xs(c[a+-4>>2]|0);c[d>>2]=b;return}function _p(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0,i=0,j=0,k=0.0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0,r=0,s=0.0,t=0.0,u=0.0,v=0.0,w=0.0,x=0.0,y=0.0,z=0.0,A=0;if((c[a>>2]|0)==(b|0)){c[a>>2]=0;d=0;return d|0}e=c[b+32>>2]|0;f=c[e+32>>2]|0;h=c[e+36+(((c[e+40>>2]|0)!=(b|0)&1)<<2)>>2]|0;if(!f){c[a>>2]=h;c[h+32>>2]=0;b=a+4|0;i=c[b>>2]|0;if(!i)j=h;else{c[3710]=(c[3710]|0)+1;xs(c[i+-4>>2]|0);j=c[a>>2]|0}c[b>>2]=e;d=j;return d|0}c[f+36+(((c[f+40>>2]|0)==(e|0)&1)<<2)>>2]=h;c[h+32>>2]=f;h=a+4|0;j=c[h>>2]|0;if(j){c[3710]=(c[3710]|0)+1;xs(c[j+-4>>2]|0);}c[h>>2]=e;e=f;do{k=+g[e>>2];f=e+4|0;l=+g[f>>2];h=e+8|0;m=+g[h>>2];j=e+16|0;n=+g[j>>2];b=e+20|0;o=+g[b>>2];i=e+24|0;p=+g[i>>2];q=c[e+36>>2]|0;r=c[e+40>>2]|0;s=+g[q>>2];t=+g[r>>2];u=s<t?s:t;g[e>>2]=u;t=+g[q+16>>2];s=+g[r+16>>2];v=t>s?t:s;g[j>>2]=v;s=+g[q+4>>2];t=+g[r+4>>2];w=s<t?s:t;g[f>>2]=w;t=+g[q+20>>2];s=+g[r+20>>2];x=t>s?t:s;g[b>>2]=x;s=+g[q+8>>2];t=+g[r+8>>2];y=s<t?s:t;g[h>>2]=y;t=+g[q+24>>2];s=+g[r+24>>2];z=t>s?t:s;g[i>>2]=z;if(!(k!=u|l!=w|m!=y|n!=v)?!(p!=z|o!=x):0){d=e;A=14;break}e=c[e+32>>2]|0}while((e|0)!=0);if((A|0)==14)return d|0;d=c[a>>2]|0;return d|0}
function Og(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0.0,ba=0.0,ca=0.0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0,Fa=0,Ga=0,Ha=0,Ia=0,Ja=0,Ka=0,La=0,Ma=0,Na=0,Oa=0,Pa=0,Qa=0,Ra=0,Sa=0,Ta=0,Ua=0,Va=0,Wa=0,Xa=0,Ya=0,Za=0,_a=0,$a=0,ab=0,bb=0,cb=0,db=0,eb=0,fb=0,gb=0,hb=0,ib=0,jb=0,kb=0,lb=0,mb=0,nb=0,ob=0,pb=0,qb=0,rb=0,sb=0,tb=0,ub=0,vb=0,wb=0,xb=0,yb=0,zb=0,Ab=0,Bb=0,Cb=0.0,Db=0.0,Eb=0.0,Fb=0,Gb=0,Hb=0,Ib=0.0,Jb=0.0,Kb=0.0,Lb=0,Mb=0,Nb=0,Ob=0,Pb=0,Qb=0.0,Rb=0.0,Sb=0,Tb=0.0,Ub=0.0,Vb=0,Wb=0,Xb=0,Yb=0,Zb=0,_b=0.0,$b=0.0,ac=0,bc=0,cc=0,dc=0,ec=0,fc=0,gc=0,hc=0.0,ic=0.0,jc=0.0,kc=0,lc=0,mc=0.0,nc=0.0,oc=0.0,pc=0.0,qc=0,rc=0,sc=0,tc=0,uc=0,vc=0.0,wc=0.0,xc=0,yc=0,zc=0,Ac=0,Bc=0.0,Cc=0.0,Dc=0.0,Ec=0.0,Fc=0.0,Gc=0.0,Hc=0,Ic=0.0,Jc=0.0,Kc=0.0,Lc=0.0,Mc=0.0,Nc=0.0,Oc=0.0,Pc=0.0,Qc=0.0,Rc=0.0,Sc=0.0,Tc=0.0,Uc=0.0,Vc=0.0,Wc=0,Xc=0,Yc=0,Zc=0,_c=0,$c=0,ad=0.0,bd=0.0,cd=0.0,dd=0.0,ed=0.0,fd=0.0,gd=0.0,hd=0.0,id=0,jd=0.0,kd=0.0,ld=0.0,md=0.0,nd=0.0,od=0.0,pd=0.0,qd=0.0,rd=0.0,sd=0.0,td=0.0,ud=0.0,vd=0.0,wd=0.0,xd=0.0,yd=0.0,zd=0.0,Ad=0.0,Bd=0.0,Cd=0.0,Dd=0.0,Ed=0;h=i;i=i+80|0;j=h+64|0;l=h+48|0;m=h+32|0;n=h+16|0;o=h;if((e|0)<=0){i=h;return}p=f+12|0;q=b+16|0;r=b+28|0;s=b+32|0;t=b+36|0;u=b+40|0;v=j+4|0;w=j+8|0;x=j+12|0;y=l+4|0;z=l+8|0;A=l+12|0;B=b+68|0;C=m+4|0;D=m+8|0;E=m+12|0;F=f+80|0;G=n+4|0;H=n+8|0;I=o+4|0;J=o+8|0;K=o+12|0;L=n+12|0;M=f+64|0;N=f+56|0;Q=f+44|0;R=f+32|0;S=b+76|0;T=f+60|0;U=f+48|0;V=f+36|0;f=0;do{W=c[d+(f<<2)>>2]|0;X=c[W+740>>2]|0;Y=c[W+744>>2]|0;Z=Ng(b,X,+g[p>>2])|0;_=Ng(b,Y,+g[p>>2])|0;$=c[q>>2]|0;aa=+g[$+(Z*244|0)+128>>2];ba=+g[$+(Z*244|0)+132>>2];ca=+g[$+(Z*244|0)+136>>2];if(!(aa*aa+ba*ba+ca*ca<1.4210854715202004e-14?(ca=+g[$+(_*244|0)+128>>2],ba=+g[$+(_*244|0)+132>>2],aa=+g[$+(_*244|0)+136>>2],ca*ca+ba*ba+aa*aa<1.4210854715202004e-14):0))da=5;if((da|0)==5?(da=0,ea=W+748|0,fa=c[ea>>2]|0,(fa|0)>0):0){ga=W+756|0;ha=X+236|0;ia=Y+236|0;ja=X+52|0;ka=X+56|0;la=X+60|0;ma=Y+52|0;na=Y+56|0;oa=Y+60|0;pa=$+(Z*244|0)+240|0;qa=$+(_*244|0)+240|0;ra=Y+180|0;sa=Y+4|0;ta=Y+20|0;ua=Y+36|0;va=Y+8|0;wa=Y+24|0;xa=Y+40|0;ya=Y+12|0;za=Y+28|0;Aa=Y+44|0;Ba=Y+164|0;Ca=Y+168|0;Da=Y+172|0;Ea=X+180|0;Fa=X+4|0;Ga=X+20|0;Ha=X+36|0;Ia=X+8|0;Ja=X+24|0;Ka=X+40|0;La=X+12|0;Ma=X+28|0;Na=X+44|0;Oa=X+164|0;Pa=X+168|0;Qa=X+172|0;Ra=$+(_*244|0)+176|0;Sa=$+(_*244|0)+208|0;Ta=$+(_*244|0)+180|0;Ua=$+(_*244|0)+212|0;Va=$+(_*244|0)+184|0;Wa=$+(_*244|0)+216|0;Xa=$+(_*244|0)+192|0;Ya=$+(_*244|0)+224|0;Za=$+(_*244|0)+196|0;_a=$+(_*244|0)+228|0;$a=$+(_*244|0)+200|0;ab=$+(_*244|0)+232|0;bb=$+(Z*244|0)+176|0;cb=$+(Z*244|0)+208|0;db=$+(Z*244|0)+180|0;eb=$+(Z*244|0)+212|0;fb=$+(Z*244|0)+184|0;gb=$+(Z*244|0)+216|0;hb=$+(Z*244|0)+192|0;ib=$+(Z*244|0)+224|0;jb=$+(Z*244|0)+196|0;kb=$+(Z*244|0)+228|0;lb=$+(Z*244|0)+200|0;mb=$+(Z*244|0)+232|0;$=fa;fa=0;nb=1;while(1){ob=W+4+(fa*184|0)|0;pb=W+4+(fa*184|0)+80|0;if(!(+g[pb>>2]<=+g[ga>>2])){qb=$;rb=nb}else{sb=c[r>>2]|0;if((sb|0)==(c[s>>2]|0)?(tb=(sb|0)!=0?sb<<1:1,(sb|0)<(tb|0)):0){if(!tb){ub=0;vb=sb}else{c[3708]=(c[3708]|0)+1;wb=ws((tb*152|3)+16|0)|0;if(!wb)xb=0;else{yb=wb+4+15&-16;c[yb+-4>>2]=wb;xb=yb}ub=xb;vb=c[r>>2]|0}if((vb|0)>0){yb=0;do{Gs(ub+(yb*152|0)|0,(c[t>>2]|0)+(yb*152|0)|0,152)|0;yb=yb+1|0}while((yb|0)!=(vb|0));}yb=c[t>>2]|0;if(yb){if(a[u>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[yb+-4>>2]|0);}c[t>>2]=0}a[u>>0]=1;c[t>>2]=ub;c[s>>2]=tb;zb=c[r>>2]|0}else zb=sb;c[r>>2]=zb+1;yb=c[t>>2]|0;wb=yb+(sb*152|0)|0;Ab=(c[ha>>2]&2|0)==0?0:X;Bb=(c[ia>>2]&2|0)==0?0:Y;c[yb+(sb*152|0)+144>>2]=Z;c[yb+(sb*152|0)+148>>2]=_;c[yb+(sb*152|0)+132>>2]=ob;aa=+g[W+4+(fa*184|0)+48>>2]-+g[ja>>2];ba=+g[W+4+(fa*184|0)+52>>2]-+g[ka>>2];ca=+g[W+4+(fa*184|0)+56>>2]-+g[la>>2];g[j>>2]=aa;g[v>>2]=ba;g[w>>2]=ca;g[x>>2]=0.0;Cb=+g[W+4+(fa*184|0)+32>>2]-+g[ma>>2];Db=+g[W+4+(fa*184|0)+36>>2]-+g[na>>2];Eb=+g[W+4+(fa*184|0)+40>>2]-+g[oa>>2];g[l>>2]=Cb;g[y>>2]=Db;g[z>>2]=Eb;g[A>>2]=0.0;if(!(c[pa>>2]|0)){Fb=0;Gb=0;Hb=0}else{Ib=+g[hb>>2]+ +g[ib>>2];Jb=+g[jb>>2]+ +g[kb>>2];Kb=+g[lb>>2]+ +g[mb>>2];Lb=(g[k>>2]=+g[bb>>2]+ +g[cb>>2]+(Jb*ca-Kb*ba),c[k>>2]|0);Mb=(g[k>>2]=+g[db>>2]+ +g[eb>>2]+(Kb*aa-Ib*ca),c[k>>2]|0);Fb=Lb;Gb=Mb;Hb=(g[k>>2]=+g[fb>>2]+ +g[gb>>2]+(Ib*ba-Jb*aa),c[k>>2]|0);}if(!(c[qa>>2]|0)){Nb=0;Ob=0;Pb=0}else{Jb=+g[Xa>>2]+ +g[Ya>>2];Ib=+g[Za>>2]+ +g[_a>>2];Kb=+g[$a>>2]+ +g[ab>>2];Mb=(g[k>>2]=+g[Ra>>2]+ +g[Sa>>2]+(Ib*Eb-Kb*Db),c[k>>2]|0);Lb=(g[k>>2]=+g[Ta>>2]+ +g[Ua>>2]+(Kb*Cb-Jb*Eb),c[k>>2]|0);Nb=Mb;Ob=Lb;Pb=(g[k>>2]=+g[Va>>2]+ +g[Wa>>2]+(Jb*Db-Ib*Cb),c[k>>2]|0);}Ib=(c[k>>2]=Fb,+g[k>>2]);Jb=Ib-(c[k>>2]=Nb,+g[k>>2]);Ib=(c[k>>2]=Gb,+g[k>>2]);Kb=Ib-(c[k>>2]=Ob,+g[k>>2]);Ib=(c[k>>2]=Hb,+g[k>>2]);Qb=Ib-(c[k>>2]=Pb,+g[k>>2]);Lb=W+4+(fa*184|0)+64|0;Ib=+g[Lb>>2];Mb=W+4+(fa*184|0)+68|0;Rb=+g[Mb>>2];Sb=W+4+(fa*184|0)+72|0;Tb=+g[Sb>>2];Ub=Ib*Jb+Kb*Rb+Qb*Tb;Vb=c[q>>2]|0;Wb=Vb+(Z*244|0)+240|0;Xb=c[Wb>>2]|0;Yb=Vb+(_*244|0)+240|0;Zb=c[Yb>>2]|0;_b=ba*Tb-ca*Rb;$b=ca*Ib-Tb*aa;Tb=Rb*aa-ba*Ib;ac=yb+(sb*152|0)+64|0;bc=(Xb|0)!=0;if(bc){cc=(g[k>>2]=(_b*+g[Xb+288>>2]+$b*+g[Xb+292>>2]+Tb*+g[Xb+296>>2])*+g[Xb+568>>2],c[k>>2]|0);dc=(g[k>>2]=(_b*+g[Xb+304>>2]+$b*+g[Xb+308>>2]+Tb*+g[Xb+312>>2])*+g[Xb+572>>2],c[k>>2]|0);ec=cc;fc=dc;gc=(g[k>>2]=(_b*+g[Xb+320>>2]+$b*+g[Xb+324>>2]+Tb*+g[Xb+328>>2])*+g[Xb+576>>2],c[k>>2]|0);}else{ec=0;fc=0;gc=0}c[ac>>2]=ec;dc=yb+(sb*152|0)+68|0;c[dc>>2]=fc;cc=yb+(sb*152|0)+72|0;c[cc>>2]=gc;g[yb+(sb*152|0)+76>>2]=0.0;Ib=+g[Sb>>2];Rb=+g[Mb>>2];hc=Db*Ib-Eb*Rb;ic=+g[Lb>>2];jc=Eb*ic-Ib*Cb;Ib=Rb*Cb-Db*ic;kc=yb+(sb*152|0)+80|0;lc=(Zb|0)!=0;ic=(c[k>>2]=fc,+g[k>>2]);Rb=(c[k>>2]=gc,+g[k>>2]);mc=(c[k>>2]=ec,+g[k>>2]);if(lc){nc=-hc;oc=-jc;pc=-Ib;qc=(g[k>>2]=(+g[Zb+288>>2]*nc+ +g[Zb+292>>2]*oc+ +g[Zb+296>>2]*pc)*+g[Zb+568>>2],c[k>>2]|0);rc=(g[k>>2]=(+g[Zb+304>>2]*nc+ +g[Zb+308>>2]*oc+ +g[Zb+312>>2]*pc)*+g[Zb+572>>2],c[k>>2]|0);sc=qc;tc=rc;uc=(g[k>>2]=(+g[Zb+320>>2]*nc+ +g[Zb+324>>2]*oc+ +g[Zb+328>>2]*pc)*+g[Zb+576>>2],c[k>>2]|0);}else{sc=0;tc=0;uc=0}c[kc>>2]=sc;rc=yb+(sb*152|0)+84|0;c[rc>>2]=tc;qc=yb+(sb*152|0)+88|0;c[qc>>2]=uc;g[yb+(sb*152|0)+92>>2]=0.0;pc=(c[k>>2]=sc,+g[k>>2]);oc=(c[k>>2]=tc,+g[k>>2]);if(bc)vc=+g[Xb+368>>2]+((ic*ca-Rb*ba)*+g[Lb>>2]+(Rb*aa-ca*mc)*+g[Mb>>2]+(ba*mc-ic*aa)*+g[Sb>>2]);else vc=0.0;if(lc){ic=-pc;pc=-oc;oc=-(c[k>>2]=uc,+g[k>>2]);wc=+g[Zb+368>>2]+((Eb*pc-Db*oc)*+g[Lb>>2]+(Cb*oc-Eb*ic)*+g[Mb>>2]+(Db*ic-Cb*pc)*+g[Sb>>2]);}else wc=0.0;xc=yb+(sb*152|0)+108|0;g[xc>>2]=1.0/(vc+wc);yc=yb+(sb*152|0)+16|0;if(bc){c[yc>>2]=c[Lb>>2];c[yc+4>>2]=c[Lb+4>>2];c[yc+8>>2]=c[Lb+8>>2];c[yc+12>>2]=c[Lb+12>>2];g[wb>>2]=_b;g[yb+(sb*152|0)+4>>2]=$b;g[yb+(sb*152|0)+8>>2]=Tb;g[yb+(sb*152|0)+12>>2]=0.0}else{c[wb>>2]=0;c[wb+4>>2]=0;c[wb+8>>2]=0;c[wb+12>>2]=0;c[wb+16>>2]=0;c[wb+20>>2]=0;c[wb+24>>2]=0;c[wb+28>>2]=0}zc=yb+(sb*152|0)+48|0;if(lc){Tb=-+g[Mb>>2];$b=-+g[Sb>>2];g[yb+(sb*152|0)+48>>2]=-+g[Lb>>2];g[yb+(sb*152|0)+52>>2]=Tb;g[yb+(sb*152|0)+56>>2]=$b;g[yb+(sb*152|0)+60>>2]=0.0;g[yb+(sb*152|0)+32>>2]=-hc;g[yb+(sb*152|0)+36>>2]=-jc;g[yb+(sb*152|0)+40>>2]=-Ib;g[yb+(sb*152|0)+44>>2]=0.0}else{Ac=yb+(sb*152|0)+32|0;c[Ac>>2]=0;c[Ac+4>>2]=0;c[Ac+8>>2]=0;c[Ac+12>>2]=0;c[Ac+16>>2]=0;c[Ac+20>>2]=0;c[Ac+24>>2]=0;c[Ac+28>>2]=0}Ib=+g[pb>>2]+ +g[N>>2];if(bc){jc=+g[Xb+356>>2];hc=+g[Xb+360>>2];$b=+g[Xb+352>>2];Bc=jc*ca-hc*ba+ +g[Xb+336>>2];Cc=+g[Xb+340>>2]+(hc*aa-ca*$b);Dc=ba*$b-jc*aa+ +g[Xb+344>>2]}else{Bc=0.0;Cc=0.0;Dc=0.0}if(lc){aa=+g[Zb+356>>2];jc=+g[Zb+360>>2];$b=+g[Zb+352>>2];Ec=aa*Eb-jc*Db+ +g[Zb+336>>2];Fc=+g[Zb+340>>2]+(jc*Cb-Eb*$b);Gc=Db*$b-aa*Cb+ +g[Zb+344>>2]}else{Ec=0.0;Fc=0.0;Gc=0.0}Cb=+g[Lb>>2]*(Bc-Ec)+(Cc-Fc)*+g[Mb>>2]+(Dc-Gc)*+g[Sb>>2];c[yb+(sb*152|0)+104>>2]=c[W+4+(fa*184|0)+84>>2];aa=Cb*+g[W+4+(fa*184|0)+92>>2];Cb=!(aa>=-0.0)?-aa:0.0;do if(!(c[M>>2]&4))g[yb+(sb*152|0)+100>>2]=0.0;else{aa=+g[W+4+(fa*184|0)+120>>2]*+g[T>>2];Ac=yb+(sb*152|0)+100|0;g[Ac>>2]=aa;do if(bc){if(!(c[Wb>>2]|0))break;$b=aa*(+g[yb+(sb*152|0)+20>>2]*+g[Vb+(Z*244|0)+132>>2]*+g[Xb+376>>2])*+g[Vb+(Z*244|0)+116>>2];Db=aa*(+g[yb+(sb*152|0)+24>>2]*+g[Vb+(Z*244|0)+136>>2]*+g[Xb+380>>2])*+g[Vb+(Z*244|0)+120>>2];Hc=Vb+(Z*244|0)+64|0;g[Hc>>2]=+g[Vb+(Z*244|0)+112>>2]*(aa*(+g[yc>>2]*+g[Vb+(Z*244|0)+128>>2]*+g[Xb+372>>2]))+ +g[Hc>>2];Hc=Vb+(Z*244|0)+68|0;g[Hc>>2]=$b+ +g[Hc>>2];Hc=Vb+(Z*244|0)+72|0;g[Hc>>2]=Db+ +g[Hc>>2];Db=aa*+g[Vb+(Z*244|0)+100>>2]*+g[dc>>2];$b=aa*+g[Vb+(Z*244|0)+104>>2]*+g[cc>>2];Hc=Vb+(Z*244|0)+80|0;g[Hc>>2]=aa*+g[Vb+(Z*244|0)+96>>2]*+g[ac>>2]+ +g[Hc>>2];Hc=Vb+(Z*244|0)+84|0;g[Hc>>2]=Db+ +g[Hc>>2];Hc=Vb+(Z*244|0)+88|0;g[Hc>>2]=$b+ +g[Hc>>2]}while(0);if(!lc)break;aa=+g[Ac>>2];$b=-aa;if(!(c[Yb>>2]|0))break;Db=+g[qc>>2];Eb=+g[rc>>2];jc=+g[kc>>2];ba=aa*(+g[yb+(sb*152|0)+52>>2]*+g[Vb+(_*244|0)+132>>2]*+g[Zb+376>>2])*+g[Vb+(_*244|0)+116>>2];ca=aa*(+g[yb+(sb*152|0)+56>>2]*+g[Vb+(_*244|0)+136>>2]*+g[Zb+380>>2])*+g[Vb+(_*244|0)+120>>2];Hc=Vb+(_*244|0)+64|0;g[Hc>>2]=+g[Vb+(_*244|0)+112>>2]*(aa*(+g[zc>>2]*+g[Vb+(_*244|0)+128>>2]*+g[Zb+372>>2]))+ +g[Hc>>2];Hc=Vb+(_*244|0)+68|0;g[Hc>>2]=ba+ +g[Hc>>2];Hc=Vb+(_*244|0)+72|0;g[Hc>>2]=ca+ +g[Hc>>2];ca=Eb*(+g[Vb+(_*244|0)+100>>2]*$b);Eb=Db*(+g[Vb+(_*244|0)+104>>2]*$b);Hc=Vb+(_*244|0)+80|0;g[Hc>>2]=+g[Hc>>2]-jc*(+g[Vb+(_*244|0)+96>>2]*$b);Hc=Vb+(_*244|0)+84|0;g[Hc>>2]=+g[Hc>>2]-ca;Hc=Vb+(_*244|0)+88|0;g[Hc>>2]=+g[Hc>>2]-Eb}while(0);g[yb+(sb*152|0)+96>>2]=0.0;if(!(c[Wb>>2]|0)){Ic=0.0;Jc=0.0;Kc=0.0;Lc=0.0;Mc=0.0;Nc=0.0}else{Ic=+g[Vb+(Z*244|0)+208>>2];Jc=+g[Vb+(Z*244|0)+212>>2];Kc=+g[Vb+(Z*244|0)+216>>2];Lc=+g[Vb+(Z*244|0)+224>>2];Mc=+g[Vb+(Z*244|0)+228>>2];Nc=+g[Vb+(Z*244|0)+232>>2]}if(!(c[Yb>>2]|0)){Oc=0.0;Pc=0.0;Qc=0.0;Rc=0.0;Sc=0.0;Tc=0.0}else{Oc=+g[Vb+(_*244|0)+208>>2];Pc=+g[Vb+(_*244|0)+212>>2];Qc=+g[Vb+(_*244|0)+216>>2];Rc=+g[Vb+(_*244|0)+224>>2];Sc=+g[Vb+(_*244|0)+228>>2];Tc=+g[Vb+(_*244|0)+232>>2]}Eb=Cb-((Ic+ +g[Vb+(Z*244|0)+176>>2])*+g[yc>>2]+(Jc+ +g[Vb+(Z*244|0)+180>>2])*+g[yb+(sb*152|0)+20>>2]+(Kc+ +g[Vb+(Z*244|0)+184>>2])*+g[yb+(sb*152|0)+24>>2]+((Lc+ +g[Vb+(Z*244|0)+192>>2])*+g[wb>>2]+(Mc+ +g[Vb+(Z*244|0)+196>>2])*+g[yb+(sb*152|0)+4>>2]+(Nc+ +g[Vb+(Z*244|0)+200>>2])*+g[yb+(sb*152|0)+8>>2])+((Oc+ +g[Vb+(_*244|0)+176>>2])*+g[zc>>2]+(Pc+ +g[Vb+(_*244|0)+180>>2])*+g[yb+(sb*152|0)+52>>2]+(Qc+ +g[Vb+(_*244|0)+184>>2])*+g[yb+(sb*152|0)+56>>2]+((Rc+ +g[Vb+(_*244|0)+192>>2])*+g[yb+(sb*152|0)+32>>2]+(Sc+ +g[Vb+(_*244|0)+196>>2])*+g[yb+(sb*152|0)+36>>2]+(Tc+ +g[Vb+(_*244|0)+200>>2])*+g[yb+(sb*152|0)+40>>2])));Zb=(c[Q>>2]|0)==0;ca=+g[p>>2];if(Ib>0.0){Uc=0.0;Vc=Eb-Ib/ca}else{Uc=-(Ib*+g[(Zb|Ib>+g[U>>2]?R:V)>>2])/ca;Vc=Eb}Eb=+g[xc>>2];ca=Uc*Eb;$b=Vc*Eb;if(Zb|Ib>+g[U>>2]){g[yb+(sb*152|0)+112>>2]=ca+$b;g[yb+(sb*152|0)+128>>2]=0.0}else{g[yb+(sb*152|0)+112>>2]=$b;g[yb+(sb*152|0)+128>>2]=ca}g[yb+(sb*152|0)+116>>2]=0.0;g[yb+(sb*152|0)+120>>2]=0.0;g[yb+(sb*152|0)+124>>2]=1.0e10;Zb=yb+(sb*152|0)+140|0;c[Zb>>2]=c[B>>2];if(!Ab){Wc=0;Xc=0;Yc=0}else{Wc=c[Ab+352>>2]|0;Xc=c[Ab+356>>2]|0;Yc=c[Ab+360>>2]|0}if(!Bb){Zc=0;_c=0;$c=0}else{Zc=c[Bb+352>>2]|0;_c=c[Bb+356>>2]|0;$c=c[Bb+360>>2]|0}ca=(c[k>>2]=Zc,+g[k>>2]);$b=ca-(c[k>>2]=Wc,+g[k>>2]);ca=(c[k>>2]=_c,+g[k>>2]);Eb=ca-(c[k>>2]=Xc,+g[k>>2]);ca=(c[k>>2]=$c,+g[k>>2]);jc=ca-(c[k>>2]=Yc,+g[k>>2]);g[m>>2]=$b;g[C>>2]=Eb;g[D>>2]=jc;g[E>>2]=0.0;do if((nb|0)>0?+g[W+4+(fa*184|0)+88>>2]>0.0:0){kc=nb+-1|0;ca=+P(+($b*$b+Eb*Eb+jc*jc));if(ca>+g[F>>2]){Db=1.0/ca;ca=$b*Db;g[m>>2]=ca;ba=Eb*Db;g[C>>2]=ba;aa=jc*Db;g[D>>2]=aa;if(!(c[Ea>>2]&2)){ad=ca;bd=ba;cd=aa}else{Db=+g[Fa>>2];hc=+g[Ga>>2];Tb=+g[Ha>>2];_b=+g[Ia>>2];pc=+g[Ja>>2];ic=+g[Ka>>2];oc=+g[La>>2];mc=+g[Ma>>2];Rb=+g[Na>>2];nc=(Db*ca+hc*ba+aa*Tb)*+g[Oa>>2];dd=(ca*_b+ba*pc+aa*ic)*+g[Pa>>2];ed=(ca*oc+ba*mc+aa*Rb)*+g[Qa>>2];aa=Db*nc+_b*dd+oc*ed;oc=hc*nc+pc*dd+mc*ed;mc=Tb*nc+ic*dd+Rb*ed;g[m>>2]=aa;g[C>>2]=oc;g[D>>2]=mc;g[E>>2]=0.0;ad=aa;bd=oc;cd=mc}if(!(c[ra>>2]&2)){fd=ad;gd=bd;hd=cd}else{mc=+g[sa>>2];oc=+g[ta>>2];aa=+g[ua>>2];ed=+g[va>>2];Rb=+g[wa>>2];dd=+g[xa>>2];ic=+g[ya>>2];nc=+g[za>>2];Tb=+g[Aa>>2];pc=(mc*ad+oc*bd+aa*cd)*+g[Ba>>2];hc=(ad*ed+bd*Rb+cd*dd)*+g[Ca>>2];_b=(ad*ic+bd*nc+cd*Tb)*+g[Da>>2];Db=mc*pc+ed*hc+ic*_b;ic=oc*pc+Rb*hc+nc*_b;nc=aa*pc+dd*hc+Tb*_b;g[m>>2]=Db;g[C>>2]=ic;g[D>>2]=nc;g[E>>2]=0.0;fd=Db;gd=ic;hd=nc}if(!(+P(+(fd*fd+gd*gd+hd*hd))>.001)){id=kc;break}Mg(b,m,Z,_,sb,ob);id=kc;break}Mg(b,Lb,Z,_,sb,ob);nc=+g[Sb>>2];if(+O(+nc)>.7071067690849304){ic=+g[Mb>>2];Db=nc*nc+ic*ic;_b=1.0/+P(+Db);g[n>>2]=0.0;Tb=-(_b*nc);g[G>>2]=Tb;hc=_b*ic;g[H>>2]=hc;ic=Db*_b;g[o>>2]=ic;_b=+g[Lb>>2];Db=-(_b*hc);g[I>>2]=Db;jd=_b*Tb;kd=0.0;ld=Tb;md=hc;nd=ic;od=Db}else{Db=+g[Lb>>2];ic=+g[Mb>>2];hc=Db*Db+ic*ic;Tb=1.0/+P(+hc);_b=-(ic*Tb);g[n>>2]=_b;ic=Tb*Db;g[G>>2]=ic;g[H>>2]=0.0;Db=-(nc*ic);g[o>>2]=Db;dd=nc*_b;g[I>>2]=dd;jd=hc*Tb;kd=_b;ld=ic;md=0.0;nd=Db;od=dd}g[J>>2]=jd;rc=(c[Ea>>2]&2|0)==0;if(rc){pd=kd;qd=ld;rd=md}else{dd=+g[Fa>>2];Db=+g[Ga>>2];ic=+g[Ha>>2];_b=+g[Ia>>2];Tb=+g[Ja>>2];hc=+g[Ka>>2];nc=+g[La>>2];pc=+g[Ma>>2];aa=+g[Na>>2];Rb=(dd*kd+Db*ld+ic*md)*+g[Oa>>2];oc=(kd*_b+ld*Tb+md*hc)*+g[Pa>>2];ed=(kd*nc+ld*pc+md*aa)*+g[Qa>>2];mc=dd*Rb+_b*oc+nc*ed;nc=Db*Rb+Tb*oc+pc*ed;pc=ic*Rb+hc*oc+aa*ed;g[n>>2]=mc;g[G>>2]=nc;g[H>>2]=pc;g[L>>2]=0.0;pd=mc;qd=nc;rd=pc}qc=(c[ra>>2]&2|0)==0;if(qc){sd=pd;td=qd;ud=rd}else{pc=+g[sa>>2];nc=+g[ta>>2];mc=+g[ua>>2];ed=+g[va>>2];aa=+g[wa>>2];oc=+g[xa>>2];hc=+g[ya>>2];Rb=+g[za>>2];ic=+g[Aa>>2];Tb=(pc*pd+nc*qd+mc*rd)*+g[Ba>>2];Db=(pd*ed+qd*aa+rd*oc)*+g[Ca>>2];_b=(pd*hc+qd*Rb+rd*ic)*+g[Da>>2];dd=pc*Tb+ed*Db+hc*_b;hc=nc*Tb+aa*Db+Rb*_b;Rb=mc*Tb+oc*Db+ic*_b;g[n>>2]=dd;g[G>>2]=hc;g[H>>2]=Rb;g[L>>2]=0.0;sd=dd;td=hc;ud=Rb}if(rc){vd=nd;wd=od;xd=jd}else{Rb=+g[Fa>>2];hc=+g[Ga>>2];dd=+g[Ha>>2];_b=+g[Ia>>2];ic=+g[Ja>>2];Db=+g[Ka>>2];oc=+g[La>>2];Tb=+g[Ma>>2];mc=+g[Na>>2];aa=(Rb*nd+hc*od+dd*jd)*+g[Oa>>2];nc=(nd*_b+od*ic+jd*Db)*+g[Pa>>2];ed=(nd*oc+od*Tb+jd*mc)*+g[Qa>>2];pc=Rb*aa+_b*nc+oc*ed;oc=hc*aa+ic*nc+Tb*ed;Tb=dd*aa+Db*nc+mc*ed;g[o>>2]=pc;g[I>>2]=oc;g[J>>2]=Tb;g[K>>2]=0.0;vd=pc;wd=oc;xd=Tb}if(qc){yd=vd;zd=wd;Ad=xd}else{Tb=+g[sa>>2];oc=+g[ta>>2];pc=+g[ua>>2];ed=+g[va>>2];mc=+g[wa>>2];nc=+g[xa>>2];Db=+g[ya>>2];aa=+g[za>>2];dd=+g[Aa>>2];ic=(Tb*vd+oc*wd+pc*xd)*+g[Ba>>2];hc=(vd*ed+wd*mc+xd*nc)*+g[Ca>>2];_b=(vd*Db+wd*aa+xd*dd)*+g[Da>>2];Rb=Tb*ic+ed*hc+Db*_b;Db=oc*ic+mc*hc+aa*_b;aa=pc*ic+nc*hc+dd*_b;g[o>>2]=Rb;g[I>>2]=Db;g[J>>2]=aa;g[K>>2]=0.0;yd=Rb;zd=Db;Ad=aa}if(+P(+(sd*sd+td*td+ud*ud))>.001)Mg(b,n,Z,_,sb,ob);if(!(+P(+(yd*yd+zd*zd+Ad*Ad))>.001)){id=kc;break}Mg(b,o,Z,_,sb,ob);id=kc}else id=nb;while(0);do if(!(c[M>>2]&32))da=90;else{if(!(a[W+4+(fa*184|0)+116>>0]|0)){da=90;break}Lg(b,W+4+(fa*184|0)+152|0,Z,_,sb,ob,j,l,1.0,+g[W+4+(fa*184|0)+132>>2],+g[W+4+(fa*184|0)+140>>2]);if(!(c[M>>2]&16))break;Lg(b,W+4+(fa*184|0)+168|0,Z,_,sb,ob,j,l,1.0,+g[W+4+(fa*184|0)+136>>2],+g[W+4+(fa*184|0)+144>>2]);}while(0);do if((da|0)==90){da=0;Bb=W+4+(fa*184|0)+152|0;jc=+g[Lb>>2];Eb=+g[Mb>>2];$b=+g[Sb>>2];Ib=Jb-Ub*jc;Cb=Kb-Ub*Eb;aa=Qb-Ub*$b;g[W+4+(fa*184|0)+152>>2]=Ib;Ab=W+4+(fa*184|0)+156|0;g[Ab>>2]=Cb;yb=W+4+(fa*184|0)+160|0;g[yb>>2]=aa;g[W+4+(fa*184|0)+164>>2]=0.0;Db=Ib*Ib+Cb*Cb+aa*aa;if((c[M>>2]&64|0)==0&Db>1.1920928955078125e-07){Rb=1.0/+P(+Db);g[Bb>>2]=Ib*Rb;g[Ab>>2]=Rb*Cb;g[yb>>2]=Rb*aa;Kg(X,Bb);Kg(Y,Bb);Lg(b,Bb,Z,_,sb,ob,j,l,1.0,0.0,0.0);if(!(c[M>>2]&16))break;xc=W+4+(fa*184|0)+168|0;aa=+g[Ab>>2];Rb=+g[Sb>>2];Cb=+g[yb>>2];Ib=+g[Mb>>2];Db=aa*Rb-Cb*Ib;_b=+g[Lb>>2];dd=+g[Bb>>2];hc=Cb*_b-Rb*dd;Rb=Ib*dd-aa*_b;g[W+4+(fa*184|0)+168>>2]=Db;g[W+4+(fa*184|0)+180>>2]=0.0;_b=1.0/+P(+(Db*Db+hc*hc+Rb*Rb));g[xc>>2]=Db*_b;g[W+4+(fa*184|0)+172>>2]=hc*_b;g[W+4+(fa*184|0)+176>>2]=Rb*_b;Kg(X,xc);Kg(Y,xc);Lg(b,xc,Z,_,sb,ob,j,l,1.0,0.0,0.0);break}xc=W+4+(fa*184|0)+168|0;if(+O(+$b)>.7071067690849304){_b=$b*$b+Eb*Eb;Rb=1.0/+P(+_b);g[Bb>>2]=0.0;hc=-(Rb*$b);g[Ab>>2]=hc;Db=Rb*Eb;g[yb>>2]=Db;Bd=-(jc*Db);Cd=jc*hc;Dd=_b*Rb}else{Rb=jc*jc+Eb*Eb;_b=1.0/+P(+Rb);hc=-(Eb*_b);g[Bb>>2]=hc;Eb=_b*jc;g[Ab>>2]=Eb;g[yb>>2]=0.0;Bd=$b*hc;Cd=Rb*_b;Dd=-($b*Eb);}g[xc>>2]=Dd;g[W+4+(fa*184|0)+172>>2]=Bd;g[W+4+(fa*184|0)+176>>2]=Cd;Kg(X,Bb);Kg(Y,Bb);Lg(b,Bb,Z,_,sb,ob,j,l,1.0,0.0,0.0);Bb=c[M>>2]|0;if(!(Bb&16))Ed=Bb;else{Kg(X,xc);Kg(Y,xc);Lg(b,xc,Z,_,sb,ob,j,l,1.0,0.0,0.0);Ed=c[M>>2]|0}if((Ed&80|0)!=80)break;a[W+4+(fa*184|0)+116>>0]=1}while(0);ob=c[q>>2]|0;sb=ob+(Z*244|0)+240|0;Lb=c[sb>>2]|0;Mb=ob+(_*244|0)+240|0;Sb=c[Mb>>2]|0;xc=c[Zb>>2]|0;Bb=c[S>>2]|0;yb=c[M>>2]|0;Ab=(yb&4|0)==0;do if(Ab)g[Bb+(xc*152|0)+100>>2]=0.0;else{Ub=+g[W+4+(fa*184|0)+124>>2]*+g[T>>2];Vb=Bb+(xc*152|0)+100|0;g[Vb>>2]=Ub;if(Lb){Qb=+g[Lb+368>>2];Kb=Ub*(Qb*+g[Bb+(xc*152|0)+20>>2]*+g[Lb+376>>2])*+g[ob+(Z*244|0)+116>>2];Jb=Ub*(Qb*+g[Bb+(xc*152|0)+24>>2]*+g[Lb+380>>2])*+g[ob+(Z*244|0)+120>>2];zc=ob+(Z*244|0)+64|0;g[zc>>2]=+g[ob+(Z*244|0)+112>>2]*(Ub*(Qb*+g[Bb+(xc*152|0)+16>>2]*+g[Lb+372>>2]))+ +g[zc>>2];zc=ob+(Z*244|0)+68|0;g[zc>>2]=Kb+ +g[zc>>2];zc=ob+(Z*244|0)+72|0;g[zc>>2]=Jb+ +g[zc>>2];Jb=Ub*+g[ob+(Z*244|0)+100>>2]*+g[Bb+(xc*152|0)+68>>2];Kb=Ub*+g[ob+(Z*244|0)+104>>2]*+g[Bb+(xc*152|0)+72>>2];zc=ob+(Z*244|0)+80|0;g[zc>>2]=Ub*+g[ob+(Z*244|0)+96>>2]*+g[Bb+(xc*152|0)+64>>2]+ +g[zc>>2];zc=ob+(Z*244|0)+84|0;g[zc>>2]=Jb+ +g[zc>>2];zc=ob+(Z*244|0)+88|0;g[zc>>2]=Kb+ +g[zc>>2]}if(!Sb)break;Kb=+g[Sb+368>>2];Jb=+g[Vb>>2];Ub=-Jb;if(!(c[Mb>>2]|0))break;Qb=+g[Bb+(xc*152|0)+88>>2];Eb=+g[Bb+(xc*152|0)+84>>2];$b=+g[Bb+(xc*152|0)+80>>2];_b=Jb*(Kb*+g[Bb+(xc*152|0)+52>>2]*+g[Sb+376>>2])*+g[ob+(_*244|0)+116>>2];Rb=Jb*(Kb*+g[Bb+(xc*152|0)+56>>2]*+g[Sb+380>>2])*+g[ob+(_*244|0)+120>>2];Vb=ob+(_*244|0)+64|0;g[Vb>>2]=+g[ob+(_*244|0)+112>>2]*(Jb*(Kb*+g[Bb+(xc*152|0)+48>>2]*+g[Sb+372>>2]))+ +g[Vb>>2];Vb=ob+(_*244|0)+68|0;g[Vb>>2]=_b+ +g[Vb>>2];Vb=ob+(_*244|0)+72|0;g[Vb>>2]=Rb+ +g[Vb>>2];Rb=Eb*(+g[ob+(_*244|0)+100>>2]*Ub);Eb=Qb*(+g[ob+(_*244|0)+104>>2]*Ub);Vb=ob+(_*244|0)+80|0;g[Vb>>2]=+g[Vb>>2]-$b*(+g[ob+(_*244|0)+96>>2]*Ub);Vb=ob+(_*244|0)+84|0;g[Vb>>2]=+g[Vb>>2]-Rb;Vb=ob+(_*244|0)+88|0;g[Vb>>2]=+g[Vb>>2]-Eb}while(0);do if(yb&16){Zb=xc+1|0;if(Ab){g[Bb+(Zb*152|0)+100>>2]=0.0;break}Eb=+g[W+4+(fa*184|0)+128>>2]*+g[T>>2];Vb=Bb+(Zb*152|0)+100|0;g[Vb>>2]=Eb;do if(Lb){Rb=+g[Lb+368>>2];if(!(c[sb>>2]|0))break;Ub=Eb*(Rb*+g[Bb+(Zb*152|0)+20>>2])*+g[ob+(Z*244|0)+116>>2];$b=Eb*(Rb*+g[Bb+(Zb*152|0)+24>>2])*+g[ob+(Z*244|0)+120>>2];zc=ob+(Z*244|0)+64|0;g[zc>>2]=+g[ob+(Z*244|0)+112>>2]*(Eb*(Rb*+g[Bb+(Zb*152|0)+16>>2]))+ +g[zc>>2];zc=ob+(Z*244|0)+68|0;g[zc>>2]=Ub+ +g[zc>>2];zc=ob+(Z*244|0)+72|0;g[zc>>2]=$b+ +g[zc>>2];$b=Eb*+g[ob+(Z*244|0)+100>>2]*+g[Bb+(Zb*152|0)+68>>2];Ub=Eb*+g[ob+(Z*244|0)+104>>2]*+g[Bb+(Zb*152|0)+72>>2];zc=ob+(Z*244|0)+80|0;g[zc>>2]=Eb*+g[ob+(Z*244|0)+96>>2]*+g[Bb+(Zb*152|0)+64>>2]+ +g[zc>>2];zc=ob+(Z*244|0)+84|0;g[zc>>2]=$b+ +g[zc>>2];zc=ob+(Z*244|0)+88|0;g[zc>>2]=Ub+ +g[zc>>2]}while(0);if(!Sb)break;Eb=+g[Sb+368>>2];Ub=+g[Vb>>2];$b=-Ub;if(!(c[Mb>>2]|0))break;Rb=+g[Bb+(Zb*152|0)+88>>2];Qb=+g[Bb+(Zb*152|0)+84>>2];_b=+g[Bb+(Zb*152|0)+80>>2];Kb=Ub*(Eb*+g[Bb+(Zb*152|0)+52>>2])*+g[ob+(_*244|0)+116>>2];Jb=Ub*(Eb*+g[Bb+(Zb*152|0)+56>>2])*+g[ob+(_*244|0)+120>>2];Ac=ob+(_*244|0)+64|0;g[Ac>>2]=+g[ob+(_*244|0)+112>>2]*(Ub*(Eb*+g[Bb+(Zb*152|0)+48>>2]))+ +g[Ac>>2];Ac=ob+(_*244|0)+68|0;g[Ac>>2]=Kb+ +g[Ac>>2];Ac=ob+(_*244|0)+72|0;g[Ac>>2]=Jb+ +g[Ac>>2];Jb=Qb*(+g[ob+(_*244|0)+100>>2]*$b);Qb=Rb*(+g[ob+(_*244|0)+104>>2]*$b);Ac=ob+(_*244|0)+80|0;g[Ac>>2]=+g[Ac>>2]-_b*(+g[ob+(_*244|0)+96>>2]*$b);Ac=ob+(_*244|0)+84|0;g[Ac>>2]=+g[Ac>>2]-Jb;Ac=ob+(_*244|0)+88|0;g[Ac>>2]=+g[Ac>>2]-Qb}while(0);qb=c[ea>>2]|0;rb=id}fa=fa+1|0;if((fa|0)>=(qb|0))break;else{$=qb;nb=rb}}}f=f+1|0}while((f|0)!=(e|0));i=h;return}function Pg(b,d,e,f,h,j,l,m,n){b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;j=j|0;l=l|0;m=m|0;n=n|0;var 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.0,H=0.0,I=0.0,J=0.0,K=0.0,L=0.0,M=0.0,N=0.0,Q=0.0,R=0.0,S=0.0,T=0.0,U=0.0,V=0.0,W=0.0,X=0.0,Y=0.0,Z=0.0,_=0.0,$=0.0,aa=0.0,ba=0.0,ca=0.0,da=0.0,ea=0.0,fa=0.0,ga=0,ha=0.0,ia=0.0,ja=0.0,ka=0.0,la=0.0,ma=0.0,na=0.0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0,Fa=0,Ga=0,Ha=0,Ia=0,Ja=0,Ka=0,La=0,Ma=0,Na=0,Oa=0,Pa=0,Qa=0,Ra=0,Sa=0,Ta=0,Ua=0,Va=0,Wa=0,Xa=0,Ya=0,Za=0,_a=0,$a=0,ab=0,bb=0,cb=0,db=0,eb=0,fb=0,gb=0,hb=0,ib=0,jb=0,kb=0,lb=0,mb=0,nb=0,ob=0,pb=0,qb=0,rb=0,sb=0,tb=0,ub=0,vb=0,wb=0,xb=0,yb=0,zb=0,Ab=0,Bb=0,Cb=0,Db=0,Eb=0,Fb=0,Gb=0,Hb=0,Ib=0,Jb=0,Lb=0,Nb=0,Ob=0,Pb=0,Qb=0,Rb=0,Sb=0,Tb=0,Ub=0,Vb=0,Wb=0,Xb=0,Yb=0,Zb=0,_b=0,$b=0,ac=0,bc=0,cc=0,dc=0,ec=0,fc=0,gc=0,hc=0,ic=0,jc=0;n=i;i=i+304|0;o=n+248|0;p=n;c[b+188>>2]=-1;q=b+184|0;c[q>>2]=0;r=(e|0)>0;if(r){s=0;do{c[(c[d+(s<<2)>>2]|0)+212>>2]=-1;s=s+1|0}while((s|0)!=(e|0));}s=e+1|0;t=b+12|0;u=c[t>>2]|0;if((u|0)<(s|0)){if((s|0)!=0?(c[3708]=(c[3708]|0)+1,v=ws((s*244|3)+16|0)|0,(v|0)!=0):0){w=v+4+15&-16;c[w+-4>>2]=v;x=w}else x=0;w=b+8|0;v=c[w>>2]|0;y=b+16|0;if((v|0)>0){z=0;do{A=x+(z*244|0)|0;B=c[y>>2]|0;C=B+(z*244|0)|0;c[A>>2]=c[C>>2];c[A+4>>2]=c[C+4>>2];c[A+8>>2]=c[C+8>>2];c[A+12>>2]=c[C+12>>2];C=x+(z*244|0)+16|0;A=B+(z*244|0)+16|0;c[C>>2]=c[A>>2];c[C+4>>2]=c[A+4>>2];c[C+8>>2]=c[A+8>>2];c[C+12>>2]=c[A+12>>2];A=x+(z*244|0)+32|0;C=B+(z*244|0)+32|0;c[A>>2]=c[C>>2];c[A+4>>2]=c[C+4>>2];c[A+8>>2]=c[C+8>>2];c[A+12>>2]=c[C+12>>2];C=x+(z*244|0)+48|0;A=B+(z*244|0)+48|0;c[C>>2]=c[A>>2];c[C+4>>2]=c[A+4>>2];c[C+8>>2]=c[A+8>>2];c[C+12>>2]=c[A+12>>2];Gs(x+(z*244|0)+64|0,B+(z*244|0)+64|0,180)|0;z=z+1|0}while((z|0)!=(v|0));}v=c[y>>2]|0;z=b+20|0;if(v){if(a[z>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[v+-4>>2]|0);}c[y>>2]=0}a[z>>0]=1;c[y>>2]=x;c[t>>2]=s;D=w;E=s}else{D=b+8|0;E=u}Cs(p|0,0,244)|0;u=c[D>>2]|0;if((u|0)<0){s=b+16|0;if((E|0)<0){E=c[s>>2]|0;w=b+20|0;if(E){if(a[w>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[E+-4>>2]|0);}c[s>>2]=0}a[w>>0]=1;c[s>>2]=0;c[t>>2]=0}t=p+16|0;w=p+32|0;E=p+48|0;x=p+64|0;y=u;do{u=c[s>>2]|0;z=u+(y*244|0)|0;c[z>>2]=c[p>>2];c[z+4>>2]=c[p+4>>2];c[z+8>>2]=c[p+8>>2];c[z+12>>2]=c[p+12>>2];z=u+(y*244|0)+16|0;c[z>>2]=c[t>>2];c[z+4>>2]=c[t+4>>2];c[z+8>>2]=c[t+8>>2];c[z+12>>2]=c[t+12>>2];z=u+(y*244|0)+32|0;c[z>>2]=c[w>>2];c[z+4>>2]=c[w+4>>2];c[z+8>>2]=c[w+8>>2];c[z+12>>2]=c[w+12>>2];z=u+(y*244|0)+48|0;c[z>>2]=c[E>>2];c[z+4>>2]=c[E+4>>2];c[z+8>>2]=c[E+8>>2];c[z+12>>2]=c[E+12>>2];Gs(u+(y*244|0)+64|0,x|0,180)|0;y=y+1|0}while((y|0)!=0);}c[D>>2]=0;if(r){r=m+12|0;D=b+16|0;y=m+76|0;x=o+4|0;E=o+8|0;w=o+12|0;t=0;do{p=d+(t<<2)|0;s=Ng(b,c[p>>2]|0,+g[r>>2])|0;u=c[p>>2]|0;if(!((u|0)==0?1:(c[u+236>>2]&2|0)==0)?+g[u+368>>2]!=0.0:0){p=c[D>>2]|0;z=u+528|0;v=c[z>>2]|0;if(!(v&2))F=v;else{G=+g[y>>2];H=+g[u+420>>2];I=+g[u+424>>2];J=+g[u+428>>2];K=+g[u+4>>2];L=H!=0.0?1.0/H:0.0;H=L*K;M=+g[u+8>>2];N=I!=0.0?1.0/I:0.0;I=N*M;Q=+g[u+12>>2];R=J!=0.0?1.0/J:0.0;J=R*Q;S=+g[u+20>>2];T=L*S;U=+g[u+24>>2];V=N*U;W=+g[u+28>>2];X=R*W;Y=+g[u+36>>2];Z=L*Y;L=+g[u+40>>2];_=N*L;N=+g[u+44>>2];$=R*N;R=+g[u+352>>2];aa=+g[u+356>>2];ba=+g[u+360>>2];ca=(H*K+I*M+J*Q)*R+(H*S+I*U+J*W)*aa+(H*Y+I*L+J*N)*ba;J=(T*K+V*M+X*Q)*R+(T*S+V*U+X*W)*aa+(T*Y+V*L+X*N)*ba;X=(Z*K+_*M+$*Q)*R+(Z*S+_*U+$*W)*aa+(Z*Y+_*L+$*N)*ba;N=aa*X-ba*J;$=ba*ca-R*X;X=R*J-aa*ca;ca=N*N+$*$+X*X;if(ca>G*G){aa=1.0/+P(+ca)*G;da=N*aa;ea=aa*$;fa=aa*X}else{da=N;ea=$;fa=X}X=+g[r>>2];$=(da*+g[u+292>>2]+ea*+g[u+308>>2]+fa*+g[u+324>>2])*X;N=X*(da*+g[u+296>>2]+ea*+g[u+312>>2]+fa*+g[u+328>>2]);v=p+(s*244|0)+224|0;g[v>>2]=+g[v>>2]-(da*+g[u+288>>2]+ea*+g[u+304>>2]+fa*+g[u+320>>2])*X;v=p+(s*244|0)+228|0;g[v>>2]=+g[v>>2]-$;v=p+(s*244|0)+232|0;g[v>>2]=+g[v>>2]-N;F=c[z>>2]|0}if(!(F&4))ga=F;else{N=+g[r>>2];$=+g[u+420>>2];X=+g[u+424>>2];aa=+g[u+428>>2];G=+g[u+352>>2];ca=+g[u+356>>2];J=+g[u+360>>2];R=+g[u+4>>2];ba=$!=0.0?1.0/$:0.0;$=ba*R;L=+g[u+8>>2];_=X!=0.0?1.0/X:0.0;X=_*L;Y=+g[u+12>>2];Z=aa!=0.0?1.0/aa:0.0;aa=Z*Y;W=+g[u+20>>2];U=ba*W;S=+g[u+24>>2];Q=_*S;M=+g[u+28>>2];K=Z*M;V=+g[u+36>>2];T=ba*V;ba=+g[u+40>>2];I=_*ba;_=+g[u+44>>2];H=Z*_;Z=$*R+X*L+aa*Y;ha=$*W+X*S+aa*M;ia=$*V+X*ba+aa*_;aa=U*R+Q*L+K*Y;X=U*W+Q*S+K*M;$=U*V+Q*ba+K*_;K=T*R+I*L+H*Y;Y=T*W+I*S+H*M;M=T*V+I*ba+H*_;_=J*ia;H=G*Z+ca*ha+_;ba=G*aa;I=ba+ca*X+J*$;V=ca*Y;T=G*K+V+J*M;S=N*0.0;W=H+(ca*T-J*I)*N-(S+H);L=I+(J*H-G*T)*N-(S+I);R=T+(G*I-ca*H)*N-(S+T);S=-J;Q=-G;U=-ca;ja=Z+(ca*K+(Z*0.0+aa*S))*N;ka=ha+(T+(V+(ha*0.0+X*S)))*N;V=ia+(ca*M+(ia*0.0+$*S)-I)*N;S=aa+(K*Q+(aa*0.0+J*Z)-T)*N;T=X+(Y*Q+(X*0.0+J*ha))*N;aa=$+(H+(M*Q+($*0.0+_)))*N;_=K+(K*0.0+(Z*U+ba)+I)*N;I=Y+(Y*0.0+(ha*U+G*X)-H)*N;H=M+(M*0.0+(ia*U+G*$))*N;N=T*H-I*aa;$=I*V-ka*H;U=ka*aa-T*V;ia=_*U+(ja*N+S*$);v=+O(+ia)>1.1920928955078125e-07;M=v?1.0/ia:ia;v=p+(s*244|0)+224|0;g[v>>2]=G-(R*U+(W*N+L*$))*M-G+ +g[v>>2];v=p+(s*244|0)+228|0;g[v>>2]=ca-M*(_*(aa*W-V*L)+(ja*(H*L-aa*R)+S*(V*R-H*W)))-ca+ +g[v>>2];v=p+(s*244|0)+232|0;g[v>>2]=J-M*(_*(ka*L-T*W)+(ja*(T*R-I*L)+S*(I*W-ka*R)))-J+ +g[v>>2];ga=c[z>>2]|0}if(ga&8){J=+g[r>>2];R=+g[u+420>>2];ka=+g[u+424>>2];W=+g[u+428>>2];I=+g[u+352>>2];S=+g[u+356>>2];L=+g[u+360>>2];Me(u+4|0,o);T=+g[o>>2];ja=-T;_=+g[x>>2];M=-_;ca=+g[E>>2];H=-ca;V=+g[w>>2];aa=L*M+I*V-S*H;G=I*H+S*V-L*ja;$=S*ja+L*V-I*M;N=-(I*ja)-S*M-L*H;U=ca*G+(T*N+V*aa)-_*$;ia=T*$+(_*N+V*G)-ca*aa;X=_*aa+(ca*N+V*$)-T*G;G=R!=0.0?1.0/R:0.0;R=ia*0.0;$=X*0.0;V=$+(G*U+R);N=U*0.0;aa=ka!=0.0?1.0/ka:0.0;ka=$+(N+aa*ia);ha=W!=0.0?1.0/W:0.0;W=ha*X+(N+R);Y=(ia*W-X*ka)*J;ba=(X*V-U*W)*J;Z=(U*ka-ia*V)*J;K=X*-0.0;Q=U*-0.0;la=ia*-0.0;ma=G+(R+(G*0.0+K))*J;na=(R+(0.0-aa*X)+W)*J+0.0;R=(ha*ia+(K+0.0)-ka)*J+0.0;K=(Q+(G*X+0.0)-W)*J+0.0;W=aa+(Q+(aa*0.0+$))*J;Q=($+0.0-ha*U+V)*J+0.0;$=(N-G*ia+0.0+ka)*J+0.0;ka=(la+aa*U+0.0-V)*J+0.0;V=ha+(ha*0.0+(la+N))*J;J=W*V-ka*Q;N=ka*R-V*na;la=na*Q-W*R;ha=$*la+(ma*J+K*N);u=+O(+ha)>1.1920928955078125e-07;aa=u?1.0/ha:ha;ha=U-(Z*la+(Y*J+ba*N))*aa;N=ia-($*(Q*Y-R*ba)+(ma*(V*ba-Q*Z)+K*(R*Z-V*Y)))*aa;V=X-($*(na*ba-W*Y)+(ma*(W*Z-ka*ba)+K*(ka*Y-na*Z)))*aa;aa=+g[w>>2];Z=aa*ha+_*V-ca*N;na=ca*ha+aa*N-T*V;Y=aa*V+T*N-_*ha;ka=-(T*ha)-_*N-ca*V;u=p+(s*244|0)+224|0;g[u>>2]=na*H+(aa*Z+ka*ja)-Y*M-I+ +g[u>>2];u=p+(s*244|0)+228|0;g[u>>2]=Y*ja+(aa*na+ka*M)-Z*H-S+ +g[u>>2];u=p+(s*244|0)+232|0;g[u>>2]=Z*M+(ka*H+aa*Y)-na*ja-L+ +g[u>>2]}}t=t+1|0}while((t|0)!=(e|0));}e=(l|0)>0;if(e){t=0;do{w=c[j+(t<<2)>>2]|0;Kb[c[(c[w>>2]|0)+8>>2]&255](w);g[w+36>>2]=0.0;t=t+1|0}while((t|0)!=(l|0));}t=b+168|0;w=c[t>>2]|0;if((w|0)<(l|0)?(E=b+172|0,(c[E>>2]|0)<(l|0)):0){if(!l){oa=0;pa=w}else{c[3708]=(c[3708]|0)+1;w=ws((l<<3|3)+16|0)|0;if(!w)qa=0;else{x=w+4+15&-16;c[x+-4>>2]=w;qa=x}oa=qa;pa=c[t>>2]|0}qa=b+176|0;if((pa|0)>0){x=0;do{w=(c[qa>>2]|0)+(x<<3)|0;r=c[w+4>>2]|0;ga=oa+(x<<3)|0;c[ga>>2]=c[w>>2];c[ga+4>>2]=r;x=x+1|0}while((x|0)!=(pa|0));}pa=c[qa>>2]|0;x=b+180|0;if(pa){if(a[x>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[pa+-4>>2]|0);}c[qa>>2]=0}a[x>>0]=1;c[qa>>2]=oa;c[E>>2]=l}c[t>>2]=l;if(e){t=b+176|0;E=0;oa=0;while(1){qa=c[t>>2]|0;x=qa+(E<<3)|0;pa=j+(E<<2)|0;r=c[pa>>2]|0;ga=c[r+44>>2]|0;if(!ga)ra=r;else{r=ga;ga=r+64|0;do{c[r>>2]=0;r=r+4|0}while((r|0)<(ga|0));ra=c[pa>>2]|0}if(!(a[ra+20>>0]|0)){c[x>>2]=0;c[qa+(E<<3)+4>>2]=0;sa=0}else{Mb[c[(c[ra>>2]|0)+16>>2]&127](ra,x);sa=c[x>>2]|0}r=sa+oa|0;E=E+1|0;if((E|0)==(l|0)){ta=r;break}else oa=r}}else ta=0;oa=b+48|0;E=c[oa>>2]|0;if((E|0)<(ta|0)?(sa=b+52|0,(c[sa>>2]|0)<(ta|0)):0){if(!ta){ua=0;va=E}else{c[3708]=(c[3708]|0)+1;E=ws((ta*152|3)+16|0)|0;if(!E)wa=0;else{ra=E+4+15&-16;c[ra+-4>>2]=E;wa=ra}ua=wa;va=c[oa>>2]|0}wa=b+56|0;if((va|0)>0){ra=0;do{Gs(ua+(ra*152|0)|0,(c[wa>>2]|0)+(ra*152|0)|0,152)|0;ra=ra+1|0}while((ra|0)!=(va|0));}va=c[wa>>2]|0;ra=b+60|0;if(va){if(a[ra>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[va+-4>>2]|0);}c[wa>>2]=0}a[ra>>0]=1;c[wa>>2]=ua;c[sa>>2]=ta}c[oa>>2]=ta;if(e){e=b+176|0;ta=b+56|0;sa=m+12|0;ua=b+16|0;wa=m+20|0;ra=m+32|0;va=o+4|0;E=o+8|0;t=o+12|0;r=o+16|0;ga=o+20|0;w=o+24|0;F=o+28|0;y=m+40|0;D=m+4|0;d=o+52|0;u=o+32|0;s=o+36|0;p=o+40|0;z=o+48|0;v=c[e>>2]|0;B=0;A=0;while(1){C=v+(A<<3)|0;if(!(c[C>>2]|0)){xa=0;ya=v}else{za=c[ta>>2]|0;Aa=j+(A<<2)|0;Ba=c[Aa>>2]|0;Ca=Ba+28|0;Da=c[Ca>>2]|0;Ea=Ba+32|0;Fa=c[Ea>>2]|0;Ga=Ng(b,Da,+g[sa>>2])|0;Ha=Ng(b,Fa,+g[sa>>2])|0;Ia=c[ua>>2]|0;Ja=c[Ba+24>>2]|0;Ka=(Ja|0)>0?Ja:c[wa>>2]|0;if((Ka|0)>(c[q>>2]|0))c[q>>2]=Ka;if((c[C>>2]|0)>0){Ja=0;do{La=Ja+B|0;Cs(za+(La*152|0)|0,0,152)|0;g[za+(La*152|0)+120>>2]=-3402823466385288598117041.0e14;g[za+(La*152|0)+124>>2]=3402823466385288598117041.0e14;g[za+(La*152|0)+100>>2]=0.0;g[za+(La*152|0)+96>>2]=0.0;c[za+(La*152|0)+144>>2]=Ga;c[za+(La*152|0)+148>>2]=Ha;c[za+(La*152|0)+136>>2]=Ka;Ja=Ja+1|0}while((Ja|0)<(c[C>>2]|0));}Ja=Ia+(Ga*244|0)+64|0;Ka=Ia+(Ga*244|0)+144|0;x=Ia+(Ha*244|0)+64|0;c[Ja>>2]=0;c[Ja+4>>2]=0;c[Ja+8>>2]=0;c[Ja+12>>2]=0;c[Ja+16>>2]=0;c[Ja+20>>2]=0;c[Ja+24>>2]=0;c[Ja+28>>2]=0;c[Ka>>2]=0;c[Ka+4>>2]=0;c[Ka+8>>2]=0;c[Ka+12>>2]=0;c[Ka+16>>2]=0;c[Ka+20>>2]=0;c[Ka+24>>2]=0;c[Ka+28>>2]=0;Ka=Ia+(Ha*244|0)+144|0;c[x>>2]=0;c[x+4>>2]=0;c[x+8>>2]=0;c[x+12>>2]=0;c[x+16>>2]=0;c[x+20>>2]=0;c[x+24>>2]=0;c[x+28>>2]=0;c[Ka>>2]=0;c[Ka+4>>2]=0;c[Ka+8>>2]=0;c[Ka+12>>2]=0;c[Ka+16>>2]=0;c[Ka+20>>2]=0;c[Ka+24>>2]=0;c[Ka+28>>2]=0;g[o>>2]=1.0/+g[sa>>2];c[va>>2]=c[ra>>2];c[E>>2]=za+(B*152|0)+16;c[t>>2]=za+(B*152|0);c[r>>2]=za+(B*152|0)+48;c[ga>>2]=za+(B*152|0)+32;c[w>>2]=38;c[F>>2]=za+(B*152|0)+112;Ka=za+(B*152|0)+116|0;c[Ka>>2]=c[y>>2];c[d>>2]=c[D>>2];c[u>>2]=Ka;c[s>>2]=za+(B*152|0)+120;c[p>>2]=za+(B*152|0)+124;c[z>>2]=c[wa>>2];Ka=c[Aa>>2]|0;Mb[c[(c[Ka>>2]|0)+20>>2]&127](Ka,o);if((c[C>>2]|0)>0){Ka=Da+368|0;x=Da+288|0;Ja=Da+292|0;qa=Da+296|0;pa=Da+304|0;La=Da+308|0;Ma=Da+312|0;Na=Da+320|0;Oa=Da+324|0;Pa=Da+328|0;Qa=Fa+368|0;Ra=Fa+288|0;Sa=Fa+292|0;Ta=Fa+296|0;Ua=Fa+304|0;Va=Fa+308|0;Wa=Fa+312|0;Xa=Fa+320|0;Ya=Fa+324|0;Za=Fa+328|0;_a=Ia+(Ga*244|0)+240|0;$a=Ia+(Ha*244|0)+240|0;ab=Da+336|0;bb=Da+340|0;cb=Da+344|0;db=Da+352|0;eb=Da+356|0;fb=Da+360|0;gb=Fa+336|0;hb=Fa+340|0;ib=Fa+344|0;jb=Fa+352|0;kb=Fa+356|0;lb=Fa+360|0;mb=Ia+(Ha*244|0)+208|0;nb=Ia+(Ha*244|0)+212|0;ob=Ia+(Ha*244|0)+216|0;pb=Ia+(Ha*244|0)+224|0;qb=Ia+(Ha*244|0)+228|0;rb=Ia+(Ha*244|0)+232|0;sb=Ia+(Ga*244|0)+208|0;tb=Ia+(Ga*244|0)+212|0;ub=Ia+(Ga*244|0)+216|0;vb=Ia+(Ga*244|0)+224|0;wb=Ia+(Ga*244|0)+228|0;xb=Ia+(Ga*244|0)+232|0;yb=0;do{zb=yb+B|0;Ab=za+(zb*152|0)+124|0;fa=+g[(c[Aa>>2]|0)+16>>2];if(+g[Ab>>2]>=fa)g[Ab>>2]=fa;Ab=za+(zb*152|0)+120|0;ea=-fa;if(+g[Ab>>2]<=ea)g[Ab>>2]=ea;c[za+(zb*152|0)+132>>2]=Ba;Ab=c[Ca>>2]|0;Bb=za+(zb*152|0)|0;ea=+g[Bb>>2];Cb=za+(zb*152|0)+4|0;fa=+g[Cb>>2];Db=za+(zb*152|0)+8|0;da=+g[Db>>2];L=(ea*+g[Ab+304>>2]+fa*+g[Ab+308>>2]+da*+g[Ab+312>>2])*+g[Ab+572>>2];ja=(ea*+g[Ab+320>>2]+fa*+g[Ab+324>>2]+da*+g[Ab+328>>2])*+g[Ab+576>>2];g[za+(zb*152|0)+64>>2]=(+g[Ab+288>>2]*ea+ +g[Ab+292>>2]*fa+ +g[Ab+296>>2]*da)*+g[Ab+568>>2];g[za+(zb*152|0)+68>>2]=L;g[za+(zb*152|0)+72>>2]=ja;g[za+(zb*152|0)+76>>2]=0.0;Ab=c[Ea>>2]|0;Eb=za+(zb*152|0)+32|0;ja=+g[Eb>>2];Fb=za+(zb*152|0)+36|0;L=+g[Fb>>2];Gb=za+(zb*152|0)+40|0;da=+g[Gb>>2];fa=(ja*+g[Ab+304>>2]+L*+g[Ab+308>>2]+da*+g[Ab+312>>2])*+g[Ab+572>>2];ea=(ja*+g[Ab+320>>2]+L*+g[Ab+324>>2]+da*+g[Ab+328>>2])*+g[Ab+576>>2];g[za+(zb*152|0)+80>>2]=(+g[Ab+288>>2]*ja+ +g[Ab+292>>2]*L+ +g[Ab+296>>2]*da)*+g[Ab+568>>2];g[za+(zb*152|0)+84>>2]=fa;g[za+(zb*152|0)+88>>2]=ea;g[za+(zb*152|0)+92>>2]=0.0;ea=+g[Ka>>2];Ab=za+(zb*152|0)+16|0;fa=+g[Ab>>2];ja=+g[za+(zb*152|0)+20>>2];na=+g[za+(zb*152|0)+24>>2];Y=+g[Bb>>2];aa=+g[Cb>>2];H=+g[Db>>2];ka=+g[Qa>>2];M=+g[za+(zb*152|0)+48>>2];Z=+g[za+(zb*152|0)+52>>2];S=+g[za+(zb*152|0)+56>>2];I=+g[Eb>>2];V=fa*(ea*fa)+ja*(ea*ja)+na*(ea*na)+(Y*(+g[x>>2]*Y+ +g[Ja>>2]*aa+ +g[qa>>2]*H)+aa*(Y*+g[pa>>2]+aa*+g[La>>2]+H*+g[Ma>>2])+H*(Y*+g[Na>>2]+aa*+g[Oa>>2]+H*+g[Pa>>2]))+(M*(ka*M)+Z*(ka*Z)+S*(ka*S))+(I*(+g[Ra>>2]*I+ +g[Sa>>2]*L+ +g[Ta>>2]*da)+L*(I*+g[Ua>>2]+L*+g[Va>>2]+da*+g[Wa>>2])+da*(I*+g[Xa>>2]+L*+g[Ya>>2]+da*+g[Za>>2]));Eb=+O(+V)>1.1920928955078125e-07;da=Eb?1.0/V:0.0;g[za+(zb*152|0)+108>>2]=da;if(!(c[_a>>2]|0)){Hb=0;Ib=0;Jb=0;Lb=0;Nb=0;Ob=0}else{Hb=c[sb>>2]|0;Ib=c[tb>>2]|0;Jb=c[ub>>2]|0;Lb=c[vb>>2]|0;Nb=c[wb>>2]|0;Ob=c[xb>>2]|0}if(!(c[$a>>2]|0)){Pb=0;Qb=0;Rb=0;Sb=0;Tb=0;Ub=0}else{Pb=c[mb>>2]|0;Qb=c[nb>>2]|0;Rb=c[ob>>2]|0;Sb=c[pb>>2]|0;Tb=c[qb>>2]|0;Ub=c[rb>>2]|0}V=(c[k>>2]=Hb,+g[k>>2])+ +g[ab>>2];L=(c[k>>2]=Ib,+g[k>>2])+ +g[bb>>2];ka=V*+g[Ab>>2]+L*ja+((c[k>>2]=Jb,+g[k>>2])+ +g[cb>>2])*na;na=(c[k>>2]=Lb,+g[k>>2])+ +g[db>>2];ja=(c[k>>2]=Nb,+g[k>>2])+ +g[eb>>2];L=ka+(na*Y+ja*aa+((c[k>>2]=Ob,+g[k>>2])+ +g[fb>>2])*H);H=(c[k>>2]=Pb,+g[k>>2])+ +g[gb>>2];aa=(c[k>>2]=Qb,+g[k>>2])+ +g[hb>>2];ja=H*M+aa*Z+((c[k>>2]=Rb,+g[k>>2])+ +g[ib>>2])*S;S=(c[k>>2]=Sb,+g[k>>2])+ +g[jb>>2];Z=(c[k>>2]=Tb,+g[k>>2])+ +g[kb>>2];Ab=za+(zb*152|0)+112|0;g[Ab>>2]=+g[Ab>>2]*da+da*(0.0-+g[d>>2]*(L+(ja+(S*I+Z*+g[Fb>>2]+((c[k>>2]=Ub,+g[k>>2])+ +g[lb>>2])*+g[Gb>>2]))));g[za+(zb*152|0)+100>>2]=0.0;yb=yb+1|0}while((yb|0)<(c[C>>2]|0));}C=c[e>>2]|0;xa=c[C+(A<<3)>>2]|0;ya=C}A=A+1|0;if((A|0)==(l|0))break;else{v=ya;B=xa+B|0}}}tc[c[(c[b>>2]|0)+28>>2]&63](b,f,h,m);h=c[oa>>2]|0;oa=c[b+28>>2]|0;f=c[b+68>>2]|0;B=b+128|0;xa=c[B>>2]|0;if((xa|0)<(h|0)?(ya=b+132|0,(c[ya>>2]|0)<(h|0)):0){if(!h){Vb=0;Wb=xa}else{c[3708]=(c[3708]|0)+1;xa=ws((h<<2|3)+16|0)|0;if(!xa)Xb=0;else{v=xa+4+15&-16;c[v+-4>>2]=xa;Xb=v}Vb=Xb;Wb=c[B>>2]|0}Xb=b+136|0;v=c[Xb>>2]|0;if((Wb|0)<=0)if(!v)Yb=b+140|0;else Zb=103;else{xa=0;do{c[Vb+(xa<<2)>>2]=c[v+(xa<<2)>>2];xa=xa+1|0}while((xa|0)!=(Wb|0));Zb=103}if((Zb|0)==103){Wb=b+140|0;if(a[Wb>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[v+-4>>2]|0);}c[Xb>>2]=0;Yb=Wb}a[Yb>>0]=1;c[Xb>>2]=Vb;c[ya>>2]=h}c[B>>2]=h;if(!(c[m+64>>2]&16)){m=b+108|0;B=c[m>>2]|0;if((B|0)<(oa|0)?(ya=b+112|0,(c[ya>>2]|0)<(oa|0)):0){if(!oa){_b=0;$b=B}else{c[3708]=(c[3708]|0)+1;B=ws((oa<<2|3)+16|0)|0;if(!B)ac=0;else{Vb=B+4+15&-16;c[Vb+-4>>2]=B;ac=Vb}_b=ac;$b=c[m>>2]|0}ac=b+116|0;Vb=c[ac>>2]|0;if(($b|0)<=0)if(!Vb)bc=b+120|0;else Zb=133;else{B=0;do{c[_b+(B<<2)>>2]=c[Vb+(B<<2)>>2];B=B+1|0}while((B|0)!=($b|0));Zb=133}if((Zb|0)==133){$b=b+120|0;if(a[$b>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[Vb+-4>>2]|0);}c[ac>>2]=0;bc=$b}a[bc>>0]=1;c[ac>>2]=_b;c[ya>>2]=oa}c[m>>2]=oa}else{m=oa<<1;ya=b+108|0;_b=c[ya>>2]|0;if((_b|0)<(m|0)?(ac=b+112|0,(c[ac>>2]|0)<(m|0)):0){if(!oa){cc=0;dc=_b}else{c[3708]=(c[3708]|0)+1;_b=ws((oa<<3|3)+16|0)|0;if(!_b)ec=0;else{bc=_b+4+15&-16;c[bc+-4>>2]=_b;ec=bc}cc=ec;dc=c[ya>>2]|0}ec=b+116|0;bc=c[ec>>2]|0;if((dc|0)<=0)if(!bc)fc=b+120|0;else Zb=118;else{_b=0;do{c[cc+(_b<<2)>>2]=c[bc+(_b<<2)>>2];_b=_b+1|0}while((_b|0)!=(dc|0));Zb=118}if((Zb|0)==118){dc=b+120|0;if(a[dc>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[bc+-4>>2]|0);}c[ec>>2]=0;fc=dc}a[fc>>0]=1;c[ec>>2]=cc;c[ac>>2]=m}c[ya>>2]=m}m=b+148|0;ya=c[m>>2]|0;if((ya|0)<(f|0)?(ac=b+152|0,(c[ac>>2]|0)<(f|0)):0){if(!f){gc=0;hc=ya}else{c[3708]=(c[3708]|0)+1;ya=ws((f<<2|3)+16|0)|0;if(!ya)ic=0;else{cc=ya+4+15&-16;c[cc+-4>>2]=ya;ic=cc}gc=ic;hc=c[m>>2]|0}ic=b+156|0;cc=c[ic>>2]|0;if((hc|0)<=0)if(!cc)jc=b+160|0;else Zb=148;else{ya=0;do{c[gc+(ya<<2)>>2]=c[cc+(ya<<2)>>2];ya=ya+1|0}while((ya|0)!=(hc|0));Zb=148}if((Zb|0)==148){Zb=b+160|0;if(a[Zb>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[cc+-4>>2]|0);}c[ic>>2]=0;jc=Zb}a[jc>>0]=1;c[ic>>2]=gc;c[ac>>2]=f}c[m>>2]=f;if((h|0)>0){m=c[b+136>>2]|0;ac=0;do{c[m+(ac<<2)>>2]=ac;ac=ac+1|0}while((ac|0)!=(h|0));}if((oa|0)>0){h=c[b+116>>2]|0;ac=0;do{c[h+(ac<<2)>>2]=ac;ac=ac+1|0}while((ac|0)!=(oa|0));}if((f|0)<=0){i=n;return 0.0}oa=c[b+156>>2]|0;b=0;do{c[oa+(b<<2)>>2]=b;b=b+1|0}while((b|0)!=(f|0));i=n;return 0.0}function Qg(b,d,e,f,h,i,j,k,l,m){b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;i=i|0;j=j|0;k=k|0;l=l|0;m=m|0;var n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0.0,E=0.0,F=0.0,G=0;m=b+48|0;i=c[m>>2]|0;h=b+28|0;f=c[h>>2]|0;e=b+68|0;n=c[e>>2]|0;o=l+64|0;if(c[o>>2]&1){if((i|0)>0){p=c[b+136>>2]|0;q=b+200|0;r=c[q>>2]|0;s=0;do{t=p+(s<<2)|0;u=c[t>>2]|0;s=s+1|0;r=($(r,1664525)|0)+1013904223|0;if(s>>>0<65537){v=r>>>16^r;if(s>>>0<257){w=v>>>8^v;if(s>>>0<17){x=w>>>4^w;if(s>>>0<5){y=x>>>2^x;if(s>>>0<3)z=y>>>1^y;else z=y}else z=x}else z=w}else z=v}else z=r;v=p+(((z>>>0)%(s>>>0)|0)<<2)|0;c[t>>2]=c[v>>2];c[v>>2]=u}while((s|0)!=(i|0));c[q>>2]=r}if((c[l+20>>2]|0)>(d|0)){if((f|0)>0){r=c[b+116>>2]|0;q=b+200|0;i=c[q>>2]|0;s=0;do{z=r+(s<<2)|0;p=c[z>>2]|0;s=s+1|0;i=($(i,1664525)|0)+1013904223|0;if(s>>>0<65537){u=i>>>16^i;if(s>>>0<257){v=u>>>8^u;if(s>>>0<17){t=v>>>4^v;if(s>>>0<5){w=t>>>2^t;if(s>>>0<3)A=w>>>1^w;else A=w}else A=t}else A=v}else A=u}else A=i;u=r+(((A>>>0)%(s>>>0)|0)<<2)|0;c[z>>2]=c[u>>2];c[u>>2]=p}while((s|0)!=(f|0));c[q>>2]=i}if((n|0)>0){i=c[b+156>>2]|0;q=b+200|0;f=c[q>>2]|0;s=0;do{A=i+(s<<2)|0;r=c[A>>2]|0;s=s+1|0;f=($(f,1664525)|0)+1013904223|0;if(s>>>0<65537){p=f>>>16^f;if(s>>>0<257){u=p>>>8^p;if(s>>>0<17){z=u>>>4^u;if(s>>>0<5){v=z>>>2^z;if(s>>>0<3)B=v>>>1^v;else B=v}else B=z}else B=u}else B=p}else B=f;p=i+(((B>>>0)%(s>>>0)|0)<<2)|0;c[A>>2]=c[p>>2];c[p>>2]=r}while((s|0)!=(n|0));c[q>>2]=f}}}f=c[m>>2]|0;q=(f|0)>0;if(!(c[o>>2]&256)){if(q){n=b+136|0;s=b+56|0;B=b+16|0;i=f;r=0;while(1){p=c[(c[n>>2]|0)+(r<<2)>>2]|0;A=c[s>>2]|0;if((c[A+(p*152|0)+136>>2]|0)>(d|0)){u=c[B>>2]|0;+Wg(u+((c[A+(p*152|0)+144>>2]|0)*244|0)|0,u+((c[A+(p*152|0)+148>>2]|0)*244|0)|0,A+(p*152|0)|0);C=c[m>>2]|0}else C=i;r=r+1|0;if((r|0)>=(C|0))break;else i=C}}if((c[l+20>>2]|0)<=(d|0))return 0.0;if((k|0)>0){C=l+12|0;i=b+16|0;r=0;do{B=j+(r<<2)|0;s=c[B>>2]|0;if(a[s+20>>0]|0){n=Ng(b,c[s+28>>2]|0,+g[C>>2])|0;s=Ng(b,c[(c[B>>2]|0)+32>>2]|0,+g[C>>2])|0;p=c[i>>2]|0;A=c[B>>2]|0;oc[c[(c[A>>2]|0)+24>>2]&7](A,p+(n*244|0)|0,p+(s*244|0)|0,+g[C>>2]);}r=r+1|0}while((r|0)!=(k|0));}r=c[h>>2]|0;if((r|0)>0){C=b+116|0;i=b+36|0;s=b+16|0;p=0;do{n=c[(c[C>>2]|0)+(p<<2)>>2]|0;A=c[i>>2]|0;B=c[s>>2]|0;+Xg(B+((c[A+(n*152|0)+144>>2]|0)*244|0)|0,B+((c[A+(n*152|0)+148>>2]|0)*244|0)|0,A+(n*152|0)|0);p=p+1|0}while((p|0)!=(r|0));}r=c[e>>2]|0;if((r|0)>0){p=b+156|0;s=b+76|0;i=b+36|0;C=b+16|0;n=0;do{A=c[(c[p>>2]|0)+(n<<2)>>2]|0;B=c[s>>2]|0;D=+g[(c[i>>2]|0)+((c[B+(A*152|0)+140>>2]|0)*152|0)+100>>2];if(D>0.0){E=D*+g[B+(A*152|0)+104>>2];g[B+(A*152|0)+120>>2]=-E;g[B+(A*152|0)+124>>2]=E;u=c[C>>2]|0;+Wg(u+((c[B+(A*152|0)+144>>2]|0)*244|0)|0,u+((c[B+(A*152|0)+148>>2]|0)*244|0)|0,B+(A*152|0)|0);}n=n+1|0}while((n|0)!=(r|0));}r=c[b+88>>2]|0;if((r|0)<=0)return 0.0;n=b+96|0;C=b+36|0;i=b+16|0;s=0;do{p=c[n>>2]|0;E=+g[(c[C>>2]|0)+((c[p+(s*152|0)+140>>2]|0)*152|0)+100>>2];if(E>0.0){D=+g[p+(s*152|0)+104>>2];F=E*D;E=F>D?D:F;g[p+(s*152|0)+120>>2]=-E;g[p+(s*152|0)+124>>2]=E;A=c[i>>2]|0;+Wg(A+((c[p+(s*152|0)+144>>2]|0)*244|0)|0,A+((c[p+(s*152|0)+148>>2]|0)*244|0)|0,p+(s*152|0)|0);}s=s+1|0}while((s|0)!=(r|0));return 0.0}if(q){q=b+136|0;r=b+56|0;s=b+16|0;i=f;f=0;while(1){C=c[(c[q>>2]|0)+(f<<2)>>2]|0;n=c[r>>2]|0;if((c[n+(C*152|0)+136>>2]|0)>(d|0)){p=c[s>>2]|0;+Wg(p+((c[n+(C*152|0)+144>>2]|0)*244|0)|0,p+((c[n+(C*152|0)+148>>2]|0)*244|0)|0,n+(C*152|0)|0);G=c[m>>2]|0}else G=i;f=f+1|0;if((f|0)>=(G|0))break;else i=G}}if((c[l+20>>2]|0)<=(d|0))return 0.0;if((k|0)>0){d=l+12|0;l=b+16|0;G=0;do{i=j+(G<<2)|0;f=c[i>>2]|0;if(a[f+20>>0]|0){m=Ng(b,c[f+28>>2]|0,+g[d>>2])|0;f=Ng(b,c[(c[i>>2]|0)+32>>2]|0,+g[d>>2])|0;s=c[l>>2]|0;r=c[i>>2]|0;oc[c[(c[r>>2]|0)+24>>2]&7](r,s+(m*244|0)|0,s+(f*244|0)|0,+g[d>>2]);}G=G+1|0}while((G|0)!=(k|0));}k=c[o>>2]|0;G=c[h>>2]|0;if(k&512){h=(k>>>4&1)+1|0;if((G|0)<=0)return 0.0;k=b+116|0;d=b+36|0;l=b+16|0;j=b+156|0;f=b+76|0;s=0;do{m=c[(c[k>>2]|0)+(s<<2)>>2]|0;r=c[d>>2]|0;i=c[l>>2]|0;+Xg(i+((c[r+(m*152|0)+144>>2]|0)*244|0)|0,i+((c[r+(m*152|0)+148>>2]|0)*244|0)|0,r+(m*152|0)|0);E=+g[r+(m*152|0)+100>>2];m=$(s,h)|0;r=c[(c[j>>2]|0)+(m<<2)>>2]|0;i=c[f>>2]|0;q=E>0.0;if(q){F=E*+g[i+(r*152|0)+104>>2];g[i+(r*152|0)+120>>2]=-F;g[i+(r*152|0)+124>>2]=F;C=c[l>>2]|0;+Wg(C+((c[i+(r*152|0)+144>>2]|0)*244|0)|0,C+((c[i+(r*152|0)+148>>2]|0)*244|0)|0,i+(r*152|0)|0);}if((c[o>>2]&16|0)!=0?(r=c[(c[j>>2]|0)+(m+1<<2)>>2]|0,m=c[f>>2]|0,q):0){F=E*+g[m+(r*152|0)+104>>2];g[m+(r*152|0)+120>>2]=-F;g[m+(r*152|0)+124>>2]=F;q=c[l>>2]|0;+Wg(q+((c[m+(r*152|0)+144>>2]|0)*244|0)|0,q+((c[m+(r*152|0)+148>>2]|0)*244|0)|0,m+(r*152|0)|0);}s=s+1|0}while((s|0)!=(G|0));return 0.0}if((G|0)>0){s=b+116|0;l=b+36|0;f=b+16|0;j=0;do{o=c[(c[s>>2]|0)+(j<<2)>>2]|0;h=c[l>>2]|0;d=c[f>>2]|0;+Xg(d+((c[h+(o*152|0)+144>>2]|0)*244|0)|0,d+((c[h+(o*152|0)+148>>2]|0)*244|0)|0,h+(o*152|0)|0);j=j+1|0}while((j|0)!=(G|0));}G=c[e>>2]|0;if((G|0)>0){e=b+156|0;j=b+76|0;f=b+36|0;l=b+16|0;s=0;do{o=c[(c[e>>2]|0)+(s<<2)>>2]|0;h=c[j>>2]|0;F=+g[(c[f>>2]|0)+((c[h+(o*152|0)+140>>2]|0)*152|0)+100>>2];if(F>0.0){E=F*+g[h+(o*152|0)+104>>2];g[h+(o*152|0)+120>>2]=-E;g[h+(o*152|0)+124>>2]=E;d=c[l>>2]|0;+Wg(d+((c[h+(o*152|0)+144>>2]|0)*244|0)|0,d+((c[h+(o*152|0)+148>>2]|0)*244|0)|0,h+(o*152|0)|0);}s=s+1|0}while((s|0)!=(G|0));}G=c[b+88>>2]|0;if((G|0)<=0)return 0.0;s=b+96|0;l=b+36|0;f=b+16|0;b=0;do{j=c[s>>2]|0;E=+g[(c[l>>2]|0)+((c[j+(b*152|0)+140>>2]|0)*152|0)+100>>2];if(E>0.0){F=+g[j+(b*152|0)+104>>2];D=E*F;E=D>F?F:D;g[j+(b*152|0)+120>>2]=-E;g[j+(b*152|0)+124>>2]=E;e=c[f>>2]|0;+Wg(e+((c[j+(b*152|0)+144>>2]|0)*244|0)|0,e+((c[j+(b*152|0)+148>>2]|0)*244|0)|0,j+(b*152|0)|0);}b=b+1|0}while((b|0)!=(G|0));return 0.0}function Rg(a,b,d,e,f,g,h,i,j){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;if(!(c[i+44>>2]|0))return;j=i+20|0;h=c[j>>2]|0;g=(h|0)>0;if(!(c[i+64>>2]&256)){if(!g)return;i=a+28|0;f=a+116|0;e=a+36|0;d=a+16|0;b=h;k=0;while(1){l=c[i>>2]|0;if((l|0)>0){m=0;do{n=c[(c[f>>2]|0)+(m<<2)>>2]|0;o=c[e>>2]|0;p=c[d>>2]|0;Gg(p+((c[o+(n*152|0)+144>>2]|0)*244|0)|0,p+((c[o+(n*152|0)+148>>2]|0)*244|0)|0,o+(n*152|0)|0);m=m+1|0}while((m|0)!=(l|0));q=c[j>>2]|0}else q=b;k=k+1|0;if((k|0)>=(q|0))break;else b=q}return}else{if(!g)return;g=a+28|0;q=a+116|0;b=a+36|0;k=a+16|0;a=h;h=0;while(1){d=c[g>>2]|0;if((d|0)>0){e=0;do{f=c[(c[q>>2]|0)+(e<<2)>>2]|0;i=c[b>>2]|0;l=c[k>>2]|0;Gg(l+((c[i+(f*152|0)+144>>2]|0)*244|0)|0,l+((c[i+(f*152|0)+148>>2]|0)*244|0)|0,i+(f*152|0)|0);e=e+1|0}while((e|0)!=(d|0));r=c[j>>2]|0}else r=a;h=h+1|0;if((h|0)>=(r|0))break;else a=r}return}}function Sg(a,b,d,e,f,g,h,i,j){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;var k=0,l=0,m=0;cc[c[(c[a>>2]|0)+32>>2]&1](a,b,d,e,f,g,h,i,j);k=c[a+184>>2]|0;l=c[i+20>>2]|0;m=(k|0)>(l|0)?k:l;if((m|0)<=0)return 0.0;l=0;do{+gc[c[(c[a>>2]|0)+40>>2]&3](a,l,b,d,e,f,g,h,i,j);l=l+1|0}while((l|0)<(m|0));return 0.0}function Tg(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0.0,v=0,w=0,x=0.0,y=0.0,z=0.0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0.0,J=0.0,K=0.0,L=0,M=0,N=0,P=0.0,Q=0.0;e=i;i=i+80|0;d=e+16|0;h=e;j=b+28|0;l=c[j>>2]|0;m=c[f+64>>2]|0;if((m&4|0)!=0&(l|0)>0){n=c[b+36>>2]|0;o=c[b+76>>2]|0;if(!(m&16)){m=0;do{p=c[n+(m*152|0)+132>>2]|0;c[p+120>>2]=c[n+(m*152|0)+100>>2];c[p+124>>2]=c[o+((c[n+(m*152|0)+140>>2]|0)*152|0)+100>>2];m=m+1|0}while((m|0)!=(l|0));}else{m=0;do{p=c[n+(m*152|0)+132>>2]|0;c[p+120>>2]=c[n+(m*152|0)+100>>2];q=c[n+(m*152|0)+140>>2]|0;c[p+124>>2]=c[o+(q*152|0)+100>>2];c[p+128>>2]=c[o+((q+1|0)*152|0)+100>>2];m=m+1|0}while((m|0)!=(l|0));}}l=b+48|0;m=c[l>>2]|0;if((m|0)>0){o=b+56|0;n=f+12|0;q=0;do{p=c[o>>2]|0;r=c[p+(q*152|0)+132>>2]|0;s=c[r+44>>2]|0;t=p+(q*152|0)+100|0;if(s){u=+g[t>>2];v=r+28|0;w=c[v>>2]|0;x=1.0/+g[n>>2];y=u*+g[p+(q*152|0)+20>>2]*+g[w+376>>2]*x;z=u*+g[p+(q*152|0)+24>>2]*+g[w+380>>2]*x;g[s>>2]=+g[p+(q*152|0)+16>>2]*u*+g[w+372>>2]*x+ +g[s>>2];w=s+4|0;g[w>>2]=y+ +g[w>>2];w=s+8|0;g[w>>2]=z+ +g[w>>2];z=+g[t>>2];w=r+32|0;A=c[w>>2]|0;y=1.0/+g[n>>2];x=z*+g[p+(q*152|0)+52>>2]*+g[A+376>>2]*y;u=z*+g[p+(q*152|0)+56>>2]*+g[A+380>>2]*y;B=s+32|0;g[B>>2]=+g[p+(q*152|0)+48>>2]*z*+g[A+372>>2]*y+ +g[B>>2];B=s+36|0;g[B>>2]=x+ +g[B>>2];B=s+40|0;g[B>>2]=u+ +g[B>>2];B=c[v>>2]|0;u=+g[t>>2];x=1.0/+g[n>>2];y=+g[p+(q*152|0)+4>>2]*+g[B+572>>2]*u*x;z=u*(+g[p+(q*152|0)+8>>2]*+g[B+576>>2])*x;v=s+16|0;g[v>>2]=+g[p+(q*152|0)>>2]*+g[B+568>>2]*u*x+ +g[v>>2];v=s+20|0;g[v>>2]=y+ +g[v>>2];v=s+24|0;g[v>>2]=z+ +g[v>>2];v=c[w>>2]|0;z=+g[t>>2];y=1.0/+g[n>>2];x=+g[p+(q*152|0)+36>>2]*+g[v+572>>2]*z*y;u=z*(+g[p+(q*152|0)+40>>2]*+g[v+576>>2])*y;w=s+48|0;g[w>>2]=+g[p+(q*152|0)+32>>2]*+g[v+568>>2]*z*y+ +g[w>>2];w=s+52|0;g[w>>2]=x+ +g[w>>2];w=s+56|0;g[w>>2]=u+ +g[w>>2]}w=c[t>>2]|0;c[r+36>>2]=w;u=+O(+(c[k>>2]=w,+g[k>>2]));if(u>=+g[r+16>>2])a[r+20>>0]=0;q=q+1|0}while((q|0)!=(m|0));}m=b+8|0;q=c[m>>2]|0;if((q|0)>0){n=b+16|0;o=f+44|0;r=f+12|0;w=f+52|0;f=h+4|0;t=h+8|0;s=h+12|0;v=d+16|0;p=d+32|0;B=d+48|0;A=q;q=0;while(1){C=c[n>>2]|0;D=C+(q*244|0)|0;E=c[C+(q*244|0)+240>>2]|0;if(!E)F=A;else{if(!(c[o>>2]|0)){G=C+(q*244|0)+176|0;u=+g[C+(q*244|0)+64>>2]+ +g[G>>2];g[G>>2]=u;G=C+(q*244|0)+180|0;x=+g[C+(q*244|0)+68>>2]+ +g[G>>2];g[G>>2]=x;G=C+(q*244|0)+184|0;y=+g[C+(q*244|0)+72>>2]+ +g[G>>2];g[G>>2]=y;G=C+(q*244|0)+192|0;g[G>>2]=+g[C+(q*244|0)+80>>2]+ +g[G>>2];G=C+(q*244|0)+196|0;g[G>>2]=+g[C+(q*244|0)+84>>2]+ +g[G>>2];G=C+(q*244|0)+200|0;g[G>>2]=+g[C+(q*244|0)+88>>2]+ +g[G>>2];H=C;I=u;J=x;K=y;L=E}else{y=+g[r>>2];x=+g[w>>2];G=C+(q*244|0)+176|0;g[G>>2]=+g[C+(q*244|0)+64>>2]+ +g[G>>2];G=C+(q*244|0)+180|0;g[G>>2]=+g[C+(q*244|0)+68>>2]+ +g[G>>2];G=C+(q*244|0)+184|0;g[G>>2]=+g[C+(q*244|0)+72>>2]+ +g[G>>2];G=C+(q*244|0)+192|0;g[G>>2]=+g[C+(q*244|0)+80>>2]+ +g[G>>2];G=C+(q*244|0)+196|0;g[G>>2]=+g[C+(q*244|0)+84>>2]+ +g[G>>2];G=C+(q*244|0)+200|0;g[G>>2]=+g[C+(q*244|0)+88>>2]+ +g[G>>2];u=+g[C+(q*244|0)+144>>2];z=+g[C+(q*244|0)+148>>2];if((((!(u!=0.0|z!=0.0)?!(+g[C+(q*244|0)+152>>2]!=0.0):0)?!(+g[C+(q*244|0)+160>>2]!=0.0):0)?!(+g[C+(q*244|0)+164>>2]!=0.0):0)?!(+g[C+(q*244|0)+168>>2]!=0.0):0){M=C;N=E}else{P=+g[C+(q*244|0)+164>>2]*x;Q=+g[C+(q*244|0)+168>>2]*x;g[h>>2]=+g[C+(q*244|0)+160>>2]*x;g[f>>2]=P;g[t>>2]=Q;g[s>>2]=0.0;Pf(D,u,z,+g[C+(q*244|0)+152>>2],h,y,d);c[D>>2]=c[d>>2];c[D+4>>2]=c[d+4>>2];c[D+8>>2]=c[d+8>>2];c[D+12>>2]=c[d+12>>2];D=C+(q*244|0)+16|0;c[D>>2]=c[v>>2];c[D+4>>2]=c[v+4>>2];c[D+8>>2]=c[v+8>>2];c[D+12>>2]=c[v+12>>2];D=C+(q*244|0)+32|0;c[D>>2]=c[p>>2];c[D+4>>2]=c[p+4>>2];c[D+8>>2]=c[p+8>>2];c[D+12>>2]=c[p+12>>2];D=C+(q*244|0)+48|0;c[D>>2]=c[B>>2];c[D+4>>2]=c[B+4>>2];c[D+8>>2]=c[B+8>>2];c[D+12>>2]=c[B+12>>2];D=c[n>>2]|0;M=D;N=c[D+(q*244|0)+240>>2]|0}H=M;I=+g[M+(q*244|0)+176>>2];J=+g[M+(q*244|0)+180>>2];K=+g[M+(q*244|0)+184>>2];L=N}y=I+ +g[H+(q*244|0)+208>>2];z=J+ +g[H+(q*244|0)+212>>2];u=K+ +g[H+(q*244|0)+216>>2];D=L+284|0;c[D>>2]=(c[D>>2]|0)+1;g[L+336>>2]=y;g[L+340>>2]=z;g[L+344>>2]=u;g[L+348>>2]=0.0;D=c[n>>2]|0;C=c[D+(q*244|0)+240>>2]|0;u=+g[D+(q*244|0)+192>>2]+ +g[D+(q*244|0)+224>>2];z=+g[D+(q*244|0)+196>>2]+ +g[D+(q*244|0)+228>>2];y=+g[D+(q*244|0)+200>>2]+ +g[D+(q*244|0)+232>>2];D=C+284|0;c[D>>2]=(c[D>>2]|0)+1;g[C+352>>2]=u;g[C+356>>2]=z;g[C+360>>2]=y;g[C+364>>2]=0.0;if(c[o>>2]|0){C=c[n>>2]|0;D=c[C+(q*244|0)+240>>2]|0;E=C+(q*244|0)|0;G=D+284|0;c[G>>2]=(c[G>>2]|0)+1;G=D+4|0;c[G>>2]=c[E>>2];c[G+4>>2]=c[E+4>>2];c[G+8>>2]=c[E+8>>2];c[G+12>>2]=c[E+12>>2];E=D+20|0;G=C+(q*244|0)+16|0;c[E>>2]=c[G>>2];c[E+4>>2]=c[G+4>>2];c[E+8>>2]=c[G+8>>2];c[E+12>>2]=c[G+12>>2];G=D+36|0;E=C+(q*244|0)+32|0;c[G>>2]=c[E>>2];c[G+4>>2]=c[E+4>>2];c[G+8>>2]=c[E+8>>2];c[G+12>>2]=c[E+12>>2];E=D+52|0;D=C+(q*244|0)+48|0;c[E>>2]=c[D>>2];c[E+4>>2]=c[D+4>>2];c[E+8>>2]=c[D+8>>2];c[E+12>>2]=c[D+12>>2]}c[(c[(c[n>>2]|0)+(q*244|0)+240>>2]|0)+212>>2]=-1;F=c[m>>2]|0}q=q+1|0;if((q|0)>=(F|0))break;else A=F}}if((c[j>>2]|0)<0?(F=b+32|0,(c[F>>2]|0)<0):0){A=b+36|0;q=c[A>>2]|0;n=b+40|0;if(q){if(a[n>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[q+-4>>2]|0);}c[A>>2]=0}a[n>>0]=1;c[A>>2]=0;c[F>>2]=0}c[j>>2]=0;if((c[l>>2]|0)<0?(j=b+52|0,(c[j>>2]|0)<0):0){F=b+56|0;A=c[F>>2]|0;n=b+60|0;if(A){if(a[n>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[A+-4>>2]|0);}c[F>>2]=0}a[n>>0]=1;c[F>>2]=0;c[j>>2]=0}c[l>>2]=0;l=b+68|0;if((c[l>>2]|0)<0?(j=b+72|0,(c[j>>2]|0)<0):0){F=b+76|0;n=c[F>>2]|0;A=b+80|0;if(n){if(a[A>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[n+-4>>2]|0);}c[F>>2]=0}a[A>>0]=1;c[F>>2]=0;c[j>>2]=0}c[l>>2]=0;l=b+88|0;if((c[l>>2]|0)<0?(j=b+92|0,(c[j>>2]|0)<0):0){F=b+96|0;A=c[F>>2]|0;n=b+100|0;if(A){if(a[n>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[A+-4>>2]|0);}c[F>>2]=0}a[n>>0]=1;c[F>>2]=0;c[j>>2]=0}c[l>>2]=0;if((c[m>>2]|0)>=0){c[m>>2]=0;i=e;return 0.0}l=b+12|0;if((c[l>>2]|0)>=0){c[m>>2]=0;i=e;return 0.0}j=b+16|0;F=c[j>>2]|0;n=b+20|0;if(F){if(a[n>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[F+-4>>2]|0);}c[j>>2]=0}a[n>>0]=1;c[j>>2]=0;c[l>>2]=0;c[m>>2]=0;i=e;return 0.0}function Ug(a,b,d,e,f,g,h,i,j,k){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;+ic[c[(c[a>>2]|0)+44>>2]&3](a,b,d,e,f,g,h,i,j);+ic[c[(c[a>>2]|0)+48>>2]&3](a,b,d,e,f,g,h,i,j);+mc[c[(c[a>>2]|0)+36>>2]&1](a,b,d,i);return 0.0}function Vg(a){a=a|0;c[a+200>>2]=0;return}function Wg(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0.0,h=0.0,i=0,j=0.0,k=0,l=0.0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0.0,A=0.0,B=0.0,C=0.0,D=0.0;e=d+100|0;f=+g[e>>2];h=+g[d+16>>2];i=a+64|0;j=+g[d+20>>2];k=a+68|0;l=+g[d+24>>2];m=a+72|0;n=a+80|0;o=a+84|0;p=a+88|0;q=d+48|0;r=b+64|0;s=d+52|0;t=b+68|0;u=d+56|0;v=b+72|0;w=b+80|0;x=b+84|0;y=b+88|0;z=+g[d+108>>2];A=+g[d+112>>2]-f*+g[d+116>>2]-(h*+g[i>>2]+j*+g[k>>2]+l*+g[m>>2]+(+g[d>>2]*+g[n>>2]+ +g[d+4>>2]*+g[o>>2]+ +g[d+8>>2]*+g[p>>2]))*z-z*(+g[q>>2]*+g[r>>2]+ +g[s>>2]*+g[t>>2]+ +g[u>>2]*+g[v>>2]+(+g[d+32>>2]*+g[w>>2]+ +g[d+36>>2]*+g[x>>2]+ +g[d+40>>2]*+g[y>>2]));z=f+A;B=+g[d+120>>2];do if(!(z<B)){C=+g[d+124>>2];if(z>C){g[e>>2]=C;D=C-f;break}else{g[e>>2]=z;D=A;break}}else{g[e>>2]=B;D=B-f}while(0);if(c[a+240>>2]|0){f=D*(j*+g[a+132>>2])*+g[a+116>>2];j=D*(l*+g[a+136>>2])*+g[a+120>>2];g[i>>2]=+g[a+112>>2]*(D*(h*+g[a+128>>2]))+ +g[i>>2];g[k>>2]=f+ +g[k>>2];g[m>>2]=j+ +g[m>>2];j=D*+g[a+100>>2]*+g[d+68>>2];f=D*+g[a+104>>2]*+g[d+72>>2];g[n>>2]=D*+g[a+96>>2]*+g[d+64>>2]+ +g[n>>2];g[o>>2]=j+ +g[o>>2];g[p>>2]=f+ +g[p>>2]}if(!(c[b+240>>2]|0))return +D;f=D*(+g[s>>2]*+g[b+132>>2])*+g[b+116>>2];j=D*(+g[u>>2]*+g[b+136>>2])*+g[b+120>>2];g[r>>2]=+g[b+112>>2]*(D*(+g[q>>2]*+g[b+128>>2]))+ +g[r>>2];g[t>>2]=f+ +g[t>>2];g[v>>2]=j+ +g[v>>2];j=D*+g[b+100>>2]*+g[d+84>>2];f=D*+g[b+104>>2]*+g[d+88>>2];g[w>>2]=D*+g[b+96>>2]*+g[d+80>>2]+ +g[w>>2];g[x>>2]=j+ +g[x>>2];g[y>>2]=f+ +g[y>>2];return +D}function Xg(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0.0,h=0.0,i=0,j=0.0,k=0,l=0.0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0.0,A=0.0,B=0.0,C=0,D=0.0;e=d+100|0;f=+g[e>>2];h=+g[d+16>>2];i=a+64|0;j=+g[d+20>>2];k=a+68|0;l=+g[d+24>>2];m=a+72|0;n=a+80|0;o=a+84|0;p=a+88|0;q=d+48|0;r=b+64|0;s=d+52|0;t=b+68|0;u=d+56|0;v=b+72|0;w=b+80|0;x=b+84|0;y=b+88|0;z=+g[d+108>>2];A=+g[d+112>>2]-f*+g[d+116>>2]-(h*+g[i>>2]+j*+g[k>>2]+l*+g[m>>2]+(+g[d>>2]*+g[n>>2]+ +g[d+4>>2]*+g[o>>2]+ +g[d+8>>2]*+g[p>>2]))*z-z*(+g[q>>2]*+g[r>>2]+ +g[s>>2]*+g[t>>2]+ +g[u>>2]*+g[v>>2]+(+g[d+32>>2]*+g[w>>2]+ +g[d+36>>2]*+g[x>>2]+ +g[d+40>>2]*+g[y>>2]));z=f+A;B=+g[d+120>>2];C=z<B;D=C?B-f:A;g[e>>2]=C?B:z;if(c[a+240>>2]|0){z=D*(j*+g[a+132>>2])*+g[a+116>>2];j=D*(l*+g[a+136>>2])*+g[a+120>>2];g[i>>2]=+g[a+112>>2]*(D*(h*+g[a+128>>2]))+ +g[i>>2];g[k>>2]=z+ +g[k>>2];g[m>>2]=j+ +g[m>>2];j=D*+g[a+100>>2]*+g[d+68>>2];z=D*+g[a+104>>2]*+g[d+72>>2];g[n>>2]=D*+g[a+96>>2]*+g[d+64>>2]+ +g[n>>2];g[o>>2]=j+ +g[o>>2];g[p>>2]=z+ +g[p>>2]}if(!(c[b+240>>2]|0))return +D;z=D*(+g[s>>2]*+g[b+132>>2])*+g[b+116>>2];j=D*(+g[u>>2]*+g[b+136>>2])*+g[b+120>>2];g[r>>2]=+g[b+112>>2]*(D*(+g[q>>2]*+g[b+128>>2]))+ +g[r>>2];g[t>>2]=z+ +g[t>>2];g[v>>2]=j+ +g[v>>2];j=D*+g[b+100>>2]*+g[d+84>>2];z=D*+g[b+104>>2]*+g[d+88>>2];g[w>>2]=D*+g[b+96>>2]*+g[d+80>>2]+ +g[w>>2];g[x>>2]=j+ +g[x>>2];g[y>>2]=z+ +g[y>>2];return +D}function Yg(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;e=b+4|0;f=c[e>>2]|0;g=b+8|0;if((f|0)==(c[g>>2]|0)?(h=(f|0)!=0?f<<1:1,(f|0)<(h|0)):0){if(!h){i=0;j=f}else{c[3708]=(c[3708]|0)+1;k=ws((h*244|3)+16|0)|0;if(!k)l=0;else{m=k+4+15&-16;c[m+-4>>2]=k;l=m}i=l;j=c[e>>2]|0}l=b+12|0;if((j|0)>0){m=0;do{k=i+(m*244|0)|0;n=c[l>>2]|0;o=n+(m*244|0)|0;c[k>>2]=c[o>>2];c[k+4>>2]=c[o+4>>2];c[k+8>>2]=c[o+8>>2];c[k+12>>2]=c[o+12>>2];o=i+(m*244|0)+16|0;k=n+(m*244|0)+16|0;c[o>>2]=c[k>>2];c[o+4>>2]=c[k+4>>2];c[o+8>>2]=c[k+8>>2];c[o+12>>2]=c[k+12>>2];k=i+(m*244|0)+32|0;o=n+(m*244|0)+32|0;c[k>>2]=c[o>>2];c[k+4>>2]=c[o+4>>2];c[k+8>>2]=c[o+8>>2];c[k+12>>2]=c[o+12>>2];o=i+(m*244|0)+48|0;k=n+(m*244|0)+48|0;c[o>>2]=c[k>>2];c[o+4>>2]=c[k+4>>2];c[o+8>>2]=c[k+8>>2];c[o+12>>2]=c[k+12>>2];Gs(i+(m*244|0)+64|0,n+(m*244|0)+64|0,180)|0;m=m+1|0}while((m|0)!=(j|0));}j=c[l>>2]|0;m=b+16|0;if(j){if(a[m>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[j+-4>>2]|0);}c[l>>2]=0}a[m>>0]=1;c[l>>2]=i;c[g>>2]=h;p=c[e>>2]|0}else p=f;c[e>>2]=p+1;p=b+12|0;b=c[p>>2]|0;e=b+(f*244|0)|0;c[e>>2]=c[d>>2];c[e+4>>2]=c[d+4>>2];c[e+8>>2]=c[d+8>>2];c[e+12>>2]=c[d+12>>2];e=b+(f*244|0)+16|0;h=d+16|0;c[e>>2]=c[h>>2];c[e+4>>2]=c[h+4>>2];c[e+8>>2]=c[h+8>>2];c[e+12>>2]=c[h+12>>2];h=b+(f*244|0)+32|0;e=d+32|0;c[h>>2]=c[e>>2];c[h+4>>2]=c[e+4>>2];c[h+8>>2]=c[e+8>>2];c[h+12>>2]=c[e+12>>2];e=b+(f*244|0)+48|0;h=d+48|0;c[e>>2]=c[h>>2];c[e+4>>2]=c[h+4>>2];c[e+8>>2]=c[h+8>>2];c[e+12>>2]=c[h+12>>2];Gs(b+(f*244|0)+64|0,d+64|0,180)|0;return (c[p>>2]|0)+(f*244|0)|0}function Zg(a,b,c){a=a|0;b=b|0;c=c|0;return}function _g(a,b,c){a=a|0;b=b|0;c=c|0;return}function $g(a){a=a|0;return 1}function ah(a,b,e){a=a|0;b=b|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;f=a+28|0;c[b>>2]=ec[c[(c[e>>2]|0)+28>>2]&31](e,c[f>>2]|0)|0;g=a+32|0;c[b+4>>2]=ec[c[(c[e>>2]|0)+28>>2]&31](e,c[g>>2]|0)|0;h=ec[c[(c[e>>2]|0)+40>>2]&31](e,a)|0;i=ec[c[(c[e>>2]|0)+28>>2]&31](e,h)|0;c[b+8>>2]=i;if(i)Mb[c[(c[e>>2]|0)+48>>2]&127](e,h);c[b+12>>2]=c[a+4>>2];c[b+24>>2]=d[a+21>>0];c[b+40>>2]=c[a+24>>2];c[b+44>>2]=c[a+16>>2];c[b+48>>2]=d[a+20>>0];c[b+20>>2]=c[a+12>>2];c[b+16>>2]=c[a+8>>2];c[b+28>>2]=c[a+36>>2];c[b+32>>2]=c[a+40>>2];h=b+36|0;c[h>>2]=0;b=c[f>>2]|0;if((c[b+512>>2]|0)>0){e=b;b=0;while(1){if((c[(c[e+520>>2]|0)+(b<<2)>>2]|0)==(a|0)){c[h>>2]=1;j=c[f>>2]|0}else j=e;b=b+1|0;if((b|0)>=(c[j+512>>2]|0))break;else e=j}}j=c[g>>2]|0;if((c[j+512>>2]|0)>0){k=j;l=0}else return 1784;while(1){if((c[(c[k+520>>2]|0)+(l<<2)>>2]|0)==(a|0)){c[h>>2]=1;m=c[g>>2]|0}else m=k;l=l+1|0;if((l|0)>=(c[m+512>>2]|0))break;else k=m}return 1784}function bh(b){b=b|0;var d=0,e=0,f=0,g=0,h=0;c[b>>2]=2512;d=b+512|0;e=b+520|0;f=c[e>>2]|0;g=b+524|0;if(f){if(a[g>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[f+-4>>2]|0);}c[e>>2]=0}a[g>>0]=1;c[e>>2]=0;c[d>>2]=0;c[b+516>>2]=0;c[b>>2]=4680;d=b+268|0;e=b+276|0;g=c[e>>2]|0;f=b+280|0;if(!g){a[f>>0]=1;c[e>>2]=0;c[d>>2]=0;h=b+272|0;c[h>>2]=0;return}if(a[f>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[g+-4>>2]|0);}c[e>>2]=0;a[f>>0]=1;c[e>>2]=0;c[d>>2]=0;h=b+272|0;c[h>>2]=0;return}function ch(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|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;a[b+20>>0]=1;c[b+16>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;c[b+24>>2]=d;g[b+28>>2]=0.0;c[b+32>>2]=0;c[b+36>>2]=1;g[b+40>>2]=1.0;a[b+44>>0]=1;c[b+48>>2]=0;a[b+52>>0]=0;a[b+53>>0]=1;a[b+54>>0]=1;g[b+56>>2]=.03999999910593033;a[b+60>>0]=0;g[b+64>>2]=0.0;c[b+68>>2]=e;c[b+72>>2]=0;a[b+76>>0]=1;c[b+80>>2]=0;c[b+84>>2]=0;c[b+88>>2]=0;g[b+92>>2]=.6000000238418579;g[b+96>>2]=1.0;g[b+100>>2]=.30000001192092896;g[b+104>>2]=.01666666753590107;g[b+108>>2]=0.0;g[b+116>>2]=20.0;c[b+112>>2]=10;g[b+124>>2]=.20000000298023224;g[b+128>>2]=.800000011920929;g[b+132>>2]=0.0;g[b+120>>2]=1.0;c[b+136>>2]=1;g[b+140>>2]=-.03999999910593033;g[b+144>>2]=.10000000149011612;g[b+148>>2]=0.0;g[b+152>>2]=.8500000238418579;c[b+156>>2]=260;c[b+160>>2]=2;c[b+164>>2]=128;g[b+168>>2]=100.0;g[b+172>>2]=1000000015047466219876688.0e6;c[b>>2]=1824;a[b+192>>0]=1;c[b+188>>2]=0;c[b+180>>2]=0;c[b+184>>2]=0;e=b+196|0;c[e>>2]=0;h=b+200|0;c[h>>2]=f;a[b+224>>0]=1;c[b+220>>2]=0;c[b+212>>2]=0;c[b+216>>2]=0;a[b+244>>0]=1;c[b+240>>2]=0;c[b+232>>2]=0;c[b+236>>2]=0;c[b+248>>2]=0;c[b+252>>2]=-1054867456;i=b+256|0;a[b+274>>0]=0;a[b+275>>0]=0;c[i>>2]=0;c[i+4>>2]=0;c[i+8>>2]=0;c[i+12>>2]=0;a[b+292>>0]=1;c[b+288>>2]=0;c[b+280>>2]=0;c[b+284>>2]=0;c[b+296>>2]=0;a[b+300>>0]=1;a[b+320>>0]=1;c[b+316>>2]=0;c[b+308>>2]=0;c[b+312>>2]=0;if(!f){c[3708]=(c[3708]|0)+1;f=ws(223)|0;if(!f)j=0;else{i=f+4+15&-16;c[i+-4>>2]=f;j=i}c[j>>2]=1640;a[j+20>>0]=1;c[j+16>>2]=0;c[j+8>>2]=0;c[j+12>>2]=0;a[j+40>>0]=1;c[j+36>>2]=0;c[j+28>>2]=0;c[j+32>>2]=0;a[j+60>>0]=1;c[j+56>>2]=0;c[j+48>>2]=0;c[j+52>>2]=0;a[j+80>>0]=1;c[j+76>>2]=0;c[j+68>>2]=0;c[j+72>>2]=0;a[j+100>>0]=1;c[j+96>>2]=0;c[j+88>>2]=0;c[j+92>>2]=0;a[j+120>>0]=1;c[j+116>>2]=0;c[j+108>>2]=0;c[j+112>>2]=0;a[j+140>>0]=1;c[j+136>>2]=0;c[j+128>>2]=0;c[j+132>>2]=0;a[j+160>>0]=1;c[j+156>>2]=0;c[j+148>>2]=0;c[j+152>>2]=0;a[j+180>>0]=1;c[j+176>>2]=0;c[j+168>>2]=0;c[j+172>>2]=0;c[j+192>>2]=12;c[j+196>>2]=13;c[j+200>>2]=0;c[h>>2]=j;a[b+273>>0]=1}else a[b+273>>0]=0;c[3708]=(c[3708]|0)+1;j=ws(87)|0;if(!j)k=0;else{i=j+4+15&-16;c[i+-4>>2]=j;k=i}c[k>>2]=8296;a[k+20>>0]=1;c[k+16>>2]=0;c[k+8>>2]=0;c[k+12>>2]=0;a[k+40>>0]=1;c[k+36>>2]=0;c[k+28>>2]=0;c[k+32>>2]=0;a[k+60>>0]=1;c[k+56>>2]=0;c[k+48>>2]=0;c[k+52>>2]=0;a[k+64>>0]=1;c[b+204>>2]=k;a[b+272>>0]=1;c[3708]=(c[3708]|0)+1;b=ws(107)|0;if(!b){l=0;m=c[h>>2]|0;c[l>>2]=2072;n=l+4|0;c[n>>2]=0;o=l+8|0;c[o>>2]=m;p=l+12|0;c[p>>2]=0;q=l+16|0;c[q>>2]=0;r=l+20|0;c[r>>2]=0;s=l+24|0;c[s>>2]=d;t=l+44|0;a[t>>0]=1;u=l+40|0;c[u>>2]=0;v=l+32|0;c[v>>2]=0;w=l+36|0;c[w>>2]=0;x=l+64|0;a[x>>0]=1;y=l+60|0;c[y>>2]=0;z=l+52|0;c[z>>2]=0;A=l+56|0;c[A>>2]=0;B=l+84|0;a[B>>0]=1;C=l+80|0;c[C>>2]=0;D=l+72|0;c[D>>2]=0;E=l+76|0;c[E>>2]=0;c[e>>2]=l;return}k=b+4+15&-16;c[k+-4>>2]=b;l=k;m=c[h>>2]|0;c[l>>2]=2072;n=l+4|0;c[n>>2]=0;o=l+8|0;c[o>>2]=m;p=l+12|0;c[p>>2]=0;q=l+16|0;c[q>>2]=0;r=l+20|0;c[r>>2]=0;s=l+24|0;c[s>>2]=d;t=l+44|0;a[t>>0]=1;u=l+40|0;c[u>>2]=0;v=l+32|0;c[v>>2]=0;w=l+36|0;c[w>>2]=0;x=l+64|0;a[x>>0]=1;y=l+60|0;c[y>>2]=0;z=l+52|0;c[z>>2]=0;A=l+56|0;c[A>>2]=0;B=l+84|0;a[B>>0]=1;C=l+80|0;c[C>>2]=0;D=l+72|0;c[D>>2]=0;E=l+76|0;c[E>>2]=0;c[e>>2]=l;return}function dh(b){b=b|0;var d=0,e=0,f=0,g=0,h=0;c[b>>2]=1824;if((a[b+272>>0]|0)!=0?(d=b+204|0,e=c[d>>2]|0,Kb[c[c[e>>2]>>2]&255](e),e=c[d>>2]|0,(e|0)!=0):0){c[3710]=(c[3710]|0)+1;xs(c[e+-4>>2]|0);}e=b+196|0;d=c[e>>2]|0;if((d|0)!=0?(Kb[c[c[d>>2]>>2]&255](d),d=c[e>>2]|0,(d|0)!=0):0){c[3710]=(c[3710]|0)+1;xs(c[d+-4>>2]|0);}if((a[b+273>>0]|0)!=0?(d=b+200|0,e=c[d>>2]|0,Kb[c[c[e>>2]>>2]&255](e),e=c[d>>2]|0,(e|0)!=0):0){c[3710]=(c[3710]|0)+1;xs(c[e+-4>>2]|0);}e=b+308|0;d=b+316|0;f=c[d>>2]|0;g=b+320|0;if(f){if(a[g>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[f+-4>>2]|0);}c[d>>2]=0}a[g>>0]=1;c[d>>2]=0;c[e>>2]=0;c[b+312>>2]=0;e=b+280|0;d=b+288|0;g=c[d>>2]|0;f=b+292|0;if(g){if(a[f>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[g+-4>>2]|0);}c[d>>2]=0}a[f>>0]=1;c[d>>2]=0;c[e>>2]=0;c[b+284>>2]=0;e=b+232|0;d=b+240|0;f=c[d>>2]|0;g=b+244|0;if(f){if(a[g>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[f+-4>>2]|0);}c[d>>2]=0}a[g>>0]=1;c[d>>2]=0;c[e>>2]=0;c[b+236>>2]=0;e=b+212|0;d=b+220|0;g=c[d>>2]|0;f=b+224|0;if(g){if(a[f>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[g+-4>>2]|0);}c[d>>2]=0}a[f>>0]=1;c[d>>2]=0;c[e>>2]=0;c[b+216>>2]=0;e=b+180|0;d=b+188|0;f=c[d>>2]|0;g=b+192|0;if(!f){a[g>>0]=1;c[d>>2]=0;c[e>>2]=0;h=b+184|0;c[h>>2]=0;Uj(b);return}if(a[g>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[f+-4>>2]|0);}c[d>>2]=0;a[g>>0]=1;c[d>>2]=0;c[e>>2]=0;h=b+184|0;c[h>>2]=0;Uj(b);return}function eh(a){a=a|0;dh(a);if(!a)return;c[3710]=(c[3710]|0)+1;xs(c[a+-4>>2]|0);return}function fh(a,b){a=a|0;b=+b;var d=0,e=0,f=0,h=0,j=0,k=0,l=0.0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0.0,v=0.0,w=0,x=0;d=i;i=i+32|0;e=d+8|0;f=d;h=a+8|0;j=c[h>>2]|0;if((j|0)<=0){i=d;return}k=a+16|0;a=b!=0.0;l=1.0/b;m=e+4|0;n=e+8|0;o=j;j=0;while(1){p=c[(c[k>>2]|0)+(j<<2)>>2]|0;if((!((p|0)==0?1:(c[p+236>>2]&2|0)==0)?(c[p+216>>2]|0)!=2:0)?!((c[p+204>>2]&2|0)==0|a^1):0){q=c[p+504>>2]|0;if(!q)r=p+4|0;else{s=p+4|0;Mb[c[(c[q>>2]|0)+8>>2]&127](q,s);r=s}s=p+68|0;q=p+336|0;t=p+352|0;b=(+g[p+56>>2]-+g[p+120>>2])*l;u=l*(+g[p+60>>2]-+g[p+124>>2]);g[q>>2]=(+g[p+52>>2]-+g[p+116>>2])*l;g[p+340>>2]=b;g[p+344>>2]=u;g[p+348>>2]=0.0;Qf(s,r,e,f);u=+g[f>>2];b=l*(u*+g[m>>2]);v=l*(u*+g[n>>2]);g[t>>2]=l*(+g[e>>2]*u);g[p+356>>2]=b;g[p+360>>2]=v;g[p+364>>2]=0.0;w=p+132|0;c[w>>2]=c[q>>2];c[w+4>>2]=c[q+4>>2];c[w+8>>2]=c[q+8>>2];c[w+12>>2]=c[q+12>>2];q=p+148|0;c[q>>2]=c[t>>2];c[q+4>>2]=c[t+4>>2];c[q+8>>2]=c[t+8>>2];c[q+12>>2]=c[t+12>>2];c[s>>2]=c[r>>2];c[s+4>>2]=c[r+4>>2];c[s+8>>2]=c[r+8>>2];c[s+12>>2]=c[r+12>>2];s=p+84|0;t=p+20|0;c[s>>2]=c[t>>2];c[s+4>>2]=c[t+4>>2];c[s+8>>2]=c[t+8>>2];c[s+12>>2]=c[t+12>>2];t=p+100|0;s=p+36|0;c[t>>2]=c[s>>2];c[t+4>>2]=c[s+4>>2];c[t+8>>2]=c[s+8>>2];c[t+12>>2]=c[s+12>>2];s=p+116|0;t=p+52|0;c[s>>2]=c[t>>2];c[s+4>>2]=c[t+4>>2];c[s+8>>2]=c[t+8>>2];c[s+12>>2]=c[t+12>>2];x=c[h>>2]|0}else x=o;j=j+1|0;if((j|0)>=(x|0))break;else o=x}i=d;return}function gh(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;ek(a);if(((Ob[c[(c[a>>2]|0)+20>>2]&127](a)|0)!=0?(b=Ob[c[(c[a>>2]|0)+20>>2]&127](a)|0,((Ob[c[(c[b>>2]|0)+48>>2]&127](b)|0)&6144|0)!=0):0)?(b=Ob[c[(c[a>>2]|0)+104>>2]&127](a)|0,(b|0)>0):0){d=b;do{b=d;d=d+-1|0;e=ec[c[(c[a>>2]|0)+108>>2]&31](a,d)|0;Mb[c[(c[a>>2]|0)+168>>2]&127](a,e);}while((b|0)>1);}if(((((Ob[c[(c[a>>2]|0)+20>>2]&127](a)|0)!=0?(d=Ob[c[(c[a>>2]|0)+20>>2]&127](a)|0,((Ob[c[(c[d>>2]|0)+48>>2]&127](d)|0)&16387|0)!=0):0)?(Ob[c[(c[a>>2]|0)+20>>2]&127](a)|0)!=0:0)?(d=Ob[c[(c[a>>2]|0)+20>>2]&127](a)|0,(Ob[c[(c[d>>2]|0)+48>>2]&127](d)|0)!=0):0)?(d=a+280|0,(c[d>>2]|0)>0):0){b=a+288|0;e=a+72|0;f=0;do{g=c[(c[b>>2]|0)+(f<<2)>>2]|0;Mb[c[(c[g>>2]|0)+12>>2]&127](g,c[e>>2]|0);f=f+1|0}while((f|0)<(c[d>>2]|0));}if(!(Ob[c[(c[a>>2]|0)+20>>2]&127](a)|0))return;d=Ob[c[(c[a>>2]|0)+20>>2]&127](a)|0;Kb[c[(c[d>>2]|0)+92>>2]&255](d);return}function hh(a){a=a|0;var b=0,d=0,e=0;b=a+232|0;if((c[b>>2]|0)<=0)return;d=a+240|0;a=0;do{e=(c[(c[d>>2]|0)+(a<<2)>>2]|0)+436|0;c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;c[e+12>>2]=0;c[e+16>>2]=0;c[e+20>>2]=0;c[e+24>>2]=0;c[e+28>>2]=0;a=a+1|0}while((a|0)<(c[b>>2]|0));return}function ih(a){a=a|0;var b=0,d=0,e=0,f=0,h=0.0,i=0.0;b=c[a+232>>2]|0;if((b|0)<=0)return;d=c[a+240>>2]|0;a=0;do{e=c[d+(a<<2)>>2]|0;f=c[e+216>>2]|0;if(!((f|0)==2|(f|0)==5)?(c[e+204>>2]&3|0)==0:0){h=+g[e+392>>2]*+g[e+376>>2];i=+g[e+396>>2]*+g[e+380>>2];f=e+436|0;g[f>>2]=+g[e+388>>2]*+g[e+372>>2]+ +g[f>>2];f=e+440|0;g[f>>2]=h+ +g[f>>2];f=e+444|0;g[f>>2]=i+ +g[f>>2]}a=a+1|0}while((a|0)!=(b|0));return}function jh(b){b=b|0;var d=0,e=0,f=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0.0,t=0.0,u=0,v=0.0,w=0;d=i;i=i+64|0;e=d;if(!(a[b+274>>0]|0)){f=b+232|0;h=c[f>>2]|0;if((h|0)<=0){i=d;return}j=b+240|0;k=b+300|0;l=b+264|0;m=b+268|0;n=h;h=0;while(1){o=c[(c[j>>2]|0)+(h<<2)>>2]|0;p=c[o+216>>2]|0;if((!((p|0)==2|(p|0)==5)?(p=o+504|0,(c[p>>2]|0)!=0):0)?(c[o+204>>2]&3|0)==0:0){q=o+68|0;r=o+148|0;if((a[k>>0]|0)!=0?(s=+g[m>>2],s!=0.0):0)t=+g[l>>2]-s;else t=+g[l>>2]*+g[o+248>>2];Pf(q,+g[o+132>>2],+g[o+136>>2],+g[o+140>>2],r,t,e);r=c[p>>2]|0;Mb[c[(c[r>>2]|0)+12>>2]&127](r,e);u=c[f>>2]|0}else u=n;h=h+1|0;if((h|0)>=(u|0))break;else n=u}i=d;return}else{u=b+8|0;n=c[u>>2]|0;if((n|0)<=0){i=d;return}h=b+16|0;f=b+300|0;l=b+264|0;m=b+268|0;b=n;n=0;while(1){k=c[(c[h>>2]|0)+(n<<2)>>2]|0;if((!((k|0)==0?1:(c[k+236>>2]&2|0)==0)?(j=k+504|0,(c[j>>2]|0)!=0):0)?(c[k+204>>2]&3|0)==0:0){r=k+68|0;p=k+148|0;if((a[f>>0]|0)!=0?(t=+g[m>>2],t!=0.0):0)v=+g[l>>2]-t;else v=+g[l>>2]*+g[k+248>>2];Pf(r,+g[k+132>>2],+g[k+136>>2],+g[k+140>>2],p,v,e);p=c[j>>2]|0;Mb[c[(c[p>>2]|0)+12>>2]&127](p,e);w=c[u>>2]|0}else w=b;n=n+1|0;if((n|0)>=(w|0))break;else b=w}i=d;return}}function kh(b,d,e,f){b=b|0;d=+d;e=e|0;f=+f;var h=0,i=0.0,j=0,k=0.0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;if(e){g[b+268>>2]=f;h=b+264|0;i=+g[h>>2]+d;g[h>>2]=i;if(!(i>=f)){j=e;k=f;l=0}else{m=~~(i/f);g[h>>2]=i-+(m|0)*f;j=e;k=f;l=m}}else{g[b+264>>2]=(a[b+300>>0]|0)!=0?0.0:d;g[b+268>>2]=0.0;m=!(+O(+d)<1.1920928955078125e-07)&1;j=m;k=d;l=m}if(Ob[c[(c[b>>2]|0)+20>>2]&127](b)|0){m=Ob[c[(c[b>>2]|0)+20>>2]&127](b)|0;a[2496]=(Ob[c[(c[m>>2]|0)+48>>2]&127](m)|0)>>>4&1}if(!l){Kb[c[(c[b>>2]|0)+80>>2]&255](b);n=b;o=c[n>>2]|0;p=o+120|0;q=c[p>>2]|0;Kb[q&255](b);return l|0}m=(l|0)>(j|0)?j:l;Jb[c[(c[b>>2]|0)+164>>2]&31](b,k*+(m|0));Kb[c[(c[b>>2]|0)+172>>2]&255](b);if((m|0)>0)r=0;else{n=b;o=c[n>>2]|0;p=o+120|0;q=c[p>>2]|0;Kb[q&255](b);return l|0}do{Jb[c[(c[b>>2]|0)+160>>2]&31](b,k);Kb[c[(c[b>>2]|0)+80>>2]&255](b);r=r+1|0}while((r|0)!=(m|0));n=b;o=c[n>>2]|0;p=o+120|0;q=c[p>>2]|0;Kb[q&255](b);return l|0}function lh(d,e){d=d|0;e=+e;var f=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0.0,oa=0.0,pa=0.0,qa=0,ra=0.0,sa=0.0,ta=0,ua=0.0,va=0.0,wa=0.0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0,Fa=0,Ga=0,Ha=0,Ia=0.0,Ja=0.0,Ka=0.0,La=0.0,Ma=0.0,Na=0.0,Oa=0.0,Pa=0.0,Qa=0.0,Ra=0.0,Sa=0.0;f=i;i=i+464|0;h=f+400|0;j=f+304|0;k=f+248|0;l=f+184|0;m=f;n=c[d+84>>2]|0;if(n)Jb[n&31](d,e);Jb[c[(c[d>>2]|0)+140>>2]&31](d,e);g[d+28>>2]=e;c[d+32>>2]=0;c[d+48>>2]=Ob[c[(c[d>>2]|0)+20>>2]&127](d)|0;n=d+308|0;o=d+316|0;p=c[o>>2]|0;if((c[n>>2]|0)>0){q=d+24|0;r=p;s=0;while(1){t=c[q>>2]|0;Mb[c[(c[t>>2]|0)+16>>2]&127](t,c[r+(s<<2)>>2]|0);s=s+1|0;t=c[o>>2]|0;if((s|0)>=(c[n>>2]|0)){u=t;break}else r=t}}else u=p;p=d+320|0;if(u){if(a[p>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[u+-4>>2]|0);}c[o>>2]=0}a[p>>0]=1;c[o>>2]=0;c[n>>2]=0;u=d+312|0;c[u>>2]=0;r=d+232|0;if((c[r>>2]|0)>0){s=d+240|0;q=h+48|0;t=h+52|0;v=h+56|0;w=d+44|0;x=d+68|0;y=d+24|0;z=j+4|0;A=j+8|0;B=j+10|0;C=j+12|0;D=j+28|0;E=j+76|0;F=j+80|0;G=j+84|0;H=j+88|0;I=j+92|0;J=k+4|0;K=k+32|0;L=k+48|0;M=d+56|0;N=l+16|0;O=l+32|0;P=l+48|0;Q=j+44|0;R=j+48|0;S=j+52|0;T=m+16|0;U=m+20|0;V=m+24|0;W=m+28|0;X=m+64|0;Y=m+80|0;Z=m+84|0;_=m+88|0;$=m+92|0;aa=m+112|0;ba=m+116|0;ca=m+120|0;da=k+8|0;ea=k+12|0;fa=k+16|0;ga=k+20|0;ha=k+24|0;ia=k+28|0;ja=0;do{ka=c[(c[s>>2]|0)+(ja<<2)>>2]|0;g[ka+248>>2]=1.0;la=c[ka+216>>2]|0;if(((((!((la|0)==2|(la|0)==5)?(c[ka+204>>2]&3|0)==0:0)?(la=ka+4|0,Pf(la,+g[ka+336>>2],+g[ka+340>>2],+g[ka+344>>2],ka+352|0,e,h),ma=ka+52|0,na=+g[q>>2],oa=na-+g[ma>>2],pa=+g[t>>2],qa=ka+56|0,ra=pa-+g[qa>>2],sa=+g[v>>2],ta=ka+60|0,ua=sa-+g[ta>>2],(a[w>>0]|0)!=0):0)?(va=+g[ka+256>>2],wa=va*va,wa!=0.0?wa<oa*oa+ra*ra+ua*ua:0):0)?(c[(c[ka+192>>2]|0)+4>>2]|0)<20:0)?(c[502]=(c[502]|0)+1,xa=c[x>>2]|0,ya=Ob[c[(c[xa>>2]|0)+36>>2]&127](xa)|0,xa=c[y>>2]|0,g[z>>2]=1.0,b[A>>1]=1,b[B>>1]=-1,c[j>>2]=2096,c[C>>2]=c[ma>>2],c[C+4>>2]=c[ma+4>>2],c[C+8>>2]=c[ma+8>>2],c[C+12>>2]=c[ma+12>>2],c[D>>2]=c[q>>2],c[D+4>>2]=c[q+4>>2],c[D+8>>2]=c[q+8>>2],c[D+12>>2]=c[q+12>>2],c[E>>2]=0,c[j>>2]=2120,c[F>>2]=ka,c[H>>2]=ya,c[I>>2]=xa,xa=c[ka+252>>2]|0,c[da>>2]=0,c[ea>>2]=-1,c[fa>>2]=1065353216,c[ga>>2]=1065353216,c[ha>>2]=1065353216,g[ia>>2]=0.0,c[k>>2]=11048,c[J>>2]=8,c[K>>2]=xa,c[L>>2]=xa,c[G>>2]=c[M>>2],xa=c[ka+188>>2]|0,b[A>>1]=b[xa+4>>1]|0,b[B>>1]=b[xa+6>>1]|0,c[P>>2]=c[q>>2],c[P+4>>2]=c[q+4>>2],c[P+8>>2]=c[q+8>>2],c[P+12>>2]=c[q+12>>2],c[l>>2]=c[la>>2],c[l+4>>2]=c[la+4>>2],c[l+8>>2]=c[la+8>>2],c[l+12>>2]=c[la+12>>2],xa=ka+20|0,c[N>>2]=c[xa>>2],c[N+4>>2]=c[xa+4>>2],c[N+8>>2]=c[xa+8>>2],c[N+12>>2]=c[xa+12>>2],xa=ka+36|0,c[O>>2]=c[xa>>2],c[O+4>>2]=c[xa+4>>2],c[O+8>>2]=c[xa+8>>2],c[O+12>>2]=c[xa+12>>2],ck(d,k,la,l,j),ua=+g[z>>2],ua<1.0):0){ra=ua*(na-+g[ma>>2]);na=ua*(pa-+g[qa>>2]);pa=ua*(sa-+g[ta>>2]);sa=-(na*+g[R>>2])-ra*+g[Q>>2]-pa*+g[S>>2];la=c[y>>2]|0;xa=Wb[c[(c[la>>2]|0)+12>>2]&31](la,ka,c[E>>2]|0)|0;la=xa;ya=c[n>>2]|0;if((ya|0)==(c[u>>2]|0)?(za=(ya|0)!=0?ya<<1:1,(ya|0)<(za|0)):0){if(!za){Aa=0;Ba=ya}else{c[3708]=(c[3708]|0)+1;Ca=ws((za<<2|3)+16|0)|0;if(!Ca)Da=0;else{Ea=Ca+4+15&-16;c[Ea+-4>>2]=Ca;Da=Ea}Aa=Da;Ba=c[n>>2]|0}if((Ba|0)>0){Ea=0;do{c[Aa+(Ea<<2)>>2]=c[(c[o>>2]|0)+(Ea<<2)>>2];Ea=Ea+1|0}while((Ea|0)!=(Ba|0));}Ea=c[o>>2]|0;if(!Ea)Fa=Ba;else{if(!(a[p>>0]|0))Ga=Ba;else{c[3710]=(c[3710]|0)+1;xs(c[Ea+-4>>2]|0);Ga=c[n>>2]|0}c[o>>2]=0;Fa=Ga}a[p>>0]=1;c[o>>2]=Aa;c[u>>2]=za;Ha=Fa}else Ha=ya;c[(c[o>>2]|0)+(Ha<<2)>>2]=la;c[n>>2]=Ha+1;ua=ra+ +g[ma>>2];oa=na+ +g[qa>>2];wa=pa+ +g[ta>>2];Ea=c[E>>2]|0;va=+g[Ea+4>>2];Ia=+g[Ea+20>>2];Ja=+g[Ea+36>>2];Ka=+g[Ea+8>>2];La=+g[Ea+24>>2];Ma=+g[Ea+40>>2];Na=+g[Ea+12>>2];Oa=+g[Ea+28>>2];Pa=+g[Ea+44>>2];Qa=-+g[Ea+52>>2];Ra=-+g[Ea+56>>2];Sa=-+g[Ea+60>>2];c[m>>2]=0;c[m+4>>2]=0;c[m+8>>2]=0;c[m+12>>2]=0;g[T>>2]=ua*va+oa*Ia+wa*Ja+(va*Qa+Ia*Ra+Ja*Sa);g[U>>2]=ua*Ka+oa*La+wa*Ma+(Ka*Qa+La*Ra+Ma*Sa);g[V>>2]=ua*Na+oa*Oa+wa*Pa+(Na*Qa+Oa*Ra+Pa*Sa);g[W>>2]=0.0;c[X>>2]=c[Q>>2];c[X+4>>2]=c[Q+4>>2];c[X+8>>2]=c[Q+8>>2];c[X+12>>2]=c[Q+12>>2];g[Y>>2]=sa;g[Z>>2]=0.0;g[_>>2]=0.0;g[$>>2]=0.0;c[aa>>2]=0;a[ba>>0]=0;c[ca>>2]=0;c[ca+4>>2]=0;c[ca+8>>2]=0;c[ca+12>>2]=0;c[ca+16>>2]=0;c[ca+20>>2]=0;c[ca+24>>2]=0;c[ca+28>>2]=0;Ea=xp(xa,m)|0;g[xa+4+(Ea*184|0)+92>>2]=0.0;Sa=+g[ka+224>>2]*+g[(c[E>>2]|0)+224>>2];Pa=Sa<-10.0?-10.0:Sa;g[xa+4+(Ea*184|0)+84>>2]=Pa>10.0?10.0:Pa;Ca=xa+4+(Ea*184|0)+48|0;c[Ca>>2]=c[ma>>2];c[Ca+4>>2]=c[ma+4>>2];c[Ca+8>>2]=c[ma+8>>2];c[Ca+12>>2]=c[ma+12>>2];g[xa+4+(Ea*184|0)+32>>2]=ua;g[xa+4+(Ea*184|0)+36>>2]=oa;g[xa+4+(Ea*184|0)+40>>2]=wa;g[xa+4+(Ea*184|0)+44>>2]=0.0}ja=ja+1|0}while((ja|0)<(c[r>>2]|0));}Kb[c[(c[d>>2]|0)+44>>2]&255](d);Kb[c[(c[d>>2]|0)+148>>2]&255](d);g[d+104>>2]=e;Mb[c[(c[d>>2]|0)+152>>2]&127](d,d+92|0);Jb[c[(c[d>>2]|0)+144>>2]&31](d,e);r=d+280|0;if((c[r>>2]|0)>0){ja=d+288|0;E=0;do{m=c[(c[ja>>2]|0)+(E<<2)>>2]|0;rc[c[(c[m>>2]|0)+8>>2]&7](m,d,e);E=E+1|0}while((E|0)<(c[r>>2]|0));}Jb[c[(c[d>>2]|0)+156>>2]&31](d,e);r=c[d+80>>2]|0;if(!r){i=f;return}Jb[r&31](d,e);i=f;return}function mh(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0,i=0,j=0,k=0,l=0.0,m=0.0,n=0.0,o=0;d=a+248|0;c[d>>2]=c[b>>2];c[d+4>>2]=c[b+4>>2];c[d+8>>2]=c[b+8>>2];c[d+12>>2]=c[b+12>>2];d=a+232|0;e=c[d>>2]|0;if((e|0)<=0)return;f=a+240|0;a=b+4|0;h=b+8|0;i=e;e=0;while(1){j=c[(c[f>>2]|0)+(e<<2)>>2]|0;k=c[j+216>>2]|0;if(!((k|0)==2|(k|0)==5)?(c[j+528>>2]&1|0)==0:0){l=+g[j+368>>2];if(l!=0.0){m=1.0/l;l=m*+g[a>>2];n=m*+g[h>>2];g[j+388>>2]=m*+g[b>>2];g[j+392>>2]=l;g[j+396>>2]=n;g[j+400>>2]=0.0}k=j+404|0;c[k>>2]=c[b>>2];c[k+4>>2]=c[b+4>>2];c[k+8>>2]=c[b+8>>2];c[k+12>>2]=c[b+12>>2];o=c[d>>2]|0}else o=i;e=e+1|0;if((e|0)>=(o|0))break;else i=o}return}function nh(a,b){a=a|0;b=b|0;var d=0;d=b+248|0;c[a>>2]=c[d>>2];c[a+4>>2]=c[d+4>>2];c[a+8>>2]=c[d+8>>2];c[a+12>>2]=c[d+12>>2];return}function oh(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;Wj(a,b,c,d);return}function ph(a,b){a=a|0;b=b|0;if((b|0)==0?1:(c[b+236>>2]&2|0)==0){_j(a,b);return}else{Mb[c[(c[a>>2]|0)+92>>2]&127](a,b);return}}function qh(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;e=b+232|0;f=c[e>>2]|0;a:do if((f|0)>0){g=b+240|0;h=c[g>>2]|0;i=0;while(1){j=h+(i<<2)|0;if((c[j>>2]|0)==(d|0))break;k=i+1|0;if((k|0)<(f|0))i=k;else break a}if((i|0)<(f|0)){k=d;l=f+-1|0;c[j>>2]=c[h+(l<<2)>>2];m=(c[g>>2]|0)+(l<<2)|0;a[m>>0]=k;a[m+1>>0]=k>>8;a[m+2>>0]=k>>16;a[m+3>>0]=k>>24;c[e>>2]=(c[e>>2]|0)+-1}}while(0);_j(b,d);return}function rh(b,d){b=b|0;d=d|0;var e=0,f=0,h=0,i=0,j=0.0,k=0.0,l=0.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;e=d;f=d+204|0;h=c[f>>2]|0;if((h&3|0)==0?(c[d+528>>2]&1|0)==0:0){i=b+248|0;j=+g[d+368>>2];if(j!=0.0){k=1.0/j;j=k*+g[b+252>>2];l=k*+g[b+256>>2];g[d+388>>2]=k*+g[i>>2];g[d+392>>2]=j;g[d+396>>2]=l;g[d+400>>2]=0.0}m=d+404|0;c[m>>2]=c[i>>2];c[m+4>>2]=c[i+4>>2];c[m+8>>2]=c[i+8>>2];c[m+12>>2]=c[i+12>>2]}if(!(c[d+192>>2]|0))return;if(h&1){i=d+216|0;if((c[i>>2]&-2|0)==4)n=h;else{c[i>>2]=2;n=h}}else{i=b+232|0;m=c[i>>2]|0;o=b+236|0;if((m|0)==(c[o>>2]|0)?(p=(m|0)!=0?m<<1:1,(m|0)<(p|0)):0){if(!p){q=0;r=m}else{c[3708]=(c[3708]|0)+1;s=ws((p<<2|3)+16|0)|0;if(!s)t=0;else{u=s+4+15&-16;c[u+-4>>2]=s;t=u}q=t;r=c[i>>2]|0}t=b+240|0;if((r|0)>0){u=0;do{c[q+(u<<2)>>2]=c[(c[t>>2]|0)+(u<<2)>>2];u=u+1|0}while((u|0)!=(r|0));}u=c[t>>2]|0;s=b+244|0;if(!u)v=r;else{if(!(a[s>>0]|0))w=r;else{c[3710]=(c[3710]|0)+1;xs(c[u+-4>>2]|0);w=c[i>>2]|0}c[t>>2]=0;v=w}a[s>>0]=1;c[t>>2]=q;c[o>>2]=p;x=c[f>>2]|0;y=v}else{x=h;y=m}c[(c[b+240>>2]|0)+(y<<2)>>2]=e;c[i>>2]=y+1;n=x}x=(n&3|0)==0;tc[c[(c[b>>2]|0)+36>>2]&63](b,d,x?1:2,x?-1:-3);return}function sh(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var h=0,i=0,j=0,k=0.0,l=0.0,m=0.0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;h=d;i=c[d+204>>2]|0;if((i&3|0)==0?(c[d+528>>2]&1|0)==0:0){j=b+248|0;k=+g[d+368>>2];if(k!=0.0){l=1.0/k;k=l*+g[b+252>>2];m=l*+g[b+256>>2];g[d+388>>2]=l*+g[j>>2];g[d+392>>2]=k;g[d+396>>2]=m;g[d+400>>2]=0.0}n=d+404|0;c[n>>2]=c[j>>2];c[n+4>>2]=c[j+4>>2];c[n+8>>2]=c[j+8>>2];c[n+12>>2]=c[j+12>>2]}if(!(c[d+192>>2]|0))return;if(i&1){i=d+216|0;if((c[i>>2]&-2|0)!=4)c[i>>2]=2}else{i=b+232|0;j=c[i>>2]|0;n=b+236|0;if((j|0)==(c[n>>2]|0)?(o=(j|0)!=0?j<<1:1,(j|0)<(o|0)):0){if(!o){p=0;q=j}else{c[3708]=(c[3708]|0)+1;r=ws((o<<2|3)+16|0)|0;if(!r)s=0;else{t=r+4+15&-16;c[t+-4>>2]=r;s=t}p=s;q=c[i>>2]|0}s=b+240|0;if((q|0)>0){t=0;do{c[p+(t<<2)>>2]=c[(c[s>>2]|0)+(t<<2)>>2];t=t+1|0}while((t|0)!=(q|0));}t=c[s>>2]|0;r=b+244|0;if(!t)u=q;else{if(!(a[r>>0]|0))v=q;else{c[3710]=(c[3710]|0)+1;xs(c[t+-4>>2]|0);v=c[i>>2]|0}c[s>>2]=0;u=v}a[r>>0]=1;c[s>>2]=p;c[n>>2]=o;w=u}else w=j;c[(c[b+240>>2]|0)+(w<<2)>>2]=h;c[i>>2]=w+1}tc[c[(c[b>>2]|0)+36>>2]&63](b,d,e,f);return}function th(b,d){b=b|0;d=+d;var e=0,f=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0.0,q=0.0,r=0.0,s=0.0,t=0,u=0,v=0;e=b+232|0;f=c[e>>2]|0;if((f|0)<=0)return;h=b+240|0;b=(a[2496]|0)==0;i=f;f=0;while(1){j=c[(c[h>>2]|0)+(f<<2)>>2]|0;a:do if(j){k=j+216|0;l=c[k>>2]|0;do if((l|0)==4|(l|0)==2){m=l;if((m|0)==4){n=i;break a}else o=m}else{p=+g[j+336>>2];q=+g[j+340>>2];r=+g[j+344>>2];s=+g[j+496>>2];if(p*p+q*q+r*r<s*s?(s=+g[j+352>>2],r=+g[j+356>>2],q=+g[j+360>>2],p=+g[j+500>>2],s*s+r*r+q*q<p*p):0){m=j+220|0;g[m>>2]=+g[m>>2]+d;o=l;break}g[j+220>>2]=0.0;if((l&-2|0)==4)o=l;else{c[k>>2]=0;o=0}}while(0);l=o&-2;do if(b){if((l|0)!=2?!(+g[j+220>>2]>2.0):0){t=l;break}if(c[j+204>>2]&3){if((l|0)==4){n=i;break a}c[k>>2]=2;n=i;break a}if((o|0)==1){if((l|0)==4){n=i;break a}c[k>>2]=3;n=i;break a}else{if((o|0)!=2){n=i;break a}m=j+284|0;u=j+352|0;v=(c[m>>2]|0)+2|0;c[u>>2]=0;c[u+4>>2]=0;c[u+8>>2]=0;c[u+12>>2]=0;c[m>>2]=v;v=j+336|0;c[v>>2]=0;c[v+4>>2]=0;c[v+8>>2]=0;c[v+12>>2]=0;n=c[e>>2]|0;break a}}else t=l;while(0);if((t|0)!=4){c[k>>2]=1;n=i}else n=i}else n=i;while(0);f=f+1|0;if((f|0)>=(n|0))break;else i=n}return}function uh(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;f=d;g=b+212|0;h=c[g>>2]|0;i=b+216|0;if((h|0)==(c[i>>2]|0)?(j=(h|0)!=0?h<<1:1,(h|0)<(j|0)):0){if(!j){k=0;l=h}else{c[3708]=(c[3708]|0)+1;m=ws((j<<2|3)+16|0)|0;if(!m)n=0;else{o=m+4+15&-16;c[o+-4>>2]=m;n=o}k=n;l=c[g>>2]|0}n=b+220|0;if((l|0)>0){o=0;do{c[k+(o<<2)>>2]=c[(c[n>>2]|0)+(o<<2)>>2];o=o+1|0}while((o|0)!=(l|0));}o=c[n>>2]|0;m=b+224|0;if(!o)p=l;else{if(!(a[m>>0]|0))q=l;else{c[3710]=(c[3710]|0)+1;xs(c[o+-4>>2]|0);q=c[g>>2]|0}c[n>>2]=0;p=q}a[m>>0]=1;c[n>>2]=k;c[i>>2]=j;r=p}else r=h;c[(c[b+220>>2]|0)+(r<<2)>>2]=f;c[g>>2]=r+1;if(!e)return;bi(c[d+28>>2]|0,d);bi(c[d+32>>2]|0,d);return}function vh(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;e=b+212|0;f=c[e>>2]|0;a:do if((f|0)>0){g=b+220|0;h=c[g>>2]|0;i=0;while(1){j=h+(i<<2)|0;if((c[j>>2]|0)==(d|0))break;k=i+1|0;if((k|0)<(f|0))i=k;else break a}if((i|0)<(f|0)){k=d;l=f+-1|0;c[j>>2]=c[h+(l<<2)>>2];m=(c[g>>2]|0)+(l<<2)|0;a[m>>0]=k;a[m+1>>0]=k>>8;a[m+2>>0]=k>>16;a[m+3>>0]=k>>24;c[e>>2]=(c[e>>2]|0)+-1}}while(0);ci(c[d+28>>2]|0,d);ci(c[d+32>>2]|0,d);return}function wh(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;e=d;d=b+280|0;f=c[d>>2]|0;g=b+284|0;if((f|0)==(c[g>>2]|0)?(h=(f|0)!=0?f<<1:1,(f|0)<(h|0)):0){if(!h){i=0;j=f}else{c[3708]=(c[3708]|0)+1;k=ws((h<<2|3)+16|0)|0;if(!k)l=0;else{m=k+4+15&-16;c[m+-4>>2]=k;l=m}i=l;j=c[d>>2]|0}l=b+288|0;if((j|0)>0){m=0;do{c[i+(m<<2)>>2]=c[(c[l>>2]|0)+(m<<2)>>2];m=m+1|0}while((m|0)!=(j|0));}m=c[l>>2]|0;k=b+292|0;if(!m)n=j;else{if(!(a[k>>0]|0))o=j;else{c[3710]=(c[3710]|0)+1;xs(c[m+-4>>2]|0);o=c[d>>2]|0}c[l>>2]=0;n=o}a[k>>0]=1;c[l>>2]=i;c[g>>2]=h;p=n}else p=f;c[(c[b+288>>2]|0)+(p<<2)>>2]=e;c[d>>2]=p+1;return}function xh(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;e=b+280|0;f=c[e>>2]|0;if((f|0)<=0)return;g=b+288|0;b=c[g>>2]|0;h=0;while(1){i=b+(h<<2)|0;if((c[i>>2]|0)==(d|0))break;j=h+1|0;if((j|0)<(f|0))h=j;else{k=7;break}}if((k|0)==7)return;if((h|0)>=(f|0))return;h=d;d=f+-1|0;c[i>>2]=c[b+(d<<2)>>2];b=(c[g>>2]|0)+(d<<2)|0;a[b>>0]=h;a[b+1>>0]=h>>8;a[b+2>>0]=h>>16;a[b+3>>0]=h>>24;c[e>>2]=(c[e>>2]|0)+-1;return}function yh(a,b){a=a|0;b=b|0;Mb[c[(c[a>>2]|0)+64>>2]&127](a,b);return}function zh(a,b){a=a|0;b=b|0;Mb[c[(c[a>>2]|0)+68>>2]&127](a,b);return}function Ah(a,b){a=a|0;b=b|0;Mb[c[(c[a>>2]|0)+64>>2]&127](a,b);return}function Bh(a,b){a=a|0;b=b|0;Mb[c[(c[a>>2]|0)+68>>2]&127](a,b);return}function Ch(b,d){b=b|0;d=d|0;var e=0,f=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0;e=b+176|0;f=c[b+212>>2]|0;h=b+180|0;i=c[h>>2]|0;if((i|0)<(f|0)){j=b+184|0;if((c[j>>2]|0)<(f|0)){if(!f){k=0;l=i}else{c[3708]=(c[3708]|0)+1;m=ws((f<<2|3)+16|0)|0;if(!m)n=0;else{o=m+4+15&-16;c[o+-4>>2]=m;n=o}k=n;l=c[h>>2]|0}n=b+188|0;if((l|0)>0){o=0;do{c[k+(o<<2)>>2]=c[(c[n>>2]|0)+(o<<2)>>2];o=o+1|0}while((o|0)!=(l|0));}l=c[n>>2]|0;o=b+192|0;if(l){if(a[o>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[l+-4>>2]|0);}c[n>>2]=0}a[o>>0]=1;c[n>>2]=k;c[j>>2]=f;p=n}else p=b+188|0;n=i;do{c[(c[p>>2]|0)+(n<<2)>>2]=0;n=n+1|0}while((n|0)!=(f|0));}c[h>>2]=f;if((Ob[c[(c[b>>2]|0)+104>>2]&127](b)|0)>0){f=b+220|0;n=b+188|0;p=0;do{c[(c[n>>2]|0)+(p<<2)>>2]=c[(c[f>>2]|0)+(p<<2)>>2];p=p+1|0}while((p|0)<(Ob[c[(c[b>>2]|0)+104>>2]&127](b)|0));}p=c[h>>2]|0;if((p|0)>1)Nh(e,0,p+-1|0);if(!(Ob[c[(c[b>>2]|0)+104>>2]&127](b)|0))q=0;else q=c[b+188>>2]|0;p=b+196|0;e=c[p>>2]|0;f=c[h>>2]|0;h=Ob[c[(c[b>>2]|0)+20>>2]&127](b)|0;c[e+4>>2]=d;c[e+12>>2]=q;c[e+16>>2]=f;c[e+20>>2]=h;h=e+32|0;f=c[h>>2]|0;if((f|0)<0){q=e+36|0;n=e+40|0;if((c[q>>2]|0)<0){i=c[n>>2]|0;j=e+44|0;if(i){if(a[j>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[i+-4>>2]|0);}c[n>>2]=0}a[j>>0]=1;c[n>>2]=0;c[q>>2]=0;r=f}else r=f;do{c[(c[n>>2]|0)+(r<<2)>>2]=0;r=r+1|0}while((r|0)!=0);}c[h>>2]=0;h=e+52|0;r=c[h>>2]|0;if((r|0)<0){n=e+56|0;f=e+60|0;if((c[n>>2]|0)<0){q=c[f>>2]|0;j=e+64|0;if(q){if(a[j>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[q+-4>>2]|0);}c[f>>2]=0}a[j>>0]=1;c[f>>2]=0;c[n>>2]=0;s=r}else s=r;do{c[(c[f>>2]|0)+(s<<2)>>2]=0;s=s+1|0}while((s|0)!=0);}c[h>>2]=0;h=e+72|0;s=c[h>>2]|0;if((s|0)<0){f=e+76|0;r=e+80|0;if((c[f>>2]|0)<0){n=c[r>>2]|0;j=e+84|0;if(n){if(a[j>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[n+-4>>2]|0);}c[r>>2]=0}a[j>>0]=1;c[r>>2]=0;c[f>>2]=0;t=s}else t=s;do{c[(c[r>>2]|0)+(t<<2)>>2]=0;t=t+1|0}while((t|0)!=0);}c[h>>2]=0;h=b+200|0;t=c[h>>2]|0;r=c[(c[t>>2]|0)+8>>2]|0;s=b+8|0;f=c[s>>2]|0;j=b+24|0;n=c[j>>2]|0;e=Ob[c[(c[n>>2]|0)+36>>2]&127](n)|0;pc[r&63](t,f,e);e=c[b+204>>2]|0;f=c[j>>2]|0;j=c[p>>2]|0;t=e+28|0;r=c[t>>2]|0;if((r|0)<0){n=e+32|0;q=e+36|0;if((c[n>>2]|0)<0){i=c[q>>2]|0;k=e+40|0;if(i){if(a[k>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[i+-4>>2]|0);}c[q>>2]=0}a[k>>0]=1;c[q>>2]=0;c[n>>2]=0;u=r}else u=r;do{c[(c[q>>2]|0)+(u<<2)>>2]=0;u=u+1|0}while((u|0)!=0);}c[t>>2]=0;u=e+4|0;q=e+8|0;r=c[q>>2]|0;if((r|0)>0){n=c[e+16>>2]|0;k=0;do{i=n+(k<<3)|0;o=c[i>>2]|0;if((o|0)==(k|0))v=k;else{l=o;o=i;do{m=n+(l<<3)|0;c[o>>2]=c[m>>2];w=c[m>>2]|0;o=n+(w<<3)|0;l=c[o>>2]|0}while((w|0)!=(l|0));v=w}c[i>>2]=v;k=k+1|0}while((k|0)!=(r|0));if((r|0)>1){Sl(u,0,r+-1|0);x=c[q>>2]|0}else x=r;if((x|0)>0){r=b+16|0;u=c[e+16>>2]|0;k=u;v=0;while(1){n=c[u+(v<<3)>>2]|0;l=v;while(1){l=l+1|0;if((l|0)>=(x|0)){y=0;break}if((c[u+(l<<3)>>2]|0)!=(n|0)){y=1;break}}if((v|0)<(l|0)){i=c[r>>2]|0;o=1;w=v;while(1){m=c[i+(c[u+(w<<3)+4>>2]<<2)>>2]|0;if((c[m+208>>2]|0)==(n|0)){z=c[m+216>>2]|0;A=(z|0)!=4&(o&(z|0)!=1);}else A=o;w=w+1|0;if((w|0)==(l|0))break;else o=A}if(A){o=k;w=v;while(1){z=c[i+(c[u+(w<<3)+4>>2]<<2)>>2]|0;do if((c[z+208>>2]|0)==(n|0)){m=z+216|0;if((c[m>>2]&-2|0)==4)break;c[m>>2]=2}while(0);w=w+1|0;if((w|0)==(l|0)){B=o;break}else o=u}}else{o=u;w=v;while(1){z=c[i+(c[o+(w<<3)+4>>2]<<2)>>2]|0;do if((c[z+208>>2]|0)==(n|0)){m=z+216|0;if((c[m>>2]|0)!=2)break;c[m>>2]=3;g[z+220>>2]=0.0}while(0);w=w+1|0;if((w|0)==(l|0)){B=k;break}else o=k}}}else B=k;if(y){k=B;v=l}else break}}}v=Ob[c[(c[f>>2]|0)+36>>2]&127](f)|0;if((v|0)>0){B=e+64|0;k=e+32|0;y=e+36|0;u=e+40|0;A=0;do{r=ec[c[(c[f>>2]|0)+40>>2]&31](f,A)|0;x=r;o=c[r+740>>2]|0;w=c[r+744>>2]|0;if((o|0)!=0?(c[o+216>>2]|0)!=2:0)C=90;else C=88;if(((C|0)==88?(C=0,(w|0)!=0):0)?(c[w+216>>2]|0)!=2:0)C=90;if((C|0)==90){C=0;r=c[o+204>>2]|0;if(((r&2|0)!=0?((r&4|0)==0?(c[o+216>>2]|0)!=2:0):0)?(c[w+204>>2]&3|0)==0:0){n=w+216|0;if((c[n>>2]&-2|0)!=4)c[n>>2]=1;g[w+220>>2]=0.0}n=c[w+204>>2]|0;if((n&2|0)!=0?((n&4|0)==0?(c[w+216>>2]|0)!=2:0)&(r&3|0)==0:0){r=o+216|0;if((c[r>>2]&-2|0)!=4)c[r>>2]=1;g[o+220>>2]=0.0}if((a[B>>0]|0)!=0?Wb[c[(c[f>>2]|0)+28>>2]&31](f,o,w)|0:0){w=c[t>>2]|0;do if((w|0)==(c[k>>2]|0)){o=(w|0)!=0?w<<1:1;if((w|0)>=(o|0)){D=w;break}if(!o){E=0;F=w}else{c[3708]=(c[3708]|0)+1;r=ws((o<<2|3)+16|0)|0;if(!r)G=0;else{n=r+4+15&-16;c[n+-4>>2]=r;G=n}E=G;F=c[t>>2]|0}if((F|0)>0){n=0;do{c[E+(n<<2)>>2]=c[(c[y>>2]|0)+(n<<2)>>2];n=n+1|0}while((n|0)!=(F|0));}n=c[y>>2]|0;if(!n)H=F;else{if(!(a[u>>0]|0))I=F;else{c[3710]=(c[3710]|0)+1;xs(c[n+-4>>2]|0);I=c[t>>2]|0}c[y>>2]=0;H=I}a[u>>0]=1;c[y>>2]=E;c[k>>2]=o;D=H}else D=w;while(0);c[(c[y>>2]|0)+(D<<2)>>2]=x;c[t>>2]=D+1}}A=A+1|0}while((A|0)!=(v|0));J=B}else J=e+64|0;B=c[q>>2]|0;if(!(a[J>>0]|0)){J=Ob[c[(c[f>>2]|0)+44>>2]&127](f)|0;q=Ob[c[(c[f>>2]|0)+36>>2]&127](f)|0;Xb[c[(c[j>>2]|0)+8>>2]&7](j,c[b+16>>2]|0,c[s>>2]|0,J,q,-1);K=c[p>>2]|0;Oh(K);L=c[h>>2]|0;M=c[L>>2]|0;N=M+16|0;O=c[N>>2]|0;P=b+72|0;Q=c[P>>2]|0;pc[O&63](L,d,Q);return}q=c[t>>2]|0;if((q|0)>1)Hl(e+24|0,0,q+-1|0);if((B|0)<=0){K=c[p>>2]|0;Oh(K);L=c[h>>2]|0;M=c[L>>2]|0;N=M+16|0;O=c[N>>2]|0;P=b+72|0;Q=c[P>>2]|0;pc[O&63](L,d,Q);return}t=e+16|0;J=e+36|0;s=e+48|0;f=e+52|0;v=e+56|0;A=e+60|0;e=b+16|0;D=1;y=0;H=0;while(1){k=c[t>>2]|0;E=c[k+(y<<3)>>2]|0;a:do if((y|0)<(B|0)){u=k;I=c[s>>2]|0;F=c[f>>2]|0;G=y;C=1;while(1){w=c[(c[e>>2]|0)+(c[u+(G<<3)+4>>2]<<2)>>2]|0;if((I|0)==(F|0)){l=(F|0)!=0?F<<1:1;if((F|0)<(l|0)){if(!l){R=0;S=F}else{c[3708]=(c[3708]|0)+1;n=ws((l<<2|3)+16|0)|0;if(!n)T=0;else{r=n+4+15&-16;c[r+-4>>2]=n;T=r}R=T;S=c[s>>2]|0}if((S|0)>0){r=0;do{c[R+(r<<2)>>2]=c[(c[v>>2]|0)+(r<<2)>>2];r=r+1|0}while((r|0)!=(S|0));}r=c[v>>2]|0;if(!r)U=S;else{if(!(a[A>>0]|0))V=S;else{c[3710]=(c[3710]|0)+1;xs(c[r+-4>>2]|0);V=c[s>>2]|0}c[v>>2]=0;U=V}a[A>>0]=1;c[v>>2]=R;c[f>>2]=l;W=U;X=l}else{W=F;X=F}}else{W=I;X=F}c[(c[v>>2]|0)+(W<<2)>>2]=w;I=W+1|0;c[s>>2]=I;r=c[w+216>>2]|0;n=C&((r|0)==2|(r|0)==5);r=G+1|0;if((r|0)>=(B|0)){Y=r;Z=n;break a}u=c[t>>2]|0;if((c[u+(r<<3)>>2]|0)!=(E|0)){Y=r;Z=n;break}else{F=X;G=r;C=n}}}else{Y=y;Z=1}while(0);if((H|0)<(q|0)){k=c[J>>2]|0;x=k+(H<<2)|0;C=c[x>>2]|0;G=c[(c[C+740>>2]|0)+208>>2]|0;if((G|0)>-1)_=G;else _=c[(c[C+744>>2]|0)+208>>2]|0;if((_|0)==(E|0)){C=H;do{C=C+1|0;if((C|0)>=(q|0))break;G=c[k+(C<<2)>>2]|0;F=c[(c[G+740>>2]|0)+208>>2]|0;if((F|0)>-1)$=F;else $=c[(c[G+744>>2]|0)+208>>2]|0}while((E|0)==($|0));aa=C;ba=C-H|0;ca=x}else{aa=D;ba=0;ca=0}}else{aa=D;ba=0;ca=0}if(!Z)Xb[c[(c[j>>2]|0)+8>>2]&7](j,c[v>>2]|0,c[s>>2]|0,ca,ba,E);H=(ba|0)==0?H:aa;k=c[s>>2]|0;if((k|0)<0){if((c[f>>2]|0)<0){G=c[v>>2]|0;if(G){if(a[A>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[G+-4>>2]|0);}c[v>>2]=0}a[A>>0]=1;c[v>>2]=0;c[f>>2]=0;da=k}else da=k;do{c[(c[v>>2]|0)+(da<<2)>>2]=0;da=da+1|0}while((da|0)!=0);}c[s>>2]=0;if((Y|0)>=(B|0))break;else{D=aa;y=Y}}K=c[p>>2]|0;Oh(K);L=c[h>>2]|0;M=c[L>>2]|0;N=M+16|0;O=c[N>>2]|0;P=b+72|0;Q=c[P>>2]|0;pc[O&63](L,d,Q);return}function Dh(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;d=b+204|0;e=c[d>>2]|0;pc[c[(c[e>>2]|0)+8>>2]&63](e,b,c[b+24>>2]|0);e=c[b+308>>2]|0;if((e|0)>0){f=c[b+316>>2]|0;g=0;do{h=c[f+(g<<2)>>2]|0;i=c[h+740>>2]|0;j=c[h+744>>2]|0;if(((i|0)!=0?((j|0)!=0?(c[i+204>>2]&3|0)==0:0):0)?(c[j+204>>2]&3|0)==0:0){h=c[i+208>>2]|0;i=c[j+208>>2]|0;j=c[(c[d>>2]|0)+16>>2]|0;k=j+(h<<3)|0;l=c[k>>2]|0;if((l|0)==(h|0))m=h;else{h=l;l=k;do{k=j+(h<<3)|0;c[l>>2]=c[k>>2];n=c[k>>2]|0;l=j+(n<<3)|0;h=c[l>>2]|0}while((n|0)!=(h|0));m=n}h=j+(i<<3)|0;l=c[h>>2]|0;if((l|0)==(i|0))o=i;else{n=l;l=h;do{h=j+(n<<3)|0;c[l>>2]=c[h>>2];k=c[h>>2]|0;l=j+(k<<3)|0;n=c[l>>2]|0}while((k|0)!=(n|0));o=k}if((m|0)!=(o|0)){c[j+(m<<3)>>2]=o;n=j+(o<<3)+4|0;c[n>>2]=(c[n>>2]|0)+(c[j+(m<<3)+4>>2]|0);}}g=g+1|0}while((g|0)!=(e|0));}e=c[b+212>>2]|0;if((e|0)<=0){p=c[d>>2]|0;q=c[p>>2]|0;r=q+12|0;s=c[r>>2]|0;Mb[s&127](p,b);return}g=c[b+220>>2]|0;m=0;do{o=c[g+(m<<2)>>2]|0;if(((a[o+20>>0]|0)!=0?(f=c[o+28>>2]|0,(c[f+204>>2]&3|0)==0):0)?(n=c[o+32>>2]|0,(c[n+204>>2]&3|0)==0):0){o=c[f+208>>2]|0;f=c[n+208>>2]|0;n=c[(c[d>>2]|0)+16>>2]|0;l=n+(o<<3)|0;i=c[l>>2]|0;if((i|0)==(o|0))t=o;else{o=i;i=l;do{l=n+(o<<3)|0;c[i>>2]=c[l>>2];k=c[l>>2]|0;i=n+(k<<3)|0;o=c[i>>2]|0}while((k|0)!=(o|0));t=k}o=n+(f<<3)|0;i=c[o>>2]|0;if((i|0)==(f|0))u=f;else{j=i;i=o;do{o=n+(j<<3)|0;c[i>>2]=c[o>>2];k=c[o>>2]|0;i=n+(k<<3)|0;j=c[i>>2]|0}while((k|0)!=(j|0));u=k}if((t|0)!=(u|0)){c[n+(t<<3)>>2]=u;j=n+(u<<3)+4|0;c[j>>2]=(c[j>>2]|0)+(c[n+(t<<3)+4>>2]|0);}}m=m+1|0}while((m|0)!=(e|0));p=c[d>>2]|0;q=c[p>>2]|0;r=q+12|0;s=c[r>>2]|0;Mb[s&127](p,b);return}function Eh(d,e){d=d|0;e=+e;var f=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0.0,ea=0.0,fa=0.0,ga=0.0,ha=0.0,ia=0,ja=0,ka=0,la=0,ma=0;f=i;i=i+352|0;h=f+280|0;j=f+184|0;k=f+128|0;l=f+64|0;m=f+48|0;n=f+32|0;o=f+16|0;p=f;q=d+232|0;if((c[q>>2]|0)>0){r=d+240|0;s=h+48|0;t=h+52|0;u=h+56|0;v=d+44|0;w=d+68|0;x=d+24|0;y=j+4|0;z=j+8|0;A=j+10|0;B=j+12|0;C=j+28|0;D=j+76|0;E=j+80|0;F=j+84|0;G=j+88|0;H=j+92|0;I=k+4|0;J=k+32|0;K=k+48|0;L=d+56|0;M=l+16|0;N=l+32|0;O=l+48|0;P=k+8|0;Q=k+12|0;R=k+16|0;S=k+20|0;T=k+24|0;U=k+28|0;V=0;do{W=c[(c[r>>2]|0)+(V<<2)>>2]|0;X=W+248|0;g[X>>2]=1.0;Y=c[W+216>>2]|0;a:do if(!((Y|0)==2|(Y|0)==5)?(c[W+204>>2]&3|0)==0:0){Z=W+4|0;_=W+352|0;$=W+336|0;aa=W+340|0;ba=W+344|0;Pf(Z,+g[$>>2],+g[aa>>2],+g[ba>>2],_,e,h);ca=W+52|0;da=+g[s>>2]-+g[ca>>2];ea=+g[t>>2]-+g[W+56>>2];fa=+g[u>>2]-+g[W+60>>2];do if(((a[v>>0]|0)!=0?(ga=+g[W+256>>2],ha=ga*ga,ha!=0.0?ha<da*da+ea*ea+fa*fa:0):0)?(c[(c[W+192>>2]|0)+4>>2]|0)<20:0){c[502]=(c[502]|0)+1;ia=c[w>>2]|0;ja=Ob[c[(c[ia>>2]|0)+36>>2]&127](ia)|0;ia=c[x>>2]|0;g[y>>2]=1.0;b[z>>1]=1;b[A>>1]=-1;c[j>>2]=2096;c[B>>2]=c[ca>>2];c[B+4>>2]=c[ca+4>>2];c[B+8>>2]=c[ca+8>>2];c[B+12>>2]=c[ca+12>>2];c[C>>2]=c[s>>2];c[C+4>>2]=c[s+4>>2];c[C+8>>2]=c[s+8>>2];c[C+12>>2]=c[s+12>>2];c[D>>2]=0;c[j>>2]=2120;c[E>>2]=W;c[G>>2]=ja;c[H>>2]=ia;ia=c[W+252>>2]|0;c[P>>2]=0;c[Q>>2]=-1;c[R>>2]=1065353216;c[S>>2]=1065353216;c[T>>2]=1065353216;g[U>>2]=0.0;c[k>>2]=11048;c[I>>2]=8;c[J>>2]=ia;c[K>>2]=ia;c[F>>2]=c[L>>2];ia=c[W+188>>2]|0;b[z>>1]=b[ia+4>>1]|0;b[A>>1]=b[ia+6>>1]|0;c[O>>2]=c[s>>2];c[O+4>>2]=c[s+4>>2];c[O+8>>2]=c[s+8>>2];c[O+12>>2]=c[s+12>>2];c[l>>2]=c[Z>>2];c[l+4>>2]=c[Z+4>>2];c[l+8>>2]=c[Z+8>>2];c[l+12>>2]=c[Z+12>>2];ia=W+20|0;c[M>>2]=c[ia>>2];c[M+4>>2]=c[ia+4>>2];c[M+8>>2]=c[ia+8>>2];c[M+12>>2]=c[ia+12>>2];ia=W+36|0;c[N>>2]=c[ia>>2];c[N+4>>2]=c[ia+4>>2];c[N+8>>2]=c[ia+8>>2];c[N+12>>2]=c[ia+12>>2];ck(d,k,Z,l,j);ha=+g[y>>2];if(ha<1.0){g[X>>2]=ha;Pf(Z,+g[$>>2],+g[aa>>2],+g[ba>>2],_,ha*e,h);g[X>>2]=0.0;ai(W,h);break a}else break}while(0);ai(W,h);}while(0);V=V+1|0}while((V|0)<(c[q>>2]|0));}if(!(a[d+275>>0]|0)){i=f;return}q=d+308|0;V=c[q>>2]|0;if((V|0)<=0){i=f;return}h=d+316|0;d=m+4|0;y=m+8|0;j=m+12|0;l=n+4|0;k=n+8|0;N=n+12|0;M=o+4|0;s=o+8|0;O=o+12|0;A=p+4|0;z=p+8|0;L=p+12|0;F=V;V=0;while(1){K=c[(c[h>>2]|0)+(V<<2)>>2]|0;J=c[K+740>>2]|0;I=(c[J+236>>2]&2|0)==0?0:J;J=c[K+744>>2]|0;U=(c[J+236>>2]&2|0)==0?0:J;J=K+748|0;T=c[J>>2]|0;if((T|0)>0){S=I+52|0;R=I+56|0;Q=I+60|0;P=U+52|0;H=U+56|0;G=U+60|0;if(!I){E=U+228|0;D=T;C=0;while(1){e=+g[57]*+g[E>>2];if(e>0.0?(fa=+g[K+4+(C*184|0)+120>>2],fa!=0.0):0){ea=e*(fa*+g[K+4+(C*184|0)+64>>2]);da=e*(fa*+g[K+4+(C*184|0)+68>>2]);ha=e*(fa*+g[K+4+(C*184|0)+72>>2]);g[m>>2]=-ea;g[d>>2]=-da;g[y>>2]=-ha;g[j>>2]=0.0;fa=+g[K+4+(C*184|0)+52>>2]-+g[R>>2];e=+g[K+4+(C*184|0)+56>>2]-+g[Q>>2];g[n>>2]=+g[K+4+(C*184|0)+48>>2]-+g[S>>2];g[l>>2]=fa;g[k>>2]=e;g[N>>2]=0.0;e=+g[K+4+(C*184|0)+36>>2]-+g[H>>2];fa=+g[K+4+(C*184|0)+40>>2]-+g[G>>2];g[o>>2]=+g[K+4+(C*184|0)+32>>2]-+g[P>>2];g[M>>2]=e;g[s>>2]=fa;g[O>>2]=0.0;g[p>>2]=ea;g[A>>2]=da;g[z>>2]=ha;g[L>>2]=0.0;jf(U,p,o);ka=c[J>>2]|0}else ka=D;C=C+1|0;if((C|0)>=(ka|0))break;else D=ka}}else{D=I+228|0;C=U+228|0;E=T;B=0;while(1){ha=+g[D>>2]*+g[C>>2];if(ha>0.0?(da=+g[K+4+(B*184|0)+120>>2],da!=0.0):0){ea=ha*(da*+g[K+4+(B*184|0)+64>>2]);fa=ha*(da*+g[K+4+(B*184|0)+68>>2]);e=ha*(da*+g[K+4+(B*184|0)+72>>2]);g[m>>2]=-ea;g[d>>2]=-fa;g[y>>2]=-e;g[j>>2]=0.0;da=+g[K+4+(B*184|0)+52>>2]-+g[R>>2];ha=+g[K+4+(B*184|0)+56>>2]-+g[Q>>2];g[n>>2]=+g[K+4+(B*184|0)+48>>2]-+g[S>>2];g[l>>2]=da;g[k>>2]=ha;g[N>>2]=0.0;ha=+g[K+4+(B*184|0)+36>>2]-+g[H>>2];da=+g[K+4+(B*184|0)+40>>2]-+g[G>>2];g[o>>2]=+g[K+4+(B*184|0)+32>>2]-+g[P>>2];g[M>>2]=ha;g[s>>2]=da;g[O>>2]=0.0;jf(I,m,n);g[p>>2]=ea;g[A>>2]=fa;g[z>>2]=e;g[L>>2]=0.0;jf(U,p,o);la=c[J>>2]|0}else la=E;B=B+1|0;if((B|0)>=(la|0))break;else E=la}}ma=c[q>>2]|0}else ma=F;V=V+1|0;if((V|0)>=(ma|0))break;else F=ma}i=f;return}function Fh(b,d){b=b|0;d=+d;var e=0,f=0,h=0,i=0,j=0,k=0.0,l=0.0,m=0.0,n=0,o=0.0,p=0,q=0.0,r=0,s=0.0,t=0.0,u=0,v=0.0,w=0,x=0.0,y=0.0,z=0.0,A=0.0,B=0.0,C=0.0,D=0.0,E=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,O=0.0,R=0.0,S=0;e=b+232|0;f=c[e>>2]|0;if((f|0)<=0)return;h=b+240|0;b=f;f=0;while(1){i=c[(c[h>>2]|0)+(f<<2)>>2]|0;if(!(c[i+204>>2]&3)){j=i+336|0;k=+g[i+468>>2];l=+Q(+(1.0-k),+d);m=l*+g[j>>2];g[j>>2]=m;n=i+340|0;o=l*+g[n>>2];g[n>>2]=o;p=i+344|0;q=l*+g[p>>2];g[p>>2]=q;r=i+352|0;l=+g[i+472>>2];s=+Q(+(1.0-l),+d);t=s*+g[r>>2];g[r>>2]=t;u=i+356|0;v=s*+g[u>>2];g[u>>2]=v;w=i+360|0;x=s*+g[w>>2];g[w>>2]=x;do if(a[i+476>>0]|0){if(x*x+(t*t+v*v)<+g[i+488>>2]?m*m+o*o+q*q<+g[i+484>>2]:0){s=+g[i+480>>2];y=t*s;g[r>>2]=y;z=s*v;g[u>>2]=z;A=s*x;g[w>>2]=A;B=s*m;g[j>>2]=B;C=s*o;g[n>>2]=C;D=s*q;g[p>>2]=D;E=B;F=C;G=D;H=y;I=z;J=A}else{E=m;F=o;G=q;H=t;I=v;J=x}A=+P(+(E*E+F*F+G*G));do if(A<k)if(A>.004999999888241291){z=1.0/A;y=E-E*z*.004999999888241291;g[j>>2]=y;D=F-F*z*.004999999888241291;g[n>>2]=D;C=G-G*z*.004999999888241291;g[p>>2]=C;K=y;L=D;M=C;break}else{c[j>>2]=0;c[j+4>>2]=0;c[j+8>>2]=0;c[j+12>>2]=0;K=0.0;L=0.0;M=0.0;break}else{K=E;L=F;M=G}while(0);A=+P(+(H*H+I*I+J*J));if(A<l)if(A>.004999999888241291){C=1.0/A;g[r>>2]=H-H*C*.004999999888241291;g[u>>2]=I-I*C*.004999999888241291;g[w>>2]=J-J*C*.004999999888241291;N=K;O=L;R=M;break}else{c[r>>2]=0;c[r+4>>2]=0;c[r+8>>2]=0;c[r+12>>2]=0;N=K;O=L;R=M;break}else{N=K;O=L;R=M}}else{N=m;O=o;R=q}while(0);Pf(i+4|0,N,O,R,r,d,i+68|0);S=c[e>>2]|0}else S=b;f=f+1|0;if((f|0)>=(S|0))break;else b=S}return}function Gh(b,d){b=b|0;d=d|0;var e=0,f=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0.0,_=0.0,$=0.0,aa=0.0,ba=0.0,ca=0.0,da=0,ea=0,fa=0,ga=0,ha=0.0,ia=0.0,ja=0.0,ka=0.0,la=0.0,ma=0.0,na=0.0,oa=0.0,pa=0.0,qa=0.0,ra=0.0,sa=0.0,ta=0.0,ua=0.0,va=0.0,wa=0.0,xa=0.0,ya=0.0,za=0.0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0,Fa=0,Ga=0,Ha=0,Ia=0,Ja=0,Ka=0,La=0,Ma=0.0,Na=0.0,Oa=0,Pa=0,Qa=0,Ra=0,Sa=0,Ta=0,Ua=0,Va=0,Wa=0,Xa=0,Ya=0,Za=0,_a=0,$a=0,ab=0,bb=0.0,cb=0.0,db=0.0,eb=0.0,fb=0.0,gb=0.0,hb=0.0,ib=0.0,jb=0.0,kb=0.0,lb=0.0,mb=0.0;e=i;i=i+656|0;f=e+592|0;h=e+576|0;j=e+560|0;l=e+544|0;m=e+528|0;n=e+512|0;o=e+496|0;p=e+480|0;q=e+464|0;r=e+448|0;s=e+432|0;t=e+416|0;u=e+400|0;v=e+384|0;w=e+368|0;x=e+352|0;y=e+336|0;z=e+320|0;A=e+304|0;B=e+288|0;C=e+272|0;D=e+256|0;E=e+240|0;F=e+224|0;G=e+208|0;H=e+192|0;I=e+176|0;J=e+160|0;K=e+144|0;L=e+128|0;M=e+112|0;N=e+96|0;O=e+80|0;P=e+64|0;Q=e+48|0;T=e+32|0;U=e+16|0;V=e;W=Ob[c[(c[b>>2]|0)+20>>2]&127](b)|0;X=(Ob[c[(c[W>>2]|0)+48>>2]&127](W)|0)>>>11;W=Ob[c[(c[b>>2]|0)+20>>2]&127](b)|0;Y=(Ob[c[(c[W>>2]|0)+48>>2]&127](W)|0)>>>12;Z=+g[d+40>>2];if(Z<=0.0){i=e;return}switch(c[d+4>>2]|0){case 3:{c[f>>2]=1065353216;W=f+4|0;c[W>>2]=0;c[W+4>>2]=0;c[W+8>>2]=0;c[W+12>>2]=0;c[f+20>>2]=1065353216;W=f+24|0;c[W>>2]=0;c[W+4>>2]=0;c[W+8>>2]=0;c[W+12>>2]=0;c[f+40>>2]=1065353216;W=f+44|0;c[W>>2]=0;c[W+4>>2]=0;c[W+8>>2]=0;c[W+12>>2]=0;c[W+16>>2]=0;_=+g[d+300>>2];$=+g[d+304>>2];aa=+g[d+308>>2];W=c[d+28>>2]|0;ba=_*+g[W+20>>2]+$*+g[W+24>>2]+aa*+g[W+28>>2]+ +g[W+56>>2];ca=_*+g[W+36>>2]+$*+g[W+40>>2]+aa*+g[W+44>>2]+ +g[W+60>>2];da=f+48|0;g[da>>2]=_*+g[W+4>>2]+$*+g[W+8>>2]+aa*+g[W+12>>2]+ +g[W+52>>2];W=f+52|0;g[W>>2]=ba;ea=f+56|0;g[ea>>2]=ca;fa=f+60|0;g[fa>>2]=0.0;ga=Ob[c[(c[b>>2]|0)+20>>2]&127](b)|0;rc[c[(c[ga>>2]|0)+56>>2]&7](ga,f,Z);ca=+g[d+316>>2];ba=+g[d+320>>2];aa=+g[d+324>>2];ga=c[d+32>>2]|0;$=ca*+g[ga+20>>2]+ba*+g[ga+24>>2]+aa*+g[ga+28>>2]+ +g[ga+56>>2];_=ca*+g[ga+36>>2]+ba*+g[ga+40>>2]+aa*+g[ga+44>>2]+ +g[ga+60>>2];g[da>>2]=ca*+g[ga+4>>2]+ba*+g[ga+8>>2]+aa*+g[ga+12>>2]+ +g[ga+52>>2];g[W>>2]=$;g[ea>>2]=_;g[fa>>2]=0.0;if(X&1){fa=Ob[c[(c[b>>2]|0)+20>>2]&127](b)|0;rc[c[(c[fa>>2]|0)+56>>2]&7](fa,f,Z);}i=e;return}case 4:{fa=c[d+28>>2]|0;ea=d+552|0;_=+g[ea>>2];$=+g[fa+4>>2];aa=+g[ea+16>>2];ba=+g[fa+8>>2];ca=+g[ea+32>>2];ha=+g[fa+12>>2];ia=+g[ea+4>>2];ja=+g[ea+20>>2];ka=+g[ea+36>>2];la=+g[ea+8>>2];ma=+g[ea+24>>2];na=+g[ea+40>>2];oa=+g[fa+20>>2];pa=+g[fa+24>>2];qa=+g[fa+28>>2];ra=+g[fa+36>>2];sa=+g[fa+40>>2];ta=+g[fa+44>>2];ua=+g[ea+48>>2];va=+g[ea+52>>2];wa=+g[ea+56>>2];xa=+g[fa+52>>2]+($*ua+ba*va+ha*wa);ya=oa*ua+pa*va+qa*wa+ +g[fa+56>>2];za=ra*ua+sa*va+ta*wa+ +g[fa+60>>2];g[f>>2]=_*$+aa*ba+ca*ha;fa=f+4|0;g[fa>>2]=$*ia+ba*ja+ha*ka;ea=f+8|0;g[ea>>2]=$*la+ba*ma+ha*na;W=f+12|0;g[W>>2]=0.0;ga=f+16|0;g[ga>>2]=_*oa+aa*pa+ca*qa;da=f+20|0;g[da>>2]=ia*oa+ja*pa+ka*qa;Aa=f+24|0;g[Aa>>2]=la*oa+ma*pa+na*qa;Ba=f+28|0;g[Ba>>2]=0.0;Ca=f+32|0;g[Ca>>2]=_*ra+aa*sa+ca*ta;Da=f+36|0;g[Da>>2]=ia*ra+ja*sa+ka*ta;Ea=f+40|0;g[Ea>>2]=la*ra+ma*sa+na*ta;Fa=f+44|0;g[Fa>>2]=0.0;Ga=f+48|0;g[Ga>>2]=xa;Ha=f+52|0;g[Ha>>2]=ya;Ia=f+56|0;g[Ia>>2]=za;Ja=f+60|0;g[Ja>>2]=0.0;if(!(X&1)){Ka=c[d+32>>2]|0;La=d+616|0;za=+g[La>>2];ya=+g[Ka+4>>2];xa=+g[La+16>>2];ta=+g[Ka+8>>2];na=+g[La+32>>2];sa=+g[Ka+12>>2];ma=+g[La+4>>2];ra=+g[La+20>>2];la=+g[La+36>>2];ka=+g[La+8>>2];ja=+g[La+24>>2];ia=+g[La+40>>2];ca=+g[Ka+20>>2];aa=+g[Ka+24>>2];_=+g[Ka+28>>2];qa=+g[Ka+36>>2];pa=+g[Ka+40>>2];oa=+g[Ka+44>>2];ha=+g[La+48>>2];ba=+g[La+52>>2];$=+g[La+56>>2];wa=+g[Ka+52>>2]+(ya*ha+ta*ba+sa*$);va=ca*ha+aa*ba+_*$+ +g[Ka+56>>2];ua=qa*ha+pa*ba+oa*$+ +g[Ka+60>>2];g[f>>2]=za*ya+xa*ta+na*sa;g[fa>>2]=ya*ma+ta*ra+sa*la;g[ea>>2]=ya*ka+ta*ja+sa*ia;g[W>>2]=0.0;g[ga>>2]=za*ca+xa*aa+na*_;g[da>>2]=ma*ca+ra*aa+la*_;g[Aa>>2]=ka*ca+ja*aa+ia*_;g[Ba>>2]=0.0;g[Ca>>2]=za*qa+xa*pa+na*oa;g[Da>>2]=ma*qa+ra*pa+la*oa;g[Ea>>2]=ka*qa+ja*pa+ia*oa;g[Fa>>2]=0.0;g[Ga>>2]=wa;g[Ha>>2]=va;g[Ia>>2]=ua;g[Ja>>2]=0.0}else{Ka=Ob[c[(c[b>>2]|0)+20>>2]&127](b)|0;rc[c[(c[Ka>>2]|0)+56>>2]&7](Ka,f,Z);Ka=c[d+32>>2]|0;La=d+616|0;ua=+g[La>>2];va=+g[Ka+4>>2];wa=+g[La+16>>2];oa=+g[Ka+8>>2];ia=+g[La+32>>2];pa=+g[Ka+12>>2];ja=+g[La+4>>2];qa=+g[La+20>>2];ka=+g[La+36>>2];la=+g[La+8>>2];ra=+g[La+24>>2];ma=+g[La+40>>2];na=+g[Ka+20>>2];xa=+g[Ka+24>>2];za=+g[Ka+28>>2];_=+g[Ka+36>>2];aa=+g[Ka+40>>2];ca=+g[Ka+44>>2];sa=+g[La+48>>2];ta=+g[La+52>>2];ya=+g[La+56>>2];$=+g[Ka+52>>2]+(va*sa+oa*ta+pa*ya);ba=na*sa+xa*ta+za*ya+ +g[Ka+56>>2];ha=_*sa+aa*ta+ca*ya+ +g[Ka+60>>2];g[f>>2]=ua*va+wa*oa+ia*pa;g[fa>>2]=va*ja+oa*qa+pa*ka;g[ea>>2]=va*la+oa*ra+pa*ma;g[W>>2]=0.0;g[ga>>2]=ua*na+wa*xa+ia*za;g[da>>2]=ja*na+qa*xa+ka*za;g[Aa>>2]=la*na+ra*xa+ma*za;g[Ba>>2]=0.0;g[Ca>>2]=ua*_+wa*aa+ia*ca;g[Da>>2]=ja*_+qa*aa+ka*ca;g[Ea>>2]=la*_+ra*aa+ma*ca;g[Fa>>2]=0.0;g[Ga>>2]=$;g[Ha>>2]=ba;g[Ia>>2]=ha;g[Ja>>2]=0.0;Ja=Ob[c[(c[b>>2]|0)+20>>2]&127](b)|0;rc[c[(c[Ja>>2]|0)+56>>2]&7](Ja,f,Z);}Ja=d+688|0;ha=+g[Ja>>2];ba=+g[Ja+4>>2];$=+vs(ha-ba);if(!($<-3.1415927410125732))if($>3.1415927410125732)Ma=$+-6.2831854820251465;else Ma=$;else Ma=$+6.2831854820251465;$=+vs(ha+ba);if(!($<-3.1415927410125732))if($>3.1415927410125732)Na=$+-6.2831854820251465;else Na=$;else Na=$+6.2831854820251465;if(Ma==Na){i=e;return}Ja=ba>0.0;if(!(Y&1)){i=e;return}c[h>>2]=c[ea>>2];c[h+4>>2]=c[Aa>>2];c[h+8>>2]=c[Ea>>2];g[h+12>>2]=0.0;c[j>>2]=c[f>>2];c[j+4>>2]=c[ga>>2];c[j+8>>2]=c[Ca>>2];g[j+12>>2]=0.0;Ca=Ob[c[(c[b>>2]|0)+20>>2]&127](b)|0;ga=c[(c[Ca>>2]|0)+60>>2]|0;c[l>>2]=0;c[l+4>>2]=0;c[l+8>>2]=0;c[l+12>>2]=0;Ub[ga&0](Ca,f+48|0,h,j,Z,Z,Ja?Ma:0.0,Ja?Na:6.2831854820251465,l,Ja,10.0);i=e;return}case 5:{Ja=d+28|0;l=c[Ja>>2]|0;j=d+300|0;Na=+g[j>>2];Ma=+g[l+4>>2];h=j+16|0;ba=+g[h>>2];$=+g[l+8>>2];Ca=j+32|0;ha=+g[Ca>>2];ca=+g[l+12>>2];ga=j+4|0;ma=+g[ga>>2];Ea=j+20|0;aa=+g[Ea>>2];Aa=j+36|0;ra=+g[Aa>>2];ea=j+8|0;_=+g[ea>>2];Ia=j+24|0;la=+g[Ia>>2];Ha=j+40|0;ka=+g[Ha>>2];qa=+g[l+20>>2];ja=+g[l+24>>2];ia=+g[l+28>>2];wa=+g[l+36>>2];ua=+g[l+40>>2];za=+g[l+44>>2];Ga=j+48|0;xa=+g[Ga>>2];Fa=j+52|0;na=+g[Fa>>2];Da=j+56|0;pa=+g[Da>>2];oa=+g[l+52>>2]+(Ma*xa+$*na+ca*pa);va=qa*xa+ja*na+ia*pa+ +g[l+56>>2];ya=wa*xa+ua*na+za*pa+ +g[l+60>>2];g[f>>2]=Na*Ma+ba*$+ha*ca;l=f+4|0;g[l>>2]=Ma*ma+$*aa+ca*ra;Ba=f+8|0;g[Ba>>2]=Ma*_+$*la+ca*ka;da=f+12|0;g[da>>2]=0.0;W=f+16|0;g[W>>2]=Na*qa+ba*ja+ha*ia;fa=f+20|0;g[fa>>2]=ma*qa+aa*ja+ra*ia;Ka=f+24|0;g[Ka>>2]=_*qa+la*ja+ka*ia;La=f+28|0;g[La>>2]=0.0;Oa=f+32|0;g[Oa>>2]=Na*wa+ba*ua+ha*za;Pa=f+36|0;g[Pa>>2]=ma*wa+aa*ua+ra*za;Qa=f+40|0;g[Qa>>2]=_*wa+la*ua+ka*za;Ra=f+44|0;g[Ra>>2]=0.0;Sa=f+48|0;g[Sa>>2]=oa;Ta=f+52|0;g[Ta>>2]=va;Ua=f+56|0;g[Ua>>2]=ya;Va=f+60|0;g[Va>>2]=0.0;if(!(X&1)){Wa=c[d+32>>2]|0;Xa=d+364|0;ya=+g[Xa>>2];va=+g[Wa+4>>2];oa=+g[Xa+16>>2];za=+g[Wa+8>>2];ka=+g[Xa+32>>2];ua=+g[Wa+12>>2];la=+g[Xa+4>>2];wa=+g[Xa+20>>2];_=+g[Xa+36>>2];ra=+g[Xa+8>>2];aa=+g[Xa+24>>2];ma=+g[Xa+40>>2];ha=+g[Wa+20>>2];ba=+g[Wa+24>>2];Na=+g[Wa+28>>2];ia=+g[Wa+36>>2];ja=+g[Wa+40>>2];qa=+g[Wa+44>>2];ca=+g[Xa+48>>2];$=+g[Xa+52>>2];Ma=+g[Xa+56>>2];pa=+g[Wa+52>>2]+(va*ca+za*$+ua*Ma);na=ha*ca+ba*$+Na*Ma+ +g[Wa+56>>2];xa=ia*ca+ja*$+qa*Ma+ +g[Wa+60>>2];g[f>>2]=ya*va+oa*za+ka*ua;g[l>>2]=va*la+za*wa+ua*_;g[Ba>>2]=va*ra+za*aa+ua*ma;g[da>>2]=0.0;g[W>>2]=ya*ha+oa*ba+ka*Na;g[fa>>2]=la*ha+wa*ba+_*Na;g[Ka>>2]=ra*ha+aa*ba+ma*Na;g[La>>2]=0.0;g[Oa>>2]=ya*ia+oa*ja+ka*qa;g[Pa>>2]=la*ia+wa*ja+_*qa;g[Qa>>2]=ra*ia+aa*ja+ma*qa;g[Ra>>2]=0.0;g[Sa>>2]=pa;g[Ta>>2]=na;g[Ua>>2]=xa;g[Va>>2]=0.0}else{Wa=Ob[c[(c[b>>2]|0)+20>>2]&127](b)|0;rc[c[(c[Wa>>2]|0)+56>>2]&7](Wa,f,Z);Wa=c[d+32>>2]|0;Xa=d+364|0;xa=+g[Xa>>2];na=+g[Wa+4>>2];pa=+g[Xa+16>>2];qa=+g[Wa+8>>2];ma=+g[Xa+32>>2];ja=+g[Wa+12>>2];aa=+g[Xa+4>>2];ia=+g[Xa+20>>2];ra=+g[Xa+36>>2];_=+g[Xa+8>>2];wa=+g[Xa+24>>2];la=+g[Xa+40>>2];ka=+g[Wa+20>>2];oa=+g[Wa+24>>2];ya=+g[Wa+28>>2];Na=+g[Wa+36>>2];ba=+g[Wa+40>>2];ha=+g[Wa+44>>2];ua=+g[Xa+48>>2];za=+g[Xa+52>>2];va=+g[Xa+56>>2];Ma=+g[Wa+52>>2]+(na*ua+qa*za+ja*va);$=ka*ua+oa*za+ya*va+ +g[Wa+56>>2];ca=Na*ua+ba*za+ha*va+ +g[Wa+60>>2];g[f>>2]=xa*na+pa*qa+ma*ja;g[l>>2]=na*aa+qa*ia+ja*ra;g[Ba>>2]=na*_+qa*wa+ja*la;g[da>>2]=0.0;g[W>>2]=xa*ka+pa*oa+ma*ya;g[fa>>2]=aa*ka+ia*oa+ra*ya;g[Ka>>2]=_*ka+wa*oa+la*ya;g[La>>2]=0.0;g[Oa>>2]=xa*Na+pa*ba+ma*ha;g[Pa>>2]=aa*Na+ia*ba+ra*ha;g[Qa>>2]=_*Na+wa*ba+la*ha;g[Ra>>2]=0.0;g[Sa>>2]=Ma;g[Ta>>2]=$;g[Ua>>2]=ca;g[Va>>2]=0.0;Wa=Ob[c[(c[b>>2]|0)+20>>2]&127](b)|0;rc[c[(c[Wa>>2]|0)+56>>2]&7](Wa,f,Z);}if(Y&1){Jf(m,d,6.0868353843688965,Z);ca=+g[m>>2];Wa=m+4|0;$=+g[Wa>>2];Xa=m+8|0;Ma=+g[Xa>>2];ha=ca*+g[W>>2]+$*+g[fa>>2]+Ma*+g[Ka>>2]+ +g[Ta>>2];la=ca*+g[Oa>>2]+$*+g[Pa>>2]+Ma*+g[Qa>>2]+ +g[Ua>>2];g[m>>2]=ca*+g[f>>2]+$*+g[l>>2]+Ma*+g[Ba>>2]+ +g[Sa>>2];g[Wa>>2]=ha;g[Xa>>2]=la;g[m+12>>2]=0.0;Xa=n+4|0;Wa=n+8|0;Ya=n+12|0;Za=f+48|0;_a=0;do{Jf(n,d,+(_a|0)*6.283185005187988*.03125,Z);la=+g[n>>2];ha=+g[Xa>>2];Ma=+g[Wa>>2];$=la*+g[W>>2]+ha*+g[fa>>2]+Ma*+g[Ka>>2]+ +g[Ta>>2];ca=la*+g[Oa>>2]+ha*+g[Pa>>2]+Ma*+g[Qa>>2]+ +g[Ua>>2];g[n>>2]=la*+g[f>>2]+ha*+g[l>>2]+Ma*+g[Ba>>2]+ +g[Sa>>2];g[Xa>>2]=$;g[Wa>>2]=ca;g[Ya>>2]=0.0;$a=Ob[c[(c[b>>2]|0)+20>>2]&127](b)|0;ab=c[(c[$a>>2]|0)+8>>2]|0;c[o>>2]=0;c[o+4>>2]=0;c[o+8>>2]=0;c[o+12>>2]=0;tc[ab&63]($a,m,n,o);if(!(_a&3)){$a=Ob[c[(c[b>>2]|0)+20>>2]&127](b)|0;ab=c[(c[$a>>2]|0)+8>>2]|0;c[p>>2]=0;c[p+4>>2]=0;c[p+8>>2]=0;c[p+12>>2]=0;tc[ab&63]($a,Za,n,p);};c[m>>2]=c[n>>2];c[m+4>>2]=c[n+4>>2];c[m+8>>2]=c[n+8>>2];c[m+12>>2]=c[n+12>>2];_a=_a+1|0}while((_a|0)!=32);ca=+g[d+452>>2];$=+g[d+512>>2];_a=c[d+32>>2]|0;if(+g[_a+368>>2]>0.0){n=d+364|0;Ma=+g[n>>2];ha=+g[_a+4>>2];la=+g[n+16>>2];ba=+g[_a+8>>2];wa=+g[n+32>>2];Na=+g[_a+12>>2];_=+g[n+4>>2];ra=+g[n+20>>2];ia=+g[n+36>>2];aa=+g[n+8>>2];ma=+g[n+24>>2];pa=+g[n+40>>2];xa=+g[_a+20>>2];ya=+g[_a+24>>2];oa=+g[_a+28>>2];ka=+g[_a+36>>2];ja=+g[_a+40>>2];qa=+g[_a+44>>2];na=+g[n+48>>2];va=+g[n+52>>2];za=+g[n+56>>2];bb=ka*na+ja*va+qa*za+ +g[_a+60>>2];cb=xa*na+ya*va+oa*za+ +g[_a+56>>2];db=+g[_a+52>>2]+(ha*na+ba*va+Na*za);eb=aa*ka+ma*ja+pa*qa;fb=_*ka+ra*ja+ia*qa;gb=Ma*ka+la*ja+wa*qa;hb=aa*xa+ma*ya+pa*oa;ib=_*xa+ra*ya+ia*oa;jb=Ma*xa+la*ya+wa*oa;kb=ha*aa+ba*ma+Na*pa;lb=ha*_+ba*ra+Na*ia;mb=Ma*ha+la*ba+wa*Na}else{_a=c[Ja>>2]|0;Na=+g[j>>2];wa=+g[_a+4>>2];ba=+g[h>>2];la=+g[_a+8>>2];ha=+g[Ca>>2];Ma=+g[_a+12>>2];ia=+g[ga>>2];ra=+g[Ea>>2];_=+g[Aa>>2];pa=+g[ea>>2];ma=+g[Ia>>2];aa=+g[Ha>>2];oa=+g[_a+20>>2];ya=+g[_a+24>>2];xa=+g[_a+28>>2];qa=+g[_a+36>>2];ja=+g[_a+40>>2];ka=+g[_a+44>>2];za=+g[Ga>>2];va=+g[Fa>>2];na=+g[Da>>2];bb=qa*za+ja*va+ka*na+ +g[_a+60>>2];cb=oa*za+ya*va+xa*na+ +g[_a+56>>2];db=+g[_a+52>>2]+(wa*za+la*va+Ma*na);eb=pa*qa+ma*ja+aa*ka;fb=ia*qa+ra*ja+_*ka;gb=Na*qa+ba*ja+ha*ka;hb=pa*oa+ma*ya+aa*xa;ib=ia*oa+ra*ya+_*xa;jb=Na*oa+ba*ya+ha*xa;kb=wa*pa+la*ma+Ma*aa;lb=wa*ia+la*ra+Ma*_;mb=Na*wa+ba*la+ha*Ma}g[f>>2]=mb;g[l>>2]=lb;g[Ba>>2]=kb;g[da>>2]=0.0;g[W>>2]=jb;g[fa>>2]=ib;g[Ka>>2]=hb;g[La>>2]=0.0;g[Oa>>2]=gb;g[Pa>>2]=fb;g[Qa>>2]=eb;g[Ra>>2]=0.0;g[Sa>>2]=db;g[Ta>>2]=cb;g[Ua>>2]=bb;g[Va>>2]=0.0;c[q>>2]=c[Za>>2];c[q+4>>2]=c[Za+4>>2];c[q+8>>2]=c[Za+8>>2];c[q+12>>2]=c[Za+12>>2];g[r>>2]=mb;g[r+4>>2]=jb;g[r+8>>2]=gb;g[r+12>>2]=0.0;g[s>>2]=lb;g[s+4>>2]=ib;g[s+8>>2]=fb;g[s+12>>2]=0.0;Za=Ob[c[(c[b>>2]|0)+20>>2]&127](b)|0;Va=c[(c[Za>>2]|0)+60>>2]|0;c[t>>2]=0;c[t+4>>2]=0;c[t+8>>2]=0;c[t+12>>2]=0;Ub[Va&0](Za,q,r,s,Z,Z,-$-ca,ca-$,t,1,10.0);}i=e;return}case 6:case 9:{t=d+1064|0;c[f>>2]=c[t>>2];c[f+4>>2]=c[t+4>>2];c[f+8>>2]=c[t+8>>2];c[f+12>>2]=c[t+12>>2];s=f+16|0;r=t+16|0;c[s>>2]=c[r>>2];c[s+4>>2]=c[r+4>>2];c[s+8>>2]=c[r+8>>2];c[s+12>>2]=c[r+12>>2];q=f+32|0;Za=t+32|0;c[q>>2]=c[Za>>2];c[q+4>>2]=c[Za+4>>2];c[q+8>>2]=c[Za+8>>2];c[q+12>>2]=c[Za+12>>2];Va=f+48|0;Ua=t+48|0;c[Va>>2]=c[Ua>>2];c[Va+4>>2]=c[Ua+4>>2];c[Va+8>>2]=c[Ua+8>>2];c[Va+12>>2]=c[Ua+12>>2];if(!(X&1)){Ta=d+1128|0;c[f>>2]=c[Ta>>2];c[f+4>>2]=c[Ta+4>>2];c[f+8>>2]=c[Ta+8>>2];c[f+12>>2]=c[Ta+12>>2];Sa=Ta+16|0;c[s>>2]=c[Sa>>2];c[s+4>>2]=c[Sa+4>>2];c[s+8>>2]=c[Sa+8>>2];c[s+12>>2]=c[Sa+12>>2];Sa=Ta+32|0;c[q>>2]=c[Sa>>2];c[q+4>>2]=c[Sa+4>>2];c[q+8>>2]=c[Sa+8>>2];c[q+12>>2]=c[Sa+12>>2];Sa=Ta+48|0;c[Va>>2]=c[Sa>>2];c[Va+4>>2]=c[Sa+4>>2];c[Va+8>>2]=c[Sa+8>>2];c[Va+12>>2]=c[Sa+12>>2]}else{Sa=Ob[c[(c[b>>2]|0)+20>>2]&127](b)|0;rc[c[(c[Sa>>2]|0)+56>>2]&7](Sa,f,Z);Sa=d+1128|0;c[f>>2]=c[Sa>>2];c[f+4>>2]=c[Sa+4>>2];c[f+8>>2]=c[Sa+8>>2];c[f+12>>2]=c[Sa+12>>2];Ta=Sa+16|0;c[s>>2]=c[Ta>>2];c[s+4>>2]=c[Ta+4>>2];c[s+8>>2]=c[Ta+8>>2];c[s+12>>2]=c[Ta+12>>2];Ta=Sa+32|0;c[q>>2]=c[Ta>>2];c[q+4>>2]=c[Ta+4>>2];c[q+8>>2]=c[Ta+8>>2];c[q+12>>2]=c[Ta+12>>2];Ta=Sa+48|0;c[Va>>2]=c[Ta>>2];c[Va+4>>2]=c[Ta+4>>2];c[Va+8>>2]=c[Ta+8>>2];c[Va+12>>2]=c[Ta+12>>2];Ta=Ob[c[(c[b>>2]|0)+20>>2]&127](b)|0;rc[c[(c[Ta>>2]|0)+56>>2]&7](Ta,f,Z);}if(Y&1){c[f>>2]=c[t>>2];c[f+4>>2]=c[t+4>>2];c[f+8>>2]=c[t+8>>2];c[f+12>>2]=c[t+12>>2];c[s>>2]=c[r>>2];c[s+4>>2]=c[r+4>>2];c[s+8>>2]=c[r+8>>2];c[s+12>>2]=c[r+12>>2];c[q>>2]=c[Za>>2];c[q+4>>2]=c[Za+4>>2];c[q+8>>2]=c[Za+8>>2];c[q+12>>2]=c[Za+12>>2];c[Va>>2]=c[Ua>>2];c[Va+4>>2]=c[Ua+4>>2];c[Va+8>>2]=c[Ua+8>>2];c[Va+12>>2]=c[Ua+12>>2];Ta=d+1128|0;Sa=Ta+48|0;c[u>>2]=c[f+8>>2];c[u+4>>2]=c[f+24>>2];c[u+8>>2]=c[f+40>>2];g[u+12>>2]=0.0;Ra=f+16|0;Qa=f+32|0;c[v>>2]=c[f>>2];Pa=v+4|0;c[Pa>>2]=c[Ra>>2];Oa=v+8|0;c[Oa>>2]=c[Qa>>2];La=v+12|0;g[La>>2]=0.0;Ka=d+932|0;$=+g[Ka>>2];ca=+g[Ka+4>>2];Ka=d+996|0;fb=+g[Ka>>2];ib=+g[Ka+4>>2];Ka=Ob[c[(c[b>>2]|0)+20>>2]&127](b)|0;fa=c[(c[Ka>>2]|0)+64>>2]|0;c[w>>2]=0;c[w+4>>2]=0;c[w+8>>2]=0;c[w+12>>2]=0;kc[fa&0](Ka,Sa,u,v,Z*.8999999761581421,$,ca,fb,ib,w,10.0,1);w=c[f+4>>2]|0;u=c[f+20>>2]|0;Ka=c[f+36>>2]|0;c[v>>2]=w;c[Pa>>2]=u;c[Oa>>2]=Ka;g[La>>2]=0.0;ib=+g[d+1196>>2];fb=+g[d+1200>>2];ca=+R(+ib);$=+S(+ib);ib=+R(+fb);lb=+S(+fb);fb=(c[k>>2]=w,+g[k>>2]);gb=(c[k>>2]=u,+g[k>>2]);jb=(c[k>>2]=Ka,+g[k>>2]);g[x>>2]=ca*ib*fb+ca*lb*gb-$*jb;g[x+4>>2]=ib*gb-lb*fb;g[x+8>>2]=$*ib*fb+$*lb*gb+ca*jb;c[f>>2]=c[Ta>>2];c[f+4>>2]=c[Ta+4>>2];c[f+8>>2]=c[Ta+8>>2];c[f+12>>2]=c[Ta+12>>2];Ka=Ta+16|0;c[s>>2]=c[Ka>>2];c[s+4>>2]=c[Ka+4>>2];c[s+8>>2]=c[Ka+8>>2];c[s+12>>2]=c[Ka+12>>2];Ka=Ta+32|0;c[q>>2]=c[Ka>>2];c[q+4>>2]=c[Ka+4>>2];c[q+8>>2]=c[Ka+8>>2];c[q+12>>2]=c[Ka+12>>2];c[Va>>2]=c[Sa>>2];c[Va+4>>2]=c[Sa+4>>2];c[Va+8>>2]=c[Sa+8>>2];c[Va+12>>2]=c[Sa+12>>2];jb=-+g[Ra>>2];ca=-+g[Qa>>2];g[y>>2]=-+g[f>>2];g[y+4>>2]=jb;g[y+8>>2]=ca;g[y+12>>2]=0.0;Qa=d+868|0;ca=+g[Qa>>2];jb=+g[Qa+4>>2];if(!(ca>jb)){if(ca<jb){Qa=Ob[c[(c[b>>2]|0)+20>>2]&127](b)|0;Ra=c[(c[Qa>>2]|0)+60>>2]|0;c[A>>2]=0;c[A+4>>2]=0;c[A+8>>2]=0;c[A+12>>2]=0;Ub[Ra&0](Qa,Sa,y,x,Z,Z,ca,jb,A,1,10.0);}}else{A=Ob[c[(c[b>>2]|0)+20>>2]&127](b)|0;Qa=c[(c[A>>2]|0)+60>>2]|0;c[z>>2]=0;c[z+4>>2]=0;c[z+8>>2]=0;c[z+12>>2]=0;Ub[Qa&0](A,Sa,y,x,Z,Z,-3.1415927410125732,3.1415927410125732,z,0,10.0);};c[f>>2]=c[t>>2];c[f+4>>2]=c[t+4>>2];c[f+8>>2]=c[t+8>>2];c[f+12>>2]=c[t+12>>2];c[s>>2]=c[r>>2];c[s+4>>2]=c[r+4>>2];c[s+8>>2]=c[r+8>>2];c[s+12>>2]=c[r+12>>2];c[q>>2]=c[Za>>2];c[q+4>>2]=c[Za+4>>2];c[q+8>>2]=c[Za+8>>2];c[q+12>>2]=c[Za+12>>2];c[Va>>2]=c[Ua>>2];c[Va+4>>2]=c[Ua+4>>2];c[Va+8>>2]=c[Ua+8>>2];c[Va+12>>2]=c[Ua+12>>2];Ua=d+680|0;c[B>>2]=c[Ua>>2];c[B+4>>2]=c[Ua+4>>2];c[B+8>>2]=c[Ua+8>>2];c[B+12>>2]=c[Ua+12>>2];Va=Ua+16|0;c[C>>2]=c[Va>>2];c[C+4>>2]=c[Va+4>>2];c[C+8>>2]=c[Va+8>>2];c[C+12>>2]=c[Va+12>>2];Va=Ob[c[(c[b>>2]|0)+20>>2]&127](b)|0;Ua=c[(c[Va>>2]|0)+72>>2]|0;c[D>>2]=0;c[D+4>>2]=0;c[D+8>>2]=0;c[D+12>>2]=0;Ib[Ua&31](Va,B,C,f,D);}i=e;return}case 12:{D=d+1204|0;c[f>>2]=c[D>>2];c[f+4>>2]=c[D+4>>2];c[f+8>>2]=c[D+8>>2];c[f+12>>2]=c[D+12>>2];C=f+16|0;B=D+16|0;c[C>>2]=c[B>>2];c[C+4>>2]=c[B+4>>2];c[C+8>>2]=c[B+8>>2];c[C+12>>2]=c[B+12>>2];Va=f+32|0;Ua=D+32|0;c[Va>>2]=c[Ua>>2];c[Va+4>>2]=c[Ua+4>>2];c[Va+8>>2]=c[Ua+8>>2];c[Va+12>>2]=c[Ua+12>>2];Za=f+48|0;q=D+48|0;c[Za>>2]=c[q>>2];c[Za+4>>2]=c[q+4>>2];c[Za+8>>2]=c[q+8>>2];c[Za+12>>2]=c[q+12>>2];if(!(X&1)){r=d+1268|0;c[f>>2]=c[r>>2];c[f+4>>2]=c[r+4>>2];c[f+8>>2]=c[r+8>>2];c[f+12>>2]=c[r+12>>2];s=r+16|0;c[C>>2]=c[s>>2];c[C+4>>2]=c[s+4>>2];c[C+8>>2]=c[s+8>>2];c[C+12>>2]=c[s+12>>2];s=r+32|0;c[Va>>2]=c[s>>2];c[Va+4>>2]=c[s+4>>2];c[Va+8>>2]=c[s+8>>2];c[Va+12>>2]=c[s+12>>2];s=r+48|0;c[Za>>2]=c[s>>2];c[Za+4>>2]=c[s+4>>2];c[Za+8>>2]=c[s+8>>2];c[Za+12>>2]=c[s+12>>2]}else{s=Ob[c[(c[b>>2]|0)+20>>2]&127](b)|0;rc[c[(c[s>>2]|0)+56>>2]&7](s,f,Z);s=d+1268|0;c[f>>2]=c[s>>2];c[f+4>>2]=c[s+4>>2];c[f+8>>2]=c[s+8>>2];c[f+12>>2]=c[s+12>>2];r=s+16|0;c[C>>2]=c[r>>2];c[C+4>>2]=c[r+4>>2];c[C+8>>2]=c[r+8>>2];c[C+12>>2]=c[r+12>>2];r=s+32|0;c[Va>>2]=c[r>>2];c[Va+4>>2]=c[r+4>>2];c[Va+8>>2]=c[r+8>>2];c[Va+12>>2]=c[r+12>>2];r=s+48|0;c[Za>>2]=c[r>>2];c[Za+4>>2]=c[r+4>>2];c[Za+8>>2]=c[r+8>>2];c[Za+12>>2]=c[r+12>>2];r=Ob[c[(c[b>>2]|0)+20>>2]&127](b)|0;rc[c[(c[r>>2]|0)+56>>2]&7](r,f,Z);}if(Y&1){c[f>>2]=c[D>>2];c[f+4>>2]=c[D+4>>2];c[f+8>>2]=c[D+8>>2];c[f+12>>2]=c[D+12>>2];c[C>>2]=c[B>>2];c[C+4>>2]=c[B+4>>2];c[C+8>>2]=c[B+8>>2];c[C+12>>2]=c[B+12>>2];c[Va>>2]=c[Ua>>2];c[Va+4>>2]=c[Ua+4>>2];c[Va+8>>2]=c[Ua+8>>2];c[Va+12>>2]=c[Ua+12>>2];c[Za>>2]=c[q>>2];c[Za+4>>2]=c[q+4>>2];c[Za+8>>2]=c[q+8>>2];c[Za+12>>2]=c[q+12>>2];r=d+1268|0;s=r+48|0;c[E>>2]=c[f+8>>2];c[E+4>>2]=c[f+24>>2];c[E+8>>2]=c[f+40>>2];g[E+12>>2]=0.0;t=f+16|0;z=f+32|0;c[F>>2]=c[f>>2];x=F+4|0;c[x>>2]=c[t>>2];y=F+8|0;c[y>>2]=c[z>>2];Sa=F+12|0;g[Sa>>2]=0.0;A=d+1040|0;jb=+g[A>>2];ca=+g[A+4>>2];A=d+1120|0;gb=+g[A>>2];lb=+g[A+4>>2];A=Ob[c[(c[b>>2]|0)+20>>2]&127](b)|0;Qa=c[(c[A>>2]|0)+64>>2]|0;c[G>>2]=0;c[G+4>>2]=0;c[G+8>>2]=0;c[G+12>>2]=0;kc[Qa&0](A,s,E,F,Z*.8999999761581421,jb,ca,gb,lb,G,10.0,1);G=c[f+4>>2]|0;E=c[f+20>>2]|0;A=c[f+36>>2]|0;c[F>>2]=G;c[x>>2]=E;c[y>>2]=A;g[Sa>>2]=0.0;lb=+g[d+1336>>2];gb=+g[d+1340>>2];ca=+R(+lb);jb=+S(+lb);lb=+R(+gb);$=+S(+gb);gb=(c[k>>2]=G,+g[k>>2]);fb=(c[k>>2]=E,+g[k>>2]);ib=(c[k>>2]=A,+g[k>>2]);g[H>>2]=ca*lb*gb+ca*$*fb-jb*ib;g[H+4>>2]=lb*fb-$*gb;g[H+8>>2]=jb*lb*gb+jb*$*fb+ca*ib;c[f>>2]=c[r>>2];c[f+4>>2]=c[r+4>>2];c[f+8>>2]=c[r+8>>2];c[f+12>>2]=c[r+12>>2];A=r+16|0;c[C>>2]=c[A>>2];c[C+4>>2]=c[A+4>>2];c[C+8>>2]=c[A+8>>2];c[C+12>>2]=c[A+12>>2];A=r+32|0;c[Va>>2]=c[A>>2];c[Va+4>>2]=c[A+4>>2];c[Va+8>>2]=c[A+8>>2];c[Va+12>>2]=c[A+12>>2];c[Za>>2]=c[s>>2];c[Za+4>>2]=c[s+4>>2];c[Za+8>>2]=c[s+8>>2];c[Za+12>>2]=c[s+12>>2];ib=-+g[t>>2];ca=-+g[z>>2];g[I>>2]=-+g[f>>2];g[I+4>>2]=ib;g[I+8>>2]=ca;g[I+12>>2]=0.0;ca=+g[d+960>>2];ib=+g[d+964>>2];if(!(ca>ib)){if(ca<ib){z=Ob[c[(c[b>>2]|0)+20>>2]&127](b)|0;t=c[(c[z>>2]|0)+60>>2]|0;c[K>>2]=0;c[K+4>>2]=0;c[K+8>>2]=0;c[K+12>>2]=0;Ub[t&0](z,s,I,H,Z,Z,ca,ib,K,1,10.0);}}else{K=Ob[c[(c[b>>2]|0)+20>>2]&127](b)|0;z=c[(c[K>>2]|0)+60>>2]|0;c[J>>2]=0;c[J+4>>2]=0;c[J+8>>2]=0;c[J+12>>2]=0;Ub[z&0](K,s,I,H,Z,Z,-3.1415927410125732,3.1415927410125732,J,0,10.0);};c[f>>2]=c[D>>2];c[f+4>>2]=c[D+4>>2];c[f+8>>2]=c[D+8>>2];c[f+12>>2]=c[D+12>>2];c[C>>2]=c[B>>2];c[C+4>>2]=c[B+4>>2];c[C+8>>2]=c[B+8>>2];c[C+12>>2]=c[B+12>>2];c[Va>>2]=c[Ua>>2];c[Va+4>>2]=c[Ua+4>>2];c[Va+8>>2]=c[Ua+8>>2];c[Va+12>>2]=c[Ua+12>>2];c[Za>>2]=c[q>>2];c[Za+4>>2]=c[q+4>>2];c[Za+8>>2]=c[q+8>>2];c[Za+12>>2]=c[q+12>>2];q=d+680|0;c[L>>2]=c[q>>2];c[L+4>>2]=c[q+4>>2];c[L+8>>2]=c[q+8>>2];c[L+12>>2]=c[q+12>>2];Za=q+16|0;c[M>>2]=c[Za>>2];c[M+4>>2]=c[Za+4>>2];c[M+8>>2]=c[Za+8>>2];c[M+12>>2]=c[Za+12>>2];Za=Ob[c[(c[b>>2]|0)+20>>2]&127](b)|0;q=c[(c[Za>>2]|0)+72>>2]|0;c[N>>2]=0;c[N+4>>2]=0;c[N+8>>2]=0;c[N+12>>2]=0;Ib[q&31](Za,L,M,f,N);}i=e;return}case 7:{N=d+824|0;c[f>>2]=c[N>>2];c[f+4>>2]=c[N+4>>2];c[f+8>>2]=c[N+8>>2];c[f+12>>2]=c[N+12>>2];M=f+16|0;L=N+16|0;c[M>>2]=c[L>>2];c[M+4>>2]=c[L+4>>2];c[M+8>>2]=c[L+8>>2];c[M+12>>2]=c[L+12>>2];L=f+32|0;Za=N+32|0;c[L>>2]=c[Za>>2];c[L+4>>2]=c[Za+4>>2];c[L+8>>2]=c[Za+8>>2];c[L+12>>2]=c[Za+12>>2];Za=f+48|0;q=N+48|0;c[Za>>2]=c[q>>2];c[Za+4>>2]=c[q+4>>2];c[Za+8>>2]=c[q+8>>2];c[Za+12>>2]=c[q+12>>2];if(!(X&1)){X=d+888|0;c[f>>2]=c[X>>2];c[f+4>>2]=c[X+4>>2];c[f+8>>2]=c[X+8>>2];c[f+12>>2]=c[X+12>>2];q=X+16|0;c[M>>2]=c[q>>2];c[M+4>>2]=c[q+4>>2];c[M+8>>2]=c[q+8>>2];c[M+12>>2]=c[q+12>>2];q=X+32|0;c[L>>2]=c[q>>2];c[L+4>>2]=c[q+4>>2];c[L+8>>2]=c[q+8>>2];c[L+12>>2]=c[q+12>>2];q=X+48|0;c[Za>>2]=c[q>>2];c[Za+4>>2]=c[q+4>>2];c[Za+8>>2]=c[q+8>>2];c[Za+12>>2]=c[q+12>>2]}else{q=Ob[c[(c[b>>2]|0)+20>>2]&127](b)|0;rc[c[(c[q>>2]|0)+56>>2]&7](q,f,Z);q=d+888|0;c[f>>2]=c[q>>2];c[f+4>>2]=c[q+4>>2];c[f+8>>2]=c[q+8>>2];c[f+12>>2]=c[q+12>>2];X=q+16|0;c[M>>2]=c[X>>2];c[M+4>>2]=c[X+4>>2];c[M+8>>2]=c[X+8>>2];c[M+12>>2]=c[X+12>>2];X=q+32|0;c[L>>2]=c[X>>2];c[L+4>>2]=c[X+4>>2];c[L+8>>2]=c[X+8>>2];c[L+12>>2]=c[X+12>>2];X=q+48|0;c[Za>>2]=c[X>>2];c[Za+4>>2]=c[X+4>>2];c[Za+8>>2]=c[X+8>>2];c[Za+12>>2]=c[X+12>>2];X=Ob[c[(c[b>>2]|0)+20>>2]&127](b)|0;rc[c[(c[X>>2]|0)+56>>2]&7](X,f,Z);}if(Y&1){Y=d+888|0;f=(a[d+180>>0]|0)!=0?N:Y;N=c[f>>2]|0;X=c[f+4>>2]|0;Za=c[f+16>>2]|0;q=c[f+20>>2]|0;L=c[f+32>>2]|0;M=c[f+36>>2]|0;ib=+g[f+48>>2];ca=+g[f+52>>2];fb=+g[f+56>>2];$=+g[d+184>>2];jb=(c[k>>2]=N,+g[k>>2]);gb=(c[k>>2]=X,+g[k>>2])*0.0;lb=+g[f+8>>2]*0.0;mb=(c[k>>2]=Za,+g[k>>2]);bb=(c[k>>2]=q,+g[k>>2])*0.0;cb=+g[f+24>>2]*0.0;db=(c[k>>2]=L,+g[k>>2]);eb=(c[k>>2]=M,+g[k>>2])*0.0;hb=+g[f+40>>2]*0.0;g[O>>2]=ib+(lb+(gb+jb*$));g[O+4>>2]=ca+(cb+(bb+mb*$));g[O+8>>2]=fb+(hb+(eb+db*$));g[O+12>>2]=0.0;$=+g[d+188>>2];g[P>>2]=ib+(lb+(gb+jb*$));g[P+4>>2]=ca+(cb+(bb+mb*$));g[P+8>>2]=fb+(hb+(eb+db*$));g[P+12>>2]=0.0;f=Ob[c[(c[b>>2]|0)+20>>2]&127](b)|0;Ua=c[(c[f>>2]|0)+8>>2]|0;c[Q>>2]=0;c[Q+4>>2]=0;c[Q+8>>2]=0;c[Q+12>>2]=0;tc[Ua&63](f,O,P,Q);c[T>>2]=N;c[T+4>>2]=Za;c[T+8>>2]=L;g[T+12>>2]=0.0;c[U>>2]=X;c[U+4>>2]=q;c[U+8>>2]=M;g[U+12>>2]=0.0;$=+g[d+192>>2];db=+g[d+196>>2];d=Ob[c[(c[b>>2]|0)+20>>2]&127](b)|0;b=c[(c[d>>2]|0)+60>>2]|0;c[V>>2]=0;c[V+4>>2]=0;c[V+8>>2]=0;c[V+12>>2]=0;Ub[b&0](d,Y+48|0,T,U,Z,Z,$,db,V,1,10.0);}i=e;return}default:{i=e;return}}}function Hh(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;e=b+273|0;f=b+200|0;if((a[e>>0]|0)!=0?(g=c[f>>2]|0,(g|0)!=0):0){c[3710]=(c[3710]|0)+1;xs(c[g+-4>>2]|0);}a[e>>0]=0;c[f>>2]=d;c[(c[b+196>>2]|0)+8>>2]=d;return}function Ih(a){a=a|0;return c[a+200>>2]|0}function Jh(a){a=a|0;return c[a+212>>2]|0}function Kh(a,b){a=a|0;b=b|0;return c[(c[a+220>>2]|0)+(b<<2)>>2]|0}function Lh(a,b){a=a|0;b=b|0;return c[(c[a+220>>2]|0)+(b<<2)>>2]|0}function Mh(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;Kb[c[(c[b>>2]|0)+32>>2]&255](b);d=Wb[c[(c[b>>2]|0)+16>>2]&31](b,104,1)|0;e=c[d+8>>2]|0;f=e;g=f+104|0;do{c[f>>2]=0;f=f+4|0}while((f|0)<(g|0));c[e+88>>2]=c[a+248>>2];c[e+92>>2]=c[a+252>>2];c[e+96>>2]=c[a+256>>2];c[e+100>>2]=c[a+260>>2];c[e>>2]=c[a+92>>2];c[e+4>>2]=c[a+96>>2];c[e+8>>2]=c[a+100>>2];c[e+12>>2]=c[a+104>>2];c[e+16>>2]=c[a+108>>2];c[e+20>>2]=c[a+116>>2];c[e+24>>2]=c[a+120>>2];c[e+28>>2]=c[a+124>>2];c[e+32>>2]=c[a+128>>2];c[e+36>>2]=c[a+132>>2];c[e+40>>2]=c[a+140>>2];c[e+44>>2]=c[a+144>>2];c[e+48>>2]=c[a+148>>2];c[e+52>>2]=c[a+152>>2];c[e+56>>2]=c[a+168>>2];c[e+60>>2]=c[a+172>>2];c[e+64>>2]=c[a+112>>2];c[e+68>>2]=c[a+156>>2];c[e+72>>2]=c[a+160>>2];c[e+76>>2]=c[a+164>>2];c[e+80>>2]=c[a+136>>2];Ib[c[(c[b>>2]|0)+20>>2]&31](b,d,2136,1145853764,e);fk(a,b);e=a+8|0;d=c[e>>2]|0;if((d|0)>0){f=a+16|0;g=d;d=0;while(1){h=c[(c[f>>2]|0)+(d<<2)>>2]|0;if(!(c[h+236>>2]&2))i=g;else{j=Ob[c[(c[h>>2]|0)+16>>2]&127](h)|0;k=Wb[c[(c[b>>2]|0)+16>>2]&31](b,j,1)|0;j=Wb[c[(c[h>>2]|0)+20>>2]&31](h,c[k+8>>2]|0,b)|0;Ib[c[(c[b>>2]|0)+20>>2]&31](b,k,j,1497645650,h);i=c[e>>2]|0}d=d+1|0;if((d|0)>=(i|0))break;else g=i}}i=a+212|0;if((c[i>>2]|0)<=0){l=c[b>>2]|0;m=l+36|0;n=c[m>>2]|0;Kb[n&255](b);return}g=a+220|0;a=0;do{d=c[(c[g>>2]|0)+(a<<2)>>2]|0;e=Ob[c[(c[d>>2]|0)+36>>2]&127](d)|0;f=Wb[c[(c[b>>2]|0)+16>>2]&31](b,e,1)|0;e=Wb[c[(c[d>>2]|0)+40>>2]&31](d,c[f+8>>2]|0,b)|0;Ib[c[(c[b>>2]|0)+20>>2]&31](b,f,e,1397641027,d);a=a+1|0}while((a|0)<(c[i>>2]|0));l=c[b>>2]|0;m=l+36|0;n=c[m>>2]|0;Kb[n&255](b);return}
function fk(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0;e=i;i=i+80|0;f=e;g=f+16|0;a[g>>0]=1;h=f+12|0;c[h>>2]=0;j=f+4|0;c[j>>2]=0;k=f+8|0;c[k>>2]=0;l=f+36|0;a[l>>0]=1;m=f+32|0;c[m>>2]=0;n=f+24|0;c[n>>2]=0;o=f+28|0;c[o>>2]=0;p=f+56|0;a[p>>0]=1;q=f+52|0;c[q>>2]=0;r=f+44|0;c[r>>2]=0;s=f+48|0;c[s>>2]=0;t=f+76|0;a[t>>0]=1;u=f+72|0;c[u>>2]=0;v=f+64|0;c[v>>2]=0;w=f+68|0;c[w>>2]=0;x=b+8|0;y=c[x>>2]|0;if((y|0)<=0){ik(f);i=e;return}z=b+16|0;b=y;y=0;A=0;B=0;C=0;D=0;while(1){E=c[(c[(c[z>>2]|0)+(D<<2)>>2]|0)+192>>2]|0;F=E;G=F+~(F<<15)|0;H=(G>>10^G)*9|0;G=H>>6^H;H=G+~(G<<11)|0;G=H>>16^H;H=G&y+-1;I=H>>>0<A>>>0;a:do if(I){J=c[B+(H<<2)>>2]|0;if((J|0)!=-1){K=c[u>>2]|0;L=J;while(1){if((E|0)==(c[K+(L<<3)>>2]|0)){M=9;break}J=c[C+(L<<2)>>2]|0;if((J|0)==-1)break;else L=J}if((M|0)==9?(M=0,((c[q>>2]|0)+(L<<2)|0)!=0):0){N=y;O=b;P=C;Q=B;break}if(!I){M=16;break}}K=c[B+(H<<2)>>2]|0;if((K|0)!=-1){J=c[u>>2]|0;R=K;while(1){if((E|0)==(c[J+(R<<3)>>2]|0))break;K=c[C+(R<<2)>>2]|0;if((K|0)==-1){M=16;break a}else R=K}c[(c[q>>2]|0)+(R<<2)>>2]=F;S=y;T=C;U=B;M=78}else M=16}else M=16;while(0);if((M|0)==16){M=0;I=c[r>>2]|0;if((I|0)==(y|0)){J=(y|0)!=0?y<<1:1;if((y|0)<(J|0)){if((J|0)!=0?(c[3708]=(c[3708]|0)+1,L=ws((J<<2|3)+16|0)|0,(L|0)!=0):0){K=L+4+15&-16;c[K+-4>>2]=L;V=K}else V=0;if((y|0)>0){K=0;do{c[V+(K<<2)>>2]=c[(c[q>>2]|0)+(K<<2)>>2];K=K+1|0}while((K|0)!=(y|0));}K=c[q>>2]|0;if(K){if(a[p>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[K+-4>>2]|0);}c[q>>2]=0}a[p>>0]=1;c[q>>2]=V;c[s>>2]=J;W=y;X=J}else{W=y;X=y}}else{W=I;X=y}c[(c[q>>2]|0)+(W<<2)>>2]=F;c[r>>2]=W+1;K=c[v>>2]|0;if((K|0)==(c[w>>2]|0)?(L=(K|0)!=0?K<<1:1,(K|0)<(L|0)):0){if((L|0)!=0?(c[3708]=(c[3708]|0)+1,Y=ws((L<<3|3)+16|0)|0,(Y|0)!=0):0){Z=Y+4+15&-16;c[Z+-4>>2]=Y;_=Z}else _=0;if((K|0)>0){Z=0;do{Y=(c[u>>2]|0)+(Z<<3)|0;$=c[Y+4>>2]|0;aa=_+(Z<<3)|0;c[aa>>2]=c[Y>>2];c[aa+4>>2]=$;Z=Z+1|0}while((Z|0)!=(K|0));}Z=c[u>>2]|0;if(Z){if(a[t>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[Z+-4>>2]|0);}c[u>>2]=0}a[t>>0]=1;c[u>>2]=_;c[w>>2]=L;ba=c[v>>2]|0;ca=c[s>>2]|0}else{ba=K;ca=X}Z=(c[u>>2]|0)+(ba<<3)|0;c[Z>>2]=F;c[Z+4>>2]=0;c[v>>2]=ba+1;if((y|0)<(ca|0)){Z=c[j>>2]|0;do if((ca|0)>(Z|0)){if((ca|0)>=(Z|0)){do if((c[k>>2]|0)<(ca|0)){if((ca|0)!=0?(c[3708]=(c[3708]|0)+1,J=ws((ca<<2|3)+16|0)|0,(J|0)!=0):0){$=J+4+15&-16;c[$+-4>>2]=J;da=$}else da=0;$=c[h>>2]|0;if((Z|0)<=0){if(!$){a[g>>0]=1;c[h>>2]=da;c[k>>2]=ca;ea=da;break}}else{J=0;do{c[da+(J<<2)>>2]=c[$+(J<<2)>>2];J=J+1|0}while((J|0)!=(Z|0));}if(a[g>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[$+-4>>2]|0);}a[g>>0]=1;c[h>>2]=da;c[k>>2]=ca;ea=da}else ea=c[h>>2]|0;while(0);Cs(ea+(Z<<2)|0,0,ca-Z<<2|0)|0}c[j>>2]=ca;R=c[n>>2]|0;if((ca|0)>(R|0)){do if((c[o>>2]|0)<(ca|0)){if((ca|0)!=0?(c[3708]=(c[3708]|0)+1,J=ws((ca<<2|3)+16|0)|0,(J|0)!=0):0){aa=J+4+15&-16;c[aa+-4>>2]=J;fa=aa}else fa=0;aa=c[m>>2]|0;if((R|0)<=0){if(!aa){a[l>>0]=1;c[m>>2]=fa;c[o>>2]=ca;ga=fa;break}}else{J=0;do{c[fa+(J<<2)>>2]=c[aa+(J<<2)>>2];J=J+1|0}while((J|0)!=(R|0));}if(a[l>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[aa+-4>>2]|0);}a[l>>0]=1;c[m>>2]=fa;c[o>>2]=ca;ga=fa}else ga=c[m>>2]|0;while(0);Cs(ga+(R<<2)|0,0,ca-R<<2|0)|0}c[n>>2]=ca;if((ca|0)>0){J=ca<<2;Cs(c[h>>2]|0,-1,J|0)|0;Cs(c[m>>2]|0,-1,J|0)|0}if((Z|0)<=0){ha=c[s>>2]|0;break}J=c[u>>2]|0;$=c[h>>2]|0;Y=c[m>>2]|0;ia=c[s>>2]|0;ja=0;do{ka=c[J+(ja<<3)>>2]|0;la=ka+~(ka<<15)|0;ka=(la>>10^la)*9|0;la=ka>>6^ka;ka=la+~(la<<11)|0;la=$+(((ka>>16^ka)&ia+-1)<<2)|0;c[Y+(ja<<2)>>2]=c[la>>2];c[la>>2]=ja;ja=ja+1|0}while((ja|0)!=(Z|0));ha=ia}else ha=ca;while(0);ma=ha;na=G&ha+-1}else{ma=ca;na=H}Z=c[h>>2]|0;F=Z+(na<<2)|0;K=c[m>>2]|0;c[K+(I<<2)>>2]=c[F>>2];c[F>>2]=I;S=ma;T=K;U=Z;M=78}if((M|0)==78){M=0;Mb[c[(c[E>>2]|0)+60>>2]&127](E,d);N=S;O=c[x>>2]|0;P=T;Q=U}Z=D+1|0;if((Z|0)>=(O|0))break;b=O;y=N;A=c[j>>2]|0;B=Q;C=P;D=Z}if((O|0)>0){oa=O;pa=0}else{ik(f);i=e;return}while(1){O=c[(c[z>>2]|0)+(pa<<2)>>2]|0;if((c[O+236>>2]|0)==1){Mb[c[(c[O>>2]|0)+24>>2]&127](O,d);qa=c[x>>2]|0}else qa=oa;pa=pa+1|0;if((pa|0)>=(qa|0))break;else oa=qa}ik(f);i=e;return}function gk(a,b){a=a|0;b=b|0;Kb[c[(c[b>>2]|0)+32>>2]&255](b);fk(a,b);Kb[c[(c[b>>2]|0)+36>>2]&255](b);return}function hk(a,d){a=a|0;d=d|0;var e=0,f=0,h=0,j=0,k=0,l=0,m=0,n=0.0,o=0.0,p=0.0,q=0.0,r=0.0,s=0.0,t=0.0,u=0.0,v=0.0,w=0.0,x=0.0,y=0.0,z=0.0,A=0.0,B=0.0,C=0.0,D=0.0,E=0.0,F=0.0,G=0.0,H=0.0,I=0.0,J=0.0,K=0.0;e=i;i=i+128|0;f=e+56|0;h=e+32|0;j=e;k=c[(c[a+8>>2]|0)+28>>2]|0;l=c[k+(d*80|0)+64>>2]|0;m=c[a+12>>2]|0;n=+g[k+(d*80|0)>>2];o=+g[m>>2];p=+g[k+(d*80|0)+16>>2];q=+g[m+4>>2];r=+g[k+(d*80|0)+32>>2];s=+g[m+8>>2];t=+g[k+(d*80|0)+4>>2];u=+g[k+(d*80|0)+20>>2];v=+g[k+(d*80|0)+36>>2];w=+g[k+(d*80|0)+8>>2];x=+g[k+(d*80|0)+24>>2];y=+g[k+(d*80|0)+40>>2];z=+g[m+16>>2];A=+g[m+20>>2];B=+g[m+24>>2];C=+g[m+32>>2];D=+g[m+36>>2];E=+g[m+40>>2];F=+g[k+(d*80|0)+48>>2];G=+g[k+(d*80|0)+52>>2];H=+g[k+(d*80|0)+56>>2];I=+g[m+48>>2]+(o*F+q*G+s*H);J=z*F+A*G+B*H+ +g[m+52>>2];K=C*F+D*G+E*H+ +g[m+56>>2];g[f>>2]=n*o+p*q+r*s;g[f+4>>2]=o*t+q*u+s*v;g[f+8>>2]=o*w+q*x+s*y;g[f+12>>2]=0.0;g[f+16>>2]=n*z+p*A+r*B;g[f+20>>2]=t*z+u*A+v*B;g[f+24>>2]=w*z+x*A+y*B;g[f+28>>2]=0.0;g[f+32>>2]=n*C+p*D+r*E;g[f+36>>2]=t*C+u*D+v*E;g[f+40>>2]=w*C+x*D+y*E;g[f+44>>2]=0.0;g[f+48>>2]=I;g[f+52>>2]=J;g[f+56>>2]=K;g[f+60>>2]=0.0;m=c[a+4>>2]|0;c[h>>2]=0;c[h+4>>2]=l;c[h+8>>2]=m;c[h+12>>2]=f;c[h+16>>2]=-1;c[h+20>>2]=d;f=c[a+24>>2]|0;m=j+4|0;g[m>>2]=1.0;c[j+8>>2]=0;b[j+12>>1]=1;b[j+14>>1]=-1;l=j+16|0;c[l>>2]=0;c[j>>2]=6184;c[j+20>>2]=f;c[j+24>>2]=d;c[m>>2]=c[f+4>>2];c[l>>2]=c[f+16>>2];$j(c[a+16>>2]|0,c[a+20>>2]|0,h,j);i=e;return}function ik(b){b=b|0;var d=0,e=0,f=0,g=0,h=0;d=b+64|0;e=b+72|0;f=c[e>>2]|0;g=b+76|0;if(f){if(a[g>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[f+-4>>2]|0);}c[e>>2]=0}a[g>>0]=1;c[e>>2]=0;c[d>>2]=0;c[b+68>>2]=0;d=b+44|0;e=b+52|0;g=c[e>>2]|0;f=b+56|0;if(g){if(a[f>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[g+-4>>2]|0);}c[e>>2]=0}a[f>>0]=1;c[e>>2]=0;c[d>>2]=0;c[b+48>>2]=0;d=b+24|0;e=b+32|0;f=c[e>>2]|0;g=b+36|0;if(f){if(a[g>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[f+-4>>2]|0);}c[e>>2]=0}a[g>>0]=1;c[e>>2]=0;c[d>>2]=0;c[b+28>>2]=0;d=b+4|0;e=b+12|0;g=c[e>>2]|0;f=b+16|0;if(!g){a[f>>0]=1;c[e>>2]=0;c[d>>2]=0;h=b+8|0;c[h>>2]=0;return}if(a[f>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[g+-4>>2]|0);}c[e>>2]=0;a[f>>0]=1;c[e>>2]=0;c[d>>2]=0;h=b+8|0;c[h>>2]=0;return}function jk(a){a=a|0;return}function kk(a){a=a|0;xs(a);return}function lk(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,h=0,j=0,k=0,l=0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0,r=0.0,s=0.0,t=0.0,u=0.0,v=0.0,w=0.0,x=0.0,y=0.0,z=0.0,A=0.0,B=0.0,C=0.0,D=0.0,E=0.0,F=0.0,G=0.0,H=0.0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0;e=i;i=i+96|0;d=e+80|0;f=e+64|0;h=e+48|0;j=e+32|0;k=e+16|0;l=e;m=+g[b>>2];n=+g[a+28>>2];o=+g[b+4>>2];p=+g[a+32>>2];q=+g[b+8>>2];r=+g[a+36>>2];s=+g[a+44>>2];t=+g[a+48>>2];u=+g[a+52>>2];v=+g[a+60>>2];w=+g[a+64>>2];x=+g[a+68>>2];y=+g[a+76>>2];z=m*n+o*p+q*r+y;A=+g[a+80>>2];B=m*s+o*t+q*u+A;C=+g[a+84>>2];D=m*v+o*w+q*x+C;g[d>>2]=z;g[d+4>>2]=B;g[d+8>>2]=D;g[d+12>>2]=0.0;q=+g[b+16>>2];o=+g[b+20>>2];m=+g[b+24>>2];E=q*n+o*p+m*r+y;F=q*s+o*t+m*u+A;G=q*v+o*w+m*x+C;g[f>>2]=E;g[f+4>>2]=F;g[f+8>>2]=G;g[f+12>>2]=0.0;m=+g[b+32>>2];o=+g[b+36>>2];q=+g[b+40>>2];H=m*n+o*p+q*r+y;y=m*s+o*t+q*u+A;A=m*v+o*w+q*x+C;g[h>>2]=H;g[h+4>>2]=y;g[h+8>>2]=A;g[h+12>>2]=0.0;C=(z+E+H)*.3333333432674408;x=(B+F+y)*.3333333432674408;q=(D+G+A)*.3333333432674408;g[j>>2]=C;g[j+4>>2]=x;g[j+8>>2]=q;g[j+12>>2]=0.0;b=a+8|0;I=c[b>>2]|0;if(!((Ob[c[(c[I>>2]|0)+48>>2]&127](I)|0)&16384)){J=c[b>>2]|0;K=c[J>>2]|0;L=K+8|0;M=c[L>>2]|0;N=a+12|0;tc[M&63](J,d,f,N);O=c[b>>2]|0;Q=c[O>>2]|0;R=Q+8|0;S=c[R>>2]|0;tc[S&63](O,f,h,N);T=c[b>>2]|0;U=c[T>>2]|0;V=U+8|0;W=c[V>>2]|0;tc[W&63](T,h,d,N);i=e;return}w=E-z;E=F-B;F=G-D;G=H-z;z=y-B;B=A-D;D=E*B-F*z;A=F*G-w*B;B=w*z-E*G;G=1.0/+P(+(B*B+(D*D+A*A)));c[k>>2]=1065353216;c[k+4>>2]=1065353216;c[k+8>>2]=0;g[k+12>>2]=0.0;I=c[b>>2]|0;X=c[(c[I>>2]|0)+8>>2]|0;g[l>>2]=G*D+C;g[l+4>>2]=G*A+x;g[l+8>>2]=G*B+q;g[l+12>>2]=0.0;tc[X&63](I,j,l,k);J=c[b>>2]|0;K=c[J>>2]|0;L=K+8|0;M=c[L>>2]|0;N=a+12|0;tc[M&63](J,d,f,N);O=c[b>>2]|0;Q=c[O>>2]|0;R=Q+8|0;S=c[R>>2]|0;tc[S&63](O,f,h,N);T=c[b>>2]|0;U=c[T>>2]|0;V=U+8|0;W=c[V>>2]|0;tc[W&63](T,h,d,N);i=e;return}function mk(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;tc[c[(c[a>>2]|0)+8>>2]&63](a,b,d,e);return}function nk(a){a=a|0;return}function ok(a){a=a|0;xs(a+-4|0);return}function pk(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;f=a+-4|0;tc[c[(c[f>>2]|0)+8>>2]&63](f,b,d,e);return}function qk(a){a=a|0;return}function rk(a,b,d){a=a|0;b=b|0;d=d|0;c[a+16>>2]=b;c[a+24>>2]=d;return}function sk(a,b,d){a=a|0;b=b|0;d=d|0;c[a+20>>2]=b;c[a+28>>2]=d;return}function tk(a){a=a|0;return}function uk(a){a=a|0;xs(a);return}function vk(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0,j=0,k=0,l=0,m=0.0;d=i;i=i+32|0;e=d;f=a+184|0;h=c[f>>2]|0;if(+g[h+4>>2]==0.0){j=0;i=d;return j|0}k=c[b>>2]|0;if(!(ec[c[(c[h>>2]|0)+8>>2]&31](h,c[k+188>>2]|0)|0)){j=1;i=d;return j|0}h=c[a+192>>2]|0;b=c[k+192>>2]|0;l=c[f>>2]|0;m=+g[a+188>>2];c[e>>2]=0;c[e+4>>2]=b;c[e+8>>2]=k;c[e+12>>2]=k+4;c[e+16>>2]=-1;c[e+20>>2]=-1;ak(h,a+36|0,a+100|0,e,l,m);j=1;i=d;return j|0}function wk(a){a=a|0;xs(a);return}function xk(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0,j=0,k=0;d=i;i=i+32|0;e=d;f=a+216|0;h=c[f>>2]|0;if(+g[h+4>>2]==0.0){j=0;i=d;return j|0}k=c[b>>2]|0;if(!(ec[c[(c[h>>2]|0)+8>>2]&31](h,c[k+188>>2]|0)|0)){j=1;i=d;return j|0}h=c[k+192>>2]|0;b=c[f>>2]|0;c[e>>2]=0;c[e+4>>2]=h;c[e+8>>2]=k;c[e+12>>2]=k+4;c[e+16>>2]=-1;c[e+20>>2]=-1;$j(a+68|0,a+132|0,e,b);j=1;i=d;return j|0}function yk(a){a=a|0;xs(a);return}function zk(a,b){a=a|0;b=b|0;var d=0;d=c[a+12>>2]|0;return ec[c[(c[d>>2]|0)+8>>2]&31](d,b)|0}function Ak(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0.0;e=i;i=i+16|0;f=e;c[f>>2]=-1;c[f+4>>2]=c[a+16>>2];g=b+4|0;if(!(c[g>>2]|0))c[g>>2]=f;f=a+12|0;g=c[f>>2]|0;h=+fc[c[(c[g>>2]|0)+12>>2]&15](g,b,d);c[a+4>>2]=c[(c[f>>2]|0)+4>>2];i=e;return +h}function Bk(a){a=a|0;xs(a);return}function Ck(a,b,d,e,f,h){a=a|0;b=b|0;d=d|0;e=+e;f=f|0;h=h|0;var j=0,k=0,l=0,m=0.0;j=i;i=i+64|0;k=j+48|0;l=j;c[k>>2]=f;c[k+4>>2]=h;h=c[a+212>>2]|0;if(!(+g[h+4>>2]>=e)){m=e;i=j;return +m}c[l>>2]=c[a+216>>2];c[l+4>>2]=k;k=l+8|0;c[k>>2]=c[b>>2];c[k+4>>2]=c[b+4>>2];c[k+8>>2]=c[b+8>>2];c[k+12>>2]=c[b+12>>2];b=l+24|0;c[b>>2]=c[d>>2];c[b+4>>2]=c[d+4>>2];c[b+8>>2]=c[d+8>>2];c[b+12>>2]=c[d+12>>2];g[l+40>>2]=e;m=+fc[c[(c[h>>2]|0)+12>>2]&15](h,l,1);i=j;return +m}function Dk(a){a=a|0;xs(a);return}function Ek(a,b,d,e,f,h){a=a|0;b=b|0;d=d|0;e=+e;f=f|0;h=h|0;var j=0,k=0,l=0,m=0.0;j=i;i=i+64|0;k=j+48|0;l=j;c[k>>2]=f;c[k+4>>2]=h;h=c[a+212>>2]|0;if(!(+g[h+4>>2]>=e)){m=e;i=j;return +m}c[l>>2]=c[a+216>>2];c[l+4>>2]=k;k=l+8|0;c[k>>2]=c[b>>2];c[k+4>>2]=c[b+4>>2];c[k+8>>2]=c[b+8>>2];c[k+12>>2]=c[b+12>>2];b=l+24|0;c[b>>2]=c[d>>2];c[b+4>>2]=c[d+4>>2];c[b+8>>2]=c[d+8>>2];c[b+12>>2]=c[d+12>>2];g[l+40>>2]=e;m=+fc[c[(c[h>>2]|0)+12>>2]&15](h,l,1);i=j;return +m}function Fk(a){a=a|0;xs(a);return}function Gk(a,b){a=a|0;b=b|0;var d=0;d=c[a+20>>2]|0;return ec[c[(c[d>>2]|0)+8>>2]&31](d,b)|0}function Hk(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0.0;e=i;i=i+16|0;f=e;c[f>>2]=-1;c[f+4>>2]=c[a+24>>2];g=b+4|0;if(!(c[g>>2]|0))c[g>>2]=f;f=a+20|0;g=c[f>>2]|0;h=+fc[c[(c[g>>2]|0)+12>>2]&15](g,b,d);c[a+4>>2]=c[(c[f>>2]|0)+4>>2];i=e;return +h}function Ik(a){a=a|0;xs(a);return}function Jk(a,b){a=a|0;b=b|0;hk(a,c[b+36>>2]|0);return}function Kk(a){a=a|0;xs(a);return}function Lk(a,b,d,e,f){a=a|0;b=b|0;d=+d;e=e|0;f=f|0;var h=0,j=0,k=0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0;h=i;i=i+48|0;j=h+32|0;k=h;c[j>>2]=e;c[j+4>>2]=f;l=+g[b>>2];m=+g[b+4>>2];n=+g[b+8>>2];o=+g[a+56>>2]*l+ +g[a+60>>2]*m+ +g[a+64>>2]*n;p=l*+g[a+72>>2]+m*+g[a+76>>2]+n*+g[a+80>>2];q=l*+g[a+88>>2]+m*+g[a+92>>2]+n*+g[a+96>>2];c[k>>2]=c[a+48>>2];c[k+4>>2]=j;g[k+8>>2]=o;g[k+12>>2]=p;g[k+16>>2]=q;g[k+20>>2]=0.0;g[k+24>>2]=d;j=c[a+44>>2]|0;d=+fc[c[(c[j>>2]|0)+12>>2]&15](j,k,1);i=h;return +d}function Mk(a){a=a|0;xs(a);return}function Nk(a,b,d,e,f){a=a|0;b=b|0;d=+d;e=e|0;f=f|0;var h=0,j=0,k=0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0;h=i;i=i+48|0;j=h+32|0;k=h;c[j>>2]=e;c[j+4>>2]=f;l=+g[b>>2];m=+g[b+4>>2];n=+g[b+8>>2];o=+g[a+56>>2]*l+ +g[a+60>>2]*m+ +g[a+64>>2]*n;p=l*+g[a+72>>2]+m*+g[a+76>>2]+n*+g[a+80>>2];q=l*+g[a+88>>2]+m*+g[a+92>>2]+n*+g[a+96>>2];c[k>>2]=c[a+48>>2];c[k+4>>2]=j;g[k+8>>2]=o;g[k+12>>2]=p;g[k+16>>2]=q;g[k+20>>2]=0.0;g[k+24>>2]=d;j=c[a+44>>2]|0;d=+fc[c[(c[j>>2]|0)+12>>2]&15](j,k,1);i=h;return +d}function Ok(a,b){a=a|0;b=+b;return}function Pk(a,b){a=a|0;b=b|0;return}function Qk(a,b,c){a=a|0;b=b|0;c=c|0;return}function Rk(a){a=a|0;return}function Sk(a){a=a|0;xs(a);return}function Tk(b){b=b|0;var d=0,e=0,f=0,g=0,h=0;c[b>>2]=6880;if(a[b+20>>0]|0){d=b+16|0;e=c[d>>2]|0;f=c[e+16>>2]|0;if(!f)g=e;else{c[3710]=(c[3710]|0)+1;xs(c[f+-4>>2]|0);g=c[d>>2]|0}if(g){c[3710]=(c[3710]|0)+1;xs(c[g+-4>>2]|0);}}if(a[b+12>>0]|0){g=b+8|0;d=c[g>>2]|0;f=c[d+16>>2]|0;if(!f)h=d;else{c[3710]=(c[3710]|0)+1;xs(c[f+-4>>2]|0);h=c[g>>2]|0}if(h){c[3710]=(c[3710]|0)+1;xs(c[h+-4>>2]|0);}}h=b+32|0;g=c[h>>2]|0;Kb[c[c[g>>2]>>2]&255](g);g=c[h>>2]|0;if(g){c[3710]=(c[3710]|0)+1;xs(c[g+-4>>2]|0);}g=b+36|0;h=c[g>>2]|0;Kb[c[c[h>>2]>>2]&255](h);h=c[g>>2]|0;if(h){c[3710]=(c[3710]|0)+1;xs(c[h+-4>>2]|0);}h=b+40|0;g=c[h>>2]|0;Kb[c[c[g>>2]>>2]&255](g);g=c[h>>2]|0;if(g){c[3710]=(c[3710]|0)+1;xs(c[g+-4>>2]|0);}g=b+44|0;h=c[g>>2]|0;Kb[c[c[h>>2]>>2]&255](h);h=c[g>>2]|0;if(h){c[3710]=(c[3710]|0)+1;xs(c[h+-4>>2]|0);}h=b+48|0;g=c[h>>2]|0;Kb[c[c[g>>2]>>2]&255](g);g=c[h>>2]|0;if(g){c[3710]=(c[3710]|0)+1;xs(c[g+-4>>2]|0);}g=b+52|0;h=c[g>>2]|0;Kb[c[c[h>>2]>>2]&255](h);h=c[g>>2]|0;if(h){c[3710]=(c[3710]|0)+1;xs(c[h+-4>>2]|0);}h=b+56|0;g=c[h>>2]|0;Kb[c[c[g>>2]>>2]&255](g);g=c[h>>2]|0;if(g){c[3710]=(c[3710]|0)+1;xs(c[g+-4>>2]|0);}g=b+60|0;h=c[g>>2]|0;Kb[c[c[h>>2]>>2]&255](h);h=c[g>>2]|0;if(h){c[3710]=(c[3710]|0)+1;xs(c[h+-4>>2]|0);}h=b+76|0;g=c[h>>2]|0;Kb[c[c[g>>2]>>2]&255](g);g=c[h>>2]|0;if(g){c[3710]=(c[3710]|0)+1;xs(c[g+-4>>2]|0);}g=b+80|0;h=c[g>>2]|0;Kb[c[c[h>>2]>>2]&255](h);h=c[g>>2]|0;if(h){c[3710]=(c[3710]|0)+1;xs(c[h+-4>>2]|0);}h=b+72|0;g=c[h>>2]|0;Kb[c[c[g>>2]>>2]&255](g);g=c[h>>2]|0;if(g){c[3710]=(c[3710]|0)+1;xs(c[g+-4>>2]|0);}g=b+88|0;h=c[g>>2]|0;Kb[c[c[h>>2]>>2]&255](h);h=c[g>>2]|0;if(h){c[3710]=(c[3710]|0)+1;xs(c[h+-4>>2]|0);}h=b+84|0;g=c[h>>2]|0;Kb[c[c[g>>2]>>2]&255](g);g=c[h>>2]|0;if(g){c[3710]=(c[3710]|0)+1;xs(c[g+-4>>2]|0);}g=c[b+24>>2]|0;if(g){c[3710]=(c[3710]|0)+1;xs(c[g+-4>>2]|0);}g=b+28|0;b=c[g>>2]|0;Kb[c[c[b>>2]>>2]&255](b);b=c[g>>2]|0;if(!b)return;c[3710]=(c[3710]|0)+1;xs(c[b+-4>>2]|0);return}function Uk(a){a=a|0;Tk(a);xs(a);return}function Vk(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;e=(b|0)==8;f=(d|0)==8;do if(!(e&f)){if(e&(d|0)==1){g=a+76|0;break}if((b|0)==1&f){g=a+80|0;break}if(!(d|b)){g=a+72|0;break}h=(b|0)<20;if(h&(d|0)==28){g=a+88|0;break}i=(d|0)<20;if((b|0)==28&i){g=a+84|0;break}if(h){if(i){g=a+32|0;break}if((d+-21|0)>>>0<9){g=a+36|0;break}}else{if(i&(b+-21|0)>>>0<9){g=a+40|0;break}if((b|0)==31)if((d|0)==31){g=a+48|0;break}else{g=a+44|0;break}}if((d|0)==31){g=a+52|0;break}else{g=a+56|0;break}}else g=a+60|0;while(0);return c[g>>2]|0}function Wk(a){a=a|0;return c[a+8>>2]|0}function Xk(a){a=a|0;return c[a+16>>2]|0}function Yk(a){a=a|0;return c[a+24>>2]|0}function Zk(a){a=a|0;return}function _k(a){a=a|0;xs(a);return}function $k(b,d,e,f){b=b|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;g=c[d>>2]|0;h=ec[c[(c[g>>2]|0)+56>>2]&31](g,28)|0;g=(a[b+4>>0]|0)==0;i=c[b+8>>2]|0;j=c[b+12>>2]|0;b=c[d>>2]|0;d=h+4|0;c[d>>2]=b;c[h>>2]=14304;k=h+8|0;a[k>>0]=0;l=h+12|0;c[l>>2]=0;m=h+16|0;if(g){a[m>>0]=0;c[h+20>>2]=i;c[h+24>>2]=j;g=e+8|0;n=f+8|0;if(!(Wb[c[(c[b>>2]|0)+24>>2]&31](b,c[g>>2]|0,c[n>>2]|0)|0))return h|0;o=c[d>>2]|0;c[l>>2]=Wb[c[(c[o>>2]|0)+12>>2]&31](o,c[g>>2]|0,c[n>>2]|0)|0;a[k>>0]=1;return h|0}else{a[m>>0]=1;c[h+20>>2]=i;c[h+24>>2]=j;j=f+8|0;f=e+8|0;if(!(Wb[c[(c[b>>2]|0)+24>>2]&31](b,c[j>>2]|0,c[f>>2]|0)|0))return h|0;b=c[d>>2]|0;c[l>>2]=Wb[c[(c[b>>2]|0)+12>>2]&31](b,c[j>>2]|0,c[f>>2]|0)|0;a[k>>0]=1;return h|0}return 0}function al(a){a=a|0;xs(a);return}function bl(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0;b=c[d>>2]|0;g=ec[c[(c[b>>2]|0)+56>>2]&31](b,16)|0;b=c[d>>2]|0;d=g+4|0;c[d>>2]=b;c[g>>2]=12832;h=g+8|0;a[h>>0]=0;i=g+12|0;c[i>>2]=0;j=e+8|0;e=f+8|0;if(!(Wb[c[(c[b>>2]|0)+24>>2]&31](b,c[j>>2]|0,c[e>>2]|0)|0))return g|0;b=c[d>>2]|0;c[i>>2]=Wb[c[(c[b>>2]|0)+12>>2]&31](b,c[j>>2]|0,c[e>>2]|0)|0;a[h>>0]=1;return g|0}function cl(a){a=a|0;xs(a);return}function dl(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0;g=c[d>>2]|0;h=ec[c[(c[g>>2]|0)+56>>2]&31](g,20)|0;g=c[d+4>>2]|0;i=a[b+4>>0]|0;b=c[d>>2]|0;c[h+4>>2]=b;c[h>>2]=8448;d=h+8|0;a[d>>0]=0;j=h+12|0;c[j>>2]=g;a[h+16>>0]=i;if(g)return h|0;c[j>>2]=Wb[c[(c[b>>2]|0)+12>>2]&31](b,c[e+8>>2]|0,c[f+8>>2]|0)|0;a[d>>0]=1;return h|0}function el(a){a=a|0;xs(a);return}function fl(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0;b=c[d>>2]|0;g=ec[c[(c[b>>2]|0)+56>>2]&31](b,16)|0;b=c[d>>2]|0;c[g+4>>2]=b;c[g>>2]=8360;d=g+8|0;a[d>>0]=0;h=g+12|0;c[h>>2]=0;c[h>>2]=Wb[c[(c[b>>2]|0)+12>>2]&31](b,c[e+8>>2]|0,c[f+8>>2]|0)|0;a[d>>0]=1;return g|0}function gl(a){a=a|0;xs(a);return}function hl(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;e=c[b>>2]|0;d=ec[c[(c[e>>2]|0)+56>>2]&31](e,8)|0;c[d+4>>2]=c[b>>2];c[d>>2]=7984;return d|0}function il(a){a=a|0;xs(a);return}function jl(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;a=c[b>>2]|0;f=ec[c[(c[a>>2]|0)+56>>2]&31](a,44)|0;rq(f,b,d,e,1);return f|0}function kl(a){a=a|0;xs(a);return}function ll(b,d,e,f){b=b|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,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;b=c[d>>2]|0;g=ec[c[(c[b>>2]|0)+56>>2]&31](b,76)|0;rq(g,d,e,f,0);c[g>>2]=13144;a[g+64>>0]=1;c[g+60>>2]=0;c[g+52>>2]=0;c[g+56>>2]=0;c[3708]=(c[3708]|0)+1;d=ws(87)|0;if(!d)h=0;else{b=d+4+15&-16;c[b+-4>>2]=d;h=b}c[h>>2]=14416;b=h+20|0;a[b>>0]=1;d=h+16|0;c[d>>2]=0;i=h+8|0;c[i>>2]=0;j=h+12|0;c[j>>2]=0;a[h+24>>0]=0;a[h+44>>0]=1;c[h+40>>2]=0;c[h+32>>2]=0;c[h+36>>2]=0;a[h+64>>0]=1;c[h+60>>2]=0;c[h+52>>2]=0;c[h+56>>2]=0;c[3708]=(c[3708]|0)+1;k=ws(43)|0;if(!k)l=0;else{m=k+4+15&-16;c[m+-4>>2]=k;l=m}m=c[i>>2]|0;if((m|0)>0){i=0;do{k=l+(i*12|0)|0;n=(c[d>>2]|0)+(i*12|0)|0;c[k>>2]=c[n>>2];c[k+4>>2]=c[n+4>>2];c[k+8>>2]=c[n+8>>2];i=i+1|0}while((i|0)!=(m|0));}m=c[d>>2]|0;if(!m){a[b>>0]=1;c[d>>2]=l;c[j>>2]=2;or(h);o=g+44|0;c[o>>2]=h;p=e+4|0;q=c[p>>2]|0;r=q+72|0;s=c[r>>2]|0;t=g+68|0;c[t>>2]=s;u=f+4|0;v=c[u>>2]|0;w=v+72|0;x=c[w>>2]|0;y=g+72|0;c[y>>2]=x;return g|0}if(a[b>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[m+-4>>2]|0);}c[d>>2]=0;a[b>>0]=1;c[d>>2]=l;c[j>>2]=2;or(h);o=g+44|0;c[o>>2]=h;p=e+4|0;q=c[p>>2]|0;r=q+72|0;s=c[r>>2]|0;t=g+68|0;c[t>>2]=s;u=f+4|0;v=c[u>>2]|0;w=v+72|0;x=c[w>>2]|0;y=g+72|0;c[y>>2]=x;return g|0}function ml(a){a=a|0;xs(a);return}function nl(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;a=c[b>>2]|0;f=ec[c[(c[a>>2]|0)+56>>2]&31](a,44)|0;rq(f,b,d,e,0);return f|0}function ol(a){a=a|0;xs(a);return}function pl(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0;b=c[d>>2]|0;g=ec[c[(c[b>>2]|0)+56>>2]&31](b,80)|0;b=c[d>>2]|0;c[g+4>>2]=b;c[g>>2]=13328;a[g+8>>0]=1;d=b;c[g+12>>2]=13360;h=g+60|0;c[h>>2]=d;c[g+64>>2]=0;c[g+16>>2]=f;c[g+20>>2]=e;i=Wb[c[(c[b>>2]|0)+12>>2]&31](d,c[f+8>>2]|0,c[e+8>>2]|0)|0;c[g+76>>2]=i;e=c[h>>2]|0;Mb[c[(c[e>>2]|0)+20>>2]&127](e,i);return g|0}function ql(a){a=a|0;xs(a);return}function rl(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0;b=c[d>>2]|0;g=ec[c[(c[b>>2]|0)+56>>2]&31](b,80)|0;b=c[d>>2]|0;c[g+4>>2]=b;c[g>>2]=13328;a[g+8>>0]=0;d=b;c[g+12>>2]=13360;h=g+60|0;c[h>>2]=d;c[g+64>>2]=0;c[g+16>>2]=e;c[g+20>>2]=f;i=Wb[c[(c[b>>2]|0)+12>>2]&31](d,c[e+8>>2]|0,c[f+8>>2]|0)|0;c[g+76>>2]=i;f=c[h>>2]|0;Mb[c[(c[f>>2]|0)+20>>2]&127](f,i);return g|0}function sl(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return}function tl(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return 1.0}function ul(a){a=a|0;return}function vl(a){a=a|0;xs(a);return}function wl(a,b){a=a|0;b=b|0;return}function xl(b){b=b|0;var d=0,e=0,f=0,g=0,h=0;c[b>>2]=8088;d=b+292|0;e=b+300|0;f=c[e>>2]|0;g=b+304|0;if(f){if(a[g>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[f+-4>>2]|0);}c[e>>2]=0}a[g>>0]=1;c[e>>2]=0;c[d>>2]=0;c[b+296>>2]=0;c[b>>2]=4680;d=b+268|0;e=b+276|0;g=c[e>>2]|0;f=b+280|0;if(!g){a[f>>0]=1;c[e>>2]=0;c[d>>2]=0;h=b+272|0;c[h>>2]=0;return}if(a[f>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[g+-4>>2]|0);}c[e>>2]=0;a[f>>0]=1;c[e>>2]=0;c[d>>2]=0;h=b+272|0;c[h>>2]=0;return}function yl(b){b=b|0;var d=0,e=0,f=0,g=0;c[b>>2]=8088;d=b+292|0;e=b+300|0;f=c[e>>2]|0;g=b+304|0;if(f){if(a[g>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[f+-4>>2]|0);}c[e>>2]=0}a[g>>0]=1;c[e>>2]=0;c[d>>2]=0;c[b+296>>2]=0;c[b>>2]=4680;d=b+268|0;e=b+276|0;g=c[e>>2]|0;f=b+280|0;if(g){if(a[f>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[g+-4>>2]|0);}c[e>>2]=0}a[f>>0]=1;c[e>>2]=0;c[d>>2]=0;c[b+272>>2]=0;c[3710]=(c[3710]|0)+1;xs(c[b+-4>>2]|0);return}function zl(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;e=c[d>>2]|0;d=b+292|0;f=c[d>>2]|0;a:do if((f|0)>0){g=c[b+300>>2]|0;h=e;i=0;while(1){if((c[g+(i<<2)>>2]|0)==(h|0))break;j=i+1|0;if((j|0)<(f|0))i=j;else break a}if((i|0)!=(f|0))return}while(0);h=b+296|0;if((f|0)==(c[h>>2]|0)?(g=(f|0)!=0?f<<1:1,(f|0)<(g|0)):0){if(!g){k=0;l=f}else{c[3708]=(c[3708]|0)+1;j=ws((g<<2|3)+16|0)|0;if(!j)m=0;else{n=j+4+15&-16;c[n+-4>>2]=j;m=n}k=m;l=c[d>>2]|0}m=b+300|0;if((l|0)>0){n=0;do{c[k+(n<<2)>>2]=c[(c[m>>2]|0)+(n<<2)>>2];n=n+1|0}while((n|0)!=(l|0));}n=c[m>>2]|0;j=b+304|0;if(!n)o=l;else{if(!(a[j>>0]|0))p=l;else{c[3710]=(c[3710]|0)+1;xs(c[n+-4>>2]|0);p=c[d>>2]|0}c[m>>2]=0;o=p}a[j>>0]=1;c[m>>2]=k;c[h>>2]=g;q=o}else q=f;c[(c[b+300>>2]|0)+(q<<2)>>2]=e;c[d>>2]=q+1;return}function Al(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;e=a+292|0;d=c[e>>2]|0;if((d|0)<=0)return;f=c[a+300>>2]|0;a=c[b>>2]|0;b=0;while(1){g=f+(b<<2)|0;if((c[g>>2]|0)==(a|0))break;h=b+1|0;if((h|0)<(d|0))b=h;else{i=7;break}}if((i|0)==7)return;if((b|0)>=(d|0))return;b=d+-1|0;c[g>>2]=c[f+(b<<2)>>2];c[e>>2]=b;return}function Bl(b,d,e,f){b=b|0;d=d|0;e=e|0;f=+f;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0.0,r=0.0,s=0.0,t=0.0,u=0.0,v=0.0,w=0,x=0,y=0.0,z=0.0,A=0.0,B=0.0,C=0.0,D=0.0,E=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,N=0,Q=0,R=0,S=0.0,T=0.0,U=0.0,V=0.0,W=0.0,X=0.0;h=i;i=i+192|0;j=h;k=c[b+4>>2]|0;l=k+752|0;if(+g[l>>2]<f){i=h;return}m=c[k+740>>2]|0;n=(c[b+8>>2]|0)+8|0;o=c[n>>2]|0;p=(m|0)!=(o|0);q=+g[e>>2];r=+g[d>>2]*f+q;s=+g[e+4>>2];t=+g[d+4>>2]*f+s;u=+g[e+8>>2];v=+g[d+8>>2]*f+u;w=(c[b+12>>2]|0)+8|0;x=c[w>>2]|0;y=+g[x+52>>2];z=+g[x+56>>2];if(p){A=r-y;B=t-z;C=v-+g[x+60>>2];D=q-+g[o+52>>2];E=s-+g[o+56>>2];F=u-+g[o+60>>2];G=A*+g[x+4>>2]+B*+g[x+20>>2]+C*+g[x+36>>2];H=A*+g[x+8>>2]+B*+g[x+24>>2]+C*+g[x+40>>2];I=A*+g[x+12>>2]+B*+g[x+28>>2]+C*+g[x+44>>2];J=D*+g[o+4>>2]+E*+g[o+20>>2]+F*+g[o+36>>2];K=D*+g[o+8>>2]+E*+g[o+24>>2]+F*+g[o+40>>2];L=D*+g[o+12>>2]+E*+g[o+28>>2]+F*+g[o+44>>2]}else{F=r-+g[m+52>>2];E=t-+g[m+56>>2];D=v-+g[m+60>>2];C=q-y;y=s-z;z=u-+g[x+60>>2];G=F*+g[m+4>>2]+E*+g[m+20>>2]+D*+g[m+36>>2];H=F*+g[m+8>>2]+E*+g[m+24>>2]+D*+g[m+40>>2];I=F*+g[m+12>>2]+E*+g[m+28>>2]+D*+g[m+44>>2];J=C*+g[x+4>>2]+y*+g[x+20>>2]+z*+g[x+36>>2];K=C*+g[x+8>>2]+y*+g[x+24>>2]+z*+g[x+40>>2];L=C*+g[x+12>>2]+y*+g[x+28>>2]+z*+g[x+44>>2]}g[j>>2]=G;g[j+4>>2]=H;g[j+8>>2]=I;g[j+12>>2]=0.0;g[j+16>>2]=J;g[j+20>>2]=K;g[j+24>>2]=L;g[j+28>>2]=0.0;x=j+64|0;c[x>>2]=c[d>>2];c[x+4>>2]=c[d+4>>2];c[x+8>>2]=c[d+8>>2];c[x+12>>2]=c[d+12>>2];g[j+80>>2]=f;d=j+84|0;g[d>>2]=0.0;m=j+88|0;g[m>>2]=0.0;o=j+92|0;g[o>>2]=0.0;c[j+112>>2]=0;a[j+116>>0]=0;M=j+120|0;c[M>>2]=0;c[M+4>>2]=0;c[M+8>>2]=0;c[M+12>>2]=0;c[M+16>>2]=0;c[M+20>>2]=0;c[M+24>>2]=0;c[M+28>>2]=0;g[j+48>>2]=r;g[j+52>>2]=t;g[j+56>>2]=v;g[j+60>>2]=0.0;M=j+32|0;c[M>>2]=c[e>>2];c[M+4>>2]=c[e+4>>2];c[M+8>>2]=c[e+8>>2];c[M+12>>2]=c[e+12>>2];v=+g[l>>2];l=c[k+748>>2]|0;if((l|0)>0){e=0;M=-1;t=v*v;while(1){v=+g[k+4+(e*184|0)>>2]-G;r=+g[k+4+(e*184|0)+4>>2]-H;f=+g[k+4+(e*184|0)+8>>2]-I;L=v*v+r*r+f*f;N=L<t;Q=N?e:M;e=e+1|0;if((e|0)==(l|0)){R=Q;break}else{M=Q;t=N?L:t}}}else R=-1;M=c[n>>2]|0;n=c[w>>2]|0;t=+g[M+224>>2]*+g[n+224>>2];I=t<-10.0?-10.0:t;g[d>>2]=I>10.0?10.0:I;g[o>>2]=+g[M+228>>2]*+g[n+228>>2];I=+g[M+232>>2]*+g[n+232>>2];t=I<-10.0?-10.0:I;g[m>>2]=t>10.0?10.0:t;t=+g[j+72>>2];m=+O(+t)>.7071067690849304;I=+g[j+68>>2];if(m){H=t*t+I*I;G=1.0/+P(+H);L=-(G*t);f=G*I;r=+g[x>>2];S=-(r*f);T=r*L;U=f;V=H*G;W=L;X=0.0}else{L=+g[x>>2];G=L*L+I*I;H=1.0/+P(+G);f=-(I*H);I=H*L;S=t*f;T=G*H;U=0.0;V=-(t*I);W=I;X=f}g[j+152>>2]=X;g[j+156>>2]=W;g[j+160>>2]=U;g[j+168>>2]=V;g[j+172>>2]=S;g[j+176>>2]=T;x=c[b+20>>2]|0;m=c[b+16>>2]|0;n=c[b+28>>2]|0;M=c[b+24>>2]|0;c[j+96>>2]=p?x:m;c[j+100>>2]=p?m:x;c[j+104>>2]=p?n:M;c[j+108>>2]=p?M:n;if((R|0)>-1){n=k+4+(R*184|0)+148|0;M=c[n>>2]|0;p=k+4+(R*184|0)+120|0;x=c[p>>2]|0;m=k+4+(R*184|0)+124|0;b=c[m>>2]|0;o=k+4+(R*184|0)+128|0;d=c[o>>2]|0;w=k+4+(R*184|0)+112|0;l=c[w>>2]|0;Gs(k+4+(R*184|0)|0,j|0,184)|0;c[w>>2]=l;c[p>>2]=x;c[m>>2]=b;c[o>>2]=d;c[n>>2]=M}else xp(k,j)|0;i=h;return}function Cl(a){a=a|0;xs(a);return}function Dl(b){b=b|0;var d=0,e=0,f=0,g=0,h=0;c[b>>2]=8296;d=b+48|0;e=b+56|0;f=c[e>>2]|0;g=b+60|0;if(f){if(a[g>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[f+-4>>2]|0);}c[e>>2]=0}a[g>>0]=1;c[e>>2]=0;c[d>>2]=0;c[b+52>>2]=0;d=b+28|0;e=b+36|0;g=c[e>>2]|0;f=b+40|0;if(g){if(a[f>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[g+-4>>2]|0);}c[e>>2]=0}a[f>>0]=1;c[e>>2]=0;c[d>>2]=0;c[b+32>>2]=0;d=b+8|0;e=b+16|0;f=c[e>>2]|0;g=b+20|0;if(!f){h=b+12|0;a[g>>0]=1;c[e>>2]=0;c[d>>2]=0;c[h>>2]=0;return}if(a[g>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[f+-4>>2]|0);}c[e>>2]=0;h=b+12|0;a[g>>0]=1;c[e>>2]=0;c[d>>2]=0;c[h>>2]=0;return}function El(a){a=a|0;Dl(a);xs(a);return}function Fl(b,d,e){b=b|0;d=d|0;e=e|0;var f=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;e=c[d+8>>2]|0;if((e|0)>0){f=c[d+16>>2]|0;h=0;i=0;while(1){j=c[f+(h<<2)>>2]|0;if(!(c[j+204>>2]&3)){c[j+208>>2]=i;k=i+1|0}else k=i;c[j+212>>2]=-1;g[j+248>>2]=1.0;h=h+1|0;if((h|0)==(e|0)){l=k;break}else i=k}}else l=0;k=b+8|0;i=c[k>>2]|0;if((i|0)<(l|0)){e=b+12|0;if((c[e>>2]|0)<(l|0)){if(!l){m=0;n=i}else{c[3708]=(c[3708]|0)+1;h=ws((l<<3|3)+16|0)|0;if(!h)o=0;else{f=h+4+15&-16;c[f+-4>>2]=h;o=f}m=o;n=c[k>>2]|0}o=b+16|0;if((n|0)>0){f=0;do{h=(c[o>>2]|0)+(f<<3)|0;j=c[h+4>>2]|0;p=m+(f<<3)|0;c[p>>2]=c[h>>2];c[p+4>>2]=j;f=f+1|0}while((f|0)!=(n|0));}n=c[o>>2]|0;f=b+20|0;if(n){if(a[f>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[n+-4>>2]|0);}c[o>>2]=0}a[f>>0]=1;c[o>>2]=m;c[e>>2]=l;q=o}else q=b+16|0;o=i;do{i=(c[q>>2]|0)+(o<<3)|0;c[i>>2]=0;c[i+4>>2]=0;o=o+1|0}while((o|0)!=(l|0));}c[k>>2]=l;if((l|0)>0){k=c[b+16>>2]|0;o=0;do{c[k+(o<<3)>>2]=o;c[k+(o<<3)+4>>2]=1;o=o+1|0}while((o|0)!=(l|0));}l=c[d+68>>2]|0;d=Ob[c[(c[l>>2]|0)+36>>2]&127](l)|0;l=Ob[c[(c[d>>2]|0)+36>>2]&127](d)|0;if(!l)return;o=Ob[c[(c[d>>2]|0)+20>>2]&127](d)|0;if((l|0)<=0)return;d=b+16|0;b=0;do{k=c[c[o+(b<<4)>>2]>>2]|0;q=c[c[o+(b<<4)+4>>2]>>2]|0;if(((k|0)!=0?((q|0)!=0?(c[k+204>>2]&7|0)==0:0):0)?(c[q+204>>2]&7|0)==0:0){i=c[k+208>>2]|0;k=c[q+208>>2]|0;q=c[d>>2]|0;e=q+(i<<3)|0;m=c[e>>2]|0;if((m|0)==(i|0))r=i;else{i=m;m=e;do{e=q+(i<<3)|0;c[m>>2]=c[e>>2];f=c[e>>2]|0;m=q+(f<<3)|0;i=c[m>>2]|0}while((f|0)!=(i|0));r=f}i=q+(k<<3)|0;m=c[i>>2]|0;if((m|0)==(k|0))s=k;else{f=m;m=i;do{i=q+(f<<3)|0;c[m>>2]=c[i>>2];e=c[i>>2]|0;m=q+(e<<3)|0;f=c[m>>2]|0}while((e|0)!=(f|0));s=e}if((r|0)!=(s|0)){c[q+(r<<3)>>2]=s;f=q+(s<<3)+4|0;c[f>>2]=(c[f>>2]|0)+(c[q+(r<<3)+4>>2]|0);}}b=b+1|0}while((b|0)!=(l|0));return}function Gl(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;d=c[b+8>>2]|0;if((d|0)<=0)return;e=c[b+16>>2]|0;b=a+16|0;a=0;f=0;while(1){g=c[e+(a<<2)>>2]|0;if(!(c[g+204>>2]&3)){h=c[b>>2]|0;i=h+(f<<3)|0;j=c[i>>2]|0;if((j|0)==(f|0))k=f;else{l=j;j=i;do{i=h+(l<<3)|0;c[j>>2]=c[i>>2];m=c[i>>2]|0;j=h+(m<<3)|0;l=c[j>>2]|0}while((m|0)!=(l|0));k=m}c[g+208>>2]=k;c[h+(f<<3)+4>>2]=a;c[g+212>>2]=-1;n=f+1|0}else{c[g+208>>2]=-1;c[g+212>>2]=-2;n=f}a=a+1|0;if((a|0)==(d|0))break;else f=n}return}function Hl(b,e,f){b=b|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,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;g=b+12|0;h=e;while(1){e=c[g>>2]|0;i=c[e+(((h+f|0)/2|0)<<2)>>2]|0;j=i+740|0;k=i+744|0;i=e;e=h;l=f;while(1){m=c[(c[j>>2]|0)+208>>2]|0;n=(m|0)>-1;if(n){o=e;while(1){p=c[i+(o<<2)>>2]|0;q=c[(c[p+740>>2]|0)+208>>2]|0;if((q|0)>-1)r=q;else r=c[(c[p+744>>2]|0)+208>>2]|0;if((r|0)<(m|0))o=o+1|0;else{s=o;break}}}else{o=c[(c[k>>2]|0)+208>>2]|0;p=e;while(1){q=c[i+(p<<2)>>2]|0;t=c[(c[q+740>>2]|0)+208>>2]|0;if((t|0)>-1)u=t;else u=c[(c[q+744>>2]|0)+208>>2]|0;if((u|0)<(o|0))p=p+1|0;else{s=p;break}}}if(n){p=l;while(1){o=c[i+(p<<2)>>2]|0;q=c[(c[o+740>>2]|0)+208>>2]|0;if((q|0)>-1)v=q;else v=c[(c[o+744>>2]|0)+208>>2]|0;if((m|0)<(v|0))p=p+-1|0;else{w=p;break}}}else{p=c[(c[k>>2]|0)+208>>2]|0;m=l;while(1){n=c[i+(m<<2)>>2]|0;o=c[(c[n+740>>2]|0)+208>>2]|0;if((o|0)>-1)x=o;else x=c[(c[n+744>>2]|0)+208>>2]|0;if((p|0)<(x|0))m=m+-1|0;else{w=m;break}}}if((s|0)>(w|0)){y=s;z=w}else{m=i+(s<<2)|0;p=d[m>>0]|d[m+1>>0]<<8|d[m+2>>0]<<16|d[m+3>>0]<<24;c[m>>2]=c[i+(w<<2)>>2];m=(c[g>>2]|0)+(w<<2)|0;a[m>>0]=p;a[m+1>>0]=p>>8;a[m+2>>0]=p>>16;a[m+3>>0]=p>>24;y=s+1|0;z=w+-1|0}if((y|0)>(z|0))break;i=c[g>>2]|0;e=y;l=z}if((z|0)>(h|0))Hl(b,h,z);if((y|0)<(f|0))h=y;else break}return}function Il(b){b=b|0;var d=0,e=0;c[b>>2]=8360;if(!(a[b+8>>0]|0))return;d=c[b+12>>2]|0;if(!d)return;e=c[b+4>>2]|0;Mb[c[(c[e>>2]|0)+16>>2]&127](e,d);return}function Jl(b){b=b|0;var d=0,e=0;c[b>>2]=8360;if(!(a[b+8>>0]|0)){xs(b);return}d=c[b+12>>2]|0;if(!d){xs(b);return}e=c[b+4>>2]|0;Mb[c[(c[e>>2]|0)+16>>2]&127](e,d);xs(b);return}function Kl(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0.0,p=0,q=0.0,r=0,s=0.0,t=0.0,u=0.0,v=0.0,w=0.0,x=0.0,y=0.0,z=0.0,A=0.0;e=i;i=i+32|0;h=e+16|0;j=e;k=c[a+12>>2]|0;if(!k){i=e;return}a=f+4|0;c[a>>2]=k;l=c[b+4>>2]|0;m=c[d+4>>2]|0;n=c[b+12>>2]|0;b=c[d+12>>2]|0;d=b+48|0;o=+g[n+48>>2]-+g[d>>2];p=b+52|0;q=+g[n+52>>2]-+g[p>>2];r=b+56|0;s=+g[n+56>>2]-+g[r>>2];t=+P(+(o*o+q*q+s*s));u=+g[m+32>>2]*+g[m+16>>2];v=+g[l+32>>2]*+g[l+16>>2]+u;if(t>v){if(!(c[k+748>>2]|0)){i=e;return}l=c[k+740>>2]|0;m=c[(c[f+8>>2]|0)+8>>2]|0;n=c[(c[f+12>>2]|0)+8>>2]|0;if((l|0)==(m|0)){yp(k,l+4|0,n+4|0);i=e;return}else{yp(k,n+4|0,m+4|0);i=e;return}}c[h>>2]=1065353216;m=h+4|0;c[m>>2]=0;n=h+8|0;c[n>>2]=0;k=h+12|0;g[k>>2]=0.0;if(t>1.1920928955078125e-07){w=1.0/t;x=o*w;o=q*w;q=s*w;g[h>>2]=x;g[m>>2]=o;g[n>>2]=q;g[k>>2]=0.0;y=x;z=o;A=q}else{y=1.0;z=0.0;A=0.0}q=u*z+ +g[p>>2];z=u*A+ +g[r>>2];g[j>>2]=u*y+ +g[d>>2];g[j+4>>2]=q;g[j+8>>2]=z;g[j+12>>2]=0.0;oc[c[(c[f>>2]|0)+16>>2]&7](f,h,j,t-v);j=c[a>>2]|0;if(!(c[j+748>>2]|0)){i=e;return}a=c[j+740>>2]|0;h=c[(c[f+8>>2]|0)+8>>2]|0;d=c[(c[f+12>>2]|0)+8>>2]|0;if((a|0)==(h|0)){yp(j,a+4|0,d+4|0);i=e;return}else{yp(j,d+4|0,h+4|0);i=e;return}}function Ll(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return 1.0}function Ml(b,d){b=b|0;d=d|0;var 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;e=b+12|0;f=c[e>>2]|0;g=f;if(!f)return;if(!(a[b+8>>0]|0))return;b=d+4|0;f=c[b>>2]|0;h=d+8|0;if((f|0)==(c[h>>2]|0)?(i=(f|0)!=0?f<<1:1,(f|0)<(i|0)):0){if(!i){j=0;k=f}else{c[3708]=(c[3708]|0)+1;l=ws((i<<2|3)+16|0)|0;if(!l)m=0;else{n=l+4+15&-16;c[n+-4>>2]=l;m=n}j=m;k=c[b>>2]|0}m=d+12|0;if((k|0)>0){n=0;do{c[j+(n<<2)>>2]=c[(c[m>>2]|0)+(n<<2)>>2];n=n+1|0}while((n|0)!=(k|0));}n=c[m>>2]|0;l=d+16|0;if(!n)o=k;else{if(!(a[l>>0]|0))p=k;else{c[3710]=(c[3710]|0)+1;xs(c[n+-4>>2]|0);p=c[b>>2]|0}c[m>>2]=0;o=p}a[l>>0]=1;c[m>>2]=j;c[h>>2]=i;q=o;r=c[e>>2]|0}else{q=f;r=g}c[(c[d+12>>2]|0)+(q<<2)>>2]=r;c[b>>2]=q+1;return}function Nl(b){b=b|0;var d=0,e=0;c[b>>2]=8448;if(!(a[b+8>>0]|0))return;d=c[b+12>>2]|0;if(!d)return;e=c[b+4>>2]|0;Mb[c[(c[e>>2]|0)+16>>2]&127](e,d);return}function Ol(b){b=b|0;var d=0,e=0;c[b>>2]=8448;if(!(a[b+8>>0]|0)){xs(b);return}d=c[b+12>>2]|0;if(!d){xs(b);return}e=c[b+4>>2]|0;Mb[c[(c[e>>2]|0)+16>>2]&127](e,d);xs(b);return}function Pl(b,d,e,f,h){b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;j=i;i=i+160|0;k=j+136|0;l=j;m=c[b+12>>2]|0;if(!m){i=j;return}n=(a[b+16>>0]|0)!=0;o=n?e:d;p=n?d:e;e=c[o+4>>2]|0;d=c[p+4>>2]|0;q=h+4|0;c[q>>2]=m;r=c[m+752>>2]|0;c[k>>2]=8536;c[k+4>>2]=e;c[k+8>>2]=d;c[k+12>>2]=r;g[l+128>>2]=999999984306749440.0;r=c[o+12>>2]|0;c[l>>2]=c[r>>2];c[l+4>>2]=c[r+4>>2];c[l+8>>2]=c[r+8>>2];c[l+12>>2]=c[r+12>>2];o=l+16|0;d=r+16|0;c[o>>2]=c[d>>2];c[o+4>>2]=c[d+4>>2];c[o+8>>2]=c[d+8>>2];c[o+12>>2]=c[d+12>>2];d=l+32|0;o=r+32|0;c[d>>2]=c[o>>2];c[d+4>>2]=c[o+4>>2];c[d+8>>2]=c[o+8>>2];c[d+12>>2]=c[o+12>>2];o=l+48|0;d=r+48|0;c[o>>2]=c[d>>2];c[o+4>>2]=c[d+4>>2];c[o+8>>2]=c[d+8>>2];c[o+12>>2]=c[d+12>>2];d=l+64|0;o=c[p+12>>2]|0;c[d>>2]=c[o>>2];c[d+4>>2]=c[o+4>>2];c[d+8>>2]=c[o+8>>2];c[d+12>>2]=c[o+12>>2];d=l+80|0;p=o+16|0;c[d>>2]=c[p>>2];c[d+4>>2]=c[p+4>>2];c[d+8>>2]=c[p+8>>2];c[d+12>>2]=c[p+12>>2];p=l+96|0;d=o+32|0;c[p>>2]=c[d>>2];c[p+4>>2]=c[d+4>>2];c[p+8>>2]=c[d+8>>2];c[p+12>>2]=c[d+12>>2];d=l+112|0;p=o+48|0;c[d>>2]=c[p>>2];c[d+4>>2]=c[p+4>>2];c[d+8>>2]=c[p+8>>2];c[d+12>>2]=c[p+12>>2];Tl(k,l,h,c[f+20>>2]|0,n);do if((a[b+8>>0]|0)!=0?(n=c[q>>2]|0,(c[n+748>>2]|0)!=0):0){f=c[n+740>>2]|0;l=c[(c[h+8>>2]|0)+8>>2]|0;k=c[(c[h+12>>2]|0)+8>>2]|0;if((f|0)==(l|0)){yp(n,f+4|0,k+4|0);break}else{yp(n,k+4|0,l+4|0);break}}while(0);i=j;return}function Ql(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return 1.0}function Rl(b,d){b=b|0;d=d|0;var 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;e=b+12|0;f=c[e>>2]|0;g=f;if(!f)return;if(!(a[b+8>>0]|0))return;b=d+4|0;f=c[b>>2]|0;h=d+8|0;if((f|0)==(c[h>>2]|0)?(i=(f|0)!=0?f<<1:1,(f|0)<(i|0)):0){if(!i){j=0;k=f}else{c[3708]=(c[3708]|0)+1;l=ws((i<<2|3)+16|0)|0;if(!l)m=0;else{n=l+4+15&-16;c[n+-4>>2]=l;m=n}j=m;k=c[b>>2]|0}m=d+12|0;if((k|0)>0){n=0;do{c[j+(n<<2)>>2]=c[(c[m>>2]|0)+(n<<2)>>2];n=n+1|0}while((n|0)!=(k|0));}n=c[m>>2]|0;l=d+16|0;if(!n)o=k;else{if(!(a[l>>0]|0))p=k;else{c[3710]=(c[3710]|0)+1;xs(c[n+-4>>2]|0);p=c[b>>2]|0}c[m>>2]=0;o=p}a[l>>0]=1;c[m>>2]=j;c[h>>2]=i;q=o;r=c[e>>2]|0}else{q=f;r=g}c[(c[d+12>>2]|0)+(q<<2)>>2]=r;c[b>>2]=q+1;return}function Sl(b,e,f){b=b|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,r=0,s=0,t=0,u=0,v=0,w=0,x=0;g=b+12|0;h=e;while(1){e=c[g>>2]|0;i=c[e+(((h+f|0)/2|0)<<3)>>2]|0;j=e;e=h;k=f;while(1){l=e;while(1){m=l+1|0;if((c[j+(l<<3)>>2]|0)<(i|0))l=m;else{n=k;break}}while(1){o=j+(n<<3)|0;p=n+-1|0;if((i|0)<(c[o>>2]|0))n=p;else break}if((l|0)>(n|0)){q=l;r=n}else{s=j+(l<<3)|0;t=s;u=t;v=d[u>>0]|d[u+1>>0]<<8|d[u+2>>0]<<16|d[u+3>>0]<<24;u=t+4|0;t=d[u>>0]|d[u+1>>0]<<8|d[u+2>>0]<<16|d[u+3>>0]<<24;u=o;w=c[u+4>>2]|0;x=s;c[x>>2]=c[u>>2];c[x+4>>2]=w;w=(c[g>>2]|0)+(n<<3)|0;x=w;a[x>>0]=v;a[x+1>>0]=v>>8;a[x+2>>0]=v>>16;a[x+3>>0]=v>>24;v=w+4|0;a[v>>0]=t;a[v+1>>0]=t>>8;a[v+2>>0]=t>>16;a[v+3>>0]=t>>24;q=m;r=p}if((q|0)>(r|0))break;j=c[g>>2]|0;e=q;k=r}if((r|0)>(h|0))Sl(b,h,r);if((q|0)<(f|0))h=q;else break}return}function Tl(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0.0,q=0,r=0.0,s=0,t=0.0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0.0,E=0.0,F=0.0,G=0,H=0,I=0.0,J=0.0,K=0.0,L=0.0,M=0.0,N=0.0,O=0.0,Q=0.0,R=0.0,S=0.0,T=0.0,U=0.0,V=0.0,W=0.0,X=0.0,Y=0.0,Z=0.0,_=0.0,$=0.0,aa=0.0,ba=0.0,ca=0.0,da=0.0,ea=0.0,fa=0.0,ga=0.0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0.0,na=0.0,oa=0.0,pa=0.0,qa=0.0,ra=0.0,sa=0.0,ta=0.0,ua=0.0,va=0.0,wa=0.0,xa=0.0,ya=0.0,za=0.0,Aa=0.0,Ba=0,Ca=0.0,Da=0.0,Ea=0.0,Fa=0.0,Ga=0.0,Ha=0.0,Ia=0.0,Ja=0.0,Ka=0.0,La=0.0,Ma=0.0,Na=0.0,Oa=0.0;e=i;i=i+96|0;h=e+80|0;j=e+64|0;k=e+48|0;l=e+32|0;m=e+16|0;n=e;o=b+112|0;p=+g[b+48>>2]-+g[o>>2];q=b+116|0;r=+g[b+52>>2]-+g[q>>2];s=b+120|0;t=+g[b+56>>2]-+g[s>>2];u=b+64|0;v=b+80|0;w=b+96|0;x=b+68|0;y=b+84|0;z=b+100|0;A=b+72|0;B=b+88|0;C=b+104|0;D=p*+g[u>>2]+r*+g[v>>2]+t*+g[w>>2];E=p*+g[x>>2]+r*+g[y>>2]+t*+g[z>>2];F=p*+g[A>>2]+r*+g[B>>2]+t*+g[C>>2];b=a+8|0;G=c[b>>2]|0;H=c[a+4>>2]|0;t=+g[H+32>>2]*+g[H+16>>2];r=t+ +g[a+12>>2];p=+g[G+76>>2];I=+g[G+60>>2];J=p-I;K=+g[G+80>>2];L=+g[G+64>>2];M=K-L;N=+g[G+84>>2];O=+g[G+68>>2];Q=N-O;R=+g[G+92>>2];S=R-I;T=+g[G+96>>2];U=T-L;V=+g[G+100>>2];W=V-O;X=M*W-Q*U;Y=Q*S-J*W;W=J*U-M*S;S=1.0/+P(+(W*W+(X*X+Y*Y)));U=S*X;X=S*Y;Y=S*W;W=D-I;S=E-L;Z=F-O;_=W*U+X*S+Y*Z;if(_<0.0){$=-_;aa=-Y;ba=-X;ca=-U}else{$=_;aa=Y;ba=X;ca=U}do if($<r){U=R-p;X=T-K;Y=V-N;_=I-R;da=L-T;ea=O-V;fa=Z*(J*ba-M*ca)+(W*(M*aa-Q*ba)+S*(Q*ca-J*aa));ga=(F-N)*(U*ba-X*ca)+((D-p)*(X*aa-Y*ba)+(E-K)*(Y*ca-U*aa));U=(F-V)*(_*ba-da*ca)+((D-R)*(da*aa-ea*ba)+(E-T)*(ea*ca-_*aa));if(!(U>0.0&(fa>0.0&ga>0.0))?!(U<=0.0&(fa<=0.0&ga<=0.0)):0){ga=r*r;if((Ob[c[(c[G>>2]|0)+100>>2]&127](G)|0)<=0)break;a=h+4|0;H=h+8|0;ha=j+4|0;ia=j+8|0;fa=0.0;U=0.0;_=0.0;ja=0;ka=0;while(1){la=c[b>>2]|0;tc[c[(c[la>>2]|0)+104>>2]&63](la,ka,h,j);ea=+g[h>>2];da=D-ea;Y=+g[a>>2];X=E-Y;ma=+g[H>>2];na=F-ma;oa=+g[j>>2]-ea;pa=+g[ha>>2]-Y;qa=+g[ia>>2]-ma;ra=da*oa+X*pa+na*qa;do if(ra>0.0){sa=oa*oa+pa*pa+qa*qa;if(ra<sa){ta=ra/sa;ua=da-oa*ta;va=X-pa*ta;wa=na-qa*ta;xa=ta;break}else{ua=da-oa;va=X-pa;wa=na-qa;xa=1.0;break}}else{ua=da;va=X;wa=na;xa=0.0}while(0);if(wa*wa+(va*va+ua*ua)<ga){ya=ma+qa*xa;za=Y+pa*xa;Aa=ea+oa*xa;Ba=1}else{ya=_;za=U;Aa=fa;Ba=ja}ka=ka+1|0;la=c[b>>2]|0;if((ka|0)>=(Ob[c[(c[la>>2]|0)+100>>2]&127](la)|0))break;else{fa=Aa;U=za;_=ya;ja=Ba}}if(!(Ba&1))break;else{Ca=ga;Da=Aa;Ea=za;Fa=ya}}else{Ca=r*r;Da=D-ca*$;Ea=E-ba*$;Fa=F-aa*$}_=D-Da;U=E-Ea;fa=F-Fa;na=_*_+U*U+fa*fa;if(na<Ca){if(na>1.1920928955078125e-07){X=+P(+na);na=1.0/X;Ga=t-X;Ha=_*na;Ia=U*na;Ja=fa*na}else{Ga=t;Ha=ca;Ia=ba;Ja=aa}na=-Ga;if(f){fa=+g[u>>2];U=+g[x>>2];_=+g[A>>2];X=fa*Ha+U*Ia+_*Ja;da=+g[v>>2];ra=+g[y>>2];ta=+g[B>>2];sa=Ha*da+Ia*ra+Ja*ta;Ka=+g[w>>2];La=+g[z>>2];Ma=+g[C>>2];Na=Ha*Ka+Ia*La+Ja*Ma;g[k>>2]=-X;g[k+4>>2]=-sa;g[k+8>>2]=-Na;g[k+12>>2]=0.0;Oa=Da*da+Ea*ra+Fa*ta+ +g[q>>2]+sa*na;sa=Da*Ka+Ea*La+Fa*Ma+ +g[s>>2]+Na*na;g[l>>2]=Da*fa+Ea*U+Fa*_+ +g[o>>2]+X*na;g[l+4>>2]=Oa;g[l+8>>2]=sa;g[l+12>>2]=0.0;oc[c[(c[d>>2]|0)+16>>2]&7](d,k,l,na);i=e;return}else{ja=c[(c[d>>2]|0)+16>>2]|0;sa=+g[u>>2];Oa=+g[x>>2];X=+g[A>>2];_=+g[v>>2];U=+g[y>>2];fa=+g[B>>2];Na=+g[w>>2];Ma=+g[z>>2];La=+g[C>>2];g[m>>2]=sa*Ha+Oa*Ia+X*Ja;g[m+4>>2]=Ha*_+Ia*U+Ja*fa;g[m+8>>2]=Ha*Na+Ia*Ma+Ja*La;g[m+12>>2]=0.0;Ka=Da*_+Ea*U+Fa*fa+ +g[q>>2];fa=Da*Na+Ea*Ma+Fa*La+ +g[s>>2];g[n>>2]=Da*sa+Ea*Oa+Fa*X+ +g[o>>2];g[n+4>>2]=Ka;g[n+8>>2]=fa;g[n+12>>2]=0.0;oc[ja&7](d,m,n,na);i=e;return}}}while(0);i=e;return}function Ul(a){a=a|0;return}function Vl(a){a=a|0;xs(a);return}function Wl(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0.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,q=0.0,r=0.0,s=0.0,t=0.0,u=0.0,v=0.0;f=+Zb[c[(c[a>>2]|0)+48>>2]&7](a);h=f+ +g[a+32>>2];i=f+ +g[a+36>>2];j=f+ +g[a+40>>2];f=+O(+(+g[b>>2]));k=+O(+(+g[b+4>>2]));l=+O(+(+g[b+8>>2]));m=+O(+(+g[b+16>>2]));n=+O(+(+g[b+20>>2]));o=+O(+(+g[b+24>>2]));p=+O(+(+g[b+32>>2]));q=+O(+(+g[b+36>>2]));r=+O(+(+g[b+40>>2]));s=+g[b+48>>2];t=+g[b+52>>2];u=+g[b+56>>2];v=h*f+i*k+j*l;l=h*m+i*n+j*o;o=h*p+i*q+j*r;g[d>>2]=s-v;g[d+4>>2]=t-l;g[d+8>>2]=u-o;g[d+12>>2]=0.0;g[e>>2]=v+s;g[e+4>>2]=l+t;g[e+8>>2]=o+u;g[e+12>>2]=0.0;return}function Xl(a,b,d){a=a|0;b=+b;d=d|0;var e=0.0,f=0.0,h=0.0,i=0.0,j=0.0,k=0.0;e=+g[a+32>>2];f=+g[a+36>>2];h=+g[a+40>>2];i=+Zb[c[(c[a>>2]|0)+48>>2]&7](a);j=+Zb[c[(c[a>>2]|0)+48>>2]&7](a);k=(e+i)*2.0;i=(f+j)*2.0;j=(h+ +Zb[c[(c[a>>2]|0)+48>>2]&7](a))*2.0;h=b/12.0;b=i*i;i=j*j;j=k*k;g[d>>2]=h*(b+i);g[d+4>>2]=h*(j+i);g[d+8>>2]=h*(j+b);g[d+12>>2]=0.0;return}function Yl(a,b){a=a|0;b=+b;var d=0.0,e=0.0,f=0.0,h=0,i=0.0,j=0,k=0,l=0.0;d=+Zb[c[(c[a>>2]|0)+48>>2]&7](a);e=+Zb[c[(c[a>>2]|0)+48>>2]&7](a);f=+Zb[c[(c[a>>2]|0)+48>>2]&7](a);h=a+32|0;i=d+ +g[h>>2];j=a+36|0;d=e+ +g[j>>2];k=a+40|0;e=f+ +g[k>>2];g[a+48>>2]=b;b=+Zb[c[(c[a>>2]|0)+48>>2]&7](a);f=+Zb[c[(c[a>>2]|0)+48>>2]&7](a);l=e-+Zb[c[(c[a>>2]|0)+48>>2]&7](a);g[h>>2]=i-b;g[j>>2]=d-f;g[k>>2]=l;g[a+44>>2]=0.0;return}function Zl(a){a=a|0;var b=0,d=0;c[a>>2]=10864;b=a+56|0;d=c[b>>2]|0;if((d|0)!=0?(Kb[c[c[d>>2]>>2]&255](d),d=c[b>>2]|0,(d|0)!=0):0){c[3710]=(c[3710]|0)+1;xs(c[d+-4>>2]|0);}c[3710]=(c[3710]|0)+1;xs(c[a+-4>>2]|0);return}function _l(a,b){a=a|0;b=b|0;var d=0.0,e=0.0,f=0.0,h=0,i=0,j=0,k=0,l=0.0,m=0,n=0.0,o=0,p=0.0,q=0.0,r=0.0,s=0.0;d=+Zb[c[(c[a>>2]|0)+48>>2]&7](a);e=+Zb[c[(c[a>>2]|0)+48>>2]&7](a);f=+Zb[c[(c[a>>2]|0)+48>>2]&7](a);h=a+32|0;i=a+36|0;j=a+40|0;k=a+16|0;l=(d+ +g[h>>2])/+g[k>>2];m=a+20|0;n=(e+ +g[i>>2])/+g[m>>2];o=a+24|0;p=(f+ +g[j>>2])/+g[o>>2];q=+O(+(+g[b>>2]));r=+O(+(+g[b+4>>2]));s=+O(+(+g[b+8>>2]));g[k>>2]=q;g[m>>2]=r;g[o>>2]=s;g[a+28>>2]=0.0;g[h>>2]=l*q-d;g[i>>2]=n*r-e;g[j>>2]=p*s-f;g[a+44>>2]=0.0;return}function $l(a){a=a|0;return a+16|0}function am(a){a=a|0;return 8848}function bm(a,b){a=a|0;b=b|0;c[a>>2]=1065353216;c[a+4>>2]=1065353216;c[a+8>>2]=1065353216;g[a+12>>2]=0.0;return}function cm(a){a=a|0;return +(+g[a+48>>2]);}function dm(a){a=a|0;return 52}function em(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=ec[c[(c[d>>2]|0)+40>>2]&31](d,a)|0;f=ec[c[(c[d>>2]|0)+28>>2]&31](d,e)|0;c[b>>2]=f;if(f)Mb[c[(c[d>>2]|0)+48>>2]&127](d,e);c[b+4>>2]=c[a+4>>2];c[b+28>>2]=c[a+32>>2];c[b+32>>2]=c[a+36>>2];c[b+36>>2]=c[a+40>>2];c[b+40>>2]=c[a+44>>2];c[b+12>>2]=c[a+16>>2];c[b+16>>2]=c[a+20>>2];c[b+20>>2]=c[a+24>>2];c[b+24>>2]=c[a+28>>2];c[b+44>>2]=c[a+48>>2];return 8816}function fm(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,f=0.0,h=0.0,i=0.0,j=0.0,k=0.0;e=+g[b+32>>2];f=+g[b+36>>2];h=+g[b+40>>2];i=+Zb[c[(c[b>>2]|0)+48>>2]&7](b);j=+Zb[c[(c[b>>2]|0)+48>>2]&7](b);k=e+i;i=f+j;j=h+ +Zb[c[(c[b>>2]|0)+48>>2]&7](b);h=+g[d+4>>2]>=0.0?i:-i;i=+g[d+8>>2]>=0.0?j:-j;g[a>>2]=+g[d>>2]>=0.0?k:-k;g[a+4>>2]=h;g[a+8>>2]=i;g[a+12>>2]=0.0;return}function gm(a,b,c){a=a|0;b=b|0;c=c|0;var d=0.0,e=0.0,f=0.0,h=0.0;d=+g[b+32>>2];e=+g[b+36>>2];f=+g[c+4>>2]>=0.0?e:-e;e=+g[b+40>>2];h=+g[c+8>>2]>=0.0?e:-e;g[a>>2]=+g[c>>2]>=0.0?d:-d;g[a+4>>2]=f;g[a+8>>2]=h;g[a+12>>2]=0.0;return}function hm(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,h=0,i=0.0,j=0.0,k=0.0,l=0.0;if((d|0)<=0)return;e=a+32|0;f=a+36|0;h=a+40|0;a=0;do{i=+g[e>>2];j=+g[f>>2];k=+g[b+(a<<4)+4>>2]>=0.0?j:-j;j=+g[h>>2];l=+g[b+(a<<4)+8>>2]>=0.0?j:-j;g[c+(a<<4)>>2]=+g[b+(a<<4)>>2]>=0.0?i:-i;g[c+(a<<4)+4>>2]=k;g[c+(a<<4)+8>>2]=l;g[c+(a<<4)+12>>2]=0.0;a=a+1|0}while((a|0)!=(d|0));return}function im(a){a=a|0;return 6}function jm(a,b,d){a=a|0;b=b|0;d=d|0;switch(b|0){case 3:{c[d>>2]=0;c[d+4>>2]=-1082130432;c[d+8>>2]=0;g[d+12>>2]=0.0;return}case 1:{c[d>>2]=-1082130432;c[d+4>>2]=0;c[d+8>>2]=0;g[d+12>>2]=0.0;return}case 2:{c[d>>2]=0;c[d+4>>2]=1065353216;c[d+8>>2]=0;g[d+12>>2]=0.0;return}case 0:{c[d>>2]=1065353216;c[d+4>>2]=0;c[d+8>>2]=0;g[d+12>>2]=0.0;return}case 4:{c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=1065353216;g[d+12>>2]=0.0;return}case 5:{c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=-1082130432;g[d+12>>2]=0.0;return}default:return}}function km(a){a=a|0;return 8}function lm(a){a=a|0;return 12}function mm(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;do switch(b|0){case 6:{f=2;g=b;break}case 10:{f=5;g=7;break}case 9:{f=4;g=6;break}case 3:{f=2;g=b;break}case 0:{f=0;g=1;break}case 4:{f=0;g=b;break}case 11:{f=6;g=7;break}case 1:{f=0;g=2;break}case 8:{f=4;g=5;break}case 5:{f=1;g=b;break}case 2:{f=1;g=3;break}case 7:{f=3;g=b;break}default:{f=0;g=0}}while(0);pc[c[(c[a>>2]|0)+108>>2]&63](a,f,d);pc[c[(c[a>>2]|0)+108>>2]&63](a,g,e);return}function nm(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,f=0.0,h=0.0,i=0.0,j=0.0,k=0.0,l=0,m=0;e=+g[a+32>>2];f=+g[a+36>>2];h=+g[a+40>>2];i=+Zb[c[(c[a>>2]|0)+48>>2]&7](a);j=+Zb[c[(c[a>>2]|0)+48>>2]&7](a);k=e+i;i=f+j;j=h+ +Zb[c[(c[a>>2]|0)+48>>2]&7](a);a=b&1;l=b>>>1&1;m=b>>>2&1;g[d>>2]=+(a^1|0)*k-+(a|0)*k;g[d+4>>2]=+(l^1|0)*i-+(l|0)*i;g[d+8>>2]=+(m^1|0)*j-+(m|0)*j;g[d+12>>2]=0.0;return}function om(a){a=a|0;return 6}function pm(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,h=0,j=0,l=0,m=0,n=0,o=0.0,p=0.0,q=0.0;f=i;i=i+48|0;h=f+32|0;j=f+16|0;l=f;pc[c[(c[a>>2]|0)+124>>2]&63](a,h,e);e=c[h>>2]|0;m=c[h+4>>2]|0;n=c[h+8>>2]|0;c[b>>2]=e;c[b+4>>2]=m;c[b+8>>2]=n;g[b+12>>2]=0.0;b=c[(c[a>>2]|0)+64>>2]|0;o=-(c[k>>2]=e,+g[k>>2]);p=-(c[k>>2]=m,+g[k>>2]);q=-(c[k>>2]=n,+g[k>>2]);g[l>>2]=o;g[l+4>>2]=p;g[l+8>>2]=q;g[l+12>>2]=0.0;pc[b&63](j,a,l);c[d>>2]=c[j>>2];c[d+4>>2]=c[j+4>>2];c[d+8>>2]=c[j+8>>2];c[d+12>>2]=c[j+12>>2];i=f;return}function qm(a,b,c){a=a|0;b=b|0;c=+c;var d=0.0,e=0.0,f=0.0,h=0.0,i=0;d=+g[a+32>>2];e=+g[a+36>>2];f=+g[a+40>>2];h=+g[b>>2];if(!(h<=d+c)){i=0;return i|0}if(!(h>=-d-c)){i=0;return i|0}d=+g[b+4>>2];if(!(d<=e+c)){i=0;return i|0}if(!(d>=-e-c)){i=0;return i|0}e=+g[b+8>>2];if(!(e<=f+c)){i=0;return i|0}i=e>=-f-c;return i|0}function rm(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,f=0.0,h=0.0;e=+g[a+32>>2];f=+g[a+36>>2];h=+g[a+40>>2];switch(d|0){case 5:{c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=-1082130432;g[b+12>>2]=-h;return}case 2:{c[b>>2]=0;c[b+4>>2]=1065353216;c[b+8>>2]=0;g[b+12>>2]=-f;return}case 3:{c[b>>2]=0;c[b+4>>2]=-1082130432;c[b+8>>2]=0;g[b+12>>2]=-f;return}case 0:{c[b>>2]=1065353216;c[b+4>>2]=0;c[b+8>>2]=0;g[b+12>>2]=-e;return}case 4:{c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=1065353216;g[b+12>>2]=-h;return}case 1:{c[b>>2]=-1082130432;c[b+4>>2]=0;c[b+8>>2]=0;g[b+12>>2]=-e;return}default:return}}function sm(b){b=b|0;var d=0;c[b>>2]=8864;if(!(a[b+65>>0]|0))return;d=b+56|0;b=c[d>>2]|0;Kb[c[c[b>>2]>>2]&255](b);b=c[d>>2]|0;if(!b)return;c[3710]=(c[3710]|0)+1;xs(c[b+-4>>2]|0);return}function tm(b){b=b|0;var d=0,e=0;c[b>>2]=8864;if((a[b+65>>0]|0)!=0?(d=b+56|0,e=c[d>>2]|0,Kb[c[c[e>>2]>>2]&255](e),e=c[d>>2]|0,(e|0)!=0):0){c[3710]=(c[3710]|0)+1;xs(c[e+-4>>2]|0);}c[3710]=(c[3710]|0)+1;xs(c[b+-4>>2]|0);return}function um(d,f,h,j){d=d|0;f=f|0;h=h|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0.0,L=0.0,M=0.0,N=0.0,O=0.0,P=0.0,Q=0.0,R=0.0,S=0.0,T=0.0,U=0.0,V=0.0,W=0.0,X=0,Y=0,Z=0,_=0,$=0,aa=0;k=i;i=i+80|0;l=k+66|0;m=k+60|0;n=k;o=c[d+52>>2]|0;c[n>>2]=9056;c[n+4>>2]=o;c[n+8>>2]=f;f=c[d+56>>2]|0;if(!(a[f+60>>0]|0)){d=f+56|0;o=c[d>>2]|0;if((o|0)>0){p=h+8|0;q=h+4|0;r=j+4|0;s=j+8|0;t=o;o=0;u=c[f+96>>2]|0;v=0;while(1){w=v+1|0;if(!(+g[h>>2]>+g[u+16>>2])?!(+g[j>>2]<+g[u>>2]):0)x=1;else x=0;if(!(+g[p>>2]>+g[u+24>>2])?!(+g[s>>2]<+g[u+8>>2]):0)y=x;else y=0;if(!(+g[q>>2]>+g[u+20>>2])?!(+g[r>>2]<+g[u+4>>2]):0){z=c[u+32>>2]|0;A=(z|0)==-1;if(y&A){pc[c[(c[n>>2]|0)+8>>2]&63](n,c[u+36>>2]|0,c[u+40>>2]|0);B=c[d>>2]|0;C=42}else{D=y;E=A;F=z;C=41}}else{z=c[u+32>>2]|0;D=0;E=(z|0)==-1;F=z;C=41}if((C|0)==41){C=0;if(E|D){B=t;C=42}else{G=t;H=F+o|0;I=u+(F<<6)|0}}if((C|0)==42){C=0;G=B;H=o+1|0;I=u+64|0}if((H|0)<(G|0)){t=G;o=H;u=I;v=w}else{J=w;break}}}else J=0;if((c[3158]|0)>=(J|0)){i=k;return}c[3158]=J;i=k;return}K=+g[h>>2];L=+g[h+4>>2];M=+g[h+8>>2];N=+g[f+4>>2];O=K<N?N:K;K=+g[f+8>>2];P=L<K?K:L;L=+g[f+12>>2];Q=M<L?L:M;M=+g[f+20>>2];R=+g[f+24>>2];S=+g[f+28>>2];T=+g[f+36>>2];U=+g[f+40>>2];V=+g[f+44>>2];h=~~(((M<O?M:O)-N)*T)&65534;b[l>>1]=h;J=~~(((S<Q?S:Q)-L)*V)&65534;v=~~(((R<P?R:P)-K)*U)&65534;b[l+2>>1]=v;b[l+4>>1]=J;P=+g[j>>2];Q=+g[j+4>>2];O=+g[j+8>>2];W=P<N?N:P;P=Q<K?K:Q;Q=O<L?L:O;j=(~~(((M<W?M:W)-N)*T+1.0)&65535|1)&65535;b[m>>1]=j;I=(~~(((S<Q?S:Q)-L)*V+1.0)&65535|1)&65535;u=(~~(((R<P?R:P)-K)*U+1.0)&65535|1)&65535;b[m+2>>1]=u;b[m+4>>1]=I;H=c[f+144>>2]|0;if(!H){o=c[f+56>>2]|0;if((o|0)>0){G=0;t=c[f+136>>2]|0;B=0;while(1){C=B+1|0;F=((j&65535)>=(e[t>>1]|0)?(h&65535)<=(e[t+6>>1]|0):0)&(J&65535)<=(e[t+10>>1]|0)&(I&65535)>=(e[t+4>>1]|0)&(v&65535)<=(e[t+8>>1]|0)&(u&65535)>=(e[t+2>>1]|0);D=t+12|0;E=c[D>>2]|0;y=(E|0)>-1;if(y&F)pc[c[(c[n>>2]|0)+8>>2]&63](n,E>>21,E&2097151);if(F|y){X=G+1|0;Y=t+16|0}else{y=c[D>>2]|0;X=G-y|0;Y=t+(0-y<<4)|0}if((X|0)<(o|0)){G=X;t=Y;B=C}else{Z=C;break}}}else Z=0;if((c[3158]|0)>=(Z|0)){i=k;return}c[3158]=Z;i=k;return}else if((H|0)==1){Z=f+152|0;if((c[Z>>2]|0)<=0){i=k;return}B=f+160|0;Y=f+136|0;t=0;do{X=c[B>>2]|0;if(((j&65535)>=(e[X+(t<<5)>>1]|0)?(h&65535)<=(e[X+(t<<5)+6>>1]|0):0)&(J&65535)<=(e[X+(t<<5)+10>>1]|0)&(I&65535)>=(e[X+(t<<5)+4>>1]|0)&(v&65535)<=(e[X+(t<<5)+8>>1]|0)&(u&65535)>=(e[X+(t<<5)+2>>1]|0)){G=c[X+(t<<5)+12>>2]|0;o=c[X+(t<<5)+16>>2]|0;X=o+G|0;if((o|0)>0){o=G;C=(c[Y>>2]|0)+(G<<4)|0;G=0;while(1){y=G+1|0;D=((j&65535)>=(e[C>>1]|0)?(h&65535)<=(e[C+6>>1]|0):0)&(J&65535)<=(e[C+10>>1]|0)&(I&65535)>=(e[C+4>>1]|0)&(v&65535)<=(e[C+8>>1]|0)&(u&65535)>=(e[C+2>>1]|0);F=C+12|0;E=c[F>>2]|0;d=(E|0)>-1;if(d&D)pc[c[(c[n>>2]|0)+8>>2]&63](n,E>>21,E&2097151);if(D|d){_=o+1|0;$=C+16|0}else{d=c[F>>2]|0;_=o-d|0;$=C+(0-d<<4)|0}if((_|0)<(X|0)){o=_;C=$;G=y}else{aa=y;break}}}else aa=0;if((c[3158]|0)<(aa|0))c[3158]=aa}t=t+1|0}while((t|0)<(c[Z>>2]|0));i=k;return}else if((H|0)==2){dq(c[f+136>>2]|0,n,l,m);i=k;return}else{i=k;return}}function vm(b,d){b=b|0;d=d|0;var e=0,f=0.0,h=0.0,i=0.0,j=0,k=0,l=0;e=Ob[c[(c[b>>2]|0)+28>>2]&127](b)|0;f=+g[e>>2]-+g[d>>2];h=+g[e+4>>2]-+g[d+4>>2];i=+g[e+8>>2]-+g[d+8>>2];if(!(f*f+h*h+i*i>1.1920928955078125e-07))return;_o(b,d);d=b+65|0;e=b+56|0;if((a[d>>0]|0)!=0?(j=c[e>>2]|0,Kb[c[c[j>>2]>>2]&255](j),j=c[e>>2]|0,(j|0)!=0):0){c[3710]=(c[3710]|0)+1;xs(c[j+-4>>2]|0);k=e}else k=e;c[3708]=(c[3708]|0)+1;e=ws(191)|0;if(!e)l=0;else{j=e+4+15&-16;c[j+-4>>2]=e;l=j}c[l+52>>2]=283;a[l+60>>0]=0;a[l+80>>0]=1;c[l+76>>2]=0;c[l+68>>2]=0;c[l+72>>2]=0;a[l+100>>0]=1;c[l+96>>2]=0;c[l+88>>2]=0;c[l+92>>2]=0;a[l+120>>0]=1;c[l+116>>2]=0;c[l+108>>2]=0;c[l+112>>2]=0;a[l+140>>0]=1;c[l+136>>2]=0;c[l+128>>2]=0;c[l+132>>2]=0;c[l+144>>2]=0;a[l+164>>0]=1;c[l+160>>2]=0;c[l+152>>2]=0;c[l+156>>2]=0;c[l+168>>2]=0;c[l+4>>2]=-8388609;c[l+8>>2]=-8388609;c[l+12>>2]=-8388609;g[l+16>>2]=0.0;c[l+20>>2]=2139095039;c[l+24>>2]=2139095039;c[l+28>>2]=2139095039;g[l+32>>2]=0.0;c[l>>2]=10504;c[k>>2]=l;io(l,c[b+52>>2]|0,(a[b+64>>0]|0)!=0,b+20|0,b+36|0);a[d>>0]=1;return}function wm(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;e=ec[c[(c[d>>2]|0)+40>>2]&31](d,a)|0;f=ec[c[(c[d>>2]|0)+28>>2]&31](d,e)|0;c[b>>2]=f;if(f)Mb[c[(c[d>>2]|0)+48>>2]&127](d,e);c[b+4>>2]=c[a+4>>2];e=c[a+52>>2]|0;Wb[c[(c[e>>2]|0)+56>>2]&31](e,b+12|0,d)|0;c[b+52>>2]=c[a+16>>2];e=a+56|0;do if((c[e>>2]|0)!=0?((Ob[c[(c[d>>2]|0)+52>>2]&127](d)|0)&1|0)==0:0){f=ec[c[(c[d>>2]|0)+24>>2]&31](d,c[e>>2]|0)|0;if(!f){c[b+40>>2]=ec[c[(c[d>>2]|0)+28>>2]&31](d,c[e>>2]|0)|0;c[b+44>>2]=0;g=c[e>>2]|0;h=Ob[c[(c[g>>2]|0)+12>>2]&127](g)|0;g=Wb[c[(c[d>>2]|0)+16>>2]&31](d,h,1)|0;h=c[e>>2]|0;i=Wb[c[(c[h>>2]|0)+16>>2]&31](h,c[g+8>>2]|0,d)|0;Ib[c[(c[d>>2]|0)+20>>2]&31](d,g,i,1213612625,c[e>>2]|0);break}else{c[b+40>>2]=f;c[b+44>>2]=0;break}}else j=8;while(0);if((j|0)==8){c[b+40>>2]=0;c[b+44>>2]=0}j=a+60|0;if((c[j>>2]|0)!=0?((Ob[c[(c[d>>2]|0)+52>>2]&127](d)|0)&2|0)==0:0){a=ec[c[(c[d>>2]|0)+24>>2]&31](d,c[j>>2]|0)|0;if(!a){c[b+48>>2]=ec[c[(c[d>>2]|0)+28>>2]&31](d,c[j>>2]|0)|0;e=c[j>>2]|0;f=Ob[c[(c[e>>2]|0)+8>>2]&127](e)|0;e=Wb[c[(c[d>>2]|0)+16>>2]&31](d,f,1)|0;f=c[j>>2]|0;i=Wb[c[(c[f>>2]|0)+12>>2]&31](f,c[e+8>>2]|0,d)|0;Ib[c[(c[d>>2]|0)+20>>2]&31](d,e,i,1346456916,c[j>>2]|0);return 9072}else{c[b+48>>2]=a;return 9072}}c[b+48>>2]=0;return 9072}function xm(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=a+56|0;a=c[d>>2]|0;if(!a)return;e=Ob[c[(c[a>>2]|0)+12>>2]&127](a)|0;a=Wb[c[(c[b>>2]|0)+16>>2]&31](b,e,1)|0;e=c[d>>2]|0;f=Wb[c[(c[e>>2]|0)+16>>2]&31](e,c[a+8>>2]|0,b)|0;Ib[c[(c[b>>2]|0)+20>>2]&31](b,a,f,1213612625,c[d>>2]|0);return}function ym(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=a+60|0;a=c[d>>2]|0;if(!a)return;e=Ob[c[(c[a>>2]|0)+8>>2]&127](a)|0;a=Wb[c[(c[b>>2]|0)+16>>2]&31](b,e,1)|0;e=c[d>>2]|0;f=Wb[c[(c[e>>2]|0)+12>>2]&31](e,c[a+8>>2]|0,b)|0;Ib[c[(c[b>>2]|0)+20>>2]&31](b,a,f,1346456916,c[d>>2]|0);return}function zm(a){a=a|0;return 9096}function Am(a,b){a=a|0;b=+b;g[a+16>>2]=b;return}function Bm(a){a=a|0;return +(+g[a+16>>2]);}function Cm(a){a=a|0;return 60}function Dm(a,b,d){a=a|0;b=b|0;d=d|0;pc[c[(c[b>>2]|0)+68>>2]&63](a,b,d);return}function Em(a){a=a|0;return}function Fm(a){a=a|0;xs(a);return}function Gm(a,b,f){a=a|0;b=b|0;f=f|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.0,B=0.0,C=0.0;j=i;i=i+32|0;k=j+28|0;l=j+20|0;m=j+16|0;n=j+12|0;o=j+8|0;p=j;q=a+4|0;r=c[q>>2]|0;dc[c[(c[r>>2]|0)+16>>2]&3](r,k,j+24|0,l,m,n,o,j+4|0,p,b);r=c[n>>2]|0;n=$(c[o>>2]|0,f)|0;o=r+n|0;s=c[q>>2]|0;t=s+4|0;u=s+8|0;v=s+12|0;s=c[p>>2]|0;p=2;while(1){if((s|0)==3)w=e[o+(p<<1)>>1]|0;else if((s|0)==2)w=c[o+(p<<2)>>2]|0;else w=d[r+(p+n)>>0]|0;x=c[k>>2]|0;y=$(c[m>>2]|0,w)|0;z=x+y|0;if(!(c[l>>2]|0)){A=+g[x+(y+8)>>2]*+g[v>>2];B=+g[x+(y+4)>>2]*+g[u>>2];C=+g[z>>2]*+g[t>>2]}else{A=+h[x+(y+16)>>3]*+g[v>>2];B=+h[x+(y+8)>>3]*+g[u>>2];C=+h[z>>3]*+g[t>>2]}g[a+12+(p<<4)>>2]=C;g[a+12+(p<<4)+4>>2]=B;g[a+12+(p<<4)+8>>2]=A;g[a+12+(p<<4)+12>>2]=0.0;if((p|0)>0)p=p+-1|0;else break}p=c[a+8>>2]|0;tc[c[(c[p>>2]|0)+8>>2]&63](p,a+12|0,b,f);f=c[q>>2]|0;Mb[c[(c[f>>2]|0)+24>>2]&127](f,b);i=j;return}function Hm(a){a=a|0;xs(a);return}function Im(a,b,d){a=a|0;b=b|0;d=d|0;var f=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.0,y=0.0,z=0.0;f=i;i=i+80|0;j=f+32|0;k=f+28|0;l=f+20|0;m=f+16|0;n=f+12|0;o=f+8|0;p=f;q=a+4|0;r=c[q>>2]|0;dc[c[(c[r>>2]|0)+16>>2]&3](r,k,f+24|0,l,m,n,o,f+4|0,p,b);r=(c[n>>2]|0)+($(c[o>>2]|0,d)|0)|0;o=c[q>>2]|0;n=(c[p>>2]|0)==3;p=(c[l>>2]|0)==0;l=c[k>>2]|0;k=o+4|0;s=o+8|0;t=o+12|0;o=2;while(1){if(n)u=e[r+(o<<1)>>1]|0;else u=c[r+(o<<2)>>2]|0;v=$(c[m>>2]|0,u)|0;w=l+v|0;if(p){x=+g[l+(v+8)>>2]*+g[t>>2];y=+g[l+(v+4)>>2]*+g[s>>2];z=+g[w>>2]*+g[k>>2]}else{x=+h[l+(v+16)>>3]*+g[t>>2];y=+h[l+(v+8)>>3]*+g[s>>2];z=+h[w>>3]*+g[k>>2]}g[j+(o<<4)>>2]=z;g[j+(o<<4)+4>>2]=y;g[j+(o<<4)+8>>2]=x;g[j+(o<<4)+12>>2]=0.0;if((o|0)>0)o=o+-1|0;else break}o=c[a+8>>2]|0;tc[c[(c[o>>2]|0)+8>>2]&63](o,j,b,d);d=c[q>>2]|0;Mb[c[(c[d>>2]|0)+24>>2]&127](d,b);i=f;return}function Jm(a){a=a|0;xs(a);return}function Km(a,b,d){a=a|0;b=b|0;d=d|0;var f=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.0,y=0.0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0.0,K=0.0,L=0.0,M=0.0,N=0.0,O=0.0,P=0.0,Q=0.0,R=0.0;f=i;i=i+80|0;j=f+32|0;k=f+28|0;l=f+20|0;m=f+16|0;n=f+12|0;o=f+8|0;p=f;q=a+4|0;r=c[q>>2]|0;dc[c[(c[r>>2]|0)+16>>2]&3](r,k,f+24|0,l,m,n,o,f+4|0,p,b);r=c[n>>2]|0;n=$(c[o>>2]|0,d)|0;o=r+n|0;s=c[q>>2]|0;t=(c[l>>2]|0)==0;l=c[k>>2]|0;k=s+4|0;u=s+8|0;v=s+12|0;if((c[p>>2]|0)!=3){p=c[m>>2]|0;s=$(p,c[r+(n+8)>>2]|0)|0;w=l+s|0;if(t){x=+g[l+(s+4)>>2]*+g[u>>2];y=+g[l+(s+8)>>2]*+g[v>>2];g[j+32>>2]=+g[w>>2]*+g[k>>2];g[j+36>>2]=x;g[j+40>>2]=y;g[j+44>>2]=0.0;z=$(p,c[r+(n+4)>>2]|0)|0;y=+g[l+(z+4)>>2]*+g[u>>2];x=+g[l+(z+8)>>2]*+g[v>>2];g[j+16>>2]=+g[l+z>>2]*+g[k>>2];g[j+20>>2]=y;g[j+24>>2]=x;g[j+28>>2]=0.0;z=$(p,c[o>>2]|0)|0;x=+g[l+(z+4)>>2]*+g[u>>2];y=+g[l+(z+8)>>2]*+g[v>>2];g[j>>2]=+g[l+z>>2]*+g[k>>2];g[j+4>>2]=x;g[j+8>>2]=y;g[j+12>>2]=0.0;A=a+8|0;B=c[A>>2]|0;C=c[B>>2]|0;D=C+8|0;E=c[D>>2]|0;tc[E&63](B,j,b,d);F=c[q>>2]|0;G=c[F>>2]|0;H=G+24|0;I=c[H>>2]|0;Mb[I&127](F,b);i=f;return}else{y=+h[l+(s+8)>>3]*+g[u>>2];x=+h[l+(s+16)>>3]*+g[v>>2];g[j+32>>2]=+h[w>>3]*+g[k>>2];g[j+36>>2]=y;g[j+40>>2]=x;g[j+44>>2]=0.0;w=$(p,c[r+(n+4)>>2]|0)|0;x=+h[l+(w+8)>>3]*+g[u>>2];y=+h[l+(w+16)>>3]*+g[v>>2];g[j+16>>2]=+h[l+w>>3]*+g[k>>2];g[j+20>>2]=x;g[j+24>>2]=y;g[j+28>>2]=0.0;w=$(p,c[o>>2]|0)|0;y=+h[l+(w+8)>>3]*+g[u>>2];x=+h[l+(w+16)>>3]*+g[v>>2];g[j>>2]=+h[l+w>>3]*+g[k>>2];g[j+4>>2]=y;g[j+8>>2]=x;g[j+12>>2]=0.0;A=a+8|0;B=c[A>>2]|0;C=c[B>>2]|0;D=C+8|0;E=c[D>>2]|0;tc[E&63](B,j,b,d);F=c[q>>2]|0;G=c[F>>2]|0;H=G+24|0;I=c[H>>2]|0;Mb[I&127](F,b);i=f;return}}w=c[m>>2]|0;m=$(w,e[r+(n+4)>>1]|0)|0;p=l+m|0;if(t){J=+g[l+(m+8)>>2]*+g[v>>2];K=+g[l+(m+4)>>2]*+g[u>>2];L=+g[p>>2]*+g[k>>2]}else{J=+h[l+(m+16)>>3]*+g[v>>2];K=+h[l+(m+8)>>3]*+g[u>>2];L=+h[p>>3]*+g[k>>2]}g[j+32>>2]=L;g[j+36>>2]=K;g[j+40>>2]=J;g[j+44>>2]=0.0;p=$(w,e[r+(n+2)>>1]|0)|0;n=l+p|0;if(t){M=+g[l+(p+8)>>2]*+g[v>>2];N=+g[l+(p+4)>>2]*+g[u>>2];O=+g[n>>2]*+g[k>>2]}else{M=+h[l+(p+16)>>3]*+g[v>>2];N=+h[l+(p+8)>>3]*+g[u>>2];O=+h[n>>3]*+g[k>>2]}g[j+16>>2]=O;g[j+20>>2]=N;g[j+24>>2]=M;g[j+28>>2]=0.0;n=$(w,e[o>>1]|0)|0;o=l+n|0;if(t){P=+g[l+(n+8)>>2]*+g[v>>2];Q=+g[l+(n+4)>>2]*+g[u>>2];R=+g[o>>2]*+g[k>>2]}else{P=+h[l+(n+16)>>3]*+g[v>>2];Q=+h[l+(n+8)>>3]*+g[u>>2];R=+h[o>>3]*+g[k>>2]}g[j>>2]=R;g[j+4>>2]=Q;g[j+8>>2]=P;g[j+12>>2]=0.0;A=a+8|0;B=c[A>>2]|0;C=c[B>>2]|0;D=C+8|0;E=c[D>>2]|0;tc[E&63](B,j,b,d);F=c[q>>2]|0;G=c[F>>2]|0;H=G+24|0;I=c[H>>2]|0;Mb[I&127](F,b);i=f;return}function Lm(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,h=0,j=0,k=0,l=0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0,r=0.0,s=0.0,t=0.0,u=0,v=0.0,w=0.0,x=0.0,y=0.0;e=i;i=i+32|0;f=e+16|0;h=e;j=a+4|0;k=a+8|0;l=a+12|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;c[a+12>>2]=0;m=+g[d>>2];n=+g[d+4>>2];o=+g[d+8>>2];p=m*m+n*n+o*o;if(p<9.999999747378752e-05){q=1.0;r=0.0;s=0.0}else{t=1.0/+P(+p);q=m*t;r=n*t;s=o*t}d=b+56|0;u=c[d>>2]|0;t=+g[b+32+(((u+2|0)%3|0)<<2)>>2];c[f>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;c[f+12>>2]=0;c[f+(u<<2)>>2]=c[b+32+(u<<2)>>2];o=q*t;n=r*t;m=s*t;t=o+ +g[f>>2];p=n+ +g[f+4>>2];v=m+ +g[f+8>>2];w=+Zb[c[(c[b>>2]|0)+48>>2]&7](b);x=t-q*w;t=p-r*w;p=v-s*w;w=s*p+(q*x+r*t);if(w>-999999984306749440.0){g[a>>2]=x;g[j>>2]=t;g[k>>2]=p;g[l>>2]=0.0;y=w}else y=-999999984306749440.0;c[h>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;c[h+12>>2]=0;f=c[d>>2]|0;g[h+(f<<2)>>2]=-+g[b+32+(f<<2)>>2];w=o+ +g[h>>2];o=n+ +g[h+4>>2];n=m+ +g[h+8>>2];m=+Zb[c[(c[b>>2]|0)+48>>2]&7](b);p=w-q*m;w=o-r*m;o=n-s*m;if(!(s*o+(q*p+r*w)>y)){i=e;return}g[a>>2]=p;g[j>>2]=w;g[k>>2]=o;g[l>>2]=0.0;i=e;return}function Mm(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,h=0,j=0,k=0,l=0,m=0.0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0.0,w=0.0,x=0.0,y=0.0,z=0.0,A=0.0,B=0.0,C=0.0,D=0.0,E=0.0,F=0.0,G=0.0,H=0;f=i;i=i+32|0;h=f+16|0;j=f;k=a+56|0;l=c[k>>2]|0;m=+g[a+32+(((l+2|0)%3|0)<<2)>>2];if((e|0)<=0){i=f;return}n=h+4|0;o=h+8|0;p=j+4|0;q=j+8|0;r=l;l=0;while(1){c[h>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;c[h+12>>2]=0;c[h+(r<<2)>>2]=c[a+32+(r<<2)>>2];s=b+(l<<4)|0;t=b+(l<<4)+4|0;u=b+(l<<4)+8|0;v=m*+g[s>>2]+ +g[h>>2];w=m*+g[t>>2]+ +g[n>>2];x=m*+g[u>>2]+ +g[o>>2];y=+Zb[c[(c[a>>2]|0)+48>>2]&7](a);z=+g[s>>2];A=+g[t>>2];B=+g[u>>2];C=v-y*z;v=w-y*A;w=x-y*B;y=z*C+A*v+B*w;if(y>-999999984306749440.0){g[d+(l<<4)>>2]=C;g[d+(l<<4)+4>>2]=v;g[d+(l<<4)+8>>2]=w;g[d+(l<<4)+12>>2]=0.0;D=+g[s>>2];E=+g[t>>2];F=+g[u>>2];G=y}else{D=z;E=A;F=B;G=-999999984306749440.0};c[j>>2]=0;c[j+4>>2]=0;c[j+8>>2]=0;c[j+12>>2]=0;H=c[k>>2]|0;g[j+(H<<2)>>2]=-+g[a+32+(H<<2)>>2];B=m*D+ +g[j>>2];A=m*E+ +g[p>>2];z=m*F+ +g[q>>2];y=+Zb[c[(c[a>>2]|0)+48>>2]&7](a);w=+g[s>>2];v=+g[t>>2];C=+g[u>>2];x=B-y*w;B=A-y*v;A=z-y*C;if(w*x+v*B+C*A>G){g[d+(l<<4)>>2]=x;g[d+(l<<4)+4>>2]=B;g[d+(l<<4)+8>>2]=A;g[d+(l<<4)+12>>2]=0.0}u=l+1|0;if((u|0)==(e|0))break;r=c[k>>2]|0;l=u}i=f;return}function Nm(a,b,d){a=a|0;b=+b;d=d|0;var e=0,f=0,h=0,j=0,k=0,l=0,m=0.0,n=0.0,o=0.0,p=0.0;e=i;i=i+16|0;f=e;h=c[a+56>>2]|0;j=c[a+32+(((h+2|0)%3|0)<<2)>>2]|0;c[f>>2]=j;k=f+4|0;c[k>>2]=j;l=f+8|0;c[l>>2]=j;g[f+12>>2]=0.0;j=f+(h<<2)|0;g[j>>2]=+g[a+32+(h<<2)>>2]+ +g[j>>2];m=(+g[f>>2]+.03999999910593033)*2.0;n=(+g[k>>2]+.03999999910593033)*2.0;o=(+g[l>>2]+.03999999910593033)*2.0;p=m*m;m=n*n;n=o*o;o=b*.0833333283662796;g[d>>2]=o*(m+n);g[d+4>>2]=o*(p+n);g[d+8>>2]=o*(p+m);i=e;return}function Om(a){a=a|0;if(!a)return;c[3710]=(c[3710]|0)+1;xs(c[a+-4>>2]|0);return}function Pm(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,h=0,j=0,l=0,m=0,n=0,o=0.0,p=0.0,q=0.0,r=0.0,s=0.0,t=0.0,u=0.0,v=0.0,w=0.0,x=0.0,y=0.0,z=0.0,A=0.0,B=0.0,C=0.0,D=0.0;f=i;i=i+16|0;h=f;j=c[a+56>>2]|0;l=c[a+32+(((j+2|0)%3|0)<<2)>>2]|0;c[h>>2]=l;m=h+4|0;c[m>>2]=l;n=h+8|0;c[n>>2]=l;g[h+12>>2]=0.0;g[h+(j<<2)>>2]=(c[k>>2]=l,+g[k>>2])+ +g[a+32+(j<<2)>>2];o=+Zb[c[(c[a>>2]|0)+48>>2]&7](a);p=+Zb[c[(c[a>>2]|0)+48>>2]&7](a);q=+Zb[c[(c[a>>2]|0)+48>>2]&7](a);r=o+ +g[h>>2];g[h>>2]=r;o=p+ +g[m>>2];g[m>>2]=o;p=q+ +g[n>>2];q=+O(+(+g[b>>2]));s=+O(+(+g[b+4>>2]));t=+O(+(+g[b+8>>2]));u=+O(+(+g[b+16>>2]));v=+O(+(+g[b+20>>2]));w=+O(+(+g[b+24>>2]));x=+O(+(+g[b+32>>2]));y=+O(+(+g[b+36>>2]));z=+O(+(+g[b+40>>2]));A=+g[b+48>>2];B=+g[b+52>>2];C=+g[b+56>>2];D=p*t+(q*r+s*o);s=p*w+(u*r+v*o);v=p*z+(x*r+y*o);g[d>>2]=A-D;g[d+4>>2]=B-s;g[d+8>>2]=C-v;g[d+12>>2]=0.0;g[e>>2]=A+D;g[e+4>>2]=B+s;g[e+8>>2]=C+v;g[e+12>>2]=0.0;i=f;return}function Qm(a,b){a=a|0;b=b|0;var d=0.0,e=0.0,f=0.0,h=0,i=0,j=0,k=0,l=0.0,m=0,n=0.0,o=0,p=0.0,q=0.0,r=0.0,s=0.0;d=+Zb[c[(c[a>>2]|0)+48>>2]&7](a);e=+Zb[c[(c[a>>2]|0)+48>>2]&7](a);f=+Zb[c[(c[a>>2]|0)+48>>2]&7](a);h=a+32|0;i=a+36|0;j=a+40|0;k=a+16|0;l=(d+ +g[h>>2])/+g[k>>2];m=a+20|0;n=(e+ +g[i>>2])/+g[m>>2];o=a+24|0;p=(f+ +g[j>>2])/+g[o>>2];q=+O(+(+g[b>>2]));r=+O(+(+g[b+4>>2]));s=+O(+(+g[b+8>>2]));g[k>>2]=q;g[m>>2]=r;g[o>>2]=s;g[a+28>>2]=0.0;g[h>>2]=l*q-d;g[i>>2]=n*r-e;g[j>>2]=p*s-f;g[a+44>>2]=0.0;return}function Rm(a){a=a|0;return 9696}function Sm(a,b){a=a|0;b=b|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;c[a+12>>2]=0;g[a+(c[b+56>>2]<<2)>>2]=1.0;return}function Tm(a,b){a=a|0;b=+b;var d=0.0,e=0.0,f=0.0,h=0,i=0.0,j=0,k=0,l=0.0;d=+Zb[c[(c[a>>2]|0)+48>>2]&7](a);e=+Zb[c[(c[a>>2]|0)+48>>2]&7](a);f=+Zb[c[(c[a>>2]|0)+48>>2]&7](a);h=a+32|0;i=d+ +g[h>>2];j=a+36|0;d=e+ +g[j>>2];k=a+40|0;e=f+ +g[k>>2];g[a+48>>2]=b;b=+Zb[c[(c[a>>2]|0)+48>>2]&7](a);f=+Zb[c[(c[a>>2]|0)+48>>2]&7](a);l=e-+Zb[c[(c[a>>2]|0)+48>>2]&7](a);g[h>>2]=i-b;g[j>>2]=d-f;g[k>>2]=l;g[a+44>>2]=0.0;return}function Um(a){a=a|0;return 60}function Vm(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=ec[c[(c[d>>2]|0)+40>>2]&31](d,a)|0;f=ec[c[(c[d>>2]|0)+28>>2]&31](d,e)|0;c[b>>2]=f;if(f)Mb[c[(c[d>>2]|0)+48>>2]&127](d,e);c[b+4>>2]=c[a+4>>2];c[b+28>>2]=c[a+32>>2];c[b+32>>2]=c[a+36>>2];c[b+36>>2]=c[a+40>>2];c[b+40>>2]=c[a+44>>2];c[b+12>>2]=c[a+16>>2];c[b+16>>2]=c[a+20>>2];c[b+20>>2]=c[a+24>>2];c[b+24>>2]=c[a+28>>2];c[b+44>>2]=c[a+48>>2];c[b+52>>2]=c[a+56>>2];return 9672}function Wm(a){a=a|0;return 0}function Xm(a,b,c){a=a|0;b=b|0;c=c|0;return}function Ym(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,h=0,j=0,k=0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0,r=0.0,s=0.0,t=0.0;e=i;i=i+96|0;f=e+32|0;h=e+16|0;j=e;c[f>>2]=1065353216;k=f+4|0;c[k>>2]=0;c[k+4>>2]=0;c[k+8>>2]=0;c[k+12>>2]=0;c[f+20>>2]=1065353216;k=f+24|0;c[k>>2]=0;c[k+4>>2]=0;c[k+8>>2]=0;c[k+12>>2]=0;c[f+40>>2]=1065353216;k=f+44|0;c[k>>2]=0;c[k+4>>2]=0;c[k+8>>2]=0;c[k+12>>2]=0;c[k+16>>2]=0;tc[c[(c[a>>2]|0)+8>>2]&63](a,f,h,j);l=+g[j>>2];m=+g[h>>2];n=l-m;o=+g[j+4>>2];p=+g[h+4>>2];q=o-p;r=+g[j+8>>2];s=+g[h+8>>2];t=r-s;g[d>>2]=+P(+(n*n+q*q+t*t))*.5;g[b>>2]=(m+l)*.5;g[b+4>>2]=(p+o)*.5;g[b+8>>2]=(s+r)*.5;g[b+12>>2]=0.0;i=e;return}function Zm(a,b){a=a|0;b=+b;return +(+Zb[c[(c[a>>2]|0)+16>>2]&7](a)*b);}function _m(a){a=a|0;var b=0,d=0,e=0,f=0.0,h=0.0,j=0.0,k=0.0;b=i;i=i+32|0;d=b+8|0;e=b;pc[c[(c[a>>2]|0)+12>>2]&63](a,d,e);f=+g[d>>2];h=+g[d+4>>2];j=+g[d+8>>2];k=+P(+(f*f+h*h+j*j));i=b;return +(k+ +g[e>>2]);}function $m(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=ec[c[(c[d>>2]|0)+40>>2]&31](d,a)|0;f=ec[c[(c[d>>2]|0)+28>>2]&31](d,e)|0;c[b>>2]=f;if(f)Mb[c[(c[d>>2]|0)+48>>2]&127](d,e);c[b+4>>2]=c[a+4>>2];return 9744}function an(a,b){a=a|0;b=b|0;var d=0,e=0;d=Ob[c[(c[a>>2]|0)+52>>2]&127](a)|0;e=Wb[c[(c[b>>2]|0)+16>>2]&31](b,d,1)|0;d=Wb[c[(c[a>>2]|0)+56>>2]&31](a,c[e+8>>2]|0,b)|0;Ib[c[(c[b>>2]|0)+20>>2]&31](b,e,d,1346455635,a);return}function bn(a){a=a|0;return 12}function cn(b,d){b=b|0;d=d|0;var e=0,f=0;c[b+8>>2]=0;c[b+12>>2]=-1;c[b>>2]=9776;a[b+32>>0]=1;c[b+28>>2]=0;c[b+20>>2]=0;c[b+24>>2]=0;c[b+36>>2]=1566444395;c[b+40>>2]=1566444395;c[b+44>>2]=1566444395;g[b+48>>2]=0.0;c[b+52>>2]=-581039253;c[b+56>>2]=-581039253;c[b+60>>2]=-581039253;g[b+64>>2]=0.0;e=b+68|0;c[e>>2]=0;c[b+72>>2]=1;g[b+76>>2]=0.0;c[b+80>>2]=1065353216;c[b+84>>2]=1065353216;c[b+88>>2]=1065353216;g[b+92>>2]=0.0;c[b+4>>2]=31;if(!d)return;c[3708]=(c[3708]|0)+1;d=ws(79)|0;if(!d)f=0;else{b=d+4+15&-16;c[b+-4>>2]=d;f=b}a[f+36>>0]=1;c[f+32>>2]=0;c[f+24>>2]=0;c[f+28>>2]=0;a[f+56>>0]=1;c[f+52>>2]=0;c[f+44>>2]=0;c[f+48>>2]=0;c[f>>2]=0;c[f+4>>2]=0;c[f+8>>2]=-1;c[f+12>>2]=0;c[f+16>>2]=0;c[e>>2]=f;return}function dn(b){b=b|0;var d=0,e=0,f=0,g=0,h=0;c[b>>2]=9776;d=b+68|0;e=c[d>>2]|0;if((e|0)!=0?(Xp(e),e=c[d>>2]|0,(e|0)!=0):0){c[3710]=(c[3710]|0)+1;xs(c[e+-4>>2]|0);}e=b+20|0;d=b+28|0;f=c[d>>2]|0;g=b+32|0;if(!f){a[g>>0]=1;c[d>>2]=0;c[e>>2]=0;h=b+24|0;c[h>>2]=0;return}if(a[g>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[f+-4>>2]|0);}c[d>>2]=0;a[g>>0]=1;c[d>>2]=0;c[e>>2]=0;h=b+24|0;c[h>>2]=0;return}function en(a){a=a|0;dn(a);if(!a)return;c[3710]=(c[3710]|0)+1;xs(c[a+-4>>2]|0);return}function fn(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0.0,r=0.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;f=i;i=i+128|0;h=f;j=f+112|0;k=f+96|0;l=f+64|0;m=b+72|0;c[m>>2]=(c[m>>2]|0)+1;c[h>>2]=c[d>>2];c[h+4>>2]=c[d+4>>2];c[h+8>>2]=c[d+8>>2];c[h+12>>2]=c[d+12>>2];m=d+16|0;n=h+16|0;c[n>>2]=c[m>>2];c[n+4>>2]=c[m+4>>2];c[n+8>>2]=c[m+8>>2];c[n+12>>2]=c[m+12>>2];m=d+32|0;o=h+32|0;c[o>>2]=c[m>>2];c[o+4>>2]=c[m+4>>2];c[o+8>>2]=c[m+8>>2];c[o+12>>2]=c[m+12>>2];m=d+48|0;p=h+48|0;c[p>>2]=c[m>>2];c[p+4>>2]=c[m+4>>2];c[p+8>>2]=c[m+8>>2];c[p+12>>2]=c[m+12>>2];m=c[e+4>>2]|0;q=+Zb[c[(c[e>>2]|0)+48>>2]&7](e);tc[c[(c[e>>2]|0)+8>>2]&63](e,d,j,k);d=b+36|0;r=+g[j>>2];if(+g[d>>2]>r)g[d>>2]=r;d=b+52|0;r=+g[k>>2];if(+g[d>>2]<r)g[d>>2]=r;d=b+40|0;r=+g[j+4>>2];if(+g[d>>2]>r)g[d>>2]=r;d=b+56|0;r=+g[k+4>>2];if(+g[d>>2]<r)g[d>>2]=r;d=b+44|0;r=+g[j+8>>2];if(+g[d>>2]>r)g[d>>2]=r;d=b+60|0;r=+g[k+8>>2];if(+g[d>>2]<r)g[d>>2]=r;d=c[b+68>>2]|0;if(!d){s=b+20|0;t=0}else{c[l>>2]=c[j>>2];c[l+4>>2]=c[j+4>>2];c[l+8>>2]=c[j+8>>2];c[l+12>>2]=c[j+12>>2];j=l+16|0;c[j>>2]=c[k>>2];c[j+4>>2]=c[k+4>>2];c[j+8>>2]=c[k+8>>2];c[j+12>>2]=c[k+12>>2];k=b+20|0;j=c[k>>2]|0;u=d+4|0;v=c[u>>2]|0;if(!v){c[3708]=(c[3708]|0)+1;w=ws(63)|0;if(!w)x=0;else{y=w+4+15&-16;c[y+-4>>2]=w;x=y}y=x;w=y+44|0;do{c[y>>2]=0;y=y+4|0}while((y|0)<(w|0));z=x}else{c[u>>2]=0;z=v}c[z+32>>2]=0;c[z+36>>2]=j;c[z+40>>2]=0;c[z>>2]=c[l>>2];c[z+4>>2]=c[l+4>>2];c[z+8>>2]=c[l+8>>2];c[z+12>>2]=c[l+12>>2];c[z+16>>2]=c[l+16>>2];c[z+20>>2]=c[l+20>>2];c[z+24>>2]=c[l+24>>2];c[z+28>>2]=c[l+28>>2];$p(d,c[d>>2]|0,z);l=d+12|0;c[l>>2]=(c[l>>2]|0)+1;s=k;t=z}z=c[s>>2]|0;k=b+24|0;if((z|0)==(c[k>>2]|0)?(l=(z|0)!=0?z<<1:1,(z|0)<(l|0)):0){if(!l){A=0;B=z}else{c[3708]=(c[3708]|0)+1;d=ws((l*80|3)+16|0)|0;if(!d)C=0;else{j=d+4+15&-16;c[j+-4>>2]=d;C=j}A=C;B=c[s>>2]|0}C=b+28|0;if((B|0)>0){j=0;do{d=A+(j*80|0)|0;v=c[C>>2]|0;u=v+(j*80|0)|0;c[d>>2]=c[u>>2];c[d+4>>2]=c[u+4>>2];c[d+8>>2]=c[u+8>>2];c[d+12>>2]=c[u+12>>2];u=A+(j*80|0)+16|0;d=v+(j*80|0)+16|0;c[u>>2]=c[d>>2];c[u+4>>2]=c[d+4>>2];c[u+8>>2]=c[d+8>>2];c[u+12>>2]=c[d+12>>2];d=A+(j*80|0)+32|0;u=v+(j*80|0)+32|0;c[d>>2]=c[u>>2];c[d+4>>2]=c[u+4>>2];c[d+8>>2]=c[u+8>>2];c[d+12>>2]=c[u+12>>2];u=A+(j*80|0)+48|0;d=v+(j*80|0)+48|0;c[u>>2]=c[d>>2];c[u+4>>2]=c[d+4>>2];c[u+8>>2]=c[d+8>>2];c[u+12>>2]=c[d+12>>2];d=A+(j*80|0)+64|0;u=v+(j*80|0)+64|0;c[d>>2]=c[u>>2];c[d+4>>2]=c[u+4>>2];c[d+8>>2]=c[u+8>>2];c[d+12>>2]=c[u+12>>2];j=j+1|0}while((j|0)!=(B|0));}B=c[C>>2]|0;j=b+32|0;if(B){if(a[j>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[B+-4>>2]|0);}c[C>>2]=0}a[j>>0]=1;c[C>>2]=A;c[k>>2]=l;D=c[s>>2]|0}else D=z;z=c[b+28>>2]|0;b=z+(D*80|0)|0;c[b>>2]=c[h>>2];c[b+4>>2]=c[h+4>>2];c[b+8>>2]=c[h+8>>2];c[b+12>>2]=c[h+12>>2];h=z+(D*80|0)+16|0;c[h>>2]=c[n>>2];c[h+4>>2]=c[n+4>>2];c[h+8>>2]=c[n+8>>2];c[h+12>>2]=c[n+12>>2];n=z+(D*80|0)+32|0;c[n>>2]=c[o>>2];c[n+4>>2]=c[o+4>>2];c[n+8>>2]=c[o+8>>2];c[n+12>>2]=c[o+12>>2];o=z+(D*80|0)+48|0;c[o>>2]=c[p>>2];c[o+4>>2]=c[p+4>>2];c[o+8>>2]=c[p+8>>2];c[o+12>>2]=c[p+12>>2];p=z+(D*80|0)+64|0;c[p>>2]=e;c[p+4>>2]=m;g[p+8>>2]=q;c[p+12>>2]=t;c[s>>2]=(c[s>>2]|0)+1;i=f;return}function gn(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;e=i;i=i+80|0;f=e;g=b+72|0;c[g>>2]=(c[g>>2]|0)+1;h=b+20|0;j=c[h>>2]|0;if((j|0)<=0){k=c[b>>2]|0;l=k+68|0;m=c[l>>2]|0;Kb[m&255](b);i=e;return}n=b+28|0;o=b+68|0;p=j;q=j;while(1){j=q;q=q+-1|0;r=c[n>>2]|0;if((c[r+(q*80|0)+64>>2]|0)==(d|0)){c[g>>2]=(c[g>>2]|0)+1;s=c[o>>2]|0;if(!s){t=p;u=r}else{v=c[r+(q*80|0)+76>>2]|0;_p(s,v)|0;r=s+4|0;w=c[r>>2]|0;if(w){c[3710]=(c[3710]|0)+1;xs(c[w+-4>>2]|0);}c[r>>2]=v;v=s+12|0;c[v>>2]=(c[v>>2]|0)+-1;t=c[h>>2]|0;u=c[n>>2]|0}v=t+-1|0;s=u+(q*80|0)|0;r=f;w=s;x=r+80|0;do{a[r>>0]=a[w>>0]|0;r=r+1|0;w=w+1|0}while((r|0)<(x|0));r=s;w=u+(v*80|0)|0;x=r+80|0;do{c[r>>2]=c[w>>2];r=r+4|0;w=w+4|0}while((r|0)<(x|0));r=(c[n>>2]|0)+(v*80|0)|0;w=f;x=r+80|0;do{a[r>>0]=a[w>>0]|0;r=r+1|0;w=w+1|0}while((r|0)<(x|0));if(c[o>>2]|0)c[(c[(c[n>>2]|0)+(q*80|0)+76>>2]|0)+36>>2]=q;w=(c[h>>2]|0)+-1|0;c[h>>2]=w;y=w}else y=p;if((j|0)<=1)break;else p=y}k=c[b>>2]|0;l=k+68|0;m=c[l>>2]|0;Kb[m&255](b);i=e;return}function hn(a){a=a|0;var b=0,d=0,e=0,f=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0.0;b=i;i=i+32|0;d=b+16|0;e=b;c[a+36>>2]=1566444395;f=a+40|0;c[f>>2]=1566444395;h=a+44|0;c[h>>2]=1566444395;g[a+48>>2]=0.0;c[a+52>>2]=-581039253;j=a+56|0;c[j>>2]=-581039253;k=a+60|0;c[k>>2]=-581039253;g[a+64>>2]=0.0;l=a+20|0;if((c[l>>2]|0)<=0){i=b;return}m=a+28|0;n=a+36|0;o=a+52|0;a=d+4|0;p=e+4|0;q=d+8|0;r=e+8|0;s=0;do{t=c[m>>2]|0;u=c[t+(s*80|0)+64>>2]|0;tc[c[(c[u>>2]|0)+8>>2]&63](u,t+(s*80|0)|0,d,e);v=+g[d>>2];if(+g[n>>2]>v)g[n>>2]=v;v=+g[e>>2];if(+g[o>>2]<v)g[o>>2]=v;v=+g[a>>2];if(+g[f>>2]>v)g[f>>2]=v;v=+g[p>>2];if(+g[j>>2]<v)g[j>>2]=v;v=+g[q>>2];if(+g[h>>2]>v)g[h>>2]=v;v=+g[r>>2];if(+g[k>>2]<v)g[k>>2]=v;s=s+1|0}while((s|0)<(c[l>>2]|0));i=b;return}function jn(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0.0,h=0.0,i=0.0,j=0.0,k=0.0,l=0.0,m=0,n=0.0,o=0.0,p=0.0,q=0.0,r=0.0,s=0.0,t=0.0,u=0.0,v=0.0,w=0.0,x=0.0,y=0.0,z=0.0,A=0.0,B=0.0,C=0.0,D=0.0,E=0.0,F=0.0,G=0.0,H=0.0,I=0.0;f=+g[a+52>>2];h=+g[a+36>>2];i=+g[a+56>>2];j=+g[a+40>>2];k=+g[a+60>>2];l=+g[a+44>>2];m=(c[a+20>>2]|0)==0;n=+Zb[c[(c[a>>2]|0)+48>>2]&7](a);o=+Zb[c[(c[a>>2]|0)+48>>2]&7](a);p=+Zb[c[(c[a>>2]|0)+48>>2]&7](a);q=(m?0.0:(f-h)*.5)+n;n=(m?0.0:(i-j)*.5)+o;o=(m?0.0:(k-l)*.5)+p;p=+g[b>>2];r=+O(+p);s=+g[b+4>>2];t=+O(+s);u=+g[b+8>>2];v=+O(+u);w=+g[b+16>>2];x=+O(+w);y=+g[b+20>>2];z=+O(+y);A=+g[b+24>>2];B=+O(+A);C=+g[b+32>>2];D=+O(+C);E=+g[b+36>>2];F=+O(+E);G=+g[b+40>>2];H=+O(+G);I=m?0.0:(f+h)*.5;h=m?0.0:(i+j)*.5;j=m?0.0:(k+l)*.5;l=I*p+h*s+j*u+ +g[b+48>>2];u=I*w+h*y+j*A+ +g[b+52>>2];A=I*C+h*E+j*G+ +g[b+56>>2];G=q*r+n*t+o*v;v=q*x+n*z+o*B;B=q*D+n*F+o*H;g[d>>2]=l-G;g[d+4>>2]=u-v;g[d+8>>2]=A-B;g[d+12>>2]=0.0;g[e>>2]=G+l;g[e+4>>2]=v+u;g[e+8>>2]=B+A;g[e+12>>2]=0.0;return}function kn(a,b,d){a=a|0;b=+b;d=d|0;var e=0,f=0,h=0,j=0,k=0,l=0.0,m=0.0,n=0.0,o=0.0;e=i;i=i+96|0;f=e+32|0;h=e+16|0;j=e;c[f>>2]=1065353216;k=f+4|0;c[k>>2]=0;c[k+4>>2]=0;c[k+8>>2]=0;c[k+12>>2]=0;c[f+20>>2]=1065353216;k=f+24|0;c[k>>2]=0;c[k+4>>2]=0;c[k+8>>2]=0;c[k+12>>2]=0;c[f+40>>2]=1065353216;k=f+44|0;c[k>>2]=0;c[k+4>>2]=0;c[k+8>>2]=0;c[k+12>>2]=0;c[k+16>>2]=0;tc[c[(c[a>>2]|0)+8>>2]&63](a,f,h,j);l=(+g[j>>2]-+g[h>>2])*.5*2.0;m=(+g[j+4>>2]-+g[h+4>>2])*.5*2.0;n=(+g[j+8>>2]-+g[h+8>>2])*.5*2.0;o=b/12.0;b=m*m;m=n*n;g[d>>2]=o*(b+m);n=l*l;g[d+4>>2]=o*(n+m);g[d+8>>2]=o*(n+b);i=e;return}function ln(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0.0,M=0.0,N=0,O=0,P=0,Q=0,R=0,S=0;d=i;i=i+144|0;e=d+128|0;f=d+112|0;h=d+80|0;j=d+16|0;k=d;l=a+20|0;if((c[l>>2]|0)<=0){m=a+80|0;c[m>>2]=c[b>>2];c[m+4>>2]=c[b+4>>2];c[m+8>>2]=c[b+8>>2];c[m+12>>2]=c[b+12>>2];n=c[a>>2]|0;o=n+68|0;p=c[o>>2]|0;Kb[p&255](a);i=d;return}q=a+28|0;r=j+16|0;s=j+32|0;t=j+48|0;u=k+4|0;v=b+4|0;w=k+8|0;x=b+8|0;y=a+80|0;z=a+84|0;A=a+88|0;B=k+12|0;C=j+52|0;D=j+56|0;E=j+48|0;F=j+60|0;G=a+68|0;H=h+16|0;I=0;do{J=c[q>>2]|0;K=J+(I*80|0)|0;c[j>>2]=c[K>>2];c[j+4>>2]=c[K+4>>2];c[j+8>>2]=c[K+8>>2];c[j+12>>2]=c[K+12>>2];K=J+(I*80|0)+16|0;c[r>>2]=c[K>>2];c[r+4>>2]=c[K+4>>2];c[r+8>>2]=c[K+8>>2];c[r+12>>2]=c[K+12>>2];K=J+(I*80|0)+32|0;c[s>>2]=c[K>>2];c[s+4>>2]=c[K+4>>2];c[s+8>>2]=c[K+8>>2];c[s+12>>2]=c[K+12>>2];K=J+(I*80|0)+48|0;c[t>>2]=c[K>>2];c[t+4>>2]=c[K+4>>2];c[t+8>>2]=c[K+8>>2];c[t+12>>2]=c[K+12>>2];K=c[J+(I*80|0)+64>>2]|0;J=Ob[c[(c[K>>2]|0)+28>>2]&127](K)|0;c[k>>2]=c[J>>2];c[k+4>>2]=c[J+4>>2];c[k+8>>2]=c[J+8>>2];L=+g[u>>2]*+g[v>>2]/+g[z>>2];M=+g[w>>2]*+g[x>>2]/+g[A>>2];g[k>>2]=+g[k>>2]*+g[b>>2]/+g[y>>2];g[u>>2]=L;g[w>>2]=M;g[B>>2]=0.0;J=c[(c[q>>2]|0)+(I*80|0)+64>>2]|0;Mb[c[(c[J>>2]|0)+24>>2]&127](J,k);M=+g[C>>2]*+g[v>>2]/+g[z>>2];L=+g[D>>2]*+g[x>>2]/+g[A>>2];g[E>>2]=+g[t>>2]*+g[b>>2]/+g[y>>2];g[C>>2]=M;g[D>>2]=L;g[F>>2]=0.0;J=c[q>>2]|0;K=J+(I*80|0)|0;c[K>>2]=c[j>>2];c[K+4>>2]=c[j+4>>2];c[K+8>>2]=c[j+8>>2];c[K+12>>2]=c[j+12>>2];K=J+(I*80|0)+16|0;c[K>>2]=c[r>>2];c[K+4>>2]=c[r+4>>2];c[K+8>>2]=c[r+8>>2];c[K+12>>2]=c[r+12>>2];K=J+(I*80|0)+32|0;c[K>>2]=c[s>>2];c[K+4>>2]=c[s+4>>2];c[K+8>>2]=c[s+8>>2];c[K+12>>2]=c[s+12>>2];K=J+(I*80|0)+48|0;c[K>>2]=c[t>>2];c[K+4>>2]=c[t+4>>2];c[K+8>>2]=c[t+8>>2];c[K+12>>2]=c[t+12>>2];if(c[G>>2]|0){K=c[(c[q>>2]|0)+(I*80|0)+64>>2]|0;tc[c[(c[K>>2]|0)+8>>2]&63](K,j,e,f);c[h>>2]=c[e>>2];c[h+4>>2]=c[e+4>>2];c[h+8>>2]=c[e+8>>2];c[h+12>>2]=c[e+12>>2];c[H>>2]=c[f>>2];c[H+4>>2]=c[f+4>>2];c[H+8>>2]=c[f+8>>2];c[H+12>>2]=c[f+12>>2];K=c[G>>2]|0;J=c[(c[q>>2]|0)+(I*80|0)+76>>2]|0;N=_p(K,J)|0;a:do if(N){O=c[K+8>>2]|0;if((O|0)<=-1){P=c[K>>2]|0;break}if((O|0)>0){Q=0;R=N;while(1){S=c[R+32>>2]|0;Q=Q+1|0;if(!S){P=R;break a}if((Q|0)>=(O|0)){P=S;break}else R=S}}else P=N}else P=0;while(0);c[J>>2]=c[h>>2];c[J+4>>2]=c[h+4>>2];c[J+8>>2]=c[h+8>>2];c[J+12>>2]=c[h+12>>2];c[J+16>>2]=c[h+16>>2];c[J+20>>2]=c[h+20>>2];c[J+24>>2]=c[h+24>>2];c[J+28>>2]=c[h+28>>2];$p(K,P,J);}I=I+1|0}while((I|0)<(c[l>>2]|0));m=a+80|0;c[m>>2]=c[b>>2];c[m+4>>2]=c[b+4>>2];c[m+8>>2]=c[b+8>>2];c[m+12>>2]=c[b+12>>2];n=c[a>>2]|0;o=n+68|0;p=c[o>>2]|0;Kb[p&255](a);i=d;return}function mn(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;e=ec[c[(c[d>>2]|0)+40>>2]&31](d,a)|0;f=ec[c[(c[d>>2]|0)+28>>2]&31](d,e)|0;c[b>>2]=f;if(f)Mb[c[(c[d>>2]|0)+48>>2]&127](d,e);c[b+4>>2]=c[a+4>>2];c[b+20>>2]=c[a+76>>2];e=c[a+20>>2]|0;f=b+16|0;c[f>>2]=e;g=b+12|0;c[g>>2]=0;if(!e)return 9920;b=Wb[c[(c[d>>2]|0)+16>>2]&31](d,76,e)|0;e=b+8|0;h=c[e>>2]|0;c[g>>2]=ec[c[(c[d>>2]|0)+28>>2]&31](d,h)|0;if((c[f>>2]|0)>0){g=a+28|0;a=0;i=h;while(1){h=c[g>>2]|0;c[i+72>>2]=c[h+(a*80|0)+72>>2];c[i+64>>2]=ec[c[(c[d>>2]|0)+28>>2]&31](d,c[h+(a*80|0)+64>>2]|0)|0;if(!(ec[c[(c[d>>2]|0)+24>>2]&31](d,c[(c[g>>2]|0)+(a*80|0)+64>>2]|0)|0)){h=c[(c[d>>2]|0)+16>>2]|0;j=c[(c[g>>2]|0)+(a*80|0)+64>>2]|0;k=Ob[c[(c[j>>2]|0)+52>>2]&127](j)|0;j=Wb[h&31](d,k,1)|0;k=c[(c[g>>2]|0)+(a*80|0)+64>>2]|0;h=Wb[c[(c[k>>2]|0)+56>>2]&31](k,c[j+8>>2]|0,d)|0;Ib[c[(c[d>>2]|0)+20>>2]&31](d,j,h,1346455635,c[(c[g>>2]|0)+(a*80|0)+64>>2]|0);}h=c[g>>2]|0;c[i+68>>2]=c[h+(a*80|0)+68>>2];c[i>>2]=c[h+(a*80|0)>>2];c[i+4>>2]=c[h+(a*80|0)+4>>2];c[i+8>>2]=c[h+(a*80|0)+8>>2];c[i+12>>2]=c[h+(a*80|0)+12>>2];c[i+16>>2]=c[h+(a*80|0)+16>>2];c[i+20>>2]=c[h+(a*80|0)+20>>2];c[i+24>>2]=c[h+(a*80|0)+24>>2];c[i+28>>2]=c[h+(a*80|0)+28>>2];c[i+32>>2]=c[h+(a*80|0)+32>>2];c[i+36>>2]=c[h+(a*80|0)+36>>2];c[i+40>>2]=c[h+(a*80|0)+40>>2];c[i+44>>2]=c[h+(a*80|0)+44>>2];c[i+48>>2]=c[h+(a*80|0)+48>>2];c[i+52>>2]=c[h+(a*80|0)+52>>2];c[i+56>>2]=c[h+(a*80|0)+56>>2];c[i+60>>2]=c[h+(a*80|0)+60>>2];a=a+1|0;if((a|0)>=(c[f>>2]|0)){l=d;break}else i=i+76|0}}else l=d;Ib[c[(c[l>>2]|0)+20>>2]&31](d,b,9888,1497453121,c[e>>2]|0);return 9920}function nn(a){a=a|0;return a+80|0}function on(a){a=a|0;return 9944}function pn(a,b){a=a|0;b=+b;g[a+76>>2]=b;return}function qn(a){a=a|0;return +(+g[a+76>>2]);}function rn(a){a=a|0;return 24}function sn(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,f=0,h=0.0,i=0.0,j=0.0,k=0.0,l=0,m=0;e=+g[b+64>>2]*.5;f=c[b+72>>2]|0;h=+g[d>>2];i=+g[d+4>>2];j=+g[d+8>>2];k=+P(+(h*h+i*i+j*j));l=c[b+68>>2]|0;if(+g[d+(f<<2)>>2]>k*+g[b+56>>2]){g[a+(l<<2)>>2]=0.0;g[a+(f<<2)>>2]=e;g[a+(c[b+76>>2]<<2)>>2]=0.0;return}k=+g[d+(l<<2)>>2];m=c[b+76>>2]|0;j=+g[d+(m<<2)>>2];i=+P(+(k*k+j*j));if(i>1.1920928955078125e-07){h=+g[b+60>>2]/i;g[a+(l<<2)>>2]=k*h;g[a+(f<<2)>>2]=-e;g[a+(m<<2)>>2]=j*h;return}else{g[a+(l<<2)>>2]=0.0;g[a+(f<<2)>>2]=-e;g[a+(m<<2)>>2]=0.0;return}}function tn(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0.0,r=0,s=0.0,t=0.0,u=0.0,v=0.0,w=0,x=0,y=0.0;f=i;i=i+16|0;h=f;if((e|0)<=0){i=f;return}j=a+64|0;k=a+72|0;l=a+56|0;m=a+68|0;n=a+76|0;o=a+60|0;a=0;do{p=d+(a<<4)|0;q=+g[j>>2]*.5;r=c[k>>2]|0;s=+g[b+(a<<4)>>2];t=+g[b+(a<<4)+4>>2];u=+g[b+(a<<4)+8>>2];v=+P(+(s*s+t*t+u*u));w=c[m>>2]|0;do if(!(+g[b+(a<<4)+(r<<2)>>2]>v*+g[l>>2])){u=+g[b+(a<<4)+(w<<2)>>2];x=c[n>>2]|0;t=+g[b+(a<<4)+(x<<2)>>2];s=+P(+(u*u+t*t));if(s>1.1920928955078125e-07){y=+g[o>>2]/s;g[h+(w<<2)>>2]=u*y;g[h+(r<<2)>>2]=-q;g[h+(x<<2)>>2]=t*y;break}else{g[h+(w<<2)>>2]=0.0;g[h+(r<<2)>>2]=-q;g[h+(x<<2)>>2]=0.0;break}}else{g[h+(w<<2)>>2]=0.0;g[h+(r<<2)>>2]=q;g[h+(c[n>>2]<<2)>>2]=0.0}while(0);c[p>>2]=c[h>>2];c[p+4>>2]=c[h+4>>2];c[p+8>>2]=c[h+8>>2];c[p+12>>2]=c[h+12>>2];a=a+1|0}while((a|0)!=(e|0));i=f;return}function un(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,f=0,h=0.0,i=0,j=0.0,k=0,l=0.0,m=0.0,n=0,o=0,p=0.0;e=+g[b+64>>2]*.5;f=c[b+72>>2]|0;h=+g[d>>2];i=d+4|0;j=+g[i>>2];k=d+8|0;l=+g[k>>2];m=+P(+(h*h+j*j+l*l));n=c[b+68>>2]|0;do if(!(+g[d+(f<<2)>>2]>m*+g[b+56>>2])){l=+g[d+(n<<2)>>2];o=c[b+76>>2]|0;j=+g[d+(o<<2)>>2];h=+P(+(l*l+j*j));if(h>1.1920928955078125e-07){p=+g[b+60>>2]/h;g[a+(n<<2)>>2]=l*p;g[a+(f<<2)>>2]=-e;g[a+(o<<2)>>2]=j*p;break}else{g[a+(n<<2)>>2]=0.0;g[a+(f<<2)>>2]=-e;g[a+(o<<2)>>2]=0.0;break}}else{g[a+(n<<2)>>2]=0.0;g[a+(f<<2)>>2]=e;g[a+(c[b+76>>2]<<2)>>2]=0.0}while(0);if(!(+Zb[c[(c[b>>2]|0)+48>>2]&7](b)!=0.0))return;e=+g[d>>2];m=+g[i>>2];p=+g[k>>2];k=e*e+m*m+p*p<1.4210854715202004e-14;j=k?-1.0:e;e=k?-1.0:m;m=k?-1.0:p;p=1.0/+P(+(m*m+(j*j+e*e)));l=+Zb[c[(c[b>>2]|0)+48>>2]&7](b);g[a>>2]=+g[a>>2]+l*(p*j);b=a+4|0;g[b>>2]=l*(p*e)+ +g[b>>2];b=a+8|0;g[b>>2]=l*(p*m)+ +g[b>>2];return}function vn(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0,i=0.0,j=0.0,k=0.0;d=c[a+72>>2]|0;e=c[a+68>>2]|0;f=c[a+76>>2]|0;h=a+64|0;i=+g[b+(d<<2)>>2]/+g[a+16+(d<<2)>>2]*+g[h>>2];g[h>>2]=i;h=a+60|0;j=+g[h>>2]*((+g[b+(e<<2)>>2]/+g[a+16+(e<<2)>>2]+ +g[b+(f<<2)>>2]/+g[a+16+(f<<2)>>2])*.5);g[h>>2]=j;g[a+56>>2]=j/+P(+(i*i+j*j));j=+O(+(+g[b>>2]));i=+O(+(+g[b+4>>2]));k=+O(+(+g[b+8>>2]));g[a+16>>2]=j;g[a+20>>2]=i;g[a+24>>2]=k;g[a+28>>2]=0.0;return}function wn(a){a=a|0;if(!a)return;c[3710]=(c[3710]|0)+1;xs(c[a+-4>>2]|0);return}function xn(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;tc[c[(c[a>>2]|0)+80>>2]&63](a,b,d,e);return}function yn(a,b,d){a=a|0;b=+b;d=d|0;var e=0,f=0,h=0,j=0,k=0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0;e=i;i=i+96|0;f=e+32|0;h=e+16|0;j=e;c[f>>2]=1065353216;k=f+4|0;c[k>>2]=0;c[k+4>>2]=0;c[k+8>>2]=0;c[k+12>>2]=0;c[f+20>>2]=1065353216;k=f+24|0;c[k>>2]=0;c[k+4>>2]=0;c[k+8>>2]=0;c[k+12>>2]=0;c[f+40>>2]=1065353216;k=f+44|0;c[k>>2]=0;c[k+4>>2]=0;c[k+8>>2]=0;c[k+12>>2]=0;c[k+16>>2]=0;tc[c[(c[a>>2]|0)+8>>2]&63](a,f,h,j);l=(+g[j>>2]-+g[h>>2])*.5;m=(+g[j+4>>2]-+g[h+4>>2])*.5;n=(+g[j+8>>2]-+g[h+8>>2])*.5;o=+Zb[c[(c[a>>2]|0)+48>>2]&7](a);p=(l+o)*2.0;l=(m+o)*2.0;m=(n+o)*2.0;o=p*p;p=l*l;l=m*m;m=b*.0833333283662796;g[d>>2]=m*(p+l);g[d+4>>2]=m*(o+l);g[d+8>>2]=m*(o+p);g[d+12>>2]=0.0;i=e;return}function zn(a){a=a|0;return 10112}function An(a,b){a=a|0;b=b|0;c[a>>2]=0;c[a+4>>2]=1065353216;c[a+8>>2]=0;g[a+12>>2]=0.0;return}function Bn(a,b){a=a|0;b=+b;g[a+48>>2]=b;return}function Cn(a){a=a|0;return 60}function Dn(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=ec[c[(c[d>>2]|0)+40>>2]&31](d,a)|0;f=ec[c[(c[d>>2]|0)+28>>2]&31](d,e)|0;c[b>>2]=f;if(f)Mb[c[(c[d>>2]|0)+48>>2]&127](d,e);c[b+4>>2]=c[a+4>>2];c[b+28>>2]=c[a+32>>2];c[b+32>>2]=c[a+36>>2];c[b+36>>2]=c[a+40>>2];c[b+40>>2]=c[a+44>>2];c[b+12>>2]=c[a+16>>2];c[b+16>>2]=c[a+20>>2];c[b+20>>2]=c[a+24>>2];c[b+24>>2]=c[a+28>>2];c[b+44>>2]=c[a+48>>2];c[b+52>>2]=c[a+72>>2];return 10096}function En(a,b){a=a|0;b=b|0;var c=0.0,d=0.0,e=0.0;c=+O(+(+g[b>>2]));d=+O(+(+g[b+4>>2]));e=+O(+(+g[b+8>>2]));g[a+16>>2]=c;g[a+20>>2]=d;g[a+24>>2]=e;g[a+28>>2]=0.0;return}function Fn(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0.0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0.0,T=0.0,U=0.0,V=0.0,W=0.0;f=i;i=i+96|0;h=f+80|0;j=f+64|0;k=f+48|0;l=f+32|0;m=f+16|0;n=f;o=+Zb[c[(c[a>>2]|0)+48>>2]&7](a);p=h+4|0;q=h+8|0;r=b+16|0;s=b+32|0;t=b+4|0;u=b+20|0;v=b+36|0;w=b+8|0;x=b+24|0;y=b+40|0;z=k+4|0;A=k+8|0;B=k+12|0;C=j+4|0;D=j+8|0;E=b+48|0;F=b+52|0;G=b+56|0;H=l+4|0;I=l+8|0;J=l+12|0;K=n+4|0;L=n+8|0;M=n+12|0;N=m+4|0;O=m+8|0;P=0;do{Q=h+(P<<2)|0;c[h>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;c[h+12>>2]=0;g[Q>>2]=1.0;R=c[(c[a>>2]|0)+64>>2]|0;S=+g[h>>2];T=+g[p>>2];U=+g[q>>2];V=S*+g[t>>2]+T*+g[u>>2]+U*+g[v>>2];W=S*+g[w>>2]+T*+g[x>>2]+U*+g[y>>2];g[k>>2]=+g[b>>2]*S+ +g[r>>2]*T+ +g[s>>2]*U;g[z>>2]=V;g[A>>2]=W;g[B>>2]=0.0;pc[R&63](j,a,k);W=+g[j>>2];V=+g[C>>2];U=+g[D>>2];T=W*+g[r>>2]+V*+g[u>>2]+U*+g[x>>2]+ +g[F>>2];S=W*+g[s>>2]+V*+g[v>>2]+U*+g[y>>2]+ +g[G>>2];g[l>>2]=W*+g[b>>2]+V*+g[t>>2]+U*+g[w>>2]+ +g[E>>2];g[H>>2]=T;g[I>>2]=S;g[J>>2]=0.0;R=l+(P<<2)|0;g[e+(P<<2)>>2]=o+ +g[R>>2];g[Q>>2]=-1.0;Q=c[(c[a>>2]|0)+64>>2]|0;S=+g[h>>2];T=+g[p>>2];U=+g[q>>2];V=S*+g[t>>2]+T*+g[u>>2]+U*+g[v>>2];W=S*+g[w>>2]+T*+g[x>>2]+U*+g[y>>2];g[n>>2]=+g[b>>2]*S+ +g[r>>2]*T+ +g[s>>2]*U;g[K>>2]=V;g[L>>2]=W;g[M>>2]=0.0;pc[Q&63](m,a,n);W=+g[m>>2];V=+g[N>>2];U=+g[O>>2];T=W*+g[r>>2]+V*+g[u>>2]+U*+g[x>>2]+ +g[F>>2];S=W*+g[s>>2]+V*+g[v>>2]+U*+g[y>>2]+ +g[G>>2];g[l>>2]=W*+g[b>>2]+V*+g[t>>2]+U*+g[w>>2]+ +g[E>>2];g[H>>2]=T;g[I>>2]=S;g[J>>2]=0.0;g[d+(P<<2)>>2]=+g[R>>2]-o;P=P+1|0}while((P|0)!=3);i=f;return}function Gn(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,f=0.0,h=0.0,i=0.0,j=0.0;pc[c[(c[b>>2]|0)+68>>2]&63](a,b,d);if(!(+Zb[c[(c[b>>2]|0)+48>>2]&7](b)!=0.0))return;e=+g[d>>2];f=+g[d+4>>2];h=+g[d+8>>2];d=e*e+f*f+h*h<1.4210854715202004e-14;i=d?-1.0:e;e=d?-1.0:f;f=d?-1.0:h;h=1.0/+P(+(f*f+(i*i+e*e)));j=+Zb[c[(c[b>>2]|0)+48>>2]&7](b);g[a>>2]=+g[a>>2]+j*(h*i);b=a+4|0;g[b>>2]=j*(h*e)+ +g[b>>2];b=a+8|0;g[b>>2]=j*(h*f)+ +g[b>>2];return}function Hn(a){a=a|0;return}function In(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var h=0,j=0,k=0,l=0,m=0,n=0.0,o=0,p=0,q=0.0,r=0,s=0,t=0.0,u=0,v=0,w=0,x=0.0,y=0,z=0,A=0,B=0.0,C=0,D=0,E=0,F=0,G=0.0,H=0,I=0.0,J=0.0,K=0.0;h=i;i=i+64|0;j=h+48|0;k=h+32|0;l=h+16|0;m=h;n=+g[d>>2];o=b+16|0;p=d+4|0;q=+g[p>>2];r=b+32|0;s=d+8|0;t=+g[s>>2];u=b+4|0;v=b+20|0;w=b+36|0;x=n*+g[u>>2]+q*+g[v>>2]+t*+g[w>>2];y=b+8|0;z=b+24|0;A=b+40|0;B=n*+g[y>>2]+q*+g[z>>2]+t*+g[A>>2];g[j>>2]=+g[b>>2]*n+ +g[o>>2]*q+ +g[r>>2]*t;C=j+4|0;g[C>>2]=x;D=j+8|0;g[D>>2]=B;g[j+12>>2]=0.0;pc[c[(c[a>>2]|0)+64>>2]&63](k,a,j);B=+g[k>>2];x=+g[k+4>>2];t=+g[k+8>>2];k=b+48|0;q=B*+g[b>>2]+x*+g[u>>2]+t*+g[y>>2]+ +g[k>>2];E=b+52|0;n=B*+g[o>>2]+x*+g[v>>2]+t*+g[z>>2]+ +g[E>>2];F=b+56|0;G=B*+g[r>>2]+x*+g[w>>2]+t*+g[A>>2]+ +g[F>>2];H=c[(c[a>>2]|0)+64>>2]|0;t=-+g[C>>2];x=-+g[D>>2];g[m>>2]=-+g[j>>2];g[m+4>>2]=t;g[m+8>>2]=x;g[m+12>>2]=0.0;pc[H&63](l,a,m);x=+g[l>>2];t=+g[l+4>>2];B=+g[l+8>>2];I=x*+g[b>>2]+t*+g[u>>2]+B*+g[y>>2]+ +g[k>>2];J=x*+g[o>>2]+t*+g[v>>2]+B*+g[z>>2]+ +g[E>>2];K=x*+g[r>>2]+t*+g[w>>2]+B*+g[A>>2]+ +g[F>>2];g[e>>2]=q*+g[d>>2]+n*+g[p>>2]+G*+g[s>>2];G=I*+g[d>>2]+J*+g[p>>2]+K*+g[s>>2];g[f>>2]=G;K=+g[e>>2];if(!(K>G)){i=h;return}g[e>>2]=G;g[f>>2]=K;i=h;return}function Jn(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0.0,q=0.0,r=0.0,s=0.0,t=0.0,u=0.0,v=0,w=0.0,x=0,y=0.0,z=0,A=0,B=0,C=0,D=0.0,E=0.0,F=0.0,G=0.0,H=0.0,I=0.0,J=0,K=0,L=0,M=0.0,N=0,O=0,Q=0,R=0.0,S=0,T=0,U=0;e=i;i=i+80|0;f=e+64|0;h=e+48|0;j=e+32|0;l=e+16|0;m=e;switch(c[b+4>>2]|0){case 4:{n=c[b+108>>2]|0;o=c[b+100>>2]|0;p=+g[b+16>>2];q=+g[b+20>>2];r=+g[b+24>>2];s=+g[d>>2]*p;t=+g[d+4>>2]*q;u=+g[d+8>>2]*r;if((o|0)>0){v=0;w=-3402823466385288598117041.0e14;x=-1;while(1){y=s*+g[n+(v<<4)>>2]+t*+g[n+(v<<4)+4>>2]+u*+g[n+(v<<4)+8>>2];z=y>w;A=z?v:x;v=v+1|0;if((v|0)==(o|0)){B=A;break}else{w=z?y:w;x=A}}}else B=-1;w=q*+g[n+(B<<4)+4>>2];q=r*+g[n+(B<<4)+8>>2];g[a>>2]=p*+g[n+(B<<4)>>2];g[a+4>>2]=w;g[a+8>>2]=q;g[a+12>>2]=0.0;i=e;return}case 5:{B=c[b+96>>2]|0;n=c[b+100>>2]|0;q=+g[b+16>>2];w=+g[b+20>>2];p=+g[b+24>>2];r=+g[d>>2]*q;u=+g[d+4>>2]*w;t=+g[d+8>>2]*p;if((n|0)>0){x=0;s=-3402823466385288598117041.0e14;o=-1;while(1){y=r*+g[B+(x<<4)>>2]+u*+g[B+(x<<4)+4>>2]+t*+g[B+(x<<4)+8>>2];v=y>s;A=v?x:o;x=x+1|0;if((x|0)==(n|0)){C=A;break}else{s=v?y:s;o=A}}}else C=-1;s=w*+g[B+(C<<4)+4>>2];w=p*+g[B+(C<<4)+8>>2];g[a>>2]=q*+g[B+(C<<4)>>2];g[a+4>>2]=s;g[a+8>>2]=w;g[a+12>>2]=0.0;i=e;return}case 8:{c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;c[a+12>>2]=0;i=e;return}case 10:{w=+g[d>>2];s=+g[d+4>>2];q=+g[d+8>>2];C=c[b+56>>2]|0;p=+g[b+32+(C<<2)>>2];t=+g[b+32+(((C+2|0)%3|0)<<2)>>2];u=w*w+s*s+q*q;if(u<9.999999747378752e-05){D=1.0;E=0.0;F=0.0}else{r=1.0/+P(+u);D=w*r;E=s*r;F=q*r}c[l>>2]=0;c[l+4>>2]=0;c[l+8>>2]=0;c[l+12>>2]=0;g[l+(C<<2)>>2]=p;r=t*D;q=t*E;s=t*F;t=+g[b+48>>2];w=D*t;u=E*t;y=F*t;t=+g[l>>2]+r-w;G=q+ +g[l+4>>2]-u;H=s+ +g[l+8>>2]-y;I=F*H+(D*t+E*G);if(I>-999999984306749440.0){l=(g[k>>2]=t,c[k>>2]|0);B=(g[k>>2]=G,c[k>>2]|0);J=(g[k>>2]=H,c[k>>2]|0);K=B;L=l;M=I}else{J=0;K=0;L=0;M=-999999984306749440.0}c[m>>2]=0;c[m+4>>2]=0;c[m+8>>2]=0;c[m+12>>2]=0;g[m+(C<<2)>>2]=-p;p=r+ +g[m>>2]-w;w=q+ +g[m+4>>2]-u;u=s+ +g[m+8>>2]-y;if(F*u+(D*p+E*w)>M){m=(g[k>>2]=p,c[k>>2]|0);C=(g[k>>2]=w,c[k>>2]|0);N=m;O=C;Q=(g[k>>2]=u,c[k>>2]|0);}else{N=L;O=K;Q=J}c[a>>2]=N;c[a+4>>2]=O;c[a+8>>2]=Q;g[a+12>>2]=0.0;i=e;return}case 13:{Q=b+32|0;c[f>>2]=c[Q>>2];c[f+4>>2]=c[Q+4>>2];c[f+8>>2]=c[Q+8>>2];c[f+12>>2]=c[Q+12>>2];c[h>>2]=c[d>>2];Q=c[d+4>>2]|0;c[h+4>>2]=Q;O=c[d+8>>2]|0;c[h+8>>2]=O;g[h+12>>2]=0.0;N=c[b+56>>2]|0;u=(c[k>>2]=O,+g[k>>2]);if((N|0)==2){R=(c[k>>2]=Q,+g[k>>2]);S=0;T=2;U=1}else if((N|0)==1){R=u;S=0;T=1;U=2}else{R=u;S=1;T=0;U=2}u=+g[f+(S<<2)>>2];w=+g[f+(N<<2)>>2];p=+g[h+(S<<2)>>2];M=+P(+(p*p+R*R));E=+g[h+(T<<2)>>2];if(M!=0.0){D=u/M;g[j+(S<<2)>>2]=p*D;g[j+(T<<2)>>2]=E<0.0?-w:w;g[j+(U<<2)>>2]=D*R;c[a>>2]=c[j>>2];c[a+4>>2]=c[j+4>>2];c[a+8>>2]=c[j+8>>2];g[a+12>>2]=0.0;i=e;return}else{g[j+(S<<2)>>2]=u;g[j+(T<<2)>>2]=E<0.0?-w:w;g[j+(U<<2)>>2]=0.0;c[a>>2]=c[j>>2];c[a+4>>2]=c[j+4>>2];c[a+8>>2]=c[j+8>>2];g[a+12>>2]=0.0;i=e;return}break}case 1:{w=+g[d>>2];E=+g[d+4>>2];u=+g[d+8>>2];j=b+60|0;R=w*+g[j>>2]+E*+g[j+4>>2]+u*+g[j+8>>2];D=w*+g[j+16>>2]+E*+g[j+20>>2]+u*+g[j+24>>2];p=w*+g[j+32>>2]+E*+g[j+36>>2]+u*+g[j+40>>2];U=R<D?(D<p?2:1):R<p?2:0;T=c[j+(U<<4)+4>>2]|0;S=c[j+(U<<4)+8>>2]|0;c[a>>2]=c[j+(U<<4)>>2];c[a+4>>2]=T;c[a+8>>2]=S;g[a+12>>2]=0.0;i=e;return}case 0:{p=+g[b+32>>2];R=+g[b+36>>2];D=+g[d+4>>2]>=0.0?R:-R;R=+g[b+40>>2];u=+g[d+8>>2]>=0.0?R:-R;g[a>>2]=+g[d>>2]>=0.0?p:-p;g[a+4>>2]=D;g[a+8>>2]=u;g[a+12>>2]=0.0;i=e;return}default:{pc[c[(c[b>>2]|0)+68>>2]&63](a,b,d);i=e;return}}}function Kn(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,h=0,j=0.0,k=0.0,l=0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0;e=i;i=i+32|0;f=e+16|0;h=e;c[f>>2]=c[d>>2];c[f+4>>2]=c[d+4>>2];c[f+8>>2]=c[d+8>>2];c[f+12>>2]=c[d+12>>2];j=+g[f>>2];d=f+4|0;k=+g[d>>2];l=f+8|0;m=+g[l>>2];if(j*j+k*k+m*m<1.4210854715202004e-14){c[f>>2]=-1082130432;c[d>>2]=-1082130432;c[l>>2]=-1082130432;g[f+12>>2]=0.0;n=-1.0;o=-1.0;p=-1.0}else{n=j;o=k;p=m}m=1.0/+P(+(n*n+o*o+p*p));g[f>>2]=n*m;g[d>>2]=o*m;g[l>>2]=p*m;Jn(h,b,f);switch(c[b+4>>2]|0){case 4:case 5:{q=+g[b+48>>2];break}case 10:{q=+g[b+48>>2];break}case 13:{q=+g[b+48>>2];break}case 8:{q=+g[b+32>>2]*+g[b+16>>2];break}case 11:{q=+g[b+48>>2];break}case 0:{q=+g[b+48>>2];break}case 1:{q=+g[b+48>>2];break}default:q=+Zb[c[(c[b>>2]|0)+48>>2]&7](b);}m=q*+g[d>>2]+ +g[h+4>>2];p=q*+g[l>>2]+ +g[h+8>>2];g[a>>2]=q*+g[f>>2]+ +g[h>>2];g[a+4>>2]=m;g[a+8>>2]=p;g[a+12>>2]=0.0;i=e;return}function Ln(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0,i=0.0,j=0,k=0.0,l=0,m=0.0,n=0.0,o=0,p=0.0,q=0,r=0,s=0.0,t=0;d=a+4|0;c[d>>2]=35;c[a+8>>2]=0;c[a+12>>2]=-1;c[a+16>>2]=1065353216;e=a+20|0;c[e>>2]=1065353216;f=a+24|0;c[f>>2]=1065353216;g[a+28>>2]=0.0;h=a+48|0;g[h>>2]=.03999999910593033;c[a>>2]=10200;c[a+56>>2]=1;i=+g[b>>2];j=b+4|0;k=+g[j>>2];l=b+8|0;m=+g[l>>2];n=+g[b+((i<k?(i<m?0:2):k<m?1:2)<<2)>>2]*.10000000149011612;if(n<.03999999910593033){m=+cm(a);k=+Zb[c[(c[a>>2]|0)+48>>2]&7](a);i=+Zb[c[(c[a>>2]|0)+48>>2]&7](a);o=a+32|0;p=m+ +g[o>>2];q=a+36|0;m=k+ +g[q>>2];r=a+40|0;k=i+ +g[r>>2];g[h>>2]=n;n=+Zb[c[(c[a>>2]|0)+48>>2]&7](a);i=+Zb[c[(c[a>>2]|0)+48>>2]&7](a);s=k-+Zb[c[(c[a>>2]|0)+48>>2]&7](a);g[o>>2]=p-n;g[q>>2]=m-i;g[r>>2]=s;g[a+44>>2]=0.0;t=c[a>>2]|0}else t=10200;s=+Zb[c[t+48>>2]&7](a);i=+Zb[c[(c[a>>2]|0)+48>>2]&7](a);m=+Zb[c[(c[a>>2]|0)+48>>2]&7](a);n=+g[j>>2]*+g[e>>2]-i;i=+g[l>>2]*+g[f>>2]-m;g[a+32>>2]=+g[b>>2]*+g[a+16>>2]-s;g[a+36>>2]=n;g[a+40>>2]=i;g[a+44>>2]=0.0;c[d>>2]=13;return}function Mn(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0.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,q=0.0,r=0.0,s=0.0,t=0.0,u=0.0,v=0.0;f=+Zb[c[(c[a>>2]|0)+48>>2]&7](a);h=f+ +g[a+32>>2];i=f+ +g[a+36>>2];j=f+ +g[a+40>>2];f=+O(+(+g[b>>2]));k=+O(+(+g[b+4>>2]));l=+O(+(+g[b+8>>2]));m=+O(+(+g[b+16>>2]));n=+O(+(+g[b+20>>2]));o=+O(+(+g[b+24>>2]));p=+O(+(+g[b+32>>2]));q=+O(+(+g[b+36>>2]));r=+O(+(+g[b+40>>2]));s=+g[b+48>>2];t=+g[b+52>>2];u=+g[b+56>>2];v=h*f+i*k+j*l;l=h*m+i*n+j*o;o=h*p+i*q+j*r;g[d>>2]=s-v;g[d+4>>2]=t-l;g[d+8>>2]=u-o;g[d+12>>2]=0.0;g[e>>2]=v+s;g[e+4>>2]=l+t;g[e+8>>2]=o+u;g[e+12>>2]=0.0;return}function Nn(a,b,d){a=a|0;b=+b;d=d|0;var e=0,f=0,h=0,j=0.0,k=0.0,l=0.0,m=0,n=0,o=0.0,p=0.0;e=i;i=i+16|0;f=e;h=a+32|0;c[f>>2]=c[h>>2];c[f+4>>2]=c[h+4>>2];c[f+8>>2]=c[h+8>>2];c[f+12>>2]=c[h+12>>2];j=+Zb[c[(c[a>>2]|0)+48>>2]&7](a);k=+Zb[c[(c[a>>2]|0)+48>>2]&7](a);l=+Zb[c[(c[a>>2]|0)+48>>2]&7](a);g[f>>2]=j+ +g[f>>2];h=f+4|0;g[h>>2]=k+ +g[h>>2];h=f+8|0;g[h>>2]=l+ +g[h>>2];l=b/12.0;k=b*.25;j=b*.5;h=c[a+56>>2]|0;if(!h){m=0;n=1}else if((h|0)==2){m=2;n=0}else{m=1;n=0}b=+g[f+(n<<2)>>2];o=b*b;b=+g[f+(m<<2)>>2];p=k*o+l*(b*(b*4.0));b=j*o;if(!h){g[d>>2]=b;g[d+4>>2]=p;g[d+8>>2]=p;g[d+12>>2]=0.0;i=e;return}else if((h|0)==2){g[d>>2]=p;g[d+4>>2]=p;g[d+8>>2]=b;g[d+12>>2]=0.0;i=e;return}else{g[d>>2]=p;g[d+4>>2]=b;g[d+8>>2]=p;g[d+12>>2]=0.0;i=e;return}}function On(a,b,c){a=a|0;b=b|0;c=c|0;var d=0.0,e=0.0,f=0.0,h=0.0,i=0.0,j=0.0,k=0.0,l=0.0,m=0.0,n=0.0;d=+g[b+32>>2];e=+g[b+36>>2];f=+g[c>>2];h=+g[c+8>>2];i=+P(+(f*f+h*h));j=+g[c+4>>2];if(i!=0.0){k=d/i;l=h*k;m=j<0.0?-e:e;n=f*k}else{l=0.0;m=j<0.0?-e:e;n=d}g[a>>2]=n;g[a+4>>2]=m;g[a+8>>2]=l;return}function Pn(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=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,q=0.0;if((d|0)<=0)return;e=a+32|0;f=a+36|0;a=0;do{h=+g[e>>2];i=+g[f>>2];j=+g[b+(a<<4)>>2];k=+g[b+(a<<4)+8>>2];l=+P(+(j*j+k*k));m=+g[b+(a<<4)+4>>2];if(l!=0.0){n=h/l;o=k*n;p=m<0.0?-i:i;q=j*n}else{o=0.0;p=m<0.0?-i:i;q=h}g[c+(a<<4)>>2]=q;g[c+(a<<4)+4>>2]=p;g[c+(a<<4)+8>>2]=o;a=a+1|0}while((a|0)!=(d|0));return}function Qn(a,b){a=a|0;b=+b;var d=0.0,e=0.0,f=0.0,h=0,i=0.0,j=0,k=0,l=0.0;d=+Zb[c[(c[a>>2]|0)+48>>2]&7](a);e=+Zb[c[(c[a>>2]|0)+48>>2]&7](a);f=+Zb[c[(c[a>>2]|0)+48>>2]&7](a);h=a+32|0;i=d+ +g[h>>2];j=a+36|0;d=e+ +g[j>>2];k=a+40|0;e=f+ +g[k>>2];g[a+48>>2]=b;b=+Zb[c[(c[a>>2]|0)+48>>2]&7](a);f=+Zb[c[(c[a>>2]|0)+48>>2]&7](a);l=e-+Zb[c[(c[a>>2]|0)+48>>2]&7](a);g[h>>2]=i-b;g[j>>2]=d-f;g[k>>2]=l;g[a+44>>2]=0.0;return}function Rn(a){a=a|0;if(!a)return;c[3710]=(c[3710]|0)+1;xs(c[a+-4>>2]|0);return}function Sn(a,b){a=a|0;b=b|0;var d=0.0,e=0.0,f=0.0,h=0,i=0,j=0,k=0,l=0.0,m=0,n=0.0,o=0,p=0.0,q=0.0,r=0.0,s=0.0;d=+Zb[c[(c[a>>2]|0)+48>>2]&7](a);e=+Zb[c[(c[a>>2]|0)+48>>2]&7](a);f=+Zb[c[(c[a>>2]|0)+48>>2]&7](a);h=a+32|0;i=a+36|0;j=a+40|0;k=a+16|0;l=(d+ +g[h>>2])/+g[k>>2];m=a+20|0;n=(e+ +g[i>>2])/+g[m>>2];o=a+24|0;p=(f+ +g[j>>2])/+g[o>>2];q=+O(+(+g[b>>2]));r=+O(+(+g[b+4>>2]));s=+O(+(+g[b+8>>2]));g[k>>2]=q;g[m>>2]=r;g[o>>2]=s;g[a+28>>2]=0.0;g[h>>2]=l*q-d;g[i>>2]=n*r-e;g[j>>2]=p*s-f;g[a+44>>2]=0.0;return}function Tn(a){a=a|0;return 10360}function Un(a,b){a=a|0;b=b|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;c[a+12>>2]=0;g[a+(c[b+56>>2]<<2)>>2]=1.0;return}function Vn(a){a=a|0;return 60}function Wn(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=ec[c[(c[d>>2]|0)+40>>2]&31](d,a)|0;f=ec[c[(c[d>>2]|0)+28>>2]&31](d,e)|0;c[b>>2]=f;if(f)Mb[c[(c[d>>2]|0)+48>>2]&127](d,e);c[b+4>>2]=c[a+4>>2];c[b+28>>2]=c[a+32>>2];c[b+32>>2]=c[a+36>>2];c[b+36>>2]=c[a+40>>2];c[b+40>>2]=c[a+44>>2];c[b+12>>2]=c[a+16>>2];c[b+16>>2]=c[a+20>>2];c[b+20>>2]=c[a+24>>2];c[b+24>>2]=c[a+28>>2];c[b+44>>2]=c[a+48>>2];c[b+52>>2]=c[a+56>>2];return 10336}function Xn(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,h=0.0,j=0.0,k=0.0,l=0.0,m=0.0;e=i;i=i+16|0;f=e;pc[c[(c[b>>2]|0)+68>>2]&63](f,b,d);c[a>>2]=c[f>>2];c[a+4>>2]=c[f+4>>2];c[a+8>>2]=c[f+8>>2];c[a+12>>2]=c[f+12>>2];if(!(+Zb[c[(c[b>>2]|0)+48>>2]&7](b)!=0.0)){i=e;return}h=+g[d>>2];j=+g[d+4>>2];k=+g[d+8>>2];d=h*h+j*j+k*k<1.4210854715202004e-14;l=d?-1.0:h;h=d?-1.0:j;j=d?-1.0:k;k=1.0/+P(+(j*j+(l*l+h*h)));m=+Zb[c[(c[b>>2]|0)+48>>2]&7](b);g[a>>2]=+g[a>>2]+m*(k*l);b=a+4|0;g[b>>2]=m*(k*h)+ +g[b>>2];b=a+8|0;g[b>>2]=m*(k*j)+ +g[b>>2];i=e;return}function Yn(a){a=a|0;var b=0.0,d=0.0;b=+g[a+32>>2];d=+Zb[c[(c[a>>2]|0)+48>>2]&7](a);+Zb[c[(c[a>>2]|0)+48>>2]&7](a);+Zb[c[(c[a>>2]|0)+48>>2]&7](a);return +(b+d);}function Zn(a){a=a|0;return}function _n(a){a=a|0;if(!a)return;c[3710]=(c[3710]|0)+1;xs(c[a+-4>>2]|0);return}function $n(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0.0,h=0.0,i=0.0,j=0,k=0.0,l=0,m=0.0;f=+Zb[c[(c[a>>2]|0)+48>>2]&7](a);h=+Zb[c[(c[a>>2]|0)+48>>2]&7](a);i=+Zb[c[(c[a>>2]|0)+48>>2]&7](a);a=b+48|0;j=b+52|0;k=+g[j>>2]-h;l=b+56|0;m=+g[l>>2]-i;g[d>>2]=+g[a>>2]-f;g[d+4>>2]=k;g[d+8>>2]=m;g[d+12>>2]=0.0;m=h+ +g[j>>2];h=i+ +g[l>>2];g[e>>2]=f+ +g[a>>2];g[e+4>>2]=m;g[e+8>>2]=h;g[e+12>>2]=0.0;return}function ao(a,b,c){a=a|0;b=+b;c=c|0;return}function bo(a,b){a=a|0;b=b|0;var d=0;d=a+20|0;c[d>>2]=c[b>>2];c[d+4>>2]=c[b+4>>2];c[d+8>>2]=c[b+8>>2];c[d+12>>2]=c[b+12>>2];return}function co(a){a=a|0;return a+20|0}function eo(a){a=a|0;return 10488}function fo(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return}function go(a){a=a|0;bq(a);return}function ho(a){a=a|0;bq(a);if(!a)return;c[3710]=(c[3710]|0)+1;xs(c[a+-4>>2]|0);return}function io(d,e,f,h,j){d=d|0;e=e|0;f=f|0;h=h|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0.0,u=0.0,v=0.0,w=0,x=0.0,y=0.0,z=0.0,A=0,B=0,C=0.0,D=0.0,E=0.0,F=0,G=0,H=0,I=0,J=0.0,K=0.0,L=0.0,M=0.0,N=0.0,O=0.0,P=0.0,Q=0.0,R=0.0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0;k=i;i=i+176|0;l=k+152|0;m=k+136|0;n=k+128|0;o=k+112|0;p=k+96|0;q=k+32|0;r=k;s=d+60|0;a[s>>0]=f&1;if(f){t=+g[h>>2]+-1.0;u=+g[h+4>>2]+-1.0;v=+g[h+8>>2]+-1.0;h=d+4|0;g[h>>2]=t;f=d+8|0;g[f>>2]=u;w=d+12|0;g[w>>2]=v;g[d+16>>2]=0.0;x=+g[j>>2]+1.0;y=+g[j+4>>2]+1.0;z=+g[j+8>>2]+1.0;j=d+20|0;g[j>>2]=x;A=d+24|0;g[A>>2]=y;B=d+28|0;g[B>>2]=z;g[d+32>>2]=0.0;C=65533.0/(x-t);D=65533.0/(y-u);E=65533.0/(z-v);F=d+36|0;g[F>>2]=C;G=d+40|0;g[G>>2]=D;H=d+44|0;g[H>>2]=E;I=d+48|0;g[I>>2]=0.0;a[s>>0]=1;J=t+ +(~~((t-t)*C)&65534)/C+-1.0;K=u+ +(~~((u-u)*D)&65534)/D+-1.0;L=v+ +(~~((v-v)*E)&65534)/E+-1.0;if(J<t){g[h>>2]=J;M=J}else M=t;if(K<u){g[f>>2]=K;N=K}else N=u;if(L<v){g[w>>2]=L;O=L}else O=v;v=M+ +((~~((x-M)*C+1.0)&65535|1)&65535)/C+1.0;C=N+ +((~~((y-N)*D+1.0)&65535|1)&65535)/D+1.0;D=O+ +((~~((z-O)*E+1.0)&65535|1)&65535)/E+1.0;if(x<v){g[j>>2]=v;P=v}else P=x;if(y<C){g[A>>2]=C;Q=C}else Q=y;if(z<D){g[B>>2]=D;R=D}else R=z;g[F>>2]=65533.0/(P-M);g[G>>2]=65533.0/(Q-N);g[H>>2]=65533.0/(R-O);g[I>>2]=0.0;c[l>>2]=10584;c[l+4>>2]=d+104;c[l+8>>2]=d;tc[c[(c[e>>2]|0)+8>>2]&63](e,l,d+4|0,d+20|0);l=c[d+108>>2]|0;I=l<<1;c[m>>2]=0;c[m+4>>2]=0;c[m+8>>2]=0;c[m+12>>2]=0;H=d+128|0;G=c[H>>2]|0;if((G|0)<(I|0)){F=d+132|0;if((c[F>>2]|0)<(I|0)){if(!l){S=0;T=G}else{c[3708]=(c[3708]|0)+1;B=ws(l<<5|19)|0;if(!B)U=0;else{A=B+4+15&-16;c[A+-4>>2]=B;U=A}S=U;T=c[H>>2]|0}U=d+136|0;if((T|0)>0){A=0;do{B=S+(A<<4)|0;j=(c[U>>2]|0)+(A<<4)|0;c[B>>2]=c[j>>2];c[B+4>>2]=c[j+4>>2];c[B+8>>2]=c[j+8>>2];c[B+12>>2]=c[j+12>>2];A=A+1|0}while((A|0)!=(T|0));}T=c[U>>2]|0;A=d+140|0;if(T){if(a[A>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[T+-4>>2]|0);}c[U>>2]=0}a[A>>0]=1;c[U>>2]=S;c[F>>2]=I;V=U}else V=d+136|0;U=G;do{G=(c[V>>2]|0)+(U<<4)|0;c[G>>2]=c[m>>2];c[G+4>>2]=c[m+4>>2];c[G+8>>2]=c[m+8>>2];c[G+12>>2]=c[m+12>>2];U=U+1|0}while((U|0)!=(I|0));}c[H>>2]=I;W=l}else{c[n>>2]=10608;c[n+4>>2]=d+64;c[o>>2]=-581039253;c[o+4>>2]=-581039253;c[o+8>>2]=-581039253;g[o+12>>2]=0.0;c[p>>2]=1566444395;c[p+4>>2]=1566444395;c[p+8>>2]=1566444395;g[p+12>>2]=0.0;tc[c[(c[e>>2]|0)+8>>2]&63](e,n,o,p);p=c[d+68>>2]|0;o=q;n=o+64|0;do{c[o>>2]=0;o=o+4|0}while((o|0)<(n|0));e=p<<1;l=d+88|0;I=c[l>>2]|0;if((I|0)<(e|0)){H=d+92|0;if((c[H>>2]|0)<(e|0)){if(!p){X=0;Y=I}else{c[3708]=(c[3708]|0)+1;U=ws(p<<7|19)|0;if(!U)Z=0;else{m=U+4+15&-16;c[m+-4>>2]=U;Z=m}X=Z;Y=c[l>>2]|0}Z=d+96|0;if((Y|0)>0){m=0;do{o=X+(m<<6)|0;_=(c[Z>>2]|0)+(m<<6)|0;n=o+64|0;do{c[o>>2]=c[_>>2];o=o+4|0;_=_+4|0}while((o|0)<(n|0));m=m+1|0}while((m|0)!=(Y|0));}Y=c[Z>>2]|0;m=d+100|0;if(Y){if(a[m>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[Y+-4>>2]|0);}c[Z>>2]=0}a[m>>0]=1;c[Z>>2]=X;c[H>>2]=e;$=Z}else $=d+96|0;Z=I;do{o=(c[$>>2]|0)+(Z<<6)|0;_=q;n=o+64|0;do{c[o>>2]=c[_>>2];o=o+4|0;_=_+4|0}while((o|0)<(n|0));Z=Z+1|0}while((Z|0)!=(e|0));}c[l>>2]=e;W=p}c[d+56>>2]=0;aq(d,0,W);W=d+152|0;if((a[s>>0]|0)!=0?(c[W>>2]|0)==0:0){s=d+156|0;if(!(c[s>>2]|0)){c[3708]=(c[3708]|0)+1;p=ws(51)|0;if(!p)aa=0;else{e=p+4+15&-16;c[e+-4>>2]=p;aa=e}e=c[W>>2]|0;p=d+160|0;if((e|0)>0){l=0;do{Z=aa+(l<<5)|0;_=(c[p>>2]|0)+(l<<5)|0;c[Z>>2]=c[_>>2];c[Z+4>>2]=c[_+4>>2];c[Z+8>>2]=c[_+8>>2];c[Z+12>>2]=c[_+12>>2];c[Z+16>>2]=c[_+16>>2];c[Z+20>>2]=c[_+20>>2];c[Z+24>>2]=c[_+24>>2];c[Z+28>>2]=c[_+28>>2];l=l+1|0}while((l|0)!=(e|0));}e=c[p>>2]|0;l=d+164|0;if(e){if(a[l>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[e+-4>>2]|0);}c[p>>2]=0}a[l>>0]=1;c[p>>2]=aa;c[s>>2]=1;ba=p;ca=(c[W>>2]|0)+1|0;da=aa}else{aa=d+160|0;ba=aa;ca=1;da=c[aa>>2]|0}c[W>>2]=ca;c[da>>2]=c[r>>2];c[da+4>>2]=c[r+4>>2];c[da+8>>2]=c[r+8>>2];c[da+12>>2]=c[r+12>>2];c[da+16>>2]=c[r+16>>2];c[da+20>>2]=c[r+20>>2];c[da+24>>2]=c[r+24>>2];c[da+28>>2]=c[r+28>>2];r=c[ba>>2]|0;ba=c[d+136>>2]|0;b[r>>1]=b[ba>>1]|0;b[r+2>>1]=b[ba+2>>1]|0;b[r+4>>1]=b[ba+4>>1]|0;b[r+6>>1]=b[ba+6>>1]|0;b[r+8>>1]=b[ba+8>>1]|0;b[r+10>>1]=b[ba+10>>1]|0;c[r+12>>2]=0;da=c[ba+12>>2]|0;c[r+16>>2]=(da|0)>-1?1:0-da|0}c[d+168>>2]=c[W>>2];W=d+108|0;da=d+116|0;r=c[da>>2]|0;ba=d+120|0;if(r){if(a[ba>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[r+-4>>2]|0);}c[da>>2]=0}a[ba>>0]=1;c[da>>2]=0;c[W>>2]=0;c[d+112>>2]=0;W=d+68|0;da=d+76|0;ba=c[da>>2]|0;r=d+80|0;if(!ba){a[r>>0]=1;c[da>>2]=0;c[W>>2]=0;ea=d+72|0;c[ea>>2]=0;i=k;return}if(a[r>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[ba+-4>>2]|0);}c[da>>2]=0;a[r>>0]=1;c[da>>2]=0;c[W>>2]=0;ea=d+72|0;c[ea>>2]=0;i=k;return}function jo(a){a=a|0;return 84}function ko(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;gq(a,b,c,d)|0;return 1}function lo(a){a=a|0;xs(a);return}function mo(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var h=0,j=0,l=0.0,m=0,n=0,o=0.0,p=0,q=0,r=0.0,s=0,t=0,u=0.0,v=0.0,w=0,x=0,y=0,z=0,A=0,B=0.0,C=0.0,D=0,E=0,F=0,G=0,H=0,I=0;h=i;i=i+32|0;j=h;l=+g[d>>2];m=(g[k>>2]=l,c[k>>2]|0);n=l<999999984306749440.0?m:1566444395;o=+g[d+4>>2];p=(g[k>>2]=o,c[k>>2]|0);q=o<999999984306749440.0?p:1566444395;r=+g[d+8>>2];s=(g[k>>2]=r,c[k>>2]|0);t=r<999999984306749440.0?s:1566444395;u=+g[d+12>>2];v=u<0.0?u:0.0;w=l>-999999984306749440.0?m:-581039253;m=o>-999999984306749440.0?p:-581039253;p=r>-999999984306749440.0?s:-581039253;r=u>0.0?u:0.0;u=+g[d+16>>2];s=u<(c[k>>2]=n,+g[k>>2]);x=(g[k>>2]=u,c[k>>2]|0);y=s?x:n;o=+g[d+20>>2];n=o<(c[k>>2]=q,+g[k>>2]);s=(g[k>>2]=o,c[k>>2]|0);z=n?s:q;l=+g[d+24>>2];q=l<(c[k>>2]=t,+g[k>>2]);n=(g[k>>2]=l,c[k>>2]|0);A=q?n:t;B=+g[d+28>>2];C=B<v?B:v;t=(c[k>>2]=w,+g[k>>2])<u?x:w;w=(c[k>>2]=m,+g[k>>2])<o?s:m;m=(c[k>>2]=p,+g[k>>2])<l?n:p;l=r<B?B:r;r=+g[d+32>>2];p=r<(c[k>>2]=y,+g[k>>2]);n=(g[k>>2]=r,c[k>>2]|0);s=p?n:y;B=+g[d+36>>2];y=B<(c[k>>2]=z,+g[k>>2]);p=(g[k>>2]=B,c[k>>2]|0);x=y?p:z;o=+g[d+40>>2];z=o<(c[k>>2]=A,+g[k>>2]);y=(g[k>>2]=o,c[k>>2]|0);q=z?y:A;u=+g[d+44>>2];v=u<C?u:C;d=(c[k>>2]=t,+g[k>>2])<r?n:t;t=(c[k>>2]=w,+g[k>>2])<B?p:w;w=(c[k>>2]=m,+g[k>>2])<o?y:m;o=l<u?u:l;m=c[b+4>>2]|0;b=m+4|0;y=c[b>>2]|0;p=m+8|0;if((y|0)==(c[p>>2]|0)?(n=(y|0)!=0?y<<1:1,(y|0)<(n|0)):0){if(!n){D=0;E=y}else{c[3708]=(c[3708]|0)+1;A=ws(n<<6|19)|0;if(!A)F=0;else{z=A+4+15&-16;c[z+-4>>2]=A;F=z}D=F;E=c[b>>2]|0}F=m+12|0;if((E|0)>0){z=0;do{A=D+(z<<6)|0;G=(c[F>>2]|0)+(z<<6)|0;H=A+64|0;do{c[A>>2]=c[G>>2];A=A+4|0;G=G+4|0}while((A|0)<(H|0));z=z+1|0}while((z|0)!=(E|0));}E=c[F>>2]|0;z=m+16|0;if(E){if(a[z>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[E+-4>>2]|0);}c[F>>2]=0}a[z>>0]=1;c[F>>2]=D;c[p>>2]=n;I=c[b>>2]|0}else I=y;y=c[m+12>>2]|0;c[y+(I<<6)>>2]=s;c[y+(I<<6)+4>>2]=x;c[y+(I<<6)+8>>2]=q;g[y+(I<<6)+12>>2]=v;c[y+(I<<6)+16>>2]=d;c[y+(I<<6)+20>>2]=t;c[y+(I<<6)+24>>2]=w;g[y+(I<<6)+28>>2]=o;c[y+(I<<6)+32>>2]=-1;c[y+(I<<6)+36>>2]=e;c[y+(I<<6)+40>>2]=f;f=y+(I<<6)+44|0;c[f>>2]=c[j>>2];c[f+4>>2]=c[j+4>>2];c[f+8>>2]=c[j+8>>2];c[f+12>>2]=c[j+12>>2];c[f+16>>2]=c[j+16>>2];c[b>>2]=(c[b>>2]|0)+1;i=h;return}function no(a){a=a|0;xs(a);return}function oo(d,e,f,h){d=d|0;e=e|0;f=f|0;h=h|0;var i=0.0,j=0,l=0,m=0.0,n=0,o=0,p=0.0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0.0,E=0.0,F=0.0,G=0.0,H=0.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;i=+g[e>>2];j=(g[k>>2]=i,c[k>>2]|0);l=i<999999984306749440.0?j:1566444395;m=+g[e+4>>2];n=(g[k>>2]=m,c[k>>2]|0);o=m<999999984306749440.0?n:1566444395;p=+g[e+8>>2];q=(g[k>>2]=p,c[k>>2]|0);r=p<999999984306749440.0?q:1566444395;s=i>-999999984306749440.0?j:-581039253;j=m>-999999984306749440.0?n:-581039253;n=p>-999999984306749440.0?q:-581039253;p=+g[e+16>>2];q=p<(c[k>>2]=l,+g[k>>2]);t=(g[k>>2]=p,c[k>>2]|0);u=q?t:l;m=+g[e+20>>2];l=m<(c[k>>2]=o,+g[k>>2]);q=(g[k>>2]=m,c[k>>2]|0);v=l?q:o;i=+g[e+24>>2];o=i<(c[k>>2]=r,+g[k>>2]);l=(g[k>>2]=i,c[k>>2]|0);w=o?l:r;r=(c[k>>2]=s,+g[k>>2])<p?t:s;s=(c[k>>2]=j,+g[k>>2])<m?q:j;j=(c[k>>2]=n,+g[k>>2])<i?l:n;i=+g[e+32>>2];n=i<(c[k>>2]=u,+g[k>>2]);l=(g[k>>2]=i,c[k>>2]|0);q=n?l:u;m=+g[e+36>>2];u=m<(c[k>>2]=v,+g[k>>2]);n=(g[k>>2]=m,c[k>>2]|0);t=u?n:v;p=+g[e+40>>2];e=p<(c[k>>2]=w,+g[k>>2]);v=(g[k>>2]=p,c[k>>2]|0);u=e?v:w;w=(c[k>>2]=r,+g[k>>2])<i?l:r;r=(c[k>>2]=s,+g[k>>2])<m?n:s;s=(c[k>>2]=j,+g[k>>2])<p?v:j;p=(c[k>>2]=w,+g[k>>2]);m=(c[k>>2]=q,+g[k>>2]);if(p-m<2.0000000949949026e-03){j=(g[k>>2]=p+1.0000000474974513e-03,c[k>>2]|0);x=(g[k>>2]=m+-1.0000000474974513e-03,c[k>>2]|0);y=j}else{x=q;y=w}m=(c[k>>2]=r,+g[k>>2]);p=(c[k>>2]=t,+g[k>>2]);if(m-p<2.0000000949949026e-03){w=(g[k>>2]=m+1.0000000474974513e-03,c[k>>2]|0);z=(g[k>>2]=p+-1.0000000474974513e-03,c[k>>2]|0);A=w}else{z=t;A=r}p=(c[k>>2]=s,+g[k>>2]);m=(c[k>>2]=u,+g[k>>2]);if(p-m<2.0000000949949026e-03){r=(g[k>>2]=p+1.0000000474974513e-03,c[k>>2]|0);B=(g[k>>2]=m+-1.0000000474974513e-03,c[k>>2]|0);C=r}else{B=u;C=s}s=c[d+8>>2]|0;m=+g[s+4>>2];p=(c[k>>2]=x,+g[k>>2])-m;i=+g[s+8>>2];D=(c[k>>2]=z,+g[k>>2])-i;E=+g[s+12>>2];F=+g[s+36>>2];G=+g[s+40>>2];H=+g[s+44>>2];s=~~(p*F)&65534;z=~~(((c[k>>2]=B,+g[k>>2])-E)*H)&65534;B=~~(D*G)&65534;D=(c[k>>2]=y,+g[k>>2])-m;m=(c[k>>2]=A,+g[k>>2])-i;A=(~~(D*F+1.0)&65535|1)&65535;y=(~~(((c[k>>2]=C,+g[k>>2])-E)*H+1.0)&65535|1)&65535;C=(~~(m*G+1.0)&65535|1)&65535;x=f<<21|h;h=c[d+4>>2]|0;d=h+4|0;f=c[d>>2]|0;u=h+8|0;if((f|0)!=(c[u>>2]|0)){I=f;J=h+12|0;K=c[J>>2]|0;L=K+(I<<4)|0;b[L>>1]=s;M=K+(I<<4)+2|0;b[M>>1]=B;N=K+(I<<4)+4|0;b[N>>1]=z;O=K+(I<<4)+6|0;b[O>>1]=A;P=K+(I<<4)+8|0;b[P>>1]=C;Q=K+(I<<4)+10|0;b[Q>>1]=y;R=K+(I<<4)+12|0;c[R>>2]=x;S=c[d>>2]|0;T=S+1|0;c[d>>2]=T;return}r=(f|0)!=0?f<<1:1;if((f|0)>=(r|0)){I=f;J=h+12|0;K=c[J>>2]|0;L=K+(I<<4)|0;b[L>>1]=s;M=K+(I<<4)+2|0;b[M>>1]=B;N=K+(I<<4)+4|0;b[N>>1]=z;O=K+(I<<4)+6|0;b[O>>1]=A;P=K+(I<<4)+8|0;b[P>>1]=C;Q=K+(I<<4)+10|0;b[Q>>1]=y;R=K+(I<<4)+12|0;c[R>>2]=x;S=c[d>>2]|0;T=S+1|0;c[d>>2]=T;return}if(!r){U=0;V=f}else{c[3708]=(c[3708]|0)+1;f=ws((r<<4|3)+16|0)|0;if(!f)W=0;else{t=f+4+15&-16;c[t+-4>>2]=f;W=t}U=W;V=c[d>>2]|0}W=h+12|0;if((V|0)>0){t=0;do{f=U+(t<<4)|0;w=(c[W>>2]|0)+(t<<4)|0;c[f>>2]=c[w>>2];c[f+4>>2]=c[w+4>>2];c[f+8>>2]=c[w+8>>2];c[f+12>>2]=c[w+12>>2];t=t+1|0}while((t|0)!=(V|0));}V=c[W>>2]|0;t=h+16|0;if(V){if(a[t>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[V+-4>>2]|0);}c[W>>2]=0}a[t>>0]=1;c[W>>2]=U;c[u>>2]=r;I=c[d>>2]|0;J=h+12|0;K=c[J>>2]|0;L=K+(I<<4)|0;b[L>>1]=s;M=K+(I<<4)+2|0;b[M>>1]=B;N=K+(I<<4)+4|0;b[N>>1]=z;O=K+(I<<4)+6|0;b[O>>1]=A;P=K+(I<<4)+8|0;b[P>>1]=C;Q=K+(I<<4)+10|0;b[Q>>1]=y;R=K+(I<<4)+12|0;c[R>>2]=x;S=c[d>>2]|0;T=S+1|0;c[d>>2]=T;return}function po(a){a=a|0;var b=0,d=0;c[a>>2]=10864;b=a+56|0;d=c[b>>2]|0;if((d|0)!=0?(Kb[c[c[d>>2]>>2]&255](d),d=c[b>>2]|0,(d|0)!=0):0){c[3710]=(c[3710]|0)+1;xs(c[d+-4>>2]|0);}c[3710]=(c[3710]|0)+1;xs(c[a+-4>>2]|0);return}
function Xq(b,d,e,f,h){b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;var j=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,Q=0,T=0.0,U=0,V=0.0,W=0.0,X=0,Y=0.0,Z=0.0,_=0,$=0,aa=0.0,ba=0.0,ca=0.0,da=0.0,ea=0.0,fa=0.0,ga=0,ha=0.0,ia=0.0,ja=0.0,ka=0.0,la=0.0,ma=0.0,na=0.0,oa=0.0,pa=0.0,qa=0.0,ra=0.0,sa=0.0,ta=0.0,ua=0.0,va=0.0,wa=0,xa=0,ya=0.0,za=0.0,Aa=0,Ba=0.0,Ca=0.0,Da=0.0,Ea=0,Fa=0.0,Ga=0,Ha=0,Ia=0,Ja=0,Ka=0,La=0,Ma=0,Na=0,Oa=0,Pa=0,Qa=0,Ra=0,Sa=0,Ta=0,Ua=0,Va=0,Wa=0,Xa=0,Ya=0,Za=0,_a=0,$a=0,ab=0,bb=0,cb=0,db=0,eb=0,fb=0,gb=0.0,hb=0.0,ib=0.0,jb=0.0,kb=0.0,lb=0.0,mb=0,nb=0,ob=0.0,pb=0.0,qb=0.0,rb=0.0,sb=0.0,tb=0,ub=0.0,vb=0.0,wb=0.0,xb=0.0,yb=0,zb=0.0,Ab=0,Bb=0.0,Cb=0.0,Db=0,Eb=0.0,Fb=0,Gb=0.0,Hb=0.0,Ib=0.0,Jb=0,Kb=0.0,Lb=0.0,Mb=0.0,Nb=0.0,Ob=0.0,Pb=0,Qb=0.0,Rb=0.0,Sb=0.0,Tb=0.0,Ub=0,Vb=0.0,Xb=0,Yb=0,_b=0,$b=0,ac=0,bc=0,cc=0,dc=0,ec=0,fc=0,gc=0,hc=0,ic=0,jc=0,kc=0,lc=0,mc=0,nc=0,pc=0,qc=0,rc=0,sc=0,tc=0,uc=0,vc=0,wc=0,xc=0,yc=0,zc=0,Ac=0,Bc=0,Cc=0,Dc=0,Ec=0,Fc=0,Gc=0,Hc=0,Ic=0,Jc=0,Kc=0,Lc=0,Mc=0.0,Nc=0,Oc=0.0,Pc=0.0,Qc=0.0,Rc=0.0,Sc=0.0,Tc=0.0,Uc=0.0,Vc=0.0,Wc=0.0,Xc=0.0,Yc=0.0,Zc=0.0,_c=0,$c=0,ad=0,bd=0,cd=0,dd=0,ed=0,fd=0,gd=0,hd=0,id=0,jd=0,kd=0.0,ld=0.0,md=0,nd=0,od=0.0,pd=0.0,qd=0,rd=0.0,sd=0.0,td=0.0,ud=0.0,vd=0.0,wd=0.0,xd=0.0,yd=0.0,zd=0.0,Ad=0.0,Bd=0,Cd=0,Dd=0,Ed=0,Fd=0,Gd=0,Hd=0,Id=0.0,Jd=0,Kd=0.0,Ld=0.0,Md=0.0,Nd=0.0,Od=0.0,Pd=0.0,Qd=0,Rd=0,Sd=0,Td=0,Ud=0,Vd=0,Wd=0,Xd=0,Yd=0,Zd=0,_d=0,$d=0,ae=0.0,be=0,ce=0,de=0.0,ee=0,fe=0,ge=0.0,he=0.0,ie=0,je=0.0,ke=0,le=0.0,me=0.0,ne=0.0,oe=0.0,pe=0.0,qe=0.0,re=0,se=0,te=0,ue=0,ve=0,we=0,xe=0,ye=0.0,ze=0.0,Ae=0,Be=0.0,Ce=0.0,De=0.0,Ee=0.0,Fe=0,Ge=0,He=0,Ie=0,Je=0,Ke=0,Le=0,Me=0,Ne=0,Oe=0,Pe=0,Qe=0,Re=0,Se=0,Te=0,Ue=0,Ve=0.0,We=0.0,Xe=0.0;j=i;i=i+800|0;l=j+728|0;m=j+488|0;n=j+484|0;o=j+480|0;p=j+464|0;q=j+448|0;r=j+432|0;s=j+416|0;t=j+400|0;u=j+384|0;v=j+368|0;w=j+352|0;x=j+336|0;y=j+320|0;z=j+304|0;A=j+168|0;B=j+88|0;C=j+80|0;D=j+40|0;E=j+16|0;F=j;G=b+20|0;H=c[G>>2]|0;if(!H){I=c[b+4>>2]|0;J=Wb[c[(c[I>>2]|0)+12>>2]&31](I,c[d+8>>2]|0,c[e+8>>2]|0)|0;c[G>>2]=J;a[b+16>>0]=1;K=J}else K=H;H=h+4|0;c[H>>2]=K;J=c[d+4>>2]|0;I=c[e+4>>2]|0;L=J+4|0;M=c[L>>2]|0;N=I+4|0;Q=c[N>>2]|0;if((M|0)==10&(Q|0)==10){T=+g[K+752>>2];U=c[J+56>>2]|0;V=+g[J+32+(U<<2)>>2];W=+g[J+32+(((U+2|0)%3|0)<<2)>>2];X=c[I+56>>2]|0;Y=+g[I+32+(X<<2)>>2];Z=+g[I+32+(((X+2|0)%3|0)<<2)>>2];_=c[d+12>>2]|0;$=c[e+12>>2]|0;aa=+g[_+(U<<2)>>2];ba=+g[_+16+(U<<2)>>2];ca=+g[_+32+(U<<2)>>2];da=+g[$+(X<<2)>>2];ea=+g[$+16+(X<<2)>>2];fa=+g[$+32+(X<<2)>>2];X=$+48|0;U=$+52|0;ga=$+56|0;ha=+g[X>>2]-+g[_+48>>2];ia=+g[U>>2]-+g[_+52>>2];ja=+g[ga>>2]-+g[_+56>>2];ka=aa*da+ba*ea+ca*fa;la=aa*ha+ba*ia+ca*ja;ma=da*ha+ea*ia+fa*ja;na=1.0-ka*ka;if(!(na==0.0)){oa=(la-ka*ma)/na;na=-V;if(!(oa<na))if(oa>V)pa=V;else pa=oa;else pa=na}else pa=0.0;na=ka*pa-ma;ma=-Y;if(na<ma){oa=ka*ma+la;qa=-V;if(!(oa<qa))if(oa>V){ra=V;sa=ma}else{ra=oa;sa=ma}else{ra=qa;sa=ma}}else if(na>Y){ma=Y*ka+la;la=-V;if(!(ma<la))if(ma>V){ra=V;sa=Y}else{ra=ma;sa=Y}else{ra=la;sa=Y}}else{ra=pa;sa=na}na=da*sa;da=ea*sa;ea=fa*sa;sa=na+(ha-aa*ra);ha=da+(ia-ba*ra);ia=ea+(ja-ca*ra);ra=ia*ia+(sa*sa+ha*ha);ja=+P(+ra);fa=ja-W-Z;if(!(fa>T)){do if(ra<=1.4210854715202004e-14)if(+O(+ca)>.7071067690849304){W=1.0/+P(+(ba*ba+ca*ca));g[y>>2]=0.0;pa=-(ca*W);g[y+4>>2]=pa;Y=ba*W;g[y+8>>2]=Y;ta=0.0;ua=pa;va=Y;break}else{Y=1.0/+P(+(aa*aa+ba*ba));pa=-(ba*Y);g[y>>2]=pa;W=aa*Y;g[y+4>>2]=W;g[y+8>>2]=0.0;ta=pa;ua=W;va=0.0;break}else{W=-(1.0/ja);pa=sa*W;Y=ha*W;la=ia*W;g[y>>2]=pa;g[y+4>>2]=Y;g[y+8>>2]=la;g[y+12>>2]=0.0;ta=pa;ua=Y;va=la}while(0);ia=Z*ua+(da+ +g[U>>2]);da=Z*va+(ea+ +g[ga>>2]);g[z>>2]=Z*ta+(na+ +g[X>>2]);g[z+4>>2]=ia;g[z+8>>2]=da;g[z+12>>2]=0.0}if(fa<T){oc[c[(c[h>>2]|0)+16>>2]&7](h,y,z,fa);wa=c[H>>2]|0}else wa=K;if(!(c[wa+748>>2]|0)){i=j;return}K=c[wa+740>>2]|0;z=c[(c[h+8>>2]|0)+8>>2]|0;y=c[(c[h+12>>2]|0)+8>>2]|0;if((K|0)==(z|0)){yp(wa,K+4|0,y+4|0);i=j;return}else{yp(wa,y+4|0,z+4|0);i=j;return}}z=A+128|0;g[z>>2]=999999984306749440.0;y=c[b+8>>2]|0;wa=c[b+12>>2]|0;c[B>>2]=12120;c[B+4>>2]=0;K=B+8|0;c[K>>2]=1065353216;X=B+12|0;c[X>>2]=0;g[B+16>>2]=0.0;c[B+20>>2]=wa;c[B+24>>2]=y;y=B+28|0;c[y>>2]=J;wa=B+32|0;c[wa>>2]=I;c[B+36>>2]=M;c[B+40>>2]=Q;g[B+44>>2]=+Zb[c[(c[J>>2]|0)+48>>2]&7](J);g[B+48>>2]=+Zb[c[(c[I>>2]|0)+48>>2]&7](I);a[B+52>>0]=0;c[B+60>>2]=-1;c[B+72>>2]=1;c[B+76>>2]=1;c[y>>2]=J;c[wa>>2]=I;fa=+Zb[c[(c[J>>2]|0)+48>>2]&7](J);T=+Zb[c[(c[I>>2]|0)+48>>2]&7](I);da=fa+T+ +g[(c[G>>2]|0)+752>>2];g[z>>2]=da*da;z=d+12|0;d=c[z>>2]|0;c[A>>2]=c[d>>2];c[A+4>>2]=c[d+4>>2];c[A+8>>2]=c[d+8>>2];c[A+12>>2]=c[d+12>>2];wa=A+16|0;y=d+16|0;c[wa>>2]=c[y>>2];c[wa+4>>2]=c[y+4>>2];c[wa+8>>2]=c[y+8>>2];c[wa+12>>2]=c[y+12>>2];y=A+32|0;Q=d+32|0;c[y>>2]=c[Q>>2];c[y+4>>2]=c[Q+4>>2];c[y+8>>2]=c[Q+8>>2];c[y+12>>2]=c[Q+12>>2];Q=A+48|0;M=d+48|0;c[Q>>2]=c[M>>2];c[Q+4>>2]=c[M+4>>2];c[Q+8>>2]=c[M+8>>2];c[Q+12>>2]=c[M+12>>2];M=A+64|0;d=e+12|0;e=c[d>>2]|0;c[M>>2]=c[e>>2];c[M+4>>2]=c[e+4>>2];c[M+8>>2]=c[e+8>>2];c[M+12>>2]=c[e+12>>2];ga=A+80|0;U=e+16|0;c[ga>>2]=c[U>>2];c[ga+4>>2]=c[U+4>>2];c[ga+8>>2]=c[U+8>>2];c[ga+12>>2]=c[U+12>>2];U=A+96|0;_=e+32|0;c[U>>2]=c[_>>2];c[U+4>>2]=c[_+4>>2];c[U+8>>2]=c[_+8>>2];c[U+12>>2]=c[_+12>>2];_=A+112|0;$=e+48|0;c[_>>2]=c[$>>2];c[_+4>>2]=c[$+4>>2];c[_+8>>2]=c[$+8>>2];c[_+12>>2]=c[$+12>>2];$=c[L>>2]|0;if(($|0)<7?(L=c[N>>2]|0,(L|0)<7):0){c[C>>2]=13848;if(!$){xa=L;ya=0.0}else{da=+Zb[c[(c[J>>2]|0)+48>>2]&7](J);xa=c[N>>2]|0;ya=da}if(!xa)za=0.0;else za=+Zb[c[(c[I>>2]|0)+48>>2]&7](I);c[D>>2]=13880;c[D+4>>2]=h;g[D+24>>2]=ya;g[D+28>>2]=za;xa=D+36|0;a[xa>>0]=0;L=J+56|0;$=c[L>>2]|0;a:do if($){e=I+56|0;Aa=c[e>>2]|0;do if(Aa){za=+g[(c[G>>2]|0)+752>>2];if(!(a[f+24>>0]|0)){vp(B,A,D,c[f+20>>2]|0,0);ya=+g[D+32>>2];if(ya<0.0&(a[xa>>0]|0)!=0){Ba=ya;Ca=+g[D+8>>2];Da=+g[D+16>>2];Ea=c[D+20>>2]|0;Fa=+g[D+12>>2];Ga=108}}else{Ha=c[z>>2]|0;Ia=c[d>>2]|0;c[3706]=(c[3706]|0)+1;ya=+g[$+64>>2];da=+g[$+68>>2];Ja=Ha+4|0;T=+g[Ja>>2];fa=+g[$+72>>2];Ka=Ha+8|0;ia=+g[Ka>>2];La=Ha+16|0;na=+g[La>>2];Ma=Ha+20|0;ta=+g[Ma>>2];Na=Ha+24|0;Z=+g[Na>>2];Oa=Ha+32|0;ea=+g[Oa>>2];Pa=Ha+36|0;va=+g[Pa>>2];Qa=Ha+40|0;ua=+g[Qa>>2];ha=+g[Aa+64>>2];sa=+g[Aa+68>>2];Ra=Ia+4|0;ja=+g[Aa+72>>2];Sa=Ia+8|0;Ta=Ia+16|0;Ua=Ia+20|0;Va=Ia+24|0;Wa=Ia+32|0;Xa=Ia+36|0;Ya=Ia+40|0;aa=ya*+g[Ha>>2]+da*T+fa*ia+ +g[Ha+48>>2]-(ha*+g[Ia>>2]+sa*+g[Ra>>2]+ja*+g[Sa>>2]+ +g[Ia+48>>2]);ba=ya*na+da*ta+fa*Z+ +g[Ha+52>>2]-(ha*+g[Ta>>2]+sa*+g[Ua>>2]+ja*+g[Va>>2]+ +g[Ia+52>>2]);ca=ya*ea+da*va+fa*ua+ +g[Ha+56>>2]-(ha*+g[Wa>>2]+sa*+g[Xa>>2]+ja*+g[Ya>>2]+ +g[Ia+56>>2]);Za=c[$+28>>2]|0;do if((Za|0)>0){_a=$+36|0;$a=t+4|0;ab=t+8|0;bb=t+12|0;ja=0.0;sa=T;ha=ia;fa=na;da=ta;ya=Z;ra=ea;la=va;Y=ua;cb=c[3702]|0;pa=3402823466385288598117041.0e14;db=0;W=0.0;ma=0.0;eb=0;V=0.0;b:while(1){fb=c[_a>>2]|0;ka=+g[fb+(db*36|0)+20>>2];qa=+g[fb+(db*36|0)+24>>2];oa=+g[fb+(db*36|0)+28>>2];gb=ka*+g[Ha>>2]+qa*sa+oa*ha;hb=ka*fa+qa*da+oa*ya;ib=ka*ra+qa*la+oa*Y;g[t>>2]=gb;g[$a>>2]=hb;g[ab>>2]=ib;g[bb>>2]=0.0;if(aa*gb+ba*hb+ca*ib<0.0){oa=-gb;g[t>>2]=oa;qa=-hb;g[$a>>2]=qa;ka=-ib;g[ab>>2]=ka;jb=oa;kb=qa;lb=ka}else{jb=gb;kb=hb;lb=ib}mb=cb+1|0;do if(Ir(Ha,Ia,aa,ba,ca,jb,kb,lb,$,Aa,pa)|0){c[3704]=(c[3704]|0)+1;yr($,Ha,t,l,m,p,q);yr(Aa,Ia,t,n,o,r,s);ib=+g[m>>2];hb=+g[n>>2];do if(ib<hb){nb=0;ob=ja}else{gb=+g[o>>2];ka=+g[l>>2];if(gb<ka){nb=0;ob=ja;break}qa=ib-hb;oa=gb-ka;nb=1;ob=qa<oa?qa:oa}while(0);if(!nb){Ga=106;break b}if(!(ob<pa)){pb=ob;qb=pa;rb=W;sb=ma;tb=eb;ub=V;break}pb=ob;qb=ob;rb=jb;sb=lb;tb=0;ub=kb}else{pb=ja;qb=pa;rb=W;sb=ma;tb=eb;ub=V}while(0);fb=db+1|0;if((fb|0)>=(Za|0)){Ga=51;break}ja=pb;sa=+g[Ja>>2];ha=+g[Ka>>2];fa=+g[La>>2];da=+g[Ma>>2];ya=+g[Na>>2];ra=+g[Oa>>2];la=+g[Pa>>2];Y=+g[Qa>>2];cb=mb;pa=qb;db=fb;W=rb;ma=sb;eb=tb;V=ub}if((Ga|0)==51){c[3702]=mb;vb=qb;wb=rb;xb=sb;yb=tb;zb=ub;Ga=52;break}else if((Ga|0)==106){c[3702]=mb;Ab=0;Bb=W;Cb=ma;Db=eb;Eb=V;break}}else{vb=3402823466385288598117041.0e14;wb=0.0;xb=0.0;yb=0;zb=0.0;Ga=52}while(0);c:do if((Ga|0)==52){Za=c[Aa+28>>2]|0;do if((Za|0)>0){db=Aa+36|0;cb=u+4|0;ab=u+8|0;$a=u+12|0;ua=0.0;bb=c[3702]|0;va=vb;_a=0;ea=wb;Z=xb;fb=yb;ta=zb;d:while(1){Fb=c[db>>2]|0;na=+g[Fb+(_a*36|0)+20>>2];ia=+g[Fb+(_a*36|0)+24>>2];T=+g[Fb+(_a*36|0)+28>>2];pa=na*+g[Ia>>2]+ia*+g[Ra>>2]+T*+g[Sa>>2];Y=na*+g[Ta>>2]+ia*+g[Ua>>2]+T*+g[Va>>2];la=na*+g[Wa>>2]+ia*+g[Xa>>2]+T*+g[Ya>>2];g[u>>2]=pa;g[cb>>2]=Y;g[ab>>2]=la;g[$a>>2]=0.0;if(aa*pa+ba*Y+ca*la<0.0){T=-pa;g[u>>2]=T;ia=-Y;g[cb>>2]=ia;na=-la;g[ab>>2]=na;Gb=T;Hb=ia;Ib=na}else{Gb=pa;Hb=Y;Ib=la}bb=bb+1|0;do if(Ir(Ha,Ia,aa,ba,ca,Gb,Hb,Ib,$,Aa,va)|0){c[3704]=(c[3704]|0)+1;yr($,Ha,u,l,m,p,q);yr(Aa,Ia,u,n,o,r,s);la=+g[m>>2];Y=+g[n>>2];do if(la<Y){Jb=0;Kb=ua}else{pa=+g[o>>2];na=+g[l>>2];if(pa<na){Jb=0;Kb=ua;break}ia=la-Y;T=pa-na;Jb=1;Kb=ia<T?ia:T}while(0);if(!Jb){Ga=105;break d}if(!(Kb<va)){Lb=Kb;Mb=va;Nb=ea;Ob=Z;Pb=fb;Qb=ta;break}Lb=Kb;Mb=Kb;Nb=Gb;Ob=Ib;Pb=0;Qb=Hb}else{Lb=ua;Mb=va;Nb=ea;Ob=Z;Pb=fb;Qb=ta}while(0);_a=_a+1|0;if((_a|0)>=(Za|0)){Ga=54;break}else{ua=Lb;va=Mb;ea=Nb;Z=Ob;fb=Pb;ta=Qb}}if((Ga|0)==54){c[3702]=bb;Rb=Mb;Sb=Nb;Tb=Ob;Ub=Pb;Vb=Qb;break}else if((Ga|0)==105){c[3702]=bb;Ab=0;Bb=ea;Cb=Z;Db=fb;Eb=ta;break c}}else{Rb=vb;Sb=wb;Tb=xb;Ub=yb;Vb=zb}while(0);Za=$+48|0;eb=c[Za>>2]|0;if((eb|0)>0){_a=$+56|0;ab=Aa+48|0;cb=Aa+56|0;$a=v+4|0;db=v+8|0;Fb=v+12|0;Xb=q+4|0;Yb=q+8|0;_b=r+4|0;$b=r+8|0;ac=p+4|0;bc=p+8|0;cc=s+4|0;dc=s+8|0;ec=eb;V=0.0;eb=0;fc=0;gc=0;hc=0;ic=0;jc=0;kc=0;lc=0;mc=0;nc=0;pc=0;qc=0;ma=0.0;W=0.0;va=0.0;ua=0.0;Y=0.0;la=0.0;rc=c[ab>>2]|0;T=Rb;sc=0;tc=-1;uc=-1;ia=Sb;na=Tb;vc=Ub;pa=Vb;while(1){wc=c[_a>>2]|0;ra=+g[wc+(sc<<4)>>2];ya=+g[wc+(sc<<4)+4>>2];da=+g[wc+(sc<<4)+8>>2];fa=ra*+g[Ha>>2]+ya*+g[Ja>>2]+da*+g[Ka>>2];ha=ra*+g[La>>2]+ya*+g[Ma>>2]+da*+g[Na>>2];sa=ra*+g[Oa>>2]+ya*+g[Pa>>2]+da*+g[Qa>>2];if((rc|0)>0){da=V;wc=eb;xc=fc;yc=gc;zc=hc;Ac=ic;Bc=jc;Cc=kc;Dc=lc;Ec=mc;Fc=nc;Gc=pc;Hc=qc;ya=ma;ra=W;ja=va;hb=ua;ib=Y;oa=la;qa=T;Ic=0;Jc=tc;Kc=uc;ka=ia;gb=na;Lc=vc;Mc=pa;while(1){Nc=c[cb>>2]|0;Oc=+g[Nc+(Ic<<4)>>2];Pc=+g[Nc+(Ic<<4)+4>>2];Qc=+g[Nc+(Ic<<4)+8>>2];Rc=Oc*+g[Ia>>2]+Pc*+g[Ra>>2]+Qc*+g[Sa>>2];Sc=Oc*+g[Ta>>2]+Pc*+g[Ua>>2]+Qc*+g[Va>>2];Tc=Oc*+g[Wa>>2]+Pc*+g[Xa>>2]+Qc*+g[Ya>>2];Qc=ha*Tc-sa*Sc;Pc=sa*Rc-fa*Tc;Oc=fa*Sc-ha*Rc;g[v>>2]=Qc;g[$a>>2]=Pc;g[db>>2]=Oc;g[Fb>>2]=0.0;do if(!(+O(+Qc)>1.0e-06)){if(+O(+Pc)>1.0e-06){Ga=71;break}if(!(+O(+Oc)>1.0e-06)){Uc=oa;Vc=ib;Wc=hb;Xc=ja;Yc=ra;Zc=ya;_c=Hc;$c=Gc;ad=Fc;bd=Ec;cd=Dc;dd=Cc;ed=Bc;fd=Ac;gd=zc;hd=yc;id=xc;jd=wc;kd=da;ld=qa;md=Jc;nd=Kc;od=ka;pd=gb;qd=Lc;rd=Mc}else Ga=71}else Ga=71;while(0);do if((Ga|0)==71){Ga=0;sd=1.0/+P(+(Qc*Qc+Pc*Pc+Oc*Oc));td=Qc*sd;g[v>>2]=td;ud=Pc*sd;g[$a>>2]=ud;vd=Oc*sd;g[db>>2]=vd;if(aa*td+ba*ud+ca*vd<0.0){sd=-td;g[v>>2]=sd;wd=-ud;g[$a>>2]=wd;xd=-vd;g[db>>2]=xd;yd=sd;zd=wd;Ad=xd}else{yd=td;zd=ud;Ad=vd}c[3702]=(c[3702]|0)+1;if(!(Ir(Ha,Ia,aa,ba,ca,yd,zd,Ad,$,Aa,qa)|0)){Uc=oa;Vc=ib;Wc=hb;Xc=ja;Yc=ra;Zc=ya;_c=Hc;$c=Gc;ad=Fc;bd=Ec;cd=Dc;dd=Cc;ed=Bc;fd=Ac;gd=zc;hd=yc;id=xc;jd=wc;kd=da;ld=qa;md=Jc;nd=Kc;od=ka;pd=gb;qd=Lc;rd=Mc;break}c[3704]=(c[3704]|0)+1;yr($,Ha,v,l,m,p,q);yr(Aa,Ia,v,n,o,r,s);vd=+g[m>>2];ud=+g[n>>2];do if(!(vd<ud)){td=+g[o>>2];xd=+g[l>>2];if(td<xd){Bd=0;Cd=Hc;Dd=Gc;Ed=Fc;Fd=Bc;Gd=Ac;Hd=zc;Id=da;break}wd=vd-ud;sd=td-xd;if(wd<sd){Bd=1;Cd=c[Yb>>2]|0;Dd=c[Xb>>2]|0;Ed=c[q>>2]|0;Fd=c[$b>>2]|0;Gd=c[_b>>2]|0;Hd=c[r>>2]|0;Id=wd;break}else{Bd=1;Cd=c[bc>>2]|0;Dd=c[ac>>2]|0;Ed=c[p>>2]|0;Fd=c[dc>>2]|0;Gd=c[cc>>2]|0;Hd=c[s>>2]|0;Id=sd;break}}else{Bd=0;Cd=Hc;Dd=Gc;Ed=Fc;Fd=Bc;Gd=Ac;Hd=zc;Id=da}while(0);if(!Bd){Ab=0;Bb=ka;Cb=gb;Db=Lc;Eb=Mc;break c}if(!(Id<qa)){Uc=oa;Vc=ib;Wc=hb;Xc=ja;Yc=ra;Zc=ya;_c=Cd;$c=Dd;ad=Ed;bd=Ec;cd=Dc;dd=Cc;ed=Fd;fd=Gd;gd=Hd;hd=yc;id=xc;jd=wc;kd=Id;ld=qa;md=Jc;nd=Kc;od=ka;pd=gb;qd=Lc;rd=Mc;break}Uc=sa;Vc=ha;Wc=fa;Xc=Tc;Yc=Sc;Zc=Rc;_c=Cd;$c=Dd;ad=Ed;bd=Cd;cd=Dd;dd=Ed;ed=Fd;fd=Gd;gd=Hd;hd=Fd;id=Gd;jd=Hd;kd=Id;ld=Id;md=sc;nd=Ic;od=yd;pd=Ad;qd=0;rd=zd}while(0);Ic=Ic+1|0;Jd=c[ab>>2]|0;if((Ic|0)>=(Jd|0))break;else{da=kd;wc=jd;xc=id;yc=hd;zc=gd;Ac=fd;Bc=ed;Cc=dd;Dc=cd;Ec=bd;Fc=ad;Gc=$c;Hc=_c;ya=Zc;ra=Yc;ja=Xc;hb=Wc;ib=Vc;oa=Uc;qa=ld;Jc=md;Kc=nd;ka=od;gb=pd;Lc=qd;Mc=rd}}Kd=Uc;Ld=Vc;Md=Wc;Nd=Xc;Od=Yc;Pd=Zc;Qd=_c;Rd=$c;Sd=ad;Td=bd;Ud=cd;Vd=dd;Wd=ed;Xd=fd;Yd=gd;Zd=hd;_d=id;$d=jd;ae=kd;be=Jd;ce=c[Za>>2]|0;de=ld;ee=md;fe=nd;ge=od;he=pd;ie=qd;je=rd}else{Kd=la;Ld=Y;Md=ua;Nd=va;Od=W;Pd=ma;Qd=qc;Rd=pc;Sd=nc;Td=mc;Ud=lc;Vd=kc;Wd=jc;Xd=ic;Yd=hc;Zd=gc;_d=fc;$d=eb;ae=V;be=rc;ce=ec;de=T;ee=tc;fe=uc;ge=ia;he=na;ie=vc;je=pa}sc=sc+1|0;if((sc|0)>=(ce|0)){ke=$d;le=Kd;me=Ld;ne=Md;oe=Nd;pe=Od;qe=Pd;re=Td;se=Ud;te=Vd;ue=Zd;ve=_d;we=ee;xe=fe;ye=ge;ze=he;Ae=ie;Be=je;break}else{ec=ce;V=ae;eb=$d;fc=_d;gc=Zd;hc=Yd;ic=Xd;jc=Wd;kc=Vd;lc=Ud;mc=Td;nc=Sd;pc=Rd;qc=Qd;ma=Pd;W=Od;va=Nd;ua=Md;Y=Ld;la=Kd;rc=be;T=de;tc=ee;uc=fe;ia=ge;na=he;vc=ie;pa=je}}}else{ke=0;le=0.0;me=0.0;ne=0.0;oe=0.0;pe=0.0;qe=0.0;re=0;se=0;te=0;ue=0;ve=0;we=-1;xe=-1;ye=Sb;ze=Tb;Ae=Ub;Be=Vb}do if((xe|we|0)>-1){pa=(c[k>>2]=ke,+g[k>>2]);na=pa-(c[k>>2]=te,+g[k>>2]);ia=(c[k>>2]=ve,+g[k>>2]);T=ia-(c[k>>2]=se,+g[k>>2]);la=(c[k>>2]=ue,+g[k>>2]);Y=la-(c[k>>2]=re,+g[k>>2]);ua=le*oe+(me*pe+ne*qe);va=le*Y+(me*T+ne*na);W=oe*Y+(pe*T+qe*na);ma=1.0-ua*ua;do if(ma==0.0)Ce=0.0;else{V=(va-ua*W)/ma;if(V<-1000000015047466219876688.0e6){Ce=-1000000015047466219876688.0e6;break}if(!(V>1000000015047466219876688.0e6)){Ce=V;break}Ce=1000000015047466219876688.0e6}while(0);ma=ua*Ce-W;do if(ma<-1000000015047466219876688.0e6){V=va-ua*1000000015047466219876688.0e6;if(V<-1000000015047466219876688.0e6){De=-1000000015047466219876688.0e6;Ee=-1000000015047466219876688.0e6;break}if(!(V>1000000015047466219876688.0e6)){De=V;Ee=-1000000015047466219876688.0e6;break}De=1000000015047466219876688.0e6;Ee=-1000000015047466219876688.0e6}else{if(!(ma>1000000015047466219876688.0e6)){De=Ce;Ee=ma;break}V=ua*1000000015047466219876688.0e6+va;if(V<-1000000015047466219876688.0e6){De=-1000000015047466219876688.0e6;Ee=1000000015047466219876688.0e6;break}if(!(V>1000000015047466219876688.0e6)){De=V;Ee=1000000015047466219876688.0e6;break}De=1000000015047466219876688.0e6;Ee=1000000015047466219876688.0e6}while(0);va=qe*Ee;ua=pe*Ee;ma=oe*Ee;W=va+(na-ne*De);V=ua+(T-me*De);Mc=ma+(Y-le*De);g[w>>2]=W;vc=w+4|0;g[vc>>2]=V;uc=w+8|0;g[uc>>2]=Mc;g[w+12>>2]=0.0;gb=W*W+V*V+Mc*Mc;if(!(gb>1.1920928955078125e-07))break;ka=+P(+gb);gb=1.0/ka;qa=W*gb;g[w>>2]=qa;W=gb*V;g[vc>>2]=W;V=gb*Mc;g[uc>>2]=V;if(qa*aa+W*ba+V*ca<0.0){g[w>>2]=-qa;g[vc>>2]=-W;g[uc>>2]=-V}g[x>>2]=pa+va;g[x+4>>2]=ia+ua;g[x+8>>2]=la+ma;g[x+12>>2]=0.0;oc[c[(c[h>>2]|0)+16>>2]&7](h,w,x,-ka);}while(0);if(aa*ye+ba*Be+ca*ze<0.0){Ab=1;Bb=-ye;Cb=-ze;Db=0;Eb=-Be}else{Ab=1;Bb=ye;Cb=ze;Db=Ae;Eb=Be}}while(0);if(Ab){Ba=-1000000015047466219876688.0e6;Ca=Bb;Da=Cb;Ea=Db;Fa=Eb;Ga=108}}if((Ga|0)==108){Ia=c[L>>2]|0;Ha=c[e>>2]|0;Ya=c[z>>2]|0;Xa=c[d>>2]|0;ca=Ba-za;ba=1.0/+P(+(Ca*Ca+Fa*Fa+Da*Da));aa=Ca*ba;ka=Fa*ba;ma=Da*ba;g[l>>2]=aa;g[l+4>>2]=ka;g[l+8>>2]=ma;c[l+12>>2]=Ea;Wa=c[Ha+28>>2]|0;Va=c[Ha+36>>2]|0;if((Wa|0)>0){ba=+g[Xa>>2];ua=+g[Xa+4>>2];va=+g[Xa+8>>2];V=+g[Xa+16>>2];W=+g[Xa+20>>2];qa=+g[Xa+24>>2];Mc=+g[Xa+32>>2];gb=+g[Xa+36>>2];oa=+g[Xa+40>>2];Ua=-1;ib=-3402823466385288598117041.0e14;Ta=0;while(1){hb=+g[Va+(Ta*36|0)+20>>2];ja=+g[Va+(Ta*36|0)+24>>2];ra=+g[Va+(Ta*36|0)+28>>2];ya=(hb*ba+ja*ua+ra*va)*aa+(hb*V+ja*W+ra*qa)*ka+(hb*Mc+ja*gb+ra*oa)*ma;Sa=ya>ib;Ra=Sa?Ta:Ua;Ta=Ta+1|0;if((Ta|0)==(Wa|0)){Fe=Ra;break}else{Ua=Ra;ib=Sa?ya:ib}}}else Fe=-1;Ua=m+16|0;a[Ua>>0]=1;Wa=m+12|0;c[Wa>>2]=0;Ta=m+4|0;c[Ta>>2]=0;Sa=m+8|0;c[Sa>>2]=0;Ra=c[Va+(Fe*36|0)+4>>2]|0;e:do if((Ra|0)>0){Qa=Va+(Fe*36|0)+12|0;Pa=Ha+16|0;Oa=Xa+4|0;Na=Xa+8|0;Ma=Xa+16|0;La=Xa+20|0;Ka=Xa+24|0;Ja=Xa+32|0;uc=Xa+36|0;vc=Xa+40|0;tc=Xa+48|0;rc=Xa+52|0;qc=Xa+56|0;pc=0;nc=0;mc=0;while(1){lc=c[(c[Qa>>2]|0)+(mc<<2)>>2]|0;kc=c[Pa>>2]|0;ib=+g[kc+(lc<<4)>>2];ma=+g[kc+(lc<<4)+4>>2];oa=+g[kc+(lc<<4)+8>>2];gb=ib*+g[Xa>>2]+ma*+g[Oa>>2]+oa*+g[Na>>2]+ +g[tc>>2];Mc=ib*+g[Ma>>2]+ma*+g[La>>2]+oa*+g[Ka>>2]+ +g[rc>>2];ka=ib*+g[Ja>>2]+ma*+g[uc>>2]+oa*+g[vc>>2]+ +g[qc>>2];if((pc|0)==(nc|0)){lc=(nc|0)!=0?nc<<1:1;if((nc|0)<(lc|0)){if(!lc){Ge=0;He=nc}else{c[3708]=(c[3708]|0)+1;kc=ws((lc<<4|3)+16|0)|0;if(!kc)Ie=0;else{jc=kc+4+15&-16;c[jc+-4>>2]=kc;Ie=jc}Ge=Ie;He=c[Ta>>2]|0}jc=c[Wa>>2]|0;if((He|0)<=0)if(!jc)Je=He;else Ga=122;else{kc=0;do{ic=Ge+(kc<<4)|0;hc=jc+(kc<<4)|0;c[ic>>2]=c[hc>>2];c[ic+4>>2]=c[hc+4>>2];c[ic+8>>2]=c[hc+8>>2];c[ic+12>>2]=c[hc+12>>2];kc=kc+1|0}while((kc|0)!=(He|0));Ga=122}if((Ga|0)==122){Ga=0;if(!(a[Ua>>0]|0))Ke=He;else{c[3710]=(c[3710]|0)+1;xs(c[jc+-4>>2]|0);Ke=c[Ta>>2]|0}c[Wa>>2]=0;Je=Ke}a[Ua>>0]=1;c[Wa>>2]=Ge;c[Sa>>2]=lc;Le=Je}else Le=nc}else Le=pc;kc=c[Wa>>2]|0;g[kc+(Le<<4)>>2]=gb;g[kc+(Le<<4)+4>>2]=Mc;g[kc+(Le<<4)+8>>2]=ka;g[kc+(Le<<4)+12>>2]=0.0;kc=(c[Ta>>2]|0)+1|0;c[Ta>>2]=kc;hc=mc+1|0;if((hc|0)>=(Ra|0))break e;pc=kc;nc=c[Sa>>2]|0;mc=hc}}while(0);if((Fe|0)>-1)Jr(l,Ia,Ya,m,ca,za,h);Sa=c[Wa>>2]|0;if(Sa){if(a[Ua>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[Sa+-4>>2]|0);}c[Wa>>2]=0}}if((a[b+16>>0]|0)!=0?(Sa=c[H>>2]|0,(c[Sa+748>>2]|0)!=0):0){Ra=c[Sa+740>>2]|0;Ta=c[(c[h+8>>2]|0)+8>>2]|0;Xa=c[(c[h+12>>2]|0)+8>>2]|0;if((Ra|0)==(Ta|0)){yp(Sa,Ra+4|0,Xa+4|0);break}else{yp(Sa,Xa+4|0,Ta+4|0);break}}}else{if((c[N>>2]|0)!=1)break a;Ta=E+16|0;a[Ta>>0]=1;Xa=E+12|0;c[Xa>>2]=0;Sa=E+4|0;c[Sa>>2]=0;Ra=E+8|0;c[Ra>>2]=0;Ha=c[d>>2]|0;Va=I+60|0;la=+g[Va>>2];ia=+g[Va+4>>2];pa=+g[Va+8>>2];Y=la*+g[Ha>>2]+ia*+g[Ha+4>>2]+pa*+g[Ha+8>>2]+ +g[Ha+48>>2];T=la*+g[Ha+16>>2]+ia*+g[Ha+20>>2]+pa*+g[Ha+24>>2]+ +g[Ha+52>>2];na=la*+g[Ha+32>>2]+ia*+g[Ha+36>>2]+pa*+g[Ha+40>>2]+ +g[Ha+56>>2];c[3708]=(c[3708]|0)+1;Ha=ws(35)|0;if(!Ha)Me=0;else{mc=Ha+4+15&-16;c[mc+-4>>2]=Ha;Me=mc}mc=c[Sa>>2]|0;if((mc|0)>0){Ha=0;do{nc=Me+(Ha<<4)|0;pc=(c[Xa>>2]|0)+(Ha<<4)|0;c[nc>>2]=c[pc>>2];c[nc+4>>2]=c[pc+4>>2];c[nc+8>>2]=c[pc+8>>2];c[nc+12>>2]=c[pc+12>>2];Ha=Ha+1|0}while((Ha|0)!=(mc|0));}mc=c[Xa>>2]|0;if(mc){if(a[Ta>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[mc+-4>>2]|0);}c[Xa>>2]=0}a[Ta>>0]=1;c[Xa>>2]=Me;c[Ra>>2]=1;mc=c[Sa>>2]|0;g[Me+(mc<<4)>>2]=Y;g[Me+(mc<<4)+4>>2]=T;g[Me+(mc<<4)+8>>2]=na;g[Me+(mc<<4)+12>>2]=0.0;mc=(c[Sa>>2]|0)+1|0;c[Sa>>2]=mc;Ha=c[d>>2]|0;za=+g[Va+16>>2];ca=+g[Va+20>>2];pa=+g[Va+24>>2];ia=za*+g[Ha>>2]+ca*+g[Ha+4>>2]+pa*+g[Ha+8>>2]+ +g[Ha+48>>2];la=za*+g[Ha+16>>2]+ca*+g[Ha+20>>2]+pa*+g[Ha+24>>2]+ +g[Ha+52>>2];oa=za*+g[Ha+32>>2]+ca*+g[Ha+36>>2]+pa*+g[Ha+40>>2]+ +g[Ha+56>>2];if((mc|0)==(c[Ra>>2]|0)?(Ha=(mc|0)!=0?mc<<1:1,(mc|0)<(Ha|0)):0){if(!Ha){Ne=0;Oe=mc}else{c[3708]=(c[3708]|0)+1;Wa=ws((Ha<<4|3)+16|0)|0;if(!Wa)Pe=0;else{Ua=Wa+4+15&-16;c[Ua+-4>>2]=Wa;Pe=Ua}Ne=Pe;Oe=c[Sa>>2]|0}if((Oe|0)>0){Ua=0;do{Wa=Ne+(Ua<<4)|0;Ya=(c[Xa>>2]|0)+(Ua<<4)|0;c[Wa>>2]=c[Ya>>2];c[Wa+4>>2]=c[Ya+4>>2];c[Wa+8>>2]=c[Ya+8>>2];c[Wa+12>>2]=c[Ya+12>>2];Ua=Ua+1|0}while((Ua|0)!=(Oe|0));}Ua=c[Xa>>2]|0;if(Ua){if(a[Ta>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[Ua+-4>>2]|0);}c[Xa>>2]=0}a[Ta>>0]=1;c[Xa>>2]=Ne;c[Ra>>2]=Ha;Qe=c[Sa>>2]|0}else Qe=mc;Ua=c[Xa>>2]|0;g[Ua+(Qe<<4)>>2]=ia;g[Ua+(Qe<<4)+4>>2]=la;g[Ua+(Qe<<4)+8>>2]=oa;g[Ua+(Qe<<4)+12>>2]=0.0;Ua=(c[Sa>>2]|0)+1|0;c[Sa>>2]=Ua;Ya=c[d>>2]|0;na=+g[Va+32>>2];T=+g[Va+36>>2];Y=+g[Va+40>>2];pa=na*+g[Ya>>2]+T*+g[Ya+4>>2]+Y*+g[Ya+8>>2]+ +g[Ya+48>>2];ca=na*+g[Ya+16>>2]+T*+g[Ya+20>>2]+Y*+g[Ya+24>>2]+ +g[Ya+52>>2];za=na*+g[Ya+32>>2]+T*+g[Ya+36>>2]+Y*+g[Ya+40>>2]+ +g[Ya+56>>2];if((Ua|0)==(c[Ra>>2]|0)?(Ya=(Ua|0)!=0?Ua<<1:1,(Ua|0)<(Ya|0)):0){if(!Ya){Re=0;Se=Ua}else{c[3708]=(c[3708]|0)+1;Wa=ws((Ya<<4|3)+16|0)|0;if(!Wa)Te=0;else{Ia=Wa+4+15&-16;c[Ia+-4>>2]=Wa;Te=Ia}Re=Te;Se=c[Sa>>2]|0}if((Se|0)>0){Ia=0;do{Wa=Re+(Ia<<4)|0;pc=(c[Xa>>2]|0)+(Ia<<4)|0;c[Wa>>2]=c[pc>>2];c[Wa+4>>2]=c[pc+4>>2];c[Wa+8>>2]=c[pc+8>>2];c[Wa+12>>2]=c[pc+12>>2];Ia=Ia+1|0}while((Ia|0)!=(Se|0));}Ia=c[Xa>>2]|0;if(Ia){if(a[Ta>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[Ia+-4>>2]|0);}c[Xa>>2]=0}a[Ta>>0]=1;c[Xa>>2]=Re;c[Ra>>2]=Ya;Ue=c[Sa>>2]|0}else Ue=Ua;Ia=c[Xa>>2]|0;g[Ia+(Ue<<4)>>2]=pa;g[Ia+(Ue<<4)+4>>2]=ca;g[Ia+(Ue<<4)+8>>2]=za;g[Ia+(Ue<<4)+12>>2]=0.0;c[Sa>>2]=(c[Sa>>2]|0)+1;oa=+g[(c[G>>2]|0)+752>>2];vp(B,A,C,c[f+20>>2]|0,0);la=+g[B+4>>2];ia=+g[K>>2];Y=+g[X>>2];T=la*la+ia*ia+Y*Y;if(T>1.1920928955078125e-07){na=1.0/T;g[F>>2]=la*na;g[F+4>>2]=ia*na;g[F+8>>2]=Y*na;g[F+12>>2]=0.0;na=+g[B+56>>2];Y=+Zb[c[(c[J>>2]|0)+48>>2]&7](J);ia=na-Y-+Zb[c[(c[I>>2]|0)+48>>2]&7](I);Jr(F,c[L>>2]|0,c[z>>2]|0,E,ia-oa,oa,h);}do if(a[b+16>>0]|0){Ia=c[H>>2]|0;if(!(c[Ia+748>>2]|0))break;Va=c[Ia+740>>2]|0;mc=c[(c[h+8>>2]|0)+8>>2]|0;Ha=c[(c[h+12>>2]|0)+8>>2]|0;if((Va|0)==(mc|0)){yp(Ia,Va+4|0,Ha+4|0);break}else{yp(Ia,Ha+4|0,mc+4|0);break}}while(0);Ua=c[Xa>>2]|0;if(Ua){if(a[Ta>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[Ua+-4>>2]|0);}c[Xa>>2]=0}a[Ta>>0]=1;c[Xa>>2]=0;c[Sa>>2]=0;c[Ra>>2]=0}while(0);i=j;return}while(0);}E=f+20|0;vp(B,A,h,c[E>>2]|0,0);f=b+28|0;if(((c[f>>2]|0)!=0?(c[(c[H>>2]|0)+748>>2]|0)<(c[b+32>>2]|0):0)?(Da=+g[B+4>>2],Fa=+g[K>>2],Ca=+g[X>>2],Ba=Da*Da+Fa*Fa+Ca*Ca,Ba>1.1920928955078125e-07):0){Eb=1.0/Ba;Ba=Da*Eb;Da=Fa*Eb;Fa=Ca*Eb;if(+O(+Fa)>.7071067690849304){Eb=1.0/+P(+(Fa*Fa+Da*Da));Ve=0.0;We=-(Fa*Eb);Xe=Da*Eb}else{Eb=1.0/+P(+(Ba*Ba+Da*Da));Ve=-(Da*Eb);We=Ba*Eb;Xe=0.0}Eb=+Zb[c[(c[J>>2]|0)+16>>2]&7](J);Ca=+Zb[c[(c[I>>2]|0)+16>>2]&7](I);I=Eb<Ca;Cb=.019999999552965164/(I?Eb:Ca);if(I){c[l>>2]=c[A>>2];c[l+4>>2]=c[A+4>>2];c[l+8>>2]=c[A+8>>2];c[l+12>>2]=c[A+12>>2];J=l+16|0;c[J>>2]=c[wa>>2];c[J+4>>2]=c[wa+4>>2];c[J+8>>2]=c[wa+8>>2];c[J+12>>2]=c[wa+12>>2];J=l+32|0;c[J>>2]=c[y>>2];c[J+4>>2]=c[y+4>>2];c[J+8>>2]=c[y+8>>2];c[J+12>>2]=c[y+12>>2];J=l+48|0;c[J>>2]=c[Q>>2];c[J+4>>2]=c[Q+4>>2];c[J+8>>2]=c[Q+8>>2];c[J+12>>2]=c[Q+12>>2]}else{c[l>>2]=c[M>>2];c[l+4>>2]=c[M+4>>2];c[l+8>>2]=c[M+8>>2];c[l+12>>2]=c[M+12>>2];J=l+16|0;c[J>>2]=c[ga>>2];c[J+4>>2]=c[ga+4>>2];c[J+8>>2]=c[ga+8>>2];c[J+12>>2]=c[ga+12>>2];J=l+32|0;c[J>>2]=c[U>>2];c[J+4>>2]=c[U+4>>2];c[J+8>>2]=c[U+8>>2];c[J+12>>2]=c[U+12>>2];J=l+48|0;c[J>>2]=c[_>>2];c[J+4>>2]=c[_+4>>2];c[J+8>>2]=c[_+8>>2];c[J+12>>2]=c[_+12>>2]}J=c[f>>2]|0;if((J|0)>0?(Ca=Xe*Xe+(We*We+Ve*Ve),Eb=Cb>.39269909262657166?.19634954631328583:Cb*.5,X=A+4|0,K=A+8|0,L=A+12|0,F=A+16|0,C=A+20|0,G=A+24|0,Ue=A+28|0,Re=A+32|0,Se=A+36|0,Te=A+40|0,Qe=A+44|0,Ne=m+32|0,Oe=m+36|0,Pe=m+52|0,Me=m+68|0,N=m+84|0,Fe=m+100|0,Le=m+116|0,Je=m+132|0,Ge=m+148|0,Ke=m+164|0,He=m+180|0,Ga=l+16|0,Ie=m+196|0,Ea=l+32|0,Db=m+212|0,Ab=l+48|0,Ae=m+228|0,x=I&1,w=m+232|0,re=A+64|0,ue=A+68|0,se=A+72|0,ve=A+76|0,te=A+80|0,ke=A+84|0,we=A+88|0,xe=A+92|0,Ub=A+96|0,ie=A+100|0,fe=A+104|0,ee=A+108|0,Ca>1.1920928955078125e-07):0){Cb=+S(+Eb)/+P(+Ca);Ca=Ve*Cb;Ve=We*Cb;We=Xe*Cb;Cb=+R(+Eb);Eb=+P(+(Fa*Fa+(Ba*Ba+Da*Da)));be=J;J=0;do{Xe=+(J|0)*(6.2831854820251465/+(be|0))*.5;Bb=+S(+Xe)/Eb;Be=Ba*Bb;ze=Da*Bb;ye=Fa*Bb;Bb=+R(+Xe);if(I){Xe=-Be;De=-ze;le=-ye;me=We*De+(Ca*Bb+Cb*Xe)-Ve*le;ne=Ca*le+(Cb*De+Ve*Bb)-We*Xe;Ee=Ve*Xe+(We*Bb+Cb*le)-Ca*De;oe=Cb*Bb-Ca*Xe-Ve*De-We*le;le=ye*ne+(Be*oe+Bb*me)-ze*Ee;De=Be*Ee+(Bb*ne+ze*oe)-ye*me;Xe=ze*me+(ye*oe+Bb*Ee)-Be*ne;pe=Bb*oe-Be*me-ze*ne-ye*Ee;Ee=2.0/(pe*pe+(Xe*Xe+(le*le+De*De)));ne=le*Ee;me=De*Ee;oe=Xe*Ee;Ee=pe*ne;qe=pe*me;Ce=pe*oe;pe=le*ne;ne=le*me;Vb=le*oe;le=De*me;me=De*oe;De=Xe*oe;oe=1.0-(le+De);Xe=ne-Ce;Tb=Vb+qe;Sb=ne+Ce;Ce=1.0-(pe+De);De=me-Ee;ne=Vb-qe;qe=me+Ee;Ee=1.0-(pe+le);Qd=c[z>>2]|0;le=+g[Qd>>2];pe=+g[Qd+16>>2];me=+g[Qd+32>>2];Vb=+g[Qd+4>>2];je=+g[Qd+20>>2];he=+g[Qd+36>>2];ge=+g[Qd+8>>2];de=+g[Qd+24>>2];Kd=+g[Qd+40>>2];g[A>>2]=Tb*me+(pe*Xe+le*oe);g[X>>2]=oe*Vb+Xe*je+Tb*he;g[K>>2]=oe*ge+Xe*de+Tb*Kd;g[L>>2]=0.0;g[F>>2]=De*me+(le*Sb+pe*Ce);g[C>>2]=Sb*Vb+Ce*je+De*he;g[G>>2]=Sb*ge+Ce*de+De*Kd;g[Ue>>2]=0.0;g[Re>>2]=le*ne+pe*qe+me*Ee;g[Se>>2]=ne*Vb+qe*je+Ee*he;g[Te>>2]=ne*ge+qe*de+Ee*Kd;g[Qe>>2]=0.0;Qd=c[d>>2]|0;c[M>>2]=c[Qd>>2];c[M+4>>2]=c[Qd+4>>2];c[M+8>>2]=c[Qd+8>>2];c[M+12>>2]=c[Qd+12>>2];Rd=Qd+16|0;c[ga>>2]=c[Rd>>2];c[ga+4>>2]=c[Rd+4>>2];c[ga+8>>2]=c[Rd+8>>2];c[ga+12>>2]=c[Rd+12>>2];Rd=Qd+32|0;c[U>>2]=c[Rd>>2];c[U+4>>2]=c[Rd+4>>2];c[U+8>>2]=c[Rd+8>>2];c[U+12>>2]=c[Rd+12>>2];Rd=Qd+48|0;c[_>>2]=c[Rd>>2];c[_+4>>2]=c[Rd+4>>2];c[_+8>>2]=c[Rd+8>>2];c[_+12>>2]=c[Rd+12>>2]}else{Rd=c[z>>2]|0;c[A>>2]=c[Rd>>2];c[A+4>>2]=c[Rd+4>>2];c[A+8>>2]=c[Rd+8>>2];c[A+12>>2]=c[Rd+12>>2];Qd=Rd+16|0;c[wa>>2]=c[Qd>>2];c[wa+4>>2]=c[Qd+4>>2];c[wa+8>>2]=c[Qd+8>>2];c[wa+12>>2]=c[Qd+12>>2];Qd=Rd+32|0;c[y>>2]=c[Qd>>2];c[y+4>>2]=c[Qd+4>>2];c[y+8>>2]=c[Qd+8>>2];c[y+12>>2]=c[Qd+12>>2];Qd=Rd+48|0;c[Q>>2]=c[Qd>>2];c[Q+4>>2]=c[Qd+4>>2];c[Q+8>>2]=c[Qd+8>>2];c[Q+12>>2]=c[Qd+12>>2];Kd=-Be;Ee=-ze;de=-ye;qe=We*Ee+(Ca*Bb+Cb*Kd)-Ve*de;ge=Ca*de+(Cb*Ee+Ve*Bb)-We*Kd;ne=Ve*Kd+(We*Bb+Cb*de)-Ca*Ee;he=Cb*Bb-Ca*Kd-Ve*Ee-We*de;de=ye*ge+(Be*he+Bb*qe)-ze*ne;Ee=Be*ne+(Bb*ge+ze*he)-ye*qe;Kd=ze*qe+(ye*he+Bb*ne)-Be*ge;je=Bb*he-Be*qe-ze*ge-ye*ne;ne=2.0/(je*je+(Kd*Kd+(de*de+Ee*Ee)));ye=de*ne;ge=Ee*ne;ze=Kd*ne;ne=je*ye;qe=je*ge;Be=je*ze;je=de*ye;ye=de*ge;he=de*ze;de=Ee*ge;ge=Ee*ze;Ee=Kd*ze;ze=1.0-(de+Ee);Kd=ye-Be;Bb=he+qe;Vb=ye+Be;Be=1.0-(je+Ee);Ee=ge-ne;ye=he-qe;qe=ge+ne;ne=1.0-(je+de);Qd=c[d>>2]|0;de=+g[Qd>>2];je=+g[Qd+16>>2];ge=+g[Qd+32>>2];he=+g[Qd+4>>2];me=+g[Qd+20>>2];pe=+g[Qd+36>>2];le=+g[Qd+8>>2];De=+g[Qd+24>>2];Ce=+g[Qd+40>>2];g[re>>2]=Bb*ge+(je*Kd+de*ze);g[ue>>2]=ze*he+Kd*me+Bb*pe;g[se>>2]=ze*le+Kd*De+Bb*Ce;g[ve>>2]=0.0;g[te>>2]=Ee*ge+(de*Vb+je*Be);g[ke>>2]=Vb*he+Be*me+Ee*pe;g[we>>2]=Vb*le+Be*De+Ee*Ce;g[xe>>2]=0.0;g[Ub>>2]=de*ye+je*qe+ge*ne;g[ie>>2]=ye*he+qe*me+ne*pe;g[fe>>2]=ye*le+qe*De+ne*Ce;g[ee>>2]=0.0}Qd=c[E>>2]|0;c[m>>2]=13912;c[Ne>>2]=h;c[Oe>>2]=c[A>>2];c[Oe+4>>2]=c[A+4>>2];c[Oe+8>>2]=c[A+8>>2];c[Oe+12>>2]=c[A+12>>2];c[Pe>>2]=c[wa>>2];c[Pe+4>>2]=c[wa+4>>2];c[Pe+8>>2]=c[wa+8>>2];c[Pe+12>>2]=c[wa+12>>2];c[Me>>2]=c[y>>2];c[Me+4>>2]=c[y+4>>2];c[Me+8>>2]=c[y+8>>2];c[Me+12>>2]=c[y+12>>2];c[N>>2]=c[Q>>2];c[N+4>>2]=c[Q+4>>2];c[N+8>>2]=c[Q+8>>2];c[N+12>>2]=c[Q+12>>2];c[Fe>>2]=c[M>>2];c[Fe+4>>2]=c[M+4>>2];c[Fe+8>>2]=c[M+8>>2];c[Fe+12>>2]=c[M+12>>2];c[Le>>2]=c[ga>>2];c[Le+4>>2]=c[ga+4>>2];c[Le+8>>2]=c[ga+8>>2];c[Le+12>>2]=c[ga+12>>2];c[Je>>2]=c[U>>2];c[Je+4>>2]=c[U+4>>2];c[Je+8>>2]=c[U+8>>2];c[Je+12>>2]=c[U+12>>2];c[Ge>>2]=c[_>>2];c[Ge+4>>2]=c[_+4>>2];c[Ge+8>>2]=c[_+8>>2];c[Ge+12>>2]=c[_+12>>2];c[Ke>>2]=c[l>>2];c[Ke+4>>2]=c[l+4>>2];c[Ke+8>>2]=c[l+8>>2];c[Ke+12>>2]=c[l+12>>2];c[He>>2]=c[Ga>>2];c[He+4>>2]=c[Ga+4>>2];c[He+8>>2]=c[Ga+8>>2];c[He+12>>2]=c[Ga+12>>2];c[Ie>>2]=c[Ea>>2];c[Ie+4>>2]=c[Ea+4>>2];c[Ie+8>>2]=c[Ea+8>>2];c[Ie+12>>2]=c[Ea+12>>2];c[Db>>2]=c[Ab>>2];c[Db+4>>2]=c[Ab+4>>2];c[Db+8>>2]=c[Ab+8>>2];c[Db+12>>2]=c[Ab+12>>2];a[Ae>>0]=x;c[w>>2]=Qd;vp(B,A,m,Qd,0);be=c[f>>2]|0;J=J+1|0}while((J|0)<(be|0));}}if(!(a[b+16>>0]|0)){i=j;return}b=c[H>>2]|0;if(!(c[b+748>>2]|0)){i=j;return}H=c[b+740>>2]|0;be=c[(c[h+8>>2]|0)+8>>2]|0;J=c[(c[h+12>>2]|0)+8>>2]|0;if((H|0)==(be|0)){yp(b,H+4|0,J+4|0);i=j;return}else{yp(b,J+4|0,be+4|0);i=j;return}}function Yq(b,d,e,f,h){b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0.0,p=0.0,q=0.0,r=0,s=0,t=0.0,u=0.0,v=0.0,w=0.0,x=0.0,y=0,z=0,A=0.0,B=0.0;h=i;i=i+624|0;f=h+568|0;b=h+392|0;j=h+32|0;k=h+16|0;l=h;m=d+68|0;n=d+4|0;o=+g[d+116>>2]-+g[d+52>>2];p=+g[d+120>>2]-+g[d+56>>2];q=+g[d+124>>2]-+g[d+60>>2];r=e+68|0;s=e+4|0;t=+g[e+116>>2]-+g[e+52>>2];u=+g[e+120>>2]-+g[e+56>>2];v=+g[e+124>>2]-+g[e+60>>2];w=+g[d+256>>2];if(o*o+p*p+q*q<w*w?(w=+g[e+256>>2],t*t+u*u+v*v<w*w):0){x=1.0;i=h;return +x}y=c[d+192>>2]|0;z=c[e+252>>2]|0;c[f+8>>2]=0;c[f+12>>2]=-1;c[f+16>>2]=1065353216;c[f+20>>2]=1065353216;c[f+24>>2]=1065353216;g[f+28>>2]=0.0;c[f>>2]=11048;c[f+4>>2]=8;c[f+32>>2]=z;c[f+48>>2]=z;c[b>>2]=5104;z=b+164|0;g[z>>2]=999999984306749440.0;c[b+168>>2]=0;g[b+172>>2]=0.0;g[j+308>>2]=9.999999747378752e-05;a[j+332>>0]=0;c[k>>2]=11912;c[k+4>>2]=j;c[k+8>>2]=y;c[k+12>>2]=f;if(qp(k,n,m,s,r,b)|0){k=d+248|0;w=+g[z>>2];if(+g[k>>2]>w)g[k>>2]=w;k=e+248|0;if(+g[k>>2]>w)g[k>>2]=w;if(w<1.0)A=w;else A=1.0}else A=1.0;k=c[e+192>>2]|0;z=c[d+252>>2]|0;c[f+8>>2]=0;c[f+12>>2]=-1;c[f+16>>2]=1065353216;c[f+20>>2]=1065353216;c[f+24>>2]=1065353216;g[f+28>>2]=0.0;c[f>>2]=11048;c[f+4>>2]=8;c[f+32>>2]=z;c[f+48>>2]=z;c[b>>2]=5104;z=b+164|0;g[z>>2]=999999984306749440.0;c[b+168>>2]=0;g[b+172>>2]=0.0;g[j+308>>2]=9.999999747378752e-05;a[j+332>>0]=0;c[l>>2]=11912;c[l+4>>2]=j;c[l+8>>2]=f;c[l+12>>2]=k;if(qp(l,n,m,s,r,b)|0){b=d+248|0;w=+g[z>>2];if(+g[b>>2]>w)g[b>>2]=w;b=e+248|0;if(+g[b>>2]>w)g[b>>2]=w;if(A>w)B=w;else B=A}else B=A;x=B;i=h;return +x}function Zq(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0;f=c[d>>2]|0;e=ec[c[(c[f>>2]|0)+56>>2]&31](f,36)|0;f=c[d+4>>2]|0;g=c[b+12>>2]|0;h=c[b+8>>2]|0;i=c[b+16>>2]|0;j=c[b+20>>2]|0;c[e+4>>2]=c[d>>2];c[e>>2]=13712;c[e+8>>2]=g;c[e+12>>2]=h;a[e+16>>0]=0;c[e+20>>2]=f;a[e+24>>0]=0;c[e+28>>2]=i;c[e+32>>2]=j;return e|0}function _q(b,d){b=b|0;d=d|0;var 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;e=b+20|0;f=c[e>>2]|0;g=f;if(!f)return;if(!(a[b+16>>0]|0))return;b=d+4|0;f=c[b>>2]|0;h=d+8|0;if((f|0)==(c[h>>2]|0)?(i=(f|0)!=0?f<<1:1,(f|0)<(i|0)):0){if(!i){j=0;k=f}else{c[3708]=(c[3708]|0)+1;l=ws((i<<2|3)+16|0)|0;if(!l)m=0;else{n=l+4+15&-16;c[n+-4>>2]=l;m=n}j=m;k=c[b>>2]|0}m=d+12|0;if((k|0)>0){n=0;do{c[j+(n<<2)>>2]=c[(c[m>>2]|0)+(n<<2)>>2];n=n+1|0}while((n|0)!=(k|0));}n=c[m>>2]|0;l=d+16|0;if(!n)o=k;else{if(!(a[l>>0]|0))p=k;else{c[3710]=(c[3710]|0)+1;xs(c[n+-4>>2]|0);p=c[b>>2]|0}c[m>>2]=0;o=p}a[l>>0]=1;c[m>>2]=j;c[h>>2]=i;q=o;r=c[e>>2]|0}else{q=f;r=g}c[(c[d+12>>2]|0)+(q<<2)>>2]=r;c[b>>2]=q+1;return}function $q(a){a=a|0;xs(a);return}function ar(b,d,e,f){b=b|0;d=d|0;e=e|0;f=+f;var h=0,j=0,k=0.0,l=0,m=0.0,n=0,o=0.0,p=0.0,q=0.0,r=0.0,s=0.0,t=0.0,u=0.0,v=0.0,w=0.0,x=0.0,y=0.0,z=0.0,A=0.0,B=0.0,C=0.0,D=0.0,E=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,O=0.0,P=0.0,Q=0.0,R=0.0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0;h=i;i=i+16|0;j=h;k=+g[d>>2];l=d+4|0;m=+g[l>>2];n=d+8|0;o=+g[n>>2];p=+g[e>>2];q=k*f+p;r=+g[e+4>>2];s=m*f+r;t=+g[e+8>>2];u=o*f+t;e=b+164|0;if(!(a[b+228>>0]|0)){f=+g[b+100>>2];v=+g[b+116>>2];w=+g[b+132>>2];x=+g[b+104>>2];y=+g[b+120>>2];z=+g[b+136>>2];A=+g[b+108>>2];B=+g[b+124>>2];C=+g[b+140>>2];D=-+g[b+148>>2];E=-+g[b+152>>2];F=-+g[b+156>>2];G=f*D+v*E+w*F;H=x*D+y*E+z*F;I=A*D+B*E+C*F;F=+g[e>>2];E=+g[b+168>>2];D=+g[b+172>>2];J=+g[b+180>>2];K=+g[b+184>>2];L=+g[b+188>>2];M=+g[b+196>>2];N=+g[b+200>>2];O=+g[b+204>>2];P=t*(w*F+z*E+C*D)+(p*(f*F+x*E+A*D)+r*(v*F+y*E+B*D))+(F*G+H*E+I*D+ +g[b+212>>2]);D=t*(w*J+z*K+C*L)+(p*(f*J+x*K+A*L)+r*(v*J+y*K+B*L))+(G*J+H*K+I*L+ +g[b+216>>2]);L=G*M+H*N+I*O+ +g[b+220>>2]+(t*(w*M+z*N+C*O)+(p*(f*M+x*N+A*O)+r*(v*M+y*N+B*O)));g[j>>2]=P;g[j+4>>2]=D;Q=L;R=(q-P)*+g[d>>2]+(s-D)*+g[l>>2]+(u-L)*+g[n>>2];S=j+8|0;g[S>>2]=Q;T=j+12|0;g[T>>2]=0.0;U=b+32|0;V=c[U>>2]|0;W=c[V>>2]|0;X=W+16|0;Y=c[X>>2]|0;oc[Y&7](V,d,j,R);i=h;return}else{L=+g[b+36>>2];D=+g[b+52>>2];P=+g[b+68>>2];O=+g[b+40>>2];B=+g[b+56>>2];N=+g[b+72>>2];y=+g[b+44>>2];M=+g[b+60>>2];v=+g[b+76>>2];A=-+g[b+84>>2];x=-+g[b+88>>2];f=-+g[b+92>>2];C=L*A+D*x+P*f;z=O*A+B*x+N*f;w=y*A+M*x+v*f;f=+g[e>>2];x=+g[b+168>>2];A=+g[b+172>>2];I=+g[b+180>>2];H=+g[b+184>>2];G=+g[b+188>>2];K=+g[b+196>>2];J=+g[b+200>>2];E=+g[b+204>>2];F=u*(P*f+N*x+v*A)+(q*(L*f+O*x+y*A)+s*(D*f+B*x+M*A))+(f*C+z*x+w*A+ +g[b+212>>2]);A=u*(P*I+N*H+v*G)+(q*(L*I+O*H+y*G)+s*(D*I+B*H+M*G))+(C*I+z*H+w*G+ +g[b+216>>2]);G=C*K+z*J+w*E+ +g[b+220>>2]+(u*(P*K+N*J+v*E)+(q*(L*K+O*J+y*E)+s*(D*K+B*J+M*E)));E=k*(F-p)+m*(A-r)+o*(G-t);g[j>>2]=F+k*E;g[j+4>>2]=A+m*E;Q=G+o*E;R=E;S=j+8|0;g[S>>2]=Q;T=j+12|0;g[T>>2]=0.0;U=b+32|0;V=c[U>>2]|0;W=c[V>>2]|0;X=W+16|0;Y=c[X>>2]|0;oc[Y&7](V,d,j,R);i=h;return}}function br(a){a=a|0;xs(a);return}function cr(a,b,c){a=a|0;b=b|0;c=c|0;return}function dr(a,b,c){a=a|0;b=b|0;c=c|0;return}function er(b,d,e,f){b=b|0;d=d|0;e=e|0;f=+f;var h=0,j=0,k=0,l=0,m=0.0,n=0.0,o=0.0,p=0,q=0,r=0,s=0,t=0;h=i;i=i+16|0;j=h;k=b+32|0;g[k>>2]=f;l=b+8|0;c[l>>2]=c[d>>2];c[l+4>>2]=c[d+4>>2];c[l+8>>2]=c[d+8>>2];c[l+12>>2]=c[d+12>>2];m=+g[b+28>>2];n=+g[e+4>>2]-m*+g[d+4>>2];o=+g[e+8>>2]-m*+g[d+8>>2];g[j>>2]=+g[e>>2]-+g[d>>2]*m;g[j+4>>2]=n;g[j+8>>2]=o;g[j+12>>2]=0.0;o=+g[b+24>>2]+m+f;g[k>>2]=o;if(!(o<0.0)){p=b+4|0;q=c[p>>2]|0;r=c[q>>2]|0;s=r+16|0;t=c[s>>2]|0;oc[t&7](q,d,j,o);i=h;return}a[b+36>>0]=1;p=b+4|0;q=c[p>>2]|0;r=c[q>>2]|0;s=r+16|0;t=c[s>>2]|0;oc[t&7](q,d,j,o);i=h;return}function fr(a){a=a|0;xs(a);return}function gr(a,b,c){a=a|0;b=b|0;c=c|0;return}function hr(a,b,c){a=a|0;b=b|0;c=c|0;return}function ir(a,b,c,d){a=a|0;b=b|0;c=c|0;d=+d;return}function jr(b){b=b|0;var d=0,e=0;c[b>>2]=14304;if(!(a[b+8>>0]|0))return;d=c[b+12>>2]|0;if(!d)return;e=c[b+4>>2]|0;Mb[c[(c[e>>2]|0)+16>>2]&127](e,d);return}function kr(b){b=b|0;var d=0,e=0;c[b>>2]=14304;if(!(a[b+8>>0]|0)){xs(b);return}d=c[b+12>>2]|0;if(!d){xs(b);return}e=c[b+4>>2]|0;Mb[c[(c[e>>2]|0)+16>>2]&127](e,d);xs(b);return}function lr(b,d,e,f,h){b=b|0;d=d|0;e=e|0;f=f|0;h=h|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.0,E=0,F=0.0,G=0,H=0.0,I=0.0,J=0.0,K=0.0,L=0.0,M=0.0,N=0.0,Q=0.0,T=0.0,U=0.0,V=0,W=0.0,X=0.0,Y=0.0,Z=0.0,_=0.0,$=0.0,aa=0.0,ba=0.0,ca=0.0,da=0.0,ea=0.0,fa=0.0,ga=0.0,ha=0.0,ia=0.0,ja=0.0,ka=0.0,la=0.0,ma=0.0,na=0.0,oa=0.0,pa=0.0,qa=0.0,ra=0.0,sa=0.0,ta=0.0,ua=0.0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0,Fa=0,Ga=0,Ha=0,Ia=0.0,Ja=0.0,Ka=0.0,La=0.0,Ma=0.0,Na=0.0,Oa=0.0,Pa=0.0,Qa=0.0,Ra=0.0;f=i;i=i+128|0;j=f+112|0;k=f+96|0;l=f+80|0;m=f+64|0;n=f+48|0;o=f+32|0;p=f+16|0;q=f;r=b+12|0;if(!(c[r>>2]|0)){i=f;return}s=b+16|0;t=(a[s>>0]|0)!=0;u=t?e:d;v=t?d:e;t=c[u+4>>2]|0;w=c[v+4>>2]|0;x=c[u+12>>2]|0;u=x+4|0;y=x+20|0;z=x+36|0;A=x+8|0;B=x+24|0;C=x+40|0;D=+g[x>>2];E=x+16|0;F=+g[E>>2];G=x+32|0;H=+g[G>>2];I=+g[u>>2];J=+g[y>>2];K=+g[z>>2];L=+g[A>>2];M=+g[B>>2];N=+g[C>>2];Q=+g[x+48>>2];T=+g[x+52>>2];U=+g[x+56>>2];V=v+12|0;v=c[V>>2]|0;W=+g[v>>2];X=+g[v+16>>2];Y=+g[v+32>>2];Z=+g[v+4>>2];_=+g[v+20>>2];$=+g[v+36>>2];aa=+g[v+8>>2];ba=+g[v+24>>2];ca=+g[v+40>>2];da=-+g[v+48>>2];ea=-+g[v+52>>2];fa=-+g[v+56>>2];ga=+g[x>>2];ha=+g[E>>2];ia=+g[G>>2];ja=+g[u>>2];ka=+g[y>>2];la=+g[z>>2];ma=+g[A>>2];na=+g[B>>2];oa=+g[C>>2];C=c[(c[t>>2]|0)+64>>2]|0;B=w+52|0;pa=-+g[B>>2];A=w+56|0;qa=-+g[A>>2];z=w+60|0;ra=-+g[z>>2];g[o>>2]=(D*W+F*X+H*Y)*pa+(D*Z+F*_+H*$)*qa+(D*aa+F*ba+H*ca)*ra;g[o+4>>2]=(I*W+J*X+K*Y)*pa+(I*Z+J*_+K*$)*qa+(I*aa+J*ba+K*ca)*ra;g[o+8>>2]=(L*W+M*X+N*Y)*pa+(L*Z+M*_+N*$)*qa+(L*aa+M*ba+N*ca)*ra;g[o+12>>2]=0.0;pc[C&63](n,t,o);ra=+g[n>>2];N=+g[n+4>>2];M=+g[n+8>>2];L=Q*W+T*X+U*Y+(W*da+X*ea+Y*fa)+((W*ga+X*ha+Y*ia)*ra+(W*ja+X*ka+Y*la)*N+(W*ma+X*na+Y*oa)*M);Y=Q*Z+T*_+U*$+(Z*da+_*ea+$*fa)+((Z*ga+_*ha+$*ia)*ra+(Z*ja+_*ka+$*la)*N+(Z*ma+_*na+$*oa)*M);$=Q*aa+T*ba+U*ca+(aa*da+ba*ea+ca*fa)+((aa*ga+ba*ha+ca*ia)*ra+(aa*ja+ba*ka+ca*la)*N+(aa*ma+ba*na+ca*oa)*M);M=+g[B>>2];oa=+g[A>>2];ca=+g[z>>2];na=ca*$+(M*L+oa*Y)-+g[w+68>>2];ba=L-M*na;L=Y-oa*na;Y=$-ca*na;w=c[V>>2]|0;$=+g[w>>2];ma=+g[w+4>>2];aa=+g[w+8>>2];N=+g[w+16>>2];la=+g[w+20>>2];ka=+g[w+24>>2];ja=+g[w+32>>2];ra=+g[w+36>>2];ia=+g[w+40>>2];ha=+g[w+48>>2];ga=+g[w+52>>2];fa=+g[w+56>>2];w=c[r>>2]|0;n=na<+g[w+752>>2];o=h+4|0;c[o>>2]=w;if(n){n=c[V>>2]|0;ea=M*+g[n+16>>2]+oa*+g[n+20>>2]+ca*+g[n+24>>2];da=M*+g[n+32>>2]+oa*+g[n+36>>2]+ca*+g[n+40>>2];g[p>>2]=+g[n>>2]*M+ +g[n+4>>2]*oa+ +g[n+8>>2]*ca;g[p+4>>2]=ea;g[p+8>>2]=da;g[p+12>>2]=0.0;g[q>>2]=aa*Y+($*ba+ma*L)+ha;g[q+4>>2]=ba*N+L*la+Y*ka+ga;g[q+8>>2]=ba*ja+L*ra+Y*ia+fa;g[q+12>>2]=0.0;oc[c[(c[h>>2]|0)+16>>2]&7](h,p,q,na);}if((c[t+4>>2]|0)<7?(c[(c[o>>2]|0)+748>>2]|0)<(c[b+24>>2]|0):0){na=+g[z>>2];if(+O(+na)>.7071067690849304){fa=+g[A>>2];ia=1.0/+P(+(na*na+fa*fa));sa=0.0;ta=-(na*ia);ua=fa*ia}else{ia=+g[B>>2];fa=+g[A>>2];na=1.0/+P(+(ia*ia+fa*fa));sa=-(fa*na);ta=ia*na;ua=0.0}na=.019999999552965164/+Zb[c[(c[t>>2]|0)+16>>2]&7](t);ia=+P(+(ua*ua+(ta*ta+sa*sa)));fa=na>.39269909262657166?.19634954631328583:na*.5;na=+S(+fa)/ia;ia=sa*na;sa=ta*na;ta=ua*na;na=+R(+fa);t=b+20|0;q=c[t>>2]|0;if((q|0)>0){p=k+4|0;n=k+8|0;V=k+12|0;w=j+4|0;C=j+8|0;y=l+4|0;u=l+8|0;G=l+12|0;E=m+4|0;x=m+8|0;v=m+12|0;va=q;q=0;do{fa=+g[B>>2];ua=+g[A>>2];Y=+g[z>>2];ra=+(q|0)*(6.2831854820251465/+(va|0))*.5;L=+S(+ra)/+P(+(fa*fa+ua*ua+Y*Y));ja=fa*L;fa=ua*L;ua=Y*L;L=+R(+ra);ra=-ja;Y=-fa;ba=-ua;ga=ta*Y+(ia*L+na*ra)-sa*ba;ka=ia*ba+(na*Y+sa*L)-ta*ra;la=sa*ra+(ta*L+na*ba)-ia*Y;N=na*L-ia*ra-sa*Y-ta*ba;ba=ua*ka+(ja*N+L*ga)-fa*la;Y=ja*la+(L*ka+fa*N)-ua*ga;ra=fa*ga+(ua*N+L*la)-ja*ka;ha=L*N-ja*ga-fa*ka-ua*la;wa=(a[s>>0]|0)!=0;xa=wa?e:d;ya=wa?d:e;wa=c[xa+4>>2]|0;za=c[ya+4>>2]|0;Aa=c[xa+12>>2]|0;la=+g[Aa>>2];ua=+g[Aa+4>>2];ka=+g[Aa+8>>2];fa=+g[Aa+16>>2];ga=+g[Aa+20>>2];ja=+g[Aa+24>>2];N=+g[Aa+32>>2];L=+g[Aa+36>>2];ma=+g[Aa+40>>2];$=+g[Aa+48>>2];aa=+g[Aa+52>>2];da=+g[Aa+56>>2];Aa=ya+12|0;ya=c[Aa>>2]|0;xa=ya+4|0;Ba=ya+20|0;Ca=ya+36|0;Da=ya+8|0;Ea=ya+24|0;Fa=ya+40|0;ea=+g[ya>>2];Ga=ya+16|0;ca=+g[Ga>>2];Ha=ya+32|0;oa=+g[Ha>>2];M=+g[xa>>2];U=+g[Ba>>2];T=+g[Ca>>2];Q=+g[Da>>2];_=+g[Ea>>2];Z=+g[Fa>>2];X=-+g[ya+48>>2];W=-+g[ya+52>>2];qa=-+g[ya+56>>2];pa=2.0/(ba*ba+Y*Y+ra*ra+ha*ha);K=ba*pa;J=Y*pa;I=ra*pa;pa=ha*K;H=ha*J;F=ha*I;ha=ba*K;K=ba*J;D=ba*I;ba=Y*J;J=Y*I;Y=ra*I;I=1.0-(ba+Y);ra=K-F;Ia=D+H;Ja=K+F;F=1.0-(ha+Y);Y=J-pa;K=D-H;H=J+pa;pa=1.0-(ha+ba);ba=ka*K+(ua*Ja+la*I);ha=ka*H+(la*ra+ua*F);J=la*Ia+ua*Y+ka*pa;D=ja*K+(ga*Ja+fa*I);Ka=ja*H+(fa*ra+ga*F);La=fa*Ia+ga*Y+ja*pa;Ma=ma*K+(L*Ja+N*I);I=ma*H+(N*ra+L*F);F=N*Ia+L*Y+ma*pa;pa=+g[ya>>2];Y=+g[Ga>>2];Ia=+g[Ha>>2];ra=+g[xa>>2];H=+g[Ba>>2];Ja=+g[Ca>>2];K=+g[Da>>2];Na=+g[Ea>>2];Oa=+g[Fa>>2];Fa=c[(c[wa>>2]|0)+64>>2]|0;Ea=za+52|0;Pa=-+g[Ea>>2];Da=za+56|0;Qa=-+g[Da>>2];Ca=za+60|0;Ra=-+g[Ca>>2];g[k>>2]=(Ia*Ma+(pa*ba+Y*D))*Pa+(Ja*Ma+(ra*ba+H*D))*Qa+(ba*K+D*Na+Ma*Oa)*Ra;g[p>>2]=(Ia*I+(pa*ha+Y*Ka))*Pa+(Ja*I+(ra*ha+H*Ka))*Qa+(K*ha+Ka*Na+I*Oa)*Ra;g[n>>2]=(Ia*F+(pa*J+Y*La))*Pa+(Ja*F+(ra*J+H*La))*Qa+(J*K+La*Na+F*Oa)*Ra;g[V>>2]=0.0;pc[Fa&63](j,wa,k);Ra=+g[j>>2];Oa=+g[w>>2];F=+g[C>>2];Na=$*ea+aa*ca+da*oa+(ea*X+ca*W+oa*qa)+((la*ea+fa*ca+N*oa)*Ra+(ua*ea+ga*ca+L*oa)*Oa+(ka*ea+ja*ca+ma*oa)*F);oa=$*M+aa*U+da*T+(M*X+U*W+T*qa)+((la*M+fa*U+N*T)*Ra+(ua*M+ga*U+L*T)*Oa+(ka*M+ja*U+ma*T)*F);T=$*Q+aa*_+da*Z+(Q*X+_*W+Z*qa)+((la*Q+fa*_+N*Z)*Ra+(ua*Q+ga*_+L*Z)*Oa+(ka*Q+ja*_+ma*Z)*F);F=+g[Ea>>2];Z=+g[Da>>2];ma=+g[Ca>>2];_=ma*T+(F*Na+Z*oa)-+g[za+68>>2];ja=Na-F*_;Na=oa-Z*_;oa=T-ma*_;za=c[Aa>>2]|0;T=+g[za>>2];Q=+g[za+4>>2];ka=+g[za+8>>2];Oa=+g[za+16>>2];L=+g[za+20>>2];ga=+g[za+24>>2];ua=+g[za+32>>2];Ra=+g[za+36>>2];N=+g[za+40>>2];fa=+g[za+48>>2];la=+g[za+52>>2];qa=+g[za+56>>2];za=c[r>>2]|0;Ca=_<+g[za+752>>2];c[o>>2]=za;if(Ca){Ca=c[Aa>>2]|0;W=F*+g[Ca+16>>2]+Z*+g[Ca+20>>2]+ma*+g[Ca+24>>2];X=F*+g[Ca+32>>2]+Z*+g[Ca+36>>2]+ma*+g[Ca+40>>2];g[l>>2]=+g[Ca>>2]*F+ +g[Ca+4>>2]*Z+ +g[Ca+8>>2]*ma;g[y>>2]=W;g[u>>2]=X;g[G>>2]=0.0;g[m>>2]=ka*oa+(T*ja+Q*Na)+fa;g[E>>2]=ja*Oa+Na*L+oa*ga+la;g[x>>2]=ja*ua+Na*Ra+oa*N+qa;g[v>>2]=0.0;oc[c[(c[h>>2]|0)+16>>2]&7](h,l,m,_);}q=q+1|0;va=c[t>>2]|0}while((q|0)<(va|0));}}if(!(a[b+8>>0]|0)){i=f;return}if(!(c[(c[r>>2]|0)+748>>2]|0)){i=f;return}r=c[o>>2]|0;if(!(c[r+748>>2]|0)){i=f;return}o=c[r+740>>2]|0;b=c[(c[h+8>>2]|0)+8>>2]|0;va=c[(c[h+12>>2]|0)+8>>2]|0;if((o|0)==(b|0)){yp(r,o+4|0,va+4|0);i=f;return}else{yp(r,va+4|0,b+4|0);i=f;return}}function mr(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return 1.0}function nr(b,d){b=b|0;d=d|0;var 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;e=b+12|0;f=c[e>>2]|0;g=f;if(!f)return;if(!(a[b+8>>0]|0))return;b=d+4|0;f=c[b>>2]|0;h=d+8|0;if((f|0)==(c[h>>2]|0)?(i=(f|0)!=0?f<<1:1,(f|0)<(i|0)):0){if(!i){j=0;k=f}else{c[3708]=(c[3708]|0)+1;l=ws((i<<2|3)+16|0)|0;if(!l)m=0;else{n=l+4+15&-16;c[n+-4>>2]=l;m=n}j=m;k=c[b>>2]|0}m=d+12|0;if((k|0)>0){n=0;do{c[j+(n<<2)>>2]=c[(c[m>>2]|0)+(n<<2)>>2];n=n+1|0}while((n|0)!=(k|0));}n=c[m>>2]|0;l=d+16|0;if(!n)o=k;else{if(!(a[l>>0]|0))p=k;else{c[3710]=(c[3710]|0)+1;xs(c[n+-4>>2]|0);p=c[b>>2]|0}c[m>>2]=0;o=p}a[l>>0]=1;c[m>>2]=j;c[h>>2]=i;q=o;r=c[e>>2]|0}else{q=f;r=g}c[(c[d+12>>2]|0)+(q<<2)>>2]=r;c[b>>2]=q+1;return}function or(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;d=b+12|0;e=c[d>>2]|0;f=b+32|0;g=c[f>>2]|0;if((e|0)<=(g|0))return;if((e|0)>=(g|0)){h=b+36|0;do if((c[h>>2]|0)<(e|0)){if(!e){i=0;j=g}else{c[3708]=(c[3708]|0)+1;k=ws((e<<2|3)+16|0)|0;if(!k)l=0;else{m=k+4+15&-16;c[m+-4>>2]=k;l=m}i=l;j=c[f>>2]|0}m=b+40|0;k=c[m>>2]|0;if((j|0)<=0){if(!k){a[b+44>>0]=1;c[m>>2]=i;c[h>>2]=e;n=i;break}}else{o=0;do{c[i+(o<<2)>>2]=c[k+(o<<2)>>2];o=o+1|0}while((o|0)!=(j|0));}o=b+44|0;if(a[o>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[k+-4>>2]|0);}a[o>>0]=1;c[m>>2]=i;c[h>>2]=e;n=i}else n=c[b+40>>2]|0;while(0);Cs(n+(g<<2)|0,0,e-g<<2|0)|0}c[f>>2]=e;f=b+52|0;n=c[f>>2]|0;if((e|0)>(n|0)){i=b+56|0;do if((c[i>>2]|0)<(e|0)){if(!e){p=0;q=n}else{c[3708]=(c[3708]|0)+1;h=ws((e<<2|3)+16|0)|0;if(!h)r=0;else{j=h+4+15&-16;c[j+-4>>2]=h;r=j}p=r;q=c[f>>2]|0}j=b+60|0;h=c[j>>2]|0;if((q|0)<=0){if(!h){a[b+64>>0]=1;c[j>>2]=p;c[i>>2]=e;s=p;break}}else{l=0;do{c[p+(l<<2)>>2]=c[h+(l<<2)>>2];l=l+1|0}while((l|0)!=(q|0));}l=b+64|0;if(a[l>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[h+-4>>2]|0);}a[l>>0]=1;c[j>>2]=p;c[i>>2]=e;s=p}else s=c[b+60>>2]|0;while(0);Cs(s+(n<<2)|0,0,e-n<<2|0)|0}c[f>>2]=e;if((e|0)>0){f=e<<2;Cs(c[b+40>>2]|0,-1,f|0)|0;Cs(c[b+60>>2]|0,-1,f|0)|0}if((g|0)<=0)return;f=c[b+16>>2]|0;e=c[b+40>>2]|0;n=c[b+60>>2]|0;b=0;do{s=c[f+(b*12|0)+4>>2]<<16|c[f+(b*12|0)>>2];p=s+~(s<<15)|0;s=(p>>10^p)*9|0;p=s>>6^s;s=p+~(p<<11)|0;p=e+(((s>>16^s)&(c[d>>2]|0)+-1)<<2)|0;c[n+(b<<2)>>2]=c[p>>2];c[p>>2]=b;b=b+1|0}while((b|0)!=(g|0));return}function pr(b){b=b|0;var d=0,e=0,f=0,g=0,h=0;c[b>>2]=14416;d=b+52|0;e=b+60|0;f=c[e>>2]|0;g=b+64|0;if(f){if(a[g>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[f+-4>>2]|0);}c[e>>2]=0}a[g>>0]=1;c[e>>2]=0;c[d>>2]=0;c[b+56>>2]=0;d=b+32|0;e=b+40|0;g=c[e>>2]|0;f=b+44|0;if(g){if(a[f>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[g+-4>>2]|0);}c[e>>2]=0}a[f>>0]=1;c[e>>2]=0;c[d>>2]=0;c[b+36>>2]=0;d=b+8|0;e=b+16|0;f=c[e>>2]|0;g=b+20|0;if(!f){a[g>>0]=1;c[e>>2]=0;c[d>>2]=0;h=b+12|0;c[h>>2]=0;return}if(a[g>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[f+-4>>2]|0);}c[e>>2]=0;a[g>>0]=1;c[e>>2]=0;c[d>>2]=0;h=b+12|0;c[h>>2]=0;return}function qr(a){a=a|0;pr(a);xs(a);return}function rr(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;d=b+8|0;e=b+16|0;f=c[e>>2]|0;g=b+20|0;if(f){if(a[g>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[f+-4>>2]|0);}c[e>>2]=0}a[g>>0]=1;c[e>>2]=0;c[d>>2]=0;f=b+12|0;c[f>>2]=0;h=b+32|0;i=b+40|0;j=c[i>>2]|0;k=b+44|0;if(j){if(a[k>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[j+-4>>2]|0);}c[i>>2]=0}a[k>>0]=1;c[i>>2]=0;c[h>>2]=0;c[b+36>>2]=0;h=b+52|0;i=b+60|0;k=c[i>>2]|0;j=b+64|0;if(k){if(a[j>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[k+-4>>2]|0);}c[i>>2]=0}a[j>>0]=1;c[i>>2]=0;c[h>>2]=0;c[b+56>>2]=0;if((c[f>>2]|0)>=2){or(b);return}c[3708]=(c[3708]|0)+1;h=ws(43)|0;if(!h)l=0;else{i=h+4+15&-16;c[i+-4>>2]=h;l=i}i=c[d>>2]|0;if((i|0)>0){d=0;do{h=l+(d*12|0)|0;j=(c[e>>2]|0)+(d*12|0)|0;c[h>>2]=c[j>>2];c[h+4>>2]=c[j+4>>2];c[h+8>>2]=c[j+8>>2];d=d+1|0}while((d|0)!=(i|0));}i=c[e>>2]|0;if(i){if(a[g>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[i+-4>>2]|0);}c[e>>2]=0}a[g>>0]=1;c[e>>2]=l;c[f>>2]=2;or(b);return}function sr(a,b,d){a=a|0;b=b|0;d=d|0;var 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;c[3596]=(c[3596]|0)+1;e=d<<16|b;f=e+~(e<<15)|0;e=(f>>10^f)*9|0;f=e>>6^e;e=f+~(f<<11)|0;f=a+12|0;g=a+40|0;h=c[g>>2]|0;i=h+(((c[f>>2]|0)+-1&(e>>16^e))<<2)|0;e=c[i>>2]|0;if((e|0)==-1){j=0;return j|0}k=c[a+16>>2]|0;l=a+60|0;m=e;while(1){n=k+(m*12|0)|0;if((c[n>>2]|0)==(b|0)?(c[k+(m*12|0)+4>>2]|0)==(d|0):0)break;o=c[(c[l>>2]|0)+(m<<2)>>2]|0;if((o|0)==-1){j=0;p=21;break}else m=o}if((p|0)==21)return j|0;if(!n){j=0;return j|0}d=c[k+(m*12|0)+8>>2]|0;b=(m*12|0)/12|0;m=c[l>>2]|0;if((e|0)!=(b|0)){o=e;while(1){q=m+(o<<2)|0;r=c[q>>2]|0;if((r|0)==(b|0))break;else o=r}r=c[m+(b<<2)>>2]|0;if((o|0)==-1){s=r;p=11}else c[q>>2]=r}else{s=c[m+(e<<2)>>2]|0;p=11}if((p|0)==11)c[i>>2]=s;s=a+8|0;a=(c[s>>2]|0)+-1|0;if((a|0)==(b|0)){c[s>>2]=b;j=d;return j|0}i=c[k+(a*12|0)+4>>2]<<16|c[k+(a*12|0)>>2];e=i+~(i<<15)|0;i=(e>>10^e)*9|0;e=i>>6^i;i=e+~(e<<11)|0;e=(i>>16^i)&(c[f>>2]|0)+-1;f=h+(e<<2)|0;h=c[f>>2]|0;if((h|0)!=(a|0)){i=h;while(1){t=m+(i<<2)|0;h=c[t>>2]|0;if((h|0)==(a|0))break;else i=h}h=c[m+(a<<2)>>2]|0;if((i|0)==-1){u=h;p=19}else c[t>>2]=h}else{u=c[m+(a<<2)>>2]|0;p=19}if((p|0)==19)c[f>>2]=u;u=k+(a*12|0)|0;c[n>>2]=c[u>>2];c[n+4>>2]=c[u+4>>2];c[n+8>>2]=c[u+8>>2];u=(c[g>>2]|0)+(e<<2)|0;c[(c[l>>2]|0)+(b<<2)>>2]=c[u>>2];c[u>>2]=b;c[s>>2]=(c[s>>2]|0)+-1;j=d;return j|0}function tr(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;c[3598]=(c[3598]|0)+1;f=e<<16|d;g=f+~(f<<15)|0;f=(g>>10^g)*9|0;g=f>>6^f;f=g+~(g<<11)|0;g=f>>16^f;f=b+12|0;h=c[f>>2]|0;i=h+-1&g;j=b+40|0;k=c[(c[j>>2]|0)+(i<<2)>>2]|0;a:do if((k|0)!=-1){l=c[b+16>>2]|0;m=b+60|0;n=k;while(1){o=l+(n*12|0)|0;if((c[o>>2]|0)==(d|0)?(c[l+(n*12|0)+4>>2]|0)==(e|0):0)break;n=c[(c[m>>2]|0)+(n<<2)>>2]|0;if((n|0)==-1)break a}if(o){p=o;return p|0}}while(0);o=b+8|0;k=c[o>>2]|0;if((k|0)==(h|0)){n=(h|0)!=0?h<<1:1;if((h|0)<(n|0)){if(!n){q=0;r=h}else{c[3708]=(c[3708]|0)+1;m=ws((n*12|3)+16|0)|0;if(!m)s=0;else{l=m+4+15&-16;c[l+-4>>2]=m;s=l}q=s;r=c[o>>2]|0}s=b+16|0;if((r|0)>0){l=0;do{m=q+(l*12|0)|0;t=(c[s>>2]|0)+(l*12|0)|0;c[m>>2]=c[t>>2];c[m+4>>2]=c[t+4>>2];c[m+8>>2]=c[t+8>>2];l=l+1|0}while((l|0)!=(r|0));}r=c[s>>2]|0;l=b+20|0;if(r){if(a[l>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[r+-4>>2]|0);}c[s>>2]=0}a[l>>0]=1;c[s>>2]=q;c[f>>2]=n;u=c[o>>2]|0;v=n}else{u=h;v=h}}else{u=k;v=h}c[o>>2]=u+1;u=c[b+16>>2]|0;o=u+(k*12|0)|0;if((h|0)<(v|0)){or(b);w=(c[f>>2]|0)+-1&g}else w=i;c[o>>2]=d;c[u+(k*12|0)+4>>2]=e;c[u+(k*12|0)+8>>2]=0;u=(c[j>>2]|0)+(w<<2)|0;c[(c[b+60>>2]|0)+(k<<2)>>2]=c[u>>2];c[u>>2]=k;p=o;return p|0}function ur(a){a=a|0;return c[a+16>>2]|0}function vr(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;c[b>>2]=14528;d=b+48|0;e=b+56|0;f=c[e>>2]|0;g=b+60|0;if(f){if(a[g>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[f+-4>>2]|0);}c[e>>2]=0}a[g>>0]=1;c[e>>2]=0;c[d>>2]=0;c[b+52>>2]=0;d=b+28|0;e=c[d>>2]|0;g=b+36|0;if((e|0)>0){f=0;do{h=c[g>>2]|0;i=h+(f*36|0)+4|0;j=h+(f*36|0)+12|0;k=c[j>>2]|0;l=h+(f*36|0)+16|0;if(k){if(a[l>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[k+-4>>2]|0);}c[j>>2]=0}a[l>>0]=1;c[j>>2]=0;c[i>>2]=0;c[h+(f*36|0)+8>>2]=0;f=f+1|0}while((f|0)!=(e|0));}e=c[g>>2]|0;f=b+40|0;if(e){if(a[f>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[e+-4>>2]|0);}c[g>>2]=0}a[f>>0]=1;c[g>>2]=0;c[d>>2]=0;c[b+32>>2]=0;d=b+8|0;g=b+16|0;f=c[g>>2]|0;e=b+20|0;if(!f){a[e>>0]=1;c[g>>2]=0;c[d>>2]=0;m=b+12|0;c[m>>2]=0;return}if(a[e>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[f+-4>>2]|0);}c[g>>2]=0;a[e>>0]=1;c[g>>2]=0;c[d>>2]=0;m=b+12|0;c[m>>2]=0;return}function wr(a){a=a|0;vr(a);if(!a)return;c[3710]=(c[3710]|0)+1;xs(c[a+-4>>2]|0);return}function xr(a){a=a|0;var b=0,d=0,e=0,f=0,h=0,i=0,j=0,k=0,l=0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0,r=0.0,s=0,t=0;b=a+80|0;d=a+84|0;e=a+88|0;f=a+64|0;h=a+68|0;i=a+72|0;j=c[a+28>>2]|0;if((j|0)<=0){k=1;return k|0}l=c[a+36>>2]|0;m=0.0;n=0.0;o=0.0;a=0;a:while(1){switch(a|0){case 5:{p=+g[i>>2]-+g[e>>2];q=+g[d>>2]+ +g[h>>2];r=+g[f>>2]-+g[b>>2];break}case 0:{p=+g[e>>2]+ +g[i>>2];q=+g[d>>2]+ +g[h>>2];r=+g[b>>2]+ +g[f>>2];break}case 6:{p=+g[e>>2]+ +g[i>>2];q=+g[h>>2]-+g[d>>2];r=+g[f>>2]-+g[b>>2];break}case 7:{p=+g[i>>2]-+g[e>>2];q=+g[h>>2]-+g[d>>2];r=+g[f>>2]-+g[b>>2];break}case 3:{p=+g[i>>2]-+g[e>>2];q=+g[h>>2]-+g[d>>2];r=+g[b>>2]+ +g[f>>2];break}case 4:{p=+g[e>>2]+ +g[i>>2];q=+g[d>>2]+ +g[h>>2];r=+g[f>>2]-+g[b>>2];break}case 2:{p=+g[e>>2]+ +g[i>>2];q=+g[h>>2]-+g[d>>2];r=+g[b>>2]+ +g[f>>2];break}case 1:{p=+g[i>>2]-+g[e>>2];q=+g[d>>2]+ +g[h>>2];r=+g[b>>2]+ +g[f>>2];break}default:{p=o;q=n;r=m}}s=0;do{if(+g[l+(s*36|0)+32>>2]+(r*+g[l+(s*36|0)+20>>2]+q*+g[l+(s*36|0)+24>>2]+p*+g[l+(s*36|0)+28>>2])>0.0){k=0;t=16;break a}s=s+1|0}while((s|0)<(j|0));a=a+1|0;if((a|0)>=8){k=1;t=16;break}else{m=r;n=q;o=p}}if((t|0)==16)return k|0;return 0}function yr(a,b,d,e,f,h,j){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;j=j|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0.0,K=0.0,L=0.0,M=0.0,N=0.0,O=0.0,P=0.0,Q=0;l=i;i=i+16|0;m=l;g[e>>2]=3402823466385288598117041.0e14;g[f>>2]=-3402823466385288598117041.0e14;n=c[a+8>>2]|0;if((n|0)>0){o=a+16|0;a=b+4|0;p=b+8|0;q=b+16|0;r=b+20|0;s=b+24|0;t=b+32|0;u=b+36|0;v=b+40|0;w=b+48|0;x=b+52|0;y=b+56|0;z=d+4|0;A=d+8|0;B=h+4|0;C=h+8|0;D=h+12|0;E=j+4|0;F=j+8|0;G=j+12|0;H=0;do{I=c[o>>2]|0;J=+g[I+(H<<4)>>2];K=+g[I+(H<<4)+4>>2];L=+g[I+(H<<4)+8>>2];M=J*+g[b>>2]+K*+g[a>>2]+L*+g[p>>2]+ +g[w>>2];N=J*+g[q>>2]+K*+g[r>>2]+L*+g[s>>2]+ +g[x>>2];O=J*+g[t>>2]+K*+g[u>>2]+L*+g[v>>2]+ +g[y>>2];L=M*+g[d>>2]+N*+g[z>>2]+O*+g[A>>2];if(L<+g[e>>2]){g[e>>2]=L;g[h>>2]=M;g[B>>2]=N;g[C>>2]=O;g[D>>2]=0.0}if(L>+g[f>>2]){g[f>>2]=L;g[j>>2]=M;g[E>>2]=N;g[F>>2]=O;g[G>>2]=0.0}H=H+1|0}while((H|0)!=(n|0));O=+g[f>>2];P=O;Q=(g[k>>2]=O,c[k>>2]|0);}else{P=-3402823466385288598117041.0e14;Q=-8388609}O=+g[e>>2];if(!(O>P)){i=l;return}c[e>>2]=Q;g[f>>2]=O;c[m>>2]=c[h>>2];c[m+4>>2]=c[h+4>>2];c[m+8>>2]=c[h+8>>2];c[m+12>>2]=c[h+12>>2];c[h>>2]=c[j>>2];c[h+4>>2]=c[j+4>>2];c[h+8>>2]=c[j+8>>2];c[h+12>>2]=c[j+12>>2];c[j>>2]=c[m>>2];c[j+4>>2]=c[m+4>>2];c[j+8>>2]=c[m+8>>2];c[j+12>>2]=c[m+12>>2];i=l;return}function zr(a,b,f,j){a=a|0;b=b|0;f=f|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0.0,u=0.0,v=0.0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0.0,R=0.0,S=0,T=0,U=0,V=0,W=0;j=i;i=i+80|0;f=j+76|0;k=j+72|0;l=j+68|0;m=j+64|0;n=j+60|0;o=j+56|0;p=j+52|0;q=j+48|0;r=j;s=Ob[c[(c[a>>2]|0)+28>>2]&127](a)|0;t=+g[a+4>>2];u=+g[a+8>>2];v=+g[a+12>>2];if((s|0)<=0){i=j;return}w=r+4|0;x=r+8|0;y=r+12|0;z=r+16|0;A=r+20|0;B=r+24|0;C=r+28|0;D=r+32|0;E=r+36|0;F=r+40|0;G=r+44|0;H=0;do{dc[c[(c[a>>2]|0)+16>>2]&3](a,f,p,m,o,k,l,q,n,H);I=c[m>>2]|0;do if(!I){J=c[n>>2]|0;if((J|0)==5){if((c[q>>2]|0)>0)K=0;else break;do{L=c[k>>2]|0;M=$(c[l>>2]|0,K)|0;N=c[f>>2]|0;O=c[o>>2]|0;P=$(d[L+M>>0]|0,O)|0;Q=u*+g[N+(P+4)>>2];R=v*+g[N+(P+8)>>2];g[r>>2]=t*+g[N+P>>2];g[w>>2]=Q;g[x>>2]=R;g[y>>2]=0.0;P=$(d[L+(M+1)>>0]|0,O)|0;R=u*+g[N+(P+4)>>2];Q=v*+g[N+(P+8)>>2];g[z>>2]=t*+g[N+P>>2];g[A>>2]=R;g[B>>2]=Q;g[C>>2]=0.0;P=$(d[L+(M+2)>>0]|0,O)|0;Q=u*+g[N+(P+4)>>2];R=v*+g[N+(P+8)>>2];g[D>>2]=t*+g[N+P>>2];g[E>>2]=Q;g[F>>2]=R;g[G>>2]=0.0;tc[c[(c[b>>2]|0)+8>>2]&63](b,r,H,K);K=K+1|0}while((K|0)<(c[q>>2]|0));}else if((J|0)==3){if((c[q>>2]|0)>0)S=0;else break;do{P=c[k>>2]|0;N=$(c[l>>2]|0,S)|0;O=c[f>>2]|0;M=c[o>>2]|0;L=$(e[P+N>>1]|0,M)|0;R=u*+g[O+(L+4)>>2];Q=v*+g[O+(L+8)>>2];g[r>>2]=t*+g[O+L>>2];g[w>>2]=R;g[x>>2]=Q;g[y>>2]=0.0;L=$(e[P+(N+2)>>1]|0,M)|0;Q=u*+g[O+(L+4)>>2];R=v*+g[O+(L+8)>>2];g[z>>2]=t*+g[O+L>>2];g[A>>2]=Q;g[B>>2]=R;g[C>>2]=0.0;L=$(e[P+(N+4)>>1]|0,M)|0;R=u*+g[O+(L+4)>>2];Q=v*+g[O+(L+8)>>2];g[D>>2]=t*+g[O+L>>2];g[E>>2]=R;g[F>>2]=Q;g[G>>2]=0.0;tc[c[(c[b>>2]|0)+8>>2]&63](b,r,H,S);S=S+1|0}while((S|0)<(c[q>>2]|0));}else if((J|0)==2){if((c[q>>2]|0)>0)T=0;else break;do{L=c[k>>2]|0;O=$(c[l>>2]|0,T)|0;M=c[f>>2]|0;N=c[o>>2]|0;P=$(N,c[L+O>>2]|0)|0;Q=u*+g[M+(P+4)>>2];R=v*+g[M+(P+8)>>2];g[r>>2]=t*+g[M+P>>2];g[w>>2]=Q;g[x>>2]=R;g[y>>2]=0.0;P=$(N,c[L+(O+4)>>2]|0)|0;R=u*+g[M+(P+4)>>2];Q=v*+g[M+(P+8)>>2];g[z>>2]=t*+g[M+P>>2];g[A>>2]=R;g[B>>2]=Q;g[C>>2]=0.0;P=$(N,c[L+(O+8)>>2]|0)|0;Q=u*+g[M+(P+4)>>2];R=v*+g[M+(P+8)>>2];g[D>>2]=t*+g[M+P>>2];g[E>>2]=Q;g[F>>2]=R;g[G>>2]=0.0;tc[c[(c[b>>2]|0)+8>>2]&63](b,r,H,T);T=T+1|0}while((T|0)<(c[q>>2]|0));}else break}else if((I|0)==1){J=c[n>>2]|0;if((J|0)==2){if((c[q>>2]|0)>0)U=0;else break;do{P=c[k>>2]|0;M=$(c[l>>2]|0,U)|0;O=c[f>>2]|0;L=c[o>>2]|0;N=$(L,c[P+M>>2]|0)|0;R=u*+h[O+(N+8)>>3];Q=v*+h[O+(N+16)>>3];g[r>>2]=t*+h[O+N>>3];g[w>>2]=R;g[x>>2]=Q;g[y>>2]=0.0;N=$(L,c[P+(M+4)>>2]|0)|0;Q=u*+h[O+(N+8)>>3];R=v*+h[O+(N+16)>>3];g[z>>2]=t*+h[O+N>>3];g[A>>2]=Q;g[B>>2]=R;g[C>>2]=0.0;N=$(L,c[P+(M+8)>>2]|0)|0;R=u*+h[O+(N+8)>>3];Q=v*+h[O+(N+16)>>3];g[D>>2]=t*+h[O+N>>3];g[E>>2]=R;g[F>>2]=Q;g[G>>2]=0.0;tc[c[(c[b>>2]|0)+8>>2]&63](b,r,H,U);U=U+1|0}while((U|0)<(c[q>>2]|0));}else if((J|0)==5){if((c[q>>2]|0)>0)V=0;else break;do{N=c[k>>2]|0;O=$(c[l>>2]|0,V)|0;M=c[f>>2]|0;P=c[o>>2]|0;L=$(d[N+O>>0]|0,P)|0;Q=u*+h[M+(L+8)>>3];R=v*+h[M+(L+16)>>3];g[r>>2]=t*+h[M+L>>3];g[w>>2]=Q;g[x>>2]=R;g[y>>2]=0.0;L=$(d[N+(O+1)>>0]|0,P)|0;R=u*+h[M+(L+8)>>3];Q=v*+h[M+(L+16)>>3];g[z>>2]=t*+h[M+L>>3];g[A>>2]=R;g[B>>2]=Q;g[C>>2]=0.0;L=$(d[N+(O+2)>>0]|0,P)|0;Q=u*+h[M+(L+8)>>3];R=v*+h[M+(L+16)>>3];g[D>>2]=t*+h[M+L>>3];g[E>>2]=Q;g[F>>2]=R;g[G>>2]=0.0;tc[c[(c[b>>2]|0)+8>>2]&63](b,r,H,V);V=V+1|0}while((V|0)<(c[q>>2]|0));}else if((J|0)==3){if((c[q>>2]|0)>0)W=0;else break;do{L=c[k>>2]|0;M=$(c[l>>2]|0,W)|0;P=c[f>>2]|0;O=c[o>>2]|0;N=$(e[L+M>>1]|0,O)|0;R=u*+h[P+(N+8)>>3];Q=v*+h[P+(N+16)>>3];g[r>>2]=t*+h[P+N>>3];g[w>>2]=R;g[x>>2]=Q;g[y>>2]=0.0;N=$(e[L+(M+2)>>1]|0,O)|0;Q=u*+h[P+(N+8)>>3];R=v*+h[P+(N+16)>>3];g[z>>2]=t*+h[P+N>>3];g[A>>2]=Q;g[B>>2]=R;g[C>>2]=0.0;N=$(e[L+(M+4)>>1]|0,O)|0;R=u*+h[P+(N+8)>>3];Q=v*+h[P+(N+16)>>3];g[D>>2]=t*+h[P+N>>3];g[E>>2]=R;g[F>>2]=Q;g[G>>2]=0.0;tc[c[(c[b>>2]|0)+8>>2]&63](b,r,H,W);W=W+1|0}while((W|0)<(c[q>>2]|0));}else break}while(0);Mb[c[(c[a>>2]|0)+24>>2]&127](a,H);H=H+1|0}while((H|0)!=(s|0));i=j;return}function Ar(d,e,f){d=d|0;e=e|0;f=f|0;var g=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0;g=i;i=i+32|0;j=g+28|0;k=g+24|0;l=g+20|0;m=g+16|0;n=g+12|0;o=g+8|0;p=g+4|0;q=g;r=Ob[c[(c[d>>2]|0)+28>>2]&127](d)|0;c[e+20>>2]=r;c[e>>2]=0;if(!r){s=d+4|0;t=e+4|0;u=c[s>>2]|0;c[t>>2]=u;v=d+8|0;w=c[v>>2]|0;x=e+8|0;c[x>>2]=w;y=d+12|0;z=c[y>>2]|0;A=e+12|0;c[A>>2]=z;B=d+16|0;C=c[B>>2]|0;D=e+16|0;c[D>>2]=C;i=g;return 14744}E=Wb[c[(c[f>>2]|0)+16>>2]&31](f,32,r)|0;r=E+8|0;F=c[r>>2]|0;c[e>>2]=ec[c[(c[f>>2]|0)+28>>2]&31](f,F)|0;G=Ob[c[(c[d>>2]|0)+28>>2]&127](d)|0;if((G|0)>0){H=F;F=0;while(1){dc[c[(c[d>>2]|0)+16>>2]&3](d,j,p,m,o,k,l,q,n,F);c[H+24>>2]=c[q>>2];c[H+28>>2]=c[p>>2];I=H+8|0;J=H+12|0;K=H+16|0;L=H+4|0;c[H>>2]=0;c[H+4>>2]=0;c[H+8>>2]=0;c[H+12>>2]=0;c[H+16>>2]=0;c[H+20>>2]=0;M=c[n>>2]|0;if((M|0)==3){N=c[q>>2]|0;if(N){O=Wb[c[(c[f>>2]|0)+16>>2]&31](f,8,N)|0;N=O+8|0;P=c[N>>2]|0;c[J>>2]=ec[c[(c[f>>2]|0)+28>>2]&31](f,P)|0;J=c[q>>2]|0;if((J|0)>0){Q=c[k>>2]|0;R=c[l>>2]|0;S=0;do{T=$(R,S)|0;b[P+(S<<3)>>1]=b[Q+T>>1]|0;b[P+(S<<3)+2>>1]=b[Q+(T+2)>>1]|0;b[P+(S<<3)+4>>1]=b[Q+(T+4)>>1]|0;S=S+1|0}while((S|0)!=(J|0));}Ib[c[(c[f>>2]|0)+20>>2]&31](f,O,14624,1497453121,c[N>>2]|0);}}else if((M|0)==2){J=c[q>>2]|0;if(J){S=Wb[c[(c[f>>2]|0)+16>>2]&31](f,4,J*3|0)|0;J=S+8|0;Q=c[J>>2]|0;c[I>>2]=ec[c[(c[f>>2]|0)+28>>2]&31](f,Q)|0;if((c[q>>2]|0)>0){P=c[k>>2]|0;R=0;do{T=$(c[l>>2]|0,R)|0;U=R*3|0;c[Q+(U<<2)>>2]=c[P+T>>2];c[Q+(U+1<<2)>>2]=c[P+(T+4)>>2];c[Q+(U+2<<2)>>2]=c[P+(T+8)>>2];R=R+1|0}while((R|0)<(c[q>>2]|0));}Ib[c[(c[f>>2]|0)+20>>2]&31](f,S,14608,1497453121,c[J>>2]|0);}}else if((M|0)==5?(R=c[q>>2]|0,(R|0)!=0):0){P=Wb[c[(c[f>>2]|0)+16>>2]&31](f,4,R)|0;R=P+8|0;Q=c[R>>2]|0;c[K>>2]=ec[c[(c[f>>2]|0)+28>>2]&31](f,Q)|0;if((c[q>>2]|0)>0){I=0;do{N=c[k>>2]|0;O=$(c[l>>2]|0,I)|0;a[Q+(I<<2)>>0]=a[N+O>>0]|0;a[Q+(I<<2)+1>>0]=a[N+(O+1)>>0]|0;a[Q+(I<<2)+2>>0]=a[N+(O+2)>>0]|0;I=I+1|0}while((I|0)<(c[q>>2]|0));}Ib[c[(c[f>>2]|0)+20>>2]&31](f,P,14656,1497453121,c[R>>2]|0);}I=c[m>>2]|0;if(!I){Q=c[p>>2]|0;if(Q){K=Wb[c[(c[f>>2]|0)+16>>2]&31](f,16,Q)|0;Q=K+8|0;M=c[Q>>2]|0;c[H>>2]=ec[c[(c[f>>2]|0)+28>>2]&31](f,M)|0;J=c[p>>2]|0;if((J|0)>0){S=c[j>>2]|0;O=c[o>>2]|0;N=0;do{T=$(O,N)|0;c[M+(N<<4)>>2]=c[S+T>>2];c[M+(N<<4)+4>>2]=c[S+(T+4)>>2];c[M+(N<<4)+8>>2]=c[S+(T+8)>>2];N=N+1|0}while((N|0)!=(J|0));}Ib[c[(c[f>>2]|0)+20>>2]&31](f,K,14680,1497453121,c[Q>>2]|0);}}else if((I|0)==1?(J=c[p>>2]|0,(J|0)!=0):0){N=Wb[c[(c[f>>2]|0)+16>>2]&31](f,32,J)|0;J=N+8|0;S=c[J>>2]|0;c[L>>2]=ec[c[(c[f>>2]|0)+28>>2]&31](f,S)|0;M=c[p>>2]|0;if((M|0)>0){O=c[j>>2]|0;R=c[o>>2]|0;P=0;do{T=$(R,P)|0;h[S+(P<<5)>>3]=+h[O+T>>3];h[S+(P<<5)+8>>3]=+h[O+(T+8)>>3];h[S+(P<<5)+16>>3]=+h[O+(T+16)>>3];P=P+1|0}while((P|0)!=(M|0));}Ib[c[(c[f>>2]|0)+20>>2]&31](f,N,14704,1497453121,c[J>>2]|0);}Mb[c[(c[d>>2]|0)+24>>2]&127](d,F);F=F+1|0;if((F|0)==(G|0)){V=f;break}else H=H+32|0}}else V=f;Ib[c[(c[V>>2]|0)+20>>2]&31](f,E,14728,1497453121,c[r>>2]|0);s=d+4|0;t=e+4|0;u=c[s>>2]|0;c[t>>2]=u;v=d+8|0;w=c[v>>2]|0;x=e+8|0;c[x>>2]=w;y=d+12|0;z=c[y>>2]|0;A=e+12|0;c[A>>2]=z;B=d+16|0;C=c[B>>2]|0;D=e+16|0;c[D>>2]=C;i=g;return 14744}function Br(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,h=0,j=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.0,x=0.0,y=0.0,z=0.0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0.0,ha=0.0,ia=0,ja=0,ka=0,la=0,ma=0,na=0.0,oa=0.0,pa=0.0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0.0,Aa=0.0,Ba=0.0,Ca=0.0,Da=0.0,Ea=0.0,Fa=0,Ga=0.0,Ha=0.0,Ia=0.0,Ja=0.0,Ka=0.0,La=0.0,Ma=0,Na=0.0,Oa=0.0,Pa=0.0,Qa=0,Ra=0,Sa=0.0,Ta=0.0,Ua=0.0,Va=0,Wa=0;e=i;i=i+176|0;f=e+152|0;h=e+104|0;j=e+92|0;l=e+88|0;m=e+24|0;n=e+8|0;o=e;c[a+348>>2]=a+220;c[a+352>>2]=a+252;c[a+356>>2]=a+284;p=a+316|0;c[a+360>>2]=p;q=a+364|0;c[q>>2]=4;r=a+368|0;c[r>>2]=0;s=a+376|0;c[s>>2]=0;t=b;u=c[t+4>>2]|0;v=a;c[v>>2]=c[t>>2];c[v+4>>2]=u;u=a+8|0;v=b+8|0;c[u>>2]=c[v>>2];c[u+4>>2]=c[v+4>>2];c[u+8>>2]=c[v+8>>2];c[u+12>>2]=c[v+12>>2];v=a+24|0;u=b+24|0;c[v>>2]=c[u>>2];c[v+4>>2]=c[u+4>>2];c[v+8>>2]=c[u+8>>2];c[v+12>>2]=c[u+12>>2];u=a+40|0;v=b+40|0;c[u>>2]=c[v>>2];c[u+4>>2]=c[v+4>>2];c[u+8>>2]=c[v+8>>2];c[u+12>>2]=c[v+12>>2];v=a+56|0;u=b+56|0;c[v>>2]=c[u>>2];c[v+4>>2]=c[u+4>>2];c[v+8>>2]=c[u+8>>2];c[v+12>>2]=c[u+12>>2];u=a+72|0;v=b+72|0;c[u>>2]=c[v>>2];c[u+4>>2]=c[v+4>>2];c[u+8>>2]=c[v+8>>2];c[u+12>>2]=c[v+12>>2];v=a+88|0;u=b+88|0;c[v>>2]=c[u>>2];c[v+4>>2]=c[u+4>>2];c[v+8>>2]=c[u+8>>2];c[v+12>>2]=c[u+12>>2];u=a+104|0;v=b+104|0;c[u>>2]=c[v>>2];c[u+4>>2]=c[v+4>>2];c[u+8>>2]=c[v+8>>2];c[u+12>>2]=c[v+12>>2];v=b+120|0;b=c[v+4>>2]|0;u=a+120|0;c[u>>2]=c[v>>2];c[u+4>>2]=b;b=a+144|0;g[b>>2]=0.0;u=a+180|0;c[u>>2]=0;v=a+128|0;c[v>>2]=c[d>>2];c[v+4>>2]=c[d+4>>2];c[v+8>>2]=c[d+8>>2];c[v+12>>2]=c[d+12>>2];w=+g[v>>2];d=a+132|0;x=+g[d>>2];t=a+136|0;y=+g[t>>2];z=w*w+x*x+y*y;if(z>0.0){A=(g[k>>2]=-w,c[k>>2]|0);B=(g[k>>2]=-x,c[k>>2]|0);C=A;D=B;E=(g[k>>2]=-y,c[k>>2]|0);}else{C=1065353216;D=0;E=0}B=a+164|0;g[B>>2]=0.0;c[q>>2]=3;A=a+148|0;c[A>>2]=p;c[u>>2]=1;y=(c[k>>2]=C,+g[k>>2]);x=(c[k>>2]=D,+g[k>>2]);Er(a,y,x,(c[k>>2]=E,+g[k>>2]),p);g[B>>2]=1.0;B=(c[A>>2]|0)+16|0;c[v>>2]=c[B>>2];c[v+4>>2]=c[B+4>>2];c[v+8>>2]=c[B+8>>2];c[v+12>>2]=c[B+12>>2];A=m+16|0;p=m+32|0;E=m+48|0;c[E>>2]=c[B>>2];c[E+4>>2]=c[B+4>>2];c[E+8>>2]=c[B+8>>2];c[E+12>>2]=c[B+12>>2];c[p>>2]=c[B>>2];c[p+4>>2]=c[B+4>>2];c[p+8>>2]=c[B+8>>2];c[p+12>>2]=c[B+12>>2];c[A>>2]=c[B>>2];c[A+4>>2]=c[B+4>>2];c[A+8>>2]=c[B+8>>2];c[A+12>>2]=c[B+12>>2];c[m>>2]=c[B>>2];c[m+4>>2]=c[B+4>>2];c[m+8>>2]=c[B+8>>2];c[m+12>>2]=c[B+12>>2];B=n+4|0;A=m+4|0;p=m+8|0;E=m+16|0;D=m+20|0;C=m+24|0;u=m+32|0;F=m+36|0;G=m+40|0;H=m+48|0;I=m+52|0;J=m+56|0;K=f+4|0;L=f+8|0;M=f+12|0;N=h+4|0;O=h+8|0;Q=h+12|0;R=h+16|0;S=h+20|0;T=h+24|0;U=h+28|0;V=h+32|0;W=h+36|0;X=h+40|0;Y=h+44|0;Z=j+4|0;_=j+8|0;$=n+12|0;aa=n+8|0;x=0.0;ba=0;ca=0;y=z;a:while(1){da=c[r>>2]|0;ea=1-da|0;fa=a+148+(da*36|0)|0;z=+g[v>>2];w=+g[d>>2];ga=+g[t>>2];ha=+P(+(z*z+w*w+ga*ga));if(ha<9.999999747378752e-05){ia=5;break}ja=a+148+(da*36|0)+32|0;g[a+148+(da*36|0)+16+(c[ja>>2]<<2)>>2]=0.0;ka=(c[q>>2]|0)+-1|0;c[q>>2]=ka;c[a+148+(da*36|0)+(c[ja>>2]<<2)>>2]=c[a+348+(ka<<2)>>2];ka=c[ja>>2]|0;c[ja>>2]=ka+1;Er(a,-z,-w,-ga,c[a+148+(da*36|0)+(ka<<2)>>2]|0);ka=c[ja>>2]|0;la=c[a+148+(da*36|0)+(ka+-1<<2)>>2]|0;ma=la+16|0;ga=+g[ma>>2];w=+g[la+20>>2];z=+g[la+24>>2];na=ga-+g[m>>2];oa=w-+g[A>>2];pa=z-+g[p>>2];if(na*na+oa*oa+pa*pa<9.999999747378752e-05){ia=8;break}pa=ga-+g[E>>2];oa=w-+g[D>>2];na=z-+g[C>>2];if(pa*pa+oa*oa+na*na<9.999999747378752e-05){ia=8;break}na=ga-+g[u>>2];oa=w-+g[F>>2];pa=z-+g[G>>2];if(na*na+oa*oa+pa*pa<9.999999747378752e-05){ia=8;break}pa=ga-+g[H>>2];oa=w-+g[I>>2];na=z-+g[J>>2];if(pa*pa+oa*oa+na*na<9.999999747378752e-05){ia=8;break}ba=ba+1&3;la=m+(ba<<4)|0;c[la>>2]=c[ma>>2];c[la+4>>2]=c[ma+4>>2];c[la+8>>2]=c[ma+8>>2];c[la+12>>2]=c[ma+12>>2];na=(+g[v>>2]*ga+ +g[d>>2]*w+ +g[t>>2]*z)/ha;x=na>x?na:x;if(ha-x-ha*9.999999747378752e-05<=0.0){ia=9;break}c[o>>2]=0;do if((ka|0)==4){ma=c[fa>>2]|0;la=ma+16|0;qa=c[a+148+(da*36|0)+4>>2]|0;ra=qa+16|0;sa=c[a+148+(da*36|0)+8>>2]|0;ta=sa+16|0;ua=c[a+148+(da*36|0)+12>>2]|0;va=ua+16|0;c[f>>2]=la;c[K>>2]=ra;c[L>>2]=ta;c[M>>2]=va;ha=+g[la>>2];na=+g[va>>2];z=ha-na;wa=ma+20|0;w=+g[wa>>2];xa=ua+20|0;ga=+g[xa>>2];oa=w-ga;ya=ma+24|0;pa=+g[ya>>2];ma=ua+24|0;za=+g[ma>>2];Aa=pa-za;g[h>>2]=z;g[N>>2]=oa;g[O>>2]=Aa;g[Q>>2]=0.0;Ba=+g[ra>>2];Ca=Ba-na;ua=qa+20|0;Da=+g[ua>>2];Ea=Da-ga;Fa=qa+24|0;Ga=+g[Fa>>2];Ha=Ga-za;g[R>>2]=Ca;g[S>>2]=Ea;g[T>>2]=Ha;g[U>>2]=0.0;Ia=+g[ta>>2];Ja=Ia-na;qa=sa+20|0;Ka=+g[qa>>2];La=Ka-ga;Ma=sa+24|0;Na=+g[Ma>>2];Oa=Na-za;g[V>>2]=Ja;g[W>>2]=La;g[X>>2]=Oa;g[Y>>2]=0.0;Pa=oa*Ha*Ja+Aa*Ca*La-La*(Ha*z)-oa*Ca*Oa+Oa*(z*Ea)-Ja*(Aa*Ea);Ea=Ba-Ia;Ia=Da-Ka;Ka=Ga-Na;Na=ha-Ba;Ba=w-Da;Da=pa-Ga;if(!(Pa!=Pa|0.0!=0.0|Pa==0.0|!(Pa*(pa*(Ea*Ba-Ia*Na)+(ha*(Ia*Da-Ka*Ba)+w*(Ka*Na-Ea*Da)))<=0.0))){c[j>>2]=0;c[j+4>>2]=0;c[j+8>>2]=0;c[l>>2]=0;Da=oa;oa=Aa;Aa=z;z=na;na=ga;ga=za;sa=0;za=-1.0;while(1){Qa=c[14792+(sa<<2)>>2]|0;Ea=+g[h+(Qa<<4)+8>>2];Na=+g[h+(Qa<<4)+4>>2];Ka=+g[h+(Qa<<4)>>2];if(Pa*((Da*Ea-oa*Na)*z+na*(oa*Ka-Ea*Aa)+(Na*Aa-Da*Ka)*ga)>0.0?(Ka=+Hr(c[f+(sa<<2)>>2]|0,c[f+(Qa<<2)>>2]|0,va,j,l),za<0.0|Ka<za):0){Ra=c[l>>2]|0;c[o>>2]=((Ra&2|0)!=0?1<<Qa:0)+(Ra<<1&8)+((Ra&1|0)!=0?1<<sa:0);c[n+(sa<<2)>>2]=c[j>>2];c[n+(Qa<<2)>>2]=c[Z>>2];g[n+(c[14792+(Qa<<2)>>2]<<2)>>2]=0.0;c[$>>2]=c[_>>2];Sa=Ka}else Sa=za;Qa=sa+1|0;if((Qa|0)==3)break;Da=+g[h+(Qa<<4)+4>>2];oa=+g[h+(Qa<<4)+8>>2];Aa=+g[h+(Qa<<4)>>2];z=+g[va>>2];na=+g[xa>>2];ga=+g[ma>>2];sa=Qa;za=Sa}if(Sa<0.0){c[o>>2]=15;za=+g[qa>>2];ga=+g[Fa>>2];na=+g[va>>2];z=+g[Ma>>2];Aa=+g[ra>>2];oa=+g[xa>>2];Da=+g[ta>>2];Ka=+g[ma>>2];Na=+g[ua>>2];Ea=(za*ga*na+z*Aa*oa-oa*(ga*Da)-za*Aa*Ka+Ka*(Da*Na)-na*(z*Na))/Pa;g[n>>2]=Ea;w=+g[wa>>2];Ba=+g[ya>>2];Ia=+g[la>>2];ha=(w*z*na+Ba*Da*oa-oa*(z*Ia)-w*Da*Ka+Ka*(Ia*za)-na*(Ba*za))/Pa;g[B>>2]=ha;za=(Na*Ba*na+ga*Ia*oa-oa*(Ba*Aa)-Na*Ia*Ka+Ka*(Aa*w)-na*(ga*w))/Pa;g[aa>>2]=za;g[$>>2]=1.0-(za+(Ea+ha));Ta=0.0}else Ta=Sa}else Ta=-1.0;Ua=Ta}else if((ka|0)==3)Ua=+Hr((c[fa>>2]|0)+16|0,(c[a+148+(da*36|0)+4>>2]|0)+16|0,(c[a+148+(da*36|0)+8>>2]|0)+16|0,n,o);else if((ka|0)==2){sa=c[fa>>2]|0;Qa=c[a+148+(da*36|0)+4>>2]|0;ha=+g[Qa+16>>2];Ea=+g[sa+16>>2];za=ha-Ea;w=+g[Qa+20>>2];ga=+g[sa+20>>2];na=w-ga;Aa=+g[Qa+24>>2];Ka=+g[sa+24>>2];Ia=Aa-Ka;Na=za*za+na*na+Ia*Ia;if(!(Na>0.0)){ia=36;break a}Ba=-(Ea*za+ga*na+Ka*Ia)/Na;if(Ba>=1.0){g[n>>2]=0.0;g[B>>2]=1.0;c[o>>2]=2;Ua=ha*ha+w*w+Aa*Aa;break}if(!(Ba<=0.0)){g[B>>2]=Ba;g[n>>2]=1.0-Ba;c[o>>2]=3;Aa=za*Ba+Ea;za=na*Ba+ga;na=Ia*Ba+Ka;Ua=Aa*Aa+za*za+na*na;break}else{g[n>>2]=1.0;g[B>>2]=0.0;c[o>>2]=1;Ua=Ea*Ea+ga*ga+Ka*Ka;break}}else Ua=y;while(0);if(!(Ua>=0.0)){ia=36;break}fa=a+148+(ea*36|0)+32|0;c[fa>>2]=0;c[v>>2]=0;c[v+4>>2]=0;c[v+8>>2]=0;c[v+12>>2]=0;c[r>>2]=ea;ka=c[ja>>2]|0;sa=c[o>>2]|0;if(ka){Qa=0;do{Ra=a+148+(da*36|0)+(Qa<<2)|0;Va=c[Ra>>2]|0;if(!(sa&1<<Qa)){Wa=c[q>>2]|0;c[q>>2]=Wa+1;c[a+348+(Wa<<2)>>2]=Va}else{c[a+148+(ea*36|0)+(c[fa>>2]<<2)>>2]=Va;Va=c[n+(Qa<<2)>>2]|0;Wa=c[fa>>2]|0;c[fa>>2]=Wa+1;c[a+148+(ea*36|0)+16+(Wa<<2)>>2]=Va;Wa=c[Ra>>2]|0;Ka=(c[k>>2]=Va,+g[k>>2]);ga=Ka*+g[Wa+20>>2];Ea=Ka*+g[Wa+24>>2];g[v>>2]=+g[Wa+16>>2]*Ka+ +g[v>>2];g[d>>2]=ga+ +g[d>>2];g[t>>2]=Ea+ +g[t>>2]}Qa=Qa+1|0}while((Qa|0)!=(ka|0));}if((sa|0)==15)c[s>>2]=1;ca=ca+1|0;if(ca>>>0>=128){ia=38;break}if(c[s>>2]|0)break;else y=Ua}if((ia|0)==5)c[s>>2]=1;else if((ia|0)==8){ca=c[r>>2]|0;n=a+148+(ca*36|0)+32|0;o=(c[n>>2]|0)+-1|0;c[n>>2]=o;n=c[a+148+(ca*36|0)+(o<<2)>>2]|0;o=c[q>>2]|0;c[q>>2]=o+1;c[a+348+(o<<2)>>2]=n}else if((ia|0)==9){n=c[r>>2]|0;o=a+148+(n*36|0)+32|0;ca=(c[o>>2]|0)+-1|0;c[o>>2]=ca;o=c[a+148+(n*36|0)+(ca<<2)>>2]|0;ca=c[q>>2]|0;c[q>>2]=ca+1;c[a+348+(ca<<2)>>2]=o}else if((ia|0)==36){o=c[r>>2]|0;ca=a+148+(o*36|0)+32|0;n=(c[ca>>2]|0)+-1|0;c[ca>>2]=n;ca=c[a+148+(o*36|0)+(n<<2)>>2]|0;n=c[q>>2]|0;c[q>>2]=n+1;c[a+348+(n<<2)>>2]=ca}else if((ia|0)==38)c[s>>2]=2;c[a+372>>2]=a+148+((c[r>>2]|0)*36|0);r=c[s>>2]|0;if((r|0)==1){g[b>>2]=0.0;i=e;return r|0}else if(!r){Ua=+g[v>>2];y=+g[d>>2];Ta=+g[t>>2];g[b>>2]=+P(+(Ua*Ua+y*y+Ta*Ta));i=e;return r|0}else{i=e;return r|0}return 0}function Cr(a){a=a|0;var b=0,d=0,e=0,f=0,h=0,j=0,k=0,l=0,m=0,n=0.0,o=0.0,p=0.0,q=0.0,r=0.0,s=0.0,t=0.0,u=0.0,v=0,w=0,x=0,y=0.0,z=0.0,A=0,B=0,C=0,D=0,E=0,F=0;b=i;i=i+32|0;d=b+16|0;e=b;f=a+372|0;h=c[f>>2]|0;j=h+32|0;k=c[j>>2]|0;a:do if((k|0)==3){l=c[h+4>>2]|0;m=c[h>>2]|0;n=+g[m+16>>2];o=+g[l+16>>2]-n;p=+g[m+20>>2];q=+g[l+20>>2]-p;r=+g[m+24>>2];s=+g[l+24>>2]-r;l=c[h+8>>2]|0;t=+g[l+16>>2]-n;n=+g[l+20>>2]-p;p=+g[l+24>>2]-r;r=q*p-s*n;u=s*t-o*p;p=o*n-q*t;if(r*r+u*u+p*p>0.0){g[h+28>>2]=0.0;l=a+364|0;m=(c[l>>2]|0)+-1|0;c[l>>2]=m;c[h+12>>2]=c[a+348+(m<<2)>>2];m=c[j>>2]|0;c[j>>2]=m+1;Er(a,r,u,p,c[h+(m<<2)>>2]|0);if(Cr(a)|0){v=1;i=b;return v|0}m=c[f>>2]|0;w=m+32|0;x=(c[w>>2]|0)+-1|0;c[w>>2]=x;w=c[m+(x<<2)>>2]|0;x=c[l>>2]|0;c[l>>2]=x+1;c[a+348+(x<<2)>>2]=w;w=c[f>>2]|0;x=w+32|0;g[w+16+(c[x>>2]<<2)>>2]=0.0;m=(c[l>>2]|0)+-1|0;c[l>>2]=m;c[w+(c[x>>2]<<2)>>2]=c[a+348+(m<<2)>>2];m=c[x>>2]|0;c[x>>2]=m+1;Er(a,-r,-u,-p,c[w+(m<<2)>>2]|0);if(Cr(a)|0){v=1;i=b;return v|0}else{m=c[f>>2]|0;w=m+32|0;x=(c[w>>2]|0)+-1|0;c[w>>2]=x;w=c[m+(x<<2)>>2]|0;x=c[l>>2]|0;c[l>>2]=x+1;c[a+348+(x<<2)>>2]=w;break}}}else if((k|0)==4){w=c[h>>2]|0;x=c[h+12>>2]|0;p=+g[x+16>>2];u=+g[w+16>>2]-p;r=+g[x+20>>2];t=+g[w+20>>2]-r;q=+g[x+24>>2];n=+g[w+24>>2]-q;w=c[h+4>>2]|0;o=+g[w+16>>2]-p;s=+g[w+20>>2]-r;y=+g[w+24>>2]-q;w=c[h+8>>2]|0;z=+g[w+16>>2]-p;p=+g[w+20>>2]-r;r=+g[w+24>>2]-q;q=u*s*r+(t*y*z+n*o*p-u*y*p-t*o*r)-n*s*z;if(!(q!=q|0.0!=0.0|q==0.0)){v=1;i=b;return v|0}}else if((k|0)==2){w=c[h+4>>2]|0;x=c[h>>2]|0;q=+g[w+16>>2]-+g[x+16>>2];z=+g[w+20>>2]-+g[x+20>>2];s=+g[w+24>>2]-+g[x+24>>2];x=e+4|0;w=e+8|0;l=a+364|0;m=0;while(1){c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;c[e+12>>2]=0;g[e+(m<<2)>>2]=1.0;n=+g[w>>2];r=+g[x>>2];o=z*n-s*r;t=+g[e>>2];p=s*t-q*n;n=q*r-z*t;if(o*o+p*p+n*n>0.0){A=c[f>>2]|0;B=A+32|0;g[A+16+(c[B>>2]<<2)>>2]=0.0;C=(c[l>>2]|0)+-1|0;c[l>>2]=C;c[A+(c[B>>2]<<2)>>2]=c[a+348+(C<<2)>>2];C=c[B>>2]|0;c[B>>2]=C+1;Er(a,o,p,n,c[A+(C<<2)>>2]|0);if(Cr(a)|0){v=1;D=19;break}C=c[f>>2]|0;A=C+32|0;B=(c[A>>2]|0)+-1|0;c[A>>2]=B;A=c[C+(B<<2)>>2]|0;B=c[l>>2]|0;c[l>>2]=B+1;c[a+348+(B<<2)>>2]=A;A=c[f>>2]|0;B=A+32|0;g[A+16+(c[B>>2]<<2)>>2]=0.0;C=(c[l>>2]|0)+-1|0;c[l>>2]=C;c[A+(c[B>>2]<<2)>>2]=c[a+348+(C<<2)>>2];C=c[B>>2]|0;c[B>>2]=C+1;Er(a,-o,-p,-n,c[A+(C<<2)>>2]|0);if(Cr(a)|0){v=1;D=19;break}C=c[f>>2]|0;A=C+32|0;B=(c[A>>2]|0)+-1|0;c[A>>2]=B;A=c[C+(B<<2)>>2]|0;B=c[l>>2]|0;c[l>>2]=B+1;c[a+348+(B<<2)>>2]=A}m=m+1|0;if(m>>>0>=3)break a}if((D|0)==19){i=b;return v|0}}else if((k|0)==1){m=d+4|0;l=d+8|0;x=a+364|0;w=1;A=h;B=0;while(1){c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;c[d+12>>2]=0;g[d+(B<<2)>>2]=1.0;C=A+32|0;g[A+16+(w<<2)>>2]=0.0;E=(c[x>>2]|0)+-1|0;c[x>>2]=E;c[A+(c[C>>2]<<2)>>2]=c[a+348+(E<<2)>>2];E=c[C>>2]|0;c[C>>2]=E+1;z=+g[d>>2];q=+g[m>>2];s=+g[l>>2];Er(a,z,q,s,c[A+(E<<2)>>2]|0);if(Cr(a)|0){v=1;D=19;break}E=c[f>>2]|0;C=E+32|0;F=(c[C>>2]|0)+-1|0;c[C>>2]=F;C=c[E+(F<<2)>>2]|0;F=c[x>>2]|0;c[x>>2]=F+1;c[a+348+(F<<2)>>2]=C;C=c[f>>2]|0;F=C+32|0;g[C+16+(c[F>>2]<<2)>>2]=0.0;E=(c[x>>2]|0)+-1|0;c[x>>2]=E;c[C+(c[F>>2]<<2)>>2]=c[a+348+(E<<2)>>2];E=c[F>>2]|0;c[F>>2]=E+1;Er(a,-z,-q,-s,c[C+(E<<2)>>2]|0);if(Cr(a)|0){v=1;D=19;break}E=c[f>>2]|0;C=E+32|0;F=(c[C>>2]|0)+-1|0;c[C>>2]=F;C=c[E+(F<<2)>>2]|0;F=c[x>>2]|0;c[x>>2]=F+1;c[a+348+(F<<2)>>2]=C;C=B+1|0;if(C>>>0>=3)break a;F=c[f>>2]|0;w=c[F+32>>2]|0;A=F;B=C}if((D|0)==19){i=b;return v|0}}while(0);v=0;i=b;return v|0}function Dr(b,d,e,f,h){b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0.0,u=0.0,v=0,w=0,x=0.0,y=0.0,z=0,A=0.0,B=0.0,C=0.0,D=0,E=0,F=0.0,G=0,H=0;i=b+9288|0;j=c[i>>2]|0;if(!j){c[b>>2]=5;k=0;return k|0}l=j+44|0;m=j+48|0;n=c[m>>2]|0;if(n)c[n+44>>2]=c[l>>2];n=c[l>>2]|0;if(n)c[n+48>>2]=c[m>>2];if((c[i>>2]|0)==(j|0))c[i>>2]=c[m>>2];n=b+9292|0;c[n>>2]=(c[n>>2]|0)+-1;o=b+9280|0;p=j+44|0;c[p>>2]=0;c[m>>2]=c[o>>2];q=c[o>>2]|0;if(q)c[q+44>>2]=j;c[o>>2]=j;q=b+9284|0;c[q>>2]=(c[q>>2]|0)+1;a[j+55>>0]=0;c[j+20>>2]=d;c[j+24>>2]=e;c[j+28>>2]=f;r=e+16|0;s=d+16|0;t=+g[s>>2];u=+g[r>>2]-t;v=e+20|0;w=d+20|0;x=+g[w>>2];y=+g[v>>2]-x;z=e+24|0;e=d+24|0;A=+g[e>>2];B=+g[z>>2]-A;d=f+16|0;C=+g[d>>2]-t;D=f+20|0;t=+g[D>>2]-x;E=f+24|0;x=+g[E>>2]-A;A=y*x-B*t;F=B*C-u*x;x=u*t-y*C;g[j>>2]=A;f=j+4|0;g[f>>2]=F;G=j+8|0;g[G>>2]=x;g[j+12>>2]=0.0;C=+P(+(A*A+F*F+x*x));do if(C>9.999999747378752e-05){H=j+16|0;if((!(Gr(A,F,x,+g[s>>2],+g[w>>2],+g[e>>2],+g[r>>2],+g[v>>2],+g[z>>2],H)|0)?!(Gr(+g[j>>2],+g[f>>2],+g[G>>2],+g[r>>2],+g[v>>2],+g[z>>2],+g[d>>2],+g[D>>2],+g[E>>2],H)|0):0)?!(Gr(+g[j>>2],+g[f>>2],+g[G>>2],+g[d>>2],+g[D>>2],+g[E>>2],+g[s>>2],+g[w>>2],+g[e>>2],H)|0):0)g[H>>2]=(+g[s>>2]*+g[j>>2]+ +g[w>>2]*+g[f>>2]+ +g[e>>2]*+g[G>>2])/C;y=1.0/C;g[j>>2]=y*+g[j>>2];g[f>>2]=y*+g[f>>2];g[G>>2]=y*+g[G>>2];if(h){k=j;return k|0}if(!(+g[H>>2]>=-9.999999747378752e-06)){c[b>>2]=3;break}else{k=j;return k|0}}else c[b>>2]=2;while(0);b=c[m>>2]|0;if(b)c[b+44>>2]=c[l>>2];b=c[l>>2]|0;if(b)c[b+48>>2]=c[m>>2];if((c[o>>2]|0)==(j|0))c[o>>2]=c[m>>2];c[q>>2]=(c[q>>2]|0)+-1;c[p>>2]=0;c[m>>2]=c[i>>2];m=c[i>>2]|0;if(m)c[m+44>>2]=j;c[i>>2]=j;c[n>>2]=(c[n>>2]|0)+1;k=0;return k|0}function Er(a,b,d,e,f){a=a|0;b=+b;d=+d;e=+e;f=f|0;var h=0,j=0,k=0,l=0,m=0.0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0.0;h=i;i=i+48|0;j=h+32|0;k=h+16|0;l=h;m=1.0/+P(+(b*b+d*d+e*e));g[f>>2]=m*b;n=f+4|0;g[n>>2]=m*d;o=f+8|0;g[o>>2]=m*e;g[f+12>>2]=0.0;p=a+120|0;q=c[p>>2]|0;r=c[p+4>>2]|0;s=(c[a>>2]|0)+(r>>1)|0;if(!(r&1))t=q;else t=c[(c[s>>2]|0)+q>>2]|0;pc[t&63](l,s,f);e=-+g[f>>2];m=-+g[n>>2];d=-+g[o>>2];o=c[p>>2]|0;n=c[p+4>>2]|0;p=(c[a+4>>2]|0)+(n>>1)|0;if(!(n&1))u=o;else u=c[(c[p>>2]|0)+o>>2]|0;b=+g[a+24>>2]*e+ +g[a+28>>2]*m+ +g[a+32>>2]*d;v=+g[a+40>>2]*e+ +g[a+44>>2]*m+ +g[a+48>>2]*d;g[k>>2]=+g[a+8>>2]*e+ +g[a+12>>2]*m+ +g[a+16>>2]*d;g[k+4>>2]=b;g[k+8>>2]=v;g[k+12>>2]=0.0;pc[u&63](j,p,k);v=+g[j>>2];b=+g[j+4>>2];d=+g[j+8>>2];m=+g[l+4>>2]-(v*+g[a+72>>2]+b*+g[a+76>>2]+d*+g[a+80>>2]+ +g[a+108>>2]);e=+g[l+8>>2]-(v*+g[a+88>>2]+b*+g[a+92>>2]+d*+g[a+96>>2]+ +g[a+112>>2]);g[f+16>>2]=+g[l>>2]-(v*+g[a+56>>2]+b*+g[a+60>>2]+d*+g[a+64>>2]+ +g[a+104>>2]);g[f+20>>2]=m;g[f+24>>2]=e;g[f+28>>2]=0.0;i=h;return}function Fr(b,e,f,h,i,j){b=b|0;e=e|0;f=f|0;h=h|0;i=i|0;j=j|0;var k=0,l=0,m=0,n=0,o=0;k=h+55|0;if((d[k>>0]|0|0)==(e|0)){l=0;return l|0}m=c[14792+(i<<2)>>2]|0;if(+g[h>>2]*+g[f+16>>2]+ +g[h+4>>2]*+g[f+20>>2]+ +g[h+8>>2]*+g[f+24>>2]-+g[h+16>>2]<-9.999999747378752e-06){n=Dr(b,c[h+20+(m<<2)>>2]|0,c[h+20+(i<<2)>>2]|0,f,0)|0;if(!n){l=0;return l|0}a[n+52>>0]=i;c[n+32>>2]=h;a[h+52+i>>0]=0;c[h+32+(i<<2)>>2]=n;o=c[j>>2]|0;if(!o)c[j+4>>2]=n;else{a[o+53>>0]=2;c[o+36>>2]=n;a[n+54>>0]=1;c[n+40>>2]=o}c[j>>2]=n;n=j+8|0;c[n>>2]=(c[n>>2]|0)+1;l=1;return l|0}n=c[14776+(i<<2)>>2]|0;a[k>>0]=e;if(!(Fr(b,e,f,c[h+32+(m<<2)>>2]|0,d[h+52+m>>0]|0,j)|0)){l=0;return l|0}if(!(Fr(b,e,f,c[h+32+(n<<2)>>2]|0,d[h+52+n>>0]|0,j)|0)){l=0;return l|0}j=b+9280|0;n=h+44|0;f=h+48|0;e=c[f>>2]|0;if(e)c[e+44>>2]=c[n>>2];e=c[n>>2]|0;if(e)c[e+48>>2]=c[f>>2];if((c[j>>2]|0)==(h|0))c[j>>2]=c[f>>2];j=b+9284|0;c[j>>2]=(c[j>>2]|0)+-1;j=b+9288|0;c[h+44>>2]=0;c[f>>2]=c[j>>2];f=c[j>>2]|0;if(f)c[f+44>>2]=h;c[j>>2]=h;h=b+9292|0;c[h>>2]=(c[h>>2]|0)+1;l=1;return l|0}function Gr(a,b,c,d,e,f,h,i,j,k){a=+a;b=+b;c=+c;d=+d;e=+e;f=+f;h=+h;i=+i;j=+j;k=k|0;var l=0.0,m=0.0,n=0.0,o=0;l=h-d;m=i-e;n=j-f;if(!((l*b-m*a)*f+((m*c-n*b)*d+(n*a-l*c)*e)<0.0)){o=0;return o|0}if(l*d+m*e+n*f>0.0){g[k>>2]=+P(+(d*d+e*e+f*f));o=1;return o|0}if(l*h+m*i+n*j<0.0){g[k>>2]=+P(+(h*h+i*i+j*j));o=1;return o|0}else{c=h*d+i*e+j*f;a=((h*h+i*i+j*j)*(d*d+e*e+f*f)-c*c)/(l*l+m*m+n*n);g[k>>2]=+P(+(a>0.0?a:0.0));o=1;return o|0}return 0}function Hr(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var h=0,j=0,l=0,m=0.0,n=0.0,o=0.0,p=0,q=0.0,r=0,s=0.0,t=0.0,u=0,v=0.0,w=0,x=0.0,y=0.0,z=0.0,A=0.0,B=0,C=0.0,D=0,E=0.0,F=0.0,G=0.0,H=0.0,I=0,J=0,K=0,L=0.0,M=0.0,N=0.0,O=0.0,Q=0.0,R=0.0,S=0,T=0.0,U=0.0,V=0,W=0,X=0.0,Y=0.0,Z=0.0,_=0,$=0,aa=0,ba=0.0,ca=0.0,da=0.0,ea=0,fa=0,ga=0,ha=0.0,ia=0;h=i;i=i+64|0;j=h+48|0;l=h;c[j>>2]=a;c[j+4>>2]=b;c[j+8>>2]=d;m=+g[a>>2];n=+g[b>>2];o=m-n;p=a+4|0;q=+g[p>>2];r=b+4|0;s=+g[r>>2];t=q-s;u=a+8|0;v=+g[u>>2];w=b+8|0;x=+g[w>>2];y=v-x;g[l>>2]=o;g[l+4>>2]=t;g[l+8>>2]=y;g[l+12>>2]=0.0;z=+g[d>>2];A=n-z;B=d+4|0;n=+g[B>>2];C=s-n;D=d+8|0;s=+g[D>>2];E=x-s;g[l+16>>2]=A;g[l+20>>2]=C;g[l+24>>2]=E;g[l+28>>2]=0.0;x=z-m;z=n-q;n=s-v;g[l+32>>2]=x;g[l+36>>2]=z;g[l+40>>2]=n;g[l+44>>2]=0.0;s=t*E-y*C;F=y*A-E*o;G=C*o-t*A;H=G*G+(s*s+F*F);if(H>0.0){I=0;J=0;K=0;L=t;M=y;N=o;O=m;Q=q;R=v;S=0;T=-1.0}else{U=-1.0;i=h;return +U}while(1){if(O*(G*L-F*M)+Q*(s*M-G*N)+(F*N-s*L)*R>0.0){V=c[14792+(S<<2)>>2]|0;W=c[j+(V<<2)>>2]|0;v=+g[W>>2];q=v-O;m=+g[W+4>>2];o=m-Q;y=+g[W+8>>2];t=y-R;X=q*q+o*o+t*t;do if(X>0.0){Y=-(O*q+Q*o+R*t)/X;if(Y>=1.0){Z=v*v+m*m+y*y;_=2;$=0;aa=1065353216;break}if(!(Y<=0.0)){W=(g[k>>2]=Y,c[k>>2]|0);ba=O+q*Y;ca=Q+o*Y;da=R+t*Y;Z=da*da+(ba*ba+ca*ca);_=3;$=(g[k>>2]=1.0-Y,c[k>>2]|0);aa=W;break}else{Z=O*O+Q*Q+R*R;_=1;$=1065353216;aa=0;break}}else{Z=-1.0;_=I;$=J;aa=K}while(0);if(T<0.0|Z<T){c[f>>2]=((_&1|0)!=0?1<<S:0)+((_&2|0)!=0?1<<V:0);c[e+(S<<2)>>2]=$;c[e+(V<<2)>>2]=aa;g[e+(c[14792+(V<<2)>>2]<<2)>>2]=0.0;ea=aa;fa=$;ga=_;ha=Z}else{ea=aa;fa=$;ga=_;ha=T}}else{ea=K;fa=J;ga=I;ha=T}W=S+1|0;if((W|0)==3)break;ia=c[j+(W<<2)>>2]|0;I=ga;J=fa;K=ea;L=+g[l+(W<<4)+4>>2];M=+g[l+(W<<4)+8>>2];N=+g[l+(W<<4)>>2];O=+g[ia>>2];Q=+g[ia+4>>2];R=+g[ia+8>>2];S=W;T=ha}if(!(ha<0.0)){U=ha;i=h;return +U}ha=+P(+H);T=(s*+g[a>>2]+F*+g[p>>2]+G*+g[u>>2])/H;H=s*T;s=F*T;F=G*T;c[f>>2]=7;T=+g[b>>2]-H;G=+g[r>>2]-s;R=+g[w>>2]-F;Q=C*R-G*E;O=T*E-R*A;R=G*A-T*C;C=+P(+(R*R+(Q*Q+O*O)))/ha;g[e>>2]=C;O=+g[d>>2]-H;Q=+g[B>>2]-s;R=+g[D>>2]-F;T=z*R-Q*n;A=O*n-R*x;R=Q*x-O*z;z=+P(+(R*R+(T*T+A*A)))/ha;g[e+4>>2]=z;g[e+8>>2]=1.0-(z+C);U=F*F+(H*H+s*s);i=h;return +U}function Ir(a,b,c,d,e,f,h,i,j,k,l){a=a|0;b=b|0;c=+c;d=+d;e=+e;f=+f;h=+h;i=+i;j=j|0;k=k|0;l=+l;var m=0.0,n=0.0,o=0.0,p=0.0,q=0.0,r=0.0,s=0.0,t=0.0;m=c*f+d*h+e*i;e=+g[a>>2]*f+ +g[a+16>>2]*h+ +g[a+32>>2]*i;d=+g[a+4>>2]*f+ +g[a+20>>2]*h+ +g[a+36>>2]*i;c=+g[a+8>>2]*f+ +g[a+24>>2]*h+ +g[a+40>>2]*i;n=+g[b>>2]*f+ +g[b+16>>2]*h+ +g[b+32>>2]*i;o=+g[b+4>>2]*f+ +g[b+20>>2]*h+ +g[b+36>>2]*i;p=+g[b+8>>2]*f+ +g[b+24>>2]*h+ +g[b+40>>2]*i;i=+g[j+80>>2];h=+g[j+84>>2];f=+g[j+88>>2];q=+g[k+80>>2];r=+g[k+84>>2];s=+g[k+88>>2];t=e*(e<0.0?-i:i)+d*(d<0.0?-h:h)+c*(c<0.0?-f:f);f=n*(n<0.0?-q:q)+o*(o<0.0?-r:r)+p*(p<0.0?-s:s);s=+g[j+96>>2];p=+g[k+96>>2];r=(t>s?t:s)+(f>p?f:p);p=m+r;f=r-m;return !((p<f?p:f)>l)|0}function Jr(b,d,e,f,h,j,k){b=b|0;d=d|0;e=e|0;f=f|0;h=+h;j=+j;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0.0,A=0.0,B=0.0,C=0.0,D=0.0,E=0.0,F=0,G=0.0,H=0,I=0.0,J=0,K=0.0,L=0.0,M=0.0,N=0.0,O=0,P=0.0,Q=0,R=0.0,S=0.0,T=0.0,U=0.0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0.0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0.0,ha=0.0,ia=0.0,ja=0.0,ka=0.0,la=0.0,ma=0.0,na=0.0,oa=0.0,pa=0.0,qa=0.0,ra=0.0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0,Fa=0,Ga=0,Ha=0,Ia=0,Ja=0,Ka=0.0,La=0.0,Ma=0.0,Na=0.0,Oa=0,Pa=0,Qa=0,Ra=0,Sa=0,Ta=0,Ua=0.0,Va=0.0,Wa=0.0,Xa=0,Ya=0,Za=0,_a=0,$a=0,ab=0,bb=0,cb=0,db=0,eb=0,fb=0,gb=0,hb=0,ib=0,jb=0,kb=0,lb=0.0,mb=0.0,nb=0.0,ob=0.0,pb=0.0,qb=0.0,rb=0.0,sb=0.0,tb=0.0,ub=0,vb=0;l=i;i=i+64|0;m=l+32|0;n=l+16|0;o=l;p=m+16|0;a[p>>0]=1;q=m+12|0;c[q>>2]=0;r=m+4|0;c[r>>2]=0;s=m+8|0;c[s>>2]=0;t=f;u=m;m=c[f+4>>2]|0;if((m|0)>0){c[3708]=(c[3708]|0)+1;f=ws((m<<4|3)+16|0)|0;if(!f)v=0;else{w=f+4+15&-16;c[w+-4>>2]=f;v=w}w=c[r>>2]|0;if((w|0)>0){r=0;do{f=v+(r<<4)|0;x=(c[q>>2]|0)+(r<<4)|0;c[f>>2]=c[x>>2];c[f+4>>2]=c[x+4>>2];c[f+8>>2]=c[x+8>>2];c[f+12>>2]=c[x+12>>2];r=r+1|0}while((r|0)!=(w|0));}w=c[q>>2]|0;if(w){if(a[p>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[w+-4>>2]|0);}c[q>>2]=0}a[p>>0]=1;c[q>>2]=v;c[s>>2]=m;y=v}else y=0;v=c[d+28>>2]|0;if((v|0)>0){m=c[d+36>>2]|0;z=+g[e>>2];s=e+4|0;A=+g[s>>2];w=e+8|0;B=+g[w>>2];r=e+16|0;C=+g[r>>2];x=e+20|0;D=+g[x>>2];f=e+24|0;E=+g[f>>2];F=e+32|0;G=+g[F>>2];H=e+36|0;I=+g[H>>2];J=e+40|0;K=+g[J>>2];L=+g[b>>2];M=+g[b+4>>2];N=+g[b+8>>2];O=-1;P=3402823466385288598117041.0e14;Q=0;while(1){R=+g[m+(Q*36|0)+20>>2];S=+g[m+(Q*36|0)+24>>2];T=+g[m+(Q*36|0)+28>>2];U=(R*z+S*A+T*B)*L+(R*C+S*D+T*E)*M+(R*G+S*I+T*K)*N;V=U<P;O=V?Q:O;Q=Q+1|0;if((Q|0)==(v|0))break;else P=V?U:P}if((O|0)>=0){v=c[m+(O*36|0)+4>>2]|0;if((v|0)>0){Q=m+(O*36|0)+12|0;V=d+16|0;d=m+(O*36|0)+20|0;W=m+(O*36|0)+24|0;X=m+(O*36|0)+28|0;Y=e+48|0;Z=e+52|0;_=e+56|0;P=z;N=A;M=B;L=C;U=D;T=E;S=G;R=I;$=K;aa=t;ba=u;u=0;while(1){ca=c[Q>>2]|0;da=c[ca+(u<<2)>>2]|0;ea=c[V>>2]|0;u=u+1|0;fa=c[ca+(((u|0)==(v|0)?0:u)<<2)>>2]|0;ga=+g[ea+(da<<4)>>2];ha=ga-+g[ea+(fa<<4)>>2];ia=+g[ea+(da<<4)+4>>2];ja=ia-+g[ea+(fa<<4)+4>>2];ka=+g[ea+(da<<4)+8>>2];la=ka-+g[ea+(fa<<4)+8>>2];ma=ha*P+ja*N+la*M;na=ha*L+ja*U+la*T;oa=ha*S+ja*R+la*$;la=+g[d>>2];ja=+g[W>>2];ha=+g[X>>2];pa=P*la+N*ja+M*ha;qa=L*la+U*ja+T*ha;ra=S*la+R*ja+$*ha;ha=-(na*ra-oa*qa);ja=-(oa*pa-ma*ra);ra=-(ma*qa-na*pa);pa=(ga*P+ia*N+ka*M+ +g[Y>>2])*ha+(ga*L+ia*U+ka*T+ +g[Z>>2])*ja+(ga*S+ia*R+ka*$+ +g[_>>2])*ra;fa=aa;ea=ba;da=fa+4|0;ca=c[da>>2]|0;if((ca|0)<2)sa=ca;else{ta=ca+-1|0;ua=fa+12|0;va=c[ua>>2]|0;ka=+g[va+(ta<<4)>>2];ia=+g[va+(ta<<4)+4>>2];ga=+g[va+(ta<<4)+8>>2];ta=ea+4|0;wa=ea+8|0;xa=ea+12|0;ya=ea+16|0;ea=va;na=ka;qa=ia;ma=ga;oa=ka*ha+ia*ja+ga*ra-pa;va=0;while(1){ga=+g[ea+(va<<4)>>2];ia=+g[ea+(va<<4)+4>>2];ka=+g[ea+(va<<4)+8>>2];za=c[ea+(va<<4)+12>>2]|0;la=ga*ha+ia*ja+ka*ra-pa;Aa=la<0.0;do if(oa<0.0)if(Aa){Ba=c[ta>>2]|0;if((Ba|0)==(c[wa>>2]|0)?(Ca=(Ba|0)!=0?Ba<<1:1,(Ba|0)<(Ca|0)):0){if(!Ca){Da=0;Ea=Ba}else{c[3708]=(c[3708]|0)+1;Fa=ws((Ca<<4|3)+16|0)|0;if(!Fa)Ga=0;else{Ha=Fa+4+15&-16;c[Ha+-4>>2]=Fa;Ga=Ha}Da=Ga;Ea=c[ta>>2]|0}if((Ea|0)>0){Ha=0;do{Fa=Da+(Ha<<4)|0;Ia=(c[xa>>2]|0)+(Ha<<4)|0;c[Fa>>2]=c[Ia>>2];c[Fa+4>>2]=c[Ia+4>>2];c[Fa+8>>2]=c[Ia+8>>2];c[Fa+12>>2]=c[Ia+12>>2];Ha=Ha+1|0}while((Ha|0)!=(Ea|0));}Ha=c[xa>>2]|0;if(Ha){if(a[ya>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[Ha+-4>>2]|0);}c[xa>>2]=0}a[ya>>0]=1;c[xa>>2]=Da;c[wa>>2]=Ca;Ja=c[ta>>2]|0}else Ja=Ba;Ha=c[xa>>2]|0;g[Ha+(Ja<<4)>>2]=ga;g[Ha+(Ja<<4)+4>>2]=ia;g[Ha+(Ja<<4)+8>>2]=ka;c[Ha+(Ja<<4)+12>>2]=za;c[ta>>2]=(c[ta>>2]|0)+1;break}else{Ka=oa/(oa-la);La=na+(ga-na)*Ka;Ma=qa+(ia-qa)*Ka;Na=ma+(ka-ma)*Ka;Ha=c[ta>>2]|0;if((Ha|0)==(c[wa>>2]|0)?(Ia=(Ha|0)!=0?Ha<<1:1,(Ha|0)<(Ia|0)):0){if(!Ia){Oa=0;Pa=Ha}else{c[3708]=(c[3708]|0)+1;Fa=ws((Ia<<4|3)+16|0)|0;if(!Fa)Qa=0;else{Ra=Fa+4+15&-16;c[Ra+-4>>2]=Fa;Qa=Ra}Oa=Qa;Pa=c[ta>>2]|0}if((Pa|0)>0){Ra=0;do{Fa=Oa+(Ra<<4)|0;Sa=(c[xa>>2]|0)+(Ra<<4)|0;c[Fa>>2]=c[Sa>>2];c[Fa+4>>2]=c[Sa+4>>2];c[Fa+8>>2]=c[Sa+8>>2];c[Fa+12>>2]=c[Sa+12>>2];Ra=Ra+1|0}while((Ra|0)!=(Pa|0));}Ra=c[xa>>2]|0;if(Ra){if(a[ya>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[Ra+-4>>2]|0);}c[xa>>2]=0}a[ya>>0]=1;c[xa>>2]=Oa;c[wa>>2]=Ia;Ta=c[ta>>2]|0}else Ta=Ha;Ra=c[xa>>2]|0;g[Ra+(Ta<<4)>>2]=La;g[Ra+(Ta<<4)+4>>2]=Ma;g[Ra+(Ta<<4)+8>>2]=Na;g[Ra+(Ta<<4)+12>>2]=0.0;c[ta>>2]=(c[ta>>2]|0)+1;break}else if(Aa){Ka=oa/(oa-la);Ua=na+(ga-na)*Ka;Va=qa+(ia-qa)*Ka;Wa=ma+(ka-ma)*Ka;Ra=c[ta>>2]|0;if((Ra|0)==(c[wa>>2]|0)?(Ba=(Ra|0)!=0?Ra<<1:1,(Ra|0)<(Ba|0)):0){if(!Ba){Xa=0;Ya=Ra}else{c[3708]=(c[3708]|0)+1;Ca=ws((Ba<<4|3)+16|0)|0;if(!Ca)Za=0;else{Sa=Ca+4+15&-16;c[Sa+-4>>2]=Ca;Za=Sa}Xa=Za;Ya=c[ta>>2]|0}if((Ya|0)>0){Sa=0;do{Ca=Xa+(Sa<<4)|0;Fa=(c[xa>>2]|0)+(Sa<<4)|0;c[Ca>>2]=c[Fa>>2];c[Ca+4>>2]=c[Fa+4>>2];c[Ca+8>>2]=c[Fa+8>>2];c[Ca+12>>2]=c[Fa+12>>2];Sa=Sa+1|0}while((Sa|0)!=(Ya|0));}Sa=c[xa>>2]|0;if(Sa){if(a[ya>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[Sa+-4>>2]|0);}c[xa>>2]=0}a[ya>>0]=1;c[xa>>2]=Xa;c[wa>>2]=Ba;_a=c[ta>>2]|0}else _a=Ra;Sa=c[xa>>2]|0;g[Sa+(_a<<4)>>2]=Ua;g[Sa+(_a<<4)+4>>2]=Va;g[Sa+(_a<<4)+8>>2]=Wa;g[Sa+(_a<<4)+12>>2]=0.0;Sa=(c[ta>>2]|0)+1|0;c[ta>>2]=Sa;if((Sa|0)==(c[wa>>2]|0)?(Ha=(Sa|0)!=0?Sa<<1:1,(Sa|0)<(Ha|0)):0){if(!Ha){$a=0;ab=Sa}else{c[3708]=(c[3708]|0)+1;Ia=ws((Ha<<4|3)+16|0)|0;if(!Ia)bb=0;else{Fa=Ia+4+15&-16;c[Fa+-4>>2]=Ia;bb=Fa}$a=bb;ab=c[ta>>2]|0}if((ab|0)>0){Fa=0;do{Ia=$a+(Fa<<4)|0;Ca=(c[xa>>2]|0)+(Fa<<4)|0;c[Ia>>2]=c[Ca>>2];c[Ia+4>>2]=c[Ca+4>>2];c[Ia+8>>2]=c[Ca+8>>2];c[Ia+12>>2]=c[Ca+12>>2];Fa=Fa+1|0}while((Fa|0)!=(ab|0));}Fa=c[xa>>2]|0;if(Fa){if(a[ya>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[Fa+-4>>2]|0);}c[xa>>2]=0}a[ya>>0]=1;c[xa>>2]=$a;c[wa>>2]=Ha;cb=c[ta>>2]|0}else cb=Sa;Fa=c[xa>>2]|0;g[Fa+(cb<<4)>>2]=ga;g[Fa+(cb<<4)+4>>2]=ia;g[Fa+(cb<<4)+8>>2]=ka;c[Fa+(cb<<4)+12>>2]=za;c[ta>>2]=(c[ta>>2]|0)+1}while(0);za=va+1|0;if((za|0)==(ca|0))break;ea=c[ua>>2]|0;na=ga;qa=ia;ma=ka;oa=la;va=za}sa=c[da>>2]|0}if((sa|0)<0){va=fa+8|0;ua=fa+12|0;if((c[va>>2]|0)<0){ea=c[ua>>2]|0;ca=fa+16|0;if(ea){if(a[ca>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[ea+-4>>2]|0);}c[ua>>2]=0}a[ca>>0]=1;c[ua>>2]=0;c[va>>2]=0;db=sa}else db=sa;do{va=(c[ua>>2]|0)+(db<<4)|0;c[va>>2]=c[n>>2];c[va+4>>2]=c[n+4>>2];c[va+8>>2]=c[n+8>>2];c[va+12>>2]=c[n+12>>2];db=db+1|0}while((db|0)!=0);}c[da>>2]=0;oa=+g[e>>2];ma=+g[s>>2];qa=+g[w>>2];na=+g[r>>2];pa=+g[x>>2];ra=+g[f>>2];ja=+g[F>>2];ha=+g[H>>2];Wa=+g[J>>2];if((u|0)>=(v|0)){eb=ba;fb=W;gb=X;hb=Y;ib=Z;jb=_;kb=d;lb=oa;mb=ma;nb=qa;ob=na;pb=pa;qb=ra;rb=ja;sb=ha;tb=Wa;break}else{ua=ba;P=oa;N=ma;M=qa;L=na;U=pa;T=ra;S=ja;R=ha;$=Wa;ba=aa;aa=ua}}}else{eb=t;fb=m+(O*36|0)+24|0;gb=m+(O*36|0)+28|0;hb=e+48|0;ib=e+52|0;jb=e+56|0;kb=m+(O*36|0)+20|0;lb=z;mb=A;nb=B;ob=C;pb=D;qb=E;rb=G;sb=I;tb=K}K=+g[kb>>2];I=+g[fb>>2];G=+g[gb>>2];E=K*lb+I*mb+G*nb;nb=K*ob+I*pb+G*qb;qb=K*rb+I*sb+G*tb;tb=+g[m+(O*36|0)+32>>2]-(E*+g[hb>>2]+nb*+g[ib>>2]+qb*+g[jb>>2]);jb=eb;eb=jb+4|0;ib=c[eb>>2]|0;if((ib|0)>0){hb=jb+12|0;jb=ib;ib=0;while(1){O=c[hb>>2]|0;m=O+(ib<<4)|0;G=tb+(E*+g[m>>2]+nb*+g[O+(ib<<4)+4>>2]+qb*+g[O+(ib<<4)+8>>2]);sb=G<=h?h:G;if(!(sb<=j))ub=jb;else{c[o>>2]=c[m>>2];c[o+4>>2]=c[m+4>>2];c[o+8>>2]=c[m+8>>2];c[o+12>>2]=c[m+12>>2];oc[c[(c[k>>2]|0)+16>>2]&7](k,b,o,sb);ub=c[eb>>2]|0}ib=ib+1|0;if((ib|0)>=(ub|0))break;else jb=ub}}vb=c[q>>2]|0}else vb=y}else vb=y;if(!vb){i=l;return}if(a[p>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[vb+-4>>2]|0);}c[q>>2]=0;i=l;return}function Kr(a,b,d){a=a|0;b=b|0;d=d|0;var 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;e=a+48|0;f=a+56|0;g=c[f>>2]|0;if(!g){h=a+52|0;i=c[h>>2]|0;if(!i){c[3708]=(c[3708]|0)+1;j=ws(31)|0;if(!j)k=0;else{l=j+4+15&-16;c[l+-4>>2]=j;k=l}l=c[a+60>>2]|0;c[k+4>>2]=l;j=k+8|0;c[j>>2]=0;c[3708]=(c[3708]|0)+1;m=ws((l*24|3)+16|0)|0;if(!m)n=0;else{l=m+4+15&-16;c[l+-4>>2]=m;n=l}c[k>>2]=n;c[j>>2]=c[e>>2];c[e>>2]=k;o=k}else{c[h>>2]=c[i+8>>2];o=i}i=c[o+4>>2]|0;h=c[o>>2]|0;if((i|0)>0){o=0;k=h;do{o=o+1|0;j=k;k=k+24|0;c[j>>2]=(o|0)<(i|0)?k:0}while((o|0)!=(i|0));p=h}else p=h}else p=g;c[f>>2]=c[p>>2];c[p>>2]=0;c[p+4>>2]=0;c[p+8>>2]=0;c[p+12>>2]=0;c[p+16>>2]=0;c[p+20>>2]=0;g=c[f>>2]|0;if(!g){h=a+52|0;i=c[h>>2]|0;if(!i){c[3708]=(c[3708]|0)+1;o=ws(31)|0;if(!o)q=0;else{k=o+4+15&-16;c[k+-4>>2]=o;q=k}k=c[a+60>>2]|0;c[q+4>>2]=k;o=q+8|0;c[o>>2]=0;c[3708]=(c[3708]|0)+1;j=ws((k*24|3)+16|0)|0;if(!j)r=0;else{k=j+4+15&-16;c[k+-4>>2]=j;r=k}c[q>>2]=r;c[o>>2]=c[e>>2];c[e>>2]=q;s=q}else{c[h>>2]=c[i+8>>2];s=i}i=c[s+4>>2]|0;h=c[s>>2]|0;if((i|0)>0){s=0;q=h;do{s=s+1|0;e=q;q=q+24|0;c[e>>2]=(s|0)<(i|0)?q:0}while((s|0)!=(i|0));t=h}else t=h}else t=g;c[f>>2]=c[t>>2];c[t>>2]=0;c[t+4>>2]=0;c[t+8>>2]=0;c[p+8>>2]=t;c[t+8>>2]=p;f=c[a+100>>2]|0;c[p+20>>2]=f;c[t+20>>2]=f;c[p+12>>2]=d;c[t+12>>2]=b;c[p+16>>2]=0;c[t+16>>2]=0;t=a+116|0;b=c[t>>2]|0;d=b+1|0;c[t>>2]=d;t=a+120|0;if((b|0)<(c[t>>2]|0))return p|0;c[t>>2]=d;return p|0}function Lr(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0,Fa=0,Ga=0,Ha=0,Ia=0,Ja=0,Ka=0,La=0,Ma=0,Na=0,Oa=0,Pa=0,Qa=0,Ra=0,Sa=0,Ta=0,Ua=0,Va=0,Wa=0,Xa=0,Ya=0,Za=0,_a=0,$a=0,ab=0,bb=0,cb=0,db=0,eb=0,fb=0,gb=0,hb=0,ib=0,jb=0,kb=0,lb=0,mb=0,nb=0,ob=0,pb=0,qb=0,rb=0,sb=0,tb=0,ub=0,vb=0,wb=0,xb=0,yb=0,zb=0,Ab=0,Bb=0,Cb=0,Db=0,Eb=0,Fb=0,Gb=0,Hb=0,Ib=0,Jb=0,Kb=0,Lb=0,Mb=0,Nb=0,Ob=0,Pb=0,Qb=0,Rb=0,Sb=0,Tb=0,Ub=0,Vb=0,Wb=0,Xb=0,Yb=0,Zb=0,_b=0;f=i;i=i+144|0;g=f+140|0;h=f+136|0;j=f+120|0;k=f+72|0;l=f+48|0;m=f+24|0;n=f;o=f+116|0;p=f+112|0;q=f+96|0;r=d-b|0;do if((r|0)==1)s=c[(c[a+92>>2]|0)+(b<<2)>>2]|0;else if((r|0)==2){t=c[(c[a+92>>2]|0)+(b<<2)>>2]|0;u=t+112|0;v=c[t+88>>2]|0;w=c[t+200>>2]|0;x=(v|0)==(w|0);y=c[t+92>>2]|0;z=c[t+204>>2]|0;A=(y|0)==(z|0);if(x){if(A)if((c[t+96>>2]|0)==(c[t+208>>2]|0)){s=t;break}else B=y;else B=z;if((y|0)==(B|0)){C=(c[t+96>>2]|0)>(c[t+208>>2]|0);E=C?u:t;c[E>>2]=E;c[E+4>>2]=E;c[e>>2]=E;c[e+4>>2]=E;c[e+8>>2]=E;c[e+12>>2]=E;F=E;G=C?t:u}else{H=B;I=0;J=9}}else{H=z;I=A;J=9}do if((J|0)==9){c[t>>2]=u;c[t+4>>2]=u;c[u>>2]=t;c[t+116>>2]=t;A=(v|0)<(w|0);z=(y|0)<(H|0);C=A|x&z;c[e>>2]=C?t:u;c[e+4>>2]=C?u:t;C=e+8|0;if(z|A&I){c[C>>2]=t;c[e+12>>2]=u;F=t;G=u;break}else{c[C>>2]=u;c[e+12>>2]=t;F=t;G=u;break}}while(0);u=Kr(a,F,G)|0;c[u>>2]=u;c[u+4>>2]=u;c[F+8>>2]=u;t=c[u+8>>2]|0;c[t>>2]=t;c[t+4>>2]=t;c[G+8>>2]=t;i=f;return}else if(!r){c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;c[e+12>>2]=0;i=f;return}else{t=((r|0)/2|0)+b|0;u=c[a+92>>2]|0;x=c[u+(t+-1<<2)>>2]|0;y=c[x+88>>2]|0;w=c[x+92>>2]|0;v=c[x+96>>2]|0;a:do if((t|0)<(d|0)){x=t;while(1){C=c[u+(x<<2)>>2]|0;if((c[C+88>>2]|0)!=(y|0)){K=x;break a}if((c[C+92>>2]|0)!=(w|0)){K=x;break a}if((c[C+96>>2]|0)!=(v|0)){K=x;break a}C=x+1|0;if((C|0)<(d|0))x=C;else{K=C;break}}}else K=t;while(0);Lr(a,b,t,e);c[q>>2]=0;c[q+4>>2]=0;c[q+8>>2]=0;c[q+12>>2]=0;Lr(a,K,d,q);v=q+4|0;w=c[v>>2]|0;do if(w){y=e+4|0;u=c[y>>2]|0;if(!u){c[e>>2]=c[q>>2];c[e+4>>2]=c[q+4>>2];c[e+8>>2]=c[q+8>>2];c[e+12>>2]=c[q+12>>2];break}x=a+100|0;c[x>>2]=(c[x>>2]|0)+-1;x=e+12|0;C=c[x>>2]|0;A=c[q+8>>2]|0;z=c[C+88>>2]|0;b:do if((z|0)==(c[A+88>>2]|0)?(c[C+92>>2]|0)==(c[A+92>>2]|0):0){E=c[A+4>>2]|0;if((E|0)==(A|0)){L=c[A+8>>2]|0;if(!L){M=z;N=A}else{O=c[L+12>>2]|0;M=c[O+88>>2]|0;N=O}P=N;Q=C;R=c[N+96>>2]|0;S=M+1|0;T=C;U=N;break}O=c[A>>2]|0;c[E>>2]=O;c[O+4>>2]=E;c:do if((A|0)==(c[q>>2]|0)){L=c[O+88>>2]|0;V=c[E+88>>2]|0;do if((L|0)>=(V|0)){if((L|0)==(V|0)?(c[O+92>>2]|0)<(c[E+92>>2]|0):0)break;c[q>>2]=E;break c}while(0);c[q>>2]=O}while(0);if((A|0)==(w|0)){V=c[O+88>>2]|0;L=c[E+88>>2]|0;do if((V|0)<=(L|0)){if((V|0)==(L|0)?(c[O+92>>2]|0)>(c[E+92>>2]|0):0)break;c[v>>2]=E;W=E;J=39;break b}while(0);c[v>>2]=O;W=O;J=39}else{W=w;J=39}}else{W=w;J=39}while(0);if((J|0)==39){A=c[e>>2]|0;C=c[q>>2]|0;z=0;E=1;L=u;V=0;X=W;Y=0;d:while(1){Z=z;_=L;aa=X;while(1){ba=c[aa+88>>2]|0;ca=c[_+88>>2]|0;da=$(ba-ca|0,E)|0;e:do if((da|0)<=0){if((da|0)<0){ea=(Z|0)!=0;fa=c[_+92>>2]|0;ga=c[aa+92>>2]|0;ha=ba;ia=da;ja=_;ka=aa;while(1){la=c[(ea?ka+4|0:ka)>>2]|0;ma=(la|0)==(ka|0);na=ka+88|0;oa=la+88|0;pa=la+92|0;qa=fa;ra=ha;sa=ia;ta=ja;while(1){ua=ta+88|0;va=ga-qa|0;if(!ma?(wa=c[oa>>2]|0,xa=$(wa-ra|0,E)|0,ya=c[pa>>2]|0,za=ya-ga|0,(za|0)>-1):0){if(!xa)break;if((xa|0)<0?($(za,sa)|0)<=($(xa,va)|0):0)break}xa=c[(ea?ta+4|0:ta)>>2]|0;if((xa|0)==(ta|0)){Aa=ta;Ba=ka;break e}za=c[xa+88>>2]|0;Ca=$(za-(c[ua>>2]|0)|0,E)|0;Da=c[xa+92>>2]|0;Ea=Da-qa|0;Fa=ra;ra=c[na>>2]|0;Fa=sa;sa=$(ra-za|0,E)|0;if(!((Ea|0)>0&(sa|0)<0)){Aa=ta;Ba=ka;break e}if(!Ca){qa=Da;ra=ra;sa=sa;ta=xa;continue}if((Ca|0)>=0){Aa=ta;Ba=ka;break e}if(($(Ea,Fa)|0)>=($(Ca,va)|0)){Aa=ta;Ba=ka;break e}else{qa=Da;ta=xa}}fa=qa;ga=ya;ha=wa;ia=$(wa-(c[ua>>2]|0)|0,E)|0;ja=ta;ka=la}}ka=c[_+92>>2]|0;ja=(Z|0)!=0;f:do if(ja){ia=_;ha=ka;while(1){ga=c[ia>>2]|0;if((ga|0)==(_|0)){Ga=ia;break f}if((c[ga+88>>2]|0)!=(ca|0)){Ga=ia;break f}fa=ha;ha=c[ga+92>>2]|0;if((ha|0)>(fa|0)){Ga=ia;break}else ia=ga}}else{ia=_;ha=ka;while(1){la=c[ia+4>>2]|0;if((la|0)==(_|0)){Ga=ia;break f}if((c[la+88>>2]|0)!=(ca|0)){Ga=ia;break f}ta=ha;ha=c[la+92>>2]|0;if((ha|0)>(ta|0)){Ga=ia;break}else ia=la}}while(0);ka=c[aa+92>>2]|0;if(ja){ia=aa;ha=ka;while(1){la=c[ia+4>>2]|0;if((la|0)==(aa|0)){Aa=Ga;Ba=ia;break e}if((c[la+88>>2]|0)!=(ca|0)){Aa=Ga;Ba=ia;break e}ta=ha;ha=c[la+92>>2]|0;if((ha|0)<(ta|0)){Aa=Ga;Ba=ia;break}else ia=la}}else{ia=aa;ha=ka;while(1){ja=c[ia>>2]|0;if((ja|0)==(aa|0)){Aa=Ga;Ba=ia;break e}if((c[ja+88>>2]|0)!=(ca|0)){Aa=Ga;Ba=ia;break e}la=ha;ha=c[ja+92>>2]|0;if((ha|0)<(la|0)){Aa=Ga;Ba=ia;break}else ia=ja}}}else{ia=(Z|0)!=0;ha=c[aa+92>>2]|0;ka=da;ja=_;la=aa;while(1){ta=la+88|0;qa=ja+88|0;ga=c[ja+92>>2]|0;fa=ha-ga|0;ea=c[(ia?ja:ja+4|0)>>2]|0;g:do if((ea|0)==(ja|0)){Ha=qa;Ia=fa;Ja=ka;Ka=ja}else{sa=ea;ra=c[ja+88>>2]|0;na=ga;pa=fa;oa=qa;ma=ka;xa=ja;while(1){Da=ra;ra=c[sa+88>>2]|0;va=$(ra-Da|0,E)|0;Da=na;na=c[sa+92>>2]|0;Ca=na-Da|0;if((Ca|0)>=1){Ha=oa;Ia=pa;Ja=ma;Ka=xa;break g}if(va){if((va|0)>=0){Ha=oa;Ia=pa;Ja=ma;Ka=xa;break g}if(($(Ca,ma)|0)>($(va,pa)|0)){Ha=oa;Ia=pa;Ja=ma;Ka=xa;break g}}va=$((c[ta>>2]|0)-ra|0,E)|0;Ca=sa+88|0;Da=ha-na|0;Fa=c[(ia?sa:sa+4|0)>>2]|0;if((Fa|0)==(sa|0)){Ha=Ca;Ia=Da;Ja=va;Ka=sa;break}else{Ea=sa;sa=Fa;pa=Da;oa=Ca;ma=va;xa=Ea}}}while(0);qa=c[(ia?la:la+4|0)>>2]|0;if((qa|0)==(la|0)){Aa=Ka;Ba=la;break e}fa=c[qa+88>>2]|0;ga=$(fa-(c[ta>>2]|0)|0,E)|0;ea=ha;ha=c[qa+92>>2]|0;xa=ha-ea|0;ea=ka;ka=$(fa-(c[Ha>>2]|0)|0,E)|0;if(!((xa|0)<0&(ka|0)>0)){Aa=Ka;Ba=la;break e}if(!ga){ha=ha;ka=ka;ja=Ka;la=qa;continue}if((ga|0)>=0){Aa=Ka;Ba=la;break e}if(($(xa,Ja)|0)>=($(ga,Ia)|0)){Aa=Ka;Ba=la;break}else{ja=Ka;la=qa}}}while(0);if(!Z){z=1;E=-1;L=A;V=Aa;X=C;Y=Ba;continue d}Z=Z+1|0;if((Z|0)==2)break d;else{_=Aa;aa=Ba}}}c[Aa+4>>2]=Ba;c[Ba>>2]=Aa;c[V>>2]=Y;c[Y+4>>2]=V;if((c[C+88>>2]|0)<(c[A+88>>2]|0))c[e>>2]=C;if((c[W+88>>2]|0)>=(c[u+88>>2]|0))c[y>>2]=W;c[x>>2]=c[q+12>>2];X=V;L=Y;E=c[Y+88>>2]|0;z=c[V+88>>2]|0;aa=E-z|0;_=c[Y+92>>2]|0;Z=c[V+92>>2]|0;O=_-Z|0;da=c[Y+96>>2]|0;ca=c[V+96>>2]|0;ba=da-ca|0;la=((O|0)<0)<<31>>31;ja=0-aa|0;ka=((ja|0)<0)<<31>>31;ha=((ba|0)<0)<<31>>31;ia=Bs(0,0,ja|0,ka|0)|0;qa=Ps(ba|0,ha|0,ia|0,D|0)|0;ia=D;ga=Ps(ba|0,ha|0,O|0,la|0)|0;ha=D;ba=Ps(aa|0,((aa|0)<0)<<31>>31|0,ja|0,ka|0)|0;aa=D;xa=Ps(O|0,la|0,O|0,la|0)|0;fa=Bs(ba|0,aa|0,xa|0,D|0)|0;xa=D;aa=c[V+8>>2]|0;c[g>>2]=0;if(!aa)La=0;else{ba=Bs(0,0,O|0,la|0)|0;ea=D;ma=0;oa=aa;while(1){pa=c[oa+12>>2]|0;sa=c[pa+88>>2]|0;na=sa-z|0;ra=c[pa+92>>2]|0;Ea=ra-Z|0;va=c[pa+96>>2]|0;pa=((na|0)<0)<<31>>31;Ca=((Ea|0)<0)<<31>>31;Da=Ps(Ea|0,Ca|0,ja|0,ka|0)|0;Fa=D;za=Ps(na|0,pa|0,ba|0,ea|0)|0;h:do if((Da|0)==(za|0)&(Fa|0)==(D|0)?(Ma=va-ca|0,Na=Ps(na|0,pa|0,qa|0,ia|0)|0,Oa=D,Pa=Ps(Ea|0,Ca|0,ga|0,ha|0)|0,Qa=Es(Pa|0,D|0,Na|0,Oa|0)|0,Oa=D,Na=Ps(Ma|0,((Ma|0)<0)<<31>>31|0,fa|0,xa|0)|0,Ma=Es(Qa|0,Oa|0,Na|0,D|0)|0,Na=D,(Na|0)>0|(Na|0)==0&Ma>>>0>0):0){do if(ma){Ma=(c[ma+4>>2]|0)==(oa|0);if((c[ma>>2]|0)!=(oa|0))if(Ma)break;else{Ra=ma;break h}if(!Ma){Ra=ma;break h}Ma=c[ma+12>>2]|0;Na=c[(c[oa+8>>2]|0)+12>>2]|0;Oa=c[Na+88>>2]|0;Qa=c[Na+92>>2]|0;Pa=c[Na+96>>2]|0;Na=(c[Ma+96>>2]|0)-Pa|0;Sa=va-Pa|0;Pa=($(Sa,(c[Ma+92>>2]|0)-Qa|0)|0)-($(Na,ra-Qa|0)|0)|0;Qa=($(Na,sa-Oa|0)|0)-($(Sa,(c[Ma+88>>2]|0)-Oa|0)|0)|0;Oa=Ps(Pa|0,((Pa|0)<0)<<31>>31|0,O|0,la|0)|0;Pa=D;Ma=Ps(Qa|0,((Qa|0)<0)<<31>>31|0,ja|0,ka|0)|0;Qa=Es(Oa|0,Pa|0,Ma|0,D|0)|0;Ma=D;if((Ma|0)>0|(Ma|0)==0&Qa>>>0>0){Ra=ma;break h}}while(0);c[g>>2]=oa;Ra=oa}else Ra=ma;while(0);oa=c[oa>>2]|0;if((oa|0)==(aa|0)){La=Ra;break}else ma=Ra}}ma=c[Y+8>>2]|0;c[h>>2]=0;if(!ma)Ta=0;else{aa=Bs(0,0,O|0,la|0)|0;oa=D;ca=0;ea=ma;while(1){ba=c[ea+12>>2]|0;Z=c[ba+88>>2]|0;z=Z-E|0;x=c[ba+92>>2]|0;y=x-_|0;u=c[ba+96>>2]|0;ba=((z|0)<0)<<31>>31;C=((y|0)<0)<<31>>31;A=Ps(y|0,C|0,ja|0,ka|0)|0;sa=D;ra=Ps(z|0,ba|0,aa|0,oa|0)|0;do if((A|0)==(ra|0)&(sa|0)==(D|0)?(va=u-da|0,Ca=Ps(z|0,ba|0,qa|0,ia|0)|0,Ea=D,pa=Ps(y|0,C|0,ga|0,ha|0)|0,na=Es(pa|0,D|0,Ca|0,Ea|0)|0,Ea=D,Ca=Ps(va|0,((va|0)<0)<<31>>31|0,fa|0,xa|0)|0,va=Es(na|0,Ea|0,Ca|0,D|0)|0,Ca=D,(Ca|0)>0|(Ca|0)==0&va>>>0>0):0){if(ca){if((c[ca>>2]|0)!=(ea|0)){Ua=ca;break}if((c[ca+4>>2]|0)==(ea|0)?(va=c[ca+12>>2]|0,Ca=c[(c[ea+8>>2]|0)+12>>2]|0,Ea=c[Ca+88>>2]|0,na=c[Ca+92>>2]|0,pa=c[Ca+96>>2]|0,Ca=(c[va+96>>2]|0)-pa|0,Fa=u-pa|0,pa=($(Fa,(c[va+92>>2]|0)-na|0)|0)-($(Ca,x-na|0)|0)|0,na=($(Ca,Z-Ea|0)|0)-($(Fa,(c[va+88>>2]|0)-Ea|0)|0)|0,Ea=Ps(pa|0,((pa|0)<0)<<31>>31|0,O|0,la|0)|0,pa=D,va=Ps(na|0,((na|0)<0)<<31>>31|0,ja|0,ka|0)|0,na=Es(Ea|0,pa|0,va|0,D|0)|0,va=D,!((va|0)>0|(va|0)==0&na>>>0>0)):0){Ua=ca;break}}c[h>>2]=ea;Ua=ea}else Ua=ca;while(0);ea=c[ea>>2]|0;if((ea|0)==(ma|0)){Ta=Ua;break}else ca=Ua}}if((La|0)!=0|(Ta|0)!=0){Nr(a,V,Y,g,h);ca=c[g>>2]|0;if(!ca){Va=V;Wa=X}else{ma=c[ca+12>>2]|0;Va=ma;Wa=ma}ma=c[h>>2]|0;if(!ma){Xa=Y;Ya=Va;Za=Wa;_a=L}else{ca=c[ma+12>>2]|0;Xa=ca;Ya=Va;Za=Wa;_a=ca}}else{Xa=Y;Ya=V;Za=X;_a=L}P=Xa;Q=Ya;R=(c[Xa+96>>2]|0)+1|0;S=c[Xa+88>>2]|0;T=Za;U=_a}ca=c[P+92>>2]|0;ma=j+4|0;ea=j+8|0;ka=j+12|0;ja=k+8|0;la=k+16|0;O=l+8|0;xa=l+16|0;fa=m+16|0;ha=m+8|0;ga=n+16|0;ia=n+8|0;qa=a+56|0;da=a+116|0;oa=P;aa=Q;_=ca;E=S;Z=ca;ca=R;x=T;u=U;C=0;y=0;ba=1;z=0;sa=0;ra=0;A=0;na=0;va=0;while(1){pa=aa+88|0;Ea=(c[oa+88>>2]|0)-(c[pa>>2]|0)|0;Fa=aa+92|0;Ca=_-(c[Fa>>2]|0)|0;za=aa+96|0;Da=(c[oa+96>>2]|0)-(c[za>>2]|0)|0;c[j>>2]=Ea;c[ma>>2]=Ca;c[ea>>2]=Da;c[ka>>2]=-1;Qa=E-(c[pa>>2]|0)|0;pa=Z-(c[Fa>>2]|0)|0;Fa=ca-(c[za>>2]|0)|0;za=($(Da,pa)|0)-($(Ca,Fa)|0)|0;Ma=((za|0)<0)<<31>>31;Pa=($(Ea,Fa)|0)-($(Da,Qa)|0)|0;Fa=((Pa|0)<0)<<31>>31;Oa=($(Ca,Qa)|0)-($(Ea,pa)|0)|0;pa=((Oa|0)<0)<<31>>31;Qa=k;c[Qa>>2]=za;c[Qa+4>>2]=Ma;Qa=ja;c[Qa>>2]=Pa;c[Qa+4>>2]=Fa;Qa=la;c[Qa>>2]=Oa;c[Qa+4>>2]=pa;Qa=((Ca|0)<0)<<31>>31;Sa=Ps(Oa|0,pa|0,Ca|0,Qa|0)|0;Na=D;$a=((Da|0)<0)<<31>>31;ab=Ps(Da|0,$a|0,Pa|0,Fa|0)|0;bb=Bs(Sa|0,Na|0,ab|0,D|0)|0;ab=D;Na=Ps(za|0,Ma|0,Da|0,$a|0)|0;$a=D;Da=((Ea|0)<0)<<31>>31;Sa=Ps(Ea|0,Da|0,Oa|0,pa|0)|0;pa=Bs(Na|0,$a|0,Sa|0,D|0)|0;Sa=D;$a=Ps(Ea|0,Da|0,Pa|0,Fa|0)|0;Fa=D;Pa=Ps(za|0,Ma|0,Ca|0,Qa|0)|0;Qa=Bs($a|0,Fa|0,Pa|0,D|0)|0;Pa=l;c[Pa>>2]=bb;c[Pa+4>>2]=ab;ab=O;c[ab>>2]=pa;c[ab+4>>2]=Sa;Sa=xa;c[Sa>>2]=Qa;c[Sa+4>>2]=D;c[m>>2]=0;c[m+4>>2]=0;c[m+8>>2]=0;c[m+12>>2]=0;c[m+16>>2]=0;Sa=Mr(a,0,aa,j,k,l,m)|0;c[n>>2]=0;c[n+4>>2]=0;c[n+8>>2]=0;c[n+12>>2]=0;c[n+16>>2]=0;Qa=Mr(a,1,oa,j,k,l,n)|0;ab=(Sa|0)!=0;pa=(Qa|0)!=0;if(!(ab|pa)){J=119;break}Pa=ab?-1:1;do if(ab&pa){bb=c[fa>>2]|0;Fa=c[ga>>2]|0;if((bb|0)!=(Fa|0)){cb=bb-Fa|0;break}if(!bb)cb=0;else{Fa=m;$a=c[Fa>>2]|0;Ca=c[Fa+4>>2]|0;Fa=ia;Ma=c[Fa>>2]|0;za=c[Fa+4>>2]|0;Fa=Ps(Ma|0,0,$a|0,0)|0;Da=D;Ea=Ps(za|0,0,$a|0,0)|0;$a=D;Na=Ps(Ma|0,0,Ca|0,0)|0;Ma=D;Oa=Ps(za|0,0,Ca|0,0)|0;Ca=D;za=Es(Ea|0,0,Na|0,0)|0;Na=D;Ea=Es($a|0,0,Oa|0,Ca|0)|0;Ca=Es(Ea|0,D|0,Ma|0,0)|0;Ma=Es(Ca|0,D|0,Na|0,0)|0;Na=D;Ca=Es(0,za|0,Fa|0,Da|0)|0;Da=D;Fa=Es(Ma|0,Na|0,(Da>>>0<za>>>0|(Da|0)==(za|0)&Ca>>>0<0)&1|0,0)|0;za=D;Na=ha;Ma=c[Na>>2]|0;Ea=c[Na+4>>2]|0;Na=n;Oa=c[Na>>2]|0;$a=c[Na+4>>2]|0;Na=Ps(Oa|0,0,Ma|0,0)|0;db=D;eb=Ps($a|0,0,Ma|0,0)|0;Ma=D;fb=Ps(Oa|0,0,Ea|0,0)|0;Oa=D;gb=Ps($a|0,0,Ea|0,0)|0;Ea=D;$a=Es(eb|0,0,fb|0,0)|0;fb=D;eb=Es(Ma|0,0,gb|0,Ea|0)|0;Ea=Es(eb|0,D|0,Oa|0,0)|0;Oa=Es(Ea|0,D|0,fb|0,0)|0;fb=D;Ea=Es(0,$a|0,Na|0,db|0)|0;db=D;Na=Es(Oa|0,fb|0,(db>>>0<$a>>>0|(db|0)==($a|0)&Ea>>>0<0)&1|0,0)|0;$a=D;if(!(za>>>0<$a>>>0|(za|0)==($a|0)&Fa>>>0<Na>>>0))if(!(za>>>0>$a>>>0|(za|0)==($a|0)&Fa>>>0>Na>>>0))if(Da>>>0<db>>>0|(Da|0)==(db|0)&Ca>>>0<Ea>>>0)hb=-1;else hb=(Da>>>0>db>>>0|(Da|0)==(db|0)&Ca>>>0>Ea>>>0)&1;else hb=1;else hb=-1;cb=$(hb,bb)|0}}else cb=Pa;while(0);do if(!ba){if((cb|0)>-1){Pa=ia;if((c[ga>>2]|0)<0&((c[Pa>>2]|0)==0&(c[Pa+4>>2]|0)==0)){ib=z;jb=sa;kb=ra;lb=A;J=139;break}else{J=134;break}}Pa=ha;if((c[fa>>2]|0)<0&((c[Pa>>2]|0)==0&(c[Pa+4>>2]|0)==0)){c[o>>2]=Sa;c[p>>2]=Qa;mb=E;nb=ca;ob=Z;pb=u;qb=y;rb=z;sb=sa;tb=ra;ub=A;vb=va}else J=134}else J=134;while(0);if((J|0)==134){J=0;Pa=Kr(a,aa,oa)|0;if(!ra)wb=Pa;else{c[ra+4>>2]=Pa;wb=z}c[Pa>>2]=ra;pa=c[Pa+8>>2]|0;if(!A)xb=pa;else{c[A>>2]=pa;xb=sa}c[pa+4>>2]=A;ib=wb;jb=xb;kb=Pa;lb=pa;J=139}if((J|0)==139){J=0;c[o>>2]=Sa;c[p>>2]=Qa;if(!cb){Nr(a,x,u,o,p);yb=c[p>>2]|0}else yb=Qa;if((cb|0)>-1&(yb|0)!=0){pa=(va|0)!=0;if(pa?(Pa=c[va>>2]|0,(Pa|0)!=(Qa|0)):0){ab=Pa;do{Pa=ab;ab=c[ab>>2]|0;bb=c[Pa+8>>2]|0;Ea=c[bb+12>>2]|0;if((ab|0)==(Pa|0))zb=0;else{Ca=Pa+4|0;c[ab+4>>2]=c[Ca>>2];c[c[Ca>>2]>>2]=ab;zb=ab}c[Ea+8>>2]=zb;Ea=c[bb>>2]|0;Ca=c[Pa+12>>2]|0;if((Ea|0)==(bb|0))Ab=0;else{db=bb+4|0;c[Ea+4>>2]=c[db>>2];c[c[db>>2]>>2]=Ea;Ab=Ea}c[Ca+8>>2]=Ab;c[Pa>>2]=0;c[Pa+4>>2]=0;c[Pa+8>>2]=0;c[Pa+12>>2]=0;c[Pa+16>>2]=0;c[Pa>>2]=c[qa>>2];c[qa>>2]=Pa;c[bb>>2]=0;c[bb+4>>2]=0;c[bb+8>>2]=0;c[bb+12>>2]=0;c[bb+16>>2]=0;c[bb>>2]=c[qa>>2];c[qa>>2]=bb;c[da>>2]=(c[da>>2]|0)+-1}while((ab|0)!=(Qa|0));}if(!lb){Bb=yb;Cb=pa?y:Qa;Db=jb}else{if(pa){c[va>>2]=jb;Eb=Qa+4|0;Fb=y;Gb=va}else{ab=Qa+4|0;bb=c[ab>>2]|0;c[bb>>2]=jb;Eb=ab;Fb=jb;Gb=bb}c[jb+4>>2]=Gb;c[lb>>2]=Qa;c[Eb>>2]=lb;Bb=c[p>>2]|0;Cb=Fb;Db=0}bb=u;mb=c[bb+88>>2]|0;nb=c[bb+96>>2]|0;ob=c[bb+92>>2]|0;pb=c[Bb+12>>2]|0;qb=Cb;rb=ib;sb=Db;tb=kb;ub=0;vb=c[Bb+8>>2]|0}else{mb=E;nb=ca;ob=Z;pb=u;qb=y;rb=ib;sb=jb;tb=kb;ub=lb;vb=va}}bb=c[o>>2]|0;if((cb|0)<1&(bb|0)!=0){ab=(na|0)!=0;if(ab?(Pa=c[na+4>>2]|0,(Pa|0)!=(Sa|0)):0){Ca=Pa;do{Pa=Ca+4|0;Ea=Ca;Ca=c[Pa>>2]|0;db=c[Ea>>2]|0;Da=c[Ea+8>>2]|0;Na=c[Da+12>>2]|0;if((db|0)==(Ea|0))Hb=0;else{c[db+4>>2]=Ca;c[c[Pa>>2]>>2]=db;Hb=db}c[Na+8>>2]=Hb;Na=c[Da>>2]|0;db=c[Ea+12>>2]|0;if((Na|0)==(Da|0))Ib=0;else{Pa=Da+4|0;c[Na+4>>2]=c[Pa>>2];c[c[Pa>>2]>>2]=Na;Ib=Na}c[db+8>>2]=Ib;c[Ea>>2]=0;c[Ea+4>>2]=0;c[Ea+8>>2]=0;c[Ea+12>>2]=0;c[Ea+16>>2]=0;c[Ea>>2]=c[qa>>2];c[qa>>2]=Ea;c[Da>>2]=0;c[Da+4>>2]=0;c[Da+8>>2]=0;c[Da+12>>2]=0;c[Da+16>>2]=0;c[Da>>2]=c[qa>>2];c[qa>>2]=Da;c[da>>2]=(c[da>>2]|0)+-1}while((Ca|0)!=(Sa|0));}if(!tb){Jb=bb;Kb=ab?C:Sa;Lb=rb}else{if(ab){c[na+4>>2]=rb;Mb=Sa;Nb=C;Ob=na}else{Ca=c[Sa>>2]|0;c[Ca+4>>2]=rb;Mb=Sa;Nb=rb;Ob=Ca}c[rb>>2]=Ob;c[Mb>>2]=tb;c[tb+4>>2]=Sa;Jb=c[o>>2]|0;Kb=Nb;Lb=0}Ca=x;Pb=c[Ca+96>>2]|0;Qb=c[Ca+92>>2]|0;Rb=c[Ca+88>>2]|0;Sb=c[Jb+12>>2]|0;Tb=Kb;Ub=Lb;Vb=0;Wb=c[Jb+8>>2]|0}else{Pb=nb;Qb=ob;Rb=mb;Sb=x;Tb=C;Ub=rb;Vb=tb;Wb=na}Ca=Sb;Qa=pb;if((Ca|0)==(Q|0)&(Qa|0)==(P|0))break;oa=Qa;aa=Ca;_=c[Qa+92>>2]|0;E=Rb;Z=Qb;ca=Pb;x=Sb;u=pb;C=Tb;y=qb;ba=0;z=Ub;sa=sb;ra=Vb;A=ub;na=Wb;va=vb}if((J|0)==119){va=Kr(a,aa,oa)|0;c[va>>2]=va;c[va+4>>2]=va;c[aa+8>>2]=va;na=c[va+8>>2]|0;c[na>>2]=na;c[na+4>>2]=na;c[u+8>>2]=na;break}if(Wb){na=Wb+4|0;va=c[na>>2]|0;if((va|0)!=(Tb|0)){A=va;do{va=A+4|0;ra=A;A=c[va>>2]|0;sa=c[ra>>2]|0;z=c[ra+8>>2]|0;ba=c[z+12>>2]|0;if((sa|0)==(ra|0))Xb=0;else{c[sa+4>>2]=A;c[c[va>>2]>>2]=sa;Xb=sa}c[ba+8>>2]=Xb;ba=c[z>>2]|0;sa=c[ra+12>>2]|0;if((ba|0)==(z|0))Yb=0;else{va=z+4|0;c[ba+4>>2]=c[va>>2];c[c[va>>2]>>2]=ba;Yb=ba}c[sa+8>>2]=Yb;c[ra>>2]=0;c[ra+4>>2]=0;c[ra+8>>2]=0;c[ra+12>>2]=0;c[ra+16>>2]=0;c[ra>>2]=c[qa>>2];c[qa>>2]=ra;c[z>>2]=0;c[z+4>>2]=0;c[z+8>>2]=0;c[z+12>>2]=0;c[z+16>>2]=0;c[z>>2]=c[qa>>2];c[qa>>2]=z;c[da>>2]=(c[da>>2]|0)+-1}while((A|0)!=(Tb|0));}if(Vb){c[Ub>>2]=Wb;c[na>>2]=Ub;c[Tb>>2]=Vb;c[Vb+4>>2]=Tb}}else{c[Ub>>2]=Vb;c[Vb+4>>2]=Ub;c[Sb+8>>2]=Vb}if(!vb){c[ub>>2]=sb;c[sb+4>>2]=ub;c[P+8>>2]=ub;break}A=c[vb>>2]|0;if((A|0)!=(qb|0)){u=A;do{A=u;u=c[u>>2]|0;aa=c[A+8>>2]|0;oa=c[aa+12>>2]|0;if((u|0)==(A|0))Zb=0;else{z=A+4|0;c[u+4>>2]=c[z>>2];c[c[z>>2]>>2]=u;Zb=u}c[oa+8>>2]=Zb;oa=c[aa>>2]|0;z=c[A+12>>2]|0;if((oa|0)==(aa|0))_b=0;else{ra=aa+4|0;c[oa+4>>2]=c[ra>>2];c[c[ra>>2]>>2]=oa;_b=oa}c[z+8>>2]=_b;c[A>>2]=0;c[A+4>>2]=0;c[A+8>>2]=0;c[A+12>>2]=0;c[A+16>>2]=0;c[A>>2]=c[qa>>2];c[qa>>2]=A;c[aa>>2]=0;c[aa+4>>2]=0;c[aa+8>>2]=0;c[aa+12>>2]=0;c[aa+16>>2]=0;c[aa>>2]=c[qa>>2];c[qa>>2]=aa;c[da>>2]=(c[da>>2]|0)+-1}while((u|0)!=(qb|0));}if(ub){c[vb>>2]=sb;c[sb+4>>2]=vb;c[ub>>2]=qb;c[qb+4>>2]=ub}}while(0);i=f;return}while(0);c[s+8>>2]=0;c[s>>2]=s;c[s+4>>2]=s;c[e>>2]=s;c[e+4>>2]=s;c[e+8>>2]=s;c[e+12>>2]=s;i=f;return}function Mr(a,b,d,e,f,g,h){a=a|0;b=b|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,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,aa=0,ba=0;i=d+8|0;j=c[i>>2]|0;if(!j){k=0;return k|0}l=a+100|0;a=d+88|0;m=d+92|0;n=d+96|0;d=g+8|0;o=g+16|0;p=f+8|0;q=f+16|0;r=h+8|0;s=h+16|0;t=e+8|0;u=e+4|0;v=j;j=0;while(1){a:do if((c[v+20>>2]|0)>(c[l>>2]|0)){w=c[v+12>>2]|0;x=c[w+88>>2]|0;y=x-(c[a>>2]|0)|0;z=c[w+92>>2]|0;A=z-(c[m>>2]|0)|0;B=c[w+96>>2]|0;w=B-(c[n>>2]|0)|0;C=((y|0)<0)<<31>>31;E=g;F=Ps(y|0,C|0,c[E>>2]|0,c[E+4>>2]|0)|0;E=D;G=((A|0)<0)<<31>>31;H=d;I=Ps(A|0,G|0,c[H>>2]|0,c[H+4>>2]|0)|0;H=Es(I|0,D|0,F|0,E|0)|0;E=D;F=((w|0)<0)<<31>>31;I=o;J=Ps(w|0,F|0,c[I>>2]|0,c[I+4>>2]|0)|0;I=Es(H|0,E|0,J|0,D|0)|0;J=D;E=f;H=Ps(c[E>>2]|0,c[E+4>>2]|0,y|0,C|0)|0;C=D;E=p;K=Ps(c[E>>2]|0,c[E+4>>2]|0,A|0,G|0)|0;G=Es(K|0,D|0,H|0,C|0)|0;C=D;H=q;K=Ps(c[H>>2]|0,c[H+4>>2]|0,w|0,F|0)|0;F=Es(G|0,C|0,K|0,D|0)|0;K=D;if((J|0)>0|(J|0)==0&I>>>0>0){L=1;M=I;N=J;O=1}else{C=(J|0)<0;G=Bs(0,0,I|0,J|0)|0;L=C?-1:0;M=C?G:0;N=C?D:0;O=C?-1:0}if(!((K|0)>0|(K|0)==0&F>>>0>0)){C=(K|0)<0;G=0-L|0;J=Bs(0,0,F|0,K|0)|0;I=C?J:0;J=C?D:0;if(((C?G:L)|0)==0&((I|0)==0&(J|0)==0)){P=j;break}else{Q=I;R=J;S=C?G:O}}else{Q=F;R=K;S=O}if(!j){K=h;c[K>>2]=M;c[K+4>>2]=N;K=r;c[K>>2]=Q;c[K+4>>2]=R;c[s>>2]=S;P=v;break}K=c[s>>2]|0;if((S|0)==(K|0)){if(S){F=r;G=c[F>>2]|0;C=c[F+4>>2]|0;F=Ps(G|0,0,M|0,0)|0;J=D;I=Ps(C|0,0,M|0,0)|0;H=D;E=Ps(G|0,0,N|0,0)|0;G=D;T=Ps(C|0,0,N|0,0)|0;C=D;U=Es(I|0,0,E|0,0)|0;E=D;I=Es(H|0,0,T|0,C|0)|0;C=Es(I|0,D|0,G|0,0)|0;G=Es(C|0,D|0,E|0,0)|0;E=D;C=Es(0,U|0,F|0,J|0)|0;J=D;F=Es(G|0,E|0,(J>>>0<U>>>0|(J|0)==(U|0)&C>>>0<0)&1|0,0)|0;U=D;E=h;G=c[E>>2]|0;I=c[E+4>>2]|0;E=Ps(G|0,0,Q|0,0)|0;T=D;H=Ps(I|0,0,Q|0,0)|0;V=D;W=Ps(G|0,0,R|0,0)|0;G=D;X=Ps(I|0,0,R|0,0)|0;I=D;Y=Es(H|0,0,W|0,0)|0;W=D;H=Es(V|0,0,X|0,I|0)|0;I=Es(H|0,D|0,G|0,0)|0;G=Es(I|0,D|0,W|0,0)|0;W=D;I=Es(0,Y|0,E|0,T|0)|0;T=D;E=Es(G|0,W|0,(T>>>0<Y>>>0|(T|0)==(Y|0)&I>>>0<0)&1|0,0)|0;Y=D;if(!(U>>>0<Y>>>0|(U|0)==(Y|0)&F>>>0<E>>>0))if(!(U>>>0>Y>>>0|(U|0)==(Y|0)&F>>>0>E>>>0))if(J>>>0<T>>>0|(J|0)==(T|0)&C>>>0<I>>>0)Z=-1;else Z=(J>>>0>T>>>0|(J|0)==(T|0)&C>>>0>I>>>0)&1;else Z=1;else Z=-1;_=$(Z,S)|0;aa=18}}else{_=S-K|0;aa=18}do if((aa|0)==18){aa=0;if((_|0)>=0)if(!_)break;else{P=j;break a}else{K=h;c[K>>2]=M;c[K+4>>2]=N;K=r;c[K>>2]=Q;c[K+4>>2]=R;c[s>>2]=S;P=v;break a}}while(0);K=(c[j+4>>2]|0)==(v|0);if((c[j>>2]|0)==(v|0))if(K){I=c[t>>2]|0;C=$(I,A)|0;T=c[u>>2]|0;J=C-($(T,w)|0)|0;C=c[e>>2]|0;E=($(C,w)|0)-($(y,I)|0)|0;I=($(y,T)|0)-($(C,A)|0)|0;C=c[j+12>>2]|0;T=c[(c[v+8>>2]|0)+12>>2]|0;F=c[T+88>>2]|0;Y=(c[C+88>>2]|0)-F|0;U=c[T+92>>2]|0;W=(c[C+92>>2]|0)-U|0;G=c[T+96>>2]|0;T=(c[C+96>>2]|0)-G|0;C=x-F|0;F=z-U|0;U=B-G|0;G=($(U,W)|0)-($(F,T)|0)|0;H=($(C,T)|0)-($(U,Y)|0)|0;U=($(F,Y)|0)-($(C,W)|0)|0;W=Ps(G|0,((G|0)<0)<<31>>31|0,J|0,((J|0)<0)<<31>>31|0)|0;J=D;G=Ps(H|0,((H|0)<0)<<31>>31|0,E|0,((E|0)<0)<<31>>31|0)|0;E=D;H=Ps(U|0,((U|0)<0)<<31>>31|0,I|0,((I|0)<0)<<31>>31|0)|0;I=Es(W|0,J|0,H|0,D|0)|0;H=Es(I|0,D|0,G|0,E|0)|0;E=D;ba=(E|0)>0|(E|0)==0&H>>>0>0?2:1}else ba=2;else ba=K&1;P=(ba|0)==2^b?j:v}else P=j;while(0);v=c[v>>2]|0;if((v|0)==(c[i>>2]|0)){k=P;break}else j=P}return k|0}
function Gf(b,d){b=b|0;d=d|0;var e=0,f=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0.0,q=0.0,r=0,s=0.0,t=0.0,u=0,v=0,w=0,x=0.0,y=0,z=0,A=0,B=0.0,C=0,D=0,E=0.0,F=0.0,G=0.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.0,V=0.0,W=0.0,X=0.0,Y=0.0,Z=0,_=0;e=c[b+28>>2]|0;f=e+4|0;h=c[b+32>>2]|0;i=h+4|0;Ff(b,f,i,e+288|0,h+288|0);j=c[d+8>>2]|0;g[j>>2]=1.0;k=d+24|0;l=c[k>>2]|0;m=l+1|0;g[j+(m<<2)>>2]=1.0;n=l<<1;o=n+2|0;g[j+(o<<2)>>2]=1.0;p=+g[b+348>>2];j=e+8|0;q=+g[b+352>>2];r=e+12|0;s=+g[b+356>>2];t=+g[f>>2]*p+ +g[j>>2]*q+ +g[r>>2]*s;u=e+20|0;v=e+24|0;w=e+28|0;x=p*+g[u>>2]+q*+g[v>>2]+s*+g[w>>2];y=e+36|0;z=e+40|0;A=e+44|0;B=p*+g[y>>2]+q*+g[z>>2]+s*+g[A>>2];C=d+12|0;D=c[C>>2]|0;c[D>>2]=0;g[D+4>>2]=B;g[D+8>>2]=-x;g[D+12>>2]=0.0;g[D+(l<<2)>>2]=-B;c[D+(m<<2)>>2]=0;g[D+(l+2<<2)>>2]=t;g[D+(l+3<<2)>>2]=0.0;g[D+(n<<2)>>2]=x;g[D+((n|1)<<2)>>2]=-t;c[D+(o<<2)>>2]=0;g[D+(n+3<<2)>>2]=0.0;n=c[d+16>>2]|0;g[n>>2]=-1.0;g[n+(m<<2)>>2]=-1.0;g[n+(o<<2)>>2]=-1.0;s=+g[b+412>>2];q=+g[b+416>>2];p=+g[b+420>>2];E=+g[i>>2]*s+ +g[h+8>>2]*q+ +g[h+12>>2]*p;F=s*+g[h+20>>2]+q*+g[h+24>>2]+p*+g[h+28>>2];G=s*+g[h+36>>2]+q*+g[h+40>>2]+p*+g[h+44>>2];i=d+20|0;o=c[i>>2]|0;n=c[k>>2]|0;m=n<<1;c[o>>2]=0;g[o+4>>2]=-G;g[o+8>>2]=F;g[o+12>>2]=0.0;g[o+(n<<2)>>2]=G;c[o+(n+1<<2)>>2]=0;g[o+(n+2<<2)>>2]=-E;g[o+(n+3<<2)>>2]=0.0;g[o+(m<<2)>>2]=-F;g[o+((m|1)<<2)>>2]=E;c[o+(m+2<<2)>>2]=0;g[o+(m+3<<2)>>2]=0.0;D=b+592|0;l=c[D>>2]|0;p=+g[((l&2|0)==0?d+4|0:b+600|0)>>2]*+g[d>>2];H=d+28|0;I=c[H>>2]|0;J=d+36|0;K=c[J>>2]|0;L=d+40|0;M=c[L>>2]|0;N=b+596|0;O=d+32|0;g[I>>2]=p*(E+ +g[h+52>>2]-t-+g[e+52>>2]);g[K>>2]=-3402823466385288598117041.0e14;g[M>>2]=3402823466385288598117041.0e14;if(!(l&1)){g[I+(n<<2)>>2]=p*(F+ +g[h+56>>2]-x-+g[e+56>>2]);g[K+(n<<2)>>2]=-3402823466385288598117041.0e14;g[M+(n<<2)>>2]=3402823466385288598117041.0e14;g[I+(m<<2)>>2]=p*(G+ +g[h+60>>2]-B-+g[e+60>>2]);g[K+(m<<2)>>2]=-3402823466385288598117041.0e14;g[M+(m<<2)>>2]=3402823466385288598117041.0e14}else{P=c[O>>2]|0;c[P>>2]=c[N>>2];g[I+(n<<2)>>2]=p*(F+ +g[h+56>>2]-x-+g[e+56>>2]);g[K+(n<<2)>>2]=-3402823466385288598117041.0e14;g[M+(n<<2)>>2]=3402823466385288598117041.0e14;c[P+(n<<2)>>2]=c[N>>2];g[I+(m<<2)>>2]=p*(G+ +g[h+60>>2]-B-+g[e+60>>2]);g[K+(m<<2)>>2]=-3402823466385288598117041.0e14;g[M+(m<<2)>>2]=3402823466385288598117041.0e14;c[P+(m<<2)>>2]=c[N>>2]}N=n*3|0;do if(!(a[b+526>>0]|0)){Q=I;R=K;S=M;T=N}else{m=c[C>>2]|0;B=+g[b+456>>2];if(+g[b+444>>2]<B?+g[b+448>>2]<B:0){B=+g[f>>2];G=+g[j>>2];p=+g[r>>2];x=+g[b+304>>2];F=+g[b+320>>2];t=+g[b+336>>2];E=B*x+G*F+p*t;q=+g[b+308>>2];s=+g[b+324>>2];U=+g[b+340>>2];V=B*q+G*s+p*U;p=+g[u>>2];G=+g[v>>2];B=+g[w>>2];W=x*p+F*G+t*B;X=q*p+s*G+U*B;B=+g[y>>2];G=+g[z>>2];p=+g[A>>2];Y=x*B+F*G+t*p;t=q*B+s*G+U*p;P=n<<2;g[m+(N<<2)>>2]=E;e=N+1|0;g[m+(e<<2)>>2]=W;h=N+2|0;g[m+(h<<2)>>2]=Y;g[m+(P<<2)>>2]=V;Z=P|1;g[m+(Z<<2)>>2]=X;_=P|2;g[m+(_<<2)>>2]=t;g[o+(N<<2)>>2]=-E;g[o+(e<<2)>>2]=-W;g[o+(h<<2)>>2]=-Y;g[o+(P<<2)>>2]=-V;g[o+(Z<<2)>>2]=-X;g[o+(_<<2)>>2]=-t;p=+g[d>>2]*+g[b+436>>2];_=b+460|0;Z=b+464|0;h=b+468|0;e=c[H>>2]|0;g[e+(N<<2)>>2]=p*(E*+g[_>>2]+W*+g[Z>>2]+Y*+g[h>>2]);g[e+(P<<2)>>2]=p*(V*+g[_>>2]+X*+g[Z>>2]+t*+g[h>>2]);h=c[J>>2]|0;g[h+(N<<2)>>2]=-3402823466385288598117041.0e14;Z=c[L>>2]|0;g[Z+(N<<2)>>2]=3402823466385288598117041.0e14;g[h+(P<<2)>>2]=-3402823466385288598117041.0e14;g[Z+(P<<2)>>2]=3402823466385288598117041.0e14;Q=e;R=h;S=Z;T=(c[k>>2]|0)+P|0;break}t=+g[b+436>>2];X=t*(+g[b+460>>2]*t);V=t*(t*+g[b+464>>2]);p=t*(t*+g[b+468>>2]);g[m+(N<<2)>>2]=X;P=N+1|0;g[m+(P<<2)>>2]=V;Z=N+2|0;g[m+(Z<<2)>>2]=p;g[o+(N<<2)>>2]=-X;g[o+(P<<2)>>2]=-V;g[o+(Z<<2)>>2]=-p;g[I+(N<<2)>>2]=+g[d>>2]*+g[b+432>>2]*+g[b+504>>2];if(l&4)c[(c[O>>2]|0)+(N<<2)>>2]=c[b+604>>2];g[K+(N<<2)>>2]=0.0;g[M+(N<<2)>>2]=3402823466385288598117041.0e14;Q=I;R=K;S=M;T=n<<2}while(0);if(!(a[b+525>>0]|0))return;p=+g[b+436>>2];V=p*(+g[b+476>>2]*p);X=p*(p*+g[b+480>>2]);t=p*(p*+g[b+484>>2]);n=c[C>>2]|0;C=c[i>>2]|0;g[n+(T<<2)>>2]=V;i=T+1|0;g[n+(i<<2)>>2]=X;M=T+2|0;g[n+(M<<2)>>2]=t;g[C+(T<<2)>>2]=-V;g[C+(i<<2)>>2]=-X;g[C+(M<<2)>>2]=-t;M=b+508|0;g[Q+(T<<2)>>2]=+g[d>>2]*+g[b+432>>2]*+g[M>>2];if(c[D>>2]&4)c[(c[O>>2]|0)+(T<<2)>>2]=c[b+604>>2];if(!(+g[b+452>>2]>0.0)){g[R+(T<<2)>>2]=-3402823466385288598117041.0e14;g[S+(T<<2)>>2]=3402823466385288598117041.0e14;return}S=R+(T<<2)|0;R=c[L>>2]|0;if(+g[M>>2]>0.0){g[S>>2]=0.0;g[R+(T<<2)>>2]=3402823466385288598117041.0e14;return}else{g[S>>2]=-3402823466385288598117041.0e14;g[R+(T<<2)>>2]=0.0;return}}function Hf(b){b=b|0;var d=0,e=0,f=0,h=0,j=0,k=0,l=0,m=0,n=0.0,o=0.0,p=0.0,q=0.0,r=0,s=0,t=0.0,u=0.0,v=0.0,w=0.0,x=0.0,y=0.0,z=0.0,A=0.0,B=0.0,C=0.0,D=0.0,E=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,N=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0;d=i;i=i+176|0;e=d+128|0;f=d+80|0;h=d+32|0;j=d+16|0;k=d;if(!(a[b+527>>0]|0)){i=d;return}g[b+36>>2]=0.0;g[b+520>>2]=0.0;g[b+516>>2]=0.0;l=b+576|0;c[l>>2]=0;c[l+4>>2]=0;c[l+8>>2]=0;c[l+12>>2]=0;l=b+28|0;if(!(a[b+524>>0]|0)){m=c[l>>2]|0;n=+g[b+348>>2];o=+g[b+352>>2];p=+g[b+356>>2];q=n*+g[m+20>>2]+o*+g[m+24>>2]+p*+g[m+28>>2]+ +g[m+56>>2];r=b+32|0;s=c[r>>2]|0;t=+g[b+412>>2];u=+g[b+416>>2];v=+g[b+420>>2];w=+g[s+52>>2];x=+g[s+56>>2];y=t*+g[s+20>>2]+u*+g[s+24>>2]+v*+g[s+28>>2]+x;z=t*+g[s+36>>2]+u*+g[s+40>>2]+v*+g[s+44>>2]+ +g[s+60>>2];A=y-q;B=n*+g[m+4>>2]+o*+g[m+8>>2]+p*+g[m+12>>2]+ +g[m+52>>2];C=n*+g[m+36>>2]+o*+g[m+40>>2]+p*+g[m+44>>2]+ +g[m+60>>2];p=t*+g[s+4>>2]+u*+g[s+8>>2]+v*+g[s+12>>2]+w;v=p-B;u=z-C;t=v*v+A*A+u*u;if(t>1.1920928955078125e-07){o=1.0/+P(+t);t=v*o;v=A*o;A=u*o;g[e>>2]=t;g[e+4>>2]=v;g[e+8>>2]=A;c[e+12>>2]=0;D=A;E=v;F=t}else{c[e>>2]=1065353216;c[e+4>>2]=0;c[e+8>>2]=0;g[e+12>>2]=0.0;D=0.0;E=0.0;F=1.0}if(+O(+D)>.7071067690849304){t=D*D+E*E;v=1.0/+P(+t);A=-(v*D);o=v*E;G=-(F*o);H=F*A;I=o;J=t*v;K=A;L=0.0}else{A=F*F+E*E;v=1.0/+P(+A);t=-(E*v);E=v*F;G=D*t;H=A*v;I=0.0;J=-(D*E);K=E;L=t}g[e+16>>2]=L;g[e+20>>2]=K;g[e+24>>2]=I;g[e+32>>2]=J;g[e+36>>2]=G;g[e+40>>2]=H;m=f+4|0;M=f+8|0;N=f+12|0;Q=f+16|0;R=f+20|0;S=f+24|0;T=f+28|0;U=f+32|0;V=f+36|0;W=f+40|0;X=f+44|0;Y=h+4|0;Z=h+8|0;_=h+12|0;$=h+16|0;aa=h+20|0;ba=h+24|0;ca=h+28|0;da=h+32|0;ea=h+36|0;fa=h+40|0;ga=h+44|0;ha=j+4|0;ia=j+8|0;ja=j+12|0;ka=k+4|0;la=k+8|0;ma=k+12|0;na=s;H=w;w=x;s=0;while(1){oa=c[l>>2]|0;c[f>>2]=c[oa+4>>2];c[m>>2]=c[oa+20>>2];c[M>>2]=c[oa+36>>2];g[N>>2]=0.0;c[Q>>2]=c[oa+8>>2];c[R>>2]=c[oa+24>>2];c[S>>2]=c[oa+40>>2];g[T>>2]=0.0;c[U>>2]=c[oa+12>>2];c[V>>2]=c[oa+28>>2];c[W>>2]=c[oa+44>>2];g[X>>2]=0.0;c[h>>2]=c[na+4>>2];c[Y>>2]=c[na+20>>2];c[Z>>2]=c[na+36>>2];g[_>>2]=0.0;c[$>>2]=c[na+8>>2];c[aa>>2]=c[na+24>>2];c[ba>>2]=c[na+40>>2];g[ca>>2]=0.0;c[da>>2]=c[na+12>>2];c[ea>>2]=c[na+28>>2];c[fa>>2]=c[na+44>>2];g[ga>>2]=0.0;x=q-+g[oa+56>>2];G=C-+g[oa+60>>2];g[j>>2]=B-+g[oa+52>>2];g[ha>>2]=x;g[ia>>2]=G;g[ja>>2]=0.0;G=z-+g[na+60>>2];g[k>>2]=p-H;g[ka>>2]=y-w;g[la>>2]=G;g[ma>>2]=0.0;oa=c[l>>2]|0;pa=c[r>>2]|0;Of(b+48+(s*84|0)|0,f,h,j,k,e+(s<<4)|0,oa+420|0,+g[oa+368>>2],pa+420|0,+g[pa+368>>2]);pa=s+1|0;if((pa|0)==3)break;oa=c[r>>2]|0;na=oa;H=+g[oa+52>>2];w=+g[oa+56>>2];s=pa}qa=r}else qa=b+32|0;r=c[l>>2]|0;l=c[qa>>2]|0;Ff(b,r+4|0,l+4|0,r+288|0,l+288|0);i=d;return}function If(b,d,e,f){b=b|0;d=d|0;e=e|0;f=+f;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0.0,x=0,y=0.0,z=0,A=0.0,B=0.0,C=0.0,D=0.0,E=0.0,F=0.0,G=0.0,H=0,I=0,J=0,K=0,L=0.0,M=0.0,N=0.0,O=0.0,Q=0.0,R=0.0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0.0,aa=0,ba=0.0,ca=0,da=0.0,ea=0.0,fa=0.0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0.0,Aa=0.0,Ba=0,Ca=0.0,Da=0.0,Ea=0.0,Fa=0.0,Ga=0,Ha=0,Ia=0,Ja=0,Ka=0,La=0,Ma=0,Na=0,Oa=0,Pa=0,Qa=0,Ra=0,Sa=0,Ta=0.0,Ua=0.0,Va=0.0,Wa=0.0,Xa=0.0,Ya=0.0,Za=0.0,_a=0.0,$a=0.0,ab=0.0,bb=0.0,cb=0.0,db=0.0,eb=0.0,fb=0.0,gb=0.0,hb=0.0,ib=0.0,jb=0.0,kb=0.0,lb=0.0,mb=0.0,nb=0.0,ob=0.0,pb=0.0,qb=0,rb=0.0,sb=0.0,tb=0.0,ub=0.0,vb=0.0;h=i;i=i+448|0;j=h+424|0;k=h+416|0;l=h+352|0;m=h+288|0;n=h+272|0;o=h+256|0;p=h+192|0;q=h+128|0;r=h+64|0;s=h;if(!(a[b+527>>0]|0)){i=h;return}t=b+28|0;u=c[t>>2]|0;v=b+348|0;w=+g[v>>2];x=b+352|0;y=+g[x>>2];z=b+356|0;A=+g[z>>2];B=+g[u+52>>2];C=w*+g[u+4>>2]+y*+g[u+8>>2]+A*+g[u+12>>2]+B;D=+g[u+56>>2];E=w*+g[u+20>>2]+y*+g[u+24>>2]+A*+g[u+28>>2]+D;F=+g[u+60>>2];G=w*+g[u+36>>2]+y*+g[u+40>>2]+A*+g[u+44>>2]+F;u=b+32|0;H=c[u>>2]|0;I=b+412|0;A=+g[I>>2];J=b+416|0;y=+g[J>>2];K=b+420|0;w=+g[K>>2];L=+g[H+52>>2];M=A*+g[H+4>>2]+y*+g[H+8>>2]+w*+g[H+12>>2]+L;N=+g[H+56>>2];O=A*+g[H+20>>2]+y*+g[H+24>>2]+w*+g[H+28>>2]+N;Q=+g[H+60>>2];R=A*+g[H+36>>2]+y*+g[H+40>>2]+w*+g[H+44>>2]+Q;if(!(a[b+524>>0]|0)){w=C-B;B=E-D;D=G-F;F=M-L;L=O-N;N=R-Q;H=d+64|0;S=d+68|0;T=d+72|0;U=d+80|0;Q=+g[d+192>>2]+ +g[U>>2];V=d+84|0;y=+g[d+196>>2]+ +g[V>>2];W=d+88|0;A=+g[d+200>>2]+ +g[W>>2];X=e+64|0;Y=e+68|0;Z=e+72|0;_=e+80|0;$=+g[e+192>>2]+ +g[_>>2];aa=e+84|0;ba=+g[e+196>>2]+ +g[aa>>2];ca=e+88|0;da=+g[e+200>>2]+ +g[ca>>2];ea=+g[d+176>>2]+ +g[H>>2]+(D*y-B*A)-(+g[e+176>>2]+ +g[X>>2]+(N*ba-L*da));fa=+g[d+180>>2]+ +g[S>>2]+(w*A-D*Q)-(+g[e+180>>2]+ +g[Y>>2]+(F*da-N*$));da=+g[d+184>>2]+ +g[T>>2]+(B*Q-w*y)-(+g[e+184>>2]+ +g[Z>>2]+(L*$-F*ba));ba=C-M;M=E-O;O=G-R;ga=b+36|0;ha=e+240|0;ia=e+112|0;ja=e+116|0;ka=e+120|0;la=e+96|0;ma=e+100|0;na=e+104|0;oa=d+112|0;pa=d+116|0;qa=d+120|0;ra=d+96|0;sa=d+100|0;ta=d+104|0;ua=(c[d+240>>2]|0)==0;va=0;do{R=1.0/+g[b+48+(va*84|0)+80>>2];wa=b+48+(va*84|0)|0;G=+g[wa>>2];xa=b+48+(va*84|0)+4|0;E=+g[xa>>2];ya=b+48+(va*84|0)+8|0;C=+g[ya>>2];$=R*((ba*G+M*E+O*C)*-.30000001192092896/f)-R*(ea*G+fa*E+da*C);g[ga>>2]=+g[ga>>2]+$;C=+g[ya>>2];E=+g[xa>>2];G=B*C-D*E;R=+g[wa>>2];y=D*R-w*C;Q=w*E-B*R;A=L*C-N*E;za=N*R-F*C;Aa=F*E-L*R;Ba=c[t>>2]|0;Ca=+g[Ba+368>>2];if(!ua){Da=G*+g[Ba+320>>2]+y*+g[Ba+324>>2]+Q*+g[Ba+328>>2];Ea=G*+g[Ba+304>>2]+y*+g[Ba+308>>2]+Q*+g[Ba+312>>2];Fa=G*+g[Ba+288>>2]+y*+g[Ba+292>>2]+Q*+g[Ba+296>>2];Q=$*(E*Ca)*+g[pa>>2];E=$*(C*Ca)*+g[qa>>2];g[H>>2]=$*(R*Ca)*+g[oa>>2]+ +g[H>>2];g[S>>2]=Q+ +g[S>>2];g[T>>2]=E+ +g[T>>2];E=Ea*($*+g[sa>>2]);Ea=Da*($*+g[ta>>2]);g[U>>2]=Fa*($*+g[ra>>2])+ +g[U>>2];g[V>>2]=E+ +g[V>>2];g[W>>2]=Ea+ +g[W>>2]}Ba=c[u>>2]|0;Ea=+g[Ba+368>>2];E=-$;if(c[ha>>2]|0){$=A*+g[Ba+320>>2]+za*+g[Ba+324>>2]+Aa*+g[Ba+328>>2];Fa=A*+g[Ba+304>>2]+za*+g[Ba+308>>2]+Aa*+g[Ba+312>>2];Da=A*+g[Ba+288>>2]+za*+g[Ba+292>>2]+Aa*+g[Ba+296>>2];Aa=Ea*+g[xa>>2]*E*+g[ja>>2];za=Ea*+g[ya>>2]*E*+g[ka>>2];g[X>>2]=+g[ia>>2]*(Ea*+g[wa>>2]*E)+ +g[X>>2];g[Y>>2]=Aa+ +g[Y>>2];g[Z>>2]=za+ +g[Z>>2];za=Fa*(+g[ma>>2]*E);Fa=$*(+g[na>>2]*E);g[_>>2]=Da*(+g[la>>2]*E)+ +g[_>>2];g[aa>>2]=za+ +g[aa>>2];g[ca>>2]=Fa+ +g[ca>>2]}va=va+1|0}while((va|0)!=3);}do if(!(a[b+552>>0]|0)){L=+g[b+440>>2];va=d+192|0;if(!(L>1.1920928955078125e-07)){Ga=d+80|0;Ha=d+196|0;Ia=d+84|0;Ja=d+200|0;Ka=d+88|0;La=e+192|0;Ma=e+80|0;Na=e+196|0;Oa=e+84|0;Pa=e+200|0;Qa=e+88|0;Ra=va;break}ca=d+80|0;aa=d+196|0;_=d+84|0;la=d+200|0;na=d+88|0;ma=e+192|0;Z=e+80|0;Y=e+196|0;X=e+84|0;ia=e+200|0;ka=e+88|0;F=+g[ma>>2]+ +g[Z>>2]-(+g[va>>2]+ +g[ca>>2]);N=+g[Y>>2]+ +g[X>>2]-(+g[aa>>2]+ +g[_>>2]);B=+g[ia>>2]+ +g[ka>>2]-(+g[la>>2]+ +g[na>>2]);w=F*F+N*N+B*B;if(w>1.1920928955078125e-07){D=1.0/+P(+w);w=F*D;da=N*D;fa=B*D;ja=c[t>>2]|0;D=+g[ja+288>>2];ea=+g[ja+304>>2];O=+g[ja+320>>2];M=+g[ja+292>>2];ba=+g[ja+308>>2];Fa=+g[ja+324>>2];za=+g[ja+296>>2];E=+g[ja+312>>2];Da=+g[ja+328>>2];ja=c[u>>2]|0;$=L*(1.0/(w*(w*D+da*ea+fa*O)+da*(w*M+da*ba+fa*Fa)+fa*(w*za+da*E+fa*Da)+(w*(w*+g[ja+288>>2]+da*+g[ja+304>>2]+fa*+g[ja+320>>2])+da*(w*+g[ja+292>>2]+da*+g[ja+308>>2]+fa*+g[ja+324>>2])+fa*(w*+g[ja+296>>2]+da*+g[ja+312>>2]+fa*+g[ja+328>>2]))));fa=F*$;F=N*$;N=B*$;$=+P(+(N*N+(fa*fa+F*F)));B=1.0/$;da=B*fa;fa=B*F;F=B*N;if(!(c[d+240>>2]|0))Sa=ja;else{N=$*0.0;B=N*+g[d+116>>2];w=N*+g[d+120>>2];ja=d+64|0;g[ja>>2]=N*+g[d+112>>2]+ +g[ja>>2];ja=d+68|0;g[ja>>2]=B+ +g[ja>>2];ja=d+72|0;g[ja>>2]=w+ +g[ja>>2];w=(da*ea+fa*ba+F*E)*($*+g[d+100>>2]);E=(da*O+fa*Fa+F*Da)*($*+g[d+104>>2]);g[ca>>2]=(da*D+fa*M+F*za)*($*+g[d+96>>2])+ +g[ca>>2];g[_>>2]=w+ +g[_>>2];g[na>>2]=E+ +g[na>>2];Sa=c[u>>2]|0}E=-$;if(c[e+240>>2]|0){w=da*+g[Sa+320>>2]+fa*+g[Sa+324>>2]+F*+g[Sa+328>>2];za=da*+g[Sa+304>>2]+fa*+g[Sa+308>>2]+F*+g[Sa+312>>2];M=da*+g[Sa+288>>2]+fa*+g[Sa+292>>2]+F*+g[Sa+296>>2];F=$*-0.0;$=F*+g[e+116>>2];fa=F*+g[e+120>>2];ja=e+64|0;g[ja>>2]=F*+g[e+112>>2]+ +g[ja>>2];ja=e+68|0;g[ja>>2]=$+ +g[ja>>2];ja=e+72|0;g[ja>>2]=fa+ +g[ja>>2];fa=za*(+g[e+100>>2]*E);za=w*(+g[e+104>>2]*E);g[Z>>2]=M*(+g[e+96>>2]*E)+ +g[Z>>2];g[X>>2]=fa+ +g[X>>2];g[ka>>2]=za+ +g[ka>>2];Ga=ca;Ha=aa;Ia=_;Ja=la;Ka=na;La=ma;Ma=Z;Na=Y;Oa=X;Pa=ia;Qa=ka;Ra=va}else{Ga=ca;Ha=aa;Ia=_;Ja=la;Ka=na;La=ma;Ma=Z;Na=Y;Oa=X;Pa=ia;Qa=ka;Ra=va}}else{Ga=ca;Ha=aa;Ia=_;Ja=la;Ka=na;La=ma;Ma=Z;Na=Y;Oa=X;Pa=ia;Qa=ka;Ra=va}}else{va=c[t>>2]|0;ka=va+4|0;c[l>>2]=c[ka>>2];c[l+4>>2]=c[ka+4>>2];c[l+8>>2]=c[ka+8>>2];c[l+12>>2]=c[ka+12>>2];ka=l+16|0;ia=va+20|0;c[ka>>2]=c[ia>>2];c[ka+4>>2]=c[ia+4>>2];c[ka+8>>2]=c[ia+8>>2];c[ka+12>>2]=c[ia+12>>2];ia=l+32|0;ka=va+36|0;c[ia>>2]=c[ka>>2];c[ia+4>>2]=c[ka+4>>2];c[ia+8>>2]=c[ka+8>>2];c[ia+12>>2]=c[ka+12>>2];ka=l+48|0;ia=va+52|0;c[ka>>2]=c[ia>>2];c[ka+4>>2]=c[ia+4>>2];c[ka+8>>2]=c[ia+8>>2];c[ka+12>>2]=c[ia+12>>2];ia=c[u>>2]|0;ka=ia+4|0;c[m>>2]=c[ka>>2];c[m+4>>2]=c[ka+4>>2];c[m+8>>2]=c[ka+8>>2];c[m+12>>2]=c[ka+12>>2];ka=m+16|0;va=ia+20|0;c[ka>>2]=c[va>>2];c[ka+4>>2]=c[va+4>>2];c[ka+8>>2]=c[va+8>>2];c[ka+12>>2]=c[va+12>>2];va=m+32|0;ka=ia+36|0;c[va>>2]=c[ka>>2];c[va+4>>2]=c[ka+4>>2];c[va+8>>2]=c[ka+8>>2];c[va+12>>2]=c[ka+12>>2];ka=m+48|0;va=ia+52|0;c[ka>>2]=c[va>>2];c[ka+4>>2]=c[va+4>>2];c[ka+8>>2]=c[va+8>>2];c[ka+12>>2]=c[va+12>>2];va=d+192|0;ka=d+80|0;ia=d+196|0;X=d+84|0;za=+g[ia>>2]+ +g[X>>2];Y=d+200|0;Z=d+88|0;fa=+g[Y>>2]+ +g[Z>>2];g[n>>2]=+g[va>>2]+ +g[ka>>2];ma=n+4|0;g[ma>>2]=za;na=n+8|0;g[na>>2]=fa;g[n+12>>2]=0.0;la=e+192|0;_=e+80|0;aa=e+196|0;ca=e+84|0;fa=+g[aa>>2]+ +g[ca>>2];ja=e+200|0;ha=e+88|0;za=+g[ja>>2]+ +g[ha>>2];g[o>>2]=+g[la>>2]+ +g[_>>2];W=o+4|0;g[W>>2]=fa;V=o+8|0;g[V>>2]=za;g[o+12>>2]=0.0;c[p>>2]=1065353216;U=p+4|0;ra=p+20|0;c[U>>2]=0;c[U+4>>2]=0;c[U+8>>2]=0;c[U+12>>2]=0;c[ra>>2]=1065353216;ta=p+24|0;sa=p+40|0;c[ta>>2]=0;c[ta+4>>2]=0;c[ta+8>>2]=0;c[ta+12>>2]=0;c[sa>>2]=1065353216;T=p+44|0;c[T>>2]=0;c[T+4>>2]=0;c[T+8>>2]=0;c[T+12>>2]=0;c[T+16>>2]=0;Pf(l,0.0,0.0,0.0,n,f,p);c[q>>2]=1065353216;T=q+4|0;S=q+20|0;c[T>>2]=0;c[T+4>>2]=0;c[T+8>>2]=0;c[T+12>>2]=0;c[S>>2]=1065353216;H=q+24|0;oa=q+40|0;c[H>>2]=0;c[H+4>>2]=0;c[H+8>>2]=0;c[H+12>>2]=0;c[oa>>2]=1065353216;qa=q+44|0;c[qa>>2]=0;c[qa+4>>2]=0;c[qa+8>>2]=0;c[qa+12>>2]=0;c[qa+16>>2]=0;Pf(m,0.0,0.0,0.0,o,f,q);za=+g[b+556>>2];fa=+g[b+560>>2];E=+g[b+564>>2];M=+g[b+568>>2];w=2.0/(za*za+fa*fa+E*E+M*M);$=za*w;F=fa*w;da=E*w;w=M*$;D=M*F;Da=M*da;M=za*$;$=za*F;Fa=za*da;za=fa*F;F=fa*da;fa=E*da;da=1.0-(za+fa);E=$-Da;O=Fa+D;ba=$+Da;Da=1.0-(M+fa);fa=F-w;$=Fa-D;D=F+w;w=1.0-(M+za);za=+g[b+364>>2];M=+g[b+368>>2];F=+g[b+372>>2];Fa=$*F+(M*ba+za*da);ea=F*D+(za*E+M*Da);B=za*O+M*fa+F*w;N=+g[b+380>>2];L=+g[b+384>>2];Aa=+g[b+388>>2];Ea=da*N+ba*L+$*Aa;A=E*N+Da*L+D*Aa;Q=O*N+fa*L+w*Aa;Ca=+g[b+396>>2];R=+g[b+400>>2];C=+g[b+404>>2];y=da*Ca+ba*R+$*C;$=E*Ca+Da*R+D*C;D=O*Ca+fa*R+w*C;w=+g[b+300>>2];fa=+g[b+316>>2];O=+g[b+332>>2];Da=+g[b+304>>2];E=+g[b+320>>2];ba=+g[b+336>>2];da=+g[b+308>>2];G=+g[b+324>>2];Ta=+g[b+340>>2];Ua=-+g[v>>2];Va=-+g[x>>2];Wa=-+g[z>>2];Xa=w*Ua+fa*Va+O*Wa;Ya=Da*Ua+E*Va+ba*Wa;Za=da*Ua+G*Va+Ta*Wa;Wa=Fa*w+ea*Da+B*da;Va=Fa*fa+ea*E+B*G;Ua=Fa*O+ea*ba+B*Ta;_a=Ea*w+A*Da+Q*da;$a=Ea*fa+A*E+Q*G;ab=Ea*O+A*ba+Q*Ta;bb=y*w+$*Da+D*da;da=y*fa+$*E+D*G;G=y*O+$*ba+D*Ta;Ta=za*0.0+M*0.0+F*0.0+ +g[I>>2]+(B*Za+(Fa*Xa+ea*Ya));ea=N*0.0+L*0.0+Aa*0.0+ +g[J>>2]+(Q*Za+(Ea*Xa+A*Ya));A=Ca*0.0+R*0.0+C*0.0+ +g[K>>2]+(D*Za+(y*Xa+$*Ya));Ya=+g[q>>2];$=+g[T>>2];Xa=+g[q+8>>2];y=+g[q+16>>2];Za=+g[S>>2];D=+g[H>>2];C=+g[q+32>>2];R=+g[q+36>>2];Ca=+g[oa>>2];Ea=Xa*A+(Ya*Ta+$*ea)+ +g[q+48>>2];Q=y*Ta+ea*Za+A*D+ +g[q+52>>2];Aa=Ta*C+ea*R+A*Ca+ +g[q+56>>2];g[r>>2]=Wa*Ya+_a*$+bb*Xa;g[r+4>>2]=Va*Ya+$a*$+da*Xa;g[r+8>>2]=Ua*Ya+ab*$+G*Xa;g[r+12>>2]=0.0;g[r+16>>2]=Wa*y+_a*Za+bb*D;g[r+20>>2]=Va*y+$a*Za+da*D;g[r+24>>2]=Ua*y+ab*Za+G*D;g[r+28>>2]=0.0;g[r+32>>2]=Wa*C+_a*R+bb*Ca;g[r+36>>2]=Va*C+$a*R+da*Ca;g[r+40>>2]=Ua*C+ab*R+G*Ca;g[r+44>>2]=0.0;g[r+48>>2]=Ea;g[r+52>>2]=Q;g[r+56>>2]=Aa;g[r+60>>2]=0.0;Aa=-Ta;Ta=-ea;ea=-A;A=bb*ea+(Wa*Aa+_a*Ta);Q=da*ea+(Va*Aa+$a*Ta);Ea=G*ea+(Ua*Aa+ab*Ta);Ta=+g[p>>2];Aa=+g[U>>2];ea=+g[p+8>>2];Ca=+g[p+16>>2];R=+g[ra>>2];C=+g[ta>>2];D=+g[p+32>>2];Za=+g[p+36>>2];y=+g[sa>>2];Xa=A*Ta+Q*Aa+Ea*ea+ +g[p+48>>2];$=A*Ca+Q*R+Ea*C+ +g[p+52>>2];Ya=A*D+Q*Za+Ea*y+ +g[p+56>>2];g[s>>2]=Wa*Ta+Va*Aa+Ua*ea;g[s+4>>2]=_a*Ta+$a*Aa+ab*ea;g[s+8>>2]=bb*Ta+da*Aa+G*ea;g[s+12>>2]=0.0;g[s+16>>2]=Wa*Ca+Va*R+Ua*C;g[s+20>>2]=_a*Ca+$a*R+ab*C;g[s+24>>2]=bb*Ca+da*R+G*C;g[s+28>>2]=0.0;g[s+32>>2]=Wa*D+Va*Za+Ua*y;g[s+36>>2]=_a*D+$a*Za+ab*y;g[s+40>>2]=bb*D+da*Za+G*y;g[s+44>>2]=0.0;g[s+48>>2]=Xa;g[s+52>>2]=$;g[s+56>>2]=Ya;g[s+60>>2]=0.0;Ya=1.0/f;Qf(l,r,j,k);$=+g[k>>2];Xa=Ya*(+g[j>>2]*$);y=Ya*($*+g[j+4>>2]);G=Ya*($*+g[j+8>>2]);Qf(m,s,j,k);$=+g[k>>2];Za=Xa-+g[n>>2];Xa=y-+g[ma>>2];y=G-+g[na>>2];G=Ya*(+g[j>>2]*$)-+g[o>>2];da=Ya*($*+g[j+4>>2])-+g[W>>2];D=Ya*($*+g[j+8>>2])-+g[V>>2];$=Za*Za+Xa*Xa+y*y;if($>1.1920928955078125e-07){Ya=1.0/+P(+$);$=Za*Ya;bb=Xa*Ya;ab=y*Ya;V=c[t>>2]|0;cb=$*($*+g[V+288>>2]+bb*+g[V+304>>2]+ab*+g[V+320>>2])+bb*($*+g[V+292>>2]+bb*+g[V+308>>2]+ab*+g[V+324>>2])+ab*($*+g[V+296>>2]+bb*+g[V+312>>2]+ab*+g[V+328>>2]);db=$;eb=bb;fb=ab}else{cb=0.0;db=0.0;eb=0.0;fb=0.0}ab=G*G+da*da+D*D;if(ab>1.1920928955078125e-07){bb=1.0/+P(+ab);ab=G*bb;$=da*bb;Ya=D*bb;V=c[u>>2]|0;gb=ab*(ab*+g[V+288>>2]+$*+g[V+304>>2]+Ya*+g[V+320>>2])+$*(ab*+g[V+292>>2]+$*+g[V+308>>2]+Ya*+g[V+324>>2])+Ya*(ab*+g[V+296>>2]+$*+g[V+312>>2]+Ya*+g[V+328>>2]);hb=ab;ib=$;jb=Ya}else{gb=0.0;hb=0.0;ib=0.0;jb=0.0}Ya=db*cb+hb*gb;$=eb*cb+ib*gb;ab=fb*cb+jb*gb;bb=ab*ab+(Ya*Ya+$*$);if(bb>1.1920928955078125e-07){$a=1.0/+P(+bb);bb=Ya*$a;Ya=$*$a;$=ab*$a;V=c[t>>2]|0;W=V+288|0;na=V+304|0;ma=V+320|0;sa=V+292|0;ta=V+308|0;ra=V+324|0;U=V+296|0;oa=V+312|0;H=V+328|0;$a=bb*(bb*+g[W>>2]+Ya*+g[na>>2]+$*+g[ma>>2])+Ya*(bb*+g[sa>>2]+Ya*+g[ta>>2]+$*+g[ra>>2])+$*(bb*+g[U>>2]+Ya*+g[oa>>2]+$*+g[H>>2]);V=c[u>>2]|0;ab=bb*(bb*+g[V+288>>2]+Ya*+g[V+304>>2]+$*+g[V+320>>2])+Ya*(bb*+g[V+292>>2]+Ya*+g[V+308>>2]+$*+g[V+324>>2])+$*(bb*+g[V+296>>2]+Ya*+g[V+312>>2]+$*+g[V+328>>2]);$=$a+ab;Ya=1.0/($*$);$=Ya*(Za*$a-G*ab);G=Ya*(Xa*$a-da*ab);da=Ya*(y*$a-D*ab);ab=+g[b+572>>2];if(!(ab>=0.0)){kb=$;lb=G;mb=da}else{D=(a[b+553>>0]|0)==0?ab:ab/$a;S=b+576|0;$a=+g[S>>2];ab=$+$a;T=b+580|0;y=+g[T>>2];Ya=G+y;qa=b+584|0;Xa=+g[qa>>2];Za=da+Xa;bb=+P(+(ab*ab+Ya*Ya+Za*Za));if(bb>D){_a=1.0/bb;nb=D*(ab*_a)-$a;ob=D*(Ya*_a)-y;pb=D*(Za*_a)-Xa}else{nb=$;ob=G;pb=da}g[S>>2]=nb+$a;g[T>>2]=ob+y;g[qa>>2]=pb+Xa;kb=nb;lb=ob;mb=pb}Xa=+P(+(mb*mb+(lb*lb+kb*kb)));y=1.0/Xa;$a=kb*y;da=lb*y;G=mb*y;if(!(c[d+240>>2]|0))qb=V;else{y=$a*+g[ma>>2]+da*+g[ra>>2]+G*+g[H>>2];$=$a*+g[na>>2]+da*+g[ta>>2]+G*+g[oa>>2];_a=$a*+g[W>>2]+da*+g[sa>>2]+G*+g[U>>2];Za=Xa*0.0;D=Za*+g[d+116>>2];Ya=Za*+g[d+120>>2];U=d+64|0;g[U>>2]=Za*+g[d+112>>2]+ +g[U>>2];U=d+68|0;g[U>>2]=D+ +g[U>>2];U=d+72|0;g[U>>2]=Ya+ +g[U>>2];Ya=$*(Xa*+g[d+100>>2]);$=y*(Xa*+g[d+104>>2]);g[ka>>2]=_a*(Xa*+g[d+96>>2])+ +g[ka>>2];g[X>>2]=Ya+ +g[X>>2];g[Z>>2]=$+ +g[Z>>2];qb=c[u>>2]|0}$=-Xa;if(c[e+240>>2]|0){Ya=$a*+g[qb+320>>2]+da*+g[qb+324>>2]+G*+g[qb+328>>2];_a=$a*+g[qb+304>>2]+da*+g[qb+308>>2]+G*+g[qb+312>>2];y=$a*+g[qb+288>>2]+da*+g[qb+292>>2]+G*+g[qb+296>>2];G=Xa*-0.0;Xa=G*+g[e+116>>2];da=G*+g[e+120>>2];U=e+64|0;g[U>>2]=G*+g[e+112>>2]+ +g[U>>2];U=e+68|0;g[U>>2]=Xa+ +g[U>>2];U=e+72|0;g[U>>2]=da+ +g[U>>2];da=_a*(+g[e+100>>2]*$);_a=Ya*(+g[e+104>>2]*$);g[_>>2]=y*(+g[e+96>>2]*$)+ +g[_>>2];g[ca>>2]=da+ +g[ca>>2];g[ha>>2]=_a+ +g[ha>>2]}}Ga=ka;Ha=ia;Ia=X;Ja=Y;Ka=Z;La=la;Ma=_;Na=aa;Oa=ca;Pa=ja;Qa=ha;Ra=va}while(0);mb=+g[Ra>>2]+ +g[Ga>>2];lb=+g[Ha>>2]+ +g[Ia>>2];kb=+g[Ja>>2]+ +g[Ka>>2];pb=+g[La>>2]+ +g[Ma>>2];ob=+g[Na>>2]+ +g[Oa>>2];nb=+g[Pa>>2]+ +g[Qa>>2];if(a[b+526>>0]|0){gb=+g[b+528>>2];jb=gb*+g[b+504>>2]*+g[b+432>>2]/f;cb=+g[b+460>>2];fb=+g[b+464>>2];ib=+g[b+468>>2];eb=(pb-mb)*cb+(ob-lb)*fb+(nb-kb)*ib;if(eb>0.0)rb=jb+gb*eb*+g[b+436>>2];else rb=jb;Pa=b+516|0;jb=+g[Pa>>2];eb=jb+rb*+g[b+492>>2];rb=eb>0.0?eb:0.0;g[Pa>>2]=rb;eb=rb-jb;jb=cb*eb;cb=fb*eb;fb=ib*eb;eb=+g[b+536>>2];ib=+g[b+540>>2];rb=+g[b+544>>2];gb=eb*jb+cb*ib+fb*rb;hb=jb-eb*gb;eb=cb-ib*gb;ib=fb-rb*gb;gb=+P(+(ib*ib+(hb*hb+eb*eb)));rb=1.0/gb;fb=rb*hb;hb=rb*eb;eb=rb*ib;Pa=c[t>>2]|0;if(c[d+240>>2]|0){ib=fb*+g[Pa+320>>2]+hb*+g[Pa+324>>2]+eb*+g[Pa+328>>2];rb=fb*+g[Pa+304>>2]+hb*+g[Pa+308>>2]+eb*+g[Pa+312>>2];cb=fb*+g[Pa+288>>2]+hb*+g[Pa+292>>2]+eb*+g[Pa+296>>2];jb=gb*0.0;db=jb*+g[d+116>>2];_a=jb*+g[d+120>>2];Pa=d+64|0;g[Pa>>2]=jb*+g[d+112>>2]+ +g[Pa>>2];Pa=d+68|0;g[Pa>>2]=db+ +g[Pa>>2];Pa=d+72|0;g[Pa>>2]=_a+ +g[Pa>>2];_a=rb*(gb*+g[d+100>>2]);rb=ib*(gb*+g[d+104>>2]);g[Ga>>2]=cb*(gb*+g[d+96>>2])+ +g[Ga>>2];g[Ia>>2]=_a+ +g[Ia>>2];g[Ka>>2]=rb+ +g[Ka>>2]}Pa=c[u>>2]|0;rb=-gb;if(c[e+240>>2]|0){_a=fb*+g[Pa+320>>2]+hb*+g[Pa+324>>2]+eb*+g[Pa+328>>2];cb=fb*+g[Pa+304>>2]+hb*+g[Pa+308>>2]+eb*+g[Pa+312>>2];ib=fb*+g[Pa+288>>2]+hb*+g[Pa+292>>2]+eb*+g[Pa+296>>2];eb=gb*-0.0;gb=eb*+g[e+116>>2];hb=eb*+g[e+120>>2];Pa=e+64|0;g[Pa>>2]=eb*+g[e+112>>2]+ +g[Pa>>2];Pa=e+68|0;g[Pa>>2]=gb+ +g[Pa>>2];Pa=e+72|0;g[Pa>>2]=hb+ +g[Pa>>2];hb=cb*(+g[e+100>>2]*rb);cb=_a*(+g[e+104>>2]*rb);g[Ma>>2]=ib*(+g[e+96>>2]*rb)+ +g[Ma>>2];g[Oa>>2]=hb+ +g[Oa>>2];g[Qa>>2]=cb+ +g[Qa>>2]}}if(!(a[b+525>>0]|0)){i=h;return}cb=+g[b+532>>2];hb=cb*+g[b+508>>2]*+g[b+432>>2]/f;Pa=b+476|0;f=+g[Pa>>2];Na=b+480|0;rb=+g[Na>>2];La=b+484|0;ib=+g[La>>2];_a=(pb-mb)*f+(ob-lb)*rb+(nb-kb)*ib;if(_a>0.0)sb=hb+cb*_a*+g[b+436>>2];else sb=hb;Ja=b+520|0;hb=+g[Ja>>2];_a=hb+sb*+g[b+496>>2];sb=_a>0.0?_a:0.0;g[Ja>>2]=sb;_a=sb-hb;Ja=c[t>>2]|0;if(!(c[d+240>>2]|0)){tb=f;ub=rb;vb=ib}else{hb=f*+g[Ja+320>>2]+rb*+g[Ja+324>>2]+ib*+g[Ja+328>>2];sb=f*+g[Ja+304>>2]+rb*+g[Ja+308>>2]+ib*+g[Ja+312>>2];cb=f*+g[Ja+288>>2]+rb*+g[Ja+292>>2]+ib*+g[Ja+296>>2];ib=_a*0.0;rb=ib*+g[d+116>>2];f=ib*+g[d+120>>2];Ja=d+64|0;g[Ja>>2]=ib*+g[d+112>>2]+ +g[Ja>>2];Ja=d+68|0;g[Ja>>2]=rb+ +g[Ja>>2];Ja=d+72|0;g[Ja>>2]=f+ +g[Ja>>2];f=sb*(_a*+g[d+100>>2]);sb=hb*(_a*+g[d+104>>2]);g[Ga>>2]=cb*(_a*+g[d+96>>2])+ +g[Ga>>2];g[Ia>>2]=f+ +g[Ia>>2];g[Ka>>2]=sb+ +g[Ka>>2];tb=+g[Pa>>2];ub=+g[Na>>2];vb=+g[La>>2]}La=c[u>>2]|0;sb=-_a;if(!(c[e+240>>2]|0)){i=h;return}f=tb*+g[La+320>>2]+ub*+g[La+324>>2]+vb*+g[La+328>>2];cb=tb*+g[La+304>>2]+ub*+g[La+308>>2]+vb*+g[La+312>>2];hb=tb*+g[La+288>>2]+ub*+g[La+292>>2]+vb*+g[La+296>>2];vb=_a*-0.0;_a=vb*+g[e+116>>2];ub=vb*+g[e+120>>2];La=e+64|0;g[La>>2]=vb*+g[e+112>>2]+ +g[La>>2];La=e+68|0;g[La>>2]=_a+ +g[La>>2];La=e+72|0;g[La>>2]=ub+ +g[La>>2];ub=cb*(+g[e+100>>2]*sb);cb=f*(+g[e+104>>2]*sb);g[Ma>>2]=hb*(+g[e+96>>2]*sb)+ +g[Ma>>2];g[Oa>>2]=ub+ +g[Oa>>2];g[Qa>>2]=cb+ +g[Qa>>2];i=h;return}function Jf(a,b,d,e){a=a|0;b=b|0;d=+d;e=+e;var f=0.0,h=0.0,i=0,j=0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0,r=0.0,s=0,t=0.0;f=+R(+d);h=+S(+d);i=c[b+444>>2]|0;j=+O(+f)>1.1920928955078125e-07;d=(c[k>>2]=i,+g[k>>2]);if(j){l=h*h;m=f*f;n=l/m;o=+g[b+448>>2];p=+P(+((n+1.0)/(1.0/(o*o)+n/(d*d))));q=l;r=m;s=(g[k>>2]=p,c[k>>2]|0);}else{q=h*h;r=f*f;s=i}p=+P(+(r+0.0+q));q=(c[k>>2]=s,+g[k>>2])*.5;r=+S(+q)/p;p=r*0.0;m=f*r;f=h*r;r=+R(+q);q=m*0.0;h=f*-0.0;l=r*e+q-h;d=r*0.0;n=p*0.0;o=d-f*e-n;t=d+n-m*e;n=-(p*e)-q-h;h=-p;p=-m;g[a>>2]=f*o+(r*l+n*h)-t*p;g[a+4>>2]=t*h+(r*o+n*p)-f*l;g[a+8>>2]=l*p+(f*n+r*t)-o*h;g[a+12>>2]=0.0;return}function Kf(a,b,d,e){a=a|0;b=b|0;d=+d;e=e|0;var f=0;if((b|0)==4|(b|0)==3)if(e>>>0<3){g[a+596>>2]=d;f=a+592|0;c[f>>2]=c[f>>2]|1;return}else{g[a+604>>2]=d;f=a+592|0;c[f>>2]=c[f>>2]|4;return}else if((b|0)==2|(b|0)==1)if(e>>>0<3){g[a+600>>2]=d;e=a+592|0;c[e>>2]=c[e>>2]|2;return}else{g[a+432>>2]=d;return}else return}function Lf(a,b,c){a=a|0;b=b|0;c=c|0;var d=0.0;do if((b|0)==4|(b|0)==3){if(c>>>0<3){d=+g[a+596>>2];break}if((c+-3|0)>>>0<3)d=+g[a+604>>2];else d=0.0}else if((b|0)==2|(b|0)==1){if(c>>>0<3){d=+g[a+600>>2];break}if((c+-3|0)>>>0<3)d=+g[a+432>>2];else d=0.0}else d=0.0;while(0);return +d}function Mf(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=a+300|0;c[e>>2]=c[b>>2];c[e+4>>2]=c[b+4>>2];c[e+8>>2]=c[b+8>>2];c[e+12>>2]=c[b+12>>2];e=a+316|0;f=b+16|0;c[e>>2]=c[f>>2];c[e+4>>2]=c[f+4>>2];c[e+8>>2]=c[f+8>>2];c[e+12>>2]=c[f+12>>2];f=a+332|0;e=b+32|0;c[f>>2]=c[e>>2];c[f+4>>2]=c[e+4>>2];c[f+8>>2]=c[e+8>>2];c[f+12>>2]=c[e+12>>2];e=a+348|0;f=b+48|0;c[e>>2]=c[f>>2];c[e+4>>2]=c[f+4>>2];c[e+8>>2]=c[f+8>>2];c[e+12>>2]=c[f+12>>2];f=a+364|0;c[f>>2]=c[d>>2];c[f+4>>2]=c[d+4>>2];c[f+8>>2]=c[d+8>>2];c[f+12>>2]=c[d+12>>2];f=a+380|0;e=d+16|0;c[f>>2]=c[e>>2];c[f+4>>2]=c[e+4>>2];c[f+8>>2]=c[e+8>>2];c[f+12>>2]=c[e+12>>2];e=a+396|0;f=d+32|0;c[e>>2]=c[f>>2];c[e+4>>2]=c[f+4>>2];c[e+8>>2]=c[f+8>>2];c[e+12>>2]=c[f+12>>2];f=a+412|0;e=d+48|0;c[f>>2]=c[e>>2];c[f+4>>2]=c[e+4>>2];c[f+8>>2]=c[e+8>>2];c[f+12>>2]=c[e+12>>2];Kb[c[(c[a>>2]|0)+8>>2]&255](a);return}function Nf(){c[236]=1065353216;c[237]=0;c[238]=0;g[239]=0.0;return}function Of(a,b,d,e,f,h,i,j,k,l){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;i=i|0;j=+j;k=k|0;l=+l;var m=0.0,n=0.0,o=0.0,p=0.0,q=0.0,r=0.0,s=0.0,t=0.0,u=0.0,v=0.0,w=0.0;c[a>>2]=c[h>>2];c[a+4>>2]=c[h+4>>2];c[a+8>>2]=c[h+8>>2];c[a+12>>2]=c[h+12>>2];m=+g[e+4>>2];n=+g[a+8>>2];o=+g[e+8>>2];p=+g[a+4>>2];q=m*n-o*p;r=+g[a>>2];s=+g[e>>2];t=o*r-n*s;o=p*s-m*r;m=q*+g[b>>2]+ +g[b+4>>2]*t+o*+g[b+8>>2];s=q*+g[b+16>>2]+t*+g[b+20>>2]+o*+g[b+24>>2];u=q*+g[b+32>>2]+t*+g[b+36>>2]+o*+g[b+40>>2];b=a+16|0;g[b>>2]=m;e=a+20|0;g[e>>2]=s;h=a+24|0;g[h>>2]=u;g[a+28>>2]=0.0;o=-r;r=-p;p=-n;n=+g[f+4>>2];t=+g[f+8>>2];q=n*p-t*r;v=+g[f>>2];w=t*o-v*p;p=v*r-n*o;o=+g[d>>2]*q+ +g[d+4>>2]*w+p*+g[d+8>>2];n=q*+g[d+16>>2]+w*+g[d+20>>2]+p*+g[d+24>>2];r=q*+g[d+32>>2]+w*+g[d+36>>2]+p*+g[d+40>>2];g[a+32>>2]=o;g[a+36>>2]=n;g[a+40>>2]=r;g[a+44>>2]=0.0;p=+g[i>>2]*m;m=+g[i+4>>2]*s;s=+g[i+8>>2]*u;g[a+48>>2]=p;g[a+52>>2]=m;g[a+56>>2]=s;g[a+60>>2]=0.0;u=+g[k>>2]*o;w=+g[k+4>>2]*n;q=+g[k+8>>2]*r;g[a+64>>2]=u;g[a+68>>2]=w;g[a+72>>2]=q;g[a+76>>2]=0.0;g[a+80>>2]=p*+g[b>>2]+m*+g[e>>2]+s*+g[h>>2]+j+l+(u*o+w*n+q*r);return}function Pf(a,b,c,d,e,f,h){a=a|0;b=+b;c=+c;d=+d;e=e|0;f=+f;h=h|0;var j=0,k=0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0,r=0.0,s=0.0;j=i;i=i+16|0;k=j;l=c*f+ +g[a+52>>2];c=d*f+ +g[a+56>>2];g[h+48>>2]=b*f+ +g[a+48>>2];g[h+52>>2]=l;g[h+56>>2]=c;g[h+60>>2]=0.0;c=+g[e>>2];l=+g[e+4>>2];b=+g[e+8>>2];d=+P(+(c*c+l*l+b*b));m=d*f>.7853981852531433?.7853981852531433/f:d;if(m<1.0000000474974513e-03)n=f*.5-m*(f*f*f*.02083333395421505*m);else n=+S(+(m*.5*f))/m;d=c*n;c=l*n;l=b*n;n=+R(+(m*f*.5));Me(a,k);f=+g[k>>2];m=+g[k+12>>2];b=+g[k+8>>2];o=+g[k+4>>2];p=n*f+d*m+c*b-l*o;q=l*f+(c*m+n*o)-d*b;r=l*m+n*b+d*o-c*f;s=n*m-d*f-c*o-l*b;b=1.0/+P(+(s*s+(r*r+(p*p+q*q))));l=p*b;p=b*q;q=b*r;r=b*s;s=2.0/(r*r+(q*q+(l*l+p*p)));b=l*s;o=s*p;c=s*q;s=r*b;f=r*o;d=r*c;r=l*b;b=l*o;m=l*c;l=p*o;o=p*c;p=q*c;g[h>>2]=1.0-(p+l);g[h+4>>2]=b-d;g[h+8>>2]=m+f;g[h+12>>2]=0.0;g[h+16>>2]=d+b;g[h+20>>2]=1.0-(r+p);g[h+24>>2]=o-s;g[h+28>>2]=0.0;g[h+32>>2]=m-f;g[h+36>>2]=s+o;g[h+40>>2]=1.0-(r+l);g[h+44>>2]=0.0;i=j;return}function Qf(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,h=0,j=0,k=0.0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0,r=0.0,s=0.0,t=0.0,u=0.0,v=0.0,w=0.0,x=0.0,y=0.0,z=0.0,A=0.0,B=0.0;f=i;i=i+64|0;h=f+16|0;j=f;k=+g[a+20>>2];l=+g[a+40>>2];m=+g[a+24>>2];n=+g[a+36>>2];o=k*l-m*n;p=+g[a+32>>2];q=+g[a+16>>2];r=m*p-l*q;s=n*q-k*p;t=+g[a>>2];u=+g[a+4>>2];v=+g[a+8>>2];w=1.0/(o*t+u*r+s*v);x=o*w;o=w*(n*v-l*u);y=w*(m*u-k*v);z=r*w;r=w*(l*t-p*v);l=w*(q*v-m*t);m=s*w;s=w*(p*u-n*t);n=w*(k*t-q*u);u=+g[b>>2];q=+g[b+4>>2];t=+g[b+8>>2];k=+g[b+16>>2];w=+g[b+20>>2];p=+g[b+24>>2];v=+g[b+32>>2];A=+g[b+36>>2];B=+g[b+40>>2];g[h>>2]=x*u+z*q+m*t;g[h+4>>2]=u*o+q*r+s*t;g[h+8>>2]=u*y+q*l+n*t;g[h+12>>2]=0.0;g[h+16>>2]=x*k+z*w+m*p;g[h+20>>2]=o*k+r*w+s*p;g[h+24>>2]=y*k+l*w+n*p;g[h+28>>2]=0.0;g[h+32>>2]=x*v+z*A+m*B;g[h+36>>2]=o*v+r*A+s*B;g[h+40>>2]=y*v+l*A+n*B;g[h+44>>2]=0.0;Me(h,j);B=+g[j>>2];h=j+4|0;n=+g[h>>2];b=j+8|0;A=+g[b>>2];a=j+12|0;l=+g[a>>2];v=1.0/+P(+(B*B+n*n+A*A+l*l));y=B*v;g[j>>2]=y;B=n*v;g[h>>2]=B;n=A*v;g[b>>2]=n;A=l*v;g[a>>2]=A;v=A<-1.0?-1.0:A;g[e>>2]=+U(+(v>1.0?1.0:v))*2.0;g[d>>2]=y;e=d+4|0;g[e>>2]=B;a=d+8|0;g[a>>2]=n;b=d+12|0;g[b>>2]=0.0;v=y*y+B*B+n*n;if(v<1.4210854715202004e-14){c[d>>2]=1065353216;c[e>>2]=0;c[a>>2]=0;g[b>>2]=0.0;i=f;return}else{A=1.0/+P(+v);g[d>>2]=y*A;g[e>>2]=A*B;g[a>>2]=A*n;i=f;return}}function Rf(a){a=a|0;return}function Sf(a){a=a|0;if(!a)return;c[3710]=(c[3710]|0)+1;xs(c[a+-4>>2]|0);return}function Tf(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=+e;return}function Uf(a){a=a|0;return 212}function Vf(a,b,d){a=a|0;b=b|0;d=d|0;ah(a,b,d)|0;c[b+52>>2]=c[a+300>>2];c[b+56>>2]=c[a+304>>2];c[b+60>>2]=c[a+308>>2];c[b+64>>2]=c[a+312>>2];c[b+68>>2]=c[a+316>>2];c[b+72>>2]=c[a+320>>2];c[b+76>>2]=c[a+324>>2];c[b+80>>2]=c[a+328>>2];c[b+84>>2]=c[a+332>>2];c[b+88>>2]=c[a+336>>2];c[b+92>>2]=c[a+340>>2];c[b+96>>2]=c[a+344>>2];c[b+100>>2]=c[a+348>>2];c[b+104>>2]=c[a+352>>2];c[b+108>>2]=c[a+356>>2];c[b+112>>2]=c[a+360>>2];c[b+116>>2]=c[a+364>>2];c[b+120>>2]=c[a+368>>2];c[b+124>>2]=c[a+372>>2];c[b+128>>2]=c[a+376>>2];c[b+132>>2]=c[a+380>>2];c[b+136>>2]=c[a+384>>2];c[b+140>>2]=c[a+388>>2];c[b+144>>2]=c[a+392>>2];c[b+148>>2]=c[a+396>>2];c[b+152>>2]=c[a+400>>2];c[b+156>>2]=c[a+404>>2];c[b+160>>2]=c[a+408>>2];c[b+164>>2]=c[a+412>>2];c[b+168>>2]=c[a+416>>2];c[b+172>>2]=c[a+420>>2];c[b+176>>2]=c[a+424>>2];c[b+180>>2]=c[a+444>>2];c[b+184>>2]=c[a+448>>2];c[b+188>>2]=c[a+452>>2];c[b+192>>2]=c[a+428>>2];c[b+196>>2]=c[a+432>>2];c[b+200>>2]=c[a+436>>2];c[b+204>>2]=c[a+440>>2];return 1032}function Wf(b,d,e,f,h,i){b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;i=i|0;var j=0,k=0;c[b+4>>2]=6;c[b+8>>2]=-1;c[b+12>>2]=-1;g[b+16>>2]=3402823466385288598117041.0e14;a[b+20>>0]=1;a[b+21>>0]=0;c[b+24>>2]=-1;j=b+28|0;c[j>>2]=d;d=b+32|0;c[d>>2]=e;g[b+36>>2]=0.0;g[b+40>>2]=.30000001192092896;c[b+44>>2]=0;c[b>>2]=1072;e=b+48|0;c[e>>2]=c[f>>2];c[e+4>>2]=c[f+4>>2];c[e+8>>2]=c[f+8>>2];c[e+12>>2]=c[f+12>>2];e=b+64|0;k=f+16|0;c[e>>2]=c[k>>2];c[e+4>>2]=c[k+4>>2];c[e+8>>2]=c[k+8>>2];c[e+12>>2]=c[k+12>>2];k=b+80|0;e=f+32|0;c[k>>2]=c[e>>2];c[k+4>>2]=c[e+4>>2];c[k+8>>2]=c[e+8>>2];c[k+12>>2]=c[e+12>>2];e=b+96|0;k=f+48|0;c[e>>2]=c[k>>2];c[e+4>>2]=c[k+4>>2];c[e+8>>2]=c[k+8>>2];c[e+12>>2]=c[k+12>>2];k=b+112|0;c[k>>2]=c[h>>2];c[k+4>>2]=c[h+4>>2];c[k+8>>2]=c[h+8>>2];c[k+12>>2]=c[h+12>>2];k=b+128|0;e=h+16|0;c[k>>2]=c[e>>2];c[k+4>>2]=c[e+4>>2];c[k+8>>2]=c[e+8>>2];c[k+12>>2]=c[e+12>>2];e=b+144|0;k=h+32|0;c[e>>2]=c[k>>2];c[e+4>>2]=c[k+4>>2];c[e+8>>2]=c[k+8>>2];c[e+12>>2]=c[k+12>>2];k=b+160|0;e=h+48|0;c[k>>2]=c[e>>2];c[k+4>>2]=c[e+4>>2];c[k+8>>2]=c[e+8>>2];c[k+12>>2]=c[e+12>>2];e=b+740|0;k=b+756|0;h=b+680|0;f=h+48|0;do{c[h>>2]=0;h=h+4|0}while((h|0)<(f|0));c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;c[e+12>>2]=0;c[k>>2]=1045220557;c[b+760>>2]=1045220557;c[b+764>>2]=1045220557;k=b+768|0;c[k>>2]=0;c[k+4>>2]=0;c[k+8>>2]=0;c[k+12>>2]=0;c[k+16>>2]=0;g[b+728>>2]=.699999988079071;g[b+732>>2]=1.0;g[b+736>>2]=.5;a[b+788>>0]=0;g[b+792>>2]=0.0;g[b+808>>2]=0.0;a[b+789>>0]=0;g[b+796>>2]=0.0;g[b+812>>2]=0.0;a[b+790>>0]=0;g[b+800>>2]=0.0;g[b+816>>2]=0.0;g[b+928>>2]=0.0;g[b+876>>2]=0.0;g[b+880>>2]=.10000000149011612;g[b+884>>2]=300.0;g[b+868>>2]=1.0;g[b+872>>2]=-1.0;g[b+896>>2]=0.0;g[b+900>>2]=.20000000298023224;g[b+904>>2]=0.0;g[b+908>>2]=0.0;g[b+888>>2]=1.0;g[b+892>>2]=.5;c[b+924>>2]=0;g[b+916>>2]=0.0;a[b+912>>0]=0;g[b+992>>2]=0.0;g[b+940>>2]=0.0;g[b+944>>2]=.10000000149011612;g[b+948>>2]=300.0;g[b+932>>2]=1.0;g[b+936>>2]=-1.0;g[b+960>>2]=0.0;g[b+964>>2]=.20000000298023224;g[b+968>>2]=0.0;g[b+972>>2]=0.0;g[b+952>>2]=1.0;g[b+956>>2]=.5;c[b+988>>2]=0;g[b+980>>2]=0.0;a[b+976>>0]=0;g[b+1056>>2]=0.0;g[b+1004>>2]=0.0;g[b+1008>>2]=.10000000149011612;g[b+1012>>2]=300.0;g[b+996>>2]=1.0;g[b+1e3>>2]=-1.0;g[b+1024>>2]=0.0;g[b+1028>>2]=.20000000298023224;g[b+1032>>2]=0.0;g[b+1036>>2]=0.0;g[b+1016>>2]=1.0;g[b+1020>>2]=.5;c[b+1052>>2]=0;g[b+1044>>2]=0.0;a[b+1040>>0]=0;a[b+1300>>0]=i&1;a[b+1301>>0]=1;c[b+1304>>2]=0;a[b+1308>>0]=0;Xf(b,(c[j>>2]|0)+4|0,(c[d>>2]|0)+4|0);return}function Xf(b,d,e){b=b|0;d=d|0;e=e|0;var f=0.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,q=0.0,r=0.0,s=0.0,t=0.0,u=0.0,v=0.0,w=0.0,x=0.0,y=0.0,z=0.0,A=0.0,B=0.0,C=0.0,D=0.0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,Q=0.0,R=0,S=0,T=0,U=0,W=0,Y=0,Z=0;f=+g[b+48>>2];h=+g[d>>2];i=+g[b+64>>2];j=+g[d+4>>2];k=+g[b+80>>2];l=+g[d+8>>2];m=+g[b+52>>2];n=+g[b+68>>2];o=+g[b+84>>2];p=+g[b+56>>2];q=+g[b+72>>2];r=+g[b+88>>2];s=+g[d+16>>2];t=+g[d+20>>2];u=+g[d+24>>2];v=+g[d+32>>2];w=+g[d+36>>2];x=+g[d+40>>2];y=+g[b+96>>2];z=+g[b+100>>2];A=+g[b+104>>2];B=+g[d+48>>2]+(h*y+j*z+l*A);C=s*y+t*z+u*A+ +g[d+52>>2];D=v*y+w*z+x*A+ +g[d+56>>2];d=b+1064|0;g[d>>2]=f*h+i*j+k*l;E=b+1068|0;g[E>>2]=h*m+j*n+l*o;F=b+1072|0;g[F>>2]=h*p+j*q+l*r;g[b+1076>>2]=0.0;G=b+1080|0;g[G>>2]=f*s+i*t+k*u;H=b+1084|0;g[H>>2]=m*s+n*t+o*u;I=b+1088|0;g[I>>2]=p*s+q*t+r*u;g[b+1092>>2]=0.0;J=b+1096|0;g[J>>2]=f*v+i*w+k*x;K=b+1100|0;g[K>>2]=m*v+n*w+o*x;L=b+1104|0;g[L>>2]=p*v+q*w+r*x;g[b+1108>>2]=0.0;M=b+1112|0;g[M>>2]=B;N=b+1116|0;g[N>>2]=C;O=b+1120|0;g[O>>2]=D;g[b+1124>>2]=0.0;D=+g[b+112>>2];C=+g[e>>2];B=+g[b+128>>2];x=+g[e+4>>2];r=+g[b+144>>2];w=+g[e+8>>2];q=+g[b+116>>2];v=+g[b+132>>2];p=+g[b+148>>2];o=+g[b+120>>2];n=+g[b+136>>2];m=+g[b+152>>2];k=+g[e+16>>2];i=+g[e+20>>2];f=+g[e+24>>2];u=+g[e+32>>2];t=+g[e+36>>2];s=+g[e+40>>2];l=o*u+n*t+m*s;j=+g[b+160>>2];h=+g[b+164>>2];A=+g[b+168>>2];z=+g[e+48>>2]+(C*j+x*h+w*A);y=k*j+i*h+f*A+ +g[e+52>>2];Q=u*j+t*h+s*A+ +g[e+56>>2];e=b+1128|0;g[e>>2]=D*C+B*x+r*w;R=b+1132|0;g[R>>2]=C*q+x*v+w*p;S=b+1136|0;g[S>>2]=C*o+x*n+w*m;g[b+1140>>2]=0.0;T=b+1144|0;g[T>>2]=D*k+B*i+r*f;U=b+1148|0;g[U>>2]=q*k+v*i+p*f;W=b+1152|0;g[W>>2]=o*k+n*i+m*f;g[b+1156>>2]=0.0;Y=b+1160|0;g[Y>>2]=D*u+B*t+r*s;Z=b+1164|0;g[Z>>2]=q*u+v*t+p*s;g[b+1168>>2]=l;g[b+1172>>2]=0.0;g[b+1176>>2]=z;g[b+1180>>2]=y;g[b+1184>>2]=Q;g[b+1188>>2]=0.0;s=z-+g[M>>2];z=y-+g[N>>2];y=Q-+g[O>>2];Q=+g[H>>2];p=+g[L>>2];t=+g[I>>2];v=+g[K>>2];u=Q*p-t*v;q=+g[J>>2];r=+g[G>>2];B=t*q-p*r;D=v*r-Q*q;f=+g[d>>2];m=+g[E>>2];i=+g[F>>2];n=1.0/(u*f+m*B+D*i);k=u*n;u=n*(v*i-p*m);o=n*(t*m-Q*i);w=B*n;B=n*(p*f-q*i);x=n*(r*i-t*f);C=D*n;D=n*(q*m-v*f);v=n*(Q*f-r*m);m=k*s+u*z+o*y;r=s*w+z*B+x*y;f=s*C+D*z+v*y;g[b+1256>>2]=m;g[b+1260>>2]=r;g[b+1264>>2]=f;g[b+1268>>2]=0.0;g[b+840>>2]=m;y=+g[b+680>>2];z=+g[b+696>>2];do if(!(y>z)){if(y>m){c[b+856>>2]=2;g[b+824>>2]=m-y;break}F=b+856|0;if(z<m){c[F>>2]=1;g[b+824>>2]=m-z;break}else{c[F>>2]=0;g[b+824>>2]=0.0;break}}else{c[b+856>>2]=0;g[b+824>>2]=0.0}while(0);g[b+844>>2]=r;z=+g[b+684>>2];m=+g[b+700>>2];do if(!(z>m)){if(z>r){c[b+860>>2]=2;g[b+828>>2]=r-z;break}F=b+860|0;if(m<r){c[F>>2]=1;g[b+828>>2]=r-m;break}else{c[F>>2]=0;g[b+828>>2]=0.0;break}}else{c[b+860>>2]=0;g[b+828>>2]=0.0}while(0);g[b+848>>2]=f;m=+g[b+688>>2];r=+g[b+704>>2];do if(!(m>r)){if(m>f){c[b+864>>2]=2;g[b+832>>2]=f-m;break}F=b+864|0;if(r<f){c[F>>2]=1;g[b+832>>2]=f-r;break}else{c[F>>2]=0;g[b+832>>2]=0.0;break}}else{c[b+864>>2]=0;g[b+832>>2]=0.0}while(0);r=+g[e>>2];f=+g[T>>2];m=+g[Y>>2];z=r*k+f*u+o*m;y=+g[R>>2];s=+g[U>>2];Q=+g[Z>>2];n=k*y+u*s+o*Q;o=r*w+f*B+x*m;u=w*y+B*s+x*Q;x=r*C+D*f+v*m;B=C*y+D*s+v*Q;Q=C*+g[S>>2]+D*+g[W>>2]+v*l;W=b+1192|0;do if(x<1.0)if(x>-1.0){g[W>>2]=+X(+-B,+Q);l=x<-1.0?-1.0:x;g[b+1196>>2]=+V(+(l>1.0?1.0:l));g[b+1200>>2]=+X(+-o,+z);break}else{g[W>>2]=-+X(+n,+u);g[b+1196>>2]=-1.5707963705062866;g[b+1200>>2]=0.0;break}else{g[W>>2]=+X(+n,+u);g[b+1196>>2]=1.5707963705062866;g[b+1200>>2]=0.0}while(0);u=m*t-f*p;n=r*p-m*i;z=f*i-r*t;g[b+1236>>2]=0.0;o=p*n-t*z;x=i*z-p*u;p=t*u-i*n;g[b+1220>>2]=0.0;i=f*z-m*n;t=m*u-r*z;m=r*n-f*u;g[b+1252>>2]=0.0;f=1.0/+P(+(o*o+x*x+p*p));g[b+1208>>2]=o*f;g[b+1212>>2]=x*f;g[b+1216>>2]=p*f;f=1.0/+P(+(u*u+n*n+z*z));g[b+1224>>2]=u*f;g[b+1228>>2]=n*f;g[b+1232>>2]=z*f;f=1.0/+P(+(i*i+t*t+m*m));g[b+1240>>2]=i*f;g[b+1244>>2]=t*f;g[b+1248>>2]=m*f;if(!(a[b+1301>>0]|0))return;f=+g[(c[b+28>>2]|0)+368>>2];m=+g[(c[b+32>>2]|0)+368>>2];a[b+1280>>0]=(f<1.1920928955078125e-07|m<1.1920928955078125e-07)&1;t=f+m;f=t>0.0?m/t:.5;g[b+1272>>2]=f;g[b+1276>>2]=1.0-f;return}function Yf(a,b,d,e,f,h,j,k,l,m){a=a|0;b=b|0;d=d|0;e=e|0;f=+f;h=+h;j=+j;k=+k;l=+l;m=+m;var n=0,o=0,p=0,q=0,r=0,s=0.0;n=i;i=i+128|0;o=n+80|0;p=n+32|0;q=n+16|0;r=n;c[o>>2]=c[a+4>>2];c[o+4>>2]=c[a+20>>2];c[o+8>>2]=c[a+36>>2];g[o+12>>2]=0.0;c[o+16>>2]=c[a+8>>2];c[o+20>>2]=c[a+24>>2];c[o+24>>2]=c[a+40>>2];g[o+28>>2]=0.0;c[o+32>>2]=c[a+12>>2];c[o+36>>2]=c[a+28>>2];c[o+40>>2]=c[a+44>>2];g[o+44>>2]=0.0;c[p>>2]=c[b+4>>2];c[p+4>>2]=c[b+20>>2];c[p+8>>2]=c[b+36>>2];g[p+12>>2]=0.0;c[p+16>>2]=c[b+8>>2];c[p+20>>2]=c[b+24>>2];c[p+24>>2]=c[b+40>>2];g[p+28>>2]=0.0;c[p+32>>2]=c[b+12>>2];c[p+36>>2]=c[b+28>>2];c[p+40>>2]=c[b+44>>2];g[p+44>>2]=0.0;s=h-+g[a+56>>2];h=j-+g[a+60>>2];g[q>>2]=f-+g[a+52>>2];g[q+4>>2]=s;g[q+8>>2]=h;g[q+12>>2]=0.0;h=l-+g[b+56>>2];l=m-+g[b+60>>2];g[r>>2]=k-+g[b+52>>2];g[r+4>>2]=h;g[r+8>>2]=l;g[r+12>>2]=0.0;Of(d,o,p,q,r,e,a+420|0,+g[a+368>>2],b+420|0,+g[b+368>>2]);i=n;return}function Zf(b){b=b|0;var d=0,e=0,f=0,h=0,j=0.0,k=0.0,l=0.0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0.0,u=0,v=0.0,w=0.0,x=0.0,y=0.0,z=0.0,A=0.0,B=0.0,C=0.0,D=0.0,E=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;d=i;i=i+16|0;e=d;if(!(a[b+1308>>0]|0)){i=d;return}f=b+712|0;g[b+928>>2]=0.0;g[b+992>>2]=0.0;g[b+1056>>2]=0.0;h=b+28|0;c[f>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;c[f+12>>2]=0;f=b+32|0;Xf(b,(c[h>>2]|0)+4|0,(c[f>>2]|0)+4|0);Kb[c[(c[b>>2]|0)+44>>2]&255](b);j=+g[b+1284>>2];k=+g[b+1288>>2];l=+g[b+1292>>2];m=b+1300|0;n=e+4|0;o=e+8|0;p=e+12|0;if(+g[b+696>>2]>=+g[b+680>>2]){q=(a[m>>0]|0)==0;r=c[(q?b+1160|0:b+1096|0)>>2]|0;s=c[(q?b+1144|0:b+1080|0)>>2]|0;c[e>>2]=c[(q?b+1128|0:b+1064|0)>>2];c[n>>2]=s;c[o>>2]=r;g[p>>2]=0.0;Yf(c[h>>2]|0,c[f>>2]|0,b+176|0,e,j,k,l,j,k,l);}if(+g[b+700>>2]>=+g[b+684>>2]){r=(a[m>>0]|0)==0;s=c[(r?b+1164|0:b+1100|0)>>2]|0;q=c[(r?b+1148|0:b+1084|0)>>2]|0;c[e>>2]=c[(r?b+1132|0:b+1068|0)>>2];c[n>>2]=q;c[o>>2]=s;g[p>>2]=0.0;Yf(c[h>>2]|0,c[f>>2]|0,b+260|0,e,j,k,l,j,k,l);}if(+g[b+704>>2]>=+g[b+688>>2]){s=(a[m>>0]|0)==0;m=c[(s?b+1168|0:b+1104|0)>>2]|0;q=c[(s?b+1152|0:b+1088|0)>>2]|0;c[e>>2]=c[(s?b+1136|0:b+1072|0)>>2];c[n>>2]=q;c[o>>2]=m;g[p>>2]=0.0;Yf(c[h>>2]|0,c[f>>2]|0,b+344|0,e,j,k,l,j,k,l);}p=0;do{l=+g[b+868+(p<<6)>>2];k=+g[b+868+(p<<6)+4>>2];j=+fg(+g[b+1192+(p<<2)>>2],l,k);g[b+868+(p<<6)+52>>2]=j;do if(!(l>k)){if(l>j){c[b+868+(p<<6)+56>>2]=1;t=j-l;m=b+868+(p<<6)+48|0;g[m>>2]=t;if(t>3.1415927410125732){g[m>>2]=t+-6.2831854820251465;u=19;break}if(!(t<-3.1415927410125732)){u=19;break}g[m>>2]=t+6.2831854820251465;u=19;break}m=b+868+(p<<6)+56|0;if(!(k<j)){c[m>>2]=0;u=18;break}c[m>>2]=2;t=j-k;m=b+868+(p<<6)+48|0;g[m>>2]=t;if(t>3.1415927410125732){g[m>>2]=t+-6.2831854820251465;u=19;break}if(t<-3.1415927410125732){g[m>>2]=t+6.2831854820251465;u=19}else u=19}else{c[b+868+(p<<6)+56>>2]=0;u=18}while(0);if((u|0)==18?(u=0,(a[b+868+(p<<6)+44>>0]|0)!=0):0)u=19;if((u|0)==19){u=0;m=b+1208+(p<<4)|0;c[e>>2]=c[m>>2];c[e+4>>2]=c[m+4>>2];c[e+8>>2]=c[m+8>>2];c[e+12>>2]=c[m+12>>2];m=b+428+(p*84|0)|0;q=c[h>>2]|0;k=+g[q+4>>2];j=+g[q+20>>2];l=+g[q+36>>2];t=+g[q+8>>2];v=+g[q+24>>2];w=+g[q+40>>2];x=+g[q+12>>2];y=+g[q+28>>2];z=+g[q+44>>2];s=c[f>>2]|0;A=+g[s+4>>2];B=+g[s+20>>2];C=+g[s+36>>2];D=+g[s+8>>2];E=+g[s+24>>2];F=+g[s+40>>2];G=+g[s+12>>2];H=+g[s+28>>2];I=+g[s+44>>2];c[m>>2]=0;c[m+4>>2]=0;c[m+8>>2]=0;c[m+12>>2]=0;J=+g[e>>2];K=+g[n>>2];L=+g[o>>2];M=k*J+j*K+l*L;l=t*J+v*K+w*L;w=x*J+y*K+z*L;g[b+428+(p*84|0)+16>>2]=M;g[b+428+(p*84|0)+20>>2]=l;g[b+428+(p*84|0)+24>>2]=w;g[b+428+(p*84|0)+28>>2]=0.0;z=-J;J=-K;K=-L;L=A*z+B*J+C*K;C=D*z+E*J+F*K;F=G*z+H*J+I*K;g[b+428+(p*84|0)+32>>2]=L;g[b+428+(p*84|0)+36>>2]=C;g[b+428+(p*84|0)+40>>2]=F;g[b+428+(p*84|0)+44>>2]=0.0;K=M*+g[q+420>>2];I=l*+g[q+424>>2];J=w*+g[q+428>>2];g[b+428+(p*84|0)+48>>2]=K;g[b+428+(p*84|0)+52>>2]=I;g[b+428+(p*84|0)+56>>2]=J;g[b+428+(p*84|0)+60>>2]=0.0;H=L*+g[s+420>>2];z=C*+g[s+424>>2];G=F*+g[s+428>>2];g[b+428+(p*84|0)+64>>2]=H;g[b+428+(p*84|0)+68>>2]=z;g[b+428+(p*84|0)+72>>2]=G;g[b+428+(p*84|0)+76>>2]=0.0;g[b+428+(p*84|0)+80>>2]=M*K+l*I+w*J+(L*H+C*z+F*G);}p=p+1|0}while((p|0)!=3);i=d;return}function _f(b,d){b=b|0;d=d|0;var e=0,f=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0.0,p=0.0,q=0.0,r=0.0,s=0,t=0,u=0;if(a[b+1308>>0]|0){c[d>>2]=0;c[d+4>>2]=0;return}Xf(b,(c[b+28>>2]|0)+4|0,(c[b+32>>2]|0)+4|0);c[d>>2]=0;e=d+4|0;c[e>>2]=6;if((c[b+856>>2]|0)==0?(a[b+788>>0]|0)==0:0){f=0;h=6}else{c[d>>2]=1;c[e>>2]=5;f=1;h=5}if((c[b+860>>2]|0)==0?(a[b+789>>0]|0)==0:0){i=f;j=h}else{k=f+1|0;c[d>>2]=k;f=h+-1|0;c[e>>2]=f;i=k;j=f}if((c[b+864>>2]|0)==0?(a[b+790>>0]|0)==0:0){l=i;m=j;n=0}else{f=i+1|0;c[d>>2]=f;i=j+-1|0;c[e>>2]=i;l=f;m=i;n=0}while(1){o=+g[b+868+(n<<6)>>2];p=+g[b+868+(n<<6)+4>>2];q=+fg(+g[b+1192+(n<<2)>>2],o,p);g[b+868+(n<<6)+52>>2]=q;do if(!(o>p)){if(o>q){c[b+868+(n<<6)+56>>2]=1;r=q-o;i=b+868+(n<<6)+48|0;g[i>>2]=r;if(r>3.1415927410125732){g[i>>2]=r+-6.2831854820251465;s=21;break}if(!(r<-3.1415927410125732)){s=21;break}g[i>>2]=r+6.2831854820251465;s=21;break}i=b+868+(n<<6)+56|0;if(!(p<q)){c[i>>2]=0;s=20;break}c[i>>2]=2;r=q-p;i=b+868+(n<<6)+48|0;g[i>>2]=r;if(r>3.1415927410125732){g[i>>2]=r+-6.2831854820251465;s=21;break}if(r<-3.1415927410125732){g[i>>2]=r+6.2831854820251465;s=21}else s=21}else{c[b+868+(n<<6)+56>>2]=0;s=20}while(0);if((s|0)==20){s=0;if(!(a[b+868+(n<<6)+44>>0]|0)){t=m;u=l}else s=21}if((s|0)==21){s=0;i=l+1|0;c[d>>2]=i;f=m+-1|0;c[e>>2]=f;t=f;u=i}n=n+1|0;if((n|0)==3)break;else{l=u;m=t}}return}function $f(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;e=i;i=i+16|0;f=e;g=c[b+28>>2]|0;h=g+4|0;j=c[b+32>>2]|0;k=j+4|0;l=g+336|0;m=j+336|0;n=g+352|0;g=j+352|0;if(!(a[b+1301>>0]|0)){j=b+1304|0;o=d+32|0;p=d+4|0;q=0;r=ag(b,d,0,h,k,l,m,n,g)|0;while(1){s=b+868+(q<<6)|0;if((c[b+868+(q<<6)+56>>2]|0)==0?(a[b+868+(q<<6)+44>>0]|0)==0:0)t=r;else{u=b+1208+(q<<4)|0;c[f>>2]=c[u>>2];c[f+4>>2]=c[u+4>>2];c[f+8>>2]=c[u+8>>2];c[f+12>>2]=c[u+12>>2];u=c[j>>2]>>(q*3|0)+9;if(!(u&1))c[b+868+(q<<6)+28>>2]=c[c[o>>2]>>2];if(!(u&2))c[b+868+(q<<6)+36>>2]=c[c[o>>2]>>2];if(!(u&4))c[b+868+(q<<6)+32>>2]=c[p>>2];t=(bg(b,s,h,k,l,m,n,g,d,r,f,1,0)|0)+r|0}q=q+1|0;if((q|0)==3)break;else r=t}i=e;return}else{t=b+1304|0;r=d+32|0;q=d+4|0;p=0;o=0;while(1){j=b+868+(p<<6)|0;if((c[b+868+(p<<6)+56>>2]|0)==0?(a[b+868+(p<<6)+44>>0]|0)==0:0)v=o;else{s=b+1208+(p<<4)|0;c[f>>2]=c[s>>2];c[f+4>>2]=c[s+4>>2];c[f+8>>2]=c[s+8>>2];c[f+12>>2]=c[s+12>>2];s=c[t>>2]>>(p*3|0)+9;if(!(s&1))c[b+868+(p<<6)+28>>2]=c[c[r>>2]>>2];if(!(s&2))c[b+868+(p<<6)+36>>2]=c[c[r>>2]>>2];if(!(s&4))c[b+868+(p<<6)+32>>2]=c[q>>2];v=(bg(b,j,h,k,l,m,n,g,d,o,f,1,0)|0)+o|0}p=p+1|0;if((p|0)==3)break;else o=v}ag(b,d,v,h,k,l,m,n,g)|0;i=e;return}}function ag(b,d,e,f,h,j,k,l,m){b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;var n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0;n=i;i=i+80|0;o=n+16|0;p=n;g[o+60>>2]=0.0;q=o+8|0;g[q>>2]=0.0;r=o+12|0;g[r>>2]=.10000000149011612;s=o+16|0;g[s>>2]=300.0;g[o>>2]=1.0;t=o+4|0;g[t>>2]=-1.0;u=o+28|0;g[u>>2]=0.0;v=o+32|0;g[v>>2]=.20000000298023224;w=o+36|0;g[w>>2]=0.0;x=o+40|0;g[x>>2]=0.0;y=o+20|0;g[y>>2]=1.0;z=o+24|0;g[z>>2]=.5;A=o+56|0;c[A>>2]=0;B=o+48|0;g[B>>2]=0.0;C=o+44|0;a[C>>0]=0;D=o+52|0;E=b+732|0;F=b+728|0;G=p+4|0;H=p+8|0;I=p+12|0;J=b+1304|0;K=d+32|0;L=d+4|0;M=b+1301|0;N=e;e=0;while(1){O=c[b+856+(e<<2)>>2]|0;P=a[b+788+e>>0]|0;do if((O|0)==0&P<<24>>24==0)Q=N;else{g[x>>2]=0.0;c[A>>2]=O;c[D>>2]=c[b+840+(e<<2)>>2];c[B>>2]=c[b+824+(e<<2)>>2];c[y>>2]=c[E>>2];a[C>>0]=P;c[t>>2]=c[b+696+(e<<2)>>2];c[z>>2]=c[F>>2];c[o>>2]=c[b+680+(e<<2)>>2];g[s>>2]=0.0;c[r>>2]=c[b+808+(e<<2)>>2];c[q>>2]=c[b+792+(e<<2)>>2];c[p>>2]=c[b+1064+(e<<2)>>2];c[G>>2]=c[b+1080+(e<<2)>>2];c[H>>2]=c[b+1096+(e<<2)>>2];g[I>>2]=0.0;R=c[J>>2]>>e*3;if(!(R&1))S=c[K>>2]|0;else S=b+740+(e<<2)|0;c[u>>2]=c[S>>2];if(!(R&2))T=c[K>>2]|0;else T=b+772+(e<<2)|0;c[w>>2]=c[T>>2];c[v>>2]=c[((R&4|0)==0?L:b+756+(e<<2)|0)>>2];if(!(a[M>>0]|0)){Q=(bg(b,o,f,h,j,k,l,m,d,N,p,0,0)|0)+N|0;break}R=e+1|0;if(!(c[b+868+(((R|0)==3?0:R)<<6)+56>>2]|0))U=1;else U=(c[b+868+(((e+2|0)%3|0)<<6)+56>>2]|0)==0&1;Q=(bg(b,o,f,h,j,k,l,m,d,N,p,0,U)|0)+N|0}while(0);e=e+1|0;if((e|0)==3)break;else N=Q}i=n;return Q|0}function bg(b,d,e,f,h,i,j,k,l,m,n,o,p){b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;i=i|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;o=o|0;p=p|0;var 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,E=0.0,F=0,G=0.0,H=0.0,I=0.0,J=0.0,K=0,L=0.0,M=0.0,N=0.0,O=0.0,P=0.0,Q=0.0,R=0.0,S=0.0,T=0.0,U=0.0,V=0.0,W=0.0,X=0.0,Y=0.0,Z=0.0,_=0.0,aa=0.0,ba=0.0,ca=0.0,da=0,ea=0.0,fa=0,ga=0,ha=0.0,ia=0.0;q=$(c[l+24>>2]|0,m)|0;m=a[d+44>>0]|0;r=c[d+56>>2]|0;s=(r|0)!=0;if(!(m<<24>>24!=0|s)){t=0;return t|0}u=(o|0)!=0;o=l+12|0;v=c[(u?o:l+8|0)>>2]|0;w=l+20|0;x=c[(u?w:l+16|0)>>2]|0;c[v+(q<<2)>>2]=c[n>>2];y=n+4|0;z=q+1|0;c[v+(z<<2)>>2]=c[y>>2];A=n+8|0;B=q+2|0;c[v+(B<<2)>>2]=c[A>>2];g[x+(q<<2)>>2]=-+g[n>>2];g[x+(z<<2)>>2]=-+g[y>>2];g[x+(B<<2)>>2]=-+g[A>>2];do if(!u){x=b+1176|0;C=+g[x>>2];if(!(a[b+1301>>0]|0)){D=C-+g[e+48>>2];v=b+1180|0;E=+g[v>>2]-+g[e+52>>2];F=b+1184|0;G=+g[F>>2]-+g[e+56>>2];H=+g[A>>2];I=+g[y>>2];J=+g[n>>2];K=c[o>>2]|0;g[K+(q<<2)>>2]=E*H-G*I;g[K+(z<<2)>>2]=G*J-D*H;g[K+(B<<2)>>2]=D*I-E*J;J=+g[x>>2]-+g[f+48>>2];E=+g[v>>2]-+g[f+52>>2];I=+g[F>>2]-+g[f+56>>2];D=+g[A>>2];H=+g[y>>2];G=+g[n>>2];F=c[w>>2]|0;g[F+(q<<2)>>2]=-(E*D-I*H);g[F+(z<<2)>>2]=-(I*G-J*D);g[F+(B<<2)>>2]=-(J*H-E*G);break}G=C-+g[f+48>>2];C=+g[b+1180>>2]-+g[f+52>>2];E=+g[b+1184>>2]-+g[f+56>>2];H=+g[n>>2];J=+g[y>>2];D=+g[A>>2];I=G*H+C*J+E*D;L=H*I;M=J*I;N=D*I;I=+g[b+1112>>2]-+g[e+48>>2];O=+g[b+1116>>2]-+g[e+52>>2];P=+g[b+1120>>2]-+g[e+56>>2];Q=H*I+J*O+D*P;R=H*Q;S=J*Q;T=D*Q;Q=+g[d+52>>2]-+g[d+48>>2];U=R+H*Q-L;V=S+J*Q-M;W=T+D*Q-N;Q=+g[b+1272>>2];X=I-R+Q*U;R=O-S+Q*V;S=P-T+Q*W;T=+g[b+1276>>2];P=G-L-T*U;U=C-M-T*V;V=E-N-T*W;W=D*R-J*S;N=H*S-D*X;S=J*X-H*R;R=D*U-J*V;X=H*V-D*P;D=J*P-H*U;if((p|0)!=0|(a[b+1280>>0]|0)==0){Y=R;Z=X;_=D;aa=W;ba=N;ca=S}else{Y=T*R;Z=T*X;_=T*D;aa=Q*W;ba=Q*N;ca=Q*S}F=c[o>>2]|0;g[F+(q<<2)>>2]=aa;g[F+(q+1<<2)>>2]=ba;g[F+(q+2<<2)>>2]=ca;F=c[w>>2]|0;g[F+(q<<2)>>2]=-Y;g[F+(z<<2)>>2]=-Z;g[F+(B<<2)>>2]=-_}while(0);if(s?+g[d>>2]==+g[d+4>>2]:0){B=l+28|0;z=c[B>>2]|0;g[z+(q<<2)>>2]=0.0;da=z;ea=0.0;fa=B}else ga=11;do if((ga|0)==11){B=l+28|0;z=c[B>>2]|0;w=z+(q<<2)|0;g[w>>2]=0.0;if(!(m<<24>>24)){if(s){da=z;ea=0.0;fa=B;break}else t=1;return t|0}c[(c[l+32>>2]|0)+(q<<2)>>2]=c[d+28>>2];if(s){da=z;ea=+g[w>>2];fa=B;break}_=+g[d+8>>2];Z=u?_:-_;Y=+g[d+52>>2];ca=+g[d>>2];ba=+g[d+4>>2];aa=+g[l>>2]*+g[d+32>>2];do if(!(ca>ba))if(!(ca==ba)){S=Z/aa;if(S<0.0)if(Y>=ca&ca-S>Y){ha=(ca-Y)/S;break}else{ha=Y<ca?0.0:1.0;break}if(S>0.0)if(Y<=ba&ba-S<Y){ha=(ba-Y)/S;break}else{ha=Y>ba?0.0:1.0;break}else ha=0.0}else ha=0.0;else ha=1.0;while(0);g[w>>2]=ha*_+ +g[w>>2];B=d+12|0;g[(c[l+36>>2]|0)+(q<<2)>>2]=-+g[B>>2];c[(c[l+40>>2]|0)+(q<<2)>>2]=c[B>>2];t=1;return t|0}while(0);ha=+g[l>>2]*+g[d+32>>2]*+g[d+48>>2];g[da+(q<<2)>>2]=ea+(u?-ha:ha);c[(c[l+32>>2]|0)+(q<<2)>>2]=c[d+36>>2];if(+g[d>>2]==+g[d+4>>2]){g[(c[l+36>>2]|0)+(q<<2)>>2]=-3402823466385288598117041.0e14;g[(c[l+40>>2]|0)+(q<<2)>>2]=3402823466385288598117041.0e14;t=1;return t|0}da=(r|0)==1;r=c[l+40>>2]|0;g[(c[l+36>>2]|0)+(q<<2)>>2]=da?0.0:-3402823466385288598117041.0e14;g[r+(q<<2)>>2]=da?3402823466385288598117041.0e14:0.0;ha=+g[d+40>>2];if(!(ha>0.0)){t=1;return t|0}if(u){ea=+g[n>>2];ba=+g[y>>2];Y=+g[A>>2];ia=+g[j>>2]*ea+ +g[j+4>>2]*ba+ +g[j+8>>2]*Y-(ea*+g[k>>2]+ba*+g[k+4>>2]+Y*+g[k+8>>2]);}else{Y=+g[n>>2];ba=+g[y>>2];ea=+g[A>>2];ia=+g[h>>2]*Y+ +g[h+4>>2]*ba+ +g[h+8>>2]*ea-(Y*+g[i>>2]+ba*+g[i+4>>2]+ea*+g[i+8>>2]);}if(da){if(!(ia<0.0)){t=1;return t|0}ea=-(ia*ha);da=(c[fa>>2]|0)+(q<<2)|0;if(!(+g[da>>2]<ea)){t=1;return t|0}g[da>>2]=ea;t=1;return t|0}else{if(!(ia>0.0)){t=1;return t|0}ea=-(ia*ha);da=(c[fa>>2]|0)+(q<<2)|0;if(!(+g[da>>2]>ea)){t=1;return t|0}g[da>>2]=ea;t=1;return t|0}return 0}function cg(a){a=a|0;var b=0.0,d=0.0,e=0.0,f=0.0;b=+g[(c[a+28>>2]|0)+368>>2];d=+g[(c[a+32>>2]|0)+368>>2];e=d==0.0?1.0:b/(b+d);d=1.0-e;b=e*+g[a+1116>>2]+d*+g[a+1180>>2];f=e*+g[a+1120>>2]+d*+g[a+1184>>2];g[a+1284>>2]=+g[a+1112>>2]*e+d*+g[a+1176>>2];g[a+1288>>2]=b;g[a+1292>>2]=f;g[a+1296>>2]=0.0;return}function dg(a,b,d,e){a=a|0;b=b|0;d=+d;e=e|0;var f=0,h=0;if(e>>>0<3)if((b|0)==2){g[a+756+(e<<2)>>2]=d;f=a+1304|0;c[f>>2]=c[f>>2]|4<<e*3;return}else if((b|0)==4){g[a+772+(e<<2)>>2]=d;f=a+1304|0;c[f>>2]=c[f>>2]|2<<e*3;return}else if((b|0)==3){g[a+740+(e<<2)>>2]=d;f=a+1304|0;c[f>>2]=c[f>>2]|1<<e*3;return}else return;f=e+-3|0;if(f>>>0>=3)return;if((b|0)==2){g[a+868+(f<<6)+32>>2]=d;h=a+1304|0;c[h>>2]=c[h>>2]|4<<e*3;return}else if((b|0)==3){g[a+868+(f<<6)+28>>2]=d;h=a+1304|0;c[h>>2]=c[h>>2]|1<<e*3;return}else if((b|0)==4){g[a+868+(f<<6)+36>>2]=d;f=a+1304|0;c[f>>2]=c[f>>2]|2<<e*3;return}else return}function eg(a,b,c){a=a|0;b=b|0;c=c|0;var d=0.0,e=0;do if(c>>>0<3)if((b|0)==2){d=+g[a+756+(c<<2)>>2];break}else if((b|0)==4){d=+g[a+772+(c<<2)>>2];break}else if((b|0)==3){d=+g[a+740+(c<<2)>>2];break}else{d=0.0;break}else{e=c+-3|0;if(e>>>0<3)if((b|0)==3){d=+g[a+868+(e<<6)+28>>2];break}else if((b|0)==4){d=+g[a+868+(e<<6)+36>>2];break}else if((b|0)==2){d=+g[a+868+(e<<6)+32>>2];break}else{d=0.0;break}else d=0.0}while(0);return +d}function fg(a,b,c){a=+a;b=+b;c=+c;var d=0.0,e=0.0,f=0.0,g=0.0,h=0,i=0.0,j=0.0;if(b>=c){d=a;return +d}if(a<b){e=+vs(b-a);if(!(e<-3.1415927410125732))if(e>3.1415927410125732)f=e+-6.2831854820251465;else f=e;else f=e+6.2831854820251465;e=+O(+f);f=+vs(c-a);if(!(f<-3.1415927410125732))if(f>3.1415927410125732)g=f+-6.2831854820251465;else g=f;else g=f+6.2831854820251465;h=e<+O(+g);d=h?a:a+6.2831854820251465;return +d}if(!(a>c)){d=a;return +d}g=+vs(a-c);if(!(g<-3.1415927410125732))if(g>3.1415927410125732)i=g+-6.2831854820251465;else i=g;else i=g+6.2831854820251465;g=+O(+i);i=+vs(a-b);if(!(i<-3.1415927410125732))if(i>3.1415927410125732)j=i+-6.2831854820251465;else j=i;else j=i+6.2831854820251465;h=+O(+j)<g;d=h?a+-6.2831854820251465:a;return +d}function gg(a){a=a|0;if(!a)return;c[3710]=(c[3710]|0)+1;xs(c[a+-4>>2]|0);return}function hg(a,b,c,d){a=a|0;b=b|0;c=c|0;d=+d;return}function ig(a){a=a|0;return 252}function jg(a,b,e){a=a|0;b=b|0;e=e|0;ah(a,b,e)|0;c[b+52>>2]=c[a+48>>2];c[b+56>>2]=c[a+52>>2];c[b+60>>2]=c[a+56>>2];c[b+64>>2]=c[a+60>>2];c[b+68>>2]=c[a+64>>2];c[b+72>>2]=c[a+68>>2];c[b+76>>2]=c[a+72>>2];c[b+80>>2]=c[a+76>>2];c[b+84>>2]=c[a+80>>2];c[b+88>>2]=c[a+84>>2];c[b+92>>2]=c[a+88>>2];c[b+96>>2]=c[a+92>>2];c[b+100>>2]=c[a+96>>2];c[b+104>>2]=c[a+100>>2];c[b+108>>2]=c[a+104>>2];c[b+112>>2]=c[a+108>>2];c[b+116>>2]=c[a+112>>2];c[b+120>>2]=c[a+116>>2];c[b+124>>2]=c[a+120>>2];c[b+128>>2]=c[a+124>>2];c[b+132>>2]=c[a+128>>2];c[b+136>>2]=c[a+132>>2];c[b+140>>2]=c[a+136>>2];c[b+144>>2]=c[a+140>>2];c[b+148>>2]=c[a+144>>2];c[b+152>>2]=c[a+148>>2];c[b+156>>2]=c[a+152>>2];c[b+160>>2]=c[a+156>>2];c[b+164>>2]=c[a+160>>2];c[b+168>>2]=c[a+164>>2];c[b+172>>2]=c[a+168>>2];c[b+176>>2]=c[a+172>>2];c[b+228>>2]=c[a+868>>2];c[b+212>>2]=c[a+872>>2];c[b+196>>2]=c[a+680>>2];c[b+180>>2]=c[a+696>>2];c[b+232>>2]=c[a+932>>2];c[b+216>>2]=c[a+936>>2];c[b+200>>2]=c[a+684>>2];c[b+184>>2]=c[a+700>>2];c[b+236>>2]=c[a+996>>2];c[b+220>>2]=c[a+1e3>>2];c[b+204>>2]=c[a+688>>2];c[b+188>>2]=c[a+704>>2];c[b+244>>2]=d[a+1300>>0];c[b+248>>2]=d[a+1301>>0];return 1168}function kg(b,d){b=b|0;d=d|0;var e=0,f=0.0,h=0.0;e=d+48|0;if(a[b+1309>>0]|0){f=(+g[b+1256>>2]-+g[b+1316>>2])*+g[b+1340>>2];g[b+792>>2]=f*(+g[d>>2]*+g[b+1364>>2]/+(c[e>>2]|0));h=+O(+f);g[b+808>>2]=h/+g[d>>2]}if(a[b+1310>>0]|0){h=(+g[b+1260>>2]-+g[b+1320>>2])*+g[b+1344>>2];g[b+796>>2]=h*(+g[d>>2]*+g[b+1368>>2]/+(c[e>>2]|0));f=+O(+h);g[b+812>>2]=f/+g[d>>2]}if(a[b+1311>>0]|0){f=(+g[b+1264>>2]-+g[b+1324>>2])*+g[b+1348>>2];g[b+800>>2]=f*(+g[d>>2]*+g[b+1372>>2]/+(c[e>>2]|0));h=+O(+f);g[b+816>>2]=h/+g[d>>2]}if(a[b+1312>>0]|0){h=-((+g[b+1192>>2]-+g[b+1328>>2])*+g[b+1352>>2]);f=+g[d>>2];g[b+876>>2]=f*+g[b+1376>>2]/+(c[e>>2]|0)*h;g[b+880>>2]=+O(+h)/f}if(a[b+1313>>0]|0){f=-((+g[b+1196>>2]-+g[b+1332>>2])*+g[b+1356>>2]);h=+g[d>>2];g[b+940>>2]=h*+g[b+1380>>2]/+(c[e>>2]|0)*f;g[b+944>>2]=+O(+f)/h}if(!(a[b+1314>>0]|0)){$f(b,d);return}h=-((+g[b+1200>>2]-+g[b+1336>>2])*+g[b+1360>>2]);f=+g[d>>2];g[b+1004>>2]=f*+g[b+1384>>2]/+(c[e>>2]|0)*h;g[b+1008>>2]=+O(+h)/f;$f(b,d);return}function lg(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,f=0.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,q=0.0,r=0.0,s=0.0,t=0.0,u=0.0,v=0.0,w=0.0,x=0.0,y=0.0,z=0.0,A=0;e=+g[b>>2];f=+g[b+4>>2];h=+g[b+8>>2];i=1.0/+P(+(e*e+f*f+h*h));j=e*i;e=f*i;f=h*i;i=+g[d>>2];h=+g[d+4>>2];k=+g[d+8>>2];l=1.0/+P(+(i*i+h*h+k*k));m=i*l;i=h*l;h=k*l;l=f*i-e*h;k=j*h-f*m;n=e*m-j*i;d=a+28|0;b=c[d>>2]|0;o=+g[b+4>>2];p=+g[b+20>>2];q=+g[b+36>>2];r=+g[b+8>>2];s=+g[b+24>>2];t=+g[b+40>>2];u=+g[b+12>>2];v=+g[b+28>>2];w=+g[b+44>>2];x=-+g[b+52>>2];y=-+g[b+56>>2];z=-+g[b+60>>2];g[a+48>>2]=o*l+k*p+n*q;g[a+52>>2]=m*o+i*p+h*q;g[a+56>>2]=j*o+e*p+f*q;g[a+60>>2]=0.0;g[a+64>>2]=l*r+k*s+n*t;g[a+68>>2]=m*r+i*s+h*t;g[a+72>>2]=j*r+e*s+f*t;g[a+76>>2]=0.0;g[a+80>>2]=l*u+k*v+n*w;g[a+84>>2]=m*u+i*v+h*w;g[a+88>>2]=j*u+e*v+f*w;g[a+92>>2]=0.0;g[a+96>>2]=o*0.0+p*0.0+q*0.0+(o*x+p*y+q*z);g[a+100>>2]=r*0.0+s*0.0+t*0.0+(r*x+s*y+t*z);g[a+104>>2]=u*0.0+v*0.0+w*0.0+(u*x+v*y+w*z);g[a+108>>2]=0.0;b=a+32|0;A=c[b>>2]|0;z=+g[A+4>>2];w=+g[A+20>>2];y=+g[A+36>>2];v=+g[A+8>>2];x=+g[A+24>>2];u=+g[A+40>>2];t=+g[A+12>>2];s=+g[A+28>>2];r=+g[A+44>>2];q=-+g[A+52>>2];p=-+g[A+56>>2];o=-+g[A+60>>2];g[a+112>>2]=l*z+k*w+n*y;g[a+116>>2]=m*z+i*w+h*y;g[a+120>>2]=j*z+e*w+f*y;g[a+124>>2]=0.0;g[a+128>>2]=l*v+k*x+n*u;g[a+132>>2]=m*v+i*x+h*u;g[a+136>>2]=j*v+e*x+f*u;g[a+140>>2]=0.0;g[a+144>>2]=l*t+k*s+n*r;g[a+148>>2]=m*t+i*s+h*r;g[a+152>>2]=j*t+e*s+f*r;g[a+156>>2]=0.0;g[a+160>>2]=z*0.0+w*0.0+y*0.0+(z*q+w*p+y*o);g[a+164>>2]=v*0.0+x*0.0+u*0.0+(v*q+x*p+u*o);g[a+168>>2]=t*0.0+s*0.0+r*0.0+(t*q+s*p+r*o);g[a+172>>2]=0.0;Xf(a,(c[d>>2]|0)+4|0,(c[b>>2]|0)+4|0);return}function mg(a){a=a|0;if(!a)return;c[3710]=(c[3710]|0)+1;xs(c[a+-4>>2]|0);return}function ng(a){a=a|0;return 348}function og(a,b,e){a=a|0;b=b|0;e=e|0;jg(a,b,e)|0;c[b+276>>2]=c[a+1316>>2];c[b+324>>2]=c[a+1364>>2];c[b+252>>2]=d[a+1309>>0];c[b+300>>2]=c[a+1340>>2];c[b+280>>2]=c[a+1320>>2];c[b+328>>2]=c[a+1368>>2];c[b+256>>2]=d[a+1310>>0];c[b+304>>2]=c[a+1344>>2];c[b+284>>2]=c[a+1324>>2];c[b+332>>2]=c[a+1372>>2];c[b+260>>2]=d[a+1311>>0];c[b+308>>2]=c[a+1348>>2];c[b+288>>2]=c[a+1328>>2];c[b+336>>2]=c[a+1376>>2];c[b+264>>2]=d[a+1312>>0];c[b+312>>2]=c[a+1352>>2];c[b+292>>2]=c[a+1332>>2];c[b+340>>2]=c[a+1380>>2];c[b+268>>2]=d[a+1313>>0];c[b+316>>2]=c[a+1356>>2];c[b+296>>2]=c[a+1336>>2];c[b+344>>2]=c[a+1384>>2];c[b+272>>2]=d[a+1314>>0];c[b+320>>2]=c[a+1360>>2];return 1312}function pg(b){b=b|0;var d=0,e=0,f=0,h=0,j=0,k=0,l=0,m=0,n=0.0,o=0.0,p=0.0,q=0.0,r=0,s=0,t=0.0,u=0.0,v=0.0,w=0.0,x=0.0,y=0.0,z=0.0,A=0.0,B=0.0,C=0.0,D=0.0,E=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,N=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0.0,ra=0.0,sa=0.0,ta=0.0,ua=0.0,va=0.0,wa=0.0;d=i;i=i+176|0;e=d+128|0;f=d+80|0;h=d+32|0;j=d+16|0;k=d;if(!(a[b+738>>0]|0)){i=d;return}g[b+36>>2]=0.0;g[b+744>>2]=0.0;if(!(a[b+736>>0]|0)){l=b+28|0;m=c[l>>2]|0;n=+g[b+600>>2];o=+g[b+604>>2];p=+g[b+608>>2];q=n*+g[m+20>>2]+o*+g[m+24>>2]+p*+g[m+28>>2]+ +g[m+56>>2];r=b+32|0;s=c[r>>2]|0;t=+g[b+664>>2];u=+g[b+668>>2];v=+g[b+672>>2];w=+g[s+52>>2];x=+g[s+56>>2];y=t*+g[s+20>>2]+u*+g[s+24>>2]+v*+g[s+28>>2]+x;z=t*+g[s+36>>2]+u*+g[s+40>>2]+v*+g[s+44>>2]+ +g[s+60>>2];A=y-q;B=n*+g[m+4>>2]+o*+g[m+8>>2]+p*+g[m+12>>2]+ +g[m+52>>2];C=n*+g[m+36>>2]+o*+g[m+40>>2]+p*+g[m+44>>2]+ +g[m+60>>2];p=t*+g[s+4>>2]+u*+g[s+8>>2]+v*+g[s+12>>2]+w;v=p-B;u=z-C;t=v*v+A*A+u*u;if(t>1.1920928955078125e-07){o=1.0/+P(+t);t=v*o;v=A*o;A=u*o;g[e>>2]=t;g[e+4>>2]=v;g[e+8>>2]=A;c[e+12>>2]=0;D=A;E=v;F=t}else{c[e>>2]=1065353216;c[e+4>>2]=0;c[e+8>>2]=0;g[e+12>>2]=0.0;D=0.0;E=0.0;F=1.0}if(+O(+D)>.7071067690849304){t=D*D+E*E;v=1.0/+P(+t);A=-(v*D);o=v*E;G=-(F*o);H=F*A;I=o;J=A;K=0.0;L=t*v}else{v=F*F+E*E;t=1.0/+P(+v);A=-(E*t);E=t*F;G=D*A;H=v*t;I=0.0;J=E;K=A;L=-(D*E);}g[e+16>>2]=K;g[e+20>>2]=J;g[e+24>>2]=I;g[e+32>>2]=L;g[e+36>>2]=G;g[e+40>>2]=H;m=f+4|0;M=f+8|0;N=f+12|0;Q=f+16|0;R=f+20|0;S=f+24|0;T=f+28|0;U=f+32|0;V=f+36|0;W=f+40|0;X=f+44|0;Y=h+4|0;Z=h+8|0;_=h+12|0;$=h+16|0;aa=h+20|0;ba=h+24|0;ca=h+28|0;da=h+32|0;ea=h+36|0;fa=h+40|0;ga=h+44|0;ha=j+4|0;ia=j+8|0;ja=j+12|0;ka=k+4|0;la=k+8|0;ma=k+12|0;na=s;H=w;w=x;s=0;while(1){oa=c[l>>2]|0;c[f>>2]=c[oa+4>>2];c[m>>2]=c[oa+20>>2];c[M>>2]=c[oa+36>>2];g[N>>2]=0.0;c[Q>>2]=c[oa+8>>2];c[R>>2]=c[oa+24>>2];c[S>>2]=c[oa+40>>2];g[T>>2]=0.0;c[U>>2]=c[oa+12>>2];c[V>>2]=c[oa+28>>2];c[W>>2]=c[oa+44>>2];g[X>>2]=0.0;c[h>>2]=c[na+4>>2];c[Y>>2]=c[na+20>>2];c[Z>>2]=c[na+36>>2];g[_>>2]=0.0;c[$>>2]=c[na+8>>2];c[aa>>2]=c[na+24>>2];c[ba>>2]=c[na+40>>2];g[ca>>2]=0.0;c[da>>2]=c[na+12>>2];c[ea>>2]=c[na+28>>2];c[fa>>2]=c[na+44>>2];g[ga>>2]=0.0;x=q-+g[oa+56>>2];G=C-+g[oa+60>>2];g[j>>2]=B-+g[oa+52>>2];g[ha>>2]=x;g[ia>>2]=G;g[ja>>2]=0.0;G=z-+g[na+60>>2];g[k>>2]=p-H;g[ka>>2]=y-w;g[la>>2]=G;g[ma>>2]=0.0;oa=c[l>>2]|0;pa=c[r>>2]|0;Of(b+48+(s*84|0)|0,f,h,j,k,e+(s<<4)|0,oa+420|0,+g[oa+368>>2],pa+420|0,+g[pa+368>>2]);pa=s+1|0;if((pa|0)==3)break;oa=c[r>>2]|0;na=oa;H=+g[oa+52>>2];w=+g[oa+56>>2];s=pa}}s=b+560|0;na=b+576|0;r=b+592|0;w=+g[s>>2];H=+g[na>>2];y=+g[r>>2];if(+O(+y)>.7071067690849304){p=y*y+H*H;z=1.0/+P(+p);B=-(y*z);C=H*z;qa=w*B;ra=0.0;sa=B;ta=C;ua=p*z;va=-(w*C);}else{C=w*w+H*H;z=1.0/+P(+C);p=-(H*z);B=w*z;qa=C*z;ra=p;sa=B;ta=0.0;ua=-(y*B);va=y*p}e=b+28|0;k=c[e>>2]|0;p=+g[k+4>>2];B=+g[k+8>>2];z=+g[k+12>>2];C=ra*p+sa*B+ta*z;q=+g[k+20>>2];G=+g[k+24>>2];x=+g[k+28>>2];L=ra*q+sa*G+ta*x;I=+g[k+36>>2];J=+g[k+40>>2];K=+g[k+44>>2];E=ra*I+sa*J+ta*K;ta=ua*p+va*B+qa*z;sa=ua*q+va*G+qa*x;ra=ua*I+va*J+qa*K;qa=p*w+B*H+z*y;va=q*w+G*H+x*y;ua=I*w+J*H+K*y;j=b+300|0;h=b+32|0;f=c[h>>2]|0;y=+g[f+4>>2];H=+g[f+20>>2];w=+g[f+36>>2];D=+g[f+8>>2];A=+g[f+24>>2];t=+g[f+40>>2];v=+g[f+12>>2];F=+g[f+28>>2];o=+g[f+44>>2];c[j>>2]=0;c[j+4>>2]=0;c[j+8>>2]=0;c[j+12>>2]=0;u=C*p+L*q+E*I;I=C*B+L*G+E*J;J=C*z+L*x+E*K;g[b+316>>2]=u;g[b+320>>2]=I;g[b+324>>2]=J;g[b+328>>2]=0.0;K=-C;C=-L;L=-E;E=y*K+H*C+w*L;w=D*K+A*C+t*L;t=v*K+F*C+o*L;g[b+332>>2]=E;g[b+336>>2]=w;g[b+340>>2]=t;g[b+344>>2]=0.0;L=u*+g[k+420>>2];o=I*+g[k+424>>2];C=J*+g[k+428>>2];g[b+348>>2]=L;g[b+352>>2]=o;g[b+356>>2]=C;g[b+360>>2]=0.0;F=E*+g[f+420>>2];K=w*+g[f+424>>2];v=t*+g[f+428>>2];g[b+364>>2]=F;g[b+368>>2]=K;g[b+372>>2]=v;g[b+376>>2]=0.0;g[b+380>>2]=u*L+I*o+J*C+(E*F+w*K+t*v);f=b+384|0;k=c[e>>2]|0;v=+g[k+4>>2];t=+g[k+20>>2];K=+g[k+36>>2];w=+g[k+8>>2];F=+g[k+24>>2];E=+g[k+40>>2];C=+g[k+12>>2];J=+g[k+28>>2];o=+g[k+44>>2];j=c[h>>2]|0;I=+g[j+4>>2];L=+g[j+20>>2];u=+g[j+36>>2];A=+g[j+8>>2];D=+g[j+24>>2];H=+g[j+40>>2];y=+g[j+12>>2];x=+g[j+28>>2];z=+g[j+44>>2];c[f>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;c[f+12>>2]=0;G=ta*v+sa*t+ra*K;K=ta*w+sa*F+ra*E;E=ta*C+sa*J+ra*o;g[b+400>>2]=G;g[b+404>>2]=K;g[b+408>>2]=E;g[b+412>>2]=0.0;o=-ta;ta=-sa;sa=-ra;ra=I*o+L*ta+u*sa;u=A*o+D*ta+H*sa;H=y*o+x*ta+z*sa;g[b+416>>2]=ra;g[b+420>>2]=u;g[b+424>>2]=H;g[b+428>>2]=0.0;sa=G*+g[k+420>>2];z=K*+g[k+424>>2];ta=E*+g[k+428>>2];g[b+432>>2]=sa;g[b+436>>2]=z;g[b+440>>2]=ta;g[b+444>>2]=0.0;x=ra*+g[j+420>>2];o=u*+g[j+424>>2];y=H*+g[j+428>>2];g[b+448>>2]=x;g[b+452>>2]=o;g[b+456>>2]=y;g[b+460>>2]=0.0;g[b+464>>2]=G*sa+K*z+E*ta+(ra*x+u*o+H*y);j=b+468|0;k=c[e>>2]|0;y=+g[k+4>>2];H=+g[k+20>>2];o=+g[k+36>>2];u=+g[k+8>>2];x=+g[k+24>>2];ra=+g[k+40>>2];ta=+g[k+12>>2];E=+g[k+28>>2];z=+g[k+44>>2];f=c[h>>2]|0;K=+g[f+4>>2];sa=+g[f+20>>2];G=+g[f+36>>2];D=+g[f+8>>2];A=+g[f+24>>2];L=+g[f+40>>2];I=+g[f+12>>2];J=+g[f+28>>2];C=+g[f+44>>2];c[j>>2]=0;c[j+4>>2]=0;c[j+8>>2]=0;c[j+12>>2]=0;F=qa*y+va*H+ua*o;o=qa*u+va*x+ua*ra;ra=qa*ta+va*E+ua*z;g[b+484>>2]=F;g[b+488>>2]=o;g[b+492>>2]=ra;g[b+496>>2]=0.0;z=-qa;qa=-va;va=-ua;ua=K*z+sa*qa+G*va;G=D*z+A*qa+L*va;L=I*z+J*qa+C*va;g[b+500>>2]=ua;g[b+504>>2]=G;g[b+508>>2]=L;g[b+512>>2]=0.0;va=F*+g[k+420>>2];C=o*+g[k+424>>2];qa=ra*+g[k+428>>2];g[b+516>>2]=va;g[b+520>>2]=C;g[b+524>>2]=qa;g[b+528>>2]=0.0;J=ua*+g[f+420>>2];z=G*+g[f+424>>2];I=L*+g[f+428>>2];g[b+532>>2]=J;g[b+536>>2]=z;g[b+540>>2]=I;g[b+544>>2]=0.0;g[b+548>>2]=F*va+o*C+ra*qa+(ua*J+G*z+L*I);g[b+724>>2]=0.0;f=c[e>>2]|0;e=c[h>>2]|0;I=+sg(b,f+4|0,e+4|0);g[b+728>>2]=I;h=b+708|0;g[h>>2]=0.0;k=b+712|0;g[k>>2]=0.0;j=b+716|0;a[j>>0]=0;L=+g[b+692>>2];do if(L>=0.0){z=+vs(I-+g[b+688>>2]);if(!(z<-3.1415927410125732))if(z>3.1415927410125732)wa=z+-6.2831854820251465;else wa=z;else wa=z+6.2831854820251465;if(wa<-L){a[j>>0]=1;g[h>>2]=-(wa+L);g[k>>2]=1.0;break}if(wa>L){a[j>>0]=1;g[h>>2]=L-wa;g[k>>2]=-1.0}}while(0);wa=+g[s>>2];L=+g[na>>2];I=+g[r>>2];z=wa*+g[f+4>>2]+L*+g[f+8>>2]+I*+g[f+12>>2];G=wa*+g[f+20>>2]+L*+g[f+24>>2]+I*+g[f+28>>2];J=wa*+g[f+36>>2]+L*+g[f+40>>2]+I*+g[f+44>>2];g[b+720>>2]=1.0/(z*(z*+g[f+288>>2]+G*+g[f+304>>2]+J*+g[f+320>>2])+G*(z*+g[f+292>>2]+G*+g[f+308>>2]+J*+g[f+324>>2])+J*(z*+g[f+296>>2]+G*+g[f+312>>2]+J*+g[f+328>>2])+(z*(z*+g[e+288>>2]+G*+g[e+304>>2]+J*+g[e+320>>2])+G*(z*+g[e+292>>2]+G*+g[e+308>>2]+J*+g[e+324>>2])+J*(z*+g[e+296>>2]+G*+g[e+312>>2]+J*+g[e+328>>2])));i=d;return}function qg(b,d){b=b|0;d=d|0;var e=0,f=0.0,h=0,i=0,j=0,k=0.0,l=0.0,m=0.0,n=0;if(a[b+738>>0]|0){c[d>>2]=0;c[d+4>>2]=0;return}c[d>>2]=5;e=d+4|0;c[e>>2]=1;f=+sg(b,(c[b+28>>2]|0)+4|0,(c[b+32>>2]|0)+4|0);g[b+728>>2]=f;h=b+708|0;g[h>>2]=0.0;i=b+712|0;g[i>>2]=0.0;j=b+716|0;a[j>>0]=0;k=+g[b+692>>2];do if(k>=0.0){l=+vs(f-+g[b+688>>2]);if(!(l<-3.1415927410125732))if(l>3.1415927410125732)m=l+-6.2831854820251465;else m=l;else m=l+6.2831854820251465;if(m<-k){a[j>>0]=1;g[h>>2]=-(m+k);g[i>>2]=1.0;break}if(m>k){a[j>>0]=1;g[h>>2]=k-m;g[i>>2]=-1.0}else n=12}else n=12;while(0);if((n|0)==12?(a[b+737>>0]|0)==0:0)return;c[d>>2]=6;c[e>>2]=0;return}function rg(b,d){b=b|0;d=d|0;var e=0,f=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0.0,q=0.0,r=0.0,s=0.0,t=0.0,u=0.0,v=0.0,w=0.0,x=0.0,y=0.0,z=0.0,A=0.0,B=0.0,C=0.0,D=0.0,E=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,O=0,Q=0,R=0,S=0.0,T=0.0,U=0.0,V=0.0,W=0.0,X=0,Y=0.0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0.0,ia=0.0,ja=0.0,ka=0,la=0.0,ma=0.0,na=0.0,oa=0.0,pa=0.0,qa=0.0,ra=0.0,sa=0.0,ta=0.0,ua=0.0,va=0.0,wa=0.0,xa=0.0,ya=0.0,za=0.0,Aa=0.0,Ba=0.0,Ca=0.0,Da=0.0,Ea=0.0,Fa=0.0,Ga=0.0,Ha=0.0,Ia=0.0,Ja=0,Ka=0,La=0,Ma=0.0,Na=0.0,Oa=0.0,Pa=0.0,Qa=0.0;e=b+28|0;f=c[e>>2]|0;h=f+4|0;i=b+32|0;j=c[i>>2]|0;k=j+4|0;l=f+352|0;m=j+352|0;n=d+24|0;o=c[n>>2]|0;if(!(a[b+739>>0]|0)){p=+g[b+552>>2];q=+g[h>>2];r=+g[b+568>>2];s=+g[f+8>>2];t=+g[b+584>>2];u=+g[f+12>>2];v=p*q+r*s+t*u;w=+g[b+556>>2];x=+g[b+572>>2];y=+g[b+588>>2];z=q*w+s*x+u*y;A=+g[b+560>>2];B=+g[b+576>>2];C=+g[b+592>>2];D=q*A+s*B+u*C;E=+g[f+20>>2];F=+g[f+24>>2];G=+g[f+28>>2];H=p*E+r*F+t*G;I=w*E+x*F+y*G;J=A*E+B*F+C*G;K=+g[f+36>>2];L=+g[f+40>>2];M=+g[f+44>>2];N=p*K+r*L+t*M;t=w*K+x*L+y*M;y=A*K+B*L+C*M;C=+g[b+600>>2];B=+g[b+604>>2];A=+g[b+608>>2];O=f+52|0;x=+g[O>>2];w=x+(q*C+s*B+u*A);Q=f+56|0;u=+g[Q>>2];s=E*C+F*B+G*A+u;R=f+60|0;G=+g[R>>2];F=K*C+L*B+M*A+G;A=+g[k>>2];M=+g[j+8>>2];B=+g[j+12>>2];L=+g[b+624>>2];C=+g[b+640>>2];K=+g[b+656>>2];E=A*L+M*C+B*K;q=+g[j+20>>2];r=+g[j+24>>2];p=+g[j+28>>2];S=L*q+C*r+K*p;T=+g[j+36>>2];U=+g[j+40>>2];V=+g[j+44>>2];W=L*T+C*U+K*V;K=+g[b+664>>2];C=+g[b+668>>2];L=+g[b+672>>2];X=j+52|0;Y=+g[X>>2]+(A*K+M*C+B*L);Z=j+56|0;B=q*K+r*C+p*L+ +g[Z>>2];_=j+60|0;p=T*K+U*C+V*L+ +g[_>>2];$=(a[b+736>>0]|0)==0;if($){aa=c[d+8>>2]|0;g[aa>>2]=1.0;ba=o+1|0;g[aa+(ba<<2)>>2]=1.0;ca=o<<1;da=ca+2|0;g[aa+(da<<2)>>2]=1.0;aa=c[d+16>>2]|0;g[aa>>2]=-1.0;g[aa+(ba<<2)>>2]=-1.0;g[aa+(da<<2)>>2]=-1.0;ea=ca;fa=ba;ga=da;ha=+g[O>>2];ia=+g[Q>>2];ja=+g[R>>2]}else{R=o<<1;ea=R;fa=o+1|0;ga=R+2|0;ha=x;ia=u;ja=G}G=w-ha;ha=s-ia;ia=F-ja;R=c[d+12>>2]|0;c[R>>2]=0;g[R+4>>2]=ia;g[R+8>>2]=-ha;g[R+12>>2]=0.0;g[R+(o<<2)>>2]=-ia;c[R+(fa<<2)>>2]=0;Q=o+2|0;g[R+(Q<<2)>>2]=G;O=o+3|0;g[R+(O<<2)>>2]=0.0;g[R+(ea<<2)>>2]=ha;da=ea|1;g[R+(da<<2)>>2]=-G;c[R+(ga<<2)>>2]=0;ba=ea+3|0;g[R+(ba<<2)>>2]=0.0;G=Y-+g[X>>2];ha=B-+g[Z>>2];ia=p-+g[_>>2];_=c[d+20>>2]|0;c[_>>2]=0;g[_+4>>2]=-ia;g[_+8>>2]=ha;g[_+12>>2]=0.0;g[_+(o<<2)>>2]=ia;c[_+(fa<<2)>>2]=0;g[_+(Q<<2)>>2]=-G;g[_+(O<<2)>>2]=0.0;g[_+(ea<<2)>>2]=-ha;g[_+(da<<2)>>2]=G;c[_+(ga<<2)>>2]=0;g[_+(ba<<2)>>2]=0.0;ba=c[b+748>>2]|0;G=+g[((ba&8|0)==0?d+4|0:b+756|0)>>2];ha=G*+g[d>>2];ga=c[d+28>>2]|0;if($){g[ga>>2]=ha*(Y-w);g[ga+(o<<2)>>2]=ha*(B-s);g[ga+(o<<1<<2)>>2]=ha*(p-F);}$=c[n>>2]|0;da=$*3|0;ea=$<<2;g[R+(da<<2)>>2]=v;O=da+1|0;g[R+(O<<2)>>2]=H;Q=da+2|0;g[R+(Q<<2)>>2]=N;g[R+(ea<<2)>>2]=z;fa=ea|1;g[R+(fa<<2)>>2]=I;Z=ea|2;g[R+(Z<<2)>>2]=t;g[_+(da<<2)>>2]=-v;g[_+(O<<2)>>2]=-H;g[_+(Q<<2)>>2]=-N;g[_+(ea<<2)>>2]=-z;g[_+(fa<<2)>>2]=-I;g[_+(Z<<2)>>2]=-t;F=J*W-y*S;p=y*E-D*W;W=D*S-J*E;g[ga+(da<<2)>>2]=(N*W+(v*F+H*p))*ha;g[ga+(ea<<2)>>2]=(t*W+(z*F+I*p))*ha;if(!(a[b+716>>0]|0)){ka=0;la=0.0}else{ha=+g[b+708>>2]*+g[b+732>>2];ka=ha>0.0?1:2;la=ha}ea=a[b+737>>0]|0;da=(ka|0)!=0;if(!(ea&255|ka))return;Z=$*5|0;g[R+(Z<<2)>>2]=D;$=Z+1|0;g[R+($<<2)>>2]=J;fa=Z+2|0;g[R+(fa<<2)>>2]=y;g[_+(Z<<2)>>2]=-D;g[_+($<<2)>>2]=-J;g[_+(fa<<2)>>2]=-y;ha=+g[b+688>>2];p=+g[b+692>>2];I=+vs(ha-p);if(!(I<-3.1415927410125732))if(I>3.1415927410125732)ma=I+-6.2831854820251465;else ma=I;else ma=I+6.2831854820251465;I=+vs(ha+p);if(!(I<-3.1415927410125732))if(I>3.1415927410125732)na=I+-6.2831854820251465;else na=I;else na=I+6.2831854820251465;fa=ma==na;_=ga+(Z<<2)|0;g[_>>2]=0.0;if(!(ba&2))oa=G;else oa=+g[b+764>>2];if(!(ea<<24>>24==0|da&fa)){if(ba&4)c[(c[d+32>>2]|0)+(Z<<2)>>2]=c[b+752>>2];G=+g[b+728>>2];I=+g[b+680>>2];ea=ma>na;do if(!(ea|fa)){p=I/(oa*+g[d>>2]);if(p<0.0)if(G>=ma&ma-p>G){pa=(ma-G)/p;break}else{pa=G<ma?0.0:1.0;break}if(p>0.0)if(G<=na&na-p<G){pa=(na-G)/p;break}else{pa=G>na?0.0:1.0;break}else pa=0.0}else pa=ea?1.0:0.0;while(0);g[_>>2]=pa*I*+g[b+732>>2]+ +g[_>>2];ea=b+684|0;g[(c[d+36>>2]|0)+(Z<<2)>>2]=-+g[ea>>2];c[(c[d+40>>2]|0)+(Z<<2)>>2]=c[ea>>2]}if(!da)return;g[_>>2]=+g[_>>2]+la*(oa*+g[d>>2]);if(ba&1)c[(c[d+32>>2]|0)+(Z<<2)>>2]=c[b+760>>2];do if(!fa){ba=(c[d+36>>2]|0)+(Z<<2)|0;da=c[d+40>>2]|0;if((ka|0)==1){g[ba>>2]=0.0;g[da+(Z<<2)>>2]=3402823466385288598117041.0e14;break}else{g[ba>>2]=-3402823466385288598117041.0e14;g[da+(Z<<2)>>2]=0.0;break}}else{g[(c[d+36>>2]|0)+(Z<<2)>>2]=-3402823466385288598117041.0e14;g[(c[d+40>>2]|0)+(Z<<2)>>2]=3402823466385288598117041.0e14}while(0);oa=+g[b+704>>2];do if(oa>0.0){la=D*+g[l>>2]+J*+g[f+356>>2]+y*+g[f+360>>2]-(D*+g[m>>2]+J*+g[j+356>>2]+y*+g[j+360>>2]);if((ka|0)==1){if(!(la<0.0))break;I=-(oa*la);if(!(+g[_>>2]<I))break;g[_>>2]=I;break}else{if(!(la>0.0))break;I=-(oa*la);if(!(+g[_>>2]>I))break;g[_>>2]=I;break}}while(0);g[_>>2]=+g[b+700>>2]*+g[_>>2];return}oa=+g[h>>2];y=+g[f+8>>2];J=+g[f+12>>2];D=+g[b+556>>2];I=+g[b+572>>2];la=+g[b+588>>2];pa=+g[b+560>>2];na=+g[b+576>>2];G=+g[b+592>>2];ma=oa*pa+y*na+J*G;p=+g[f+20>>2];ha=+g[f+24>>2];F=+g[f+28>>2];z=pa*p+na*ha+G*F;W=+g[f+36>>2];t=+g[f+40>>2];H=+g[f+44>>2];v=pa*W+na*t+G*H;G=+g[b+600>>2];na=+g[b+604>>2];pa=+g[b+608>>2];h=f+52|0;N=+g[h>>2]+(oa*G+y*na+J*pa);_=f+56|0;E=p*G+ha*na+F*pa+ +g[_>>2];ka=f+60|0;S=W*G+t*na+H*pa+ +g[ka>>2];pa=+g[k>>2];na=+g[j+8>>2];G=+g[j+12>>2];s=+g[b+624>>2];B=+g[b+640>>2];w=+g[b+656>>2];Y=pa*s+na*B+G*w;ia=+g[j+20>>2];ja=+g[j+24>>2];u=+g[j+28>>2];x=s*ia+B*ja+w*u;L=+g[j+36>>2];V=+g[j+40>>2];C=+g[j+44>>2];U=s*L+B*V+w*C;w=+g[b+664>>2];B=+g[b+668>>2];s=+g[b+672>>2];K=+g[j+52>>2];T=K+(pa*w+na*B+G*s);G=+g[j+56>>2];na=ia*w+ja*B+u*s+G;u=+g[j+60>>2];ja=L*w+V*B+C*s+u;s=T-N;C=na-E;B=ja-S;V=+g[(c[e>>2]|0)+368>>2];w=+g[(c[i>>2]|0)+368>>2];i=V<1.1920928955078125e-07|w<1.1920928955078125e-07;L=V+w;V=L>0.0?w/L:.5;L=1.0-V;w=ma*V+Y*L;ia=z*V+x*L;pa=v*V+U*L;r=1.0/+P(+(w*w+ia*ia+pa*pa));q=w*r;w=ia*r;ia=pa*r;e=o<<1;r=T-K;K=na-G;G=ja-u;u=r*q+K*w+G*ia;ja=q*u;na=w*u;T=ia*u;u=r-ja;r=K-na;K=G-T;G=N-+g[h>>2];N=E-+g[_>>2];E=S-+g[ka>>2];S=G*q+N*w+E*ia;pa=q*S;M=w*S;A=ia*S;S=G-pa;G=N-M;N=E-A;E=pa-ja;ja=M-na;na=A-T;T=S+V*E;A=G+V*ja;M=N+V*na;pa=u-L*E;E=r-L*ja;ja=K-L*na;na=V*u+L*S;S=V*r+L*G;G=V*K+L*N;N=na*na+S*S+G*G;if(N>1.1920928955078125e-07){K=1.0/+P(+N);qa=na*K;ra=K*G;sa=K*S}else{qa=oa*D+y*I+J*la;ra=D*W+I*t+la*H;sa=D*p+I*ha+la*F}F=w*ra-ia*sa;la=ia*qa-ra*q;ha=sa*q-w*qa;ka=d+12|0;_=c[ka>>2]|0;g[_>>2]=A*ra-M*sa;g[_+4>>2]=M*qa-T*ra;g[_+8>>2]=T*sa-A*qa;_=d+20|0;h=c[_>>2]|0;g[h>>2]=-(E*ra-ja*sa);g[h+4>>2]=-(ja*qa-pa*ra);g[h+8>>2]=-(pa*sa-E*qa);I=A*ha-M*la;p=M*F-T*ha;D=T*la-A*F;H=E*ha-ja*la;t=ja*F-pa*ha;W=pa*la-E*F;if(i?(a[b+716>>0]|0)!=0:0){ta=L*H;ua=L*t;va=L*W;wa=V*I;xa=V*p;ya=V*D}else{ta=H;ua=t;va=W;wa=I;xa=p;ya=D}h=c[ka>>2]|0;g[h+(o<<2)>>2]=wa;g[h+(o+1<<2)>>2]=xa;g[h+(o+2<<2)>>2]=ya;h=c[_>>2]|0;g[h+(o<<2)>>2]=-ta;k=o+1|0;g[h+(k<<2)>>2]=-ua;Z=o+2|0;g[h+(Z<<2)>>2]=-va;va=A*ia-M*w;ua=M*q-T*ia;M=T*w-A*q;A=E*ia-ja*w;T=ja*q-pa*ia;ja=pa*w-E*q;if(i){za=L*A;Aa=L*T;Ba=L*ja;Ca=V*va;Da=V*ua;Ea=V*M}else{za=A;Aa=T;Ba=ja;Ca=va;Da=ua;Ea=M}i=c[ka>>2]|0;g[i+(e<<2)>>2]=Ca;g[i+((e|1)<<2)>>2]=Da;g[i+(e+2<<2)>>2]=Ea;i=c[_>>2]|0;g[i+(e<<2)>>2]=-za;h=e|1;g[i+(h<<2)>>2]=-Aa;fa=e+2|0;g[i+(fa<<2)>>2]=-Ba;da=b+748|0;Ba=+g[((c[da>>2]&8|0)==0?d+4|0:b+756|0)>>2];Aa=Ba*+g[d>>2];if(!(a[b+736>>0]|0)){ba=d+8|0;ea=c[ba>>2]|0;g[ea>>2]=qa;g[ea+4>>2]=sa;g[ea+8>>2]=ra;ea=c[ba>>2]|0;g[ea+(o<<2)>>2]=F;g[ea+(o+1<<2)>>2]=la;g[ea+(o+2<<2)>>2]=ha;ea=c[ba>>2]|0;g[ea+(e<<2)>>2]=q;g[ea+((e|1)<<2)>>2]=w;g[ea+(e+2<<2)>>2]=ia;ea=c[d+16>>2]|0;za=-qa;g[ea>>2]=za;g[ea+4>>2]=-sa;g[ea+8>>2]=-ra;Ea=-F;g[ea+(o<<2)>>2]=Ea;Da=-la;g[ea+(k<<2)>>2]=Da;Ca=-ha;g[ea+(Z<<2)>>2]=Ca;g[ea+(e<<2)>>2]=-q;g[ea+(h<<2)>>2]=-w;g[ea+(fa<<2)>>2]=-ia;fa=c[d+28>>2]|0;g[fa>>2]=Aa*(s*qa+C*sa+B*ra);g[fa+(o<<2)>>2]=Aa*(s*F+C*la+B*ha);g[fa+(e<<2)>>2]=Aa*(s*q+C*w+B*ia);Fa=za;Ga=Ea;Ha=Da;Ia=Ca;Ja=c[_>>2]|0;Ka=fa}else{Fa=-qa;Ga=-F;Ha=-la;Ia=-ha;Ja=i;Ka=c[d+28>>2]|0}i=o*3|0;fa=o<<2;o=c[ka>>2]|0;g[o+(i<<2)>>2]=qa;ka=i+1|0;g[o+(ka<<2)>>2]=sa;_=i+2|0;g[o+(_<<2)>>2]=ra;g[o+(fa<<2)>>2]=F;e=fa|1;g[o+(e<<2)>>2]=la;ea=fa|2;g[o+(ea<<2)>>2]=ha;g[Ja+(i<<2)>>2]=Fa;g[Ja+(ka<<2)>>2]=-sa;g[Ja+(_<<2)>>2]=-ra;g[Ja+(fa<<2)>>2]=Ga;g[Ja+(e<<2)>>2]=Ha;g[Ja+(ea<<2)>>2]=Ia;Ia=Ba*+g[d>>2];Ha=z*U-v*x;Ga=v*Y-ma*U;U=ma*x-z*Y;g[Ka+(i<<2)>>2]=Ia*(Ha*qa+Ga*sa+U*ra);g[Ka+(fa<<2)>>2]=Ia*(Ha*F+Ga*la+U*ha);if(!(a[b+716>>0]|0)){La=0;Ma=0.0}else{ha=+g[b+708>>2]*+g[b+732>>2];La=ha>0.0?1:2;Ma=ha}fa=a[b+737>>0]|0;i=(La|0)!=0;if(!(fa&255|La))return;ea=(c[n>>2]|0)*5|0;g[o+(ea<<2)>>2]=q;n=ea+1|0;g[o+(n<<2)>>2]=w;e=ea+2|0;g[o+(e<<2)>>2]=ia;g[Ja+(ea<<2)>>2]=-q;g[Ja+(n<<2)>>2]=-w;g[Ja+(e<<2)>>2]=-ia;ha=+g[b+688>>2];U=+g[b+692>>2];la=+vs(ha-U);if(!(la<-3.1415927410125732))if(la>3.1415927410125732)Na=la+-6.2831854820251465;else Na=la;else Na=la+6.2831854820251465;la=+vs(ha+U);if(!(la<-3.1415927410125732))if(la>3.1415927410125732)Oa=la+-6.2831854820251465;else Oa=la;else Oa=la+6.2831854820251465;e=Na==Oa;Ja=Ka+(ea<<2)|0;g[Ja>>2]=0.0;Ka=c[da>>2]|0;if(!(Ka&2))Pa=Ba;else Pa=+g[b+764>>2];if(!(fa<<24>>24==0|i&e)){if(Ka&4)c[(c[d+32>>2]|0)+(ea<<2)>>2]=c[b+752>>2];Ba=+g[b+728>>2];la=+g[b+680>>2];fa=Na>Oa;do if(!(fa|e)){U=la/(Pa*+g[d>>2]);if(U<0.0)if(Ba>=Na&Na-U>Ba){Qa=(Na-Ba)/U;break}else{Qa=Ba<Na?0.0:1.0;break}if(U>0.0)if(Ba<=Oa&Oa-U<Ba){Qa=(Oa-Ba)/U;break}else{Qa=Ba>Oa?0.0:1.0;break}else Qa=0.0}else Qa=fa?1.0:0.0;while(0);g[Ja>>2]=Qa*la*+g[b+732>>2]+ +g[Ja>>2];fa=b+684|0;g[(c[d+36>>2]|0)+(ea<<2)>>2]=-+g[fa>>2];c[(c[d+40>>2]|0)+(ea<<2)>>2]=c[fa>>2]}if(!i)return;g[Ja>>2]=+g[Ja>>2]+Ma*(Pa*+g[d>>2]);if(Ka&1)c[(c[d+32>>2]|0)+(ea<<2)>>2]=c[b+760>>2];do if(!e){Ka=(c[d+36>>2]|0)+(ea<<2)|0;i=c[d+40>>2]|0;if((La|0)==1){g[Ka>>2]=0.0;g[i+(ea<<2)>>2]=3402823466385288598117041.0e14;break}else{g[Ka>>2]=-3402823466385288598117041.0e14;g[i+(ea<<2)>>2]=0.0;break}}else{g[(c[d+36>>2]|0)+(ea<<2)>>2]=-3402823466385288598117041.0e14;g[(c[d+40>>2]|0)+(ea<<2)>>2]=3402823466385288598117041.0e14}while(0);Pa=+g[b+704>>2];do if(Pa>0.0){Ma=+g[l>>2]*q+ +g[f+356>>2]*w+ +g[f+360>>2]*ia-(q*+g[m>>2]+w*+g[j+356>>2]+ia*+g[j+360>>2]);if((La|0)==1){if(!(Ma<0.0))break;la=-(Pa*Ma);if(!(+g[Ja>>2]<la))break;g[Ja>>2]=la;break}else{if(!(Ma>0.0))break;la=-(Pa*Ma);if(!(+g[Ja>>2]>la))break;g[Ja>>2]=la;break}}while(0);g[Ja>>2]=+g[b+700>>2]*+g[Ja>>2];return}function sg(a,b,c){a=a|0;b=b|0;c=c|0;var d=0.0,e=0.0,f=0.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,q=0.0,r=0.0,s=0.0,t=0.0,u=0.0,v=0.0,w=0.0,x=0.0,y=0.0;d=+g[a+552>>2];e=+g[a+568>>2];f=+g[a+584>>2];h=+g[b>>2];i=+g[b+4>>2];j=+g[b+8>>2];k=+g[b+16>>2];l=+g[b+20>>2];m=+g[b+24>>2];n=+g[b+32>>2];o=+g[b+36>>2];p=+g[b+40>>2];q=+g[a+556>>2];r=+g[a+572>>2];s=+g[a+588>>2];t=+g[a+620>>2];u=+g[a+636>>2];v=+g[a+652>>2];w=t*+g[c>>2]+u*+g[c+4>>2]+v*+g[c+8>>2];x=t*+g[c+16>>2]+u*+g[c+20>>2]+v*+g[c+24>>2];y=t*+g[c+32>>2]+u*+g[c+36>>2]+v*+g[c+40>>2];v=+X(+((d*h+e*i+f*j)*w+(d*k+e*l+f*m)*x+(d*n+e*o+f*p)*y),+((h*q+i*r+j*s)*w+(k*q+l*r+m*s)*x+(n*q+o*r+p*s)*y));return +(v*+g[a+732>>2]);}function tg(a,b,d,e){a=a|0;b=b|0;d=+d;e=e|0;if(!((e|0)==5|(e|0)==-1))return;if((b|0)==1){g[a+756>>2]=d;e=a+748|0;c[e>>2]=c[e>>2]|8;return}else if((b|0)==4){g[a+760>>2]=d;e=a+748|0;c[e>>2]=c[e>>2]|1;return}else if((b|0)==3){g[a+752>>2]=d;e=a+748|0;c[e>>2]=c[e>>2]|4;return}else if((b|0)==2){g[a+764>>2]=d;b=a+748|0;c[b>>2]=c[b>>2]|2;return}else return}function ug(a,b,c){a=a|0;b=b|0;c=c|0;var d=0.0;do if((c|0)==5|(c|0)==-1)if((b|0)==1){d=+g[a+756>>2];break}else if((b|0)==4){d=+g[a+760>>2];break}else if((b|0)==3){d=+g[a+752>>2];break}else if((b|0)==2){d=+g[a+764>>2];break}else{d=0.0;break}else d=0.0;while(0);return +d}function vg(a){a=a|0;if(!a)return;c[3710]=(c[3710]|0)+1;xs(c[a+-4>>2]|0);return}function wg(a){a=a|0;return 220}function xg(a,b,e){a=a|0;b=b|0;e=e|0;var f=0.0,h=0.0,i=0.0,j=0.0,k=0.0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;ah(a,b,e)|0;c[b+52>>2]=c[a+552>>2];c[b+56>>2]=c[a+556>>2];c[b+60>>2]=c[a+560>>2];c[b+64>>2]=c[a+564>>2];c[b+68>>2]=c[a+568>>2];c[b+72>>2]=c[a+572>>2];c[b+76>>2]=c[a+576>>2];c[b+80>>2]=c[a+580>>2];c[b+84>>2]=c[a+584>>2];c[b+88>>2]=c[a+588>>2];c[b+92>>2]=c[a+592>>2];c[b+96>>2]=c[a+596>>2];c[b+100>>2]=c[a+600>>2];c[b+104>>2]=c[a+604>>2];c[b+108>>2]=c[a+608>>2];c[b+112>>2]=c[a+612>>2];c[b+116>>2]=c[a+616>>2];c[b+120>>2]=c[a+620>>2];c[b+124>>2]=c[a+624>>2];c[b+128>>2]=c[a+628>>2];c[b+132>>2]=c[a+632>>2];c[b+136>>2]=c[a+636>>2];c[b+140>>2]=c[a+640>>2];c[b+144>>2]=c[a+644>>2];c[b+148>>2]=c[a+648>>2];c[b+152>>2]=c[a+652>>2];c[b+156>>2]=c[a+656>>2];c[b+160>>2]=c[a+660>>2];c[b+164>>2]=c[a+664>>2];c[b+168>>2]=c[a+668>>2];c[b+172>>2]=c[a+672>>2];c[b+176>>2]=c[a+676>>2];c[b+184>>2]=d[a+736>>0];c[b+188>>2]=d[a+737>>0];c[b+196>>2]=c[a+684>>2];c[b+192>>2]=c[a+680>>2];c[b+180>>2]=d[a+740>>0];f=+g[a+688>>2];h=+g[a+692>>2];i=+vs(f-h);if(!(i<-3.1415927410125732))if(i>3.1415927410125732)j=i+-6.2831854820251465;else j=i;else j=i+6.2831854820251465;g[b+200>>2]=j;j=+vs(f+h);if(j<-3.1415927410125732){k=j+6.2831854820251465;l=b+204|0;g[l>>2]=k;m=a+696|0;n=c[m>>2]|0;o=b+208|0;c[o>>2]=n;p=a+700|0;q=c[p>>2]|0;r=b+212|0;c[r>>2]=q;s=a+704|0;t=c[s>>2]|0;u=b+216|0;c[u>>2]=t;return 1448}if(!(j>3.1415927410125732)){k=j;l=b+204|0;g[l>>2]=k;m=a+696|0;n=c[m>>2]|0;o=b+208|0;c[o>>2]=n;p=a+700|0;q=c[p>>2]|0;r=b+212|0;c[r>>2]=q;s=a+704|0;t=c[s>>2]|0;u=b+216|0;c[u>>2]=t;return 1448}k=j+-6.2831854820251465;l=b+204|0;g[l>>2]=k;m=a+696|0;n=c[m>>2]|0;o=b+208|0;c[o>>2]=n;p=a+700|0;q=c[p>>2]|0;r=b+212|0;c[r>>2]=q;s=a+704|0;t=c[s>>2]|0;u=b+216|0;c[u>>2]=t;return 1448}function yg(a){a=a|0;var b=0,d=0,e=0,f=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0.0,qa=0.0,ra=0.0,sa=0.0,ta=0.0,ua=0.0,va=0.0,wa=0.0;b=i;i=i+144|0;d=b+128|0;e=b+80|0;f=b+32|0;h=b+16|0;j=b;g[a+36>>2]=0.0;l=a+28|0;m=e+4|0;n=e+8|0;o=e+12|0;p=e+16|0;q=e+20|0;r=e+24|0;s=e+28|0;t=e+32|0;u=e+36|0;v=e+40|0;w=e+44|0;x=a+32|0;y=f+4|0;z=f+8|0;A=f+12|0;B=f+16|0;C=f+20|0;D=f+24|0;E=f+28|0;F=f+32|0;G=f+36|0;H=f+40|0;I=f+44|0;J=a+300|0;K=a+304|0;L=a+308|0;M=h+4|0;N=h+8|0;O=h+12|0;P=a+316|0;Q=a+320|0;R=a+324|0;S=j+4|0;T=j+8|0;U=j+12|0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;c[d+12>>2]=0;V=0;do{W=d+(V<<2)|0;g[W>>2]=1.0;X=c[l>>2]|0;Y=c[X+4>>2]|0;c[e>>2]=Y;Z=c[X+20>>2]|0;c[m>>2]=Z;_=c[X+36>>2]|0;c[n>>2]=_;g[o>>2]=0.0;$=c[X+8>>2]|0;c[p>>2]=$;aa=c[X+24>>2]|0;c[q>>2]=aa;ba=c[X+40>>2]|0;c[r>>2]=ba;g[s>>2]=0.0;ca=c[X+12>>2]|0;c[t>>2]=ca;da=c[X+28>>2]|0;c[u>>2]=da;ea=c[X+44>>2]|0;c[v>>2]=ea;g[w>>2]=0.0;fa=c[x>>2]|0;ga=c[fa+4>>2]|0;c[f>>2]=ga;ha=c[fa+20>>2]|0;c[y>>2]=ha;ia=c[fa+36>>2]|0;c[z>>2]=ia;g[A>>2]=0.0;ja=c[fa+8>>2]|0;c[B>>2]=ja;ka=c[fa+24>>2]|0;c[C>>2]=ka;la=c[fa+40>>2]|0;c[D>>2]=la;g[E>>2]=0.0;ma=c[fa+12>>2]|0;c[F>>2]=ma;na=c[fa+28>>2]|0;c[G>>2]=na;oa=c[fa+44>>2]|0;c[H>>2]=oa;g[I>>2]=0.0;pa=+g[J>>2];qa=pa*(c[k>>2]=Y,+g[k>>2]);ra=+g[K>>2];sa=qa+ra*(c[k>>2]=$,+g[k>>2]);qa=+g[L>>2];ta=sa+qa*(c[k>>2]=ca,+g[k>>2]);sa=pa*(c[k>>2]=Z,+g[k>>2]);ua=sa+ra*(c[k>>2]=aa,+g[k>>2]);sa=ua+qa*(c[k>>2]=da,+g[k>>2]);ua=pa*(c[k>>2]=_,+g[k>>2]);pa=ua+ra*(c[k>>2]=ba,+g[k>>2]);ra=+g[X+52>>2];ua=+g[X+56>>2];va=+g[X+60>>2];wa=pa+qa*(c[k>>2]=ea,+g[k>>2])+va-va;g[h>>2]=ta+ra-ra;g[M>>2]=sa+ua-ua;g[N>>2]=wa;g[O>>2]=0.0;wa=+g[P>>2];ua=wa*(c[k>>2]=ga,+g[k>>2]);sa=+g[Q>>2];ra=ua+sa*(c[k>>2]=ja,+g[k>>2]);ua=+g[R>>2];ta=ra+ua*(c[k>>2]=ma,+g[k>>2]);ra=wa*(c[k>>2]=ha,+g[k>>2]);va=ra+sa*(c[k>>2]=ka,+g[k>>2]);ra=va+ua*(c[k>>2]=na,+g[k>>2]);va=wa*(c[k>>2]=ia,+g[k>>2]);wa=va+sa*(c[k>>2]=la,+g[k>>2]);sa=+g[fa+52>>2];va=+g[fa+56>>2];qa=+g[fa+60>>2];pa=wa+ua*(c[k>>2]=oa,+g[k>>2])+qa-qa;g[j>>2]=ta+sa-sa;g[S>>2]=ra+va-va;g[T>>2]=pa;g[U>>2]=0.0;oa=c[l>>2]|0;fa=c[x>>2]|0;Of(a+48+(V*84|0)|0,e,f,h,j,d,oa+420|0,+g[oa+368>>2],fa+420|0,+g[fa+368>>2]);g[W>>2]=0.0;V=V+1|0}while((V|0)!=3);i=b;return}function zg(b,d){b=b|0;d=d|0;var e=0;e=(a[b+344>>0]|0)==0?3:0;c[d>>2]=e;c[d+4>>2]=e;return}function Ag(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0,i=0,j=0,k=0,l=0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0,r=0.0,s=0.0,t=0.0,u=0.0,v=0.0,w=0.0,x=0,y=0,z=0;d=c[a+28>>2]|0;e=c[a+32>>2]|0;f=c[b+8>>2]|0;g[f>>2]=1.0;h=b+24|0;i=c[h>>2]|0;j=i+1|0;g[f+(j<<2)>>2]=1.0;k=i<<1;l=k+2|0;g[f+(l<<2)>>2]=1.0;m=+g[a+300>>2];n=+g[a+304>>2];o=+g[a+308>>2];p=+g[d+4>>2]*m+ +g[d+8>>2]*n+ +g[d+12>>2]*o;q=m*+g[d+20>>2]+n*+g[d+24>>2]+o*+g[d+28>>2];r=m*+g[d+36>>2]+n*+g[d+40>>2]+o*+g[d+44>>2];f=c[b+12>>2]|0;c[f>>2]=0;g[f+4>>2]=r;g[f+8>>2]=-q;g[f+12>>2]=0.0;g[f+(i<<2)>>2]=-r;c[f+(j<<2)>>2]=0;g[f+(i+2<<2)>>2]=p;g[f+(i+3<<2)>>2]=0.0;g[f+(k<<2)>>2]=q;g[f+((k|1)<<2)>>2]=-p;c[f+(l<<2)>>2]=0;g[f+(k+3<<2)>>2]=0.0;k=c[b+16>>2]|0;g[k>>2]=-1.0;g[k+(j<<2)>>2]=-1.0;g[k+(l<<2)>>2]=-1.0;o=+g[a+316>>2];n=+g[a+320>>2];m=+g[a+324>>2];s=+g[e+4>>2]*o+ +g[e+8>>2]*n+ +g[e+12>>2]*m;t=o*+g[e+20>>2]+n*+g[e+24>>2]+m*+g[e+28>>2];u=o*+g[e+36>>2]+n*+g[e+40>>2]+m*+g[e+44>>2];l=c[b+20>>2]|0;k=c[h>>2]|0;h=k<<1;c[l>>2]=0;g[l+4>>2]=-u;g[l+8>>2]=t;g[l+12>>2]=0.0;g[l+(k<<2)>>2]=u;c[l+(k+1<<2)>>2]=0;g[l+(k+2<<2)>>2]=-s;g[l+(k+3<<2)>>2]=0.0;g[l+(h<<2)>>2]=-t;g[l+((h|1)<<2)>>2]=s;c[l+(h+2<<2)>>2]=0;g[l+(h+3<<2)>>2]=0.0;l=c[a+332>>2]|0;m=+g[((l&1|0)==0?b+4|0:a+336|0)>>2]*+g[b>>2];j=c[b+28>>2]|0;g[j>>2]=m*(s+ +g[e+52>>2]-p-+g[d+52>>2]);g[j+(k<<2)>>2]=m*(t+ +g[e+56>>2]-q-+g[d+56>>2]);g[j+(h<<2)>>2]=m*(u+ +g[e+60>>2]-r-+g[d+60>>2]);if(l&2){l=a+340|0;d=c[b+32>>2]|0;c[d>>2]=c[l>>2];c[d+(k<<2)>>2]=c[l>>2];c[d+(h<<2)>>2]=c[l>>2]}l=a+356|0;r=+g[l>>2];u=-r;d=b+36|0;e=b+40|0;if(r>0.0){g[c[d>>2]>>2]=u;g[c[e>>2]>>2]=r;v=+g[l>>2]}else v=r;if(v>0.0){g[(c[d>>2]|0)+(k<<2)>>2]=u;g[(c[e>>2]|0)+(k<<2)>>2]=r;w=+g[l>>2]}else w=v;if(!(w>0.0)){x=a+352|0;y=c[x>>2]|0;z=b+52|0;c[z>>2]=y;return}g[(c[d>>2]|0)+(h<<2)>>2]=u;g[(c[e>>2]|0)+(h<<2)>>2]=r;x=a+352|0;y=c[x>>2]|0;z=b+52|0;c[z>>2]=y;return}function Bg(a,b,d,e){a=a|0;b=b|0;d=+d;e=e|0;if((e|0)!=-1)return;if((b|0)==2|(b|0)==1){g[a+336>>2]=d;e=a+332|0;c[e>>2]=c[e>>2]|1;return}else if((b|0)==4|(b|0)==3){g[a+340>>2]=d;b=a+332|0;c[b>>2]=c[b>>2]|2;return}else return}function Cg(a,b,c){a=a|0;b=b|0;c=c|0;var d=0.0;do if((c|0)==-1)if((b|0)==2|(b|0)==1){d=+g[a+336>>2];break}else if((b|0)==4|(b|0)==3){d=+g[a+340>>2];break}else{d=3402823466385288598117041.0e14;break}else d=3402823466385288598117041.0e14;while(0);return +d}function Dg(a){a=a|0;if(!a)return;c[3710]=(c[3710]|0)+1;xs(c[a+-4>>2]|0);return}function Eg(a){a=a|0;return 84}function Fg(a,b,d){a=a|0;b=b|0;d=d|0;ah(a,b,d)|0;c[b+52>>2]=c[a+300>>2];c[b+56>>2]=c[a+304>>2];c[b+60>>2]=c[a+308>>2];c[b+64>>2]=c[a+312>>2];c[b+68>>2]=c[a+316>>2];c[b+72>>2]=c[a+320>>2];c[b+76>>2]=c[a+324>>2];c[b+80>>2]=c[a+328>>2];return 1584}function Gg(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,f=0,h=0.0,i=0.0,j=0,k=0.0,l=0,m=0.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.0,B=0.0,C=0,D=0.0;e=+g[d+128>>2];if(!(e!=0.0))return;c[406]=(c[406]|0)+1;f=d+96|0;h=+g[f>>2];i=+g[d+16>>2];j=a+144|0;k=+g[d+20>>2];l=a+148|0;m=+g[d+24>>2];n=a+152|0;o=a+160|0;p=a+164|0;q=a+168|0;r=d+48|0;s=b+144|0;t=d+52|0;u=b+148|0;v=d+56|0;w=b+152|0;x=b+160|0;y=b+164|0;z=b+168|0;A=+g[d+108>>2];B=e-h*+g[d+116>>2]-(i*+g[j>>2]+k*+g[l>>2]+m*+g[n>>2]+(+g[d>>2]*+g[o>>2]+ +g[d+4>>2]*+g[p>>2]+ +g[d+8>>2]*+g[q>>2]))*A-A*(+g[r>>2]*+g[s>>2]+ +g[t>>2]*+g[u>>2]+ +g[v>>2]*+g[w>>2]+(+g[d+32>>2]*+g[x>>2]+ +g[d+36>>2]*+g[y>>2]+ +g[d+40>>2]*+g[z>>2]));A=h+B;e=+g[d+120>>2];C=A<e;D=C?e-h:B;g[f>>2]=C?e:A;if(c[a+240>>2]|0){A=D*(k*+g[a+132>>2])*+g[a+116>>2];k=D*(m*+g[a+136>>2])*+g[a+120>>2];g[j>>2]=+g[a+112>>2]*(D*(i*+g[a+128>>2]))+ +g[j>>2];g[l>>2]=A+ +g[l>>2];g[n>>2]=k+ +g[n>>2];k=D*+g[a+100>>2]*+g[d+68>>2];A=D*+g[a+104>>2]*+g[d+72>>2];g[o>>2]=D*+g[a+96>>2]*+g[d+64>>2]+ +g[o>>2];g[p>>2]=k+ +g[p>>2];g[q>>2]=A+ +g[q>>2]}if(!(c[b+240>>2]|0))return;A=D*(+g[t>>2]*+g[b+132>>2])*+g[b+116>>2];k=D*(+g[v>>2]*+g[b+136>>2])*+g[b+120>>2];g[s>>2]=+g[b+112>>2]*(D*(+g[r>>2]*+g[b+128>>2]))+ +g[s>>2];g[u>>2]=A+ +g[u>>2];g[w>>2]=k+ +g[w>>2];k=D*+g[b+100>>2]*+g[d+84>>2];A=D*+g[b+104>>2]*+g[d+88>>2];g[x>>2]=D*+g[b+96>>2]*+g[d+80>>2]+ +g[x>>2];g[y>>2]=k+ +g[y>>2];g[z>>2]=A+ +g[z>>2];return}function Hg(b){b=b|0;var d=0,e=0,f=0,g=0,h=0;c[b>>2]=1640;d=b+168|0;e=b+176|0;f=c[e>>2]|0;g=b+180|0;if(f){if(a[g>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[f+-4>>2]|0);}c[e>>2]=0}a[g>>0]=1;c[e>>2]=0;c[d>>2]=0;c[b+172>>2]=0;d=b+148|0;e=b+156|0;g=c[e>>2]|0;f=b+160|0;if(g){if(a[f>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[g+-4>>2]|0);}c[e>>2]=0}a[f>>0]=1;c[e>>2]=0;c[d>>2]=0;c[b+152>>2]=0;d=b+128|0;e=b+136|0;f=c[e>>2]|0;g=b+140|0;if(f){if(a[g>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[f+-4>>2]|0);}c[e>>2]=0}a[g>>0]=1;c[e>>2]=0;c[d>>2]=0;c[b+132>>2]=0;d=b+108|0;e=b+116|0;g=c[e>>2]|0;f=b+120|0;if(g){if(a[f>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[g+-4>>2]|0);}c[e>>2]=0}a[f>>0]=1;c[e>>2]=0;c[d>>2]=0;c[b+112>>2]=0;d=b+88|0;e=b+96|0;f=c[e>>2]|0;g=b+100|0;if(f){if(a[g>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[f+-4>>2]|0);}c[e>>2]=0}a[g>>0]=1;c[e>>2]=0;c[d>>2]=0;c[b+92>>2]=0;d=b+68|0;e=b+76|0;g=c[e>>2]|0;f=b+80|0;if(g){if(a[f>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[g+-4>>2]|0);}c[e>>2]=0}a[f>>0]=1;c[e>>2]=0;c[d>>2]=0;c[b+72>>2]=0;d=b+48|0;e=b+56|0;f=c[e>>2]|0;g=b+60|0;if(f){if(a[g>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[f+-4>>2]|0);}c[e>>2]=0}a[g>>0]=1;c[e>>2]=0;c[d>>2]=0;c[b+52>>2]=0;d=b+28|0;e=b+36|0;g=c[e>>2]|0;f=b+40|0;if(g){if(a[f>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[g+-4>>2]|0);}c[e>>2]=0}a[f>>0]=1;c[e>>2]=0;c[d>>2]=0;c[b+32>>2]=0;d=b+8|0;e=b+16|0;f=c[e>>2]|0;g=b+20|0;if(!f){a[g>>0]=1;c[e>>2]=0;c[d>>2]=0;h=b+12|0;c[h>>2]=0;return}if(a[g>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[f+-4>>2]|0);}c[e>>2]=0;a[g>>0]=1;c[e>>2]=0;c[d>>2]=0;h=b+12|0;c[h>>2]=0;return}function Ig(a){a=a|0;Hg(a);if(!a)return;c[3710]=(c[3710]|0)+1;xs(c[a+-4>>2]|0);return}function Jg(a,b,d){a=a|0;b=b|0;d=+d;var e=0,f=0,h=0,i=0.0,j=0.0,k=0.0,l=0,m=0,n=0.0,o=0.0;if(!b)e=0;else e=(c[b+236>>2]&2|0)==0?0:b;b=a+64|0;f=a+144|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;c[b+16>>2]=0;c[b+20>>2]=0;c[b+24>>2]=0;c[b+28>>2]=0;c[f>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;c[f+12>>2]=0;c[f+16>>2]=0;c[f+20>>2]=0;c[f+24>>2]=0;c[f+28>>2]=0;if(!e){c[a>>2]=1065353216;f=a+4|0;c[f>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;c[f+12>>2]=0;c[a+20>>2]=1065353216;f=a+24|0;c[f>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;c[f+12>>2]=0;c[a+40>>2]=1065353216;f=a+44|0;c[f>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;c[f+12>>2]=0;c[f+16>>2]=0;f=a+128|0;c[a+240>>2]=0;c[f>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;c[f+12>>2]=0;c[a+96>>2]=1065353216;c[a+100>>2]=1065353216;c[a+104>>2]=1065353216;g[a+108>>2]=0.0;c[a+112>>2]=1065353216;c[a+116>>2]=1065353216;c[a+120>>2]=1065353216;g[a+124>>2]=0.0;f=a+176|0;b=f+60|0;do{c[f>>2]=0;f=f+4|0}while((f|0)<(b|0));h=a+236|0;g[h>>2]=0.0;return}else{f=e+4|0;c[a>>2]=c[f>>2];c[a+4>>2]=c[f+4>>2];c[a+8>>2]=c[f+8>>2];c[a+12>>2]=c[f+12>>2];f=a+16|0;b=e+20|0;c[f>>2]=c[b>>2];c[f+4>>2]=c[b+4>>2];c[f+8>>2]=c[b+8>>2];c[f+12>>2]=c[b+12>>2];b=a+32|0;f=e+36|0;c[b>>2]=c[f>>2];c[b+4>>2]=c[f+4>>2];c[b+8>>2]=c[f+8>>2];c[b+12>>2]=c[f+12>>2];f=a+48|0;b=e+52|0;c[f>>2]=c[b>>2];c[f+4>>2]=c[b+4>>2];c[f+8>>2]=c[b+8>>2];c[f+12>>2]=c[b+12>>2];b=e+368|0;i=+g[b>>2];f=e+372|0;j=i*+g[e+376>>2];k=i*+g[e+380>>2];g[a+128>>2]=i*+g[f>>2];g[a+132>>2]=j;g[a+136>>2]=k;g[a+140>>2]=0.0;c[a+240>>2]=e;l=a+96|0;m=e+568|0;c[l>>2]=c[m>>2];c[l+4>>2]=c[m+4>>2];c[l+8>>2]=c[m+8>>2];c[l+12>>2]=c[m+12>>2];m=a+112|0;c[m>>2]=c[f>>2];c[m+4>>2]=c[f+4>>2];c[m+8>>2]=c[f+8>>2];c[m+12>>2]=c[f+12>>2];f=a+176|0;m=e+336|0;c[f>>2]=c[m>>2];c[f+4>>2]=c[m+4>>2];c[f+8>>2]=c[m+8>>2];c[f+12>>2]=c[m+12>>2];m=a+192|0;f=e+352|0;c[m>>2]=c[f>>2];c[m+4>>2]=c[f+4>>2];c[m+8>>2]=c[f+8>>2];c[m+12>>2]=c[f+12>>2];k=+g[b>>2];j=k*+g[e+440>>2]*d;i=k*+g[e+444>>2]*d;g[a+208>>2]=k*+g[e+436>>2]*d;g[a+212>>2]=j;g[a+216>>2]=i;g[a+220>>2]=0.0;i=+g[e+452>>2];j=+g[e+456>>2];k=+g[e+460>>2];n=(i*+g[e+292>>2]+j*+g[e+308>>2]+k*+g[e+324>>2])*d;o=(i*+g[e+296>>2]+j*+g[e+312>>2]+k*+g[e+328>>2])*d;g[a+224>>2]=(+g[e+288>>2]*i+ +g[e+304>>2]*j+ +g[e+320>>2]*k)*d;g[a+228>>2]=n;g[a+232>>2]=o;h=a+236|0;g[h>>2]=0.0;return}}function Kg(a,b){a=a|0;b=b|0;var d=0.0,e=0.0,f=0.0,h=0,i=0.0,j=0.0,k=0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0,r=0.0,s=0.0,t=0.0,u=0.0;if(!a)return;if(!(c[a+180>>2]&1))return;d=+g[a+4>>2];e=+g[b>>2];f=+g[a+20>>2];h=b+4|0;i=+g[h>>2];j=+g[a+36>>2];k=b+8|0;l=+g[k>>2];m=+g[a+8>>2];n=+g[a+24>>2];o=+g[a+40>>2];p=+g[a+12>>2];q=+g[a+28>>2];r=+g[a+44>>2];s=(d*e+f*i+j*l)*+g[a+164>>2];t=(e*m+i*n+l*o)*+g[a+168>>2];u=(e*p+i*q+l*r)*+g[a+172>>2];g[b>>2]=d*s+m*t+p*u;g[h>>2]=f*s+n*t+q*u;g[k>>2]=j*s+o*t+r*u;g[b+12>>2]=0.0;return}function Lg(b,d,e,f,h,i,j,l,m,n,o){b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;i=i|0;j=j|0;l=l|0;m=+m;n=+n;o=+o;var p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0.0,A=0.0,B=0.0,C=0.0,D=0.0,E=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,O=0.0,P=0.0,Q=0.0,R=0.0,S=0.0,T=0.0,U=0.0,V=0.0,W=0.0,X=0.0,Y=0.0,Z=0.0,_=0.0,$=0.0,aa=0.0,ba=0.0,ca=0.0,da=0.0,ea=0.0,fa=0.0,ga=0.0,ha=0.0,ia=0.0,ja=0.0,ka=0.0,la=0.0,ma=0.0,na=0.0,oa=0.0,pa=0.0,qa=0.0,ra=0.0,sa=0,ta=0,ua=0,va=0.0,wa=0,xa=0;p=b+68|0;q=c[p>>2]|0;r=b+72|0;if((q|0)==(c[r>>2]|0)?(s=(q|0)!=0?q<<1:1,(q|0)<(s|0)):0){if(!s){t=0;u=q}else{c[3708]=(c[3708]|0)+1;v=ws((s*152|3)+16|0)|0;if(!v)w=0;else{x=v+4+15&-16;c[x+-4>>2]=v;w=x}t=w;u=c[p>>2]|0}w=b+76|0;if((u|0)>0){x=0;do{Gs(t+(x*152|0)|0,(c[w>>2]|0)+(x*152|0)|0,152)|0;x=x+1|0}while((x|0)!=(u|0));}u=c[w>>2]|0;x=b+80|0;if(u){if(a[x>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[u+-4>>2]|0);}c[w>>2]=0}a[x>>0]=1;c[w>>2]=t;c[r>>2]=s;y=c[p>>2]|0}else y=q;c[p>>2]=y+1;y=c[b+76>>2]|0;p=y+(q*152|0)|0;c[y+(q*152|0)+140>>2]=h;h=c[b+16>>2]|0;b=c[h+(e*244|0)+240>>2]|0;s=c[h+(f*244|0)+240>>2]|0;c[y+(q*152|0)+144>>2]=e;c[y+(q*152|0)+148>>2]=f;r=c[i+84>>2]|0;c[y+(q*152|0)+104>>2]=r;c[y+(q*152|0)+132>>2]=0;g[y+(q*152|0)+100>>2]=0.0;g[y+(q*152|0)+96>>2]=0.0;i=(b|0)!=0;t=y+(q*152|0)+16|0;z=(c[k>>2]=r,+g[k>>2]);if(i){c[t>>2]=c[d>>2];c[t+4>>2]=c[d+4>>2];c[t+8>>2]=c[d+8>>2];c[t+12>>2]=c[d+12>>2];A=+g[j+4>>2];B=+g[y+(q*152|0)+24>>2];C=+g[j+8>>2];D=+g[y+(q*152|0)+20>>2];E=A*B-C*D;F=+g[t>>2];G=+g[j>>2];H=C*F-B*G;C=D*G-A*F;g[p>>2]=E;g[y+(q*152|0)+4>>2]=H;g[y+(q*152|0)+8>>2]=C;g[y+(q*152|0)+12>>2]=0.0;A=(E*+g[b+288>>2]+ +g[b+292>>2]*H+C*+g[b+296>>2])*+g[b+568>>2];G=(E*+g[b+304>>2]+H*+g[b+308>>2]+C*+g[b+312>>2])*+g[b+572>>2];I=(E*+g[b+320>>2]+H*+g[b+324>>2]+C*+g[b+328>>2])*+g[b+576>>2];g[y+(q*152|0)+64>>2]=A;g[y+(q*152|0)+68>>2]=G;g[y+(q*152|0)+72>>2]=I;g[y+(q*152|0)+76>>2]=0.0;J=G;K=I;L=A;M=F;N=D;O=B;P=E;Q=H;R=C}else{t=y+(q*152|0)+64|0;c[t>>2]=0;c[t+4>>2]=0;c[t+8>>2]=0;c[t+12>>2]=0;c[p>>2]=0;c[p+4>>2]=0;c[p+8>>2]=0;c[p+12>>2]=0;c[p+16>>2]=0;c[p+20>>2]=0;c[p+24>>2]=0;c[p+28>>2]=0;J=0.0;K=0.0;L=0.0;M=0.0;N=0.0;O=0.0;P=0.0;Q=0.0;R=0.0}p=(s|0)!=0;if(p){C=-+g[d>>2];H=-+g[d+4>>2];E=-+g[d+8>>2];g[y+(q*152|0)+48>>2]=C;g[y+(q*152|0)+52>>2]=H;g[y+(q*152|0)+56>>2]=E;g[y+(q*152|0)+60>>2]=0.0;B=+g[l+4>>2];D=+g[l+8>>2];F=B*E-D*H;A=+g[l>>2];I=D*C-A*E;D=A*H-B*C;g[y+(q*152|0)+32>>2]=F;g[y+(q*152|0)+36>>2]=I;g[y+(q*152|0)+40>>2]=D;g[y+(q*152|0)+44>>2]=0.0;B=(F*+g[s+288>>2]+ +g[s+292>>2]*I+D*+g[s+296>>2])*+g[s+568>>2];A=(F*+g[s+304>>2]+I*+g[s+308>>2]+D*+g[s+312>>2])*+g[s+572>>2];G=(F*+g[s+320>>2]+I*+g[s+324>>2]+D*+g[s+328>>2])*+g[s+576>>2];g[y+(q*152|0)+80>>2]=B;g[y+(q*152|0)+84>>2]=A;g[y+(q*152|0)+88>>2]=G;g[y+(q*152|0)+92>>2]=0.0;S=B;T=A;U=G;V=C;W=H;X=E;Y=F;Z=I;_=D}else{t=y+(q*152|0)+32|0;w=y+(q*152|0)+80|0;c[w>>2]=0;c[w+4>>2]=0;c[w+8>>2]=0;c[w+12>>2]=0;c[t>>2]=0;c[t+4>>2]=0;c[t+8>>2]=0;c[t+12>>2]=0;c[t+16>>2]=0;c[t+20>>2]=0;c[t+24>>2]=0;c[t+28>>2]=0;S=0.0;T=0.0;U=0.0;V=0.0;W=0.0;X=0.0;Y=0.0;Z=0.0;_=0.0}if(i){D=+g[j+8>>2];I=+g[j+4>>2];F=+g[j>>2];$=+g[b+368>>2]+((J*D-K*I)*+g[d>>2]+(K*F-D*L)*+g[d+4>>2]+(I*L-J*F)*+g[d+8>>2]);}else $=0.0;if(p){F=-S;S=-T;T=-U;U=+g[l+8>>2];J=+g[l+4>>2];L=+g[l>>2];aa=+g[s+368>>2]+((U*S-J*T)*+g[d>>2]+(L*T-U*F)*+g[d+4>>2]+(J*F-L*S)*+g[d+8>>2]);}else aa=0.0;S=m/($+aa);g[y+(q*152|0)+108>>2]=S;if(i){ba=+g[h+(e*244|0)+192>>2];ca=+g[h+(e*244|0)+196>>2];da=+g[h+(e*244|0)+200>>2];ea=(+g[h+(e*244|0)+176>>2]+ +g[h+(e*244|0)+208>>2])*M+(+g[h+(e*244|0)+180>>2]+ +g[h+(e*244|0)+212>>2])*N+(+g[h+(e*244|0)+184>>2]+ +g[h+(e*244|0)+216>>2])*O}else{ba=0.0;ca=0.0;da=0.0;ea=M*0.0+N*0.0+O*0.0}O=ea+(ba*P+ca*Q+da*R);if(p){fa=+g[h+(f*244|0)+192>>2];ga=+g[h+(f*244|0)+196>>2];ha=+g[h+(f*244|0)+200>>2];ia=(+g[h+(f*244|0)+176>>2]+ +g[h+(f*244|0)+208>>2])*V+(+g[h+(f*244|0)+180>>2]+ +g[h+(f*244|0)+212>>2])*W+(+g[h+(f*244|0)+184>>2]+ +g[h+(f*244|0)+216>>2])*X;ja=fa*Y;ka=ga*Z;la=ja+ka;ma=ha*_;na=la+ma;oa=ia+na;pa=O+oa;qa=n-pa;ra=S*qa;sa=y+(q*152|0)+112|0;g[sa>>2]=ra;ta=y+(q*152|0)+128|0;g[ta>>2]=0.0;ua=y+(q*152|0)+116|0;g[ua>>2]=o;va=-z;wa=y+(q*152|0)+120|0;g[wa>>2]=va;xa=y+(q*152|0)+124|0;c[xa>>2]=r;return}else{fa=0.0;ga=0.0;ha=0.0;ia=V*0.0+W*0.0+X*0.0;ja=fa*Y;ka=ga*Z;la=ja+ka;ma=ha*_;na=la+ma;oa=ia+na;pa=O+oa;qa=n-pa;ra=S*qa;sa=y+(q*152|0)+112|0;g[sa>>2]=ra;ta=y+(q*152|0)+128|0;g[ta>>2]=0.0;ua=y+(q*152|0)+116|0;g[ua>>2]=o;va=-z;wa=y+(q*152|0)+120|0;g[wa>>2]=va;xa=y+(q*152|0)+124|0;c[xa>>2]=r;return}}function Mg(b,d,e,f,h,i){b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;i=i|0;var j=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0.0,v=0.0,w=0.0,x=0.0,y=0,z=0,A=0,B=0.0,C=0.0,D=0.0,E=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,Q=0.0,R=0.0,S=0.0,T=0.0,U=0.0,V=0.0,W=0.0,X=0.0,Y=0.0,Z=0.0,_=0.0,$=0.0,aa=0.0,ba=0.0,ca=0.0,da=0,ea=0,fa=0.0,ga=0,ha=0;j=b+88|0;l=c[j>>2]|0;m=b+92|0;if((l|0)==(c[m>>2]|0)?(n=(l|0)!=0?l<<1:1,(l|0)<(n|0)):0){if(!n){o=0;p=l}else{c[3708]=(c[3708]|0)+1;q=ws((n*152|3)+16|0)|0;if(!q)r=0;else{s=q+4+15&-16;c[s+-4>>2]=q;r=s}o=r;p=c[j>>2]|0}r=b+96|0;if((p|0)>0){s=0;do{Gs(o+(s*152|0)|0,(c[r>>2]|0)+(s*152|0)|0,152)|0;s=s+1|0}while((s|0)!=(p|0));}p=c[r>>2]|0;s=b+100|0;if(p){if(a[s>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[p+-4>>2]|0);}c[r>>2]=0}a[s>>0]=1;c[r>>2]=o;c[m>>2]=n;t=c[j>>2]|0}else t=l;c[j>>2]=t+1;t=c[b+96>>2]|0;c[t+(l*152|0)+140>>2]=h;h=t+(l*152|0)+16|0;c[h>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;c[h+12>>2]=0;g[t+(l*152|0)+48>>2]=-0.0;g[t+(l*152|0)+52>>2]=-0.0;g[t+(l*152|0)+56>>2]=-0.0;g[t+(l*152|0)+60>>2]=0.0;h=c[b+16>>2]|0;b=c[h+(e*244|0)+240>>2]|0;j=c[h+(f*244|0)+240>>2]|0;c[t+(l*152|0)+144>>2]=e;c[t+(l*152|0)+148>>2]=f;n=c[i+88>>2]|0;c[t+(l*152|0)+104>>2]=n;c[t+(l*152|0)+132>>2]=0;g[t+(l*152|0)+100>>2]=0.0;g[t+(l*152|0)+96>>2]=0.0;u=-+g[d>>2];i=d+4|0;v=-+g[i>>2];m=d+8|0;w=-+g[m>>2];g[t+(l*152|0)>>2]=u;g[t+(l*152|0)+4>>2]=v;g[t+(l*152|0)+8>>2]=w;g[t+(l*152|0)+12>>2]=0.0;o=(b|0)!=0;x=(c[k>>2]=n,+g[k>>2]);if(o){r=(g[k>>2]=(+g[b+288>>2]*u+ +g[b+292>>2]*v+ +g[b+296>>2]*w)*+g[b+568>>2],c[k>>2]|0);s=(g[k>>2]=(+g[b+304>>2]*u+ +g[b+308>>2]*v+ +g[b+312>>2]*w)*+g[b+572>>2],c[k>>2]|0);y=r;z=s;A=(g[k>>2]=(+g[b+320>>2]*u+ +g[b+324>>2]*v+ +g[b+328>>2]*w)*+g[b+576>>2],c[k>>2]|0);}else{y=0;z=0;A=0}c[t+(l*152|0)+64>>2]=y;c[t+(l*152|0)+68>>2]=z;c[t+(l*152|0)+72>>2]=A;g[t+(l*152|0)+76>>2]=0.0;B=+g[d>>2];C=+g[i>>2];D=+g[m>>2];m=c[d+12>>2]|0;g[t+(l*152|0)+32>>2]=B;g[t+(l*152|0)+36>>2]=C;g[t+(l*152|0)+40>>2]=D;c[t+(l*152|0)+44>>2]=m;m=(j|0)!=0;if(m){d=(g[k>>2]=(B*+g[j+288>>2]+C*+g[j+292>>2]+D*+g[j+296>>2])*+g[j+568>>2],c[k>>2]|0);i=(g[k>>2]=(B*+g[j+304>>2]+C*+g[j+308>>2]+D*+g[j+312>>2])*+g[j+572>>2],c[k>>2]|0);E=d;F=i;G=(g[k>>2]=(B*+g[j+320>>2]+C*+g[j+324>>2]+D*+g[j+328>>2])*+g[j+576>>2],c[k>>2]|0);}else{E=0;F=0;G=0}c[t+(l*152|0)+80>>2]=E;c[t+(l*152|0)+84>>2]=F;c[t+(l*152|0)+88>>2]=G;g[t+(l*152|0)+92>>2]=0.0;if(o){H=+g[b+288>>2]*u+ +g[b+292>>2]*v+ +g[b+296>>2]*w;I=+g[b+304>>2]*u+ +g[b+308>>2]*v+ +g[b+312>>2]*w;J=+g[b+320>>2]*u+ +g[b+324>>2]*v+ +g[b+328>>2]*w}else{H=0.0;I=0.0;J=0.0}if(m){K=+g[j+288>>2]*B+ +g[j+292>>2]*C+ +g[j+296>>2]*D;L=B*+g[j+304>>2]+C*+g[j+308>>2]+D*+g[j+312>>2];M=B*+g[j+320>>2]+C*+g[j+324>>2]+D*+g[j+328>>2]}else{K=0.0;L=0.0;M=0.0}N=1.0/(H*u+I*v+J*w+0.0+(K*B+L*C+M*D));g[t+(l*152|0)+108>>2]=N;if(o){O=+g[h+(e*244|0)+192>>2];P=+g[h+(e*244|0)+196>>2];Q=+g[h+(e*244|0)+200>>2];R=(+g[h+(e*244|0)+176>>2]+ +g[h+(e*244|0)+208>>2])*0.0+(+g[h+(e*244|0)+180>>2]+ +g[h+(e*244|0)+212>>2])*0.0+(+g[h+(e*244|0)+184>>2]+ +g[h+(e*244|0)+216>>2])*0.0}else{O=0.0;P=0.0;Q=0.0;R=0.0}M=R+(O*u+P*v+Q*w);if(!m){S=0.0;T=0.0;U=0.0;V=-0.0;W=S*B;X=T*C;Y=W+X;Z=U*D;_=Y+Z;$=V+_;aa=M+$;ba=0.0-aa;ca=N*ba;da=t+(l*152|0)+112|0;g[da>>2]=ca;ea=t+(l*152|0)+116|0;g[ea>>2]=0.0;fa=-x;ga=t+(l*152|0)+120|0;g[ga>>2]=fa;ha=t+(l*152|0)+124|0;c[ha>>2]=n;return}S=+g[h+(f*244|0)+192>>2];T=+g[h+(f*244|0)+196>>2];U=+g[h+(f*244|0)+200>>2];V=(+g[h+(f*244|0)+176>>2]+ +g[h+(f*244|0)+208>>2])*-0.0+(+g[h+(f*244|0)+180>>2]+ +g[h+(f*244|0)+212>>2])*-0.0+(+g[h+(f*244|0)+184>>2]+ +g[h+(f*244|0)+216>>2])*-0.0;W=S*B;X=T*C;Y=W+X;Z=U*D;_=Y+Z;$=V+_;aa=M+$;ba=0.0-aa;ca=N*ba;da=t+(l*152|0)+112|0;g[da>>2]=ca;ea=t+(l*152|0)+116|0;g[ea>>2]=0.0;fa=-x;ga=t+(l*152|0)+120|0;g[ga>>2]=fa;ha=t+(l*152|0)+124|0;c[ha>>2]=n;return}function Ng(a,b,d){a=a|0;b=b|0;d=+d;var e=0,f=0,h=0,j=0,k=0,l=0,m=0,n=0;e=i;i=i+496|0;f=e+244|0;h=e;j=b+212|0;k=c[j>>2]|0;if((k|0)>-1){l=k;i=e;return l|0}k=(c[b+236>>2]&2|0)==0;m=k?0:b;do if(!k){if(!(+g[m+368>>2]!=0.0)?(c[m+204>>2]&2|0)==0:0)break;n=c[a+8>>2]|0;Cs(f|0,0,244)|0;Jg(Yg(a+4|0,f)|0,b,d);c[j>>2]=n;l=n;i=e;return l|0}while(0);j=a+188|0;b=c[j>>2]|0;if((b|0)>=0){l=b;i=e;return l|0}c[j>>2]=c[a+8>>2];Cs(h|0,0,244)|0;Jg(Yg(a+4|0,h)|0,0,d);l=c[j>>2]|0;i=e;return l|0}
function $p(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,h=0.0,i=0.0,j=0.0,k=0,l=0.0,m=0,n=0,o=0,p=0,q=0,r=0.0,s=0.0,t=0.0,u=0.0,v=0;if(!(c[a>>2]|0)){c[a>>2]=d;c[d+32>>2]=0;return}e=c[b+40>>2]|0;if(!e)f=b;else{h=+g[d>>2]+ +g[d+16>>2];i=+g[d+4>>2]+ +g[d+20>>2];j=+g[d+8>>2]+ +g[d+24>>2];k=b;b=e;while(1){e=c[k+36>>2]|0;l=+O(+(h-(+g[e>>2]+ +g[e+16>>2])))+ +O(+(i-(+g[e+4>>2]+ +g[e+20>>2])))+ +O(+(j-(+g[e+8>>2]+ +g[e+24>>2])));e=c[k+36+((!(l<+O(+(h-(+g[b>>2]+ +g[b+16>>2])))+ +O(+(i-(+g[b+4>>2]+ +g[b+20>>2])))+ +O(+(j-(+g[b+8>>2]+ +g[b+24>>2]))))&1)<<2)>>2]|0;b=c[e+40>>2]|0;if(!b){f=e;break}else k=e}}k=f+32|0;b=c[k>>2]|0;e=a+4|0;m=c[e>>2]|0;if(!m){c[3708]=(c[3708]|0)+1;n=ws(63)|0;if(!n)o=0;else{p=n+4+15&-16;c[p+-4>>2]=n;o=p}p=o;n=p+44|0;do{c[p>>2]=0;p=p+4|0}while((p|0)<(n|0));q=o}else{c[e>>2]=0;q=m}c[q+32>>2]=b;c[q+36>>2]=0;m=q+40|0;c[m>>2]=0;j=+g[d>>2];i=+g[f>>2];h=j<i?j:i;g[q>>2]=h;i=+g[d+16>>2];j=+g[f+16>>2];l=i>j?i:j;g[q+16>>2]=l;j=+g[d+4>>2];i=+g[f+4>>2];r=j<i?j:i;g[q+4>>2]=r;i=+g[d+20>>2];j=+g[f+20>>2];s=i>j?i:j;g[q+20>>2]=s;j=+g[d+8>>2];i=+g[f+8>>2];t=j<i?j:i;g[q+8>>2]=t;i=+g[d+24>>2];j=+g[f+24>>2];u=i>j?i:j;g[q+24>>2]=u;if(!b){c[q+36>>2]=f;c[k>>2]=q;c[m>>2]=d;c[d+32>>2]=q;c[a>>2]=q;return}c[b+36+(((c[(c[k>>2]|0)+40>>2]|0)==(f|0)&1)<<2)>>2]=q;c[q+36>>2]=f;c[k>>2]=q;c[m>>2]=d;c[d+32>>2]=q;j=h;h=r;r=t;t=l;l=s;s=u;q=b;while(1){b=q+4|0;if(((((+g[q>>2]<=j?+g[b>>2]<=h:0)?+g[q+8>>2]<=r:0)?+g[q+16>>2]>=t:0)?+g[q+20>>2]>=l:0)?+g[q+24>>2]>=s:0){v=21;break}d=c[q+36>>2]|0;m=c[q+40>>2]|0;u=+g[d>>2];i=+g[m>>2];j=u<i?u:i;g[q>>2]=j;i=+g[d+16>>2];u=+g[m+16>>2];t=i>u?i:u;g[q+16>>2]=t;u=+g[d+4>>2];i=+g[m+4>>2];h=u<i?u:i;g[b>>2]=h;i=+g[d+20>>2];u=+g[m+20>>2];l=i>u?i:u;g[q+20>>2]=l;u=+g[d+8>>2];i=+g[m+8>>2];r=u<i?u:i;g[q+8>>2]=r;i=+g[d+24>>2];u=+g[m+24>>2];s=i>u?i:u;g[q+24>>2]=s;q=c[q+32>>2]|0;if(!q){v=21;break}}if((v|0)==21)return}function aq(d,f,h){d=d|0;f=f|0;h=h|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.0,F=0.0,G=0.0,H=0,I=0,J=0.0,K=0.0,L=0.0,M=0.0,N=0.0,O=0.0,P=0.0,Q=0.0,R=0.0,S=0.0,T=0.0,U=0.0,V=0.0,W=0.0,X=0.0,Y=0.0,Z=0.0,_=0.0,$=0,aa=0,ba=0,ca=0.0,da=0.0,ea=0.0,fa=0.0,ga=0.0,ha=0.0,ia=0,ja=0.0,ka=0.0,la=0.0,ma=0,na=0.0,oa=0.0,pa=0.0,qa=0.0,ra=0.0,sa=0.0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0,Fa=0,Ga=0;j=i;i=i+128|0;k=j+96|0;l=j+32|0;m=j+16|0;n=j;o=h-f|0;p=d+56|0;q=c[p>>2]|0;if((o|0)==1){if(!(a[d+60>>0]|0)){r=(c[d+96>>2]|0)+(q<<6)|0;s=(c[d+76>>2]|0)+(f<<6)|0;t=r+64|0;do{c[r>>2]=c[s>>2];r=r+4|0;s=s+4|0}while((r|0)<(t|0));}else{u=(c[d+136>>2]|0)+(q<<4)|0;v=(c[d+116>>2]|0)+(f<<4)|0;c[u>>2]=c[v>>2];c[u+4>>2]=c[v+4>>2];c[u+8>>2]=c[v+8>>2];c[u+12>>2]=c[v+12>>2]}c[p>>2]=(c[p>>2]|0)+1;i=j;return}v=(h|0)>(f|0);if(v){u=(a[d+60>>0]|0)==0;w=d+76|0;x=d+116|0;y=d+36|0;z=d+40|0;A=d+44|0;B=d+4|0;C=d+8|0;D=d+12|0;E=0.0;F=0.0;G=0.0;H=f;do{if(u){I=c[w>>2]|0;J=+g[I+(H<<6)>>2];K=+g[I+(H<<6)+16>>2];L=+g[I+(H<<6)+4>>2];M=+g[I+(H<<6)+20>>2];N=+g[I+(H<<6)+8>>2];O=+g[I+(H<<6)+24>>2]}else{I=c[x>>2]|0;P=+g[y>>2];Q=+g[z>>2];R=+g[A>>2];S=+g[B>>2];T=+g[C>>2];U=+g[D>>2];J=+(e[I+(H<<4)>>1]|0)/P+S;K=+(e[I+(H<<4)+6>>1]|0)/P+S;L=+(e[I+(H<<4)+2>>1]|0)/Q+T;M=+(e[I+(H<<4)+8>>1]|0)/Q+T;N=+(e[I+(H<<4)+4>>1]|0)/R+U;O=+(e[I+(H<<4)+10>>1]|0)/R+U}G=G+(K+J)*.5;E=E+(M+L)*.5;F=F+(O+N)*.5;H=H+1|0}while((H|0)!=(h|0));N=+(o|0);O=1.0/N;L=G*O;G=E*O;E=F*O;if(u){u=c[w>>2]|0;O=0.0;F=0.0;M=0.0;w=f;while(1){J=(+g[u+(w<<6)+16>>2]+ +g[u+(w<<6)>>2])*.5-L;K=(+g[u+(w<<6)+20>>2]+ +g[u+(w<<6)+4>>2])*.5-G;U=(+g[u+(w<<6)+24>>2]+ +g[u+(w<<6)+8>>2])*.5-E;R=O+J*J;J=F+K*K;K=M+U*U;w=w+1|0;if((w|0)==(h|0)){V=K;W=J;X=R;Y=N;break}else{O=R;F=J;M=K}}}else{w=c[x>>2]|0;M=+g[y>>2];F=+g[z>>2];O=+g[A>>2];K=+g[B>>2];J=+g[C>>2];R=+g[D>>2];U=0.0;T=0.0;Q=0.0;D=f;while(1){S=(+(e[w+(D<<4)+6>>1]|0)/M+K+(+(e[w+(D<<4)>>1]|0)/M+K))*.5-L;P=(+(e[w+(D<<4)+8>>1]|0)/F+J+(+(e[w+(D<<4)+2>>1]|0)/F+J))*.5-G;Z=(+(e[w+(D<<4)+10>>1]|0)/O+R+(+(e[w+(D<<4)+4>>1]|0)/O+R))*.5-E;_=U+S*S;S=T+P*P;P=Q+Z*Z;D=D+1|0;if((D|0)==(h|0)){V=P;W=S;X=_;Y=N;break}else{U=_;T=S;Q=P}}}}else{V=0.0;W=0.0;X=0.0;Y=+(o|0);}Q=1.0/(Y+-1.0);Y=X*Q;X=W*Q;W=V*Q;D=Y<X?(X<W?2:1):Y<W?2:0;w=m+4|0;C=m+8|0;c[m>>2]=0;c[m+4>>2]=0;c[m+8>>2]=0;c[m+12>>2]=0;if(v){B=(a[d+60>>0]|0)==0;A=d+76|0;z=d+116|0;y=d+36|0;x=d+40|0;u=d+44|0;H=d+4|0;I=d+8|0;$=d+12|0;W=0.0;Y=0.0;X=0.0;aa=f;do{if(B){ba=c[A>>2]|0;ca=+g[ba+(aa<<6)>>2];da=+g[ba+(aa<<6)+16>>2];ea=+g[ba+(aa<<6)+4>>2];fa=+g[ba+(aa<<6)+20>>2];ga=+g[ba+(aa<<6)+8>>2];ha=+g[ba+(aa<<6)+24>>2]}else{ba=c[z>>2]|0;Q=+g[y>>2];V=+g[x>>2];T=+g[u>>2];U=+g[H>>2];N=+g[I>>2];E=+g[$>>2];ca=+(e[ba+(aa<<4)>>1]|0)/Q+U;da=+(e[ba+(aa<<4)+6>>1]|0)/Q+U;ea=+(e[ba+(aa<<4)+2>>1]|0)/V+N;fa=+(e[ba+(aa<<4)+8>>1]|0)/V+N;ga=+(e[ba+(aa<<4)+4>>1]|0)/T+E;ha=+(e[ba+(aa<<4)+10>>1]|0)/T+E}W=W+(da+ca)*.5;Y=(fa+ea)*.5+Y;X=(ha+ga)*.5+X;aa=aa+1|0}while((aa|0)!=(h|0));g[m>>2]=W;g[w>>2]=Y;g[C>>2]=X;ia=m;ja=W;ka=Y;la=X}else{ia=m;ja=0.0;ka=0.0;la=0.0}X=1.0/+(o|0);g[ia>>2]=X*ja;g[w>>2]=X*ka;g[C>>2]=X*la;la=+g[m+(D<<2)>>2];if(v){m=d+60|0;C=d+76|0;w=n+4|0;ia=n+8|0;aa=n+12|0;$=n+(D<<2)|0;D=d+116|0;I=d+36|0;H=d+40|0;u=d+44|0;x=d+4|0;y=d+8|0;z=d+12|0;A=f;B=f;while(1){ba=(a[m>>0]|0)==0;if(ba){ma=c[C>>2]|0;na=+g[ma+(A<<6)>>2];oa=+g[ma+(A<<6)+16>>2];pa=+g[ma+(A<<6)+4>>2];qa=+g[ma+(A<<6)+20>>2];ra=+g[ma+(A<<6)+8>>2];sa=+g[ma+(A<<6)+24>>2]}else{ma=c[D>>2]|0;X=+g[I>>2];ka=+g[H>>2];ja=+g[u>>2];Y=+g[x>>2];W=+g[y>>2];ga=+g[z>>2];na=+(e[ma+(A<<4)>>1]|0)/X+Y;oa=+(e[ma+(A<<4)+6>>1]|0)/X+Y;pa=+(e[ma+(A<<4)+2>>1]|0)/ka+W;qa=+(e[ma+(A<<4)+8>>1]|0)/ka+W;ra=+(e[ma+(A<<4)+4>>1]|0)/ja+ga;sa=+(e[ma+(A<<4)+10>>1]|0)/ja+ga}g[n>>2]=(oa+na)*.5;g[w>>2]=(qa+pa)*.5;g[ia>>2]=(sa+ra)*.5;g[aa>>2]=0.0;if(+g[$>>2]>la){if(ba){ba=c[C>>2]|0;ma=ba+(A<<6)|0;r=l;s=ma;t=r+64|0;do{c[r>>2]=c[s>>2];r=r+4|0;s=s+4|0}while((r|0)<(t|0));r=ma;s=ba+(B<<6)|0;t=r+64|0;do{c[r>>2]=c[s>>2];r=r+4|0;s=s+4|0}while((r|0)<(t|0));r=(c[C>>2]|0)+(B<<6)|0;s=l;t=r+64|0;do{c[r>>2]=c[s>>2];r=r+4|0;s=s+4|0}while((r|0)<(t|0));}else{ba=c[D>>2]|0;ma=ba+(A<<4)|0;c[k>>2]=c[ma>>2];c[k+4>>2]=c[ma+4>>2];c[k+8>>2]=c[ma+8>>2];c[k+12>>2]=c[ma+12>>2];ta=ba+(B<<4)|0;c[ma>>2]=c[ta>>2];c[ma+4>>2]=c[ta+4>>2];c[ma+8>>2]=c[ta+8>>2];c[ma+12>>2]=c[ta+12>>2];ta=(c[D>>2]|0)+(B<<4)|0;c[ta>>2]=c[k>>2];c[ta+4>>2]=c[k+4>>2];c[ta+8>>2]=c[k+8>>2];c[ta+12>>2]=c[k+12>>2]}ua=B+1|0}else ua=B;A=A+1|0;if((A|0)==(h|0)){va=ua;break}else B=ua}}else va=f;ua=(o|0)/3|0;if((va|0)>(ua+f|0)?(va|0)<(h+-1-ua|0):0)wa=va;else wa=(o>>1)+f|0;o=c[p>>2]|0;va=d+20|0;ua=d+60|0;if(!(a[ua>>0]|0)){B=(c[d+96>>2]|0)+(o<<6)|0;c[B>>2]=c[va>>2];c[B+4>>2]=c[va+4>>2];c[B+8>>2]=c[va+8>>2];c[B+12>>2]=c[va+12>>2]}else{B=c[d+136>>2]|0;la=(+g[d+24>>2]-+g[d+8>>2])*+g[d+40>>2];ra=(+g[d+28>>2]-+g[d+12>>2])*+g[d+44>>2];b[B+(o<<4)>>1]=~~((+g[va>>2]-+g[d+4>>2])*+g[d+36>>2])&65534;b[B+(o<<4)+2>>1]=~~la&65534;b[B+(o<<4)+4>>1]=~~ra&65534}B=c[p>>2]|0;va=d+4|0;if(!(a[ua>>0]|0)){A=(c[d+96>>2]|0)+(B<<6)+16|0;c[A>>2]=c[va>>2];c[A+4>>2]=c[va+4>>2];c[A+8>>2]=c[va+8>>2];c[A+12>>2]=c[va+12>>2]}else{A=c[d+136>>2]|0;ra=+g[va>>2];la=+g[d+8>>2];sa=+g[d+12>>2];pa=(la-la)*+g[d+40>>2];la=(sa-sa)*+g[d+44>>2];b[A+(B<<4)+6>>1]=~~((ra-ra)*+g[d+36>>2]+1.0)&65535|1;b[A+(B<<4)+8>>1]=~~(pa+1.0)&65535|1;b[A+(B<<4)+10>>1]=~~(la+1.0)&65535|1}B=c[p>>2]|0;if(v){v=d+76|0;A=d+116|0;va=d+36|0;D=d+40|0;s=d+44|0;r=d+4|0;t=d+8|0;C=d+12|0;$=d+96|0;aa=d+136|0;ia=a[ua>>0]|0;w=f;do{if(!(ia<<24>>24)){n=c[v>>2]|0;la=+g[n+(w<<6)>>2];pa=+g[n+(w<<6)+4>>2];ra=+g[n+(w<<6)+8>>2];sa=+g[n+(w<<6)+12>>2];qa=+g[n+(w<<6)+16>>2];na=+g[n+(w<<6)+20>>2];oa=+g[n+(w<<6)+24>>2];ga=+g[n+(w<<6)+28>>2];n=c[$>>2]|0;z=n+(B<<6)|0;if(la<+g[z>>2])g[z>>2]=la;z=n+(B<<6)+4|0;if(pa<+g[z>>2])g[z>>2]=pa;z=n+(B<<6)+8|0;if(ra<+g[z>>2])g[z>>2]=ra;z=n+(B<<6)+12|0;if(sa<+g[z>>2])g[z>>2]=sa;z=n+(B<<6)+16|0;if(+g[z>>2]<qa)g[z>>2]=qa;z=n+(B<<6)+20|0;if(+g[z>>2]<na)g[z>>2]=na;z=n+(B<<6)+24|0;if(+g[z>>2]<oa)g[z>>2]=oa;z=n+(B<<6)+28|0;if(+g[z>>2]<ga)g[z>>2]=ga}else{z=c[A>>2]|0;ga=+g[va>>2];oa=+g[D>>2];na=+g[s>>2];qa=+g[r>>2];sa=+g[t>>2];ra=+g[C>>2];pa=+g[r>>2];la=+g[t>>2];ja=+g[C>>2];W=+g[va>>2];ka=+g[D>>2];Y=+g[s>>2];n=~~((+(e[z+(w<<4)>>1]|0)/ga+qa-pa)*W)&65534;y=~~((+(e[z+(w<<4)+4>>1]|0)/na+ra-ja)*Y)&65534;x=~~((+(e[z+(w<<4)+2>>1]|0)/oa+sa-la)*ka)&65534;u=(~~((+(e[z+(w<<4)+6>>1]|0)/ga+qa-pa)*W+1.0)&65535|1)&65535;H=(~~((+(e[z+(w<<4)+10>>1]|0)/na+ra-ja)*Y+1.0)&65535|1)&65535;I=(~~((+(e[z+(w<<4)+8>>1]|0)/oa+sa-la)*ka+1.0)&65535|1)&65535;z=c[aa>>2]|0;m=z+(B<<4)|0;if((e[m>>1]|0)>(n&65535))b[m>>1]=n;n=z+(B<<4)+6|0;if((e[n>>1]|0)<(u&65535))b[n>>1]=u;u=z+(B<<4)+2|0;if((e[u>>1]|0)>(x&65535))b[u>>1]=x;x=z+(B<<4)+8|0;if((e[x>>1]|0)<(I&65535))b[x>>1]=I;I=z+(B<<4)+4|0;if((e[I>>1]|0)>(y&65535))b[I>>1]=y;y=z+(B<<4)+10|0;if((e[y>>1]|0)<(H&65535))b[y>>1]=H}w=w+1|0}while((w|0)!=(h|0));}w=B+1|0;c[p>>2]=w;aq(d,f,wa);f=c[p>>2]|0;aq(d,wa,h);h=(c[p>>2]|0)-q|0;q=a[ua>>0]|0;if(q<<24>>24!=0&(h<<4|0)>2048){p=c[d+136>>2]|0;wa=c[p+(w<<4)+12>>2]|0;B=(wa|0)>-1?1:0-wa|0;wa=c[p+(f<<4)+12>>2]|0;aa=(wa|0)>-1?1:0-wa|0;wa=aa<<4;s=d+152|0;if((B<<4|0)<2049){D=c[s>>2]|0;va=d+156|0;if((D|0)==(c[va>>2]|0)?(C=(D|0)!=0?D<<1:1,(D|0)<(C|0)):0){if(!C){xa=0;ya=D}else{c[3708]=(c[3708]|0)+1;t=ws(C<<5|19)|0;if(!t)za=0;else{r=t+4+15&-16;c[r+-4>>2]=t;za=r}xa=za;ya=c[s>>2]|0}za=d+160|0;if((ya|0)>0){r=0;do{t=xa+(r<<5)|0;A=(c[za>>2]|0)+(r<<5)|0;c[t>>2]=c[A>>2];c[t+4>>2]=c[A+4>>2];c[t+8>>2]=c[A+8>>2];c[t+12>>2]=c[A+12>>2];c[t+16>>2]=c[A+16>>2];c[t+20>>2]=c[A+20>>2];c[t+24>>2]=c[A+24>>2];c[t+28>>2]=c[A+28>>2];r=r+1|0}while((r|0)!=(ya|0));}ya=c[za>>2]|0;r=d+164|0;if(ya){if(a[r>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[ya+-4>>2]|0);}c[za>>2]=0}a[r>>0]=1;c[za>>2]=xa;c[va>>2]=C;Aa=c[s>>2]|0}else Aa=D;c[s>>2]=Aa+1;Aa=d+160|0;C=(c[Aa>>2]|0)+(D<<5)|0;c[C>>2]=c[k>>2];c[C+4>>2]=c[k+4>>2];c[C+8>>2]=c[k+8>>2];c[C+12>>2]=c[k+12>>2];c[C+16>>2]=c[k+16>>2];c[C+20>>2]=c[k+20>>2];c[C+24>>2]=c[k+24>>2];c[C+28>>2]=c[k+28>>2];k=c[Aa>>2]|0;b[k+(D<<5)>>1]=b[p+(w<<4)>>1]|0;b[k+(D<<5)+2>>1]=b[p+(w<<4)+2>>1]|0;b[k+(D<<5)+4>>1]=b[p+(w<<4)+4>>1]|0;b[k+(D<<5)+6>>1]=b[p+(w<<4)+6>>1]|0;b[k+(D<<5)+8>>1]=b[p+(w<<4)+8>>1]|0;b[k+(D<<5)+10>>1]=b[p+(w<<4)+10>>1]|0;c[k+(D<<5)+12>>2]=w;c[k+(D<<5)+16>>2]=B;Ba=s}else Ba=s;if((wa|0)<2049){wa=c[Ba>>2]|0;s=d+156|0;if((wa|0)==(c[s>>2]|0)?(B=(wa|0)!=0?wa<<1:1,(wa|0)<(B|0)):0){if(!B){Ca=0;Da=wa}else{c[3708]=(c[3708]|0)+1;D=ws(B<<5|19)|0;if(!D)Ea=0;else{k=D+4+15&-16;c[k+-4>>2]=D;Ea=k}Ca=Ea;Da=c[Ba>>2]|0}Ea=d+160|0;if((Da|0)>0){k=0;do{D=Ca+(k<<5)|0;w=(c[Ea>>2]|0)+(k<<5)|0;c[D>>2]=c[w>>2];c[D+4>>2]=c[w+4>>2];c[D+8>>2]=c[w+8>>2];c[D+12>>2]=c[w+12>>2];c[D+16>>2]=c[w+16>>2];c[D+20>>2]=c[w+20>>2];c[D+24>>2]=c[w+24>>2];c[D+28>>2]=c[w+28>>2];k=k+1|0}while((k|0)!=(Da|0));}Da=c[Ea>>2]|0;k=d+164|0;if(Da){if(a[k>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[Da+-4>>2]|0);}c[Ea>>2]=0}a[k>>0]=1;c[Ea>>2]=Ca;c[s>>2]=B;Fa=c[Ba>>2]|0}else Fa=wa;c[Ba>>2]=Fa+1;Fa=d+160|0;B=(c[Fa>>2]|0)+(wa<<5)|0;c[B>>2]=c[l>>2];c[B+4>>2]=c[l+4>>2];c[B+8>>2]=c[l+8>>2];c[B+12>>2]=c[l+12>>2];c[B+16>>2]=c[l+16>>2];c[B+20>>2]=c[l+20>>2];c[B+24>>2]=c[l+24>>2];c[B+28>>2]=c[l+28>>2];l=c[Fa>>2]|0;b[l+(wa<<5)>>1]=b[p+(f<<4)>>1]|0;b[l+(wa<<5)+2>>1]=b[p+(f<<4)+2>>1]|0;b[l+(wa<<5)+4>>1]=b[p+(f<<4)+4>>1]|0;b[l+(wa<<5)+6>>1]=b[p+(f<<4)+6>>1]|0;b[l+(wa<<5)+8>>1]=b[p+(f<<4)+8>>1]|0;b[l+(wa<<5)+10>>1]=b[p+(f<<4)+10>>1]|0;c[l+(wa<<5)+12>>2]=f;c[l+(wa<<5)+16>>2]=aa}c[d+168>>2]=c[Ba>>2];Ga=a[ua>>0]|0}else Ga=q;if(!(Ga<<24>>24)){c[(c[d+96>>2]|0)+(o<<6)+32>>2]=h;i=j;return}else{c[(c[d+136>>2]|0)+(o<<4)+12>>2]=0-h;i=j;return}}function bq(b){b=b|0;var d=0,e=0,f=0,g=0,h=0;c[b>>2]=12600;d=b+152|0;e=b+160|0;f=c[e>>2]|0;g=b+164|0;if(f){if(a[g>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[f+-4>>2]|0);}c[e>>2]=0}a[g>>0]=1;c[e>>2]=0;c[d>>2]=0;c[b+156>>2]=0;d=b+128|0;e=b+136|0;g=c[e>>2]|0;f=b+140|0;if(g){if(a[f>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[g+-4>>2]|0);}c[e>>2]=0}a[f>>0]=1;c[e>>2]=0;c[d>>2]=0;c[b+132>>2]=0;d=b+108|0;e=b+116|0;f=c[e>>2]|0;g=b+120|0;if(f){if(a[g>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[f+-4>>2]|0);}c[e>>2]=0}a[g>>0]=1;c[e>>2]=0;c[d>>2]=0;c[b+112>>2]=0;d=b+88|0;e=b+96|0;g=c[e>>2]|0;f=b+100|0;if(g){if(a[f>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[g+-4>>2]|0);}c[e>>2]=0}a[f>>0]=1;c[e>>2]=0;c[d>>2]=0;c[b+92>>2]=0;d=b+68|0;e=b+76|0;f=c[e>>2]|0;g=b+80|0;if(!f){a[g>>0]=1;c[e>>2]=0;c[d>>2]=0;h=b+72|0;c[h>>2]=0;return}if(a[g>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[f+-4>>2]|0);}c[e>>2]=0;a[g>>0]=1;c[e>>2]=0;c[d>>2]=0;h=b+72|0;c[h>>2]=0;return}function cq(a){a=a|0;bq(a);if(!a)return;c[3710]=(c[3710]|0)+1;xs(c[a+-4>>2]|0);return}function dq(a,b,d,f){a=a|0;b=b|0;d=d|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0;g=d+4|0;h=f+4|0;i=d+2|0;j=f+2|0;k=a;while(1){l=c[k+12>>2]|0;if(!(((e[f>>1]|0)>=(e[k>>1]|0)?(e[d>>1]|0)<=(e[k+6>>1]|0):0)&(e[g>>1]|0)<=(e[k+10>>1]|0)&(e[h>>1]|0)>=(e[k+4>>1]|0)&(e[i>>1]|0)<=(e[k+8>>1]|0)&(e[j>>1]|0)>=(e[k+2>>1]|0))){m=6;break}if((l|0)>-1)break;dq(k+16|0,b,d,f);a=c[k+28>>2]|0;k=(a|0)>-1?k+32|0:k+(1-a<<4)|0}if((m|0)==6)return;pc[c[(c[b>>2]|0)+8>>2]&63](b,l>>21,l&2097151);return}function eq(a,b,d,e,f,h,j,k){a=a|0;b=b|0;d=d|0;e=+e;f=+f;h=+h;j=j|0;k=k|0;var l=0,m=0,n=0.0,o=0,p=0.0,q=0,r=0.0,s=0.0,t=0,u=0.0,v=0,w=0.0,x=0.0,y=0,z=0.0,A=0,B=0.0,C=0.0,D=0.0,E=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,O=0.0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0.0,na=0.0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0;l=i;i=i+32|0;m=l;n=+g[d>>2];o=d+4|0;p=+g[o>>2];q=d+8|0;r=+g[q>>2];s=+g[j>>2];t=j+4|0;u=+g[t>>2];v=j+8|0;w=+g[v>>2];x=+g[k>>2];y=k+4|0;z=+g[y>>2];A=k+8|0;B=+g[A>>2];C=e-n;D=f-p;E=h-r;F=1.0/+P(+(C*C+D*D+E*E));G=C*F;H=D*F;I=E*F;F=G==0.0?999999984306749440.0:1.0/G;J=H==0.0?999999984306749440.0:1.0/H;K=I==0.0?999999984306749440.0:1.0/I;L=(n>e?e:n)+s;M=(p>f?f:p)+u;N=(r>h?h:r)+w;O=(n<e?e:n)+x;n=(p<f?f:p)+z;p=(r<h?h:r)+B;r=E*I+(C*G+D*H);Q=F<0.0&1;R=J<0.0&1;S=K<0.0&1;T=a+56|0;U=c[T>>2]|0;a:do if((U|0)>0){V=m+16|0;W=m+4|0;X=m+8|0;Y=m+20|0;Z=m+24|0;_=m+(Q<<4)|0;$=m+((Q^1)<<4)|0;aa=m+(R<<4)+4|0;ba=m+((R^1)<<4)+4|0;ca=m+(S<<4)+8|0;da=m+((S^1)<<4)+8|0;H=u;D=w;ea=U;G=x;C=z;I=B;E=s;fa=0;ga=c[a+96>>2]|0;ha=0;while(1){ia=ha+1|0;c[m>>2]=c[ga>>2];c[m+4>>2]=c[ga+4>>2];c[m+8>>2]=c[ga+8>>2];c[m+12>>2]=c[ga+12>>2];ja=ga+16|0;c[V>>2]=c[ja>>2];c[V+4>>2]=c[ja+4>>2];c[V+8>>2]=c[ja+8>>2];c[V+12>>2]=c[ja+12>>2];g[m>>2]=+g[m>>2]-G;g[W>>2]=+g[W>>2]-C;g[X>>2]=+g[X>>2]-I;g[V>>2]=+g[V>>2]-E;g[Y>>2]=+g[Y>>2]-H;g[Z>>2]=+g[Z>>2]-D;if(!(L>+g[ja>>2])?!(O<+g[ga>>2]):0)ka=1;else ka=0;if(!(N>+g[ga+24>>2])?!(p<+g[ga+8>>2]):0)la=ka;else la=0;if(((!(M>+g[ga+20>>2])?!(n<+g[ga+4>>2]|la^1):0)?(h=+g[d>>2],f=F*(+g[_>>2]-h),e=F*(+g[$>>2]-h),h=+g[o>>2],ma=J*(+g[aa>>2]-h),na=J*(+g[ba>>2]-h),!(ma>e|f>na)):0)?(h=ma>f?ma:f,f=na<e?na:e,e=+g[q>>2],na=K*(+g[ca>>2]-e),ma=K*(+g[da>>2]-e),!(na>f|h>ma)):0){ja=(ma<f?ma:f)>0.0?(na>h?na:h)<r:0;oa=c[ga+32>>2]|0;pa=(oa|0)==-1;if(ja&pa){pc[c[(c[b>>2]|0)+8>>2]&63](b,c[ga+36>>2]|0,c[ga+40>>2]|0);qa=c[T>>2]|0;ra=17}else{sa=ja;ta=pa;ua=oa;ra=16}}else{oa=c[ga+32>>2]|0;sa=0;ta=(oa|0)==-1;ua=oa;ra=16}if((ra|0)==16){ra=0;if(ta|sa){qa=ea;ra=17}else{va=ea;wa=ua+fa|0;xa=ga+(ua<<6)|0}}if((ra|0)==17){ra=0;va=qa;wa=fa+1|0;xa=ga+64|0}if((wa|0)>=(va|0)){ya=ia;break a}H=+g[t>>2];D=+g[v>>2];ea=va;G=+g[k>>2];C=+g[y>>2];I=+g[A>>2];E=+g[j>>2];fa=wa;ga=xa;ha=ia}}else ya=0;while(0);if((c[3158]|0)>=(ya|0)){i=l;return}c[3158]=ya;i=l;return}function fq(a,d,f,h,j,k,l,m,n){a=a|0;d=d|0;f=f|0;h=+h;j=+j;k=+k;l=l|0;m=m|0;n=n|0;var o=0,p=0,q=0.0,r=0.0,s=0,t=0.0,u=0.0,v=0,w=0.0,x=0.0,y=0.0,z=0.0,A=0.0,B=0.0,C=0,D=0,E=0,F=0,G=0,H=0.0,I=0,J=0,K=0,L=0,M=0,N=0.0,O=0.0,Q=0,R=0.0,S=0,T=0.0,U=0,V=0.0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0;o=i;i=i+32|0;p=o;q=+g[f>>2];r=h-q;s=f+4|0;t=+g[s>>2];u=j-t;v=f+8|0;w=+g[v>>2];x=k-w;y=1.0/+P(+(r*r+u*u+x*x));z=r*y;A=u*y;B=x*y;y=x*B+(r*z+u*A);u=z==0.0?999999984306749440.0:1.0/z;z=A==0.0?999999984306749440.0:1.0/A;A=B==0.0?999999984306749440.0:1.0/B;C=u<0.0&1;D=z<0.0&1;E=A<0.0&1;B=(q>h?h:q)+ +g[l>>2];F=l+4|0;r=(t>j?j:t)+ +g[F>>2];G=l+8|0;x=(w>k?k:w)+ +g[G>>2];H=(q<h?h:q)+ +g[m>>2];I=m+4|0;q=(t<j?j:t)+ +g[I>>2];J=m+8|0;t=(w<k?k:w)+ +g[J>>2];K=a+4|0;w=+g[K>>2];k=B<w?w:B;L=a+8|0;B=+g[L>>2];j=r<B?B:r;M=a+12|0;r=+g[M>>2];h=x<r?r:x;x=+g[a+20>>2];N=+g[a+24>>2];O=+g[a+28>>2];Q=a+36|0;R=+g[Q>>2];S=a+40|0;T=+g[S>>2];U=a+44|0;V=+g[U>>2];W=~~(((x<k?x:k)-w)*R)&65534;X=~~(((O<h?O:h)-r)*V)&65534;Y=~~(((N<j?N:j)-B)*T)&65534;j=H<w?w:H;H=q<B?B:q;q=t<r?r:t;Z=(~~(((x<j?x:j)-w)*R+1.0)&65535|1)&65535;_=(~~(((O<q?O:q)-r)*V+1.0)&65535|1)&65535;$=(~~(((N<H?N:H)-B)*T+1.0)&65535|1)&65535;if((n|0)>0){aa=p+4|0;ba=p+8|0;ca=p+12|0;da=p+16|0;ea=p+20|0;fa=p+24|0;ga=p+28|0;ha=p+(C<<4)|0;ia=p+((C^1)<<4)|0;C=p+(D<<4)+4|0;ja=p+((D^1)<<4)+4|0;D=p+(E<<4)+8|0;ka=p+((E^1)<<4)+8|0;E=0;la=c[a+136>>2]|0;a=0;while(1){ma=a+1|0;na=la+6|0;oa=b[la>>1]|0;pa=la+10|0;qa=b[la+4>>1]|0;ra=la+8|0;sa=b[la+2>>1]|0;ta=la+12|0;ua=(c[ta>>2]|0)>-1;if((((Z&65535)>=(oa&65535)?(W&65535)<=(e[na>>1]|0):0)&(X&65535)<=(e[pa>>1]|0)&(_&65535)>=(qa&65535)&(Y&65535)<=(e[ra>>1]|0)&($&65535)>=(sa&65535)?(T=+g[Q>>2],B=+g[S>>2],H=+g[U>>2],N=+g[K>>2],V=+g[L>>2],r=+g[M>>2],g[ca>>2]=0.0,q=+(e[na>>1]|0)/T+N,O=+(e[ra>>1]|0)/B+V,R=+(e[pa>>1]|0)/H+r,g[ga>>2]=0.0,g[p>>2]=+(oa&65535)/T+N-+g[m>>2],g[aa>>2]=+(sa&65535)/B+V-+g[I>>2],g[ba>>2]=+(qa&65535)/H+r-+g[J>>2],g[da>>2]=q-+g[l>>2],g[ea>>2]=O-+g[F>>2],g[fa>>2]=R-+g[G>>2],R=+g[f>>2],O=u*(+g[ha>>2]-R),q=u*(+g[ia>>2]-R),R=+g[s>>2],r=z*(+g[C>>2]-R),H=z*(+g[ja>>2]-R),!(r>q|O>H)):0)?(R=r>O?r:O,O=H<q?H:q,q=+g[v>>2],H=A*(+g[D>>2]-q),r=A*(+g[ka>>2]-q),!(H>O|R>r)):0){qa=(r<O?r:O)>0.0?(H>R?H:R)<y:0;if(ua&qa){sa=c[ta>>2]|0;pc[c[(c[d>>2]|0)+8>>2]&63](d,sa>>21,sa&2097151);va=9}else{wa=qa;va=8}}else{wa=0;va=8}if((va|0)==8){va=0;if(ua|wa)va=9;else{ua=c[ta>>2]|0;xa=E-ua|0;ya=la+(0-ua<<4)|0}}if((va|0)==9){va=0;xa=E+1|0;ya=la+16|0}if((xa|0)<(n|0)){E=xa;la=ya;a=ma}else{za=ma;break}}}else za=0;if((c[3158]|0)>=(za|0)){i=o;return}c[3158]=za;i=o;return}function gq(d,f,h,i){d=d|0;f=f|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,G=0,H=0,I=0,J=0,K=0,L=0;h=d+168|0;c[h>>2]=c[d+152>>2];c[f>>2]=12600;j=f+4|0;k=f+20|0;c[f+52>>2]=283;l=f+60|0;a[l>>0]=0;a[f+80>>0]=1;c[f+76>>2]=0;c[f+68>>2]=0;c[f+72>>2]=0;m=f+100|0;a[m>>0]=1;n=f+96|0;c[n>>2]=0;o=f+88|0;c[o>>2]=0;p=f+92|0;c[p>>2]=0;a[f+120>>0]=1;c[f+116>>2]=0;c[f+108>>2]=0;c[f+112>>2]=0;q=f+140|0;a[q>>0]=1;r=f+136|0;c[r>>2]=0;s=f+128|0;c[s>>2]=0;t=f+132|0;c[t>>2]=0;u=f+144|0;c[u>>2]=0;v=f+164|0;a[v>>0]=1;w=f+160|0;c[w>>2]=0;x=f+152|0;c[x>>2]=0;y=f+156|0;c[y>>2]=0;z=f+168|0;c[z>>2]=0;c[j>>2]=-8388609;A=f+8|0;c[A>>2]=-8388609;B=f+12|0;c[B>>2]=-8388609;C=f+16|0;g[C>>2]=0.0;c[k>>2]=2139095039;D=f+24|0;c[D>>2]=2139095039;E=f+28|0;c[E>>2]=2139095039;F=f+32|0;g[F>>2]=0.0;G=d+56|0;H=c[G>>2]|0;if(i){c[f+56>>2]=Is(H|0)|0;I=d+4|0;a[j>>0]=a[I+3>>0]|0;a[f+5>>0]=a[I+2>>0]|0;a[f+6>>0]=a[I+1>>0]|0;a[f+7>>0]=a[I>>0]|0;I=d+8|0;a[A>>0]=a[I+3>>0]|0;a[f+9>>0]=a[I+2>>0]|0;a[f+10>>0]=a[I+1>>0]|0;a[f+11>>0]=a[I>>0]|0;I=d+12|0;a[B>>0]=a[I+3>>0]|0;a[f+13>>0]=a[I+2>>0]|0;a[f+14>>0]=a[I+1>>0]|0;a[f+15>>0]=a[I>>0]|0;I=d+16|0;a[C>>0]=a[I+3>>0]|0;a[f+17>>0]=a[I+2>>0]|0;a[f+18>>0]=a[I+1>>0]|0;a[f+19>>0]=a[I>>0]|0;I=d+20|0;a[k>>0]=a[I+3>>0]|0;a[f+21>>0]=a[I+2>>0]|0;a[f+22>>0]=a[I+1>>0]|0;a[f+23>>0]=a[I>>0]|0;I=d+24|0;a[D>>0]=a[I+3>>0]|0;a[f+25>>0]=a[I+2>>0]|0;a[f+26>>0]=a[I+1>>0]|0;a[f+27>>0]=a[I>>0]|0;I=d+28|0;a[E>>0]=a[I+3>>0]|0;a[f+29>>0]=a[I+2>>0]|0;a[f+30>>0]=a[I+1>>0]|0;a[f+31>>0]=a[I>>0]|0;I=d+32|0;a[F>>0]=a[I+3>>0]|0;a[f+33>>0]=a[I+2>>0]|0;a[f+34>>0]=a[I+1>>0]|0;a[f+35>>0]=a[I>>0]|0;I=d+36|0;a[f+36>>0]=a[I+3>>0]|0;a[f+37>>0]=a[I+2>>0]|0;a[f+38>>0]=a[I+1>>0]|0;a[f+39>>0]=a[I>>0]|0;I=d+40|0;a[f+40>>0]=a[I+3>>0]|0;a[f+41>>0]=a[I+2>>0]|0;a[f+42>>0]=a[I+1>>0]|0;a[f+43>>0]=a[I>>0]|0;I=d+44|0;a[f+44>>0]=a[I+3>>0]|0;a[f+45>>0]=a[I+2>>0]|0;a[f+46>>0]=a[I+1>>0]|0;a[f+47>>0]=a[I>>0]|0;I=d+48|0;a[f+48>>0]=a[I+3>>0]|0;a[f+49>>0]=a[I+2>>0]|0;a[f+50>>0]=a[I+1>>0]|0;a[f+51>>0]=a[I>>0]|0;c[u>>2]=Is(c[d+144>>2]|0)|0;J=Is(c[h>>2]|0)|0}else{c[f+56>>2]=H;H=d+4|0;c[j>>2]=c[H>>2];c[j+4>>2]=c[H+4>>2];c[j+8>>2]=c[H+8>>2];c[j+12>>2]=c[H+12>>2];H=d+20|0;c[k>>2]=c[H>>2];c[k+4>>2]=c[H+4>>2];c[k+8>>2]=c[H+8>>2];c[k+12>>2]=c[H+12>>2];H=f+36|0;k=d+36|0;c[H>>2]=c[k>>2];c[H+4>>2]=c[k+4>>2];c[H+8>>2]=c[k+8>>2];c[H+12>>2]=c[k+12>>2];c[u>>2]=c[d+144>>2];J=c[h>>2]|0}c[z>>2]=J;J=d+60|0;a[l>>0]=a[J>>0]|0;l=f+172|0;z=c[G>>2]|0;if(!(a[J>>0]|0)){J=c[n>>2]|0;if(J){if(a[m>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[J+-4>>2]|0);}c[n>>2]=0};c[o>>2]=0;c[o+4>>2]=0;c[o+8>>2]=0;a[o+12>>0]=0;c[n>>2]=l;c[o>>2]=z;c[p>>2]=z;p=(z|0)>0;if(i)if(p){J=d+96|0;G=c[J>>2]|0;u=l;k=0;while(1){H=G+(k<<6)|0;j=u+(k<<6)|0;a[j>>0]=a[H+3>>0]|0;a[j+1>>0]=a[H+2>>0]|0;a[j+2>>0]=a[H+1>>0]|0;a[j+3>>0]=a[H>>0]|0;H=G+(k<<6)+4|0;j=u+(k<<6)+4|0;a[j>>0]=a[H+3>>0]|0;a[j+1>>0]=a[H+2>>0]|0;a[j+2>>0]=a[H+1>>0]|0;a[j+3>>0]=a[H>>0]|0;H=G+(k<<6)+8|0;j=u+(k<<6)+8|0;a[j>>0]=a[H+3>>0]|0;a[j+1>>0]=a[H+2>>0]|0;a[j+2>>0]=a[H+1>>0]|0;a[j+3>>0]=a[H>>0]|0;H=G+(k<<6)+12|0;j=u+(k<<6)+12|0;a[j>>0]=a[H+3>>0]|0;a[j+1>>0]=a[H+2>>0]|0;a[j+2>>0]=a[H+1>>0]|0;a[j+3>>0]=a[H>>0]|0;H=c[J>>2]|0;j=H+(k<<6)+16|0;I=c[n>>2]|0;F=I+(k<<6)+16|0;a[F>>0]=a[j+3>>0]|0;a[F+1>>0]=a[j+2>>0]|0;a[F+2>>0]=a[j+1>>0]|0;a[F+3>>0]=a[j>>0]|0;j=H+(k<<6)+20|0;F=I+(k<<6)+20|0;a[F>>0]=a[j+3>>0]|0;a[F+1>>0]=a[j+2>>0]|0;a[F+2>>0]=a[j+1>>0]|0;a[F+3>>0]=a[j>>0]|0;j=H+(k<<6)+24|0;F=I+(k<<6)+24|0;a[F>>0]=a[j+3>>0]|0;a[F+1>>0]=a[j+2>>0]|0;a[F+2>>0]=a[j+1>>0]|0;a[F+3>>0]=a[j>>0]|0;j=H+(k<<6)+28|0;H=I+(k<<6)+28|0;a[H>>0]=a[j+3>>0]|0;a[H+1>>0]=a[j+2>>0]|0;a[H+2>>0]=a[j+1>>0]|0;a[H+3>>0]=a[j>>0]|0;G=c[J>>2]|0;j=Is(c[G+(k<<6)+32>>2]|0)|0;H=c[n>>2]|0;c[H+(k<<6)+32>>2]=j;c[H+(k<<6)+36>>2]=Is(c[G+(k<<6)+36>>2]|0)|0;c[H+(k<<6)+40>>2]=Is(c[G+(k<<6)+40>>2]|0)|0;k=k+1|0;if((k|0)==(z|0)){K=H;break}else u=H}}else K=l;else if(p){p=d+96|0;u=l;k=c[p>>2]|0;G=0;while(1){J=u+(G<<6)|0;H=k+(G<<6)|0;c[J>>2]=c[H>>2];c[J+4>>2]=c[H+4>>2];c[J+8>>2]=c[H+8>>2];c[J+12>>2]=c[H+12>>2];H=(c[n>>2]|0)+(G<<6)+16|0;J=(c[p>>2]|0)+(G<<6)+16|0;c[H>>2]=c[J>>2];c[H+4>>2]=c[J+4>>2];c[H+8>>2]=c[J+8>>2];c[H+12>>2]=c[J+12>>2];k=c[p>>2]|0;J=c[n>>2]|0;c[J+(G<<6)+32>>2]=c[k+(G<<6)+32>>2];c[J+(G<<6)+36>>2]=c[k+(G<<6)+36>>2];c[J+(G<<6)+40>>2]=c[k+(G<<6)+40>>2];G=G+1|0;if((G|0)==(z|0)){K=J;break}else u=J}}else K=l;u=z<<6;if(K){if(a[m>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[K+-4>>2]|0);}c[n>>2]=0};c[o>>2]=0;c[o+4>>2]=0;c[o+8>>2]=0;a[o+12>>0]=0;L=u}else{u=c[r>>2]|0;if(u){if(a[q>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[u+-4>>2]|0);}c[r>>2]=0};c[s>>2]=0;c[s+4>>2]=0;c[s+8>>2]=0;a[s+12>>0]=0;c[r>>2]=l;c[s>>2]=z;c[t>>2]=z;t=(z|0)>0;if(i){if(t){r=c[d+136>>2]|0;u=0;do{q=e[r+(u<<4)>>1]|0;b[l+(u<<4)>>1]=q>>>8|q<<8;q=e[r+(u<<4)+2>>1]|0;b[l+(u<<4)+2>>1]=q>>>8|q<<8;q=e[r+(u<<4)+4>>1]|0;b[l+(u<<4)+4>>1]=q>>>8|q<<8;q=e[r+(u<<4)+6>>1]|0;b[l+(u<<4)+6>>1]=q>>>8|q<<8;q=e[r+(u<<4)+8>>1]|0;b[l+(u<<4)+8>>1]=q>>>8|q<<8;q=e[r+(u<<4)+10>>1]|0;b[l+(u<<4)+10>>1]=q>>>8|q<<8;c[l+(u<<4)+12>>2]=Is(c[r+(u<<4)+12>>2]|0)|0;u=u+1|0}while((u|0)!=(z|0));}}else if(t){t=c[d+136>>2]|0;u=0;do{b[l+(u<<4)>>1]=b[t+(u<<4)>>1]|0;b[l+(u<<4)+2>>1]=b[t+(u<<4)+2>>1]|0;b[l+(u<<4)+4>>1]=b[t+(u<<4)+4>>1]|0;b[l+(u<<4)+6>>1]=b[t+(u<<4)+6>>1]|0;b[l+(u<<4)+8>>1]=b[t+(u<<4)+8>>1]|0;b[l+(u<<4)+10>>1]=b[t+(u<<4)+10>>1]|0;c[l+(u<<4)+12>>2]=c[t+(u<<4)+12>>2];u=u+1|0}while((u|0)!=(z|0));}c[s>>2]=0;c[s+4>>2]=0;c[s+8>>2]=0;a[s+12>>0]=0;L=z<<4}z=f+(L+172)|0;L=c[h>>2]|0;s=c[w>>2]|0;if(s){if(a[v>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[s+-4>>2]|0);}c[w>>2]=0};c[x>>2]=0;c[x+4>>2]=0;c[x+8>>2]=0;a[x+12>>0]=0;c[w>>2]=z;c[x>>2]=L;c[y>>2]=L;L=c[h>>2]|0;y=(L|0)>0;if(i){if(!y){c[f>>2]=0;c[x>>2]=0;c[x+4>>2]=0;c[x+8>>2]=0;a[x+12>>0]=0;return 1}i=c[d+160>>2]|0;w=0;do{s=e[i+(w<<5)>>1]|0;b[z+(w<<5)>>1]=s>>>8|s<<8;s=e[i+(w<<5)+2>>1]|0;b[z+(w<<5)+2>>1]=s>>>8|s<<8;s=e[i+(w<<5)+4>>1]|0;b[z+(w<<5)+4>>1]=s>>>8|s<<8;s=e[i+(w<<5)+6>>1]|0;b[z+(w<<5)+6>>1]=s>>>8|s<<8;s=e[i+(w<<5)+8>>1]|0;b[z+(w<<5)+8>>1]=s>>>8|s<<8;s=e[i+(w<<5)+10>>1]|0;b[z+(w<<5)+10>>1]=s>>>8|s<<8;c[z+(w<<5)+12>>2]=Is(c[i+(w<<5)+12>>2]|0)|0;c[z+(w<<5)+16>>2]=Is(c[i+(w<<5)+16>>2]|0)|0;w=w+1|0}while((w|0)!=(L|0));c[f>>2]=0;c[x>>2]=0;c[x+4>>2]=0;c[x+8>>2]=0;a[x+12>>0]=0;return 1}else{if(!y){c[f>>2]=0;c[x>>2]=0;c[x+4>>2]=0;c[x+8>>2]=0;a[x+12>>0]=0;return 1}y=c[d+160>>2]|0;d=0;do{b[z+(d<<5)>>1]=b[y+(d<<5)>>1]|0;b[z+(d<<5)+2>>1]=b[y+(d<<5)+2>>1]|0;b[z+(d<<5)+4>>1]=b[y+(d<<5)+4>>1]|0;b[z+(d<<5)+6>>1]=b[y+(d<<5)+6>>1]|0;b[z+(d<<5)+8>>1]=b[y+(d<<5)+8>>1]|0;b[z+(d<<5)+10>>1]=b[y+(d<<5)+10>>1]|0;c[z+(d<<5)+12>>2]=c[y+(d<<5)+12>>2];c[z+(d<<5)+16>>2]=c[y+(d<<5)+16>>2];c[z+(d<<5)+20>>2]=0;c[z+(d<<5)+24>>2]=0;c[z+(d<<5)+28>>2]=0;d=d+1|0}while((d|0)<(c[h>>2]|0));c[f>>2]=0;c[x>>2]=0;c[x+4>>2]=0;c[x+8>>2]=0;a[x+12>>0]=0;return 1}return 0}function hq(d,e){d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;f=i;i=i+112|0;g=f+48|0;h=f+32|0;j=f;c[d+20>>2]=c[e+16>>2];c[d+24>>2]=c[e+20>>2];c[d+28>>2]=c[e+24>>2];c[d+32>>2]=c[e+28>>2];c[d+4>>2]=c[e>>2];c[d+8>>2]=c[e+4>>2];c[d+12>>2]=c[e+8>>2];c[d+16>>2]=c[e+12>>2];c[d+36>>2]=c[e+32>>2];c[d+40>>2]=c[e+36>>2];c[d+44>>2]=c[e+40>>2];c[d+48>>2]=c[e+44>>2];c[d+56>>2]=c[e+48>>2];a[d+60>>0]=(c[e+52>>2]|0)!=0&1;k=c[e+56>>2]|0;l=g;m=l+64|0;do{c[l>>2]=0;l=l+4|0}while((l|0)<(m|0));n=d+88|0;o=c[n>>2]|0;if((o|0)<(k|0)){p=d+92|0;if((c[p>>2]|0)<(k|0)){if(!k){q=0;r=o}else{c[3708]=(c[3708]|0)+1;s=ws(k<<6|19)|0;if(!s)t=0;else{u=s+4+15&-16;c[u+-4>>2]=s;t=u}q=t;r=c[n>>2]|0}t=d+96|0;if((r|0)>0){u=0;do{l=q+(u<<6)|0;v=(c[t>>2]|0)+(u<<6)|0;m=l+64|0;do{c[l>>2]=c[v>>2];l=l+4|0;v=v+4|0}while((l|0)<(m|0));u=u+1|0}while((u|0)!=(r|0));}r=c[t>>2]|0;u=d+100|0;if(r){if(a[u>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[r+-4>>2]|0);}c[t>>2]=0}a[u>>0]=1;c[t>>2]=q;c[p>>2]=k;w=t}else w=d+96|0;t=o;do{l=(c[w>>2]|0)+(t<<6)|0;v=g;m=l+64|0;do{c[l>>2]=c[v>>2];l=l+4|0;v=v+4|0}while((l|0)<(m|0));t=t+1|0}while((t|0)!=(k|0));}c[n>>2]=k;if((k|0)>0){n=c[d+96>>2]|0;t=0;v=c[e+64>>2]|0;while(1){c[n+(t<<6)+16>>2]=c[v+16>>2];c[n+(t<<6)+20>>2]=c[v+20>>2];c[n+(t<<6)+24>>2]=c[v+24>>2];c[n+(t<<6)+28>>2]=c[v+28>>2];c[n+(t<<6)>>2]=c[v>>2];c[n+(t<<6)+4>>2]=c[v+4>>2];c[n+(t<<6)+8>>2]=c[v+8>>2];c[n+(t<<6)+12>>2]=c[v+12>>2];c[n+(t<<6)+32>>2]=c[v+32>>2];c[n+(t<<6)+36>>2]=c[v+36>>2];c[n+(t<<6)+40>>2]=c[v+40>>2];t=t+1|0;if((t|0)==(k|0))break;else v=v+48|0}}v=c[e+60>>2]|0;c[h>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;c[h+12>>2]=0;k=d+128|0;t=c[k>>2]|0;if((t|0)<(v|0)){n=d+132|0;if((c[n>>2]|0)<(v|0)){if(!v){x=0;y=t}else{c[3708]=(c[3708]|0)+1;l=ws((v<<4|3)+16|0)|0;if(!l)z=0;else{m=l+4+15&-16;c[m+-4>>2]=l;z=m}x=z;y=c[k>>2]|0}z=d+136|0;if((y|0)>0){m=0;do{l=x+(m<<4)|0;g=(c[z>>2]|0)+(m<<4)|0;c[l>>2]=c[g>>2];c[l+4>>2]=c[g+4>>2];c[l+8>>2]=c[g+8>>2];c[l+12>>2]=c[g+12>>2];m=m+1|0}while((m|0)!=(y|0));}y=c[z>>2]|0;m=d+140|0;if(y){if(a[m>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[y+-4>>2]|0);}c[z>>2]=0}a[m>>0]=1;c[z>>2]=x;c[n>>2]=v;A=z}else A=d+136|0;z=t;do{t=(c[A>>2]|0)+(z<<4)|0;c[t>>2]=c[h>>2];c[t+4>>2]=c[h+4>>2];c[t+8>>2]=c[h+8>>2];c[t+12>>2]=c[h+12>>2];z=z+1|0}while((z|0)!=(v|0));}c[k>>2]=v;if((v|0)>0){k=c[d+136>>2]|0;z=0;h=c[e+68>>2]|0;while(1){c[k+(z<<4)+12>>2]=c[h+12>>2];b[k+(z<<4)+6>>1]=b[h+6>>1]|0;b[k+(z<<4)+8>>1]=b[h+8>>1]|0;b[k+(z<<4)+10>>1]=b[h+10>>1]|0;b[k+(z<<4)>>1]=b[h>>1]|0;b[k+(z<<4)+2>>1]=b[h+2>>1]|0;b[k+(z<<4)+4>>1]=b[h+4>>1]|0;z=z+1|0;if((z|0)==(v|0))break;else h=h+16|0}}c[d+144>>2]=c[e+76>>2];h=c[e+80>>2]|0;v=d+152|0;z=c[v>>2]|0;if((z|0)<(h|0)){k=d+156|0;if((c[k>>2]|0)<(h|0)){if(!h){B=0;C=z}else{c[3708]=(c[3708]|0)+1;A=ws(h<<5|19)|0;if(!A)D=0;else{t=A+4+15&-16;c[t+-4>>2]=A;D=t}B=D;C=c[v>>2]|0}D=d+160|0;if((C|0)>0){t=0;do{A=B+(t<<5)|0;n=(c[D>>2]|0)+(t<<5)|0;c[A>>2]=c[n>>2];c[A+4>>2]=c[n+4>>2];c[A+8>>2]=c[n+8>>2];c[A+12>>2]=c[n+12>>2];c[A+16>>2]=c[n+16>>2];c[A+20>>2]=c[n+20>>2];c[A+24>>2]=c[n+24>>2];c[A+28>>2]=c[n+28>>2];t=t+1|0}while((t|0)!=(C|0));}C=c[D>>2]|0;t=d+164|0;if(C){if(a[t>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[C+-4>>2]|0);}c[D>>2]=0}a[t>>0]=1;c[D>>2]=B;c[k>>2]=h;E=D}else E=d+160|0;D=z;do{z=(c[E>>2]|0)+(D<<5)|0;c[z>>2]=c[j>>2];c[z+4>>2]=c[j+4>>2];c[z+8>>2]=c[j+8>>2];c[z+12>>2]=c[j+12>>2];c[z+16>>2]=c[j+16>>2];c[z+20>>2]=c[j+20>>2];c[z+24>>2]=c[j+24>>2];c[z+28>>2]=c[j+28>>2];D=D+1|0}while((D|0)!=(h|0));}c[v>>2]=h;if((h|0)<=0){i=f;return}v=c[d+160>>2]|0;d=0;D=c[e+72>>2]|0;while(1){b[v+(d<<5)+6>>1]=b[D+14>>1]|0;b[v+(d<<5)+8>>1]=b[D+16>>1]|0;b[v+(d<<5)+10>>1]=b[D+18>>1]|0;b[v+(d<<5)>>1]=b[D+8>>1]|0;b[v+(d<<5)+2>>1]=b[D+10>>1]|0;b[v+(d<<5)+4>>1]=b[D+12>>1]|0;c[v+(d<<5)+12>>2]=c[D>>2];c[v+(d<<5)+16>>2]=c[D+4>>2];d=d+1|0;if((d|0)==(h|0))break;else D=D+20|0}i=f;return}function iq(d,e){d=d|0;e=e|0;var f=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;f=i;i=i+112|0;j=f+48|0;k=f+32|0;l=f;g[d+20>>2]=+h[e+32>>3];g[d+24>>2]=+h[e+40>>3];g[d+28>>2]=+h[e+48>>3];g[d+32>>2]=+h[e+56>>3];g[d+4>>2]=+h[e>>3];g[d+8>>2]=+h[e+8>>3];g[d+12>>2]=+h[e+16>>3];g[d+16>>2]=+h[e+24>>3];g[d+36>>2]=+h[e+64>>3];g[d+40>>2]=+h[e+72>>3];g[d+44>>2]=+h[e+80>>3];g[d+48>>2]=+h[e+88>>3];c[d+56>>2]=c[e+96>>2];a[d+60>>0]=(c[e+100>>2]|0)!=0&1;m=c[e+104>>2]|0;n=j;o=n+64|0;do{c[n>>2]=0;n=n+4|0}while((n|0)<(o|0));p=d+88|0;q=c[p>>2]|0;if((q|0)<(m|0)){r=d+92|0;if((c[r>>2]|0)<(m|0)){if(!m){s=0;t=q}else{c[3708]=(c[3708]|0)+1;u=ws(m<<6|19)|0;if(!u)v=0;else{w=u+4+15&-16;c[w+-4>>2]=u;v=w}s=v;t=c[p>>2]|0}v=d+96|0;if((t|0)>0){w=0;do{n=s+(w<<6)|0;x=(c[v>>2]|0)+(w<<6)|0;o=n+64|0;do{c[n>>2]=c[x>>2];n=n+4|0;x=x+4|0}while((n|0)<(o|0));w=w+1|0}while((w|0)!=(t|0));}t=c[v>>2]|0;w=d+100|0;if(t){if(a[w>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[t+-4>>2]|0);}c[v>>2]=0}a[w>>0]=1;c[v>>2]=s;c[r>>2]=m;y=v}else y=d+96|0;v=q;do{n=(c[y>>2]|0)+(v<<6)|0;x=j;o=n+64|0;do{c[n>>2]=c[x>>2];n=n+4|0;x=x+4|0}while((n|0)<(o|0));v=v+1|0}while((v|0)!=(m|0));}c[p>>2]=m;if((m|0)>0){p=c[d+96>>2]|0;v=0;x=c[e+112>>2]|0;while(1){g[p+(v<<6)+16>>2]=+h[x+32>>3];g[p+(v<<6)+20>>2]=+h[x+40>>3];g[p+(v<<6)+24>>2]=+h[x+48>>3];g[p+(v<<6)+28>>2]=+h[x+56>>3];g[p+(v<<6)>>2]=+h[x>>3];g[p+(v<<6)+4>>2]=+h[x+8>>3];g[p+(v<<6)+8>>2]=+h[x+16>>3];g[p+(v<<6)+12>>2]=+h[x+24>>3];c[p+(v<<6)+32>>2]=c[x+64>>2];c[p+(v<<6)+36>>2]=c[x+68>>2];c[p+(v<<6)+40>>2]=c[x+72>>2];v=v+1|0;if((v|0)==(m|0))break;else x=x+80|0}}x=c[e+108>>2]|0;c[k>>2]=0;c[k+4>>2]=0;c[k+8>>2]=0;c[k+12>>2]=0;m=d+128|0;v=c[m>>2]|0;if((v|0)<(x|0)){p=d+132|0;if((c[p>>2]|0)<(x|0)){if(!x){z=0;A=v}else{c[3708]=(c[3708]|0)+1;n=ws((x<<4|3)+16|0)|0;if(!n)B=0;else{o=n+4+15&-16;c[o+-4>>2]=n;B=o}z=B;A=c[m>>2]|0}B=d+136|0;if((A|0)>0){o=0;do{n=z+(o<<4)|0;j=(c[B>>2]|0)+(o<<4)|0;c[n>>2]=c[j>>2];c[n+4>>2]=c[j+4>>2];c[n+8>>2]=c[j+8>>2];c[n+12>>2]=c[j+12>>2];o=o+1|0}while((o|0)!=(A|0));}A=c[B>>2]|0;o=d+140|0;if(A){if(a[o>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[A+-4>>2]|0);}c[B>>2]=0}a[o>>0]=1;c[B>>2]=z;c[p>>2]=x;C=B}else C=d+136|0;B=v;do{v=(c[C>>2]|0)+(B<<4)|0;c[v>>2]=c[k>>2];c[v+4>>2]=c[k+4>>2];c[v+8>>2]=c[k+8>>2];c[v+12>>2]=c[k+12>>2];B=B+1|0}while((B|0)!=(x|0));}c[m>>2]=x;if((x|0)>0){m=c[d+136>>2]|0;B=0;k=c[e+116>>2]|0;while(1){c[m+(B<<4)+12>>2]=c[k+12>>2];b[m+(B<<4)+6>>1]=b[k+6>>1]|0;b[m+(B<<4)+8>>1]=b[k+8>>1]|0;b[m+(B<<4)+10>>1]=b[k+10>>1]|0;b[m+(B<<4)>>1]=b[k>>1]|0;b[m+(B<<4)+2>>1]=b[k+2>>1]|0;b[m+(B<<4)+4>>1]=b[k+4>>1]|0;B=B+1|0;if((B|0)==(x|0))break;else k=k+16|0}}c[d+144>>2]=c[e+120>>2];k=c[e+124>>2]|0;x=d+152|0;B=c[x>>2]|0;if((B|0)<(k|0)){m=d+156|0;if((c[m>>2]|0)<(k|0)){if(!k){D=0;E=B}else{c[3708]=(c[3708]|0)+1;C=ws(k<<5|19)|0;if(!C)F=0;else{v=C+4+15&-16;c[v+-4>>2]=C;F=v}D=F;E=c[x>>2]|0}F=d+160|0;if((E|0)>0){v=0;do{C=D+(v<<5)|0;p=(c[F>>2]|0)+(v<<5)|0;c[C>>2]=c[p>>2];c[C+4>>2]=c[p+4>>2];c[C+8>>2]=c[p+8>>2];c[C+12>>2]=c[p+12>>2];c[C+16>>2]=c[p+16>>2];c[C+20>>2]=c[p+20>>2];c[C+24>>2]=c[p+24>>2];c[C+28>>2]=c[p+28>>2];v=v+1|0}while((v|0)!=(E|0));}E=c[F>>2]|0;v=d+164|0;if(E){if(a[v>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[E+-4>>2]|0);}c[F>>2]=0}a[v>>0]=1;c[F>>2]=D;c[m>>2]=k;G=F}else G=d+160|0;F=B;do{B=(c[G>>2]|0)+(F<<5)|0;c[B>>2]=c[l>>2];c[B+4>>2]=c[l+4>>2];c[B+8>>2]=c[l+8>>2];c[B+12>>2]=c[l+12>>2];c[B+16>>2]=c[l+16>>2];c[B+20>>2]=c[l+20>>2];c[B+24>>2]=c[l+24>>2];c[B+28>>2]=c[l+28>>2];F=F+1|0}while((F|0)!=(k|0));}c[x>>2]=k;if((k|0)<=0){i=f;return}x=c[d+160>>2]|0;d=0;F=c[e+128>>2]|0;while(1){b[x+(d<<5)+6>>1]=b[F+14>>1]|0;b[x+(d<<5)+8>>1]=b[F+16>>1]|0;b[x+(d<<5)+10>>1]=b[F+18>>1]|0;b[x+(d<<5)>>1]=b[F+8>>1]|0;b[x+(d<<5)+2>>1]=b[F+10>>1]|0;b[x+(d<<5)+4>>1]=b[F+12>>1]|0;c[x+(d<<5)+12>>2]=c[F>>2];c[x+(d<<5)+16>>2]=c[F+4>>2];d=d+1|0;if((d|0)==(k|0))break;else F=F+20|0}i=f;return}function jq(a,e,f){a=a|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;c[e+16>>2]=c[a+20>>2];c[e+20>>2]=c[a+24>>2];c[e+24>>2]=c[a+28>>2];c[e+28>>2]=c[a+32>>2];c[e>>2]=c[a+4>>2];c[e+4>>2]=c[a+8>>2];c[e+8>>2]=c[a+12>>2];c[e+12>>2]=c[a+16>>2];c[e+32>>2]=c[a+36>>2];c[e+36>>2]=c[a+40>>2];c[e+40>>2]=c[a+44>>2];c[e+44>>2]=c[a+48>>2];c[e+48>>2]=c[a+56>>2];c[e+52>>2]=d[a+60>>0];g=a+88|0;h=c[g>>2]|0;c[e+56>>2]=h;if(h){h=a+96|0;i=ec[c[(c[f>>2]|0)+28>>2]&31](f,c[h>>2]|0)|0;c[e+64>>2]=i;if(i){i=c[g>>2]|0;g=Wb[c[(c[f>>2]|0)+16>>2]&31](f,48,i)|0;if((i|0)>0){j=c[h>>2]|0;k=0;l=c[g+8>>2]|0;while(1){c[l+16>>2]=c[j+(k<<6)+16>>2];c[l+20>>2]=c[j+(k<<6)+20>>2];c[l+24>>2]=c[j+(k<<6)+24>>2];c[l+28>>2]=c[j+(k<<6)+28>>2];c[l>>2]=c[j+(k<<6)>>2];c[l+4>>2]=c[j+(k<<6)+4>>2];c[l+8>>2]=c[j+(k<<6)+8>>2];c[l+12>>2]=c[j+(k<<6)+12>>2];c[l+32>>2]=c[j+(k<<6)+32>>2];c[l+36>>2]=c[j+(k<<6)+36>>2];c[l+40>>2]=c[j+(k<<6)+40>>2];k=k+1|0;if((k|0)==(i|0))break;else l=l+48|0}m=j}else m=c[h>>2]|0;Ib[c[(c[f>>2]|0)+20>>2]&31](f,g,12672,1497453121,m);}}else c[e+64>>2]=0;m=a+128|0;g=c[m>>2]|0;c[e+60>>2]=g;if(g){g=a+136|0;h=ec[c[(c[f>>2]|0)+28>>2]&31](f,c[g>>2]|0)|0;c[e+68>>2]=h;if(h){h=c[m>>2]|0;m=Wb[c[(c[f>>2]|0)+16>>2]&31](f,16,h)|0;if((h|0)>0){j=c[g>>2]|0;l=0;i=c[m+8>>2]|0;while(1){c[i+12>>2]=c[j+(l<<4)+12>>2];b[i+6>>1]=b[j+(l<<4)+6>>1]|0;b[i+8>>1]=b[j+(l<<4)+8>>1]|0;b[i+10>>1]=b[j+(l<<4)+10>>1]|0;b[i>>1]=b[j+(l<<4)>>1]|0;b[i+2>>1]=b[j+(l<<4)+2>>1]|0;b[i+4>>1]=b[j+(l<<4)+4>>1]|0;l=l+1|0;if((l|0)==(h|0))break;else i=i+16|0}n=j}else n=c[g>>2]|0;Ib[c[(c[f>>2]|0)+20>>2]&31](f,m,12696,1497453121,n);}}else c[e+68>>2]=0;c[e+76>>2]=c[a+144>>2];n=a+152|0;m=c[n>>2]|0;c[e+80>>2]=m;if(!m){c[e+72>>2]=0;return 12744}m=a+160|0;a=ec[c[(c[f>>2]|0)+28>>2]&31](f,c[m>>2]|0)|0;c[e+72>>2]=a;if(!a)return 12744;a=c[n>>2]|0;n=Wb[c[(c[f>>2]|0)+16>>2]&31](f,20,a)|0;if((a|0)>0){e=c[m>>2]|0;g=0;j=c[n+8>>2]|0;while(1){b[j+14>>1]=b[e+(g<<5)+6>>1]|0;b[j+16>>1]=b[e+(g<<5)+8>>1]|0;b[j+18>>1]=b[e+(g<<5)+10>>1]|0;b[j+8>>1]=b[e+(g<<5)>>1]|0;b[j+10>>1]=b[e+(g<<5)+2>>1]|0;b[j+12>>1]=b[e+(g<<5)+4>>1]|0;c[j>>2]=c[e+(g<<5)+12>>2];c[j+4>>2]=c[e+(g<<5)+16>>2];g=g+1|0;if((g|0)==(a|0))break;else j=j+20|0}o=e}else o=c[m>>2]|0;Ib[c[(c[f>>2]|0)+20>>2]&31](f,n,12720,1497453121,o);return 12744}function kq(b){b=b|0;var d=0,e=0;c[b>>2]=12832;if(!(a[b+8>>0]|0))return;d=c[b+12>>2]|0;if(!d)return;e=c[b+4>>2]|0;Mb[c[(c[e>>2]|0)+16>>2]&127](e,d);return}function lq(b){b=b|0;var d=0,e=0;c[b>>2]=12832;if(!(a[b+8>>0]|0)){xs(b);return}d=c[b+12>>2]|0;if(!d){xs(b);return}e=c[b+4>>2]|0;Mb[c[(c[e>>2]|0)+16>>2]&127](e,d);xs(b);return}function mq(b,d,e,f,h){b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;j=i;i=i+144|0;k=j+12|0;l=j;m=c[b+12>>2]|0;if(!m){i=j;return}n=c[d+4>>2]|0;o=c[e+4>>2]|0;p=h+4|0;c[p>>2]=m;g[k+128>>2]=999999984306749440.0;m=c[d+12>>2]|0;c[k>>2]=c[m>>2];c[k+4>>2]=c[m+4>>2];c[k+8>>2]=c[m+8>>2];c[k+12>>2]=c[m+12>>2];d=k+16|0;q=m+16|0;c[d>>2]=c[q>>2];c[d+4>>2]=c[q+4>>2];c[d+8>>2]=c[q+8>>2];c[d+12>>2]=c[q+12>>2];q=k+32|0;d=m+32|0;c[q>>2]=c[d>>2];c[q+4>>2]=c[d+4>>2];c[q+8>>2]=c[d+8>>2];c[q+12>>2]=c[d+12>>2];d=k+48|0;q=m+48|0;c[d>>2]=c[q>>2];c[d+4>>2]=c[q+4>>2];c[d+8>>2]=c[q+8>>2];c[d+12>>2]=c[q+12>>2];q=k+64|0;d=c[e+12>>2]|0;c[q>>2]=c[d>>2];c[q+4>>2]=c[d+4>>2];c[q+8>>2]=c[d+8>>2];c[q+12>>2]=c[d+12>>2];q=k+80|0;e=d+16|0;c[q>>2]=c[e>>2];c[q+4>>2]=c[e+4>>2];c[q+8>>2]=c[e+8>>2];c[q+12>>2]=c[e+12>>2];e=k+96|0;q=d+32|0;c[e>>2]=c[q>>2];c[e+4>>2]=c[q+4>>2];c[e+8>>2]=c[q+8>>2];c[e+12>>2]=c[q+12>>2];q=k+112|0;e=d+48|0;c[q>>2]=c[e>>2];c[q+4>>2]=c[e+4>>2];c[q+8>>2]=c[e+8>>2];c[q+12>>2]=c[e+12>>2];c[l>>2]=12912;c[l+4>>2]=n;c[l+8>>2]=o;pq(l,k,h,c[f+20>>2]|0,0);do if((a[b+8>>0]|0)!=0?(f=c[p>>2]|0,(c[f+748>>2]|0)!=0):0){k=c[f+740>>2]|0;l=c[(c[h+8>>2]|0)+8>>2]|0;o=c[(c[h+12>>2]|0)+8>>2]|0;if((k|0)==(l|0)){yp(f,k+4|0,o+4|0);break}else{yp(f,o+4|0,l+4|0);break}}while(0);i=j;return}function nq(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return 1.0}function oq(b,d){b=b|0;d=d|0;var 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;e=b+12|0;f=c[e>>2]|0;g=f;if(!f)return;if(!(a[b+8>>0]|0))return;b=d+4|0;f=c[b>>2]|0;h=d+8|0;if((f|0)==(c[h>>2]|0)?(i=(f|0)!=0?f<<1:1,(f|0)<(i|0)):0){if(!i){j=0;k=f}else{c[3708]=(c[3708]|0)+1;l=ws((i<<2|3)+16|0)|0;if(!l)m=0;else{n=l+4+15&-16;c[n+-4>>2]=l;m=n}j=m;k=c[b>>2]|0}m=d+12|0;if((k|0)>0){n=0;do{c[j+(n<<2)>>2]=c[(c[m>>2]|0)+(n<<2)>>2];n=n+1|0}while((n|0)!=(k|0));}n=c[m>>2]|0;l=d+16|0;if(!n)o=k;else{if(!(a[l>>0]|0))p=k;else{c[3710]=(c[3710]|0)+1;xs(c[n+-4>>2]|0);p=c[b>>2]|0}c[m>>2]=0;o=p}a[l>>0]=1;c[m>>2]=j;c[h>>2]=i;q=o;r=c[e>>2]|0}else{q=f;r=g}c[(c[d+12>>2]|0)+(q<<2)>>2]=r;c[b>>2]=q+1;return}function pq(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,Y=0,Z=0,_=0.0,$=0.0,aa=0.0,ba=0.0,ca=0.0,da=0.0,ea=0,fa=0.0,ga=0.0,ha=0.0,ia=0.0,ja=0.0,ka=0.0,la=0.0,ma=0.0,na=0.0,oa=0.0,pa=0.0,qa=0.0,ra=0.0,sa=0.0,ta=0.0,ua=0.0,va=0.0,wa=0.0,xa=0.0,ya=0.0,za=0.0,Aa=0.0,Ba=0.0,Ca=0.0,Da=0.0,Ea=0.0,Fa=0.0,Ga=0.0,Ha=0.0,Ia=0.0,Ja=0.0,Ka=0.0,La=0.0,Ma=0.0,Na=0.0,Oa=0.0,Pa=0.0,Qa=0,Ra=0,Sa=0,Ta=0.0,Ua=0,Va=0,Wa=0,Xa=0.0,Ya=0,Za=0,_a=0,$a=0.0,ab=0,bb=0,cb=0,db=0.0,eb=0,fb=0,gb=0,hb=0.0,ib=0,jb=0,kb=0,lb=0.0,mb=0,nb=0,ob=0,pb=0,qb=0,rb=0,sb=0.0,tb=0,ub=0,vb=0,wb=0,xb=0,yb=0,zb=0.0,Ab=0,Bb=0,Cb=0,Db=0,Eb=0,Fb=0,Gb=0.0,Hb=0,Ib=0,Jb=0,Kb=0,Lb=0,Mb=0,Nb=0.0,Ob=0,Pb=0,Qb=0,Rb=0,Sb=0,Tb=0,Ub=0.0,Vb=0,Wb=0,Xb=0,Yb=0,_b=0,$b=0,ac=0.0,bc=0,cc=0,dc=0,ec=0,fc=0,gc=0,hc=0.0,ic=0,jc=0,kc=0,lc=0,mc=0,nc=0,pc=0.0,qc=0,rc=0,sc=0,tc=0,uc=0,vc=0,wc=0.0,xc=0.0,yc=0.0,zc=0.0,Ac=0,Bc=0,Cc=0,Dc=0,Ec=0,Fc=0.0,Gc=0,Hc=0,Ic=0,Jc=0.0,Kc=0.0,Lc=0.0,Mc=0.0,Nc=0,Oc=0,Pc=0,Qc=0.0,Rc=0,Sc=0,Tc=0,Uc=0,Vc=0,Wc=0,Xc=0.0,Yc=0.0,Zc=0.0,_c=0,$c=0,ad=0,bd=0,cd=0.0,dd=0.0,ed=0,fd=0,gd=0,hd=0,id=0,jd=0,kd=0.0,ld=0.0,md=0,nd=0,od=0,pd=0,qd=0,rd=0,sd=0,td=0,ud=0,vd=0,wd=0.0,xd=0.0,yd=0,zd=0,Ad=0,Bd=0,Cd=0,Dd=0,Ed=0,Fd=0,Gd=0,Hd=0.0;f=i;i=i+656|0;e=f+592|0;h=f+560|0;j=f+548|0;l=f+536|0;m=f+520|0;n=f+504|0;o=f+488|0;p=f+456|0;q=f+448|0;r=f+384|0;s=f+288|0;t=f+256|0;u=f+240|0;v=f+224|0;w=f+208|0;x=f+192|0;y=f+160|0;z=f+144|0;A=f+128|0;B=f+112|0;C=f+96|0;D=f+48|0;E=f;c[D>>2]=c[b>>2];c[E>>2]=c[b+64>>2];F=D+4|0;c[F>>2]=c[b+4>>2];G=E+4|0;c[G>>2]=c[b+68>>2];H=D+8|0;c[H>>2]=c[b+8>>2];I=E+8|0;c[I>>2]=c[b+72>>2];J=D+16|0;c[J>>2]=c[b+16>>2];K=E+16|0;c[K>>2]=c[b+80>>2];L=D+20|0;c[L>>2]=c[b+20>>2];M=E+20|0;c[M>>2]=c[b+84>>2];N=D+24|0;c[N>>2]=c[b+24>>2];Q=E+24|0;c[Q>>2]=c[b+88>>2];R=D+32|0;c[R>>2]=c[b+32>>2];S=E+32|0;c[S>>2]=c[b+96>>2];T=D+36|0;c[T>>2]=c[b+36>>2];U=E+36|0;c[U>>2]=c[b+100>>2];V=D+40|0;c[V>>2]=c[b+40>>2];W=E+40|0;c[W>>2]=c[b+104>>2];Y=b+48|0;Z=c[a+4>>2]|0;_=+g[Z+32>>2];$=+g[Z+36>>2];aa=+g[Z+40>>2];ba=+Zb[c[(c[Z>>2]|0)+48>>2]&7](Z);ca=+Zb[c[(c[Z>>2]|0)+48>>2]&7](Z);da=(aa+ +Zb[c[(c[Z>>2]|0)+48>>2]&7](Z))*2.0;Z=b+112|0;ea=c[a+8>>2]|0;aa=+g[ea+32>>2];fa=+g[ea+36>>2];ga=+g[ea+40>>2];ha=+Zb[c[(c[ea>>2]|0)+48>>2]&7](ea);ia=+Zb[c[(c[ea>>2]|0)+48>>2]&7](ea);ja=(ga+ +Zb[c[(c[ea>>2]|0)+48>>2]&7](ea))*2.0;ga=+g[Z>>2]-+g[Y>>2];ea=b+52|0;ka=+g[b+116>>2]-+g[ea>>2];a=b+56|0;la=+g[b+120>>2]-+g[a>>2];ma=+g[D>>2];na=+g[J>>2];oa=+g[R>>2];pa=ga*ma+ka*na+la*oa;qa=+g[F>>2];ra=+g[L>>2];sa=+g[T>>2];ta=ga*qa+ka*ra+la*sa;ua=+g[H>>2];va=+g[N>>2];wa=+g[V>>2];xa=ga*ua+ka*va+la*wa;ya=(_+ba)*2.0*.5;g[j>>2]=ya;ba=($+ca)*2.0*.5;g[j+4>>2]=ba;ca=da*.5;g[j+8>>2]=ca;da=(aa+ha)*2.0*.5;g[l>>2]=da;ha=(fa+ia)*2.0*.5;g[l+4>>2]=ha;ia=ja*.5;g[l+8>>2]=ia;ja=+g[E>>2];fa=+g[K>>2];aa=+g[S>>2];$=ma*ja+na*fa+oa*aa;_=+g[G>>2];za=+g[M>>2];Aa=+g[U>>2];Ba=ma*_+na*za+oa*Aa;Ca=+g[I>>2];Da=+g[Q>>2];Ea=+g[W>>2];Fa=ma*Ca+na*Da+oa*Ea;oa=ja*qa+fa*ra+aa*sa;na=_*qa+za*ra+Aa*sa;ma=Ca*qa+Da*ra+Ea*sa;sa=ja*ua+fa*va+aa*wa;ra=_*ua+za*va+Aa*wa;qa=Ca*ua+Da*va+Ea*wa;Ga=+O(+$);Ha=+O(+Ba);Ia=+O(+Fa);Ja=+O(+oa);Ka=+O(+na);La=+O(+ma);Ma=+O(+sa);Na=+O(+ra);Oa=+O(+qa);Pa=+O(+pa)-(ia*Ia+(ya+Ga*da+Ha*ha));if(Pa>0.0){i=f;return}if(Pa>-3402823466385288598117041.0e14){Qa=1;Ra=pa<0.0&1;Sa=D;Ta=Pa}else{Qa=0;Ra=0;Sa=0;Ta=-3402823466385288598117041.0e14}Pa=+O(+ta)-(ba+Ja*da+Ka*ha+La*ia);if(Pa>0.0){i=f;return}if(Pa>Ta){Ua=2;Va=ta<0.0&1;Wa=F;Xa=Pa}else{Ua=Qa;Va=Ra;Wa=Sa;Xa=Ta}Ta=+O(+xa)-(ca+Ma*da+Na*ha+Oa*ia);if(Ta>0.0){i=f;return}if(Ta>Xa){Ya=3;Za=xa<0.0&1;_a=H;$a=Ta}else{Ya=Ua;Za=Va;_a=Wa;$a=Xa}Xa=ga*ja+ka*fa+la*aa;Ta=+O(+Xa)-(da+(Ga*ya+Ja*ba+Ma*ca));if(Ta>0.0){i=f;return}if(Ta>$a){ab=4;bb=Xa<0.0&1;cb=E;db=Ta}else{ab=Ya;bb=Za;cb=_a;db=$a}$a=ga*_+ka*za+la*Aa;Ta=+O(+$a)-(ha+(Ha*ya+Ka*ba+Na*ca));if(Ta>0.0){i=f;return}if(Ta>db){eb=5;fb=$a<0.0&1;gb=G;hb=Ta}else{eb=ab;fb=bb;gb=cb;hb=db}db=ga*Ca+ka*Da+la*Ea;la=+O(+db)-(ia+(Ia*ya+La*ba+Oa*ca));if(la>0.0){i=f;return}if(la>hb){ib=6;jb=db<0.0&1;kb=I;lb=la}else{ib=eb;jb=fb;kb=gb;lb=hb}hb=Ga+9.999999747378752e-06;Ga=Ha+9.999999747378752e-06;Ha=Ia+9.999999747378752e-06;Ia=Ja+9.999999747378752e-06;Ja=Ka+9.999999747378752e-06;Ka=La+9.999999747378752e-06;La=Ma+9.999999747378752e-06;Ma=Na+9.999999747378752e-06;Na=Oa+9.999999747378752e-06;Oa=xa*oa-ta*sa;la=+O(+Oa)-(La*ba+Ia*ca+Ha*ha+Ga*ia);if(la>1.1920928955078125e-07){i=f;return}db=-sa;ka=sa*sa+0.0;ga=oa*oa;Ta=+P(+(ga+ka));if(Ta>1.1920928955078125e-07?($a=la/Ta,$a*1.0499999523162842>lb):0){gb=(g[k>>2]=0.0/Ta,c[k>>2]|0);fb=(g[k>>2]=db/Ta,c[k>>2]|0);mb=(g[k>>2]=oa/Ta,c[k>>2]|0);nb=fb;ob=gb;pb=7;qb=Oa<0.0&1;rb=0;sb=$a}else{mb=0;nb=0;ob=0;pb=ib;qb=jb;rb=kb;sb=lb}lb=xa*na-ta*ra;$a=+O(+lb)-(Ma*ba+Ja*ca+Ha*da+hb*ia);if($a>1.1920928955078125e-07){i=f;return}Oa=-ra;Ta=ra*ra+0.0;db=na*na;la=+P(+(db+Ta));if(la>1.1920928955078125e-07?(Xa=$a/la,Xa*1.0499999523162842>sb):0){kb=(g[k>>2]=0.0/la,c[k>>2]|0);jb=(g[k>>2]=Oa/la,c[k>>2]|0);tb=(g[k>>2]=na/la,c[k>>2]|0);ub=jb;vb=kb;wb=8;xb=lb<0.0&1;yb=0;zb=Xa}else{tb=mb;ub=nb;vb=ob;wb=pb;xb=qb;yb=rb;zb=sb}sb=xa*ma-ta*qa;Xa=+O(+sb)-(Na*ba+Ka*ca+Ga*da+hb*ha);if(Xa>1.1920928955078125e-07){i=f;return}lb=-qa;la=qa*qa+0.0;Oa=ma*ma;$a=+P(+(Oa+la));if($a>1.1920928955078125e-07?(Pa=Xa/$a,Pa*1.0499999523162842>zb):0){rb=(g[k>>2]=0.0/$a,c[k>>2]|0);qb=(g[k>>2]=lb/$a,c[k>>2]|0);Ab=(g[k>>2]=ma/$a,c[k>>2]|0);Bb=qb;Cb=rb;Db=9;Eb=sb<0.0&1;Fb=0;Gb=Pa}else{Ab=tb;Bb=ub;Cb=vb;Db=wb;Eb=xb;Fb=yb;Gb=zb}zb=pa*sa-xa*$;Pa=+O(+zb)-(La*ya+hb*ca+Ka*ha+Ja*ia);if(Pa>1.1920928955078125e-07){i=f;return}sb=-$;$a=$*$;lb=+P(+($a+ka));do if(lb>1.1920928955078125e-07){ka=Pa/lb;if(!(ka*1.0499999523162842>Gb)){Hb=Ab;Ib=Bb;Jb=Cb;Kb=Db;Lb=Eb;Mb=Fb;Nb=Gb;break}yb=(g[k>>2]=sa/lb,c[k>>2]|0);xb=(g[k>>2]=0.0/lb,c[k>>2]|0);Hb=(g[k>>2]=sb/lb,c[k>>2]|0);Ib=xb;Jb=yb;Kb=10;Lb=zb<0.0&1;Mb=0;Nb=ka}else{Hb=Ab;Ib=Bb;Jb=Cb;Kb=Db;Lb=Eb;Mb=Fb;Nb=Gb}while(0);Gb=pa*ra-xa*Ba;zb=+O(+Gb)-(Ma*ya+Ga*ca+Ka*da+Ia*ia);if(zb>1.1920928955078125e-07){i=f;return}lb=-Ba;sb=Ba*Ba;sa=+P(+(sb+Ta));do if(sa>1.1920928955078125e-07){Ta=zb/sa;if(!(Ta*1.0499999523162842>Nb)){Ob=Hb;Pb=Ib;Qb=Jb;Rb=Kb;Sb=Lb;Tb=Mb;Ub=Nb;break}Fb=(g[k>>2]=ra/sa,c[k>>2]|0);Eb=(g[k>>2]=0.0/sa,c[k>>2]|0);Ob=(g[k>>2]=lb/sa,c[k>>2]|0);Pb=Eb;Qb=Fb;Rb=11;Sb=Gb<0.0&1;Tb=0;Ub=Ta}else{Ob=Hb;Pb=Ib;Qb=Jb;Rb=Kb;Sb=Lb;Tb=Mb;Ub=Nb}while(0);Nb=pa*qa-xa*Fa;xa=+O(+Nb)-(Na*ya+Ha*ca+Ja*da+Ia*ha);if(xa>1.1920928955078125e-07){i=f;return}Gb=-Fa;sa=Fa*Fa;lb=+P(+(sa+la));do if(lb>1.1920928955078125e-07){la=xa/lb;if(!(la*1.0499999523162842>Ub)){Vb=Ob;Wb=Pb;Xb=Qb;Yb=Rb;_b=Sb;$b=Tb;ac=Ub;break}Mb=(g[k>>2]=qa/lb,c[k>>2]|0);Lb=(g[k>>2]=0.0/lb,c[k>>2]|0);Vb=(g[k>>2]=Gb/lb,c[k>>2]|0);Wb=Lb;Xb=Mb;Yb=12;_b=Nb<0.0&1;$b=0;ac=la}else{Vb=Ob;Wb=Pb;Xb=Qb;Yb=Rb;_b=Sb;$b=Tb;ac=Ub}while(0);Ub=ta*$-pa*oa;Nb=+O(+Ub)-(Ia*ya+hb*ba+Na*ha+Ma*ia);if(Nb>1.1920928955078125e-07){i=f;return}hb=-oa;oa=+P(+($a+ga+0.0));do if(oa>1.1920928955078125e-07){ga=Nb/oa;if(!(ga*1.0499999523162842>ac)){bc=Vb;cc=Wb;dc=Xb;ec=Yb;fc=_b;gc=$b;hc=ac;break}Tb=(g[k>>2]=hb/oa,c[k>>2]|0);Sb=(g[k>>2]=$/oa,c[k>>2]|0);bc=(g[k>>2]=0.0/oa,c[k>>2]|0);cc=Sb;dc=Tb;ec=13;fc=Ub<0.0&1;gc=0;hc=ga}else{bc=Vb;cc=Wb;dc=Xb;ec=Yb;fc=_b;gc=$b;hc=ac}while(0);ac=ta*Ba-pa*na;Ub=+O(+ac)-(Ja*ya+Ga*ba+Na*da+La*ia);if(Ub>1.1920928955078125e-07){i=f;return}Na=-na;na=+P(+(sb+db+0.0));do if(na>1.1920928955078125e-07){db=Ub/na;if(!(db*1.0499999523162842>hc)){ic=bc;jc=cc;kc=dc;lc=ec;mc=fc;nc=gc;pc=hc;break}$b=(g[k>>2]=Na/na,c[k>>2]|0);_b=(g[k>>2]=Ba/na,c[k>>2]|0);ic=(g[k>>2]=0.0/na,c[k>>2]|0);jc=_b;kc=$b;lc=14;mc=ac<0.0&1;nc=0;pc=db}else{ic=bc;jc=cc;kc=dc;lc=ec;mc=fc;nc=gc;pc=hc}while(0);hc=ta*Fa-pa*ma;pa=+O(+hc)-(Ka*ya+Ha*ba+Ma*da+La*ha);if(pa>1.1920928955078125e-07){i=f;return}La=-ma;ma=+P(+(sa+Oa+0.0));do if(ma>1.1920928955078125e-07){Oa=pa/ma;if(!(Oa*1.0499999523162842>pc)){qc=55;break}gc=(g[k>>2]=La/ma,c[k>>2]|0);fc=(g[k>>2]=Fa/ma,c[k>>2]|0);rc=gc;sc=fc;tc=(g[k>>2]=0.0/ma,c[k>>2]|0);uc=15;vc=hc<0.0&1;wc=Oa;qc=58}else qc=55;while(0);do if((qc|0)==55){if(!lc){i=f;return}if(!nc){rc=kc;sc=jc;tc=ic;uc=lc;vc=mc;wc=pc;qc=58;break}fc=c[nc>>2]|0;gc=c[nc+16>>2]|0;ec=c[nc+32>>2]|0;hc=(c[k>>2]=fc,+g[k>>2]);ma=(c[k>>2]=gc,+g[k>>2]);xc=hc;yc=ma;zc=(c[k>>2]=ec,+g[k>>2]);Ac=lc;Bc=mc;Cc=fc;Dc=gc;Ec=ec;Fc=pc}while(0);if((qc|0)==58){pc=(c[k>>2]=rc,+g[k>>2]);ma=(c[k>>2]=sc,+g[k>>2]);hc=(c[k>>2]=tc,+g[k>>2]);Fa=pc*+g[D>>2]+ma*+g[F>>2]+hc*ua;tc=(g[k>>2]=Fa,c[k>>2]|0);La=pc*+g[J>>2]+ma*+g[L>>2]+hc*va;sc=(g[k>>2]=La,c[k>>2]|0);pa=pc*+g[R>>2]+ma*+g[T>>2]+hc*wa;xc=Fa;yc=La;zc=pa;Ac=uc;Bc=vc;Cc=tc;Dc=sc;Ec=(g[k>>2]=pa,c[k>>2]|0);Fc=wc}if(!Bc){Gc=Cc;Hc=Dc;Ic=Ec}else{Ec=(g[k>>2]=-xc,c[k>>2]|0);Dc=(g[k>>2]=-yc,c[k>>2]|0);Gc=Ec;Hc=Dc;Ic=(g[k>>2]=-zc,c[k>>2]|0);}if((Ac|0)>6){zc=(c[k>>2]=Gc,+g[k>>2]);yc=(c[k>>2]=Hc,+g[k>>2]);xc=(c[k>>2]=Ic,+g[k>>2]);wc=+g[D>>2];pa=+g[J>>2];La=+g[R>>2];Fa=(zc*wc+yc*pa+xc*La>0.0?1.0:-1.0)*ya;ya=+g[F>>2];hc=+g[L>>2];ma=+g[T>>2];pc=(zc*ya+yc*hc+xc*ma>0.0?1.0:-1.0)*ba;ba=(zc*ua+yc*va+xc*wa>0.0?1.0:-1.0)*ca;ca=+g[b+48>>2]+Fa*wc+pc*ya+ba*ua;ya=+g[ea>>2]+Fa*pa+pc*hc+ba*va;hc=+g[a>>2]+Fa*La+pc*ma+ba*wa;c[m>>2]=c[Z>>2];c[m+4>>2]=c[Z+4>>2];c[m+8>>2]=c[Z+8>>2];ba=(zc*ja+yc*fa+xc*aa>0.0?-1.0:1.0)*da;a=m+4|0;ea=m+8|0;da=(zc*_+yc*za+xc*Aa>0.0?-1.0:1.0)*ha;ha=+g[a>>2]+ba*fa+da*za;za=+g[ea>>2]+ba*aa+da*Aa;Aa=(zc*Ca+yc*Da+xc*Ea>0.0?-1.0:1.0)*ia;ia=+g[m>>2]+ba*ja+da*_+Aa*Ca;g[m>>2]=ia;_=ha+Aa*Da;g[a>>2]=_;ha=za+Aa*Ea;g[ea>>2]=ha;b=Ac+-7|0;T=(b|0)/3|0;Aa=+g[D+(T<<2)>>2];za=+g[D+(T+4<<2)>>2];da=+g[D+(T+8<<2)>>2];T=(b|0)%3|0;ja=+g[E+(T<<2)>>2];ba=+g[E+(T+4<<2)>>2];aa=+g[E+(T+8<<2)>>2];fa=ia-ca;ca=_-ya;ya=ha-hc;hc=Aa*ja+za*ba+da*aa;ma=1.0-hc*hc;if(!(ma<=9.999999747378752e-05))Jc=((fa*Aa+ca*za+ya*da)*hc-(fa*ja+ca*ba+ya*aa))*(1.0/ma);else Jc=0.0;g[m>>2]=ia+Jc*ja;g[a>>2]=_+Jc*ba;g[ea>>2]=ha+Jc*aa;ea=c[(c[d>>2]|0)+16>>2]|0;g[n>>2]=-zc;g[n+4>>2]=-yc;g[n+8>>2]=-xc;g[n+12>>2]=0.0;oc[ea&7](d,n,m,Fc);i=f;return}m=(Ac|0)<4;Fc=(c[k>>2]=Gc,+g[k>>2]);if(m){Kc=Da;Lc=Ea;Mc=Ca;Nc=E;Oc=Hc;Pc=Ic;Qc=Fc;Rc=l;Sc=Z;Tc=Y;Uc=D;Vc=j;Wc=E}else{Gc=(g[k>>2]=-(c[k>>2]=Hc,+g[k>>2]),c[k>>2]|0);Kc=va;Lc=wa;Mc=ua;Nc=D;Oc=Gc;Pc=(g[k>>2]=-(c[k>>2]=Ic,+g[k>>2]),c[k>>2]|0);Qc=-Fc;Rc=j;Sc=Y;Tc=Z;Uc=E;Vc=l;Wc=D}ua=(c[k>>2]=Oc,+g[k>>2]);wa=(c[k>>2]=Pc,+g[k>>2]);va=Qc*+g[Wc>>2]+ua*+g[Nc+16>>2]+wa*+g[Nc+32>>2];g[o>>2]=va;Ca=Qc*+g[Nc+4>>2]+ua*+g[Nc+20>>2]+wa*+g[Nc+36>>2];g[o+4>>2]=Ca;Ea=Qc*Mc+ua*Kc+wa*Lc;g[o+8>>2]=Ea;Lc=+O(+va);va=+O(+Ca);Ca=+O(+Ea);Wc=va>Lc;Pc=va>Ca;Oc=Lc>Ca;D=Wc?(Pc?1:2):Oc?0:2;l=Wc?0:Oc&1;E=(Wc?Pc:Oc)?2:1;Ca=+g[Rc+(D<<2)>>2];Lc=+g[Sc>>2]-+g[Tc>>2];va=Ca*+g[Nc+(D<<2)>>2];Ea=+g[Sc+4>>2];Oc=Tc+4|0;Kc=+g[Oc>>2];Mc=+g[Sc+8>>2];Sc=Tc+8|0;Da=+g[Sc>>2];if(+g[o+(D<<2)>>2]<0.0){Xc=Lc+va;Yc=Ea-Kc+Ca*+g[Nc+((D|4)<<2)>>2];Zc=Mc-Da+Ca*+g[Nc+((D|8)<<2)>>2]}else{Xc=Lc-va;Yc=Ea-Kc-Ca*+g[Nc+((D|4)<<2)>>2];Zc=Mc-Da-Ca*+g[Nc+((D|8)<<2)>>2]}D=(m?-1:-4)+Ac|0;if((D|0)==1){_c=0;$c=2}else if(!D){_c=1;$c=2}else{_c=0;$c=1}Ca=+g[Uc+(_c<<2)>>2];Da=+g[Uc+((_c|4)<<2)>>2];Mc=+g[Uc+((_c|8)<<2)>>2];Kc=Xc*Ca+Yc*Da+Zc*Mc;Ea=+g[Uc+($c<<2)>>2];va=+g[Uc+(($c|4)<<2)>>2];Lc=+g[Uc+(($c|8)<<2)>>2];xc=Xc*Ea+Yc*va+Zc*Lc;Uc=Nc+(l<<2)|0;yc=+g[Uc>>2];Ac=Nc+((l|4)<<2)|0;zc=+g[Ac>>2];o=Nc+((l|8)<<2)|0;aa=+g[o>>2];Jc=Ca*yc+Da*zc+Mc*aa;Pc=Nc+(E<<2)|0;ha=+g[Pc>>2];Wc=Nc+((E|4)<<2)|0;ba=+g[Wc>>2];Z=Nc+((E|8)<<2)|0;_=+g[Z>>2];ja=Ca*ha+Da*ba+Mc*_;Mc=Ea*yc+va*zc+Lc*aa;aa=Ea*ha+va*ba+Lc*_;_=+g[Rc+(l<<2)>>2];Lc=Jc*_;ba=Mc*_;_=+g[Rc+(E<<2)>>2];va=ja*_;ha=aa*_;_=Kc-Lc;g[p>>2]=_-va;Ea=xc-ba;g[p+4>>2]=Ea-ha;g[p+8>>2]=_+va;g[p+12>>2]=Ea+ha;Ea=Kc+Lc;g[p+16>>2]=Ea+va;Lc=xc+ba;g[p+20>>2]=Lc+ha;g[p+24>>2]=Ea-va;g[p+28>>2]=Lc-ha;c[q>>2]=c[Vc+(_c<<2)>>2];c[q+4>>2]=c[Vc+($c<<2)>>2];$c=0;_c=4;E=p;p=r;a:while(1){Rc=q+($c<<2)|0;l=1-$c|0;do if((_c|0)>0){Nc=_c;Y=0;j=E;Gc=p;while(1){n=j+($c<<2)|0;ha=+g[n>>2];Lc=+g[Rc>>2];if(Lc>-ha){c[Gc>>2]=c[j>>2];c[Gc+4>>2]=c[j+4>>2];ea=Y+1|0;if(ea&8){ad=ea;bd=p;break a}cd=+g[n>>2];dd=+g[Rc>>2];ed=ea;fd=Gc+8|0}else{cd=ha;dd=Lc;ed=Y;fd=Gc}ea=(Nc|0)>1;n=j;j=j+8|0;a=ea?j:E;Lc=+g[a+($c<<2)>>2];if(dd>-cd^dd>-Lc){ha=+g[n+(l<<2)>>2];g[fd+(l<<2)>>2]=ha+(-dd-cd)*((+g[a+(l<<2)>>2]-ha)/(Lc-cd));g[fd+($c<<2)>>2]=-+g[Rc>>2];a=ed+1|0;if(!(a&8)){gd=a;hd=fd+8|0}else{ad=a;bd=p;break a}}else{gd=ed;hd=fd}if(!ea)break;else{Nc=Nc+-1|0;Y=gd;Gc=hd}}Gc=(p|0)==(r|0)?e:r;if((gd|0)<=0){id=Gc;jd=0;break}Y=gd;Nc=0;j=p;ea=Gc;while(1){a=j+($c<<2)|0;Lc=+g[a>>2];ha=+g[Rc>>2];if(Lc<ha){c[ea>>2]=c[j>>2];c[ea+4>>2]=c[j+4>>2];n=Nc+1|0;if(n&8){ad=n;bd=Gc;break a}kd=+g[Rc>>2];ld=+g[a>>2];md=n;nd=ea+8|0}else{kd=ha;ld=Lc;md=Nc;nd=ea}n=(Y|0)>1;a=j;j=j+8|0;T=n?j:p;Lc=+g[T+($c<<2)>>2];if(ld<kd^Lc<kd){ha=+g[a+(l<<2)>>2];g[nd+(l<<2)>>2]=ha+(kd-ld)*((+g[T+(l<<2)>>2]-ha)/(Lc-ld));c[nd+($c<<2)>>2]=c[Rc>>2];T=md+1|0;if(!(T&8)){od=T;pd=nd+8|0}else{ad=T;bd=Gc;break a}}else{od=md;pd=nd}if(!n){id=Gc;jd=od;break}else{Y=Y+-1|0;Nc=od;ea=pd}}}else{id=(p|0)==(r|0)?e:r;jd=0}while(0);$c=$c+1|0;if(($c|0)>=2){ad=jd;bd=id;break}else{_c=jd;E=id;p=(id|0)==(r|0)?e:r}}if((bd|0)!=(r|0))Gs(r|0,bd|0,ad<<3|0)|0;if((ad|0)>=1){ld=1.0/(Jc*aa-Mc*ja);kd=Jc*ld;Jc=ja*ld;ja=Mc*ld;Mc=aa*ld;ld=+g[Vc+(D<<2)>>2];aa=+g[Uc>>2];cd=+g[Pc>>2];dd=+g[Ac>>2];Lc=+g[Wc>>2];ha=+g[o>>2];va=+g[Z>>2];Z=0;o=0;while(1){Wc=o<<1;Ea=+g[r+(Wc<<2)>>2];ba=Ea-Kc;_=+g[r+((Wc|1)<<2)>>2];zc=_-xc;yc=Mc*ba-Jc*zc;Da=kd*zc-ja*ba;Wc=Z*3|0;ba=Xc+yc*aa+Da*cd;g[s+(Wc<<2)>>2]=ba;zc=Yc+yc*dd+Da*Lc;g[s+(Wc+1<<2)>>2]=zc;Ca=Zc+yc*ha+Da*va;g[s+(Wc+2<<2)>>2]=Ca;Da=ld-(Qc*ba+ua*zc+wa*Ca);g[t+(Z<<2)>>2]=Da;if(!(Da>=0.0))qd=Z;else{Wc=Z<<1;g[r+(Wc<<2)>>2]=Ea;g[r+((Wc|1)<<2)>>2]=_;qd=Z+1|0}o=o+1|0;if((o|0)==(ad|0))break;else Z=qd}b:do if((qd|0)>=1){Z=(qd|0)<4?qd:4;ad=(Z|0)<1?1:Z;if((qd|0)<=(ad|0))if(m){Z=v+4|0;o=v+8|0;Wc=v+12|0;Ac=u+4|0;Pc=u+8|0;wa=-Fc;ua=-(c[k>>2]=Hc,+g[k>>2]);Qc=-(c[k>>2]=Ic,+g[k>>2]);Uc=0;while(1){D=Uc*3|0;g[u>>2]=+g[s+(D<<2)>>2]+ +g[Tc>>2];g[Ac>>2]=+g[s+(D+1<<2)>>2]+ +g[Oc>>2];g[Pc>>2]=+g[s+(D+2<<2)>>2]+ +g[Sc>>2];D=c[(c[d>>2]|0)+16>>2]|0;g[v>>2]=wa;g[Z>>2]=ua;g[o>>2]=Qc;g[Wc>>2]=0.0;oc[D&7](d,v,u,-+g[t+(Uc<<2)>>2]);Uc=Uc+1|0;if((Uc|0)==(qd|0))break b}}else{Uc=x+4|0;Wc=x+8|0;o=x+12|0;Z=w+4|0;Pc=w+8|0;Qc=(c[k>>2]=Hc,+g[k>>2]);ua=(c[k>>2]=Ic,+g[k>>2]);wa=-Fc;ld=-Qc;va=-ua;Ac=0;while(1){D=Ac*3|0;ha=+g[t+(Ac<<2)>>2];g[w>>2]=+g[s+(D<<2)>>2]+ +g[Tc>>2]-Fc*ha;g[Z>>2]=+g[s+(D+1<<2)>>2]+ +g[Oc>>2]-Qc*ha;g[Pc>>2]=+g[s+(D+2<<2)>>2]+ +g[Sc>>2]-ua*ha;D=c[(c[d>>2]|0)+16>>2]|0;g[x>>2]=wa;g[Uc>>2]=ld;g[Wc>>2]=va;g[o>>2]=0.0;oc[D&7](d,x,w,-ha);Ac=Ac+1|0;if((Ac|0)==(qd|0))break b}}do if((qd|0)>1){Ac=1;o=0;va=+g[t>>2];while(1){ld=+g[t+(Ac<<2)>>2];Wc=ld>va;o=Wc?Ac:o;Ac=Ac+1|0;if((Ac|0)==(qd|0))break;else va=Wc?ld:va}if((qd|0)==1){rd=y;sd=1;td=o;qc=111;break}else if((qd|0)==2){ud=y;vd=2;wd=(+g[r>>2]+ +g[r+8>>2])*.5;xd=(+g[r+4>>2]+ +g[r+12>>2])*.5;yd=o;qc=115;break}Ac=qd+-1|0;va=0.0;ld=0.0;wa=0.0;Wc=0;do{Uc=Wc<<1;ua=+g[r+(Uc<<2)>>2];Qc=+g[r+(Uc+3<<2)>>2];ha=+g[r+(Uc+2<<2)>>2];Zc=+g[r+((Uc|1)<<2)>>2];Lc=ua*Qc-ha*Zc;va=va+Lc;ld=ld+(ua+ha)*Lc;wa=wa+(Qc+Zc)*Lc;Wc=Wc+1|0}while((Wc|0)!=(Ac|0));Ac=qd<<1;Lc=+g[r+(Ac+-2<<2)>>2];Zc=+g[r+4>>2];Qc=+g[r>>2];ha=+g[r+(Ac+-1<<2)>>2];ua=Lc*Zc-Qc*ha;dd=va+ua;Ac=+O(+dd)>1.1920928955078125e-07;Yc=Ac?1.0/(dd*3.0):999999984306749440.0;if((qd|0)>0){ud=y;vd=qd;wd=Yc*(ld+(Lc+Qc)*ua);xd=Yc*(wa+(Zc+ha)*ua);yd=o;qc=115}else{zd=y;Ad=0;Bd=qd;Cd=o}}else{rd=y;sd=qd;td=0;qc=111}while(0);if((qc|0)==111){ud=rd;vd=sd;wd=+g[r>>2];xd=+g[r+4>>2];yd=td;qc=115}if((qc|0)==115){Ac=0;do{Wc=Ac<<1;g[e+(Ac<<2)>>2]=+X(+(+g[r+((Wc|1)<<2)>>2]-xd),+(+g[r+(Wc<<2)>>2]-wd));Ac=Ac+1|0}while((Ac|0)!=(vd|0));Dd=0;do{c[h+(Dd<<2)>>2]=1;Dd=Dd+1|0}while((Dd|0)!=(vd|0));zd=ud;Ad=1;Bd=vd;Cd=yd}Ac=h+(Cd<<2)|0;c[Ac>>2]=0;c[zd>>2]=Cd;Wc=y+4|0;c:do if((ad|0)>1){ua=6.2831854820251465/+(ad|0);ha=+g[e+(Cd<<2)>>2];if(Ad){Ed=Wc;Fd=1}else{Uc=Wc;Pc=1;while(1){c[Uc>>2]=Cd;c[Ac>>2]=0;Pc=Pc+1|0;if((Pc|0)==(ad|0))break c;else Uc=Uc+4|0}}while(1){wa=+(Fd|0)*ua+ha;ld=wa>3.1415927410125732?wa+-6.2831854820251465:wa;c[Ed>>2]=Cd;Uc=Cd;Pc=0;wa=1.0e9;while(1){do if(!(c[h+(Pc<<2)>>2]|0)){Gd=Uc;Hd=wa}else{va=+O(+(+g[e+(Pc<<2)>>2]-ld));Zc=va>3.1415927410125732?6.2831854820251465-va:va;if(!(Zc<wa)){Gd=Uc;Hd=wa;break}c[Ed>>2]=Pc;Gd=Pc;Hd=Zc}while(0);Pc=Pc+1|0;if((Pc|0)==(Bd|0))break;else{Uc=Gd;wa=Hd}}c[h+(Gd<<2)>>2]=0;Fd=Fd+1|0;if((Fd|0)==(ad|0))break;else Ed=Ed+4|0}}while(0);if((ad|0)<=0)break;Ac=A+4|0;Wc=A+8|0;Uc=A+12|0;Pc=B+4|0;o=B+8|0;Z=B+12|0;D=z+4|0;Vc=z+8|0;bd=C+4|0;id=C+8|0;p=C+12|0;ha=(c[k>>2]=Ic,+g[k>>2]);ua=-ha;wa=(c[k>>2]=Hc,+g[k>>2]);ld=-wa;Zc=-Fc;if(m){E=0;do{jd=c[y+(E<<2)>>2]|0;_c=jd*3|0;g[z>>2]=+g[s+(_c<<2)>>2]+ +g[Tc>>2];g[D>>2]=+g[s+(_c+1<<2)>>2]+ +g[Oc>>2];g[Vc>>2]=+g[s+(_c+2<<2)>>2]+ +g[Sc>>2];_c=c[(c[d>>2]|0)+16>>2]|0;g[A>>2]=Zc;g[Ac>>2]=ld;g[Wc>>2]=ua;g[Uc>>2]=0.0;oc[_c&7](d,A,z,-+g[t+(jd<<2)>>2]);E=E+1|0}while((E|0)<(ad|0));}else{E=0;do{Uc=c[y+(E<<2)>>2]|0;Wc=Uc*3|0;va=+g[s+(Wc<<2)>>2]+ +g[Tc>>2];g[z>>2]=va;Yc=+g[s+(Wc+1<<2)>>2]+ +g[Oc>>2];g[D>>2]=Yc;Qc=+g[s+(Wc+2<<2)>>2]+ +g[Sc>>2];g[Vc>>2]=Qc;Wc=c[(c[d>>2]|0)+16>>2]|0;g[B>>2]=Zc;g[Pc>>2]=ld;g[o>>2]=ua;g[Z>>2]=0.0;Lc=+g[t+(Uc<<2)>>2];g[C>>2]=va-Fc*Lc;g[bd>>2]=Yc-Lc*wa;g[id>>2]=Qc-Lc*ha;g[p>>2]=0.0;oc[Wc&7](d,B,C,-Lc);E=E+1|0}while((E|0)<(ad|0));}}while(0);}i=f;return}function qq(a){a=a|0;xs(a);return}function rq(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;c[b+4>>2]=c[d>>2];c[b>>2]=12976;a[b+24>>0]=1;c[b+20>>2]=0;c[b+12>>2]=0;c[b+16>>2]=0;a[b+28>>0]=g&1;c[b+32>>2]=c[d+4>>2];a[b+36>>0]=0;c[b+40>>2]=c[(c[(g?f:e)+4>>2]|0)+72>>2];sq(b,e,f);return}function sq(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;f=i;i=i+32|0;g=f;h=(a[b+28>>0]|0)!=0;j=h?e:d;k=h?d:e;e=c[j+4>>2]|0;d=c[e+20>>2]|0;h=b+12|0;l=c[h>>2]|0;if((l|0)<(d|0)){m=b+16|0;if((c[m>>2]|0)<(d|0)){if(!d){n=0;o=l}else{c[3708]=(c[3708]|0)+1;p=ws((d<<2|3)+16|0)|0;if(!p)q=0;else{r=p+4+15&-16;c[r+-4>>2]=p;q=r}n=q;o=c[h>>2]|0}q=b+20|0;if((o|0)>0){r=0;do{c[n+(r<<2)>>2]=c[(c[q>>2]|0)+(r<<2)>>2];r=r+1|0}while((r|0)!=(o|0));}o=c[q>>2]|0;r=b+24|0;if(o){if(a[r>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[o+-4>>2]|0);}c[q>>2]=0}a[r>>0]=1;c[q>>2]=n;c[m>>2]=d;s=q}else s=b+20|0;q=l;do{c[(c[s>>2]|0)+(q<<2)>>2]=0;q=q+1|0}while((q|0)!=(d|0));}c[h>>2]=d;if((d|0)<=0){i=f;return}h=e+68|0;q=e+28|0;e=j+8|0;s=j+12|0;l=g+4|0;m=g+8|0;n=g+12|0;r=g+16|0;o=g+20|0;p=b+4|0;t=b+32|0;u=b+20|0;b=0;do{if(!(c[h>>2]|0)){v=c[(c[q>>2]|0)+(b*80|0)+64>>2]|0;w=c[e>>2]|0;x=c[s>>2]|0;c[g>>2]=j;c[l>>2]=v;c[m>>2]=w;c[n>>2]=x;c[r>>2]=-1;c[o>>2]=b;x=c[p>>2]|0;w=Sb[c[(c[x>>2]|0)+8>>2]&31](x,g,k,c[t>>2]|0)|0;c[(c[u>>2]|0)+(b<<2)>>2]=w}else c[(c[u>>2]|0)+(b<<2)>>2]=0;b=b+1|0}while((b|0)!=(d|0));i=f;return}function tq(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;c[b>>2]=12976;d=b+12|0;e=c[d>>2]|0;f=b+20|0;if((e|0)>0){g=b+4|0;h=0;do{i=c[(c[f>>2]|0)+(h<<2)>>2]|0;if(i){Kb[c[c[i>>2]>>2]&255](i);i=c[g>>2]|0;Mb[c[(c[i>>2]|0)+60>>2]&127](i,c[(c[f>>2]|0)+(h<<2)>>2]|0);}h=h+1|0}while((h|0)!=(e|0));}e=c[f>>2]|0;h=b+24|0;if(!e){a[h>>0]=1;c[f>>2]=0;c[d>>2]=0;j=b+16|0;c[j>>2]=0;return}if(a[h>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[e+-4>>2]|0);}c[f>>2]=0;a[h>>0]=1;c[f>>2]=0;c[d>>2]=0;j=b+16|0;c[j>>2]=0;return}function uq(a){a=a|0;tq(a);xs(a);return}function vq(b,d,e,f,h){b=b|0;d=d|0;e=e|0;f=f|0;h=h|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,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0.0,U=0.0,V=0.0,W=0.0,X=0.0,Y=0.0,Z=0.0,_=0.0,$=0.0,aa=0.0,ba=0.0,ca=0.0,da=0.0,ea=0.0,fa=0.0,ga=0.0,ha=0.0,ia=0.0,ja=0.0,ka=0.0,la=0.0,ma=0.0,na=0.0,oa=0.0,pa=0,qa=0;j=i;i=i+256|0;k=j+216|0;l=j+192|0;m=j+176|0;n=j+160|0;o=j+96|0;p=j+64|0;q=j+48|0;r=j+32|0;s=j+16|0;t=j;u=(a[b+28>>0]|0)!=0;v=u?e:d;w=u?d:e;u=c[v+4>>2]|0;x=u+72|0;y=b+40|0;z=b+12|0;if((c[x>>2]|0)!=(c[y>>2]|0)){A=c[z>>2]|0;if((A|0)>0){B=b+20|0;C=b+4|0;D=0;do{E=c[(c[B>>2]|0)+(D<<2)>>2]|0;if(E){Kb[c[c[E>>2]>>2]&255](E);E=c[C>>2]|0;Mb[c[(c[E>>2]|0)+60>>2]&127](E,c[(c[B>>2]|0)+(D<<2)>>2]|0);}D=D+1|0}while((D|0)!=(A|0));}sq(b,d,e);c[y>>2]=c[x>>2]}x=c[z>>2]|0;if(!x){i=j;return}y=c[u+68>>2]|0;e=b+4|0;d=c[e>>2]|0;A=b+20|0;D=c[A>>2]|0;B=c[b+32>>2]|0;c[k>>2]=13056;c[k+4>>2]=v;c[k+8>>2]=w;c[k+12>>2]=d;c[k+16>>2]=f;c[k+20>>2]=h;c[k+24>>2]=D;c[k+28>>2]=B;B=l+16|0;a[B>>0]=1;f=l+12|0;c[f>>2]=0;d=l+4|0;c[d>>2]=0;b=l+8|0;c[b>>2]=0;if((x|0)>0){C=h+4|0;E=h+8|0;F=h+12|0;h=x;x=D;D=0;while(1){G=c[x+(D<<2)>>2]|0;if(!G)H=h;else{Mb[c[(c[G>>2]|0)+16>>2]&127](G,l);G=c[d>>2]|0;if((G|0)>0){I=G;J=0;while(1){K=c[(c[f>>2]|0)+(J<<2)>>2]|0;if(!(c[K+748>>2]|0))L=I;else{c[C>>2]=K;M=c[K+740>>2]|0;N=c[(c[E>>2]|0)+8>>2]|0;O=c[(c[F>>2]|0)+8>>2]|0;if((M|0)==(N|0))yp(K,M+4|0,O+4|0);else yp(K,O+4|0,N+4|0);c[C>>2]=0;L=c[d>>2]|0}J=J+1|0;if((J|0)>=(L|0))break;else I=L}if((L|0)<=0){P=L;Q=20}}else{P=G;Q=20}if((Q|0)==20?(Q=0,(P|0)<0):0){if((c[b>>2]|0)<0){I=c[f>>2]|0;if(I){if(a[B>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[I+-4>>2]|0);}c[f>>2]=0}a[B>>0]=1;c[f>>2]=0;c[b>>2]=0;R=P}else R=P;do{c[(c[f>>2]|0)+(R<<2)>>2]=0;R=R+1|0}while((R|0)!=0);}c[d>>2]=0;H=c[z>>2]|0}G=D+1|0;if((G|0)>=(H|0))break;h=H;x=c[A>>2]|0;D=G}D=c[f>>2]|0;if(D){if(a[B>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[D+-4>>2]|0);}c[f>>2]=0}}a[B>>0]=1;c[f>>2]=0;c[d>>2]=0;c[b>>2]=0;do if(!y){b=c[z>>2]|0;if((b|0)<=0){S=o;break}d=u+28|0;f=0;do{xq(k,c[(c[d>>2]|0)+(f*80|0)+64>>2]|0,f);f=f+1|0}while((f|0)<(b|0));Q=41}else{b=c[v+12>>2]|0;T=+g[b>>2];U=+g[b+16>>2];V=+g[b+32>>2];W=+g[b+4>>2];X=+g[b+20>>2];Y=+g[b+36>>2];Z=+g[b+8>>2];_=+g[b+24>>2];$=+g[b+40>>2];aa=-+g[b+48>>2];ba=-+g[b+52>>2];ca=-+g[b+56>>2];b=c[w+12>>2]|0;da=+g[b>>2];ea=+g[b+16>>2];fa=+g[b+32>>2];ga=+g[b+4>>2];ha=+g[b+20>>2];ia=+g[b+36>>2];ja=+g[b+8>>2];ka=+g[b+24>>2];la=+g[b+40>>2];ma=+g[b+48>>2];na=+g[b+52>>2];oa=+g[b+56>>2];g[o>>2]=T*da+U*ea+V*fa;g[o+4>>2]=T*ga+U*ha+V*ia;g[o+8>>2]=T*ja+U*ka+V*la;g[o+12>>2]=0.0;g[o+16>>2]=W*da+X*ea+Y*fa;g[o+20>>2]=W*ga+X*ha+Y*ia;g[o+24>>2]=W*ja+X*ka+Y*la;g[o+28>>2]=0.0;g[o+32>>2]=Z*da+_*ea+$*fa;g[o+36>>2]=Z*ga+_*ha+$*ia;g[o+40>>2]=Z*ja+_*ka+$*la;g[o+44>>2]=0.0;g[o+48>>2]=T*aa+U*ba+V*ca+(T*ma+U*na+V*oa);g[o+52>>2]=W*aa+X*ba+Y*ca+(W*ma+X*na+Y*oa);g[o+56>>2]=Z*aa+_*ba+$*ca+(Z*ma+_*na+$*oa);g[o+60>>2]=0.0;b=c[w+4>>2]|0;tc[c[(c[b>>2]|0)+8>>2]&63](b,o,m,n);c[p>>2]=c[m>>2];c[p+4>>2]=c[m+4>>2];c[p+8>>2]=c[m+8>>2];c[p+12>>2]=c[m+12>>2];b=p+16|0;c[b>>2]=c[n>>2];c[b+4>>2]=c[n+4>>2];c[b+8>>2]=c[n+8>>2];c[b+12>>2]=c[n+12>>2];Ki(c[y>>2]|0,p,k);Q=41}while(0);if((Q|0)==41){Q=c[z>>2]|0;if((Q|0)>0){z=u+28|0;u=v+12|0;v=o+4|0;k=o+8|0;p=o+12|0;y=o+16|0;n=o+20|0;m=o+24|0;b=o+28|0;f=o+32|0;d=o+36|0;B=o+40|0;D=o+44|0;x=o+48|0;H=o+52|0;h=o+56|0;R=o+60|0;P=w+4|0;L=w+12|0;w=q+8|0;C=t+8|0;F=q+4|0;E=t+4|0;l=r+4|0;G=s+4|0;I=r+8|0;J=s+8|0;N=0;do{do if(c[(c[A>>2]|0)+(N<<2)>>2]|0){O=c[z>>2]|0;K=c[O+(N*80|0)+64>>2]|0;M=c[u>>2]|0;oa=+g[M>>2];$=+g[M+4>>2];na=+g[M+8>>2];_=+g[M+16>>2];ma=+g[M+20>>2];Z=+g[M+24>>2];ca=+g[M+32>>2];ba=+g[M+36>>2];aa=+g[M+40>>2];Y=+g[O+(N*80|0)>>2];X=+g[O+(N*80|0)+16>>2];W=+g[O+(N*80|0)+32>>2];V=+g[O+(N*80|0)+4>>2];U=+g[O+(N*80|0)+20>>2];T=+g[O+(N*80|0)+36>>2];la=+g[O+(N*80|0)+8>>2];ka=+g[O+(N*80|0)+24>>2];ja=+g[O+(N*80|0)+40>>2];ia=+g[O+(N*80|0)+48>>2];ha=+g[O+(N*80|0)+52>>2];ga=+g[O+(N*80|0)+56>>2];fa=+g[M+48>>2]+(oa*ia+$*ha+na*ga);ea=+g[M+52>>2]+(_*ia+ma*ha+Z*ga);da=+g[M+56>>2]+(ca*ia+ba*ha+aa*ga);g[o>>2]=oa*Y+$*X+na*W;g[v>>2]=oa*V+$*U+na*T;g[k>>2]=oa*la+$*ka+na*ja;g[p>>2]=0.0;g[y>>2]=_*Y+ma*X+Z*W;g[n>>2]=_*V+ma*U+Z*T;g[m>>2]=_*la+ma*ka+Z*ja;g[b>>2]=0.0;g[f>>2]=ca*Y+ba*X+aa*W;g[d>>2]=ca*V+ba*U+aa*T;g[B>>2]=ca*la+ba*ka+aa*ja;g[D>>2]=0.0;g[x>>2]=fa;g[H>>2]=ea;g[h>>2]=da;g[R>>2]=0.0;tc[c[(c[K>>2]|0)+8>>2]&63](K,o,q,r);K=c[P>>2]|0;tc[c[(c[K>>2]|0)+8>>2]&63](K,c[L>>2]|0,s,t);if(!(+g[q>>2]>+g[t>>2])?!(+g[r>>2]<+g[s>>2]):0)pa=1;else pa=0;if(!(+g[w>>2]>+g[C>>2])?!(+g[I>>2]<+g[J>>2]):0)qa=pa;else qa=0;if(!(+g[F>>2]>+g[E>>2])?!(+g[l>>2]<+g[G>>2]|qa^1):0)break;K=c[(c[A>>2]|0)+(N<<2)>>2]|0;Kb[c[c[K>>2]>>2]&255](K);K=c[e>>2]|0;Mb[c[(c[K>>2]|0)+60>>2]&127](K,c[(c[A>>2]|0)+(N<<2)>>2]|0);c[(c[A>>2]|0)+(N<<2)>>2]=0}while(0);N=N+1|0}while((N|0)<(Q|0));S=o}else S=o}i=j;return}function wq(b,d,e,f,h){b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;var i=0,j=0,k=0,l=0.0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0.0,E=0.0,F=0.0,G=0.0,H=0.0,I=0.0,J=0,K=0.0,L=0.0,M=0.0,N=0,O=0.0,P=0.0,Q=0.0,R=0,S=0,T=0.0,U=0,V=0,W=0.0,X=0.0,Y=0.0,Z=0.0,_=0.0,$=0.0,aa=0.0,ba=0.0,ca=0.0,da=0.0,ea=0.0,fa=0.0;i=(a[b+28>>0]|0)!=0;j=i?e:d;k=i?d:e;e=c[b+12>>2]|0;if((e|0)<=0){l=1.0;return +l}d=j+4|0;i=j+8|0;m=j+12|0;n=j+16|0;o=j+20|0;p=j+24|0;q=j+28|0;r=j+32|0;s=j+36|0;t=j+40|0;u=j+44|0;v=j+48|0;w=j+52|0;x=j+56|0;y=j+60|0;z=j+64|0;A=(c[j+192>>2]|0)+28|0;B=j+284|0;C=b+20|0;D=+g[d>>2];E=+g[i>>2];F=+g[m>>2];b=c[n>>2]|0;G=+g[o>>2];H=+g[p>>2];I=+g[q>>2];J=c[r>>2]|0;K=+g[s>>2];L=+g[t>>2];M=+g[u>>2];N=c[v>>2]|0;O=+g[w>>2];P=+g[x>>2];Q=+g[y>>2];R=c[z>>2]|0;S=c[B>>2]|0;T=1.0;U=0;while(1){V=c[A>>2]|0;W=+g[V+(U*80|0)>>2];X=+g[V+(U*80|0)+16>>2];Y=+g[V+(U*80|0)+32>>2];Z=+g[V+(U*80|0)+4>>2];_=+g[V+(U*80|0)+20>>2];$=+g[V+(U*80|0)+36>>2];aa=+g[V+(U*80|0)+8>>2];ba=+g[V+(U*80|0)+24>>2];ca=+g[V+(U*80|0)+40>>2];da=+g[V+(U*80|0)+48>>2];ea=+g[V+(U*80|0)+52>>2];fa=+g[V+(U*80|0)+56>>2];c[B>>2]=S+1;g[d>>2]=D*W+E*X+F*Y;g[i>>2]=D*Z+E*_+F*$;g[m>>2]=D*aa+E*ba+F*ca;g[n>>2]=0.0;g[o>>2]=G*W+H*X+I*Y;g[p>>2]=G*Z+H*_+I*$;g[q>>2]=G*aa+H*ba+I*ca;g[r>>2]=0.0;g[s>>2]=K*W+L*X+M*Y;g[t>>2]=K*Z+L*_+M*$;g[u>>2]=K*aa+L*ba+M*ca;g[v>>2]=0.0;g[w>>2]=O+(D*da+E*ea+F*fa);g[x>>2]=P+(G*da+H*ea+I*fa);g[y>>2]=Q+(K*da+L*ea+M*fa);g[z>>2]=0.0;V=c[(c[C>>2]|0)+(U<<2)>>2]|0;fa=+Vb[c[(c[V>>2]|0)+12>>2]&15](V,j,k,f,h);ea=fa<T?fa:T;S=(c[B>>2]|0)+1|0;c[B>>2]=S;g[d>>2]=D;g[i>>2]=E;g[m>>2]=F;c[n>>2]=b;g[o>>2]=G;g[p>>2]=H;g[q>>2]=I;c[r>>2]=J;g[s>>2]=K;g[t>>2]=L;g[u>>2]=M;c[v>>2]=N;g[w>>2]=O;g[x>>2]=P;g[y>>2]=Q;c[z>>2]=R;U=U+1|0;if((U|0)==(e|0)){l=ea;break}else T=ea}return +l}function xq(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0.0,r=0.0,s=0.0,t=0.0,u=0.0,v=0.0,w=0.0,x=0.0,y=0.0,z=0,A=0.0,B=0.0,C=0.0,D=0.0,E=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,O=0.0,P=0,Q=0,R=0,S=0;e=i;i=i+160|0;f=e+88|0;h=e+72|0;j=e+56|0;k=e+40|0;l=e+24|0;m=e;n=a+4|0;o=c[n>>2]|0;p=c[o+12>>2]|0;q=+g[p>>2];r=+g[p+4>>2];s=+g[p+8>>2];t=+g[p+16>>2];u=+g[p+20>>2];v=+g[p+24>>2];w=+g[p+32>>2];x=+g[p+36>>2];y=+g[p+40>>2];z=c[(c[o+4>>2]|0)+28>>2]|0;A=+g[z+(d*80|0)>>2];B=+g[z+(d*80|0)+16>>2];C=+g[z+(d*80|0)+32>>2];D=+g[z+(d*80|0)+4>>2];E=+g[z+(d*80|0)+20>>2];F=+g[z+(d*80|0)+36>>2];G=+g[z+(d*80|0)+8>>2];H=+g[z+(d*80|0)+24>>2];I=+g[z+(d*80|0)+40>>2];J=+g[z+(d*80|0)+48>>2];K=+g[z+(d*80|0)+52>>2];L=+g[z+(d*80|0)+56>>2];M=+g[p+48>>2]+(q*J+r*K+s*L);N=+g[p+52>>2]+(t*J+u*K+v*L);O=+g[p+56>>2]+(w*J+x*K+y*L);g[f>>2]=q*A+r*B+s*C;g[f+4>>2]=q*D+r*E+s*F;g[f+8>>2]=q*G+r*H+s*I;g[f+12>>2]=0.0;g[f+16>>2]=t*A+u*B+v*C;g[f+20>>2]=t*D+u*E+v*F;g[f+24>>2]=t*G+u*H+v*I;g[f+28>>2]=0.0;g[f+32>>2]=w*A+x*B+y*C;g[f+36>>2]=w*D+x*E+y*F;g[f+40>>2]=w*G+x*H+y*I;g[f+44>>2]=0.0;g[f+48>>2]=M;g[f+52>>2]=N;g[f+56>>2]=O;g[f+60>>2]=0.0;tc[c[(c[b>>2]|0)+8>>2]&63](b,f,h,j);p=a+8|0;z=c[p>>2]|0;o=c[z+4>>2]|0;tc[c[(c[o>>2]|0)+8>>2]&63](o,c[z+12>>2]|0,k,l);if(!(+g[h>>2]>+g[l>>2])?!(+g[j>>2]<+g[k>>2]):0)P=1;else P=0;if(!(+g[h+8>>2]>+g[l+8>>2])?!(+g[j+8>>2]<+g[k+8>>2]):0)Q=P;else Q=0;if(+g[h+4>>2]>+g[l+4>>2]){i=e;return}if(+g[j+4>>2]<+g[k+4>>2]|Q^1){i=e;return}Q=c[n>>2]|0;k=c[Q+8>>2]|0;c[m>>2]=Q;c[m+4>>2]=b;c[m+8>>2]=k;c[m+12>>2]=f;c[m+16>>2]=-1;c[m+20>>2]=d;f=a+24|0;if(!(c[(c[f>>2]|0)+(d<<2)>>2]|0)){k=c[a+12>>2]|0;b=Sb[c[(c[k>>2]|0)+8>>2]&31](k,m,c[p>>2]|0,c[a+28>>2]|0)|0;c[(c[f>>2]|0)+(d<<2)>>2]=b;R=c[n>>2]|0}else R=Q;Q=a+20|0;b=c[Q>>2]|0;k=b+8|0;j=c[k>>2]|0;if((c[j+8>>2]|0)==(c[R+8>>2]|0)){c[k>>2]=m;pc[c[(c[b>>2]|0)+8>>2]&63](b,-1,d);S=j}else{j=b+12|0;k=c[j>>2]|0;c[j>>2]=m;pc[c[(c[b>>2]|0)+12>>2]&63](b,-1,d);S=k}k=c[(c[f>>2]|0)+(d<<2)>>2]|0;Ib[c[(c[k>>2]|0)+8>>2]&31](k,m,c[p>>2]|0,c[a+16>>2]|0,c[Q>>2]|0);a=c[Q>>2]|0;Q=a+8|0;if((c[(c[Q>>2]|0)+8>>2]|0)==(c[(c[n>>2]|0)+8>>2]|0)){c[Q>>2]=S;i=e;return}else{c[a+12>>2]=S;i=e;return}}function yq(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;d=a+12|0;e=c[d>>2]|0;if((e|0)<=0)return;f=a+20|0;a=e;e=0;while(1){g=c[(c[f>>2]|0)+(e<<2)>>2]|0;if(!g)h=a;else{Mb[c[(c[g>>2]|0)+16>>2]&127](g,b);h=c[d>>2]|0}e=e+1|0;if((e|0)>=(h|0))break;else a=h}return}function zq(a){a=a|0;xs(a);return}function Aq(a,b){a=a|0;b=b|0;var d=0;d=c[b+36>>2]|0;xq(a,c[(c[(c[(c[a+4>>2]|0)+4>>2]|0)+28>>2]|0)+(d*80|0)+64>>2]|0,d);return}function Bq(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;c[b>>2]=13144;d=b+44|0;e=c[d>>2]|0;f=c[e+8>>2]|0;if((f|0)>0){g=e+16|0;h=b+4|0;i=0;do{j=c[(c[g>>2]|0)+(i*12|0)+8>>2]|0;if(j){Kb[c[c[j>>2]>>2]&255](j);k=c[h>>2]|0;Mb[c[(c[k>>2]|0)+60>>2]&127](k,j);}i=i+1|0}while((i|0)!=(f|0));l=c[d>>2]|0}else l=e;rr(l);l=c[d>>2]|0;Kb[c[c[l>>2]>>2]&255](l);l=c[d>>2]|0;if(l){c[3710]=(c[3710]|0)+1;xs(c[l+-4>>2]|0);}l=b+52|0;d=b+60|0;e=c[d>>2]|0;f=b+64|0;if(!e){a[f>>0]=1;c[d>>2]=0;c[l>>2]=0;m=b+56|0;c[m>>2]=0;tq(b);return}if(a[f>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[e+-4>>2]|0);}c[d>>2]=0;a[f>>0]=1;c[d>>2]=0;c[l>>2]=0;m=b+56|0;c[m>>2]=0;tq(b);return}function Cq(a){a=a|0;Bq(a);xs(a);return}function Dq(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;d=c[a+44>>2]|0;a=d+8|0;e=c[a>>2]|0;if((e|0)<=0)return;f=d+16|0;d=e;e=0;while(1){g=c[(c[f>>2]|0)+(e*12|0)+8>>2]|0;if(!g)h=d;else{Mb[c[(c[g>>2]|0)+16>>2]&127](g,b);h=c[a>>2]|0}e=e+1|0;if((e|0)>=(h|0))break;else d=h}return}function Eq(b,d,e,f,h){b=b|0;d=d|0;e=e|0;f=f|0;h=h|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,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,P=0,Q=0,R=0,S=0,T=0,U=0.0,V=0.0,W=0.0,X=0.0,Y=0.0,Z=0.0,_=0.0,$=0.0,aa=0.0,ba=0.0,ca=0.0,da=0.0,ea=0.0,fa=0.0,ga=0.0,ha=0.0,ia=0.0,ja=0.0,ka=0.0,la=0.0,ma=0.0,na=0.0,oa=0.0,pa=0.0,qa=0.0,ra=0.0,sa=0.0,ta=0.0,ua=0,va=0.0,wa=0.0,xa=0.0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0,Fa=0,Ga=0,Ha=0,Ia=0,Ja=0,Ka=0,La=0,Ma=0,Na=0,Oa=0,Pa=0,Qa=0,Ra=0,Sa=0,Ta=0,Ua=0,Va=0,Wa=0,Xa=0,Ya=0,Za=0,_a=0,$a=0,ab=0,bb=0,cb=0,db=0;j=i;i=i+192|0;k=j+164|0;l=j+128|0;m=j+112|0;n=j+96|0;o=j+80|0;p=j+64|0;q=j;r=c[d+4>>2]|0;s=c[e+4>>2]|0;t=c[r+68>>2]|0;u=c[s+68>>2]|0;if(!((t|0)!=0&(u|0)!=0)){vq(b,d,e,f,h);i=j;return}v=r+72|0;w=b+68|0;if((c[v>>2]|0)==(c[w>>2]|0)?(c[s+72>>2]|0)==(c[b+72>>2]|0):0)x=b+44|0;else{y=b+44|0;z=c[y>>2]|0;A=c[z+8>>2]|0;if((A|0)>0){B=z+16|0;C=b+4|0;D=0;do{E=c[(c[B>>2]|0)+(D*12|0)+8>>2]|0;if(E){Kb[c[c[E>>2]>>2]&255](E);F=c[C>>2]|0;Mb[c[(c[F>>2]|0)+60>>2]&127](F,E);}D=D+1|0}while((D|0)!=(A|0));G=c[y>>2]|0}else G=z;rr(G);c[w>>2]=c[v>>2];c[b+72>>2]=c[s+72>>2];x=y}y=k+16|0;a[y>>0]=1;v=k+12|0;c[v>>2]=0;w=k+4|0;c[w>>2]=0;G=k+8|0;c[G>>2]=0;z=c[x>>2]|0;A=z+8|0;D=c[A>>2]|0;if((D|0)>0){C=z+16|0;z=h+4|0;B=h+8|0;E=h+12|0;F=D;D=0;while(1){H=c[(c[C>>2]|0)+(D*12|0)+8>>2]|0;if(!H)I=F;else{Mb[c[(c[H>>2]|0)+16>>2]&127](H,k);H=c[w>>2]|0;if((H|0)>0){J=H;K=0;while(1){L=c[(c[v>>2]|0)+(K<<2)>>2]|0;if(!(c[L+748>>2]|0))M=J;else{c[z>>2]=L;N=c[L+740>>2]|0;P=c[(c[B>>2]|0)+8>>2]|0;Q=c[(c[E>>2]|0)+8>>2]|0;if((N|0)==(P|0))yp(L,N+4|0,Q+4|0);else yp(L,Q+4|0,P+4|0);c[z>>2]=0;M=c[w>>2]|0}K=K+1|0;if((K|0)>=(M|0))break;else J=M}if((M|0)<=0){R=M;S=24}}else{R=H;S=24}if((S|0)==24?(S=0,(R|0)<0):0){if((c[G>>2]|0)<0){J=c[v>>2]|0;if(J){if(a[y>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[J+-4>>2]|0);}c[v>>2]=0}a[y>>0]=1;c[v>>2]=0;c[G>>2]=0;T=R}else T=R;do{c[(c[v>>2]|0)+(T<<2)>>2]=0;T=T+1|0}while((T|0)!=0);}c[w>>2]=0;I=c[A>>2]|0}D=D+1|0;if((D|0)>=(I|0))break;else F=I}I=c[v>>2]|0;if(I){if(a[y>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[I+-4>>2]|0);}c[v>>2]=0}}a[y>>0]=1;c[v>>2]=0;c[w>>2]=0;c[G>>2]=0;G=b+4|0;w=c[G>>2]|0;v=c[x>>2]|0;y=c[b+32>>2]|0;c[l>>2]=13232;c[l+4>>2]=0;c[l+8>>2]=d;c[l+12>>2]=e;c[l+16>>2]=w;c[l+20>>2]=f;c[l+24>>2]=h;c[l+28>>2]=v;c[l+32>>2]=y;y=d+12|0;d=c[y>>2]|0;U=+g[d>>2];V=+g[d+16>>2];W=+g[d+32>>2];X=+g[d+4>>2];Y=+g[d+20>>2];Z=+g[d+36>>2];_=+g[d+8>>2];$=+g[d+24>>2];aa=+g[d+40>>2];ba=-+g[d+48>>2];ca=-+g[d+52>>2];da=-+g[d+56>>2];d=e+12|0;e=c[d>>2]|0;ea=+g[e>>2];fa=+g[e+16>>2];ga=+g[e+32>>2];ha=U*ea+V*fa+W*ga;ia=+g[e+4>>2];ja=+g[e+20>>2];ka=+g[e+36>>2];la=U*ia+V*ja+W*ka;ma=+g[e+8>>2];na=+g[e+24>>2];oa=+g[e+40>>2];pa=U*ma+V*na+W*oa;qa=X*ea+Y*fa+Z*ga;ra=X*ia+Y*ja+Z*ka;sa=X*ma+Y*na+Z*oa;ta=_*ea+$*fa+aa*ga;ga=_*ia+$*ja+aa*ka;ka=_*ma+$*na+aa*oa;oa=+g[e+48>>2];na=+g[e+52>>2];ma=+g[e+56>>2];ja=U*ba+V*ca+W*da+(U*oa+V*na+W*ma);W=X*ba+Y*ca+Z*da+(X*oa+Y*na+Z*ma);Z=_*ba+$*ca+aa*da+(_*oa+$*na+aa*ma);e=c[t>>2]|0;t=c[u>>2]|0;if((e|0)!=0&(t|0)!=0){c[3708]=(c[3708]|0)+1;u=ws(1043)|0;if(!u)ua=0;else{v=u+4+15&-16;c[v+-4>>2]=u;ua=v}c[ua>>2]=e;c[ua+4>>2]=t;ma=+O(+ha);aa=+O(+la);na=+O(+pa);$=+O(+qa);oa=+O(+ra);_=+O(+sa);da=+O(+ta);ca=+O(+ga);ba=+O(+ka);t=ua;ua=128;e=128;v=1;u=124;while(1){h=v+-1|0;f=c[t+(h<<3)>>2]|0;w=c[t+(h<<3)+4>>2]|0;Y=+g[w+16>>2];X=+g[w>>2];V=+g[w+20>>2];U=+g[w+4>>2];ia=+g[w+24>>2];fa=+g[w+8>>2];ea=(Y-X)*.5+0.0;va=(V-U)*.5+0.0;wa=(ia-fa)*.5+0.0;xa=(Y+X)*.5;X=(V+U)*.5;U=(ia+fa)*.5;fa=ja+(ha*xa+la*X+pa*U);ia=W+(qa*xa+ra*X+sa*U);V=Z+(ta*xa+ga*X+ka*U);U=ea*ma+va*aa+wa*na;X=ea*$+va*oa+wa*_;xa=ea*da+va*ca+wa*ba;wa=ia-X;va=V-xa;ea=ia+X;X=V+xa;do if(((((+g[f>>2]<=U+fa?+g[f+16>>2]>=fa-U:0)?+g[f+4>>2]<=ea:0)?+g[f+20>>2]>=wa:0)?+g[f+8>>2]<=X:0)?+g[f+24>>2]>=va:0){if((h|0)>(u|0)){I=ua<<1;do if((ua|0)<(I|0)&(e|0)<(I|0)){do if(!ua){ya=0;S=55}else{c[3708]=(c[3708]|0)+1;F=ws((ua<<4|3)+16|0)|0;if(!F)za=0;else{D=F+4+15&-16;c[D+-4>>2]=F;za=D}if((ua|0)>0)Aa=0;else{ya=za;S=55;break}do{D=t+(Aa<<3)|0;F=c[D+4>>2]|0;A=za+(Aa<<3)|0;c[A>>2]=c[D>>2];c[A+4>>2]=F;Aa=Aa+1|0}while((Aa|0)!=(ua|0));Ba=za}while(0);if((S|0)==55){S=0;if(!t){Ca=ya;Da=I;break}else Ba=ya}c[3710]=(c[3710]|0)+1;xs(c[t+-4>>2]|0);Ca=Ba;Da=I}else{Ca=t;Da=e}while(0);Ea=Ca;Fa=Da;Ga=I;Ha=I+-4|0}else{Ea=t;Fa=e;Ga=ua;Ha=u}F=f+40|0;A=w+40|0;D=(c[A>>2]|0)!=0;if(!(c[F>>2]|0))if(D){T=f;R=c[w+36>>2]|0;c[Ea+(h<<3)>>2]=T;c[Ea+(h<<3)+4>>2]=R;R=c[A>>2]|0;c[Ea+(v<<3)>>2]=T;c[Ea+(v<<3)+4>>2]=R;Ia=Ea;Ja=Fa;Ka=Ga;La=v+1|0;Ma=Ha;break}else{pc[c[(c[l>>2]|0)+8>>2]&63](l,f,w);Ia=Ea;Ja=Fa;Ka=Ga;La=h;Ma=Ha;break}else{R=Ea+(h<<3)|0;T=f+36|0;M=c[T>>2]|0;if(D){D=w+36|0;z=c[D>>2]|0;c[R>>2]=M;c[Ea+(h<<3)+4>>2]=z;z=v+1|0;E=c[D>>2]|0;c[Ea+(v<<3)>>2]=c[F>>2];c[Ea+(v<<3)+4>>2]=E;E=v+2|0;D=c[A>>2]|0;c[Ea+(z<<3)>>2]=c[T>>2];c[Ea+(z<<3)+4>>2]=D;D=c[A>>2]|0;c[Ea+(E<<3)>>2]=c[F>>2];c[Ea+(E<<3)+4>>2]=D;Ia=Ea;Ja=Fa;Ka=Ga;La=v+3|0;Ma=Ha;break}else{D=w;c[R>>2]=M;c[Ea+(h<<3)+4>>2]=D;c[Ea+(v<<3)>>2]=c[F>>2];c[Ea+(v<<3)+4>>2]=D;Ia=Ea;Ja=Fa;Ka=Ga;La=v+1|0;Ma=Ha;break}}}else{Ia=t;Ja=e;Ka=ua;La=h;Ma=u}while(0);if(!La)break;else{t=Ia;ua=Ka;e=Ja;v=La;u=Ma}}if(Ia){c[3710]=(c[3710]|0)+1;xs(c[Ia+-4>>2]|0);}}Ia=c[x>>2]|0;Ma=Ia+8|0;if((c[Ma>>2]|0)>0){u=Ia+16|0;Ia=r+28|0;r=q+4|0;La=q+8|0;v=q+12|0;Ja=q+16|0;e=q+20|0;Ka=q+24|0;ua=q+28|0;t=q+32|0;Ha=q+36|0;Ga=q+40|0;Fa=q+44|0;Ea=q+48|0;l=q+52|0;Da=q+56|0;Ca=q+60|0;Ba=s+28|0;s=q+4|0;ya=q+8|0;S=q+12|0;za=q+16|0;Aa=q+20|0;h=q+24|0;w=q+28|0;f=q+32|0;D=q+36|0;F=q+40|0;M=q+44|0;R=q+48|0;E=q+52|0;A=q+56|0;z=q+60|0;T=m+8|0;B=p+8|0;k=m+4|0;C=p+4|0;H=b+52|0;J=b+56|0;K=b+60|0;P=b+64|0;Q=n+4|0;L=o+4|0;N=n+8|0;Na=o+8|0;Oa=0;do{Pa=c[u>>2]|0;Qa=c[Pa+(Oa*12|0)+8>>2]|0;do if(Qa){Ra=c[Pa+(Oa*12|0)>>2]|0;Sa=c[Ia>>2]|0;Ta=c[Sa+(Ra*80|0)+64>>2]|0;Ua=c[y>>2]|0;ba=+g[Ua>>2];ca=+g[Ua+4>>2];da=+g[Ua+8>>2];_=+g[Ua+16>>2];oa=+g[Ua+20>>2];$=+g[Ua+24>>2];na=+g[Ua+32>>2];aa=+g[Ua+36>>2];ma=+g[Ua+40>>2];ka=+g[Sa+(Ra*80|0)>>2];ga=+g[Sa+(Ra*80|0)+16>>2];ta=+g[Sa+(Ra*80|0)+32>>2];Z=+g[Sa+(Ra*80|0)+4>>2];sa=+g[Sa+(Ra*80|0)+20>>2];ra=+g[Sa+(Ra*80|0)+36>>2];qa=+g[Sa+(Ra*80|0)+8>>2];W=+g[Sa+(Ra*80|0)+24>>2];pa=+g[Sa+(Ra*80|0)+40>>2];la=+g[Sa+(Ra*80|0)+48>>2];ha=+g[Sa+(Ra*80|0)+52>>2];ja=+g[Sa+(Ra*80|0)+56>>2];va=+g[Ua+48>>2]+(ba*la+ca*ha+da*ja);X=+g[Ua+52>>2]+(_*la+oa*ha+$*ja);wa=+g[Ua+56>>2]+(na*la+aa*ha+ma*ja);g[q>>2]=ba*ka+ca*ga+da*ta;g[r>>2]=ba*Z+ca*sa+da*ra;g[La>>2]=ba*qa+ca*W+da*pa;g[v>>2]=0.0;g[Ja>>2]=_*ka+oa*ga+$*ta;g[e>>2]=_*Z+oa*sa+$*ra;g[Ka>>2]=_*qa+oa*W+$*pa;g[ua>>2]=0.0;g[t>>2]=na*ka+aa*ga+ma*ta;g[Ha>>2]=na*Z+aa*sa+ma*ra;g[Ga>>2]=na*qa+aa*W+ma*pa;g[Fa>>2]=0.0;g[Ea>>2]=va;g[l>>2]=X;g[Da>>2]=wa;g[Ca>>2]=0.0;tc[c[(c[Ta>>2]|0)+8>>2]&63](Ta,q,m,n);Ta=c[(c[u>>2]|0)+(Oa*12|0)+4>>2]|0;Ua=c[Ba>>2]|0;Ra=c[Ua+(Ta*80|0)+64>>2]|0;Sa=c[d>>2]|0;wa=+g[Sa>>2];X=+g[Sa+4>>2];va=+g[Sa+8>>2];pa=+g[Sa+16>>2];ma=+g[Sa+20>>2];W=+g[Sa+24>>2];aa=+g[Sa+32>>2];qa=+g[Sa+36>>2];na=+g[Sa+40>>2];ra=+g[Ua+(Ta*80|0)>>2];sa=+g[Ua+(Ta*80|0)+16>>2];Z=+g[Ua+(Ta*80|0)+32>>2];ta=+g[Ua+(Ta*80|0)+4>>2];ga=+g[Ua+(Ta*80|0)+20>>2];ka=+g[Ua+(Ta*80|0)+36>>2];$=+g[Ua+(Ta*80|0)+8>>2];oa=+g[Ua+(Ta*80|0)+24>>2];_=+g[Ua+(Ta*80|0)+40>>2];da=+g[Ua+(Ta*80|0)+48>>2];ca=+g[Ua+(Ta*80|0)+52>>2];ba=+g[Ua+(Ta*80|0)+56>>2];ja=+g[Sa+48>>2]+(wa*da+X*ca+va*ba);ha=+g[Sa+52>>2]+(pa*da+ma*ca+W*ba);la=+g[Sa+56>>2]+(aa*da+qa*ca+na*ba);g[q>>2]=wa*ra+X*sa+va*Z;g[s>>2]=wa*ta+X*ga+va*ka;g[ya>>2]=wa*$+X*oa+va*_;g[S>>2]=0.0;g[za>>2]=pa*ra+ma*sa+W*Z;g[Aa>>2]=pa*ta+ma*ga+W*ka;g[h>>2]=pa*$+ma*oa+W*_;g[w>>2]=0.0;g[f>>2]=aa*ra+qa*sa+na*Z;g[D>>2]=aa*ta+qa*ga+na*ka;g[F>>2]=aa*$+qa*oa+na*_;g[M>>2]=0.0;g[R>>2]=ja;g[E>>2]=ha;g[A>>2]=la;g[z>>2]=0.0;tc[c[(c[Ra>>2]|0)+8>>2]&63](Ra,q,o,p);if(!(+g[m>>2]>+g[p>>2])?!(+g[n>>2]<+g[o>>2]):0)Va=1;else Va=0;if(!(+g[T>>2]>+g[B>>2])?!(+g[N>>2]<+g[Na>>2]):0)Wa=Va;else Wa=0;if(!(+g[k>>2]>+g[C>>2])?!(+g[Q>>2]<+g[L>>2]|Wa^1):0)break;Kb[c[c[Qa>>2]>>2]&255](Qa);Ra=c[G>>2]|0;Mb[c[(c[Ra>>2]|0)+60>>2]&127](Ra,Qa);Ra=c[u>>2]|0;Sa=c[Ra+(Oa*12|0)>>2]|0;Ta=c[Ra+(Oa*12|0)+4>>2]|0;Ra=c[H>>2]|0;if((Ra|0)==(c[J>>2]|0)?(Ua=(Ra|0)!=0?Ra<<1:1,(Ra|0)<(Ua|0)):0){if(!Ua){Xa=0;Ya=Ra}else{c[3708]=(c[3708]|0)+1;Za=ws((Ua*12|3)+16|0)|0;if(!Za)_a=0;else{$a=Za+4+15&-16;c[$a+-4>>2]=Za;_a=$a}Xa=_a;Ya=c[H>>2]|0}if((Ya|0)>0){$a=0;do{Za=Xa+($a*12|0)|0;ab=(c[K>>2]|0)+($a*12|0)|0;c[Za>>2]=c[ab>>2];c[Za+4>>2]=c[ab+4>>2];c[Za+8>>2]=c[ab+8>>2];$a=$a+1|0}while(($a|0)!=(Ya|0));}$a=c[K>>2]|0;if($a){if(a[P>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[$a+-4>>2]|0);}c[K>>2]=0}a[P>>0]=1;c[K>>2]=Xa;c[J>>2]=Ua;bb=c[H>>2]|0}else bb=Ra;$a=c[K>>2]|0;c[$a+(bb*12|0)>>2]=Sa;c[$a+(bb*12|0)+4>>2]=Ta;c[$a+(bb*12|0)+8>>2]=0;c[H>>2]=(c[H>>2]|0)+1}while(0);Oa=Oa+1|0}while((Oa|0)<(c[Ma>>2]|0));cb=K;db=H}else{cb=b+60|0;db=b+52|0}if((c[db>>2]|0)>0){H=0;do{K=c[x>>2]|0;Ma=c[cb>>2]|0;Wb[c[(c[K>>2]|0)+8>>2]&31](K,c[Ma+(H*12|0)>>2]|0,c[Ma+(H*12|0)+4>>2]|0)|0;H=H+1|0}while((H|0)<(c[db>>2]|0));}H=c[cb>>2]|0;x=b+64|0;if(H){if(a[x>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[H+-4>>2]|0);}c[cb>>2]=0}a[x>>0]=1;c[cb>>2]=0;c[db>>2]=0;c[b+56>>2]=0;i=j;return}function Fq(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return 0.0}function Gq(a){a=a|0;xs(a);return}function Hq(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0.0,y=0.0,z=0.0,A=0.0,B=0.0,C=0.0,D=0.0,E=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,O=0.0,P=0.0,Q=0.0,R=0.0,S=0.0,T=0.0,U=0.0,V=0,W=0,X=0,Y=0,Z=0;e=i;i=i+240|0;f=e+176|0;h=e+112|0;j=e+96|0;k=e+80|0;l=e+64|0;m=e+48|0;n=e+24|0;o=e;p=a+4|0;c[p>>2]=(c[p>>2]|0)+1;p=c[b+36>>2]|0;b=c[d+36>>2]|0;d=a+8|0;q=c[d>>2]|0;r=a+12|0;s=c[(c[q+4>>2]|0)+28>>2]|0;t=c[s+(p*80|0)+64>>2]|0;u=(c[(c[r>>2]|0)+4>>2]|0)+28|0;v=c[(c[u>>2]|0)+(b*80|0)+64>>2]|0;w=c[q+12>>2]|0;x=+g[w>>2];y=+g[w+4>>2];z=+g[w+8>>2];A=+g[w+16>>2];B=+g[w+20>>2];C=+g[w+24>>2];D=+g[w+32>>2];E=+g[w+36>>2];F=+g[w+40>>2];G=+g[s+(p*80|0)>>2];H=+g[s+(p*80|0)+16>>2];I=+g[s+(p*80|0)+32>>2];J=+g[s+(p*80|0)+4>>2];K=+g[s+(p*80|0)+20>>2];L=+g[s+(p*80|0)+36>>2];M=+g[s+(p*80|0)+8>>2];N=+g[s+(p*80|0)+24>>2];O=+g[s+(p*80|0)+40>>2];P=+g[s+(p*80|0)+48>>2];Q=+g[s+(p*80|0)+52>>2];R=+g[s+(p*80|0)+56>>2];S=+g[w+48>>2]+(x*P+y*Q+z*R);T=+g[w+52>>2]+(A*P+B*Q+C*R);U=+g[w+56>>2]+(D*P+E*Q+F*R);g[f>>2]=x*G+y*H+z*I;g[f+4>>2]=x*J+y*K+z*L;g[f+8>>2]=x*M+y*N+z*O;g[f+12>>2]=0.0;g[f+16>>2]=A*G+B*H+C*I;g[f+20>>2]=A*J+B*K+C*L;g[f+24>>2]=A*M+B*N+C*O;g[f+28>>2]=0.0;g[f+32>>2]=D*G+E*H+F*I;g[f+36>>2]=D*J+E*K+F*L;g[f+40>>2]=D*M+E*N+F*O;g[f+44>>2]=0.0;g[f+48>>2]=S;g[f+52>>2]=T;g[f+56>>2]=U;g[f+60>>2]=0.0;w=c[(c[r>>2]|0)+12>>2]|0;U=+g[w>>2];T=+g[w+4>>2];S=+g[w+8>>2];O=+g[w+16>>2];F=+g[w+20>>2];N=+g[w+24>>2];E=+g[w+32>>2];M=+g[w+36>>2];D=+g[w+40>>2];s=c[u>>2]|0;L=+g[s+(b*80|0)>>2];K=+g[s+(b*80|0)+16>>2];J=+g[s+(b*80|0)+32>>2];I=+g[s+(b*80|0)+4>>2];H=+g[s+(b*80|0)+20>>2];G=+g[s+(b*80|0)+36>>2];C=+g[s+(b*80|0)+8>>2];B=+g[s+(b*80|0)+24>>2];A=+g[s+(b*80|0)+40>>2];z=+g[s+(b*80|0)+48>>2];y=+g[s+(b*80|0)+52>>2];x=+g[s+(b*80|0)+56>>2];R=+g[w+48>>2]+(U*z+T*y+S*x);Q=+g[w+52>>2]+(O*z+F*y+N*x);P=+g[w+56>>2]+(E*z+M*y+D*x);g[h>>2]=U*L+T*K+S*J;g[h+4>>2]=U*I+T*H+S*G;g[h+8>>2]=U*C+T*B+S*A;g[h+12>>2]=0.0;g[h+16>>2]=O*L+F*K+N*J;g[h+20>>2]=O*I+F*H+N*G;g[h+24>>2]=O*C+F*B+N*A;g[h+28>>2]=0.0;g[h+32>>2]=E*L+M*K+D*J;g[h+36>>2]=E*I+M*H+D*G;g[h+40>>2]=E*C+M*B+D*A;g[h+44>>2]=0.0;g[h+48>>2]=R;g[h+52>>2]=Q;g[h+56>>2]=P;g[h+60>>2]=0.0;tc[c[(c[t>>2]|0)+8>>2]&63](t,f,j,k);tc[c[(c[v>>2]|0)+8>>2]&63](v,h,l,m);if(!(+g[j>>2]>+g[m>>2])?!(+g[k>>2]<+g[l>>2]):0)V=1;else V=0;if(!(+g[j+8>>2]>+g[m+8>>2])?!(+g[k+8>>2]<+g[l+8>>2]):0)W=V;else W=0;if(+g[j+4>>2]>+g[m+4>>2]){i=e;return}if(+g[k+4>>2]<+g[l+4>>2]|W^1){i=e;return}W=c[d>>2]|0;d=c[W+8>>2]|0;c[n>>2]=W;c[n+4>>2]=t;c[n+8>>2]=d;c[n+12>>2]=f;c[n+16>>2]=-1;c[n+20>>2]=p;f=c[r>>2]|0;r=c[f+8>>2]|0;c[o>>2]=f;c[o+4>>2]=v;c[o+8>>2]=r;c[o+12>>2]=h;c[o+16>>2]=-1;c[o+20>>2]=b;h=a+28|0;r=c[h>>2]|0;c[3600]=(c[3600]|0)+1;v=b<<16|p;f=v+~(v<<15)|0;v=(f>>10^f)*9|0;f=v>>6^v;v=f+~(f<<11)|0;f=(c[r+12>>2]|0)+-1&(v>>16^v);a:do if((f|0)<(c[r+32>>2]|0)?(v=c[(c[r+40>>2]|0)+(f<<2)>>2]|0,(v|0)!=-1):0){d=c[r+16>>2]|0;t=r+60|0;W=v;while(1){X=d+(W*12|0)|0;if((c[X>>2]|0)==(p|0)?(c[d+(W*12|0)+4>>2]|0)==(b|0):0)break;v=c[(c[t>>2]|0)+(W<<2)>>2]|0;if((v|0)==-1){Y=16;break a}else W=v}if(X)Z=c[d+(W*12|0)+8>>2]|0;else Y=16}else Y=16;while(0);if((Y|0)==16){Y=c[a+16>>2]|0;X=Sb[c[(c[Y>>2]|0)+8>>2]&31](Y,n,o,c[a+32>>2]|0)|0;Y=c[h>>2]|0;c[(Wb[c[(c[Y>>2]|0)+12>>2]&31](Y,p,b)|0)+8>>2]=X;Z=X}X=a+24|0;Y=c[X>>2]|0;h=Y+8|0;r=c[h>>2]|0;f=Y+12|0;t=c[f>>2]|0;c[h>>2]=n;c[f>>2]=o;pc[c[(c[Y>>2]|0)+8>>2]&63](Y,-1,p);p=c[X>>2]|0;pc[c[(c[p>>2]|0)+12>>2]&63](p,-1,b);Ib[c[(c[Z>>2]|0)+8>>2]&31](Z,n,o,c[a+20>>2]|0,c[X>>2]|0);a=c[X>>2]|0;c[a+8>>2]=r;c[a+12>>2]=t;i=e;return}function Iq(a,b){a=a|0;b=b|0;return}function Jq(a){a=a|0;var b=0,d=0,e=0;c[a>>2]=13328;c[a+12>>2]=13360;b=a+60|0;d=c[b>>2]|0;e=a+76|0;Mb[c[(c[d>>2]|0)+20>>2]&127](d,c[e>>2]|0);d=c[b>>2]|0;Mb[c[(c[d>>2]|0)+16>>2]&127](d,c[e>>2]|0);return}function Kq(a){a=a|0;var b=0,d=0,e=0;c[a>>2]=13328;c[a+12>>2]=13360;b=a+60|0;d=c[b>>2]|0;e=a+76|0;Mb[c[(c[d>>2]|0)+20>>2]&127](d,c[e>>2]|0);d=c[b>>2]|0;Mb[c[(c[d>>2]|0)+16>>2]&127](d,c[e>>2]|0);xs(a);return}function Lq(b,d){b=b|0;d=d|0;var 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;e=b+76|0;b=c[e>>2]|0;f=b;if(!b)return;b=d+4|0;g=c[b>>2]|0;h=d+8|0;if((g|0)==(c[h>>2]|0)?(i=(g|0)!=0?g<<1:1,(g|0)<(i|0)):0){if(!i){j=0;k=g}else{c[3708]=(c[3708]|0)+1;l=ws((i<<2|3)+16|0)|0;if(!l)m=0;else{n=l+4+15&-16;c[n+-4>>2]=l;m=n}j=m;k=c[b>>2]|0}m=d+12|0;if((k|0)>0){n=0;do{c[j+(n<<2)>>2]=c[(c[m>>2]|0)+(n<<2)>>2];n=n+1|0}while((n|0)!=(k|0));}n=c[m>>2]|0;l=d+16|0;if(!n)o=k;else{if(!(a[l>>0]|0))p=k;else{c[3710]=(c[3710]|0)+1;xs(c[n+-4>>2]|0);p=c[b>>2]|0}c[m>>2]=0;o=p}a[l>>0]=1;c[m>>2]=j;c[h>>2]=i;q=o;r=c[e>>2]|0}else{q=g;r=f}c[(c[d+12>>2]|0)+(q<<2)>>2]=r;c[b>>2]=q+1;return}function Mq(a){a=a|0;var b=0,d=0,e=0;c[a>>2]=13360;b=a+48|0;d=c[b>>2]|0;e=a+64|0;Mb[c[(c[d>>2]|0)+20>>2]&127](d,c[e>>2]|0);d=c[b>>2]|0;Mb[c[(c[d>>2]|0)+16>>2]&127](d,c[e>>2]|0);return}function Nq(a){a=a|0;var b=0,d=0,e=0;c[a>>2]=13360;b=a+48|0;d=c[b>>2]|0;e=a+64|0;Mb[c[(c[d>>2]|0)+20>>2]&127](d,c[e>>2]|0);d=c[b>>2]|0;Mb[c[(c[d>>2]|0)+16>>2]&127](d,c[e>>2]|0);xs(a);return}function Oq(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,h=0,j=0,k=0,l=0.0,m=0.0,n=0,o=0.0,p=0.0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;f=i;i=i+144|0;h=f+24|0;j=f;k=b+16|0;l=+g[b>>2];m=+g[k>>2];n=b+32|0;o=l<m?l:m;p=+g[n>>2];if((o<p?o:p)>+g[a+28>>2]){i=f;return}q=l>m?b:k;if(+g[(+g[q>>2]>p?q:n)>>2]<+g[a+12>>2]){i=f;return}n=b+8|0;q=b+24|0;p=+g[n>>2];m=+g[q>>2];k=b+40|0;l=p<m?p:m;o=+g[k>>2];if((l<o?l:o)>+g[a+36>>2]){i=f;return}r=p>m?n:q;if(+g[(+g[r>>2]>o?r:k)>>2]<+g[a+20>>2]){i=f;return}k=b+4|0;r=b+20|0;o=+g[k>>2];m=+g[r>>2];q=b+36|0;p=o<m?o:m;l=+g[q>>2];if((p<l?p:l)>+g[a+32>>2]){i=f;return}n=o>m?k:r;if(+g[(+g[n>>2]>l?n:q)>>2]<+g[a+16>>2]){i=f;return}q=c[a+48>>2]|0;n=a+4|0;r=c[n>>2]|0;if((c[(c[r+4>>2]|0)+4>>2]|0)>=20){i=f;return}k=b+16|0;s=b+32|0;c[h+8>>2]=0;c[h+12>>2]=-1;c[h+16>>2]=1065353216;c[h+20>>2]=1065353216;c[h+24>>2]=1065353216;g[h+28>>2]=0.0;t=h+56|0;c[t>>2]=0;c[h>>2]=12312;u=h+60|0;c[h+4>>2]=1;c[u>>2]=c[b>>2];c[u+4>>2]=c[b+4>>2];c[u+8>>2]=c[b+8>>2];c[u+12>>2]=c[b+12>>2];b=h+76|0;c[b>>2]=c[k>>2];c[b+4>>2]=c[k+4>>2];c[b+8>>2]=c[k+8>>2];c[b+12>>2]=c[k+12>>2];k=h+92|0;c[k>>2]=c[s>>2];c[k+4>>2]=c[s+4>>2];c[k+8>>2]=c[s+8>>2];c[k+12>>2]=c[s+12>>2];c[h+48>>2]=c[a+56>>2];s=a+8|0;k=c[s>>2]|0;b=c[k+8>>2]|0;u=c[k+12>>2]|0;c[j>>2]=k;c[j+4>>2]=h;c[j+8>>2]=b;c[j+12>>2]=u;c[j+16>>2]=d;c[j+20>>2]=e;u=q;b=Sb[c[(c[q>>2]|0)+8>>2]&31](u,r,j,c[a+64>>2]|0)|0;r=a+44|0;k=c[r>>2]|0;v=k+8|0;w=c[v>>2]|0;if((c[w+8>>2]|0)==(c[(c[s>>2]|0)+8>>2]|0)){c[v>>2]=j;pc[c[(c[k>>2]|0)+8>>2]&63](k,d,e);x=w}else{w=k+12|0;v=c[w>>2]|0;c[w>>2]=j;pc[c[(c[k>>2]|0)+12>>2]&63](k,d,e);x=v}Ib[c[(c[b>>2]|0)+8>>2]&31](b,c[n>>2]|0,j,c[a+52>>2]|0,c[r>>2]|0);a=c[r>>2]|0;r=a+8|0;if((c[(c[r>>2]|0)+8>>2]|0)==(c[(c[s>>2]|0)+8>>2]|0))c[r>>2]=x;else c[a+12>>2]=x;Kb[c[c[b>>2]>>2]&255](b);Mb[c[(c[q>>2]|0)+60>>2]&127](u,b);c[h>>2]=10864;h=c[t>>2]|0;if((h|0)!=0?(Kb[c[c[h>>2]>>2]&255](h),h=c[t>>2]|0,(h|0)!=0):0){c[3710]=(c[3710]|0)+1;xs(c[h+-4>>2]|0);}i=f;return}function Pq(b,d,e,f,h){b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0.0,p=0,q=0,r=0.0,s=0.0,t=0.0,u=0.0,v=0.0,w=0.0,x=0.0,y=0.0,z=0.0,A=0.0,B=0.0,C=0.0,D=0.0,E=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,O=0.0,P=0,Q=0;j=i;i=i+64|0;k=j;l=(a[b+8>>0]|0)!=0;m=l?e:d;n=l?d:e;e=c[n+4>>2]|0;if(((c[e+4>>2]|0)+-21|0)>>>0>=9){i=j;return}if((c[(c[m+4>>2]|0)+4>>2]|0)>=20){i=j;return}o=+Zb[c[(c[e>>2]|0)+48>>2]&7](e);d=b+76|0;l=h+4|0;c[l>>2]=c[d>>2];p=b+16|0;c[p>>2]=m;q=b+20|0;c[q>>2]=n;c[b+64>>2]=f;g[b+68>>2]=o;c[b+56>>2]=h;f=c[n+12>>2]|0;r=+g[f>>2];s=+g[f+16>>2];t=+g[f+32>>2];u=+g[f+4>>2];v=+g[f+20>>2];w=+g[f+36>>2];x=+g[f+8>>2];y=+g[f+24>>2];z=+g[f+40>>2];A=-+g[f+48>>2];B=-+g[f+52>>2];C=-+g[f+56>>2];f=c[m+12>>2]|0;D=+g[f>>2];E=+g[f+16>>2];F=+g[f+32>>2];G=+g[f+4>>2];H=+g[f+20>>2];I=+g[f+36>>2];J=+g[f+8>>2];K=+g[f+24>>2];L=+g[f+40>>2];M=+g[f+48>>2];N=+g[f+52>>2];O=+g[f+56>>2];g[k>>2]=r*D+s*E+t*F;g[k+4>>2]=r*G+s*H+t*I;g[k+8>>2]=r*J+s*K+t*L;g[k+12>>2]=0.0;g[k+16>>2]=u*D+v*E+w*F;g[k+20>>2]=u*G+v*H+w*I;g[k+24>>2]=u*J+v*K+w*L;g[k+28>>2]=0.0;g[k+32>>2]=x*D+y*E+z*F;g[k+36>>2]=x*G+y*H+z*I;g[k+40>>2]=x*J+y*K+z*L;g[k+44>>2]=0.0;g[k+48>>2]=r*A+s*B+t*C+(r*M+s*N+t*O);g[k+52>>2]=u*A+v*B+w*C+(u*M+v*N+w*O);g[k+56>>2]=x*A+y*B+z*C+(x*M+y*N+z*O);g[k+60>>2]=0.0;f=c[(c[p>>2]|0)+4>>2]|0;P=b+24|0;Q=b+40|0;tc[c[(c[f>>2]|0)+8>>2]&63](f,k,P,Q);g[Q>>2]=+g[Q>>2]+o;k=b+44|0;g[k>>2]=+g[k>>2]+o;k=b+48|0;g[k>>2]=+g[k>>2]+o;g[P>>2]=+g[P>>2]-o;k=b+28|0;g[k>>2]=+g[k>>2]-o;k=b+32|0;g[k>>2]=+g[k>>2]-o;k=c[d>>2]|0;d=c[n+8>>2]|0;c[k+740>>2]=c[m+8>>2];c[k+744>>2]=d;tc[c[(c[e>>2]|0)+64>>2]&63](e,b+12|0,P,Q);Q=c[l>>2]|0;do if(c[Q+748>>2]|0){l=c[Q+740>>2]|0;P=c[(c[h+8>>2]|0)+8>>2]|0;b=c[(c[h+12>>2]|0)+8>>2]|0;if((l|0)==(P|0)){yp(Q,l+4|0,b+4|0);break}else{yp(Q,b+4|0,P+4|0);break}}while(0);c[p>>2]=0;c[q>>2]=0;i=j;return}function Qq(b,d,e,f,h){b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;var j=0,k=0,l=0,m=0,n=0.0,o=0,p=0.0,q=0,r=0,s=0.0,t=0.0,u=0.0,v=0.0,w=0.0,x=0.0,y=0.0,z=0.0,A=0.0,B=0.0,C=0.0,D=0.0,E=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,O=0.0,P=0.0,Q=0.0,R=0.0,S=0.0,T=0.0,U=0.0,V=0.0,W=0.0,X=0.0,Y=0.0,Z=0.0,_=0.0,$=0.0,aa=0.0,ba=0.0,ca=0.0,da=0.0,ea=0.0,fa=0.0;h=i;i=i+240|0;f=h+224|0;j=h+208|0;k=h;l=(a[b+8>>0]|0)!=0;b=l?e:d;m=l?d:e;e=b+116|0;d=b+52|0;n=+g[e>>2]-+g[d>>2];l=b+120|0;o=b+56|0;p=+g[l>>2]-+g[o>>2];q=b+124|0;r=b+60|0;s=+g[q>>2]-+g[r>>2];t=+g[b+256>>2];if(n*n+p*p+s*s<t*t){u=1.0;i=h;return +u}t=+g[m+4>>2];s=+g[m+20>>2];p=+g[m+36>>2];n=+g[m+8>>2];v=+g[m+24>>2];w=+g[m+40>>2];x=+g[m+12>>2];y=+g[m+28>>2];z=+g[m+44>>2];A=-+g[m+52>>2];B=-+g[m+56>>2];C=-+g[m+60>>2];D=t*A+s*B+p*C;E=n*A+v*B+w*C;F=x*A+y*B+z*C;C=+g[b+4>>2];B=+g[b+20>>2];A=+g[b+36>>2];G=+g[b+8>>2];H=+g[b+24>>2];I=+g[b+40>>2];J=+g[b+12>>2];K=+g[b+28>>2];L=+g[b+44>>2];M=+g[d>>2];N=+g[o>>2];O=+g[r>>2];P=D+(t*M+s*N+p*O);Q=E+(n*M+v*N+w*O);R=F+(x*M+y*N+z*O);O=+g[b+68>>2];N=+g[b+84>>2];M=+g[b+100>>2];S=+g[b+72>>2];T=+g[b+88>>2];U=+g[b+104>>2];V=+g[b+76>>2];W=+g[b+92>>2];X=+g[b+108>>2];Y=+g[e>>2];Z=+g[l>>2];_=+g[q>>2];$=D+(t*Y+s*Z+p*_);D=E+(n*Y+v*Z+w*_);E=F+(x*Y+y*Z+z*_);q=c[m+192>>2]|0;if(((c[q+4>>2]|0)+-21|0)>>>0>=9){u=1.0;i=h;return +u}g[f>>2]=P;m=f+4|0;g[m>>2]=Q;l=f+8|0;g[l>>2]=R;g[f+12>>2]=0.0;if($<P){g[f>>2]=$;aa=$}else aa=P;if(D<Q){g[m>>2]=D;ba=D}else ba=Q;if(E<R){g[l>>2]=E;ca=E}else ca=R;g[j>>2]=P;e=j+4|0;g[e>>2]=Q;r=j+8|0;g[r>>2]=R;g[j+12>>2]=0.0;if(P<$){g[j>>2]=$;da=$}else da=P;if(Q<D){g[e>>2]=D;ea=D}else ea=Q;if(R<E){g[r>>2]=E;fa=E}else fa=R;_=+g[b+252>>2];g[f>>2]=aa-_;g[m>>2]=ba-_;g[l>>2]=ca-_;g[j>>2]=_+da;g[e>>2]=_+ea;g[r>>2]=_+fa;c[k>>2]=13488;g[k+4>>2]=t*C+s*B+p*A;g[k+8>>2]=t*G+s*H+p*I;g[k+12>>2]=t*J+s*K+p*L;g[k+16>>2]=0.0;g[k+20>>2]=n*C+v*B+w*A;g[k+24>>2]=n*G+v*H+w*I;g[k+28>>2]=n*J+v*K+w*L;g[k+32>>2]=0.0;g[k+36>>2]=x*C+y*B+z*A;g[k+40>>2]=x*G+y*H+z*I;g[k+44>>2]=x*J+y*K+z*L;g[k+48>>2]=0.0;g[k+52>>2]=P;g[k+56>>2]=Q;g[k+60>>2]=R;g[k+64>>2]=0.0;g[k+68>>2]=t*O+s*N+p*M;g[k+72>>2]=t*S+s*T+p*U;g[k+76>>2]=t*V+s*W+p*X;g[k+80>>2]=0.0;g[k+84>>2]=n*O+v*N+w*M;g[k+88>>2]=n*S+v*T+w*U;g[k+92>>2]=n*V+v*W+w*X;g[k+96>>2]=0.0;g[k+100>>2]=x*O+y*N+z*M;g[k+104>>2]=x*S+y*T+z*U;g[k+108>>2]=x*V+y*W+z*X;g[k+112>>2]=0.0;g[k+116>>2]=$;g[k+120>>2]=D;g[k+124>>2]=E;g[k+128>>2]=0.0;g[k+196>>2]=_;r=k+200|0;e=b+248|0;c[r>>2]=c[e>>2];if((q|0)!=0?(tc[c[(c[q>>2]|0)+64>>2]&63](q,k,f,j),_=+g[r>>2],_<+g[e>>2]):0){g[e>>2]=_;u=_;i=h;return +u}u=1.0;i=h;return +u}function Rq(a){a=a|0;xs(a);return}function Sq(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0.0;f=i;i=i+784|0;e=f+720|0;h=f+544|0;j=f+488|0;k=f+376|0;l=f+16|0;m=f;c[e>>2]=1065353216;n=e+4|0;c[n>>2]=0;c[n+4>>2]=0;c[n+8>>2]=0;c[n+12>>2]=0;c[e+20>>2]=1065353216;n=e+24|0;c[n>>2]=0;c[n+4>>2]=0;c[n+8>>2]=0;c[n+12>>2]=0;c[e+40>>2]=1065353216;n=e+44|0;c[n>>2]=0;c[n+4>>2]=0;c[n+8>>2]=0;c[n+12>>2]=0;c[n+16>>2]=0;c[h>>2]=5104;n=h+164|0;c[h+168>>2]=0;g[h+172>>2]=0.0;o=b+200|0;c[n>>2]=c[o>>2];p=c[b+196>>2]|0;c[j+8>>2]=0;c[j+12>>2]=-1;c[j+16>>2]=1065353216;c[j+20>>2]=1065353216;c[j+24>>2]=1065353216;g[j+28>>2]=0.0;c[j>>2]=11048;c[j+4>>2]=8;c[j+32>>2]=p;c[j+48>>2]=p;c[k+8>>2]=0;c[k+12>>2]=-1;c[k+16>>2]=1065353216;c[k+20>>2]=1065353216;c[k+24>>2]=1065353216;g[k+28>>2]=0.0;g[k+48>>2]=.03999999910593033;p=k+56|0;c[p>>2]=0;q=d+32|0;r=d+16|0;c[k>>2]=12312;s=k+60|0;c[k+4>>2]=1;c[s>>2]=c[d>>2];c[s+4>>2]=c[d+4>>2];c[s+8>>2]=c[d+8>>2];c[s+12>>2]=c[d+12>>2];d=k+76|0;c[d>>2]=c[r>>2];c[d+4>>2]=c[r+4>>2];c[d+8>>2]=c[r+8>>2];c[d+12>>2]=c[r+12>>2];r=k+92|0;c[r>>2]=c[q>>2];c[r+4>>2]=c[q+4>>2];c[r+8>>2]=c[q+8>>2];c[r+12>>2]=c[q+12>>2];g[l+308>>2]=9.999999747378752e-05;a[l+332>>0]=0;c[m>>2]=12504;c[m+4>>2]=l;c[m+8>>2]=j;c[m+12>>2]=k;if(Sp(m,b+4|0,b+68|0,e,e,h)|0?(t=+g[n>>2],+g[o>>2]>t):0)g[o>>2]=t;c[k>>2]=10864;k=c[p>>2]|0;if(!k){i=f;return}Kb[c[c[k>>2]>>2]&255](k);k=c[p>>2]|0;if(!k){i=f;return}c[3710]=(c[3710]|0)+1;xs(c[k+-4>>2]|0);i=f;return}function Tq(a){a=a|0;return}function Uq(a){a=a|0;xs(a);return}function Vq(b){b=b|0;var d=0,e=0;c[b>>2]=13712;if(!(a[b+16>>0]|0))return;d=c[b+20>>2]|0;if(!d)return;e=c[b+4>>2]|0;Mb[c[(c[e>>2]|0)+16>>2]&127](e,d);return}function Wq(b){b=b|0;var d=0,e=0;c[b>>2]=13712;if(!(a[b+16>>0]|0)){xs(b);return}d=c[b+20>>2]|0;if(!d){xs(b);return}e=c[b+4>>2]|0;Mb[c[(c[e>>2]|0)+16>>2]&127](e,d);xs(b);return}
function Nr(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,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,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0,Fa=0,Ga=0,Ha=0,Ia=0,Ja=0,Ka=0,La=0,Ma=0,Na=0,Oa=0,Pa=0,Qa=0,Ra=0,Sa=0,Ta=0,Ua=0,Va=0,Wa=0,Xa=0,Ya=0,Za=0,_a=0,$a=0,ab=0,bb=0,cb=0,db=0,eb=0,fb=0,gb=0,hb=0,ib=0,jb=0,kb=0,lb=0,mb=0,nb=0,ob=0,pb=0,qb=0,rb=0,sb=0;g=c[e>>2]|0;h=c[f>>2]|0;i=(g|0)!=0;if(i)j=c[g+12>>2]|0;else j=b;k=c[j+88>>2]|0;l=c[j+92>>2]|0;m=c[j+96>>2]|0;if(!h)n=d;else n=c[h+12>>2]|0;j=c[n+88>>2]|0;o=c[n+92>>2]|0;p=c[n+96>>2]|0;n=c[b+88>>2]|0;q=(c[d+88>>2]|0)-n|0;r=c[b+92>>2]|0;s=(c[d+92>>2]|0)-r|0;t=c[b+96>>2]|0;b=(c[d+96>>2]|0)-t|0;d=c[(i?g:h)+12>>2]|0;i=(c[d+88>>2]|0)-n|0;u=(c[d+92>>2]|0)-r|0;v=(c[d+96>>2]|0)-t|0;d=($(u,b)|0)-($(v,s)|0)|0;w=((d|0)<0)<<31>>31;x=($(v,q)|0)-($(i,b)|0)|0;v=((x|0)<0)<<31>>31;y=($(i,s)|0)-($(u,q)|0)|0;u=((y|0)<0)<<31>>31;i=Ps(d|0,w|0,n|0,((n|0)<0)<<31>>31|0)|0;n=D;z=Ps(x|0,v|0,r|0,((r|0)<0)<<31>>31|0)|0;r=D;A=Ps(y|0,u|0,t|0,((t|0)<0)<<31>>31|0)|0;t=Es(i|0,n|0,A|0,D|0)|0;A=Es(t|0,D|0,z|0,r|0)|0;r=D;z=((s|0)<0)<<31>>31;t=Ps(y|0,u|0,s|0,z|0)|0;n=D;i=((b|0)<0)<<31>>31;B=Ps(x|0,v|0,b|0,i|0)|0;C=Bs(t|0,n|0,B|0,D|0)|0;B=D;n=Ps(d|0,w|0,b|0,i|0)|0;i=D;t=((q|0)<0)<<31>>31;E=Ps(y|0,u|0,q|0,t|0)|0;F=Bs(n|0,i|0,E|0,D|0)|0;E=D;i=Ps(x|0,v|0,q|0,t|0)|0;t=D;n=Ps(d|0,w|0,s|0,z|0)|0;z=Bs(i|0,t|0,n|0,D|0)|0;n=D;t=Ps(C|0,B|0,k|0,((k|0)<0)<<31>>31|0)|0;i=D;G=Ps(F|0,E|0,l|0,((l|0)<0)<<31>>31|0)|0;H=Es(G|0,D|0,t|0,i|0)|0;i=D;t=Ps(z|0,n|0,m|0,((m|0)<0)<<31>>31|0)|0;G=Es(H|0,i|0,t|0,D|0)|0;t=D;if((g|0)!=0?(c[g+12>>2]|0)!=0:0){i=a+100|0;H=k;I=l;J=m;K=g;L=t;M=G;while(1){K=c[(c[K+8>>2]|0)+4>>2]|0;N=K+12|0;O=c[N>>2]|0;P=c[O+88>>2]|0;Q=((P|0)<0)<<31>>31;R=Ps(P|0,Q|0,d|0,w|0)|0;S=D;T=c[O+92>>2]|0;U=((T|0)<0)<<31>>31;V=Ps(T|0,U|0,x|0,v|0)|0;W=Es(V|0,D|0,R|0,S|0)|0;S=D;R=c[O+96>>2]|0;O=((R|0)<0)<<31>>31;V=Ps(R|0,O|0,y|0,u|0)|0;X=Es(W|0,S|0,V|0,D|0)|0;V=D;if((V|0)<(r|0)|(V|0)==(r|0)&X>>>0<A>>>0){Y=J;Z=I;_=H;aa=M;ba=L;break}if((c[K+20>>2]|0)==(c[i>>2]|0)){Y=J;Z=I;_=H;aa=M;ba=L;break}X=Ps(P|0,Q|0,C|0,B|0)|0;Q=D;P=Ps(T|0,U|0,F|0,E|0)|0;U=Es(P|0,D|0,X|0,Q|0)|0;Q=D;X=Ps(R|0,O|0,z|0,n|0)|0;O=Es(U|0,Q|0,X|0,D|0)|0;X=D;if(!((X|0)>(L|0)|(X|0)==(L|0)&O>>>0>M>>>0)){Y=J;Z=I;_=H;aa=M;ba=L;break}c[e>>2]=K;Q=c[N>>2]|0;N=c[Q+88>>2]|0;U=c[Q+92>>2]|0;R=c[Q+96>>2]|0;if(!Q){Y=R;Z=U;_=N;aa=O;ba=X;break}else{H=N;I=U;J=R;L=X;M=O}}ca=Y;da=Z;ea=_;fa=c[f>>2]|0;ga=aa;ha=ba}else{ca=m;da=l;ea=k;fa=h;ga=G;ha=t}t=Ps(C|0,B|0,j|0,((j|0)<0)<<31>>31|0)|0;G=D;k=Ps(F|0,E|0,o|0,((o|0)<0)<<31>>31|0)|0;l=Es(k|0,D|0,t|0,G|0)|0;G=D;t=Ps(z|0,n|0,p|0,((p|0)<0)<<31>>31|0)|0;k=Es(l|0,G|0,t|0,D|0)|0;t=D;a:do if(fa)if(!(c[fa+12>>2]|0)){ia=fa;ja=p;ka=o;la=j;ma=k;na=t}else{G=a+100|0;l=j;m=o;ba=p;aa=fa;_=t;Z=k;while(1){Y=c[c[aa+8>>2]>>2]|0;M=Y+12|0;L=c[M>>2]|0;J=c[L+88>>2]|0;I=((J|0)<0)<<31>>31;H=Ps(J|0,I|0,d|0,w|0)|0;K=D;i=c[L+92>>2]|0;O=((i|0)<0)<<31>>31;X=Ps(i|0,O|0,x|0,v|0)|0;R=Es(X|0,D|0,H|0,K|0)|0;K=D;H=c[L+96>>2]|0;L=((H|0)<0)<<31>>31;X=Ps(H|0,L|0,y|0,u|0)|0;U=Es(R|0,K|0,X|0,D|0)|0;X=D;if((X|0)<(r|0)|(X|0)==(r|0)&U>>>0<A>>>0){ia=aa;ja=ba;ka=m;la=l;ma=Z;na=_;break a}if((c[Y+20>>2]|0)==(c[G>>2]|0)){ia=aa;ja=ba;ka=m;la=l;ma=Z;na=_;break a}U=Ps(J|0,I|0,C|0,B|0)|0;I=D;J=Ps(i|0,O|0,F|0,E|0)|0;O=Es(J|0,D|0,U|0,I|0)|0;I=D;U=Ps(H|0,L|0,z|0,n|0)|0;L=Es(O|0,I|0,U|0,D|0)|0;U=D;if(!((U|0)>(_|0)|(U|0)==(_|0)&L>>>0>Z>>>0)){ia=aa;ja=ba;ka=m;la=l;ma=Z;na=_;break a}c[f>>2]=Y;I=c[M>>2]|0;M=c[I+88>>2]|0;O=c[I+92>>2]|0;H=c[I+96>>2]|0;if(!I){ia=Y;ja=H;ka=O;la=M;ma=L;na=U;break}else{l=M;m=O;ba=H;aa=Y;_=U;Z=L}}}else{ia=0;ja=p;ka=o;la=j;ma=k;na=t}while(0);t=Bs(ma|0,na|0,ga|0,ha|0)|0;ha=D;if((ha|0)>0|(ha|0)==0&t>>>0>0){ga=a+100|0;na=Bs(0,0,y|0,u|0)|0;ma=D;k=ca;j=da;o=ea;p=ja;A=ka;r=la;fa=t;Z=ha;b:while(1){_=r;aa=A;ba=p;m=Z;l=fa;c:while(1){G=($(aa-j|0,s)|0)+($(ba-k|0,b)|0)+($(_-o|0,q)|0)|0;L=((G|0)<0)<<31>>31;oa=c[e>>2]|0;do if(((oa|0)!=0?(c[oa+12>>2]|0)!=0:0)?(pa=c[(c[oa>>2]|0)+8>>2]|0,(c[pa+20>>2]|0)>(c[ga>>2]|0)):0){U=c[pa+12>>2]|0;qa=c[U+88>>2]|0;Y=qa-o|0;ra=c[U+92>>2]|0;H=ra-j|0;sa=c[U+96>>2]|0;U=sa-k|0;O=Ps(Y|0,((Y|0)<0)<<31>>31|0,C|0,B|0)|0;M=D;I=Ps(H|0,((H|0)<0)<<31>>31|0,F|0,E|0)|0;J=Es(I|0,D|0,O|0,M|0)|0;M=D;O=Ps(U|0,((U|0)<0)<<31>>31|0,z|0,n|0)|0;I=Es(J|0,M|0,O|0,D|0)|0;O=D;M=($(H,s)|0)+($(Y,q)|0)+($(U,b)|0)|0;U=((M|0)<0)<<31>>31;if((I|0)==0&(O|0)==0)if((M|0)<0)break c;else break;if((O|0)<0){if((M|0)>0){ta=1;ua=M;va=U}else{Y=(M|0)<0;H=Bs(0,0,M|0,U|0)|0;ta=M>>31;ua=Y?H:0;va=Y?D:0}Y=0-ta|0;H=Bs(0,0,I|0,O|0)|0;O=D;if((G|0)>0){wa=1;xa=G;ya=L}else{I=(G|0)<0;M=Bs(0,0,G|0,L|0)|0;wa=G>>31;xa=I?M:0;ya=I?D:0}if(!((m|0)>0|(m|0)==0&l>>>0>0))if((m|0)<0){I=Bs(0,0,l|0,m|0)|0;za=0-wa|0;Aa=I;Ba=D}else{za=wa;Aa=0;Ba=0}else{za=wa;Aa=l;Ba=m}if((za|0)==(Y|0)){if(!ta)break c;I=Ps(Aa|0,0,ua|0,0)|0;M=D;U=Ps(Ba|0,0,ua|0,0)|0;J=D;i=Ps(Aa|0,0,va|0,0)|0;X=D;K=Ps(Ba|0,0,va|0,0)|0;R=D;N=Es(U|0,0,i|0,0)|0;i=D;U=Es(J|0,0,K|0,R|0)|0;R=Es(U|0,D|0,X|0,0)|0;X=Es(R|0,D|0,i|0,0)|0;i=D;R=Es(0,N|0,I|0,M|0)|0;M=D;I=Es(X|0,i|0,(M>>>0<N>>>0|(M|0)==(N|0)&R>>>0<0)&1|0,0)|0;N=D;i=Ps(xa|0,0,H|0,0)|0;X=D;U=Ps(ya|0,0,H|0,0)|0;H=D;K=Ps(xa|0,0,O|0,0)|0;J=D;Q=Ps(ya|0,0,O|0,0)|0;O=D;P=Es(U|0,0,K|0,0)|0;K=D;U=Es(H|0,0,Q|0,O|0)|0;O=Es(U|0,D|0,J|0,0)|0;J=Es(O|0,D|0,K|0,0)|0;K=D;O=Es(0,P|0,i|0,X|0)|0;X=D;i=Es(J|0,K|0,(X>>>0<P>>>0|(X|0)==(P|0)&O>>>0<0)&1|0,0)|0;P=D;do if(N>>>0<P>>>0|(N|0)==(P|0)&I>>>0<i>>>0)Ca=-1;else{if(N>>>0>P>>>0|(N|0)==(P|0)&I>>>0>i>>>0){Ca=1;break}if(M>>>0<X>>>0|(M|0)==(X|0)&R>>>0<O>>>0){Ca=-1;break}Ca=(M>>>0>X>>>0|(M|0)==(X|0)&R>>>0>O>>>0)&1}while(0);Da=$(Ca,Y)|0}else Da=Y-za|0;if((Da|0)>-1)break c}}while(0);O=c[f>>2]|0;if(!O){Ea=121;break b}if(!(c[O+12>>2]|0)){Ea=121;break b}R=c[c[O+8>>2]>>2]|0;if((c[R+20>>2]|0)<=(c[ga>>2]|0)){Ea=121;break b}O=R+12|0;X=c[O>>2]|0;M=c[X+88>>2]|0;i=M-_|0;I=c[X+92>>2]|0;P=I-aa|0;N=c[X+96>>2]|0;X=N-ba|0;K=((i|0)<0)<<31>>31;J=Ps(i|0,K|0,d|0,w|0)|0;U=D;Q=((P|0)<0)<<31>>31;H=Ps(P|0,Q|0,x|0,v|0)|0;T=Es(H|0,D|0,J|0,U|0)|0;U=D;J=((X|0)<0)<<31>>31;H=Ps(X|0,J|0,na|0,ma|0)|0;if(!((T|0)==(H|0)&(U|0)==(D|0))){Ea=121;break b}U=Ps(i|0,K|0,C|0,B|0)|0;K=D;H=Ps(P|0,Q|0,F|0,E|0)|0;Q=Es(H|0,D|0,U|0,K|0)|0;K=D;U=Ps(X|0,J|0,z|0,n|0)|0;J=Es(Q|0,K|0,U|0,D|0)|0;U=D;K=($(P,s)|0)+($(i,q)|0)+($(X,b)|0)|0;X=((K|0)<0)<<31>>31;i=M-o|0;M=I-j|0;I=N-k|0;N=Ps(i|0,((i|0)<0)<<31>>31|0,C|0,B|0)|0;i=D;P=Ps(M|0,((M|0)<0)<<31>>31|0,F|0,E|0)|0;M=Es(P|0,D|0,N|0,i|0)|0;i=D;N=Ps(I|0,((I|0)<0)<<31>>31|0,z|0,n|0)|0;I=Es(M|0,i|0,N|0,D|0)|0;N=D;if(!((N|0)>0|(N|0)==0&I>>>0>0)){Ea=121;break b}if((J|0)==0&(U|0)==0){if((K|0)>=0){Ea=121;break b}}else{if((U|0)>=0){Ea=121;break b}if((K|0)>0){Fa=1;Ga=K;Ha=X}else{i=(K|0)<0;M=Bs(0,0,K|0,X|0)|0;Fa=K>>31;Ga=i?M:0;Ha=i?D:0}i=0-Fa|0;M=Bs(0,0,J|0,U|0)|0;U=D;if((G|0)>0){Ia=1;Ja=G;Ka=L}else{J=(G|0)<0;K=Bs(0,0,G|0,L|0)|0;Ia=G>>31;Ja=J?K:0;Ka=J?D:0}do if((m|0)>0|(m|0)==0&l>>>0>0){La=Ia;Ma=l;Na=m}else{if((m|0)>=0){La=Ia;Ma=0;Na=0;break}J=Bs(0,0,l|0,m|0)|0;La=0-Ia|0;Ma=J;Na=D}while(0);if((La|0)==(i|0)){if(!Fa){Ea=121;break b}G=Ps(Ma|0,0,Ga|0,0)|0;L=D;J=Ps(Na|0,0,Ga|0,0)|0;K=D;X=Ps(Ma|0,0,Ha|0,0)|0;P=D;Q=Ps(Na|0,0,Ha|0,0)|0;H=D;T=Es(J|0,0,X|0,0)|0;X=D;J=Es(K|0,0,Q|0,H|0)|0;H=Es(J|0,D|0,P|0,0)|0;P=Es(H|0,D|0,X|0,0)|0;X=D;H=Es(0,T|0,G|0,L|0)|0;L=D;G=Es(P|0,X|0,(L>>>0<T>>>0|(L|0)==(T|0)&H>>>0<0)&1|0,0)|0;T=D;X=Ps(Ja|0,0,M|0,0)|0;P=D;J=Ps(Ka|0,0,M|0,0)|0;Q=D;K=Ps(Ja|0,0,U|0,0)|0;V=D;S=Ps(Ka|0,0,U|0,0)|0;W=D;Oa=Es(J|0,0,K|0,0)|0;K=D;J=Es(Q|0,0,S|0,W|0)|0;W=Es(J|0,D|0,V|0,0)|0;V=Es(W|0,D|0,K|0,0)|0;K=D;W=Es(0,Oa|0,X|0,P|0)|0;P=D;X=Es(V|0,K|0,(P>>>0<Oa>>>0|(P|0)==(Oa|0)&W>>>0<0)&1|0,0)|0;Oa=D;do if(T>>>0<Oa>>>0|(T|0)==(Oa|0)&G>>>0<X>>>0)Pa=-1;else{if(T>>>0>Oa>>>0|(T|0)==(Oa|0)&G>>>0>X>>>0){Pa=1;break}if(L>>>0<P>>>0|(L|0)==(P|0)&H>>>0<W>>>0){Pa=-1;break}Pa=(L>>>0>P>>>0|(L|0)==(P|0)&H>>>0>W>>>0)&1}while(0);Qa=$(Pa,i)|0}else Qa=i-La|0;if((Qa|0)<=0){Ea=121;break b}}c[f>>2]=R;W=c[O>>2]|0;_=c[W+88>>2]|0;aa=c[W+92>>2]|0;ba=c[W+96>>2]|0;m=N;l=I}l=_-qa|0;m=aa-ra|0;W=ba-sa|0;H=Ps(l|0,((l|0)<0)<<31>>31|0,C|0,B|0)|0;l=D;P=Ps(m|0,((m|0)<0)<<31>>31|0,F|0,E|0)|0;m=Es(P|0,D|0,H|0,l|0)|0;l=D;H=Ps(W|0,((W|0)<0)<<31>>31|0,z|0,n|0)|0;W=Es(m|0,l|0,H|0,D|0)|0;c[e>>2]=(oa|0)==(g|0)?0:pa;k=sa;j=ra;o=qa;p=ba;A=aa;r=_;fa=W;Z=D}if((Ea|0)==121)return}if((ha|0)>=0)return;Z=a+100|0;a=Bs(0,0,y|0,u|0)|0;u=D;y=ca;ca=da;da=ea;ea=ja;ja=ka;ka=la;la=t;t=ha;ha=ia;while(1){ia=($(ja-ca|0,s)|0)+($(ea-y|0,b)|0)+($(ka-da|0,q)|0)|0;fa=((ia|0)<0)<<31>>31;d:do if(!ha){Ra=ea;Sa=ja;Ta=ka;Ua=ia;Va=la;Wa=ia;Xa=fa;Ya=t}else{r=ha;A=ka;p=ja;qa=ea;o=ia;ra=ia;j=fa;sa=t;k=la;while(1){if(!(c[r+12>>2]|0)){Ra=qa;Sa=p;Ta=A;Ua=o;Va=k;Wa=ra;Xa=j;Ya=sa;break d}pa=c[(c[r+4>>2]|0)+8>>2]|0;if((c[pa+20>>2]|0)<=(c[Z>>2]|0)){Ra=qa;Sa=p;Ta=A;Ua=o;Va=k;Wa=ra;Xa=j;Ya=sa;break d}g=c[pa+12>>2]|0;oa=c[g+88>>2]|0;Qa=oa-A|0;La=c[g+92>>2]|0;Pa=La-p|0;Ka=c[g+96>>2]|0;g=Ka-qa|0;Ja=Ps(Qa|0,((Qa|0)<0)<<31>>31|0,C|0,B|0)|0;Ha=D;Na=Ps(Pa|0,((Pa|0)<0)<<31>>31|0,F|0,E|0)|0;Ma=Es(Na|0,D|0,Ja|0,Ha|0)|0;Ha=D;Ja=Ps(g|0,((g|0)<0)<<31>>31|0,z|0,n|0)|0;Na=Es(Ma|0,Ha|0,Ja|0,D|0)|0;Ja=D;Ha=($(Pa,s)|0)+($(Qa,q)|0)+($(g,b)|0)|0;g=((Ha|0)<0)<<31>>31;do if((Na|0)==0&(Ja|0)==0){if((Ha|0)<=0){Ra=qa;Sa=p;Ta=A;Ua=o;Va=k;Wa=ra;Xa=j;Ya=sa;break d}}else{if((Ja|0)>=0){Ra=qa;Sa=p;Ta=A;Ua=o;Va=k;Wa=ra;Xa=j;Ya=sa;break d}if((Ha|0)>0){Za=1;_a=Ha;$a=g}else{Qa=(Ha|0)<0;Pa=Bs(0,0,Ha|0,g|0)|0;Za=Ha>>31;_a=Qa?Pa:0;$a=Qa?D:0}Qa=0-Za|0;Pa=Bs(0,0,Na|0,Ja|0)|0;Ma=D;if((o|0)>0){ab=1;bb=ra;cb=j}else{Ga=(o|0)<0;Fa=Bs(0,0,ra|0,j|0)|0;ab=o>>31;bb=Ga?Fa:0;cb=Ga?D:0}if(!((sa|0)>0|(sa|0)==0&k>>>0>0))if((sa|0)<0){Ga=Bs(0,0,k|0,sa|0)|0;db=0-ab|0;eb=Ga;fb=D}else{db=ab;eb=0;fb=0}else{db=ab;eb=k;fb=sa}if((db|0)==(Qa|0)){if(!Za)break;Ga=Ps(eb|0,0,_a|0,0)|0;Fa=D;Ia=Ps(fb|0,0,_a|0,0)|0;ma=D;na=Ps(eb|0,0,$a|0,0)|0;ga=D;Da=Ps(fb|0,0,$a|0,0)|0;za=D;Ca=Es(Ia|0,0,na|0,0)|0;na=D;Ia=Es(ma|0,0,Da|0,za|0)|0;za=Es(Ia|0,D|0,ga|0,0)|0;ga=Es(za|0,D|0,na|0,0)|0;na=D;za=Es(0,Ca|0,Ga|0,Fa|0)|0;Fa=D;Ga=Es(ga|0,na|0,(Fa>>>0<Ca>>>0|(Fa|0)==(Ca|0)&za>>>0<0)&1|0,0)|0;Ca=D;na=Ps(bb|0,0,Pa|0,0)|0;ga=D;Ia=Ps(cb|0,0,Pa|0,0)|0;Pa=D;Da=Ps(bb|0,0,Ma|0,0)|0;ma=D;ya=Ps(cb|0,0,Ma|0,0)|0;Ma=D;xa=Es(Ia|0,0,Da|0,0)|0;Da=D;Ia=Es(Pa|0,0,ya|0,Ma|0)|0;Ma=Es(Ia|0,D|0,ma|0,0)|0;ma=Es(Ma|0,D|0,Da|0,0)|0;Da=D;Ma=Es(0,xa|0,na|0,ga|0)|0;ga=D;na=Es(ma|0,Da|0,(ga>>>0<xa>>>0|(ga|0)==(xa|0)&Ma>>>0<0)&1|0,0)|0;xa=D;do if(Ca>>>0<xa>>>0|(Ca|0)==(xa|0)&Ga>>>0<na>>>0)gb=-1;else{if(Ca>>>0>xa>>>0|(Ca|0)==(xa|0)&Ga>>>0>na>>>0){gb=1;break}if(Fa>>>0<ga>>>0|(Fa|0)==(ga|0)&za>>>0<Ma>>>0){gb=-1;break}gb=(Fa>>>0>ga>>>0|(Fa|0)==(ga|0)&za>>>0>Ma>>>0)&1}while(0);hb=$(gb,Qa)|0}else hb=Qa-db|0;if((hb|0)>=1){Ra=qa;Sa=p;Ta=A;Ua=o;Va=k;Wa=ra;Xa=j;Ya=sa;break d}}while(0);Ja=oa-da|0;Na=La-ca|0;Ha=Ka-y|0;g=Ps(Ja|0,((Ja|0)<0)<<31>>31|0,C|0,B|0)|0;Y=D;Ma=Ps(Na|0,((Na|0)<0)<<31>>31|0,F|0,E|0)|0;za=Es(Ma|0,D|0,g|0,Y|0)|0;Y=D;g=Ps(Ha|0,((Ha|0)<0)<<31>>31|0,z|0,n|0)|0;Ma=Es(za|0,Y|0,g|0,D|0)|0;g=D;r=(r|0)==(h|0)?0:pa;c[f>>2]=r;Y=($(Na,s)|0)+($(Ha,b)|0)+($(Ja,q)|0)|0;Ja=((Y|0)<0)<<31>>31;if(!r){Ra=Ka;Sa=La;Ta=oa;Ua=Y;Va=Ma;Wa=Y;Xa=Ja;Ya=g;break}else{A=oa;p=La;qa=Ka;o=Y;ra=Y;j=Ja;sa=g;k=Ma}}}while(0);fa=c[e>>2]|0;if(!fa){Ea=121;break}if(!(c[fa+12>>2]|0)){Ea=121;break}ia=c[(c[fa+8>>2]|0)+4>>2]|0;if((c[ia+20>>2]|0)<=(c[Z>>2]|0)){Ea=121;break}fa=ia+12|0;_=c[fa>>2]|0;aa=c[_+88>>2]|0;ba=aa-da|0;k=c[_+92>>2]|0;sa=k-ca|0;j=c[_+96>>2]|0;_=j-y|0;ra=((ba|0)<0)<<31>>31;o=Ps(ba|0,ra|0,d|0,w|0)|0;qa=D;p=((sa|0)<0)<<31>>31;A=Ps(sa|0,p|0,x|0,v|0)|0;r=Es(A|0,D|0,o|0,qa|0)|0;qa=D;o=((_|0)<0)<<31>>31;A=Ps(_|0,o|0,a|0,u|0)|0;if(!((r|0)==(A|0)&(qa|0)==(D|0))){Ea=121;break}qa=Ps(ba|0,ra|0,C|0,B|0)|0;ra=D;A=Ps(sa|0,p|0,F|0,E|0)|0;p=Es(A|0,D|0,qa|0,ra|0)|0;ra=D;qa=Ps(_|0,o|0,z|0,n|0)|0;o=Es(p|0,ra|0,qa|0,D|0)|0;qa=D;ra=($(sa,s)|0)+($(ba,q)|0)+($(_,b)|0)|0;_=((ra|0)<0)<<31>>31;ba=Ta-aa|0;aa=Sa-k|0;k=Ra-j|0;j=Ps(ba|0,((ba|0)<0)<<31>>31|0,C|0,B|0)|0;ba=D;sa=Ps(aa|0,((aa|0)<0)<<31>>31|0,F|0,E|0)|0;aa=Es(sa|0,D|0,j|0,ba|0)|0;ba=D;j=Ps(k|0,((k|0)<0)<<31>>31|0,z|0,n|0)|0;k=Es(aa|0,ba|0,j|0,D|0)|0;j=D;if((j|0)>=0){Ea=121;break}if((o|0)==0&(qa|0)==0){if((ra|0)<=0){Ea=121;break}}else{if((qa|0)>=0){Ea=121;break}if((ra|0)>0){ib=ra;jb=_;kb=1}else{ba=(ra|0)<0;aa=Bs(0,0,ra|0,_|0)|0;ib=ba?aa:0;jb=ba?D:0;kb=ra>>31}ra=0-kb|0;ba=Bs(0,0,o|0,qa|0)|0;qa=D;if((Ua|0)>0){lb=1;mb=Wa;nb=Xa}else{o=(Ua|0)<0;aa=Bs(0,0,Wa|0,Xa|0)|0;lb=Ua>>31;mb=o?aa:0;nb=o?D:0}do if((Ya|0)>0|(Ya|0)==0&Va>>>0>0){ob=lb;pb=Va;qb=Ya}else{if((Ya|0)>=0){ob=lb;pb=0;qb=0;break}o=Bs(0,0,Va|0,Ya|0)|0;ob=0-lb|0;pb=o;qb=D}while(0);if((ob|0)==(ra|0)){if(!kb){Ea=121;break}o=Ps(pb|0,0,ib|0,0)|0;aa=D;_=Ps(qb|0,0,ib|0,0)|0;sa=D;p=Ps(pb|0,0,jb|0,0)|0;A=D;r=Ps(qb|0,0,jb|0,0)|0;I=D;N=Es(_|0,0,p|0,0)|0;p=D;_=Es(sa|0,0,r|0,I|0)|0;I=Es(_|0,D|0,A|0,0)|0;A=Es(I|0,D|0,p|0,0)|0;p=D;I=Es(0,N|0,o|0,aa|0)|0;aa=D;o=Es(A|0,p|0,(aa>>>0<N>>>0|(aa|0)==(N|0)&I>>>0<0)&1|0,0)|0;N=D;p=Ps(mb|0,0,ba|0,0)|0;A=D;_=Ps(nb|0,0,ba|0,0)|0;r=D;sa=Ps(mb|0,0,qa|0,0)|0;O=D;R=Ps(nb|0,0,qa|0,0)|0;i=D;Ma=Es(_|0,0,sa|0,0)|0;sa=D;_=Es(r|0,0,R|0,i|0)|0;i=Es(_|0,D|0,O|0,0)|0;O=Es(i|0,D|0,sa|0,0)|0;sa=D;i=Es(0,Ma|0,p|0,A|0)|0;A=D;p=Es(O|0,sa|0,(A>>>0<Ma>>>0|(A|0)==(Ma|0)&i>>>0<0)&1|0,0)|0;Ma=D;do if(N>>>0<Ma>>>0|(N|0)==(Ma|0)&o>>>0<p>>>0)rb=-1;else{if(N>>>0>Ma>>>0|(N|0)==(Ma|0)&o>>>0>p>>>0){rb=1;break}if(aa>>>0<A>>>0|(aa|0)==(A|0)&I>>>0<i>>>0){rb=-1;break}rb=(aa>>>0>A>>>0|(aa|0)==(A|0)&I>>>0>i>>>0)&1}while(0);sb=$(rb,ra)|0}else sb=ra-ob|0;if((sb|0)>=0){Ea=121;break}}c[e>>2]=ia;i=c[fa>>2]|0;y=c[i+96>>2]|0;ca=c[i+92>>2]|0;da=c[i+88>>2]|0;ea=Ra;ja=Sa;ka=Ta;la=k;t=j;ha=c[f>>2]|0}if((Ea|0)==121)return}function Or(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0.0,L=0.0,M=0.0,N=0,O=0,P=0,Q=0,R=0.0,S=0.0,T=0.0,U=0.0,V=0.0,W=0.0,X=0.0,Y=0.0,Z=0.0,_=0.0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0.0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0,Fa=0,Ga=0,Ha=0,Ia=0,Ja=0,Ka=0,La=0,Ma=0,Na=0,Oa=0,Pa=0,Qa=0,Ra=0,Sa=0,Ta=0,Ua=0,Va=0,Wa=0,Xa=0,Ya=0,Za=0,_a=0,$a=0,ab=0,bb=0;f=i;i=i+256|0;h=f+232|0;j=f+216|0;l=f+200|0;m=f+184|0;n=f+56|0;o=f+40|0;p=f+24|0;q=f+12|0;r=f;if((e|0)<1){s=b+4|0;t=b+12|0;u=c[t>>2]|0;v=b+16|0;if(u){if(a[v>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[u+-4>>2]|0);}c[t>>2]=0}a[v>>0]=1;c[t>>2]=0;c[s>>2]=0;c[b+8>>2]=0;s=b+24|0;t=b+32|0;v=c[t>>2]|0;u=b+36|0;if(v){if(a[u>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[v+-4>>2]|0);}c[t>>2]=0}a[u>>0]=1;c[t>>2]=0;c[s>>2]=0;c[b+28>>2]=0;s=b+44|0;t=b+52|0;u=c[t>>2]|0;v=b+56|0;if(u){if(a[v>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[u+-4>>2]|0);}c[t>>2]=0}a[v>>0]=1;c[t>>2]=0;c[s>>2]=0;c[b+48>>2]=0;i=f;return}c[n+32>>2]=0;s=n+36|0;c[s>>2]=0;t=n+40|0;c[t>>2]=0;v=n+44|0;c[v>>2]=256;c[n+48>>2]=0;u=n+52|0;c[u>>2]=0;w=n+56|0;c[w>>2]=0;x=n+60|0;c[x>>2]=256;c[n+64>>2]=0;c[n+68>>2]=0;c[n+72>>2]=0;c[n+76>>2]=256;y=n+96|0;a[y>>0]=1;z=n+92|0;c[z>>2]=0;A=n+84|0;c[A>>2]=0;B=n+88|0;c[B>>2]=0;C=1900671690;D=1900671690;E=1900671690;F=-246811958;G=-246811958;H=-246811958;I=0;J=d;while(1){K=+g[J>>2];L=+g[J+4>>2];M=+g[J+8>>2];N=K<(c[k>>2]=C,+g[k>>2]);O=(g[k>>2]=K,c[k>>2]|0);C=N?O:C;N=L<(c[k>>2]=D,+g[k>>2]);P=(g[k>>2]=L,c[k>>2]|0);D=N?P:D;N=M<(c[k>>2]=E,+g[k>>2]);Q=(g[k>>2]=M,c[k>>2]|0);E=N?Q:E;F=(c[k>>2]=F,+g[k>>2])<K?O:F;G=(c[k>>2]=G,+g[k>>2])<L?P:G;H=(c[k>>2]=H,+g[k>>2])<M?Q:H;I=I+1|0;if((I|0)==(e|0))break;else J=J+16|0}J=(e|0)>0;M=(c[k>>2]=F,+g[k>>2]);L=(c[k>>2]=C,+g[k>>2]);K=M-L;R=(c[k>>2]=G,+g[k>>2]);S=(c[k>>2]=D,+g[k>>2]);T=R-S;U=(c[k>>2]=H,+g[k>>2]);V=(c[k>>2]=E,+g[k>>2]);W=U-V;E=K<T;H=T<W;D=K<W;G=E?(H?2:1):D?2:0;C=n+112|0;c[C>>2]=G;F=E?(D?0:2):H?1:2;H=n+104|0;D=(F|0)==(G|0)?((G+1|0)>>>0)%3|0:F;c[H>>2]=D;F=(G^3)-D|0;D=n+108|0;c[D>>2]=F;X=K*9.788566967472434e-05;K=T*9.788566967472434e-05;T=W*9.788566967472434e-05;if(((F+1|0)%3|0|0)==(G|0)){Y=X;Z=K;_=T}else{Y=-X;Z=-K;_=-T}g[n>>2]=Y;G=n+4|0;g[G>>2]=Z;F=n+8|0;g[F>>2]=_;g[n+12>>2]=0.0;T=Y!=0.0?1.0/Y:Y;Y=Z!=0.0?1.0/Z:Z;Z=_!=0.0?1.0/_:_;E=n+16|0;g[E>>2]=(L+M)*.5;I=n+20|0;g[I>>2]=(S+R)*.5;Q=n+24|0;g[Q>>2]=(V+U)*.5;g[n+28>>2]=0.0;P=h+16|0;a[P>>0]=1;O=h+12|0;c[O>>2]=0;N=h+4|0;c[N>>2]=0;aa=h+8|0;c[aa>>2]=0;if(J){c[3708]=(c[3708]|0)+1;ba=ws((e<<4|3)+16|0)|0;if(!ba)ca=0;else{da=ba+4+15&-16;c[da+-4>>2]=ba;ca=da}da=c[N>>2]|0;ba=c[O>>2]|0;if((da|0)<=0){if(ba)ea=26}else{fa=0;do{ga=ca+(fa<<4)|0;ha=ba+(fa<<4)|0;c[ga>>2]=c[ha>>2];c[ga+4>>2]=c[ha+4>>2];c[ga+8>>2]=c[ha+8>>2];c[ga+12>>2]=c[ha+12>>2];fa=fa+1|0}while((fa|0)!=(da|0));ea=26}if((ea|0)==26){if(a[P>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[ba+-4>>2]|0);}c[O>>2]=0}a[P>>0]=1;c[O>>2]=ca;c[aa>>2]=e;c[ca>>2]=c[j>>2];c[ca+4>>2]=c[j+4>>2];c[ca+8>>2]=c[j+8>>2];c[ca+12>>2]=c[j+12>>2];if((e|0)==1)c[N>>2]=1;else{ca=1;do{ba=(c[O>>2]|0)+(ca<<4)|0;c[ba>>2]=c[j>>2];c[ba+4>>2]=c[j+4>>2];c[ba+8>>2]=c[j+8>>2];c[ba+12>>2]=c[j+12>>2];ca=ca+1|0}while((ca|0)!=(e|0));c[N>>2]=e}ca=l+4|0;j=l+8|0;ba=l+12|0;da=l+(c[D>>2]<<2)|0;fa=c[O>>2]|0;ha=l+(c[C>>2]<<2)|0;ga=l+(c[H>>2]<<2)|0;U=+g[E>>2];V=+g[I>>2];R=+g[Q>>2];ia=0;ja=d;while(1){d=c[ja>>2]|0;c[l>>2]=d;ka=c[ja+4>>2]|0;c[ca>>2]=ka;S=(c[k>>2]=d,+g[k>>2])-U;M=Y*((c[k>>2]=ka,+g[k>>2])-V);L=Z*(+g[ja+8>>2]-R);g[l>>2]=T*S;g[ca>>2]=M;g[j>>2]=L;g[ba>>2]=0.0;c[fa+(ia<<4)>>2]=~~+g[da>>2];c[fa+(ia<<4)+4>>2]=~~+g[ha>>2];c[fa+(ia<<4)+8>>2]=~~+g[ga>>2];c[fa+(ia<<4)+12>>2]=ia;ia=ia+1|0;if((ia|0)==(e|0))break;else ja=ja+16|0}if((e|0)>1)Pr(h,0,e+-1|0);}else c[N>>2]=e;ja=n+32|0;c[s>>2]=c[ja>>2];c[t>>2]=0;c[v>>2]=e;ia=c[A>>2]|0;if((ia|0)<(e|0)){if((c[B>>2]|0)<(e|0)){if(!e){la=0;ma=ia}else{c[3708]=(c[3708]|0)+1;fa=ws((e<<2|3)+16|0)|0;if(!fa)na=0;else{ga=fa+4+15&-16;c[ga+-4>>2]=fa;na=ga}la=na;ma=c[A>>2]|0}if((ma|0)>0){na=0;do{c[la+(na<<2)>>2]=c[(c[z>>2]|0)+(na<<2)>>2];na=na+1|0}while((na|0)!=(ma|0));}ma=c[z>>2]|0;if(ma){if(a[y>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[ma+-4>>2]|0);}c[z>>2]=0}a[y>>0]=1;c[z>>2]=la;c[B>>2]=e;oa=ia}else oa=ia;do{c[(c[z>>2]|0)+(oa<<2)>>2]=0;oa=oa+1|0}while((oa|0)!=(e|0));}c[A>>2]=e;if(J){J=0;do{A=c[t>>2]|0;if(!A){oa=c[s>>2]|0;if(!oa){c[3708]=(c[3708]|0)+1;ia=ws(31)|0;if(!ia)pa=0;else{B=ia+4+15&-16;c[B+-4>>2]=ia;pa=B}B=c[v>>2]|0;c[pa+4>>2]=B;ia=pa+8|0;c[ia>>2]=0;c[3708]=(c[3708]|0)+1;la=ws((B*112|3)+16|0)|0;if(!la)qa=0;else{B=la+4+15&-16;c[B+-4>>2]=la;qa=B}c[pa>>2]=qa;c[ia>>2]=c[ja>>2];c[ja>>2]=pa;ra=pa}else{c[s>>2]=c[oa+8>>2];ra=oa}oa=c[ra+4>>2]|0;ia=c[ra>>2]|0;if((oa|0)>0){B=0;la=ia;do{B=B+1|0;y=la;la=la+112|0;c[y>>2]=(B|0)<(oa|0)?la:0}while((B|0)!=(oa|0));sa=ia}else sa=ia}else sa=A;c[t>>2]=c[sa>>2];oa=sa+104|0;c[sa>>2]=0;c[sa+4>>2]=0;c[sa+8>>2]=0;c[sa+12>>2]=0;c[sa+16>>2]=0;c[oa>>2]=-1;c[sa+8>>2]=0;B=sa+88|0;la=(c[O>>2]|0)+(J<<4)|0;c[B>>2]=c[la>>2];c[B+4>>2]=c[la+4>>2];c[B+8>>2]=c[la+8>>2];c[B+12>>2]=c[la+12>>2];c[oa>>2]=-1;c[(c[z>>2]|0)+(J<<2)>>2]=sa;J=J+1|0}while((J|0)!=(e|0));}J=c[O>>2]|0;if(J){if(a[P>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[J+-4>>2]|0);}c[O>>2]=0}a[P>>0]=1;c[O>>2]=0;c[N>>2]=0;c[aa>>2]=0;c[u>>2]=c[n+48>>2];c[w>>2]=0;c[x>>2]=e*6;c[n+116>>2]=0;c[n+120>>2]=0;c[n+100>>2]=-3;c[m>>2]=0;c[m+4>>2]=0;c[m+8>>2]=0;c[m+12>>2]=0;Lr(n,0,e,m);e=n+124|0;c[e>>2]=c[m>>2];m=c[O>>2]|0;if(m){if(a[P>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[m+-4>>2]|0);}c[O>>2]=0}O=b+4|0;m=c[O>>2]|0;if((m|0)<0){P=b+8|0;x=b+12|0;if((c[P>>2]|0)<0){w=c[x>>2]|0;u=b+16|0;if(w){if(a[u>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[w+-4>>2]|0);}c[x>>2]=0}a[u>>0]=1;c[x>>2]=0;c[P>>2]=0}P=m;do{m=(c[x>>2]|0)+(P<<4)|0;c[m>>2]=c[o>>2];c[m+4>>2]=c[o+4>>2];c[m+8>>2]=c[o+8>>2];c[m+12>>2]=c[o+12>>2];P=P+1|0}while((P|0)!=0);}c[O>>2]=0;c[p>>2]=0;c[p+4>>2]=0;c[p+8>>2]=0;P=b+24|0;o=c[P>>2]|0;if((o|0)<0){x=b+28|0;m=b+32|0;if((c[x>>2]|0)<0){u=c[m>>2]|0;w=b+36|0;if(u){if(a[w>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[u+-4>>2]|0);}c[m>>2]=0}a[w>>0]=1;c[m>>2]=0;c[x>>2]=0;ta=o}else ta=o;do{o=(c[m>>2]|0)+(ta*12|0)|0;c[o>>2]=c[p>>2];c[o+4>>2]=c[p+4>>2];c[o+8>>2]=c[p+8>>2];ta=ta+1|0}while((ta|0)!=0);}c[P>>2]=0;ta=b+44|0;p=c[ta>>2]|0;if((p|0)<0){m=b+48|0;o=b+52|0;x=c[o>>2]|0;do if((c[m>>2]|0)<0){w=b+56|0;if(!x){a[w>>0]=1;c[o>>2]=0;c[m>>2]=0;ua=0;break}if(a[w>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[x+-4>>2]|0);}a[w>>0]=1;c[o>>2]=0;c[m>>2]=0;ua=0}else ua=x;while(0);Cs(ua+(p<<2)|0,0,$(p,-4)|0)|0}c[ta>>2]=0;p=c[e>>2]|0;e=p+104|0;if((c[e>>2]|0)<0){c[e>>2]=0;c[3708]=(c[3708]|0)+1;e=ws(23)|0;ua=e+4+15&-16;c[ua+-4>>2]=e;c[ua>>2]=p;e=b+8|0;x=b+12|0;m=b+16|0;o=b+28|0;w=b+32|0;u=b+36|0;aa=h+4|0;N=h+8|0;J=p;p=1;sa=1;z=ua;ua=0;while(1){if((c[J+100>>2]|0)>-1){g[h+(c[D>>2]<<2)>>2]=+(c[J+88>>2]|0);g[h+(c[C>>2]<<2)>>2]=+(c[J+92>>2]|0);va=+(c[J+96>>2]|0);}else{t=J+24|0;ra=J+32|0;T=+Qr(c[t>>2]|0,c[t+4>>2]|0,c[ra>>2]|0,c[ra+4>>2]|0);ra=J+72|0;t=ra;s=J+80|0;pa=c[s>>2]|0;ja=c[s+4>>2]|0;R=T/+Qr(c[t>>2]|0,c[t+4>>2]|0,pa,ja);g[h+(c[D>>2]<<2)>>2]=R;t=J+40|0;s=J+48|0;R=+Qr(c[t>>2]|0,c[t+4>>2]|0,c[s>>2]|0,c[s+4>>2]|0);s=ra;T=R/+Qr(c[s>>2]|0,c[s+4>>2]|0,pa,ja);g[h+(c[C>>2]<<2)>>2]=T;s=J+56|0;t=J+64|0;T=+Qr(c[s>>2]|0,c[s+4>>2]|0,c[t>>2]|0,c[t+4>>2]|0);t=ra;va=T/+Qr(c[t>>2]|0,c[t+4>>2]|0,pa,ja);}g[h+(c[H>>2]<<2)>>2]=va;T=+g[h>>2]*+g[n>>2]+ +g[E>>2];R=+g[aa>>2]*+g[G>>2]+ +g[I>>2];Z=+g[N>>2]*+g[F>>2]+ +g[Q>>2];ja=c[O>>2]|0;if((ja|0)==(c[e>>2]|0)?(pa=(ja|0)!=0?ja<<1:1,(ja|0)<(pa|0)):0){if(!pa){wa=0;xa=ja}else{c[3708]=(c[3708]|0)+1;t=ws((pa<<4|3)+16|0)|0;if(!t)ya=0;else{ra=t+4+15&-16;c[ra+-4>>2]=t;ya=ra}wa=ya;xa=c[O>>2]|0}if((xa|0)>0){ra=0;do{t=wa+(ra<<4)|0;s=(c[x>>2]|0)+(ra<<4)|0;c[t>>2]=c[s>>2];c[t+4>>2]=c[s+4>>2];c[t+8>>2]=c[s+8>>2];c[t+12>>2]=c[s+12>>2];ra=ra+1|0}while((ra|0)!=(xa|0));}ra=c[x>>2]|0;if(ra){if(a[m>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[ra+-4>>2]|0);}c[x>>2]=0}a[m>>0]=1;c[x>>2]=wa;c[e>>2]=pa;za=c[O>>2]|0}else za=ja;ra=c[x>>2]|0;g[ra+(za<<4)>>2]=T;g[ra+(za<<4)+4>>2]=R;g[ra+(za<<4)+8>>2]=Z;g[ra+(za<<4)+12>>2]=0.0;c[O>>2]=(c[O>>2]|0)+1;ra=c[J+8>>2]|0;if(!ra){Aa=p;Ba=z;Ca=sa}else{A=p;ia=sa;s=z;t=ra;qa=-1;v=-1;while(1){oa=t+20|0;la=c[oa>>2]|0;if((la|0)<0){B=c[P>>2]|0;c[q>>2]=0;c[q+4>>2]=0;c[q+8>>2]=0;do if((B|0)==(c[o>>2]|0)){y=(B|0)!=0?B<<1:1;if((B|0)>=(y|0)){Da=B;break}if(!y){Ea=0;Fa=B}else{c[3708]=(c[3708]|0)+1;ma=ws((y*12|3)+16|0)|0;if(!ma)Ga=0;else{na=ma+4+15&-16;c[na+-4>>2]=ma;Ga=na}Ea=Ga;Fa=c[P>>2]|0}if((Fa|0)>0){na=0;do{ma=Ea+(na*12|0)|0;ga=(c[w>>2]|0)+(na*12|0)|0;c[ma>>2]=c[ga>>2];c[ma+4>>2]=c[ga+4>>2];c[ma+8>>2]=c[ga+8>>2];na=na+1|0}while((na|0)!=(Fa|0));}na=c[w>>2]|0;if(na){if(a[u>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[na+-4>>2]|0);}c[w>>2]=0}a[u>>0]=1;c[w>>2]=Ea;c[o>>2]=y;Da=c[P>>2]|0}else Da=B;while(0);na=(c[w>>2]|0)+(Da*12|0)|0;c[na>>2]=c[q>>2];c[na+4>>2]=c[q+4>>2];c[na+8>>2]=c[q+8>>2];na=(c[P>>2]|0)+1|0;c[P>>2]=na;c[r>>2]=0;c[r+4>>2]=0;c[r+8>>2]=0;do if((na|0)==(c[o>>2]|0)){ga=(na|0)!=0?na<<1:1;if((na|0)>=(ga|0)){Ha=na;break}if(!ga){Ia=0;Ja=na}else{c[3708]=(c[3708]|0)+1;ma=ws((ga*12|3)+16|0)|0;if(!ma)Ka=0;else{fa=ma+4+15&-16;c[fa+-4>>2]=ma;Ka=fa}Ia=Ka;Ja=c[P>>2]|0}if((Ja|0)>0){fa=0;do{ma=Ia+(fa*12|0)|0;ha=(c[w>>2]|0)+(fa*12|0)|0;c[ma>>2]=c[ha>>2];c[ma+4>>2]=c[ha+4>>2];c[ma+8>>2]=c[ha+8>>2];fa=fa+1|0}while((fa|0)!=(Ja|0));}fa=c[w>>2]|0;if(fa){if(a[u>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[fa+-4>>2]|0);}c[w>>2]=0}a[u>>0]=1;c[w>>2]=Ia;c[o>>2]=ga;Ha=c[P>>2]|0}else Ha=na;while(0);na=(c[w>>2]|0)+(Ha*12|0)|0;c[na>>2]=c[r>>2];c[na+4>>2]=c[r+4>>2];c[na+8>>2]=c[r+8>>2];c[P>>2]=(c[P>>2]|0)+1;na=c[w>>2]|0;fa=B+1|0;c[oa>>2]=B;c[(c[t+8>>2]|0)+20>>2]=fa;c[na+(B*12|0)+4>>2]=1;c[na+(fa*12|0)+4>>2]=-1;y=c[t+12>>2]|0;ha=y;ma=y+104|0;y=c[ma>>2]|0;if((y|0)<0){c[ma>>2]=A;do if((A|0)==(ia|0)){ma=(ia|0)!=0?ia<<1:1;if((ia|0)>=(ma|0)){La=s;Ma=ia;break}do if(!ma)Na=0;else{c[3708]=(c[3708]|0)+1;da=ws((ma<<2|3)+16|0)|0;if(!da){Na=0;break}ba=da+4+15&-16;c[ba+-4>>2]=da;Na=ba}while(0);if((ia|0)<=0){if(!s){La=Na;Ma=ma;break}}else{ga=0;do{c[Na+(ga<<2)>>2]=c[s+(ga<<2)>>2];ga=ga+1|0}while((ga|0)!=(ia|0));}c[3710]=(c[3710]|0)+1;xs(c[s+-4>>2]|0);La=Na;Ma=ma}else{La=s;Ma=ia}while(0);c[La+(A<<2)>>2]=ha;Oa=La;Pa=Ma;Qa=A+1|0;Ra=A}else{Oa=s;Pa=ia;Qa=A;Ra=y}c[na+(B*12|0)+8>>2]=Ra;c[na+(fa*12|0)+8>>2]=ua;Sa=c[oa>>2]|0;Ta=Oa;Ua=Pa;Va=Qa}else{Sa=la;Ta=s;Ua=ia;Va=A}if((v|0)>-1){c[(c[w>>2]|0)+(Sa*12|0)>>2]=v-Sa;Wa=qa}else Wa=Sa;t=c[t>>2]|0;if((t|0)==(ra|0))break;else{A=Va;ia=Ua;s=Ta;qa=Wa;v=Sa}}c[(c[w>>2]|0)+(Wa*12|0)>>2]=Sa-Wa;Aa=Va;Ba=Ta;Ca=Ua}Xa=ua+1|0;if((Xa|0)>=(Aa|0))break;J=c[Ba+(Xa<<2)>>2]|0;p=Aa;sa=Ca;z=Ba;ua=Xa}if((ua|0)>-1){ua=b+48|0;z=b+52|0;Ca=b+56|0;b=0;do{sa=c[(c[Ba+(b<<2)>>2]|0)+8>>2]|0;if(sa){Aa=sa;do{p=Aa+20|0;J=c[p>>2]|0;if((J|0)>-1){Ua=c[ta>>2]|0;do if((Ua|0)==(c[ua>>2]|0)){Ta=(Ua|0)!=0?Ua<<1:1;if((Ua|0)>=(Ta|0)){Ya=Ua;Za=J;break}if(!Ta){_a=0;$a=Ua}else{c[3708]=(c[3708]|0)+1;Va=ws((Ta<<2|3)+16|0)|0;if(!Va)ab=0;else{Wa=Va+4+15&-16;c[Wa+-4>>2]=Va;ab=Wa}_a=ab;$a=c[ta>>2]|0}Wa=c[z>>2]|0;if(($a|0)<=0)if(!Wa)bb=$a;else ea=174;else{Va=0;do{c[_a+(Va<<2)>>2]=c[Wa+(Va<<2)>>2];Va=Va+1|0}while((Va|0)!=($a|0));ea=174}if((ea|0)==174){ea=0;if(a[Ca>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[Wa+-4>>2]|0);}c[z>>2]=0;bb=c[ta>>2]|0}a[Ca>>0]=1;c[z>>2]=_a;c[ua>>2]=Ta;Ya=bb;Za=c[p>>2]|0}else{Ya=Ua;Za=J}while(0);c[(c[z>>2]|0)+(Ya<<2)>>2]=Za;c[ta>>2]=(c[ta>>2]|0)+1;J=Aa;do{c[J+20>>2]=-1;J=c[(c[J+8>>2]|0)+4>>2]|0}while((J|0)!=(Aa|0));}Aa=c[Aa>>2]|0}while((Aa|0)!=(sa|0));}b=b+1|0}while((b|0)<(Xa|0));}if(Ba){c[3710]=(c[3710]|0)+1;xs(c[Ba+-4>>2]|0);}}Rr(n);i=f;return}function Pr(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;f=i;i=i+16|0;g=f;h=(e+d|0)/2|0;j=b+12|0;k=c[j>>2]|0;l=c[k+(h<<4)>>2]|0;m=c[k+(h<<4)+4>>2]|0;n=c[k+(h<<4)+8>>2]|0;h=k;k=d;o=e;while(1){p=k;while(1){q=c[h+(p<<4)+4>>2]|0;if((q|0)>=(m|0)){if((q|0)!=(m|0)){r=o;break}q=c[h+(p<<4)>>2]|0;if((q|0)>=(l|0)){if((q|0)!=(l|0)){r=o;break}if((c[h+(p<<4)+8>>2]|0)>=(n|0)){r=o;break}}}p=p+1|0}while(1){q=c[h+(r<<4)+4>>2]|0;if((m|0)>=(q|0)){if((m|0)!=(q|0))break;q=c[h+(r<<4)>>2]|0;if((l|0)>=(q|0)){if((l|0)!=(q|0))break;if((n|0)>=(c[h+(r<<4)+8>>2]|0))break}}r=r+-1|0}if((p|0)>(r|0)){s=p;t=r}else{q=h+(p<<4)|0;u=g;v=q;w=u+16|0;do{a[u>>0]=a[v>>0]|0;u=u+1|0;v=v+1|0}while((u|0)<(w|0));x=h+(r<<4)|0;c[q>>2]=c[x>>2];c[q+4>>2]=c[x+4>>2];c[q+8>>2]=c[x+8>>2];c[q+12>>2]=c[x+12>>2];u=(c[j>>2]|0)+(r<<4)|0;v=g;w=u+16|0;do{a[u>>0]=a[v>>0]|0;u=u+1|0;v=v+1|0}while((u|0)<(w|0));s=p+1|0;t=r+-1|0}if((s|0)>(t|0))break;h=c[j>>2]|0;k=s;o=t}if((t|0)>(d|0))Pr(b,d,t);if((s|0)>=(e|0)){i=f;return}Pr(b,s,e);i=f;return}function Qr(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0.0,f=0,g=0,h=0;if((d|0)>-1|(d|0)==-1&c>>>0>4294967295){e=(+(c>>>0)+4294967296.0*+(d>>>0))*18446744073709551616.0+(+(a>>>0)+4294967296.0*+(b>>>0));return +e}else{f=Bs(0,0,a|0,b|0)|0;g=D;h=Es((a|0)==0&(b|0)==0&1|0,0,~c|0,~d|0)|0;e=-+Qr(f,g,h,D);return +e}return +(0.0);}function Rr(b){b=b|0;var d=0,e=0,f=0,g=0;d=b+84|0;e=b+92|0;f=c[e>>2]|0;g=b+96|0;if(f){if(a[g>>0]|0){c[3710]=(c[3710]|0)+1;xs(c[f+-4>>2]|0);}c[e>>2]=0}a[g>>0]=1;c[e>>2]=0;c[d>>2]=0;c[b+88>>2]=0;d=b+64|0;e=c[d>>2]|0;if(e){g=e;do{c[d>>2]=c[g+8>>2];e=c[g>>2]|0;if(e){c[3710]=(c[3710]|0)+1;xs(c[e+-4>>2]|0);}c[3710]=(c[3710]|0)+1;xs(c[g+-4>>2]|0);g=c[d>>2]|0}while((g|0)!=0);}g=b+48|0;d=c[g>>2]|0;if(d){e=d;do{c[g>>2]=c[e+8>>2];d=c[e>>2]|0;if(d){c[3710]=(c[3710]|0)+1;xs(c[d+-4>>2]|0);}c[3710]=(c[3710]|0)+1;xs(c[e+-4>>2]|0);e=c[g>>2]|0}while((e|0)!=0);}e=b+32|0;b=c[e>>2]|0;if(!b)return;g=b;do{c[e>>2]=c[g+8>>2];b=c[g>>2]|0;if(b){c[3710]=(c[3710]|0)+1;xs(c[b+-4>>2]|0);}c[3710]=(c[3710]|0)+1;xs(c[g+-4>>2]|0);g=c[e>>2]|0}while((g|0)!=0);return}function Sr(a,b){a=a|0;b=b|0;var d=0,e=0;d=i;i=i+16|0;e=d;c[e>>2]=b;b=c[n>>2]|0;Xa(b|0,a|0,e|0)|0;yb(10,b|0)|0;Ab();}function Tr(a){a=a|0;return}function Ur(a){a=a|0;xs(a);return}function Vr(a){a=a|0;return 15496}function Wr(a){a=a|0;var b=0;b=i;i=i+16|0;qc[a&3]();Sr(15512,b);}function Xr(a){a=a|0;return}function Yr(a){a=a|0;return}function Zr(a){a=a|0;return}function _r(a){a=a|0;xs(a);return}function $r(a){a=a|0;xs(a);return}function as(a){a=a|0;xs(a);return}function bs(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0;e=i;i=i+64|0;f=e;if((a|0)!=(b|0))if((b|0)!=0?(g=gs(b,15064)|0,(g|0)!=0):0){b=f;h=b+56|0;do{c[b>>2]=0;b=b+4|0}while((b|0)<(h|0));c[f>>2]=g;c[f+8>>2]=a;c[f+12>>2]=-1;c[f+48>>2]=1;tc[c[(c[g>>2]|0)+28>>2]&63](g,f,c[d>>2]|0,1);if((c[f+24>>2]|0)==1){c[d>>2]=c[f+16>>2];j=1}else j=0;k=j}else k=0;else k=1;i=e;return k|0}function cs(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0;do if((b|0)==(c[d+8>>2]|0)){g=d+16|0;h=c[g>>2]|0;if(!h){c[g>>2]=e;c[d+24>>2]=f;c[d+36>>2]=1;break}if((h|0)!=(e|0)){h=d+36|0;c[h>>2]=(c[h>>2]|0)+1;c[d+24>>2]=2;a[d+54>>0]=1;break}h=d+24|0;if((c[h>>2]|0)==2)c[h>>2]=f}while(0);return}function ds(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0;do if((b|0)==(c[d+8>>2]|0)){g=d+16|0;h=c[g>>2]|0;if(!h){c[g>>2]=e;c[d+24>>2]=f;c[d+36>>2]=1;break}if((h|0)!=(e|0)){h=d+36|0;c[h>>2]=(c[h>>2]|0)+1;c[d+24>>2]=2;a[d+54>>0]=1;break}h=d+24|0;if((c[h>>2]|0)==2)c[h>>2]=f}else{h=c[b+8>>2]|0;tc[c[(c[h>>2]|0)+28>>2]&63](h,d,e,f);}while(0);return}function es(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;f=c[a+4>>2]|0;g=f>>8;if(!(f&1))h=g;else h=c[(c[d>>2]|0)+g>>2]|0;g=c[a>>2]|0;tc[c[(c[g>>2]|0)+28>>2]&63](g,b,d+h|0,(f&2|0)!=0?e:2);return}function fs(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0;a:do if((b|0)==(c[d+8>>2]|0)){g=d+16|0;h=c[g>>2]|0;if(!h){c[g>>2]=e;c[d+24>>2]=f;c[d+36>>2]=1;break}if((h|0)!=(e|0)){h=d+36|0;c[h>>2]=(c[h>>2]|0)+1;c[d+24>>2]=2;a[d+54>>0]=1;break}h=d+24|0;if((c[h>>2]|0)==2)c[h>>2]=f}else{h=c[b+12>>2]|0;g=b+16+(h<<3)|0;es(b+16|0,d,e,f);if((h|0)>1){h=d+54|0;i=b+24|0;do{es(i,d,e,f);if(a[h>>0]|0)break a;i=i+8|0}while(i>>>0<g>>>0);}}while(0);return}function gs(d,e){d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;f=i;i=i+64|0;g=f;h=c[d>>2]|0;j=d+(c[h+-8>>2]|0)|0;k=c[h+-4>>2]|0;c[g>>2]=e;c[g+4>>2]=d;c[g+8>>2]=15008;d=g+12|0;h=g+16|0;l=g+20|0;m=g+24|0;n=g+28|0;o=g+32|0;p=g+40|0;q=(k|0)==(e|0);r=d;s=r+40|0;do{c[r>>2]=0;r=r+4|0}while((r|0)<(s|0));b[d+40>>1]=0;a[d+42>>0]=0;do if(q){c[g+48>>2]=1;Xb[c[(c[e>>2]|0)+20>>2]&7](e,g,j,j,1,0);t=(c[m>>2]|0)==1?j:0}else{Ib[c[(c[k>>2]|0)+24>>2]&31](k,g,j,1,0);d=c[g+36>>2]|0;if(!d){t=(c[p>>2]|0)==1&(c[n>>2]|0)==1&(c[o>>2]|0)==1?c[l>>2]|0:0;break}else if((d|0)!=1){t=0;break}if((c[m>>2]|0)!=1?!((c[p>>2]|0)==0&(c[n>>2]|0)==1&(c[o>>2]|0)==1):0){t=0;break}t=c[h>>2]|0}while(0);i=f;return t|0}function hs(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0;a[b+53>>0]=1;do if((c[b+4>>2]|0)==(e|0)){a[b+52>>0]=1;g=b+16|0;h=c[g>>2]|0;if(!h){c[g>>2]=d;c[b+24>>2]=f;c[b+36>>2]=1;if(!((f|0)==1?(c[b+48>>2]|0)==1:0))break;a[b+54>>0]=1;break}if((h|0)!=(d|0)){h=b+36|0;c[h>>2]=(c[h>>2]|0)+1;a[b+54>>0]=1;break}h=b+24|0;g=c[h>>2]|0;if((g|0)==2){c[h>>2]=f;i=f}else i=g;if((i|0)==1?(c[b+48>>2]|0)==1:0)a[b+54>>0]=1}while(0);return}function is(b,d,e,f,g){b=b|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,v=0,w=0,x=0,y=0,z=0;a:do if((b|0)==(c[d+8>>2]|0)){if((c[d+4>>2]|0)==(e|0)?(h=d+28|0,(c[h>>2]|0)!=1):0)c[h>>2]=f}else{if((b|0)!=(c[d>>2]|0)){h=c[b+12>>2]|0;i=b+16+(h<<3)|0;ks(b+16|0,d,e,f,g);j=b+24|0;if((h|0)<=1)break;h=c[b+8>>2]|0;if((h&2|0)==0?(k=d+36|0,(c[k>>2]|0)!=1):0){if(!(h&1)){h=d+54|0;l=j;while(1){if(a[h>>0]|0)break a;if((c[k>>2]|0)==1)break a;ks(l,d,e,f,g);l=l+8|0;if(l>>>0>=i>>>0)break a}}l=d+24|0;h=d+54|0;m=j;while(1){if(a[h>>0]|0)break a;if((c[k>>2]|0)==1?(c[l>>2]|0)==1:0)break a;ks(m,d,e,f,g);m=m+8|0;if(m>>>0>=i>>>0)break a}}m=d+54|0;l=j;while(1){if(a[m>>0]|0)break a;ks(l,d,e,f,g);l=l+8|0;if(l>>>0>=i>>>0)break a}}if((c[d+16>>2]|0)!=(e|0)?(i=d+20|0,(c[i>>2]|0)!=(e|0)):0){c[d+32>>2]=f;l=d+44|0;if((c[l>>2]|0)==4)break;m=c[b+12>>2]|0;j=b+16+(m<<3)|0;k=d+52|0;h=d+53|0;n=d+54|0;o=b+8|0;p=d+24|0;b:do if((m|0)>0){q=0;r=0;s=b+16|0;c:while(1){a[k>>0]=0;a[h>>0]=0;js(s,d,e,e,1,g);if(a[n>>0]|0){t=q;u=r;break}do if(a[h>>0]|0){if(!(a[k>>0]|0))if(!(c[o>>2]&1)){t=q;u=1;break c}else{v=q;w=1;break}if((c[p>>2]|0)==1){x=25;break b}if(!(c[o>>2]&2)){x=25;break b}else{v=1;w=1}}else{v=q;w=r}while(0);s=s+8|0;if(s>>>0>=j>>>0){t=v;u=w;break}else{q=v;r=w}}if(t){y=u;x=24}else{z=u;x=21}}else{z=0;x=21}while(0);if((x|0)==21){c[i>>2]=e;j=d+40|0;c[j>>2]=(c[j>>2]|0)+1;if((c[d+36>>2]|0)==1?(c[p>>2]|0)==2:0){a[n>>0]=1;if(z)x=25;else x=26}else{y=z;x=24}}if((x|0)==24)if(y)x=25;else x=26;if((x|0)==25){c[l>>2]=3;break}else if((x|0)==26){c[l>>2]=4;break}}if((f|0)==1)c[d+32>>2]=1}while(0);return}function js(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0;h=c[a+4>>2]|0;i=h>>8;if(!(h&1))j=i;else j=c[(c[e>>2]|0)+i>>2]|0;i=c[a>>2]|0;Xb[c[(c[i>>2]|0)+20>>2]&7](i,b,d,e+j|0,(h&2|0)!=0?f:2,g);return}function ks(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0;g=c[a+4>>2]|0;h=g>>8;if(!(g&1))i=h;else i=c[(c[d>>2]|0)+h>>2]|0;h=c[a>>2]|0;Ib[c[(c[h>>2]|0)+24>>2]&31](h,b,d+i|0,(g&2|0)!=0?e:2,f);return}function ls(b,d,e,f,g){b=b|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;a:do if((b|0)==(c[d+8>>2]|0)){if((c[d+4>>2]|0)==(e|0)?(h=d+28|0,(c[h>>2]|0)!=1):0)c[h>>2]=f}else{if((b|0)!=(c[d>>2]|0)){h=c[b+8>>2]|0;Ib[c[(c[h>>2]|0)+24>>2]&31](h,d,e,f,g);break}if((c[d+16>>2]|0)!=(e|0)?(h=d+20|0,(c[h>>2]|0)!=(e|0)):0){c[d+32>>2]=f;i=d+44|0;if((c[i>>2]|0)==4)break;j=d+52|0;a[j>>0]=0;k=d+53|0;a[k>>0]=0;l=c[b+8>>2]|0;Xb[c[(c[l>>2]|0)+20>>2]&7](l,d,e,e,1,g);if(a[k>>0]|0){if(!(a[j>>0]|0)){m=1;n=13}}else{m=0;n=13}do if((n|0)==13){c[h>>2]=e;j=d+40|0;c[j>>2]=(c[j>>2]|0)+1;if((c[d+36>>2]|0)==1?(c[d+24>>2]|0)==2:0){a[d+54>>0]=1;if(m)break}else n=16;if((n|0)==16?m:0)break;c[i>>2]=4;break a}while(0);c[i>>2]=3;break}if((f|0)==1)c[d+32>>2]=1}while(0);return}function ms(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;do if((b|0)==(c[d+8>>2]|0)){if((c[d+4>>2]|0)==(e|0)?(g=d+28|0,(c[g>>2]|0)!=1):0)c[g>>2]=f}else if((b|0)==(c[d>>2]|0)){if((c[d+16>>2]|0)!=(e|0)?(g=d+20|0,(c[g>>2]|0)!=(e|0)):0){c[d+32>>2]=f;c[g>>2]=e;g=d+40|0;c[g>>2]=(c[g>>2]|0)+1;if((c[d+36>>2]|0)==1?(c[d+24>>2]|0)==2:0)a[d+54>>0]=1;c[d+44>>2]=4;break}if((f|0)==1)c[d+32>>2]=1}while(0);return}function ns(b,d,e,f,g,h){b=b|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,r=0;if((b|0)==(c[d+8>>2]|0))hs(d,e,f,g);else{i=d+52|0;j=a[i>>0]|0;k=d+53|0;l=a[k>>0]|0;m=c[b+12>>2]|0;n=b+16+(m<<3)|0;a[i>>0]=0;a[k>>0]=0;js(b+16|0,d,e,f,g,h);a:do if((m|0)>1){o=d+24|0;p=b+8|0;q=d+54|0;r=b+24|0;do{if(a[q>>0]|0)break a;if(!(a[i>>0]|0)){if((a[k>>0]|0)!=0?(c[p>>2]&1|0)==0:0)break a}else{if((c[o>>2]|0)==1)break a;if(!(c[p>>2]&2))break a}a[i>>0]=0;a[k>>0]=0;js(r,d,e,f,g,h);r=r+8|0}while(r>>>0<n>>>0);}while(0);a[i>>0]=j;a[k>>0]=l}return}function os(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0;if((a|0)==(c[b+8>>2]|0))hs(b,d,e,f);else{h=c[a+8>>2]|0;Xb[c[(c[h>>2]|0)+20>>2]&7](h,b,d,e,f,g);}return}function ps(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;if((a|0)==(c[b+8>>2]|0))hs(b,d,e,f);return}function qs(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;e=i;i=i+16|0;f=e;c[f>>2]=c[d>>2];g=Wb[c[(c[a>>2]|0)+16>>2]&31](a,b,f)|0;if(g)c[d>>2]=c[f>>2];i=e;return g&1|0}function rs(a){a=a|0;var b=0;if(!a)b=0;else b=(gs(a,15176)|0)!=0;return b&1|0}function ss(){var a=0,b=0,d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0;a=i;i=i+48|0;b=a+40|0;d=a+32|0;e=a+24|0;f=a+8|0;g=a+44|0;if(rb(15432,3)|0)Sr(15440,a);a=pb(c[3856]|0)|0;if((a|0)!=0?(h=c[a>>2]|0,(h|0)!=0):0){a=h+48|0;j=c[a>>2]|0;k=c[a+4>>2]|0;if(!((j&-256|0)==1126902528&(k|0)==1129074247)){c[d>>2]=15816;Sr(15760,d);}if((j|0)==1126902529&(k|0)==1129074247)l=c[h+44>>2]|0;else l=h+80|0;c[g>>2]=l;l=c[h>>2]|0;h=c[l+4>>2]|0;if(bs(14936,l,g)|0){l=c[g>>2]|0;g=Ob[c[(c[l>>2]|0)+8>>2]&127](l)|0;c[f>>2]=15816;c[f+4>>2]=h;c[f+8>>2]=g;Sr(15664,f);}else{c[e>>2]=15816;c[e+4>>2]=h;Sr(15712,e);}}Sr(15800,b);}function ts(){var a=0;a=i;i=i+16|0;if(!(tb(15424,190)|0)){i=a;return}else Sr(15552,a);}function us(a){a=a|0;var b=0;b=i;i=i+16|0;xs(a);if(!(xb(c[3856]|0,0)|0)){i=b;return}else Sr(15608,b);}function vs(a){a=+a;var b=0,d=0,e=0,f=0.0,h=0.0,i=0,j=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;b=(g[k>>2]=a,c[k>>2]|0);d=b>>>23&255;e=b&-2147483648;if((d|0)==255){f=a*6.2831854820251465;h=f/f;return +h}i=b<<1;if(i>>>0<=2173837238)return +((i|0)==-2121130058?a*0.0:a);if(!d){i=b<<9;if((i|0)>-1){j=0;l=i;while(1){i=j+-1|0;l=l<<1;if((l|0)<=-1){m=i;break}else j=i}}else m=0;n=m;o=b<<1-m}else{n=d;o=b&8388607|8388608}b=o+-13176795|0;d=(b|0)>-1;a:do if((n|0)>129){m=d;j=b;l=n;i=o;while(1){if(m)if((i|0)==13176795)break;else p=j;else p=i;q=p<<1;r=l+-1|0;s=q+-13176795|0;t=(s|0)>-1;if((r|0)>129){m=t;j=s;l=r;i=q}else{u=s;v=t;w=r;x=q;break a}}h=a*0.0;return +h}else{u=b;v=d;w=n;x=o}while(0);if(v)if((x|0)==13176795){h=a*0.0;return +h}else y=u;else y=x;if(y>>>0<8388608){x=w;u=y;while(1){v=u<<1;o=x+-1|0;if(v>>>0<8388608){x=o;u=v}else{z=o;A=v;break}}}else{z=w;A=y}if((z|0)>0)B=A+-8388608|z<<23;else B=A>>>(1-z|0);h=(c[k>>2]=B|e,+g[k>>2]);return +h}function ws(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0;do if(a>>>0<245){b=a>>>0<11?16:a+11&-8;d=b>>>3;e=c[3958]|0;f=e>>>d;if(f&3){g=(f&1^1)+d|0;h=g<<1;i=15872+(h<<2)|0;j=15872+(h+2<<2)|0;h=c[j>>2]|0;k=h+8|0;l=c[k>>2]|0;do if((i|0)!=(l|0)){if(l>>>0<(c[3962]|0)>>>0)Ab();m=l+12|0;if((c[m>>2]|0)==(h|0)){c[m>>2]=i;c[j>>2]=l;break}else Ab();}else c[3958]=e&~(1<<g);while(0);l=g<<3;c[h+4>>2]=l|3;j=h+(l|4)|0;c[j>>2]=c[j>>2]|1;n=k;return n|0}j=c[3960]|0;if(b>>>0>j>>>0){if(f){l=2<<d;i=f<<d&(l|0-l);l=(i&0-i)+-1|0;i=l>>>12&16;m=l>>>i;l=m>>>5&8;o=m>>>l;m=o>>>2&4;p=o>>>m;o=p>>>1&2;q=p>>>o;p=q>>>1&1;r=(l|i|m|o|p)+(q>>>p)|0;p=r<<1;q=15872+(p<<2)|0;o=15872+(p+2<<2)|0;p=c[o>>2]|0;m=p+8|0;i=c[m>>2]|0;do if((q|0)!=(i|0)){if(i>>>0<(c[3962]|0)>>>0)Ab();l=i+12|0;if((c[l>>2]|0)==(p|0)){c[l>>2]=q;c[o>>2]=i;s=c[3960]|0;break}else Ab();}else{c[3958]=e&~(1<<r);s=j}while(0);j=r<<3;e=j-b|0;c[p+4>>2]=b|3;i=p+b|0;c[p+(b|4)>>2]=e|1;c[p+j>>2]=e;if(s){j=c[3963]|0;o=s>>>3;q=o<<1;d=15872+(q<<2)|0;f=c[3958]|0;k=1<<o;if(f&k){o=15872+(q+2<<2)|0;h=c[o>>2]|0;if(h>>>0<(c[3962]|0)>>>0)Ab();else{t=o;u=h}}else{c[3958]=f|k;t=15872+(q+2<<2)|0;u=d}c[t>>2]=j;c[u+12>>2]=j;c[j+8>>2]=u;c[j+12>>2]=d}c[3960]=e;c[3963]=i;n=m;return n|0}i=c[3959]|0;if(i){e=(i&0-i)+-1|0;i=e>>>12&16;d=e>>>i;e=d>>>5&8;j=d>>>e;d=j>>>2&4;q=j>>>d;j=q>>>1&2;k=q>>>j;q=k>>>1&1;f=c[16136+((e|i|d|j|q)+(k>>>q)<<2)>>2]|0;q=(c[f+4>>2]&-8)-b|0;k=f;j=f;while(1){f=c[k+16>>2]|0;if(!f){d=c[k+20>>2]|0;if(!d)break;else v=d}else v=f;f=(c[v+4>>2]&-8)-b|0;d=f>>>0<q>>>0;q=d?f:q;k=v;j=d?v:j}k=c[3962]|0;if(j>>>0<k>>>0)Ab();m=j+b|0;if(j>>>0>=m>>>0)Ab();p=c[j+24>>2]|0;r=c[j+12>>2]|0;do if((r|0)==(j|0)){d=j+20|0;f=c[d>>2]|0;if(!f){i=j+16|0;e=c[i>>2]|0;if(!e){w=0;break}else{x=e;y=i}}else{x=f;y=d}while(1){d=x+20|0;f=c[d>>2]|0;if(f){x=f;y=d;continue}d=x+16|0;f=c[d>>2]|0;if(!f)break;else{x=f;y=d}}if(y>>>0<k>>>0)Ab();else{c[y>>2]=0;w=x;break}}else{d=c[j+8>>2]|0;if(d>>>0<k>>>0)Ab();f=d+12|0;if((c[f>>2]|0)!=(j|0))Ab();i=r+8|0;if((c[i>>2]|0)==(j|0)){c[f>>2]=r;c[i>>2]=d;w=r;break}else Ab();}while(0);do if(p){r=c[j+28>>2]|0;k=16136+(r<<2)|0;if((j|0)==(c[k>>2]|0)){c[k>>2]=w;if(!w){c[3959]=c[3959]&~(1<<r);break}}else{if(p>>>0<(c[3962]|0)>>>0)Ab();r=p+16|0;if((c[r>>2]|0)==(j|0))c[r>>2]=w;else c[p+20>>2]=w;if(!w)break}r=c[3962]|0;if(w>>>0<r>>>0)Ab();c[w+24>>2]=p;k=c[j+16>>2]|0;do if(k)if(k>>>0<r>>>0)Ab();else{c[w+16>>2]=k;c[k+24>>2]=w;break}while(0);k=c[j+20>>2]|0;if(k)if(k>>>0<(c[3962]|0)>>>0)Ab();else{c[w+20>>2]=k;c[k+24>>2]=w;break}}while(0);if(q>>>0<16){p=q+b|0;c[j+4>>2]=p|3;k=j+(p+4)|0;c[k>>2]=c[k>>2]|1}else{c[j+4>>2]=b|3;c[j+(b|4)>>2]=q|1;c[j+(q+b)>>2]=q;k=c[3960]|0;if(k){p=c[3963]|0;r=k>>>3;k=r<<1;d=15872+(k<<2)|0;i=c[3958]|0;f=1<<r;if(i&f){r=15872+(k+2<<2)|0;e=c[r>>2]|0;if(e>>>0<(c[3962]|0)>>>0)Ab();else{z=r;A=e}}else{c[3958]=i|f;z=15872+(k+2<<2)|0;A=d}c[z>>2]=p;c[A+12>>2]=p;c[p+8>>2]=A;c[p+12>>2]=d}c[3960]=q;c[3963]=m}n=j+8|0;return n|0}else B=b}else B=b}else if(a>>>0<=4294967231){d=a+11|0;p=d&-8;k=c[3959]|0;if(k){f=0-p|0;i=d>>>8;if(i)if(p>>>0>16777215)C=31;else{d=(i+1048320|0)>>>16&8;e=i<<d;i=(e+520192|0)>>>16&4;r=e<<i;e=(r+245760|0)>>>16&2;h=14-(i|d|e)+(r<<e>>>15)|0;C=p>>>(h+7|0)&1|h<<1}else C=0;h=c[16136+(C<<2)>>2]|0;a:do if(!h){D=f;E=0;F=0;G=86}else{e=f;r=0;d=p<<((C|0)==31?0:25-(C>>>1)|0);i=h;o=0;while(1){g=c[i+4>>2]&-8;l=g-p|0;if(l>>>0<e>>>0)if((g|0)==(p|0)){H=l;I=i;J=i;G=90;break a}else{K=l;L=i}else{K=e;L=o}l=c[i+20>>2]|0;i=c[i+16+(d>>>31<<2)>>2]|0;g=(l|0)==0|(l|0)==(i|0)?r:l;if(!i){D=K;E=g;F=L;G=86;break}else{e=K;r=g;d=d<<1;o=L}}}while(0);if((G|0)==86){if((E|0)==0&(F|0)==0){h=2<<C;f=k&(h|0-h);if(!f){B=p;break}h=(f&0-f)+-1|0;f=h>>>12&16;b=h>>>f;h=b>>>5&8;j=b>>>h;b=j>>>2&4;m=j>>>b;j=m>>>1&2;q=m>>>j;m=q>>>1&1;M=c[16136+((h|f|b|j|m)+(q>>>m)<<2)>>2]|0;N=0}else{M=E;N=F}if(!M){O=D;P=N}else{H=D;I=M;J=N;G=90}}if((G|0)==90)while(1){G=0;m=(c[I+4>>2]&-8)-p|0;q=m>>>0<H>>>0;j=q?m:H;m=q?I:J;q=c[I+16>>2]|0;if(q){H=j;I=q;J=m;G=90;continue}I=c[I+20>>2]|0;if(!I){O=j;P=m;break}else{H=j;J=m;G=90}}if((P|0)!=0?O>>>0<((c[3960]|0)-p|0)>>>0:0){k=c[3962]|0;if(P>>>0<k>>>0)Ab();m=P+p|0;if(P>>>0>=m>>>0)Ab();j=c[P+24>>2]|0;q=c[P+12>>2]|0;do if((q|0)==(P|0)){b=P+20|0;f=c[b>>2]|0;if(!f){h=P+16|0;o=c[h>>2]|0;if(!o){Q=0;break}else{R=o;S=h}}else{R=f;S=b}while(1){b=R+20|0;f=c[b>>2]|0;if(f){R=f;S=b;continue}b=R+16|0;f=c[b>>2]|0;if(!f)break;else{R=f;S=b}}if(S>>>0<k>>>0)Ab();else{c[S>>2]=0;Q=R;break}}else{b=c[P+8>>2]|0;if(b>>>0<k>>>0)Ab();f=b+12|0;if((c[f>>2]|0)!=(P|0))Ab();h=q+8|0;if((c[h>>2]|0)==(P|0)){c[f>>2]=q;c[h>>2]=b;Q=q;break}else Ab();}while(0);do if(j){q=c[P+28>>2]|0;k=16136+(q<<2)|0;if((P|0)==(c[k>>2]|0)){c[k>>2]=Q;if(!Q){c[3959]=c[3959]&~(1<<q);break}}else{if(j>>>0<(c[3962]|0)>>>0)Ab();q=j+16|0;if((c[q>>2]|0)==(P|0))c[q>>2]=Q;else c[j+20>>2]=Q;if(!Q)break}q=c[3962]|0;if(Q>>>0<q>>>0)Ab();c[Q+24>>2]=j;k=c[P+16>>2]|0;do if(k)if(k>>>0<q>>>0)Ab();else{c[Q+16>>2]=k;c[k+24>>2]=Q;break}while(0);k=c[P+20>>2]|0;if(k)if(k>>>0<(c[3962]|0)>>>0)Ab();else{c[Q+20>>2]=k;c[k+24>>2]=Q;break}}while(0);b:do if(O>>>0>=16){c[P+4>>2]=p|3;c[P+(p|4)>>2]=O|1;c[P+(O+p)>>2]=O;j=O>>>3;if(O>>>0<256){k=j<<1;q=15872+(k<<2)|0;b=c[3958]|0;h=1<<j;if(b&h){j=15872+(k+2<<2)|0;f=c[j>>2]|0;if(f>>>0<(c[3962]|0)>>>0)Ab();else{T=j;U=f}}else{c[3958]=b|h;T=15872+(k+2<<2)|0;U=q}c[T>>2]=m;c[U+12>>2]=m;c[P+(p+8)>>2]=U;c[P+(p+12)>>2]=q;break}q=O>>>8;if(q)if(O>>>0>16777215)V=31;else{k=(q+1048320|0)>>>16&8;h=q<<k;q=(h+520192|0)>>>16&4;b=h<<q;h=(b+245760|0)>>>16&2;f=14-(q|k|h)+(b<<h>>>15)|0;V=O>>>(f+7|0)&1|f<<1}else V=0;f=16136+(V<<2)|0;c[P+(p+28)>>2]=V;c[P+(p+20)>>2]=0;c[P+(p+16)>>2]=0;h=c[3959]|0;b=1<<V;if(!(h&b)){c[3959]=h|b;c[f>>2]=m;c[P+(p+24)>>2]=f;c[P+(p+12)>>2]=m;c[P+(p+8)>>2]=m;break}b=c[f>>2]|0;c:do if((c[b+4>>2]&-8|0)!=(O|0)){f=O<<((V|0)==31?0:25-(V>>>1)|0);h=b;while(1){W=h+16+(f>>>31<<2)|0;k=c[W>>2]|0;if(!k)break;if((c[k+4>>2]&-8|0)==(O|0)){X=k;break c}else{f=f<<1;h=k}}if(W>>>0<(c[3962]|0)>>>0)Ab();else{c[W>>2]=m;c[P+(p+24)>>2]=h;c[P+(p+12)>>2]=m;c[P+(p+8)>>2]=m;break b}}else X=b;while(0);b=X+8|0;f=c[b>>2]|0;k=c[3962]|0;if(f>>>0>=k>>>0&X>>>0>=k>>>0){c[f+12>>2]=m;c[b>>2]=m;c[P+(p+8)>>2]=f;c[P+(p+12)>>2]=X;c[P+(p+24)>>2]=0;break}else Ab();}else{f=O+p|0;c[P+4>>2]=f|3;b=P+(f+4)|0;c[b>>2]=c[b>>2]|1}while(0);n=P+8|0;return n|0}else B=p}else B=p}else B=-1;while(0);P=c[3960]|0;if(P>>>0>=B>>>0){O=P-B|0;X=c[3963]|0;if(O>>>0>15){c[3963]=X+B;c[3960]=O;c[X+(B+4)>>2]=O|1;c[X+P>>2]=O;c[X+4>>2]=B|3}else{c[3960]=0;c[3963]=0;c[X+4>>2]=P|3;O=X+(P+4)|0;c[O>>2]=c[O>>2]|1}n=X+8|0;return n|0}X=c[3961]|0;if(X>>>0>B>>>0){O=X-B|0;c[3961]=O;X=c[3964]|0;c[3964]=X+B;c[X+(B+4)>>2]=O|1;c[X+4>>2]=B|3;n=X+8|0;return n|0}do if(!(c[4076]|0)){X=mb(30)|0;if(!(X+-1&X)){c[4078]=X;c[4077]=X;c[4079]=-1;c[4080]=-1;c[4081]=0;c[4069]=0;c[4076]=(Cb(0)|0)&-16^1431655768;break}else Ab();}while(0);X=B+48|0;O=c[4078]|0;P=B+47|0;W=O+P|0;V=0-O|0;O=W&V;if(O>>>0<=B>>>0){n=0;return n|0}U=c[4068]|0;if((U|0)!=0?(T=c[4066]|0,Q=T+O|0,Q>>>0<=T>>>0|Q>>>0>U>>>0):0){n=0;return n|0}d:do if(!(c[4069]&4)){U=c[3964]|0;e:do if(U){Q=16280;while(1){T=c[Q>>2]|0;if(T>>>0<=U>>>0?(Y=Q+4|0,(T+(c[Y>>2]|0)|0)>>>0>U>>>0):0)break;T=c[Q+8>>2]|0;if(!T){G=174;break e}else Q=T}T=W-(c[3961]|0)&V;if(T>>>0<2147483647){R=fb(T|0)|0;S=(R|0)==((c[Q>>2]|0)+(c[Y>>2]|0)|0);J=S?T:0;if(S)if((R|0)==(-1|0))Z=J;else{_=R;$=J;G=194;break d}else{aa=R;ba=T;ca=J;G=184}}else Z=0}else G=174;while(0);do if((G|0)==174){U=fb(0)|0;if((U|0)!=(-1|0)){p=U;J=c[4077]|0;T=J+-1|0;if(!(T&p))da=O;else da=O-p+(T+p&0-J)|0;J=c[4066]|0;p=J+da|0;if(da>>>0>B>>>0&da>>>0<2147483647){T=c[4068]|0;if((T|0)!=0?p>>>0<=J>>>0|p>>>0>T>>>0:0){Z=0;break}T=fb(da|0)|0;p=(T|0)==(U|0);J=p?da:0;if(p){_=U;$=J;G=194;break d}else{aa=T;ba=da;ca=J;G=184}}else Z=0}else Z=0}while(0);f:do if((G|0)==184){J=0-ba|0;do if(X>>>0>ba>>>0&(ba>>>0<2147483647&(aa|0)!=(-1|0))?(T=c[4078]|0,U=P-ba+T&0-T,U>>>0<2147483647):0)if((fb(U|0)|0)==(-1|0)){fb(J|0)|0;Z=ca;break f}else{ea=U+ba|0;break}else ea=ba;while(0);if((aa|0)==(-1|0))Z=ca;else{_=aa;$=ea;G=194;break d}}while(0);c[4069]=c[4069]|4;fa=Z;G=191}else{fa=0;G=191}while(0);if((((G|0)==191?O>>>0<2147483647:0)?(Z=fb(O|0)|0,O=fb(0)|0,Z>>>0<O>>>0&((Z|0)!=(-1|0)&(O|0)!=(-1|0))):0)?(ea=O-Z|0,O=ea>>>0>(B+40|0)>>>0,O):0){_=Z;$=O?ea:fa;G=194}if((G|0)==194){fa=(c[4066]|0)+$|0;c[4066]=fa;if(fa>>>0>(c[4067]|0)>>>0)c[4067]=fa;fa=c[3964]|0;g:do if(fa){ea=16280;while(1){ga=c[ea>>2]|0;ha=ea+4|0;ia=c[ha>>2]|0;if((_|0)==(ga+ia|0)){G=204;break}O=c[ea+8>>2]|0;if(!O)break;else ea=O}if(((G|0)==204?(c[ea+12>>2]&8|0)==0:0)?fa>>>0<_>>>0&fa>>>0>=ga>>>0:0){c[ha>>2]=ia+$;O=(c[3961]|0)+$|0;Z=fa+8|0;aa=(Z&7|0)==0?0:0-Z&7;Z=O-aa|0;c[3964]=fa+aa;c[3961]=Z;c[fa+(aa+4)>>2]=Z|1;c[fa+(O+4)>>2]=40;c[3965]=c[4080];break}O=c[3962]|0;if(_>>>0<O>>>0){c[3962]=_;ja=_}else ja=O;O=_+$|0;Z=16280;while(1){if((c[Z>>2]|0)==(O|0)){G=212;break}aa=c[Z+8>>2]|0;if(!aa){ka=16280;break}else Z=aa}if((G|0)==212)if(!(c[Z+12>>2]&8)){c[Z>>2]=_;O=Z+4|0;c[O>>2]=(c[O>>2]|0)+$;O=_+8|0;ea=(O&7|0)==0?0:0-O&7;O=_+($+8)|0;aa=(O&7|0)==0?0:0-O&7;O=_+(aa+$)|0;ca=ea+B|0;ba=_+ca|0;P=O-(_+ea)-B|0;c[_+(ea+4)>>2]=B|3;h:do if((O|0)!=(fa|0)){if((O|0)==(c[3963]|0)){X=(c[3960]|0)+P|0;c[3960]=X;c[3963]=ba;c[_+(ca+4)>>2]=X|1;c[_+(X+ca)>>2]=X;break}X=$+4|0;da=c[_+(X+aa)>>2]|0;if((da&3|0)==1){Y=da&-8;V=da>>>3;i:do if(da>>>0>=256){W=c[_+((aa|24)+$)>>2]|0;J=c[_+($+12+aa)>>2]|0;do if((J|0)==(O|0)){Q=aa|16;U=_+(X+Q)|0;T=c[U>>2]|0;if(!T){p=_+(Q+$)|0;Q=c[p>>2]|0;if(!Q){la=0;break}else{ma=Q;na=p}}else{ma=T;na=U}while(1){U=ma+20|0;T=c[U>>2]|0;if(T){ma=T;na=U;continue}U=ma+16|0;T=c[U>>2]|0;if(!T)break;else{ma=T;na=U}}if(na>>>0<ja>>>0)Ab();else{c[na>>2]=0;la=ma;break}}else{U=c[_+((aa|8)+$)>>2]|0;if(U>>>0<ja>>>0)Ab();T=U+12|0;if((c[T>>2]|0)!=(O|0))Ab();p=J+8|0;if((c[p>>2]|0)==(O|0)){c[T>>2]=J;c[p>>2]=U;la=J;break}else Ab();}while(0);if(!W)break;J=c[_+($+28+aa)>>2]|0;h=16136+(J<<2)|0;do if((O|0)!=(c[h>>2]|0)){if(W>>>0<(c[3962]|0)>>>0)Ab();U=W+16|0;if((c[U>>2]|0)==(O|0))c[U>>2]=la;else c[W+20>>2]=la;if(!la)break i}else{c[h>>2]=la;if(la)break;c[3959]=c[3959]&~(1<<J);break i}while(0);J=c[3962]|0;if(la>>>0<J>>>0)Ab();c[la+24>>2]=W;h=aa|16;U=c[_+(h+$)>>2]|0;do if(U)if(U>>>0<J>>>0)Ab();else{c[la+16>>2]=U;c[U+24>>2]=la;break}while(0);U=c[_+(X+h)>>2]|0;if(!U)break;if(U>>>0<(c[3962]|0)>>>0)Ab();else{c[la+20>>2]=U;c[U+24>>2]=la;break}}else{U=c[_+((aa|8)+$)>>2]|0;J=c[_+($+12+aa)>>2]|0;W=15872+(V<<1<<2)|0;do if((U|0)!=(W|0)){if(U>>>0<ja>>>0)Ab();if((c[U+12>>2]|0)==(O|0))break;Ab();}while(0);if((J|0)==(U|0)){c[3958]=c[3958]&~(1<<V);break}do if((J|0)==(W|0))oa=J+8|0;else{if(J>>>0<ja>>>0)Ab();h=J+8|0;if((c[h>>2]|0)==(O|0)){oa=h;break}Ab();}while(0);c[U+12>>2]=J;c[oa>>2]=U}while(0);pa=_+((Y|aa)+$)|0;qa=Y+P|0}else{pa=O;qa=P}V=pa+4|0;c[V>>2]=c[V>>2]&-2;c[_+(ca+4)>>2]=qa|1;c[_+(qa+ca)>>2]=qa;V=qa>>>3;if(qa>>>0<256){X=V<<1;da=15872+(X<<2)|0;W=c[3958]|0;h=1<<V;do if(!(W&h)){c[3958]=W|h;ra=15872+(X+2<<2)|0;sa=da}else{V=15872+(X+2<<2)|0;p=c[V>>2]|0;if(p>>>0>=(c[3962]|0)>>>0){ra=V;sa=p;break}Ab();}while(0);c[ra>>2]=ba;c[sa+12>>2]=ba;c[_+(ca+8)>>2]=sa;c[_+(ca+12)>>2]=da;break}X=qa>>>8;do if(!X)ta=0;else{if(qa>>>0>16777215){ta=31;break}h=(X+1048320|0)>>>16&8;W=X<<h;Y=(W+520192|0)>>>16&4;p=W<<Y;W=(p+245760|0)>>>16&2;V=14-(Y|h|W)+(p<<W>>>15)|0;ta=qa>>>(V+7|0)&1|V<<1}while(0);X=16136+(ta<<2)|0;c[_+(ca+28)>>2]=ta;c[_+(ca+20)>>2]=0;c[_+(ca+16)>>2]=0;da=c[3959]|0;V=1<<ta;if(!(da&V)){c[3959]=da|V;c[X>>2]=ba;c[_+(ca+24)>>2]=X;c[_+(ca+12)>>2]=ba;c[_+(ca+8)>>2]=ba;break}V=c[X>>2]|0;j:do if((c[V+4>>2]&-8|0)!=(qa|0)){X=qa<<((ta|0)==31?0:25-(ta>>>1)|0);da=V;while(1){ua=da+16+(X>>>31<<2)|0;W=c[ua>>2]|0;if(!W)break;if((c[W+4>>2]&-8|0)==(qa|0)){va=W;break j}else{X=X<<1;da=W}}if(ua>>>0<(c[3962]|0)>>>0)Ab();else{c[ua>>2]=ba;c[_+(ca+24)>>2]=da;c[_+(ca+12)>>2]=ba;c[_+(ca+8)>>2]=ba;break h}}else va=V;while(0);V=va+8|0;X=c[V>>2]|0;U=c[3962]|0;if(X>>>0>=U>>>0&va>>>0>=U>>>0){c[X+12>>2]=ba;c[V>>2]=ba;c[_+(ca+8)>>2]=X;c[_+(ca+12)>>2]=va;c[_+(ca+24)>>2]=0;break}else Ab();}else{X=(c[3961]|0)+P|0;c[3961]=X;c[3964]=ba;c[_+(ca+4)>>2]=X|1}while(0);n=_+(ea|8)|0;return n|0}else ka=16280;while(1){wa=c[ka>>2]|0;if(wa>>>0<=fa>>>0?(xa=c[ka+4>>2]|0,ya=wa+xa|0,ya>>>0>fa>>>0):0)break;ka=c[ka+8>>2]|0}ea=wa+(xa+-39)|0;ca=wa+(xa+-47+((ea&7|0)==0?0:0-ea&7))|0;ea=fa+16|0;ba=ca>>>0<ea>>>0?fa:ca;ca=ba+8|0;P=_+8|0;O=(P&7|0)==0?0:0-P&7;P=$+-40-O|0;c[3964]=_+O;c[3961]=P;c[_+(O+4)>>2]=P|1;c[_+($+-36)>>2]=40;c[3965]=c[4080];P=ba+4|0;c[P>>2]=27;c[ca>>2]=c[4070];c[ca+4>>2]=c[4071];c[ca+8>>2]=c[4072];c[ca+12>>2]=c[4073];c[4070]=_;c[4071]=$;c[4073]=0;c[4072]=ca;ca=ba+28|0;c[ca>>2]=7;if((ba+32|0)>>>0<ya>>>0){O=ca;do{ca=O;O=O+4|0;c[O>>2]=7}while((ca+8|0)>>>0<ya>>>0);}if((ba|0)!=(fa|0)){O=ba-fa|0;c[P>>2]=c[P>>2]&-2;c[fa+4>>2]=O|1;c[ba>>2]=O;ca=O>>>3;if(O>>>0<256){aa=ca<<1;Z=15872+(aa<<2)|0;X=c[3958]|0;V=1<<ca;if(X&V){ca=15872+(aa+2<<2)|0;U=c[ca>>2]|0;if(U>>>0<(c[3962]|0)>>>0)Ab();else{za=ca;Aa=U}}else{c[3958]=X|V;za=15872+(aa+2<<2)|0;Aa=Z}c[za>>2]=fa;c[Aa+12>>2]=fa;c[fa+8>>2]=Aa;c[fa+12>>2]=Z;break}Z=O>>>8;if(Z)if(O>>>0>16777215)Ba=31;else{aa=(Z+1048320|0)>>>16&8;V=Z<<aa;Z=(V+520192|0)>>>16&4;X=V<<Z;V=(X+245760|0)>>>16&2;U=14-(Z|aa|V)+(X<<V>>>15)|0;Ba=O>>>(U+7|0)&1|U<<1}else Ba=0;U=16136+(Ba<<2)|0;c[fa+28>>2]=Ba;c[fa+20>>2]=0;c[ea>>2]=0;V=c[3959]|0;X=1<<Ba;if(!(V&X)){c[3959]=V|X;c[U>>2]=fa;c[fa+24>>2]=U;c[fa+12>>2]=fa;c[fa+8>>2]=fa;break}X=c[U>>2]|0;k:do if((c[X+4>>2]&-8|0)!=(O|0)){U=O<<((Ba|0)==31?0:25-(Ba>>>1)|0);V=X;while(1){Ca=V+16+(U>>>31<<2)|0;aa=c[Ca>>2]|0;if(!aa)break;if((c[aa+4>>2]&-8|0)==(O|0)){Da=aa;break k}else{U=U<<1;V=aa}}if(Ca>>>0<(c[3962]|0)>>>0)Ab();else{c[Ca>>2]=fa;c[fa+24>>2]=V;c[fa+12>>2]=fa;c[fa+8>>2]=fa;break g}}else Da=X;while(0);X=Da+8|0;O=c[X>>2]|0;ea=c[3962]|0;if(O>>>0>=ea>>>0&Da>>>0>=ea>>>0){c[O+12>>2]=fa;c[X>>2]=fa;c[fa+8>>2]=O;c[fa+12>>2]=Da;c[fa+24>>2]=0;break}else Ab();}}else{O=c[3962]|0;if((O|0)==0|_>>>0<O>>>0)c[3962]=_;c[4070]=_;c[4071]=$;c[4073]=0;c[3967]=c[4076];c[3966]=-1;O=0;do{X=O<<1;ea=15872+(X<<2)|0;c[15872+(X+3<<2)>>2]=ea;c[15872+(X+2<<2)>>2]=ea;O=O+1|0}while((O|0)!=32);O=_+8|0;ea=(O&7|0)==0?0:0-O&7;O=$+-40-ea|0;c[3964]=_+ea;c[3961]=O;c[_+(ea+4)>>2]=O|1;c[_+($+-36)>>2]=40;c[3965]=c[4080]}while(0);$=c[3961]|0;if($>>>0>B>>>0){_=$-B|0;c[3961]=_;$=c[3964]|0;c[3964]=$+B;c[$+(B+4)>>2]=_|1;c[$+4>>2]=B|3;n=$+8|0;return n|0}}c[(wb()|0)>>2]=12;n=0;return n|0}function xs(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0;if(!a)return;b=a+-8|0;d=c[3962]|0;if(b>>>0<d>>>0)Ab();e=c[a+-4>>2]|0;f=e&3;if((f|0)==1)Ab();g=e&-8;h=a+(g+-8)|0;do if(!(e&1)){i=c[b>>2]|0;if(!f)return;j=-8-i|0;k=a+j|0;l=i+g|0;if(k>>>0<d>>>0)Ab();if((k|0)==(c[3963]|0)){m=a+(g+-4)|0;n=c[m>>2]|0;if((n&3|0)!=3){o=k;p=l;break}c[3960]=l;c[m>>2]=n&-2;c[a+(j+4)>>2]=l|1;c[h>>2]=l;return}n=i>>>3;if(i>>>0<256){i=c[a+(j+8)>>2]|0;m=c[a+(j+12)>>2]|0;q=15872+(n<<1<<2)|0;if((i|0)!=(q|0)){if(i>>>0<d>>>0)Ab();if((c[i+12>>2]|0)!=(k|0))Ab();}if((m|0)==(i|0)){c[3958]=c[3958]&~(1<<n);o=k;p=l;break}if((m|0)!=(q|0)){if(m>>>0<d>>>0)Ab();q=m+8|0;if((c[q>>2]|0)==(k|0))r=q;else Ab();}else r=m+8|0;c[i+12>>2]=m;c[r>>2]=i;o=k;p=l;break}i=c[a+(j+24)>>2]|0;m=c[a+(j+12)>>2]|0;do if((m|0)==(k|0)){q=a+(j+20)|0;n=c[q>>2]|0;if(!n){s=a+(j+16)|0;t=c[s>>2]|0;if(!t){u=0;break}else{v=t;w=s}}else{v=n;w=q}while(1){q=v+20|0;n=c[q>>2]|0;if(n){v=n;w=q;continue}q=v+16|0;n=c[q>>2]|0;if(!n)break;else{v=n;w=q}}if(w>>>0<d>>>0)Ab();else{c[w>>2]=0;u=v;break}}else{q=c[a+(j+8)>>2]|0;if(q>>>0<d>>>0)Ab();n=q+12|0;if((c[n>>2]|0)!=(k|0))Ab();s=m+8|0;if((c[s>>2]|0)==(k|0)){c[n>>2]=m;c[s>>2]=q;u=m;break}else Ab();}while(0);if(i){m=c[a+(j+28)>>2]|0;q=16136+(m<<2)|0;if((k|0)==(c[q>>2]|0)){c[q>>2]=u;if(!u){c[3959]=c[3959]&~(1<<m);o=k;p=l;break}}else{if(i>>>0<(c[3962]|0)>>>0)Ab();m=i+16|0;if((c[m>>2]|0)==(k|0))c[m>>2]=u;else c[i+20>>2]=u;if(!u){o=k;p=l;break}}m=c[3962]|0;if(u>>>0<m>>>0)Ab();c[u+24>>2]=i;q=c[a+(j+16)>>2]|0;do if(q)if(q>>>0<m>>>0)Ab();else{c[u+16>>2]=q;c[q+24>>2]=u;break}while(0);q=c[a+(j+20)>>2]|0;if(q)if(q>>>0<(c[3962]|0)>>>0)Ab();else{c[u+20>>2]=q;c[q+24>>2]=u;o=k;p=l;break}else{o=k;p=l}}else{o=k;p=l}}else{o=b;p=g}while(0);if(o>>>0>=h>>>0)Ab();b=a+(g+-4)|0;u=c[b>>2]|0;if(!(u&1))Ab();if(!(u&2)){if((h|0)==(c[3964]|0)){d=(c[3961]|0)+p|0;c[3961]=d;c[3964]=o;c[o+4>>2]=d|1;if((o|0)!=(c[3963]|0))return;c[3963]=0;c[3960]=0;return}if((h|0)==(c[3963]|0)){d=(c[3960]|0)+p|0;c[3960]=d;c[3963]=o;c[o+4>>2]=d|1;c[o+d>>2]=d;return}d=(u&-8)+p|0;v=u>>>3;do if(u>>>0>=256){w=c[a+(g+16)>>2]|0;r=c[a+(g|4)>>2]|0;do if((r|0)==(h|0)){f=a+(g+12)|0;e=c[f>>2]|0;if(!e){q=a+(g+8)|0;m=c[q>>2]|0;if(!m){x=0;break}else{y=m;z=q}}else{y=e;z=f}while(1){f=y+20|0;e=c[f>>2]|0;if(e){y=e;z=f;continue}f=y+16|0;e=c[f>>2]|0;if(!e)break;else{y=e;z=f}}if(z>>>0<(c[3962]|0)>>>0)Ab();else{c[z>>2]=0;x=y;break}}else{f=c[a+g>>2]|0;if(f>>>0<(c[3962]|0)>>>0)Ab();e=f+12|0;if((c[e>>2]|0)!=(h|0))Ab();q=r+8|0;if((c[q>>2]|0)==(h|0)){c[e>>2]=r;c[q>>2]=f;x=r;break}else Ab();}while(0);if(w){r=c[a+(g+20)>>2]|0;l=16136+(r<<2)|0;if((h|0)==(c[l>>2]|0)){c[l>>2]=x;if(!x){c[3959]=c[3959]&~(1<<r);break}}else{if(w>>>0<(c[3962]|0)>>>0)Ab();r=w+16|0;if((c[r>>2]|0)==(h|0))c[r>>2]=x;else c[w+20>>2]=x;if(!x)break}r=c[3962]|0;if(x>>>0<r>>>0)Ab();c[x+24>>2]=w;l=c[a+(g+8)>>2]|0;do if(l)if(l>>>0<r>>>0)Ab();else{c[x+16>>2]=l;c[l+24>>2]=x;break}while(0);l=c[a+(g+12)>>2]|0;if(l)if(l>>>0<(c[3962]|0)>>>0)Ab();else{c[x+20>>2]=l;c[l+24>>2]=x;break}}}else{l=c[a+g>>2]|0;r=c[a+(g|4)>>2]|0;w=15872+(v<<1<<2)|0;if((l|0)!=(w|0)){if(l>>>0<(c[3962]|0)>>>0)Ab();if((c[l+12>>2]|0)!=(h|0))Ab();}if((r|0)==(l|0)){c[3958]=c[3958]&~(1<<v);break}if((r|0)!=(w|0)){if(r>>>0<(c[3962]|0)>>>0)Ab();w=r+8|0;if((c[w>>2]|0)==(h|0))A=w;else Ab();}else A=r+8|0;c[l+12>>2]=r;c[A>>2]=l}while(0);c[o+4>>2]=d|1;c[o+d>>2]=d;if((o|0)==(c[3963]|0)){c[3960]=d;return}else B=d}else{c[b>>2]=u&-2;c[o+4>>2]=p|1;c[o+p>>2]=p;B=p}p=B>>>3;if(B>>>0<256){u=p<<1;b=15872+(u<<2)|0;d=c[3958]|0;A=1<<p;if(d&A){p=15872+(u+2<<2)|0;h=c[p>>2]|0;if(h>>>0<(c[3962]|0)>>>0)Ab();else{C=p;D=h}}else{c[3958]=d|A;C=15872+(u+2<<2)|0;D=b}c[C>>2]=o;c[D+12>>2]=o;c[o+8>>2]=D;c[o+12>>2]=b;return}b=B>>>8;if(b)if(B>>>0>16777215)E=31;else{D=(b+1048320|0)>>>16&8;C=b<<D;b=(C+520192|0)>>>16&4;u=C<<b;C=(u+245760|0)>>>16&2;A=14-(b|D|C)+(u<<C>>>15)|0;E=B>>>(A+7|0)&1|A<<1}else E=0;A=16136+(E<<2)|0;c[o+28>>2]=E;c[o+20>>2]=0;c[o+16>>2]=0;C=c[3959]|0;u=1<<E;a:do if(C&u){D=c[A>>2]|0;b:do if((c[D+4>>2]&-8|0)!=(B|0)){b=B<<((E|0)==31?0:25-(E>>>1)|0);d=D;while(1){F=d+16+(b>>>31<<2)|0;h=c[F>>2]|0;if(!h)break;if((c[h+4>>2]&-8|0)==(B|0)){G=h;break b}else{b=b<<1;d=h}}if(F>>>0<(c[3962]|0)>>>0)Ab();else{c[F>>2]=o;c[o+24>>2]=d;c[o+12>>2]=o;c[o+8>>2]=o;break a}}else G=D;while(0);D=G+8|0;b=c[D>>2]|0;h=c[3962]|0;if(b>>>0>=h>>>0&G>>>0>=h>>>0){c[b+12>>2]=o;c[D>>2]=o;c[o+8>>2]=b;c[o+12>>2]=G;c[o+24>>2]=0;break}else Ab();}else{c[3959]=C|u;c[A>>2]=o;c[o+24>>2]=A;c[o+12>>2]=o;c[o+8>>2]=o}while(0);o=(c[3966]|0)+-1|0;c[3966]=o;if(!o)H=16288;else return;while(1){o=c[H>>2]|0;if(!o)break;else H=o+8|0}c[3966]=-1;return}function ys(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0;if(!a){d=ws(b)|0;return d|0}if(b>>>0>4294967231){c[(wb()|0)>>2]=12;d=0;return d|0}e=b>>>0<11?16:b+11&-8;f=a+-4|0;g=c[f>>2]|0;h=g&-8;i=h+-8|0;j=a+i|0;k=c[3962]|0;l=g&3;if(!((l|0)!=1&(a+-8|0)>>>0>=k>>>0&(i|0)>-8))Ab();i=h|4;m=a+(i+-8)|0;n=c[m>>2]|0;if(!(n&1))Ab();do if(!l){if(!(e>>>0<256|h>>>0<(e|4)>>>0)?(h-e|0)>>>0<=c[4078]<<1>>>0:0){d=a;return d|0}}else{if(h>>>0>=e>>>0){o=h-e|0;if(o>>>0<=15){d=a;return d|0}c[f>>2]=g&1|e|2;c[a+((e|4)+-8)>>2]=o|3;c[m>>2]=c[m>>2]|1;zs(a+(e+-8)|0,o);d=a;return d|0}if((j|0)==(c[3964]|0)){o=(c[3961]|0)+h|0;if(o>>>0<=e>>>0)break;p=o-e|0;c[f>>2]=g&1|e|2;c[a+((e|4)+-8)>>2]=p|1;c[3964]=a+(e+-8);c[3961]=p;d=a;return d|0}if((j|0)==(c[3963]|0)){p=(c[3960]|0)+h|0;if(p>>>0<e>>>0)break;o=p-e|0;if(o>>>0>15){c[f>>2]=g&1|e|2;c[a+((e|4)+-8)>>2]=o|1;c[a+(p+-8)>>2]=o;q=a+(p+-4)|0;c[q>>2]=c[q>>2]&-2;r=a+(e+-8)|0;s=o}else{c[f>>2]=g&1|p|2;o=a+(p+-4)|0;c[o>>2]=c[o>>2]|1;r=0;s=0}c[3960]=s;c[3963]=r;d=a;return d|0}if((n&2|0)==0?(o=(n&-8)+h|0,o>>>0>=e>>>0):0){p=o-e|0;q=n>>>3;do if(n>>>0>=256){t=c[a+(h+16)>>2]|0;u=c[a+i>>2]|0;do if((u|0)==(j|0)){v=a+(h+12)|0;w=c[v>>2]|0;if(!w){x=a+(h+8)|0;y=c[x>>2]|0;if(!y){z=0;break}else{A=y;B=x}}else{A=w;B=v}while(1){v=A+20|0;w=c[v>>2]|0;if(w){A=w;B=v;continue}v=A+16|0;w=c[v>>2]|0;if(!w)break;else{A=w;B=v}}if(B>>>0<k>>>0)Ab();else{c[B>>2]=0;z=A;break}}else{v=c[a+h>>2]|0;if(v>>>0<k>>>0)Ab();w=v+12|0;if((c[w>>2]|0)!=(j|0))Ab();x=u+8|0;if((c[x>>2]|0)==(j|0)){c[w>>2]=u;c[x>>2]=v;z=u;break}else Ab();}while(0);if(t){u=c[a+(h+20)>>2]|0;v=16136+(u<<2)|0;if((j|0)==(c[v>>2]|0)){c[v>>2]=z;if(!z){c[3959]=c[3959]&~(1<<u);break}}else{if(t>>>0<(c[3962]|0)>>>0)Ab();u=t+16|0;if((c[u>>2]|0)==(j|0))c[u>>2]=z;else c[t+20>>2]=z;if(!z)break}u=c[3962]|0;if(z>>>0<u>>>0)Ab();c[z+24>>2]=t;v=c[a+(h+8)>>2]|0;do if(v)if(v>>>0<u>>>0)Ab();else{c[z+16>>2]=v;c[v+24>>2]=z;break}while(0);v=c[a+(h+12)>>2]|0;if(v)if(v>>>0<(c[3962]|0)>>>0)Ab();else{c[z+20>>2]=v;c[v+24>>2]=z;break}}}else{v=c[a+h>>2]|0;u=c[a+i>>2]|0;t=15872+(q<<1<<2)|0;if((v|0)!=(t|0)){if(v>>>0<k>>>0)Ab();if((c[v+12>>2]|0)!=(j|0))Ab();}if((u|0)==(v|0)){c[3958]=c[3958]&~(1<<q);break}if((u|0)!=(t|0)){if(u>>>0<k>>>0)Ab();t=u+8|0;if((c[t>>2]|0)==(j|0))C=t;else Ab();}else C=u+8|0;c[v+12>>2]=u;c[C>>2]=v}while(0);if(p>>>0<16){c[f>>2]=o|g&1|2;q=a+((o|4)+-8)|0;c[q>>2]=c[q>>2]|1;d=a;return d|0}else{c[f>>2]=g&1|e|2;c[a+((e|4)+-8)>>2]=p|3;q=a+((o|4)+-8)|0;c[q>>2]=c[q>>2]|1;zs(a+(e+-8)|0,p);d=a;return d|0}}}while(0);e=ws(b)|0;if(!e){d=0;return d|0}g=c[f>>2]|0;f=(g&-8)-((g&3|0)==0?8:4)|0;Gs(e|0,a|0,(f>>>0<b>>>0?f:b)|0)|0;xs(a);d=e;return d|0}function zs(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;d=a+b|0;e=c[a+4>>2]|0;do if(!(e&1)){f=c[a>>2]|0;if(!(e&3))return;g=a+(0-f)|0;h=f+b|0;i=c[3962]|0;if(g>>>0<i>>>0)Ab();if((g|0)==(c[3963]|0)){j=a+(b+4)|0;k=c[j>>2]|0;if((k&3|0)!=3){l=g;m=h;break}c[3960]=h;c[j>>2]=k&-2;c[a+(4-f)>>2]=h|1;c[d>>2]=h;return}k=f>>>3;if(f>>>0<256){j=c[a+(8-f)>>2]|0;n=c[a+(12-f)>>2]|0;o=15872+(k<<1<<2)|0;if((j|0)!=(o|0)){if(j>>>0<i>>>0)Ab();if((c[j+12>>2]|0)!=(g|0))Ab();}if((n|0)==(j|0)){c[3958]=c[3958]&~(1<<k);l=g;m=h;break}if((n|0)!=(o|0)){if(n>>>0<i>>>0)Ab();o=n+8|0;if((c[o>>2]|0)==(g|0))p=o;else Ab();}else p=n+8|0;c[j+12>>2]=n;c[p>>2]=j;l=g;m=h;break}j=c[a+(24-f)>>2]|0;n=c[a+(12-f)>>2]|0;do if((n|0)==(g|0)){o=16-f|0;k=a+(o+4)|0;q=c[k>>2]|0;if(!q){r=a+o|0;o=c[r>>2]|0;if(!o){s=0;break}else{t=o;u=r}}else{t=q;u=k}while(1){k=t+20|0;q=c[k>>2]|0;if(q){t=q;u=k;continue}k=t+16|0;q=c[k>>2]|0;if(!q)break;else{t=q;u=k}}if(u>>>0<i>>>0)Ab();else{c[u>>2]=0;s=t;break}}else{k=c[a+(8-f)>>2]|0;if(k>>>0<i>>>0)Ab();q=k+12|0;if((c[q>>2]|0)!=(g|0))Ab();r=n+8|0;if((c[r>>2]|0)==(g|0)){c[q>>2]=n;c[r>>2]=k;s=n;break}else Ab();}while(0);if(j){n=c[a+(28-f)>>2]|0;i=16136+(n<<2)|0;if((g|0)==(c[i>>2]|0)){c[i>>2]=s;if(!s){c[3959]=c[3959]&~(1<<n);l=g;m=h;break}}else{if(j>>>0<(c[3962]|0)>>>0)Ab();n=j+16|0;if((c[n>>2]|0)==(g|0))c[n>>2]=s;else c[j+20>>2]=s;if(!s){l=g;m=h;break}}n=c[3962]|0;if(s>>>0<n>>>0)Ab();c[s+24>>2]=j;i=16-f|0;k=c[a+i>>2]|0;do if(k)if(k>>>0<n>>>0)Ab();else{c[s+16>>2]=k;c[k+24>>2]=s;break}while(0);k=c[a+(i+4)>>2]|0;if(k)if(k>>>0<(c[3962]|0)>>>0)Ab();else{c[s+20>>2]=k;c[k+24>>2]=s;l=g;m=h;break}else{l=g;m=h}}else{l=g;m=h}}else{l=a;m=b}while(0);s=c[3962]|0;if(d>>>0<s>>>0)Ab();t=a+(b+4)|0;u=c[t>>2]|0;if(!(u&2)){if((d|0)==(c[3964]|0)){p=(c[3961]|0)+m|0;c[3961]=p;c[3964]=l;c[l+4>>2]=p|1;if((l|0)!=(c[3963]|0))return;c[3963]=0;c[3960]=0;return}if((d|0)==(c[3963]|0)){p=(c[3960]|0)+m|0;c[3960]=p;c[3963]=l;c[l+4>>2]=p|1;c[l+p>>2]=p;return}p=(u&-8)+m|0;e=u>>>3;do if(u>>>0>=256){k=c[a+(b+24)>>2]|0;n=c[a+(b+12)>>2]|0;do if((n|0)==(d|0)){f=a+(b+20)|0;j=c[f>>2]|0;if(!j){r=a+(b+16)|0;q=c[r>>2]|0;if(!q){v=0;break}else{w=q;x=r}}else{w=j;x=f}while(1){f=w+20|0;j=c[f>>2]|0;if(j){w=j;x=f;continue}f=w+16|0;j=c[f>>2]|0;if(!j)break;else{w=j;x=f}}if(x>>>0<s>>>0)Ab();else{c[x>>2]=0;v=w;break}}else{f=c[a+(b+8)>>2]|0;if(f>>>0<s>>>0)Ab();j=f+12|0;if((c[j>>2]|0)!=(d|0))Ab();r=n+8|0;if((c[r>>2]|0)==(d|0)){c[j>>2]=n;c[r>>2]=f;v=n;break}else Ab();}while(0);if(k){n=c[a+(b+28)>>2]|0;h=16136+(n<<2)|0;if((d|0)==(c[h>>2]|0)){c[h>>2]=v;if(!v){c[3959]=c[3959]&~(1<<n);break}}else{if(k>>>0<(c[3962]|0)>>>0)Ab();n=k+16|0;if((c[n>>2]|0)==(d|0))c[n>>2]=v;else c[k+20>>2]=v;if(!v)break}n=c[3962]|0;if(v>>>0<n>>>0)Ab();c[v+24>>2]=k;h=c[a+(b+16)>>2]|0;do if(h)if(h>>>0<n>>>0)Ab();else{c[v+16>>2]=h;c[h+24>>2]=v;break}while(0);h=c[a+(b+20)>>2]|0;if(h)if(h>>>0<(c[3962]|0)>>>0)Ab();else{c[v+20>>2]=h;c[h+24>>2]=v;break}}}else{h=c[a+(b+8)>>2]|0;n=c[a+(b+12)>>2]|0;k=15872+(e<<1<<2)|0;if((h|0)!=(k|0)){if(h>>>0<s>>>0)Ab();if((c[h+12>>2]|0)!=(d|0))Ab();}if((n|0)==(h|0)){c[3958]=c[3958]&~(1<<e);break}if((n|0)!=(k|0)){if(n>>>0<s>>>0)Ab();k=n+8|0;if((c[k>>2]|0)==(d|0))y=k;else Ab();}else y=n+8|0;c[h+12>>2]=n;c[y>>2]=h}while(0);c[l+4>>2]=p|1;c[l+p>>2]=p;if((l|0)==(c[3963]|0)){c[3960]=p;return}else z=p}else{c[t>>2]=u&-2;c[l+4>>2]=m|1;c[l+m>>2]=m;z=m}m=z>>>3;if(z>>>0<256){u=m<<1;t=15872+(u<<2)|0;p=c[3958]|0;y=1<<m;if(p&y){m=15872+(u+2<<2)|0;d=c[m>>2]|0;if(d>>>0<(c[3962]|0)>>>0)Ab();else{A=m;B=d}}else{c[3958]=p|y;A=15872+(u+2<<2)|0;B=t}c[A>>2]=l;c[B+12>>2]=l;c[l+8>>2]=B;c[l+12>>2]=t;return}t=z>>>8;if(t)if(z>>>0>16777215)C=31;else{B=(t+1048320|0)>>>16&8;A=t<<B;t=(A+520192|0)>>>16&4;u=A<<t;A=(u+245760|0)>>>16&2;y=14-(t|B|A)+(u<<A>>>15)|0;C=z>>>(y+7|0)&1|y<<1}else C=0;y=16136+(C<<2)|0;c[l+28>>2]=C;c[l+20>>2]=0;c[l+16>>2]=0;A=c[3959]|0;u=1<<C;if(!(A&u)){c[3959]=A|u;c[y>>2]=l;c[l+24>>2]=y;c[l+12>>2]=l;c[l+8>>2]=l;return}u=c[y>>2]|0;a:do if((c[u+4>>2]&-8|0)==(z|0))D=u;else{y=z<<((C|0)==31?0:25-(C>>>1)|0);A=u;while(1){E=A+16+(y>>>31<<2)|0;B=c[E>>2]|0;if(!B)break;if((c[B+4>>2]&-8|0)==(z|0)){D=B;break a}else{y=y<<1;A=B}}if(E>>>0<(c[3962]|0)>>>0)Ab();c[E>>2]=l;c[l+24>>2]=A;c[l+12>>2]=l;c[l+8>>2]=l;return}while(0);E=D+8|0;z=c[E>>2]|0;u=c[3962]|0;if(!(z>>>0>=u>>>0&D>>>0>=u>>>0))Ab();c[z+12>>2]=l;c[E>>2]=l;c[l+8>>2]=z;c[l+12>>2]=D;c[l+24>>2]=0;return}function As(){}function Bs(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0;e=b-d>>>0;e=b-d-(c>>>0>a>>>0|0)>>>0;return (D=e,a-c>>>0|0)|0}function Cs(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;f=b+e|0;if((e|0)>=20){d=d&255;g=b&3;h=d|d<<8|d<<16|d<<24;i=f&~3;if(g){g=b+4-g|0;while((b|0)<(g|0)){a[b>>0]=d;b=b+1|0}}while((b|0)<(i|0)){c[b>>2]=h;b=b+4|0}}while((b|0)<(f|0)){a[b>>0]=d;b=b+1|0}return b-e|0}function Ds(b){b=b|0;var c=0;c=b;while(a[c>>0]|0)c=c+1|0;return c-b|0}function Es(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0;e=a+c>>>0;return (D=b+d+(e>>>0<a>>>0|0)>>>0,e|0)|0}function Fs(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){D=b>>>c;return a>>>c|(b&(1<<c)-1)<<32-c}D=0;return b>>>c-32|0}function Gs(b,d,e){b=b|0;d=d|0;e=e|0;var f=0;if((e|0)>=4096)return qb(b|0,d|0,e|0)|0;f=b|0;if((b&3)==(d&3)){while(b&3){if(!e)return f|0;a[b>>0]=a[d>>0]|0;b=b+1|0;d=d+1|0;e=e-1|0}while((e|0)>=4){c[b>>2]=c[d>>2];b=b+4|0;d=d+4|0;e=e-4|0}}while((e|0)>0){a[b>>0]=a[d>>0]|0;b=b+1|0;d=d+1|0;e=e-1|0}return f|0}function Hs(b,c,d){b=b|0;c=c|0;d=d|0;var e=0;if((c|0)<(b|0)&(b|0)<(c+d|0)){e=b;c=c+d|0;b=b+d|0;while((d|0)>0){b=b-1|0;c=c-1|0;d=d-1|0;a[b>>0]=a[c>>0]|0}b=e}else Gs(b,c,d)|0;return b|0}function Is(a){a=a|0;return (a&255)<<24|(a>>8&255)<<16|(a>>16&255)<<8|a>>>24|0}function Js(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){D=b<<c|(a&(1<<c)-1<<32-c)>>>32-c;return a<<c}D=a<<c-32;return 0}function Ks(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){D=b>>c;return a>>>c|(b&(1<<c)-1)<<32-c}D=(b|0)<0?-1:0;return b>>c-32|0}function Ls(b){b=b|0;var c=0;c=a[m+(b&255)>>0]|0;if((c|0)<8)return c|0;c=a[m+(b>>8&255)>>0]|0;if((c|0)<8)return c+8|0;c=a[m+(b>>16&255)>>0]|0;if((c|0)<8)return c+16|0;return (a[m+(b>>>24)>>0]|0)+24|0}function Ms(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;c=a&65535;d=b&65535;e=$(d,c)|0;f=a>>>16;a=(e>>>16)+($(d,f)|0)|0;d=b>>>16;b=$(d,c)|0;return (D=(a>>>16)+($(d,f)|0)+(((a&65535)+b|0)>>>16)|0,a+b<<16|e&65535|0)|0}function Ns(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;e=b>>31|((b|0)<0?-1:0)<<1;f=((b|0)<0?-1:0)>>31|((b|0)<0?-1:0)<<1;g=d>>31|((d|0)<0?-1:0)<<1;h=((d|0)<0?-1:0)>>31|((d|0)<0?-1:0)<<1;i=Bs(e^a,f^b,e,f)|0;b=D;a=g^e;e=h^f;return Bs((Ss(i,b,Bs(g^c,h^d,g,h)|0,D,0)|0)^a,D^e,a,e)|0}function Os(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0;f=i;i=i+8|0;g=f|0;h=b>>31|((b|0)<0?-1:0)<<1;j=((b|0)<0?-1:0)>>31|((b|0)<0?-1:0)<<1;k=e>>31|((e|0)<0?-1:0)<<1;l=((e|0)<0?-1:0)>>31|((e|0)<0?-1:0)<<1;m=Bs(h^a,j^b,h,j)|0;b=D;Ss(m,b,Bs(k^d,l^e,k,l)|0,D,g)|0;l=Bs(c[g>>2]^h,c[g+4>>2]^j,h,j)|0;j=D;i=f;return (D=j,l)|0}function Ps(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0;e=a;a=c;c=Ms(e,a)|0;f=D;return (D=($(b,a)|0)+($(d,e)|0)+f|f&0,c|0|0)|0}function Qs(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return Ss(a,b,c,d,0)|0}function Rs(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;f=i;i=i+8|0;g=f|0;Ss(a,b,d,e,g)|0;i=f;return (D=c[g+4>>2]|0,c[g>>2]|0)|0}function Ss(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,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,E=0,F=0,G=0,H=0;g=a;h=b;i=h;j=d;k=e;l=k;if(!i){m=(f|0)!=0;if(!l){if(m){c[f>>2]=(g>>>0)%(j>>>0);c[f+4>>2]=0}n=0;o=(g>>>0)/(j>>>0)>>>0;return (D=n,o)|0}else{if(!m){n=0;o=0;return (D=n,o)|0}c[f>>2]=a|0;c[f+4>>2]=b&0;n=0;o=0;return (D=n,o)|0}}m=(l|0)==0;do if(j){if(!m){p=(ba(l|0)|0)-(ba(i|0)|0)|0;if(p>>>0<=31){q=p+1|0;r=31-p|0;s=p-31>>31;t=q;u=g>>>(q>>>0)&s|i<<r;v=i>>>(q>>>0)&s;w=0;x=g<<r;break}if(!f){n=0;o=0;return (D=n,o)|0}c[f>>2]=a|0;c[f+4>>2]=h|b&0;n=0;o=0;return (D=n,o)|0}r=j-1|0;if(r&j){s=(ba(j|0)|0)+33-(ba(i|0)|0)|0;q=64-s|0;p=32-s|0;y=p>>31;z=s-32|0;A=z>>31;t=s;u=p-1>>31&i>>>(z>>>0)|(i<<p|g>>>(s>>>0))&A;v=A&i>>>(s>>>0);w=g<<q&y;x=(i<<q|g>>>(z>>>0))&y|g<<p&s-33>>31;break}if(f){c[f>>2]=r&g;c[f+4>>2]=0}if((j|0)==1){n=h|b&0;o=a|0|0;return (D=n,o)|0}else{r=Ls(j|0)|0;n=i>>>(r>>>0)|0;o=i<<32-r|g>>>(r>>>0)|0;return (D=n,o)|0}}else{if(m){if(f){c[f>>2]=(i>>>0)%(j>>>0);c[f+4>>2]=0}n=0;o=(i>>>0)/(j>>>0)>>>0;return (D=n,o)|0}if(!g){if(f){c[f>>2]=0;c[f+4>>2]=(i>>>0)%(l>>>0);}n=0;o=(i>>>0)/(l>>>0)>>>0;return (D=n,o)|0}r=l-1|0;if(!(r&l)){if(f){c[f>>2]=a|0;c[f+4>>2]=r&i|b&0}n=0;o=i>>>((Ls(l|0)|0)>>>0);return (D=n,o)|0}r=(ba(l|0)|0)-(ba(i|0)|0)|0;if(r>>>0<=30){s=r+1|0;p=31-r|0;t=s;u=i<<p|g>>>(s>>>0);v=i>>>(s>>>0);w=0;x=g<<p;break}if(!f){n=0;o=0;return (D=n,o)|0}c[f>>2]=a|0;c[f+4>>2]=h|b&0;n=0;o=0;return (D=n,o)|0}while(0);if(!t){B=x;C=w;E=v;F=u;G=0;H=0}else{b=d|0|0;d=k|e&0;e=Es(b|0,d|0,-1,-1)|0;k=D;h=x;x=w;w=v;v=u;u=t;t=0;do{a=h;h=x>>>31|h<<1;x=t|x<<1;g=v<<1|a>>>31|0;a=v>>>31|w<<1|0;Bs(e,k,g,a)|0;i=D;l=i>>31|((i|0)<0?-1:0)<<1;t=l&1;v=Bs(g,a,l&b,(((i|0)<0?-1:0)>>31|((i|0)<0?-1:0)<<1)&d)|0;w=D;u=u-1|0}while((u|0)!=0);B=h;C=x;E=w;F=v;G=0;H=t}t=C;C=0;if(f){c[f>>2]=F;c[f+4>>2]=E}n=(t|0)>>>31|(B|C)<<1|(C<<1|t>>>31)&0|G;o=(t<<1|0>>>31)&-2|H;return (D=n,o)|0}function Ts(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;Ib[a&31](b|0,c|0,d|0,e|0,f|0);}function Us(a,b,c){a=a|0;b=b|0;c=+c;Jb[a&31](b|0,+c);}function Vs(a,b){a=a|0;b=b|0;Kb[a&255](b|0);}function Ws(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=+e;f=f|0;g=g|0;Lb[a&0](b|0,c|0,d|0,+e,f|0,g|0);}function Xs(a,b,c){a=a|0;b=b|0;c=c|0;Mb[a&127](b|0,c|0);}function Ys(a,b,c,d,e,f,g,h,i,j,k){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;return Nb[a&1](b|0,c|0,d|0,e|0,f|0,g|0,h|0,i|0,j|0,k|0)|0}function Zs(a,b){a=a|0;b=b|0;return Ob[a&127](b|0)|0}function _s(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=+d;e=e|0;Pb[a&7](b|0,c|0,+d,e|0);}function $s(a,b,c,d,e,f,g){a=a|0;b=b|0;c=+c;d=+d;e=e|0;f=f|0;g=g|0;Qb[a&0](b|0,+c,+d,e|0,f|0,g|0);}function at(a,b,c,d,e){a=a|0;b=b|0;c=+c;d=d|0;e=e|0;Rb[a&0](b|0,+c,d|0,e|0);}function bt(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return Sb[a&31](b|0,c|0,d|0,e|0)|0}function ct(a,b,c,d){a=a|0;b=b|0;c=+c;d=d|0;Tb[a&15](b|0,+c,d|0);}function dt(a,b,c,d,e,f,g,h,i,j,k,l){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=+f;g=+g;h=+h;i=+i;j=j|0;k=k|0;l=+l;Ub[a&0](b|0,c|0,d|0,e|0,+f,+g,+h,+i,j|0,k|0,+l);}function et(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return +Vb[a&15](b|0,c|0,d|0,e|0,f|0);}function ft(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return Wb[a&31](b|0,c|0,d|0)|0}function gt(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;Xb[a&7](b|0,c|0,d|0,e|0,f|0,g|0);}function ht(a,b,c,d){a=a|0;b=b|0;c=c|0;d=+d;return Yb[a&3](b|0,c|0,+d)|0}function it(a,b){a=a|0;b=b|0;return +Zb[a&7](b|0);}function jt(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;return _b[a&3](b|0,c|0,d|0,e|0,f|0,g|0)|0}function kt(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=+e;f=f|0;g=g|0;return +$b[a&3](b|0,c|0,d|0,+e,f|0,g|0);}function lt(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=+d;e=e|0;f=f|0;ac[a&3](b|0,c|0,+d,e|0,f|0);}function mt(a,b,c,d,e){a=a|0;b=b|0;c=+c;d=d|0;e=e|0;return +bc[a&1](b|0,+c,d|0,e|0);}function nt(a,b,c,d,e,f,g,h,i,j){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;cc[a&1](b|0,c|0,d|0,e|0,f|0,g|0,h|0,i|0,j|0);}function ot(a,b,c,d,e,f,g,h,i,j,k){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;dc[a&3](b|0,c|0,d|0,e|0,f|0,g|0,h|0,i|0,j|0,k|0);}function pt(a,b,c){a=a|0;b=b|0;c=c|0;return ec[a&31](b|0,c|0)|0}function qt(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return +fc[a&15](b|0,c|0,d|0);}function rt(a,b,c,d,e,f,g,h,i,j,k){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;return +gc[a&3](b|0,c|0,d|0,e|0,f|0,g|0,h|0,i|0,j|0,k|0);}function st(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=+f;hc[a&1](b|0,c|0,d|0,e|0,+f);}function tt(a,b,c,d,e,f,g,h,i,j){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;return +ic[a&3](b|0,c|0,d|0,e|0,f|0,g|0,h|0,i|0,j|0);}function ut(a,b,c){a=a|0;b=b|0;c=+c;return +jc[a&1](b|0,+c);}function vt(a,b,c,d,e,f,g,h,i,j,k,l,m){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=+f;g=+g;h=+h;i=+i;j=+j;k=k|0;l=+l;m=m|0;kc[a&0](b|0,c|0,d|0,e|0,+f,+g,+h,+i,+j,k|0,+l,m|0);}function wt(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=+d;e=e|0;f=f|0;return +lc[a&3](b|0,c|0,+d,e|0,f|0);}function xt(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return +mc[a&1](b|0,c|0,d|0,e|0);}function yt(a,b,c,d,e,f,g,h,i,j){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;return nc[a&1](b|0,c|0,d|0,e|0,f|0,g|0,h|0,i|0,j|0)|0}function zt(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=+e;oc[a&7](b|0,c|0,d|0,+e);}function At(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;pc[a&63](b|0,c|0,d|0);}function Bt(a){a=a|0;qc[a&3]();}function Ct(a,b,c,d){a=a|0;b=b|0;c=c|0;d=+d;rc[a&7](b|0,c|0,+d);}function Dt(a,b,c,d,e){a=a|0;b=b|0;c=+c;d=d|0;e=+e;return sc[a&3](b|0,+c,d|0,+e)|0}function Et(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;tc[a&63](b|0,c|0,d|0,e|0);}function Ft(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;ca(0);}function Gt(a,b){a=a|0;b=+b;ca(1);}function Ht(a){a=a|0;ca(2);}function It(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=+d;e=e|0;f=f|0;ca(3);}function Jt(a,b){a=a|0;b=b|0;ca(4);}function Kt(a,b,c,d,e,f,g,h,i,j){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;ca(5);return 0}function Lt(a){a=a|0;ca(6);return 0}function Mt(a,b,c,d){a=a|0;b=b|0;c=+c;d=d|0;ca(7);}function Nt(a,b,c,d,e,f){a=a|0;b=+b;c=+c;d=d|0;e=e|0;f=f|0;ca(8);}function Ot(a,b,c,d){a=a|0;b=+b;c=c|0;d=d|0;ca(9);}function Pt(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;ca(10);return 0}function Qt(a,b,c){a=a|0;b=+b;c=c|0;ca(11);}function Rt(a,b,c,d,e,f,g,h,i,j,k){a=a|0;b=b|0;c=c|0;d=d|0;e=+e;f=+f;g=+g;h=+h;i=i|0;j=j|0;k=+k;ca(12);}function St(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;ca(13);return 0.0}function Tt(a,b,c){a=a|0;b=b|0;c=c|0;ca(14);return 0}function Ut(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;ca(15);}function Vt(a,b,c){a=a|0;b=b|0;c=+c;ca(16);return 0}function Wt(a){a=a|0;ca(17);return 0.0}function Xt(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;ca(18);return 0}function Yt(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=+d;e=e|0;f=f|0;ca(19);return 0.0}function Zt(a,b,c,d,e){a=a|0;b=b|0;c=+c;d=d|0;e=e|0;ca(20);}function _t(a,b,c,d){a=a|0;b=+b;c=c|0;d=d|0;ca(21);return 0.0}function $t(a,b,c,d,e,f,g,h,i){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;ca(22);}function au(a,b,c,d,e,f,g,h,i,j){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;ca(23);}function bu(a,b){a=a|0;b=b|0;ca(24);return 0}function cu(a,b,c){a=a|0;b=b|0;c=c|0;ca(25);return 0.0}function du(a,b,c,d,e,f,g,h,i,j){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;ca(26);return 0.0}function eu(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=+e;ca(27);}function fu(a,b,c,d,e,f,g,h,i){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;ca(28);return 0.0}function gu(a,b){a=a|0;b=+b;ca(29);return 0.0}function hu(a,b,c,d,e,f,g,h,i,j,k,l){a=a|0;b=b|0;c=c|0;d=d|0;e=+e;f=+f;g=+g;h=+h;i=+i;j=j|0;k=+k;l=l|0;ca(30);}function iu(a,b,c,d,e){a=a|0;b=b|0;c=+c;d=d|0;e=e|0;ca(31);return 0.0}function ju(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;ca(32);return 0.0}function ku(a,b,c,d,e,f,g,h,i){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;ca(33);return 0}function lu(a,b,c,d){a=a|0;b=b|0;c=c|0;d=+d;ca(34);}function mu(a,b,c){a=a|0;b=b|0;c=c|0;ca(35);}function nu(){ca(36);}function ou(){Gb();}function pu(a,b,c){a=a|0;b=b|0;c=+c;ca(37);}function qu(a,b,c,d){a=a|0;b=+b;c=c|0;d=+d;ca(38);return 0}function ru(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;ca(39);}
// EMSCRIPTEN_END_FUNCS
var Ib=[Ft,Di,sl,Kl,Pl,Tl,In,vp,mq,pq,vq,Eq,Pq,Xq,lr,ms,ls,is,Ft,Ft,Ft,Ft,Ft,Ft,Ft,Ft,Ft,Ft,Ft,Ft,Ft,Ft];var Jb=[Gt,hf,Fh,Eh,th,lh,fh,Df,xf,ni,oi,Ok,Yl,Am,Tm,pn,Bn,Qn,Fo,Gt,Gt,Gt,Gt,Gt,Gt,Gt,Gt,Gt,Gt,Gt,Gt,Gt];var Kb=[Ht,Pe,Qe,Ye,Ze,af,ef,ff,nf,of,tf,uf,Xj,Yj,gh,Zj,jh,hh,Dh,ih,yf,Rf,Sf,Hf,gg,Zf,cg,mg,vg,pg,Dg,yg,Hg,Ig,Vg,dh,eh,Wh,Xh,Ph,Th,Qh,bh,gi,ji,ki,ti,ui,vi,wi,xi,Ji,Oi,Xi,Vi,Pi,aj,bj,rj,uj,sj,xj,yj,Nj,Pj,Qj,Uj,Vj,ek,Rk,Sk,Ho,Mk,Kk,Ik,Dk,Bk,yk,tk,wk,uk,jk,kk,nk,ok,Fk,Tk,Uk,Zk,ql,ol,ml,kl,il,gl,el,cl,al,_k,ul,vl,xl,yl,qk,Cl,Dl,El,Il,Jl,Nl,Ol,Ul,Vl,uo,Zl,sm,tm,Em,Jm,Hm,Fm,Hn,Om,dn,en,hn,wn,Rn,Zn,_n,go,ho,Io,no,lo,po,Do,Jo,Ko,Xo,Yo,gp,ep,pp,kp,lp,rp,tp,up,wp,Bp,Cp,Tp,bq,cq,kq,lq,qq,tq,uq,zq,Bq,Cq,Gq,Jq,Kq,Mq,Nq,Rq,Tq,Uq,Vq,Wq,fr,br,$q,jr,kr,pr,qr,vr,wr,Tr,Ur,Xr,_r,Yr,Zr,$r,as,us,Ht,Ht,Ht,Ht,Ht,Ht,Ht,Ht,Ht,Ht,Ht,Ht,Ht,Ht,Ht,Ht,Ht,Ht,Ht,Ht,Ht,Ht,Ht,Ht,Ht,Ht,Ht,Ht,Ht,Ht,Ht,Ht,Ht,Ht,Ht,Ht,Ht,Ht,Ht,Ht,Ht,Ht,Ht,Ht,Ht,Ht,Ht,Ht,Ht,Ht,Ht,Ht,Ht,Ht,Ht,Ht,Ht,Ht,Ht,Ht,Ht,Ht,Ht,Ht,Ht];var Lb=[It];var Mb=[Jt,$e,lf,qf,zf,ph,Mh,vh,wh,xh,mh,nh,rh,qh,Hh,yh,zh,Ah,Bh,Ch,Gh,Cf,Ef,Gf,_f,$f,kg,qg,rg,zg,Ag,hi,fi,pi,Ei,Ii,Zi,Wi,Ri,oj,qj,ij,Bj,Aj,Hj,Sj,_j,gk,Pk,Jk,wl,Gl,Ml,Rl,_l,bm,an,vm,xm,ym,Qm,Sm,ln,gn,vn,An,Sn,Un,bo,hq,iq,En,Qo,Ro,To,Uo,_o,oq,yq,Aq,Dq,Iq,Lq,_q,nr,Jt,Jt,Jt,Jt,Jt,Jt,Jt,Jt,Jt,Jt,Jt,Jt,Jt,Jt,Jt,Jt,Jt,Jt,Jt,Jt,Jt,Jt,Jt,Jt,Jt,Jt,Jt,Jt,Jt,Jt,Jt,Jt,Jt,Jt,Jt,Jt,Jt,Jt,Jt,Jt,Jt,Jt,Jt];var Nb=[Kt,sp];var Ob=[Lt,Ne,Te,Af,Ih,Jh,Bf,Uf,ig,ng,wg,Eg,$g,di,Fi,Gi,kj,lj,mj,nj,pj,Ij,Kj,Lj,Mj,Tj,Wk,Xk,Yk,$l,am,dm,im,km,lm,om,$o,zm,Cm,Rm,Um,Wm,nn,on,rn,zn,Cn,Tn,Vn,co,eo,bn,jo,Eo,So,No,Vo,dp,Fp,Ip,Kp,Lp,Op,ur,Vr,Lt,Lt,Lt,Lt,Lt,Lt,Lt,Lt,Lt,Lt,Lt,Lt,Lt,Lt,Lt,Lt,Lt,Lt,Lt,Lt,Lt,Lt,Lt,Lt,Lt,Lt,Lt,Lt,Lt,Lt,Lt,Lt,Lt,Lt,Lt,Lt,Lt,Lt,Lt,Lt,Lt,Lt,Lt,Lt,Lt,Lt,Lt,Lt,Lt,Lt,Lt,Lt,Lt,Lt,Lt,Lt,Lt,Lt,Lt,Lt,Lt,Lt,Lt];var Pb=[Mt,Kf,dg,tg,Bg,Mt,Mt,Mt];var Qb=[Nt];var Rb=[Ot];var Sb=[Pt,qi,gj,Cj,rl,pl,nl,ll,jl,hl,fl,dl,bl,$k,gq,ko,Zq,Pt,Pt,Pt,Pt,Pt,Pt,Pt,Pt,Pt,Pt,Pt,Pt,Pt,Pt,Pt];var Tb=[Qt,Xl,bp,Nm,kn,yn,Nn,ao,to,Co,Ep,Qt,Qt,Qt,Qt,Qt];var Ub=[Rt];var Vb=[St,tl,Ll,Ql,nq,wq,Fq,Qq,Yq,mr,St,St,St,St,St,St];var Wb=[Tt,Vf,jg,og,xg,Fg,ei,jj,fj,zj,Ej,Dj,Rj,Vk,em,wm,Vm,mn,Dn,Wn,$m,jq,Ar,sr,tr,bs,Tt,Tt,Tt,Tt,Tt,Tt];var Xb=[Ut,Yh,Bi,ps,os,ns,Ut,Ut];var Yb=[Vt,qm,Qp,Vt];var Zb=[Wt,_m,cm,Bm,qn,Yn,Go,Wt];var _b=[Xt,jp,qp,Sp];var $b=[Yt,Ek,Ck,Yt];var ac=[Zt,Ue,Ve,Zt];var bc=[_t,wf];var cc=[$t,Rg];var dc=[au,Lo,Mo,au];var ec=[bu,Re,bf,Kh,Lh,Uh,Rh,ii,Ti,Ui,vj,tj,Jj,Gj,Oj,zk,xk,vk,Gk,qo,bu,bu,bu,bu,bu,bu,bu,bu,bu,bu,bu,bu];var fc=[cu,Se,cf,Lf,eg,ug,Cg,Vh,Sh,df,Ak,Hk,Wg,Xg,cu,cu];var gc=[du,Ug,Qg,du];var hc=[eu,Tf];var ic=[fu,Pg,Sg,fu];var jc=[gu,Zm];var kc=[hu];var lc=[iu,Nk,Lk,iu];var mc=[ju,Tg];var nc=[ku,yi];var oc=[lu,If,hg,Bl,op,ir,er,ar];var pc=[mu,uh,Mf,lg,Zg,_g,zi,Hi,Yi,Qi,ej,cj,dj,hj,Qk,zl,rk,sk,Fl,Ym,fm,gm,jm,nm,rm,cp,Dm,Km,Im,Gm,Gn,Lm,Xm,un,sn,Xn,On,ro,Ao,yo,Oo,Po,mp,np,Gp,Jp,Np,Hq,gr,hr,cr,dr,wj,Kn,Jn,mu,mu,mu,mu,mu,mu,mu,mu,mu];var qc=[nu,ou,ss,ts];var rc=[pu,_e,kf,pf,ri,Si,pu,pu];var sc=[qu,kh,vf,qu];var tc=[ru,mf,dk,bk,oh,sh,Og,si,Ai,Ci,Fj,Wj,zp,Ap,lk,mk,pk,Al,Wl,hm,Fn,mm,pm,Zo,um,Pm,Mm,jn,xn,tn,Mn,Pn,$n,fo,oo,mo,so,Bo,zo,zr,ap,hp,fp,Dp,Hp,Mp,Pp,Rp,Oq,Sq,cs,ds,fs,ru,ru,ru,ru,ru,ru,ru,ru,ru,ru,ru];return{_du_set_trans_quat:cd,_strlen:Ds,_du_create_capsule_shape:Zc,_du_alloc_body_id_pointer:Kc,_du_calc_sim_time:od,_du_free:Jc,_bitshift64Lshr:Fs,_du_boat_set_water_wrapper_ind:Ud,_du_create_boat:Gd,_du_get_ray_hit_body:_d,_du_character_set_water_wrapper_ind:Td,_du_get_shape_name:$c,_du_add_collision_result:Ge,_du_get_body_id_by_pointer:Lc,_memcpy:Gs,_du_floater_set_water:Pd,_du_create_vehicle_tuning:Ed,_du_delete_body:md,_du_set_collision_id:id,_du_character_jump:Ce,_du_cons_param_stop_cfm:Ad,_du_character_rotation_inc:Be,___cxa_can_catch:qs,_du_create_static_mesh_body:Qc,_du_activate:ge,_du_remove_collision_result:He,_free:xs,_du_set_damping:Fe,_du_apply_torque:ke,_du_create_sphere_shape:Yc,_du_create_dynamic_bounding_body:kd,___cxa_is_pointer_type:rs,_du_set_linear_velocity:ie,_du_compound_append_child:Vc,_du_cons_param_stop_erp:Bd,_du_remove_action:fe,_du_create_float_pointer:Mc,_du_create_ray_test_results:Xd,_du_get_body_speed:se,_du_get_trans_quat:ed,_du_create_ghost_mesh_body:Sc,_du_update_vehicle_controls:le,_du_check_collision_impulse:Wd,_du_get_boat_speed:re,_du_alloc_body_array:Hc,_du_set_hinge_limit:xd,_du_create_vec3:Nc,_du_set_character_walk_velocity:ve,_du_set_gravity:Ee,_du_create_floater:Hd,_du_set_character_run_velocity:we,_du_boat_add_bob:Nd,_du_create_compound:Uc,_du_alloc_float_array:Gc,_llvm_bswap_i32:Is,_du_set_water_time:Kd,_du_set_constraint_param:zd,_du_vehicle_add_wheel:Md,_du_set_character_move_type:ue,_du_update_boat_controls:me,_du_create_ghost_bounding_body:ld,_du_set_character_move_direction:te,_du_get_collision_id:jd,_du_single_step_simulation:pd,_du_remove_body:de,_du_append_body:ce,_du_get_ray_hit_fraction:$d,_du_floating_body_add_bob:Od,_du_cleanup_ray_test_results:Yd,_du_floater_set_water_wrapper_ind:Sd,_du_get_interp_data:fd,_du_create_box_shape:Tc,_du_set_character_rotation:ye,_memset:Cs,_du_pre_simulation:nd,_du_get_margin:hd,_du_add_water_wrapper:Jd,_du_get_trans:dd,_du_set_character_hor_rotation:ze,_du_set_character_fly_velocity:xe,_du_check_collisions:Vd,_du_get_floater_bob_trans_quat:pe,_du_alloc_int_array:Fc,_du_create_generic_6dof_spring_constraint:sd,_i64Subtract:Bs,_du_create_world:Dc,_du_get_boat_bob_trans_quat:oe,_du_create_point2point_constraint:ud,_du_create_array6:Pc,_du_set_quat:bd,_du_create_quat:Oc,_du_set_character_vert_rotation:Ae,_du_get_collision_result:Ie,_du_remove_constraint:Dd,_du_create_cone_twist_constraint:vd,_du_get_vehicle_speed:qe,_malloc:ws,_du_create_water:Id,_du_create_empty_shape:_c,_du_create_generic_6dof_constraint:rd,_du_append_action:ee,_du_store_body:Ic,_du_create_vehicle:Fd,_du_post_simulation:qd,_du_get_vehicle_wheel_trans_quat:ne,_du_get_ray_hit_position:ae,_du_get_ray_hit_normal:be,_du_set_trans:ad,_du_get_character_trans_quat:De,_du_create_mesh_shape:Rc,_du_cleanup_world:Ec,_du_boat_set_water:Rd,_du_create_cylinder_shape:Wc,_i64Add:Es,_du_set_margin:gd,_du_apply_central_force:je,_du_append_constraint:Cd,_du_character_set_water:Qd,_memmove:Hs,_du_set_cone_twist_limit:yd,_du_create_hinge_constraint:td,_du_disable_deactivation:he,_du_check_ray_hit:Zd,_du_set_generic_6dof_limit:wd,_du_create_character:Ld,_du_create_cone_shape:Xc,__GLOBAL__sub_I_btConeTwistConstraint_cpp:Nf,runPostSets:As,stackAlloc:uc,stackSave:vc,stackRestore:wc,establishStackSpace:xc,setThrew:yc,setTempRet0:Bc,getTempRet0:Cc,dynCall_viiiii:Ts,dynCall_vid:Us,dynCall_vi:Vs,dynCall_viiidii:Ws,dynCall_vii:Xs,dynCall_iiiiiiiiiii:Ys,dynCall_ii:Zs,dynCall_viidi:_s,dynCall_viddiii:$s,dynCall_vidii:at,dynCall_iiiii:bt,dynCall_vidi:ct,dynCall_viiiiddddiid:dt,dynCall_diiiii:et,dynCall_iiii:ft,dynCall_viiiiii:gt,dynCall_iiid:ht,dynCall_di:it,dynCall_iiiiiii:jt,dynCall_diiidii:kt,dynCall_viidii:lt,dynCall_didii:mt,dynCall_viiiiiiiii:nt,dynCall_viiiiiiiiii:ot,dynCall_iii:pt,dynCall_diii:qt,dynCall_diiiiiiiiii:rt,dynCall_viiiid:st,dynCall_diiiiiiiii:tt,dynCall_did:ut,dynCall_viiiidddddidi:vt,dynCall_diidii:wt,dynCall_diiii:xt,dynCall_iiiiiiiiii:yt,dynCall_viiid:zt,dynCall_viii:At,dynCall_v:Bt,dynCall_viid:Ct,dynCall_iidid:Dt,dynCall_viiii:Et}})
// EMSCRIPTEN_END_ASM
(d.ne,d.oe,R),ne=d._du_set_trans_quat=f._du_set_trans_quat,Gc=d._strlen=f._strlen,kd=d._du_create_capsule_shape=f._du_create_capsule_shape;d._du_alloc_body_id_pointer=f._du_alloc_body_id_pointer;var md=d._du_free=f._du_free,xf=d._bitshift64Lshr=f._bitshift64Lshr,Vb=d._du_boat_set_water_wrapper_ind=f._du_boat_set_water_wrapper_ind,yd=d._du_create_boat=f._du_create_boat,
Te=d._du_get_ray_hit_body=f._du_get_ray_hit_body,Zb=d._du_character_set_water_wrapper_ind=f._du_character_set_water_wrapper_ind,Ye=d._du_get_shape_name=f._du_get_shape_name,Ud=d._du_add_collision_result=f._du_add_collision_result;d._du_get_body_id_by_pointer=f._du_get_body_id_by_pointer;var ld=d._du_create_empty_shape=f._du_create_empty_shape,Af=d._memcpy=f._memcpy,Wb=d._du_floater_set_water=f._du_floater_set_water,wd=d._du_create_vehicle_tuning=f._du_create_vehicle_tuning,nd=d._du_delete_body=f._du_delete_body,
ib=d._du_set_collision_id=f._du_set_collision_id,Ld=d._du_character_jump=f._du_character_jump,sd=d._du_cons_param_stop_cfm=f._du_cons_param_stop_cfm,Sd=d._du_character_rotation_inc=f._du_character_rotation_inc;d.___cxa_can_catch=f.___cxa_can_catch;var $c=d._du_create_static_mesh_body=f._du_create_static_mesh_body,kb=d._du_set_cone_twist_limit=f._du_set_cone_twist_limit,Q=d._du_activate=f._du_activate,Wd=d._du_remove_collision_result=f._du_remove_collision_result,yb=d._free=f._free;d.runPostSets=f.runPostSets;
var ze=d._du_set_damping=f._du_set_damping,He=d._du_apply_torque=f._du_apply_torque,jd=d._du_create_sphere_shape=f._du_create_sphere_shape,ed=d._du_create_dynamic_bounding_body=f._du_create_dynamic_bounding_body,pe=d._du_set_linear_velocity=f._du_set_linear_velocity,cd=d._du_compound_append_child=f._du_compound_append_child,td=d._du_cons_param_stop_erp=f._du_cons_param_stop_erp,gc=d._du_calc_sim_time=f._du_calc_sim_time,Be=d._du_create_float_pointer=f._du_create_float_pointer,$d=d._du_create_ray_test_results=
f._du_create_ray_test_results;d._du_get_body_speed=f._du_get_body_speed;d._du_get_trans_quat=f._du_get_trans_quat;var ad=d._du_create_ghost_mesh_body=f._du_create_ghost_mesh_body;d.___cxa_is_pointer_type=f.___cxa_is_pointer_type;var Ke=d._du_check_collision_impulse=f._du_check_collision_impulse,Oe=d._du_get_boat_speed=f._du_get_boat_speed;d._du_alloc_body_array=f._du_alloc_body_array;var rd=d._du_set_hinge_limit=f._du_set_hinge_limit,K=d._du_create_vec3=f._du_create_vec3,Gd=d._du_set_character_walk_velocity=
f._du_set_character_walk_velocity,xe=d._du_set_gravity=f._du_set_gravity,zd=d._du_create_floater=f._du_create_floater,Hd=d._du_set_character_run_velocity=f._du_set_character_run_velocity,Bd=d._du_boat_add_bob=f._du_boat_add_bob,bd=d._du_create_compound=f._du_create_compound,Ob=d._du_alloc_float_array=f._du_alloc_float_array,Cf=d._llvm_bswap_i32=f._llvm_bswap_i32,he=d._du_set_water_time=f._du_set_water_time,Tb=d._du_set_constraint_param=f._du_set_constraint_param,Ad=d._du_vehicle_add_wheel=f._du_vehicle_add_wheel,
Fd=d._du_set_character_move_type=f._du_set_character_move_type,ve=d._du_update_boat_controls=f._du_update_boat_controls,dd=d._du_create_ghost_bounding_body=f._du_create_ghost_bounding_body,lf=d.__GLOBAL__sub_I_btConeTwistConstraint_cpp=f.__GLOBAL__sub_I_btConeTwistConstraint_cpp,Ed=d._du_set_character_move_direction=f._du_set_character_move_direction;d._du_get_collision_id=f._du_get_collision_id;var ic=d._du_single_step_simulation=f._du_single_step_simulation,ke=d._du_remove_body=f._du_remove_body,
Nb=d._du_append_body=f._du_append_body,Ue=d._du_get_ray_hit_fraction=f._du_get_ray_hit_fraction,je=d._du_remove_action=f._du_remove_action;d._du_cleanup_ray_test_results=f._du_cleanup_ray_test_results;var Xb=d._du_floater_set_water_wrapper_ind=f._du_floater_set_water_wrapper_ind,Je=d._du_get_interp_data=f._du_get_interp_data,gd=d._du_create_box_shape=f._du_create_box_shape,Md=d._du_set_character_rotation=f._du_set_character_rotation,qf=d._memset=f._memset,fc=d._du_pre_simulation=f._du_pre_simulation;
d._du_get_margin=f._du_get_margin;var fe=d._du_add_water_wrapper=f._du_add_water_wrapper;d._du_store_body=f._du_store_body;var Qd=d._du_set_character_hor_rotation=f._du_set_character_hor_rotation,Jd=d._du_set_character_fly_velocity=f._du_set_character_fly_velocity,Qe=d._du_check_collisions=f._du_check_collisions,Pb=d._du_alloc_int_array=f._du_alloc_int_array,ud=d._du_append_constraint=f._du_append_constraint,nf=d._i64Subtract=f._i64Subtract,Fe=d._du_create_world=f._du_create_world,Ne=d._du_get_boat_bob_trans_quat=
f._du_get_boat_bob_trans_quat,pd=d._du_create_point2point_constraint=f._du_create_point2point_constraint,Qa=d._du_create_array6=f._du_create_array6;d._du_set_quat=f._du_set_quat;var ba=d._du_create_quat=f._du_create_quat,Od=d._du_set_character_vert_rotation=f._du_set_character_vert_rotation,Re=d._du_get_collision_result=f._du_get_collision_result,vd=d._du_remove_constraint=f._du_remove_constraint,qd=d._du_create_cone_twist_constraint=f._du_create_cone_twist_constraint,Me=d._du_get_vehicle_speed=f._du_get_vehicle_speed,
da=d._malloc=f._malloc,de=d._du_create_water=f._du_create_water,Cd=d._du_floating_body_add_bob=f._du_floating_body_add_bob,Rb=d._du_create_generic_6dof_constraint=f._du_create_generic_6dof_constraint,Ca=d._du_append_action=f._du_append_action;d._du_get_trans=f._du_get_trans;var xd=d._du_create_vehicle=f._du_create_vehicle,kc=d._du_post_simulation=f._du_post_simulation,Le=d._du_get_vehicle_wheel_trans_quat=f._du_get_vehicle_wheel_trans_quat,Pe=d._du_get_floater_bob_trans_quat=f._du_get_floater_bob_trans_quat,
We=d._du_get_ray_hit_normal=f._du_get_ray_hit_normal,Ve=d._du_get_ray_hit_position=f._du_get_ray_hit_position,Ie=d._du_get_character_trans_quat=f._du_get_character_trans_quat,Mb=d._du_create_mesh_shape=f._du_create_mesh_shape,Ee=d._du_cleanup_world=f._du_cleanup_world,me=d._du_set_trans=f._du_set_trans,Ub=d._du_boat_set_water=f._du_boat_set_water,hd=d._du_create_cylinder_shape=f._du_create_cylinder_shape,wf=d._i64Add=f._i64Add,Pa=d._du_set_margin=f._du_set_margin,Ge=d._du_apply_central_force=f._du_apply_central_force,
od=d._du_create_generic_6dof_spring_constraint=f._du_create_generic_6dof_spring_constraint,Yb=d._du_character_set_water=f._du_character_set_water,Bf=d._memmove=f._memmove,te=d._du_update_vehicle_controls=f._du_update_vehicle_controls;d._du_create_hinge_constraint=f._du_create_hinge_constraint;var fd=d._du_disable_deactivation=f._du_disable_deactivation,Se=d._du_check_ray_hit=f._du_check_ray_hit,Sb=d._du_set_generic_6dof_limit=f._du_set_generic_6dof_limit,Dd=d._du_create_character=f._du_create_character,
id=d._du_create_cone_shape=f._du_create_cone_shape;d.dynCall_viiiii=f.dynCall_viiiii;d.dynCall_vid=f.dynCall_vid;d.dynCall_vi=f.dynCall_vi;d.dynCall_viiidii=f.dynCall_viiidii;d.dynCall_vii=f.dynCall_vii;d.dynCall_iiiiiiiiiii=f.dynCall_iiiiiiiiiii;d.dynCall_ii=f.dynCall_ii;d.dynCall_viidi=f.dynCall_viidi;d.dynCall_viddiii=f.dynCall_viddiii;d.dynCall_vidii=f.dynCall_vidii;d.dynCall_iiiii=f.dynCall_iiiii;d.dynCall_vidi=f.dynCall_vidi;d.dynCall_viiiiddddiid=f.dynCall_viiiiddddiid;d.dynCall_diiiii=f.dynCall_diiiii;
d.dynCall_iiii=f.dynCall_iiii;d.dynCall_viiiiii=f.dynCall_viiiiii;d.dynCall_iiid=f.dynCall_iiid;d.dynCall_di=f.dynCall_di;d.dynCall_iiiiiii=f.dynCall_iiiiiii;d.dynCall_diiidii=f.dynCall_diiidii;d.dynCall_viidii=f.dynCall_viidii;d.dynCall_didii=f.dynCall_didii;d.dynCall_viiiiiiiii=f.dynCall_viiiiiiiii;d.dynCall_viiiiiiiiii=f.dynCall_viiiiiiiiii;d.dynCall_iii=f.dynCall_iii;d.dynCall_diii=f.dynCall_diii;d.dynCall_diiiiiiiiii=f.dynCall_diiiiiiiiii;d.dynCall_viiiid=f.dynCall_viiiid;d.dynCall_diiiiiiiii=
f.dynCall_diiiiiiiii;d.dynCall_did=f.dynCall_did;d.dynCall_viiiidddddidi=f.dynCall_viiiidddddidi;d.dynCall_diidii=f.dynCall_diidii;d.dynCall_diiii=f.dynCall_diiii;d.dynCall_iiiiiiiiii=f.dynCall_iiiiiiiiii;d.dynCall_viiid=f.dynCall_viiid;d.dynCall_viii=f.dynCall_viii;d.dynCall_v=f.dynCall_v;d.dynCall_viid=f.dynCall_viid;d.dynCall_iidid=f.dynCall_iidid;d.dynCall_viiii=f.dynCall_viiii;r.yb=f.stackAlloc;r.zb=f.stackSave;r.fb=f.stackRestore;r.gi=f.establishStackSpace;r.nf=f.setTempRet0;r.Me=f.getTempRet0;
var Ma=function(){function a(a,b){this.u=a|0;this.C=b|0}function c(a,b){null!=a&&("number"==typeof a?this.Y(a):null==b&&"string"!=typeof a?this.H(a,256):this.H(a,b))}function b(){return new c(null)}function d(a){return"0123456789abcdefghijklmnopqrstuvwxyz".charAt(a)}function e(a,b){var c=m[a.charCodeAt(b)];return null==c?-1:c}function f(a){var c=b();c.na(a);return c}function g(a){var b=1,c;0!=(c=a>>>16)&&(a=c,b+=16);0!=(c=a>>8)&&(a=c,b+=8);0!=(c=a>>4)&&(a=c,b+=4);0!=(c=a>>2)&&(a=c,b+=2);0!=a>>1&&
(b+=1);return b}function k(a){this.J=a}function l(a){this.J=a;this.Pc=a.Ue();this.Qc=this.Pc&32767;this.Ze=this.Pc>>15;this.rf=(1<<a.r-15)-1;this.$e=2*a.e}a.kc={};a.na=function(b){if(-128<=b&&128>b){var c=a.kc[b];if(c)return c}c=new a(b|0,0>b?-1:0);-128<=b&&128>b&&(a.kc[b]=c);return c};a.Y=function(b){return isNaN(b)||!isFinite(b)?a.ha:b<=-a.nc?a.Q:b+1>=a.nc?a.He:0>b?a.Y(-b).B():new a(b%a.ja|0,b/a.ja|0)};a.ga=function(b,c){return new a(b,c)};a.H=function(b,c){if(0==b.length)throw Error("number format error: empty string");
var d=c||10;if(2>d||36<d)throw Error("radix out of range: "+d);if("-"==b.charAt(0))return a.H(b.substring(1),d).B();if(0<=b.indexOf("-"))throw Error('number format error: interior "-" character: '+b);for(var e=a.Y(Math.pow(d,8)),f=a.ha,g=0;g<b.length;g+=8){var h=Math.min(8,b.length-g),k=parseInt(b.substring(g,g+h),d);8>h?(h=a.Y(Math.pow(d,h)),f=f.multiply(h).add(a.Y(k))):(f=f.multiply(e),f=f.add(a.Y(k)))}return f};a.Eb=65536;a.Ph=16777216;a.ja=a.Eb*a.Eb;a.Qh=a.ja/2;a.Rh=a.ja*a.Eb;a.ke=a.ja*a.ja;a.nc=
a.ke/2;a.ha=a.na(0);a.$a=a.na(1);a.lc=a.na(-1);a.He=a.ga(-1,2147483647);a.Q=a.ga(0,-2147483648);a.mc=a.na(16777216);a.prototype.Bb=function(){return this.C*a.ja+this.ca()};a.prototype.toString=function(b){b=b||10;if(2>b||36<b)throw Error("radix out of range: "+b);if(this.Fa())return"0";if(this.K()){if(this.W(a.Q)){var c=a.Y(b),d=this.ya(c),c=d.multiply(c).gb(this);return d.toString(b)+c.u.toString(b)}return"-"+this.B().toString(b)}for(var d=a.Y(Math.pow(b,6)),c=this,e="";;){var f=c.ya(d),g=c.gb(f.multiply(d)).u.toString(b),
c=f;if(c.Fa())return g+e;for(;6>g.length;)g="0"+g;e=""+g+e}};a.prototype.ca=function(){return 0<=this.u?this.u:a.ja+this.u};a.prototype.Fa=function(){return 0==this.C&&0==this.u};a.prototype.K=function(){return 0>this.C};a.prototype.Lc=function(){return 1==(this.u&1)};a.prototype.W=function(a){return this.C==a.C&&this.u==a.u};a.prototype.Oc=function(a){return 0>this.q(a)};a.prototype.Ne=function(a){return 0<this.q(a)};a.prototype.Oe=function(a){return 0<=this.q(a)};a.prototype.q=function(a){if(this.W(a))return 0;
var b=this.K(),c=a.K();return b&&!c?-1:!b&&c?1:this.gb(a).K()?-1:1};a.prototype.B=function(){return this.W(a.Q)?a.Q:this.Ve().add(a.$a)};a.prototype.add=function(b){var c=this.C>>>16,d=this.C&65535,e=this.u>>>16,f=b.C>>>16,g=b.C&65535,h=b.u>>>16,k;k=0+((this.u&65535)+(b.u&65535));b=0+(k>>>16);b+=e+h;e=0+(b>>>16);e+=d+g;d=0+(e>>>16);d=d+(c+f)&65535;return a.ga((b&65535)<<16|k&65535,d<<16|e&65535)};a.prototype.gb=function(a){return this.add(a.B())};a.prototype.multiply=function(b){if(this.Fa()||b.Fa())return a.ha;
if(this.W(a.Q))return b.Lc()?a.Q:a.ha;if(b.W(a.Q))return this.Lc()?a.Q:a.ha;if(this.K())return b.K()?this.B().multiply(b.B()):this.B().multiply(b).B();if(b.K())return this.multiply(b.B()).B();if(this.Oc(a.mc)&&b.Oc(a.mc))return a.Y(this.Bb()*b.Bb());var c=this.C>>>16,d=this.C&65535,e=this.u>>>16,f=this.u&65535,g=b.C>>>16,h=b.C&65535,k=b.u>>>16;b=b.u&65535;var l,m,n,p;p=0+f*b;n=0+(p>>>16);n+=e*b;m=0+(n>>>16);n=(n&65535)+f*k;m+=n>>>16;n&=65535;m+=d*b;l=0+(m>>>16);m=(m&65535)+e*k;l+=m>>>16;m&=65535;
m+=f*h;l+=m>>>16;m&=65535;l=l+(c*b+d*k+e*h+f*g)&65535;return a.ga(n<<16|p&65535,l<<16|m)};a.prototype.ya=function(b){if(b.Fa())throw Error("division by zero");if(this.Fa())return a.ha;if(this.W(a.Q)){if(b.W(a.$a)||b.W(a.lc))return a.Q;if(b.W(a.Q))return a.$a;var c=this.af().ya(b).shiftLeft(1);if(c.W(a.ha))return b.K()?a.$a:a.lc;var d=this.gb(b.multiply(c));return c.add(d.ya(b))}if(b.W(a.Q))return a.ha;if(this.K())return b.K()?this.B().ya(b.B()):this.B().ya(b).B();if(b.K())return this.ya(b.B()).B();
for(var e=a.ha,d=this;d.Oe(b);){for(var c=Math.max(1,Math.floor(d.Bb()/b.Bb())),f=Math.ceil(Math.log(c)/Math.LN2),f=48>=f?1:Math.pow(2,f-48),g=a.Y(c),h=g.multiply(b);h.K()||h.Ne(d);)c-=f,g=a.Y(c),h=g.multiply(b);g.Fa()&&(g=a.$a);e=e.add(g);d=d.gb(h)}return e};a.prototype.Ve=function(){return a.ga(~this.u,~this.C)};a.prototype.shiftLeft=function(b){b&=63;if(0==b)return this;var c=this.u;return 32>b?a.ga(c<<b,this.C<<b|c>>>32-b):a.ga(0,c<<b-32)};a.prototype.af=function(){var b;b=1;if(0==b)return this;
var c=this.C;return 32>b?a.ga(this.u>>>b|c<<32-b,c>>b):a.ga(c>>b-32,0<=c?0:-1)};c.prototype.ra=function(a,b,c,d,e,f){for(;0<=--f;){var g=b*this[a++]+c[d]+e;e=Math.floor(g/67108864);c[d++]=g&67108863}return e};c.prototype.r=26;c.prototype.Z=67108863;c.prototype.N=67108864;c.prototype.dd=Math.pow(2,52);c.prototype.cc=26;c.prototype.dc=0;var m=[],p,q;p=48;for(q=0;9>=q;++q)m[p++]=q;p=97;for(q=10;36>q;++q)m[p++]=q;p=65;for(q=10;36>q;++q)m[p++]=q;k.prototype.tc=function(a){return 0>a.p||0<=a.la(this.J)?
a.Xe(this.J):a};k.prototype.Xc=function(a){return a};k.prototype.reduce=function(a){a.Xa(this.J,null,a)};k.prototype.Rc=function(a,b,c){a.Sb(b,c);this.reduce(c)};k.prototype.Yc=function(a,b){a.Zc(b);this.reduce(b)};l.prototype.tc=function(a){var d=b();a.abs().nb(this.J.e,d);d.Xa(this.J,null,d);0>a.p&&0<d.la(c.q)&&this.J.M(d,d);return d};l.prototype.Xc=function(a){var c=b();a.copyTo(c);this.reduce(c);return c};l.prototype.reduce=function(a){for(;a.e<=this.$e;)a[a.e++]=0;for(var b=0;b<this.J.e;++b){var c=
a[b]&32767,d=c*this.Qc+((c*this.Ze+(a[b]>>15)*this.Qc&this.rf)<<15)&a.Z,c=b+this.J.e;for(a[c]+=this.J.ra(0,d,a,b,0,this.J.e);a[c]>=a.N;)a[c]-=a.N,a[++c]++}a.ba();a.zc(this.J.e,a);0<=a.la(this.J)&&a.M(this.J,a)};l.prototype.Rc=function(a,b,c){a.Sb(b,c);this.reduce(c)};l.prototype.Yc=function(a,b){a.Zc(b);this.reduce(b)};c.prototype.copyTo=function(a){for(var b=this.e-1;0<=b;--b)a[b]=this[b];a.e=this.e;a.p=this.p};c.prototype.na=function(a){this.e=1;this.p=0>a?-1:0;0<a?this[0]=a:-1>a?this[0]=a+DV:this.e=
0};c.prototype.H=function(a,b){var d;if(16==b)d=4;else if(8==b)d=3;else if(256==b)d=8;else if(2==b)d=1;else if(32==b)d=5;else if(4==b)d=2;else{this.Ge(a,b);return}this.p=this.e=0;for(var f=a.length,g=!1,h=0;0<=--f;){var k=8==d?a[f]&255:e(a,f);0>k?"-"==a.charAt(f)&&(g=!0):(g=!1,0==h?this[this.e++]=k:h+d>this.r?(this[this.e-1]|=(k&(1<<this.r-h)-1)<<h,this[this.e++]=k>>this.r-h):this[this.e-1]|=k<<h,h+=d,h>=this.r&&(h-=this.r))}8==d&&0!=(a[0]&128)&&(this.p=-1,0<h&&(this[this.e-1]|=(1<<this.r-h)-1<<h));
this.ba();g&&c.q.M(this,this)};c.prototype.ba=function(){for(var a=this.p&this.Z;0<this.e&&this[this.e-1]==a;)--this.e};c.prototype.nb=function(a,b){var c;for(c=this.e-1;0<=c;--c)b[c+a]=this[c];for(c=a-1;0<=c;--c)b[c]=0;b.e=this.e+a;b.p=this.p};c.prototype.zc=function(a,b){for(var c=a;c<this.e;++c)b[c-a]=this[c];b.e=Math.max(this.e-a,0);b.p=this.p};c.prototype.Mc=function(a,b){var c=a%this.r,d=this.r-c,e=(1<<d)-1,f=Math.floor(a/this.r),g=this.p<<c&this.Z,h;for(h=this.e-1;0<=h;--h)b[h+f+1]=this[h]>>
d|g,g=(this[h]&e)<<c;for(h=f-1;0<=h;--h)b[h]=0;b[f]=g;b.e=this.e+f+1;b.p=this.p;b.ba()};c.prototype.ef=function(a,b){b.p=this.p;var c=Math.floor(a/this.r);if(c>=this.e)b.e=0;else{var d=a%this.r,e=this.r-d,f=(1<<d)-1;b[0]=this[c]>>d;for(var g=c+1;g<this.e;++g)b[g-c-1]|=(this[g]&f)<<e,b[g-c]=this[g]>>d;0<d&&(b[this.e-c-1]|=(this.p&f)<<e);b.e=this.e-c;b.ba()}};c.prototype.M=function(a,b){for(var c=0,d=0,e=Math.min(a.e,this.e);c<e;)d+=this[c]-a[c],b[c++]=d&this.Z,d>>=this.r;if(a.e<this.e){for(d-=a.p;c<
this.e;)d+=this[c],b[c++]=d&this.Z,d>>=this.r;d+=this.p}else{for(d+=this.p;c<a.e;)d-=a[c],b[c++]=d&this.Z,d>>=this.r;d-=a.p}b.p=0>d?-1:0;-1>d?b[c++]=this.N+d:0<d&&(b[c++]=d);b.e=c;b.ba()};c.prototype.Sb=function(a,b){var d=this.abs(),e=a.abs(),f=d.e;for(b.e=f+e.e;0<=--f;)b[f]=0;for(f=0;f<e.e;++f)b[f+d.e]=d.ra(0,e[f],b,f,0,d.e);b.p=0;b.ba();this.p!=a.p&&c.q.M(b,b)};c.prototype.Zc=function(a){for(var b=this.abs(),c=a.e=2*b.e;0<=--c;)a[c]=0;for(c=0;c<b.e-1;++c){var d=b.ra(c,b[c],a,2*c,0,1);(a[c+b.e]+=
b.ra(c+1,2*b[c],a,2*c+1,d,b.e-c-1))>=b.N&&(a[c+b.e]-=b.N,a[c+b.e+1]=1)}0<a.e&&(a[a.e-1]+=b.ra(c,b[c],a,2*c,0,1));a.p=0;a.ba()};c.prototype.Xa=function(a,d,e){var f=a.abs();if(!(0>=f.e)){var h=this.abs();if(h.e<f.e)null!=d&&d.na(0),null!=e&&this.copyTo(e);else{null==e&&(e=b());var k=b(),l=this.p;a=a.p;var m=this.r-g(f[f.e-1]);0<m?(f.Mc(m,k),h.Mc(m,e)):(f.copyTo(k),h.copyTo(e));f=k.e;h=k[f-1];if(0!=h){var n=h*(1<<this.cc)+(1<f?k[f-2]>>this.dc:0),p=this.dd/n,n=(1<<this.cc)/n,q=1<<this.dc,r=e.e,u=r-f,
v=null==d?b():d;k.nb(u,v);0<=e.la(v)&&(e[e.e++]=1,e.M(v,e));c.ca.nb(f,v);for(v.M(k,k);k.e<f;)k[k.e++]=0;for(;0<=--u;){var x=e[--r]==h?this.Z:Math.floor(e[r]*p+(e[r-1]+q)*n);if((e[r]+=k.ra(0,x,e,u,0,f))<x)for(k.nb(u,v),e.M(v,e);e[r]<--x;)e.M(v,e)}null!=d&&(e.zc(f,d),l!=a&&c.q.M(d,d));e.e=f;e.ba();0<m&&e.ef(m,e);0>l&&c.q.M(e,e)}}}};c.prototype.Ue=function(){if(1>this.e)return 0;var a=this[0];if(0==(a&1))return 0;var b=a&3,b=b*(2-(a&15)*b)&15,b=b*(2-(a&255)*b)&255,b=b*(2-((a&65535)*b&65535))&65535,b=
b*(2-a*b%this.N)%this.N;return 0<b?this.N-b:-b};c.prototype.exp=function(a,d){if(4294967295<a||1>a)return c.ca;var e=b(),f=b(),h=d.tc(this),k=g(a)-1;for(h.copyTo(e);0<=--k;)if(d.Yc(e,f),0<(a&1<<k))d.Rc(f,h,e);else var l=e,e=f,f=l;return d.Xc(e)};c.prototype.toString=function(a){if(0>this.p)return"-"+this.B().toString(a);if(16==a)a=4;else if(8==a)a=3;else if(2==a)a=1;else if(32==a)a=5;else if(4==a)a=2;else return this.qf(a);var b=(1<<a)-1,c,e=!1,f="",g=this.e,h=this.r-g*this.r%a;if(0<g--)for(h<this.r&&
0<(c=this[g]>>h)&&(e=!0,f=d(c));0<=g;)h<a?(c=(this[g]&(1<<h)-1)<<a-h,c|=this[--g]>>(h+=this.r-a)):(c=this[g]>>(h-=a)&b,0>=h&&(h+=this.r,--g)),0<c&&(e=!0),e&&(f+=d(c));return e?f:"0"};c.prototype.B=function(){var a=b();c.q.M(this,a);return a};c.prototype.abs=function(){return 0>this.p?this.B():this};c.prototype.la=function(a){var b=this.p-a.p;if(0!=b)return b;var c=this.e,b=c-a.e;if(0!=b)return 0>this.p?-b:b;for(;0<=--c;)if(0!=(b=this[c]-a[c]))return b;return 0};c.prototype.Xe=function(a){var d=b();
this.abs().Xa(a,null,d);0>this.p&&0<d.la(c.q)&&a.M(d,d);return d};c.q=f(0);c.ca=f(1);c.prototype.Ge=function(a,b){this.na(0);null==b&&(b=10);for(var d=this.qc(b),f=Math.pow(b,d),g=!1,h=0,k=0,l=0;l<a.length;++l){var m=e(a,l);0>m?"-"==a.charAt(l)&&0==this.Xb()&&(g=!0):(k=b*k+m,++h>=d&&(this.wc(f),this.vc(k),k=h=0))}0<h&&(this.wc(Math.pow(b,h)),this.vc(k));g&&c.q.M(this,this)};c.prototype.qc=function(a){return Math.floor(Math.LN2*this.r/Math.log(a))};c.prototype.Xb=function(){return 0>this.p?-1:0>=this.e||
1==this.e&&0>=this[0]?0:1};c.prototype.wc=function(a){this[this.e]=this.ra(0,a-1,this,0,0,this.e);++this.e;this.ba()};c.prototype.vc=function(a){var b=0;if(0!=a){for(;this.e<=b;)this[this.e++]=0;for(this[b]+=a;this[b]>=this.N;)this[b]-=this.N,++b>=this.e&&(this[this.e++]=0),++this[b]}};c.prototype.qf=function(a){null==a&&(a=10);if(0==this.Xb()||2>a||36<a)return"0";var c=this.qc(a),c=Math.pow(a,c),d=f(c),e=b(),g=b(),k="";for(this.Xa(d,e,g);0<e.Xb();)k=(c+g.Kc()).toString(a).substr(1)+k,e.Xa(d,e,g);
return g.Kc().toString(a)+k};c.prototype.Kc=function(){if(0>this.p){if(1==this.e)return this[0]-this.N;if(0==this.e)return-1}else{if(1==this.e)return this[0];if(0==this.e)return 0}return(this[1]&(1<<32-this.r)-1)<<this.r|this[0]};c.prototype.Fb=function(a,b){for(var c=0,d=0,e=Math.min(a.e,this.e);c<e;)d+=this[c]+a[c],b[c++]=d&this.Z,d>>=this.r;if(a.e<this.e){for(d+=a.p;c<this.e;)d+=this[c],b[c++]=d&this.Z,d>>=this.r;d+=this.p}else{for(d+=this.p;c<a.e;)d+=a[c],b[c++]=d&this.Z,d>>=this.r;d+=a.p}b.p=
0>d?-1:0;0<d?b[c++]=d:-1>d&&(b[c++]=this.N+d);b.e=c;b.ba()};var r={abs:function(b,c){var d=new a(b,c),e;d.K()?e=d.B():e=d;z[Ba>>2]=e.u;z[Ba+4>>2]=e.C},Cc:function(){r.De||(r.De=!0,r.$c=new c,r.$c.H("4294967296",10),r.ac=new c,r.ac.H("18446744073709551616",10),r.Ei=new c,r.Fi=new c)},ui:function(a,b){var d=new c;d.H(b.toString(),10);var e=new c;d.Sb(r.$c,e);d=new c;d.H(a.toString(),10);var f=new c;d.Fb(e,f);return f},stringify:function(b,d,e){b=(new a(b,d)).toString();e&&"-"==b[0]&&(r.Cc(),e=new c,
e.H(b,10),b=new c,r.ac.Fb(e,b),b=b.toString(10));return b},H:function(b,d,e,f,g){r.Cc();var h=new c;h.H(b,d);b=new c;b.H(e,10);e=new c;e.H(f,10);g&&0>h.la(c.q)&&(f=new c,h.Fb(r.ac,f),h=f);f=!1;0>h.la(b)?(h=b,f=!0):0<h.la(e)&&(h=e,f=!0);h=a.H(h.toString());z[Ba>>2]=h.u;z[Ba+4>>2]=h.C;if(f)throw"range error";}};return r}();if(aa)if("function"===typeof d.locateFile?aa=d.locateFile(aa):d.memoryInitializerPrefixURL&&(aa=d.memoryInitializerPrefixURL+aa),cb||Gb){var Ff=d.readBinary(aa);P.set(Ff,fb)}else{Bb();
var Lb=function(a){a.byteLength&&(a=new Uint8Array(a));P.set(a,fb);Cb()},S=d.memoryInitializerRequest;S?S.response?setTimeout(function(){Lb(S.response)},0):S.addEventListener("load",function(){200!==S.status&&0!==S.status&&console.warn("a problem seems to have happened with Module.memoryInitializerRequest, status: "+S.status);S.response&&"object"===typeof S.response&&S.response.byteLength||console.warn("a problem seems to have happened with Module.memoryInitializerRequest response (expected ArrayBuffer): "+
S.response);Lb(S.response)}):l.pe(aa,Lb,function(){throw"could not load memory initializer "+aa;})}na.prototype=Error();na.prototype.constructor=na;var Lc,bb=null,Ia=function c(){d.calledRun||Fb();d.calledRun||(Ia=c)};d.callMain=d.ai=function(c){function b(){for(var b=0;3>b;b++)f.push(0)}J(0==ea,"cannot call main when async dependencies remain! (listen on __ATMAIN__)");J(0==zb.length,"cannot call main when preRun functions remain to be called");c=c||[];Na||(Na=!0,ya($a));var e=c.length+1,f=[Z(Ha(d.thisProgram),
"i8",0)];b();for(var g=0;g<e-1;g+=1)f.push(Z(Ha(c[g]),"i8",0)),b();f.push(0);f=Z(f,"i32",0);Lc=W;try{var l=d._main(e,f,0);Kc(l,!0)}catch(k){if(!(k instanceof na))if("SimulateInfiniteLoop"==k)d.noExitRuntime=!0;else throw k&&"object"===typeof k&&k.stack&&d.Ga("exception thrown: "+[k,k.stack]),k;}finally{}};d.run=d.Ai=Fb;d.exit=d.hi=Kc;var Nc=[];d.abort=d.abort=ca;if(d.preInit)for("function"==typeof d.preInit&&(d.preInit=[d.preInit]);0<d.preInit.length;)d.preInit.pop()();var Jc=!0;d.noInitialRun&&(Jc=
!1);d.noExitRuntime=!0;Fb()};"function"===typeof importScripts&&b4w.require("__bindings");