diff --git a/liquidfun/Box2D/lfjs/Makefile b/liquidfun/Box2D/lfjs/Makefile index 9962b3243..0426b1be4 100644 --- a/liquidfun/Box2D/lfjs/Makefile +++ b/liquidfun/Box2D/lfjs/Makefile @@ -87,9 +87,21 @@ B2BODY = \ '_b2Body_SetLinearVelocity', \ '_b2Body_SetMassData', \ '_b2Body_SetTransform', \ - '_b2Body_SetType',\ - '_b2Body_SetGravityScale',\ - '_b2Body_GetGravityScale' + '_b2Body_SetType', \ + '_b2Body_SetGravityScale', \ + '_b2Body_GetGravityScale', \ + '_b2Body_SetLinearDamping', \ + '_b2Body_GetLinearDamping', \ + '_b2Body_SetAngularDamping', \ + '_b2Body_GetAngularDamping', \ + '_b2Body_IsAwake', \ + '_b2Body_SetBullet', \ + '_b2Body_IsBullet', \ + '_b2Body_SetSleepingAllowed', \ + '_b2Body_IsSleepingAllowed', \ + '_b2Body_SetActive', \ + '_b2Body_IsActive', \ + '_boBody_IsFixedRotation' B2CHAINSHAPE = \ '_b2ChainShape_CreateFixture' @@ -108,7 +120,10 @@ B2CONTACT = \ B2DISTANCEJOINT = \ '_b2DistanceJointDef_Create', \ - '_b2DistanceJointDef_InitializeAndCreate' \ + '_b2DistanceJointDef_InitializeAndCreate', \ + '_b2DistanceJoint_SetLength', \ + '_b2DistanceJoint_SetFrequency', \ + '_b2DistanceJoint_SetDampingRatio' \ B2EDGESHAPE = \ '_b2EdgeShape_CreateFixture' @@ -119,25 +134,40 @@ B2FIXTURE = \ B2FRICTIONJOINT = \ '_b2FrictionJointDef_Create', \ - '_b2FrictionJointDef_InitializeAndCreate' \ + '_b2FrictionJointDef_InitializeAndCreate', \ + '_b2FrictionJoint_SetMaxForce', \ + '_b2FrictionJoint_SetMaxTorque' \ B2GEARJOINT = \ - '_b2GearJoint_GetRatio', \ + '_b2GearJoint_SetRatio', \ '_b2GearJointDef_Create', \ '_b2GearJointDef_InitializeAndCreate' B2JOINT = \ '_b2Joint_GetBodyA', \ - '_b2Joint_GetBodyB' + '_b2Joint_GetBodyB', \ + '_b2Joint_GetAnchorA', \ + '_b2Joint_GetAnchorB', \ + '_b2Joint_GetReactionForce', \ + '_b2Joint_GetReactionTorque', \ + '_b2Joint_GetType', \ + '_b2Joint_GetCollideConnected', \ + '_b2Joint_IsActive' \ B2MOTORJOINT = \ '_b2MotorJoint_SetAngularOffset', \ '_b2MotorJoint_SetLinearOffset', \ + '_b2MotorJoint_SetMaxForce', \ + '_b2MotorJoint_SetMaxTorque', \ + '_b2MotorJoint_SetCorrectionFactor', \ '_b2MotorJointDef_Create', \ '_b2MotorJointDef_InitializeAndCreate' B2MOUSEJOINT = \ '_b2MouseJoint_SetTarget', \ + '_b2MouseJoint_SetMaxForce', \ + '_b2MouseJoint_SetFrequency', \ + '_b2MouseJoint_SetDampingRatio', \ '_b2MouseJointDef_Create' B2PARTICLEGROUP = \ @@ -167,7 +197,7 @@ B2POLYGONSHAPE = \ '_b2PolygonShape_CreateFixture_5', \ '_b2PolygonShape_CreateFixture_6', \ '_b2PolygonShape_CreateFixture_7', \ - '_b2PolygonShape_CreateFixture_8', \ + '_b2PolygonShape_CreateFixture_8', \ '_b2PolygonShape_CreateParticleGroup_4', \ '_b2PolygonShape_DestroyParticlesInShape_4' @@ -180,10 +210,18 @@ B2PRISMATICJOINT = \ '_b2PrismaticJoint_IsLimitEnabled', \ '_b2PrismaticJoint_IsMotorEnabled', \ '_b2PrismaticJoint_SetMotorSpeed', \ + '_b2PrismaticJoint_GetLocalAxisA', \ + '_b2PrismaticJoint_GetJointSpeed', \ + '_b2PrismaticJoint_SetLimits', \ + '_b2PrismaticJoint_SetMaxMotorForce', \ '_b2PrismaticJointDef_Create', \ '_b2PrismaticJointDef_InitializeAndCreate' \ B2PULLEYJOINT = \ + '_b2PulleyJoint_GetGroundAnchorA', \ + '_b2PulleyJoint_GetGroundAnchorB', \ + '_b2PulleyJoint_GetCurrentLengthA', \ + '_b2PulleyJoint_GetCurrentLengthB', \ '_b2PulleyJointDef_Create', \ '_b2PulleyJointDef_InitializeAndCreate' \ @@ -194,19 +232,37 @@ B2REVOLUTEJOINT = \ '_b2RevoluteJoint_IsLimitEnabled', \ '_b2RevoluteJoint_IsMotorEnabled', \ '_b2RevoluteJoint_SetMotorSpeed', \ + '_b2RevoluteJoint_GetJointSpeed', \ + '_b2RevoluteJoint_SetLimits', \ + '_b2RevoluteJoint_GetMotorSpeed', \ + '_b2RevoluteJoint_SetMaxMotorTorque', \ + '_b2RevoluteJoint_GetMotorTorque', \ '_b2RevoluteJointDef_Create', \ - '_b2RevoluteJointDef_InitializeAndCreate' + '_b2RevoluteJointDef_InitializeAndCreate' \ B2ROPEJOINT = \ + '_b2RopeJoint_SetMaxLength', \ + '_b2RopeJoint_GetLimitState', \ '_b2RopeJointDef_Create' B2WELDJOINT = \ + '_b2WeldJoint_SetFrequency', \ + '_b2WeldJoint_SetDampingRatio', \ '_b2WeldJointDef_Create', \ '_b2WeldJointDef_InitializeAndCreate' \ B2WHEELJOINT = \ '_b2WheelJoint_SetMotorSpeed', \ '_b2WheelJoint_SetSpringFrequencyHz', \ + '_b2WheelJoint_GetLocalAxisA', \ + '_b2WheelJoint_GetJointTranslation', \ + '_b2WheelJoint_GetJointSpeed', \ + '_b2WheelJoint_IsMotorEnabled', \ + '_b2WheelJoint_EnableMotor', \ + '_b2WheelJoint_GetMotorSpeed', \ + '_b2WheelJoint_SetMaxMotorTorque', \ + '_b2WheelJoint_GetMotorTorque', \ + '_b2WheelJoint_SetSpringDampingRatio', \ '_b2WheelJointDef_Create', \ '_b2WheelJointDef_InitializeAndCreate' \ @@ -252,4 +308,4 @@ EXPORTS = EXPORTED_FUNCTIONS="[ \ ]" bindings.js: - $(EMSCRIPTEN)/emcc -I../ -o lf_core.js jsBindings/jsBindings.cpp $(OBJECTS) -s $(EXPORTS) -s TOTAL_MEMORY=33554432 -O2 --js-library callbacks.js + $(EMSCRIPTEN)/emcc -I../ -o lf_core.js jsBindings/jsBindings.cpp $(OBJECTS) -s $(EXPORTS) -s TOTAL_MEMORY=33554432 -O2 --memory-init-file 0 --js-library callbacks.js diff --git a/liquidfun/Box2D/lfjs/jsBindings/Dynamics/Joints/b2DistanceJoint.js b/liquidfun/Box2D/lfjs/jsBindings/Dynamics/Joints/b2DistanceJoint.js index 9f119e93a..291036852 100644 --- a/liquidfun/Box2D/lfjs/jsBindings/Dynamics/Joints/b2DistanceJoint.js +++ b/liquidfun/Box2D/lfjs/jsBindings/Dynamics/Joints/b2DistanceJoint.js @@ -1,9 +1,28 @@ +var b2DistanceJoint_SetLength = Module.cwrap("b2DistanceJoint_SetLength", "null", ["number", "number"]); +var b2DistanceJoint_SetFrequency = Module.cwrap("b2DistanceJoint_SetFrequency", "null", ["number", "number"]); +var b2DistanceJoint_SetDampingRatio = Module.cwrap("b2DistanceJoint_SetDampingRatio", "null", ["number", "number"]); + /**@constructor*/ function b2DistanceJoint(def) { - this.bodyA = def.bodyA; - this.bodyB = def.bodyB; - this.ptr = null; - this.next = null; + b2Joint.call(this, def); + this.length = def.length; + this.frequencyHz = def.frequencyHz; + this.dampingRatio = def.dampingRatio; +} +b2DistanceJoint.prototype = Object.create(b2Joint.prototype); +b2DistanceJoint.prototype.constructor = b2DistanceJoint; + +b2DistanceJoint.prototype.SetLength = function (length) { + b2DistanceJoint_SetLength(this.ptr, length); + this.length = length; +} +b2DistanceJoint.prototype.SetFrequency = function (hz) { + b2DistanceJoint_SetFrequency(this.ptr, hz); + this.frequencyHz = hz; +} +b2DistanceJoint.prototype.SetDampingRatio = function (ratio) { + b2DistanceJoint_SetDampingRatio(this.ptr, ratio); + this.dampingRatio = ratio; } var b2DistanceJointDef_Create = Module.cwrap("b2DistanceJointDef_Create", @@ -38,7 +57,7 @@ function b2DistanceJointDef() { this.frequencyHz = 0; } -b2DistanceJointDef.prototype.Create = function(world) { +b2DistanceJointDef.prototype.Create = function (world) { var distanceJoint = new b2DistanceJoint(this); distanceJoint.ptr = b2DistanceJointDef_Create( world.ptr, @@ -51,7 +70,7 @@ b2DistanceJointDef.prototype.Create = function(world) { return distanceJoint; }; -b2DistanceJointDef.prototype.InitializeAndCreate = function(bodyA, bodyB, anchorA, anchorB) { +b2DistanceJointDef.prototype.InitializeAndCreate = function (bodyA, bodyB, anchorA, anchorB) { this.bodyA = bodyA; this.bodyB = bodyB; var distanceJoint = new b2DistanceJoint(this); diff --git a/liquidfun/Box2D/lfjs/jsBindings/Dynamics/Joints/b2DistanceJointJsBindings.cpp b/liquidfun/Box2D/lfjs/jsBindings/Dynamics/Joints/b2DistanceJointJsBindings.cpp index 8d08375fa..00591e797 100644 --- a/liquidfun/Box2D/lfjs/jsBindings/Dynamics/Joints/b2DistanceJointJsBindings.cpp +++ b/liquidfun/Box2D/lfjs/jsBindings/Dynamics/Joints/b2DistanceJointJsBindings.cpp @@ -43,3 +43,13 @@ void* b2DistanceJointDef_InitializeAndCreate( return ((b2World*)world)->CreateJoint(&def); } + +void b2DistanceJoint_SetLength(void* joint, double length) { + ((b2DistanceJoint*)joint)->SetLength(length); +} +void b2DistanceJoint_SetFrequency(void* joint, double frequencyHz) { + ((b2DistanceJoint*)joint)->SetFrequency(frequencyHz); +} +void b2DistanceJoint_SetDampingRatio(void* joint, double dampingRatio) { + ((b2DistanceJoint*)joint)->SetDampingRatio(dampingRatio); +} diff --git a/liquidfun/Box2D/lfjs/jsBindings/Dynamics/Joints/b2DistanceJointJsBindings.h b/liquidfun/Box2D/lfjs/jsBindings/Dynamics/Joints/b2DistanceJointJsBindings.h index 5d4d6709a..cecfaf8cd 100644 --- a/liquidfun/Box2D/lfjs/jsBindings/Dynamics/Joints/b2DistanceJointJsBindings.h +++ b/liquidfun/Box2D/lfjs/jsBindings/Dynamics/Joints/b2DistanceJointJsBindings.h @@ -23,4 +23,8 @@ void* b2DistanceJointDef_InitializeAndCreate( } +void b2DistanceJoint_SetLength(void* joint, double length); +void b2DistanceJoint_SetFrequency(void* joint, double frequencyHz); +void b2DistanceJoint_SetDampingRatio(void* joint, double dampingRatio); + #endif diff --git a/liquidfun/Box2D/lfjs/jsBindings/Dynamics/Joints/b2FrictionJoint.js b/liquidfun/Box2D/lfjs/jsBindings/Dynamics/Joints/b2FrictionJoint.js index 2a3356e83..ef1ebc52a 100644 --- a/liquidfun/Box2D/lfjs/jsBindings/Dynamics/Joints/b2FrictionJoint.js +++ b/liquidfun/Box2D/lfjs/jsBindings/Dynamics/Joints/b2FrictionJoint.js @@ -1,11 +1,11 @@ var b2FrictionJointDef_Create = Module.cwrap("b2FrictionJointDef_Create", 'number', ['number', - // joint Def - 'number', 'number', 'number', - // friction joint def - 'number', 'number', 'number', - 'number', 'number', 'number']); + // joint Def + 'number', 'number', 'number', + // friction joint def + 'number', 'number', 'number', + 'number', 'number', 'number']); var b2FrictionJointDef_InitializeAndCreate = Module.cwrap("b2FrictionJointDef_InitializeAndCreate", 'number', @@ -16,6 +16,7 @@ var b2FrictionJointDef_InitializeAndCreate = Module.cwrap("b2FrictionJointDef_In // friction joint def 'number', 'number', 'number']); +/**@constructor*/ function b2FrictionJointDef() { // joint def this.bodyA = null; @@ -30,7 +31,7 @@ function b2FrictionJointDef() { this.userData = null; } -b2FrictionJointDef.prototype.Create = function(world) { +b2FrictionJointDef.prototype.Create = function (world) { var frictionJoint = new b2FrictionJoint(this); frictionJoint.ptr = b2FrictionJointDef_Create( world.ptr, @@ -42,7 +43,7 @@ b2FrictionJointDef.prototype.Create = function(world) { return frictionJoint; }; -b2FrictionJointDef.prototype.InitializeAndCreate = function(bodyA, bodyB, anchor) { +b2FrictionJointDef.prototype.InitializeAndCreate = function (bodyA, bodyB, anchor) { this.bodyA = bodyA; this.bodyB = bodyB; var frictionJoint = new b2FrictionJoint(this); @@ -59,9 +60,23 @@ b2FrictionJointDef.prototype.InitializeAndCreate = function(bodyA, bodyB, ancho return frictionJoint; }; +var b2FrictionJoint_SetMaxForce = Module.cwrap("b2FrictionJoint_SetMaxForce", "null", ["number", "number"]); +var b2FrictionJoint_SetMaxTorque = Module.cwrap("b2FrictionJoint_SetMaxTorque", "null", ["number", "number"]); + +/**@constructor*/ function b2FrictionJoint(def) { - this.bodyA = def.bodyA; - this.bodyB = def.bodyB; - this.ptr = null; - this.next = null; -} \ No newline at end of file + b2Joint.call(this, def); + this.maxForce = def.maxForce; + this.maxTorque = def.maxTorque; +} +b2FrictionJoint.prototype = Object.create(b2Joint.prototype); +b2FrictionJoint.prototype.constructor = b2FrictionJoint; + +b2FrictionJoint.prototype.SetMaxForce = function (force) { + b2FrictionJoint_SetMaxForce(this.ptr, force); + this.maxForce = force; +} +b2FrictionJoint.prototype.SetMaxTorque = function (torque) { + b2FrictionJoint_SetMaxTorque(this.ptr, torque); + this.maxTorque = torque; +} diff --git a/liquidfun/Box2D/lfjs/jsBindings/Dynamics/Joints/b2FrictionJointJsBindings.cpp b/liquidfun/Box2D/lfjs/jsBindings/Dynamics/Joints/b2FrictionJointJsBindings.cpp index 4bdc8974b..55b4bfd6e 100644 --- a/liquidfun/Box2D/lfjs/jsBindings/Dynamics/Joints/b2FrictionJointJsBindings.cpp +++ b/liquidfun/Box2D/lfjs/jsBindings/Dynamics/Joints/b2FrictionJointJsBindings.cpp @@ -38,3 +38,10 @@ void* b2FrictionJointDef_InitializeAndCreate( fJoint.Initialize((b2Body*)bodyA, (b2Body*)bodyB, b2Vec2(anchorX, anchorY)); return ((b2World*)world)->CreateJoint(&fJoint); } + +void b2FrictionJoint_SetMaxForce(void* joint, double force) { + ((b2FrictionJoint*)joint)->SetMaxForce(force); +} +void b2FrictionJoint_SetMaxTorque(void* joint, double torque) { + ((b2FrictionJoint*)joint)->SetMaxTorque(torque); +} diff --git a/liquidfun/Box2D/lfjs/jsBindings/Dynamics/Joints/b2FrictionJointJsBindings.h b/liquidfun/Box2D/lfjs/jsBindings/Dynamics/Joints/b2FrictionJointJsBindings.h index 7c46a96a3..1be39bc8f 100644 --- a/liquidfun/Box2D/lfjs/jsBindings/Dynamics/Joints/b2FrictionJointJsBindings.h +++ b/liquidfun/Box2D/lfjs/jsBindings/Dynamics/Joints/b2FrictionJointJsBindings.h @@ -22,4 +22,7 @@ void* b2FrictionJointDef_InitializeAndCreate( double maxForce, double maxTorque); } +void b2FrictionJoint_SetMaxForce(void* joint, double force); +void b2FrictionJoint_SetMaxTorque(void* joint, double torque); + #endif diff --git a/liquidfun/Box2D/lfjs/jsBindings/Dynamics/Joints/b2GearJoint.js b/liquidfun/Box2D/lfjs/jsBindings/Dynamics/Joints/b2GearJoint.js index 02f4426b9..818cc5400 100644 --- a/liquidfun/Box2D/lfjs/jsBindings/Dynamics/Joints/b2GearJoint.js +++ b/liquidfun/Box2D/lfjs/jsBindings/Dynamics/Joints/b2GearJoint.js @@ -1,14 +1,19 @@ -var b2GearJoint_GetRatio = Module.cwrap("b2GearJoint_GetRatio", 'number', - ['number']); +var b2GearJoint_SetRatio = Module.cwrap("b2GearJoint_SetRatio", 'number', ['number', 'number']); +/**@constructor*/ function b2GearJoint(def) { - this.ptr = null; - this.next = null; + b2Joint.call(this, def); + this.joint1 = def.joint1; + this.joint2 = def.joint2; + this.ratio = def.ratio; } +b2GearJoint.prototype = Object.create(b2Joint.prototype); +b2GearJoint.prototype.constructor = b2GearJoint; -b2GearJoint.prototype.GetRatio = function() { - return b2GearJoint_GetRatio(this.ptr); -}; +b2GearJoint.prototype.SetRatio = function (ratio) { + b2GearJoint_SetRatio(this.ptr, ratio); + this.ratio = ratio; +} var b2GearJointDef_Create = Module.cwrap("b2GearJointDef_Create", 'number', @@ -28,7 +33,7 @@ function b2GearJointDef() { this.ratio = 0; } -b2GearJointDef.prototype.Create = function(world) { +b2GearJointDef.prototype.Create = function (world) { var gearJoint = new b2GearJoint(this); gearJoint.ptr = b2GearJointDef_Create( world.ptr, diff --git a/liquidfun/Box2D/lfjs/jsBindings/Dynamics/Joints/b2GearJointJsBindings.cpp b/liquidfun/Box2D/lfjs/jsBindings/Dynamics/Joints/b2GearJointJsBindings.cpp index 0f4ca1038..80aecdfac 100644 --- a/liquidfun/Box2D/lfjs/jsBindings/Dynamics/Joints/b2GearJointJsBindings.cpp +++ b/liquidfun/Box2D/lfjs/jsBindings/Dynamics/Joints/b2GearJointJsBindings.cpp @@ -1,6 +1,6 @@ #include -double b2GearJoint_GetRatio(void* joint) { - return ((b2GearJoint*)joint)->GetRatio(); +void b2GearJoint_SetRatio(void* joint, double ratio) { + ((b2GearJoint*)joint)->SetRatio(ratio); } void* b2GearJointDef_Create( diff --git a/liquidfun/Box2D/lfjs/jsBindings/Dynamics/Joints/b2GearJointJsBindings.h b/liquidfun/Box2D/lfjs/jsBindings/Dynamics/Joints/b2GearJointJsBindings.h index 88873f467..898d51aa5 100644 --- a/liquidfun/Box2D/lfjs/jsBindings/Dynamics/Joints/b2GearJointJsBindings.h +++ b/liquidfun/Box2D/lfjs/jsBindings/Dynamics/Joints/b2GearJointJsBindings.h @@ -2,7 +2,7 @@ #define B2GEARJOINTJSBINDINGS_H extern "C" { -double b2GearJoint_GetRatio(void* joint); +void b2GearJoint_SetRatio(void* joint, double ratio); void* b2GearJointDef_Create( void* world, diff --git a/liquidfun/Box2D/lfjs/jsBindings/Dynamics/Joints/b2Joint.js b/liquidfun/Box2D/lfjs/jsBindings/Dynamics/Joints/b2Joint.js index 3137dc27b..3102c02c8 100644 --- a/liquidfun/Box2D/lfjs/jsBindings/Dynamics/Joints/b2Joint.js +++ b/liquidfun/Box2D/lfjs/jsBindings/Dynamics/Joints/b2Joint.js @@ -1,26 +1,75 @@ -var e_unknownJoint = 0; -var e_revoluteJoint = 1; -var e_prismaticJoint = 2; -var e_distanceJoint = 3; -var e_pulleyJoint = 4; -var e_mouseJoint = 5; -var e_gearJoint = 6; -var e_wheelJoint = 7; -var e_weldJoint = 8; -var e_frictionJoint = 9; -var e_ropeJoint = 10; -var e_motorJoint = 11; +var b2_unknownJoint = 0; +var b2_revoluteJoint = 1; +var b2_prismaticJoint = 2; +var b2_distanceJoint = 3; +var b2_pulleyJoint = 4; +var b2_mouseJoint = 5; +var b2_gearJoint = 6; +var b2_wheelJoint = 7; +var b2_weldJoint = 8; +var b2_frictionJoint = 9; +var b2_ropeJoint = 10; +var b2_motorJoint = 11; + +var b2_inactiveLimit = 0; +var b2_atLowerLimit = 1; +var b2_atUpperLimit = 2; +var b2_equalLimits = 3; var b2Joint_GetBodyA = Module.cwrap('b2Joint_GetBodyA', 'number', ['number']); var b2Joint_GetBodyB = Module.cwrap('b2Joint_GetBodyB', 'number', ['number']); +var b2Joint_GetType = Module.cwrap('b2Joint_GetType', 'number', ['number']); +var b2Joint_GetAnchorA = Module.cwrap('b2Joint_GetAnchorA', 'null', ['number', 'number']); +var b2Joint_GetAnchorB = Module.cwrap('b2Joint_GetAnchorB', 'null', ['number', 'number']); +var b2Joint_GetReactionForce = Module.cwrap('b2Joint_GetReactionForce', 'null', ['number', 'number', 'number']); +var b2Joint_GetReactionTorque = Module.cwrap('b2Joint_GetReactionTorque', 'number', ['number', 'number']); +var b2Joint_IsActive = Module.cwrap('b2Joint_IsActive', 'boolean', ['number']); +var b2Joint_GetCollideConnected = Module.cwrap('b2Joint_GetCollideConnected', 'boolean', ['number']); /**@constructor*/ -function b2Joint() {} +function b2Joint(def) { + this.ptr = null; + this.next = null; + this.bodyA = def.bodyA; + this.bodyB = def.bodyB; + this.collideConnected = def.collideConnected; + this.userData = def.userData; +} -b2Joint.prototype.GetBodyA = function() { +b2Joint.prototype.GetBodyA = function () { return world.bodiesLookup[b2Joint_GetBodyA(this.ptr)]; }; -b2Joint.prototype.GetBodyB = function() { +b2Joint.prototype.GetBodyB = function () { return world.bodiesLookup[b2Joint_GetBodyB(this.ptr)]; -}; \ No newline at end of file +}; + +b2Joint.prototype.GetType = function () { + return b2Joint_GetType(this.ptr); +}; + +b2Joint.prototype.GetAnchorA = function () { + b2Joint_GetAnchorA(this.ptr, _vec2Buf.byteOffset); + var result = new Float32Array(_vec2Buf.buffer, _vec2Buf.byteOffset, _vec2Buf.length); + return new b2Vec2(result[0], result[1]); +}; + +b2Joint.prototype.GetAnchorB = function () { + b2Joint_GetAnchorB(this.ptr, _vec2Buf.byteOffset); + var result = new Float32Array(_vec2Buf.buffer, _vec2Buf.byteOffset, _vec2Buf.length); + return new b2Vec2(result[0], result[1]); +}; +b2Joint.prototype.GetReactionForce = function (inv_dt) { + b2Joint_GetReactionForce(this.ptr, inv_dt, _vec2Buf); + var result = new Float32Array(_vec2Buf.buffer, _vec2Buf.byteOffset, _vec2Buf.length); + return new b2Vec2(result[0], result[1]); +} +b2Joint.prototype.GetReactionTorque = function (inv_dt) { + return b2Joint_GetReactionTorque(this.ptr, inv_dt); +} +b2Joint.prototype.IsActive = function () { + return b2Joint_IsActive(this.ptr); +} +b2Joint.prototype.GetCollideConnected = function () { + return b2Joint_GetCollideConnected(this.ptr); +} diff --git a/liquidfun/Box2D/lfjs/jsBindings/Dynamics/Joints/b2JointJsBindings.cpp b/liquidfun/Box2D/lfjs/jsBindings/Dynamics/Joints/b2JointJsBindings.cpp index 3db643181..2347447ec 100644 --- a/liquidfun/Box2D/lfjs/jsBindings/Dynamics/Joints/b2JointJsBindings.cpp +++ b/liquidfun/Box2D/lfjs/jsBindings/Dynamics/Joints/b2JointJsBindings.cpp @@ -6,3 +6,30 @@ void* b2Joint_GetBodyA(void* joint) { void* b2Joint_GetBodyB(void* joint) { return ((b2Joint*)joint)->GetBodyB(); } +double b2Joint_GetType(void* joint) { + return ((b2Joint*)joint)->GetType(); +} +void b2Joint_GetAnchorA(void* joint, float* arr) { + b2Vec2 anchor = ((b2Joint*)joint)->GetAnchorA(); + arr[0] = anchor.x; + arr[1] = anchor.y; +} +void b2Joint_GetAnchorB(void* joint, float* arr) { + b2Vec2 anchor = ((b2Joint*)joint)->GetAnchorB(); + arr[0] = anchor.x; + arr[1] = anchor.y; +} +void b2Joint_GetReactionForce(void* joint, double inv_dt, float* arr) { + b2Vec2 force = ((b2Joint*)joint)->GetReactionForce(inv_dt); + arr[0] = force.x; + arr[1] = force.y; +} +double b2Joint_GetReactionTorque(void* joint, double inv_dt) { + return ((b2Joint*)joint)->GetReactionTorque(inv_dt); +} +bool b2Joint_IsActive(void* joint) { + return ((b2Joint*)joint)->IsActive(); +} +bool b2Joint_GetCollideConnected(void* joint) { + return ((b2Joint*)joint)->GetCollideConnected(); +} \ No newline at end of file diff --git a/liquidfun/Box2D/lfjs/jsBindings/Dynamics/Joints/b2JointJsBindings.h b/liquidfun/Box2D/lfjs/jsBindings/Dynamics/Joints/b2JointJsBindings.h index f92e875a5..3d90f484f 100644 --- a/liquidfun/Box2D/lfjs/jsBindings/Dynamics/Joints/b2JointJsBindings.h +++ b/liquidfun/Box2D/lfjs/jsBindings/Dynamics/Joints/b2JointJsBindings.h @@ -4,6 +4,13 @@ extern "C" { void* b2Joint_GetBodyA(void* joint); void* b2Joint_GetBodyB(void* joint); +double b2Joint_GetType(void* joint); +void b2Joint_GetAnchorA(void* joint, float* arr); +void b2Joint_GetAnchorB(void* joint, float* arr); +void b2Joint_GetReactionForce(void* joint, double inv_dt, float* arr); +double b2Joint_GetReactionTorque(void* joint, double inv_dt); +bool b2Joint_IsActive(void* joint); +bool b2Joint_GetCollideConnected(void* joint); } #endif diff --git a/liquidfun/Box2D/lfjs/jsBindings/Dynamics/Joints/b2MotorJoint.js b/liquidfun/Box2D/lfjs/jsBindings/Dynamics/Joints/b2MotorJoint.js index 1b39497d5..77bfa6a88 100644 --- a/liquidfun/Box2D/lfjs/jsBindings/Dynamics/Joints/b2MotorJoint.js +++ b/liquidfun/Box2D/lfjs/jsBindings/Dynamics/Joints/b2MotorJoint.js @@ -5,21 +5,43 @@ var b2MotorJoint_SetLinearOffset = Module.cwrap('b2MotorJoint_SetLinearOffset', 'null', ['number', 'number', 'number']); +var b2MotorJoint_SetMaxForce = Module.cwrap("b2MotorJoint_SetMaxForce", "null", ["number", "number"]); +var b2MotorJoint_SetMaxTorque = Module.cwrap("b2MotorJoint_SetMaxTorque", "null", ["number", "number"]); +var b2MotorJoint_SetCorrectionFactor = Module.cwrap("b2MotorJoint_SetCorrectionFactor", "null", ["number", "number"]); + + /**@constructor*/ function b2MotorJoint(def) { - this.bodyA = def.bodyA; - this.bodyB = def.bodyB; - this.ptr = null; - this.next = null; + b2Joint.call(this, def); + this.angularOffset = def.angularOffset; + this.linearOffset = def.linearOffset.Clone(); + this.maxForce = def.maxForce; + this.maxTorque = def.maxTorque; + this.correctionFactor = def.correctionFactor; } +b2MotorJoint.prototype = Object.create(b2Joint.prototype); +b2MotorJoint.prototype.constructor = b2MotorJoint; -b2MotorJoint.prototype.SetAngularOffset = function(angle) { +b2MotorJoint.prototype.SetAngularOffset = function (angle) { b2MotorJoint_SetAngularOffset(this.ptr, angle); + this.angularOffset = angle; }; - -b2MotorJoint.prototype.SetLinearOffset = function(v) { +b2MotorJoint.prototype.SetLinearOffset = function (v) { b2MotorJoint_SetLinearOffset(this.ptr, v.x, v.y); + this.linearOffset.Set(v.x, v.y); }; +b2MotorJoint.prototype.SetMaxForce = function (force) { + b2MotorJoint_SetMaxForce(this.ptr, force); + this.maxForce = force; +} +b2MotorJoint.prototype.SetMaxTorque = function (torque) { + b2MotorJoint_SetMaxTorque(this.ptr, torque); + this.maxTorque = torque; +} +b2MotorJoint.prototype.SetCorrectionFactor = function (factor) { + b2MotorJoint_SetCorrectionFactor(this.ptr, factor); + this.correctionFactor = factor; +} var b2MotorJointDef_Create = Module.cwrap("b2MotorJointDef_Create", 'number', @@ -54,7 +76,7 @@ function b2MotorJointDef() { this.maxTorque = 0; } -b2MotorJointDef.prototype.Create = function(world) { +b2MotorJointDef.prototype.Create = function (world) { var motorJoint = new b2MotorJoint(this); motorJoint.ptr = b2MotorJointDef_Create( world.ptr, @@ -66,7 +88,7 @@ b2MotorJointDef.prototype.Create = function(world) { return motorJoint; }; -b2MotorJointDef.prototype.InitializeAndCreate = function(bodyA, bodyB) { +b2MotorJointDef.prototype.InitializeAndCreate = function (bodyA, bodyB) { this.bodyA = bodyA; this.bodyB = bodyB; var motorJoint = new b2MotorJoint(this); diff --git a/liquidfun/Box2D/lfjs/jsBindings/Dynamics/Joints/b2MotorJointJsBindings.cpp b/liquidfun/Box2D/lfjs/jsBindings/Dynamics/Joints/b2MotorJointJsBindings.cpp index ffe034d2e..2ba1e576c 100644 --- a/liquidfun/Box2D/lfjs/jsBindings/Dynamics/Joints/b2MotorJointJsBindings.cpp +++ b/liquidfun/Box2D/lfjs/jsBindings/Dynamics/Joints/b2MotorJointJsBindings.cpp @@ -3,10 +3,18 @@ void b2MotorJoint_SetAngularOffset(void* motorJoint, double angle) { ((b2MotorJoint*)motorJoint)->SetAngularOffset(angle); } - void b2MotorJoint_SetLinearOffset(void* motorJoint, double x, double y) { ((b2MotorJoint*)motorJoint)->SetLinearOffset(b2Vec2(x, y)); } +void b2MotorJoint_SetMaxForce(void* joint, double force) { + ((b2MotorJoint*)joint)->SetMaxForce(force); +} +void b2MotorJoint_SetMaxTorque(void* joint, double torque) { + ((b2MotorJoint*)joint)->SetMaxTorque(torque); +} +void b2MotorJoint_SetCorrectionFactor(void* joint, double factor) { + ((b2MotorJoint*)joint)->SetCorrectionFactor(factor); +} void* b2MotorJointDef_Create( void* world, diff --git a/liquidfun/Box2D/lfjs/jsBindings/Dynamics/Joints/b2MotorJointJsBindings.h b/liquidfun/Box2D/lfjs/jsBindings/Dynamics/Joints/b2MotorJointJsBindings.h index b84958a06..587703a00 100644 --- a/liquidfun/Box2D/lfjs/jsBindings/Dynamics/Joints/b2MotorJointJsBindings.h +++ b/liquidfun/Box2D/lfjs/jsBindings/Dynamics/Joints/b2MotorJointJsBindings.h @@ -4,6 +4,9 @@ extern "C" { void b2MotorJoint_SetAngularOffset(void* motorJoint, double angle); void b2MotorJoint_SetLinearOffset(void* motorJoint, double x, double y); +void b2MotorJoint_SetMaxForce(void* joint, double force); +void b2MotorJoint_SetMaxTorque(void* joint, double torque); +void b2MotorJoint_SetCorrectionFactor(void* joint, double factor); void* b2MotorJointDef_Create( void* world, diff --git a/liquidfun/Box2D/lfjs/jsBindings/Dynamics/Joints/b2MouseJoint.js b/liquidfun/Box2D/lfjs/jsBindings/Dynamics/Joints/b2MouseJoint.js index db9645a86..361d77a21 100644 --- a/liquidfun/Box2D/lfjs/jsBindings/Dynamics/Joints/b2MouseJoint.js +++ b/liquidfun/Box2D/lfjs/jsBindings/Dynamics/Joints/b2MouseJoint.js @@ -1,16 +1,36 @@ var b2MouseJoint_SetTarget = Module.cwrap('b2MouseJoint_SetTarget', 'null', ['number', 'number', 'number']); - +var b2MouseJoint_SetMaxForce = Module.cwrap("b2MouseJoint_SetMaxForce", "null", ["number", "number"]); +var b2MouseJoint_SetFrequency = Module.cwrap("b2MouseJoint_SetFrequency", "null", ["number", "number"]); +var b2MouseJoint_SetDampingRatio = Module.cwrap("b2MouseJoint_SetDampingRatio", "null", ["number", "number"]); /**@constructor*/ function b2MouseJoint(def) { - this.ptr = null; - this.next = null; + b2Joint.call(this, def); + this.target = def.target.Clone(); + this.maxForce = def.maxForce; + this.frequencyHz = def.frequencyHz; + this.dampingRatio = def.dampingRatio; } +b2MouseJoint.prototype = Object.create(b2Joint.prototype); +b2MouseJoint.prototype.constructor = b2MouseJoint; -b2MouseJoint.prototype.SetTarget = function(p) { +b2MouseJoint.prototype.SetTarget = function (p) { b2MouseJoint_SetTarget(this.ptr, p.x, p.y); + this.target.Set(p.x, p.y); }; +b2MouseJoint.prototype.SetMaxForce = function (force) { + b2MouseJoint_SetMaxForce(this.ptr, force); + this.maxForce = force; +} +b2MouseJoint.prototype.SetFrequency = function (hz) { + b2MouseJoint_SetFrequency(this.ptr, hz); + this.frequencyHz = hz; +} +b2MouseJoint.prototype.SetDampingRatio = function (ratio) { + b2MouseJoint_SetDampingRatio(this.ptr, ratio); + this.dampingRatio = ratio; +} var b2MouseJointDef_Create = Module.cwrap("b2MouseJointDef_Create", 'number', @@ -35,7 +55,7 @@ function b2MouseJointDef() { this.target = new b2Vec2(); } -b2MouseJointDef.prototype.Create = function(world) { +b2MouseJointDef.prototype.Create = function (world) { var mouseJoint = new b2MouseJoint(this); mouseJoint.ptr = b2MouseJointDef_Create( world.ptr, diff --git a/liquidfun/Box2D/lfjs/jsBindings/Dynamics/Joints/b2MouseJointJsBindings.cpp b/liquidfun/Box2D/lfjs/jsBindings/Dynamics/Joints/b2MouseJointJsBindings.cpp index 69b909376..11602ffd7 100644 --- a/liquidfun/Box2D/lfjs/jsBindings/Dynamics/Joints/b2MouseJointJsBindings.cpp +++ b/liquidfun/Box2D/lfjs/jsBindings/Dynamics/Joints/b2MouseJointJsBindings.cpp @@ -3,6 +3,15 @@ void b2MouseJoint_SetTarget(void* mouseJoint, double x, double y) { ((b2MouseJoint*)mouseJoint)->SetTarget(b2Vec2(x, y)); } +void b2MouseJoint_SetMaxForce(void* joint, double force) { + ((b2MouseJoint*)joint)->SetMaxForce(force); +} +void b2MouseJoint_SetFrequency(void* joint, double frequencyHz) { + ((b2MouseJoint*)joint)->SetFrequency(frequencyHz); +} +void b2MouseJoint_SetDampingRatio(void* joint, double dampingRatio) { + ((b2MouseJoint*)joint)->SetDampingRatio(dampingRatio); +} void* b2MouseJointDef_Create( void* world, diff --git a/liquidfun/Box2D/lfjs/jsBindings/Dynamics/Joints/b2MouseJointJsBindings.h b/liquidfun/Box2D/lfjs/jsBindings/Dynamics/Joints/b2MouseJointJsBindings.h index ae5e879a3..c23bf4366 100644 --- a/liquidfun/Box2D/lfjs/jsBindings/Dynamics/Joints/b2MouseJointJsBindings.h +++ b/liquidfun/Box2D/lfjs/jsBindings/Dynamics/Joints/b2MouseJointJsBindings.h @@ -3,6 +3,9 @@ extern "C" { void b2MouseJoint_SetTarget(void* mouseJoint, double x, double y); +void b2MouseJoint_SetMaxForce(void* joint, double force); +void b2MouseJoint_SetFrequency(void* joint, double frequencyHz); +void b2MouseJoint_SetDampingRatio(void* joint, double dampingRatio); void* b2MouseJointDef_Create( void* world, diff --git a/liquidfun/Box2D/lfjs/jsBindings/Dynamics/Joints/b2PrismaticJoint.js b/liquidfun/Box2D/lfjs/jsBindings/Dynamics/Joints/b2PrismaticJoint.js index 90c46a00d..c943d92bb 100644 --- a/liquidfun/Box2D/lfjs/jsBindings/Dynamics/Joints/b2PrismaticJoint.js +++ b/liquidfun/Box2D/lfjs/jsBindings/Dynamics/Joints/b2PrismaticJoint.js @@ -15,50 +15,75 @@ var b2PrismaticJoint_IsMotorEnabled = var b2PrismaticJoint_SetMotorSpeed = Module.cwrap('b2PrismaticJoint_SetMotorSpeed', 'number', ['number', 'number']); +var b2PrismaticJoint_GetLocalAxisA = Module.cwrap('b2PrismaticJoint_GetLocalAxisA', 'null', ['number', 'number']); +var b2PrismaticJoint_GetJointSpeed = Module.cwrap('b2PrismaticJoint_GetJointSpeed', 'number', ['number']); +var b2PrismaticJoint_SetLimits = Module.cwrap('b2PrismaticJoint_SetLimits', 'null', ['number', 'number', 'number']); +var b2PrismaticJoint_SetMaxMotorForce = Module.cwrap('b2PrismaticJoint_SetMaxMotorForce', 'null', ['number', 'number']); + /**@constructor*/ function b2PrismaticJoint(def) { - this.ptr = null; - this.next = null; + b2Joint.call(this, def); + this.referenceAngle = def.referenceAngle; + this.lowerTranslation = def.lowerTranslation; + this.upperTranslation = def.upperTranslation; + this.maxMotorForce = def.maxMotorForce; } +b2PrismaticJoint.prototype = Object.create(b2Joint.prototype); +b2PrismaticJoint.prototype.constructor = b2PrismaticJoint; -b2PrismaticJoint.prototype = new b2Joint; - -b2PrismaticJoint.prototype.EnableLimit = function(flag) { +b2PrismaticJoint.prototype.EnableLimit = function (flag) { return b2PrismaticJoint_EnableLimit(this.ptr, flag); }; -b2PrismaticJoint.prototype.EnableMotor = function(flag) { +b2PrismaticJoint.prototype.EnableMotor = function (flag) { return b2PrismaticJoint_EnableMotor(this.ptr, flag); }; -b2PrismaticJoint.prototype.GetJointTranslation = function() { +b2PrismaticJoint.prototype.GetJointTranslation = function () { return b2PrismaticJoint_GetJointTranslation(this.ptr); }; -b2PrismaticJoint.prototype.GetMotorSpeed = function() { +b2PrismaticJoint.prototype.GetMotorSpeed = function () { return b2PrismaticJoint_GetMotorSpeed(this.ptr); }; -b2PrismaticJoint.prototype.GetMotorForce = function(hz) { +b2PrismaticJoint.prototype.GetMotorForce = function (hz) { return b2PrismaticJoint_GetMotorForce(this.ptr, hz); }; -b2PrismaticJoint.prototype.IsLimitEnabled = function() { +b2PrismaticJoint.prototype.IsLimitEnabled = function () { return b2PrismaticJoint_IsLimitEnabled(this.ptr); }; -b2PrismaticJoint.prototype.IsMotorEnabled = function() { +b2PrismaticJoint.prototype.IsMotorEnabled = function () { return b2PrismaticJoint_IsMotorEnabled(this.ptr); }; -b2PrismaticJoint.prototype.GetMotorEnabled = function() { +b2PrismaticJoint.prototype.GetMotorEnabled = function () { return b2PrismaticJoint_IsMotorEnabled(this.ptr); }; -b2PrismaticJoint.prototype.SetMotorSpeed = function(speed) { +b2PrismaticJoint.prototype.SetMotorSpeed = function (speed) { return b2PrismaticJoint_SetMotorSpeed(this.ptr, speed); }; +b2PrismaticJoint.prototype.GetLocalAxisA = function () { + b2PrismaticJoint_GetLocalAxisA(this.ptr, _vec2Buf.byteOffset); + var result = new Float32Array(_vec2Buf.buffer, _vec2Buf.byteOffset, _vec2Buf.length); + return new b2Vec2(result[0], result[1]); +} +b2PrismaticJoint.prototype.GetJointSpeed = function () { + return b2PrismaticJoint_GetJointSpeed(this.ptr); +} +b2PrismaticJoint.prototype.SetLimits = function (lower, upper) { + b2PrismaticJoint_SetLimits(this.ptr, lower, upper); + this.lowerTranslation = lower; + this.upperTranslation = upper; +} +b2PrismaticJoint.prototype.SetMaxMotorForce = function (force) { + b2PrismaticJoint_SetMaxMotorForce(this.ptr, force); + this.maxMotorForce = force; +} var b2PrismaticJointDef_Create = Module.cwrap("b2PrismaticJointDef_Create", 'number', @@ -104,7 +129,7 @@ function b2PrismaticJointDef() { this.upperTranslation = 0; } -b2PrismaticJointDef.prototype.Create = function(world) { +b2PrismaticJointDef.prototype.Create = function (world) { var prismaticJoint = new b2PrismaticJoint(this); prismaticJoint.ptr = b2PrismaticJointDef_Create( world.ptr, @@ -119,7 +144,7 @@ b2PrismaticJointDef.prototype.Create = function(world) { return prismaticJoint; }; -b2PrismaticJointDef.prototype.InitializeAndCreate = function(bodyA, bodyB, anchor, axis) { +b2PrismaticJointDef.prototype.InitializeAndCreate = function (bodyA, bodyB, anchor, axis) { this.bodyA = bodyA; this.bodyB = bodyB; var prismaticJoint = new b2PrismaticJoint(this); diff --git a/liquidfun/Box2D/lfjs/jsBindings/Dynamics/Joints/b2PrismaticJointJsBindings.cpp b/liquidfun/Box2D/lfjs/jsBindings/Dynamics/Joints/b2PrismaticJointJsBindings.cpp index 0ee9ab000..985f1fcec 100644 --- a/liquidfun/Box2D/lfjs/jsBindings/Dynamics/Joints/b2PrismaticJointJsBindings.cpp +++ b/liquidfun/Box2D/lfjs/jsBindings/Dynamics/Joints/b2PrismaticJointJsBindings.cpp @@ -27,6 +27,21 @@ void b2PrismaticJoint_SetMotorSpeed(void* joint, double speed) { ((b2PrismaticJoint*)joint)->SetMotorSpeed(speed); } +void b2PrismaticJoint_GetLocalAxisA(void* joint, float* arr) { + b2Vec2 axis = ((b2PrismaticJoint*)joint)->GetLocalAxisA(); + arr[0] = axis.x; + arr[1] = axis.y; +} +double b2PrismaticJoint_GetJointSpeed(void* joint) { + return ((b2PrismaticJoint*)joint)->GetJointSpeed(); +} +void b2PrismaticJoint_SetLimits(void* joint, double lower, double upper) { + ((b2PrismaticJoint*)joint)->SetLimits(lower, upper); +} +void b2PrismaticJoint_SetMaxMotorForce(void *joint, double force) { + ((b2PrismaticJoint*)joint)->SetMaxMotorForce(force); +} + void* b2PrismaticJointDef_Create( void* world, // joint def diff --git a/liquidfun/Box2D/lfjs/jsBindings/Dynamics/Joints/b2PrismaticJointJsBindings.h b/liquidfun/Box2D/lfjs/jsBindings/Dynamics/Joints/b2PrismaticJointJsBindings.h index aa7699908..be6d3c820 100644 --- a/liquidfun/Box2D/lfjs/jsBindings/Dynamics/Joints/b2PrismaticJointJsBindings.h +++ b/liquidfun/Box2D/lfjs/jsBindings/Dynamics/Joints/b2PrismaticJointJsBindings.h @@ -11,6 +11,11 @@ double b2PrismaticJoint_IsLimitEnabled(void* joint); double b2PrismaticJoint_IsMotorEnabled(void* joint); void b2PrismaticJoint_SetMotorSpeed(void* joint, double speed); +void b2PrismaticJoint_GetLocalAxisA(void* joint, float* arr); +double b2PrismaticJoint_GetJointSpeed(void* joint); +void b2PrismaticJoint_SetLimits(void* joint, double lower, double upper); +void b2PrismaticJoint_SetMaxMotorForce(void *joint, double force); + void* b2PrismaticJointDef_Create( void* world, // joint def diff --git a/liquidfun/Box2D/lfjs/jsBindings/Dynamics/Joints/b2PulleyJoint.js b/liquidfun/Box2D/lfjs/jsBindings/Dynamics/Joints/b2PulleyJoint.js index f38bb9727..6159b9d90 100644 --- a/liquidfun/Box2D/lfjs/jsBindings/Dynamics/Joints/b2PulleyJoint.js +++ b/liquidfun/Box2D/lfjs/jsBindings/Dynamics/Joints/b2PulleyJoint.js @@ -1,7 +1,33 @@ +var b2PulleyJoint_GetGroundAnchorA = Module.cwrap('b2PulleyJoint_GetGroundAnchorA', 'null', ['number', 'number']); +var b2PulleyJoint_GetGroundAnchorB = Module.cwrap('b2PulleyJoint_GetGroundAnchorB', 'null', ['number', 'number']); +var b2PulleyJoint_GetCurrentLengthA = Module.cwrap('b2PulleyJoint_GetCurrentLengthA', 'number', ['number']); +var b2PulleyJoint_GetCurrentLengthB = Module.cwrap('b2PulleyJoint_GetCurrentLengthB', 'number', ['number']); + /**@constructor*/ function b2PulleyJoint(def) { - this.ptr = null; - this.next = null; + b2Joint.call(this, def); + this.lengthA = def.lengthA; + this.lengthB = def.lengthB; + this.ratio = def.ratio; +} +b2PulleyJoint.prototype = Object.create(b2Joint.prototype); +b2PulleyJoint.prototype.constructor = b2PulleyJoint; + +b2PulleyJoint.prototype.GetGroundAnchorA = function () { + b2PulleyJoint_GetGroundAnchorA(this.ptr, _vec2Buf.byteOffset); + var result = new Float32Array(_vec2Buf.buffer, _vec2Buf.byteOffset, _vec2Buf.length); + return new b2Vec2(result[0], result[1]); +} +b2PulleyJoint.prototype.GetGroundAnchorB = function () { + b2PulleyJoint_GetGroundAnchorB(this.ptr, _vec2Buf.byteOffset); + var result = new Float32Array(_vec2Buf.buffer, _vec2Buf.byteOffset, _vec2Buf.length); + return new b2Vec2(result[0], result[1]); +} +b2PulleyJoint.prototype.GetCurrentLengthA = function () { + return b2PulleyJoint_GetCurrentLengthA(this.ptr); +} +b2PulleyJoint.prototype.GetCurrentLengthB = function () { + return b2PulleyJoint_GetCurrentLengthB(this.ptr); } var b2PulleyJointDef_Create = Module.cwrap("b2PulleyJointDef_Create", @@ -44,7 +70,7 @@ function b2PulleyJointDef() { this.ratio = 1; } -b2PulleyJointDef.prototype.Create = function(world) { +b2PulleyJointDef.prototype.Create = function (world) { var pulleyJoint = new b2PulleyJoint(this); pulleyJoint.ptr = b2PulleyJointDef_Create( world.ptr, @@ -58,9 +84,9 @@ b2PulleyJointDef.prototype.Create = function(world) { return pulleyJoint; }; -b2PulleyJointDef.prototype.InitializeAndCreate = function(bodyA, bodyB, groundAnchorA, - groundAnchorB, anchorA, anchorB, - ratio) { +b2PulleyJointDef.prototype.InitializeAndCreate = function (bodyA, bodyB, groundAnchorA, + groundAnchorB, anchorA, anchorB, + ratio) { this.bodyA = bodyA; this.bodyB = bodyB; var pulleyJoint = new b2PulleyJoint(this); diff --git a/liquidfun/Box2D/lfjs/jsBindings/Dynamics/Joints/b2PulleyJointJsBindings.cpp b/liquidfun/Box2D/lfjs/jsBindings/Dynamics/Joints/b2PulleyJointJsBindings.cpp index e0a946167..c67587752 100644 --- a/liquidfun/Box2D/lfjs/jsBindings/Dynamics/Joints/b2PulleyJointJsBindings.cpp +++ b/liquidfun/Box2D/lfjs/jsBindings/Dynamics/Joints/b2PulleyJointJsBindings.cpp @@ -1,4 +1,21 @@ #include +void b2PulleyJoint_GetGroundAnchorA(void* joint, float* arr) { + b2Vec2 anchor = ((b2PulleyJoint*)joint)->GetGroundAnchorA(); + arr[0] = anchor.x; + arr[1] = anchor.y; +} +void b2PulleyJoint_GetGroundAnchorB(void* joint, float* arr) { + b2Vec2 anchor = ((b2PulleyJoint*)joint)->GetGroundAnchorB(); + arr[0] = anchor.x; + arr[1] = anchor.y; +} +double b2PulleyJoint_GetCurrentLengthA(void* joint) { + return ((b2PulleyJoint*)joint)->GetCurrentLengthA(); +} +double b2PulleyJoint_GetCurrentLengthB(void* joint) { + return ((b2PulleyJoint*)joint)->GetCurrentLengthB(); +} + void* b2PulleyJointDef_Create( void* world, // joint def diff --git a/liquidfun/Box2D/lfjs/jsBindings/Dynamics/Joints/b2PulleyJointJsBindings.h b/liquidfun/Box2D/lfjs/jsBindings/Dynamics/Joints/b2PulleyJointJsBindings.h index d7b20fa4e..781edd3a9 100644 --- a/liquidfun/Box2D/lfjs/jsBindings/Dynamics/Joints/b2PulleyJointJsBindings.h +++ b/liquidfun/Box2D/lfjs/jsBindings/Dynamics/Joints/b2PulleyJointJsBindings.h @@ -2,6 +2,11 @@ #define B2PULLEYJOINTJSBINDINGS_H extern "C" { +void b2PulleyJoint_GetGroundAnchorA(void* joint, float* arr); +void b2PulleyJoint_GetGroundAnchorB(void* joint, float* arr); +double b2PulleyJoint_GetCurrentLengthA(void* joint); +double b2PulleyJoint_GetCurrentLengthB(void* joint); + void* b2PulleyJointDef_Create( void* world, // joint def diff --git a/liquidfun/Box2D/lfjs/jsBindings/Dynamics/Joints/b2RevoluteJoint.js b/liquidfun/Box2D/lfjs/jsBindings/Dynamics/Joints/b2RevoluteJoint.js index 78d28d377..31755546c 100644 --- a/liquidfun/Box2D/lfjs/jsBindings/Dynamics/Joints/b2RevoluteJoint.js +++ b/liquidfun/Box2D/lfjs/jsBindings/Dynamics/Joints/b2RevoluteJoint.js @@ -22,69 +22,92 @@ var b2RevoluteJoint_SetMotorSpeed = Module.cwrap('b2RevoluteJoint_SetMotorSpeed', 'number', ['number', 'number']); +var b2RevoluteJoint_GetJointSpeed = Module.cwrap('b2RevoluteJoint_GetJointSpeed', 'number', ['number']); +var b2RevoluteJoint_SetLimits = Module.cwrap('b2RevoluteJoint_SetLimits', 'null', ['number', 'number', 'number']); +var b2RevoluteJoint_GetMotorSpeed = Module.cwrap('b2RevoluteJoint_GetMotorSpeed', 'number', ['number']); +var b2RevoluteJoint_SetMaxMotorTorque = Module.cwrap('b2RevoluteJoint_SetMaxMotorTorque', 'null', ['number', 'number']); +var b2RevoluteJoint_GetMotorTorque = Module.cwrap('b2RevoluteJoint_GetMotorTorque', 'number', ['number', 'number']); + /** @constructor */ function b2RevoluteJoint(revoluteJointDef) { - this.collideConnected = revoluteJointDef.collideConnected; + b2Joint.call(this, revoluteJointDef); this.enableLimit = revoluteJointDef.enableLimit; this.enableMotor = revoluteJointDef.enableMotor; this.lowerAngle = revoluteJointDef.lowerAngle; this.maxMotorTorque = revoluteJointDef.maxMotorTorque; this.motorSpeed = revoluteJointDef.motorSpeed; - this.next = null; - this.ptr = null; this.upperAngle = revoluteJointDef.upperAngle; - this.userData = revoluteJointDef.userData; + this.referenceAngle = revoluteJointDef.referenceAngle; } +b2RevoluteJoint.prototype = Object.create(b2Joint.prototype); +b2RevoluteJoint.prototype.constructor = b2RevoluteJoint; -b2RevoluteJoint.prototype = new b2Joint; - -b2RevoluteJoint.prototype.EnableLimit = function(flag) { +b2RevoluteJoint.prototype.EnableLimit = function (flag) { b2RevoluteJoint_EnableLimit(this.ptr, flag); }; -b2RevoluteJoint.prototype.EnableMotor = function(flag) { +b2RevoluteJoint.prototype.EnableMotor = function (flag) { b2RevoluteJoint_EnableMotor(this.ptr, flag); }; -b2RevoluteJoint.prototype.GetJointAngle = function(flag) { +b2RevoluteJoint.prototype.GetJointAngle = function (flag) { return b2RevoluteJoint_GetJointAngle(this.ptr); }; -b2RevoluteJoint.prototype.IsLimitEnabled = function() { +b2RevoluteJoint.prototype.IsLimitEnabled = function () { return b2RevoluteJoint_IsLimitEnabled(this.ptr); }; -b2RevoluteJoint.prototype.IsMotorEnabled = function() { +b2RevoluteJoint.prototype.IsMotorEnabled = function () { return b2RevoluteJoint_IsMotorEnabled(this.ptr); }; -b2RevoluteJoint.prototype.SetMotorSpeed = function(speed) { +b2RevoluteJoint.prototype.SetMotorSpeed = function (speed) { b2RevoluteJoint_SetMotorSpeed(this.ptr, speed); this.motorSpeed = speed; }; +b2RevoluteJoint.prototype.GetJointSpeed = function () { + return b2RevoluteJoint_GetJointSpeed(this.ptr); +} +b2RevoluteJoint.prototype.SetLimits = function (lower, upper) { + b2RevoluteJoint_SetLimits(this.ptr, lower, upper); + this.lowerAngle = lower; + this.upperAngle = upper; +} +b2RevoluteJoint.prototype.GetMotorSpeed = function () { + return b2RevoluteJoint_GetMotorSpeed(this.ptr); +} +b2RevoluteJoint.prototype.SetMaxMotorTorque = function (torque) { + b2RevoluteJoint_SetMaxMotorTorque(this.ptr, torque); + this.maxMotorTorque = torque; +} +b2RevoluteJoint.prototype.GetMotorTorque = function (inv_dt) { + return b2RevoluteJoint_GetMotorTorque(this.ptr, inv_dt); +} + var b2RevoluteJointDef_Create = Module.cwrap('b2RevoluteJointDef_Create', 'number', ['number', - //joint def - 'number', 'number', 'number', - // revolute joint def - 'number', 'number', 'number', - 'number', 'number', 'number', - 'number', 'number', 'number', - 'number', 'number']); + //joint def + 'number', 'number', 'number', + // revolute joint def + 'number', 'number', 'number', + 'number', 'number', 'number', + 'number', 'number', 'number', + 'number', 'number']); var b2RevoluteJointDef_InitializeAndCreate = Module.cwrap('b2RevoluteJointDef_InitializeAndCreate', 'number', ['number', //initialize args - 'number', 'number', 'number', - 'number', + 'number', 'number', 'number', + 'number', //revoluteJointDef - 'number', 'number', 'number', - 'number', 'number', 'number', - 'number']); + 'number', 'number', 'number', + 'number', 'number', 'number', + 'number']); /** @constructor */ function b2RevoluteJointDef() { @@ -101,7 +124,7 @@ function b2RevoluteJointDef() { this.userData = null; } -b2RevoluteJointDef.prototype.Create = function(world) { +b2RevoluteJointDef.prototype.Create = function (world) { var revoluteJoint = new b2RevoluteJoint(this); revoluteJoint.ptr = b2RevoluteJointDef_Create( world.ptr, @@ -116,7 +139,7 @@ b2RevoluteJointDef.prototype.Create = function(world) { }; // todo Initialize and create probably shouldnt use the global world ptr -b2RevoluteJointDef.prototype.InitializeAndCreate = function(bodyA, bodyB, anchor) { +b2RevoluteJointDef.prototype.InitializeAndCreate = function (bodyA, bodyB, anchor) { this.bodyA = bodyA; this.bodyB = bodyB; var revoluteJoint = new b2RevoluteJoint(this); diff --git a/liquidfun/Box2D/lfjs/jsBindings/Dynamics/Joints/b2RevoluteJointJsBindings.cpp b/liquidfun/Box2D/lfjs/jsBindings/Dynamics/Joints/b2RevoluteJointJsBindings.cpp index 767d7af3e..b06cb18b3 100644 --- a/liquidfun/Box2D/lfjs/jsBindings/Dynamics/Joints/b2RevoluteJointJsBindings.cpp +++ b/liquidfun/Box2D/lfjs/jsBindings/Dynamics/Joints/b2RevoluteJointJsBindings.cpp @@ -2,10 +2,10 @@ #include void b2RevoluteJoint_EnableLimit(void* joint, double flag) { - ((b2RevoluteJoint*)joint)->EnableLimit(flag); + ((b2RevoluteJoint*)joint)->EnableLimit((bool)flag); } void b2RevoluteJoint_EnableMotor(void* joint, double flag) { - ((b2RevoluteJoint*)joint)->EnableMotor(flag); + ((b2RevoluteJoint*)joint)->EnableMotor((bool)flag); } double b2RevoluteJoint_GetJointAngle(void* joint) { return ((b2RevoluteJoint*)joint)->GetJointAngle(); @@ -16,6 +16,21 @@ double b2RevoluteJoint_IsLimitEnabled(void* joint) { double b2RevoluteJoint_IsMotorEnabled(void* joint) { return ((b2RevoluteJoint*)joint)->IsMotorEnabled(); } +double b2RevoluteJoint_GetJointSpeed(void* joint) { + return ((b2RevoluteJoint*)joint)->GetJointSpeed(); +} +void b2RevoluteJoint_SetLimits(void* joint, double lower, double upper) { + ((b2RevoluteJoint*)joint)->SetLimits(lower, upper); +} +double b2RevoluteJoint_GetMotorSpeed(void* joint) { + return ((b2RevoluteJoint*)joint)->GetMotorSpeed(); +} +void b2RevoluteJoint_SetMaxMotorTorque(void* joint, double torque) { + ((b2RevoluteJoint*)joint)->SetMaxMotorTorque(torque); +} +double b2RevoluteJoint_GetMotorTorque(void* joint, double inv_dt) { + return ((b2RevoluteJoint*)joint)->GetMotorTorque(inv_dt); +} void* b2RevoluteJointDef_Create( void* world, diff --git a/liquidfun/Box2D/lfjs/jsBindings/Dynamics/Joints/b2RevoluteJointJsBindings.h b/liquidfun/Box2D/lfjs/jsBindings/Dynamics/Joints/b2RevoluteJointJsBindings.h index 3f3643600..26394ae80 100644 --- a/liquidfun/Box2D/lfjs/jsBindings/Dynamics/Joints/b2RevoluteJointJsBindings.h +++ b/liquidfun/Box2D/lfjs/jsBindings/Dynamics/Joints/b2RevoluteJointJsBindings.h @@ -9,6 +9,12 @@ double b2RevoluteJoint_IsLimitEnabled(void* joint); double b2RevoluteJoint_IsMotorEnabled(void* joint); void b2RevoluteJoint_SetMotorSpeed(void* joint, double speed); +double b2RevoluteJoint_GetJointSpeed(void* joint); +void b2RevoluteJoint_SetLimits(void* joint, double lower, double upper); +double b2RevoluteJoint_GetMotorSpeed(void* joint); +void b2RevoluteJoint_SetMaxMotorTorque(void* joint, double torque); +double b2RevoluteJoint_GetMotorTorque(void* joint, double inv_dt); + void* b2RevoluteJointDef_Create( void* world, //Joint def diff --git a/liquidfun/Box2D/lfjs/jsBindings/Dynamics/Joints/b2RopeJoint.js b/liquidfun/Box2D/lfjs/jsBindings/Dynamics/Joints/b2RopeJoint.js index 7e3a53002..f956a15c1 100644 --- a/liquidfun/Box2D/lfjs/jsBindings/Dynamics/Joints/b2RopeJoint.js +++ b/liquidfun/Box2D/lfjs/jsBindings/Dynamics/Joints/b2RopeJoint.js @@ -1,7 +1,20 @@ +var b2RopeJoint_SetMaxLength = Module.cwrap('b2RopeJoint_SetMaxLength', 'null', ['number', 'number']); +var b2RopeJoint_GetLimitState = Module.cwrap('b2RopeJoint_GetLimitState', 'number', ['number']); + /**@constructor*/ function b2RopeJoint(def) { - this.next = null; - this.ptr = null; + b2Joint.call(this, def); + this.maxLength = def.maxLength; +} +b2RopeJoint.prototype = Object.create(b2Joint.prototype); +b2RopeJoint.prototype.constructor = b2RopeJoint; + +b2RopeJoint.prototype.SetMaxLength = function (length) { + b2RopeJoint_SetMaxLength(this.ptr, length); + this.maxLength = length; +} +b2RopeJoint.prototype.GetLimitState = function () { + return b2RopeJoint_GetLimitState(this.ptr); } var b2RopeJointDef_Create = Module.cwrap("b2RopeJointDef_Create", @@ -26,7 +39,7 @@ function b2RopeJointDef() { this.maxLength = 0; } -b2RopeJointDef.prototype.Create = function(world) { +b2RopeJointDef.prototype.Create = function (world) { var ropeJoint = new b2RopeJoint(this); ropeJoint.ptr = b2RopeJointDef_Create( world.ptr, diff --git a/liquidfun/Box2D/lfjs/jsBindings/Dynamics/Joints/b2RopeJointJsBindings.cpp b/liquidfun/Box2D/lfjs/jsBindings/Dynamics/Joints/b2RopeJointJsBindings.cpp index 88aecf80d..c4f2a60f5 100644 --- a/liquidfun/Box2D/lfjs/jsBindings/Dynamics/Joints/b2RopeJointJsBindings.cpp +++ b/liquidfun/Box2D/lfjs/jsBindings/Dynamics/Joints/b2RopeJointJsBindings.cpp @@ -1,4 +1,11 @@ #include +void b2RopeJoint_SetMaxLength(void* joint, double length) { + ((b2RopeJoint*)joint)->SetMaxLength(length); +} +double b2RopeJoint_GetLimitState(void* joint) { + return ((b2RopeJoint*)joint)->GetLimitState(); +} + void* b2RopeJointDef_Create( void* world, // joint def diff --git a/liquidfun/Box2D/lfjs/jsBindings/Dynamics/Joints/b2RopeJointJsBindings.h b/liquidfun/Box2D/lfjs/jsBindings/Dynamics/Joints/b2RopeJointJsBindings.h index b0e66dc03..b14cb046a 100644 --- a/liquidfun/Box2D/lfjs/jsBindings/Dynamics/Joints/b2RopeJointJsBindings.h +++ b/liquidfun/Box2D/lfjs/jsBindings/Dynamics/Joints/b2RopeJointJsBindings.h @@ -2,6 +2,9 @@ #define B2ROPEJOINTJSBINDINGS_H extern "C" { +void b2RopeJoint_SetMaxLength(void* joint, double length); +double b2RopeJoint_GetLimitState(void* joint); + void* b2RopeJointDef_Create( void* world, // joint def diff --git a/liquidfun/Box2D/lfjs/jsBindings/Dynamics/Joints/b2WeldJoint.js b/liquidfun/Box2D/lfjs/jsBindings/Dynamics/Joints/b2WeldJoint.js index efbb8911b..9583d92e5 100644 --- a/liquidfun/Box2D/lfjs/jsBindings/Dynamics/Joints/b2WeldJoint.js +++ b/liquidfun/Box2D/lfjs/jsBindings/Dynamics/Joints/b2WeldJoint.js @@ -33,7 +33,7 @@ function b2WeldJointDef() { this.referenceAngle = 0; } -b2WeldJointDef.prototype.Create = function(world) { +b2WeldJointDef.prototype.Create = function (world) { var weldJoint = new b2WeldJoint(this); weldJoint.ptr = b2WeldJointDef_Create( world.ptr, @@ -46,7 +46,7 @@ b2WeldJointDef.prototype.Create = function(world) { return weldJoint; }; -b2WeldJointDef.prototype.InitializeAndCreate = function(bodyA, bodyB, anchor) { +b2WeldJointDef.prototype.InitializeAndCreate = function (bodyA, bodyB, anchor) { this.bodyA = bodyA; this.bodyB = bodyB; var weldJoint = new b2WeldJoint(this); @@ -63,10 +63,24 @@ b2WeldJointDef.prototype.InitializeAndCreate = function(bodyA, bodyB, anchor) { return weldJoint; }; +var b2WeldJoint_SetFrequency = Module.cwrap('b2WeldJoint_SetFrequency', 'null', ['number', 'number']); +var b2WeldJoint_SetDampingRatio = Module.cwrap('b2WeldJoint_SetDampingRatio', 'null', ['number', 'number']); + /** @constructor */ function b2WeldJoint(def) { - this.bodyA = def.bodyA; - this.bodyB = def.bodyB; - this.next = null; - this.ptr = null; -} \ No newline at end of file + b2Joint.call(this, def); + this.referenceAngle = def.referenceAngle; + this.frequencyHz = def.frequencyHz; + this.dampingRatio = def.dampingRatio; +} +b2WeldJoint.prototype = Object.create(b2Joint.prototype); +b2WeldJoint.prototype.constructor = b2WeldJoint; + +b2WeldJoint.prototype.SetFrequency = function (hz) { + b2WeldJoint_SetFrequency(this.ptr, hz); + this.frequencyHz = hz; +} +b2WeldJoint.prototype.SetDampingRatio = function (ratio) { + b2WeldJoint_SetDampingRatio(this.ptr, ratio); + this.dampingRatio = ratio; +} diff --git a/liquidfun/Box2D/lfjs/jsBindings/Dynamics/Joints/b2WeldJointJsBindings.cpp b/liquidfun/Box2D/lfjs/jsBindings/Dynamics/Joints/b2WeldJointJsBindings.cpp index d7d6cfcd2..1ccc68689 100644 --- a/liquidfun/Box2D/lfjs/jsBindings/Dynamics/Joints/b2WeldJointJsBindings.cpp +++ b/liquidfun/Box2D/lfjs/jsBindings/Dynamics/Joints/b2WeldJointJsBindings.cpp @@ -1,4 +1,11 @@ #include +void b2WeldJoint_SetFrequency(void* joint, double hz) { + ((b2WeldJoint*)joint)->SetFrequency(hz); +} +void b2WeldJoint_SetDampingRatio(void* joint, double ratio) { + ((b2WeldJoint*)joint)->SetDampingRatio(ratio); +} + void* b2WeldJointDef_Create( void* world, // joint def diff --git a/liquidfun/Box2D/lfjs/jsBindings/Dynamics/Joints/b2WeldJointJsBindings.h b/liquidfun/Box2D/lfjs/jsBindings/Dynamics/Joints/b2WeldJointJsBindings.h index 879d791a8..ef99f7898 100644 --- a/liquidfun/Box2D/lfjs/jsBindings/Dynamics/Joints/b2WeldJointJsBindings.h +++ b/liquidfun/Box2D/lfjs/jsBindings/Dynamics/Joints/b2WeldJointJsBindings.h @@ -2,6 +2,9 @@ #define B2WELDJOINTJSBINDINGS_H extern "C" { +void b2WeldJoint_SetFrequency(void* joint, double hz); +void b2WeldJoint_SetDampingRatio(void* joint, double ratio); + void* b2WeldJointDef_Create( void* world, // joint def diff --git a/liquidfun/Box2D/lfjs/jsBindings/Dynamics/Joints/b2WheelJoint.js b/liquidfun/Box2D/lfjs/jsBindings/Dynamics/Joints/b2WheelJoint.js index 5976cbf58..1d939bf8c 100644 --- a/liquidfun/Box2D/lfjs/jsBindings/Dynamics/Joints/b2WheelJoint.js +++ b/liquidfun/Box2D/lfjs/jsBindings/Dynamics/Joints/b2WheelJoint.js @@ -4,20 +4,67 @@ var b2WheelJoint_SetMotorSpeed = var b2WheelJoint_SetSpringFrequencyHz = Module.cwrap('b2WheelJoint_SetSpringFrequencyHz', 'null', ['number', 'number']); +var b2WheelJoint_GetLocalAxisA = Module.cwrap('b2WheelJoint_GetLocalAxisA', 'null', ['number', 'number']); +var b2WheelJoint_GetJointTranslation = Module.cwrap('b2WheelJoint_GetJointTranslation', 'number', ['number']); +var b2WheelJoint_GetJointSpeed = Module.cwrap('b2WheelJoint_GetJointSpeed', 'number', ['number']); +var b2WheelJoint_IsMotorEnabled = Module.cwrap('b2WheelJoint_IsMotorEnabled', 'number', ['number']); +var b2WheelJoint_EnableMotor = Module.cwrap('b2WheelJoint_EnableMotor', 'null', ['number', 'number']); +var b2WheelJoint_GetMotorSpeed = Module.cwrap('b2WheelJoint_GetMotorSpeed', 'number', ['number']); +var b2WheelJoint_SetMaxMotorTorque = Module.cwrap('b2WheelJoint_SetMaxMotorTorque', 'null', ['number', 'number']); +var b2WheelJoint_GetMotorTorque = Module.cwrap('b2WheelJoint_GetMotorTorque', 'number', ['number', 'number']); +var b2WheelJoint_SetSpringDampingRatio = Module.cwrap('b2WheelJoint_SetSpringDampingRatio', 'null', ['number', 'number']); + /**@constructor*/ function b2WheelJoint(def) { - this.next = null; - this.ptr = null; + b2Joint.call(this, def); + this.maxMotorTorque = def.maxMotorTorque; + this.frequencyHz = def.frequencyHz; + this.dampingRatio = def.dampingRatio; } +b2WheelJoint.prototype = Object.create(b2Joint.prototype); +b2WheelJoint.prototype.constructor = b2WheelJoint; -b2WheelJoint.prototype.SetMotorSpeed = function(speed) { +b2WheelJoint.prototype.SetMotorSpeed = function (speed) { b2WheelJoint_SetMotorSpeed(this.ptr, speed); }; -b2WheelJoint.prototype.SetSpringFrequencyHz = function(hz) { +b2WheelJoint.prototype.SetSpringFrequencyHz = function (hz) { b2WheelJoint_SetSpringFrequencyHz(this.ptr, hz); + this.frequencyHz = hz; }; +b2WheelJoint.prototype.GetLocalAxisA = function () { + b2WheelJoint_GetLocalAxisA(this.ptr, _vec2Buf.byteOffset); + var result = new Float32Array(_vec2Buf.buffer, _vec2Buf.byteOffset, _vec2Buf.length); + return new b2Vec2(result[0], result[1]); +} +b2WheelJoint.prototype.GetJointTranslation = function () { + return b2WheelJoint_GetJointTranslation(this.ptr); +} +b2WheelJoint.prototype.GetJointSpeed = function () { + return b2WheelJoint_GetJointSpeed(this.ptr); +} +b2WheelJoint.prototype.IsMotorEnabled = function () { + return b2WheelJoint_IsMotorEnabled(this.ptr); +} +b2WheelJoint.prototype.EnableMotor = function (flag) { + b2WheelJoint_EnableMotor(this.ptr, flag); +} +b2WheelJoint.prototype.GetMotorSpeed = function () { + return b2WheelJoint_GetMotorSpeed(this.ptr); +} +b2WheelJoint.prototype.SetMaxMotorTorque = function (torque) { + b2WheelJoint_SetMaxMotorTorque(this.ptr, torque); + this.maxMotorTorque = torque; +} +b2WheelJoint.prototype.GetMotorTorque = function (inv_dt) { + return b2WheelJoint_GetMotorTorque(this.ptr, inv_dt); +} +b2WheelJoint.prototype.SetSpringDampingRatio = function (ratio) { + b2WheelJoint_SetSpringDampingRatio(this.ptr, ratio); + this.dampingRatio = ratio; +} + // wheeljoint def var b2WheelJointDef_Create = Module.cwrap("b2WheelJointDef_Create", 'number', @@ -60,7 +107,7 @@ function b2WheelJointDef() { this.motorSpeed = 0; } -b2WheelJointDef.prototype.Create = function(world) { +b2WheelJointDef.prototype.Create = function (world) { var wheelJoint = new b2WheelJoint(this); wheelJoint.ptr = b2WheelJointDef_Create( world.ptr, @@ -74,7 +121,7 @@ b2WheelJointDef.prototype.Create = function(world) { return wheelJoint; }; -b2WheelJointDef.prototype.InitializeAndCreate = function(bodyA, bodyB, anchor, axis) { +b2WheelJointDef.prototype.InitializeAndCreate = function (bodyA, bodyB, anchor, axis) { this.bodyA = bodyA; this.bodyB = bodyB; var wheelJoint = new b2WheelJoint(this); diff --git a/liquidfun/Box2D/lfjs/jsBindings/Dynamics/Joints/b2WheelJointJsBindings.cpp b/liquidfun/Box2D/lfjs/jsBindings/Dynamics/Joints/b2WheelJointJsBindings.cpp index 811c536a3..884549d42 100644 --- a/liquidfun/Box2D/lfjs/jsBindings/Dynamics/Joints/b2WheelJointJsBindings.cpp +++ b/liquidfun/Box2D/lfjs/jsBindings/Dynamics/Joints/b2WheelJointJsBindings.cpp @@ -8,6 +8,36 @@ void b2WheelJoint_SetSpringFrequencyHz(void* wheel, double frequency) { ((b2WheelJoint*)wheel)->SetSpringFrequencyHz(frequency); } +void b2WheelJoint_GetLocalAxisA(void* joint, float* arr) { + b2Vec2 axis = ((b2WheelJoint*)joint)->GetLocalAxisA(); + arr[0] = axis.x; + arr[1] = axis.y; +} +double b2WheelJoint_GetJointTranslation(void* joint) { + return ((b2WheelJoint*)joint)->GetJointTranslation(); +} +double b2WheelJoint_GetJointSpeed(void* joint) { + return ((b2WheelJoint*)joint)->GetJointSpeed(); +} +double b2WheelJoint_IsMotorEnabled(void* joint) { + return ((b2WheelJoint*)joint)->IsMotorEnabled(); +} +void b2WheelJoint_EnableMotor(void* joint, double flag) { + ((b2WheelJoint*)joint)->EnableMotor((bool)flag); +} +double b2WheelJoint_GetMotorSpeed(void* joint) { + return ((b2WheelJoint*)joint)->GetMotorSpeed(); +} +void b2WheelJoint_SetMaxMotorTorque(void* joint, double torque) { + ((b2WheelJoint*)joint)->SetMaxMotorTorque(torque); +} +double b2WheelJoint_GetMotorTorque(void* joint, double inv_dt) { + return ((b2WheelJoint*)joint)->GetMotorTorque(inv_dt); +} +void b2WheelJoint_SetSpringDampingRatio(void* joint, double ratio) { + ((b2WheelJoint*)joint)->SetSpringDampingRatio(ratio); +} + void* b2WheelJointDef_Create( void* world, // joint def diff --git a/liquidfun/Box2D/lfjs/jsBindings/Dynamics/Joints/b2WheelJointJsBindings.h b/liquidfun/Box2D/lfjs/jsBindings/Dynamics/Joints/b2WheelJointJsBindings.h index 14dc59222..032c169c1 100644 --- a/liquidfun/Box2D/lfjs/jsBindings/Dynamics/Joints/b2WheelJointJsBindings.h +++ b/liquidfun/Box2D/lfjs/jsBindings/Dynamics/Joints/b2WheelJointJsBindings.h @@ -5,6 +5,16 @@ extern "C" { void b2WheelJoint_SetMotorSpeed(void* wheel, double speed); void b2WheelJoint_SetSpringFrequencyHz(void* wheel, double frequency); +void b2WheelJoint_GetLocalAxisA(void* joint, float* arr); +double b2WheelJoint_GetJointTranslation(void* joint); +double b2WheelJoint_GetJointSpeed(void* joint); +double b2WheelJoint_IsMotorEnabled(void* joint); +void b2WheelJoint_EnableMotor(void* joint, double flag); +double b2WheelJoint_GetMotorSpeed(void* joint); +void b2WheelJoint_SetMaxMotorTorque(void* joint, double torque); +double b2WheelJoint_GetMotorTorque(void* joint, double inv_dt); +void b2WheelJoint_SetSpringDampingRatio(void* joint, double ratio); + void* b2WheelJointDef_Create( void* world, // joint def diff --git a/liquidfun/Box2D/lfjs/jsBindings/Dynamics/b2Body.js b/liquidfun/Box2D/lfjs/jsBindings/Dynamics/b2Body.js index 914f1d1c5..8f31a320b 100644 --- a/liquidfun/Box2D/lfjs/jsBindings/Dynamics/b2Body.js +++ b/liquidfun/Box2D/lfjs/jsBindings/Dynamics/b2Body.js @@ -55,17 +55,17 @@ var b2Body_SetAngularVelocity = Module.cwrap('b2Body_SetAngularVelocity', 'null' ['number', 'number']); var b2Body_SetAwake = - Module.cwrap('b2Body_SetAwake', 'number',['number', 'number']); + Module.cwrap('b2Body_SetAwake', 'number', ['number', 'number']); var b2Body_SetFixedRotation = - Module.cwrap('b2Body_SetFixedRotation', 'number',['number', 'number']); + Module.cwrap('b2Body_SetFixedRotation', 'number', ['number', 'number']); var b2Body_SetLinearVelocity = Module.cwrap('b2Body_SetLinearVelocity', 'null', ['number', 'number', 'number']); var b2Body_SetMassData = Module.cwrap('b2Body_SetMassData', 'null', ['number', 'number', 'number', - 'number', 'number']); + 'number', 'number']); var b2Body_SetTransform = Module.cwrap('b2Body_SetTransform', 'null', ['number', 'number', 'number']); @@ -76,6 +76,19 @@ var b2Body_SetType = var b2Body_SetGravityScale = Module.cwrap('b2Body_SetGravityScale', 'null', ['number', 'number']); var b2Body_GetGravityScale = Module.cwrap('b2Body_GetGravityScale', 'number', ['number']); +var b2Body_SetLinearDamping = Module.cwrap('b2Body_SetLinearDamping', 'null', ['number', 'number']); +var b2Body_GetLinearDamping = Module.cwrap('b2Body_GetLinearDamping', 'number', ['number']); +var b2Body_SetAngularDamping = Module.cwrap('b2Body_SetAngularDamping', 'null', ['number', 'number']); +var b2Body_GetAngularDamping = Module.cwrap('b2Body_GetAngularDamping', 'number', ['number']); +var b2Body_IsAwake = Module.cwrap('b2Body_IsAwake', 'boolean', ['number']); +var b2Body_SetBullet = Module.cwrap('b2Body_SetBullet', 'null', ['number', 'number']); +var b2Body_IsBullet = Module.cwrap('b2Body_IsBullet', 'boolean', ['number']); +var b2Body_SetSleepingAllowed = Module.cwrap('b2Body_SetSleepingAllowed', 'null', ['number', 'number']); +var b2Body_IsSleepingAllowed = Module.cwrap('b2Body_IsSleepingAllowed', 'boolean', ['number']); +var b2Body_SetActive = Module.cwrap('b2Body_SetActive', 'null', ['number', 'number']); +var b2Body_IsActive = Module.cwrap('b2Body_IsActive', 'boolean', ['number']); +var boBody_IsFixedRotation = Module.cwrap('boBody_IsFixedRotation', 'boolean', ['number']); + // memory offsets var b2Body_xf_offset = Offsets.b2Body.xf; var b2Body_userData_offset = Offsets.b2Body.userData; @@ -86,27 +99,27 @@ function b2Body(ptr) { this.fixtures = []; } -b2Body.prototype.ApplyAngularImpulse = function(impulse, wake) { +b2Body.prototype.ApplyAngularImpulse = function (impulse, wake) { b2Body_ApplyAngularImpulse(this.ptr, impulse, wake); }; -b2Body.prototype.ApplyLinearImpulse = function(impulse, point, wake) { +b2Body.prototype.ApplyLinearImpulse = function (impulse, point, wake) { b2Body_ApplyLinearImpulse(this.ptr, impulse.x, impulse.y, point.x, point.y, wake); }; -b2Body.prototype.ApplyForce = function(force, point, wake) { +b2Body.prototype.ApplyForce = function (force, point, wake) { b2Body_ApplyForce(this.ptr, force.x, force.y, point.x, point.y, wake); }; -b2Body.prototype.ApplyForceToCenter = function(force, wake) { +b2Body.prototype.ApplyForceToCenter = function (force, wake) { b2Body_ApplyForceToCenter(this.ptr, force.x, force.y, wake); }; -b2Body.prototype.ApplyTorque = function(force, wake) { +b2Body.prototype.ApplyTorque = function (force, wake) { b2Body_ApplyTorque(this.ptr, force, wake); }; -b2Body.prototype.CreateFixtureFromDef = function(fixtureDef) { +b2Body.prototype.CreateFixtureFromDef = function (fixtureDef) { var fixture = new b2Fixture(); fixture.FromFixtureDef(fixtureDef); fixture._SetPtr(fixtureDef.shape._CreateFixture(this, fixtureDef)); @@ -117,131 +130,177 @@ b2Body.prototype.CreateFixtureFromDef = function(fixtureDef) { return fixture; }; -b2Body.prototype.CreateFixtureFromShape = function(shape, density) { +b2Body.prototype.CreateFixtureFromShape = function (shape, density) { var fixtureDef = new b2FixtureDef(); fixtureDef.shape = shape; fixtureDef.density = density; return this.CreateFixtureFromDef(fixtureDef); }; -b2Body.prototype.DestroyFixture = function(fixture) { +b2Body.prototype.DestroyFixture = function (fixture) { b2Body_DestroyFixture(this.ptr, fixture.ptr); b2World._RemoveItem(fixture, this.fixtures); }; -b2Body.prototype.GetAngle = function() { +b2Body.prototype.GetAngle = function () { return b2Body_GetAngle(this.ptr); }; -b2Body.prototype.GetAngularVelocity = function() { +b2Body.prototype.GetAngularVelocity = function () { return b2Body_GetAngularVelocity(this.ptr); }; -b2Body.prototype.GetInertia = function() { +b2Body.prototype.GetInertia = function () { return b2Body_GetInertia(this.ptr); }; -b2Body.prototype.GetMass = function() { +b2Body.prototype.GetMass = function () { return b2Body_GetMass(this.ptr); }; -b2Body.prototype.GetLinearVelocity = function() { +b2Body.prototype.GetLinearVelocity = function () { b2Body_GetLinearVelocity(this.ptr, _vec2Buf.byteOffset); var result = new Float32Array(_vec2Buf.buffer, _vec2Buf.byteOffset, _vec2Buf.length); return new b2Vec2(result[0], result[1]); }; -b2Body.prototype.GetLocalPoint = function(vec) { +b2Body.prototype.GetLocalPoint = function (vec) { b2Body_GetLocalPoint(this.ptr, vec.x, vec.y, _vec2Buf.byteOffset); var result = new Float32Array(_vec2Buf.buffer, _vec2Buf.byteOffset, _vec2Buf.length); return new b2Vec2(result[0], result[1]); }; -b2Body.prototype.GetLocalVector = function(vec) { +b2Body.prototype.GetLocalVector = function (vec) { b2Body_GetLocalVector(this.ptr, vec.x, vec.y, _vec2Buf.byteOffset); var result = new Float32Array(_vec2Buf.buffer, _vec2Buf.byteOffset, _vec2Buf.length); return new b2Vec2(result[0], result[1]); }; -b2Body.prototype.GetPosition = function() { +b2Body.prototype.GetPosition = function () { b2Body_GetPosition(this.ptr, _vec2Buf.byteOffset); var result = new Float32Array(_vec2Buf.buffer, _vec2Buf.byteOffset, _vec2Buf.length); - return new b2Vec2(result[0], result[1]); + return new b2Vec2(result[0], result[1]); }; -b2Body.prototype.GetTransform = function() { +b2Body.prototype.GetTransform = function () { var transform = new b2Transform(); transform.p.x = this.buffer.getFloat32(b2Body_xf_offset, true); - transform.p.y = this.buffer.getFloat32(b2Body_xf_offset+4, true); - transform.q.s = this.buffer.getFloat32(b2Body_xf_offset+8, true); - transform.q.c = this.buffer.getFloat32(b2Body_xf_offset+12, true); + transform.p.y = this.buffer.getFloat32(b2Body_xf_offset + 4, true); + transform.q.s = this.buffer.getFloat32(b2Body_xf_offset + 8, true); + transform.q.c = this.buffer.getFloat32(b2Body_xf_offset + 12, true); return transform; }; -b2Body.prototype.GetType = function() { +b2Body.prototype.GetType = function () { return b2Body_GetType(this.ptr); }; -b2Body.prototype.GetUserData = function() { +b2Body.prototype.GetUserData = function () { return this.buffer.getUint32(b2Body_userData_offset, true); }; -b2Body.prototype.GetWorldCenter = function() { +b2Body.prototype.GetWorldCenter = function () { b2Body_GetWorldCenter(this.ptr, _vec2Buf.byteOffset); var result = new Float32Array(_vec2Buf.buffer, _vec2Buf.byteOffset, _vec2Buf.length); return new b2Vec2(result[0], result[1]); }; -b2Body.prototype.GetWorldPoint = function(vec) { +b2Body.prototype.GetWorldPoint = function (vec) { b2Body_GetWorldPoint(this.ptr, vec.x, vec.y, _vec2Buf.byteOffset); var result = new Float32Array(_vec2Buf.buffer, _vec2Buf.byteOffset, _vec2Buf.length); return new b2Vec2(result[0], result[1]); }; -b2Body.prototype.GetWorldVector = function(vec) { +b2Body.prototype.GetWorldVector = function (vec) { b2Body_GetWorldVector(this.ptr, vec.x, vec.y, _vec2Buf.byteOffset); var result = new Float32Array(_vec2Buf.buffer, _vec2Buf.byteOffset, _vec2Buf.length); return new b2Vec2(result[0], result[1]); }; -b2Body.prototype.SetAngularVelocity = function(angle) { +b2Body.prototype.SetAngularVelocity = function (angle) { b2Body_SetAngularVelocity(this.ptr, angle); }; -b2Body.prototype.SetAwake = function(flag) { +b2Body.prototype.SetAwake = function (flag) { b2Body_SetAwake(this.ptr, flag); }; -b2Body.prototype.SetFixedRotation = function(flag) { +b2Body.prototype.SetFixedRotation = function (flag) { b2Body_SetFixedRotation(this.ptr, flag); }; -b2Body.prototype.SetLinearVelocity = function(v) { +b2Body.prototype.SetLinearVelocity = function (v) { b2Body_SetLinearVelocity(this.ptr, v.x, v.y); }; -b2Body.prototype.SetMassData = function(massData) { +b2Body.prototype.SetMassData = function (massData) { b2Body_SetMassData(this.ptr, massData.mass, massData.center.x, massData.center.y, massData.I); }; -b2Body.prototype.SetTransform = function(v, angle) { +b2Body.prototype.SetTransform = function (v, angle) { b2Body_SetTransform(this.ptr, v.x, v.y, angle); }; -b2Body.prototype.SetType = function(type) { +b2Body.prototype.SetType = function (type) { b2Body_SetType(this.ptr, type); }; -b2Body.prototype.SetGravityScale = function(scale) { +b2Body.prototype.SetGravityScale = function (scale) { b2Body_SetGravityScale(this.ptr, scale); }; -b2Body.prototype.GetGravityScale = function() { +b2Body.prototype.GetGravityScale = function () { return b2Body_GetGravityScale(this.ptr); }; +b2Body.prototype.SetLinearDamping = function (linearDamping) { + b2Body_SetLinearDamping(this.ptr, linearDamping); +} + +b2Body.prototype.GetLinearDamping = function () { + return b2Body_GetLinearDamping(this.ptr); +} + +b2Body.prototype.SetAngularDamping = function (angularDamping) { + b2Body_SetAngularDamping(this.ptr, angularDamping); +} + +b2Body.prototype.GetAngularDamping = function () { + return b2Body_GetAngularDamping(this.ptr); +} + +b2Body.prototype.IsAwake = function () { + return b2Body_IsAwake(this.ptr); +} + +b2Body.prototype.SetBullet = function (flag) { + b2Body_SetBullet(this.ptr, flag); +} + +b2Body.prototype.IsBullet = function () { + return b2Body_IsBullet(this.ptr); +} + +b2Body.prototype.SetSleepingAllowed = function (flag) { + b2Body_SetSleepingAllowed(this.ptr, flag); +} + +b2Body.prototype.IsSleepingAllowed = function () { + return b2Body_IsSleepingAllowed(this.ptr); +} + +b2Body.prototype.SetActive = function (flag) { + b2Body_SetActive(this.ptr, flag); +} +b2Body.prototype.IsActive = function () { + return b2Body_IsActive(this.ptr); +} + +b2Body.prototype.IsFixedRotation = function () { + return boBody_IsFixedRotation(this.ptr); +} // General body globals var b2_staticBody = 0; diff --git a/liquidfun/Box2D/lfjs/jsBindings/Dynamics/b2BodyJsBindings.cpp b/liquidfun/Box2D/lfjs/jsBindings/Dynamics/b2BodyJsBindings.cpp index f43699c0b..4a9299350 100644 --- a/liquidfun/Box2D/lfjs/jsBindings/Dynamics/b2BodyJsBindings.cpp +++ b/liquidfun/Box2D/lfjs/jsBindings/Dynamics/b2BodyJsBindings.cpp @@ -136,4 +136,41 @@ void b2Body_SetGravityScale(void* body, double scale) { } double b2Body_GetGravityScale(void* body) { return ((b2Body*)body)->GetGravityScale(); +} + +void b2Body_SetLinearDamping(void* body, double linearDamping) { + ((b2Body*)body)->SetLinearDamping(linearDamping); +} +double b2Body_GetLinearDamping(void* body) { + return ((b2Body*)body)->GetLinearDamping(); +} +void b2Body_SetAngularDamping(void* body, double angularDamping) { + ((b2Body*)body)->SetAngularDamping(angularDamping); +} +double b2Body_GetAngularDamping(void* body) { + return ((b2Body*)body)->GetAngularDamping(); +} +bool b2Body_IsAwake(void* body) { + return ((b2Body*)body)->IsAwake(); +} +void b2Body_SetBullet(void* body, double flag) { + ((b2Body*)body)->SetBullet(flag); +} +bool b2Body_IsBullet(void* body) { + return ((b2Body*)body)->IsBullet(); +} +void b2Body_SetSleepingAllowed(void* body, double flag) { + ((b2Body*)body)->SetSleepingAllowed(flag); +} +bool b2Body_IsSleepingAllowed(void* body) { + return ((b2Body*)body)->IsSleepingAllowed(); +} +void b2Body_SetActive(void* body, double flag) { + ((b2Body*)body)->SetActive(flag); +} +bool b2Body_IsActive(void* body) { + return ((b2Body*)body)->IsActive(); +} +bool boBody_IsFixedRotation(void* body) { + return ((b2Body*)body)->IsFixedRotation(); } \ No newline at end of file diff --git a/liquidfun/Box2D/lfjs/jsBindings/Dynamics/b2BodyJsBindings.h b/liquidfun/Box2D/lfjs/jsBindings/Dynamics/b2BodyJsBindings.h index 6978115dd..f87ac7ba3 100644 --- a/liquidfun/Box2D/lfjs/jsBindings/Dynamics/b2BodyJsBindings.h +++ b/liquidfun/Box2D/lfjs/jsBindings/Dynamics/b2BodyJsBindings.h @@ -36,5 +36,18 @@ void b2Body_SetType(void* body, double type); void b2Body_SetGravityScale(void* body, double scale); double b2Body_GetGravityScale(void* body); + +void b2Body_SetLinearDamping(void* body, double linearDamping); +double b2Body_GetLinearDamping(void* body); +void b2Body_SetAngularDamping(void* body, double angularDamping); +double b2Body_GetAngularDamping(void* body); +bool b2Body_IsAwake(void* body); +void b2Body_SetBullet(void* body, double flag); +bool b2Body_IsBullet(void* body); +void b2Body_SetSleepingAllowed(void* body, double flag); +bool b2Body_IsSleepingAllowed(void* body); +void b2Body_SetActive(void* body, double flag); +bool b2Body_IsActive(void* body); +bool boBody_IsFixedRotation(void* body); } #endif diff --git a/liquidfun/Box2D/lfjs/jsBindings/Dynamics/b2Fixture.js b/liquidfun/Box2D/lfjs/jsBindings/Dynamics/b2Fixture.js index 5bfa6ffc1..35991da80 100644 --- a/liquidfun/Box2D/lfjs/jsBindings/Dynamics/b2Fixture.js +++ b/liquidfun/Box2D/lfjs/jsBindings/Dynamics/b2Fixture.js @@ -25,12 +25,12 @@ var b2Fixture_TestPoint = var b2Fixture_Refilter = Module.cwrap('b2Fixture_Refilter', 'null', ['number']); -b2Fixture.prototype._SetPtr = function(ptr) { +b2Fixture.prototype._SetPtr = function (ptr) { this.ptr = ptr; this.buffer = new DataView(Module.HEAPU8.buffer, ptr); }; -b2Fixture.prototype.FromFixtureDef = function(fixtureDef) { +b2Fixture.prototype.FromFixtureDef = function (fixtureDef) { this.density = fixtureDef.density; this.friction = fixtureDef.friction; this.isSensor = fixtureDef.isSensor; @@ -40,26 +40,26 @@ b2Fixture.prototype.FromFixtureDef = function(fixtureDef) { this.vertices = []; }; -b2Fixture.prototype.GetUserData = function() { +b2Fixture.prototype.GetUserData = function () { return this.buffer.getUint32(b2Fixture_userData_offset, true); }; -b2Fixture.prototype.SetFilterData = function(filter) { +b2Fixture.prototype.SetFilterData = function (filter) { this.buffer.setUint16(b2Fixture_filter_categoryBits_offset, filter.categoryBits, true); this.buffer.setUint16(b2Fixture_filter_maskBits_offset, filter.maskBits, true); this.buffer.setUint16(b2Fixture_filter_groupIndex_offset, filter.groupIndex, true); this.Refilter(); }; -b2Fixture.prototype.SetSensor = function(flag) { +b2Fixture.prototype.SetSensor = function (flag) { this.buffer.setUint32(b2Fixture_isSensor_offset, flag, true); }; -b2Fixture.prototype.Refilter = function() { +b2Fixture.prototype.Refilter = function () { b2Fixture_Refilter(this.ptr); }; -b2Fixture.prototype.TestPoint = function(p) { +b2Fixture.prototype.TestPoint = function (p) { return b2Fixture_TestPoint(this.ptr, p.x, p.y); }; diff --git a/liquidfun/Box2D/lfjs/jsBindings/Dynamics/b2World.js b/liquidfun/Box2D/lfjs/jsBindings/Dynamics/b2World.js index 5d1fc9a98..9b0335508 100644 --- a/liquidfun/Box2D/lfjs/jsBindings/Dynamics/b2World.js +++ b/liquidfun/Box2D/lfjs/jsBindings/Dynamics/b2World.js @@ -93,6 +93,7 @@ function b2World(gravity) { this.joints = []; this.listener = null; this.particleSystems = []; + this.gravity = gravity.Clone(); this.ptr = b2World_Create(gravity.x, gravity.y); this.queryAABBCallback = null; this.rayCastCallback = null; @@ -190,6 +191,7 @@ b2World.prototype.SetContactListener = function(listener) { }; b2World.prototype.SetGravity = function(gravity) { + this.gravity.Set(gravity.x, gravity.y); b2World_SetGravity(this.ptr, gravity.x, gravity.y); }; diff --git a/liquidfun/Box2D/lfjs/lf_core.js b/liquidfun/Box2D/lfjs/lf_core.js index 84baf2719..6a72362e0 100644 --- a/liquidfun/Box2D/lfjs/lf_core.js +++ b/liquidfun/Box2D/lfjs/lf_core.js @@ -1,19 +1,19 @@ -var Module;if(!Module)Module=(typeof Module!=="undefined"?Module:null)||{};var moduleOverrides={};for(var key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;if(Module["ENVIRONMENT"]){if(Module["ENVIRONMENT"]==="WEB"){ENVIRONMENT_IS_WEB=true}else if(Module["ENVIRONMENT"]==="WORKER"){ENVIRONMENT_IS_WORKER=true}else if(Module["ENVIRONMENT"]==="NODE"){ENVIRONMENT_IS_NODE=true}else if(Module["ENVIRONMENT"]==="SHELL"){ENVIRONMENT_IS_SHELL=true}else{throw new Error("The provided Module['ENVIRONMENT'] value is not valid. It must be one of: WEB|WORKER|NODE|SHELL.")}}else{ENVIRONMENT_IS_WEB=typeof window==="object";ENVIRONMENT_IS_WORKER=typeof importScripts==="function";ENVIRONMENT_IS_NODE=typeof process==="object"&&typeof require==="function"&&!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_WORKER;ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER}if(ENVIRONMENT_IS_NODE){if(!Module["print"])Module["print"]=console.log;if(!Module["printErr"])Module["printErr"]=console.warn;var nodeFS;var nodePath;Module["read"]=function shell_read(filename,binary){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);var ret=nodeFS["readFileSync"](filename);return binary?ret:ret.toString()};Module["readBinary"]=function readBinary(filename){var ret=Module["read"](filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};Module["load"]=function load(f){globalEval(read(f))};if(!Module["thisProgram"]){if(process["argv"].length>1){Module["thisProgram"]=process["argv"][1].replace(/\\/g,"/")}else{Module["thisProgram"]="unknown-program"}}Module["arguments"]=process["argv"].slice(2);if(typeof module!=="undefined"){module["exports"]=Module}process["on"]("uncaughtException",(function(ex){if(!(ex instanceof ExitStatus)){throw ex}}));Module["inspect"]=(function(){return"[Emscripten Module object]"})}else if(ENVIRONMENT_IS_SHELL){if(!Module["print"])Module["print"]=print;if(typeof printErr!="undefined")Module["printErr"]=printErr;if(typeof read!="undefined"){Module["read"]=read}else{Module["read"]=function shell_read(){throw"no read() available"}}Module["readBinary"]=function readBinary(f){if(typeof readbuffer==="function"){return new Uint8Array(readbuffer(f))}var data=read(f,"binary");assert(typeof data==="object");return data};if(typeof scriptArgs!="undefined"){Module["arguments"]=scriptArgs}else if(typeof arguments!="undefined"){Module["arguments"]=arguments}if(typeof quit==="function"){Module["quit"]=(function(status,toThrow){quit(status)})}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){Module["read"]=function shell_read(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){Module["readBinary"]=function readBinary(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}Module["readAsync"]=function readAsync(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function xhr_onload(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response)}else{onerror()}};xhr.onerror=onerror;xhr.send(null)};if(typeof arguments!="undefined"){Module["arguments"]=arguments}if(typeof console!=="undefined"){if(!Module["print"])Module["print"]=function shell_print(x){console.log(x)};if(!Module["printErr"])Module["printErr"]=function shell_printErr(x){console.warn(x)}}else{var TRY_USE_DUMP=false;if(!Module["print"])Module["print"]=TRY_USE_DUMP&&typeof dump!=="undefined"?(function(x){dump(x)}):(function(x){})}if(ENVIRONMENT_IS_WORKER){Module["load"]=importScripts}if(typeof Module["setWindowTitle"]==="undefined"){Module["setWindowTitle"]=(function(title){document.title=title})}}else{throw"Unknown runtime environment. Where are we?"}function globalEval(x){eval.call(null,x)}if(!Module["load"]&&Module["read"]){Module["load"]=function load(f){globalEval(Module["read"](f))}}if(!Module["print"]){Module["print"]=(function(){})}if(!Module["printErr"]){Module["printErr"]=Module["print"]}if(!Module["arguments"]){Module["arguments"]=[]}if(!Module["thisProgram"]){Module["thisProgram"]="./this.program"}if(!Module["quit"]){Module["quit"]=(function(status,toThrow){throw toThrow})}Module.print=Module["print"];Module.printErr=Module["printErr"];Module["preRun"]=[];Module["postRun"]=[];for(var key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=undefined;var Runtime={setTempRet0:(function(value){tempRet0=value;return value}),getTempRet0:(function(){return tempRet0}),stackSave:(function(){return STACKTOP}),stackRestore:(function(stackTop){STACKTOP=stackTop}),getNativeTypeSize:(function(type){switch(type){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:{if(type[type.length-1]==="*"){return Runtime.QUANTUM_SIZE}else if(type[0]==="i"){var bits=parseInt(type.substr(1));assert(bits%8===0);return bits/8}else{return 0}}}}),getNativeFieldSize:(function(type){return Math.max(Runtime.getNativeTypeSize(type),Runtime.QUANTUM_SIZE)}),STACK_ALIGN:16,prepVararg:(function(ptr,type){if(type==="double"||type==="i64"){if(ptr&7){assert((ptr&7)===4);ptr+=4}}else{assert((ptr&3)===0)}return ptr}),getAlignSize:(function(type,size,vararg){if(!vararg&&(type=="i64"||type=="double"))return 8;if(!type)return Math.min(size,8);return Math.min(size||(type?Runtime.getNativeFieldSize(type):0),Runtime.QUANTUM_SIZE)}),dynCall:(function(sig,ptr,args){if(args&&args.length){return Module["dynCall_"+sig].apply(null,[ptr].concat(args))}else{return Module["dynCall_"+sig].call(null,ptr)}}),functionPointers:[],addFunction:(function(func){for(var i=0;i>2];var end=(ret+size+15|0)&-16;HEAP32[DYNAMICTOP_PTR>>2]=end;if(end>=TOTAL_MEMORY){var success=enlargeMemory();if(!success){HEAP32[DYNAMICTOP_PTR>>2]=ret;return 0}}return ret}),alignMemory:(function(size,quantum){var ret=size=Math.ceil(size/(quantum?quantum:16))*(quantum?quantum:16);return ret}),makeBigInt:(function(low,high,unsigned){var ret=unsigned?+(low>>>0)+ +(high>>>0)*+4294967296:+(low>>>0)+ +(high|0)*+4294967296;return ret}),GLOBAL_BASE:8,QUANTUM_SIZE:4,__dummy__:0};Module["Runtime"]=Runtime;var ABORT=0;var EXITSTATUS=0;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}function getCFunc(ident){var func=Module["_"+ident];if(!func){try{func=eval("_"+ident)}catch(e){}}assert(func,"Cannot call unknown function "+ident+" (perhaps LLVM optimizations or closure removed it?)");return func}var cwrap,ccall;((function(){var JSfuncs={"stackSave":(function(){Runtime.stackSave()}),"stackRestore":(function(){Runtime.stackRestore()}),"arrayToC":(function(arr){var ret=Runtime.stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}),"stringToC":(function(str){var ret=0;if(str!==null&&str!==undefined&&str!==0){var len=(str.length<<2)+1;ret=Runtime.stackAlloc(len);stringToUTF8(str,ret,len)}return ret})};var toC={"string":JSfuncs["stringToC"],"array":JSfuncs["arrayToC"]};ccall=function ccallFunc(ident,returnType,argTypes,args,opts){var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i>0]=value;break;case"i8":HEAP8[ptr>>0]=value;break;case"i16":HEAP16[ptr>>1]=value;break;case"i32":HEAP32[ptr>>2]=value;break;case"i64":tempI64=[value>>>0,(tempDouble=value,+Math_abs(tempDouble)>=+1?tempDouble>+0?(Math_min(+Math_floor(tempDouble/+4294967296),+4294967295)|0)>>>0:~~+Math_ceil((tempDouble- +(~~tempDouble>>>0))/+4294967296)>>>0:0)],HEAP32[ptr>>2]=tempI64[0],HEAP32[ptr+4>>2]=tempI64[1];break;case"float":HEAPF32[ptr>>2]=value;break;case"double":HEAPF64[ptr>>3]=value;break;default:abort("invalid type for setValue: "+type)}}Module["setValue"]=setValue;function getValue(ptr,type,noSafe){type=type||"i8";if(type.charAt(type.length-1)==="*")type="i32";switch(type){case"i1":return HEAP8[ptr>>0];case"i8":return HEAP8[ptr>>0];case"i16":return HEAP16[ptr>>1];case"i32":return HEAP32[ptr>>2];case"i64":return HEAP32[ptr>>2];case"float":return HEAPF32[ptr>>2];case"double":return HEAPF64[ptr>>3];default:abort("invalid type for setValue: "+type)}return null}Module["getValue"]=getValue;var ALLOC_NORMAL=0;var ALLOC_STACK=1;var ALLOC_STATIC=2;var ALLOC_DYNAMIC=3;var ALLOC_NONE=4;Module["ALLOC_NORMAL"]=ALLOC_NORMAL;Module["ALLOC_STACK"]=ALLOC_STACK;Module["ALLOC_STATIC"]=ALLOC_STATIC;Module["ALLOC_DYNAMIC"]=ALLOC_DYNAMIC;Module["ALLOC_NONE"]=ALLOC_NONE;function allocate(slab,types,allocator,ptr){var zeroinit,size;if(typeof slab==="number"){zeroinit=true;size=slab}else{zeroinit=false;size=slab.length}var singleType=typeof types==="string"?types:null;var ret;if(allocator==ALLOC_NONE){ret=ptr}else{ret=[typeof _malloc==="function"?_malloc:Runtime.staticAlloc,Runtime.stackAlloc,Runtime.staticAlloc,Runtime.dynamicAlloc][allocator===undefined?ALLOC_STATIC:allocator](Math.max(size,singleType?1:types.length))}if(zeroinit){var ptr=ret,stop;assert((ret&3)==0);stop=ret+(size&~3);for(;ptr>2]=0}stop=ret+size;while(ptr>0]=0}return ret}if(singleType==="i8"){if(slab.subarray||slab.slice){HEAPU8.set(slab,ret)}else{HEAPU8.set(new Uint8Array(slab),ret)}return ret}var i=0,type,typeSize,previousType;while(i>0];hasUtf|=t;if(t==0&&!length)break;i++;if(length&&i==length)break}if(!length)length=i;var ret="";if(hasUtf<128){var MAX_CHUNK=1024;var curr;while(length>0){curr=String.fromCharCode.apply(String,HEAPU8.subarray(ptr,ptr+Math.min(length,MAX_CHUNK)));ret=ret?ret+curr:curr;ptr+=MAX_CHUNK;length-=MAX_CHUNK}return ret}return Module["UTF8ToString"](ptr)}Module["Pointer_stringify"]=Pointer_stringify;function AsciiToString(ptr){var str="";while(1){var ch=HEAP8[ptr++>>0];if(!ch)return str;str+=String.fromCharCode(ch)}}Module["AsciiToString"]=AsciiToString;function stringToAscii(str,outPtr){return writeAsciiToMemory(str,outPtr,false)}Module["stringToAscii"]=stringToAscii;var UTF8Decoder=typeof TextDecoder!=="undefined"?new TextDecoder("utf8"):undefined;function UTF8ArrayToString(u8Array,idx){var endPtr=idx;while(u8Array[endPtr])++endPtr;if(endPtr-idx>16&&u8Array.subarray&&UTF8Decoder){return UTF8Decoder.decode(u8Array.subarray(idx,endPtr))}else{var u0,u1,u2,u3,u4,u5;var str="";while(1){u0=u8Array[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue}u1=u8Array[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}u2=u8Array[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u3=u8Array[idx++]&63;if((u0&248)==240){u0=(u0&7)<<18|u1<<12|u2<<6|u3}else{u4=u8Array[idx++]&63;if((u0&252)==248){u0=(u0&3)<<24|u1<<18|u2<<12|u3<<6|u4}else{u5=u8Array[idx++]&63;u0=(u0&1)<<30|u1<<24|u2<<18|u3<<12|u4<<6|u5}}}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}}}Module["UTF8ArrayToString"]=UTF8ArrayToString;function UTF8ToString(ptr){return UTF8ArrayToString(HEAPU8,ptr)}Module["UTF8ToString"]=UTF8ToString;function stringToUTF8Array(str,outU8Array,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127){if(outIdx>=endIdx)break;outU8Array[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;outU8Array[outIdx++]=192|u>>6;outU8Array[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;outU8Array[outIdx++]=224|u>>12;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}else if(u<=2097151){if(outIdx+3>=endIdx)break;outU8Array[outIdx++]=240|u>>18;outU8Array[outIdx++]=128|u>>12&63;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}else if(u<=67108863){if(outIdx+4>=endIdx)break;outU8Array[outIdx++]=248|u>>24;outU8Array[outIdx++]=128|u>>18&63;outU8Array[outIdx++]=128|u>>12&63;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}else{if(outIdx+5>=endIdx)break;outU8Array[outIdx++]=252|u>>30;outU8Array[outIdx++]=128|u>>24&63;outU8Array[outIdx++]=128|u>>18&63;outU8Array[outIdx++]=128|u>>12&63;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}}outU8Array[outIdx]=0;return outIdx-startIdx}Module["stringToUTF8Array"]=stringToUTF8Array;function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}Module["stringToUTF8"]=stringToUTF8;function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127){++len}else if(u<=2047){len+=2}else if(u<=65535){len+=3}else if(u<=2097151){len+=4}else if(u<=67108863){len+=5}else{len+=6}}return len}Module["lengthBytesUTF8"]=lengthBytesUTF8;var UTF16Decoder=typeof TextDecoder!=="undefined"?new TextDecoder("utf-16le"):undefined;function demangle(func){var __cxa_demangle_func=Module["___cxa_demangle"]||Module["__cxa_demangle"];if(__cxa_demangle_func){try{var s=func.substr(1);var len=lengthBytesUTF8(s)+1;var buf=_malloc(len);stringToUTF8(s,buf,len);var status=_malloc(4);var ret=__cxa_demangle_func(buf,0,0,status);if(getValue(status,"i32")===0&&ret){return Pointer_stringify(ret)}}catch(e){}finally{if(buf)_free(buf);if(status)_free(status);if(ret)_free(ret)}return func}Runtime.warnOnce("warning: build with -s DEMANGLE_SUPPORT=1 to link in libcxxabi demangling");return func}function demangleAll(text){var regex=/__Z[\w\d_]+/g;return text.replace(regex,(function(x){var y=demangle(x);return x===y?x:x+" ["+y+"]"}))}function jsStackTrace(){var err=new Error;if(!err.stack){try{throw new Error(0)}catch(e){err=e}if(!err.stack){return"(no stack trace available)"}}return err.stack.toString()}function stackTrace(){var js=jsStackTrace();if(Module["extraStackTrace"])js+="\n"+Module["extraStackTrace"]();return demangleAll(js)}Module["stackTrace"]=stackTrace;var HEAP,buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferViews(){Module["HEAP8"]=HEAP8=new Int8Array(buffer);Module["HEAP16"]=HEAP16=new Int16Array(buffer);Module["HEAP32"]=HEAP32=new Int32Array(buffer);Module["HEAPU8"]=HEAPU8=new Uint8Array(buffer);Module["HEAPU16"]=HEAPU16=new Uint16Array(buffer);Module["HEAPU32"]=HEAPU32=new Uint32Array(buffer);Module["HEAPF32"]=HEAPF32=new Float32Array(buffer);Module["HEAPF64"]=HEAPF64=new Float64Array(buffer)}var STATIC_BASE,STATICTOP,staticSealed;var STACK_BASE,STACKTOP,STACK_MAX;var DYNAMIC_BASE,DYNAMICTOP_PTR;STATIC_BASE=STATICTOP=STACK_BASE=STACKTOP=STACK_MAX=DYNAMIC_BASE=DYNAMICTOP_PTR=0;staticSealed=false;function abortOnCannotGrowMemory(){abort("Cannot enlarge memory arrays. Either (1) compile with -s TOTAL_MEMORY=X with X higher than the current value "+TOTAL_MEMORY+", (2) compile with -s ALLOW_MEMORY_GROWTH=1 which allows increasing the size at runtime but prevents some optimizations, (3) set Module.TOTAL_MEMORY to a higher value before the program runs, or (4) if you want malloc to return NULL (0) instead of this abort, compile with -s ABORTING_MALLOC=0 ")}function enlargeMemory(){abortOnCannotGrowMemory()}var TOTAL_STACK=Module["TOTAL_STACK"]||5242880;var TOTAL_MEMORY=Module["TOTAL_MEMORY"]||33554432;if(TOTAL_MEMORY0){var callback=callbacks.shift();if(typeof callback=="function"){callback();continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){Module["dynCall_v"](func)}else{Module["dynCall_vi"](func,callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function ensureInitRuntime(){if(runtimeInitialized)return;runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){callRuntimeCallbacks(__ATEXIT__);runtimeExited=true}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}Module["addOnPreRun"]=addOnPreRun;function addOnInit(cb){__ATINIT__.unshift(cb)}Module["addOnInit"]=addOnInit;function addOnPreMain(cb){__ATMAIN__.unshift(cb)}Module["addOnPreMain"]=addOnPreMain;function addOnExit(cb){__ATEXIT__.unshift(cb)}Module["addOnExit"]=addOnExit;function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}Module["addOnPostRun"]=addOnPostRun;function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}Module["intArrayFromString"]=intArrayFromString;function intArrayToString(array){var ret=[];for(var i=0;i255){chr&=255}ret.push(String.fromCharCode(chr))}return ret.join("")}Module["intArrayToString"]=intArrayToString;function writeStringToMemory(string,buffer,dontAddNull){Runtime.warnOnce("writeStringToMemory is deprecated and should not be called! Use stringToUTF8() instead!");var lastChar,end;if(dontAddNull){end=buffer+lengthBytesUTF8(string);lastChar=HEAP8[end]}stringToUTF8(string,buffer,Infinity);if(dontAddNull)HEAP8[end]=lastChar}Module["writeStringToMemory"]=writeStringToMemory;function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}Module["writeArrayToMemory"]=writeArrayToMemory;function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}Module["writeAsciiToMemory"]=writeAsciiToMemory;if(!Math["imul"]||Math["imul"](4294967295,5)!==-5)Math["imul"]=function imul(a,b){var ah=a>>>16;var al=a&65535;var bh=b>>>16;var bl=b&65535;return al*bl+(ah*bl+al*bh<<16)|0};Math.imul=Math["imul"];if(!Math["clz32"])Math["clz32"]=(function(x){x=x>>>0;for(var i=0;i<32;i++){if(x&1<<31-i)return i}return 32});Math.clz32=Math["clz32"];if(!Math["trunc"])Math["trunc"]=(function(x){return x<0?Math.ceil(x):Math.floor(x)});Math.trunc=Math["trunc"];var Math_abs=Math.abs;var Math_cos=Math.cos;var Math_sin=Math.sin;var Math_tan=Math.tan;var Math_acos=Math.acos;var Math_asin=Math.asin;var Math_atan=Math.atan;var Math_atan2=Math.atan2;var Math_exp=Math.exp;var Math_log=Math.log;var Math_sqrt=Math.sqrt;var Math_ceil=Math.ceil;var Math_floor=Math.floor;var Math_pow=Math.pow;var Math_imul=Math.imul;var Math_fround=Math.fround;var Math_round=Math.round;var Math_min=Math.min;var Math_clz32=Math.clz32;var Math_trunc=Math.trunc;var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function addRunDependency(id){runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}Module["addRunDependency"]=addRunDependency;function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["removeRunDependency"]=removeRunDependency;Module["preloadedImages"]={};Module["preloadedAudios"]={};var memoryInitializer=null;var ASM_CONSTS=[];STATIC_BASE=Runtime.GLOBAL_BASE;STATICTOP=STATIC_BASE+11008;__ATINIT__.push({func:(function(){__GLOBAL__sub_I_jsBindings_cpp()})});memoryInitializer="lf_core.js.mem";var tempDoublePtr=STATICTOP;STATICTOP+=16;function _b2WorldRayCastCallback(fixturePtr,pointX,pointY,normalX,normalY,fraction){return b2World.RayCast(fixturePtr,pointX,pointY,normalX,normalY,fraction)}function _abort(){Module["abort"]()}function _b2WorldBeginContactBody(contactPtr){b2World.BeginContactBody(contactPtr)}function _pthread_once(ptr,func){if(!_pthread_once.seen)_pthread_once.seen={};if(ptr in _pthread_once.seen)return;Module["dynCall_v"](func);_pthread_once.seen[ptr]=1}function ___lock(){}function ___unlock(){}var PTHREAD_SPECIFIC={};function _pthread_getspecific(key){return PTHREAD_SPECIFIC[key]||0}var PTHREAD_SPECIFIC_NEXT_KEY=1;var ERRNO_CODES={EPERM:1,ENOENT:2,ESRCH:3,EINTR:4,EIO:5,ENXIO:6,E2BIG:7,ENOEXEC:8,EBADF:9,ECHILD:10,EAGAIN:11,EWOULDBLOCK:11,ENOMEM:12,EACCES:13,EFAULT:14,ENOTBLK:15,EBUSY:16,EEXIST:17,EXDEV:18,ENODEV:19,ENOTDIR:20,EISDIR:21,EINVAL:22,ENFILE:23,EMFILE:24,ENOTTY:25,ETXTBSY:26,EFBIG:27,ENOSPC:28,ESPIPE:29,EROFS:30,EMLINK:31,EPIPE:32,EDOM:33,ERANGE:34,ENOMSG:42,EIDRM:43,ECHRNG:44,EL2NSYNC:45,EL3HLT:46,EL3RST:47,ELNRNG:48,EUNATCH:49,ENOCSI:50,EL2HLT:51,EDEADLK:35,ENOLCK:37,EBADE:52,EBADR:53,EXFULL:54,ENOANO:55,EBADRQC:56,EBADSLT:57,EDEADLOCK:35,EBFONT:59,ENOSTR:60,ENODATA:61,ETIME:62,ENOSR:63,ENONET:64,ENOPKG:65,EREMOTE:66,ENOLINK:67,EADV:68,ESRMNT:69,ECOMM:70,EPROTO:71,EMULTIHOP:72,EDOTDOT:73,EBADMSG:74,ENOTUNIQ:76,EBADFD:77,EREMCHG:78,ELIBACC:79,ELIBBAD:80,ELIBSCN:81,ELIBMAX:82,ELIBEXEC:83,ENOSYS:38,ENOTEMPTY:39,ENAMETOOLONG:36,ELOOP:40,EOPNOTSUPP:95,EPFNOSUPPORT:96,ECONNRESET:104,ENOBUFS:105,EAFNOSUPPORT:97,EPROTOTYPE:91,ENOTSOCK:88,ENOPROTOOPT:92,ESHUTDOWN:108,ECONNREFUSED:111,EADDRINUSE:98,ECONNABORTED:103,ENETUNREACH:101,ENETDOWN:100,ETIMEDOUT:110,EHOSTDOWN:112,EHOSTUNREACH:113,EINPROGRESS:115,EALREADY:114,EDESTADDRREQ:89,EMSGSIZE:90,EPROTONOSUPPORT:93,ESOCKTNOSUPPORT:94,EADDRNOTAVAIL:99,ENETRESET:102,EISCONN:106,ENOTCONN:107,ETOOMANYREFS:109,EUSERS:87,EDQUOT:122,ESTALE:116,ENOTSUP:95,ENOMEDIUM:123,EILSEQ:84,EOVERFLOW:75,ECANCELED:125,ENOTRECOVERABLE:131,EOWNERDEAD:130,ESTRPIPE:86};function _pthread_key_create(key,destructor){if(key==0){return ERRNO_CODES.EINVAL}HEAP32[key>>2]=PTHREAD_SPECIFIC_NEXT_KEY;PTHREAD_SPECIFIC[PTHREAD_SPECIFIC_NEXT_KEY]=0;PTHREAD_SPECIFIC_NEXT_KEY++;return 0}function _pthread_setspecific(key,value){if(!(key in PTHREAD_SPECIFIC)){return ERRNO_CODES.EINVAL}PTHREAD_SPECIFIC[key]=value;return 0}var SYSCALLS={varargs:0,get:(function(varargs){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret}),getStr:(function(){var ret=Pointer_stringify(SYSCALLS.get());return ret}),get64:(function(){var low=SYSCALLS.get(),high=SYSCALLS.get();if(low>=0)assert(high===0);else assert(high===-1);return low}),getZero:(function(){assert(SYSCALLS.get()===0)})};function ___syscall54(which,varargs){SYSCALLS.varargs=varargs;try{return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___cxa_pure_virtual(){ABORT=true;throw"Pure virtual function called!"}function _b2WorldEndContactBody(contactPtr){b2World.EndContactBody(contactPtr)}function _b2WorldPreSolve(contactPtr,oldManifoldPtr){b2World.PreSolve(contactPtr,oldManifoldPtr)}function __ZSt18uncaught_exceptionv(){return!!__ZSt18uncaught_exceptionv.uncaught_exception}var EXCEPTIONS={last:0,caught:[],infos:{},deAdjust:(function(adjusted){if(!adjusted||EXCEPTIONS.infos[adjusted])return adjusted;for(var ptr in EXCEPTIONS.infos){var info=EXCEPTIONS.infos[ptr];if(info.adjusted===adjusted){return ptr}}return adjusted}),addRef:(function(ptr){if(!ptr)return;var info=EXCEPTIONS.infos[ptr];info.refcount++}),decRef:(function(ptr){if(!ptr)return;var info=EXCEPTIONS.infos[ptr];assert(info.refcount>0);info.refcount--;if(info.refcount===0&&!info.rethrown){if(info.destructor){Module["dynCall_vi"](info.destructor,ptr)}delete EXCEPTIONS.infos[ptr];___cxa_free_exception(ptr)}}),clearRef:(function(ptr){if(!ptr)return;var info=EXCEPTIONS.infos[ptr];info.refcount=0})};function ___cxa_begin_catch(ptr){var info=EXCEPTIONS.infos[ptr];if(info&&!info.caught){info.caught=true;__ZSt18uncaught_exceptionv.uncaught_exception--}if(info)info.rethrown=false;EXCEPTIONS.caught.push(ptr);EXCEPTIONS.addRef(EXCEPTIONS.deAdjust(ptr));return ptr}function _emscripten_memcpy_big(dest,src,num){HEAPU8.set(HEAPU8.subarray(src,src+num),dest);return dest}function ___syscall6(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD();FS.close(stream);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}var cttz_i8=allocate([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",ALLOC_STATIC);function _b2WorldQueryAABB(fixturePtr){return b2World.QueryAABB(fixturePtr)}function ___setErrNo(value){if(Module["___errno_location"])HEAP32[Module["___errno_location"]()>>2]=value;return value}function ___resumeException(ptr){if(!EXCEPTIONS.last){EXCEPTIONS.last=ptr}throw ptr+" - Exception catching is disabled, this exception cannot be caught. Compile with -s DISABLE_EXCEPTION_CATCHING=0 or DISABLE_EXCEPTION_CATCHING=2 to catch."}function ___cxa_find_matching_catch(){var thrown=EXCEPTIONS.last;if(!thrown){return(Runtime.setTempRet0(0),0)|0}var info=EXCEPTIONS.infos[thrown];var throwntype=info.type;if(!throwntype){return(Runtime.setTempRet0(0),thrown)|0}var typeArray=Array.prototype.slice.call(arguments);var pointer=Module["___cxa_is_pointer_type"](throwntype);if(!___cxa_find_matching_catch.buffer)___cxa_find_matching_catch.buffer=_malloc(4);HEAP32[___cxa_find_matching_catch.buffer>>2]=thrown;thrown=___cxa_find_matching_catch.buffer;for(var i=0;i>2];info.adjusted=thrown;return(Runtime.setTempRet0(typeArray[i]),thrown)|0}}thrown=HEAP32[thrown>>2];return(Runtime.setTempRet0(throwntype),thrown)|0}function ___gxx_personality_v0(){}function _b2WorldPostSolve(contactPtr,impulsePtr){b2World.PostSolve(contactPtr,impulsePtr)}function ___syscall140(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),offset_high=SYSCALLS.get(),offset_low=SYSCALLS.get(),result=SYSCALLS.get(),whence=SYSCALLS.get();var offset=offset_low;FS.llseek(stream,offset,whence);HEAP32[result>>2]=stream.position;if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall146(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.get(),iov=SYSCALLS.get(),iovcnt=SYSCALLS.get();var ret=0;if(!___syscall146.buffer){___syscall146.buffers=[null,[],[]];___syscall146.printChar=(function(stream,curr){var buffer=___syscall146.buffers[stream];assert(buffer);if(curr===0||curr===10){(stream===1?Module["print"]:Module["printErr"])(UTF8ArrayToString(buffer,0));buffer.length=0}else{buffer.push(curr)}})}for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];for(var j=0;j>2]=DYNAMIC_BASE;staticSealed=true;function invoke_diiiiid(index,a1,a2,a3,a4,a5,a6){try{return Module["dynCall_diiiiid"](index,a1,a2,a3,a4,a5,a6)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_ii(index,a1){try{return Module["dynCall_ii"](index,a1)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_viiiii(index,a1,a2,a3,a4,a5){try{Module["dynCall_viiiii"](index,a1,a2,a3,a4,a5)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_did(index,a1,a2){try{return Module["dynCall_did"](index,a1,a2)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_vi(index,a1){try{Module["dynCall_vi"](index,a1)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_diiiid(index,a1,a2,a3,a4,a5){try{return Module["dynCall_diiiid"](index,a1,a2,a3,a4,a5)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_vii(index,a1,a2){try{Module["dynCall_vii"](index,a1,a2)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_iiii(index,a1,a2,a3){try{return Module["dynCall_iiii"](index,a1,a2,a3)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_viii(index,a1,a2,a3){try{Module["dynCall_viii"](index,a1,a2,a3)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_v(index){try{Module["dynCall_v"](index)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_viid(index,a1,a2,a3){try{Module["dynCall_viid"](index,a1,a2,a3)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_iiiii(index,a1,a2,a3,a4){try{return Module["dynCall_iiiii"](index,a1,a2,a3,a4)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_viiiiii(index,a1,a2,a3,a4,a5,a6){try{Module["dynCall_viiiiii"](index,a1,a2,a3,a4,a5,a6)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_iii(index,a1,a2){try{return Module["dynCall_iii"](index,a1,a2)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_iiiiii(index,a1,a2,a3,a4,a5){try{return Module["dynCall_iiiiii"](index,a1,a2,a3,a4,a5)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_viiii(index,a1,a2,a3,a4){try{Module["dynCall_viiii"](index,a1,a2,a3,a4)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}Module.asmGlobalArg={"Math":Math,"Int8Array":Int8Array,"Int16Array":Int16Array,"Int32Array":Int32Array,"Uint8Array":Uint8Array,"Uint16Array":Uint16Array,"Uint32Array":Uint32Array,"Float32Array":Float32Array,"Float64Array":Float64Array,"NaN":NaN,"Infinity":Infinity};Module.asmLibraryArg={"abort":abort,"assert":assert,"enlargeMemory":enlargeMemory,"getTotalMemory":getTotalMemory,"abortOnCannotGrowMemory":abortOnCannotGrowMemory,"invoke_diiiiid":invoke_diiiiid,"invoke_ii":invoke_ii,"invoke_viiiii":invoke_viiiii,"invoke_did":invoke_did,"invoke_vi":invoke_vi,"invoke_diiiid":invoke_diiiid,"invoke_vii":invoke_vii,"invoke_iiii":invoke_iiii,"invoke_viii":invoke_viii,"invoke_v":invoke_v,"invoke_viid":invoke_viid,"invoke_iiiii":invoke_iiiii,"invoke_viiiiii":invoke_viiiiii,"invoke_iii":invoke_iii,"invoke_iiiiii":invoke_iiiiii,"invoke_viiii":invoke_viiii,"_pthread_key_create":_pthread_key_create,"_abort":_abort,"_b2WorldPreSolve":_b2WorldPreSolve,"___gxx_personality_v0":___gxx_personality_v0,"__ZSt18uncaught_exceptionv":__ZSt18uncaught_exceptionv,"___setErrNo":___setErrNo,"___cxa_begin_catch":___cxa_begin_catch,"_emscripten_memcpy_big":_emscripten_memcpy_big,"___resumeException":___resumeException,"___cxa_find_matching_catch":___cxa_find_matching_catch,"_b2WorldRayCastCallback":_b2WorldRayCastCallback,"_pthread_getspecific":_pthread_getspecific,"_pthread_once":_pthread_once,"___syscall140":___syscall140,"___syscall54":___syscall54,"___unlock":___unlock,"_b2WorldBeginContactBody":_b2WorldBeginContactBody,"_pthread_setspecific":_pthread_setspecific,"___lock":___lock,"___syscall6":___syscall6,"_b2WorldEndContactBody":_b2WorldEndContactBody,"_b2WorldQueryAABB":_b2WorldQueryAABB,"_b2WorldPostSolve":_b2WorldPostSolve,"___cxa_pure_virtual":___cxa_pure_virtual,"___syscall146":___syscall146,"DYNAMICTOP_PTR":DYNAMICTOP_PTR,"tempDoublePtr":tempDoublePtr,"ABORT":ABORT,"STACKTOP":STACKTOP,"STACK_MAX":STACK_MAX,"cttz_i8":cttz_i8};// EMSCRIPTEN_START_ASM +var Module;if(!Module)Module=(typeof Module!=="undefined"?Module:null)||{};var moduleOverrides={};for(var key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var ENVIRONMENT_IS_WEB=typeof window==="object";var ENVIRONMENT_IS_WORKER=typeof importScripts==="function";var ENVIRONMENT_IS_NODE=typeof process==="object"&&typeof require==="function"&&!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_WORKER;var ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;if(ENVIRONMENT_IS_NODE){if(!Module["print"])Module["print"]=function print(x){process["stdout"].write(x+"\n")};if(!Module["printErr"])Module["printErr"]=function printErr(x){process["stderr"].write(x+"\n")};var nodeFS=require("fs");var nodePath=require("path");Module["read"]=function read(filename,binary){filename=nodePath["normalize"](filename);var ret=nodeFS["readFileSync"](filename);if(!ret&&filename!=nodePath["resolve"](filename)){filename=path.join(__dirname,"..","src",filename);ret=nodeFS["readFileSync"](filename)}if(ret&&!binary)ret=ret.toString();return ret};Module["readBinary"]=function readBinary(filename){var ret=Module["read"](filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};Module["load"]=function load(f){globalEval(read(f))};if(!Module["thisProgram"]){if(process["argv"].length>1){Module["thisProgram"]=process["argv"][1].replace(/\\/g,"/")}else{Module["thisProgram"]="unknown-program"}}Module["arguments"]=process["argv"].slice(2);if(typeof module!=="undefined"){module["exports"]=Module}process["on"]("uncaughtException",(function(ex){if(!(ex instanceof ExitStatus)){throw ex}}));Module["inspect"]=(function(){return"[Emscripten Module object]"})}else if(ENVIRONMENT_IS_SHELL){if(!Module["print"])Module["print"]=print;if(typeof printErr!="undefined")Module["printErr"]=printErr;if(typeof read!="undefined"){Module["read"]=read}else{Module["read"]=function read(){throw"no read() available (jsc?)"}}Module["readBinary"]=function readBinary(f){if(typeof readbuffer==="function"){return new Uint8Array(readbuffer(f))}var data=read(f,"binary");assert(typeof data==="object");return data};if(typeof scriptArgs!="undefined"){Module["arguments"]=scriptArgs}else if(typeof arguments!="undefined"){Module["arguments"]=arguments}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){Module["read"]=function read(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(typeof arguments!="undefined"){Module["arguments"]=arguments}if(typeof console!=="undefined"){if(!Module["print"])Module["print"]=function print(x){console.log(x)};if(!Module["printErr"])Module["printErr"]=function printErr(x){console.log(x)}}else{var TRY_USE_DUMP=false;if(!Module["print"])Module["print"]=TRY_USE_DUMP&&typeof dump!=="undefined"?(function(x){dump(x)}):(function(x){})}if(ENVIRONMENT_IS_WORKER){Module["load"]=importScripts}if(typeof Module["setWindowTitle"]==="undefined"){Module["setWindowTitle"]=(function(title){document.title=title})}}else{throw"Unknown runtime environment. Where are we?"}function globalEval(x){eval.call(null,x)}if(!Module["load"]&&Module["read"]){Module["load"]=function load(f){globalEval(Module["read"](f))}}if(!Module["print"]){Module["print"]=(function(){})}if(!Module["printErr"]){Module["printErr"]=Module["print"]}if(!Module["arguments"]){Module["arguments"]=[]}if(!Module["thisProgram"]){Module["thisProgram"]="./this.program"}Module.print=Module["print"];Module.printErr=Module["printErr"];Module["preRun"]=[];Module["postRun"]=[];for(var key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}var Runtime={setTempRet0:(function(value){tempRet0=value}),getTempRet0:(function(){return tempRet0}),stackSave:(function(){return STACKTOP}),stackRestore:(function(stackTop){STACKTOP=stackTop}),getNativeTypeSize:(function(type){switch(type){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:{if(type[type.length-1]==="*"){return Runtime.QUANTUM_SIZE}else if(type[0]==="i"){var bits=parseInt(type.substr(1));assert(bits%8===0);return bits/8}else{return 0}}}}),getNativeFieldSize:(function(type){return Math.max(Runtime.getNativeTypeSize(type),Runtime.QUANTUM_SIZE)}),STACK_ALIGN:16,prepVararg:(function(ptr,type){if(type==="double"||type==="i64"){if(ptr&7){assert((ptr&7)===4);ptr+=4}}else{assert((ptr&3)===0)}return ptr}),getAlignSize:(function(type,size,vararg){if(!vararg&&(type=="i64"||type=="double"))return 8;if(!type)return Math.min(size,8);return Math.min(size||(type?Runtime.getNativeFieldSize(type):0),Runtime.QUANTUM_SIZE)}),dynCall:(function(sig,ptr,args){if(args&&args.length){if(!args.splice)args=Array.prototype.slice.call(args);args.splice(0,0,ptr);return Module["dynCall_"+sig].apply(null,args)}else{return Module["dynCall_"+sig].call(null,ptr)}}),functionPointers:[],addFunction:(function(func){for(var i=0;i=TOTAL_MEMORY){var success=enlargeMemory();if(!success){DYNAMICTOP=ret;return 0}}return ret}),alignMemory:(function(size,quantum){var ret=size=Math.ceil(size/(quantum?quantum:16))*(quantum?quantum:16);return ret}),makeBigInt:(function(low,high,unsigned){var ret=unsigned?+(low>>>0)+ +(high>>>0)*+4294967296:+(low>>>0)+ +(high|0)*+4294967296;return ret}),GLOBAL_BASE:8,QUANTUM_SIZE:4,__dummy__:0};Module["Runtime"]=Runtime;var __THREW__=0;var ABORT=false;var EXITSTATUS=0;var undef=0;var tempValue,tempInt,tempBigInt,tempInt2,tempBigInt2,tempPair,tempBigIntI,tempBigIntR,tempBigIntS,tempBigIntP,tempBigIntD,tempDouble,tempFloat;var tempI64,tempI64b;var tempRet0,tempRet1,tempRet2,tempRet3,tempRet4,tempRet5,tempRet6,tempRet7,tempRet8,tempRet9;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}var globalScope=this;function getCFunc(ident){var func=Module["_"+ident];if(!func){try{func=eval("_"+ident)}catch(e){}}assert(func,"Cannot call unknown function "+ident+" (perhaps LLVM optimizations or closure removed it?)");return func}var cwrap,ccall;((function(){var JSfuncs={"stackSave":(function(){Runtime.stackSave()}),"stackRestore":(function(){Runtime.stackRestore()}),"arrayToC":(function(arr){var ret=Runtime.stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}),"stringToC":(function(str){var ret=0;if(str!==null&&str!==undefined&&str!==0){ret=Runtime.stackAlloc((str.length<<2)+1);writeStringToMemory(str,ret)}return ret})};var toC={"string":JSfuncs["stringToC"],"array":JSfuncs["arrayToC"]};ccall=function ccallFunc(ident,returnType,argTypes,args,opts){var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i>0]=value;break;case"i8":HEAP8[ptr>>0]=value;break;case"i16":HEAP16[ptr>>1]=value;break;case"i32":HEAP32[ptr>>2]=value;break;case"i64":tempI64=[value>>>0,(tempDouble=value,+Math_abs(tempDouble)>=+1?tempDouble>+0?(Math_min(+Math_floor(tempDouble/+4294967296),+4294967295)|0)>>>0:~~+Math_ceil((tempDouble- +(~~tempDouble>>>0))/+4294967296)>>>0:0)],HEAP32[ptr>>2]=tempI64[0],HEAP32[ptr+4>>2]=tempI64[1];break;case"float":HEAPF32[ptr>>2]=value;break;case"double":HEAPF64[ptr>>3]=value;break;default:abort("invalid type for setValue: "+type)}}Module["setValue"]=setValue;function getValue(ptr,type,noSafe){type=type||"i8";if(type.charAt(type.length-1)==="*")type="i32";switch(type){case"i1":return HEAP8[ptr>>0];case"i8":return HEAP8[ptr>>0];case"i16":return HEAP16[ptr>>1];case"i32":return HEAP32[ptr>>2];case"i64":return HEAP32[ptr>>2];case"float":return HEAPF32[ptr>>2];case"double":return HEAPF64[ptr>>3];default:abort("invalid type for setValue: "+type)}return null}Module["getValue"]=getValue;var ALLOC_NORMAL=0;var ALLOC_STACK=1;var ALLOC_STATIC=2;var ALLOC_DYNAMIC=3;var ALLOC_NONE=4;Module["ALLOC_NORMAL"]=ALLOC_NORMAL;Module["ALLOC_STACK"]=ALLOC_STACK;Module["ALLOC_STATIC"]=ALLOC_STATIC;Module["ALLOC_DYNAMIC"]=ALLOC_DYNAMIC;Module["ALLOC_NONE"]=ALLOC_NONE;function allocate(slab,types,allocator,ptr){var zeroinit,size;if(typeof slab==="number"){zeroinit=true;size=slab}else{zeroinit=false;size=slab.length}var singleType=typeof types==="string"?types:null;var ret;if(allocator==ALLOC_NONE){ret=ptr}else{ret=[_malloc,Runtime.stackAlloc,Runtime.staticAlloc,Runtime.dynamicAlloc][allocator===undefined?ALLOC_STATIC:allocator](Math.max(size,singleType?1:types.length))}if(zeroinit){var ptr=ret,stop;assert((ret&3)==0);stop=ret+(size&~3);for(;ptr>2]=0}stop=ret+size;while(ptr>0]=0}return ret}if(singleType==="i8"){if(slab.subarray||slab.slice){HEAPU8.set(slab,ret)}else{HEAPU8.set(new Uint8Array(slab),ret)}return ret}var i=0,type,typeSize,previousType;while(i>0];hasUtf|=t;if(t==0&&!length)break;i++;if(length&&i==length)break}if(!length)length=i;var ret="";if(hasUtf<128){var MAX_CHUNK=1024;var curr;while(length>0){curr=String.fromCharCode.apply(String,HEAPU8.subarray(ptr,ptr+Math.min(length,MAX_CHUNK)));ret=ret?ret+curr:curr;ptr+=MAX_CHUNK;length-=MAX_CHUNK}return ret}return Module["UTF8ToString"](ptr)}Module["Pointer_stringify"]=Pointer_stringify;function AsciiToString(ptr){var str="";while(1){var ch=HEAP8[ptr++>>0];if(!ch)return str;str+=String.fromCharCode(ch)}}Module["AsciiToString"]=AsciiToString;function stringToAscii(str,outPtr){return writeAsciiToMemory(str,outPtr,false)}Module["stringToAscii"]=stringToAscii;function UTF8ArrayToString(u8Array,idx){var u0,u1,u2,u3,u4,u5;var str="";while(1){u0=u8Array[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue}u1=u8Array[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}u2=u8Array[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u3=u8Array[idx++]&63;if((u0&248)==240){u0=(u0&7)<<18|u1<<12|u2<<6|u3}else{u4=u8Array[idx++]&63;if((u0&252)==248){u0=(u0&3)<<24|u1<<18|u2<<12|u3<<6|u4}else{u5=u8Array[idx++]&63;u0=(u0&1)<<30|u1<<24|u2<<18|u3<<12|u4<<6|u5}}}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}}Module["UTF8ArrayToString"]=UTF8ArrayToString;function UTF8ToString(ptr){return UTF8ArrayToString(HEAPU8,ptr)}Module["UTF8ToString"]=UTF8ToString;function stringToUTF8Array(str,outU8Array,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127){if(outIdx>=endIdx)break;outU8Array[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;outU8Array[outIdx++]=192|u>>6;outU8Array[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;outU8Array[outIdx++]=224|u>>12;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}else if(u<=2097151){if(outIdx+3>=endIdx)break;outU8Array[outIdx++]=240|u>>18;outU8Array[outIdx++]=128|u>>12&63;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}else if(u<=67108863){if(outIdx+4>=endIdx)break;outU8Array[outIdx++]=248|u>>24;outU8Array[outIdx++]=128|u>>18&63;outU8Array[outIdx++]=128|u>>12&63;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}else{if(outIdx+5>=endIdx)break;outU8Array[outIdx++]=252|u>>30;outU8Array[outIdx++]=128|u>>24&63;outU8Array[outIdx++]=128|u>>18&63;outU8Array[outIdx++]=128|u>>12&63;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}}outU8Array[outIdx]=0;return outIdx-startIdx}Module["stringToUTF8Array"]=stringToUTF8Array;function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}Module["stringToUTF8"]=stringToUTF8;function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127){++len}else if(u<=2047){len+=2}else if(u<=65535){len+=3}else if(u<=2097151){len+=4}else if(u<=67108863){len+=5}else{len+=6}}return len}Module["lengthBytesUTF8"]=lengthBytesUTF8;function UTF16ToString(ptr){var i=0;var str="";while(1){var codeUnit=HEAP16[ptr+i*2>>1];if(codeUnit==0)return str;++i;str+=String.fromCharCode(codeUnit)}}Module["UTF16ToString"]=UTF16ToString;function stringToUTF16(str,outPtr,maxBytesToWrite){if(maxBytesToWrite===undefined){maxBytesToWrite=2147483647}if(maxBytesToWrite<2)return 0;maxBytesToWrite-=2;var startPtr=outPtr;var numCharsToWrite=maxBytesToWrite>1]=codeUnit;outPtr+=2}HEAP16[outPtr>>1]=0;return outPtr-startPtr}Module["stringToUTF16"]=stringToUTF16;function lengthBytesUTF16(str){return str.length*2}Module["lengthBytesUTF16"]=lengthBytesUTF16;function UTF32ToString(ptr){var i=0;var str="";while(1){var utf32=HEAP32[ptr+i*4>>2];if(utf32==0)return str;++i;if(utf32>=65536){var ch=utf32-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}else{str+=String.fromCharCode(utf32)}}}Module["UTF32ToString"]=UTF32ToString;function stringToUTF32(str,outPtr,maxBytesToWrite){if(maxBytesToWrite===undefined){maxBytesToWrite=2147483647}if(maxBytesToWrite<4)return 0;var startPtr=outPtr;var endPtr=startPtr+maxBytesToWrite-4;for(var i=0;i=55296&&codeUnit<=57343){var trailSurrogate=str.charCodeAt(++i);codeUnit=65536+((codeUnit&1023)<<10)|trailSurrogate&1023}HEAP32[outPtr>>2]=codeUnit;outPtr+=4;if(outPtr+4>endPtr)break}HEAP32[outPtr>>2]=0;return outPtr-startPtr}Module["stringToUTF32"]=stringToUTF32;function lengthBytesUTF32(str){var len=0;for(var i=0;i=55296&&codeUnit<=57343)++i;len+=4}return len}Module["lengthBytesUTF32"]=lengthBytesUTF32;function demangle(func){var hasLibcxxabi=!!Module["___cxa_demangle"];if(hasLibcxxabi){try{var buf=_malloc(func.length);writeStringToMemory(func.substr(1),buf);var status=_malloc(4);var ret=Module["___cxa_demangle"](buf,0,0,status);if(getValue(status,"i32")===0&&ret){return Pointer_stringify(ret)}}catch(e){}finally{if(buf)_free(buf);if(status)_free(status);if(ret)_free(ret)}}var i=3;var basicTypes={"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":"..."};var subs=[];var first=true;function dump(x){if(x)Module.print(x);Module.print(func);var pre="";for(var a=0;a"}else{ret=name}paramLoop:while(i0){var c=func[i++];if(c in basicTypes){list.push(basicTypes[c])}else{switch(c){case"P":list.push(parse(true,1,true)[0]+"*");break;case"R":list.push(parse(true,1,true)[0]+"&");break;case"L":{i++;var end=func.indexOf("E",i);var size=end-i;list.push(func.substr(i,size));i+=size+2;break};case"A":{var size=parseInt(func.substr(i));i+=size.toString().length;if(func[i]!=="_")throw"?";i++;list.push(parse(true,1,true)[0]+" ["+size+"]");break};case"E":break paramLoop;default:ret+="?"+c;break paramLoop}}}if(!allowVoid&&list.length===1&&list[0]==="void")list=[];if(rawList){if(ret){list.push(ret+"?")}return list}else{return ret+flushList()}}var parsed=func;try{if(func=="Object._main"||func=="_main"){return"main()"}if(typeof func==="number")func=Pointer_stringify(func);if(func[0]!=="_")return func;if(func[1]!=="_")return func;if(func[2]!=="Z")return func;switch(func[3]){case"n":return"operator new()";case"d":return"operator delete()"}parsed=parse()}catch(e){parsed+="?"}if(parsed.indexOf("?")>=0&&!hasLibcxxabi){Runtime.warnOnce("warning: a problem occurred in builtin C++ name demangling; build with -s DEMANGLE_SUPPORT=1 to link in libcxxabi demangling")}return parsed}function demangleAll(text){return text.replace(/__Z[\w\d_]+/g,(function(x){var y=demangle(x);return x===y?x:x+" ["+y+"]"}))}function jsStackTrace(){var err=new Error;if(!err.stack){try{throw new Error(0)}catch(e){err=e}if(!err.stack){return"(no stack trace available)"}}return err.stack.toString()}function stackTrace(){return demangleAll(jsStackTrace())}Module["stackTrace"]=stackTrace;var PAGE_SIZE=4096;function alignMemoryPage(x){if(x%4096>0){x+=4096-x%4096}return x}var HEAP;var HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;var STATIC_BASE=0,STATICTOP=0,staticSealed=false;var STACK_BASE=0,STACKTOP=0,STACK_MAX=0;var DYNAMIC_BASE=0,DYNAMICTOP=0;function abortOnCannotGrowMemory(){abort("Cannot enlarge memory arrays. Either (1) compile with -s TOTAL_MEMORY=X with X higher than the current value "+TOTAL_MEMORY+", (2) compile with -s ALLOW_MEMORY_GROWTH=1 which adjusts the size at runtime but prevents some optimizations, (3) set Module.TOTAL_MEMORY to a higher value before the program runs, or if you want malloc to return NULL (0) instead of this abort, compile with -s ABORTING_MALLOC=0 ")}function enlargeMemory(){abortOnCannotGrowMemory()}var TOTAL_STACK=Module["TOTAL_STACK"]||5242880;var TOTAL_MEMORY=Module["TOTAL_MEMORY"]||33554432;var totalMemory=64*1024;while(totalMemory0){var callback=callbacks.shift();if(typeof callback=="function"){callback();continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){Runtime.dynCall("v",func)}else{Runtime.dynCall("vi",func,[callback.arg])}}else{func(callback.arg===undefined?null:callback.arg)}}}var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function ensureInitRuntime(){if(runtimeInitialized)return;runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){callRuntimeCallbacks(__ATEXIT__);runtimeExited=true}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}Module["addOnPreRun"]=addOnPreRun;function addOnInit(cb){__ATINIT__.unshift(cb)}Module["addOnInit"]=addOnInit;function addOnPreMain(cb){__ATMAIN__.unshift(cb)}Module["addOnPreMain"]=addOnPreMain;function addOnExit(cb){__ATEXIT__.unshift(cb)}Module["addOnExit"]=addOnExit;function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}Module["addOnPostRun"]=addOnPostRun;function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}Module["intArrayFromString"]=intArrayFromString;function intArrayToString(array){var ret=[];for(var i=0;i255){chr&=255}ret.push(String.fromCharCode(chr))}return ret.join("")}Module["intArrayToString"]=intArrayToString;function writeStringToMemory(string,buffer,dontAddNull){var array=intArrayFromString(string,dontAddNull);var i=0;while(i>0]=chr;i=i+1}}Module["writeStringToMemory"]=writeStringToMemory;function writeArrayToMemory(array,buffer){for(var i=0;i>0]=array[i]}}Module["writeArrayToMemory"]=writeArrayToMemory;function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}Module["writeAsciiToMemory"]=writeAsciiToMemory;function unSign(value,bits,ignore){if(value>=0){return value}return bits<=32?2*Math.abs(1<=half&&(bits<=32||value>half)){value=-2*half+value}return value}if(!Math["imul"]||Math["imul"](4294967295,5)!==-5)Math["imul"]=function imul(a,b){var ah=a>>>16;var al=a&65535;var bh=b>>>16;var bl=b&65535;return al*bl+(ah*bl+al*bh<<16)|0};Math.imul=Math["imul"];if(!Math["clz32"])Math["clz32"]=(function(x){x=x>>>0;for(var i=0;i<32;i++){if(x&1<<31-i)return i}return 32});Math.clz32=Math["clz32"];var Math_abs=Math.abs;var Math_cos=Math.cos;var Math_sin=Math.sin;var Math_tan=Math.tan;var Math_acos=Math.acos;var Math_asin=Math.asin;var Math_atan=Math.atan;var Math_atan2=Math.atan2;var Math_exp=Math.exp;var Math_log=Math.log;var Math_sqrt=Math.sqrt;var Math_ceil=Math.ceil;var Math_floor=Math.floor;var Math_pow=Math.pow;var Math_imul=Math.imul;var Math_fround=Math.fround;var Math_min=Math.min;var Math_clz32=Math.clz32;var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}Module["addRunDependency"]=addRunDependency;function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["removeRunDependency"]=removeRunDependency;Module["preloadedImages"]={};Module["preloadedAudios"]={};var memoryInitializer=null;var ASM_CONSTS=[];STATIC_BASE=8;STATICTOP=STATIC_BASE+10768;__ATINIT__.push({func:(function(){__GLOBAL__sub_I_jsBindings_cpp()})});allocate([212,9,0,0,73,13,0,0,252,9,0,0,48,13,0,0,8,0,0,0,0,0,0,0,212,9,0,0,113,13,0,0,252,9,0,0,93,13,0,0,32,0,0,0,0,0,0,0,212,9,0,0,149,13,0,0,252,9,0,0,131,13,0,0,56,0,0,0,0,0,0,0,252,9,0,0,169,13,0,0,96,0,0,0,0,0,0,0,212,9,0,0,183,13,0,0,252,9,0,0,192,13,0,0,96,0,0,0,0,0,0,0,252,9,0,0,209,13,0,0,96,0,0,0,0,0,0,0,252,9,0,0,225,13,0,0,96,0,0,0,0,0,0,0,212,9,0,0,240,13,0,0,252,9,0,0,2,14,0,0,176,0,0,0,0,0,0,0,212,9,0,0,17,14,0,0,252,9,0,0,65,14,0,0,176,0,0,0,0,0,0,0,252,9,0,0,210,14,0,0,176,0,0,0,0,0,0,0,252,9,0,0,22,15,0,0,176,0,0,0,0,0,0,0,252,9,0,0,119,15,0,0,176,0,0,0,0,0,0,0,252,9,0,0,155,15,0,0,176,0,0,0,0,0,0,0,252,9,0,0,245,15,0,0,176,0,0,0,0,0,0,0,252,9,0,0,134,16,0,0,176,0,0,0,0,0,0,0,252,9,0,0,244,16,0,0,176,0,0,0,0,0,0,0,252,9,0,0,150,17,0,0,176,0,0,0,0,0,0,0,252,9,0,0,121,18,0,0,176,0,0,0,0,0,0,0,252,9,0,0,22,20,0,0,104,1,0,0,0,0,0,0,212,9,0,0,49,20,0,0,252,9,0,0,61,20,0,0,104,1,0,0,0,0,0,0,252,9,0,0,89,20,0,0,104,1,0,0,0,0,0,0,252,9,0,0,107,20,0,0,104,1,0,0,0,0,0,0,252,9,0,0,132,20,0,0,104,1,0,0,0,0,0,0,252,9,0,0,158,20,0,0,104,1,0,0,0,0,0,0,252,9,0,0,184,20,0,0,104,1,0,0,0,0,0,0,252,9,0,0,203,20,0,0,224,1,0,0,0,0,0,0,252,9,0,0,24,21,0,0,32,0,0,0,0,0,0,0,252,9,0,0,57,21,0,0,224,1,0,0,0,0,0,0,252,9,0,0,129,21,0,0,16,2,0,0,0,0,0,0,212,9,0,0,212,21,0,0,252,9,0,0,251,21,0,0,16,2,0,0,0,0,0,0,252,9,0,0,85,22,0,0,56,2,0,0,0,0,0,0,212,9,0,0,178,22,0,0,252,9,0,0,213,22,0,0,96,0,0,0,0,0,0,0,252,9,0,0,81,23,0,0,32,0,0,0,0,0,0,0,252,9,0,0,79,26,0,0,112,2,0,0,0,0,0,0,212,9,0,0,92,26,0,0,212,9,0,0,105,26,0,0,252,9,0,0,118,26,0,0,120,2,0,0,0,0,0,0,252,9,0,0,151,26,0,0,128,2,0,0,0,0,0,0,252,9,0,0,221,26,0,0,128,2,0,0,0,0,0,0,252,9,0,0,185,26,0,0,160,2,0,0,0,0,0,0,252,9,0,0,255,26,0,0,144,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,0,0,1,0,0,0,2,0,0,0,1,0,0,0,2,0,0,0,1,0,0,0,1,0,0,0,2,0,0,0,2,0,0,0,3,0,0,0,4,0,0,0,0,0,0,0,40,0,0,0,3,0,0,0,4,0,0,0,1,0,0,0,1,0,0,0,2,0,0,0,0,0,0,0,64,0,0,0,5,0,0,0,6,0,0,0,1,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,80,0,0,0,7,0,0,0,8,0,0,0,4,0,0,0,1,0,0,0,2,0,0,0,1,0,0,0,1,0,0,0,3,0,0,0,1,0,0,0,0,0,0,0,104,0,0,0,7,0,0,0,9,0,0,0,5,0,0,0,2,0,0,0,3,0,0,0,2,0,0,0,2,0,0,0,4,0,0,0,2,0,0,0,0,0,0,0,120,0,0,0,7,0,0,0,10,0,0,0,6,0,0,0,3,0,0,0,4,0,0,0,3,0,0,0,3,0,0,0,5,0,0,0,3,0,0,0,0,0,0,0,136,0,0,0,11,0,0,0,12,0,0,0,7,0,0,0,4,0,0,0,5,0,0,0,4,0,0,0,4,0,0,0,6,0,0,0,4,0,0,0,0,0,0,0,152,0,0,0,13,0,0,0,14,0,0,0,6,0,0,0,1,0,0,0,2,0,0,0,0,0,0,0,160,0,0,0,3,0,0,0,4,0,0,0,5,0,0,0,1,0,0,0,15,0,0,0,5,0,0,0,16,0,0,0,17,0,0,0,6,0,0,0,7,0,0,0,8,0,0,0,0,0,0,0,184,0,0,0,8,0,0,0,9,0,0,0,6,0,0,0,2,0,0,0,18,0,0,0,10,0,0,0,16,0,0,0,19,0,0,0,11,0,0,0,12,0,0,0,9,0,0,0,0,0,0,0,200,0,0,0,13,0,0,0,14,0,0,0,7,0,0,0,3,0,0,0,20,0,0,0,10,0,0,0,16,0,0,0,21,0,0,0,15,0,0,0,16,0,0,0,10,0,0,0,0,0,0,0,216,0,0,0,17,0,0,0,18,0,0,0,8,0,0,0,4,0,0,0,22,0,0,0,10,0,0,0,16,0,0,0,23,0,0,0,19,0,0,0,20,0,0,0,11,0,0,0,0,0,0,0,232,0,0,0,21,0,0,0,22,0,0,0,9,0,0,0,5,0,0,0,24,0,0,0,10,0,0,0,16,0,0,0,25,0,0,0,23,0,0,0,24,0,0,0,12,0,0,0,0,0,0,0,248,0,0,0,25,0,0,0,26,0,0,0,10,0,0,0,6,0,0,0,26,0,0,0,10,0,0,0,16,0,0,0,27,0,0,0,27,0,0,0,28,0,0,0,13,0,0,0,0,0,0,0,8,1,0,0,29,0,0,0,30,0,0,0,11,0,0,0,7,0,0,0,28,0,0,0,10,0,0,0,16,0,0,0,29,0,0,0,31,0,0,0,32,0,0,0,14,0,0,0,0,0,0,0,24,1,0,0,33,0,0,0,34,0,0,0,12,0,0,0,8,0,0,0,30,0,0,0,10,0,0,0,16,0,0,0,31,0,0,0,35,0,0,0,36,0,0,0,15,0,0,0,0,0,0,0,176,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,32,0,0,0,10,0,0,0,16,0,0,0,33,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,40,1,0,0,37,0,0,0,38,0,0,0,13,0,0,0,9,0,0,0,34,0,0,0,10,0,0,0,16,0,0,0,35,0,0,0,39,0,0,0,40,0,0,0,16,0,0,0,0,0,0,0,56,1,0,0,41,0,0,0,42,0,0,0,14,0,0,0,10,0,0,0,36,0,0,0,10,0,0,0,16,0,0,0,37,0,0,0,43,0,0,0,44,0,0,0,17,0,0,0,0,0,0,0,72,1,0,0,45,0,0,0,46,0,0,0,15,0,0,0,11,0,0,0,38,0,0,0,47,0,0,0,16,0,0,0,39,0,0,0,48,0,0,0,49,0,0,0,18,0,0,0,0,0,0,0,88,1,0,0,7,0,0,0,40,0,0,0,41,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,104,1,0,0,1,0,0,0,40,0,0,0,42,0,0,0,0,0,0,0,112,1,0,0,8,0,0,0,40,0,0,0,43,0,0,0,0,0,0,0,128,1,0,0,9,0,0,0,40,0,0,0,44,0,0,0,0,0,0,0,144,1,0,0,10,0,0,0,40,0,0,0,45,0,0,0,0,0,0,0,160,1,0,0,11,0,0,0,40,0,0,0,46,0,0,0,0,0,0,0,176,1,0,0,12,0,0,0,40,0,0,0,47,0,0,0,0,0,0,0,192,1,0,0,13,0,0,0,40,0,0,0,48,0,0,0,68,4,0,0,56,8,0,0,0,0,0,0,8,0,0,0,1,0,0,0,49,0,0,0,50,0,0,0,51,0,0,0,1,0,0,0,1,0,0,0,2,0,0,0,2,0,0,0,5,0,0,0,6,0,0,0,0,0,0,0,80,2,0,0,3,0,0,0,50,0,0,0,19,0,0,0,7,0,0,0,2,0,0,0,0,0,0,0,64,2,0,0,7,0,0,0,51,0,0,0,20,0,0,0,5,0,0,0,8,0,0,0,5,0,0,0,5,0,0,0,14,0,0,0,16,0,0,0,0,0,0,0,16,2,0,0,52,0,0,0,53,0,0,0,21,0,0,0,9,0,0,0,3,0,0,0,0,0,0,0,40,2,0,0,54,0,0,0,55,0,0,0,15,0,0,0,0,0,0,0,24,2,0,0,52,0,0,0,56,0,0,0,21,0,0,0,10,0,0,0,4,0,0,0,0,0,0,0,0,2,0,0,52,0,0,0,57,0,0,0,22,0,0,0,9,0,0,0,3,0,0,0,0,0,0,0,240,1,0,0,3,0,0,0,58,0,0,0,23,0,0,0,1,0,0,0,24,0,0,0,16,0,0,0,0,0,0,0,208,1,0,0,3,0,0,0,59,0,0,0,23,0,0,0,1,0,0,0,24,0,0,0,17,0,0,0,16,0,0,0,32,0,0,0,64,0,0,0,96,0,0,0,128,0,0,0,160,0,0,0,192,0,0,0,224,0,0,0,0,1,0,0,64,1,0,0,128,1,0,0,192,1,0,0,0,2,0,0,128,2,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,63,26,0,0,25,0,0,0,52,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,96,2,0,0,60,0,0,0,61,0,0,0,6,0,0,0,0,0,0,0,0,0,0,0,144,2,0,0,62,0,0,0,63,0,0,0,64,0,0,0,65,0,0,0,11,0,0,0,6,0,0,0,1,0,0,0,18,0,0,0,0,0,0,0,192,2,0,0,62,0,0,0,66,0,0,0,64,0,0,0,65,0,0,0,11,0,0,0,7,0,0,0,2,0,0,0,19,0,0,0,0,0,0,0,0,0,0,0,124,28,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,96,10,0,0,208,10,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,13,0,0,0,249,39,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,14,0,0,0,13,0,0,0,241,35,0,0,0,4,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,50,50,98,50,87,111,114,108,100,67,111,110,116,97,99,116,76,105,115,116,101,110,101,114,0,49,55,98,50,67,111,110,116,97,99,116,76,105,115,116,101,110,101,114,0,49,55,81,117,101,114,121,65,65,66,66,67,97,108,108,98,97,99,107,0,49,53,98,50,81,117,101,114,121,67,97,108,108,98,97,99,107,0,49,53,82,97,121,67,97,115,116,67,97,108,108,98,97,99,107,0,49,55,98,50,82,97,121,67,97,115,116,67,97,108,108,98,97,99,107,0,49,49,98,50,69,100,103,101,83,104,97,112,101,0,55,98,50,83,104,97,112,101,0,49,52,98,50,80,111,108,121,103,111,110,83,104,97,112,101,0,49,51,98,50,67,105,114,99,108,101,83,104,97,112,101,0,49,50,98,50,67,104,97,105,110,83,104,97,112,101,0,49,53,98,50,67,111,110,116,97,99,116,70,105,108,116,101,114,0,49,50,98,50,77,111,117,115,101,74,111,105,110,116,0,55,98,50,74,111,105,110,116,0,77,111,117,115,101,32,106,111,105,110,116,32,100,117,109,112,105,110,103,32,105,115,32,110,111,116,32,115,117,112,112,111,114,116,101,100,46,10,0,49,50,98,50,77,111,116,111,114,74,111,105,110,116,0,32,32,98,50,77,111,116,111,114,74,111,105,110,116,68,101,102,32,106,100,59,10,0,32,32,106,100,46,108,105,110,101,97,114,79,102,102,115,101,116,46,83,101,116,40,37,46,49,53,108,101,102,44,32,37,46,49,53,108,101,102,41,59,10,0,32,32,106,100,46,97,110,103,117,108,97,114,79,102,102,115,101,116,32,61,32,37,46,49,53,108,101,102,59,10,0,32,32,106,100,46,99,111,114,114,101,99,116,105,111,110,70,97,99,116,111,114,32,61,32,37,46,49,53,108,101,102,59,10,0,49,53,98,50,68,105,115,116,97,110,99,101,74,111,105,110,116,0,32,32,98,50,68,105,115,116,97,110,99,101,74,111,105,110,116,68,101,102,32,106,100,59,10,0,32,32,106,100,46,108,101,110,103,116,104,32,61,32,37,46,49,53,108,101,102,59,10,0,49,53,98,50,70,114,105,99,116,105,111,110,74,111,105,110,116,0,32,32,98,50,70,114,105,99,116,105,111,110,74,111,105,110,116,68,101,102,32,106,100,59,10,0,32,32,106,100,46,109,97,120,70,111,114,99,101,32,61,32,37,46,49,53,108,101,102,59,10,0,32,32,106,100,46,109,97,120,84,111,114,113,117,101,32,61,32,37,46,49,53,108,101,102,59,10,0,49,49,98,50,87,101,108,100,74,111,105,110,116,0,32,32,98,50,87,101,108,100,74,111,105,110,116,68,101,102,32,106,100,59,10,0,49,49,98,50,71,101,97,114,74,111,105,110,116,0,32,32,98,50,71,101,97,114,74,111,105,110,116,68,101,102,32,106,100,59,10,0,32,32,106,100,46,106,111,105,110,116,49,32,61,32,106,111,105,110,116,115,91,37,100,93,59,10,0,32,32,106,100,46,106,111,105,110,116,50,32,61,32,106,111,105,110,116,115,91,37,100,93,59,10,0,49,54,98,50,80,114,105,115,109,97,116,105,99,74,111,105,110,116,0,32,32,98,50,80,114,105,115,109,97,116,105,99,74,111,105,110,116,68,101,102,32,106,100,59,10,0,32,32,106,100,46,108,111,119,101,114,84,114,97,110,115,108,97,116,105,111,110,32,61,32,37,46,49,53,108,101,102,59,10,0,32,32,106,100,46,117,112,112,101,114,84,114,97,110,115,108,97,116,105,111,110,32,61,32,37,46,49,53,108,101,102,59,10,0,32,32,106,100,46,109,97,120,77,111,116,111,114,70,111,114,99,101,32,61,32,37,46,49,53,108,101,102,59,10,0,49,49,98,50,82,111,112,101,74,111,105,110,116,0,32,32,98,50,82,111,112,101,74,111,105,110,116,68,101,102,32,106,100,59,10,0,32,32,106,100,46,109,97,120,76,101,110,103,116,104,32,61,32,37,46,49,53,108,101,102,59,10,0,47,47,32,68,117,109,112,32,105,115,32,110,111,116,32,115,117,112,112,111,114,116,101,100,32,102,111,114,32,116,104,105,115,32,106,111,105,110,116,32,116,121,112,101,46,10,0,49,53,98,50,82,101,118,111,108,117,116,101,74,111,105,110,116,0,32,32,98,50,82,101,118,111,108,117,116,101,74,111,105,110,116,68,101,102,32,106,100,59,10,0,32,32,106,100,46,114,101,102,101,114,101,110,99,101,65,110,103,108,101,32,61,32,37,46,49,53,108,101,102,59,10,0,32,32,106,100,46,101,110,97,98,108,101,76,105,109,105,116,32,61,32,98,111,111,108,40,37,100,41,59,10,0,32,32,106,100,46,108,111,119,101,114,65,110,103,108,101,32,61,32,37,46,49,53,108,101,102,59,10,0,32,32,106,100,46,117,112,112,101,114,65,110,103,108,101,32,61,32,37,46,49,53,108,101,102,59,10,0,49,50,98,50,87,104,101,101,108,74,111,105,110,116,0,32,32,98,50,87,104,101,101,108,74,111,105,110,116,68,101,102,32,106,100,59,10,0,32,32,106,100,46,108,111,99,97,108,65,120,105,115,65,46,83,101,116,40,37,46,49,53,108,101,102,44,32,37,46,49,53,108,101,102,41,59,10,0,32,32,106,100,46,101,110,97,98,108,101,77,111,116,111,114,32,61,32,98,111,111,108,40,37,100,41,59,10,0,32,32,106,100,46,109,111,116,111,114,83,112,101,101,100,32,61,32,37,46,49,53,108,101,102,59,10,0,32,32,106,100,46,109,97,120,77,111,116,111,114,84,111,114,113,117,101,32,61,32,37,46,49,53,108,101,102,59,10,0,32,32,106,100,46,102,114,101,113,117,101,110,99,121,72,122,32,61,32,37,46,49,53,108,101,102,59,10,0,32,32,106,100,46,100,97,109,112,105,110,103,82,97,116,105,111,32,61,32,37,46,49,53,108,101,102,59,10,0,49,51,98,50,80,117,108,108,101,121,74,111,105,110,116,0,32,32,98,50,80,117,108,108,101,121,74,111,105,110,116,68,101,102,32,106,100,59,10,0,32,32,106,100,46,98,111,100,121,65,32,61,32,98,111,100,105,101,115,91,37,100,93,59,10,0,32,32,106,100,46,98,111,100,121,66,32,61,32,98,111,100,105,101,115,91,37,100,93,59,10,0,32,32,106,100,46,99,111,108,108,105,100,101,67,111,110,110,101,99,116,101,100,32,61,32,98,111,111,108,40,37,100,41,59,10,0,32,32,106,100,46,103,114,111,117,110,100,65,110,99,104,111,114,65,46,83,101,116,40,37,46,49,53,108,101,102,44,32,37,46,49,53,108,101,102,41,59,10,0,32,32,106,100,46,103,114,111,117,110,100,65,110,99,104,111,114,66,46,83,101,116,40,37,46,49,53,108,101,102,44,32,37,46,49,53,108,101,102,41,59,10,0,32,32,106,100,46,108,111,99,97,108,65,110,99,104,111,114,65,46,83,101,116,40,37,46,49,53,108,101,102,44,32,37,46,49,53,108,101,102,41,59,10,0,32,32,106,100,46,108,111,99,97,108,65,110,99,104,111,114,66,46,83,101,116,40,37,46,49,53,108,101,102,44,32,37,46,49,53,108,101,102,41,59,10,0,32,32,106,100,46,108,101,110,103,116,104,65,32,61,32,37,46,49,53,108,101,102,59,10,0,32,32,106,100,46,108,101,110,103,116,104,66,32,61,32,37,46,49,53,108,101,102,59,10,0,32,32,106,100,46,114,97,116,105,111,32,61,32,37,46,49,53,108,101,102,59,10,0,32,32,106,111,105,110,116,115,91,37,100,93,32,61,32,109,95,119,111,114,108,100,45,62,67,114,101,97,116,101,74,111,105,110,116,40,38,106,100,41,59,10,0,50,52,98,50,67,104,97,105,110,65,110,100,80,111,108,121,103,111,110,67,111,110,116,97,99,116,0,57,98,50,67,111,110,116,97,99,116,0,0,50,53,98,50,80,111,108,121,103,111,110,65,110,100,67,105,114,99,108,101,67,111,110,116,97,99,116,0,49,53,98,50,67,105,114,99,108,101,67,111,110,116,97,99,116,0,50,50,98,50,69,100,103,101,65,110,100,67,105,114,99,108,101,67,111,110,116,97,99,116,0,50,51,98,50,67,104,97,105,110,65,110,100,67,105,114,99,108,101,67,111,110,116,97,99,116,0,50,51,98,50,69,100,103,101,65,110,100,80,111,108,121,103,111,110,67,111,110,116,97,99,116,0,49,54,98,50,80,111,108,121,103,111,110,67,111,110,116,97,99,116,0,90,78,49,54,98,50,80,97,114,116,105,99,108,101,83,121,115,116,101,109,49,52,83,111,108,118,101,67,111,108,108,105,115,105,111,110,69,82,75,49,48,98,50,84,105,109,101,83,116,101,112,69,50,50,83,111,108,118,101,67,111,108,108,105,115,105,111,110,67,97,108,108,98,97,99,107,0,51,48,98,50,70,105,120,116,117,114,101,80,97,114,116,105,99,108,101,81,117,101,114,121,67,97,108,108,98,97,99,107,0,90,78,49,54,98,50,80,97,114,116,105,99,108,101,83,121,115,116,101,109,49,56,85,112,100,97,116,101,66,111,100,121,67,111,110,116,97,99,116,115,69,118,69,50,54,85,112,100,97,116,101,66,111,100,121,67,111,110,116,97,99,116,115,67,97,108,108,98,97,99,107,0,90,78,49,54,98,50,80,97,114,116,105,99,108,101,83,121,115,116,101,109,52,49,85,112,100,97,116,101,80,97,105,114,115,65,110,100,84,114,105,97,100,115,87,105,116,104,82,101,97,99,116,105,118,101,80,97,114,116,105,99,108,101,115,69,118,69,49,52,82,101,97,99,116,105,118,101,70,105,108,116,101,114,0,78,49,54,98,50,80,97,114,116,105,99,108,101,83,121,115,116,101,109,49,54,67,111,110,110,101,99,116,105,111,110,70,105,108,116,101,114,69,0,90,78,49,54,98,50,80,97,114,116,105,99,108,101,83,121,115,116,101,109,49,56,74,111,105,110,80,97,114,116,105,99,108,101,71,114,111,117,112,115,69,80,49,53,98,50,80,97,114,116,105,99,108,101,71,114,111,117,112,83,49,95,69,50,52,74,111,105,110,80,97,114,116,105,99,108,101,71,114,111,117,112,115,70,105,108,116,101,114,0,90,78,49,54,98,50,80,97,114,116,105,99,108,101,83,121,115,116,101,109,50,48,85,112,100,97,116,101,80,97,105,114,115,65,110,100,84,114,105,97,100,115,69,105,105,82,75,78,83,95,49,54,67,111,110,110,101,99,116,105,111,110,70,105,108,116,101,114,69,69,50,48,85,112,100,97,116,101,84,114,105,97,100,115,67,97,108,108,98,97,99,107,0,78,49,54,98,50,86,111,114,111,110,111,105,68,105,97,103,114,97,109,49,50,78,111,100,101,67,97,108,108,98,97,99,107,69,0,90,78,49,54,98,50,80,97,114,116,105,99,108,101,83,121,115,116,101,109,51,51,67,114,101,97,116,101,80,97,114,116,105,99,108,101,115,87,105,116,104,83,104,97,112,101,115,70,111,114,71,114,111,117,112,69,80,75,80,75,55,98,50,83,104,97,112,101,105,82,75,49,56,98,50,80,97,114,116,105,99,108,101,71,114,111,117,112,68,101,102,82,75,49,49,98,50,84,114,97,110,115,102,111,114,109,69,49,52,67,111,109,112,111,115,105,116,101,83,104,97,112,101,0,90,78,49,54,98,50,80,97,114,116,105,99,108,101,83,121,115,116,101,109,50,51,68,101,115,116,114,111,121,80,97,114,116,105,99,108,101,115,73,110,83,104,97,112,101,69,82,75,55,98,50,83,104,97,112,101,82,75,49,49,98,50,84,114,97,110,115,102,111,114,109,98,69,51,49,68,101,115,116,114,111,121,80,97,114,116,105,99,108,101,115,73,110,83,104,97,112,101,67,97,108,108,98,97,99,107,0,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,76,105,113,117,105,100,70,117,110,32,49,46,49,46,48,0,83,116,57,98,97,100,95,97,108,108,111,99,0,83,116,57,101,120,99,101,112,116,105,111,110,0,83,116,57,116,121,112,101,95,105,110,102,111,0,78,49,48,95,95,99,120,120,97,98,105,118,49,49,54,95,95,115,104,105,109,95,116,121,112,101,95,105,110,102,111,69,0,78,49,48,95,95,99,120,120,97,98,105,118,49,49,55,95,95,99,108,97,115,115,95,116,121,112,101,95,105,110,102,111,69,0,78,49,48,95,95,99,120,120,97,98,105,118,49,49,57,95,95,112,111,105,110,116,101,114,95,116,121,112,101,95,105,110,102,111,69,0,78,49,48,95,95,99,120,120,97,98,105,118,49,49,55,95,95,112,98,97,115,101,95,116,121,112,101,95,105,110,102,111,69,0,78,49,48,95,95,99,120,120,97,98,105,118,49,50,48,95,95,115,105,95,99,108,97,115,115,95,116,121,112,101,95,105,110,102,111,69,0,0,112,116,104,114,101,97,100,95,111,110,99,101,32,102,97,105,108,117,114,101,32,105,110,32,95,95,99,120,97,95,103,101,116,95,103,108,111,98,97,108,115,95,102,97,115,116,40,41,0,115,116,100,58,58,98,97,100,95,97,108,108,111,99,0,116,101,114,109,105,110,97,116,101,95,104,97,110,100,108,101,114,32,117,110,101,120,112,101,99,116,101,100,108,121,32,114,101,116,117,114,110,101,100,0,99,97,110,110,111,116,32,99,114,101,97,116,101,32,112,116,104,114,101,97,100,32,107,101,121,32,102,111,114,32,95,95,99,120,97,95,103,101,116,95,103,108,111,98,97,108,115,40,41,0,99,97,110,110,111,116,32,122,101,114,111,32,111,117,116,32,116,104,114,101,97,100,32,118,97,108,117,101,32,102,111,114,32,95,95,99,120,97,95,103,101,116,95,103,108,111,98,97,108,115,40,41,0,116,101,114,109,105,110,97,116,105,110,103,32,119,105,116,104,32,37,115,32,101,120,99,101,112,116,105,111,110,32,111,102,32,116,121,112,101,32,37,115,58,32,37,115,0,116,101,114,109,105,110,97,116,105,110,103,32,119,105,116,104,32,37,115,32,101,120,99,101,112,116,105,111,110,32,111,102,32,116,121,112,101,32,37,115,0,116,101,114,109,105,110,97,116,105,110,103,32,119,105,116,104,32,37,115,32,102,111,114,101,105,103,110,32,101,120,99,101,112,116,105,111,110,0,116,101,114,109,105,110,97,116,105,110,103,0,117,110,99,97,117,103,104,116,0,84,33,34,25,13,1,2,3,17,75,28,12,16,4,11,29,18,30,39,104,110,111,112,113,98,32,5,6,15,19,20,21,26,8,22,7,40,36,23,24,9,10,14,27,31,37,35,131,130,125,38,42,43,60,61,62,63,67,71,74,77,88,89,90,91,92,93,94,95,96,97,99,100,101,102,103,105,106,107,108,114,115,116,121,122,123,124,0,73,108,108,101,103,97,108,32,98,121,116,101,32,115,101,113,117,101,110,99,101,0,68,111,109,97,105,110,32,101,114,114,111,114,0,82,101,115,117,108,116,32,110,111,116,32,114,101,112,114,101,115,101,110,116,97,98,108,101,0,78,111,116,32,97,32,116,116,121,0,80,101,114,109,105,115,115,105,111,110,32,100,101,110,105,101,100,0,79,112,101,114,97,116,105,111,110,32,110,111,116,32,112,101,114,109,105,116,116,101,100,0,78,111,32,115,117,99,104,32,102,105,108,101,32,111,114,32,100,105,114,101,99,116,111,114,121,0,78,111,32,115,117,99,104,32,112,114,111,99,101,115,115,0,70,105,108,101,32,101,120,105,115,116,115,0,86,97,108,117,101,32,116,111,111,32,108,97,114,103,101,32,102,111,114,32,100,97,116,97,32,116,121,112,101,0,78,111,32,115,112,97,99,101,32,108,101,102,116,32,111,110,32,100,101,118,105,99,101,0,79,117,116,32,111,102,32,109,101,109,111,114,121,0,82,101,115,111,117,114,99,101,32,98,117,115,121,0,73,110,116,101,114,114,117,112,116,101,100,32,115,121,115,116,101,109,32,99,97,108,108,0,82,101,115,111,117,114,99,101,32,116,101,109,112,111,114,97,114,105,108,121,32,117,110,97,118,97,105,108,97,98,108,101,0,73,110,118,97,108,105,100,32,115,101,101,107,0,67,114,111,115,115,45,100,101,118,105,99,101,32,108,105,110,107,0,82,101,97,100,45,111,110,108,121,32,102,105,108,101,32,115,121,115,116,101,109,0,68,105,114,101,99,116,111,114,121,32,110,111,116,32,101,109,112,116,121,0,67,111,110,110,101,99,116,105,111,110,32,114,101,115,101,116,32,98,121,32,112,101,101,114,0,79,112,101,114,97,116,105,111,110,32,116,105,109,101,100,32,111,117,116,0,67,111,110,110,101,99,116,105,111,110,32,114,101,102,117,115,101,100,0,72,111,115,116,32,105,115,32,100,111,119,110,0,72,111,115,116,32,105,115,32,117,110,114,101,97,99,104,97,98,108,101,0,65,100,100,114,101,115,115,32,105,110,32,117,115,101,0,66,114,111,107,101,110,32,112,105,112,101,0,73,47,79,32,101,114,114,111,114,0,78,111,32,115,117,99,104,32,100,101,118,105,99,101,32,111,114,32,97,100,100,114,101,115,115,0,66,108,111,99,107,32,100,101,118,105,99,101,32,114,101,113,117,105,114,101,100,0,78,111,32,115,117,99,104,32,100,101,118,105,99,101,0,78,111,116,32,97,32,100,105,114,101,99,116,111,114,121,0,73,115,32,97,32,100,105,114,101,99,116,111,114,121,0,84,101,120,116,32,102,105,108,101,32,98,117,115,121,0,69,120,101,99,32,102,111,114,109,97,116,32,101,114,114,111,114,0,73,110,118,97,108,105,100,32,97,114,103,117,109,101,110,116,0,65,114,103,117,109,101,110,116,32,108,105,115,116,32,116,111,111,32,108,111,110,103,0,83,121,109,98,111,108,105,99,32,108,105,110,107,32,108,111,111,112,0,70,105,108,101,110,97,109,101,32,116,111,111,32,108,111,110,103,0,84,111,111,32,109,97,110,121,32,111,112,101,110,32,102,105,108,101,115,32,105,110,32,115,121,115,116,101,109,0,78,111,32,102,105,108,101,32,100,101,115,99,114,105,112,116,111,114,115,32,97,118,97,105,108,97,98,108,101,0,66,97,100,32,102,105,108,101,32,100,101,115,99,114,105,112,116,111,114,0,78,111,32,99,104,105,108,100,32,112,114,111,99,101,115,115,0,66,97,100,32,97,100,100,114,101,115,115,0,70,105,108,101,32,116,111,111,32,108,97,114,103,101,0,84,111,111,32,109,97,110,121,32,108,105,110,107,115,0,78,111,32,108,111,99,107,115,32,97,118,97,105,108,97,98,108,101,0,82,101,115,111,117,114,99,101,32,100,101,97,100,108,111,99,107,32,119,111,117,108,100,32,111,99,99,117,114,0,83,116,97,116,101,32,110,111,116,32,114,101,99,111,118,101,114,97,98,108,101,0,80,114,101,118,105,111,117,115,32,111,119,110,101,114,32,100,105,101,100,0,79,112,101,114,97,116,105,111,110,32,99,97,110,99,101,108,101,100,0,70,117,110,99,116,105,111,110,32,110,111,116,32,105,109,112,108,101,109,101,110,116,101,100,0,78,111,32,109,101,115,115,97,103,101,32,111,102,32,100,101,115,105,114,101,100,32,116,121,112,101,0,73,100,101,110,116,105,102,105,101,114,32,114,101,109,111,118,101,100,0,68,101,118,105,99,101,32,110,111,116,32,97,32,115,116,114,101,97,109,0,78,111,32,100,97,116,97,32,97,118,97,105,108,97,98,108,101,0,68,101,118,105,99,101,32,116,105,109,101,111,117,116,0,79,117,116,32,111,102,32,115,116,114,101,97,109,115,32,114,101,115,111,117,114,99,101,115,0,76,105,110,107,32,104,97,115,32,98,101,101,110,32,115,101,118,101,114,101,100,0,80,114,111,116,111,99,111,108,32,101,114,114,111,114,0,66,97,100,32,109,101,115,115,97,103,101,0,70,105,108,101,32,100,101,115,99,114,105,112,116,111,114,32,105,110,32,98,97,100,32,115,116,97,116,101,0,78,111,116,32,97,32,115,111,99,107,101,116,0,68,101,115,116,105,110,97,116,105,111,110,32,97,100,100,114,101,115,115,32,114,101,113,117,105,114,101,100,0,77,101,115,115,97,103,101,32,116,111,111,32,108,97,114,103,101,0,80,114,111,116,111,99,111,108,32,119,114,111,110,103,32,116,121,112,101,32,102,111,114,32,115,111,99,107,101,116,0,80,114,111,116,111,99,111,108,32,110,111,116,32,97,118,97,105,108,97,98,108,101,0,80,114,111,116,111,99,111,108,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,83,111,99,107,101,116,32,116,121,112,101,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,78,111,116,32,115,117,112,112,111,114,116,101,100,0,80,114,111,116,111,99,111,108,32,102,97,109,105,108,121,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,65,100,100,114,101,115,115,32,102,97,109,105,108,121,32,110,111,116,32,115,117,112,112,111,114,116,101,100,32,98,121,32,112,114,111,116,111,99,111,108,0,65,100,100,114,101,115,115,32,110,111,116,32,97,118,97,105,108,97,98,108,101,0,78,101,116,119,111,114,107,32,105,115,32,100,111,119,110,0,78,101,116,119,111,114,107,32,117,110,114,101,97,99,104,97,98,108,101,0,67,111,110,110,101,99,116,105,111,110,32,114,101,115,101,116,32,98,121,32,110,101,116,119,111,114,107,0,67,111,110,110,101,99,116,105,111,110,32,97,98,111,114,116,101,100,0,78,111,32,98,117,102,102,101,114,32,115,112,97,99,101,32,97,118,97,105,108,97,98,108,101,0,83,111,99,107,101,116,32,105,115,32,99,111,110,110,101,99,116,101,100,0,83,111,99,107,101,116,32,110,111,116,32,99,111,110,110,101,99,116,101,100,0,67,97,110,110,111,116,32,115,101,110,100,32,97,102,116,101,114,32,115,111,99,107,101,116,32,115,104,117,116,100,111,119,110,0,79,112,101,114,97,116,105,111,110,32,97,108,114,101,97,100,121,32,105,110,32,112,114,111,103,114,101,115,115,0,79,112,101,114,97,116,105,111,110,32,105,110,32,112,114,111,103,114,101,115,115,0,83,116,97,108,101,32,102,105,108,101,32,104,97,110,100,108,101,0,82,101,109,111,116,101,32,73,47,79,32,101,114,114,111,114,0,81,117,111,116,97,32,101,120,99,101,101,100,101,100,0,78,111,32,109,101,100,105,117,109,32,102,111,117,110,100,0,87,114,111,110,103,32,109,101,100,105,117,109,32,116,121,112,101,0,78,111,32,101,114,114,111,114,32,105,110,102,111,114,109,97,116,105,111,110],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE);allocate([17,0,10,0,17,17,17,0,0,0,0,5,0,0,0,0,0,0,9,0,0,0,0,11,0,0,0,0,0,0,0,0,17,0,15,10,17,17,17,3,10,7,0,1,19,9,11,11,0,0,9,6,11,0,0,11,0,6,17,0,0,0,17,17,17,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,0,0,0,0,0,0,0,0,17,0,10,10,17,17,17,0,10,0,0,2,0,9,11,0,0,0,9,0,11,0,0,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,12,0,0,0,0,9,12,0,0,0,0,0,12,0,0,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,14,0,0,0,0,0,0,0,0,0,0,0,13,0,0,0,4,13,0,0,0,0,9,14,0,0,0,0,0,14,0,0,14,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,0,0,0,0,15,0,0,0,0,15,0,0,0,0,9,16,0,0,0,0,0,16,0,0,16,0,0,18,0,0,0,18,18,18,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,18,0,0,0,18,18,18,0,0,0,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,0,0,0,0,0,0,0,0,0,0,0,10,0,0,0,0,10,0,0,0,0,9,11,0,0,0,0,0,11,0,0,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,12,0,0,0,0,9,12,0,0,0,0,0,12,0,0,12,0,0,48,49,50,51,52,53,54,55,56,57,65,66,67,68,69,70,45,43,32,32,32,48,88,48,120,0,40,110,117,108,108,41,0,45,48,88,43,48,88,32,48,88,45,48,120,43,48,120,32,48,120,0,105,110,102,0,73,78,70,0,110,97,110,0,78,65,78,0,46,0],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE+10225);var tempDoublePtr=Runtime.alignMemory(allocate(12,"i8",ALLOC_STATIC),8);assert(tempDoublePtr%8==0);function copyTempFloat(ptr){HEAP8[tempDoublePtr]=HEAP8[ptr];HEAP8[tempDoublePtr+1]=HEAP8[ptr+1];HEAP8[tempDoublePtr+2]=HEAP8[ptr+2];HEAP8[tempDoublePtr+3]=HEAP8[ptr+3]}function copyTempDouble(ptr){HEAP8[tempDoublePtr]=HEAP8[ptr];HEAP8[tempDoublePtr+1]=HEAP8[ptr+1];HEAP8[tempDoublePtr+2]=HEAP8[ptr+2];HEAP8[tempDoublePtr+3]=HEAP8[ptr+3];HEAP8[tempDoublePtr+4]=HEAP8[ptr+4];HEAP8[tempDoublePtr+5]=HEAP8[ptr+5];HEAP8[tempDoublePtr+6]=HEAP8[ptr+6];HEAP8[tempDoublePtr+7]=HEAP8[ptr+7]}var _cosf=Math_cos;Module["_i64Subtract"]=_i64Subtract;var _floorf=Math_floor;function __ZSt18uncaught_exceptionv(){return!!__ZSt18uncaught_exceptionv.uncaught_exception}var EXCEPTIONS={last:0,caught:[],infos:{},deAdjust:(function(adjusted){if(!adjusted||EXCEPTIONS.infos[adjusted])return adjusted;for(var ptr in EXCEPTIONS.infos){var info=EXCEPTIONS.infos[ptr];if(info.adjusted===adjusted){return ptr}}return adjusted}),addRef:(function(ptr){if(!ptr)return;var info=EXCEPTIONS.infos[ptr];info.refcount++}),decRef:(function(ptr){if(!ptr)return;var info=EXCEPTIONS.infos[ptr];assert(info.refcount>0);info.refcount--;if(info.refcount===0){if(info.destructor){Runtime.dynCall("vi",info.destructor,[ptr])}delete EXCEPTIONS.infos[ptr];___cxa_free_exception(ptr)}}),clearRef:(function(ptr){if(!ptr)return;var info=EXCEPTIONS.infos[ptr];info.refcount=0})};function ___resumeException(ptr){if(!EXCEPTIONS.last){EXCEPTIONS.last=ptr}EXCEPTIONS.clearRef(EXCEPTIONS.deAdjust(ptr));throw ptr+" - Exception catching is disabled, this exception cannot be caught. Compile with -s DISABLE_EXCEPTION_CATCHING=0 or DISABLE_EXCEPTION_CATCHING=2 to catch."}function ___cxa_find_matching_catch(){var thrown=EXCEPTIONS.last;if(!thrown){return(asm["setTempRet0"](0),0)|0}var info=EXCEPTIONS.infos[thrown];var throwntype=info.type;if(!throwntype){return(asm["setTempRet0"](0),thrown)|0}var typeArray=Array.prototype.slice.call(arguments);var pointer=Module["___cxa_is_pointer_type"](throwntype);if(!___cxa_find_matching_catch.buffer)___cxa_find_matching_catch.buffer=_malloc(4);HEAP32[___cxa_find_matching_catch.buffer>>2]=thrown;thrown=___cxa_find_matching_catch.buffer;for(var i=0;i>2];info.adjusted=thrown;return(asm["setTempRet0"](typeArray[i]),thrown)|0}}thrown=HEAP32[thrown>>2];return(asm["setTempRet0"](throwntype),thrown)|0}function ___cxa_throw(ptr,type,destructor){EXCEPTIONS.infos[ptr]={ptr:ptr,adjusted:ptr,type:type,destructor:destructor,refcount:0};EXCEPTIONS.last=ptr;if(!("uncaught_exception"in __ZSt18uncaught_exceptionv)){__ZSt18uncaught_exceptionv.uncaught_exception=1}else{__ZSt18uncaught_exceptionv.uncaught_exception++}throw ptr+" - Exception catching is disabled, this exception cannot be caught. Compile with -s DISABLE_EXCEPTION_CATCHING=0 or DISABLE_EXCEPTION_CATCHING=2 to catch."}Module["_memset"]=_memset;var _BDtoILow=true;function _b2WorldRayCastCallback(fixturePtr,pointX,pointY,normalX,normalY,fraction){return b2World.RayCast(fixturePtr,pointX,pointY,normalX,normalY,fraction)}var _FtoIHigh=true;Module["_bitshift64Shl"]=_bitshift64Shl;function _abort(){Module["abort"]()}function _b2WorldBeginContactBody(contactPtr){b2World.BeginContactBody(contactPtr)}function _pthread_once(ptr,func){if(!_pthread_once.seen)_pthread_once.seen={};if(ptr in _pthread_once.seen)return;Runtime.dynCall("v",func);_pthread_once.seen[ptr]=1}var _sqrtf=Math_sqrt;function ___unlock(){}var PTHREAD_SPECIFIC={};function _pthread_getspecific(key){return PTHREAD_SPECIFIC[key]||0}function ___setErrNo(value){if(Module["___errno_location"])HEAP32[Module["___errno_location"]()>>2]=value;return value}var ERRNO_CODES={EPERM:1,ENOENT:2,ESRCH:3,EINTR:4,EIO:5,ENXIO:6,E2BIG:7,ENOEXEC:8,EBADF:9,ECHILD:10,EAGAIN:11,EWOULDBLOCK:11,ENOMEM:12,EACCES:13,EFAULT:14,ENOTBLK:15,EBUSY:16,EEXIST:17,EXDEV:18,ENODEV:19,ENOTDIR:20,EISDIR:21,EINVAL:22,ENFILE:23,EMFILE:24,ENOTTY:25,ETXTBSY:26,EFBIG:27,ENOSPC:28,ESPIPE:29,EROFS:30,EMLINK:31,EPIPE:32,EDOM:33,ERANGE:34,ENOMSG:42,EIDRM:43,ECHRNG:44,EL2NSYNC:45,EL3HLT:46,EL3RST:47,ELNRNG:48,EUNATCH:49,ENOCSI:50,EL2HLT:51,EDEADLK:35,ENOLCK:37,EBADE:52,EBADR:53,EXFULL:54,ENOANO:55,EBADRQC:56,EBADSLT:57,EDEADLOCK:35,EBFONT:59,ENOSTR:60,ENODATA:61,ETIME:62,ENOSR:63,ENONET:64,ENOPKG:65,EREMOTE:66,ENOLINK:67,EADV:68,ESRMNT:69,ECOMM:70,EPROTO:71,EMULTIHOP:72,EDOTDOT:73,EBADMSG:74,ENOTUNIQ:76,EBADFD:77,EREMCHG:78,ELIBACC:79,ELIBBAD:80,ELIBSCN:81,ELIBMAX:82,ELIBEXEC:83,ENOSYS:38,ENOTEMPTY:39,ENAMETOOLONG:36,ELOOP:40,EOPNOTSUPP:95,EPFNOSUPPORT:96,ECONNRESET:104,ENOBUFS:105,EAFNOSUPPORT:97,EPROTOTYPE:91,ENOTSOCK:88,ENOPROTOOPT:92,ESHUTDOWN:108,ECONNREFUSED:111,EADDRINUSE:98,ECONNABORTED:103,ENETUNREACH:101,ENETDOWN:100,ETIMEDOUT:110,EHOSTDOWN:112,EHOSTUNREACH:113,EINPROGRESS:115,EALREADY:114,EDESTADDRREQ:89,EMSGSIZE:90,EPROTONOSUPPORT:93,ESOCKTNOSUPPORT:94,EADDRNOTAVAIL:99,ENETRESET:102,EISCONN:106,ENOTCONN:107,ETOOMANYREFS:109,EUSERS:87,EDQUOT:122,ESTALE:116,ENOTSUP:95,ENOMEDIUM:123,EILSEQ:84,EOVERFLOW:75,ECANCELED:125,ENOTRECOVERABLE:131,EOWNERDEAD:130,ESTRPIPE:86};function _sysconf(name){switch(name){case 30:return PAGE_SIZE;case 85:return totalMemory/PAGE_SIZE;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:{if(typeof navigator==="object")return navigator["hardwareConcurrency"]||1;return 1}}___setErrNo(ERRNO_CODES.EINVAL);return-1}var PTHREAD_SPECIFIC_NEXT_KEY=1;function _pthread_key_create(key,destructor){if(key==0){return ERRNO_CODES.EINVAL}HEAP32[key>>2]=PTHREAD_SPECIFIC_NEXT_KEY;PTHREAD_SPECIFIC[PTHREAD_SPECIFIC_NEXT_KEY]=0;PTHREAD_SPECIFIC_NEXT_KEY++;return 0}function ___lock(){}var ERRNO_MESSAGES={0:"Success",1:"Not super-user",2:"No such file or directory",3:"No such process",4:"Interrupted system call",5:"I/O error",6:"No such device or address",7:"Arg list too long",8:"Exec format error",9:"Bad file number",10:"No children",11:"No more processes",12:"Not enough core",13:"Permission denied",14:"Bad address",15:"Block device required",16:"Mount device busy",17:"File exists",18:"Cross-device link",19:"No such device",20:"Not a directory",21:"Is a directory",22:"Invalid argument",23:"Too many open files in system",24:"Too many open files",25:"Not a typewriter",26:"Text file busy",27:"File too large",28:"No space left on device",29:"Illegal seek",30:"Read only file system",31:"Too many links",32:"Broken pipe",33:"Math arg out of domain of func",34:"Math result not representable",35:"File locking deadlock error",36:"File or path name too long",37:"No record locks available",38:"Function not implemented",39:"Directory not empty",40:"Too many symbolic links",42:"No message of desired type",43:"Identifier removed",44:"Channel number out of range",45:"Level 2 not synchronized",46:"Level 3 halted",47:"Level 3 reset",48:"Link number out of range",49:"Protocol driver not attached",50:"No CSI structure available",51:"Level 2 halted",52:"Invalid exchange",53:"Invalid request descriptor",54:"Exchange full",55:"No anode",56:"Invalid request code",57:"Invalid slot",59:"Bad font file fmt",60:"Device not a stream",61:"No data (for no delay io)",62:"Timer expired",63:"Out of streams resources",64:"Machine is not on the network",65:"Package not installed",66:"The object is remote",67:"The link has been severed",68:"Advertise error",69:"Srmount error",70:"Communication error on send",71:"Protocol error",72:"Multihop attempted",73:"Cross mount point (not really error)",74:"Trying to read unreadable message",75:"Value too large for defined data type",76:"Given log. name not unique",77:"f.d. invalid for this operation",78:"Remote address changed",79:"Can access a needed shared lib",80:"Accessing a corrupted shared lib",81:".lib section in a.out corrupted",82:"Attempting to link in too many libs",83:"Attempting to exec a shared library",84:"Illegal byte sequence",86:"Streams pipe error",87:"Too many users",88:"Socket operation on non-socket",89:"Destination address required",90:"Message too long",91:"Protocol wrong type for socket",92:"Protocol not available",93:"Unknown protocol",94:"Socket type not supported",95:"Not supported",96:"Protocol family not supported",97:"Address family not supported by protocol family",98:"Address already in use",99:"Address not available",100:"Network interface is not configured",101:"Network is unreachable",102:"Connection reset by network",103:"Connection aborted",104:"Connection reset by peer",105:"No buffer space available",106:"Socket is already connected",107:"Socket is not connected",108:"Can't send after socket shutdown",109:"Too many references",110:"Connection timed out",111:"Connection refused",112:"Host is down",113:"Host is unreachable",114:"Socket already connected",115:"Connection already in progress",116:"Stale file handle",122:"Quota exceeded",123:"No medium (in tape drive)",125:"Operation canceled",130:"Previous owner died",131:"State not recoverable"};var TTY={ttys:[],init:(function(){}),shutdown:(function(){}),register:(function(dev,ops){TTY.ttys[dev]={input:[],output:[],ops:ops};FS.registerDevice(dev,TTY.stream_ops)}),stream_ops:{open:(function(stream){var tty=TTY.ttys[stream.node.rdev];if(!tty){throw new FS.ErrnoError(ERRNO_CODES.ENODEV)}stream.tty=tty;stream.seekable=false}),close:(function(stream){stream.tty.ops.flush(stream.tty)}),flush:(function(stream){stream.tty.ops.flush(stream.tty)}),read:(function(stream,buffer,offset,length,pos){if(!stream.tty||!stream.tty.ops.get_char){throw new FS.ErrnoError(ERRNO_CODES.ENXIO)}var bytesRead=0;for(var i=0;i0){result=buf.slice(0,bytesRead).toString("utf-8")}else{result=null}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}tty.input=intArrayFromString(result,true)}return tty.input.shift()}),put_char:(function(tty,val){if(val===null||val===10){Module["print"](UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}}),flush:(function(tty){if(tty.output&&tty.output.length>0){Module["print"](UTF8ArrayToString(tty.output,0));tty.output=[]}})},default_tty1_ops:{put_char:(function(tty,val){if(val===null||val===10){Module["printErr"](UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}}),flush:(function(tty){if(tty.output&&tty.output.length>0){Module["printErr"](UTF8ArrayToString(tty.output,0));tty.output=[]}})}};var MEMFS={ops_table:null,mount:(function(mount){return MEMFS.createNode(null,"/",16384|511,0)}),createNode:(function(parent,name,mode,dev){if(FS.isBlkdev(mode)||FS.isFIFO(mode)){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}if(!MEMFS.ops_table){MEMFS.ops_table={dir:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,lookup:MEMFS.node_ops.lookup,mknod:MEMFS.node_ops.mknod,rename:MEMFS.node_ops.rename,unlink:MEMFS.node_ops.unlink,rmdir:MEMFS.node_ops.rmdir,readdir:MEMFS.node_ops.readdir,symlink:MEMFS.node_ops.symlink},stream:{llseek:MEMFS.stream_ops.llseek}},file:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:{llseek:MEMFS.stream_ops.llseek,read:MEMFS.stream_ops.read,write:MEMFS.stream_ops.write,allocate:MEMFS.stream_ops.allocate,mmap:MEMFS.stream_ops.mmap,msync:MEMFS.stream_ops.msync}},link:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,readlink:MEMFS.node_ops.readlink},stream:{}},chrdev:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:FS.chrdev_stream_ops}}}var node=FS.createNode(parent,name,mode,dev);if(FS.isDir(node.mode)){node.node_ops=MEMFS.ops_table.dir.node;node.stream_ops=MEMFS.ops_table.dir.stream;node.contents={}}else if(FS.isFile(node.mode)){node.node_ops=MEMFS.ops_table.file.node;node.stream_ops=MEMFS.ops_table.file.stream;node.usedBytes=0;node.contents=null}else if(FS.isLink(node.mode)){node.node_ops=MEMFS.ops_table.link.node;node.stream_ops=MEMFS.ops_table.link.stream}else if(FS.isChrdev(node.mode)){node.node_ops=MEMFS.ops_table.chrdev.node;node.stream_ops=MEMFS.ops_table.chrdev.stream}node.timestamp=Date.now();if(parent){parent.contents[name]=node}return node}),getFileDataAsRegularArray:(function(node){if(node.contents&&node.contents.subarray){var arr=[];for(var i=0;inode.contents.length){node.contents=MEMFS.getFileDataAsRegularArray(node);node.usedBytes=node.contents.length}if(!node.contents||node.contents.subarray){var prevCapacity=node.contents?node.contents.buffer.byteLength:0;if(prevCapacity>=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity0)node.contents.set(oldContents.subarray(0,node.usedBytes),0);return}if(!node.contents&&newCapacity>0)node.contents=[];while(node.contents.lengthnewSize)node.contents.length=newSize;else while(node.contents.length=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);assert(size>=0);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+lengthe2.timestamp){create.push(key);total++}}));var remove=[];Object.keys(dst.entries).forEach((function(key){var e=dst.entries[key];var e2=src.entries[key];if(!e2){remove.push(key);total++}}));if(!total){return callback(null)}var errored=false;var completed=0;var db=src.type==="remote"?src.db:dst.db;var transaction=db.transaction([IDBFS.DB_STORE_NAME],"readwrite");var store=transaction.objectStore(IDBFS.DB_STORE_NAME);function done(err){if(err){if(!done.errored){done.errored=true;return callback(err)}return}if(++completed>=total){return callback(null)}}transaction.onerror=(function(e){done(this.error);e.preventDefault()});create.sort().forEach((function(path){if(dst.type==="local"){IDBFS.loadRemoteEntry(store,path,(function(err,entry){if(err)return done(err);IDBFS.storeLocalEntry(path,entry,done)}))}else{IDBFS.loadLocalEntry(path,(function(err,entry){if(err)return done(err);IDBFS.storeRemoteEntry(store,path,entry,done)}))}}));remove.sort().reverse().forEach((function(path){if(dst.type==="local"){IDBFS.removeLocalEntry(path,done)}else{IDBFS.removeRemoteEntry(store,path,done)}}))})};var NODEFS={isWindows:false,staticInit:(function(){NODEFS.isWindows=!!process.platform.match(/^win/)}),mount:(function(mount){assert(ENVIRONMENT_IS_NODE);return NODEFS.createNode(null,"/",NODEFS.getMode(mount.opts.root),0)}),createNode:(function(parent,name,mode,dev){if(!FS.isDir(mode)&&!FS.isFile(mode)&&!FS.isLink(mode)){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}var node=FS.createNode(parent,name,mode);node.node_ops=NODEFS.node_ops;node.stream_ops=NODEFS.stream_ops;return node}),getMode:(function(path){var stat;try{stat=fs.lstatSync(path);if(NODEFS.isWindows){stat.mode=stat.mode|(stat.mode&146)>>1}}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}return stat.mode}),realPath:(function(node){var parts=[];while(node.parent!==node){parts.push(node.name);node=node.parent}parts.push(node.mount.opts.root);parts.reverse();return PATH.join.apply(null,parts)}),flagsToPermissionStringMap:{0:"r",1:"r+",2:"r+",64:"r",65:"r+",66:"r+",129:"rx+",193:"rx+",514:"w+",577:"w",578:"w+",705:"wx",706:"wx+",1024:"a",1025:"a",1026:"a+",1089:"a",1090:"a+",1153:"ax",1154:"ax+",1217:"ax",1218:"ax+",4096:"rs",4098:"rs+"},flagsToPermissionString:(function(flags){flags&=~32768;if(flags in NODEFS.flagsToPermissionStringMap){return NODEFS.flagsToPermissionStringMap[flags]}else{throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}}),node_ops:{getattr:(function(node){var path=NODEFS.realPath(node);var stat;try{stat=fs.lstatSync(path)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}if(NODEFS.isWindows&&!stat.blksize){stat.blksize=4096}if(NODEFS.isWindows&&!stat.blocks){stat.blocks=(stat.size+stat.blksize-1)/stat.blksize|0}return{dev:stat.dev,ino:stat.ino,mode:stat.mode,nlink:stat.nlink,uid:stat.uid,gid:stat.gid,rdev:stat.rdev,size:stat.size,atime:stat.atime,mtime:stat.mtime,ctime:stat.ctime,blksize:stat.blksize,blocks:stat.blocks}}),setattr:(function(node,attr){var path=NODEFS.realPath(node);try{if(attr.mode!==undefined){fs.chmodSync(path,attr.mode);node.mode=attr.mode}if(attr.timestamp!==undefined){var date=new Date(attr.timestamp);fs.utimesSync(path,date,date)}if(attr.size!==undefined){fs.truncateSync(path,attr.size)}}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),lookup:(function(parent,name){var path=PATH.join2(NODEFS.realPath(parent),name);var mode=NODEFS.getMode(path);return NODEFS.createNode(parent,name,mode)}),mknod:(function(parent,name,mode,dev){var node=NODEFS.createNode(parent,name,mode,dev);var path=NODEFS.realPath(node);try{if(FS.isDir(node.mode)){fs.mkdirSync(path,node.mode)}else{fs.writeFileSync(path,"",{mode:node.mode})}}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}return node}),rename:(function(oldNode,newDir,newName){var oldPath=NODEFS.realPath(oldNode);var newPath=PATH.join2(NODEFS.realPath(newDir),newName);try{fs.renameSync(oldPath,newPath)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),unlink:(function(parent,name){var path=PATH.join2(NODEFS.realPath(parent),name);try{fs.unlinkSync(path)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),rmdir:(function(parent,name){var path=PATH.join2(NODEFS.realPath(parent),name);try{fs.rmdirSync(path)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),readdir:(function(node){var path=NODEFS.realPath(node);try{return fs.readdirSync(path)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),symlink:(function(parent,newName,oldPath){var newPath=PATH.join2(NODEFS.realPath(parent),newName);try{fs.symlinkSync(oldPath,newPath)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),readlink:(function(node){var path=NODEFS.realPath(node);try{path=fs.readlinkSync(path);path=NODEJS_PATH.relative(NODEJS_PATH.resolve(node.mount.opts.root),path);return path}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}})},stream_ops:{open:(function(stream){var path=NODEFS.realPath(stream.node);try{if(FS.isFile(stream.node.mode)){stream.nfd=fs.openSync(path,NODEFS.flagsToPermissionString(stream.flags))}}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),close:(function(stream){try{if(FS.isFile(stream.node.mode)&&stream.nfd){fs.closeSync(stream.nfd)}}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),read:(function(stream,buffer,offset,length,position){if(length===0)return 0;var nbuffer=new Buffer(length);var res;try{res=fs.readSync(stream.nfd,nbuffer,0,length,position)}catch(e){throw new FS.ErrnoError(ERRNO_CODES[e.code])}if(res>0){for(var i=0;i=stream.node.size)return 0;var chunk=stream.node.contents.slice(position,position+length);var ab=WORKERFS.reader.readAsArrayBuffer(chunk);buffer.set(new Uint8Array(ab),offset);return chunk.size}),write:(function(stream,buffer,offset,length,position){throw new FS.ErrnoError(ERRNO_CODES.EIO)}),llseek:(function(stream,offset,whence){var position=offset;if(whence===1){position+=stream.position}else if(whence===2){if(FS.isFile(stream.node.mode)){position+=stream.node.size}}if(position<0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}return position})}};var _stdin=allocate(1,"i32*",ALLOC_STATIC);var _stdout=allocate(1,"i32*",ALLOC_STATIC);var _stderr=allocate(1,"i32*",ALLOC_STATIC);var FS={root:null,mounts:[],devices:[null],streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:false,ignorePermissions:true,trackingDelegate:{},tracking:{openFlags:{READ:1,WRITE:2}},ErrnoError:null,genericErrors:{},filesystems:null,handleFSError:(function(e){if(!(e instanceof FS.ErrnoError))throw e+" : "+stackTrace();return ___setErrNo(e.errno)}),lookupPath:(function(path,opts){path=PATH.resolve(FS.cwd(),path);opts=opts||{};if(!path)return{path:"",node:null};var defaults={follow_mount:true,recurse_count:0};for(var key in defaults){if(opts[key]===undefined){opts[key]=defaults[key]}}if(opts.recurse_count>8){throw new FS.ErrnoError(ERRNO_CODES.ELOOP)}var parts=PATH.normalizeArray(path.split("/").filter((function(p){return!!p})),false);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(ERRNO_CODES.ELOOP)}}}}return{path:current_path,node:current}}),getPath:(function(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?mount+"/"+path:mount+path}path=path?node.name+"/"+path:node.name;node=node.parent}}),hashName:(function(parentid,name){var hash=0;for(var i=0;i>>0)%FS.nameTable.length}),hashAddNode:(function(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node}),hashRemoveNode:(function(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}}),lookupNode:(function(parent,name){var err=FS.mayLookup(parent);if(err){throw new FS.ErrnoError(err,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)}),createNode:(function(parent,name,mode,rdev){if(!FS.FSNode){FS.FSNode=(function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev});FS.FSNode.prototype={};var readMode=292|73;var writeMode=146;Object.defineProperties(FS.FSNode.prototype,{read:{get:(function(){return(this.mode&readMode)===readMode}),set:(function(val){val?this.mode|=readMode:this.mode&=~readMode})},write:{get:(function(){return(this.mode&writeMode)===writeMode}),set:(function(val){val?this.mode|=writeMode:this.mode&=~writeMode})},isFolder:{get:(function(){return FS.isDir(this.mode)})},isDevice:{get:(function(){return FS.isChrdev(this.mode)})}})}var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node}),destroyNode:(function(node){FS.hashRemoveNode(node)}),isRoot:(function(node){return node===node.parent}),isMountpoint:(function(node){return!!node.mounted}),isFile:(function(mode){return(mode&61440)===32768}),isDir:(function(mode){return(mode&61440)===16384}),isLink:(function(mode){return(mode&61440)===40960}),isChrdev:(function(mode){return(mode&61440)===8192}),isBlkdev:(function(mode){return(mode&61440)===24576}),isFIFO:(function(mode){return(mode&61440)===4096}),isSocket:(function(mode){return(mode&49152)===49152}),flagModes:{"r":0,"rs":1052672,"r+":2,"w":577,"wx":705,"xw":705,"w+":578,"wx+":706,"xw+":706,"a":1089,"ax":1217,"xa":1217,"a+":1090,"ax+":1218,"xa+":1218},modeStringToFlags:(function(str){var flags=FS.flagModes[str];if(typeof flags==="undefined"){throw new Error("Unknown file open mode: "+str)}return flags}),flagsToPermissionString:(function(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms}),nodePermissions:(function(node,perms){if(FS.ignorePermissions){return 0}if(perms.indexOf("r")!==-1&&!(node.mode&292)){return ERRNO_CODES.EACCES}else if(perms.indexOf("w")!==-1&&!(node.mode&146)){return ERRNO_CODES.EACCES}else if(perms.indexOf("x")!==-1&&!(node.mode&73)){return ERRNO_CODES.EACCES}return 0}),mayLookup:(function(dir){var err=FS.nodePermissions(dir,"x");if(err)return err;if(!dir.node_ops.lookup)return ERRNO_CODES.EACCES;return 0}),mayCreate:(function(dir,name){try{var node=FS.lookupNode(dir,name);return ERRNO_CODES.EEXIST}catch(e){}return FS.nodePermissions(dir,"wx")}),mayDelete:(function(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var err=FS.nodePermissions(dir,"wx");if(err){return err}if(isdir){if(!FS.isDir(node.mode)){return ERRNO_CODES.ENOTDIR}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return ERRNO_CODES.EBUSY}}else{if(FS.isDir(node.mode)){return ERRNO_CODES.EISDIR}}return 0}),mayOpen:(function(node,flags){if(!node){return ERRNO_CODES.ENOENT}if(FS.isLink(node.mode)){return ERRNO_CODES.ELOOP}else if(FS.isDir(node.mode)){if((flags&2097155)!==0||flags&512){return ERRNO_CODES.EISDIR}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))}),MAX_OPEN_FDS:4096,nextfd:(function(fd_start,fd_end){fd_start=fd_start||0;fd_end=fd_end||FS.MAX_OPEN_FDS;for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(ERRNO_CODES.EMFILE)}),getStream:(function(fd){return FS.streams[fd]}),createStream:(function(stream,fd_start,fd_end){if(!FS.FSStream){FS.FSStream=(function(){});FS.FSStream.prototype={};Object.defineProperties(FS.FSStream.prototype,{object:{get:(function(){return this.node}),set:(function(val){this.node=val})},isRead:{get:(function(){return(this.flags&2097155)!==1})},isWrite:{get:(function(){return(this.flags&2097155)!==0})},isAppend:{get:(function(){return this.flags&1024})}})}var newStream=new FS.FSStream;for(var p in stream){newStream[p]=stream[p]}stream=newStream;var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream}),closeStream:(function(fd){FS.streams[fd]=null}),chrdev_stream_ops:{open:(function(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}}),llseek:(function(){throw new FS.ErrnoError(ERRNO_CODES.ESPIPE)})},major:(function(dev){return dev>>8}),minor:(function(dev){return dev&255}),makedev:(function(ma,mi){return ma<<8|mi}),registerDevice:(function(dev,ops){FS.devices[dev]={stream_ops:ops}}),getDevice:(function(dev){return FS.devices[dev]}),getMounts:(function(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts}),syncfs:(function(populate,callback){if(typeof populate==="function"){callback=populate;populate=false}var mounts=FS.getMounts(FS.root.mount);var completed=0;function done(err){if(err){if(!done.errored){done.errored=true;return callback(err)}return}if(++completed>=mounts.length){callback(null)}}mounts.forEach((function(mount){if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)}))}),mount:(function(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(ERRNO_CODES.EBUSY)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(ERRNO_CODES.EBUSY)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot}),unmount:(function(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach((function(hash){var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.indexOf(current.mount)!==-1){FS.destroyNode(current)}current=next}}));node.mounted=null;var idx=node.mount.mounts.indexOf(mount);assert(idx!==-1);node.mount.mounts.splice(idx,1)}),lookup:(function(parent,name){return parent.node_ops.lookup(parent,name)}),mknod:(function(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}var err=FS.mayCreate(parent,name);if(err){throw new FS.ErrnoError(err)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}return parent.node_ops.mknod(parent,name,mode,dev)}),create:(function(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)}),mkdir:(function(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)}),mkdev:(function(path,mode,dev){if(typeof dev==="undefined"){dev=mode;mode=438}mode|=8192;return FS.mknod(path,mode,dev)}),symlink:(function(oldpath,newpath){if(!PATH.resolve(oldpath)){throw new FS.ErrnoError(ERRNO_CODES.ENOENT)}var lookup=FS.lookupPath(newpath,{parent:true});var parent=lookup.node;if(!parent){throw new FS.ErrnoError(ERRNO_CODES.ENOENT)}var newname=PATH.basename(newpath);var err=FS.mayCreate(parent,newname);if(err){throw new FS.ErrnoError(err)}if(!parent.node_ops.symlink){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}return parent.node_ops.symlink(parent,newname,oldpath)}),rename:(function(old_path,new_path){var old_dirname=PATH.dirname(old_path);var new_dirname=PATH.dirname(new_path);var old_name=PATH.basename(old_path);var new_name=PATH.basename(new_path);var lookup,old_dir,new_dir;try{lookup=FS.lookupPath(old_path,{parent:true});old_dir=lookup.node;lookup=FS.lookupPath(new_path,{parent:true});new_dir=lookup.node}catch(e){throw new FS.ErrnoError(ERRNO_CODES.EBUSY)}if(!old_dir||!new_dir)throw new FS.ErrnoError(ERRNO_CODES.ENOENT);if(old_dir.mount!==new_dir.mount){throw new FS.ErrnoError(ERRNO_CODES.EXDEV)}var old_node=FS.lookupNode(old_dir,old_name);var relative=PATH.relative(old_path,new_dirname);if(relative.charAt(0)!=="."){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}relative=PATH.relative(new_path,old_dirname);if(relative.charAt(0)!=="."){throw new FS.ErrnoError(ERRNO_CODES.ENOTEMPTY)}var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(old_node===new_node){return}var isdir=FS.isDir(old_node.mode);var err=FS.mayDelete(old_dir,old_name,isdir);if(err){throw new FS.ErrnoError(err)}err=new_node?FS.mayDelete(new_dir,new_name,isdir):FS.mayCreate(new_dir,new_name);if(err){throw new FS.ErrnoError(err)}if(!old_dir.node_ops.rename){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}if(FS.isMountpoint(old_node)||new_node&&FS.isMountpoint(new_node)){throw new FS.ErrnoError(ERRNO_CODES.EBUSY)}if(new_dir!==old_dir){err=FS.nodePermissions(old_dir,"w");if(err){throw new FS.ErrnoError(err)}}try{if(FS.trackingDelegate["willMovePath"]){FS.trackingDelegate["willMovePath"](old_path,new_path)}}catch(e){console.log("FS.trackingDelegate['willMovePath']('"+old_path+"', '"+new_path+"') threw an exception: "+e.message)}FS.hashRemoveNode(old_node);try{old_dir.node_ops.rename(old_node,new_dir,new_name)}catch(e){throw e}finally{FS.hashAddNode(old_node)}try{if(FS.trackingDelegate["onMovePath"])FS.trackingDelegate["onMovePath"](old_path,new_path)}catch(e){console.log("FS.trackingDelegate['onMovePath']('"+old_path+"', '"+new_path+"') threw an exception: "+e.message)}}),rmdir:(function(path){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);var node=FS.lookupNode(parent,name);var err=FS.mayDelete(parent,name,true);if(err){throw new FS.ErrnoError(err)}if(!parent.node_ops.rmdir){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}if(FS.isMountpoint(node)){throw new FS.ErrnoError(ERRNO_CODES.EBUSY)}try{if(FS.trackingDelegate["willDeletePath"]){FS.trackingDelegate["willDeletePath"](path)}}catch(e){console.log("FS.trackingDelegate['willDeletePath']('"+path+"') threw an exception: "+e.message)}parent.node_ops.rmdir(parent,name);FS.destroyNode(node);try{if(FS.trackingDelegate["onDeletePath"])FS.trackingDelegate["onDeletePath"](path)}catch(e){console.log("FS.trackingDelegate['onDeletePath']('"+path+"') threw an exception: "+e.message)}}),readdir:(function(path){var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;if(!node.node_ops.readdir){throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR)}return node.node_ops.readdir(node)}),unlink:(function(path){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);var node=FS.lookupNode(parent,name);var err=FS.mayDelete(parent,name,false);if(err){if(err===ERRNO_CODES.EISDIR)err=ERRNO_CODES.EPERM;throw new FS.ErrnoError(err)}if(!parent.node_ops.unlink){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}if(FS.isMountpoint(node)){throw new FS.ErrnoError(ERRNO_CODES.EBUSY)}try{if(FS.trackingDelegate["willDeletePath"]){FS.trackingDelegate["willDeletePath"](path)}}catch(e){console.log("FS.trackingDelegate['willDeletePath']('"+path+"') threw an exception: "+e.message)}parent.node_ops.unlink(parent,name);FS.destroyNode(node);try{if(FS.trackingDelegate["onDeletePath"])FS.trackingDelegate["onDeletePath"](path)}catch(e){console.log("FS.trackingDelegate['onDeletePath']('"+path+"') threw an exception: "+e.message)}}),readlink:(function(path){var lookup=FS.lookupPath(path);var link=lookup.node;if(!link){throw new FS.ErrnoError(ERRNO_CODES.ENOENT)}if(!link.node_ops.readlink){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}return PATH.resolve(FS.getPath(link.parent),link.node_ops.readlink(link))}),stat:(function(path,dontFollow){var lookup=FS.lookupPath(path,{follow:!dontFollow});var node=lookup.node;if(!node){throw new FS.ErrnoError(ERRNO_CODES.ENOENT)}if(!node.node_ops.getattr){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}return node.node_ops.getattr(node)}),lstat:(function(path){return FS.stat(path,true)}),chmod:(function(path,mode,dontFollow){var node;if(typeof path==="string"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}node.node_ops.setattr(node,{mode:mode&4095|node.mode&~4095,timestamp:Date.now()})}),lchmod:(function(path,mode){FS.chmod(path,mode,true)}),fchmod:(function(fd,mode){var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(ERRNO_CODES.EBADF)}FS.chmod(stream.node,mode)}),chown:(function(path,uid,gid,dontFollow){var node;if(typeof path==="string"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}node.node_ops.setattr(node,{timestamp:Date.now()})}),lchown:(function(path,uid,gid){FS.chown(path,uid,gid,true)}),fchown:(function(fd,uid,gid){var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(ERRNO_CODES.EBADF)}FS.chown(stream.node,uid,gid)}),truncate:(function(path,len){if(len<0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}var node;if(typeof path==="string"){var lookup=FS.lookupPath(path,{follow:true});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}if(FS.isDir(node.mode)){throw new FS.ErrnoError(ERRNO_CODES.EISDIR)}if(!FS.isFile(node.mode)){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}var err=FS.nodePermissions(node,"w");if(err){throw new FS.ErrnoError(err)}node.node_ops.setattr(node,{size:len,timestamp:Date.now()})}),ftruncate:(function(fd,len){var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(ERRNO_CODES.EBADF)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}FS.truncate(stream.node,len)}),utime:(function(path,atime,mtime){var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;node.node_ops.setattr(node,{timestamp:Math.max(atime,mtime)})}),open:(function(path,flags,mode,fd_start,fd_end){if(path===""){throw new FS.ErrnoError(ERRNO_CODES.ENOENT)}flags=typeof flags==="string"?FS.modeStringToFlags(flags):flags;mode=typeof mode==="undefined"?438:mode;if(flags&64){mode=mode&4095|32768}else{mode=0}var node;if(typeof path==="object"){node=path}else{path=PATH.normalize(path);try{var lookup=FS.lookupPath(path,{follow:!(flags&131072)});node=lookup.node}catch(e){}}var created=false;if(flags&64){if(node){if(flags&128){throw new FS.ErrnoError(ERRNO_CODES.EEXIST)}}else{node=FS.mknod(path,mode,0);created=true}}if(!node){throw new FS.ErrnoError(ERRNO_CODES.ENOENT)}if(FS.isChrdev(node.mode)){flags&=~512}if(flags&65536&&!FS.isDir(node.mode)){throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR)}if(!created){var err=FS.mayOpen(node,flags);if(err){throw new FS.ErrnoError(err)}}if(flags&512){FS.truncate(node,0)}flags&=~(128|512);var stream=FS.createStream({node:node,path:FS.getPath(node),flags:flags,seekable:true,position:0,stream_ops:node.stream_ops,ungotten:[],error:false},fd_start,fd_end);if(stream.stream_ops.open){stream.stream_ops.open(stream)}if(Module["logReadFiles"]&&!(flags&1)){if(!FS.readFiles)FS.readFiles={};if(!(path in FS.readFiles)){FS.readFiles[path]=1;Module["printErr"]("read file: "+path)}}try{if(FS.trackingDelegate["onOpenFile"]){var trackingFlags=0;if((flags&2097155)!==1){trackingFlags|=FS.tracking.openFlags.READ}if((flags&2097155)!==0){trackingFlags|=FS.tracking.openFlags.WRITE}FS.trackingDelegate["onOpenFile"](path,trackingFlags)}}catch(e){console.log("FS.trackingDelegate['onOpenFile']('"+path+"', flags) threw an exception: "+e.message)}return stream}),close:(function(stream){if(stream.getdents)stream.getdents=null;try{if(stream.stream_ops.close){stream.stream_ops.close(stream)}}catch(e){throw e}finally{FS.closeStream(stream.fd)}}),llseek:(function(stream,offset,whence){if(!stream.seekable||!stream.stream_ops.llseek){throw new FS.ErrnoError(ERRNO_CODES.ESPIPE)}stream.position=stream.stream_ops.llseek(stream,offset,whence);stream.ungotten=[];return stream.position}),read:(function(stream,buffer,offset,length,position){if(length<0||position<0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}if((stream.flags&2097155)===1){throw new FS.ErrnoError(ERRNO_CODES.EBADF)}if(FS.isDir(stream.node.mode)){throw new FS.ErrnoError(ERRNO_CODES.EISDIR)}if(!stream.stream_ops.read){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}var seeking=true;if(typeof position==="undefined"){position=stream.position;seeking=false}else if(!stream.seekable){throw new FS.ErrnoError(ERRNO_CODES.ESPIPE)}var bytesRead=stream.stream_ops.read(stream,buffer,offset,length,position);if(!seeking)stream.position+=bytesRead;return bytesRead}),write:(function(stream,buffer,offset,length,position,canOwn){if(length<0||position<0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(ERRNO_CODES.EBADF)}if(FS.isDir(stream.node.mode)){throw new FS.ErrnoError(ERRNO_CODES.EISDIR)}if(!stream.stream_ops.write){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}if(stream.flags&1024){FS.llseek(stream,0,2)}var seeking=true;if(typeof position==="undefined"){position=stream.position;seeking=false}else if(!stream.seekable){throw new FS.ErrnoError(ERRNO_CODES.ESPIPE)}var bytesWritten=stream.stream_ops.write(stream,buffer,offset,length,position,canOwn);if(!seeking)stream.position+=bytesWritten;try{if(stream.path&&FS.trackingDelegate["onWriteToFile"])FS.trackingDelegate["onWriteToFile"](stream.path)}catch(e){console.log("FS.trackingDelegate['onWriteToFile']('"+path+"') threw an exception: "+e.message)}return bytesWritten}),allocate:(function(stream,offset,length){if(offset<0||length<=0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(ERRNO_CODES.EBADF)}if(!FS.isFile(stream.node.mode)&&!FS.isDir(node.mode)){throw new FS.ErrnoError(ERRNO_CODES.ENODEV)}if(!stream.stream_ops.allocate){throw new FS.ErrnoError(ERRNO_CODES.EOPNOTSUPP)}stream.stream_ops.allocate(stream,offset,length)}),mmap:(function(stream,buffer,offset,length,position,prot,flags){if((stream.flags&2097155)===1){throw new FS.ErrnoError(ERRNO_CODES.EACCES)}if(!stream.stream_ops.mmap){throw new FS.ErrnoError(ERRNO_CODES.ENODEV)}return stream.stream_ops.mmap(stream,buffer,offset,length,position,prot,flags)}),msync:(function(stream,buffer,offset,length,mmapFlags){if(!stream||!stream.stream_ops.msync){return 0}return stream.stream_ops.msync(stream,buffer,offset,length,mmapFlags)}),munmap:(function(stream){return 0}),ioctl:(function(stream,cmd,arg){if(!stream.stream_ops.ioctl){throw new FS.ErrnoError(ERRNO_CODES.ENOTTY)}return stream.stream_ops.ioctl(stream,cmd,arg)}),readFile:(function(path,opts){opts=opts||{};opts.flags=opts.flags||"r";opts.encoding=opts.encoding||"binary";if(opts.encoding!=="utf8"&&opts.encoding!=="binary"){throw new Error('Invalid encoding type "'+opts.encoding+'"')}var ret;var stream=FS.open(path,opts.flags);var stat=FS.stat(path);var length=stat.size;var buf=new Uint8Array(length);FS.read(stream,buf,0,length,0);if(opts.encoding==="utf8"){ret=UTF8ArrayToString(buf,0)}else if(opts.encoding==="binary"){ret=buf}FS.close(stream);return ret}),writeFile:(function(path,data,opts){opts=opts||{};opts.flags=opts.flags||"w";opts.encoding=opts.encoding||"utf8";if(opts.encoding!=="utf8"&&opts.encoding!=="binary"){throw new Error('Invalid encoding type "'+opts.encoding+'"')}var stream=FS.open(path,opts.flags,opts.mode);if(opts.encoding==="utf8"){var buf=new Uint8Array(lengthBytesUTF8(data)+1);var actualNumBytes=stringToUTF8Array(data,buf,0,buf.length);FS.write(stream,buf,0,actualNumBytes,0,opts.canOwn)}else if(opts.encoding==="binary"){FS.write(stream,data,0,data.length,0,opts.canOwn)}FS.close(stream)}),cwd:(function(){return FS.currentPath}),chdir:(function(path){var lookup=FS.lookupPath(path,{follow:true});if(!FS.isDir(lookup.node.mode)){throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR)}var err=FS.nodePermissions(lookup.node,"x");if(err){throw new FS.ErrnoError(err)}FS.currentPath=lookup.path}),createDefaultDirectories:(function(){FS.mkdir("/tmp");FS.mkdir("/home");FS.mkdir("/home/web_user")}),createDefaultDevices:(function(){FS.mkdir("/dev");FS.registerDevice(FS.makedev(1,3),{read:(function(){return 0}),write:(function(stream,buffer,offset,length,pos){return length})});FS.mkdev("/dev/null",FS.makedev(1,3));TTY.register(FS.makedev(5,0),TTY.default_tty_ops);TTY.register(FS.makedev(6,0),TTY.default_tty1_ops);FS.mkdev("/dev/tty",FS.makedev(5,0));FS.mkdev("/dev/tty1",FS.makedev(6,0));var random_device;if(typeof crypto!=="undefined"){var randomBuffer=new Uint8Array(1);random_device=(function(){crypto.getRandomValues(randomBuffer);return randomBuffer[0]})}else if(ENVIRONMENT_IS_NODE){random_device=(function(){return require("crypto").randomBytes(1)[0]})}else{random_device=(function(){return Math.random()*256|0})}FS.createDevice("/dev","random",random_device);FS.createDevice("/dev","urandom",random_device);FS.mkdir("/dev/shm");FS.mkdir("/dev/shm/tmp")}),createSpecialDirectories:(function(){FS.mkdir("/proc");FS.mkdir("/proc/self");FS.mkdir("/proc/self/fd");FS.mount({mount:(function(){var node=FS.createNode("/proc/self","fd",16384|511,73);node.node_ops={lookup:(function(parent,name){var fd=+name;var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(ERRNO_CODES.EBADF);var ret={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:(function(){return stream.path})}};ret.parent=ret;return ret})};return node})},{},"/proc/self/fd")}),createStandardStreams:(function(){if(Module["stdin"]){FS.createDevice("/dev","stdin",Module["stdin"])}else{FS.symlink("/dev/tty","/dev/stdin")}if(Module["stdout"]){FS.createDevice("/dev","stdout",null,Module["stdout"])}else{FS.symlink("/dev/tty","/dev/stdout")}if(Module["stderr"]){FS.createDevice("/dev","stderr",null,Module["stderr"])}else{FS.symlink("/dev/tty1","/dev/stderr")}var stdin=FS.open("/dev/stdin","r");assert(stdin.fd===0,"invalid handle for stdin ("+stdin.fd+")");var stdout=FS.open("/dev/stdout","w");assert(stdout.fd===1,"invalid handle for stdout ("+stdout.fd+")");var stderr=FS.open("/dev/stderr","w");assert(stderr.fd===2,"invalid handle for stderr ("+stderr.fd+")")}),ensureErrnoError:(function(){if(FS.ErrnoError)return;FS.ErrnoError=function ErrnoError(errno,node){this.node=node;this.setErrno=(function(errno){this.errno=errno;for(var key in ERRNO_CODES){if(ERRNO_CODES[key]===errno){this.code=key;break}}});this.setErrno(errno);this.message=ERRNO_MESSAGES[errno]};FS.ErrnoError.prototype=new Error;FS.ErrnoError.prototype.constructor=FS.ErrnoError;[ERRNO_CODES.ENOENT].forEach((function(code){FS.genericErrors[code]=new FS.ErrnoError(code);FS.genericErrors[code].stack=""}))}),staticInit:(function(){FS.ensureErrnoError();FS.nameTable=new Array(4096);FS.mount(MEMFS,{},"/");FS.createDefaultDirectories();FS.createDefaultDevices();FS.createSpecialDirectories();FS.filesystems={"MEMFS":MEMFS,"IDBFS":IDBFS,"NODEFS":NODEFS,"WORKERFS":WORKERFS}}),init:(function(input,output,error){assert(!FS.init.initialized,"FS.init was previously called. If you want to initialize later with custom parameters, remove any earlier calls (note that one is automatically added to the generated code)");FS.init.initialized=true;FS.ensureErrnoError();Module["stdin"]=input||Module["stdin"];Module["stdout"]=output||Module["stdout"];Module["stderr"]=error||Module["stderr"];FS.createStandardStreams()}),quit:(function(){FS.init.initialized=false;var fflush=Module["_fflush"];if(fflush)fflush(0);for(var i=0;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=(function(from,to){if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);if(typeof Uint8Array!="undefined")xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}else{return intArrayFromString(xhr.responseText||"",true)}});var lazyArray=this;lazyArray.setDataGetter((function(chunkNum){var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]==="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]==="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]}));this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!=="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;Object.defineProperty(lazyArray,"length",{get:(function(){if(!this.lengthKnown){this.cacheLength()}return this._length})});Object.defineProperty(lazyArray,"chunkSize",{get:(function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize})});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperty(node,"usedBytes",{get:(function(){return this.contents.length})});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach((function(key){var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){if(!FS.forceLoadFile(node)){throw new FS.ErrnoError(ERRNO_CODES.EIO)}return fn.apply(null,arguments)}}));stream_ops.read=function stream_ops_read(stream,buffer,offset,length,position){if(!FS.forceLoadFile(node)){throw new FS.ErrnoError(ERRNO_CODES.EIO)}var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);assert(size>=0);if(contents.slice){for(var i=0;i=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up--;up){parts.unshift("..")}}return parts}),normalize:(function(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter((function(p){return!!p})),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path}),dirname:(function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir}),basename:(function(path){if(path==="/")return"/";var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)}),extname:(function(path){return PATH.splitPath(path)[3]}),join:(function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))}),join2:(function(l,r){return PATH.normalize(l+"/"+r)}),resolve:(function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!=="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=path.charAt(0)==="/"}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter((function(p){return!!p})),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."}),relative:(function(from,to){from=PATH.resolve(from).substr(1);to=PATH.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i0){var start=Date.now();var blocker=Browser.mainLoop.queue.shift();blocker.func(blocker.arg);if(Browser.mainLoop.remainingBlockers){var remaining=Browser.mainLoop.remainingBlockers;var next=remaining%1==0?remaining-1:Math.floor(remaining);if(blocker.counted){Browser.mainLoop.remainingBlockers=next}else{next=next+.5;Browser.mainLoop.remainingBlockers=(8*remaining+next)/9}}console.log('main loop blocker "'+blocker.name+'" took '+(Date.now()-start)+" ms");Browser.mainLoop.updateStatus();setTimeout(Browser.mainLoop.runner,0);return}if(thisMainLoopId1&&Browser.mainLoop.currentFrameNumber%Browser.mainLoop.timingValue!=0){Browser.mainLoop.scheduler();return}if(Browser.mainLoop.method==="timeout"&&Module.ctx){Module.printErr("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!");Browser.mainLoop.method=""}Browser.mainLoop.runIter((function(){if(typeof arg!=="undefined"){Runtime.dynCall("vi",func,[arg])}else{Runtime.dynCall("v",func)}}));if(thisMainLoopId0)_emscripten_set_main_loop_timing(0,1e3/fps);else _emscripten_set_main_loop_timing(1,1);Browser.mainLoop.scheduler()}if(simulateInfiniteLoop){throw"SimulateInfiniteLoop"}}var Browser={mainLoop:{scheduler:null,method:"",currentlyRunningMainloop:0,func:null,arg:0,timingMode:0,timingValue:0,currentFrameNumber:0,queue:[],pause:(function(){Browser.mainLoop.scheduler=null;Browser.mainLoop.currentlyRunningMainloop++}),resume:(function(){Browser.mainLoop.currentlyRunningMainloop++;var timingMode=Browser.mainLoop.timingMode;var timingValue=Browser.mainLoop.timingValue;var func=Browser.mainLoop.func;Browser.mainLoop.func=null;_emscripten_set_main_loop(func,0,false,Browser.mainLoop.arg,true);_emscripten_set_main_loop_timing(timingMode,timingValue);Browser.mainLoop.scheduler()}),updateStatus:(function(){if(Module["setStatus"]){var message=Module["statusMessage"]||"Please wait...";var remaining=Browser.mainLoop.remainingBlockers;var expected=Browser.mainLoop.expectedBlockers;if(remaining){if(remaining=6){var curr=leftchar>>leftbits-6&63;leftbits-=6;ret+=BASE[curr]}}if(leftbits==2){ret+=BASE[(leftchar&3)<<4];ret+=PAD+PAD}else if(leftbits==4){ret+=BASE[(leftchar&15)<<2];ret+=PAD}return ret}audio.src="data:audio/x-"+name.substr(-3)+";base64,"+encode64(byteArray);finish(audio)};audio.src=url;Browser.safeSetTimeout((function(){finish(audio)}),1e4)}else{return fail()}};Module["preloadPlugins"].push(audioPlugin);var canvas=Module["canvas"];function pointerLockChange(){Browser.pointerLock=document["pointerLockElement"]===canvas||document["mozPointerLockElement"]===canvas||document["webkitPointerLockElement"]===canvas||document["msPointerLockElement"]===canvas}if(canvas){canvas.requestPointerLock=canvas["requestPointerLock"]||canvas["mozRequestPointerLock"]||canvas["webkitRequestPointerLock"]||canvas["msRequestPointerLock"]||(function(){});canvas.exitPointerLock=document["exitPointerLock"]||document["mozExitPointerLock"]||document["webkitExitPointerLock"]||document["msExitPointerLock"]||(function(){});canvas.exitPointerLock=canvas.exitPointerLock.bind(document);document.addEventListener("pointerlockchange",pointerLockChange,false);document.addEventListener("mozpointerlockchange",pointerLockChange,false);document.addEventListener("webkitpointerlockchange",pointerLockChange,false);document.addEventListener("mspointerlockchange",pointerLockChange,false);if(Module["elementPointerLock"]){canvas.addEventListener("click",(function(ev){if(!Browser.pointerLock&&canvas.requestPointerLock){canvas.requestPointerLock();ev.preventDefault()}}),false)}}}),createContext:(function(canvas,useWebGL,setInModule,webGLContextAttributes){if(useWebGL&&Module.ctx&&canvas==Module.canvas)return Module.ctx;var ctx;var contextHandle;if(useWebGL){var contextAttributes={antialias:false,alpha:false};if(webGLContextAttributes){for(var attribute in webGLContextAttributes){contextAttributes[attribute]=webGLContextAttributes[attribute]}}contextHandle=GL.createContext(canvas,contextAttributes);if(contextHandle){ctx=GL.getContext(contextHandle).GLctx}canvas.style.backgroundColor="black"}else{ctx=canvas.getContext("2d")}if(!ctx)return null;if(setInModule){if(!useWebGL)assert(typeof GLctx==="undefined","cannot set in module if GLctx is used, but we are a non-GL context that would replace it");Module.ctx=ctx;if(useWebGL)GL.makeContextCurrent(contextHandle);Module.useWebGL=useWebGL;Browser.moduleContextCreatedCallbacks.forEach((function(callback){callback()}));Browser.init()}return ctx}),destroyContext:(function(canvas,useWebGL,setInModule){}),fullScreenHandlersInstalled:false,lockPointer:undefined,resizeCanvas:undefined,requestFullScreen:(function(lockPointer,resizeCanvas,vrDevice){Browser.lockPointer=lockPointer;Browser.resizeCanvas=resizeCanvas;Browser.vrDevice=vrDevice;if(typeof Browser.lockPointer==="undefined")Browser.lockPointer=true;if(typeof Browser.resizeCanvas==="undefined")Browser.resizeCanvas=false;if(typeof Browser.vrDevice==="undefined")Browser.vrDevice=null;var canvas=Module["canvas"];function fullScreenChange(){Browser.isFullScreen=false;var canvasContainer=canvas.parentNode;if((document["webkitFullScreenElement"]||document["webkitFullscreenElement"]||document["mozFullScreenElement"]||document["mozFullscreenElement"]||document["fullScreenElement"]||document["fullscreenElement"]||document["msFullScreenElement"]||document["msFullscreenElement"]||document["webkitCurrentFullScreenElement"])===canvasContainer){canvas.cancelFullScreen=document["cancelFullScreen"]||document["mozCancelFullScreen"]||document["webkitCancelFullScreen"]||document["msExitFullscreen"]||document["exitFullscreen"]||(function(){});canvas.cancelFullScreen=canvas.cancelFullScreen.bind(document);if(Browser.lockPointer)canvas.requestPointerLock();Browser.isFullScreen=true;if(Browser.resizeCanvas)Browser.setFullScreenCanvasSize()}else{canvasContainer.parentNode.insertBefore(canvas,canvasContainer);canvasContainer.parentNode.removeChild(canvasContainer);if(Browser.resizeCanvas)Browser.setWindowedCanvasSize()}if(Module["onFullScreen"])Module["onFullScreen"](Browser.isFullScreen);Browser.updateCanvasDimensions(canvas)}if(!Browser.fullScreenHandlersInstalled){Browser.fullScreenHandlersInstalled=true;document.addEventListener("fullscreenchange",fullScreenChange,false);document.addEventListener("mozfullscreenchange",fullScreenChange,false);document.addEventListener("webkitfullscreenchange",fullScreenChange,false);document.addEventListener("MSFullscreenChange",fullScreenChange,false)}var canvasContainer=document.createElement("div");canvas.parentNode.insertBefore(canvasContainer,canvas);canvasContainer.appendChild(canvas);canvasContainer.requestFullScreen=canvasContainer["requestFullScreen"]||canvasContainer["mozRequestFullScreen"]||canvasContainer["msRequestFullscreen"]||(canvasContainer["webkitRequestFullScreen"]?(function(){canvasContainer["webkitRequestFullScreen"](Element["ALLOW_KEYBOARD_INPUT"])}):null);if(vrDevice){canvasContainer.requestFullScreen({vrDisplay:vrDevice})}else{canvasContainer.requestFullScreen()}}),nextRAF:0,fakeRequestAnimationFrame:(function(func){var now=Date.now();if(Browser.nextRAF===0){Browser.nextRAF=now+1e3/60}else{while(now+2>=Browser.nextRAF){Browser.nextRAF+=1e3/60}}var delay=Math.max(Browser.nextRAF-now,0);setTimeout(func,delay)}),requestAnimationFrame:function requestAnimationFrame(func){if(typeof window==="undefined"){Browser.fakeRequestAnimationFrame(func)}else{if(!window.requestAnimationFrame){window.requestAnimationFrame=window["requestAnimationFrame"]||window["mozRequestAnimationFrame"]||window["webkitRequestAnimationFrame"]||window["msRequestAnimationFrame"]||window["oRequestAnimationFrame"]||Browser.fakeRequestAnimationFrame}window.requestAnimationFrame(func)}},safeCallback:(function(func){return(function(){if(!ABORT)return func.apply(null,arguments)})}),allowAsyncCallbacks:true,queuedAsyncCallbacks:[],pauseAsyncCallbacks:(function(){Browser.allowAsyncCallbacks=false}),resumeAsyncCallbacks:(function(){Browser.allowAsyncCallbacks=true;if(Browser.queuedAsyncCallbacks.length>0){var callbacks=Browser.queuedAsyncCallbacks;Browser.queuedAsyncCallbacks=[];callbacks.forEach((function(func){func()}))}}),safeRequestAnimationFrame:(function(func){return Browser.requestAnimationFrame((function(){if(ABORT)return;if(Browser.allowAsyncCallbacks){func()}else{Browser.queuedAsyncCallbacks.push(func)}}))}),safeSetTimeout:(function(func,timeout){Module["noExitRuntime"]=true;return setTimeout((function(){if(ABORT)return;if(Browser.allowAsyncCallbacks){func()}else{Browser.queuedAsyncCallbacks.push(func)}}),timeout)}),safeSetInterval:(function(func,timeout){Module["noExitRuntime"]=true;return setInterval((function(){if(ABORT)return;if(Browser.allowAsyncCallbacks){func()}}),timeout)}),getMimetype:(function(name){return{"jpg":"image/jpeg","jpeg":"image/jpeg","png":"image/png","bmp":"image/bmp","ogg":"audio/ogg","wav":"audio/wav","mp3":"audio/mpeg"}[name.substr(name.lastIndexOf(".")+1)]}),getUserMedia:(function(func){if(!window.getUserMedia){window.getUserMedia=navigator["getUserMedia"]||navigator["mozGetUserMedia"]}window.getUserMedia(func)}),getMovementX:(function(event){return event["movementX"]||event["mozMovementX"]||event["webkitMovementX"]||0}),getMovementY:(function(event){return event["movementY"]||event["mozMovementY"]||event["webkitMovementY"]||0}),getMouseWheelDelta:(function(event){var delta=0;switch(event.type){case"DOMMouseScroll":delta=event.detail;break;case"mousewheel":delta=event.wheelDelta;break;case"wheel":delta=event["deltaY"];break;default:throw"unrecognized mouse wheel event: "+event.type}return delta}),mouseX:0,mouseY:0,mouseMovementX:0,mouseMovementY:0,touches:{},lastTouches:{},calculateMouseEvent:(function(event){if(Browser.pointerLock){if(event.type!="mousemove"&&"mozMovementX"in event){Browser.mouseMovementX=Browser.mouseMovementY=0}else{Browser.mouseMovementX=Browser.getMovementX(event);Browser.mouseMovementY=Browser.getMovementY(event)}if(typeof SDL!="undefined"){Browser.mouseX=SDL.mouseX+Browser.mouseMovementX;Browser.mouseY=SDL.mouseY+Browser.mouseMovementY}else{Browser.mouseX+=Browser.mouseMovementX;Browser.mouseY+=Browser.mouseMovementY}}else{var rect=Module["canvas"].getBoundingClientRect();var cw=Module["canvas"].width;var ch=Module["canvas"].height;var scrollX=typeof window.scrollX!=="undefined"?window.scrollX:window.pageXOffset;var scrollY=typeof window.scrollY!=="undefined"?window.scrollY:window.pageYOffset;if(event.type==="touchstart"||event.type==="touchend"||event.type==="touchmove"){var touch=event.touch;if(touch===undefined){return}var adjustedX=touch.pageX-(scrollX+rect.left);var adjustedY=touch.pageY-(scrollY+rect.top);adjustedX=adjustedX*(cw/rect.width);adjustedY=adjustedY*(ch/rect.height);var coords={x:adjustedX,y:adjustedY};if(event.type==="touchstart"){Browser.lastTouches[touch.identifier]=coords;Browser.touches[touch.identifier]=coords}else if(event.type==="touchend"||event.type==="touchmove"){var last=Browser.touches[touch.identifier];if(!last)last=coords;Browser.lastTouches[touch.identifier]=last;Browser.touches[touch.identifier]=coords}return}var x=event.pageX-(scrollX+rect.left);var y=event.pageY-(scrollY+rect.top);x=x*(cw/rect.width);y=y*(ch/rect.height);Browser.mouseMovementX=x-Browser.mouseX;Browser.mouseMovementY=y-Browser.mouseY;Browser.mouseX=x;Browser.mouseY=y}}),xhrLoad:(function(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function xhr_onload(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response)}else{onerror()}};xhr.onerror=onerror;xhr.send(null)}),asyncLoad:(function(url,onload,onerror,noRunDep){Browser.xhrLoad(url,(function(arrayBuffer){assert(arrayBuffer,'Loading data file "'+url+'" failed (no arrayBuffer).');onload(new Uint8Array(arrayBuffer));if(!noRunDep)removeRunDependency("al "+url)}),(function(event){if(onerror){onerror()}else{throw'Loading data file "'+url+'" failed.'}}));if(!noRunDep)addRunDependency("al "+url)}),resizeListeners:[],updateResizeListeners:(function(){var canvas=Module["canvas"];Browser.resizeListeners.forEach((function(listener){listener(canvas.width,canvas.height)}))}),setCanvasSize:(function(width,height,noUpdates){var canvas=Module["canvas"];Browser.updateCanvasDimensions(canvas,width,height);if(!noUpdates)Browser.updateResizeListeners()}),windowedWidth:0,windowedHeight:0,setFullScreenCanvasSize:(function(){if(typeof SDL!="undefined"){var flags=HEAPU32[SDL.screen+Runtime.QUANTUM_SIZE*0>>2];flags=flags|8388608;HEAP32[SDL.screen+Runtime.QUANTUM_SIZE*0>>2]=flags}Browser.updateResizeListeners()}),setWindowedCanvasSize:(function(){if(typeof SDL!="undefined"){var flags=HEAPU32[SDL.screen+Runtime.QUANTUM_SIZE*0>>2];flags=flags&~8388608;HEAP32[SDL.screen+Runtime.QUANTUM_SIZE*0>>2]=flags}Browser.updateResizeListeners()}),updateCanvasDimensions:(function(canvas,wNative,hNative){if(wNative&&hNative){canvas.widthNative=wNative;canvas.heightNative=hNative}else{wNative=canvas.widthNative;hNative=canvas.heightNative}var w=wNative;var h=hNative;if(Module["forcedAspectRatio"]&&Module["forcedAspectRatio"]>0){if(w/h>2]=ret}return ret}function _malloc(bytes){var ptr=Runtime.dynamicAlloc(bytes+8);return ptr+8&4294967288}Module["_malloc"]=_malloc;function ___cxa_allocate_exception(size){return _malloc(size)}var SYSCALLS={DEFAULT_POLLMASK:5,mappings:{},umask:511,calculateAt:(function(dirfd,path){if(path[0]!=="/"){var dir;if(dirfd===-100){dir=FS.cwd()}else{var dirstream=FS.getStream(dirfd);if(!dirstream)throw new FS.ErrnoError(ERRNO_CODES.EBADF);dir=dirstream.path}path=PATH.join2(dir,path)}return path}),doStat:(function(func,path,buf){try{var stat=func(path)}catch(e){if(e&&e.node&&PATH.normalize(path)!==PATH.normalize(FS.getPath(e.node))){return-ERRNO_CODES.ENOTDIR}throw e}HEAP32[buf>>2]=stat.dev;HEAP32[buf+4>>2]=0;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAP32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;HEAP32[buf+32>>2]=0;HEAP32[buf+36>>2]=stat.size;HEAP32[buf+40>>2]=4096;HEAP32[buf+44>>2]=stat.blocks;HEAP32[buf+48>>2]=stat.atime.getTime()/1e3|0;HEAP32[buf+52>>2]=0;HEAP32[buf+56>>2]=stat.mtime.getTime()/1e3|0;HEAP32[buf+60>>2]=0;HEAP32[buf+64>>2]=stat.ctime.getTime()/1e3|0;HEAP32[buf+68>>2]=0;HEAP32[buf+72>>2]=stat.ino;return 0}),doMsync:(function(addr,stream,len,flags){var buffer=new Uint8Array(HEAPU8.subarray(addr,addr+len));FS.msync(stream,buffer,0,len,flags)}),doMkdir:(function(path,mode){path=PATH.normalize(path);if(path[path.length-1]==="/")path=path.substr(0,path.length-1);FS.mkdir(path,mode,0);return 0}),doMknod:(function(path,mode,dev){switch(mode&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-ERRNO_CODES.EINVAL}FS.mknod(path,mode,dev);return 0}),doReadlink:(function(path,buf,bufsize){if(bufsize<=0)return-ERRNO_CODES.EINVAL;var ret=FS.readlink(path);ret=ret.slice(0,Math.max(0,bufsize));writeStringToMemory(ret,buf,true);return ret.length}),doAccess:(function(path,amode){if(amode&~7){return-ERRNO_CODES.EINVAL}var node;var lookup=FS.lookupPath(path,{follow:true});node=lookup.node;var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-ERRNO_CODES.EACCES}return 0}),doDup:(function(path,flags,suggestFD){var suggest=FS.getStream(suggestFD);if(suggest)FS.close(suggest);return FS.open(path,flags,0,suggestFD,suggestFD).fd}),doReadv:(function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr}return ret}),varargs:0,get:(function(varargs){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret}),getStr:(function(){var ret=Pointer_stringify(SYSCALLS.get());return ret}),getStreamFromFD:(function(){var stream=FS.getStream(SYSCALLS.get());if(!stream)throw new FS.ErrnoError(ERRNO_CODES.EBADF);return stream}),getSocketFromFD:(function(){var socket=SOCKFS.getSocket(SYSCALLS.get());if(!socket)throw new FS.ErrnoError(ERRNO_CODES.EBADF);return socket}),getSocketAddress:(function(allowNull){var addrp=SYSCALLS.get(),addrlen=SYSCALLS.get();if(allowNull&&addrp===0)return null;var info=__read_sockaddr(addrp,addrlen);if(info.errno)throw new FS.ErrnoError(info.errno);info.addr=DNS.lookup_addr(info.addr)||info.addr;return info}),get64:(function(){var low=SYSCALLS.get(),high=SYSCALLS.get();if(low>=0)assert(high===0);else assert(high===-1);return low}),getZero:(function(){assert(SYSCALLS.get()===0)})};function ___syscall54(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),op=SYSCALLS.get();switch(op){case 21505:{if(!stream.tty)return-ERRNO_CODES.ENOTTY;return 0};case 21506:{if(!stream.tty)return-ERRNO_CODES.ENOTTY;return 0};case 21519:{if(!stream.tty)return-ERRNO_CODES.ENOTTY;var argp=SYSCALLS.get();HEAP32[argp>>2]=0;return 0};case 21520:{if(!stream.tty)return-ERRNO_CODES.ENOTTY;return-ERRNO_CODES.EINVAL};case 21531:{var argp=SYSCALLS.get();return FS.ioctl(stream,op,argp)};default:abort("bad ioctl syscall "+op)}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}Module["_i64Add"]=_i64Add;Module["_bitshift64Lshr"]=_bitshift64Lshr;function ___cxa_pure_virtual(){ABORT=true;throw"Pure virtual function called!"}function _b2WorldEndContactBody(contactPtr){b2World.EndContactBody(contactPtr)}var _BDtoIHigh=true;function _pthread_cleanup_push(routine,arg){__ATEXIT__.push((function(){Runtime.dynCall("vi",routine,[arg])}));_pthread_cleanup_push.level=__ATEXIT__.length}function _pthread_cleanup_pop(){assert(_pthread_cleanup_push.level==__ATEXIT__.length,"cannot pop if something else added meanwhile!");__ATEXIT__.pop();_pthread_cleanup_push.level=__ATEXIT__.length}function _b2WorldPreSolve(contactPtr,oldManifoldPtr){b2World.PreSolve(contactPtr,oldManifoldPtr)}function ___cxa_begin_catch(ptr){__ZSt18uncaught_exceptionv.uncaught_exception--;EXCEPTIONS.caught.push(ptr);EXCEPTIONS.addRef(EXCEPTIONS.deAdjust(ptr));return ptr}var _sinf=Math_sin;function _emscripten_memcpy_big(dest,src,num){HEAPU8.set(HEAPU8.subarray(src,src+num),dest);return dest}Module["_memcpy"]=_memcpy;function ___syscall6(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD();FS.close(stream);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function _b2WorldQueryAABB(fixturePtr){return b2World.QueryAABB(fixturePtr)}function _sbrk(bytes){var self=_sbrk;if(!self.called){DYNAMICTOP=alignMemoryPage(DYNAMICTOP);self.called=true;assert(Runtime.dynamicAlloc);self.alloc=Runtime.dynamicAlloc;Runtime.dynamicAlloc=(function(){abort("cannot dynamically allocate, sbrk now has control")})}var ret=DYNAMICTOP;if(bytes!=0){var success=self.alloc(bytes);if(!success)return-1>>>0}return ret}Module["_memmove"]=_memmove;var _BItoD=true;function _b2WorldPostSolve(contactPtr,impulsePtr){b2World.PostSolve(contactPtr,impulsePtr)}var _FtoILow=true;function _pthread_self(){return 0}function ___syscall140(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),offset_high=SYSCALLS.get(),offset_low=SYSCALLS.get(),result=SYSCALLS.get(),whence=SYSCALLS.get();var offset=offset_low;assert(offset_high===0);FS.llseek(stream,offset,whence);HEAP32[result>>2]=stream.position;if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall146(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),iov=SYSCALLS.get(),iovcnt=SYSCALLS.get();return SYSCALLS.doWritev(stream,iov,iovcnt)}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}Module["requestFullScreen"]=function Module_requestFullScreen(lockPointer,resizeCanvas,vrDevice){Browser.requestFullScreen(lockPointer,resizeCanvas,vrDevice)};Module["requestAnimationFrame"]=function Module_requestAnimationFrame(func){Browser.requestAnimationFrame(func)};Module["setCanvasSize"]=function Module_setCanvasSize(width,height,noUpdates){Browser.setCanvasSize(width,height,noUpdates)};Module["pauseMainLoop"]=function Module_pauseMainLoop(){Browser.mainLoop.pause()};Module["resumeMainLoop"]=function Module_resumeMainLoop(){Browser.mainLoop.resume()};Module["getUserMedia"]=function Module_getUserMedia(){Browser.getUserMedia()};Module["createContext"]=function Module_createContext(canvas,useWebGL,setInModule,webGLContextAttributes){return Browser.createContext(canvas,useWebGL,setInModule,webGLContextAttributes)};FS.staticInit();__ATINIT__.unshift((function(){if(!Module["noFSInit"]&&!FS.init.initialized)FS.init()}));__ATMAIN__.push((function(){FS.ignorePermissions=false}));__ATEXIT__.push((function(){FS.quit()}));Module["FS_createFolder"]=FS.createFolder;Module["FS_createPath"]=FS.createPath;Module["FS_createDataFile"]=FS.createDataFile;Module["FS_createPreloadedFile"]=FS.createPreloadedFile;Module["FS_createLazyFile"]=FS.createLazyFile;Module["FS_createLink"]=FS.createLink;Module["FS_createDevice"]=FS.createDevice;Module["FS_unlink"]=FS.unlink;__ATINIT__.unshift((function(){TTY.init()}));__ATEXIT__.push((function(){TTY.shutdown()}));if(ENVIRONMENT_IS_NODE){var fs=require("fs");var NODEJS_PATH=require("path");NODEFS.staticInit()}STACK_BASE=STACKTOP=Runtime.alignMemory(STATICTOP);staticSealed=true;STACK_MAX=STACK_BASE+TOTAL_STACK;DYNAMIC_BASE=DYNAMICTOP=Runtime.alignMemory(STACK_MAX);assert(DYNAMIC_BASE>3;switch(n|0){case 2:{o=5;break a;break}case 3:{o=7;break a;break}case 4:{o=15;break a;break}case 5:{o=27;break a;break}case 1:case 0:{o=86;break a;break}default:{}}if((m|0)<248){o=29;break a}p=j+(((n|0)/2|0)<<3)|0;do if((m|0)<=7992){q=Ya[c[d>>2]&31](p,j)|0;r=Ya[c[d>>2]&31](h,p)|0;if(!q){if(!r){s=0;break}q=p;t=c[q>>2]|0;u=c[q+4>>2]|0;q=h;v=c[q+4>>2]|0;w=p;c[w>>2]=c[q>>2];c[w+4>>2]=v;v=h;c[v>>2]=t;c[v+4>>2]=u;if(!(Ya[c[d>>2]&31](p,j)|0)){s=1;break}u=j;v=c[u>>2]|0;t=c[u+4>>2]|0;u=p;w=c[u+4>>2]|0;q=j;c[q>>2]=c[u>>2];c[q+4>>2]=w;w=p;c[w>>2]=v;c[w+4>>2]=t;s=2;break}t=j;w=c[t>>2]|0;v=c[t+4>>2]|0;if(r){r=h;t=c[r+4>>2]|0;q=j;c[q>>2]=c[r>>2];c[q+4>>2]=t;t=h;c[t>>2]=w;c[t+4>>2]=v;s=1;break}t=p;q=c[t+4>>2]|0;r=j;c[r>>2]=c[t>>2];c[r+4>>2]=q;q=p;c[q>>2]=w;c[q+4>>2]=v;if(Ya[c[d>>2]&31](h,p)|0){v=p;q=c[v>>2]|0;w=c[v+4>>2]|0;v=h;r=c[v+4>>2]|0;t=p;c[t>>2]=c[v>>2];c[t+4>>2]=r;r=h;c[r>>2]=q;c[r+4>>2]=w;s=2}else s=1}else{w=(n|0)/4|0;s=Nk(j,j+(w<<3)|0,p,p+(w<<3)|0,h,d)|0}while(0);if(Ya[c[d>>2]&31](j,p)|0){x=h;y=s;break}else z=h;while(1){z=z+-8|0;if((j|0)==(z|0))break;if(Ya[c[d>>2]&31](z,p)|0){o=69;break b}}n=j+8|0;if(Ya[c[d>>2]&31](j,h)|0)A=n;else{if((n|0)==(h|0)){o=86;break a}else B=n;while(1){if(Ya[c[d>>2]&31](j,B)|0)break;n=B+8|0;if((n|0)==(h|0)){o=86;break a}else B=n}n=B;m=c[n>>2]|0;w=c[n+4>>2]|0;n=h;r=c[n+4>>2]|0;q=B;c[q>>2]=c[n>>2];c[q+4>>2]=r;r=h;c[r>>2]=m;c[r+4>>2]=w;A=B+8|0}if((A|0)==(h|0)){o=86;break a}else{C=h;D=A}while(1){w=D;while(1){E=w+8|0;if(Ya[c[d>>2]&31](j,w)|0){F=C;break}else w=E}do F=F+-8|0;while(Ya[c[d>>2]&31](j,F)|0);if(w>>>0>=F>>>0){j=w;continue b}r=w;m=c[r>>2]|0;q=c[r+4>>2]|0;r=F;n=c[r+4>>2]|0;t=w;c[t>>2]=c[r>>2];c[t+4>>2]=n;n=F;c[n>>2]=m;c[n+4>>2]=q;C=F;D=E}}if((o|0)==69){o=0;q=j;n=c[q>>2]|0;m=c[q+4>>2]|0;q=z;t=c[q+4>>2]|0;r=j;c[r>>2]=c[q>>2];c[r+4>>2]=t;t=z;c[t>>2]=n;c[t+4>>2]=m;x=z;y=s+1|0}m=j+8|0;c:do if(m>>>0>>0){t=p;n=x;r=m;q=y;while(1){v=r;while(1){G=v+8|0;if(Ya[c[d>>2]&31](v,t)|0)v=G;else{H=n;break}}do H=H+-8|0;while(!(Ya[c[d>>2]&31](H,t)|0));if(v>>>0>H>>>0){I=t;J=q;K=v;break c}w=v;u=c[w>>2]|0;L=c[w+4>>2]|0;w=H;M=c[w+4>>2]|0;N=v;c[N>>2]=c[w>>2];c[N+4>>2]=M;M=H;c[M>>2]=u;c[M+4>>2]=L;t=(t|0)==(v|0)?H:t;n=H;r=G;q=q+1|0}}else{I=p;J=y;K=m}while(0);if((K|0)!=(I|0)?Ya[c[d>>2]&31](I,K)|0:0){m=K;q=c[m>>2]|0;r=c[m+4>>2]|0;m=I;n=c[m+4>>2]|0;t=K;c[t>>2]=c[m>>2];c[t+4>>2]=n;n=I;c[n>>2]=q;c[n+4>>2]=r;O=J+1|0}else O=J;if(!O){P=Ok(j,K,d)|0;r=K+8|0;if(Ok(r,a,d)|0){o=85;break}if(P){i=r;continue}}r=K;if((r-k|0)>=(b-r|0)){o=84;break}Mk(j,K,d);i=K+8|0}if((o|0)==84){o=0;Mk(K+8|0,a,d);g=j;a=K;continue}else if((o|0)==85){o=0;if(P){o=86;break}else{g=j;a=K;continue}}}if((o|0)==5){if(!(Ya[c[d>>2]&31](h,j)|0)){l=e;return}K=j;g=c[K>>2]|0;P=c[K+4>>2]|0;K=h;k=c[K+4>>2]|0;O=j;c[O>>2]=c[K>>2];c[O+4>>2]=k;k=h;c[k>>2]=g;c[k+4>>2]=P;l=e;return}else if((o|0)==7){P=j+8|0;k=Ya[c[d>>2]&31](P,j)|0;g=Ya[c[d>>2]&31](h,P)|0;if(!k){if(!g){l=e;return}k=P;O=c[k>>2]|0;K=c[k+4>>2]|0;k=h;J=c[k+4>>2]|0;I=P;c[I>>2]=c[k>>2];c[I+4>>2]=J;J=h;c[J>>2]=O;c[J+4>>2]=K;if(!(Ya[c[d>>2]&31](P,j)|0)){l=e;return}K=j;J=c[K>>2]|0;O=c[K+4>>2]|0;K=P;I=c[K+4>>2]|0;k=j;c[k>>2]=c[K>>2];c[k+4>>2]=I;I=P;c[I>>2]=J;c[I+4>>2]=O;l=e;return}O=j;I=c[O>>2]|0;J=c[O+4>>2]|0;if(g){g=h;O=c[g+4>>2]|0;k=j;c[k>>2]=c[g>>2];c[k+4>>2]=O;O=h;c[O>>2]=I;c[O+4>>2]=J;l=e;return}O=P;k=c[O+4>>2]|0;g=j;c[g>>2]=c[O>>2];c[g+4>>2]=k;k=P;c[k>>2]=I;c[k+4>>2]=J;if(!(Ya[c[d>>2]&31](h,P)|0)){l=e;return}J=P;k=c[J>>2]|0;I=c[J+4>>2]|0;J=h;g=c[J+4>>2]|0;O=P;c[O>>2]=c[J>>2];c[O+4>>2]=g;g=h;c[g>>2]=k;c[g+4>>2]=I;l=e;return}else if((o|0)==15){I=j+8|0;g=j+16|0;k=Ya[c[d>>2]&31](I,j)|0;O=Ya[c[d>>2]&31](g,I)|0;do if(k){J=j;P=c[J>>2]|0;K=c[J+4>>2]|0;if(O){J=g;y=c[J+4>>2]|0;p=j;c[p>>2]=c[J>>2];c[p+4>>2]=y;y=g;c[y>>2]=P;c[y+4>>2]=K;break}y=I;p=c[y+4>>2]|0;J=j;c[J>>2]=c[y>>2];c[J+4>>2]=p;p=I;c[p>>2]=P;c[p+4>>2]=K;if(Ya[c[d>>2]&31](g,I)|0){K=I;p=c[K>>2]|0;P=c[K+4>>2]|0;K=g;J=c[K+4>>2]|0;y=I;c[y>>2]=c[K>>2];c[y+4>>2]=J;J=g;c[J>>2]=p;c[J+4>>2]=P}}else if(O?(P=I,J=c[P>>2]|0,p=c[P+4>>2]|0,P=g,y=c[P+4>>2]|0,K=I,c[K>>2]=c[P>>2],c[K+4>>2]=y,y=g,c[y>>2]=J,c[y+4>>2]=p,Ya[c[d>>2]&31](I,j)|0):0){p=j;y=c[p>>2]|0;J=c[p+4>>2]|0;p=I;K=c[p+4>>2]|0;P=j;c[P>>2]=c[p>>2];c[P+4>>2]=K;K=I;c[K>>2]=y;c[K+4>>2]=J}while(0);if(!(Ya[c[d>>2]&31](h,g)|0)){l=e;return}O=g;k=c[O>>2]|0;J=c[O+4>>2]|0;O=h;K=c[O+4>>2]|0;y=g;c[y>>2]=c[O>>2];c[y+4>>2]=K;K=h;c[K>>2]=k;c[K+4>>2]=J;if(!(Ya[c[d>>2]&31](g,I)|0)){l=e;return}J=I;K=c[J>>2]|0;k=c[J+4>>2]|0;J=g;y=c[J+4>>2]|0;O=I;c[O>>2]=c[J>>2];c[O+4>>2]=y;y=g;c[y>>2]=K;c[y+4>>2]=k;if(!(Ya[c[d>>2]&31](I,j)|0)){l=e;return}k=j;y=c[k>>2]|0;K=c[k+4>>2]|0;k=I;g=c[k+4>>2]|0;O=j;c[O>>2]=c[k>>2];c[O+4>>2]=g;g=I;c[g>>2]=y;c[g+4>>2]=K;l=e;return}else if((o|0)==27){Nk(j,j+8|0,j+16|0,j+24|0,h,d)|0;l=e;return}else if((o|0)==29){h=j+16|0;K=j+8|0;g=Ya[c[d>>2]&31](K,j)|0;y=Ya[c[d>>2]&31](h,K)|0;do if(g){I=j;O=c[I>>2]|0;k=c[I+4>>2]|0;if(y){I=h;J=c[I+4>>2]|0;P=j;c[P>>2]=c[I>>2];c[P+4>>2]=J;J=h;c[J>>2]=O;c[J+4>>2]=k;break}J=K;P=c[J+4>>2]|0;I=j;c[I>>2]=c[J>>2];c[I+4>>2]=P;P=K;c[P>>2]=O;c[P+4>>2]=k;if(Ya[c[d>>2]&31](h,K)|0){k=K;P=c[k>>2]|0;O=c[k+4>>2]|0;k=h;I=c[k+4>>2]|0;J=K;c[J>>2]=c[k>>2];c[J+4>>2]=I;I=h;c[I>>2]=P;c[I+4>>2]=O}}else if(y?(O=K,I=c[O>>2]|0,P=c[O+4>>2]|0,O=h,J=c[O+4>>2]|0,k=K,c[k>>2]=c[O>>2],c[k+4>>2]=J,J=h,c[J>>2]=I,c[J+4>>2]=P,Ya[c[d>>2]&31](K,j)|0):0){P=j;J=c[P>>2]|0;I=c[P+4>>2]|0;P=K;k=c[P+4>>2]|0;O=j;c[O>>2]=c[P>>2];c[O+4>>2]=k;k=K;c[k>>2]=J;c[k+4>>2]=I}while(0);K=j+24|0;if((K|0)==(a|0)){l=e;return}y=K;K=h;while(1){if(Ya[c[d>>2]&31](y,K)|0){h=y;g=c[h+4>>2]|0;I=f;c[I>>2]=c[h>>2];c[I+4>>2]=g;g=K;I=y;while(1){h=g;k=c[h+4>>2]|0;J=I;c[J>>2]=c[h>>2];c[J+4>>2]=k;if((g|0)==(j|0))break;k=g+-8|0;if(Ya[c[d>>2]&31](f,k)|0){J=g;g=k;I=J}else break}I=f;J=c[I+4>>2]|0;k=g;c[k>>2]=c[I>>2];c[k+4>>2]=J}J=y+8|0;if((J|0)==(a|0))break;else{k=y;y=J;K=k}}l=e;return}else if((o|0)==86){l=e;return}}function Nk(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,k=0,l=0,m=0,n=0,o=0,p=0,q=0;h=Ya[c[g>>2]&31](b,a)|0;i=Ya[c[g>>2]&31](d,b)|0;do if(h){j=a;k=c[j>>2]|0;l=c[j+4>>2]|0;if(i){j=d;m=c[j+4>>2]|0;n=a;c[n>>2]=c[j>>2];c[n+4>>2]=m;m=d;c[m>>2]=k;c[m+4>>2]=l;o=1;break}m=b;n=c[m+4>>2]|0;j=a;c[j>>2]=c[m>>2];c[j+4>>2]=n;n=b;c[n>>2]=k;c[n+4>>2]=l;if(Ya[c[g>>2]&31](d,b)|0){l=b;n=c[l>>2]|0;k=c[l+4>>2]|0;l=d;j=c[l+4>>2]|0;m=b;c[m>>2]=c[l>>2];c[m+4>>2]=j;j=d;c[j>>2]=n;c[j+4>>2]=k;o=2}else o=1}else if(i){k=b;j=c[k>>2]|0;n=c[k+4>>2]|0;k=d;m=c[k+4>>2]|0;l=b;c[l>>2]=c[k>>2];c[l+4>>2]=m;m=d;c[m>>2]=j;c[m+4>>2]=n;if(Ya[c[g>>2]&31](b,a)|0){n=a;m=c[n>>2]|0;j=c[n+4>>2]|0;n=b;l=c[n+4>>2]|0;k=a;c[k>>2]=c[n>>2];c[k+4>>2]=l;l=b;c[l>>2]=m;c[l+4>>2]=j;o=2}else o=1}else o=0;while(0);if(Ya[c[g>>2]&31](e,d)|0){i=d;h=c[i>>2]|0;j=c[i+4>>2]|0;i=e;l=c[i+4>>2]|0;m=d;c[m>>2]=c[i>>2];c[m+4>>2]=l;l=e;c[l>>2]=h;c[l+4>>2]=j;j=o+1|0;if(Ya[c[g>>2]&31](d,b)|0){l=b;h=c[l>>2]|0;m=c[l+4>>2]|0;l=d;i=c[l+4>>2]|0;k=b;c[k>>2]=c[l>>2];c[k+4>>2]=i;i=d;c[i>>2]=h;c[i+4>>2]=m;if(Ya[c[g>>2]&31](b,a)|0){m=a;i=c[m>>2]|0;h=c[m+4>>2]|0;m=b;k=c[m+4>>2]|0;l=a;c[l>>2]=c[m>>2];c[l+4>>2]=k;k=b;c[k>>2]=i;c[k+4>>2]=h;p=o+3|0}else p=o+2|0}else p=j}else p=o;if(!(Ya[c[g>>2]&31](f,e)|0)){q=p;return q|0}o=e;j=c[o>>2]|0;h=c[o+4>>2]|0;o=f;k=c[o+4>>2]|0;i=e;c[i>>2]=c[o>>2];c[i+4>>2]=k;k=f;c[k>>2]=j;c[k+4>>2]=h;if(!(Ya[c[g>>2]&31](e,d)|0)){q=p+1|0;return q|0}h=d;k=c[h>>2]|0;j=c[h+4>>2]|0;h=e;f=c[h+4>>2]|0;i=d;c[i>>2]=c[h>>2];c[i+4>>2]=f;f=e;c[f>>2]=k;c[f+4>>2]=j;if(!(Ya[c[g>>2]&31](d,b)|0)){q=p+2|0;return q|0}j=b;f=c[j>>2]|0;k=c[j+4>>2]|0;j=d;e=c[j+4>>2]|0;i=b;c[i>>2]=c[j>>2];c[i+4>>2]=e;e=d;c[e>>2]=f;c[e+4>>2]=k;if(!(Ya[c[g>>2]&31](b,a)|0)){q=p+3|0;return q|0}g=a;k=c[g>>2]|0;e=c[g+4>>2]|0;g=b;f=c[g+4>>2]|0;d=a;c[d>>2]=c[g>>2];c[d+4>>2]=f;f=b;c[f>>2]=k;c[f+4>>2]=e;q=p+4|0;return q|0}function Ok(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,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;e=l;l=l+16|0;f=e;switch(b-a>>3|0){case 2:{g=b+-8|0;if(!(Ya[c[d>>2]&31](g,a)|0)){h=1;l=e;return h|0}i=a;j=c[i>>2]|0;k=c[i+4>>2]|0;i=g;m=c[i+4>>2]|0;n=a;c[n>>2]=c[i>>2];c[n+4>>2]=m;m=g;c[m>>2]=j;c[m+4>>2]=k;h=1;l=e;return h|0}case 3:{k=a+8|0;m=b+-8|0;j=Ya[c[d>>2]&31](k,a)|0;g=Ya[c[d>>2]&31](m,k)|0;if(!j){if(!g){h=1;l=e;return h|0}j=k;n=c[j>>2]|0;i=c[j+4>>2]|0;j=m;o=c[j+4>>2]|0;p=k;c[p>>2]=c[j>>2];c[p+4>>2]=o;o=m;c[o>>2]=n;c[o+4>>2]=i;if(!(Ya[c[d>>2]&31](k,a)|0)){h=1;l=e;return h|0}i=a;o=c[i>>2]|0;n=c[i+4>>2]|0;i=k;p=c[i+4>>2]|0;j=a;c[j>>2]=c[i>>2];c[j+4>>2]=p;p=k;c[p>>2]=o;c[p+4>>2]=n;h=1;l=e;return h|0}n=a;p=c[n>>2]|0;o=c[n+4>>2]|0;if(g){g=m;n=c[g+4>>2]|0;j=a;c[j>>2]=c[g>>2];c[j+4>>2]=n;n=m;c[n>>2]=p;c[n+4>>2]=o;h=1;l=e;return h|0}n=k;j=c[n+4>>2]|0;g=a;c[g>>2]=c[n>>2];c[g+4>>2]=j;j=k;c[j>>2]=p;c[j+4>>2]=o;if(!(Ya[c[d>>2]&31](m,k)|0)){h=1;l=e;return h|0}o=k;j=c[o>>2]|0;p=c[o+4>>2]|0;o=m;g=c[o+4>>2]|0;n=k;c[n>>2]=c[o>>2];c[n+4>>2]=g;g=m;c[g>>2]=j;c[g+4>>2]=p;h=1;l=e;return h|0}case 4:{p=a+8|0;g=a+16|0;j=b+-8|0;m=Ya[c[d>>2]&31](p,a)|0;n=Ya[c[d>>2]&31](g,p)|0;do if(m){o=a;k=c[o>>2]|0;i=c[o+4>>2]|0;if(n){o=g;q=c[o+4>>2]|0;r=a;c[r>>2]=c[o>>2];c[r+4>>2]=q;q=g;c[q>>2]=k;c[q+4>>2]=i;break}q=p;r=c[q+4>>2]|0;o=a;c[o>>2]=c[q>>2];c[o+4>>2]=r;r=p;c[r>>2]=k;c[r+4>>2]=i;if(Ya[c[d>>2]&31](g,p)|0){i=p;r=c[i>>2]|0;k=c[i+4>>2]|0;i=g;o=c[i+4>>2]|0;q=p;c[q>>2]=c[i>>2];c[q+4>>2]=o;o=g;c[o>>2]=r;c[o+4>>2]=k}}else if(n?(k=p,o=c[k>>2]|0,r=c[k+4>>2]|0,k=g,q=c[k+4>>2]|0,i=p,c[i>>2]=c[k>>2],c[i+4>>2]=q,q=g,c[q>>2]=o,c[q+4>>2]=r,Ya[c[d>>2]&31](p,a)|0):0){r=a;q=c[r>>2]|0;o=c[r+4>>2]|0;r=p;i=c[r+4>>2]|0;k=a;c[k>>2]=c[r>>2];c[k+4>>2]=i;i=p;c[i>>2]=q;c[i+4>>2]=o}while(0);if(!(Ya[c[d>>2]&31](j,g)|0)){h=1;l=e;return h|0}n=g;m=c[n>>2]|0;o=c[n+4>>2]|0;n=j;i=c[n+4>>2]|0;q=g;c[q>>2]=c[n>>2];c[q+4>>2]=i;i=j;c[i>>2]=m;c[i+4>>2]=o;if(!(Ya[c[d>>2]&31](g,p)|0)){h=1;l=e;return h|0}o=p;i=c[o>>2]|0;m=c[o+4>>2]|0;o=g;j=c[o+4>>2]|0;q=p;c[q>>2]=c[o>>2];c[q+4>>2]=j;j=g;c[j>>2]=i;c[j+4>>2]=m;if(!(Ya[c[d>>2]&31](p,a)|0)){h=1;l=e;return h|0}m=a;j=c[m>>2]|0;i=c[m+4>>2]|0;m=p;g=c[m+4>>2]|0;q=a;c[q>>2]=c[m>>2];c[q+4>>2]=g;g=p;c[g>>2]=j;c[g+4>>2]=i;h=1;l=e;return h|0}case 5:{Nk(a,a+8|0,a+16|0,a+24|0,b+-8|0,d)|0;h=1;l=e;return h|0}case 1:case 0:{h=1;l=e;return h|0}default:{i=a+16|0;g=a+8|0;j=Ya[c[d>>2]&31](g,a)|0;p=Ya[c[d>>2]&31](i,g)|0;do if(j){q=a;m=c[q>>2]|0;o=c[q+4>>2]|0;if(p){q=i;n=c[q+4>>2]|0;k=a;c[k>>2]=c[q>>2];c[k+4>>2]=n;n=i;c[n>>2]=m;c[n+4>>2]=o;break}n=g;k=c[n+4>>2]|0;q=a;c[q>>2]=c[n>>2];c[q+4>>2]=k;k=g;c[k>>2]=m;c[k+4>>2]=o;if(Ya[c[d>>2]&31](i,g)|0){o=g;k=c[o>>2]|0;m=c[o+4>>2]|0;o=i;q=c[o+4>>2]|0;n=g;c[n>>2]=c[o>>2];c[n+4>>2]=q;q=i;c[q>>2]=k;c[q+4>>2]=m}}else if(p?(m=g,q=c[m>>2]|0,k=c[m+4>>2]|0,m=i,n=c[m+4>>2]|0,o=g,c[o>>2]=c[m>>2],c[o+4>>2]=n,n=i,c[n>>2]=q,c[n+4>>2]=k,Ya[c[d>>2]&31](g,a)|0):0){k=a;n=c[k>>2]|0;q=c[k+4>>2]|0;k=g;o=c[k+4>>2]|0;m=a;c[m>>2]=c[k>>2];c[m+4>>2]=o;o=g;c[o>>2]=n;c[o+4>>2]=q}while(0);g=a+24|0;a:do if((g|0)==(b|0)){s=1;t=0}else{p=g;j=0;q=i;while(1){if(Ya[c[d>>2]&31](p,q)|0){o=p;n=c[o+4>>2]|0;m=f;c[m>>2]=c[o>>2];c[m+4>>2]=n;n=q;m=p;while(1){o=n;k=c[o+4>>2]|0;r=m;c[r>>2]=c[o>>2];c[r+4>>2]=k;if((n|0)==(a|0))break;k=n+-8|0;if(Ya[c[d>>2]&31](f,k)|0){r=n;n=k;m=r}else break}m=f;r=c[m+4>>2]|0;k=n;c[k>>2]=c[m>>2];c[k+4>>2]=r;r=j+1|0;if((r|0)==8){s=0;t=(p+8|0)==(b|0);break a}else u=r}else u=j;r=p+8|0;if((r|0)==(b|0)){s=1;t=0;break}else{k=p;p=r;j=u;q=k}}}while(0);h=t|s;l=e;return h|0}}return 0}function Pk(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;f=b+4|0;g=c[f>>2]|0;h=a+4|0;i=d+4|0;j=c[i>>2]|0;k=j>>>0>>0;do if(g>>>0<(c[h>>2]|0)>>>0){l=a;m=c[l>>2]|0;n=c[l+4>>2]|0;if(k){l=d;o=c[l+4>>2]|0;p=a;c[p>>2]=c[l>>2];c[p+4>>2]=o;o=d;c[o>>2]=m;c[o+4>>2]=n;q=1;r=n;break}o=b;p=c[o+4>>2]|0;l=a;c[l>>2]=c[o>>2];c[l+4>>2]=p;p=b;c[p>>2]=m;c[p+4>>2]=n;p=c[i>>2]|0;if(p>>>0>>0){l=d;o=c[l+4>>2]|0;s=b;c[s>>2]=c[l>>2];c[s+4>>2]=o;o=d;c[o>>2]=m;c[o+4>>2]=n;q=2;r=n}else{q=1;r=p}}else if(k){p=b;n=c[p>>2]|0;o=c[p+4>>2]|0;p=d;m=c[p+4>>2]|0;s=b;c[s>>2]=c[p>>2];c[s+4>>2]=m;m=d;c[m>>2]=n;c[m+4>>2]=o;if((c[f>>2]|0)>>>0<(c[h>>2]|0)>>>0){m=a;n=c[m>>2]|0;s=c[m+4>>2]|0;m=b;p=c[m+4>>2]|0;l=a;c[l>>2]=c[m>>2];c[l+4>>2]=p;p=b;c[p>>2]=n;c[p+4>>2]=s;q=2;r=c[i>>2]|0}else{q=1;r=o}}else{q=0;r=j}while(0);if((c[e+4>>2]|0)>>>0>=r>>>0){t=q;return t|0}r=d;j=c[r>>2]|0;k=c[r+4>>2]|0;r=e;g=c[r+4>>2]|0;o=d;c[o>>2]=c[r>>2];c[o+4>>2]=g;g=e;c[g>>2]=j;c[g+4>>2]=k;if((c[i>>2]|0)>>>0>=(c[f>>2]|0)>>>0){t=q+1|0;return t|0}i=b;k=c[i>>2]|0;g=c[i+4>>2]|0;i=d;j=c[i+4>>2]|0;e=b;c[e>>2]=c[i>>2];c[e+4>>2]=j;j=d;c[j>>2]=k;c[j+4>>2]=g;if((c[f>>2]|0)>>>0>=(c[h>>2]|0)>>>0){t=q+2|0;return t|0}h=a;f=c[h>>2]|0;g=c[h+4>>2]|0;h=b;j=c[h+4>>2]|0;k=a;c[k>>2]=c[h>>2];c[k+4>>2]=j;j=b;c[j>>2]=f;c[j+4>>2]=g;t=q+3|0;return t|0}function Qk(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;switch(b-a>>3|0){case 2:{if((c[b+-4>>2]|0)>>>0>=(c[a+4>>2]|0)>>>0){e=1;return e|0}f=b+-8|0;g=a;h=c[g>>2]|0;i=c[g+4>>2]|0;g=f;j=c[g+4>>2]|0;k=a;c[k>>2]=c[g>>2];c[k+4>>2]=j;j=f;c[j>>2]=h;c[j+4>>2]=i;e=1;return e|0}case 3:{i=a+8|0;j=b+-8|0;h=a+12|0;f=c[h>>2]|0;k=a+4|0;g=b+-4|0;l=(c[g>>2]|0)>>>0>>0;if(f>>>0>=(c[k>>2]|0)>>>0){if(!l){e=1;return e|0}f=i;m=c[f>>2]|0;n=c[f+4>>2]|0;f=j;o=c[f+4>>2]|0;p=i;c[p>>2]=c[f>>2];c[p+4>>2]=o;o=j;c[o>>2]=m;c[o+4>>2]=n;if((c[h>>2]|0)>>>0>=(c[k>>2]|0)>>>0){e=1;return e|0}k=a;h=c[k>>2]|0;n=c[k+4>>2]|0;k=i;o=c[k+4>>2]|0;m=a;c[m>>2]=c[k>>2];c[m+4>>2]=o;o=i;c[o>>2]=h;c[o+4>>2]=n;e=1;return e|0}n=a;o=c[n>>2]|0;h=c[n+4>>2]|0;if(l){l=j;n=c[l+4>>2]|0;m=a;c[m>>2]=c[l>>2];c[m+4>>2]=n;n=j;c[n>>2]=o;c[n+4>>2]=h;e=1;return e|0}n=i;m=c[n+4>>2]|0;l=a;c[l>>2]=c[n>>2];c[l+4>>2]=m;m=i;c[m>>2]=o;c[m+4>>2]=h;if((c[g>>2]|0)>>>0>=h>>>0){e=1;return e|0}g=j;m=c[g+4>>2]|0;l=i;c[l>>2]=c[g>>2];c[l+4>>2]=m;m=j;c[m>>2]=o;c[m+4>>2]=h;e=1;return e|0}case 4:{Pk(a,a+8|0,a+16|0,b+-8|0,d)|0;e=1;return e|0}case 5:{h=a+8|0;m=a+16|0;o=a+24|0;Pk(a,h,m,o,d)|0;d=a+28|0;if((c[b+-4>>2]|0)>>>0>=(c[d>>2]|0)>>>0){e=1;return e|0}j=b+-8|0;l=o;g=c[l>>2]|0;i=c[l+4>>2]|0;l=j;n=c[l+4>>2]|0;k=o;c[k>>2]=c[l>>2];c[k+4>>2]=n;n=j;c[n>>2]=g;c[n+4>>2]=i;if((c[d>>2]|0)>>>0>=(c[a+20>>2]|0)>>>0){e=1;return e|0}d=m;i=c[d>>2]|0;n=c[d+4>>2]|0;d=o;g=c[d>>2]|0;j=c[d+4>>2]|0;d=m;c[d>>2]=g;c[d+4>>2]=j;d=o;c[d>>2]=i;c[d+4>>2]=n;if(j>>>0>=(c[a+12>>2]|0)>>>0){e=1;return e|0}n=h;d=c[n>>2]|0;i=c[n+4>>2]|0;n=h;c[n>>2]=g;c[n+4>>2]=j;n=m;c[n>>2]=d;c[n+4>>2]=i;if(j>>>0>=(c[a+4>>2]|0)>>>0){e=1;return e|0}i=a;n=c[i>>2]|0;d=c[i+4>>2]|0;i=a;c[i>>2]=g;c[i+4>>2]=j;j=h;c[j>>2]=n;c[j+4>>2]=d;e=1;return e|0}case 1:case 0:{e=1;return e|0}default:{d=a+16|0;j=a+8|0;n=c[a+12>>2]|0;h=c[a+4>>2]|0;i=c[a+20>>2]|0;g=i>>>0>>0;do if(n>>>0>>0){m=a;o=c[m>>2]|0;k=c[m+4>>2]|0;if(g){m=d;l=c[m+4>>2]|0;p=a;c[p>>2]=c[m>>2];c[p+4>>2]=l;l=d;c[l>>2]=o;c[l+4>>2]=k;break}l=j;p=c[l+4>>2]|0;m=a;c[m>>2]=c[l>>2];c[m+4>>2]=p;p=j;c[p>>2]=o;c[p+4>>2]=k;if(i>>>0>>0){p=d;m=c[p+4>>2]|0;l=j;c[l>>2]=c[p>>2];c[l+4>>2]=m;m=d;c[m>>2]=o;c[m+4>>2]=k}}else if(g?(k=j,m=c[k>>2]|0,o=c[k+4>>2]|0,k=d,l=c[k>>2]|0,p=c[k+4>>2]|0,k=j,c[k>>2]=l,c[k+4>>2]=p,k=d,c[k>>2]=m,c[k+4>>2]=o,p>>>0>>0):0){o=a;k=c[o>>2]|0;m=c[o+4>>2]|0;o=a;c[o>>2]=l;c[o+4>>2]=p;p=j;c[p>>2]=k;c[p+4>>2]=m}while(0);j=a+24|0;a:do if((j|0)==(b|0)){q=1;r=0}else{h=j;g=0;i=d;while(1){if((c[h+4>>2]|0)>>>0<(c[i+4>>2]|0)>>>0){n=h;m=c[n>>2]|0;p=c[n+4>>2]|0;n=i;k=h;while(1){o=n;l=c[o+4>>2]|0;f=k;c[f>>2]=c[o>>2];c[f+4>>2]=l;if((n|0)==(a|0))break;if(p>>>0<(c[n+-4>>2]|0)>>>0){l=n;n=n+-8|0;k=l}else break}k=n;c[k>>2]=m;c[k+4>>2]=p;k=g+1|0;if((k|0)==8){q=0;r=(h+8|0)==(b|0);break a}else s=k}else s=g;k=h+8|0;if((k|0)==(b|0)){q=1;r=0;break}else{l=h;h=k;g=s;i=l}}}while(0);e=r|q;return e|0}}return 0}function Rk(a){a=a|0;fn(a);return}function Sk(a,b,c){a=a|0;b=b|0;c=c|0;return 1}function Tk(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return 1}function Uk(a){a=a|0;fn(a);return}function Vk(a,b){a=a|0;b=b|0;return (c[(c[a+4>>2]|0)+(b<<2)>>2]&4096|0)!=0|0}function Wk(b){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,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0.0,D=0.0,E=0.0,F=0.0,G=0.0,H=0,I=0.0,J=0,K=0,L=0,M=0,N=0,O=0.0;d=b+400|0;e=b+220|0;f=hm((c[d>>2]|0)+76|0,(c[e>>2]|0)*24|0)|0;h=c[e>>2]|0;if((h|0)>0){i=b+216|0;j=b+144|0;k=0;l=0;m=h;while(1){h=c[i>>2]|0;n=h+(k*24|0)|0;o=c[j>>2]|0;p=c[o+(c[n>>2]<<2)>>2]|0;if(((p|0)!=0?(p|0)==(c[o+(c[h+(k*24|0)+4>>2]<<2)>>2]|0):0)?(c[p+12>>2]&16|0)!=0:0){p=f+(l*24|0)|0;c[p>>2]=c[n>>2];c[p+4>>2]=c[n+4>>2];c[p+8>>2]=c[n+8>>2];c[p+12>>2]=c[n+12>>2];c[p+16>>2]=c[n+16>>2];c[p+20>>2]=c[n+20>>2];q=l+1|0;r=c[e>>2]|0}else{q=l;r=m}k=k+1|0;if((k|0)>=(r|0)){s=q;break}else{l=q;m=r}}}else s=0;r=hm((c[d>>2]|0)+76|0,c[b+308>>2]<<2)|0;m=c[b+312>>2]|0;if(!m)t=0;else{q=b+16|0;l=b+124|0;k=b+132|0;e=b+48|0;j=b+20|0;i=0;n=m;while(1){m=n+12|0;p=c[m>>2]|0;if(p&16){h=i+1|0;c[r+(i<<2)>>2]=n;o=p&-17;if(p&((p|16)^-17)|0)a[j>>0]=1;u=c[q>>2]|0;if(o&~u|0){if(!(p&1))v=u;else{p=c[k>>2]|0;if(!p){w=c[e>>2]|0;if(!w){Qj(b,256);x=c[e>>2]|0}else x=w;w=Pl(c[d>>2]|0,x<<2)|0;Nn(w|0,0,c[e>>2]<<2|0)|0;y=w;z=c[q>>2]|0}else{y=p;z=u}c[k>>2]=y;v=z}c[q>>2]=v|o}c[m>>2]=o;o=c[n+4>>2]|0;m=c[n+8>>2]|0;if((o|0)<(m|0)){u=o+1|0;Nn((c[l>>2]|0)+(o<<2)|0,0,((m|0)>(u|0)?m:u)-o<<2|0)|0;A=h}else A=h}else A=i;n=c[n+24>>2]|0;if(!n){t=A;break}else i=A}}A=(s|0)>0;if(A){i=c[b+124>>2]|0;n=0;do{l=c[f+(n*24|0)+4>>2]|0;B=+g[f+(n*24|0)+8>>2];v=i+(c[f+(n*24|0)>>2]<<2)|0;g[v>>2]=B+ +g[v>>2];v=i+(l<<2)|0;g[v>>2]=B+ +g[v>>2];n=n+1|0}while((n|0)!=(s|0))}n=(t|0)>0;if(n){i=b+124|0;v=b+132|0;l=0;do{q=c[r+(l<<2)>>2]|0;z=c[q+4>>2]|0;y=c[q+8>>2]|0;if((z|0)<(y|0)){q=c[i>>2]|0;k=c[v>>2]|0;e=z;do{g[k+(e<<2)>>2]=+g[q+(e<<2)>>2]<.800000011920929?0.0:3402823466385288598117041.0e14;e=e+1|0}while((e|0)<(y|0))}l=l+1|0}while((l|0)!=(t|0))}l=~~+C(+(+(c[b+44>>2]|0)));if(!((l|0)<1|A^1)){A=c[b+132>>2]|0;v=0;do{i=0;y=0;while(1){B=1.0-+g[f+(i*24|0)+8>>2];e=A+(c[f+(i*24|0)>>2]<<2)|0;q=A+(c[f+(i*24|0)+4>>2]<<2)|0;D=+g[q>>2];E=B+D;F=+g[e>>2];G=B+F;if(F>E){g[e>>2]=E;H=1;I=+g[q>>2]}else{H=y;I=D}if(I>G){g[q>>2]=G;J=1}else J=H;i=i+1|0;if((i|0)==(s|0))break;else y=J}v=v+1|0}while(J&(v|0)<(l|0))}if(!n){K=c[d>>2]|0;L=K+76|0;jm(L,r);M=c[d>>2]|0;N=M+76|0;jm(N,f);return}n=b+132|0;l=b+32|0;b=0;do{v=c[r+(b<<2)>>2]|0;J=c[v+4>>2]|0;s=c[v+8>>2]|0;if((J|0)<(s|0)){v=c[n>>2]|0;H=J;do{J=v+(H<<2)|0;I=+g[J>>2];if(I<3402823466385288598117041.0e14)O=I*+g[l>>2];else O=0.0;g[J>>2]=O;H=H+1|0}while((H|0)<(s|0))}b=b+1|0}while((b|0)!=(t|0));K=c[d>>2]|0;L=K+76|0;jm(L,r);M=c[d>>2]|0;N=M+76|0;jm(N,f);return}function Xk(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.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;e=+g[b+36>>2];f=(~~(e*+g[d+4>>2]+-1.0+2048.0)>>>0<<20)+(~~((e*+g[d>>2]+-1.0)*256.0+524288.0)>>>0)|0;h=(~~(e*+g[d+12>>2]+1.0+2048.0)>>>0<<20)+(~~((e*+g[d+8>>2]+1.0)*256.0+524288.0)>>>0)|0;d=c[b+200>>2]|0;i=c[b+204>>2]|0;b=d+(i<<3)|0;j=i<<3>>3;if(!j)k=d;else{i=j;j=d;while(1){d=(i|0)/2|0;l=(c[j+(d<<3)+4>>2]|0)>>>0>>0;i=l?i+-1-d|0:d;m=l?j+(d<<3)+8|0:j;if(!i){k=m;break}else j=m}}j=b-k>>3;if(!j){n=k;o=f&1048575;c[a>>2]=o;p=h&1048575;q=a+4|0;c[q>>2]=p;r=f&-1048576;s=a+8|0;c[s>>2]=r;t=h&-1048576;u=a+12|0;c[u>>2]=t;v=a+16|0;c[v>>2]=k;w=a+20|0;c[w>>2]=n;return}else{x=j;y=k}while(1){j=(x|0)/2|0;b=(c[y+(j<<3)+4>>2]|0)>>>0>h>>>0;x=b?j:x+-1-j|0;i=b?y:y+(j<<3)+8|0;if(!x){n=i;break}else y=i}o=f&1048575;c[a>>2]=o;p=h&1048575;q=a+4|0;c[q>>2]=p;r=f&-1048576;s=a+8|0;c[s>>2]=r;t=h&-1048576;u=a+12|0;c[u>>2]=t;v=a+16|0;c[v>>2]=k;w=a+20|0;c[w>>2]=n;return}function Yk(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=a+156|0;if((c[d>>2]|0)<1)return;e=(c[a+176>>2]|0)+(b<<2)|0;f=(c[a+160>>2]|0)+(b<<2)|0;g=(c[a+168>>2]|0)+(b<<2)|0;h=(c[g>>2]|0)+1|0;c[g>>2]=h;if((h|0)==2?(h=c[e>>2]|0,c[e>>2]=h+1,(h|0)>=(c[d>>2]|0)):0){d=a+184|0;h=a+188|0;e=c[h>>2]|0;g=a+192|0;i=c[g>>2]|0;if((e|0)>=(i|0)?(j=(i|0)==0?256:i<<1,(i|0)<(j|0)):0){i=a+196|0;k=Pl(c[i>>2]|0,j<<2)|0;l=c[d>>2]|0;if(!l)m=d;else{Qn(k|0,l|0,c[h>>2]<<2|0)|0;Ql(c[i>>2]|0,c[d>>2]|0,c[g>>2]<<2);m=d}c[g>>2]=j;c[m>>2]=k;n=c[h>>2]|0}else n=e;e=c[d>>2]|0;c[h>>2]=n+1;c[e+(n<<2)>>2]=b}c[f>>2]=c[a+4>>2];return}function Zk(a,b){a=a|0;b=b|0;var d=0;if((c[a>>2]|0)>>>0>=(c[b>>2]|0)>>>0){d=0;return d|0}d=(c[a+4>>2]|0)<(c[b+4>>2]|0);return d|0}function _k(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,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;e=l;l=l+16|0;f=e;g=a;a=b;a:while(1){b=a;h=a+-8|0;i=g;while(1){j=i;b:while(1){k=j;m=b-k|0;n=m>>3;switch(n|0){case 2:{o=5;break a;break}case 3:{o=7;break a;break}case 4:{o=15;break a;break}case 5:{o=27;break a;break}case 1:case 0:{o=86;break a;break}default:{}}if((m|0)<248){o=29;break a}p=j+(((n|0)/2|0)<<3)|0;do if((m|0)<=7992){q=Ya[c[d>>2]&31](p,j)|0;r=Ya[c[d>>2]&31](h,p)|0;if(!q){if(!r){s=0;break}q=p;t=c[q>>2]|0;u=c[q+4>>2]|0;q=h;v=c[q+4>>2]|0;w=p;c[w>>2]=c[q>>2];c[w+4>>2]=v;v=h;c[v>>2]=t;c[v+4>>2]=u;if(!(Ya[c[d>>2]&31](p,j)|0)){s=1;break}u=j;v=c[u>>2]|0;t=c[u+4>>2]|0;u=p;w=c[u+4>>2]|0;q=j;c[q>>2]=c[u>>2];c[q+4>>2]=w;w=p;c[w>>2]=v;c[w+4>>2]=t;s=2;break}t=j;w=c[t>>2]|0;v=c[t+4>>2]|0;if(r){r=h;t=c[r+4>>2]|0;q=j;c[q>>2]=c[r>>2];c[q+4>>2]=t;t=h;c[t>>2]=w;c[t+4>>2]=v;s=1;break}t=p;q=c[t+4>>2]|0;r=j;c[r>>2]=c[t>>2];c[r+4>>2]=q;q=p;c[q>>2]=w;c[q+4>>2]=v;if(Ya[c[d>>2]&31](h,p)|0){v=p;q=c[v>>2]|0;w=c[v+4>>2]|0;v=h;r=c[v+4>>2]|0;t=p;c[t>>2]=c[v>>2];c[t+4>>2]=r;r=h;c[r>>2]=q;c[r+4>>2]=w;s=2}else s=1}else{w=(n|0)/4|0;s=$k(j,j+(w<<3)|0,p,p+(w<<3)|0,h,d)|0}while(0);if(Ya[c[d>>2]&31](j,p)|0){x=h;y=s;break}else z=h;while(1){z=z+-8|0;if((j|0)==(z|0))break;if(Ya[c[d>>2]&31](z,p)|0){o=69;break b}}n=j+8|0;if(Ya[c[d>>2]&31](j,h)|0)A=n;else{if((n|0)==(h|0)){o=86;break a}else B=n;while(1){if(Ya[c[d>>2]&31](j,B)|0)break;n=B+8|0;if((n|0)==(h|0)){o=86;break a}else B=n}n=B;m=c[n>>2]|0;w=c[n+4>>2]|0;n=h;r=c[n+4>>2]|0;q=B;c[q>>2]=c[n>>2];c[q+4>>2]=r;r=h;c[r>>2]=m;c[r+4>>2]=w;A=B+8|0}if((A|0)==(h|0)){o=86;break a}else{C=h;D=A}while(1){w=D;while(1){E=w+8|0;if(Ya[c[d>>2]&31](j,w)|0){F=C;break}else w=E}do F=F+-8|0;while(Ya[c[d>>2]&31](j,F)|0);if(w>>>0>=F>>>0){j=w;continue b}r=w;m=c[r>>2]|0;q=c[r+4>>2]|0;r=F;n=c[r+4>>2]|0;t=w;c[t>>2]=c[r>>2];c[t+4>>2]=n;n=F;c[n>>2]=m;c[n+4>>2]=q;C=F;D=E}}if((o|0)==69){o=0;q=j;n=c[q>>2]|0;m=c[q+4>>2]|0;q=z;t=c[q+4>>2]|0;r=j;c[r>>2]=c[q>>2];c[r+4>>2]=t;t=z;c[t>>2]=n;c[t+4>>2]=m;x=z;y=s+1|0}m=j+8|0;c:do if(m>>>0>>0){t=p;n=x;r=m;q=y;while(1){v=r;while(1){G=v+8|0;if(Ya[c[d>>2]&31](v,t)|0)v=G;else{H=n;break}}do H=H+-8|0;while(!(Ya[c[d>>2]&31](H,t)|0));if(v>>>0>H>>>0){I=t;J=q;K=v;break c}w=v;u=c[w>>2]|0;L=c[w+4>>2]|0;w=H;M=c[w+4>>2]|0;N=v;c[N>>2]=c[w>>2];c[N+4>>2]=M;M=H;c[M>>2]=u;c[M+4>>2]=L;t=(t|0)==(v|0)?H:t;n=H;r=G;q=q+1|0}}else{I=p;J=y;K=m}while(0);if((K|0)!=(I|0)?Ya[c[d>>2]&31](I,K)|0:0){m=K;q=c[m>>2]|0;r=c[m+4>>2]|0;m=I;n=c[m+4>>2]|0;t=K;c[t>>2]=c[m>>2];c[t+4>>2]=n;n=I;c[n>>2]=q;c[n+4>>2]=r;O=J+1|0}else O=J;if(!O){P=al(j,K,d)|0;r=K+8|0;if(al(r,a,d)|0){o=85;break}if(P){i=r;continue}}r=K;if((r-k|0)>=(b-r|0)){o=84;break}_k(j,K,d);i=K+8|0}if((o|0)==84){o=0;_k(K+8|0,a,d);g=j;a=K;continue}else if((o|0)==85){o=0;if(P){o=86;break}else{g=j;a=K;continue}}}if((o|0)==5){if(!(Ya[c[d>>2]&31](h,j)|0)){l=e;return}K=j;g=c[K>>2]|0;P=c[K+4>>2]|0;K=h;k=c[K+4>>2]|0;O=j;c[O>>2]=c[K>>2];c[O+4>>2]=k;k=h;c[k>>2]=g;c[k+4>>2]=P;l=e;return}else if((o|0)==7){P=j+8|0;k=Ya[c[d>>2]&31](P,j)|0;g=Ya[c[d>>2]&31](h,P)|0;if(!k){if(!g){l=e;return}k=P;O=c[k>>2]|0;K=c[k+4>>2]|0;k=h;J=c[k+4>>2]|0;I=P;c[I>>2]=c[k>>2];c[I+4>>2]=J;J=h;c[J>>2]=O;c[J+4>>2]=K;if(!(Ya[c[d>>2]&31](P,j)|0)){l=e;return}K=j;J=c[K>>2]|0;O=c[K+4>>2]|0;K=P;I=c[K+4>>2]|0;k=j;c[k>>2]=c[K>>2];c[k+4>>2]=I;I=P;c[I>>2]=J;c[I+4>>2]=O;l=e;return}O=j;I=c[O>>2]|0;J=c[O+4>>2]|0;if(g){g=h;O=c[g+4>>2]|0;k=j;c[k>>2]=c[g>>2];c[k+4>>2]=O;O=h;c[O>>2]=I;c[O+4>>2]=J;l=e;return}O=P;k=c[O+4>>2]|0;g=j;c[g>>2]=c[O>>2];c[g+4>>2]=k;k=P;c[k>>2]=I;c[k+4>>2]=J;if(!(Ya[c[d>>2]&31](h,P)|0)){l=e;return}J=P;k=c[J>>2]|0;I=c[J+4>>2]|0;J=h;g=c[J+4>>2]|0;O=P;c[O>>2]=c[J>>2];c[O+4>>2]=g;g=h;c[g>>2]=k;c[g+4>>2]=I;l=e;return}else if((o|0)==15){I=j+8|0;g=j+16|0;k=Ya[c[d>>2]&31](I,j)|0;O=Ya[c[d>>2]&31](g,I)|0;do if(k){J=j;P=c[J>>2]|0;K=c[J+4>>2]|0;if(O){J=g;y=c[J+4>>2]|0;p=j;c[p>>2]=c[J>>2];c[p+4>>2]=y;y=g;c[y>>2]=P;c[y+4>>2]=K;break}y=I;p=c[y+4>>2]|0;J=j;c[J>>2]=c[y>>2];c[J+4>>2]=p;p=I;c[p>>2]=P;c[p+4>>2]=K;if(Ya[c[d>>2]&31](g,I)|0){K=I;p=c[K>>2]|0;P=c[K+4>>2]|0;K=g;J=c[K+4>>2]|0;y=I;c[y>>2]=c[K>>2];c[y+4>>2]=J;J=g;c[J>>2]=p;c[J+4>>2]=P}}else if(O?(P=I,J=c[P>>2]|0,p=c[P+4>>2]|0,P=g,y=c[P+4>>2]|0,K=I,c[K>>2]=c[P>>2],c[K+4>>2]=y,y=g,c[y>>2]=J,c[y+4>>2]=p,Ya[c[d>>2]&31](I,j)|0):0){p=j;y=c[p>>2]|0;J=c[p+4>>2]|0;p=I;K=c[p+4>>2]|0;P=j;c[P>>2]=c[p>>2];c[P+4>>2]=K;K=I;c[K>>2]=y;c[K+4>>2]=J}while(0);if(!(Ya[c[d>>2]&31](h,g)|0)){l=e;return}O=g;k=c[O>>2]|0;J=c[O+4>>2]|0;O=h;K=c[O+4>>2]|0;y=g;c[y>>2]=c[O>>2];c[y+4>>2]=K;K=h;c[K>>2]=k;c[K+4>>2]=J;if(!(Ya[c[d>>2]&31](g,I)|0)){l=e;return}J=I;K=c[J>>2]|0;k=c[J+4>>2]|0;J=g;y=c[J+4>>2]|0;O=I;c[O>>2]=c[J>>2];c[O+4>>2]=y;y=g;c[y>>2]=K;c[y+4>>2]=k;if(!(Ya[c[d>>2]&31](I,j)|0)){l=e;return}k=j;y=c[k>>2]|0;K=c[k+4>>2]|0;k=I;g=c[k+4>>2]|0;O=j;c[O>>2]=c[k>>2];c[O+4>>2]=g;g=I;c[g>>2]=y;c[g+4>>2]=K;l=e;return}else if((o|0)==27){$k(j,j+8|0,j+16|0,j+24|0,h,d)|0;l=e;return}else if((o|0)==29){h=j+16|0;K=j+8|0;g=Ya[c[d>>2]&31](K,j)|0;y=Ya[c[d>>2]&31](h,K)|0;do if(g){I=j;O=c[I>>2]|0;k=c[I+4>>2]|0;if(y){I=h;J=c[I+4>>2]|0;P=j;c[P>>2]=c[I>>2];c[P+4>>2]=J;J=h;c[J>>2]=O;c[J+4>>2]=k;break}J=K;P=c[J+4>>2]|0;I=j;c[I>>2]=c[J>>2];c[I+4>>2]=P;P=K;c[P>>2]=O;c[P+4>>2]=k;if(Ya[c[d>>2]&31](h,K)|0){k=K;P=c[k>>2]|0;O=c[k+4>>2]|0;k=h;I=c[k+4>>2]|0;J=K;c[J>>2]=c[k>>2];c[J+4>>2]=I;I=h;c[I>>2]=P;c[I+4>>2]=O}}else if(y?(O=K,I=c[O>>2]|0,P=c[O+4>>2]|0,O=h,J=c[O+4>>2]|0,k=K,c[k>>2]=c[O>>2],c[k+4>>2]=J,J=h,c[J>>2]=I,c[J+4>>2]=P,Ya[c[d>>2]&31](K,j)|0):0){P=j;J=c[P>>2]|0;I=c[P+4>>2]|0;P=K;k=c[P+4>>2]|0;O=j;c[O>>2]=c[P>>2];c[O+4>>2]=k;k=K;c[k>>2]=J;c[k+4>>2]=I}while(0);K=j+24|0;if((K|0)==(a|0)){l=e;return}y=K;K=h;while(1){if(Ya[c[d>>2]&31](y,K)|0){h=y;g=c[h+4>>2]|0;I=f;c[I>>2]=c[h>>2];c[I+4>>2]=g;g=K;I=y;while(1){h=g;k=c[h+4>>2]|0;J=I;c[J>>2]=c[h>>2];c[J+4>>2]=k;if((g|0)==(j|0))break;k=g+-8|0;if(Ya[c[d>>2]&31](f,k)|0){J=g;g=k;I=J}else break}I=f;J=c[I+4>>2]|0;k=g;c[k>>2]=c[I>>2];c[k+4>>2]=J}J=y+8|0;if((J|0)==(a|0))break;else{k=y;y=J;K=k}}l=e;return}else if((o|0)==86){l=e;return}}function $k(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,k=0,l=0,m=0,n=0,o=0,p=0,q=0;h=Ya[c[g>>2]&31](b,a)|0;i=Ya[c[g>>2]&31](d,b)|0;do if(h){j=a;k=c[j>>2]|0;l=c[j+4>>2]|0;if(i){j=d;m=c[j+4>>2]|0;n=a;c[n>>2]=c[j>>2];c[n+4>>2]=m;m=d;c[m>>2]=k;c[m+4>>2]=l;o=1;break}m=b;n=c[m+4>>2]|0;j=a;c[j>>2]=c[m>>2];c[j+4>>2]=n;n=b;c[n>>2]=k;c[n+4>>2]=l;if(Ya[c[g>>2]&31](d,b)|0){l=b;n=c[l>>2]|0;k=c[l+4>>2]|0;l=d;j=c[l+4>>2]|0;m=b;c[m>>2]=c[l>>2];c[m+4>>2]=j;j=d;c[j>>2]=n;c[j+4>>2]=k;o=2}else o=1}else if(i){k=b;j=c[k>>2]|0;n=c[k+4>>2]|0;k=d;m=c[k+4>>2]|0;l=b;c[l>>2]=c[k>>2];c[l+4>>2]=m;m=d;c[m>>2]=j;c[m+4>>2]=n;if(Ya[c[g>>2]&31](b,a)|0){n=a;m=c[n>>2]|0;j=c[n+4>>2]|0;n=b;l=c[n+4>>2]|0;k=a;c[k>>2]=c[n>>2];c[k+4>>2]=l;l=b;c[l>>2]=m;c[l+4>>2]=j;o=2}else o=1}else o=0;while(0);if(Ya[c[g>>2]&31](e,d)|0){i=d;h=c[i>>2]|0;j=c[i+4>>2]|0;i=e;l=c[i+4>>2]|0;m=d;c[m>>2]=c[i>>2];c[m+4>>2]=l;l=e;c[l>>2]=h;c[l+4>>2]=j;j=o+1|0;if(Ya[c[g>>2]&31](d,b)|0){l=b;h=c[l>>2]|0;m=c[l+4>>2]|0;l=d;i=c[l+4>>2]|0;k=b;c[k>>2]=c[l>>2];c[k+4>>2]=i;i=d;c[i>>2]=h;c[i+4>>2]=m;if(Ya[c[g>>2]&31](b,a)|0){m=a;i=c[m>>2]|0;h=c[m+4>>2]|0;m=b;k=c[m+4>>2]|0;l=a;c[l>>2]=c[m>>2];c[l+4>>2]=k;k=b;c[k>>2]=i;c[k+4>>2]=h;p=o+3|0}else p=o+2|0}else p=j}else p=o;if(!(Ya[c[g>>2]&31](f,e)|0)){q=p;return q|0}o=e;j=c[o>>2]|0;h=c[o+4>>2]|0;o=f;k=c[o+4>>2]|0;i=e;c[i>>2]=c[o>>2];c[i+4>>2]=k;k=f;c[k>>2]=j;c[k+4>>2]=h;if(!(Ya[c[g>>2]&31](e,d)|0)){q=p+1|0;return q|0}h=d;k=c[h>>2]|0;j=c[h+4>>2]|0;h=e;f=c[h+4>>2]|0;i=d;c[i>>2]=c[h>>2];c[i+4>>2]=f;f=e;c[f>>2]=k;c[f+4>>2]=j;if(!(Ya[c[g>>2]&31](d,b)|0)){q=p+2|0;return q|0}j=b;f=c[j>>2]|0;k=c[j+4>>2]|0;j=d;e=c[j+4>>2]|0;i=b;c[i>>2]=c[j>>2];c[i+4>>2]=e;e=d;c[e>>2]=f;c[e+4>>2]=k;if(!(Ya[c[g>>2]&31](b,a)|0)){q=p+3|0;return q|0}g=a;k=c[g>>2]|0;e=c[g+4>>2]|0;g=b;f=c[g+4>>2]|0;d=a;c[d>>2]=c[g>>2];c[d+4>>2]=f;f=b;c[f>>2]=k;c[f+4>>2]=e;q=p+4|0;return q|0}function al(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,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;e=l;l=l+16|0;f=e;switch(b-a>>3|0){case 2:{g=b+-8|0;if(!(Ya[c[d>>2]&31](g,a)|0)){h=1;l=e;return h|0}i=a;j=c[i>>2]|0;k=c[i+4>>2]|0;i=g;m=c[i+4>>2]|0;n=a;c[n>>2]=c[i>>2];c[n+4>>2]=m;m=g;c[m>>2]=j;c[m+4>>2]=k;h=1;l=e;return h|0}case 3:{k=a+8|0;m=b+-8|0;j=Ya[c[d>>2]&31](k,a)|0;g=Ya[c[d>>2]&31](m,k)|0;if(!j){if(!g){h=1;l=e;return h|0}j=k;n=c[j>>2]|0;i=c[j+4>>2]|0;j=m;o=c[j+4>>2]|0;p=k;c[p>>2]=c[j>>2];c[p+4>>2]=o;o=m;c[o>>2]=n;c[o+4>>2]=i;if(!(Ya[c[d>>2]&31](k,a)|0)){h=1;l=e;return h|0}i=a;o=c[i>>2]|0;n=c[i+4>>2]|0;i=k;p=c[i+4>>2]|0;j=a;c[j>>2]=c[i>>2];c[j+4>>2]=p;p=k;c[p>>2]=o;c[p+4>>2]=n;h=1;l=e;return h|0}n=a;p=c[n>>2]|0;o=c[n+4>>2]|0;if(g){g=m;n=c[g+4>>2]|0;j=a;c[j>>2]=c[g>>2];c[j+4>>2]=n;n=m;c[n>>2]=p;c[n+4>>2]=o;h=1;l=e;return h|0}n=k;j=c[n+4>>2]|0;g=a;c[g>>2]=c[n>>2];c[g+4>>2]=j;j=k;c[j>>2]=p;c[j+4>>2]=o;if(!(Ya[c[d>>2]&31](m,k)|0)){h=1;l=e;return h|0}o=k;j=c[o>>2]|0;p=c[o+4>>2]|0;o=m;g=c[o+4>>2]|0;n=k;c[n>>2]=c[o>>2];c[n+4>>2]=g;g=m;c[g>>2]=j;c[g+4>>2]=p;h=1;l=e;return h|0}case 4:{p=a+8|0;g=a+16|0;j=b+-8|0;m=Ya[c[d>>2]&31](p,a)|0;n=Ya[c[d>>2]&31](g,p)|0;do if(m){o=a;k=c[o>>2]|0;i=c[o+4>>2]|0;if(n){o=g;q=c[o+4>>2]|0;r=a;c[r>>2]=c[o>>2];c[r+4>>2]=q;q=g;c[q>>2]=k;c[q+4>>2]=i;break}q=p;r=c[q+4>>2]|0;o=a;c[o>>2]=c[q>>2];c[o+4>>2]=r;r=p;c[r>>2]=k;c[r+4>>2]=i;if(Ya[c[d>>2]&31](g,p)|0){i=p;r=c[i>>2]|0;k=c[i+4>>2]|0;i=g;o=c[i+4>>2]|0;q=p;c[q>>2]=c[i>>2];c[q+4>>2]=o;o=g;c[o>>2]=r;c[o+4>>2]=k}}else if(n?(k=p,o=c[k>>2]|0,r=c[k+4>>2]|0,k=g,q=c[k+4>>2]|0,i=p,c[i>>2]=c[k>>2],c[i+4>>2]=q,q=g,c[q>>2]=o,c[q+4>>2]=r,Ya[c[d>>2]&31](p,a)|0):0){r=a;q=c[r>>2]|0;o=c[r+4>>2]|0;r=p;i=c[r+4>>2]|0;k=a;c[k>>2]=c[r>>2];c[k+4>>2]=i;i=p;c[i>>2]=q;c[i+4>>2]=o}while(0);if(!(Ya[c[d>>2]&31](j,g)|0)){h=1;l=e;return h|0}n=g;m=c[n>>2]|0;o=c[n+4>>2]|0;n=j;i=c[n+4>>2]|0;q=g;c[q>>2]=c[n>>2];c[q+4>>2]=i;i=j;c[i>>2]=m;c[i+4>>2]=o;if(!(Ya[c[d>>2]&31](g,p)|0)){h=1;l=e;return h|0}o=p;i=c[o>>2]|0;m=c[o+4>>2]|0;o=g;j=c[o+4>>2]|0;q=p;c[q>>2]=c[o>>2];c[q+4>>2]=j;j=g;c[j>>2]=i;c[j+4>>2]=m;if(!(Ya[c[d>>2]&31](p,a)|0)){h=1;l=e;return h|0}m=a;j=c[m>>2]|0;i=c[m+4>>2]|0;m=p;g=c[m+4>>2]|0;q=a;c[q>>2]=c[m>>2];c[q+4>>2]=g;g=p;c[g>>2]=j;c[g+4>>2]=i;h=1;l=e;return h|0}case 5:{$k(a,a+8|0,a+16|0,a+24|0,b+-8|0,d)|0;h=1;l=e;return h|0}case 1:case 0:{h=1;l=e;return h|0}default:{i=a+16|0;g=a+8|0;j=Ya[c[d>>2]&31](g,a)|0;p=Ya[c[d>>2]&31](i,g)|0;do if(j){q=a;m=c[q>>2]|0;o=c[q+4>>2]|0;if(p){q=i;n=c[q+4>>2]|0;k=a;c[k>>2]=c[q>>2];c[k+4>>2]=n;n=i;c[n>>2]=m;c[n+4>>2]=o;break}n=g;k=c[n+4>>2]|0;q=a;c[q>>2]=c[n>>2];c[q+4>>2]=k;k=g;c[k>>2]=m;c[k+4>>2]=o;if(Ya[c[d>>2]&31](i,g)|0){o=g;k=c[o>>2]|0;m=c[o+4>>2]|0;o=i;q=c[o+4>>2]|0;n=g;c[n>>2]=c[o>>2];c[n+4>>2]=q;q=i;c[q>>2]=k;c[q+4>>2]=m}}else if(p?(m=g,q=c[m>>2]|0,k=c[m+4>>2]|0,m=i,n=c[m+4>>2]|0,o=g,c[o>>2]=c[m>>2],c[o+4>>2]=n,n=i,c[n>>2]=q,c[n+4>>2]=k,Ya[c[d>>2]&31](g,a)|0):0){k=a;n=c[k>>2]|0;q=c[k+4>>2]|0;k=g;o=c[k+4>>2]|0;m=a;c[m>>2]=c[k>>2];c[m+4>>2]=o;o=g;c[o>>2]=n;c[o+4>>2]=q}while(0);g=a+24|0;a:do if((g|0)==(b|0)){s=1;t=0}else{p=g;j=0;q=i;while(1){if(Ya[c[d>>2]&31](p,q)|0){o=p;n=c[o+4>>2]|0;m=f;c[m>>2]=c[o>>2];c[m+4>>2]=n;n=q;m=p;while(1){o=n;k=c[o+4>>2]|0;r=m;c[r>>2]=c[o>>2];c[r+4>>2]=k;if((n|0)==(a|0))break;k=n+-8|0;if(Ya[c[d>>2]&31](f,k)|0){r=n;n=k;m=r}else break}m=f;r=c[m+4>>2]|0;k=n;c[k>>2]=c[m>>2];c[k+4>>2]=r;r=j+1|0;if((r|0)==8){s=0;t=(p+8|0)==(b|0);break a}else u=r}else u=j;r=p+8|0;if((r|0)==(b|0)){s=1;t=0;break}else{k=p;p=r;j=u;q=k}}}while(0);h=t|s;l=e;return h|0}}return 0}function bl(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;if(!(c[b+8>>2]&16384))return;e=c[(c[b+400>>2]|0)+102952>>2]|0;if(!e)return;f=b+232|0;g=b+236|0;if(!(c[g>>2]|0)){h=d+8|0;i=d+4|0;j=d}else{k=d+8|0;l=d+4|0;m=c[f>>2]|0;do{n=c[m+8>>2]|0;o=c[m>>2]|0;p=c[k>>2]|0;if(p){q=c[d>>2]|0;r=q+(p<<3)|0;s=p<<3>>3;p=q;if(!s)t=q;else{u=s;s=q;while(1){q=(u|0)/2|0;v=s+(q<<3)|0;if((c[v>>2]|0)>>>0>>0)w=(c[s+(q<<3)+4>>2]|0)<(o|0);else w=0;u=w?u+-1-q|0:q;q=w?v+8|0:s;if(!u){t=q;break}else s=q}}if(!((t|0)==(r|0)|(t|0)==0)?(s=(c[l>>2]|0)+((t-p|0)>>>3)|0,(a[s>>0]|0)!=0):0)a[s>>0]=0;else x=16}else x=16;if((x|0)==16){x=0;Ta[c[(c[e>>2]|0)+16>>2]&7](e,b,m)}m=m+28|0}while((m|0)!=((c[f>>2]|0)+((c[g>>2]|0)*28|0)|0));h=k;i=l;j=d}d=c[j>>2]|0;j=c[i>>2]|0;i=c[h>>2]|0;if((i|0)<=0)return;h=0;do{if(a[j+h>>0]|0)_a[c[(c[e>>2]|0)+20>>2]&31](e,c[d+(h<<3)>>2]|0,b,c[d+(h<<3)+4>>2]|0);h=h+1|0}while((h|0)!=(i|0));return}function cl(b){b=b|0;var d=0,e=0,f=0,h=0,i=0,j=0,k=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,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,O=0;d=l;l=l+80|0;e=d;f=d+64|0;h=d+48|0;i=d+32|0;j=d+16|0;k=b+400|0;m=c[k>>2]|0;n=m+76|0;c[h>>2]=0;o=h+4|0;c[o>>2]=0;p=h+8|0;c[p>>2]=0;c[h+12>>2]=n;q=b+8|0;if(((c[q>>2]&16384|0)!=0?(c[m+102952>>2]|0)!=0:0)?(m=c[b+232>>2]|0,r=c[b+236>>2]|0,s=c[b+88>>2]|0,(r|0)!=0):0){t=hm(n,r*9|0)|0;c[h>>2]=t;u=t+(r<<3)|0;c[o>>2]=u;Nn(u|0,1,r|0)|0;c[p>>2]=r;if((r|0)>0){u=0;o=0;while(1){v=c[m+(u*28|0)>>2]|0;if((v|0)!=-1?(c[s+(v<<2)>>2]&16384|0)!=0:0){c[t+(u<<3)>>2]=c[m+(u*28|0)+8>>2];c[t+(u<<3)+4>>2]=v;w=o+1|0}else w=o;u=u+1|0;if((u|0)==(r|0)){x=w;break}else o=w}}else x=0;c[p>>2]=x;c[e>>2]=30;_k(t,t+(x<<3)|0,e);y=t}else y=0;if((c[b+156>>2]|0)>0?(t=c[b+44>>2]|0,(t|0)>0):0){x=c[b+168>>2]|0;w=b+4|0;o=c[b+160>>2]|0;r=b+176|0;u=0;do{c[x+(u<<2)>>2]=0;if((c[w>>2]|0)>((c[o+(u<<2)>>2]|0)+1|0))c[(c[r>>2]|0)+(u<<2)>>2]=0;u=u+1|0}while((u|0)!=(t|0))}t=b+236|0;c[t>>2]=0;c[b+188>>2]=0;if(!(c[q>>2]&65536))z=0;else z=c[(c[k>>2]|0)+102948>>2]|0;c[i+4>>2]=b;c[i>>2]=2036;c[i+8>>2]=z;z=c[b+44>>2]|0;g[j>>2]=3402823466385288598117041.0e14;q=j+4|0;g[q>>2]=3402823466385288598117041.0e14;u=j+8|0;g[u>>2]=-3402823466385288598117041.0e14;r=j+12|0;g[r>>2]=-3402823466385288598117041.0e14;if((z|0)>0){o=c[b+96>>2]|0;w=0;A=3402823466385288598117041.0e14;B=3402823466385288598117041.0e14;C=-3402823466385288598117041.0e14;D=-3402823466385288598117041.0e14;while(1){E=+g[o+(w<<3)>>2];F=+g[o+(w<<3)+4>>2];G=A>2]=G;g[q>>2]=H;I=C>E?C:E;E=D>F?D:F;g[u>>2]=I;g[r>>2]=E;w=w+1|0;if((w|0)==(z|0)){J=G;K=H;L=I;M=E;break}else{A=G;B=H;C=I;D=E}}}else{J=3402823466385288598117041.0e14;K=3402823466385288598117041.0e14;L=-3402823466385288598117041.0e14;M=-3402823466385288598117041.0e14}D=+g[b+32>>2];g[j>>2]=J-D;g[q>>2]=K-D;g[u>>2]=L+D;g[r>>2]=M+D;$i(c[k>>2]|0,i,j);if(a[b+316>>0]|0){j=b+232|0;i=c[j>>2]|0;k=i+((c[t>>2]|0)*28|0)|0;c[e>>2]=31;el(i,k,e);c[f>>2]=0;k=c[j>>2]|0;j=c[t>>2]|0;i=k+(j*28|0)|0;c[e>>2]=b;c[e+4>>2]=-1;c[e+8>>2]=0;c[e+12>>2]=f;a:do if(!j){N=k;O=25}else{r=k;do{if(fl(e,r)|0){N=r;O=25;break a}r=r+28|0}while((r|0)!=(i|0))}while(0);b:do if((O|0)==25?(N|0)!=(i|0):0){k=N;j=N;while(1){r=k;do{r=r+28|0;if((r|0)==(i|0))break b}while(fl(e,r)|0);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];c[j+16>>2]=c[r+16>>2];c[j+20>>2]=c[r+20>>2];c[j+24>>2]=c[r+24>>2];k=r;j=j+28|0}}while(0);c[t>>2]=(c[t>>2]|0)-(c[f>>2]|0)}bl(b,h);if(!y){l=d;return}jm(n,y);c[h>>2]=0;c[p>>2]=0;l=d;return}function dl(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=c[a>>2]|0;e=c[b>>2]|0;if((d|0)==(e|0)){f=+g[a+12>>2]>+g[b+12>>2];return f|0}else{f=(d|0)<(e|0);return f|0}return 0}function el(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,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;e=l;l=l+32|0;f=e;g=a;a=b;a:while(1){b=a;h=a+-28|0;i=g;while(1){j=i;b:while(1){k=j;m=b-k|0;switch((m|0)/28|0|0){case 2:{n=5;break a;break}case 3:{n=7;break a;break}case 4:{n=15;break a;break}case 5:{n=16;break a;break}case 1:case 0:{n=68;break a;break}default:{}}if((m|0)<868){n=22;break a}o=j+(((m>>>0)/56|0)*28|0)|0;do if((m|0)>27972){p=(m>>>0)/112|0;q=j+(p*28|0)|0;r=o+(p*28|0)|0;p=gl(j,q,o,r,d)|0;if(Ya[c[d>>2]&31](h,r)|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];c[f+16>>2]=c[r+16>>2];c[f+20>>2]=c[r+20>>2];c[f+24>>2]=c[r+24>>2];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];c[r+16>>2]=c[h+16>>2];c[r+20>>2]=c[h+20>>2];c[r+24>>2]=c[h+24>>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];c[h+16>>2]=c[f+16>>2];c[h+20>>2]=c[f+20>>2];c[h+24>>2]=c[f+24>>2];s=p+1|0;if(Ya[c[d>>2]&31](r,o)|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];c[f+16>>2]=c[o+16>>2];c[f+20>>2]=c[o+20>>2];c[f+24>>2]=c[o+24>>2];c[o>>2]=c[r>>2];c[o+4>>2]=c[r+4>>2];c[o+8>>2]=c[r+8>>2];c[o+12>>2]=c[r+12>>2];c[o+16>>2]=c[r+16>>2];c[o+20>>2]=c[r+20>>2];c[o+24>>2]=c[r+24>>2];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];c[r+16>>2]=c[f+16>>2];c[r+20>>2]=c[f+20>>2];c[r+24>>2]=c[f+24>>2];r=p+2|0;if(Ya[c[d>>2]&31](o,q)|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[f+16>>2]=c[q+16>>2];c[f+20>>2]=c[q+20>>2];c[f+24>>2]=c[q+24>>2];c[q>>2]=c[o>>2];c[q+4>>2]=c[o+4>>2];c[q+8>>2]=c[o+8>>2];c[q+12>>2]=c[o+12>>2];c[q+16>>2]=c[o+16>>2];c[q+20>>2]=c[o+20>>2];c[q+24>>2]=c[o+24>>2];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];c[o+16>>2]=c[f+16>>2];c[o+20>>2]=c[f+20>>2];c[o+24>>2]=c[f+24>>2];if(Ya[c[d>>2]&31](q,j)|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[f+20>>2]=c[j+20>>2];c[f+24>>2]=c[j+24>>2];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];c[j+16>>2]=c[q+16>>2];c[j+20>>2]=c[q+20>>2];c[j+24>>2]=c[q+24>>2];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];c[q+16>>2]=c[f+16>>2];c[q+20>>2]=c[f+20>>2];c[q+24>>2]=c[f+24>>2];t=p+4|0}else t=p+3|0}else t=r}else t=s}else t=p}else{p=Ya[c[d>>2]&31](o,j)|0;s=Ya[c[d>>2]&31](h,o)|0;if(!p){if(!s){t=0;break};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];c[f+16>>2]=c[o+16>>2];c[f+20>>2]=c[o+20>>2];c[f+24>>2]=c[o+24>>2];c[o>>2]=c[h>>2];c[o+4>>2]=c[h+4>>2];c[o+8>>2]=c[h+8>>2];c[o+12>>2]=c[h+12>>2];c[o+16>>2]=c[h+16>>2];c[o+20>>2]=c[h+20>>2];c[o+24>>2]=c[h+24>>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];c[h+16>>2]=c[f+16>>2];c[h+20>>2]=c[f+20>>2];c[h+24>>2]=c[f+24>>2];if(!(Ya[c[d>>2]&31](o,j)|0)){t=1;break};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[f+20>>2]=c[j+20>>2];c[f+24>>2]=c[j+24>>2];c[j>>2]=c[o>>2];c[j+4>>2]=c[o+4>>2];c[j+8>>2]=c[o+8>>2];c[j+12>>2]=c[o+12>>2];c[j+16>>2]=c[o+16>>2];c[j+20>>2]=c[o+20>>2];c[j+24>>2]=c[o+24>>2];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];c[o+16>>2]=c[f+16>>2];c[o+20>>2]=c[f+20>>2];c[o+24>>2]=c[f+24>>2];t=2;break}if(s){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[f+20>>2]=c[j+20>>2];c[f+24>>2]=c[j+24>>2];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[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];c[h+16>>2]=c[f+16>>2];c[h+20>>2]=c[f+20>>2];c[h+24>>2]=c[f+24>>2];t=1;break};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[f+20>>2]=c[j+20>>2];c[f+24>>2]=c[j+24>>2];c[j>>2]=c[o>>2];c[j+4>>2]=c[o+4>>2];c[j+8>>2]=c[o+8>>2];c[j+12>>2]=c[o+12>>2];c[j+16>>2]=c[o+16>>2];c[j+20>>2]=c[o+20>>2];c[j+24>>2]=c[o+24>>2];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];c[o+16>>2]=c[f+16>>2];c[o+20>>2]=c[f+20>>2];c[o+24>>2]=c[f+24>>2];if(Ya[c[d>>2]&31](h,o)|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];c[f+16>>2]=c[o+16>>2];c[f+20>>2]=c[o+20>>2];c[f+24>>2]=c[o+24>>2];c[o>>2]=c[h>>2];c[o+4>>2]=c[h+4>>2];c[o+8>>2]=c[h+8>>2];c[o+12>>2]=c[h+12>>2];c[o+16>>2]=c[h+16>>2];c[o+20>>2]=c[h+20>>2];c[o+24>>2]=c[h+24>>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];c[h+16>>2]=c[f+16>>2];c[h+20>>2]=c[f+20>>2];c[h+24>>2]=c[f+24>>2];t=2}else t=1}while(0);if(Ya[c[d>>2]&31](j,o)|0){u=h;v=t;break}else w=h;while(1){w=w+-28|0;if((j|0)==(w|0))break;if(Ya[c[d>>2]&31](w,o)|0){n=51;break b}}m=j+28|0;if(Ya[c[d>>2]&31](j,h)|0)x=m;else{if((m|0)==(h|0)){n=68;break a}else y=m;while(1){if(Ya[c[d>>2]&31](j,y)|0)break;m=y+28|0;if((m|0)==(h|0)){n=68;break a}else y=m}c[f>>2]=c[y>>2];c[f+4>>2]=c[y+4>>2];c[f+8>>2]=c[y+8>>2];c[f+12>>2]=c[y+12>>2];c[f+16>>2]=c[y+16>>2];c[f+20>>2]=c[y+20>>2];c[f+24>>2]=c[y+24>>2];c[y>>2]=c[h>>2];c[y+4>>2]=c[h+4>>2];c[y+8>>2]=c[h+8>>2];c[y+12>>2]=c[h+12>>2];c[y+16>>2]=c[h+16>>2];c[y+20>>2]=c[h+20>>2];c[y+24>>2]=c[h+24>>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];c[h+16>>2]=c[f+16>>2];c[h+20>>2]=c[f+20>>2];c[h+24>>2]=c[f+24>>2];x=y+28|0}if((x|0)==(h|0)){n=68;break a}else{z=h;A=x}while(1){m=A;while(1){B=m+28|0;if(Ya[c[d>>2]&31](j,m)|0){C=z;break}else m=B}do C=C+-28|0;while(Ya[c[d>>2]&31](j,C)|0);if(m>>>0>=C>>>0){j=m;continue b};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];c[f+16>>2]=c[m+16>>2];c[f+20>>2]=c[m+20>>2];c[f+24>>2]=c[m+24>>2];c[m>>2]=c[C>>2];c[m+4>>2]=c[C+4>>2];c[m+8>>2]=c[C+8>>2];c[m+12>>2]=c[C+12>>2];c[m+16>>2]=c[C+16>>2];c[m+20>>2]=c[C+20>>2];c[m+24>>2]=c[C+24>>2];c[C>>2]=c[f>>2];c[C+4>>2]=c[f+4>>2];c[C+8>>2]=c[f+8>>2];c[C+12>>2]=c[f+12>>2];c[C+16>>2]=c[f+16>>2];c[C+20>>2]=c[f+20>>2];c[C+24>>2]=c[f+24>>2];z=C;A=B}}if((n|0)==51){n=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[f+20>>2]=c[j+20>>2];c[f+24>>2]=c[j+24>>2];c[j>>2]=c[w>>2];c[j+4>>2]=c[w+4>>2];c[j+8>>2]=c[w+8>>2];c[j+12>>2]=c[w+12>>2];c[j+16>>2]=c[w+16>>2];c[j+20>>2]=c[w+20>>2];c[j+24>>2]=c[w+24>>2];c[w>>2]=c[f>>2];c[w+4>>2]=c[f+4>>2];c[w+8>>2]=c[f+8>>2];c[w+12>>2]=c[f+12>>2];c[w+16>>2]=c[f+16>>2];c[w+20>>2]=c[f+20>>2];c[w+24>>2]=c[f+24>>2];u=w;v=t+1|0}s=j+28|0;c:do if(s>>>0>>0){p=o;r=u;q=s;D=v;while(1){E=q;while(1){F=E+28|0;if(Ya[c[d>>2]&31](E,p)|0)E=F;else{G=r;break}}do G=G+-28|0;while(!(Ya[c[d>>2]&31](G,p)|0));if(E>>>0>G>>>0){H=p;I=D;J=E;break c};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];c[f+16>>2]=c[E+16>>2];c[f+20>>2]=c[E+20>>2];c[f+24>>2]=c[E+24>>2];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];c[E+16>>2]=c[G+16>>2];c[E+20>>2]=c[G+20>>2];c[E+24>>2]=c[G+24>>2];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];c[G+16>>2]=c[f+16>>2];c[G+20>>2]=c[f+20>>2];c[G+24>>2]=c[f+24>>2];p=(p|0)==(E|0)?G:p;r=G;q=F;D=D+1|0}}else{H=o;I=v;J=s}while(0);if((J|0)!=(H|0)?Ya[c[d>>2]&31](H,J)|0: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[f+20>>2]=c[J+20>>2];c[f+24>>2]=c[J+24>>2];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[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];c[H+16>>2]=c[f+16>>2];c[H+20>>2]=c[f+20>>2];c[H+24>>2]=c[f+24>>2];K=I+1|0}else K=I;if(!K){L=il(j,J,d)|0;s=J+28|0;if(il(s,a,d)|0){n=67;break}if(L){i=s;continue}}s=J;if((s-k|0)>=(b-s|0)){n=66;break}el(j,J,d);i=J+28|0}if((n|0)==66){n=0;el(J+28|0,a,d);g=j;a=J;continue}else if((n|0)==67){n=0;if(L){n=68;break}else{g=j;a=J;continue}}}if((n|0)==5){if(!(Ya[c[d>>2]&31](h,j)|0)){l=e;return};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[f+20>>2]=c[j+20>>2];c[f+24>>2]=c[j+24>>2];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[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];c[h+16>>2]=c[f+16>>2];c[h+20>>2]=c[f+20>>2];c[h+24>>2]=c[f+24>>2];l=e;return}else if((n|0)==7){J=j+28|0;g=Ya[c[d>>2]&31](J,j)|0;L=Ya[c[d>>2]&31](h,J)|0;if(!g){if(!L){l=e;return};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[f+20>>2]=c[J+20>>2];c[f+24>>2]=c[J+24>>2];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[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];c[h+16>>2]=c[f+16>>2];c[h+20>>2]=c[f+20>>2];c[h+24>>2]=c[f+24>>2];if(!(Ya[c[d>>2]&31](J,j)|0)){l=e;return};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[f+20>>2]=c[j+20>>2];c[f+24>>2]=c[j+24>>2];c[j>>2]=c[J>>2];c[j+4>>2]=c[J+4>>2];c[j+8>>2]=c[J+8>>2];c[j+12>>2]=c[J+12>>2];c[j+16>>2]=c[J+16>>2];c[j+20>>2]=c[J+20>>2];c[j+24>>2]=c[J+24>>2];c[J>>2]=c[f>>2];c[J+4>>2]=c[f+4>>2];c[J+8>>2]=c[f+8>>2];c[J+12>>2]=c[f+12>>2];c[J+16>>2]=c[f+16>>2];c[J+20>>2]=c[f+20>>2];c[J+24>>2]=c[f+24>>2];l=e;return}if(L){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[f+20>>2]=c[j+20>>2];c[f+24>>2]=c[j+24>>2];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[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];c[h+16>>2]=c[f+16>>2];c[h+20>>2]=c[f+20>>2];c[h+24>>2]=c[f+24>>2];l=e;return};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[f+20>>2]=c[j+20>>2];c[f+24>>2]=c[j+24>>2];c[j>>2]=c[J>>2];c[j+4>>2]=c[J+4>>2];c[j+8>>2]=c[J+8>>2];c[j+12>>2]=c[J+12>>2];c[j+16>>2]=c[J+16>>2];c[j+20>>2]=c[J+20>>2];c[j+24>>2]=c[J+24>>2];c[J>>2]=c[f>>2];c[J+4>>2]=c[f+4>>2];c[J+8>>2]=c[f+8>>2];c[J+12>>2]=c[f+12>>2];c[J+16>>2]=c[f+16>>2];c[J+20>>2]=c[f+20>>2];c[J+24>>2]=c[f+24>>2];if(!(Ya[c[d>>2]&31](h,J)|0)){l=e;return};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[f+20>>2]=c[J+20>>2];c[f+24>>2]=c[J+24>>2];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[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];c[h+16>>2]=c[f+16>>2];c[h+20>>2]=c[f+20>>2];c[h+24>>2]=c[f+24>>2];l=e;return}else if((n|0)==15){gl(j,j+28|0,j+56|0,h,d)|0;l=e;return}else if((n|0)==16){J=j+28|0;L=j+56|0;g=j+84|0;gl(j,J,L,g,d)|0;if(!(Ya[c[d>>2]&31](h,g)|0)){l=e;return};c[f>>2]=c[g>>2];c[f+4>>2]=c[g+4>>2];c[f+8>>2]=c[g+8>>2];c[f+12>>2]=c[g+12>>2];c[f+16>>2]=c[g+16>>2];c[f+20>>2]=c[g+20>>2];c[f+24>>2]=c[g+24>>2];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];c[g+16>>2]=c[h+16>>2];c[g+20>>2]=c[h+20>>2];c[g+24>>2]=c[h+24>>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];c[h+16>>2]=c[f+16>>2];c[h+20>>2]=c[f+20>>2];c[h+24>>2]=c[f+24>>2];if(!(Ya[c[d>>2]&31](g,L)|0)){l=e;return};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];c[f+16>>2]=c[L+16>>2];c[f+20>>2]=c[L+20>>2];c[f+24>>2]=c[L+24>>2];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];c[L+16>>2]=c[g+16>>2];c[L+20>>2]=c[g+20>>2];c[L+24>>2]=c[g+24>>2];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];c[g+16>>2]=c[f+16>>2];c[g+20>>2]=c[f+20>>2];c[g+24>>2]=c[f+24>>2];if(!(Ya[c[d>>2]&31](L,J)|0)){l=e;return};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[f+20>>2]=c[J+20>>2];c[f+24>>2]=c[J+24>>2];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];c[J+16>>2]=c[L+16>>2];c[J+20>>2]=c[L+20>>2];c[J+24>>2]=c[L+24>>2];c[L>>2]=c[f>>2];c[L+4>>2]=c[f+4>>2];c[L+8>>2]=c[f+8>>2];c[L+12>>2]=c[f+12>>2];c[L+16>>2]=c[f+16>>2];c[L+20>>2]=c[f+20>>2];c[L+24>>2]=c[f+24>>2];if(!(Ya[c[d>>2]&31](J,j)|0)){l=e;return};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[f+20>>2]=c[j+20>>2];c[f+24>>2]=c[j+24>>2];c[j>>2]=c[J>>2];c[j+4>>2]=c[J+4>>2];c[j+8>>2]=c[J+8>>2];c[j+12>>2]=c[J+12>>2];c[j+16>>2]=c[J+16>>2];c[j+20>>2]=c[J+20>>2];c[j+24>>2]=c[J+24>>2];c[J>>2]=c[f>>2];c[J+4>>2]=c[f+4>>2];c[J+8>>2]=c[f+8>>2];c[J+12>>2]=c[f+12>>2];c[J+16>>2]=c[f+16>>2];c[J+20>>2]=c[f+20>>2];c[J+24>>2]=c[f+24>>2];l=e;return}else if((n|0)==22){hl(j,a,d);l=e;return}else if((n|0)==68){l=e;return}}function fl(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0.0,p=0.0,q=0,r=0,s=0;d=l;l=l+32|0;e=d+16|0;f=d+8|0;h=d;i=c[b>>2]|0;j=a+4|0;k=a+8|0;if((i|0)==(c[j>>2]|0)){m=c[k>>2]|0;c[k>>2]=m+1;if((m|0)>3){m=c[a+12>>2]|0;c[m>>2]=(c[m>>2]|0)+1;n=1;l=d;return n|0}}else{c[j>>2]=i;c[k>>2]=1}k=c[a>>2]|0;o=+g[k+32>>2]*(1.0-+g[b+12>>2]);j=c[k+96>>2]|0;p=+g[b+20>>2]*o+ +g[j+(i<<3)+4>>2];g[e>>2]=+g[b+16>>2]*o+ +g[j+(i<<3)>>2];g[e+4>>2]=p;i=b+8|0;b=c[i>>2]|0;j=c[b+12>>2]|0;a:do if(Sa[c[(c[j>>2]|0)+16>>2]&15](j,(c[b+8>>2]|0)+12|0,e)|0)q=0;else{k=c[(c[i>>2]|0)+12>>2]|0;m=Ma[c[(c[k>>2]|0)+12>>2]&7](k)|0;if((m|0)>0){k=0;do{r=c[i>>2]|0;s=c[r+12>>2]|0;Xa[c[(c[s>>2]|0)+20>>2]&7](s,(c[r+8>>2]|0)+12|0,e,f,h,k);k=k+1|0;if(+g[f>>2]<.004999999888241291){q=0;break a}}while((k|0)<(m|0))}m=c[a+12>>2]|0;c[m>>2]=(c[m>>2]|0)+1;q=1}while(0);n=q;l=d;return n|0}function gl(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,m=0;g=l;l=l+32|0;h=g;i=Ya[c[f>>2]&31](b,a)|0;j=Ya[c[f>>2]&31](d,b)|0;do if(i){if(j){c[h>>2]=c[a>>2];c[h+4>>2]=c[a+4>>2];c[h+8>>2]=c[a+8>>2];c[h+12>>2]=c[a+12>>2];c[h+16>>2]=c[a+16>>2];c[h+20>>2]=c[a+20>>2];c[h+24>>2]=c[a+24>>2];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];c[a+16>>2]=c[d+16>>2];c[a+20>>2]=c[d+20>>2];c[a+24>>2]=c[d+24>>2];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];c[d+16>>2]=c[h+16>>2];c[d+20>>2]=c[h+20>>2];c[d+24>>2]=c[h+24>>2];k=1;break};c[h>>2]=c[a>>2];c[h+4>>2]=c[a+4>>2];c[h+8>>2]=c[a+8>>2];c[h+12>>2]=c[a+12>>2];c[h+16>>2]=c[a+16>>2];c[h+20>>2]=c[a+20>>2];c[h+24>>2]=c[a+24>>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[a+16>>2]=c[b+16>>2];c[a+20>>2]=c[b+20>>2];c[a+24>>2]=c[b+24>>2];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];c[b+16>>2]=c[h+16>>2];c[b+20>>2]=c[h+20>>2];c[b+24>>2]=c[h+24>>2];if(Ya[c[f>>2]&31](d,b)|0){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];c[h+16>>2]=c[b+16>>2];c[h+20>>2]=c[b+20>>2];c[h+24>>2]=c[b+24>>2];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[b+16>>2]=c[d+16>>2];c[b+20>>2]=c[d+20>>2];c[b+24>>2]=c[d+24>>2];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];c[d+16>>2]=c[h+16>>2];c[d+20>>2]=c[h+20>>2];c[d+24>>2]=c[h+24>>2];k=2}else k=1}else if(j){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];c[h+16>>2]=c[b+16>>2];c[h+20>>2]=c[b+20>>2];c[h+24>>2]=c[b+24>>2];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[b+16>>2]=c[d+16>>2];c[b+20>>2]=c[d+20>>2];c[b+24>>2]=c[d+24>>2];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];c[d+16>>2]=c[h+16>>2];c[d+20>>2]=c[h+20>>2];c[d+24>>2]=c[h+24>>2];if(Ya[c[f>>2]&31](b,a)|0){c[h>>2]=c[a>>2];c[h+4>>2]=c[a+4>>2];c[h+8>>2]=c[a+8>>2];c[h+12>>2]=c[a+12>>2];c[h+16>>2]=c[a+16>>2];c[h+20>>2]=c[a+20>>2];c[h+24>>2]=c[a+24>>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[a+16>>2]=c[b+16>>2];c[a+20>>2]=c[b+20>>2];c[a+24>>2]=c[b+24>>2];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];c[b+16>>2]=c[h+16>>2];c[b+20>>2]=c[h+20>>2];c[b+24>>2]=c[h+24>>2];k=2}else k=1}else k=0;while(0);if(!(Ya[c[f>>2]&31](e,d)|0)){m=k;l=g;return m|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];c[h+16>>2]=c[d+16>>2];c[h+20>>2]=c[d+20>>2];c[h+24>>2]=c[d+24>>2];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];c[d+16>>2]=c[e+16>>2];c[d+20>>2]=c[e+20>>2];c[d+24>>2]=c[e+24>>2];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];c[e+16>>2]=c[h+16>>2];c[e+20>>2]=c[h+20>>2];c[e+24>>2]=c[h+24>>2];if(!(Ya[c[f>>2]&31](d,b)|0)){m=k+1|0;l=g;return m|0};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];c[h+16>>2]=c[b+16>>2];c[h+20>>2]=c[b+20>>2];c[h+24>>2]=c[b+24>>2];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[b+16>>2]=c[d+16>>2];c[b+20>>2]=c[d+20>>2];c[b+24>>2]=c[d+24>>2];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];c[d+16>>2]=c[h+16>>2];c[d+20>>2]=c[h+20>>2];c[d+24>>2]=c[h+24>>2];if(!(Ya[c[f>>2]&31](b,a)|0)){m=k+2|0;l=g;return m|0};c[h>>2]=c[a>>2];c[h+4>>2]=c[a+4>>2];c[h+8>>2]=c[a+8>>2];c[h+12>>2]=c[a+12>>2];c[h+16>>2]=c[a+16>>2];c[h+20>>2]=c[a+20>>2];c[h+24>>2]=c[a+24>>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[a+16>>2]=c[b+16>>2];c[a+20>>2]=c[b+20>>2];c[a+24>>2]=c[b+24>>2];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];c[b+16>>2]=c[h+16>>2];c[b+20>>2]=c[h+20>>2];c[b+24>>2]=c[h+24>>2];m=k+3|0;l=g;return m|0}function hl(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,m=0;e=l;l=l+32|0;f=e;g=a+56|0;h=a+28|0;i=Ya[c[d>>2]&31](h,a)|0;j=Ya[c[d>>2]&31](g,h)|0;do if(i){if(j){c[f>>2]=c[a>>2];c[f+4>>2]=c[a+4>>2];c[f+8>>2]=c[a+8>>2];c[f+12>>2]=c[a+12>>2];c[f+16>>2]=c[a+16>>2];c[f+20>>2]=c[a+20>>2];c[f+24>>2]=c[a+24>>2];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];c[a+16>>2]=c[g+16>>2];c[a+20>>2]=c[g+20>>2];c[a+24>>2]=c[g+24>>2];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];c[g+16>>2]=c[f+16>>2];c[g+20>>2]=c[f+20>>2];c[g+24>>2]=c[f+24>>2];break};c[f>>2]=c[a>>2];c[f+4>>2]=c[a+4>>2];c[f+8>>2]=c[a+8>>2];c[f+12>>2]=c[a+12>>2];c[f+16>>2]=c[a+16>>2];c[f+20>>2]=c[a+20>>2];c[f+24>>2]=c[a+24>>2];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];c[a+16>>2]=c[h+16>>2];c[a+20>>2]=c[h+20>>2];c[a+24>>2]=c[h+24>>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];c[h+16>>2]=c[f+16>>2];c[h+20>>2]=c[f+20>>2];c[h+24>>2]=c[f+24>>2];if(Ya[c[d>>2]&31](g,h)|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];c[f+16>>2]=c[h+16>>2];c[f+20>>2]=c[h+20>>2];c[f+24>>2]=c[h+24>>2];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];c[h+16>>2]=c[g+16>>2];c[h+20>>2]=c[g+20>>2];c[h+24>>2]=c[g+24>>2];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];c[g+16>>2]=c[f+16>>2];c[g+20>>2]=c[f+20>>2];c[g+24>>2]=c[f+24>>2]}}else if(j?(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],c[f+16>>2]=c[h+16>>2],c[f+20>>2]=c[h+20>>2],c[f+24>>2]=c[h+24>>2],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],c[h+16>>2]=c[g+16>>2],c[h+20>>2]=c[g+20>>2],c[h+24>>2]=c[g+24>>2],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],c[g+16>>2]=c[f+16>>2],c[g+20>>2]=c[f+20>>2],c[g+24>>2]=c[f+24>>2],Ya[c[d>>2]&31](h,a)|0):0){c[f>>2]=c[a>>2];c[f+4>>2]=c[a+4>>2];c[f+8>>2]=c[a+8>>2];c[f+12>>2]=c[a+12>>2];c[f+16>>2]=c[a+16>>2];c[f+20>>2]=c[a+20>>2];c[f+24>>2]=c[a+24>>2];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];c[a+16>>2]=c[h+16>>2];c[a+20>>2]=c[h+20>>2];c[a+24>>2]=c[h+24>>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];c[h+16>>2]=c[f+16>>2];c[h+20>>2]=c[f+20>>2];c[h+24>>2]=c[f+24>>2]}while(0);h=a+84|0;if((h|0)==(b|0)){l=e;return}j=h;h=g;while(1){if(Ya[c[d>>2]&31](j,h)|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[f+20>>2]=c[j+20>>2];c[f+24>>2]=c[j+24>>2];g=h;i=j;while(1){c[i>>2]=c[g>>2];c[i+4>>2]=c[g+4>>2];c[i+8>>2]=c[g+8>>2];c[i+12>>2]=c[g+12>>2];c[i+16>>2]=c[g+16>>2];c[i+20>>2]=c[g+20>>2];c[i+24>>2]=c[g+24>>2];if((g|0)==(a|0))break;k=g+-28|0;if(Ya[c[d>>2]&31](f,k)|0){m=g;g=k;i=m}else break}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];c[g+16>>2]=c[f+16>>2];c[g+20>>2]=c[f+20>>2];c[g+24>>2]=c[f+24>>2]}i=j+28|0;if((i|0)==(b|0))break;else{m=j;j=i;h=m}}l=e;return}function il(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,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;e=l;l=l+32|0;f=e;switch((b-a|0)/28|0|0){case 2:{g=b+-28|0;if(!(Ya[c[d>>2]&31](g,a)|0)){h=1;l=e;return h|0};c[f>>2]=c[a>>2];c[f+4>>2]=c[a+4>>2];c[f+8>>2]=c[a+8>>2];c[f+12>>2]=c[a+12>>2];c[f+16>>2]=c[a+16>>2];c[f+20>>2]=c[a+20>>2];c[f+24>>2]=c[a+24>>2];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];c[a+16>>2]=c[g+16>>2];c[a+20>>2]=c[g+20>>2];c[a+24>>2]=c[g+24>>2];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];c[g+16>>2]=c[f+16>>2];c[g+20>>2]=c[f+20>>2];c[g+24>>2]=c[f+24>>2];h=1;l=e;return h|0}case 3:{g=a+28|0;i=b+-28|0;j=Ya[c[d>>2]&31](g,a)|0;k=Ya[c[d>>2]&31](i,g)|0;if(!j){if(!k){h=1;l=e;return h|0};c[f>>2]=c[g>>2];c[f+4>>2]=c[g+4>>2];c[f+8>>2]=c[g+8>>2];c[f+12>>2]=c[g+12>>2];c[f+16>>2]=c[g+16>>2];c[f+20>>2]=c[g+20>>2];c[f+24>>2]=c[g+24>>2];c[g>>2]=c[i>>2];c[g+4>>2]=c[i+4>>2];c[g+8>>2]=c[i+8>>2];c[g+12>>2]=c[i+12>>2];c[g+16>>2]=c[i+16>>2];c[g+20>>2]=c[i+20>>2];c[g+24>>2]=c[i+24>>2];c[i>>2]=c[f>>2];c[i+4>>2]=c[f+4>>2];c[i+8>>2]=c[f+8>>2];c[i+12>>2]=c[f+12>>2];c[i+16>>2]=c[f+16>>2];c[i+20>>2]=c[f+20>>2];c[i+24>>2]=c[f+24>>2];if(!(Ya[c[d>>2]&31](g,a)|0)){h=1;l=e;return h|0};c[f>>2]=c[a>>2];c[f+4>>2]=c[a+4>>2];c[f+8>>2]=c[a+8>>2];c[f+12>>2]=c[a+12>>2];c[f+16>>2]=c[a+16>>2];c[f+20>>2]=c[a+20>>2];c[f+24>>2]=c[a+24>>2];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];c[a+16>>2]=c[g+16>>2];c[a+20>>2]=c[g+20>>2];c[a+24>>2]=c[g+24>>2];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];c[g+16>>2]=c[f+16>>2];c[g+20>>2]=c[f+20>>2];c[g+24>>2]=c[f+24>>2];h=1;l=e;return h|0}if(k){c[f>>2]=c[a>>2];c[f+4>>2]=c[a+4>>2];c[f+8>>2]=c[a+8>>2];c[f+12>>2]=c[a+12>>2];c[f+16>>2]=c[a+16>>2];c[f+20>>2]=c[a+20>>2];c[f+24>>2]=c[a+24>>2];c[a>>2]=c[i>>2];c[a+4>>2]=c[i+4>>2];c[a+8>>2]=c[i+8>>2];c[a+12>>2]=c[i+12>>2];c[a+16>>2]=c[i+16>>2];c[a+20>>2]=c[i+20>>2];c[a+24>>2]=c[i+24>>2];c[i>>2]=c[f>>2];c[i+4>>2]=c[f+4>>2];c[i+8>>2]=c[f+8>>2];c[i+12>>2]=c[f+12>>2];c[i+16>>2]=c[f+16>>2];c[i+20>>2]=c[f+20>>2];c[i+24>>2]=c[f+24>>2];h=1;l=e;return h|0};c[f>>2]=c[a>>2];c[f+4>>2]=c[a+4>>2];c[f+8>>2]=c[a+8>>2];c[f+12>>2]=c[a+12>>2];c[f+16>>2]=c[a+16>>2];c[f+20>>2]=c[a+20>>2];c[f+24>>2]=c[a+24>>2];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];c[a+16>>2]=c[g+16>>2];c[a+20>>2]=c[g+20>>2];c[a+24>>2]=c[g+24>>2];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];c[g+16>>2]=c[f+16>>2];c[g+20>>2]=c[f+20>>2];c[g+24>>2]=c[f+24>>2];if(!(Ya[c[d>>2]&31](i,g)|0)){h=1;l=e;return h|0};c[f>>2]=c[g>>2];c[f+4>>2]=c[g+4>>2];c[f+8>>2]=c[g+8>>2];c[f+12>>2]=c[g+12>>2];c[f+16>>2]=c[g+16>>2];c[f+20>>2]=c[g+20>>2];c[f+24>>2]=c[g+24>>2];c[g>>2]=c[i>>2];c[g+4>>2]=c[i+4>>2];c[g+8>>2]=c[i+8>>2];c[g+12>>2]=c[i+12>>2];c[g+16>>2]=c[i+16>>2];c[g+20>>2]=c[i+20>>2];c[g+24>>2]=c[i+24>>2];c[i>>2]=c[f>>2];c[i+4>>2]=c[f+4>>2];c[i+8>>2]=c[f+8>>2];c[i+12>>2]=c[f+12>>2];c[i+16>>2]=c[f+16>>2];c[i+20>>2]=c[f+20>>2];c[i+24>>2]=c[f+24>>2];h=1;l=e;return h|0}case 4:{gl(a,a+28|0,a+56|0,b+-28|0,d)|0;h=1;l=e;return h|0}case 5:{i=a+28|0;g=a+56|0;k=a+84|0;j=b+-28|0;gl(a,i,g,k,d)|0;if(!(Ya[c[d>>2]&31](j,k)|0)){h=1;l=e;return h|0};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];c[f+16>>2]=c[k+16>>2];c[f+20>>2]=c[k+20>>2];c[f+24>>2]=c[k+24>>2];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];c[k+16>>2]=c[j+16>>2];c[k+20>>2]=c[j+20>>2];c[k+24>>2]=c[j+24>>2];c[j>>2]=c[f>>2];c[j+4>>2]=c[f+4>>2];c[j+8>>2]=c[f+8>>2];c[j+12>>2]=c[f+12>>2];c[j+16>>2]=c[f+16>>2];c[j+20>>2]=c[f+20>>2];c[j+24>>2]=c[f+24>>2];if(!(Ya[c[d>>2]&31](k,g)|0)){h=1;l=e;return h|0};c[f>>2]=c[g>>2];c[f+4>>2]=c[g+4>>2];c[f+8>>2]=c[g+8>>2];c[f+12>>2]=c[g+12>>2];c[f+16>>2]=c[g+16>>2];c[f+20>>2]=c[g+20>>2];c[f+24>>2]=c[g+24>>2];c[g>>2]=c[k>>2];c[g+4>>2]=c[k+4>>2];c[g+8>>2]=c[k+8>>2];c[g+12>>2]=c[k+12>>2];c[g+16>>2]=c[k+16>>2];c[g+20>>2]=c[k+20>>2];c[g+24>>2]=c[k+24>>2];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[k+16>>2]=c[f+16>>2];c[k+20>>2]=c[f+20>>2];c[k+24>>2]=c[f+24>>2];if(!(Ya[c[d>>2]&31](g,i)|0)){h=1;l=e;return h|0};c[f>>2]=c[i>>2];c[f+4>>2]=c[i+4>>2];c[f+8>>2]=c[i+8>>2];c[f+12>>2]=c[i+12>>2];c[f+16>>2]=c[i+16>>2];c[f+20>>2]=c[i+20>>2];c[f+24>>2]=c[i+24>>2];c[i>>2]=c[g>>2];c[i+4>>2]=c[g+4>>2];c[i+8>>2]=c[g+8>>2];c[i+12>>2]=c[g+12>>2];c[i+16>>2]=c[g+16>>2];c[i+20>>2]=c[g+20>>2];c[i+24>>2]=c[g+24>>2];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];c[g+16>>2]=c[f+16>>2];c[g+20>>2]=c[f+20>>2];c[g+24>>2]=c[f+24>>2];if(!(Ya[c[d>>2]&31](i,a)|0)){h=1;l=e;return h|0};c[f>>2]=c[a>>2];c[f+4>>2]=c[a+4>>2];c[f+8>>2]=c[a+8>>2];c[f+12>>2]=c[a+12>>2];c[f+16>>2]=c[a+16>>2];c[f+20>>2]=c[a+20>>2];c[f+24>>2]=c[a+24>>2];c[a>>2]=c[i>>2];c[a+4>>2]=c[i+4>>2];c[a+8>>2]=c[i+8>>2];c[a+12>>2]=c[i+12>>2];c[a+16>>2]=c[i+16>>2];c[a+20>>2]=c[i+20>>2];c[a+24>>2]=c[i+24>>2];c[i>>2]=c[f>>2];c[i+4>>2]=c[f+4>>2];c[i+8>>2]=c[f+8>>2];c[i+12>>2]=c[f+12>>2];c[i+16>>2]=c[f+16>>2];c[i+20>>2]=c[f+20>>2];c[i+24>>2]=c[f+24>>2];h=1;l=e;return h|0}case 1:case 0:{h=1;l=e;return h|0}default:{i=a+56|0;g=a+28|0;k=Ya[c[d>>2]&31](g,a)|0;j=Ya[c[d>>2]&31](i,g)|0;do if(k){if(j){c[f>>2]=c[a>>2];c[f+4>>2]=c[a+4>>2];c[f+8>>2]=c[a+8>>2];c[f+12>>2]=c[a+12>>2];c[f+16>>2]=c[a+16>>2];c[f+20>>2]=c[a+20>>2];c[f+24>>2]=c[a+24>>2];c[a>>2]=c[i>>2];c[a+4>>2]=c[i+4>>2];c[a+8>>2]=c[i+8>>2];c[a+12>>2]=c[i+12>>2];c[a+16>>2]=c[i+16>>2];c[a+20>>2]=c[i+20>>2];c[a+24>>2]=c[i+24>>2];c[i>>2]=c[f>>2];c[i+4>>2]=c[f+4>>2];c[i+8>>2]=c[f+8>>2];c[i+12>>2]=c[f+12>>2];c[i+16>>2]=c[f+16>>2];c[i+20>>2]=c[f+20>>2];c[i+24>>2]=c[f+24>>2];break};c[f>>2]=c[a>>2];c[f+4>>2]=c[a+4>>2];c[f+8>>2]=c[a+8>>2];c[f+12>>2]=c[a+12>>2];c[f+16>>2]=c[a+16>>2];c[f+20>>2]=c[a+20>>2];c[f+24>>2]=c[a+24>>2];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];c[a+16>>2]=c[g+16>>2];c[a+20>>2]=c[g+20>>2];c[a+24>>2]=c[g+24>>2];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];c[g+16>>2]=c[f+16>>2];c[g+20>>2]=c[f+20>>2];c[g+24>>2]=c[f+24>>2];if(Ya[c[d>>2]&31](i,g)|0){c[f>>2]=c[g>>2];c[f+4>>2]=c[g+4>>2];c[f+8>>2]=c[g+8>>2];c[f+12>>2]=c[g+12>>2];c[f+16>>2]=c[g+16>>2];c[f+20>>2]=c[g+20>>2];c[f+24>>2]=c[g+24>>2];c[g>>2]=c[i>>2];c[g+4>>2]=c[i+4>>2];c[g+8>>2]=c[i+8>>2];c[g+12>>2]=c[i+12>>2];c[g+16>>2]=c[i+16>>2];c[g+20>>2]=c[i+20>>2];c[g+24>>2]=c[i+24>>2];c[i>>2]=c[f>>2];c[i+4>>2]=c[f+4>>2];c[i+8>>2]=c[f+8>>2];c[i+12>>2]=c[f+12>>2];c[i+16>>2]=c[f+16>>2];c[i+20>>2]=c[f+20>>2];c[i+24>>2]=c[f+24>>2]}}else if(j?(c[f>>2]=c[g>>2],c[f+4>>2]=c[g+4>>2],c[f+8>>2]=c[g+8>>2],c[f+12>>2]=c[g+12>>2],c[f+16>>2]=c[g+16>>2],c[f+20>>2]=c[g+20>>2],c[f+24>>2]=c[g+24>>2],c[g>>2]=c[i>>2],c[g+4>>2]=c[i+4>>2],c[g+8>>2]=c[i+8>>2],c[g+12>>2]=c[i+12>>2],c[g+16>>2]=c[i+16>>2],c[g+20>>2]=c[i+20>>2],c[g+24>>2]=c[i+24>>2],c[i>>2]=c[f>>2],c[i+4>>2]=c[f+4>>2],c[i+8>>2]=c[f+8>>2],c[i+12>>2]=c[f+12>>2],c[i+16>>2]=c[f+16>>2],c[i+20>>2]=c[f+20>>2],c[i+24>>2]=c[f+24>>2],Ya[c[d>>2]&31](g,a)|0):0){c[f>>2]=c[a>>2];c[f+4>>2]=c[a+4>>2];c[f+8>>2]=c[a+8>>2];c[f+12>>2]=c[a+12>>2];c[f+16>>2]=c[a+16>>2];c[f+20>>2]=c[a+20>>2];c[f+24>>2]=c[a+24>>2];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];c[a+16>>2]=c[g+16>>2];c[a+20>>2]=c[g+20>>2];c[a+24>>2]=c[g+24>>2];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];c[g+16>>2]=c[f+16>>2];c[g+20>>2]=c[f+20>>2];c[g+24>>2]=c[f+24>>2]}while(0);g=a+84|0;a:do if((g|0)==(b|0)){m=1;n=0}else{j=g;k=0;o=i;while(1){if(Ya[c[d>>2]&31](j,o)|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[f+20>>2]=c[j+20>>2];c[f+24>>2]=c[j+24>>2];p=o;q=j;while(1){c[q>>2]=c[p>>2];c[q+4>>2]=c[p+4>>2];c[q+8>>2]=c[p+8>>2];c[q+12>>2]=c[p+12>>2];c[q+16>>2]=c[p+16>>2];c[q+20>>2]=c[p+20>>2];c[q+24>>2]=c[p+24>>2];if((p|0)==(a|0))break;r=p+-28|0;if(Ya[c[d>>2]&31](f,r)|0){s=p;p=r;q=s}else break}c[p>>2]=c[f>>2];c[p+4>>2]=c[f+4>>2];c[p+8>>2]=c[f+8>>2];c[p+12>>2]=c[f+12>>2];c[p+16>>2]=c[f+16>>2];c[p+20>>2]=c[f+20>>2];c[p+24>>2]=c[f+24>>2];q=k+1|0;if((q|0)==8){m=0;n=(j+28|0)==(b|0);break a}else t=q}else t=k;q=j+28|0;if((q|0)==(b|0)){m=1;n=0;break}else{s=j;j=q;k=t;o=s}}}while(0);h=n|m;l=e;return h|0}}return 0}function jl(a){a=a|0;fn(a);return}function kl(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;e=l;l=l+48|0;f=e+24|0;g=e;if(a[d+38>>0]|0){l=e;return 1}h=c[d+12>>2]|0;i=Ma[c[(c[h>>2]|0)+12>>2]&7](h)|0;if((i|0)<=0){l=e;return 1}h=d+24|0;j=b+4|0;k=g+16|0;m=g+20|0;n=g+4|0;o=0;do{p=(c[h>>2]|0)+(o*28|0)|0;c[f>>2]=c[p>>2];c[f+4>>2]=c[p+4>>2];c[f+8>>2]=c[p+8>>2];c[f+12>>2]=c[p+12>>2];Xk(g,c[j>>2]|0,f);p=c[k>>2]|0;q=c[m>>2]|0;if(p>>>0>>0){r=c[g>>2]|0;s=c[n>>2]|0;t=p;a:while(1){p=t;while(1){u=c[p+4>>2]&1048575;v=p+8|0;if(!(u>>>0>>0|u>>>0>s>>>0))break;if(v>>>0>>0)p=v;else break a}u=c[p>>2]|0;if((u|0)<=-1)break;_a[c[(c[b>>2]|0)+20>>2]&31](b,d,o,u);if(v>>>0>>0)t=v;else break}c[k>>2]=v}o=o+1|0}while((o|0)!=(i|0));l=e;return 1}function ll(a,b){a=a|0;b=b|0;return 0}function ml(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,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,y=0,z=0,A=0,B=0,C=0,D=0,E=0.0,F=0.0;f=l;l=l+32|0;h=f;i=f+16|0;j=f+8|0;k=a+4|0;m=(c[(c[k>>2]|0)+96>>2]|0)+(e<<3)|0;n=c[m+4>>2]|0;o=h;c[o>>2]=c[m>>2];c[o+4>>2]=n;n=c[b+12>>2]|0;o=b+8|0;Xa[c[(c[n>>2]|0)+20>>2]&7](n,(c[o>>2]|0)+12|0,h,i,j,d);d=c[k>>2]|0;if(!(+g[i>>2]<+g[d+32>>2])){l=f;return}n=c[a+8>>2]|0;do if((n|0)!=0?(c[(c[d+88>>2]|0)+(e<<2)>>2]&65536|0)!=0:0)if(Wa[c[(c[n>>2]|0)+12>>2]&7](n,b,d,e)|0){p=c[k>>2]|0;break}else{l=f;return}else p=d;while(0);d=c[o>>2]|0;q=+g[d+132>>2];r=+g[d+44>>2];s=+g[d+48>>2];t=q*(r*r+s*s);s=+g[d+140>>2]+t-t;if(!(c[(c[p+88>>2]|0)+(e<<2)>>2]&4)){t=+g[p+36>>2]*1.3333333730697632;u=t*(+g[p+28>>2]*t)}else u=0.0;o=j+4|0;t=+g[o>>2];r=+g[j>>2];v=(+g[h>>2]-+g[d+60>>2])*t-(+g[h+4>>2]-+g[d+64>>2])*r;w=(q>0.0?1.0/q:0.0)+u+v*((s>0.0?1.0/s:0.0)*v);h=p+232|0;n=p+236|0;a=c[n>>2]|0;m=p+240|0;x=c[m>>2]|0;if((a|0)>=(x|0)?(y=(x|0)==0?256:x<<1,(x|0)<(y|0)):0){x=p+244|0;z=Pl(c[x>>2]|0,y*28|0)|0;A=c[h>>2]|0;if(!A)B=h;else{Qn(z|0,A|0,(c[n>>2]|0)*28|0)|0;Ql(c[x>>2]|0,c[h>>2]|0,(c[m>>2]|0)*28|0);B=h}c[m>>2]=y;c[B>>2]=z;C=c[n>>2]|0;D=c[k>>2]|0;E=+g[j>>2];F=+g[o>>2]}else{C=a;D=p;E=r;F=t}p=c[h>>2]|0;c[n>>2]=C+1;c[p+(C*28|0)>>2]=e;c[p+(C*28|0)+4>>2]=d;c[p+(C*28|0)+8>>2]=b;g[p+(C*28|0)+12>>2]=1.0-+g[i>>2]*+g[D+36>>2];g[p+(C*28|0)+16>>2]=-E;g[p+(C*28|0)+20>>2]=-F;g[p+(C*28|0)+24>>2]=w>0.0?1.0/w:0.0;Yk(c[k>>2]|0,e);l=f;return}function nl(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0,i=0,j=0,k=0,m=0,n=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.0,z=0.0,A=0;d=l;l=l+64|0;e=d;f=d+16|0;g[e>>2]=3402823466385288598117041.0e14;h=e+4|0;g[h>>2]=3402823466385288598117041.0e14;i=e+8|0;g[i>>2]=-3402823466385288598117041.0e14;j=e+12|0;g[j>>2]=-3402823466385288598117041.0e14;k=c[a+44>>2]|0;if((k|0)>0){m=c[a+104>>2]|0;n=c[a+96>>2]|0;o=+g[b>>2];p=0;q=3402823466385288598117041.0e14;r=3402823466385288598117041.0e14;s=-3402823466385288598117041.0e14;t=-3402823466385288598117041.0e14;do{u=+g[n+(p<<3)>>2];v=+g[n+(p<<3)+4>>2];w=u+ +g[m+(p<<3)>>2]*o;x=v+ +g[m+(p<<3)+4>>2]*o;y=u>2]=q;g[h>>2]=r;z=u>w?u:w;w=v>x?v:x;s=s>z?s:z;t=t>w?t:w;g[i>>2]=s;g[j>>2]=t;p=p+1|0}while((p|0)<(k|0))}k=c[a+400>>2]|0;if(!(c[a+8>>2]&65536))A=0;else A=c[k+102948>>2]|0;c[f+4>>2]=a;c[f>>2]=2068;a=f+8|0;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[a+16>>2]=c[b+16>>2];c[a+20>>2]=c[b+20>>2];c[a+24>>2]=c[b+24>>2];c[f+36>>2]=A;$i(k,f,e);l=d;return}function ol(a){a=a|0;fn(a);return}function pl(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var h=0,i=0,k=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.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,O=0;h=l;l=l+48|0;i=h+24|0;k=h;m=c[b+36>>2]|0;n=b+4|0;if((m|0?(o=c[n>>2]|0,c[(c[o+88>>2]|0)+(f<<2)>>2]&65536|0):0)?!(Wa[c[(c[m>>2]|0)+12>>2]&7](m,d,o,f)|0):0){l=h;return}o=c[d+8>>2]|0;m=c[n>>2]|0;p=c[m+96>>2]|0;q=c[p+(f<<3)>>2]|0;r=c[p+(f<<3)+4>>2]|0;p=c[m+104>>2]|0;s=+g[p+(f<<3)>>2];t=+g[p+(f<<3)+4>>2];if(!(c[m+24>>2]|0)){u=(c[j>>2]=q,+g[j>>2]);v=u-+g[o+28>>2];w=(c[j>>2]=r,+g[j>>2]);x=w-+g[o+32>>2];y=+g[o+40>>2];z=+g[o+36>>2];A=v*y+x*z;B=y*x-v*z;m=c[d+12>>2]|0;if(!(c[m+4>>2]|0)){v=+g[o+44>>2];x=A-v;C=+g[o+48>>2];D=B-C;E=x*y-D*z;F=y*D+x*z;z=+g[o+24>>2];x=+g[o+20>>2];G=v+(z*E+x*F);H=C+(z*F-E*x);I=z;J=x}else{G=A;H=B;I=+g[o+24>>2];J=+g[o+20>>2]}p=(g[j>>2]=+g[o+12>>2]+(G*I-H*J),c[j>>2]|0);K=u;L=w;M=(g[j>>2]=H*I+G*J+ +g[o+16>>2],c[j>>2]|0);N=p;O=m}else{J=(c[j>>2]=q,+g[j>>2]);K=J;L=(c[j>>2]=r,+g[j>>2]);M=r;N=q;O=c[d+12>>2]|0}c[k>>2]=N;N=k+4|0;c[N>>2]=M;J=+g[b+8>>2];M=k+8|0;g[M>>2]=K+s*J;d=k+12|0;g[d>>2]=L+t*J;g[k+16>>2]=1.0;if((Za[c[(c[O>>2]|0)+24>>2]&15](O,i,k,o+12|0,e)|0?(J=+g[i+8>>2],G=1.0-J,e=b+12|0,I=+g[e>>2],H=I*(+g[i>>2]*.004999999888241291+(+g[k>>2]*G+J*+g[M>>2])-K),K=I*(+g[i+4>>2]*.004999999888241291+(G*+g[N>>2]+J*+g[d>>2])-L),d=c[(c[n>>2]|0)+104>>2]|0,g[d+(f<<3)>>2]=H,g[d+(f<<3)+4>>2]=K,d=c[n>>2]|0,L=+g[d+32>>2]*.75,J=+g[e>>2]*(L*(+g[d+320>>2]*L)),L=(s-H)*J,H=(t-K)*J,L!=0.0|H!=0.0):0)?(c[(c[d+88>>2]|0)+(f<<2)>>2]&4|0)==0:0){e=d+21|0;n=d+112|0;if(!(a[e>>0]|0)){Nn(c[n>>2]|0,0,c[d+44>>2]<<3|0)|0;a[e>>0]=1}e=c[n>>2]|0;n=e+(f<<3)|0;g[n>>2]=L+ +g[n>>2];n=e+(f<<3)+4|0;g[n>>2]=H+ +g[n>>2]}l=h;return}function ql(b,d){b=b|0;d=d|0;var e=0,f=0,h=0,i=0,k=0,m=0,n=0,o=0,p=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,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,O=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,_=0,$=0,aa=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.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.0,xa=0.0,ya=0;e=l;l=l+48|0;f=e;h=e+16|0;i=b+44|0;k=c[i>>2]|0;if((k|0)>0){m=c[b+88>>2]|0;n=b+104|0;o=0;do{if((c[m+(o<<2)>>2]&1028|0)==1028){p=c[n>>2]|0;g[p+(o<<3)>>2]=0.0;g[p+(o<<3)+4>>2]=0.0}o=o+1|0}while((o|0)<(k|0))}q=+g[d>>2]*2.5;k=b+252|0;o=c[k>>2]|0;if((o|0)<=0){l=e;return}n=b+248|0;m=b+96|0;p=f+4|0;r=f+8|0;s=f+12|0;t=b+144|0;u=b+104|0;v=h+16|0;w=h+20|0;x=h+4|0;y=b+32|0;z=b+320|0;A=d+4|0;d=b+88|0;B=b+21|0;D=b+112|0;E=0;F=o;while(1){o=c[n>>2]|0;if(!(c[o+(E*20|0)+8>>2]&1024))G=F;else{H=c[o+(E*20|0)>>2]|0;I=c[o+(E*20|0)+4>>2]|0;o=c[m>>2]|0;J=+g[o+(H<<3)>>2];K=+g[o+(H<<3)+4>>2];L=+g[o+(I<<3)>>2];M=+g[o+(I<<3)+4>>2];g[f>>2]=J>2]=K>2]=J>L?J:L;g[s>>2]=K>M?K:M;o=c[t>>2]|0;N=c[o+(H<<2)>>2]|0;O=c[o+(I<<2)>>2]|0;if((N|0)!=0?(c[N+12>>2]&2|0)!=0:0){Lj(N);P=+g[N+56>>2];Q=+g[N+48>>2]-P*(K-+g[N+44>>2]);R=P*(J-+g[N+40>>2])+ +g[N+52>>2]}else{o=c[u>>2]|0;Q=+g[o+(H<<3)>>2];R=+g[o+(H<<3)+4>>2]}if((O|0)!=0?(c[O+12>>2]&2|0)!=0:0){Lj(O);P=+g[O+56>>2];S=+g[O+48>>2]-P*(M-+g[O+44>>2]);T=P*(L-+g[O+40>>2])+ +g[O+52>>2]}else{H=c[u>>2]|0;S=+g[H+(I<<3)>>2];T=+g[H+(I<<3)+4>>2]}P=L-J;L=M-K;M=S-Q;U=T-R;Xk(h,b,f);I=c[v>>2]|0;H=c[w>>2]|0;if(I>>>0>>0){o=c[h>>2]|0;V=c[x>>2]|0;W=I;a:while(1){I=W;while(1){X=c[I+4>>2]&1048575;Y=I+8|0;if(!(X>>>0>>0|X>>>0>V>>>0))break;if(Y>>>0>>0)I=Y;else break a}X=c[I>>2]|0;if((X|0)<=-1)break;Z=c[m>>2]|0;_=c[Z+(X<<3)>>2]|0;$=c[Z+(X<<3)+4>>2]|0;Z=c[(c[t>>2]|0)+(X<<2)>>2]|0;b:do if(!((N|0)==(Z|0)|(O|0)==(Z|0))){aa=(Z|0)==0;if(!aa?(c[Z+12>>2]&2|0)!=0:0){Lj(Z);ba=+g[Z+56>>2];ca=(c[j>>2]=_,+g[j>>2]);da=(c[j>>2]=$,+g[j>>2]);ea=da;fa=ca;ga=+g[Z+48>>2]-ba*(da-+g[Z+44>>2]);ha=ba*(ca-+g[Z+40>>2])+ +g[Z+52>>2]}else{ia=c[u>>2]|0;ca=(c[j>>2]=_,+g[j>>2]);ea=(c[j>>2]=$,+g[j>>2]);fa=ca;ga=+g[ia+(X<<3)>>2];ha=+g[ia+(X<<3)+4>>2]}ca=fa-J;ba=ea-K;da=ga-Q;ja=ha-R;ka=M*ja-U*da;la=P*ja-L*da-(U*ca-M*ba);ma=P*ba-L*ca;do if(ka==0.0){if(la==0.0)break b;na=-ma/la;if(!(na>=0.0&na=0.0&qa<=1.0)ra=qa;else break b}else{qa=la*la-ma*4.0*ka;if(qa<0.0)break b;pa=+C(+qa);qa=ka*2.0;oa=(-la-pa)/qa;ia=(g[j>>2]=oa,c[j>>2]|0);na=(pa-la)/qa;sa=(g[j>>2]=na,c[j>>2]|0);ta=oa>na;ua=ta?ia:sa;na=(c[j>>2]=ta?sa:ia,+g[j>>2]);oa=P+M*na;qa=L+U*na;pa=(oa*(ca+da*na)+qa*(ba+ja*na))/(oa*oa+qa*qa);if(na>=0.0?pa<=1.0&(na=0.0):0){ra=pa;break}pa=(c[j>>2]=ua,+g[j>>2]);if(!(pa>=0.0&pa=0.0&oa<=1.0)ra=oa;else break b}while(0);ja=Q+M*ra-ga;ba=R+U*ra-ha;da=+g[y>>2]*.75;ca=da*(+g[z>>2]*da);da=ja*ca;la=ba*ca;if(!aa?(c[Z+12>>2]&2|0)!=0:0){Lj(Z);ca=+g[Z+32>>2];Lj(Z);ka=+g[Z+36>>2];if(ca>0.0){ma=1.0/ca;ua=Z+48|0;g[ua>>2]=da*ma+ +g[ua>>2];ua=Z+52|0;g[ua>>2]=la*ma+ +g[ua>>2]}if(ka>0.0){Lj(Z);ua=Z+56|0;va=ua;wa=+g[ua>>2];xa=(la*(fa-+g[Z+40>>2])-da*(ea-+g[Z+44>>2]))/ka;ya=46}}else{ua=c[u>>2]|0;ia=ua+(X<<3)|0;g[ia>>2]=ja+ +g[ia>>2];ia=ua+(X<<3)+4|0;va=ia;wa=ba;xa=+g[ia>>2];ya=46}if((ya|0)==46){ya=0;g[va>>2]=xa+wa}ba=-+g[A>>2];ja=da*ba;da=la*ba;if(ja!=0.0|da!=0.0?(c[(c[d>>2]|0)+(X<<2)>>2]&4|0)==0:0){if(!(a[B>>0]|0)){Nn(c[D>>2]|0,0,c[i>>2]<<3|0)|0;a[B>>0]=1}ia=c[D>>2]|0;ua=ia+(X<<3)|0;g[ua>>2]=ja+ +g[ua>>2];ua=ia+(X<<3)+4|0;g[ua>>2]=da+ +g[ua>>2]}}while(0);if(Y>>>0>>0)W=Y;else break}c[v>>2]=Y}G=c[k>>2]|0}E=E+1|0;if((E|0)>=(G|0))break;else F=G}l=e;return}function rl(b,d){b=b|0;d=d|0;var e=0,f=0,h=0,i=0,j=0,k=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,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,O=0,Q=0,R=0,S=0,T=0,U=0.0,V=0.0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0.0,ba=0,ca=0.0,da=0.0,ea=0,fa=0,ga=0,ha=0,ia=0.0,ja=0;e=l;l=l+48|0;f=e+32|0;h=e;i=b+44|0;j=c[i>>2]|0;if(!j){l=e;return}k=c[b+280>>2]|0;if(k|0){m=b+296|0;n=m;o=+g[d>>2]/+g[b+396>>2]*4294967296.0;p=Mn(~~o>>>0|0,(+B(o)>=1.0?(o>0.0?~~+P(+A(o/4294967296.0),4294967295.0)>>>0:~~+N((o-+(~~o>>>0))/4294967296.0)>>>0):0)|0,c[n>>2]|0,c[n+4>>2]|0)|0;n=z;q=m;c[q>>2]=p;c[q+4>>2]=n;q=c[b+288>>2]|0;p=b+304|0;if(a[p>>0]|0){c[f>>2]=k;sl(q,q+(j<<2)|0,f);a[p>>0]=0}a:do if((j|0)>0){p=b+88|0;m=j;do{r=m;m=m+-1|0;s=c[q+(m<<2)>>2]|0;t=c[k+(s<<2)>>2]|0;if((n|0)<(t|0)|(t|0)<1)break a;Wj(b,s,c[(c[p>>2]|0)+(s<<2)>>2]|2)}while((r|0)>1)}while(0)}n=b+8|0;if(c[n>>2]&2|0)Xj(b);k=b+12|0;if(a[k>>0]|0){c[n>>2]=0;q=c[i>>2]|0;if((q|0)>0){j=c[b+88>>2]|0;p=0;m=0;do{m=c[j+(p<<2)>>2]|m;c[n>>2]=m;p=p+1|0}while((p|0)!=(q|0))}a[k>>0]=0}k=b+20|0;if(a[k>>0]|0){q=b+16|0;c[q>>2]=0;p=c[b+312>>2]|0;if(p|0){m=p;p=0;do{p=c[m+12>>2]|p;m=c[m+24>>2]|0}while((m|0)!=0);c[q>>2]=p}a[k>>0]=0}if(a[b>>0]|0){l=e;return}k=b+24|0;c[k>>2]=0;p=d+20|0;q=c[p>>2]|0;if((q|0)<=0){l=e;return}m=b+4|0;j=h+4|0;r=b+116|0;s=b+236|0;t=b+232|0;u=b+220|0;v=b+216|0;w=b+16|0;x=b+21|0;y=b+324|0;D=b+400|0;E=b+104|0;F=b+32|0;G=b+88|0;H=b+96|0;I=b+372|0;J=b+144|0;K=b+132|0;L=b+368|0;M=b+364|0;O=b+36|0;Q=b+28|0;R=b+112|0;S=f+4|0;T=q;do{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];c[h+16>>2]=c[d+16>>2];c[h+20>>2]=c[d+20>>2];c[h+24>>2]=c[d+24>>2];o=+(T|0);U=+g[h>>2]/o;g[h>>2]=U;V=o*+g[j>>2];g[j>>2]=V;ok(b,0);cl(b);Nn(c[r>>2]|0,0,c[i>>2]<<2|0)|0;q=c[s>>2]|0;if((q|0)>0){W=c[t>>2]|0;X=c[r>>2]|0;Y=0;do{Z=X+(c[W+(Y*28|0)>>2]<<2)|0;g[Z>>2]=+g[W+(Y*28|0)+12>>2]+ +g[Z>>2];Y=Y+1|0}while((Y|0)!=(q|0))}q=c[u>>2]|0;if((q|0)>0){Y=c[v>>2]|0;W=c[r>>2]|0;X=0;do{Z=c[Y+(X*24|0)+4>>2]|0;o=+g[Y+(X*24|0)+8>>2];_=W+(c[Y+(X*24|0)>>2]<<2)|0;g[_>>2]=o+ +g[_>>2];_=W+(Z<<2)|0;g[_>>2]=o+ +g[_>>2];X=X+1|0}while((X|0)!=(q|0))}if(c[w>>2]&16|0)Wk(b);q=c[n>>2]|0;if(!(q&4096))$=q;else{q=c[G>>2]|0;c[f>>2]=2008;c[S>>2]=q;pk(b,0,c[i>>2]|0,f);if((c[i>>2]|0)>0){q=c[G>>2]|0;X=0;do{W=q+(X<<2)|0;c[W>>2]=c[W>>2]&-4097;X=X+1|0}while((X|0)<(c[i>>2]|0))}X=c[n>>2]&-4097;c[n>>2]=X;$=X}if(a[x>>0]|0){o=+g[O>>2]*1.3333333730697632;aa=U*(o*(+g[Q>>2]*o));X=c[i>>2]|0;if((X|0)>0){q=c[R>>2]|0;W=c[E>>2]|0;Y=0;do{o=aa*+g[q+(Y<<3)+4>>2];_=W+(Y<<3)|0;g[_>>2]=aa*+g[q+(Y<<3)>>2]+ +g[_>>2];_=W+(Y<<3)+4|0;g[_>>2]=o+ +g[_>>2];Y=Y+1|0}while((Y|0)!=(X|0))}a[x>>0]=0}if(!($&32))ba=$;else{tl(b);ba=c[n>>2]|0}if(ba&8192|0?(aa=+g[M>>2]*(+g[F>>2]*V),X=c[u>>2]|0,(X|0)>0):0){Y=c[v>>2]|0;W=0;do{do if(c[Y+(W*24|0)+20>>2]&8192|0){q=c[Y+(W*24|0)>>2]|0;_=c[Y+(W*24|0)+4>>2]|0;Z=c[J>>2]|0;if((c[Z+(q<<2)>>2]|0)==(c[Z+(_<<2)>>2]|0))break;o=aa*+g[Y+(W*24|0)+8>>2];ca=+g[Y+(W*24|0)+12>>2]*o;da=o*+g[Y+(W*24|0)+16>>2];Z=c[E>>2]|0;ea=Z+(q<<3)|0;g[ea>>2]=+g[ea>>2]-ca;ea=Z+(q<<3)+4|0;g[ea>>2]=+g[ea>>2]-da;ea=Z+(_<<3)|0;g[ea>>2]=ca+ +g[ea>>2];ea=Z+(_<<3)+4|0;g[ea>>2]=da+ +g[ea>>2]}while(0);W=W+1|0}while((W|0)!=(X|0))}if(ba&64|0?(aa=+g[L>>2]*(+g[F>>2]*V),X=c[u>>2]|0,(X|0)>0):0){W=c[v>>2]|0;Y=0;do{do if(c[W+(Y*24|0)+20>>2]&64|0){da=+g[W+(Y*24|0)+8>>2];if(!(da>.25))break;ea=c[W+(Y*24|0)>>2]|0;_=c[W+(Y*24|0)+4>>2]|0;ca=aa*(da+-.25);da=ca*+g[W+(Y*24|0)+12>>2];o=ca*+g[W+(Y*24|0)+16>>2];Z=c[E>>2]|0;q=Z+(ea<<3)|0;g[q>>2]=+g[q>>2]-da;q=Z+(ea<<3)+4|0;g[q>>2]=+g[q>>2]-o;q=Z+(_<<3)|0;g[q>>2]=da+ +g[q>>2];q=Z+(_<<3)+4|0;g[q>>2]=o+ +g[q>>2]}while(0);Y=Y+1|0}while((Y|0)!=(X|0))}if(ba&128|0)ul(b,h);if(c[w>>2]&1|0?(aa=V*+g[I>>2],X=c[u>>2]|0,(X|0)>0):0){Y=c[v>>2]|0;W=c[J>>2]|0;q=0;do{_=c[Y+(q*24|0)>>2]|0;Z=c[Y+(q*24|0)+4>>2]|0;if((c[W+(_<<2)>>2]|0)!=(c[W+(Z<<2)>>2]|0)){ea=c[K>>2]|0;o=+g[Y+(q*24|0)+8>>2]*(aa*(+g[ea+(_<<2)>>2]+ +g[ea+(Z<<2)>>2]));da=+g[Y+(q*24|0)+12>>2]*o;ca=+g[Y+(q*24|0)+16>>2]*o;ea=c[E>>2]|0;fa=ea+(_<<3)|0;g[fa>>2]=+g[fa>>2]-da;fa=ea+(_<<3)+4|0;g[fa>>2]=+g[fa>>2]-ca;fa=ea+(Z<<3)|0;g[fa>>2]=da+ +g[fa>>2];fa=ea+(Z<<3)+4|0;g[fa>>2]=ca+ +g[fa>>2]}q=q+1|0}while((q|0)!=(X|0))}if(c[n>>2]&256|0)vl(b);aa=U*+g[y>>2];X=c[D>>2]|0;ca=aa*+g[X+102980>>2];da=aa*+g[X+102984>>2];X=c[i>>2]|0;if((X|0)>0){q=c[E>>2]|0;Y=0;do{W=q+(Y<<3)|0;g[W>>2]=ca+ +g[W>>2];W=q+(Y<<3)+4|0;g[W>>2]=da+ +g[W>>2];Y=Y+1|0}while((Y|0)!=(X|0))}if(c[n>>2]&2048|0)wl(b,h);xl(b,h);yl(b,h);X=c[n>>2]|0;if(!(X&2048))ga=X;else{zl(b);ga=c[n>>2]|0}if(!(ga&16))ha=ga;else{Al(b,h);ha=c[n>>2]|0}if(ha&8|0)Bl(b,h);da=+g[F>>2]*V;ca=da*da;X=c[i>>2]|0;if((X|0)>0){Y=c[E>>2]|0;q=0;do{W=Y+(q<<3)|0;da=+g[W>>2];fa=Y+(q<<3)+4|0;aa=+g[fa>>2];o=da*da+aa*aa;if(o>ca){ia=+C(+(ca/o));g[W>>2]=da*ia;g[fa>>2]=aa*ia}q=q+1|0}while((q|0)!=(X|0))}if(c[w>>2]&2|0)Cl(b);if(c[n>>2]&1024|0)ql(b,h);nl(b,h);if(c[w>>2]&2|0)Dl(b,h);X=c[i>>2]|0;do if(!(c[n>>2]&4))ja=97;else{if((X|0)<=0)break;q=c[G>>2]|0;Y=0;do{if(c[q+(Y<<2)>>2]&4|0){fa=c[E>>2]|0;g[fa+(Y<<3)>>2]=0.0;g[fa+(Y<<3)+4>>2]=0.0}Y=Y+1|0}while((Y|0)!=(X|0));ja=97}while(0);do if((ja|0)==97){ja=0;if((X|0)<=0)break;Y=c[E>>2]|0;q=c[H>>2]|0;fa=0;do{ca=U*+g[Y+(fa<<3)+4>>2];W=q+(fa<<3)|0;g[W>>2]=U*+g[Y+(fa<<3)>>2]+ +g[W>>2];W=q+(fa<<3)+4|0;g[W>>2]=ca+ +g[W>>2];fa=fa+1|0}while((fa|0)<(X|0))}while(0);X=(c[k>>2]|0)+1|0;c[k>>2]=X;T=c[p>>2]|0}while((X|0)<(T|0));l=e;return}function sl(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,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;e=a;a=b;a:while(1){b=a;f=a+-4|0;g=e;while(1){h=g;b:while(1){i=h;j=b-i|0;k=j>>2;switch(k|0){case 2:{l=5;break a;break}case 3:{l=7;break a;break}case 4:{l=15;break a;break}case 5:{l=16;break a;break}case 1:case 0:{l=77;break a;break}default:{}}if((j|0)<124){l=18;break a}m=h+(((k|0)/2|0)<<2)|0;do if((j|0)<=3996){n=c[d>>2]|0;o=c[m>>2]|0;p=c[h>>2]|0;q=c[n+(o<<2)>>2]|0;r=n+(p<<2)|0;s=c[r>>2]|0;t=(q|0)<1;u=c[f>>2]|0;v=c[n+(u<<2)>>2]|0;w=(v|0)<1;x=t^w?w:(v|0)>(q|0);if(!(t^(s|0)<1?t:(q|0)>(s|0))){if(!x){y=0;z=n;break}c[m>>2]=u;c[f>>2]=o;s=c[m>>2]|0;q=c[h>>2]|0;t=c[n+(s<<2)>>2]|0;v=c[n+(q<<2)>>2]|0;w=(t|0)<1;if(!(w^(v|0)<1?w:(t|0)>(v|0))){y=1;z=n;break}c[h>>2]=s;c[m>>2]=q;y=2;z=n;break}if(x){c[h>>2]=u;c[f>>2]=p;y=1;z=n;break}c[h>>2]=o;c[m>>2]=p;o=c[f>>2]|0;u=c[n+(o<<2)>>2]|0;x=c[r>>2]|0;r=(u|0)<1;if(r^(x|0)<1?r:(u|0)>(x|0)){c[m>>2]=o;c[f>>2]=p;y=2;z=n}else{y=1;z=n}}else{n=(k|0)/4|0;p=Fl(h,h+(n<<2)|0,m,m+(n<<2)|0,f,d)|0;y=p;z=c[d>>2]|0}while(0);A=c[h>>2]|0;k=c[m>>2]|0;j=c[z+(A<<2)>>2]|0;p=c[z+(k<<2)>>2]|0;n=(j|0)<1;if(n^(p|0)<1?n:(j|0)>(p|0)){B=f;C=y;break}p=c[d>>2]|0;j=p+(k<<2)|0;D=f;while(1){D=D+-4|0;if((h|0)==(D|0))break;E=c[D>>2]|0;k=c[p+(E<<2)>>2]|0;n=c[j>>2]|0;o=(k|0)<1;if(o^(n|0)<1?o:(k|0)>(n|0)){l=59;break b}}j=h+4|0;n=c[f>>2]|0;k=c[p+(A<<2)>>2]|0;o=c[p+(n<<2)>>2]|0;x=(k|0)<1;if(x^(o|0)<1?x:(k|0)>(o|0))F=j;else{if((j|0)==(f|0)){l=77;break a}else G=j;while(1){H=c[G>>2]|0;j=c[p+(H<<2)>>2]|0;if(x^(j|0)<1?x:(k|0)>(j|0))break;j=G+4|0;if((j|0)==(f|0)){l=77;break a}else G=j}c[G>>2]=n;c[f>>2]=H;F=G+4|0}if((F|0)==(f|0)){l=77;break a}k=c[d>>2]|0;x=f;p=F;while(1){j=c[k+(c[h>>2]<<2)>>2]|0;o=(j|0)<1;u=p;while(1){I=c[u>>2]|0;r=c[k+(I<<2)>>2]|0;J=u+4|0;if(o^(r|0)<1?o:(j|0)>(r|0)){K=x;break}else u=J}do{K=K+-4|0;L=c[K>>2]|0;r=c[k+(L<<2)>>2]|0}while(o^(r|0)<1?o:(j|0)>(r|0));if(u>>>0>=K>>>0){h=u;continue b}c[u>>2]=L;c[K>>2]=I;x=K;p=J}}if((l|0)==59){l=0;c[h>>2]=E;c[D>>2]=A;B=D;C=y+1|0}p=h+4|0;c:do if(p>>>0>>0){x=c[d>>2]|0;k=m;n=B;j=p;o=C;while(1){r=c[x+(c[k>>2]<<2)>>2]|0;q=(r|0)<1;s=j;while(1){M=c[s>>2]|0;v=c[x+(M<<2)>>2]|0;t=(v|0)<1;N=s+4|0;if(t^q?t:(v|0)>(r|0))s=N;else{O=n;break}}do{O=O+-4|0;P=c[O>>2]|0;u=c[x+(P<<2)>>2]|0;v=(u|0)<1}while(!(v^q?v:(u|0)>(r|0)));if(s>>>0>O>>>0){Q=k;R=o;S=s;break c}c[s>>2]=P;c[O>>2]=M;k=(k|0)==(s|0)?O:k;n=O;j=N;o=o+1|0}}else{Q=m;R=C;S=p}while(0);if((S|0)!=(Q|0)?(p=c[Q>>2]|0,o=c[S>>2]|0,j=c[d>>2]|0,n=c[j+(p<<2)>>2]|0,k=c[j+(o<<2)>>2]|0,j=(n|0)<1,j^(k|0)<1?j:(n|0)>(k|0)):0){c[S>>2]=p;c[Q>>2]=o;T=R+1|0}else T=R;if(!T){U=Gl(h,S,d)|0;o=S+4|0;if(Gl(o,a,d)|0){l=76;break}if(U){g=o;continue}}o=S;if((o-i|0)>=(b-o|0)){l=75;break}sl(h,S,d);g=S+4|0}if((l|0)==75){l=0;sl(S+4|0,a,d);e=h;a=S;continue}else if((l|0)==76){l=0;if(U){l=77;break}else{e=h;a=S;continue}}}if((l|0)==5){S=c[f>>2]|0;e=c[h>>2]|0;U=c[d>>2]|0;i=c[U+(S<<2)>>2]|0;T=c[U+(e<<2)>>2]|0;U=(i|0)<1;if(!(U^(T|0)<1?U:(i|0)>(T|0)))return;c[h>>2]=S;c[f>>2]=e;return}else if((l|0)==7){e=h+4|0;S=c[d>>2]|0;T=c[e>>2]|0;i=c[h>>2]|0;U=c[S+(T<<2)>>2]|0;R=S+(i<<2)|0;Q=c[R>>2]|0;C=(U|0)<1;m=c[f>>2]|0;N=c[S+(m<<2)>>2]|0;O=(N|0)<1;M=C^O?O:(N|0)>(U|0);if(!(C^(Q|0)<1?C:(U|0)>(Q|0))){if(!M)return;c[e>>2]=m;c[f>>2]=T;Q=c[e>>2]|0;U=c[h>>2]|0;C=c[S+(Q<<2)>>2]|0;N=c[S+(U<<2)>>2]|0;O=(C|0)<1;if(!(O^(N|0)<1?O:(C|0)>(N|0)))return;c[h>>2]=Q;c[e>>2]=U;return}if(M){c[h>>2]=m;c[f>>2]=i;return}c[h>>2]=T;c[e>>2]=i;T=c[f>>2]|0;m=c[S+(T<<2)>>2]|0;S=c[R>>2]|0;R=(m|0)<1;if(!(R^(S|0)<1?R:(m|0)>(S|0)))return;c[e>>2]=T;c[f>>2]=i;return}else if((l|0)==15){El(h,h+4|0,h+8|0,f,c[d>>2]|0)|0;return}else if((l|0)==16){Fl(h,h+4|0,h+8|0,h+12|0,f,d)|0;return}else if((l|0)==18){f=c[d>>2]|0;d=h+8|0;i=h+4|0;T=c[i>>2]|0;e=c[h>>2]|0;S=c[f+(T<<2)>>2]|0;m=f+(e<<2)|0;R=c[m>>2]|0;M=(S|0)<1;U=c[d>>2]|0;Q=f+(U<<2)|0;N=c[Q>>2]|0;C=(N|0)<1;O=M^C?C:(N|0)>(S|0);do if(M^(R|0)<1?M:(S|0)>(R|0)){if(O){c[h>>2]=U;c[d>>2]=e;V=e;break}c[h>>2]=T;c[i>>2]=e;N=c[Q>>2]|0;C=c[m>>2]|0;P=(N|0)<1;if(P^(C|0)<1?P:(N|0)>(C|0)){c[i>>2]=U;c[d>>2]=e;V=e}else V=U}else if(O){c[i>>2]=U;c[d>>2]=T;C=c[Q>>2]|0;N=c[m>>2]|0;P=(C|0)<1;if(P^(N|0)<1?P:(C|0)>(N|0)){c[h>>2]=U;c[i>>2]=e;V=T}else V=T}else V=U;while(0);U=h+12|0;if((U|0)==(a|0))return;else{W=U;X=d;Y=V}while(1){V=c[W>>2]|0;d=f+(V<<2)|0;U=c[d>>2]|0;T=c[f+(Y<<2)>>2]|0;e=(U|0)<1;if(e^(T|0)<1?e:(U|0)>(T|0)){T=X;U=W;e=Y;while(1){c[U>>2]=e;if((T|0)==(h|0)){Z=h;break}i=T+-4|0;e=c[i>>2]|0;m=c[d>>2]|0;Q=c[f+(e<<2)>>2]|0;O=(m|0)<1;if(!(O^(Q|0)<1?O:(m|0)>(Q|0))){Z=T;break}else{Q=T;T=i;U=Q}}c[Z>>2]=V}U=W+4|0;if((U|0)==(a|0))break;T=c[W>>2]|0;e=W;W=U;Y=T;X=e}return}else if((l|0)==77)return}function tl(a){a=a|0;var d=0.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.0,r=0.0,s=0.0,t=0,u=0,v=0,w=0,x=0,y=0,z=0.0,A=0,B=0.0,C=0.0,D=0.0,E=0.0,F=0;d=+g[a+352>>2];e=c[a+236>>2]|0;if((e|0)>0){f=a+96|0;h=a+104|0;i=a+36|0;j=a+28|0;k=c[a+232>>2]|0;l=c[a+88>>2]|0;m=0;do{n=c[k+(m*28|0)>>2]|0;if(c[l+(n<<2)>>2]&32|0?(o=c[k+(m*28|0)+4>>2]|0,p=c[f>>2]|0,q=+g[p+(n<<3)>>2],r=+g[p+(n<<3)+4>>2],p=o+88|0,s=+g[p>>2],t=o+60|0,u=o+64|0,v=o+80|0,w=o+84|0,x=c[h>>2]|0,y=x+(n<<3)|0,z=+g[y>>2],A=x+(n<<3)+4|0,B=+g[A>>2],C=+g[k+(m*28|0)+12>>2]*(d*+g[k+(m*28|0)+24>>2]),D=C*(+g[v>>2]-s*(r-+g[u>>2])-z),E=C*(s*(q-+g[t>>2])+ +g[w>>2]-B),s=+g[i>>2]*1.3333333730697632,C=s*(+g[j>>2]*s),g[y>>2]=z+D*C,g[A>>2]=B+E*C,C=-D,D=-E,(c[o>>2]|0)==2):0){A=o+4|0;y=b[A>>1]|0;if((y&2)==0?(n=y&65535,(n&2|0)==0):0){x=(n|2)&65535;b[A>>1]=x;g[o+160>>2]=0.0;F=x}else F=y;if(F&2){E=+g[o+136>>2];g[v>>2]=E*C+ +g[v>>2];g[w>>2]=E*D+ +g[w>>2];g[p>>2]=+g[p>>2]+ +g[o+144>>2]*((q-+g[t>>2])*D-(r-+g[u>>2])*C)}}m=m+1|0}while((m|0)<(e|0))}e=c[a+220>>2]|0;if((e|0)<=0)return;m=c[a+216>>2]|0;F=a+104|0;a=0;do{if(c[m+(a*24|0)+20>>2]&32|0){j=c[m+(a*24|0)>>2]|0;i=c[m+(a*24|0)+4>>2]|0;k=c[F>>2]|0;h=k+(i<<3)|0;f=k+(j<<3)|0;C=+g[f>>2];l=k+(i<<3)+4|0;i=k+(j<<3)+4|0;r=+g[i>>2];D=d*+g[m+(a*24|0)+8>>2];q=D*(+g[h>>2]-C);E=D*(+g[l>>2]-r);g[f>>2]=C+q;g[i>>2]=E+r;g[h>>2]=+g[h>>2]-q;g[l>>2]=+g[l>>2]-E}a=a+1|0}while((a|0)<(e|0));return}function ul(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,q=0,r=0.0,s=0.0,t=0.0,u=0.0;d=a+44|0;if((c[d>>2]|0)>0){e=a+128|0;f=0;do{h=8716;i=c[h+4>>2]|0;j=(c[e>>2]|0)+(f<<3)|0;c[j>>2]=c[h>>2];c[j+4>>2]=i;f=f+1|0}while((f|0)<(c[d>>2]|0))}d=a+216|0;f=c[a+220>>2]|0;e=(f|0)>0;if(e){i=a+128|0;j=c[d>>2]|0;h=0;do{if(c[j+(h*24|0)+20>>2]&128|0){k=c[j+(h*24|0)>>2]|0;l=c[j+(h*24|0)+4>>2]|0;m=+g[j+(h*24|0)+8>>2];n=m*(1.0-m);m=+g[j+(h*24|0)+12>>2]*n;o=+g[j+(h*24|0)+16>>2]*n;p=c[i>>2]|0;q=p+(k<<3)|0;g[q>>2]=+g[q>>2]-m;q=p+(k<<3)+4|0;g[q>>2]=+g[q>>2]-o;q=p+(l<<3)|0;g[q>>2]=m+ +g[q>>2];q=p+(l<<3)+4|0;g[q>>2]=o+ +g[q>>2]}h=h+1|0}while((h|0)<(f|0))}o=+g[a+32>>2]*+g[b+4>>2];m=+g[a+356>>2]*o;n=o*+g[a+360>>2];r=o*.5;if(!e)return;e=a+116|0;b=a+128|0;h=a+104|0;a=c[d>>2]|0;d=0;do{if(c[a+(d*24|0)+20>>2]&128|0){i=c[a+(d*24|0)>>2]|0;j=c[a+(d*24|0)+4>>2]|0;o=+g[a+(d*24|0)+12>>2];s=+g[a+(d*24|0)+16>>2];q=c[e>>2]|0;l=c[b>>2]|0;t=m*(+g[q+(i<<2)>>2]+ +g[q+(j<<2)>>2]+-2.0)+n*(o*(+g[l+(j<<3)>>2]-+g[l+(i<<3)>>2])+s*(+g[l+(j<<3)+4>>2]-+g[l+(i<<3)+4>>2]));u=+g[a+(d*24|0)+8>>2]*(t>2]|0;q=l+(i<<3)|0;g[q>>2]=+g[q>>2]-t;q=l+(i<<3)+4|0;g[q>>2]=+g[q>>2]-o;q=l+(j<<3)|0;g[q>>2]=+g[q>>2]+t;q=l+(j<<3)+4|0;g[q>>2]=o+ +g[q>>2]}d=d+1|0}while((d|0)<(f|0));return}function vl(b){b=b|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;e=~~(+g[b+388>>2]*128.0);if(!e)return;f=c[b+220>>2]|0;if((f|0)<=0)return;h=c[b+216>>2]|0;i=c[b+88>>2]|0;j=b+136|0;b=d[5459]|0;k=0;do{l=c[h+(k*24|0)>>2]|0;m=c[h+(k*24|0)+4>>2]|0;if(c[i+(l<<2)>>2]&256&c[i+(m<<2)>>2]|0){n=c[j>>2]|0;o=n+(m<<2)|0;p=n+(l<<2)|0;q=d[p>>0]|0;r=(O((d[o>>0]|0)-q|0,e)|0)>>b;s=n+(m<<2)+1|0;t=n+(l<<2)+1|0;u=d[t>>0]|0;v=(O((d[s>>0]|0)-u|0,e)|0)>>b;w=n+(m<<2)+2|0;x=n+(l<<2)+2|0;y=d[x>>0]|0;z=(O((d[w>>0]|0)-y|0,e)|0)>>b;A=n+(m<<2)+3|0;m=n+(l<<2)+3|0;l=d[m>>0]|0;n=(O((d[A>>0]|0)-l|0,e)|0)>>b;a[p>>0]=r+q;a[t>>0]=v+u;a[x>>0]=z+y;a[m>>0]=n+l;a[o>>0]=(d[o>>0]|0)-r;a[s>>0]=(d[s>>0]|0)-v;a[w>>0]=(d[w>>0]|0)-z;a[A>>0]=(d[A>>0]|0)-n}k=k+1|0}while((k|0)<(f|0));return}function wl(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,o=0,p=0,q=0,r=0,s=0,t=0,u=0.0,v=0,w=0,x=0,y=0.0,z=0.0;d=a+120|0;e=c[d>>2]|0;if(!e){f=a+48|0;h=c[f>>2]|0;if(!h){Qj(a,256);i=c[f>>2]|0}else i=h;h=Pl(c[a+400>>2]|0,i<<2)|0;Nn(h|0,0,c[f>>2]<<2|0)|0;j=h}else j=e;c[d>>2]=j;k=+g[a+32>>2]*+g[b+4>>2];l=+g[a+320>>2]*(k*k);k=+g[a+376>>2]*l;m=l*.25;l=+g[a+380>>2];b=a+384|0;if((c[b>>2]|0)<=0)return;j=a+124|0;e=a+44|0;h=a+220|0;f=a+116|0;i=a+88|0;n=a+216|0;a=0;o=c[e>>2]|0;do{Nn(c[j>>2]|0,0,o<<2|0)|0;p=c[h>>2]|0;if((p|0)>0){q=c[n>>2]|0;r=0;do{if(c[q+(r*24|0)+20>>2]&2048|0){s=c[q+(r*24|0)>>2]|0;t=c[q+(r*24|0)+4>>2]|0;u=+g[q+(r*24|0)+8>>2];v=c[d>>2]|0;w=c[j>>2]|0;x=w+(s<<2)|0;g[x>>2]=u*+g[v+(t<<2)>>2]+ +g[x>>2];x=w+(t<<2)|0;g[x>>2]=u*+g[v+(s<<2)>>2]+ +g[x>>2]}r=r+1|0}while((r|0)<(p|0))}o=c[e>>2]|0;if((o|0)>0){p=c[f>>2]|0;r=c[i>>2]|0;q=c[d>>2]|0;x=0;do{u=+g[p+(x<<2)>>2];if(!(c[r+(x<<2)>>2]&2048))y=0.0;else{z=(k*(u+-1.0)+ +g[(c[j>>2]|0)+(x<<2)>>2])/(l+u);u=z>2]=y;x=x+1|0}while((x|0)<(o|0))}a=a+1|0}while((a|0)<(c[b>>2]|0));return}function xl(a,d){a=a|0;d=d|0;var e=0,f=0,h=0.0,i=0.0,j=0.0,k=0,l=0,m=0,n=0,o=0,p=0.0,q=0,r=0,s=0.0,t=0.0,u=0.0,v=0.0,w=0,x=0,y=0,z=0;e=a+320|0;f=a+32|0;h=+g[f>>2]*+g[d+4>>2];i=+g[e>>2]*(h*h);h=+g[a+336>>2]*i;j=i*.25;k=c[a+44>>2]|0;l=(k|0)>0;if(l){m=c[a+116>>2]|0;n=c[a+124>>2]|0;o=0;do{i=+g[m+(o<<2)>>2]+-1.0;p=h*(i<0.0?0.0:i);g[n+(o<<2)>>2]=p>2]|0;if(!((o&192|0)==0|l^1)){n=c[a+88>>2]|0;m=a+124|0;q=0;do{if(c[n+(q<<2)>>2]&192|0)g[(c[m>>2]|0)+(q<<2)>>2]=0.0;q=q+1|0}while((q|0)<(k|0))}if(!((o&2048|0)==0|l^1)){l=c[a+88>>2]|0;o=a+120|0;q=a+124|0;m=0;do{if(c[l+(m<<2)>>2]&2048|0){n=(c[q>>2]|0)+(m<<2)|0;g[n>>2]=+g[(c[o>>2]|0)+(m<<2)>>2]+ +g[n>>2]}m=m+1|0}while((m|0)<(k|0))}j=+g[d>>2]/(+g[e>>2]*+g[f>>2]);f=c[a+236>>2]|0;if((f|0)>0){e=a+36|0;d=a+28|0;k=c[a+232>>2]|0;m=c[a+96>>2]|0;o=c[a+124>>2]|0;q=c[a+104>>2]|0;l=0;do{n=c[k+(l*28|0)>>2]|0;r=c[k+(l*28|0)+4>>2]|0;p=+g[k+(l*28|0)+12>>2];i=+g[m+(n<<3)>>2];s=+g[m+(n<<3)+4>>2];t=j*p*+g[k+(l*28|0)+24>>2]*(h*p+ +g[o+(n<<2)>>2]);p=+g[k+(l*28|0)+16>>2]*t;u=+g[k+(l*28|0)+20>>2]*t;t=+g[e>>2]*1.3333333730697632;v=t*(+g[d>>2]*t);w=q+(n<<3)|0;g[w>>2]=+g[w>>2]-p*v;w=q+(n<<3)+4|0;g[w>>2]=+g[w>>2]-u*v;if((c[r>>2]|0)==2){w=r+4|0;n=b[w>>1]|0;if((n&2)==0?(x=n&65535,(x&2|0)==0):0){y=(x|2)&65535;b[w>>1]=y;g[r+160>>2]=0.0;z=y}else z=n;if(z&2){v=+g[r+136>>2];n=r+80|0;g[n>>2]=p*v+ +g[n>>2];n=r+84|0;g[n>>2]=u*v+ +g[n>>2];n=r+88|0;g[n>>2]=+g[n>>2]+ +g[r+144>>2]*(u*(i-+g[r+60>>2])-p*(s-+g[r+64>>2]))}}l=l+1|0}while((l|0)<(f|0))}f=c[a+220>>2]|0;if((f|0)<=0)return;l=c[a+216>>2]|0;z=c[a+124>>2]|0;q=c[a+104>>2]|0;a=0;do{d=c[l+(a*24|0)>>2]|0;e=c[l+(a*24|0)+4>>2]|0;h=j*+g[l+(a*24|0)+8>>2]*(+g[z+(d<<2)>>2]+ +g[z+(e<<2)>>2]);s=+g[l+(a*24|0)+12>>2]*h;p=+g[l+(a*24|0)+16>>2]*h;k=q+(d<<3)|0;g[k>>2]=+g[k>>2]-s;k=q+(d<<3)+4|0;g[k>>2]=+g[k>>2]-p;k=q+(e<<3)|0;g[k>>2]=s+ +g[k>>2];k=q+(e<<3)+4|0;g[k>>2]=p+ +g[k>>2];a=a+1|0}while((a|0)<(f|0));return}function yl(a,d){a=a|0;d=d|0;var e=0.0,f=0.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.0,v=0,w=0,x=0,y=0,z=0,A=0.0,B=0,C=0.0,D=0.0,E=0.0,F=0.0,G=0,H=0;e=+g[a+340>>2];f=1.0/(+g[a+32>>2]*+g[d+4>>2]);d=c[a+236>>2]|0;if((d|0)>0){h=a+36|0;i=a+28|0;j=c[a+232>>2]|0;k=c[a+96>>2]|0;l=c[a+104>>2]|0;m=0;do{n=c[j+(m*28|0)>>2]|0;o=c[j+(m*28|0)+4>>2]|0;p=+g[j+(m*28|0)+16>>2];q=+g[j+(m*28|0)+20>>2];r=+g[k+(n<<3)>>2];s=+g[k+(n<<3)+4>>2];t=o+88|0;u=+g[t>>2];v=o+60|0;w=o+64|0;x=o+80|0;y=o+84|0;z=l+(n<<3)|0;A=+g[z>>2];B=l+(n<<3)+4|0;C=+g[B>>2];D=p*(+g[x>>2]-u*(s-+g[w>>2])-A)+q*(u*(r-+g[v>>2])+ +g[y>>2]-C);if(D<0.0?(u=e*+g[j+(m*28|0)+12>>2],E=-(f*D),F=E<.5?E:.5,E=D*(+g[j+(m*28|0)+24>>2]*(u>F?u:F)),F=p*E,p=q*E,E=+g[h>>2]*1.3333333730697632,q=E*(+g[i>>2]*E),g[z>>2]=A+q*F,g[B>>2]=C+q*p,q=-F,F=-p,(c[o>>2]|0)==2):0){B=o+4|0;z=b[B>>1]|0;if((z&2)==0?(n=z&65535,(n&2|0)==0):0){G=(n|2)&65535;b[B>>1]=G;g[o+160>>2]=0.0;H=G}else H=z;if(H&2){p=+g[o+136>>2];g[x>>2]=p*q+ +g[x>>2];g[y>>2]=p*F+ +g[y>>2];g[t>>2]=+g[t>>2]+ +g[o+144>>2]*((r-+g[v>>2])*F-(s-+g[w>>2])*q)}}m=m+1|0}while((m|0)<(d|0))}d=c[a+220>>2]|0;if((d|0)<=0)return;m=c[a+216>>2]|0;H=c[a+104>>2]|0;a=0;do{i=c[m+(a*24|0)>>2]|0;h=c[m+(a*24|0)+4>>2]|0;q=+g[m+(a*24|0)+12>>2];s=+g[m+(a*24|0)+16>>2];j=H+(h<<3)|0;l=H+(i<<3)|0;F=+g[l>>2];k=H+(h<<3)+4|0;h=H+(i<<3)+4|0;r=+g[h>>2];p=q*(+g[j>>2]-F)+s*(+g[k>>2]-r);if(p<0.0){C=e*+g[m+(a*24|0)+8>>2];A=-(f*p);E=A<.5?A:.5;A=p*(C>E?C:E);E=q*A;q=s*A;g[l>>2]=F+E;g[h>>2]=r+q;g[j>>2]=+g[j>>2]-E;g[k>>2]=+g[k>>2]-q}a=a+1|0}while((a|0)<(d|0));return}function zl(a){a=a|0;var d=0,e=0,f=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,u=0,v=0,w=0,x=0,y=0,z=0.0,A=0,B=0.0,C=0.0,D=0;d=c[a+236>>2]|0;if((d|0)<=0)return;e=a+96|0;f=a+104|0;h=a+36|0;i=a+28|0;j=c[a+232>>2]|0;k=c[a+88>>2]|0;a=0;do{l=c[j+(a*28|0)>>2]|0;if((c[k+(l<<2)>>2]&2048|0?(m=c[j+(a*28|0)+4>>2]|0,n=+g[j+(a*28|0)+16>>2],o=+g[j+(a*28|0)+20>>2],p=c[e>>2]|0,q=+g[p+(l<<3)>>2],r=+g[p+(l<<3)+4>>2],p=m+88|0,s=+g[p>>2],t=m+60|0,u=m+64|0,v=m+80|0,w=m+84|0,x=c[f>>2]|0,y=x+(l<<3)|0,z=+g[y>>2],A=x+(l<<3)+4|0,B=+g[A>>2],C=n*(+g[v>>2]-s*(r-+g[u>>2])-z)+o*(s*(q-+g[t>>2])+ +g[w>>2]-B),C<0.0):0)?(s=C*(+g[j+(a*28|0)+24>>2]*.5),C=n*s,n=o*s,s=+g[h>>2]*1.3333333730697632,o=s*(+g[i>>2]*s),g[y>>2]=z+C*o,g[A>>2]=B+n*o,o=-C,C=-n,(c[m>>2]|0)==2):0){A=m+4|0;y=b[A>>1]|0;if((y&2)==0?(l=y&65535,(l&2|0)==0):0){x=(l|2)&65535;b[A>>1]=x;g[m+160>>2]=0.0;D=x}else D=y;if(D&2){n=+g[m+136>>2];g[v>>2]=n*o+ +g[v>>2];g[w>>2]=n*C+ +g[w>>2];g[p>>2]=+g[p>>2]+ +g[m+144>>2]*((q-+g[t>>2])*C-(r-+g[u>>2])*o)}}a=a+1|0}while((a|0)<(d|0));return}function Al(a,b){a=a|0;b=b|0;var d=0.0,e=0,f=0,h=0,i=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.0,x=0.0,y=0.0,z=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,K=0.0,L=0.0,M=0.0;d=+g[b+4>>2]*+g[a+344>>2];e=a+268|0;f=c[e>>2]|0;if((f|0)<=0)return;h=a+264|0;i=a+96|0;k=a+104|0;a=0;l=f;while(1){f=c[h>>2]|0;if(!(c[f+(a*60|0)+12>>2]&16))m=l;else{n=c[f+(a*60|0)>>2]|0;o=c[f+(a*60|0)+4>>2]|0;p=c[f+(a*60|0)+8>>2]|0;q=c[i>>2]|0;r=c[k>>2]|0;s=+g[b>>2];t=r+(n<<3)|0;u=+g[t>>2];v=r+(n<<3)+4|0;w=+g[v>>2];x=+g[q+(n<<3)>>2]+s*u;y=+g[q+(n<<3)+4>>2]+s*w;n=r+(o<<3)|0;z=r+(o<<3)+4|0;A=+g[q+(o<<3)>>2]+s*+g[n>>2];B=+g[q+(o<<3)+4>>2]+s*+g[z>>2];o=r+(p<<3)|0;C=r+(p<<3)+4|0;D=+g[q+(p<<3)>>2]+s*+g[o>>2];E=+g[q+(p<<3)+4>>2]+s*+g[C>>2];s=(x+A+D)*.3333333432674408;F=(y+B+E)*.3333333432674408;G=x-s;x=y-F;y=A-s;A=B-F;B=D-s;s=E-F;F=+g[f+(a*60|0)+20>>2];E=+g[f+(a*60|0)+24>>2];p=f+(a*60|0)+28|0;D=+g[p>>2];q=f+(a*60|0)+32|0;H=+g[q>>2];r=f+(a*60|0)+36|0;I=+g[r>>2];J=f+(a*60|0)+40|0;K=+g[J>>2];L=F*x-E*G+(D*A-H*y)+(I*s-B*K);M=F*G+E*x+(D*y+H*A)+(B*I+s*K);K=L*L+M*M;I=(c[j>>2]=1597463007-((g[j>>2]=K,c[j>>2]|0)>>1),+g[j>>2]);H=I*(1.5-I*(K*.5*I));I=L*H;L=M*H;H=d*+g[f+(a*60|0)+16>>2];g[t>>2]=u+H*(F*L-E*I-G);g[v>>2]=w+H*(F*I+E*L-x);x=+g[p>>2];E=+g[q>>2];g[n>>2]=+g[n>>2]+H*(x*L-E*I-y);g[z>>2]=+g[z>>2]+H*(x*I+E*L-A);A=+g[r>>2];E=+g[J>>2];g[o>>2]=+g[o>>2]+H*(A*L-E*I-B);g[C>>2]=+g[C>>2]+H*(A*I+E*L-s);m=c[e>>2]|0}a=a+1|0;if((a|0)>=(m|0))break;else l=m}return}function Bl(a,b){a=a|0;b=b|0;var d=0.0,e=0,f=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0.0,o=0,p=0.0,q=0,r=0.0,s=0,t=0,u=0.0,v=0.0,w=0.0;d=+g[b+4>>2]*+g[a+348>>2];e=c[a+252>>2]|0;if((e|0)<=0)return;f=a+96|0;h=a+104|0;i=c[a+248>>2]|0;a=0;do{if(c[i+(a*20|0)+8>>2]&8|0){j=c[i+(a*20|0)>>2]|0;k=c[i+(a*20|0)+4>>2]|0;l=c[f>>2]|0;m=c[h>>2]|0;n=+g[b>>2];o=m+(j<<3)|0;p=+g[o>>2];q=m+(j<<3)+4|0;r=+g[q>>2];s=m+(k<<3)|0;t=m+(k<<3)+4|0;u=+g[l+(k<<3)>>2]+n*+g[s>>2]-(+g[l+(j<<3)>>2]+n*p);v=+g[l+(k<<3)+4>>2]+n*+g[t>>2]-(+g[l+(j<<3)+4>>2]+n*r);n=+C(+(u*u+v*v));w=(+g[i+(a*20|0)+16>>2]-n)*(d*+g[i+(a*20|0)+12>>2])/n;n=u*w;u=v*w;g[o>>2]=p-n;g[q>>2]=r-u;g[s>>2]=n+ +g[s>>2];g[t>>2]=u+ +g[t>>2]}a=a+1|0}while((a|0)<(e|0));return}function Cl(a){a=a|0;var d=0.0,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.0,t=0.0,u=0,v=0,w=0.0,x=0,y=0.0,z=0,A=0,B=0,C=0,D=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.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.0,ba=0,ca=0.0,da=0.0;d=+g[a+340>>2];e=a+236|0;if((c[e>>2]|0)>0){f=a+232|0;h=a+144|0;i=a+96|0;j=0;do{k=c[f>>2]|0;l=c[k+(j*28|0)>>2]|0;m=c[(c[h>>2]|0)+(l<<2)>>2]|0;if(((m|0?c[m+12>>2]&2|0:0)?(n=c[k+(j*28|0)+4>>2]|0,o=+g[k+(j*28|0)+16>>2],p=+g[k+(j*28|0)+20>>2],q=+g[k+(j*28|0)+12>>2],k=c[i>>2]|0,r=+g[k+(l<<3)>>2],s=+g[k+(l<<3)+4>>2],l=n+88|0,t=+g[l>>2],k=n+60|0,u=n+64|0,v=n+80|0,w=+g[v>>2]-t*(s-+g[u>>2]),x=n+84|0,y=t*(r-+g[k>>2])+ +g[x>>2],Lj(m),z=m+56|0,t=+g[z>>2],A=m+40|0,B=m+44|0,C=m+48|0,D=m+52|0,E=o*(w-(+g[C>>2]-t*(s-+g[B>>2])))+p*(y-(t*(r-+g[A>>2])+ +g[D>>2])),E<0.0):0)?(Lj(m),t=+g[m+32>>2],Lj(m),y=+g[m+36>>2],Lj(m),w=t>0.0?1.0/t:0.0,t=y>0.0?1.0/y:0.0,y=p*(r-+g[A>>2])-o*(s-+g[B>>2]),F=+g[n+132>>2],G=+g[n+44>>2],H=+g[n+48>>2],I=F*(G*G+H*H),H=+g[n+140>>2]+I-I,I=p*(r-+g[k>>2])-o*(s-+g[u>>2]),G=(F>0.0?1.0/F:0.0)+(w+y*(t*y))+I*(I*(H>0.0?1.0/H:0.0)),H=d*(q<1.0?q:1.0)*(G>0.0?E/G:0.0),G=w*H,g[C>>2]=+g[C>>2]+o*G,g[D>>2]=+g[D>>2]+p*G,g[z>>2]=+g[z>>2]+t*(y*H),y=-H,H=o*y,o=p*y,(c[n>>2]|0)==2):0){z=n+4|0;D=b[z>>1]|0;if((D&2)==0?(C=D&65535,(C&2|0)==0):0){B=(C|2)&65535;b[z>>1]=B;g[n+160>>2]=0.0;J=B}else J=D;if(J&2){y=+g[n+136>>2];g[v>>2]=H*y+ +g[v>>2];g[x>>2]=o*y+ +g[x>>2];g[l>>2]=+g[l>>2]+ +g[n+144>>2]*(o*(r-+g[k>>2])-H*(s-+g[u>>2]))}}j=j+1|0}while((j|0)<(c[e>>2]|0))}e=a+220|0;if((c[e>>2]|0)<=0)return;j=a+216|0;J=a+144|0;i=a+96|0;h=a+104|0;f=a+88|0;u=a+32|0;k=a+320|0;a=0;do{n=c[j>>2]|0;l=c[n+(a*24|0)>>2]|0;x=c[n+(a*24|0)+4>>2]|0;s=+g[n+(a*24|0)+12>>2];H=+g[n+(a*24|0)+16>>2];r=+g[n+(a*24|0)+8>>2];n=c[J>>2]|0;v=c[n+(l<<2)>>2]|0;D=c[n+(x<<2)>>2]|0;n=(v|0)==0;if(n)K=0;else K=(c[v+12>>2]&2|0)!=0;B=(D|0)==0;if(B)L=0;else L=(c[D+12>>2]&2|0)!=0;if((v|0)!=(D|0)&(K|L)){z=c[i>>2]|0;o=(+g[z+(l<<3)>>2]+ +g[z+(x<<3)>>2])*.5;y=(+g[z+(l<<3)+4>>2]+ +g[z+(x<<3)+4>>2])*.5;if(!B?(c[D+12>>2]&2|0)!=0:0){Lj(D);p=+g[D+56>>2];M=+g[D+48>>2]-p*(y-+g[D+44>>2]);N=p*(o-+g[D+40>>2])+ +g[D+52>>2]}else{B=c[h>>2]|0;M=+g[B+(x<<3)>>2];N=+g[B+(x<<3)+4>>2]}if(!n?(c[v+12>>2]&2|0)!=0:0){Lj(v);p=+g[v+56>>2];O=+g[v+48>>2]-p*(y-+g[v+44>>2]);P=p*(o-+g[v+40>>2])+ +g[v+52>>2]}else{n=c[h>>2]|0;O=+g[n+(l<<3)>>2];P=+g[n+(l<<3)+4>>2]}p=H*(N-P)+s*(M-O);if(p<0.0){if(K){Lj(v);t=+g[v+32>>2];Lj(v);G=+g[v+36>>2];Lj(v);Q=G>0.0?1.0/G:0.0;R=t>0.0?1.0/t:0.0;S=+g[v+44>>2];T=+g[v+40>>2]}else{if(!(c[(c[f>>2]|0)+(l<<2)>>2]&4)){t=+g[u>>2]*.75;U=t*(+g[k>>2]*t)}else U=0.0;Q=0.0;R=U>0.0?1.0/U:0.0;S=y;T=o}t=H*(o-T)-s*(y-S);if(L){Lj(D);G=+g[D+32>>2];Lj(D);w=+g[D+36>>2];Lj(D);V=w>0.0?1.0/w:0.0;W=G>0.0?1.0/G:0.0;X=+g[D+44>>2];Y=+g[D+40>>2]}else{if(!(c[(c[f>>2]|0)+(x<<2)>>2]&4)){G=+g[u>>2]*.75;Z=G*(+g[k>>2]*G)}else Z=0.0;V=0.0;W=Z>0.0?1.0/Z:0.0;X=y;Y=o}G=H*(o-Y)-s*(y-X);y=R+t*(Q*t)+W+G*(V*G);o=d*r*(y>0.0?p/y:0.0);y=R*o;p=s*y;r=H*y;if(K){n=v+48|0;g[n>>2]=p+ +g[n>>2];n=v+52|0;g[n>>2]=r+ +g[n>>2];n=v+56|0;_=n;$=+g[n>>2];aa=Q*(t*o)}else{n=c[h>>2]|0;v=n+(l<<3)|0;g[v>>2]=p+ +g[v>>2];v=n+(l<<3)+4|0;_=v;$=r;aa=+g[v>>2]}g[_>>2]=aa+$;r=-o;o=W*r;p=s*o;s=H*o;if(L){v=D+48|0;g[v>>2]=p+ +g[v>>2];v=D+52|0;g[v>>2]=s+ +g[v>>2];v=D+56|0;ba=v;ca=+g[v>>2];da=V*(G*r)}else{v=c[h>>2]|0;D=v+(x<<3)|0;g[D>>2]=p+ +g[D>>2];D=v+(x<<3)+4|0;ba=D;ca=s;da=+g[D>>2]}g[ba>>2]=da+ca}}a=a+1|0}while((a|0)<(c[e>>2]|0));return}function Dl(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,l=0.0,m=0.0,n=0.0,o=0.0,p=0,q=0,r=0,s=0.0;d=c[a+312>>2]|0;if(!d)return;e=b+4|0;f=a+96|0;h=a+104|0;a=d;do{if(c[a+12>>2]&2|0?(Lj(a),i=+g[b>>2],j=i*+g[a+56>>2],k=+F(+j),l=+E(+j),j=+g[a+40>>2],m=+g[a+44>>2],n=i*+g[a+48>>2]+j-(l*j-k*m),o=i*+g[a+52>>2]+m-(k*j+l*m),d=a+72|0,m=+g[d>>2],p=a+68|0,j=+g[p>>2],q=a+60|0,i=+g[q>>2],r=a+64|0,s=+g[r>>2],g[q>>2]=n+(l*i-k*s),g[r>>2]=o+(k*i+l*s),g[p>>2]=k*m+l*j,g[d>>2]=l*m-k*j,j=+g[e>>2],m=n*j,n=o*j,o=k*j,k=(l+-1.0)*j,d=c[a+4>>2]|0,p=a+8|0,(d|0)<(c[p>>2]|0)):0){r=d;do{d=c[f>>2]|0;j=+g[d+(r<<3)>>2];l=+g[d+(r<<3)+4>>2];d=c[h>>2]|0;g[d+(r<<3)>>2]=m+(k*j-o*l);g[d+(r<<3)+4>>2]=n+(o*j+k*l);r=r+1|0}while((r|0)<(c[p>>2]|0))}a=c[a+24>>2]|0}while((a|0)!=0);return}function El(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;g=c[b>>2]|0;h=c[a>>2]|0;i=c[f+(g<<2)>>2]|0;j=f+(h<<2)|0;k=c[j>>2]|0;l=(i|0)<1;m=c[d>>2]|0;n=c[f+(m<<2)>>2]|0;o=(n|0)<1;p=l^o?o:(n|0)>(i|0);do if(l^(k|0)<1?l:(i|0)>(k|0)){if(p){c[a>>2]=m;c[d>>2]=h;q=1;r=h;break}c[a>>2]=g;c[b>>2]=h;n=c[d>>2]|0;o=c[f+(n<<2)>>2]|0;s=c[j>>2]|0;t=(o|0)<1;if(t^(s|0)<1?t:(o|0)>(s|0)){c[b>>2]=n;c[d>>2]=h;q=2;r=h}else{q=1;r=n}}else if(p){c[b>>2]=m;c[d>>2]=g;n=c[b>>2]|0;s=c[a>>2]|0;o=c[f+(n<<2)>>2]|0;t=c[f+(s<<2)>>2]|0;u=(o|0)<1;if(u^(t|0)<1?u:(o|0)>(t|0)){c[a>>2]=n;c[b>>2]=s;q=2;r=c[d>>2]|0}else{q=1;r=g}}else{q=0;r=m}while(0);m=c[e>>2]|0;g=c[f+(m<<2)>>2]|0;p=c[f+(r<<2)>>2]|0;h=(g|0)<1;if(!(h^(p|0)<1?h:(g|0)>(p|0))){v=q;return v|0}c[d>>2]=m;c[e>>2]=r;r=c[d>>2]|0;e=c[b>>2]|0;m=c[f+(r<<2)>>2]|0;p=c[f+(e<<2)>>2]|0;g=(m|0)<1;if(!(g^(p|0)<1?g:(m|0)>(p|0))){v=q+1|0;return v|0}c[b>>2]=r;c[d>>2]=e;e=c[b>>2]|0;d=c[a>>2]|0;r=c[f+(e<<2)>>2]|0;p=c[f+(d<<2)>>2]|0;f=(r|0)<1;if(!(f^(p|0)<1?f:(r|0)>(p|0))){v=q+2|0;return v|0}c[a>>2]=e;c[b>>2]=d;v=q+3|0;return v|0}function Fl(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,k=0,l=0,m=0,n=0;h=El(a,b,d,e,c[g>>2]|0)|0;i=c[f>>2]|0;j=c[e>>2]|0;k=c[g>>2]|0;g=c[k+(i<<2)>>2]|0;l=c[k+(j<<2)>>2]|0;m=(g|0)<1;if(!(m^(l|0)<1?m:(g|0)>(l|0))){n=h;return n|0}c[e>>2]=i;c[f>>2]=j;j=c[e>>2]|0;f=c[d>>2]|0;i=c[k+(j<<2)>>2]|0;l=c[k+(f<<2)>>2]|0;g=(i|0)<1;if(!(g^(l|0)<1?g:(i|0)>(l|0))){n=h+1|0;return n|0}c[d>>2]=j;c[e>>2]=f;f=c[d>>2]|0;e=c[b>>2]|0;j=c[k+(f<<2)>>2]|0;l=c[k+(e<<2)>>2]|0;i=(j|0)<1;if(!(i^(l|0)<1?i:(j|0)>(l|0))){n=h+2|0;return n|0}c[b>>2]=f;c[d>>2]=e;e=c[b>>2]|0;d=c[a>>2]|0;f=c[k+(e<<2)>>2]|0;l=c[k+(d<<2)>>2]|0;k=(f|0)<1;if(!(k^(l|0)<1?k:(f|0)>(l|0))){n=h+3|0;return n|0}c[a>>2]=e;c[b>>2]=d;n=h+4|0;return n|0}function Gl(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,v=0,w=0,x=0,y=0,z=0;switch(b-a>>2|0){case 2:{e=b+-4|0;f=c[e>>2]|0;g=c[a>>2]|0;h=c[d>>2]|0;i=c[h+(f<<2)>>2]|0;j=c[h+(g<<2)>>2]|0;h=(i|0)<1;if(!(h^(j|0)<1?h:(i|0)>(j|0))){k=1;return k|0}c[a>>2]=f;c[e>>2]=g;k=1;return k|0}case 3:{g=a+4|0;e=b+-4|0;f=c[d>>2]|0;j=c[g>>2]|0;i=c[a>>2]|0;h=c[f+(j<<2)>>2]|0;l=f+(i<<2)|0;m=c[l>>2]|0;n=(h|0)<1;o=c[e>>2]|0;p=c[f+(o<<2)>>2]|0;q=(p|0)<1;r=n^q?q:(p|0)>(h|0);if(!(n^(m|0)<1?n:(h|0)>(m|0))){if(!r){k=1;return k|0}c[g>>2]=o;c[e>>2]=j;m=c[g>>2]|0;h=c[a>>2]|0;n=c[f+(m<<2)>>2]|0;p=c[f+(h<<2)>>2]|0;q=(n|0)<1;if(!(q^(p|0)<1?q:(n|0)>(p|0))){k=1;return k|0}c[a>>2]=m;c[g>>2]=h;k=1;return k|0}if(r){c[a>>2]=o;c[e>>2]=i;k=1;return k|0}c[a>>2]=j;c[g>>2]=i;j=c[e>>2]|0;o=c[f+(j<<2)>>2]|0;f=c[l>>2]|0;l=(o|0)<1;if(!(l^(f|0)<1?l:(o|0)>(f|0))){k=1;return k|0}c[g>>2]=j;c[e>>2]=i;k=1;return k|0}case 4:{El(a,a+4|0,a+8|0,b+-4|0,c[d>>2]|0)|0;k=1;return k|0}case 5:{Fl(a,a+4|0,a+8|0,a+12|0,b+-4|0,d)|0;k=1;return k|0}case 1:case 0:{k=1;return k|0}default:{i=a+8|0;e=a+4|0;j=c[d>>2]|0;g=c[e>>2]|0;f=c[a>>2]|0;o=c[j+(g<<2)>>2]|0;l=j+(f<<2)|0;r=c[l>>2]|0;h=(o|0)<1;m=c[i>>2]|0;p=j+(m<<2)|0;j=c[p>>2]|0;n=(j|0)<1;q=h^n?n:(j|0)>(o|0);do if(h^(r|0)<1?h:(o|0)>(r|0)){if(q){c[a>>2]=m;c[i>>2]=f;s=f;break}c[a>>2]=g;c[e>>2]=f;j=c[p>>2]|0;n=c[l>>2]|0;t=(j|0)<1;if(t^(n|0)<1?t:(j|0)>(n|0)){c[e>>2]=m;c[i>>2]=f;s=f}else s=m}else if(q){c[e>>2]=m;c[i>>2]=g;n=c[p>>2]|0;j=c[l>>2]|0;t=(n|0)<1;if(t^(j|0)<1?t:(n|0)>(j|0)){c[a>>2]=m;c[e>>2]=f;s=g}else s=g}else s=m;while(0);m=a+12|0;a:do if((m|0)==(b|0)){u=1;v=0}else{g=c[d>>2]|0;f=m;e=0;l=i;p=s;while(1){q=c[f>>2]|0;r=g+(q<<2)|0;o=c[r>>2]|0;h=c[g+(p<<2)>>2]|0;j=(o|0)<1;if(j^(h|0)<1?j:(o|0)>(h|0)){h=l;o=f;j=p;while(1){c[o>>2]=j;if((h|0)==(a|0)){w=a;break}n=h+-4|0;j=c[n>>2]|0;t=c[r>>2]|0;x=c[g+(j<<2)>>2]|0;y=(t|0)<1;if(!(y^(x|0)<1?y:(t|0)>(x|0))){w=h;break}else{x=h;h=n;o=x}}c[w>>2]=q;o=e+1|0;if((o|0)==8){u=0;v=(f+4|0)==(b|0);break a}else z=o}else z=e;o=f+4|0;if((o|0)==(b|0)){u=1;v=0;break a}h=c[f>>2]|0;j=f;f=o;e=z;p=h;l=j}}while(0);k=v|u;return k|0}}return 0}function Hl(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,n=0.0,o=0.0;d=a+280|0;e=c[d>>2]|0;if(!e){f=a+48|0;h=c[f>>2]|0;if(!h){Qj(a,256);i=c[f>>2]|0}else i=h;h=Pl(c[a+400>>2]|0,i<<2)|0;Nn(h|0,0,c[f>>2]<<2|0)|0;j=h}else j=e;c[d>>2]=j;d=c[j+(b<<2)>>2]|0;if((d|0)<=0){k=d;l=+(k|0);m=a+396|0;n=+g[m>>2];o=l*n;return +o}k=d-(c[a+296+4>>2]|0)|0;l=+(k|0);m=a+396|0;n=+g[m>>2];o=l*n;return +o}function Il(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var h=0.0,i=0.0,j=0.0;h=+(e-d|0);i=+g[f>>2]/h;j=+g[f+4>>2]/h;if(!(i!=0.0|j!=0.0))return;f=b+21|0;if(!(a[f>>0]|0)){Nn(c[b+112>>2]|0,0,c[b+44>>2]<<3|0)|0;a[f>>0]=1}if((e|0)<=(d|0))return;f=c[b+112>>2]|0;b=d;do{d=f+(b<<3)|0;g[d>>2]=i+ +g[d>>2];d=f+(b<<3)+4|0;g[d>>2]=j+ +g[d>>2];b=b+1|0}while((b|0)!=(e|0));return}function Jl(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;f=+g[a+32>>2]*.75;h=+(d-b|0)*(f*(+g[a+320>>2]*f));f=+g[e>>2]/h;i=+g[e+4>>2]/h;if((d|0)<=(b|0))return;e=c[a+104>>2]|0;a=b;do{b=e+(a<<3)|0;g[b>>2]=f+ +g[b>>2];b=e+(a<<3)+4|0;g[b>>2]=i+ +g[b>>2];a=a+1|0}while((a|0)!=(d|0));return}function Kl(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,k=0,l=0,m=0,n=0,o=0,p=0,q=0.0,r=0,s=0,t=0;e=c[a+204>>2]|0;if(!e)return;f=c[a+200>>2]|0;h=+g[a+36>>2];i=+g[d>>2];j=d+4|0;k=(~~(h*+g[j>>2]+2048.0)>>>0<<20)+(~~(h*i*256.0+524288.0)>>>0)|0;l=f+(e<<3)|0;m=e<<3>>3;if(!m)n=f;else{e=m;m=f;while(1){f=(e|0)/2|0;o=(c[m+(f<<3)+4>>2]|0)>>>0>>0;e=o?e+-1-f|0:f;p=o?m+(f<<3)+8|0:m;if(!e){n=p;break}else m=p}}m=d+8|0;q=+g[m>>2];e=d+12|0;k=(~~(h*+g[e>>2]+2048.0)>>>0<<20)+(~~(h*q*256.0+524288.0)>>>0)|0;p=l-n>>3;if(!p)r=n;else{l=p;p=n;while(1){f=(l|0)/2|0;o=(c[p+(f<<3)+4>>2]|0)>>>0>k>>>0;l=o?f:l+-1-f|0;s=o?p:p+(f<<3)+8|0;if(!l){r=s;break}else p=s}}if(n>>>0>=r>>>0)return;p=a+96|0;l=n;h=i;i=q;while(1){n=c[l>>2]|0;k=c[p>>2]|0;q=+g[k+(n<<3)>>2];if((h>2],+g[j>>2]>2]:0):0)?!(Sa[c[(c[b>>2]|0)+12>>2]&15](b,a,n)|0):0){t=13;break}n=l+8|0;if(n>>>0>=r>>>0){t=13;break}l=n;h=+g[d>>2];i=+g[m>>2]}if((t|0)==13)return}function Ll(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,m=0.0,n=0.0,o=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,A=0.0,B=0,D=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;f=l;l=l+64|0;h=f;i=f+32|0;j=f+24|0;k=f+16|0;if(!(c[a+204>>2]|0)){l=f;return}m=+g[d>>2];n=+g[e>>2];o=d+4|0;p=+g[o>>2];q=+g[e+4>>2];g[h>>2]=m>2]=p>2]=m>n?m:n;g[h+12>>2]=p>q?p:q;r=n-m;m=q-p;p=r*r+m*m;Xk(i,a,h);h=i+16|0;e=c[i+20>>2]|0;s=c[i>>2]|0;t=i+4|0;i=a+96|0;u=a+40|0;v=j+4|0;w=k+4|0;q=1.0;x=c[h>>2]|0;a:while(1){if(x>>>0>=e>>>0){y=x;break}z=c[t>>2]|0;n=+g[d>>2];A=+g[o>>2];B=x;while(1){D=B;while(1){E=c[D+4>>2]&1048575;F=D+8|0;if(!(E>>>0>>0|E>>>0>z>>>0))break;if(F>>>0>>0)D=F;else{y=F;break a}}G=c[D>>2]|0;if((G|0)<=-1){y=F;break a}E=c[i>>2]|0;H=n-+g[E+(G<<3)>>2];I=A-+g[E+(G<<3)+4>>2];J=r*H+m*I;K=J*J-p*(H*H+I*I-+g[u>>2]);if(K>=0.0?(L=+C(+K),K=(-J-L)/p,!(K>q)):0){if(!(K<0.0)){M=K;break}K=(L-J)/p;if(!(K<0.0|K>q)){M=K;break}}if(F>>>0>>0)B=F;else{y=F;break a}}K=r*M;J=m*M;L=H+K;N=I+J;g[j>>2]=L;g[v>>2]=N;O=+C(+(L*L+N*N));P=1.0/O;if(!(O<1.1920928955078125e-07)){g[j>>2]=L*P;g[v>>2]=N*P}B=c[(c[b>>2]|0)+12>>2]|0;g[k>>2]=K+n;g[w>>2]=J+A;J=+La[B&1](b,a,G,k,j,M);q=q>2]=y;l=f;return}function Ml(a,b){a=a|0;b=b|0;var d=0,e=0;d=b+4|0;e=c[b>>2]|0;c[e+4>>2]=c[d>>2];c[c[d>>2]>>2]=e;c[d>>2]=b;e=a+12|0;c[d>>2]=c[e>>2];c[b>>2]=a+8;c[c[e>>2]>>2]=b;c[e>>2]=b;return}function Nl(b){b=b|0;var d=0,e=0,f=0,g=0;d=b+68|0;c[b+72>>2]=d;c[d>>2]=d;d=b+8|0;c[d>>2]=128;c[b+4>>2]=0;e=_l(1024)|0;c[b>>2]=e;Nn(e|0,0,c[d>>2]<<3|0)|0;d=b+12|0;b=d+56|0;do{c[d>>2]=0;d=d+4|0}while((d|0)<(b|0));if(!(a[9958]|0)){f=0;g=1}else return;do{f=((g|0)>(c[2092+(f<<2)>>2]|0)&1)+f|0;a[9317+g>>0]=f;g=g+1|0}while((g|0)!=641);a[9958]=1;return}function Ol(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;b=a+4|0;d=c[a>>2]|0;if((c[b>>2]|0)>0){e=0;f=d;while(1){$l(c[f+(e<<3)+4>>2]|0);e=e+1|0;g=c[a>>2]|0;if((e|0)>=(c[b>>2]|0)){h=g;break}else f=g}}else h=d;$l(h);h=a+68|0;em(h);d=a+72|0;a=c[h>>2]|0;c[a+4>>2]=c[d>>2];c[c[d>>2]>>2]=a;c[d>>2]=h;c[h>>2]=h;return}function Pl(a,b){a=a|0;b=b|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;if(!b){e=0;return e|0}if((b|0)>640){e=cm(a+68|0,b)|0;return e|0}f=d[9317+b>>0]|0;b=a+12+(f<<2)|0;g=c[b>>2]|0;if(g|0){c[b>>2]=c[g>>2];e=g;return e|0}g=a+4|0;h=c[g>>2]|0;i=a+8|0;if((h|0)==(c[i>>2]|0)){j=c[a>>2]|0;k=h+128|0;c[i>>2]=k;i=_l(k<<3)|0;c[a>>2]=i;Qn(i|0,j|0,c[g>>2]<<3|0)|0;Nn((c[a>>2]|0)+(c[g>>2]<<3)|0,0,1024)|0;$l(j);l=c[g>>2]|0}else l=h;h=c[a>>2]|0;a=_l(16384)|0;j=h+(l<<3)+4|0;c[j>>2]=a;i=c[2092+(f<<2)>>2]|0;c[h+(l<<3)>>2]=i;l=16384/(i|0)|0;h=l+-1|0;if((l|0)>1){l=0;do{f=l;l=l+1|0;c[a+(O(f,i)|0)>>2]=a+(O(l,i)|0)}while((l|0)!=(h|0))}c[a+(O(h,i)|0)>>2]=0;c[b>>2]=c[a>>2];c[g>>2]=(c[g>>2]|0)+1;e=c[j>>2]|0;return e|0}function Ql(a,b,e){a=a|0;b=b|0;e=e|0;var f=0;if(!e)return;if((e|0)>640){dm(a+68|0,b);return}else{f=a+12+((d[9317+e>>0]|0)<<2)|0;c[b>>2]=c[f>>2];c[f>>2]=b;return}}function Rl(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;d=+g[b+16>>2];e=+g[b+32>>2];f=+g[b+20>>2];h=+g[b+28>>2];i=d*e-f*h;j=+g[b+24>>2];k=+g[b+12>>2];l=f*j-e*k;m=h*k-d*j;n=+g[b>>2];o=+g[b+4>>2];p=+g[b+8>>2];q=i*n+o*l+m*p;r=q!=0.0?1.0/q:q;q=+g[c>>2];s=+g[c+4>>2];t=+g[c+8>>2];g[a>>2]=r*(i*q+l*s+m*t);g[a+4>>2]=r*((s*e-t*h)*n+o*(t*j-e*q)+(h*q-s*j)*p);g[a+8>>2]=r*((d*t-f*s)*n+o*(f*q-t*k)+(s*k-d*q)*p);return}function Sl(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;d=+g[b>>2];e=+g[b+12>>2];f=+g[b+4>>2];h=+g[b+16>>2];i=d*h-e*f;j=i!=0.0?1.0/i:i;i=+g[c>>2];k=+g[c+4>>2];g[a>>2]=j*(h*i-e*k);g[a+4>>2]=j*(d*k-f*i);return}function Tl(a,b){a=a|0;b=b|0;var d=0.0,e=0.0,f=0.0,h=0.0,i=0.0,j=0.0;d=+g[a>>2];e=+g[a+12>>2];f=+g[a+4>>2];h=+g[a+16>>2];i=d*h-e*f;j=i!=0.0?1.0/i:i;g[b>>2]=h*j;h=-j;g[b+12>>2]=e*h;g[b+8>>2]=0.0;g[b+4>>2]=f*h;g[b+16>>2]=d*j;a=b+20|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;c[a+12>>2]=0;return}function Ul(a,b){a=a|0;b=b|0;var c=0.0,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;c=+g[a+16>>2];d=+g[a+32>>2];e=c*d;f=+g[a+20>>2];h=+g[a+28>>2];i=+g[a+24>>2];j=+g[a+12>>2];k=d*j;l=h*j-c*i;m=+g[a>>2];n=(e-f*h)*m+ +g[a+4>>2]*(f*i-k)+l*+g[a+8>>2];f=n!=0.0?1.0/n:n;g[b>>2]=f*(e-h*h);e=f*(i*h-k);g[b+4>>2]=e;k=f*l;g[b+8>>2]=k;g[b+12>>2]=e;g[b+16>>2]=f*(m*d-i*i);d=f*(i*j-m*h);g[b+20>>2]=d;g[b+24>>2]=k;g[b+28>>2]=d;g[b+32>>2]=f*(m*c-j*j);return}function Vl(a){a=a|0;return}function Wl(a){a=a|0;return}function Xl(a){a=a|0;return 0.0}function Yl(a,b){a=a|0;b=b|0;return km(a)|0}function Zl(a,b){a=a|0;b=b|0;lm(a);return}function _l(a){a=a|0;c[2182]=(c[2182]|0)+1;return Ya[c[541]&31](a,c[2181]|0)|0}function $l(a){a=a|0;c[2182]=(c[2182]|0)+-1;Ra[c[542]&63](a,c[2181]|0);return}function am(a,b){a=a|0;b=b|0;return}function bm(a){a=a|0;return a+43&-32|0}function cm(a,b){a=a|0;b=b|0;var d=0;d=_l(b+44|0)|0;b=d+43&-32;c[d>>2]=d;c[b+-4>>2]=d;c[d+4>>2]=a;c[d>>2]=c[a>>2];c[(c[a>>2]|0)+4>>2]=d;c[a>>2]=d;return b|0}function dm(a,b){a=a|0;b=b|0;var d=0;a=c[b+-4>>2]|0;b=a+4|0;d=c[a>>2]|0;c[d+4>>2]=c[b>>2];c[c[b>>2]>>2]=d;c[b>>2]=a;c[a>>2]=a;$l(a);return}function em(a){a=a|0;var b=0,d=0,e=0,f=0;b=a+4|0;d=c[b>>2]|0;if((d|0)==(a|0))return;else e=d;do{d=e+4|0;f=c[e>>2]|0;c[f+4>>2]=c[d>>2];c[c[d>>2]>>2]=f;c[d>>2]=e;c[e>>2]=e;$l(e);e=c[b>>2]|0}while((e|0)!=(a|0));return}function fm(a){a=a|0;c[a+102400>>2]=0;c[a+102404>>2]=0;c[a+102408>>2]=0;c[a+102796>>2]=0;return}function gm(a){a=a|0;return}function hm(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;e=d+3&-4;d=b+102796|0;f=c[d>>2]|0;g=b+102412+(f*12|0)|0;c[b+102412+(f*12|0)+4>>2]=e;h=b+102400|0;i=c[h>>2]|0;if((i+e|0)>102400){c[g>>2]=_l(e)|0;a[b+102412+(f*12|0)+8>>0]=1;j=g}else{c[g>>2]=b+i;a[b+102412+(f*12|0)+8>>0]=0;c[h>>2]=(c[h>>2]|0)+e;j=g}g=b+102404|0;h=(c[g>>2]|0)+e|0;c[g>>2]=h;g=b+102408|0;b=c[g>>2]|0;c[g>>2]=(b|0)>(h|0)?b:h;c[d>>2]=(c[d>>2]|0)+1;return c[j>>2]|0}function im(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;d=b+102412+((c[b+102796>>2]|0)*12|0)|0;f=d+-12|0;g=d+-8|0;h=e-(c[g>>2]|0)|0;if((h|0)<=0){i=c[f>>2]|0;return i|0}j=d+-4|0;do if(!(a[j>>0]|0)){d=b+102400|0;k=(c[d>>2]|0)+h|0;if((k|0)>102400){l=_l(e)|0;Qn(l|0,c[f>>2]|0,c[g>>2]|0)|0;c[d>>2]=(c[d>>2]|0)-(c[g>>2]|0);c[f>>2]=l;a[j>>0]=1;break}else{c[d>>2]=k;k=b+102404|0;d=(c[k>>2]|0)+h|0;c[k>>2]=d;k=b+102408|0;l=c[k>>2]|0;c[k>>2]=(l|0)>(d|0)?l:d;break}}else{d=_l(e)|0;Qn(d|0,c[f>>2]|0,c[g>>2]|0)|0;$l(c[f>>2]|0);c[f>>2]=d}while(0);c[g>>2]=e;i=c[f>>2]|0;return i|0}function jm(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+102796|0;f=c[e>>2]|0;g=b+102412+(f*12|0)|0;if(!(a[g+-4>>0]|0)){h=g+-8|0;i=b+102400|0;c[i>>2]=(c[i>>2]|0)-(c[h>>2]|0);j=h;k=f}else{$l(d);j=g+-8|0;k=c[e>>2]|0}g=b+102404|0;c[g>>2]=(c[g>>2]|0)-(c[j>>2]|0);c[e>>2]=k+-1;return}function km(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=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;b=l;l=l+16|0;d=b;do if(a>>>0<245){e=a>>>0<11?16:a+11&-8;f=e>>>3;g=c[2183]|0;h=g>>>f;if(h&3|0){i=(h&1^1)+f|0;j=8772+(i<<1<<2)|0;k=j+8|0;m=c[k>>2]|0;n=m+8|0;o=c[n>>2]|0;if((j|0)==(o|0))c[2183]=g&~(1<>2]=j;c[k>>2]=o}o=i<<3;c[m+4>>2]=o|3;i=m+o+4|0;c[i>>2]=c[i>>2]|1;p=n;l=b;return p|0}n=c[2185]|0;if(e>>>0>n>>>0){if(h|0){i=2<>>12&16;f=i>>>o;i=f>>>5&8;h=f>>>i;f=h>>>2&4;m=h>>>f;h=m>>>1&2;k=m>>>h;m=k>>>1&1;j=(i|o|f|h|m)+(k>>>m)|0;m=8772+(j<<1<<2)|0;k=m+8|0;h=c[k>>2]|0;f=h+8|0;o=c[f>>2]|0;if((m|0)==(o|0)){i=g&~(1<>2]=m;c[k>>2]=o;q=g}o=(j<<3)-e|0;c[h+4>>2]=e|3;j=h+e|0;c[j+4>>2]=o|1;c[j+o>>2]=o;if(n|0){h=c[2188]|0;k=n>>>3;m=8772+(k<<1<<2)|0;i=1<>2]|0;s=i}c[s>>2]=h;c[r+12>>2]=h;c[h+8>>2]=r;c[h+12>>2]=m}c[2185]=o;c[2188]=j;p=f;l=b;return p|0}f=c[2184]|0;if(f){j=(f&0-f)+-1|0;o=j>>>12&16;m=j>>>o;j=m>>>5&8;h=m>>>j;m=h>>>2&4;i=h>>>m;h=i>>>1&2;k=i>>>h;i=k>>>1&1;t=c[9036+((j|o|m|h|i)+(k>>>i)<<2)>>2]|0;i=(c[t+4>>2]&-8)-e|0;k=c[t+16+(((c[t+16>>2]|0)==0&1)<<2)>>2]|0;if(!k){u=t;v=i}else{h=t;t=i;i=k;while(1){k=(c[i+4>>2]&-8)-e|0;m=k>>>0>>0;o=m?k:t;k=m?i:h;i=c[i+16+(((c[i+16>>2]|0)==0&1)<<2)>>2]|0;if(!i){u=k;v=o;break}else{h=k;t=o}}}t=u+e|0;if(u>>>0>>0){h=c[u+24>>2]|0;i=c[u+12>>2]|0;do if((i|0)==(u|0)){o=u+20|0;k=c[o>>2]|0;if(!k){m=u+16|0;j=c[m>>2]|0;if(!j){w=0;break}else{x=j;y=m}}else{x=k;y=o}while(1){o=x+20|0;k=c[o>>2]|0;if(k|0){x=k;y=o;continue}o=x+16|0;k=c[o>>2]|0;if(!k)break;else{x=k;y=o}}c[y>>2]=0;w=x}else{o=c[u+8>>2]|0;c[o+12>>2]=i;c[i+8>>2]=o;w=i}while(0);do if(h|0){i=c[u+28>>2]|0;o=9036+(i<<2)|0;if((u|0)==(c[o>>2]|0)){c[o>>2]=w;if(!w){c[2184]=f&~(1<>2]|0)!=(u|0)&1)<<2)>>2]=w;if(!w)break}c[w+24>>2]=h;i=c[u+16>>2]|0;if(i|0){c[w+16>>2]=i;c[i+24>>2]=w}i=c[u+20>>2]|0;if(i|0){c[w+20>>2]=i;c[i+24>>2]=w}}while(0);if(v>>>0<16){h=v+e|0;c[u+4>>2]=h|3;f=u+h+4|0;c[f>>2]=c[f>>2]|1}else{c[u+4>>2]=e|3;c[t+4>>2]=v|1;c[t+v>>2]=v;if(n|0){f=c[2188]|0;h=n>>>3;i=8772+(h<<1<<2)|0;o=1<>2]|0;A=o}c[A>>2]=f;c[z+12>>2]=f;c[f+8>>2]=z;c[f+12>>2]=i}c[2185]=v;c[2188]=t}p=u+8|0;l=b;return p|0}else B=e}else B=e}else B=e}else if(a>>>0<=4294967231){i=a+11|0;f=i&-8;o=c[2184]|0;if(o){h=0-f|0;k=i>>>8;if(k)if(f>>>0>16777215)C=31;else{i=(k+1048320|0)>>>16&8;m=k<>>16&4;j=m<>>16&2;D=14-(k|i|m)+(j<>>15)|0;C=f>>>(D+7|0)&1|D<<1}else C=0;D=c[9036+(C<<2)>>2]|0;a:do if(!D){E=0;F=0;G=h;H=57}else{m=0;j=h;i=D;k=f<<((C|0)==31?0:25-(C>>>1)|0);I=0;while(1){J=(c[i+4>>2]&-8)-f|0;if(J>>>0>>0)if(!J){K=i;L=0;M=i;H=61;break a}else{N=i;O=J}else{N=m;O=j}J=c[i+20>>2]|0;i=c[i+16+(k>>>31<<2)>>2]|0;P=(J|0)==0|(J|0)==(i|0)?I:J;J=(i|0)==0;if(J){E=P;F=N;G=O;H=57;break}else{m=N;j=O;k=k<<((J^1)&1);I=P}}}while(0);if((H|0)==57){if((E|0)==0&(F|0)==0){D=2<>>12&16;e=D>>>h;D=e>>>5&8;t=e>>>D;e=t>>>2&4;g=t>>>e;t=g>>>1&2;n=g>>>t;g=n>>>1&1;Q=0;R=c[9036+((D|h|e|t|g)+(n>>>g)<<2)>>2]|0}else{Q=F;R=E}if(!R){S=Q;T=G}else{K=Q;L=G;M=R;H=61}}if((H|0)==61)while(1){H=0;g=(c[M+4>>2]&-8)-f|0;n=g>>>0>>0;t=n?g:L;g=n?M:K;M=c[M+16+(((c[M+16>>2]|0)==0&1)<<2)>>2]|0;if(!M){S=g;T=t;break}else{K=g;L=t;H=61}}if((S|0)!=0?T>>>0<((c[2185]|0)-f|0)>>>0:0){t=S+f|0;if(S>>>0>=t>>>0){p=0;l=b;return p|0}g=c[S+24>>2]|0;n=c[S+12>>2]|0;do if((n|0)==(S|0)){e=S+20|0;h=c[e>>2]|0;if(!h){D=S+16|0;I=c[D>>2]|0;if(!I){U=0;break}else{V=I;W=D}}else{V=h;W=e}while(1){e=V+20|0;h=c[e>>2]|0;if(h|0){V=h;W=e;continue}e=V+16|0;h=c[e>>2]|0;if(!h)break;else{V=h;W=e}}c[W>>2]=0;U=V}else{e=c[S+8>>2]|0;c[e+12>>2]=n;c[n+8>>2]=e;U=n}while(0);do if(g){n=c[S+28>>2]|0;e=9036+(n<<2)|0;if((S|0)==(c[e>>2]|0)){c[e>>2]=U;if(!U){e=o&~(1<>2]|0)!=(S|0)&1)<<2)>>2]=U;if(!U){X=o;break}}c[U+24>>2]=g;e=c[S+16>>2]|0;if(e|0){c[U+16>>2]=e;c[e+24>>2]=U}e=c[S+20>>2]|0;if(e){c[U+20>>2]=e;c[e+24>>2]=U;X=o}else X=o}else X=o;while(0);do if(T>>>0>=16){c[S+4>>2]=f|3;c[t+4>>2]=T|1;c[t+T>>2]=T;o=T>>>3;if(T>>>0<256){g=8772+(o<<1<<2)|0;e=c[2183]|0;n=1<>2]|0;Z=n}c[Z>>2]=t;c[Y+12>>2]=t;c[t+8>>2]=Y;c[t+12>>2]=g;break}g=T>>>8;if(g)if(T>>>0>16777215)_=31;else{n=(g+1048320|0)>>>16&8;e=g<>>16&4;o=e<>>16&2;h=14-(g|n|e)+(o<>>15)|0;_=T>>>(h+7|0)&1|h<<1}else _=0;h=9036+(_<<2)|0;c[t+28>>2]=_;e=t+16|0;c[e+4>>2]=0;c[e>>2]=0;e=1<<_;if(!(X&e)){c[2184]=X|e;c[h>>2]=t;c[t+24>>2]=h;c[t+12>>2]=t;c[t+8>>2]=t;break}e=T<<((_|0)==31?0:25-(_>>>1)|0);o=c[h>>2]|0;while(1){if((c[o+4>>2]&-8|0)==(T|0)){H=97;break}$=o+16+(e>>>31<<2)|0;h=c[$>>2]|0;if(!h){H=96;break}else{e=e<<1;o=h}}if((H|0)==96){c[$>>2]=t;c[t+24>>2]=o;c[t+12>>2]=t;c[t+8>>2]=t;break}else if((H|0)==97){e=o+8|0;h=c[e>>2]|0;c[h+12>>2]=t;c[e>>2]=t;c[t+8>>2]=h;c[t+12>>2]=o;c[t+24>>2]=0;break}}else{h=T+f|0;c[S+4>>2]=h|3;e=S+h+4|0;c[e>>2]=c[e>>2]|1}while(0);p=S+8|0;l=b;return p|0}else B=f}else B=f}else B=-1;while(0);S=c[2185]|0;if(S>>>0>=B>>>0){T=S-B|0;$=c[2188]|0;if(T>>>0>15){_=$+B|0;c[2188]=_;c[2185]=T;c[_+4>>2]=T|1;c[_+T>>2]=T;c[$+4>>2]=B|3}else{c[2185]=0;c[2188]=0;c[$+4>>2]=S|3;T=$+S+4|0;c[T>>2]=c[T>>2]|1}p=$+8|0;l=b;return p|0}$=c[2186]|0;if($>>>0>B>>>0){T=$-B|0;c[2186]=T;S=c[2189]|0;_=S+B|0;c[2189]=_;c[_+4>>2]=T|1;c[S+4>>2]=B|3;p=S+8|0;l=b;return p|0}if(!(c[2301]|0)){c[2303]=4096;c[2302]=4096;c[2304]=-1;c[2305]=-1;c[2306]=0;c[2294]=0;S=d&-16^1431655768;c[d>>2]=S;c[2301]=S;aa=4096}else aa=c[2303]|0;S=B+48|0;d=B+47|0;T=aa+d|0;_=0-aa|0;aa=T&_;if(aa>>>0<=B>>>0){p=0;l=b;return p|0}X=c[2293]|0;if(X|0?(Y=c[2291]|0,Z=Y+aa|0,Z>>>0<=Y>>>0|Z>>>0>X>>>0):0){p=0;l=b;return p|0}b:do if(!(c[2294]&4)){X=c[2189]|0;c:do if(X){Z=9180;while(1){Y=c[Z>>2]|0;if(Y>>>0<=X>>>0?(ba=Z+4|0,(Y+(c[ba>>2]|0)|0)>>>0>X>>>0):0)break;Y=c[Z+8>>2]|0;if(!Y){H=118;break c}else Z=Y}o=T-$&_;if(o>>>0<2147483647){Y=Un(o|0)|0;if((Y|0)==((c[Z>>2]|0)+(c[ba>>2]|0)|0))if((Y|0)==(-1|0))ca=o;else{da=o;ea=Y;H=135;break b}else{fa=Y;ga=o;H=126}}else ca=0}else H=118;while(0);do if((H|0)==118){X=Un(0)|0;if((X|0)!=(-1|0)?(f=X,o=c[2302]|0,Y=o+-1|0,U=((Y&f|0)==0?0:(Y+f&0-o)-f|0)+aa|0,f=c[2291]|0,o=U+f|0,U>>>0>B>>>0&U>>>0<2147483647):0){Y=c[2293]|0;if(Y|0?o>>>0<=f>>>0|o>>>0>Y>>>0:0){ca=0;break}Y=Un(U|0)|0;if((Y|0)==(X|0)){da=U;ea=X;H=135;break b}else{fa=Y;ga=U;H=126}}else ca=0}while(0);do if((H|0)==126){U=0-ga|0;if(!(S>>>0>ga>>>0&(ga>>>0<2147483647&(fa|0)!=(-1|0))))if((fa|0)==(-1|0)){ca=0;break}else{da=ga;ea=fa;H=135;break b}Y=c[2303]|0;X=d-ga+Y&0-Y;if(X>>>0>=2147483647){da=ga;ea=fa;H=135;break b}if((Un(X|0)|0)==(-1|0)){Un(U|0)|0;ca=0;break}else{da=X+ga|0;ea=fa;H=135;break b}}while(0);c[2294]=c[2294]|4;ha=ca;H=133}else{ha=0;H=133}while(0);if(((H|0)==133?aa>>>0<2147483647:0)?(ca=Un(aa|0)|0,aa=Un(0)|0,fa=aa-ca|0,ga=fa>>>0>(B+40|0)>>>0,!((ca|0)==(-1|0)|ga^1|ca>>>0>>0&((ca|0)!=(-1|0)&(aa|0)!=(-1|0))^1)):0){da=ga?fa:ha;ea=ca;H=135}if((H|0)==135){ca=(c[2291]|0)+da|0;c[2291]=ca;if(ca>>>0>(c[2292]|0)>>>0)c[2292]=ca;ca=c[2189]|0;do if(ca){ha=9180;while(1){ia=c[ha>>2]|0;ja=ha+4|0;ka=c[ja>>2]|0;if((ea|0)==(ia+ka|0)){H=145;break}fa=c[ha+8>>2]|0;if(!fa)break;else ha=fa}if(((H|0)==145?(c[ha+12>>2]&8|0)==0:0)?ca>>>0>>0&ca>>>0>=ia>>>0:0){c[ja>>2]=ka+da;fa=ca+8|0;ga=(fa&7|0)==0?0:0-fa&7;fa=ca+ga|0;aa=(c[2186]|0)+(da-ga)|0;c[2189]=fa;c[2186]=aa;c[fa+4>>2]=aa|1;c[fa+aa+4>>2]=40;c[2190]=c[2305];break}if(ea>>>0<(c[2187]|0)>>>0)c[2187]=ea;aa=ea+da|0;fa=9180;while(1){if((c[fa>>2]|0)==(aa|0)){H=153;break}ga=c[fa+8>>2]|0;if(!ga)break;else fa=ga}if((H|0)==153?(c[fa+12>>2]&8|0)==0:0){c[fa>>2]=ea;ha=fa+4|0;c[ha>>2]=(c[ha>>2]|0)+da;ha=ea+8|0;ga=ea+((ha&7|0)==0?0:0-ha&7)|0;ha=aa+8|0;d=aa+((ha&7|0)==0?0:0-ha&7)|0;ha=ga+B|0;S=d-ga-B|0;c[ga+4>>2]=B|3;do if((d|0)!=(ca|0)){if((d|0)==(c[2188]|0)){ba=(c[2185]|0)+S|0;c[2185]=ba;c[2188]=ha;c[ha+4>>2]=ba|1;c[ha+ba>>2]=ba;break}ba=c[d+4>>2]|0;if((ba&3|0)==1){_=ba&-8;$=ba>>>3;d:do if(ba>>>0<256){T=c[d+8>>2]|0;X=c[d+12>>2]|0;if((X|0)==(T|0)){c[2183]=c[2183]&~(1<<$);break}else{c[T+12>>2]=X;c[X+8>>2]=T;break}}else{T=c[d+24>>2]|0;X=c[d+12>>2]|0;do if((X|0)==(d|0)){U=d+16|0;Y=U+4|0;o=c[Y>>2]|0;if(!o){f=c[U>>2]|0;if(!f){la=0;break}else{ma=f;na=U}}else{ma=o;na=Y}while(1){Y=ma+20|0;o=c[Y>>2]|0;if(o|0){ma=o;na=Y;continue}Y=ma+16|0;o=c[Y>>2]|0;if(!o)break;else{ma=o;na=Y}}c[na>>2]=0;la=ma}else{Y=c[d+8>>2]|0;c[Y+12>>2]=X;c[X+8>>2]=Y;la=X}while(0);if(!T)break;X=c[d+28>>2]|0;Y=9036+(X<<2)|0;do if((d|0)!=(c[Y>>2]|0)){c[T+16+(((c[T+16>>2]|0)!=(d|0)&1)<<2)>>2]=la;if(!la)break d}else{c[Y>>2]=la;if(la|0)break;c[2184]=c[2184]&~(1<>2]=T;X=d+16|0;Y=c[X>>2]|0;if(Y|0){c[la+16>>2]=Y;c[Y+24>>2]=la}Y=c[X+4>>2]|0;if(!Y)break;c[la+20>>2]=Y;c[Y+24>>2]=la}while(0);oa=d+_|0;pa=_+S|0}else{oa=d;pa=S}$=oa+4|0;c[$>>2]=c[$>>2]&-2;c[ha+4>>2]=pa|1;c[ha+pa>>2]=pa;$=pa>>>3;if(pa>>>0<256){ba=8772+($<<1<<2)|0;Z=c[2183]|0;Y=1<<$;if(!(Z&Y)){c[2183]=Z|Y;qa=ba;ra=ba+8|0}else{Y=ba+8|0;qa=c[Y>>2]|0;ra=Y}c[ra>>2]=ha;c[qa+12>>2]=ha;c[ha+8>>2]=qa;c[ha+12>>2]=ba;break}ba=pa>>>8;do if(!ba)sa=0;else{if(pa>>>0>16777215){sa=31;break}Y=(ba+1048320|0)>>>16&8;Z=ba<>>16&4;X=Z<<$;Z=(X+245760|0)>>>16&2;o=14-($|Y|Z)+(X<>>15)|0;sa=pa>>>(o+7|0)&1|o<<1}while(0);ba=9036+(sa<<2)|0;c[ha+28>>2]=sa;_=ha+16|0;c[_+4>>2]=0;c[_>>2]=0;_=c[2184]|0;o=1<>2]=ha;c[ha+24>>2]=ba;c[ha+12>>2]=ha;c[ha+8>>2]=ha;break}o=pa<<((sa|0)==31?0:25-(sa>>>1)|0);_=c[ba>>2]|0;while(1){if((c[_+4>>2]&-8|0)==(pa|0)){H=194;break}ta=_+16+(o>>>31<<2)|0;ba=c[ta>>2]|0;if(!ba){H=193;break}else{o=o<<1;_=ba}}if((H|0)==193){c[ta>>2]=ha;c[ha+24>>2]=_;c[ha+12>>2]=ha;c[ha+8>>2]=ha;break}else if((H|0)==194){o=_+8|0;ba=c[o>>2]|0;c[ba+12>>2]=ha;c[o>>2]=ha;c[ha+8>>2]=ba;c[ha+12>>2]=_;c[ha+24>>2]=0;break}}else{ba=(c[2186]|0)+S|0;c[2186]=ba;c[2189]=ha;c[ha+4>>2]=ba|1}while(0);p=ga+8|0;l=b;return p|0}ha=9180;while(1){S=c[ha>>2]|0;if(S>>>0<=ca>>>0?(ua=S+(c[ha+4>>2]|0)|0,ua>>>0>ca>>>0):0)break;ha=c[ha+8>>2]|0}ha=ua+-47|0;ga=ha+8|0;S=ha+((ga&7|0)==0?0:0-ga&7)|0;ga=ca+16|0;ha=S>>>0>>0?ca:S;S=ha+8|0;d=ea+8|0;aa=(d&7|0)==0?0:0-d&7;d=ea+aa|0;fa=da+-40-aa|0;c[2189]=d;c[2186]=fa;c[d+4>>2]=fa|1;c[d+fa+4>>2]=40;c[2190]=c[2305];fa=ha+4|0;c[fa>>2]=27;c[S>>2]=c[2295];c[S+4>>2]=c[2296];c[S+8>>2]=c[2297];c[S+12>>2]=c[2298];c[2295]=ea;c[2296]=da;c[2298]=0;c[2297]=S;S=ha+24|0;do{d=S;S=S+4|0;c[S>>2]=7}while((d+8|0)>>>0>>0);if((ha|0)!=(ca|0)){S=ha-ca|0;c[fa>>2]=c[fa>>2]&-2;c[ca+4>>2]=S|1;c[ha>>2]=S;d=S>>>3;if(S>>>0<256){aa=8772+(d<<1<<2)|0;ba=c[2183]|0;o=1<>2]|0;wa=o}c[wa>>2]=ca;c[va+12>>2]=ca;c[ca+8>>2]=va;c[ca+12>>2]=aa;break}aa=S>>>8;if(aa)if(S>>>0>16777215)xa=31;else{o=(aa+1048320|0)>>>16&8;ba=aa<>>16&4;d=ba<>>16&2;Z=14-(aa|o|ba)+(d<>>15)|0;xa=S>>>(Z+7|0)&1|Z<<1}else xa=0;Z=9036+(xa<<2)|0;c[ca+28>>2]=xa;c[ca+20>>2]=0;c[ga>>2]=0;ba=c[2184]|0;d=1<>2]=ca;c[ca+24>>2]=Z;c[ca+12>>2]=ca;c[ca+8>>2]=ca;break}d=S<<((xa|0)==31?0:25-(xa>>>1)|0);ba=c[Z>>2]|0;while(1){if((c[ba+4>>2]&-8|0)==(S|0)){H=216;break}ya=ba+16+(d>>>31<<2)|0;Z=c[ya>>2]|0;if(!Z){H=215;break}else{d=d<<1;ba=Z}}if((H|0)==215){c[ya>>2]=ca;c[ca+24>>2]=ba;c[ca+12>>2]=ca;c[ca+8>>2]=ca;break}else if((H|0)==216){d=ba+8|0;S=c[d>>2]|0;c[S+12>>2]=ca;c[d>>2]=ca;c[ca+8>>2]=S;c[ca+12>>2]=ba;c[ca+24>>2]=0;break}}}else{S=c[2187]|0;if((S|0)==0|ea>>>0>>0)c[2187]=ea;c[2295]=ea;c[2296]=da;c[2298]=0;c[2192]=c[2301];c[2191]=-1;S=0;do{d=8772+(S<<1<<2)|0;c[d+12>>2]=d;c[d+8>>2]=d;S=S+1|0}while((S|0)!=32);S=ea+8|0;ba=(S&7|0)==0?0:0-S&7;S=ea+ba|0;d=da+-40-ba|0;c[2189]=S;c[2186]=d;c[S+4>>2]=d|1;c[S+d+4>>2]=40;c[2190]=c[2305]}while(0);da=c[2186]|0;if(da>>>0>B>>>0){ea=da-B|0;c[2186]=ea;da=c[2189]|0;ca=da+B|0;c[2189]=ca;c[ca+4>>2]=ea|1;c[da+4>>2]=B|3;p=da+8|0;l=b;return p|0}}c[(rm()|0)>>2]=12;p=0;l=b;return p|0} -function ag(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0,i=0,j=0.0,k=0,l=0.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,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;d=b+32|0;e=c[d>>2]|0;f=a+104|0;h=c[f>>2]|0;i=e+(h*12|0)|0;j=+g[i>>2];k=e+(h*12|0)+4|0;l=+g[k>>2];m=+g[e+(h*12|0)+8>>2];h=a+108|0;n=c[h>>2]|0;o=+g[e+(n*12|0)>>2];p=+g[e+(n*12|0)+4>>2];q=+g[e+(n*12|0)+8>>2];r=+g[a+144>>2];s=+g[a+148>>2];t=+g[a+152>>2];u=+g[a+156>>2];v=+g[b>>2];b=a+92|0;w=+g[b>>2];x=v*+g[a+100>>2];y=w-(q-m)*+g[a+176>>2];z=-x;A=y>2]=x;A=x-w;w=m-t*A;m=q+u*A;A=+g[a+124>>2];q=+g[a+120>>2];x=+g[a+116>>2];z=+g[a+112>>2];y=x*w+(o-A*m-j);B=p+q*m-l-z*w;D=+g[a+164>>2]*y+ +g[a+172>>2]*B;b=a+84|0;E=+g[b>>2];n=a+88|0;F=+g[n>>2];G=E-(+g[a+160>>2]*y+ +g[a+168>>2]*B);g[b>>2]=G;B=F-D;g[n>>2]=B;D=v*+g[a+96>>2];v=G*G+B*B;if(v>D*D){y=+C(+v);v=1.0/y;if(y<1.1920928955078125e-07){H=B;I=G}else{y=B*v;J=G*v;g[b>>2]=J;g[n>>2]=y;H=y;I=J}J=D*I;g[b>>2]=J;I=D*H;g[n>>2]=I;K=J;L=I}else{K=G;L=B}B=K-E;E=L-F;g[i>>2]=j-r*B;g[k>>2]=l-r*E;k=c[d>>2]|0;g[k+((c[f>>2]|0)*12|0)+8>>2]=w-t*(z*E-B*x);f=c[h>>2]|0;g[k+(f*12|0)>>2]=o+s*B;g[k+(f*12|0)+4>>2]=p+s*E;g[(c[d>>2]|0)+((c[h>>2]|0)*12|0)+8>>2]=m+u*(E*q-B*A);return}function bg(a,b){a=a|0;b=b|0;return 1}function cg(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0.0,h=0,i=0.0,j=0.0,k=0.0;c[a+8>>2]=b;c[a+12>>2]=d;f=+g[e>>2]-+g[b+12>>2];h=e+4|0;i=+g[h>>2]-+g[b+16>>2];j=+g[b+24>>2];k=+g[b+20>>2];g[a+20>>2]=f*j+i*k;g[a+24>>2]=j*i-f*k;k=+g[e>>2]-+g[d+12>>2];f=+g[h>>2]-+g[d+16>>2];i=+g[d+24>>2];j=+g[d+20>>2];g[a+28>>2]=k*i+f*j;g[a+32>>2]=i*f-k*j;return}function dg(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;ch(a,b);c[a>>2]=1176;d=b+20|0;e=c[d+4>>2]|0;f=a+68|0;c[f>>2]=c[d>>2];c[f+4>>2]=e;e=b+28|0;f=c[e+4>>2]|0;d=a+76|0;c[d>>2]=c[e>>2];c[d+4>>2]=f;g[a+84>>2]=0.0;g[a+88>>2]=0.0;g[a+92>>2]=0.0;c[a+96>>2]=c[b+36>>2];c[a+100>>2]=c[b+40>>2];return}function eg(a,b){a=a|0;b=b|0;var d=0,e=0.0,f=0.0,h=0.0,i=0.0,j=0.0;d=c[b+48>>2]|0;e=+g[d+24>>2];f=+g[b+80>>2];h=+g[d+20>>2];i=+g[b+84>>2];j=f*h+e*i+ +g[d+16>>2];g[a>>2]=+g[d+12>>2]+(e*f-h*i);g[a+4>>2]=j;return}function fg(a,b){a=a|0;b=b|0;var d=0,e=0.0,f=0.0,h=0.0,i=0.0,j=0.0;d=c[b+52>>2]|0;e=+g[d+24>>2];f=+g[b+88>>2];h=+g[d+20>>2];i=+g[b+92>>2];j=f*h+e*i+ +g[d+16>>2];g[a>>2]=+g[d+12>>2]+(e*f-h*i);g[a+4>>2]=j;return}function gg(a,b,c){a=a|0;b=b|0;c=+c;var d=0.0;d=+g[b+108>>2]*c;g[a>>2]=+g[b+104>>2]*c;g[a+4>>2]=d;return}function hg(a,b){a=a|0;b=+b;return +(+g[a+112>>2]*b)}function ig(a){a=a|0;var b=0,e=0,f=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0.0;b=l;l=l+96|0;e=b+88|0;f=b+80|0;i=b+72|0;j=b+64|0;k=b+48|0;m=b+32|0;n=b+24|0;o=b+16|0;p=b+8|0;q=c[(c[a+48>>2]|0)+8>>2]|0;r=c[(c[a+52>>2]|0)+8>>2]|0;am(3343,b);c[p>>2]=q;am(4137,p);c[o>>2]=r;am(4163,o);c[n>>2]=d[a+61>>0];am(4189,n);s=+g[a+84>>2];h[m>>3]=+g[a+80>>2];h[m+8>>3]=s;am(4310,m);s=+g[a+92>>2];h[k>>3]=+g[a+88>>2];h[k+8>>3]=s;am(4352,k);h[j>>3]=+g[a+96>>2];am(3750,j);h[i>>3]=+g[a+68>>2];am(4039,i);h[f>>3]=+g[a+72>>2];am(4068,f);c[e>>2]=c[a+56>>2];am(4467,e);l=b;return}function jg(a){a=a|0;fn(a);return}function kg(b,d){b=b|0;d=d|0;var e=0,f=0,h=0,i=0,k=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,z=0,A=0,B=0.0,C=0.0,D=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,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0;e=l;l=l+48|0;f=e;h=c[b+48>>2]|0;i=c[h+8>>2]|0;k=b+116|0;c[k>>2]=i;m=c[b+52>>2]|0;n=c[m+8>>2]|0;o=b+120|0;c[o>>2]=n;p=h+44|0;q=c[p>>2]|0;r=c[p+4>>2]|0;p=b+140|0;c[p>>2]=q;c[p+4>>2]=r;p=m+44|0;s=c[p>>2]|0;t=c[p+4>>2]|0;p=b+148|0;c[p>>2]=s;c[p+4>>2]=t;p=c[h+136>>2]|0;c[b+156>>2]=p;u=c[m+136>>2]|0;c[b+160>>2]=u;v=c[h+144>>2]|0;c[b+164>>2]=v;h=c[m+144>>2]|0;c[b+168>>2]=h;m=c[d+28>>2]|0;w=+g[m+(i*12|0)+8>>2];x=d+32|0;y=c[x>>2]|0;z=c[y+(i*12|0)>>2]|0;A=c[y+(i*12|0)+4>>2]|0;B=+g[y+(i*12|0)+8>>2];C=+g[m+(n*12|0)+8>>2];m=c[y+(n*12|0)>>2]|0;i=c[y+(n*12|0)+4>>2]|0;D=+g[y+(n*12|0)+8>>2];G=+F(+w);H=+E(+w);I=+F(+C);J=+E(+C);K=+g[b+80>>2]-(c[j>>2]=q,+g[j>>2]);L=+g[b+84>>2]-(c[j>>2]=r,+g[j>>2]);M=H*K-G*L;N=G*K+H*L;r=b+124|0;g[r>>2]=M;q=b+128|0;g[q>>2]=N;L=+g[b+88>>2]-(c[j>>2]=s,+g[j>>2]);H=+g[b+92>>2]-(c[j>>2]=t,+g[j>>2]);K=J*L-I*H;G=I*L+J*H;t=b+132|0;g[t>>2]=K;s=b+136|0;g[s>>2]=G;H=(c[j>>2]=p,+g[j>>2]);J=(c[j>>2]=u,+g[j>>2]);L=(c[j>>2]=v,+g[j>>2]);I=(c[j>>2]=h,+g[j>>2]);O=H+J;g[f>>2]=O+L*(N*N)+I*(G*G);P=-(L*(N*M))-I*(G*K);g[f+12>>2]=P;Q=-(L*N)-I*G;g[f+24>>2]=Q;g[f+4>>2]=P;g[f+16>>2]=O+L*(M*M)+I*(K*K);O=L*M+I*K;g[f+28>>2]=O;g[f+8>>2]=Q;g[f+20>>2]=O;O=L+I;g[f+32>>2]=O;h=b+68|0;v=b+172|0;if(+g[h>>2]>0.0){Tl(f,v);Q=O>0.0?1.0/O:0.0;K=+g[h>>2]*6.2831854820251465;M=K*(Q*K);P=+g[d>>2];G=P*(K*(Q*2.0*+g[b+72>>2])+P*M);Q=G!=0.0?1.0/G:0.0;G=(C-w-+g[b+96>>2])*P*M*Q;M=O+Q;g[b+204>>2]=M!=0.0?1.0/M:0.0;R=G;S=Q}else{Ul(f,v);R=0.0;S=0.0}g[b+100>>2]=S;g[b+76>>2]=R;if(!(a[d+24>>0]|0)){g[b+104>>2]=0.0;g[b+108>>2]=0.0;g[b+112>>2]=0.0;T=B;U=D;V=m;W=z;X=i;Y=A;Z=c[x>>2]|0;_=c[k>>2]|0;$=Z+(_*12|0)|0;c[$>>2]=W;aa=Z+(_*12|0)+4|0;c[aa>>2]=Y;ba=c[x>>2]|0;ca=c[k>>2]|0;da=ba+(ca*12|0)+8|0;g[da>>2]=T;ea=c[o>>2]|0;fa=ba+(ea*12|0)|0;c[fa>>2]=V;ga=ba+(ea*12|0)+4|0;c[ga>>2]=X;ha=c[x>>2]|0;ia=c[o>>2]|0;ja=ha+(ia*12|0)+8|0;g[ja>>2]=U;l=e;return}else{R=+g[d+8>>2];d=b+104|0;S=R*+g[d>>2];g[d>>2]=S;d=b+108|0;Q=R*+g[d>>2];g[d>>2]=Q;d=b+112|0;G=R*+g[d>>2];g[d>>2]=G;d=(g[j>>2]=(c[j>>2]=z,+g[j>>2])-H*S,c[j>>2]|0);z=(g[j>>2]=(c[j>>2]=A,+g[j>>2])-H*Q,c[j>>2]|0);A=(g[j>>2]=(c[j>>2]=m,+g[j>>2])+J*S,c[j>>2]|0);T=B-L*(G+(Q*+g[r>>2]-S*+g[q>>2]));U=D+I*(G+(Q*+g[t>>2]-S*+g[s>>2]));V=A;W=d;X=(g[j>>2]=(c[j>>2]=i,+g[j>>2])+J*Q,c[j>>2]|0);Y=z;Z=c[x>>2]|0;_=c[k>>2]|0;$=Z+(_*12|0)|0;c[$>>2]=W;aa=Z+(_*12|0)+4|0;c[aa>>2]=Y;ba=c[x>>2]|0;ca=c[k>>2]|0;da=ba+(ca*12|0)+8|0;g[da>>2]=T;ea=c[o>>2]|0;fa=ba+(ea*12|0)|0;c[fa>>2]=V;ga=ba+(ea*12|0)+4|0;c[ga>>2]=X;ha=c[x>>2]|0;ia=c[o>>2]|0;ja=ha+(ia*12|0)+8|0;g[ja>>2]=U;l=e;return}}function lg(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0,i=0,k=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.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,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0;d=b+32|0;b=c[d>>2]|0;e=a+116|0;f=c[e>>2]|0;h=c[b+(f*12|0)>>2]|0;i=b+(f*12|0)+4|0;k=c[i>>2]|0;l=+g[b+(f*12|0)+8>>2];m=a+120|0;n=c[m>>2]|0;o=c[b+(n*12|0)>>2]|0;p=c[b+(n*12|0)+4>>2]|0;q=+g[b+(n*12|0)+8>>2];r=+g[a+156>>2];s=+g[a+160>>2];t=+g[a+164>>2];u=+g[a+168>>2];v=+g[a+204>>2];if(+g[a+68>>2]>0.0){n=a+112|0;w=+g[n>>2];x=v*(q-l+ +g[a+76>>2]+ +g[a+100>>2]*w);y=-x;g[n>>2]=w-x;x=l-t*y;w=q+u*y;y=+g[a+136>>2];z=+g[a+132>>2];A=(c[j>>2]=o,+g[j>>2]);B=(c[j>>2]=p,+g[j>>2]);C=(c[j>>2]=h,+g[j>>2]);D=(c[j>>2]=k,+g[j>>2]);E=+g[a+128>>2];F=+g[a+124>>2];G=E*x+(A-y*w-C);H=B+z*w-D-F*x;I=+g[a+172>>2]*G+ +g[a+184>>2]*H;J=+g[a+176>>2]*G+H*+g[a+188>>2];H=-I;G=-J;n=a+104|0;g[n>>2]=+g[n>>2]-I;n=a+108|0;g[n>>2]=+g[n>>2]-J;K=x-t*(F*G-E*H);L=w;M=z*G-y*H;N=A+s*H;O=C-r*H;P=B+s*G;Q=D-r*G;R=u*M;S=L+R;T=b+(f*12|0)|0;g[T>>2]=O;g[i>>2]=Q;U=c[d>>2]|0;V=c[e>>2]|0;W=U+(V*12|0)+8|0;g[W>>2]=K;X=c[m>>2]|0;Y=U+(X*12|0)|0;g[Y>>2]=N;Z=U+(X*12|0)+4|0;g[Z>>2]=P;_=c[d>>2]|0;$=c[m>>2]|0;aa=_+($*12|0)+8|0;g[aa>>2]=S;return}else{G=+g[a+136>>2];D=+g[a+132>>2];B=(c[j>>2]=o,+g[j>>2]);H=(c[j>>2]=p,+g[j>>2]);C=(c[j>>2]=h,+g[j>>2]);A=(c[j>>2]=k,+g[j>>2]);y=+g[a+128>>2];z=+g[a+124>>2];w=B-q*G-C+l*y;E=H+q*D-A-l*z;F=q-l;x=w*+g[a+172>>2]+E*+g[a+184>>2]+F*+g[a+196>>2];J=w*+g[a+176>>2]+E*+g[a+188>>2]+F*+g[a+200>>2];I=w*+g[a+180>>2]+E*+g[a+192>>2]+F*v;v=-x;F=-J;k=a+104|0;g[k>>2]=+g[k>>2]-x;k=a+108|0;g[k>>2]=+g[k>>2]-J;k=a+112|0;g[k>>2]=+g[k>>2]-I;K=l-t*(z*F-y*v-I);L=q;M=D*F-G*v-I;N=B+s*v;O=C-r*v;P=H+s*F;Q=A-r*F;R=u*M;S=L+R;T=b+(f*12|0)|0;g[T>>2]=O;g[i>>2]=Q;U=c[d>>2]|0;V=c[e>>2]|0;W=U+(V*12|0)+8|0;g[W>>2]=K;X=c[m>>2]|0;Y=U+(X*12|0)|0;g[Y>>2]=N;Z=U+(X*12|0)+4|0;g[Z>>2]=P;_=c[d>>2]|0;$=c[m>>2]|0;aa=_+($*12|0)+8|0;g[aa>>2]=S;return}}function mg(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0,i=0,k=0,m=0,n=0,o=0,p=0,q=0.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,D=0.0,G=0.0,H=0.0,I=0.0,J=0.0,K=0.0,L=0.0,M=0.0,N=0,O=0.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,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;d=l;l=l+80|0;e=d+36|0;f=d+24|0;h=d+16|0;i=d;k=b+28|0;b=c[k>>2]|0;m=a+116|0;n=c[m>>2]|0;o=c[b+(n*12|0)>>2]|0;p=c[b+(n*12|0)+4>>2]|0;q=+g[b+(n*12|0)+8>>2];n=a+120|0;r=c[n>>2]|0;s=c[b+(r*12|0)>>2]|0;t=c[b+(r*12|0)+4>>2]|0;u=+g[b+(r*12|0)+8>>2];v=+F(+q);w=+E(+q);x=+F(+u);y=+E(+u);z=+g[a+156>>2];A=+g[a+160>>2];B=+g[a+164>>2];D=+g[a+168>>2];G=+g[a+80>>2]-+g[a+140>>2];H=+g[a+84>>2]-+g[a+144>>2];I=w*G-v*H;J=v*G+w*H;H=+g[a+88>>2]-+g[a+148>>2];w=+g[a+92>>2]-+g[a+152>>2];G=y*H-x*w;v=x*H+y*w;w=z+A;g[e>>2]=w+B*(J*J)+D*(v*v);y=-(B*(J*I))-D*(v*G);g[e+12>>2]=y;H=-(B*J)-D*v;g[e+24>>2]=H;g[e+4>>2]=y;g[e+16>>2]=w+B*(I*I)+D*(G*G);w=B*I+D*G;g[e+28>>2]=w;g[e+8>>2]=H;g[e+20>>2]=w;g[e+32>>2]=B+D;if(+g[a+68>>2]>0.0){w=(c[j>>2]=s,+g[j>>2]);H=(c[j>>2]=t,+g[j>>2]);y=(c[j>>2]=o,+g[j>>2]);x=(c[j>>2]=p,+g[j>>2]);K=w+G-y-I;L=H+v-x-J;g[f>>2]=K;g[f+4>>2]=L;M=+C(+(K*K+L*L));Sl(h,e,f);L=-+g[h>>2];K=-+g[h+4>>2];N=1;O=M;P=G*K-v*L;Q=I*K-J*L;R=w+A*L;S=y-z*L;T=H+A*K;U=x-z*K;V=B*Q;W=D*P;X=q-V;Y=u+W;Z=c[k>>2]|0;_=c[m>>2]|0;$=Z+(_*12|0)|0;g[$>>2]=S;aa=Z+(_*12|0)+4|0;g[aa>>2]=U;ba=c[k>>2]|0;ca=c[m>>2]|0;da=ba+(ca*12|0)+8|0;g[da>>2]=X;ea=c[n>>2]|0;fa=ba+(ea*12|0)|0;g[fa>>2]=R;ga=ba+(ea*12|0)+4|0;g[ga>>2]=T;ha=c[k>>2]|0;ia=c[n>>2]|0;ja=ha+(ia*12|0)+8|0;g[ja>>2]=Y;ka=O<=.004999999888241291;la=ka&N;l=d;return la|0}else{K=(c[j>>2]=s,+g[j>>2]);x=(c[j>>2]=t,+g[j>>2]);H=(c[j>>2]=o,+g[j>>2]);L=(c[j>>2]=p,+g[j>>2]);y=K+G-H-I;w=x+v-L-J;M=u-q-+g[a+96>>2];ma=+C(+(y*y+w*w));g[f>>2]=y;g[f+4>>2]=w;g[f+8>>2]=M;Rl(i,e,f);w=-+g[i>>2];y=-+g[i+4>>2];na=+g[i+8>>2];N=(M>0.0?M:-M)<=.03490658849477768;O=ma;P=G*y-v*w-na;Q=I*y-J*w-na;R=K+A*w;S=H-z*w;T=x+A*y;U=L-z*y;V=B*Q;W=D*P;X=q-V;Y=u+W;Z=c[k>>2]|0;_=c[m>>2]|0;$=Z+(_*12|0)|0;g[$>>2]=S;aa=Z+(_*12|0)+4|0;g[aa>>2]=U;ba=c[k>>2]|0;ca=c[m>>2]|0;da=ba+(ca*12|0)+8|0;g[da>>2]=X;ea=c[n>>2]|0;fa=ba+(ea*12|0)|0;g[fa>>2]=R;ga=ba+(ea*12|0)+4|0;g[ga>>2]=T;ha=c[k>>2]|0;ia=c[n>>2]|0;ja=ha+(ia*12|0)+8|0;g[ja>>2]=Y;ka=O<=.004999999888241291;la=ka&N;l=d;return la|0}return 0}function ng(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0.0,h=0,i=0.0,j=0.0,k=0.0;c[a+8>>2]=b;c[a+12>>2]=d;f=+g[e>>2]-+g[b+12>>2];h=e+4|0;i=+g[h>>2]-+g[b+16>>2];j=+g[b+24>>2];k=+g[b+20>>2];g[a+20>>2]=f*j+i*k;g[a+24>>2]=j*i-f*k;k=+g[e>>2]-+g[d+12>>2];f=+g[h>>2]-+g[d+16>>2];i=+g[d+24>>2];j=+g[d+20>>2];g[a+28>>2]=k*i+f*j;g[a+32>>2]=i*f-k*j;g[a+36>>2]=+g[d+72>>2]-+g[b+72>>2];return}function og(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;ch(a,b);c[a>>2]=1228;d=b+20|0;e=c[d+4>>2]|0;f=a+80|0;c[f>>2]=c[d>>2];c[f+4>>2]=e;e=b+28|0;f=c[e+4>>2]|0;d=a+88|0;c[d>>2]=c[e>>2];c[d+4>>2]=f;c[a+96>>2]=c[b+36>>2];c[a+68>>2]=c[b+40>>2];c[a+72>>2]=c[b+44>>2];g[a+104>>2]=0.0;g[a+108>>2]=0.0;g[a+112>>2]=0.0;return}function pg(a,b){a=a|0;b=b|0;var d=0,e=0.0,f=0.0,h=0.0,i=0.0,j=0.0;d=c[b+48>>2]|0;e=+g[d+24>>2];f=+g[b+92>>2];h=+g[d+20>>2];i=+g[b+96>>2];j=f*h+e*i+ +g[d+16>>2];g[a>>2]=+g[d+12>>2]+(e*f-h*i);g[a+4>>2]=j;return}function qg(a,b){a=a|0;b=b|0;var d=0,e=0.0,f=0.0,h=0.0,i=0.0,j=0.0;d=c[b+52>>2]|0;e=+g[d+24>>2];f=+g[b+100>>2];h=+g[d+20>>2];i=+g[b+104>>2];j=f*h+e*i+ +g[d+16>>2];g[a>>2]=+g[d+12>>2]+(e*f-h*i);g[a+4>>2]=j;return}function rg(a,b,c){a=a|0;b=b|0;c=+c;var d=0.0,e=0.0;d=+g[b+156>>2];e=d*+g[b+244>>2]*c;g[a>>2]=d*+g[b+240>>2]*c;g[a+4>>2]=e;return}function sg(a,b){a=a|0;b=+b;return +(+g[a+156>>2]*+g[a+256>>2]*b)}function tg(a){a=a|0;var b=0,e=0,f=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0;b=l;l=l+64|0;e=b+56|0;f=b+48|0;i=b+40|0;j=b+32|0;k=b+24|0;m=b+16|0;n=b+8|0;o=c[(c[a+48>>2]|0)+8>>2]|0;p=c[(c[a+52>>2]|0)+8>>2]|0;q=c[(c[a+68>>2]|0)+56>>2]|0;r=c[(c[a+72>>2]|0)+56>>2]|0;am(3379,b);c[n>>2]=o;am(4137,n);c[m>>2]=p;am(4163,m);c[k>>2]=d[a+61>>0];am(4189,k);c[j>>2]=q;am(3401,j);c[i>>2]=r;am(3428,i);h[f>>3]=+g[a+152>>2];am(4444,f);c[e>>2]=c[a+56>>2];am(4467,e);l=b;return}function ug(a){a=a|0;fn(a);return}function vg(b,d){b=b|0;d=d|0;var e=0,f=0,h=0,i=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,A=0,B=0,C=0,D=0,G=0.0,H=0.0,I=0,J=0.0,K=0.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.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,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;e=c[b+48>>2]|0;f=c[e+8>>2]|0;h=b+160|0;c[h>>2]=f;i=c[b+52>>2]|0;k=c[i+8>>2]|0;l=b+164|0;c[l>>2]=k;m=c[b+84>>2]|0;n=b+168|0;c[n>>2]=c[m+8>>2];o=c[b+88>>2]|0;p=b+172|0;c[p>>2]=c[o+8>>2];q=b+176|0;r=e+44|0;s=c[r+4>>2]|0;t=q;c[t>>2]=c[r>>2];c[t+4>>2]=s;s=b+184|0;t=i+44|0;r=c[t+4>>2]|0;u=s;c[u>>2]=c[t>>2];c[u+4>>2]=r;r=b+192|0;u=m+44|0;t=c[u+4>>2]|0;v=r;c[v>>2]=c[u>>2];c[v+4>>2]=t;t=b+200|0;v=o+44|0;u=c[v+4>>2]|0;w=t;c[w>>2]=c[v>>2];c[w+4>>2]=u;u=b+208|0;c[u>>2]=c[e+136>>2];w=b+212|0;c[w>>2]=c[i+136>>2];v=c[m+136>>2]|0;c[b+216>>2]=v;x=c[o+136>>2]|0;c[b+220>>2]=x;y=c[e+144>>2]|0;c[b+224>>2]=y;e=c[i+144>>2]|0;c[b+228>>2]=e;i=c[m+144>>2]|0;c[b+232>>2]=i;m=c[o+144>>2]|0;c[b+236>>2]=m;o=c[d+28>>2]|0;z=+g[o+(f*12|0)+8>>2];A=d+32|0;B=c[A>>2]|0;C=c[B+(f*12|0)>>2]|0;D=c[B+(f*12|0)+4>>2]|0;G=+g[B+(f*12|0)+8>>2];H=+g[o+(k*12|0)+8>>2];f=c[B+(k*12|0)>>2]|0;I=c[B+(k*12|0)+4>>2]|0;J=+g[B+(k*12|0)+8>>2];k=c[n>>2]|0;K=+g[o+(k*12|0)+8>>2];L=c[B+(k*12|0)>>2]|0;M=c[B+(k*12|0)+4>>2]|0;N=+g[B+(k*12|0)+8>>2];k=c[p>>2]|0;O=+g[o+(k*12|0)+8>>2];o=c[B+(k*12|0)>>2]|0;P=c[B+(k*12|0)+4>>2]|0;Q=+g[B+(k*12|0)+8>>2];R=+F(+z);S=+E(+z);z=+F(+H);T=+E(+H);H=+F(+K);U=+E(+K);K=+F(+O);V=+E(+O);k=b+272|0;g[k>>2]=0.0;O=(c[j>>2]=v,+g[j>>2]);W=(c[j>>2]=i,+g[j>>2]);X=(c[j>>2]=y,+g[j>>2]);Y=(c[j>>2]=x,+g[j>>2]);Z=(c[j>>2]=m,+g[j>>2]);_=(c[j>>2]=e,+g[j>>2]);if((c[b+76>>2]|0)==1){g[b+264>>2]=1.0;$=X+W;aa=0.0;ba=0.0;ca=1.0;da=1.0}else{ea=+g[b+124>>2];fa=+g[b+128>>2];ga=U*ea-H*fa;ha=H*ea+U*fa;fa=+g[b+108>>2]-+g[r>>2];ea=+g[b+112>>2]-+g[b+196>>2];ia=+g[b+92>>2]-+g[q>>2];ja=+g[b+96>>2]-+g[b+180>>2];ka=ha*(U*fa-H*ea)-ga*(H*fa+U*ea);g[b+264>>2]=ka;ea=ha*(S*ia-R*ja)-ga*(R*ia+S*ja);$=O+ +g[u>>2]+ka*(W*ka)+ea*(ea*X);aa=ga;ba=ha;ca=ea;da=ka}g[b+240>>2]=aa;g[b+244>>2]=ba;g[b+256>>2]=ca;ka=$+0.0;g[k>>2]=ka;if((c[b+80>>2]|0)==1){q=c[b+152>>2]|0;c[b+260>>2]=q;c[b+268>>2]=q;$=(c[j>>2]=q,+g[j>>2]);la=$*$*(_+Z);ma=0.0;na=0.0;oa=$;pa=$}else{$=+g[b+132>>2];ea=+g[b+136>>2];ha=V*$-K*ea;ga=K*$+V*ea;ea=+g[b+116>>2]-+g[t>>2];$=+g[b+120>>2]-+g[b+204>>2];ja=+g[b+100>>2]-+g[s>>2];S=+g[b+104>>2]-+g[b+188>>2];ia=+g[b+152>>2];R=(ga*(V*ea-K*$)-ha*(K*ea+V*$))*ia;g[b+268>>2]=R;$=(ga*(T*ja-z*S)-ha*(z*ja+T*S))*ia;g[b+260>>2]=$;la=ia*ia*(Y+ +g[w>>2])+R*(Z*R)+$*($*_);ma=ha*ia;na=ga*ia;oa=$;pa=R}g[b+248>>2]=ma;g[b+252>>2]=na;R=la+ka;g[k>>2]=R>0.0?1.0/R:0.0;if(!(a[d+24>>0]|0)){g[b+156>>2]=0.0;qa=Q;ra=G;sa=N;ta=J;ua=o;va=L;wa=f;xa=C;ya=P;za=M;Aa=I;Ba=D;Ca=c[A>>2]|0;Da=c[h>>2]|0;Ea=Ca+(Da*12|0)|0;c[Ea>>2]=xa;Fa=Ca+(Da*12|0)+4|0;c[Fa>>2]=Ba;Ga=c[A>>2]|0;Ha=c[h>>2]|0;Ia=Ga+(Ha*12|0)+8|0;g[Ia>>2]=ra;Ja=c[l>>2]|0;Ka=Ga+(Ja*12|0)|0;c[Ka>>2]=wa;La=Ga+(Ja*12|0)+4|0;c[La>>2]=Aa;Ma=c[A>>2]|0;Na=c[l>>2]|0;Oa=Ma+(Na*12|0)+8|0;g[Oa>>2]=ta;Pa=c[n>>2]|0;Qa=Ma+(Pa*12|0)|0;c[Qa>>2]=va;Ra=Ma+(Pa*12|0)+4|0;c[Ra>>2]=za;Sa=c[A>>2]|0;Ta=c[n>>2]|0;Ua=Sa+(Ta*12|0)+8|0;g[Ua>>2]=sa;Va=c[p>>2]|0;Wa=Sa+(Va*12|0)|0;c[Wa>>2]=ua;Xa=Sa+(Va*12|0)+4|0;c[Xa>>2]=ya;Ya=c[A>>2]|0;Za=c[p>>2]|0;_a=Ya+(Za*12|0)+8|0;g[_a>>2]=qa;return}else{R=+g[b+156>>2];ka=+g[u>>2]*R;u=(g[j>>2]=(c[j>>2]=C,+g[j>>2])+aa*ka,c[j>>2]|0);C=(g[j>>2]=(c[j>>2]=D,+g[j>>2])+ka*ba,c[j>>2]|0);ka=R*+g[w>>2];w=(g[j>>2]=(c[j>>2]=f,+g[j>>2])+ma*ka,c[j>>2]|0);f=(g[j>>2]=(c[j>>2]=I,+g[j>>2])+ka*na,c[j>>2]|0);ka=R*O;I=(g[j>>2]=(c[j>>2]=L,+g[j>>2])-aa*ka,c[j>>2]|0);L=(g[j>>2]=(c[j>>2]=M,+g[j>>2])-ba*ka,c[j>>2]|0);ka=R*Y;M=(g[j>>2]=(c[j>>2]=o,+g[j>>2])-ma*ka,c[j>>2]|0);qa=Q-R*Z*pa;ra=G+R*X*ca;sa=N-R*W*da;ta=J+R*_*oa;ua=M;va=I;wa=w;xa=u;ya=(g[j>>2]=(c[j>>2]=P,+g[j>>2])-na*ka,c[j>>2]|0);za=L;Aa=f;Ba=C;Ca=c[A>>2]|0;Da=c[h>>2]|0;Ea=Ca+(Da*12|0)|0;c[Ea>>2]=xa;Fa=Ca+(Da*12|0)+4|0;c[Fa>>2]=Ba;Ga=c[A>>2]|0;Ha=c[h>>2]|0;Ia=Ga+(Ha*12|0)+8|0;g[Ia>>2]=ra;Ja=c[l>>2]|0;Ka=Ga+(Ja*12|0)|0;c[Ka>>2]=wa;La=Ga+(Ja*12|0)+4|0;c[La>>2]=Aa;Ma=c[A>>2]|0;Na=c[l>>2]|0;Oa=Ma+(Na*12|0)+8|0;g[Oa>>2]=ta;Pa=c[n>>2]|0;Qa=Ma+(Pa*12|0)|0;c[Qa>>2]=va;Ra=Ma+(Pa*12|0)+4|0;c[Ra>>2]=za;Sa=c[A>>2]|0;Ta=c[n>>2]|0;Ua=Sa+(Ta*12|0)+8|0;g[Ua>>2]=sa;Va=c[p>>2]|0;Wa=Sa+(Va*12|0)|0;c[Wa>>2]=ua;Xa=Sa+(Va*12|0)+4|0;c[Xa>>2]=ya;Ya=c[A>>2]|0;Za=c[p>>2]|0;_a=Ya+(Za*12|0)+8|0;g[_a>>2]=qa;return}}function wg(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0.0,i=0.0,j=0.0,k=0,l=0.0,m=0.0,n=0.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;d=b+32|0;b=c[d>>2]|0;e=a+160|0;f=c[e>>2]|0;h=+g[b+(f*12|0)>>2];i=+g[b+(f*12|0)+4>>2];j=+g[b+(f*12|0)+8>>2];f=a+164|0;k=c[f>>2]|0;l=+g[b+(k*12|0)>>2];m=+g[b+(k*12|0)+4>>2];n=+g[b+(k*12|0)+8>>2];k=a+168|0;o=c[k>>2]|0;p=+g[b+(o*12|0)>>2];q=+g[b+(o*12|0)+4>>2];r=+g[b+(o*12|0)+8>>2];o=a+172|0;s=c[o>>2]|0;t=+g[b+(s*12|0)>>2];u=+g[b+(s*12|0)+4>>2];v=+g[b+(s*12|0)+8>>2];w=+g[a+240>>2];x=+g[a+244>>2];y=+g[a+248>>2];z=+g[a+252>>2];A=+g[a+256>>2];B=+g[a+264>>2];C=+g[a+260>>2];D=+g[a+268>>2];E=+g[a+272>>2]*((h-p)*w+(i-q)*x+((l-t)*y+(m-u)*z)+(j*A-r*B+(n*C-v*D)));F=-E;s=a+156|0;g[s>>2]=+g[s>>2]-E;E=+g[a+208>>2]*F;G=j+ +g[a+224>>2]*F*A;A=+g[a+212>>2]*F;j=n+ +g[a+228>>2]*F*C;C=+g[a+216>>2]*F;n=r-+g[a+232>>2]*F*B;B=+g[a+220>>2]*F;r=v-+g[a+236>>2]*F*D;a=c[d>>2]|0;s=c[e>>2]|0;g[a+(s*12|0)>>2]=h+w*E;g[a+(s*12|0)+4>>2]=i+x*E;s=c[d>>2]|0;g[s+((c[e>>2]|0)*12|0)+8>>2]=G;e=c[f>>2]|0;g[s+(e*12|0)>>2]=l+y*A;g[s+(e*12|0)+4>>2]=m+A*z;e=c[d>>2]|0;g[e+((c[f>>2]|0)*12|0)+8>>2]=j;f=c[k>>2]|0;g[e+(f*12|0)>>2]=p-w*C;g[e+(f*12|0)+4>>2]=q-x*C;f=c[d>>2]|0;g[f+((c[k>>2]|0)*12|0)+8>>2]=n;k=c[o>>2]|0;g[f+(k*12|0)>>2]=t-y*B;g[f+(k*12|0)+4>>2]=u-z*B;g[(c[d>>2]|0)+((c[o>>2]|0)*12|0)+8>>2]=r;return}function xg(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0,i=0,k=0,l=0.0,m=0,n=0,o=0,p=0,q=0.0,r=0,s=0,t=0,u=0.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,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;d=b+28|0;b=c[d>>2]|0;e=a+160|0;f=c[e>>2]|0;h=c[b+(f*12|0)>>2]|0;i=b+(f*12|0)+4|0;k=c[i>>2]|0;l=+g[b+(f*12|0)+8>>2];m=a+164|0;n=c[m>>2]|0;o=c[b+(n*12|0)>>2]|0;p=c[b+(n*12|0)+4>>2]|0;q=+g[b+(n*12|0)+8>>2];n=a+168|0;r=c[n>>2]|0;s=c[b+(r*12|0)>>2]|0;t=c[b+(r*12|0)+4>>2]|0;u=+g[b+(r*12|0)+8>>2];r=a+172|0;v=c[r>>2]|0;w=c[b+(v*12|0)>>2]|0;x=c[b+(v*12|0)+4>>2]|0;y=+g[b+(v*12|0)+8>>2];z=+F(+l);A=+E(+l);B=+F(+q);C=+E(+q);D=+F(+u);G=+E(+u);H=+F(+y);I=+E(+y);J=+g[a+224>>2];K=+g[a+232>>2];if((c[a+76>>2]|0)==1){L=J+K;M=1.0;N=1.0;O=l-u-+g[a+140>>2];P=0.0;Q=0.0}else{R=+g[a+124>>2];S=+g[a+128>>2];T=G*R-D*S;U=D*R+G*S;V=+g[a+108>>2]-+g[a+192>>2];W=+g[a+112>>2]-+g[a+196>>2];X=+g[a+92>>2]-+g[a+176>>2];Y=+g[a+96>>2]-+g[a+180>>2];Z=A*X-z*Y;_=z*X+A*Y;Y=U*(G*V-D*W)-T*(D*V+G*W);A=U*Z-T*_;X=(c[j>>2]=h,+g[j>>2]);z=X-(c[j>>2]=s,+g[j>>2]);X=(c[j>>2]=k,+g[j>>2]);$=z+Z;Z=X-(c[j>>2]=t,+g[j>>2])+_;L=+g[a+216>>2]+ +g[a+208>>2]+Y*(Y*K)+A*(J*A);M=Y;N=A;O=R*(G*$+D*Z-V)+S*(G*Z-D*$-W);P=T;Q=U}U=+g[a+152>>2];T=+g[a+228>>2];if((c[a+80>>2]|0)==1){W=+g[a+236>>2];aa=U;ba=U;ca=q-y-+g[a+144>>2];da=U*U*(T+W);ea=0.0;fa=0.0;ga=W}else{W=+g[a+132>>2];$=+g[a+136>>2];D=I*W-H*$;Z=H*W+I*$;G=+g[a+116>>2]-+g[a+200>>2];S=+g[a+120>>2]-+g[a+204>>2];V=+g[a+100>>2]-+g[a+184>>2];R=+g[a+104>>2]-+g[a+188>>2];A=C*V-B*R;Y=B*V+C*R;R=U*(Z*(I*G-H*S)-D*(H*G+I*S));C=U*(Z*A-D*Y);V=+g[a+236>>2];B=(c[j>>2]=o,+g[j>>2]);_=B-(c[j>>2]=w,+g[j>>2]);B=(c[j>>2]=p,+g[j>>2]);X=_+A;A=B-(c[j>>2]=x,+g[j>>2])+Y;aa=R;ba=C;ca=W*(I*X+H*A-G)+$*(I*A-H*X-S);da=U*U*(+g[a+220>>2]+ +g[a+212>>2])+R*(R*V)+C*(T*C);ea=D*U;fa=Z*U;ga=V}V=L+0.0+da;if(V>0.0)ha=-(O+ca*U-+g[a+148>>2])/V;else ha=0.0;V=ha*+g[a+208>>2];U=(c[j>>2]=h,+g[j>>2])+P*V;ca=(c[j>>2]=k,+g[j>>2])+Q*V;V=ha*+g[a+212>>2];O=(c[j>>2]=o,+g[j>>2])+ea*V;da=(c[j>>2]=p,+g[j>>2])+fa*V;V=ha*+g[a+216>>2];L=(c[j>>2]=s,+g[j>>2])-P*V;P=(c[j>>2]=t,+g[j>>2])-Q*V;V=ha*+g[a+220>>2];Q=(c[j>>2]=w,+g[j>>2])-ea*V;ea=(c[j>>2]=x,+g[j>>2])-fa*V;g[b+(f*12|0)>>2]=U;g[i>>2]=ca;i=c[d>>2]|0;g[i+((c[e>>2]|0)*12|0)+8>>2]=l+N*(ha*J);e=c[m>>2]|0;g[i+(e*12|0)>>2]=O;g[i+(e*12|0)+4>>2]=da;e=c[d>>2]|0;g[e+((c[m>>2]|0)*12|0)+8>>2]=q+ba*(ha*T);m=c[n>>2]|0;g[e+(m*12|0)>>2]=L;g[e+(m*12|0)+4>>2]=P;m=c[d>>2]|0;g[m+((c[n>>2]|0)*12|0)+8>>2]=u-M*(ha*K);n=c[r>>2]|0;g[m+(n*12|0)>>2]=Q;g[m+(n*12|0)+4>>2]=ea;g[(c[d>>2]|0)+((c[r>>2]|0)*12|0)+8>>2]=y-aa*(ha*ga);return 1}function yg(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0,i=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.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,K=0.0,L=0,M=0.0,N=0.0,O=0,P=0;ch(a,b);c[a>>2]=1280;d=a+92|0;e=a+100|0;f=a+108|0;h=a+116|0;i=a+124|0;k=a+132|0;l=c[b+20>>2]|0;c[a+68>>2]=l;m=b+24|0;n=c[m>>2]|0;c[a+72>>2]=n;o=l;l=c[o+4>>2]|0;c[a+76>>2]=l;p=n;n=c[p+4>>2]|0;c[a+80>>2]=n;q=c[o+48>>2]|0;c[a+84>>2]=q;r=c[o+52>>2]|0;c[a+48>>2]=r;s=+g[r+20>>2];t=+g[r+24>>2];u=q;v=+g[u+20>>2];w=+g[u+24>>2];if((l|0)==1){x=+g[r+72>>2];y=+g[u+72>>2];l=o+68|0;q=c[l+4>>2]|0;z=f;c[z>>2]=c[l>>2];c[z+4>>2]=q;q=o+76|0;z=c[q+4>>2]|0;l=d;c[l>>2]=c[q>>2];c[l+4>>2]=z;z=c[o+116>>2]|0;c[a+140>>2]=z;g[i>>2]=0.0;g[a+128>>2]=0.0;A=x-y-(c[j>>2]=z,+g[j>>2])}else{y=+g[u+16>>2];x=+g[u+12>>2];B=+g[r+16>>2];C=+g[r+12>>2];r=o+68|0;u=c[r>>2]|0;z=c[r+4>>2]|0;r=f;c[r>>2]=u;c[r+4>>2]=z;r=o+76|0;f=c[r>>2]|0;l=c[r+4>>2]|0;r=d;c[r>>2]=f;c[r+4>>2]=l;c[a+140>>2]=c[o+100>>2];r=o+84|0;o=c[r>>2]|0;d=c[r+4>>2]|0;r=i;c[r>>2]=o;c[r+4>>2]=d;D=(c[j>>2]=u,+g[j>>2]);E=(c[j>>2]=z,+g[j>>2]);F=(c[j>>2]=f,+g[j>>2]);G=(c[j>>2]=l,+g[j>>2]);H=C-x+(t*F-s*G);x=B-y+(s*F+t*G);G=(c[j>>2]=o,+g[j>>2])*(w*H+v*x-D);A=G+(c[j>>2]=d,+g[j>>2])*(w*x-v*H-E)}d=c[p+48>>2]|0;c[a+88>>2]=d;o=c[p+52>>2]|0;c[a+52>>2]=o;E=+g[o+20>>2];H=+g[o+24>>2];p=d;v=+g[p+20>>2];x=+g[p+24>>2];d=c[m>>2]|0;if((n|0)==1){w=+g[o+72>>2];G=+g[p+72>>2];n=d+68|0;m=c[n+4>>2]|0;l=h;c[l>>2]=c[n>>2];c[l+4>>2]=m;m=d+76|0;l=c[m+4>>2]|0;n=e;c[n>>2]=c[m>>2];c[n+4>>2]=l;l=c[d+116>>2]|0;c[a+144>>2]=l;g[k>>2]=0.0;g[a+136>>2]=0.0;I=w-G-(c[j>>2]=l,+g[j>>2]);J=b+28|0;K=+g[J>>2];L=a+152|0;g[L>>2]=K;M=I*K;N=A+M;O=a+148|0;g[O>>2]=N;P=a+156|0;g[P>>2]=0.0;return}else{G=+g[p+16>>2];w=+g[p+12>>2];D=+g[o+16>>2];t=+g[o+12>>2];o=d+68|0;p=c[o>>2]|0;l=c[o+4>>2]|0;o=h;c[o>>2]=p;c[o+4>>2]=l;o=d+76|0;h=c[o>>2]|0;n=c[o+4>>2]|0;o=e;c[o>>2]=h;c[o+4>>2]=n;c[a+144>>2]=c[d+100>>2];o=d+84|0;d=c[o>>2]|0;e=c[o+4>>2]|0;o=k;c[o>>2]=d;c[o+4>>2]=e;F=(c[j>>2]=p,+g[j>>2]);s=(c[j>>2]=l,+g[j>>2]);y=(c[j>>2]=h,+g[j>>2]);B=(c[j>>2]=n,+g[j>>2]);C=t-w+(H*y-E*B);w=D-G+(E*y+H*B);B=(c[j>>2]=d,+g[j>>2])*(x*C+v*w-F);I=B+(c[j>>2]=e,+g[j>>2])*(x*w-v*C-s);J=b+28|0;K=+g[J>>2];L=a+152|0;g[L>>2]=K;M=I*K;N=A+M;O=a+148|0;g[O>>2]=N;P=a+156|0;g[P>>2]=0.0;return}}function zg(a){a=a|0;return +(+g[a+152>>2])}function Ag(a,b){a=a|0;b=b|0;var d=0,e=0.0,f=0.0,h=0.0,i=0.0,j=0.0;d=c[b+48>>2]|0;e=+g[d+24>>2];f=+g[b+68>>2];h=+g[d+20>>2];i=+g[b+72>>2];j=f*h+e*i+ +g[d+16>>2];g[a>>2]=+g[d+12>>2]+(e*f-h*i);g[a+4>>2]=j;return}function Bg(a,b){a=a|0;b=b|0;var d=0,e=0.0,f=0.0,h=0.0,i=0.0,j=0.0;d=c[b+52>>2]|0;e=+g[d+24>>2];f=+g[b+76>>2];h=+g[d+20>>2];i=+g[b+80>>2];j=f*h+e*i+ +g[d+16>>2];g[a>>2]=+g[d+12>>2]+(e*f-h*i);g[a+4>>2]=j;return}function Cg(a,b,c){a=a|0;b=b|0;c=+c;var d=0.0,e=0.0,f=0.0;d=+g[b+104>>2];e=+g[b+116>>2]+ +g[b+112>>2];f=(d*+g[b+196>>2]+e*+g[b+188>>2])*c;g[a>>2]=(d*+g[b+192>>2]+ +g[b+184>>2]*e)*c;g[a+4>>2]=f;return}function Dg(a,b){a=a|0;b=+b;return +(+g[a+108>>2]*b)}function Eg(a){a=a|0;var b=0,e=0,f=0,i=0,j=0,k=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;b=l;l=l+144|0;e=b+136|0;f=b+128|0;i=b+120|0;j=b+112|0;k=b+104|0;m=b+96|0;n=b+88|0;o=b+80|0;p=b+64|0;q=b+48|0;r=b+32|0;s=b+24|0;t=b+16|0;u=b+8|0;v=c[(c[a+48>>2]|0)+8>>2]|0;w=c[(c[a+52>>2]|0)+8>>2]|0;am(3469,b);c[u>>2]=v;am(4137,u);c[t>>2]=w;am(4163,t);c[s>>2]=d[a+61>>0];am(4189,s);x=+g[a+72>>2];h[r>>3]=+g[a+68>>2];h[r+8>>3]=x;am(4310,r);x=+g[a+80>>2];h[q>>3]=+g[a+76>>2];h[q+8>>3]=x;am(4352,q);x=+g[a+88>>2];h[p>>3]=+g[a+84>>2];h[p+8>>3]=x;am(3909,p);h[o>>3]=+g[a+100>>2];am(3750,o);c[n>>2]=d[a+136>>0];am(3782,n);h[m>>3]=+g[a+120>>2];am(3496,m);h[k>>3]=+g[a+124>>2];am(3530,k);c[j>>2]=d[a+137>>0];am(3949,j);h[i>>3]=+g[a+132>>2];am(3979,i);h[f>>3]=+g[a+128>>2];am(3564,f);c[e>>2]=c[a+56>>2];am(4467,e);l=b;return}function Fg(a){a=a|0;fn(a);return}function Gg(b,d){b=b|0;d=d|0;var e=0,f=0,h=0,i=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0.0,u=0,v=0,w=0,x=0,y=0.0,z=0.0,A=0,B=0,C=0.0,D=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,aa=0.0,ba=0.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;e=c[b+48>>2]|0;f=c[e+8>>2]|0;h=b+144|0;c[h>>2]=f;i=c[b+52>>2]|0;k=c[i+8>>2]|0;l=b+148|0;c[l>>2]=k;m=e+44|0;n=c[m>>2]|0;o=c[m+4>>2]|0;m=b+152|0;c[m>>2]=n;c[m+4>>2]=o;m=i+44|0;p=c[m>>2]|0;q=c[m+4>>2]|0;m=b+160|0;c[m>>2]=p;c[m+4>>2]=q;m=c[e+136>>2]|0;c[b+168>>2]=m;r=c[i+136>>2]|0;c[b+172>>2]=r;s=c[e+144>>2]|0;c[b+176>>2]=s;e=c[i+144>>2]|0;c[b+180>>2]=e;i=c[d+28>>2]|0;t=+g[i+(f*12|0)+8>>2];u=d+32|0;v=c[u>>2]|0;w=c[v+(f*12|0)>>2]|0;x=c[v+(f*12|0)+4>>2]|0;y=+g[v+(f*12|0)+8>>2];z=+g[i+(k*12|0)+8>>2];A=c[v+(k*12|0)>>2]|0;B=c[v+(k*12|0)+4>>2]|0;C=+g[v+(k*12|0)+8>>2];D=+F(+t);G=+E(+t);t=+F(+z);H=+E(+z);z=+g[b+68>>2]-(c[j>>2]=n,+g[j>>2]);I=+g[b+72>>2]-(c[j>>2]=o,+g[j>>2]);J=G*z-D*I;K=D*z+G*I;I=+g[b+76>>2]-(c[j>>2]=p,+g[j>>2]);z=+g[b+80>>2]-(c[j>>2]=q,+g[j>>2]);L=H*I-t*z;M=t*I+H*z;z=+g[i+(k*12|0)>>2]-+g[i+(f*12|0)>>2]+L-J;H=+g[i+(k*12|0)+4>>2]-+g[i+(f*12|0)+4>>2]+M-K;I=(c[j>>2]=m,+g[j>>2]);t=(c[j>>2]=r,+g[j>>2]);N=(c[j>>2]=s,+g[j>>2]);O=(c[j>>2]=e,+g[j>>2]);P=+g[b+84>>2];Q=+g[b+88>>2];R=G*P-D*Q;S=D*P+G*Q;g[b+184>>2]=R;g[b+188>>2]=S;Q=J+z;J=K+H;K=Q*S-J*R;g[b+208>>2]=K;P=L*S-M*R;g[b+212>>2]=P;T=I+t;U=N*K;V=O*P;W=P*V+(T+K*U);g[b+252>>2]=W>0.0?1.0/W:W;X=+g[b+92>>2];Y=+g[b+96>>2];Z=G*X-D*Y;_=D*X+G*Y;g[b+192>>2]=Z;g[b+196>>2]=_;Y=Q*_-J*Z;g[b+200>>2]=Y;J=L*_-M*Z;g[b+204>>2]=J;M=N*Y;L=O*J;Q=M+L;G=M*K+L*P;X=N+O;D=U+V;g[b+216>>2]=J*L+(T+Y*M);g[b+220>>2]=Q;g[b+224>>2]=G;g[b+228>>2]=Q;g[b+232>>2]=X==0.0?1.0:X;g[b+236>>2]=D;g[b+240>>2]=G;g[b+244>>2]=D;g[b+248>>2]=W;do if(!(a[b+136>>0]|0)){c[b+140>>2]=0;g[b+112>>2]=0.0}else{W=z*R+H*S;D=+g[b+124>>2];G=+g[b+120>>2];X=D-G;if((X>0.0?X:-X)<.009999999776482582){c[b+140>>2]=3;break}if(W<=G){e=b+140|0;if((c[e>>2]|0)==1)break;c[e>>2]=1;g[b+112>>2]=0.0;break}e=b+140|0;if(W>=D)if((c[e>>2]|0)==2)break;else $=2;else $=0;c[e>>2]=$;g[b+112>>2]=0.0}while(0);if(!(a[b+137>>0]|0))g[b+116>>2]=0.0;if(!(a[d+24>>0]|0)){$=b+104|0;c[$>>2]=0;c[$+4>>2]=0;c[$+8>>2]=0;c[$+12>>2]=0;aa=y;ba=C;ca=A;da=w;ea=B;fa=x;ga=c[u>>2]|0;ha=c[h>>2]|0;ia=ga+(ha*12|0)|0;c[ia>>2]=da;ja=ga+(ha*12|0)+4|0;c[ja>>2]=fa;ka=c[u>>2]|0;la=c[h>>2]|0;ma=ka+(la*12|0)+8|0;g[ma>>2]=aa;na=c[l>>2]|0;oa=ka+(na*12|0)|0;c[oa>>2]=ca;pa=ka+(na*12|0)+4|0;c[pa>>2]=ea;qa=c[u>>2]|0;ra=c[l>>2]|0;sa=qa+(ra*12|0)+8|0;g[sa>>2]=ba;return}else{H=+g[d+8>>2];d=b+104|0;z=H*+g[d>>2];g[d>>2]=z;d=b+108|0;D=H*+g[d>>2];g[d>>2]=D;d=b+112|0;W=H*+g[d>>2];g[d>>2]=W;d=b+116|0;G=H*+g[d>>2];g[d>>2]=G;H=G+W;W=z*Z+R*H;R=z*_+H*S;d=(g[j>>2]=(c[j>>2]=w,+g[j>>2])-I*W,c[j>>2]|0);w=(g[j>>2]=(c[j>>2]=x,+g[j>>2])-I*R,c[j>>2]|0);x=(g[j>>2]=(c[j>>2]=A,+g[j>>2])+t*W,c[j>>2]|0);aa=y-N*(z*Y+D+H*K);ba=C+O*(D+z*J+H*P);ca=x;da=d;ea=(g[j>>2]=(c[j>>2]=B,+g[j>>2])+t*R,c[j>>2]|0);fa=w;ga=c[u>>2]|0;ha=c[h>>2]|0;ia=ga+(ha*12|0)|0;c[ia>>2]=da;ja=ga+(ha*12|0)+4|0;c[ja>>2]=fa;ka=c[u>>2]|0;la=c[h>>2]|0;ma=ka+(la*12|0)+8|0;g[ma>>2]=aa;na=c[l>>2]|0;oa=ka+(na*12|0)|0;c[oa>>2]=ca;pa=ka+(na*12|0)+4|0;c[pa>>2]=ea;qa=c[u>>2]|0;ra=c[l>>2]|0;sa=qa+(ra*12|0)+8|0;g[sa>>2]=ba;return}}function Hg(b,d){b=b|0;d=d|0;var e=0,f=0,h=0,i=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0.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.0,L=0.0,M=0.0,N=0.0,O=0.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,_=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,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0;e=l;l=l+32|0;f=e+20|0;h=e+8|0;i=e;k=d+32|0;m=c[k>>2]|0;n=b+144|0;o=c[n>>2]|0;p=c[m+(o*12|0)>>2]|0;q=c[m+(o*12|0)+4>>2]|0;r=+g[m+(o*12|0)+8>>2];o=b+148|0;s=c[o>>2]|0;t=c[m+(s*12|0)>>2]|0;u=c[m+(s*12|0)+4>>2]|0;v=+g[m+(s*12|0)+8>>2];w=+g[b+168>>2];x=+g[b+172>>2];y=+g[b+176>>2];z=+g[b+180>>2];if((a[b+137>>0]|0)!=0?(c[b+140>>2]|0)!=3:0){A=(c[j>>2]=t,+g[j>>2]);B=(c[j>>2]=p,+g[j>>2]);C=(c[j>>2]=u,+g[j>>2]);D=(c[j>>2]=q,+g[j>>2]);E=+g[b+184>>2];F=+g[b+188>>2];G=+g[b+212>>2];H=+g[b+208>>2];s=b+116|0;I=+g[s>>2];J=+g[d>>2]*+g[b+128>>2];K=I+ +g[b+252>>2]*(+g[b+132>>2]-((A-B)*E+(C-D)*F+v*G-r*H));L=-J;M=K>2]=J;M=J-I;I=E*M;E=F*M;s=(g[j>>2]=B-w*I,c[j>>2]|0);d=(g[j>>2]=D-w*E,c[j>>2]|0);m=(g[j>>2]=A+x*I,c[j>>2]|0);N=r-y*(H*M);O=v+z*(G*M);P=m;Q=s;R=(g[j>>2]=C+x*E,c[j>>2]|0);S=d}else{N=r;O=v;P=t;Q=p;R=u;S=q}v=(c[j>>2]=P,+g[j>>2]);r=(c[j>>2]=Q,+g[j>>2]);E=v-r;C=(c[j>>2]=R,+g[j>>2]);M=(c[j>>2]=S,+g[j>>2]);G=C-M;S=b+192|0;R=b+196|0;Q=b+204|0;P=b+200|0;H=E*+g[S>>2]+G*+g[R>>2]+O*+g[Q>>2]-N*+g[P>>2];I=O-N;if(a[b+136>>0]|0?(q=b+140|0,c[q>>2]|0):0){u=b+184|0;p=b+188|0;t=b+212|0;d=b+208|0;A=+g[b+104>>2];s=b+108|0;D=+g[s>>2];m=b+112|0;B=+g[m>>2];T=b+216|0;F=-H;J=-I;L=-(E*+g[u>>2]+G*+g[p>>2]+O*+g[t>>2]-N*+g[d>>2]);g[h>>2]=F;g[h+4>>2]=J;g[h+8>>2]=L;Rl(f,T,h);U=b+104|0;g[U>>2]=+g[f>>2]+ +g[U>>2];g[s>>2]=+g[f+4>>2]+ +g[s>>2];L=+g[f+8>>2]+ +g[m>>2];g[m>>2]=L;switch(c[q>>2]|0){case 1:{V=L>0.0;W=9;break}case 2:{V=L<0.0;W=9;break}default:X=L}if((W|0)==9){G=V?L:0.0;g[m>>2]=G;X=G}G=X-B;X=J-G*+g[b+244>>2];g[h>>2]=F-+g[b+240>>2]*G;g[h+4>>2]=X;Sl(i,T,h);X=A+ +g[i>>2];G=D+ +g[i+4>>2];g[U>>2]=X;g[s>>2]=G;F=X-A;A=G-D;D=+g[m>>2]-B;Y=F*+g[S>>2]+D*+g[u>>2];Z=F*+g[R>>2]+D*+g[p>>2];_=A+F*+g[Q>>2]+D*+g[t>>2];$=F*+g[P>>2]+A+D*+g[d>>2];aa=w*Z;ba=w*Y;ca=x*Z;da=x*Y;ea=M-aa;fa=r-ba;ga=C+ca;ha=v+da;ia=y*$;ja=z*_;ka=N-ia;la=O+ja;ma=c[k>>2]|0;na=c[n>>2]|0;oa=ma+(na*12|0)|0;g[oa>>2]=fa;pa=ma+(na*12|0)+4|0;g[pa>>2]=ea;qa=c[k>>2]|0;ra=c[n>>2]|0;sa=qa+(ra*12|0)+8|0;g[sa>>2]=ka;ta=c[o>>2]|0;ua=qa+(ta*12|0)|0;g[ua>>2]=ha;va=qa+(ta*12|0)+4|0;g[va>>2]=ga;wa=c[k>>2]|0;xa=c[o>>2]|0;ya=wa+(xa*12|0)+8|0;g[ya>>2]=la;l=e;return}g[h>>2]=-H;g[h+4>>2]=-I;Sl(f,b+216|0,h);I=+g[f>>2];h=b+104|0;g[h>>2]=I+ +g[h>>2];H=+g[f+4>>2];f=b+108|0;g[f>>2]=H+ +g[f>>2];Y=I*+g[S>>2];Z=I*+g[R>>2];_=H+I*+g[Q>>2];$=I*+g[P>>2]+H;aa=w*Z;ba=w*Y;ca=x*Z;da=x*Y;ea=M-aa;fa=r-ba;ga=C+ca;ha=v+da;ia=y*$;ja=z*_;ka=N-ia;la=O+ja;ma=c[k>>2]|0;na=c[n>>2]|0;oa=ma+(na*12|0)|0;g[oa>>2]=fa;pa=ma+(na*12|0)+4|0;g[pa>>2]=ea;qa=c[k>>2]|0;ra=c[n>>2]|0;sa=qa+(ra*12|0)+8|0;g[sa>>2]=ka;ta=c[o>>2]|0;ua=qa+(ta*12|0)|0;g[ua>>2]=ha;va=qa+(ta*12|0)+4|0;g[va>>2]=ga;wa=c[k>>2]|0;xa=c[o>>2]|0;ya=wa+(xa*12|0)+8|0;g[ya>>2]=la;l=e;return}function Ig(b,d){b=b|0;d=d|0;var e=0,f=0,h=0,i=0,j=0,k=0,m=0,n=0.0,o=0.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,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,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.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,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=l;l=l+64|0;f=e+24|0;h=e+12|0;i=e;j=d+28|0;d=c[j>>2]|0;k=b+144|0;m=c[k>>2]|0;n=+g[d+(m*12|0)>>2];o=+g[d+(m*12|0)+4>>2];p=+g[d+(m*12|0)+8>>2];m=b+148|0;q=c[m>>2]|0;r=+g[d+(q*12|0)>>2];s=+g[d+(q*12|0)+4>>2];t=+g[d+(q*12|0)+8>>2];u=+F(+p);v=+E(+p);w=+F(+t);x=+E(+t);y=+g[b+168>>2];z=+g[b+172>>2];A=+g[b+176>>2];B=+g[b+180>>2];C=+g[b+68>>2]-+g[b+152>>2];D=+g[b+72>>2]-+g[b+156>>2];G=v*C-u*D;H=u*C+v*D;D=+g[b+76>>2]-+g[b+160>>2];C=+g[b+80>>2]-+g[b+164>>2];I=x*D-w*C;J=w*D+x*C;C=r+I-n-G;x=s+J-o-H;D=+g[b+84>>2];w=+g[b+88>>2];K=v*D-u*w;L=u*D+v*w;w=G+C;G=H+x;H=L*w-K*G;D=I*L-J*K;M=+g[b+92>>2];N=+g[b+96>>2];O=v*M-u*N;P=u*M+v*N;N=P*w-O*G;G=I*P-J*O;J=O*C+P*x;I=t-p-+g[b+100>>2];w=-J;v=J>0.0?J:w;J=-I;M=I>0.0?I:J;a:do if(!(a[b+136>>0]|0)){Q=v;R=0;S=0.0}else{I=K*C+L*x;u=+g[b+124>>2];T=+g[b+120>>2];U=u-T;do if((U>0.0?U:-U)<.009999999776482582){V=I<.20000000298023224?I:.20000000298023224;W=V<-.20000000298023224?-.20000000298023224:V;X=I>0.0?I:-I}else{if(I<=T){V=I-T+.004999999888241291;Y=V<0.0?V:0.0;W=Y<-.20000000298023224?-.20000000298023224:Y;X=T-I;break}if(!(I>=u)){Q=v;R=0;S=0.0;break a}Y=I-u;V=Y+-.004999999888241291;Z=V<.20000000298023224?V:.20000000298023224;W=Z<0.0?0.0:Z;X=Y}while(0);Q=v>X?v:X;R=1;S=W}while(0);W=y+z;X=A+B;v=A*N;x=B*G;C=x+v;b=X==0.0;u=G*x+(W+N*v);if(R){I=D*x+H*v;v=A*H;x=B*D;T=x+v;g[f>>2]=u;g[f+4>>2]=C;g[f+8>>2]=I;g[f+12>>2]=C;g[f+16>>2]=b?1.0:X;g[f+20>>2]=T;g[f+24>>2]=I;g[f+28>>2]=T;g[f+32>>2]=D*x+(W+H*v);g[i>>2]=w;g[i+4>>2]=J;g[i+8>>2]=-S;Rl(h,f,i);_=+g[h+8>>2];$=+g[h>>2];aa=+g[h+4>>2];ba=O*$;ca=P*$;da=K*_;ea=L*_;fa=ba+da;ga=ca+ea;ha=N*$;ia=ha+aa;ja=H*_;ka=ia+ja;la=G*$;ma=la+aa;na=D*_;oa=ma+na;pa=y*fa;qa=y*ga;ra=n-pa;sa=o-qa;ta=A*ka;ua=p-ta;va=z*fa;wa=z*ga;xa=r+va;ya=s+wa;za=B*oa;Aa=t+za;Ba=c[j>>2]|0;Ca=c[k>>2]|0;Da=Ba+(Ca*12|0)|0;g[Da>>2]=ra;Ea=Ba+(Ca*12|0)+4|0;g[Ea>>2]=sa;Fa=c[j>>2]|0;Ga=c[k>>2]|0;Ha=Fa+(Ga*12|0)+8|0;g[Ha>>2]=ua;Ia=c[m>>2]|0;Ja=Fa+(Ia*12|0)|0;g[Ja>>2]=xa;Ka=Fa+(Ia*12|0)+4|0;g[Ka>>2]=ya;La=c[j>>2]|0;Ma=c[m>>2]|0;Na=La+(Ma*12|0)+8|0;g[Na>>2]=Aa;Oa=Q<=.004999999888241291;Pa=M<=.03490658849477768;Qa=Pa&Oa;l=e;return Qa|0}else{S=b?1.0:X;X=S*u-C*C;v=X!=0.0?1.0/X:X;_=0.0;$=(S*w-C*J)*v;aa=(u*J-C*w)*v;ba=O*$;ca=P*$;da=K*_;ea=L*_;fa=ba+da;ga=ca+ea;ha=N*$;ia=ha+aa;ja=H*_;ka=ia+ja;la=G*$;ma=la+aa;na=D*_;oa=ma+na;pa=y*fa;qa=y*ga;ra=n-pa;sa=o-qa;ta=A*ka;ua=p-ta;va=z*fa;wa=z*ga;xa=r+va;ya=s+wa;za=B*oa;Aa=t+za;Ba=c[j>>2]|0;Ca=c[k>>2]|0;Da=Ba+(Ca*12|0)|0;g[Da>>2]=ra;Ea=Ba+(Ca*12|0)+4|0;g[Ea>>2]=sa;Fa=c[j>>2]|0;Ga=c[k>>2]|0;Ha=Fa+(Ga*12|0)+8|0;g[Ha>>2]=ua;Ia=c[m>>2]|0;Ja=Fa+(Ia*12|0)|0;g[Ja>>2]=xa;Ka=Fa+(Ia*12|0)+4|0;g[Ka>>2]=ya;La=c[j>>2]|0;Ma=c[m>>2]|0;Na=La+(Ma*12|0)+8|0;g[Na>>2]=Aa;Oa=Q<=.004999999888241291;Pa=M<=.03490658849477768;Qa=Pa&Oa;l=e;return Qa|0}return 0}function Jg(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var h=0.0,i=0,j=0.0,k=0,l=0.0,m=0,n=0.0;c[a+8>>2]=b;c[a+12>>2]=d;h=+g[e>>2]-+g[b+12>>2];i=e+4|0;j=+g[i>>2]-+g[b+16>>2];k=b+24|0;l=+g[k>>2];m=b+20|0;n=+g[m>>2];g[a+20>>2]=h*l+j*n;g[a+24>>2]=l*j-h*n;n=+g[e>>2]-+g[d+12>>2];h=+g[i>>2]-+g[d+16>>2];j=+g[d+24>>2];l=+g[d+20>>2];g[a+28>>2]=n*j+h*l;g[a+32>>2]=j*h-n*l;l=+g[k>>2];n=+g[f>>2];h=+g[m>>2];j=+g[f+4>>2];g[a+36>>2]=l*n+h*j;g[a+40>>2]=l*j-n*h;g[a+44>>2]=+g[d+72>>2]-+g[b+72>>2];return}function Kg(b,d){b=b|0;d=d|0;var e=0,f=0,h=0,i=0,k=0.0,l=0.0,m=0.0,n=0.0,o=0.0,p=0;ch(b,d);c[b>>2]=1332;e=b+84|0;f=d+20|0;h=c[f+4>>2]|0;i=b+68|0;c[i>>2]=c[f>>2];c[i+4>>2]=h;h=d+28|0;i=c[h+4>>2]|0;f=b+76|0;c[f>>2]=c[h>>2];c[f+4>>2]=i;i=d+36|0;f=c[i>>2]|0;h=c[i+4>>2]|0;i=e;c[i>>2]=f;c[i+4>>2]=h;k=(c[j>>2]=f,+g[j>>2]);l=(c[j>>2]=h,+g[j>>2]);m=+C(+(k*k+l*l));n=1.0/m;if(m<1.1920928955078125e-07){o=l;p=f}else{m=l*n;l=k*n;g[e>>2]=l;g[b+88>>2]=m;o=m;p=(g[j>>2]=l,c[j>>2]|0)}g[b+92>>2]=-o;c[b+96>>2]=p;c[b+100>>2]=c[d+44>>2];p=b+104|0;g[b+252>>2]=0.0;c[p>>2]=0;c[p+4>>2]=0;c[p+8>>2]=0;c[p+12>>2]=0;c[b+120>>2]=c[d+52>>2];c[b+124>>2]=c[d+56>>2];c[b+128>>2]=c[d+64>>2];c[b+132>>2]=c[d+68>>2];a[b+136>>0]=a[d+48>>0]|0;a[b+137>>0]=a[d+60>>0]|0;c[b+140>>2]=0;d=b+184|0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;c[d+12>>2]=0;return}function Lg(a){a=a|0;var b=0,d=0.0,e=0.0,f=0.0,h=0.0,i=0,j=0.0,k=0.0,l=0.0,m=0.0,n=0.0,o=0.0;b=c[a+48>>2]|0;d=+g[b+24>>2];e=+g[a+68>>2];f=+g[b+20>>2];h=+g[a+72>>2];i=c[a+52>>2]|0;j=+g[i+24>>2];k=+g[a+76>>2];l=+g[i+20>>2];m=+g[a+80>>2];n=+g[a+84>>2];o=+g[a+88>>2];return +((+g[i+12>>2]+(j*k-l*m)-(+g[b+12>>2]+(d*e-f*h)))*(d*n-f*o)+(k*l+j*m+ +g[i+16>>2]-(e*f+d*h+ +g[b+16>>2]))*(f*n+d*o))}function Mg(b){b=b|0;return (a[b+136>>0]|0)!=0|0}function Ng(f,h){f=f|0;h=h|0;var i=0,j=0,k=0,l=0;i=f+136|0;if((h&1|0)==(d[i>>0]|0|0))return;j=c[f+48>>2]|0;k=j+4|0;l=e[k>>1]|0;if(!(l&2)){b[k>>1]=l|2;g[j+160>>2]=0.0}j=c[f+52>>2]|0;l=j+4|0;k=e[l>>1]|0;if(!(k&2)){b[l>>1]=k|2;g[j+160>>2]=0.0}a[i>>0]=h&1;g[f+112>>2]=0.0;return}function Og(b){b=b|0;return (a[b+137>>0]|0)!=0|0}function Pg(d,f){d=d|0;f=f|0;var h=0,i=0,j=0,k=0;h=f&1;f=c[d+48>>2]|0;i=f+4|0;j=e[i>>1]|0;if(!(j&2)){b[i>>1]=j|2;g[f+160>>2]=0.0}f=c[d+52>>2]|0;j=f+4|0;i=e[j>>1]|0;if(i&2|0){k=d+137|0;a[k>>0]=h;return}b[j>>1]=i|2;g[f+160>>2]=0.0;k=d+137|0;a[k>>0]=h;return}function Qg(a,d){a=a|0;d=+d;var f=0,h=0,i=0,j=0;f=c[a+48>>2]|0;h=f+4|0;i=e[h>>1]|0;if(!(i&2)){b[h>>1]=i|2;g[f+160>>2]=0.0}f=c[a+52>>2]|0;i=f+4|0;h=e[i>>1]|0;if(h&2|0){j=a+132|0;g[j>>2]=d;return}b[i>>1]=h|2;g[f+160>>2]=0.0;j=a+132|0;g[j>>2]=d;return}function Rg(a,b){a=a|0;b=+b;return +(+g[a+116>>2]*b)}function Sg(a,b){a=a|0;b=b|0;var d=0,e=0.0,f=0.0,h=0.0,i=0.0,j=0.0;d=c[b+48>>2]|0;e=+g[d+24>>2];f=+g[b+68>>2];h=+g[d+20>>2];i=+g[b+72>>2];j=f*h+e*i+ +g[d+16>>2];g[a>>2]=+g[d+12>>2]+(e*f-h*i);g[a+4>>2]=j;return}function Tg(a,b){a=a|0;b=b|0;var d=0,e=0.0,f=0.0,h=0.0,i=0.0,j=0.0;d=c[b+52>>2]|0;e=+g[d+24>>2];f=+g[b+76>>2];h=+g[d+20>>2];i=+g[b+80>>2];j=f*h+e*i+ +g[d+16>>2];g[a>>2]=+g[d+12>>2]+(e*f-h*i);g[a+4>>2]=j;return}function Ug(a,b,c){a=a|0;b=b|0;c=+c;var d=0.0;d=+g[b+92>>2]*c;c=d*+g[b+108>>2];g[a>>2]=+g[b+104>>2]*d;g[a+4>>2]=c;return}function Vg(a,b){a=a|0;b=+b;return 0.0}function Wg(a){a=a|0;var b=0,e=0,f=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0.0;b=l;l=l+80|0;e=b+72|0;f=b+64|0;i=b+48|0;j=b+32|0;k=b+24|0;m=b+16|0;n=b+8|0;o=c[(c[a+48>>2]|0)+8>>2]|0;p=c[(c[a+52>>2]|0)+8>>2]|0;am(3614,b);c[n>>2]=o;am(4137,n);c[m>>2]=p;am(4163,m);c[k>>2]=d[a+61>>0];am(4189,k);q=+g[a+72>>2];h[j>>3]=+g[a+68>>2];h[j+8>>3]=q;am(4310,j);q=+g[a+80>>2];h[i>>3]=+g[a+76>>2];h[i+8>>3]=q;am(4352,i);h[f>>3]=+g[a+84>>2];am(3636,f);c[e>>2]=c[a+56>>2];am(4467,e);l=b;return}function Xg(a){a=a|0;fn(a);return}function Yg(b,d){b=b|0;d=d|0;var e=0,f=0,h=0,i=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,x=0,y=0,z=0,A=0.0,B=0.0,D=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,S=0,T=0,U=0;e=c[b+48>>2]|0;f=c[e+8>>2]|0;h=b+96|0;c[h>>2]=f;i=c[b+52>>2]|0;k=c[i+8>>2]|0;l=b+100|0;c[l>>2]=k;m=e+44|0;n=c[m>>2]|0;o=c[m+4>>2]|0;m=b+128|0;c[m>>2]=n;c[m+4>>2]=o;m=i+44|0;p=c[m>>2]|0;q=c[m+4>>2]|0;m=b+136|0;c[m>>2]=p;c[m+4>>2]=q;m=b+144|0;c[m>>2]=c[e+136>>2];r=b+148|0;c[r>>2]=c[i+136>>2];s=b+152|0;c[s>>2]=c[e+144>>2];e=b+156|0;c[e>>2]=c[i+144>>2];i=c[d+28>>2]|0;t=+g[i+(f*12|0)>>2];u=+g[i+(f*12|0)+4>>2];v=+g[i+(f*12|0)+8>>2];w=d+32|0;x=c[w>>2]|0;y=c[x+(f*12|0)>>2]|0;z=c[x+(f*12|0)+4>>2]|0;A=+g[x+(f*12|0)+8>>2];B=+g[i+(k*12|0)>>2];D=+g[i+(k*12|0)+4>>2];G=+g[i+(k*12|0)+8>>2];i=c[x+(k*12|0)>>2]|0;f=c[x+(k*12|0)+4>>2]|0;H=+g[x+(k*12|0)+8>>2];I=+F(+v);J=+E(+v);v=+F(+G);K=+E(+G);G=+g[b+68>>2]-(c[j>>2]=n,+g[j>>2]);L=+g[b+72>>2]-(c[j>>2]=o,+g[j>>2]);M=J*G-I*L;N=I*G+J*L;g[b+112>>2]=M;g[b+116>>2]=N;L=+g[b+76>>2]-(c[j>>2]=p,+g[j>>2]);J=+g[b+80>>2]-(c[j>>2]=q,+g[j>>2]);G=K*L-v*J;I=v*L+K*J;g[b+120>>2]=G;g[b+124>>2]=I;J=B+G-t-M;t=D+I-u-N;q=b+104|0;g[q>>2]=J;p=b+108|0;g[p>>2]=t;u=+C(+(J*J+t*t));g[b+88>>2]=u;c[b+164>>2]=u-+g[b+84>>2]>0.0?2:0;if(!(u>.004999999888241291)){g[q>>2]=0.0;g[p>>2]=0.0;g[b+160>>2]=0.0;g[b+92>>2]=0.0;return}D=1.0/u;u=D*J;g[q>>2]=u;J=D*t;g[p>>2]=J;t=J*M-N*u;D=J*G-u*I;B=+g[m>>2];K=+g[s>>2];L=+g[r>>2];v=+g[e>>2];O=L+(B+t*(t*K))+D*(D*v);g[b+160>>2]=O!=0.0?1.0/O:0.0;if(!(a[d+24>>0]|0)){g[b+92>>2]=0.0;P=A;Q=H;R=i;S=y;T=f;U=z}else{e=b+92|0;O=+g[d+8>>2]*+g[e>>2];g[e>>2]=O;D=O*u;u=O*J;e=(g[j>>2]=(c[j>>2]=y,+g[j>>2])-D*B,c[j>>2]|0);y=(g[j>>2]=(c[j>>2]=z,+g[j>>2])-u*B,c[j>>2]|0);z=(g[j>>2]=(c[j>>2]=i,+g[j>>2])+D*L,c[j>>2]|0);P=A-K*(u*M-D*N);Q=H+v*(u*G-D*I);R=z;S=e;T=(g[j>>2]=(c[j>>2]=f,+g[j>>2])+u*L,c[j>>2]|0);U=y}y=c[w>>2]|0;f=c[h>>2]|0;c[y+(f*12|0)>>2]=S;c[y+(f*12|0)+4>>2]=U;U=c[w>>2]|0;g[U+((c[h>>2]|0)*12|0)+8>>2]=P;h=c[l>>2]|0;c[U+(h*12|0)>>2]=R;c[U+(h*12|0)+4>>2]=T;g[(c[w>>2]|0)+((c[l>>2]|0)*12|0)+8>>2]=Q;return}function Zg(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0,i=0,j=0.0,k=0,l=0.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;d=b+32|0;e=c[d>>2]|0;f=a+96|0;h=c[f>>2]|0;i=e+(h*12|0)|0;j=+g[i>>2];k=e+(h*12|0)+4|0;l=+g[k>>2];m=+g[e+(h*12|0)+8>>2];h=a+100|0;n=c[h>>2]|0;o=+g[e+(n*12|0)>>2];p=+g[e+(n*12|0)+4>>2];q=+g[e+(n*12|0)+8>>2];r=+g[a+116>>2];s=+g[a+112>>2];t=+g[a+124>>2];u=+g[a+120>>2];v=+g[a+88>>2]-+g[a+84>>2];w=+g[a+104>>2];x=+g[a+108>>2];y=(o-q*t-(j-m*r))*w+(p+q*u-(l+m*s))*x;if(v<0.0)z=y+v*+g[b+4>>2];else z=y;b=a+92|0;y=+g[b>>2];v=y-z*+g[a+160>>2];z=v>0.0?0.0:v;g[b>>2]=z;v=z-y;y=w*v;w=x*v;v=+g[a+144>>2];x=m-+g[a+152>>2]*(w*s-y*r);r=+g[a+148>>2];s=q+ +g[a+156>>2]*(w*u-y*t);g[i>>2]=j-v*y;g[k>>2]=l-v*w;k=c[d>>2]|0;g[k+((c[f>>2]|0)*12|0)+8>>2]=x;f=c[h>>2]|0;g[k+(f*12|0)>>2]=o+y*r;g[k+(f*12|0)+4>>2]=p+w*r;g[(c[d>>2]|0)+((c[h>>2]|0)*12|0)+8>>2]=s;return}function _g(a,b){a=a|0;b=b|0;var d=0,e=0,f=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;d=b+28|0;b=c[d>>2]|0;e=a+96|0;f=c[e>>2]|0;h=+g[b+(f*12|0)>>2];i=+g[b+(f*12|0)+4>>2];j=+g[b+(f*12|0)+8>>2];f=a+100|0;k=c[f>>2]|0;l=+g[b+(k*12|0)>>2];m=+g[b+(k*12|0)+4>>2];n=+g[b+(k*12|0)+8>>2];o=+F(+j);p=+E(+j);q=+F(+n);r=+E(+n);s=+g[a+68>>2]-+g[a+128>>2];t=+g[a+72>>2]-+g[a+132>>2];u=p*s-o*t;v=o*s+p*t;t=+g[a+76>>2]-+g[a+136>>2];p=+g[a+80>>2]-+g[a+140>>2];s=r*t-q*p;o=q*t+r*p;p=l+s-h-u;r=m+o-i-v;t=+C(+(p*p+r*r));k=t<1.1920928955078125e-07;q=1.0/t;w=k?0.0:t;b=a+84|0;t=w-+g[b>>2];x=t<.20000000298023224?t:.20000000298023224;t=-(+g[a+160>>2]*(x<0.0?0.0:x));x=(k?p:q*p)*t;p=(k?r:q*r)*t;t=+g[a+144>>2];r=j-+g[a+152>>2]*(u*p-v*x);v=+g[a+148>>2];u=n+ +g[a+156>>2]*(s*p-o*x);a=c[d>>2]|0;k=c[e>>2]|0;g[a+(k*12|0)>>2]=h-t*x;g[a+(k*12|0)+4>>2]=i-t*p;k=c[d>>2]|0;g[k+((c[e>>2]|0)*12|0)+8>>2]=r;e=c[f>>2]|0;g[k+(e*12|0)>>2]=l+v*x;g[k+(e*12|0)+4>>2]=m+v*p;g[(c[d>>2]|0)+((c[f>>2]|0)*12|0)+8>>2]=u;return w-+g[b>>2]<.004999999888241291|0}function $g(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;ch(a,b);c[a>>2]=1384;d=b+20|0;e=c[d+4>>2]|0;f=a+68|0;c[f>>2]=c[d>>2];c[f+4>>2]=e;e=b+28|0;f=c[e+4>>2]|0;d=a+76|0;c[d>>2]=c[e>>2];c[d+4>>2]=f;c[a+84>>2]=c[b+36>>2];g[a+160>>2]=0.0;g[a+92>>2]=0.0;c[a+164>>2]=0;g[a+88>>2]=0.0;return}function ah(a,b){a=a|0;b=b|0;var d=0,e=0;do switch(c[a>>2]|0){case 3:{d=Pl(b,176)|0;Uf(d,a);e=d;return e|0}case 5:{d=Pl(b,168)|0;uf(d,a);e=d;return e|0}case 2:{d=Pl(b,256)|0;Kg(d,a);e=d;return e|0}case 1:{d=Pl(b,228)|0;ph(d,a);e=d;return e|0}case 4:{d=Pl(b,196)|0;Th(d,a);e=d;return e|0}case 6:{d=Pl(b,276)|0;yg(d,a);e=d;return e|0}case 7:{d=Pl(b,224)|0;Gh(d,a);e=d;return e|0}case 8:{d=Pl(b,208)|0;og(d,a);e=d;return e|0}case 9:{d=Pl(b,180)|0;dg(d,a);e=d;return e|0}case 10:{d=Pl(b,168)|0;$g(d,a);e=d;return e|0}case 11:{d=Pl(b,192)|0;Hf(d,a);e=d;return e|0}default:{e=0;return e|0}}while(0);return 0}function bh(a,b){a=a|0;b=b|0;Pa[c[(c[a>>2]|0)+24>>2]&127](a);do switch(c[a+4>>2]|0){case 3:{Ql(b,a,176);return}case 5:{Ql(b,a,168);return}case 2:{Ql(b,a,256);return}case 1:{Ql(b,a,228);return}case 4:{Ql(b,a,196);return}case 6:{Ql(b,a,276);return}case 7:{Ql(b,a,224);return}case 8:{Ql(b,a,208);return}case 9:{Ql(b,a,180);return}case 10:{Ql(b,a,168);return}case 11:{Ql(b,a,192);return}default:return}while(0)}function ch(b,d){b=b|0;d=d|0;c[b>>2]=1436;c[b+4>>2]=c[d>>2];c[b+8>>2]=0;c[b+12>>2]=0;c[b+48>>2]=c[d+8>>2];c[b+52>>2]=c[d+12>>2];c[b+56>>2]=0;a[b+61>>0]=a[d+16>>0]|0;a[b+60>>0]=0;c[b+64>>2]=c[d+4>>2];d=b+16|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;return}function dh(a){a=a|0;a=l;l=l+16|0;am(3677,a);l=a;return}function eh(a){a=a|0;fn(a);return}function fh(a,b){a=a|0;b=b|0;var d=0,e=0.0,f=0.0,h=0.0,i=0.0,j=0.0;d=c[b+48>>2]|0;e=+g[d+24>>2];f=+g[b+68>>2];h=+g[d+20>>2];i=+g[b+72>>2];j=f*h+e*i+ +g[d+16>>2];g[a>>2]=+g[d+12>>2]+(e*f-h*i);g[a+4>>2]=j;return}function gh(a,b){a=a|0;b=b|0;var d=0,e=0.0,f=0.0,h=0.0,i=0.0,j=0.0;d=c[b+52>>2]|0;e=+g[d+24>>2];f=+g[b+76>>2];h=+g[d+20>>2];i=+g[b+80>>2];j=f*h+e*i+ +g[d+16>>2];g[a>>2]=+g[d+12>>2]+(e*f-h*i);g[a+4>>2]=j;return}function hh(a,b,c){a=a|0;b=b|0;c=+c;var d=0.0;d=+g[b+88>>2]*c;g[a>>2]=+g[b+84>>2]*c;g[a+4>>2]=d;return}function ih(a,b){a=a|0;b=+b;return +(+g[a+92>>2]*b)}function jh(a){a=a|0;var b=0,e=0,f=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0.0;b=l;l=l+128|0;e=b+120|0;f=b+112|0;i=b+104|0;j=b+96|0;k=b+88|0;m=b+80|0;n=b+72|0;o=b+64|0;p=b+48|0;q=b+32|0;r=b+24|0;s=b+16|0;t=b+8|0;u=c[(c[a+48>>2]|0)+8>>2]|0;v=c[(c[a+52>>2]|0)+8>>2]|0;am(3724,b);c[t>>2]=u;am(4137,t);c[s>>2]=v;am(4163,s);c[r>>2]=d[a+61>>0];am(4189,r);w=+g[a+72>>2];h[q>>3]=+g[a+68>>2];h[q+8>>3]=w;am(4310,q);w=+g[a+80>>2];h[p>>3]=+g[a+76>>2];h[p+8>>3]=w;am(4352,p);h[o>>3]=+g[a+116>>2];am(3750,o);c[n>>2]=d[a+112>>0];am(3782,n);h[m>>3]=+g[a+120>>2];am(3812,m);h[k>>3]=+g[a+124>>2];am(3840,k);c[j>>2]=d[a+100>>0];am(3949,j);h[i>>3]=+g[a+108>>2];am(3979,i);h[f>>3]=+g[a+104>>2];am(4007,f);c[e>>2]=c[a+56>>2];am(4467,e);l=b;return}function kh(a){a=a|0;fn(a);return}function lh(b,d){b=b|0;d=d|0;var e=0,f=0,h=0,i=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0.0,u=0,v=0,w=0,x=0,y=0.0,z=0.0,A=0.0,B=0.0,C=0.0,D=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,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;e=c[b+48>>2]|0;f=c[e+8>>2]|0;h=b+128|0;c[h>>2]=f;i=c[b+52>>2]|0;k=c[i+8>>2]|0;l=b+132|0;c[l>>2]=k;m=e+44|0;n=c[m>>2]|0;o=c[m+4>>2]|0;m=b+152|0;c[m>>2]=n;c[m+4>>2]=o;m=i+44|0;p=c[m>>2]|0;q=c[m+4>>2]|0;m=b+160|0;c[m>>2]=p;c[m+4>>2]=q;m=c[e+136>>2]|0;c[b+168>>2]=m;r=c[i+136>>2]|0;c[b+172>>2]=r;s=c[e+144>>2]|0;c[b+176>>2]=s;e=c[i+144>>2]|0;c[b+180>>2]=e;i=c[d+28>>2]|0;t=+g[i+(f*12|0)+8>>2];u=d+32|0;v=c[u>>2]|0;w=c[v+(f*12|0)>>2]|0;x=c[v+(f*12|0)+4>>2]|0;y=+g[v+(f*12|0)+8>>2];z=+g[i+(k*12|0)+8>>2];i=c[v+(k*12|0)>>2]|0;f=c[v+(k*12|0)+4>>2]|0;A=+g[v+(k*12|0)+8>>2];B=+F(+t);C=+E(+t);D=+F(+z);G=+E(+z);H=+g[b+68>>2]-(c[j>>2]=n,+g[j>>2]);I=+g[b+72>>2]-(c[j>>2]=o,+g[j>>2]);J=C*H-B*I;K=B*H+C*I;g[b+136>>2]=J;g[b+140>>2]=K;I=+g[b+76>>2]-(c[j>>2]=p,+g[j>>2]);C=+g[b+80>>2]-(c[j>>2]=q,+g[j>>2]);H=G*I-D*C;B=D*I+G*C;g[b+144>>2]=H;g[b+148>>2]=B;C=(c[j>>2]=m,+g[j>>2]);G=(c[j>>2]=r,+g[j>>2]);I=(c[j>>2]=s,+g[j>>2]);D=(c[j>>2]=e,+g[j>>2]);L=I+D;e=L==0.0;M=C+G;g[b+184>>2]=M+I*(K*K)+D*(B*B);N=-(I*(K*J))-D*(B*H);g[b+196>>2]=N;O=-(I*K)-D*B;g[b+208>>2]=O;g[b+188>>2]=N;g[b+200>>2]=M+I*(J*J)+D*(H*H);M=I*J+D*H;g[b+212>>2]=M;g[b+192>>2]=O;g[b+204>>2]=M;g[b+216>>2]=L;g[b+220>>2]=L>0.0?1.0/L:L;if(e|(a[b+100>>0]|0)==0)g[b+96>>2]=0.0;do if(e|(a[b+112>>0]|0)==0)c[b+224>>2]=0;else{L=z-t-+g[b+116>>2];M=+g[b+124>>2];O=+g[b+120>>2];N=M-O;if((N>0.0?N:-N)<.06981317698955536){c[b+224>>2]=3;break}if(L<=O){s=b+224|0;if((c[s>>2]|0)!=1)g[b+92>>2]=0.0;c[s>>2]=1;break}s=b+224|0;if(!(L>=M)){c[s>>2]=0;g[b+92>>2]=0.0;break}if((c[s>>2]|0)!=2)g[b+92>>2]=0.0;c[s>>2]=2}while(0);if(!(a[d+24>>0]|0)){e=b+84|0;c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;c[e+12>>2]=0;P=y;Q=A;R=i;S=w;T=f;U=x;V=c[u>>2]|0;W=c[h>>2]|0;X=V+(W*12|0)|0;c[X>>2]=S;Y=V+(W*12|0)+4|0;c[Y>>2]=U;Z=c[u>>2]|0;_=c[h>>2]|0;$=Z+(_*12|0)+8|0;g[$>>2]=P;aa=c[l>>2]|0;ba=Z+(aa*12|0)|0;c[ba>>2]=R;ca=Z+(aa*12|0)+4|0;c[ca>>2]=T;da=c[u>>2]|0;ea=c[l>>2]|0;fa=da+(ea*12|0)+8|0;g[fa>>2]=Q;return}else{t=+g[d+8>>2];d=b+84|0;z=t*+g[d>>2];g[d>>2]=z;d=b+88|0;M=t*+g[d>>2];g[d>>2]=M;d=b+92|0;L=t*+g[d>>2];g[d>>2]=L;d=b+96|0;O=t*+g[d>>2];g[d>>2]=O;d=(g[j>>2]=(c[j>>2]=w,+g[j>>2])-C*z,c[j>>2]|0);w=(g[j>>2]=(c[j>>2]=x,+g[j>>2])-C*M,c[j>>2]|0);x=(g[j>>2]=(c[j>>2]=i,+g[j>>2])+G*z,c[j>>2]|0);P=y-I*(L+(O+(M*J-z*K)));Q=A+D*(L+(O+(M*H-z*B)));R=x;S=d;T=(g[j>>2]=(c[j>>2]=f,+g[j>>2])+G*M,c[j>>2]|0);U=w;V=c[u>>2]|0;W=c[h>>2]|0;X=V+(W*12|0)|0;c[X>>2]=S;Y=V+(W*12|0)+4|0;c[Y>>2]=U;Z=c[u>>2]|0;_=c[h>>2]|0;$=Z+(_*12|0)+8|0;g[$>>2]=P;aa=c[l>>2]|0;ba=Z+(aa*12|0)|0;c[ba>>2]=R;ca=Z+(aa*12|0)+4|0;c[ca>>2]=T;da=c[u>>2]|0;ea=c[l>>2]|0;fa=da+(ea*12|0)+8|0;g[fa>>2]=Q;return}}function mh(b,d){b=b|0;d=d|0;var e=0,f=0,h=0,i=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0.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.0,I=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,U=0.0,V=0.0,W=0.0,X=0.0,Y=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,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0;e=l;l=l+48|0;f=e+28|0;h=e+16|0;i=e+8|0;k=e;m=d+32|0;n=c[m>>2]|0;o=b+128|0;p=c[o>>2]|0;q=c[n+(p*12|0)>>2]|0;r=c[n+(p*12|0)+4>>2]|0;s=+g[n+(p*12|0)+8>>2];p=b+132|0;t=c[p>>2]|0;u=c[n+(t*12|0)>>2]|0;v=c[n+(t*12|0)+4>>2]|0;w=+g[n+(t*12|0)+8>>2];x=+g[b+168>>2];y=+g[b+172>>2];z=+g[b+176>>2];A=+g[b+180>>2];t=z+A==0.0;if((a[b+100>>0]|0)!=0?!(t|(c[b+224>>2]|0)==3):0){n=b+96|0;B=+g[n>>2];C=+g[d>>2]*+g[b+104>>2];D=B-+g[b+220>>2]*(w-s-+g[b+108>>2]);E=-C;F=D>2]=C;F=C-B;G=s-z*F;H=w+A*F}else{G=s;H=w}if(a[b+112>>0]|0?(n=b+224|0,!(t|(c[n>>2]|0)==0)):0){t=b+148|0;d=b+144|0;w=(c[j>>2]=u,+g[j>>2]);s=(c[j>>2]=v,+g[j>>2]);F=(c[j>>2]=q,+g[j>>2]);B=(c[j>>2]=r,+g[j>>2]);I=b+140|0;J=b+136|0;C=w-H*+g[t>>2]-F+G*+g[I>>2];E=s+H*+g[d>>2]-B-G*+g[J>>2];g[f>>2]=C;g[f+4>>2]=E;g[f+8>>2]=H-G;K=b+184|0;Rl(h,K,f);D=+g[h>>2];L=-D;M=+g[h+4>>2];N=-M;O=+g[h+8>>2];P=-O;a:do switch(c[n>>2]|0){case 3:{h=b+84|0;g[h>>2]=+g[h>>2]-D;h=b+88|0;g[h>>2]=+g[h>>2]-M;h=b+92|0;g[h>>2]=+g[h>>2]-O;Q=P;R=L;S=N;break}case 1:{h=b+84|0;T=b+92|0;U=+g[T>>2];V=U-O;if(V<0.0){W=U*+g[b+212>>2]-E;g[i>>2]=U*+g[b+208>>2]-C;g[i+4>>2]=W;Sl(k,K,i);W=+g[k>>2];U=+g[k+4>>2];X=-+g[T>>2];g[h>>2]=W+ +g[h>>2];Y=b+88|0;g[Y>>2]=U+ +g[Y>>2];g[T>>2]=0.0;Q=X;R=W;S=U;break a}else{g[h>>2]=+g[h>>2]-D;h=b+88|0;g[h>>2]=+g[h>>2]-M;g[T>>2]=V;Q=P;R=L;S=N;break a}break}case 2:{T=b+84|0;h=b+92|0;V=+g[h>>2];U=V-O;if(U>0.0){W=V*+g[b+212>>2]-E;g[i>>2]=V*+g[b+208>>2]-C;g[i+4>>2]=W;Sl(k,K,i);W=+g[k>>2];V=+g[k+4>>2];X=-+g[h>>2];g[T>>2]=W+ +g[T>>2];Y=b+88|0;g[Y>>2]=V+ +g[Y>>2];g[h>>2]=0.0;Q=X;R=W;S=V;break a}else{g[T>>2]=+g[T>>2]-D;T=b+88|0;g[T>>2]=+g[T>>2]-M;g[h>>2]=U;Q=P;R=L;S=N;break a}break}default:{Q=P;R=L;S=N}}while(0);Z=Q+(S*+g[d>>2]-R*+g[t>>2]);_=Q+(S*+g[J>>2]-R*+g[I>>2]);$=w+y*R;aa=F-x*R;ba=s+y*S;ca=B-x*S;da=z*_;ea=A*Z;fa=G-da;ga=H+ea;ha=c[m>>2]|0;ia=c[o>>2]|0;ja=ha+(ia*12|0)|0;g[ja>>2]=aa;ka=ha+(ia*12|0)+4|0;g[ka>>2]=ca;la=c[m>>2]|0;ma=c[o>>2]|0;na=la+(ma*12|0)+8|0;g[na>>2]=fa;oa=c[p>>2]|0;pa=la+(oa*12|0)|0;g[pa>>2]=$;qa=la+(oa*12|0)+4|0;g[qa>>2]=ba;ra=c[m>>2]|0;sa=c[p>>2]|0;ta=ra+(sa*12|0)+8|0;g[ta>>2]=ga;l=e;return}I=b+148|0;J=b+144|0;S=(c[j>>2]=u,+g[j>>2]);B=(c[j>>2]=v,+g[j>>2]);s=(c[j>>2]=q,+g[j>>2]);R=(c[j>>2]=r,+g[j>>2]);r=b+140|0;q=b+136|0;F=-(B+H*+g[J>>2]-R-G*+g[q>>2]);g[i>>2]=-(S-H*+g[I>>2]-s+G*+g[r>>2]);g[i+4>>2]=F;Sl(f,b+184|0,i);F=+g[f>>2];i=b+84|0;g[i>>2]=F+ +g[i>>2];w=+g[f+4>>2];f=b+88|0;g[f>>2]=w+ +g[f>>2];Z=w*+g[J>>2]-F*+g[I>>2];_=w*+g[q>>2]-F*+g[r>>2];$=S+y*F;aa=s-x*F;ba=B+y*w;ca=R-x*w;da=z*_;ea=A*Z;fa=G-da;ga=H+ea;ha=c[m>>2]|0;ia=c[o>>2]|0;ja=ha+(ia*12|0)|0;g[ja>>2]=aa;ka=ha+(ia*12|0)+4|0;g[ka>>2]=ca;la=c[m>>2]|0;ma=c[o>>2]|0;na=la+(ma*12|0)+8|0;g[na>>2]=fa;oa=c[p>>2]|0;pa=la+(oa*12|0)|0;g[pa>>2]=$;qa=la+(oa*12|0)+4|0;g[qa>>2]=ba;ra=c[m>>2]|0;sa=c[p>>2]|0;ta=ra+(sa*12|0)+8|0;g[ta>>2]=ga;l=e;return}function nh(b,d){b=b|0;d=d|0;var e=0,f=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.0,y=0.0,z=0.0,A=0.0,B=0.0,D=0.0,G=0.0,H=0.0,I=0.0,J=0.0;e=d+28|0;d=c[e>>2]|0;f=b+128|0;h=c[f>>2]|0;i=+g[d+(h*12|0)>>2];j=+g[d+(h*12|0)+4>>2];k=+g[d+(h*12|0)+8>>2];h=b+132|0;l=c[h>>2]|0;m=+g[d+(l*12|0)>>2];n=+g[d+(l*12|0)+4>>2];o=+g[d+(l*12|0)+8>>2];p=+g[b+176>>2];q=+g[b+180>>2];if((a[b+112>>0]|0)!=0?(l=c[b+224>>2]|0,!((l|0)==0|p+q==0.0)):0){r=o-k-+g[b+116>>2];switch(l|0){case 3:{s=r-+g[b+120>>2];t=s<.13962635397911072?s:.13962635397911072;s=t<-.13962635397911072?-.13962635397911072:t;u=s>0.0?s:-s;v=-(+g[b+220>>2]*s);break}case 1:{s=r-+g[b+120>>2];t=s+.03490658849477768;w=t<0.0?t:0.0;u=-s;v=-(+g[b+220>>2]*(w<-.13962635397911072?-.13962635397911072:w));break}case 2:{w=r-+g[b+124>>2];r=w+-.03490658849477768;s=r<.13962635397911072?r:.13962635397911072;u=w;v=-(+g[b+220>>2]*(s<0.0?0.0:s));break}default:{u=0.0;v=0.0}}x=k-v*p;y=o+v*q;z=u}else{x=k;y=o;z=0.0}o=+F(+x);k=+E(+x);u=+F(+y);v=+E(+y);s=+g[b+68>>2]-+g[b+152>>2];w=+g[b+72>>2]-+g[b+156>>2];r=k*s-o*w;t=o*s+k*w;w=+g[b+76>>2]-+g[b+160>>2];k=+g[b+80>>2]-+g[b+164>>2];s=v*w-u*k;o=u*w+v*k;k=m+s-i-r;v=n+o-j-t;w=+C(+(k*k+v*v));u=+g[b+168>>2];A=+g[b+172>>2];B=u+A;D=B+t*(t*p)+o*(o*q);G=r*p;H=s*q;I=-(t*G)-o*H;J=B+r*G+s*H;H=D*J-I*I;G=H!=0.0?1.0/H:H;H=-((k*J-v*I)*G);J=-((v*D-k*I)*G);b=c[e>>2]|0;l=c[f>>2]|0;g[b+(l*12|0)>>2]=i-u*H;g[b+(l*12|0)+4>>2]=j-u*J;l=c[e>>2]|0;g[l+((c[f>>2]|0)*12|0)+8>>2]=x-p*(r*J-t*H);f=c[h>>2]|0;g[l+(f*12|0)>>2]=m+A*H;g[l+(f*12|0)+4>>2]=n+A*J;g[(c[e>>2]|0)+((c[h>>2]|0)*12|0)+8>>2]=y+q*(s*J-o*H);return z<=.03490658849477768&w<=.004999999888241291|0}function oh(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0.0,h=0,i=0.0,j=0.0,k=0.0;c[a+8>>2]=b;c[a+12>>2]=d;f=+g[e>>2]-+g[b+12>>2];h=e+4|0;i=+g[h>>2]-+g[b+16>>2];j=+g[b+24>>2];k=+g[b+20>>2];g[a+20>>2]=f*j+i*k;g[a+24>>2]=j*i-f*k;k=+g[e>>2]-+g[d+12>>2];f=+g[h>>2]-+g[d+16>>2];i=+g[d+24>>2];j=+g[d+20>>2];g[a+28>>2]=k*i+f*j;g[a+32>>2]=i*f-k*j;g[a+36>>2]=+g[d+72>>2]-+g[b+72>>2];return}function ph(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;ch(b,d);c[b>>2]=1488;e=d+20|0;f=c[e+4>>2]|0;g=b+68|0;c[g>>2]=c[e>>2];c[g+4>>2]=f;f=d+28|0;g=c[f+4>>2]|0;e=b+76|0;c[e>>2]=c[f>>2];c[e+4>>2]=g;c[b+116>>2]=c[d+36>>2];g=b+84|0;c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;c[g+12>>2]=0;c[b+120>>2]=c[d+44>>2];c[b+124>>2]=c[d+48>>2];c[b+104>>2]=c[d+60>>2];c[b+108>>2]=c[d+56>>2];a[b+112>>0]=a[d+40>>0]|0;a[b+100>>0]=a[d+52>>0]|0;c[b+224>>2]=0;return}function qh(a){a=a|0;return +(+g[(c[a+52>>2]|0)+72>>2]-+g[(c[a+48>>2]|0)+72>>2]-+g[a+116>>2])}function rh(b){b=b|0;return (a[b+100>>0]|0)!=0|0}function sh(d,f){d=d|0;f=f|0;var h=0,i=0,j=0,k=0;h=f&1;f=c[d+48>>2]|0;i=f+4|0;j=e[i>>1]|0;if(!(j&2)){b[i>>1]=j|2;g[f+160>>2]=0.0}f=c[d+52>>2]|0;j=f+4|0;i=e[j>>1]|0;if(i&2|0){k=d+100|0;a[k>>0]=h;return}b[j>>1]=i|2;g[f+160>>2]=0.0;k=d+100|0;a[k>>0]=h;return}function th(a,d){a=a|0;d=+d;var f=0,h=0,i=0,j=0;f=c[a+48>>2]|0;h=f+4|0;i=e[h>>1]|0;if(!(i&2)){b[h>>1]=i|2;g[f+160>>2]=0.0}f=c[a+52>>2]|0;i=f+4|0;h=e[i>>1]|0;if(h&2|0){j=a+108|0;g[j>>2]=d;return}b[i>>1]=h|2;g[f+160>>2]=0.0;j=a+108|0;g[j>>2]=d;return}function uh(b){b=b|0;return (a[b+112>>0]|0)!=0|0}function vh(f,h){f=f|0;h=h|0;var i=0,j=0,k=0,l=0;i=f+112|0;if((h&1|0)==(d[i>>0]|0|0))return;j=c[f+48>>2]|0;k=j+4|0;l=e[k>>1]|0;if(!(l&2)){b[k>>1]=l|2;g[j+160>>2]=0.0}j=c[f+52>>2]|0;l=j+4|0;k=e[l>>1]|0;if(!(k&2)){b[l>>1]=k|2;g[j+160>>2]=0.0}a[i>>0]=h&1;g[f+92>>2]=0.0;return}function wh(a,b){a=a|0;b=b|0;var d=0,e=0.0,f=0.0,h=0.0,i=0.0,j=0.0;d=c[b+48>>2]|0;e=+g[d+24>>2];f=+g[b+76>>2];h=+g[d+20>>2];i=+g[b+80>>2];j=f*h+e*i+ +g[d+16>>2];g[a>>2]=+g[d+12>>2]+(e*f-h*i);g[a+4>>2]=j;return}function xh(a,b){a=a|0;b=b|0;var d=0,e=0.0,f=0.0,h=0.0,i=0.0,j=0.0;d=c[b+52>>2]|0;e=+g[d+24>>2];f=+g[b+84>>2];h=+g[d+20>>2];i=+g[b+88>>2];j=f*h+e*i+ +g[d+16>>2];g[a>>2]=+g[d+12>>2]+(e*f-h*i);g[a+4>>2]=j;return}function yh(a,b,c){a=a|0;b=b|0;c=+c;var d=0.0,e=0.0,f=0.0;d=+g[b+108>>2];e=+g[b+116>>2];f=(d*+g[b+184>>2]+e*+g[b+176>>2])*c;g[a>>2]=(d*+g[b+180>>2]+e*+g[b+172>>2])*c;g[a+4>>2]=f;return}function zh(a,b){a=a|0;b=+b;return +(+g[a+112>>2]*b)}function Ah(a){a=a|0;var b=0,e=0,f=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0.0;b=l;l=l+128|0;e=b+120|0;f=b+112|0;i=b+104|0;j=b+96|0;k=b+88|0;m=b+80|0;n=b+64|0;o=b+48|0;p=b+32|0;q=b+24|0;r=b+16|0;s=b+8|0;t=c[(c[a+48>>2]|0)+8>>2]|0;u=c[(c[a+52>>2]|0)+8>>2]|0;am(3886,b);c[s>>2]=t;am(4137,s);c[r>>2]=u;am(4163,r);c[q>>2]=d[a+61>>0];am(4189,q);v=+g[a+80>>2];h[p>>3]=+g[a+76>>2];h[p+8>>3]=v;am(4310,p);v=+g[a+88>>2];h[o>>3]=+g[a+84>>2];h[o+8>>3]=v;am(4352,o);v=+g[a+96>>2];h[n>>3]=+g[a+92>>2];h[n+8>>3]=v;am(3909,n);c[m>>2]=d[a+128>>0];am(3949,m);h[k>>3]=+g[a+124>>2];am(3979,k);h[j>>3]=+g[a+120>>2];am(4007,j);h[i>>3]=+g[a+68>>2];am(4039,i);h[f>>3]=+g[a+72>>2];am(4068,f);c[e>>2]=c[a+56>>2];am(4467,e);l=b;return}function Bh(a){a=a|0;fn(a);return}function Ch(b,d){b=b|0;d=d|0;var e=0,f=0,h=0,i=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,B=0,C=0.0,D=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,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,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;e=c[b+48>>2]|0;f=c[e+8>>2]|0;h=b+132|0;c[h>>2]=f;i=c[b+52>>2]|0;k=c[i+8>>2]|0;l=b+136|0;c[l>>2]=k;m=e+44|0;n=c[m>>2]|0;o=c[m+4>>2]|0;m=b+140|0;c[m>>2]=n;c[m+4>>2]=o;m=i+44|0;p=c[m>>2]|0;q=c[m+4>>2]|0;m=b+148|0;c[m>>2]=p;c[m+4>>2]=q;m=c[e+136>>2]|0;r=b+156|0;c[r>>2]=m;s=c[i+136>>2]|0;t=b+160|0;c[t>>2]=s;u=c[e+144>>2]|0;e=b+164|0;c[e>>2]=u;v=+g[i+144>>2];i=b+168|0;g[i>>2]=v;w=(c[j>>2]=m,+g[j>>2]);x=(c[j>>2]=s,+g[j>>2]);y=(c[j>>2]=u,+g[j>>2]);u=c[d+28>>2]|0;z=+g[u+(f*12|0)+8>>2];s=d+32|0;m=c[s>>2]|0;A=c[m+(f*12|0)>>2]|0;B=c[m+(f*12|0)+4>>2]|0;C=+g[m+(f*12|0)+8>>2];D=+g[u+(k*12|0)+8>>2];G=c[m+(k*12|0)>>2]|0;H=c[m+(k*12|0)+4>>2]|0;I=+g[m+(k*12|0)+8>>2];J=+F(+z);K=+E(+z);z=+F(+D);L=+E(+D);D=+g[b+76>>2]-(c[j>>2]=n,+g[j>>2]);M=+g[b+80>>2]-(c[j>>2]=o,+g[j>>2]);N=K*D-J*M;O=J*D+K*M;M=+g[b+84>>2]-(c[j>>2]=p,+g[j>>2]);D=+g[b+88>>2]-(c[j>>2]=q,+g[j>>2]);P=L*M-z*D;Q=z*M+L*D;D=+g[u+(k*12|0)>>2]+P-+g[u+(f*12|0)>>2]-N;L=+g[u+(k*12|0)+4>>2]+Q-+g[u+(f*12|0)+4>>2]-O;M=+g[b+100>>2];z=+g[b+104>>2];R=K*M-J*z;S=J*M+K*z;g[b+180>>2]=R;g[b+184>>2]=S;z=N+D;N=O+L;O=S*z-R*N;g[b+196>>2]=O;M=P*S-Q*R;g[b+200>>2]=M;T=w+x;x=M*(v*M)+(T+O*(y*O));g[b+204>>2]=x>0.0?1.0/x:x;f=b+212|0;g[f>>2]=0.0;u=b+216|0;g[u>>2]=0.0;k=b+220|0;g[k>>2]=0.0;x=+g[b+68>>2];if(x>0.0){w=+g[b+92>>2];U=+g[b+96>>2];V=K*w-J*U;W=J*w+K*U;g[b+172>>2]=V;g[b+176>>2]=W;U=z*W-N*V;g[b+188>>2]=U;N=P*W-Q*V;g[b+192>>2]=N;Q=N*(v*N)+(T+U*(y*U));if(Q>0.0){U=1.0/Q;T=x*6.2831854820251465;x=T*(U*T);N=+g[d>>2];P=N*(T*(U*2.0*+g[b+72>>2])+N*x);U=P>0.0?1.0/P:P;g[k>>2]=U;g[u>>2]=(D*V+L*W)*N*x*U;x=Q+U;g[f>>2]=x>0.0?1.0/x:x}}else g[b+116>>2]=0.0;if(a[b+128>>0]|0){x=v+y;f=b+208|0;g[f>>2]=x;if(x>0.0)g[f>>2]=1.0/x}else{g[b+208>>2]=0.0;g[b+112>>2]=0.0}if(!(a[d+24>>0]|0)){g[b+108>>2]=0.0;g[b+116>>2]=0.0;g[b+112>>2]=0.0;X=C;Y=I;Z=G;_=A;$=H;aa=B;ba=c[s>>2]|0;ca=c[h>>2]|0;da=ba+(ca*12|0)|0;c[da>>2]=_;ea=ba+(ca*12|0)+4|0;c[ea>>2]=aa;fa=c[s>>2]|0;ga=c[h>>2]|0;ha=fa+(ga*12|0)+8|0;g[ha>>2]=X;ia=c[l>>2]|0;ja=fa+(ia*12|0)|0;c[ja>>2]=Z;ka=fa+(ia*12|0)+4|0;c[ka>>2]=$;la=c[s>>2]|0;ma=c[l>>2]|0;na=la+(ma*12|0)+8|0;g[na>>2]=Y;return}else{x=+g[d+8>>2];d=b+108|0;y=x*+g[d>>2];g[d>>2]=y;d=b+116|0;v=x*+g[d>>2];g[d>>2]=v;d=b+112|0;U=x*+g[d>>2];g[d>>2]=U;x=y*R+v*+g[b+172>>2];R=y*S+v*+g[b+176>>2];S=+g[r>>2];r=(g[j>>2]=(c[j>>2]=A,+g[j>>2])-x*S,c[j>>2]|0);A=(g[j>>2]=(c[j>>2]=B,+g[j>>2])-R*S,c[j>>2]|0);S=+g[t>>2];t=(g[j>>2]=(c[j>>2]=G,+g[j>>2])+x*S,c[j>>2]|0);X=C-(U+(y*O+v*+g[b+188>>2]))*+g[e>>2];Y=I+(U+(y*M+v*+g[b+192>>2]))*+g[i>>2];Z=t;_=r;$=(g[j>>2]=(c[j>>2]=H,+g[j>>2])+R*S,c[j>>2]|0);aa=A;ba=c[s>>2]|0;ca=c[h>>2]|0;da=ba+(ca*12|0)|0;c[da>>2]=_;ea=ba+(ca*12|0)+4|0;c[ea>>2]=aa;fa=c[s>>2]|0;ga=c[h>>2]|0;ha=fa+(ga*12|0)+8|0;g[ha>>2]=X;ia=c[l>>2]|0;ja=fa+(ia*12|0)|0;c[ja>>2]=Z;ka=fa+(ia*12|0)+4|0;c[ka>>2]=$;la=c[s>>2]|0;ma=c[l>>2]|0;na=la+(ma*12|0)+8|0;g[na>>2]=Y;return}}function Dh(a,b){a=a|0;b=b|0;var d=0.0,e=0.0,f=0.0,h=0.0,i=0,j=0,k=0,l=0,m=0.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.0,z=0.0;d=+g[a+156>>2];e=+g[a+160>>2];f=+g[a+164>>2];h=+g[a+168>>2];i=b+32|0;j=c[i>>2]|0;k=a+132|0;l=c[k>>2]|0;m=+g[j+(l*12|0)>>2];n=+g[j+(l*12|0)+4>>2];o=+g[j+(l*12|0)+8>>2];l=a+136|0;p=c[l>>2]|0;q=+g[j+(p*12|0)>>2];r=+g[j+(p*12|0)+4>>2];s=+g[j+(p*12|0)+8>>2];t=+g[a+172>>2];u=+g[a+176>>2];v=+g[a+192>>2];w=+g[a+188>>2];p=a+116|0;x=+g[p>>2];y=+g[a+212>>2]*((q-m)*t+(r-n)*u+s*v-o*w+ +g[a+216>>2]+ +g[a+220>>2]*x);z=-y;g[p>>2]=x-y;y=t*z;t=u*z;u=m-d*y;m=n-d*t;n=o-f*(w*z);w=q+e*y;y=r+e*t;t=s+h*(v*z);p=a+112|0;z=+g[p>>2];v=+g[b>>2]*+g[a+120>>2];s=z-+g[a+208>>2]*(t-n-+g[a+124>>2]);r=-v;q=s>2]=v;q=v-z;z=n-f*q;n=t+h*q;q=+g[a+180>>2];t=+g[a+184>>2];v=+g[a+200>>2];r=+g[a+196>>2];s=+g[a+204>>2]*((w-u)*q+(y-m)*t+v*n-r*z);o=-s;p=a+108|0;g[p>>2]=+g[p>>2]-s;s=q*o;q=t*o;p=c[i>>2]|0;a=c[k>>2]|0;g[p+(a*12|0)>>2]=u-d*s;g[p+(a*12|0)+4>>2]=m-d*q;a=c[i>>2]|0;g[a+((c[k>>2]|0)*12|0)+8>>2]=z-f*(r*o);k=c[l>>2]|0;g[a+(k*12|0)>>2]=w+e*s;g[a+(k*12|0)+4>>2]=y+e*q;g[(c[i>>2]|0)+((c[l>>2]|0)*12|0)+8>>2]=n+h*(v*o);return}function Eh(a,b){a=a|0;b=b|0;var d=0,e=0,f=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,A=0.0,B=0.0,C=0.0,D=0.0,G=0.0;d=b+28|0;b=c[d>>2]|0;e=a+132|0;f=c[e>>2]|0;h=+g[b+(f*12|0)>>2];i=+g[b+(f*12|0)+4>>2];j=+g[b+(f*12|0)+8>>2];f=a+136|0;k=c[f>>2]|0;l=+g[b+(k*12|0)>>2];m=+g[b+(k*12|0)+4>>2];n=+g[b+(k*12|0)+8>>2];o=+F(+j);p=+E(+j);q=+F(+n);r=+E(+n);s=+g[a+76>>2]-+g[a+140>>2];t=+g[a+80>>2]-+g[a+144>>2];u=p*s-o*t;v=o*s+p*t;t=+g[a+84>>2]-+g[a+148>>2];s=+g[a+88>>2]-+g[a+152>>2];w=r*t-q*s;x=q*t+r*s;s=l-h+w-u;r=m-i+x-v;t=+g[a+100>>2];q=+g[a+104>>2];y=p*t-o*q;z=o*t+p*q;q=y*s+z*r;p=+g[a+156>>2];t=+g[a+160>>2];o=+g[a+164>>2];A=+g[a+196>>2];B=+g[a+168>>2];C=+g[a+200>>2];D=p+t+A*(o*A)+C*(B*C);C=-q;A=D!=0.0?C/D:0.0;D=y*A;G=z*A;a=c[d>>2]|0;k=c[e>>2]|0;g[a+(k*12|0)>>2]=h-p*D;g[a+(k*12|0)+4>>2]=i-p*G;k=c[d>>2]|0;g[k+((c[e>>2]|0)*12|0)+8>>2]=j-o*((z*(u+s)-y*(v+r))*A);e=c[f>>2]|0;g[k+(e*12|0)>>2]=l+t*D;g[k+(e*12|0)+4>>2]=m+t*G;g[(c[d>>2]|0)+((c[f>>2]|0)*12|0)+8>>2]=n+B*((w*z-x*y)*A);return (q>0.0?q:C)<=.004999999888241291|0}function Fh(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var h=0.0,i=0,j=0.0,k=0,l=0.0,m=0,n=0.0;c[a+8>>2]=b;c[a+12>>2]=d;h=+g[e>>2]-+g[b+12>>2];i=e+4|0;j=+g[i>>2]-+g[b+16>>2];k=b+24|0;l=+g[k>>2];m=b+20|0;n=+g[m>>2];g[a+20>>2]=h*l+j*n;g[a+24>>2]=l*j-h*n;n=+g[e>>2]-+g[d+12>>2];h=+g[i>>2]-+g[d+16>>2];j=+g[d+24>>2];l=+g[d+20>>2];g[a+28>>2]=n*j+h*l;g[a+32>>2]=j*h-n*l;l=+g[k>>2];n=+g[f>>2];h=+g[m>>2];j=+g[f+4>>2];g[a+36>>2]=l*n+h*j;g[a+40>>2]=l*j-n*h;return}function Gh(b,d){b=b|0;d=d|0;var e=0,f=0,h=0;ch(b,d);c[b>>2]=1540;e=d+20|0;f=c[e+4>>2]|0;h=b+76|0;c[h>>2]=c[e>>2];c[h+4>>2]=f;f=d+28|0;h=c[f+4>>2]|0;e=b+84|0;c[e>>2]=c[f>>2];c[e+4>>2]=h;h=d+36|0;e=c[h>>2]|0;f=c[h+4>>2]|0;h=b+92|0;c[h>>2]=e;c[h+4>>2]=f;g[b+100>>2]=-(c[j>>2]=f,+g[j>>2]);c[b+104>>2]=e;g[b+204>>2]=0.0;g[b+108>>2]=0.0;g[b+208>>2]=0.0;g[b+112>>2]=0.0;g[b+212>>2]=0.0;g[b+116>>2]=0.0;c[b+120>>2]=c[d+48>>2];c[b+124>>2]=c[d+52>>2];a[b+128>>0]=a[d+44>>0]|0;c[b+68>>2]=c[d+56>>2];c[b+72>>2]=c[d+60>>2];g[b+216>>2]=0.0;g[b+220>>2]=0.0;d=b+172|0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;c[d+12>>2]=0;return}function Hh(a,d){a=a|0;d=+d;var f=0,h=0,i=0,j=0;f=c[a+48>>2]|0;h=f+4|0;i=e[h>>1]|0;if(!(i&2)){b[h>>1]=i|2;g[f+160>>2]=0.0}f=c[a+52>>2]|0;i=f+4|0;h=e[i>>1]|0;if(h&2|0){j=a+124|0;g[j>>2]=d;return}b[i>>1]=h|2;g[f+160>>2]=0.0;j=a+124|0;g[j>>2]=d;return}function Ih(a,b){a=a|0;b=b|0;var d=0,e=0.0,f=0.0,h=0.0,i=0.0,j=0.0;d=c[b+48>>2]|0;e=+g[d+24>>2];f=+g[b+92>>2];h=+g[d+20>>2];i=+g[b+96>>2];j=f*h+e*i+ +g[d+16>>2];g[a>>2]=+g[d+12>>2]+(e*f-h*i);g[a+4>>2]=j;return}function Jh(a,b){a=a|0;b=b|0;var d=0,e=0.0,f=0.0,h=0.0,i=0.0,j=0.0;d=c[b+52>>2]|0;e=+g[d+24>>2];f=+g[b+100>>2];h=+g[d+20>>2];i=+g[b+104>>2];j=f*h+e*i+ +g[d+16>>2];g[a>>2]=+g[d+12>>2]+(e*f-h*i);g[a+4>>2]=j;return}function Kh(a,b,c){a=a|0;b=b|0;c=+c;var d=0.0,e=0.0;d=+g[b+116>>2];e=d*+g[b+140>>2]*c;g[a>>2]=d*+g[b+136>>2]*c;g[a+4>>2]=e;return}function Lh(a,b){a=a|0;b=+b;return 0.0}function Mh(a){a=a|0;var b=0,e=0,f=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0.0;b=l;l=l+128|0;e=b+120|0;f=b+112|0;i=b+104|0;j=b+96|0;k=b+80|0;m=b+64|0;n=b+48|0;o=b+32|0;p=b+24|0;q=b+16|0;r=b+8|0;s=c[(c[a+48>>2]|0)+8>>2]|0;t=c[(c[a+52>>2]|0)+8>>2]|0;am(4113,b);c[r>>2]=s;am(4137,r);c[q>>2]=t;am(4163,q);c[p>>2]=d[a+61>>0];am(4189,p);u=+g[a+72>>2];h[o>>3]=+g[a+68>>2];h[o+8>>3]=u;am(4224,o);u=+g[a+80>>2];h[n>>3]=+g[a+76>>2];h[n+8>>3]=u;am(4267,n);u=+g[a+96>>2];h[m>>3]=+g[a+92>>2];h[m+8>>3]=u;am(4310,m);u=+g[a+104>>2];h[k>>3]=+g[a+100>>2];h[k+8>>3]=u;am(4352,k);h[j>>3]=+g[a+84>>2];am(4394,j);h[i>>3]=+g[a+88>>2];am(4419,i);h[f>>3]=+g[a+112>>2];am(4444,f);c[e>>2]=c[a+56>>2];am(4467,e);l=b;return}function Nh(a,b){a=a|0;b=b|0;var c=0,d=0;c=a+68|0;g[c>>2]=+g[c>>2]-+g[b>>2];c=b+4|0;d=a+72|0;g[d>>2]=+g[d>>2]-+g[c>>2];d=a+76|0;g[d>>2]=+g[d>>2]-+g[b>>2];b=a+80|0;g[b>>2]=+g[b>>2]-+g[c>>2];return}function Oh(a){a=a|0;fn(a);return}function Ph(b,d){b=b|0;d=d|0;var e=0,f=0,h=0,i=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,x=0,y=0,z=0,A=0.0,B=0.0,D=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,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;e=c[b+48>>2]|0;f=c[e+8>>2]|0;h=b+120|0;c[h>>2]=f;i=c[b+52>>2]|0;k=c[i+8>>2]|0;l=b+124|0;c[l>>2]=k;m=e+44|0;n=c[m>>2]|0;o=c[m+4>>2]|0;m=b+160|0;c[m>>2]=n;c[m+4>>2]=o;m=i+44|0;p=c[m>>2]|0;q=c[m+4>>2]|0;m=b+168|0;c[m>>2]=p;c[m+4>>2]=q;m=b+176|0;c[m>>2]=c[e+136>>2];r=b+180|0;c[r>>2]=c[i+136>>2];s=b+184|0;c[s>>2]=c[e+144>>2];e=b+188|0;c[e>>2]=c[i+144>>2];i=c[d+28>>2]|0;t=+g[i+(f*12|0)>>2];u=+g[i+(f*12|0)+4>>2];v=+g[i+(f*12|0)+8>>2];w=d+32|0;x=c[w>>2]|0;y=c[x+(f*12|0)>>2]|0;z=c[x+(f*12|0)+4>>2]|0;A=+g[x+(f*12|0)+8>>2];B=+g[i+(k*12|0)>>2];D=+g[i+(k*12|0)+4>>2];G=+g[i+(k*12|0)+8>>2];i=c[x+(k*12|0)>>2]|0;f=c[x+(k*12|0)+4>>2]|0;H=+g[x+(k*12|0)+8>>2];I=+F(+v);J=+E(+v);v=+F(+G);K=+E(+G);G=+g[b+92>>2]-(c[j>>2]=n,+g[j>>2]);L=+g[b+96>>2]-(c[j>>2]=o,+g[j>>2]);M=J*G-I*L;N=I*G+J*L;g[b+144>>2]=M;g[b+148>>2]=N;L=+g[b+100>>2]-(c[j>>2]=p,+g[j>>2]);J=+g[b+104>>2]-(c[j>>2]=q,+g[j>>2]);G=K*L-v*J;I=v*L+K*J;g[b+152>>2]=G;g[b+156>>2]=I;J=t+M-+g[b+68>>2];t=u+N-+g[b+72>>2];q=b+128|0;g[q>>2]=J;p=b+132|0;g[p>>2]=t;u=B+G-+g[b+76>>2];B=D+I-+g[b+80>>2];o=b+136|0;g[o>>2]=u;n=b+140|0;g[n>>2]=B;D=+C(+(J*J+t*t));K=+C(+(u*u+B*B));if(D>.04999999701976776){L=1.0/D;D=J*L;g[q>>2]=D;O=L*t;P=D}else{g[q>>2]=0.0;O=0.0;P=0.0}g[p>>2]=O;if(K>.04999999701976776){D=1.0/K;K=D*u;g[o>>2]=K;Q=D*B;R=K}else{g[o>>2]=0.0;Q=0.0;R=0.0}g[n>>2]=Q;K=M*O-N*P;B=G*Q-I*R;D=+g[m>>2];u=+g[s>>2];t=+g[r>>2];L=+g[e>>2];J=+g[b+112>>2];v=D+K*(K*u)+J*J*(t+B*(B*L));g[b+192>>2]=v>0.0?1.0/v:v;if(!(a[d+24>>0]|0)){g[b+116>>2]=0.0;S=A;T=H;U=i;V=y;W=f;X=z;Y=c[w>>2]|0;Z=c[h>>2]|0;_=Y+(Z*12|0)|0;c[_>>2]=V;$=Y+(Z*12|0)+4|0;c[$>>2]=X;aa=c[w>>2]|0;ba=c[h>>2]|0;ca=aa+(ba*12|0)+8|0;g[ca>>2]=S;da=c[l>>2]|0;ea=aa+(da*12|0)|0;c[ea>>2]=U;fa=aa+(da*12|0)+4|0;c[fa>>2]=W;ga=c[w>>2]|0;ha=c[l>>2]|0;ia=ga+(ha*12|0)+8|0;g[ia>>2]=T;return}else{e=b+116|0;v=+g[d+8>>2]*+g[e>>2];g[e>>2]=v;B=-v;K=P*B;P=O*B;B=-(v*J);J=R*B;R=Q*B;e=(g[j>>2]=(c[j>>2]=y,+g[j>>2])+K*D,c[j>>2]|0);y=(g[j>>2]=(c[j>>2]=z,+g[j>>2])+P*D,c[j>>2]|0);z=(g[j>>2]=(c[j>>2]=i,+g[j>>2])+J*t,c[j>>2]|0);S=A+u*(P*M-K*N);T=H+L*(R*G-J*I);U=z;V=e;W=(g[j>>2]=(c[j>>2]=f,+g[j>>2])+R*t,c[j>>2]|0);X=y;Y=c[w>>2]|0;Z=c[h>>2]|0;_=Y+(Z*12|0)|0;c[_>>2]=V;$=Y+(Z*12|0)+4|0;c[$>>2]=X;aa=c[w>>2]|0;ba=c[h>>2]|0;ca=aa+(ba*12|0)+8|0;g[ca>>2]=S;da=c[l>>2]|0;ea=aa+(da*12|0)|0;c[ea>>2]=U;fa=aa+(da*12|0)+4|0;c[fa>>2]=W;ga=c[w>>2]|0;ha=c[l>>2]|0;ia=ga+(ha*12|0)+8|0;g[ia>>2]=T;return}}function Qh(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.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;d=b+32|0;b=c[d>>2]|0;e=a+120|0;f=c[e>>2]|0;h=b+(f*12|0)|0;i=+g[h>>2];j=b+(f*12|0)+4|0;k=+g[j>>2];l=+g[b+(f*12|0)+8>>2];f=a+124|0;m=c[f>>2]|0;n=+g[b+(m*12|0)>>2];o=+g[b+(m*12|0)+4>>2];p=+g[b+(m*12|0)+8>>2];q=+g[a+148>>2];r=+g[a+144>>2];s=+g[a+156>>2];t=+g[a+152>>2];u=+g[a+128>>2];v=+g[a+132>>2];w=+g[a+112>>2];x=+g[a+136>>2];y=+g[a+140>>2];z=+g[a+192>>2]*(-((i-l*q)*u+(k+l*r)*v)-w*((n-p*s)*x+(o+p*t)*y));m=a+116|0;g[m>>2]=+g[m>>2]-z;A=u*z;u=v*z;v=z*w;w=x*v;x=v*y;y=+g[a+176>>2];v=l+ +g[a+184>>2]*(u*r-A*q);q=+g[a+180>>2];r=p+ +g[a+188>>2]*(x*t-w*s);g[h>>2]=i+A*y;g[j>>2]=k+u*y;j=c[d>>2]|0;g[j+((c[e>>2]|0)*12|0)+8>>2]=v;e=c[f>>2]|0;g[j+(e*12|0)>>2]=n+w*q;g[j+(e*12|0)+4>>2]=o+x*q;g[(c[d>>2]|0)+((c[f>>2]|0)*12|0)+8>>2]=r;return}function Rh(a,b){a=a|0;b=b|0;var d=0,e=0,f=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,A=0.0,B=0.0,D=0.0,G=0.0,H=0.0,I=0.0;d=b+28|0;b=c[d>>2]|0;e=a+120|0;f=c[e>>2]|0;h=+g[b+(f*12|0)>>2];i=+g[b+(f*12|0)+4>>2];j=+g[b+(f*12|0)+8>>2];f=a+124|0;k=c[f>>2]|0;l=+g[b+(k*12|0)>>2];m=+g[b+(k*12|0)+4>>2];n=+g[b+(k*12|0)+8>>2];o=+F(+j);p=+E(+j);q=+F(+n);r=+E(+n);s=+g[a+92>>2]-+g[a+160>>2];t=+g[a+96>>2]-+g[a+164>>2];u=p*s-o*t;v=o*s+p*t;t=+g[a+100>>2]-+g[a+168>>2];p=+g[a+104>>2]-+g[a+172>>2];s=r*t-q*p;o=q*t+r*p;p=h+u-+g[a+68>>2];r=i+v-+g[a+72>>2];t=l+s-+g[a+76>>2];q=m+o-+g[a+80>>2];w=+C(+(p*p+r*r));x=+C(+(t*t+q*q));k=w>.04999999701976776;y=1.0/w;z=k?p*y:0.0;p=k?r*y:0.0;k=x>.04999999701976776;y=1.0/x;r=k?t*y:0.0;t=k?q*y:0.0;y=u*p-v*z;q=s*t-o*r;A=+g[a+176>>2];B=+g[a+184>>2];D=+g[a+180>>2];G=+g[a+188>>2];H=+g[a+112>>2];I=A+y*(B*y)+H*H*(D+q*(G*q));q=+g[a+108>>2]-w-x*H;x=q*(I>0.0?1.0/I:I);I=z*x;z=p*x;p=H*x;x=r*p;r=t*p;a=c[d>>2]|0;k=c[e>>2]|0;g[a+(k*12|0)>>2]=h+A*I;g[a+(k*12|0)+4>>2]=i+A*z;k=c[d>>2]|0;g[k+((c[e>>2]|0)*12|0)+8>>2]=j+B*(u*z-v*I);e=c[f>>2]|0;g[k+(e*12|0)>>2]=l+D*x;g[k+(e*12|0)+4>>2]=m+D*r;g[(c[d>>2]|0)+((c[f>>2]|0)*12|0)+8>>2]=n+G*(s*r-o*x);return (q>0.0?q:-q)<.004999999888241291|0}function Sh(a,b,d,e,f,h,i,j){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;i=i|0;j=+j;var k=0,l=0,m=0,n=0.0,o=0.0,p=0.0,q=0.0;c[a+8>>2]=b;c[a+12>>2]=d;k=e;l=c[k+4>>2]|0;m=a+20|0;c[m>>2]=c[k>>2];c[m+4>>2]=l;l=f;m=c[l+4>>2]|0;k=a+28|0;c[k>>2]=c[l>>2];c[k+4>>2]=m;n=+g[h>>2]-+g[b+12>>2];m=h+4|0;o=+g[m>>2]-+g[b+16>>2];p=+g[b+24>>2];q=+g[b+20>>2];g[a+36>>2]=n*p+o*q;g[a+40>>2]=p*o-n*q;q=+g[i>>2]-+g[d+12>>2];b=i+4|0;n=+g[b>>2]-+g[d+16>>2];o=+g[d+24>>2];p=+g[d+20>>2];g[a+44>>2]=q*o+n*p;g[a+48>>2]=o*n-q*p;p=+g[h>>2]-+g[e>>2];q=+g[m>>2]-+g[e+4>>2];g[a+52>>2]=+C(+(p*p+q*q));q=+g[i>>2]-+g[f>>2];p=+g[b>>2]-+g[f+4>>2];g[a+56>>2]=+C(+(q*q+p*p));g[a+60>>2]=j;return}function Th(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0.0,i=0.0;ch(a,b);c[a>>2]=1592;d=b+20|0;e=c[d+4>>2]|0;f=a+68|0;c[f>>2]=c[d>>2];c[f+4>>2]=e;e=b+28|0;f=c[e+4>>2]|0;d=a+76|0;c[d>>2]=c[e>>2];c[d+4>>2]=f;f=b+36|0;d=c[f+4>>2]|0;e=a+92|0;c[e>>2]=c[f>>2];c[e+4>>2]=d;d=b+44|0;e=c[d+4>>2]|0;f=a+100|0;c[f>>2]=c[d>>2];c[f+4>>2]=e;e=c[b+52>>2]|0;c[a+84>>2]=e;f=c[b+56>>2]|0;c[a+88>>2]=f;h=+g[b+60>>2];g[a+112>>2]=h;i=(c[j>>2]=e,+g[j>>2]);g[a+108>>2]=i+h*(c[j>>2]=f,+g[j>>2]);g[a+116>>2]=0.0;return}function Uh(a,d,e,f){a=a|0;d=d|0;e=e|0;f=f|0;var h=0,i=0,j=0,k=0;h=l;l=l+48|0;i=h;j=c[(c[a+48>>2]|0)+12>>2]|0;c[i>>2]=816;c[i+4>>2]=1;g[i+8>>2]=.009999999776482582;k=i+28|0;c[k>>2]=0;c[k+4>>2]=0;c[k+8>>2]=0;c[k+12>>2]=0;b[k+16>>1]=0;ze(j,i,c[a+56>>2]|0);Ve(d,i,e,c[(c[a+52>>2]|0)+12>>2]|0,f);l=h;return}function Vh(a){a=a|0;return}function Wh(a){a=a|0;fn(a);return}function Xh(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0;g=Pl(f,148)|0;$h(g,a,b,d,e);c[g>>2]=1644;return g|0}function Yh(a,b){a=a|0;b=b|0;Pa[c[(c[a>>2]|0)+4>>2]&127](a);Ql(b,a,148);return}function Zh(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;if(!(a[9316]|0)){c[2131]=6;c[2132]=53;a[8532]=1;c[2155]=7;c[2156]=54;a[8628]=1;c[2137]=7;c[2138]=54;a[8556]=0;c[2161]=8;c[2162]=55;a[8652]=1;c[2143]=9;c[2144]=56;a[8580]=1;c[2134]=9;c[2135]=56;a[8544]=0;c[2149]=10;c[2150]=57;a[8604]=1;c[2158]=10;c[2159]=57;a[8640]=0;c[2167]=11;c[2168]=58;a[8676]=1;c[2140]=11;c[2141]=58;a[8568]=0;c[2173]=12;c[2174]=59;a[8700]=1;c[2164]=12;c[2165]=59;a[8664]=0;a[9316]=1}h=c[(c[b+12>>2]|0)+4>>2]|0;i=c[(c[e+12>>2]|0)+4>>2]|0;j=c[8524+(h*48|0)+(i*12|0)>>2]|0;if(!j){k=0;return k|0}if(!(a[8524+(h*48|0)+(i*12|0)+8>>0]|0)){k=Za[j&15](e,f,b,d,g)|0;return k|0}else{k=Za[j&15](b,d,e,f,g)|0;return k|0}return 0}function _h(d,f){d=d|0;f=f|0;var h=0,i=0,j=0,k=0,l=0;h=c[d+48>>2]|0;i=c[d+52>>2]|0;if(((c[d+124>>2]|0)>0?(a[h+38>>0]|0)==0:0)?(a[i+38>>0]|0)==0:0){j=c[h+8>>2]|0;k=j+4|0;l=e[k>>1]|0;if(!(l&2)){b[k>>1]=l|2;g[j+160>>2]=0.0}j=c[i+8>>2]|0;l=j+4|0;k=e[l>>1]|0;if(!(k&2)){b[l>>1]=k|2;g[j+160>>2]=0.0}}Ra[c[8524+((c[(c[h+12>>2]|0)+4>>2]|0)*48|0)+((c[(c[i+12>>2]|0)+4>>2]|0)*12|0)+4>>2]&63](d,f);return}function $h(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var h=0,i=0.0,j=0.0;c[a>>2]=1664;c[a+4>>2]=4;c[a+48>>2]=b;c[a+52>>2]=e;c[a+56>>2]=d;c[a+60>>2]=f;c[a+124>>2]=0;c[a+128>>2]=0;f=b+16|0;d=a+8|0;h=d+40|0;do{c[d>>2]=0;d=d+4|0}while((d|0)<(h|0));g[a+136>>2]=+C(+(+g[f>>2]*+g[e+16>>2]));i=+g[b+20>>2];j=+g[e+20>>2];g[a+140>>2]=i>j?i:j;g[a+144>>2]=0.0;return}function ai(a){a=a|0;fn(a);return}function bi(d,f){d=d|0;f=f|0;var h=0,i=0,j=0,k=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;h=l;l=l+64|0;i=h;j=d+64|0;k=i;m=j;n=k+64|0;do{c[k>>2]=c[m>>2];k=k+4|0;m=m+4|0}while((k|0)<(n|0));m=d+4|0;k=c[m>>2]|0;c[m>>2]=k|4;n=k&2;k=(n|0)==0;o=c[d+48>>2]|0;p=c[d+52>>2]|0;q=(a[p+38>>0]|a[o+38>>0])<<24>>24!=0;r=c[o+8>>2]|0;s=c[p+8>>2]|0;t=r+12|0;u=s+12|0;if(!q){_a[c[c[d>>2]>>2]&31](d,j,t,u);j=d+124|0;v=(c[j>>2]|0)>0;a:do if(v){w=c[i+60>>2]|0;if((w|0)>0)x=0;else{y=0;while(1){g[d+64+(y*20|0)+8>>2]=0.0;g[d+64+(y*20|0)+12>>2]=0.0;y=y+1|0;if((y|0)>=(c[j>>2]|0))break a}}do{y=d+64+(x*20|0)+8|0;g[y>>2]=0.0;z=d+64+(x*20|0)+12|0;g[z>>2]=0.0;A=c[d+64+(x*20|0)+16>>2]|0;B=0;while(1){if((c[i+(B*20|0)+16>>2]|0)==(A|0)){C=8;break}D=B+1|0;if((D|0)<(w|0))B=D;else break}if((C|0)==8){C=0;c[y>>2]=c[i+(B*20|0)+8>>2];c[z>>2]=c[i+(B*20|0)+12>>2]}x=x+1|0}while((x|0)<(c[j>>2]|0))}while(0);if((v&1|0)!=(n>>>1|0)){n=r+4|0;j=e[n>>1]|0;if(!(j&2)){b[n>>1]=j|2;g[r+160>>2]=0.0}r=s+4|0;j=e[r>>1]|0;if(!(j&2)){b[r>>1]=j|2;g[s+160>>2]=0.0;E=v}else E=v}else E=v}else{v=_e(c[o+12>>2]|0,c[d+56>>2]|0,c[p+12>>2]|0,c[d+60>>2]|0,t,u)|0;c[d+124>>2]=0;E=v}v=c[m>>2]|0;c[m>>2]=E?v|2:v&-3;v=(f|0)!=0;m=v&E;if(k&m)Ra[c[(c[f>>2]|0)+8>>2]&63](f,d);if(v&(E^1)&(k^1))Ra[c[(c[f>>2]|0)+12>>2]&63](f,d);if(!(m&(q^1))){l=h;return}Ta[c[(c[f>>2]|0)+32>>2]&7](f,d,i);l=h;return}function ci(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;Ie(b,c[(c[a+48>>2]|0)+12>>2]|0,d,c[(c[a+52>>2]|0)+12>>2]|0,e);return}function di(a){a=a|0;fn(a);return}function ei(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;e=Pl(f,148)|0;$h(e,a,0,d,0);c[e>>2]=1684;return e|0}function fi(a,b){a=a|0;b=b|0;Pa[c[(c[a>>2]|0)+4>>2]&127](a);Ql(b,a,148);return}function gi(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;He(b,c[(c[a+48>>2]|0)+12>>2]|0,d,c[(c[a+52>>2]|0)+12>>2]|0,e);return}function hi(a){a=a|0;fn(a);return}function ii(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;e=Pl(f,148)|0;$h(e,a,0,d,0);c[e>>2]=1704;return e|0}function ji(a,b){a=a|0;b=b|0;Pa[c[(c[a>>2]|0)+4>>2]&127](a);Ql(b,a,148);return}function ki(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.0,A=0.0,B=0.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[b+16>>2]=c[d+16>>2];c[b+20>>2]=c[d+20>>2];c[b+24>>2]=c[d+24>>2];e=c[d+44>>2]|0;f=b+36|0;c[f>>2]=e;h=c[d+32>>2]|0;i=b+52|0;c[i>>2]=h;j=b+40|0;c[j>>2]=hm(e,h*88|0)|0;h=hm(c[f>>2]|0,(c[i>>2]|0)*156|0)|0;f=b+44|0;c[f>>2]=h;c[b+28>>2]=c[d+36>>2];c[b+32>>2]=c[d+40>>2];e=c[d+28>>2]|0;d=b+48|0;c[d>>2]=e;if((c[i>>2]|0)<=0)return;k=b+24|0;l=b+8|0;b=0;m=e;e=h;while(1){h=c[m+(b<<2)>>2]|0;n=c[h+48>>2]|0;o=c[h+52>>2]|0;p=c[(c[n+12>>2]|0)+8>>2]|0;q=c[(c[o+12>>2]|0)+8>>2]|0;r=c[n+8>>2]|0;n=c[o+8>>2]|0;o=c[h+124>>2]|0;c[e+(b*156|0)+136>>2]=c[h+136>>2];c[e+(b*156|0)+140>>2]=c[h+140>>2];c[e+(b*156|0)+144>>2]=c[h+144>>2];s=r+8|0;c[e+(b*156|0)+112>>2]=c[s>>2];t=n+8|0;c[e+(b*156|0)+116>>2]=c[t>>2];u=r+136|0;c[e+(b*156|0)+120>>2]=c[u>>2];v=n+136|0;c[e+(b*156|0)+124>>2]=c[v>>2];w=r+144|0;c[e+(b*156|0)+128>>2]=c[w>>2];x=n+144|0;c[e+(b*156|0)+132>>2]=c[x>>2];c[e+(b*156|0)+152>>2]=b;c[e+(b*156|0)+148>>2]=o;y=e+(b*156|0)+80|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[y+20>>2]=0;c[y+24>>2]=0;c[y+28>>2]=0;y=c[j>>2]|0;c[y+(b*88|0)+32>>2]=c[s>>2];c[y+(b*88|0)+36>>2]=c[t>>2];c[y+(b*88|0)+40>>2]=c[u>>2];c[y+(b*88|0)+44>>2]=c[v>>2];v=r+44|0;r=c[v+4>>2]|0;u=y+(b*88|0)+48|0;c[u>>2]=c[v>>2];c[u+4>>2]=r;r=n+44|0;n=c[r+4>>2]|0;u=y+(b*88|0)+56|0;c[u>>2]=c[r>>2];c[u+4>>2]=n;c[y+(b*88|0)+64>>2]=c[w>>2];c[y+(b*88|0)+68>>2]=c[x>>2];x=h+104|0;w=c[x+4>>2]|0;n=y+(b*88|0)+16|0;c[n>>2]=c[x>>2];c[n+4>>2]=w;w=h+112|0;n=c[w+4>>2]|0;x=y+(b*88|0)+24|0;c[x>>2]=c[w>>2];c[x+4>>2]=n;c[y+(b*88|0)+84>>2]=o;c[y+(b*88|0)+76>>2]=p;c[y+(b*88|0)+80>>2]=q;c[y+(b*88|0)+72>>2]=c[h+120>>2];if((o|0)>0){q=0;do{if(!(a[k>>0]|0)){z=0.0;A=0.0}else{B=+g[l>>2];z=B*+g[h+64+(q*20|0)+12>>2];A=B*+g[h+64+(q*20|0)+8>>2]}g[e+(b*156|0)+(q*36|0)+16>>2]=A;g[e+(b*156|0)+(q*36|0)+20>>2]=z;p=e+(b*156|0)+(q*36|0)|0;g[e+(b*156|0)+(q*36|0)+24>>2]=0.0;g[e+(b*156|0)+(q*36|0)+28>>2]=0.0;g[e+(b*156|0)+(q*36|0)+32>>2]=0.0;c[p>>2]=0;c[p+4>>2]=0;c[p+8>>2]=0;c[p+12>>2]=0;p=h+64+(q*20|0)|0;n=c[p+4>>2]|0;x=y+(b*88|0)+(q<<3)|0;c[x>>2]=c[p>>2];c[x+4>>2]=n;q=q+1|0}while((q|0)!=(o|0))}o=b+1|0;if((o|0)>=(c[i>>2]|0))break;b=o;m=c[d>>2]|0;e=c[f>>2]|0}return}function li(a){a=a|0;var b=0;b=a+36|0;jm(c[b>>2]|0,c[a+44>>2]|0);jm(c[b>>2]|0,c[a+40>>2]|0);return}function mi(a){a=a|0;var b=0,d=0,e=0,f=0,h=0,i=0,j=0,k=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,A=0,B=0.0,C=0.0,D=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.0,Y=0.0,Z=0.0,_=0.0,$=0,aa=0,ba=0;b=l;l=l+64|0;d=b+48|0;e=b+32|0;f=b;h=a+52|0;if((c[h>>2]|0)<=0){l=b;return}i=a+44|0;j=a+40|0;k=a+48|0;m=a+28|0;n=a+32|0;a=d+8|0;o=d+12|0;p=e+8|0;q=e+12|0;r=d+4|0;s=e+4|0;t=0;do{u=c[i>>2]|0;v=c[j>>2]|0;w=+g[v+(t*88|0)+76>>2];x=+g[v+(t*88|0)+80>>2];y=(c[(c[k>>2]|0)+(c[u+(t*156|0)+152>>2]<<2)>>2]|0)+64|0;z=c[u+(t*156|0)+112>>2]|0;A=c[u+(t*156|0)+116>>2]|0;B=+g[u+(t*156|0)+120>>2];C=+g[u+(t*156|0)+124>>2];D=+g[u+(t*156|0)+128>>2];G=+g[u+(t*156|0)+132>>2];H=+g[v+(t*88|0)+48>>2];I=+g[v+(t*88|0)+52>>2];J=+g[v+(t*88|0)+56>>2];K=+g[v+(t*88|0)+60>>2];v=c[m>>2]|0;L=+g[v+(z*12|0)>>2];M=+g[v+(z*12|0)+4>>2];N=+g[v+(z*12|0)+8>>2];O=c[n>>2]|0;P=+g[O+(z*12|0)>>2];Q=+g[O+(z*12|0)+4>>2];R=+g[O+(z*12|0)+8>>2];S=+g[v+(A*12|0)>>2];T=+g[v+(A*12|0)+4>>2];U=+g[v+(A*12|0)+8>>2];V=+g[O+(A*12|0)>>2];W=+g[O+(A*12|0)+4>>2];X=+g[O+(A*12|0)+8>>2];Y=+F(+N);g[a>>2]=Y;Z=+E(+N);g[o>>2]=Z;N=+F(+U);g[p>>2]=N;_=+E(+U);g[q>>2]=_;g[d>>2]=L-(H*Z-I*Y);g[r>>2]=M-(I*Z+H*Y);g[e>>2]=S-(J*_-K*N);g[s>>2]=T-(K*_+J*N);Ye(f,y,d,w,e,x);y=u+(t*156|0)+72|0;A=f;O=c[A+4>>2]|0;v=y;c[v>>2]=c[A>>2];c[v+4>>2]=O;O=u+(t*156|0)+148|0;v=c[O>>2]|0;do if((v|0)>0){A=u+(t*156|0)+76|0;x=B+C;z=u+(t*156|0)+140|0;$=0;do{aa=f+8+($<<3)|0;w=+g[aa>>2]-L;ba=f+8+($<<3)+4|0;N=+g[ba>>2]-M;g[u+(t*156|0)+($*36|0)>>2]=w;g[u+(t*156|0)+($*36|0)+4>>2]=N;J=+g[aa>>2]-S;_=+g[ba>>2]-T;g[u+(t*156|0)+($*36|0)+8>>2]=J;g[u+(t*156|0)+($*36|0)+12>>2]=_;K=+g[A>>2];Y=+g[y>>2];H=w*K-N*Y;Z=K*J-Y*_;Y=x+H*(D*H)+Z*(G*Z);g[u+(t*156|0)+($*36|0)+24>>2]=Y>0.0?1.0/Y:0.0;Y=+g[A>>2];Z=-+g[y>>2];H=w*Z-Y*N;K=J*Z-Y*_;Y=x+H*(D*H)+K*(G*K);g[u+(t*156|0)+($*36|0)+28>>2]=Y>0.0?1.0/Y:0.0;ba=u+(t*156|0)+($*36|0)+32|0;g[ba>>2]=0.0;Y=+g[y>>2]*(V-X*_-P+R*N)+ +g[A>>2]*(W+X*J-Q-R*w);if(Y<-1.0)g[ba>>2]=-(Y*+g[z>>2]);$=$+1|0}while(($|0)!=(v|0));if((c[O>>2]|0)==2){x=+g[u+(t*156|0)+76>>2];Y=+g[y>>2];w=+g[u+(t*156|0)>>2]*x-+g[u+(t*156|0)+4>>2]*Y;J=x*+g[u+(t*156|0)+8>>2]-Y*+g[u+(t*156|0)+12>>2];N=x*+g[u+(t*156|0)+36>>2]-Y*+g[u+(t*156|0)+40>>2];_=x*+g[u+(t*156|0)+44>>2]-Y*+g[u+(t*156|0)+48>>2];Y=B+C;x=D*w;K=G*J;H=Y+w*x+J*K;J=Y+N*(D*N)+_*(G*_);w=Y+x*N+K*_;_=H*J-w*w;if(H*H<_*1.0e3){g[u+(t*156|0)+96>>2]=H;g[u+(t*156|0)+100>>2]=w;g[u+(t*156|0)+104>>2]=w;g[u+(t*156|0)+108>>2]=J;K=_!=0.0?1.0/_:_;_=-(K*w);g[u+(t*156|0)+80>>2]=J*K;g[u+(t*156|0)+84>>2]=_;g[u+(t*156|0)+88>>2]=_;g[u+(t*156|0)+92>>2]=H*K;break}else{c[O>>2]=1;break}}}while(0);t=t+1|0}while((t|0)<(c[h>>2]|0));l=b;return}function ni(a){a=a|0;var b=0,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,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,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;b=a+52|0;if((c[b>>2]|0)<=0)return;d=a+44|0;e=a+32|0;a=0;f=c[e>>2]|0;do{h=c[d>>2]|0;i=c[h+(a*156|0)+112>>2]|0;j=c[h+(a*156|0)+116>>2]|0;k=+g[h+(a*156|0)+120>>2];l=+g[h+(a*156|0)+128>>2];m=+g[h+(a*156|0)+124>>2];n=+g[h+(a*156|0)+132>>2];o=c[h+(a*156|0)+148>>2]|0;p=f+(i*12|0)|0;q=+g[p>>2];r=f+(i*12|0)+4|0;s=+g[r>>2];t=+g[f+(i*12|0)+8>>2];u=+g[f+(j*12|0)>>2];v=+g[f+(j*12|0)+4>>2];w=+g[f+(j*12|0)+8>>2];x=+g[h+(a*156|0)+72>>2];y=+g[h+(a*156|0)+76>>2];if((o|0)>0){z=0;A=w;B=t;C=q;D=s;E=u;F=v;while(1){G=+g[h+(a*156|0)+(z*36|0)+16>>2];H=+g[h+(a*156|0)+(z*36|0)+20>>2];I=x*G+y*H;J=y*G-x*H;H=B-l*(+g[h+(a*156|0)+(z*36|0)>>2]*J-+g[h+(a*156|0)+(z*36|0)+4>>2]*I);G=C-k*I;K=D-k*J;L=A+n*(J*+g[h+(a*156|0)+(z*36|0)+8>>2]-I*+g[h+(a*156|0)+(z*36|0)+12>>2]);M=E+m*I;I=F+m*J;z=z+1|0;if((z|0)==(o|0)){N=L;O=H;P=K;Q=G;R=I;S=M;break}else{A=L;B=H;C=G;D=K;E=M;F=I}}}else{N=w;O=t;P=s;Q=q;R=v;S=u}g[p>>2]=Q;g[r>>2]=P;o=c[e>>2]|0;g[o+(i*12|0)+8>>2]=O;g[o+(j*12|0)>>2]=S;g[o+(j*12|0)+4>>2]=R;f=c[e>>2]|0;g[f+(j*12|0)+8>>2]=N;a=a+1|0}while((a|0)<(c[b>>2]|0));return}function oi(a){a=a|0;var b=0,d=0,e=0,f=0,h=0,i=0,k=0,l=0,m=0.0,n=0.0,o=0.0,p=0.0,q=0,r=0,s=0,t=0,u=0.0,v=0,w=0,x=0.0,y=0.0,z=0,A=0.0,B=0,C=0.0,D=0.0,E=0.0,F=0.0,G=0.0,H=0.0,I=0,J=0.0,K=0.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.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,ka=0,la=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.0,ya=0.0,za=0.0,Aa=0.0,Ba=0.0,Ca=0.0,Da=0.0,Ea=0,Fa=0;b=a+52|0;if((c[b>>2]|0)<=0)return;d=a+44|0;e=a+32|0;a=0;f=c[e>>2]|0;do{h=c[d>>2]|0;i=h+(a*156|0)|0;k=c[h+(a*156|0)+112>>2]|0;l=c[h+(a*156|0)+116>>2]|0;m=+g[h+(a*156|0)+120>>2];n=+g[h+(a*156|0)+128>>2];o=+g[h+(a*156|0)+124>>2];p=+g[h+(a*156|0)+132>>2];q=h+(a*156|0)+148|0;r=c[q>>2]|0;s=f+(k*12|0)|0;t=c[s>>2]|0;u=(c[j>>2]=t,+g[j>>2]);v=f+(k*12|0)+4|0;w=c[v>>2]|0;x=(c[j>>2]=w,+g[j>>2]);y=+g[f+(k*12|0)+8>>2];z=c[f+(l*12|0)>>2]|0;A=(c[j>>2]=z,+g[j>>2]);B=c[f+(l*12|0)+4>>2]|0;C=(c[j>>2]=B,+g[j>>2]);D=+g[f+(l*12|0)+8>>2];E=+g[h+(a*156|0)+72>>2];F=+g[h+(a*156|0)+76>>2];G=-E;H=+g[h+(a*156|0)+136>>2];if((r|0)>0){I=h+(a*156|0)+144|0;J=y;K=D;L=0;M=z;N=t;O=B;P=w;do{Q=+g[h+(a*156|0)+(L*36|0)+12>>2];R=+g[h+(a*156|0)+(L*36|0)+8>>2];S=(c[j>>2]=M,+g[j>>2]);T=(c[j>>2]=O,+g[j>>2]);U=(c[j>>2]=N,+g[j>>2]);V=(c[j>>2]=P,+g[j>>2]);W=+g[h+(a*156|0)+(L*36|0)+4>>2];X=+g[h+(a*156|0)+(L*36|0)>>2];Y=H*+g[h+(a*156|0)+(L*36|0)+16>>2];Z=h+(a*156|0)+(L*36|0)+20|0;_=+g[Z>>2];$=_-+g[h+(a*156|0)+(L*36|0)+28>>2]*(F*(S-K*Q-U+J*W)+(T+K*R-V-J*X)*G-+g[I>>2]);aa=-Y;ba=$>2]=Y;Y=F*ba;_=ba*G;ca=U-m*Y;N=(g[j>>2]=ca,c[j>>2]|0);da=V-m*_;P=(g[j>>2]=da,c[j>>2]|0);J=J-n*(X*_-W*Y);ea=S+o*Y;M=(g[j>>2]=ea,c[j>>2]|0);fa=T+o*_;O=(g[j>>2]=fa,c[j>>2]|0);K=K+p*(R*_-Q*Y);L=L+1|0}while((L|0)!=(r|0));if((c[q>>2]|0)==1){G=+g[h+(a*156|0)+12>>2];H=+g[h+(a*156|0)+8>>2];Y=+g[h+(a*156|0)+4>>2];Q=+g[i>>2];r=h+(a*156|0)+16|0;_=+g[r>>2];R=_-+g[h+(a*156|0)+24>>2]*(E*(ea-K*G-ca+J*Y)+F*(fa+K*H-da-J*Q)-+g[h+(a*156|0)+32>>2]);T=R>0.0?R:0.0;R=T-_;g[r>>2]=T;T=E*R;_=F*R;r=(g[j>>2]=ca-m*T,c[j>>2]|0);L=(g[j>>2]=da-m*_,c[j>>2]|0);I=(g[j>>2]=ea+o*T,c[j>>2]|0);ga=J-n*(Q*_-Y*T);ha=K+p*(H*_-G*T);ia=I;ja=r;ka=(g[j>>2]=fa+o*_,c[j>>2]|0);la=L}else{ma=J;na=K;oa=ca;pa=fa;qa=ea;ra=da;sa=M;ta=N;ua=O;va=P;wa=9}}else{ma=y;na=D;oa=u;pa=C;qa=A;ra=x;sa=z;ta=t;ua=B;va=w;wa=9}do if((wa|0)==9){wa=0;L=h+(a*156|0)+16|0;_=+g[L>>2];r=h+(a*156|0)+52|0;T=+g[r>>2];G=+g[h+(a*156|0)+12>>2];H=+g[h+(a*156|0)+8>>2];Y=+g[h+(a*156|0)+4>>2];Q=+g[i>>2];R=+g[h+(a*156|0)+48>>2];S=+g[h+(a*156|0)+44>>2];W=+g[h+(a*156|0)+40>>2];X=+g[h+(a*156|0)+36>>2];V=+g[h+(a*156|0)+104>>2];U=+g[h+(a*156|0)+100>>2];ba=E*(qa-na*G-oa+ma*Y)+F*(pa+na*H-ra-ma*Q)-+g[h+(a*156|0)+32>>2]-(_*+g[h+(a*156|0)+96>>2]+T*V);aa=E*(qa-na*R-oa+ma*W)+F*(pa+na*S-ra-ma*X)-+g[h+(a*156|0)+68>>2]-(_*U+T*+g[h+(a*156|0)+108>>2]);$=+g[h+(a*156|0)+80>>2]*ba+ +g[h+(a*156|0)+88>>2]*aa;xa=ba*+g[h+(a*156|0)+84>>2]+aa*+g[h+(a*156|0)+92>>2];ya=-$;za=-xa;if(!(!($<=-0.0)|!(xa<=-0.0))){xa=ya-_;$=za-T;Aa=E*xa;Ba=F*xa;xa=E*$;Ca=F*$;$=Aa+xa;Da=Ba+Ca;I=(g[j>>2]=oa-m*$,c[j>>2]|0);Z=(g[j>>2]=ra-m*Da,c[j>>2]|0);Ea=(g[j>>2]=qa+o*$,c[j>>2]|0);Fa=(g[j>>2]=pa+o*Da,c[j>>2]|0);g[L>>2]=ya;g[r>>2]=za;ga=ma-n*(Q*Ba-Y*Aa+(X*Ca-W*xa));ha=na+p*(H*Ba-G*Aa+(S*Ca-R*xa));ia=Ea;ja=I;ka=Fa;la=Z;break}xa=ba*+g[h+(a*156|0)+24>>2];Ca=-xa;if(xa<=-0.0&aa+U*Ca>=0.0){U=Ca-_;xa=0.0-T;Aa=E*U;Ba=F*U;U=E*xa;za=F*xa;xa=U+Aa;ya=za+Ba;Z=(g[j>>2]=oa-m*xa,c[j>>2]|0);Fa=(g[j>>2]=ra-m*ya,c[j>>2]|0);I=(g[j>>2]=qa+o*xa,c[j>>2]|0);Ea=(g[j>>2]=pa+o*ya,c[j>>2]|0);g[L>>2]=Ca;c[r>>2]=0;ga=ma-n*(Ba*Q-Aa*Y+(za*X-U*W));ha=na+p*(Ba*H-Aa*G+(za*S-U*R));ia=I;ja=Z;ka=Ea;la=Fa;break}U=aa*+g[h+(a*156|0)+60>>2];za=-U;if(U<=-0.0&ba+V*za>=0.0){V=0.0-_;U=za-T;Aa=E*V;Ba=F*V;V=E*U;Ca=F*U;U=Aa+V;ya=Ba+Ca;Fa=(g[j>>2]=oa-m*U,c[j>>2]|0);Ea=(g[j>>2]=ra-m*ya,c[j>>2]|0);Z=(g[j>>2]=qa+o*U,c[j>>2]|0);I=(g[j>>2]=pa+o*ya,c[j>>2]|0);c[L>>2]=0;g[r>>2]=za;ga=ma-n*(Ba*Q-Aa*Y+(Ca*X-V*W));ha=na+p*(Ba*H-Aa*G+(Ca*S-V*R));ia=Z;ja=Fa;ka=I;la=Ea;break}if(ba>=0.0&aa>=0.0){aa=0.0-_;_=0.0-T;T=E*aa;ba=F*aa;aa=E*_;V=F*_;_=T+aa;Ca=ba+V;Ea=(g[j>>2]=oa-m*_,c[j>>2]|0);I=(g[j>>2]=ra-m*Ca,c[j>>2]|0);Fa=(g[j>>2]=qa+o*_,c[j>>2]|0);Z=(g[j>>2]=pa+o*Ca,c[j>>2]|0);c[L>>2]=0;c[r>>2]=0;ga=ma-n*(ba*Q-T*Y+(V*X-aa*W));ha=na+p*(ba*H-T*G+(V*S-aa*R));ia=Fa;ja=Ea;ka=Z;la=I}else{ga=ma;ha=na;ia=sa;ja=ta;ka=ua;la=va}}while(0);c[s>>2]=ja;c[v>>2]=la;h=c[e>>2]|0;g[h+(k*12|0)+8>>2]=ga;c[h+(l*12|0)>>2]=ia;c[h+(l*12|0)+4>>2]=ka;f=c[e>>2]|0;g[f+(l*12|0)+8>>2]=ha;a=a+1|0}while((a|0)<(c[b>>2]|0));return}function pi(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;b=c[a+52>>2]|0;if((b|0)<=0)return;d=c[a+44>>2]|0;e=c[a+48>>2]|0;a=0;do{f=c[e+(c[d+(a*156|0)+152>>2]<<2)>>2]|0;g=c[d+(a*156|0)+148>>2]|0;if((g|0)>0){h=0;do{c[f+64+(h*20|0)+8>>2]=c[d+(a*156|0)+(h*36|0)+16>>2];c[f+64+(h*20|0)+12>>2]=c[d+(a*156|0)+(h*36|0)+20>>2];h=h+1|0}while((h|0)<(g|0))}a=a+1|0}while((a|0)<(b|0));return}function qi(a){a=a|0;var b=0,d=0,e=0,f=0,h=0,i=0.0,j=0,k=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,z=0,A=0,B=0,C=0,D=0.0,G=0.0,H=0.0,I=0.0,J=0.0,K=0.0,L=0.0,M=0.0,N=0,O=0.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;b=l;l=l+64|0;d=b+40|0;e=b+24|0;f=b;h=a+52|0;if((c[h>>2]|0)<=0){i=0.0;j=i>=-.014999999664723873;l=b;return j|0}k=a+40|0;m=a+28|0;a=d+8|0;n=d+12|0;o=e+8|0;p=e+12|0;q=d+4|0;r=e+4|0;s=f+4|0;t=f+8|0;u=f+12|0;v=f+16|0;w=0.0;x=0;y=c[m>>2]|0;while(1){z=c[k>>2]|0;A=z+(x*88|0)|0;B=c[z+(x*88|0)+32>>2]|0;C=c[z+(x*88|0)+36>>2]|0;D=+g[z+(x*88|0)+48>>2];G=+g[z+(x*88|0)+52>>2];H=+g[z+(x*88|0)+40>>2];I=+g[z+(x*88|0)+64>>2];J=+g[z+(x*88|0)+56>>2];K=+g[z+(x*88|0)+60>>2];L=+g[z+(x*88|0)+44>>2];M=+g[z+(x*88|0)+68>>2];N=c[z+(x*88|0)+84>>2]|0;O=+g[y+(B*12|0)>>2];P=+g[y+(B*12|0)+4>>2];Q=+g[y+(B*12|0)+8>>2];R=+g[y+(C*12|0)>>2];S=+g[y+(C*12|0)+4>>2];T=+g[y+(C*12|0)+8>>2];if((N|0)>0){U=H+L;V=Q;W=T;z=0;X=w;Y=O;Z=P;_=R;$=S;do{aa=+F(+V);g[a>>2]=aa;ba=+E(+V);g[n>>2]=ba;ca=+F(+W);g[o>>2]=ca;da=+E(+W);g[p>>2]=da;g[d>>2]=Y-(D*ba-G*aa);g[q>>2]=Z-(G*ba+D*aa);g[e>>2]=_-(J*da-K*ca);g[r>>2]=$-(K*da+J*ca);ri(f,A,d,e,z);ca=+g[f>>2];da=+g[s>>2];aa=+g[t>>2];ba=+g[u>>2];ea=+g[v>>2];fa=aa-Y;ga=ba-Z;ha=aa-_;aa=ba-$;X=X0.0?-(ea<-.20000000298023224?-.20000000298023224:ea)/ja:0.0;ja=ca*ba;ca=da*ba;Y=Y-H*ja;Z=Z-H*ca;V=V-I*(fa*ca-ga*ja);_=_+L*ja;$=$+L*ca;W=W+M*(ha*ca-aa*ja);z=z+1|0}while((z|0)!=(N|0));ka=V;la=W;ma=X;na=Z;oa=Y;pa=$;qa=_;ra=c[m>>2]|0}else{ka=Q;la=T;ma=w;na=P;oa=O;pa=S;qa=R;ra=y}g[ra+(B*12|0)>>2]=oa;g[ra+(B*12|0)+4>>2]=na;N=c[m>>2]|0;g[N+(B*12|0)+8>>2]=ka;g[N+(C*12|0)>>2]=qa;g[N+(C*12|0)+4>>2]=pa;y=c[m>>2]|0;g[y+(C*12|0)+8>>2]=la;x=x+1|0;if((x|0)>=(c[h>>2]|0)){i=ma;break}else w=ma}j=i>=-.014999999664723873;l=b;return j|0}function ri(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var 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.0,r=0.0,s=0.0,t=0,u=0.0,v=0;switch(c[b+72>>2]|0){case 0:{h=+g[d+12>>2];i=+g[b+24>>2];j=+g[d+8>>2];k=+g[b+28>>2];l=+g[d>>2]+(h*i-j*k);m=i*j+h*k+ +g[d+4>>2];k=+g[e+12>>2];h=+g[b>>2];j=+g[e+8>>2];i=+g[b+4>>2];n=+g[e>>2]+(k*h-j*i);o=h*j+k*i+ +g[e+4>>2];i=n-l;k=o-m;g[a>>2]=i;p=a+4|0;g[p>>2]=k;j=+C(+(i*i+k*k));h=1.0/j;if(j<1.1920928955078125e-07){q=i;r=k}else{j=k*h;s=i*h;g[a>>2]=s;g[p>>2]=j;q=s;r=j}g[a+8>>2]=(l+n)*.5;g[a+12>>2]=(m+o)*.5;g[a+16>>2]=i*q+k*r-+g[b+76>>2]-+g[b+80>>2];return}case 1:{p=d+12|0;r=+g[p>>2];k=+g[b+16>>2];t=d+8|0;q=+g[t>>2];i=+g[b+20>>2];o=r*k-q*i;m=k*q+r*i;g[a>>2]=o;g[a+4>>2]=m;i=+g[p>>2];r=+g[b+24>>2];q=+g[t>>2];k=+g[b+28>>2];n=+g[e+12>>2];l=+g[b+(f<<3)>>2];j=+g[e+8>>2];s=+g[b+(f<<3)+4>>2];h=+g[e>>2]+(n*l-j*s);u=l*j+n*s+ +g[e+4>>2];g[a+16>>2]=o*(h-(+g[d>>2]+(i*r-q*k)))+(u-(r*q+i*k+ +g[d+4>>2]))*m-+g[b+76>>2]-+g[b+80>>2];g[a+8>>2]=h;g[a+12>>2]=u;return}case 2:{t=e+12|0;u=+g[t>>2];h=+g[b+16>>2];p=e+8|0;m=+g[p>>2];k=+g[b+20>>2];i=u*h-m*k;q=h*m+u*k;g[a>>2]=i;v=a+4|0;g[v>>2]=q;k=+g[t>>2];u=+g[b+24>>2];m=+g[p>>2];h=+g[b+28>>2];r=+g[d+12>>2];o=+g[b+(f<<3)>>2];s=+g[d+8>>2];n=+g[b+(f<<3)+4>>2];j=+g[d>>2]+(r*o-s*n);l=o*s+r*n+ +g[d+4>>2];g[a+16>>2]=i*(j-(+g[e>>2]+(k*u-m*h)))+(l-(u*m+k*h+ +g[e+4>>2]))*q-+g[b+76>>2]-+g[b+80>>2];g[a+8>>2]=j;g[a+12>>2]=l;g[a>>2]=-i;g[v>>2]=-q;return}default:{g[a+16>>2]=0.0;v=8716;b=c[v+4>>2]|0;e=a;c[e>>2]=c[v>>2];c[e+4>>2]=b;b=8716;e=c[b+4>>2]|0;v=a+8|0;c[v>>2]=c[b>>2];c[v+4>>2]=e;return}}}function si(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,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,B=0,C=0,D=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,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;e=l;l=l+64|0;f=e+40|0;h=e+24|0;i=e;j=a+52|0;if((c[j>>2]|0)<=0){k=0.0;m=k>=-.007499999832361937;l=e;return m|0}n=a+40|0;o=a+28|0;a=f+8|0;p=f+12|0;q=h+8|0;r=h+12|0;s=f+4|0;t=h+4|0;u=i+4|0;v=i+8|0;w=i+12|0;x=i+16|0;y=0.0;z=0;while(1){A=c[n>>2]|0;B=A+(z*88|0)|0;C=c[A+(z*88|0)+32>>2]|0;D=c[A+(z*88|0)+36>>2]|0;G=+g[A+(z*88|0)+48>>2];H=+g[A+(z*88|0)+52>>2];I=+g[A+(z*88|0)+56>>2];J=+g[A+(z*88|0)+60>>2];K=c[A+(z*88|0)+84>>2]|0;if((C|0)==(b|0)|(C|0)==(d|0)){L=+g[A+(z*88|0)+40>>2];M=+g[A+(z*88|0)+64>>2]}else{L=0.0;M=0.0}if((D|0)==(b|0)|(D|0)==(d|0)){N=+g[A+(z*88|0)+68>>2];O=+g[A+(z*88|0)+44>>2]}else{N=0.0;O=0.0}A=c[o>>2]|0;P=+g[A+(C*12|0)>>2];Q=+g[A+(C*12|0)+4>>2];R=+g[A+(C*12|0)+8>>2];S=+g[A+(D*12|0)>>2];T=+g[A+(D*12|0)+4>>2];U=+g[A+(D*12|0)+8>>2];if((K|0)>0){V=L+O;W=0;X=U;Y=R;Z=y;_=P;$=Q;aa=S;ba=T;do{ca=+F(+Y);g[a>>2]=ca;da=+E(+Y);g[p>>2]=da;ea=+F(+X);g[q>>2]=ea;fa=+E(+X);g[r>>2]=fa;g[f>>2]=_-(G*da-H*ca);g[s>>2]=$-(H*da+G*ca);g[h>>2]=aa-(I*fa-J*ea);g[t>>2]=ba-(J*fa+I*ea);ri(i,B,f,h,W);ea=+g[i>>2];fa=+g[u>>2];ca=+g[v>>2];da=+g[w>>2];ga=+g[x>>2];ha=ca-_;ia=da-$;ja=ca-aa;ca=da-ba;Z=Z0.0?-(ga<-.20000000298023224?-.20000000298023224:ga)/la:0.0;la=ea*da;ea=fa*da;_=_-L*la;$=$-L*ea;Y=Y-M*(ha*ea-ia*la);aa=aa+O*la;ba=ba+O*ea;X=X+N*(ja*ea-ca*la);W=W+1|0}while((W|0)!=(K|0));ma=X;na=Y;oa=Z;pa=$;qa=_;ra=ba;sa=aa;ta=c[o>>2]|0}else{ma=U;na=R;oa=y;pa=Q;qa=P;ra=T;sa=S;ta=A}g[ta+(C*12|0)>>2]=qa;g[ta+(C*12|0)+4>>2]=pa;K=c[o>>2]|0;g[K+(C*12|0)+8>>2]=na;g[K+(D*12|0)>>2]=sa;g[K+(D*12|0)+4>>2]=ra;g[(c[o>>2]|0)+(D*12|0)+8>>2]=ma;z=z+1|0;if((z|0)>=(c[j>>2]|0)){k=oa;break}else y=oa}m=k>=-.007499999832361937;l=e;return m|0}function ti(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;Se(b,c[(c[a+48>>2]|0)+12>>2]|0,d,c[(c[a+52>>2]|0)+12>>2]|0,e);return}function ui(a){a=a|0;fn(a);return}function vi(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;e=Pl(f,148)|0;$h(e,a,0,d,0);c[e>>2]=1724;return e|0}function wi(a,b){a=a|0;b=b|0;Pa[c[(c[a>>2]|0)+4>>2]&127](a);Ql(b,a,148);return}function xi(a,d,e,f){a=a|0;d=d|0;e=e|0;f=f|0;var h=0,i=0,j=0,k=0;h=l;l=l+48|0;i=h;j=c[(c[a+48>>2]|0)+12>>2]|0;c[i>>2]=816;c[i+4>>2]=1;g[i+8>>2]=.009999999776482582;k=i+28|0;c[k>>2]=0;c[k+4>>2]=0;c[k+8>>2]=0;c[k+12>>2]=0;b[k+16>>1]=0;ze(j,i,c[a+56>>2]|0);Se(d,i,e,c[(c[a+52>>2]|0)+12>>2]|0,f);l=h;return}function yi(a){a=a|0;fn(a);return}function zi(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0;g=Pl(f,148)|0;$h(g,a,b,d,e);c[g>>2]=1744;return g|0}function Ai(a,b){a=a|0;b=b|0;Pa[c[(c[a>>2]|0)+4>>2]&127](a);Ql(b,a,148);return}function Bi(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;Ve(b,c[(c[a+48>>2]|0)+12>>2]|0,d,c[(c[a+52>>2]|0)+12>>2]|0,e);return}function Ci(a){a=a|0;fn(a);return}function Di(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;e=Pl(f,148)|0;$h(e,a,0,d,0);c[e>>2]=1764;return e|0}function Ei(a,b){a=a|0;b=b|0;Pa[c[(c[a>>2]|0)+4>>2]&127](a);Ql(b,a,148);return}function Fi(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;We(b,c[(c[a+48>>2]|0)+12>>2]|0,d,c[(c[a+52>>2]|0)+12>>2]|0,e);return}function Gi(a){a=a|0;fn(a);return}function Hi(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;e=Pl(f,148)|0;$h(e,a,0,d,0);c[e>>2]=1784;return e|0}function Ii(a,b){a=a|0;b=b|0;Pa[c[(c[a>>2]|0)+4>>2]&127](a);Ql(b,a,148);return}function Ji(a){a=a|0;b[a+32>>1]=1;b[a+34>>1]=-1;b[a+36>>1]=0;c[a+40>>2]=0;c[a+24>>2]=0;c[a+28>>2]=0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;c[a+12>>2]=0;return}function Ki(d,e,f,g){d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0;c[d+40>>2]=c[g+4>>2];c[d+16>>2]=c[g+8>>2];c[d+20>>2]=c[g+12>>2];c[d+8>>2]=f;c[d+4>>2]=0;f=g+22|0;h=d+32|0;b[h>>1]=b[f>>1]|0;b[h+2>>1]=b[f+2>>1]|0;b[h+4>>1]=b[f+4>>1]|0;a[d+38>>0]=a[g+20>>0]|0;f=c[g>>2]|0;h=Ya[c[(c[f>>2]|0)+8>>2]&31](f,e)|0;c[d+12>>2]=h;f=Ma[c[(c[h>>2]|0)+12>>2]&7](h)|0;h=Pl(e,f*28|0)|0;c[d+24>>2]=h;if((f|0)>0)i=0;else{j=d+28|0;c[j>>2]=0;k=g+16|0;l=c[k>>2]|0;c[d>>2]=l;return}do{c[h+(i*28|0)+16>>2]=0;c[h+(i*28|0)+24>>2]=-1;i=i+1|0}while((i|0)!=(f|0));j=d+28|0;c[j>>2]=0;k=g+16|0;l=c[k>>2]|0;c[d>>2]=l;return}function Li(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=a+12|0;e=c[d>>2]|0;f=Ma[c[(c[e>>2]|0)+12>>2]&7](e)|0;e=a+24|0;Ql(b,c[e>>2]|0,f*28|0);c[e>>2]=0;e=c[d>>2]|0;switch(c[e+4>>2]|0){case 0:{Pa[c[c[e>>2]>>2]&127](e);Ql(b,e,20);c[d>>2]=0;return}case 1:{Pa[c[c[e>>2]>>2]&127](e);Ql(b,e,48);c[d>>2]=0;return}case 2:{Pa[c[c[e>>2]>>2]&127](e);Ql(b,e,152);c[d>>2]=0;return}case 3:{Pa[c[c[e>>2]>>2]&127](e);Ql(b,e,40);c[d>>2]=0;return}default:{c[d>>2]=0;return}}}function Mi(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;e=a+12|0;f=c[e>>2]|0;g=Ma[c[(c[f>>2]|0)+12>>2]&7](f)|0;f=a+28|0;c[f>>2]=g;if((g|0)<=0)return;g=a+24|0;h=0;do{i=c[g>>2]|0;j=i+(h*28|0)|0;k=c[e>>2]|0;_a[c[(c[k>>2]|0)+28>>2]&31](k,j,d,h);c[i+(h*28|0)+24>>2]=Ce(b,j,j)|0;c[i+(h*28|0)+16>>2]=a;c[i+(h*28|0)+20>>2]=h;h=h+1|0}while((h|0)<(c[f>>2]|0));return}function Ni(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=a+28|0;if((c[d>>2]|0)<=0){c[d>>2]=0;return}e=a+24|0;a=0;do{f=(c[e>>2]|0)+(a*28|0)+24|0;De(b,c[f>>2]|0);c[f>>2]=-1;a=a+1|0}while((a|0)<(c[d>>2]|0));c[d>>2]=0;return}function Oi(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,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,D=0.0;f=l;l=l+48|0;h=f+24|0;i=f+8|0;j=f;k=a+28|0;if((c[k>>2]|0)<=0){l=f;return}m=a+24|0;n=a+12|0;a=h+4|0;o=i+4|0;p=h+8|0;q=i+8|0;r=h+12|0;s=i+12|0;t=e+4|0;u=d+4|0;v=j+4|0;w=0;do{x=c[m>>2]|0;y=c[n>>2]|0;z=x+(w*28|0)+20|0;_a[c[(c[y>>2]|0)+28>>2]&31](y,h,d,c[z>>2]|0);y=c[n>>2]|0;_a[c[(c[y>>2]|0)+28>>2]&31](y,i,e,c[z>>2]|0);z=x+(w*28|0)|0;A=+g[h>>2];B=+g[i>>2];C=+g[a>>2];D=+g[o>>2];g[z>>2]=A>2]=C>2];C=+g[q>>2];B=+g[r>>2];A=+g[s>>2];g[x+(w*28|0)+8>>2]=D>C?D:C;g[x+(w*28|0)+12>>2]=B>A?B:A;A=+g[t>>2]-+g[u>>2];g[j>>2]=+g[e>>2]-+g[d>>2];g[v>>2]=A;Ee(b,c[x+(w*28|0)+24>>2]|0,z,j);w=w+1|0}while((w|0)<(c[k>>2]|0));l=f;return}function Pi(b,d){b=b|0;d=d|0;var e=0,f=0;Nl(b);fm(b+76|0);tj(b+102880|0);c[b+102992>>2]=0;c[b+102996>>2]=0;e=b+102960|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;a[b+103004>>0]=1;a[b+103005>>0]=1;a[b+103006>>0]=0;a[b+103007>>0]=1;a[b+102988>>0]=1;e=d;d=c[e+4>>2]|0;f=b+102980|0;c[f>>2]=c[e>>2];c[f+4>>2]=d;c[b+102876>>2]=4;g[b+103e3>>2]=0.0;c[b+102956>>2]=b;c[b+103040>>2]=2148;c[b+103044>>2]=c[540];d=b+103008|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;return}function Qi(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;b=c[a+102960>>2]|0;if(b|0){d=b;do{b=d;d=c[d+112>>2]|0;e=c[b+116>>2]|0;while(1){if(!e)break;b=c[e+4>>2]|0;c[e+28>>2]=0;Li(e,a);e=b}}while((d|0)!=0)}d=a+102968|0;e=c[d>>2]|0;if(!e){f=a+102880|0;Be(f);g=a+76|0;gm(g);Ol(a);return}b=a+102876|0;h=e;do{e=(c[b>>2]&2|0)==0;do{}while(!e);e=c[h+404>>2]|0;i=h+408|0;if(e|0)c[e+408>>2]=c[i>>2];j=c[i>>2]|0;if(j|0)c[j+404>>2]=e;c[d>>2]=j;Sj(h);Ql(a,h,416);h=c[d>>2]|0}while((h|0)!=0);f=a+102880|0;Be(f);g=a+76|0;gm(g);Ol(a);return}function Ri(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;if(c[a+102876>>2]&2|0)return;d=c[b+404>>2]|0;e=b+408|0;if(d|0)c[d+408>>2]=c[e>>2];f=c[e>>2]|0;if(f|0)c[f+404>>2]=d;d=a+102968|0;if((c[d>>2]|0)==(b|0))c[d>>2]=f;Sj(b);Ql(a,b,416);return}function Si(a,b){a=a|0;b=b|0;c[a+102952>>2]=b;return}function Ti(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;if(c[a+102876>>2]&2|0){d=0;return d|0}e=Pl(a,168)|0;dj(e,b,a);c[e+108>>2]=0;b=a+102960|0;f=c[b>>2]|0;c[e+112>>2]=f;if(f|0)c[f+108>>2]=e;c[b>>2]=e;b=a+102972|0;c[b>>2]=(c[b>>2]|0)+1;d=e;return d|0}function Ui(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;if(c[a+102876>>2]&2|0)return;d=b+124|0;e=c[d>>2]|0;if(e|0){f=a+102992|0;g=e;do{e=g;g=c[g+12>>2]|0;h=c[f>>2]|0;if(!h)i=e+4|0;else{j=e+4|0;Ra[c[(c[h>>2]|0)+8>>2]&63](h,c[j>>2]|0);i=j}Vi(a,c[i>>2]|0);c[d>>2]=g}while((g|0)!=0)}c[d>>2]=0;d=b+128|0;g=c[d>>2]|0;if(g|0){i=a+102880|0;f=g;do{g=f;f=c[f+12>>2]|0;uj(i,c[g+4>>2]|0)}while((f|0)!=0)}c[d>>2]=0;d=b+116|0;f=c[d>>2]|0;if(!f)k=b+120|0;else{i=a+102992|0;g=a+102880|0;j=b+120|0;h=f;do{f=h;h=c[h+4>>2]|0;e=c[i>>2]|0;if(e|0)Ra[c[(c[e>>2]|0)+12>>2]&63](e,f);Ni(f,g);Li(f,a);Ql(a,f,44);c[d>>2]=h;c[j>>2]=(c[j>>2]|0)+-1}while((h|0)!=0);k=j}c[d>>2]=0;c[k>>2]=0;k=c[b+108>>2]|0;d=b+112|0;if(k|0)c[k+112>>2]=c[d>>2];j=c[d>>2]|0;if(j|0)c[j+108>>2]=k;k=a+102960|0;if((c[k>>2]|0)==(b|0))c[k>>2]=j;j=a+102972|0;c[j>>2]=(c[j>>2]|0)+-1;ej(b);Ql(a,b,168);return}function Vi(d,f){d=d|0;f=f|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;if(c[d+102876>>2]&2|0)return;h=a[f+61>>0]|0;i=c[f+8>>2]|0;j=f+12|0;if(i|0)c[i+12>>2]=c[j>>2];k=c[j>>2]|0;if(k|0)c[k+8>>2]=i;i=d+102964|0;if((c[i>>2]|0)==(f|0))c[i>>2]=k;k=c[f+48>>2]|0;i=c[f+52>>2]|0;j=k+4|0;l=e[j>>1]|0;if(!(l&2)){b[j>>1]=l|2;g[k+160>>2]=0.0}l=i+4|0;j=e[l>>1]|0;if(!(j&2)){b[l>>1]=j|2;g[i+160>>2]=0.0}j=f+24|0;l=c[j>>2]|0;m=f+28|0;if(l|0)c[l+12>>2]=c[m>>2];n=c[m>>2]|0;if(n|0)c[n+8>>2]=l;l=k+124|0;if((f+16|0)==(c[l>>2]|0))c[l>>2]=n;c[j>>2]=0;c[m>>2]=0;m=f+40|0;j=c[m>>2]|0;n=f+44|0;if(j|0)c[j+12>>2]=c[n>>2];l=c[n>>2]|0;if(l|0)c[l+8>>2]=j;j=i+124|0;if((f+32|0)==(c[j>>2]|0))c[j>>2]=l;c[m>>2]=0;c[n>>2]=0;bh(f,d);f=d+102976|0;c[f>>2]=(c[f>>2]|0)+-1;if(h<<24>>24)return;h=c[i+128>>2]|0;if(!h)return;else o=h;do{if((c[o>>2]|0)==(k|0)){h=(c[o+4>>2]|0)+4|0;c[h>>2]=c[h>>2]|8}o=c[o+12>>2]|0}while((o|0)!=0);return}function Wi(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;if(c[b+102876>>2]&2|0){e=0;return e|0}f=ah(d,b)|0;c[f+8>>2]=0;g=b+102964|0;h=c[g>>2]|0;c[f+12>>2]=h;if(h|0)c[h+8>>2]=f;c[g>>2]=f;g=b+102976|0;c[g>>2]=(c[g>>2]|0)+1;g=f+16|0;c[f+20>>2]=f;b=c[f+52>>2]|0;c[g>>2]=b;c[f+24>>2]=0;h=c[f+48>>2]|0;i=h+124|0;j=c[i>>2]|0;c[f+28>>2]=j;if(j|0)c[j+8>>2]=g;c[i>>2]=g;g=f+32|0;c[f+36>>2]=f;c[g>>2]=h;c[f+40>>2]=0;h=b+124|0;b=c[h>>2]|0;c[f+44>>2]=b;if(b|0)c[b+8>>2]=g;c[h>>2]=g;g=c[d+8>>2]|0;if(a[d+16>>0]|0){e=f;return e|0}h=c[(c[d+12>>2]|0)+128>>2]|0;if(!h){e=f;return e|0}else k=h;do{if((c[k>>2]|0)==(g|0)){h=(c[k+4>>2]|0)+4|0;c[h>>2]=c[h>>2]|8}k=c[k+12>>2]|0}while((k|0)!=0);e=f;return e|0}function Xi(a,b){a=a|0;b=b|0;var d=0,e=0;if(c[a+102876>>2]&2|0){d=0;return d|0}e=Pl(a,416)|0;Pj(e,b,a);c[e+404>>2]=0;b=a+102968|0;a=c[b>>2]|0;c[e+408>>2]=a;if(a|0)c[a+404>>2]=e;c[b>>2]=e;d=e;return d|0}function Yi(d,f){d=d|0;f=f|0;var h=0,i=0,j=0,k=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.0,ca=0,da=0;h=l;l=l+96|0;i=h+32|0;j=h;k=d+102960|0;m=c[k>>2]|0;if(m|0){n=m;do{m=n+12|0;o=n+28|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];n=c[n+112>>2]|0}while((n|0)!=0)}n=d+103020|0;g[n>>2]=0.0;m=d+103024|0;g[m>>2]=0.0;o=d+103028|0;g[o>>2]=0.0;p=d+102972|0;q=d+102880|0;r=d+76|0;$e(i,c[p>>2]|0,c[d+102944>>2]|0,c[d+102976>>2]|0,r,c[d+102952>>2]|0);s=c[k>>2]|0;if(s|0){t=s;do{s=t+4|0;b[s>>1]=b[s>>1]&-2;t=c[t+112>>2]|0}while((t|0)!=0)}t=c[d+102940>>2]|0;if(t|0){s=t;do{t=s+4|0;c[t>>2]=c[t>>2]&-2;s=c[s+12>>2]|0}while((s|0)!=0)}s=c[d+102964>>2]|0;if(s|0){t=s;do{a[t+60>>0]=0;t=c[t+12>>2]|0}while((t|0)!=0)}t=hm(r,c[p>>2]<<2)|0;p=c[k>>2]|0;if(p|0){s=i+28|0;u=i+36|0;v=i+32|0;w=i+8|0;x=i+16|0;y=i+12|0;z=d+102980|0;A=d+102988|0;B=j+12|0;C=j+16|0;D=j+20|0;E=p;do{p=E+4|0;F=b[p>>1]|0;if((F&35)==34?c[E>>2]|0:0){c[s>>2]=0;c[u>>2]=0;c[v>>2]=0;c[t>>2]=E;b[p>>1]=F|1;F=1;p=0;G=0;H=0;while(1){I=F+-1|0;J=c[t+(I<<2)>>2]|0;c[J+8>>2]=H;c[(c[w>>2]|0)+(H<<2)>>2]=J;H=H+1|0;K=J+4|0;L=e[K>>1]|0;if(!(L&2)){b[K>>1]=L|2;g[J+160>>2]=0.0}if(c[J>>2]|0){L=c[J+128>>2]|0;if(!L){M=I;N=G}else{K=L;L=I;O=G;while(1){P=c[K+4>>2]|0;Q=P+4|0;R=c[Q>>2]|0;do if((R&7|0)==6?(a[(c[P+48>>2]|0)+38>>0]|0)==0:0){if(a[(c[P+52>>2]|0)+38>>0]|0){S=L;T=O;break}U=c[y>>2]|0;V=O+1|0;c[u>>2]=V;c[U+(O<<2)>>2]=P;c[Q>>2]=R|1;U=c[K>>2]|0;W=U+4|0;X=b[W>>1]|0;if(X&1){S=L;T=V;break}c[t+(L<<2)>>2]=U;b[W>>1]=X|1;S=L+1|0;T=V}else{S=L;T=O}while(0);K=c[K+12>>2]|0;if(!K){M=S;N=T;break}else{L=S;O=T}}}O=c[J+124>>2]|0;if(!O){Y=M;Z=p;_=N}else{L=O;O=M;K=p;while(1){R=L+4|0;Q=c[R>>2]|0;do if((a[Q+60>>0]|0)==0?(P=c[L>>2]|0,V=P+4|0,X=b[V>>1]|0,(X&32)!=0):0){W=c[x>>2]|0;U=K+1|0;c[v>>2]=U;c[W+(K<<2)>>2]=Q;a[(c[R>>2]|0)+60>>0]=1;if(X&1){$=O;aa=U;break}c[t+(O<<2)>>2]=P;b[V>>1]=X|1;$=O+1|0;aa=U}else{$=O;aa=K}while(0);L=c[L+12>>2]|0;if(!L){Y=$;Z=aa;_=N;break}else{O=$;K=aa}}}}else{Y=I;Z=p;_=G}if((Y|0)<=0)break;else{F=Y;p=Z;G=_}}c[s>>2]=H;bf(i,j,f,z,(a[A>>0]|0)!=0);g[n>>2]=+g[B>>2]+ +g[n>>2];g[m>>2]=+g[C>>2]+ +g[m>>2];g[o>>2]=+g[D>>2]+ +g[o>>2];G=c[s>>2]|0;if((G|0)>0){p=c[w>>2]|0;F=0;do{K=c[p+(F<<2)>>2]|0;if(!(c[K>>2]|0)){O=K+4|0;b[O>>1]=b[O>>1]&-2}F=F+1|0}while((F|0)<(G|0))}}E=c[E+112>>2]|0}while((E|0)!=0)}jm(r,t);Vl(j);t=c[k>>2]|0;if(!t){wj(q);ba=+Xl(j);ca=d+103032|0;g[ca>>2]=ba;af(i);l=h;return}else da=t;do{if(b[da+4>>1]&1?c[da>>2]|0:0)hj(da);da=c[da+112>>2]|0}while((da|0)!=0);wj(q);ba=+Xl(j);ca=d+103032|0;g[ca>>2]=ba;af(i);l=h;return}function Zi(d,f){d=d|0;f=f|0;var h=0,i=0,k=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,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,$=0,aa=0,ba=0,ca=0,da=0,ea=0.0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0.0,ma=0.0,na=0.0,oa=0,pa=0.0,qa=0,ra=0.0,sa=0.0,ta=0.0,ua=0,va=0,wa=0,xa=0.0,ya=0.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;h=l;l=l+272|0;i=h+216|0;k=h+84|0;m=h+48|0;n=h+40|0;o=h;p=d+102880|0;q=d+102952|0;$e(i,64,32,0,d+76|0,c[q>>2]|0);r=d+103007|0;if(a[r>>0]|0){s=c[d+102960>>2]|0;if(s|0){t=s;do{s=t+4|0;b[s>>1]=b[s>>1]&-2;g[t+76>>2]=0.0;t=c[t+112>>2]|0}while((t|0)!=0)}t=d+102940|0;s=c[t>>2]|0;if(!s)u=t;else{v=s;do{s=v+4|0;c[s>>2]=c[s>>2]&-34;c[v+128>>2]=0;g[v+132>>2]=1.0;v=c[v+12>>2]|0}while((v|0)!=0);u=t}}else u=d+102940|0;t=i+28|0;v=i+36|0;s=i+32|0;w=i+8|0;x=i+12|0;y=n+4|0;z=i+40|0;A=i+44|0;B=o+4|0;C=o+8|0;D=o+16|0;G=f+12|0;H=o+12|0;I=f+20|0;J=o+20|0;K=o+24|0;L=d+103006|0;d=k+16|0;M=k+20|0;N=k+24|0;O=k+44|0;P=k+48|0;Q=k+52|0;R=k+28|0;S=k+56|0;T=k+92|0;U=k+128|0;V=m+4|0;W=c[u>>2]|0;a:do if(W|0){X=W;while(1){Y=0;Z=1.0;_=X;while(1){$=_+4|0;aa=c[$>>2]|0;do if((aa&4|0)!=0?(c[_+128>>2]|0)<=8:0){if(!(aa&32)){ba=c[_+48>>2]|0;ca=c[_+52>>2]|0;if(a[ba+38>>0]|0){da=Y;ea=Z;break}if(a[ca+38>>0]|0){da=Y;ea=Z;break}fa=c[ba+8>>2]|0;ga=c[ca+8>>2]|0;ha=c[fa>>2]|0;ia=c[ga>>2]|0;ja=b[fa+4>>1]|0;ka=b[ga+4>>1]|0;if(!((ha|0)!=0&(ja&2)!=0|(ia|0)!=0&(ka&2)!=0)){da=Y;ea=Z;break}if(!((ha|0)!=2|(ja&8)!=0|((ia|0)!=2|(ka&8)!=0))){da=Y;ea=Z;break}ka=fa+44|0;ia=fa+76|0;la=+g[ia>>2];ja=ga+44|0;ha=ga+76|0;ma=+g[ha>>2];if(!(la>2];qa=ga+56|0;ra=+g[qa>>2];sa=na*(+g[ga+64>>2]-ra);g[oa>>2]=pa+na*(+g[ga+60>>2]-pa);g[qa>>2]=ra+sa;qa=ga+68|0;sa=+g[qa>>2];g[qa>>2]=sa+na*(+g[ga+72>>2]-sa);g[ha>>2]=la;ta=la}else ta=la;else{sa=(ma-la)/(1.0-la);ha=fa+52|0;la=+g[ha>>2];ga=fa+56|0;na=+g[ga>>2];ra=sa*(+g[fa+64>>2]-na);g[ha>>2]=la+sa*(+g[fa+60>>2]-la);g[ga>>2]=na+ra;ga=fa+68|0;ra=+g[ga>>2];g[ga>>2]=ra+sa*(+g[fa+72>>2]-ra);g[ia>>2]=ma;ta=ma}ia=c[_+56>>2]|0;fa=c[_+60>>2]|0;c[d>>2]=0;c[M>>2]=0;g[N>>2]=0.0;c[O>>2]=0;c[P>>2]=0;g[Q>>2]=0.0;Nd(k,c[ba+12>>2]|0,ia);Nd(R,c[ca+12>>2]|0,fa);ua=S;va=ka;wa=ua+36|0;do{c[ua>>2]=c[va>>2];ua=ua+4|0;va=va+4|0}while((ua|0)<(wa|0));ua=T;va=ja;wa=ua+36|0;do{c[ua>>2]=c[va>>2];ua=ua+4|0;va=va+4|0}while((ua|0)<(wa|0));g[U>>2]=1.0;Jd(m,k);if((c[m>>2]|0)==3){ma=ta+(1.0-ta)*+g[V>>2];xa=ma<1.0?ma:1.0}else xa=1.0;g[_+132>>2]=xa;c[$>>2]=c[$>>2]|32;ya=xa}else ya=+g[_+132>>2];ja=ya>2]|0;if(!_)break;else{Y=da;Z=ea}}if(ea>.9999988079071045|(da|0)==0)break a;Y=c[(c[da+48>>2]|0)+8>>2]|0;_=c[(c[da+52>>2]|0)+8>>2]|0;$=Y+44|0;ua=k;va=$;wa=ua+36|0;do{c[ua>>2]=c[va>>2];ua=ua+4|0;va=va+4|0}while((ua|0)<(wa|0));aa=_+44|0;ua=m;va=aa;wa=ua+36|0;do{c[ua>>2]=c[va>>2];ua=ua+4|0;va=va+4|0}while((ua|0)<(wa|0));ja=Y+76|0;Z=+g[ja>>2];ma=(ea-Z)/(1.0-Z);ka=Y+60|0;fa=Y+52|0;Z=+g[fa>>2];ca=Y+64|0;ia=Y+56|0;ra=+g[ia>>2];sa=ma*(+g[ca>>2]-ra);g[fa>>2]=Z+ma*(+g[ka>>2]-Z);g[ia>>2]=ra+sa;ia=Y+72|0;fa=Y+68|0;sa=+g[fa>>2];ra=sa+ma*(+g[ia>>2]-sa);g[fa>>2]=ra;g[ja>>2]=ea;ja=Y+52|0;fa=c[ja>>2]|0;ba=c[ja+4>>2]|0;ja=Y+60|0;c[ja>>2]=fa;c[ja+4>>2]=ba;g[ia>>2]=ra;sa=+F(+ra);ja=Y+20|0;g[ja>>2]=sa;ma=+E(+ra);ga=Y+24|0;g[ga>>2]=ma;ha=Y+44|0;ra=+g[ha>>2];qa=Y+48|0;Z=+g[qa>>2];na=(c[j>>2]=fa,+g[j>>2])-(ma*ra-sa*Z);la=(c[j>>2]=ba,+g[j>>2])-(sa*ra+ma*Z);ba=Y+12|0;g[ba>>2]=na;fa=Y+16|0;g[fa>>2]=la;oa=_+76|0;la=+g[oa>>2];na=(ea-la)/(1.0-la);za=_+60|0;Aa=_+52|0;la=+g[Aa>>2];Ba=_+64|0;Ca=_+56|0;Z=+g[Ca>>2];ma=na*(+g[Ba>>2]-Z);g[Aa>>2]=la+na*(+g[za>>2]-la);g[Ca>>2]=Z+ma;Ca=_+72|0;Aa=_+68|0;ma=+g[Aa>>2];Z=ma+na*(+g[Ca>>2]-ma);g[Aa>>2]=Z;g[oa>>2]=ea;oa=_+52|0;Aa=c[oa>>2]|0;Da=c[oa+4>>2]|0;oa=_+60|0;c[oa>>2]=Aa;c[oa+4>>2]=Da;g[Ca>>2]=Z;ma=+F(+Z);oa=_+20|0;g[oa>>2]=ma;na=+E(+Z);Ea=_+24|0;g[Ea>>2]=na;Fa=_+44|0;Z=+g[Fa>>2];Ga=_+48|0;la=+g[Ga>>2];ra=(c[j>>2]=Aa,+g[j>>2])-(na*Z-ma*la);sa=(c[j>>2]=Da,+g[j>>2])-(ma*Z+na*la);Da=_+12|0;g[Da>>2]=ra;Aa=_+16|0;g[Aa>>2]=sa;bi(da,c[q>>2]|0);Ha=da+4|0;Ia=c[Ha>>2]|0;Ja=Ia&-33;c[Ha>>2]=Ja;Ka=da+128|0;c[Ka>>2]=(c[Ka>>2]|0)+1;if((Ia&6|0)==6){Ka=Y+4|0;La=b[Ka>>1]|0;Ma=La&65535;if(!(Ma&2)){Na=(Ma|2)&65535;b[Ka>>1]=Na;g[Y+160>>2]=0.0;Oa=Na}else Oa=La;La=_+4|0;Na=e[La>>1]|0;if(!(Na&2)){b[La>>1]=Na|2;g[_+160>>2]=0.0;Pa=b[Ka>>1]|0}else Pa=Oa;c[s>>2]=0;Na=Y+8|0;c[Na>>2]=0;c[c[w>>2]>>2]=Y;Ma=_+8|0;c[Ma>>2]=1;c[(c[w>>2]|0)+4>>2]=_;c[t>>2]=2;Qa=c[x>>2]|0;c[v>>2]=1;c[Qa>>2]=da;b[Ka>>1]=Pa|1;b[La>>1]=b[La>>1]|1;c[Ha>>2]=Ja|1;c[n>>2]=Y;c[y>>2]=_;Ja=0;La=Y;while(1){b:do if((c[La>>2]|0)==2?(Ka=c[La+128>>2]|0,Ka|0):0){Qa=La+4|0;Ra=Ka;do{if((c[t>>2]|0)==(c[z>>2]|0))break b;if((c[v>>2]|0)==(c[A>>2]|0))break b;Ka=c[Ra+4>>2]|0;Sa=Ka+4|0;c:do if(!(c[Sa>>2]&1)){Ta=c[Ra>>2]|0;do if((c[Ta>>2]|0)==2){if(b[Qa>>1]&8)break;if(!(b[Ta+4>>1]&8))break c}while(0);if(!(a[(c[Ka+48>>2]|0)+38>>0]|0)){if(a[(c[Ka+52>>2]|0)+38>>0]|0)break;Ua=Ta+44|0;ua=o;va=Ua;wa=ua+36|0;do{c[ua>>2]=c[va>>2];ua=ua+4|0;va=va+4|0}while((ua|0)<(wa|0));Va=Ta+4|0;if(!(b[Va>>1]&1)){Wa=Ta+76|0;sa=+g[Wa>>2];ra=(ea-sa)/(1.0-sa);Xa=Ta+52|0;sa=+g[Xa>>2];Ya=Ta+56|0;la=+g[Ya>>2];na=ra*(+g[Ta+64>>2]-la);g[Xa>>2]=sa+ra*(+g[Ta+60>>2]-sa);g[Ya>>2]=la+na;Ya=Ta+72|0;Xa=Ta+68|0;na=+g[Xa>>2];la=na+ra*(+g[Ya>>2]-na);g[Xa>>2]=la;g[Wa>>2]=ea;Wa=Ta+52|0;Xa=c[Wa>>2]|0;Za=c[Wa+4>>2]|0;Wa=Ta+60|0;c[Wa>>2]=Xa;c[Wa+4>>2]=Za;g[Ya>>2]=la;na=+F(+la);g[Ta+20>>2]=na;ra=+E(+la);g[Ta+24>>2]=ra;la=+g[Ta+44>>2];sa=+g[Ta+48>>2];Z=(c[j>>2]=Xa,+g[j>>2])-(ra*la-na*sa);ma=(c[j>>2]=Za,+g[j>>2])-(na*la+ra*sa);g[Ta+12>>2]=Z;g[Ta+16>>2]=ma}bi(Ka,c[q>>2]|0);Za=c[Sa>>2]|0;do if(!(Za&4)){ua=Ua;va=o;wa=ua+36|0;do{c[ua>>2]=c[va>>2];ua=ua+4|0;va=va+4|0}while((ua|0)<(wa|0));ma=+g[Ta+72>>2];Z=+F(+ma);g[Ta+20>>2]=Z;sa=+E(+ma);g[Ta+24>>2]=sa;ma=+g[Ta+44>>2];ra=+g[Ta+48>>2];la=+g[Ta+64>>2]-(Z*ma+sa*ra);g[Ta+12>>2]=+g[Ta+60>>2]-(sa*ma-Z*ra);g[Ta+16>>2]=la}else{if(!(Za&2)){ua=Ua;va=o;wa=ua+36|0;do{c[ua>>2]=c[va>>2];ua=ua+4|0;va=va+4|0}while((ua|0)<(wa|0));la=+g[Ta+72>>2];ra=+F(+la);g[Ta+20>>2]=ra;Z=+E(+la);g[Ta+24>>2]=Z;la=+g[Ta+44>>2];ma=+g[Ta+48>>2];sa=+g[Ta+64>>2]-(ra*la+Z*ma);g[Ta+12>>2]=+g[Ta+60>>2]-(Z*la-ra*ma);g[Ta+16>>2]=sa;break}c[Sa>>2]=Za|1;Xa=c[x>>2]|0;Ya=c[v>>2]|0;c[v>>2]=Ya+1;c[Xa+(Ya<<2)>>2]=Ka;Ya=e[Va>>1]|0;if(Ya&1|0)break;b[Va>>1]=Ya|1;if((Ya&2|0)==0&(c[Ta>>2]|0)!=0){b[Va>>1]=Ya|3;g[Ta+160>>2]=0.0}Ya=c[t>>2]|0;c[Ta+8>>2]=Ya;c[(c[w>>2]|0)+(Ya<<2)>>2]=Ta;c[t>>2]=Ya+1}while(0)}}while(0);Ra=c[Ra+12>>2]|0}while((Ra|0)!=0)}while(0);Ra=Ja+1|0;if((Ra|0)>=2)break;Ja=Ra;La=c[n+(Ra<<2)>>2]|0}sa=(1.0-ea)*+g[f>>2];g[o>>2]=sa;g[B>>2]=1.0/sa;g[C>>2]=1.0;c[D>>2]=20;c[H>>2]=c[G>>2];c[J>>2]=c[I>>2];a[K>>0]=0;cf(i,o,c[Na>>2]|0,c[Ma>>2]|0);if((c[t>>2]|0)>0){La=0;do{Ja=c[(c[w>>2]|0)+(La<<2)>>2]|0;Y=Ja+4|0;b[Y>>1]=b[Y>>1]&-2;if((c[Ja>>2]|0)==2?(hj(Ja),Y=c[Ja+128>>2]|0,Y|0):0){Ja=Y;do{Y=(c[Ja+4>>2]|0)+4|0;c[Y>>2]=c[Y>>2]&-34;Ja=c[Ja+12>>2]|0}while((Ja|0)!=0)}La=La+1|0}while((La|0)<(c[t>>2]|0))}wj(p);if(a[L>>0]|0)break}else{c[Ha>>2]=Ia&-37;ua=$;va=k;wa=ua+36|0;do{c[ua>>2]=c[va>>2];ua=ua+4|0;va=va+4|0}while((ua|0)<(wa|0));ua=aa;va=m;wa=ua+36|0;do{c[ua>>2]=c[va>>2];ua=ua+4|0;va=va+4|0}while((ua|0)<(wa|0));sa=+g[ia>>2];ma=+F(+sa);g[ja>>2]=ma;ra=+E(+sa);g[ga>>2]=ra;sa=+g[ha>>2];la=+g[qa>>2];Z=+g[ca>>2]-(ma*sa+ra*la);g[ba>>2]=+g[ka>>2]-(ra*sa-ma*la);g[fa>>2]=Z;Z=+g[Ca>>2];la=+F(+Z);g[oa>>2]=la;ma=+E(+Z);g[Ea>>2]=ma;Z=+g[Fa>>2];sa=+g[Ga>>2];ra=+g[Ba>>2]-(la*Z+ma*sa);g[Da>>2]=+g[za>>2]-(ma*Z-la*sa);g[Aa>>2]=ra}X=c[u>>2]|0;if(!X)break a}a[r>>0]=0;af(i);l=h;return}while(0);a[r>>0]=1;af(i);l=h;return}function _i(b,d,e,f,h){b=b|0;d=+d;e=e|0;f=f|0;h=h|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0.0,s=0.0,t=0,u=0.0,v=0,w=0;i=l;l=l+48|0;j=i+8|0;k=i+16|0;m=i;Vl(j);n=b+102876|0;o=c[n>>2]|0;p=b+102880|0;if(!(o&1))q=o;else{wj(p);o=c[n>>2]&-2;c[n>>2]=o;q=o}c[n>>2]=q|2;g[k>>2]=d;c[k+12>>2]=e;c[k+16>>2]=f;c[k+20>>2]=h;h=d>0.0;f=k+4|0;g[f>>2]=h?1.0/d:0.0;e=b+103e3|0;g[k+8>>2]=+g[e>>2]*d;a[k+24>>0]=a[b+103004>>0]|0;Vl(m);vj(p);g[b+103012>>2]=+Xl(m);if((a[b+103007>>0]|0)!=0&h){Vl(m);h=c[b+102968>>2]|0;if(h|0){p=h;do{rl(p,k);p=c[p+408>>2]|0}while((p|0)!=0)}Yi(b,k);g[b+103016>>2]=+Xl(m);r=+g[k>>2]}else r=d;if((a[b+103005>>0]|0)!=0&r>0.0){Vl(m);Zi(b,k);g[b+103036>>2]=+Xl(m);s=+g[k>>2]}else s=r;if(s>0.0)c[e>>2]=c[f>>2];f=c[n>>2]|0;if(!(f&4)){t=f&-3;c[n>>2]=t;u=+Xl(j);v=b+103008|0;g[v>>2]=u;l=i;return}e=c[b+102960>>2]|0;if(!e){t=f&-3;c[n>>2]=t;u=+Xl(j);v=b+103008|0;g[v>>2]=u;l=i;return}else w=e;do{g[w+92>>2]=0.0;g[w+96>>2]=0.0;g[w+100>>2]=0.0;w=c[w+112>>2]|0}while((w|0)!=0);t=f&-3;c[n>>2]=t;u=+Xl(j);v=b+103008|0;g[v>>2]=u;l=i;return}function $i(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;e=l;l=l+16|0;f=e;g=a+102880|0;c[f>>2]=g;c[f+4>>2]=b;aj(g,f,d);f=c[a+102968>>2]|0;if(!f){l=e;return}a=f;do{if(Ya[c[(c[b>>2]|0)+16>>2]&31](b,a)|0)Kl(a,b,d);a=c[a+408>>2]|0}while((a|0)!=0);l=e;return}function aj(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,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;e=l;l=l+1040|0;f=e;h=f+4|0;c[f>>2]=h;i=f+1028|0;j=f+1032|0;c[j>>2]=256;c[h>>2]=c[a>>2];c[i>>2]=1;k=a+4|0;a=d+4|0;m=d+8|0;n=d+12|0;o=b+4|0;p=1;q=h;a:while(1){r=p+-1|0;c[i>>2]=r;s=c[q+(r<<2)>>2]|0;do if((s|0)!=-1?(t=c[k>>2]|0,!((+g[d>>2]-+g[t+(s*36|0)+8>>2]>0.0?1:+g[a>>2]-+g[t+(s*36|0)+12>>2]>0.0)|+g[t+(s*36|0)>>2]-+g[m>>2]>0.0|+g[t+(s*36|0)+4>>2]-+g[n>>2]>0.0)):0){u=t+(s*36|0)+24|0;if((c[u>>2]|0)==-1){v=c[o>>2]|0;if(!(Ya[c[(c[v>>2]|0)+8>>2]&31](v,c[(c[(c[(c[b>>2]|0)+4>>2]|0)+(s*36|0)+16>>2]|0)+16>>2]|0)|0))break a;w=c[i>>2]|0;break}if((r|0)==(c[j>>2]|0)?(c[j>>2]=r<<1,v=_l(r<<3)|0,c[f>>2]=v,Qn(v|0,q|0,c[i>>2]<<2|0)|0,(q|0)!=(h|0)):0)$l(q);v=c[f>>2]|0;c[v+(c[i>>2]<<2)>>2]=c[u>>2];u=(c[i>>2]|0)+1|0;c[i>>2]=u;x=t+(s*36|0)+28|0;if((u|0)==(c[j>>2]|0)?(c[j>>2]=u<<1,t=_l(u<<3)|0,c[f>>2]=t,Qn(t|0,v|0,c[i>>2]<<2|0)|0,(v|0)!=(h|0)):0)$l(v);c[(c[f>>2]|0)+(c[i>>2]<<2)>>2]=c[x>>2];x=(c[i>>2]|0)+1|0;c[i>>2]=x;w=x}else w=r;while(0);if((w|0)<=0)break;p=w;q=c[f>>2]|0}q=c[f>>2]|0;if((q|0)==(h|0)){l=e;return}$l(q);c[f>>2]=0;l=e;return}function bj(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,m=0,n=0;f=l;l=l+32|0;h=f+24|0;i=f;j=a+102880|0;c[h>>2]=j;c[h+4>>2]=b;g[i+16>>2]=1.0;k=d;m=c[k+4>>2]|0;n=i;c[n>>2]=c[k>>2];c[n+4>>2]=m;m=e;n=c[m+4>>2]|0;k=i+8|0;c[k>>2]=c[m>>2];c[k+4>>2]=n;cj(j,h,i);i=c[a+102968>>2]|0;if(!i){l=f;return}a=i;do{if(Ya[c[(c[b>>2]|0)+16>>2]&31](b,a)|0)Ll(a,b,d,e);a=c[a+408>>2]|0}while((a|0)!=0);l=f;return}function cj(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,m=0.0,n=0,o=0.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,z=0,A=0,B=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0.0,K=0,L=0,M=0.0,N=0.0,O=0,P=0,Q=0,R=0.0,S=0.0,T=0.0,U=0.0,V=0,W=0,X=0,Y=0,Z=0.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;e=l;l=l+1088|0;f=e+1064|0;h=e+1056|0;i=e+20|0;j=e;k=+g[d>>2];m=+g[d+4>>2];n=d+8|0;o=+g[n>>2]-k;p=+g[d+12>>2]-m;q=+C(+(o*o+p*p));r=q<1.1920928955078125e-07;s=1.0/q;q=r?o:o*s;t=r?p:p*s;s=-t;u=t<-0.0?s:t;t=q>0.0?q:-q;v=+g[d+16>>2];w=k+o*v;x=m+p*v;r=i+4|0;c[i>>2]=r;y=i+1028|0;z=i+1032|0;c[z>>2]=256;c[r>>2]=c[a>>2];c[y>>2]=1;A=a+4|0;a=j+8|0;B=j+16|0;D=f+8|0;E=j+4|0;F=j+8|0;G=j+12|0;H=h+4|0;I=b+4|0;J=v;K=1;L=r;v=kw?k:w;w=m>x?m:x;a:while(1){O=K+-1|0;c[y>>2]=O;P=c[L+(O<<2)>>2]|0;do if(((P|0)!=-1?(Q=c[A>>2]|0,x=+g[Q+(P*36|0)+8>>2],R=+g[Q+(P*36|0)+12>>2],S=+g[Q+(P*36|0)>>2],T=+g[Q+(P*36|0)+4>>2],!(v-x>0.0|M-R>0.0|S-N>0.0|T-w>0.0)):0)?(U=(k-(x+S)*.5)*s+q*(m-(R+T)*.5),!((U>0.0?U:-U)-(u*((x-S)*.5)+t*((R-T)*.5))>0.0)):0){V=Q+(P*36|0)+24|0;if((c[V>>2]|0)==-1){W=d;X=c[W+4>>2]|0;Y=j;c[Y>>2]=c[W>>2];c[Y+4>>2]=X;X=n;Y=c[X+4>>2]|0;W=a;c[W>>2]=c[X>>2];c[W+4>>2]=Y;g[B>>2]=J;Y=c[(c[(c[b>>2]|0)+4>>2]|0)+(P*36|0)+16>>2]|0;W=c[Y+16>>2]|0;X=c[W+12>>2]|0;if(Za[c[(c[X>>2]|0)+24>>2]&15](X,f,j,(c[W+8>>2]|0)+12|0,c[Y+20>>2]|0)|0){T=+g[D>>2];R=1.0-T;S=R*+g[E>>2]+T*+g[G>>2];g[h>>2]=R*+g[j>>2]+T*+g[F>>2];g[H>>2]=S;Y=c[I>>2]|0;Z=+Qa[c[(c[Y>>2]|0)+8>>2]&1](Y,W,h,f,T)}else Z=+g[B>>2];if(Z==0.0){W=22;break a}if(Z>0.0){T=k+o*Z;S=m+p*Z;_=Z;$=kT?k:T;ca=m>S?m:S}else{_=J;$=v;aa=M;ba=N;ca=w}da=_;ea=c[y>>2]|0;fa=ca;ga=ba;ha=aa;ia=$;break}else{if((O|0)==(c[z>>2]|0)?(c[z>>2]=O<<1,W=_l(O<<3)|0,c[i>>2]=W,Qn(W|0,L|0,c[y>>2]<<2|0)|0,(L|0)!=(r|0)):0)$l(L);W=c[i>>2]|0;c[W+(c[y>>2]<<2)>>2]=c[V>>2];V=(c[y>>2]|0)+1|0;c[y>>2]=V;Y=Q+(P*36|0)+28|0;if((V|0)==(c[z>>2]|0)?(c[z>>2]=V<<1,Q=_l(V<<3)|0,c[i>>2]=Q,Qn(Q|0,W|0,c[y>>2]<<2|0)|0,(W|0)!=(r|0)):0)$l(W);c[(c[i>>2]|0)+(c[y>>2]<<2)>>2]=c[Y>>2];Y=(c[y>>2]|0)+1|0;c[y>>2]=Y;da=J;ea=Y;fa=w;ga=N;ha=M;ia=v;break}}else{da=J;ea=O;fa=w;ga=N;ha=M;ia=v}while(0);if((ea|0)<=0)break;J=da;K=ea;L=c[i>>2]|0;v=ia;M=ha;N=ga;w=fa}L=c[i>>2]|0;if((L|0)==(r|0)){l=e;return}$l(L);c[i>>2]=0;l=e;return}function dj(d,e,f){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.0;h=d+12|0;i=d+28|0;j=d+4|0;b[j>>1]=0;k=(a[e+39>>0]|0)==0?0:8;b[j>>1]=k;if(!(a[e+38>>0]|0))l=k;else{m=k|16;b[j>>1]=m;l=m}if(!(a[e+36>>0]|0))n=l;else{m=l|4;b[j>>1]=m;n=m}if(!(a[e+37>>0]|0))o=n;else{m=n|2;b[j>>1]=m;o=m}if(a[e+40>>0]|0)b[j>>1]=o|32;c[d+104>>2]=f;f=e+4|0;o=c[f>>2]|0;j=c[f+4>>2]|0;f=h;c[f>>2]=o;c[f+4>>2]=j;f=e+12|0;p=+g[f>>2];g[d+20>>2]=+F(+p);g[d+24>>2]=+E(+p);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];g[d+44>>2]=0.0;g[d+48>>2]=0.0;h=d+52|0;c[h>>2]=o;c[h+4>>2]=j;h=d+60|0;c[h>>2]=o;c[h+4>>2]=j;j=c[f>>2]|0;c[d+68>>2]=j;c[d+72>>2]=j;g[d+76>>2]=0.0;c[d+124>>2]=0;c[d+128>>2]=0;c[d+108>>2]=0;c[d+112>>2]=0;j=e+16|0;f=c[j+4>>2]|0;h=d+80|0;c[h>>2]=c[j>>2];c[h+4>>2]=f;c[d+88>>2]=c[e+24>>2];c[d+148>>2]=c[e+28>>2];c[d+152>>2]=c[e+32>>2];c[d+156>>2]=c[e+48>>2];g[d+92>>2]=0.0;g[d+96>>2]=0.0;g[d+100>>2]=0.0;g[d+160>>2]=0.0;f=c[e>>2]|0;c[d>>2]=f;p=(f|0)==2?1.0:0.0;g[d+132>>2]=p;g[d+136>>2]=p;g[d+140>>2]=0.0;g[d+144>>2]=0.0;c[d+164>>2]=c[e+44>>2];c[d+116>>2]=0;c[d+120>>2]=0;return}function ej(a){a=a|0;return}function fj(a,d){a=a|0;d=d|0;var f=0,h=0,i=0,k=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,v=0;f=l;l=l+16|0;h=f;i=a+104|0;if(c[(c[i>>2]|0)+102876>>2]&2|0){l=f;return}if((c[a>>2]|0)==(d|0)){l=f;return}c[a>>2]=d;gj(a);if((c[a>>2]|0)==0?(g[a+80>>2]=0.0,g[a+84>>2]=0.0,g[a+88>>2]=0.0,d=c[a+72>>2]|0,c[a+68>>2]=d,k=a+60|0,m=c[k>>2]|0,n=c[k+4>>2]|0,k=a+52|0,c[k>>2]=m,c[k+4>>2]=n,o=(c[j>>2]=d,+g[j>>2]),p=+F(+o),g[h+8>>2]=p,q=+E(+o),g[h+12>>2]=q,o=+g[a+44>>2],r=+g[a+48>>2],s=(c[j>>2]=m,+g[j>>2])-(q*o-p*r),t=(c[j>>2]=n,+g[j>>2])-(p*o+q*r),g[h>>2]=s,g[h+4>>2]=t,n=(c[i>>2]|0)+102880|0,m=c[a+116>>2]|0,m|0):0){d=a+12|0;k=m;do{Oi(k,n,h,d);k=c[k+4>>2]|0}while((k|0)!=0)}k=a+4|0;d=e[k>>1]|0;if(!(d&2)){b[k>>1]=d|2;g[a+160>>2]=0.0}g[a+92>>2]=0.0;g[a+96>>2]=0.0;g[a+100>>2]=0.0;d=a+128|0;k=c[d>>2]|0;h=c[i>>2]|0;if(!k)u=h;else{n=k;k=h;while(1){h=n;n=c[n+12>>2]|0;uj(k+102880|0,c[h+4>>2]|0);h=c[i>>2]|0;if(!n){u=h;break}else k=h}}c[d>>2]=0;d=u+102880|0;u=c[a+116>>2]|0;if(!u){l=f;return}else v=u;do{u=c[v+28>>2]|0;if((u|0)>0){a=v+24|0;k=0;do{Fe(d,c[(c[a>>2]|0)+(k*28|0)+24>>2]|0);k=k+1|0}while((k|0)!=(u|0))}v=c[v+4>>2]|0}while((v|0)!=0);l=f;return}function gj(a){a=a|0;var d=0,e=0,f=0,h=0,i=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0.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,C=0,D=0.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,N=0,O=0.0,P=0.0,Q=0,R=0,S=0.0,T=0,U=0.0,V=0.0,W=0.0;d=l;l=l+16|0;e=d;f=a+132|0;h=a+136|0;i=a+140|0;k=a+144|0;m=a+44|0;g[m>>2]=0.0;n=a+48|0;g[n>>2]=0.0;c[f>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;c[f+12>>2]=0;if((c[a>>2]|0)>>>0<2){o=a+12|0;p=c[o>>2]|0;q=c[o+4>>2]|0;o=a+52|0;c[o>>2]=p;c[o+4>>2]=q;o=a+60|0;c[o>>2]=p;c[o+4>>2]=q;c[a+68>>2]=c[a+72>>2];l=d;return}q=c[2179]|0;o=c[2180]|0;p=c[a+116>>2]|0;if(p){r=(c[j>>2]=o,+g[j>>2]);s=e+4|0;t=e+8|0;u=e+12|0;v=p;p=q;w=o;x=0.0;y=0.0;z=(c[j>>2]=q,+g[j>>2]);A=r;while(1){r=+g[v>>2];if(r==0.0){B=p;C=w;D=x;E=z;F=A;G=y}else{H=c[v+12>>2]|0;Va[c[(c[H>>2]|0)+32>>2]&31](H,e,r);r=+g[e>>2];I=r+ +g[f>>2];g[f>>2]=I;J=z+r*+g[s>>2];H=(g[j>>2]=J,c[j>>2]|0);K=A+r*+g[t>>2];L=(g[j>>2]=K,c[j>>2]|0);r=+g[u>>2]+ +g[i>>2];g[i>>2]=r;B=H;C=L;D=r;E=J;F=K;G=I}v=c[v+4>>2]|0;if(!v)break;else{p=B;w=C;x=D;y=G;z=E;A=F}}if(G>0.0){F=1.0/G;g[h>>2]=F;w=(g[j>>2]=(c[j>>2]=B,+g[j>>2])*F,c[j>>2]|0);M=w;N=(g[j>>2]=(c[j>>2]=C,+g[j>>2])*F,c[j>>2]|0);O=D;P=G}else{Q=B;R=C;S=D;T=10}}else{Q=q;R=o;S=0.0;T=10}if((T|0)==10){g[f>>2]=1.0;g[h>>2]=1.0;M=Q;N=R;O=S;P=1.0}if(O>0.0?(b[a+4>>1]&16)==0:0){S=(c[j>>2]=M,+g[j>>2]);D=(c[j>>2]=N,+g[j>>2]);G=O-(S*S+D*D)*P;g[i>>2]=G;U=S;V=D;W=1.0/G}else{g[i>>2]=0.0;G=(c[j>>2]=M,+g[j>>2]);U=G;V=(c[j>>2]=N,+g[j>>2]);W=0.0}g[k>>2]=W;k=a+60|0;W=+g[k>>2];i=a+64|0;G=+g[i>>2];c[m>>2]=M;c[n>>2]=N;D=+g[a+24>>2];S=+g[a+20>>2];P=+g[a+12>>2]+(U*D-S*V);O=U*S+D*V+ +g[a+16>>2];g[k>>2]=P;g[i>>2]=O;g[a+52>>2]=P;g[a+56>>2]=O;V=+g[a+88>>2];i=a+80|0;g[i>>2]=+g[i>>2]-V*(O-G);i=a+84|0;g[i>>2]=V*(P-W)+ +g[i>>2];l=d;return}function hj(a){a=a|0;var b=0,d=0,e=0.0,f=0.0,h=0.0,i=0.0,j=0.0,k=0,m=0,n=0;b=l;l=l+16|0;d=b;e=+g[a+68>>2];f=+F(+e);g[d+8>>2]=f;h=+E(+e);g[d+12>>2]=h;e=+g[a+44>>2];i=+g[a+48>>2];j=+g[a+56>>2]-(e*f+h*i);g[d>>2]=+g[a+52>>2]-(h*e-f*i);g[d+4>>2]=j;k=(c[a+104>>2]|0)+102880|0;m=c[a+116>>2]|0;if(!m){l=b;return}n=a+12|0;a=m;do{Oi(a,k,d,n);a=c[a+4>>2]|0}while((a|0)!=0);l=b;return}function ij(a,d){a=a|0;d=d|0;var e=0,f=0,h=0,i=0;e=a+104|0;f=c[e>>2]|0;if(c[f+102876>>2]&2|0){h=0;return h|0}i=Pl(f,44)|0;Ji(i);Ki(i,f,a,d);if(b[a+4>>1]&32)Mi(i,(c[e>>2]|0)+102880|0,a+12|0);d=a+116|0;c[i+4>>2]=c[d>>2];c[d>>2]=i;d=a+120|0;c[d>>2]=(c[d>>2]|0)+1;c[i+8>>2]=a;if(+g[i>>2]>0.0)gj(a);a=(c[e>>2]|0)+102876|0;c[a>>2]=c[a>>2]|1;h=i;return h|0}function jj(a,d){a=a|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;e=a+104|0;if(c[(c[e>>2]|0)+102876>>2]&2|0)return;f=a+116|0;g=c[f>>2]|0;a:do if(g|0){h=f;i=g;while(1){j=i+4|0;if((i|0)==(d|0))break;i=c[j>>2]|0;if(!i)break a;else h=j}c[h>>2]=c[d+4>>2]}while(0);g=c[a+128>>2]|0;if(g|0){f=g;do{g=c[f+4>>2]|0;f=c[f+12>>2]|0;if((c[g+48>>2]|0)==(d|0)?1:(c[g+52>>2]|0)==(d|0))uj((c[e>>2]|0)+102880|0,g)}while((f|0)!=0)}f=c[e>>2]|0;if(b[a+4>>1]&32)Ni(d,f+102880|0);Li(d,f);c[d+8>>2]=0;c[d+4>>2]=0;Ql(f,d,44);d=a+120|0;c[d>>2]=(c[d>>2]|0)+-1;gj(a);return}function kj(a,d){a=a|0;d=d|0;var e=0,f=0,h=0.0,i=0.0,k=0.0,l=0.0,m=0.0,n=0,o=0,p=0.0,q=0.0,r=0.0;if(c[(c[a+104>>2]|0)+102876>>2]&2|0)return;if((c[a>>2]|0)!=2)return;e=a+140|0;g[e>>2]=0.0;f=a+144|0;g[f>>2]=0.0;h=+g[d>>2];i=!(h<=0.0)?h:1.0;g[a+132>>2]=i;g[a+136>>2]=1.0/i;h=+g[d+12>>2];if(h>0.0?(b[a+4>>1]&16)==0:0){k=+g[d+4>>2];l=+g[d+8>>2];m=h-i*(k*k+l*l);g[e>>2]=m;g[f>>2]=1.0/m}f=a+60|0;m=+g[f>>2];e=a+64|0;l=+g[e>>2];n=d+4|0;d=c[n>>2]|0;o=c[n+4>>2]|0;n=a+44|0;c[n>>2]=d;c[n+4>>2]=o;k=+g[a+24>>2];i=(c[j>>2]=d,+g[j>>2]);h=+g[a+20>>2];p=(c[j>>2]=o,+g[j>>2]);q=+g[a+12>>2]+(k*i-h*p);r=i*h+k*p+ +g[a+16>>2];g[f>>2]=q;g[e>>2]=r;g[a+52>>2]=q;g[a+56>>2]=r;p=+g[a+88>>2];e=a+80|0;g[e>>2]=+g[e>>2]-p*(r-l);e=a+84|0;g[e>>2]=p*(q-m)+ +g[e>>2];return}function lj(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0;if((c[b>>2]|0)!=2?(c[d>>2]|0)!=2:0){e=0;return e|0}f=c[b+124>>2]|0;if(!f){e=1;return e|0}else g=f;while(1){if((c[g>>2]|0)==(d|0)?(a[(c[g+4>>2]|0)+61>>0]|0)==0:0){e=0;h=7;break}g=c[g+12>>2]|0;if(!g){e=1;h=7;break}}if((h|0)==7)return e|0;return 0} -function $a(a){a=a|0;var b=0;b=l;l=l+a|0;l=l+15&-16;return b|0}function ab(){return l|0}function bb(a){a=a|0;l=a}function cb(a,b){a=a|0;b=b|0;l=a;m=b}function db(a,b){a=a|0;b=b|0;if(!o){o=a;p=b}}function eb(a){a=a|0;z=a}function fb(){return z|0}function gb(a){a=a|0;return +(+(c[a+60>>2]|0))}function hb(d,e,f,i,j,k,m,n,o,p,q){d=d|0;e=+e;f=+f;i=+i;j=+j;k=+k;m=+m;n=+n;o=+o;p=p|0;q=+q;var r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;r=l;l=l+1104|0;s=r;t=r+1072|0;u=r+1032|0;v=r+8|0;h[s>>3]=k;c[t>>2]=0;g[t+16>>2]=e;g[t+8>>2]=f;a[t+20>>0]=i!=0.0&1;g[t+12>>2]=j;c[t+4>>2]=s;b[t+22>>1]=~~m;b[t+26>>1]=~~n;b[t+24>>1]=~~o;c[u>>2]=948;c[u+4>>2]=3;g[u+8>>2]=.009999999776482582;c[u+12>>2]=0;c[u+16>>2]=0;a[u+36>>0]=0;a[u+37>>0]=0;s=~~(q*.5);if(q>0.0){w=0;x=0}else{ye(u,v,s);c[t>>2]=u;y=ij(d,t)|0;pe(u);l=r;return y|0}while(1){z=c[p+((w|1)<<2)>>2]|0;c[v+(x<<3)>>2]=c[p+(w<<2)>>2];c[v+(x<<3)+4>>2]=z;w=w+2|0;if(!(+(w|0)>2]=u;y=ij(d,t)|0;pe(u);l=r;return y|0}function ib(a){a=a|0;ra(a|0)|0;En()}function jb(d,e,f,i,j,k,m,n,o,p,q,r){d=d|0;e=+e;f=+f;i=+i;j=+j;k=+k;m=+m;n=+n;o=+o;p=+p;q=+q;r=+r;var s=0,t=0,u=0,v=0;s=l;l=l+64|0;t=s;u=s+28|0;v=s+8|0;h[t>>3]=k;g[u+16>>2]=e;g[u+8>>2]=f;a[u+20>>0]=i!=0.0&1;g[u+12>>2]=j;c[u+4>>2]=t;b[u+22>>1]=~~m;b[u+26>>1]=~~n;b[u+24>>1]=~~o;c[v>>2]=904;c[v+4>>2]=0;g[v+12>>2]=p;g[v+16>>2]=q;g[v+8>>2]=r;c[u>>2]=v;v=ij(d,u)|0;l=s;return v|0}function kb(b,d,e,f,i,j,k,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B){b=b|0;d=+d;e=+e;f=+f;i=+i;j=+j;k=+k;m=+m;n=+n;o=+o;p=+p;q=+q;r=+r;s=+s;t=+t;u=+u;v=+v;w=+w;x=+x;y=+y;z=+z;A=+A;B=+B;var C=0,D=0,E=0,F=0;C=l;l=l+112|0;D=C;E=C+28|0;F=C+8|0;h[D>>3]=y;g[E+16>>2]=d;g[E+28>>2]=e;a[E+32>>0]=~~f;a[E+33>>0]=~~i;a[E+34>>0]=~~j;a[E+35>>0]=~~k;c[E>>2]=~~m>>>0;c[E+72>>2]=0;c[E+4>>2]=~~o>>>0;g[E+64>>2]=p;g[E+20>>2]=q;g[E+24>>2]=r;g[E+8>>2]=s;g[E+12>>2]=t;c[E+60>>2]=0;c[E+56>>2]=~~v;c[E+48>>2]=0;c[E+44>>2]=0;g[E+36>>2]=w;g[E+52>>2]=x;c[E+68>>2]=D;c[F>>2]=904;c[F+4>>2]=0;g[F+12>>2]=z;g[F+16>>2]=A;g[F+8>>2]=B;c[E+40>>2]=F;F=nk(b,E)|0;l=C;return F|0}function lb(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,m=0,n=0;k=l;l=l+48|0;m=k+16|0;n=k;c[m>>2]=904;c[m+4>>2]=0;g[m+12>>2]=b;g[m+16>>2]=d;g[m+8>>2]=e;g[n>>2]=f;g[n+4>>2]=h;g[n+8>>2]=i;g[n+12>>2]=j;j=+($j(a,m,n,0)|0);l=k;return +j}function mb(d,e,f,i,j,k,m,n,o,p,q,r,s,t,u,v,w,x,y){d=d|0;e=+e;f=+f;i=+i;j=+j;k=+k;m=+m;n=+n;o=+o;p=+p;q=+q;r=+r;s=+s;t=+t;u=+u;v=+v;w=+w;x=+x;y=+y;var z=0,A=0,B=0,C=0;z=l;l=l+96|0;A=z;B=z+56|0;C=z+8|0;h[A>>3]=k;g[B+16>>2]=e;g[B+8>>2]=f;a[B+20>>0]=i!=0.0&1;g[B+12>>2]=j;c[B+4>>2]=A;b[B+22>>1]=~~m;b[B+26>>1]=~~n;b[B+24>>1]=~~o;c[C>>2]=816;c[C+4>>2]=1;g[C+8>>2]=.009999999776482582;g[C+28>>2]=r;g[C+32>>2]=s;g[C+12>>2]=t;g[C+16>>2]=u;g[C+20>>2]=v;g[C+24>>2]=w;g[C+36>>2]=x;g[C+40>>2]=y;a[C+44>>0]=p!=0.0&1;a[C+45>>0]=q!=0.0&1;c[B>>2]=C;C=ij(d,B)|0;l=z;return C|0}function nb(d,e,f,i,j,k,m,n,o,p,q,r,s,t,u){d=d|0;e=+e;f=+f;i=+i;j=+j;k=+k;m=+m;n=+n;o=+o;p=+p;q=+q;r=+r;s=+s;t=+t;u=+u;var v=0,w=0,x=0,y=0,z=0;v=l;l=l+224|0;w=v;x=v+184|0;y=v+160|0;z=v+8|0;h[w>>3]=k;c[x>>2]=0;g[x+16>>2]=e;g[x+8>>2]=f;a[x+20>>0]=i!=0.0&1;g[x+12>>2]=j;c[x+4>>2]=w;b[x+22>>1]=~~m;b[x+26>>1]=~~n;b[x+24>>1]=~~o;g[y>>2]=p;g[y+4>>2]=q;g[y+8>>2]=r;g[y+12>>2]=s;g[y+16>>2]=t;g[y+20>>2]=u;c[z>>2]=860;c[z+4>>2]=2;g[z+8>>2]=.009999999776482582;c[z+148>>2]=0;g[z+12>>2]=0.0;g[z+16>>2]=0.0;ge(z,y,3);c[x>>2]=z;z=ij(d,x)|0;l=v;return z|0}function ob(d,e,f,i,j,k,m,n,o,p,q,r,s,t,u,v,w){d=d|0;e=+e;f=+f;i=+i;j=+j;k=+k;m=+m;n=+n;o=+o;p=+p;q=+q;r=+r;s=+s;t=+t;u=+u;v=+v;w=+w;var x=0,y=0,z=0,A=0,B=0;x=l;l=l+224|0;y=x;z=x+192|0;A=x+160|0;B=x+8|0;h[y>>3]=k;c[z>>2]=0;g[z+16>>2]=e;g[z+8>>2]=f;a[z+20>>0]=i!=0.0&1;g[z+12>>2]=j;c[z+4>>2]=y;b[z+22>>1]=~~m;b[z+26>>1]=~~n;b[z+24>>1]=~~o;g[A>>2]=p;g[A+4>>2]=q;g[A+8>>2]=r;g[A+12>>2]=s;g[A+16>>2]=t;g[A+20>>2]=u;g[A+24>>2]=v;g[A+28>>2]=w;c[B>>2]=860;c[B+4>>2]=2;g[B+8>>2]=.009999999776482582;c[B+148>>2]=0;g[B+12>>2]=0.0;g[B+16>>2]=0.0;ge(B,A,4);c[z>>2]=B;B=ij(d,z)|0;l=x;return B|0}function pb(d,e,f,i,j,k,m,n,o,p,q,r,s,t,u,v,w,x,y){d=d|0;e=+e;f=+f;i=+i;j=+j;k=+k;m=+m;n=+n;o=+o;p=+p;q=+q;r=+r;s=+s;t=+t;u=+u;v=+v;w=+w;x=+x;y=+y;var z=0,A=0,B=0,C=0,D=0;z=l;l=l+240|0;A=z;B=z+200|0;C=z+160|0;D=z+8|0;h[A>>3]=k;c[B>>2]=0;g[B+16>>2]=e;g[B+8>>2]=f;a[B+20>>0]=i!=0.0&1;g[B+12>>2]=j;c[B+4>>2]=A;b[B+22>>1]=~~m;b[B+26>>1]=~~n;b[B+24>>1]=~~o;g[C>>2]=p;g[C+4>>2]=q;g[C+8>>2]=r;g[C+12>>2]=s;g[C+16>>2]=t;g[C+20>>2]=u;g[C+24>>2]=v;g[C+28>>2]=w;g[C+32>>2]=x;g[C+36>>2]=y;c[D>>2]=860;c[D+4>>2]=2;g[D+8>>2]=.009999999776482582;c[D+148>>2]=0;g[D+12>>2]=0.0;g[D+16>>2]=0.0;ge(D,C,5);c[B>>2]=D;D=ij(d,B)|0;l=z;return D|0}function qb(d,e,f,i,j,k,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A){d=d|0;e=+e;f=+f;i=+i;j=+j;k=+k;m=+m;n=+n;o=+o;p=+p;q=+q;r=+r;s=+s;t=+t;u=+u;v=+v;w=+w;x=+x;y=+y;z=+z;A=+A;var B=0,C=0,D=0,E=0,F=0;B=l;l=l+240|0;C=B;D=B+208|0;E=B+160|0;F=B+8|0;h[C>>3]=k;c[D>>2]=0;g[D+16>>2]=e;g[D+8>>2]=f;a[D+20>>0]=i!=0.0&1;g[D+12>>2]=j;c[D+4>>2]=C;b[D+22>>1]=~~m;b[D+26>>1]=~~n;b[D+24>>1]=~~o;g[E>>2]=p;g[E+4>>2]=q;g[E+8>>2]=r;g[E+12>>2]=s;g[E+16>>2]=t;g[E+20>>2]=u;g[E+24>>2]=v;g[E+28>>2]=w;g[E+32>>2]=x;g[E+36>>2]=y;g[E+40>>2]=z;g[E+44>>2]=A;c[F>>2]=860;c[F+4>>2]=2;g[F+8>>2]=.009999999776482582;c[F+148>>2]=0;g[F+12>>2]=0.0;g[F+16>>2]=0.0;ge(F,E,6);c[D>>2]=F;F=ij(d,D)|0;l=B;return F|0}function rb(d,e,f,i,j,k,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C){d=d|0;e=+e;f=+f;i=+i;j=+j;k=+k;m=+m;n=+n;o=+o;p=+p;q=+q;r=+r;s=+s;t=+t;u=+u;v=+v;w=+w;x=+x;y=+y;z=+z;A=+A;B=+B;C=+C;var D=0,E=0,F=0,G=0,H=0;D=l;l=l+256|0;E=D;F=D+216|0;G=D+160|0;H=D+8|0;h[E>>3]=k;c[F>>2]=0;g[F+16>>2]=e;g[F+8>>2]=f;a[F+20>>0]=i!=0.0&1;g[F+12>>2]=j;c[F+4>>2]=E;b[F+22>>1]=~~m;b[F+26>>1]=~~n;b[F+24>>1]=~~o;g[G>>2]=p;g[G+4>>2]=q;g[G+8>>2]=r;g[G+12>>2]=s;g[G+16>>2]=t;g[G+20>>2]=u;g[G+24>>2]=v;g[G+28>>2]=w;g[G+32>>2]=x;g[G+36>>2]=y;g[G+40>>2]=z;g[G+44>>2]=A;g[G+48>>2]=B;g[G+52>>2]=C;c[H>>2]=860;c[H+4>>2]=2;g[H+8>>2]=.009999999776482582;c[H+148>>2]=0;g[H+12>>2]=0.0;g[H+16>>2]=0.0;ge(H,G,7);c[F>>2]=H;H=ij(d,F)|0;l=D;return H|0}function sb(d,e,f,i,j,k,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E){d=d|0;e=+e;f=+f;i=+i;j=+j;k=+k;m=+m;n=+n;o=+o;p=+p;q=+q;r=+r;s=+s;t=+t;u=+u;v=+v;w=+w;x=+x;y=+y;z=+z;A=+A;B=+B;C=+C;D=+D;E=+E;var F=0,G=0,H=0,I=0,J=0;F=l;l=l+256|0;G=F;H=F+224|0;I=F+160|0;J=F+8|0;h[G>>3]=k;c[H>>2]=0;g[H+16>>2]=e;g[H+8>>2]=f;a[H+20>>0]=i!=0.0&1;g[H+12>>2]=j;c[H+4>>2]=G;b[H+22>>1]=~~m;b[H+26>>1]=~~n;b[H+24>>1]=~~o;g[I>>2]=p;g[I+4>>2]=q;g[I+8>>2]=r;g[I+12>>2]=s;g[I+16>>2]=t;g[I+20>>2]=u;g[I+24>>2]=v;g[I+28>>2]=w;g[I+32>>2]=x;g[I+36>>2]=y;g[I+40>>2]=z;g[I+44>>2]=A;g[I+48>>2]=B;g[I+52>>2]=C;g[I+56>>2]=D;g[I+60>>2]=E;c[J>>2]=860;c[J+4>>2]=2;g[J+8>>2]=.009999999776482582;c[J+148>>2]=0;g[J+12>>2]=0.0;g[J+16>>2]=0.0;ge(J,I,8);c[H>>2]=J;J=ij(d,H)|0;l=F;return J|0}function tb(b,d,e,f,i,j,k,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G){b=b|0;d=+d;e=+e;f=+f;i=+i;j=+j;k=+k;m=+m;n=+n;o=+o;p=+p;q=+q;r=+r;s=+s;t=+t;u=+u;v=+v;w=+w;x=+x;y=+y;z=+z;A=+A;B=+B;C=+C;D=+D;E=+E;F=+F;G=+G;var H=0,I=0,J=0,K=0,L=0,M=0;H=l;l=l+272|0;I=H;J=H+192|0;K=H+160|0;L=H+8|0;h[I>>3]=y;M=J+40|0;c[M>>2]=0;g[J+16>>2]=d;g[J+28>>2]=e;a[J+32>>0]=~~f;a[J+33>>0]=~~i;a[J+34>>0]=~~j;a[J+35>>0]=~~k;c[J>>2]=~~m>>>0;c[J+72>>2]=0;c[J+4>>2]=~~o>>>0;g[J+64>>2]=p;g[J+20>>2]=q;g[J+24>>2]=r;g[J+8>>2]=s;g[J+12>>2]=t;c[J+60>>2]=0;c[J+56>>2]=~~v;c[J+48>>2]=0;c[J+44>>2]=0;g[J+36>>2]=w;g[J+52>>2]=x;c[J+68>>2]=I;g[K>>2]=z;g[K+4>>2]=A;g[K+8>>2]=B;g[K+12>>2]=C;g[K+16>>2]=D;g[K+20>>2]=E;g[K+24>>2]=F;g[K+28>>2]=G;c[L>>2]=860;c[L+4>>2]=2;g[L+8>>2]=.009999999776482582;c[L+148>>2]=0;g[L+12>>2]=0.0;g[L+16>>2]=0.0;ge(L,K,4);c[M>>2]=L;L=nk(b,J)|0;l=H;return L|0}function ub(a,b,d,e,f,h,i,j,k,m,n,o,p){a=a|0;b=+b;d=+d;e=+e;f=+f;h=+h;i=+i;j=+j;k=+k;m=+m;n=+n;o=+o;p=+p;var q=0,r=0,s=0,t=0;q=l;l=l+208|0;r=q+168|0;s=q+16|0;t=q;g[r>>2]=b;g[r+4>>2]=d;g[r+8>>2]=e;g[r+12>>2]=f;g[r+16>>2]=h;g[r+20>>2]=i;g[r+24>>2]=j;g[r+28>>2]=k;c[s>>2]=860;c[s+4>>2]=2;g[s+8>>2]=.009999999776482582;c[s+148>>2]=0;g[s+12>>2]=0.0;g[s+16>>2]=0.0;ge(s,r,4);g[t>>2]=m;g[t+4>>2]=n;g[t+8>>2]=o;g[t+12>>2]=p;p=+($j(a,s,t,0)|0);l=q;return +p}function vb(a,d,e){a=a|0;d=+d;e=+e;var f=0.0,h=0,i=0,j=0,k=0,l=0;f=d;if((c[a>>2]|0)!=2)return;h=a+4|0;i=b[h>>1]|0;if(e!=0.0&(i&2)==0?(j=i&65535,(j&2|0)==0):0){k=(j|2)&65535;b[h>>1]=k;g[a+160>>2]=0.0;l=k}else l=i;if(!(l&2))return;l=a+88|0;g[l>>2]=+g[l>>2]+f*+g[a+144>>2];return}function wb(a,d,e,f,h,i){a=a|0;d=+d;e=+e;f=+f;h=+h;i=+i;var j=0.0,k=0,l=0,m=0,n=0,o=0;j=d;d=e;e=f;f=h;if((c[a>>2]|0)!=2)return;k=a+4|0;l=b[k>>1]|0;if(i!=0.0&(l&2)==0?(m=l&65535,(m&2|0)==0):0){n=(m|2)&65535;b[k>>1]=n;g[a+160>>2]=0.0;o=n}else o=l;if(!(o&2))return;o=a+92|0;g[o>>2]=j+ +g[o>>2];o=a+96|0;g[o>>2]=d+ +g[o>>2];o=a+100|0;g[o>>2]=+g[o>>2]+(d*(e-+g[a+60>>2])-j*(f-+g[a+64>>2]));return}function xb(a,d,e,f,h,i){a=a|0;d=+d;e=+e;f=+f;h=+h;i=+i;var j=0.0,k=0,l=0,m=0,n=0,o=0;j=d;d=e;e=f;f=h;if((c[a>>2]|0)!=2)return;k=a+4|0;l=b[k>>1]|0;if(i!=0.0&(l&2)==0?(m=l&65535,(m&2|0)==0):0){n=(m|2)&65535;b[k>>1]=n;g[a+160>>2]=0.0;o=n}else o=l;if(!(o&2))return;o=a+92|0;g[o>>2]=j+ +g[o>>2];o=a+96|0;g[o>>2]=d+ +g[o>>2];o=a+100|0;g[o>>2]=+g[o>>2]+(d*(e-+g[a+60>>2])-j*(f-+g[a+64>>2]));return}function yb(a,d,e,f){a=a|0;d=+d;e=+e;f=+f;var h=0.0,i=0,j=0,k=0,l=0,m=0;h=d;d=e;if((c[a>>2]|0)!=2)return;i=a+4|0;j=b[i>>1]|0;if(f!=0.0&(j&2)==0?(k=j&65535,(k&2|0)==0):0){l=(k|2)&65535;b[i>>1]=l;g[a+160>>2]=0.0;m=l}else m=j;if(!(m&2))return;m=a+92|0;g[m>>2]=h+ +g[m>>2];m=a+96|0;g[m>>2]=d+ +g[m>>2];return}function zb(a,d,e){a=a|0;d=+d;e=+e;var f=0.0,h=0,i=0,j=0,k=0,l=0;f=d;if((c[a>>2]|0)!=2)return;h=a+4|0;i=b[h>>1]|0;if(e!=0.0&(i&2)==0?(j=i&65535,(j&2|0)==0):0){k=(j|2)&65535;b[h>>1]=k;g[a+160>>2]=0.0;l=k}else l=i;if(!(l&2))return;l=a+100|0;g[l>>2]=f+ +g[l>>2];return}function Ab(a,b){a=a|0;b=b|0;jj(a,b);return}function Bb(a){a=a|0;return +(+g[a+72>>2])}function Cb(a){a=a|0;return +(+g[a+88>>2])}function Db(a){a=a|0;var b=0.0,c=0.0;b=+g[a+44>>2];c=+g[a+48>>2];return +(+g[a+140>>2]+ +g[a+132>>2]*(b*b+c*c))}function Eb(a,b){a=a|0;b=b|0;var d=0;d=c[a+84>>2]|0;c[b>>2]=c[a+80>>2];c[b+4>>2]=d;return}function Fb(a,b,c,d){a=a|0;b=+b;c=+c;d=d|0;var e=0.0,f=0.0;e=b-+g[a+12>>2];b=c-+g[a+16>>2];c=+g[a+24>>2];f=+g[a+20>>2];g[d>>2]=e*c+b*f;g[d+4>>2]=c*b-e*f;return}function Gb(a,b,c,d){a=a|0;b=+b;c=+c;d=d|0;var e=0.0,f=0.0;e=b-+g[a+12>>2];b=c-+g[a+16>>2];c=+g[a+24>>2];f=+g[a+20>>2];g[d>>2]=e*c+b*f;g[d+4>>2]=c*b-e*f;return}function Hb(a){a=a|0;return +(+g[a+132>>2])}function Ib(a,b){a=a|0;b=b|0;var d=0;d=c[a+16>>2]|0;c[b>>2]=c[a+12>>2];c[b+4>>2]=d;return}function Jb(a,b){a=a|0;b=b|0;c[b>>2]=c[a+12>>2];c[b+4>>2]=c[a+16>>2];c[b+8>>2]=c[a+20>>2];c[b+12>>2]=c[a+24>>2];return}function Kb(a){a=a|0;return +(+((c[a>>2]|0)>>>0))}function Lb(a,b){a=a|0;b=b|0;var d=0;d=c[a+64>>2]|0;c[b>>2]=c[a+60>>2];c[b+4>>2]=d;return}function Mb(a,b,c,d){a=a|0;b=+b;c=+c;d=d|0;var e=0.0,f=0.0,h=0.0;e=b;b=c;c=+g[a+24>>2];f=+g[a+20>>2];h=b*c+e*f+ +g[a+16>>2];g[d>>2]=+g[a+12>>2]+(e*c-b*f);g[d+4>>2]=h;return}function Nb(a,b,c,d){a=a|0;b=+b;c=+c;d=d|0;var e=0.0,f=0.0,h=0.0;e=b;b=c;c=+g[a+24>>2];f=+g[a+20>>2];h=b*c+e*f+ +g[a+16>>2];g[d>>2]=+g[a+12>>2]+(e*c-b*f);g[d+4>>2]=h;return}function Ob(a,d){a=a|0;d=+d;var f=0,h=0,i=0,j=0;f=a+4|0;h=e[f>>1]|0;do if(d!=0.0)if(!(h&2)){b[f>>1]=h|2;i=a+160|0;break}else return;else{b[f>>1]=h&65533;g[a+160>>2]=0.0;j=a+80|0;c[j>>2]=0;c[j+4>>2]=0;c[j+8>>2]=0;c[j+12>>2]=0;c[j+16>>2]=0;i=a+100|0}while(0);g[i>>2]=0.0;return}function Pb(a,b){a=a|0;b=+b;nj(a,b!=0.0);return}function Qb(a,d){a=a|0;d=+d;var f=0.0,h=0,i=0;f=d;if(!(c[a>>2]|0))return;if(f*f>0.0?(h=a+4|0,i=e[h>>1]|0,(i&2|0)==0):0){b[h>>1]=i|2;g[a+160>>2]=0.0}g[a+88>>2]=f;return}function Rb(a,d,f){a=a|0;d=+d;f=+f;var h=0.0,i=0,j=0;h=d;d=f;if(!(c[a>>2]|0))return;if(h*h+d*d>0.0?(i=a+4|0,j=e[i>>1]|0,(j&2|0)==0):0){b[i>>1]=j|2;g[a+160>>2]=0.0}g[a+80>>2]=h;g[a+84>>2]=d;return}function Sb(a,b,c,d,e){a=a|0;b=+b;c=+c;d=+d;e=+e;var f=0,h=0;f=l;l=l+16|0;h=f;g[h>>2]=b;g[h+4>>2]=c;g[h+8>>2]=d;g[h+12>>2]=e;kj(a,h);l=f;return}function Tb(a,b,c,d){a=a|0;b=+b;c=+c;d=+d;var e=0,f=0;e=l;l=l+16|0;f=e;g[f>>2]=b;g[f+4>>2]=c;mj(a,f,d);l=e;return}function Ub(a,b){a=a|0;b=+b;fj(a,~~b>>>0);return}function Vb(a,b){a=a|0;b=+b;g[a+156>>2]=b;return}function Wb(a){a=a|0;return +(+g[a+156>>2])}function Xb(a,b,d){a=a|0;b=+b;d=+d;var e=0,f=0,h=0;e=l;l=l+16|0;f=e;g[f>>2]=b;g[f+4>>2]=d;h=c[a+12>>2]|0;d=+((Sa[c[(c[h>>2]|0)+16>>2]&15](h,(c[a+8>>2]|0)+12|0,f)|0)&1);l=e;return +d}function Yb(a){a=a|0;return}function Zb(a){a=a|0;return}function _b(a,b){a=+a;b=+b;var c=0,d=0,e=0;c=l;l=l+16|0;d=c;e=dn(103048)|0;g[d>>2]=a;g[d+4>>2]=b;Pi(e,d);l=c;return e|0}function $b(b,d,e,f,h,i,j,k,m,n,o,p,q,r,s,t,u){b=b|0;d=+d;e=+e;f=+f;h=+h;i=+i;j=+j;k=+k;m=+m;n=+n;o=+o;p=+p;q=+q;r=+r;s=+s;t=+t;u=u|0;var v=0,w=0;v=l;l=l+64|0;w=v;a[w+40>>0]=d!=0.0&1;a[w+36>>0]=e!=0.0&1;g[w+12>>2]=f;g[w+24>>2]=h;g[w+32>>2]=i;a[w+37>>0]=j!=0.0&1;a[w+39>>0]=k!=0.0&1;a[w+38>>0]=m!=0.0&1;g[w+48>>2]=n;g[w+28>>2]=o;g[w+16>>2]=p;g[w+20>>2]=q;g[w+4>>2]=r;g[w+8>>2]=s;c[w>>2]=~~t>>>0;c[w+44>>2]=u;u=Ti(b,w)|0;l=v;return u|0}function ac(b,d,e,f,h,i,j,k,m,n,o,p,q,r,s,t,u,v){b=b|0;d=+d;e=+e;f=+f;h=+h;i=+i;j=+j;k=+k;m=+m;n=+n;o=+o;p=+p;q=+q;r=+r;s=+s;t=+t;u=+u;v=+v;var w=0,x=0,y=0;w=l;l=l+96|0;x=w;a[x>>0]=0;g[x+4>>2]=1.0;g[x+8>>2]=1.0;c[x+16>>2]=0;g[x+72>>2]=d;g[x+24>>2]=e;a[x+76>>0]=f!=0.0&1;g[x+56>>2]=h;g[x+28>>2]=i;g[x+80>>2]=j;g[x+52>>2]=k;g[x+20>>2]=m;g[x+12>>2]=n;g[x+48>>2]=o;g[x+32>>2]=p;c[x+68>>2]=~~q;g[x+64>>2]=r;g[x+60>>2]=s;g[x+44>>2]=t;g[x+40>>2]=u;g[x+36>>2]=v;y=Xi(b,x)|0;l=w;return y|0}function bc(a){a=a|0;if(!a)return;Qi(a);fn(a);return}function cc(a,b){a=a|0;b=b|0;Ui(a,b);return}function dc(a,b){a=a|0;b=b|0;Vi(a,b);return}function ec(a,b){a=a|0;b=b|0;Ri(a,b);return}function fc(a,b,c,d,e){a=a|0;b=+b;c=+c;d=+d;e=+e;var f=0,h=0;f=l;l=l+16|0;h=f;g[h>>2]=b;g[h+4>>2]=c;g[h+8>>2]=d;g[h+12>>2]=e;$i(a,8444,h);l=f;return}function gc(a,b,c,d,e){a=a|0;b=+b;c=+c;d=+d;e=+e;var f=0,h=0,i=0;f=l;l=l+16|0;h=f+8|0;i=f;g[h>>2]=b;g[h+4>>2]=c;g[i>>2]=d;g[i+4>>2]=e;bj(a,8448,h,i);l=f;return}function hc(a){a=a|0;Si(a,8440);return}function ic(a,b,c){a=a|0;b=+b;c=+c;g[a+102980>>2]=b;g[a+102984>>2]=c;return}function jc(a,b,c,d){a=a|0;b=+b;c=+c;d=+d;_i(a,b,~~c,~~d,3);return}function kc(a){a=a|0;return a+64|0}function lc(a){a=a|0;var b=0,d=0;b=c[a+48>>2]|0;d=c[a+52>>2]|0;Ye(8452,a+64|0,(c[b+8>>2]|0)+12|0,+g[(c[b+12>>2]|0)+8>>2],(c[d+8>>2]|0)+12|0,+g[(c[d+12>>2]|0)+8>>2]);return 8452}function mc(b,d,e,f,h,i,j,k,m,n,o){b=b|0;d=d|0;e=e|0;f=+f;h=+h;i=+i;j=+j;k=+k;m=+m;n=+n;o=+o;var p=0,q=0;p=l;l=l+48|0;q=p;c[q+4>>2]=0;c[q>>2]=3;c[q+8>>2]=d;c[q+12>>2]=e;a[q+16>>0]=f!=0.0&1;g[q+44>>2]=h;g[q+40>>2]=i;g[q+36>>2]=j;g[q+20>>2]=k;g[q+24>>2]=m;g[q+28>>2]=n;g[q+32>>2]=o;e=Wi(b,q)|0;l=p;return e|0}function nc(b,d,e,f,h,i,j,k,m,n){b=b|0;d=d|0;e=e|0;f=+f;h=+h;i=+i;j=+j;k=+k;m=+m;n=+n;var o=0,p=0,q=0,r=0,s=0;o=l;l=l+64|0;p=o+16|0;q=o+8|0;r=o;s=p+4|0;c[s>>2]=0;c[s+4>>2]=0;c[s+8>>2]=0;c[p>>2]=3;s=p+20|0;c[s>>2]=0;c[s+4>>2]=0;c[s+8>>2]=0;c[s+12>>2]=0;g[p+36>>2]=1.0;a[p+16>>0]=k!=0.0&1;g[p+44>>2]=m;g[p+40>>2]=n;g[q>>2]=f;g[q+4>>2]=h;g[r>>2]=i;g[r+4>>2]=j;Tf(p,d,e,q,r);r=Wi(b,p)|0;l=o;return r|0}function oc(b,d,e,f,h,i,j,k,m,n){b=b|0;d=d|0;e=e|0;f=+f;h=+h;i=+i;j=+j;k=+k;m=+m;n=+n;var o=0,p=0;o=l;l=l+48|0;p=o;c[p+4>>2]=0;c[p>>2]=9;c[p+8>>2]=d;c[p+12>>2]=e;a[p+16>>0]=f!=0.0&1;g[p+20>>2]=h;g[p+24>>2]=i;g[p+28>>2]=j;g[p+32>>2]=k;g[p+36>>2]=m;g[p+40>>2]=n;e=Wi(b,p)|0;l=o;return e|0}function pc(b,d,e,f,h,i,j,k){b=b|0;d=d|0;e=e|0;f=+f;h=+h;i=+i;j=+j;k=+k;var m=0,n=0,o=0,p=0;m=l;l=l+64|0;n=m+8|0;o=m;p=n+4|0;c[p>>2]=0;c[p+4>>2]=0;c[p+8>>2]=0;c[n>>2]=9;p=n+20|0;c[p>>2]=0;c[p+4>>2]=0;c[p+8>>2]=0;c[p+12>>2]=0;a[n+16>>0]=i!=0.0&1;g[n+36>>2]=j;g[n+40>>2]=k;g[o>>2]=f;g[o+4>>2]=h;cg(n,d,e,o);o=Wi(b,n)|0;l=m;return o|0}function qc(a){a=a|0;return +(+zg(a))}function rc(b,d,e,f,h,i,j){b=b|0;d=d|0;e=e|0;f=+f;h=h|0;i=i|0;j=+j;var k=0,m=0;k=l;l=l+32|0;m=k;c[m+4>>2]=0;c[m>>2]=6;c[m+8>>2]=d;c[m+12>>2]=e;a[m+16>>0]=f!=0.0&1;c[m+20>>2]=h;c[m+24>>2]=i;g[m+28>>2]=j;i=Wi(b,m)|0;l=k;return i|0}function sc(a){a=a|0;return c[a+48>>2]|0}function tc(a){a=a|0;return c[a+52>>2]|0}function uc(a,b){a=a|0;b=+b;Jf(a,b);return}function vc(a,b,c){a=a|0;b=+b;c=+c;var d=0,e=0;d=l;l=l+16|0;e=d;g[e>>2]=b;g[e+4>>2]=c;If(a,e);l=d;return}function wc(b,d,e,f,h,i,j,k,m,n){b=b|0;d=d|0;e=e|0;f=+f;h=+h;i=+i;j=+j;k=+k;m=+m;n=+n;var o=0,p=0;o=l;l=l+48|0;p=o;c[p+4>>2]=0;c[p>>2]=11;c[p+8>>2]=d;c[p+12>>2]=e;a[p+16>>0]=f!=0.0&1;g[p+28>>2]=h;g[p+40>>2]=i;g[p+20>>2]=j;g[p+24>>2]=k;g[p+32>>2]=m;g[p+36>>2]=n;e=Wi(b,p)|0;l=o;return e|0}function xc(b,d,e,f,h,i,j){b=b|0;d=d|0;e=e|0;f=+f;h=+h;i=+i;j=+j;var k=0,m=0,n=0;k=l;l=l+48|0;m=k;n=m+4|0;c[n>>2]=0;c[n+4>>2]=0;c[n+8>>2]=0;c[m>>2]=11;g[m+20>>2]=0.0;g[m+24>>2]=0.0;g[m+28>>2]=0.0;a[m+16>>0]=f!=0.0&1;g[m+40>>2]=h;g[m+32>>2]=i;g[m+36>>2]=j;Gf(m,d,e);e=Wi(b,m)|0;l=k;return e|0}function yc(a,b,c){a=a|0;b=+b;c=+c;var d=0,e=0;d=l;l=l+16|0;e=d;g[e>>2]=b;g[e+4>>2]=c;vf(a,e);l=d;return}function zc(b,d,e,f,h,i,j,k,m){b=b|0;d=d|0;e=e|0;f=+f;h=+h;i=+i;j=+j;k=+k;m=+m;var n=0,o=0;n=l;l=l+48|0;o=n;c[o+4>>2]=0;c[o>>2]=5;c[o+8>>2]=d;c[o+12>>2]=e;a[o+16>>0]=f!=0.0&1;g[o+36>>2]=h;g[o+32>>2]=i;g[o+28>>2]=j;g[o+20>>2]=k;g[o+24>>2]=m;e=Wi(b,o)|0;l=n;return e|0}function Ac(a,b){a=a|0;b=+b;Ng(a,b!=0.0);return}function Bc(a,b){a=a|0;b=+b;Pg(a,b!=0.0);return}function Cc(a){a=a|0;return +(+Lg(a))}function Dc(a){a=a|0;return +(+g[a+132>>2])}function Ec(a,b){a=a|0;b=+b;return +(+Rg(a,b))}function Fc(a){a=a|0;return +(+((Mg(a)|0)&1))}function Gc(a){a=a|0;return +(+((Og(a)|0)&1))}function Hc(a,b){a=a|0;b=+b;Qg(a,b);return}function Ic(b,d,e,f,h,i,j,k,m,n,o,p,q,r,s,t,u){b=b|0;d=d|0;e=e|0;f=+f;h=+h;i=+i;j=+j;k=+k;m=+m;n=+n;o=+o;p=+p;q=+q;r=+r;s=+s;t=+t;u=+u;var v=0,w=0;v=l;l=l+80|0;w=v;c[w+4>>2]=0;c[w>>2]=2;c[w+8>>2]=d;c[w+12>>2]=e;a[w+16>>0]=f!=0.0&1;a[w+48>>0]=h!=0.0&1;a[w+60>>0]=i!=0.0&1;g[w+20>>2]=j;g[w+24>>2]=k;g[w+28>>2]=m;g[w+32>>2]=n;g[w+36>>2]=o;g[w+40>>2]=p;g[w+52>>2]=q;g[w+64>>2]=r;g[w+68>>2]=s;g[w+44>>2]=t;g[w+56>>2]=u;e=Wi(b,w)|0;l=v;return e|0}function Jc(b,d,e,f,h,i,j,k,m,n,o,p,q,r){b=b|0;d=d|0;e=e|0;f=+f;h=+h;i=+i;j=+j;k=+k;m=+m;n=+n;o=+o;p=+p;q=+q;r=+r;var s=0,t=0,u=0,v=0,w=0;s=l;l=l+96|0;t=s+16|0;u=s+8|0;v=s;w=t+4|0;c[w>>2]=0;c[w+4>>2]=0;c[w+8>>2]=0;c[t>>2]=2;w=t+20|0;c[w>>2]=0;c[w+4>>2]=0;c[w+8>>2]=0;c[w+12>>2]=0;g[t+36>>2]=1.0;g[t+40>>2]=0.0;g[t+44>>2]=0.0;a[t+16>>0]=k!=0.0&1;a[t+48>>0]=m!=0.0&1;a[t+60>>0]=n!=0.0&1;g[t+52>>2]=o;g[t+64>>2]=p;g[t+68>>2]=q;g[t+56>>2]=r;g[u>>2]=f;g[u+4>>2]=h;g[v>>2]=i;g[v+4>>2]=j;Jg(t,d,e,u,v);v=Wi(b,t)|0;l=s;return v|0}function Kc(b,d,e,f,h,i,j,k,m,n,o,p,q,r,s){b=b|0;d=d|0;e=e|0;f=+f;h=+h;i=+i;j=+j;k=+k;m=+m;n=+n;o=+o;p=+p;q=+q;r=+r;s=+s;var t=0,u=0;t=l;l=l+64|0;u=t;c[u+4>>2]=0;c[u>>2]=4;c[u+8>>2]=d;c[u+12>>2]=e;a[u+16>>0]=f!=0.0&1;g[u+20>>2]=h;g[u+24>>2]=i;g[u+28>>2]=j;g[u+32>>2]=k;g[u+52>>2]=m;g[u+56>>2]=n;g[u+36>>2]=o;g[u+40>>2]=p;g[u+44>>2]=q;g[u+48>>2]=r;g[u+60>>2]=s;e=Wi(b,u)|0;l=t;return e|0}function Lc(b,d,e,f,h,i,j,k,m,n,o,p,q){b=b|0;d=d|0;e=e|0;f=+f;h=+h;i=+i;j=+j;k=+k;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;r=l;l=l+96|0;s=r+32|0;t=r+24|0;u=r+16|0;v=r+8|0;w=r;x=s+4|0;c[x>>2]=0;c[x+4>>2]=0;c[x+8>>2]=0;c[s>>2]=4;g[s+20>>2]=-1.0;g[s+24>>2]=1.0;g[s+28>>2]=1.0;g[s+32>>2]=1.0;g[s+36>>2]=-1.0;g[s+40>>2]=0.0;g[s+44>>2]=1.0;g[s+48>>2]=0.0;g[s+52>>2]=0.0;g[s+56>>2]=0.0;g[s+60>>2]=1.0;a[s+16>>0]=q!=0.0&1;g[t>>2]=k;g[t+4>>2]=m;g[u>>2]=n;g[u+4>>2]=o;g[v>>2]=f;g[v+4>>2]=h;g[w>>2]=i;g[w+4>>2]=j;Sh(s,d,e,t,u,v,w,p);w=Wi(b,s)|0;l=r;return w|0}function Mc(a,b){a=a|0;b=+b;vh(a,b!=0.0);return}function Nc(a,b){a=a|0;b=+b;sh(a,b!=0.0);return}function Oc(a){a=a|0;return +(+qh(a))}function Pc(a){a=a|0;return +(+((uh(a)|0)&1))}function Qc(a){a=a|0;return +(+((rh(a)|0)&1))}function Rc(b,d,e,f,h,i,j,k,m,n,o,p,q,r,s){b=b|0;d=d|0;e=e|0;f=+f;h=+h;i=+i;j=+j;k=+k;m=+m;n=+n;o=+o;p=+p;q=+q;r=+r;s=+s;var t=0,u=0;t=l;l=l+64|0;u=t;c[u+4>>2]=0;c[u>>2]=1;c[u+8>>2]=d;c[u+12>>2]=e;a[u+16>>0]=f!=0.0&1;a[u+40>>0]=h!=0.0&1;a[u+52>>0]=i!=0.0&1;g[u+20>>2]=k;g[u+24>>2]=m;g[u+28>>2]=n;g[u+32>>2]=o;g[u+44>>2]=j;g[u+60>>2]=p;g[u+56>>2]=q;g[u+36>>2]=r;g[u+48>>2]=s;e=Wi(b,u)|0;l=t;return e|0}function Sc(b,d,e,f,h,i,j,k,m,n,o,p){b=b|0;d=d|0;e=e|0;f=+f;h=+h;i=+i;j=+j;k=+k;m=+m;n=+n;o=+o;p=+p;var q=0,r=0,s=0,t=0;q=l;l=l+80|0;r=q+8|0;s=q;t=r+4|0;c[t>>2]=0;c[t+4>>2]=0;c[t+8>>2]=0;c[r>>2]=1;t=r+20|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;a[r+16>>0]=i!=0.0&1;a[r+40>>0]=j!=0.0&1;a[r+52>>0]=k!=0.0&1;g[r+44>>2]=m;g[r+60>>2]=n;g[r+56>>2]=o;g[r+48>>2]=p;g[s>>2]=f;g[s+4>>2]=h;oh(r,d,e,s);s=Wi(b,r)|0;l=q;return s|0}function Tc(a,b){a=a|0;b=+b;th(a,b);return}function Uc(b,d,e,f,h,i,j,k,m){b=b|0;d=d|0;e=e|0;f=+f;h=+h;i=+i;j=+j;k=+k;m=+m;var n=0,o=0;n=l;l=l+48|0;o=n;c[o+4>>2]=0;c[o>>2]=10;c[o+8>>2]=d;c[o+12>>2]=e;a[o+16>>0]=f!=0.0&1;g[o+20>>2]=h;g[o+24>>2]=i;g[o+28>>2]=j;g[o+32>>2]=k;g[o+36>>2]=m;e=Wi(b,o)|0;l=n;return e|0}function Vc(b,d,e,f,h,i,j,k,m,n,o){b=b|0;d=d|0;e=e|0;f=+f;h=+h;i=+i;j=+j;k=+k;m=+m;n=+n;o=+o;var p=0,q=0;p=l;l=l+48|0;q=p;c[q+4>>2]=0;c[q>>2]=8;c[q+8>>2]=d;c[q+12>>2]=e;a[q+16>>0]=f!=0.0&1;g[q+44>>2]=h;g[q+40>>2]=i;g[q+20>>2]=j;g[q+24>>2]=k;g[q+28>>2]=m;g[q+32>>2]=n;g[q+36>>2]=o;e=Wi(b,q)|0;l=p;return e|0}function Wc(b,d,e,f,h,i,j,k){b=b|0;d=d|0;e=e|0;f=+f;h=+h;i=+i;j=+j;k=+k;var m=0,n=0,o=0,p=0;m=l;l=l+64|0;n=m+8|0;o=m;p=n+4|0;c[p>>2]=0;c[p+4>>2]=0;c[p+8>>2]=0;c[n>>2]=8;p=n+20|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;a[n+16>>0]=i!=0.0&1;g[n+44>>2]=j;g[n+40>>2]=k;g[o>>2]=f;g[o+4>>2]=h;ng(n,d,e,o);o=Wi(b,n)|0;l=m;return o|0}function Xc(a,b){a=a|0;b=+b;Hh(a,b);return}function Yc(a,b){a=a|0;b=+b;g[a+68>>2]=b;return}function Zc(b,d,e,f,h,i,j,k,m,n,o,p,q,r,s){b=b|0;d=d|0;e=e|0;f=+f;h=+h;i=+i;j=+j;k=+k;m=+m;n=+n;o=+o;p=+p;q=+q;r=+r;s=+s;var t=0,u=0;t=l;l=l+64|0;u=t;c[u+4>>2]=0;c[u>>2]=7;c[u+8>>2]=d;c[u+12>>2]=e;a[u+16>>0]=f!=0.0&1;g[u+60>>2]=h;a[u+44>>0]=i!=0.0&1;g[u+56>>2]=j;g[u+20>>2]=k;g[u+24>>2]=m;g[u+28>>2]=n;g[u+32>>2]=o;g[u+36>>2]=p;g[u+40>>2]=q;g[u+48>>2]=r;g[u+52>>2]=s;e=Wi(b,u)|0;l=t;return e|0}function _c(b,d,e,f,h,i,j,k,m,n,o,p,q){b=b|0;d=d|0;e=e|0;f=+f;h=+h;i=+i;j=+j;k=+k;m=+m;n=+n;o=+o;p=+p;q=+q;var r=0,s=0,t=0,u=0,v=0;r=l;l=l+80|0;s=r+16|0;t=r+8|0;u=r;v=s+4|0;c[v>>2]=0;c[v+4>>2]=0;c[v+8>>2]=0;c[s>>2]=7;v=s+20|0;c[v>>2]=0;c[v+4>>2]=0;c[v+8>>2]=0;c[v+12>>2]=0;g[s+36>>2]=1.0;g[s+40>>2]=0.0;a[s+16>>0]=k!=0.0&1;g[s+60>>2]=m;a[s+44>>0]=n!=0.0&1;g[s+56>>2]=o;g[s+48>>2]=p;g[s+52>>2]=q;g[t>>2]=f;g[t+4>>2]=h;g[u>>2]=i;g[u+4>>2]=j;Fh(s,d,e,t,u);u=Wi(b,s)|0;l=r;return u|0}function $c(a,b,c){a=a|0;b=+b;c=+c;var d=0,e=0;d=l;l=l+16|0;e=d;g[e>>2]=b;g[e+4>>2]=c;Mj(a,e);l=d;return}function ad(a,b,c){a=a|0;b=+b;c=+c;var d=0,e=0;d=l;l=l+16|0;e=d;g[e>>2]=b;g[e+4>>2]=c;Nj(a,e);l=d;return}function bd(a,b){a=a|0;b=+b;Oj(a,b!=0.0);return}function cd(a){a=a|0;return +(+(c[a+4>>2]|0))}function dd(a){a=a|0;return +(+((c[a+8>>2]|0)-(c[a+4>>2]|0)|0))}function ed(b,d,e,f,i,j,k,m,n,o,p,q,r){b=b|0;d=+d;e=+e;f=+f;i=+i;j=+j;k=+k;m=+m;n=+n;o=+o;p=+p;q=+q;r=+r;var s=0,t=0,u=0,v=0;s=l;l=l+64|0;t=s+8|0;u=s;v=s+16|0;h[t>>3]=k;h[u>>3]=p;a[v+20>>0]=~~d;a[v+21>>0]=~~f;a[v+22>>0]=~~e;a[v+23>>0]=~~i;c[v>>2]=~~j>>>0;c[v+32>>2]=t;g[v+24>>2]=m;g[v+4>>2]=n;g[v+8>>2]=o;c[v+28>>2]=u;g[v+12>>2]=q;g[v+16>>2]=r;r=+(Vj(b,v)|0);l=s;return +r}function fd(a){a=a|0;return Uj(a)|0}function gd(a){a=a|0;return +(+(c[a+44>>2]|0))}function hd(a,b){a=a|0;b=+b;return +(+Hl(a,~~b))}function id(a){a=a|0;return c[a+96>>2]|0}function jd(a){a=a|0;return c[a+104>>2]|0}function kd(a,b){a=a|0;b=+b;g[a+340>>2]=b;return}function ld(a,b){a=a|0;b=+b;var c=0.0;c=b;g[a+320>>2]=c;g[a+28>>2]=1.0/c;return}function md(a,b){a=a|0;b=+b;g[a+324>>2]=b;return}function nd(a,b){a=a|0;b=+b;c[a+332>>2]=~~b;return}function od(a,b,c){a=a|0;b=+b;c=+c;Yj(a,~~b,c);return}function pd(a,b){a=a|0;b=+b;var c=0.0;c=b*2.0;g[a+32>>2]=c;g[a+40>>2]=c*c;g[a+36>>2]=1.0/c;return}function qd(a){a=a|0;fn(a);return}function rd(a,b){a=a|0;b=b|0;Ba(b|0);return}function sd(a,b){a=a|0;b=b|0;Fa(b|0);return}function td(a,b,c){a=a|0;b=b|0;c=c|0;return}function ud(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return}function vd(a,b,c){a=a|0;b=b|0;c=c|0;return}function wd(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return}function xd(a,b,c){a=a|0;b=b|0;c=c|0;na(b|0,c|0);return}function yd(a,b,c){a=a|0;b=b|0;c=c|0;Ha(b|0,c|0);return}function zd(a){a=a|0;fn(a);return}function Ad(a,b){a=a|0;b=b|0;return Ga(b|0)|0}function Bd(a,b,c){a=a|0;b=b|0;c=c|0;return 0}function Cd(a,b){a=a|0;b=b|0;return 1}function Dd(a){a=a|0;fn(a);return}function Ed(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=+e;return +(+va(b|0,+(+g[c>>2]),+(+g[c+4>>2]),+(+g[d>>2]),+(+g[d+4>>2]),+e))}function Fd(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=+f;return 0.0}function Gd(a,b){a=a|0;b=b|0;return 1}function Hd(a){a=a|0;return}function Id(){c[2110]=712;c[2111]=760;c[2112]=788;return}function Jd(d,e){d=d|0;e=e|0;var f=0,h=0,i=0,k=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,B=0.0,C=0.0,D=0.0,G=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,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0.0,ba=0.0,ca=0,da=0.0,ea=0.0,fa=0.0,ga=0.0,ha=0.0,ia=0.0,ja=0.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.0,wa=0.0,xa=0,ya=0.0,za=0.0,Aa=0.0,Ba=0,Ca=0,Da=0,Ea=0,Fa=0,Ga=0,Ha=0,Ia=0.0,Ja=0.0,Ka=0,La=0.0,Ma=0.0,Na=0.0;f=l;l=l+320|0;h=f;i=f+284|0;k=f+248|0;m=f+236|0;n=f+144|0;o=f+120|0;p=f+16|0;q=f+12|0;r=f+8|0;Vl(h);c[2123]=(c[2123]|0)+1;c[d>>2]=0;s=c[e+128>>2]|0;t=d+4|0;c[t>>2]=s;u=e+28|0;v=i;w=e+56|0;x=v+36|0;do{c[v>>2]=c[w>>2];v=v+4|0;w=w+4|0}while((v|0)<(x|0));v=k;w=e+92|0;x=v+36|0;do{c[v>>2]=c[w>>2];v=v+4|0;w=w+4|0}while((v|0)<(x|0));w=i+24|0;y=+g[w>>2];z=+A(+(y/6.2831854820251465))*6.2831854820251465;B=y-z;g[w>>2]=B;v=i+28|0;y=+g[v>>2]-z;g[v>>2]=y;x=k+24|0;z=+g[x>>2];C=+A(+(z/6.2831854820251465))*6.2831854820251465;D=z-C;g[x>>2]=D;G=k+28|0;z=+g[G>>2]-C;g[G>>2]=z;C=(c[j>>2]=s,+g[j>>2]);H=+g[e+24>>2]+ +g[e+52>>2]+-.014999999664723873;I=H<.004999999888241291?.004999999888241291:H;b[m+4>>1]=0;c[n>>2]=c[e>>2];c[n+4>>2]=c[e+4>>2];c[n+8>>2]=c[e+8>>2];c[n+12>>2]=c[e+12>>2];c[n+16>>2]=c[e+16>>2];c[n+20>>2]=c[e+20>>2];c[n+24>>2]=c[e+24>>2];J=n+28|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];c[J+16>>2]=c[u+16>>2];c[J+20>>2]=c[u+20>>2];c[J+24>>2]=c[u+24>>2];a[n+88>>0]=0;J=i+8|0;K=i+12|0;L=i+16|0;M=i+20|0;N=i+4|0;O=k+8|0;P=k+12|0;Q=k+16|0;R=k+20|0;S=k+4|0;T=n+56|0;U=n+60|0;V=n+64|0;W=n+68|0;X=n+72|0;Y=n+76|0;Z=n+80|0;_=n+84|0;$=o+16|0;H=I+1.2499999720603228e-03;aa=I+-1.2499999720603228e-03;ba=0.0;ca=0;da=D;D=z;z=B;B=y;while(1){y=1.0-ba;ea=y*z+ba*B;fa=+F(+ea);ga=+E(+ea);ea=+g[i>>2];ha=+g[N>>2];ia=y*+g[K>>2]+ba*+g[M>>2]-(fa*ea+ga*ha);ja=y*da+ba*D;ka=+F(+ja);la=+E(+ja);ja=+g[k>>2];ma=+g[S>>2];na=y*+g[O>>2]+ba*+g[Q>>2]-(la*ja-ka*ma);oa=y*+g[P>>2]+ba*+g[R>>2]-(ka*ja+la*ma);g[T>>2]=y*+g[J>>2]+ba*+g[L>>2]-(ga*ea-fa*ha);g[U>>2]=ia;g[V>>2]=fa;g[W>>2]=ga;g[X>>2]=na;g[Y>>2]=oa;g[Z>>2]=ka;g[_>>2]=la;Pd(o,m,n);la=+g[$>>2];if(la<=0.0){pa=0.0;qa=2;ra=20;break}if(laH)){sa=0;ka=C;oa=la;while(1){if(oa>aa){ta=ka;ua=0;break a}na=+Md(p,c[q>>2]|0,c[r>>2]|0,ba);if(na>2]|0,c[r>>2]|0,Aa);ga=na-I;Ba=(ga>0.0?ga:-ga)<1.2499999720603228e-03;Ca=na>I;if((xa|0)==50|Ba)break;else{va=Ca?va:Aa;wa=Ca?Aa:wa;ya=Ca?na:ya;za=Ca?za:na}}ka=Ba?Aa:ka;Ca=c[2127]|0;c[2127]=(Ca|0)>(xa|0)?Ca:xa;sa=sa+1|0;if((sa|0)==8){ta=ba;ua=0;break a}oa=+Ld(p,q,r,ka);if(oa>H){ra=5;break a}}if((ra|0)==8){ra=0;c[d>>2]=1;g[t>>2]=ba;ta=ba;ua=1;break}else if((ra|0)==10){ra=0;c[d>>2]=3;g[t>>2]=ba;ta=ba;ua=1;break}}else ra=5;while(0);if((ra|0)==5){ra=0;c[d>>2]=4;c[t>>2]=s;ta=ba;ua=1}sa=ca+1|0;c[2124]=(c[2124]|0)+1;if(ua){Da=sa;break}if((sa|0)==20){ra=19;break}ba=ta;ca=sa;da=+g[x>>2];D=+g[G>>2];z=+g[w>>2];B=+g[v>>2]}if((ra|0)==19){c[d>>2]=1;g[t>>2]=ta;Da=20}else if((ra|0)==20){c[d>>2]=qa;g[t>>2]=pa;Ea=ca;Fa=c[2125]|0;Ga=(Fa|0)>(Ea|0);Ha=Ga?Fa:Ea;c[2125]=Ha;Ia=+Xl(h);Ja=+g[2122];Ka=Ja>Ia;La=Ka?Ja:Ia;g[2122]=La;Ma=+g[2121];Na=Ia+Ma;g[2121]=Na;l=f;return}Ea=Da;Fa=c[2125]|0;Ga=(Fa|0)>(Ea|0);Ha=Ga?Fa:Ea;c[2125]=Ha;Ia=+Xl(h);Ja=+g[2122];Ka=Ja>Ia;La=Ka?Ja:Ia;g[2122]=La;Ma=+g[2121];Na=Ia+Ma;g[2121]=Na;l=f;return}function Kd(e,f,h,i,j,k,l){e=e|0;f=f|0;h=h|0;i=i|0;j=j|0;k=k|0;l=+l;var 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,D=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;c[e>>2]=h;c[e+4>>2]=j;m=b[f+4>>1]|0;n=e+8|0;o=n;p=i;i=o+36|0;do{c[o>>2]=c[p>>2];o=o+4|0;p=p+4|0}while((o|0)<(i|0));q=e+44|0;o=q;p=k;i=o+36|0;do{c[o>>2]=c[p>>2];o=o+4|0;p=p+4|0}while((o|0)<(i|0));r=1.0-l;s=r*+g[e+32>>2]+ +g[e+36>>2]*l;t=+F(+s);u=+E(+s);s=+g[n>>2];v=+g[e+12>>2];w=r*+g[e+16>>2]+ +g[e+24>>2]*l-(u*s-t*v);x=r*+g[e+20>>2]+ +g[e+28>>2]*l-(t*s+u*v);v=r*+g[e+68>>2]+ +g[e+72>>2]*l;s=+F(+v);y=+E(+v);v=+g[q>>2];z=+g[e+48>>2];A=r*+g[e+52>>2]+ +g[e+60>>2]*l-(y*v-s*z);B=r*+g[e+56>>2]+ +g[e+64>>2]*l-(s*v+y*z);if(m<<16>>16==1){c[e+80>>2]=0;m=d[f+6>>0]|0;q=c[h+16>>2]|0;z=+g[q+(m<<3)>>2];v=+g[q+(m<<3)+4>>2];m=d[f+9>>0]|0;q=c[j+16>>2]|0;l=+g[q+(m<<3)>>2];r=+g[q+(m<<3)+4>>2];D=A+(y*l-s*r)-(w+(u*z-t*v));G=B+(s*l+y*r)-(x+(t*z+u*v));m=e+92|0;g[m>>2]=D;q=e+96|0;g[q>>2]=G;v=+C(+(D*D+G*G));z=1.0/v;if(v<1.1920928955078125e-07)H=0.0;else{g[m>>2]=D*z;g[q>>2]=z*G;H=v}q=8716;m=c[q+4>>2]|0;n=e+84|0;c[n>>2]=c[q>>2];c[n+4>>2]=m;I=H;return +I}m=f+6|0;n=f+7|0;q=e+80|0;if((a[m>>0]|0)==(a[n>>0]|0)){c[q>>2]=2;p=d[f+9>>0]|0;o=c[j+16>>2]|0;H=+g[o+(p<<3)>>2];v=+g[o+(p<<3)+4>>2];p=d[f+10>>0]|0;G=+g[o+(p<<3)>>2];z=+g[o+(p<<3)+4>>2];D=G-H;r=z-v;l=-D;p=e+92|0;g[p>>2]=r;o=e+96|0;g[o>>2]=l;J=+C(+(D*D+r*r));D=1.0/J;if(J<1.1920928955078125e-07){K=r;L=l}else{J=D*l;l=r*D;g[p>>2]=l;g[o>>2]=J;K=l;L=J}J=(H+G)*.5;G=(v+z)*.5;g[e+84>>2]=J;g[e+88>>2]=G;i=d[m>>0]|0;k=c[h+16>>2]|0;z=+g[k+(i<<3)>>2];v=+g[k+(i<<3)+4>>2];H=(y*K-s*L)*(w+(u*z-t*v)-(A+(y*J-s*G)))+(s*K+y*L)*(x+(t*z+u*v)-(B+(s*J+y*G)));if(!(H<0.0)){I=H;return +I}g[p>>2]=-K;g[o>>2]=-L;I=-H;return +I}else{c[q>>2]=1;q=d[m>>0]|0;m=c[h+16>>2]|0;H=+g[m+(q<<3)>>2];L=+g[m+(q<<3)+4>>2];q=d[n>>0]|0;K=+g[m+(q<<3)>>2];G=+g[m+(q<<3)+4>>2];J=K-H;v=G-L;z=-J;q=e+92|0;g[q>>2]=v;m=e+96|0;g[m>>2]=z;l=+C(+(J*J+v*v));J=1.0/l;if(l<1.1920928955078125e-07){M=v;N=z}else{l=J*z;z=v*J;g[q>>2]=z;g[m>>2]=l;M=z;N=l}l=(H+K)*.5;K=(L+G)*.5;g[e+84>>2]=l;g[e+88>>2]=K;e=d[f+9>>0]|0;f=c[j+16>>2]|0;G=+g[f+(e<<3)>>2];L=+g[f+(e<<3)+4>>2];H=(u*M-t*N)*(A+(y*G-s*L)-(w+(u*l-t*K)))+(t*M+u*N)*(B+(s*G+y*L)-(x+(t*l+u*K)));if(!(H<0.0)){I=H;return +I}g[q>>2]=-M;g[m>>2]=-N;I=-H;return +I}return +(0.0)}function Ld(a,b,d,e){a=a|0;b=b|0;d=d|0;e=+e;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,s=0,t=0.0,u=0.0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0.0,G=0.0,H=0.0,I=0,J=0;f=1.0-e;h=f*+g[a+32>>2]+ +g[a+36>>2]*e;i=+F(+h);j=+E(+h);h=+g[a+8>>2];k=+g[a+12>>2];l=f*+g[a+16>>2]+ +g[a+24>>2]*e-(j*h-i*k);m=f*+g[a+20>>2]+ +g[a+28>>2]*e-(i*h+j*k);k=f*+g[a+68>>2]+ +g[a+72>>2]*e;h=+F(+k);n=+E(+k);k=+g[a+44>>2];o=+g[a+48>>2];p=f*+g[a+52>>2]+ +g[a+60>>2]*e-(n*k-h*o);q=f*+g[a+56>>2]+ +g[a+64>>2]*e-(h*k+n*o);switch(c[a+80>>2]|0){case 0:{r=a+92|0;o=+g[r>>2];s=a+96|0;k=+g[s>>2];e=j*o+i*k;f=j*k-i*o;t=-o;o=-k;k=n*t+h*o;u=n*o-h*t;v=c[a>>2]|0;w=c[v+16>>2]|0;x=c[v+20>>2]|0;if((x|0)>1){v=1;t=e*+g[w>>2]+f*+g[w+4>>2];y=0;while(1){o=e*+g[w+(v<<3)>>2]+f*+g[w+(v<<3)+4>>2];z=o>t;A=z?v:y;v=v+1|0;if((v|0)==(x|0)){B=A;break}else{t=z?o:t;y=A}}}else B=0;c[b>>2]=B;B=c[a+4>>2]|0;y=c[B+16>>2]|0;x=c[B+20>>2]|0;if((x|0)>1){B=1;t=k*+g[y>>2]+u*+g[y+4>>2];v=0;while(1){f=k*+g[y+(B<<3)>>2]+u*+g[y+(B<<3)+4>>2];A=f>t;z=A?B:v;B=B+1|0;if((B|0)==(x|0)){C=z;break}else{t=A?f:t;v=z}}}else C=0;c[d>>2]=C;v=c[b>>2]|0;t=+g[w+(v<<3)>>2];u=+g[w+(v<<3)+4>>2];k=+g[y+(C<<3)>>2];f=+g[y+(C<<3)+4>>2];D=+g[r>>2]*(p+(n*k-h*f)-(l+(j*t-i*u)))+ +g[s>>2]*(q+(h*k+n*f)-(m+(i*t+j*u)));return +D}case 1:{u=+g[a+92>>2];t=+g[a+96>>2];f=j*u-i*t;k=i*u+j*t;t=+g[a+84>>2];u=+g[a+88>>2];e=l+(j*t-i*u);o=m+(i*t+j*u);u=-f;t=-k;G=n*u+h*t;H=n*t-h*u;c[b>>2]=-1;s=c[a+4>>2]|0;r=c[s+16>>2]|0;C=c[s+20>>2]|0;if((C|0)>1){s=1;u=G*+g[r>>2]+H*+g[r+4>>2];y=0;while(1){t=G*+g[r+(s<<3)>>2]+H*+g[r+(s<<3)+4>>2];v=t>u;w=v?s:y;s=s+1|0;if((s|0)==(C|0)){I=w;break}else{u=v?t:u;y=w}}}else I=0;c[d>>2]=I;u=+g[r+(I<<3)>>2];H=+g[r+(I<<3)+4>>2];D=f*(p+(n*u-h*H)-e)+k*(q+(h*u+n*H)-o);return +D}case 2:{o=+g[a+92>>2];H=+g[a+96>>2];u=n*o-h*H;k=h*o+n*H;H=+g[a+84>>2];o=+g[a+88>>2];e=p+(n*H-h*o);p=q+(h*H+n*o);o=-u;n=-k;H=j*o+i*n;h=j*n-i*o;c[d>>2]=-1;I=c[a>>2]|0;a=c[I+16>>2]|0;r=c[I+20>>2]|0;if((r|0)>1){I=1;o=H*+g[a>>2]+h*+g[a+4>>2];y=0;while(1){n=H*+g[a+(I<<3)>>2]+h*+g[a+(I<<3)+4>>2];C=n>o;s=C?I:y;I=I+1|0;if((I|0)==(r|0)){J=s;break}else{o=C?n:o;y=s}}}else J=0;c[b>>2]=J;o=+g[a+(J<<3)>>2];h=+g[a+(J<<3)+4>>2];D=u*(l+(j*o-i*h)-e)+k*(m+(i*o+j*h)-p);return +D}default:{c[b>>2]=-1;c[d>>2]=-1;D=0.0;return +D}}return +(0.0)}function Md(a,b,d,e){a=a|0;b=b|0;d=d|0;e=+e;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,s=0.0,t=0.0,u=0.0;f=1.0-e;h=f*+g[a+32>>2]+ +g[a+36>>2]*e;i=+F(+h);j=+E(+h);h=+g[a+8>>2];k=+g[a+12>>2];l=f*+g[a+16>>2]+ +g[a+24>>2]*e-(j*h-i*k);m=f*+g[a+20>>2]+ +g[a+28>>2]*e-(i*h+j*k);k=f*+g[a+68>>2]+ +g[a+72>>2]*e;h=+F(+k);n=+E(+k);k=+g[a+44>>2];o=+g[a+48>>2];p=f*+g[a+52>>2]+ +g[a+60>>2]*e-(n*k-h*o);q=f*+g[a+56>>2]+ +g[a+64>>2]*e-(h*k+n*o);switch(c[a+80>>2]|0){case 0:{r=c[(c[a>>2]|0)+16>>2]|0;o=+g[r+(b<<3)>>2];k=+g[r+(b<<3)+4>>2];r=c[(c[a+4>>2]|0)+16>>2]|0;e=+g[r+(d<<3)>>2];f=+g[r+(d<<3)+4>>2];s=+g[a+92>>2]*(p+(n*e-h*f)-(l+(j*o-i*k)))+ +g[a+96>>2]*(q+(h*e+n*f)-(m+(i*o+j*k)));return +s}case 1:{k=+g[a+92>>2];o=+g[a+96>>2];f=+g[a+84>>2];e=+g[a+88>>2];r=c[(c[a+4>>2]|0)+16>>2]|0;t=+g[r+(d<<3)>>2];u=+g[r+(d<<3)+4>>2];s=(j*k-i*o)*(p+(n*t-h*u)-(l+(j*f-i*e)))+(i*k+j*o)*(q+(h*t+n*u)-(m+(i*f+j*e)));return +s}case 2:{e=+g[a+92>>2];f=+g[a+96>>2];u=+g[a+84>>2];t=+g[a+88>>2];d=c[(c[a>>2]|0)+16>>2]|0;o=+g[d+(b<<3)>>2];k=+g[d+(b<<3)+4>>2];s=(n*e-h*f)*(l+(j*o-i*k)-(p+(n*u-h*t)))+(h*e+n*f)*(m+(i*o+j*k)-(q+(h*u+n*t)));return +s}default:{s=0.0;return +s}}return +(0.0)}function Nd(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;switch(c[b+4>>2]|0){case 0:{c[a+16>>2]=b+12;e=1;break}case 2:{c[a+16>>2]=b+20;e=c[b+148>>2]|0;break}case 3:{f=b+12|0;g=(c[f>>2]|0)+(d<<3)|0;h=c[g+4>>2]|0;i=a;c[i>>2]=c[g>>2];c[i+4>>2]=h;h=d+1|0;d=c[f>>2]|0;f=(h|0)<(c[b+16>>2]|0)?d+(h<<3)|0:d;d=c[f+4>>2]|0;h=a+8|0;c[h>>2]=c[f>>2];c[h+4>>2]=d;c[a+16>>2]=a;e=2;break}case 1:{c[a+16>>2]=b+12;e=2;break}default:return}c[a+20>>2]=e;c[a+24>>2]=c[b+8>>2];return}function Od(a){a=a|0;var b=0.0,d=0.0,e=0,f=0.0,h=0.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,y=0,z=0;b=+g[a+16>>2];d=+g[a+20>>2];e=a+36|0;f=+g[a+52>>2];h=+g[a+56>>2];i=a+72|0;j=+g[a+88>>2];k=+g[a+92>>2];l=f-b;m=h-d;n=b*l+d*m;o=f*l+h*m;p=j-b;q=k-d;r=b*p+d*q;s=j*p+k*q;t=j-f;u=k-h;v=f*t+h*u;w=j*t+k*u;u=l*q-m*p;p=(f*k-h*j)*u;m=(d*j-b*k)*u;k=(b*h-d*f)*u;if(n>=-0.0&r>=-0.0){g[a+24>>2]=1.0;c[a+108>>2]=1;return}if(o>0.0&n<-0.0&k<=0.0){u=1.0/(o-n);g[a+24>>2]=o*u;g[a+60>>2]=-(n*u);c[a+108>>2]=2;return}if(s>0.0&r<-0.0&m<=0.0){u=1.0/(s-r);g[a+24>>2]=s*u;g[a+96>>2]=-(r*u);c[a+108>>2]=2;x=e;y=i;z=x+36|0;do{c[x>>2]=c[y>>2];x=x+4|0;y=y+4|0}while((x|0)<(z|0));return}if(o<=0.0&v>=-0.0){g[a+60>>2]=1.0;c[a+108>>2]=1;x=a;y=e;z=x+36|0;do{c[x>>2]=c[y>>2];x=x+4|0;y=y+4|0}while((x|0)<(z|0));return}if(s<=0.0&w<=0.0){g[a+96>>2]=1.0;c[a+108>>2]=1;x=a;y=i;z=x+36|0;do{c[x>>2]=c[y>>2];x=x+4|0;y=y+4|0}while((x|0)<(z|0));return}if(w>0.0&v<-0.0&p<=0.0){s=1.0/(w-v);g[a+60>>2]=w*s;g[a+96>>2]=-(v*s);c[a+108>>2]=2;x=a;y=i;z=x+36|0;do{c[x>>2]=c[y>>2];x=x+4|0;y=y+4|0}while((x|0)<(z|0));return}else{s=1.0/(k+(p+m));g[a+24>>2]=p*s;g[a+60>>2]=m*s;g[a+96>>2]=k*s;c[a+108>>2]=3;return}}function Pd(d,e,f){d=d|0;e=e|0;f=f|0;var h=0,i=0,k=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,D=0,E=0,F=0,G=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.0,T=0.0,U=0.0,V=0,W=0,X=0,Y=0,Z=0.0,_=0.0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0.0,ga=0.0,ha=0.0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0.0,ra=0,sa=0.0,ta=0;h=l;l=l+176|0;i=h+152|0;k=h+136|0;m=h;n=h+124|0;o=h+112|0;c[2128]=(c[2128]|0)+1;p=f+56|0;c[i>>2]=c[p>>2];c[i+4>>2]=c[p+4>>2];c[i+8>>2]=c[p+8>>2];c[i+12>>2]=c[p+12>>2];p=f+72|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];Qd(m,e,f,i,f+28|0,k);c[n>>2]=0;c[n+4>>2]=0;c[n+8>>2]=0;c[o>>2]=0;c[o+4>>2]=0;c[o+8>>2]=0;p=m+108|0;q=i+12|0;r=i+8|0;s=f+16|0;t=f+20|0;u=i+4|0;v=k+12|0;w=k+8|0;x=f+44|0;y=f+48|0;z=k+4|0;A=m+16|0;B=m+20|0;D=m+52|0;E=m+56|0;F=m+36|0;G=m+24|0;H=m+60|0;I=0;J=c[p>>2]|0;a:while(1){K=(J|0)>0;if(K){L=0;do{c[n+(L<<2)>>2]=c[m+(L*36|0)+28>>2];c[o+(L<<2)>>2]=c[m+(L*36|0)+32>>2];L=L+1|0}while((L|0)!=(J|0))}b:do switch(J|0){case 3:{Od(m);L=c[p>>2]|0;if((L|0)==3){M=11;break a}else{N=L;M=13}break}case 2:{O=+g[A>>2];P=+g[B>>2];Q=+g[D>>2];R=+g[E>>2];S=Q-O;T=R-P;U=O*S+P*T;do if(!(U>=-0.0)){P=Q*S+R*T;if(!(P<=0.0)){O=1.0/(P-U);g[G>>2]=P*O;g[H>>2]=-(U*O);V=2;break}else{g[H>>2]=1.0;c[p>>2]=1;L=m;W=F;X=L+36|0;do{c[L>>2]=c[W>>2];L=L+4|0;W=W+4|0}while((L|0)<(X|0));M=14;break b}}else{g[G>>2]=1.0;V=1}while(0);c[p>>2]=V;N=V;M=13;break}default:{N=J;M=13}}while(0);c:do if((M|0)==13){M=0;switch(N|0){case 1:{M=14;break c;break}case 2:break;default:{Y=N;Z=+g[2179];_=+g[2180];break c}}U=+g[A>>2];T=+g[D>>2]-U;R=+g[B>>2];S=+g[E>>2]-R;if(U*S-T*R>0.0){Y=2;Z=-S;_=T;break}else{Y=2;Z=S;_=-T;break}}while(0);if((M|0)==14){M=0;Y=1;Z=-+g[A>>2];_=-+g[B>>2]}if(Z*Z+_*_<1.4210854715202004e-14){$=I;aa=Y;M=32;break}T=-Z;S=-_;R=+g[q>>2];U=+g[r>>2];Q=R*T+U*S;O=R*S-U*T;W=c[s>>2]|0;L=c[t>>2]|0;if((L|0)>1){X=1;T=Q*+g[W>>2]+O*+g[W+4>>2];ba=0;while(1){S=Q*+g[W+(X<<3)>>2]+O*+g[W+(X<<3)+4>>2];ca=S>T;da=ca?X:ba;X=X+1|0;if((X|0)==(L|0)){ea=da;break}else{T=ca?S:T;ba=da}}}else ea=0;c[m+(Y*36|0)+28>>2]=ea;T=+g[W+(ea<<3)>>2];O=+g[W+(ea<<3)+4>>2];Q=+g[i>>2]+(R*T-U*O);S=T*U+R*O+ +g[u>>2];g[m+(Y*36|0)>>2]=Q;g[m+(Y*36|0)+4>>2]=S;O=+g[v>>2];T=+g[w>>2];P=Z*O+_*T;fa=_*O-Z*T;ba=c[x>>2]|0;L=c[y>>2]|0;if((L|0)>1){X=1;ga=P*+g[ba>>2]+fa*+g[ba+4>>2];da=0;while(1){ha=P*+g[ba+(X<<3)>>2]+fa*+g[ba+(X<<3)+4>>2];ca=ha>ga;ia=ca?X:da;X=X+1|0;if((X|0)==(L|0)){ja=ia;break}else{ga=ca?ha:ga;da=ia}}}else ja=0;c[m+(Y*36|0)+32>>2]=ja;ga=+g[ba+(ja<<3)>>2];fa=+g[ba+(ja<<3)+4>>2];P=+g[k>>2]+(O*ga-T*fa);R=ga*T+O*fa+ +g[z>>2];g[m+(Y*36|0)+8>>2]=P;g[m+(Y*36|0)+12>>2]=R;g[m+(Y*36|0)+16>>2]=P-Q;g[m+(Y*36|0)+20>>2]=R-S;ka=I+1|0;c[2129]=(c[2129]|0)+1;if(K){da=0;do{if((ea|0)==(c[n+(da<<2)>>2]|0)?(ja|0)==(c[o+(da<<2)>>2]|0):0){M=31;break a}da=da+1|0}while((da|0)<(J|0))}da=(c[p>>2]|0)+1|0;c[p>>2]=da;if((ka|0)<20){I=ka;J=da}else{$=ka;aa=da;M=32;break}}if((M|0)==11){J=c[2130]|0;c[2130]=(J|0)>(I|0)?J:I;la=I;ma=d+8|0;M=36}else if((M|0)==31){$=ka;aa=c[p>>2]|0;M=32}d:do if((M|0)==32){p=c[2130]|0;c[2130]=(p|0)>($|0)?p:$;p=d+8|0;switch(aa|0){case 3:{la=$;ma=p;M=36;break d;break}case 1:{ka=m;I=c[ka>>2]|0;J=c[ka+4>>2]|0;ka=d;c[ka>>2]=I;c[ka+4>>2]=J;J=m+8|0;ka=c[J+4>>2]|0;o=p;c[o>>2]=c[J>>2];c[o+4>>2]=ka;na=$;oa=d;pa=p;qa=(c[j>>2]=I,+g[j>>2]);ra=1;break d;break}case 2:{Z=+g[G>>2];_=+g[H>>2];S=Z*+g[m>>2]+_*+g[m+36>>2];Q=Z*+g[m+4>>2]+_*+g[m+40>>2];g[d>>2]=S;g[d+4>>2]=Q;Q=Z*+g[m+12>>2]+_*+g[m+48>>2];g[p>>2]=Z*+g[m+8>>2]+_*+g[m+44>>2];g[d+12>>2]=Q;na=$;oa=d;pa=p;qa=S;ra=2;break d;break}default:{na=$;oa=d;pa=p;qa=+g[d>>2];ra=aa;break d}}}while(0);if((M|0)==36){S=+g[G>>2];Q=+g[H>>2];_=+g[m+96>>2];Z=S*+g[m+4>>2]+Q*+g[m+40>>2]+_*+g[m+76>>2];g[d>>2]=S*+g[m>>2]+Q*+g[m+36>>2]+_*+g[m+72>>2];g[d+4>>2]=Z;H=d;G=c[H>>2]|0;aa=c[H+4>>2]|0;H=ma;c[H>>2]=G;c[H+4>>2]=aa;na=la;oa=d;pa=ma;qa=(c[j>>2]=G,+g[j>>2]);ra=3}Z=qa-+g[pa>>2];G=d+4|0;ma=d+12|0;qa=+g[G>>2]-+g[ma>>2];la=d+16|0;g[la>>2]=+C(+(Z*Z+qa*qa));c[d+20>>2]=na;switch(ra|0){case 3:{qa=+g[A>>2];Z=+g[B>>2];sa=(+g[D>>2]-qa)*(+g[m+92>>2]-Z)-(+g[E>>2]-Z)*(+g[m+88>>2]-qa);M=40;break}case 2:{qa=+g[A>>2]-+g[D>>2];Z=+g[B>>2]-+g[E>>2];sa=+C(+(qa*qa+Z*Z));M=40;break}default:{g[e>>2]=0.0;b[e+4>>1]=ra;if((ra|0)>0){ta=0;M=42}}}if((M|0)==40){g[e>>2]=sa;b[e+4>>1]=ra;ta=0;M=42}if((M|0)==42)while(1){M=0;a[e+6+ta>>0]=c[m+(ta*36|0)+28>>2];a[e+9+ta>>0]=c[m+(ta*36|0)+32>>2];ta=ta+1|0;if((ta|0)>=(ra|0))break;else M=42}if(!(a[f+88>>0]|0)){l=h;return}sa=+g[f+24>>2];Z=+g[f+52>>2];qa=+g[la>>2];_=sa+Z;if(qa>_&qa>1.1920928955078125e-07){g[la>>2]=qa-_;_=+g[pa>>2];qa=+g[oa>>2];Q=_-qa;S=+g[ma>>2];O=+g[G>>2];T=S-O;R=+C(+(Q*Q+T*T));f=R<1.1920928955078125e-07;P=1.0/R;R=f?Q:Q*P;Q=f?T:T*P;g[oa>>2]=qa+sa*R;g[G>>2]=O+sa*Q;g[pa>>2]=_-Z*R;g[ma>>2]=S-Z*Q;l=h;return}else{Q=(+g[oa>>2]+ +g[pa>>2])*.5;Z=(+g[G>>2]+ +g[ma>>2])*.5;g[oa>>2]=Q;g[G>>2]=Z;g[pa>>2]=Q;g[ma>>2]=Z;g[la>>2]=0.0;l=h;return}}function Qd(a,e,f,h,i,j){a=a|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,w=0,x=0,y=0.0,z=0.0,A=0.0,B=0.0,D=0.0,E=0.0,F=0.0,G=0.0,H=0.0;k=b[e+4>>1]|0;l=k&65535;m=a+108|0;c[m>>2]=l;if(!(k<<16>>16))n=l;else{l=f+16|0;k=i+16|0;o=h+12|0;p=h+8|0;q=h+4|0;r=j+12|0;s=j+8|0;t=j+4|0;u=0;do{v=d[e+6+u>>0]|0;c[a+(u*36|0)+28>>2]=v;w=d[e+9+u>>0]|0;c[a+(u*36|0)+32>>2]=w;x=c[l>>2]|0;y=+g[x+(v<<3)>>2];z=+g[x+(v<<3)+4>>2];v=c[k>>2]|0;A=+g[v+(w<<3)>>2];B=+g[v+(w<<3)+4>>2];D=+g[o>>2];E=+g[p>>2];F=+g[h>>2]+(y*D-z*E);G=z*D+y*E+ +g[q>>2];g[a+(u*36|0)>>2]=F;g[a+(u*36|0)+4>>2]=G;E=+g[r>>2];y=+g[s>>2];D=+g[j>>2]+(A*E-B*y);z=B*E+A*y+ +g[t>>2];g[a+(u*36|0)+8>>2]=D;g[a+(u*36|0)+12>>2]=z;g[a+(u*36|0)+16>>2]=D-F;g[a+(u*36|0)+20>>2]=z-G;g[a+(u*36|0)+24>>2]=0.0;u=u+1|0;w=c[m>>2]|0}while((u|0)<(w|0));n=w}if((n|0)<=1){if(n|0)return}else{G=+g[e>>2];switch(n|0){case 3:{z=+g[a+16>>2];F=+g[a+20>>2];H=(+g[a+52>>2]-z)*(+g[a+92>>2]-F)-(+g[a+56>>2]-F)*(+g[a+88>>2]-z);break}case 2:{z=+g[a+16>>2]-+g[a+52>>2];F=+g[a+20>>2]-+g[a+56>>2];H=+C(+(z*z+F*F));break}default:H=0.0}if(!(H>2]=0}c[a+28>>2]=0;c[a+32>>2]=0;n=c[f+16>>2]|0;H=+g[n>>2];G=+g[n+4>>2];n=c[i+16>>2]|0;F=+g[n>>2];z=+g[n+4>>2];D=+g[h+12>>2];y=+g[h+8>>2];A=+g[h>>2]+(H*D-G*y);E=G*D+H*y+ +g[h+4>>2];g[a>>2]=A;g[a+4>>2]=E;y=+g[j+12>>2];H=+g[j+8>>2];D=+g[j>>2]+(F*y-z*H);G=z*y+F*H+ +g[j+4>>2];g[a+8>>2]=D;g[a+12>>2]=G;g[a+16>>2]=D-A;g[a+20>>2]=G-E;g[a+24>>2]=1.0;c[m>>2]=1;return}function Rd(a){a=a|0;return}function Sd(a){a=a|0;fn(a);return}function Td(a,d){a=a|0;d=d|0;var e=0,f=0,h=0,i=0;e=Pl(d,48)|0;c[e>>2]=816;d=e+4|0;c[d>>2]=1;g[e+8>>2]=.009999999776482582;f=e+28|0;c[f>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;c[f+12>>2]=0;b[f+16>>1]=0;f=a+4|0;h=c[f+4>>2]|0;i=d;c[i>>2]=c[f>>2];c[i+4>>2]=h;h=e+12|0;i=a+12|0;c[h>>2]=c[i>>2];c[h+4>>2]=c[i+4>>2];c[h+8>>2]=c[i+8>>2];c[h+12>>2]=c[i+12>>2];c[h+16>>2]=c[i+16>>2];c[h+20>>2]=c[i+20>>2];c[h+24>>2]=c[i+24>>2];c[h+28>>2]=c[i+28>>2];b[h+32>>1]=b[i+32>>1]|0;return e|0}function Ud(a){a=a|0;return 1}function Vd(a,b,c){a=a|0;b=b|0;c=c|0;return 0}function Wd(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.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,x=0,y=0;i=+g[b+12>>2];k=+g[a+12>>2];l=+g[b+8>>2];m=+g[a+16>>2];n=+g[b>>2];o=n+(i*k-l*m);p=+g[b+4>>2];q=k*l+i*m+p;m=+g[a+20>>2];k=+g[a+24>>2];r=n+(i*m-l*k);n=p+(l*m+i*k);k=+g[d>>2];i=k-o;m=+g[d+4>>2];l=m-q;p=r-o;o=n-q;q=i*p+l*o;do if(q>0.0){s=p*p+o*o;if(q>s){t=k-r;u=m-n;break}else{v=q/s;t=i-p*v;u=l-o*v;break}}else{t=i;u=l}while(0);l=+C(+(t*t+u*u));g[e>>2]=l;if(l>0.0){i=1.0/l;e=(g[j>>2]=t*i,c[j>>2]|0);w=e;x=(g[j>>2]=u*i,c[j>>2]|0);c[f>>2]=w;y=f+4|0;c[y>>2]=x;return}else{w=c[2179]|0;x=c[2180]|0;c[f>>2]=w;y=f+4|0;c[y>>2]=x;return}}function Xd(a,b,c,d,e){a=a|0;b=b|0;c=c|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,w=0.0;f=+g[d>>2];h=+g[c>>2]-f;i=+g[d+4>>2];j=+g[c+4>>2]-i;k=+g[d+12>>2];l=+g[d+8>>2];m=h*k+j*l;n=k*j-h*l;h=+g[c+8>>2]-f;f=+g[c+12>>2]-i;i=k*h+l*f-m;j=k*f-l*h-n;h=+g[a+12>>2];f=+g[a+16>>2];o=+g[a+20>>2]-h;p=+g[a+24>>2]-f;q=-o;r=o*o+p*p;s=+C(+r);a=s<1.1920928955078125e-07;t=1.0/s;s=a?p:p*t;u=a?q:t*q;q=(h-m)*s+(f-n)*u;t=i*s+j*u;if(t==0.0){v=0;return v|0}w=q/t;if(w<0.0){v=0;return v|0}if(r==0.0?1:+g[c+16>>2]1.0){v=0;return v|0}g[b+8>>2]=w;w=s*k-u*l;t=u*k+s*l;if(q>0.0){g[b>>2]=-w;g[b+4>>2]=-t;v=1;return v|0}else{g[b>>2]=w;g[b+4>>2]=t;v=1;return v|0}return 0}function Yd(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.0,k=0.0,l=0.0,m=0.0,n=0.0;e=+g[c+12>>2];f=+g[a+12>>2];h=+g[c+8>>2];i=+g[a+16>>2];j=+g[c>>2];k=j+(e*f-h*i);l=+g[c+4>>2];m=f*h+e*i+l;i=+g[a+20>>2];f=+g[a+24>>2];n=j+(e*i-h*f);j=l+(h*i+e*f);f=+g[a+8>>2];g[b>>2]=(k>2]=(m>2]=f+(k>n?k:n);g[b+12>>2]=f+(m>j?m:j);return}function Zd(a,b,c){a=a|0;b=b|0;c=+c;g[b>>2]=0.0;c=(+g[a+16>>2]+ +g[a+24>>2])*.5;g[b+4>>2]=(+g[a+12>>2]+ +g[a+20>>2])*.5;g[b+8>>2]=c;g[b+12>>2]=0.0;return}function _d(a){a=a|0;fn(a);return}function $d(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0,i=0;d=Pl(b,152)|0;c[d>>2]=860;b=d+4|0;c[b>>2]=2;g[d+8>>2]=.009999999776482582;c[d+148>>2]=0;e=d+12|0;g[e>>2]=0.0;g[d+16>>2]=0.0;f=a+4|0;h=c[f+4>>2]|0;i=b;c[i>>2]=c[f>>2];c[i+4>>2]=h;Qn(e|0,a+12|0,140)|0;return d|0}function ae(a){a=a|0;return 1}function be(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;e=+g[d>>2]-+g[b>>2];f=+g[d+4>>2]-+g[b+4>>2];h=+g[b+12>>2];i=+g[b+8>>2];j=e*h+f*i;k=h*f-e*i;b=c[a+148>>2]|0;if((b|0)>0)l=0;else{m=1;return m|0}while(1){if((j-+g[a+20+(l<<3)>>2])*+g[a+84+(l<<3)>>2]+(k-+g[a+20+(l<<3)+4>>2])*+g[a+84+(l<<3)+4>>2]>0.0){m=0;n=4;break}l=l+1|0;if((l|0)>=(b|0)){m=1;n=4;break}}if((n|0)==4)return m|0;return 0}function ce(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.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,u=0.0,v=0.0,w=0.0,x=0,y=0,z=0.0,A=0.0,B=0,D=0.0,E=0,F=0,G=0.0,H=0.0,I=0.0;i=+g[d>>2]-+g[b>>2];k=+g[d+4>>2]-+g[b+4>>2];d=b+12|0;l=+g[d>>2];h=b+8|0;m=+g[h>>2];n=i*l+k*m;o=l*k-i*m;b=c[a+148>>2]|0;p=(b|0)>0;if(p){q=(g[j>>2]=o,c[j>>2]|0);m=-3402823466385288598117041.0e14;r=0;s=(g[j>>2]=n,c[j>>2]|0);t=q;i=o;k=n;while(1){l=+g[a+84+(r<<3)>>2];u=+g[a+84+(r<<3)+4>>2];v=(n-+g[a+20+(r<<3)>>2])*l+(o-+g[a+20+(r<<3)+4>>2])*u;if(v>m){q=(g[j>>2]=u,c[j>>2]|0);w=v;x=(g[j>>2]=l,c[j>>2]|0);y=q;z=u;A=l}else{w=m;x=s;y=t;z=i;A=k}r=r+1|0;if((r|0)>=(b|0))break;else{m=w;s=x;t=y;i=z;k=A}}if(w>0.0){k=w*w;if(p){p=0;i=k;t=x;s=y;while(1){m=n-+g[a+20+(p<<3)>>2];l=o-+g[a+20+(p<<3)+4>>2];r=(g[j>>2]=m,c[j>>2]|0);u=m*m+l*l;q=i>u;B=q?r:t;r=q?(g[j>>2]=l,c[j>>2]|0):s;l=q?u:i;p=p+1|0;if((p|0)>=(b|0)){D=l;E=B;F=r;break}else{i=l;t=B;s=r}}}else{D=k;E=x;F=y}g[e>>2]=+C(+D);D=+g[d>>2];k=(c[j>>2]=E,+g[j>>2]);i=+g[h>>2];l=(c[j>>2]=F,+g[j>>2]);u=k*D-l*i;m=l*D+k*i;g[f>>2]=u;F=f+4|0;g[F>>2]=m;i=+C(+(u*u+m*m));k=1.0/i;if(i<1.1920928955078125e-07)return;g[f>>2]=u*k;g[F>>2]=m*k;return}else{G=w;H=z;I=A}}else{G=-3402823466385288598117041.0e14;H=o;I=n}g[e>>2]=G;G=+g[d>>2];n=+g[h>>2];g[f>>2]=I*G-H*n;g[f+4>>2]=H*G+I*n;return}function de(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var 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.0,s=0.0,t=0.0,u=0.0,v=0,w=0.0,x=0,y=0.0;h=+g[e>>2];i=+g[d>>2]-h;j=+g[e+4>>2];k=+g[d+4>>2]-j;l=+g[e+12>>2];m=+g[e+8>>2];n=i*l+k*m;o=l*k-i*m;i=+g[d+8>>2]-h;h=+g[d+12>>2]-j;j=l*i+m*h-n;k=l*h-m*i-o;e=c[a+148>>2]|0;if((e|0)<=0){p=0;return p|0}i=0.0;f=0;q=-1;h=+g[d+16>>2];a:while(1){r=+g[a+84+(f<<3)>>2];s=+g[a+84+(f<<3)+4>>2];t=(+g[a+20+(f<<3)>>2]-n)*r+(+g[a+20+(f<<3)+4>>2]-o)*s;u=j*r+k*s;do if(u==0.0)if(t<0.0){p=0;v=12;break a}else{w=i;x=q;y=h}else if(u<0.0&t0.0&t=(e|0)){v=10;break}else{i=w;q=x;h=y}}if((v|0)==10){if((x|0)<=-1){p=0;return p|0}g[b+8>>2]=w;w=+g[a+84+(x<<3)>>2];y=+g[a+84+(x<<3)+4>>2];g[b>>2]=l*w-m*y;g[b+4>>2]=w*m+l*y;p=1;return p|0}else if((v|0)==12)return p|0;return 0}function ee(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,w=0.0,x=0.0,y=0.0;f=+g[d+12>>2];h=+g[a+20>>2];i=+g[d+8>>2];j=+g[a+24>>2];k=+g[d>>2];l=k+(f*h-i*j);m=+g[d+4>>2];n=h*i+f*j+m;d=c[a+148>>2]|0;if((d|0)>1){e=1;j=l;h=n;o=l;p=n;while(1){q=+g[a+20+(e<<3)>>2];r=+g[a+20+(e<<3)+4>>2];s=k+(f*q-i*r);t=q*i+f*r+m;r=js?o:s;s=p>t?p:t;e=e+1|0;if((e|0)>=(d|0)){v=q;w=r;x=s;y=u;break}else{j=r;h=q;o=u;p=s}}}else{v=n;w=l;x=n;y=l}l=+g[a+8>>2];g[b>>2]=w-l;g[b+4>>2]=v-l;g[b+8>>2]=y+l;g[b+12>>2]=x+l;return}function fe(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.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.0,B=0.0,C=0.0,D=0.0,E=0.0;e=c[a+148>>2]|0;f=(e|0)>0;if(f){h=0;i=0.0;j=0.0;do{i=i+ +g[a+20+(h<<3)>>2];j=j+ +g[a+20+(h<<3)+4>>2];h=h+1|0}while((h|0)<(e|0));k=1.0/+(e|0);l=i*k;i=j*k;if(f){f=a+20|0;k=0.0;j=0.0;h=0;m=0.0;n=0.0;while(1){o=+g[a+20+(h<<3)>>2]-l;p=+g[a+20+(h<<3)+4>>2]-i;h=h+1|0;q=(h|0)<(e|0);r=q?a+20+(h<<3)|0:f;s=+g[r>>2]-l;t=+g[r+4>>2]-i;u=o*t-p*s;v=u*.5;w=k+v;x=v*.3333333432674408;v=m+(o+s)*x;y=n+(p+t)*x;x=j+u*.0833333358168602*(s*s+(o*o+o*s)+(t*t+(p*p+p*t)));if(!q){z=w;A=x;B=v;C=y;D=l;E=i;break}else{k=w;j=x;m=v;n=y}}}else{z=0.0;A=0.0;B=0.0;C=0.0;D=l;E=i}}else{i=1.0/+(e|0);z=0.0;A=0.0;B=0.0;C=0.0;D=i*0.0;E=i*0.0}i=z*d;g[b>>2]=i;l=1.0/z;z=B*l;B=C*l;l=D+z;D=E+B;g[b+4>>2]=l;g[b+8>>2]=D;g[b+12>>2]=A*d+i*(l*l+D*D-(z*z+B*B));return}function ge(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,h=0,i=0,k=0,m=0,n=0,o=0.0,p=0.0,q=0,r=0.0,s=0.0,t=0,u=0,v=0.0,w=0,x=0,y=0,z=0,A=0,B=0.0,D=0.0,E=0.0,F=0.0,G=0.0,H=0.0,I=0.0,J=0.0;e=l;l=l+96|0;f=e+32|0;h=e;if((d|0)<3){c[a+148>>2]=4;g[a+20>>2]=-1.0;g[a+24>>2]=-1.0;g[a+28>>2]=1.0;g[a+32>>2]=-1.0;g[a+36>>2]=1.0;g[a+40>>2]=1.0;g[a+44>>2]=-1.0;g[a+48>>2]=1.0;g[a+84>>2]=0.0;g[a+88>>2]=-1.0;g[a+92>>2]=1.0;g[a+96>>2]=0.0;g[a+100>>2]=0.0;g[a+104>>2]=1.0;g[a+108>>2]=-1.0;g[a+112>>2]=0.0;g[a+12>>2]=0.0;g[a+16>>2]=0.0;l=e;return}i=(d|0)<8?d:8;d=0;k=0;while(1){m=c[b+(d<<3)>>2]|0;n=c[b+(d<<3)+4>>2]|0;a:do if((k|0)>0){o=(c[j>>2]=m,+g[j>>2]);p=(c[j>>2]=n,+g[j>>2]);q=0;while(1){r=o-+g[f+(q<<3)>>2];s=p-+g[f+(q<<3)+4>>2];q=q+1|0;if(r*r+s*s<2.4999999441206455e-03){t=k;break a}if((q|0)>=(k|0)){u=9;break}}}else u=9;while(0);if((u|0)==9){u=0;c[f+(k<<3)>>2]=m;c[f+(k<<3)+4>>2]=n;t=k+1|0}d=d+1|0;if((d|0)>=(i|0))break;else k=t}if((t|0)<3){c[a+148>>2]=4;g[a+20>>2]=-1.0;g[a+24>>2]=-1.0;g[a+28>>2]=1.0;g[a+32>>2]=-1.0;g[a+36>>2]=1.0;g[a+40>>2]=1.0;g[a+44>>2]=-1.0;g[a+48>>2]=1.0;g[a+84>>2]=0.0;g[a+88>>2]=-1.0;g[a+92>>2]=1.0;g[a+96>>2]=0.0;g[a+100>>2]=0.0;g[a+104>>2]=1.0;g[a+108>>2]=-1.0;g[a+112>>2]=0.0;g[a+12>>2]=0.0;g[a+16>>2]=0.0}else{k=1;p=+g[f>>2];i=0;while(1){o=+g[f+(k<<3)>>2];if(!(o>p))if(o==p?+g[f+(k<<3)+4>>2]<+g[f+(i<<3)+4>>2]:0)u=25;else{v=p;w=i}else u=25;if((u|0)==25){u=0;v=o;w=k}k=k+1|0;if((k|0)==(t|0))break;else{p=v;i=w}}if((t|0)>1){i=w;k=0;while(1){c[h+(k<<2)>>2]=i;u=f+(i<<3)|0;d=f+(i<<3)+4|0;b=1;q=0;while(1){if((q|0)!=(i|0)){v=+g[u>>2];p=+g[f+(q<<3)>>2]-v;o=+g[d>>2];s=+g[f+(q<<3)+4>>2]-o;r=+g[f+(b<<3)>>2]-v;v=+g[f+(b<<3)+4>>2]-o;o=p*v-s*r;x=o<0.0?b:q;if(o==0.0?r*r+v*v>p*p+s*s:0)y=b;else y=x}else y=b;b=b+1|0;if((b|0)==(t|0))break;else q=y}q=k+1|0;if((y|0)==(w|0)){z=k;A=q;break}else{i=y;k=q}}}else{k=(w|0)==0;y=w;w=0;while(1){c[h+(w<<2)>>2]=y;i=w+1|0;if(k){z=w;A=i;break}else{y=0;w=i}}}c[a+148>>2]=A;w=(z|0)<0;if(!w){y=0;while(1){k=f+(c[h+(y<<2)>>2]<<3)|0;i=c[k+4>>2]|0;t=a+20+(y<<3)|0;c[t>>2]=c[k>>2];c[t+4>>2]=i;if((y|0)==(z|0))break;else y=y+1|0}if(!w){w=0;do{y=w;w=w+1|0;h=(y|0)<(z|0)?w:0;s=+g[a+20+(h<<3)>>2]-+g[a+20+(y<<3)>>2];p=+g[a+20+(h<<3)+4>>2]-+g[a+20+(y<<3)+4>>2];v=-s;h=a+84+(y<<3)|0;g[h>>2]=p;f=a+84+(y<<3)+4|0;g[f>>2]=v;r=+C(+(s*s+p*p));s=1.0/r;if(!(r<1.1920928955078125e-07)){g[h>>2]=p*s;g[f>>2]=s*v}}while((y|0)!=(z|0));if((z|0)>-1){w=0;v=0.0;s=0.0;p=0.0;while(1){r=+g[a+20+(w<<3)>>2];o=+g[a+20+(w<<3)+4>>2];y=w;w=w+1|0;f=(y|0)<(z|0)?w:0;B=+g[a+20+(f<<3)>>2];D=+g[a+20+(f<<3)+4>>2];E=(r*D-o*B)*.5;F=v+E;G=E*.3333333432674408;E=s+(r+0.0+B)*G;B=p+(o+0.0+D)*G;if((w|0)==(A|0)){H=F;I=E;J=B;break}else{v=F;s=E;p=B}}}else{H=0.0;I=0.0;J=0.0}}else{H=0.0;I=0.0;J=0.0}}else{H=0.0;I=0.0;J=0.0}p=1.0/H;g[a+12>>2]=I*p;g[a+16>>2]=J*p}l=e;return}function he(a){a=a|0;fn(a);return}function ie(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=Pl(b,20)|0;c[d>>2]=904;b=d+4|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;e=a+4|0;f=c[e+4>>2]|0;g=b;c[g>>2]=c[e>>2];c[g+4>>2]=f;f=a+12|0;a=c[f+4>>2]|0;g=d+12|0;c[g>>2]=c[f>>2];c[g+4>>2]=a;return d|0}function je(a){a=a|0;return 1}function ke(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;d=+g[b+12>>2];e=+g[a+12>>2];f=+g[b+8>>2];h=+g[a+16>>2];i=+g[c>>2]-(+g[b>>2]+(d*e-f*h));j=+g[c+4>>2]-(+g[b+4>>2]+(e*f+d*h));h=+g[a+8>>2];return i*i+j*j<=h*h|0}function le(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var h=0.0,i=0.0,j=0.0,k=0.0,l=0.0,m=0.0;h=+g[b+12>>2];i=+g[a+12>>2];j=+g[b+8>>2];k=+g[a+16>>2];l=+g[c>>2]-(+g[b>>2]+(h*i-j*k));m=+g[c+4>>2]-(+g[b+4>>2]+(i*j+h*k));k=+C(+(l*l+m*m));g[d>>2]=k-+g[a+8>>2];h=1.0/k;g[e>>2]=l*h;g[e+4>>2]=m*h;return}function me(a,b,c,d,e){a=a|0;b=b|0;c=c|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;f=+g[d+12>>2];h=+g[a+12>>2];i=+g[d+8>>2];j=+g[a+16>>2];k=+g[c>>2];l=k-(+g[d>>2]+(f*h-i*j));m=+g[c+4>>2];n=m-(+g[d+4>>2]+(h*i+f*j));j=+g[a+8>>2];f=+g[c+8>>2]-k;k=+g[c+12>>2]-m;m=l*f+n*k;i=f*f+k*k;h=m*m-(l*l+n*n-j*j)*i;if(i<1.1920928955078125e-07|h<0.0){o=0;return o|0}j=m+ +C(+h);h=-j;if(!(j<=-0.0)){o=0;return o|0}if(!(i*+g[c+16>>2]>=h)){o=0;return o|0}j=h/i;g[b+8>>2]=j;i=l+f*j;f=n+k*j;g[b>>2]=i;c=b+4|0;g[c>>2]=f;j=+C(+(i*i+f*f));k=1.0/j;if(j<1.1920928955078125e-07){o=1;return o|0}g[b>>2]=i*k;g[c>>2]=f*k;o=1;return o|0}function ne(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.0,k=0.0;e=+g[c+12>>2];f=+g[a+12>>2];h=+g[c+8>>2];i=+g[a+16>>2];j=+g[c>>2]+(e*f-h*i);k=+g[c+4>>2]+(f*h+e*i);i=+g[a+8>>2];g[b>>2]=j-i;g[b+4>>2]=k-i;g[b+8>>2]=j+i;g[b+12>>2]=k+i;return}function oe(a,b,d){a=a|0;b=b|0;d=+d;var e=0,f=0.0,h=0.0,i=0,j=0,k=0,l=0,m=0.0;e=a+8|0;f=+g[e>>2];h=f*(d*3.1415927410125732*f);g[b>>2]=h;i=a+12|0;j=i;k=c[j+4>>2]|0;l=b+4|0;c[l>>2]=c[j>>2];c[l+4>>2]=k;f=+g[e>>2];d=+g[i>>2];m=+g[a+16>>2];g[b+12>>2]=h*(f*(f*.5)+(d*d+m*m));return}function pe(a){a=a|0;var b=0;c[a>>2]=948;b=a+12|0;$l(c[b>>2]|0);c[b>>2]=0;c[a+16>>2]=0;return}function qe(a){a=a|0;c[a>>2]=948;$l(c[a+12>>2]|0);fn(a);return}function re(d,e){d=d|0;e=e|0;var f=0,h=0,i=0,j=0,k=0,l=0,m=0;f=Pl(e,40)|0;c[f>>2]=948;c[f+4>>2]=3;g[f+8>>2]=.009999999776482582;e=f+12|0;c[e>>2]=0;h=f+16|0;c[h>>2]=0;i=f+36|0;a[i>>0]=0;j=f+37|0;a[j>>0]=0;k=c[d+12>>2]|0;l=c[d+16>>2]|0;c[h>>2]=l;m=_l(l<<3)|0;c[e>>2]=m;Qn(m|0,k|0,c[h>>2]<<3|0)|0;h=f+20|0;c[h>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;c[h+12>>2]=0;b[h+16>>1]=0;k=d+20|0;m=c[k+4>>2]|0;e=h;c[e>>2]=c[k>>2];c[e+4>>2]=m;m=d+28|0;e=c[m+4>>2]|0;k=f+28|0;c[k>>2]=c[m>>2];c[k+4>>2]=e;a[i>>0]=a[d+36>>0]|0;a[j>>0]=a[d+37>>0]|0;return f|0}function se(a){a=a|0;return (c[a+16>>2]|0)+-1|0}function te(a,b,c){a=a|0;b=b|0;c=c|0;return 0}function ue(d,e,f,g,h,i){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;j=l;l=l+48|0;k=j;c[k>>2]=816;m=k+28|0;c[m>>2]=0;c[m+4>>2]=0;c[m+8>>2]=0;c[m+12>>2]=0;b[m+16>>1]=0;c[k+4>>2]=1;c[k+8>>2]=c[d+8>>2];m=c[d+12>>2]|0;n=m+(i<<3)|0;o=c[n+4>>2]|0;p=k+12|0;c[p>>2]=c[n>>2];c[p+4>>2]=o;o=m+(i+1<<3)|0;p=c[o+4>>2]|0;n=k+20|0;c[n>>2]=c[o>>2];c[n+4>>2]=p;if((i|0)>0){p=m+(i+-1<<3)|0;n=c[p+4>>2]|0;o=k+28|0;c[o>>2]=c[p>>2];c[o+4>>2]=n;q=1}else{n=d+20|0;o=c[n+4>>2]|0;p=k+28|0;c[p>>2]=c[n>>2];c[p+4>>2]=o;q=a[d+36>>0]|0}a[k+44>>0]=q;if(((c[d+16>>2]|0)+-2|0)>(i|0)){q=m+(i+2<<3)|0;i=c[q+4>>2]|0;m=k+36|0;c[m>>2]=c[q>>2];c[m+4>>2]=i;r=1;s=k+45|0;a[s>>0]=r;Wd(k,e,f,g,h,0);l=j;return}else{i=d+28|0;m=c[i+4>>2]|0;q=k+36|0;c[q>>2]=c[i>>2];c[q+4>>2]=m;r=a[d+37>>0]|0;s=k+45|0;a[s>>0]=r;Wd(k,e,f,g,h,0);l=j;return}}function ve(a,d,e,f,h){a=a|0;d=d|0;e=e|0;f=f|0;h=h|0;var i=0,j=0,k=0,m=0,n=0;i=l;l=l+48|0;j=i;c[j>>2]=816;c[j+4>>2]=1;g[j+8>>2]=.009999999776482582;k=j+28|0;c[k>>2]=0;c[k+4>>2]=0;c[k+8>>2]=0;c[k+12>>2]=0;b[k+16>>1]=0;k=h+1|0;m=(k|0)==(c[a+16>>2]|0)?0:k;k=c[a+12>>2]|0;a=k+(h<<3)|0;h=c[a+4>>2]|0;n=j+12|0;c[n>>2]=c[a>>2];c[n+4>>2]=h;h=k+(m<<3)|0;m=c[h+4>>2]|0;k=j+20|0;c[k>>2]=c[h>>2];c[k+4>>2]=m;m=Xd(j,d,e,f,0)|0;l=i;return m|0}function we(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=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;f=e+1|0;h=(f|0)==(c[a+16>>2]|0)?0:f;f=c[a+12>>2]|0;i=+g[d+12>>2];j=+g[f+(e<<3)>>2];k=+g[d+8>>2];l=+g[f+(e<<3)+4>>2];m=+g[d>>2];n=m+(i*j-k*l);o=+g[d+4>>2];p=j*k+i*l+o;l=+g[f+(h<<3)>>2];j=+g[f+(h<<3)+4>>2];q=m+(i*l-k*j);m=o+(k*l+i*j);g[b>>2]=n>2]=p>2]=n>q?n:q;g[b+12>>2]=p>m?p:m;return}function xe(a,b,d){a=a|0;b=b|0;d=+d;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;return}function ye(a,d,e){a=a|0;d=d|0;e=e|0;var f=0,g=0;f=a+16|0;c[f>>2]=e;g=_l(e<<3)|0;c[a+12>>2]=g;Qn(g|0,d|0,c[f>>2]<<3|0)|0;f=a+20|0;c[f>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;c[f+12>>2]=0;b[f+16>>1]=0;return}function ze(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;c[d+4>>2]=1;c[d+8>>2]=c[b+8>>2];f=b+12|0;g=(c[f>>2]|0)+(e<<3)|0;h=c[g+4>>2]|0;i=d+12|0;c[i>>2]=c[g>>2];c[i+4>>2]=h;h=(c[f>>2]|0)+(e+1<<3)|0;i=c[h+4>>2]|0;g=d+20|0;c[g>>2]=c[h>>2];c[g+4>>2]=i;if((e|0)>0){i=(c[f>>2]|0)+(e+-1<<3)|0;g=c[i+4>>2]|0;h=d+28|0;c[h>>2]=c[i>>2];c[h+4>>2]=g;j=1}else{g=b+20|0;h=c[g+4>>2]|0;i=d+28|0;c[i>>2]=c[g>>2];c[i+4>>2]=h;j=a[b+36>>0]|0}a[d+44>>0]=j;if(((c[b+16>>2]|0)+-2|0)>(e|0)){j=(c[f>>2]|0)+(e+2<<3)|0;e=c[j+4>>2]|0;f=d+36|0;c[f>>2]=c[j>>2];c[f+4>>2]=e;k=1;l=d+45|0;a[l>>0]=k;return}else{e=b+28|0;f=c[e+4>>2]|0;j=d+36|0;c[j>>2]=c[e>>2];c[j+4>>2]=f;k=a[b+37>>0]|0;l=d+45|0;a[l>>0]=k;return}}function Ae(a){a=a|0;Je(a);c[a+28>>2]=0;c[a+48>>2]=16;c[a+52>>2]=0;c[a+44>>2]=_l(128)|0;c[a+36>>2]=16;c[a+40>>2]=0;c[a+32>>2]=_l(64)|0;return}function Be(a){a=a|0;$l(c[a+32>>2]|0);$l(c[a+44>>2]|0);Ke(a);return}function Ce(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=Me(a,b,d)|0;d=a+28|0;c[d>>2]=(c[d>>2]|0)+1;d=a+40|0;b=c[d>>2]|0;f=a+36|0;g=a+32|0;if((b|0)==(c[f>>2]|0)){a=c[g>>2]|0;c[f>>2]=b<<1;f=_l(b<<3)|0;c[g>>2]=f;Qn(f|0,a|0,c[d>>2]<<2|0)|0;$l(a);h=c[d>>2]|0}else h=b;c[(c[g>>2]|0)+(h<<2)>>2]=e;c[d>>2]=(c[d>>2]|0)+1;return e|0}function De(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;d=a+40|0;e=c[d>>2]|0;if((e|0)>0){f=c[a+32>>2]|0;g=0;h=e;while(1){e=f+(g<<2)|0;if((c[e>>2]|0)==(b|0)){c[e>>2]=-1;i=c[d>>2]|0}else i=h;g=g+1|0;if((g|0)>=(i|0))break;else h=i}}i=a+28|0;c[i>>2]=(c[i>>2]|0)+-1;Pe(a,b);return}function Ee(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;if(!(Re(a,b,d,e)|0))return;e=a+40|0;d=c[e>>2]|0;f=a+36|0;g=a+32|0;if((d|0)==(c[f>>2]|0)){a=c[g>>2]|0;c[f>>2]=d<<1;f=_l(d<<3)|0;c[g>>2]=f;Qn(f|0,a|0,c[e>>2]<<2|0)|0;$l(a);h=c[e>>2]|0}else h=d;c[(c[g>>2]|0)+(h<<2)>>2]=b;c[e>>2]=(c[e>>2]|0)+1;return}function Fe(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;d=a+40|0;e=c[d>>2]|0;f=a+36|0;g=a+32|0;if((e|0)==(c[f>>2]|0)){a=c[g>>2]|0;c[f>>2]=e<<1;f=_l(e<<3)|0;c[g>>2]=f;Qn(f|0,a|0,c[d>>2]<<2|0)|0;$l(a);h=c[d>>2]|0}else h=e;c[(c[g>>2]|0)+(h<<2)>>2]=b;c[d>>2]=(c[d>>2]|0)+1;return}function Ge(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;d=a+56|0;e=c[d>>2]|0;if((e|0)==(b|0))return 1;f=a+52|0;g=c[f>>2]|0;h=a+48|0;i=a+44|0;if((g|0)==(c[h>>2]|0)){a=c[i>>2]|0;c[h>>2]=g<<1;h=_l(g<<4)|0;c[i>>2]=h;Qn(h|0,a|0,c[f>>2]<<3|0)|0;$l(a);j=c[d>>2]|0;k=c[f>>2]|0}else{j=e;k=g}g=c[i>>2]|0;c[g+(k<<3)>>2]=(j|0)>(b|0)?b:j;c[g+(k<<3)+4>>2]=(j|0)<(b|0)?b:j;c[f>>2]=k+1;return 1}function He(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var h=0,i=0,j=0.0,k=0.0,l=0.0,m=0.0,n=0,o=0.0,p=0.0,q=0.0,r=0.0,s=0.0,t=0.0;h=a+60|0;c[h>>2]=0;i=b+12|0;j=+g[d+12>>2];k=+g[i>>2];l=+g[d+8>>2];m=+g[b+16>>2];n=e+12|0;o=+g[f+12>>2];p=+g[n>>2];q=+g[f+8>>2];r=+g[e+16>>2];s=+g[f>>2]+(o*p-q*r)-(+g[d>>2]+(j*k-l*m));t=p*q+o*r+ +g[f+4>>2]-(k*l+j*m+ +g[d+4>>2]);m=+g[b+8>>2]+ +g[e+8>>2];if(s*s+t*t>m*m)return;c[a+56>>2]=0;e=i;i=c[e+4>>2]|0;b=a+48|0;c[b>>2]=c[e>>2];c[b+4>>2]=i;g[a+40>>2]=0.0;g[a+44>>2]=0.0;c[h>>2]=1;h=n;n=c[h+4>>2]|0;i=a;c[i>>2]=c[h>>2];c[i+4>>2]=n;c[a+16>>2]=0;return}function Ie(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var h=0,i=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,u=0,v=0,w=0.0,x=0.0,y=0.0,z=0.0,A=0.0,B=0.0,D=0.0,E=0.0,F=0,G=0;h=a+60|0;c[h>>2]=0;i=e+12|0;k=+g[f+12>>2];l=+g[i>>2];m=+g[f+8>>2];n=+g[e+16>>2];o=+g[f>>2]+(k*l-m*n)-+g[d>>2];p=l*m+k*n+ +g[f+4>>2]-+g[d+4>>2];n=+g[d+12>>2];k=+g[d+8>>2];m=o*n+p*k;l=n*p-o*k;k=+g[b+8>>2]+ +g[e+8>>2];e=c[b+148>>2]|0;do if((e|0)>0){o=-3402823466385288598117041.0e14;d=0;f=0;while(1){p=(m-+g[b+20+(d<<3)>>2])*+g[b+84+(d<<3)>>2]+(l-+g[b+20+(d<<3)+4>>2])*+g[b+84+(d<<3)+4>>2];q=p>o;if(p>k){r=18;break}f=q?d:f;o=q?p:o;d=d+1|0;if((d|0)>=(e|0)){r=4;break}}if((r|0)==4){s=f;t=o<1.1920928955078125e-07;break}else if((r|0)==18)return}else{s=0;t=1}while(0);r=s+1|0;d=(r|0)<(e|0)?r:0;r=c[b+20+(s<<3)>>2]|0;e=c[b+20+(s<<3)+4>>2]|0;q=c[b+20+(d<<3)>>2]|0;u=c[b+20+(d<<3)+4>>2]|0;if(t){c[h>>2]=1;c[a+56>>2]=1;t=b+84+(s<<3)|0;d=c[t+4>>2]|0;v=a+40|0;c[v>>2]=c[t>>2];c[v+4>>2]=d;p=(c[j>>2]=r,+g[j>>2]);n=p+(c[j>>2]=q,+g[j>>2]);p=(c[j>>2]=e,+g[j>>2]);w=(p+(c[j>>2]=u,+g[j>>2]))*.5;g[a+48>>2]=n*.5;g[a+52>>2]=w;d=i;v=c[d+4>>2]|0;t=a;c[t>>2]=c[d>>2];c[t+4>>2]=v;c[a+16>>2]=0;return}w=(c[j>>2]=r,+g[j>>2]);n=m-w;p=(c[j>>2]=e,+g[j>>2]);x=l-p;y=(c[j>>2]=q,+g[j>>2]);z=(c[j>>2]=u,+g[j>>2]);A=m-y;B=l-z;do if(!(n*(y-w)+x*(z-p)<=0.0))if(!(A*(w-y)+B*(p-z)<=0.0)){D=(w+y)*.5;E=(p+z)*.5;v=b+84+(s<<3)|0;if((m-D)*+g[v>>2]+(l-E)*+g[b+84+(s<<3)+4>>2]>k)return;c[h>>2]=1;c[a+56>>2]=1;t=v;v=c[t+4>>2]|0;d=a+40|0;c[d>>2]=c[t>>2];c[d+4>>2]=v;g[a+48>>2]=D;g[a+52>>2]=E;v=i;d=c[v+4>>2]|0;t=a;c[t>>2]=c[v>>2];c[t+4>>2]=d;c[a+16>>2]=0;return}else{E=A*A+B*B;if(E>k*k)return;c[h>>2]=1;c[a+56>>2]=1;d=a+40|0;g[d>>2]=A;t=a+44|0;g[t>>2]=B;D=+C(+E);E=1.0/D;if(D<1.1920928955078125e-07){F=u;G=q;break}g[d>>2]=A*E;g[t>>2]=B*E;F=u;G=q;break}else{E=n*n+x*x;if(E>k*k)return;c[h>>2]=1;c[a+56>>2]=1;t=a+40|0;g[t>>2]=n;d=a+44|0;g[d>>2]=x;D=+C(+E);E=1.0/D;if(D<1.1920928955078125e-07){F=e;G=r}else{g[t>>2]=n*E;g[d>>2]=x*E;F=e;G=r}}while(0);c[a+48>>2]=G;c[a+52>>2]=F;F=i;i=c[F+4>>2]|0;G=a;c[G>>2]=c[F>>2];c[G+4>>2]=i;c[a+16>>2]=0;return}function Je(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;c[a>>2]=-1;b=a+12|0;c[b>>2]=16;c[a+8>>2]=0;d=_l(576)|0;e=a+4|0;c[e>>2]=d;Nn(d|0,0,(c[b>>2]|0)*36|0)|0;d=c[b>>2]|0;f=d+-1|0;g=c[e>>2]|0;if((d|0)>1){d=0;do{e=d;d=d+1|0;c[g+(e*36|0)+20>>2]=d;c[g+(e*36|0)+32>>2]=-1;e=(c[b>>2]|0)+-1|0}while((d|0)<(e|0));h=e}else h=f;c[g+(h*36|0)+20>>2]=-1;c[g+(((c[b>>2]|0)+-1|0)*36|0)+32>>2]=-1;c[a+16>>2]=0;c[a+20>>2]=0;c[a+24>>2]=0;return}function Ke(a){a=a|0;$l(c[a+4>>2]|0);return}function Le(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;b=a+16|0;d=c[b>>2]|0;e=a+4|0;if((d|0)==-1){f=c[e>>2]|0;g=a+12|0;h=c[g>>2]|0;c[g>>2]=h<<1;i=_l(h*72|0)|0;c[e>>2]=i;h=a+8|0;Qn(i|0,f|0,(c[h>>2]|0)*36|0)|0;$l(f);f=c[h>>2]|0;i=(c[g>>2]|0)+-1|0;j=c[e>>2]|0;if((f|0)<(i|0)){k=f;do{f=k;k=k+1|0;c[j+(f*36|0)+20>>2]=k;c[j+(f*36|0)+32>>2]=-1;f=(c[g>>2]|0)+-1|0}while((k|0)<(f|0));l=f}else l=i;c[j+(l*36|0)+20>>2]=-1;c[j+(((c[g>>2]|0)+-1|0)*36|0)+32>>2]=-1;g=c[h>>2]|0;c[b>>2]=g;m=h;n=j;o=g}else{m=a+8|0;n=c[e>>2]|0;o=d}d=n+(o*36|0)+20|0;c[b>>2]=c[d>>2];c[d>>2]=-1;c[n+(o*36|0)+24>>2]=-1;c[n+(o*36|0)+28>>2]=-1;c[n+(o*36|0)+32>>2]=0;c[n+(o*36|0)+16>>2]=0;c[m>>2]=(c[m>>2]|0)+1;return o|0}function Me(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0.0,h=0,i=0;e=Le(a)|0;f=+g[b+4>>2]+-.10000000149011612;h=a+4|0;i=c[h>>2]|0;g[i+(e*36|0)>>2]=+g[b>>2]+-.10000000149011612;g[i+(e*36|0)+4>>2]=f;f=+g[b+12>>2]+.10000000149011612;i=c[h>>2]|0;g[i+(e*36|0)+8>>2]=+g[b+8>>2]+.10000000149011612;g[i+(e*36|0)+12>>2]=f;i=c[h>>2]|0;c[i+(e*36|0)+16>>2]=d;c[i+(e*36|0)+32>>2]=0;Ne(a,e);return e|0}function Ne(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0.0,i=0.0,j=0.0,k=0.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,B=0,C=0,D=0;d=a+24|0;c[d>>2]=(c[d>>2]|0)+1;d=c[a>>2]|0;if((d|0)==-1){c[a>>2]=b;c[(c[a+4>>2]|0)+(b*36|0)+20>>2]=-1;return}e=a+4|0;f=c[e>>2]|0;h=+g[f+(b*36|0)>>2];i=+g[f+(b*36|0)+4>>2];j=+g[f+(b*36|0)+8>>2];k=+g[f+(b*36|0)+12>>2];l=d;while(1){d=c[f+(l*36|0)+24>>2]|0;if((d|0)==-1)break;m=c[f+(l*36|0)+28>>2]|0;n=+g[f+(l*36|0)+8>>2];o=+g[f+(l*36|0)>>2];p=+g[f+(l*36|0)+12>>2];q=+g[f+(l*36|0)+4>>2];r=((n>j?n:j)-(ok?p:k)-(q>2];p=h>2];n=i>2];u=j>r?j:r;v=+g[f+(d*36|0)+12>>2];w=k>v?k:v;if((c[f+(d*36|0)+24>>2]|0)==-1)x=(u-p+(w-n))*2.0;else x=(u-p+(w-n))*2.0-(r-q+(v-o))*2.0;o=t+x;v=+g[f+(m*36|0)>>2];q=h>2];n=i>2];p=j>w?j:w;u=+g[f+(m*36|0)+12>>2];y=k>u?k:u;if((c[f+(m*36|0)+24>>2]|0)==-1)z=(p-q+(y-n))*2.0;else z=(p-q+(y-n))*2.0-(w-v+(u-r))*2.0;r=t+z;if(s>2]|0;f=Le(a)|0;d=c[e>>2]|0;c[d+(f*36|0)+20>>2]=m;c[d+(f*36|0)+16>>2]=0;z=+g[d+(l*36|0)>>2];x=+g[d+(l*36|0)+4>>2];g[d+(f*36|0)>>2]=h>2]=i>2];i=+g[d+(l*36|0)+12>>2];g[d+(f*36|0)+8>>2]=j>x?j:x;g[d+(f*36|0)+12>>2]=k>i?k:i;d=c[e>>2]|0;c[d+(f*36|0)+32>>2]=(c[d+(l*36|0)+32>>2]|0)+1;if((m|0)==-1){c[d+(f*36|0)+24>>2]=l;c[d+(f*36|0)+28>>2]=b;c[d+(l*36|0)+20>>2]=f;A=d+(b*36|0)+20|0;c[A>>2]=f;B=A;C=a}else{A=d+(m*36|0)+24|0;c[((c[A>>2]|0)==(l|0)?A:d+(m*36|0)+28|0)>>2]=f;c[d+(f*36|0)+24>>2]=l;c[d+(f*36|0)+28>>2]=b;c[d+(l*36|0)+20>>2]=f;l=d+(b*36|0)+20|0;B=l;C=l}c[C>>2]=f;f=c[B>>2]|0;if((f|0)==-1)return;else D=f;do{f=Oe(a,D)|0;B=c[e>>2]|0;C=c[B+(f*36|0)+24>>2]|0;l=c[B+(f*36|0)+28>>2]|0;b=c[B+(C*36|0)+32>>2]|0;d=c[B+(l*36|0)+32>>2]|0;c[B+(f*36|0)+32>>2]=((b|0)>(d|0)?b:d)+1;i=+g[B+(C*36|0)>>2];k=+g[B+(l*36|0)>>2];x=+g[B+(C*36|0)+4>>2];j=+g[B+(l*36|0)+4>>2];g[B+(f*36|0)>>2]=i>2]=x>2];x=+g[B+(l*36|0)+8>>2];k=+g[B+(C*36|0)+12>>2];i=+g[B+(l*36|0)+12>>2];g[B+(f*36|0)+8>>2]=j>x?j:x;g[B+(f*36|0)+12>>2]=k>i?k:i;D=c[(c[e>>2]|0)+(f*36|0)+20>>2]|0}while((D|0)!=-1);return}function Oe(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,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,H=0,I=0.0,J=0.0,K=0,L=0,M=0,N=0.0,O=0.0;d=c[a+4>>2]|0;e=d+(b*36|0)|0;f=d+(b*36|0)+24|0;h=c[f>>2]|0;if((h|0)==-1){i=b;return i|0}j=d+(b*36|0)+32|0;if((c[j>>2]|0)<2){i=b;return i|0}k=d+(b*36|0)+28|0;l=c[k>>2]|0;m=d+(h*36|0)|0;n=d+(l*36|0)|0;o=d+(l*36|0)+32|0;p=d+(h*36|0)+32|0;q=(c[o>>2]|0)-(c[p>>2]|0)|0;if((q|0)>1){r=d+(l*36|0)+24|0;s=c[r>>2]|0;t=d+(l*36|0)+28|0;u=c[t>>2]|0;v=d+(s*36|0)|0;w=d+(u*36|0)|0;c[r>>2]=b;r=d+(b*36|0)+20|0;x=d+(l*36|0)+20|0;c[x>>2]=c[r>>2];c[r>>2]=l;r=c[x>>2]|0;if((r|0)==-1)y=a;else{x=d+(r*36|0)+24|0;y=(c[x>>2]|0)==(b|0)?x:d+(r*36|0)+28|0}c[y>>2]=l;y=d+(s*36|0)+32|0;r=d+(u*36|0)+32|0;if((c[y>>2]|0)>(c[r>>2]|0)){c[t>>2]=s;c[k>>2]=u;c[d+(u*36|0)+20>>2]=b;z=+g[m>>2];A=+g[w>>2];B=z>2];z=+g[d+(u*36|0)+4>>2];C=A>2]=B;g[d+(b*36|0)+4>>2]=C;z=+g[d+(h*36|0)+8>>2];A=+g[d+(u*36|0)+8>>2];D=+g[d+(h*36|0)+12>>2];E=+g[d+(u*36|0)+12>>2];x=d+(b*36|0)+8|0;g[x>>2]=z>A?z:A;F=d+(b*36|0)+12|0;g[F>>2]=D>E?D:E;E=+g[v>>2];D=+g[d+(s*36|0)+4>>2];g[n>>2]=B>2]=C>2];C=+g[d+(s*36|0)+8>>2];E=+g[F>>2];B=+g[d+(s*36|0)+12>>2];G=y;H=r;I=E>B?E:B;J=D>C?D:C}else{c[t>>2]=u;c[k>>2]=s;c[d+(s*36|0)+20>>2]=b;C=+g[m>>2];D=+g[v>>2];B=C>2];C=+g[d+(s*36|0)+4>>2];E=D>2]=B;g[d+(b*36|0)+4>>2]=E;C=+g[d+(h*36|0)+8>>2];D=+g[d+(s*36|0)+8>>2];A=+g[d+(h*36|0)+12>>2];z=+g[d+(s*36|0)+12>>2];s=d+(b*36|0)+8|0;g[s>>2]=C>D?C:D;v=d+(b*36|0)+12|0;g[v>>2]=A>z?A:z;z=+g[w>>2];A=+g[d+(u*36|0)+4>>2];g[n>>2]=B>2]=E>2];E=+g[d+(u*36|0)+8>>2];z=+g[v>>2];B=+g[d+(u*36|0)+12>>2];G=r;H=y;I=z>B?z:B;J=A>E?A:E}g[d+(l*36|0)+8>>2]=J;g[d+(l*36|0)+12>>2]=I;y=c[p>>2]|0;r=c[H>>2]|0;H=((y|0)>(r|0)?y:r)+1|0;c[j>>2]=H;r=c[G>>2]|0;c[o>>2]=((H|0)>(r|0)?H:r)+1;i=l;return i|0}if((q|0)>=-1){i=b;return i|0}q=d+(h*36|0)+24|0;r=c[q>>2]|0;H=d+(h*36|0)+28|0;G=c[H>>2]|0;y=d+(r*36|0)|0;u=d+(G*36|0)|0;c[q>>2]=b;q=d+(b*36|0)+20|0;v=d+(h*36|0)+20|0;c[v>>2]=c[q>>2];c[q>>2]=h;q=c[v>>2]|0;if((q|0)==-1)K=a;else{a=d+(q*36|0)+24|0;K=(c[a>>2]|0)==(b|0)?a:d+(q*36|0)+28|0}c[K>>2]=h;K=d+(r*36|0)+32|0;q=d+(G*36|0)+32|0;if((c[K>>2]|0)>(c[q>>2]|0)){c[H>>2]=r;c[f>>2]=G;c[d+(G*36|0)+20>>2]=b;I=+g[n>>2];J=+g[u>>2];E=I>2];I=+g[d+(G*36|0)+4>>2];A=J>2]=E;g[d+(b*36|0)+4>>2]=A;I=+g[d+(l*36|0)+8>>2];J=+g[d+(G*36|0)+8>>2];B=+g[d+(l*36|0)+12>>2];z=+g[d+(G*36|0)+12>>2];a=d+(b*36|0)+8|0;g[a>>2]=I>J?I:J;v=d+(b*36|0)+12|0;g[v>>2]=B>z?B:z;z=+g[y>>2];B=+g[d+(r*36|0)+4>>2];g[m>>2]=E>2]=A>2];A=+g[d+(r*36|0)+8>>2];z=+g[v>>2];E=+g[d+(r*36|0)+12>>2];L=K;M=q;N=z>E?z:E;O=B>A?B:A}else{c[H>>2]=G;c[f>>2]=r;c[d+(r*36|0)+20>>2]=b;A=+g[n>>2];B=+g[y>>2];E=A>2];A=+g[d+(r*36|0)+4>>2];z=B>2]=E;g[d+(b*36|0)+4>>2]=z;A=+g[d+(l*36|0)+8>>2];B=+g[d+(r*36|0)+8>>2];J=+g[d+(l*36|0)+12>>2];I=+g[d+(r*36|0)+12>>2];r=d+(b*36|0)+8|0;g[r>>2]=A>B?A:B;l=d+(b*36|0)+12|0;g[l>>2]=J>I?J:I;I=+g[u>>2];J=+g[d+(G*36|0)+4>>2];g[m>>2]=E>2]=z>2];z=+g[d+(G*36|0)+8>>2];I=+g[l>>2];E=+g[d+(G*36|0)+12>>2];L=q;M=K;N=I>E?I:E;O=J>z?J:z}g[d+(h*36|0)+8>>2]=O;g[d+(h*36|0)+12>>2]=N;d=c[o>>2]|0;o=c[M>>2]|0;M=((d|0)>(o|0)?d:o)+1|0;c[j>>2]=M;j=c[L>>2]|0;c[p>>2]=((M|0)>(j|0)?M:j)+1;i=h;return i|0}function Pe(a,b){a=a|0;b=b|0;var d=0,e=0;Qe(a,b);d=a+16|0;e=c[a+4>>2]|0;c[e+(b*36|0)+20>>2]=c[d>>2];c[e+(b*36|0)+32>>2]=-1;c[d>>2]=b;b=a+8|0;c[b>>2]=(c[b>>2]|0)+-1;return}function Qe(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.0;if((c[a>>2]|0)==(b|0)){c[a>>2]=-1;return}d=a+4|0;e=c[d>>2]|0;f=c[e+(b*36|0)+20>>2]|0;h=e+(f*36|0)+20|0;i=c[h>>2]|0;j=c[e+(f*36|0)+24>>2]|0;if((j|0)==(b|0))k=c[e+(f*36|0)+28>>2]|0;else k=j;if((i|0)==-1){c[a>>2]=k;c[e+(k*36|0)+20>>2]=-1;j=a+16|0;c[h>>2]=c[j>>2];c[e+(f*36|0)+32>>2]=-1;c[j>>2]=f;j=a+8|0;c[j>>2]=(c[j>>2]|0)+-1;return}j=e+(i*36|0)+24|0;c[((c[j>>2]|0)==(f|0)?j:e+(i*36|0)+28|0)>>2]=k;c[e+(k*36|0)+20>>2]=i;k=a+16|0;c[h>>2]=c[k>>2];c[e+(f*36|0)+32>>2]=-1;c[k>>2]=f;f=a+8|0;c[f>>2]=(c[f>>2]|0)+-1;f=i;do{i=Oe(a,f)|0;k=c[d>>2]|0;e=c[k+(i*36|0)+24>>2]|0;h=c[k+(i*36|0)+28>>2]|0;l=+g[k+(e*36|0)>>2];m=+g[k+(h*36|0)>>2];n=+g[k+(e*36|0)+4>>2];o=+g[k+(h*36|0)+4>>2];g[k+(i*36|0)>>2]=l>2]=n>2];n=+g[k+(h*36|0)+8>>2];m=+g[k+(e*36|0)+12>>2];l=+g[k+(h*36|0)+12>>2];g[k+(i*36|0)+8>>2]=o>n?o:n;g[k+(i*36|0)+12>>2]=m>l?m:l;k=c[d>>2]|0;j=c[k+(e*36|0)+32>>2]|0;e=c[k+(h*36|0)+32>>2]|0;c[k+(i*36|0)+32>>2]=((j|0)>(e|0)?j:e)+1;f=c[k+(i*36|0)+20>>2]|0}while((f|0)!=-1);return}function Re(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,m=0,n=0,o=0,p=0,q=0,r=0.0,s=0.0,t=0.0;f=l;l=l+32|0;h=f+8|0;i=f+16|0;j=f;k=f+12|0;m=a+4|0;n=c[m>>2]|0;if(+g[n+(b*36|0)>>2]<=+g[d>>2]){o=d+4|0;if((+g[n+(b*36|0)+4>>2]<=+g[o>>2]?+g[d+8>>2]<=+g[n+(b*36|0)+8>>2]:0)?+g[d+12>>2]<=+g[n+(b*36|0)+12>>2]:0){p=0;l=f;return p|0}else q=o}else q=d+4|0;Qe(a,b);r=+g[d+8>>2];s=+g[d+12>>2];t=+g[q>>2]+-.10000000149011612;g[h>>2]=+g[d>>2]+-.10000000149011612;g[i>>2]=t;g[j>>2]=r+.10000000149011612;g[k>>2]=s+.10000000149011612;s=+g[e>>2]*2.0;r=+g[e+4>>2]*2.0;e=s<0.0?h:j;g[e>>2]=s+ +g[e>>2];e=r<0.0?i:k;g[e>>2]=r+ +g[e>>2];e=c[m>>2]|0;c[e+(b*36|0)>>2]=c[h>>2];c[e+(b*36|0)+4>>2]=c[i>>2];c[e+(b*36|0)+8>>2]=c[j>>2];c[e+(b*36|0)+12>>2]=c[k>>2];Ne(a,b);p=1;l=f;return p|0}function Se(b,d,e,f,h){b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;var i=0,k=0,l=0.0,m=0.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,B=0,D=0.0,E=0.0;i=b+60|0;c[i>>2]=0;k=f+12|0;l=+g[h+12>>2];m=+g[k>>2];n=+g[h+8>>2];o=+g[f+16>>2];p=+g[h>>2]+(l*m-n*o)-+g[e>>2];q=m*n+l*o+ +g[h+4>>2]-+g[e+4>>2];o=+g[e+12>>2];l=+g[e+8>>2];n=p*o+q*l;m=o*q-p*l;e=c[d+12>>2]|0;h=c[d+16>>2]|0;r=c[d+20>>2]|0;s=c[d+24>>2]|0;l=(c[j>>2]=r,+g[j>>2]);p=(c[j>>2]=e,+g[j>>2]);q=l-p;o=(c[j>>2]=s,+g[j>>2]);t=(c[j>>2]=h,+g[j>>2]);u=o-t;v=q*(l-n)+u*(o-m);w=n-p;x=m-t;y=w*q+x*u;z=+g[d+8>>2]+ +g[f+8>>2];if(y<=0.0){if(w*w+x*x>z*z)return;if(a[d+44>>0]|0?(p-n)*(p-+g[d+28>>2])+(t-m)*(t-+g[d+32>>2])>0.0:0)return;c[i>>2]=1;c[b+56>>2]=0;g[b+40>>2]=0.0;g[b+44>>2]=0.0;c[b+48>>2]=e;c[b+52>>2]=h;f=b+16|0;a[f>>0]=0;a[f+1>>0]=0;a[f+2>>0]=0;a[f+3>>0]=0;f=k;A=c[f+4>>2]|0;B=b;c[B>>2]=c[f>>2];c[B+4>>2]=A;return}if(!(v<=0.0)){D=1.0/(q*q+u*u);E=n-D*(p*v+l*y);p=m-D*(t*v+o*y);if(E*E+p*p>z*z)return;p=-u;A=x*q+w*p<0.0;w=A?u:p;p=A?-q:q;q=+C(+(w*w+p*p));A=q<1.1920928955078125e-07;u=1.0/q;c[i>>2]=1;c[b+56>>2]=1;g[b+40>>2]=A?w:w*u;g[b+44>>2]=A?p:p*u;c[b+48>>2]=e;c[b+52>>2]=h;h=b+16|0;a[h>>0]=0;a[h+1>>0]=0;a[h+2>>0]=1;a[h+3>>0]=0;h=k;e=c[h+4>>2]|0;A=b;c[A>>2]=c[h>>2];c[A+4>>2]=e;return}u=n-l;n=m-o;if(u*u+n*n>z*z)return;if(a[d+45>>0]|0?u*(+g[d+36>>2]-l)+n*(+g[d+40>>2]-o)>0.0:0)return;c[i>>2]=1;c[b+56>>2]=0;g[b+40>>2]=0.0;g[b+44>>2]=0.0;c[b+48>>2]=r;c[b+52>>2]=s;s=b+16|0;a[s>>0]=1;a[s+1>>0]=0;a[s+2>>0]=0;a[s+3>>0]=0;s=k;k=c[s+4>>2]|0;r=b;c[r>>2]=c[s>>2];c[r+4>>2]=k;return}function Te(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 k=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,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.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,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,sa=0,ta=0,ua=0.0,va=0,wa=0,xa=0.0;k=l;l=l+160|0;m=k+140|0;n=k+128|0;o=k+24|0;p=k+72|0;q=k+48|0;r=k;s=+g[f+12>>2];t=+g[i+8>>2];u=+g[f+8>>2];v=+g[i+12>>2];w=s*t-u*v;x=t*u+s*v;v=+g[i>>2]-+g[f>>2];t=+g[i+4>>2]-+g[f+4>>2];y=s*v+u*t;z=s*t-u*v;f=b+132|0;g[f>>2]=y;i=b+136|0;g[i>>2]=z;A=b+140|0;g[A>>2]=w;B=b+144|0;g[B>>2]=x;v=+g[h+12>>2];u=+g[h+16>>2];t=y+(x*v-w*u);y=v*w+x*u+z;g[b+148>>2]=t;g[b+152>>2]=y;D=e+28|0;E=c[D>>2]|0;F=c[D+4>>2]|0;D=b+156|0;c[D>>2]=E;c[D+4>>2]=F;D=b+164|0;G=e+12|0;H=c[G>>2]|0;I=c[G+4>>2]|0;G=D;c[G>>2]=H;c[G+4>>2]=I;G=b+172|0;J=e+20|0;K=c[J>>2]|0;L=c[J+4>>2]|0;J=G;c[J>>2]=K;c[J+4>>2]=L;J=e+36|0;M=c[J>>2]|0;N=c[J+4>>2]|0;J=b+180|0;c[J>>2]=M;c[J+4>>2]=N;J=(a[e+44>>0]|0)!=0;O=(a[e+45>>0]|0)==0;z=(c[j>>2]=K,+g[j>>2]);u=(c[j>>2]=H,+g[j>>2]);v=z-u;s=(c[j>>2]=L,+g[j>>2]);L=b+168|0;P=(c[j>>2]=I,+g[j>>2]);Q=s-P;R=+C(+(v*v+Q*Q));I=R<1.1920928955078125e-07;S=1.0/R;R=I?v:v*S;v=I?Q:Q*S;I=b+196|0;S=-R;g[I>>2]=v;H=b+200|0;g[H>>2]=S;Q=(t-u)*v+(y-P)*S;S=(c[j>>2]=E,+g[j>>2]);T=(c[j>>2]=F,+g[j>>2]);U=(c[j>>2]=M,+g[j>>2]);V=(c[j>>2]=N,+g[j>>2]);if(J){W=u-S;u=P-T;P=+C(+(W*W+u*u));N=P<1.1920928955078125e-07;X=1.0/P;P=N?W:W*X;W=N?u:u*X;X=-P;g[b+188>>2]=W;g[b+192>>2]=X;Y=(t-S)*W+(y-T)*X;Z=v*P-R*W>=0.0}else{Y=0.0;Z=0}do if(O){N=Q>=0.0;if(!J){M=N&1;a[b+248>>0]=M;if(N){F=I;E=c[F>>2]|0;K=c[F+4>>2]|0;F=b+212|0;c[F>>2]=E;c[F+4>>2]=K;W=-(c[j>>2]=E,+g[j>>2]);g[b+228>>2]=W;g[b+232>>2]=R;g[b+236>>2]=W;g[b+240>>2]=R;_=M;break}else{g[b+212>>2]=-v;g[b+216>>2]=R;E=I;K=c[E>>2]|0;F=c[E+4>>2]|0;E=b+228|0;c[E>>2]=K;c[E+4>>2]=F;E=b+236|0;c[E>>2]=K;c[E+4>>2]=F;_=M;break}}M=Y>=0.0;if(Z){F=N|M;E=F&1;a[b+248>>0]=E;if(F){F=I;K=c[F>>2]|0;e=c[F+4>>2]|0;F=b+212|0;c[F>>2]=K;c[F+4>>2]=e;e=b+188|0;F=c[e+4>>2]|0;$=b+228|0;c[$>>2]=c[e>>2];c[$+4>>2]=F;g[b+236>>2]=-(c[j>>2]=K,+g[j>>2]);g[b+240>>2]=R;_=E;break}else{g[b+212>>2]=-v;g[b+216>>2]=R;K=I;F=c[K>>2]|0;$=c[K+4>>2]|0;K=b+228|0;c[K>>2]=F;c[K+4>>2]=$;g[b+236>>2]=-(c[j>>2]=F,+g[j>>2]);g[b+240>>2]=R;_=E;break}}else{E=N&M;M=E&1;a[b+248>>0]=M;if(E){E=I;N=c[E>>2]|0;F=c[E+4>>2]|0;E=b+212|0;c[E>>2]=N;c[E+4>>2]=F;E=b+228|0;c[E>>2]=N;c[E+4>>2]=F;g[b+236>>2]=-(c[j>>2]=N,+g[j>>2]);g[b+240>>2]=R;_=M;break}else{g[b+212>>2]=-v;g[b+216>>2]=R;N=I;F=c[N+4>>2]|0;E=b+228|0;c[E>>2]=c[N>>2];c[E+4>>2]=F;W=-+g[b+192>>2];g[b+236>>2]=-+g[b+188>>2];g[b+240>>2]=W;_=M;break}}}else{W=U-z;P=V-s;X=+C(+(W*W+P*P));M=X<1.1920928955078125e-07;T=1.0/X;X=M?W:W*T;W=M?P:P*T;T=-X;g[b+204>>2]=W;g[b+208>>2]=T;M=R*W-v*X>0.0;P=(t-z)*W+(y-s)*T;if(!J){F=Q>=0.0;E=P>=0.0;if(M){N=F|E;$=N&1;a[b+248>>0]=$;if(N){N=I;K=c[N>>2]|0;e=c[N+4>>2]|0;N=b+212|0;c[N>>2]=K;c[N+4>>2]=e;g[b+228>>2]=-(c[j>>2]=K,+g[j>>2]);g[b+232>>2]=R;K=b+204|0;e=c[K+4>>2]|0;N=b+236|0;c[N>>2]=c[K>>2];c[N+4>>2]=e;_=$;break}else{T=-v;g[b+212>>2]=T;g[b+216>>2]=R;g[b+228>>2]=T;g[b+232>>2]=R;e=I;N=c[e+4>>2]|0;K=b+236|0;c[K>>2]=c[e>>2];c[K+4>>2]=N;_=$;break}}else{$=F&E;E=$&1;a[b+248>>0]=E;if($){$=I;F=c[$>>2]|0;N=c[$+4>>2]|0;$=b+212|0;c[$>>2]=F;c[$+4>>2]=N;g[b+228>>2]=-(c[j>>2]=F,+g[j>>2]);g[b+232>>2]=R;$=b+236|0;c[$>>2]=F;c[$+4>>2]=N;_=E;break}else{g[b+212>>2]=-v;g[b+216>>2]=R;T=-+g[b+208>>2];g[b+228>>2]=-+g[b+204>>2];g[b+232>>2]=T;N=I;$=c[N+4>>2]|0;F=b+236|0;c[F>>2]=c[N>>2];c[F+4>>2]=$;_=E;break}}}if(Z&M){E=Q>=0.0|Y>=0.0|P>=0.0;$=E&1;a[b+248>>0]=$;if(E){E=I;F=c[E+4>>2]|0;N=b+212|0;c[N>>2]=c[E>>2];c[N+4>>2]=F;F=b+188|0;N=c[F+4>>2]|0;E=b+228|0;c[E>>2]=c[F>>2];c[E+4>>2]=N;N=b+204|0;E=c[N+4>>2]|0;F=b+236|0;c[F>>2]=c[N>>2];c[F+4>>2]=E;_=$;break}else{T=-v;g[b+212>>2]=T;g[b+216>>2]=R;g[b+228>>2]=T;g[b+232>>2]=R;g[b+236>>2]=T;g[b+240>>2]=R;_=$;break}}if(Z){$=Q>=0.0&P>=0.0;E=b+248|0;if(!(Y>=0.0)){F=$&1;a[E>>0]=F;if($)aa=F;else{T=-v;g[b+212>>2]=T;g[b+216>>2]=R;g[b+228>>2]=-W;g[b+232>>2]=X;g[b+236>>2]=T;g[b+240>>2]=R;_=F;break}}else{a[E>>0]=1;aa=1}E=I;F=c[E>>2]|0;$=c[E+4>>2]|0;E=b+212|0;c[E>>2]=F;c[E+4>>2]=$;E=b+188|0;N=c[E+4>>2]|0;K=b+228|0;c[K>>2]=c[E>>2];c[K+4>>2]=N;N=b+236|0;c[N>>2]=F;c[N+4>>2]=$;_=aa;break}if(!M){M=Q>=0.0&Y>=0.0&P>=0.0;$=M&1;a[b+248>>0]=$;if(M){M=I;N=c[M>>2]|0;F=c[M+4>>2]|0;M=b+212|0;c[M>>2]=N;c[M+4>>2]=F;M=b+228|0;c[M>>2]=N;c[M+4>>2]=F;M=b+236|0;c[M>>2]=N;c[M+4>>2]=F;_=$;break}else{g[b+212>>2]=-v;g[b+216>>2]=R;g[b+228>>2]=-W;g[b+232>>2]=X;X=-+g[b+192>>2];g[b+236>>2]=-+g[b+188>>2];g[b+240>>2]=X;_=$;break}}$=Q>=0.0&Y>=0.0;F=b+248|0;if(!(P>=0.0)){M=$&1;a[F>>0]=M;if($)ba=M;else{P=-v;g[b+212>>2]=P;g[b+216>>2]=R;g[b+228>>2]=P;g[b+232>>2]=R;P=-+g[b+192>>2];g[b+236>>2]=-+g[b+188>>2];g[b+240>>2]=P;_=M;break}}else{a[F>>0]=1;ba=1}F=I;M=c[F>>2]|0;$=c[F+4>>2]|0;F=b+212|0;c[F>>2]=M;c[F+4>>2]=$;F=b+228|0;c[F>>2]=M;c[F+4>>2]=$;$=b+204|0;F=c[$+4>>2]|0;M=b+236|0;c[M>>2]=c[$>>2];c[M+4>>2]=F;_=ba}while(0);ba=h+148|0;aa=c[ba>>2]|0;Z=b+128|0;c[Z>>2]=aa;if((aa|0)>0){J=0;R=x;x=w;while(1){w=+g[h+20+(J<<3)>>2];v=+g[h+20+(J<<3)+4>>2];Y=w*x+R*v+ +g[i>>2];g[b+(J<<3)>>2]=+g[f>>2]+(R*w-x*v);g[b+(J<<3)+4>>2]=Y;Y=+g[B>>2];v=+g[h+84+(J<<3)>>2];w=+g[A>>2];Q=+g[h+84+(J<<3)+4>>2];g[b+64+(J<<3)>>2]=Y*v-w*Q;g[b+64+(J<<3)+4>>2]=v*w+Y*Q;O=J+1|0;if((O|0)>=(c[ba>>2]|0))break;J=O;R=+g[B>>2];x=+g[A>>2]}J=b+248|0;ca=J;da=a[J>>0]|0;ea=c[Z>>2]|0}else{ca=b+248|0;da=_;ea=aa}aa=b+244|0;g[aa>>2]=.019999999552965164;_=d+60|0;c[_>>2]=0;c[m>>2]=1;c[m+4>>2]=(da^1)&255;da=m+8|0;g[da>>2]=3402823466385288598117041.0e14;if((ea|0)<=0){l=k;return}x=+g[b+164>>2];R=+g[L>>2];Q=+g[b+212>>2];Y=+g[b+216>>2];L=0;w=3402823466385288598117041.0e14;v=3402823466385288598117041.0e14;while(1){s=Q*(+g[b+(L<<3)>>2]-x)+Y*(+g[b+(L<<3)+4>>2]-R);J=s>2]=v;if(v>.019999999552965164){l=k;return}Ue(n,b);da=c[n>>2]|0;if(da){w=+g[n+8>>2];if(!(w>+g[aa>>2]))if(w>v*.9800000190734863+1.0000000474974513e-03){fa=n;ga=da;ha=55}else{fa=m;ga=1;ha=55}}else{fa=m;ga=1;ha=55}if((ha|0)==55){ha=c[fa+4>>2]|0;fa=(ga|0)==1;ga=d+56|0;do if(fa){c[ga>>2]=1;m=c[Z>>2]|0;if((m|0)>1){v=+g[b+212>>2];w=+g[b+216>>2];da=1;R=v*+g[b+64>>2]+w*+g[b+68>>2];n=0;while(1){Y=v*+g[b+64+(da<<3)>>2]+w*+g[b+64+(da<<3)+4>>2];ea=Y=(m|0)){ia=L;break}else{R=ea?Y:R;n=L}}}else ia=0;n=ia+1|0;da=(n|0)<(m|0)?n:0;n=b+(ia<<3)|0;L=c[n+4>>2]|0;ea=o;c[ea>>2]=c[n>>2];c[ea+4>>2]=L;L=o+8|0;a[L>>0]=0;a[L+1>>0]=ia;a[L+2>>0]=1;a[L+3>>0]=0;L=b+(da<<3)|0;ea=c[L+4>>2]|0;n=o+12|0;c[n>>2]=c[L>>2];c[n+4>>2]=ea;ea=o+20|0;a[ea>>0]=0;a[ea+1>>0]=da;a[ea+2>>0]=1;a[ea+3>>0]=0;if(!(a[ca>>0]|0)){c[p>>2]=1;c[p+4>>2]=0;ea=p+8|0;da=G;n=c[da>>2]|0;L=c[da+4>>2]|0;da=ea;c[da>>2]=n;c[da+4>>2]=L;da=D;J=c[da>>2]|0;ba=c[da+4>>2]|0;da=p+16|0;c[da>>2]=J;c[da+4>>2]=ba;R=-+g[I>>2];w=-+g[H>>2];g[p+24>>2]=R;g[p+28>>2]=w;ja=ba;ka=J;la=L;ma=n;na=ea;oa=p;pa=p+24|0;qa=R;ra=(g[j>>2]=w,c[j>>2]|0);sa=1;break}else{c[p>>2]=0;c[p+4>>2]=1;ea=p+8|0;n=D;L=c[n>>2]|0;J=c[n+4>>2]|0;n=ea;c[n>>2]=L;c[n+4>>2]=J;n=G;ba=c[n>>2]|0;da=c[n+4>>2]|0;n=p+16|0;c[n>>2]=ba;c[n+4>>2]=da;n=p+24|0;O=I;F=c[O>>2]|0;M=c[O+4>>2]|0;O=n;c[O>>2]=F;c[O+4>>2]=M;ja=da;ka=ba;la=J;ma=L;na=ea;oa=p;pa=n;qa=(c[j>>2]=F,+g[j>>2]);ra=M;sa=0;break}}else{c[ga>>2]=2;M=D;F=c[M+4>>2]|0;n=o;c[n>>2]=c[M>>2];c[n+4>>2]=F;F=o+8|0;a[F>>0]=0;n=ha&255;a[F+1>>0]=n;a[F+2>>0]=0;a[F+3>>0]=1;F=G;M=c[F+4>>2]|0;ea=o+12|0;c[ea>>2]=c[F>>2];c[ea+4>>2]=M;M=o+20|0;a[M>>0]=0;a[M+1>>0]=n;a[M+2>>0]=0;a[M+3>>0]=1;c[p>>2]=ha;M=ha+1|0;n=(M|0)<(c[Z>>2]|0)?M:0;c[p+4>>2]=n;M=p+8|0;ea=b+(ha<<3)|0;F=c[ea>>2]|0;L=c[ea+4>>2]|0;ea=M;c[ea>>2]=F;c[ea+4>>2]=L;ea=b+(n<<3)|0;n=c[ea>>2]|0;J=c[ea+4>>2]|0;ea=p+16|0;c[ea>>2]=n;c[ea+4>>2]=J;ea=p+24|0;ba=b+64+(ha<<3)|0;da=c[ba>>2]|0;O=c[ba+4>>2]|0;ba=ea;c[ba>>2]=da;c[ba+4>>2]=O;ja=J;ka=n;la=L;ma=F;na=M;oa=p;pa=ea;qa=(c[j>>2]=da,+g[j>>2]);ra=O;sa=ha}while(0);w=(c[j>>2]=ma,+g[j>>2]);R=(c[j>>2]=la,+g[j>>2]);v=(c[j>>2]=ka,+g[j>>2]);Y=(c[j>>2]=ja,+g[j>>2]);ja=p+32|0;ka=p+28|0;la=p+24|0;x=-qa;c[ja>>2]=ra;g[p+36>>2]=x;Q=(c[j>>2]=ra,+g[j>>2]);s=-Q;ra=p+44|0;g[ra>>2]=s;g[p+48>>2]=qa;ma=p+8|0;ha=p+12|0;y=Q*w+R*x;g[p+40>>2]=y;b=p+52|0;g[b>>2]=v*s+qa*Y;if((Ze(q,o,ja,y,sa)|0)>=2?(Ze(r,q,ra,+g[b>>2],c[p+4>>2]|0)|0)>=2:0){if(fa){fa=pa;pa=c[fa>>2]|0;p=c[fa+4>>2]|0;fa=d+40|0;c[fa>>2]=pa;c[fa+4>>2]=p;y=(c[j>>2]=pa,+g[j>>2]);pa=na;na=c[pa+4>>2]|0;p=d+48|0;c[p>>2]=c[pa>>2];c[p+4>>2]=na;Y=+g[ma>>2];qa=+g[ha>>2];s=+g[ka>>2];v=+g[r>>2];x=+g[r+4>>2];R=+g[aa>>2];if(!((v-Y)*y+(x-qa)*s<=R)){ta=0;ua=R}else{R=v-+g[f>>2];v=x-+g[i>>2];x=+g[B>>2];w=+g[A>>2];g[d>>2]=R*x+v*w;g[d+4>>2]=x*v-R*w;c[d+16>>2]=c[r+8>>2];ta=1;ua=+g[aa>>2]}w=+g[r+12>>2];R=+g[r+16>>2];if(!((w-Y)*y+(R-qa)*s<=ua))va=ta;else{ua=w-+g[f>>2];w=R-+g[i>>2];R=+g[B>>2];s=+g[A>>2];g[d+(ta*20|0)>>2]=ua*R+w*s;g[d+(ta*20|0)+4>>2]=R*w-ua*s;c[d+(ta*20|0)+16>>2]=c[r+20>>2];va=ta+1|0}}else{ta=c[oa>>2]|0;oa=h+84+(ta<<3)|0;A=c[oa+4>>2]|0;B=d+40|0;c[B>>2]=c[oa>>2];c[B+4>>2]=A;s=+g[la>>2];la=h+20+(ta<<3)|0;ta=c[la+4>>2]|0;h=d+48|0;c[h>>2]=c[la>>2];c[h+4>>2]=ta;ua=+g[ma>>2];w=+g[ha>>2];R=+g[ka>>2];qa=+g[aa>>2];if(!((+g[r>>2]-ua)*s+(+g[r+4>>2]-w)*R<=qa)){wa=0;xa=qa}else{ka=r;ha=c[ka+4>>2]|0;ma=d;c[ma>>2]=c[ka>>2];c[ma+4>>2]=ha;ha=r+8|0;ma=d+16|0;a[ma+2>>0]=a[ha+3>>0]|0;a[ma+3>>0]=a[ha+2>>0]|0;a[ma>>0]=a[ha+1>>0]|0;a[ma+1>>0]=a[ha>>0]|0;wa=1;xa=+g[aa>>2]}aa=r+12|0;if(!((+g[aa>>2]-ua)*s+(+g[r+16>>2]-w)*R<=xa))va=wa;else{ha=aa;aa=c[ha+4>>2]|0;ma=d+(wa*20|0)|0;c[ma>>2]=c[ha>>2];c[ma+4>>2]=aa;aa=r+20|0;r=d+(wa*20|0)+16|0;a[r+2>>0]=a[aa+3>>0]|0;a[r+3>>0]=a[aa+2>>0]|0;a[r>>0]=a[aa+1>>0]|0;a[r+1>>0]=a[aa>>0]|0;va=wa+1|0}}c[_>>2]=va}}l=k;return}function Ue(a,b){a=a|0;b=b|0;var d=0,e=0,f=0.0,h=0.0,i=0,j=0.0,k=0.0,l=0.0,m=0.0,n=0.0,o=0,p=0,q=0,r=0,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,D=0.0,E=0;c[a>>2]=0;d=a+4|0;c[d>>2]=-1;e=a+8|0;g[e>>2]=-3402823466385288598117041.0e14;f=+g[b+216>>2];h=+g[b+212>>2];i=c[b+128>>2]|0;if((i|0)<=0)return;j=+g[b+164>>2];k=+g[b+168>>2];l=+g[b+172>>2];m=+g[b+176>>2];n=+g[b+244>>2];o=b+228|0;p=b+232|0;q=b+236|0;r=b+240|0;s=0;t=-3402823466385288598117041.0e14;while(1){u=+g[b+64+(s<<3)>>2];v=-u;w=-+g[b+64+(s<<3)+4>>2];x=+g[b+(s<<3)>>2];y=+g[b+(s<<3)+4>>2];z=(x-j)*v+(y-k)*w;A=(x-l)*v+(y-m)*w;B=zn)break;if(!(f*u+h*w>=0.0))if(B>t?!((v-+g[o>>2])*h+(w-+g[p>>2])*f<-.03490658849477768):0)C=7;else D=t;else if(B>t?!((v-+g[q>>2])*h+(w-+g[r>>2])*f<-.03490658849477768):0)C=7;else D=t;if((C|0)==7){C=0;c[a>>2]=2;c[d>>2]=s;g[e>>2]=B;D=B}E=s+1|0;if((E|0)<(i|0)){s=E;t=D}else{C=10;break}}if((C|0)==10)return;c[a>>2]=2;c[d>>2]=s;g[e>>2]=B;return}function Ve(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0;f=l;l=l+256|0;Te(f,a,b,c,d,e);l=f;return}function We(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,m=0,n=0,o=0,p=0,q=0,r=0,s=0.0,t=0.0,u=0.0,v=0,w=0,x=0,y=0.0,z=0.0,A=0.0,B=0.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.0,O=0.0,P=0.0,Q=0.0,R=0.0,S=0,T=0,U=0;i=l;l=l+96|0;j=i+92|0;k=i+88|0;m=i+64|0;n=i+56|0;o=i+32|0;p=i+8|0;q=i;r=b+60|0;c[r>>2]=0;s=+g[d+8>>2]+ +g[f+8>>2];c[j>>2]=0;t=+Xe(j,d,e,f,h);if(t>s){l=i;return}c[k>>2]=0;u=+Xe(k,f,h,d,e);if(!(u>s)){v=u>t+5.000000237487257e-04;w=v?e:h;x=v?h:e;e=v?d:f;h=c[k>>2]|0;k=c[j>>2]|0;t=+g[x+12>>2];u=+g[x+8>>2];y=+g[x+4>>2];z=+g[x>>2];A=+g[w+12>>2];B=+g[w+8>>2];D=+g[w+4>>2];E=+g[w>>2];c[b+56>>2]=v?2:1;w=v?f:d;d=v?h:k;k=c[e+148>>2]|0;F=+g[w+84+(d<<3)>>2];G=+g[w+84+(d<<3)+4>>2];H=t*F-u*G;I=u*F+t*G;G=A*H+B*I;F=A*I-B*H;if((k|0)>0){H=3402823466385288598117041.0e14;h=0;f=0;while(1){I=G*+g[e+84+(h<<3)>>2]+F*+g[e+84+(h<<3)+4>>2];x=I>2];F=+g[e+20+(J<<3)+4>>2];g[m>>2]=E+(A*H-B*F);g[m+4>>2]=D+(B*H+A*F);f=d&255;k=m+8|0;a[k>>0]=f;a[k+1>>0]=J;a[k+2>>0]=1;a[k+3>>0]=0;F=+g[e+20+(h<<3)>>2];H=+g[e+20+(h<<3)+4>>2];g[m+12>>2]=E+(A*F-B*H);g[m+16>>2]=D+(B*F+A*H);e=m+20|0;a[e>>0]=f;a[e+1>>0]=h;a[e+2>>0]=1;a[e+3>>0]=0;e=d+1|0;h=(e|0)<(c[w+148>>2]|0)?e:0;H=+g[w+20+(d<<3)>>2];F=+g[w+20+(d<<3)+4>>2];G=+g[w+20+(h<<3)>>2];I=+g[w+20+(h<<3)+4>>2];K=G-H;L=I-F;M=+C(+(K*K+L*L));w=M<1.1920928955078125e-07;N=1.0/M;M=w?K:K*N;K=w?L:L*N;N=(H+G)*.5;L=t*M-u*K;O=u*M+t*K;g[n>>2]=L;g[n+4>>2]=O;P=-L;Q=z+(t*H-u*F);R=y+(u*H+t*F);H=-M;M=(F+I)*.5;F=Q*O+R*P;g[q>>2]=P;g[q+4>>2]=-O;if((Ze(o,m,q,s-(Q*L+R*O),d)|0)>=2?(Ze(p,o,n,s+((z+(t*G-u*I))*L+(y+(u*G+t*I))*O),h)|0)>=2:0){g[b+40>>2]=K;g[b+44>>2]=H;g[b+48>>2]=N;g[b+52>>2]=M;M=+g[p>>2];N=+g[p+4>>2];h=!(O*M+N*P-F<=s);if(v){if(h)S=0;else{H=M-E;K=N-D;g[b>>2]=A*H+B*K;g[b+4>>2]=A*K-B*H;v=b+16|0;n=c[p+8>>2]|0;a[v>>0]=n>>>8;a[v+1>>0]=n;a[v+2>>0]=n>>>24;a[v+3>>0]=n>>>16;S=1}H=+g[p+12>>2];K=+g[p+16>>2];if(!(O*H+K*P-F<=s))T=S;else{I=H-E;H=K-D;g[b+(S*20|0)>>2]=A*I+B*H;g[b+(S*20|0)+4>>2]=A*H-B*I;n=b+(S*20|0)+16|0;v=c[p+20>>2]|0;a[n>>0]=v>>>8;a[n+1>>0]=v;a[n+2>>0]=v>>>24;a[n+3>>0]=v>>>16;T=S+1|0}}else{if(h)U=0;else{I=M-E;M=N-D;g[b>>2]=A*I+B*M;g[b+4>>2]=A*M-B*I;c[b+16>>2]=c[p+8>>2];U=1}I=+g[p+12>>2];M=+g[p+16>>2];if(!(O*I+M*P-F<=s))T=U;else{s=I-E;E=M-D;g[b+(U*20|0)>>2]=A*s+B*E;g[b+(U*20|0)+4>>2]=A*E-B*s;c[b+(U*20|0)+16>>2]=c[p+20>>2];T=U+1|0}}c[r>>2]=T}}l=i;return}function Xe(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var 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,s=0.0,t=0,u=0.0,v=0,w=0,x=0,y=0.0,z=0.0;h=c[b+148>>2]|0;i=c[e+148>>2]|0;j=+g[f+12>>2];k=+g[d+8>>2];l=+g[f+8>>2];m=+g[d+12>>2];n=j*k-l*m;o=k*l+j*m;m=+g[d>>2]-+g[f>>2];k=+g[d+4>>2]-+g[f+4>>2];p=j*m+l*k;q=j*k-l*m;if((h|0)<=0){r=0;s=-3402823466385288598117041.0e14;c[a>>2]=r;return +s}if((i|0)>0){t=0;u=-3402823466385288598117041.0e14;v=0}else{f=0;m=-3402823466385288598117041.0e14;d=0;while(1){w=m<3402823466385288598117041.0e14;l=w?3402823466385288598117041.0e14:m;x=w?f:d;f=f+1|0;if((f|0)==(h|0)){r=x;s=l;break}else{m=l;d=x}}c[a>>2]=r;return +s}while(1){m=+g[b+84+(t<<3)>>2];l=+g[b+84+(t<<3)+4>>2];k=o*m-n*l;j=n*m+o*l;l=+g[b+20+(t<<3)>>2];m=+g[b+20+(t<<3)+4>>2];y=p+(o*l-n*m);z=q+(n*l+o*m);d=0;m=3402823466385288598117041.0e14;do{l=k*(+g[e+20+(d<<3)>>2]-y)+j*(+g[e+20+(d<<3)+4>>2]-z);m=lu;z=d?m:u;f=d?t:v;t=t+1|0;if((t|0)==(h|0)){r=f;s=z;break}else{u=z;v=f}}c[a>>2]=r;return +s}function Ye(a,b,d,e,f,h){a=a|0;b=b|0;d=d|0;e=+e;f=f|0;h=+h;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,v=0,w=0,x=0,y=0,z=0.0,A=0.0,B=0.0,D=0.0;i=b+60|0;if(!(c[i>>2]|0))return;switch(c[b+56>>2]|0){case 0:{g[a>>2]=1.0;j=a+4|0;g[j>>2]=0.0;k=+g[d+12>>2];l=+g[b+48>>2];m=+g[d+8>>2];n=+g[b+52>>2];o=+g[d>>2]+(k*l-m*n);p=l*m+k*n+ +g[d+4>>2];n=+g[f+12>>2];k=+g[b>>2];m=+g[f+8>>2];l=+g[b+4>>2];q=+g[f>>2]+(n*k-m*l);r=k*m+n*l+ +g[f+4>>2];l=o-q;n=p-r;if(l*l+n*n>1.4210854715202004e-14){n=q-o;l=r-p;g[a>>2]=n;g[j>>2]=l;m=+C(+(n*n+l*l));k=1.0/m;if(m<1.1920928955078125e-07){s=n;t=l}else{m=l*k;l=n*k;g[a>>2]=l;g[j>>2]=m;s=l;t=m}}else{s=1.0;t=0.0}m=o+s*e;o=p+t*e;p=q-s*h;q=r-t*h;g[a+8>>2]=(m+p)*.5;g[a+12>>2]=(o+q)*.5;g[a+24>>2]=(p-m)*s+(q-o)*t;return}case 1:{j=d+12|0;t=+g[j>>2];o=+g[b+40>>2];u=d+8|0;q=+g[u>>2];s=+g[b+44>>2];m=t*o-q*s;p=o*q+t*s;g[a>>2]=m;v=a+4|0;g[v>>2]=p;s=+g[j>>2];t=+g[b+48>>2];q=+g[u>>2];o=+g[b+52>>2];r=+g[d>>2]+(s*t-q*o);l=t*q+s*o+ +g[d+4>>2];if((c[i>>2]|0)<=0)return;u=f+12|0;j=f+8|0;w=f+4|0;x=0;o=m;m=p;while(1){p=+g[u>>2];s=+g[b+(x*20|0)>>2];q=+g[j>>2];t=+g[b+(x*20|0)+4>>2];k=+g[f>>2]+(p*s-q*t);n=s*q+p*t+ +g[w>>2];t=e-(o*(k-r)+(n-l)*m);p=k+o*t;q=n+m*t;t=k-o*h;k=n-m*h;g[a+8+(x<<3)>>2]=(t+p)*.5;g[a+8+(x<<3)+4>>2]=(k+q)*.5;g[a+24+(x<<2)>>2]=+g[a>>2]*(t-p)+ +g[v>>2]*(k-q);y=x+1|0;if((y|0)>=(c[i>>2]|0))break;x=y;o=+g[a>>2];m=+g[v>>2]}return}case 2:{v=f+12|0;m=+g[v>>2];o=+g[b+40>>2];x=f+8|0;l=+g[x>>2];r=+g[b+44>>2];q=m*o-l*r;k=o*l+m*r;g[a>>2]=q;w=a+4|0;g[w>>2]=k;r=+g[v>>2];m=+g[b+48>>2];l=+g[x>>2];o=+g[b+52>>2];p=+g[f>>2]+(r*m-l*o);t=m*l+r*o+ +g[f+4>>2];if((c[i>>2]|0)>0){f=d+12|0;x=d+8|0;v=d+4|0;j=0;o=q;r=k;while(1){l=+g[f>>2];m=+g[b+(j*20|0)>>2];n=+g[x>>2];s=+g[b+(j*20|0)+4>>2];z=+g[d>>2]+(l*m-n*s);A=m*n+l*s+ +g[v>>2];s=h-(o*(z-p)+(A-t)*r);l=z+o*s;n=A+r*s;s=z-o*e;z=A-r*e;g[a+8+(j<<3)>>2]=(s+l)*.5;g[a+8+(j<<3)+4>>2]=(z+n)*.5;g[a+24+(j<<2)>>2]=+g[a>>2]*(s-l)+ +g[w>>2]*(z-n);j=j+1|0;n=+g[a>>2];z=+g[w>>2];if((j|0)>=(c[i>>2]|0)){B=n;D=z;break}else{o=n;r=z}}}else{B=q;D=k}g[a>>2]=-B;g[w>>2]=-D;return}default:return}}function Ze(b,d,e,f,h){b=b|0;d=d|0;e=e|0;f=+f;h=h|0;var i=0.0,j=0.0,k=0.0,l=0,m=0,n=0.0,o=0,p=0,q=0,r=0;i=+g[e>>2];j=+g[e+4>>2];e=d+4|0;k=i*+g[d>>2]+j*+g[e>>2]-f;l=d+12|0;m=d+16|0;n=i*+g[l>>2]+j*+g[m>>2]-f;if(!(k<=0.0))o=0;else{c[b>>2]=c[d>>2];c[b+4>>2]=c[d+4>>2];c[b+8>>2]=c[d+8>>2];o=1}if(!(n<=0.0))p=o;else{q=b+(o*12|0)|0;c[q>>2]=c[l>>2];c[q+4>>2]=c[l+4>>2];c[q+8>>2]=c[l+8>>2];p=o+1|0}if(!(k*n<0.0)){r=p;return r|0}f=k/(k-n);n=+g[d>>2];k=+g[e>>2];j=k+f*(+g[m>>2]-k);g[b+(p*12|0)>>2]=n+f*(+g[l>>2]-n);g[b+(p*12|0)+4>>2]=j;l=b+(p*12|0)+8|0;a[l>>0]=h;a[l+1>>0]=a[d+8+1>>0]|0;a[l+2>>0]=0;a[l+3>>0]=1;r=p+1|0;return r|0}function _e(d,e,f,h,i,j){d=d|0;e=e|0;f=f|0;h=h|0;i=i|0;j=j|0;var k=0,m=0,n=0,o=0;k=l;l=l+128|0;m=k+36|0;n=k+24|0;o=k;c[m+16>>2]=0;c[m+20>>2]=0;g[m+24>>2]=0.0;c[m+44>>2]=0;c[m+48>>2]=0;g[m+52>>2]=0.0;Nd(m,d,e);Nd(m+28|0,f,h);h=m+56|0;c[h>>2]=c[i>>2];c[h+4>>2]=c[i+4>>2];c[h+8>>2]=c[i+8>>2];c[h+12>>2]=c[i+12>>2];i=m+72|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];a[m+88>>0]=1;b[n+4>>1]=0;Pd(o,n,m);l=k;return +g[o+16>>2]<1.1920928955078125e-06|0}function $e(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;h=a+40|0;c[h>>2]=b;c[a+44>>2]=d;c[a+48>>2]=e;c[a+28>>2]=0;c[a+36>>2]=0;c[a+32>>2]=0;c[a>>2]=f;c[a+4>>2]=g;c[a+8>>2]=hm(f,b<<2)|0;c[a+12>>2]=hm(c[a>>2]|0,d<<2)|0;c[a+16>>2]=hm(c[a>>2]|0,e<<2)|0;c[a+24>>2]=hm(c[a>>2]|0,(c[h>>2]|0)*12|0)|0;c[a+20>>2]=hm(c[a>>2]|0,(c[h>>2]|0)*12|0)|0;return}function af(a){a=a|0;jm(c[a>>2]|0,c[a+20>>2]|0);jm(c[a>>2]|0,c[a+24>>2]|0);jm(c[a>>2]|0,c[a+16>>2]|0);jm(c[a>>2]|0,c[a+12>>2]|0);jm(c[a>>2]|0,c[a+8>>2]|0);return}function bf(d,e,f,h,i){d=d|0;e=e|0;f=f|0;h=h|0;i=i|0;var k=0,m=0,n=0,o=0,p=0,q=0,r=0.0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,D=0,G=0,H=0.0,I=0,J=0.0,K=0.0,L=0.0,M=0.0,N=0.0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0.0,V=0,W=0,X=0.0,Y=0.0;k=l;l=l+176|0;m=k+148|0;n=k;o=k+112|0;p=k+64|0;q=k+8|0;Vl(n);r=+g[f>>2];s=d+28|0;if((c[s>>2]|0)>0){t=d+8|0;u=h+4|0;v=d+20|0;w=d+24|0;x=0;do{y=c[(c[t>>2]|0)+(x<<2)>>2]|0;z=y+60|0;A=c[z>>2]|0;B=c[z+4>>2]|0;z=c[y+72>>2]|0;D=c[y+80>>2]|0;G=c[y+84>>2]|0;H=+g[y+88>>2];I=y+52|0;c[I>>2]=A;c[I+4>>2]=B;c[y+68>>2]=z;if((c[y>>2]|0)==2){J=+g[y+156>>2];K=+g[y+136>>2];L=(c[j>>2]=D,+g[j>>2])+r*(J*+g[h>>2]+K*+g[y+92>>2]);M=(c[j>>2]=G,+g[j>>2])+r*(J*+g[u>>2]+K*+g[y+96>>2]);K=1.0/(r*+g[y+148>>2]+1.0);I=(g[j>>2]=L*K,c[j>>2]|0);N=(H+r*+g[y+144>>2]*+g[y+100>>2])*(1.0/(r*+g[y+152>>2]+1.0));O=I;P=(g[j>>2]=M*K,c[j>>2]|0)}else{N=H;O=D;P=G}G=(c[v>>2]|0)+(x*12|0)|0;c[G>>2]=A;c[G+4>>2]=B;c[(c[v>>2]|0)+(x*12|0)+8>>2]=z;z=c[w>>2]|0;c[z+(x*12|0)>>2]=O;c[z+(x*12|0)+4>>2]=P;g[(c[w>>2]|0)+(x*12|0)+8>>2]=N;x=x+1|0}while((x|0)<(c[s>>2]|0));Q=w;R=v}else{Q=d+24|0;R=d+20|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];c[o+16>>2]=c[f+16>>2];c[o+20>>2]=c[f+20>>2];c[o+24>>2]=c[f+24>>2];v=c[R>>2]|0;c[o+28>>2]=v;w=c[Q>>2]|0;c[o+32>>2]=w;c[p>>2]=c[f>>2];c[p+4>>2]=c[f+4>>2];c[p+8>>2]=c[f+8>>2];c[p+12>>2]=c[f+12>>2];c[p+16>>2]=c[f+16>>2];c[p+20>>2]=c[f+20>>2];c[p+24>>2]=c[f+24>>2];x=d+12|0;c[p+28>>2]=c[x>>2];P=d+36|0;c[p+32>>2]=c[P>>2];c[p+36>>2]=v;c[p+40>>2]=w;c[p+44>>2]=c[d>>2];ki(q,p);mi(q);if(a[f+24>>0]|0)ni(q);p=d+32|0;if((c[p>>2]|0)>0){w=d+16|0;v=0;do{O=c[(c[w>>2]|0)+(v<<2)>>2]|0;Ra[c[(c[O>>2]|0)+32>>2]&63](O,o);v=v+1|0}while((v|0)<(c[p>>2]|0))}g[e+12>>2]=+Xl(n);v=f+12|0;if((c[v>>2]|0)>0){w=d+16|0;O=0;do{if((c[p>>2]|0)>0){u=0;do{h=c[(c[w>>2]|0)+(u<<2)>>2]|0;Ra[c[(c[h>>2]|0)+36>>2]&63](h,o);u=u+1|0}while((u|0)<(c[p>>2]|0))}oi(q);O=O+1|0}while((O|0)<(c[v>>2]|0))}pi(q);g[e+16>>2]=+Xl(n);if((c[s>>2]|0)>0){v=0;O=c[Q>>2]|0;do{w=c[R>>2]|0;u=w+(v*12|0)|0;h=w+(v*12|0)+4|0;t=c[O+(v*12|0)>>2]|0;z=c[O+(v*12|0)+4>>2]|0;N=+g[O+(v*12|0)+8>>2];H=(c[j>>2]=t,+g[j>>2]);K=r*H;M=(c[j>>2]=z,+g[j>>2]);L=r*M;J=K*K+L*L;if(J>4.0){L=2.0/+C(+J);B=(g[j>>2]=H*L,c[j>>2]|0);S=B;T=(g[j>>2]=M*L,c[j>>2]|0)}else{S=t;T=z}L=r*N;if(L*L>2.4674012660980225)U=N*(1.5707963705062866/(L>0.0?L:-L));else U=N;N=r*(c[j>>2]=S,+g[j>>2]);L=+g[h>>2]+r*(c[j>>2]=T,+g[j>>2]);M=+g[w+(v*12|0)+8>>2]+r*U;g[u>>2]=+g[u>>2]+N;g[h>>2]=L;g[(c[R>>2]|0)+(v*12|0)+8>>2]=M;h=c[Q>>2]|0;c[h+(v*12|0)>>2]=S;c[h+(v*12|0)+4>>2]=T;O=c[Q>>2]|0;g[O+(v*12|0)+8>>2]=U;v=v+1|0}while((v|0)<(c[s>>2]|0))}v=f+16|0;if((c[v>>2]|0)>0){f=d+16|0;O=0;T=0;do{S=qi(q)|0;if((c[p>>2]|0)>0){h=0;u=1;while(1){w=c[(c[f>>2]|0)+(h<<2)>>2]|0;z=u&(Ya[c[(c[w>>2]|0)+40>>2]&31](w,o)|0);h=h+1|0;if((h|0)>=(c[p>>2]|0)){V=z;break}else u=z}}else V=1;u=S&V;T=T|u;O=O+1|0}while((O|0)<(c[v>>2]|0)&(u^1));W=T^1}else W=1;if((c[s>>2]|0)>0){T=d+8|0;v=0;do{O=c[(c[T>>2]|0)+(v<<2)>>2]|0;V=(c[R>>2]|0)+(v*12|0)|0;p=c[V>>2]|0;o=c[V+4>>2]|0;V=O+60|0;c[V>>2]=p;c[V+4>>2]=o;V=c[(c[R>>2]|0)+(v*12|0)+8>>2]|0;c[O+72>>2]=V;f=(c[Q>>2]|0)+(v*12|0)|0;u=c[f+4>>2]|0;h=O+80|0;c[h>>2]=c[f>>2];c[h+4>>2]=u;c[O+88>>2]=c[(c[Q>>2]|0)+(v*12|0)+8>>2];U=(c[j>>2]=V,+g[j>>2]);M=+F(+U);g[O+20>>2]=M;L=+E(+U);g[O+24>>2]=L;U=+g[O+44>>2];N=+g[O+48>>2];H=(c[j>>2]=p,+g[j>>2])-(L*U-M*N);J=(c[j>>2]=o,+g[j>>2])-(M*U+L*N);g[O+12>>2]=H;g[O+16>>2]=J;v=v+1|0}while((v|0)<(c[s>>2]|0))}g[e+20>>2]=+Xl(n);n=c[q+44>>2]|0;e=d+4|0;if(c[e>>2]|0?(c[P>>2]|0)>0:0){v=m+16|0;Q=0;do{R=c[(c[x>>2]|0)+(Q<<2)>>2]|0;T=c[n+(Q*156|0)+148>>2]|0;c[v>>2]=T;if((T|0)>0){O=0;do{c[m+(O<<2)>>2]=c[n+(Q*156|0)+(O*36|0)+16>>2];c[m+8+(O<<2)>>2]=c[n+(Q*156|0)+(O*36|0)+20>>2];O=O+1|0}while((O|0)!=(T|0))}T=c[e>>2]|0;Ta[c[(c[T>>2]|0)+36>>2]&7](T,R,m);Q=Q+1|0}while((Q|0)<(c[P>>2]|0))}if(!i){li(q);l=k;return}i=c[s>>2]|0;P=(i|0)>0;if(P){Q=c[d+8>>2]|0;m=0;J=3402823466385288598117041.0e14;while(1){e=c[Q+(m<<2)>>2]|0;do if(!(c[e>>2]|0))X=J;else{if((b[e+4>>1]&4?(H=+g[e+88>>2],!(H*H>.001218469929881394)):0)?(H=+g[e+80>>2],N=+g[e+84>>2],!(H*H+N*N>9.999999747378752e-05)):0){n=e+160|0;N=r+ +g[n>>2];g[n>>2]=N;X=J>2]=0.0;X=0.0}while(0);m=m+1|0;if((m|0)>=(i|0)){Y=X;break}else J=X}}else Y=3402823466385288598117041.0e14;if(!(Y>=.5)|W|P^1){li(q);l=k;return}P=d+8|0;d=0;do{W=c[(c[P>>2]|0)+(d<<2)>>2]|0;i=W+4|0;b[i>>1]=b[i>>1]&-3;g[W+160>>2]=0.0;i=W+80|0;d=d+1|0;c[i>>2]=0;c[i+4>>2]=0;c[i+8>>2]=0;c[i+12>>2]=0;c[i+16>>2]=0;c[i+20>>2]=0}while((d|0)<(c[s>>2]|0));li(q);l=k;return}function cf(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,h=0,i=0,k=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,D=0.0,G=0.0,H=0.0,I=0.0,J=0,K=0,L=0.0;f=l;l=l+128|0;h=f+104|0;i=f+56|0;k=f;m=a+28|0;if((c[m>>2]|0)>0){n=a+8|0;o=a+20|0;p=a+24|0;q=0;do{r=c[(c[n>>2]|0)+(q<<2)>>2]|0;s=r+60|0;t=c[s+4>>2]|0;u=(c[o>>2]|0)+(q*12|0)|0;c[u>>2]=c[s>>2];c[u+4>>2]=t;c[(c[o>>2]|0)+(q*12|0)+8>>2]=c[r+72>>2];t=r+80|0;u=c[t+4>>2]|0;s=(c[p>>2]|0)+(q*12|0)|0;c[s>>2]=c[t>>2];c[s+4>>2]=u;v=c[p>>2]|0;c[v+(q*12|0)+8>>2]=c[r+88>>2];q=q+1|0}while((q|0)<(c[m>>2]|0));w=p;x=o;y=v}else{v=a+24|0;w=v;x=a+20|0;y=c[v>>2]|0}v=a+12|0;c[i+28>>2]=c[v>>2];o=a+36|0;c[i+32>>2]=c[o>>2];c[i+44>>2]=c[a>>2];c[i>>2]=c[b>>2];c[i+4>>2]=c[b+4>>2];c[i+8>>2]=c[b+8>>2];c[i+12>>2]=c[b+12>>2];c[i+16>>2]=c[b+16>>2];c[i+20>>2]=c[b+20>>2];c[i+24>>2]=c[b+24>>2];c[i+36>>2]=c[x>>2];c[i+40>>2]=y;ki(k,i);i=b+16|0;if((c[i>>2]|0)>0){y=0;do{y=y+1|0;p=(si(k,d,e)|0)^1}while((y|0)<(c[i>>2]|0)&p)}i=a+8|0;y=(c[x>>2]|0)+(d*12|0)|0;p=c[y+4>>2]|0;q=(c[(c[i>>2]|0)+(d<<2)>>2]|0)+52|0;c[q>>2]=c[y>>2];c[q+4>>2]=p;p=c[x>>2]|0;q=c[i>>2]|0;c[(c[q+(d<<2)>>2]|0)+68>>2]=c[p+(d*12|0)+8>>2];d=p+(e*12|0)|0;p=c[d+4>>2]|0;y=(c[q+(e<<2)>>2]|0)+52|0;c[y>>2]=c[d>>2];c[y+4>>2]=p;c[(c[(c[i>>2]|0)+(e<<2)>>2]|0)+68>>2]=c[(c[x>>2]|0)+(e*12|0)+8>>2];mi(k);e=b+12|0;if((c[e>>2]|0)>0){p=0;do{oi(k);p=p+1|0}while((p|0)<(c[e>>2]|0))}z=+g[b>>2];if((c[m>>2]|0)>0){b=0;do{e=c[x>>2]|0;p=e+(b*12|0)|0;y=e+(b*12|0)+4|0;d=c[w>>2]|0;q=c[d+(b*12|0)>>2]|0;n=c[d+(b*12|0)+4>>2]|0;A=+g[d+(b*12|0)+8>>2];B=(c[j>>2]=q,+g[j>>2]);D=z*B;G=(c[j>>2]=n,+g[j>>2]);H=z*G;I=D*D+H*H;if(I>4.0){H=2.0/+C(+I);d=(g[j>>2]=B*H,c[j>>2]|0);J=d;K=(g[j>>2]=G*H,c[j>>2]|0)}else{J=q;K=n}H=z*A;if(H*H>2.4674012660980225)L=A*(1.5707963705062866/(H>0.0?H:-H));else L=A;A=z*(c[j>>2]=J,+g[j>>2]);H=+g[p>>2]+A;A=+g[y>>2]+z*(c[j>>2]=K,+g[j>>2]);G=+g[e+(b*12|0)+8>>2]+z*L;g[p>>2]=H;g[y>>2]=A;g[(c[x>>2]|0)+(b*12|0)+8>>2]=G;y=c[w>>2]|0;c[y+(b*12|0)>>2]=J;c[y+(b*12|0)+4>>2]=K;g[(c[w>>2]|0)+(b*12|0)+8>>2]=L;y=c[(c[i>>2]|0)+(b<<2)>>2]|0;g[y+60>>2]=H;g[y+64>>2]=A;g[y+72>>2]=G;c[y+80>>2]=J;c[y+84>>2]=K;g[y+88>>2]=L;B=+F(+G);g[y+20>>2]=B;I=+E(+G);g[y+24>>2]=I;G=+g[y+44>>2];D=+g[y+48>>2];g[y+12>>2]=H-(I*G-B*D);g[y+16>>2]=A-(B*G+I*D);b=b+1|0}while((b|0)<(c[m>>2]|0))}m=c[k+44>>2]|0;b=a+4|0;if(!(c[b>>2]|0)){li(k);l=f;return}if((c[o>>2]|0)<=0){li(k);l=f;return}a=h+16|0;K=0;do{J=c[(c[v>>2]|0)+(K<<2)>>2]|0;i=c[m+(K*156|0)+148>>2]|0;c[a>>2]=i;if((i|0)>0){w=0;do{c[h+(w<<2)>>2]=c[m+(K*156|0)+(w*36|0)+16>>2];c[h+8+(w<<2)>>2]=c[m+(K*156|0)+(w*36|0)+20>>2];w=w+1|0}while((w|0)!=(i|0))}i=c[b>>2]|0;Ta[c[(c[i>>2]|0)+36>>2]&7](i,J,h);K=K+1|0}while((K|0)<(c[o>>2]|0));li(k);l=f;return}function df(a){a=a|0;return}function ef(a){a=a|0;fn(a);return}function ff(a,c,d){a=a|0;c=c|0;d=d|0;var e=0;a=b[c+36>>1]|0;if(!(a<<16>>16==0?1:a<<16>>16!=(b[d+36>>1]|0))){e=a<<16>>16>0;return e|0}if(!((b[d+32>>1]&b[c+34>>1])<<16>>16)){e=0;return e|0}e=(b[d+34>>1]&b[c+32>>1])<<16>>16!=0;return e|0}function gf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return 1}function hf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return 1}function jf(a,b){a=a|0;b=b|0;var d=0,e=0;d=b+76|0;b=c[d+4>>2]|0;e=a;c[e>>2]=c[d>>2];c[e+4>>2]=b;return}function kf(a,b){a=a|0;b=b|0;var d=0,e=0.0,f=0.0,h=0.0,i=0.0,j=0.0;d=c[b+52>>2]|0;e=+g[d+24>>2];f=+g[b+68>>2];h=+g[d+20>>2];i=+g[b+72>>2];j=f*h+e*i+ +g[d+16>>2];g[a>>2]=+g[d+12>>2]+(e*f-h*i);g[a+4>>2]=j;return}function lf(a,b,c){a=a|0;b=b|0;c=+c;var d=0.0;d=+g[b+100>>2]*c;g[a>>2]=+g[b+96>>2]*c;g[a+4>>2]=d;return}function mf(a,b){a=a|0;b=+b;return +(b*0.0)}function nf(a){a=a|0;a=l;l=l+16|0;am(2970,a);l=a;return}function of(a,b){a=a|0;b=b|0;var c=0;c=a+76|0;g[c>>2]=+g[c>>2]-+g[b>>2];c=a+80|0;g[c>>2]=+g[c>>2]-+g[b+4>>2];return}function pf(a){a=a|0;return}function qf(a){a=a|0;fn(a);return}function rf(b,d){b=b|0;d=d|0;var e=0,f=0,h=0,i=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0.0,r=0.0,s=0.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,G=0.0,H=0.0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0;e=c[b+52>>2]|0;f=c[e+8>>2]|0;h=b+116|0;c[h>>2]=f;i=e+44|0;k=c[i>>2]|0;l=c[i+4>>2]|0;i=b+128|0;c[i>>2]=k;c[i+4>>2]=l;i=c[e+136>>2]|0;m=b+136|0;c[m>>2]=i;n=c[e+144>>2]|0;o=b+140|0;c[o>>2]=n;p=c[d+28>>2]|0;q=+g[p+(f*12|0)>>2];r=+g[p+(f*12|0)+4>>2];s=+g[p+(f*12|0)+8>>2];p=d+32|0;t=c[p>>2]|0;u=c[t+(f*12|0)>>2]|0;v=c[t+(f*12|0)+4>>2]|0;w=+g[t+(f*12|0)+8>>2];x=+F(+s);y=+E(+s);s=+g[e+132>>2];z=+g[b+84>>2]*6.2831854820251465;A=+g[d>>2];B=A*(s*(z*z));C=A*(z*(s*2.0*+g[b+88>>2])+B);s=C!=0.0?1.0/C:C;g[b+108>>2]=s;C=B*s;g[b+92>>2]=C;B=+g[b+68>>2]-(c[j>>2]=k,+g[j>>2]);z=+g[b+72>>2]-(c[j>>2]=l,+g[j>>2]);A=y*B-x*z;D=x*B+y*z;g[b+120>>2]=A;g[b+124>>2]=D;z=(c[j>>2]=i,+g[j>>2]);y=(c[j>>2]=n,+g[j>>2]);B=s+(z+D*(D*y));x=y*A;y=D*x;G=s+(z+A*x);x=B*G-y*y;z=x!=0.0?1.0/x:x;x=y*z;g[b+144>>2]=G*z;g[b+148>>2]=x;g[b+152>>2]=x;g[b+156>>2]=B*z;z=r+D-+g[b+80>>2];g[b+160>>2]=(q+A-+g[b+76>>2])*C;g[b+164>>2]=z*C;C=w*.9800000190734863;if(!(a[d+24>>0]|0)){g[b+96>>2]=0.0;g[b+100>>2]=0.0;H=C;I=u;J=v;K=c[p>>2]|0;L=c[h>>2]|0;M=K+(L*12|0)|0;c[M>>2]=I;N=K+(L*12|0)+4|0;c[N>>2]=J;O=c[p>>2]|0;P=c[h>>2]|0;Q=O+(P*12|0)+8|0;g[Q>>2]=H;return}else{w=+g[d+8>>2];d=b+96|0;z=w*+g[d>>2];g[d>>2]=z;d=b+100|0;q=w*+g[d>>2];g[d>>2]=q;w=+g[m>>2];m=(g[j>>2]=(c[j>>2]=u,+g[j>>2])+z*w,c[j>>2]|0);H=C+ +g[o>>2]*(q*A-z*D);I=m;J=(g[j>>2]=(c[j>>2]=v,+g[j>>2])+q*w,c[j>>2]|0);K=c[p>>2]|0;L=c[h>>2]|0;M=K+(L*12|0)|0;c[M>>2]=I;N=K+(L*12|0)+4|0;c[N>>2]=J;O=c[p>>2]|0;P=c[h>>2]|0;Q=O+(P*12|0)+8|0;g[Q>>2]=H;return}}function sf(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=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.0,u=0.0,v=0.0,w=0.0,x=0.0;d=b+32|0;e=c[d>>2]|0;f=a+116|0;h=c[f>>2]|0;i=e+(h*12|0)|0;j=+g[i>>2];k=e+(h*12|0)+4|0;l=+g[k>>2];m=+g[e+(h*12|0)+8>>2];n=+g[a+124>>2];o=+g[a+120>>2];p=+g[a+108>>2];h=a+96|0;q=+g[h>>2];e=a+100|0;r=+g[e>>2];s=-(j-m*n+ +g[a+160>>2]+p*q);t=-(l+m*o+ +g[a+164>>2]+p*r);p=+g[a+148>>2]*s+ +g[a+156>>2]*t;u=q+(+g[a+144>>2]*s+ +g[a+152>>2]*t);g[h>>2]=u;t=p+r;g[e>>2]=t;p=+g[b>>2]*+g[a+104>>2];s=t*t+u*u;if(s>p*p){v=p/+C(+s);s=u*v;g[h>>2]=s;p=v*t;g[e>>2]=p;w=s;x=p}else{w=u;x=t}t=w-q;q=x-r;r=+g[a+136>>2];x=m+ +g[a+140>>2]*(q*o-t*n);g[i>>2]=j+t*r;g[k>>2]=l+q*r;g[(c[d>>2]|0)+((c[f>>2]|0)*12|0)+8>>2]=x;return}function tf(a,b){a=a|0;b=b|0;return 1}function uf(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0.0,i=0.0,k=0.0,l=0.0;ch(a,b);c[a>>2]=1020;d=b+20|0;e=c[d>>2]|0;f=c[d+4>>2]|0;d=a+76|0;c[d>>2]=e;c[d+4>>2]=f;d=c[a+52>>2]|0;h=(c[j>>2]=e,+g[j>>2])-+g[d+12>>2];i=(c[j>>2]=f,+g[j>>2])-+g[d+16>>2];k=+g[d+24>>2];l=+g[d+20>>2];g[a+68>>2]=h*k+i*l;g[a+72>>2]=k*i-h*l;c[a+104>>2]=c[b+28>>2];g[a+96>>2]=0.0;g[a+100>>2]=0.0;c[a+84>>2]=c[b+32>>2];c[a+88>>2]=c[b+36>>2];g[a+92>>2]=0.0;g[a+108>>2]=0.0;return}function vf(a,d){a=a|0;d=d|0;var e=0,f=0,h=0,i=0;e=c[a+52>>2]|0;f=e+4|0;h=b[f>>1]|0;if((h&2)==0?(i=h&65535,(i&2|0)==0):0){b[f>>1]=i|2;g[e+160>>2]=0.0}e=d;d=c[e+4>>2]|0;i=a+76|0;c[i>>2]=c[e>>2];c[i+4>>2]=d;return}function wf(a,b){a=a|0;b=b|0;var d=0,e=0;d=(c[b+48>>2]|0)+12|0;b=c[d+4>>2]|0;e=a;c[e>>2]=c[d>>2];c[e+4>>2]=b;return}function xf(a,b){a=a|0;b=b|0;var d=0,e=0;d=(c[b+52>>2]|0)+12|0;b=c[d+4>>2]|0;e=a;c[e>>2]=c[d>>2];c[e+4>>2]=b;return}function yf(a,b,c){a=a|0;b=b|0;c=+c;var d=0.0;d=+g[b+84>>2]*c;g[a>>2]=+g[b+80>>2]*c;g[a+4>>2]=d;return}function zf(a,b){a=a|0;b=+b;return +(+g[a+88>>2]*b)}function Af(a){a=a|0;var b=0,e=0,f=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0.0;b=l;l=l+96|0;e=b+80|0;f=b+72|0;i=b+64|0;j=b+56|0;k=b+48|0;m=b+32|0;n=b+24|0;o=b+16|0;p=b+8|0;q=c[(c[a+48>>2]|0)+8>>2]|0;r=c[(c[a+52>>2]|0)+8>>2]|0;am(3033,b);c[p>>2]=q;am(4137,p);c[o>>2]=r;am(4163,o);c[n>>2]=d[a+61>>0];am(4189,n);s=+g[a+72>>2];h[m>>3]=+g[a+68>>2];h[m+8>>3]=s;am(3056,m);h[k>>3]=+g[a+76>>2];am(3098,k);h[j>>3]=+g[a+92>>2];am(3272,j);h[i>>3]=+g[a+96>>2];am(3298,i);h[f>>3]=+g[a+100>>2];am(3129,f);c[e>>2]=c[a+56>>2];am(4467,e);l=b;return}function Bf(a,b){a=a|0;b=b|0;return}function Cf(a){a=a|0;fn(a);return}function Df(b,d){b=b|0;d=d|0;var e=0,f=0,h=0,i=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,x=0,y=0,z=0,A=0.0,B=0.0,C=0.0,D=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,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;e=c[b+48>>2]|0;f=c[e+8>>2]|0;h=b+104|0;c[h>>2]=f;i=c[b+52>>2]|0;k=c[i+8>>2]|0;l=b+108|0;c[l>>2]=k;m=e+44|0;n=c[m>>2]|0;o=c[m+4>>2]|0;m=b+128|0;c[m>>2]=n;c[m+4>>2]=o;m=i+44|0;p=c[m>>2]|0;q=c[m+4>>2]|0;m=b+136|0;c[m>>2]=p;c[m+4>>2]=q;m=c[e+136>>2]|0;c[b+156>>2]=m;r=c[i+136>>2]|0;c[b+160>>2]=r;s=c[e+144>>2]|0;c[b+164>>2]=s;e=c[i+144>>2]|0;c[b+168>>2]=e;i=c[d+28>>2]|0;t=+g[i+(f*12|0)>>2];u=+g[i+(f*12|0)+4>>2];v=+g[i+(f*12|0)+8>>2];w=d+32|0;x=c[w>>2]|0;y=c[x+(f*12|0)>>2]|0;z=c[x+(f*12|0)+4>>2]|0;A=+g[x+(f*12|0)+8>>2];B=+g[i+(k*12|0)>>2];C=+g[i+(k*12|0)+4>>2];D=+g[i+(k*12|0)+8>>2];i=c[x+(k*12|0)>>2]|0;f=c[x+(k*12|0)+4>>2]|0;G=+g[x+(k*12|0)+8>>2];H=+F(+v);I=+E(+v);J=+F(+D);K=+E(+D);L=-(c[j>>2]=n,+g[j>>2]);M=-(c[j>>2]=o,+g[j>>2]);N=I*L-H*M;O=H*L+I*M;o=b+112|0;g[o>>2]=N;g[b+116>>2]=O;M=-(c[j>>2]=p,+g[j>>2]);L=-(c[j>>2]=q,+g[j>>2]);P=K*M-J*L;Q=J*M+K*L;g[b+120>>2]=P;g[b+124>>2]=Q;L=(c[j>>2]=m,+g[j>>2]);K=(c[j>>2]=r,+g[j>>2]);M=(c[j>>2]=s,+g[j>>2]);J=(c[j>>2]=e,+g[j>>2]);R=L+K;S=R+O*(M*O)+Q*(J*Q);T=M*N;U=J*P;V=-(O*T)-Q*U;W=R+N*T+P*U;U=S*W-V*V;T=U!=0.0?1.0/U:U;U=-(V*T);g[b+172>>2]=W*T;g[b+176>>2]=U;g[b+180>>2]=U;g[b+184>>2]=S*T;T=M+J;g[b+188>>2]=T>0.0?1.0/T:T;T=+g[b+68>>2];S=+g[b+72>>2];g[b+144>>2]=B+P-t-N-(I*T-H*S);g[b+148>>2]=C+Q-u-O-(H*T+I*S);g[b+152>>2]=D-v-+g[b+76>>2];if(!(a[d+24>>0]|0)){g[b+80>>2]=0.0;g[b+84>>2]=0.0;g[b+88>>2]=0.0;X=A;Y=G;Z=i;_=y;$=f;aa=z;ba=c[w>>2]|0;ca=c[h>>2]|0;da=ba+(ca*12|0)|0;c[da>>2]=_;ea=ba+(ca*12|0)+4|0;c[ea>>2]=aa;fa=c[w>>2]|0;ga=c[h>>2]|0;ha=fa+(ga*12|0)+8|0;g[ha>>2]=X;ia=c[l>>2]|0;ja=fa+(ia*12|0)|0;c[ja>>2]=Z;ka=fa+(ia*12|0)+4|0;c[ka>>2]=$;la=c[w>>2]|0;ma=c[l>>2]|0;na=la+(ma*12|0)+8|0;g[na>>2]=Y;return}else{v=+g[d+8>>2];d=b+80|0;D=v*+g[d>>2];g[d>>2]=D;d=b+84|0;S=v*+g[d>>2];g[d>>2]=S;d=b+88|0;I=v*+g[d>>2];g[d>>2]=I;d=(g[j>>2]=(c[j>>2]=y,+g[j>>2])-L*D,c[j>>2]|0);y=(g[j>>2]=(c[j>>2]=z,+g[j>>2])-L*S,c[j>>2]|0);z=(g[j>>2]=(c[j>>2]=i,+g[j>>2])+K*D,c[j>>2]|0);X=A-M*(I+(S*+g[o>>2]-D*O));Y=G+J*(I+(S*P-D*Q));Z=z;_=d;$=(g[j>>2]=(c[j>>2]=f,+g[j>>2])+K*S,c[j>>2]|0);aa=y;ba=c[w>>2]|0;ca=c[h>>2]|0;da=ba+(ca*12|0)|0;c[da>>2]=_;ea=ba+(ca*12|0)+4|0;c[ea>>2]=aa;fa=c[w>>2]|0;ga=c[h>>2]|0;ha=fa+(ga*12|0)+8|0;g[ha>>2]=X;ia=c[l>>2]|0;ja=fa+(ia*12|0)|0;c[ja>>2]=Z;ka=fa+(ia*12|0)+4|0;c[ka>>2]=$;la=c[w>>2]|0;ma=c[l>>2]|0;na=la+(ma*12|0)+8|0;g[na>>2]=Y;return}}function Ef(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,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,D=0.0,E=0.0,F=0.0,G=0.0,H=0.0,I=0.0,J=0.0;d=b+32|0;e=c[d>>2]|0;f=a+104|0;h=c[f>>2]|0;i=+g[e+(h*12|0)>>2];j=+g[e+(h*12|0)+4>>2];k=+g[e+(h*12|0)+8>>2];h=a+108|0;l=c[h>>2]|0;m=+g[e+(l*12|0)>>2];n=+g[e+(l*12|0)+4>>2];o=+g[e+(l*12|0)+8>>2];p=+g[a+156>>2];q=+g[a+160>>2];r=+g[a+164>>2];s=+g[a+168>>2];t=+g[b>>2];u=+g[b+4>>2]*+g[a+100>>2];b=a+88|0;v=+g[b>>2];w=t*+g[a+96>>2];x=v-+g[a+188>>2]*(o-k+u*+g[a+152>>2]);y=-w;z=x>2]=w;z=w-v;v=k-r*z;k=o+s*z;z=+g[a+124>>2];o=+g[a+120>>2];w=+g[a+116>>2];y=+g[a+112>>2];x=+g[a+144>>2]*u+(w*v+(m-z*k-i));A=u*+g[a+148>>2]+(n+o*k-j-y*v);u=+g[a+176>>2]*x+ +g[a+184>>2]*A;b=a+80|0;B=+g[b>>2];l=a+84|0;D=+g[l>>2];E=B-(+g[a+172>>2]*x+ +g[a+180>>2]*A);g[b>>2]=E;A=D-u;g[l>>2]=A;u=t*+g[a+92>>2];t=A*A+E*E;if(t>u*u){x=+C(+t);t=1.0/x;if(x<1.1920928955078125e-07){F=E;G=A}else{x=A*t;H=E*t;g[b>>2]=H;g[l>>2]=x;F=H;G=x}x=u*F;g[b>>2]=x;F=u*G;g[l>>2]=F;I=x;J=F}else{I=E;J=A}A=I-B;B=J-D;l=c[d>>2]|0;b=c[f>>2]|0;g[l+(b*12|0)>>2]=i-p*A;g[l+(b*12|0)+4>>2]=j-p*B;b=c[d>>2]|0;g[b+((c[f>>2]|0)*12|0)+8>>2]=v-r*(y*B-A*w);f=c[h>>2]|0;g[b+(f*12|0)>>2]=m+q*A;g[b+(f*12|0)+4>>2]=n+q*B;g[(c[d>>2]|0)+((c[h>>2]|0)*12|0)+8>>2]=k+s*(B*o-A*z);return}function Ff(a,b){a=a|0;b=b|0;return 1}function Gf(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;c[a+8>>2]=b;c[a+12>>2]=d;e=+g[d+12>>2]-+g[b+12>>2];f=+g[d+16>>2]-+g[b+16>>2];h=+g[b+24>>2];i=+g[b+20>>2];g[a+20>>2]=e*h+f*i;g[a+24>>2]=h*f-e*i;g[a+28>>2]=+g[d+72>>2]-+g[b+72>>2];return}function Hf(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;ch(a,b);c[a>>2]=1072;d=b+20|0;e=c[d+4>>2]|0;f=a+68|0;c[f>>2]=c[d>>2];c[f+4>>2]=e;c[a+76>>2]=c[b+28>>2];g[a+80>>2]=0.0;g[a+84>>2]=0.0;g[a+88>>2]=0.0;c[a+92>>2]=c[b+32>>2];c[a+96>>2]=c[b+36>>2];c[a+100>>2]=c[b+40>>2];return}function If(a,d){a=a|0;d=d|0;var f=0,h=0,i=0,j=0;f=a+68|0;if(!(+g[d>>2]!=+g[f>>2])?!(+g[d+4>>2]!=+g[a+72>>2]):0)return;h=c[a+48>>2]|0;i=h+4|0;j=e[i>>1]|0;if(!(j&2)){b[i>>1]=j|2;g[h+160>>2]=0.0}h=c[a+52>>2]|0;a=h+4|0;j=e[a>>1]|0;if(!(j&2)){b[a>>1]=j|2;g[h+160>>2]=0.0}h=d;d=c[h+4>>2]|0;j=f;c[j>>2]=c[h>>2];c[j+4>>2]=d;return}function Jf(a,d){a=a|0;d=+d;var f=0,h=0,i=0,j=0;f=a+76|0;if(!(+g[f>>2]!=d))return;h=c[a+48>>2]|0;i=h+4|0;j=e[i>>1]|0;if(!(j&2)){b[i>>1]=j|2;g[h+160>>2]=0.0}h=c[a+52>>2]|0;a=h+4|0;j=e[a>>1]|0;if(!(j&2)){b[a>>1]=j|2;g[h+160>>2]=0.0}g[f>>2]=d;return}function Kf(a,b){a=a|0;b=b|0;var d=0,e=0.0,f=0.0,h=0.0,i=0.0,j=0.0;d=c[b+48>>2]|0;e=+g[d+24>>2];f=+g[b+80>>2];h=+g[d+20>>2];i=+g[b+84>>2];j=f*h+e*i+ +g[d+16>>2];g[a>>2]=+g[d+12>>2]+(e*f-h*i);g[a+4>>2]=j;return}function Lf(a,b){a=a|0;b=b|0;var d=0,e=0.0,f=0.0,h=0.0,i=0.0,j=0.0;d=c[b+52>>2]|0;e=+g[d+24>>2];f=+g[b+88>>2];h=+g[d+20>>2];i=+g[b+92>>2];j=f*h+e*i+ +g[d+16>>2];g[a>>2]=+g[d+12>>2]+(e*f-h*i);g[a+4>>2]=j;return}function Mf(a,b,c){a=a|0;b=b|0;c=+c;var d=0.0;d=+g[b+100>>2]*c;c=d*+g[b+120>>2];g[a>>2]=+g[b+116>>2]*d;g[a+4>>2]=c;return}function Nf(a,b){a=a|0;b=+b;return 0.0}function Of(a){a=a|0;var b=0,e=0,f=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0.0;b=l;l=l+96|0;e=b+88|0;f=b+80|0;i=b+72|0;j=b+64|0;k=b+48|0;m=b+32|0;n=b+24|0;o=b+16|0;p=b+8|0;q=c[(c[a+48>>2]|0)+8>>2]|0;r=c[(c[a+52>>2]|0)+8>>2]|0;am(3178,b);c[p>>2]=q;am(4137,p);c[o>>2]=r;am(4163,o);c[n>>2]=d[a+61>>0];am(4189,n);s=+g[a+84>>2];h[m>>3]=+g[a+80>>2];h[m+8>>3]=s;am(4310,m);s=+g[a+92>>2];h[k>>3]=+g[a+88>>2];h[k+8>>3]=s;am(4352,k);h[j>>3]=+g[a+104>>2];am(3204,j);h[i>>3]=+g[a+68>>2];am(4039,i);h[f>>3]=+g[a+72>>2];am(4068,f);c[e>>2]=c[a+56>>2];am(4467,e);l=b;return}function Pf(a){a=a|0;fn(a);return}function Qf(b,d){b=b|0;d=d|0;var e=0,f=0,h=0,i=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,x=0,y=0,z=0,A=0.0,B=0.0,D=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,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;e=c[b+48>>2]|0;f=c[e+8>>2]|0;h=b+108|0;c[h>>2]=f;i=c[b+52>>2]|0;k=c[i+8>>2]|0;l=b+112|0;c[l>>2]=k;m=e+44|0;n=c[m>>2]|0;o=c[m+4>>2]|0;m=b+140|0;c[m>>2]=n;c[m+4>>2]=o;m=i+44|0;p=c[m>>2]|0;q=c[m+4>>2]|0;m=b+148|0;c[m>>2]=p;c[m+4>>2]=q;m=b+156|0;c[m>>2]=c[e+136>>2];r=b+160|0;c[r>>2]=c[i+136>>2];s=b+164|0;c[s>>2]=c[e+144>>2];e=b+168|0;c[e>>2]=c[i+144>>2];i=c[d+28>>2]|0;t=+g[i+(f*12|0)>>2];u=+g[i+(f*12|0)+4>>2];v=+g[i+(f*12|0)+8>>2];w=d+32|0;x=c[w>>2]|0;y=c[x+(f*12|0)>>2]|0;z=c[x+(f*12|0)+4>>2]|0;A=+g[x+(f*12|0)+8>>2];B=+g[i+(k*12|0)>>2];D=+g[i+(k*12|0)+4>>2];G=+g[i+(k*12|0)+8>>2];i=c[x+(k*12|0)>>2]|0;f=c[x+(k*12|0)+4>>2]|0;H=+g[x+(k*12|0)+8>>2];I=+F(+v);J=+E(+v);v=+F(+G);K=+E(+G);G=+g[b+80>>2]-(c[j>>2]=n,+g[j>>2]);L=+g[b+84>>2]-(c[j>>2]=o,+g[j>>2]);M=J*G-I*L;N=I*G+J*L;g[b+124>>2]=M;g[b+128>>2]=N;L=+g[b+88>>2]-(c[j>>2]=p,+g[j>>2]);J=+g[b+92>>2]-(c[j>>2]=q,+g[j>>2]);G=K*L-v*J;I=v*L+K*J;g[b+132>>2]=G;g[b+136>>2]=I;J=B+G-t-M;t=D+I-u-N;q=b+116|0;g[q>>2]=J;p=b+120|0;g[p>>2]=t;u=+C(+(J*J+t*t));if(u>.004999999888241291){D=1.0/u;B=J*D;g[q>>2]=B;O=D*t;P=B}else{g[q>>2]=0.0;O=0.0;P=0.0}g[p>>2]=O;B=O*M-N*P;t=O*G-P*I;D=+g[m>>2];J=+g[s>>2];K=+g[r>>2];L=+g[e>>2];v=K+(D+B*(B*J))+t*(t*L);t=v!=0.0?1.0/v:0.0;e=b+172|0;g[e>>2]=t;B=+g[b+68>>2];if(B>0.0){Q=B*6.2831854820251465;B=Q*(Q*t);R=+g[d>>2];S=R*(Q*(t*2.0*+g[b+72>>2])+B*R);t=S!=0.0?1.0/S:0.0;S=B*((u-+g[b+104>>2])*R)*t;R=v+t;g[e>>2]=R!=0.0?1.0/R:0.0;T=S;U=t}else{T=0.0;U=0.0}g[b+96>>2]=U;g[b+76>>2]=T;if(!(a[d+24>>0]|0)){g[b+100>>2]=0.0;V=A;W=H;X=i;Y=y;Z=f;_=z;$=c[w>>2]|0;aa=c[h>>2]|0;ba=$+(aa*12|0)|0;c[ba>>2]=Y;ca=$+(aa*12|0)+4|0;c[ca>>2]=_;da=c[w>>2]|0;ea=c[h>>2]|0;fa=da+(ea*12|0)+8|0;g[fa>>2]=V;ga=c[l>>2]|0;ha=da+(ga*12|0)|0;c[ha>>2]=X;ia=da+(ga*12|0)+4|0;c[ia>>2]=Z;ja=c[w>>2]|0;ka=c[l>>2]|0;la=ja+(ka*12|0)+8|0;g[la>>2]=W;return}else{e=b+100|0;T=+g[d+8>>2]*+g[e>>2];g[e>>2]=T;U=T*P;P=T*O;e=(g[j>>2]=(c[j>>2]=y,+g[j>>2])-U*D,c[j>>2]|0);y=(g[j>>2]=(c[j>>2]=z,+g[j>>2])-P*D,c[j>>2]|0);z=(g[j>>2]=(c[j>>2]=i,+g[j>>2])+U*K,c[j>>2]|0);V=A-J*(P*M-U*N);W=H+L*(P*G-U*I);X=z;Y=e;Z=(g[j>>2]=(c[j>>2]=f,+g[j>>2])+P*K,c[j>>2]|0);_=y;$=c[w>>2]|0;aa=c[h>>2]|0;ba=$+(aa*12|0)|0;c[ba>>2]=Y;ca=$+(aa*12|0)+4|0;c[ca>>2]=_;da=c[w>>2]|0;ea=c[h>>2]|0;fa=da+(ea*12|0)+8|0;g[fa>>2]=V;ga=c[l>>2]|0;ha=da+(ga*12|0)|0;c[ha>>2]=X;ia=da+(ga*12|0)+4|0;c[ia>>2]=Z;ja=c[w>>2]|0;ka=c[l>>2]|0;la=ja+(ka*12|0)+8|0;g[la>>2]=W;return}}function Rf(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.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;d=b+32|0;b=c[d>>2]|0;e=a+108|0;f=c[e>>2]|0;h=b+(f*12|0)|0;i=+g[h>>2];j=b+(f*12|0)+4|0;k=+g[j>>2];l=+g[b+(f*12|0)+8>>2];f=a+112|0;m=c[f>>2]|0;n=+g[b+(m*12|0)>>2];o=+g[b+(m*12|0)+4>>2];p=+g[b+(m*12|0)+8>>2];q=+g[a+128>>2];r=+g[a+124>>2];s=+g[a+136>>2];t=+g[a+132>>2];u=+g[a+116>>2];v=+g[a+120>>2];m=a+100|0;w=+g[m>>2];x=+g[a+172>>2]*(+g[a+76>>2]+(u*(n-p*s-(i-l*q))+v*(o+p*t-(k+l*r)))+ +g[a+96>>2]*w);y=-x;g[m>>2]=w-x;x=u*y;u=v*y;y=+g[a+156>>2];v=l-+g[a+164>>2]*(u*r-x*q);q=+g[a+160>>2];r=p+ +g[a+168>>2]*(u*t-x*s);g[h>>2]=i-x*y;g[j>>2]=k-u*y;j=c[d>>2]|0;g[j+((c[e>>2]|0)*12|0)+8>>2]=v;e=c[f>>2]|0;g[j+(e*12|0)>>2]=n+x*q;g[j+(e*12|0)+4>>2]=o+u*q;g[(c[d>>2]|0)+((c[f>>2]|0)*12|0)+8>>2]=r;return}function Sf(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,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;if(+g[a+68>>2]>0.0){d=1;return d|0}e=b+28|0;b=c[e>>2]|0;f=a+108|0;h=c[f>>2]|0;i=+g[b+(h*12|0)>>2];j=+g[b+(h*12|0)+4>>2];k=+g[b+(h*12|0)+8>>2];h=a+112|0;l=c[h>>2]|0;m=+g[b+(l*12|0)>>2];n=+g[b+(l*12|0)+4>>2];o=+g[b+(l*12|0)+8>>2];p=+F(+k);q=+E(+k);r=+F(+o);s=+E(+o);t=+g[a+80>>2]-+g[a+140>>2];u=+g[a+84>>2]-+g[a+144>>2];v=q*t-p*u;w=p*t+q*u;u=+g[a+88>>2]-+g[a+148>>2];q=+g[a+92>>2]-+g[a+152>>2];t=s*u-r*q;p=r*u+s*q;q=m+t-i-v;s=n+p-j-w;u=+C(+(q*q+s*s));l=u<1.1920928955078125e-07;r=1.0/u;x=(l?0.0:u)-+g[a+104>>2];u=x<.20000000298023224?x:.20000000298023224;x=u<-.20000000298023224?-.20000000298023224:u;u=-(+g[a+172>>2]*x);y=(l?q:r*q)*u;q=(l?s:r*s)*u;u=+g[a+156>>2];s=k-+g[a+164>>2]*(v*q-w*y);w=+g[a+160>>2];v=o+ +g[a+168>>2]*(t*q-p*y);a=c[e>>2]|0;l=c[f>>2]|0;g[a+(l*12|0)>>2]=i-u*y;g[a+(l*12|0)+4>>2]=j-u*q;l=c[e>>2]|0;g[l+((c[f>>2]|0)*12|0)+8>>2]=s;f=c[h>>2]|0;g[l+(f*12|0)>>2]=m+w*y;g[l+(f*12|0)+4>>2]=n+w*q;g[(c[e>>2]|0)+((c[h>>2]|0)*12|0)+8>>2]=v;d=(x>0.0?x:-x)<.004999999888241291;return d|0}function Tf(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var h=0.0,i=0,j=0.0,k=0.0,l=0.0;c[a+8>>2]=b;c[a+12>>2]=d;h=+g[e>>2]-+g[b+12>>2];i=e+4|0;j=+g[i>>2]-+g[b+16>>2];k=+g[b+24>>2];l=+g[b+20>>2];g[a+20>>2]=h*k+j*l;g[a+24>>2]=k*j-h*l;l=+g[f>>2]-+g[d+12>>2];b=f+4|0;h=+g[b>>2]-+g[d+16>>2];j=+g[d+24>>2];k=+g[d+20>>2];g[a+28>>2]=l*j+h*k;g[a+32>>2]=j*h-l*k;k=+g[f>>2]-+g[e>>2];l=+g[b>>2]-+g[i>>2];g[a+36>>2]=+C(+(k*k+l*l));return}function Uf(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;ch(a,b);c[a>>2]=1124;d=b+20|0;e=c[d+4>>2]|0;f=a+80|0;c[f>>2]=c[d>>2];c[f+4>>2]=e;e=b+28|0;f=c[e+4>>2]|0;d=a+88|0;c[d>>2]=c[e>>2];c[d+4>>2]=f;c[a+104>>2]=c[b+36>>2];c[a+68>>2]=c[b+40>>2];c[a+72>>2]=c[b+44>>2];g[a+100>>2]=0.0;g[a+96>>2]=0.0;g[a+76>>2]=0.0;return}function Vf(a,b){a=a|0;b=b|0;var d=0,e=0.0,f=0.0,h=0.0,i=0.0,j=0.0;d=c[b+48>>2]|0;e=+g[d+24>>2];f=+g[b+68>>2];h=+g[d+20>>2];i=+g[b+72>>2];j=f*h+e*i+ +g[d+16>>2];g[a>>2]=+g[d+12>>2]+(e*f-h*i);g[a+4>>2]=j;return}function Wf(a,b){a=a|0;b=b|0;var d=0,e=0.0,f=0.0,h=0.0,i=0.0,j=0.0;d=c[b+52>>2]|0;e=+g[d+24>>2];f=+g[b+76>>2];h=+g[d+20>>2];i=+g[b+80>>2];j=f*h+e*i+ +g[d+16>>2];g[a>>2]=+g[d+12>>2]+(e*f-h*i);g[a+4>>2]=j;return}function Xf(a,b,c){a=a|0;b=b|0;c=+c;var d=0.0;d=+g[b+88>>2]*c;g[a>>2]=+g[b+84>>2]*c;g[a+4>>2]=d;return}function Yf(a,b){a=a|0;b=+b;return +(+g[a+92>>2]*b)}function Zf(a){a=a|0;var b=0,e=0,f=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0.0;b=l;l=l+96|0;e=b+80|0;f=b+72|0;i=b+64|0;j=b+48|0;k=b+32|0;m=b+24|0;n=b+16|0;o=b+8|0;p=c[(c[a+48>>2]|0)+8>>2]|0;q=c[(c[a+52>>2]|0)+8>>2]|0;am(3246,b);c[o>>2]=p;am(4137,o);c[n>>2]=q;am(4163,n);c[m>>2]=d[a+61>>0];am(4189,m);r=+g[a+72>>2];h[k>>3]=+g[a+68>>2];h[k+8>>3]=r;am(4310,k);r=+g[a+80>>2];h[j>>3]=+g[a+76>>2];h[j+8>>3]=r;am(4352,j);h[i>>3]=+g[a+96>>2];am(3272,i);h[f>>3]=+g[a+100>>2];am(3298,f);c[e>>2]=c[a+56>>2];am(4467,e);l=b;return}function _f(a){a=a|0;fn(a);return}function $f(b,d){b=b|0;d=d|0;var e=0,f=0,h=0,i=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0.0,u=0,v=0,w=0,x=0,y=0.0,z=0.0,A=0.0,B=0.0,C=0.0,D=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,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;e=c[b+48>>2]|0;f=c[e+8>>2]|0;h=b+104|0;c[h>>2]=f;i=c[b+52>>2]|0;k=c[i+8>>2]|0;l=b+108|0;c[l>>2]=k;m=e+44|0;n=c[m>>2]|0;o=c[m+4>>2]|0;m=b+128|0;c[m>>2]=n;c[m+4>>2]=o;m=i+44|0;p=c[m>>2]|0;q=c[m+4>>2]|0;m=b+136|0;c[m>>2]=p;c[m+4>>2]=q;m=c[e+136>>2]|0;c[b+144>>2]=m;r=c[i+136>>2]|0;c[b+148>>2]=r;s=c[e+144>>2]|0;c[b+152>>2]=s;e=c[i+144>>2]|0;c[b+156>>2]=e;i=c[d+28>>2]|0;t=+g[i+(f*12|0)+8>>2];u=d+32|0;v=c[u>>2]|0;w=c[v+(f*12|0)>>2]|0;x=c[v+(f*12|0)+4>>2]|0;y=+g[v+(f*12|0)+8>>2];z=+g[i+(k*12|0)+8>>2];i=c[v+(k*12|0)>>2]|0;f=c[v+(k*12|0)+4>>2]|0;A=+g[v+(k*12|0)+8>>2];B=+F(+t);C=+E(+t);t=+F(+z);D=+E(+z);z=+g[b+68>>2]-(c[j>>2]=n,+g[j>>2]);G=+g[b+72>>2]-(c[j>>2]=o,+g[j>>2]);H=C*z-B*G;I=B*z+C*G;g[b+112>>2]=H;g[b+116>>2]=I;G=+g[b+76>>2]-(c[j>>2]=p,+g[j>>2]);C=+g[b+80>>2]-(c[j>>2]=q,+g[j>>2]);z=D*G-t*C;B=t*G+D*C;g[b+120>>2]=z;g[b+124>>2]=B;C=(c[j>>2]=m,+g[j>>2]);D=(c[j>>2]=r,+g[j>>2]);G=(c[j>>2]=s,+g[j>>2]);t=(c[j>>2]=e,+g[j>>2]);J=C+D;K=J+I*(G*I)+B*(t*B);L=G*H;M=t*z;N=-(I*L)-B*M;O=J+H*L+z*M;M=K*O-N*N;L=M!=0.0?1.0/M:M;M=-(N*L);g[b+160>>2]=O*L;g[b+164>>2]=M;g[b+168>>2]=M;g[b+172>>2]=K*L;L=G+t;g[b+176>>2]=L>0.0?1.0/L:L;if(!(a[d+24>>0]|0)){g[b+84>>2]=0.0;g[b+88>>2]=0.0;g[b+92>>2]=0.0;P=y;Q=A;R=i;S=w;T=f;U=x;V=c[u>>2]|0;W=c[h>>2]|0;X=V+(W*12|0)|0;c[X>>2]=S;Y=V+(W*12|0)+4|0;c[Y>>2]=U;Z=c[u>>2]|0;_=c[h>>2]|0;$=Z+(_*12|0)+8|0;g[$>>2]=P;aa=c[l>>2]|0;ba=Z+(aa*12|0)|0;c[ba>>2]=R;ca=Z+(aa*12|0)+4|0;c[ca>>2]=T;da=c[u>>2]|0;ea=c[l>>2]|0;fa=da+(ea*12|0)+8|0;g[fa>>2]=Q;return}else{L=+g[d+8>>2];d=b+84|0;K=L*+g[d>>2];g[d>>2]=K;d=b+88|0;M=L*+g[d>>2];g[d>>2]=M;d=b+92|0;O=L*+g[d>>2];g[d>>2]=O;d=(g[j>>2]=(c[j>>2]=w,+g[j>>2])-C*K,c[j>>2]|0);w=(g[j>>2]=(c[j>>2]=x,+g[j>>2])-C*M,c[j>>2]|0);x=(g[j>>2]=(c[j>>2]=i,+g[j>>2])+D*K,c[j>>2]|0);P=y-G*(O+(M*H-K*I));Q=A+t*(O+(M*z-K*B));R=x;S=d;T=(g[j>>2]=(c[j>>2]=f,+g[j>>2])+D*M,c[j>>2]|0);U=w;V=c[u>>2]|0;W=c[h>>2]|0;X=V+(W*12|0)|0;c[X>>2]=S;Y=V+(W*12|0)+4|0;c[Y>>2]=U;Z=c[u>>2]|0;_=c[h>>2]|0;$=Z+(_*12|0)+8|0;g[$>>2]=P;aa=c[l>>2]|0;ba=Z+(aa*12|0)|0;c[ba>>2]=R;ca=Z+(aa*12|0)+4|0;c[ca>>2]=T;da=c[u>>2]|0;ea=c[l>>2]|0;fa=da+(ea*12|0)+8|0;g[fa>>2]=Q;return}} -function mj(a,b,d){a=a|0;b=b|0;d=+d;var e=0,f=0,h=0.0,i=0.0,k=0,l=0,m=0.0,n=0.0,o=0.0,p=0.0,q=0;e=c[a+104>>2]|0;if(c[e+102876>>2]&2|0)return;f=a+12|0;h=+F(+d);g[a+20>>2]=h;i=+E(+d);g[a+24>>2]=i;k=b;b=c[k>>2]|0;l=c[k+4>>2]|0;k=f;c[k>>2]=b;c[k+4>>2]=l;k=a+28|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];m=+g[a+44>>2];n=+g[a+48>>2];o=(c[j>>2]=b,+g[j>>2])+(i*m-h*n);p=m*h+i*n+(c[j>>2]=l,+g[j>>2]);l=a+60|0;g[l>>2]=o;g[a+64>>2]=p;g[a+72>>2]=d;b=l;l=c[b+4>>2]|0;k=a+52|0;c[k>>2]=c[b>>2];c[k+4>>2]=l;g[a+68>>2]=d;l=e+102880|0;e=c[a+116>>2]|0;if(!e)return;else q=e;do{Oi(q,l,f,f);q=c[q+4>>2]|0}while((q|0)!=0);return}function nj(a,c){a=a|0;c=c|0;var d=0,f=0;d=a+4|0;f=e[d>>1]|0;if(!((f&16|0)!=0^c))return;b[d>>1]=c?f|16:f&65519;g[a+88>>2]=0.0;gj(a);return}function oj(a){a=a|0;fn(a);return}function pj(a,b){a=a|0;b=b|0;return}function qj(a,b){a=a|0;b=b|0;return}function rj(a,b,c){a=a|0;b=b|0;c=c|0;return}function sj(a,b,c){a=a|0;b=b|0;c=c|0;return}function tj(a){a=a|0;Ae(a);c[a+60>>2]=0;c[a+64>>2]=0;c[a+68>>2]=1796;c[a+72>>2]=1800;c[a+76>>2]=0;return}function uj(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;d=c[(c[b+48>>2]|0)+8>>2]|0;e=c[(c[b+52>>2]|0)+8>>2]|0;f=c[a+72>>2]|0;if(f|0?c[b+4>>2]&2|0:0)Ra[c[(c[f>>2]|0)+12>>2]&63](f,b);f=c[b+8>>2]|0;g=b+12|0;if(f|0)c[f+12>>2]=c[g>>2];h=c[g>>2]|0;if(h|0)c[h+8>>2]=f;f=a+60|0;if((c[f>>2]|0)==(b|0))c[f>>2]=h;h=c[b+24>>2]|0;f=b+28|0;if(h|0)c[h+12>>2]=c[f>>2];g=c[f>>2]|0;if(g|0)c[g+8>>2]=h;h=d+128|0;if((b+16|0)==(c[h>>2]|0))c[h>>2]=g;g=c[b+40>>2]|0;h=b+44|0;if(g|0)c[g+12>>2]=c[h>>2];d=c[h>>2]|0;if(d|0)c[d+8>>2]=g;g=e+128|0;if((b+32|0)!=(c[g>>2]|0)){i=a+76|0;j=c[i>>2]|0;_h(b,j);k=a+64|0;l=c[k>>2]|0;m=l+-1|0;c[k>>2]=m;return}c[g>>2]=d;i=a+76|0;j=c[i>>2]|0;_h(b,j);k=a+64|0;l=c[k>>2]|0;m=l+-1|0;c[k>>2]=m;return}function vj(a){a=a|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,s=0,t=0,u=0;d=c[a+60>>2]|0;if(!d)return;e=a+4|0;f=a+72|0;h=a+68|0;i=d;while(1){d=c[i+48>>2]|0;j=c[i+52>>2]|0;k=c[i+56>>2]|0;l=c[i+60>>2]|0;m=c[d+8>>2]|0;n=c[j+8>>2]|0;o=i+4|0;do if(!(c[o>>2]&8))p=10;else{if(!(lj(n,m)|0)){q=c[i+12>>2]|0;uj(a,i);r=q;break}q=c[h>>2]|0;if(q|0?!(Sa[c[(c[q>>2]|0)+8>>2]&15](q,d,j)|0):0){q=c[i+12>>2]|0;uj(a,i);r=q;break}c[o>>2]=c[o>>2]&-9;p=10}while(0);do if((p|0)==10){p=0;if(!(b[m+4>>1]&2))s=0;else s=(c[m>>2]|0)!=0;if(!(b[n+4>>1]&2))t=0;else t=(c[n>>2]|0)!=0;if(!(s|t)){r=c[i+12>>2]|0;break}o=c[(c[d+24>>2]|0)+(k*28|0)+24>>2]|0;q=c[(c[j+24>>2]|0)+(l*28|0)+24>>2]|0;u=c[e>>2]|0;if((+g[u+(q*36|0)>>2]-+g[u+(o*36|0)+8>>2]>0.0?1:+g[u+(q*36|0)+4>>2]-+g[u+(o*36|0)+12>>2]>0.0)|+g[u+(o*36|0)>>2]-+g[u+(q*36|0)+8>>2]>0.0|+g[u+(o*36|0)+4>>2]-+g[u+(q*36|0)+12>>2]>0.0){q=c[i+12>>2]|0;uj(a,i);r=q;break}else{bi(i,c[f>>2]|0);r=c[i+12>>2]|0;break}}while(0);if(!r)break;else i=r}return}function wj(a){a=a|0;xj(a,a);return}function xj(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,m=0,n=0,o=0,p=0,q=0;d=l;l=l+16|0;e=d;f=a+52|0;c[f>>2]=0;g=a+40|0;h=c[g>>2]|0;if((h|0)>0){i=a+32|0;j=a+56|0;k=a+4|0;m=0;n=h;while(1){h=c[(c[i>>2]|0)+(m<<2)>>2]|0;c[j>>2]=h;if((h|0)==-1)o=n;else{Aj(a,a,(c[k>>2]|0)+(h*36|0)|0);o=c[g>>2]|0}m=m+1|0;if((m|0)>=(o|0))break;else n=o}p=c[f>>2]|0}else p=0;c[g>>2]=0;g=a+44|0;o=c[g>>2]|0;c[e>>2]=26;zj(o,o+(p<<3)|0,e);if((c[f>>2]|0)<=0){l=d;return}e=a+4|0;a=0;while(1){p=c[g>>2]|0;o=p+(a<<3)|0;n=c[e>>2]|0;m=p+(a<<3)+4|0;Bj(b,c[n+((c[o>>2]|0)*36|0)+16>>2]|0,c[n+((c[m>>2]|0)*36|0)+16>>2]|0);n=c[f>>2]|0;p=a+1|0;while(1){if((p|0)>=(n|0)){q=p;break}k=c[g>>2]|0;if((c[k+(p<<3)>>2]|0)!=(c[o>>2]|0)){q=p;break}j=(c[k+(p<<3)+4>>2]|0)==(c[m>>2]|0);k=(j&1)+p|0;if(j)p=k;else{q=k;break}}if((q|0)<(n|0))a=q;else break}l=d;return}function yj(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=c[a>>2]|0;e=c[b>>2]|0;if((d|0)<(e|0)){f=1;return f|0}if((d|0)!=(e|0)){f=0;return f|0}f=(c[a+4>>2]|0)<(c[b+4>>2]|0);return f|0}function zj(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,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;e=a;a=b;a:while(1){b=a;f=a+-8|0;g=e;while(1){h=g;b:while(1){i=h;j=b-i|0;k=j>>3;switch(k|0){case 2:{l=5;break a;break}case 3:{l=7;break a;break}case 4:{l=15;break a;break}case 5:{l=16;break a;break}case 1:case 0:{l=68;break a;break}default:{}}if((j|0)<248){l=22;break a}m=h+(((k|0)/2|0)<<3)|0;do if((j|0)>7992){n=(k|0)/4|0;o=h+(n<<3)|0;p=m+(n<<3)|0;n=Cj(h,o,m,p,d)|0;if(Ya[c[d>>2]&31](f,p)|0){q=p;r=c[q>>2]|0;s=c[q+4>>2]|0;q=f;t=c[q+4>>2]|0;u=p;c[u>>2]=c[q>>2];c[u+4>>2]=t;t=f;c[t>>2]=r;c[t+4>>2]=s;s=n+1|0;if(Ya[c[d>>2]&31](p,m)|0){t=m;r=c[t>>2]|0;u=c[t+4>>2]|0;t=p;q=c[t+4>>2]|0;v=m;c[v>>2]=c[t>>2];c[v+4>>2]=q;q=p;c[q>>2]=r;c[q+4>>2]=u;u=n+2|0;if(Ya[c[d>>2]&31](m,o)|0){q=o;r=c[q>>2]|0;p=c[q+4>>2]|0;q=m;v=c[q+4>>2]|0;t=o;c[t>>2]=c[q>>2];c[t+4>>2]=v;v=m;c[v>>2]=r;c[v+4>>2]=p;if(Ya[c[d>>2]&31](o,h)|0){p=h;v=c[p>>2]|0;r=c[p+4>>2]|0;p=o;t=c[p+4>>2]|0;q=h;c[q>>2]=c[p>>2];c[q+4>>2]=t;t=o;c[t>>2]=v;c[t+4>>2]=r;w=n+4|0}else w=n+3|0}else w=u}else w=s}else w=n}else{n=Ya[c[d>>2]&31](m,h)|0;s=Ya[c[d>>2]&31](f,m)|0;if(!n){if(!s){w=0;break}n=m;u=c[n>>2]|0;r=c[n+4>>2]|0;n=f;t=c[n+4>>2]|0;v=m;c[v>>2]=c[n>>2];c[v+4>>2]=t;t=f;c[t>>2]=u;c[t+4>>2]=r;if(!(Ya[c[d>>2]&31](m,h)|0)){w=1;break}r=h;t=c[r>>2]|0;u=c[r+4>>2]|0;r=m;v=c[r+4>>2]|0;n=h;c[n>>2]=c[r>>2];c[n+4>>2]=v;v=m;c[v>>2]=t;c[v+4>>2]=u;w=2;break}u=h;v=c[u>>2]|0;t=c[u+4>>2]|0;if(s){s=f;u=c[s+4>>2]|0;n=h;c[n>>2]=c[s>>2];c[n+4>>2]=u;u=f;c[u>>2]=v;c[u+4>>2]=t;w=1;break}u=m;n=c[u+4>>2]|0;s=h;c[s>>2]=c[u>>2];c[s+4>>2]=n;n=m;c[n>>2]=v;c[n+4>>2]=t;if(Ya[c[d>>2]&31](f,m)|0){t=m;n=c[t>>2]|0;v=c[t+4>>2]|0;t=f;s=c[t+4>>2]|0;u=m;c[u>>2]=c[t>>2];c[u+4>>2]=s;s=f;c[s>>2]=n;c[s+4>>2]=v;w=2}else w=1}while(0);if(Ya[c[d>>2]&31](h,m)|0){x=f;y=w;break}else z=f;while(1){z=z+-8|0;if((h|0)==(z|0))break;if(Ya[c[d>>2]&31](z,m)|0){l=51;break b}}k=h+8|0;if(Ya[c[d>>2]&31](h,f)|0)A=k;else{if((k|0)==(f|0)){l=68;break a}else B=k;while(1){if(Ya[c[d>>2]&31](h,B)|0)break;k=B+8|0;if((k|0)==(f|0)){l=68;break a}else B=k}k=B;j=c[k>>2]|0;v=c[k+4>>2]|0;k=f;s=c[k+4>>2]|0;n=B;c[n>>2]=c[k>>2];c[n+4>>2]=s;s=f;c[s>>2]=j;c[s+4>>2]=v;A=B+8|0}if((A|0)==(f|0)){l=68;break a}else{C=f;D=A}while(1){v=D;while(1){E=v+8|0;if(Ya[c[d>>2]&31](h,v)|0){F=C;break}else v=E}do F=F+-8|0;while(Ya[c[d>>2]&31](h,F)|0);if(v>>>0>=F>>>0){h=v;continue b}s=v;j=c[s>>2]|0;n=c[s+4>>2]|0;s=F;k=c[s+4>>2]|0;u=v;c[u>>2]=c[s>>2];c[u+4>>2]=k;k=F;c[k>>2]=j;c[k+4>>2]=n;C=F;D=E}}if((l|0)==51){l=0;n=h;k=c[n>>2]|0;j=c[n+4>>2]|0;n=z;u=c[n+4>>2]|0;s=h;c[s>>2]=c[n>>2];c[s+4>>2]=u;u=z;c[u>>2]=k;c[u+4>>2]=j;x=z;y=w+1|0}j=h+8|0;c:do if(j>>>0>>0){u=m;k=x;s=j;n=y;while(1){t=s;while(1){G=t+8|0;if(Ya[c[d>>2]&31](t,u)|0)t=G;else{H=k;break}}do H=H+-8|0;while(!(Ya[c[d>>2]&31](H,u)|0));if(t>>>0>H>>>0){I=u;J=n;K=t;break c}v=t;r=c[v>>2]|0;o=c[v+4>>2]|0;v=H;q=c[v+4>>2]|0;p=t;c[p>>2]=c[v>>2];c[p+4>>2]=q;q=H;c[q>>2]=r;c[q+4>>2]=o;u=(u|0)==(t|0)?H:u;k=H;s=G;n=n+1|0}}else{I=m;J=y;K=j}while(0);if((K|0)!=(I|0)?Ya[c[d>>2]&31](I,K)|0:0){j=K;n=c[j>>2]|0;s=c[j+4>>2]|0;j=I;k=c[j+4>>2]|0;u=K;c[u>>2]=c[j>>2];c[u+4>>2]=k;k=I;c[k>>2]=n;c[k+4>>2]=s;L=J+1|0}else L=J;if(!L){M=Ej(h,K,d)|0;s=K+8|0;if(Ej(s,a,d)|0){l=67;break}if(M){g=s;continue}}s=K;if((s-i|0)>=(b-s|0)){l=66;break}zj(h,K,d);g=K+8|0}if((l|0)==66){l=0;zj(K+8|0,a,d);e=h;a=K;continue}else if((l|0)==67){l=0;if(M){l=68;break}else{e=h;a=K;continue}}}if((l|0)==5){if(!(Ya[c[d>>2]&31](f,h)|0))return;K=h;e=c[K>>2]|0;M=c[K+4>>2]|0;K=f;i=c[K+4>>2]|0;L=h;c[L>>2]=c[K>>2];c[L+4>>2]=i;i=f;c[i>>2]=e;c[i+4>>2]=M;return}else if((l|0)==7){M=h+8|0;i=Ya[c[d>>2]&31](M,h)|0;e=Ya[c[d>>2]&31](f,M)|0;if(!i){if(!e)return;i=M;L=c[i>>2]|0;K=c[i+4>>2]|0;i=f;J=c[i+4>>2]|0;I=M;c[I>>2]=c[i>>2];c[I+4>>2]=J;J=f;c[J>>2]=L;c[J+4>>2]=K;if(!(Ya[c[d>>2]&31](M,h)|0))return;K=h;J=c[K>>2]|0;L=c[K+4>>2]|0;K=M;I=c[K+4>>2]|0;i=h;c[i>>2]=c[K>>2];c[i+4>>2]=I;I=M;c[I>>2]=J;c[I+4>>2]=L;return}L=h;I=c[L>>2]|0;J=c[L+4>>2]|0;if(e){e=f;L=c[e+4>>2]|0;i=h;c[i>>2]=c[e>>2];c[i+4>>2]=L;L=f;c[L>>2]=I;c[L+4>>2]=J;return}L=M;i=c[L+4>>2]|0;e=h;c[e>>2]=c[L>>2];c[e+4>>2]=i;i=M;c[i>>2]=I;c[i+4>>2]=J;if(!(Ya[c[d>>2]&31](f,M)|0))return;J=M;i=c[J>>2]|0;I=c[J+4>>2]|0;J=f;e=c[J+4>>2]|0;L=M;c[L>>2]=c[J>>2];c[L+4>>2]=e;e=f;c[e>>2]=i;c[e+4>>2]=I;return}else if((l|0)==15){Cj(h,h+8|0,h+16|0,f,d)|0;return}else if((l|0)==16){I=h+8|0;e=h+16|0;i=h+24|0;Cj(h,I,e,i,d)|0;if(!(Ya[c[d>>2]&31](f,i)|0))return;L=i;J=c[L>>2]|0;M=c[L+4>>2]|0;L=f;K=c[L+4>>2]|0;y=i;c[y>>2]=c[L>>2];c[y+4>>2]=K;K=f;c[K>>2]=J;c[K+4>>2]=M;if(!(Ya[c[d>>2]&31](i,e)|0))return;M=e;K=c[M>>2]|0;J=c[M+4>>2]|0;M=i;f=c[M+4>>2]|0;y=e;c[y>>2]=c[M>>2];c[y+4>>2]=f;f=i;c[f>>2]=K;c[f+4>>2]=J;if(!(Ya[c[d>>2]&31](e,I)|0))return;J=I;f=c[J>>2]|0;K=c[J+4>>2]|0;J=e;i=c[J+4>>2]|0;y=I;c[y>>2]=c[J>>2];c[y+4>>2]=i;i=e;c[i>>2]=f;c[i+4>>2]=K;if(!(Ya[c[d>>2]&31](I,h)|0))return;K=h;i=c[K>>2]|0;f=c[K+4>>2]|0;K=I;e=c[K+4>>2]|0;y=h;c[y>>2]=c[K>>2];c[y+4>>2]=e;e=I;c[e>>2]=i;c[e+4>>2]=f;return}else if((l|0)==22){Dj(h,a,d);return}else if((l|0)==68)return}function Aj(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,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;e=l;l=l+1040|0;f=e;h=f+4|0;c[f>>2]=h;i=f+1028|0;j=f+1032|0;c[j>>2]=256;c[h>>2]=c[a>>2];c[i>>2]=1;k=a+4|0;a=d+4|0;m=d+8|0;n=d+12|0;o=1;p=h;a:while(1){q=o+-1|0;c[i>>2]=q;r=c[p+(q<<2)>>2]|0;do if((r|0)!=-1?(s=c[k>>2]|0,!((+g[d>>2]-+g[s+(r*36|0)+8>>2]>0.0?1:+g[a>>2]-+g[s+(r*36|0)+12>>2]>0.0)|+g[s+(r*36|0)>>2]-+g[m>>2]>0.0|+g[s+(r*36|0)+4>>2]-+g[n>>2]>0.0)):0){t=s+(r*36|0)+24|0;if((c[t>>2]|0)==-1){if(!(Ge(b,r)|0))break a;u=c[i>>2]|0;break}if((q|0)==(c[j>>2]|0)?(c[j>>2]=q<<1,v=_l(q<<3)|0,c[f>>2]=v,Qn(v|0,p|0,c[i>>2]<<2|0)|0,(p|0)!=(h|0)):0)$l(p);v=c[f>>2]|0;c[v+(c[i>>2]<<2)>>2]=c[t>>2];t=(c[i>>2]|0)+1|0;c[i>>2]=t;w=s+(r*36|0)+28|0;if((t|0)==(c[j>>2]|0)?(c[j>>2]=t<<1,s=_l(t<<3)|0,c[f>>2]=s,Qn(s|0,v|0,c[i>>2]<<2|0)|0,(v|0)!=(h|0)):0)$l(v);c[(c[f>>2]|0)+(c[i>>2]<<2)>>2]=c[w>>2];w=(c[i>>2]|0)+1|0;c[i>>2]=w;u=w}else u=q;while(0);if((u|0)<=0)break;o=u;p=c[f>>2]|0}p=c[f>>2]|0;if((p|0)==(h|0)){l=e;return}$l(p);c[f>>2]=0;l=e;return}function Bj(d,f,h){d=d|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=c[f+16>>2]|0;j=c[h+16>>2]|0;k=c[f+20>>2]|0;f=c[h+20>>2]|0;h=c[i+8>>2]|0;l=c[j+8>>2]|0;if((h|0)==(l|0))return;m=c[l+128>>2]|0;a:do if(m|0){n=m;while(1){if((c[n>>2]|0)==(h|0)){o=c[n+4>>2]|0;p=c[o+48>>2]|0;q=c[o+52>>2]|0;r=c[o+56>>2]|0;s=c[o+60>>2]|0;if((p|0)==(i|0)&(q|0)==(j|0)&(r|0)==(k|0)&(s|0)==(f|0)){t=24;break}if((p|0)==(j|0)&(q|0)==(i|0)&(r|0)==(f|0)&(s|0)==(k|0)){t=24;break}}n=c[n+12>>2]|0;if(!n)break a}if((t|0)==24)return}while(0);if(!(lj(l,h)|0))return;h=c[d+68>>2]|0;if(h|0?!(Sa[c[(c[h>>2]|0)+8>>2]&15](h,i,j)|0):0)return;h=Zh(i,k,j,f,c[d+76>>2]|0)|0;if(!h)return;f=c[h+48>>2]|0;j=c[h+52>>2]|0;k=c[f+8>>2]|0;i=c[j+8>>2]|0;c[h+8>>2]=0;l=d+60|0;t=c[l>>2]|0;c[h+12>>2]=t;if(t|0)c[t+8>>2]=h;c[l>>2]=h;l=h+16|0;c[h+20>>2]=h;c[l>>2]=i;c[h+24>>2]=0;t=k+128|0;m=c[t>>2]|0;c[h+28>>2]=m;if(m|0)c[m+8>>2]=l;c[t>>2]=l;l=h+32|0;c[h+36>>2]=h;c[l>>2]=k;c[h+40>>2]=0;t=i+128|0;m=c[t>>2]|0;c[h+44>>2]=m;if(m|0)c[m+8>>2]=l;c[t>>2]=l;if((a[f+38>>0]|0)==0?(a[j+38>>0]|0)==0:0){j=k+4|0;f=e[j>>1]|0;if(!(f&2)){b[j>>1]=f|2;g[k+160>>2]=0.0}k=i+4|0;f=e[k>>1]|0;if(!(f&2)){b[k>>1]=f|2;g[i+160>>2]=0.0}}i=d+64|0;c[i>>2]=(c[i>>2]|0)+1;return}function Cj(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;g=Ya[c[f>>2]&31](b,a)|0;h=Ya[c[f>>2]&31](d,b)|0;do if(g){i=a;j=c[i>>2]|0;k=c[i+4>>2]|0;if(h){i=d;l=c[i+4>>2]|0;m=a;c[m>>2]=c[i>>2];c[m+4>>2]=l;l=d;c[l>>2]=j;c[l+4>>2]=k;n=1;break}l=b;m=c[l+4>>2]|0;i=a;c[i>>2]=c[l>>2];c[i+4>>2]=m;m=b;c[m>>2]=j;c[m+4>>2]=k;if(Ya[c[f>>2]&31](d,b)|0){k=b;m=c[k>>2]|0;j=c[k+4>>2]|0;k=d;i=c[k+4>>2]|0;l=b;c[l>>2]=c[k>>2];c[l+4>>2]=i;i=d;c[i>>2]=m;c[i+4>>2]=j;n=2}else n=1}else if(h){j=b;i=c[j>>2]|0;m=c[j+4>>2]|0;j=d;l=c[j+4>>2]|0;k=b;c[k>>2]=c[j>>2];c[k+4>>2]=l;l=d;c[l>>2]=i;c[l+4>>2]=m;if(Ya[c[f>>2]&31](b,a)|0){m=a;l=c[m>>2]|0;i=c[m+4>>2]|0;m=b;k=c[m+4>>2]|0;j=a;c[j>>2]=c[m>>2];c[j+4>>2]=k;k=b;c[k>>2]=l;c[k+4>>2]=i;n=2}else n=1}else n=0;while(0);if(!(Ya[c[f>>2]&31](e,d)|0)){o=n;return o|0}h=d;g=c[h>>2]|0;i=c[h+4>>2]|0;h=e;k=c[h+4>>2]|0;l=d;c[l>>2]=c[h>>2];c[l+4>>2]=k;k=e;c[k>>2]=g;c[k+4>>2]=i;if(!(Ya[c[f>>2]&31](d,b)|0)){o=n+1|0;return o|0}i=b;k=c[i>>2]|0;g=c[i+4>>2]|0;i=d;e=c[i+4>>2]|0;l=b;c[l>>2]=c[i>>2];c[l+4>>2]=e;e=d;c[e>>2]=k;c[e+4>>2]=g;if(!(Ya[c[f>>2]&31](b,a)|0)){o=n+2|0;return o|0}f=a;g=c[f>>2]|0;e=c[f+4>>2]|0;f=b;k=c[f+4>>2]|0;d=a;c[d>>2]=c[f>>2];c[d+4>>2]=k;k=b;c[k>>2]=g;c[k+4>>2]=e;o=n+3|0;return o|0}function Dj(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,m=0,n=0,o=0,p=0;e=l;l=l+16|0;f=e;g=a+16|0;h=a+8|0;i=Ya[c[d>>2]&31](h,a)|0;j=Ya[c[d>>2]&31](g,h)|0;do if(i){k=a;m=c[k>>2]|0;n=c[k+4>>2]|0;if(j){k=g;o=c[k+4>>2]|0;p=a;c[p>>2]=c[k>>2];c[p+4>>2]=o;o=g;c[o>>2]=m;c[o+4>>2]=n;break}o=h;p=c[o+4>>2]|0;k=a;c[k>>2]=c[o>>2];c[k+4>>2]=p;p=h;c[p>>2]=m;c[p+4>>2]=n;if(Ya[c[d>>2]&31](g,h)|0){n=h;p=c[n>>2]|0;m=c[n+4>>2]|0;n=g;k=c[n+4>>2]|0;o=h;c[o>>2]=c[n>>2];c[o+4>>2]=k;k=g;c[k>>2]=p;c[k+4>>2]=m}}else if(j?(m=h,k=c[m>>2]|0,p=c[m+4>>2]|0,m=g,o=c[m+4>>2]|0,n=h,c[n>>2]=c[m>>2],c[n+4>>2]=o,o=g,c[o>>2]=k,c[o+4>>2]=p,Ya[c[d>>2]&31](h,a)|0):0){p=a;o=c[p>>2]|0;k=c[p+4>>2]|0;p=h;n=c[p+4>>2]|0;m=a;c[m>>2]=c[p>>2];c[m+4>>2]=n;n=h;c[n>>2]=o;c[n+4>>2]=k}while(0);h=a+24|0;if((h|0)==(b|0)){l=e;return}j=h;h=g;while(1){if(Ya[c[d>>2]&31](j,h)|0){g=j;i=c[g+4>>2]|0;k=f;c[k>>2]=c[g>>2];c[k+4>>2]=i;i=h;k=j;while(1){g=i;n=c[g+4>>2]|0;o=k;c[o>>2]=c[g>>2];c[o+4>>2]=n;if((i|0)==(a|0))break;n=i+-8|0;if(Ya[c[d>>2]&31](f,n)|0){o=i;i=n;k=o}else break}k=f;o=c[k+4>>2]|0;n=i;c[n>>2]=c[k>>2];c[n+4>>2]=o}o=j+8|0;if((o|0)==(b|0))break;else{n=j;j=o;h=n}}l=e;return}function Ej(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,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;e=l;l=l+16|0;f=e;switch(b-a>>3|0){case 2:{g=b+-8|0;if(!(Ya[c[d>>2]&31](g,a)|0)){h=1;l=e;return h|0}i=a;j=c[i>>2]|0;k=c[i+4>>2]|0;i=g;m=c[i+4>>2]|0;n=a;c[n>>2]=c[i>>2];c[n+4>>2]=m;m=g;c[m>>2]=j;c[m+4>>2]=k;h=1;l=e;return h|0}case 3:{k=a+8|0;m=b+-8|0;j=Ya[c[d>>2]&31](k,a)|0;g=Ya[c[d>>2]&31](m,k)|0;if(!j){if(!g){h=1;l=e;return h|0}j=k;n=c[j>>2]|0;i=c[j+4>>2]|0;j=m;o=c[j+4>>2]|0;p=k;c[p>>2]=c[j>>2];c[p+4>>2]=o;o=m;c[o>>2]=n;c[o+4>>2]=i;if(!(Ya[c[d>>2]&31](k,a)|0)){h=1;l=e;return h|0}i=a;o=c[i>>2]|0;n=c[i+4>>2]|0;i=k;p=c[i+4>>2]|0;j=a;c[j>>2]=c[i>>2];c[j+4>>2]=p;p=k;c[p>>2]=o;c[p+4>>2]=n;h=1;l=e;return h|0}n=a;p=c[n>>2]|0;o=c[n+4>>2]|0;if(g){g=m;n=c[g+4>>2]|0;j=a;c[j>>2]=c[g>>2];c[j+4>>2]=n;n=m;c[n>>2]=p;c[n+4>>2]=o;h=1;l=e;return h|0}n=k;j=c[n+4>>2]|0;g=a;c[g>>2]=c[n>>2];c[g+4>>2]=j;j=k;c[j>>2]=p;c[j+4>>2]=o;if(!(Ya[c[d>>2]&31](m,k)|0)){h=1;l=e;return h|0}o=k;j=c[o>>2]|0;p=c[o+4>>2]|0;o=m;g=c[o+4>>2]|0;n=k;c[n>>2]=c[o>>2];c[n+4>>2]=g;g=m;c[g>>2]=j;c[g+4>>2]=p;h=1;l=e;return h|0}case 4:{Cj(a,a+8|0,a+16|0,b+-8|0,d)|0;h=1;l=e;return h|0}case 5:{p=a+8|0;g=a+16|0;j=a+24|0;m=b+-8|0;Cj(a,p,g,j,d)|0;if(!(Ya[c[d>>2]&31](m,j)|0)){h=1;l=e;return h|0}n=j;o=c[n>>2]|0;k=c[n+4>>2]|0;n=m;i=c[n+4>>2]|0;q=j;c[q>>2]=c[n>>2];c[q+4>>2]=i;i=m;c[i>>2]=o;c[i+4>>2]=k;if(!(Ya[c[d>>2]&31](j,g)|0)){h=1;l=e;return h|0}k=g;i=c[k>>2]|0;o=c[k+4>>2]|0;k=j;m=c[k+4>>2]|0;q=g;c[q>>2]=c[k>>2];c[q+4>>2]=m;m=j;c[m>>2]=i;c[m+4>>2]=o;if(!(Ya[c[d>>2]&31](g,p)|0)){h=1;l=e;return h|0}o=p;m=c[o>>2]|0;i=c[o+4>>2]|0;o=g;j=c[o+4>>2]|0;q=p;c[q>>2]=c[o>>2];c[q+4>>2]=j;j=g;c[j>>2]=m;c[j+4>>2]=i;if(!(Ya[c[d>>2]&31](p,a)|0)){h=1;l=e;return h|0}i=a;j=c[i>>2]|0;m=c[i+4>>2]|0;i=p;g=c[i+4>>2]|0;q=a;c[q>>2]=c[i>>2];c[q+4>>2]=g;g=p;c[g>>2]=j;c[g+4>>2]=m;h=1;l=e;return h|0}case 1:case 0:{h=1;l=e;return h|0}default:{m=a+16|0;g=a+8|0;j=Ya[c[d>>2]&31](g,a)|0;p=Ya[c[d>>2]&31](m,g)|0;do if(j){q=a;i=c[q>>2]|0;o=c[q+4>>2]|0;if(p){q=m;k=c[q+4>>2]|0;n=a;c[n>>2]=c[q>>2];c[n+4>>2]=k;k=m;c[k>>2]=i;c[k+4>>2]=o;break}k=g;n=c[k+4>>2]|0;q=a;c[q>>2]=c[k>>2];c[q+4>>2]=n;n=g;c[n>>2]=i;c[n+4>>2]=o;if(Ya[c[d>>2]&31](m,g)|0){o=g;n=c[o>>2]|0;i=c[o+4>>2]|0;o=m;q=c[o+4>>2]|0;k=g;c[k>>2]=c[o>>2];c[k+4>>2]=q;q=m;c[q>>2]=n;c[q+4>>2]=i}}else if(p?(i=g,q=c[i>>2]|0,n=c[i+4>>2]|0,i=m,k=c[i+4>>2]|0,o=g,c[o>>2]=c[i>>2],c[o+4>>2]=k,k=m,c[k>>2]=q,c[k+4>>2]=n,Ya[c[d>>2]&31](g,a)|0):0){n=a;k=c[n>>2]|0;q=c[n+4>>2]|0;n=g;o=c[n+4>>2]|0;i=a;c[i>>2]=c[n>>2];c[i+4>>2]=o;o=g;c[o>>2]=k;c[o+4>>2]=q}while(0);g=a+24|0;a:do if((g|0)==(b|0)){r=1;s=0}else{p=g;j=0;q=m;while(1){if(Ya[c[d>>2]&31](p,q)|0){o=p;k=c[o+4>>2]|0;i=f;c[i>>2]=c[o>>2];c[i+4>>2]=k;k=q;i=p;while(1){o=k;n=c[o+4>>2]|0;t=i;c[t>>2]=c[o>>2];c[t+4>>2]=n;if((k|0)==(a|0))break;n=k+-8|0;if(Ya[c[d>>2]&31](f,n)|0){t=k;k=n;i=t}else break}i=f;t=c[i+4>>2]|0;n=k;c[n>>2]=c[i>>2];c[n+4>>2]=t;t=j+1|0;if((t|0)==8){r=0;s=(p+8|0)==(b|0);break a}else u=t}else u=j;t=p+8|0;if((t|0)==(b|0)){r=1;s=0;break}else{n=p;p=t;j=u;q=n}}}while(0);h=s|r;l=e;return h|0}}return 0}function Fj(a,b,d){a=a|0;b=b|0;d=d|0;c[a>>2]=b;c[a+4>>2]=hm(b,d<<4)|0;c[a+8>>2]=d;d=a+12|0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;c[d+12>>2]=0;return}function Gj(a){a=a|0;var b=0;b=c[a+24>>2]|0;if(b|0)jm(c[a>>2]|0,b);jm(c[a>>2]|0,c[a+4>>2]|0);return}function Hj(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0;g=c[b+4>>2]|0;h=b+12|0;b=c[h>>2]|0;c[h>>2]=b+1;h=d;d=c[h+4>>2]|0;i=g+(b<<4)|0;c[i>>2]=c[h>>2];c[i+4>>2]=d;c[g+(b<<4)+8>>2]=e;a[g+(b<<4)+12>>0]=f&1;return}function Ij(b,d,e){b=b|0;d=+d;e=+e;var 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,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,K=0,L=0,M=0,N=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,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,$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,oc=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,Nc=0,Oc=0,Pc=0,Qc=0,Rc=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,Qe=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,cf=0,df=0,ef=0,ff=0,gf=0,hf=0,jf=0,kf=0,lf=0,mf=0,nf=0,of=0,pf=0,qf=0,rf=0,sf=0,tf=0,uf=0,vf=0,wf=0,xf=0,yf=0,zf=0,Af=0,Bf=0,Cf=0,Df=0,Ef=0,Ff=0,Gf=0,Hf=0,If=0,Jf=0,Kf=0,Lf=0,Mf=0,Nf=0,Of=0,Pf=0,Qf=0,Rf=0,Sf=0,Tf=0,Uf=0,Vf=0,Wf=0,Xf=0,Yf=0,Zf=0,_f=0,$f=0,ag=0,bg=0,cg=0,dg=0,eg=0,fg=0,gg=0,hg=0,ig=0,jg=0,kg=0,lg=0,mg=0,ng=0,og=0,pg=0,qg=0,rg=0,sg=0,tg=0,ug=0,vg=0,wg=0,xg=0,yg=0,zg=0,Ag=0,Bg=0,Cg=0,Dg=0,Eg=0,Fg=0,Gg=0,Hg=0,Ig=0,Jg=0,Kg=0,Lg=0,Mg=0,Ng=0,Og=0,Pg=0,Qg=0,Rg=0,Sg=0,Tg=0,Ug=0,Vg=0,Wg=0,Xg=0,Yg=0,Zg=0,_g=0,$g=0,ah=0,bh=0,ch=0,dh=0,eh=0,fh=0,gh=0,hh=0,ih=0,jh=0,kh=0,lh=0,mh=0,nh=0,oh=0,ph=0,qh=0,rh=0,sh=0,th=0,uh=0,vh=0,wh=0,xh=0,yh=0,zh=0,Ah=0,Bh=0,Ch=0,Dh=0,Eh=0,Fh=0;f=1.0/d;h=b+12|0;i=c[h>>2]|0;if((i|0)>0){j=c[b+4>>2]|0;k=0;d=3402823466385288598117041.0e14;l=3402823466385288598117041.0e14;m=3402823466385288598117041.0e14;n=-3402823466385288598117041.0e14;o=-3402823466385288598117041.0e14;p=3402823466385288598117041.0e14;q=-3402823466385288598117041.0e14;r=-3402823466385288598117041.0e14;while(1){if(!(a[j+(k<<4)+12>>0]|0)){s=o;t=q;u=n;v=r;w=m;x=d;y=l;z=p}else{A=+g[j+(k<<4)>>2];B=d>2];D=pA?q:A;A=r>C?r:C;s=E;t=E;u=A;v=A;w=B;x=B;y=D;z=D}k=k+1|0;if((k|0)>=(i|0)){F=y;G=w;H=u;I=s;break}else{d=x;l=y;m=w;n=u;o=s;p=z;q=t;r=v}}}else{F=3402823466385288598117041.0e14;G=3402823466385288598117041.0e14;H=-3402823466385288598117041.0e14;I=-3402823466385288598117041.0e14}v=G-e;G=F-e;i=~~(f*(I+e-v))+1|0;k=b+16|0;c[k>>2]=i;j=~~(f*(H+e-G))+1|0;J=b+20|0;c[J>>2]=j;K=hm(c[b>>2]|0,O(j<<2,i)|0)|0;i=b+24|0;c[i>>2]=K;j=c[k>>2]|0;L=c[J>>2]|0;M=O(L,j)|0;if((M|0)>0?(c[K>>2]=0,(M|0)!=1):0){K=1;do{c[(c[i>>2]|0)+(K<<2)>>2]=0;K=K+1|0}while((K|0)<(M|0))}M=c[b>>2]|0;K=O(j<<2,L)|0;L=hm(M,K<<4)|0;if((c[h>>2]|0)>0){j=b+4|0;b=0;N=0;P=L;Q=K;R=L;S=L;T=L;U=L;V=L;W=L;X=L;Y=L;Z=L;_=L;$=L;aa=L;ba=L;ca=L;da=L;while(1){ea=c[j>>2]|0;fa=ea+(b<<4)|0;ga=ea+(b<<4)+4|0;e=f*(+g[fa>>2]-v);H=f*(+g[ga>>2]-G);g[fa>>2]=e;g[ga>>2]=H;ga=~~e;ea=~~H;if(((ea|ga|0)>-1?(ha=c[k>>2]|0,(ga|0)<(ha|0)):0)?(ea|0)<(c[J>>2]|0):0){ia=(O(ha,ea)|0)+ga|0;if((N|0)<(Q|0)){ja=P;ka=Q;la=ca;ma=ba;na=aa;oa=$;pa=_;qa=Z;ra=Y;sa=X;ta=W;ua=V;va=U;wa=T;xa=S;ya=R;za=da}else{if((N|0)>0){ha=0;do ha=ha+1|0;while((ha|0)!=(N|0))}ha=(Q|0)>0?Q<<1:1;Aa=im(M,da,ha<<4)|0;ja=Aa;ka=ha;la=Aa;ma=Aa;na=Aa;oa=Aa;pa=Aa;qa=Aa;ra=Aa;sa=Aa;ta=Aa;ua=Aa;va=Aa;wa=Aa;xa=Aa;ya=Aa;za=Aa}c[ja+(N<<4)>>2]=ga;c[ja+(N<<4)+4>>2]=ea;c[ja+(N<<4)+8>>2]=ia;c[ja+(N<<4)+12>>2]=fa;Ba=N+1|0;Ca=ja;Da=ka;Ea=la;Fa=ma;Ga=na;Ha=oa;Ia=pa;Ja=qa;Ka=ra;La=sa;Ma=ta;Na=ua;Oa=va;Pa=wa;Qa=xa;Ra=ya;Sa=za}else{Ba=N;Ca=P;Da=Q;Ea=ca;Fa=ba;Ga=aa;Ha=$;Ia=_;Ja=Z;Ka=Y;La=X;Ma=W;Na=V;Oa=U;Pa=T;Qa=S;Ra=R;Sa=da}b=b+1|0;if((b|0)>=(c[h>>2]|0)){Ta=Ea;Ua=Fa;Va=Ga;Wa=Ha;Xa=Ia;Ya=Ja;Za=Ka;_a=La;$a=Ma;ab=Na;bb=Oa;cb=Pa;db=Qa;eb=Ra;fb=Ba;gb=Ca;hb=Da;ib=0;break}else{N=Ba;P=Ca;Q=Da;R=Ra;S=Qa;T=Pa;U=Oa;V=Na;W=Ma;X=La;Y=Ka;Z=Ja;_=Ia;$=Ha;aa=Ga;ba=Fa;ca=Ea;da=Sa}}}else{Ta=L;Ua=L;Va=L;Wa=L;Xa=L;Ya=L;Za=L;_a=L;$a=L;ab=L;bb=L;cb=L;db=L;eb=L;fb=0;gb=L;hb=K;ib=0}a:while(1){K=ib;while(1){if((K|0)==(fb|0))break a;jb=c[gb+(K<<4)+8>>2]|0;kb=K+1|0;lb=(c[i>>2]|0)+(jb<<2)|0;if(!(c[lb>>2]|0))break;else K=kb}fa=c[gb+(K<<4)>>2]|0;ia=c[gb+(K<<4)+4>>2]|0;ea=c[gb+(K<<4)+12>>2]|0;c[lb>>2]=ea;if((fa|0)>0){ga=fa+-1|0;L=jb+-1|0;if((fb|0)>=(hb|0)){if((fb|0)>(kb|0)){Sa=kb;do{da=gb+(Sa<<4)|0;Ea=gb+(Sa-kb<<4)|0;c[Ea>>2]=c[da>>2];c[Ea+4>>2]=c[da+4>>2];c[Ea+8>>2]=c[da+8>>2];c[Ea+12>>2]=c[da+12>>2];Sa=Sa+1|0}while((Sa|0)!=(fb|0))}Sa=fb-kb|0;if((Sa|0)<(hb|0)){mb=Sa;nb=gb;ob=hb;pb=0;qb=Ta;rb=Ua;sb=Va;tb=Wa;ub=Xa;vb=Ya;wb=Za;xb=_a;yb=$a;zb=ab;Ab=bb;Bb=cb;Cb=db;Db=eb}else{K=(hb|0)>0?hb<<1:1;da=im(M,Xa,K<<4)|0;mb=Sa;nb=da;ob=K;pb=0;qb=da;rb=da;sb=da;tb=da;ub=da;vb=da;wb=da;xb=da;yb=da;zb=da;Ab=da;Bb=da;Cb=da;Db=da}}else{mb=fb;nb=gb;ob=hb;pb=kb;qb=Ta;rb=Ua;sb=Va;tb=Wa;ub=Xa;vb=Ya;wb=Za;xb=_a;yb=$a;zb=ab;Ab=bb;Bb=cb;Cb=db;Db=eb}c[nb+(mb<<4)>>2]=ga;c[nb+(mb<<4)+4>>2]=ia;c[nb+(mb<<4)+8>>2]=L;c[nb+(mb<<4)+12>>2]=ea;Eb=mb+1|0;Fb=nb;Gb=ob;Hb=pb;Ib=tb;Jb=qb;Kb=rb;Lb=sb;Mb=ub;Nb=vb;Ob=wb;Pb=xb;Qb=yb;Rb=zb;Sb=Ab;Tb=Bb;Ub=Cb;Vb=Db}else{Eb=fb;Fb=gb;Gb=hb;Hb=kb;Ib=Wa;Jb=Ta;Kb=Ua;Lb=Va;Mb=Xa;Nb=Ya;Ob=Za;Pb=_a;Qb=$a;Rb=ab;Sb=bb;Tb=cb;Ub=db;Vb=eb}if((ia|0)>0){da=ia+-1|0;K=jb-(c[k>>2]|0)|0;if((Eb|0)>=(Gb|0)){if((Eb|0)>(Hb|0)){Sa=Hb;do{Ea=Fb+(Sa<<4)|0;ca=Fb+(Sa-Hb<<4)|0;c[ca>>2]=c[Ea>>2];c[ca+4>>2]=c[Ea+4>>2];c[ca+8>>2]=c[Ea+8>>2];c[ca+12>>2]=c[Ea+12>>2];Sa=Sa+1|0}while((Sa|0)!=(Eb|0))}Sa=Eb-Hb|0;if((Sa|0)<(Gb|0)){Wb=Sa;Xb=Fb;Yb=Gb;Zb=0;_b=Jb;$b=Kb;ac=Lb;bc=Ib;cc=Mb;dc=Nb;ec=Ob;fc=Pb;gc=Qb;hc=Rb;ic=Sb;jc=Tb;kc=Ub;lc=Vb}else{L=(Gb|0)>0?Gb<<1:1;ga=im(M,Ib,L<<4)|0;Wb=Sa;Xb=ga;Yb=L;Zb=0;_b=ga;$b=ga;ac=ga;bc=ga;cc=ga;dc=ga;ec=ga;fc=ga;gc=ga;hc=ga;ic=ga;jc=ga;kc=ga;lc=ga}}else{Wb=Eb;Xb=Fb;Yb=Gb;Zb=Hb;_b=Jb;$b=Kb;ac=Lb;bc=Ib;cc=Mb;dc=Nb;ec=Ob;fc=Pb;gc=Qb;hc=Rb;ic=Sb;jc=Tb;kc=Ub;lc=Vb}c[Xb+(Wb<<4)>>2]=fa;c[Xb+(Wb<<4)+4>>2]=da;c[Xb+(Wb<<4)+8>>2]=K;c[Xb+(Wb<<4)+12>>2]=ea;mc=Wb+1|0;nc=Xb;oc=Yb;pc=Zb;qc=ac;rc=_b;sc=$b;tc=bc;uc=cc;vc=dc;wc=ec;xc=fc;yc=gc;zc=hc;Ac=ic;Bc=jc;Cc=kc;Dc=lc}else{mc=Eb;nc=Fb;oc=Gb;pc=Hb;qc=Lb;rc=Jb;sc=Kb;tc=Ib;uc=Mb;vc=Nb;wc=Ob;xc=Pb;yc=Qb;zc=Rb;Ac=Sb;Bc=Tb;Cc=Ub;Dc=Vb}if((fa|0)<((c[k>>2]|0)+-1|0)){ga=fa+1|0;L=jb+1|0;if((mc|0)>=(oc|0)){if((mc|0)>(pc|0)){Sa=pc;do{Ea=nc+(Sa<<4)|0;ca=nc+(Sa-pc<<4)|0;c[ca>>2]=c[Ea>>2];c[ca+4>>2]=c[Ea+4>>2];c[ca+8>>2]=c[Ea+8>>2];c[ca+12>>2]=c[Ea+12>>2];Sa=Sa+1|0}while((Sa|0)!=(mc|0))}Sa=mc-pc|0;if((Sa|0)<(oc|0)){Ec=Sa;Fc=nc;Gc=oc;Hc=0;Ic=rc;Jc=sc;Kc=qc;Lc=tc;Mc=uc;Nc=vc;Oc=wc;Pc=xc;Qc=yc;Rc=zc;Sc=Ac;Tc=Bc;Uc=Cc;Vc=Dc}else{K=(oc|0)>0?oc<<1:1;da=im(M,qc,K<<4)|0;Ec=Sa;Fc=da;Gc=K;Hc=0;Ic=da;Jc=da;Kc=da;Lc=da;Mc=da;Nc=da;Oc=da;Pc=da;Qc=da;Rc=da;Sc=da;Tc=da;Uc=da;Vc=da}}else{Ec=mc;Fc=nc;Gc=oc;Hc=pc;Ic=rc;Jc=sc;Kc=qc;Lc=tc;Mc=uc;Nc=vc;Oc=wc;Pc=xc;Qc=yc;Rc=zc;Sc=Ac;Tc=Bc;Uc=Cc;Vc=Dc}c[Fc+(Ec<<4)>>2]=ga;c[Fc+(Ec<<4)+4>>2]=ia;c[Fc+(Ec<<4)+8>>2]=L;c[Fc+(Ec<<4)+12>>2]=ea;Wc=Ec+1|0;Xc=Fc;Yc=Gc;Zc=Hc;_c=Ic;$c=Jc;ad=Kc;bd=Lc;cd=Mc;dd=Nc;ed=Oc;fd=Pc;gd=Qc;hd=Rc;id=Sc;jd=Tc;kd=Uc;ld=Vc}else{Wc=mc;Xc=nc;Yc=oc;Zc=pc;_c=rc;$c=sc;ad=qc;bd=tc;cd=uc;dd=vc;ed=wc;fd=xc;gd=yc;hd=zc;id=Ac;jd=Bc;kd=Cc;ld=Dc}if((ia|0)>=((c[J>>2]|0)+-1|0)){Ta=_c;Ua=$c;Va=ad;Wa=bd;Xa=cd;Ya=dd;Za=ed;_a=fd;$a=gd;ab=hd;bb=id;cb=jd;db=kd;eb=ld;fb=Wc;gb=Xc;hb=Yc;ib=Zc;continue}da=ia+1|0;K=(c[k>>2]|0)+jb|0;if((Wc|0)>=(Yc|0)){if((Wc|0)>(Zc|0)){Sa=Zc;do{Ea=Xc+(Sa<<4)|0;ca=Xc+(Sa-Zc<<4)|0;c[ca>>2]=c[Ea>>2];c[ca+4>>2]=c[Ea+4>>2];c[ca+8>>2]=c[Ea+8>>2];c[ca+12>>2]=c[Ea+12>>2];Sa=Sa+1|0}while((Sa|0)!=(Wc|0))}Sa=Wc-Zc|0;if((Sa|0)<(Yc|0)){md=Sa;nd=Xc;od=Yc;pd=0;qd=_c;rd=$c;sd=ad;td=bd;ud=cd;vd=dd;wd=ed;xd=fd;yd=gd;zd=hd;Ad=id;Bd=jd;Cd=kd;Dd=ld}else{ia=(Yc|0)>0?Yc<<1:1;L=im(M,_c,ia<<4)|0;md=Sa;nd=L;od=ia;pd=0;qd=L;rd=L;sd=L;td=L;ud=L;vd=L;wd=L;xd=L;yd=L;zd=L;Ad=L;Bd=L;Cd=L;Dd=L}}else{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;Ad=id;Bd=jd;Cd=kd;Dd=ld}c[nd+(md<<4)>>2]=fa;c[nd+(md<<4)+4>>2]=da;c[nd+(md<<4)+8>>2]=K;c[nd+(md<<4)+12>>2]=ea;Ta=qd;Ua=rd;Va=sd;Wa=td;Xa=ud;Ya=vd;Za=wd;_a=xd;$a=yd;ab=zd;bb=Ad;cb=Bd;db=Cd;eb=Dd;fb=md+1|0;gb=nd;hb=od;ib=pd}if((c[J>>2]|0)<=0){Ed=ab;jm(M,Ed);return}pd=0;ib=fb;od=gb;gb=hb;hb=fb;fb=c[k>>2]|0;nd=eb;eb=db;db=cb;cb=bb;bb=ab;ab=$a;$a=_a;_a=Za;Za=Ya;Ya=Ua;while(1){if((fb|0)>1){Ua=0;md=ib;Dd=od;Cd=gb;Bd=hb;Ad=fb;zd=eb;yd=nd;xd=db;wd=cb;vd=bb;ud=ab;Xa=$a;td=_a;Wa=Za;sd=Ya;while(1){Va=(O(Ad,pd)|0)+Ua|0;rd=c[i>>2]|0;qd=c[rd+(Va<<2)>>2]|0;Ta=Va+1|0;ld=c[rd+(Ta<<2)>>2]|0;if((qd|0)==(ld|0)){Fd=Ua+1|0;Gd=md;Hd=Dd;Id=Cd;Jd=Bd;Kd=Ad;Ld=sd;Md=Wa;Nd=td;Od=Xa;Pd=ud;Qd=vd;Rd=wd;Sd=xd;Td=zd;Ud=yd}else{if((md|0)>=(Cd|0)){if((md|0)>(Bd|0)){rd=Bd;do{kd=Dd+(rd<<4)|0;jd=Dd+(rd-Bd<<4)|0;c[jd>>2]=c[kd>>2];c[jd+4>>2]=c[kd+4>>2];c[jd+8>>2]=c[kd+8>>2];c[jd+12>>2]=c[kd+12>>2];rd=rd+1|0}while((rd|0)!=(md|0))}rd=md-Bd|0;if((rd|0)<(Cd|0)){Vd=rd;Wd=Dd;Xd=Cd;Yd=0;Zd=yd;_d=sd;$d=Wa;ae=td;be=Xa;ce=ud;de=vd;ee=wd;fe=xd;ge=zd}else{kd=(Cd|0)>0?Cd<<1:1;jd=im(M,zd,kd<<4)|0;Vd=rd;Wd=jd;Xd=kd;Yd=0;Zd=jd;_d=jd;$d=jd;ae=jd;be=jd;ce=jd;de=jd;ee=jd;fe=jd;ge=jd}}else{Vd=md;Wd=Dd;Xd=Cd;Yd=Bd;Zd=yd;_d=sd;$d=Wa;ae=td;be=Xa;ce=ud;de=vd;ee=wd;fe=xd;ge=zd}c[Wd+(Vd<<4)>>2]=Ua;c[Wd+(Vd<<4)+4>>2]=pd;c[Wd+(Vd<<4)+8>>2]=Va;c[Wd+(Vd<<4)+12>>2]=ld;jd=Vd+1|0;kd=Ua+1|0;if((jd|0)>=(Xd|0)){if((Vd|0)>=(Yd|0)){rd=Yd;while(1){id=Wd+(rd<<4)|0;hd=Wd+(rd-Yd<<4)|0;c[hd>>2]=c[id>>2];c[hd+4>>2]=c[id+4>>2];c[hd+8>>2]=c[id+8>>2];c[hd+12>>2]=c[id+12>>2];if((rd|0)<(Vd|0))rd=rd+1|0;else break}}rd=jd-Yd|0;if((rd|0)<(Xd|0)){he=rd;ie=Wd;je=Xd;ke=0;le=_d;me=$d;ne=ae;oe=be;pe=ce;qe=de;re=ee;se=fe;te=ge;ue=Zd}else{ld=(Xd|0)>0?Xd<<1:1;Va=im(M,Zd,ld<<4)|0;he=rd;ie=Va;je=ld;ke=0;le=Va;me=Va;ne=Va;oe=Va;pe=Va;qe=Va;re=Va;se=Va;te=Va;ue=Va}}else{he=jd;ie=Wd;je=Xd;ke=Yd;le=_d;me=$d;ne=ae;oe=be;pe=ce;qe=de;re=ee;se=fe;te=ge;ue=Zd}c[ie+(he<<4)>>2]=kd;c[ie+(he<<4)+4>>2]=pd;c[ie+(he<<4)+8>>2]=Ta;c[ie+(he<<4)+12>>2]=qd;Fd=kd;Gd=he+1|0;Hd=ie;Id=je;Jd=ke;Kd=c[k>>2]|0;Ld=le;Md=me;Nd=ne;Od=oe;Pd=pe;Qd=qe;Rd=re;Sd=se;Td=te;Ud=ue}if((Fd|0)<(Kd+-1|0)){Ua=Fd;md=Gd;Dd=Hd;Cd=Id;Bd=Jd;Ad=Kd;zd=Td;yd=Ud;xd=Sd;wd=Rd;vd=Qd;ud=Pd;Xa=Od;td=Nd;Wa=Md;sd=Ld}else{ve=Ud;we=Td;xe=Sd;ye=Rd;ze=Qd;Ae=Pd;Be=Od;Ce=Nd;De=Md;Ee=Ld;Fe=Gd;Ge=Hd;He=Id;Ie=Jd;Je=Kd;break}}}else{ve=nd;we=eb;xe=db;ye=cb;ze=bb;Ae=ab;Be=$a;Ce=_a;De=Za;Ee=Ya;Fe=ib;Ge=od;He=gb;Ie=hb;Je=fb}pd=pd+1|0;Ke=c[J>>2]|0;if((pd|0)>=(Ke|0))break;else{ib=Fe;od=Ge;gb=He;hb=Ie;fb=Je;nd=ve;eb=we;db=xe;cb=ye;bb=ze;ab=Ae;$a=Be;_a=Ce;Za=De;Ya=Ee}}if((Ke|0)>1){Ke=0;Ya=Fe;Za=Ge;_a=He;$a=Ie;ab=c[k>>2]|0;bb=xe;xe=ye;ye=ze;cb=Ae;db=Be;we=Ce;eb=De;ve=Ee;while(1){nd=Ke;Ke=Ke+1|0;if((ab|0)>0){Je=0;fb=Ya;hb=Za;gb=_a;od=$a;ib=ab;pd=xe;Kd=bb;Jd=ye;Id=cb;Hd=db;Gd=we;Ld=eb;Md=ve;while(1){Nd=(O(ib,nd)|0)+Je|0;Od=c[i>>2]|0;Pd=c[Od+(Nd<<2)>>2]|0;Qd=c[Od+(Nd+ib<<2)>>2]|0;if((Pd|0)==(Qd|0)){Le=fb;Me=hb;Ne=gb;Oe=od;Pe=ib;Qe=Md;Re=Ld;Se=Gd;Te=Hd;Ue=Id;Ve=Jd;We=pd;Xe=Kd}else{if((fb|0)>=(gb|0)){if((fb|0)>(od|0)){Od=od;do{Rd=hb+(Od<<4)|0;Sd=hb+(Od-od<<4)|0;c[Sd>>2]=c[Rd>>2];c[Sd+4>>2]=c[Rd+4>>2];c[Sd+8>>2]=c[Rd+8>>2];c[Sd+12>>2]=c[Rd+12>>2];Od=Od+1|0}while((Od|0)!=(fb|0))}Od=fb-od|0;if((Od|0)<(gb|0)){Ye=Od;Ze=hb;_e=gb;$e=0;af=Kd;bf=Md;cf=Ld;df=Gd;ef=Hd;ff=Id;gf=Jd;hf=pd}else{kd=(gb|0)>0?gb<<1:1;qd=im(M,pd,kd<<4)|0;Ye=Od;Ze=qd;_e=kd;$e=0;af=qd;bf=qd;cf=qd;df=qd;ef=qd;ff=qd;gf=qd;hf=qd}}else{Ye=fb;Ze=hb;_e=gb;$e=od;af=Kd;bf=Md;cf=Ld;df=Gd;ef=Hd;ff=Id;gf=Jd;hf=pd}c[Ze+(Ye<<4)>>2]=Je;c[Ze+(Ye<<4)+4>>2]=nd;c[Ze+(Ye<<4)+8>>2]=Nd;c[Ze+(Ye<<4)+12>>2]=Qd;qd=Ye+1|0;kd=(c[k>>2]|0)+Nd|0;if((qd|0)>=(_e|0)){if((Ye|0)>=($e|0)){Od=$e;while(1){Ta=Ze+(Od<<4)|0;jd=Ze+(Od-$e<<4)|0;c[jd>>2]=c[Ta>>2];c[jd+4>>2]=c[Ta+4>>2];c[jd+8>>2]=c[Ta+8>>2];c[jd+12>>2]=c[Ta+12>>2];if((Od|0)<(Ye|0))Od=Od+1|0;else break}}Od=qd-$e|0;if((Od|0)<(_e|0)){jf=Od;kf=Ze;lf=_e;mf=0;nf=bf;of=cf;pf=df;qf=ef;rf=ff;sf=gf;tf=hf;uf=af}else{Nd=(_e|0)>0?_e<<1:1;Qd=im(M,af,Nd<<4)|0;jf=Od;kf=Qd;lf=Nd;mf=0;nf=Qd;of=Qd;pf=Qd;qf=Qd;rf=Qd;sf=Qd;tf=Qd;uf=Qd}}else{jf=qd;kf=Ze;lf=_e;mf=$e;nf=bf;of=cf;pf=df;qf=ef;rf=ff;sf=gf;tf=hf;uf=af}c[kf+(jf<<4)>>2]=Je;c[kf+(jf<<4)+4>>2]=Ke;c[kf+(jf<<4)+8>>2]=kd;c[kf+(jf<<4)+12>>2]=Pd;Le=jf+1|0;Me=kf;Ne=lf;Oe=mf;Pe=c[k>>2]|0;Qe=nf;Re=of;Se=pf;Te=qf;Ue=rf;Ve=sf;We=tf;Xe=uf}Je=Je+1|0;if((Je|0)>=(Pe|0)){vf=Xe;wf=We;xf=Ve;yf=Ue;zf=Te;Af=Se;Bf=Re;Cf=Qe;Df=Le;Ef=Me;Ff=Ne;Gf=Oe;Hf=Pe;break}else{fb=Le;hb=Me;gb=Ne;od=Oe;ib=Pe;pd=We;Kd=Xe;Jd=Ve;Id=Ue;Hd=Te;Gd=Se;Ld=Re;Md=Qe}}}else{vf=bb;wf=xe;xf=ye;yf=cb;zf=db;Af=we;Bf=eb;Cf=ve;Df=Ya;Ef=Za;Ff=_a;Gf=$a;Hf=ab}if((Ke|0)>=((c[J>>2]|0)+-1|0)){If=xf;Jf=yf;Kf=zf;Lf=Af;Mf=Bf;Nf=Cf;Of=Df;Pf=Ef;Qf=Ff;Rf=Gf;break}else{Ya=Df;Za=Ef;_a=Ff;$a=Gf;ab=Hf;bb=vf;xe=wf;ye=xf;cb=yf;db=zf;we=Af;eb=Bf;ve=Cf}}}else{If=ze;Jf=Ae;Kf=Be;Lf=Ce;Mf=De;Nf=Ee;Of=Fe;Pf=Ge;Qf=He;Rf=Ie}if((Rf|0)==(Of|0)){Ed=If;jm(M,Ed);return}else{Sf=Nf;Tf=Mf;Uf=Lf;Vf=Kf;Wf=Jf;Xf=If;Yf=Of;Zf=Pf;_f=Qf;$f=Rf}b:while(1){Rf=c[i>>2]|0;Qf=$f;while(1){ag=c[Zf+(Qf<<4)>>2]|0;bg=c[Zf+(Qf<<4)+4>>2]|0;cg=c[Zf+(Qf<<4)+8>>2]|0;dg=c[Zf+(Qf<<4)+12>>2]|0;Qf=Qf+1|0;eg=Rf+(cg<<2)|0;Pf=c[eg>>2]|0;if((Pf|0)!=(dg|0)?(G=+(ag|0),f=+g[Pf>>2]-G,v=+(bg|0),H=+g[Pf+4>>2]-v,e=+g[dg>>2]-G,G=+g[dg+4>>2]-v,f*f+H*H>e*e+G*G):0)break;if((Yf|0)==(Qf|0)){Ed=Xf;fg=120;break b}}c[eg>>2]=dg;if((ag|0)>0){Rf=ag+-1|0;Pf=cg+-1|0;if((Yf|0)>=(_f|0)){if((Yf|0)>(Qf|0)){Of=Qf;do{If=Zf+(Of<<4)|0;Jf=Zf+(Of-Qf<<4)|0;c[Jf>>2]=c[If>>2];c[Jf+4>>2]=c[If+4>>2];c[Jf+8>>2]=c[If+8>>2];c[Jf+12>>2]=c[If+12>>2];Of=Of+1|0}while((Of|0)!=(Yf|0))}Of=Yf-Qf|0;if((Of|0)<(_f|0)){gg=Of;hg=Zf;ig=_f;jg=0;kg=Sf;lg=Tf;mg=Uf;ng=Vf;og=Wf;pg=Xf}else{If=(_f|0)>0?_f<<1:1;Jf=im(M,Wf,If<<4)|0;gg=Of;hg=Jf;ig=If;jg=0;kg=Jf;lg=Jf;mg=Jf;ng=Jf;og=Jf;pg=Jf}}else{gg=Yf;hg=Zf;ig=_f;jg=Qf;kg=Sf;lg=Tf;mg=Uf;ng=Vf;og=Wf;pg=Xf}c[hg+(gg<<4)>>2]=Rf;c[hg+(gg<<4)+4>>2]=bg;c[hg+(gg<<4)+8>>2]=Pf;c[hg+(gg<<4)+12>>2]=dg;qg=gg+1|0;rg=hg;sg=ig;tg=jg;ug=ng;vg=kg;wg=lg;xg=mg;yg=og;zg=pg}else{qg=Yf;rg=Zf;sg=_f;tg=Qf;ug=Vf;vg=Sf;wg=Tf;xg=Uf;yg=Wf;zg=Xf}if((bg|0)>0){Jf=bg+-1|0;If=cg-(c[k>>2]|0)|0;if((qg|0)>=(sg|0)){if((qg|0)>(tg|0)){Of=tg;do{Kf=rg+(Of<<4)|0;Lf=rg+(Of-tg<<4)|0;c[Lf>>2]=c[Kf>>2];c[Lf+4>>2]=c[Kf+4>>2];c[Lf+8>>2]=c[Kf+8>>2];c[Lf+12>>2]=c[Kf+12>>2];Of=Of+1|0}while((Of|0)!=(qg|0))}Of=qg-tg|0;if((Of|0)<(sg|0)){Ag=Of;Bg=rg;Cg=sg;Dg=0;Eg=vg;Fg=wg;Gg=xg;Hg=ug;Ig=yg;Jg=zg}else{Qf=(sg|0)>0?sg<<1:1;Pf=im(M,ug,Qf<<4)|0;Ag=Of;Bg=Pf;Cg=Qf;Dg=0;Eg=Pf;Fg=Pf;Gg=Pf;Hg=Pf;Ig=Pf;Jg=Pf}}else{Ag=qg;Bg=rg;Cg=sg;Dg=tg;Eg=vg;Fg=wg;Gg=xg;Hg=ug;Ig=yg;Jg=zg}c[Bg+(Ag<<4)>>2]=ag;c[Bg+(Ag<<4)+4>>2]=Jf;c[Bg+(Ag<<4)+8>>2]=If;c[Bg+(Ag<<4)+12>>2]=dg;Kg=Ag+1|0;Lg=Bg;Mg=Cg;Ng=Dg;Og=Gg;Pg=Eg;Qg=Fg;Rg=Hg;Sg=Ig;Tg=Jg}else{Kg=qg;Lg=rg;Mg=sg;Ng=tg;Og=xg;Pg=vg;Qg=wg;Rg=ug;Sg=yg;Tg=zg}if((ag|0)<((c[k>>2]|0)+-1|0)){Pf=ag+1|0;Qf=cg+1|0;if((Kg|0)>=(Mg|0)){if((Kg|0)>(Ng|0)){Of=Ng;do{Rf=Lg+(Of<<4)|0;Kf=Lg+(Of-Ng<<4)|0;c[Kf>>2]=c[Rf>>2];c[Kf+4>>2]=c[Rf+4>>2];c[Kf+8>>2]=c[Rf+8>>2];c[Kf+12>>2]=c[Rf+12>>2];Of=Of+1|0}while((Of|0)!=(Kg|0))}Of=Kg-Ng|0;if((Of|0)<(Mg|0)){Ug=Of;Vg=Lg;Wg=Mg;Xg=0;Yg=Pg;Zg=Qg;_g=Og;$g=Rg;ah=Sg;bh=Tg}else{If=(Mg|0)>0?Mg<<1:1;Jf=im(M,Og,If<<4)|0;Ug=Of;Vg=Jf;Wg=If;Xg=0;Yg=Jf;Zg=Jf;_g=Jf;$g=Jf;ah=Jf;bh=Jf}}else{Ug=Kg;Vg=Lg;Wg=Mg;Xg=Ng;Yg=Pg;Zg=Qg;_g=Og;$g=Rg;ah=Sg;bh=Tg}c[Vg+(Ug<<4)>>2]=Pf;c[Vg+(Ug<<4)+4>>2]=bg;c[Vg+(Ug<<4)+8>>2]=Qf;c[Vg+(Ug<<4)+12>>2]=dg;ch=Ug+1|0;dh=Vg;eh=Wg;fh=Xg;gh=Zg;hh=Yg;ih=_g;jh=$g;kh=ah;lh=bh}else{ch=Kg;dh=Lg;eh=Mg;fh=Ng;gh=Qg;hh=Pg;ih=Og;jh=Rg;kh=Sg;lh=Tg}if((bg|0)<((c[J>>2]|0)+-1|0)){Jf=bg+1|0;If=(c[k>>2]|0)+cg|0;if((ch|0)>=(eh|0)){if((ch|0)>(fh|0)){Of=fh;do{Rf=dh+(Of<<4)|0;Kf=dh+(Of-fh<<4)|0;c[Kf>>2]=c[Rf>>2];c[Kf+4>>2]=c[Rf+4>>2];c[Kf+8>>2]=c[Rf+8>>2];c[Kf+12>>2]=c[Rf+12>>2];Of=Of+1|0}while((Of|0)!=(ch|0))}Of=ch-fh|0;if((Of|0)<(eh|0)){mh=Of;nh=dh;oh=eh;ph=0;qh=hh;rh=gh;sh=ih;th=jh;uh=kh;vh=lh}else{Qf=(eh|0)>0?eh<<1:1;Pf=im(M,gh,Qf<<4)|0;mh=Of;nh=Pf;oh=Qf;ph=0;qh=Pf;rh=Pf;sh=Pf;th=Pf;uh=Pf;vh=Pf}}else{mh=ch;nh=dh;oh=eh;ph=fh;qh=hh;rh=gh;sh=ih;th=jh;uh=kh;vh=lh}c[nh+(mh<<4)>>2]=ag;c[nh+(mh<<4)+4>>2]=Jf;c[nh+(mh<<4)+8>>2]=If;c[nh+(mh<<4)+12>>2]=dg;wh=qh;xh=rh;yh=sh;zh=th;Ah=uh;Bh=vh;Ch=mh+1|0;Dh=nh;Eh=oh;Fh=ph}else{wh=hh;xh=gh;yh=ih;zh=jh;Ah=kh;Bh=lh;Ch=ch;Dh=dh;Eh=eh;Fh=fh}if((Fh|0)==(Ch|0)){Ed=Bh;fg=120;break}else{Sf=wh;Tf=xh;Uf=yh;Vf=zh;Wf=Ah;Xf=Bh;Yf=Ch;Zf=Dh;_f=Eh;$f=Fh}}if((fg|0)==120){jm(M,Ed);return}}function Jj(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+20|0;if((c[e>>2]|0)<=1)return;f=b+16|0;g=b+24|0;b=0;h=c[f>>2]|0;while(1){if((h|0)>1){i=0;j=h;while(1){k=(O(j,b)|0)+i|0;l=c[g>>2]|0;m=c[l+(k<<2)>>2]|0;n=k+1|0;o=c[l+(n<<2)>>2]|0;p=c[l+(k+j<<2)>>2]|0;k=c[l+(n+j<<2)>>2]|0;do if((o|0)!=(p|0)){do if(!((m|0)==(o|0)|(m|0)==(p|0))){if(((a[m+12>>0]|0)==0?(a[o+12>>0]|0)==0:0)?(a[p+12>>0]|0)==0:0)break;_a[c[(c[d>>2]|0)+8>>2]&31](d,c[m+8>>2]|0,c[o+8>>2]|0,c[p+8>>2]|0)}while(0);if(!((k|0)==(o|0)|(k|0)==(p|0))){if(((a[o+12>>0]|0)==0?(a[k+12>>0]|0)==0:0)?(a[p+12>>0]|0)==0:0)break;_a[c[(c[d>>2]|0)+8>>2]&31](d,c[o+8>>2]|0,c[k+8>>2]|0,c[p+8>>2]|0)}}while(0);i=i+1|0;p=c[f>>2]|0;if((i|0)>=(p+-1|0)){q=p;break}else j=p}}else q=h;b=b+1|0;if((b|0)>=((c[e>>2]|0)+-1|0))break;else h=q}return}function Kj(a){a=a|0;var b=0,d=0,e=0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;c[a+12>>2]=0;g[a+16>>2]=1.0;c[a+20>>2]=0;c[a+24>>2]=0;c[a+28>>2]=-1;g[a+32>>2]=0.0;g[a+36>>2]=0.0;b=8716;d=c[b>>2]|0;e=c[b+4>>2]|0;b=a+40|0;c[b>>2]=d;c[b+4>>2]=e;b=a+48|0;c[b>>2]=d;c[b+4>>2]=e;e=a+56|0;c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;c[e+12>>2]=0;g[a+72>>2]=1.0;c[a+76>>2]=0;return}function Lj(a){a=a|0;var b=0,d=0,e=0,f=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.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;b=a+28|0;d=c[a>>2]|0;e=c[d+4>>2]|0;if((c[b>>2]|0)==(e|0))return;f=+g[d+32>>2]*.75;h=f*(+g[d+320>>2]*f);i=a+32|0;g[i>>2]=0.0;j=a+40|0;k=a+44|0;l=a+48|0;m=a+52|0;c[j>>2]=0;c[j+4>>2]=0;c[j+8>>2]=0;c[j+12>>2]=0;n=c[a+4>>2]|0;o=c[a+8>>2]|0;p=(n|0)<(o|0);if(p){q=c[d+96>>2]|0;r=c[d+104>>2]|0;s=n;f=0.0;t=0.0;u=0.0;v=0.0;w=0.0;do{f=h+f;x=h*+g[q+(s<<3)+4>>2];t=h*+g[q+(s<<3)>>2]+t;g[j>>2]=t;u=x+u;g[k>>2]=u;x=h*+g[r+(s<<3)+4>>2];v=h*+g[r+(s<<3)>>2]+v;g[l>>2]=v;w=x+w;g[m>>2]=w;s=s+1|0}while((s|0)<(o|0));g[i>>2]=f;if(f>0.0){x=1.0/f;f=x*t;g[j>>2]=f;y=x*u;g[k>>2]=y;z=v*x;g[l>>2]=z;A=x*w;g[m>>2]=A;B=f;C=y;D=z;E=A}else{B=t;C=u;D=v;E=w}m=a+36|0;g[m>>2]=0.0;l=a+56|0;g[l>>2]=0.0;if(p){p=c[d+96>>2]|0;k=c[d+104>>2]|0;d=n;w=0.0;v=0.0;do{u=+g[p+(d<<3)>>2]-B;t=+g[p+(d<<3)+4>>2]-C;w=h*(u*u+t*t)+w;v=v+h*(u*(+g[k+(d<<3)+4>>2]-E)-t*(+g[k+(d<<3)>>2]-D));d=d+1|0}while((d|0)<(o|0));g[m>>2]=w;g[l>>2]=v;if(w>0.0)g[l>>2]=1.0/w*v}}else{g[a+36>>2]=0.0;g[a+56>>2]=0.0}c[b>>2]=e;return}function Mj(a,b){a=a|0;b=b|0;Il(c[a>>2]|0,c[a+4>>2]|0,c[a+8>>2]|0,b);return}function Nj(a,b){a=a|0;b=b|0;Jl(c[a>>2]|0,c[a+4>>2]|0,c[a+8>>2]|0,b);return}function Oj(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=c[a>>2]|0;if(c[(c[d+400>>2]|0)+102876>>2]&2|0)return;e=c[a+4>>2]|0;f=a+8|0;if((e|0)>=(c[f>>2]|0))return;_j(d,e,b);d=e+1|0;if((d|0)<(c[f>>2]|0))g=d;else return;do{_j(c[a>>2]|0,g,b);g=g+1|0}while((g|0)<(c[f>>2]|0));return}function Pj(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.0,p=0;f=b+52|0;c[b+56>>2]=f;c[f>>2]=f;c[b+60>>2]=256;f=b+64|0;c[b+68>>2]=f;c[f>>2]=f;f=b+72|0;c[b+76>>2]=f;c[f>>2]=f;f=b+80|0;c[b+136>>2]=0;c[b+140>>2]=0;c[b+148>>2]=0;c[b+152>>2]=0;h=b+196|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;f=b+160|0;i=f+36|0;do{c[f>>2]=0;f=f+4|0}while((f|0)<(i|0));c[h>>2]=e;c[b+200>>2]=0;c[b+204>>2]=0;c[b+208>>2]=0;c[b+212>>2]=e;c[b+216>>2]=0;c[b+220>>2]=0;c[b+224>>2]=0;c[b+228>>2]=e;c[b+232>>2]=0;c[b+236>>2]=0;c[b+240>>2]=0;c[b+244>>2]=e;c[b+248>>2]=0;c[b+252>>2]=0;c[b+256>>2]=0;c[b+260>>2]=e;c[b+264>>2]=0;c[b+268>>2]=0;c[b+272>>2]=0;c[b+276>>2]=e;h=b+280|0;j=b+316|0;a[j>>0]=0;k=b+320|0;c[h>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;c[h+12>>2]=0;g[k>>2]=1.0;l=b+324|0;g[l>>2]=1.0;g[b+328>>2]=1.0;m=b+332|0;c[m>>2]=0;g[b+336>>2]=.05000000074505806;g[b+340>>2]=1.0;g[b+344>>2]=.25;g[b+348>>2]=.25;g[b+352>>2]=.25;g[b+356>>2]=.20000000298023224;g[b+360>>2]=.20000000298023224;g[b+364>>2]=1.0;g[b+368>>2]=.5;g[b+372>>2]=.5;g[b+376>>2]=.20000000298023224;g[b+380>>2]=.20000000298023224;c[b+384>>2]=8;g[b+388>>2]=.5;n=b+392|0;a[n>>0]=1;g[b+396>>2]=.01666666753590107;a[b>>0]=0;c[b+4>>2]=0;c[b+8>>2]=0;a[b+12>>0]=0;c[b+16>>2]=0;a[b+20>>0]=0;a[b+21>>0]=0;c[b+24>>2]=0;a[j>>0]=a[d>>0]|0;o=+g[d+4>>2];g[k>>2]=o;g[b+28>>2]=1.0/o;c[l>>2]=c[d+8>>2];o=+g[d+12>>2]*2.0;g[b+32>>2]=o;g[b+40>>2]=o*o;g[b+36>>2]=1.0/o;c[m>>2]=c[d+16>>2];c[b+44>>2]=0;m=b+48|0;c[m>>2]=0;l=b+112|0;c[b+144>>2]=0;c[b+308>>2]=0;c[b+312>>2]=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;f=j;j=d;i=f+84|0;do{c[f>>2]=c[j>>2];f=f+4|0;j=j+4|0}while((f|0)<(i|0));j=b+400|0;c[j>>2]=e;c[b+156>>2]=0;e=b+296|0;c[e>>2]=0;c[e+4>>2]=0;a[b+304>>0]=0;e=a[n>>0]|0;if(!(e<<24>>24)){a[n>>0]=e;return}f=c[h>>2]|0;if(!f){Qj(b,256);b=Pl(c[j>>2]|0,c[m>>2]<<2)|0;Nn(b|0,0,c[m>>2]<<2|0)|0;p=b}else p=f;c[h>>2]=p;a[n>>0]=e;return}function Qj(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0;d=c[a+332>>2]|0;e=(d|0)!=0&(d|0)<(b|0)?d:b;b=a+92|0;d=c[b>>2]|0;f=(d|0)!=0&(e|0)>(d|0)?d:e;e=a+100|0;g=c[e>>2]|0;h=(g|0)!=0&(f|0)>(g|0)?g:f;f=a+108|0;g=c[f>>2]|0;i=(g|0)!=0&(h|0)>(g|0)?g:h;h=a+140|0;g=c[h>>2]|0;j=(g|0)!=0&(i|0)>(g|0)?g:i;i=a+152|0;g=c[i>>2]|0;k=(g|0)!=0&(j|0)>(g|0)?g:j;j=a+48|0;g=c[j>>2]|0;if((g|0)>=(k|0))return;l=a+80|0;m=c[l>>2]|0;if((m|0)==0|(c[a+84>>2]|0)!=0){n=m;o=g;p=d}else{d=a+400|0;q=Pl(c[d>>2]|0,k<<2)|0;r=g<<2;Qn(q|0,m|0,r|0)|0;Ql(c[d>>2]|0,m,r);n=q;o=c[j>>2]|0;p=c[b>>2]|0}c[l>>2]=n;c[a+60>>2]=k-o;n=a+88|0;l=c[n>>2]|0;if(!p){p=a+400|0;b=Pl(c[p>>2]|0,k<<2)|0;q=o<<2;if(!l)s=b;else{Qn(b|0,l|0,q|0)|0;Ql(c[p>>2]|0,l,q);s=b}}else s=l;c[n>>2]=s;s=(c[a+156>>2]|0)>0;n=a+160|0;l=c[n>>2]|0;b=(l|0)==0;if(!((c[a+164>>2]|0)!=0|s&b)){q=c[j>>2]|0;p=a+400|0;o=Pl(c[p>>2]|0,k<<2)|0;r=q<<2;if(b)t=o;else{Qn(o|0,l|0,r|0)|0;Ql(c[p>>2]|0,l,r);t=o}}else t=l;c[n>>2]=t;t=a+168|0;n=c[t>>2]|0;l=(n|0)==0;if(!((c[a+172>>2]|0)!=0|s&l)){o=c[j>>2]|0;r=a+400|0;p=Pl(c[r>>2]|0,k<<2)|0;b=o<<2;if(l)u=p;else{Qn(p|0,n|0,b|0)|0;Ql(c[r>>2]|0,n,b);u=p}}else u=n;c[t>>2]=u;u=a+176|0;t=c[u>>2]|0;n=(t|0)==0;if(!((c[a+180>>2]|0)!=0|s&n)){s=c[j>>2]|0;p=a+400|0;b=Pl(c[p>>2]|0,k<<2)|0;r=s<<2;if(n)v=b;else{Qn(b|0,t|0,r|0)|0;Ql(c[p>>2]|0,t,r);v=b}}else v=t;c[u>>2]=v;v=a+96|0;u=c[v>>2]|0;if(!(c[e>>2]|0)){e=c[j>>2]|0;t=a+400|0;b=Pl(c[t>>2]|0,k<<3)|0;r=e<<3;if(!u)w=b;else{Qn(b|0,u|0,r|0)|0;Ql(c[t>>2]|0,u,r);w=b}}else w=u;c[v>>2]=w;w=a+104|0;v=c[w>>2]|0;if(!(c[f>>2]|0)){f=c[j>>2]|0;u=a+400|0;b=k<<3;r=Pl(c[u>>2]|0,b)|0;t=f<<3;if(!v){x=r;y=b;z=u}else{Qn(r|0,v|0,t|0)|0;Ql(c[u>>2]|0,v,t);x=r;y=b;z=u}}else{x=v;y=k<<3;z=a+400|0}c[w>>2]=x;x=a+112|0;w=c[x>>2]|0;v=c[j>>2]|0;u=Pl(c[z>>2]|0,y)|0;b=v<<3;if(w|0){Qn(u|0,w|0,b|0)|0;Ql(c[z>>2]|0,w,b)}c[x>>2]=u;u=a+116|0;x=c[u>>2]|0;b=c[j>>2]|0;w=k<<2;v=Pl(c[z>>2]|0,w)|0;r=b<<2;if(x|0){Qn(v|0,x|0,r|0)|0;Ql(c[z>>2]|0,x,r)}c[u>>2]=v;v=a+120|0;u=c[v>>2]|0;if(!u)A=0;else{r=c[j>>2]|0;x=Pl(c[z>>2]|0,w)|0;b=r<<2;Qn(x|0,u|0,b|0)|0;Ql(c[z>>2]|0,u,b);A=x}c[v>>2]=A;A=a+124|0;v=c[A>>2]|0;x=c[j>>2]|0;b=Pl(c[z>>2]|0,w)|0;u=x<<2;if(v|0){Qn(b|0,v|0,u|0)|0;Ql(c[z>>2]|0,v,u)}c[A>>2]=b;b=a+128|0;A=c[b>>2]|0;if(!A)B=0;else{u=c[j>>2]|0;v=Pl(c[z>>2]|0,y)|0;y=u<<3;Qn(v|0,A|0,y|0)|0;Ql(c[z>>2]|0,A,y);B=v}c[b>>2]=B;B=a+132|0;b=c[B>>2]|0;if(!b)C=0;else{v=c[j>>2]|0;y=Pl(c[z>>2]|0,w)|0;A=v<<2;Qn(y|0,b|0,A|0)|0;Ql(c[z>>2]|0,b,A);C=y}c[B>>2]=C;C=a+136|0;B=c[C>>2]|0;if((B|0)==0|(c[h>>2]|0)!=0)D=B;else{h=c[j>>2]|0;y=Pl(c[z>>2]|0,w)|0;A=h<<2;Qn(y|0,B|0,A|0)|0;Ql(c[z>>2]|0,B,A);D=y}c[C>>2]=D;D=a+144|0;C=c[D>>2]|0;y=c[j>>2]|0;A=Pl(c[z>>2]|0,w)|0;B=y<<2;if(C|0){Qn(A|0,C|0,B|0)|0;Ql(c[z>>2]|0,C,B)}c[D>>2]=A;A=a+148|0;D=c[A>>2]|0;if((D|0)==0|(c[i>>2]|0)!=0)E=D;else{i=c[j>>2]|0;B=Pl(c[z>>2]|0,w)|0;C=i<<2;Qn(B|0,D|0,C|0)|0;Ql(c[z>>2]|0,D,C);E=B}c[A>>2]=E;E=a+280|0;A=c[E>>2]|0;if((A|0)==0|(c[a+284>>2]|0)!=0)F=A;else{B=c[j>>2]|0;C=Pl(c[z>>2]|0,w)|0;D=B<<2;Qn(C|0,A|0,D|0)|0;Ql(c[z>>2]|0,A,D);F=C}c[E>>2]=F;F=a+288|0;E=c[F>>2]|0;if((E|0)==0|(c[a+292>>2]|0)!=0)G=E;else{a=c[j>>2]|0;C=Pl(c[z>>2]|0,w)|0;w=a<<2;Qn(C|0,E|0,w|0)|0;Ql(c[z>>2]|0,E,w);G=C}c[F>>2]=G;c[j>>2]=k;return}function Rj(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;b=a+4|0;d=c[b>>2]|0;if((d|0)!=(a|0)){e=d;do{d=bm(e)|0;f=c[d>>2]|0;if(f|0){g=d+32|0;h=0;while(1){i=g+4|0;j=c[g>>2]|0;c[j+4>>2]=c[i>>2];c[c[i>>2]>>2]=j;c[i>>2]=g;c[g>>2]=g;h=h+1|0;if((h|0)==(f|0))break;else g=g+12|0}}dm(a,d);e=c[b>>2]|0}while((e|0)!=(a|0))}e=a+12|0;g=a+20|0;f=a+24|0;h=c[g>>2]|0;c[h+4>>2]=c[f>>2];c[c[f>>2]>>2]=h;c[f>>2]=g;c[g>>2]=g;g=a+16|0;f=c[e>>2]|0;c[f+4>>2]=c[g>>2];c[c[g>>2]>>2]=f;c[g>>2]=e;c[e>>2]=e;em(a);e=c[a>>2]|0;c[e+4>>2]=c[b>>2];c[c[b>>2]>>2]=e;c[b>>2]=a;c[a>>2]=a;return}function Sj(a){a=a|0;var b=0,d=0,e=0,f=0;b=a+312|0;while(1){d=c[b>>2]|0;if(!d)break;Tj(a,d)}if((c[a+84>>2]|0)==0?(b=a+80|0,d=c[b>>2]|0,d|0):0){Ql(c[a+400>>2]|0,d,c[a+48>>2]<<2);c[b>>2]=0}if((c[a+92>>2]|0)==0?(b=a+88|0,d=c[b>>2]|0,d|0):0){Ql(c[a+400>>2]|0,d,c[a+48>>2]<<2);c[b>>2]=0}if((c[a+164>>2]|0)==0?(b=a+160|0,d=c[b>>2]|0,d|0):0){Ql(c[a+400>>2]|0,d,c[a+48>>2]<<2);c[b>>2]=0}if((c[a+172>>2]|0)==0?(b=a+168|0,d=c[b>>2]|0,d|0):0){Ql(c[a+400>>2]|0,d,c[a+48>>2]<<2);c[b>>2]=0}if((c[a+180>>2]|0)==0?(b=a+176|0,d=c[b>>2]|0,d|0):0){Ql(c[a+400>>2]|0,d,c[a+48>>2]<<2);c[b>>2]=0}if((c[a+100>>2]|0)==0?(b=a+96|0,d=c[b>>2]|0,d|0):0){Ql(c[a+400>>2]|0,d,c[a+48>>2]<<3);c[b>>2]=0}if((c[a+108>>2]|0)==0?(b=a+104|0,d=c[b>>2]|0,d|0):0){Ql(c[a+400>>2]|0,d,c[a+48>>2]<<3);c[b>>2]=0}if((c[a+140>>2]|0)==0?(b=a+136|0,d=c[b>>2]|0,d|0):0){Ql(c[a+400>>2]|0,d,c[a+48>>2]<<2);c[b>>2]=0}if((c[a+152>>2]|0)==0?(b=a+148|0,d=c[b>>2]|0,d|0):0){Ql(c[a+400>>2]|0,d,c[a+48>>2]<<2);c[b>>2]=0}if((c[a+284>>2]|0)==0?(b=a+280|0,d=c[b>>2]|0,d|0):0){Ql(c[a+400>>2]|0,d,c[a+48>>2]<<2);c[b>>2]=0}if((c[a+292>>2]|0)==0?(b=a+288|0,d=c[b>>2]|0,d|0):0){Ql(c[a+400>>2]|0,d,c[a+48>>2]<<2);c[b>>2]=0}b=a+112|0;d=a+48|0;e=c[b>>2]|0;if(e|0){Ql(c[a+400>>2]|0,e,c[d>>2]<<3);c[b>>2]=0}b=a+116|0;e=c[b>>2]|0;if(e|0){Ql(c[a+400>>2]|0,e,c[d>>2]<<2);c[b>>2]=0}b=a+120|0;e=c[b>>2]|0;if(e|0){Ql(c[a+400>>2]|0,e,c[d>>2]<<2);c[b>>2]=0}b=a+124|0;e=c[b>>2]|0;if(e|0){Ql(c[a+400>>2]|0,e,c[d>>2]<<2);c[b>>2]=0}b=a+128|0;e=c[b>>2]|0;if(e|0){Ql(c[a+400>>2]|0,e,c[d>>2]<<3);c[b>>2]=0}b=a+132|0;e=c[b>>2]|0;if(e|0){Ql(c[a+400>>2]|0,e,c[d>>2]<<2);c[b>>2]=0}b=a+144|0;e=c[b>>2]|0;if(e|0){Ql(c[a+400>>2]|0,e,c[d>>2]<<2);c[b>>2]=0}b=a+264|0;d=c[b>>2]|0;if(d|0){e=a+272|0;Ql(c[a+276>>2]|0,d,(c[e>>2]|0)*60|0);c[b>>2]=0;c[e>>2]=0;c[a+268>>2]=0}e=a+248|0;b=c[e>>2]|0;if(b|0){d=a+256|0;Ql(c[a+260>>2]|0,b,(c[d>>2]|0)*20|0);c[e>>2]=0;c[d>>2]=0;c[a+252>>2]=0}d=a+232|0;e=c[d>>2]|0;if(e|0){b=a+240|0;Ql(c[a+244>>2]|0,e,(c[b>>2]|0)*28|0);c[d>>2]=0;c[b>>2]=0;c[a+236>>2]=0}b=a+216|0;d=c[b>>2]|0;if(d|0){e=a+224|0;Ql(c[a+228>>2]|0,d,(c[e>>2]|0)*24|0);c[b>>2]=0;c[e>>2]=0;c[a+220>>2]=0}e=a+200|0;b=c[e>>2]|0;if(b|0){d=a+208|0;Ql(c[a+212>>2]|0,b,c[d>>2]<<3);c[e>>2]=0;c[d>>2]=0;c[a+204>>2]=0}d=a+184|0;e=c[d>>2]|0;if(!e){f=a+52|0;Rj(f);return}b=a+192|0;Ql(c[a+196>>2]|0,e,c[b>>2]<<2);c[d>>2]=0;c[b>>2]=0;c[a+188>>2]=0;f=a+52|0;Rj(f);return}function Tj(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+400|0;f=c[(c[e>>2]|0)+102992>>2]|0;if(f|0)Ra[c[(c[f>>2]|0)+16>>2]&63](f,d);f=d+12|0;g=c[f>>2]|0;h=g<<4;i=h&16;if(((h|-17)^16)&g|0)a[b+20>>0]=1;g=b+16|0;h=c[g>>2]|0;if(i&~h|0)c[g>>2]=h|i;c[f>>2]=i;i=c[d+4>>2]|0;f=c[d+8>>2]|0;if((i|0)<(f|0)){h=b+144|0;g=i;do{c[(c[h>>2]|0)+(g<<2)>>2]=0;g=g+1|0}while((g|0)<(f|0))}f=c[d+20>>2]|0;g=d+24|0;if(f|0)c[f+24>>2]=c[g>>2];h=c[g>>2]|0;if(h|0)c[h+20>>2]=f;f=b+312|0;if((c[f>>2]|0)!=(d|0)){j=b+308|0;k=c[j>>2]|0;l=k+-1|0;c[j>>2]=l;m=c[e>>2]|0;Ql(m,d,80);return}c[f>>2]=h;j=b+308|0;k=c[j>>2]|0;l=k+-1|0;c[j>>2]=l;m=c[e>>2]|0;Ql(m,d,80);return}function Uj(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;b=a+136|0;d=c[b>>2]|0;if(d|0){e=d;c[b>>2]=e;return e|0}d=a+48|0;f=c[d>>2]|0;if(!f){Qj(a,256);g=c[d>>2]|0}else g=f;f=Pl(c[a+400>>2]|0,g<<2)|0;Nn(f|0,0,c[d>>2]<<2|0)|0;e=f;c[b>>2]=e;return e|0}function Vj(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.0,y=0.0;e=b+400|0;if(c[(c[e>>2]|0)+102876>>2]&2|0){f=0;return f|0}h=b+44|0;i=c[h>>2]|0;j=b+48|0;k=c[j>>2]|0;if((i|0)<(k|0)){l=i;m=k}else{Qj(b,(i|0)==0?256:i<<1);l=c[h>>2]|0;m=c[j>>2]|0}do if((l|0)>=(m|0))if(!(a[b+392>>0]|0)){f=-1;return f|0}else{i=c[b+288>>2]|0;k=c[i+(l+-1<<2)>>2]|0;n=(c[(c[b+280>>2]|0)+(k<<2)>>2]|0)>0?k:c[i>>2]|0;i=b+88|0;Wj(b,n,c[(c[i>>2]|0)+(n<<2)>>2]|2);Xj(b);o=i;p=c[h>>2]|0;break}else{o=b+88|0;p=l}while(0);l=p+1|0;c[h>>2]=l;c[(c[o>>2]|0)+(p<<2)>>2]=0;o=c[b+160>>2]|0;if(o|0)c[o+(p<<2)>>2]=0;o=c[b+168>>2]|0;if(o|0)c[o+(p<<2)>>2]=0;o=c[b+176>>2]|0;if(o|0)c[o+(p<<2)>>2]=0;o=d+4|0;h=c[o+4>>2]|0;m=(c[b+96>>2]|0)+(p<<3)|0;c[m>>2]=c[o>>2];c[m+4>>2]=h;h=d+12|0;m=c[h+4>>2]|0;o=(c[b+104>>2]|0)+(p<<3)|0;c[o>>2]=c[h>>2];c[o+4>>2]=m;g[(c[b+116>>2]|0)+(p<<2)>>2]=0.0;m=8716;o=c[m+4>>2]|0;h=(c[b+112>>2]|0)+(p<<3)|0;c[h>>2]=c[m>>2];c[h+4>>2]=o;o=c[b+120>>2]|0;if(o|0)g[o+(p<<2)>>2]=0.0;o=c[b+132>>2]|0;if(o|0)g[o+(p<<2)>>2]=0.0;o=b+136|0;h=c[o>>2]|0;m=d+20|0;do if(!h){if((((a[m>>0]|0)==0?(a[d+21>>0]|0)==0:0)?(a[d+22>>0]|0)==0:0)?(a[d+23>>0]|0)==0:0)break;i=c[j>>2]|0;if(!i){Qj(b,256);q=c[j>>2]|0}else q=i;i=Pl(c[e>>2]|0,q<<2)|0;Nn(i|0,0,c[j>>2]<<2|0)|0;r=i;s=26}else{r=h;s=26}while(0);if((s|0)==26){c[o>>2]=r;o=a[d+21>>0]|0;h=a[d+22>>0]|0;q=a[d+23>>0]|0;a[r+(p<<2)>>0]=a[m>>0]|0;a[r+(p<<2)+1>>0]=o;a[r+(p<<2)+2>>0]=h;a[r+(p<<2)+3>>0]=q}q=b+148|0;r=c[q>>2]|0;h=d+28|0;if(!r){if(c[h>>2]|0){o=c[j>>2]|0;if(!o){Qj(b,256);t=c[j>>2]|0}else t=o;o=Pl(c[e>>2]|0,t<<2)|0;Nn(o|0,0,c[j>>2]<<2|0)|0;u=o;s=32}}else{u=r;s=32}if((s|0)==32){c[q>>2]=u;c[u+(p<<2)>>2]=c[h>>2]}h=c[b+80>>2]|0;if(h|0)c[h+(p<<2)>>2]=0;h=b+200|0;u=b+204|0;q=c[u>>2]|0;s=b+208|0;r=c[s>>2]|0;if((q|0)>=(r|0)?(o=(r|0)==0?256:r<<1,(r|0)<(o|0)):0){r=b+212|0;j=Pl(c[r>>2]|0,o<<3)|0;t=c[h>>2]|0;if(!t)v=h;else{Qn(j|0,t|0,c[u>>2]<<3|0)|0;Ql(c[r>>2]|0,c[h>>2]|0,c[s>>2]<<3);v=h}c[s>>2]=o;c[v>>2]=j;w=c[u>>2]|0}else w=q;q=c[h>>2]|0;c[u>>2]=w+1;x=+g[d+24>>2];u=x>0.0;if(u|(c[b+280>>2]|0)!=0){if(u)y=x;else{u=c[b+296+4>>2]|0;y=+g[b+396>>2]*+(0-(((u|0)<0?u:0)+u)|0)}Yj(b,p,y);c[(c[b+288>>2]|0)+(p<<2)>>2]=p}c[q+(w<<3)>>2]=p;w=c[d+32>>2]|0;c[(c[b+144>>2]|0)+(p<<2)>>2]=w;if(w|0){q=w+4|0;u=c[q>>2]|0;h=w+8|0;w=c[h>>2]|0;if((u|0)<(w|0))Zj(b,u,w,p);else c[q>>2]=p;c[h>>2]=l}Wj(b,p,c[d>>2]|0);f=p;return f|0}function Wj(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;f=(c[b+88>>2]|0)+(d<<2)|0;if(c[f>>2]&~e|0)a[b+12>>0]=1;d=b+8|0;if(!(~c[d>>2]&e)){c[f>>2]=e;return}if(e&128|0){g=b+128|0;h=c[g>>2]|0;if(!h){i=b+48|0;j=c[i>>2]|0;if(!j){Qj(b,256);k=c[i>>2]|0}else k=j;j=Pl(c[b+400>>2]|0,k<<3)|0;Nn(j|0,0,c[i>>2]<<3|0)|0;l=j}else l=h;c[g>>2]=l}if(e&256|0){l=b+136|0;g=c[l>>2]|0;if(!g){h=b+48|0;j=c[h>>2]|0;if(!j){Qj(b,256);m=c[h>>2]|0}else m=j;j=Pl(c[b+400>>2]|0,m<<2)|0;Nn(j|0,0,c[h>>2]<<2|0)|0;n=j}else n=g;c[l>>2]=n}c[d>>2]=c[d>>2]|e;c[f>>2]=e;return}function Xj(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,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;d=b+400|0;e=b+44|0;f=hm((c[d>>2]|0)+76|0,c[e>>2]<<2)|0;if((c[e>>2]|0)>0){g=b+88|0;h=b+80|0;i=b+160|0;j=b+168|0;k=b+176|0;l=b+96|0;m=b+104|0;n=b+144|0;o=b+21|0;p=b+120|0;q=b+132|0;r=b+136|0;s=b+148|0;t=b+280|0;u=b+112|0;v=b+64|0;w=0;x=0;y=0;while(1){z=c[g>>2]|0;A=c[z+(x<<2)>>2]|0;if(!(A&2)){c[f+(x<<2)>>2]=y;if((x|0)!=(y|0)){B=c[h>>2]|0;if(!B)C=z;else{z=c[B+(x<<2)>>2]|0;if(z|0)c[z+8>>2]=y;c[B+(y<<2)>>2]=z;C=c[g>>2]|0}c[C+(y<<2)>>2]=c[C+(x<<2)>>2];z=c[i>>2]|0;if(z|0)c[z+(y<<2)>>2]=c[z+(x<<2)>>2];z=c[j>>2]|0;if(z|0)c[z+(y<<2)>>2]=c[z+(x<<2)>>2];z=c[k>>2]|0;if(z|0)c[z+(y<<2)>>2]=c[z+(x<<2)>>2];z=c[l>>2]|0;B=z+(x<<3)|0;D=c[B+4>>2]|0;E=z+(y<<3)|0;c[E>>2]=c[B>>2];c[E+4>>2]=D;D=c[m>>2]|0;E=D+(x<<3)|0;B=c[E+4>>2]|0;z=D+(y<<3)|0;c[z>>2]=c[E>>2];c[z+4>>2]=B;B=c[n>>2]|0;c[B+(y<<2)>>2]=c[B+(x<<2)>>2];if(a[o>>0]|0){B=c[u>>2]|0;z=B+(x<<3)|0;E=c[z+4>>2]|0;D=B+(y<<3)|0;c[D>>2]=c[z>>2];c[D+4>>2]=E}E=c[p>>2]|0;if(E|0)c[E+(y<<2)>>2]=c[E+(x<<2)>>2];E=c[q>>2]|0;if(E|0)c[E+(y<<2)>>2]=c[E+(x<<2)>>2];E=c[r>>2]|0;if(E|0){D=a[E+(x<<2)+1>>0]|0;z=a[E+(x<<2)+2>>0]|0;B=a[E+(x<<2)+3>>0]|0;a[E+(y<<2)>>0]=a[E+(x<<2)>>0]|0;a[E+(y<<2)+1>>0]=D;a[E+(y<<2)+2>>0]=z;a[E+(y<<2)+3>>0]=B}B=c[s>>2]|0;if(B|0)c[B+(y<<2)>>2]=c[B+(x<<2)>>2];B=c[t>>2]|0;if(B|0)c[B+(y<<2)>>2]=c[B+(x<<2)>>2]}F=y+1|0;G=A|w}else{B=c[(c[d>>2]|0)+102992>>2]|0;if((A&512|0)!=0&(B|0)!=0)Ta[c[(c[B>>2]|0)+20>>2]&7](B,b,x);B=c[h>>2]|0;if(B|0?(A=B+(x<<2)|0,B=c[A>>2]|0,B|0):0){c[B+8>>2]=-1;c[A>>2]=0;Ml(v,B)}c[f+(x<<2)>>2]=-1;F=y;G=w}x=x+1|0;if((x|0)>=(c[e>>2]|0)){H=F;I=G;break}else{w=G;y=F}}}else{H=0;I=0}F=b+200|0;y=b+204|0;G=c[y>>2]|0;w=c[F>>2]|0;x=w;if((G|0)>0){v=0;do{h=w+(v<<3)|0;c[h>>2]=c[f+(c[h>>2]<<2)>>2];v=v+1|0}while((v|0)<(G|0))}v=w+(G<<3)|0;a:do if(!G){J=w;K=39}else{h=w;while(1){if((c[h>>2]|0)<0){J=h;K=39;break a}h=h+8|0;if((h|0)==(v|0)){L=v;M=x;break}}}while(0);if((K|0)==39)if((J|0)==(v|0)){L=v;M=x}else{x=J;w=J;b:while(1){J=x;do{J=J+8|0;if((J|0)==(v|0))break b}while((c[J>>2]|0)<0);G=J;h=c[G+4>>2]|0;t=w;c[t>>2]=c[G>>2];c[t+4>>2]=h;x=J;w=w+8|0}L=w;M=c[F>>2]|0}c[y>>2]=L-M>>3;M=b+216|0;L=b+220|0;y=c[L>>2]|0;F=c[M>>2]|0;if((y|0)>0){w=0;do{x=F+(w*24|0)|0;v=F+(w*24|0)+4|0;h=c[f+(c[v>>2]<<2)>>2]|0;c[x>>2]=c[f+(c[x>>2]<<2)>>2];c[v>>2]=h;w=w+1|0}while((w|0)<(y|0))}w=F+(y*24|0)|0;c:do if(!y){N=F;K=51}else{h=F;while(1){if((c[h>>2]|0)<0){N=h;K=51;break c}if((c[h+4>>2]|0)<0){N=h;K=51;break c}h=h+24|0;if((h|0)==(w|0)){O=w;break}}}while(0);d:do if((K|0)==51)if((N|0)!=(w|0)){F=N+24|0;if((F|0)==(w|0))O=N;else{y=N;h=N;J=F;while(1){F=y;v=J;while(1){if((c[v>>2]|0)>=0?(c[F+28>>2]|0)>=0:0)break;x=v+24|0;if((x|0)==(w|0)){O=h;break d}else{t=v;v=x;F=t}}c[h>>2]=c[v>>2];c[h+4>>2]=c[v+4>>2];c[h+8>>2]=c[v+8>>2];c[h+12>>2]=c[v+12>>2];c[h+16>>2]=c[v+16>>2];c[h+20>>2]=c[v+20>>2];F=h+24|0;J=v+24|0;if((J|0)==(w|0)){O=F;break}else{y=v;h=F}}}}else O=w;while(0);c[L>>2]=(O-(c[M>>2]|0)|0)/24|0;M=b+232|0;O=b+236|0;L=c[O>>2]|0;w=c[M>>2]|0;N=w;if((L|0)>0){h=0;do{y=w+(h*28|0)|0;c[y>>2]=c[f+(c[y>>2]<<2)>>2];h=h+1|0}while((h|0)<(L|0))}h=w+(L*28|0)|0;e:do if(!L){P=w;K=63}else{y=w;while(1){if((c[y>>2]|0)<0){P=y;K=63;break e}y=y+28|0;if((y|0)==(h|0)){Q=h;R=N;break}}}while(0);if((K|0)==63)if((P|0)==(h|0)){Q=h;R=N}else{N=P;w=P;f:while(1){P=N;do{P=P+28|0;if((P|0)==(h|0))break f}while((c[P>>2]|0)<0);c[w>>2]=c[P>>2];c[w+4>>2]=c[P+4>>2];c[w+8>>2]=c[P+8>>2];c[w+12>>2]=c[P+12>>2];c[w+16>>2]=c[P+16>>2];c[w+20>>2]=c[P+20>>2];c[w+24>>2]=c[P+24>>2];N=P;w=w+28|0}Q=w;R=c[M>>2]|0}c[O>>2]=(Q-R|0)/28|0;R=b+248|0;Q=b+252|0;O=c[Q>>2]|0;M=c[R>>2]|0;w=M;if((O|0)>0){N=0;do{h=M+(N*20|0)|0;c[h>>2]=c[f+(c[h>>2]<<2)>>2];h=M+(N*20|0)+4|0;c[h>>2]=c[f+(c[h>>2]<<2)>>2];N=N+1|0}while((N|0)<(O|0))}N=M+(O*20|0)|0;g:do if(!O){S=M;K=74}else{h=M;while(1){if((c[h+4>>2]|c[h>>2]|0)<0){S=h;K=74;break g}h=h+20|0;if((h|0)==(N|0)){T=N;U=w;break}}}while(0);if((K|0)==74)if((S|0)==(N|0)){T=N;U=w}else{w=S;M=S;h:while(1){S=w;do{O=S;S=S+20|0;if((S|0)==(N|0))break h}while((c[O+24>>2]|c[S>>2]|0)<0);c[M>>2]=c[S>>2];c[M+4>>2]=c[S+4>>2];c[M+8>>2]=c[S+8>>2];c[M+12>>2]=c[S+12>>2];c[M+16>>2]=c[S+16>>2];w=S;M=M+20|0}T=M;U=c[R>>2]|0}c[Q>>2]=(T-U|0)/20|0;U=b+264|0;T=b+268|0;Q=c[T>>2]|0;R=c[U>>2]|0;if((Q|0)>0){M=0;do{w=R+(M*60|0)|0;c[w>>2]=c[f+(c[w>>2]<<2)>>2];w=R+(M*60|0)+4|0;c[w>>2]=c[f+(c[w>>2]<<2)>>2];w=R+(M*60|0)+8|0;c[w>>2]=c[f+(c[w>>2]<<2)>>2];M=M+1|0}while((M|0)<(Q|0))}M=R+(Q*60|0)|0;i:do if(!Q){V=R;K=87}else{w=R;while(1){if((c[w>>2]|0)<0){V=w;K=87;break i}if((c[w+4>>2]|0)<0){V=w;K=87;break i}if((c[w+8>>2]|0)<0){V=w;K=87;break i}w=w+60|0;if((w|0)==(M|0)){W=M;break}}}while(0);j:do if((K|0)==87)if((V|0)!=(M|0)){R=V+60|0;if((R|0)==(M|0))W=V;else{Q=V;w=V;S=R;while(1){R=Q;N=S;while(1){if(((c[N>>2]|0)>=0?(c[R+64>>2]|0)>=0:0)?(c[R+68>>2]|0)>=0:0)break;O=N+60|0;if((O|0)==(M|0)){W=w;break j}else{h=N;N=O;R=h}}R=w;v=N;h=R+60|0;do{c[R>>2]=c[v>>2];R=R+4|0;v=v+4|0}while((R|0)<(h|0));v=w+60|0;S=N+60|0;if((S|0)==(M|0)){W=v;break}else{Q=N;w=v}}}}else W=M;while(0);c[T>>2]=(W-(c[U>>2]|0)|0)/60|0;U=c[b+288>>2]|0;if(U|0?(W=c[e>>2]|0,(W|0)>0):0){T=0;M=0;V=W;while(1){W=c[f+(c[U+(T<<2)>>2]<<2)>>2]|0;if((W|0)==-1){X=M;Y=V}else{c[U+(M<<2)>>2]=W;X=M+1|0;Y=c[e>>2]|0}T=T+1|0;if((T|0)>=(Y|0))break;else{M=X;V=Y}}}Y=b+312|0;V=c[Y>>2]|0;if(V|0){X=b+16|0;M=b+132|0;T=b+48|0;U=b+20|0;W=V;do{V=W+4|0;K=c[V>>2]|0;w=W+8|0;Q=c[w>>2]|0;if((K|0)<(Q|0)){S=K;K=0;v=0;R=H;while(1){h=c[f+(S<<2)>>2]|0;O=(h|0)>-1;P=h+1|0;L=O?((R|0)<(h|0)?R:h):R;h=O?((v|0)>(P|0)?v:P):v;P=K|O^1;S=S+1|0;if((S|0)>=(Q|0)){Z=P;_=h;$=L;break}else{K=P;v=h;R=L}}}else{Z=0;_=0;$=H}if(($|0)<(_|0)){c[V>>2]=$;c[w>>2]=_;if(Z?(R=W+12|0,v=c[R>>2]|0,v&1|0):0){K=v|16;v=c[X>>2]|0;if(K&~v|0){Q=c[M>>2]|0;if(!Q){S=c[T>>2]|0;if(!S){Qj(b,256);aa=c[T>>2]|0}else aa=S;S=Pl(c[d>>2]|0,aa<<2)|0;Nn(S|0,0,c[T>>2]<<2|0)|0;ba=S;ca=c[X>>2]|0}else{ba=Q;ca=v}c[M>>2]=ba;c[X>>2]=ca|K}c[R>>2]=K}}else{c[V>>2]=0;c[w>>2]=0;K=W+12|0;R=c[K>>2]|0;if(!(R&4)){v=R|8;if((R&-9^-9)&R|0)a[U>>0]=1;Q=c[X>>2]|0;if(v&~Q|0){if(!(R&1))da=Q;else{R=c[M>>2]|0;if(!R){S=c[T>>2]|0;if(!S){Qj(b,256);ea=c[T>>2]|0}else ea=S;S=Pl(c[d>>2]|0,ea<<2)|0;Nn(S|0,0,c[T>>2]<<2|0)|0;fa=S;ga=c[X>>2]|0}else{fa=R;ga=Q}c[M>>2]=fa;da=ga}c[X>>2]=da|v}c[K>>2]=v}}W=c[W+24>>2]|0}while((W|0)!=0)}c[e>>2]=H;jm((c[d>>2]|0)+76|0,f);c[b+8>>2]=I;a[b+12>>0]=0;I=c[Y>>2]|0;if(!I)return;else ha=I;do{I=ha;ha=c[ha+24>>2]|0;if(c[I+12>>2]&8|0)Tj(b,I)}while((ha|0)!=0);return}function Yj(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;f=b+288|0;h=c[f>>2]|0;i=(h|0)==0;j=b+280|0;k=c[j>>2]|0;if(!k){l=b+48|0;m=c[l>>2]|0;if(!m){Qj(b,256);n=c[l>>2]|0}else n=m;m=Pl(c[b+400>>2]|0,n<<2)|0;Nn(m|0,0,c[l>>2]<<2|0)|0;o=m;p=c[f>>2]|0}else{o=k;p=h}c[j>>2]=o;if(!p){o=b+48|0;h=c[o>>2]|0;if(!h){Qj(b,256);q=c[o>>2]|0}else q=h;h=Pl(c[b+400>>2]|0,q<<2)|0;Nn(h|0,0,c[o>>2]<<2|0)|0;r=h}else r=p;c[f>>2]=r;if(i?(i=c[b+44>>2]|0,(i|0)>0):0){f=0;do{c[r+(f<<2)>>2]=f;f=f+1|0}while((f|0)!=(i|0))}i=~~(e/+g[b+396>>2]);if((i|0)>0)s=(c[b+296+4>>2]|0)+i|0;else s=i;i=(c[j>>2]|0)+(d<<2)|0;if((s|0)==(c[i>>2]|0))return;c[i>>2]=s;a[b+304>>0]=1;return}function Zj(b,e,f,g){b=b|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=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;if((e|0)==(f|0)|(g|0)==(f|0))return;h=c[b+88>>2]|0;i=h+(e<<2)|0;j=h+(f<<2)|0;k=h+(g<<2)|0;a:do if((i+4|0)!=(j|0)){if((j+4|0)==(k|0)){h=k+-4|0;l=c[h>>2]|0;m=h-i|0;h=m>>2;if(h|0)Vn(k+(0-h<<2)|0,i|0,m|0)|0;c[i>>2]=l;break}l=j;m=l-i>>2;h=k;n=h-l>>2;if((m|0)==(n|0)){l=i;o=j;while(1){p=c[l>>2]|0;c[l>>2]=c[o>>2];c[o>>2]=p;l=l+4|0;if((l|0)==(j|0))break a;else o=o+4|0}}else{q=m;r=n}while(1){o=(q|0)%(r|0)|0;if(!o)break;else{l=r;r=o;q=l}}if(r|0){n=i+(r<<2)|0;do{n=n+-4|0;l=c[n>>2]|0;o=n+(m<<2)|0;p=n;while(1){c[p>>2]=c[o>>2];s=h-o>>2;t=(m|0)<(s|0)?o+(m<<2)|0:i+(m-s<<2)|0;if((t|0)==(n|0))break;else{s=o;o=t;p=s}}c[o>>2]=l}while((n|0)!=(i|0))}}else{n=c[i>>2]|0;m=k-j|0;h=m>>2;if(h|0)Vn(i|0,j|0,m|0)|0;c[i+(h<<2)>>2]=n}while(0);i=c[b+160>>2]|0;b:do if(i|0){j=i+(e<<2)|0;k=i+(f<<2)|0;r=i+(g<<2)|0;if((j+4|0)==(k|0)){q=c[j>>2]|0;n=r-k|0;h=n>>2;if(h|0)Vn(j|0,k|0,n|0)|0;c[j+(h<<2)>>2]=q;break}if((k+4|0)==(r|0)){q=r+-4|0;h=c[q>>2]|0;n=q-j|0;q=n>>2;if(q|0)Vn(r+(0-q<<2)|0,j|0,n|0)|0;c[j>>2]=h;break}h=k;n=h-j>>2;q=r;r=q-h>>2;if((n|0)==(r|0)){h=j;m=k;while(1){p=c[h>>2]|0;c[h>>2]=c[m>>2];c[m>>2]=p;h=h+4|0;if((h|0)==(k|0))break b;else m=m+4|0}}else{u=n;v=r}while(1){m=(u|0)%(v|0)|0;if(!m)break;else{k=v;v=m;u=k}}if(v|0){r=j+(v<<2)|0;do{r=r+-4|0;k=c[r>>2]|0;m=r+(n<<2)|0;h=r;while(1){c[h>>2]=c[m>>2];p=q-m>>2;s=(n|0)<(p|0)?m+(n<<2)|0:j+(n-p<<2)|0;if((s|0)==(r|0))break;else{p=m;m=s;h=p}}c[m>>2]=k}while((r|0)!=(j|0))}}while(0);v=c[b+168>>2]|0;c:do if(v|0){u=v+(e<<2)|0;i=v+(f<<2)|0;j=v+(g<<2)|0;if((u+4|0)==(i|0)){r=c[u>>2]|0;n=j-i|0;q=n>>2;if(q|0)Vn(u|0,i|0,n|0)|0;c[u+(q<<2)>>2]=r;break}if((i+4|0)==(j|0)){r=j+-4|0;q=c[r>>2]|0;n=r-u|0;r=n>>2;if(r|0)Vn(j+(0-r<<2)|0,u|0,n|0)|0;c[u>>2]=q;break}q=i;n=q-u>>2;r=j;j=r-q>>2;if((n|0)==(j|0)){q=u;h=i;while(1){l=c[q>>2]|0;c[q>>2]=c[h>>2];c[h>>2]=l;q=q+4|0;if((q|0)==(i|0))break c;else h=h+4|0}}else{w=n;x=j}while(1){h=(w|0)%(x|0)|0;if(!h)break;else{i=x;x=h;w=i}}if(x|0){j=u+(x<<2)|0;do{j=j+-4|0;i=c[j>>2]|0;h=j+(n<<2)|0;q=j;while(1){c[q>>2]=c[h>>2];l=r-h>>2;o=(n|0)<(l|0)?h+(n<<2)|0:u+(n-l<<2)|0;if((o|0)==(j|0))break;else{l=h;h=o;q=l}}c[h>>2]=i}while((j|0)!=(u|0))}}while(0);x=c[b+176>>2]|0;d:do if(x|0){w=x+(e<<2)|0;v=x+(f<<2)|0;u=x+(g<<2)|0;if((w+4|0)==(v|0)){j=c[w>>2]|0;n=u-v|0;r=n>>2;if(r|0)Vn(w|0,v|0,n|0)|0;c[w+(r<<2)>>2]=j;break}if((v+4|0)==(u|0)){j=u+-4|0;r=c[j>>2]|0;n=j-w|0;j=n>>2;if(j|0)Vn(u+(0-j<<2)|0,w|0,n|0)|0;c[w>>2]=r;break}r=v;n=r-w>>2;j=u;u=j-r>>2;if((n|0)==(u|0)){r=w;q=v;while(1){k=c[r>>2]|0;c[r>>2]=c[q>>2];c[q>>2]=k;r=r+4|0;if((r|0)==(v|0))break d;else q=q+4|0}}else{y=n;z=u}while(1){q=(y|0)%(z|0)|0;if(!q)break;else{v=z;z=q;y=v}}if(z|0){u=w+(z<<2)|0;do{u=u+-4|0;v=c[u>>2]|0;q=u+(n<<2)|0;r=u;while(1){c[r>>2]=c[q>>2];k=j-q>>2;m=(n|0)<(k|0)?q+(n<<2)|0:w+(n-k<<2)|0;if((m|0)==(u|0))break;else{k=q;q=m;r=k}}c[q>>2]=v}while((u|0)!=(w|0))}}while(0);z=c[b+96>>2]|0;y=z+(e<<3)|0;x=z+(f<<3)|0;w=z+(g<<3)|0;e:do if((y+8|0)!=(x|0)){if((x+8|0)==(w|0)){z=w+-8|0;u=z;n=c[u>>2]|0;j=c[u+4>>2]|0;u=z-y|0;z=u>>3;if(z|0)Vn(w+(0-z<<3)|0,y|0,u|0)|0;u=y;c[u>>2]=n;c[u+4>>2]=j;break}j=x;u=j-y>>3;n=w;z=n-j>>3;if((u|0)==(z|0)){j=y;r=x;while(1){i=j;h=c[i>>2]|0;k=c[i+4>>2]|0;i=r;m=c[i+4>>2]|0;l=j;c[l>>2]=c[i>>2];c[l+4>>2]=m;m=r;c[m>>2]=h;c[m+4>>2]=k;j=j+8|0;if((j|0)==(x|0))break e;else r=r+8|0}}else{A=u;B=z}while(1){r=(A|0)%(B|0)|0;if(!r)break;else{j=B;B=r;A=j}}if(B|0){z=y+(B<<3)|0;do{z=z+-8|0;j=z;r=c[j>>2]|0;k=c[j+4>>2]|0;j=z+(u<<3)|0;m=z;while(1){h=j;l=c[h+4>>2]|0;i=m;c[i>>2]=c[h>>2];c[i+4>>2]=l;l=n-j>>3;i=(u|0)<(l|0)?j+(u<<3)|0:y+(u-l<<3)|0;if((i|0)==(z|0))break;else{l=j;j=i;m=l}}m=j;c[m>>2]=r;c[m+4>>2]=k}while((z|0)!=(y|0))}}else{z=y;u=c[z>>2]|0;n=c[z+4>>2]|0;z=w-x|0;m=z>>3;if(m|0)Vn(y|0,x|0,z|0)|0;z=y+(m<<3)|0;c[z>>2]=u;c[z+4>>2]=n}while(0);y=c[b+104>>2]|0;x=y+(e<<3)|0;w=y+(f<<3)|0;B=y+(g<<3)|0;f:do if((x+8|0)!=(w|0)){if((w+8|0)==(B|0)){y=B+-8|0;A=y;n=c[A>>2]|0;z=c[A+4>>2]|0;A=y-x|0;y=A>>3;if(y|0)Vn(B+(0-y<<3)|0,x|0,A|0)|0;A=x;c[A>>2]=n;c[A+4>>2]=z;break}z=w;A=z-x>>3;n=B;y=n-z>>3;if((A|0)==(y|0)){z=x;u=w;while(1){m=z;v=c[m>>2]|0;q=c[m+4>>2]|0;m=u;l=c[m+4>>2]|0;i=z;c[i>>2]=c[m>>2];c[i+4>>2]=l;l=u;c[l>>2]=v;c[l+4>>2]=q;z=z+8|0;if((z|0)==(w|0))break f;else u=u+8|0}}else{C=A;D=y}while(1){u=(C|0)%(D|0)|0;if(!u)break;else{z=D;D=u;C=z}}if(D|0){y=x+(D<<3)|0;do{y=y+-8|0;z=y;u=c[z>>2]|0;q=c[z+4>>2]|0;z=y+(A<<3)|0;l=y;while(1){v=z;i=c[v+4>>2]|0;m=l;c[m>>2]=c[v>>2];c[m+4>>2]=i;i=n-z>>3;m=(A|0)<(i|0)?z+(A<<3)|0:x+(A-i<<3)|0;if((m|0)==(y|0))break;else{i=z;z=m;l=i}}l=z;c[l>>2]=u;c[l+4>>2]=q}while((y|0)!=(x|0))}}else{y=x;A=c[y>>2]|0;n=c[y+4>>2]|0;y=B-w|0;l=y>>3;if(l|0)Vn(x|0,w|0,y|0)|0;y=x+(l<<3)|0;c[y>>2]=A;c[y+4>>2]=n}while(0);x=c[b+144>>2]|0;w=x+(e<<2)|0;B=x+(f<<2)|0;D=x+(g<<2)|0;g:do if((w+4|0)!=(B|0)){if((B+4|0)==(D|0)){x=D+-4|0;C=c[x>>2]|0;n=x-w|0;x=n>>2;if(x|0)Vn(D+(0-x<<2)|0,w|0,n|0)|0;c[w>>2]=C;break}C=B;n=C-w>>2;x=D;y=x-C>>2;if((n|0)==(y|0)){C=w;A=B;while(1){l=c[C>>2]|0;c[C>>2]=c[A>>2];c[A>>2]=l;C=C+4|0;if((C|0)==(B|0))break g;else A=A+4|0}}else{E=n;F=y}while(1){A=(E|0)%(F|0)|0;if(!A)break;else{C=F;F=A;E=C}}if(F|0){y=w+(F<<2)|0;do{y=y+-4|0;C=c[y>>2]|0;A=y+(n<<2)|0;l=y;while(1){c[l>>2]=c[A>>2];k=x-A>>2;r=(n|0)<(k|0)?A+(n<<2)|0:w+(n-k<<2)|0;if((r|0)==(y|0))break;else{k=A;A=r;l=k}}c[A>>2]=C}while((y|0)!=(w|0))}}else{y=c[w>>2]|0;n=D-B|0;x=n>>2;if(x|0)Vn(w|0,B|0,n|0)|0;c[w+(x<<2)>>2]=y}while(0);h:do if(a[b+21>>0]|0){w=c[b+112>>2]|0;B=w+(e<<3)|0;D=w+(f<<3)|0;F=w+(g<<3)|0;if((B+8|0)==(D|0)){w=B;E=c[w>>2]|0;y=c[w+4>>2]|0;w=F-D|0;x=w>>3;if(x|0)Vn(B|0,D|0,w|0)|0;w=B+(x<<3)|0;c[w>>2]=E;c[w+4>>2]=y;break}if((D+8|0)==(F|0)){y=F+-8|0;w=y;E=c[w>>2]|0;x=c[w+4>>2]|0;w=y-B|0;y=w>>3;if(y|0)Vn(F+(0-y<<3)|0,B|0,w|0)|0;w=B;c[w>>2]=E;c[w+4>>2]=x;break}x=D;w=x-B>>3;E=F;F=E-x>>3;if((w|0)==(F|0)){x=B;y=D;while(1){n=x;l=c[n>>2]|0;q=c[n+4>>2]|0;n=y;u=c[n+4>>2]|0;z=x;c[z>>2]=c[n>>2];c[z+4>>2]=u;u=y;c[u>>2]=l;c[u+4>>2]=q;x=x+8|0;if((x|0)==(D|0))break h;else y=y+8|0}}else{G=w;H=F}while(1){y=(G|0)%(H|0)|0;if(!y)break;else{D=H;H=y;G=D}}if(H|0){F=B+(H<<3)|0;do{F=F+-8|0;D=F;y=c[D>>2]|0;x=c[D+4>>2]|0;D=F+(w<<3)|0;q=F;while(1){u=D;l=c[u+4>>2]|0;z=q;c[z>>2]=c[u>>2];c[z+4>>2]=l;l=E-D>>3;z=(w|0)<(l|0)?D+(w<<3)|0:B+(w-l<<3)|0;if((z|0)==(F|0))break;else{l=D;D=z;q=l}}q=D;c[q>>2]=y;c[q+4>>2]=x}while((F|0)!=(B|0))}}while(0);H=c[b+120>>2]|0;i:do if(H|0){G=H+(e<<2)|0;B=H+(f<<2)|0;F=H+(g<<2)|0;if((G+4|0)==(B|0)){w=c[G>>2]|0;E=F-B|0;q=E>>2;if(q|0)Vn(G|0,B|0,E|0)|0;c[G+(q<<2)>>2]=w;break}if((B+4|0)==(F|0)){w=F+-4|0;q=c[w>>2]|0;E=w-G|0;w=E>>2;if(w|0)Vn(F+(0-w<<2)|0,G|0,E|0)|0;c[G>>2]=q;break}q=B;E=q-G>>2;w=F;F=w-q>>2;if((E|0)==(F|0)){q=G;C=B;while(1){A=c[q>>2]|0;c[q>>2]=c[C>>2];c[C>>2]=A;q=q+4|0;if((q|0)==(B|0))break i;else C=C+4|0}}else{I=E;J=F}while(1){C=(I|0)%(J|0)|0;if(!C)break;else{B=J;J=C;I=B}}if(J|0){F=G+(J<<2)|0;do{F=F+-4|0;B=c[F>>2]|0;C=F+(E<<2)|0;q=F;while(1){c[q>>2]=c[C>>2];A=w-C>>2;l=(E|0)<(A|0)?C+(E<<2)|0:G+(E-A<<2)|0;if((l|0)==(F|0))break;else{A=C;C=l;q=A}}c[C>>2]=B}while((F|0)!=(G|0))}}while(0);J=c[b+132>>2]|0;j:do if(J|0){I=J+(e<<2)|0;H=J+(f<<2)|0;G=J+(g<<2)|0;if((I+4|0)==(H|0)){F=c[I>>2]|0;E=G-H|0;w=E>>2;if(w|0)Vn(I|0,H|0,E|0)|0;c[I+(w<<2)>>2]=F;break}if((H+4|0)==(G|0)){F=G+-4|0;w=c[F>>2]|0;E=F-I|0;F=E>>2;if(F|0)Vn(G+(0-F<<2)|0,I|0,E|0)|0;c[I>>2]=w;break}w=H;E=w-I>>2;F=G;G=F-w>>2;if((E|0)==(G|0)){w=I;q=H;while(1){x=c[w>>2]|0;c[w>>2]=c[q>>2];c[q>>2]=x;w=w+4|0;if((w|0)==(H|0))break j;else q=q+4|0}}else{K=E;L=G}while(1){q=(K|0)%(L|0)|0;if(!q)break;else{H=L;L=q;K=H}}if(L|0){G=I+(L<<2)|0;do{G=G+-4|0;H=c[G>>2]|0;q=G+(E<<2)|0;w=G;while(1){c[w>>2]=c[q>>2];x=F-q>>2;y=(E|0)<(x|0)?q+(E<<2)|0:I+(E-x<<2)|0;if((y|0)==(G|0))break;else{x=q;q=y;w=x}}c[q>>2]=H}while((G|0)!=(I|0))}}while(0);L=c[b+136>>2]|0;k:do if(L|0){K=L+(e<<2)|0;J=L+(f<<2)|0;I=L+(g<<2)|0;G=I+-4|0;E=K;F=J;w=J;while(1){B=d[E>>0]|d[E+1>>0]<<8|d[E+2>>0]<<16|d[E+3>>0]<<24;C=F+1|0;x=a[C>>0]|0;y=F+2|0;D=a[y>>0]|0;A=F+3|0;l=a[A>>0]|0;a[E>>0]=a[F>>0]|0;a[E+1>>0]=x;a[E+2>>0]=D;a[E+3>>0]=l;a[F>>0]=B;a[C>>0]=B>>>8;a[y>>0]=B>>>16;a[A>>0]=B>>>24;B=E+4|0;A=F+4|0;M=(B|0)==(w|0);if((A|0)==(I|0))break;E=B;F=A;w=M?A:w}if(!M){F=K+(((G-J|0)>>>2)+1<<2)|0;E=w;A=w;while(1){B=F;y=E;while(1){C=d[B>>0]|d[B+1>>0]<<8|d[B+2>>0]<<16|d[B+3>>0]<<24;l=y+1|0;D=a[l>>0]|0;x=y+2|0;z=a[x>>0]|0;u=y+3|0;n=a[u>>0]|0;a[B>>0]=a[y>>0]|0;a[B+1>>0]=D;a[B+2>>0]=z;a[B+3>>0]=n;a[y>>0]=C;a[l>>0]=C>>>8;a[x>>0]=C>>>16;a[u>>0]=C>>>24;B=B+4|0;N=y+4|0;O=(B|0)==(A|0);if((N|0)!=(I|0))break;if(O)break k;else y=A}F=B;E=N;A=O?N:A}}}while(0);N=c[b+148>>2]|0;l:do if(N|0){O=N+(e<<2)|0;M=N+(f<<2)|0;L=N+(g<<2)|0;if((O+4|0)==(M|0)){A=c[O>>2]|0;E=L-M|0;F=E>>2;if(F|0)Vn(O|0,M|0,E|0)|0;c[O+(F<<2)>>2]=A;break}if((M+4|0)==(L|0)){A=L+-4|0;F=c[A>>2]|0;E=A-O|0;A=E>>2;if(A|0)Vn(L+(0-A<<2)|0,O|0,E|0)|0;c[O>>2]=F;break}F=M;E=F-O>>2;A=L;L=A-F>>2;if((E|0)==(L|0)){F=O;I=M;while(1){w=c[F>>2]|0;c[F>>2]=c[I>>2];c[I>>2]=w;F=F+4|0;if((F|0)==(M|0))break l;else I=I+4|0}}else{P=E;Q=L}while(1){I=(P|0)%(Q|0)|0;if(!I)break;else{M=Q;Q=I;P=M}}if(Q|0){L=O+(Q<<2)|0;do{L=L+-4|0;M=c[L>>2]|0;I=L+(E<<2)|0;F=L;while(1){c[F>>2]=c[I>>2];w=A-I>>2;J=(E|0)<(w|0)?I+(E<<2)|0:O+(E-w<<2)|0;if((J|0)==(L|0))break;else{w=I;I=J;F=w}}c[I>>2]=M}while((L|0)!=(O|0))}}while(0);Q=b+80|0;P=c[Q>>2]|0;if(P|0){N=P+(e<<2)|0;O=P+(f<<2)|0;L=P+(g<<2)|0;m:do if((N+4|0)!=(O|0)){if((O+4|0)==(L|0)){P=L+-4|0;E=c[P>>2]|0;A=P-N|0;P=A>>2;if(P|0)Vn(L+(0-P<<2)|0,N|0,A|0)|0;c[N>>2]=E;break}E=O;A=E-N>>2;P=L;F=P-E>>2;if((A|0)==(F|0)){E=N;B=O;while(1){w=c[E>>2]|0;c[E>>2]=c[B>>2];c[B>>2]=w;E=E+4|0;if((E|0)==(O|0))break m;else B=B+4|0}}else{R=A;S=F}while(1){B=(R|0)%(S|0)|0;if(!B)break;else{E=S;S=B;R=E}}if(S|0){F=N+(S<<2)|0;do{F=F+-4|0;E=c[F>>2]|0;B=F+(A<<2)|0;w=F;while(1){c[w>>2]=c[B>>2];J=P-B>>2;G=(A|0)<(J|0)?B+(A<<2)|0:N+(A-J<<2)|0;if((G|0)==(F|0))break;else{J=B;B=G;w=J}}c[B>>2]=E}while((F|0)!=(N|0))}}else{F=c[N>>2]|0;A=L-O|0;P=A>>2;if(P|0)Vn(N|0,O|0,A|0)|0;c[N+(P<<2)>>2]=F}while(0);if((e|0)<(g|0)){N=c[Q>>2]|0;Q=g-f|0;O=e-f|0;L=e;do{S=c[N+(L<<2)>>2]|0;if(S|0){R=S+8|0;S=c[R>>2]|0;do if((S|0)>=(e|0))if((S|0)<(f|0)){T=Q+S|0;break}else{T=((S|0)<(g|0)?O:0)+S|0;break}else T=S;while(0);c[R>>2]=T}L=L+1|0}while((L|0)!=(g|0))}}L=c[b+280>>2]|0;if(L|0){T=L+(e<<2)|0;O=L+(f<<2)|0;Q=L+(g<<2)|0;n:do if((T+4|0)==(O|0)){L=c[T>>2]|0;N=Q-O|0;S=N>>2;if(S|0)Vn(T|0,O|0,N|0)|0;c[T+(S<<2)>>2]=L}else{if((O+4|0)==(Q|0)){L=Q+-4|0;S=c[L>>2]|0;N=L-T|0;L=N>>2;if(L|0)Vn(Q+(0-L<<2)|0,T|0,N|0)|0;c[T>>2]=S;break}S=O;N=S-T>>2;L=Q;F=L-S>>2;if((N|0)==(F|0)){S=T;P=O;while(1){A=c[S>>2]|0;c[S>>2]=c[P>>2];c[P>>2]=A;S=S+4|0;if((S|0)==(O|0))break n;else P=P+4|0}}else{U=N;V=F}while(1){P=(U|0)%(V|0)|0;if(!P)break;else{S=V;V=P;U=S}}if(!V)break;F=T+(V<<2)|0;do{F=F+-4|0;S=c[F>>2]|0;P=F+(N<<2)|0;R=F;while(1){c[R>>2]=c[P>>2];A=L-P>>2;w=(N|0)<(A|0)?P+(N<<2)|0:T+(N-A<<2)|0;if((w|0)==(F|0))break;else{A=P;P=w;R=A}}c[P>>2]=S}while((F|0)!=(T|0))}while(0);T=c[b+44>>2]|0;V=c[b+288>>2]|0;if((T|0)>0){U=g-f|0;O=e-f|0;Q=0;do{F=V+(Q<<2)|0;N=c[F>>2]|0;do if((N|0)>=(e|0))if((N|0)<(f|0)){W=U+N|0;break}else{W=((N|0)<(g|0)?O:0)+N|0;break}else W=N;while(0);c[F>>2]=W;Q=Q+1|0}while((Q|0)!=(T|0))}}T=c[b+204>>2]|0;if((T|0)>0){Q=c[b+200>>2]|0;W=g-f|0;O=e-f|0;U=0;do{V=Q+(U<<3)|0;N=c[V>>2]|0;do if((N|0)>=(e|0))if((N|0)<(f|0)){X=W+N|0;break}else{X=((N|0)<(g|0)?O:0)+N|0;break}else X=N;while(0);c[V>>2]=X;U=U+1|0}while((U|0)<(T|0))}T=c[b+220>>2]|0;if((T|0)>0){U=c[b+216>>2]|0;X=g-f|0;O=e-f|0;W=0;do{Q=U+(W*24|0)|0;N=c[Q>>2]|0;do if((N|0)>=(e|0))if((N|0)<(f|0)){Y=X+N|0;break}else{Y=((N|0)<(g|0)?O:0)+N|0;break}else Y=N;while(0);N=U+(W*24|0)+4|0;V=c[N>>2]|0;do if((V|0)>=(e|0))if((V|0)<(f|0)){Z=X+V|0;break}else{Z=((V|0)<(g|0)?O:0)+V|0;break}else Z=V;while(0);c[Q>>2]=Y;c[N>>2]=Z;W=W+1|0}while((W|0)<(T|0))}T=c[b+236>>2]|0;if((T|0)>0){W=c[b+232>>2]|0;Z=g-f|0;Y=e-f|0;O=0;do{X=W+(O*28|0)|0;U=c[X>>2]|0;do if((U|0)>=(e|0))if((U|0)<(f|0)){_=Z+U|0;break}else{_=((U|0)<(g|0)?Y:0)+U|0;break}else _=U;while(0);c[X>>2]=_;O=O+1|0}while((O|0)<(T|0))}T=c[b+252>>2]|0;if((T|0)>0){O=c[b+248>>2]|0;_=g-f|0;Y=e-f|0;Z=0;do{W=O+(Z*20|0)|0;U=c[W>>2]|0;do if((U|0)>=(e|0))if((U|0)<(f|0)){$=_+U|0;break}else{$=((U|0)<(g|0)?Y:0)+U|0;break}else $=U;while(0);c[W>>2]=$;U=O+(Z*20|0)+4|0;X=c[U>>2]|0;do if((X|0)>=(e|0))if((X|0)<(f|0)){aa=_+X|0;break}else{aa=((X|0)<(g|0)?Y:0)+X|0;break}else aa=X;while(0);c[U>>2]=aa;Z=Z+1|0}while((Z|0)<(T|0))}T=c[b+268>>2]|0;if((T|0)>0){Z=c[b+264>>2]|0;aa=g-f|0;Y=e-f|0;_=0;do{O=Z+(_*60|0)|0;$=c[O>>2]|0;do if(($|0)>=(e|0))if(($|0)<(f|0)){ba=aa+$|0;break}else{ba=(($|0)<(g|0)?Y:0)+$|0;break}else ba=$;while(0);c[O>>2]=ba;$=Z+(_*60|0)+4|0;U=c[$>>2]|0;do if((U|0)>=(e|0))if((U|0)<(f|0)){ca=aa+U|0;break}else{ca=((U|0)<(g|0)?Y:0)+U|0;break}else ca=U;while(0);c[$>>2]=ca;U=Z+(_*60|0)+8|0;O=c[U>>2]|0;do if((O|0)>=(e|0))if((O|0)<(f|0)){da=aa+O|0;break}else{da=((O|0)<(g|0)?Y:0)+O|0;break}else da=O;while(0);c[U>>2]=da;_=_+1|0}while((_|0)<(T|0))}T=c[b+312>>2]|0;if(!T)return;b=e-f|0;_=g-f|0;da=T;do{T=da+4|0;Y=c[T>>2]|0;do if((Y|0)>=(e|0))if((Y|0)<(f|0)){ea=_+Y|0;break}else{ea=((Y|0)<(g|0)?b:0)+Y|0;break}else ea=Y;while(0);c[T>>2]=ea;Y=da+8|0;U=c[Y>>2]|0;aa=U+-1|0;do if((U|0)>(e|0))if((U|0)>(f|0)){fa=((U|0)<=(g|0)?b:0)+aa|0;break}else{fa=_+aa|0;break}else fa=aa;while(0);c[Y>>2]=fa+1;da=c[da+24>>2]|0}while((da|0)!=0);return}function _j(a,b,d){a=a|0;b=b|0;d=d|0;Wj(a,b,c[(c[a+88>>2]|0)+(b<<2)>>2]|(d?514:2));return}function $j(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,m=0;g=l;l=l+64|0;h=g+16|0;i=g;j=b+400|0;if(c[(c[j>>2]|0)+102876>>2]&2|0){k=0;l=g;return k|0}c[h>>2]=1860;m=h+12|0;c[h+4>>2]=b;c[h+8>>2]=d;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];a[h+28>>0]=f&1;f=h+32|0;c[f>>2]=0;_a[c[(c[d>>2]|0)+28>>2]&31](d,i,e,0);$i(c[j>>2]|0,h,i);k=c[f>>2]|0;l=g;return k|0}function ak(a){a=a|0;fn(a);return}function bk(a,b){a=a|0;b=b|0;return 0}function ck(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;f=b+4|0;if((c[f>>2]|0)!=(d|0)){g=0;return g|0}h=c[b+8>>2]|0;if(!(Sa[c[(c[h>>2]|0)+16>>2]&15](h,b+12|0,(c[d+96>>2]|0)+(e<<3)|0)|0)){g=1;return g|0}d=c[f>>2]|0;Wj(d,e,c[(c[d+88>>2]|0)+(e<<2)>>2]|(a[b+28>>0]|0?514:2));e=b+32|0;c[e>>2]=(c[e>>2]|0)+1;g=1;return g|0}function dk(d,e,f,h){d=d|0;e=e|0;f=f|0;h=h|0;var i=0,j=0,k=0,m=0.0,n=0.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,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.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;i=l;l=l+96|0;j=i+48|0;k=i;m=+g[f+52>>2];if(m==0.0)n=+g[d+32>>2]*.75;else n=m;o=Ma[c[(c[e>>2]|0)+12>>2]&7](e)|0;if((o|0)<=0){l=i;return}p=k+4|0;q=k+8|0;r=k+28|0;s=e+4|0;t=k+12|0;u=e+12|0;v=k+20|0;w=k+12|0;x=k+24|0;y=k+16|0;z=j+20|0;A=j+21|0;B=j+22|0;D=j+23|0;E=j+24|0;F=j+28|0;G=j+32|0;H=h+12|0;I=h+8|0;J=h+4|0;K=j+4|0;L=j+8|0;M=f+28|0;N=f+8|0;O=f+12|0;P=f+20|0;Q=f+24|0;R=j+12|0;S=j+16|0;T=f+32|0;U=f+33|0;V=f+34|0;W=f+35|0;X=f+64|0;Y=f+68|0;Z=0;m=0.0;while(1){c[k>>2]=816;c[p>>2]=1;g[q>>2]=.009999999776482582;c[r>>2]=0;c[r+4>>2]=0;c[r+8>>2]=0;c[r+12>>2]=0;b[r+16>>1]=0;if((c[s>>2]|0)==1){_=s;$=c[_+4>>2]|0;aa=p;c[aa>>2]=c[_>>2];c[aa+4>>2]=$;c[t>>2]=c[u>>2];c[t+4>>2]=c[u+4>>2];c[t+8>>2]=c[u+8>>2];c[t+12>>2]=c[u+12>>2];c[t+16>>2]=c[u+16>>2];c[t+20>>2]=c[u+20>>2];c[t+24>>2]=c[u+24>>2];c[t+28>>2]=c[u+28>>2];b[t+32>>1]=b[u+32>>1]|0}else ze(e,k,Z);ba=+g[w>>2];ca=+g[v>>2]-ba;da=+g[y>>2];ea=+g[x>>2]-da;fa=+C(+(ca*ca+ea*ea));a:do if(m>2]=0;c[j>>2]=c[f>>2];ja=+g[H>>2];ma=+g[I>>2];na=+g[h>>2]+(ka*ja-la*ma);oa=la*ja+ka*ma+ +g[J>>2];g[K>>2]=na;g[L>>2]=oa;ma=+g[M>>2];ka=ma*(na-+g[N>>2])+ +g[Q>>2];g[R>>2]=+g[P>>2]-ma*(oa-+g[O>>2]);g[S>>2]=ka;$=a[U>>0]|0;aa=a[V>>0]|0;_=a[W>>0]|0;a[z>>0]=a[T>>0]|0;a[A>>0]=$;a[B>>0]=aa;a[D>>0]=_;c[E>>2]=c[X>>2];c[F>>2]=c[Y>>2];Vj(d,j)|0;ka=n+ga;if(!(ka>2];ia=+g[y>>2]}}else pa=m;while(0);Z=Z+1|0;if((Z|0)>=(o|0))break;else m=pa-fa}l=i;return}function ek(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,m=0,n=0.0,o=0.0,p=0,q=0.0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=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,aa=0,ba=0,ca=0.0,da=0.0,ea=0.0;h=l;l=l+80|0;i=h+40|0;j=h+24|0;k=h+8|0;m=h;n=+g[e+52>>2];if(n==0.0)o=+g[b+32>>2]*.75;else o=n;g[j>>2]=0.0;g[j+4>>2]=0.0;g[j+8>>2]=0.0;g[j+12>>2]=1.0;_a[c[(c[d>>2]|0)+28>>2]&31](d,k,j,0);n=o*+A(+(+g[k+4>>2]/o));p=k+12|0;q=+g[p>>2];if(!(n>2];while(1){U=o*+A(+(+g[k>>2]/o));if(U>2]=V;g[s>>2]=T;if(Sa[c[(c[d>>2]|0)+16>>2]&15](d,j,m)|0){c[z>>2]=0;c[i>>2]=c[e>>2];U=+g[B>>2];W=+g[m>>2];X=+g[C>>2];Y=+g[s>>2];Z=+g[f>>2]+(U*W-X*Y);_=W*X+U*Y+ +g[D>>2];g[E>>2]=Z;g[F>>2]=_;Y=+g[G>>2];U=Y*(Z-+g[H>>2])+ +g[K>>2];g[L>>2]=+g[J>>2]-Y*(_-+g[I>>2]);g[M>>2]=U;$=a[O>>0]|0;aa=a[P>>0]|0;ba=a[Q>>0]|0;a[t>>0]=a[N>>0]|0;a[u>>0]=$;a[v>>0]=aa;a[w>>0]=ba;c[x>>2]=c[R>>2];c[y>>2]=c[S>>2];Vj(b,i)|0}V=o+V;ca=+g[r>>2]}while(V>2]}else{da=q;ea=n}T=o+T;if(!(T>2]|0)<=0){f=0;return f|0}g=a+12|0;a=0;while(1){h=c[(c[g>>2]|0)+(a<<2)>>2]|0;a=a+1|0;if(Sa[c[(c[h>>2]|0)+16>>2]&15](h,b,d)|0){f=1;i=5;break}if((a|0)>=(c[e>>2]|0)){f=0;i=5;break}}if((i|0)==5)return f|0;return 0}function jk(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}function kk(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return 0}function lk(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,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;e=l;l=l+16|0;f=e;g[b>>2]=3402823466385288598117041.0e14;h=b+4|0;g[h>>2]=3402823466385288598117041.0e14;i=b+8|0;g[i>>2]=-3402823466385288598117041.0e14;j=b+12|0;g[j>>2]=-3402823466385288598117041.0e14;k=a+16|0;if((c[k>>2]|0)<=0){l=e;return}m=a+12|0;a=f+4|0;n=f+8|0;o=f+12|0;p=0;do{q=c[(c[m>>2]|0)+(p<<2)>>2]|0;r=Ma[c[(c[q>>2]|0)+12>>2]&7](q)|0;if((r|0)>0){q=0;do{s=c[(c[m>>2]|0)+(p<<2)>>2]|0;_a[c[(c[s>>2]|0)+28>>2]&31](s,f,d,q);t=+g[b>>2];u=+g[f>>2];v=+g[h>>2];w=+g[a>>2];g[b>>2]=t>2]=v>2];v=+g[n>>2];u=+g[j>>2];t=+g[o>>2];g[i>>2]=w>v?w:v;g[j>>2]=u>t?u:t;q=q+1|0}while((q|0)!=(r|0))}p=p+1|0}while((p|0)<(c[k>>2]|0));l=e;return}function mk(a,b,c){a=a|0;b=b|0;c=+c;return}function nk(b,d){b=b|0;d=d|0;var e=0,f=0,h=0,i=0,k=0,m=0.0,n=0,o=0,p=0,q=0.0,r=0.0,s=0,t=0,u=0.0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=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.0,V=0.0,W=0.0,X=0.0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0;e=l;l=l+64|0;f=e+16|0;h=e;i=b+400|0;if(c[(c[i>>2]|0)+102876>>2]&2|0){k=0;l=e;return k|0}m=+g[d+16>>2];n=d+8|0;o=c[n>>2]|0;p=c[n+4>>2]|0;n=h;c[n>>2]=o;c[n+4>>2]=p;q=+F(+m);g[h+8>>2]=q;r=+E(+m);g[h+12>>2]=r;n=b+44|0;s=c[n>>2]|0;t=c[d+40>>2]|0;m=(c[j>>2]=o,+g[j>>2]);u=(c[j>>2]=p,+g[j>>2]);a:do if(t|0)switch(c[t+4>>2]|0){case 3:case 1:{dk(b,t,d,h);break a;break}case 0:case 2:{ek(b,t,d,h);break a;break}default:break a}while(0);t=c[d+44>>2]|0;if(t|0){p=c[d+48>>2]|0;c[f>>2]=1888;c[f+12>>2]=t;c[f+16>>2]=p;ek(b,f,d,h)}p=d+56|0;if((c[p>>2]|0)>0){t=d+60|0;o=f+20|0;v=f+21|0;w=f+22|0;x=f+23|0;y=f+24|0;z=f+28|0;A=f+32|0;B=f+4|0;C=f+8|0;D=d+28|0;G=d+8|0;H=d+12|0;I=d+20|0;J=d+24|0;K=f+12|0;L=f+16|0;M=d+32|0;N=d+33|0;O=d+34|0;P=d+35|0;Q=d+64|0;R=d+68|0;S=0;do{T=c[t>>2]|0;U=+g[T+(S<<3)>>2];V=+g[T+(S<<3)+4>>2];c[A>>2]=0;c[f>>2]=c[d>>2];W=m+(U*r-V*q);X=V*r+U*q+u;g[B>>2]=W;g[C>>2]=X;U=+g[D>>2];V=U*(W-+g[G>>2])+ +g[J>>2];g[K>>2]=+g[I>>2]-U*(X-+g[H>>2]);g[L>>2]=V;T=a[N>>0]|0;Y=a[O>>0]|0;Z=a[P>>0]|0;a[o>>0]=a[M>>0]|0;a[v>>0]=T;a[w>>0]=Y;a[x>>0]=Z;c[y>>2]=c[Q>>2];c[z>>2]=c[R>>2];Vj(b,f)|0;S=S+1|0}while((S|0)<(c[p>>2]|0));_=R}else _=d+68|0;R=c[n>>2]|0;n=Pl(c[i>>2]|0,80)|0;Kj(n);c[n>>2]=b;c[n+4>>2]=s;c[n+8>>2]=R;c[n+16>>2]=c[d+36>>2];c[n+76>>2]=c[_>>2];_=n+60|0;c[_>>2]=c[h>>2];c[_+4>>2]=c[h+4>>2];c[_+8>>2]=c[h+8>>2];c[_+12>>2]=c[h+12>>2];c[n+20>>2]=0;h=b+312|0;_=c[h>>2]|0;c[n+24>>2]=_;if(_|0)c[_+20>>2]=n;c[h>>2]=n;h=b+308|0;c[h>>2]=(c[h>>2]|0)+1;if((s|0)<(R|0)){h=b+144|0;_=s;do{c[(c[h>>2]|0)+(_<<2)>>2]=n;_=_+1|0}while((_|0)!=(R|0))}_=c[d+4>>2]|0;h=n+12|0;p=c[h>>2]|0;S=(p^_)<<4&16|_;if(p&~S|0)a[b+20>>0]=1;p=b+16|0;z=c[p>>2]|0;if(S&~z|0){if(!(_&1))$=z;else{_=b+132|0;Q=c[_>>2]|0;if(!Q){y=b+48|0;x=c[y>>2]|0;if(!x){Qj(b,256);aa=c[y>>2]|0}else aa=x;x=Pl(c[i>>2]|0,aa<<2)|0;Nn(x|0,0,c[y>>2]<<2|0)|0;ba=x;ca=c[p>>2]|0}else{ba=Q;ca=z}c[_>>2]=ba;$=ca}c[p>>2]=$|S}c[h>>2]=S;c[f>>2]=1932;ok(b,1);pk(b,s,R,f);f=d+72|0;d=c[f>>2]|0;if(!d)da=n;else{qk(b,d,n);da=c[f>>2]|0}k=da;l=e;return k|0}function ok(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0,i=0,j=0,k=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,B=0,C=0,D=0,E=0,F=0;d=l;l=l+16|0;e=d;f=a+200|0;h=c[f>>2]|0;i=a+204|0;j=c[i>>2]|0;k=h+(j<<3)|0;if((j|0)>0){j=c[a+96>>2]|0;m=+g[a+36>>2];n=h;do{o=c[n>>2]|0;c[n+4>>2]=(~~(m*+g[j+(o<<3)+4>>2]+2048.0)>>>0<<20)+(~~(m*+g[j+(o<<3)>>2]*256.0+524288.0)>>>0);n=n+8|0}while(n>>>0>>0)}Hk(h,k,e);k=a+400|0;h=c[k>>2]|0;c[e>>2]=0;c[e+4>>2]=0;n=e+8|0;c[n>>2]=0;j=e+12|0;c[j>>2]=h+76;o=a+8|0;if(c[o>>2]&32768|0?c[h+102952>>2]|0:0)Ik(e,c[a+216>>2]|0,c[a+220>>2]|0,c[a+88>>2]|0);h=a+216|0;p=c[f>>2]|0;f=c[i>>2]|0;i=p+(f<<3)|0;q=a+220|0;c[q>>2]=0;if((f|0)>0){f=p;r=p;while(1){p=f+4|0;s=c[p>>2]|0;t=s+256|0;u=f;f=f+8|0;v=f>>>0>>0;if(v){w=f;do{if(t>>>0<(c[w+4>>2]|0)>>>0)break;Jk(a,c[u>>2]|0,c[w>>2]|0,h);w=w+8|0}while(w>>>0>>0);x=c[p>>2]|0}else x=s;w=x+1048320|0;a:do if(r>>>0>>0){t=r;while(1){if(w>>>0<=(c[t+4>>2]|0)>>>0){y=t;break a}z=t+8|0;if(z>>>0>>0)t=z;else{y=z;break}}}else y=r;while(0);w=x+1048832|0;b:do if(y>>>0>>0){s=y;do{if(w>>>0<(c[s+4>>2]|0)>>>0)break b;Jk(a,c[u>>2]|0,c[s>>2]|0,h);s=s+8|0}while(s>>>0>>0)}while(0);if(!v)break;else r=y}}if(c[o>>2]&131072|0?(o=c[(c[k>>2]|0)+102948>>2]|0,o|0):0){k=c[h>>2]|0;y=c[q>>2]|0;r=k+(y*24|0)|0;c:do if(!y){A=k;B=28}else{i=k;while(1){if(c[i+20>>2]&131072|0?!(Wa[c[(c[o>>2]|0)+16>>2]&7](o,a,c[i>>2]|0,c[i+4>>2]|0)|0):0){A=i;B=28;break c}i=i+24|0;if((i|0)==(r|0)){C=r;break}}}while(0);d:do if((B|0)==28)if((A|0)==(r|0))C=r;else{k=A;y=A;while(1){i=k;do{v=i;i=i+24|0;if((i|0)==(r|0)){C=y;break d}if(!(c[v+44>>2]&131072))break}while(!(Wa[c[(c[o>>2]|0)+16>>2]&7](o,a,c[i>>2]|0,c[v+28>>2]|0)|0));c[y>>2]=c[i>>2];c[y+4>>2]=c[i+4>>2];c[y+8>>2]=c[i+8>>2];c[y+12>>2]=c[i+12>>2];c[y+16>>2]=c[i+16>>2];c[y+20>>2]=c[i+20>>2];k=i;y=y+24|0}}while(0);c[q>>2]=(C-(c[h>>2]|0)|0)/24|0}Kk(a,e);if(b){b=c[h>>2]|0;a=c[q>>2]|0;C=b+(a*24|0)|0;o=b;e:do if(!a){D=b;B=40}else{r=b;while(1){if(c[r+20>>2]&2|0){D=r;B=40;break e}r=r+24|0;if((r|0)==(C|0)){E=C;F=o;break}}}while(0);if((B|0)==40)if((D|0)==(C|0)){E=C;F=o}else{o=D;B=D;f:while(1){D=o;do{b=D;D=D+24|0;if((D|0)==(C|0))break f}while((c[b+44>>2]&2|0)!=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[B+16>>2]=c[D+16>>2];c[B+20>>2]=c[D+20>>2];o=D;B=B+24|0}E=B;F=c[h>>2]|0}c[q>>2]=(E-F|0)/24|0}F=c[e>>2]|0;if(!F){l=d;return}jm(c[j>>2]|0,F);c[e>>2]=0;c[n>>2]=0;l=d;return}function pk(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,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,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,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;f=l;l=l+48|0;h=f+40|0;i=f+12|0;j=f;k=(d|0)>(b|0);if(!k){l=f;return}m=c[a+88>>2]|0;n=b;o=0;do{o=c[m+(n<<2)>>2]|o;n=n+1|0}while((n|0)!=(d|0));if(o&1032|0){n=a+220|0;if((c[n>>2]|0)>0){m=a+216|0;p=a+88|0;q=a+144|0;r=a+248|0;s=a+252|0;t=a+256|0;u=a+96|0;v=a+260|0;w=0;do{x=c[m>>2]|0;y=c[x+(w*24|0)>>2]|0;z=c[x+(w*24|0)+4>>2]|0;A=c[p>>2]|0;B=c[A+(y<<2)>>2]|0;D=c[A+(z<<2)>>2]|0;A=c[q>>2]|0;E=c[A+(y<<2)>>2]|0;F=c[A+(z<<2)>>2]|0;do if((z|0)<(d|0)&(((y|0)>=(d|0)|(y|0)<(b|0)|(z|0)<(b|0))^1)?(A=D|B,!((A&2|0)!=0|(A&1032|0)==0)):0){if(!(Ya[c[(c[e>>2]|0)+8>>2]&31](e,y)|0)?!(Ya[c[(c[e>>2]|0)+8>>2]&31](e,z)|0):0)break;if(!(B&28)){if(!E)break;if(!(c[E+12>>2]&2))break}if(!(D&28)){if(!F)break;if(!(c[F+12>>2]&2))break}if(Sa[c[(c[e>>2]|0)+12>>2]&15](e,y,z)|0){A=c[s>>2]|0;G=c[t>>2]|0;if((A|0)>=(G|0)?(H=(G|0)==0?256:G<<1,(G|0)<(H|0)):0){G=Pl(c[v>>2]|0,H*20|0)|0;I=c[r>>2]|0;if(I|0){Qn(G|0,I|0,(c[s>>2]|0)*20|0)|0;Ql(c[v>>2]|0,c[r>>2]|0,(c[t>>2]|0)*20|0)}c[t>>2]=H;c[r>>2]=G;J=c[s>>2]|0}else J=A;A=c[r>>2]|0;c[s>>2]=J+1;c[A+(J*20|0)>>2]=y;c[A+(J*20|0)+4>>2]=z;c[A+(J*20|0)+8>>2]=c[x+(w*24|0)+20>>2];if(!E)K=1.0;else K=+g[E+16>>2];if(!F)L=1.0;else L=+g[F+16>>2];g[A+(J*20|0)+12>>2]=K>2]|0;M=+g[G+(y<<3)>>2]-+g[G+(z<<3)>>2];N=+g[G+(y<<3)+4>>2]-+g[G+(z<<3)+4>>2];g[A+(J*20|0)+16>>2]=+C(+(M*M+N*N))}}while(0);w=w+1|0}while((w|0)<(c[n>>2]|0));O=r;P=s;Q=r}else{r=a+248|0;O=r;P=a+252|0;Q=r}r=c[O>>2]|0;s=c[P>>2]|0;n=r+(s*20|0)|0;c[h>>2]=27;w=s*20|0;s=(w|0)/20|0;if((w|0)>2560){w=(s|0)<107374182?s:107374182;while(1){J=en(w*20|0,10999)|0;if(J|0){R=J;S=w;break}w=w>>>1;if(!w){R=0;S=0;break}}T=R;U=S}else{T=0;U=0}xk(r,n,h,s,T,U);if(T|0)fn(T);T=c[O>>2]|0;O=c[P>>2]|0;U=T+(O*20|0)|0;s=T;a:do switch(O|0){case 0:{V=T;W=20;break}case 1:{X=U;Y=s;break}default:{n=T;r=T+20|0;S=c[T>>2]|0;while(1){R=S;S=c[r>>2]|0;if((R|0)==(S|0)?(c[n+4>>2]|0)==(c[n+24>>2]|0):0){V=n;W=20;break a}R=r+20|0;if((R|0)==(U|0)){X=U;Y=s;break}else{w=r;r=R;n=w}}}}while(0);if((W|0)==20)if((V|0)==(U|0)){X=U;Y=s}else{s=V+20|0;T=V;b:while(1){V=T+4|0;O=s;do{n=O;O=O+20|0;if((O|0)==(U|0))break b;if((c[T>>2]|0)!=(c[O>>2]|0))break}while((c[V>>2]|0)==(c[n+24>>2]|0));V=T+20|0;c[V>>2]=c[O>>2];c[V+4>>2]=c[O+4>>2];c[V+8>>2]=c[O+8>>2];c[V+12>>2]=c[O+12>>2];c[V+16>>2]=c[O+16>>2];s=O;T=V}X=T+20|0;Y=c[Q>>2]|0}c[P>>2]=(X-Y|0)/20|0}if(!(o&16)){l=f;return}Fj(i,(c[a+400>>2]|0)+76|0,d-b|0);if(k){k=a+88|0;o=a+144|0;Y=a+96|0;X=b;do{b=c[(c[k>>2]|0)+(X<<2)>>2]|0;do if(!(b&2)){P=c[(c[o>>2]|0)+(X<<2)>>2]|0;if(!(b&28)){if(!P)break;if(!(c[P+12>>2]&2))break}P=c[Y>>2]|0;Hj(i,P+(X<<3)|0,X,Ya[c[(c[e>>2]|0)+8>>2]&31](e,X)|0)}while(0);X=X+1|0}while((X|0)<(d|0))}L=+g[a+32>>2]*.75;Ij(i,L*.5,L*2.0);c[j>>2]=1988;c[j+4>>2]=a;c[j+8>>2]=e;Jj(i,j);j=a+264|0;e=c[j>>2]|0;d=a+268|0;a=c[d>>2]|0;X=e+(a*60|0)|0;c[h>>2]=28;Y=a*60|0;a=(Y|0)/60|0;if((Y|0)>7680){Y=(a|0)<35791394?a:35791394;while(1){o=en(Y*60|0,10999)|0;if(o|0){Z=o;_=Y;break}Y=Y>>>1;if(!Y){Z=0;_=0;break}}$=Z;aa=_}else{$=0;aa=0}zk(e,X,h,a,$,aa);if($|0)fn($);$=c[j>>2]|0;aa=c[d>>2]|0;a=$+(aa*60|0)|0;h=$;c:do switch(aa|0){case 0:{ba=$;W=73;break}case 1:{ca=a;da=h;break}default:{X=$;e=$+60|0;_=c[$>>2]|0;while(1){Z=_;_=c[e>>2]|0;if(((Z|0)==(_|0)?(c[X+4>>2]|0)==(c[X+64>>2]|0):0)?(c[X+8>>2]|0)==(c[X+68>>2]|0):0){ba=X;W=73;break c}Z=e+60|0;if((Z|0)==(a|0)){ca=a;da=h;break}else{Y=e;e=Z;X=Y}}}}while(0);if((W|0)==73)if((ba|0)==(a|0)){ca=a;da=h}else{h=ba+60|0;W=ba;d:while(1){ba=W+4|0;$=W+8|0;aa=h;do{X=aa;aa=aa+60|0;if((aa|0)==(a|0))break d;if((c[W>>2]|0)!=(c[aa>>2]|0))break;if((c[ba>>2]|0)!=(c[X+64>>2]|0))break}while((c[$>>2]|0)==(c[X+68>>2]|0));$=W+60|0;ba=$;X=aa;e=ba+60|0;do{c[ba>>2]=c[X>>2];ba=ba+4|0;X=X+4|0}while((ba|0)<(e|0));h=aa;W=$}ca=W+60|0;da=c[j>>2]|0}c[d>>2]=(ca-da|0)/60|0;Gj(i);l=f;return}function qk(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,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;f=l;l=l+16|0;g=f;h=b+400|0;if(c[(c[h>>2]|0)+102876>>2]&2|0){l=f;return}i=e+4|0;j=e+8|0;Zj(b,c[i>>2]|0,c[j>>2]|0,c[b+44>>2]|0);k=d+4|0;m=d+8|0;Zj(b,c[k>>2]|0,c[m>>2]|0,c[i>>2]|0);n=c[i>>2]|0;c[g>>2]=1960;c[g+4>>2]=n;ok(b,1);pk(b,c[k>>2]|0,c[j>>2]|0,g);g=c[i>>2]|0;k=c[j>>2]|0;if((g|0)<(k|0)){n=b+144|0;o=g;do{c[(c[n>>2]|0)+(o<<2)>>2]=d;o=o+1|0}while((o|0)<(k|0))}k=d+12|0;d=c[k>>2]|0;o=c[e+12>>2]|d;n=(o^d)<<4&16|o;if(d&~n|0)a[b+20>>0]=1;d=b+16|0;g=c[d>>2]|0;if(n&~g|0){if(!(o&1))p=g;else{o=b+132|0;q=c[o>>2]|0;if(!q){r=b+48|0;s=c[r>>2]|0;if(!s){Qj(b,256);t=c[r>>2]|0}else t=s;s=Pl(c[h>>2]|0,t<<2)|0;Nn(s|0,0,c[r>>2]<<2|0)|0;u=s;v=c[d>>2]|0}else{u=q;v=g}c[o>>2]=u;p=v}c[d>>2]=p|n}c[k>>2]=n;c[m>>2]=c[j>>2];c[i>>2]=c[j>>2];Tj(b,e);l=f;return}function rk(a){a=a|0;return}function sk(a){a=a|0;fn(a);return}function tk(a,b){a=a|0;b=b|0;return 1}function uk(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=c[a+4>>2]|0;a=(e|0)<=(b|0);b=(e|0)>(d|0);if(a|b)return b&a|0;else return 1;return 0}function vk(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;f=c[a+4>>2]|0;a=(f|0)>(b|0);b=(f|0)>(d|0);if((f|0)>(e|0)|(a|b))return (f|0)<=(e|0)|a&b^1|0;else return 0;return 0}function wk(a,b){a=a|0;b=b|0;var d=0,e=0;d=(c[a>>2]|0)-(c[b>>2]|0)|0;if(!d){e=(c[a+4>>2]|0)<(c[b+4>>2]|0);return e|0}else{e=(d|0)<0;return e|0}return 0}function xk(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,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;h=l;l=l+32|0;i=h;switch(e|0){case 2:{j=b+-20|0;if(!(Ya[c[d>>2]&31](j,a)|0)){l=h;return};c[i>>2]=c[a>>2];c[i+4>>2]=c[a+4>>2];c[i+8>>2]=c[a+8>>2];c[i+12>>2]=c[a+12>>2];c[i+16>>2]=c[a+16>>2];c[a>>2]=c[j>>2];c[a+4>>2]=c[j+4>>2];c[a+8>>2]=c[j+8>>2];c[a+12>>2]=c[j+12>>2];c[a+16>>2]=c[j+16>>2];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];c[j+16>>2]=c[i+16>>2];l=h;return}case 1:case 0:{l=h;return}default:{if((e|0)<129){if((a|0)==(b|0)){l=h;return}j=a+20|0;if((j|0)==(b|0)){l=h;return}k=j;do{c[i>>2]=c[k>>2];c[i+4>>2]=c[k+4>>2];c[i+8>>2]=c[k+8>>2];c[i+12>>2]=c[k+12>>2];c[i+16>>2]=c[k+16>>2];a:do if((k|0)==(a|0))m=a;else{j=k;while(1){n=j;j=j+-20|0;if(!(Ya[c[d>>2]&31](i,j)|0)){m=n;break a};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];c[n+16>>2]=c[j+16>>2];if((j|0)==(a|0)){m=a;break}}}while(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];c[m+16>>2]=c[i+16>>2];k=k+20|0}while((k|0)!=(b|0));l=h;return}k=e>>>1;i=a+(k*20|0)|0;if((e|0)>(g|0)){xk(a,i,d,k,f,g);m=e-k|0;xk(i,b,d,m,f,g);Gk(a,i,b,d,k,m,f,g);l=h;return}Fk(a,i,d,k,f);g=f+(k*20|0)|0;Fk(i,b,d,e-k|0,g);k=f+(e*20|0)|0;e=a;a=g;b=f;while(1){if((a|0)==(k|0)){o=16;break}if(Ya[c[d>>2]&31](a,b)|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];c[e+16>>2]=c[a+16>>2];p=a+20|0;q=b}else{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[e+16>>2]=c[b+16>>2];p=a;q=b+20|0}r=e+20|0;if((q|0)==(g|0)){o=14;break}else{e=r;a=p;b=q}}if((o|0)==14){if((p|0)==(k|0)){l=h;return}else{s=r;t=p}while(1){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];c[s+16>>2]=c[t+16>>2];t=t+20|0;if((t|0)==(k|0))break;else s=s+20|0}l=h;return}else if((o|0)==16){if((b|0)==(g|0)){l=h;return}else{u=e;v=b}while(1){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[u+16>>2]=c[v+16>>2];v=v+20|0;if((v|0)==(g|0))break;else u=u+20|0}l=h;return}}}}function yk(a,b){a=a|0;b=b|0;var d=0,e=0;d=(c[a>>2]|0)-(c[b>>2]|0)|0;if(d|0){e=(d|0)<0;return e|0}d=(c[a+4>>2]|0)-(c[b+4>>2]|0)|0;if(!d){e=(c[a+8>>2]|0)<(c[b+8>>2]|0);return e|0}else{e=(d|0)<0;return e|0}return 0}function zk(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,k=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;h=l;l=l+64|0;i=h;switch(e|0){case 2:{j=b+-60|0;if(!(Ya[c[d>>2]&31](j,a)|0)){l=h;return}k=i;m=a;n=k+60|0;do{c[k>>2]=c[m>>2];k=k+4|0;m=m+4|0}while((k|0)<(n|0));k=a;m=j;n=k+60|0;do{c[k>>2]=c[m>>2];k=k+4|0;m=m+4|0}while((k|0)<(n|0));k=j;m=i;n=k+60|0;do{c[k>>2]=c[m>>2];k=k+4|0;m=m+4|0}while((k|0)<(n|0));l=h;return}case 1:case 0:{l=h;return}default:{if((e|0)<129){if((a|0)==(b|0)){l=h;return}j=a+60|0;if((j|0)==(b|0)){l=h;return}o=j;do{k=i;m=o;n=k+60|0;do{c[k>>2]=c[m>>2];k=k+4|0;m=m+4|0}while((k|0)<(n|0));a:do if((o|0)==(a|0))p=a;else{j=o;while(1){q=j;j=j+-60|0;if(!(Ya[c[d>>2]&31](i,j)|0)){p=q;break a}k=q;m=j;n=k+60|0;do{c[k>>2]=c[m>>2];k=k+4|0;m=m+4|0}while((k|0)<(n|0));if((j|0)==(a|0)){p=a;break}}}while(0);k=p;m=i;n=k+60|0;do{c[k>>2]=c[m>>2];k=k+4|0;m=m+4|0}while((k|0)<(n|0));o=o+60|0}while((o|0)!=(b|0));l=h;return}o=e>>>1;i=a+(o*60|0)|0;if((e|0)>(g|0)){zk(a,i,d,o,f,g);p=e-o|0;zk(i,b,d,p,f,g);Bk(a,i,b,d,o,p,f,g);l=h;return}Ak(a,i,d,o,f);g=f+(o*60|0)|0;Ak(i,b,d,e-o|0,g);o=f+(e*60|0)|0;e=a;a=g;b=f;while(1){if((a|0)==(o|0)){r=16;break}if(Ya[c[d>>2]&31](a,b)|0){k=e;m=a;n=k+60|0;do{c[k>>2]=c[m>>2];k=k+4|0;m=m+4|0}while((k|0)<(n|0));s=a+60|0;t=b}else{k=e;m=b;n=k+60|0;do{c[k>>2]=c[m>>2];k=k+4|0;m=m+4|0}while((k|0)<(n|0));s=a;t=b+60|0}u=e+60|0;if((t|0)==(g|0)){r=14;break}else{e=u;a=s;b=t}}if((r|0)==14){if((s|0)==(o|0)){l=h;return}else{v=u;w=s}while(1){k=v;m=w;n=k+60|0;do{c[k>>2]=c[m>>2];k=k+4|0;m=m+4|0}while((k|0)<(n|0));w=w+60|0;if((w|0)==(o|0))break;else v=v+60|0}l=h;return}else if((r|0)==16){if((b|0)==(g|0)){l=h;return}else{x=e;y=b}while(1){k=x;m=y;n=k+60|0;do{c[k>>2]=c[m>>2];k=k+4|0;m=m+4|0}while((k|0)<(n|0));y=y+60|0;if((y|0)==(g|0))break;else x=x+60|0}l=h;return}}}}function Ak(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;switch(e|0){case 1:{g=f;h=a;i=g+60|0;do{c[g>>2]=c[h>>2];g=g+4|0;h=h+4|0}while((g|0)<(i|0));return}case 2:{j=b+-60|0;if(Ya[c[d>>2]&31](j,a)|0){g=f;h=j;i=g+60|0;do{c[g>>2]=c[h>>2];g=g+4|0;h=h+4|0}while((g|0)<(i|0));g=f+60|0;h=a;i=g+60|0;do{c[g>>2]=c[h>>2];g=g+4|0;h=h+4|0}while((g|0)<(i|0));return}else{g=f;h=a;i=g+60|0;do{c[g>>2]=c[h>>2];g=g+4|0;h=h+4|0}while((g|0)<(i|0));g=f+60|0;h=j;i=g+60|0;do{c[g>>2]=c[h>>2];g=g+4|0;h=h+4|0}while((g|0)<(i|0));return}break}case 0:return;default:{if((e|0)<9){if((a|0)==(b|0))return;g=f;h=a;i=g+60|0;do{c[g>>2]=c[h>>2];g=g+4|0;h=h+4|0}while((g|0)<(i|0));j=a+60|0;if((j|0)==(b|0))return;else{k=f;l=j}do{j=k;k=k+60|0;if(Ya[c[d>>2]&31](l,j)|0){g=k;h=j;i=g+60|0;do{c[g>>2]=c[h>>2];g=g+4|0;h=h+4|0}while((g|0)<(i|0));a:do if((j|0)==(f|0))m=f;else{n=j;while(1){o=n;n=n+-60|0;if(!(Ya[c[d>>2]&31](l,n)|0)){m=o;break a}g=o;h=n;i=g+60|0;do{c[g>>2]=c[h>>2];g=g+4|0;h=h+4|0}while((g|0)<(i|0));if((n|0)==(f|0)){m=f;break}}}while(0);g=m;h=l;i=g+60|0;do{c[g>>2]=c[h>>2];g=g+4|0;h=h+4|0}while((g|0)<(i|0))}else{g=k;h=l;i=g+60|0;do{c[g>>2]=c[h>>2];g=g+4|0;h=h+4|0}while((g|0)<(i|0))}l=l+60|0}while((l|0)!=(b|0));return}l=e>>>1;k=a+(l*60|0)|0;zk(a,k,d,l,f,l);m=e-l|0;zk(k,b,d,m,f+(l*60|0)|0,m);b:do if(!l){p=k;q=f}else{m=k;e=f;j=a;while(1){if((m|0)==(b|0))break;if(Ya[c[d>>2]&31](m,j)|0){g=e;h=m;i=g+60|0;do{c[g>>2]=c[h>>2];g=g+4|0;h=h+4|0}while((g|0)<(i|0));r=j;s=m+60|0}else{g=e;h=j;i=g+60|0;do{c[g>>2]=c[h>>2];g=g+4|0;h=h+4|0}while((g|0)<(i|0));r=j+60|0;s=m}n=e+60|0;if((r|0)==(k|0)){p=s;q=n;break b}else{m=s;e=n;j=r}}if((j|0)==(k|0))return;else{t=j;u=e}while(1){g=u;h=t;i=g+60|0;do{c[g>>2]=c[h>>2];g=g+4|0;h=h+4|0}while((g|0)<(i|0));t=t+60|0;if((t|0)==(k|0))break;else u=u+60|0}return}while(0);if((p|0)==(b|0))return;else{v=p;w=q}while(1){g=w;h=v;i=g+60|0;do{c[g>>2]=c[h>>2];g=g+4|0;h=h+4|0}while((g|0)<(i|0));v=v+60|0;if((v|0)==(b|0))break;else w=w+60|0}return}}}function Bk(a,b,d,e,f,g,h,i){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=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;j=l;l=l+64|0;k=j+4|0;m=j;if(!g){l=j;return}n=a;a=b;b=d;d=f;f=g;a:while(1){if(!((f|0)>(i|0)&(d|0)>(i|0))){o=5;break}if(!d){o=65;break}else{p=n;q=d}while(1){if(Ya[c[e>>2]&31](a,p)|0)break;g=q+-1|0;if(!g){o=65;break a}else{p=p+60|0;q=g}}if((q|0)<(f|0)){g=(f|0)/2|0;r=a+(g*60|0)|0;s=p;t=a-s|0;if(!t)u=p;else{v=(t|0)/60|0;t=p;while(1){w=(v|0)/2|0;x=t+(w*60|0)|0;y=Ya[c[e>>2]&31](r,x)|0;v=y?w:v+-1-w|0;w=y?t:x+60|0;if(!v){u=w;break}else t=w}}z=r;A=u;B=g;C=(u-s|0)/60|0}else{if((q|0)==1){o=36;break}t=(q|0)/2|0;v=p+(t*60|0)|0;w=a;x=b-w|0;if(!x)D=a;else{y=(x|0)/60|0;x=a;while(1){E=(y|0)/2|0;F=x+(E*60|0)|0;G=Ya[c[e>>2]&31](F,v)|0;y=G?y+-1-E|0:E;E=G?F+60|0:x;if(!y){D=E;break}else x=E}}z=D;A=v;B=(D-w|0)/60|0;C=t}x=q-C|0;y=f-B|0;b:do if((A|0)!=(a|0))if((a|0)==(z|0))H=A;else{if((A+60|0)==(a|0)){I=k;J=A;K=I+60|0;do{c[I>>2]=c[J>>2];I=I+4|0;J=J+4|0}while((I|0)<(K|0));s=z-a|0;if(s|0)Vn(A|0,a|0,s|0)|0;g=A+(((s|0)/60|0)*60|0)|0;I=g;J=k;K=I+60|0;do{c[I>>2]=c[J>>2];I=I+4|0;J=J+4|0}while((I|0)<(K|0));H=g;break}if((a+60|0)==(z|0)){s=z+-60|0;I=k;J=s;K=I+60|0;do{c[I>>2]=c[J>>2];I=I+4|0;J=J+4|0}while((I|0)<(K|0));g=s-A|0;if(!g){L=z;M=A}else{r=z+(((g|0)/-60|0)*60|0)|0;Vn(r|0,A|0,g|0)|0;L=r;M=A}I=M;J=k;K=I+60|0;do{c[I>>2]=c[J>>2];I=I+4|0;J=J+4|0}while((I|0)<(K|0));H=L;break}s=a;r=(s-A|0)/60|0;g=z;E=(g-s|0)/60|0;if((r|0)==(E|0)){s=a;F=A;while(1){I=k;J=F;K=I+60|0;do{c[I>>2]=c[J>>2];I=I+4|0;J=J+4|0}while((I|0)<(K|0));I=F;J=s;K=I+60|0;do{c[I>>2]=c[J>>2];I=I+4|0;J=J+4|0}while((I|0)<(K|0));I=s;J=k;K=I+60|0;do{c[I>>2]=c[J>>2];I=I+4|0;J=J+4|0}while((I|0)<(K|0));F=F+60|0;if((F|0)==(a|0)){H=a;break b}else s=s+60|0}}else{N=r;O=E}while(1){s=(N|0)%(O|0)|0;if(!s)break;else{F=O;O=s;N=F}}if(O|0){F=A+(O*60|0)|0;do{F=F+-60|0;I=k;J=F;K=I+60|0;do{c[I>>2]=c[J>>2];I=I+4|0;J=J+4|0}while((I|0)<(K|0));s=F+(r*60|0)|0;G=F;while(1){I=G;J=s;K=I+60|0;do{c[I>>2]=c[J>>2];I=I+4|0;J=J+4|0}while((I|0)<(K|0));P=(g-s|0)/60|0;Q=(r|0)<(P|0)?s+(r*60|0)|0:A+((r-P|0)*60|0)|0;if((Q|0)==(F|0))break;else{P=s;s=Q;G=P}}I=s;J=k;K=I+60|0;do{c[I>>2]=c[J>>2];I=I+4|0;J=J+4|0}while((I|0)<(K|0))}while((F|0)!=(A|0))}H=A+(E*60|0)|0}else H=z;while(0);if((B+C|0)<(y+x|0)){Bk(p,A,H,e,C,B,h,i);R=z;S=b;T=y;U=H;V=x}else{Bk(H,z,b,e,x,y,h,i);R=A;S=H;T=B;U=p;V=C}if(!T){o=65;break}else{n=U;a=R;b=S;d=V;f=T}}if((o|0)==5){if((d|0)>(f|0)){if((a|0)==(b|0))W=h;else{f=a;d=h;while(1){I=d;J=f;K=I+60|0;do{c[I>>2]=c[J>>2];I=I+4|0;J=J+4|0}while((I|0)<(K|0));f=f+60|0;y=d+60|0;if((f|0)==(b|0)){W=y;break}else d=y}}c[k>>2]=a;c[m>>2]=W;c:do if((W|0)!=(h|0)){if((a|0)==(n|0)){X=W;Y=b}else{d=a;f=W;y=b;while(1){x=d+-60|0;T=f+-60|0;V=y+-60|0;if(Ya[c[e>>2]&31](x,T)|0){I=V;J=T;K=I+60|0;do{c[I>>2]=c[J>>2];I=I+4|0;J=J+4|0}while((I|0)<(K|0));Z=m;_=f}else{I=V;J=x;K=I+60|0;do{c[I>>2]=c[J>>2];I=I+4|0;J=J+4|0}while((I|0)<(K|0));Z=k;_=d}c[Z>>2]=_+-60;x=c[m>>2]|0;if((x|0)==(h|0))break c;d=c[k>>2]|0;if((d|0)==(n|0)){X=x;Y=V;break}else{f=x;y=V}}}if((X|0)!=(h|0)){y=X;f=Y;do{y=y+-60|0;f=f+-60|0;I=f;J=y;K=I+60|0;do{c[I>>2]=c[J>>2];I=I+4|0;J=J+4|0}while((I|0)<(K|0))}while((y|0)!=(h|0))}}while(0);l=j;return}if((n|0)==(a|0)){l=j;return}else{$=n;aa=h}do{I=aa;J=$;K=I+60|0;do{c[I>>2]=c[J>>2];I=I+4|0;J=J+4|0}while((I|0)<(K|0));$=$+60|0;aa=aa+60|0}while(($|0)!=(a|0));$=c[e>>2]|0;if((aa|0)==(h|0)){l=j;return}else{ba=n;ca=a;da=h}while(1){if((ca|0)==(b|0))break;if(Ya[$&31](ca,da)|0){I=ba;J=ca;K=I+60|0;do{c[I>>2]=c[J>>2];I=I+4|0;J=J+4|0}while((I|0)<(K|0));ea=da;fa=ca+60|0}else{I=ba;J=da;K=I+60|0;do{c[I>>2]=c[J>>2];I=I+4|0;J=J+4|0}while((I|0)<(K|0));ea=da+60|0;fa=ca}if((ea|0)==(aa|0)){o=65;break}else{ba=ba+60|0;ca=fa;da=ea}}if((o|0)==65){l=j;return}ea=aa-da|0;if(!ea){l=j;return}Vn(ba|0,da|0,ea|0)|0;l=j;return}else if((o|0)==36){I=k;J=p;K=I+60|0;do{c[I>>2]=c[J>>2];I=I+4|0;J=J+4|0}while((I|0)<(K|0));I=p;J=a;K=I+60|0;do{c[I>>2]=c[J>>2];I=I+4|0;J=J+4|0}while((I|0)<(K|0));I=a;J=k;K=I+60|0;do{c[I>>2]=c[J>>2];I=I+4|0;J=J+4|0}while((I|0)<(K|0));l=j;return}else if((o|0)==65){l=j;return}}function Ck(a){a=a|0;return}function Dk(a){a=a|0;fn(a);return}function Ek(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.0,k=0,l=0.0,m=0.0,n=0,o=0.0,p=0,q=0.0,r=0.0,s=0,t=0.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,G=0,H=0,I=0.0,J=0.0,K=0.0;f=a+4|0;h=c[(c[f>>2]|0)+88>>2]|0;i=c[h+(d<<2)>>2]|c[h+(b<<2)>>2]|c[h+(e<<2)>>2];if(!(i&16))return;h=c[a+8>>2]|0;if(!(Wa[c[(c[h>>2]|0)+16>>2]&7](h,b,d,e)|0))return;h=c[f>>2]|0;f=c[h+96>>2]|0;a=f+(b<<3)|0;j=+g[a>>2];k=f+(d<<3)|0;l=+g[k>>2];m=j-l;n=f+(b<<3)+4|0;o=+g[n>>2];p=f+(d<<3)+4|0;q=+g[p>>2];r=o-q;s=f+(e<<3)|0;t=+g[s>>2];u=l-t;v=f+(e<<3)+4|0;l=+g[v>>2];w=q-l;q=t-j;j=l-o;o=+g[h+40>>2]*4.0;if(m*m+r*r>o)return;if(u*u+w*w>o)return;if(q*q+j*j>o)return;f=c[h+144>>2]|0;x=c[f+(b<<2)>>2]|0;y=c[f+(d<<2)>>2]|0;z=c[f+(e<<2)>>2]|0;f=h+264|0;A=h+268|0;B=c[A>>2]|0;C=h+272|0;D=c[C>>2]|0;if((B|0)>=(D|0)?(E=(D|0)==0?256:D<<1,(D|0)<(E|0)):0){D=h+276|0;h=Pl(c[D>>2]|0,E*60|0)|0;F=c[f>>2]|0;if(!F)G=f;else{Qn(h|0,F|0,(c[A>>2]|0)*60|0)|0;Ql(c[D>>2]|0,c[f>>2]|0,(c[C>>2]|0)*60|0);G=f}c[C>>2]=E;c[G>>2]=h;H=c[A>>2]|0}else H=B;B=c[f>>2]|0;c[A>>2]=H+1;c[B+(H*60|0)>>2]=b;c[B+(H*60|0)+4>>2]=d;c[B+(H*60|0)+8>>2]=e;c[B+(H*60|0)+12>>2]=i;if(!x)I=1.0;else I=+g[x+16>>2];if(!y)J=1.0;else J=+g[y+16>>2];o=I>2];g[B+(H*60|0)+16>>2]=o>2];o=+g[n>>2];J=(K+ +g[k>>2]+ +g[s>>2])*.3333333432674408;I=(o+ +g[p>>2]+ +g[v>>2])*.3333333432674408;g[B+(H*60|0)+20>>2]=K-J;g[B+(H*60|0)+24>>2]=o-I;o=+g[p>>2]-I;g[B+(H*60|0)+28>>2]=+g[k>>2]-J;g[B+(H*60|0)+32>>2]=o;o=+g[v>>2]-I;g[B+(H*60|0)+36>>2]=+g[s>>2]-J;g[B+(H*60|0)+40>>2]=o;g[B+(H*60|0)+44>>2]=-(m*q+r*j);g[B+(H*60|0)+48>>2]=-(m*u+r*w);g[B+(H*60|0)+52>>2]=-(u*q+w*j);j=+g[a>>2];w=+g[p>>2];q=+g[n>>2];u=+g[k>>2];r=+g[v>>2];m=+g[s>>2];g[B+(H*60|0)+56>>2]=q*m-j*r+(j*w-q*u+(u*r-w*m));return}function Fk(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;switch(e|0){case 1:{c[f>>2]=c[a>>2];c[f+4>>2]=c[a+4>>2];c[f+8>>2]=c[a+8>>2];c[f+12>>2]=c[a+12>>2];c[f+16>>2]=c[a+16>>2];return}case 2:{g=b+-20|0;if(Ya[c[d>>2]&31](g,a)|0){c[f>>2]=c[g>>2];c[f+4>>2]=c[g+4>>2];c[f+8>>2]=c[g+8>>2];c[f+12>>2]=c[g+12>>2];c[f+16>>2]=c[g+16>>2];h=f+20|0;c[h>>2]=c[a>>2];c[h+4>>2]=c[a+4>>2];c[h+8>>2]=c[a+8>>2];c[h+12>>2]=c[a+12>>2];c[h+16>>2]=c[a+16>>2];return}else{c[f>>2]=c[a>>2];c[f+4>>2]=c[a+4>>2];c[f+8>>2]=c[a+8>>2];c[f+12>>2]=c[a+12>>2];c[f+16>>2]=c[a+16>>2];h=f+20|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];c[h+16>>2]=c[g+16>>2];return}break}case 0:return;default:{if((e|0)<9){if((a|0)==(b|0))return;c[f>>2]=c[a>>2];c[f+4>>2]=c[a+4>>2];c[f+8>>2]=c[a+8>>2];c[f+12>>2]=c[a+12>>2];c[f+16>>2]=c[a+16>>2];g=a+20|0;if((g|0)==(b|0))return;else{i=f;j=g}do{g=i;i=i+20|0;if(Ya[c[d>>2]&31](j,g)|0){c[i>>2]=c[g>>2];c[i+4>>2]=c[g+4>>2];c[i+8>>2]=c[g+8>>2];c[i+12>>2]=c[g+12>>2];c[i+16>>2]=c[g+16>>2];a:do if((g|0)==(f|0))k=f;else{h=g;while(1){l=h;h=h+-20|0;if(!(Ya[c[d>>2]&31](j,h)|0)){k=l;break a};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];c[l+16>>2]=c[h+16>>2];if((h|0)==(f|0)){k=f;break}}}while(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];c[k+16>>2]=c[j+16>>2]}else{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];c[i+16>>2]=c[j+16>>2]}j=j+20|0}while((j|0)!=(b|0));return}j=e>>>1;i=a+(j*20|0)|0;xk(a,i,d,j,f,j);k=e-j|0;xk(i,b,d,k,f+(j*20|0)|0,k);b:do if(!j){m=i;n=f}else{k=i;e=f;g=a;while(1){if((k|0)==(b|0))break;if(Ya[c[d>>2]&31](k,g)|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];c[e+16>>2]=c[k+16>>2];o=g;p=k+20|0}else{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];c[e+16>>2]=c[g+16>>2];o=g+20|0;p=k}h=e+20|0;if((o|0)==(i|0)){m=p;n=h;break b}else{k=p;e=h;g=o}}if((g|0)==(i|0))return;else{q=g;r=e}while(1){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];c[r+16>>2]=c[q+16>>2];q=q+20|0;if((q|0)==(i|0))break;else r=r+20|0}return}while(0);if((m|0)==(b|0))return;else{s=m;t=n}while(1){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];c[t+16>>2]=c[s+16>>2];s=s+20|0;if((s|0)==(b|0))break;else t=t+20|0}return}}}function Gk(a,b,d,e,f,g,h,i){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=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;j=l;l=l+32|0;k=j+4|0;m=j;if(!g){l=j;return}n=a;a=b;b=d;d=f;f=g;a:while(1){if(!((f|0)>(i|0)&(d|0)>(i|0))){o=5;break}if(!d){o=65;break}else{p=n;q=d}while(1){if(Ya[c[e>>2]&31](a,p)|0)break;g=q+-1|0;if(!g){o=65;break a}else{p=p+20|0;q=g}}if((q|0)<(f|0)){g=(f|0)/2|0;r=a+(g*20|0)|0;s=p;t=a-s|0;if(!t)u=p;else{v=(t|0)/20|0;t=p;while(1){w=(v|0)/2|0;x=t+(w*20|0)|0;y=Ya[c[e>>2]&31](r,x)|0;v=y?w:v+-1-w|0;w=y?t:x+20|0;if(!v){u=w;break}else t=w}}z=r;A=u;B=g;C=(u-s|0)/20|0}else{if((q|0)==1){o=36;break}t=(q|0)/2|0;v=p+(t*20|0)|0;w=a;x=b-w|0;if(!x)D=a;else{y=(x|0)/20|0;x=a;while(1){E=(y|0)/2|0;F=x+(E*20|0)|0;G=Ya[c[e>>2]&31](F,v)|0;y=G?y+-1-E|0:E;E=G?F+20|0:x;if(!y){D=E;break}else x=E}}z=D;A=v;B=(D-w|0)/20|0;C=t}x=q-C|0;y=f-B|0;b:do if((A|0)!=(a|0))if((a|0)==(z|0))H=A;else{if((A+20|0)==(a|0)){c[k>>2]=c[A>>2];c[k+4>>2]=c[A+4>>2];c[k+8>>2]=c[A+8>>2];c[k+12>>2]=c[A+12>>2];c[k+16>>2]=c[A+16>>2];s=z-a|0;if(s|0)Vn(A|0,a|0,s|0)|0;g=A+(((s|0)/20|0)*20|0)|0;c[g>>2]=c[k>>2];c[g+4>>2]=c[k+4>>2];c[g+8>>2]=c[k+8>>2];c[g+12>>2]=c[k+12>>2];c[g+16>>2]=c[k+16>>2];H=g;break}if((a+20|0)==(z|0)){g=z+-20|0;c[k>>2]=c[g>>2];c[k+4>>2]=c[g+4>>2];c[k+8>>2]=c[g+8>>2];c[k+12>>2]=c[g+12>>2];c[k+16>>2]=c[g+16>>2];s=g-A|0;if(!s){I=z;J=A}else{g=z+(((s|0)/-20|0)*20|0)|0;Vn(g|0,A|0,s|0)|0;I=g;J=A};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[J+16>>2]=c[k+16>>2];H=I;break}g=a;s=(g-A|0)/20|0;r=z;E=(r-g|0)/20|0;if((s|0)==(E|0)){g=a;F=A;while(1){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[k+16>>2]=c[F+16>>2];c[F>>2]=c[g>>2];c[F+4>>2]=c[g+4>>2];c[F+8>>2]=c[g+8>>2];c[F+12>>2]=c[g+12>>2];c[F+16>>2]=c[g+16>>2];c[g>>2]=c[k>>2];c[g+4>>2]=c[k+4>>2];c[g+8>>2]=c[k+8>>2];c[g+12>>2]=c[k+12>>2];c[g+16>>2]=c[k+16>>2];F=F+20|0;if((F|0)==(a|0)){H=a;break b}else g=g+20|0}}else{K=s;L=E}while(1){g=(K|0)%(L|0)|0;if(!g)break;else{F=L;L=g;K=F}}if(L|0){F=A+(L*20|0)|0;do{F=F+-20|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[k+16>>2]=c[F+16>>2];g=F+(s*20|0)|0;G=F;while(1){c[G>>2]=c[g>>2];c[G+4>>2]=c[g+4>>2];c[G+8>>2]=c[g+8>>2];c[G+12>>2]=c[g+12>>2];c[G+16>>2]=c[g+16>>2];M=(r-g|0)/20|0;N=(s|0)<(M|0)?g+(s*20|0)|0:A+((s-M|0)*20|0)|0;if((N|0)==(F|0))break;else{M=g;g=N;G=M}}c[g>>2]=c[k>>2];c[g+4>>2]=c[k+4>>2];c[g+8>>2]=c[k+8>>2];c[g+12>>2]=c[k+12>>2];c[g+16>>2]=c[k+16>>2]}while((F|0)!=(A|0))}H=A+(E*20|0)|0}else H=z;while(0);if((B+C|0)<(y+x|0)){Gk(p,A,H,e,C,B,h,i);O=z;P=b;Q=y;R=H;S=x}else{Gk(H,z,b,e,x,y,h,i);O=A;P=H;Q=B;R=p;S=C}if(!Q){o=65;break}else{n=R;a=O;b=P;d=S;f=Q}}if((o|0)==5){if((d|0)>(f|0)){if((a|0)==(b|0))T=h;else{f=a;d=h;while(1){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];c[d+16>>2]=c[f+16>>2];f=f+20|0;Q=d+20|0;if((f|0)==(b|0)){T=Q;break}else d=Q}}c[k>>2]=a;c[m>>2]=T;c:do if((T|0)!=(h|0)){if((a|0)==(n|0)){U=T;V=b}else{d=a;f=T;Q=b;while(1){S=d+-20|0;P=f+-20|0;O=Q+-20|0;if(Ya[c[e>>2]&31](S,P)|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[O+16>>2]=c[P+16>>2];W=m;X=f}else{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[O+16>>2]=c[S+16>>2];W=k;X=d}c[W>>2]=X+-20;S=c[m>>2]|0;if((S|0)==(h|0))break c;d=c[k>>2]|0;if((d|0)==(n|0)){U=S;V=O;break}else{f=S;Q=O}}}if((U|0)!=(h|0)){Q=U;f=V;do{Q=Q+-20|0;f=f+-20|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[f+16>>2]=c[Q+16>>2]}while((Q|0)!=(h|0))}}while(0);l=j;return}if((n|0)==(a|0)){l=j;return}else{Y=n;Z=h}do{c[Z>>2]=c[Y>>2];c[Z+4>>2]=c[Y+4>>2];c[Z+8>>2]=c[Y+8>>2];c[Z+12>>2]=c[Y+12>>2];c[Z+16>>2]=c[Y+16>>2];Y=Y+20|0;Z=Z+20|0}while((Y|0)!=(a|0));Y=c[e>>2]|0;if((Z|0)==(h|0)){l=j;return}else{_=n;$=a;aa=h}while(1){if(($|0)==(b|0))break;if(Ya[Y&31]($,aa)|0){c[_>>2]=c[$>>2];c[_+4>>2]=c[$+4>>2];c[_+8>>2]=c[$+8>>2];c[_+12>>2]=c[$+12>>2];c[_+16>>2]=c[$+16>>2];ba=aa;ca=$+20|0}else{c[_>>2]=c[aa>>2];c[_+4>>2]=c[aa+4>>2];c[_+8>>2]=c[aa+8>>2];c[_+12>>2]=c[aa+12>>2];c[_+16>>2]=c[aa+16>>2];ba=aa+20|0;ca=$}if((ba|0)==(Z|0)){o=65;break}else{_=_+20|0;$=ca;aa=ba}}if((o|0)==65){l=j;return}ba=Z-aa|0;if(!ba){l=j;return}Vn(_|0,aa|0,ba|0)|0;l=j;return}else if((o|0)==36){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];c[k+16>>2]=c[p+16>>2];c[p>>2]=c[a>>2];c[p+4>>2]=c[a+4>>2];c[p+8>>2]=c[a+8>>2];c[p+12>>2]=c[a+12>>2];c[p+16>>2]=c[a+16>>2];c[a>>2]=c[k>>2];c[a+4>>2]=c[k+4>>2];c[a+8>>2]=c[k+8>>2];c[a+12>>2]=c[k+12>>2];c[a+16>>2]=c[k+16>>2];l=j;return}else if((o|0)==65){l=j;return}}function Hk(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,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;e=a;a=b;a:while(1){b=a;f=a+-8|0;g=a+-4|0;h=e;while(1){i=h;b:while(1){j=i;k=b-j|0;l=k>>3;switch(l|0){case 2:{m=5;break a;break}case 3:{m=7;break a;break}case 4:{m=15;break a;break}case 5:{m=16;break a;break}case 1:case 0:{m=83;break a;break}default:{}}if((k|0)<248){m=22;break a}n=(l|0)/2|0;o=i+(n<<3)|0;do if((k|0)>7992){p=(l|0)/4|0;q=i+(p<<3)|0;r=o+(p<<3)|0;s=Pk(i,q,o,r,d)|0;t=r+4|0;if((c[g>>2]|0)>>>0>=(c[t>>2]|0)>>>0){u=s;v=i+(n<<3)+4|0;break}w=r;x=c[w>>2]|0;y=c[w+4>>2]|0;w=f;z=c[w+4>>2]|0;A=r;c[A>>2]=c[w>>2];c[A+4>>2]=z;z=f;c[z>>2]=x;c[z+4>>2]=y;y=s+1|0;z=i+(n<<3)+4|0;if((c[t>>2]|0)>>>0<(c[z>>2]|0)>>>0){t=o;x=c[t>>2]|0;A=c[t+4>>2]|0;t=r;w=c[t+4>>2]|0;B=o;c[B>>2]=c[t>>2];c[B+4>>2]=w;w=r;c[w>>2]=x;c[w+4>>2]=A;A=s+2|0;w=i+(p<<3)+4|0;if((c[z>>2]|0)>>>0<(c[w>>2]|0)>>>0){p=q;x=c[p>>2]|0;r=c[p+4>>2]|0;p=o;B=c[p+4>>2]|0;t=q;c[t>>2]=c[p>>2];c[t+4>>2]=B;B=o;c[B>>2]=x;c[B+4>>2]=r;if((c[w>>2]|0)>>>0<(c[i+4>>2]|0)>>>0){w=i;r=c[w>>2]|0;B=c[w+4>>2]|0;w=q;x=c[w+4>>2]|0;t=i;c[t>>2]=c[w>>2];c[t+4>>2]=x;x=q;c[x>>2]=r;c[x+4>>2]=B;u=s+4|0;v=z}else{u=s+3|0;v=z}}else{u=A;v=z}}else{u=y;v=z}}else{z=i+(n<<3)+4|0;y=c[z>>2]|0;A=i+4|0;s=(c[g>>2]|0)>>>0>>0;if(y>>>0>=(c[A>>2]|0)>>>0){if(!s){u=0;v=z;break}y=o;B=c[y>>2]|0;x=c[y+4>>2]|0;y=f;r=c[y+4>>2]|0;q=o;c[q>>2]=c[y>>2];c[q+4>>2]=r;r=f;c[r>>2]=B;c[r+4>>2]=x;if((c[z>>2]|0)>>>0>=(c[A>>2]|0)>>>0){u=1;v=z;break}A=i;x=c[A>>2]|0;r=c[A+4>>2]|0;A=o;B=c[A+4>>2]|0;q=i;c[q>>2]=c[A>>2];c[q+4>>2]=B;B=o;c[B>>2]=x;c[B+4>>2]=r;u=2;v=z;break}r=i;B=c[r>>2]|0;x=c[r+4>>2]|0;if(s){s=f;r=c[s+4>>2]|0;q=i;c[q>>2]=c[s>>2];c[q+4>>2]=r;r=f;c[r>>2]=B;c[r+4>>2]=x;u=1;v=z;break}r=o;q=c[r+4>>2]|0;s=i;c[s>>2]=c[r>>2];c[s+4>>2]=q;q=o;c[q>>2]=B;c[q+4>>2]=x;if((c[g>>2]|0)>>>0>>0){q=f;s=c[q+4>>2]|0;r=o;c[r>>2]=c[q>>2];c[r+4>>2]=s;s=f;c[s>>2]=B;c[s+4>>2]=x;u=2;v=z}else{u=1;v=z}}while(0);n=i+4|0;l=c[n>>2]|0;k=c[v>>2]|0;if(l>>>0>>0){C=f;D=u;break}else E=f;while(1){z=E;E=E+-8|0;if((i|0)==(E|0))break;if((c[z+-4>>2]|0)>>>0>>0){m=66;break b}}k=i+8|0;if(l>>>0<(c[g>>2]|0)>>>0)F=k;else{if((k|0)==(f|0)){m=83;break a}else G=k;while(1){if(l>>>0<(c[G+4>>2]|0)>>>0)break;k=G+8|0;if((k|0)==(f|0)){m=83;break a}else G=k}l=G;k=c[l>>2]|0;z=c[l+4>>2]|0;l=f;x=c[l+4>>2]|0;s=G;c[s>>2]=c[l>>2];c[s+4>>2]=x;x=f;c[x>>2]=k;c[x+4>>2]=z;F=G+8|0}if((F|0)==(f|0)){m=83;break a}else{H=f;I=F}while(1){z=c[n>>2]|0;x=I;while(1){J=x+8|0;if(z>>>0<(c[x+4>>2]|0)>>>0){K=H;break}else x=J}do{k=K;K=K+-8|0}while(z>>>0<(c[k+-4>>2]|0)>>>0);if(x>>>0>=K>>>0){i=x;continue b}z=x;k=c[z>>2]|0;s=c[z+4>>2]|0;z=K;l=c[z+4>>2]|0;B=x;c[B>>2]=c[z>>2];c[B+4>>2]=l;l=K;c[l>>2]=k;c[l+4>>2]=s;H=K;I=J}}if((m|0)==66){m=0;n=i;s=c[n>>2]|0;l=c[n+4>>2]|0;n=E;k=c[n+4>>2]|0;B=i;c[B>>2]=c[n>>2];c[B+4>>2]=k;k=E;c[k>>2]=s;c[k+4>>2]=l;C=E;D=u+1|0}l=i+8|0;c:do if(l>>>0>>0){k=o;s=C;B=l;n=D;while(1){z=c[k+4>>2]|0;r=B;while(1){L=r+8|0;if((c[r+4>>2]|0)>>>0>>0)r=L;else{M=s;break}}do{x=M;M=M+-8|0}while((c[x+-4>>2]|0)>>>0>=z>>>0);if(r>>>0>M>>>0){N=k;O=n;P=r;break c}z=r;x=c[z>>2]|0;q=c[z+4>>2]|0;z=M;A=c[z+4>>2]|0;y=r;c[y>>2]=c[z>>2];c[y+4>>2]=A;A=M;c[A>>2]=x;c[A+4>>2]=q;k=(k|0)==(r|0)?M:k;s=M;B=L;n=n+1|0}}else{N=o;O=D;P=l}while(0);if((P|0)!=(N|0)?(c[N+4>>2]|0)>>>0<(c[P+4>>2]|0)>>>0:0){l=P;n=c[l>>2]|0;B=c[l+4>>2]|0;l=N;s=c[l+4>>2]|0;k=P;c[k>>2]=c[l>>2];c[k+4>>2]=s;s=N;c[s>>2]=n;c[s+4>>2]=B;Q=O+1|0}else Q=O;if(!Q){R=Qk(i,P,d)|0;B=P+8|0;if(Qk(B,a,d)|0){m=82;break}if(R){h=B;continue}}B=P;if((B-j|0)>=(b-B|0)){m=81;break}Hk(i,P,d);h=P+8|0}if((m|0)==81){m=0;Hk(P+8|0,a,d);e=i;a=P;continue}else if((m|0)==82){m=0;if(R){m=83;break}else{e=i;a=P;continue}}}if((m|0)==5){if((c[g>>2]|0)>>>0>=(c[i+4>>2]|0)>>>0)return;P=i;e=c[P>>2]|0;R=c[P+4>>2]|0;P=f;j=c[P+4>>2]|0;Q=i;c[Q>>2]=c[P>>2];c[Q+4>>2]=j;j=f;c[j>>2]=e;c[j+4>>2]=R;return}else if((m|0)==7){R=i+8|0;j=i+12|0;e=c[j>>2]|0;Q=i+4|0;P=(c[g>>2]|0)>>>0>>0;if(e>>>0>=(c[Q>>2]|0)>>>0){if(!P)return;e=R;O=c[e>>2]|0;N=c[e+4>>2]|0;e=f;D=c[e+4>>2]|0;o=R;c[o>>2]=c[e>>2];c[o+4>>2]=D;D=f;c[D>>2]=O;c[D+4>>2]=N;if((c[j>>2]|0)>>>0>=(c[Q>>2]|0)>>>0)return;Q=i;j=c[Q>>2]|0;N=c[Q+4>>2]|0;Q=R;D=c[Q+4>>2]|0;O=i;c[O>>2]=c[Q>>2];c[O+4>>2]=D;D=R;c[D>>2]=j;c[D+4>>2]=N;return}N=i;D=c[N>>2]|0;j=c[N+4>>2]|0;if(P){P=f;N=c[P+4>>2]|0;O=i;c[O>>2]=c[P>>2];c[O+4>>2]=N;N=f;c[N>>2]=D;c[N+4>>2]=j;return}N=R;O=c[N+4>>2]|0;P=i;c[P>>2]=c[N>>2];c[P+4>>2]=O;O=R;c[O>>2]=D;c[O+4>>2]=j;if((c[g>>2]|0)>>>0>=j>>>0)return;O=f;P=c[O+4>>2]|0;N=R;c[N>>2]=c[O>>2];c[N+4>>2]=P;P=f;c[P>>2]=D;c[P+4>>2]=j;return}else if((m|0)==15){Pk(i,i+8|0,i+16|0,f,d)|0;return}else if((m|0)==16){j=i+8|0;P=i+16|0;D=i+24|0;Pk(i,j,P,D,d)|0;d=i+28|0;if((c[g>>2]|0)>>>0>=(c[d>>2]|0)>>>0)return;g=D;N=c[g>>2]|0;O=c[g+4>>2]|0;g=f;R=c[g+4>>2]|0;Q=D;c[Q>>2]=c[g>>2];c[Q+4>>2]=R;R=f;c[R>>2]=N;c[R+4>>2]=O;if((c[d>>2]|0)>>>0>=(c[i+20>>2]|0)>>>0)return;d=P;O=c[d>>2]|0;R=c[d+4>>2]|0;d=D;N=c[d>>2]|0;f=c[d+4>>2]|0;d=P;c[d>>2]=N;c[d+4>>2]=f;d=D;c[d>>2]=O;c[d+4>>2]=R;if(f>>>0>=(c[i+12>>2]|0)>>>0)return;R=j;d=c[R>>2]|0;O=c[R+4>>2]|0;R=j;c[R>>2]=N;c[R+4>>2]=f;R=P;c[R>>2]=d;c[R+4>>2]=O;if(f>>>0>=(c[i+4>>2]|0)>>>0)return;O=i;R=c[O>>2]|0;d=c[O+4>>2]|0;O=i;c[O>>2]=N;c[O+4>>2]=f;f=j;c[f>>2]=R;c[f+4>>2]=d;return}else if((m|0)==22){d=i+16|0;f=i+8|0;R=c[i+12>>2]|0;j=c[i+4>>2]|0;O=c[i+20>>2]|0;N=O>>>0>>0;do if(R>>>0>>0){P=i;D=c[P>>2]|0;Q=c[P+4>>2]|0;if(N){P=d;g=c[P+4>>2]|0;o=i;c[o>>2]=c[P>>2];c[o+4>>2]=g;g=d;c[g>>2]=D;c[g+4>>2]=Q;break}g=f;o=c[g+4>>2]|0;P=i;c[P>>2]=c[g>>2];c[P+4>>2]=o;o=f;c[o>>2]=D;c[o+4>>2]=Q;if(O>>>0>>0){o=d;P=c[o+4>>2]|0;g=f;c[g>>2]=c[o>>2];c[g+4>>2]=P;P=d;c[P>>2]=D;c[P+4>>2]=Q}}else if(N?(Q=f,P=c[Q>>2]|0,D=c[Q+4>>2]|0,Q=d,g=c[Q>>2]|0,o=c[Q+4>>2]|0,Q=f,c[Q>>2]=g,c[Q+4>>2]=o,Q=d,c[Q>>2]=P,c[Q+4>>2]=D,o>>>0>>0):0){D=i;Q=c[D>>2]|0;P=c[D+4>>2]|0;D=i;c[D>>2]=g;c[D+4>>2]=o;o=f;c[o>>2]=Q;c[o+4>>2]=P}while(0);f=i+24|0;if((f|0)==(a|0))return;else{S=f;T=d}while(1){if((c[S+4>>2]|0)>>>0<(c[T+4>>2]|0)>>>0){d=S;f=c[d>>2]|0;j=c[d+4>>2]|0;d=T;N=S;while(1){O=d;R=c[O+4>>2]|0;P=N;c[P>>2]=c[O>>2];c[P+4>>2]=R;if((d|0)==(i|0))break;if(j>>>0<(c[d+-4>>2]|0)>>>0){R=d;d=d+-8|0;N=R}else break}N=d;c[N>>2]=f;c[N+4>>2]=j}N=S+8|0;if((N|0)==(a|0))break;else{R=S;S=N;T=R}}return}else if((m|0)==83)return}function Ik(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,m=0,n=0,o=0,p=0;f=l;l=l+16|0;g=f;h=c[a>>2]|0;if(!h)i=h;else{jm(c[a+12>>2]|0,h);c[a>>2]=0;c[a+8>>2]=0;i=0}if(!d)if(!(c[a+8>>2]|0)){l=f;return}else{j=0;k=i}else{i=hm(c[a+12>>2]|0,d*9|0)|0;c[a>>2]=i;h=i+(d<<3)|0;c[a+4>>2]=h;Nn(h|0,1,d|0)|0;c[a+8>>2]=d;h=c[a>>2]|0;if((d|0)>0){i=0;m=0;while(1){n=c[b+(i*24|0)>>2]|0;if(((n|0)!=-1?(o=c[b+(i*24|0)+4>>2]|0,(o|0)!=-1):0)?((c[e+(o<<2)>>2]|c[e+(n<<2)>>2])&32768|0)!=0:0){c[h+(i<<3)>>2]=n;c[h+(i<<3)+4>>2]=o;p=m+1|0}else p=m;i=i+1|0;if((i|0)==(d|0)){j=p;k=h;break}else m=p}}else{j=0;k=h}}c[a+8>>2]=j;c[g>>2]=29;Mk(k,k+(j<<3)|0,g);l=f;return}function Jk(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,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;f=c[a+96>>2]|0;h=+g[f+(d<<3)>>2]-+g[f+(b<<3)>>2];i=+g[f+(d<<3)+4>>2]-+g[f+(b<<3)+4>>2];k=h*h+i*i;if(!(k<+g[a+40>>2]))return;l=(c[j>>2]=1597463007-((g[j>>2]=k,c[j>>2]|0)>>1),+g[j>>2]);m=l*(1.5-l*(k*.5*l));f=e+4|0;n=c[f>>2]|0;o=e+8|0;p=c[o>>2]|0;if((n|0)>=(p|0)?(q=(p|0)==0?256:p<<1,(p|0)<(q|0)):0){p=e+12|0;r=Pl(c[p>>2]|0,q*24|0)|0;s=c[e>>2]|0;if(!s)t=e;else{Qn(r|0,s|0,(c[f>>2]|0)*24|0)|0;Ql(c[p>>2]|0,c[e>>2]|0,(c[o>>2]|0)*24|0);t=e}c[o>>2]=q;c[t>>2]=r;u=c[f>>2]|0}else u=n;n=c[e>>2]|0;c[f>>2]=u+1;c[n+(u*24|0)>>2]=b;c[n+(u*24|0)+4>>2]=d;f=c[a+88>>2]|0;c[n+(u*24|0)+20>>2]=c[f+(d<<2)>>2]|c[f+(b<<2)>>2];g[n+(u*24|0)+8>>2]=1.0-k*m*+g[a+36>>2];g[n+(u*24|0)+12>>2]=h*m;g[n+(u*24|0)+16>>2]=i*m;return}function Kk(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;if(!(c[b+8>>2]&32768))return;e=c[(c[b+400>>2]|0)+102952>>2]|0;if(!e)return;f=c[b+216>>2]|0;g=c[b+220>>2]|0;h=f+(g*24|0)|0;i=d+8|0;if((g|0)>0){g=d+4|0;j=f;do{f=c[j>>2]|0;k=c[j+4>>2]|0;l=c[i>>2]|0;do if(!l)m=22;else{n=c[d>>2]|0;o=n+(l<<3)|0;p=l<<3>>3;q=(p|0)==0;r=n;if(q)s=n;else{t=p;u=n;while(1){v=(t|0)/2|0;w=u+(v<<3)|0;if((c[w>>2]|0)<(f|0))x=(c[u+(v<<3)+4>>2]|0)<(k|0);else x=0;t=x?t+-1-v|0:v;v=x?w+8|0:u;if(!t){s=v;break}else u=v}}if(!((s|0)==(o|0)|(s|0)==0)?(u=(s-r|0)>>>3,t=c[g>>2]|0,(a[t+u>>0]|0)!=0):0){y=u;z=t}else{if(q)A=n;else{t=p;u=n;while(1){v=(t|0)/2|0;w=u+(v<<3)|0;if((c[w>>2]|0)<(k|0))B=(c[u+(v<<3)+4>>2]|0)<(f|0);else B=0;t=B?t+-1-v|0:v;v=B?w+8|0:u;if(!t){A=v;break}else u=v}}if((A|0)==(o|0)|(A|0)==0){m=22;break}u=(A-r|0)>>>3;t=c[g>>2]|0;if(!(a[t+u>>0]|0)){m=22;break}else{y=u;z=t}}a[z+y>>0]=0}while(0);if((m|0)==22){m=0;Ta[c[(c[e>>2]|0)+24>>2]&7](e,b,j)}j=j+24|0}while(j>>>0>>0);C=g;D=d}else{C=d+4|0;D=d}d=c[i>>2]|0;i=c[D>>2]|0;D=c[C>>2]|0;if((d|0)<=0)return;C=0;do{if(a[D+C>>0]|0)_a[c[(c[e>>2]|0)+28>>2]&31](e,b,c[i+(C<<3)>>2]|0,c[i+(C<<3)+4>>2]|0);C=C+1|0}while((C|0)!=(d|0));return}function Lk(a,b){a=a|0;b=b|0;var d=0;if((c[a>>2]|0)>=(c[b>>2]|0)){d=0;return d|0}d=(c[a+4>>2]|0)<(c[b+4>>2]|0);return d|0} -function lm(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;if(!a)return;b=a+-8|0;d=c[2187]|0;e=c[a+-4>>2]|0;a=e&-8;f=b+a|0;do if(!(e&1)){g=c[b>>2]|0;if(!(e&3))return;h=b+(0-g)|0;i=g+a|0;if(h>>>0>>0)return;if((h|0)==(c[2188]|0)){j=f+4|0;k=c[j>>2]|0;if((k&3|0)!=3){l=h;m=i;n=h;break}c[2185]=i;c[j>>2]=k&-2;c[h+4>>2]=i|1;c[h+i>>2]=i;return}k=g>>>3;if(g>>>0<256){g=c[h+8>>2]|0;j=c[h+12>>2]|0;if((j|0)==(g|0)){c[2183]=c[2183]&~(1<>2]=j;c[j+8>>2]=g;l=h;m=i;n=h;break}}g=c[h+24>>2]|0;j=c[h+12>>2]|0;do if((j|0)==(h|0)){k=h+16|0;o=k+4|0;p=c[o>>2]|0;if(!p){q=c[k>>2]|0;if(!q){r=0;break}else{s=q;t=k}}else{s=p;t=o}while(1){o=s+20|0;p=c[o>>2]|0;if(p|0){s=p;t=o;continue}o=s+16|0;p=c[o>>2]|0;if(!p)break;else{s=p;t=o}}c[t>>2]=0;r=s}else{o=c[h+8>>2]|0;c[o+12>>2]=j;c[j+8>>2]=o;r=j}while(0);if(g){j=c[h+28>>2]|0;o=9036+(j<<2)|0;if((h|0)==(c[o>>2]|0)){c[o>>2]=r;if(!r){c[2184]=c[2184]&~(1<>2]|0)!=(h|0)&1)<<2)>>2]=r;if(!r){l=h;m=i;n=h;break}}c[r+24>>2]=g;j=h+16|0;o=c[j>>2]|0;if(o|0){c[r+16>>2]=o;c[o+24>>2]=r}o=c[j+4>>2]|0;if(o){c[r+20>>2]=o;c[o+24>>2]=r;l=h;m=i;n=h}else{l=h;m=i;n=h}}else{l=h;m=i;n=h}}else{l=b;m=a;n=b}while(0);if(n>>>0>=f>>>0)return;b=f+4|0;a=c[b>>2]|0;if(!(a&1))return;if(!(a&2)){r=c[2188]|0;if((f|0)==(c[2189]|0)){s=(c[2186]|0)+m|0;c[2186]=s;c[2189]=l;c[l+4>>2]=s|1;if((l|0)!=(r|0))return;c[2188]=0;c[2185]=0;return}if((f|0)==(r|0)){r=(c[2185]|0)+m|0;c[2185]=r;c[2188]=n;c[l+4>>2]=r|1;c[n+r>>2]=r;return}r=(a&-8)+m|0;s=a>>>3;do if(a>>>0<256){t=c[f+8>>2]|0;d=c[f+12>>2]|0;if((d|0)==(t|0)){c[2183]=c[2183]&~(1<>2]=d;c[d+8>>2]=t;break}}else{t=c[f+24>>2]|0;d=c[f+12>>2]|0;do if((d|0)==(f|0)){e=f+16|0;o=e+4|0;j=c[o>>2]|0;if(!j){p=c[e>>2]|0;if(!p){u=0;break}else{v=p;w=e}}else{v=j;w=o}while(1){o=v+20|0;j=c[o>>2]|0;if(j|0){v=j;w=o;continue}o=v+16|0;j=c[o>>2]|0;if(!j)break;else{v=j;w=o}}c[w>>2]=0;u=v}else{o=c[f+8>>2]|0;c[o+12>>2]=d;c[d+8>>2]=o;u=d}while(0);if(t|0){d=c[f+28>>2]|0;h=9036+(d<<2)|0;if((f|0)==(c[h>>2]|0)){c[h>>2]=u;if(!u){c[2184]=c[2184]&~(1<>2]|0)!=(f|0)&1)<<2)>>2]=u;if(!u)break}c[u+24>>2]=t;d=f+16|0;h=c[d>>2]|0;if(h|0){c[u+16>>2]=h;c[h+24>>2]=u}h=c[d+4>>2]|0;if(h|0){c[u+20>>2]=h;c[h+24>>2]=u}}}while(0);c[l+4>>2]=r|1;c[n+r>>2]=r;if((l|0)==(c[2188]|0)){c[2185]=r;return}else x=r}else{c[b>>2]=a&-2;c[l+4>>2]=m|1;c[n+m>>2]=m;x=m}m=x>>>3;if(x>>>0<256){n=8772+(m<<1<<2)|0;a=c[2183]|0;b=1<>2]|0;z=b}c[z>>2]=l;c[y+12>>2]=l;c[l+8>>2]=y;c[l+12>>2]=n;return}n=x>>>8;if(n)if(x>>>0>16777215)A=31;else{y=(n+1048320|0)>>>16&8;z=n<>>16&4;b=z<>>16&2;a=14-(n|y|z)+(b<>>15)|0;A=x>>>(a+7|0)&1|a<<1}else A=0;a=9036+(A<<2)|0;c[l+28>>2]=A;c[l+20>>2]=0;c[l+16>>2]=0;z=c[2184]|0;b=1<>>1)|0);n=c[a>>2]|0;while(1){if((c[n+4>>2]&-8|0)==(x|0)){B=73;break}C=n+16+(y>>>31<<2)|0;m=c[C>>2]|0;if(!m){B=72;break}else{y=y<<1;n=m}}if((B|0)==72){c[C>>2]=l;c[l+24>>2]=n;c[l+12>>2]=l;c[l+8>>2]=l;break}else if((B|0)==73){y=n+8|0;t=c[y>>2]|0;c[t+12>>2]=l;c[y>>2]=l;c[l+8>>2]=t;c[l+12>>2]=n;c[l+24>>2]=0;break}}else{c[2184]=z|b;c[a>>2]=l;c[l+24>>2]=a;c[l+12>>2]=l;c[l+8>>2]=l}while(0);l=(c[2191]|0)+-1|0;c[2191]=l;if(!l)D=9188;else return;while(1){l=c[D>>2]|0;if(!l)break;else D=l+8|0}c[2191]=-1;return}function mm(){return 9228}function nm(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=um(c[a+60>>2]|0)|0;a=qm(Ea(6,d|0)|0)|0;l=b;return a|0}function om(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,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;e=l;l=l+48|0;f=e+16|0;g=e;h=e+32|0;i=a+28|0;j=c[i>>2]|0;c[h>>2]=j;k=a+20|0;m=(c[k>>2]|0)-j|0;c[h+4>>2]=m;c[h+8>>2]=b;c[h+12>>2]=d;b=m+d|0;m=a+60|0;c[g>>2]=c[m>>2];c[g+4>>2]=h;c[g+8>>2]=2;j=qm(Ja(146,g|0)|0)|0;a:do if((b|0)!=(j|0)){g=2;n=b;o=h;p=j;while(1){if((p|0)<0)break;n=n-p|0;q=c[o+4>>2]|0;r=p>>>0>q>>>0;s=r?o+8|0:o;t=(r<<31>>31)+g|0;u=p-(r?q:0)|0;c[s>>2]=(c[s>>2]|0)+u;q=s+4|0;c[q>>2]=(c[q>>2]|0)-u;c[f>>2]=c[m>>2];c[f+4>>2]=s;c[f+8>>2]=t;p=qm(Ja(146,f|0)|0)|0;if((n|0)==(p|0)){v=3;break a}else{g=t;o=s}}c[a+16>>2]=0;c[i>>2]=0;c[k>>2]=0;c[a>>2]=c[a>>2]|32;if((g|0)==2)w=0;else w=d-(c[o+4>>2]|0)|0}else v=3;while(0);if((v|0)==3){v=c[a+44>>2]|0;c[a+16>>2]=v+(c[a+48>>2]|0);c[i>>2]=v;c[k>>2]=v;w=d}l=e;return w|0}function pm(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=l;l=l+32|0;f=e;g=e+20|0;c[f>>2]=c[a+60>>2];c[f+4>>2]=0;c[f+8>>2]=b;c[f+12>>2]=g;c[f+16>>2]=d;if((qm(ya(140,f|0)|0)|0)<0){c[g>>2]=-1;h=-1}else h=c[g>>2]|0;l=e;return h|0}function qm(a){a=a|0;var b=0;if(a>>>0>4294963200){c[(rm()|0)>>2]=0-a;b=-1}else b=a;return b|0}function rm(){return (sm()|0)+64|0}function sm(){return tm()|0}function tm(){return 2300}function um(a){a=a|0;return a|0}function vm(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0;f=l;l=l+32|0;g=f;c[b+36>>2]=11;if((c[b>>2]&64|0)==0?(c[g>>2]=c[b+60>>2],c[g+4>>2]=21523,c[g+8>>2]=f+16,za(54,g|0)|0):0)a[b+75>>0]=-1;g=om(b,d,e)|0;l=f;return g|0}function wm(b,c){b=b|0;c=c|0;var d=0,e=0,f=0,g=0;d=a[b>>0]|0;e=a[c>>0]|0;if(d<<24>>24==0?1:d<<24>>24!=e<<24>>24){f=e;g=d}else{d=c;c=b;do{c=c+1|0;d=d+1|0;b=a[c>>0]|0;e=a[d>>0]|0}while(!(b<<24>>24==0?1:b<<24>>24!=e<<24>>24));f=e;g=b}return (g&255)-(f&255)|0}function xm(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,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;f=l;l=l+224|0;g=f+120|0;h=f+80|0;i=f;j=f+136|0;k=h;m=k+40|0;do{c[k>>2]=0;k=k+4|0}while((k|0)<(m|0));c[g>>2]=c[e>>2];if((ym(0,d,g,i,h)|0)<0)n=-1;else{if((c[b+76>>2]|0)>-1)o=zm(b)|0;else o=0;e=c[b>>2]|0;k=e&32;if((a[b+74>>0]|0)<1)c[b>>2]=e&-33;e=b+48|0;if(!(c[e>>2]|0)){m=b+44|0;p=c[m>>2]|0;c[m>>2]=j;q=b+28|0;c[q>>2]=j;r=b+20|0;c[r>>2]=j;c[e>>2]=80;s=b+16|0;c[s>>2]=j+80;j=ym(b,d,g,i,h)|0;if(!p)t=j;else{Sa[c[b+36>>2]&15](b,0,0)|0;u=(c[r>>2]|0)==0?-1:j;c[m>>2]=p;c[e>>2]=0;c[s>>2]=0;c[q>>2]=0;c[r>>2]=0;t=u}}else t=ym(b,d,g,i,h)|0;h=c[b>>2]|0;c[b>>2]=h|k;if(o|0)Am(b);n=(h&32|0)==0?t:-1}l=f;return n|0}function ym(d,e,f,g,i){d=d|0;e=e|0;f=f|0;g=g|0;i=i|0;var j=0,k=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,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,Ea=0,Fa=0,Ga=0,Ha=0,Ia=0;j=l;l=l+64|0;k=j+16|0;m=j;n=j+24|0;o=j+8|0;p=j+20|0;c[k>>2]=e;q=(d|0)!=0;r=n+40|0;s=r;t=n+39|0;n=o+4|0;u=0;v=0;w=0;x=e;a:while(1){do if((v|0)>-1)if((u|0)>(2147483647-v|0)){c[(rm()|0)>>2]=75;y=-1;break}else{y=u+v|0;break}else y=v;while(0);e=a[x>>0]|0;if(!(e<<24>>24)){A=87;break}else{B=e;C=x}b:while(1){switch(B<<24>>24){case 37:{D=C;E=C;A=9;break b;break}case 0:{F=C;G=C;break b;break}default:{}}e=C+1|0;c[k>>2]=e;B=a[e>>0]|0;C=e}c:do if((A|0)==9)while(1){A=0;if((a[E+1>>0]|0)!=37){F=D;G=E;break c}e=D+1|0;H=E+2|0;c[k>>2]=H;if((a[H>>0]|0)==37){D=e;E=H;A=9}else{F=e;G=H;break}}while(0);H=F-x|0;if(q)Bm(d,x,H);if(H|0){u=H;v=y;x=G;continue}H=G+1|0;e=(a[H>>0]|0)+-48|0;if(e>>>0<10){I=(a[G+2>>0]|0)==36;J=I?e:-1;K=I?1:w;L=I?G+3|0:H}else{J=-1;K=w;L=H}c[k>>2]=L;H=a[L>>0]|0;I=(H<<24>>24)+-32|0;d:do if(I>>>0<32){e=0;M=H;N=I;O=L;while(1){P=1<>2]=P;U=a[P>>0]|0;N=(U<<24>>24)+-32|0;if(N>>>0>=32){Q=T;R=U;S=P;break}else{e=T;M=U;O=P}}}else{Q=0;R=H;S=L}while(0);if(R<<24>>24==42){H=S+1|0;I=(a[H>>0]|0)+-48|0;if(I>>>0<10?(a[S+2>>0]|0)==36:0){c[i+(I<<2)>>2]=10;V=c[g+((a[H>>0]|0)+-48<<3)>>2]|0;W=1;X=S+3|0}else{if(K|0){Y=-1;break}if(q){I=(c[f>>2]|0)+(4-1)&~(4-1);O=c[I>>2]|0;c[f>>2]=I+4;V=O;W=0;X=H}else{V=0;W=0;X=H}}c[k>>2]=X;H=(V|0)<0;Z=H?0-V|0:V;_=H?Q|8192:Q;$=W;aa=X}else{H=Cm(k)|0;if((H|0)<0){Y=-1;break}Z=H;_=Q;$=K;aa=c[k>>2]|0}do if((a[aa>>0]|0)==46){if((a[aa+1>>0]|0)!=42){c[k>>2]=aa+1;H=Cm(k)|0;ba=H;ca=c[k>>2]|0;break}H=aa+2|0;O=(a[H>>0]|0)+-48|0;if(O>>>0<10?(a[aa+3>>0]|0)==36:0){c[i+(O<<2)>>2]=10;O=c[g+((a[H>>0]|0)+-48<<3)>>2]|0;I=aa+4|0;c[k>>2]=I;ba=O;ca=I;break}if($|0){Y=-1;break a}if(q){I=(c[f>>2]|0)+(4-1)&~(4-1);O=c[I>>2]|0;c[f>>2]=I+4;da=O}else da=0;c[k>>2]=H;ba=da;ca=H}else{ba=-1;ca=aa}while(0);H=0;O=ca;while(1){if(((a[O>>0]|0)+-65|0)>>>0>57){Y=-1;break a}ea=O+1|0;c[k>>2]=ea;fa=a[(a[O>>0]|0)+-65+(5476+(H*58|0))>>0]|0;ga=fa&255;if((ga+-1|0)>>>0<8){H=ga;O=ea}else break}if(!(fa<<24>>24)){Y=-1;break}I=(J|0)>-1;do if(fa<<24>>24==19)if(I){Y=-1;break a}else A=49;else{if(I){c[i+(J<<2)>>2]=ga;M=g+(J<<3)|0;e=c[M+4>>2]|0;N=m;c[N>>2]=c[M>>2];c[N+4>>2]=e;A=49;break}if(!q){Y=0;break a}Dm(m,ga,f)}while(0);if((A|0)==49?(A=0,!q):0){u=0;v=y;w=$;x=ea;continue}I=a[O>>0]|0;e=(H|0)!=0&(I&15|0)==3?I&-33:I;I=_&-65537;N=(_&8192|0)==0?_:I;e:do switch(e|0){case 110:{switch((H&255)<<24>>24){case 0:{c[c[m>>2]>>2]=y;u=0;v=y;w=$;x=ea;continue a;break}case 1:{c[c[m>>2]>>2]=y;u=0;v=y;w=$;x=ea;continue a;break}case 2:{M=c[m>>2]|0;c[M>>2]=y;c[M+4>>2]=((y|0)<0)<<31>>31;u=0;v=y;w=$;x=ea;continue a;break}case 3:{b[c[m>>2]>>1]=y;u=0;v=y;w=$;x=ea;continue a;break}case 4:{a[c[m>>2]>>0]=y;u=0;v=y;w=$;x=ea;continue a;break}case 6:{c[c[m>>2]>>2]=y;u=0;v=y;w=$;x=ea;continue a;break}case 7:{M=c[m>>2]|0;c[M>>2]=y;c[M+4>>2]=((y|0)<0)<<31>>31;u=0;v=y;w=$;x=ea;continue a;break}default:{u=0;v=y;w=$;x=ea;continue a}}break}case 112:{ha=120;ia=ba>>>0>8?ba:8;ja=N|8;A=61;break}case 88:case 120:{ha=e;ia=ba;ja=N;A=61;break}case 111:{M=m;P=c[M>>2]|0;U=c[M+4>>2]|0;M=Fm(P,U,r)|0;T=s-M|0;ka=M;la=0;ma=5940;na=(N&8|0)==0|(ba|0)>(T|0)?ba:T+1|0;oa=N;pa=P;qa=U;A=67;break}case 105:case 100:{U=m;P=c[U>>2]|0;T=c[U+4>>2]|0;if((T|0)<0){U=Ln(0,0,P|0,T|0)|0;M=z;ra=m;c[ra>>2]=U;c[ra+4>>2]=M;sa=1;ta=5940;ua=U;va=M;A=66;break e}else{sa=(N&2049|0)!=0&1;ta=(N&2048|0)==0?((N&1|0)==0?5940:5942):5941;ua=P;va=T;A=66;break e}break}case 117:{T=m;sa=0;ta=5940;ua=c[T>>2]|0;va=c[T+4>>2]|0;A=66;break}case 99:{a[t>>0]=c[m>>2];wa=t;xa=0;ya=5940;za=r;Aa=1;Ba=I;break}case 109:{Ca=Hm(c[(rm()|0)>>2]|0)|0;A=71;break}case 115:{T=c[m>>2]|0;Ca=T|0?T:5950;A=71;break}case 67:{c[o>>2]=c[m>>2];c[n>>2]=0;c[m>>2]=o;Da=-1;Ea=o;A=75;break}case 83:{T=c[m>>2]|0;if(!ba){Jm(d,32,Z,0,N);Fa=0;A=84}else{Da=ba;Ea=T;A=75}break}case 65:case 71:case 70:case 69:case 97:case 103:case 102:case 101:{u=Lm(d,+h[m>>3],Z,ba,N,e)|0;v=y;w=$;x=ea;continue a;break}default:{wa=x;xa=0;ya=5940;za=r;Aa=ba;Ba=N}}while(0);f:do if((A|0)==61){A=0;e=m;H=c[e>>2]|0;O=c[e+4>>2]|0;e=Em(H,O,r,ha&32)|0;T=(ja&8|0)==0|(H|0)==0&(O|0)==0;ka=e;la=T?0:2;ma=T?5940:5940+(ha>>4)|0;na=ia;oa=ja;pa=H;qa=O;A=67}else if((A|0)==66){A=0;ka=Gm(ua,va,r)|0;la=sa;ma=ta;na=ba;oa=N;pa=ua;qa=va;A=67}else if((A|0)==71){A=0;O=Im(Ca,0,ba)|0;H=(O|0)==0;wa=Ca;xa=0;ya=5940;za=H?Ca+ba|0:O;Aa=H?ba:O-Ca|0;Ba=I}else if((A|0)==75){A=0;O=Ea;H=0;T=0;while(1){e=c[O>>2]|0;if(!e){Ga=H;Ha=T;break}P=Km(p,e)|0;if((P|0)<0|P>>>0>(Da-H|0)>>>0){Ga=H;Ha=P;break}e=P+H|0;if(Da>>>0>e>>>0){O=O+4|0;H=e;T=P}else{Ga=e;Ha=P;break}}if((Ha|0)<0){Y=-1;break a}Jm(d,32,Z,Ga,N);if(!Ga){Fa=0;A=84}else{T=Ea;H=0;while(1){O=c[T>>2]|0;if(!O){Fa=Ga;A=84;break f}P=Km(p,O)|0;H=P+H|0;if((H|0)>(Ga|0)){Fa=Ga;A=84;break f}Bm(d,p,P);if(H>>>0>=Ga>>>0){Fa=Ga;A=84;break}else T=T+4|0}}}while(0);if((A|0)==67){A=0;I=(pa|0)!=0|(qa|0)!=0;T=(na|0)!=0|I;H=((I^1)&1)+(s-ka)|0;wa=T?ka:r;xa=la;ya=ma;za=r;Aa=T?((na|0)>(H|0)?na:H):na;Ba=(na|0)>-1?oa&-65537:oa}else if((A|0)==84){A=0;Jm(d,32,Z,Fa,N^8192);u=(Z|0)>(Fa|0)?Z:Fa;v=y;w=$;x=ea;continue}H=za-wa|0;T=(Aa|0)<(H|0)?H:Aa;I=T+xa|0;P=(Z|0)<(I|0)?I:Z;Jm(d,32,P,I,Ba);Bm(d,ya,xa);Jm(d,48,P,I,Ba^65536);Jm(d,48,T,H,0);Bm(d,wa,H);Jm(d,32,P,I,Ba^8192);u=P;v=y;w=$;x=ea}g:do if((A|0)==87)if(!d)if(!w)Y=0;else{ea=1;while(1){x=c[i+(ea<<2)>>2]|0;if(!x){Ia=ea;break}Dm(g+(ea<<3)|0,x,f);ea=ea+1|0;if((ea|0)>=10){Y=1;break g}}while(1){if(c[i+(Ia<<2)>>2]|0){Y=-1;break g}Ia=Ia+1|0;if((Ia|0)>=10){Y=1;break}}}else Y=y;while(0);l=j;return Y|0}function zm(a){a=a|0;return 0}function Am(a){a=a|0;return}function Bm(a,b,d){a=a|0;b=b|0;d=d|0;if(!(c[a>>2]&32))Xm(b,d,a)|0;return}function Cm(b){b=b|0;var d=0,e=0,f=0,g=0,h=0;d=c[b>>2]|0;e=(a[d>>0]|0)+-48|0;if(e>>>0<10){f=0;g=d;d=e;while(1){e=d+(f*10|0)|0;g=g+1|0;c[b>>2]=g;d=(a[g>>0]|0)+-48|0;if(d>>>0>=10){h=e;break}else f=e}}else h=0;return h|0}function Dm(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,i=0,j=0.0;a:do if(b>>>0<=20)do switch(b|0){case 9:{e=(c[d>>2]|0)+(4-1)&~(4-1);f=c[e>>2]|0;c[d>>2]=e+4;c[a>>2]=f;break a;break}case 10:{f=(c[d>>2]|0)+(4-1)&~(4-1);e=c[f>>2]|0;c[d>>2]=f+4;f=a;c[f>>2]=e;c[f+4>>2]=((e|0)<0)<<31>>31;break a;break}case 11:{e=(c[d>>2]|0)+(4-1)&~(4-1);f=c[e>>2]|0;c[d>>2]=e+4;e=a;c[e>>2]=f;c[e+4>>2]=0;break a;break}case 12:{e=(c[d>>2]|0)+(8-1)&~(8-1);f=e;g=c[f>>2]|0;i=c[f+4>>2]|0;c[d>>2]=e+8;e=a;c[e>>2]=g;c[e+4>>2]=i;break a;break}case 13:{i=(c[d>>2]|0)+(4-1)&~(4-1);e=c[i>>2]|0;c[d>>2]=i+4;i=(e&65535)<<16>>16;e=a;c[e>>2]=i;c[e+4>>2]=((i|0)<0)<<31>>31;break a;break}case 14:{i=(c[d>>2]|0)+(4-1)&~(4-1);e=c[i>>2]|0;c[d>>2]=i+4;i=a;c[i>>2]=e&65535;c[i+4>>2]=0;break a;break}case 15:{i=(c[d>>2]|0)+(4-1)&~(4-1);e=c[i>>2]|0;c[d>>2]=i+4;i=(e&255)<<24>>24;e=a;c[e>>2]=i;c[e+4>>2]=((i|0)<0)<<31>>31;break a;break}case 16:{i=(c[d>>2]|0)+(4-1)&~(4-1);e=c[i>>2]|0;c[d>>2]=i+4;i=a;c[i>>2]=e&255;c[i+4>>2]=0;break a;break}case 17:{i=(c[d>>2]|0)+(8-1)&~(8-1);j=+h[i>>3];c[d>>2]=i+8;h[a>>3]=j;break a;break}case 18:{i=(c[d>>2]|0)+(8-1)&~(8-1);j=+h[i>>3];c[d>>2]=i+8;h[a>>3]=j;break a;break}default:break a}while(0);while(0);return}function Em(b,c,e,f){b=b|0;c=c|0;e=e|0;f=f|0;var g=0,h=0;if((b|0)==0&(c|0)==0)g=e;else{h=e;e=c;c=b;while(1){b=h+-1|0;a[b>>0]=d[5992+(c&15)>>0]|0|f;c=Pn(c|0,e|0,4)|0;e=z;if((c|0)==0&(e|0)==0){g=b;break}else h=b}}return g|0}function Fm(b,c,d){b=b|0;c=c|0;d=d|0;var e=0,f=0;if((b|0)==0&(c|0)==0)e=d;else{f=d;d=c;c=b;while(1){b=f+-1|0;a[b>>0]=c&7|48;c=Pn(c|0,d|0,3)|0;d=z;if((c|0)==0&(d|0)==0){e=b;break}else f=b}}return e|0}function Gm(b,c,d){b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;if(c>>>0>0|(c|0)==0&b>>>0>4294967295){e=d;f=b;g=c;while(1){c=Wn(f|0,g|0,10,0)|0;e=e+-1|0;a[e>>0]=c&255|48;c=f;f=Tn(f|0,g|0,10,0)|0;if(!(g>>>0>9|(g|0)==9&c>>>0>4294967295))break;else g=z}h=f;i=e}else{h=b;i=d}if(!h)j=i;else{d=h;h=i;while(1){i=h+-1|0;a[i>>0]=(d>>>0)%10|0|48;if(d>>>0<10){j=i;break}else{d=(d>>>0)/10|0;h=i}}}return j|0}function Hm(a){a=a|0;return Sm(a,c[(Rm()|0)+188>>2]|0)|0}function Im(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;f=d&255;g=(e|0)!=0;a:do if(g&(b&3|0)!=0){h=d&255;i=b;j=e;while(1){if((a[i>>0]|0)==h<<24>>24){k=i;l=j;m=6;break a}n=i+1|0;o=j+-1|0;p=(o|0)!=0;if(p&(n&3|0)!=0){i=n;j=o}else{q=n;r=o;s=p;m=5;break}}}else{q=b;r=e;s=g;m=5}while(0);if((m|0)==5)if(s){k=q;l=r;m=6}else{t=q;u=0}b:do if((m|0)==6){q=d&255;if((a[k>>0]|0)==q<<24>>24){t=k;u=l}else{r=O(f,16843009)|0;c:do if(l>>>0>3){s=k;g=l;while(1){e=c[s>>2]^r;if((e&-2139062144^-2139062144)&e+-16843009|0)break;e=s+4|0;b=g+-4|0;if(b>>>0>3){s=e;g=b}else{v=e;w=b;m=11;break c}}x=s;y=g}else{v=k;w=l;m=11}while(0);if((m|0)==11)if(!w){t=v;u=0;break}else{x=v;y=w}while(1){if((a[x>>0]|0)==q<<24>>24){t=x;u=y;break b}r=x+1|0;y=y+-1|0;if(!y){t=r;u=0;break}else x=r}}}while(0);return (u|0?t:0)|0}function Jm(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0;f=l;l=l+256|0;g=f;if((c|0)>(d|0)&(e&73728|0)==0){e=c-d|0;Nn(g|0,b|0,(e>>>0<256?e:256)|0)|0;if(e>>>0>255){b=c-d|0;d=e;do{Bm(a,g,256);d=d+-256|0}while(d>>>0>255);h=b&255}else h=e;Bm(a,g,h)}l=f;return}function Km(a,b){a=a|0;b=b|0;var c=0;if(!a)c=0;else c=Pm(a,b,0)|0;return c|0}function Lm(b,e,f,g,h,i){b=b|0;e=+e;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0.0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,A=0,B=0,C=0.0,D=0,E=0.0,F=0,G=0,H=0,I=0.0,J=0,K=0,L=0,M=0,N=0.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.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,Aa=0,Ba=0,Ca=0,Da=0,Ea=0;j=l;l=l+560|0;k=j+8|0;m=j;n=j+524|0;o=n;p=j+512|0;c[m>>2]=0;q=p+12|0;Mm(e)|0;if((z|0)<0){r=-e;s=1;t=5957}else{r=e;s=(h&2049|0)!=0&1;t=(h&2048|0)==0?((h&1|0)==0?5958:5963):5960}Mm(r)|0;u=z&2146435072;do if(u>>>0<2146435072|(u|0)==2146435072&0<0){e=+Nm(r,m)*2.0;v=e!=0.0;if(v)c[m>>2]=(c[m>>2]|0)+-1;w=i|32;if((w|0)==97){x=i&32;y=(x|0)==0?t:t+9|0;A=s|2;B=12-g|0;do if(!(g>>>0>11|(B|0)==0)){C=8.0;D=B;do{D=D+-1|0;C=C*16.0}while((D|0)!=0);if((a[y>>0]|0)==45){E=-(C+(-e-C));break}else{E=e+C-C;break}}else E=e;while(0);B=c[m>>2]|0;D=(B|0)<0?0-B|0:B;F=Gm(D,((D|0)<0)<<31>>31,q)|0;if((F|0)==(q|0)){D=p+11|0;a[D>>0]=48;G=D}else G=F;a[G+-1>>0]=(B>>31&2)+43;B=G+-2|0;a[B>>0]=i+15;F=(g|0)<1;D=(h&8|0)==0;H=n;I=E;while(1){J=~~I;K=H+1|0;a[H>>0]=d[5992+J>>0]|x;I=(I-+(J|0))*16.0;if((K-o|0)==1?!(D&(F&I==0.0)):0){a[K>>0]=46;L=H+2|0}else L=K;if(!(I!=0.0))break;else H=L}H=L-o|0;F=q-B|0;D=(g|0)!=0&(H+-2|0)<(g|0)?g+2|0:H;x=F+A+D|0;Jm(b,32,f,x,h);Bm(b,y,A);Jm(b,48,f,x,h^65536);Bm(b,n,H);Jm(b,48,D-H|0,0,0);Bm(b,B,F);Jm(b,32,f,x,h^8192);M=x;break}x=(g|0)<0?6:g;if(v){F=(c[m>>2]|0)+-28|0;c[m>>2]=F;N=e*268435456.0;P=F}else{N=e;P=c[m>>2]|0}F=(P|0)<0?k:k+288|0;H=F;I=N;do{D=~~I>>>0;c[H>>2]=D;H=H+4|0;I=(I-+(D>>>0))*1.0e9}while(I!=0.0);if((P|0)>0){v=F;B=H;A=P;while(1){y=(A|0)<29?A:29;D=B+-4|0;if(D>>>0>=v>>>0){K=D;D=0;do{J=On(c[K>>2]|0,0,y|0)|0;Q=Mn(J|0,z|0,D|0,0)|0;J=z;R=Wn(Q|0,J|0,1e9,0)|0;c[K>>2]=R;D=Tn(Q|0,J|0,1e9,0)|0;K=K+-4|0}while(K>>>0>=v>>>0);if(D){K=v+-4|0;c[K>>2]=D;S=K}else S=v}else S=v;K=B;while(1){if(K>>>0<=S>>>0)break;J=K+-4|0;if(!(c[J>>2]|0))K=J;else break}D=(c[m>>2]|0)-y|0;c[m>>2]=D;if((D|0)>0){v=S;B=K;A=D}else{T=S;U=K;V=D;break}}}else{T=F;U=H;V=P}if((V|0)<0){A=((x+25|0)/9|0)+1|0;B=(w|0)==102;v=T;D=U;J=V;while(1){Q=0-J|0;R=(Q|0)<9?Q:9;if(v>>>0>>0){Q=(1<>>R;X=0;Y=v;do{Z=c[Y>>2]|0;c[Y>>2]=(Z>>>R)+X;X=O(Z&Q,W)|0;Y=Y+4|0}while(Y>>>0>>0);Y=(c[v>>2]|0)==0?v+4|0:v;if(!X){_=Y;$=D}else{c[D>>2]=X;_=Y;$=D+4|0}}else{_=(c[v>>2]|0)==0?v+4|0:v;$=D}Y=B?F:_;W=($-Y>>2|0)>(A|0)?Y+(A<<2)|0:$;J=(c[m>>2]|0)+R|0;c[m>>2]=J;if((J|0)>=0){aa=_;ba=W;break}else{v=_;D=W}}}else{aa=T;ba=U}D=F;if(aa>>>0>>0){v=(D-aa>>2)*9|0;J=c[aa>>2]|0;if(J>>>0<10)ca=v;else{A=v;v=10;while(1){v=v*10|0;B=A+1|0;if(J>>>0>>0){ca=B;break}else A=B}}}else ca=0;A=(w|0)==103;v=(x|0)!=0;J=x-((w|0)!=102?ca:0)+((v&A)<<31>>31)|0;if((J|0)<(((ba-D>>2)*9|0)+-9|0)){B=J+9216|0;J=F+4+(((B|0)/9|0)+-1024<<2)|0;H=((B|0)%9|0)+1|0;if((H|0)<9){B=H;H=10;while(1){W=H*10|0;B=B+1|0;if((B|0)==9){da=W;break}else H=W}}else da=10;H=c[J>>2]|0;B=(H>>>0)%(da>>>0)|0;w=(J+4|0)==(ba|0);if(!(w&(B|0)==0)){C=(((H>>>0)/(da>>>0)|0)&1|0)==0?9007199254740992.0:9007199254740994.0;W=(da|0)/2|0;I=B>>>0>>0?.5:w&(B|0)==(W|0)?1.0:1.5;if(!s){ea=I;fa=C}else{W=(a[t>>0]|0)==45;ea=W?-I:I;fa=W?-C:C}W=H-B|0;c[J>>2]=W;if(fa+ea!=fa){B=W+da|0;c[J>>2]=B;if(B>>>0>999999999){B=aa;W=J;while(1){H=W+-4|0;c[W>>2]=0;if(H>>>0>>0){w=B+-4|0;c[w>>2]=0;ga=w}else ga=B;w=(c[H>>2]|0)+1|0;c[H>>2]=w;if(w>>>0>999999999){B=ga;W=H}else{ha=ga;ia=H;break}}}else{ha=aa;ia=J}W=(D-ha>>2)*9|0;B=c[ha>>2]|0;if(B>>>0<10){ja=ia;ka=W;la=ha}else{H=W;W=10;while(1){W=W*10|0;w=H+1|0;if(B>>>0>>0){ja=ia;ka=w;la=ha;break}else H=w}}}else{ja=J;ka=ca;la=aa}}else{ja=J;ka=ca;la=aa}H=ja+4|0;ma=ka;na=ba>>>0>H>>>0?H:ba;oa=la}else{ma=ca;na=ba;oa=aa}H=na;while(1){if(H>>>0<=oa>>>0){pa=0;break}W=H+-4|0;if(!(c[W>>2]|0))H=W;else{pa=1;break}}J=0-ma|0;do if(A){W=((v^1)&1)+x|0;if((W|0)>(ma|0)&(ma|0)>-5){qa=i+-1|0;ra=W+-1-ma|0}else{qa=i+-2|0;ra=W+-1|0}W=h&8;if(!W){if(pa?(B=c[H+-4>>2]|0,(B|0)!=0):0)if(!((B>>>0)%10|0)){w=0;Y=10;while(1){Y=Y*10|0;Q=w+1|0;if((B>>>0)%(Y>>>0)|0|0){sa=Q;break}else w=Q}}else sa=0;else sa=9;w=((H-D>>2)*9|0)+-9|0;if((qa|32|0)==102){Y=w-sa|0;B=(Y|0)>0?Y:0;ta=qa;ua=(ra|0)<(B|0)?ra:B;va=0;break}else{B=w+ma-sa|0;w=(B|0)>0?B:0;ta=qa;ua=(ra|0)<(w|0)?ra:w;va=0;break}}else{ta=qa;ua=ra;va=W}}else{ta=i;ua=x;va=h&8}while(0);x=ua|va;D=(x|0)!=0&1;v=(ta|32|0)==102;if(v){wa=0;xa=(ma|0)>0?ma:0}else{A=(ma|0)<0?J:ma;w=Gm(A,((A|0)<0)<<31>>31,q)|0;A=q;if((A-w|0)<2){B=w;while(1){Y=B+-1|0;a[Y>>0]=48;if((A-Y|0)<2)B=Y;else{ya=Y;break}}}else ya=w;a[ya+-1>>0]=(ma>>31&2)+43;B=ya+-2|0;a[B>>0]=ta;wa=B;xa=A-B|0}B=s+1+ua+D+xa|0;Jm(b,32,f,B,h);Bm(b,t,s);Jm(b,48,f,B,h^65536);if(v){J=oa>>>0>F>>>0?F:oa;Y=n+9|0;R=Y;X=n+8|0;Q=J;do{K=Gm(c[Q>>2]|0,0,Y)|0;if((Q|0)==(J|0))if((K|0)==(Y|0)){a[X>>0]=48;za=X}else za=K;else if(K>>>0>n>>>0){Nn(n|0,48,K-o|0)|0;y=K;while(1){Z=y+-1|0;if(Z>>>0>n>>>0)y=Z;else{za=Z;break}}}else za=K;Bm(b,za,R-za|0);Q=Q+4|0}while(Q>>>0<=F>>>0);if(x|0)Bm(b,6008,1);if(Q>>>0>>0&(ua|0)>0){F=ua;R=Q;while(1){X=Gm(c[R>>2]|0,0,Y)|0;if(X>>>0>n>>>0){Nn(n|0,48,X-o|0)|0;J=X;while(1){v=J+-1|0;if(v>>>0>n>>>0)J=v;else{Aa=v;break}}}else Aa=X;Bm(b,Aa,(F|0)<9?F:9);R=R+4|0;J=F+-9|0;if(!(R>>>0>>0&(F|0)>9)){Ba=J;break}else F=J}}else Ba=ua;Jm(b,48,Ba+9|0,9,0)}else{F=pa?H:oa+4|0;if((ua|0)>-1){R=n+9|0;Y=(va|0)==0;Q=R;x=0-o|0;J=n+8|0;K=ua;v=oa;while(1){D=Gm(c[v>>2]|0,0,R)|0;if((D|0)==(R|0)){a[J>>0]=48;Ca=J}else Ca=D;do if((v|0)==(oa|0)){D=Ca+1|0;Bm(b,Ca,1);if(Y&(K|0)<1){Da=D;break}Bm(b,6008,1);Da=D}else{if(Ca>>>0<=n>>>0){Da=Ca;break}Nn(n|0,48,Ca+x|0)|0;D=Ca;while(1){A=D+-1|0;if(A>>>0>n>>>0)D=A;else{Da=A;break}}}while(0);X=Q-Da|0;Bm(b,Da,(K|0)>(X|0)?X:K);D=K-X|0;v=v+4|0;if(!(v>>>0>>0&(D|0)>-1)){Ea=D;break}else K=D}}else Ea=ua;Jm(b,48,Ea+18|0,18,0);Bm(b,wa,q-wa|0)}Jm(b,32,f,B,h^8192);M=B}else{K=(i&32|0)!=0;F=s+3|0;Jm(b,32,f,F,h&-65537);Bm(b,t,s);Bm(b,r!=r|0.0!=0.0?(K?5984:5988):K?5976:5980,3);Jm(b,32,f,F,h^8192);M=F}while(0);l=j;return ((M|0)<(f|0)?f:M)|0}function Mm(a){a=+a;var b=0;h[j>>3]=a;b=c[j>>2]|0;z=c[j+4>>2]|0;return b|0}function Nm(a,b){a=+a;b=b|0;return +(+Om(a,b))}function Om(a,b){a=+a;b=b|0;var d=0,e=0,f=0,g=0.0,i=0.0,k=0,l=0.0;h[j>>3]=a;d=c[j>>2]|0;e=c[j+4>>2]|0;f=Pn(d|0,e|0,52)|0;switch(f&2047){case 0:{if(a!=0.0){g=+Om(a*18446744073709551616.0,b);i=g;k=(c[b>>2]|0)+-64|0}else{i=a;k=0}c[b>>2]=k;l=i;break}case 2047:{l=a;break}default:{c[b>>2]=(f&2047)+-1022;c[j>>2]=d;c[j+4>>2]=e&-2146435073|1071644672;l=+h[j>>3]}}return +l}function Pm(b,d,e){b=b|0;d=d|0;e=e|0;var f=0;do if(b){if(d>>>0<128){a[b>>0]=d;f=1;break}if(!(c[c[(Qm()|0)+188>>2]>>2]|0))if((d&-128|0)==57216){a[b>>0]=d;f=1;break}else{c[(rm()|0)>>2]=84;f=-1;break}if(d>>>0<2048){a[b>>0]=d>>>6|192;a[b+1>>0]=d&63|128;f=2;break}if(d>>>0<55296|(d&-8192|0)==57344){a[b>>0]=d>>>12|224;a[b+1>>0]=d>>>6&63|128;a[b+2>>0]=d&63|128;f=3;break}if((d+-65536|0)>>>0<1048576){a[b>>0]=d>>>18|240;a[b+1>>0]=d>>>12&63|128;a[b+2>>0]=d>>>6&63|128;a[b+3>>0]=d&63|128;f=4;break}else{c[(rm()|0)>>2]=84;f=-1;break}}else f=1;while(0);return f|0}function Qm(){return tm()|0}function Rm(){return tm()|0}function Sm(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0;f=0;while(1){if((d[6010+f>>0]|0)==(b|0)){g=2;break}h=f+1|0;if((h|0)==87){i=6098;j=87;g=5;break}else f=h}if((g|0)==2)if(!f)k=6098;else{i=6098;j=f;g=5}if((g|0)==5)while(1){g=0;f=i;do{b=f;f=f+1|0}while((a[b>>0]|0)!=0);j=j+-1|0;if(!j){k=f;break}else{i=f;g=5}}return Tm(k,c[e+20>>2]|0)|0}function Tm(a,b){a=a|0;b=b|0;return Um(a,b)|0}function Um(a,b){a=a|0;b=b|0;var d=0;if(!b)d=0;else d=Vm(c[b>>2]|0,c[b+4>>2]|0,a)|0;return (d|0?d:a)|0}function Vm(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;f=(c[b>>2]|0)+1794895138|0;g=Wm(c[b+8>>2]|0,f)|0;h=Wm(c[b+12>>2]|0,f)|0;i=Wm(c[b+16>>2]|0,f)|0;a:do if((g>>>0>>2>>>0?(j=d-(g<<2)|0,h>>>0>>0&i>>>0>>0):0)?((i|h)&3|0)==0:0){j=h>>>2;k=i>>>2;l=0;m=g;while(1){n=m>>>1;o=l+n|0;p=o<<1;q=p+j|0;r=Wm(c[b+(q<<2)>>2]|0,f)|0;s=Wm(c[b+(q+1<<2)>>2]|0,f)|0;if(!(s>>>0>>0&r>>>0<(d-s|0)>>>0)){t=0;break a}if(a[b+(s+r)>>0]|0){t=0;break a}r=wm(e,b+s|0)|0;if(!r)break;s=(r|0)<0;if((m|0)==1){t=0;break a}else{l=s?l:o;m=s?n:m-n|0}}m=p+k|0;l=Wm(c[b+(m<<2)>>2]|0,f)|0;j=Wm(c[b+(m+1<<2)>>2]|0,f)|0;if(j>>>0>>0&l>>>0<(d-j|0)>>>0)t=(a[b+(j+l)>>0]|0)==0?b+j|0:0;else t=0}else t=0;while(0);return t|0}function Wm(a,b){a=a|0;b=b|0;var c=0;c=Xn(a|0)|0;return ((b|0)==0?a:c)|0}function Xm(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;f=e+16|0;g=c[f>>2]|0;if(!g)if(!(Ym(e)|0)){h=c[f>>2]|0;i=5}else j=0;else{h=g;i=5}a:do if((i|0)==5){g=e+20|0;f=c[g>>2]|0;k=f;if((h-f|0)>>>0>>0){j=Sa[c[e+36>>2]&15](e,b,d)|0;break}b:do if((a[e+75>>0]|0)>-1){f=d;while(1){if(!f){l=0;m=b;n=d;o=k;break b}p=f+-1|0;if((a[b+p>>0]|0)==10)break;else f=p}p=Sa[c[e+36>>2]&15](e,b,f)|0;if(p>>>0>>0){j=p;break a}l=f;m=b+f|0;n=d-f|0;o=c[g>>2]|0}else{l=0;m=b;n=d;o=k}while(0);Qn(o|0,m|0,n|0)|0;c[g>>2]=(c[g>>2]|0)+n;j=l+n|0}while(0);return j|0}function Ym(b){b=b|0;var d=0,e=0,f=0;d=b+74|0;e=a[d>>0]|0;a[d>>0]=e+255|e;e=c[b>>2]|0;if(!(e&8)){c[b+8>>2]=0;c[b+4>>2]=0;d=c[b+44>>2]|0;c[b+28>>2]=d;c[b+20>>2]=d;c[b+16>>2]=d+(c[b+48>>2]|0);f=0}else{c[b>>2]=e|32;f=-1}return f|0}function Zm(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0;f=l;l=l+16|0;g=f;h=e&255;a[g>>0]=h;i=b+16|0;j=c[i>>2]|0;if(!j)if(!(Ym(b)|0)){k=c[i>>2]|0;m=4}else n=-1;else{k=j;m=4}do if((m|0)==4){j=b+20|0;i=c[j>>2]|0;if(i>>>0>>0?(o=e&255,(o|0)!=(a[b+75>>0]|0)):0){c[j>>2]=i+1;a[i>>0]=h;n=o;break}if((Sa[c[b+36>>2]&15](b,g,1)|0)==1)n=d[g>>0]|0;else n=-1}while(0);l=f;return n|0}function _m(){Da(9292);return 9300}function $m(){Aa(9292);return}function an(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0;do if(a){if((c[a+76>>2]|0)<=-1){b=bn(a)|0;break}d=(zm(a)|0)==0;e=bn(a)|0;if(d)b=e;else{Am(a);b=e}}else{if(!(c[667]|0))f=0;else f=an(c[667]|0)|0;e=c[(_m()|0)>>2]|0;if(!e)g=f;else{d=e;e=f;while(1){if((c[d+76>>2]|0)>-1)h=zm(d)|0;else h=0;if((c[d+20>>2]|0)>>>0>(c[d+28>>2]|0)>>>0)i=bn(d)|0|e;else i=e;if(h|0)Am(d);d=c[d+56>>2]|0;if(!d){g=i;break}else e=i}}$m();b=g}while(0);return b|0}function bn(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0;b=a+20|0;d=a+28|0;if((c[b>>2]|0)>>>0>(c[d>>2]|0)>>>0?(Sa[c[a+36>>2]&15](a,0,0)|0,(c[b>>2]|0)==0):0)e=-1;else{f=a+4|0;g=c[f>>2]|0;h=a+8|0;i=c[h>>2]|0;if(g>>>0>>0)Sa[c[a+40>>2]&15](a,g-i|0,1)|0;c[a+16>>2]=0;c[d>>2]=0;c[b>>2]=0;c[h>>2]=0;c[f>>2]=0;e=0}return e|0}function cn(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&255;f=b&255;if((c[d+76>>2]|0)>=0?(zm(d)|0)!=0:0){if((f|0)!=(a[d+75>>0]|0)?(g=d+20|0,h=c[g>>2]|0,h>>>0<(c[d+16>>2]|0)>>>0):0){c[g>>2]=h+1;a[h>>0]=e;i=f}else i=Zm(d,b)|0;Am(d);j=i}else k=3;do if((k|0)==3){if((f|0)!=(a[d+75>>0]|0)?(i=d+20|0,h=c[i>>2]|0,h>>>0<(c[d+16>>2]|0)>>>0):0){c[i>>2]=h+1;a[h>>0]=e;j=f;break}j=Zm(d,b)|0}while(0);return j|0}function dn(a){a=a|0;var b=0,c=0;b=(a|0)==0?1:a;while(1){a=km(b)|0;if(a|0){c=a;break}a=Hn()|0;if(!a){c=0;break}Ua[a&3]()}return c|0}function en(a,b){a=a|0;b=b|0;return dn(a)|0}function fn(a){a=a|0;lm(a);return}function gn(){var a=0,b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;a=l;l=l+48|0;b=a+32|0;d=a+24|0;e=a+16|0;f=a;g=a+36|0;a=hn()|0;if(a|0?(h=c[a>>2]|0,h|0):0){a=h+48|0;i=c[a>>2]|0;j=c[a+4>>2]|0;if(!((i&-256|0)==1126902528&(j|0)==1129074247)){c[d>>2]=c[669];jn(7988,d)}if((i|0)==1126902529&(j|0)==1129074247)k=c[h+44>>2]|0;else k=h+80|0;c[g>>2]=k;k=c[h>>2]|0;h=c[k+4>>2]|0;j=Sa[c[(c[152]|0)+16>>2]&15](608,k,g)|0;k=c[669]|0;if(j){j=c[g>>2]|0;g=Ma[c[(c[j>>2]|0)+8>>2]&7](j)|0;c[f>>2]=k;c[f+4>>2]=h;c[f+8>>2]=g;jn(7902,f)}else{c[e>>2]=k;c[e+4>>2]=h;jn(7947,e)}}jn(8026,b)}function hn(){var a=0,b=0;a=l;l=l+16|0;if(!(xa(9304,3)|0)){b=wa(c[2327]|0)|0;l=a;return b|0}else jn(8177,a);return 0}function jn(a,b){a=a|0;b=b|0;var d=0,e=0;d=l;l=l+16|0;e=d;c[e>>2]=b;b=c[543]|0;xm(b,a,e)|0;cn(10,b)|0;ma()}function kn(a){a=a|0;return}function ln(a){a=a|0;kn(a);fn(a);return}function mn(a){a=a|0;return}function nn(a){a=a|0;return}function on(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=l;l=l+64|0;f=e;if(!(sn(a,b,0)|0))if((b|0)!=0?(g=wn(b,632,616,0)|0,(g|0)!=0):0){b=f+4|0;h=b+52|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;_a[c[(c[g>>2]|0)+28>>2]&31](g,f,c[d>>2]|0,1);if((c[f+24>>2]|0)==1){c[d>>2]=c[f+16>>2];i=1}else i=0;j=i}else j=0;else j=1;l=e;return j|0}function pn(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(sn(a,c[b+8>>2]|0,g)|0)vn(0,b,d,e,f);return}function qn(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;do if(!(sn(b,c[d+8>>2]|0,g)|0)){if(sn(b,c[d>>2]|0,g)|0){h=d+32|0;if((c[d+16>>2]|0)!=(e|0)?(i=d+20|0,(c[i>>2]|0)!=(e|0)):0){c[h>>2]=f;c[i>>2]=e;i=d+40|0;c[i>>2]=(c[i>>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[h>>2]=1}}else un(0,d,e,f);while(0);return}function rn(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;if(sn(a,c[b+8>>2]|0,0)|0)tn(0,b,d,e);return}function sn(a,b,c){a=a|0;b=b|0;c=c|0;return (a|0)==(b|0)|0}function tn(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0;b=d+16|0;g=c[b>>2]|0;h=d+36|0;i=d+24|0;do if(g){if((g|0)!=(e|0)){c[h>>2]=(c[h>>2]|0)+1;c[i>>2]=2;a[d+54>>0]=1;break}if((c[i>>2]|0)==2)c[i>>2]=f}else{c[b>>2]=e;c[i>>2]=f;c[h>>2]=1}while(0);return}function un(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;if((c[b+4>>2]|0)==(d|0)?(d=b+28|0,(c[d>>2]|0)!=1):0)c[d>>2]=e;return}function vn(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;a[d+53>>0]=1;do if((c[d+4>>2]|0)==(f|0)){a[d+52>>0]=1;b=d+16|0;h=c[b>>2]|0;i=d+54|0;j=d+48|0;k=d+24|0;l=d+36|0;if(!h){c[b>>2]=e;c[k>>2]=g;c[l>>2]=1;if(!((c[j>>2]|0)==1&(g|0)==1))break;a[i>>0]=1;break}if((h|0)!=(e|0)){c[l>>2]=(c[l>>2]|0)+1;a[i>>0]=1;break}l=c[k>>2]|0;if((l|0)==2){c[k>>2]=g;m=g}else m=l;if((c[j>>2]|0)==1&(m|0)==1)a[i>>0]=1}while(0);return}function wn(d,e,f,g){d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0;h=l;l=l+64|0;i=h;j=c[d>>2]|0;k=d+(c[j+-8>>2]|0)|0;m=c[j+-4>>2]|0;c[i>>2]=f;c[i+4>>2]=d;c[i+8>>2]=e;c[i+12>>2]=g;g=i+16|0;e=i+20|0;d=i+24|0;j=i+28|0;n=i+32|0;o=i+40|0;p=g;q=p+36|0;do{c[p>>2]=0;p=p+4|0}while((p|0)<(q|0));b[g+36>>1]=0;a[g+38>>0]=0;a:do if(sn(m,f,0)|0){c[i+48>>2]=1;Xa[c[(c[m>>2]|0)+20>>2]&7](m,i,k,k,1,0);r=(c[d>>2]|0)==1?k:0}else{Na[c[(c[m>>2]|0)+24>>2]&3](m,i,k,1,0);switch(c[i+36>>2]|0){case 0:{r=(c[o>>2]|0)==1&(c[j>>2]|0)==1&(c[n>>2]|0)==1?c[e>>2]|0:0;break a;break}case 1:break;default:{r=0;break a}}if((c[d>>2]|0)!=1?!((c[o>>2]|0)==0&(c[j>>2]|0)==1&(c[n>>2]|0)==1):0){r=0;break}r=c[g>>2]|0}while(0);l=h;return r|0}function xn(a){a=a|0;kn(a);fn(a);return}function yn(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(sn(a,c[b+8>>2]|0,g)|0)vn(0,b,d,e,f);else{h=c[a+8>>2]|0;Xa[c[(c[h>>2]|0)+20>>2]&7](h,b,d,e,f,g)}return}function zn(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;do if(!(sn(b,c[d+8>>2]|0,g)|0)){h=b+8|0;if(!(sn(b,c[d>>2]|0,g)|0)){i=c[h>>2]|0;Na[c[(c[i>>2]|0)+24>>2]&3](i,d,e,f,g);break}i=d+32|0;if((c[d+16>>2]|0)!=(e|0)?(j=d+20|0,(c[j>>2]|0)!=(e|0)):0){c[i>>2]=f;k=d+44|0;if((c[k>>2]|0)==4)break;l=d+52|0;a[l>>0]=0;m=d+53|0;a[m>>0]=0;n=c[h>>2]|0;Xa[c[(c[n>>2]|0)+20>>2]&7](n,d,e,e,1,g);if(a[m>>0]|0)if(!(a[l>>0]|0)){o=3;p=11}else q=3;else{o=4;p=11}if((p|0)==11){c[j>>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;q=o}else q=o}c[k>>2]=q;break}if((f|0)==1)c[i>>2]=1}else un(0,d,e,f);while(0);return}function An(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;if(sn(a,c[b+8>>2]|0,0)|0)tn(0,b,d,e);else{f=c[a+8>>2]|0;_a[c[(c[f>>2]|0)+28>>2]&31](f,b,d,e)}return}function Bn(a){a=a|0;return}function Cn(){var a=0;a=l;l=l+16|0;if(!(la(9308,65)|0)){l=a;return}else jn(8226,a)}function Dn(a){a=a|0;var b=0;b=l;l=l+16|0;lm(a);if(!(Ca(c[2327]|0,0)|0)){l=b;return}else jn(8276,b)}function En(){var a=0,b=0;a=hn()|0;if((a|0?(b=c[a>>2]|0,b|0):0)?(a=b+48|0,(c[a>>2]&-256|0)==1126902528?(c[a+4>>2]|0)==1129074247:0):0)Fn(c[b+12>>2]|0);Fn(Gn()|0)}function Fn(a){a=a|0;var b=0;b=l;l=l+16|0;Ua[a&3]();jn(8329,b)}function Gn(){var a=0;a=c[668]|0;c[668]=a+0;return a|0}function Hn(){var a=0;a=c[2328]|0;c[2328]=a+0;return a|0}function In(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;e=l;l=l+16|0;f=e;c[f>>2]=c[d>>2];g=Sa[c[(c[a>>2]|0)+16>>2]&15](a,b,f)|0;if(g)c[d>>2]=c[f>>2];l=e;return g&1|0}function Jn(a){a=a|0;var b=0;if(!a)b=0;else b=(wn(a,632,688,0)|0)!=0;return b&1|0}function Kn(){}function Ln(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 (z=e,a-c>>>0|0)|0}function Mn(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0;e=a+c>>>0;return (z=b+d+(e>>>0>>0|0)>>>0,e|0)|0}function Nn(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;d=d&255;if((e|0)>=67){while(b&3){a[b>>0]=d;b=b+1|0}g=f&-4|0;h=g-64|0;i=d|d<<8|d<<16|d<<24;while((b|0)<=(h|0)){c[b>>2]=i;c[b+4>>2]=i;c[b+8>>2]=i;c[b+12>>2]=i;c[b+16>>2]=i;c[b+20>>2]=i;c[b+24>>2]=i;c[b+28>>2]=i;c[b+32>>2]=i;c[b+36>>2]=i;c[b+40>>2]=i;c[b+44>>2]=i;c[b+48>>2]=i;c[b+52>>2]=i;c[b+56>>2]=i;c[b+60>>2]=i;b=b+64|0}while((b|0)<(g|0)){c[b>>2]=i;b=b+4|0}}while((b|0)<(f|0)){a[b>>0]=d;b=b+1|0}return f-e|0}function On(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){z=b<>>32-c;return a<>>c;return a>>>c|(b&(1<>>c-32|0}function Qn(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;if((e|0)>=8192)return sa(b|0,d|0,e|0)|0;f=b|0;g=b+e|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}h=g&-4|0;e=h-64|0;while((b|0)<=(e|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[b+16>>2]=c[d+16>>2];c[b+20>>2]=c[d+20>>2];c[b+24>>2]=c[d+24>>2];c[b+28>>2]=c[d+28>>2];c[b+32>>2]=c[d+32>>2];c[b+36>>2]=c[d+36>>2];c[b+40>>2]=c[d+40>>2];c[b+44>>2]=c[d+44>>2];c[b+48>>2]=c[d+48>>2];c[b+52>>2]=c[d+52>>2];c[b+56>>2]=c[d+56>>2];c[b+60>>2]=c[d+60>>2];b=b+64|0;d=d+64|0}while((b|0)<(h|0)){c[b>>2]=c[d>>2];b=b+4|0;d=d+4|0}}else{h=g-4|0;while((b|0)<(h|0)){a[b>>0]=a[d>>0]|0;a[b+1>>0]=a[d+1>>0]|0;a[b+2>>0]=a[d+2>>0]|0;a[b+3>>0]=a[d+3>>0]|0;b=b+4|0;d=d+4|0}}while((b|0)<(g|0)){a[b>>0]=a[d>>0]|0;b=b+1|0;d=d+1|0}return f|0}function Rn(b){b=b|0;var c=0;c=a[n+(b&255)>>0]|0;if((c|0)<8)return c|0;c=a[n+(b>>8&255)>>0]|0;if((c|0)<8)return c+8|0;c=a[n+(b>>16&255)>>0]|0;if((c|0)<8)return c+16|0;return (a[n+(b>>>24)>>0]|0)+24|0}function Sn(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,A=0,B=0,C=0,D=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 (z=n,o)|0}else{if(!m){n=0;o=0;return (z=n,o)|0}c[f>>2]=a|0;c[f+4>>2]=b&0;n=0;o=0;return (z=n,o)|0}}m=(l|0)==0;do if(j){if(!m){p=(R(l|0)|0)-(R(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<>>(q>>>0)&s;w=0;x=g<>2]=a|0;c[f+4>>2]=h|b&0;n=0;o=0;return (z=n,o)|0}r=j-1|0;if(r&j|0){s=(R(j|0)|0)+33-(R(i|0)|0)|0;q=64-s|0;p=32-s|0;y=p>>31;A=s-32|0;B=A>>31;t=s;u=p-1>>31&i>>>(A>>>0)|(i<>>(s>>>0))&B;v=B&i>>>(s>>>0);w=g<>>(A>>>0))&y|g<>31;break}if(f|0){c[f>>2]=r&g;c[f+4>>2]=0}if((j|0)==1){n=h|b&0;o=a|0|0;return (z=n,o)|0}else{r=Rn(j|0)|0;n=i>>>(r>>>0)|0;o=i<<32-r|g>>>(r>>>0)|0;return (z=n,o)|0}}else{if(m){if(f|0){c[f>>2]=(i>>>0)%(j>>>0);c[f+4>>2]=0}n=0;o=(i>>>0)/(j>>>0)>>>0;return (z=n,o)|0}if(!g){if(f|0){c[f>>2]=0;c[f+4>>2]=(i>>>0)%(l>>>0)}n=0;o=(i>>>0)/(l>>>0)>>>0;return (z=n,o)|0}r=l-1|0;if(!(r&l)){if(f|0){c[f>>2]=a|0;c[f+4>>2]=r&i|b&0}n=0;o=i>>>((Rn(l|0)|0)>>>0);return (z=n,o)|0}r=(R(l|0)|0)-(R(i|0)|0)|0;if(r>>>0<=30){s=r+1|0;p=31-r|0;t=s;u=i<>>(s>>>0);v=i>>>(s>>>0);w=0;x=g<>2]=a|0;c[f+4>>2]=h|b&0;n=0;o=0;return (z=n,o)|0}while(0);if(!t){C=x;D=w;E=v;F=u;G=0;H=0}else{b=d|0|0;d=k|e&0;e=Mn(b|0,d|0,-1,-1)|0;k=z;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;Ln(e|0,k|0,g|0,a|0)|0;i=z;l=i>>31|((i|0)<0?-1:0)<<1;t=l&1;v=Ln(g|0,a|0,l&b|0,(((i|0)<0?-1:0)>>31|((i|0)<0?-1:0)<<1)&d|0)|0;w=z;u=u-1|0}while((u|0)!=0);C=h;D=x;E=w;F=v;G=0;H=t}t=D;D=0;if(f|0){c[f>>2]=F;c[f+4>>2]=E}n=(t|0)>>>31|(C|D)<<1|(D<<1|t>>>31)&0|G;o=(t<<1|0>>>31)&-2|H;return (z=n,o)|0}function Tn(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return Sn(a,b,c,d,0)|0}function Un(a){a=a|0;var b=0,d=0;a=a+15&-16|0;b=c[i>>2]|0;d=b+a|0;if((a|0)>0&(d|0)<(b|0)|(d|0)<0){W()|0;qa(12);return -1}c[i>>2]=d;if((d|0)>(V()|0)?(U()|0)==0:0){c[i>>2]=b;qa(12);return -1}return b|0}function Vn(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 Qn(b,c,d)|0;return b|0}function Wn(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;f=l;l=l+16|0;g=f|0;Sn(a,b,d,e,g)|0;l=f;return (z=c[g+4>>2]|0,c[g>>2]|0)|0}function Xn(a){a=a|0;return (a&255)<<24|(a>>8&255)<<16|(a>>16&255)<<8|a>>>24|0}function Yn(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;return +La[a&1](b|0,c|0,d|0,e|0,f|0,+g)}function Zn(a,b){a=a|0;b=b|0;return Ma[a&7](b|0)|0}function _n(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;Na[a&3](b|0,c|0,d|0,e|0,f|0)}function $n(a,b,c){a=a|0;b=b|0;c=+c;return +Oa[a&15](b|0,+c)}function ao(a,b){a=a|0;b=b|0;Pa[a&127](b|0)}function bo(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=+f;return +Qa[a&1](b|0,c|0,d|0,e|0,+f)}function co(a,b,c){a=a|0;b=b|0;c=c|0;Ra[a&63](b|0,c|0)}function eo(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return Sa[a&15](b|0,c|0,d|0)|0}function fo(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;Ta[a&7](b|0,c|0,d|0)}function go(a){a=a|0;Ua[a&3]()}function ho(a,b,c,d){a=a|0;b=b|0;c=c|0;d=+d;Va[a&31](b|0,c|0,+d)}function io(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return Wa[a&7](b|0,c|0,d|0,e|0)|0}function jo(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;Xa[a&7](b|0,c|0,d|0,e|0,f|0,g|0)}function ko(a,b,c){a=a|0;b=b|0;c=c|0;return Ya[a&31](b|0,c|0)|0}function lo(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 Za[a&15](b|0,c|0,d|0,e|0,f|0)|0}function mo(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;_a[a&31](b|0,c|0,d|0,e|0)}function no(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=+f;S(0);return 0.0}function oo(a){a=a|0;S(1);return 0}function po(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;S(2)}function qo(a,b){a=a|0;b=+b;S(3);return 0.0}function ro(a){a=a|0;S(4)}function so(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=+e;S(5);return 0.0}function to(a,b){a=a|0;b=b|0;S(6)}function uo(a,b,c){a=a|0;b=b|0;c=c|0;S(7);return 0}function vo(a,b,c){a=a|0;b=b|0;c=c|0;S(8)}function wo(){S(9)}function xo(){Ia()}function yo(a,b,c){a=a|0;b=b|0;c=+c;S(10)}function zo(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;S(11);return 0}function Ao(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;S(12)}function Bo(a,b){a=a|0;b=b|0;S(13);return 0}function Co(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;S(14);return 0}function Do(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;S(15)} +function tm(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.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,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,P=0,Q=0,R=0,S=0.0,T=0.0,U=0,V=0,W=0,X=0,Y=0,_=0,aa=0.0,ba=0,ca=0.0,da=0.0,ea=0,fa=0,ga=0,ha=0,ia=0.0,ja=0;e=i;i=i+48|0;f=e+32|0;h=e;j=b+44|0;k=c[j>>2]|0;if(!k){i=e;return}l=c[b+280>>2]|0;if(l){m=b+296|0;n=m;o=+g[d>>2]/+g[b+396>>2]*4294967296.0;p=zp(~~o>>>0|0,(+N(o)>=1.0?(o>0.0?~~+$(+M(o/4294967296.0),4294967295.0)>>>0:~~+Z((o-+(~~o>>>0))/4294967296.0)>>>0):0)|0,c[n>>2]|0,c[n+4>>2]|0)|0;n=C;q=m;c[q>>2]=p;c[q+4>>2]=n;q=c[b+288>>2]|0;p=b+304|0;if(a[p>>0]|0){c[f>>2]=l;Vm(q,q+(k<<2)|0,f);a[p>>0]=0}a:do if((k|0)>0){p=b+88|0;m=k;do{r=m;m=m+-1|0;s=c[q+(m<<2)>>2]|0;t=c[l+(s<<2)>>2]|0;if((n|0)<(t|0)|(t|0)<1)break a;Zl(b,s,c[(c[p>>2]|0)+(s<<2)>>2]|2)}while((r|0)>1)}while(0)}n=b+8|0;if(c[n>>2]&2)Wl(b);l=b+12|0;if(a[l>>0]|0){c[n>>2]=0;q=c[j>>2]|0;if((q|0)>0){k=c[b+88>>2]|0;p=0;m=0;do{p=c[k+(m<<2)>>2]|p;c[n>>2]=p;m=m+1|0}while((m|0)!=(q|0))}a[l>>0]=0}l=b+20|0;if(a[l>>0]|0){q=b+16|0;c[q>>2]=0;m=c[b+312>>2]|0;if(m){p=0;k=m;do{p=c[k+12>>2]|p;c[q>>2]=p;k=c[k+24>>2]|0}while((k|0)!=0)}a[l>>0]=0}if(a[b>>0]|0){i=e;return}l=b+24|0;c[l>>2]=0;k=d+20|0;p=c[k>>2]|0;if((p|0)<=0){i=e;return}q=b+4|0;m=h+4|0;r=b+116|0;s=b+236|0;t=b+232|0;u=b+220|0;v=b+216|0;w=b+16|0;x=b+21|0;y=b+324|0;z=b+400|0;A=b+104|0;B=b+32|0;D=b+88|0;E=b+96|0;F=b+372|0;G=b+144|0;H=b+132|0;I=b+368|0;J=b+364|0;K=b+36|0;L=b+28|0;P=b+112|0;Q=f+4|0;R=p;do{c[q>>2]=(c[q>>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];c[h+16>>2]=c[d+16>>2];c[h+20>>2]=c[d+20>>2];c[h+24>>2]=c[d+24>>2];o=+(R|0);S=+g[h>>2]/o;g[h>>2]=S;T=+g[m>>2]*o;g[m>>2]=T;dm(b,0);pm(b);xp(c[r>>2]|0,0,c[j>>2]<<2|0)|0;p=c[s>>2]|0;if((p|0)>0){U=c[t>>2]|0;V=c[r>>2]|0;W=0;do{X=V+(c[U+(W*28|0)>>2]<<2)|0;g[X>>2]=+g[U+(W*28|0)+12>>2]+ +g[X>>2];W=W+1|0}while((W|0)!=(p|0))}p=c[u>>2]|0;if((p|0)>0){W=c[v>>2]|0;U=c[r>>2]|0;V=0;do{X=c[W+(V*24|0)+4>>2]|0;o=+g[W+(V*24|0)+8>>2];Y=U+(c[W+(V*24|0)>>2]<<2)|0;g[Y>>2]=o+ +g[Y>>2];Y=U+(X<<2)|0;g[Y>>2]=o+ +g[Y>>2];V=V+1|0}while((V|0)!=(p|0))}if(c[w>>2]&16)im(b);p=c[n>>2]|0;if(!(p&4096))_=p;else{p=c[D>>2]|0;c[f>>2]=2300;c[Q>>2]=p;em(b,0,c[j>>2]|0,f);if((c[j>>2]|0)>0){p=c[D>>2]|0;V=0;do{U=p+(V<<2)|0;c[U>>2]=c[U>>2]&-4097;V=V+1|0}while((V|0)<(c[j>>2]|0))}V=c[n>>2]&-4097;c[n>>2]=V;_=V}if(a[x>>0]|0){o=+g[K>>2]*1.3333333730697632;aa=S*(o*(+g[L>>2]*o));V=c[j>>2]|0;if((V|0)>0){p=c[A>>2]|0;U=c[P>>2]|0;W=0;do{o=aa*+g[U+(W<<3)+4>>2];Y=p+(W<<3)|0;g[Y>>2]=aa*+g[U+(W<<3)>>2]+ +g[Y>>2];Y=p+(W<<3)+4|0;g[Y>>2]=o+ +g[Y>>2];W=W+1|0}while((W|0)!=(V|0))}a[x>>0]=0}if(!(_&32))ba=_;else{um(b);ba=c[n>>2]|0}if((ba&8192|0)!=0?(aa=+g[J>>2]*(+g[B>>2]*T),V=c[u>>2]|0,(V|0)>0):0){W=c[v>>2]|0;p=0;do{do if(c[W+(p*24|0)+20>>2]&8192){U=c[W+(p*24|0)>>2]|0;Y=c[W+(p*24|0)+4>>2]|0;X=c[G>>2]|0;if((c[X+(U<<2)>>2]|0)==(c[X+(Y<<2)>>2]|0))break;o=aa*+g[W+(p*24|0)+8>>2];ca=+g[W+(p*24|0)+12>>2]*o;da=o*+g[W+(p*24|0)+16>>2];X=c[A>>2]|0;ea=X+(U<<3)|0;g[ea>>2]=+g[ea>>2]-ca;ea=X+(U<<3)+4|0;g[ea>>2]=+g[ea>>2]-da;ea=X+(Y<<3)|0;g[ea>>2]=ca+ +g[ea>>2];ea=X+(Y<<3)+4|0;g[ea>>2]=da+ +g[ea>>2]}while(0);p=p+1|0}while((p|0)!=(V|0))}if((ba&64|0)!=0?(aa=+g[I>>2]*(+g[B>>2]*T),V=c[u>>2]|0,(V|0)>0):0){p=c[v>>2]|0;W=0;do{do if(c[p+(W*24|0)+20>>2]&64){da=+g[p+(W*24|0)+8>>2];if(!(da>.25))break;ea=c[p+(W*24|0)>>2]|0;Y=c[p+(W*24|0)+4>>2]|0;ca=aa*(da+-.25);da=ca*+g[p+(W*24|0)+12>>2];o=ca*+g[p+(W*24|0)+16>>2];X=c[A>>2]|0;U=X+(ea<<3)|0;g[U>>2]=+g[U>>2]-da;U=X+(ea<<3)+4|0;g[U>>2]=+g[U>>2]-o;U=X+(Y<<3)|0;g[U>>2]=da+ +g[U>>2];U=X+(Y<<3)+4|0;g[U>>2]=o+ +g[U>>2]}while(0);W=W+1|0}while((W|0)!=(V|0))}if(ba&128)vm(b,h);if((c[w>>2]&1|0)!=0?(aa=T*+g[F>>2],V=c[u>>2]|0,(V|0)>0):0){W=c[v>>2]|0;p=c[G>>2]|0;U=0;do{Y=c[W+(U*24|0)>>2]|0;X=c[W+(U*24|0)+4>>2]|0;if((c[p+(Y<<2)>>2]|0)!=(c[p+(X<<2)>>2]|0)){ea=c[H>>2]|0;o=+g[W+(U*24|0)+8>>2]*(aa*(+g[ea+(Y<<2)>>2]+ +g[ea+(X<<2)>>2]));da=+g[W+(U*24|0)+12>>2]*o;ca=+g[W+(U*24|0)+16>>2]*o;ea=c[A>>2]|0;fa=ea+(Y<<3)|0;g[fa>>2]=+g[fa>>2]-da;fa=ea+(Y<<3)+4|0;g[fa>>2]=+g[fa>>2]-ca;fa=ea+(X<<3)|0;g[fa>>2]=da+ +g[fa>>2];fa=ea+(X<<3)+4|0;g[fa>>2]=ca+ +g[fa>>2]}U=U+1|0}while((U|0)!=(V|0))}if(c[n>>2]&256)wm(b);aa=S*+g[y>>2];V=c[z>>2]|0;ca=aa*+g[V+102980>>2];da=aa*+g[V+102984>>2];V=c[j>>2]|0;if((V|0)>0){U=c[A>>2]|0;W=0;do{p=U+(W<<3)|0;g[p>>2]=ca+ +g[p>>2];p=U+(W<<3)+4|0;g[p>>2]=da+ +g[p>>2];W=W+1|0}while((W|0)!=(V|0))}if(c[n>>2]&2048)xm(b,h);ym(b,h);zm(b,h);V=c[n>>2]|0;if(!(V&2048))ga=V;else{Am(b);ga=c[n>>2]|0}if(!(ga&16))ha=ga;else{Bm(b,h);ha=c[n>>2]|0}if(ha&8)Cm(b,h);da=+g[B>>2]*T;ca=da*da;V=c[j>>2]|0;if((V|0)>0){W=c[A>>2]|0;U=0;do{p=W+(U<<3)|0;da=+g[p>>2];fa=W+(U<<3)+4|0;aa=+g[fa>>2];o=da*da+aa*aa;if(o>ca){ia=+O(+(ca/o));g[p>>2]=da*ia;g[fa>>2]=aa*ia}U=U+1|0}while((U|0)!=(V|0))}if(c[w>>2]&2)Dm(b);if(c[n>>2]&1024)sm(b,h);rm(b,h);if(c[w>>2]&2)Em(b,h);V=c[j>>2]|0;do if(!(c[n>>2]&4))ja=96;else{if((V|0)<=0)break;U=c[D>>2]|0;W=0;do{if(c[U+(W<<2)>>2]&4){fa=c[A>>2]|0;g[fa+(W<<3)>>2]=0.0;g[fa+(W<<3)+4>>2]=0.0}W=W+1|0}while((W|0)!=(V|0));ja=96}while(0);do if((ja|0)==96){ja=0;if((V|0)<=0)break;W=c[E>>2]|0;U=c[A>>2]|0;fa=0;do{ca=S*+g[U+(fa<<3)+4>>2];p=W+(fa<<3)|0;g[p>>2]=S*+g[U+(fa<<3)>>2]+ +g[p>>2];p=W+(fa<<3)+4|0;g[p>>2]=ca+ +g[p>>2];fa=fa+1|0}while((fa|0)<(V|0))}while(0);V=(c[l>>2]|0)+1|0;c[l>>2]=V;R=c[k>>2]|0}while((V|0)<(R|0));i=e;return}function um(a){a=a|0;var d=0.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.0,r=0.0,s=0.0,t=0,u=0,v=0,w=0,x=0,y=0,z=0.0,A=0,B=0.0,C=0.0,D=0.0,E=0.0,F=0;d=+g[a+352>>2];e=c[a+236>>2]|0;if((e|0)>0){f=a+96|0;h=a+104|0;i=a+36|0;j=a+28|0;k=c[a+232>>2]|0;l=c[a+88>>2]|0;m=0;do{n=c[k+(m*28|0)>>2]|0;if((c[l+(n<<2)>>2]&32|0)!=0?(o=c[k+(m*28|0)+4>>2]|0,p=c[f>>2]|0,q=+g[p+(n<<3)>>2],r=+g[p+(n<<3)+4>>2],p=o+88|0,s=+g[p>>2],t=o+60|0,u=o+64|0,v=o+80|0,w=o+84|0,x=c[h>>2]|0,y=x+(n<<3)|0,z=+g[y>>2],A=x+(n<<3)+4|0,B=+g[A>>2],C=+g[k+(m*28|0)+12>>2]*(d*+g[k+(m*28|0)+24>>2]),D=C*(+g[v>>2]-s*(r-+g[u>>2])-z),E=C*(s*(q-+g[t>>2])+ +g[w>>2]-B),s=+g[i>>2]*1.3333333730697632,C=s*(+g[j>>2]*s),g[y>>2]=z+D*C,g[A>>2]=B+E*C,C=-D,D=-E,(c[o>>2]|0)==2):0){A=o+4|0;y=b[A>>1]|0;if((y&2)==0?(n=y&65535,(n&2|0)==0):0){x=(n|2)&65535;b[A>>1]=x;g[o+160>>2]=0.0;F=x}else F=y;if(F&2){E=+g[o+136>>2];g[v>>2]=E*C+ +g[v>>2];g[w>>2]=E*D+ +g[w>>2];g[p>>2]=+g[p>>2]+ +g[o+144>>2]*((q-+g[t>>2])*D-(r-+g[u>>2])*C)}}m=m+1|0}while((m|0)<(e|0))}e=c[a+220>>2]|0;if((e|0)<=0)return;m=c[a+216>>2]|0;F=a+104|0;a=0;do{if(c[m+(a*24|0)+20>>2]&32){j=c[m+(a*24|0)>>2]|0;i=c[m+(a*24|0)+4>>2]|0;k=c[F>>2]|0;h=k+(i<<3)|0;f=k+(j<<3)|0;C=+g[f>>2];l=k+(i<<3)+4|0;i=k+(j<<3)+4|0;r=+g[i>>2];D=d*+g[m+(a*24|0)+8>>2];q=D*(+g[h>>2]-C);E=D*(+g[l>>2]-r);g[f>>2]=C+q;g[i>>2]=r+E;g[h>>2]=+g[h>>2]-q;g[l>>2]=+g[l>>2]-E}a=a+1|0}while((a|0)<(e|0));return}function vm(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,q=0,r=0.0,s=0.0,t=0.0,u=0.0;d=a+44|0;if((c[d>>2]|0)>0){e=a+128|0;f=0;do{h=2440;i=c[h+4>>2]|0;j=(c[e>>2]|0)+(f<<3)|0;c[j>>2]=c[h>>2];c[j+4>>2]=i;f=f+1|0}while((f|0)<(c[d>>2]|0))}d=a+216|0;f=c[a+220>>2]|0;e=(f|0)>0;if(e){i=a+128|0;j=c[d>>2]|0;h=0;do{if(c[j+(h*24|0)+20>>2]&128){k=c[j+(h*24|0)>>2]|0;l=c[j+(h*24|0)+4>>2]|0;m=+g[j+(h*24|0)+8>>2];n=m*(1.0-m);m=+g[j+(h*24|0)+12>>2]*n;o=+g[j+(h*24|0)+16>>2]*n;p=c[i>>2]|0;q=p+(k<<3)|0;g[q>>2]=+g[q>>2]-m;q=p+(k<<3)+4|0;g[q>>2]=+g[q>>2]-o;q=p+(l<<3)|0;g[q>>2]=m+ +g[q>>2];q=p+(l<<3)+4|0;g[q>>2]=o+ +g[q>>2]}h=h+1|0}while((h|0)<(f|0))}o=+g[a+32>>2]*+g[b+4>>2];m=+g[a+356>>2]*o;n=o*+g[a+360>>2];r=o*.5;if(!e)return;e=a+116|0;b=a+128|0;h=a+104|0;a=c[d>>2]|0;d=0;do{if(c[a+(d*24|0)+20>>2]&128){i=c[a+(d*24|0)>>2]|0;j=c[a+(d*24|0)+4>>2]|0;o=+g[a+(d*24|0)+12>>2];s=+g[a+(d*24|0)+16>>2];q=c[e>>2]|0;l=c[b>>2]|0;t=m*(+g[q+(i<<2)>>2]+ +g[q+(j<<2)>>2]+-2.0)+n*(o*(+g[l+(j<<3)>>2]-+g[l+(i<<3)>>2])+s*(+g[l+(j<<3)+4>>2]-+g[l+(i<<3)+4>>2]));u=+g[a+(d*24|0)+8>>2]*(t>2]|0;q=l+(i<<3)|0;g[q>>2]=+g[q>>2]-t;q=l+(i<<3)+4|0;g[q>>2]=+g[q>>2]-o;q=l+(j<<3)|0;g[q>>2]=+g[q>>2]+t;q=l+(j<<3)+4|0;g[q>>2]=+g[q>>2]+o}d=d+1|0}while((d|0)<(f|0));return}function wm(b){b=b|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;e=~~(+g[b+388>>2]*128.0);if(!e)return;f=c[b+220>>2]|0;if((f|0)<=0)return;h=b+136|0;i=d[6076]|0;j=c[b+216>>2]|0;k=c[b+88>>2]|0;b=0;do{l=c[j+(b*24|0)>>2]|0;m=c[j+(b*24|0)+4>>2]|0;if(c[k+(l<<2)>>2]&256&c[k+(m<<2)>>2]){n=c[h>>2]|0;o=n+(m<<2)|0;p=n+(l<<2)|0;q=d[p>>0]|0;r=(_((d[o>>0]|0)-q|0,e)|0)>>i;s=n+(m<<2)+1|0;t=n+(l<<2)+1|0;u=d[t>>0]|0;v=(_((d[s>>0]|0)-u|0,e)|0)>>i;w=n+(m<<2)+2|0;x=n+(l<<2)+2|0;y=d[x>>0]|0;z=(_((d[w>>0]|0)-y|0,e)|0)>>i;A=n+(m<<2)+3|0;m=n+(l<<2)+3|0;l=d[m>>0]|0;n=(_((d[A>>0]|0)-l|0,e)|0)>>i;a[p>>0]=r+q;a[t>>0]=v+u;a[x>>0]=z+y;a[m>>0]=n+l;a[o>>0]=(d[o>>0]|0)-r;a[s>>0]=(d[s>>0]|0)-v;a[w>>0]=(d[w>>0]|0)-z;a[A>>0]=(d[A>>0]|0)-n}b=b+1|0}while((b|0)<(f|0));return}function xm(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,o=0,p=0,q=0,r=0,s=0,t=0,u=0.0,v=0,w=0,x=0,y=0.0;d=a+120|0;e=c[d>>2]|0;if(!e){f=a+48|0;h=c[f>>2]|0;if(!h){Ul(a,256);i=c[f>>2]|0}else i=h;h=Sn(c[a+400>>2]|0,i<<2)|0;xp(h|0,0,c[f>>2]<<2|0)|0;j=h}else j=e;c[d>>2]=j;k=+g[a+32>>2]*+g[b+4>>2];l=+g[a+320>>2]*(k*k);k=+g[a+376>>2]*l;m=l*.25;l=+g[a+380>>2];b=a+384|0;if((c[b>>2]|0)<=0)return;j=a+124|0;e=a+44|0;h=a+220|0;f=a+116|0;i=a+88|0;n=a+216|0;a=c[e>>2]|0;o=0;do{xp(c[j>>2]|0,0,a<<2|0)|0;p=c[h>>2]|0;if((p|0)>0){q=c[n>>2]|0;r=0;do{if(c[q+(r*24|0)+20>>2]&2048){s=c[q+(r*24|0)>>2]|0;t=c[q+(r*24|0)+4>>2]|0;u=+g[q+(r*24|0)+8>>2];v=c[d>>2]|0;w=c[j>>2]|0;x=w+(s<<2)|0;g[x>>2]=u*+g[v+(t<<2)>>2]+ +g[x>>2];x=w+(t<<2)|0;g[x>>2]=u*+g[v+(s<<2)>>2]+ +g[x>>2]}r=r+1|0}while((r|0)<(p|0))}a=c[e>>2]|0;if((a|0)>0){p=c[f>>2]|0;r=c[i>>2]|0;q=0;do{u=+g[p+(q<<2)>>2];if(!(c[r+(q<<2)>>2]&2048))g[(c[d>>2]|0)+(q<<2)>>2]=0.0;else{y=(k*(u+-1.0)+ +g[(c[j>>2]|0)+(q<<2)>>2])/(l+u);u=y>2]|0)+(q<<2)>>2]=u<0.0?0.0:u}q=q+1|0}while((q|0)<(a|0))}o=o+1|0}while((o|0)<(c[b>>2]|0));return}function ym(a,d){a=a|0;d=d|0;var e=0,f=0,h=0.0,i=0.0,j=0.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,w=0,x=0;e=a+320|0;f=a+32|0;h=+g[f>>2]*+g[d+4>>2];i=+g[e>>2]*(h*h);h=+g[a+336>>2]*i;j=i*.25;k=c[a+44>>2]|0;l=(k|0)>0;if(l){m=c[a+116>>2]|0;n=c[a+124>>2]|0;o=0;do{i=+g[m+(o<<2)>>2]+-1.0;p=h*(i<0.0?0.0:i);g[n+(o<<2)>>2]=p>2]|0;if(!((o&192|0)==0|l^1)){n=c[a+88>>2]|0;m=a+124|0;q=0;do{if(c[n+(q<<2)>>2]&192)g[(c[m>>2]|0)+(q<<2)>>2]=0.0;q=q+1|0}while((q|0)<(k|0))}if(!((o&2048|0)==0|l^1)){l=c[a+88>>2]|0;o=a+120|0;q=a+124|0;m=0;do{if(c[l+(m<<2)>>2]&2048){n=(c[q>>2]|0)+(m<<2)|0;g[n>>2]=+g[(c[o>>2]|0)+(m<<2)>>2]+ +g[n>>2]}m=m+1|0}while((m|0)<(k|0))}j=+g[d>>2]/(+g[e>>2]*+g[f>>2]);f=c[a+236>>2]|0;if((f|0)>0){e=c[a+232>>2]|0;d=c[a+96>>2]|0;k=c[a+124>>2]|0;m=c[a+104>>2]|0;p=+g[a+36>>2]*1.3333333730697632;i=p*(+g[a+28>>2]*p);o=0;do{q=c[e+(o*28|0)>>2]|0;l=c[e+(o*28|0)+4>>2]|0;p=+g[e+(o*28|0)+12>>2];r=+g[d+(q<<3)>>2];s=+g[d+(q<<3)+4>>2];t=j*p*+g[e+(o*28|0)+24>>2]*(h*p+ +g[k+(q<<2)>>2]);p=+g[e+(o*28|0)+16>>2]*t;u=+g[e+(o*28|0)+20>>2]*t;n=m+(q<<3)|0;g[n>>2]=+g[n>>2]-p*i;n=m+(q<<3)+4|0;g[n>>2]=+g[n>>2]-u*i;if((c[l>>2]|0)==2){n=l+4|0;q=b[n>>1]|0;if((q&2)==0?(v=q&65535,(v&2|0)==0):0){w=(v|2)&65535;b[n>>1]=w;g[l+160>>2]=0.0;x=w}else x=q;if(x&2){t=+g[l+136>>2];q=l+80|0;g[q>>2]=p*t+ +g[q>>2];q=l+84|0;g[q>>2]=u*t+ +g[q>>2];q=l+88|0;g[q>>2]=+g[q>>2]+ +g[l+144>>2]*(u*(r-+g[l+60>>2])-p*(s-+g[l+64>>2]))}}o=o+1|0}while((o|0)<(f|0))}f=c[a+220>>2]|0;if((f|0)<=0)return;o=c[a+216>>2]|0;x=c[a+124>>2]|0;m=c[a+104>>2]|0;a=0;do{e=c[o+(a*24|0)>>2]|0;k=c[o+(a*24|0)+4>>2]|0;i=j*+g[o+(a*24|0)+8>>2]*(+g[x+(e<<2)>>2]+ +g[x+(k<<2)>>2]);h=+g[o+(a*24|0)+12>>2]*i;s=+g[o+(a*24|0)+16>>2]*i;d=m+(e<<3)|0;g[d>>2]=+g[d>>2]-h;d=m+(e<<3)+4|0;g[d>>2]=+g[d>>2]-s;d=m+(k<<3)|0;g[d>>2]=h+ +g[d>>2];d=m+(k<<3)+4|0;g[d>>2]=s+ +g[d>>2];a=a+1|0}while((a|0)<(f|0));return}function zm(a,d){a=a|0;d=d|0;var e=0.0,f=0.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.0,v=0,w=0,x=0,y=0,z=0,A=0.0,B=0,C=0.0,D=0.0,E=0.0,F=0.0,G=0,H=0;e=+g[a+340>>2];f=1.0/(+g[a+32>>2]*+g[d+4>>2]);d=c[a+236>>2]|0;if((d|0)>0){h=a+36|0;i=a+28|0;j=c[a+232>>2]|0;k=c[a+96>>2]|0;l=c[a+104>>2]|0;m=0;do{n=c[j+(m*28|0)>>2]|0;o=c[j+(m*28|0)+4>>2]|0;p=+g[j+(m*28|0)+16>>2];q=+g[j+(m*28|0)+20>>2];r=+g[k+(n<<3)>>2];s=+g[k+(n<<3)+4>>2];t=o+88|0;u=+g[t>>2];v=o+60|0;w=o+64|0;x=o+80|0;y=o+84|0;z=l+(n<<3)|0;A=+g[z>>2];B=l+(n<<3)+4|0;C=+g[B>>2];D=p*(+g[x>>2]-u*(s-+g[w>>2])-A)+q*(u*(r-+g[v>>2])+ +g[y>>2]-C);if(D<0.0?(u=e*+g[j+(m*28|0)+12>>2],E=f*D,F=E>-.5?-E:.5,E=D*(+g[j+(m*28|0)+24>>2]*(u>F?u:F)),F=p*E,p=q*E,E=+g[h>>2]*1.3333333730697632,q=E*(+g[i>>2]*E),g[z>>2]=A+q*F,g[B>>2]=C+q*p,q=-F,F=-p,(c[o>>2]|0)==2):0){B=o+4|0;z=b[B>>1]|0;if((z&2)==0?(n=z&65535,(n&2|0)==0):0){G=(n|2)&65535;b[B>>1]=G;g[o+160>>2]=0.0;H=G}else H=z;if(H&2){p=+g[o+136>>2];g[x>>2]=p*q+ +g[x>>2];g[y>>2]=p*F+ +g[y>>2];g[t>>2]=+g[t>>2]+ +g[o+144>>2]*((r-+g[v>>2])*F-(s-+g[w>>2])*q)}}m=m+1|0}while((m|0)<(d|0))}d=c[a+220>>2]|0;if((d|0)<=0)return;m=c[a+216>>2]|0;H=c[a+104>>2]|0;a=0;do{i=c[m+(a*24|0)>>2]|0;h=c[m+(a*24|0)+4>>2]|0;q=+g[m+(a*24|0)+12>>2];s=+g[m+(a*24|0)+16>>2];j=H+(h<<3)|0;l=H+(i<<3)|0;F=+g[l>>2];k=H+(h<<3)+4|0;h=H+(i<<3)+4|0;r=+g[h>>2];p=q*(+g[j>>2]-F)+s*(+g[k>>2]-r);if(p<0.0){C=e*+g[m+(a*24|0)+8>>2];A=f*p;E=A>-.5?-A:.5;A=p*(C>E?C:E);E=q*A;q=s*A;g[l>>2]=F+E;g[h>>2]=r+q;g[j>>2]=+g[j>>2]-E;g[k>>2]=+g[k>>2]-q}a=a+1|0}while((a|0)<(d|0));return}function Am(a){a=a|0;var d=0,e=0,f=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,u=0,v=0,w=0,x=0,y=0,z=0.0,A=0,B=0.0,C=0.0,D=0;d=c[a+236>>2]|0;if((d|0)<=0)return;e=a+96|0;f=a+104|0;h=a+36|0;i=a+28|0;j=c[a+232>>2]|0;k=c[a+88>>2]|0;a=0;do{l=c[j+(a*28|0)>>2]|0;if(((c[k+(l<<2)>>2]&2048|0)!=0?(m=c[j+(a*28|0)+4>>2]|0,n=+g[j+(a*28|0)+16>>2],o=+g[j+(a*28|0)+20>>2],p=c[e>>2]|0,q=+g[p+(l<<3)>>2],r=+g[p+(l<<3)+4>>2],p=m+88|0,s=+g[p>>2],t=m+60|0,u=m+64|0,v=m+80|0,w=m+84|0,x=c[f>>2]|0,y=x+(l<<3)|0,z=+g[y>>2],A=x+(l<<3)+4|0,B=+g[A>>2],C=n*(+g[v>>2]-s*(r-+g[u>>2])-z)+o*(s*(q-+g[t>>2])+ +g[w>>2]-B),C<0.0):0)?(s=C*(+g[j+(a*28|0)+24>>2]*.5),C=n*s,n=o*s,s=+g[h>>2]*1.3333333730697632,o=s*(+g[i>>2]*s),g[y>>2]=z+C*o,g[A>>2]=B+n*o,o=-C,C=-n,(c[m>>2]|0)==2):0){A=m+4|0;y=b[A>>1]|0;if((y&2)==0?(l=y&65535,(l&2|0)==0):0){x=(l|2)&65535;b[A>>1]=x;g[m+160>>2]=0.0;D=x}else D=y;if(D&2){n=+g[m+136>>2];g[v>>2]=n*o+ +g[v>>2];g[w>>2]=n*C+ +g[w>>2];g[p>>2]=+g[p>>2]+ +g[m+144>>2]*((q-+g[t>>2])*C-(r-+g[u>>2])*o)}}a=a+1|0}while((a|0)<(d|0));return}function Bm(a,b){a=a|0;b=b|0;var d=0.0,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.0,t=0,u=0.0,v=0,w=0.0,x=0.0,y=0.0,z=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,K=0.0,L=0.0,M=0.0;d=+g[b+4>>2]*+g[a+344>>2];e=a+268|0;f=c[e>>2]|0;if((f|0)<=0)return;h=a+264|0;i=a+96|0;j=a+104|0;a=f;f=0;while(1){l=c[h>>2]|0;if(!(c[l+(f*60|0)+12>>2]&16))m=a;else{n=c[l+(f*60|0)>>2]|0;o=c[l+(f*60|0)+4>>2]|0;p=c[l+(f*60|0)+8>>2]|0;q=c[i>>2]|0;r=c[j>>2]|0;s=+g[b>>2];t=r+(n<<3)|0;u=+g[t>>2];v=r+(n<<3)+4|0;w=+g[v>>2];x=+g[q+(n<<3)>>2]+s*u;y=+g[q+(n<<3)+4>>2]+s*w;n=r+(o<<3)|0;z=r+(o<<3)+4|0;A=+g[q+(o<<3)>>2]+s*+g[n>>2];B=+g[q+(o<<3)+4>>2]+s*+g[z>>2];o=r+(p<<3)|0;C=r+(p<<3)+4|0;D=+g[q+(p<<3)>>2]+s*+g[o>>2];E=+g[q+(p<<3)+4>>2]+s*+g[C>>2];s=(x+A+D)*.3333333432674408;F=(y+B+E)*.3333333432674408;G=x-s;x=y-F;y=A-s;A=B-F;B=D-s;s=E-F;F=+g[l+(f*60|0)+20>>2];E=+g[l+(f*60|0)+24>>2];p=l+(f*60|0)+28|0;D=+g[p>>2];q=l+(f*60|0)+32|0;H=+g[q>>2];r=l+(f*60|0)+36|0;I=+g[r>>2];J=l+(f*60|0)+40|0;K=+g[J>>2];L=F*x-E*G+(D*A-H*y)+(I*s-B*K);M=F*G+E*x+(D*y+H*A)+(B*I+s*K);K=L*L+M*M;I=(c[k>>2]=1597463007-((g[k>>2]=K,c[k>>2]|0)>>1),+g[k>>2]);H=I*(1.5-I*(K*.5*I));I=L*H;L=M*H;H=d*+g[l+(f*60|0)+16>>2];g[t>>2]=u+H*(F*L-E*I-G);g[v>>2]=w+H*(F*I+E*L-x);x=+g[p>>2];E=+g[q>>2];g[n>>2]=+g[n>>2]+H*(x*L-E*I-y);g[z>>2]=+g[z>>2]+H*(x*I+E*L-A);A=+g[r>>2];E=+g[J>>2];g[o>>2]=+g[o>>2]+H*(A*L-E*I-B);g[C>>2]=+g[C>>2]+H*(A*I+E*L-s);m=c[e>>2]|0}f=f+1|0;if((f|0)>=(m|0))break;else a=m}return}function Cm(a,b){a=a|0;b=b|0;var d=0.0,e=0,f=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0.0,o=0,p=0.0,q=0,r=0.0,s=0,t=0,u=0.0,v=0.0,w=0.0;d=+g[b+4>>2]*+g[a+348>>2];e=c[a+252>>2]|0;if((e|0)<=0)return;f=a+96|0;h=a+104|0;i=c[a+248>>2]|0;a=0;do{if(c[i+(a*20|0)+8>>2]&8){j=c[i+(a*20|0)>>2]|0;k=c[i+(a*20|0)+4>>2]|0;l=c[f>>2]|0;m=c[h>>2]|0;n=+g[b>>2];o=m+(j<<3)|0;p=+g[o>>2];q=m+(j<<3)+4|0;r=+g[q>>2];s=m+(k<<3)|0;t=m+(k<<3)+4|0;u=+g[l+(k<<3)>>2]+n*+g[s>>2]-(+g[l+(j<<3)>>2]+n*p);v=+g[l+(k<<3)+4>>2]+n*+g[t>>2]-(+g[l+(j<<3)+4>>2]+n*r);n=+O(+(u*u+v*v));w=(+g[i+(a*20|0)+16>>2]-n)*(d*+g[i+(a*20|0)+12>>2])/n;n=u*w;u=v*w;g[o>>2]=p-n;g[q>>2]=r-u;g[s>>2]=n+ +g[s>>2];g[t>>2]=u+ +g[t>>2]}a=a+1|0}while((a|0)<(e|0));return}function Dm(a){a=a|0;var d=0.0,e=0,f=0,h=0,i=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,x=0.0,y=0,z=0.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,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;d=+g[a+340>>2];e=a+236|0;if((c[e>>2]|0)>0){f=a+232|0;h=a+144|0;i=a+96|0;j=0;do{l=c[f>>2]|0;m=c[l+(j*28|0)>>2]|0;n=c[(c[h>>2]|0)+(m<<2)>>2]|0;if((((n|0)!=0?(c[n+12>>2]&2|0)!=0:0)?(o=c[l+(j*28|0)+4>>2]|0,p=+g[l+(j*28|0)+16>>2],q=+g[l+(j*28|0)+20>>2],r=+g[l+(j*28|0)+12>>2],l=c[i>>2]|0,s=+g[l+(m<<3)>>2],t=+g[l+(m<<3)+4>>2],m=o+88|0,u=+g[m>>2],l=o+60|0,v=o+64|0,w=o+80|0,x=+g[w>>2]-u*(t-+g[v>>2]),y=o+84|0,z=u*(s-+g[l>>2])+ +g[y>>2],Ml(n),A=n+56|0,u=+g[A>>2],B=n+40|0,C=n+44|0,D=n+48|0,E=n+52|0,F=p*(x-(+g[D>>2]-u*(t-+g[C>>2])))+q*(z-(u*(s-+g[B>>2])+ +g[E>>2])),F<0.0):0)?(Ml(n),u=+g[n+32>>2],Ml(n),z=+g[n+36>>2],Ml(n),x=u>0.0?1.0/u:0.0,u=z>0.0?1.0/z:0.0,z=q*(s-+g[B>>2])-p*(t-+g[C>>2]),G=+g[o+132>>2],H=+g[o+44>>2],I=+g[o+48>>2],J=G*(H*H+I*I),I=+g[o+140>>2]+J-J,J=q*(s-+g[l>>2])-p*(t-+g[v>>2]),H=x+z*(u*z)+(G>0.0?1.0/G:0.0)+J*((I>0.0?1.0/I:0.0)*J),J=d*(r<1.0?r:1.0)*(H>0.0?F/H:0.0),H=x*J,g[D>>2]=+g[D>>2]+p*H,g[E>>2]=+g[E>>2]+q*H,g[A>>2]=+g[A>>2]+u*(z*J),z=-J,J=p*z,p=q*z,(c[o>>2]|0)==2):0){A=o+4|0;E=b[A>>1]|0;if((E&2)==0?(D=E&65535,(D&2|0)==0):0){C=(D|2)&65535;b[A>>1]=C;g[o+160>>2]=0.0;K=C}else K=E;if(K&2){z=+g[o+136>>2];g[w>>2]=J*z+ +g[w>>2];g[y>>2]=p*z+ +g[y>>2];g[m>>2]=+g[m>>2]+ +g[o+144>>2]*(p*(s-+g[l>>2])-J*(t-+g[v>>2]))}}j=j+1|0}while((j|0)<(c[e>>2]|0))}e=a+220|0;if((c[e>>2]|0)<=0)return;j=a+216|0;K=a+144|0;i=a+96|0;h=a+104|0;f=a+88|0;v=a+32|0;l=a+320|0;a=0;do{o=c[j>>2]|0;m=c[o+(a*24|0)>>2]|0;y=c[o+(a*24|0)+4>>2]|0;t=+g[o+(a*24|0)+12>>2];J=+g[o+(a*24|0)+16>>2];s=+g[o+(a*24|0)+8>>2];o=c[K>>2]|0;w=c[o+(m<<2)>>2]|0;E=c[o+(y<<2)>>2]|0;o=(w|0)==0;if(o)L=0;else L=(c[w+12>>2]&2|0)!=0;C=(E|0)==0;if(C)M=0;else M=(c[E+12>>2]&2|0)!=0;do if((w|0)!=(E|0)&(L|M)){A=c[i>>2]|0;p=(+g[A+(m<<3)>>2]+ +g[A+(y<<3)>>2])*.5;z=(+g[A+(m<<3)+4>>2]+ +g[A+(y<<3)+4>>2])*.5;if(!C?(c[E+12>>2]&2|0)!=0:0){Ml(E);q=+g[E+56>>2];A=(g[k>>2]=+g[E+48>>2]-q*(z-+g[E+44>>2]),c[k>>2]|0);N=A;O=(g[k>>2]=q*(p-+g[E+40>>2])+ +g[E+52>>2],c[k>>2]|0)}else{A=c[h>>2]|0;N=c[A+(y<<3)>>2]|0;O=c[A+(y<<3)+4>>2]|0}if(!o?(c[w+12>>2]&2|0)!=0:0){Ml(w);q=+g[w+56>>2];A=(g[k>>2]=+g[w+48>>2]-q*(z-+g[w+44>>2]),c[k>>2]|0);P=A;Q=(g[k>>2]=q*(p-+g[w+40>>2])+ +g[w+52>>2],c[k>>2]|0)}else{A=c[h>>2]|0;P=c[A+(m<<3)>>2]|0;Q=c[A+(m<<3)+4>>2]|0}q=(c[k>>2]=N,+g[k>>2]);u=q-(c[k>>2]=P,+g[k>>2]);q=(c[k>>2]=O,+g[k>>2]);H=J*(q-(c[k>>2]=Q,+g[k>>2]))+t*u;if(H<0.0){if(L){Ml(w);u=+g[w+32>>2];Ml(w);q=+g[w+36>>2];Ml(w);R=q>0.0?1.0/q:0.0;S=u>0.0?1.0/u:0.0;T=J*(p-+g[w+40>>2])-t*(z-+g[w+44>>2])}else{if(!(c[(c[f>>2]|0)+(m<<2)>>2]&4)){u=+g[v>>2]*.75;U=u*(+g[l>>2]*u)}else U=0.0;R=0.0;S=U>0.0?1.0/U:0.0;T=J*(p-p)-t*(z-z)}if(M){Ml(E);u=+g[E+32>>2];Ml(E);q=+g[E+36>>2];Ml(E);V=u>0.0?1.0/u:0.0;W=q>0.0?1.0/q:0.0;X=J*(p-+g[E+40>>2])-t*(z-+g[E+44>>2])}else{if(!(c[(c[f>>2]|0)+(y<<2)>>2]&4)){q=+g[v>>2]*.75;Y=q*(+g[l>>2]*q)}else Y=0.0;V=Y>0.0?1.0/Y:0.0;W=0.0;X=J*(p-p)-t*(z-z)}z=S+T*(R*T)+V+X*(W*X);p=d*s*(z>0.0?H/z:0.0);if(L){z=S*p;A=w+48|0;g[A>>2]=t*z+ +g[A>>2];A=w+52|0;g[A>>2]=J*z+ +g[A>>2];A=w+56|0;g[A>>2]=R*(T*p)+ +g[A>>2]}else{A=c[h>>2]|0;z=S*p;D=A+(m<<3)|0;g[D>>2]=t*z+ +g[D>>2];D=A+(m<<3)+4|0;g[D>>2]=J*z+ +g[D>>2]}z=-p;if(M){p=V*z;D=E+48|0;g[D>>2]=t*p+ +g[D>>2];D=E+52|0;g[D>>2]=J*p+ +g[D>>2];D=E+56|0;g[D>>2]=W*(X*z)+ +g[D>>2];break}else{D=c[h>>2]|0;p=V*z;A=D+(y<<3)|0;g[A>>2]=t*p+ +g[A>>2];A=D+(y<<3)+4|0;g[A>>2]=J*p+ +g[A>>2];break}}}while(0);a=a+1|0}while((a|0)<(c[e>>2]|0));return}function Em(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,l=0.0,m=0.0,n=0.0,o=0.0,p=0,q=0,r=0,s=0.0;d=c[a+312>>2]|0;if(!d)return;e=b+4|0;f=a+104|0;h=a+96|0;a=d;do{if((c[a+12>>2]&2|0)!=0?(Ml(a),i=+g[b>>2],j=i*+g[a+56>>2],k=+R(+j),l=+Q(+j),j=+g[a+40>>2],m=+g[a+44>>2],n=i*+g[a+48>>2]+j-(l*j-k*m),o=i*+g[a+52>>2]+m-(k*j+l*m),d=a+72|0,m=+g[d>>2],p=a+68|0,j=+g[p>>2],q=a+60|0,i=+g[q>>2],r=a+64|0,s=+g[r>>2],g[q>>2]=n+(l*i-k*s),g[r>>2]=o+(k*i+l*s),g[p>>2]=k*m+l*j,g[d>>2]=l*m-k*j,j=+g[e>>2],m=n*j,n=o*j,o=k*j,k=(l+-1.0)*j,d=c[a+4>>2]|0,p=a+8|0,(d|0)<(c[p>>2]|0)):0){r=d;do{d=c[f>>2]|0;q=c[h>>2]|0;j=+g[q+(r<<3)>>2];l=+g[q+(r<<3)+4>>2];g[d+(r<<3)>>2]=m+(k*j-o*l);g[d+(r<<3)+4>>2]=n+(o*j+k*l);r=r+1|0}while((r|0)<(c[p>>2]|0))}a=c[a+24>>2]|0}while((a|0)!=0);return}function Fm(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,n=0.0,o=0.0;d=a+280|0;e=c[d>>2]|0;if(!e){f=a+48|0;h=c[f>>2]|0;if(!h){Ul(a,256);i=c[f>>2]|0}else i=h;h=Sn(c[a+400>>2]|0,i<<2)|0;xp(h|0,0,c[f>>2]<<2|0)|0;j=h}else j=e;c[d>>2]=j;d=c[j+(b<<2)>>2]|0;if((d|0)<=0){k=d;l=+(k|0);m=a+396|0;n=+g[m>>2];o=l*n;return +o}k=d-(c[a+296+4>>2]|0)|0;l=+(k|0);m=a+396|0;n=+g[m>>2];o=l*n;return +o}function Gm(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var h=0.0,i=0.0,j=0.0;h=+(e-d|0);i=+g[f>>2]/h;j=+g[f+4>>2]/h;if(!(i!=0.0|j!=0.0))return;f=b+21|0;if(!(a[f>>0]|0)){xp(c[b+112>>2]|0,0,c[b+44>>2]<<3|0)|0;a[f>>0]=1}if((e|0)<=(d|0))return;f=c[b+112>>2]|0;b=d;do{d=f+(b<<3)|0;g[d>>2]=i+ +g[d>>2];d=f+(b<<3)+4|0;g[d>>2]=j+ +g[d>>2];b=b+1|0}while((b|0)!=(e|0));return}function Hm(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;f=+g[a+32>>2]*.75;h=+(d-b|0)*(f*(+g[a+320>>2]*f));f=+g[e>>2]/h;i=+g[e+4>>2]/h;if((d|0)<=(b|0))return;e=c[a+104>>2]|0;a=b;do{b=e+(a<<3)|0;g[b>>2]=f+ +g[b>>2];b=e+(a<<3)+4|0;g[b>>2]=i+ +g[b>>2];a=a+1|0}while((a|0)!=(d|0));return}function Im(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,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0.0,t=0,u=0,v=0,w=0;e=c[a+204>>2]|0;if(!e)return;f=c[a+200>>2]|0;h=+g[a+36>>2];i=+g[d>>2];j=d+4|0;k=(~~(h*+g[j>>2]+2048.0)>>>0<<20)+(~~(h*i*256.0+524288.0)>>>0)|0;l=f;m=e<<3>>3;a:while(1){n=m;while(1){if(!n){o=l;break a}p=(n|0)/2|0;if((c[l+(p<<3)+4>>2]|0)>>>0>>0){q=p;r=n;break}else n=p}l=l+(q+1<<3)|0;m=r+-1-q|0}q=d+8|0;s=+g[q>>2];r=d+12|0;m=(~~(h*+g[r>>2]+2048.0)>>>0<<20)+(~~(h*s*256.0+524288.0)>>>0)|0;l=o;k=f+(e<<3)-o>>3;b:while(1){e=k;while(1){if(!e){t=l;break b}f=(e|0)/2|0;if((c[l+(f<<3)+4>>2]|0)>>>0>m>>>0)e=f;else{u=f;v=e;break}}l=l+(u+1<<3)|0;k=v+-1-u|0}if(o>>>0>=t>>>0)return;u=a+96|0;h=i;i=s;v=o;while(1){o=c[v>>2]|0;k=c[u>>2]|0;s=+g[k+(o<<3)>>2];if((h>2],+g[j>>2]>2]:0):0)?!(lb[c[(c[b>>2]|0)+12>>2]&15](b,a,o)|0):0){w=19;break}o=v+8|0;if(o>>>0>=t>>>0){w=19;break}h=+g[d>>2];i=+g[q>>2];v=o}if((w|0)==19)return}function Jm(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.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,D=0,E=0,F=0,G=0.0,H=0.0,I=0.0,J=0,K=0,L=0.0,M=0.0,N=0.0,P=0.0;f=i;i=i+16|0;h=f+8|0;j=f;k=c[a+204>>2]|0;if(!k){i=f;return}l=+g[d>>2];m=+g[e>>2];n=d+4|0;o=+g[n>>2];p=+g[e+4>>2];q=p-o;r=q*q;s=+g[a+36>>2];e=(~~(s*(o>>0<<20)+(~~(((l>>0)|0;t=s*(o>p?o:p)+1.0+2048.0;p=((l>m?l:m)*s+1.0)*256.0+524288.0;u=c[a+200>>2]|0;v=u;w=k<<3>>3;a:while(1){x=w;while(1){if(!x){y=v;break a}z=(x|0)/2|0;if((c[v+(z<<3)+4>>2]|0)>>>0>>0){A=z;B=x;break}else x=z}v=v+(A+1<<3)|0;w=B+-1-A|0}s=m-l;l=s*s+r;A=(~~t>>>0<<20)+(~~p>>>0)|0;B=y;w=u+(k<<3)-y>>3;b:while(1){k=w;while(1){if(!k){C=B;break b}u=(k|0)/2|0;if((c[B+(u<<3)+4>>2]|0)>>>0>A>>>0)k=u;else{D=u;E=k;break}}B=B+(D+1<<3)|0;w=E+-1-D|0}D=e&1048575;e=A&1048575;A=a+96|0;E=a+40|0;w=h+4|0;B=j+4|0;k=y;p=1.0;c:while(1){if(k>>>0>=C>>>0){F=26;break}t=+g[d>>2];r=+g[n>>2];y=k;while(1){u=c[y+4>>2]&1048575;v=y;y=y+8|0;if(u>>>0>>0|u>>>0>e>>>0)if(y>>>0>>0){y=y;continue}else{F=26;break c}u=c[v>>2]|0;if((u|0)<=-1){F=26;break c}v=c[A>>2]|0;m=t-+g[v+(u<<3)>>2];o=r-+g[v+(u<<3)+4>>2];G=s*m+q*o;H=G*G-l*(m*m+o*o-+g[E>>2]);if(H>=0.0?(I=+O(+H),H=(-G-I)/l,!(H>p)):0){if(!(H<0.0)){J=u;K=y;L=m;M=o;N=H;break}H=(I-G)/l;if(!(H<0.0|H>p)){J=u;K=y;L=m;M=o;N=H;break}}if(y>>>0>=C>>>0){F=26;break c}}H=s*N;o=q*N;m=L+H;G=M+o;g[h>>2]=m;g[w>>2]=G;I=+O(+(m*m+G*G));if(!(I<1.1920928955078125e-007)){P=1.0/I;g[h>>2]=m*P;g[w>>2]=G*P}y=c[(c[b>>2]|0)+12>>2]|0;g[j>>2]=H+t;g[B>>2]=o+r;o=+eb[y&1](b,a,J,j,h,N);p=p>2]|0;if((d|0)!=(a|0)){e=d;do{d=fo(e)|0;f=c[d>>2]|0;if(f){g=0;h=d+32|0;while(1){i=h+4|0;j=c[h>>2]|0;c[j+4>>2]=c[i>>2];c[c[i>>2]>>2]=j;c[i>>2]=h;c[h>>2]=h;g=g+1|0;if((g|0)==(f|0))break;else h=h+12|0}}ho(a,d);e=c[b>>2]|0}while((e|0)!=(a|0))}e=a+12|0;h=a+20|0;f=a+24|0;g=c[h>>2]|0;c[g+4>>2]=c[f>>2];c[c[f>>2]>>2]=g;c[f>>2]=h;c[h>>2]=h;h=a+16|0;f=c[e>>2]|0;c[f+4>>2]=c[h>>2];c[c[h>>2]>>2]=f;c[h>>2]=e;c[e>>2]=e;io(a);e=c[a>>2]|0;c[e+4>>2]=c[b>>2];c[c[b>>2]>>2]=e;c[b>>2]=a;c[a>>2]=a;return}function Lm(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,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;e=a;a=b;a:while(1){b=a;f=a+-8|0;g=a+-4|0;h=e;b:while(1){i=h;j=b-i|0;k=j>>3;switch(k|0){case 2:{l=h;m=g;n=f;o=4;break a;break}case 3:{p=h;q=g;r=f;o=6;break a;break}case 4:{s=h;t=f;o=14;break a;break}case 5:{u=h;v=g;w=f;o=15;break a;break}case 1:case 0:{o=84;break a;break}default:{}}if((j|0)<248){x=h;y=a;o=21;break a}z=(k|0)/2|0;A=h+(z<<3)|0;do if((j|0)>7992){B=(k|0)/4|0;C=h+(B<<3)|0;D=B+z|0;E=h+(D<<3)|0;F=Bn(h,C,A,E,d)|0;G=h+(D<<3)+4|0;if((c[g>>2]|0)>>>0>=(c[G>>2]|0)>>>0){H=h+(z<<3)+4|0;I=F;break}D=E;J=c[D>>2]|0;K=c[D+4>>2]|0;D=f;L=c[D+4>>2]|0;M=E;c[M>>2]=c[D>>2];c[M+4>>2]=L;L=f;c[L>>2]=J;c[L+4>>2]=K;K=F+1|0;L=h+(z<<3)+4|0;if((c[G>>2]|0)>>>0<(c[L>>2]|0)>>>0){G=A;J=c[G>>2]|0;M=c[G+4>>2]|0;G=E;D=c[G+4>>2]|0;N=A;c[N>>2]=c[G>>2];c[N+4>>2]=D;D=E;c[D>>2]=J;c[D+4>>2]=M;M=F+2|0;D=h+(B<<3)+4|0;if((c[L>>2]|0)>>>0<(c[D>>2]|0)>>>0){B=C;J=c[B>>2]|0;E=c[B+4>>2]|0;B=A;N=c[B+4>>2]|0;G=C;c[G>>2]=c[B>>2];c[G+4>>2]=N;N=A;c[N>>2]=J;c[N+4>>2]=E;if((c[D>>2]|0)>>>0<(c[h+4>>2]|0)>>>0){D=h;E=c[D>>2]|0;N=c[D+4>>2]|0;D=C;J=c[D+4>>2]|0;G=h;c[G>>2]=c[D>>2];c[G+4>>2]=J;J=C;c[J>>2]=E;c[J+4>>2]=N;H=L;I=F+4|0}else{H=L;I=F+3|0}}else{H=L;I=M}}else{H=L;I=K}}else{K=h+(z<<3)+4|0;L=c[K>>2]|0;M=h+4|0;F=(c[g>>2]|0)>>>0>>0;if(L>>>0>=(c[M>>2]|0)>>>0){if(!F){H=K;I=0;break}L=A;N=c[L>>2]|0;J=c[L+4>>2]|0;L=f;E=c[L+4>>2]|0;C=A;c[C>>2]=c[L>>2];c[C+4>>2]=E;E=f;c[E>>2]=N;c[E+4>>2]=J;if((c[K>>2]|0)>>>0>=(c[M>>2]|0)>>>0){H=K;I=1;break}M=h;J=c[M>>2]|0;E=c[M+4>>2]|0;M=A;N=c[M+4>>2]|0;C=h;c[C>>2]=c[M>>2];c[C+4>>2]=N;N=A;c[N>>2]=J;c[N+4>>2]=E;H=K;I=2;break}E=h;N=c[E>>2]|0;J=c[E+4>>2]|0;if(F){F=f;E=c[F+4>>2]|0;C=h;c[C>>2]=c[F>>2];c[C+4>>2]=E;E=f;c[E>>2]=N;c[E+4>>2]=J;H=K;I=1;break}E=A;C=c[E+4>>2]|0;F=h;c[F>>2]=c[E>>2];c[F+4>>2]=C;C=A;c[C>>2]=N;c[C+4>>2]=J;if((c[g>>2]|0)>>>0>>0){C=f;F=c[C+4>>2]|0;E=A;c[E>>2]=c[C>>2];c[E+4>>2]=F;F=f;c[F>>2]=N;c[F+4>>2]=J;H=K;I=2}else{H=K;I=1}}while(0);z=h+4|0;k=c[z>>2]|0;j=c[H>>2]|0;do if(k>>>0>>0){O=f;P=I}else{K=a;J=f;while(1){F=J+-8|0;if((h|0)==(F|0))break;if((c[K+-12>>2]|0)>>>0>>0){Q=F;o=66;break}else{N=J;J=F;K=N}}if((o|0)==66){o=0;K=h;J=c[K>>2]|0;N=c[K+4>>2]|0;K=Q;F=c[K+4>>2]|0;E=h;c[E>>2]=c[K>>2];c[E+4>>2]=F;F=Q;c[F>>2]=J;c[F+4>>2]=N;O=Q;P=I+1|0;break}N=h+8|0;if(k>>>0<(c[g>>2]|0)>>>0)R=N;else{if((N|0)==(f|0)){o=84;break a}else{S=h;T=N}while(1){if(k>>>0<(c[S+12>>2]|0)>>>0){U=S;V=T;break}N=T+8|0;if((N|0)==(f|0)){o=84;break a}else{F=T;T=N;S=F}}F=V;N=c[F>>2]|0;J=c[F+4>>2]|0;F=f;E=c[F+4>>2]|0;K=V;c[K>>2]=c[F>>2];c[K+4>>2]=E;E=f;c[E>>2]=N;c[E+4>>2]=J;R=U+16|0}if((R|0)==(f|0)){o=84;break a}else{W=R;X=f}while(1){J=c[z>>2]|0;E=W;while(1){N=E+8|0;if(J>>>0<(c[E+4>>2]|0)>>>0){Y=N;Z=E;break}else E=N}E=X;while(1){N=E+-8|0;if(J>>>0<(c[E+-4>>2]|0)>>>0)E=N;else{_=N;break}}if(Z>>>0>=_>>>0){h=Z;continue b}E=Z;J=c[E>>2]|0;N=c[E+4>>2]|0;E=_;K=c[E+4>>2]|0;F=Z;c[F>>2]=c[E>>2];c[F+4>>2]=K;K=_;c[K>>2]=J;c[K+4>>2]=N;W=Y;X=_}}while(0);z=h+8|0;c:do if(z>>>0>>0){k=z;j=O;N=A;K=P;while(1){J=c[N+4>>2]|0;F=k;while(1){E=F+8|0;if((c[F+4>>2]|0)>>>0>>0)F=E;else{$=E;aa=F;break}}F=j;while(1){E=F+-8|0;if((c[F+-4>>2]|0)>>>0>>0){ba=E;break}else F=E}if(aa>>>0>ba>>>0){ca=aa;da=N;ea=K;break c}F=aa;J=c[F>>2]|0;E=c[F+4>>2]|0;F=ba;C=c[F+4>>2]|0;M=aa;c[M>>2]=c[F>>2];c[M+4>>2]=C;C=ba;c[C>>2]=J;c[C+4>>2]=E;k=$;j=ba;N=(N|0)==(aa|0)?ba:N;K=K+1|0}}else{ca=z;da=A;ea=P}while(0);if((ca|0)!=(da|0)?(c[da+4>>2]|0)>>>0<(c[ca+4>>2]|0)>>>0:0){A=ca;z=c[A>>2]|0;K=c[A+4>>2]|0;A=da;N=c[A+4>>2]|0;j=ca;c[j>>2]=c[A>>2];c[j+4>>2]=N;N=da;c[N>>2]=z;c[N+4>>2]=K;fa=ea+1|0}else fa=ea;if(!fa){ga=Cn(h,ca,d)|0;K=ca+8|0;if(Cn(K,a,d)|0){o=79;break}if(ga){h=K;continue}}K=ca;if((K-i|0)>=(b-K|0)){ha=h;ia=ca;o=83;break}Lm(h,ca,d);h=ca+8|0}if((o|0)==79){o=0;if(ga){o=84;break}else{e=h;a=ca;continue}}else if((o|0)==83){o=0;Lm(ia+8|0,a,d);e=ha;a=ia;continue}}if((o|0)==4){if((c[m>>2]|0)>>>0>=(c[l+4>>2]|0)>>>0)return;m=l;ia=c[m>>2]|0;a=c[m+4>>2]|0;m=n;ha=c[m+4>>2]|0;e=l;c[e>>2]=c[m>>2];c[e+4>>2]=ha;ha=n;c[ha>>2]=ia;c[ha+4>>2]=a;return}else if((o|0)==6){a=p+8|0;ha=p+12|0;ia=c[ha>>2]|0;n=p+4|0;e=(c[q>>2]|0)>>>0>>0;if(ia>>>0>=(c[n>>2]|0)>>>0){if(!e)return;ia=a;m=c[ia>>2]|0;l=c[ia+4>>2]|0;ia=r;ca=c[ia+4>>2]|0;ga=a;c[ga>>2]=c[ia>>2];c[ga+4>>2]=ca;ca=r;c[ca>>2]=m;c[ca+4>>2]=l;if((c[ha>>2]|0)>>>0>=(c[n>>2]|0)>>>0)return;n=p;ha=c[n>>2]|0;l=c[n+4>>2]|0;n=a;ca=c[n+4>>2]|0;m=p;c[m>>2]=c[n>>2];c[m+4>>2]=ca;ca=a;c[ca>>2]=ha;c[ca+4>>2]=l;return}l=p;ca=c[l>>2]|0;ha=c[l+4>>2]|0;if(e){e=r;l=c[e+4>>2]|0;m=p;c[m>>2]=c[e>>2];c[m+4>>2]=l;l=r;c[l>>2]=ca;c[l+4>>2]=ha;return}l=a;m=c[l+4>>2]|0;e=p;c[e>>2]=c[l>>2];c[e+4>>2]=m;m=a;c[m>>2]=ca;c[m+4>>2]=ha;if((c[q>>2]|0)>>>0>=ha>>>0)return;q=r;m=c[q+4>>2]|0;e=a;c[e>>2]=c[q>>2];c[e+4>>2]=m;m=r;c[m>>2]=ca;c[m+4>>2]=ha;return}else if((o|0)==14){Bn(s,s+8|0,s+16|0,t,d)|0;return}else if((o|0)==15){t=u+8|0;s=u+16|0;ha=u+24|0;Bn(u,t,s,ha,d)|0;d=u+28|0;if((c[v>>2]|0)>>>0>=(c[d>>2]|0)>>>0)return;v=ha;m=c[v>>2]|0;ca=c[v+4>>2]|0;v=w;r=c[v+4>>2]|0;e=ha;c[e>>2]=c[v>>2];c[e+4>>2]=r;r=w;c[r>>2]=m;c[r+4>>2]=ca;if((c[d>>2]|0)>>>0>=(c[u+20>>2]|0)>>>0)return;d=s;ca=c[d>>2]|0;r=c[d+4>>2]|0;d=ha;m=c[d>>2]|0;w=c[d+4>>2]|0;d=s;c[d>>2]=m;c[d+4>>2]=w;d=ha;c[d>>2]=ca;c[d+4>>2]=r;if(w>>>0>=(c[u+12>>2]|0)>>>0)return;r=t;d=c[r>>2]|0;ca=c[r+4>>2]|0;r=t;c[r>>2]=m;c[r+4>>2]=w;r=s;c[r>>2]=d;c[r+4>>2]=ca;if(w>>>0>=(c[u+4>>2]|0)>>>0)return;ca=u;r=c[ca>>2]|0;d=c[ca+4>>2]|0;ca=u;c[ca>>2]=m;c[ca+4>>2]=w;w=t;c[w>>2]=r;c[w+4>>2]=d;return}else if((o|0)==21){d=x+16|0;w=x+8|0;r=c[x+12>>2]|0;t=c[x+4>>2]|0;ca=c[x+20>>2]|0;m=ca>>>0>>0;do if(r>>>0>>0){u=x;s=c[u>>2]|0;ha=c[u+4>>2]|0;if(m){u=d;e=c[u+4>>2]|0;v=x;c[v>>2]=c[u>>2];c[v+4>>2]=e;e=d;c[e>>2]=s;c[e+4>>2]=ha;break}e=w;v=c[e+4>>2]|0;u=x;c[u>>2]=c[e>>2];c[u+4>>2]=v;v=w;c[v>>2]=s;c[v+4>>2]=ha;if(ca>>>0>>0){v=d;u=c[v+4>>2]|0;e=w;c[e>>2]=c[v>>2];c[e+4>>2]=u;u=d;c[u>>2]=s;c[u+4>>2]=ha}}else if(m?(ha=w,u=c[ha>>2]|0,s=c[ha+4>>2]|0,ha=d,e=c[ha>>2]|0,v=c[ha+4>>2]|0,ha=w,c[ha>>2]=e,c[ha+4>>2]=v,ha=d,c[ha>>2]=u,c[ha+4>>2]=s,v>>>0>>0):0){s=x;ha=c[s>>2]|0;u=c[s+4>>2]|0;s=x;c[s>>2]=e;c[s+4>>2]=v;v=w;c[v>>2]=ha;c[v+4>>2]=u}while(0);w=x+24|0;if((w|0)==(y|0))return;else{ja=w;ka=d}while(1){if((c[ja+4>>2]|0)>>>0<(c[ka+4>>2]|0)>>>0){d=ja;w=c[d>>2]|0;t=c[d+4>>2]|0;d=ja;m=ka;while(1){ca=m;r=c[ca+4>>2]|0;u=d;c[u>>2]=c[ca>>2];c[u+4>>2]=r;if((m|0)==(x|0)){la=m;break}if(t>>>0<(c[m+-4>>2]|0)>>>0){r=m;m=m+-8|0;d=r}else{la=m;break}}m=la;c[m>>2]=w;c[m+4>>2]=t}m=ja+8|0;if((m|0)==(y|0))break;else{d=ja;ja=m;ka=d}}return}else if((o|0)==84)return}function Mm(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,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;h=i;i=i+32|0;j=h;switch(e|0){case 2:{k=b+-20|0;if(!(rb[c[d>>2]&31](k,a)|0)){i=h;return};c[j>>2]=c[a>>2];c[j+4>>2]=c[a+4>>2];c[j+8>>2]=c[a+8>>2];c[j+12>>2]=c[a+12>>2];c[j+16>>2]=c[a+16>>2];c[a>>2]=c[k>>2];c[a+4>>2]=c[k+4>>2];c[a+8>>2]=c[k+8>>2];c[a+12>>2]=c[k+12>>2];c[a+16>>2]=c[k+16>>2];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];c[k+16>>2]=c[j+16>>2];i=h;return}case 1:case 0:{i=h;return}default:{if((e|0)<129){if((a|0)!=(b|0)?(k=a+20|0,(k|0)!=(b|0)):0){l=k;do{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];c[j+16>>2]=c[l+16>>2];a:do if((l|0)==(a|0))m=a;else{k=l;while(1){n=k;k=k+-20|0;if(!(rb[c[d>>2]&31](j,k)|0)){m=n;break a};c[n>>2]=c[k>>2];c[n+4>>2]=c[k+4>>2];c[n+8>>2]=c[k+8>>2];c[n+12>>2]=c[k+12>>2];c[n+16>>2]=c[k+16>>2];if((k|0)==(a|0)){m=a;break}}}while(0);c[m>>2]=c[j>>2];c[m+4>>2]=c[j+4>>2];c[m+8>>2]=c[j+8>>2];c[m+12>>2]=c[j+12>>2];c[m+16>>2]=c[j+16>>2];l=l+20|0}while((l|0)!=(b|0))}i=h;return}l=(e|0)/2|0;j=a+(l*20|0)|0;if((e|0)>(g|0)){Mm(a,j,d,l,f,g);m=e-l|0;Mm(j,b,d,m,f,g);An(a,j,b,d,l,m,f,g);i=h;return}zn(a,j,d,l,f);g=f+(l*20|0)|0;zn(j,b,d,e-l|0,g);l=f+(e*20|0)|0;b:do if((e+1|0)>>>0<3){o=a;p=g}else{b=a;j=f;m=g;while(1){if((m|0)==(l|0)){q=b;r=j;break}if(rb[c[d>>2]&31](m,j)|0){c[b>>2]=c[m>>2];c[b+4>>2]=c[m+4>>2];c[b+8>>2]=c[m+8>>2];c[b+12>>2]=c[m+12>>2];c[b+16>>2]=c[m+16>>2];s=m+20|0;t=j}else{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];c[b+16>>2]=c[j+16>>2];s=m;t=j+20|0}k=b+20|0;if((t|0)==(g|0)){o=k;p=s;break b}else{b=k;j=t;m=s}}if((r|0)==(g|0)){i=h;return}else{u=r;v=q}while(1){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];c[v+16>>2]=c[u+16>>2];u=u+20|0;if((u|0)==(g|0))break;else v=v+20|0}i=h;return}while(0);if((p|0)==(l|0)){i=h;return}else{w=o;x=p}while(1){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[w+16>>2]=c[x+16>>2];x=x+20|0;if((x|0)==(l|0))break;else w=w+20|0}i=h;return}}}function Nm(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,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;h=i;i=i+64|0;j=h;switch(e|0){case 2:{k=b+-60|0;if(!(rb[c[d>>2]&31](k,a)|0)){i=h;return}l=j;m=a;n=l+60|0;do{c[l>>2]=c[m>>2];l=l+4|0;m=m+4|0}while((l|0)<(n|0));l=a;m=k;n=l+60|0;do{c[l>>2]=c[m>>2];l=l+4|0;m=m+4|0}while((l|0)<(n|0));l=k;m=j;n=l+60|0;do{c[l>>2]=c[m>>2];l=l+4|0;m=m+4|0}while((l|0)<(n|0));i=h;return}case 1:case 0:{i=h;return}default:{if((e|0)<129){if((a|0)==(b|0)){i=h;return}k=a+60|0;if((k|0)==(b|0)){i=h;return}o=k;do{l=j;m=o;n=l+60|0;do{c[l>>2]=c[m>>2];l=l+4|0;m=m+4|0}while((l|0)<(n|0));a:do if((o|0)==(a|0))p=a;else{k=o;while(1){q=k;k=k+-60|0;if(!(rb[c[d>>2]&31](j,k)|0)){p=q;break a}l=q;m=k;n=l+60|0;do{c[l>>2]=c[m>>2];l=l+4|0;m=m+4|0}while((l|0)<(n|0));if((k|0)==(a|0)){p=a;break}}}while(0);l=p;m=j;n=l+60|0;do{c[l>>2]=c[m>>2];l=l+4|0;m=m+4|0}while((l|0)<(n|0));o=o+60|0}while((o|0)!=(b|0));i=h;return}o=(e|0)/2|0;j=a+(o*60|0)|0;if((e|0)>(g|0)){Nm(a,j,d,o,f,g);p=e-o|0;Nm(j,b,d,p,f,g);vn(a,j,b,d,o,p,f,g);i=h;return}un(a,j,d,o,f);g=f+(o*60|0)|0;un(j,b,d,e-o|0,g);o=f+(e*60|0)|0;b:do if((e+1|0)>>>0<3){r=a;s=g}else{b=a;j=f;p=g;while(1){if((p|0)==(o|0)){t=b;u=j;break}if(rb[c[d>>2]&31](p,j)|0){l=b;m=p;n=l+60|0;do{c[l>>2]=c[m>>2];l=l+4|0;m=m+4|0}while((l|0)<(n|0));v=p+60|0;w=j}else{l=b;m=j;n=l+60|0;do{c[l>>2]=c[m>>2];l=l+4|0;m=m+4|0}while((l|0)<(n|0));v=p;w=j+60|0}k=b+60|0;if((w|0)==(g|0)){r=k;s=v;break b}else{b=k;j=w;p=v}}if((u|0)==(g|0)){i=h;return}else{x=u;y=t}while(1){l=y;m=x;n=l+60|0;do{c[l>>2]=c[m>>2];l=l+4|0;m=m+4|0}while((l|0)<(n|0));x=x+60|0;if((x|0)==(g|0))break;else y=y+60|0}i=h;return}while(0);if((s|0)==(o|0)){i=h;return}else{z=r;A=s}while(1){l=z;m=A;n=l+60|0;do{c[l>>2]=c[m>>2];l=l+4|0;m=m+4|0}while((l|0)<(n|0));A=A+60|0;if((A|0)==(o|0))break;else z=z+60|0}i=h;return}}}function Om(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.0,l=0.0,m=0.0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;f=c[a+96>>2]|0;h=+g[f+(d<<3)>>2]-+g[f+(b<<3)>>2];i=+g[f+(d<<3)+4>>2]-+g[f+(b<<3)+4>>2];j=h*h+i*i;if(!(j<+g[a+40>>2]))return;l=(c[k>>2]=1597463007-((g[k>>2]=j,c[k>>2]|0)>>1),+g[k>>2]);m=l*(1.5-l*(j*.5*l));f=e+4|0;n=c[f>>2]|0;o=e+8|0;p=c[o>>2]|0;if((n|0)>=(p|0)?(q=(p|0)==0?256:p<<1,(p|0)<(q|0)):0){p=e+12|0;r=Sn(c[p>>2]|0,q*24|0)|0;s=c[e>>2]|0;if(!s)t=e;else{Bp(r|0,s|0,(c[f>>2]|0)*24|0)|0;Tn(c[p>>2]|0,c[e>>2]|0,(c[o>>2]|0)*24|0);t=e}c[o>>2]=q;c[t>>2]=r;u=c[f>>2]|0}else u=n;c[f>>2]=u+1;f=c[e>>2]|0;c[f+(u*24|0)>>2]=b;c[f+(u*24|0)+4>>2]=d;e=c[a+88>>2]|0;c[f+(u*24|0)+20>>2]=c[e+(d<<2)>>2]|c[e+(b<<2)>>2];g[f+(u*24|0)+8>>2]=1.0-j*m*+g[a+36>>2];g[f+(u*24|0)+12>>2]=h*m;g[f+(u*24|0)+16>>2]=i*m;return}function Pm(a,b){a=a|0;b=b|0;var d=0;if((c[a>>2]|0)>=(c[b>>2]|0)){d=0;return d|0}d=(c[a+4>>2]|0)<(c[b+4>>2]|0);return d|0}function Qm(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,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;e=i;i=i+16|0;f=e;g=a;a=b;a:while(1){b=a;h=a+-8|0;j=g;b:while(1){k=j;l=b-k|0;m=l>>3;switch(m|0){case 2:{n=j;o=h;p=h;q=4;break a;break}case 3:{r=j;s=h;t=h;q=6;break a;break}case 4:{u=j;v=h;w=h;q=14;break a;break}case 5:{x=j;y=h;q=26;break a;break}case 1:case 0:{q=87;break a;break}default:{}}if((l|0)<248){z=j;A=a;q=28;break a}B=(m|0)/2|0;C=j+(B<<3)|0;do if((l|0)<=7992){D=rb[c[d>>2]&31](C,j)|0;E=rb[c[d>>2]&31](h,C)|0;if(!D){if(!E){F=0;break}D=C;G=c[D>>2]|0;H=c[D+4>>2]|0;D=h;I=c[D+4>>2]|0;J=C;c[J>>2]=c[D>>2];c[J+4>>2]=I;I=h;c[I>>2]=G;c[I+4>>2]=H;if(!(rb[c[d>>2]&31](C,j)|0)){F=1;break}H=j;I=c[H>>2]|0;G=c[H+4>>2]|0;H=C;J=c[H+4>>2]|0;D=j;c[D>>2]=c[H>>2];c[D+4>>2]=J;J=C;c[J>>2]=I;c[J+4>>2]=G;F=2;break}G=j;J=c[G>>2]|0;I=c[G+4>>2]|0;if(E){E=h;G=c[E+4>>2]|0;D=j;c[D>>2]=c[E>>2];c[D+4>>2]=G;G=h;c[G>>2]=J;c[G+4>>2]=I;F=1;break}G=C;D=c[G+4>>2]|0;E=j;c[E>>2]=c[G>>2];c[E+4>>2]=D;D=C;c[D>>2]=J;c[D+4>>2]=I;if(rb[c[d>>2]&31](h,C)|0){I=C;D=c[I>>2]|0;J=c[I+4>>2]|0;I=h;E=c[I+4>>2]|0;G=C;c[G>>2]=c[I>>2];c[G+4>>2]=E;E=h;c[E>>2]=D;c[E+4>>2]=J;F=2}else F=1}else{J=(m|0)/4|0;F=jn(j,j+(J<<3)|0,C,j+(J+B<<3)|0,h,d)|0}while(0);do if(rb[c[d>>2]&31](j,C)|0){K=h;L=F}else{B=h;while(1){m=B+-8|0;if((j|0)==(m|0))break;if(rb[c[d>>2]&31](m,C)|0){M=m;q=69;break}else B=m}if((q|0)==69){q=0;B=j;m=c[B>>2]|0;l=c[B+4>>2]|0;B=M;J=c[B+4>>2]|0;E=j;c[E>>2]=c[B>>2];c[E+4>>2]=J;J=M;c[J>>2]=m;c[J+4>>2]=l;K=M;L=F+1|0;break}l=j+8|0;if(rb[c[d>>2]&31](j,h)|0)N=l;else{if((l|0)==(h|0)){q=87;break a}else{O=j;P=l}while(1){if(rb[c[d>>2]&31](j,P)|0){Q=O;R=P;break}l=P+8|0;if((l|0)==(h|0)){q=87;break a}else{J=P;P=l;O=J}}J=R;l=c[J>>2]|0;m=c[J+4>>2]|0;J=h;E=c[J+4>>2]|0;B=R;c[B>>2]=c[J>>2];c[B+4>>2]=E;E=h;c[E>>2]=l;c[E+4>>2]=m;N=Q+16|0}if((N|0)==(h|0)){q=87;break a}else{S=N;T=h}while(1){m=S;while(1){E=m+8|0;if(rb[c[d>>2]&31](j,m)|0){U=E;V=m;break}else m=E}m=T;while(1){E=m+-8|0;if(rb[c[d>>2]&31](j,E)|0)m=E;else{W=E;break}}if(V>>>0>=W>>>0){j=V;continue b}m=V;E=c[m>>2]|0;l=c[m+4>>2]|0;m=W;B=c[m+4>>2]|0;J=V;c[J>>2]=c[m>>2];c[J+4>>2]=B;B=W;c[B>>2]=E;c[B+4>>2]=l;S=U;T=W}}while(0);l=j+8|0;c:do if(l>>>0>>0){B=l;E=K;J=C;m=L;while(1){D=B;while(1){G=D+8|0;if(rb[c[d>>2]&31](D,J)|0)D=G;else{X=G;Y=D;break}}D=E;while(1){G=D+-8|0;if(rb[c[d>>2]&31](G,J)|0){Z=G;break}else D=G}if(Y>>>0>Z>>>0){_=Y;$=J;aa=m;break c}D=Y;G=c[D>>2]|0;I=c[D+4>>2]|0;D=Z;H=c[D+4>>2]|0;ba=Y;c[ba>>2]=c[D>>2];c[ba+4>>2]=H;H=Z;c[H>>2]=G;c[H+4>>2]=I;B=X;E=Z;J=(J|0)==(Y|0)?Z:J;m=m+1|0}}else{_=l;$=C;aa=L}while(0);if((_|0)!=($|0)?rb[c[d>>2]&31]($,_)|0:0){C=_;l=c[C>>2]|0;m=c[C+4>>2]|0;C=$;J=c[C+4>>2]|0;E=_;c[E>>2]=c[C>>2];c[E+4>>2]=J;J=$;c[J>>2]=l;c[J+4>>2]=m;ca=aa+1|0}else ca=aa;if(!ca){da=kn(j,_,d)|0;m=_+8|0;if(kn(m,a,d)|0){q=82;break}if(da){j=m;continue}}m=_;if((m-k|0)>=(b-m|0)){ea=j;fa=_;q=86;break}Qm(j,_,d);j=_+8|0}if((q|0)==82){q=0;if(da){q=87;break}else{g=j;a=_;continue}}else if((q|0)==86){q=0;Qm(fa+8|0,a,d);g=ea;a=fa;continue}}if((q|0)==4){if(!(rb[c[d>>2]&31](o,n)|0)){i=e;return}o=n;fa=c[o>>2]|0;a=c[o+4>>2]|0;o=p;ea=c[o+4>>2]|0;g=n;c[g>>2]=c[o>>2];c[g+4>>2]=ea;ea=p;c[ea>>2]=fa;c[ea+4>>2]=a;i=e;return}else if((q|0)==6){a=r+8|0;ea=rb[c[d>>2]&31](a,r)|0;fa=rb[c[d>>2]&31](s,a)|0;if(!ea){if(!fa){i=e;return}ea=a;p=c[ea>>2]|0;g=c[ea+4>>2]|0;ea=t;o=c[ea+4>>2]|0;n=a;c[n>>2]=c[ea>>2];c[n+4>>2]=o;o=t;c[o>>2]=p;c[o+4>>2]=g;if(!(rb[c[d>>2]&31](a,r)|0)){i=e;return}g=r;o=c[g>>2]|0;p=c[g+4>>2]|0;g=a;n=c[g+4>>2]|0;ea=r;c[ea>>2]=c[g>>2];c[ea+4>>2]=n;n=a;c[n>>2]=o;c[n+4>>2]=p;i=e;return}p=r;n=c[p>>2]|0;o=c[p+4>>2]|0;if(fa){fa=t;p=c[fa+4>>2]|0;ea=r;c[ea>>2]=c[fa>>2];c[ea+4>>2]=p;p=t;c[p>>2]=n;c[p+4>>2]=o;i=e;return}p=a;ea=c[p+4>>2]|0;fa=r;c[fa>>2]=c[p>>2];c[fa+4>>2]=ea;ea=a;c[ea>>2]=n;c[ea+4>>2]=o;if(!(rb[c[d>>2]&31](s,a)|0)){i=e;return}s=a;o=c[s>>2]|0;ea=c[s+4>>2]|0;s=t;n=c[s+4>>2]|0;fa=a;c[fa>>2]=c[s>>2];c[fa+4>>2]=n;n=t;c[n>>2]=o;c[n+4>>2]=ea;i=e;return}else if((q|0)==14){ea=u+8|0;n=u+16|0;o=rb[c[d>>2]&31](ea,u)|0;t=rb[c[d>>2]&31](n,ea)|0;do if(o){fa=u;s=c[fa>>2]|0;a=c[fa+4>>2]|0;if(t){fa=n;p=c[fa+4>>2]|0;r=u;c[r>>2]=c[fa>>2];c[r+4>>2]=p;p=n;c[p>>2]=s;c[p+4>>2]=a;break}p=ea;r=c[p+4>>2]|0;fa=u;c[fa>>2]=c[p>>2];c[fa+4>>2]=r;r=ea;c[r>>2]=s;c[r+4>>2]=a;if(rb[c[d>>2]&31](n,ea)|0){a=ea;r=c[a>>2]|0;s=c[a+4>>2]|0;a=n;fa=c[a+4>>2]|0;p=ea;c[p>>2]=c[a>>2];c[p+4>>2]=fa;fa=n;c[fa>>2]=r;c[fa+4>>2]=s}}else if(t?(s=ea,fa=c[s>>2]|0,r=c[s+4>>2]|0,s=n,p=c[s+4>>2]|0,a=ea,c[a>>2]=c[s>>2],c[a+4>>2]=p,p=n,c[p>>2]=fa,c[p+4>>2]=r,rb[c[d>>2]&31](ea,u)|0):0){r=u;p=c[r>>2]|0;fa=c[r+4>>2]|0;r=ea;a=c[r+4>>2]|0;s=u;c[s>>2]=c[r>>2];c[s+4>>2]=a;a=ea;c[a>>2]=p;c[a+4>>2]=fa}while(0);if(!(rb[c[d>>2]&31](v,n)|0)){i=e;return}v=n;t=c[v>>2]|0;o=c[v+4>>2]|0;v=w;fa=c[v+4>>2]|0;a=n;c[a>>2]=c[v>>2];c[a+4>>2]=fa;fa=w;c[fa>>2]=t;c[fa+4>>2]=o;if(!(rb[c[d>>2]&31](n,ea)|0)){i=e;return}o=ea;fa=c[o>>2]|0;t=c[o+4>>2]|0;o=n;w=c[o+4>>2]|0;a=ea;c[a>>2]=c[o>>2];c[a+4>>2]=w;w=n;c[w>>2]=fa;c[w+4>>2]=t;if(!(rb[c[d>>2]&31](ea,u)|0)){i=e;return}t=u;w=c[t>>2]|0;fa=c[t+4>>2]|0;t=ea;n=c[t+4>>2]|0;a=u;c[a>>2]=c[t>>2];c[a+4>>2]=n;n=ea;c[n>>2]=w;c[n+4>>2]=fa;i=e;return}else if((q|0)==26){jn(x,x+8|0,x+16|0,x+24|0,y,d)|0;i=e;return}else if((q|0)==28){y=z+16|0;x=z+8|0;fa=rb[c[d>>2]&31](x,z)|0;n=rb[c[d>>2]&31](y,x)|0;do if(fa){w=z;ea=c[w>>2]|0;a=c[w+4>>2]|0;if(n){w=y;t=c[w+4>>2]|0;u=z;c[u>>2]=c[w>>2];c[u+4>>2]=t;t=y;c[t>>2]=ea;c[t+4>>2]=a;break}t=x;u=c[t+4>>2]|0;w=z;c[w>>2]=c[t>>2];c[w+4>>2]=u;u=x;c[u>>2]=ea;c[u+4>>2]=a;if(rb[c[d>>2]&31](y,x)|0){a=x;u=c[a>>2]|0;ea=c[a+4>>2]|0;a=y;w=c[a+4>>2]|0;t=x;c[t>>2]=c[a>>2];c[t+4>>2]=w;w=y;c[w>>2]=u;c[w+4>>2]=ea}}else if(n?(ea=x,w=c[ea>>2]|0,u=c[ea+4>>2]|0,ea=y,t=c[ea+4>>2]|0,a=x,c[a>>2]=c[ea>>2],c[a+4>>2]=t,t=y,c[t>>2]=w,c[t+4>>2]=u,rb[c[d>>2]&31](x,z)|0):0){u=z;t=c[u>>2]|0;w=c[u+4>>2]|0;u=x;a=c[u+4>>2]|0;ea=z;c[ea>>2]=c[u>>2];c[ea+4>>2]=a;a=x;c[a>>2]=t;c[a+4>>2]=w}while(0);x=z+24|0;if((x|0)!=(A|0)){n=x;x=y;while(1){if(rb[c[d>>2]&31](n,x)|0){y=n;fa=c[y+4>>2]|0;w=f;c[w>>2]=c[y>>2];c[w+4>>2]=fa;fa=n;w=x;while(1){y=w;a=c[y+4>>2]|0;t=fa;c[t>>2]=c[y>>2];c[t+4>>2]=a;if((w|0)==(z|0)){ga=w;break}a=w+-8|0;if(rb[c[d>>2]&31](f,a)|0){t=w;w=a;fa=t}else{ga=w;break}}w=f;fa=c[w+4>>2]|0;j=ga;c[j>>2]=c[w>>2];c[j+4>>2]=fa}fa=n+8|0;if((fa|0)==(A|0))break;else{j=n;n=fa;x=j}}}i=e;return}else if((q|0)==87){i=e;return}}function Rm(a,b){a=a|0;b=b|0;var d=0;if((c[a>>2]|0)>>>0>=(c[b>>2]|0)>>>0){d=0;return d|0}d=(c[a+4>>2]|0)<(c[b+4>>2]|0);return d|0}function Sm(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,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;e=i;i=i+16|0;f=e;g=a;a=b;a:while(1){b=a;h=a+-8|0;j=g;b:while(1){k=j;l=b-k|0;m=l>>3;switch(m|0){case 2:{n=j;o=h;p=h;q=4;break a;break}case 3:{r=j;s=h;t=h;q=6;break a;break}case 4:{u=j;v=h;w=h;q=14;break a;break}case 5:{x=j;y=h;q=26;break a;break}case 1:case 0:{q=87;break a;break}default:{}}if((l|0)<248){z=j;A=a;q=28;break a}B=(m|0)/2|0;C=j+(B<<3)|0;do if((l|0)<=7992){D=rb[c[d>>2]&31](C,j)|0;E=rb[c[d>>2]&31](h,C)|0;if(!D){if(!E){F=0;break}D=C;G=c[D>>2]|0;H=c[D+4>>2]|0;D=h;I=c[D+4>>2]|0;J=C;c[J>>2]=c[D>>2];c[J+4>>2]=I;I=h;c[I>>2]=G;c[I+4>>2]=H;if(!(rb[c[d>>2]&31](C,j)|0)){F=1;break}H=j;I=c[H>>2]|0;G=c[H+4>>2]|0;H=C;J=c[H+4>>2]|0;D=j;c[D>>2]=c[H>>2];c[D+4>>2]=J;J=C;c[J>>2]=I;c[J+4>>2]=G;F=2;break}G=j;J=c[G>>2]|0;I=c[G+4>>2]|0;if(E){E=h;G=c[E+4>>2]|0;D=j;c[D>>2]=c[E>>2];c[D+4>>2]=G;G=h;c[G>>2]=J;c[G+4>>2]=I;F=1;break}G=C;D=c[G+4>>2]|0;E=j;c[E>>2]=c[G>>2];c[E+4>>2]=D;D=C;c[D>>2]=J;c[D+4>>2]=I;if(rb[c[d>>2]&31](h,C)|0){I=C;D=c[I>>2]|0;J=c[I+4>>2]|0;I=h;E=c[I+4>>2]|0;G=C;c[G>>2]=c[I>>2];c[G+4>>2]=E;E=h;c[E>>2]=D;c[E+4>>2]=J;F=2}else F=1}else{J=(m|0)/4|0;F=gn(j,j+(J<<3)|0,C,j+(J+B<<3)|0,h,d)|0}while(0);do if(rb[c[d>>2]&31](j,C)|0){K=h;L=F}else{B=h;while(1){m=B+-8|0;if((j|0)==(m|0))break;if(rb[c[d>>2]&31](m,C)|0){M=m;q=69;break}else B=m}if((q|0)==69){q=0;B=j;m=c[B>>2]|0;l=c[B+4>>2]|0;B=M;J=c[B+4>>2]|0;E=j;c[E>>2]=c[B>>2];c[E+4>>2]=J;J=M;c[J>>2]=m;c[J+4>>2]=l;K=M;L=F+1|0;break}l=j+8|0;if(rb[c[d>>2]&31](j,h)|0)N=l;else{if((l|0)==(h|0)){q=87;break a}else{O=j;P=l}while(1){if(rb[c[d>>2]&31](j,P)|0){Q=O;R=P;break}l=P+8|0;if((l|0)==(h|0)){q=87;break a}else{J=P;P=l;O=J}}J=R;l=c[J>>2]|0;m=c[J+4>>2]|0;J=h;E=c[J+4>>2]|0;B=R;c[B>>2]=c[J>>2];c[B+4>>2]=E;E=h;c[E>>2]=l;c[E+4>>2]=m;N=Q+16|0}if((N|0)==(h|0)){q=87;break a}else{S=N;T=h}while(1){m=S;while(1){E=m+8|0;if(rb[c[d>>2]&31](j,m)|0){U=E;V=m;break}else m=E}m=T;while(1){E=m+-8|0;if(rb[c[d>>2]&31](j,E)|0)m=E;else{W=E;break}}if(V>>>0>=W>>>0){j=V;continue b}m=V;E=c[m>>2]|0;l=c[m+4>>2]|0;m=W;B=c[m+4>>2]|0;J=V;c[J>>2]=c[m>>2];c[J+4>>2]=B;B=W;c[B>>2]=E;c[B+4>>2]=l;S=U;T=W}}while(0);l=j+8|0;c:do if(l>>>0>>0){B=l;E=K;J=C;m=L;while(1){D=B;while(1){G=D+8|0;if(rb[c[d>>2]&31](D,J)|0)D=G;else{X=G;Y=D;break}}D=E;while(1){G=D+-8|0;if(rb[c[d>>2]&31](G,J)|0){Z=G;break}else D=G}if(Y>>>0>Z>>>0){_=Y;$=J;aa=m;break c}D=Y;G=c[D>>2]|0;I=c[D+4>>2]|0;D=Z;H=c[D+4>>2]|0;ba=Y;c[ba>>2]=c[D>>2];c[ba+4>>2]=H;H=Z;c[H>>2]=G;c[H+4>>2]=I;B=X;E=Z;J=(J|0)==(Y|0)?Z:J;m=m+1|0}}else{_=l;$=C;aa=L}while(0);if((_|0)!=($|0)?rb[c[d>>2]&31]($,_)|0:0){C=_;l=c[C>>2]|0;m=c[C+4>>2]|0;C=$;J=c[C+4>>2]|0;E=_;c[E>>2]=c[C>>2];c[E+4>>2]=J;J=$;c[J>>2]=l;c[J+4>>2]=m;ca=aa+1|0}else ca=aa;if(!ca){da=hn(j,_,d)|0;m=_+8|0;if(hn(m,a,d)|0){q=82;break}if(da){j=m;continue}}m=_;if((m-k|0)>=(b-m|0)){ea=j;fa=_;q=86;break}Sm(j,_,d);j=_+8|0}if((q|0)==82){q=0;if(da){q=87;break}else{g=j;a=_;continue}}else if((q|0)==86){q=0;Sm(fa+8|0,a,d);g=ea;a=fa;continue}}if((q|0)==4){if(!(rb[c[d>>2]&31](o,n)|0)){i=e;return}o=n;fa=c[o>>2]|0;a=c[o+4>>2]|0;o=p;ea=c[o+4>>2]|0;g=n;c[g>>2]=c[o>>2];c[g+4>>2]=ea;ea=p;c[ea>>2]=fa;c[ea+4>>2]=a;i=e;return}else if((q|0)==6){a=r+8|0;ea=rb[c[d>>2]&31](a,r)|0;fa=rb[c[d>>2]&31](s,a)|0;if(!ea){if(!fa){i=e;return}ea=a;p=c[ea>>2]|0;g=c[ea+4>>2]|0;ea=t;o=c[ea+4>>2]|0;n=a;c[n>>2]=c[ea>>2];c[n+4>>2]=o;o=t;c[o>>2]=p;c[o+4>>2]=g;if(!(rb[c[d>>2]&31](a,r)|0)){i=e;return}g=r;o=c[g>>2]|0;p=c[g+4>>2]|0;g=a;n=c[g+4>>2]|0;ea=r;c[ea>>2]=c[g>>2];c[ea+4>>2]=n;n=a;c[n>>2]=o;c[n+4>>2]=p;i=e;return}p=r;n=c[p>>2]|0;o=c[p+4>>2]|0;if(fa){fa=t;p=c[fa+4>>2]|0;ea=r;c[ea>>2]=c[fa>>2];c[ea+4>>2]=p;p=t;c[p>>2]=n;c[p+4>>2]=o;i=e;return}p=a;ea=c[p+4>>2]|0;fa=r;c[fa>>2]=c[p>>2];c[fa+4>>2]=ea;ea=a;c[ea>>2]=n;c[ea+4>>2]=o;if(!(rb[c[d>>2]&31](s,a)|0)){i=e;return}s=a;o=c[s>>2]|0;ea=c[s+4>>2]|0;s=t;n=c[s+4>>2]|0;fa=a;c[fa>>2]=c[s>>2];c[fa+4>>2]=n;n=t;c[n>>2]=o;c[n+4>>2]=ea;i=e;return}else if((q|0)==14){ea=u+8|0;n=u+16|0;o=rb[c[d>>2]&31](ea,u)|0;t=rb[c[d>>2]&31](n,ea)|0;do if(o){fa=u;s=c[fa>>2]|0;a=c[fa+4>>2]|0;if(t){fa=n;p=c[fa+4>>2]|0;r=u;c[r>>2]=c[fa>>2];c[r+4>>2]=p;p=n;c[p>>2]=s;c[p+4>>2]=a;break}p=ea;r=c[p+4>>2]|0;fa=u;c[fa>>2]=c[p>>2];c[fa+4>>2]=r;r=ea;c[r>>2]=s;c[r+4>>2]=a;if(rb[c[d>>2]&31](n,ea)|0){a=ea;r=c[a>>2]|0;s=c[a+4>>2]|0;a=n;fa=c[a+4>>2]|0;p=ea;c[p>>2]=c[a>>2];c[p+4>>2]=fa;fa=n;c[fa>>2]=r;c[fa+4>>2]=s}}else if(t?(s=ea,fa=c[s>>2]|0,r=c[s+4>>2]|0,s=n,p=c[s+4>>2]|0,a=ea,c[a>>2]=c[s>>2],c[a+4>>2]=p,p=n,c[p>>2]=fa,c[p+4>>2]=r,rb[c[d>>2]&31](ea,u)|0):0){r=u;p=c[r>>2]|0;fa=c[r+4>>2]|0;r=ea;a=c[r+4>>2]|0;s=u;c[s>>2]=c[r>>2];c[s+4>>2]=a;a=ea;c[a>>2]=p;c[a+4>>2]=fa}while(0);if(!(rb[c[d>>2]&31](v,n)|0)){i=e;return}v=n;t=c[v>>2]|0;o=c[v+4>>2]|0;v=w;fa=c[v+4>>2]|0;a=n;c[a>>2]=c[v>>2];c[a+4>>2]=fa;fa=w;c[fa>>2]=t;c[fa+4>>2]=o;if(!(rb[c[d>>2]&31](n,ea)|0)){i=e;return}o=ea;fa=c[o>>2]|0;t=c[o+4>>2]|0;o=n;w=c[o+4>>2]|0;a=ea;c[a>>2]=c[o>>2];c[a+4>>2]=w;w=n;c[w>>2]=fa;c[w+4>>2]=t;if(!(rb[c[d>>2]&31](ea,u)|0)){i=e;return}t=u;w=c[t>>2]|0;fa=c[t+4>>2]|0;t=ea;n=c[t+4>>2]|0;a=u;c[a>>2]=c[t>>2];c[a+4>>2]=n;n=ea;c[n>>2]=w;c[n+4>>2]=fa;i=e;return}else if((q|0)==26){gn(x,x+8|0,x+16|0,x+24|0,y,d)|0;i=e;return}else if((q|0)==28){y=z+16|0;x=z+8|0;fa=rb[c[d>>2]&31](x,z)|0;n=rb[c[d>>2]&31](y,x)|0;do if(fa){w=z;ea=c[w>>2]|0;a=c[w+4>>2]|0;if(n){w=y;t=c[w+4>>2]|0;u=z;c[u>>2]=c[w>>2];c[u+4>>2]=t;t=y;c[t>>2]=ea;c[t+4>>2]=a;break}t=x;u=c[t+4>>2]|0;w=z;c[w>>2]=c[t>>2];c[w+4>>2]=u;u=x;c[u>>2]=ea;c[u+4>>2]=a;if(rb[c[d>>2]&31](y,x)|0){a=x;u=c[a>>2]|0;ea=c[a+4>>2]|0;a=y;w=c[a+4>>2]|0;t=x;c[t>>2]=c[a>>2];c[t+4>>2]=w;w=y;c[w>>2]=u;c[w+4>>2]=ea}}else if(n?(ea=x,w=c[ea>>2]|0,u=c[ea+4>>2]|0,ea=y,t=c[ea+4>>2]|0,a=x,c[a>>2]=c[ea>>2],c[a+4>>2]=t,t=y,c[t>>2]=w,c[t+4>>2]=u,rb[c[d>>2]&31](x,z)|0):0){u=z;t=c[u>>2]|0;w=c[u+4>>2]|0;u=x;a=c[u+4>>2]|0;ea=z;c[ea>>2]=c[u>>2];c[ea+4>>2]=a;a=x;c[a>>2]=t;c[a+4>>2]=w}while(0);x=z+24|0;if((x|0)!=(A|0)){n=x;x=y;while(1){if(rb[c[d>>2]&31](n,x)|0){y=n;fa=c[y+4>>2]|0;w=f;c[w>>2]=c[y>>2];c[w+4>>2]=fa;fa=n;w=x;while(1){y=w;a=c[y+4>>2]|0;t=fa;c[t>>2]=c[y>>2];c[t+4>>2]=a;if((w|0)==(z|0)){ga=w;break}a=w+-8|0;if(rb[c[d>>2]&31](f,a)|0){t=w;w=a;fa=t}else{ga=w;break}}w=f;fa=c[w+4>>2]|0;j=ga;c[j>>2]=c[w>>2];c[j+4>>2]=fa}fa=n+8|0;if((fa|0)==(A|0))break;else{j=n;n=fa;x=j}}}i=e;return}else if((q|0)==87){i=e;return}}function Tm(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,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;e=i;i=i+32|0;f=e;g=a;a=b;a:while(1){b=a;h=a+-28|0;j=g;b:while(1){k=j;l=b-k|0;switch((l|0)/28|0|0){case 2:{m=j;n=h;o=h;p=4;break a;break}case 3:{q=j;r=h;s=h;p=6;break a;break}case 4:{t=j;u=h;p=14;break a;break}case 5:{v=j;w=h;x=h;p=15;break a;break}case 1:case 0:{p=69;break a;break}default:{}}if((l|0)<868){y=j;z=a;p=21;break a}A=(l|0)/56|0;B=j+(A*28|0)|0;do if((l|0)>27972){C=(l|0)/112|0;D=j+(C*28|0)|0;E=j+((C+A|0)*28|0)|0;C=bn(j,D,B,E,d)|0;if(rb[c[d>>2]&31](h,E)|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];c[f+16>>2]=c[E+16>>2];c[f+20>>2]=c[E+20>>2];c[f+24>>2]=c[E+24>>2];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];c[E+16>>2]=c[h+16>>2];c[E+20>>2]=c[h+20>>2];c[E+24>>2]=c[h+24>>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];c[h+16>>2]=c[f+16>>2];c[h+20>>2]=c[f+20>>2];c[h+24>>2]=c[f+24>>2];F=C+1|0;if(rb[c[d>>2]&31](E,B)|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];c[f+16>>2]=c[B+16>>2];c[f+20>>2]=c[B+20>>2];c[f+24>>2]=c[B+24>>2];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];c[B+16>>2]=c[E+16>>2];c[B+20>>2]=c[E+20>>2];c[B+24>>2]=c[E+24>>2];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];c[E+16>>2]=c[f+16>>2];c[E+20>>2]=c[f+20>>2];c[E+24>>2]=c[f+24>>2];E=C+2|0;if(rb[c[d>>2]&31](B,D)|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>>2]=c[D+16>>2];c[f+20>>2]=c[D+20>>2];c[f+24>>2]=c[D+24>>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];c[D+16>>2]=c[B+16>>2];c[D+20>>2]=c[B+20>>2];c[D+24>>2]=c[B+24>>2];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];c[B+16>>2]=c[f+16>>2];c[B+20>>2]=c[f+20>>2];c[B+24>>2]=c[f+24>>2];if(rb[c[d>>2]&31](D,j)|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[f+20>>2]=c[j+20>>2];c[f+24>>2]=c[j+24>>2];c[j>>2]=c[D>>2];c[j+4>>2]=c[D+4>>2];c[j+8>>2]=c[D+8>>2];c[j+12>>2]=c[D+12>>2];c[j+16>>2]=c[D+16>>2];c[j+20>>2]=c[D+20>>2];c[j+24>>2]=c[D+24>>2];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];c[D+16>>2]=c[f+16>>2];c[D+20>>2]=c[f+20>>2];c[D+24>>2]=c[f+24>>2];G=C+4|0}else G=C+3|0}else G=E}else G=F}else G=C}else{C=rb[c[d>>2]&31](B,j)|0;F=rb[c[d>>2]&31](h,B)|0;if(!C){if(!F){G=0;break};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];c[f+16>>2]=c[B+16>>2];c[f+20>>2]=c[B+20>>2];c[f+24>>2]=c[B+24>>2];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];c[B+16>>2]=c[h+16>>2];c[B+20>>2]=c[h+20>>2];c[B+24>>2]=c[h+24>>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];c[h+16>>2]=c[f+16>>2];c[h+20>>2]=c[f+20>>2];c[h+24>>2]=c[f+24>>2];if(!(rb[c[d>>2]&31](B,j)|0)){G=1;break};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[f+20>>2]=c[j+20>>2];c[f+24>>2]=c[j+24>>2];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];c[j+16>>2]=c[B+16>>2];c[j+20>>2]=c[B+20>>2];c[j+24>>2]=c[B+24>>2];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];c[B+16>>2]=c[f+16>>2];c[B+20>>2]=c[f+20>>2];c[B+24>>2]=c[f+24>>2];G=2;break}if(F){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[f+20>>2]=c[j+20>>2];c[f+24>>2]=c[j+24>>2];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[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];c[h+16>>2]=c[f+16>>2];c[h+20>>2]=c[f+20>>2];c[h+24>>2]=c[f+24>>2];G=1;break};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[f+20>>2]=c[j+20>>2];c[f+24>>2]=c[j+24>>2];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];c[j+16>>2]=c[B+16>>2];c[j+20>>2]=c[B+20>>2];c[j+24>>2]=c[B+24>>2];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];c[B+16>>2]=c[f+16>>2];c[B+20>>2]=c[f+20>>2];c[B+24>>2]=c[f+24>>2];if(rb[c[d>>2]&31](h,B)|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];c[f+16>>2]=c[B+16>>2];c[f+20>>2]=c[B+20>>2];c[f+24>>2]=c[B+24>>2];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];c[B+16>>2]=c[h+16>>2];c[B+20>>2]=c[h+20>>2];c[B+24>>2]=c[h+24>>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];c[h+16>>2]=c[f+16>>2];c[h+20>>2]=c[f+20>>2];c[h+24>>2]=c[f+24>>2];G=2}else G=1}while(0);do if(rb[c[d>>2]&31](j,B)|0){H=h;I=G}else{A=h;while(1){l=A+-28|0;if((j|0)==(l|0))break;if(rb[c[d>>2]&31](l,B)|0){J=l;p=51;break}else A=l}if((p|0)==51){p=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[f+20>>2]=c[j+20>>2];c[f+24>>2]=c[j+24>>2];c[j>>2]=c[J>>2];c[j+4>>2]=c[J+4>>2];c[j+8>>2]=c[J+8>>2];c[j+12>>2]=c[J+12>>2];c[j+16>>2]=c[J+16>>2];c[j+20>>2]=c[J+20>>2];c[j+24>>2]=c[J+24>>2];c[J>>2]=c[f>>2];c[J+4>>2]=c[f+4>>2];c[J+8>>2]=c[f+8>>2];c[J+12>>2]=c[f+12>>2];c[J+16>>2]=c[f+16>>2];c[J+20>>2]=c[f+20>>2];c[J+24>>2]=c[f+24>>2];H=J;I=G+1|0;break}A=j+28|0;if(rb[c[d>>2]&31](j,h)|0)K=A;else{if((A|0)==(h|0)){p=69;break a}else{L=j;M=A}while(1){if(rb[c[d>>2]&31](j,M)|0){N=L;O=M;break}A=M+28|0;if((A|0)==(h|0)){p=69;break a}else{l=M;M=A;L=l}}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];c[f+16>>2]=c[O+16>>2];c[f+20>>2]=c[O+20>>2];c[f+24>>2]=c[O+24>>2];c[O>>2]=c[h>>2];c[O+4>>2]=c[h+4>>2];c[O+8>>2]=c[h+8>>2];c[O+12>>2]=c[h+12>>2];c[O+16>>2]=c[h+16>>2];c[O+20>>2]=c[h+20>>2];c[O+24>>2]=c[h+24>>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];c[h+16>>2]=c[f+16>>2];c[h+20>>2]=c[f+20>>2];c[h+24>>2]=c[f+24>>2];K=N+56|0}if((K|0)==(h|0)){p=69;break a}else{P=K;Q=h}while(1){l=P;while(1){A=l+28|0;if(rb[c[d>>2]&31](j,l)|0){R=A;S=l;break}else l=A}l=Q;while(1){A=l+-28|0;if(rb[c[d>>2]&31](j,A)|0)l=A;else{T=A;break}}if(S>>>0>=T>>>0){j=S;continue b};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];c[f+16>>2]=c[S+16>>2];c[f+20>>2]=c[S+20>>2];c[f+24>>2]=c[S+24>>2];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];c[S+16>>2]=c[T+16>>2];c[S+20>>2]=c[T+20>>2];c[S+24>>2]=c[T+24>>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];c[T+16>>2]=c[f+16>>2];c[T+20>>2]=c[f+20>>2];c[T+24>>2]=c[f+24>>2];P=R;Q=T}}while(0);l=j+28|0;c:do if(l>>>0>>0){A=l;F=H;C=B;E=I;while(1){D=A;while(1){U=D+28|0;if(rb[c[d>>2]&31](D,C)|0)D=U;else{V=U;W=D;break}}D=F;while(1){U=D+-28|0;if(rb[c[d>>2]&31](U,C)|0){X=U;break}else D=U}if(W>>>0>X>>>0){Y=W;Z=C;_=E;break c};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[f+16>>2]=c[W+16>>2];c[f+20>>2]=c[W+20>>2];c[f+24>>2]=c[W+24>>2];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[W+16>>2]=c[X+16>>2];c[W+20>>2]=c[X+20>>2];c[W+24>>2]=c[X+24>>2];c[X>>2]=c[f>>2];c[X+4>>2]=c[f+4>>2];c[X+8>>2]=c[f+8>>2];c[X+12>>2]=c[f+12>>2];c[X+16>>2]=c[f+16>>2];c[X+20>>2]=c[f+20>>2];c[X+24>>2]=c[f+24>>2];A=V;F=X;C=(C|0)==(W|0)?X:C;E=E+1|0}}else{Y=l;Z=B;_=I}while(0);if((Y|0)!=(Z|0)?rb[c[d>>2]&31](Z,Y)|0:0){c[f>>2]=c[Y>>2];c[f+4>>2]=c[Y+4>>2];c[f+8>>2]=c[Y+8>>2];c[f+12>>2]=c[Y+12>>2];c[f+16>>2]=c[Y+16>>2];c[f+20>>2]=c[Y+20>>2];c[f+24>>2]=c[Y+24>>2];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];c[Y+16>>2]=c[Z+16>>2];c[Y+20>>2]=c[Z+20>>2];c[Y+24>>2]=c[Z+24>>2];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[Z+16>>2]=c[f+16>>2];c[Z+20>>2]=c[f+20>>2];c[Z+24>>2]=c[f+24>>2];$=_+1|0}else $=_;if(!$){aa=dn(j,Y,d)|0;B=Y+28|0;if(dn(B,a,d)|0){p=64;break}if(aa){j=B;continue}}B=Y;if((B-k|0)>=(b-B|0)){ba=j;ca=Y;p=68;break}Tm(j,Y,d);j=Y+28|0}if((p|0)==64){p=0;if(aa){p=69;break}else{g=j;a=Y;continue}}else if((p|0)==68){p=0;Tm(ca+28|0,a,d);g=ba;a=ca;continue}}if((p|0)==4){if(!(rb[c[d>>2]&31](n,m)|0)){i=e;return};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];c[f+16>>2]=c[m+16>>2];c[f+20>>2]=c[m+20>>2];c[f+24>>2]=c[m+24>>2];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];c[m+16>>2]=c[o+16>>2];c[m+20>>2]=c[o+20>>2];c[m+24>>2]=c[o+24>>2];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];c[o+16>>2]=c[f+16>>2];c[o+20>>2]=c[f+20>>2];c[o+24>>2]=c[f+24>>2];i=e;return}else if((p|0)==6){o=q+28|0;m=rb[c[d>>2]&31](o,q)|0;n=rb[c[d>>2]&31](r,o)|0;if(!m){if(!n){i=e;return};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];c[f+16>>2]=c[o+16>>2];c[f+20>>2]=c[o+20>>2];c[f+24>>2]=c[o+24>>2];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[o+16>>2]=c[s+16>>2];c[o+20>>2]=c[s+20>>2];c[o+24>>2]=c[s+24>>2];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];c[s+16>>2]=c[f+16>>2];c[s+20>>2]=c[f+20>>2];c[s+24>>2]=c[f+24>>2];if(!(rb[c[d>>2]&31](o,q)|0)){i=e;return};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[f+16>>2]=c[q+16>>2];c[f+20>>2]=c[q+20>>2];c[f+24>>2]=c[q+24>>2];c[q>>2]=c[o>>2];c[q+4>>2]=c[o+4>>2];c[q+8>>2]=c[o+8>>2];c[q+12>>2]=c[o+12>>2];c[q+16>>2]=c[o+16>>2];c[q+20>>2]=c[o+20>>2];c[q+24>>2]=c[o+24>>2];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];c[o+16>>2]=c[f+16>>2];c[o+20>>2]=c[f+20>>2];c[o+24>>2]=c[f+24>>2];i=e;return}if(n){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[f+16>>2]=c[q+16>>2];c[f+20>>2]=c[q+20>>2];c[f+24>>2]=c[q+24>>2];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];c[q+16>>2]=c[s+16>>2];c[q+20>>2]=c[s+20>>2];c[q+24>>2]=c[s+24>>2];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];c[s+16>>2]=c[f+16>>2];c[s+20>>2]=c[f+20>>2];c[s+24>>2]=c[f+24>>2];i=e;return};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[f+16>>2]=c[q+16>>2];c[f+20>>2]=c[q+20>>2];c[f+24>>2]=c[q+24>>2];c[q>>2]=c[o>>2];c[q+4>>2]=c[o+4>>2];c[q+8>>2]=c[o+8>>2];c[q+12>>2]=c[o+12>>2];c[q+16>>2]=c[o+16>>2];c[q+20>>2]=c[o+20>>2];c[q+24>>2]=c[o+24>>2];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];c[o+16>>2]=c[f+16>>2];c[o+20>>2]=c[f+20>>2];c[o+24>>2]=c[f+24>>2];if(!(rb[c[d>>2]&31](r,o)|0)){i=e;return};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];c[f+16>>2]=c[o+16>>2];c[f+20>>2]=c[o+20>>2];c[f+24>>2]=c[o+24>>2];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[o+16>>2]=c[s+16>>2];c[o+20>>2]=c[s+20>>2];c[o+24>>2]=c[s+24>>2];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];c[s+16>>2]=c[f+16>>2];c[s+20>>2]=c[f+20>>2];c[s+24>>2]=c[f+24>>2];i=e;return}else if((p|0)==14){bn(t,t+28|0,t+56|0,u,d)|0;i=e;return}else if((p|0)==15){u=v+28|0;t=v+56|0;s=v+84|0;bn(v,u,t,s,d)|0;if(!(rb[c[d>>2]&31](w,s)|0)){i=e;return};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];c[f+16>>2]=c[s+16>>2];c[f+20>>2]=c[s+20>>2];c[f+24>>2]=c[s+24>>2];c[s>>2]=c[x>>2];c[s+4>>2]=c[x+4>>2];c[s+8>>2]=c[x+8>>2];c[s+12>>2]=c[x+12>>2];c[s+16>>2]=c[x+16>>2];c[s+20>>2]=c[x+20>>2];c[s+24>>2]=c[x+24>>2];c[x>>2]=c[f>>2];c[x+4>>2]=c[f+4>>2];c[x+8>>2]=c[f+8>>2];c[x+12>>2]=c[f+12>>2];c[x+16>>2]=c[f+16>>2];c[x+20>>2]=c[f+20>>2];c[x+24>>2]=c[f+24>>2];if(!(rb[c[d>>2]&31](s,t)|0)){i=e;return};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[f+16>>2]=c[t+16>>2];c[f+20>>2]=c[t+20>>2];c[f+24>>2]=c[t+24>>2];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];c[t+16>>2]=c[s+16>>2];c[t+20>>2]=c[s+20>>2];c[t+24>>2]=c[s+24>>2];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];c[s+16>>2]=c[f+16>>2];c[s+20>>2]=c[f+20>>2];c[s+24>>2]=c[f+24>>2];if(!(rb[c[d>>2]&31](t,u)|0)){i=e;return};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];c[f+16>>2]=c[u+16>>2];c[f+20>>2]=c[u+20>>2];c[f+24>>2]=c[u+24>>2];c[u>>2]=c[t>>2];c[u+4>>2]=c[t+4>>2];c[u+8>>2]=c[t+8>>2];c[u+12>>2]=c[t+12>>2];c[u+16>>2]=c[t+16>>2];c[u+20>>2]=c[t+20>>2];c[u+24>>2]=c[t+24>>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];c[t+16>>2]=c[f+16>>2];c[t+20>>2]=c[f+20>>2];c[t+24>>2]=c[f+24>>2];if(!(rb[c[d>>2]&31](u,v)|0)){i=e;return};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];c[f+16>>2]=c[v+16>>2];c[f+20>>2]=c[v+20>>2];c[f+24>>2]=c[v+24>>2];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];c[v+16>>2]=c[u+16>>2];c[v+20>>2]=c[u+20>>2];c[v+24>>2]=c[u+24>>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];c[u+16>>2]=c[f+16>>2];c[u+20>>2]=c[f+20>>2];c[u+24>>2]=c[f+24>>2];i=e;return}else if((p|0)==21){cn(y,z,d);i=e;return}else if((p|0)==69){i=e;return}}function Um(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.0,p=0.0;d=i;i=i+32|0;e=d+16|0;f=d+8|0;h=d;j=c[b>>2]|0;k=a+4|0;l=a+8|0;if((j|0)==(c[k>>2]|0)){m=c[l>>2]|0;c[l>>2]=m+1;if((m|0)>3){m=c[a+12>>2]|0;c[m>>2]=(c[m>>2]|0)+1;n=1;i=d;return n|0}}else{c[k>>2]=j;c[l>>2]=1}l=c[a>>2]|0;o=+g[l+32>>2]*(1.0-+g[b+12>>2]);k=c[l+96>>2]|0;p=+g[b+20>>2]*o+ +g[k+(j<<3)+4>>2];g[e>>2]=+g[k+(j<<3)>>2]+ +g[b+16>>2]*o;g[e+4>>2]=p;j=b+8|0;b=c[j>>2]|0;k=c[b+12>>2]|0;if(lb[c[(c[k>>2]|0)+16>>2]&15](k,(c[b+8>>2]|0)+12|0,e)|0){n=0;i=d;return n|0}b=c[(c[j>>2]|0)+12>>2]|0;k=fb[c[(c[b>>2]|0)+12>>2]&7](b)|0;a:do if((k|0)>0){b=0;while(1){l=c[j>>2]|0;m=c[l+12>>2]|0;qb[c[(c[m>>2]|0)+20>>2]&7](m,(c[l+8>>2]|0)+12|0,e,f,h,b);b=b+1|0;if(+g[f>>2]<.004999999888241291){n=0;break}if((b|0)>=(k|0))break a}i=d;return n|0}while(0);k=c[a+12>>2]|0;c[k>>2]=(c[k>>2]|0)+1;n=1;i=d;return n|0}function Vm(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,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;e=a;a=b;a:while(1){b=a;f=a+-4|0;g=e;b:while(1){h=g;i=b-h|0;j=i>>2;switch(j|0){case 2:{k=g;l=f;m=4;break a;break}case 3:{n=g;o=f;m=6;break a;break}case 4:{p=g;q=f;m=14;break a;break}case 5:{r=g;s=f;m=15;break a;break}case 1:case 0:{m=75;break a;break}default:{}}if((i|0)<124){t=g;u=a;m=17;break a}v=(j|0)/2|0;w=g+(v<<2)|0;do if((i|0)<=3996){x=c[d>>2]|0;y=c[w>>2]|0;z=c[g>>2]|0;A=c[x+(y<<2)>>2]|0;B=x+(z<<2)|0;C=c[B>>2]|0;D=(A|0)<1;E=c[f>>2]|0;F=c[x+(E<<2)>>2]|0;G=(F|0)<1;H=D^G?G:(F|0)>(A|0);if(!(D^(C|0)<1?D:(A|0)>(C|0))){if(!H){I=x;J=0;break}c[w>>2]=E;c[f>>2]=y;C=c[w>>2]|0;A=c[g>>2]|0;D=c[x+(C<<2)>>2]|0;F=c[x+(A<<2)>>2]|0;G=(D|0)<1;if(!(G^(F|0)<1?G:(D|0)>(F|0))){I=x;J=1;break}c[g>>2]=C;c[w>>2]=A;I=x;J=2;break}if(H){c[g>>2]=E;c[f>>2]=z;I=x;J=1;break}c[g>>2]=y;c[w>>2]=z;y=c[f>>2]|0;E=c[x+(y<<2)>>2]|0;H=c[B>>2]|0;B=(E|0)<1;if(B^(H|0)<1?B:(E|0)>(H|0)){c[w>>2]=y;c[f>>2]=z;I=x;J=2}else{I=x;J=1}}else{x=(j|0)/4|0;z=Xm(g,g+(x<<2)|0,w,g+(x+v<<2)|0,f,d)|0;I=c[d>>2]|0;J=z}while(0);v=c[g>>2]|0;j=c[I+(v<<2)>>2]|0;i=c[I+(c[w>>2]<<2)>>2]|0;z=(j|0)<1;x=(i|0)<1;do if(z^x?z:(j|0)>(i|0)){K=f;L=J}else{y=f;while(1){H=y+-4|0;if((g|0)==(H|0))break;E=c[H>>2]|0;B=c[I+(E<<2)>>2]|0;A=(B|0)<1;if(A^x?A:(B|0)>(i|0)){M=E;N=H;m=57;break}else y=H}if((m|0)==57){m=0;c[g>>2]=M;c[N>>2]=v;K=N;L=J+1|0;break}y=g+4|0;H=c[f>>2]|0;E=c[I+(H<<2)>>2]|0;if(z^(E|0)<1?z:(j|0)>(E|0))O=y;else{if((y|0)==(f|0)){m=75;break a}else{P=g;Q=y}while(1){y=c[Q>>2]|0;E=c[I+(y<<2)>>2]|0;if(z^(E|0)<1?z:(j|0)>(E|0)){R=P;S=y;T=Q;break}y=Q+4|0;if((y|0)==(f|0)){m=75;break a}else{E=Q;Q=y;P=E}}c[T>>2]=H;c[f>>2]=S;O=R+8|0}if((O|0)==(f|0)){m=75;break a}else{U=O;V=f}while(1){E=c[I+(c[g>>2]<<2)>>2]|0;y=(E|0)<1;B=U;while(1){A=c[B>>2]|0;C=c[I+(A<<2)>>2]|0;F=B+4|0;if(y^(C|0)<1?y:(E|0)>(C|0)){W=A;X=F;Y=B;break}else B=F}B=V;while(1){F=B+-4|0;A=c[F>>2]|0;C=c[I+(A<<2)>>2]|0;if(y^(C|0)<1?y:(E|0)>(C|0))B=F;else{Z=F;_=A;break}}if(Y>>>0>=Z>>>0){g=Y;continue b}c[Y>>2]=_;c[Z>>2]=W;U=X;V=Z}}while(0);j=g+4|0;c:do if(j>>>0>>0){z=j;v=K;i=w;x=L;while(1){H=c[I+(c[i>>2]<<2)>>2]|0;B=(H|0)<1;E=z;while(1){y=c[E>>2]|0;A=c[I+(y<<2)>>2]|0;F=(A|0)<1;C=E+4|0;if(F^B?F:(A|0)>(H|0))E=C;else{$=y;aa=C;ba=E;break}}E=v;while(1){C=E+-4|0;y=c[C>>2]|0;A=c[I+(y<<2)>>2]|0;F=(A|0)<1;if(F^B?F:(A|0)>(H|0)){ca=C;da=y;break}else E=C}if(ba>>>0>ca>>>0){ea=ba;fa=i;ga=x;break c}c[ba>>2]=da;c[ca>>2]=$;z=aa;v=ca;i=(i|0)==(ba|0)?ca:i;x=x+1|0}}else{ea=j;fa=w;ga=L}while(0);if((ea|0)!=(fa|0)?(w=c[fa>>2]|0,j=c[ea>>2]|0,x=c[I+(w<<2)>>2]|0,i=c[I+(j<<2)>>2]|0,v=(x|0)<1,v^(i|0)<1?v:(x|0)>(i|0)):0){c[ea>>2]=w;c[fa>>2]=j;ha=ga+1|0}else ha=ga;if(!ha){ia=Ym(g,ea,d)|0;j=ea+4|0;if(Ym(j,a,d)|0){m=70;break}if(ia){g=j;continue}}j=ea;if((j-h|0)>=(b-j|0)){ja=g;ka=ea;m=74;break}Vm(g,ea,d);g=ea+4|0}if((m|0)==70){m=0;if(ia){m=75;break}else{e=g;a=ea;continue}}else if((m|0)==74){m=0;Vm(ka+4|0,a,d);e=ja;a=ka;continue}}if((m|0)==4){ka=c[l>>2]|0;a=c[k>>2]|0;ja=c[d>>2]|0;e=c[ja+(ka<<2)>>2]|0;ea=c[ja+(a<<2)>>2]|0;ja=(e|0)<1;if(!(ja^(ea|0)<1?ja:(e|0)>(ea|0)))return;c[k>>2]=ka;c[l>>2]=a;return}else if((m|0)==6){a=n+4|0;l=c[d>>2]|0;ka=c[a>>2]|0;k=c[n>>2]|0;ea=c[l+(ka<<2)>>2]|0;e=l+(k<<2)|0;ja=c[e>>2]|0;ia=(ea|0)<1;ha=c[o>>2]|0;ga=c[l+(ha<<2)>>2]|0;fa=(ga|0)<1;I=ia^fa?fa:(ga|0)>(ea|0);if(!(ia^(ja|0)<1?ia:(ea|0)>(ja|0))){if(!I)return;c[a>>2]=ha;c[o>>2]=ka;ja=c[a>>2]|0;ea=c[n>>2]|0;ia=c[l+(ja<<2)>>2]|0;ga=c[l+(ea<<2)>>2]|0;fa=(ia|0)<1;if(!(fa^(ga|0)<1?fa:(ia|0)>(ga|0)))return;c[n>>2]=ja;c[a>>2]=ea;return}if(I){c[n>>2]=ha;c[o>>2]=k;return}c[n>>2]=ka;c[a>>2]=k;ka=c[o>>2]|0;n=c[l+(ka<<2)>>2]|0;l=c[e>>2]|0;e=(n|0)<1;if(!(e^(l|0)<1?e:(n|0)>(l|0)))return;c[a>>2]=ka;c[o>>2]=k;return}else if((m|0)==14){Wm(p,p+4|0,p+8|0,q,c[d>>2]|0)|0;return}else if((m|0)==15){Xm(r,r+4|0,r+8|0,r+12|0,s,d)|0;return}else if((m|0)==17){s=c[d>>2]|0;d=t+8|0;r=t+4|0;q=c[r>>2]|0;p=c[t>>2]|0;k=c[s+(q<<2)>>2]|0;o=s+(p<<2)|0;ka=c[o>>2]|0;a=(k|0)<1;l=c[d>>2]|0;n=s+(l<<2)|0;e=c[n>>2]|0;ha=(e|0)<1;I=a^ha?ha:(e|0)>(k|0);do if(a^(ka|0)<1?a:(k|0)>(ka|0)){if(I){c[t>>2]=l;c[d>>2]=p;la=p;break}c[t>>2]=q;c[r>>2]=p;e=c[n>>2]|0;ha=c[o>>2]|0;ea=(e|0)<1;if(ea^(ha|0)<1?ea:(e|0)>(ha|0)){c[r>>2]=l;c[d>>2]=p;la=p}else la=l}else if(I){c[r>>2]=l;c[d>>2]=q;ha=c[n>>2]|0;e=c[o>>2]|0;ea=(ha|0)<1;if(ea^(e|0)<1?ea:(ha|0)>(e|0)){c[t>>2]=l;c[r>>2]=p;la=q}else la=q}else la=l;while(0);l=t+12|0;if((l|0)==(u|0))return;else{ma=la;na=l;oa=d}while(1){d=c[na>>2]|0;l=s+(d<<2)|0;la=c[l>>2]|0;q=c[s+(ma<<2)>>2]|0;p=(la|0)<1;if(p^(q|0)<1?p:(la|0)>(q|0)){q=ma;la=na;p=oa;while(1){c[la>>2]=q;if((p|0)==(t|0)){pa=t;break}r=p+-4|0;q=c[r>>2]|0;o=c[l>>2]|0;n=c[s+(q<<2)>>2]|0;I=(o|0)<1;if(!(I^(n|0)<1?I:(o|0)>(n|0))){pa=p;break}else{n=p;p=r;la=n}}c[pa>>2]=d}la=na+4|0;if((la|0)==(u|0))break;p=na;ma=c[na>>2]|0;na=la;oa=p}return}else if((m|0)==75)return}function Wm(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;g=c[b>>2]|0;h=c[a>>2]|0;i=c[f+(g<<2)>>2]|0;j=f+(h<<2)|0;k=c[j>>2]|0;l=(i|0)<1;m=c[d>>2]|0;n=c[f+(m<<2)>>2]|0;o=(n|0)<1;p=l^o?o:(n|0)>(i|0);do if(l^(k|0)<1?l:(i|0)>(k|0)){if(p){c[a>>2]=m;c[d>>2]=h;q=1;r=h;break}c[a>>2]=g;c[b>>2]=h;n=c[d>>2]|0;o=c[f+(n<<2)>>2]|0;s=c[j>>2]|0;t=(o|0)<1;if(t^(s|0)<1?t:(o|0)>(s|0)){c[b>>2]=n;c[d>>2]=h;q=2;r=h}else{q=1;r=n}}else if(p){c[b>>2]=m;c[d>>2]=g;n=c[b>>2]|0;s=c[a>>2]|0;o=c[f+(n<<2)>>2]|0;t=c[f+(s<<2)>>2]|0;u=(o|0)<1;if(u^(t|0)<1?u:(o|0)>(t|0)){c[a>>2]=n;c[b>>2]=s;q=2;r=c[d>>2]|0}else{q=1;r=g}}else{q=0;r=m}while(0);m=c[e>>2]|0;g=c[f+(m<<2)>>2]|0;p=c[f+(r<<2)>>2]|0;h=(g|0)<1;if(!(h^(p|0)<1?h:(g|0)>(p|0))){v=q;return v|0}c[d>>2]=m;c[e>>2]=r;r=c[d>>2]|0;e=c[b>>2]|0;m=c[f+(r<<2)>>2]|0;p=c[f+(e<<2)>>2]|0;g=(m|0)<1;if(!(g^(p|0)<1?g:(m|0)>(p|0))){v=q+1|0;return v|0}c[b>>2]=r;c[d>>2]=e;e=c[b>>2]|0;d=c[a>>2]|0;r=c[f+(e<<2)>>2]|0;p=c[f+(d<<2)>>2]|0;f=(r|0)<1;if(!(f^(p|0)<1?f:(r|0)>(p|0))){v=q+2|0;return v|0}c[a>>2]=e;c[b>>2]=d;v=q+3|0;return v|0}function Xm(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,k=0,l=0,m=0,n=0;h=Wm(a,b,d,e,c[g>>2]|0)|0;i=c[f>>2]|0;j=c[e>>2]|0;k=c[g>>2]|0;g=c[k+(i<<2)>>2]|0;l=c[k+(j<<2)>>2]|0;m=(g|0)<1;if(!(m^(l|0)<1?m:(g|0)>(l|0))){n=h;return n|0}c[e>>2]=i;c[f>>2]=j;j=c[e>>2]|0;f=c[d>>2]|0;i=c[k+(j<<2)>>2]|0;l=c[k+(f<<2)>>2]|0;g=(i|0)<1;if(!(g^(l|0)<1?g:(i|0)>(l|0))){n=h+1|0;return n|0}c[d>>2]=j;c[e>>2]=f;f=c[d>>2]|0;e=c[b>>2]|0;j=c[k+(f<<2)>>2]|0;l=c[k+(e<<2)>>2]|0;i=(j|0)<1;if(!(i^(l|0)<1?i:(j|0)>(l|0))){n=h+2|0;return n|0}c[b>>2]=f;c[d>>2]=e;e=c[b>>2]|0;d=c[a>>2]|0;f=c[k+(e<<2)>>2]|0;l=c[k+(d<<2)>>2]|0;k=(f|0)<1;if(!(k^(l|0)<1?k:(f|0)>(l|0))){n=h+3|0;return n|0}c[a>>2]=e;c[b>>2]=d;n=h+4|0;return n|0}function Ym(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,v=0,w=0,x=0,y=0,z=0,A=0,B=0;switch(b-a>>2|0){case 2:{e=b+-4|0;f=c[e>>2]|0;g=c[a>>2]|0;h=c[d>>2]|0;i=c[h+(f<<2)>>2]|0;j=c[h+(g<<2)>>2]|0;h=(i|0)<1;if(!(h^(j|0)<1?h:(i|0)>(j|0))){k=1;return k|0}c[a>>2]=f;c[e>>2]=g;k=1;return k|0}case 3:{g=a+4|0;e=b+-4|0;f=c[d>>2]|0;j=c[g>>2]|0;i=c[a>>2]|0;h=c[f+(j<<2)>>2]|0;l=f+(i<<2)|0;m=c[l>>2]|0;n=(h|0)<1;o=c[e>>2]|0;p=c[f+(o<<2)>>2]|0;q=(p|0)<1;r=n^q?q:(p|0)>(h|0);if(!(n^(m|0)<1?n:(h|0)>(m|0))){if(!r){k=1;return k|0}c[g>>2]=o;c[e>>2]=j;m=c[g>>2]|0;h=c[a>>2]|0;n=c[f+(m<<2)>>2]|0;p=c[f+(h<<2)>>2]|0;q=(n|0)<1;if(!(q^(p|0)<1?q:(n|0)>(p|0))){k=1;return k|0}c[a>>2]=m;c[g>>2]=h;k=1;return k|0}if(r){c[a>>2]=o;c[e>>2]=i;k=1;return k|0}c[a>>2]=j;c[g>>2]=i;j=c[e>>2]|0;o=c[f+(j<<2)>>2]|0;f=c[l>>2]|0;l=(o|0)<1;if(!(l^(f|0)<1?l:(o|0)>(f|0))){k=1;return k|0}c[g>>2]=j;c[e>>2]=i;k=1;return k|0}case 4:{Wm(a,a+4|0,a+8|0,b+-4|0,c[d>>2]|0)|0;k=1;return k|0}case 5:{Xm(a,a+4|0,a+8|0,a+12|0,b+-4|0,d)|0;k=1;return k|0}case 1:case 0:{k=1;return k|0}default:{i=a+8|0;e=a+4|0;j=c[d>>2]|0;d=c[e>>2]|0;g=c[a>>2]|0;f=c[j+(d<<2)>>2]|0;o=j+(g<<2)|0;l=c[o>>2]|0;r=(f|0)<1;h=c[i>>2]|0;m=j+(h<<2)|0;p=c[m>>2]|0;n=(p|0)<1;q=r^n?n:(p|0)>(f|0);do if(r^(l|0)<1?r:(f|0)>(l|0)){if(q){c[a>>2]=h;c[i>>2]=g;s=g;break}c[a>>2]=d;c[e>>2]=g;p=c[m>>2]|0;n=c[o>>2]|0;t=(p|0)<1;if(t^(n|0)<1?t:(p|0)>(n|0)){c[e>>2]=h;c[i>>2]=g;s=g}else s=h}else if(q){c[e>>2]=h;c[i>>2]=d;n=c[m>>2]|0;p=c[o>>2]|0;t=(n|0)<1;if(t^(p|0)<1?t:(n|0)>(p|0)){c[a>>2]=h;c[e>>2]=g;s=d}else s=d}else s=h;while(0);h=a+12|0;if((h|0)==(b|0)){k=1;return k|0}else{u=s;v=0;w=h;x=i}while(1){i=c[w>>2]|0;h=j+(i<<2)|0;s=c[h>>2]|0;d=c[j+(u<<2)>>2]|0;g=(s|0)<1;if(g^(d|0)<1?g:(s|0)>(d|0)){d=u;s=w;g=x;while(1){c[s>>2]=d;if((g|0)==(a|0)){y=a;break}e=g+-4|0;d=c[e>>2]|0;o=c[h>>2]|0;m=c[j+(d<<2)>>2]|0;q=(o|0)<1;if(!(q^(m|0)<1?q:(o|0)>(m|0))){y=g;break}else{m=g;g=e;s=m}}c[y>>2]=i;s=v+1|0;if((s|0)==8){z=w;break}else A=s}else A=v;s=w+4|0;if((s|0)==(b|0)){k=1;B=30;break}g=w;u=c[w>>2]|0;v=A;w=s;x=g}if((B|0)==30)return k|0;k=(z+4|0)==(b|0);return k|0}}return 0}function Zm(a){a=a|0;so(a);return}function _m(b,d){b=b|0;d=d|0;var e=0,f=0,h=0,i=0,j=0,k=0,l=0.0,m=0,n=0.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;if(a[d+38>>0]|0)return 1;e=c[d+12>>2]|0;f=fb[c[(c[e>>2]|0)+12>>2]&7](e)|0;if((f|0)<=0)return 1;e=d+24|0;h=b+4|0;i=0;do{j=c[e>>2]|0;k=c[h>>2]|0;l=+g[k+36>>2];m=(~~(+g[j+(i*28|0)+4>>2]*l+-1.0+2048.0)>>>0<<20)+(~~((+g[j+(i*28|0)>>2]*l+-1.0)*256.0+524288.0)>>>0)|0;n=+g[j+(i*28|0)+12>>2]*l+1.0+2048.0;o=(+g[j+(i*28|0)+8>>2]*l+1.0)*256.0+524288.0;j=c[k+200>>2]|0;p=c[k+204>>2]|0;k=j;q=p<<3>>3;a:while(1){r=q;while(1){if(!r){s=k;break a}t=(r|0)/2|0;if((c[k+(t<<3)+4>>2]|0)>>>0>>0){u=t;v=r;break}else r=t}k=k+(u+1<<3)|0;q=v+-1-u|0}q=(~~n>>>0<<20)+(~~o>>>0)|0;k=s;r=j+(p<<3)-s>>3;b:while(1){t=r;while(1){if(!t){w=k;break b}x=(t|0)/2|0;if((c[k+(x<<3)+4>>2]|0)>>>0>q>>>0)t=x;else{y=x;z=t;break}}k=k+(y+1<<3)|0;r=z+-1-y|0}r=m&1048575;k=q&1048575;c:do if(s>>>0>>0){p=s;while(1){j=c[p+4>>2]&1048575;t=p;p=p+8|0;if(j>>>0>>0|j>>>0>k>>>0)if(p>>>0>>0){p=p;continue}else break;j=c[t>>2]|0;if((j|0)<=-1)break c;tb[c[(c[b>>2]|0)+20>>2]&31](b,d,i,j);if(p>>>0>=w>>>0)break}}while(0);i=i+1|0}while((i|0)!=(f|0));return 1}function $m(a,b){a=a|0;b=b|0;return 0}function an(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.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;h=i;i=i+48|0;j=h+24|0;l=h;m=c[b+36>>2]|0;n=b+4|0;if(((m|0)!=0?(o=c[n>>2]|0,(c[(c[o+88>>2]|0)+(f<<2)>>2]&65536|0)!=0):0)?!(pb[c[(c[m>>2]|0)+12>>2]&7](m,d,o,f)|0):0){i=h;return}o=c[d+8>>2]|0;m=c[n>>2]|0;p=c[m+96>>2]|0;q=c[p+(f<<3)>>2]|0;r=c[p+(f<<3)+4>>2]|0;p=c[m+104>>2]|0;s=+g[p+(f<<3)>>2];t=+g[p+(f<<3)+4>>2];if(!(c[m+24>>2]|0)){u=(c[k>>2]=q,+g[k>>2]);v=u-+g[o+28>>2];w=(c[k>>2]=r,+g[k>>2]);x=w-+g[o+32>>2];y=+g[o+40>>2];z=+g[o+36>>2];A=v*y+x*z;B=y*x-v*z;m=c[d+12>>2]|0;if(!(c[m+4>>2]|0)){v=+g[o+44>>2];x=A-v;C=+g[o+48>>2];D=B-C;E=x*y-D*z;F=y*D+x*z;z=+g[o+24>>2];x=+g[o+20>>2];G=C+(z*F-E*x);H=v+(z*E+x*F);I=z;J=x}else{G=B;H=A;I=+g[o+24>>2];J=+g[o+20>>2]}A=G*I+H*J+ +g[o+16>>2];g[l>>2]=+g[o+12>>2]+(H*I-G*J);g[l+4>>2]=A;K=u;L=w;M=m}else{c[l>>2]=q;c[l+4>>2]=r;w=(c[k>>2]=q,+g[k>>2]);K=w;L=(c[k>>2]=r,+g[k>>2]);M=c[d+12>>2]|0}w=+g[b+8>>2];d=l+8|0;g[d>>2]=K+s*w;r=l+12|0;g[r>>2]=L+t*w;g[l+16>>2]=1.0;if(!(sb[c[(c[M>>2]|0)+24>>2]&15](M,j,l,o+12|0,e)|0)){i=h;return}w=+g[j+8>>2];u=1.0-w;e=b+12|0;A=+g[e>>2];J=A*(+g[j>>2]*.004999999888241291+(+g[l>>2]*u+w*+g[d>>2])-K);K=A*(+g[j+4>>2]*.004999999888241291+(u*+g[l+4>>2]+w*+g[r>>2])-L);r=c[(c[n>>2]|0)+104>>2]|0;g[r+(f<<3)>>2]=J;g[r+(f<<3)+4>>2]=K;r=c[n>>2]|0;L=+g[r+32>>2]*.75;w=+g[e>>2]*(L*(+g[r+320>>2]*L));L=(s-J)*w;J=(t-K)*w;if(!(L!=0.0|J!=0.0)){i=h;return}if(c[(c[r+88>>2]|0)+(f<<2)>>2]&4){i=h;return}e=r+21|0;n=r+112|0;if(!(a[e>>0]|0)){xp(c[n>>2]|0,0,c[r+44>>2]<<3|0)|0;a[e>>0]=1}e=c[n>>2]|0;n=e+(f<<3)|0;g[n>>2]=L+ +g[n>>2];n=e+(f<<3)+4|0;g[n>>2]=J+ +g[n>>2];i=h;return}function bn(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+32|0;h=g;j=rb[c[f>>2]&31](b,a)|0;k=rb[c[f>>2]&31](d,b)|0;do if(j){if(k){c[h>>2]=c[a>>2];c[h+4>>2]=c[a+4>>2];c[h+8>>2]=c[a+8>>2];c[h+12>>2]=c[a+12>>2];c[h+16>>2]=c[a+16>>2];c[h+20>>2]=c[a+20>>2];c[h+24>>2]=c[a+24>>2];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];c[a+16>>2]=c[d+16>>2];c[a+20>>2]=c[d+20>>2];c[a+24>>2]=c[d+24>>2];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];c[d+16>>2]=c[h+16>>2];c[d+20>>2]=c[h+20>>2];c[d+24>>2]=c[h+24>>2];l=1;break};c[h>>2]=c[a>>2];c[h+4>>2]=c[a+4>>2];c[h+8>>2]=c[a+8>>2];c[h+12>>2]=c[a+12>>2];c[h+16>>2]=c[a+16>>2];c[h+20>>2]=c[a+20>>2];c[h+24>>2]=c[a+24>>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[a+16>>2]=c[b+16>>2];c[a+20>>2]=c[b+20>>2];c[a+24>>2]=c[b+24>>2];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];c[b+16>>2]=c[h+16>>2];c[b+20>>2]=c[h+20>>2];c[b+24>>2]=c[h+24>>2];if(rb[c[f>>2]&31](d,b)|0){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];c[h+16>>2]=c[b+16>>2];c[h+20>>2]=c[b+20>>2];c[h+24>>2]=c[b+24>>2];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[b+16>>2]=c[d+16>>2];c[b+20>>2]=c[d+20>>2];c[b+24>>2]=c[d+24>>2];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];c[d+16>>2]=c[h+16>>2];c[d+20>>2]=c[h+20>>2];c[d+24>>2]=c[h+24>>2];l=2}else l=1}else if(k){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];c[h+16>>2]=c[b+16>>2];c[h+20>>2]=c[b+20>>2];c[h+24>>2]=c[b+24>>2];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[b+16>>2]=c[d+16>>2];c[b+20>>2]=c[d+20>>2];c[b+24>>2]=c[d+24>>2];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];c[d+16>>2]=c[h+16>>2];c[d+20>>2]=c[h+20>>2];c[d+24>>2]=c[h+24>>2];if(rb[c[f>>2]&31](b,a)|0){c[h>>2]=c[a>>2];c[h+4>>2]=c[a+4>>2];c[h+8>>2]=c[a+8>>2];c[h+12>>2]=c[a+12>>2];c[h+16>>2]=c[a+16>>2];c[h+20>>2]=c[a+20>>2];c[h+24>>2]=c[a+24>>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[a+16>>2]=c[b+16>>2];c[a+20>>2]=c[b+20>>2];c[a+24>>2]=c[b+24>>2];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];c[b+16>>2]=c[h+16>>2];c[b+20>>2]=c[h+20>>2];c[b+24>>2]=c[h+24>>2];l=2}else l=1}else l=0;while(0);if(!(rb[c[f>>2]&31](e,d)|0)){m=l;i=g;return m|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];c[h+16>>2]=c[d+16>>2];c[h+20>>2]=c[d+20>>2];c[h+24>>2]=c[d+24>>2];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];c[d+16>>2]=c[e+16>>2];c[d+20>>2]=c[e+20>>2];c[d+24>>2]=c[e+24>>2];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];c[e+16>>2]=c[h+16>>2];c[e+20>>2]=c[h+20>>2];c[e+24>>2]=c[h+24>>2];if(!(rb[c[f>>2]&31](d,b)|0)){m=l+1|0;i=g;return m|0};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];c[h+16>>2]=c[b+16>>2];c[h+20>>2]=c[b+20>>2];c[h+24>>2]=c[b+24>>2];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[b+16>>2]=c[d+16>>2];c[b+20>>2]=c[d+20>>2];c[b+24>>2]=c[d+24>>2];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];c[d+16>>2]=c[h+16>>2];c[d+20>>2]=c[h+20>>2];c[d+24>>2]=c[h+24>>2];if(!(rb[c[f>>2]&31](b,a)|0)){m=l+2|0;i=g;return m|0};c[h>>2]=c[a>>2];c[h+4>>2]=c[a+4>>2];c[h+8>>2]=c[a+8>>2];c[h+12>>2]=c[a+12>>2];c[h+16>>2]=c[a+16>>2];c[h+20>>2]=c[a+20>>2];c[h+24>>2]=c[a+24>>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[a+16>>2]=c[b+16>>2];c[a+20>>2]=c[b+20>>2];c[a+24>>2]=c[b+24>>2];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];c[b+16>>2]=c[h+16>>2];c[b+20>>2]=c[h+20>>2];c[b+24>>2]=c[h+24>>2];m=l+3|0;i=g;return m|0}function cn(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,l=0,m=0,n=0;e=i;i=i+64|0;f=e+28|0;g=e;h=a+56|0;j=a+28|0;k=rb[c[d>>2]&31](j,a)|0;l=rb[c[d>>2]&31](h,j)|0;do if(k){if(l){c[f>>2]=c[a>>2];c[f+4>>2]=c[a+4>>2];c[f+8>>2]=c[a+8>>2];c[f+12>>2]=c[a+12>>2];c[f+16>>2]=c[a+16>>2];c[f+20>>2]=c[a+20>>2];c[f+24>>2]=c[a+24>>2];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];c[a+16>>2]=c[h+16>>2];c[a+20>>2]=c[h+20>>2];c[a+24>>2]=c[h+24>>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];c[h+16>>2]=c[f+16>>2];c[h+20>>2]=c[f+20>>2];c[h+24>>2]=c[f+24>>2];break};c[f>>2]=c[a>>2];c[f+4>>2]=c[a+4>>2];c[f+8>>2]=c[a+8>>2];c[f+12>>2]=c[a+12>>2];c[f+16>>2]=c[a+16>>2];c[f+20>>2]=c[a+20>>2];c[f+24>>2]=c[a+24>>2];c[a>>2]=c[j>>2];c[a+4>>2]=c[j+4>>2];c[a+8>>2]=c[j+8>>2];c[a+12>>2]=c[j+12>>2];c[a+16>>2]=c[j+16>>2];c[a+20>>2]=c[j+20>>2];c[a+24>>2]=c[j+24>>2];c[j>>2]=c[f>>2];c[j+4>>2]=c[f+4>>2];c[j+8>>2]=c[f+8>>2];c[j+12>>2]=c[f+12>>2];c[j+16>>2]=c[f+16>>2];c[j+20>>2]=c[f+20>>2];c[j+24>>2]=c[f+24>>2];if(rb[c[d>>2]&31](h,j)|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[f+20>>2]=c[j+20>>2];c[f+24>>2]=c[j+24>>2];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[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];c[h+16>>2]=c[f+16>>2];c[h+20>>2]=c[f+20>>2];c[h+24>>2]=c[f+24>>2]}}else if(l?(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[f+20>>2]=c[j+20>>2],c[f+24>>2]=c[j+24>>2],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[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],c[h+16>>2]=c[f+16>>2],c[h+20>>2]=c[f+20>>2],c[h+24>>2]=c[f+24>>2],rb[c[d>>2]&31](j,a)|0):0){c[f>>2]=c[a>>2];c[f+4>>2]=c[a+4>>2];c[f+8>>2]=c[a+8>>2];c[f+12>>2]=c[a+12>>2];c[f+16>>2]=c[a+16>>2];c[f+20>>2]=c[a+20>>2];c[f+24>>2]=c[a+24>>2];c[a>>2]=c[j>>2];c[a+4>>2]=c[j+4>>2];c[a+8>>2]=c[j+8>>2];c[a+12>>2]=c[j+12>>2];c[a+16>>2]=c[j+16>>2];c[a+20>>2]=c[j+20>>2];c[a+24>>2]=c[j+24>>2];c[j>>2]=c[f>>2];c[j+4>>2]=c[f+4>>2];c[j+8>>2]=c[f+8>>2];c[j+12>>2]=c[f+12>>2];c[j+16>>2]=c[f+16>>2];c[j+20>>2]=c[f+20>>2];c[j+24>>2]=c[f+24>>2]}while(0);f=a+84|0;if((f|0)==(b|0)){i=e;return}j=f;f=h;while(1){if(rb[c[d>>2]&31](j,f)|0){c[g>>2]=c[j>>2];c[g+4>>2]=c[j+4>>2];c[g+8>>2]=c[j+8>>2];c[g+12>>2]=c[j+12>>2];c[g+16>>2]=c[j+16>>2];c[g+20>>2]=c[j+20>>2];c[g+24>>2]=c[j+24>>2];h=j;l=f;while(1){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];c[h+16>>2]=c[l+16>>2];c[h+20>>2]=c[l+20>>2];c[h+24>>2]=c[l+24>>2];if((l|0)==(a|0)){m=l;break}k=l+-28|0;if(rb[c[d>>2]&31](g,k)|0){n=l;l=k;h=n}else{m=l;break}}c[m>>2]=c[g>>2];c[m+4>>2]=c[g+4>>2];c[m+8>>2]=c[g+8>>2];c[m+12>>2]=c[g+12>>2];c[m+16>>2]=c[g+16>>2];c[m+20>>2]=c[g+20>>2];c[m+24>>2]=c[g+24>>2]}l=j+28|0;if((l|0)==(b|0))break;else{h=j;j=l;f=h}}i=e;return}function dn(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,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;e=i;i=i+64|0;f=e+28|0;g=e;switch((b-a|0)/28|0|0){case 2:{h=b+-28|0;if(!(rb[c[d>>2]&31](h,a)|0)){j=1;i=e;return j|0};c[f>>2]=c[a>>2];c[f+4>>2]=c[a+4>>2];c[f+8>>2]=c[a+8>>2];c[f+12>>2]=c[a+12>>2];c[f+16>>2]=c[a+16>>2];c[f+20>>2]=c[a+20>>2];c[f+24>>2]=c[a+24>>2];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];c[a+16>>2]=c[h+16>>2];c[a+20>>2]=c[h+20>>2];c[a+24>>2]=c[h+24>>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];c[h+16>>2]=c[f+16>>2];c[h+20>>2]=c[f+20>>2];c[h+24>>2]=c[f+24>>2];j=1;i=e;return j|0}case 3:{h=a+28|0;k=b+-28|0;l=rb[c[d>>2]&31](h,a)|0;m=rb[c[d>>2]&31](k,h)|0;if(!l){if(!m){j=1;i=e;return j|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];c[f+16>>2]=c[h+16>>2];c[f+20>>2]=c[h+20>>2];c[f+24>>2]=c[h+24>>2];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[h+16>>2]=c[k+16>>2];c[h+20>>2]=c[k+20>>2];c[h+24>>2]=c[k+24>>2];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[k+16>>2]=c[f+16>>2];c[k+20>>2]=c[f+20>>2];c[k+24>>2]=c[f+24>>2];if(!(rb[c[d>>2]&31](h,a)|0)){j=1;i=e;return j|0};c[f>>2]=c[a>>2];c[f+4>>2]=c[a+4>>2];c[f+8>>2]=c[a+8>>2];c[f+12>>2]=c[a+12>>2];c[f+16>>2]=c[a+16>>2];c[f+20>>2]=c[a+20>>2];c[f+24>>2]=c[a+24>>2];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];c[a+16>>2]=c[h+16>>2];c[a+20>>2]=c[h+20>>2];c[a+24>>2]=c[h+24>>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];c[h+16>>2]=c[f+16>>2];c[h+20>>2]=c[f+20>>2];c[h+24>>2]=c[f+24>>2];j=1;i=e;return j|0}if(m){c[f>>2]=c[a>>2];c[f+4>>2]=c[a+4>>2];c[f+8>>2]=c[a+8>>2];c[f+12>>2]=c[a+12>>2];c[f+16>>2]=c[a+16>>2];c[f+20>>2]=c[a+20>>2];c[f+24>>2]=c[a+24>>2];c[a>>2]=c[k>>2];c[a+4>>2]=c[k+4>>2];c[a+8>>2]=c[k+8>>2];c[a+12>>2]=c[k+12>>2];c[a+16>>2]=c[k+16>>2];c[a+20>>2]=c[k+20>>2];c[a+24>>2]=c[k+24>>2];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[k+16>>2]=c[f+16>>2];c[k+20>>2]=c[f+20>>2];c[k+24>>2]=c[f+24>>2];j=1;i=e;return j|0};c[f>>2]=c[a>>2];c[f+4>>2]=c[a+4>>2];c[f+8>>2]=c[a+8>>2];c[f+12>>2]=c[a+12>>2];c[f+16>>2]=c[a+16>>2];c[f+20>>2]=c[a+20>>2];c[f+24>>2]=c[a+24>>2];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];c[a+16>>2]=c[h+16>>2];c[a+20>>2]=c[h+20>>2];c[a+24>>2]=c[h+24>>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];c[h+16>>2]=c[f+16>>2];c[h+20>>2]=c[f+20>>2];c[h+24>>2]=c[f+24>>2];if(!(rb[c[d>>2]&31](k,h)|0)){j=1;i=e;return j|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];c[f+16>>2]=c[h+16>>2];c[f+20>>2]=c[h+20>>2];c[f+24>>2]=c[h+24>>2];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[h+16>>2]=c[k+16>>2];c[h+20>>2]=c[k+20>>2];c[h+24>>2]=c[k+24>>2];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[k+16>>2]=c[f+16>>2];c[k+20>>2]=c[f+20>>2];c[k+24>>2]=c[f+24>>2];j=1;i=e;return j|0}case 4:{bn(a,a+28|0,a+56|0,b+-28|0,d)|0;j=1;i=e;return j|0}case 5:{k=a+28|0;h=a+56|0;m=a+84|0;l=b+-28|0;bn(a,k,h,m,d)|0;if(!(rb[c[d>>2]&31](l,m)|0)){j=1;i=e;return j|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];c[f+16>>2]=c[m+16>>2];c[f+20>>2]=c[m+20>>2];c[f+24>>2]=c[m+24>>2];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];c[m+16>>2]=c[l+16>>2];c[m+20>>2]=c[l+20>>2];c[m+24>>2]=c[l+24>>2];c[l>>2]=c[f>>2];c[l+4>>2]=c[f+4>>2];c[l+8>>2]=c[f+8>>2];c[l+12>>2]=c[f+12>>2];c[l+16>>2]=c[f+16>>2];c[l+20>>2]=c[f+20>>2];c[l+24>>2]=c[f+24>>2];if(!(rb[c[d>>2]&31](m,h)|0)){j=1;i=e;return j|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];c[f+16>>2]=c[h+16>>2];c[f+20>>2]=c[h+20>>2];c[f+24>>2]=c[h+24>>2];c[h>>2]=c[m>>2];c[h+4>>2]=c[m+4>>2];c[h+8>>2]=c[m+8>>2];c[h+12>>2]=c[m+12>>2];c[h+16>>2]=c[m+16>>2];c[h+20>>2]=c[m+20>>2];c[h+24>>2]=c[m+24>>2];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];c[m+16>>2]=c[f+16>>2];c[m+20>>2]=c[f+20>>2];c[m+24>>2]=c[f+24>>2];if(!(rb[c[d>>2]&31](h,k)|0)){j=1;i=e;return j|0};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];c[f+16>>2]=c[k+16>>2];c[f+20>>2]=c[k+20>>2];c[f+24>>2]=c[k+24>>2];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];c[k+16>>2]=c[h+16>>2];c[k+20>>2]=c[h+20>>2];c[k+24>>2]=c[h+24>>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];c[h+16>>2]=c[f+16>>2];c[h+20>>2]=c[f+20>>2];c[h+24>>2]=c[f+24>>2];if(!(rb[c[d>>2]&31](k,a)|0)){j=1;i=e;return j|0};c[f>>2]=c[a>>2];c[f+4>>2]=c[a+4>>2];c[f+8>>2]=c[a+8>>2];c[f+12>>2]=c[a+12>>2];c[f+16>>2]=c[a+16>>2];c[f+20>>2]=c[a+20>>2];c[f+24>>2]=c[a+24>>2];c[a>>2]=c[k>>2];c[a+4>>2]=c[k+4>>2];c[a+8>>2]=c[k+8>>2];c[a+12>>2]=c[k+12>>2];c[a+16>>2]=c[k+16>>2];c[a+20>>2]=c[k+20>>2];c[a+24>>2]=c[k+24>>2];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[k+16>>2]=c[f+16>>2];c[k+20>>2]=c[f+20>>2];c[k+24>>2]=c[f+24>>2];j=1;i=e;return j|0}case 1:case 0:{j=1;i=e;return j|0}default:{k=a+56|0;h=a+28|0;m=rb[c[d>>2]&31](h,a)|0;l=rb[c[d>>2]&31](k,h)|0;do if(m){if(l){c[f>>2]=c[a>>2];c[f+4>>2]=c[a+4>>2];c[f+8>>2]=c[a+8>>2];c[f+12>>2]=c[a+12>>2];c[f+16>>2]=c[a+16>>2];c[f+20>>2]=c[a+20>>2];c[f+24>>2]=c[a+24>>2];c[a>>2]=c[k>>2];c[a+4>>2]=c[k+4>>2];c[a+8>>2]=c[k+8>>2];c[a+12>>2]=c[k+12>>2];c[a+16>>2]=c[k+16>>2];c[a+20>>2]=c[k+20>>2];c[a+24>>2]=c[k+24>>2];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[k+16>>2]=c[f+16>>2];c[k+20>>2]=c[f+20>>2];c[k+24>>2]=c[f+24>>2];break};c[f>>2]=c[a>>2];c[f+4>>2]=c[a+4>>2];c[f+8>>2]=c[a+8>>2];c[f+12>>2]=c[a+12>>2];c[f+16>>2]=c[a+16>>2];c[f+20>>2]=c[a+20>>2];c[f+24>>2]=c[a+24>>2];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];c[a+16>>2]=c[h+16>>2];c[a+20>>2]=c[h+20>>2];c[a+24>>2]=c[h+24>>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];c[h+16>>2]=c[f+16>>2];c[h+20>>2]=c[f+20>>2];c[h+24>>2]=c[f+24>>2];if(rb[c[d>>2]&31](k,h)|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];c[f+16>>2]=c[h+16>>2];c[f+20>>2]=c[h+20>>2];c[f+24>>2]=c[h+24>>2];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[h+16>>2]=c[k+16>>2];c[h+20>>2]=c[k+20>>2];c[h+24>>2]=c[k+24>>2];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[k+16>>2]=c[f+16>>2];c[k+20>>2]=c[f+20>>2];c[k+24>>2]=c[f+24>>2]}}else if(l?(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],c[f+16>>2]=c[h+16>>2],c[f+20>>2]=c[h+20>>2],c[f+24>>2]=c[h+24>>2],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[h+16>>2]=c[k+16>>2],c[h+20>>2]=c[k+20>>2],c[h+24>>2]=c[k+24>>2],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[k+16>>2]=c[f+16>>2],c[k+20>>2]=c[f+20>>2],c[k+24>>2]=c[f+24>>2],rb[c[d>>2]&31](h,a)|0):0){c[f>>2]=c[a>>2];c[f+4>>2]=c[a+4>>2];c[f+8>>2]=c[a+8>>2];c[f+12>>2]=c[a+12>>2];c[f+16>>2]=c[a+16>>2];c[f+20>>2]=c[a+20>>2];c[f+24>>2]=c[a+24>>2];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];c[a+16>>2]=c[h+16>>2];c[a+20>>2]=c[h+20>>2];c[a+24>>2]=c[h+24>>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];c[h+16>>2]=c[f+16>>2];c[h+20>>2]=c[f+20>>2];c[h+24>>2]=c[f+24>>2]}while(0);f=a+84|0;if((f|0)==(b|0)){j=1;i=e;return j|0}h=0;l=f;f=k;while(1){if(rb[c[d>>2]&31](l,f)|0){c[g>>2]=c[l>>2];c[g+4>>2]=c[l+4>>2];c[g+8>>2]=c[l+8>>2];c[g+12>>2]=c[l+12>>2];c[g+16>>2]=c[l+16>>2];c[g+20>>2]=c[l+20>>2];c[g+24>>2]=c[l+24>>2];k=l;m=f;while(1){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];c[k+16>>2]=c[m+16>>2];c[k+20>>2]=c[m+20>>2];c[k+24>>2]=c[m+24>>2];if((m|0)==(a|0)){n=m;break}o=m+-28|0;if(rb[c[d>>2]&31](g,o)|0){p=m;m=o;k=p}else{n=m;break}}c[n>>2]=c[g>>2];c[n+4>>2]=c[g+4>>2];c[n+8>>2]=c[g+8>>2];c[n+12>>2]=c[g+12>>2];c[n+16>>2]=c[g+16>>2];c[n+20>>2]=c[g+20>>2];c[n+24>>2]=c[g+24>>2];m=h+1|0;if((m|0)==8){q=l;break}else r=m}else r=h;m=l+28|0;if((m|0)==(b|0)){j=1;s=35;break}else{k=l;h=r;l=m;f=k}}if((s|0)==35){i=e;return j|0}j=(q+28|0)==(b|0);i=e;return j|0}}return 0}function en(a){a=a|0;so(a);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,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,y=0,z=0,A=0,B=0,C=0,D=0,E=0.0,F=0.0;f=i;i=i+32|0;h=f;j=f+16|0;k=f+8|0;l=a+4|0;m=(c[(c[l>>2]|0)+96>>2]|0)+(e<<3)|0;n=c[m+4>>2]|0;o=h;c[o>>2]=c[m>>2];c[o+4>>2]=n;n=c[b+12>>2]|0;o=b+8|0;qb[c[(c[n>>2]|0)+20>>2]&7](n,(c[o>>2]|0)+12|0,h,j,k,d);d=c[l>>2]|0;if(!(+g[j>>2]<+g[d+32>>2])){i=f;return}n=c[a+8>>2]|0;do if((n|0)!=0?(c[(c[d+88>>2]|0)+(e<<2)>>2]&65536|0)!=0:0)if(pb[c[(c[n>>2]|0)+12>>2]&7](n,b,d,e)|0){p=c[l>>2]|0;break}else{i=f;return}else p=d;while(0);d=c[o>>2]|0;q=+g[d+132>>2];r=+g[d+44>>2];s=+g[d+48>>2];t=q*(r*r+s*s);s=+g[d+140>>2]+t-t;if(!(c[(c[p+88>>2]|0)+(e<<2)>>2]&4)){t=+g[p+36>>2]*1.3333333730697632;u=t*(+g[p+28>>2]*t)}else u=0.0;o=k+4|0;t=+g[o>>2];r=+g[k>>2];v=(+g[h>>2]-+g[d+60>>2])*t-(+g[h+4>>2]-+g[d+64>>2])*r;w=(q>0.0?1.0/q:0.0)+u+v*((s>0.0?1.0/s:0.0)*v);h=p+232|0;n=p+236|0;a=c[n>>2]|0;m=p+240|0;x=c[m>>2]|0;if((a|0)>=(x|0)?(y=(x|0)==0?256:x<<1,(x|0)<(y|0)):0){x=p+244|0;z=Sn(c[x>>2]|0,y*28|0)|0;A=c[h>>2]|0;if(!A)B=h;else{Bp(z|0,A|0,(c[n>>2]|0)*28|0)|0;Tn(c[x>>2]|0,c[h>>2]|0,(c[m>>2]|0)*28|0);B=h}c[m>>2]=y;c[B>>2]=z;C=c[n>>2]|0;D=c[l>>2]|0;E=+g[k>>2];F=+g[o>>2]}else{C=a;D=p;E=r;F=t}c[n>>2]=C+1;n=c[h>>2]|0;c[n+(C*28|0)>>2]=e;c[n+(C*28|0)+4>>2]=d;c[n+(C*28|0)+8>>2]=b;g[n+(C*28|0)+12>>2]=1.0-+g[j>>2]*+g[D+36>>2];g[n+(C*28|0)+16>>2]=-E;g[n+(C*28|0)+20>>2]=-F;g[n+(C*28|0)+24>>2]=w>0.0?1.0/w:0.0;mm(c[l>>2]|0,e);i=f;return}function gn(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,k=0,l=0,m=0,n=0,o=0,p=0,q=0;h=rb[c[g>>2]&31](b,a)|0;i=rb[c[g>>2]&31](d,b)|0;do if(h){j=a;k=c[j>>2]|0;l=c[j+4>>2]|0;if(i){j=d;m=c[j+4>>2]|0;n=a;c[n>>2]=c[j>>2];c[n+4>>2]=m;m=d;c[m>>2]=k;c[m+4>>2]=l;o=1;break}m=b;n=c[m+4>>2]|0;j=a;c[j>>2]=c[m>>2];c[j+4>>2]=n;n=b;c[n>>2]=k;c[n+4>>2]=l;if(rb[c[g>>2]&31](d,b)|0){l=b;n=c[l>>2]|0;k=c[l+4>>2]|0;l=d;j=c[l+4>>2]|0;m=b;c[m>>2]=c[l>>2];c[m+4>>2]=j;j=d;c[j>>2]=n;c[j+4>>2]=k;o=2}else o=1}else if(i){k=b;j=c[k>>2]|0;n=c[k+4>>2]|0;k=d;m=c[k+4>>2]|0;l=b;c[l>>2]=c[k>>2];c[l+4>>2]=m;m=d;c[m>>2]=j;c[m+4>>2]=n;if(rb[c[g>>2]&31](b,a)|0){n=a;m=c[n>>2]|0;j=c[n+4>>2]|0;n=b;l=c[n+4>>2]|0;k=a;c[k>>2]=c[n>>2];c[k+4>>2]=l;l=b;c[l>>2]=m;c[l+4>>2]=j;o=2}else o=1}else o=0;while(0);if(rb[c[g>>2]&31](e,d)|0){i=d;h=c[i>>2]|0;j=c[i+4>>2]|0;i=e;l=c[i+4>>2]|0;m=d;c[m>>2]=c[i>>2];c[m+4>>2]=l;l=e;c[l>>2]=h;c[l+4>>2]=j;j=o+1|0;if(rb[c[g>>2]&31](d,b)|0){l=b;h=c[l>>2]|0;m=c[l+4>>2]|0;l=d;i=c[l+4>>2]|0;k=b;c[k>>2]=c[l>>2];c[k+4>>2]=i;i=d;c[i>>2]=h;c[i+4>>2]=m;if(rb[c[g>>2]&31](b,a)|0){m=a;i=c[m>>2]|0;h=c[m+4>>2]|0;m=b;k=c[m+4>>2]|0;l=a;c[l>>2]=c[m>>2];c[l+4>>2]=k;k=b;c[k>>2]=i;c[k+4>>2]=h;p=o+3|0}else p=o+2|0}else p=j}else p=o;if(!(rb[c[g>>2]&31](f,e)|0)){q=p;return q|0}o=e;j=c[o>>2]|0;h=c[o+4>>2]|0;o=f;k=c[o+4>>2]|0;i=e;c[i>>2]=c[o>>2];c[i+4>>2]=k;k=f;c[k>>2]=j;c[k+4>>2]=h;if(!(rb[c[g>>2]&31](e,d)|0)){q=p+1|0;return q|0}h=d;k=c[h>>2]|0;j=c[h+4>>2]|0;h=e;f=c[h+4>>2]|0;i=d;c[i>>2]=c[h>>2];c[i+4>>2]=f;f=e;c[f>>2]=k;c[f+4>>2]=j;if(!(rb[c[g>>2]&31](d,b)|0)){q=p+2|0;return q|0}j=b;f=c[j>>2]|0;k=c[j+4>>2]|0;j=d;e=c[j+4>>2]|0;i=b;c[i>>2]=c[j>>2];c[i+4>>2]=e;e=d;c[e>>2]=f;c[e+4>>2]=k;if(!(rb[c[g>>2]&31](b,a)|0)){q=p+3|0;return q|0}g=a;k=c[g>>2]|0;e=c[g+4>>2]|0;g=b;f=c[g+4>>2]|0;d=a;c[d>>2]=c[g>>2];c[d+4>>2]=f;f=b;c[f>>2]=k;c[f+4>>2]=e;q=p+4|0;return q|0}function hn(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,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+16|0;f=e;switch(b-a>>3|0){case 2:{g=b+-8|0;if(!(rb[c[d>>2]&31](g,a)|0)){h=1;i=e;return h|0}j=a;k=c[j>>2]|0;l=c[j+4>>2]|0;j=g;m=c[j+4>>2]|0;n=a;c[n>>2]=c[j>>2];c[n+4>>2]=m;m=g;c[m>>2]=k;c[m+4>>2]=l;h=1;i=e;return h|0}case 3:{l=a+8|0;m=b+-8|0;k=rb[c[d>>2]&31](l,a)|0;g=rb[c[d>>2]&31](m,l)|0;if(!k){if(!g){h=1;i=e;return h|0}k=l;n=c[k>>2]|0;j=c[k+4>>2]|0;k=m;o=c[k+4>>2]|0;p=l;c[p>>2]=c[k>>2];c[p+4>>2]=o;o=m;c[o>>2]=n;c[o+4>>2]=j;if(!(rb[c[d>>2]&31](l,a)|0)){h=1;i=e;return h|0}j=a;o=c[j>>2]|0;n=c[j+4>>2]|0;j=l;p=c[j+4>>2]|0;k=a;c[k>>2]=c[j>>2];c[k+4>>2]=p;p=l;c[p>>2]=o;c[p+4>>2]=n;h=1;i=e;return h|0}n=a;p=c[n>>2]|0;o=c[n+4>>2]|0;if(g){g=m;n=c[g+4>>2]|0;k=a;c[k>>2]=c[g>>2];c[k+4>>2]=n;n=m;c[n>>2]=p;c[n+4>>2]=o;h=1;i=e;return h|0}n=l;k=c[n+4>>2]|0;g=a;c[g>>2]=c[n>>2];c[g+4>>2]=k;k=l;c[k>>2]=p;c[k+4>>2]=o;if(!(rb[c[d>>2]&31](m,l)|0)){h=1;i=e;return h|0}o=l;k=c[o>>2]|0;p=c[o+4>>2]|0;o=m;g=c[o+4>>2]|0;n=l;c[n>>2]=c[o>>2];c[n+4>>2]=g;g=m;c[g>>2]=k;c[g+4>>2]=p;h=1;i=e;return h|0}case 4:{p=a+8|0;g=a+16|0;k=b+-8|0;m=rb[c[d>>2]&31](p,a)|0;n=rb[c[d>>2]&31](g,p)|0;do if(m){o=a;l=c[o>>2]|0;j=c[o+4>>2]|0;if(n){o=g;q=c[o+4>>2]|0;r=a;c[r>>2]=c[o>>2];c[r+4>>2]=q;q=g;c[q>>2]=l;c[q+4>>2]=j;break}q=p;r=c[q+4>>2]|0;o=a;c[o>>2]=c[q>>2];c[o+4>>2]=r;r=p;c[r>>2]=l;c[r+4>>2]=j;if(rb[c[d>>2]&31](g,p)|0){j=p;r=c[j>>2]|0;l=c[j+4>>2]|0;j=g;o=c[j+4>>2]|0;q=p;c[q>>2]=c[j>>2];c[q+4>>2]=o;o=g;c[o>>2]=r;c[o+4>>2]=l}}else if(n?(l=p,o=c[l>>2]|0,r=c[l+4>>2]|0,l=g,q=c[l+4>>2]|0,j=p,c[j>>2]=c[l>>2],c[j+4>>2]=q,q=g,c[q>>2]=o,c[q+4>>2]=r,rb[c[d>>2]&31](p,a)|0):0){r=a;q=c[r>>2]|0;o=c[r+4>>2]|0;r=p;j=c[r+4>>2]|0;l=a;c[l>>2]=c[r>>2];c[l+4>>2]=j;j=p;c[j>>2]=q;c[j+4>>2]=o}while(0);if(!(rb[c[d>>2]&31](k,g)|0)){h=1;i=e;return h|0}n=g;m=c[n>>2]|0;o=c[n+4>>2]|0;n=k;j=c[n+4>>2]|0;q=g;c[q>>2]=c[n>>2];c[q+4>>2]=j;j=k;c[j>>2]=m;c[j+4>>2]=o;if(!(rb[c[d>>2]&31](g,p)|0)){h=1;i=e;return h|0}o=p;j=c[o>>2]|0;m=c[o+4>>2]|0;o=g;k=c[o+4>>2]|0;q=p;c[q>>2]=c[o>>2];c[q+4>>2]=k;k=g;c[k>>2]=j;c[k+4>>2]=m;if(!(rb[c[d>>2]&31](p,a)|0)){h=1;i=e;return h|0}m=a;k=c[m>>2]|0;j=c[m+4>>2]|0;m=p;g=c[m+4>>2]|0;q=a;c[q>>2]=c[m>>2];c[q+4>>2]=g;g=p;c[g>>2]=k;c[g+4>>2]=j;h=1;i=e;return h|0}case 5:{gn(a,a+8|0,a+16|0,a+24|0,b+-8|0,d)|0;h=1;i=e;return h|0}case 1:case 0:{h=1;i=e;return h|0}default:{j=a+16|0;g=a+8|0;k=rb[c[d>>2]&31](g,a)|0;p=rb[c[d>>2]&31](j,g)|0;do if(k){q=a;m=c[q>>2]|0;o=c[q+4>>2]|0;if(p){q=j;n=c[q+4>>2]|0;l=a;c[l>>2]=c[q>>2];c[l+4>>2]=n;n=j;c[n>>2]=m;c[n+4>>2]=o;break}n=g;l=c[n+4>>2]|0;q=a;c[q>>2]=c[n>>2];c[q+4>>2]=l;l=g;c[l>>2]=m;c[l+4>>2]=o;if(rb[c[d>>2]&31](j,g)|0){o=g;l=c[o>>2]|0;m=c[o+4>>2]|0;o=j;q=c[o+4>>2]|0;n=g;c[n>>2]=c[o>>2];c[n+4>>2]=q;q=j;c[q>>2]=l;c[q+4>>2]=m}}else if(p?(m=g,q=c[m>>2]|0,l=c[m+4>>2]|0,m=j,n=c[m+4>>2]|0,o=g,c[o>>2]=c[m>>2],c[o+4>>2]=n,n=j,c[n>>2]=q,c[n+4>>2]=l,rb[c[d>>2]&31](g,a)|0):0){l=a;n=c[l>>2]|0;q=c[l+4>>2]|0;l=g;o=c[l+4>>2]|0;m=a;c[m>>2]=c[l>>2];c[m+4>>2]=o;o=g;c[o>>2]=n;c[o+4>>2]=q}while(0);g=a+24|0;if((g|0)==(b|0)){h=1;i=e;return h|0}else{s=0;t=g;u=j}while(1){if(rb[c[d>>2]&31](t,u)|0){j=t;g=c[j+4>>2]|0;p=f;c[p>>2]=c[j>>2];c[p+4>>2]=g;g=t;p=u;while(1){j=p;k=c[j+4>>2]|0;q=g;c[q>>2]=c[j>>2];c[q+4>>2]=k;if((p|0)==(a|0)){v=p;break}k=p+-8|0;if(rb[c[d>>2]&31](f,k)|0){q=p;p=k;g=q}else{v=p;break}}p=f;g=c[p+4>>2]|0;q=v;c[q>>2]=c[p>>2];c[q+4>>2]=g;g=s+1|0;if((g|0)==8){w=t;break}else x=g}else x=s;g=t+8|0;if((g|0)==(b|0)){h=1;y=41;break}else{q=t;s=x;t=g;u=q}}if((y|0)==41){i=e;return h|0}h=(w+8|0)==(b|0);i=e;return h|0}}return 0}function jn(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,k=0,l=0,m=0,n=0,o=0,p=0,q=0;h=rb[c[g>>2]&31](b,a)|0;i=rb[c[g>>2]&31](d,b)|0;do if(h){j=a;k=c[j>>2]|0;l=c[j+4>>2]|0;if(i){j=d;m=c[j+4>>2]|0;n=a;c[n>>2]=c[j>>2];c[n+4>>2]=m;m=d;c[m>>2]=k;c[m+4>>2]=l;o=1;break}m=b;n=c[m+4>>2]|0;j=a;c[j>>2]=c[m>>2];c[j+4>>2]=n;n=b;c[n>>2]=k;c[n+4>>2]=l;if(rb[c[g>>2]&31](d,b)|0){l=b;n=c[l>>2]|0;k=c[l+4>>2]|0;l=d;j=c[l+4>>2]|0;m=b;c[m>>2]=c[l>>2];c[m+4>>2]=j;j=d;c[j>>2]=n;c[j+4>>2]=k;o=2}else o=1}else if(i){k=b;j=c[k>>2]|0;n=c[k+4>>2]|0;k=d;m=c[k+4>>2]|0;l=b;c[l>>2]=c[k>>2];c[l+4>>2]=m;m=d;c[m>>2]=j;c[m+4>>2]=n;if(rb[c[g>>2]&31](b,a)|0){n=a;m=c[n>>2]|0;j=c[n+4>>2]|0;n=b;l=c[n+4>>2]|0;k=a;c[k>>2]=c[n>>2];c[k+4>>2]=l;l=b;c[l>>2]=m;c[l+4>>2]=j;o=2}else o=1}else o=0;while(0);if(rb[c[g>>2]&31](e,d)|0){i=d;h=c[i>>2]|0;j=c[i+4>>2]|0;i=e;l=c[i+4>>2]|0;m=d;c[m>>2]=c[i>>2];c[m+4>>2]=l;l=e;c[l>>2]=h;c[l+4>>2]=j;j=o+1|0;if(rb[c[g>>2]&31](d,b)|0){l=b;h=c[l>>2]|0;m=c[l+4>>2]|0;l=d;i=c[l+4>>2]|0;k=b;c[k>>2]=c[l>>2];c[k+4>>2]=i;i=d;c[i>>2]=h;c[i+4>>2]=m;if(rb[c[g>>2]&31](b,a)|0){m=a;i=c[m>>2]|0;h=c[m+4>>2]|0;m=b;k=c[m+4>>2]|0;l=a;c[l>>2]=c[m>>2];c[l+4>>2]=k;k=b;c[k>>2]=i;c[k+4>>2]=h;p=o+3|0}else p=o+2|0}else p=j}else p=o;if(!(rb[c[g>>2]&31](f,e)|0)){q=p;return q|0}o=e;j=c[o>>2]|0;h=c[o+4>>2]|0;o=f;k=c[o+4>>2]|0;i=e;c[i>>2]=c[o>>2];c[i+4>>2]=k;k=f;c[k>>2]=j;c[k+4>>2]=h;if(!(rb[c[g>>2]&31](e,d)|0)){q=p+1|0;return q|0}h=d;k=c[h>>2]|0;j=c[h+4>>2]|0;h=e;f=c[h+4>>2]|0;i=d;c[i>>2]=c[h>>2];c[i+4>>2]=f;f=e;c[f>>2]=k;c[f+4>>2]=j;if(!(rb[c[g>>2]&31](d,b)|0)){q=p+2|0;return q|0}j=b;f=c[j>>2]|0;k=c[j+4>>2]|0;j=d;e=c[j+4>>2]|0;i=b;c[i>>2]=c[j>>2];c[i+4>>2]=e;e=d;c[e>>2]=f;c[e+4>>2]=k;if(!(rb[c[g>>2]&31](b,a)|0)){q=p+3|0;return q|0}g=a;k=c[g>>2]|0;e=c[g+4>>2]|0;g=b;f=c[g+4>>2]|0;d=a;c[d>>2]=c[g>>2];c[d+4>>2]=f;f=b;c[f>>2]=k;c[f+4>>2]=e;q=p+4|0;return q|0}function kn(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,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+16|0;f=e;switch(b-a>>3|0){case 2:{g=b+-8|0;if(!(rb[c[d>>2]&31](g,a)|0)){h=1;i=e;return h|0}j=a;k=c[j>>2]|0;l=c[j+4>>2]|0;j=g;m=c[j+4>>2]|0;n=a;c[n>>2]=c[j>>2];c[n+4>>2]=m;m=g;c[m>>2]=k;c[m+4>>2]=l;h=1;i=e;return h|0}case 3:{l=a+8|0;m=b+-8|0;k=rb[c[d>>2]&31](l,a)|0;g=rb[c[d>>2]&31](m,l)|0;if(!k){if(!g){h=1;i=e;return h|0}k=l;n=c[k>>2]|0;j=c[k+4>>2]|0;k=m;o=c[k+4>>2]|0;p=l;c[p>>2]=c[k>>2];c[p+4>>2]=o;o=m;c[o>>2]=n;c[o+4>>2]=j;if(!(rb[c[d>>2]&31](l,a)|0)){h=1;i=e;return h|0}j=a;o=c[j>>2]|0;n=c[j+4>>2]|0;j=l;p=c[j+4>>2]|0;k=a;c[k>>2]=c[j>>2];c[k+4>>2]=p;p=l;c[p>>2]=o;c[p+4>>2]=n;h=1;i=e;return h|0}n=a;p=c[n>>2]|0;o=c[n+4>>2]|0;if(g){g=m;n=c[g+4>>2]|0;k=a;c[k>>2]=c[g>>2];c[k+4>>2]=n;n=m;c[n>>2]=p;c[n+4>>2]=o;h=1;i=e;return h|0}n=l;k=c[n+4>>2]|0;g=a;c[g>>2]=c[n>>2];c[g+4>>2]=k;k=l;c[k>>2]=p;c[k+4>>2]=o;if(!(rb[c[d>>2]&31](m,l)|0)){h=1;i=e;return h|0}o=l;k=c[o>>2]|0;p=c[o+4>>2]|0;o=m;g=c[o+4>>2]|0;n=l;c[n>>2]=c[o>>2];c[n+4>>2]=g;g=m;c[g>>2]=k;c[g+4>>2]=p;h=1;i=e;return h|0}case 4:{p=a+8|0;g=a+16|0;k=b+-8|0;m=rb[c[d>>2]&31](p,a)|0;n=rb[c[d>>2]&31](g,p)|0;do if(m){o=a;l=c[o>>2]|0;j=c[o+4>>2]|0;if(n){o=g;q=c[o+4>>2]|0;r=a;c[r>>2]=c[o>>2];c[r+4>>2]=q;q=g;c[q>>2]=l;c[q+4>>2]=j;break}q=p;r=c[q+4>>2]|0;o=a;c[o>>2]=c[q>>2];c[o+4>>2]=r;r=p;c[r>>2]=l;c[r+4>>2]=j;if(rb[c[d>>2]&31](g,p)|0){j=p;r=c[j>>2]|0;l=c[j+4>>2]|0;j=g;o=c[j+4>>2]|0;q=p;c[q>>2]=c[j>>2];c[q+4>>2]=o;o=g;c[o>>2]=r;c[o+4>>2]=l}}else if(n?(l=p,o=c[l>>2]|0,r=c[l+4>>2]|0,l=g,q=c[l+4>>2]|0,j=p,c[j>>2]=c[l>>2],c[j+4>>2]=q,q=g,c[q>>2]=o,c[q+4>>2]=r,rb[c[d>>2]&31](p,a)|0):0){r=a;q=c[r>>2]|0;o=c[r+4>>2]|0;r=p;j=c[r+4>>2]|0;l=a;c[l>>2]=c[r>>2];c[l+4>>2]=j;j=p;c[j>>2]=q;c[j+4>>2]=o}while(0);if(!(rb[c[d>>2]&31](k,g)|0)){h=1;i=e;return h|0}n=g;m=c[n>>2]|0;o=c[n+4>>2]|0;n=k;j=c[n+4>>2]|0;q=g;c[q>>2]=c[n>>2];c[q+4>>2]=j;j=k;c[j>>2]=m;c[j+4>>2]=o;if(!(rb[c[d>>2]&31](g,p)|0)){h=1;i=e;return h|0}o=p;j=c[o>>2]|0;m=c[o+4>>2]|0;o=g;k=c[o+4>>2]|0;q=p;c[q>>2]=c[o>>2];c[q+4>>2]=k;k=g;c[k>>2]=j;c[k+4>>2]=m;if(!(rb[c[d>>2]&31](p,a)|0)){h=1;i=e;return h|0}m=a;k=c[m>>2]|0;j=c[m+4>>2]|0;m=p;g=c[m+4>>2]|0;q=a;c[q>>2]=c[m>>2];c[q+4>>2]=g;g=p;c[g>>2]=k;c[g+4>>2]=j;h=1;i=e;return h|0}case 5:{jn(a,a+8|0,a+16|0,a+24|0,b+-8|0,d)|0;h=1;i=e;return h|0}case 1:case 0:{h=1;i=e;return h|0}default:{j=a+16|0;g=a+8|0;k=rb[c[d>>2]&31](g,a)|0;p=rb[c[d>>2]&31](j,g)|0;do if(k){q=a;m=c[q>>2]|0;o=c[q+4>>2]|0;if(p){q=j;n=c[q+4>>2]|0;l=a;c[l>>2]=c[q>>2];c[l+4>>2]=n;n=j;c[n>>2]=m;c[n+4>>2]=o;break}n=g;l=c[n+4>>2]|0;q=a;c[q>>2]=c[n>>2];c[q+4>>2]=l;l=g;c[l>>2]=m;c[l+4>>2]=o;if(rb[c[d>>2]&31](j,g)|0){o=g;l=c[o>>2]|0;m=c[o+4>>2]|0;o=j;q=c[o+4>>2]|0;n=g;c[n>>2]=c[o>>2];c[n+4>>2]=q;q=j;c[q>>2]=l;c[q+4>>2]=m}}else if(p?(m=g,q=c[m>>2]|0,l=c[m+4>>2]|0,m=j,n=c[m+4>>2]|0,o=g,c[o>>2]=c[m>>2],c[o+4>>2]=n,n=j,c[n>>2]=q,c[n+4>>2]=l,rb[c[d>>2]&31](g,a)|0):0){l=a;n=c[l>>2]|0;q=c[l+4>>2]|0;l=g;o=c[l+4>>2]|0;m=a;c[m>>2]=c[l>>2];c[m+4>>2]=o;o=g;c[o>>2]=n;c[o+4>>2]=q}while(0);g=a+24|0;if((g|0)==(b|0)){h=1;i=e;return h|0}else{s=0;t=g;u=j}while(1){if(rb[c[d>>2]&31](t,u)|0){j=t;g=c[j+4>>2]|0;p=f;c[p>>2]=c[j>>2];c[p+4>>2]=g;g=t;p=u;while(1){j=p;k=c[j+4>>2]|0;q=g;c[q>>2]=c[j>>2];c[q+4>>2]=k;if((p|0)==(a|0)){v=p;break}k=p+-8|0;if(rb[c[d>>2]&31](f,k)|0){q=p;p=k;g=q}else{v=p;break}}p=f;g=c[p+4>>2]|0;q=v;c[q>>2]=c[p>>2];c[q+4>>2]=g;g=s+1|0;if((g|0)==8){w=t;break}else x=g}else x=s;g=t+8|0;if((g|0)==(b|0)){h=1;y=41;break}else{q=t;s=x;t=g;u=q}}if((y|0)==41){i=e;return h|0}h=(w+8|0)==(b|0);i=e;return h|0}}return 0}function ln(a){a=a|0;return}function mn(a){a=a|0;so(a);return}function nn(a,b){a=a|0;b=b|0;return (c[(c[a+4>>2]|0)+(b<<2)>>2]&4096|0)!=0|0}function on(a,b,c){a=a|0;b=b|0;c=c|0;return 1}function pn(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return 1}function qn(a){a=a|0;so(a);return}function rn(a,b){a=a|0;b=b|0;return 1}function sn(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=c[a+4>>2]|0;a=(e|0)<=(b|0);b=(e|0)>(d|0);if(a|b)return b&a|0;else return 1;return 0}function tn(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;f=c[a+4>>2]|0;a=(f|0)>(b|0);b=(f|0)>(d|0);if((f|0)>(e|0)|(a|b))return (f|0)<=(e|0)|a&b^1|0;else return 0;return 0}function un(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;switch(e|0){case 1:{g=f;h=a;i=g+60|0;do{c[g>>2]=c[h>>2];g=g+4|0;h=h+4|0}while((g|0)<(i|0));return}case 2:{j=b+-60|0;if(rb[c[d>>2]&31](j,a)|0){g=f;h=j;i=g+60|0;do{c[g>>2]=c[h>>2];g=g+4|0;h=h+4|0}while((g|0)<(i|0));g=f+60|0;h=a;i=g+60|0;do{c[g>>2]=c[h>>2];g=g+4|0;h=h+4|0}while((g|0)<(i|0));return}else{g=f;h=a;i=g+60|0;do{c[g>>2]=c[h>>2];g=g+4|0;h=h+4|0}while((g|0)<(i|0));g=f+60|0;h=j;i=g+60|0;do{c[g>>2]=c[h>>2];g=g+4|0;h=h+4|0}while((g|0)<(i|0));return}break}case 0:return;default:{if((e|0)<9){if((a|0)==(b|0))return;g=f;h=a;i=g+60|0;do{c[g>>2]=c[h>>2];g=g+4|0;h=h+4|0}while((g|0)<(i|0));j=a+60|0;if((j|0)==(b|0))return;else{k=j;l=f}do{j=l;l=l+60|0;if(rb[c[d>>2]&31](k,j)|0){g=l;h=j;i=g+60|0;do{c[g>>2]=c[h>>2];g=g+4|0;h=h+4|0}while((g|0)<(i|0));a:do if((j|0)==(f|0))m=f;else{n=j;while(1){o=n;n=n+-60|0;if(!(rb[c[d>>2]&31](k,n)|0)){m=o;break a}g=o;h=n;i=g+60|0;do{c[g>>2]=c[h>>2];g=g+4|0;h=h+4|0}while((g|0)<(i|0));if((n|0)==(f|0)){m=f;break}}}while(0);g=m;h=k;i=g+60|0;do{c[g>>2]=c[h>>2];g=g+4|0;h=h+4|0}while((g|0)<(i|0))}else{g=l;h=k;i=g+60|0;do{c[g>>2]=c[h>>2];g=g+4|0;h=h+4|0}while((g|0)<(i|0))}k=k+60|0}while((k|0)!=(b|0));return}k=(e|0)/2|0;l=a+(k*60|0)|0;Nm(a,l,d,k,f,k);m=e-k|0;Nm(l,b,d,m,f+(k*60|0)|0,m);b:do if((e+1|0)>>>0<3){p=l;q=f}else{m=l;k=a;j=f;while(1){if((m|0)==(b|0)){r=k;s=j;break}if(rb[c[d>>2]&31](m,k)|0){g=j;h=m;i=g+60|0;do{c[g>>2]=c[h>>2];g=g+4|0;h=h+4|0}while((g|0)<(i|0));t=k;u=m+60|0}else{g=j;h=k;i=g+60|0;do{c[g>>2]=c[h>>2];g=g+4|0;h=h+4|0}while((g|0)<(i|0));t=k+60|0;u=m}n=j+60|0;if((t|0)==(l|0)){p=u;q=n;break b}else{m=u;k=t;j=n}}if((r|0)==(l|0))return;else{v=r;w=s}while(1){g=w;h=v;i=g+60|0;do{c[g>>2]=c[h>>2];g=g+4|0;h=h+4|0}while((g|0)<(i|0));v=v+60|0;if((v|0)==(l|0))break;else w=w+60|0}return}while(0);if((p|0)==(b|0))return;else{x=p;y=q}while(1){g=y;h=x;i=g+60|0;do{c[g>>2]=c[h>>2];g=g+4|0;h=h+4|0}while((g|0)<(i|0));x=x+60|0;if((x|0)==(b|0))break;else y=y+60|0}return}}}function vn(a,b,d,e,f,g,h,j){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|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,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,Ea=0,Fa=0,Ga=0,Ha=0,Ia=0,Ja=0,Ka=0,La=0;k=i;i=i+64|0;l=k;if((g|0)==0|(f|0)==0){i=k;return}m=a;a=b;b=d;d=f;f=g;a:while(1){g=b;n=a;o=d;p=m;q=f;while(1){r=p;s=o;while(1){if(rb[c[e>>2]&31](n,r)|0){t=r;u=s;break}s=s+-1|0;if(!s){v=68;break a}else r=r+60|0}if(!((q|0)>(j|0)&(u|0)>(j|0))){w=n;x=b;y=q;z=t;A=u;B=g;v=8;break a}if((u|0)<(q|0)){r=(q|0)/2|0;s=n+(r*60|0)|0;C=t;D=t;E=(n-C|0)/60|0;b:while(1){F=E;while(1){if(!F){G=D;break b}H=(F|0)/2|0;if(rb[c[e>>2]&31](s,D+(H*60|0)|0)|0)F=H;else{I=H;J=F;break}}D=D+((I+1|0)*60|0)|0;E=J+-1-I|0}K=G;L=s;M=(G-C|0)/60|0;N=r}else{if((u|0)==1){O=n;P=t;v=43;break a}E=(u|0)/2|0;D=t+(E*60|0)|0;F=n;H=n;Q=(g-F|0)/60|0;c:while(1){R=Q;while(1){if(!R){S=H;break c}T=(R|0)/2|0;if(rb[c[e>>2]&31](H+(T*60|0)|0,D)|0){U=T;V=R;break}else R=T}H=H+((U+1|0)*60|0)|0;Q=V+-1-U|0}K=D;L=S;M=E;N=(S-F|0)/60|0}o=u-M|0;Q=q;q=q-N|0;d:do if((K|0)!=(n|0))if((n|0)==(L|0))W=K;else{if((K+60|0)==(n|0)){X=l;Y=K;Z=X+60|0;do{c[X>>2]=c[Y>>2];X=X+4|0;Y=Y+4|0}while((X|0)<(Z|0));H=L-n|0;Cp(K|0,n|0,H|0)|0;r=K+(((H|0)/60|0)*60|0)|0;X=r;Y=l;Z=X+60|0;do{c[X>>2]=c[Y>>2];X=X+4|0;Y=Y+4|0}while((X|0)<(Z|0));W=r;break}if((n+60|0)==(L|0)){H=L+-60|0;X=l;Y=H;Z=X+60|0;do{c[X>>2]=c[Y>>2];X=X+4|0;Y=Y+4|0}while((X|0)<(Z|0));r=H-K|0;C=L+(((r|0)/-60|0)*60|0)|0;Cp(C|0,K|0,r|0)|0;X=K;Y=l;Z=X+60|0;do{c[X>>2]=c[Y>>2];X=X+4|0;Y=Y+4|0}while((X|0)<(Z|0));W=C;break}H=n;r=(H-K|0)/60|0;s=L;R=(s-H|0)/60|0;if((r|0)==(R|0)){H=K;T=n;while(1){X=l;Y=H;Z=X+60|0;do{c[X>>2]=c[Y>>2];X=X+4|0;Y=Y+4|0}while((X|0)<(Z|0));X=H;Y=T;Z=X+60|0;do{c[X>>2]=c[Y>>2];X=X+4|0;Y=Y+4|0}while((X|0)<(Z|0));X=T;Y=l;Z=X+60|0;do{c[X>>2]=c[Y>>2];X=X+4|0;Y=Y+4|0}while((X|0)<(Z|0));H=H+60|0;if((H|0)==(n|0)){W=n;break d}else T=T+60|0}}else{_=r;$=R}while(1){T=(_|0)%($|0)|0;if(!T){aa=$;break}else{H=$;$=T;_=H}}if(aa){H=r+-1|0;T=K+(aa*60|0)|0;do{C=T;T=T+-60|0;X=l;Y=T;Z=X+60|0;do{c[X>>2]=c[Y>>2];X=X+4|0;Y=Y+4|0}while((X|0)<(Z|0));ba=T;ca=C+(H*60|0)|0;while(1){X=ba;Y=ca;Z=X+60|0;do{c[X>>2]=c[Y>>2];X=X+4|0;Y=Y+4|0}while((X|0)<(Z|0));da=(s-ca|0)/60|0;ea=(r|0)<(da|0)?ca+(r*60|0)|0:K+((r-da|0)*60|0)|0;if((ea|0)==(T|0)){fa=ca;break}else{da=ca;ca=ea;ba=da}}X=fa;Y=l;Z=X+60|0;do{c[X>>2]=c[Y>>2];X=X+4|0;Y=Y+4|0}while((X|0)<(Z|0))}while((T|0)!=(K|0))}W=K+(R*60|0)|0}else W=L;while(0);if((N+M|0)>=(q+o|0)){ga=W;ha=K;ia=L;ja=t;ka=o;la=q;ma=M;na=N;break}vn(t,K,W,e,M,N,h,j);if((Q|0)==(N|0)|(u|0)==(M|0)){v=68;break a}else{n=L;p=W}}vn(ga,ia,b,e,ka,la,h,j);if((na|0)==0|(ma|0)==0){v=68;break}else{m=ja;a=ha;b=ga;d=ma;f=na}}if((v|0)==8){na=z;f=w;if((A|0)<=(y|0)){e:do if((z|0)!=(w|0)){y=((w+-60-na|0)>>>0)/60|0;A=z;ma=h;while(1){X=ma;Y=A;Z=X+60|0;do{c[X>>2]=c[Y>>2];X=X+4|0;Y=Y+4|0}while((X|0)<(Z|0));A=A+60|0;if((A|0)==(w|0))break;else ma=ma+60|0}ma=h+((y+1|0)*60|0)|0;A=ma;if((ma|0)==(h|0)){oa=z;pa=f}else{Q=z;d=h;ga=f;b=h;ha=w;a=w;while(1){if((ha|0)==(x|0)){qa=Q;ra=b;break}if(rb[c[e>>2]&31](ha,d)|0){X=Q;Y=a;Z=X+60|0;do{c[X>>2]=c[Y>>2];X=X+4|0;Y=Y+4|0}while((X|0)<(Z|0));ja=ha+60|0;sa=ja;ta=b;ua=ja;va=ja;wa=d}else{X=Q;Y=d;Z=X+60|0;do{c[X>>2]=c[Y>>2];X=X+4|0;Y=Y+4|0}while((X|0)<(Z|0));ja=d+60|0;sa=ga;ta=ja;ua=a;va=ha;wa=ja}ja=Q+60|0;if((wa|0)==(ma|0)){oa=ja;pa=sa;break e}else{Q=ja;d=wa;ga=sa;b=ta;ha=va;a=ua}}Cp(qa|0,ra|0,A-ra|0)|0;i=k;return}}else{oa=w;pa=f}while(0);Cp(oa|0,pa|0,B-pa|0)|0;i=k;return}if((w|0)==(x|0))xa=h;else{pa=((x+-60-f|0)>>>0)/60|0;B=w;oa=h;while(1){X=oa;Y=B;Z=X+60|0;do{c[X>>2]=c[Y>>2];X=X+4|0;Y=Y+4|0}while((X|0)<(Z|0));B=B+60|0;if((B|0)==(x|0))break;else oa=oa+60|0}xa=h+((pa+1|0)*60|0)|0}pa=xa;f:do if((w|0)==(z|0)){ya=x;za=pa}else{oa=pa;B=f;A=f;ra=pa;qa=xa;ua=w;va=x;ta=xa;sa=xa;while(1){if((ra|0)==(h|0)){Aa=va;Ba=B;break}wa=ua+-60|0;na=va+-60|0;if(rb[c[e>>2]&31](qa+-60|0,wa)|0){X=na;Y=wa;Z=X+60|0;do{c[X>>2]=c[Y>>2];X=X+4|0;Y=Y+4|0}while((X|0)<(Z|0));a=wa;Ca=oa;Da=a;Ea=sa;Fa=ta;Ga=qa;Ha=a}else{X=na;Y=ta+-60|0;Z=X+60|0;do{c[X>>2]=c[Y>>2];X=X+4|0;Y=Y+4|0}while((X|0)<(Z|0));wa=sa+-60|0;Ca=wa;Da=B;Ea=wa;Fa=wa;Ga=wa;Ha=A}ua=Ha;if((ua|0)==(z|0)){ya=na;za=Ca;break f}else{oa=Ca;B=Da;A=Ha;ra=Ga;qa=Ga;va=na;ta=Fa;sa=Ea}}sa=Ba;if((sa|0)==(z|0)){i=k;return}else{Ia=Aa;Ja=sa}do{Ia=Ia+-60|0;Ja=Ja+-60|0;X=Ia;Y=Ja;Z=X+60|0;do{c[X>>2]=c[Y>>2];X=X+4|0;Y=Y+4|0}while((X|0)<(Z|0))}while((Ja|0)!=(z|0));i=k;return}while(0);z=za;if((z|0)==(h|0)){i=k;return}else{Ka=ya;La=z}do{Ka=Ka+-60|0;La=La+-60|0;X=Ka;Y=La;Z=X+60|0;do{c[X>>2]=c[Y>>2];X=X+4|0;Y=Y+4|0}while((X|0)<(Z|0))}while((La|0)!=(h|0));i=k;return}else if((v|0)==43){X=l;Y=P;Z=X+60|0;do{c[X>>2]=c[Y>>2];X=X+4|0;Y=Y+4|0}while((X|0)<(Z|0));X=P;Y=O;Z=X+60|0;do{c[X>>2]=c[Y>>2];X=X+4|0;Y=Y+4|0}while((X|0)<(Z|0));X=O;Y=l;Z=X+60|0;do{c[X>>2]=c[Y>>2];X=X+4|0;Y=Y+4|0}while((X|0)<(Z|0));i=k;return}else if((v|0)==68){i=k;return}}function wn(a){a=a|0;return}function xn(a){a=a|0;so(a);return}function yn(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.0,k=0,l=0.0,m=0.0,n=0,o=0.0,p=0,q=0.0,r=0.0,s=0,t=0.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,G=0,H=0,I=0.0,J=0.0,K=0.0;f=a+4|0;h=c[(c[f>>2]|0)+88>>2]|0;i=c[h+(d<<2)>>2]|c[h+(b<<2)>>2]|c[h+(e<<2)>>2];if(!(i&16))return;h=c[a+8>>2]|0;if(!(pb[c[(c[h>>2]|0)+16>>2]&7](h,b,d,e)|0))return;h=c[f>>2]|0;f=c[h+96>>2]|0;a=f+(b<<3)|0;j=+g[a>>2];k=f+(d<<3)|0;l=+g[k>>2];m=j-l;n=f+(b<<3)+4|0;o=+g[n>>2];p=f+(d<<3)+4|0;q=+g[p>>2];r=o-q;s=f+(e<<3)|0;t=+g[s>>2];u=l-t;v=f+(e<<3)+4|0;l=+g[v>>2];w=q-l;q=t-j;j=l-o;o=+g[h+40>>2]*4.0;if(m*m+r*r>o)return;if(u*u+w*w>o)return;if(q*q+j*j>o)return;f=c[h+144>>2]|0;x=c[f+(b<<2)>>2]|0;y=c[f+(d<<2)>>2]|0;z=c[f+(e<<2)>>2]|0;f=h+264|0;A=h+268|0;B=c[A>>2]|0;C=h+272|0;D=c[C>>2]|0;if((B|0)>=(D|0)?(E=(D|0)==0?256:D<<1,(D|0)<(E|0)):0){D=h+276|0;h=Sn(c[D>>2]|0,E*60|0)|0;F=c[f>>2]|0;if(!F)G=f;else{Bp(h|0,F|0,(c[A>>2]|0)*60|0)|0;Tn(c[D>>2]|0,c[f>>2]|0,(c[C>>2]|0)*60|0);G=f}c[C>>2]=E;c[G>>2]=h;H=c[A>>2]|0}else H=B;c[A>>2]=H+1;A=c[f>>2]|0;c[A+(H*60|0)>>2]=b;c[A+(H*60|0)+4>>2]=d;c[A+(H*60|0)+8>>2]=e;c[A+(H*60|0)+12>>2]=i;if(!x)I=1.0;else I=+g[x+16>>2];if(!y)J=1.0;else J=+g[y+16>>2];o=I>2];g[A+(H*60|0)+16>>2]=o>2];o=+g[n>>2];J=(K+ +g[k>>2]+ +g[s>>2])*.3333333432674408;I=(o+ +g[p>>2]+ +g[v>>2])*.3333333432674408;g[A+(H*60|0)+20>>2]=K-J;g[A+(H*60|0)+24>>2]=o-I;o=+g[p>>2]-I;g[A+(H*60|0)+28>>2]=+g[k>>2]-J;g[A+(H*60|0)+32>>2]=o;o=+g[v>>2]-I;g[A+(H*60|0)+36>>2]=+g[s>>2]-J;g[A+(H*60|0)+40>>2]=o;g[A+(H*60|0)+44>>2]=-(m*q+r*j);g[A+(H*60|0)+48>>2]=-(m*u+r*w);g[A+(H*60|0)+52>>2]=-(u*q+w*j);j=+g[a>>2];w=+g[p>>2];q=+g[n>>2];u=+g[k>>2];r=+g[v>>2];m=+g[s>>2];g[A+(H*60|0)+56>>2]=q*m-j*r+(j*w-q*u+(u*r-w*m));return}function zn(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;switch(e|0){case 1:{c[f>>2]=c[a>>2];c[f+4>>2]=c[a+4>>2];c[f+8>>2]=c[a+8>>2];c[f+12>>2]=c[a+12>>2];c[f+16>>2]=c[a+16>>2];return}case 2:{g=b+-20|0;if(rb[c[d>>2]&31](g,a)|0){c[f>>2]=c[g>>2];c[f+4>>2]=c[g+4>>2];c[f+8>>2]=c[g+8>>2];c[f+12>>2]=c[g+12>>2];c[f+16>>2]=c[g+16>>2];h=f+20|0;c[h>>2]=c[a>>2];c[h+4>>2]=c[a+4>>2];c[h+8>>2]=c[a+8>>2];c[h+12>>2]=c[a+12>>2];c[h+16>>2]=c[a+16>>2];return}else{c[f>>2]=c[a>>2];c[f+4>>2]=c[a+4>>2];c[f+8>>2]=c[a+8>>2];c[f+12>>2]=c[a+12>>2];c[f+16>>2]=c[a+16>>2];h=f+20|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];c[h+16>>2]=c[g+16>>2];return}break}case 0:return;default:{if((e|0)<9){if((a|0)==(b|0))return;c[f>>2]=c[a>>2];c[f+4>>2]=c[a+4>>2];c[f+8>>2]=c[a+8>>2];c[f+12>>2]=c[a+12>>2];c[f+16>>2]=c[a+16>>2];g=a+20|0;if((g|0)==(b|0))return;else{i=g;j=f}do{g=j;j=j+20|0;if(rb[c[d>>2]&31](i,g)|0){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];c[j+16>>2]=c[g+16>>2];a:do if((g|0)==(f|0))k=f;else{h=g;while(1){l=h;h=h+-20|0;if(!(rb[c[d>>2]&31](i,h)|0)){k=l;break a};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];c[l+16>>2]=c[h+16>>2];if((h|0)==(f|0)){k=f;break}}}while(0);c[k>>2]=c[i>>2];c[k+4>>2]=c[i+4>>2];c[k+8>>2]=c[i+8>>2];c[k+12>>2]=c[i+12>>2];c[k+16>>2]=c[i+16>>2]}else{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];c[j+16>>2]=c[i+16>>2]}i=i+20|0}while((i|0)!=(b|0));return}i=(e|0)/2|0;j=a+(i*20|0)|0;Mm(a,j,d,i,f,i);k=e-i|0;Mm(j,b,d,k,f+(i*20|0)|0,k);b:do if((e+1|0)>>>0<3){m=j;n=f}else{k=j;i=a;g=f;while(1){if((k|0)==(b|0)){o=i;p=g;break}if(rb[c[d>>2]&31](k,i)|0){c[g>>2]=c[k>>2];c[g+4>>2]=c[k+4>>2];c[g+8>>2]=c[k+8>>2];c[g+12>>2]=c[k+12>>2];c[g+16>>2]=c[k+16>>2];q=i;r=k+20|0}else{c[g>>2]=c[i>>2];c[g+4>>2]=c[i+4>>2];c[g+8>>2]=c[i+8>>2];c[g+12>>2]=c[i+12>>2];c[g+16>>2]=c[i+16>>2];q=i+20|0;r=k}h=g+20|0;if((q|0)==(j|0)){m=r;n=h;break b}else{k=r;i=q;g=h}}if((o|0)==(j|0))return;else{s=o;t=p}while(1){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];c[t+16>>2]=c[s+16>>2];s=s+20|0;if((s|0)==(j|0))break;else t=t+20|0}return}while(0);if((m|0)==(b|0))return;else{u=m;v=n}while(1){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];c[v+16>>2]=c[u+16>>2];u=u+20|0;if((u|0)==(b|0))break;else v=v+20|0}return}}}function An(a,b,d,e,f,g,h,j){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|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,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,Ea=0,Fa=0,Ga=0,Ha=0;k=i;i=i+48|0;l=k+20|0;m=k;if((g|0)==0|(f|0)==0){i=k;return}n=a;a=b;b=d;d=f;f=g;a:while(1){g=b;o=a;p=d;q=n;r=f;while(1){s=q;t=p;while(1){if(rb[c[e>>2]&31](o,s)|0){u=s;v=t;break}t=t+-1|0;if(!t){w=69;break a}else s=s+20|0}if(!((r|0)>(j|0)&(v|0)>(j|0))){x=o;y=b;z=r;A=u;B=v;C=g;w=8;break a}if((v|0)<(r|0)){s=(r|0)/2|0;t=o+(s*20|0)|0;D=u;E=u;F=(o-D|0)/20|0;b:while(1){G=F;while(1){if(!G){H=E;break b}I=(G|0)/2|0;if(rb[c[e>>2]&31](t,E+(I*20|0)|0)|0)G=I;else{J=I;K=G;break}}E=E+((J+1|0)*20|0)|0;F=K+-1-J|0}L=H;M=t;N=(H-D|0)/20|0;O=s}else{if((v|0)==1){P=o;Q=u;w=43;break a}F=(v|0)/2|0;E=u+(F*20|0)|0;G=o;I=o;R=(g-G|0)/20|0;c:while(1){S=R;while(1){if(!S){T=I;break c}U=(S|0)/2|0;if(rb[c[e>>2]&31](I+(U*20|0)|0,E)|0){V=U;W=S;break}else S=U}I=I+((V+1|0)*20|0)|0;R=W+-1-V|0}L=E;M=T;N=F;O=(T-G|0)/20|0}p=v-N|0;R=r;r=r-O|0;do if((L|0)!=(o|0))if((o|0)==(M|0))X=L;else{if((L+20|0)==(o|0)){c[l>>2]=c[L>>2];c[l+4>>2]=c[L+4>>2];c[l+8>>2]=c[L+8>>2];c[l+12>>2]=c[L+12>>2];c[l+16>>2]=c[L+16>>2];I=M-o|0;Cp(L|0,o|0,I|0)|0;s=L+(((I|0)/20|0)*20|0)|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];X=s;break}if((o+20|0)==(M|0)){s=M+-20|0;c[l>>2]=c[s>>2];c[l+4>>2]=c[s+4>>2];c[l+8>>2]=c[s+8>>2];c[l+12>>2]=c[s+12>>2];c[l+16>>2]=c[s+16>>2];I=s-L|0;s=M+(((I|0)/-20|0)*20|0)|0;Cp(s|0,L|0,I|0)|0;c[L>>2]=c[l>>2];c[L+4>>2]=c[l+4>>2];c[L+8>>2]=c[l+8>>2];c[L+12>>2]=c[l+12>>2];c[L+16>>2]=c[l+16>>2];X=s;break}s=o;I=(s-L|0)/20|0;D=M;t=(D-s|0)/20|0;if((I|0)==(t|0)){s=L;S=o;while(1){c[l>>2]=c[s>>2];c[l+4>>2]=c[s+4>>2];c[l+8>>2]=c[s+8>>2];c[l+12>>2]=c[s+12>>2];c[l+16>>2]=c[s+16>>2];c[s>>2]=c[S>>2];c[s+4>>2]=c[S+4>>2];c[s+8>>2]=c[S+8>>2];c[s+12>>2]=c[S+12>>2];c[s+16>>2]=c[S+16>>2];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];s=s+20|0;if((s|0)==(o|0)){Y=o;break}else S=S+20|0}}else{S=I;s=t;while(1){U=(S|0)%(s|0)|0;if(!U){Z=s;break}else{_=s;s=U;S=_}}if(Z){S=I+-1|0;s=L+(Z*20|0)|0;do{_=s;s=s+-20|0;c[m>>2]=c[s>>2];c[m+4>>2]=c[s+4>>2];c[m+8>>2]=c[s+8>>2];c[m+12>>2]=c[s+12>>2];c[m+16>>2]=c[s+16>>2];U=s;$=_+(S*20|0)|0;while(1){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];c[U+16>>2]=c[$+16>>2];_=(D-$|0)/20|0;aa=(I|0)<(_|0)?$+(I*20|0)|0:L+((I-_|0)*20|0)|0;if((aa|0)==(s|0)){ba=$;break}else{_=$;$=aa;U=_}}c[ba>>2]=c[m>>2];c[ba+4>>2]=c[m+4>>2];c[ba+8>>2]=c[m+8>>2];c[ba+12>>2]=c[m+12>>2];c[ba+16>>2]=c[m+16>>2]}while((s|0)!=(L|0))}Y=L+(t*20|0)|0}X=Y}else X=M;while(0);if((O+N|0)>=(r+p|0)){ca=X;da=L;ea=M;fa=u;ga=p;ha=r;ia=N;ja=O;break}An(u,L,X,e,N,O,h,j);if((R|0)==(O|0)|(v|0)==(N|0)){w=69;break a}else{o=M;q=X}}An(ca,ea,b,e,ga,ha,h,j);if((ja|0)==0|(ia|0)==0){w=69;break}else{n=fa;a=da;b=ca;d=ia;f=ja}}if((w|0)==8){ja=A;f=x;if((B|0)<=(z|0)){d:do if((A|0)!=(x|0)){z=((x+-20-ja|0)>>>0)/20|0;B=A;ia=h;while(1){c[ia>>2]=c[B>>2];c[ia+4>>2]=c[B+4>>2];c[ia+8>>2]=c[B+8>>2];c[ia+12>>2]=c[B+12>>2];c[ia+16>>2]=c[B+16>>2];B=B+20|0;if((B|0)==(x|0))break;else ia=ia+20|0}ia=h+((z+1|0)*20|0)|0;B=ia;if((ia|0)==(h|0)){ka=A;la=f}else{d=A;ca=h;b=f;da=h;a=x;fa=x;while(1){if((a|0)==(y|0)){ma=d;na=da;break}if(rb[c[e>>2]&31](a,ca)|0){c[d>>2]=c[fa>>2];c[d+4>>2]=c[fa+4>>2];c[d+8>>2]=c[fa+8>>2];c[d+12>>2]=c[fa+12>>2];c[d+16>>2]=c[fa+16>>2];n=a+20|0;oa=n;pa=da;qa=n;ra=n;sa=ca}else{c[d>>2]=c[ca>>2];c[d+4>>2]=c[ca+4>>2];c[d+8>>2]=c[ca+8>>2];c[d+12>>2]=c[ca+12>>2];c[d+16>>2]=c[ca+16>>2];n=ca+20|0;oa=b;pa=n;qa=fa;ra=a;sa=n}n=d+20|0;if((sa|0)==(ia|0)){ka=n;la=oa;break d}else{d=n;ca=sa;b=oa;da=pa;a=ra;fa=qa}}Cp(ma|0,na|0,B-na|0)|0;i=k;return}}else{ka=x;la=f}while(0);Cp(ka|0,la|0,C-la|0)|0;i=k;return}if((x|0)==(y|0))ta=h;else{la=((y+-20-f|0)>>>0)/20|0;C=x;ka=h;while(1){c[ka>>2]=c[C>>2];c[ka+4>>2]=c[C+4>>2];c[ka+8>>2]=c[C+8>>2];c[ka+12>>2]=c[C+12>>2];c[ka+16>>2]=c[C+16>>2];C=C+20|0;if((C|0)==(y|0))break;else ka=ka+20|0}ta=h+((la+1|0)*20|0)|0}la=ta;e:do if((x|0)==(A|0)){ua=y;va=la}else{ka=la;C=f;na=f;ma=la;qa=ta;ra=x;pa=y;oa=ta;sa=ta;while(1){if((ma|0)==(h|0)){wa=pa;xa=C;break}ja=ra+-20|0;fa=pa+-20|0;if(rb[c[e>>2]&31](qa+-20|0,ja)|0){c[fa>>2]=c[ja>>2];c[fa+4>>2]=c[ja+4>>2];c[fa+8>>2]=c[ja+8>>2];c[fa+12>>2]=c[ja+12>>2];c[fa+16>>2]=c[ja+16>>2];a=ja;ya=ka;za=a;Aa=sa;Ba=oa;Ca=qa;Da=a}else{a=oa+-20|0;c[fa>>2]=c[a>>2];c[fa+4>>2]=c[a+4>>2];c[fa+8>>2]=c[a+8>>2];c[fa+12>>2]=c[a+12>>2];c[fa+16>>2]=c[a+16>>2];a=sa+-20|0;ya=a;za=C;Aa=a;Ba=a;Ca=a;Da=na}ra=Da;if((ra|0)==(A|0)){ua=fa;va=ya;break e}else{ka=ya;C=za;na=Da;ma=Ca;qa=Ca;pa=fa;oa=Ba;sa=Aa}}sa=xa;if((sa|0)==(A|0)){i=k;return}else{Ea=wa;Fa=sa}do{Ea=Ea+-20|0;Fa=Fa+-20|0;c[Ea>>2]=c[Fa>>2];c[Ea+4>>2]=c[Fa+4>>2];c[Ea+8>>2]=c[Fa+8>>2];c[Ea+12>>2]=c[Fa+12>>2];c[Ea+16>>2]=c[Fa+16>>2]}while((Fa|0)!=(A|0));i=k;return}while(0);A=va;if((A|0)==(h|0)){i=k;return}else{Ga=ua;Ha=A}do{Ga=Ga+-20|0;Ha=Ha+-20|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];c[Ga+16>>2]=c[Ha+16>>2]}while((Ha|0)!=(h|0));i=k;return}else if((w|0)==43){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];c[l+16>>2]=c[Q+16>>2];c[Q>>2]=c[P>>2];c[Q+4>>2]=c[P+4>>2];c[Q+8>>2]=c[P+8>>2];c[Q+12>>2]=c[P+12>>2];c[Q+16>>2]=c[P+16>>2];c[P>>2]=c[l>>2];c[P+4>>2]=c[l+4>>2];c[P+8>>2]=c[l+8>>2];c[P+12>>2]=c[l+12>>2];c[P+16>>2]=c[l+16>>2];i=k;return}else if((w|0)==69){i=k;return}}function Bn(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;f=b+4|0;g=c[f>>2]|0;h=a+4|0;i=d+4|0;j=c[i>>2]|0;k=j>>>0>>0;do if(g>>>0<(c[h>>2]|0)>>>0){l=a;m=c[l>>2]|0;n=c[l+4>>2]|0;if(k){l=d;o=c[l+4>>2]|0;p=a;c[p>>2]=c[l>>2];c[p+4>>2]=o;o=d;c[o>>2]=m;c[o+4>>2]=n;q=1;r=n;break}o=b;p=c[o+4>>2]|0;l=a;c[l>>2]=c[o>>2];c[l+4>>2]=p;p=b;c[p>>2]=m;c[p+4>>2]=n;p=c[i>>2]|0;if(p>>>0>>0){l=d;o=c[l+4>>2]|0;s=b;c[s>>2]=c[l>>2];c[s+4>>2]=o;o=d;c[o>>2]=m;c[o+4>>2]=n;q=2;r=n}else{q=1;r=p}}else if(k){p=b;n=c[p>>2]|0;o=c[p+4>>2]|0;p=d;m=c[p+4>>2]|0;s=b;c[s>>2]=c[p>>2];c[s+4>>2]=m;m=d;c[m>>2]=n;c[m+4>>2]=o;if((c[f>>2]|0)>>>0<(c[h>>2]|0)>>>0){m=a;n=c[m>>2]|0;s=c[m+4>>2]|0;m=b;p=c[m+4>>2]|0;l=a;c[l>>2]=c[m>>2];c[l+4>>2]=p;p=b;c[p>>2]=n;c[p+4>>2]=s;q=2;r=c[i>>2]|0}else{q=1;r=o}}else{q=0;r=j}while(0);if((c[e+4>>2]|0)>>>0>=r>>>0){t=q;return t|0}r=d;j=c[r>>2]|0;k=c[r+4>>2]|0;r=e;g=c[r+4>>2]|0;o=d;c[o>>2]=c[r>>2];c[o+4>>2]=g;g=e;c[g>>2]=j;c[g+4>>2]=k;if((c[i>>2]|0)>>>0>=(c[f>>2]|0)>>>0){t=q+1|0;return t|0}i=b;k=c[i>>2]|0;g=c[i+4>>2]|0;i=d;j=c[i+4>>2]|0;e=b;c[e>>2]=c[i>>2];c[e+4>>2]=j;j=d;c[j>>2]=k;c[j+4>>2]=g;if((c[f>>2]|0)>>>0>=(c[h>>2]|0)>>>0){t=q+2|0;return t|0}h=a;f=c[h>>2]|0;g=c[h+4>>2]|0;h=b;j=c[h+4>>2]|0;k=a;c[k>>2]=c[h>>2];c[k+4>>2]=j;j=b;c[j>>2]=f;c[j+4>>2]=g;t=q+3|0;return t|0} +function ph(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;Oi(a,b);c[a>>2]=1224;d=b+20|0;e=c[d+4>>2]|0;f=a+80|0;c[f>>2]=c[d>>2];c[f+4>>2]=e;e=b+28|0;f=c[e+4>>2]|0;d=a+88|0;c[d>>2]=c[e>>2];c[d+4>>2]=f;c[a+104>>2]=c[b+36>>2];c[a+68>>2]=c[b+40>>2];c[a+72>>2]=c[b+44>>2];g[a+100>>2]=0.0;g[a+96>>2]=0.0;g[a+76>>2]=0.0;return}function qh(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.0,u=0.0,v=0.0,w=0,x=0,y=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,P=0.0,S=0.0,T=0.0,U=0,V=0,W=0,X=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;e=c[b+48>>2]|0;f=c[e+8>>2]|0;h=b+108|0;c[h>>2]=f;i=c[b+52>>2]|0;j=c[i+8>>2]|0;l=b+112|0;c[l>>2]=j;m=e+44|0;n=c[m>>2]|0;o=c[m+4>>2]|0;m=b+140|0;c[m>>2]=n;c[m+4>>2]=o;m=i+44|0;p=c[m>>2]|0;q=c[m+4>>2]|0;m=b+148|0;c[m>>2]=p;c[m+4>>2]=q;m=b+156|0;c[m>>2]=c[e+136>>2];r=b+160|0;c[r>>2]=c[i+136>>2];s=b+164|0;c[s>>2]=c[e+144>>2];e=b+168|0;c[e>>2]=c[i+144>>2];i=c[d+28>>2]|0;t=+g[i+(f*12|0)>>2];u=+g[i+(f*12|0)+4>>2];v=+g[i+(f*12|0)+8>>2];w=d+32|0;x=c[w>>2]|0;y=c[x+(f*12|0)>>2]|0;z=c[x+(f*12|0)+4>>2]|0;A=+g[x+(f*12|0)+8>>2];B=+g[i+(j*12|0)>>2];C=+g[i+(j*12|0)+4>>2];D=+g[i+(j*12|0)+8>>2];i=c[x+(j*12|0)>>2]|0;f=c[x+(j*12|0)+4>>2]|0;E=+g[x+(j*12|0)+8>>2];F=+R(+v);G=+Q(+v);v=+R(+D);H=+Q(+D);D=+g[b+80>>2]-(c[k>>2]=n,+g[k>>2]);I=+g[b+84>>2]-(c[k>>2]=o,+g[k>>2]);J=G*D-F*I;K=F*D+G*I;g[b+124>>2]=J;g[b+128>>2]=K;I=+g[b+88>>2]-(c[k>>2]=p,+g[k>>2]);G=+g[b+92>>2]-(c[k>>2]=q,+g[k>>2]);D=H*I-v*G;F=v*I+H*G;g[b+132>>2]=D;g[b+136>>2]=F;G=B+D-t-J;t=C+F-u-K;q=b+116|0;g[q>>2]=G;p=b+120|0;g[p>>2]=t;u=+O(+(G*G+t*t));if(u>.004999999888241291){C=1.0/u;B=G*C;g[q>>2]=B;L=C*t;M=B}else{g[q>>2]=0.0;L=0.0;M=0.0}g[p>>2]=L;B=L*J-K*M;t=L*D-M*F;C=+g[m>>2];G=+g[s>>2];H=+g[r>>2];I=+g[e>>2];v=H+(C+B*(B*G))+t*(t*I);t=v!=0.0?1.0/v:0.0;e=b+172|0;g[e>>2]=t;B=+g[b+68>>2];if(B>0.0){N=u-+g[b+104>>2];u=B*6.2831854820251465;B=u*(u*t);P=+g[d>>2];S=P*(u*(t*2.0*+g[b+72>>2])+B*P);t=S!=0.0?1.0/S:0.0;g[b+96>>2]=t;S=v+t;g[e>>2]=S!=0.0?1.0/S:0.0;T=B*(N*P)*t}else{g[b+96>>2]=0.0;T=0.0}g[b+76>>2]=T;if(!(a[d+24>>0]|0)){g[b+100>>2]=0.0;U=y;V=z;W=i;X=f;Y=A;Z=E;_=c[h>>2]|0;$=c[w>>2]|0;aa=$+(_*12|0)|0;c[aa>>2]=U;ba=$+(_*12|0)+4|0;c[ba>>2]=V;ca=c[h>>2]|0;da=c[w>>2]|0;ea=da+(ca*12|0)+8|0;g[ea>>2]=Y;fa=c[l>>2]|0;ga=da+(fa*12|0)|0;c[ga>>2]=W;ha=da+(fa*12|0)+4|0;c[ha>>2]=X;ia=c[l>>2]|0;ja=c[w>>2]|0;ka=ja+(ia*12|0)+8|0;g[ka>>2]=Z;return}else{e=b+100|0;T=+g[d+8>>2]*+g[e>>2];g[e>>2]=T;t=M*T;M=T*L;e=(g[k>>2]=(c[k>>2]=y,+g[k>>2])-t*C,c[k>>2]|0);y=(g[k>>2]=(c[k>>2]=z,+g[k>>2])-M*C,c[k>>2]|0);z=(g[k>>2]=(c[k>>2]=i,+g[k>>2])+t*H,c[k>>2]|0);U=e;V=y;W=z;X=(g[k>>2]=(c[k>>2]=f,+g[k>>2])+M*H,c[k>>2]|0);Y=A-G*(M*J-t*K);Z=E+I*(M*D-t*F);_=c[h>>2]|0;$=c[w>>2]|0;aa=$+(_*12|0)|0;c[aa>>2]=U;ba=$+(_*12|0)+4|0;c[ba>>2]=V;ca=c[h>>2]|0;da=c[w>>2]|0;ea=da+(ca*12|0)+8|0;g[ea>>2]=Y;fa=c[l>>2]|0;ga=da+(fa*12|0)|0;c[ga>>2]=W;ha=da+(fa*12|0)+4|0;c[ha>>2]=X;ia=c[l>>2]|0;ja=c[w>>2]|0;ka=ja+(ia*12|0)+8|0;g[ka>>2]=Z;return}}function rh(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.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;d=a+108|0;e=c[d>>2]|0;f=b+32|0;b=c[f>>2]|0;h=b+(e*12|0)|0;i=+g[h>>2];j=b+(e*12|0)+4|0;k=+g[j>>2];l=+g[b+(e*12|0)+8>>2];e=a+112|0;m=c[e>>2]|0;n=+g[b+(m*12|0)>>2];o=+g[b+(m*12|0)+4>>2];p=+g[b+(m*12|0)+8>>2];q=+g[a+128>>2];r=+g[a+124>>2];s=+g[a+136>>2];t=+g[a+132>>2];u=+g[a+116>>2];v=+g[a+120>>2];m=a+100|0;w=+g[m>>2];x=+g[a+172>>2]*(+g[a+76>>2]+(u*(n-p*s-(i-l*q))+v*(o+p*t-(k+l*r)))+ +g[a+96>>2]*w);y=-x;g[m>>2]=w-x;x=u*y;u=v*y;y=+g[a+156>>2];v=l-+g[a+164>>2]*(u*r-x*q);q=+g[a+160>>2];r=p+ +g[a+168>>2]*(u*t-x*s);g[h>>2]=i-y*x;g[j>>2]=k-y*u;j=c[f>>2]|0;g[j+((c[d>>2]|0)*12|0)+8>>2]=v;d=c[e>>2]|0;g[j+(d*12|0)>>2]=n+x*q;g[j+(d*12|0)+4>>2]=o+u*q;g[(c[f>>2]|0)+((c[e>>2]|0)*12|0)+8>>2]=r;return}function sh(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0,i=0,j=0.0,k=0,l=0.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;if(+g[a+68>>2]>0.0){d=1;return d|0}e=a+108|0;f=c[e>>2]|0;h=b+28|0;b=c[h>>2]|0;i=b+(f*12|0)|0;j=+g[i>>2];k=b+(f*12|0)+4|0;l=+g[k>>2];m=+g[b+(f*12|0)+8>>2];f=a+112|0;n=c[f>>2]|0;o=+g[b+(n*12|0)>>2];p=+g[b+(n*12|0)+4>>2];q=+g[b+(n*12|0)+8>>2];r=+R(+m);s=+Q(+m);t=+R(+q);u=+Q(+q);v=+g[a+80>>2]-+g[a+140>>2];w=+g[a+84>>2]-+g[a+144>>2];x=s*v-r*w;y=r*v+s*w;w=+g[a+88>>2]-+g[a+148>>2];s=+g[a+92>>2]-+g[a+152>>2];v=u*w-t*s;r=t*w+u*s;s=o+v-j-x;u=p+r-l-y;w=+O(+(s*s+u*u));if(w<1.1920928955078125e-007){z=0.0;A=s;B=u}else{t=1.0/w;z=w;A=s*t;B=u*t}t=z-+g[a+104>>2];z=t<.20000000298023224?t:.20000000298023224;t=z<-.20000000298023224?-.20000000298023224:z;z=-(+g[a+172>>2]*t);u=A*z;A=B*z;z=+g[a+156>>2];B=m-+g[a+164>>2]*(x*A-y*u);y=+g[a+160>>2];x=q+ +g[a+168>>2]*(v*A-r*u);g[i>>2]=j-z*u;g[k>>2]=l-z*A;k=c[h>>2]|0;g[k+((c[e>>2]|0)*12|0)+8>>2]=B;e=c[f>>2]|0;g[k+(e*12|0)>>2]=o+y*u;g[k+(e*12|0)+4>>2]=p+y*A;g[(c[h>>2]|0)+((c[f>>2]|0)*12|0)+8>>2]=x;d=(t>0.0?t:-t)<.004999999888241291;return d|0}function th(a,b){a=a|0;b=b|0;var d=0,e=0.0,f=0.0,h=0.0,i=0.0,j=0.0;d=c[b+48>>2]|0;e=+g[d+24>>2];f=+g[b+80>>2];h=+g[d+20>>2];i=+g[b+84>>2];j=f*h+e*i+ +g[d+16>>2];g[a>>2]=+g[d+12>>2]+(e*f-h*i);g[a+4>>2]=j;return}function uh(a,b){a=a|0;b=b|0;var d=0,e=0.0,f=0.0,h=0.0,i=0.0,j=0.0;d=c[b+52>>2]|0;e=+g[d+24>>2];f=+g[b+88>>2];h=+g[d+20>>2];i=+g[b+92>>2];j=f*h+e*i+ +g[d+16>>2];g[a>>2]=+g[d+12>>2]+(e*f-h*i);g[a+4>>2]=j;return}function vh(a,b,c){a=a|0;b=b|0;c=+c;var d=0.0;d=+g[b+100>>2]*c;c=d*+g[b+120>>2];g[a>>2]=+g[b+116>>2]*d;g[a+4>>2]=c;return}function wh(a,b){a=a|0;b=+b;return 0.0}function xh(a){a=a|0;var b=0,e=0,f=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0.0;b=i;i=i+96|0;e=b+88|0;f=b+80|0;j=b+72|0;k=b+64|0;l=b+48|0;m=b+32|0;n=b+24|0;o=b+16|0;p=b+8|0;q=c[(c[a+48>>2]|0)+8>>2]|0;r=c[(c[a+52>>2]|0)+8>>2]|0;bo(3812,b);c[p>>2]=q;bo(4769,p);c[o>>2]=r;bo(4795,o);c[n>>2]=d[a+61>>0];bo(4821,n);s=+g[a+84>>2];h[m>>3]=+g[a+80>>2];h[m+8>>3]=s;bo(4942,m);s=+g[a+92>>2];h[l>>3]=+g[a+88>>2];h[l+8>>3]=s;bo(4984,l);h[k>>3]=+g[a+104>>2];bo(3838,k);h[j>>3]=+g[a+68>>2];bo(4670,j);h[f>>3]=+g[a+72>>2];bo(4699,f);c[e>>2]=c[a+56>>2];bo(5099,e);i=b;return}function yh(a){a=a|0;so(a);return}function zh(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0.0,h=0,i=0.0,j=0.0,k=0.0;c[a+8>>2]=b;c[a+12>>2]=d;f=+g[e>>2]-+g[b+12>>2];h=e+4|0;i=+g[h>>2]-+g[b+16>>2];j=+g[b+24>>2];k=+g[b+20>>2];g[a+20>>2]=f*j+i*k;g[a+24>>2]=j*i-f*k;k=+g[e>>2]-+g[d+12>>2];f=+g[h>>2]-+g[d+16>>2];i=+g[d+24>>2];j=+g[d+20>>2];g[a+28>>2]=k*i+f*j;g[a+32>>2]=i*f-k*j;return}function Ah(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;Oi(a,b);c[a>>2]=1276;d=b+20|0;e=c[d+4>>2]|0;f=a+68|0;c[f>>2]=c[d>>2];c[f+4>>2]=e;e=b+28|0;f=c[e+4>>2]|0;d=a+76|0;c[d>>2]=c[e>>2];c[d+4>>2]=f;g[a+84>>2]=0.0;g[a+88>>2]=0.0;g[a+92>>2]=0.0;c[a+96>>2]=c[b+36>>2];c[a+100>>2]=c[b+40>>2];return}function Bh(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.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.0,F=0.0,G=0.0,H=0.0,I=0.0,J=0.0,K=0.0,L=0.0,M=0.0,N=0,O=0,P=0,S=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;e=c[b+48>>2]|0;f=c[e+8>>2]|0;h=b+104|0;c[h>>2]=f;i=c[b+52>>2]|0;j=c[i+8>>2]|0;l=b+108|0;c[l>>2]=j;m=e+44|0;n=c[m>>2]|0;o=c[m+4>>2]|0;m=b+128|0;c[m>>2]=n;c[m+4>>2]=o;m=i+44|0;p=c[m>>2]|0;q=c[m+4>>2]|0;m=b+136|0;c[m>>2]=p;c[m+4>>2]=q;m=c[e+136>>2]|0;c[b+144>>2]=m;r=c[i+136>>2]|0;c[b+148>>2]=r;s=c[e+144>>2]|0;c[b+152>>2]=s;e=c[i+144>>2]|0;c[b+156>>2]=e;i=c[d+28>>2]|0;t=+g[i+(f*12|0)+8>>2];u=d+32|0;v=c[u>>2]|0;w=c[v+(f*12|0)>>2]|0;x=c[v+(f*12|0)+4>>2]|0;y=+g[v+(f*12|0)+8>>2];z=+g[i+(j*12|0)+8>>2];i=c[v+(j*12|0)>>2]|0;f=c[v+(j*12|0)+4>>2]|0;A=+g[v+(j*12|0)+8>>2];B=+R(+t);C=+Q(+t);t=+R(+z);D=+Q(+z);z=+g[b+68>>2]-(c[k>>2]=n,+g[k>>2]);E=+g[b+72>>2]-(c[k>>2]=o,+g[k>>2]);F=C*z-B*E;G=B*z+C*E;g[b+112>>2]=F;g[b+116>>2]=G;E=+g[b+76>>2]-(c[k>>2]=p,+g[k>>2]);C=+g[b+80>>2]-(c[k>>2]=q,+g[k>>2]);z=D*E-t*C;B=t*E+D*C;g[b+120>>2]=z;g[b+124>>2]=B;C=(c[k>>2]=m,+g[k>>2]);D=(c[k>>2]=r,+g[k>>2]);E=(c[k>>2]=s,+g[k>>2]);t=(c[k>>2]=e,+g[k>>2]);H=C+D;I=H+G*(E*G)+B*(t*B);J=E*F;K=t*z;L=-(G*J)-B*K;M=H+F*J+z*K;K=I*M-L*L;J=K!=0.0?1.0/K:K;K=-(L*J);g[b+160>>2]=M*J;g[b+164>>2]=K;g[b+168>>2]=K;g[b+172>>2]=I*J;J=E+t;g[b+176>>2]=J>0.0?1.0/J:J;e=b+84|0;if(!(a[d+24>>0]|0)){g[e>>2]=0.0;g[b+88>>2]=0.0;g[b+92>>2]=0.0;N=w;O=x;P=i;S=f;T=y;U=A;V=c[h>>2]|0;W=c[u>>2]|0;X=W+(V*12|0)|0;c[X>>2]=N;Y=W+(V*12|0)+4|0;c[Y>>2]=O;Z=c[h>>2]|0;_=c[u>>2]|0;$=_+(Z*12|0)+8|0;g[$>>2]=T;aa=c[l>>2]|0;ba=_+(aa*12|0)|0;c[ba>>2]=P;ca=_+(aa*12|0)+4|0;c[ca>>2]=S;da=c[l>>2]|0;ea=c[u>>2]|0;fa=ea+(da*12|0)+8|0;g[fa>>2]=U;return}else{J=+g[d+8>>2];I=J*+g[e>>2];g[e>>2]=I;e=b+88|0;K=J*+g[e>>2];g[e>>2]=K;e=b+92|0;M=J*+g[e>>2];g[e>>2]=M;e=(g[k>>2]=(c[k>>2]=w,+g[k>>2])-C*I,c[k>>2]|0);w=(g[k>>2]=(c[k>>2]=x,+g[k>>2])-C*K,c[k>>2]|0);x=(g[k>>2]=(c[k>>2]=i,+g[k>>2])+D*I,c[k>>2]|0);N=e;O=w;P=x;S=(g[k>>2]=(c[k>>2]=f,+g[k>>2])+D*K,c[k>>2]|0);T=y-E*(M+(K*F-I*G));U=A+t*(M+(K*z-I*B));V=c[h>>2]|0;W=c[u>>2]|0;X=W+(V*12|0)|0;c[X>>2]=N;Y=W+(V*12|0)+4|0;c[Y>>2]=O;Z=c[h>>2]|0;_=c[u>>2]|0;$=_+(Z*12|0)+8|0;g[$>>2]=T;aa=c[l>>2]|0;ba=_+(aa*12|0)|0;c[ba>>2]=P;ca=_+(aa*12|0)+4|0;c[ca>>2]=S;da=c[l>>2]|0;ea=c[u>>2]|0;fa=ea+(da*12|0)+8|0;g[fa>>2]=U;return}}function Ch(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0,i=0,j=0.0,k=0,l=0.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;d=a+104|0;e=c[d>>2]|0;f=b+32|0;h=c[f>>2]|0;i=h+(e*12|0)|0;j=+g[i>>2];k=h+(e*12|0)+4|0;l=+g[k>>2];m=+g[h+(e*12|0)+8>>2];e=a+108|0;n=c[e>>2]|0;o=+g[h+(n*12|0)>>2];p=+g[h+(n*12|0)+4>>2];q=+g[h+(n*12|0)+8>>2];r=+g[a+144>>2];s=+g[a+148>>2];t=+g[a+152>>2];u=+g[a+156>>2];v=+g[b>>2];b=a+92|0;w=+g[b>>2];x=v*+g[a+100>>2];y=w-(q-m)*+g[a+176>>2];z=-x;A=y>2]=x;A=x-w;w=m-t*A;m=q+u*A;A=+g[a+124>>2];q=+g[a+120>>2];x=+g[a+116>>2];z=+g[a+112>>2];y=x*w+(o-A*m-j);B=p+q*m-l-z*w;C=+g[a+164>>2]*y+ +g[a+172>>2]*B;b=a+84|0;D=+g[b>>2];n=a+88|0;E=+g[n>>2];F=D-(+g[a+160>>2]*y+ +g[a+168>>2]*B);g[b>>2]=F;B=E-C;g[n>>2]=B;C=v*+g[a+96>>2];v=F*F+B*B;if(v>C*C){y=+O(+v);if(y<1.1920928955078125e-007){G=B;H=F}else{v=1.0/y;y=F*v;g[b>>2]=y;I=B*v;g[n>>2]=I;G=I;H=y}y=C*H;g[b>>2]=y;H=C*G;g[n>>2]=H;J=y;K=H}else{J=F;K=B}B=J-D;D=K-E;g[i>>2]=j-r*B;g[k>>2]=l-r*D;k=c[f>>2]|0;g[k+((c[d>>2]|0)*12|0)+8>>2]=w-t*(z*D-B*x);d=c[e>>2]|0;g[k+(d*12|0)>>2]=o+s*B;g[k+(d*12|0)+4>>2]=p+s*D;g[(c[f>>2]|0)+((c[e>>2]|0)*12|0)+8>>2]=m+u*(D*q-B*A);return}function Dh(a,b){a=a|0;b=b|0;return 1}function Eh(a,b){a=a|0;b=b|0;var d=0,e=0.0,f=0.0,h=0.0,i=0.0,j=0.0;d=c[b+48>>2]|0;e=+g[d+24>>2];f=+g[b+68>>2];h=+g[d+20>>2];i=+g[b+72>>2];j=f*h+e*i+ +g[d+16>>2];g[a>>2]=+g[d+12>>2]+(e*f-h*i);g[a+4>>2]=j;return}function Fh(a,b){a=a|0;b=b|0;var d=0,e=0.0,f=0.0,h=0.0,i=0.0,j=0.0;d=c[b+52>>2]|0;e=+g[d+24>>2];f=+g[b+76>>2];h=+g[d+20>>2];i=+g[b+80>>2];j=f*h+e*i+ +g[d+16>>2];g[a>>2]=+g[d+12>>2]+(e*f-h*i);g[a+4>>2]=j;return}function Gh(a,b,c){a=a|0;b=b|0;c=+c;var d=0.0;d=+g[b+88>>2]*c;g[a>>2]=+g[b+84>>2]*c;g[a+4>>2]=d;return}function Hh(a,b){a=a|0;b=+b;return +(+g[a+92>>2]*b)}function Ih(a,b){a=a|0;b=+b;g[a+96>>2]=b;return}function Jh(a,b){a=a|0;b=+b;g[a+100>>2]=b;return}function Kh(a){a=a|0;var b=0,e=0,f=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0.0;b=i;i=i+96|0;e=b+80|0;f=b+72|0;j=b+64|0;k=b+48|0;l=b+32|0;m=b+24|0;n=b+16|0;o=b+8|0;p=c[(c[a+48>>2]|0)+8>>2]|0;q=c[(c[a+52>>2]|0)+8>>2]|0;bo(3880,b);c[o>>2]=p;bo(4769,o);c[n>>2]=q;bo(4795,n);c[m>>2]=d[a+61>>0];bo(4821,m);r=+g[a+72>>2];h[l>>3]=+g[a+68>>2];h[l+8>>3]=r;bo(4942,l);r=+g[a+80>>2];h[k>>3]=+g[a+76>>2];h[k+8>>3]=r;bo(4984,k);h[j>>3]=+g[a+96>>2];bo(3906,j);h[f>>3]=+g[a+100>>2];bo(3932,f);c[e>>2]=c[a+56>>2];bo(5099,e);i=b;return}function Lh(a){a=a|0;so(a);return}function Mh(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0.0,h=0,i=0.0,j=0.0,k=0.0;c[a+8>>2]=b;c[a+12>>2]=d;f=+g[e>>2]-+g[b+12>>2];h=e+4|0;i=+g[h>>2]-+g[b+16>>2];j=+g[b+24>>2];k=+g[b+20>>2];g[a+20>>2]=f*j+i*k;g[a+24>>2]=j*i-f*k;k=+g[e>>2]-+g[d+12>>2];f=+g[h>>2]-+g[d+16>>2];i=+g[d+24>>2];j=+g[d+20>>2];g[a+28>>2]=k*i+f*j;g[a+32>>2]=i*f-k*j;g[a+36>>2]=+g[d+72>>2]-+g[b+72>>2];return}function Nh(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;Oi(a,b);c[a>>2]=1328;d=b+20|0;e=c[d+4>>2]|0;f=a+80|0;c[f>>2]=c[d>>2];c[f+4>>2]=e;e=b+28|0;f=c[e+4>>2]|0;d=a+88|0;c[d>>2]=c[e>>2];c[d+4>>2]=f;c[a+96>>2]=c[b+36>>2];c[a+68>>2]=c[b+40>>2];c[a+72>>2]=c[b+44>>2];g[a+104>>2]=0.0;g[a+108>>2]=0.0;g[a+112>>2]=0.0;return}function Oh(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.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,P=0.0,S=0,T=0,U=0,V=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;e=i;i=i+48|0;f=e;h=c[b+48>>2]|0;j=c[h+8>>2]|0;l=b+116|0;c[l>>2]=j;m=c[b+52>>2]|0;n=c[m+8>>2]|0;o=b+120|0;c[o>>2]=n;p=h+44|0;q=c[p>>2]|0;r=c[p+4>>2]|0;p=b+140|0;c[p>>2]=q;c[p+4>>2]=r;p=m+44|0;s=c[p>>2]|0;t=c[p+4>>2]|0;p=b+148|0;c[p>>2]=s;c[p+4>>2]=t;p=c[h+136>>2]|0;c[b+156>>2]=p;u=c[m+136>>2]|0;c[b+160>>2]=u;v=c[h+144>>2]|0;c[b+164>>2]=v;h=c[m+144>>2]|0;c[b+168>>2]=h;m=c[d+28>>2]|0;w=+g[m+(j*12|0)+8>>2];x=d+32|0;y=c[x>>2]|0;z=c[y+(j*12|0)>>2]|0;A=c[y+(j*12|0)+4>>2]|0;B=+g[y+(j*12|0)+8>>2];C=+g[m+(n*12|0)+8>>2];m=c[y+(n*12|0)>>2]|0;j=c[y+(n*12|0)+4>>2]|0;D=+g[y+(n*12|0)+8>>2];E=+R(+w);F=+Q(+w);G=+R(+C);H=+Q(+C);I=+g[b+80>>2]-(c[k>>2]=q,+g[k>>2]);J=+g[b+84>>2]-(c[k>>2]=r,+g[k>>2]);K=F*I-E*J;L=E*I+F*J;r=b+124|0;g[r>>2]=K;q=b+128|0;g[q>>2]=L;J=+g[b+88>>2]-(c[k>>2]=s,+g[k>>2]);F=+g[b+92>>2]-(c[k>>2]=t,+g[k>>2]);I=H*J-G*F;E=G*J+H*F;t=b+132|0;g[t>>2]=I;s=b+136|0;g[s>>2]=E;F=(c[k>>2]=p,+g[k>>2]);H=(c[k>>2]=u,+g[k>>2]);J=(c[k>>2]=v,+g[k>>2]);G=(c[k>>2]=h,+g[k>>2]);M=F+H;g[f>>2]=M+J*(L*L)+G*(E*E);N=-(J*(L*K))-G*(E*I);g[f+12>>2]=N;O=-(J*L)-G*E;g[f+24>>2]=O;g[f+4>>2]=N;g[f+16>>2]=M+J*(K*K)+G*(I*I);M=J*K+G*I;g[f+28>>2]=M;g[f+8>>2]=O;g[f+20>>2]=M;M=J+G;g[f+32>>2]=M;h=b+68|0;v=b+172|0;if(+g[h>>2]>0.0){Wn(f,v);O=M>0.0?1.0/M:0.0;I=C-w-+g[b+96>>2];w=+g[h>>2]*6.2831854820251465;C=w*(O*w);K=+g[d>>2];N=K*(w*(O*2.0*+g[b+72>>2])+K*C);O=N!=0.0?1.0/N:0.0;g[b+100>>2]=O;N=M+O;g[b+204>>2]=N!=0.0?1.0/N:0.0;P=I*K*C*O}else{Xn(f,v);g[b+100>>2]=0.0;P=0.0}g[b+76>>2]=P;v=b+104|0;if(!(a[d+24>>0]|0)){g[v>>2]=0.0;g[b+108>>2]=0.0;g[b+112>>2]=0.0;S=z;T=A;U=m;V=j;W=B;X=D;Y=c[l>>2]|0;Z=c[x>>2]|0;_=Z+(Y*12|0)|0;c[_>>2]=S;$=Z+(Y*12|0)+4|0;c[$>>2]=T;aa=c[l>>2]|0;ba=c[x>>2]|0;ca=ba+(aa*12|0)+8|0;g[ca>>2]=W;da=c[o>>2]|0;ea=ba+(da*12|0)|0;c[ea>>2]=U;fa=ba+(da*12|0)+4|0;c[fa>>2]=V;ga=c[o>>2]|0;ha=c[x>>2]|0;ia=ha+(ga*12|0)+8|0;g[ia>>2]=X;i=e;return}else{P=+g[d+8>>2];O=P*+g[v>>2];g[v>>2]=O;v=b+108|0;C=P*+g[v>>2];g[v>>2]=C;v=b+112|0;K=P*+g[v>>2];g[v>>2]=K;v=(g[k>>2]=(c[k>>2]=z,+g[k>>2])-F*O,c[k>>2]|0);z=(g[k>>2]=(c[k>>2]=A,+g[k>>2])-F*C,c[k>>2]|0);A=(g[k>>2]=(c[k>>2]=m,+g[k>>2])+H*O,c[k>>2]|0);S=v;T=z;U=A;V=(g[k>>2]=(c[k>>2]=j,+g[k>>2])+H*C,c[k>>2]|0);W=B-J*(K+(C*+g[r>>2]-O*+g[q>>2]));X=D+G*(K+(C*+g[t>>2]-O*+g[s>>2]));Y=c[l>>2]|0;Z=c[x>>2]|0;_=Z+(Y*12|0)|0;c[_>>2]=S;$=Z+(Y*12|0)+4|0;c[$>>2]=T;aa=c[l>>2]|0;ba=c[x>>2]|0;ca=ba+(aa*12|0)+8|0;g[ca>>2]=W;da=c[o>>2]|0;ea=ba+(da*12|0)|0;c[ea>>2]=U;fa=ba+(da*12|0)+4|0;c[fa>>2]=V;ga=c[o>>2]|0;ha=c[x>>2]|0;ia=ha+(ga*12|0)+8|0;g[ia>>2]=X;i=e;return}}function Ph(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,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,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,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0;d=a+116|0;e=c[d>>2]|0;f=b+32|0;b=c[f>>2]|0;h=c[b+(e*12|0)>>2]|0;i=b+(e*12|0)+4|0;j=c[i>>2]|0;l=+g[b+(e*12|0)+8>>2];m=a+120|0;n=c[m>>2]|0;o=c[b+(n*12|0)>>2]|0;p=c[b+(n*12|0)+4>>2]|0;q=+g[b+(n*12|0)+8>>2];r=+g[a+156>>2];s=+g[a+160>>2];t=+g[a+164>>2];u=+g[a+168>>2];v=+g[a+204>>2];if(+g[a+68>>2]>0.0){n=a+112|0;w=+g[n>>2];x=v*(q-l+ +g[a+76>>2]+ +g[a+100>>2]*w);y=-x;g[n>>2]=w-x;x=l-t*y;w=q+u*y;y=+g[a+136>>2];z=+g[a+132>>2];A=(c[k>>2]=o,+g[k>>2]);B=(c[k>>2]=p,+g[k>>2]);C=(c[k>>2]=h,+g[k>>2]);D=(c[k>>2]=j,+g[k>>2]);E=+g[a+128>>2];F=+g[a+124>>2];G=E*x+(A-y*w-C);H=B+z*w-D-F*x;I=+g[a+172>>2]*G+ +g[a+184>>2]*H;J=+g[a+176>>2]*G+ +g[a+188>>2]*H;H=-I;G=-J;n=a+104|0;g[n>>2]=+g[n>>2]-I;n=a+108|0;g[n>>2]=+g[n>>2]-J;K=D-r*G;L=C-r*H;M=B+s*G;N=A+s*H;O=x-t*(F*G-E*H);P=w+u*(z*G-y*H);Q=b+(e*12|0)|0;g[Q>>2]=L;g[i>>2]=K;R=c[d>>2]|0;S=c[f>>2]|0;T=S+(R*12|0)+8|0;g[T>>2]=O;U=c[m>>2]|0;V=S+(U*12|0)|0;g[V>>2]=N;W=S+(U*12|0)+4|0;g[W>>2]=M;X=c[m>>2]|0;Y=c[f>>2]|0;Z=Y+(X*12|0)+8|0;g[Z>>2]=P;return}else{H=+g[a+136>>2];y=+g[a+132>>2];G=(c[k>>2]=o,+g[k>>2]);z=(c[k>>2]=p,+g[k>>2]);w=(c[k>>2]=h,+g[k>>2]);E=(c[k>>2]=j,+g[k>>2]);F=+g[a+128>>2];x=+g[a+124>>2];A=G-q*H-w+l*F;B=z+q*y-E-l*x;C=q-l;D=A*+g[a+172>>2]+B*+g[a+184>>2]+C*+g[a+196>>2];J=A*+g[a+176>>2]+B*+g[a+188>>2]+C*+g[a+200>>2];I=A*+g[a+180>>2]+B*+g[a+192>>2]+C*v;v=-D;C=-J;j=a+104|0;g[j>>2]=+g[j>>2]-D;j=a+108|0;g[j>>2]=+g[j>>2]-J;j=a+112|0;g[j>>2]=+g[j>>2]-I;K=E-r*C;L=w-r*v;M=z+s*C;N=G+s*v;O=l-t*(x*C-F*v-I);P=q+u*(y*C-H*v-I);Q=b+(e*12|0)|0;g[Q>>2]=L;g[i>>2]=K;R=c[d>>2]|0;S=c[f>>2]|0;T=S+(R*12|0)+8|0;g[T>>2]=O;U=c[m>>2]|0;V=S+(U*12|0)|0;g[V>>2]=N;W=S+(U*12|0)+4|0;g[W>>2]=M;X=c[m>>2]|0;Y=c[f>>2]|0;Z=Y+(X*12|0)+8|0;g[Z>>2]=P;return}}function Qh(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.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,N=0.0;d=i;i=i+80|0;e=d+40|0;f=d+32|0;h=d+24|0;j=d+12|0;k=d;l=a+116|0;m=c[l>>2]|0;n=b+28|0;b=c[n>>2]|0;o=+g[b+(m*12|0)>>2];p=+g[b+(m*12|0)+4>>2];q=+g[b+(m*12|0)+8>>2];m=a+120|0;r=c[m>>2]|0;s=+g[b+(r*12|0)>>2];t=+g[b+(r*12|0)+4>>2];u=+g[b+(r*12|0)+8>>2];v=+R(+q);w=+Q(+q);x=+R(+u);y=+Q(+u);z=+g[a+156>>2];A=+g[a+160>>2];B=+g[a+164>>2];C=+g[a+168>>2];D=+g[a+80>>2]-+g[a+140>>2];E=+g[a+84>>2]-+g[a+144>>2];F=w*D-v*E;G=v*D+w*E;E=+g[a+88>>2]-+g[a+148>>2];w=+g[a+92>>2]-+g[a+152>>2];D=y*E-x*w;v=x*E+y*w;w=z+A;g[e>>2]=w+B*(G*G)+C*(v*v);y=-(B*(G*F))-C*(v*D);g[e+12>>2]=y;E=-(B*G)-C*v;g[e+24>>2]=E;g[e+4>>2]=y;g[e+16>>2]=w+B*(F*F)+C*(D*D);w=B*F+C*D;g[e+28>>2]=w;g[e+8>>2]=E;g[e+20>>2]=w;g[e+32>>2]=B+C;w=s+D-o-F;E=t+v-p-G;if(+g[a+68>>2]>0.0){g[f>>2]=w;g[f+4>>2]=E;y=+O(+(E*E+w*w));Vn(h,e,f);x=-+g[h>>2];H=-+g[h+4>>2];I=D*H-v*x;J=H;K=x;L=F*H-G*x;M=1;N=y}else{y=u-q-+g[a+96>>2];x=+O(+(w*w+E*E));g[j>>2]=w;g[j+4>>2]=E;g[j+8>>2]=y;Un(k,e,j);E=-+g[k>>2];w=-+g[k+4>>2];H=+g[k+8>>2];I=D*w-v*E-H;J=w;K=E;L=F*w-G*E-H;M=(y>0.0?y:-y)<=.03490658849477768;N=x}k=c[l>>2]|0;j=c[n>>2]|0;g[j+(k*12|0)>>2]=o-z*K;g[j+(k*12|0)+4>>2]=p-z*J;k=c[n>>2]|0;g[k+((c[l>>2]|0)*12|0)+8>>2]=q-B*L;l=c[m>>2]|0;g[k+(l*12|0)>>2]=s+A*K;g[k+(l*12|0)+4>>2]=t+A*J;g[(c[n>>2]|0)+((c[m>>2]|0)*12|0)+8>>2]=u+C*I;i=d;return N<=.004999999888241291&M|0}function Rh(a,b){a=a|0;b=b|0;var d=0,e=0.0,f=0.0,h=0.0,i=0.0,j=0.0;d=c[b+48>>2]|0;e=+g[d+24>>2];f=+g[b+80>>2];h=+g[d+20>>2];i=+g[b+84>>2];j=f*h+e*i+ +g[d+16>>2];g[a>>2]=+g[d+12>>2]+(e*f-h*i);g[a+4>>2]=j;return}function Sh(a,b){a=a|0;b=b|0;var d=0,e=0.0,f=0.0,h=0.0,i=0.0,j=0.0;d=c[b+52>>2]|0;e=+g[d+24>>2];f=+g[b+88>>2];h=+g[d+20>>2];i=+g[b+92>>2];j=f*h+e*i+ +g[d+16>>2];g[a>>2]=+g[d+12>>2]+(e*f-h*i);g[a+4>>2]=j;return}function Th(a,b,c){a=a|0;b=b|0;c=+c;var d=0.0;d=+g[b+108>>2]*c;g[a>>2]=+g[b+104>>2]*c;g[a+4>>2]=d;return}function Uh(a,b){a=a|0;b=+b;return +(+g[a+112>>2]*b)}function Vh(a){a=a|0;var b=0,e=0,f=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0.0;b=i;i=i+96|0;e=b+88|0;f=b+80|0;j=b+72|0;k=b+64|0;l=b+48|0;m=b+32|0;n=b+24|0;o=b+16|0;p=b+8|0;q=c[(c[a+48>>2]|0)+8>>2]|0;r=c[(c[a+52>>2]|0)+8>>2]|0;bo(3973,b);c[p>>2]=q;bo(4769,p);c[o>>2]=r;bo(4795,o);c[n>>2]=d[a+61>>0];bo(4821,n);s=+g[a+84>>2];h[m>>3]=+g[a+80>>2];h[m+8>>3]=s;bo(4942,m);s=+g[a+92>>2];h[l>>3]=+g[a+88>>2];h[l+8>>3]=s;bo(4984,l);h[k>>3]=+g[a+96>>2];bo(4384,k);h[j>>3]=+g[a+68>>2];bo(4670,j);h[f>>3]=+g[a+72>>2];bo(4699,f);c[e>>2]=c[a+56>>2];bo(5099,e);i=b;return}function Wh(a){a=a|0;so(a);return}function Xh(a,b){a=a|0;b=b|0;var d=0,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.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.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.0,L=0,M=0.0,N=0.0,O=0,P=0;Oi(a,b);c[a>>2]=1380;d=a+92|0;e=a+100|0;f=a+108|0;h=a+116|0;i=a+124|0;j=a+132|0;l=c[b+20>>2]|0;c[a+68>>2]=l;m=b+24|0;n=c[m>>2]|0;c[a+72>>2]=n;o=l;l=c[o+4>>2]|0;c[a+76>>2]=l;p=n;n=c[p+4>>2]|0;c[a+80>>2]=n;q=c[o+48>>2]|0;c[a+84>>2]=q;r=c[o+52>>2]|0;c[a+48>>2]=r;s=+g[r+20>>2];t=+g[r+24>>2];u=q;v=+g[u+20>>2];w=+g[u+24>>2];if((l|0)==1){x=+g[r+72>>2];y=+g[u+72>>2];l=o+68|0;q=c[l+4>>2]|0;z=f;c[z>>2]=c[l>>2];c[z+4>>2]=q;q=o+76|0;z=c[q+4>>2]|0;l=d;c[l>>2]=c[q>>2];c[l+4>>2]=z;z=c[o+116>>2]|0;c[a+140>>2]=z;g[i>>2]=0.0;g[a+128>>2]=0.0;A=x-y-(c[k>>2]=z,+g[k>>2])}else{y=+g[u+16>>2];x=+g[u+12>>2];B=+g[r+16>>2];C=+g[r+12>>2];r=o+68|0;u=c[r>>2]|0;z=c[r+4>>2]|0;r=f;c[r>>2]=u;c[r+4>>2]=z;r=o+76|0;f=c[r>>2]|0;l=c[r+4>>2]|0;r=d;c[r>>2]=f;c[r+4>>2]=l;c[a+140>>2]=c[o+100>>2];r=o+84|0;o=c[r>>2]|0;d=c[r+4>>2]|0;r=i;c[r>>2]=o;c[r+4>>2]=d;D=(c[k>>2]=u,+g[k>>2]);E=(c[k>>2]=z,+g[k>>2]);F=(c[k>>2]=f,+g[k>>2]);G=(c[k>>2]=l,+g[k>>2]);H=C-x+(t*F-s*G);x=B-y+(s*F+t*G);G=(c[k>>2]=o,+g[k>>2])*(w*H+v*x-D);A=G+(c[k>>2]=d,+g[k>>2])*(w*x-v*H-E)}d=c[p+48>>2]|0;c[a+88>>2]=d;o=c[p+52>>2]|0;c[a+52>>2]=o;E=+g[o+20>>2];H=+g[o+24>>2];p=d;v=+g[p+20>>2];x=+g[p+24>>2];d=c[m>>2]|0;if((n|0)==1){w=+g[o+72>>2];G=+g[p+72>>2];n=d+68|0;m=c[n+4>>2]|0;l=h;c[l>>2]=c[n>>2];c[l+4>>2]=m;m=d+76|0;l=c[m+4>>2]|0;n=e;c[n>>2]=c[m>>2];c[n+4>>2]=l;l=c[d+116>>2]|0;c[a+144>>2]=l;g[j>>2]=0.0;g[a+136>>2]=0.0;I=w-G-(c[k>>2]=l,+g[k>>2]);J=b+28|0;K=+g[J>>2];L=a+152|0;g[L>>2]=K;M=I*K;N=A+M;O=a+148|0;g[O>>2]=N;P=a+156|0;g[P>>2]=0.0;return}else{G=+g[p+16>>2];w=+g[p+12>>2];D=+g[o+16>>2];t=+g[o+12>>2];o=d+68|0;p=c[o>>2]|0;l=c[o+4>>2]|0;o=h;c[o>>2]=p;c[o+4>>2]=l;o=d+76|0;h=c[o>>2]|0;n=c[o+4>>2]|0;o=e;c[o>>2]=h;c[o+4>>2]=n;c[a+144>>2]=c[d+100>>2];o=d+84|0;d=c[o>>2]|0;e=c[o+4>>2]|0;o=j;c[o>>2]=d;c[o+4>>2]=e;F=(c[k>>2]=p,+g[k>>2]);s=(c[k>>2]=l,+g[k>>2]);y=(c[k>>2]=h,+g[k>>2]);B=(c[k>>2]=n,+g[k>>2]);C=t-w+(H*y-E*B);w=D-G+(E*y+H*B);B=(c[k>>2]=d,+g[k>>2])*(x*C+v*w-F);I=B+(c[k>>2]=e,+g[k>>2])*(x*w-v*C-s);J=b+28|0;K=+g[J>>2];L=a+152|0;g[L>>2]=K;M=I*K;N=A+M;O=a+148|0;g[O>>2]=N;P=a+156|0;g[P>>2]=0.0;return}}function Yh(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.0,A=0,B=0,C=0,D=0,E=0.0,F=0.0,G=0,H=0.0,I=0.0,J=0,K=0,L=0.0,M=0.0,N=0,O=0.0,P=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,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0.0,za=0.0,Aa=0.0,Ba=0.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;e=c[b+48>>2]|0;f=c[e+8>>2]|0;h=b+160|0;c[h>>2]=f;i=c[b+52>>2]|0;j=c[i+8>>2]|0;l=b+164|0;c[l>>2]=j;m=c[b+84>>2]|0;n=b+168|0;c[n>>2]=c[m+8>>2];o=c[b+88>>2]|0;p=b+172|0;c[p>>2]=c[o+8>>2];q=b+176|0;r=e+44|0;s=c[r+4>>2]|0;t=q;c[t>>2]=c[r>>2];c[t+4>>2]=s;s=b+184|0;t=i+44|0;r=c[t+4>>2]|0;u=s;c[u>>2]=c[t>>2];c[u+4>>2]=r;r=b+192|0;u=m+44|0;t=c[u+4>>2]|0;v=r;c[v>>2]=c[u>>2];c[v+4>>2]=t;t=b+200|0;v=o+44|0;u=c[v+4>>2]|0;w=t;c[w>>2]=c[v>>2];c[w+4>>2]=u;u=b+208|0;c[u>>2]=c[e+136>>2];w=b+212|0;c[w>>2]=c[i+136>>2];v=c[m+136>>2]|0;c[b+216>>2]=v;x=c[o+136>>2]|0;c[b+220>>2]=x;y=c[e+144>>2]|0;c[b+224>>2]=y;e=c[i+144>>2]|0;c[b+228>>2]=e;i=c[m+144>>2]|0;c[b+232>>2]=i;m=c[o+144>>2]|0;c[b+236>>2]=m;o=c[d+28>>2]|0;z=+g[o+(f*12|0)+8>>2];A=d+32|0;B=c[A>>2]|0;C=c[B+(f*12|0)>>2]|0;D=c[B+(f*12|0)+4>>2]|0;E=+g[B+(f*12|0)+8>>2];F=+g[o+(j*12|0)+8>>2];f=c[B+(j*12|0)>>2]|0;G=c[B+(j*12|0)+4>>2]|0;H=+g[B+(j*12|0)+8>>2];j=c[n>>2]|0;I=+g[o+(j*12|0)+8>>2];J=c[B+(j*12|0)>>2]|0;K=c[B+(j*12|0)+4>>2]|0;L=+g[B+(j*12|0)+8>>2];j=c[p>>2]|0;M=+g[o+(j*12|0)+8>>2];o=c[B+(j*12|0)>>2]|0;N=c[B+(j*12|0)+4>>2]|0;O=+g[B+(j*12|0)+8>>2];P=+R(+z);S=+Q(+z);z=+R(+F);T=+Q(+F);F=+R(+I);U=+Q(+I);I=+R(+M);V=+Q(+M);j=b+272|0;g[j>>2]=0.0;M=(c[k>>2]=v,+g[k>>2]);W=(c[k>>2]=i,+g[k>>2]);X=(c[k>>2]=y,+g[k>>2]);Y=(c[k>>2]=x,+g[k>>2]);Z=(c[k>>2]=m,+g[k>>2]);_=(c[k>>2]=e,+g[k>>2]);if((c[b+76>>2]|0)==1){g[b+264>>2]=1.0;$=X+W;aa=0.0;ba=0.0;ca=1.0;da=1.0}else{ea=+g[b+124>>2];fa=+g[b+128>>2];ga=U*ea-F*fa;ha=F*ea+U*fa;fa=+g[b+108>>2]-+g[r>>2];ea=+g[b+112>>2]-+g[b+196>>2];ia=+g[b+92>>2]-+g[q>>2];ja=+g[b+96>>2]-+g[b+180>>2];ka=ha*(U*fa-F*ea)-ga*(F*fa+U*ea);g[b+264>>2]=ka;ea=ha*(S*ia-P*ja)-ga*(P*ia+S*ja);$=M+ +g[u>>2]+ka*(W*ka)+ea*(X*ea);aa=ga;ba=ha;ca=ea;da=ka}ka=$+0.0;g[b+240>>2]=aa;g[b+244>>2]=ba;g[b+256>>2]=ca;g[j>>2]=ka;if((c[b+80>>2]|0)==1){q=c[b+152>>2]|0;c[b+260>>2]=q;c[b+268>>2]=q;$=(c[k>>2]=q,+g[k>>2]);la=$*$*(_+Z);ma=0.0;na=0.0;oa=$;pa=$}else{$=+g[b+132>>2];ea=+g[b+136>>2];ha=V*$-I*ea;ga=I*$+V*ea;ea=+g[b+116>>2]-+g[t>>2];$=+g[b+120>>2]-+g[b+204>>2];ja=+g[b+100>>2]-+g[s>>2];S=+g[b+104>>2]-+g[b+188>>2];ia=+g[b+152>>2];P=(ga*(V*ea-I*$)-ha*(I*ea+V*$))*ia;g[b+268>>2]=P;$=ia*(ga*(T*ja-z*S)-ha*(z*ja+T*S));g[b+260>>2]=$;la=ia*ia*(Y+ +g[w>>2])+P*(Z*P)+$*($*_);ma=ha*ia;na=ga*ia;oa=$;pa=P}P=ka+la;g[b+248>>2]=ma;g[b+252>>2]=na;g[j>>2]=P>0.0?1.0/P:0.0;if(!(a[d+24>>0]|0)){g[b+156>>2]=0.0;qa=C;ra=D;sa=f;ta=G;ua=J;va=K;wa=o;xa=N;ya=E;za=H;Aa=L;Ba=O;Ca=c[h>>2]|0;Da=c[A>>2]|0;Ea=Da+(Ca*12|0)|0;c[Ea>>2]=qa;Fa=Da+(Ca*12|0)+4|0;c[Fa>>2]=ra;Ga=c[h>>2]|0;Ha=c[A>>2]|0;Ia=Ha+(Ga*12|0)+8|0;g[Ia>>2]=ya;Ja=c[l>>2]|0;Ka=Ha+(Ja*12|0)|0;c[Ka>>2]=sa;La=Ha+(Ja*12|0)+4|0;c[La>>2]=ta;Ma=c[l>>2]|0;Na=c[A>>2]|0;Oa=Na+(Ma*12|0)+8|0;g[Oa>>2]=za;Pa=c[n>>2]|0;Qa=Na+(Pa*12|0)|0;c[Qa>>2]=ua;Ra=Na+(Pa*12|0)+4|0;c[Ra>>2]=va;Sa=c[n>>2]|0;Ta=c[A>>2]|0;Ua=Ta+(Sa*12|0)+8|0;g[Ua>>2]=Aa;Va=c[p>>2]|0;Wa=Ta+(Va*12|0)|0;c[Wa>>2]=wa;Xa=Ta+(Va*12|0)+4|0;c[Xa>>2]=xa;Ya=c[p>>2]|0;Za=c[A>>2]|0;_a=Za+(Ya*12|0)+8|0;g[_a>>2]=Ba;return}else{P=+g[b+156>>2];la=+g[u>>2]*P;u=(g[k>>2]=(c[k>>2]=C,+g[k>>2])+aa*la,c[k>>2]|0);C=(g[k>>2]=(c[k>>2]=D,+g[k>>2])+la*ba,c[k>>2]|0);la=P*+g[w>>2];w=(g[k>>2]=(c[k>>2]=f,+g[k>>2])+ma*la,c[k>>2]|0);f=(g[k>>2]=(c[k>>2]=G,+g[k>>2])+la*na,c[k>>2]|0);la=P*M;G=(g[k>>2]=(c[k>>2]=J,+g[k>>2])-aa*la,c[k>>2]|0);J=(g[k>>2]=(c[k>>2]=K,+g[k>>2])-ba*la,c[k>>2]|0);la=P*Y;K=(g[k>>2]=(c[k>>2]=o,+g[k>>2])-ma*la,c[k>>2]|0);qa=u;ra=C;sa=w;ta=f;ua=G;va=J;wa=K;xa=(g[k>>2]=(c[k>>2]=N,+g[k>>2])-na*la,c[k>>2]|0);ya=E+P*X*ca;za=H+P*_*oa;Aa=L-P*W*da;Ba=O-P*Z*pa;Ca=c[h>>2]|0;Da=c[A>>2]|0;Ea=Da+(Ca*12|0)|0;c[Ea>>2]=qa;Fa=Da+(Ca*12|0)+4|0;c[Fa>>2]=ra;Ga=c[h>>2]|0;Ha=c[A>>2]|0;Ia=Ha+(Ga*12|0)+8|0;g[Ia>>2]=ya;Ja=c[l>>2]|0;Ka=Ha+(Ja*12|0)|0;c[Ka>>2]=sa;La=Ha+(Ja*12|0)+4|0;c[La>>2]=ta;Ma=c[l>>2]|0;Na=c[A>>2]|0;Oa=Na+(Ma*12|0)+8|0;g[Oa>>2]=za;Pa=c[n>>2]|0;Qa=Na+(Pa*12|0)|0;c[Qa>>2]=ua;Ra=Na+(Pa*12|0)+4|0;c[Ra>>2]=va;Sa=c[n>>2]|0;Ta=c[A>>2]|0;Ua=Ta+(Sa*12|0)+8|0;g[Ua>>2]=Aa;Va=c[p>>2]|0;Wa=Ta+(Va*12|0)|0;c[Wa>>2]=wa;Xa=Ta+(Va*12|0)+4|0;c[Xa>>2]=xa;Ya=c[p>>2]|0;Za=c[A>>2]|0;_a=Za+(Ya*12|0)+8|0;g[_a>>2]=Ba;return}}function Zh(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0.0,i=0.0,j=0.0,k=0,l=0.0,m=0.0,n=0.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;d=a+160|0;e=c[d>>2]|0;f=b+32|0;b=c[f>>2]|0;h=+g[b+(e*12|0)>>2];i=+g[b+(e*12|0)+4>>2];j=+g[b+(e*12|0)+8>>2];e=a+164|0;k=c[e>>2]|0;l=+g[b+(k*12|0)>>2];m=+g[b+(k*12|0)+4>>2];n=+g[b+(k*12|0)+8>>2];k=a+168|0;o=c[k>>2]|0;p=+g[b+(o*12|0)>>2];q=+g[b+(o*12|0)+4>>2];r=+g[b+(o*12|0)+8>>2];o=a+172|0;s=c[o>>2]|0;t=+g[b+(s*12|0)>>2];u=+g[b+(s*12|0)+4>>2];v=+g[b+(s*12|0)+8>>2];w=+g[a+240>>2];x=+g[a+244>>2];y=+g[a+248>>2];z=+g[a+252>>2];A=+g[a+256>>2];B=+g[a+264>>2];C=+g[a+260>>2];D=+g[a+268>>2];E=+g[a+272>>2]*((h-p)*w+(i-q)*x+((l-t)*y+(m-u)*z)+(j*A-r*B+(n*C-v*D)));F=-E;s=a+156|0;g[s>>2]=+g[s>>2]-E;E=+g[a+208>>2]*F;G=j+ +g[a+224>>2]*F*A;A=+g[a+212>>2]*F;j=n+ +g[a+228>>2]*F*C;C=+g[a+216>>2]*F;n=r-+g[a+232>>2]*F*B;B=+g[a+220>>2]*F;r=v-+g[a+236>>2]*F*D;a=c[d>>2]|0;s=c[f>>2]|0;g[s+(a*12|0)>>2]=h+w*E;g[s+(a*12|0)+4>>2]=i+x*E;a=c[f>>2]|0;g[a+((c[d>>2]|0)*12|0)+8>>2]=G;d=c[e>>2]|0;g[a+(d*12|0)>>2]=l+y*A;g[a+(d*12|0)+4>>2]=m+A*z;d=c[f>>2]|0;g[d+((c[e>>2]|0)*12|0)+8>>2]=j;e=c[k>>2]|0;g[d+(e*12|0)>>2]=p-w*C;g[d+(e*12|0)+4>>2]=q-x*C;e=c[f>>2]|0;g[e+((c[k>>2]|0)*12|0)+8>>2]=n;k=c[o>>2]|0;g[e+(k*12|0)>>2]=t-y*B;g[e+(k*12|0)+4>>2]=u-z*B;g[(c[f>>2]|0)+((c[o>>2]|0)*12|0)+8>>2]=r;return}function _h(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,n=0,o=0,p=0,q=0.0,r=0,s=0,t=0,u=0.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.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,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;d=a+160|0;e=c[d>>2]|0;f=b+28|0;b=c[f>>2]|0;h=c[b+(e*12|0)>>2]|0;i=b+(e*12|0)+4|0;j=c[i>>2]|0;l=+g[b+(e*12|0)+8>>2];m=a+164|0;n=c[m>>2]|0;o=c[b+(n*12|0)>>2]|0;p=c[b+(n*12|0)+4>>2]|0;q=+g[b+(n*12|0)+8>>2];n=a+168|0;r=c[n>>2]|0;s=c[b+(r*12|0)>>2]|0;t=c[b+(r*12|0)+4>>2]|0;u=+g[b+(r*12|0)+8>>2];r=a+172|0;v=c[r>>2]|0;w=c[b+(v*12|0)>>2]|0;x=c[b+(v*12|0)+4>>2]|0;y=+g[b+(v*12|0)+8>>2];z=+R(+l);A=+Q(+l);B=+R(+q);C=+Q(+q);D=+R(+u);E=+Q(+u);F=+R(+y);G=+Q(+y);H=+g[a+224>>2];I=+g[a+232>>2];if((c[a+76>>2]|0)==1){J=0.0;K=0.0;L=1.0;M=1.0;N=l-u-+g[a+140>>2];O=H+I}else{P=+g[a+124>>2];S=+g[a+128>>2];T=E*P-D*S;U=D*P+E*S;V=+g[a+108>>2]-+g[a+192>>2];W=+g[a+112>>2]-+g[a+196>>2];X=+g[a+92>>2]-+g[a+176>>2];Y=+g[a+96>>2]-+g[a+180>>2];Z=A*X-z*Y;_=z*X+A*Y;Y=U*(E*V-D*W)-T*(D*V+E*W);A=U*Z-T*_;X=(c[k>>2]=h,+g[k>>2]);z=X-(c[k>>2]=s,+g[k>>2]);X=(c[k>>2]=j,+g[k>>2]);$=z+Z;Z=X-(c[k>>2]=t,+g[k>>2])+_;J=T;K=U;L=A;M=Y;N=P*(E*$+D*Z-V)+S*(E*Z-D*$-W);O=+g[a+216>>2]+ +g[a+208>>2]+Y*(Y*I)+A*(H*A)}A=+g[a+152>>2];Y=+g[a+228>>2];if((c[a+80>>2]|0)==1){W=+g[a+236>>2];aa=A*A*(Y+W);ba=0.0;ca=0.0;da=W;ea=A;fa=A;ga=q-y-+g[a+144>>2]}else{W=+g[a+132>>2];$=+g[a+136>>2];D=G*W-F*$;Z=F*W+G*$;E=+g[a+116>>2]-+g[a+200>>2];S=+g[a+120>>2]-+g[a+204>>2];V=+g[a+100>>2]-+g[a+184>>2];P=+g[a+104>>2]-+g[a+188>>2];U=C*V-B*P;T=B*V+C*P;P=A*(Z*(G*E-F*S)-D*(F*E+G*S));C=A*(Z*U-D*T);V=+g[a+236>>2];B=(c[k>>2]=o,+g[k>>2]);_=B-(c[k>>2]=w,+g[k>>2]);B=(c[k>>2]=p,+g[k>>2]);X=_+U;U=B-(c[k>>2]=x,+g[k>>2])+T;aa=A*A*(+g[a+220>>2]+ +g[a+212>>2])+P*(P*V)+C*(Y*C);ba=D*A;ca=Z*A;da=V;ea=C;fa=P;ga=W*(G*X+F*U-E)+$*(G*U-F*X-S)}S=O+0.0+aa;if(S>0.0)ha=-(N+ga*A-+g[a+148>>2])/S;else ha=0.0;S=ha*+g[a+208>>2];A=(c[k>>2]=h,+g[k>>2])+J*S;ga=(c[k>>2]=j,+g[k>>2])+K*S;S=ha*+g[a+212>>2];N=(c[k>>2]=o,+g[k>>2])+ba*S;aa=(c[k>>2]=p,+g[k>>2])+ca*S;S=ha*+g[a+216>>2];O=(c[k>>2]=s,+g[k>>2])-J*S;J=(c[k>>2]=t,+g[k>>2])-K*S;S=ha*+g[a+220>>2];K=(c[k>>2]=w,+g[k>>2])-ba*S;ba=(c[k>>2]=x,+g[k>>2])-ca*S;g[b+(e*12|0)>>2]=A;g[i>>2]=ga;i=c[f>>2]|0;g[i+((c[d>>2]|0)*12|0)+8>>2]=l+L*(ha*H);d=c[m>>2]|0;g[i+(d*12|0)>>2]=N;g[i+(d*12|0)+4>>2]=aa;d=c[f>>2]|0;g[d+((c[m>>2]|0)*12|0)+8>>2]=q+ea*(ha*Y);m=c[n>>2]|0;g[d+(m*12|0)>>2]=O;g[d+(m*12|0)+4>>2]=J;m=c[f>>2]|0;g[m+((c[n>>2]|0)*12|0)+8>>2]=u-M*(ha*I);n=c[r>>2]|0;g[m+(n*12|0)>>2]=K;g[m+(n*12|0)+4>>2]=ba;g[(c[f>>2]|0)+((c[r>>2]|0)*12|0)+8>>2]=y-fa*(ha*da);return 1}function $h(a,b){a=a|0;b=b|0;var d=0,e=0.0,f=0.0,h=0.0,i=0.0,j=0.0;d=c[b+48>>2]|0;e=+g[d+24>>2];f=+g[b+92>>2];h=+g[d+20>>2];i=+g[b+96>>2];j=f*h+e*i+ +g[d+16>>2];g[a>>2]=+g[d+12>>2]+(e*f-h*i);g[a+4>>2]=j;return}function ai(a,b){a=a|0;b=b|0;var d=0,e=0.0,f=0.0,h=0.0,i=0.0,j=0.0;d=c[b+52>>2]|0;e=+g[d+24>>2];f=+g[b+100>>2];h=+g[d+20>>2];i=+g[b+104>>2];j=f*h+e*i+ +g[d+16>>2];g[a>>2]=+g[d+12>>2]+(e*f-h*i);g[a+4>>2]=j;return}function bi(a,b,c){a=a|0;b=b|0;c=+c;var d=0.0,e=0.0;d=+g[b+156>>2];e=d*+g[b+244>>2]*c;g[a>>2]=d*+g[b+240>>2]*c;g[a+4>>2]=e;return}function ci(a,b){a=a|0;b=+b;return +(+g[a+156>>2]*+g[a+256>>2]*b)}function di(a,b){a=a|0;b=+b;g[a+152>>2]=b;return}function ei(a){a=a|0;var b=0,e=0,f=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;b=i;i=i+64|0;e=b+56|0;f=b+48|0;j=b+40|0;k=b+32|0;l=b+24|0;m=b+16|0;n=b+8|0;o=c[(c[a+48>>2]|0)+8>>2]|0;p=c[(c[a+52>>2]|0)+8>>2]|0;q=c[(c[a+68>>2]|0)+56>>2]|0;r=c[(c[a+72>>2]|0)+56>>2]|0;bo(4009,b);c[n>>2]=o;bo(4769,n);c[m>>2]=p;bo(4795,m);c[l>>2]=d[a+61>>0];bo(4821,l);c[k>>2]=q;bo(4031,k);c[j>>2]=r;bo(4058,j);h[f>>3]=+g[a+152>>2];bo(5076,f);c[e>>2]=c[a+56>>2];bo(5099,e);i=b;return}function fi(a){a=a|0;so(a);return}function gi(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var h=0.0,i=0,j=0.0,k=0,l=0.0,m=0,n=0.0;c[a+8>>2]=b;c[a+12>>2]=d;h=+g[e>>2]-+g[b+12>>2];i=e+4|0;j=+g[i>>2]-+g[b+16>>2];k=b+24|0;l=+g[k>>2];m=b+20|0;n=+g[m>>2];g[a+20>>2]=h*l+j*n;g[a+24>>2]=l*j-h*n;n=+g[e>>2]-+g[d+12>>2];h=+g[i>>2]-+g[d+16>>2];j=+g[d+24>>2];l=+g[d+20>>2];g[a+28>>2]=n*j+h*l;g[a+32>>2]=j*h-n*l;l=+g[k>>2];n=+g[f>>2];h=+g[m>>2];j=+g[f+4>>2];g[a+36>>2]=l*n+h*j;g[a+40>>2]=l*j-n*h;g[a+44>>2]=+g[d+72>>2]-+g[b+72>>2];return}function hi(b,d){b=b|0;d=d|0;var e=0,f=0,h=0,i=0,j=0.0,l=0.0,m=0.0,n=0.0,o=0,p=0.0;Oi(b,d);c[b>>2]=1432;e=b+84|0;f=d+20|0;h=c[f+4>>2]|0;i=b+68|0;c[i>>2]=c[f>>2];c[i+4>>2]=h;h=d+28|0;i=c[h+4>>2]|0;f=b+76|0;c[f>>2]=c[h>>2];c[f+4>>2]=i;i=d+36|0;f=c[i>>2]|0;h=c[i+4>>2]|0;i=e;c[i>>2]=f;c[i+4>>2]=h;j=(c[k>>2]=f,+g[k>>2]);l=(c[k>>2]=h,+g[k>>2]);m=+O(+(j*j+l*l));if(m<1.1920928955078125e-007){n=l;o=f}else{p=1.0/m;m=j*p;g[e>>2]=m;j=l*p;g[b+88>>2]=j;n=j;o=(g[k>>2]=m,c[k>>2]|0)}g[b+92>>2]=-n;c[b+96>>2]=o;c[b+100>>2]=c[d+44>>2];o=b+104|0;g[b+252>>2]=0.0;c[o>>2]=0;c[o+4>>2]=0;c[o+8>>2]=0;c[o+12>>2]=0;c[b+120>>2]=c[d+52>>2];c[b+124>>2]=c[d+56>>2];c[b+128>>2]=c[d+64>>2];c[b+132>>2]=c[d+68>>2];a[b+136>>0]=a[d+48>>0]|0;a[b+137>>0]=a[d+60>>0]|0;c[b+140>>2]=0;d=b+184|0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;c[d+12>>2]=0;return}function ii(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.0,u=0,v=0,w=0,x=0,y=0.0,z=0.0,A=0,B=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,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,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,pa=0,qa=0,ra=0;e=c[b+48>>2]|0;f=c[e+8>>2]|0;h=b+144|0;c[h>>2]=f;i=c[b+52>>2]|0;j=c[i+8>>2]|0;l=b+148|0;c[l>>2]=j;m=e+44|0;n=c[m>>2]|0;o=c[m+4>>2]|0;m=b+152|0;c[m>>2]=n;c[m+4>>2]=o;m=i+44|0;p=c[m>>2]|0;q=c[m+4>>2]|0;m=b+160|0;c[m>>2]=p;c[m+4>>2]=q;m=c[e+136>>2]|0;c[b+168>>2]=m;r=c[i+136>>2]|0;c[b+172>>2]=r;s=c[e+144>>2]|0;c[b+176>>2]=s;e=c[i+144>>2]|0;c[b+180>>2]=e;i=c[d+28>>2]|0;t=+g[i+(f*12|0)+8>>2];u=d+32|0;v=c[u>>2]|0;w=c[v+(f*12|0)>>2]|0;x=c[v+(f*12|0)+4>>2]|0;y=+g[v+(f*12|0)+8>>2];z=+g[i+(j*12|0)+8>>2];A=c[v+(j*12|0)>>2]|0;B=c[v+(j*12|0)+4>>2]|0;C=+g[v+(j*12|0)+8>>2];D=+R(+t);E=+Q(+t);t=+R(+z);F=+Q(+z);z=+g[b+68>>2]-(c[k>>2]=n,+g[k>>2]);G=+g[b+72>>2]-(c[k>>2]=o,+g[k>>2]);H=E*z-D*G;I=D*z+E*G;G=+g[b+76>>2]-(c[k>>2]=p,+g[k>>2]);z=+g[b+80>>2]-(c[k>>2]=q,+g[k>>2]);J=F*G-t*z;K=t*G+F*z;z=+g[i+(j*12|0)>>2]-+g[i+(f*12|0)>>2]+J-H;F=+g[i+(j*12|0)+4>>2]-+g[i+(f*12|0)+4>>2]+K-I;G=(c[k>>2]=m,+g[k>>2]);t=(c[k>>2]=r,+g[k>>2]);L=(c[k>>2]=s,+g[k>>2]);M=(c[k>>2]=e,+g[k>>2]);N=+g[b+84>>2];O=+g[b+88>>2];P=E*N-D*O;S=D*N+E*O;g[b+184>>2]=P;g[b+188>>2]=S;O=H+z;H=I+F;I=O*S-H*P;g[b+208>>2]=I;N=J*S-K*P;g[b+212>>2]=N;T=G+t;U=L*I;V=M*N;W=T+I*U+N*V;g[b+252>>2]=W>0.0?1.0/W:W;X=+g[b+92>>2];Y=+g[b+96>>2];Z=E*X-D*Y;_=D*X+E*Y;g[b+192>>2]=Z;g[b+196>>2]=_;Y=O*_-H*Z;g[b+200>>2]=Y;H=J*_-K*Z;g[b+204>>2]=H;K=L*Y;J=M*H;O=K+J;E=K*I+J*N;X=L+M;D=U+V;g[b+216>>2]=T+Y*K+H*J;g[b+220>>2]=O;g[b+224>>2]=E;g[b+228>>2]=O;g[b+232>>2]=X==0.0?1.0:X;g[b+236>>2]=D;g[b+240>>2]=E;g[b+244>>2]=D;g[b+248>>2]=W;do if(a[b+136>>0]|0){W=z*P+F*S;D=+g[b+124>>2];E=+g[b+120>>2];X=D-E;if((X>0.0?X:-X)<.009999999776482582){c[b+140>>2]=3;break}if(W<=E){e=b+140|0;if((c[e>>2]|0)==1)break;c[e>>2]=1;g[b+112>>2]=0.0;break}e=b+140|0;if(!(W>=D)){c[e>>2]=0;g[b+112>>2]=0.0;break}if((c[e>>2]|0)!=2){c[e>>2]=2;g[b+112>>2]=0.0}}else{c[b+140>>2]=0;g[b+112>>2]=0.0}while(0);if(!(a[b+137>>0]|0))g[b+116>>2]=0.0;e=b+104|0;if(!(a[d+24>>0]|0)){c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;c[e+12>>2]=0;$=w;aa=x;ba=A;ca=B;da=y;ea=C;fa=c[h>>2]|0;ga=c[u>>2]|0;ha=ga+(fa*12|0)|0;c[ha>>2]=$;ia=ga+(fa*12|0)+4|0;c[ia>>2]=aa;ja=c[h>>2]|0;ka=c[u>>2]|0;la=ka+(ja*12|0)+8|0;g[la>>2]=da;ma=c[l>>2]|0;na=ka+(ma*12|0)|0;c[na>>2]=ba;oa=ka+(ma*12|0)+4|0;c[oa>>2]=ca;pa=c[l>>2]|0;qa=c[u>>2]|0;ra=qa+(pa*12|0)+8|0;g[ra>>2]=ea;return}else{F=+g[d+8>>2];z=F*+g[e>>2];g[e>>2]=z;e=b+108|0;D=F*+g[e>>2];g[e>>2]=D;e=b+112|0;W=F*+g[e>>2];g[e>>2]=W;e=b+116|0;E=F*+g[e>>2];g[e>>2]=E;F=E+W;W=z*Z+P*F;P=z*_+F*S;e=(g[k>>2]=(c[k>>2]=w,+g[k>>2])-G*W,c[k>>2]|0);w=(g[k>>2]=(c[k>>2]=x,+g[k>>2])-G*P,c[k>>2]|0);x=(g[k>>2]=(c[k>>2]=A,+g[k>>2])+t*W,c[k>>2]|0);$=e;aa=w;ba=x;ca=(g[k>>2]=(c[k>>2]=B,+g[k>>2])+t*P,c[k>>2]|0);da=y-L*(z*Y+D+F*I);ea=C+M*(D+z*H+F*N);fa=c[h>>2]|0;ga=c[u>>2]|0;ha=ga+(fa*12|0)|0;c[ha>>2]=$;ia=ga+(fa*12|0)+4|0;c[ia>>2]=aa;ja=c[h>>2]|0;ka=c[u>>2]|0;la=ka+(ja*12|0)+8|0;g[la>>2]=da;ma=c[l>>2]|0;na=ka+(ma*12|0)|0;c[na>>2]=ba;oa=ka+(ma*12|0)+4|0;c[oa>>2]=ca;pa=c[l>>2]|0;qa=c[u>>2]|0;ra=qa+(pa*12|0)+8|0;g[ra>>2]=ea;return}}function ji(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.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.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,R=0,S=0,T=0,U=0.0,V=0.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.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,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0;e=i;i=i+64|0;f=e+44|0;h=e+32|0;j=e+24|0;l=e+16|0;m=e+8|0;n=e;o=b+144|0;p=c[o>>2]|0;q=d+32|0;r=c[q>>2]|0;s=c[r+(p*12|0)>>2]|0;t=c[r+(p*12|0)+4>>2]|0;u=+g[r+(p*12|0)+8>>2];p=b+148|0;v=c[p>>2]|0;w=c[r+(v*12|0)>>2]|0;x=c[r+(v*12|0)+4>>2]|0;y=+g[r+(v*12|0)+8>>2];z=+g[b+168>>2];A=+g[b+172>>2];B=+g[b+176>>2];C=+g[b+180>>2];if((a[b+137>>0]|0)!=0?(c[b+140>>2]|0)!=3:0){D=(c[k>>2]=w,+g[k>>2]);E=(c[k>>2]=s,+g[k>>2]);F=(c[k>>2]=x,+g[k>>2]);G=(c[k>>2]=t,+g[k>>2]);H=+g[b+184>>2];I=+g[b+188>>2];J=+g[b+212>>2];K=+g[b+208>>2];v=b+116|0;L=+g[v>>2];M=+g[d>>2]*+g[b+128>>2];N=L+ +g[b+252>>2]*(+g[b+132>>2]-((D-E)*H+(F-G)*I+y*J-u*K));O=-M;P=N>2]=M;P=M-L;L=H*P;H=I*P;v=(g[k>>2]=E-z*L,c[k>>2]|0);d=(g[k>>2]=G-z*H,c[k>>2]|0);r=(g[k>>2]=D+A*L,c[k>>2]|0);Q=(g[k>>2]=F+A*H,c[k>>2]|0);R=d;S=r;T=v;U=u-B*(K*P);V=y+C*(J*P)}else{Q=x;R=t;S=w;T=s;U=u;V=y}y=(c[k>>2]=S,+g[k>>2]);u=(c[k>>2]=T,+g[k>>2]);P=y-u;J=(c[k>>2]=Q,+g[k>>2]);K=(c[k>>2]=R,+g[k>>2]);H=J-K;R=b+192|0;Q=b+196|0;T=b+204|0;S=b+200|0;F=P*+g[R>>2]+H*+g[Q>>2]+V*+g[T>>2]-U*+g[S>>2];L=V-U;if((a[b+136>>0]|0)!=0?(s=b+140|0,(c[s>>2]|0)!=0):0){w=b+184|0;t=b+188|0;x=b+212|0;v=b+208|0;D=+g[b+104>>2];r=b+108|0;G=+g[r>>2];d=b+112|0;E=+g[d>>2];W=b+216|0;I=-F;M=-L;O=-(P*+g[w>>2]+H*+g[t>>2]+V*+g[x>>2]-U*+g[v>>2]);g[h>>2]=I;g[h+4>>2]=M;g[h+8>>2]=O;Un(f,W,h);h=b+104|0;g[h>>2]=+g[f>>2]+ +g[h>>2];X=f+4|0;g[r>>2]=+g[X>>2]+ +g[r>>2];Y=f+8|0;O=+g[Y>>2]+ +g[d>>2];g[d>>2]=O;switch(c[s>>2]|0){case 1:{H=O>0.0?O:0.0;g[d>>2]=H;Z=H;break}case 2:{H=O<0.0?O:0.0;g[d>>2]=H;Z=H;break}default:Z=O}O=Z-E;Z=M-O*+g[b+244>>2];g[j>>2]=I-+g[b+240>>2]*O;g[j+4>>2]=Z;Vn(l,W,j);Z=D+ +g[l>>2];O=G+ +g[l+4>>2];g[h>>2]=Z;g[r>>2]=O;I=Z-D;D=O-G;G=+g[d>>2]-E;g[f>>2]=I;g[X>>2]=D;g[Y>>2]=G;_=D+I*+g[T>>2]+G*+g[x>>2];$=I*+g[S>>2]+D+G*+g[v>>2];aa=I*+g[Q>>2]+G*+g[t>>2];ba=I*+g[R>>2]+G*+g[w>>2];ca=z*ba;da=z*aa;ea=u-ca;fa=K-da;ga=A*ba;ha=A*aa;ia=y+ga;ja=J+ha;ka=B*$;la=C*_;ma=U-ka;na=V+la;oa=c[o>>2]|0;pa=c[q>>2]|0;qa=pa+(oa*12|0)|0;g[qa>>2]=ea;ra=pa+(oa*12|0)+4|0;g[ra>>2]=fa;sa=c[o>>2]|0;ta=c[q>>2]|0;ua=ta+(sa*12|0)+8|0;g[ua>>2]=ma;va=c[p>>2]|0;wa=ta+(va*12|0)|0;g[wa>>2]=ia;xa=ta+(va*12|0)+4|0;g[xa>>2]=ja;ya=c[p>>2]|0;za=c[q>>2]|0;Aa=za+(ya*12|0)+8|0;g[Aa>>2]=na;i=e;return}g[n>>2]=-F;g[n+4>>2]=-L;Vn(m,b+216|0,n);L=+g[m>>2];n=b+104|0;g[n>>2]=L+ +g[n>>2];F=+g[m+4>>2];m=b+108|0;g[m>>2]=F+ +g[m>>2];_=F+L*+g[T>>2];$=L*+g[S>>2]+F;aa=L*+g[Q>>2];ba=L*+g[R>>2];ca=z*ba;da=z*aa;ea=u-ca;fa=K-da;ga=A*ba;ha=A*aa;ia=y+ga;ja=J+ha;ka=B*$;la=C*_;ma=U-ka;na=V+la;oa=c[o>>2]|0;pa=c[q>>2]|0;qa=pa+(oa*12|0)|0;g[qa>>2]=ea;ra=pa+(oa*12|0)+4|0;g[ra>>2]=fa;sa=c[o>>2]|0;ta=c[q>>2]|0;ua=ta+(sa*12|0)+8|0;g[ua>>2]=ma;va=c[p>>2]|0;wa=ta+(va*12|0)|0;g[wa>>2]=ia;xa=ta+(va*12|0)+4|0;g[xa>>2]=ja;ya=c[p>>2]|0;za=c[q>>2]|0;Aa=za+(ya*12|0)+8|0;g[Aa>>2]=na;i=e;return}function ki(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.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,N=0.0,O=0.0,P=0.0,S=0.0,T=0.0,U=0.0,V=0,W=0.0,X=0,Y=0.0,Z=0;e=i;i=i+64|0;f=e+24|0;h=e+12|0;j=e;l=b+144|0;m=c[l>>2]|0;n=d+28|0;d=c[n>>2]|0;o=+g[d+(m*12|0)>>2];p=+g[d+(m*12|0)+4>>2];q=+g[d+(m*12|0)+8>>2];m=b+148|0;r=c[m>>2]|0;s=+g[d+(r*12|0)>>2];t=+g[d+(r*12|0)+4>>2];u=+g[d+(r*12|0)+8>>2];v=+R(+q);w=+Q(+q);x=+R(+u);y=+Q(+u);z=+g[b+168>>2];A=+g[b+172>>2];B=+g[b+176>>2];C=+g[b+180>>2];D=+g[b+68>>2]-+g[b+152>>2];E=+g[b+72>>2]-+g[b+156>>2];F=w*D-v*E;G=v*D+w*E;E=+g[b+76>>2]-+g[b+160>>2];D=+g[b+80>>2]-+g[b+164>>2];H=y*E-x*D;I=x*E+y*D;D=s+H-o-F;y=t+I-p-G;E=+g[b+84>>2];x=+g[b+88>>2];J=w*E-v*x;K=v*E+w*x;x=F+D;F=G+y;G=K*x-J*F;E=H*K-I*J;L=+g[b+92>>2];M=+g[b+96>>2];N=w*L-v*M;O=v*L+w*M;M=O*x-N*F;F=H*O-I*N;I=N*D+O*y;H=u-q-+g[b+100>>2];x=-I;w=I>0.0?I:x;I=-H;L=H>0.0?H:I;do if(a[b+136>>0]|0){H=J*D+K*y;v=+g[b+124>>2];P=+g[b+120>>2];S=v-P;if((S>0.0?S:-S)<.009999999776482582){S=H<.20000000298023224?H:.20000000298023224;T=H>0.0?H:-H;U=S<-.20000000298023224?-.20000000298023224:S;V=1;W=w>T?w:T;break}if(H<=P){T=H-P+.004999999888241291;S=T<0.0?T:0.0;T=P-H;U=S<-.20000000298023224?-.20000000298023224:S;V=1;W=w>T?w:T;break}if(H>=v){T=H-v;v=T+-.004999999888241291;H=v<.20000000298023224?v:.20000000298023224;U=H<0.0?0.0:H;V=1;W=w>T?w:T}else{U=0.0;V=0;W=w}}else{U=0.0;V=0;W=w}while(0);w=z+A;y=B*M;D=C*F;T=F*D+(w+M*y);H=D+y;if(V){v=E*D+G*y;y=B+C;D=B*G;S=C*E;P=S+D;g[f>>2]=T;g[f+4>>2]=H;g[f+8>>2]=v;g[f+12>>2]=H;g[f+16>>2]=y==0.0?1.0:y;g[f+20>>2]=P;g[f+24>>2]=v;g[f+28>>2]=P;g[f+32>>2]=E*S+(w+G*D);g[j>>2]=x;g[j+4>>2]=I;g[j+8>>2]=-U;Un(h,f,j);X=c[h>>2]|0;Y=+g[h+8>>2];Z=c[h+4>>2]|0}else{U=B+C;D=U==0.0?1.0:U;U=D*T-H*H;w=U!=0.0?1.0/U:U;h=(g[k>>2]=(D*x-H*I)*w,c[k>>2]|0);X=h;Y=0.0;Z=(g[k>>2]=(T*I-H*x)*w,c[k>>2]|0)}w=(c[k>>2]=X,+g[k>>2]);x=J*Y+N*w;N=K*Y+O*w;O=(c[k>>2]=Z,+g[k>>2]);Z=c[l>>2]|0;X=c[n>>2]|0;g[X+(Z*12|0)>>2]=o-z*x;g[X+(Z*12|0)+4>>2]=p-z*N;Z=c[n>>2]|0;g[Z+((c[l>>2]|0)*12|0)+8>>2]=q-B*(G*Y+(O+M*w));l=c[m>>2]|0;g[Z+(l*12|0)>>2]=s+A*x;g[Z+(l*12|0)+4>>2]=t+A*N;g[(c[n>>2]|0)+((c[m>>2]|0)*12|0)+8>>2]=u+C*(E*Y+(O+F*w));i=e;return L<=.03490658849477768&W<=.004999999888241291|0}function li(a,b){a=a|0;b=b|0;var d=0,e=0.0,f=0.0,h=0.0,i=0.0,j=0.0;d=c[b+48>>2]|0;e=+g[d+24>>2];f=+g[b+68>>2];h=+g[d+20>>2];i=+g[b+72>>2];j=f*h+e*i+ +g[d+16>>2];g[a>>2]=+g[d+12>>2]+(e*f-h*i);g[a+4>>2]=j;return}function mi(a,b){a=a|0;b=b|0;var d=0,e=0.0,f=0.0,h=0.0,i=0.0,j=0.0;d=c[b+52>>2]|0;e=+g[d+24>>2];f=+g[b+76>>2];h=+g[d+20>>2];i=+g[b+80>>2];j=f*h+e*i+ +g[d+16>>2];g[a>>2]=+g[d+12>>2]+(e*f-h*i);g[a+4>>2]=j;return}function ni(a,b,c){a=a|0;b=b|0;c=+c;var d=0.0,e=0.0,f=0.0;d=+g[b+104>>2];e=+g[b+116>>2]+ +g[b+112>>2];f=(d*+g[b+196>>2]+e*+g[b+188>>2])*c;g[a>>2]=(d*+g[b+192>>2]+ +g[b+184>>2]*e)*c;g[a+4>>2]=f;return}function oi(a,b){a=a|0;b=+b;return +(+g[a+108>>2]*b)}function pi(a){a=a|0;var b=0,d=0.0,e=0.0,f=0.0,h=0.0,i=0,j=0.0,k=0.0,l=0.0,m=0.0,n=0.0,o=0.0;b=c[a+48>>2]|0;d=+g[b+24>>2];e=+g[a+68>>2];f=+g[b+20>>2];h=+g[a+72>>2];i=c[a+52>>2]|0;j=+g[i+24>>2];k=+g[a+76>>2];l=+g[i+20>>2];m=+g[a+80>>2];n=+g[a+84>>2];o=+g[a+88>>2];return +((+g[i+12>>2]+(j*k-l*m)-(+g[b+12>>2]+(d*e-f*h)))*(d*n-f*o)+(k*l+j*m+ +g[i+16>>2]-(e*f+d*h+ +g[b+16>>2]))*(f*n+d*o))}function qi(a){a=a|0;var b=0,d=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;b=c[a+48>>2]|0;d=c[a+52>>2]|0;e=+g[a+68>>2]-+g[b+44>>2];f=+g[a+72>>2]-+g[b+48>>2];h=+g[b+24>>2];i=+g[b+20>>2];j=e*h-f*i;k=h*f+e*i;e=+g[a+76>>2]-+g[d+44>>2];f=+g[a+80>>2]-+g[d+48>>2];l=+g[d+24>>2];m=+g[d+20>>2];n=e*l-f*m;o=l*f+e*m;m=+g[a+84>>2];e=+g[a+88>>2];f=h*m-i*e;l=i*m+h*e;e=+g[b+88>>2];h=+g[d+88>>2];return +((o+ +g[d+64>>2]-(k+ +g[b+64>>2]))*(f*e)-(n+ +g[d+60>>2]-(j+ +g[b+60>>2]))*(l*e)+(f*(k*e+(+g[d+80>>2]-o*h-+g[b+80>>2]))+l*(+g[d+84>>2]+n*h-+g[b+84>>2]-j*e)))}function ri(b){b=b|0;return (a[b+136>>0]|0)!=0|0}function si(f,h){f=f|0;h=h|0;var i=0,j=0,k=0,l=0;i=f+136|0;if((h&1|0)==(d[i>>0]|0|0))return;j=c[f+48>>2]|0;k=j+4|0;l=e[k>>1]|0;if(!(l&2)){b[k>>1]=l|2;g[j+160>>2]=0.0}j=c[f+52>>2]|0;l=j+4|0;k=e[l>>1]|0;if(!(k&2)){b[l>>1]=k|2;g[j+160>>2]=0.0}a[i>>0]=h&1;g[f+112>>2]=0.0;return}function ti(a,d,f){a=a|0;d=+d;f=+f;var h=0,i=0,j=0,k=0;h=a+120|0;if(!(+g[h>>2]!=d)?!(+g[a+124>>2]!=f):0)return;i=c[a+48>>2]|0;j=i+4|0;k=e[j>>1]|0;if(!(k&2)){b[j>>1]=k|2;g[i+160>>2]=0.0}i=c[a+52>>2]|0;k=i+4|0;j=e[k>>1]|0;if(!(j&2)){b[k>>1]=j|2;g[i+160>>2]=0.0}g[h>>2]=d;g[a+124>>2]=f;g[a+112>>2]=0.0;return}function ui(b){b=b|0;return (a[b+137>>0]|0)!=0|0}function vi(d,f){d=d|0;f=f|0;var h=0,i=0,j=0,k=0,l=0;h=c[d+48>>2]|0;i=h+4|0;j=e[i>>1]|0;if(!(j&2)){b[i>>1]=j|2;g[h+160>>2]=0.0}h=c[d+52>>2]|0;j=h+4|0;i=e[j>>1]|0;if(i&2){k=d+137|0;l=f&1;a[k>>0]=l;return}b[j>>1]=i|2;g[h+160>>2]=0.0;k=d+137|0;l=f&1;a[k>>0]=l;return}function wi(a,d){a=a|0;d=+d;var f=0,h=0,i=0,j=0;f=c[a+48>>2]|0;h=f+4|0;i=e[h>>1]|0;if(!(i&2)){b[h>>1]=i|2;g[f+160>>2]=0.0}f=c[a+52>>2]|0;i=f+4|0;h=e[i>>1]|0;if(h&2){j=a+132|0;g[j>>2]=d;return}b[i>>1]=h|2;g[f+160>>2]=0.0;j=a+132|0;g[j>>2]=d;return}function xi(a,d){a=a|0;d=+d;var f=0,h=0,i=0,j=0;f=c[a+48>>2]|0;h=f+4|0;i=e[h>>1]|0;if(!(i&2)){b[h>>1]=i|2;g[f+160>>2]=0.0}f=c[a+52>>2]|0;i=f+4|0;h=e[i>>1]|0;if(h&2){j=a+128|0;g[j>>2]=d;return}b[i>>1]=h|2;g[f+160>>2]=0.0;j=a+128|0;g[j>>2]=d;return}function yi(a,b){a=a|0;b=+b;return +(+g[a+116>>2]*b)}function zi(a){a=a|0;var b=0,e=0,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;b=i;i=i+144|0;e=b+136|0;f=b+128|0;j=b+120|0;k=b+112|0;l=b+104|0;m=b+96|0;n=b+88|0;o=b+80|0;p=b+64|0;q=b+48|0;r=b+32|0;s=b+24|0;t=b+16|0;u=b+8|0;v=c[(c[a+48>>2]|0)+8>>2]|0;w=c[(c[a+52>>2]|0)+8>>2]|0;bo(4104,b);c[u>>2]=v;bo(4769,u);c[t>>2]=w;bo(4795,t);c[s>>2]=d[a+61>>0];bo(4821,s);x=+g[a+72>>2];h[r>>3]=+g[a+68>>2];h[r+8>>3]=x;bo(4942,r);x=+g[a+80>>2];h[q>>3]=+g[a+76>>2];h[q+8>>3]=x;bo(4984,q);x=+g[a+88>>2];h[p>>3]=+g[a+84>>2];h[p+8>>3]=x;bo(4540,p);h[o>>3]=+g[a+100>>2];bo(4384,o);c[n>>2]=d[a+136>>0];bo(4416,n);h[m>>3]=+g[a+120>>2];bo(4131,m);h[l>>3]=+g[a+124>>2];bo(4165,l);c[k>>2]=d[a+137>>0];bo(4580,k);h[j>>3]=+g[a+132>>2];bo(4610,j);h[f>>3]=+g[a+128>>2];bo(4199,f);c[e>>2]=c[a+56>>2];bo(5099,e);i=b;return}function Ai(a){a=a|0;so(a);return}function Bi(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;Oi(a,b);c[a>>2]=1484;d=b+20|0;e=c[d+4>>2]|0;f=a+68|0;c[f>>2]=c[d>>2];c[f+4>>2]=e;e=b+28|0;f=c[e+4>>2]|0;d=a+76|0;c[d>>2]=c[e>>2];c[d+4>>2]=f;c[a+84>>2]=c[b+36>>2];g[a+160>>2]=0.0;g[a+92>>2]=0.0;c[a+164>>2]=0;g[a+88>>2]=0.0;return}function Ci(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.0,u=0.0,v=0.0,w=0,x=0,y=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,N=0,P=0,S=0,T=0.0,U=0.0;e=c[b+48>>2]|0;f=c[e+8>>2]|0;h=b+96|0;c[h>>2]=f;i=c[b+52>>2]|0;j=c[i+8>>2]|0;l=b+100|0;c[l>>2]=j;m=e+44|0;n=c[m>>2]|0;o=c[m+4>>2]|0;m=b+128|0;c[m>>2]=n;c[m+4>>2]=o;m=i+44|0;p=c[m>>2]|0;q=c[m+4>>2]|0;m=b+136|0;c[m>>2]=p;c[m+4>>2]=q;m=b+144|0;c[m>>2]=c[e+136>>2];r=b+148|0;c[r>>2]=c[i+136>>2];s=b+152|0;c[s>>2]=c[e+144>>2];e=b+156|0;c[e>>2]=c[i+144>>2];i=c[d+28>>2]|0;t=+g[i+(f*12|0)>>2];u=+g[i+(f*12|0)+4>>2];v=+g[i+(f*12|0)+8>>2];w=d+32|0;x=c[w>>2]|0;y=c[x+(f*12|0)>>2]|0;z=c[x+(f*12|0)+4>>2]|0;A=+g[x+(f*12|0)+8>>2];B=+g[i+(j*12|0)>>2];C=+g[i+(j*12|0)+4>>2];D=+g[i+(j*12|0)+8>>2];i=c[x+(j*12|0)>>2]|0;f=c[x+(j*12|0)+4>>2]|0;E=+g[x+(j*12|0)+8>>2];F=+R(+v);G=+Q(+v);v=+R(+D);H=+Q(+D);D=+g[b+68>>2]-(c[k>>2]=n,+g[k>>2]);I=+g[b+72>>2]-(c[k>>2]=o,+g[k>>2]);J=G*D-F*I;K=F*D+G*I;g[b+112>>2]=J;g[b+116>>2]=K;I=+g[b+76>>2]-(c[k>>2]=p,+g[k>>2]);G=+g[b+80>>2]-(c[k>>2]=q,+g[k>>2]);D=H*I-v*G;F=v*I+H*G;g[b+120>>2]=D;g[b+124>>2]=F;G=B+D-t-J;t=C+F-u-K;q=b+104|0;g[q>>2]=G;p=b+108|0;g[p>>2]=t;u=+O(+(G*G+t*t));g[b+88>>2]=u;c[b+164>>2]=u-+g[b+84>>2]>0.0?2:0;if(!(u>.004999999888241291)){g[q>>2]=0.0;g[p>>2]=0.0;g[b+160>>2]=0.0;g[b+92>>2]=0.0;return}C=1.0/u;u=C*G;g[q>>2]=u;G=C*t;g[p>>2]=G;t=J*G-K*u;C=G*D-u*F;B=+g[m>>2];H=+g[s>>2];I=+g[r>>2];v=+g[e>>2];L=I+(B+t*(t*H))+C*(C*v);g[b+160>>2]=L!=0.0?1.0/L:0.0;if(!(a[d+24>>0]|0)){g[b+92>>2]=0.0;M=y;N=z;P=i;S=f;T=A;U=E}else{e=b+92|0;L=+g[d+8>>2]*+g[e>>2];g[e>>2]=L;C=u*L;u=L*G;e=(g[k>>2]=(c[k>>2]=y,+g[k>>2])-C*B,c[k>>2]|0);y=(g[k>>2]=(c[k>>2]=z,+g[k>>2])-u*B,c[k>>2]|0);z=(g[k>>2]=(c[k>>2]=i,+g[k>>2])+C*I,c[k>>2]|0);M=e;N=y;P=z;S=(g[k>>2]=(c[k>>2]=f,+g[k>>2])+u*I,c[k>>2]|0);T=A-H*(u*J-C*K);U=E+v*(u*D-C*F)}f=c[h>>2]|0;z=c[w>>2]|0;c[z+(f*12|0)>>2]=M;c[z+(f*12|0)+4>>2]=N;N=c[w>>2]|0;g[N+((c[h>>2]|0)*12|0)+8>>2]=T;h=c[l>>2]|0;c[N+(h*12|0)>>2]=P;c[N+(h*12|0)+4>>2]=S;g[(c[w>>2]|0)+((c[l>>2]|0)*12|0)+8>>2]=U;return}function Di(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0,i=0,j=0.0,k=0,l=0.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;d=a+96|0;e=c[d>>2]|0;f=b+32|0;h=c[f>>2]|0;i=h+(e*12|0)|0;j=+g[i>>2];k=h+(e*12|0)+4|0;l=+g[k>>2];m=+g[h+(e*12|0)+8>>2];e=a+100|0;n=c[e>>2]|0;o=+g[h+(n*12|0)>>2];p=+g[h+(n*12|0)+4>>2];q=+g[h+(n*12|0)+8>>2];r=+g[a+116>>2];s=+g[a+112>>2];t=+g[a+124>>2];u=+g[a+120>>2];v=+g[a+88>>2]-+g[a+84>>2];w=+g[a+104>>2];x=+g[a+108>>2];y=(o-q*t-(j-m*r))*w+(p+q*u-(l+m*s))*x;if(v<0.0)z=y+v*+g[b+4>>2];else z=y;b=a+92|0;y=+g[b>>2];v=y-z*+g[a+160>>2];z=v>0.0?0.0:v;g[b>>2]=z;v=z-y;y=w*v;w=x*v;v=+g[a+144>>2];x=m-+g[a+152>>2]*(s*w-y*r);r=+g[a+148>>2];s=q+ +g[a+156>>2]*(w*u-y*t);g[i>>2]=j-v*y;g[k>>2]=l-v*w;k=c[f>>2]|0;g[k+((c[d>>2]|0)*12|0)+8>>2]=x;d=c[e>>2]|0;g[k+(d*12|0)>>2]=o+y*r;g[k+(d*12|0)+4>>2]=p+w*r;g[(c[f>>2]|0)+((c[e>>2]|0)*12|0)+8>>2]=s;return}function Ei(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.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;d=a+96|0;e=c[d>>2]|0;f=b+28|0;b=c[f>>2]|0;h=b+(e*12|0)|0;i=+g[h>>2];j=b+(e*12|0)+4|0;k=+g[j>>2];l=+g[b+(e*12|0)+8>>2];e=a+100|0;m=c[e>>2]|0;n=+g[b+(m*12|0)>>2];o=+g[b+(m*12|0)+4>>2];p=+g[b+(m*12|0)+8>>2];q=+R(+l);r=+Q(+l);s=+R(+p);t=+Q(+p);u=+g[a+68>>2]-+g[a+128>>2];v=+g[a+72>>2]-+g[a+132>>2];w=r*u-q*v;x=q*u+r*v;v=+g[a+76>>2]-+g[a+136>>2];r=+g[a+80>>2]-+g[a+140>>2];u=t*v-s*r;q=s*v+t*r;r=n+u-i-w;t=o+q-k-x;v=+O(+(r*r+t*t));if(v<1.1920928955078125e-007){y=0.0;z=r;A=t}else{s=1.0/v;y=v;z=r*s;A=t*s}m=a+84|0;s=y-+g[m>>2];t=s<.20000000298023224?s:.20000000298023224;s=-(+g[a+160>>2]*(t<0.0?0.0:t));t=z*s;z=A*s;s=+g[a+144>>2];A=l-+g[a+152>>2]*(w*z-x*t);x=+g[a+148>>2];w=p+ +g[a+156>>2]*(u*z-q*t);g[h>>2]=i-s*t;g[j>>2]=k-s*z;j=c[f>>2]|0;g[j+((c[d>>2]|0)*12|0)+8>>2]=A;d=c[e>>2]|0;g[j+(d*12|0)>>2]=n+x*t;g[j+(d*12|0)+4>>2]=o+x*z;g[(c[f>>2]|0)+((c[e>>2]|0)*12|0)+8>>2]=w;return y-+g[m>>2]<.004999999888241291|0}function Fi(a,b){a=a|0;b=b|0;var d=0,e=0.0,f=0.0,h=0.0,i=0.0,j=0.0;d=c[b+48>>2]|0;e=+g[d+24>>2];f=+g[b+68>>2];h=+g[d+20>>2];i=+g[b+72>>2];j=f*h+e*i+ +g[d+16>>2];g[a>>2]=+g[d+12>>2]+(e*f-h*i);g[a+4>>2]=j;return}function Gi(a,b){a=a|0;b=b|0;var d=0,e=0.0,f=0.0,h=0.0,i=0.0,j=0.0;d=c[b+52>>2]|0;e=+g[d+24>>2];f=+g[b+76>>2];h=+g[d+20>>2];i=+g[b+80>>2];j=f*h+e*i+ +g[d+16>>2];g[a>>2]=+g[d+12>>2]+(e*f-h*i);g[a+4>>2]=j;return}function Hi(a,b,c){a=a|0;b=b|0;c=+c;var d=0.0;d=+g[b+92>>2]*c;c=d*+g[b+108>>2];g[a>>2]=+g[b+104>>2]*d;g[a+4>>2]=c;return}function Ii(a,b){a=a|0;b=+b;return 0.0}function Ji(a){a=a|0;return c[a+164>>2]|0}function Ki(a){a=a|0;var b=0,e=0,f=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0.0;b=i;i=i+80|0;e=b+72|0;f=b+64|0;j=b+48|0;k=b+32|0;l=b+24|0;m=b+16|0;n=b+8|0;o=c[(c[a+48>>2]|0)+8>>2]|0;p=c[(c[a+52>>2]|0)+8>>2]|0;bo(4244,b);c[n>>2]=o;bo(4769,n);c[m>>2]=p;bo(4795,m);c[l>>2]=d[a+61>>0];bo(4821,l);q=+g[a+72>>2];h[k>>3]=+g[a+68>>2];h[k+8>>3]=q;bo(4942,k);q=+g[a+80>>2];h[j>>3]=+g[a+76>>2];h[j+8>>3]=q;bo(4984,j);h[f>>3]=+g[a+84>>2];bo(4266,f);c[e>>2]=c[a+56>>2];bo(5099,e);i=b;return}function Li(a){a=a|0;so(a);return}function Mi(a,b){a=a|0;b=b|0;var d=0,e=0;do switch(c[a>>2]|0){case 3:{d=Sn(b,176)|0;ph(d,a);e=d;return e|0}case 5:{d=Sn(b,168)|0;Jg(d,a);e=d;return e|0}case 2:{d=Sn(b,256)|0;hi(d,a);e=d;return e|0}case 1:{d=Sn(b,228)|0;Ti(d,a);e=d;return e|0}case 4:{d=Sn(b,196)|0;Ej(d,a);e=d;return e|0}case 6:{d=Sn(b,276)|0;Xh(d,a);e=d;return e|0}case 7:{d=Sn(b,224)|0;mj(d,a);e=d;return e|0}case 8:{d=Sn(b,208)|0;Nh(d,a);e=d;return e|0}case 9:{d=Sn(b,180)|0;Ah(d,a);e=d;return e|0}case 10:{d=Sn(b,168)|0;Bi(d,a);e=d;return e|0}case 11:{d=Sn(b,192)|0;_g(d,a);e=d;return e|0}default:{e=0;return e|0}}while(0);return 0}function Ni(a,b){a=a|0;b=b|0;ib[c[(c[a>>2]|0)+24>>2]&127](a);do switch(c[a+4>>2]|0){case 3:{Tn(b,a,176);return}case 5:{Tn(b,a,168);return}case 2:{Tn(b,a,256);return}case 1:{Tn(b,a,228);return}case 4:{Tn(b,a,196);return}case 6:{Tn(b,a,276);return}case 7:{Tn(b,a,224);return}case 8:{Tn(b,a,208);return}case 9:{Tn(b,a,180);return}case 10:{Tn(b,a,168);return}case 11:{Tn(b,a,192);return}default:return}while(0)}function Oi(b,d){b=b|0;d=d|0;c[b>>2]=1536;c[b+4>>2]=c[d>>2];c[b+8>>2]=0;c[b+12>>2]=0;c[b+48>>2]=c[d+8>>2];c[b+52>>2]=c[d+12>>2];c[b+56>>2]=0;a[b+61>>0]=a[d+16>>0]|0;a[b+60>>0]=0;c[b+64>>2]=c[d+4>>2];d=b+16|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;return}function Pi(a){a=a|0;var d=0;if(!(b[(c[a+48>>2]|0)+4>>1]&32)){d=0;return d|0}d=(b[(c[a+52>>2]|0)+4>>1]&32)!=0;return d|0}function Qi(a){a=a|0;a=i;i=i+16|0;bo(4293,a);i=a;return}function Ri(a){a=a|0;so(a);return}function Si(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0.0,h=0,i=0.0,j=0.0,k=0.0;c[a+8>>2]=b;c[a+12>>2]=d;f=+g[e>>2]-+g[b+12>>2];h=e+4|0;i=+g[h>>2]-+g[b+16>>2];j=+g[b+24>>2];k=+g[b+20>>2];g[a+20>>2]=f*j+i*k;g[a+24>>2]=j*i-f*k;k=+g[e>>2]-+g[d+12>>2];f=+g[h>>2]-+g[d+16>>2];i=+g[d+24>>2];j=+g[d+20>>2];g[a+28>>2]=k*i+f*j;g[a+32>>2]=i*f-k*j;g[a+36>>2]=+g[d+72>>2]-+g[b+72>>2];return}function Ti(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;Oi(b,d);c[b>>2]=1588;e=d+20|0;f=c[e+4>>2]|0;g=b+68|0;c[g>>2]=c[e>>2];c[g+4>>2]=f;f=d+28|0;g=c[f+4>>2]|0;e=b+76|0;c[e>>2]=c[f>>2];c[e+4>>2]=g;c[b+116>>2]=c[d+36>>2];g=b+84|0;c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;c[g+12>>2]=0;c[b+120>>2]=c[d+44>>2];c[b+124>>2]=c[d+48>>2];c[b+104>>2]=c[d+60>>2];c[b+108>>2]=c[d+56>>2];a[b+112>>0]=a[d+40>>0]|0;a[b+100>>0]=a[d+52>>0]|0;c[b+224>>2]=0;return}function Ui(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.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.0,F=0.0,G=0.0,H=0.0,I=0.0,J=0.0,K=0.0,L=0.0,M=0.0,N=0,O=0,P=0,S=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;e=c[b+48>>2]|0;f=c[e+8>>2]|0;h=b+128|0;c[h>>2]=f;i=c[b+52>>2]|0;j=c[i+8>>2]|0;l=b+132|0;c[l>>2]=j;m=e+44|0;n=c[m>>2]|0;o=c[m+4>>2]|0;m=b+152|0;c[m>>2]=n;c[m+4>>2]=o;m=i+44|0;p=c[m>>2]|0;q=c[m+4>>2]|0;m=b+160|0;c[m>>2]=p;c[m+4>>2]=q;m=c[e+136>>2]|0;c[b+168>>2]=m;r=c[i+136>>2]|0;c[b+172>>2]=r;s=c[e+144>>2]|0;c[b+176>>2]=s;e=c[i+144>>2]|0;c[b+180>>2]=e;i=c[d+28>>2]|0;t=+g[i+(f*12|0)+8>>2];u=d+32|0;v=c[u>>2]|0;w=c[v+(f*12|0)>>2]|0;x=c[v+(f*12|0)+4>>2]|0;y=+g[v+(f*12|0)+8>>2];z=+g[i+(j*12|0)+8>>2];i=c[v+(j*12|0)>>2]|0;f=c[v+(j*12|0)+4>>2]|0;A=+g[v+(j*12|0)+8>>2];B=+R(+t);C=+Q(+t);D=+R(+z);E=+Q(+z);F=+g[b+68>>2]-(c[k>>2]=n,+g[k>>2]);G=+g[b+72>>2]-(c[k>>2]=o,+g[k>>2]);H=C*F-B*G;I=B*F+C*G;g[b+136>>2]=H;g[b+140>>2]=I;G=+g[b+76>>2]-(c[k>>2]=p,+g[k>>2]);C=+g[b+80>>2]-(c[k>>2]=q,+g[k>>2]);F=E*G-D*C;B=D*G+E*C;g[b+144>>2]=F;g[b+148>>2]=B;C=(c[k>>2]=m,+g[k>>2]);E=(c[k>>2]=r,+g[k>>2]);G=(c[k>>2]=s,+g[k>>2]);D=(c[k>>2]=e,+g[k>>2]);J=G+D;e=J==0.0;K=C+E;g[b+184>>2]=K+G*(I*I)+D*(B*B);L=-(G*(I*H))-D*(B*F);g[b+196>>2]=L;M=-(G*I)-D*B;g[b+208>>2]=M;g[b+188>>2]=L;g[b+200>>2]=K+G*(H*H)+D*(F*F);K=G*H+D*F;g[b+212>>2]=K;g[b+192>>2]=M;g[b+204>>2]=K;g[b+216>>2]=J;g[b+220>>2]=J>0.0?1.0/J:J;if(e|(a[b+100>>0]|0)==0)g[b+96>>2]=0.0;do if(e|(a[b+112>>0]|0)==0)c[b+224>>2]=0;else{J=z-t-+g[b+116>>2];K=+g[b+124>>2];M=+g[b+120>>2];L=K-M;if((L>0.0?L:-L)<.06981317698955536){c[b+224>>2]=3;break}if(J<=M){s=b+224|0;if((c[s>>2]|0)!=1)g[b+92>>2]=0.0;c[s>>2]=1;break}s=b+224|0;if(!(J>=K)){c[s>>2]=0;g[b+92>>2]=0.0;break}if((c[s>>2]|0)!=2)g[b+92>>2]=0.0;c[s>>2]=2}while(0);e=b+84|0;if(!(a[d+24>>0]|0)){c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;c[e+12>>2]=0;N=w;O=x;P=i;S=f;T=y;U=A;V=c[h>>2]|0;W=c[u>>2]|0;X=W+(V*12|0)|0;c[X>>2]=N;Y=W+(V*12|0)+4|0;c[Y>>2]=O;Z=c[h>>2]|0;_=c[u>>2]|0;$=_+(Z*12|0)+8|0;g[$>>2]=T;aa=c[l>>2]|0;ba=_+(aa*12|0)|0;c[ba>>2]=P;ca=_+(aa*12|0)+4|0;c[ca>>2]=S;da=c[l>>2]|0;ea=c[u>>2]|0;fa=ea+(da*12|0)+8|0;g[fa>>2]=U;return}else{t=+g[d+8>>2];z=t*+g[e>>2];g[e>>2]=z;e=b+88|0;K=t*+g[e>>2];g[e>>2]=K;e=b+92|0;J=t*+g[e>>2];g[e>>2]=J;e=b+96|0;M=t*+g[e>>2];g[e>>2]=M;e=(g[k>>2]=(c[k>>2]=w,+g[k>>2])-C*z,c[k>>2]|0);w=(g[k>>2]=(c[k>>2]=x,+g[k>>2])-C*K,c[k>>2]|0);x=(g[k>>2]=(c[k>>2]=i,+g[k>>2])+E*z,c[k>>2]|0);N=e;O=w;P=x;S=(g[k>>2]=(c[k>>2]=f,+g[k>>2])+E*K,c[k>>2]|0);T=y-G*(J+(M+(K*H-z*I)));U=A+D*(J+(M+(K*F-z*B)));V=c[h>>2]|0;W=c[u>>2]|0;X=W+(V*12|0)|0;c[X>>2]=N;Y=W+(V*12|0)+4|0;c[Y>>2]=O;Z=c[h>>2]|0;_=c[u>>2]|0;$=_+(Z*12|0)+8|0;g[$>>2]=T;aa=c[l>>2]|0;ba=_+(aa*12|0)|0;c[ba>>2]=P;ca=_+(aa*12|0)+4|0;c[ca>>2]=S;da=c[l>>2]|0;ea=c[u>>2]|0;fa=ea+(da*12|0)+8|0;g[fa>>2]=U;return}}function Vi(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.0,x=0,y=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,N=0,O=0,P=0.0,Q=0.0,R=0.0,S=0,T=0,U=0,V=0.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.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,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0;e=i;i=i+80|0;f=e+60|0;h=e+48|0;j=e+40|0;l=e+32|0;m=e+24|0;n=e+16|0;o=e+8|0;p=e;q=b+128|0;r=c[q>>2]|0;s=d+32|0;t=c[s>>2]|0;u=c[t+(r*12|0)>>2]|0;v=c[t+(r*12|0)+4>>2]|0;w=+g[t+(r*12|0)+8>>2];r=b+132|0;x=c[r>>2]|0;y=c[t+(x*12|0)>>2]|0;z=c[t+(x*12|0)+4>>2]|0;A=+g[t+(x*12|0)+8>>2];B=+g[b+168>>2];C=+g[b+172>>2];D=+g[b+176>>2];E=+g[b+180>>2];x=D+E==0.0;if((a[b+100>>0]|0)!=0?!(x|(c[b+224>>2]|0)==3):0){t=b+96|0;F=+g[t>>2];G=+g[d>>2]*+g[b+104>>2];H=F-+g[b+220>>2]*(A-w-+g[b+108>>2]);I=-G;J=H>2]=G;J=G-F;K=w-D*J;L=A+E*J}else{K=w;L=A}if((a[b+112>>0]|0)!=0?(t=b+224|0,!(x|(c[t>>2]|0)==0)):0){x=b+148|0;d=b+144|0;A=(c[k>>2]=y,+g[k>>2]);w=(c[k>>2]=z,+g[k>>2]);J=(c[k>>2]=u,+g[k>>2]);F=(c[k>>2]=v,+g[k>>2]);M=b+140|0;N=b+136|0;G=A-L*+g[x>>2]-J+K*+g[M>>2];I=w+L*+g[d>>2]-F-K*+g[N>>2];g[f>>2]=G;g[f+4>>2]=I;g[f+8>>2]=L-K;O=b+184|0;Un(h,O,f);H=+g[h>>2];P=+g[h+4>>2];Q=+g[h+8>>2];R=-Q;h=(g[k>>2]=-H,c[k>>2]|0);f=(g[k>>2]=-P,c[k>>2]|0);a:do switch(c[t>>2]|0){case 3:{S=b+84|0;g[S>>2]=+g[S>>2]-H;S=b+88|0;g[S>>2]=+g[S>>2]-P;S=b+92|0;g[S>>2]=+g[S>>2]-Q;T=h;U=f;V=R;break}case 1:{S=b+84|0;W=b+92|0;X=+g[W>>2];Y=X-Q;if(Y<0.0){Z=X*+g[b+212>>2]-I;g[j>>2]=X*+g[b+208>>2]-G;g[j+4>>2]=Z;Vn(l,O,j);_=c[l>>2]|0;$=c[l+4>>2]|0;Z=-+g[W>>2];g[S>>2]=(c[k>>2]=_,+g[k>>2])+ +g[S>>2];aa=b+88|0;g[aa>>2]=(c[k>>2]=$,+g[k>>2])+ +g[aa>>2];g[W>>2]=0.0;T=_;U=$;V=Z;break a}else{g[S>>2]=+g[S>>2]-H;S=b+88|0;g[S>>2]=+g[S>>2]-P;g[W>>2]=Y;T=h;U=f;V=R;break a}break}case 2:{W=b+84|0;S=b+92|0;Y=+g[S>>2];Z=Y-Q;if(Z>0.0){X=Y*+g[b+212>>2]-I;g[m>>2]=Y*+g[b+208>>2]-G;g[m+4>>2]=X;Vn(n,O,m);$=c[n>>2]|0;_=c[n+4>>2]|0;X=-+g[S>>2];g[W>>2]=(c[k>>2]=$,+g[k>>2])+ +g[W>>2];aa=b+88|0;g[aa>>2]=(c[k>>2]=_,+g[k>>2])+ +g[aa>>2];g[S>>2]=0.0;T=$;U=_;V=X;break a}else{g[W>>2]=+g[W>>2]-H;W=b+88|0;g[W>>2]=+g[W>>2]-P;g[S>>2]=Z;T=h;U=f;V=R;break a}break}default:{T=h;U=f;V=R}}while(0);R=(c[k>>2]=T,+g[k>>2]);P=(c[k>>2]=U,+g[k>>2]);ba=F-B*P;ca=J-B*R;da=w+C*P;ea=A+C*R;fa=V+(P*+g[d>>2]-R*+g[x>>2]);ga=V+(P*+g[N>>2]-R*+g[M>>2]);ha=D*ga;ia=E*fa;ja=K-ha;ka=L+ia;la=c[q>>2]|0;ma=c[s>>2]|0;na=ma+(la*12|0)|0;g[na>>2]=ca;oa=ma+(la*12|0)+4|0;g[oa>>2]=ba;pa=c[q>>2]|0;qa=c[s>>2]|0;ra=qa+(pa*12|0)+8|0;g[ra>>2]=ja;sa=c[r>>2]|0;ta=qa+(sa*12|0)|0;g[ta>>2]=ea;ua=qa+(sa*12|0)+4|0;g[ua>>2]=da;va=c[r>>2]|0;wa=c[s>>2]|0;xa=wa+(va*12|0)+8|0;g[xa>>2]=ka;i=e;return}M=b+148|0;N=b+144|0;R=(c[k>>2]=y,+g[k>>2]);P=(c[k>>2]=z,+g[k>>2]);V=(c[k>>2]=u,+g[k>>2]);A=(c[k>>2]=v,+g[k>>2]);v=b+140|0;u=b+136|0;w=-(P+L*+g[N>>2]-A-K*+g[u>>2]);g[p>>2]=-(R-L*+g[M>>2]-V+K*+g[v>>2]);g[p+4>>2]=w;Vn(o,b+184|0,p);w=+g[o>>2];p=b+84|0;g[p>>2]=w+ +g[p>>2];J=+g[o+4>>2];o=b+88|0;g[o>>2]=J+ +g[o>>2];ba=A-B*J;ca=V-B*w;da=P+C*J;ea=R+C*w;fa=J*+g[N>>2]-w*+g[M>>2];ga=J*+g[u>>2]-w*+g[v>>2];ha=D*ga;ia=E*fa;ja=K-ha;ka=L+ia;la=c[q>>2]|0;ma=c[s>>2]|0;na=ma+(la*12|0)|0;g[na>>2]=ca;oa=ma+(la*12|0)+4|0;g[oa>>2]=ba;pa=c[q>>2]|0;qa=c[s>>2]|0;ra=qa+(pa*12|0)+8|0;g[ra>>2]=ja;sa=c[r>>2]|0;ta=qa+(sa*12|0)|0;g[ta>>2]=ea;ua=qa+(sa*12|0)+4|0;g[ua>>2]=da;va=c[r>>2]|0;wa=c[s>>2]|0;xa=wa+(va*12|0)+8|0;g[xa>>2]=ka;i=e;return}function Wi(b,d){b=b|0;d=d|0;var e=0,f=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.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;e=b+128|0;f=c[e>>2]|0;h=d+28|0;d=c[h>>2]|0;i=+g[d+(f*12|0)>>2];j=+g[d+(f*12|0)+4>>2];k=+g[d+(f*12|0)+8>>2];f=b+132|0;l=c[f>>2]|0;m=+g[d+(l*12|0)>>2];n=+g[d+(l*12|0)+4>>2];o=+g[d+(l*12|0)+8>>2];p=+g[b+176>>2];q=+g[b+180>>2];if((a[b+112>>0]|0)!=0?(l=c[b+224>>2]|0,!((l|0)==0|p+q==0.0)):0){r=o-k-+g[b+116>>2];switch(l|0){case 3:{s=r-+g[b+120>>2];t=s<.13962635397911072?s:.13962635397911072;s=t<-.13962635397911072?-.13962635397911072:t;u=s>0.0?s:-s;v=-(+g[b+220>>2]*s);break}case 1:{s=r-+g[b+120>>2];t=s+.03490658849477768;w=t<0.0?t:0.0;u=-s;v=-(+g[b+220>>2]*(w<-.13962635397911072?-.13962635397911072:w));break}case 2:{w=r-+g[b+124>>2];r=w+-.03490658849477768;s=r<.13962635397911072?r:.13962635397911072;u=w;v=-(+g[b+220>>2]*(s<0.0?0.0:s));break}default:{u=0.0;v=0.0}}x=k-v*p;y=o+v*q;z=u}else{x=k;y=o;z=0.0}o=+R(+x);k=+Q(+x);u=+R(+y);v=+Q(+y);s=+g[b+68>>2]-+g[b+152>>2];w=+g[b+72>>2]-+g[b+156>>2];r=k*s-o*w;t=o*s+k*w;w=+g[b+76>>2]-+g[b+160>>2];k=+g[b+80>>2]-+g[b+164>>2];s=v*w-u*k;o=u*w+v*k;k=m+s-i-r;v=n+o-j-t;w=+O(+(k*k+v*v));u=+g[b+168>>2];A=+g[b+172>>2];B=u+A;C=B+t*(t*p)+o*(o*q);D=r*p;E=s*q;F=-(t*D)-o*E;G=B+r*D+s*E;E=C*G-F*F;D=E!=0.0?1.0/E:E;E=-((k*G-v*F)*D);G=-((v*C-k*F)*D);b=c[e>>2]|0;l=c[h>>2]|0;g[l+(b*12|0)>>2]=i-u*E;g[l+(b*12|0)+4>>2]=j-u*G;b=c[h>>2]|0;g[b+((c[e>>2]|0)*12|0)+8>>2]=x-p*(r*G-t*E);e=c[f>>2]|0;g[b+(e*12|0)>>2]=m+A*E;g[b+(e*12|0)+4>>2]=n+A*G;g[(c[h>>2]|0)+((c[f>>2]|0)*12|0)+8>>2]=y+q*(s*G-o*E);return z<=.03490658849477768&w<=.004999999888241291|0}function Xi(a,b){a=a|0;b=b|0;var d=0,e=0.0,f=0.0,h=0.0,i=0.0,j=0.0;d=c[b+48>>2]|0;e=+g[d+24>>2];f=+g[b+68>>2];h=+g[d+20>>2];i=+g[b+72>>2];j=f*h+e*i+ +g[d+16>>2];g[a>>2]=+g[d+12>>2]+(e*f-h*i);g[a+4>>2]=j;return}function Yi(a,b){a=a|0;b=b|0;var d=0,e=0.0,f=0.0,h=0.0,i=0.0,j=0.0;d=c[b+52>>2]|0;e=+g[d+24>>2];f=+g[b+76>>2];h=+g[d+20>>2];i=+g[b+80>>2];j=f*h+e*i+ +g[d+16>>2];g[a>>2]=+g[d+12>>2]+(e*f-h*i);g[a+4>>2]=j;return}function Zi(a,b,c){a=a|0;b=b|0;c=+c;var d=0.0;d=+g[b+88>>2]*c;g[a>>2]=+g[b+84>>2]*c;g[a+4>>2]=d;return}function _i(a,b){a=a|0;b=+b;return +(+g[a+92>>2]*b)}function $i(a){a=a|0;return +(+g[(c[a+52>>2]|0)+72>>2]-+g[(c[a+48>>2]|0)+72>>2]-+g[a+116>>2])}function aj(a){a=a|0;return +(+g[(c[a+52>>2]|0)+88>>2]-+g[(c[a+48>>2]|0)+88>>2])}function bj(b){b=b|0;return (a[b+100>>0]|0)!=0|0}function cj(d,f){d=d|0;f=f|0;var h=0,i=0,j=0,k=0,l=0;h=c[d+48>>2]|0;i=h+4|0;j=e[i>>1]|0;if(!(j&2)){b[i>>1]=j|2;g[h+160>>2]=0.0}h=c[d+52>>2]|0;j=h+4|0;i=e[j>>1]|0;if(i&2){k=d+100|0;l=f&1;a[k>>0]=l;return}b[j>>1]=i|2;g[h+160>>2]=0.0;k=d+100|0;l=f&1;a[k>>0]=l;return}function dj(a,b){a=a|0;b=+b;return +(+g[a+96>>2]*b)}function ej(a,d){a=a|0;d=+d;var f=0,h=0,i=0,j=0;f=c[a+48>>2]|0;h=f+4|0;i=e[h>>1]|0;if(!(i&2)){b[h>>1]=i|2;g[f+160>>2]=0.0}f=c[a+52>>2]|0;i=f+4|0;h=e[i>>1]|0;if(h&2){j=a+108|0;g[j>>2]=d;return}b[i>>1]=h|2;g[f+160>>2]=0.0;j=a+108|0;g[j>>2]=d;return}function fj(a,d){a=a|0;d=+d;var f=0,h=0,i=0,j=0;f=c[a+48>>2]|0;h=f+4|0;i=e[h>>1]|0;if(!(i&2)){b[h>>1]=i|2;g[f+160>>2]=0.0}f=c[a+52>>2]|0;i=f+4|0;h=e[i>>1]|0;if(h&2){j=a+104|0;g[j>>2]=d;return}b[i>>1]=h|2;g[f+160>>2]=0.0;j=a+104|0;g[j>>2]=d;return}function gj(b){b=b|0;return (a[b+112>>0]|0)!=0|0}function hj(f,h){f=f|0;h=h|0;var i=0,j=0,k=0,l=0;i=f+112|0;if((h&1|0)==(d[i>>0]|0|0))return;j=c[f+48>>2]|0;k=j+4|0;l=e[k>>1]|0;if(!(l&2)){b[k>>1]=l|2;g[j+160>>2]=0.0}j=c[f+52>>2]|0;l=j+4|0;k=e[l>>1]|0;if(!(k&2)){b[l>>1]=k|2;g[j+160>>2]=0.0}a[i>>0]=h&1;g[f+92>>2]=0.0;return}function ij(a,d,f){a=a|0;d=+d;f=+f;var h=0,i=0,j=0,k=0;h=a+120|0;if(!(+g[h>>2]!=d)?!(+g[a+124>>2]!=f):0)return;i=c[a+48>>2]|0;j=i+4|0;k=e[j>>1]|0;if(!(k&2)){b[j>>1]=k|2;g[i+160>>2]=0.0}i=c[a+52>>2]|0;k=i+4|0;j=e[k>>1]|0;if(!(j&2)){b[k>>1]=j|2;g[i+160>>2]=0.0}g[a+92>>2]=0.0;g[h>>2]=d;g[a+124>>2]=f;return}function jj(a){a=a|0;var b=0,e=0,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.0;b=i;i=i+128|0;e=b+120|0;f=b+112|0;j=b+104|0;k=b+96|0;l=b+88|0;m=b+80|0;n=b+72|0;o=b+64|0;p=b+48|0;q=b+32|0;r=b+24|0;s=b+16|0;t=b+8|0;u=c[(c[a+48>>2]|0)+8>>2]|0;v=c[(c[a+52>>2]|0)+8>>2]|0;bo(4358,b);c[t>>2]=u;bo(4769,t);c[s>>2]=v;bo(4795,s);c[r>>2]=d[a+61>>0];bo(4821,r);w=+g[a+72>>2];h[q>>3]=+g[a+68>>2];h[q+8>>3]=w;bo(4942,q);w=+g[a+80>>2];h[p>>3]=+g[a+76>>2];h[p+8>>3]=w;bo(4984,p);h[o>>3]=+g[a+116>>2];bo(4384,o);c[n>>2]=d[a+112>>0];bo(4416,n);h[m>>3]=+g[a+120>>2];bo(4446,m);h[l>>3]=+g[a+124>>2];bo(4474,l);c[k>>2]=d[a+100>>0];bo(4580,k);h[j>>3]=+g[a+108>>2];bo(4610,j);h[f>>3]=+g[a+104>>2];bo(4638,f);c[e>>2]=c[a+56>>2];bo(5099,e);i=b;return}function kj(a){a=a|0;so(a);return}function lj(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var h=0.0,i=0,j=0.0,k=0,l=0.0,m=0,n=0.0;c[a+8>>2]=b;c[a+12>>2]=d;h=+g[e>>2]-+g[b+12>>2];i=e+4|0;j=+g[i>>2]-+g[b+16>>2];k=b+24|0;l=+g[k>>2];m=b+20|0;n=+g[m>>2];g[a+20>>2]=h*l+j*n;g[a+24>>2]=l*j-h*n;n=+g[e>>2]-+g[d+12>>2];h=+g[i>>2]-+g[d+16>>2];j=+g[d+24>>2];l=+g[d+20>>2];g[a+28>>2]=n*j+h*l;g[a+32>>2]=j*h-n*l;l=+g[k>>2];n=+g[f>>2];h=+g[m>>2];j=+g[f+4>>2];g[a+36>>2]=l*n+h*j;g[a+40>>2]=l*j-n*h;return}function mj(b,d){b=b|0;d=d|0;var e=0,f=0,h=0;Oi(b,d);c[b>>2]=1640;e=d+20|0;f=c[e+4>>2]|0;h=b+76|0;c[h>>2]=c[e>>2];c[h+4>>2]=f;f=d+28|0;h=c[f+4>>2]|0;e=b+84|0;c[e>>2]=c[f>>2];c[e+4>>2]=h;h=d+36|0;e=c[h>>2]|0;f=c[h+4>>2]|0;h=b+92|0;c[h>>2]=e;c[h+4>>2]=f;g[b+100>>2]=-(c[k>>2]=f,+g[k>>2]);c[b+104>>2]=e;g[b+204>>2]=0.0;g[b+108>>2]=0.0;g[b+208>>2]=0.0;g[b+112>>2]=0.0;g[b+212>>2]=0.0;g[b+116>>2]=0.0;c[b+120>>2]=c[d+48>>2];c[b+124>>2]=c[d+52>>2];a[b+128>>0]=a[d+44>>0]|0;c[b+68>>2]=c[d+56>>2];c[b+72>>2]=c[d+60>>2];g[b+216>>2]=0.0;g[b+220>>2]=0.0;d=b+172|0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;c[d+12>>2]=0;return}function nj(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.0,w=0.0,x=0.0,y=0.0,z=0.0,A=0,B=0,C=0.0,D=0.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,S=0.0,T=0.0,U=0.0,V=0.0,W=0.0,X=0,Y=0,Z=0,_=0,$=0.0,aa=0.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;e=c[b+48>>2]|0;f=c[e+8>>2]|0;h=b+132|0;c[h>>2]=f;i=c[b+52>>2]|0;j=c[i+8>>2]|0;l=b+136|0;c[l>>2]=j;m=e+44|0;n=c[m>>2]|0;o=c[m+4>>2]|0;m=b+140|0;c[m>>2]=n;c[m+4>>2]=o;m=i+44|0;p=c[m>>2]|0;q=c[m+4>>2]|0;m=b+148|0;c[m>>2]=p;c[m+4>>2]=q;m=c[e+136>>2]|0;r=b+156|0;c[r>>2]=m;s=c[i+136>>2]|0;t=b+160|0;c[t>>2]=s;u=c[e+144>>2]|0;e=b+164|0;c[e>>2]=u;v=+g[i+144>>2];i=b+168|0;g[i>>2]=v;w=(c[k>>2]=m,+g[k>>2]);x=(c[k>>2]=s,+g[k>>2]);y=(c[k>>2]=u,+g[k>>2]);u=c[d+28>>2]|0;z=+g[u+(f*12|0)+8>>2];s=d+32|0;m=c[s>>2]|0;A=c[m+(f*12|0)>>2]|0;B=c[m+(f*12|0)+4>>2]|0;C=+g[m+(f*12|0)+8>>2];D=+g[u+(j*12|0)+8>>2];E=c[m+(j*12|0)>>2]|0;F=c[m+(j*12|0)+4>>2]|0;G=+g[m+(j*12|0)+8>>2];H=+R(+z);I=+Q(+z);z=+R(+D);J=+Q(+D);D=+g[b+76>>2]-(c[k>>2]=n,+g[k>>2]);K=+g[b+80>>2]-(c[k>>2]=o,+g[k>>2]);L=I*D-H*K;M=H*D+I*K;K=+g[b+84>>2]-(c[k>>2]=p,+g[k>>2]);D=+g[b+88>>2]-(c[k>>2]=q,+g[k>>2]);N=J*K-z*D;O=z*K+J*D;D=+g[u+(j*12|0)>>2]+N-+g[u+(f*12|0)>>2]-L;J=+g[u+(j*12|0)+4>>2]+O-+g[u+(f*12|0)+4>>2]-M;K=+g[b+100>>2];z=+g[b+104>>2];P=I*K-H*z;S=H*K+I*z;g[b+180>>2]=P;g[b+184>>2]=S;z=L+D;L=M+J;M=S*z-P*L;g[b+196>>2]=M;K=N*S-O*P;g[b+200>>2]=K;T=w+x;x=T+M*(y*M)+K*(v*K);g[b+204>>2]=x>0.0?1.0/x:x;f=b+212|0;g[f>>2]=0.0;u=b+216|0;g[u>>2]=0.0;j=b+220|0;g[j>>2]=0.0;x=+g[b+68>>2];if(x>0.0){w=+g[b+92>>2];U=+g[b+96>>2];V=I*w-H*U;W=H*w+I*U;g[b+172>>2]=V;g[b+176>>2]=W;U=z*W-L*V;g[b+188>>2]=U;L=N*W-O*V;g[b+192>>2]=L;O=T+U*(y*U)+L*(v*L);if(O>0.0?(L=1.0/O,U=x*6.2831854820251465,x=U*(L*U),T=+g[d>>2],N=T*(U*(L*2.0*+g[b+72>>2])+T*x),L=N>0.0?1.0/N:N,g[j>>2]=L,g[u>>2]=(D*V+J*W)*T*x*L,x=O+L,g[f>>2]=x,x>0.0):0)g[f>>2]=1.0/x}else g[b+116>>2]=0.0;if(a[b+128>>0]|0){x=v+y;f=b+208|0;g[f>>2]=x;if(x>0.0)g[f>>2]=1.0/x}else{g[b+208>>2]=0.0;g[b+112>>2]=0.0}if(!(a[d+24>>0]|0)){g[b+108>>2]=0.0;g[b+116>>2]=0.0;g[b+112>>2]=0.0;X=A;Y=B;Z=E;_=F;$=C;aa=G;ba=c[h>>2]|0;ca=c[s>>2]|0;da=ca+(ba*12|0)|0;c[da>>2]=X;ea=ca+(ba*12|0)+4|0;c[ea>>2]=Y;fa=c[h>>2]|0;ga=c[s>>2]|0;ha=ga+(fa*12|0)+8|0;g[ha>>2]=$;ia=c[l>>2]|0;ja=ga+(ia*12|0)|0;c[ja>>2]=Z;ka=ga+(ia*12|0)+4|0;c[ka>>2]=_;la=c[l>>2]|0;ma=c[s>>2]|0;na=ma+(la*12|0)+8|0;g[na>>2]=aa;return}else{x=+g[d+8>>2];d=b+108|0;y=x*+g[d>>2];g[d>>2]=y;d=b+116|0;v=x*+g[d>>2];g[d>>2]=v;d=b+112|0;L=x*+g[d>>2];g[d>>2]=L;x=y*P+v*+g[b+172>>2];P=y*S+v*+g[b+176>>2];S=+g[r>>2];r=(g[k>>2]=(c[k>>2]=A,+g[k>>2])-x*S,c[k>>2]|0);A=(g[k>>2]=(c[k>>2]=B,+g[k>>2])-P*S,c[k>>2]|0);S=+g[t>>2];t=(g[k>>2]=(c[k>>2]=E,+g[k>>2])+x*S,c[k>>2]|0);X=r;Y=A;Z=t;_=(g[k>>2]=(c[k>>2]=F,+g[k>>2])+P*S,c[k>>2]|0);$=C-(L+(y*M+v*+g[b+188>>2]))*+g[e>>2];aa=G+(L+(y*K+v*+g[b+192>>2]))*+g[i>>2];ba=c[h>>2]|0;ca=c[s>>2]|0;da=ca+(ba*12|0)|0;c[da>>2]=X;ea=ca+(ba*12|0)+4|0;c[ea>>2]=Y;fa=c[h>>2]|0;ga=c[s>>2]|0;ha=ga+(fa*12|0)+8|0;g[ha>>2]=$;ia=c[l>>2]|0;ja=ga+(ia*12|0)|0;c[ja>>2]=Z;ka=ga+(ia*12|0)+4|0;c[ka>>2]=_;la=c[l>>2]|0;ma=c[s>>2]|0;na=ma+(la*12|0)+8|0;g[na>>2]=aa;return}}function oj(a,b){a=a|0;b=b|0;var d=0.0,e=0.0,f=0.0,h=0.0,i=0,j=0,k=0,l=0,m=0.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.0,z=0.0;d=+g[a+156>>2];e=+g[a+160>>2];f=+g[a+164>>2];h=+g[a+168>>2];i=a+132|0;j=c[i>>2]|0;k=b+32|0;l=c[k>>2]|0;m=+g[l+(j*12|0)>>2];n=+g[l+(j*12|0)+4>>2];o=+g[l+(j*12|0)+8>>2];j=a+136|0;p=c[j>>2]|0;q=+g[l+(p*12|0)>>2];r=+g[l+(p*12|0)+4>>2];s=+g[l+(p*12|0)+8>>2];t=+g[a+172>>2];u=+g[a+176>>2];v=+g[a+192>>2];w=+g[a+188>>2];p=a+116|0;x=+g[p>>2];y=+g[a+212>>2]*((q-m)*t+(r-n)*u+s*v-o*w+ +g[a+216>>2]+ +g[a+220>>2]*x);z=-y;g[p>>2]=x-y;y=t*z;t=u*z;u=m-d*y;m=n-d*t;n=o-f*(w*z);w=q+e*y;y=r+e*t;t=s+h*(v*z);p=a+112|0;z=+g[p>>2];v=+g[b>>2]*+g[a+120>>2];s=z-+g[a+208>>2]*(t-n-+g[a+124>>2]);r=-v;q=s>2]=v;q=v-z;z=n-f*q;n=t+h*q;q=+g[a+180>>2];t=+g[a+184>>2];v=+g[a+200>>2];r=+g[a+196>>2];s=+g[a+204>>2]*((w-u)*q+(y-m)*t+v*n-r*z);o=-s;p=a+108|0;g[p>>2]=+g[p>>2]-s;s=q*o;q=t*o;p=c[i>>2]|0;a=c[k>>2]|0;g[a+(p*12|0)>>2]=u-d*s;g[a+(p*12|0)+4>>2]=m-d*q;p=c[k>>2]|0;g[p+((c[i>>2]|0)*12|0)+8>>2]=z-f*(r*o);i=c[j>>2]|0;g[p+(i*12|0)>>2]=w+e*s;g[p+(i*12|0)+4>>2]=y+e*q;g[(c[k>>2]|0)+((c[j>>2]|0)*12|0)+8>>2]=n+h*(v*o);return}function pj(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.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;d=a+132|0;e=c[d>>2]|0;f=b+28|0;b=c[f>>2]|0;h=b+(e*12|0)|0;i=+g[h>>2];j=b+(e*12|0)+4|0;k=+g[j>>2];l=+g[b+(e*12|0)+8>>2];e=a+136|0;m=c[e>>2]|0;n=+g[b+(m*12|0)>>2];o=+g[b+(m*12|0)+4>>2];p=+g[b+(m*12|0)+8>>2];q=+R(+l);r=+Q(+l);s=+R(+p);t=+Q(+p);u=+g[a+76>>2]-+g[a+140>>2];v=+g[a+80>>2]-+g[a+144>>2];w=r*u-q*v;x=q*u+r*v;v=+g[a+84>>2]-+g[a+148>>2];u=+g[a+88>>2]-+g[a+152>>2];y=t*v-s*u;z=s*v+t*u;u=n-i+y-w;t=o-k+z-x;v=+g[a+100>>2];s=+g[a+104>>2];A=r*v-q*s;B=q*v+r*s;s=A*u+B*t;r=+g[a+156>>2];v=+g[a+160>>2];q=+g[a+164>>2];C=+g[a+196>>2];D=+g[a+168>>2];E=+g[a+200>>2];F=r+v+C*(q*C)+E*(D*E);E=-s;C=F!=0.0?E/F:0.0;F=A*C;G=B*C;g[h>>2]=i-r*F;g[j>>2]=k-r*G;j=c[f>>2]|0;g[j+((c[d>>2]|0)*12|0)+8>>2]=l-q*((B*(w+u)-A*(x+t))*C);d=c[e>>2]|0;g[j+(d*12|0)>>2]=n+v*F;g[j+(d*12|0)+4>>2]=o+v*G;g[(c[f>>2]|0)+((c[e>>2]|0)*12|0)+8>>2]=p+D*((y*B-z*A)*C);return (s>0.0?s:E)<=.004999999888241291|0}function qj(a,b){a=a|0;b=b|0;var d=0,e=0.0,f=0.0,h=0.0,i=0.0,j=0.0;d=c[b+48>>2]|0;e=+g[d+24>>2];f=+g[b+76>>2];h=+g[d+20>>2];i=+g[b+80>>2];j=f*h+e*i+ +g[d+16>>2];g[a>>2]=+g[d+12>>2]+(e*f-h*i);g[a+4>>2]=j;return}function rj(a,b){a=a|0;b=b|0;var d=0,e=0.0,f=0.0,h=0.0,i=0.0,j=0.0;d=c[b+52>>2]|0;e=+g[d+24>>2];f=+g[b+84>>2];h=+g[d+20>>2];i=+g[b+88>>2];j=f*h+e*i+ +g[d+16>>2];g[a>>2]=+g[d+12>>2]+(e*f-h*i);g[a+4>>2]=j;return}function sj(a,b,c){a=a|0;b=b|0;c=+c;var d=0.0,e=0.0,f=0.0;d=+g[b+108>>2];e=+g[b+116>>2];f=(d*+g[b+184>>2]+e*+g[b+176>>2])*c;g[a>>2]=(d*+g[b+180>>2]+e*+g[b+172>>2])*c;g[a+4>>2]=f;return}function tj(a,b){a=a|0;b=+b;return +(+g[a+112>>2]*b)}function uj(a){a=a|0;var b=0,d=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;b=c[a+48>>2]|0;d=c[a+52>>2]|0;e=+g[b+24>>2];f=+g[a+76>>2];h=+g[b+20>>2];i=+g[a+80>>2];j=+g[d+24>>2];k=+g[a+84>>2];l=+g[d+20>>2];m=+g[a+88>>2];n=+g[a+92>>2];o=+g[a+96>>2];return +((+g[d+12>>2]+(j*k-l*m)-(+g[b+12>>2]+(e*f-h*i)))*(e*n-h*o)+(k*l+j*m+ +g[d+16>>2]-(f*h+e*i+ +g[b+16>>2]))*(h*n+e*o))}function vj(a){a=a|0;return +(+g[(c[a+52>>2]|0)+88>>2]-+g[(c[a+48>>2]|0)+88>>2])}function wj(b){b=b|0;return (a[b+128>>0]|0)!=0|0}function xj(d,f){d=d|0;f=f|0;var h=0,i=0,j=0,k=0,l=0;h=c[d+48>>2]|0;i=h+4|0;j=e[i>>1]|0;if(!(j&2)){b[i>>1]=j|2;g[h+160>>2]=0.0}h=c[d+52>>2]|0;j=h+4|0;i=e[j>>1]|0;if(i&2){k=d+128|0;l=f&1;a[k>>0]=l;return}b[j>>1]=i|2;g[h+160>>2]=0.0;k=d+128|0;l=f&1;a[k>>0]=l;return}function yj(a,d){a=a|0;d=+d;var f=0,h=0,i=0,j=0;f=c[a+48>>2]|0;h=f+4|0;i=e[h>>1]|0;if(!(i&2)){b[h>>1]=i|2;g[f+160>>2]=0.0}f=c[a+52>>2]|0;i=f+4|0;h=e[i>>1]|0;if(h&2){j=a+124|0;g[j>>2]=d;return}b[i>>1]=h|2;g[f+160>>2]=0.0;j=a+124|0;g[j>>2]=d;return}function zj(a,d){a=a|0;d=+d;var f=0,h=0,i=0,j=0;f=c[a+48>>2]|0;h=f+4|0;i=e[h>>1]|0;if(!(i&2)){b[h>>1]=i|2;g[f+160>>2]=0.0}f=c[a+52>>2]|0;i=f+4|0;h=e[i>>1]|0;if(h&2){j=a+120|0;g[j>>2]=d;return}b[i>>1]=h|2;g[f+160>>2]=0.0;j=a+120|0;g[j>>2]=d;return}function Aj(a,b){a=a|0;b=+b;return +(+g[a+112>>2]*b)}function Bj(a){a=a|0;var b=0,e=0,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.0;b=i;i=i+128|0;e=b+120|0;f=b+112|0;j=b+104|0;k=b+96|0;l=b+88|0;m=b+80|0;n=b+64|0;o=b+48|0;p=b+32|0;q=b+24|0;r=b+16|0;s=b+8|0;t=c[(c[a+48>>2]|0)+8>>2]|0;u=c[(c[a+52>>2]|0)+8>>2]|0;bo(4517,b);c[s>>2]=t;bo(4769,s);c[r>>2]=u;bo(4795,r);c[q>>2]=d[a+61>>0];bo(4821,q);v=+g[a+80>>2];h[p>>3]=+g[a+76>>2];h[p+8>>3]=v;bo(4942,p);v=+g[a+88>>2];h[o>>3]=+g[a+84>>2];h[o+8>>3]=v;bo(4984,o);v=+g[a+96>>2];h[n>>3]=+g[a+92>>2];h[n+8>>3]=v;bo(4540,n);c[m>>2]=d[a+128>>0];bo(4580,m);h[l>>3]=+g[a+124>>2];bo(4610,l);h[k>>3]=+g[a+120>>2];bo(4638,k);h[j>>3]=+g[a+68>>2];bo(4670,j);h[f>>3]=+g[a+72>>2];bo(4699,f);c[e>>2]=c[a+56>>2];bo(5099,e);i=b;return}function Cj(a){a=a|0;so(a);return}function Dj(a,b,d,e,f,h,i,j){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;i=i|0;j=+j;var k=0,l=0,m=0,n=0.0,o=0.0,p=0.0,q=0.0;c[a+8>>2]=b;c[a+12>>2]=d;k=e;l=c[k+4>>2]|0;m=a+20|0;c[m>>2]=c[k>>2];c[m+4>>2]=l;l=f;m=c[l+4>>2]|0;k=a+28|0;c[k>>2]=c[l>>2];c[k+4>>2]=m;n=+g[h>>2]-+g[b+12>>2];m=h+4|0;o=+g[m>>2]-+g[b+16>>2];p=+g[b+24>>2];q=+g[b+20>>2];g[a+36>>2]=n*p+o*q;g[a+40>>2]=p*o-n*q;q=+g[i>>2]-+g[d+12>>2];b=i+4|0;n=+g[b>>2]-+g[d+16>>2];o=+g[d+24>>2];p=+g[d+20>>2];g[a+44>>2]=q*o+n*p;g[a+48>>2]=o*n-q*p;p=+g[h>>2]-+g[e>>2];q=+g[m>>2]-+g[e+4>>2];g[a+52>>2]=+O(+(p*p+q*q));q=+g[i>>2]-+g[f>>2];p=+g[b>>2]-+g[f+4>>2];g[a+56>>2]=+O(+(q*q+p*p));g[a+60>>2]=j;return}function Ej(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0.0,i=0.0;Oi(a,b);c[a>>2]=1692;d=b+20|0;e=c[d+4>>2]|0;f=a+68|0;c[f>>2]=c[d>>2];c[f+4>>2]=e;e=b+28|0;f=c[e+4>>2]|0;d=a+76|0;c[d>>2]=c[e>>2];c[d+4>>2]=f;f=b+36|0;d=c[f+4>>2]|0;e=a+92|0;c[e>>2]=c[f>>2];c[e+4>>2]=d;d=b+44|0;e=c[d+4>>2]|0;f=a+100|0;c[f>>2]=c[d>>2];c[f+4>>2]=e;e=c[b+52>>2]|0;c[a+84>>2]=e;f=c[b+56>>2]|0;c[a+88>>2]=f;h=+g[b+60>>2];g[a+112>>2]=h;i=(c[k>>2]=e,+g[k>>2]);g[a+108>>2]=i+h*(c[k>>2]=f,+g[k>>2]);g[a+116>>2]=0.0;return}function Fj(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.0,u=0.0,v=0.0,w=0,x=0,y=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,P=0.0,S=0,T=0,U=0,V=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;e=c[b+48>>2]|0;f=c[e+8>>2]|0;h=b+120|0;c[h>>2]=f;i=c[b+52>>2]|0;j=c[i+8>>2]|0;l=b+124|0;c[l>>2]=j;m=e+44|0;n=c[m>>2]|0;o=c[m+4>>2]|0;m=b+160|0;c[m>>2]=n;c[m+4>>2]=o;m=i+44|0;p=c[m>>2]|0;q=c[m+4>>2]|0;m=b+168|0;c[m>>2]=p;c[m+4>>2]=q;m=b+176|0;c[m>>2]=c[e+136>>2];r=b+180|0;c[r>>2]=c[i+136>>2];s=b+184|0;c[s>>2]=c[e+144>>2];e=b+188|0;c[e>>2]=c[i+144>>2];i=c[d+28>>2]|0;t=+g[i+(f*12|0)>>2];u=+g[i+(f*12|0)+4>>2];v=+g[i+(f*12|0)+8>>2];w=d+32|0;x=c[w>>2]|0;y=c[x+(f*12|0)>>2]|0;z=c[x+(f*12|0)+4>>2]|0;A=+g[x+(f*12|0)+8>>2];B=+g[i+(j*12|0)>>2];C=+g[i+(j*12|0)+4>>2];D=+g[i+(j*12|0)+8>>2];i=c[x+(j*12|0)>>2]|0;f=c[x+(j*12|0)+4>>2]|0;E=+g[x+(j*12|0)+8>>2];F=+R(+v);G=+Q(+v);v=+R(+D);H=+Q(+D);D=+g[b+92>>2]-(c[k>>2]=n,+g[k>>2]);I=+g[b+96>>2]-(c[k>>2]=o,+g[k>>2]);J=G*D-F*I;K=F*D+G*I;g[b+144>>2]=J;g[b+148>>2]=K;I=+g[b+100>>2]-(c[k>>2]=p,+g[k>>2]);G=+g[b+104>>2]-(c[k>>2]=q,+g[k>>2]);D=H*I-v*G;F=v*I+H*G;g[b+152>>2]=D;g[b+156>>2]=F;G=t+J-+g[b+68>>2];t=u+K-+g[b+72>>2];q=b+128|0;g[q>>2]=G;p=b+132|0;g[p>>2]=t;u=B+D-+g[b+76>>2];B=C+F-+g[b+80>>2];o=b+136|0;g[o>>2]=u;n=b+140|0;g[n>>2]=B;C=+O(+(G*G+t*t));H=+O(+(u*u+B*B));if(C>.04999999701976776){I=1.0/C;C=G*I;g[q>>2]=C;L=I*t;M=C}else{g[q>>2]=0.0;L=0.0;M=0.0}g[p>>2]=L;if(H>.04999999701976776){C=1.0/H;H=C*u;g[o>>2]=H;N=C*B;P=H}else{g[o>>2]=0.0;N=0.0;P=0.0}g[n>>2]=N;H=J*L-K*M;B=D*N-F*P;C=+g[m>>2];u=+g[s>>2];t=+g[r>>2];I=+g[e>>2];G=+g[b+112>>2];v=C+H*(H*u)+G*G*(t+B*(B*I));g[b+192>>2]=v>0.0?1.0/v:v;if(!(a[d+24>>0]|0)){g[b+116>>2]=0.0;S=y;T=z;U=i;V=f;W=A;X=E;Y=c[h>>2]|0;Z=c[w>>2]|0;_=Z+(Y*12|0)|0;c[_>>2]=S;$=Z+(Y*12|0)+4|0;c[$>>2]=T;aa=c[h>>2]|0;ba=c[w>>2]|0;ca=ba+(aa*12|0)+8|0;g[ca>>2]=W;da=c[l>>2]|0;ea=ba+(da*12|0)|0;c[ea>>2]=U;fa=ba+(da*12|0)+4|0;c[fa>>2]=V;ga=c[l>>2]|0;ha=c[w>>2]|0;ia=ha+(ga*12|0)+8|0;g[ia>>2]=X;return}else{e=b+116|0;v=+g[d+8>>2]*+g[e>>2];g[e>>2]=v;B=-v;H=M*B;M=L*B;B=-(v*G);G=P*B;P=N*B;e=(g[k>>2]=(c[k>>2]=y,+g[k>>2])+H*C,c[k>>2]|0);y=(g[k>>2]=(c[k>>2]=z,+g[k>>2])+M*C,c[k>>2]|0);z=(g[k>>2]=(c[k>>2]=i,+g[k>>2])+G*t,c[k>>2]|0);S=e;T=y;U=z;V=(g[k>>2]=(c[k>>2]=f,+g[k>>2])+P*t,c[k>>2]|0);W=A+u*(M*J-H*K);X=E+I*(P*D-G*F);Y=c[h>>2]|0;Z=c[w>>2]|0;_=Z+(Y*12|0)|0;c[_>>2]=S;$=Z+(Y*12|0)+4|0;c[$>>2]=T;aa=c[h>>2]|0;ba=c[w>>2]|0;ca=ba+(aa*12|0)+8|0;g[ca>>2]=W;da=c[l>>2]|0;ea=ba+(da*12|0)|0;c[ea>>2]=U;fa=ba+(da*12|0)+4|0;c[fa>>2]=V;ga=c[l>>2]|0;ha=c[w>>2]|0;ia=ha+(ga*12|0)+8|0;g[ia>>2]=X;return}}function Gj(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.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;d=a+120|0;e=c[d>>2]|0;f=b+32|0;b=c[f>>2]|0;h=b+(e*12|0)|0;i=+g[h>>2];j=b+(e*12|0)+4|0;k=+g[j>>2];l=+g[b+(e*12|0)+8>>2];e=a+124|0;m=c[e>>2]|0;n=+g[b+(m*12|0)>>2];o=+g[b+(m*12|0)+4>>2];p=+g[b+(m*12|0)+8>>2];q=+g[a+148>>2];r=+g[a+144>>2];s=+g[a+156>>2];t=+g[a+152>>2];u=+g[a+128>>2];v=+g[a+132>>2];w=+g[a+112>>2];x=+g[a+136>>2];y=+g[a+140>>2];z=+g[a+192>>2]*(-((i-l*q)*u+(k+l*r)*v)-w*((n-p*s)*x+(o+p*t)*y));m=a+116|0;g[m>>2]=+g[m>>2]-z;A=u*z;u=v*z;v=w*z;z=x*v;x=v*y;y=+g[a+176>>2];v=l+ +g[a+184>>2]*(u*r-A*q);q=+g[a+180>>2];r=p+ +g[a+188>>2]*(x*t-z*s);g[h>>2]=i+A*y;g[j>>2]=k+u*y;j=c[f>>2]|0;g[j+((c[d>>2]|0)*12|0)+8>>2]=v;d=c[e>>2]|0;g[j+(d*12|0)>>2]=n+z*q;g[j+(d*12|0)+4>>2]=o+x*q;g[(c[f>>2]|0)+((c[e>>2]|0)*12|0)+8>>2]=r;return}function Hj(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.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;d=a+120|0;e=c[d>>2]|0;f=b+28|0;b=c[f>>2]|0;h=b+(e*12|0)|0;i=+g[h>>2];j=b+(e*12|0)+4|0;k=+g[j>>2];l=+g[b+(e*12|0)+8>>2];e=a+124|0;m=c[e>>2]|0;n=+g[b+(m*12|0)>>2];o=+g[b+(m*12|0)+4>>2];p=+g[b+(m*12|0)+8>>2];q=+R(+l);r=+Q(+l);s=+R(+p);t=+Q(+p);u=+g[a+92>>2]-+g[a+160>>2];v=+g[a+96>>2]-+g[a+164>>2];w=r*u-q*v;x=q*u+r*v;v=+g[a+100>>2]-+g[a+168>>2];r=+g[a+104>>2]-+g[a+172>>2];u=t*v-s*r;q=s*v+t*r;r=i+w-+g[a+68>>2];t=k+x-+g[a+72>>2];v=n+u-+g[a+76>>2];s=o+q-+g[a+80>>2];y=+O(+(r*r+t*t));z=+O(+(v*v+s*s));if(y>.04999999701976776){A=1.0/y;B=t*A;C=r*A}else{B=0.0;C=0.0}if(z>.04999999701976776){A=1.0/z;D=s*A;E=v*A}else{D=0.0;E=0.0}A=w*B-x*C;v=u*D-q*E;s=+g[a+176>>2];r=+g[a+184>>2];t=+g[a+180>>2];F=+g[a+188>>2];G=+g[a+112>>2];H=s+A*(A*r)+G*G*(t+v*(v*F));v=+g[a+108>>2]-y-z*G;z=v*(H>0.0?1.0/H:H);H=C*z;C=B*z;B=G*z;z=E*B;E=D*B;g[h>>2]=i+s*H;g[j>>2]=k+s*C;j=c[f>>2]|0;g[j+((c[d>>2]|0)*12|0)+8>>2]=l+r*(w*C-x*H);d=c[e>>2]|0;g[j+(d*12|0)>>2]=n+t*z;g[j+(d*12|0)+4>>2]=o+t*E;g[(c[f>>2]|0)+((c[e>>2]|0)*12|0)+8>>2]=p+F*(u*E-q*z);return (v>0.0?v:-v)<.004999999888241291|0}function Ij(a,b){a=a|0;b=b|0;var d=0,e=0.0,f=0.0,h=0.0,i=0.0,j=0.0;d=c[b+48>>2]|0;e=+g[d+24>>2];f=+g[b+92>>2];h=+g[d+20>>2];i=+g[b+96>>2];j=f*h+e*i+ +g[d+16>>2];g[a>>2]=+g[d+12>>2]+(e*f-h*i);g[a+4>>2]=j;return}function Jj(a,b){a=a|0;b=b|0;var d=0,e=0.0,f=0.0,h=0.0,i=0.0,j=0.0;d=c[b+52>>2]|0;e=+g[d+24>>2];f=+g[b+100>>2];h=+g[d+20>>2];i=+g[b+104>>2];j=f*h+e*i+ +g[d+16>>2];g[a>>2]=+g[d+12>>2]+(e*f-h*i);g[a+4>>2]=j;return}function Kj(a,b,c){a=a|0;b=b|0;c=+c;var d=0.0,e=0.0;d=+g[b+116>>2];e=d*+g[b+140>>2]*c;g[a>>2]=d*+g[b+136>>2]*c;g[a+4>>2]=e;return}function Lj(a,b){a=a|0;b=+b;return 0.0}function Mj(a,b){a=a|0;b=b|0;var d=0,e=0;d=b+68|0;b=c[d+4>>2]|0;e=a;c[e>>2]=c[d>>2];c[e+4>>2]=b;return}function Nj(a,b){a=a|0;b=b|0;var d=0,e=0;d=b+76|0;b=c[d+4>>2]|0;e=a;c[e>>2]=c[d>>2];c[e+4>>2]=b;return}function Oj(a){a=a|0;var b=0,d=0.0,e=0.0,f=0.0,h=0.0,i=0.0,j=0.0;b=c[a+48>>2]|0;d=+g[b+24>>2];e=+g[a+92>>2];f=+g[b+20>>2];h=+g[a+96>>2];i=+g[b+12>>2]+(d*e-f*h)-+g[a+68>>2];j=e*f+d*h+ +g[b+16>>2]-+g[a+72>>2];return +(+O(+(i*i+j*j)))}function Pj(a){a=a|0;var b=0,d=0.0,e=0.0,f=0.0,h=0.0,i=0.0,j=0.0;b=c[a+52>>2]|0;d=+g[b+24>>2];e=+g[a+100>>2];f=+g[b+20>>2];h=+g[a+104>>2];i=+g[b+12>>2]+(d*e-f*h)-+g[a+76>>2];j=e*f+d*h+ +g[b+16>>2]-+g[a+80>>2];return +(+O(+(i*i+j*j)))}function Qj(a){a=a|0;var b=0,e=0,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.0;b=i;i=i+128|0;e=b+120|0;f=b+112|0;j=b+104|0;k=b+96|0;l=b+80|0;m=b+64|0;n=b+48|0;o=b+32|0;p=b+24|0;q=b+16|0;r=b+8|0;s=c[(c[a+48>>2]|0)+8>>2]|0;t=c[(c[a+52>>2]|0)+8>>2]|0;bo(4745,b);c[r>>2]=s;bo(4769,r);c[q>>2]=t;bo(4795,q);c[p>>2]=d[a+61>>0];bo(4821,p);u=+g[a+72>>2];h[o>>3]=+g[a+68>>2];h[o+8>>3]=u;bo(4856,o);u=+g[a+80>>2];h[n>>3]=+g[a+76>>2];h[n+8>>3]=u;bo(4899,n);u=+g[a+96>>2];h[m>>3]=+g[a+92>>2];h[m+8>>3]=u;bo(4942,m);u=+g[a+104>>2];h[l>>3]=+g[a+100>>2];h[l+8>>3]=u;bo(4984,l);h[k>>3]=+g[a+84>>2];bo(5026,k);h[j>>3]=+g[a+88>>2];bo(5051,j);h[f>>3]=+g[a+112>>2];bo(5076,f);c[e>>2]=c[a+56>>2];bo(5099,e);i=b;return}function Rj(a,b){a=a|0;b=b|0;var c=0,d=0;c=a+68|0;g[c>>2]=+g[c>>2]-+g[b>>2];c=b+4|0;d=a+72|0;g[d>>2]=+g[d>>2]-+g[c>>2];d=a+76|0;g[d>>2]=+g[d>>2]-+g[b>>2];b=a+80|0;g[b>>2]=+g[b>>2]-+g[c>>2];return}function Sj(a){a=a|0;so(a);return}function Tj(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0;g=Sn(f,148)|0;_j(g,a,b,d,e);c[g>>2]=1744;return g|0}function Uj(a,b){a=a|0;b=b|0;ib[c[(c[a>>2]|0)+4>>2]&127](a);Tn(b,a,148);return}function Vj(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;h=i;i=i+48|0;j=h;k=c[(c[a+48>>2]|0)+12>>2]|0;c[j>>2]=916;c[j+4>>2]=1;g[j+8>>2]=.009999999776482582;l=j+28|0;c[l>>2]=0;c[l+4>>2]=0;c[l+8>>2]=0;c[l+12>>2]=0;b[l+16>>1]=0;Vf(k,j,c[a+56>>2]|0);ug(d,j,e,c[(c[a+52>>2]|0)+12>>2]|0,f);i=h;return}function Wj(a){a=a|0;return}function Xj(a){a=a|0;so(a);return}function Yj(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;if(!(a[5180]|0)){c[439]=6;c[440]=53;a[1764]=1;c[463]=7;c[464]=54;a[1860]=1;c[445]=7;c[446]=54;a[1788]=0;c[469]=8;c[470]=55;a[1884]=1;c[451]=9;c[452]=56;a[1812]=1;c[442]=9;c[443]=56;a[1776]=0;c[457]=10;c[458]=57;a[1836]=1;c[466]=10;c[467]=57;a[1872]=0;c[475]=11;c[476]=58;a[1908]=1;c[448]=11;c[449]=58;a[1800]=0;c[481]=12;c[482]=59;a[1932]=1;c[472]=12;c[473]=59;a[1896]=0;a[5180]=1}h=c[(c[b+12>>2]|0)+4>>2]|0;i=c[(c[e+12>>2]|0)+4>>2]|0;j=c[1756+(h*48|0)+(i*12|0)>>2]|0;if(!j){k=0;return k|0}if(!(a[1756+(h*48|0)+(i*12|0)+8>>0]|0)){k=sb[j&15](e,f,b,d,g)|0;return k|0}else{k=sb[j&15](b,d,e,f,g)|0;return k|0}return 0}function Zj(d,f){d=d|0;f=f|0;var h=0,i=0,j=0,k=0,l=0;h=c[d+48>>2]|0;i=c[d+52>>2]|0;if(((c[d+124>>2]|0)>0?(a[h+38>>0]|0)==0:0)?(a[i+38>>0]|0)==0:0){j=c[h+8>>2]|0;k=j+4|0;l=e[k>>1]|0;if(!(l&2)){b[k>>1]=l|2;g[j+160>>2]=0.0}j=c[i+8>>2]|0;l=j+4|0;k=e[l>>1]|0;if(!(k&2)){b[l>>1]=k|2;g[j+160>>2]=0.0}}kb[c[1756+((c[(c[h+12>>2]|0)+4>>2]|0)*48|0)+((c[(c[i+12>>2]|0)+4>>2]|0)*12|0)+4>>2]&63](d,f);return}function _j(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var h=0,i=0.0,j=0.0;c[a>>2]=1956;c[a+4>>2]=4;c[a+48>>2]=b;c[a+52>>2]=e;c[a+56>>2]=d;c[a+60>>2]=f;c[a+124>>2]=0;c[a+128>>2]=0;f=b+16|0;d=a+8|0;h=d+40|0;do{c[d>>2]=0;d=d+4|0}while((d|0)<(h|0));g[a+136>>2]=+O(+(+g[f>>2]*+g[e+16>>2]));i=+g[b+20>>2];j=+g[e+20>>2];g[a+140>>2]=i>j?i:j;g[a+144>>2]=0.0;return}function $j(d,f){d=d|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,C=0,D=0,E=0;h=i;i=i+64|0;j=h;k=d+64|0;l=j;m=k;n=l+64|0;do{c[l>>2]=c[m>>2];l=l+4|0;m=m+4|0}while((l|0)<(n|0));m=d+4|0;l=c[m>>2]|0;c[m>>2]=l|4;n=l>>>1;l=c[d+48>>2]|0;o=c[d+52>>2]|0;p=(a[o+38>>0]|a[l+38>>0])<<24>>24!=0;q=c[l+8>>2]|0;r=c[o+8>>2]|0;s=q+12|0;t=r+12|0;if(!p){tb[c[c[d>>2]>>2]&31](d,k,s,t);k=d+124|0;u=(c[k>>2]|0)>0;a:do if(u){v=c[j+60>>2]|0;if((v|0)>0)w=0;else{x=0;while(1){g[d+64+(x*20|0)+8>>2]=0.0;g[d+64+(x*20|0)+12>>2]=0.0;x=x+1|0;if((x|0)>=(c[k>>2]|0))break a}}do{x=d+64+(w*20|0)+8|0;g[x>>2]=0.0;y=d+64+(w*20|0)+12|0;g[y>>2]=0.0;z=c[d+64+(w*20|0)+16>>2]|0;A=0;do{if((c[j+(A*20|0)+16>>2]|0)==(z|0)){B=A;C=7;break}A=A+1|0}while((A|0)<(v|0));if((C|0)==7){C=0;c[x>>2]=c[j+(B*20|0)+8>>2];c[y>>2]=c[j+(B*20|0)+12>>2]}w=w+1|0}while((w|0)<(c[k>>2]|0))}while(0);k=n&1;if((k|0)!=0^u){w=q+4|0;B=e[w>>1]|0;if(!(B&2)){b[w>>1]=B|2;g[q+160>>2]=0.0}q=r+4|0;B=e[q>>1]|0;if(!(B&2)){b[q>>1]=B|2;g[r+160>>2]=0.0;D=k;E=u}else{D=k;E=u}}else{D=k;E=u}}else{u=zg(c[l+12>>2]|0,c[d+56>>2]|0,c[o+12>>2]|0,c[d+60>>2]|0,s,t)|0;c[d+124>>2]=0;D=n&1;E=u}u=c[m>>2]|0;c[m>>2]=E?u|2:u&-3;u=(D|0)==0;D=(f|0)!=0;m=D&E;if(u&m)kb[c[(c[f>>2]|0)+8>>2]&63](f,d);if(D&(E^1)&(u^1))kb[c[(c[f>>2]|0)+12>>2]&63](f,d);if(!(m&(p^1))){i=h;return}mb[c[(c[f>>2]|0)+32>>2]&7](f,d,j);i=h;return}function ak(a){a=a|0;so(a);return}function bk(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;e=Sn(f,148)|0;_j(e,a,0,d,0);c[e>>2]=1976;return e|0}function ck(a,b){a=a|0;b=b|0;ib[c[(c[a>>2]|0)+4>>2]&127](a);Tn(b,a,148);return}function dk(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;hg(b,c[(c[a+48>>2]|0)+12>>2]|0,d,c[(c[a+52>>2]|0)+12>>2]|0,e);return}function ek(a){a=a|0;so(a);return}function fk(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;e=Sn(f,148)|0;_j(e,a,0,d,0);c[e>>2]=1996;return e|0}function gk(a,b){a=a|0;b=b|0;ib[c[(c[a>>2]|0)+4>>2]&127](a);Tn(b,a,148);return}function hk(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;gg(b,c[(c[a+48>>2]|0)+12>>2]|0,d,c[(c[a+52>>2]|0)+12>>2]|0,e);return}function ik(a){a=a|0;so(a);return}function jk(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.0,A=0.0,B=0.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[b+16>>2]=c[d+16>>2];c[b+20>>2]=c[d+20>>2];c[b+24>>2]=c[d+24>>2];e=c[d+44>>2]|0;f=b+36|0;c[f>>2]=e;h=c[d+32>>2]|0;i=b+52|0;c[i>>2]=h;j=b+40|0;c[j>>2]=lo(e,h*88|0)|0;h=lo(c[f>>2]|0,(c[i>>2]|0)*156|0)|0;f=b+44|0;c[f>>2]=h;c[b+28>>2]=c[d+36>>2];c[b+32>>2]=c[d+40>>2];e=c[d+28>>2]|0;d=b+48|0;c[d>>2]=e;if((c[i>>2]|0)<=0)return;k=b+24|0;l=b+8|0;b=e;e=h;h=0;while(1){m=c[b+(h<<2)>>2]|0;n=c[m+48>>2]|0;o=c[m+52>>2]|0;p=c[(c[n+12>>2]|0)+8>>2]|0;q=c[(c[o+12>>2]|0)+8>>2]|0;r=c[n+8>>2]|0;n=c[o+8>>2]|0;o=c[m+124>>2]|0;c[e+(h*156|0)+136>>2]=c[m+136>>2];c[e+(h*156|0)+140>>2]=c[m+140>>2];c[e+(h*156|0)+144>>2]=c[m+144>>2];s=r+8|0;c[e+(h*156|0)+112>>2]=c[s>>2];t=n+8|0;c[e+(h*156|0)+116>>2]=c[t>>2];u=r+136|0;c[e+(h*156|0)+120>>2]=c[u>>2];v=n+136|0;c[e+(h*156|0)+124>>2]=c[v>>2];w=r+144|0;c[e+(h*156|0)+128>>2]=c[w>>2];x=n+144|0;c[e+(h*156|0)+132>>2]=c[x>>2];c[e+(h*156|0)+152>>2]=h;c[e+(h*156|0)+148>>2]=o;y=e+(h*156|0)+80|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[y+20>>2]=0;c[y+24>>2]=0;c[y+28>>2]=0;y=c[j>>2]|0;c[y+(h*88|0)+32>>2]=c[s>>2];c[y+(h*88|0)+36>>2]=c[t>>2];c[y+(h*88|0)+40>>2]=c[u>>2];c[y+(h*88|0)+44>>2]=c[v>>2];v=r+44|0;r=c[v+4>>2]|0;u=y+(h*88|0)+48|0;c[u>>2]=c[v>>2];c[u+4>>2]=r;r=n+44|0;n=c[r+4>>2]|0;u=y+(h*88|0)+56|0;c[u>>2]=c[r>>2];c[u+4>>2]=n;c[y+(h*88|0)+64>>2]=c[w>>2];c[y+(h*88|0)+68>>2]=c[x>>2];x=m+104|0;w=c[x+4>>2]|0;n=y+(h*88|0)+16|0;c[n>>2]=c[x>>2];c[n+4>>2]=w;w=m+112|0;n=c[w+4>>2]|0;x=y+(h*88|0)+24|0;c[x>>2]=c[w>>2];c[x+4>>2]=n;c[y+(h*88|0)+84>>2]=o;c[y+(h*88|0)+76>>2]=p;c[y+(h*88|0)+80>>2]=q;c[y+(h*88|0)+72>>2]=c[m+120>>2];if((o|0)>0){q=0;do{if(!(a[k>>0]|0)){z=0.0;A=0.0}else{B=+g[l>>2];z=B*+g[m+64+(q*20|0)+12>>2];A=B*+g[m+64+(q*20|0)+8>>2]}g[e+(h*156|0)+(q*36|0)+16>>2]=A;g[e+(h*156|0)+(q*36|0)+20>>2]=z;p=e+(h*156|0)+(q*36|0)|0;g[e+(h*156|0)+(q*36|0)+24>>2]=0.0;g[e+(h*156|0)+(q*36|0)+28>>2]=0.0;g[e+(h*156|0)+(q*36|0)+32>>2]=0.0;c[p>>2]=0;c[p+4>>2]=0;c[p+8>>2]=0;c[p+12>>2]=0;p=m+64+(q*20|0)|0;n=c[p+4>>2]|0;x=y+(h*88|0)+(q<<3)|0;c[x>>2]=c[p>>2];c[x+4>>2]=n;q=q+1|0}while((q|0)!=(o|0))}o=h+1|0;if((o|0)>=(c[i>>2]|0))break;b=c[d>>2]|0;e=c[f>>2]|0;h=o}return}function kk(a){a=a|0;var b=0;b=a+36|0;no(c[b>>2]|0,c[a+44>>2]|0);no(c[b>>2]|0,c[a+40>>2]|0);return}function lk(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,w=0.0,x=0.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,N=0.0,O=0.0,P=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;b=i;i=i+64|0;d=b+48|0;e=b+32|0;f=b;h=a+52|0;if((c[h>>2]|0)<=0){i=b;return}j=a+44|0;k=a+40|0;l=a+48|0;m=a+28|0;n=a+32|0;a=d+8|0;o=d+12|0;p=e+8|0;q=e+12|0;r=d+4|0;s=e+4|0;t=0;do{u=c[j>>2]|0;v=c[k>>2]|0;w=+g[v+(t*88|0)+76>>2];x=+g[v+(t*88|0)+80>>2];y=(c[(c[l>>2]|0)+(c[u+(t*156|0)+152>>2]<<2)>>2]|0)+64|0;z=c[u+(t*156|0)+112>>2]|0;A=c[u+(t*156|0)+116>>2]|0;B=+g[u+(t*156|0)+120>>2];C=+g[u+(t*156|0)+124>>2];D=+g[u+(t*156|0)+128>>2];E=+g[u+(t*156|0)+132>>2];F=+g[v+(t*88|0)+48>>2];G=+g[v+(t*88|0)+52>>2];H=+g[v+(t*88|0)+56>>2];I=+g[v+(t*88|0)+60>>2];v=c[m>>2]|0;J=+g[v+(z*12|0)>>2];K=+g[v+(z*12|0)+4>>2];L=+g[v+(z*12|0)+8>>2];M=c[n>>2]|0;N=+g[M+(z*12|0)>>2];O=+g[M+(z*12|0)+4>>2];P=+g[M+(z*12|0)+8>>2];S=+g[v+(A*12|0)>>2];T=+g[v+(A*12|0)+4>>2];U=+g[v+(A*12|0)+8>>2];V=+g[M+(A*12|0)>>2];W=+g[M+(A*12|0)+4>>2];X=+g[M+(A*12|0)+8>>2];Y=+R(+L);g[a>>2]=Y;Z=+Q(+L);g[o>>2]=Z;L=+R(+U);g[p>>2]=L;_=+Q(+U);g[q>>2]=_;g[d>>2]=J-(F*Z-G*Y);g[r>>2]=K-(G*Z+F*Y);g[e>>2]=S-(H*_-I*L);g[s>>2]=T-(I*_+H*L);xg(f,y,d,w,e,x);y=u+(t*156|0)+72|0;A=f;M=c[A+4>>2]|0;v=y;c[v>>2]=c[A>>2];c[v+4>>2]=M;M=u+(t*156|0)+148|0;v=c[M>>2]|0;do if((v|0)>0){A=u+(t*156|0)+76|0;x=B+C;z=u+(t*156|0)+140|0;$=0;do{aa=f+8+($<<3)|0;w=+g[aa>>2]-J;ba=f+8+($<<3)+4|0;L=+g[ba>>2]-K;g[u+(t*156|0)+($*36|0)>>2]=w;g[u+(t*156|0)+($*36|0)+4>>2]=L;H=+g[aa>>2]-S;_=+g[ba>>2]-T;g[u+(t*156|0)+($*36|0)+8>>2]=H;g[u+(t*156|0)+($*36|0)+12>>2]=_;I=+g[A>>2];Y=+g[y>>2];F=w*I-L*Y;Z=I*H-Y*_;Y=x+F*(D*F)+Z*(E*Z);g[u+(t*156|0)+($*36|0)+24>>2]=Y>0.0?1.0/Y:0.0;Y=+g[A>>2];Z=-+g[y>>2];F=w*Z-Y*L;I=H*Z-Y*_;Y=x+F*(D*F)+I*(E*I);g[u+(t*156|0)+($*36|0)+28>>2]=Y>0.0?1.0/Y:0.0;ba=u+(t*156|0)+($*36|0)+32|0;g[ba>>2]=0.0;Y=+g[y>>2]*(V-X*_-N+P*L)+ +g[A>>2]*(W+X*H-O-P*w);if(Y<-1.0)g[ba>>2]=-(Y*+g[z>>2]);$=$+1|0}while(($|0)!=(v|0));if((c[M>>2]|0)==2){x=+g[u+(t*156|0)+76>>2];Y=+g[y>>2];w=+g[u+(t*156|0)>>2]*x-+g[u+(t*156|0)+4>>2]*Y;H=x*+g[u+(t*156|0)+8>>2]-Y*+g[u+(t*156|0)+12>>2];L=x*+g[u+(t*156|0)+36>>2]-Y*+g[u+(t*156|0)+40>>2];_=x*+g[u+(t*156|0)+44>>2]-Y*+g[u+(t*156|0)+48>>2];Y=B+C;x=D*w;I=E*H;F=Y+w*x+H*I;H=Y+L*(D*L)+_*(E*_);w=Y+x*L+I*_;_=F*H-w*w;if(F*F<_*1.0e3){g[u+(t*156|0)+96>>2]=F;g[u+(t*156|0)+100>>2]=w;g[u+(t*156|0)+104>>2]=w;g[u+(t*156|0)+108>>2]=H;I=_!=0.0?1.0/_:_;_=-(I*w);g[u+(t*156|0)+80>>2]=H*I;g[u+(t*156|0)+84>>2]=_;g[u+(t*156|0)+88>>2]=_;g[u+(t*156|0)+92>>2]=F*I;break}else{c[M>>2]=1;break}}}while(0);t=t+1|0}while((t|0)<(c[h>>2]|0));i=b;return}function mk(a){a=a|0;var b=0,d=0,e=0,f=0,h=0,i=0,j=0,l=0.0,m=0.0,n=0.0,o=0.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.0,G=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.0,U=0.0;b=a+52|0;if((c[b>>2]|0)<=0)return;d=a+44|0;e=a+32|0;a=c[e>>2]|0;f=0;do{h=c[d>>2]|0;i=c[h+(f*156|0)+112>>2]|0;j=c[h+(f*156|0)+116>>2]|0;l=+g[h+(f*156|0)+120>>2];m=+g[h+(f*156|0)+128>>2];n=+g[h+(f*156|0)+124>>2];o=+g[h+(f*156|0)+132>>2];p=c[h+(f*156|0)+148>>2]|0;q=a+(i*12|0)|0;r=c[q>>2]|0;s=a+(i*12|0)+4|0;t=c[s>>2]|0;u=+g[a+(i*12|0)+8>>2];v=c[a+(j*12|0)>>2]|0;w=c[a+(j*12|0)+4>>2]|0;x=+g[a+(j*12|0)+8>>2];y=+g[h+(f*156|0)+72>>2];z=+g[h+(f*156|0)+76>>2];if((p|0)>0){A=r;B=t;C=v;D=w;E=0;F=u;G=x;while(1){H=+g[h+(f*156|0)+(E*36|0)+16>>2];I=+g[h+(f*156|0)+(E*36|0)+20>>2];J=y*H+z*I;K=z*H-y*I;I=F-m*(+g[h+(f*156|0)+(E*36|0)>>2]*K-+g[h+(f*156|0)+(E*36|0)+4>>2]*J);L=(g[k>>2]=(c[k>>2]=A,+g[k>>2])-l*J,c[k>>2]|0);M=(g[k>>2]=(c[k>>2]=B,+g[k>>2])-l*K,c[k>>2]|0);H=G+o*(K*+g[h+(f*156|0)+(E*36|0)+8>>2]-J*+g[h+(f*156|0)+(E*36|0)+12>>2]);N=(g[k>>2]=(c[k>>2]=C,+g[k>>2])+n*J,c[k>>2]|0);O=(g[k>>2]=(c[k>>2]=D,+g[k>>2])+n*K,c[k>>2]|0);E=E+1|0;if((E|0)==(p|0)){P=M;Q=O;R=N;S=L;T=I;U=H;break}else{A=L;B=M;C=N;D=O;F=I;G=H}}}else{P=t;Q=w;R=v;S=r;T=u;U=x}c[q>>2]=S;c[s>>2]=P;D=c[e>>2]|0;g[D+(i*12|0)+8>>2]=T;c[D+(j*12|0)>>2]=R;c[D+(j*12|0)+4>>2]=Q;a=c[e>>2]|0;g[a+(j*12|0)+8>>2]=U;f=f+1|0}while((f|0)<(c[b>>2]|0));return}function nk(a){a=a|0;var b=0,d=0,e=0,f=0,h=0,i=0,j=0,l=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.0,x=0,y=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.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.0,X=0.0,Y=0.0,Z=0.0,_=0,$=0,aa=0,ba=0.0,ca=0,da=0.0,ea=0,fa=0.0,ga=0.0,ha=0,ia=0.0,ja=0,ka=0.0,la=0,ma=0,na=0,oa=0,pa=0.0,qa=0.0,ra=0,sa=0,ta=0,ua=0,va=0.0,wa=0.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;b=a+52|0;if((c[b>>2]|0)<=0)return;d=a+44|0;e=a+32|0;a=c[e>>2]|0;f=0;do{h=c[d>>2]|0;i=h+(f*156|0)|0;j=c[h+(f*156|0)+112>>2]|0;l=c[h+(f*156|0)+116>>2]|0;m=+g[h+(f*156|0)+120>>2];n=+g[h+(f*156|0)+128>>2];o=+g[h+(f*156|0)+124>>2];p=+g[h+(f*156|0)+132>>2];q=h+(f*156|0)+148|0;r=c[q>>2]|0;s=a+(j*12|0)|0;t=c[s>>2]|0;u=a+(j*12|0)+4|0;v=c[u>>2]|0;w=+g[a+(j*12|0)+8>>2];x=c[a+(l*12|0)>>2]|0;y=c[a+(l*12|0)+4>>2]|0;z=+g[a+(l*12|0)+8>>2];A=+g[h+(f*156|0)+72>>2];B=+g[h+(f*156|0)+76>>2];C=-A;D=+g[h+(f*156|0)+136>>2];if((r|0)>0){E=h+(f*156|0)+144|0;F=x;G=y;H=t;I=v;J=0;K=w;L=z;while(1){M=+g[h+(f*156|0)+(J*36|0)+12>>2];N=+g[h+(f*156|0)+(J*36|0)+8>>2];O=(c[k>>2]=F,+g[k>>2]);P=(c[k>>2]=G,+g[k>>2]);Q=(c[k>>2]=H,+g[k>>2]);R=(c[k>>2]=I,+g[k>>2]);S=+g[h+(f*156|0)+(J*36|0)+4>>2];T=+g[h+(f*156|0)+(J*36|0)>>2];U=D*+g[h+(f*156|0)+(J*36|0)+16>>2];V=h+(f*156|0)+(J*36|0)+20|0;W=+g[V>>2];X=W-+g[h+(f*156|0)+(J*36|0)+28>>2]*(B*(O-L*M-Q+K*S)+(P+L*N-R-K*T)*C-+g[E>>2]);Y=-U;Z=X>2]=U;U=B*Z;W=Z*C;Z=Q-m*U;V=(g[k>>2]=Z,c[k>>2]|0);Q=R-m*W;_=(g[k>>2]=Q,c[k>>2]|0);R=K-n*(T*W-S*U);S=O+o*U;$=(g[k>>2]=S,c[k>>2]|0);O=P+o*W;aa=(g[k>>2]=O,c[k>>2]|0);P=L+p*(N*W-M*U);J=J+1|0;if((J|0)==(r|0)){ba=Z;ca=V;da=Q;ea=_;fa=R;ga=S;ha=$;ia=O;ja=aa;ka=P;break}else{F=$;G=aa;H=V;I=_;K=R;L=P}}if((c[q>>2]|0)==1){L=+g[h+(f*156|0)+12>>2];K=+g[h+(f*156|0)+8>>2];C=+g[h+(f*156|0)+4>>2];D=+g[i>>2];I=h+(f*156|0)+16|0;P=+g[I>>2];R=P-+g[h+(f*156|0)+24>>2]*(A*(ga-ka*L-ba+fa*C)+B*(ia+ka*K-da-fa*D)-+g[h+(f*156|0)+32>>2]);O=R>0.0?R:0.0;R=O-P;g[I>>2]=O;O=A*R;P=B*R;I=(g[k>>2]=ba-m*O,c[k>>2]|0);H=(g[k>>2]=da-m*P,c[k>>2]|0);G=(g[k>>2]=ga+o*O,c[k>>2]|0);la=I;ma=H;na=G;oa=(g[k>>2]=ia+o*P,c[k>>2]|0);pa=fa-n*(D*P-C*O);qa=ka+p*(K*P-L*O)}else{ra=ea;sa=ca;ta=ja;ua=ha;va=fa;wa=ka;xa=8}}else{ra=v;sa=t;ta=y;ua=x;va=w;wa=z;xa=8}do if((xa|0)==8){xa=0;G=h+(f*156|0)+16|0;O=+g[G>>2];H=h+(f*156|0)+52|0;L=+g[H>>2];P=+g[h+(f*156|0)+12>>2];K=+g[h+(f*156|0)+8>>2];C=(c[k>>2]=ua,+g[k>>2]);D=(c[k>>2]=ta,+g[k>>2]);R=(c[k>>2]=sa,+g[k>>2]);S=(c[k>>2]=ra,+g[k>>2]);Q=+g[h+(f*156|0)+4>>2];Z=+g[i>>2];U=+g[h+(f*156|0)+48>>2];M=+g[h+(f*156|0)+44>>2];W=+g[h+(f*156|0)+40>>2];N=+g[h+(f*156|0)+36>>2];T=+g[h+(f*156|0)+104>>2];Y=+g[h+(f*156|0)+100>>2];X=A*(C-wa*P-R+va*Q)+B*(D+wa*K-S-va*Z)-+g[h+(f*156|0)+32>>2]-(O*+g[h+(f*156|0)+96>>2]+L*T);ya=A*(C-wa*U-R+va*W)+B*(D+wa*M-S-va*N)-+g[h+(f*156|0)+68>>2]-(O*Y+L*+g[h+(f*156|0)+108>>2]);za=+g[h+(f*156|0)+80>>2]*X+ +g[h+(f*156|0)+88>>2]*ya;Aa=X*+g[h+(f*156|0)+84>>2]+ya*+g[h+(f*156|0)+92>>2];Ba=-za;Ca=-Aa;if(!(!(za<=-0.0)|!(Aa<=-0.0))){Aa=Ba-O;za=Ca-L;Da=A*Aa;Ea=B*Aa;Aa=A*za;Fa=B*za;za=Da+Aa;Ga=Ea+Fa;I=(g[k>>2]=R-m*za,c[k>>2]|0);F=(g[k>>2]=S-m*Ga,c[k>>2]|0);r=(g[k>>2]=C+o*za,c[k>>2]|0);J=(g[k>>2]=D+o*Ga,c[k>>2]|0);g[G>>2]=Ba;g[H>>2]=Ca;la=I;ma=F;na=r;oa=J;pa=va-n*(Z*Ea-Q*Da+(N*Fa-W*Aa));qa=wa+p*(K*Ea-P*Da+(M*Fa-U*Aa));break}Aa=X*+g[h+(f*156|0)+24>>2];Fa=-Aa;if(Aa<=-0.0&ya+Y*Fa>=0.0){Y=Fa-O;Aa=0.0-L;Da=A*Y;Ea=B*Y;Y=A*Aa;Ca=B*Aa;Aa=Y+Da;Ba=Ca+Ea;J=(g[k>>2]=R-m*Aa,c[k>>2]|0);r=(g[k>>2]=S-m*Ba,c[k>>2]|0);F=(g[k>>2]=C+o*Aa,c[k>>2]|0);I=(g[k>>2]=D+o*Ba,c[k>>2]|0);g[G>>2]=Fa;c[H>>2]=0;la=J;ma=r;na=F;oa=I;pa=va-n*(Ea*Z-Da*Q+(Ca*N-Y*W));qa=wa+p*(Ea*K-Da*P+(Ca*M-Y*U));break}Y=ya*+g[h+(f*156|0)+60>>2];Ca=-Y;if(Y<=-0.0&X+T*Ca>=0.0){T=0.0-O;Y=Ca-L;Da=A*T;Ea=B*T;T=A*Y;Fa=B*Y;Y=Da+T;Ba=Ea+Fa;I=(g[k>>2]=R-m*Y,c[k>>2]|0);F=(g[k>>2]=S-m*Ba,c[k>>2]|0);r=(g[k>>2]=C+o*Y,c[k>>2]|0);J=(g[k>>2]=D+o*Ba,c[k>>2]|0);c[G>>2]=0;g[H>>2]=Ca;la=I;ma=F;na=r;oa=J;pa=va-n*(Ea*Z-Da*Q+(Fa*N-T*W));qa=wa+p*(Ea*K-Da*P+(Fa*M-T*U));break}if(X>=0.0&ya>=0.0){ya=0.0-O;O=0.0-L;L=A*ya;X=B*ya;ya=A*O;T=B*O;O=L+ya;Fa=X+T;J=(g[k>>2]=R-m*O,c[k>>2]|0);r=(g[k>>2]=S-m*Fa,c[k>>2]|0);F=(g[k>>2]=C+o*O,c[k>>2]|0);I=(g[k>>2]=D+o*Fa,c[k>>2]|0);c[G>>2]=0;c[H>>2]=0;la=J;ma=r;na=F;oa=I;pa=va-n*(X*Z-L*Q+(T*N-ya*W));qa=wa+p*(X*K-L*P+(T*M-ya*U))}else{la=sa;ma=ra;na=ua;oa=ta;pa=va;qa=wa}}while(0);c[s>>2]=la;c[u>>2]=ma;h=c[e>>2]|0;g[h+(j*12|0)+8>>2]=pa;c[h+(l*12|0)>>2]=na;c[h+(l*12|0)+4>>2]=oa;a=c[e>>2]|0;g[a+(l*12|0)+8>>2]=qa;f=f+1|0}while((f|0)<(c[b>>2]|0));return}function ok(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;b=c[a+52>>2]|0;if((b|0)<=0)return;d=c[a+44>>2]|0;e=c[a+48>>2]|0;a=0;do{f=c[e+(c[d+(a*156|0)+152>>2]<<2)>>2]|0;g=c[d+(a*156|0)+148>>2]|0;if((g|0)>0){h=0;do{c[f+64+(h*20|0)+8>>2]=c[d+(a*156|0)+(h*36|0)+16>>2];c[f+64+(h*20|0)+12>>2]=c[d+(a*156|0)+(h*36|0)+20>>2];h=h+1|0}while((h|0)<(g|0))}a=a+1|0}while((a|0)<(b|0));return}function pk(a){a=a|0;var b=0,d=0,e=0,f=0,h=0,j=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.0,A=0,B=0,C=0,D=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,O=0.0,P=0,S=0,T=0.0,U=0.0,V=0,W=0,X=0,Y=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.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,ua=0.0,va=0,wa=0,xa=0.0,ya=0,za=0,Aa=0.0,Ba=0,Ca=0,Da=0,Ea=0,Fa=0,Ga=0.0,Ha=0.0,Ia=0.0;b=i;i=i+64|0;d=b+40|0;e=b+24|0;f=b;h=a+52|0;if((c[h>>2]|0)<=0){j=0.0;l=j>=-.014999999664723873;i=b;return l|0}m=a+40|0;n=a+28|0;a=d+8|0;o=d+12|0;p=e+8|0;q=e+12|0;r=d+4|0;s=e+4|0;t=f+4|0;u=f+8|0;v=f+12|0;w=f+16|0;x=c[n>>2]|0;y=0;z=0.0;while(1){A=c[m>>2]|0;B=A+(y*88|0)|0;C=c[A+(y*88|0)+32>>2]|0;D=c[A+(y*88|0)+36>>2]|0;E=+g[A+(y*88|0)+48>>2];F=+g[A+(y*88|0)+52>>2];G=+g[A+(y*88|0)+40>>2];H=+g[A+(y*88|0)+64>>2];I=+g[A+(y*88|0)+56>>2];J=+g[A+(y*88|0)+60>>2];K=+g[A+(y*88|0)+44>>2];L=+g[A+(y*88|0)+68>>2];M=c[A+(y*88|0)+84>>2]|0;A=c[x+(C*12|0)>>2]|0;N=c[x+(C*12|0)+4>>2]|0;O=+g[x+(C*12|0)+8>>2];P=c[x+(D*12|0)>>2]|0;S=c[x+(D*12|0)+4>>2]|0;T=+g[x+(D*12|0)+8>>2];if((M|0)>0){U=G+K;V=A;W=N;X=P;Y=S;Z=O;_=T;$=0;aa=z;while(1){ba=+R(+Z);g[a>>2]=ba;ca=+Q(+Z);g[o>>2]=ca;da=+R(+_);g[p>>2]=da;ea=+Q(+_);g[q>>2]=ea;fa=(c[k>>2]=V,+g[k>>2]);ga=(c[k>>2]=W,+g[k>>2]);g[d>>2]=fa-(E*ca-F*ba);g[r>>2]=ga-(F*ca+E*ba);ba=(c[k>>2]=X,+g[k>>2]);ca=(c[k>>2]=Y,+g[k>>2]);g[e>>2]=ba-(I*ea-J*da);g[s>>2]=ca-(J*ea+I*da);rk(f,B,d,e,$);da=+g[f>>2];ea=+g[t>>2];ha=+g[u>>2];ia=+g[v>>2];ja=+g[w>>2];ka=ha-fa;la=ia-ga;ma=ha-ba;ha=ia-ca;ia=aa0.0?(ja<-.20000000298023224?.20000000298023224:-ja)/pa:0.0;pa=da*na;da=ea*na;qa=(g[k>>2]=fa-G*pa,c[k>>2]|0);ra=(g[k>>2]=ga-G*da,c[k>>2]|0);ga=Z-H*(ka*da-la*pa);sa=(g[k>>2]=ba+K*pa,c[k>>2]|0);ta=(g[k>>2]=ca+K*da,c[k>>2]|0);ca=_+L*(ma*da-ha*pa);$=$+1|0;if(($|0)==(M|0)){ua=ia;va=qa;wa=ra;xa=ga;ya=sa;za=ta;Aa=ca;break}else{V=qa;W=ra;X=sa;Y=ta;Z=ga;_=ca;aa=ia}}Ba=wa;Ca=va;Da=za;Ea=ya;Fa=c[n>>2]|0;Ga=xa;Ha=Aa;Ia=ua}else{Ba=N;Ca=A;Da=S;Ea=P;Fa=x;Ga=O;Ha=T;Ia=z}c[Fa+(C*12|0)>>2]=Ca;c[Fa+(C*12|0)+4>>2]=Ba;Y=c[n>>2]|0;g[Y+(C*12|0)+8>>2]=Ga;c[Y+(D*12|0)>>2]=Ea;c[Y+(D*12|0)+4>>2]=Da;x=c[n>>2]|0;g[x+(D*12|0)+8>>2]=Ha;y=y+1|0;if((y|0)>=(c[h>>2]|0)){j=Ia;break}else z=Ia}l=j>=-.014999999664723873;i=b;return l|0}function qk(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.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,C=0,D=0,E=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.0,O=0,P=0,S=0.0,T=0,U=0,V=0.0,W=0.0,X=0,Y=0,Z=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,ta=0,ua=0,va=0,wa=0.0,xa=0,ya=0,za=0.0,Aa=0,Ba=0,Ca=0.0,Da=0,Ea=0,Fa=0,Ga=0,Ha=0,Ia=0.0,Ja=0.0,Ka=0.0;e=i;i=i+64|0;f=e+40|0;h=e+24|0;j=e;l=a+52|0;if((c[l>>2]|0)<=0){m=0.0;n=m>=-.007499999832361937;i=e;return n|0}o=a+40|0;p=a+28|0;a=f+8|0;q=f+12|0;r=h+8|0;s=h+12|0;t=f+4|0;u=h+4|0;v=j+4|0;w=j+8|0;x=j+12|0;y=j+16|0;z=0;A=0.0;while(1){B=c[o>>2]|0;C=B+(z*88|0)|0;D=c[B+(z*88|0)+32>>2]|0;E=c[B+(z*88|0)+36>>2]|0;F=+g[B+(z*88|0)+48>>2];G=+g[B+(z*88|0)+52>>2];H=+g[B+(z*88|0)+56>>2];I=+g[B+(z*88|0)+60>>2];J=c[B+(z*88|0)+84>>2]|0;if((D|0)==(b|0)|(D|0)==(d|0)){K=+g[B+(z*88|0)+64>>2];L=+g[B+(z*88|0)+40>>2]}else{K=0.0;L=0.0}if((E|0)==(b|0)|(E|0)==(d|0)){M=+g[B+(z*88|0)+68>>2];N=+g[B+(z*88|0)+44>>2]}else{M=0.0;N=0.0}B=c[p>>2]|0;O=c[B+(D*12|0)>>2]|0;P=c[B+(D*12|0)+4>>2]|0;S=+g[B+(D*12|0)+8>>2];T=c[B+(E*12|0)>>2]|0;U=c[B+(E*12|0)+4>>2]|0;V=+g[B+(E*12|0)+8>>2];if((J|0)>0){W=L+N;X=O;Y=P;Z=T;_=U;$=S;aa=V;ba=0;ca=A;while(1){da=+R(+$);g[a>>2]=da;ea=+Q(+$);g[q>>2]=ea;fa=+R(+aa);g[r>>2]=fa;ga=+Q(+aa);g[s>>2]=ga;ha=(c[k>>2]=X,+g[k>>2]);ia=(c[k>>2]=Y,+g[k>>2]);g[f>>2]=ha-(F*ea-G*da);g[t>>2]=ia-(G*ea+F*da);da=(c[k>>2]=Z,+g[k>>2]);ea=(c[k>>2]=_,+g[k>>2]);g[h>>2]=da-(H*ga-I*fa);g[u>>2]=ea-(I*ga+H*fa);rk(j,C,f,h,ba);fa=+g[j>>2];ga=+g[v>>2];ja=+g[w>>2];ka=+g[x>>2];la=+g[y>>2];ma=ja-ha;na=ka-ia;oa=ja-da;ja=ka-ea;ka=ca0.0?(la<-.20000000298023224?.20000000298023224:-la)/ra:0.0;ra=fa*pa;fa=ga*pa;sa=(g[k>>2]=ha-L*ra,c[k>>2]|0);ta=(g[k>>2]=ia-L*fa,c[k>>2]|0);ia=$-K*(ma*fa-na*ra);ua=(g[k>>2]=da+N*ra,c[k>>2]|0);va=(g[k>>2]=ea+N*fa,c[k>>2]|0);ea=aa+M*(oa*fa-ja*ra);ba=ba+1|0;if((ba|0)==(J|0)){wa=ka;xa=sa;ya=ta;za=ia;Aa=ua;Ba=va;Ca=ea;break}else{X=sa;Y=ta;Z=ua;_=va;$=ia;aa=ea;ca=ka}}Da=ya;Ea=xa;Fa=Ba;Ga=Aa;Ha=c[p>>2]|0;Ia=za;Ja=Ca;Ka=wa}else{Da=P;Ea=O;Fa=U;Ga=T;Ha=B;Ia=S;Ja=V;Ka=A}c[Ha+(D*12|0)>>2]=Ea;c[Ha+(D*12|0)+4>>2]=Da;_=c[p>>2]|0;g[_+(D*12|0)+8>>2]=Ia;c[_+(E*12|0)>>2]=Ga;c[_+(E*12|0)+4>>2]=Fa;g[(c[p>>2]|0)+(E*12|0)+8>>2]=Ja;z=z+1|0;if((z|0)>=(c[l>>2]|0)){m=Ka;break}else A=Ka}n=m>=-.007499999832361937;i=e;return n|0}function rk(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var 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.0,r=0.0,s=0.0,t=0,u=0.0,v=0;switch(c[b+72>>2]|0){case 0:{h=+g[d+12>>2];i=+g[b+24>>2];j=+g[d+8>>2];k=+g[b+28>>2];l=+g[d>>2]+(h*i-j*k);m=i*j+h*k+ +g[d+4>>2];k=+g[e+12>>2];h=+g[b>>2];j=+g[e+8>>2];i=+g[b+4>>2];n=+g[e>>2]+(k*h-j*i);o=h*j+k*i+ +g[e+4>>2];i=n-l;k=o-m;g[a>>2]=i;p=a+4|0;g[p>>2]=k;j=+O(+(i*i+k*k));if(j<1.1920928955078125e-007){q=i;r=k}else{h=1.0/j;j=i*h;g[a>>2]=j;s=k*h;g[p>>2]=s;q=j;r=s}g[a+8>>2]=(l+n)*.5;g[a+12>>2]=(m+o)*.5;g[a+16>>2]=i*q+k*r-+g[b+76>>2]-+g[b+80>>2];return}case 1:{p=d+12|0;r=+g[p>>2];k=+g[b+16>>2];t=d+8|0;q=+g[t>>2];i=+g[b+20>>2];o=r*k-q*i;m=k*q+r*i;g[a>>2]=o;g[a+4>>2]=m;i=+g[p>>2];r=+g[b+24>>2];q=+g[t>>2];k=+g[b+28>>2];n=+g[e+12>>2];l=+g[b+(f<<3)>>2];s=+g[e+8>>2];j=+g[b+(f<<3)+4>>2];h=+g[e>>2]+(n*l-s*j);u=l*s+n*j+ +g[e+4>>2];g[a+16>>2]=o*(h-(+g[d>>2]+(i*r-q*k)))+(u-(r*q+i*k+ +g[d+4>>2]))*m-+g[b+76>>2]-+g[b+80>>2];g[a+8>>2]=h;g[a+12>>2]=u;return}case 2:{t=e+12|0;u=+g[t>>2];h=+g[b+16>>2];p=e+8|0;m=+g[p>>2];k=+g[b+20>>2];i=u*h-m*k;q=h*m+u*k;g[a>>2]=i;v=a+4|0;g[v>>2]=q;k=+g[t>>2];u=+g[b+24>>2];m=+g[p>>2];h=+g[b+28>>2];r=+g[d+12>>2];o=+g[b+(f<<3)>>2];j=+g[d+8>>2];n=+g[b+(f<<3)+4>>2];s=+g[d>>2]+(r*o-j*n);l=o*j+r*n+ +g[d+4>>2];g[a+16>>2]=i*(s-(+g[e>>2]+(k*u-m*h)))+(l-(u*m+k*h+ +g[e+4>>2]))*q-+g[b+76>>2]-+g[b+80>>2];g[a+8>>2]=s;g[a+12>>2]=l;g[a>>2]=-i;g[v>>2]=-q;return}default:{g[a+16>>2]=0.0;v=2440;b=c[v+4>>2]|0;e=a;c[e>>2]=c[v>>2];c[e+4>>2]=b;b=2440;e=c[b+4>>2]|0;v=a+8|0;c[v>>2]=c[b>>2];c[v+4>>2]=e;return}}}function sk(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;e=Sn(f,148)|0;_j(e,a,0,d,0);c[e>>2]=2016;return e|0}function tk(a,b){a=a|0;b=b|0;ib[c[(c[a>>2]|0)+4>>2]&127](a);Tn(b,a,148);return}function uk(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;rg(b,c[(c[a+48>>2]|0)+12>>2]|0,d,c[(c[a+52>>2]|0)+12>>2]|0,e);return}function vk(a){a=a|0;so(a);return}function wk(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0;g=Sn(f,148)|0;_j(g,a,b,d,e);c[g>>2]=2036;return g|0}function xk(a,b){a=a|0;b=b|0;ib[c[(c[a>>2]|0)+4>>2]&127](a);Tn(b,a,148);return}function yk(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;h=i;i=i+48|0;j=h;k=c[(c[a+48>>2]|0)+12>>2]|0;c[j>>2]=916;c[j+4>>2]=1;g[j+8>>2]=.009999999776482582;l=j+28|0;c[l>>2]=0;c[l+4>>2]=0;c[l+8>>2]=0;c[l+12>>2]=0;b[l+16>>1]=0;Vf(k,j,c[a+56>>2]|0);rg(d,j,e,c[(c[a+52>>2]|0)+12>>2]|0,f);i=h;return}function zk(a){a=a|0;so(a);return}function Ak(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;e=Sn(f,148)|0;_j(e,a,0,d,0);c[e>>2]=2056;return e|0}function Bk(a,b){a=a|0;b=b|0;ib[c[(c[a>>2]|0)+4>>2]&127](a);Tn(b,a,148);return}function Ck(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;ug(b,c[(c[a+48>>2]|0)+12>>2]|0,d,c[(c[a+52>>2]|0)+12>>2]|0,e);return}function Dk(a){a=a|0;so(a);return}function Ek(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;e=Sn(f,148)|0;_j(e,a,0,d,0);c[e>>2]=2076;return e|0}function Fk(a,b){a=a|0;b=b|0;ib[c[(c[a>>2]|0)+4>>2]&127](a);Tn(b,a,148);return}function Gk(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;vg(b,c[(c[a+48>>2]|0)+12>>2]|0,d,c[(c[a+52>>2]|0)+12>>2]|0,e);return}function Hk(a){a=a|0;so(a);return}function Ik(a){a=a|0;b[a+32>>1]=1;b[a+34>>1]=-1;b[a+36>>1]=0;c[a+40>>2]=0;c[a+24>>2]=0;c[a+28>>2]=0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;c[a+12>>2]=0;return}function Jk(d,e,f,g){d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0;c[d+40>>2]=c[g+4>>2];c[d+16>>2]=c[g+8>>2];c[d+20>>2]=c[g+12>>2];c[d+8>>2]=f;c[d+4>>2]=0;f=d+32|0;h=g+22|0;b[f>>1]=b[h>>1]|0;b[f+2>>1]=b[h+2>>1]|0;b[f+4>>1]=b[h+4>>1]|0;a[d+38>>0]=a[g+20>>0]|0;h=c[g>>2]|0;f=rb[c[(c[h>>2]|0)+8>>2]&31](h,e)|0;c[d+12>>2]=f;h=fb[c[(c[f>>2]|0)+12>>2]&7](f)|0;f=Sn(e,h*28|0)|0;c[d+24>>2]=f;if((h|0)>0)i=0;else{j=d+28|0;c[j>>2]=0;k=g+16|0;l=c[k>>2]|0;c[d>>2]=l;return}do{c[f+(i*28|0)+16>>2]=0;c[f+(i*28|0)+24>>2]=-1;i=i+1|0}while((i|0)!=(h|0));j=d+28|0;c[j>>2]=0;k=g+16|0;l=c[k>>2]|0;c[d>>2]=l;return}function Kk(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=a+12|0;e=c[d>>2]|0;f=fb[c[(c[e>>2]|0)+12>>2]&7](e)|0;e=a+24|0;Tn(b,c[e>>2]|0,f*28|0);c[e>>2]=0;e=c[d>>2]|0;switch(c[e+4>>2]|0){case 0:{ib[c[c[e>>2]>>2]&127](e);Tn(b,e,20);c[d>>2]=0;return}case 1:{ib[c[c[e>>2]>>2]&127](e);Tn(b,e,48);c[d>>2]=0;return}case 2:{ib[c[c[e>>2]>>2]&127](e);Tn(b,e,152);c[d>>2]=0;return}case 3:{ib[c[c[e>>2]>>2]&127](e);Tn(b,e,40);c[d>>2]=0;return}default:{c[d>>2]=0;return}}}function Lk(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;e=a+12|0;f=c[e>>2]|0;g=fb[c[(c[f>>2]|0)+12>>2]&7](f)|0;f=a+28|0;c[f>>2]=g;if((g|0)<=0)return;g=a+24|0;h=0;do{i=c[g>>2]|0;j=i+(h*28|0)|0;k=c[e>>2]|0;tb[c[(c[k>>2]|0)+28>>2]&31](k,j,d,h);c[i+(h*28|0)+24>>2]=bg(b,j,j)|0;c[i+(h*28|0)+16>>2]=a;c[i+(h*28|0)+20>>2]=h;h=h+1|0}while((h|0)<(c[f>>2]|0));return}function Mk(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=a+28|0;if((c[d>>2]|0)<=0){c[d>>2]=0;return}e=a+24|0;a=0;do{f=(c[e>>2]|0)+(a*28|0)+24|0;cg(b,c[f>>2]|0);c[f>>2]=-1;a=a+1|0}while((a|0)<(c[d>>2]|0));c[d>>2]=0;return}function Nk(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,u=0,v=0,w=0,x=0,y=0,z=0,A=0.0,B=0.0,C=0.0,D=0.0;f=i;i=i+48|0;h=f+24|0;j=f+8|0;k=f;l=a+28|0;if((c[l>>2]|0)<=0){i=f;return}m=a+24|0;n=a+12|0;a=h+4|0;o=j+4|0;p=h+8|0;q=j+8|0;r=h+12|0;s=j+12|0;t=e+4|0;u=d+4|0;v=k+4|0;w=0;do{x=c[m>>2]|0;y=c[n>>2]|0;z=x+(w*28|0)+20|0;tb[c[(c[y>>2]|0)+28>>2]&31](y,h,d,c[z>>2]|0);y=c[n>>2]|0;tb[c[(c[y>>2]|0)+28>>2]&31](y,j,e,c[z>>2]|0);z=x+(w*28|0)|0;A=+g[h>>2];B=+g[j>>2];C=+g[a>>2];D=+g[o>>2];g[z>>2]=A>2]=C>2];C=+g[q>>2];B=+g[r>>2];A=+g[s>>2];g[x+(w*28|0)+8>>2]=D>C?D:C;g[x+(w*28|0)+12>>2]=B>A?B:A;A=+g[t>>2]-+g[u>>2];g[k>>2]=+g[e>>2]-+g[d>>2];g[v>>2]=A;dg(b,c[x+(w*28|0)+24>>2]|0,z,k);w=w+1|0}while((w|0)<(c[l>>2]|0));i=f;return}function Ok(a){a=a|0;var b=0,d=0,e=0,f=0;b=c[a+8>>2]|0;if(!b)return;d=c[b+128>>2]|0;if(d){e=d;do{d=c[e+4>>2]|0;if((c[d+48>>2]|0)==(a|0)?1:(c[d+52>>2]|0)==(a|0)){f=d+4|0;c[f>>2]=c[f>>2]|8}e=c[e+12>>2]|0}while((e|0)!=0)}e=c[b+104>>2]|0;if(!e)return;b=e+102880|0;e=a+28|0;if((c[e>>2]|0)<=0)return;f=a+24|0;a=0;do{eg(b,c[(c[f>>2]|0)+(a*28|0)+24>>2]|0);a=a+1|0}while((a|0)<(c[e>>2]|0));return}function Pk(b,d){b=b|0;d=d|0;var e=0,f=0;Qn(b);jo(b+76|0);pl(b+102880|0);c[b+102992>>2]=0;c[b+102996>>2]=0;e=b+102960|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;a[b+103004>>0]=1;a[b+103005>>0]=1;a[b+103006>>0]=0;a[b+103007>>0]=1;a[b+102988>>0]=1;e=d;d=c[e+4>>2]|0;f=b+102980|0;c[f>>2]=c[e>>2];c[f+4>>2]=d;c[b+102876>>2]=4;g[b+103e3>>2]=0.0;c[b+102956>>2]=b;c[b+103040>>2]=2448;c[b+103044>>2]=c[615];d=b+103008|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;return}function Qk(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;b=c[a+102960>>2]|0;if(b){d=b;do{b=d;d=c[d+112>>2]|0;e=c[b+116>>2]|0;while(1){if(!e)break;b=c[e+4>>2]|0;c[e+28>>2]=0;Kk(e,a);e=b}}while((d|0)!=0)}d=a+102968|0;e=c[d>>2]|0;if(!e){f=a+102880|0;ag(f);g=a+76|0;ko(g);Rn(a);return}b=a+102876|0;h=e;do{e=(c[b>>2]&2|0)==0;do{}while(!e);e=c[h+404>>2]|0;i=h+408|0;if(e)c[e+408>>2]=c[i>>2];j=c[i>>2]|0;if(j)c[j+404>>2]=e;c[d>>2]=j;Rl(h);Tn(a,h,416);h=c[d>>2]|0}while((h|0)!=0);f=a+102880|0;ag(f);g=a+76|0;ko(g);Rn(a);return}function Rk(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;if(c[a+102876>>2]&2)return;d=c[b+404>>2]|0;e=b+408|0;if(d)c[d+408>>2]=c[e>>2];f=c[e>>2]|0;if(f)c[f+404>>2]=d;d=a+102968|0;if((c[d>>2]|0)==(b|0))c[d>>2]=f;Rl(b);Tn(a,b,416);return}function Sk(a,b){a=a|0;b=b|0;c[a+102952>>2]=b;return}function Tk(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;if(c[a+102876>>2]&2){d=0;return d|0}e=Sn(a,168)|0;dl(e,b,a);c[e+108>>2]=0;b=a+102960|0;f=c[b>>2]|0;c[e+112>>2]=f;if(f)c[f+108>>2]=e;c[b>>2]=e;b=a+102972|0;c[b>>2]=(c[b>>2]|0)+1;d=e;return d|0}function Uk(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;if(c[a+102876>>2]&2)return;d=b+124|0;e=c[d>>2]|0;if(e){f=a+102992|0;g=e;do{e=g;g=c[g+12>>2]|0;h=c[f>>2]|0;if(!h)i=e+4|0;else{j=e+4|0;kb[c[(c[h>>2]|0)+8>>2]&63](h,c[j>>2]|0);i=j}Vk(a,c[i>>2]|0);c[d>>2]=g}while((g|0)!=0)}c[d>>2]=0;d=b+128|0;g=c[d>>2]|0;if(g){i=a+102880|0;f=g;do{g=f;f=c[f+12>>2]|0;ql(i,c[g+4>>2]|0)}while((f|0)!=0)}c[d>>2]=0;d=b+116|0;f=c[d>>2]|0;if(!f)k=b+120|0;else{i=a+102992|0;g=a+102880|0;j=b+120|0;h=f;do{f=h;h=c[h+4>>2]|0;e=c[i>>2]|0;if(e)kb[c[(c[e>>2]|0)+12>>2]&63](e,f);Mk(f,g);Kk(f,a);Tn(a,f,44);c[d>>2]=h;c[j>>2]=(c[j>>2]|0)+-1}while((h|0)!=0);k=j}c[d>>2]=0;c[k>>2]=0;k=c[b+108>>2]|0;d=b+112|0;if(k)c[k+112>>2]=c[d>>2];j=c[d>>2]|0;if(j)c[j+108>>2]=k;k=a+102960|0;if((c[k>>2]|0)==(b|0))c[k>>2]=j;j=a+102972|0;c[j>>2]=(c[j>>2]|0)+-1;el(b);Tn(a,b,168);return}function Vk(d,f){d=d|0;f=f|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;if(c[d+102876>>2]&2)return;h=a[f+61>>0]|0;i=c[f+8>>2]|0;j=f+12|0;if(i)c[i+12>>2]=c[j>>2];k=c[j>>2]|0;if(k)c[k+8>>2]=i;i=d+102964|0;if((c[i>>2]|0)==(f|0))c[i>>2]=k;k=c[f+48>>2]|0;i=c[f+52>>2]|0;j=k+4|0;l=e[j>>1]|0;if(!(l&2)){b[j>>1]=l|2;g[k+160>>2]=0.0}l=i+4|0;j=e[l>>1]|0;if(!(j&2)){b[l>>1]=j|2;g[i+160>>2]=0.0}j=f+24|0;l=c[j>>2]|0;m=f+28|0;if(l)c[l+12>>2]=c[m>>2];n=c[m>>2]|0;if(n)c[n+8>>2]=l;l=k+124|0;if((f+16|0)==(c[l>>2]|0))c[l>>2]=n;c[j>>2]=0;c[m>>2]=0;m=f+40|0;j=c[m>>2]|0;n=f+44|0;if(j)c[j+12>>2]=c[n>>2];l=c[n>>2]|0;if(l)c[l+8>>2]=j;j=i+124|0;if((f+32|0)==(c[j>>2]|0))c[j>>2]=l;c[m>>2]=0;c[n>>2]=0;Ni(f,d);f=d+102976|0;c[f>>2]=(c[f>>2]|0)+-1;if(h<<24>>24)return;h=c[i+128>>2]|0;if(!h)return;else o=h;do{if((c[o>>2]|0)==(k|0)){h=(c[o+4>>2]|0)+4|0;c[h>>2]=c[h>>2]|8}o=c[o+12>>2]|0}while((o|0)!=0);return}function Wk(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;if(c[b+102876>>2]&2){e=0;return e|0}f=Mi(d,b)|0;c[f+8>>2]=0;g=b+102964|0;h=c[g>>2]|0;c[f+12>>2]=h;if(h)c[h+8>>2]=f;c[g>>2]=f;g=b+102976|0;c[g>>2]=(c[g>>2]|0)+1;g=f+16|0;c[f+20>>2]=f;b=c[f+52>>2]|0;c[g>>2]=b;c[f+24>>2]=0;h=c[f+48>>2]|0;i=h+124|0;j=c[i>>2]|0;c[f+28>>2]=j;if(j)c[j+8>>2]=g;c[i>>2]=g;g=f+32|0;c[f+36>>2]=f;c[g>>2]=h;c[f+40>>2]=0;h=b+124|0;b=c[h>>2]|0;c[f+44>>2]=b;if(b)c[b+8>>2]=g;c[h>>2]=g;g=c[d+8>>2]|0;if(a[d+16>>0]|0){e=f;return e|0}h=c[(c[d+12>>2]|0)+128>>2]|0;if(!h){e=f;return e|0}else k=h;do{if((c[k>>2]|0)==(g|0)){h=(c[k+4>>2]|0)+4|0;c[h>>2]=c[h>>2]|8}k=c[k+12>>2]|0}while((k|0)!=0);e=f;return e|0}function Xk(a,b){a=a|0;b=b|0;var d=0,e=0;if(c[a+102876>>2]&2){d=0;return d|0}e=Sn(a,416)|0;Ql(e,b,a);c[e+404>>2]=0;b=a+102968|0;a=c[b>>2]|0;c[e+408>>2]=a;if(a)c[a+404>>2]=e;c[b>>2]=e;d=e;return d|0}function Yk(d,f){d=d|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,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.0,da=0,ea=0;h=i;i=i+96|0;j=h+40|0;k=h+8|0;l=h;m=d+102960|0;n=c[m>>2]|0;if(n){o=n;do{n=o+28|0;p=o+12|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];o=c[o+112>>2]|0}while((o|0)!=0)}o=d+103020|0;g[o>>2]=0.0;p=d+103024|0;g[p>>2]=0.0;n=d+103028|0;g[n>>2]=0.0;q=d+102972|0;r=d+102880|0;s=d+76|0;Ag(j,c[q>>2]|0,c[d+102944>>2]|0,c[d+102976>>2]|0,s,c[d+102952>>2]|0);t=c[m>>2]|0;if(t){u=t;do{t=u+4|0;b[t>>1]=e[t>>1]&65534;u=c[u+112>>2]|0}while((u|0)!=0)}u=c[d+102940>>2]|0;if(u){t=u;do{u=t+4|0;c[u>>2]=c[u>>2]&-2;t=c[t+12>>2]|0}while((t|0)!=0)}t=c[d+102964>>2]|0;if(t){u=t;do{a[u+60>>0]=0;u=c[u+12>>2]|0}while((u|0)!=0)}u=lo(s,c[q>>2]<<2)|0;q=c[m>>2]|0;if(q){t=j+28|0;v=j+36|0;w=j+32|0;x=j+8|0;y=j+16|0;z=j+12|0;A=d+102980|0;B=d+102988|0;C=k+12|0;D=k+16|0;E=k+20|0;F=q;do{q=F+4|0;G=b[q>>1]|0;if((G&35)==34?(c[F>>2]|0)!=0:0){c[t>>2]=0;c[v>>2]=0;c[w>>2]=0;c[u>>2]=F;b[q>>1]=G&65535|1;G=0;q=0;H=0;I=1;while(1){J=I+-1|0;K=c[u+(J<<2)>>2]|0;c[K+8>>2]=H;c[(c[x>>2]|0)+(H<<2)>>2]=K;H=H+1|0;c[t>>2]=H;L=K+4|0;M=e[L>>1]|0;if(!(M&2)){b[L>>1]=M|2;g[K+160>>2]=0.0}if(c[K>>2]|0){M=c[K+128>>2]|0;if(!M){N=q;O=J}else{L=q;P=M;M=J;while(1){Q=c[P+4>>2]|0;R=Q+4|0;S=c[R>>2]|0;do if((S&7|0)==6?(a[(c[Q+48>>2]|0)+38>>0]|0)==0:0){if(a[(c[Q+52>>2]|0)+38>>0]|0){T=L;U=M;break}V=L+1|0;c[v>>2]=V;c[(c[z>>2]|0)+(L<<2)>>2]=Q;c[R>>2]=S|1;W=c[P>>2]|0;X=W+4|0;Y=b[X>>1]|0;if(Y&1){T=V;U=M;break}c[u+(M<<2)>>2]=W;b[X>>1]=Y&65535|1;T=V;U=M+1|0}else{T=L;U=M}while(0);P=c[P+12>>2]|0;if(!P){N=T;O=U;break}else{L=T;M=U}}}M=c[K+124>>2]|0;if(!M){Z=G;_=N;$=O}else{L=G;P=M;M=O;while(1){S=P+4|0;R=c[S>>2]|0;do if((a[R+60>>0]|0)==0?(Q=c[P>>2]|0,V=Q+4|0,Y=b[V>>1]|0,(Y&32)!=0):0){X=L+1|0;c[w>>2]=X;c[(c[y>>2]|0)+(L<<2)>>2]=R;a[(c[S>>2]|0)+60>>0]=1;if(Y&1){aa=X;ba=M;break}c[u+(M<<2)>>2]=Q;b[V>>1]=Y&65535|1;aa=X;ba=M+1|0}else{aa=L;ba=M}while(0);P=c[P+12>>2]|0;if(!P){Z=aa;_=N;$=ba;break}else{L=aa;M=ba}}}}else{Z=G;_=q;$=J}if(($|0)<=0)break;else{G=Z;q=_;I=$}}Cg(j,k,f,A,(a[B>>0]|0)!=0);g[o>>2]=+g[C>>2]+ +g[o>>2];g[p>>2]=+g[D>>2]+ +g[p>>2];g[n>>2]=+g[E>>2]+ +g[n>>2];I=c[t>>2]|0;if((I|0)>0){q=c[x>>2]|0;G=0;do{H=c[q+(G<<2)>>2]|0;if(!(c[H>>2]|0)){M=H+4|0;b[M>>1]=e[M>>1]&65534}G=G+1|0}while((G|0)<(I|0))}}F=c[F+112>>2]|0}while((F|0)!=0)}no(s,u);Yn(l);u=c[m>>2]|0;if(!u){sl(r);ca=+_n(l);da=d+103032|0;g[da>>2]=ca;Bg(j);i=h;return}else ea=u;do{if((b[ea+4>>1]&1)!=0?(c[ea>>2]|0)!=0:0)hl(ea);ea=c[ea+112>>2]|0}while((ea|0)!=0);sl(r);ca=+_n(l);da=d+103032|0;g[da>>2]=ca;Bg(j);i=h;return} +function ub(a){a=a|0;var b=0;b=i;i=i+a|0;i=i+15&-16;return b|0}function vb(){return i|0}function wb(a){a=a|0;i=a}function xb(a,b){a=a|0;b=b|0;i=a;j=b}function yb(a,b){a=a|0;b=b|0;if(!n){n=a;o=b}}function zb(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 Ab(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 Bb(a){a=a|0;C=a}function Cb(){return C|0}function Db(a){a=a|0;return +(+(c[a+60>>2]|0))}function Eb(d,e,f,j,k,l,m,n,o,p,q){d=d|0;e=+e;f=+f;j=+j;k=+k;l=+l;m=+m;n=+n;o=+o;p=p|0;q=+q;var r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;r=i;i=i+1104|0;s=r;t=r+1032|0;u=r+1064|0;v=r+8|0;h[s>>3]=l;c[t>>2]=0;g[t+16>>2]=e;g[t+8>>2]=f;a[t+20>>0]=j!=0.0&1;g[t+12>>2]=k;c[t+4>>2]=s;b[t+22>>1]=~~m;b[t+26>>1]=~~n;b[t+24>>1]=~~o;c[u>>2]=1048;c[u+4>>2]=3;g[u+8>>2]=.009999999776482582;c[u+12>>2]=0;c[u+16>>2]=0;a[u+36>>0]=0;a[u+37>>0]=0;s=~~(q*.5);if(q>0.0){w=0;x=0}else{Sf(u,v,s);c[t>>2]=u;y=il(d,t)|0;Qf(u);i=r;return y|0}while(1){z=c[p+((w|1)<<2)>>2]|0;c[v+(x<<3)>>2]=c[p+(w<<2)>>2];c[v+(x<<3)+4>>2]=z;w=w+2|0;if(!(+(w|0)>2]=u;y=il(d,t)|0;Qf(u);i=r;return y|0}function Fb(a){a=a|0;Da(a|0)|0;xo()}function Gb(d,e,f,j,k,l,m,n,o,p,q,r){d=d|0;e=+e;f=+f;j=+j;k=+k;l=+l;m=+m;n=+n;o=+o;p=+p;q=+q;r=+r;var s=0,t=0,u=0,v=0;s=i;i=i+64|0;t=s;u=s+28|0;v=s+8|0;h[t>>3]=l;g[u+16>>2]=e;g[u+8>>2]=f;a[u+20>>0]=j!=0.0&1;g[u+12>>2]=k;c[u+4>>2]=t;b[u+22>>1]=~~m;b[u+26>>1]=~~n;b[u+24>>1]=~~o;c[v>>2]=1004;t=v+4|0;c[t>>2]=0;c[t+4>>2]=0;c[t+8>>2]=0;g[v+12>>2]=p;g[v+16>>2]=q;g[v+8>>2]=r;c[u>>2]=v;v=il(d,u)|0;i=s;return v|0}function Hb(b,d,e,f,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B){b=b|0;d=+d;e=+e;f=+f;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;x=+x;y=+y;z=+z;A=+A;B=+B;var C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0;C=i;i=i+112|0;D=C;E=C+28|0;F=C+8|0;h[D>>3]=y;G=E+8|0;H=E+20|0;I=2440;J=c[I>>2]|0;K=c[I+4>>2]|0;I=G;c[I>>2]=J;c[I+4>>2]=K;I=H;c[I>>2]=J;c[I+4>>2]=K;K=E+40|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;c[K+20>>2]=0;c[K+24>>2]=0;g[E+16>>2]=d;g[E+28>>2]=e;a[E+32>>0]=~~f;a[E+33>>0]=~~j;a[E+34>>0]=~~k;a[E+35>>0]=~~l;c[E>>2]=~~m>>>0;c[E+72>>2]=0;c[E+4>>2]=~~o>>>0;g[E+64>>2]=p;g[H>>2]=q;g[E+24>>2]=r;g[G>>2]=s;g[E+12>>2]=t;c[E+60>>2]=0;c[E+56>>2]=~~v;c[E+48>>2]=0;c[E+44>>2]=0;g[E+36>>2]=w;g[E+52>>2]=x;c[E+68>>2]=D;c[F>>2]=1004;D=F+4|0;c[D>>2]=0;c[D+4>>2]=0;c[D+8>>2]=0;g[F+12>>2]=z;g[F+16>>2]=A;g[F+8>>2]=B;c[K>>2]=F;F=cm(b,E)|0;i=C;return F|0}function Ib(a,b,d,e,f,h,j,k){a=a|0;b=+b;d=+d;e=+e;f=+f;h=+h;j=+j;k=+k;var l=0,m=0,n=0,o=0;l=i;i=i+48|0;m=l+16|0;n=l;c[m>>2]=1004;o=m+4|0;c[o>>2]=0;c[o+4>>2]=0;c[o+8>>2]=0;g[m+12>>2]=b;g[m+16>>2]=d;g[m+8>>2]=e;g[n>>2]=f;g[n+4>>2]=h;g[n+8>>2]=j;g[n+12>>2]=k;k=+($l(a,m,n,0)|0);i=l;return +k}function Jb(d,e,f,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y){d=d|0;e=+e;f=+f;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;x=+x;y=+y;var z=0,A=0,B=0,C=0;z=i;i=i+96|0;A=z;B=z+8|0;C=z+40|0;h[A>>3]=l;g[B+16>>2]=e;g[B+8>>2]=f;a[B+20>>0]=j!=0.0&1;g[B+12>>2]=k;c[B+4>>2]=A;b[B+22>>1]=~~m;b[B+26>>1]=~~n;b[B+24>>1]=~~o;c[C>>2]=916;c[C+4>>2]=1;g[C+8>>2]=.009999999776482582;A=C+28|0;c[A>>2]=0;c[A+4>>2]=0;c[A+8>>2]=0;c[A+12>>2]=0;b[A+16>>1]=0;g[A>>2]=r;g[C+32>>2]=s;g[C+12>>2]=t;g[C+16>>2]=u;g[C+20>>2]=v;g[C+24>>2]=w;g[C+36>>2]=x;g[C+40>>2]=y;a[C+44>>0]=p!=0.0&1;a[C+45>>0]=q!=0.0&1;c[B>>2]=C;C=il(d,B)|0;i=z;return C|0}function Kb(d,e,f,j,k,l,m,n,o,p,q,r,s,t,u){d=d|0;e=+e;f=+f;j=+j;k=+k;l=+l;m=+m;n=+n;o=+o;p=+p;q=+q;r=+r;s=+s;t=+t;u=+u;var v=0,w=0,x=0,y=0,z=0;v=i;i=i+224|0;w=v;x=v+32|0;y=v+8|0;z=v+64|0;h[w>>3]=l;g[x+16>>2]=e;g[x+8>>2]=f;a[x+20>>0]=j!=0.0&1;g[x+12>>2]=k;c[x+4>>2]=w;b[x+22>>1]=~~m;b[x+26>>1]=~~n;b[x+24>>1]=~~o;g[y>>2]=p;g[y+4>>2]=q;g[y+8>>2]=r;g[y+12>>2]=s;g[y+16>>2]=t;g[y+20>>2]=u;c[z>>2]=960;c[z+4>>2]=2;g[z+8>>2]=.009999999776482582;c[z+148>>2]=0;g[z+12>>2]=0.0;g[z+16>>2]=0.0;Bf(z,y,3);c[x>>2]=z;z=il(d,x)|0;i=v;return z|0}function Lb(d,e,f,j,k,l,m,n,o,p,q,r,s,t,u,v,w){d=d|0;e=+e;f=+f;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;var x=0,y=0,z=0,A=0,B=0;x=i;i=i+224|0;y=x;z=x+40|0;A=x+8|0;B=x+72|0;h[y>>3]=l;g[z+16>>2]=e;g[z+8>>2]=f;a[z+20>>0]=j!=0.0&1;g[z+12>>2]=k;c[z+4>>2]=y;b[z+22>>1]=~~m;b[z+26>>1]=~~n;b[z+24>>1]=~~o;g[A>>2]=p;g[A+4>>2]=q;g[A+8>>2]=r;g[A+12>>2]=s;g[A+16>>2]=t;g[A+20>>2]=u;g[A+24>>2]=v;g[A+28>>2]=w;c[B>>2]=960;c[B+4>>2]=2;g[B+8>>2]=.009999999776482582;c[B+148>>2]=0;g[B+12>>2]=0.0;g[B+16>>2]=0.0;Bf(B,A,4);c[z>>2]=B;B=il(d,z)|0;i=x;return B|0}function Mb(d,e,f,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y){d=d|0;e=+e;f=+f;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;x=+x;y=+y;var z=0,A=0,B=0,C=0,D=0;z=i;i=i+240|0;A=z;B=z+160|0;C=z+192|0;D=z+8|0;h[A>>3]=l;g[B+16>>2]=e;g[B+8>>2]=f;a[B+20>>0]=j!=0.0&1;g[B+12>>2]=k;c[B+4>>2]=A;b[B+22>>1]=~~m;b[B+26>>1]=~~n;b[B+24>>1]=~~o;g[C>>2]=p;g[C+4>>2]=q;g[C+8>>2]=r;g[C+12>>2]=s;g[C+16>>2]=t;g[C+20>>2]=u;g[C+24>>2]=v;g[C+28>>2]=w;g[C+32>>2]=x;g[C+36>>2]=y;c[D>>2]=960;c[D+4>>2]=2;g[D+8>>2]=.009999999776482582;c[D+148>>2]=0;g[D+12>>2]=0.0;g[D+16>>2]=0.0;Bf(D,C,5);c[B>>2]=D;D=il(d,B)|0;i=z;return D|0}function Nb(d,e,f,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A){d=d|0;e=+e;f=+f;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;x=+x;y=+y;z=+z;A=+A;var B=0,C=0,D=0,E=0,F=0;B=i;i=i+240|0;C=B;D=B+160|0;E=B+192|0;F=B+8|0;h[C>>3]=l;g[D+16>>2]=e;g[D+8>>2]=f;a[D+20>>0]=j!=0.0&1;g[D+12>>2]=k;c[D+4>>2]=C;b[D+22>>1]=~~m;b[D+26>>1]=~~n;b[D+24>>1]=~~o;g[E>>2]=p;g[E+4>>2]=q;g[E+8>>2]=r;g[E+12>>2]=s;g[E+16>>2]=t;g[E+20>>2]=u;g[E+24>>2]=v;g[E+28>>2]=w;g[E+32>>2]=x;g[E+36>>2]=y;g[E+40>>2]=z;g[E+44>>2]=A;c[F>>2]=960;c[F+4>>2]=2;g[F+8>>2]=.009999999776482582;c[F+148>>2]=0;g[F+12>>2]=0.0;g[F+16>>2]=0.0;Bf(F,E,6);c[D>>2]=F;F=il(d,D)|0;i=B;return F|0}function Ob(d,e,f,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C){d=d|0;e=+e;f=+f;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;x=+x;y=+y;z=+z;A=+A;B=+B;C=+C;var D=0,E=0,F=0,G=0,H=0;D=i;i=i+256|0;E=D;F=D+160|0;G=D+192|0;H=D+8|0;h[E>>3]=l;g[F+16>>2]=e;g[F+8>>2]=f;a[F+20>>0]=j!=0.0&1;g[F+12>>2]=k;c[F+4>>2]=E;b[F+22>>1]=~~m;b[F+26>>1]=~~n;b[F+24>>1]=~~o;g[G>>2]=p;g[G+4>>2]=q;g[G+8>>2]=r;g[G+12>>2]=s;g[G+16>>2]=t;g[G+20>>2]=u;g[G+24>>2]=v;g[G+28>>2]=w;g[G+32>>2]=x;g[G+36>>2]=y;g[G+40>>2]=z;g[G+44>>2]=A;g[G+48>>2]=B;g[G+52>>2]=C;c[H>>2]=960;c[H+4>>2]=2;g[H+8>>2]=.009999999776482582;c[H+148>>2]=0;g[H+12>>2]=0.0;g[H+16>>2]=0.0;Bf(H,G,7);c[F>>2]=H;H=il(d,F)|0;i=D;return H|0}function Pb(d,e,f,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E){d=d|0;e=+e;f=+f;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;x=+x;y=+y;z=+z;A=+A;B=+B;C=+C;D=+D;E=+E;var F=0,G=0,H=0,I=0,J=0;F=i;i=i+256|0;G=F;H=F+160|0;I=F+192|0;J=F+8|0;h[G>>3]=l;g[H+16>>2]=e;g[H+8>>2]=f;a[H+20>>0]=j!=0.0&1;g[H+12>>2]=k;c[H+4>>2]=G;b[H+22>>1]=~~m;b[H+26>>1]=~~n;b[H+24>>1]=~~o;g[I>>2]=p;g[I+4>>2]=q;g[I+8>>2]=r;g[I+12>>2]=s;g[I+16>>2]=t;g[I+20>>2]=u;g[I+24>>2]=v;g[I+28>>2]=w;g[I+32>>2]=x;g[I+36>>2]=y;g[I+40>>2]=z;g[I+44>>2]=A;g[I+48>>2]=B;g[I+52>>2]=C;g[I+56>>2]=D;g[I+60>>2]=E;c[J>>2]=960;c[J+4>>2]=2;g[J+8>>2]=.009999999776482582;c[J+148>>2]=0;g[J+12>>2]=0.0;g[J+16>>2]=0.0;Bf(J,I,8);c[H>>2]=J;J=il(d,H)|0;i=F;return J|0}function Qb(b,d,e,f,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G){b=b|0;d=+d;e=+e;f=+f;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;x=+x;y=+y;z=+z;A=+A;B=+B;C=+C;D=+D;E=+E;F=+F;G=+G;var H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0;H=i;i=i+272|0;I=H;J=H+192|0;K=H+8|0;L=H+40|0;h[I>>3]=y;M=J+8|0;N=J+20|0;O=2440;P=c[O>>2]|0;Q=c[O+4>>2]|0;O=M;c[O>>2]=P;c[O+4>>2]=Q;O=N;c[O>>2]=P;c[O+4>>2]=Q;Q=J+40|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[Q+20>>2]=0;c[Q+24>>2]=0;g[J+16>>2]=d;g[J+28>>2]=e;a[J+32>>0]=~~f;a[J+33>>0]=~~j;a[J+34>>0]=~~k;a[J+35>>0]=~~l;c[J>>2]=~~m>>>0;c[J+72>>2]=0;c[J+4>>2]=~~o>>>0;g[J+64>>2]=p;g[N>>2]=q;g[J+24>>2]=r;g[M>>2]=s;g[J+12>>2]=t;c[J+60>>2]=0;c[J+56>>2]=~~v;c[J+48>>2]=0;c[J+44>>2]=0;g[J+36>>2]=w;g[J+52>>2]=x;c[J+68>>2]=I;g[K>>2]=z;g[K+4>>2]=A;g[K+8>>2]=B;g[K+12>>2]=C;g[K+16>>2]=D;g[K+20>>2]=E;g[K+24>>2]=F;g[K+28>>2]=G;c[L>>2]=960;c[L+4>>2]=2;g[L+8>>2]=.009999999776482582;c[L+148>>2]=0;g[L+12>>2]=0.0;g[L+16>>2]=0.0;Bf(L,K,4);c[Q>>2]=L;L=cm(b,J)|0;i=H;return L|0}function Rb(a,b,d,e,f,h,j,k,l,m,n,o,p){a=a|0;b=+b;d=+d;e=+e;f=+f;h=+h;j=+j;k=+k;l=+l;m=+m;n=+n;o=+o;p=+p;var q=0,r=0,s=0,t=0;q=i;i=i+208|0;r=q+168|0;s=q+16|0;t=q;g[r>>2]=b;g[r+4>>2]=d;g[r+8>>2]=e;g[r+12>>2]=f;g[r+16>>2]=h;g[r+20>>2]=j;g[r+24>>2]=k;g[r+28>>2]=l;c[s>>2]=960;c[s+4>>2]=2;g[s+8>>2]=.009999999776482582;c[s+148>>2]=0;g[s+12>>2]=0.0;g[s+16>>2]=0.0;Bf(s,r,4);g[t>>2]=m;g[t+4>>2]=n;g[t+8>>2]=o;g[t+12>>2]=p;p=+($l(a,s,t,0)|0);i=q;return +p}function Sb(a,d,e){a=a|0;d=+d;e=+e;var f=0.0,h=0,i=0,j=0,k=0,l=0;f=d;if((c[a>>2]|0)!=2)return;h=a+4|0;i=b[h>>1]|0;if(e!=0.0&(i&2)==0?(j=i&65535,(j&2|0)==0):0){k=(j|2)&65535;b[h>>1]=k;g[a+160>>2]=0.0;l=k}else l=i;if(!(l&2))return;l=a+88|0;g[l>>2]=+g[l>>2]+f*+g[a+144>>2];return}function Tb(a,d,e,f,h,i){a=a|0;d=+d;e=+e;f=+f;h=+h;i=+i;var j=0.0,k=0,l=0,m=0,n=0,o=0;j=d;d=e;e=f;f=h;if((c[a>>2]|0)!=2)return;k=a+4|0;l=b[k>>1]|0;if(i!=0.0&(l&2)==0?(m=l&65535,(m&2|0)==0):0){n=(m|2)&65535;b[k>>1]=n;g[a+160>>2]=0.0;o=n}else o=l;if(!(o&2))return;o=a+92|0;g[o>>2]=j+ +g[o>>2];o=a+96|0;g[o>>2]=d+ +g[o>>2];o=a+100|0;g[o>>2]=+g[o>>2]+(d*(e-+g[a+60>>2])-j*(f-+g[a+64>>2]));return}function Ub(a,d,e,f,h,i){a=a|0;d=+d;e=+e;f=+f;h=+h;i=+i;var j=0.0,k=0,l=0,m=0,n=0,o=0;j=d;d=e;e=f;f=h;if((c[a>>2]|0)!=2)return;k=a+4|0;l=b[k>>1]|0;if(i!=0.0&(l&2)==0?(m=l&65535,(m&2|0)==0):0){n=(m|2)&65535;b[k>>1]=n;g[a+160>>2]=0.0;o=n}else o=l;if(!(o&2))return;o=a+92|0;g[o>>2]=j+ +g[o>>2];o=a+96|0;g[o>>2]=d+ +g[o>>2];o=a+100|0;g[o>>2]=+g[o>>2]+(d*(e-+g[a+60>>2])-j*(f-+g[a+64>>2]));return}function Vb(a,d,e,f){a=a|0;d=+d;e=+e;f=+f;var h=0.0,i=0,j=0,k=0,l=0,m=0;h=d;d=e;if((c[a>>2]|0)!=2)return;i=a+4|0;j=b[i>>1]|0;if(f!=0.0&(j&2)==0?(k=j&65535,(k&2|0)==0):0){l=(k|2)&65535;b[i>>1]=l;g[a+160>>2]=0.0;m=l}else m=j;if(!(m&2))return;m=a+92|0;g[m>>2]=h+ +g[m>>2];m=a+96|0;g[m>>2]=d+ +g[m>>2];return}function Wb(a,d,e){a=a|0;d=+d;e=+e;var f=0.0,h=0,i=0,j=0,k=0,l=0;f=d;if((c[a>>2]|0)!=2)return;h=a+4|0;i=b[h>>1]|0;if(e!=0.0&(i&2)==0?(j=i&65535,(j&2|0)==0):0){k=(j|2)&65535;b[h>>1]=k;g[a+160>>2]=0.0;l=k}else l=i;if(!(l&2))return;l=a+100|0;g[l>>2]=f+ +g[l>>2];return}function Xb(a,b){a=a|0;b=b|0;jl(a,b);return}function Yb(a){a=a|0;return +(+g[a+72>>2])}function Zb(a){a=a|0;return +(+g[a+88>>2])}function _b(a){a=a|0;var b=0.0,c=0.0;b=+g[a+44>>2];c=+g[a+48>>2];return +(+g[a+140>>2]+ +g[a+132>>2]*(b*b+c*c))}function $b(a,b){a=a|0;b=b|0;var d=0;d=c[a+84>>2]|0;c[b>>2]=c[a+80>>2];c[b+4>>2]=d;return}function ac(a,b,c,d){a=a|0;b=+b;c=+c;d=d|0;var e=0.0,f=0.0;e=b-+g[a+12>>2];b=c-+g[a+16>>2];c=+g[a+24>>2];f=+g[a+20>>2];g[d>>2]=e*c+b*f;g[d+4>>2]=c*b-e*f;return}function bc(a,b,c,d){a=a|0;b=+b;c=+c;d=d|0;var e=0.0,f=0.0;e=b-+g[a+12>>2];b=c-+g[a+16>>2];c=+g[a+24>>2];f=+g[a+20>>2];g[d>>2]=e*c+b*f;g[d+4>>2]=c*b-e*f;return}function cc(a){a=a|0;return +(+g[a+132>>2])}function dc(a,b){a=a|0;b=b|0;var d=0;d=c[a+16>>2]|0;c[b>>2]=c[a+12>>2];c[b+4>>2]=d;return}function ec(a,b){a=a|0;b=b|0;c[b>>2]=c[a+12>>2];c[b+4>>2]=c[a+16>>2];c[b+8>>2]=c[a+20>>2];c[b+12>>2]=c[a+24>>2];return}function fc(a){a=a|0;return +(+((c[a>>2]|0)>>>0))}function gc(a,b){a=a|0;b=b|0;var d=0;d=c[a+64>>2]|0;c[b>>2]=c[a+60>>2];c[b+4>>2]=d;return}function hc(a,b,c,d){a=a|0;b=+b;c=+c;d=d|0;var e=0.0,f=0.0,h=0.0;e=b;b=c;c=+g[a+24>>2];f=+g[a+20>>2];h=b*c+e*f+ +g[a+16>>2];g[d>>2]=+g[a+12>>2]+(e*c-b*f);g[d+4>>2]=h;return}function ic(a,b,c,d){a=a|0;b=+b;c=+c;d=d|0;var e=0.0,f=0.0,h=0.0;e=b;b=c;c=+g[a+24>>2];f=+g[a+20>>2];h=b*c+e*f+ +g[a+16>>2];g[d>>2]=+g[a+12>>2]+(e*c-b*f);g[d+4>>2]=h;return}function jc(a,d){a=a|0;d=+d;var f=0,h=0,i=0;f=a+4|0;h=e[f>>1]|0;if(!(d!=0.0)){b[f>>1]=h&65533;g[a+160>>2]=0.0;i=a+80|0;c[i>>2]=0;c[i+4>>2]=0;c[i+8>>2]=0;c[i+12>>2]=0;c[i+16>>2]=0;c[i+20>>2]=0;return}if(h&2)return;b[f>>1]=h|2;g[a+160>>2]=0.0;return}function kc(a,b){a=a|0;b=+b;ol(a,b!=0.0);return}function lc(a,d){a=a|0;d=+d;var f=0.0,h=0,i=0;f=d;if(!(c[a>>2]|0))return;if(f*f>0.0?(h=a+4|0,i=e[h>>1]|0,(i&2|0)==0):0){b[h>>1]=i|2;g[a+160>>2]=0.0}g[a+88>>2]=f;return}function mc(a,d,f){a=a|0;d=+d;f=+f;var h=0.0,i=0,j=0;h=d;d=f;if(!(c[a>>2]|0))return;if(h*h+d*d>0.0?(i=a+4|0,j=e[i>>1]|0,(j&2|0)==0):0){b[i>>1]=j|2;g[a+160>>2]=0.0}g[a+80>>2]=h;g[a+84>>2]=d;return}function nc(a,b,c,d,e){a=a|0;b=+b;c=+c;d=+d;e=+e;var f=0,h=0;f=i;i=i+16|0;h=f;g[h>>2]=b;g[h+4>>2]=c;g[h+8>>2]=d;g[h+12>>2]=e;kl(a,h);i=f;return}function oc(a,b,c,d){a=a|0;b=+b;c=+c;d=+d;var e=0,f=0;e=i;i=i+16|0;f=e;g[f>>2]=b;g[f+4>>2]=c;ml(a,f,d);i=e;return}function pc(a,b){a=a|0;b=+b;fl(a,~~b>>>0);return}function qc(a,b){a=a|0;b=+b;g[a+156>>2]=b;return}function rc(a){a=a|0;return +(+g[a+156>>2])}function sc(a,b){a=a|0;b=+b;g[a+148>>2]=b;return}function tc(a){a=a|0;return +(+g[a+148>>2])}function uc(a,b){a=a|0;b=+b;g[a+152>>2]=b;return}function vc(a){a=a|0;return +(+g[a+152>>2])}function wc(a){a=a|0;return (b[a+4>>1]&2)!=0|0}function xc(a,c){a=a|0;c=+c;var d=0;d=a+4|0;a=e[d>>1]|0;b[d>>1]=c!=0.0?a|8:a&65527;return}function yc(a){a=a|0;return (b[a+4>>1]&8)!=0|0}function zc(a,c){a=a|0;c=+c;var d=0,f=0,h=0;d=a+4|0;f=e[d>>1]|0;if(c!=0.0){b[d>>1]=f|4;return}h=f&65531;b[d>>1]=h;if(f&2)return;b[d>>1]=h|2;g[a+160>>2]=0.0;return}function Ac(a){a=a|0;return (b[a+4>>1]&4)!=0|0}function Bc(a,b){a=a|0;b=+b;nl(a,b!=0.0);return}function Cc(a){a=a|0;return (b[a+4>>1]&32)!=0|0}function Dc(a){a=a|0;return (b[a+4>>1]&16)!=0|0}function Ec(a,b,d){a=a|0;b=+b;d=+d;var e=0,f=0,h=0;e=i;i=i+16|0;f=e;g[f>>2]=b;g[f+4>>2]=d;h=c[a+12>>2]|0;d=+((lb[c[(c[h>>2]|0)+16>>2]&15](h,(c[a+8>>2]|0)+12|0,f)|0)&1);i=e;return +d}function Fc(a){a=a|0;Ok(a);return}function Gc(a){a=a|0;return}function Hc(a){a=a|0;return}function Ic(a,b){a=+a;b=+b;var c=0,d=0,e=0;c=i;i=i+16|0;d=c;e=qo(103048)|0;g[d>>2]=a;g[d+4>>2]=b;Pk(e,d);i=c;return e|0}function Jc(b,d,e,f,h,j,k,l,m,n,o,p,q,r,s,t,u){b=b|0;d=+d;e=+e;f=+f;h=+h;j=+j;k=+k;l=+l;m=+m;n=+n;o=+o;p=+p;q=+q;r=+r;s=+s;t=+t;u=u|0;var v=0,w=0,x=0;v=i;i=i+64|0;w=v;x=w+4|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;a[w+40>>0]=d!=0.0&1;a[w+36>>0]=e!=0.0&1;g[w+12>>2]=f;g[w+24>>2]=h;g[w+32>>2]=j;a[w+37>>0]=k!=0.0&1;a[w+39>>0]=l!=0.0&1;a[w+38>>0]=m!=0.0&1;g[w+48>>2]=n;g[w+28>>2]=o;g[w+16>>2]=p;g[w+20>>2]=q;g[x>>2]=r;g[w+8>>2]=s;c[w>>2]=~~t>>>0;c[w+44>>2]=u;u=Tk(b,w)|0;i=v;return u|0}function Kc(b,d,e,f,h,j,k,l,m,n,o,p,q,r,s,t,u,v){b=b|0;d=+d;e=+e;f=+f;h=+h;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;var w=0,x=0,y=0;w=i;i=i+96|0;x=w;a[x>>0]=0;g[x+4>>2]=1.0;g[x+8>>2]=1.0;c[x+16>>2]=0;g[x+72>>2]=d;g[x+24>>2]=e;a[x+76>>0]=f!=0.0&1;g[x+56>>2]=h;g[x+28>>2]=j;g[x+80>>2]=k;g[x+52>>2]=l;g[x+20>>2]=m;g[x+12>>2]=n;g[x+48>>2]=o;g[x+32>>2]=p;c[x+68>>2]=~~q;g[x+64>>2]=r;g[x+60>>2]=s;g[x+44>>2]=t;g[x+40>>2]=u;g[x+36>>2]=v;y=Xk(b,x)|0;i=w;return y|0}function Lc(a){a=a|0;if(!a)return;Qk(a);so(a);return}function Mc(a,b){a=a|0;b=b|0;Uk(a,b);return}function Nc(a,b){a=a|0;b=b|0;Vk(a,b);return}function Oc(a,b){a=a|0;b=b|0;Rk(a,b);return}function Pc(a,b,c,d,e){a=a|0;b=+b;c=+c;d=+d;e=+e;var f=0,h=0;f=i;i=i+16|0;h=f;g[h>>2]=b;g[h+4>>2]=c;g[h+8>>2]=d;g[h+12>>2]=e;$k(a,724,h);i=f;return}function Qc(a,b,c,d,e){a=a|0;b=+b;c=+c;d=+d;e=+e;var f=0,h=0,j=0;f=i;i=i+16|0;h=f+8|0;j=f;g[h>>2]=b;g[h+4>>2]=c;g[j>>2]=d;g[j+4>>2]=e;al(a,728,h,j);i=f;return}function Rc(a){a=a|0;Sk(a,720);return}function Sc(a,b,c){a=a|0;b=+b;c=+c;g[a+102980>>2]=b;g[a+102984>>2]=c;return}function Tc(a,b,c,d){a=a|0;b=+b;c=+c;d=+d;_k(a,b,~~c,~~d,3);return}function Uc(a){a=a|0;return a+64|0}function Vc(a){a=a|0;var b=0,d=0;b=c[a+48>>2]|0;d=c[a+52>>2]|0;xg(732,a+64|0,(c[b+8>>2]|0)+12|0,+g[(c[b+12>>2]|0)+8>>2],(c[d+8>>2]|0)+12|0,+g[(c[d+12>>2]|0)+8>>2]);return 732}function Wc(b,d,e,f,h,j,k,l,m,n,o){b=b|0;d=d|0;e=e|0;f=+f;h=+h;j=+j;k=+k;l=+l;m=+m;n=+n;o=+o;var p=0,q=0,r=0;p=i;i=i+48|0;q=p;c[q>>2]=0;c[q+4>>2]=0;c[q+8>>2]=0;c[q+12>>2]=0;c[q>>2]=3;r=q+20|0;c[r>>2]=0;c[r+4>>2]=0;c[r+8>>2]=0;c[q+8>>2]=d;c[q+12>>2]=e;a[q+16>>0]=f!=0.0&1;g[q+44>>2]=h;g[q+40>>2]=j;g[q+36>>2]=k;g[r>>2]=l;g[q+24>>2]=m;g[q+28>>2]=n;g[q+32>>2]=o;r=Wk(b,q)|0;i=p;return r|0}function Xc(b,d,e,f,h,j,k,l,m,n){b=b|0;d=d|0;e=e|0;f=+f;h=+h;j=+j;k=+k;l=+l;m=+m;n=+n;var o=0,p=0,q=0,r=0,s=0;o=i;i=i+64|0;p=o+16|0;q=o+8|0;r=o;c[p>>2]=0;c[p+4>>2]=0;c[p+8>>2]=0;c[p+12>>2]=0;c[p>>2]=3;s=p+20|0;c[s>>2]=0;c[s+4>>2]=0;c[s+8>>2]=0;c[s+12>>2]=0;g[p+36>>2]=1.0;a[p+16>>0]=l!=0.0&1;g[p+44>>2]=m;g[p+40>>2]=n;g[q>>2]=f;g[q+4>>2]=h;g[r>>2]=j;g[r+4>>2]=k;oh(p,d,e,q,r);r=Wk(b,p)|0;i=o;return r|0}function Yc(a,b){a=a|0;b=+b;g[a+104>>2]=b;return}function Zc(a,b){a=a|0;b=+b;g[a+68>>2]=b;return}function _c(a,b){a=a|0;b=+b;g[a+72>>2]=b;return}function $c(b,d,e,f,h,j,k,l,m,n){b=b|0;d=d|0;e=e|0;f=+f;h=+h;j=+j;k=+k;l=+l;m=+m;n=+n;var o=0,p=0,q=0;o=i;i=i+48|0;p=o;c[p>>2]=0;c[p+4>>2]=0;c[p+8>>2]=0;c[p+12>>2]=0;c[p>>2]=9;q=p+20|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[p+8>>2]=d;c[p+12>>2]=e;a[p+16>>0]=f!=0.0&1;g[q>>2]=h;g[p+24>>2]=j;g[p+28>>2]=k;g[p+32>>2]=l;g[p+36>>2]=m;g[p+40>>2]=n;q=Wk(b,p)|0;i=o;return q|0}function ad(b,d,e,f,h,j,k,l){b=b|0;d=d|0;e=e|0;f=+f;h=+h;j=+j;k=+k;l=+l;var m=0,n=0,o=0,p=0;m=i;i=i+64|0;n=m+8|0;o=m;c[n>>2]=0;c[n+4>>2]=0;c[n+8>>2]=0;c[n+12>>2]=0;c[n>>2]=9;p=n+20|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;a[n+16>>0]=j!=0.0&1;g[n+36>>2]=k;g[n+40>>2]=l;g[o>>2]=f;g[o+4>>2]=h;zh(n,d,e,o);o=Wk(b,n)|0;i=m;return o|0}function bd(a,b){a=a|0;b=+b;Ih(a,b);return}function cd(a,b){a=a|0;b=+b;Jh(a,b);return}function dd(a,b){a=a|0;b=+b;di(a,b);return}function ed(b,d,e,f,h,j,k){b=b|0;d=d|0;e=e|0;f=+f;h=h|0;j=j|0;k=+k;var l=0,m=0;l=i;i=i+32|0;m=l;c[m>>2]=0;c[m+4>>2]=0;c[m+8>>2]=0;c[m+12>>2]=0;c[m>>2]=6;c[m+8>>2]=d;c[m+12>>2]=e;a[m+16>>0]=f!=0.0&1;c[m+20>>2]=h;c[m+24>>2]=j;g[m+28>>2]=k;j=Wk(b,m)|0;i=l;return j|0}function fd(a){a=a|0;return c[a+48>>2]|0}function gd(a){a=a|0;return c[a+52>>2]|0}function hd(a){a=a|0;return +(+((c[a+4>>2]|0)>>>0))}function id(a,b){a=a|0;b=b|0;var d=0,e=0;d=i;i=i+16|0;e=d;kb[c[c[a>>2]>>2]&63](e,a);c[b>>2]=c[e>>2];c[b+4>>2]=c[e+4>>2];i=d;return}function jd(a,b){a=a|0;b=b|0;var d=0,e=0;d=i;i=i+16|0;e=d;kb[c[(c[a>>2]|0)+4>>2]&63](e,a);c[b>>2]=c[e>>2];c[b+4>>2]=c[e+4>>2];i=d;return}function kd(a,b,d){a=a|0;b=+b;d=d|0;var e=0,f=0;e=i;i=i+16|0;f=e;ob[c[(c[a>>2]|0)+8>>2]&31](f,a,b);c[d>>2]=c[f>>2];c[d+4>>2]=c[f+4>>2];i=e;return}function ld(a,b){a=a|0;b=+b;return +(+hb[c[(c[a>>2]|0)+12>>2]&15](a,b))}function md(a){a=a|0;return Pi(a)|0}function nd(b){b=b|0;return (a[b+61>>0]|0)!=0|0}function od(a,b){a=a|0;b=+b;kh(a,b);return}function pd(a,b,c){a=a|0;b=+b;c=+c;var d=0,e=0;d=i;i=i+16|0;e=d;g[e>>2]=b;g[e+4>>2]=c;jh(a,e);i=d;return}function qd(a,b){a=a|0;b=+b;gh(a,b);return}function rd(a,b){a=a|0;b=+b;hh(a,b);return}function sd(a,b){a=a|0;b=+b;ih(a,b);return}function td(b,d,e,f,h,j,k,l,m,n){b=b|0;d=d|0;e=e|0;f=+f;h=+h;j=+j;k=+k;l=+l;m=+m;n=+n;var o=0,p=0;o=i;i=i+48|0;p=o;c[p>>2]=0;c[p+4>>2]=0;c[p+8>>2]=0;c[p+12>>2]=0;c[p>>2]=11;c[p+8>>2]=d;c[p+12>>2]=e;a[p+16>>0]=f!=0.0&1;g[p+28>>2]=h;g[p+40>>2]=j;g[p+20>>2]=k;g[p+24>>2]=l;g[p+32>>2]=m;g[p+36>>2]=n;e=Wk(b,p)|0;i=o;return e|0}function ud(b,d,e,f,h,j,k){b=b|0;d=d|0;e=e|0;f=+f;h=+h;j=+j;k=+k;var l=0,m=0;l=i;i=i+48|0;m=l;c[m>>2]=0;c[m+4>>2]=0;c[m+8>>2]=0;c[m+12>>2]=0;c[m>>2]=11;g[m+20>>2]=0.0;g[m+24>>2]=0.0;g[m+28>>2]=0.0;a[m+16>>0]=f!=0.0&1;g[m+40>>2]=h;g[m+32>>2]=j;g[m+36>>2]=k;Zg(m,d,e);e=Wk(b,m)|0;i=l;return e|0}function vd(a,b,c){a=a|0;b=+b;c=+c;var d=0,e=0;d=i;i=i+16|0;e=d;g[e>>2]=b;g[e+4>>2]=c;Kg(a,e);i=d;return}function wd(a,b){a=a|0;b=+b;Lg(a,b);return}function xd(a,b){a=a|0;b=+b;Mg(a,b);return}function yd(a,b){a=a|0;b=+b;Ng(a,b);return}function zd(b,d,e,f,h,j,k,l,m){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;n=i;i=i+48|0;o=n;c[o>>2]=0;c[o+4>>2]=0;c[o+8>>2]=0;c[o+12>>2]=0;c[o>>2]=5;c[o+8>>2]=d;c[o+12>>2]=e;a[o+16>>0]=f!=0.0&1;g[o+36>>2]=h;g[o+32>>2]=j;g[o+28>>2]=k;g[o+20>>2]=l;g[o+24>>2]=m;e=Wk(b,o)|0;i=n;return e|0}function Ad(a,b){a=a|0;b=+b;si(a,b!=0.0);return}function Bd(a,b){a=a|0;b=+b;vi(a,b!=0.0);return}function Cd(a){a=a|0;return +(+pi(a))}function Dd(a){a=a|0;return +(+g[a+132>>2])}function Ed(a,b){a=a|0;b=+b;return +(+yi(a,b))}function Fd(a){a=a|0;return +(+((ri(a)|0)&1))}function Gd(a){a=a|0;return +(+((ui(a)|0)&1))}function Hd(a,b){a=a|0;b=+b;wi(a,b);return}function Id(a,b){a=a|0;b=b|0;var d=0;d=c[a+88>>2]|0;c[b>>2]=c[a+84>>2];c[b+4>>2]=d;return}function Jd(a){a=a|0;return +(+qi(a))}function Kd(a,b,c){a=a|0;b=+b;c=+c;ti(a,b,c);return}function Ld(a,b){a=a|0;b=+b;xi(a,b);return}function Md(b,d,e,f,h,j,k,l,m,n,o,p,q,r,s,t,u){b=b|0;d=d|0;e=e|0;f=+f;h=+h;j=+j;k=+k;l=+l;m=+m;n=+n;o=+o;p=+p;q=+q;r=+r;s=+s;t=+t;u=+u;var v=0,w=0,x=0;v=i;i=i+80|0;w=v;c[w>>2]=0;c[w+4>>2]=0;c[w+8>>2]=0;c[w+12>>2]=0;c[w>>2]=2;x=w+20|0;c[x>>2]=0;c[x+4>>2]=0;c[x+8>>2]=0;c[w+8>>2]=d;c[w+12>>2]=e;a[w+16>>0]=f!=0.0&1;a[w+48>>0]=h!=0.0&1;a[w+60>>0]=j!=0.0&1;g[x>>2]=k;g[w+24>>2]=l;g[w+28>>2]=m;g[w+32>>2]=n;g[w+36>>2]=o;g[w+40>>2]=p;g[w+52>>2]=q;g[w+64>>2]=r;g[w+68>>2]=s;g[w+44>>2]=t;g[w+56>>2]=u;x=Wk(b,w)|0;i=v;return x|0}function Nd(b,d,e,f,h,j,k,l,m,n,o,p,q,r){b=b|0;d=d|0;e=e|0;f=+f;h=+h;j=+j;k=+k;l=+l;m=+m;n=+n;o=+o;p=+p;q=+q;r=+r;var s=0,t=0,u=0,v=0,w=0;s=i;i=i+96|0;t=s+16|0;u=s+8|0;v=s;c[t>>2]=0;c[t+4>>2]=0;c[t+8>>2]=0;c[t+12>>2]=0;c[t>>2]=2;w=t+20|0;c[w>>2]=0;c[w+4>>2]=0;c[w+8>>2]=0;c[w+12>>2]=0;g[t+36>>2]=1.0;g[t+40>>2]=0.0;g[t+44>>2]=0.0;a[t+16>>0]=l!=0.0&1;a[t+48>>0]=m!=0.0&1;a[t+60>>0]=n!=0.0&1;g[t+52>>2]=o;g[t+64>>2]=p;g[t+68>>2]=q;g[t+56>>2]=r;g[u>>2]=f;g[u+4>>2]=h;g[v>>2]=j;g[v+4>>2]=k;gi(t,d,e,u,v);v=Wk(b,t)|0;i=s;return v|0}function Od(a,b){a=a|0;b=b|0;var d=0,e=0;d=i;i=i+16|0;e=d;Mj(e,a);c[b>>2]=c[e>>2];c[b+4>>2]=c[e+4>>2];i=d;return}function Pd(a,b){a=a|0;b=b|0;var d=0,e=0;d=i;i=i+16|0;e=d;Nj(e,a);c[b>>2]=c[e>>2];c[b+4>>2]=c[e+4>>2];i=d;return}function Qd(a){a=a|0;return +(+Oj(a))}function Rd(a){a=a|0;return +(+Pj(a))}function Sd(b,d,e,f,h,j,k,l,m,n,o,p,q,r,s){b=b|0;d=d|0;e=e|0;f=+f;h=+h;j=+j;k=+k;l=+l;m=+m;n=+n;o=+o;p=+p;q=+q;r=+r;s=+s;var t=0,u=0;t=i;i=i+64|0;u=t;c[u>>2]=0;c[u+4>>2]=0;c[u+8>>2]=0;c[u>>2]=4;c[u+8>>2]=d;c[u+12>>2]=e;a[u+16>>0]=f!=0.0&1;g[u+20>>2]=h;g[u+24>>2]=j;g[u+28>>2]=k;g[u+32>>2]=l;g[u+52>>2]=m;g[u+56>>2]=n;g[u+36>>2]=o;g[u+40>>2]=p;g[u+44>>2]=q;g[u+48>>2]=r;g[u+60>>2]=s;e=Wk(b,u)|0;i=t;return e|0}function Td(b,d,e,f,h,j,k,l,m,n,o,p,q){b=b|0;d=d|0;e=e|0;f=+f;h=+h;j=+j;k=+k;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;r=i;i=i+96|0;s=r+32|0;t=r+24|0;u=r+16|0;v=r+8|0;w=r;c[s>>2]=0;c[s+4>>2]=0;c[s+8>>2]=0;c[s+12>>2]=0;c[s>>2]=4;g[s+20>>2]=-1.0;g[s+24>>2]=1.0;g[s+28>>2]=1.0;g[s+32>>2]=1.0;g[s+36>>2]=-1.0;g[s+40>>2]=0.0;g[s+44>>2]=1.0;g[s+48>>2]=0.0;g[s+52>>2]=0.0;g[s+56>>2]=0.0;g[s+60>>2]=1.0;a[s+16>>0]=q!=0.0&1;g[t>>2]=l;g[t+4>>2]=m;g[u>>2]=n;g[u+4>>2]=o;g[v>>2]=f;g[v+4>>2]=h;g[w>>2]=j;g[w+4>>2]=k;Dj(s,d,e,t,u,v,w,p);w=Wk(b,s)|0;i=r;return w|0}function Ud(a,b){a=a|0;b=+b;hj(a,b!=0.0);return}function Vd(a,b){a=a|0;b=+b;cj(a,b!=0.0);return}function Wd(a){a=a|0;return +(+$i(a))}function Xd(a){a=a|0;return +(+((gj(a)|0)&1))}function Yd(a){a=a|0;return +(+((bj(a)|0)&1))}function Zd(a){a=a|0;return +(+aj(a))}function _d(a,b,c){a=a|0;b=+b;c=+c;ij(a,b,c);return}function $d(a){a=a|0;return +(+g[a+108>>2])}function ae(a,b){a=a|0;b=+b;fj(a,b);return}function be(a,b){a=a|0;b=+b;return +(+dj(a,b))}function ce(b,d,e,f,h,j,k,l,m,n,o,p,q,r,s){b=b|0;d=d|0;e=e|0;f=+f;h=+h;j=+j;k=+k;l=+l;m=+m;n=+n;o=+o;p=+p;q=+q;r=+r;s=+s;var t=0,u=0,v=0;t=i;i=i+64|0;u=t;c[u>>2]=0;c[u+4>>2]=0;c[u+8>>2]=0;c[u+12>>2]=0;c[u>>2]=1;v=u+20|0;c[v>>2]=0;c[v+4>>2]=0;c[v+8>>2]=0;c[v+12>>2]=0;c[u+8>>2]=d;c[u+12>>2]=e;a[u+16>>0]=f!=0.0&1;a[u+40>>0]=h!=0.0&1;a[u+52>>0]=j!=0.0&1;g[v>>2]=l;g[u+24>>2]=m;g[u+28>>2]=n;g[u+32>>2]=o;g[u+44>>2]=k;g[u+60>>2]=p;g[u+56>>2]=q;g[u+36>>2]=r;g[u+48>>2]=s;v=Wk(b,u)|0;i=t;return v|0}function de(b,d,e,f,h,j,k,l,m,n,o,p){b=b|0;d=d|0;e=e|0;f=+f;h=+h;j=+j;k=+k;l=+l;m=+m;n=+n;o=+o;p=+p;var q=0,r=0,s=0,t=0;q=i;i=i+80|0;r=q+8|0;s=q;c[r>>2]=0;c[r+4>>2]=0;c[r+8>>2]=0;c[r+12>>2]=0;c[r>>2]=1;t=r+20|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;a[r+16>>0]=j!=0.0&1;a[r+40>>0]=k!=0.0&1;a[r+52>>0]=l!=0.0&1;g[r+44>>2]=m;g[r+60>>2]=n;g[r+56>>2]=o;g[r+48>>2]=p;g[s>>2]=f;g[s+4>>2]=h;Si(r,d,e,s);s=Wk(b,r)|0;i=q;return s|0}function ee(a,b){a=a|0;b=+b;ej(a,b);return}function fe(a,b){a=a|0;b=+b;g[a+84>>2]=b;return}function ge(a){a=a|0;return +(+((Ji(a)|0)>>>0))}function he(b,d,e,f,h,j,k,l,m){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;n=i;i=i+48|0;o=n;c[o>>2]=0;c[o+4>>2]=0;c[o+8>>2]=0;c[o+12>>2]=0;c[o>>2]=10;c[o+8>>2]=d;c[o+12>>2]=e;a[o+16>>0]=f!=0.0&1;g[o+20>>2]=h;g[o+24>>2]=j;g[o+28>>2]=k;g[o+32>>2]=l;g[o+36>>2]=m;e=Wk(b,o)|0;i=n;return e|0}function ie(a,b){a=a|0;b=+b;g[a+68>>2]=b;return}function je(a,b){a=a|0;b=+b;g[a+72>>2]=b;return}function ke(b,d,e,f,h,j,k,l,m,n,o){b=b|0;d=d|0;e=e|0;f=+f;h=+h;j=+j;k=+k;l=+l;m=+m;n=+n;o=+o;var p=0,q=0,r=0;p=i;i=i+48|0;q=p;c[q>>2]=0;c[q+4>>2]=0;c[q+8>>2]=0;c[q+12>>2]=0;c[q>>2]=8;r=q+20|0;c[r>>2]=0;c[r+4>>2]=0;c[r+8>>2]=0;c[r+12>>2]=0;c[q+8>>2]=d;c[q+12>>2]=e;a[q+16>>0]=f!=0.0&1;g[q+44>>2]=h;g[q+40>>2]=j;g[r>>2]=k;g[q+24>>2]=l;g[q+28>>2]=m;g[q+32>>2]=n;g[q+36>>2]=o;r=Wk(b,q)|0;i=p;return r|0}function le(b,d,e,f,h,j,k,l){b=b|0;d=d|0;e=e|0;f=+f;h=+h;j=+j;k=+k;l=+l;var m=0,n=0,o=0,p=0;m=i;i=i+64|0;n=m+8|0;o=m;c[n>>2]=0;c[n+4>>2]=0;c[n+8>>2]=0;c[n+12>>2]=0;c[n>>2]=8;p=n+20|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;a[n+16>>0]=j!=0.0&1;g[n+44>>2]=k;g[n+40>>2]=l;g[o>>2]=f;g[o+4>>2]=h;Mh(n,d,e,o);o=Wk(b,n)|0;i=m;return o|0}function me(a,b){a=a|0;b=+b;yj(a,b);return}function ne(a,b){a=a|0;b=+b;g[a+68>>2]=b;return}function oe(a,b){a=a|0;b=b|0;var d=0;d=c[a+96>>2]|0;c[b>>2]=c[a+92>>2];c[b+4>>2]=d;return}function pe(a){a=a|0;return +(+uj(a))}function qe(a){a=a|0;return +(+vj(a))}function re(a){a=a|0;return +(+((wj(a)|0)&1))}function se(a,b){a=a|0;b=+b;xj(a,b!=0.0);return}function te(a){a=a|0;return +(+g[a+124>>2])}function ue(a,b){a=a|0;b=+b;zj(a,b);return}function ve(a,b){a=a|0;b=+b;return +(+Aj(a,b))}function we(a,b){a=a|0;b=+b;g[a+72>>2]=b;return}function xe(b,d,e,f,h,j,k,l,m,n,o,p,q,r,s){b=b|0;d=d|0;e=e|0;f=+f;h=+h;j=+j;k=+k;l=+l;m=+m;n=+n;o=+o;p=+p;q=+q;r=+r;s=+s;var t=0,u=0,v=0;t=i;i=i+64|0;u=t;c[u>>2]=0;c[u+4>>2]=0;c[u+8>>2]=0;c[u+12>>2]=0;c[u>>2]=7;v=u+20|0;c[v>>2]=0;c[v+4>>2]=0;c[v+8>>2]=0;c[u+8>>2]=d;c[u+12>>2]=e;a[u+16>>0]=f!=0.0&1;g[u+60>>2]=h;a[u+44>>0]=j!=0.0&1;g[u+56>>2]=k;g[v>>2]=l;g[u+24>>2]=m;g[u+28>>2]=n;g[u+32>>2]=o;g[u+36>>2]=p;g[u+40>>2]=q;g[u+48>>2]=r;g[u+52>>2]=s;v=Wk(b,u)|0;i=t;return v|0}function ye(b,d,e,f,h,j,k,l,m,n,o,p,q){b=b|0;d=d|0;e=e|0;f=+f;h=+h;j=+j;k=+k;l=+l;m=+m;n=+n;o=+o;p=+p;q=+q;var r=0,s=0,t=0,u=0,v=0;r=i;i=i+80|0;s=r+16|0;t=r+8|0;u=r;c[s>>2]=0;c[s+4>>2]=0;c[s+8>>2]=0;c[s+12>>2]=0;c[s>>2]=7;v=s+20|0;c[v>>2]=0;c[v+4>>2]=0;c[v+8>>2]=0;c[v+12>>2]=0;g[s+36>>2]=1.0;g[s+40>>2]=0.0;a[s+16>>0]=l!=0.0&1;g[s+60>>2]=m;a[s+44>>0]=n!=0.0&1;g[s+56>>2]=o;g[s+48>>2]=p;g[s+52>>2]=q;g[t>>2]=f;g[t+4>>2]=h;g[u>>2]=j;g[u+4>>2]=k;lj(s,d,e,t,u);u=Wk(b,s)|0;i=r;return u|0}function ze(a,b,c){a=a|0;b=+b;c=+c;var d=0,e=0;d=i;i=i+16|0;e=d;g[e>>2]=b;g[e+4>>2]=c;Nl(a,e);i=d;return}function Ae(a,b,c){a=a|0;b=+b;c=+c;var d=0,e=0;d=i;i=i+16|0;e=d;g[e>>2]=b;g[e+4>>2]=c;Ol(a,e);i=d;return}function Be(a,b){a=a|0;b=+b;Pl(a,b!=0.0);return}function Ce(a){a=a|0;return +(+(c[a+4>>2]|0))}function De(a){a=a|0;return +(+((c[a+8>>2]|0)-(c[a+4>>2]|0)|0))}function Ee(b,d,e,f,j,k,l,m,n,o,p,q,r){b=b|0;d=+d;e=+e;f=+f;j=+j;k=+k;l=+l;m=+m;n=+n;o=+o;p=+p;q=+q;r=+r;var s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;s=i;i=i+64|0;t=s+8|0;u=s;v=s+16|0;h[t>>3]=l;h[u>>3]=p;w=v+4|0;x=v+12|0;y=2440;z=c[y>>2]|0;A=c[y+4>>2]|0;y=w;c[y>>2]=z;c[y+4>>2]=A;y=x;c[y>>2]=z;c[y+4>>2]=A;a[v+20>>0]=~~d;a[v+21>>0]=~~f;a[v+22>>0]=~~e;a[v+23>>0]=~~j;c[v>>2]=~~k>>>0;c[v+32>>2]=t;g[v+24>>2]=m;g[w>>2]=n;g[v+8>>2]=o;c[v+28>>2]=u;g[x>>2]=q;g[v+16>>2]=r;r=+(Vl(b,v)|0);i=s;return +r}function Fe(a){a=a|0;return Tl(a)|0}function Ge(a){a=a|0;return +(+(c[a+44>>2]|0))}function He(a,b){a=a|0;b=+b;return +(+Fm(a,~~b))}function Ie(a){a=a|0;return c[a+96>>2]|0}function Je(a){a=a|0;return c[a+104>>2]|0}function Ke(a,b){a=a|0;b=+b;g[a+340>>2]=b;return}function Le(a,b){a=a|0;b=+b;var c=0.0;c=b;g[a+320>>2]=c;g[a+28>>2]=1.0/c;return}function Me(a,b){a=a|0;b=+b;g[a+324>>2]=b;return}function Ne(a,b){a=a|0;b=+b;c[a+332>>2]=~~b;return}function Oe(a,b,c){a=a|0;b=+b;c=+c;Xl(a,~~b,c);return}function Pe(a,b){a=a|0;b=+b;var c=0.0;c=b*2.0;g[a+32>>2]=c;g[a+40>>2]=c*c;g[a+36>>2]=1.0/c;return}function Qe(a){a=a|0;so(a);return}function Re(a,b){a=a|0;b=b|0;Aa(b|0);return}function Se(a,b){a=a|0;b=b|0;Za(b|0);return}function Te(a,b,c){a=a|0;b=b|0;c=c|0;return}function Ue(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return}function Ve(a,b,c){a=a|0;b=b|0;c=c|0;return}function We(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return}function Xe(a,b,c){a=a|0;b=b|0;c=c|0;cb(b|0,c|0);return}function Ye(a,b,c){a=a|0;b=b|0;c=c|0;$a(b|0,c|0);return}function Ze(a){a=a|0;so(a);return}function _e(a,b){a=a|0;b=b|0;return Na(b|0)|0}function $e(a,b,c){a=a|0;b=b|0;c=c|0;return 0}function af(a,b){a=a|0;b=b|0;return 1}function bf(a){a=a|0;so(a);return}function cf(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=+e;return +(+Ua(b|0,+(+g[c>>2]),+(+g[c+4>>2]),+(+g[d>>2]),+(+g[d+4>>2]),+e))}function df(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=+f;return 0.0}function ef(a,b){a=a|0;b=b|0;return 1}function ff(a){a=a|0;return}function gf(){c[180]=772;c[181]=820;c[182]=848;return}function hf(d,e){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.0,z=0.0,A=0.0,B=0.0,C=0.0,D=0.0,E=0.0,F=0,G=0,H=0,I=0,J=0,K=0,L=0.0,N=0.0,O=0.0,P=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.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.0,la=0,ma=0,na=0.0,oa=0,pa=0,qa=0,ra=0.0,sa=0.0,ta=0.0,ua=0,va=0.0,wa=0.0,xa=0,ya=0.0,za=0.0,Aa=0,Ba=0.0,Ca=0,Da=0.0,Ea=0,Fa=0,Ga=0,Ha=0,Ia=0.0,Ja=0.0,Ka=0,La=0.0,Ma=0.0,Na=0.0,Oa=0;f=i;i=i+320|0;h=f;j=f+280|0;l=f+244|0;m=f+140|0;n=f+152|0;o=f+16|0;p=f+40|0;q=f+12|0;r=f+8|0;Yn(h);c[219]=(c[219]|0)+1;c[d>>2]=0;s=c[e+128>>2]|0;t=d+4|0;c[t>>2]=s;u=e+28|0;v=j;w=e+56|0;x=v+36|0;do{c[v>>2]=c[w>>2];v=v+4|0;w=w+4|0}while((v|0)<(x|0));v=l;w=e+92|0;x=v+36|0;do{c[v>>2]=c[w>>2];v=v+4|0;w=w+4|0}while((v|0)<(x|0));w=j+24|0;y=+g[w>>2];z=+M(+(y/6.2831854820251465))*6.2831854820251465;A=y-z;g[w>>2]=A;w=j+28|0;y=+g[w>>2]-z;g[w>>2]=y;w=l+24|0;z=+g[w>>2];B=+M(+(z/6.2831854820251465))*6.2831854820251465;C=z-B;g[w>>2]=C;w=l+28|0;z=+g[w>>2]-B;g[w>>2]=z;B=(c[k>>2]=s,+g[k>>2]);D=+g[e+24>>2]+ +g[e+52>>2]+-.014999999664723873;E=D<.004999999888241291?.004999999888241291:D;b[m+4>>1]=0;c[n>>2]=c[e>>2];c[n+4>>2]=c[e+4>>2];c[n+8>>2]=c[e+8>>2];c[n+12>>2]=c[e+12>>2];c[n+16>>2]=c[e+16>>2];c[n+20>>2]=c[e+20>>2];c[n+24>>2]=c[e+24>>2];w=n+28|0;c[w>>2]=c[u>>2];c[w+4>>2]=c[u+4>>2];c[w+8>>2]=c[u+8>>2];c[w+12>>2]=c[u+12>>2];c[w+16>>2]=c[u+16>>2];c[w+20>>2]=c[u+20>>2];c[w+24>>2]=c[u+24>>2];a[n+88>>0]=0;w=n+56|0;v=n+60|0;x=n+64|0;F=n+68|0;G=n+72|0;H=n+76|0;I=n+80|0;J=n+84|0;K=o+16|0;D=E+1.2499999720603228e-003;L=E+-1.2499999720603228e-003;N=+g[j+8>>2];O=+g[j+12>>2];P=+g[j+16>>2];S=+g[j+20>>2];T=+g[j>>2];U=+g[j+4>>2];V=+g[l+8>>2];W=+g[l+12>>2];X=+g[l+16>>2];Y=+g[l+20>>2];Z=+g[l>>2];_=+g[l+4>>2];$=0;aa=0.0;a:while(1){ba=1.0-aa;ca=ba*A+aa*y;da=+R(+ca);ea=+Q(+ca);ca=ba*C+aa*z;fa=+R(+ca);ga=+Q(+ca);g[w>>2]=ba*N+aa*P-(ea*T-da*U);g[v>>2]=ba*O+aa*S-(da*T+ea*U);g[x>>2]=da;g[F>>2]=ea;g[G>>2]=ba*V+aa*X-(ga*Z-fa*_);g[H>>2]=ba*W+aa*Y-(fa*Z+ga*_);g[I>>2]=fa;g[J>>2]=ga;of(o,m,n);ga=+g[K>>2];if(ga<=0.0){ha=$;ia=3;break}if(gaD){ma=$;ia=8;break a}if(fa>L){na=ga;break}oa=c[q>>2]|0;pa=c[r>>2]|0;ba=+lf(p,oa,pa,aa);if(ba0.0?ba:-ba)<1.2499999720603228e-003){Aa=ua;Ba=za;break}Ca=fa>E;if((ua|0)==50){Aa=50;Ba=ga;break}else{sa=Ca?za:sa;ta=Ca?ta:za;va=Ca?fa:va;wa=Ca?wa:fa}}pa=c[223]|0;c[223]=(pa|0)>(Aa|0)?pa:Aa;la=la+1|0;if((la|0)==8){na=aa;break}else ga=Ba}la=$+1|0;c[220]=(c[220]|0)+1;if((la|0)==20){Da=na;ia=21;break}$=la;aa=na}if((ia|0)==3){c[d>>2]=2;g[t>>2]=0.0;Ea=ha;Fa=c[221]|0;Ga=(Fa|0)>(Ea|0);Ha=Ga?Fa:Ea;c[221]=Ha;Ia=+_n(h);Ja=+g[218];Ka=Ja>Ia;La=Ka?Ja:Ia;g[218]=La;Ma=+g[217];Na=Ia+Ma;g[217]=Na;i=f;return}else if((ia|0)==5){c[d>>2]=3;g[t>>2]=ka;Ea=ja;Fa=c[221]|0;Ga=(Fa|0)>(Ea|0);Ha=Ga?Fa:Ea;c[221]=Ha;Ia=+_n(h);Ja=+g[218];Ka=Ja>Ia;La=Ka?Ja:Ia;g[218]=La;Ma=+g[217];Na=Ia+Ma;g[217]=Na;i=f;return}else if((ia|0)==8){c[d>>2]=4;c[t>>2]=s;Oa=ma}else if((ia|0)==11){c[d>>2]=1;g[t>>2]=ra;Oa=qa}else if((ia|0)==13){c[d>>2]=3;g[t>>2]=ya;Oa=xa}else if((ia|0)==21){c[d>>2]=1;g[t>>2]=Da;Ea=20;Fa=c[221]|0;Ga=(Fa|0)>(Ea|0);Ha=Ga?Fa:Ea;c[221]=Ha;Ia=+_n(h);Ja=+g[218];Ka=Ja>Ia;La=Ka?Ja:Ia;g[218]=La;Ma=+g[217];Na=Ia+Ma;g[217]=Na;i=f;return}c[220]=(c[220]|0)+1;Ea=Oa+1|0;Fa=c[221]|0;Ga=(Fa|0)>(Ea|0);Ha=Ga?Fa:Ea;c[221]=Ha;Ia=+_n(h);Ja=+g[218];Ka=Ja>Ia;La=Ka?Ja:Ia;g[218]=La;Ma=+g[217];Na=Ia+Ma;g[217]=Na;i=f;return}function jf(e,f,h,i,j,k,l){e=e|0;f=f|0;h=h|0;i=i|0;j=j|0;k=k|0;l=+l;var 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,K=0.0;c[e>>2]=h;c[e+4>>2]=j;m=b[f+4>>1]|0;n=e+8|0;o=n;p=i;i=o+36|0;do{c[o>>2]=c[p>>2];o=o+4|0;p=p+4|0}while((o|0)<(i|0));q=e+44|0;o=q;p=k;i=o+36|0;do{c[o>>2]=c[p>>2];o=o+4|0;p=p+4|0}while((o|0)<(i|0));r=1.0-l;s=r*+g[e+32>>2]+ +g[e+36>>2]*l;t=+R(+s);u=+Q(+s);s=+g[n>>2];v=+g[e+12>>2];w=r*+g[e+16>>2]+ +g[e+24>>2]*l-(u*s-t*v);x=r*+g[e+20>>2]+ +g[e+28>>2]*l-(t*s+u*v);v=r*+g[e+68>>2]+ +g[e+72>>2]*l;s=+R(+v);y=+Q(+v);v=+g[q>>2];z=+g[e+48>>2];A=r*+g[e+52>>2]+ +g[e+60>>2]*l-(y*v-s*z);B=r*+g[e+56>>2]+ +g[e+64>>2]*l-(s*v+y*z);if(m<<16>>16==1){c[e+80>>2]=0;m=d[f+6>>0]|0;q=c[h+16>>2]|0;z=+g[q+(m<<3)>>2];v=+g[q+(m<<3)+4>>2];m=d[f+9>>0]|0;q=c[j+16>>2]|0;l=+g[q+(m<<3)>>2];r=+g[q+(m<<3)+4>>2];C=A+(y*l-s*r)-(w+(u*z-t*v));D=B+(s*l+y*r)-(x+(t*z+u*v));m=e+92|0;g[m>>2]=C;q=e+96|0;g[q>>2]=D;v=+O(+(C*C+D*D));if(v<1.1920928955078125e-007)E=0.0;else{z=1.0/v;g[m>>2]=C*z;g[q>>2]=D*z;E=v}q=2440;m=c[q+4>>2]|0;n=e+84|0;c[n>>2]=c[q>>2];c[n+4>>2]=m;F=E;return +F}m=f+6|0;n=f+7|0;q=e+80|0;if((a[m>>0]|0)==(a[n>>0]|0)){c[q>>2]=2;p=d[f+9>>0]|0;o=c[j+16>>2]|0;E=+g[o+(p<<3)>>2];v=+g[o+(p<<3)+4>>2];p=d[f+10>>0]|0;z=+g[o+(p<<3)>>2];D=+g[o+(p<<3)+4>>2];C=z-E;r=D-v;l=-C;p=e+92|0;g[p>>2]=r;o=e+96|0;g[o>>2]=l;G=+O(+(C*C+r*r));if(G<1.1920928955078125e-007){H=r;I=l}else{C=1.0/G;G=r*C;g[p>>2]=G;r=C*l;g[o>>2]=r;H=G;I=r}r=(E+z)*.5;z=(v+D)*.5;g[e+84>>2]=r;g[e+88>>2]=z;i=d[m>>0]|0;k=c[h+16>>2]|0;D=+g[k+(i<<3)>>2];v=+g[k+(i<<3)+4>>2];E=(y*H-s*I)*(w+(u*D-t*v)-(A+(y*r-s*z)))+(s*H+y*I)*(x+(t*D+u*v)-(B+(y*z+s*r)));if(!(E<0.0)){F=E;return +F}g[p>>2]=-H;g[o>>2]=-I;F=-E;return +F}else{c[q>>2]=1;q=d[m>>0]|0;m=c[h+16>>2]|0;E=+g[m+(q<<3)>>2];I=+g[m+(q<<3)+4>>2];q=d[n>>0]|0;H=+g[m+(q<<3)>>2];r=+g[m+(q<<3)+4>>2];z=H-E;v=r-I;D=-z;q=e+92|0;g[q>>2]=v;m=e+96|0;g[m>>2]=D;G=+O(+(z*z+v*v));if(G<1.1920928955078125e-007){J=v;K=D}else{z=1.0/G;G=v*z;g[q>>2]=G;v=z*D;g[m>>2]=v;J=G;K=v}v=(E+H)*.5;H=(I+r)*.5;g[e+84>>2]=v;g[e+88>>2]=H;e=d[f+9>>0]|0;f=c[j+16>>2]|0;r=+g[f+(e<<3)>>2];I=+g[f+(e<<3)+4>>2];E=(u*J-t*K)*(A+(y*r-s*I)-(w+(u*v-t*H)))+(t*J+u*K)*(B+(s*r+y*I)-(x+(u*H+t*v)));if(!(E<0.0)){F=E;return +F}g[q>>2]=-J;g[m>>2]=-K;F=-E;return +F}return +(0.0)}function kf(a,b,d,e){a=a|0;b=b|0;d=d|0;e=+e;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,s=0,t=0.0,u=0.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;f=1.0-e;h=f*+g[a+32>>2]+ +g[a+36>>2]*e;i=+R(+h);j=+Q(+h);h=+g[a+8>>2];k=+g[a+12>>2];l=f*+g[a+16>>2]+ +g[a+24>>2]*e-(j*h-i*k);m=f*+g[a+20>>2]+ +g[a+28>>2]*e-(i*h+j*k);k=f*+g[a+68>>2]+ +g[a+72>>2]*e;h=+R(+k);n=+Q(+k);k=+g[a+44>>2];o=+g[a+48>>2];p=f*+g[a+52>>2]+ +g[a+60>>2]*e-(n*k-h*o);q=f*+g[a+56>>2]+ +g[a+64>>2]*e-(h*k+n*o);switch(c[a+80>>2]|0){case 0:{r=a+92|0;o=+g[r>>2];s=a+96|0;k=+g[s>>2];e=j*o+i*k;f=j*k-i*o;t=-o;o=-k;k=n*t+h*o;u=n*o-h*t;v=c[a>>2]|0;w=c[v+16>>2]|0;x=c[v+20>>2]|0;if((x|0)>1){v=0;t=e*+g[w>>2]+f*+g[w+4>>2];y=1;while(1){o=e*+g[w+(y<<3)>>2]+f*+g[w+(y<<3)+4>>2];z=o>t;A=z?y:v;y=y+1|0;if((y|0)==(x|0)){B=A;break}else{v=A;t=z?o:t}}}else B=0;c[b>>2]=B;B=c[a+4>>2]|0;v=c[B+16>>2]|0;x=c[B+20>>2]|0;if((x|0)>1){B=0;t=k*+g[v>>2]+u*+g[v+4>>2];y=1;while(1){f=k*+g[v+(y<<3)>>2]+u*+g[v+(y<<3)+4>>2];z=f>t;A=z?y:B;y=y+1|0;if((y|0)==(x|0)){C=A;break}else{B=A;t=z?f:t}}}else C=0;c[d>>2]=C;B=c[b>>2]|0;t=+g[w+(B<<3)>>2];u=+g[w+(B<<3)+4>>2];k=+g[v+(C<<3)>>2];f=+g[v+(C<<3)+4>>2];D=+g[r>>2]*(p+(n*k-h*f)-(l+(j*t-i*u)))+ +g[s>>2]*(q+(h*k+n*f)-(m+(i*t+j*u)));return +D}case 1:{u=+g[a+92>>2];t=+g[a+96>>2];f=j*u-i*t;k=i*u+j*t;t=+g[a+84>>2];u=+g[a+88>>2];e=l+(j*t-i*u);o=m+(i*t+j*u);u=-f;t=-k;E=n*u+h*t;F=n*t-h*u;c[b>>2]=-1;s=c[a+4>>2]|0;r=c[s+16>>2]|0;C=c[s+20>>2]|0;if((C|0)>1){s=0;u=E*+g[r>>2]+F*+g[r+4>>2];v=1;while(1){t=E*+g[r+(v<<3)>>2]+F*+g[r+(v<<3)+4>>2];B=t>u;w=B?v:s;v=v+1|0;if((v|0)==(C|0)){G=w;break}else{s=w;u=B?t:u}}}else G=0;c[d>>2]=G;u=+g[r+(G<<3)>>2];F=+g[r+(G<<3)+4>>2];D=f*(p+(n*u-h*F)-e)+k*(q+(h*u+n*F)-o);return +D}case 2:{o=+g[a+92>>2];F=+g[a+96>>2];u=n*o-h*F;k=h*o+n*F;F=+g[a+84>>2];o=+g[a+88>>2];e=p+(n*F-h*o);p=q+(h*F+n*o);o=-u;n=-k;F=j*o+i*n;h=j*n-i*o;c[d>>2]=-1;G=c[a>>2]|0;a=c[G+16>>2]|0;r=c[G+20>>2]|0;if((r|0)>1){G=0;o=F*+g[a>>2]+h*+g[a+4>>2];s=1;while(1){n=F*+g[a+(s<<3)>>2]+h*+g[a+(s<<3)+4>>2];C=n>o;v=C?s:G;s=s+1|0;if((s|0)==(r|0)){H=v;break}else{G=v;o=C?n:o}}}else H=0;c[b>>2]=H;o=+g[a+(H<<3)>>2];h=+g[a+(H<<3)+4>>2];D=u*(l+(j*o-i*h)-e)+k*(m+(i*o+j*h)-p);return +D}default:{c[b>>2]=-1;c[d>>2]=-1;D=0.0;return +D}}return +(0.0)}function lf(a,b,d,e){a=a|0;b=b|0;d=d|0;e=+e;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,s=0.0,t=0.0,u=0.0;f=1.0-e;h=f*+g[a+32>>2]+ +g[a+36>>2]*e;i=+R(+h);j=+Q(+h);h=+g[a+8>>2];k=+g[a+12>>2];l=f*+g[a+16>>2]+ +g[a+24>>2]*e-(j*h-i*k);m=f*+g[a+20>>2]+ +g[a+28>>2]*e-(i*h+j*k);k=f*+g[a+68>>2]+ +g[a+72>>2]*e;h=+R(+k);n=+Q(+k);k=+g[a+44>>2];o=+g[a+48>>2];p=f*+g[a+52>>2]+ +g[a+60>>2]*e-(n*k-h*o);q=f*+g[a+56>>2]+ +g[a+64>>2]*e-(h*k+n*o);switch(c[a+80>>2]|0){case 0:{r=c[(c[a>>2]|0)+16>>2]|0;o=+g[r+(b<<3)>>2];k=+g[r+(b<<3)+4>>2];r=c[(c[a+4>>2]|0)+16>>2]|0;e=+g[r+(d<<3)>>2];f=+g[r+(d<<3)+4>>2];s=+g[a+92>>2]*(p+(n*e-h*f)-(l+(j*o-i*k)))+ +g[a+96>>2]*(q+(h*e+n*f)-(m+(i*o+j*k)));return +s}case 1:{k=+g[a+92>>2];o=+g[a+96>>2];f=+g[a+84>>2];e=+g[a+88>>2];r=c[(c[a+4>>2]|0)+16>>2]|0;t=+g[r+(d<<3)>>2];u=+g[r+(d<<3)+4>>2];s=(j*k-i*o)*(p+(n*t-h*u)-(l+(j*f-i*e)))+(i*k+j*o)*(q+(h*t+n*u)-(m+(i*f+j*e)));return +s}case 2:{e=+g[a+92>>2];f=+g[a+96>>2];u=+g[a+84>>2];t=+g[a+88>>2];d=c[(c[a>>2]|0)+16>>2]|0;o=+g[d+(b<<3)>>2];k=+g[d+(b<<3)+4>>2];s=(n*e-h*f)*(l+(j*o-i*k)-(p+(n*u-h*t)))+(h*e+n*f)*(m+(i*o+j*k)-(q+(h*u+n*t)));return +s}default:{s=0.0;return +s}}return +(0.0)}function mf(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;switch(c[b+4>>2]|0){case 0:{c[a+16>>2]=b+12;c[a+20>>2]=1;c[a+24>>2]=c[b+8>>2];return}case 2:{c[a+16>>2]=b+20;c[a+20>>2]=c[b+148>>2];c[a+24>>2]=c[b+8>>2];return}case 3:{e=b+12|0;f=(c[e>>2]|0)+(d<<3)|0;g=c[f+4>>2]|0;h=a;c[h>>2]=c[f>>2];c[h+4>>2]=g;g=d+1|0;d=a+8|0;if((g|0)<(c[b+16>>2]|0)){h=(c[e>>2]|0)+(g<<3)|0;g=c[h+4>>2]|0;f=d;c[f>>2]=c[h>>2];c[f+4>>2]=g}else{g=c[e>>2]|0;e=c[g+4>>2]|0;f=d;c[f>>2]=c[g>>2];c[f+4>>2]=e}c[a+16>>2]=a;c[a+20>>2]=2;c[a+24>>2]=c[b+8>>2];return}case 1:{c[a+16>>2]=b+12;c[a+20>>2]=2;c[a+24>>2]=c[b+8>>2];return}default:return}}function nf(a){a=a|0;var b=0.0,d=0.0,e=0,f=0.0,h=0.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,y=0,z=0;b=+g[a+16>>2];d=+g[a+20>>2];e=a+36|0;f=+g[a+52>>2];h=+g[a+56>>2];i=a+72|0;j=+g[a+88>>2];k=+g[a+92>>2];l=f-b;m=h-d;n=b*l+d*m;o=f*l+h*m;p=j-b;q=k-d;r=b*p+d*q;s=j*p+k*q;t=j-f;u=k-h;v=f*t+h*u;w=j*t+k*u;u=l*q-m*p;p=(f*k-h*j)*u;m=(d*j-b*k)*u;k=(b*h-d*f)*u;if(n>=-0.0&r>=-0.0){g[a+24>>2]=1.0;c[a+108>>2]=1;return}if(o>0.0&n<-0.0&k<=0.0){u=1.0/(o-n);g[a+24>>2]=o*u;g[a+60>>2]=-(n*u);c[a+108>>2]=2;return}if(s>0.0&r<-0.0&m<=0.0){u=1.0/(s-r);g[a+24>>2]=s*u;g[a+96>>2]=-(r*u);c[a+108>>2]=2;x=e;y=i;z=x+36|0;do{c[x>>2]=c[y>>2];x=x+4|0;y=y+4|0}while((x|0)<(z|0));return}if(o<=0.0&v>=-0.0){g[a+60>>2]=1.0;c[a+108>>2]=1;x=a;y=e;z=x+36|0;do{c[x>>2]=c[y>>2];x=x+4|0;y=y+4|0}while((x|0)<(z|0));return}if(s<=0.0&w<=0.0){g[a+96>>2]=1.0;c[a+108>>2]=1;x=a;y=i;z=x+36|0;do{c[x>>2]=c[y>>2];x=x+4|0;y=y+4|0}while((x|0)<(z|0));return}if(w>0.0&v<-0.0&p<=0.0){s=1.0/(w-v);g[a+60>>2]=w*s;g[a+96>>2]=-(v*s);c[a+108>>2]=2;x=a;y=i;z=x+36|0;do{c[x>>2]=c[y>>2];x=x+4|0;y=y+4|0}while((x|0)<(z|0));return}else{s=1.0/(k+(p+m));g[a+24>>2]=p*s;g[a+60>>2]=m*s;g[a+96>>2]=k*s;c[a+108>>2]=3;return}}function of(d,e,f){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.0,r=0.0,s=0,t=0,u=0.0,v=0.0,w=0.0,x=0.0,y=0,z=0.0,A=0.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.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,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0.0,ga=0,ha=0,ia=0,ja=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.0,va=0,wa=0.0,xa=0.0;h=i;i=i+176|0;j=h+152|0;l=h+136|0;m=h;n=h+124|0;o=h+112|0;c[224]=(c[224]|0)+1;p=f+56|0;c[j>>2]=c[p>>2];c[j+4>>2]=c[p+4>>2];c[j+8>>2]=c[p+8>>2];c[j+12>>2]=c[p+12>>2];p=f+72|0;c[l>>2]=c[p>>2];c[l+4>>2]=c[p+4>>2];c[l+8>>2]=c[p+8>>2];c[l+12>>2]=c[p+12>>2];pf(m,e,f,j,f+28|0,l);c[n>>2]=0;c[n+4>>2]=0;c[n+8>>2]=0;c[o>>2]=0;c[o+4>>2]=0;c[o+8>>2]=0;p=m+108|0;q=+g[j+12>>2];r=+g[j+8>>2];s=f+16|0;t=f+20|0;u=+g[j>>2];v=+g[j+4>>2];w=+g[l+12>>2];x=+g[l+8>>2];j=f+44|0;y=f+48|0;z=+g[l>>2];A=+g[l+4>>2];l=m+16|0;B=m+20|0;C=m+52|0;D=m+56|0;E=m+36|0;F=m+24|0;G=m+60|0;H=c[p>>2]|0;I=0;a:while(1){J=(H|0)>0;if(J){K=0;do{c[n+(K<<2)>>2]=c[m+(K*36|0)+28>>2];c[o+(K<<2)>>2]=c[m+(K*36|0)+32>>2];K=K+1|0}while((K|0)!=(H|0))}b:do switch(H|0){case 3:{nf(m);K=c[p>>2]|0;if((K|0)==3){L=I;M=11;break a}else{N=K;M=12}break}case 2:{P=+g[l>>2];Q=+g[B>>2];R=+g[C>>2];S=+g[D>>2];T=R-P;U=S-Q;V=P*T+Q*U;if(V>=-0.0){g[F>>2]=1.0;c[p>>2]=1;M=13;break b}Q=R*T+S*U;if(!(Q<=0.0)){U=1.0/(Q-V);g[F>>2]=Q*U;g[G>>2]=-(V*U);c[p>>2]=2;M=14;break b}else{g[G>>2]=1.0;c[p>>2]=1;K=m;W=E;X=K+36|0;do{c[K>>2]=c[W>>2];K=K+4|0;W=W+4|0}while((K|0)<(X|0));M=13;break b}break}default:{N=H;M=12}}while(0);c:do if((M|0)==12){M=0;switch(N|0){case 1:{M=13;break c;break}case 2:{M=14;break c;break}default:{}}Y=N;Z=c[610]|0;_=c[611]|0}while(0);do if((M|0)==13){M=0;W=(g[k>>2]=-+g[l>>2],c[k>>2]|0);Y=1;Z=W;_=(g[k>>2]=-+g[B>>2],c[k>>2]|0)}else if((M|0)==14){M=0;U=+g[l>>2];V=+g[C>>2]-U;Q=+g[B>>2];S=+g[D>>2]-Q;if(U*S-V*Q>0.0){W=(g[k>>2]=-S,c[k>>2]|0);Y=2;Z=W;_=(g[k>>2]=V,c[k>>2]|0);break}else{W=(g[k>>2]=S,c[k>>2]|0);Y=2;Z=W;_=(g[k>>2]=-V,c[k>>2]|0);break}}while(0);V=(c[k>>2]=Z,+g[k>>2]);S=(c[k>>2]=_,+g[k>>2]);if(S*S+V*V<1.4210854715202004e-014){$=Y;aa=I;M=31;break}Q=-V;U=-S;T=q*Q+r*U;R=q*U-r*Q;W=c[s>>2]|0;K=c[t>>2]|0;if((K|0)>1){X=0;Q=T*+g[W>>2]+R*+g[W+4>>2];ba=1;while(1){U=T*+g[W+(ba<<3)>>2]+R*+g[W+(ba<<3)+4>>2];ca=U>Q;da=ca?ba:X;ba=ba+1|0;if((ba|0)==(K|0)){ea=da;break}else{X=da;Q=ca?U:Q}}}else ea=0;c[m+(Y*36|0)+28>>2]=ea;Q=+g[W+(ea<<3)>>2];R=+g[W+(ea<<3)+4>>2];T=u+(q*Q-r*R);U=Q*r+q*R+v;g[m+(Y*36|0)>>2]=T;g[m+(Y*36|0)+4>>2]=U;R=V*w+S*x;Q=S*w-V*x;X=c[j>>2]|0;K=c[y>>2]|0;if((K|0)>1){ba=0;P=R*+g[X>>2]+Q*+g[X+4>>2];ca=1;while(1){fa=R*+g[X+(ca<<3)>>2]+Q*+g[X+(ca<<3)+4>>2];da=fa>P;ga=da?ca:ba;ca=ca+1|0;if((ca|0)==(K|0)){ha=ga;break}else{ba=ga;P=da?fa:P}}}else ha=0;c[m+(Y*36|0)+32>>2]=ha;P=+g[X+(ha<<3)>>2];Q=+g[X+(ha<<3)+4>>2];R=z+(w*P-x*Q);V=P*x+w*Q+A;g[m+(Y*36|0)+8>>2]=R;g[m+(Y*36|0)+12>>2]=V;g[m+(Y*36|0)+16>>2]=R-T;g[m+(Y*36|0)+20>>2]=V-U;ba=I+1|0;c[225]=(c[225]|0)+1;if(J){K=0;do{if((ea|0)==(c[n+(K<<2)>>2]|0)?(ha|0)==(c[o+(K<<2)>>2]|0):0){ia=ba;M=30;break a}K=K+1|0}while((K|0)<(H|0))}K=(c[p>>2]|0)+1|0;c[p>>2]=K;if((ba|0)<20){H=K;I=ba}else{$=K;aa=ba;M=31;break}}if((M|0)==11){I=c[226]|0;c[226]=(I|0)>(L|0)?I:L;ja=L;M=35}else if((M|0)==30){$=c[p>>2]|0;aa=ia;M=31}d:do if((M|0)==31){ia=c[226]|0;c[226]=(ia|0)>(aa|0)?ia:aa;ia=d+8|0;switch($|0){case 3:{ja=aa;M=35;break d;break}case 1:{p=m;L=c[p>>2]|0;I=c[p+4>>2]|0;p=d;c[p>>2]=L;c[p+4>>2]=I;p=m+8|0;H=c[p>>2]|0;o=c[p+4>>2]|0;p=ia;c[p>>2]=H;c[p+4>>2]=o;A=(c[k>>2]=L,+g[k>>2]);w=(c[k>>2]=H,+g[k>>2]);x=(c[k>>2]=I,+g[k>>2]);ka=ia;la=d+4|0;ma=d+12|0;na=d;oa=w;pa=A;qa=(c[k>>2]=o,+g[k>>2]);ra=x;sa=1;ta=aa;break d;break}case 2:{x=+g[F>>2];A=+g[G>>2];w=x*+g[m>>2]+A*+g[m+36>>2];z=x*+g[m+4>>2]+A*+g[m+40>>2];g[d>>2]=w;o=d+4|0;g[o>>2]=z;v=x*+g[m+8>>2]+A*+g[m+44>>2];q=x*+g[m+12>>2]+A*+g[m+48>>2];g[ia>>2]=v;I=d+12|0;g[I>>2]=q;ka=ia;la=o;ma=I;na=d;oa=v;pa=w;qa=q;ra=z;sa=2;ta=aa;break d;break}default:{I=d+4|0;o=d+12|0;ka=ia;la=I;ma=o;na=d;oa=+g[ia>>2];pa=+g[d>>2];qa=+g[o>>2];ra=+g[I>>2];sa=$;ta=aa;break d}}}while(0);if((M|0)==35){z=+g[F>>2];q=+g[G>>2];w=+g[m+96>>2];v=z*+g[m>>2]+q*+g[m+36>>2]+w*+g[m+72>>2];A=z*+g[m+4>>2]+q*+g[m+40>>2]+w*+g[m+76>>2];g[d>>2]=v;G=d+4|0;g[G>>2]=A;F=d+8|0;g[F>>2]=v;aa=d+12|0;g[aa>>2]=A;ka=F;la=G;ma=aa;na=d;oa=v;pa=v;qa=A;ra=A;sa=3;ta=ja}A=pa-oa;oa=ra-qa;ja=d+16|0;g[ja>>2]=+O(+(A*A+oa*oa));c[d+20>>2]=ta;switch(sa|0){case 3:{oa=+g[l>>2];A=+g[B>>2];ua=(+g[C>>2]-oa)*(+g[m+92>>2]-A)-(+g[D>>2]-A)*(+g[m+88>>2]-oa);M=39;break}case 2:{oa=+g[l>>2]-+g[C>>2];A=+g[B>>2]-+g[D>>2];ua=+O(+(oa*oa+A*A));M=39;break}default:{g[e>>2]=0.0;b[e+4>>1]=sa;if((sa|0)>0){va=0;M=41}}}if((M|0)==39){g[e>>2]=ua;b[e+4>>1]=sa;va=0;M=41}if((M|0)==41)while(1){M=0;a[e+6+va>>0]=c[m+(va*36|0)+28>>2];a[e+9+va>>0]=c[m+(va*36|0)+32>>2];va=va+1|0;if((va|0)>=(sa|0))break;else M=41}if(!(a[f+88>>0]|0)){i=h;return}ua=+g[f+24>>2];A=+g[f+52>>2];oa=+g[ja>>2];qa=ua+A;if(!(oa>qa&oa>1.1920928955078125e-007)){ra=(+g[na>>2]+ +g[ka>>2])*.5;pa=(+g[la>>2]+ +g[ma>>2])*.5;g[na>>2]=ra;g[la>>2]=pa;g[ka>>2]=ra;g[ma>>2]=pa;g[ja>>2]=0.0;i=h;return}g[ja>>2]=oa-qa;qa=+g[ka>>2];oa=+g[na>>2];pa=qa-oa;ra=+g[ma>>2];v=+g[la>>2];w=ra-v;q=+O(+(pa*pa+w*w));if(q<1.1920928955078125e-007){wa=pa;xa=w}else{z=1.0/q;wa=pa*z;xa=w*z}g[na>>2]=ua*wa+oa;g[la>>2]=ua*xa+v;g[ka>>2]=qa-A*wa;g[ma>>2]=ra-A*xa;i=h;return}function pf(a,e,f,h,i,j){a=a|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,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;k=b[e+4>>1]|0;l=k&65535;m=a+108|0;c[m>>2]=l;if(!(k<<16>>16))n=l;else{l=f+16|0;k=i+16|0;o=h+12|0;p=h+8|0;q=h+4|0;r=j+12|0;s=j+8|0;t=j+4|0;u=0;do{v=d[e+6+u>>0]|0;c[a+(u*36|0)+28>>2]=v;w=d[e+9+u>>0]|0;c[a+(u*36|0)+32>>2]=w;x=c[l>>2]|0;y=+g[x+(v<<3)>>2];z=+g[x+(v<<3)+4>>2];v=c[k>>2]|0;A=+g[v+(w<<3)>>2];B=+g[v+(w<<3)+4>>2];C=+g[o>>2];D=+g[p>>2];E=+g[h>>2]+(y*C-z*D);F=z*C+y*D+ +g[q>>2];g[a+(u*36|0)>>2]=E;g[a+(u*36|0)+4>>2]=F;D=+g[r>>2];y=+g[s>>2];C=+g[j>>2]+(A*D-B*y);z=B*D+A*y+ +g[t>>2];g[a+(u*36|0)+8>>2]=C;g[a+(u*36|0)+12>>2]=z;g[a+(u*36|0)+16>>2]=C-E;g[a+(u*36|0)+20>>2]=z-F;g[a+(u*36|0)+24>>2]=0.0;u=u+1|0;w=c[m>>2]|0}while((u|0)<(w|0));n=w}if((n|0)<=1){if(n)return}else{F=+g[e>>2];switch(n|0){case 3:{z=+g[a+16>>2];E=+g[a+20>>2];G=(+g[a+52>>2]-z)*(+g[a+92>>2]-E)-(+g[a+56>>2]-E)*(+g[a+88>>2]-z);break}case 2:{z=+g[a+16>>2]-+g[a+52>>2];E=+g[a+20>>2]-+g[a+56>>2];G=+O(+(z*z+E*E));break}default:G=0.0}if(!(G>2]=0}c[a+28>>2]=0;c[a+32>>2]=0;n=c[f+16>>2]|0;G=+g[n>>2];F=+g[n+4>>2];n=c[i+16>>2]|0;E=+g[n>>2];z=+g[n+4>>2];C=+g[h+12>>2];y=+g[h+8>>2];A=+g[h>>2]+(G*C-F*y);D=F*C+G*y+ +g[h+4>>2];g[a>>2]=A;g[a+4>>2]=D;y=+g[j+12>>2];G=+g[j+8>>2];C=+g[j>>2]+(E*y-z*G);F=z*y+E*G+ +g[j+4>>2];g[a+8>>2]=C;g[a+12>>2]=F;g[a+16>>2]=C-A;g[a+20>>2]=F-D;g[a+24>>2]=1.0;c[m>>2]=1;return}function qf(a,d){a=a|0;d=d|0;var e=0,f=0,h=0,i=0;e=Sn(d,48)|0;c[e>>2]=916;d=e+4|0;c[d>>2]=1;g[e+8>>2]=.009999999776482582;f=e+28|0;c[f>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;c[f+12>>2]=0;b[f+16>>1]=0;f=a+4|0;h=c[f+4>>2]|0;i=d;c[i>>2]=c[f>>2];c[i+4>>2]=h;h=e+12|0;i=a+12|0;c[h>>2]=c[i>>2];c[h+4>>2]=c[i+4>>2];c[h+8>>2]=c[i+8>>2];c[h+12>>2]=c[i+12>>2];c[h+16>>2]=c[i+16>>2];c[h+20>>2]=c[i+20>>2];c[h+24>>2]=c[i+24>>2];c[h+28>>2]=c[i+28>>2];b[h+32>>1]=b[i+32>>1]|0;return e|0}function rf(a){a=a|0;return 1}function sf(a,b,c){a=a|0;b=b|0;c=c|0;return 0}function tf(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.0,j=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,x=0,y=0;i=+g[b+12>>2];j=+g[a+12>>2];l=+g[b+8>>2];m=+g[a+16>>2];n=+g[b>>2];o=n+(i*j-l*m);p=+g[b+4>>2];q=j*l+i*m+p;m=+g[a+20>>2];j=+g[a+24>>2];r=n+(i*m-l*j);n=p+(l*m+i*j);j=+g[d>>2];i=j-o;m=+g[d+4>>2];l=m-q;p=r-o;o=n-q;q=i*p+l*o;do if(q>0.0){s=p*p+o*o;if(q>s){t=m-n;u=j-r;break}else{v=q/s;t=l-o*v;u=i-p*v;break}}else{t=l;u=i}while(0);i=+O(+(t*t+u*u));g[e>>2]=i;if(i>0.0){l=1.0/i;e=(g[k>>2]=u*l,c[k>>2]|0);w=e;x=(g[k>>2]=t*l,c[k>>2]|0);c[f>>2]=w;y=f+4|0;c[y>>2]=x;return}else{w=c[610]|0;x=c[611]|0;c[f>>2]=w;y=f+4|0;c[y>>2]=x;return}}function uf(a,b,c,d,e){a=a|0;b=b|0;c=c|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;f=+g[d>>2];h=+g[c>>2]-f;i=+g[d+4>>2];j=+g[c+4>>2]-i;k=+g[d+12>>2];l=+g[d+8>>2];m=h*k+j*l;n=k*j-h*l;h=+g[c+8>>2]-f;f=+g[c+12>>2]-i;i=k*h+l*f-m;j=k*f-l*h-n;h=+g[a+12>>2];f=+g[a+16>>2];o=+g[a+20>>2]-h;p=+g[a+24>>2]-f;q=-o;r=o*o+p*p;s=+O(+r);if(s<1.1920928955078125e-007){t=p;u=q}else{v=1.0/s;t=p*v;u=v*q}q=(f-n)*u+(h-m)*t;v=j*u+i*t;if(v==0.0){w=0;return w|0}s=q/v;if(s<0.0){w=0;return w|0}if(r==0.0?1:+g[c+16>>2]1.0){w=0;return w|0}g[b+8>>2]=s;s=t*k-u*l;v=u*k+t*l;if(q>0.0){g[b>>2]=-s;g[b+4>>2]=-v;w=1;return w|0}else{g[b>>2]=s;g[b+4>>2]=v;w=1;return w|0}return 0}function vf(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.0,k=0.0,l=0.0,m=0.0,n=0.0;e=+g[c+12>>2];f=+g[a+12>>2];h=+g[c+8>>2];i=+g[a+16>>2];j=+g[c>>2];k=j+(e*f-h*i);l=+g[c+4>>2];m=f*h+e*i+l;i=+g[a+20>>2];f=+g[a+24>>2];n=j+(e*i-h*f);j=l+(h*i+e*f);f=+g[a+8>>2];g[b>>2]=(k>2]=(m>2]=f+(k>n?k:n);g[b+12>>2]=f+(m>j?m:j);return}function wf(a,b,c){a=a|0;b=b|0;c=+c;g[b>>2]=0.0;c=(+g[a+16>>2]+ +g[a+24>>2])*.5;g[b+4>>2]=(+g[a+12>>2]+ +g[a+20>>2])*.5;g[b+8>>2]=c;g[b+12>>2]=0.0;return}function xf(a){a=a|0;return}function yf(a){a=a|0;so(a);return}function zf(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0,i=0;d=Sn(b,152)|0;c[d>>2]=960;b=d+4|0;c[b>>2]=2;g[d+8>>2]=.009999999776482582;c[d+148>>2]=0;e=d+12|0;g[e>>2]=0.0;g[d+16>>2]=0.0;f=a+4|0;h=c[f+4>>2]|0;i=b;c[i>>2]=c[f>>2];c[i+4>>2]=h;Bp(e|0,a+12|0,140)|0;return d|0}function Af(a){a=a|0;return 1}function Bf(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.0,p=0.0,q=0,r=0.0,s=0.0,t=0,u=0,v=0,w=0,x=0.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;e=i;i=i+96|0;f=e+32|0;h=e;if((d|0)<3){c[a+148>>2]=4;g[a+20>>2]=-1.0;g[a+24>>2]=-1.0;g[a+28>>2]=1.0;g[a+32>>2]=-1.0;g[a+36>>2]=1.0;g[a+40>>2]=1.0;g[a+44>>2]=-1.0;g[a+48>>2]=1.0;g[a+84>>2]=0.0;g[a+88>>2]=-1.0;g[a+92>>2]=1.0;g[a+96>>2]=0.0;g[a+100>>2]=0.0;g[a+104>>2]=1.0;g[a+108>>2]=-1.0;g[a+112>>2]=0.0;g[a+12>>2]=0.0;g[a+16>>2]=0.0;i=e;return}j=(d|0)<8?d:8;d=0;l=0;while(1){m=c[b+(d<<3)>>2]|0;n=c[b+(d<<3)+4>>2]|0;a:do if((l|0)>0){o=(c[k>>2]=m,+g[k>>2]);p=(c[k>>2]=n,+g[k>>2]);q=0;while(1){r=o-+g[f+(q<<3)>>2];s=p-+g[f+(q<<3)+4>>2];q=q+1|0;if(r*r+s*s<2.4999999441206455e-003){t=l;break a}if((q|0)>=(l|0)){u=8;break}}}else u=8;while(0);if((u|0)==8){u=0;c[f+(l<<3)>>2]=m;c[f+(l<<3)+4>>2]=n;t=l+1|0}d=d+1|0;if((d|0)==(j|0)){v=t;break}else l=t}if((v|0)<3){c[a+148>>2]=4;g[a+20>>2]=-1.0;g[a+24>>2]=-1.0;g[a+28>>2]=1.0;g[a+32>>2]=-1.0;g[a+36>>2]=1.0;g[a+40>>2]=1.0;g[a+44>>2]=-1.0;g[a+48>>2]=1.0;g[a+84>>2]=0.0;g[a+88>>2]=-1.0;g[a+92>>2]=1.0;g[a+96>>2]=0.0;g[a+100>>2]=0.0;g[a+104>>2]=1.0;g[a+108>>2]=-1.0;g[a+112>>2]=0.0;g[a+12>>2]=0.0;g[a+16>>2]=0.0}else{t=0;l=1;p=+g[f>>2];while(1){o=+g[f+(l<<3)>>2];if(!(o>p))if(o==p?+g[f+(l<<3)+4>>2]<+g[f+(t<<3)+4>>2]:0)u=23;else{w=t;x=p}else u=23;if((u|0)==23){u=0;w=l;x=o}l=l+1|0;if((l|0)==(v|0)){y=w;break}else{t=w;p=x}}w=y;t=0;while(1){c[h+(t<<2)>>2]=w;l=f+(w<<3)|0;u=f+(w<<3)+4|0;j=0;d=1;while(1){if((j|0)!=(w|0)){x=+g[l>>2];p=+g[f+(j<<3)>>2]-x;o=+g[u>>2];s=+g[f+(j<<3)+4>>2]-o;r=+g[f+(d<<3)>>2]-x;x=+g[f+(d<<3)+4>>2]-o;o=p*x-s*r;b=o<0.0?d:j;if(o==0.0?r*r+x*x>p*p+s*s:0)z=d;else z=b}else z=d;d=d+1|0;if((d|0)==(v|0)){A=z;break}else j=z}j=t+1|0;if((A|0)==(y|0)){B=j;C=t;break}else{w=A;t=j}}c[a+148>>2]=B;t=(C|0)>-1;if(t){A=0;do{w=f+(c[h+(A<<2)>>2]<<3)|0;y=c[w+4>>2]|0;z=a+20+(A<<3)|0;c[z>>2]=c[w>>2];c[z+4>>2]=y;A=A+1|0}while((A|0)!=(B|0));if(t){t=0;do{A=t;t=t+1|0;h=(t|0)<(B|0)?t:0;s=+g[a+20+(h<<3)>>2]-+g[a+20+(A<<3)>>2];p=+g[a+20+(h<<3)+4>>2]-+g[a+20+(A<<3)+4>>2];x=-s;h=a+84+(A<<3)|0;g[h>>2]=p;f=a+84+(A<<3)+4|0;g[f>>2]=x;r=+O(+(s*s+p*p));if(!(r<1.1920928955078125e-007)){s=1.0/r;g[h>>2]=p*s;g[f>>2]=s*x}}while((t|0)!=(B|0))}}t=a+20|0;if((C|0)>-1){x=0.0;s=0.0;p=0.0;C=0;while(1){r=+g[a+20+(C<<3)>>2];o=+g[a+20+(C<<3)+4>>2];C=C+1|0;f=(C|0)<(B|0)?a+20+(C<<3)|0:t;D=+g[f>>2];E=+g[f+4>>2];F=(r*E-o*D)*.5;G=p+F;H=F*.3333333432674408;F=x+(r+0.0+D)*H;D=s+(o+0.0+E)*H;if((C|0)==(B|0)){I=F;J=D;K=G;break}else{x=F;s=D;p=G}}}else{I=0.0;J=0.0;K=0.0}p=1.0/K;g[a+12>>2]=I*p;g[a+16>>2]=J*p}i=e;return}function Cf(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;e=+g[d>>2]-+g[b>>2];f=+g[d+4>>2]-+g[b+4>>2];h=+g[b+12>>2];i=+g[b+8>>2];j=e*h+f*i;k=h*f-e*i;b=c[a+148>>2]|0;if((b|0)>0)l=0;else{m=1;return m|0}while(1){if((j-+g[a+20+(l<<3)>>2])*+g[a+84+(l<<3)>>2]+(k-+g[a+20+(l<<3)+4>>2])*+g[a+84+(l<<3)+4>>2]>0.0){m=0;n=4;break}l=l+1|0;if((l|0)>=(b|0)){m=1;n=4;break}}if((n|0)==4)return m|0;return 0}function Df(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.0,j=0.0,l=0.0,m=0.0,n=0.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.0,B=0.0,C=0,D=0,E=0.0,F=0,G=0,H=0.0;i=+g[d>>2]-+g[b>>2];j=+g[d+4>>2]-+g[b+4>>2];d=b+12|0;l=+g[d>>2];h=b+8|0;m=+g[h>>2];n=i*l+j*m;o=l*j-i*m;b=(g[k>>2]=n,c[k>>2]|0);p=(g[k>>2]=o,c[k>>2]|0);q=c[a+148>>2]|0;r=(q|0)>0;if(r){s=p;t=b;u=0;m=-34028234663852886.0e22;while(1){i=+g[a+84+(u<<3)>>2];j=+g[a+84+(u<<3)+4>>2];l=(n-+g[a+20+(u<<3)>>2])*i+(o-+g[a+20+(u<<3)+4>>2])*j;v=l>m;w=(g[k>>2]=j,c[k>>2]|0);x=v?w:s;w=v?(g[k>>2]=i,c[k>>2]|0):t;i=v?l:m;u=u+1|0;if((u|0)>=(q|0)){y=x;z=w;A=i;break}else{s=x;t=w;m=i}}if(A>0.0){m=A*A;if(r){r=y;t=z;s=0;i=m;while(1){l=n-+g[a+20+(s<<3)>>2];j=o-+g[a+20+(s<<3)+4>>2];u=(g[k>>2]=l,c[k>>2]|0);B=l*l+j*j;w=i>B;x=w?(g[k>>2]=j,c[k>>2]|0):r;v=w?u:t;j=w?B:i;s=s+1|0;if((s|0)>=(q|0)){C=x;D=v;E=j;break}else{r=x;t=v;i=j}}}else{C=y;D=z;E=m}g[e>>2]=+O(+E);E=+g[d>>2];m=(c[k>>2]=D,+g[k>>2]);i=+g[h>>2];o=(c[k>>2]=C,+g[k>>2]);n=m*E-o*i;j=o*E+m*i;g[f>>2]=n;C=f+4|0;g[C>>2]=j;i=+O(+(n*n+j*j));if(i<1.1920928955078125e-007)return;m=1.0/i;g[f>>2]=n*m;g[C>>2]=j*m;return}else{F=y;G=z;H=A}}else{F=p;G=b;H=-34028234663852886.0e22}g[e>>2]=H;H=+g[d>>2];A=(c[k>>2]=G,+g[k>>2]);m=+g[h>>2];j=(c[k>>2]=F,+g[k>>2]);g[f>>2]=A*H-j*m;g[f+4>>2]=j*H+A*m;return}function Ef(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var 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.0,s=0.0,t=0.0,u=0.0,v=0,w=0,x=0.0,y=0.0,z=0,A=0.0;h=+g[e>>2];i=+g[d>>2]-h;j=+g[e+4>>2];k=+g[d+4>>2]-j;l=+g[e+12>>2];m=+g[e+8>>2];n=i*l+k*m;o=l*k-i*m;i=+g[d+8>>2]-h;h=+g[d+12>>2]-j;j=l*i+m*h-n;k=l*h-m*i-o;e=c[a+148>>2]|0;if((e|0)<=0){p=0;return p|0}f=0;q=-1;i=0.0;h=+g[d+16>>2];a:while(1){r=+g[a+84+(f<<3)>>2];s=+g[a+84+(f<<3)+4>>2];t=(+g[a+20+(f<<3)>>2]-n)*r+(+g[a+20+(f<<3)+4>>2]-o)*s;u=j*r+k*s;do if(u==0.0)if(t<0.0){p=0;v=12;break a}else{w=q;x=i;y=h}else if(u<0.0&t0.0&t=(e|0)){z=w;A=x;v=10;break}else{q=w;i=x;h=y}}if((v|0)==10){if((z|0)<=-1){p=0;return p|0}g[b+8>>2]=A;A=+g[a+84+(z<<3)>>2];y=+g[a+84+(z<<3)+4>>2];g[b>>2]=l*A-m*y;g[b+4>>2]=A*m+l*y;p=1;return p|0}else if((v|0)==12)return p|0;return 0}function Ff(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,l=0.0,m=0.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,y=0,z=0,A=0,B=0,C=0;f=+g[d+12>>2];h=+g[a+20>>2];i=+g[d+8>>2];j=+g[a+24>>2];l=+g[d>>2];m=+g[d+4>>2];d=(g[k>>2]=l+(f*h-i*j),c[k>>2]|0);e=(g[k>>2]=h*i+f*j+m,c[k>>2]|0);n=c[a+148>>2]|0;if((n|0)>1){o=d;p=e;q=d;r=e;s=1;while(1){j=+g[a+20+(s<<3)>>2];h=+g[a+20+(s<<3)+4>>2];t=l+(f*j-i*h);u=j*i+f*h+m;h=(c[k>>2]=o,+g[k>>2]);j=(c[k>>2]=p,+g[k>>2]);v=(g[k>>2]=h>2]|0);w=(g[k>>2]=j>2]|0);j=(c[k>>2]=q,+g[k>>2]);h=(c[k>>2]=r,+g[k>>2]);x=(g[k>>2]=j>t?j:t,c[k>>2]|0);y=(g[k>>2]=h>u?h:u,c[k>>2]|0);s=s+1|0;if((s|0)>=(n|0)){z=w;A=v;B=y;C=x;break}else{o=v;p=w;q=x;r=y}}}else{z=e;A=d;B=e;C=d}m=+g[a+8>>2];f=(c[k>>2]=A,+g[k>>2])-m;i=(c[k>>2]=z,+g[k>>2])-m;g[b>>2]=f;g[b+4>>2]=i;i=(c[k>>2]=C,+g[k>>2])+m;f=(c[k>>2]=B,+g[k>>2])+m;g[b+8>>2]=i;g[b+12>>2]=f;return}function Gf(a,b,d){a=a|0;b=b|0;d=+d;var e=0,f=0,h=0.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.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;e=c[a+148>>2]|0;f=(e|0)>0;if(f){h=0.0;i=0.0;j=0;while(1){k=h+ +g[a+20+(j<<3)>>2];l=i+ +g[a+20+(j<<3)+4>>2];j=j+1|0;if((j|0)>=(e|0)){m=k;n=l;break}else{h=k;i=l}}i=1.0/+(e|0);h=m*i;m=n*i;if(f){f=a+20|0;j=a+24|0;i=0.0;n=0.0;l=0.0;k=0.0;o=0;while(1){p=+g[a+20+(o<<3)>>2]-h;q=+g[a+20+(o<<3)+4>>2]-m;o=o+1|0;r=(o|0)<(e|0);s=+g[(r?a+20+(o<<3)|0:f)>>2]-h;t=+g[(r?a+20+(o<<3)+4|0:j)>>2]-m;u=p*t-q*s;v=u*.5;w=k+v;x=v*.3333333432674408;v=i+(p+s)*x;y=n+(q+t)*x;x=l+u*.0833333358168602*(s*s+(p*p+p*s)+(t*t+(q*q+q*t)));if(!r){z=y;A=v;B=h;C=m;D=x;E=w;break}else{i=v;n=y;l=x;k=w}}}else{z=0.0;A=0.0;B=h;C=m;D=0.0;E=0.0}}else{m=1.0/+(e|0);z=0.0;A=0.0;B=m*0.0;C=m*0.0;D=0.0;E=0.0}m=E*d;g[b>>2]=m;h=1.0/E;E=A*h;A=z*h;h=B+E;B=C+A;g[b+4>>2]=h;g[b+8>>2]=B;g[b+12>>2]=D*d+m*(h*h+B*B-(E*E+A*A));return}function Hf(a){a=a|0;so(a);return}function If(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=Sn(b,20)|0;c[d>>2]=1004;b=d+4|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;e=a+4|0;f=c[e+4>>2]|0;g=b;c[g>>2]=c[e>>2];c[g+4>>2]=f;f=a+12|0;a=c[f+4>>2]|0;g=d+12|0;c[g>>2]=c[f>>2];c[g+4>>2]=a;return d|0}function Jf(a){a=a|0;return 1}function Kf(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;d=+g[b+12>>2];e=+g[a+12>>2];f=+g[b+8>>2];h=+g[a+16>>2];i=+g[c>>2]-(+g[b>>2]+(d*e-f*h));j=+g[c+4>>2]-(+g[b+4>>2]+(e*f+d*h));h=+g[a+8>>2];return i*i+j*j<=h*h|0}function Lf(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var h=0.0,i=0.0,j=0.0,k=0.0,l=0.0,m=0.0;h=+g[b+12>>2];i=+g[a+12>>2];j=+g[b+8>>2];k=+g[a+16>>2];l=+g[c>>2]-(+g[b>>2]+(h*i-j*k));m=+g[c+4>>2]-(+g[b+4>>2]+(i*j+h*k));k=+O(+(l*l+m*m));g[d>>2]=k-+g[a+8>>2];h=1.0/k;g[e>>2]=l*h;g[e+4>>2]=m*h;return}function Mf(a,b,c,d,e){a=a|0;b=b|0;c=c|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;f=+g[d+12>>2];h=+g[a+12>>2];i=+g[d+8>>2];j=+g[a+16>>2];k=+g[c>>2];l=k-(+g[d>>2]+(f*h-i*j));m=+g[c+4>>2];n=m-(+g[d+4>>2]+(h*i+f*j));j=+g[a+8>>2];f=+g[c+8>>2]-k;k=+g[c+12>>2]-m;m=l*f+n*k;i=f*f+k*k;h=m*m-(l*l+n*n-j*j)*i;if(i<1.1920928955078125e-007|h<0.0){o=0;return o|0}j=m+ +O(+h);h=-j;if(!(j<=-0.0)){o=0;return o|0}if(!(i*+g[c+16>>2]>=h)){o=0;return o|0}j=h/i;g[b+8>>2]=j;i=l+f*j;f=n+k*j;g[b>>2]=i;c=b+4|0;g[c>>2]=f;j=+O(+(i*i+f*f));if(j<1.1920928955078125e-007){o=1;return o|0}k=1.0/j;g[b>>2]=i*k;g[c>>2]=f*k;o=1;return o|0}function Nf(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.0,k=0.0;e=+g[c+12>>2];f=+g[a+12>>2];h=+g[c+8>>2];i=+g[a+16>>2];j=+g[c>>2]+(e*f-h*i);k=+g[c+4>>2]+(f*h+e*i);i=+g[a+8>>2];g[b>>2]=j-i;g[b+4>>2]=k-i;g[b+8>>2]=j+i;g[b+12>>2]=k+i;return}function Of(a,b,d){a=a|0;b=b|0;d=+d;var e=0,f=0.0,h=0.0,i=0,j=0,k=0,l=0,m=0.0;e=a+8|0;f=+g[e>>2];h=f*(d*3.1415927410125732*f);g[b>>2]=h;i=a+12|0;j=i;k=c[j+4>>2]|0;l=b+4|0;c[l>>2]=c[j>>2];c[l+4>>2]=k;f=+g[e>>2];d=+g[i>>2];m=+g[a+16>>2];g[b+12>>2]=h*(f*(f*.5)+(d*d+m*m));return}function Pf(a){a=a|0;so(a);return}function Qf(a){a=a|0;var b=0;c[a>>2]=1048;b=a+12|0;ao(c[b>>2]|0);c[b>>2]=0;c[a+16>>2]=0;return}function Rf(a){a=a|0;c[a>>2]=1048;ao(c[a+12>>2]|0);so(a);return}function Sf(a,d,e){a=a|0;d=d|0;e=e|0;var f=0,g=0;f=a+16|0;c[f>>2]=e;g=$n(e<<3)|0;c[a+12>>2]=g;Bp(g|0,d|0,c[f>>2]<<3|0)|0;f=a+20|0;c[f>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;c[f+12>>2]=0;b[f+16>>1]=0;return}function Tf(d,e){d=d|0;e=e|0;var f=0,h=0,i=0,j=0,k=0,l=0,m=0;f=Sn(e,40)|0;c[f>>2]=1048;c[f+4>>2]=3;g[f+8>>2]=.009999999776482582;e=f+12|0;c[e>>2]=0;h=f+16|0;c[h>>2]=0;i=f+36|0;a[i>>0]=0;j=f+37|0;a[j>>0]=0;k=c[d+12>>2]|0;l=c[d+16>>2]|0;c[h>>2]=l;m=$n(l<<3)|0;c[e>>2]=m;Bp(m|0,k|0,c[h>>2]<<3|0)|0;h=f+20|0;c[h>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;c[h+12>>2]=0;b[h+16>>1]=0;k=d+20|0;m=c[k+4>>2]|0;e=h;c[e>>2]=c[k>>2];c[e+4>>2]=m;m=d+28|0;e=c[m+4>>2]|0;k=f+28|0;c[k>>2]=c[m>>2];c[k+4>>2]=e;a[i>>0]=a[d+36>>0]|0;a[j>>0]=a[d+37>>0]|0;return f|0}function Uf(a){a=a|0;return (c[a+16>>2]|0)+-1|0}function Vf(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;c[d+4>>2]=1;c[d+8>>2]=c[b+8>>2];f=b+12|0;g=(c[f>>2]|0)+(e<<3)|0;h=c[g+4>>2]|0;i=d+12|0;c[i>>2]=c[g>>2];c[i+4>>2]=h;h=(c[f>>2]|0)+(e+1<<3)|0;i=c[h+4>>2]|0;g=d+20|0;c[g>>2]=c[h>>2];c[g+4>>2]=i;i=d+28|0;if((e|0)>0){g=(c[f>>2]|0)+(e+-1<<3)|0;h=c[g+4>>2]|0;j=i;c[j>>2]=c[g>>2];c[j+4>>2]=h;k=1}else{h=b+20|0;j=c[h+4>>2]|0;g=i;c[g>>2]=c[h>>2];c[g+4>>2]=j;k=a[b+36>>0]|0}a[d+44>>0]=k;k=d+36|0;if(((c[b+16>>2]|0)+-2|0)>(e|0)){j=(c[f>>2]|0)+(e+2<<3)|0;e=c[j+4>>2]|0;f=k;c[f>>2]=c[j>>2];c[f+4>>2]=e;l=1;m=d+45|0;a[m>>0]=l;return}else{e=b+28|0;f=c[e+4>>2]|0;j=k;c[j>>2]=c[e>>2];c[j+4>>2]=f;l=a[b+37>>0]|0;m=d+45|0;a[m>>0]=l;return}}function Wf(d,e,f,g,h,j){d=d|0;e=e|0;f=f|0;g=g|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;k=i;i=i+48|0;l=k;c[l>>2]=916;m=l+28|0;c[m>>2]=0;c[m+4>>2]=0;c[m+8>>2]=0;c[m+12>>2]=0;b[m+16>>1]=0;c[l+4>>2]=1;c[l+8>>2]=c[d+8>>2];m=c[d+12>>2]|0;n=m+(j<<3)|0;o=c[n+4>>2]|0;p=l+12|0;c[p>>2]=c[n>>2];c[p+4>>2]=o;o=m+(j+1<<3)|0;p=c[o+4>>2]|0;n=l+20|0;c[n>>2]=c[o>>2];c[n+4>>2]=p;p=l+28|0;if((j|0)>0){n=m+(j+-1<<3)|0;o=c[n+4>>2]|0;q=p;c[q>>2]=c[n>>2];c[q+4>>2]=o;r=1}else{o=d+20|0;q=c[o+4>>2]|0;n=p;c[n>>2]=c[o>>2];c[n+4>>2]=q;r=a[d+36>>0]|0}a[l+44>>0]=r;r=l+36|0;if(((c[d+16>>2]|0)+-2|0)>(j|0)){q=m+(j+2<<3)|0;j=c[q+4>>2]|0;m=r;c[m>>2]=c[q>>2];c[m+4>>2]=j;s=1;t=l+45|0;a[t>>0]=s;tf(l,e,f,g,h,0);i=k;return}else{j=d+28|0;m=c[j+4>>2]|0;q=r;c[q>>2]=c[j>>2];c[q+4>>2]=m;s=a[d+37>>0]|0;t=l+45|0;a[t>>0]=s;tf(l,e,f,g,h,0);i=k;return}}function Xf(a,b,c){a=a|0;b=b|0;c=c|0;return 0}function Yf(a,d,e,f,h){a=a|0;d=d|0;e=e|0;f=f|0;h=h|0;var j=0,k=0,l=0,m=0,n=0;j=i;i=i+48|0;k=j;c[k>>2]=916;c[k+4>>2]=1;g[k+8>>2]=.009999999776482582;l=k+28|0;c[l>>2]=0;c[l+4>>2]=0;c[l+8>>2]=0;c[l+12>>2]=0;b[l+16>>1]=0;l=h+1|0;m=(l|0)==(c[a+16>>2]|0)?0:l;l=c[a+12>>2]|0;a=l+(h<<3)|0;h=c[a+4>>2]|0;n=k+12|0;c[n>>2]=c[a>>2];c[n+4>>2]=h;h=l+(m<<3)|0;m=c[h+4>>2]|0;l=k+20|0;c[l>>2]=c[h>>2];c[l+4>>2]=m;m=uf(k,d,e,f,0)|0;i=j;return m|0}function Zf(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=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;f=e+1|0;h=(f|0)==(c[a+16>>2]|0)?0:f;f=c[a+12>>2]|0;i=+g[d+12>>2];j=+g[f+(e<<3)>>2];k=+g[d+8>>2];l=+g[f+(e<<3)+4>>2];m=+g[d>>2];n=m+(i*j-k*l);o=+g[d+4>>2];p=j*k+i*l+o;l=+g[f+(h<<3)>>2];j=+g[f+(h<<3)+4>>2];q=m+(i*l-k*j);m=o+(k*l+i*j);g[b>>2]=n>2]=p>2]=n>q?n:q;g[b+12>>2]=p>m?p:m;return}function _f(a,b,d){a=a|0;b=b|0;d=+d;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;return}function $f(a){a=a|0;ig(a);c[a+28>>2]=0;c[a+48>>2]=16;c[a+52>>2]=0;c[a+44>>2]=$n(128)|0;c[a+36>>2]=16;c[a+40>>2]=0;c[a+32>>2]=$n(64)|0;return}function ag(a){a=a|0;ao(c[a+32>>2]|0);ao(c[a+44>>2]|0);jg(a);return}function bg(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=lg(a,b,d)|0;d=a+28|0;c[d>>2]=(c[d>>2]|0)+1;d=a+40|0;b=c[d>>2]|0;f=a+36|0;g=a+32|0;if((b|0)==(c[f>>2]|0)){a=c[g>>2]|0;c[f>>2]=b<<1;f=$n(b<<3)|0;c[g>>2]=f;Bp(f|0,a|0,c[d>>2]<<2|0)|0;ao(a);h=c[d>>2]|0}else h=b;c[(c[g>>2]|0)+(h<<2)>>2]=e;c[d>>2]=(c[d>>2]|0)+1;return e|0}function cg(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;d=a+40|0;e=c[d>>2]|0;if((e|0)>0){f=c[a+32>>2]|0;g=e;e=0;while(1){h=f+(e<<2)|0;if((c[h>>2]|0)==(b|0)){c[h>>2]=-1;i=c[d>>2]|0}else i=g;e=e+1|0;if((e|0)>=(i|0))break;else g=i}}i=a+28|0;c[i>>2]=(c[i>>2]|0)+-1;ng(a,b);return}function dg(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;if(!(pg(a,b,d,e)|0))return;e=a+40|0;d=c[e>>2]|0;f=a+36|0;g=a+32|0;if((d|0)==(c[f>>2]|0)){a=c[g>>2]|0;c[f>>2]=d<<1;f=$n(d<<3)|0;c[g>>2]=f;Bp(f|0,a|0,c[e>>2]<<2|0)|0;ao(a);h=c[e>>2]|0}else h=d;c[(c[g>>2]|0)+(h<<2)>>2]=b;c[e>>2]=(c[e>>2]|0)+1;return}function eg(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;d=a+40|0;e=c[d>>2]|0;f=a+36|0;g=a+32|0;if((e|0)==(c[f>>2]|0)){a=c[g>>2]|0;c[f>>2]=e<<1;f=$n(e<<3)|0;c[g>>2]=f;Bp(f|0,a|0,c[d>>2]<<2|0)|0;ao(a);h=c[d>>2]|0}else h=e;c[(c[g>>2]|0)+(h<<2)>>2]=b;c[d>>2]=(c[d>>2]|0)+1;return}function fg(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;d=a+56|0;e=c[d>>2]|0;if((e|0)==(b|0))return 1;f=a+52|0;g=c[f>>2]|0;h=a+48|0;i=a+44|0;if((g|0)==(c[h>>2]|0)){a=c[i>>2]|0;c[h>>2]=g<<1;h=$n(g<<4)|0;c[i>>2]=h;Bp(h|0,a|0,c[f>>2]<<3|0)|0;ao(a);j=c[d>>2]|0;k=c[f>>2]|0}else{j=e;k=g}g=c[i>>2]|0;c[g+(k<<3)>>2]=(j|0)>(b|0)?b:j;c[g+(k<<3)+4>>2]=(j|0)<(b|0)?b:j;c[f>>2]=k+1;return 1}function gg(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var h=0,i=0,j=0.0,k=0.0,l=0.0,m=0.0,n=0,o=0.0,p=0.0,q=0.0,r=0.0,s=0.0,t=0.0;h=a+60|0;c[h>>2]=0;i=b+12|0;j=+g[d+12>>2];k=+g[i>>2];l=+g[d+8>>2];m=+g[b+16>>2];n=e+12|0;o=+g[f+12>>2];p=+g[n>>2];q=+g[f+8>>2];r=+g[e+16>>2];s=+g[f>>2]+(o*p-q*r)-(+g[d>>2]+(j*k-l*m));t=p*q+o*r+ +g[f+4>>2]-(k*l+j*m+ +g[d+4>>2]);m=+g[b+8>>2]+ +g[e+8>>2];if(s*s+t*t>m*m)return;c[a+56>>2]=0;e=i;i=c[e+4>>2]|0;b=a+48|0;c[b>>2]=c[e>>2];c[b+4>>2]=i;g[a+40>>2]=0.0;g[a+44>>2]=0.0;c[h>>2]=1;h=n;n=c[h+4>>2]|0;i=a;c[i>>2]=c[h>>2];c[i+4>>2]=n;c[a+16>>2]=0;return}function hg(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var h=0,i=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.0,v=0,w=0,x=0.0,y=0.0,z=0.0,A=0.0,B=0.0,C=0.0;h=a+60|0;c[h>>2]=0;i=e+12|0;j=+g[f+12>>2];l=+g[i>>2];m=+g[f+8>>2];n=+g[e+16>>2];o=+g[f>>2]+(j*l-m*n)-+g[d>>2];p=l*m+j*n+ +g[f+4>>2]-+g[d+4>>2];n=+g[d+12>>2];j=+g[d+8>>2];m=o*n+p*j;l=n*p-o*j;j=+g[b+8>>2]+ +g[e+8>>2];e=c[b+148>>2]|0;do if((e|0)>0){d=0;f=0;o=-34028234663852886.0e22;while(1){p=(m-+g[b+20+(d<<3)>>2])*+g[b+84+(d<<3)>>2]+(l-+g[b+20+(d<<3)+4>>2])*+g[b+84+(d<<3)+4>>2];if(p>j){q=19;break}r=p>o;n=r?p:o;s=r?d:f;d=d+1|0;if((d|0)>=(e|0)){t=s;u=n;q=4;break}else{f=s;o=n}}if((q|0)==4){v=t;w=u<1.1920928955078125e-007;break}else if((q|0)==19)return}else{v=0;w=1}while(0);q=v+1|0;t=(q|0)<(e|0)?q:0;q=c[b+20+(v<<3)>>2]|0;e=c[b+20+(v<<3)+4>>2]|0;f=c[b+20+(t<<3)>>2]|0;d=c[b+20+(t<<3)+4>>2]|0;if(w){c[h>>2]=1;c[a+56>>2]=1;w=b+84+(v<<3)|0;t=c[w+4>>2]|0;s=a+40|0;c[s>>2]=c[w>>2];c[s+4>>2]=t;u=(c[k>>2]=q,+g[k>>2]);o=u+(c[k>>2]=f,+g[k>>2]);u=(c[k>>2]=e,+g[k>>2]);n=(u+(c[k>>2]=d,+g[k>>2]))*.5;g[a+48>>2]=o*.5;g[a+52>>2]=n;t=i;s=c[t+4>>2]|0;w=a;c[w>>2]=c[t>>2];c[w+4>>2]=s;c[a+16>>2]=0;return}n=(c[k>>2]=q,+g[k>>2]);o=m-n;u=(c[k>>2]=e,+g[k>>2]);p=l-u;x=(c[k>>2]=f,+g[k>>2]);y=(c[k>>2]=d,+g[k>>2]);z=m-x;A=l-y;if(o*(x-n)+p*(y-u)<=0.0){B=o*o+p*p;if(B>j*j)return;c[h>>2]=1;c[a+56>>2]=1;s=a+40|0;g[s>>2]=o;w=a+44|0;g[w>>2]=p;C=+O(+B);if(!(C<1.1920928955078125e-007)){B=1.0/C;g[s>>2]=o*B;g[w>>2]=p*B}c[a+48>>2]=q;c[a+52>>2]=e;e=i;q=c[e+4>>2]|0;w=a;c[w>>2]=c[e>>2];c[w+4>>2]=q;c[a+16>>2]=0;return}if(!(z*(n-x)+A*(u-y)<=0.0)){B=(n+x)*.5;x=(u+y)*.5;q=b+84+(v<<3)|0;if((m-B)*+g[q>>2]+(l-x)*+g[b+84+(v<<3)+4>>2]>j)return;c[h>>2]=1;c[a+56>>2]=1;v=q;q=c[v+4>>2]|0;b=a+40|0;c[b>>2]=c[v>>2];c[b+4>>2]=q;g[a+48>>2]=B;g[a+52>>2]=x;q=i;b=c[q+4>>2]|0;v=a;c[v>>2]=c[q>>2];c[v+4>>2]=b;c[a+16>>2]=0;return}x=z*z+A*A;if(x>j*j)return;c[h>>2]=1;c[a+56>>2]=1;h=a+40|0;g[h>>2]=z;b=a+44|0;g[b>>2]=A;j=+O(+x);if(!(j<1.1920928955078125e-007)){x=1.0/j;g[h>>2]=z*x;g[b>>2]=A*x}c[a+48>>2]=f;c[a+52>>2]=d;d=i;i=c[d+4>>2]|0;f=a;c[f>>2]=c[d>>2];c[f+4>>2]=i;c[a+16>>2]=0;return}function ig(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;c[a>>2]=-1;b=a+12|0;c[b>>2]=16;c[a+8>>2]=0;d=$n(576)|0;e=a+4|0;c[e>>2]=d;xp(d|0,0,(c[b>>2]|0)*36|0)|0;d=c[b>>2]|0;if((d|0)>1){f=c[e>>2]|0;g=0;do{h=g;g=g+1|0;c[f+(h*36|0)+20>>2]=g;c[f+(h*36|0)+32>>2]=-1;h=(c[b>>2]|0)+-1|0}while((g|0)<(h|0));i=h;j=f}else{i=d+-1|0;j=c[e>>2]|0}c[j+(i*36|0)+20>>2]=-1;c[j+(((c[b>>2]|0)+-1|0)*36|0)+32>>2]=-1;c[a+16>>2]=0;c[a+20>>2]=0;c[a+24>>2]=0;return}function jg(a){a=a|0;ao(c[a+4>>2]|0);return}function kg(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;b=a+16|0;d=c[b>>2]|0;e=a+4|0;if((d|0)==-1){f=c[e>>2]|0;g=a+12|0;h=c[g>>2]|0;c[g>>2]=h<<1;i=$n(h*72|0)|0;c[e>>2]=i;h=a+8|0;Bp(i|0,f|0,(c[h>>2]|0)*36|0)|0;ao(f);f=c[h>>2]|0;i=(c[g>>2]|0)+-1|0;j=c[e>>2]|0;if((f|0)<(i|0)){k=f;do{f=k;k=k+1|0;c[j+(f*36|0)+20>>2]=k;c[j+(f*36|0)+32>>2]=-1;f=(c[g>>2]|0)+-1|0}while((k|0)<(f|0));l=f}else l=i;c[j+(l*36|0)+20>>2]=-1;c[j+(((c[g>>2]|0)+-1|0)*36|0)+32>>2]=-1;g=c[h>>2]|0;c[b>>2]=g;m=h;n=j;o=g}else{m=a+8|0;n=c[e>>2]|0;o=d}d=n+(o*36|0)+20|0;c[b>>2]=c[d>>2];c[d>>2]=-1;c[n+(o*36|0)+24>>2]=-1;c[n+(o*36|0)+28>>2]=-1;c[n+(o*36|0)+32>>2]=0;c[n+(o*36|0)+16>>2]=0;c[m>>2]=(c[m>>2]|0)+1;return o|0}function lg(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,h=0,i=0.0;e=kg(a)|0;f=a+4|0;h=c[f>>2]|0;i=+g[b+4>>2]+-.10000000149011612;g[h+(e*36|0)>>2]=+g[b>>2]+-.10000000149011612;g[h+(e*36|0)+4>>2]=i;h=c[f>>2]|0;i=+g[b+12>>2]+.10000000149011612;g[h+(e*36|0)+8>>2]=+g[b+8>>2]+.10000000149011612;g[h+(e*36|0)+12>>2]=i;h=c[f>>2]|0;c[h+(e*36|0)+16>>2]=d;c[h+(e*36|0)+32>>2]=0;mg(a,e);return e|0}function mg(a,b){a=a|0;b=b|0;var d=0,e=0,f=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.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;d=a+24|0;c[d>>2]=(c[d>>2]|0)+1;d=c[a>>2]|0;if((d|0)==-1){c[a>>2]=b;c[(c[a+4>>2]|0)+(b*36|0)+20>>2]=-1;return}e=a+4|0;f=c[e>>2]|0;h=+g[f+(b*36|0)>>2];i=+g[f+(b*36|0)+4>>2];j=+g[f+(b*36|0)+8>>2];k=+g[f+(b*36|0)+12>>2];l=c[f+(d*36|0)+24>>2]|0;a:do if((l|0)==-1)m=d;else{n=l;o=d;while(1){p=c[f+(o*36|0)+28>>2]|0;q=+g[f+(o*36|0)+8>>2];r=+g[f+(o*36|0)>>2];s=+g[f+(o*36|0)+12>>2];t=+g[f+(o*36|0)+4>>2];u=((q>j?q:j)-(rk?s:k)-(t>2];s=h>2];q=i>2];x=j>u?j:u;y=+g[f+(n*36|0)+12>>2];z=k>y?k:y;if((c[f+(n*36|0)+24>>2]|0)==-1)A=(x-s+(z-q))*2.0;else A=(x-s+(z-q))*2.0-(u-t+(y-r))*2.0;r=w+A;y=+g[f+(p*36|0)>>2];t=h>2];q=i>2];s=j>z?j:z;x=+g[f+(p*36|0)+12>>2];B=k>x?k:x;if((c[f+(p*36|0)+24>>2]|0)==-1)C=(s-t+(B-q))*2.0;else C=(s-t+(B-q))*2.0-(z-y+(x-u))*2.0;u=w+C;if(v>2]|0;if((n|0)==-1){m=D;break}else o=D}}while(0);d=c[f+(m*36|0)+20>>2]|0;f=kg(a)|0;l=c[e>>2]|0;c[l+(f*36|0)+20>>2]=d;c[l+(f*36|0)+16>>2]=0;C=+g[l+(m*36|0)>>2];A=+g[l+(m*36|0)+4>>2];g[l+(f*36|0)>>2]=h>2]=i>2];i=+g[l+(m*36|0)+12>>2];g[l+(f*36|0)+8>>2]=j>A?j:A;g[l+(f*36|0)+12>>2]=k>i?k:i;l=c[e>>2]|0;c[l+(f*36|0)+32>>2]=(c[l+(m*36|0)+32>>2]|0)+1;if((d|0)==-1){c[l+(f*36|0)+24>>2]=m;c[l+(f*36|0)+28>>2]=b;c[l+(m*36|0)+20>>2]=f;o=l+(b*36|0)+20|0;c[o>>2]=f;c[a>>2]=f;E=c[o>>2]|0}else{o=l+(d*36|0)+24|0;if((c[o>>2]|0)==(m|0))c[o>>2]=f;else c[l+(d*36|0)+28>>2]=f;c[l+(f*36|0)+24>>2]=m;c[l+(f*36|0)+28>>2]=b;c[l+(m*36|0)+20>>2]=f;c[l+(b*36|0)+20>>2]=f;E=f}if((E|0)==-1)return;else F=E;do{E=qg(a,F)|0;f=c[e>>2]|0;b=c[f+(E*36|0)+24>>2]|0;l=c[f+(E*36|0)+28>>2]|0;m=c[f+(b*36|0)+32>>2]|0;d=c[f+(l*36|0)+32>>2]|0;c[f+(E*36|0)+32>>2]=((m|0)>(d|0)?m:d)+1;i=+g[f+(b*36|0)>>2];k=+g[f+(l*36|0)>>2];A=+g[f+(b*36|0)+4>>2];j=+g[f+(l*36|0)+4>>2];g[f+(E*36|0)>>2]=i>2]=A>2];A=+g[f+(l*36|0)+8>>2];k=+g[f+(b*36|0)+12>>2];i=+g[f+(l*36|0)+12>>2];g[f+(E*36|0)+8>>2]=j>A?j:A;g[f+(E*36|0)+12>>2]=k>i?k:i;F=c[(c[e>>2]|0)+(E*36|0)+20>>2]|0}while((F|0)!=-1);return}function ng(a,b){a=a|0;b=b|0;var d=0,e=0;og(a,b);d=a+16|0;e=c[a+4>>2]|0;c[e+(b*36|0)+20>>2]=c[d>>2];c[e+(b*36|0)+32>>2]=-1;c[d>>2]=b;b=a+8|0;c[b>>2]=(c[b>>2]|0)+-1;return}function og(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.0;if((c[a>>2]|0)==(b|0)){c[a>>2]=-1;return}d=a+4|0;e=c[d>>2]|0;f=c[e+(b*36|0)+20>>2]|0;h=e+(f*36|0)+20|0;i=c[h>>2]|0;j=c[e+(f*36|0)+24>>2]|0;if((j|0)==(b|0))k=c[e+(f*36|0)+28>>2]|0;else k=j;if((i|0)==-1){c[a>>2]=k;c[e+(k*36|0)+20>>2]=-1;j=a+16|0;c[h>>2]=c[j>>2];c[e+(f*36|0)+32>>2]=-1;c[j>>2]=f;j=a+8|0;c[j>>2]=(c[j>>2]|0)+-1;return}j=e+(i*36|0)+24|0;if((c[j>>2]|0)==(f|0))c[j>>2]=k;else c[e+(i*36|0)+28>>2]=k;c[e+(k*36|0)+20>>2]=i;k=a+16|0;c[h>>2]=c[k>>2];c[e+(f*36|0)+32>>2]=-1;c[k>>2]=f;f=a+8|0;c[f>>2]=(c[f>>2]|0)+-1;f=i;do{i=qg(a,f)|0;k=c[d>>2]|0;e=c[k+(i*36|0)+24>>2]|0;h=c[k+(i*36|0)+28>>2]|0;l=+g[k+(e*36|0)>>2];m=+g[k+(h*36|0)>>2];n=+g[k+(e*36|0)+4>>2];o=+g[k+(h*36|0)+4>>2];g[k+(i*36|0)>>2]=l>2]=n>2];n=+g[k+(h*36|0)+8>>2];m=+g[k+(e*36|0)+12>>2];l=+g[k+(h*36|0)+12>>2];g[k+(i*36|0)+8>>2]=o>n?o:n;g[k+(i*36|0)+12>>2]=m>l?m:l;k=c[d>>2]|0;j=c[k+(e*36|0)+32>>2]|0;e=c[k+(h*36|0)+32>>2]|0;c[k+(i*36|0)+32>>2]=((j|0)>(e|0)?j:e)+1;f=c[k+(i*36|0)+20>>2]|0}while((f|0)!=-1);return}function pg(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.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0;f=a+4|0;h=c[f>>2]|0;if(+g[h+(b*36|0)>>2]<=+g[d>>2]){i=d+4|0;if((+g[h+(b*36|0)+4>>2]<=+g[i>>2]?+g[d+8>>2]<=+g[h+(b*36|0)+8>>2]:0)?+g[d+12>>2]<=+g[h+(b*36|0)+12>>2]:0){j=0;return j|0}else k=i}else k=d+4|0;og(a,b);l=+g[d>>2]+-.10000000149011612;m=+g[k>>2]+-.10000000149011612;n=+g[d+8>>2]+.10000000149011612;o=+g[d+12>>2]+.10000000149011612;p=+g[e>>2]*2.0;q=+g[e+4>>2]*2.0;e=p<0.0;d=q<0.0;k=c[f>>2]|0;g[k+(b*36|0)>>2]=e?l+p:l;g[k+(b*36|0)+4>>2]=d?m+q:m;g[k+(b*36|0)+8>>2]=e?n:n+p;g[k+(b*36|0)+12>>2]=d?o:o+q;mg(a,b);j=1;return j|0}function qg(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,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,I=0;d=c[a+4>>2]|0;e=d+(b*36|0)|0;f=d+(b*36|0)+24|0;h=c[f>>2]|0;if((h|0)==-1){i=b;return i|0}j=d+(b*36|0)+32|0;if((c[j>>2]|0)<2){i=b;return i|0}k=d+(b*36|0)+28|0;l=c[k>>2]|0;m=d+(h*36|0)|0;n=d+(l*36|0)|0;o=d+(l*36|0)+32|0;p=d+(h*36|0)+32|0;q=(c[o>>2]|0)-(c[p>>2]|0)|0;if((q|0)>1){r=d+(l*36|0)+24|0;s=c[r>>2]|0;t=d+(l*36|0)+28|0;u=c[t>>2]|0;v=d+(s*36|0)|0;w=d+(u*36|0)|0;c[r>>2]=b;r=d+(b*36|0)+20|0;x=d+(l*36|0)+20|0;c[x>>2]=c[r>>2];c[r>>2]=l;r=c[x>>2]|0;do if((r|0)!=-1){x=d+(r*36|0)+24|0;if((c[x>>2]|0)==(b|0)){c[x>>2]=l;break}else{c[d+(r*36|0)+28>>2]=l;break}}else c[a>>2]=l;while(0);r=d+(s*36|0)+32|0;x=d+(u*36|0)+32|0;if((c[r>>2]|0)>(c[x>>2]|0)){c[t>>2]=s;c[k>>2]=u;c[d+(u*36|0)+20>>2]=b;y=+g[m>>2];z=+g[w>>2];A=y>2];y=+g[d+(u*36|0)+4>>2];B=z>2]=A;g[d+(b*36|0)+4>>2]=B;y=+g[d+(h*36|0)+8>>2];z=+g[d+(u*36|0)+8>>2];C=+g[d+(h*36|0)+12>>2];D=+g[d+(u*36|0)+12>>2];E=d+(b*36|0)+8|0;g[E>>2]=y>z?y:z;F=d+(b*36|0)+12|0;g[F>>2]=C>D?C:D;D=+g[v>>2];C=+g[d+(s*36|0)+4>>2];g[n>>2]=A>2]=B>2];B=+g[d+(s*36|0)+8>>2];D=+g[F>>2];A=+g[d+(s*36|0)+12>>2];g[d+(l*36|0)+8>>2]=C>B?C:B;g[d+(l*36|0)+12>>2]=D>A?D:A;F=c[p>>2]|0;E=c[x>>2]|0;G=((F|0)>(E|0)?F:E)+1|0;c[j>>2]=G;E=c[r>>2]|0;H=(G|0)>(E|0)?G:E}else{c[t>>2]=u;c[k>>2]=s;c[d+(s*36|0)+20>>2]=b;A=+g[m>>2];D=+g[v>>2];B=A>2];A=+g[d+(s*36|0)+4>>2];C=D>2]=B;g[d+(b*36|0)+4>>2]=C;A=+g[d+(h*36|0)+8>>2];D=+g[d+(s*36|0)+8>>2];z=+g[d+(h*36|0)+12>>2];y=+g[d+(s*36|0)+12>>2];s=d+(b*36|0)+8|0;g[s>>2]=A>D?A:D;v=d+(b*36|0)+12|0;g[v>>2]=z>y?z:y;y=+g[w>>2];z=+g[d+(u*36|0)+4>>2];g[n>>2]=B>2]=C>2];C=+g[d+(u*36|0)+8>>2];y=+g[v>>2];B=+g[d+(u*36|0)+12>>2];g[d+(l*36|0)+8>>2]=z>C?z:C;g[d+(l*36|0)+12>>2]=y>B?y:B;u=c[p>>2]|0;v=c[r>>2]|0;r=((u|0)>(v|0)?u:v)+1|0;c[j>>2]=r;v=c[x>>2]|0;H=(r|0)>(v|0)?r:v}c[o>>2]=H+1;i=l;return i|0}if((q|0)>=-1){i=b;return i|0}q=d+(h*36|0)+24|0;H=c[q>>2]|0;v=d+(h*36|0)+28|0;r=c[v>>2]|0;x=d+(H*36|0)|0;u=d+(r*36|0)|0;c[q>>2]=b;q=d+(b*36|0)+20|0;s=d+(h*36|0)+20|0;c[s>>2]=c[q>>2];c[q>>2]=h;q=c[s>>2]|0;do if((q|0)!=-1){s=d+(q*36|0)+24|0;if((c[s>>2]|0)==(b|0)){c[s>>2]=h;break}else{c[d+(q*36|0)+28>>2]=h;break}}else c[a>>2]=h;while(0);a=d+(H*36|0)+32|0;q=d+(r*36|0)+32|0;if((c[a>>2]|0)>(c[q>>2]|0)){c[v>>2]=H;c[f>>2]=r;c[d+(r*36|0)+20>>2]=b;B=+g[n>>2];y=+g[u>>2];C=B>2];B=+g[d+(r*36|0)+4>>2];z=y>2]=C;g[d+(b*36|0)+4>>2]=z;B=+g[d+(l*36|0)+8>>2];y=+g[d+(r*36|0)+8>>2];D=+g[d+(l*36|0)+12>>2];A=+g[d+(r*36|0)+12>>2];s=d+(b*36|0)+8|0;g[s>>2]=B>y?B:y;w=d+(b*36|0)+12|0;g[w>>2]=D>A?D:A;A=+g[x>>2];D=+g[d+(H*36|0)+4>>2];g[m>>2]=C>2]=z>2];z=+g[d+(H*36|0)+8>>2];A=+g[w>>2];C=+g[d+(H*36|0)+12>>2];g[d+(h*36|0)+8>>2]=D>z?D:z;g[d+(h*36|0)+12>>2]=A>C?A:C;w=c[o>>2]|0;s=c[q>>2]|0;k=((w|0)>(s|0)?w:s)+1|0;c[j>>2]=k;s=c[a>>2]|0;I=(k|0)>(s|0)?k:s}else{c[v>>2]=r;c[f>>2]=H;c[d+(H*36|0)+20>>2]=b;C=+g[n>>2];A=+g[x>>2];z=C>2];C=+g[d+(H*36|0)+4>>2];D=A>2]=z;g[d+(b*36|0)+4>>2]=D;C=+g[d+(l*36|0)+8>>2];A=+g[d+(H*36|0)+8>>2];y=+g[d+(l*36|0)+12>>2];B=+g[d+(H*36|0)+12>>2];H=d+(b*36|0)+8|0;g[H>>2]=C>A?C:A;l=d+(b*36|0)+12|0;g[l>>2]=y>B?y:B;B=+g[u>>2];y=+g[d+(r*36|0)+4>>2];g[m>>2]=z>2]=D>2];D=+g[d+(r*36|0)+8>>2];B=+g[l>>2];z=+g[d+(r*36|0)+12>>2];g[d+(h*36|0)+8>>2]=y>D?y:D;g[d+(h*36|0)+12>>2]=B>z?B:z;d=c[o>>2]|0;o=c[a>>2]|0;a=((d|0)>(o|0)?d:o)+1|0;c[j>>2]=a;j=c[q>>2]|0;I=(a|0)>(j|0)?a:j}c[p>>2]=I+1;i=h;return i|0}function rg(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,l=0.0,m=0.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,B=0,C=0.0,D=0.0,E=0.0,F=0.0;i=b+60|0;c[i>>2]=0;j=f+12|0;l=+g[h+12>>2];m=+g[j>>2];n=+g[h+8>>2];o=+g[f+16>>2];p=+g[h>>2]+(l*m-n*o)-+g[e>>2];q=m*n+l*o+ +g[h+4>>2]-+g[e+4>>2];o=+g[e+12>>2];l=+g[e+8>>2];n=p*o+q*l;m=o*q-p*l;e=c[d+12>>2]|0;h=c[d+16>>2]|0;r=c[d+20>>2]|0;s=c[d+24>>2]|0;l=(c[k>>2]=r,+g[k>>2]);p=(c[k>>2]=e,+g[k>>2]);q=l-p;o=(c[k>>2]=s,+g[k>>2]);t=(c[k>>2]=h,+g[k>>2]);u=o-t;v=q*(l-n)+u*(o-m);w=n-p;x=m-t;y=w*q+x*u;z=+g[d+8>>2]+ +g[f+8>>2];if(y<=0.0){if(w*w+x*x>z*z)return;if((a[d+44>>0]|0)!=0?(p-n)*(p-+g[d+28>>2])+(t-m)*(t-+g[d+32>>2])>0.0:0)return;c[i>>2]=1;c[b+56>>2]=0;g[b+40>>2]=0.0;g[b+44>>2]=0.0;c[b+48>>2]=e;c[b+52>>2]=h;f=b+16|0;c[f>>2]=0;a[f>>0]=0;a[f+1>>0]=0;a[f+2>>0]=0;a[f+3>>0]=0;f=j;A=c[f+4>>2]|0;B=b;c[B>>2]=c[f>>2];c[B+4>>2]=A;return}if(!(v<=0.0)){C=1.0/(q*q+u*u);D=n-(p*v+l*y)*C;p=m-(t*v+o*y)*C;if(D*D+p*p>z*z)return;p=-u;A=x*q+w*p<0.0;w=A?-q:q;q=A?u:p;p=+O(+(q*q+w*w));if(p<1.1920928955078125e-007){E=w;F=q}else{u=1.0/p;E=w*u;F=q*u}c[i>>2]=1;c[b+56>>2]=1;g[b+40>>2]=F;g[b+44>>2]=E;c[b+48>>2]=e;c[b+52>>2]=h;h=b+16|0;c[h>>2]=0;a[h>>0]=0;a[h+1>>0]=0;a[h+2>>0]=1;a[h+3>>0]=0;h=j;e=c[h+4>>2]|0;A=b;c[A>>2]=c[h>>2];c[A+4>>2]=e;return}E=n-l;n=m-o;if(E*E+n*n>z*z)return;if((a[d+45>>0]|0)!=0?E*(+g[d+36>>2]-l)+n*(+g[d+40>>2]-o)>0.0:0)return;c[i>>2]=1;c[b+56>>2]=0;g[b+40>>2]=0.0;g[b+44>>2]=0.0;c[b+48>>2]=r;c[b+52>>2]=s;s=b+16|0;c[s>>2]=0;a[s>>0]=1;a[s+1>>0]=0;a[s+2>>0]=0;a[s+3>>0]=0;s=j;j=c[s+4>>2]|0;r=b;c[r>>2]=c[s>>2];c[r+4>>2]=j;return}function sg(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.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,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,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,Z=0.0,_=0,$=0.0,aa=0.0,ba=0,ca=0,da=0,ea=0.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.0,ta=0,ua=0,va=0,wa=0,xa=0.0,ya=0,za=0,Aa=0.0,Ba=0;l=i;i=i+144|0;m=l+128|0;n=l+24|0;o=l+72|0;p=l+48|0;q=l;r=+g[f+12>>2];s=+g[j+8>>2];t=+g[f+8>>2];u=+g[j+12>>2];v=r*s-t*u;w=s*t+r*u;u=+g[j>>2]-+g[f>>2];s=+g[j+4>>2]-+g[f+4>>2];x=r*u+t*s;y=r*s-t*u;f=b+132|0;g[f>>2]=x;j=b+136|0;g[j>>2]=y;z=b+140|0;g[z>>2]=v;A=b+144|0;g[A>>2]=w;u=+g[h+12>>2];t=+g[h+16>>2];s=x+(w*u-v*t);x=u*v+w*t+y;g[b+148>>2]=s;g[b+152>>2]=x;B=e+28|0;C=c[B>>2]|0;D=c[B+4>>2]|0;B=b+156|0;c[B>>2]=C;c[B+4>>2]=D;B=b+164|0;E=e+12|0;F=c[E>>2]|0;G=c[E+4>>2]|0;E=B;c[E>>2]=F;c[E+4>>2]=G;E=b+172|0;H=e+20|0;I=c[H>>2]|0;J=c[H+4>>2]|0;H=E;c[H>>2]=I;c[H+4>>2]=J;H=e+36|0;K=c[H>>2]|0;L=c[H+4>>2]|0;H=b+180|0;c[H>>2]=K;c[H+4>>2]=L;H=(a[e+44>>0]|0)!=0;M=(a[e+45>>0]|0)==0;y=(c[k>>2]=I,+g[k>>2]);t=(c[k>>2]=F,+g[k>>2]);w=y-t;v=(c[k>>2]=J,+g[k>>2]);J=b+168|0;u=(c[k>>2]=G,+g[k>>2]);r=v-u;N=+O(+(w*w+r*r));P=(c[k>>2]=C,+g[k>>2]);Q=(c[k>>2]=D,+g[k>>2]);R=(c[k>>2]=K,+g[k>>2]);S=(c[k>>2]=L,+g[k>>2]);if(N<1.1920928955078125e-007){T=w;U=r}else{V=1.0/N;T=w*V;U=r*V}L=b+196|0;V=-T;g[L>>2]=U;K=b+200|0;g[K>>2]=V;r=(s-t)*U+(x-u)*V;if(H){V=t-P;t=u-Q;u=+O(+(V*V+t*t));if(u<1.1920928955078125e-007){W=V;X=t}else{w=1.0/u;W=V*w;X=t*w}w=-W;g[b+188>>2]=X;g[b+192>>2]=w;Y=U*W-T*X>=0.0;Z=(s-P)*X+(x-Q)*w}else{Y=0;Z=0.0}do if(M){if(!H){D=r>=0.0;a[b+248>>0]=D&1;C=b+212|0;if(D){D=L;G=c[D>>2]|0;F=c[D+4>>2]|0;D=C;c[D>>2]=G;c[D+4>>2]=F;w=-(c[k>>2]=G,+g[k>>2]);g[b+228>>2]=w;g[b+232>>2]=T;g[b+236>>2]=w;g[b+240>>2]=T;break}else{g[C>>2]=-U;g[b+216>>2]=T;C=L;G=c[C>>2]|0;F=c[C+4>>2]|0;C=b+228|0;c[C>>2]=G;c[C+4>>2]=F;C=b+236|0;c[C>>2]=G;c[C+4>>2]=F;break}}F=Z>=0.0;C=r>=0.0;if(Y){G=C|F;a[b+248>>0]=G&1;D=b+212|0;if(G){G=L;I=c[G>>2]|0;e=c[G+4>>2]|0;G=D;c[G>>2]=I;c[G+4>>2]=e;e=b+188|0;G=c[e+4>>2]|0;_=b+228|0;c[_>>2]=c[e>>2];c[_+4>>2]=G;g[b+236>>2]=-(c[k>>2]=I,+g[k>>2]);g[b+240>>2]=T;break}else{g[D>>2]=-U;g[b+216>>2]=T;D=L;I=c[D>>2]|0;G=c[D+4>>2]|0;D=b+228|0;c[D>>2]=I;c[D+4>>2]=G;g[b+236>>2]=-(c[k>>2]=I,+g[k>>2]);g[b+240>>2]=T;break}}else{I=C&F;a[b+248>>0]=I&1;F=b+212|0;if(I){I=L;C=c[I>>2]|0;G=c[I+4>>2]|0;I=F;c[I>>2]=C;c[I+4>>2]=G;I=b+228|0;c[I>>2]=C;c[I+4>>2]=G;g[b+236>>2]=-(c[k>>2]=C,+g[k>>2]);g[b+240>>2]=T;break}else{g[F>>2]=-U;g[b+216>>2]=T;F=L;C=c[F+4>>2]|0;G=b+228|0;c[G>>2]=c[F>>2];c[G+4>>2]=C;w=-+g[b+192>>2];g[b+236>>2]=-+g[b+188>>2];g[b+240>>2]=w;break}}}else{w=R-y;Q=S-v;X=+O(+(w*w+Q*Q));if(X<1.1920928955078125e-007){$=w;aa=Q}else{P=1.0/X;$=w*P;aa=Q*P}P=-$;g[b+204>>2]=aa;g[b+208>>2]=P;C=T*aa-U*$>0.0;Q=(s-y)*aa+(x-v)*P;if(!H){G=r>=0.0;F=Q>=0.0;if(C){I=G|F;a[b+248>>0]=I&1;D=b+212|0;if(I){I=L;_=c[I>>2]|0;e=c[I+4>>2]|0;I=D;c[I>>2]=_;c[I+4>>2]=e;g[b+228>>2]=-(c[k>>2]=_,+g[k>>2]);g[b+232>>2]=T;_=b+204|0;e=c[_+4>>2]|0;I=b+236|0;c[I>>2]=c[_>>2];c[I+4>>2]=e;break}else{P=-U;g[D>>2]=P;g[b+216>>2]=T;g[b+228>>2]=P;g[b+232>>2]=T;D=L;e=c[D+4>>2]|0;I=b+236|0;c[I>>2]=c[D>>2];c[I+4>>2]=e;break}}else{e=G&F;a[b+248>>0]=e&1;F=b+212|0;if(e){e=L;G=c[e>>2]|0;I=c[e+4>>2]|0;e=F;c[e>>2]=G;c[e+4>>2]=I;g[b+228>>2]=-(c[k>>2]=G,+g[k>>2]);g[b+232>>2]=T;e=b+236|0;c[e>>2]=G;c[e+4>>2]=I;break}else{g[F>>2]=-U;g[b+216>>2]=T;P=-+g[b+208>>2];g[b+228>>2]=-+g[b+204>>2];g[b+232>>2]=P;F=L;I=c[F+4>>2]|0;e=b+236|0;c[e>>2]=c[F>>2];c[e+4>>2]=I;break}}}if(Y&C){I=r>=0.0|Z>=0.0|Q>=0.0;a[b+248>>0]=I&1;e=b+212|0;if(I){I=L;F=c[I+4>>2]|0;G=e;c[G>>2]=c[I>>2];c[G+4>>2]=F;F=b+188|0;G=c[F+4>>2]|0;I=b+228|0;c[I>>2]=c[F>>2];c[I+4>>2]=G;G=b+204|0;I=c[G+4>>2]|0;F=b+236|0;c[F>>2]=c[G>>2];c[F+4>>2]=I;break}else{P=-U;g[e>>2]=P;g[b+216>>2]=T;g[b+228>>2]=P;g[b+232>>2]=T;g[b+236>>2]=P;g[b+240>>2]=T;break}}if(Y){if(!(Z>=0.0)){e=r>=0.0&Q>=0.0;a[b+248>>0]=e&1;I=b+212|0;if(e)ba=I;else{P=-U;g[I>>2]=P;g[b+216>>2]=T;g[b+228>>2]=-aa;g[b+232>>2]=$;g[b+236>>2]=P;g[b+240>>2]=T;break}}else{a[b+248>>0]=1;ba=b+212|0}I=L;e=c[I+4>>2]|0;F=ba;c[F>>2]=c[I>>2];c[F+4>>2]=e;e=b+188|0;F=c[e+4>>2]|0;I=b+228|0;c[I>>2]=c[e>>2];c[I+4>>2]=F;F=L;I=c[F+4>>2]|0;e=b+236|0;c[e>>2]=c[F>>2];c[e+4>>2]=I;break}if(!C){C=r>=0.0&Z>=0.0&Q>=0.0;a[b+248>>0]=C&1;I=b+212|0;if(C){C=L;e=c[C>>2]|0;F=c[C+4>>2]|0;C=I;c[C>>2]=e;c[C+4>>2]=F;C=b+228|0;c[C>>2]=e;c[C+4>>2]=F;C=b+236|0;c[C>>2]=e;c[C+4>>2]=F;break}else{g[I>>2]=-U;g[b+216>>2]=T;g[b+228>>2]=-aa;g[b+232>>2]=$;P=-+g[b+192>>2];g[b+236>>2]=-+g[b+188>>2];g[b+240>>2]=P;break}}if(!(Q>=0.0)){I=r>=0.0&Z>=0.0;a[b+248>>0]=I&1;F=b+212|0;if(I)ca=F;else{Q=-U;g[F>>2]=Q;g[b+216>>2]=T;g[b+228>>2]=Q;g[b+232>>2]=T;Q=-+g[b+192>>2];g[b+236>>2]=-+g[b+188>>2];g[b+240>>2]=Q;break}}else{a[b+248>>0]=1;ca=b+212|0}F=L;I=c[F+4>>2]|0;C=ca;c[C>>2]=c[F>>2];c[C+4>>2]=I;I=L;C=c[I+4>>2]|0;F=b+228|0;c[F>>2]=c[I>>2];c[F+4>>2]=C;C=b+204|0;F=c[C+4>>2]|0;I=b+236|0;c[I>>2]=c[C>>2];c[I+4>>2]=F}while(0);ca=h+148|0;ba=c[ca>>2]|0;Y=b+128|0;c[Y>>2]=ba;if((ba|0)>0){H=0;do{T=+g[A>>2];U=+g[h+20+(H<<3)>>2];Z=+g[z>>2];r=+g[h+20+(H<<3)+4>>2];$=U*Z+T*r+ +g[j>>2];g[b+(H<<3)>>2]=+g[f>>2]+(T*U-Z*r);g[b+(H<<3)+4>>2]=$;$=+g[A>>2];r=+g[h+84+(H<<3)>>2];Z=+g[z>>2];U=+g[h+84+(H<<3)+4>>2];g[b+64+(H<<3)>>2]=$*r-Z*U;g[b+64+(H<<3)+4>>2]=r*Z+$*U;H=H+1|0}while((H|0)<(c[ca>>2]|0));da=c[Y>>2]|0}else da=ba;ba=b+244|0;g[ba>>2]=.019999999552965164;ca=d+60|0;c[ca>>2]=0;H=b+248|0;if((da|0)<=0){i=l;return}U=+g[b+164>>2];$=+g[J>>2];Z=+g[b+212>>2];r=+g[b+216>>2];T=34028234663852886.0e22;J=0;while(1){aa=Z*(+g[b+(J<<3)>>2]-U)+r*(+g[b+(J<<3)+4>>2]-$);v=aa.019999999552965164){i=l;return}tg(m,b);da=c[m>>2]|0;if(da){T=+g[m+8>>2];if(T>+g[ba>>2]){i=l;return}if(T>ea*.9800000190734863+1.0000000474974513e-003){J=c[m+4>>2]|0;m=d+56|0;if((da|0)==1){fa=o;ga=n;ha=m;ia=60}else{c[m>>2]=2;m=B;da=c[m+4>>2]|0;M=n;c[M>>2]=c[m>>2];c[M+4>>2]=da;da=n+8|0;a[da>>0]=0;M=J&255;a[da+1>>0]=M;a[da+2>>0]=0;a[da+3>>0]=1;da=E;m=c[da+4>>2]|0;F=n+12|0;c[F>>2]=c[da>>2];c[F+4>>2]=m;m=n+20|0;a[m>>0]=0;a[m+1>>0]=M;a[m+2>>0]=0;a[m+3>>0]=1;c[o>>2]=J;m=J+1|0;M=(m|0)<(c[Y>>2]|0)?m:0;c[o+4>>2]=M;m=o+8|0;F=b+(J<<3)|0;da=c[F>>2]|0;I=c[F+4>>2]|0;F=m;c[F>>2]=da;c[F+4>>2]=I;F=b+(M<<3)|0;M=c[F>>2]|0;C=c[F+4>>2]|0;F=o+16|0;c[F>>2]=M;c[F+4>>2]=C;F=o+24|0;e=b+64+(J<<3)|0;G=c[e>>2]|0;D=c[e+4>>2]|0;e=F;c[e>>2]=G;c[e+4>>2]=D;ja=C;ka=M;la=I;ma=da;na=m;oa=o;pa=F;qa=0;ra=o;sa=(c[k>>2]=G,+g[k>>2]);ta=D;ua=n;va=J}}else ia=58}else ia=58;if((ia|0)==58){fa=o;ga=n;ha=d+56|0;ia=60}do if((ia|0)==60){c[ha>>2]=1;J=c[Y>>2]|0;if((J|0)>1){ea=+g[b+212>>2];T=+g[b+216>>2];D=0;$=ea*+g[b+64>>2]+T*+g[b+68>>2];G=1;while(1){r=ea*+g[b+64+(G<<3)>>2]+T*+g[b+64+(G<<3)+4>>2];F=r<$;m=F?G:D;G=G+1|0;if((G|0)>=(J|0)){wa=m;break}else{D=m;$=F?r:$}}}else wa=0;D=wa+1|0;G=(D|0)<(J|0)?D:0;D=b+(wa<<3)|0;F=c[D+4>>2]|0;m=n;c[m>>2]=c[D>>2];c[m+4>>2]=F;F=n+8|0;a[F>>0]=0;a[F+1>>0]=wa;a[F+2>>0]=1;a[F+3>>0]=0;F=b+(G<<3)|0;m=c[F+4>>2]|0;D=n+12|0;c[D>>2]=c[F>>2];c[D+4>>2]=m;m=n+20|0;a[m>>0]=0;a[m+1>>0]=G;a[m+2>>0]=1;a[m+3>>0]=0;if(!(a[H>>0]|0)){c[o>>2]=1;c[o+4>>2]=0;m=o+8|0;G=E;D=c[G>>2]|0;F=c[G+4>>2]|0;G=m;c[G>>2]=D;c[G+4>>2]=F;G=B;da=c[G>>2]|0;I=c[G+4>>2]|0;G=o+16|0;c[G>>2]=da;c[G+4>>2]=I;$=-+g[L>>2];T=-+g[K>>2];g[o+24>>2]=$;g[o+28>>2]=T;ja=I;ka=da;la=F;ma=D;na=m;oa=o;pa=o+24|0;qa=1;ra=fa;sa=$;ta=(g[k>>2]=T,c[k>>2]|0);ua=ga;va=1;break}else{c[o>>2]=0;c[o+4>>2]=1;m=o+8|0;D=B;F=c[D>>2]|0;da=c[D+4>>2]|0;D=m;c[D>>2]=F;c[D+4>>2]=da;D=E;I=c[D>>2]|0;G=c[D+4>>2]|0;D=o+16|0;c[D>>2]=I;c[D+4>>2]=G;D=o+24|0;M=L;C=c[M>>2]|0;e=c[M+4>>2]|0;M=D;c[M>>2]=C;c[M+4>>2]=e;ja=G;ka=I;la=da;ma=F;na=m;oa=o;pa=D;qa=1;ra=fa;sa=(c[k>>2]=C,+g[k>>2]);ta=e;ua=ga;va=0;break}}while(0);T=(c[k>>2]=ma,+g[k>>2]);$=(c[k>>2]=la,+g[k>>2]);ea=(c[k>>2]=ka,+g[k>>2]);r=(c[k>>2]=ja,+g[k>>2]);ja=o+32|0;ka=o+28|0;la=o+24|0;U=-sa;c[ja>>2]=ta;g[o+36>>2]=U;ma=o+44|0;Z=(c[k>>2]=ta,+g[k>>2]);v=-Z;g[ma>>2]=v;g[o+48>>2]=sa;ta=o+8|0;ga=o+12|0;aa=Z*T+$*U;g[o+40>>2]=aa;fa=o+52|0;g[fa>>2]=ea*v+sa*r;if((yg(p,ua,ja,aa,va)|0)>=2?(yg(q,p,ma,+g[fa>>2],c[o+4>>2]|0)|0)>=2:0){o=d+40|0;if(qa){qa=pa;pa=c[qa>>2]|0;fa=c[qa+4>>2]|0;qa=o;c[qa>>2]=pa;c[qa+4>>2]=fa;fa=na;na=c[fa>>2]|0;qa=c[fa+4>>2]|0;fa=d+48|0;c[fa>>2]=na;c[fa+4>>2]=qa;aa=(c[k>>2]=na,+g[k>>2]);r=(c[k>>2]=pa,+g[k>>2]);sa=+g[ga>>2];v=+g[ka>>2];ea=+g[q>>2];U=+g[q+4>>2];$=+g[ba>>2];if(!((ea-aa)*r+(U-sa)*v<=$)){xa=$;ya=0}else{$=ea-+g[f>>2];ea=U-+g[j>>2];U=+g[A>>2];T=+g[z>>2];g[d>>2]=$*U+ea*T;g[d+4>>2]=U*ea-$*T;c[d+16>>2]=c[q+8>>2];xa=+g[ba>>2];ya=1}T=+g[q+12>>2];$=+g[q+16>>2];if(!((T-aa)*r+($-sa)*v<=xa))za=ya;else{xa=T-+g[f>>2];T=$-+g[j>>2];$=+g[A>>2];v=+g[z>>2];g[d+(ya*20|0)>>2]=xa*$+T*v;g[d+(ya*20|0)+4>>2]=$*T-xa*v;c[d+(ya*20|0)+16>>2]=c[q+20>>2];za=ya+1|0}}else{ya=c[oa>>2]|0;oa=h+84+(ya<<3)|0;z=c[oa+4>>2]|0;A=o;c[A>>2]=c[oa>>2];c[A+4>>2]=z;z=h+20+(ya<<3)|0;ya=c[z+4>>2]|0;h=d+48|0;c[h>>2]=c[z>>2];c[h+4>>2]=ya;v=+g[ta>>2];xa=+g[la>>2];T=+g[ga>>2];$=+g[ka>>2];sa=+g[ba>>2];if(!((+g[q>>2]-v)*xa+(+g[q+4>>2]-T)*$<=sa)){Aa=sa;Ba=0}else{ka=q;ga=c[ka+4>>2]|0;la=d;c[la>>2]=c[ka>>2];c[la+4>>2]=ga;ga=q+8|0;la=d+16|0;a[la+2>>0]=a[ga+3>>0]|0;a[la+3>>0]=a[ga+2>>0]|0;a[la>>0]=a[ga+1>>0]|0;a[la+1>>0]=a[ga>>0]|0;Aa=+g[ba>>2];Ba=1}ba=q+12|0;if(!((+g[ba>>2]-v)*xa+(+g[q+16>>2]-T)*$<=Aa))za=Ba;else{ga=ba;ba=c[ga+4>>2]|0;la=d+(Ba*20|0)|0;c[la>>2]=c[ga>>2];c[la+4>>2]=ba;ba=q+20|0;q=d+(Ba*20|0)+16|0;a[q+2>>0]=a[ba+3>>0]|0;a[q+3>>0]=a[ba+2>>0]|0;a[q>>0]=a[ba+1>>0]|0;a[q+1>>0]=a[ba>>0]|0;za=Ba+1|0}}c[ca>>2]=za}i=l;return}function tg(a,b){a=a|0;b=b|0;var d=0,e=0,f=0.0,h=0.0,i=0,j=0.0,k=0.0,l=0.0,m=0.0,n=0.0,o=0,p=0,q=0,r=0,s=0.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,D=0,E=0.0;c[a>>2]=0;d=a+4|0;c[d>>2]=-1;e=a+8|0;g[e>>2]=-34028234663852886.0e22;f=+g[b+216>>2];h=+g[b+212>>2];i=c[b+128>>2]|0;if((i|0)<=0)return;j=+g[b+164>>2];k=+g[b+168>>2];l=+g[b+172>>2];m=+g[b+176>>2];n=+g[b+244>>2];o=b+228|0;p=b+232|0;q=b+236|0;r=b+240|0;s=-34028234663852886.0e22;t=0;while(1){u=+g[b+64+(t<<3)>>2];v=-u;w=-+g[b+64+(t<<3)+4>>2];x=+g[b+(t<<3)>>2];y=+g[b+(t<<3)+4>>2];z=(x-j)*v+(y-k)*w;A=(x-l)*v+(y-m)*w;y=zn){B=y;C=t;break}if(!(f*u+h*w>=0.0))if(y>s?!((v-+g[o>>2])*h+(w-+g[p>>2])*f<-.03490658849477768):0)D=8;else E=s;else if(y>s?!((v-+g[q>>2])*h+(w-+g[r>>2])*f<-.03490658849477768):0)D=8;else E=s;if((D|0)==8){D=0;c[a>>2]=2;c[d>>2]=t;g[e>>2]=y;E=y}t=t+1|0;if((t|0)>=(i|0)){D=10;break}else s=E}if((D|0)==10)return;c[a>>2]=2;c[d>>2]=C;g[e>>2]=B;return}function ug(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0;f=i;i=i+256|0;sg(f,a,b,c,d,e);i=f;return}function vg(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.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.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,P=0,Q=0,R=0,S=0.0,T=0.0,U=0,V=0,W=0;j=i;i=i+96|0;k=j+92|0;l=j+88|0;m=j+64|0;n=j+56|0;o=j+32|0;p=j+8|0;q=j;r=b+60|0;c[r>>2]=0;s=+g[d+8>>2]+ +g[f+8>>2];c[k>>2]=0;t=+wg(k,d,e,f,h);if(t>s){i=j;return}c[l>>2]=0;u=+wg(l,f,h,d,e);if(u>s){i=j;return}v=+g[h>>2];w=+g[h+4>>2];x=+g[h+8>>2];y=+g[h+12>>2];z=+g[e>>2];A=+g[e+4>>2];B=+g[e+8>>2];C=+g[e+12>>2];if(u>t+5.000000237487257e-004){D=2;E=v;F=w;G=y;H=x;I=C;J=B;K=z;L=A;M=l;N=1;P=f;Q=d}else{D=1;E=z;F=A;G=C;H=B;I=y;J=x;K=v;L=w;M=k;N=0;P=d;Q=f}f=c[M>>2]|0;c[b+56>>2]=D;D=c[Q+148>>2]|0;w=+g[P+84+(f<<3)>>2];v=+g[P+84+(f<<3)+4>>2];x=G*w-H*v;y=H*w+G*v;v=I*x+J*y;w=I*y-J*x;if((D|0)>0){M=0;d=0;x=34028234663852886.0e22;while(1){y=v*+g[Q+84+(M<<3)>>2]+w*+g[Q+84+(M<<3)+4>>2];k=y>2];w=+g[Q+20+(R<<3)+4>>2];g[m>>2]=K+(I*x-J*w);g[m+4>>2]=L+(J*x+I*w);d=f&255;D=m+8|0;a[D>>0]=d;a[D+1>>0]=R;a[D+2>>0]=1;a[D+3>>0]=0;w=+g[Q+20+(M<<3)>>2];x=+g[Q+20+(M<<3)+4>>2];g[m+12>>2]=K+(I*w-J*x);g[m+16>>2]=L+(J*w+I*x);Q=m+20|0;a[Q>>0]=d;a[Q+1>>0]=M;a[Q+2>>0]=1;a[Q+3>>0]=0;Q=f+1|0;M=(Q|0)<(c[P+148>>2]|0)?Q:0;x=+g[P+20+(f<<3)>>2];w=+g[P+20+(f<<3)+4>>2];v=+g[P+20+(M<<3)>>2];y=+g[P+20+(M<<3)+4>>2];B=v-x;C=y-w;A=+O(+(B*B+C*C));if(A<1.1920928955078125e-007){S=B;T=C}else{z=1.0/A;S=B*z;T=C*z}z=G*S-H*T;C=G*T+H*S;g[n>>2]=z;g[n+4>>2]=C;B=-z;A=E+(G*x-H*w);t=F+(H*x+G*w);u=t*B+A*C;g[q>>2]=B;g[q+4>>2]=-C;if((yg(o,m,q,s-(A*z+t*C),f)|0)<2){i=j;return}if((yg(p,o,n,s+((E+(G*v-H*y))*z+(F+(H*v+G*y))*C),M)|0)<2){i=j;return}g[b+40>>2]=T;g[b+44>>2]=-S;g[b+48>>2]=(x+v)*.5;g[b+52>>2]=(w+y)*.5;y=+g[p>>2];w=+g[p+4>>2];M=!(C*y+w*B-u<=s);if(!(N<<24>>24)){if(M)U=0;else{v=y-K;x=w-L;g[b>>2]=I*v+J*x;g[b+4>>2]=I*x-J*v;c[b+16>>2]=c[p+8>>2];U=1}v=+g[p+12>>2];x=+g[p+16>>2];if(!(C*v+x*B-u<=s))V=U;else{S=v-K;v=x-L;g[b+(U*20|0)>>2]=I*S+J*v;g[b+(U*20|0)+4>>2]=I*v-J*S;c[b+(U*20|0)+16>>2]=c[p+20>>2];V=U+1|0}}else{if(M)W=0;else{S=y-K;y=w-L;g[b>>2]=I*S+J*y;g[b+4>>2]=I*y-J*S;M=b+16|0;U=c[p+8>>2]|0;c[M>>2]=U;a[M>>0]=U>>>8;a[M+1>>0]=U;a[M+2>>0]=U>>>24;a[M+3>>0]=U>>>16;W=1}S=+g[p+12>>2];y=+g[p+16>>2];if(!(C*S+y*B-u<=s))V=W;else{s=S-K;K=y-L;g[b+(W*20|0)>>2]=I*s+J*K;g[b+(W*20|0)+4>>2]=I*K-J*s;U=b+(W*20|0)+16|0;b=c[p+20>>2]|0;c[U>>2]=b;a[U>>0]=b>>>8;a[U+1>>0]=b;a[U+2>>0]=b>>>24;a[U+3>>0]=b>>>16;V=W+1|0}}c[r>>2]=V;i=j;return}function wg(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var 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,s=0.0,t=0,u=0,v=0.0,w=0,x=0,y=0.0,z=0.0,A=0.0,B=0.0;h=c[b+148>>2]|0;i=c[e+148>>2]|0;j=+g[f+12>>2];k=+g[d+8>>2];l=+g[f+8>>2];m=+g[d+12>>2];n=j*k-l*m;o=k*l+j*m;m=+g[d>>2]-+g[f>>2];k=+g[d+4>>2]-+g[f+4>>2];p=j*m+l*k;q=j*k-l*m;if((h|0)<=0){r=0;s=-34028234663852886.0e22;c[a>>2]=r;return +s}if((i|0)>0){t=0;u=0;v=-34028234663852886.0e22}else{f=0;d=0;m=-34028234663852886.0e22;while(1){w=m<34028234663852886.0e22;l=w?34028234663852886.0e22:m;x=w?d:f;d=d+1|0;if((d|0)==(h|0)){r=x;s=l;break}else{f=x;m=l}}c[a>>2]=r;return +s}while(1){m=+g[b+84+(u<<3)>>2];l=+g[b+84+(u<<3)+4>>2];k=o*m-n*l;j=n*m+o*l;l=+g[b+20+(u<<3)>>2];m=+g[b+20+(u<<3)+4>>2];y=p+(o*l-n*m);z=q+(n*l+o*m);f=0;m=34028234663852886.0e22;while(1){l=k*(+g[e+20+(f<<3)>>2]-y)+j*(+g[e+20+(f<<3)+4>>2]-z);A=lv;m=f?B:v;d=f?u:t;u=u+1|0;if((u|0)==(h|0)){r=d;s=m;break}else{t=d;v=m}}c[a>>2]=r;return +s}function xg(a,b,d,e,f,h){a=a|0;b=b|0;d=d|0;e=+e;f=f|0;h=+h;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,v=0,w=0,x=0,y=0,z=0.0,A=0.0,B=0.0,C=0.0;i=b+60|0;if(!(c[i>>2]|0))return;switch(c[b+56>>2]|0){case 0:{g[a>>2]=1.0;j=a+4|0;g[j>>2]=0.0;k=+g[d+12>>2];l=+g[b+48>>2];m=+g[d+8>>2];n=+g[b+52>>2];o=+g[d>>2]+(k*l-m*n);p=l*m+k*n+ +g[d+4>>2];n=+g[f+12>>2];k=+g[b>>2];m=+g[f+8>>2];l=+g[b+4>>2];q=+g[f>>2]+(n*k-m*l);r=k*m+n*l+ +g[f+4>>2];l=o-q;n=p-r;if(l*l+n*n>1.4210854715202004e-014){n=q-o;l=r-p;g[a>>2]=n;g[j>>2]=l;m=+O(+(l*l+n*n));if(m<1.1920928955078125e-007){s=n;t=l}else{k=1.0/m;m=n*k;g[a>>2]=m;n=l*k;g[j>>2]=n;s=m;t=n}}else{s=1.0;t=0.0}n=o+s*e;o=p+t*e;p=q-s*h;q=r-t*h;g[a+8>>2]=(n+p)*.5;g[a+12>>2]=(o+q)*.5;g[a+24>>2]=s*(p-n)+t*(q-o);return}case 1:{j=d+12|0;o=+g[j>>2];q=+g[b+40>>2];u=d+8|0;t=+g[u>>2];n=+g[b+44>>2];p=o*q-t*n;s=q*t+o*n;g[a>>2]=p;v=a+4|0;g[v>>2]=s;n=+g[j>>2];o=+g[b+48>>2];t=+g[u>>2];q=+g[b+52>>2];r=+g[d>>2]+(n*o-t*q);m=o*t+n*q+ +g[d+4>>2];if((c[i>>2]|0)<=0)return;u=f+12|0;j=f+8|0;w=f+4|0;q=p;p=s;x=0;while(1){s=+g[u>>2];n=+g[b+(x*20|0)>>2];t=+g[j>>2];o=+g[b+(x*20|0)+4>>2];k=+g[f>>2]+(s*n-t*o);l=n*t+s*o+ +g[w>>2];o=e-(q*(k-r)+(l-m)*p);s=k+q*o;t=l+p*o;o=k-q*h;k=l-p*h;g[a+8+(x<<3)>>2]=(o+s)*.5;g[a+8+(x<<3)+4>>2]=(k+t)*.5;g[a+24+(x<<2)>>2]=+g[a>>2]*(o-s)+ +g[v>>2]*(k-t);y=x+1|0;if((y|0)>=(c[i>>2]|0))break;q=+g[a>>2];p=+g[v>>2];x=y}return}case 2:{x=f+12|0;p=+g[x>>2];q=+g[b+40>>2];v=f+8|0;m=+g[v>>2];r=+g[b+44>>2];t=p*q-m*r;k=q*m+p*r;g[a>>2]=t;w=a+4|0;g[w>>2]=k;r=+g[x>>2];p=+g[b+48>>2];m=+g[v>>2];q=+g[b+52>>2];s=+g[f>>2]+(r*p-m*q);o=p*m+r*q+ +g[f+4>>2];if((c[i>>2]|0)>0){f=d+12|0;v=d+8|0;x=d+4|0;q=t;r=k;j=0;while(1){m=+g[f>>2];p=+g[b+(j*20|0)>>2];l=+g[v>>2];n=+g[b+(j*20|0)+4>>2];z=+g[d>>2]+(m*p-l*n);A=p*l+m*n+ +g[x>>2];n=h-(q*(z-s)+(A-o)*r);m=z+q*n;l=A+r*n;n=z-q*e;z=A-r*e;g[a+8+(j<<3)>>2]=(n+m)*.5;g[a+8+(j<<3)+4>>2]=(z+l)*.5;g[a+24+(j<<2)>>2]=+g[a>>2]*(n-m)+ +g[w>>2]*(z-l);j=j+1|0;l=+g[a>>2];z=+g[w>>2];if((j|0)>=(c[i>>2]|0)){B=l;C=z;break}else{q=l;r=z}}}else{B=t;C=k}g[a>>2]=-B;g[w>>2]=-C;return}default:return}}function yg(b,d,e,f,h){b=b|0;d=d|0;e=e|0;f=+f;h=h|0;var i=0.0,j=0.0,k=0.0,l=0,m=0,n=0.0,o=0,p=0,q=0,r=0;i=+g[e>>2];j=+g[e+4>>2];e=d+4|0;k=i*+g[d>>2]+j*+g[e>>2]-f;l=d+12|0;m=d+16|0;n=i*+g[l>>2]+j*+g[m>>2]-f;if(!(k<=0.0))o=0;else{c[b>>2]=c[d>>2];c[b+4>>2]=c[d+4>>2];c[b+8>>2]=c[d+8>>2];o=1}if(!(n<=0.0))p=o;else{q=b+(o*12|0)|0;c[q>>2]=c[l>>2];c[q+4>>2]=c[l+4>>2];c[q+8>>2]=c[l+8>>2];p=o+1|0}if(!(k*n<0.0)){r=p;return r|0}f=k/(k-n);n=+g[d>>2];k=+g[e>>2];j=k+f*(+g[m>>2]-k);g[b+(p*12|0)>>2]=n+f*(+g[l>>2]-n);g[b+(p*12|0)+4>>2]=j;l=b+(p*12|0)+8|0;a[l>>0]=h;a[l+1>>0]=a[d+8+1>>0]|0;a[l+2>>0]=0;a[l+3>>0]=1;r=p+1|0;return r|0}function zg(d,e,f,h,j,k){d=d|0;e=e|0;f=f|0;h=h|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0;l=i;i=i+128|0;m=l+36|0;n=l+24|0;o=l;c[m+16>>2]=0;c[m+20>>2]=0;g[m+24>>2]=0.0;c[m+44>>2]=0;c[m+48>>2]=0;g[m+52>>2]=0.0;mf(m,d,e);mf(m+28|0,f,h);h=m+56|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=m+72|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];a[m+88>>0]=1;b[n+4>>1]=0;of(o,n,m);i=l;return +g[o+16>>2]<1.1920928955078125e-006|0}function Ag(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;h=a+40|0;c[h>>2]=b;c[a+44>>2]=d;c[a+48>>2]=e;c[a+28>>2]=0;c[a+36>>2]=0;c[a+32>>2]=0;c[a>>2]=f;c[a+4>>2]=g;c[a+8>>2]=lo(f,b<<2)|0;c[a+12>>2]=lo(c[a>>2]|0,d<<2)|0;c[a+16>>2]=lo(c[a>>2]|0,e<<2)|0;c[a+24>>2]=lo(c[a>>2]|0,(c[h>>2]|0)*12|0)|0;c[a+20>>2]=lo(c[a>>2]|0,(c[h>>2]|0)*12|0)|0;return}function Bg(a){a=a|0;no(c[a>>2]|0,c[a+20>>2]|0);no(c[a>>2]|0,c[a+24>>2]|0);no(c[a>>2]|0,c[a+16>>2]|0);no(c[a>>2]|0,c[a+12>>2]|0);no(c[a>>2]|0,c[a+8>>2]|0);return}function Cg(d,f,h,j,l){d=d|0;f=f|0;h=h|0;j=j|0;l=l|0;var m=0,n=0,o=0,p=0,q=0,r=0,s=0.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,H=0.0,I=0.0,J=0.0,K=0.0,L=0,M=0,N=0.0,P=0,S=0,T=0,U=0,V=0.0,W=0,X=0,Y=0.0,Z=0.0;m=i;i=i+176|0;n=m+148|0;o=m;p=m+112|0;q=m+64|0;r=m+8|0;Yn(o);s=+g[h>>2];t=d+28|0;if((c[t>>2]|0)>0){u=d+8|0;v=j+4|0;w=d+20|0;x=d+24|0;y=0;do{z=c[(c[u>>2]|0)+(y<<2)>>2]|0;A=z+60|0;B=c[A>>2]|0;C=c[A+4>>2]|0;A=c[z+72>>2]|0;D=c[z+80>>2]|0;E=c[z+84>>2]|0;F=+g[z+88>>2];G=z+52|0;c[G>>2]=B;c[G+4>>2]=C;c[z+68>>2]=A;if((c[z>>2]|0)==2){H=+g[z+156>>2];I=+g[z+136>>2];J=(c[k>>2]=D,+g[k>>2])+s*(H*+g[j>>2]+I*+g[z+92>>2]);K=(c[k>>2]=E,+g[k>>2])+s*(H*+g[v>>2]+I*+g[z+96>>2]);I=1.0/(s*+g[z+148>>2]+1.0);G=(g[k>>2]=J*I,c[k>>2]|0);L=G;M=(g[k>>2]=K*I,c[k>>2]|0);N=(F+s*+g[z+144>>2]*+g[z+100>>2])*(1.0/(s*+g[z+152>>2]+1.0))}else{L=D;M=E;N=F}E=(c[w>>2]|0)+(y*12|0)|0;c[E>>2]=B;c[E+4>>2]=C;c[(c[w>>2]|0)+(y*12|0)+8>>2]=A;A=c[x>>2]|0;c[A+(y*12|0)>>2]=L;c[A+(y*12|0)+4>>2]=M;g[(c[x>>2]|0)+(y*12|0)+8>>2]=N;y=y+1|0}while((y|0)<(c[t>>2]|0));P=x;S=w}else{P=d+24|0;S=d+20|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];c[p+16>>2]=c[h+16>>2];c[p+20>>2]=c[h+20>>2];c[p+24>>2]=c[h+24>>2];w=c[S>>2]|0;c[p+28>>2]=w;x=c[P>>2]|0;c[p+32>>2]=x;c[q>>2]=c[h>>2];c[q+4>>2]=c[h+4>>2];c[q+8>>2]=c[h+8>>2];c[q+12>>2]=c[h+12>>2];c[q+16>>2]=c[h+16>>2];c[q+20>>2]=c[h+20>>2];c[q+24>>2]=c[h+24>>2];y=d+12|0;c[q+28>>2]=c[y>>2];M=d+36|0;c[q+32>>2]=c[M>>2];c[q+36>>2]=w;c[q+40>>2]=x;c[q+44>>2]=c[d>>2];jk(r,q);lk(r);if(a[h+24>>0]|0)mk(r);q=d+32|0;if((c[q>>2]|0)>0){x=d+16|0;w=0;do{L=c[(c[x>>2]|0)+(w<<2)>>2]|0;kb[c[(c[L>>2]|0)+32>>2]&63](L,p);w=w+1|0}while((w|0)<(c[q>>2]|0))}g[f+12>>2]=+_n(o);w=h+12|0;if((c[w>>2]|0)>0){x=d+16|0;L=0;do{if((c[q>>2]|0)>0){v=0;do{j=c[(c[x>>2]|0)+(v<<2)>>2]|0;kb[c[(c[j>>2]|0)+36>>2]&63](j,p);v=v+1|0}while((v|0)<(c[q>>2]|0))}nk(r);L=L+1|0}while((L|0)<(c[w>>2]|0))}ok(r);g[f+16>>2]=+_n(o);if((c[t>>2]|0)>0){w=c[P>>2]|0;L=0;do{x=c[S>>2]|0;v=x+(L*12|0)|0;j=x+(L*12|0)+4|0;u=c[w+(L*12|0)>>2]|0;A=c[w+(L*12|0)+4>>2]|0;N=+g[w+(L*12|0)+8>>2];F=(c[k>>2]=u,+g[k>>2]);I=s*F;K=(c[k>>2]=A,+g[k>>2]);J=s*K;H=I*I+J*J;if(H>4.0){J=2.0/+O(+H);C=(g[k>>2]=F*J,c[k>>2]|0);T=C;U=(g[k>>2]=K*J,c[k>>2]|0)}else{T=u;U=A}J=s*N;if(J*J>2.4674012660980225)V=N*(1.5707963705062866/(J>0.0?J:-J));else V=N;N=s*(c[k>>2]=T,+g[k>>2]);J=+g[j>>2]+s*(c[k>>2]=U,+g[k>>2]);K=+g[x+(L*12|0)+8>>2]+s*V;g[v>>2]=+g[v>>2]+N;g[j>>2]=J;g[(c[S>>2]|0)+(L*12|0)+8>>2]=K;j=c[P>>2]|0;c[j+(L*12|0)>>2]=T;c[j+(L*12|0)+4>>2]=U;w=c[P>>2]|0;g[w+(L*12|0)+8>>2]=V;L=L+1|0}while((L|0)<(c[t>>2]|0))}L=h+16|0;a:do if((c[L>>2]|0)>0){h=d+16|0;w=0;while(1){U=pk(r)|0;if((c[q>>2]|0)>0){T=0;j=1;while(1){v=c[(c[h>>2]|0)+(T<<2)>>2]|0;x=j&(rb[c[(c[v>>2]|0)+40>>2]&31](v,p)|0);T=T+1|0;if((T|0)>=(c[q>>2]|0)){W=x;break}else j=x}}else W=1;w=w+1|0;if(U&W){X=0;break a}if((w|0)>=(c[L>>2]|0)){X=1;break}}}else X=1;while(0);if((c[t>>2]|0)>0){L=d+8|0;W=0;do{q=c[(c[L>>2]|0)+(W<<2)>>2]|0;p=(c[S>>2]|0)+(W*12|0)|0;w=c[p>>2]|0;h=c[p+4>>2]|0;p=q+60|0;c[p>>2]=w;c[p+4>>2]=h;p=c[(c[S>>2]|0)+(W*12|0)+8>>2]|0;c[q+72>>2]=p;j=(c[P>>2]|0)+(W*12|0)|0;T=c[j+4>>2]|0;x=q+80|0;c[x>>2]=c[j>>2];c[x+4>>2]=T;c[q+88>>2]=c[(c[P>>2]|0)+(W*12|0)+8>>2];V=(c[k>>2]=p,+g[k>>2]);K=+R(+V);g[q+20>>2]=K;J=+Q(+V);g[q+24>>2]=J;V=+g[q+44>>2];N=+g[q+48>>2];F=(c[k>>2]=w,+g[k>>2])-(J*V-K*N);H=(c[k>>2]=h,+g[k>>2])-(K*V+J*N);g[q+12>>2]=F;g[q+16>>2]=H;W=W+1|0}while((W|0)<(c[t>>2]|0))}g[f+20>>2]=+_n(o);o=c[r+44>>2]|0;f=d+4|0;if((c[f>>2]|0)!=0?(c[M>>2]|0)>0:0){W=n+16|0;P=0;do{S=c[(c[y>>2]|0)+(P<<2)>>2]|0;L=c[o+(P*156|0)+148>>2]|0;c[W>>2]=L;if((L|0)>0){q=0;do{c[n+(q<<2)>>2]=c[o+(P*156|0)+(q*36|0)+16>>2];c[n+8+(q<<2)>>2]=c[o+(P*156|0)+(q*36|0)+20>>2];q=q+1|0}while((q|0)!=(L|0))}L=c[f>>2]|0;mb[c[(c[L>>2]|0)+36>>2]&7](L,S,n);P=P+1|0}while((P|0)<(c[M>>2]|0))}if(!l){kk(r);i=m;return}l=c[t>>2]|0;M=(l|0)>0;if(M){P=c[d+8>>2]|0;n=0;H=34028234663852886.0e22;while(1){f=c[P+(n<<2)>>2]|0;do if(!(c[f>>2]|0))Y=H;else{if(((b[f+4>>1]&4)!=0?(F=+g[f+88>>2],!(F*F>.001218469929881394)):0)?(F=+g[f+80>>2],N=+g[f+84>>2],!(F*F+N*N>9.999999747378752e-005)):0){o=f+160|0;N=s+ +g[o>>2];g[o>>2]=N;Y=H>2]=0.0;Y=0.0}while(0);n=n+1|0;if((n|0)>=(l|0)){Z=Y;break}else H=Y}}else Z=34028234663852886.0e22;if(X|!(Z>=.5)|M^1){kk(r);i=m;return}M=d+8|0;d=0;do{X=c[(c[M>>2]|0)+(d<<2)>>2]|0;l=X+4|0;b[l>>1]=e[l>>1]&65533;g[X+160>>2]=0.0;l=X+80|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;d=d+1|0}while((d|0)<(c[t>>2]|0));kk(r);i=m;return}function Dg(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.0,A=0.0,B=0.0,C=0.0,D=0.0,E=0.0,F=0.0,G=0,H=0,I=0.0;f=i;i=i+128|0;h=f+104|0;j=f+56|0;l=f;m=a+28|0;if((c[m>>2]|0)>0){n=a+8|0;o=a+20|0;p=a+24|0;q=0;do{r=c[(c[n>>2]|0)+(q<<2)>>2]|0;s=r+60|0;t=c[s+4>>2]|0;u=(c[o>>2]|0)+(q*12|0)|0;c[u>>2]=c[s>>2];c[u+4>>2]=t;c[(c[o>>2]|0)+(q*12|0)+8>>2]=c[r+72>>2];t=r+80|0;u=c[t+4>>2]|0;s=(c[p>>2]|0)+(q*12|0)|0;c[s>>2]=c[t>>2];c[s+4>>2]=u;u=c[p>>2]|0;c[u+(q*12|0)+8>>2]=c[r+88>>2];q=q+1|0}while((q|0)<(c[m>>2]|0));v=u;w=p;x=o;y=v}else{v=a+24|0;w=v;x=a+20|0;y=c[v>>2]|0}v=a+12|0;c[j+28>>2]=c[v>>2];o=a+36|0;c[j+32>>2]=c[o>>2];c[j+44>>2]=c[a>>2];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];c[j+16>>2]=c[b+16>>2];c[j+20>>2]=c[b+20>>2];c[j+24>>2]=c[b+24>>2];c[j+36>>2]=c[x>>2];c[j+40>>2]=y;jk(l,j);j=b+16|0;if((c[j>>2]|0)>0){y=0;do{y=y+1|0;p=(qk(l,d,e)|0)^1}while((y|0)<(c[j>>2]|0)&p)}j=a+8|0;y=(c[x>>2]|0)+(d*12|0)|0;p=c[y+4>>2]|0;q=(c[(c[j>>2]|0)+(d<<2)>>2]|0)+52|0;c[q>>2]=c[y>>2];c[q+4>>2]=p;p=c[x>>2]|0;q=c[j>>2]|0;c[(c[q+(d<<2)>>2]|0)+68>>2]=c[p+(d*12|0)+8>>2];d=p+(e*12|0)|0;p=c[d+4>>2]|0;y=(c[q+(e<<2)>>2]|0)+52|0;c[y>>2]=c[d>>2];c[y+4>>2]=p;c[(c[(c[j>>2]|0)+(e<<2)>>2]|0)+68>>2]=c[(c[x>>2]|0)+(e*12|0)+8>>2];lk(l);e=b+12|0;if((c[e>>2]|0)>0){p=0;do{nk(l);p=p+1|0}while((p|0)<(c[e>>2]|0))}z=+g[b>>2];if((c[m>>2]|0)>0){b=0;do{e=c[x>>2]|0;p=e+(b*12|0)|0;y=e+(b*12|0)+4|0;d=c[w>>2]|0;q=c[d+(b*12|0)>>2]|0;n=c[d+(b*12|0)+4>>2]|0;A=+g[d+(b*12|0)+8>>2];B=(c[k>>2]=q,+g[k>>2]);C=z*B;D=(c[k>>2]=n,+g[k>>2]);E=z*D;F=C*C+E*E;if(F>4.0){E=2.0/+O(+F);d=(g[k>>2]=B*E,c[k>>2]|0);G=d;H=(g[k>>2]=D*E,c[k>>2]|0)}else{G=q;H=n}E=z*A;if(E*E>2.4674012660980225)I=A*(1.5707963705062866/(E>0.0?E:-E));else I=A;A=z*(c[k>>2]=G,+g[k>>2]);E=+g[p>>2]+A;A=+g[y>>2]+z*(c[k>>2]=H,+g[k>>2]);D=+g[e+(b*12|0)+8>>2]+z*I;g[p>>2]=E;g[y>>2]=A;g[(c[x>>2]|0)+(b*12|0)+8>>2]=D;y=c[w>>2]|0;c[y+(b*12|0)>>2]=G;c[y+(b*12|0)+4>>2]=H;g[(c[w>>2]|0)+(b*12|0)+8>>2]=I;y=c[(c[j>>2]|0)+(b<<2)>>2]|0;g[y+60>>2]=E;g[y+64>>2]=A;g[y+72>>2]=D;c[y+80>>2]=G;c[y+84>>2]=H;g[y+88>>2]=I;B=+R(+D);g[y+20>>2]=B;F=+Q(+D);g[y+24>>2]=F;D=+g[y+44>>2];C=+g[y+48>>2];g[y+12>>2]=E-(F*D-B*C);g[y+16>>2]=A-(B*D+F*C);b=b+1|0}while((b|0)<(c[m>>2]|0))}m=c[l+44>>2]|0;b=a+4|0;if(!(c[b>>2]|0)){kk(l);i=f;return}if((c[o>>2]|0)<=0){kk(l);i=f;return}a=h+16|0;H=0;do{G=c[(c[v>>2]|0)+(H<<2)>>2]|0;j=c[m+(H*156|0)+148>>2]|0;c[a>>2]=j;if((j|0)>0){w=0;do{c[h+(w<<2)>>2]=c[m+(H*156|0)+(w*36|0)+16>>2];c[h+8+(w<<2)>>2]=c[m+(H*156|0)+(w*36|0)+20>>2];w=w+1|0}while((w|0)!=(j|0))}j=c[b>>2]|0;mb[c[(c[j>>2]|0)+36>>2]&7](j,G,h);H=H+1|0}while((H|0)<(c[o>>2]|0));kk(l);i=f;return}function Eg(a,c,d){a=a|0;c=c|0;d=d|0;var e=0;a=b[c+36>>1]|0;if(!(a<<16>>16==0?1:a<<16>>16!=(b[d+36>>1]|0))){e=a<<16>>16>0;return e|0}if(!((b[d+32>>1]&b[c+34>>1])<<16>>16)){e=0;return e|0}e=(b[d+34>>1]&b[c+32>>1])<<16>>16!=0;return e|0}function Fg(a){a=a|0;return}function Gg(a){a=a|0;so(a);return}function Hg(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return 1}function Ig(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return 1}function Jg(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0.0,i=0.0,j=0.0,l=0.0;Oi(a,b);c[a>>2]=1120;d=b+20|0;e=c[d>>2]|0;f=c[d+4>>2]|0;d=a+76|0;c[d>>2]=e;c[d+4>>2]=f;d=c[a+52>>2]|0;h=(c[k>>2]=e,+g[k>>2])-+g[d+12>>2];i=(c[k>>2]=f,+g[k>>2])-+g[d+16>>2];j=+g[d+24>>2];l=+g[d+20>>2];g[a+68>>2]=h*j+i*l;g[a+72>>2]=j*i-h*l;c[a+104>>2]=c[b+28>>2];g[a+96>>2]=0.0;g[a+100>>2]=0.0;c[a+84>>2]=c[b+32>>2];c[a+88>>2]=c[b+36>>2];g[a+92>>2]=0.0;g[a+108>>2]=0.0;return}function Kg(a,d){a=a|0;d=d|0;var e=0,f=0,h=0,i=0;e=c[a+52>>2]|0;f=e+4|0;h=b[f>>1]|0;if((h&2)==0?(i=h&65535,(i&2|0)==0):0){b[f>>1]=i|2;g[e+160>>2]=0.0}e=d;d=c[e+4>>2]|0;i=a+76|0;c[i>>2]=c[e>>2];c[i+4>>2]=d;return}function Lg(a,b){a=a|0;b=+b;g[a+104>>2]=b;return}function Mg(a,b){a=a|0;b=+b;g[a+84>>2]=b;return}function Ng(a,b){a=a|0;b=+b;g[a+88>>2]=b;return}function Og(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.0,r=0.0,s=0.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,G=0,H=0.0,I=0,J=0,K=0,L=0,M=0,N=0,O=0;e=c[b+52>>2]|0;f=c[e+8>>2]|0;h=b+116|0;c[h>>2]=f;i=e+44|0;j=c[i>>2]|0;l=c[i+4>>2]|0;i=b+128|0;c[i>>2]=j;c[i+4>>2]=l;i=c[e+136>>2]|0;m=b+136|0;c[m>>2]=i;n=c[e+144>>2]|0;o=b+140|0;c[o>>2]=n;p=c[d+28>>2]|0;q=+g[p+(f*12|0)>>2];r=+g[p+(f*12|0)+4>>2];s=+g[p+(f*12|0)+8>>2];p=d+32|0;t=c[p>>2]|0;u=c[t+(f*12|0)>>2]|0;v=c[t+(f*12|0)+4>>2]|0;w=+g[t+(f*12|0)+8>>2];x=+R(+s);y=+Q(+s);s=+g[e+132>>2];z=+g[b+84>>2]*6.2831854820251465;A=+g[d>>2];B=A*(s*(z*z));C=A*(z*(s*2.0*+g[b+88>>2])+B);s=C!=0.0?1.0/C:C;g[b+108>>2]=s;C=B*s;g[b+92>>2]=C;B=+g[b+68>>2]-(c[k>>2]=j,+g[k>>2]);z=+g[b+72>>2]-(c[k>>2]=l,+g[k>>2]);A=y*B-x*z;D=x*B+y*z;g[b+120>>2]=A;g[b+124>>2]=D;z=(c[k>>2]=i,+g[k>>2]);y=(c[k>>2]=n,+g[k>>2]);B=s+(z+D*(y*D));x=y*A;y=D*x;E=s+(z+A*x);x=B*E-y*y;z=x!=0.0?1.0/x:x;x=y*z;g[b+144>>2]=E*z;g[b+148>>2]=x;g[b+152>>2]=x;g[b+156>>2]=B*z;z=r+D-+g[b+80>>2];g[b+160>>2]=C*(q+A-+g[b+76>>2]);g[b+164>>2]=C*z;z=w*.9800000190734863;n=b+96|0;if(!(a[d+24>>0]|0)){g[n>>2]=0.0;g[b+100>>2]=0.0;F=u;G=v;H=z;I=c[h>>2]|0;J=c[p>>2]|0;K=J+(I*12|0)|0;c[K>>2]=F;L=J+(I*12|0)+4|0;c[L>>2]=G;M=c[h>>2]|0;N=c[p>>2]|0;O=N+(M*12|0)+8|0;g[O>>2]=H;return}else{w=+g[d+8>>2];C=w*+g[n>>2];g[n>>2]=C;n=b+100|0;q=w*+g[n>>2];g[n>>2]=q;w=+g[m>>2];m=(g[k>>2]=(c[k>>2]=u,+g[k>>2])+w*C,c[k>>2]|0);F=m;G=(g[k>>2]=(c[k>>2]=v,+g[k>>2])+q*w,c[k>>2]|0);H=z+ +g[o>>2]*(q*A-C*D);I=c[h>>2]|0;J=c[p>>2]|0;K=J+(I*12|0)|0;c[K>>2]=F;L=J+(I*12|0)+4|0;c[L>>2]=G;M=c[h>>2]|0;N=c[p>>2]|0;O=N+(M*12|0)+8|0;g[O>>2]=H;return}}function Pg(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=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.0,u=0.0,v=0.0,w=0.0,x=0.0;d=a+116|0;e=c[d>>2]|0;f=b+32|0;h=c[f>>2]|0;i=h+(e*12|0)|0;j=+g[i>>2];k=h+(e*12|0)+4|0;l=+g[k>>2];m=+g[h+(e*12|0)+8>>2];n=+g[a+124>>2];o=+g[a+120>>2];p=+g[a+108>>2];e=a+96|0;q=+g[e>>2];h=a+100|0;r=+g[h>>2];s=-(j-m*n+ +g[a+160>>2]+p*q);t=-(l+m*o+ +g[a+164>>2]+p*r);p=+g[a+148>>2]*s+ +g[a+156>>2]*t;u=q+(+g[a+144>>2]*s+ +g[a+152>>2]*t);g[e>>2]=u;t=p+r;g[h>>2]=t;p=+g[b>>2]*+g[a+104>>2];s=t*t+u*u;if(s>p*p){v=p/+O(+s);s=u*v;g[e>>2]=s;p=v*t;g[h>>2]=p;w=s;x=p}else{w=u;x=t}t=w-q;q=x-r;r=+g[a+136>>2];x=m+ +g[a+140>>2]*(q*o-t*n);g[i>>2]=j+t*r;g[k>>2]=l+q*r;g[(c[f>>2]|0)+((c[d>>2]|0)*12|0)+8>>2]=x;return}function Qg(a,b){a=a|0;b=b|0;return 1}function Rg(a,b){a=a|0;b=b|0;var d=0,e=0;d=b+76|0;b=c[d+4>>2]|0;e=a;c[e>>2]=c[d>>2];c[e+4>>2]=b;return}function Sg(a,b){a=a|0;b=b|0;var d=0,e=0.0,f=0.0,h=0.0,i=0.0,j=0.0;d=c[b+52>>2]|0;e=+g[d+24>>2];f=+g[b+68>>2];h=+g[d+20>>2];i=+g[b+72>>2];j=f*h+e*i+ +g[d+16>>2];g[a>>2]=+g[d+12>>2]+(e*f-h*i);g[a+4>>2]=j;return}function Tg(a,b,c){a=a|0;b=b|0;c=+c;var d=0.0;d=+g[b+100>>2]*c;g[a>>2]=+g[b+96>>2]*c;g[a+4>>2]=d;return}function Ug(a,b){a=a|0;b=+b;return +(b*0.0)}function Vg(a,b){a=a|0;b=b|0;var c=0;c=a+76|0;g[c>>2]=+g[c>>2]-+g[b>>2];c=a+80|0;g[c>>2]=+g[c>>2]-+g[b+4>>2];return}function Wg(a){a=a|0;a=i;i=i+16|0;bo(3610,a);i=a;return}function Xg(a){a=a|0;return}function Yg(a){a=a|0;so(a);return}function Zg(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;c[a+8>>2]=b;c[a+12>>2]=d;e=+g[d+12>>2]-+g[b+12>>2];f=+g[d+16>>2]-+g[b+16>>2];h=+g[b+24>>2];i=+g[b+20>>2];g[a+20>>2]=e*h+f*i;g[a+24>>2]=h*f-e*i;g[a+28>>2]=+g[d+72>>2]-+g[b+72>>2];return}function _g(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;Oi(a,b);c[a>>2]=1172;d=b+20|0;e=c[d+4>>2]|0;f=a+68|0;c[f>>2]=c[d>>2];c[f+4>>2]=e;c[a+76>>2]=c[b+28>>2];g[a+80>>2]=0.0;g[a+84>>2]=0.0;g[a+88>>2]=0.0;c[a+92>>2]=c[b+32>>2];c[a+96>>2]=c[b+36>>2];c[a+100>>2]=c[b+40>>2];return}function $g(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.0,u=0.0,v=0.0,w=0,x=0,y=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.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,aa=0.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;e=c[b+48>>2]|0;f=c[e+8>>2]|0;h=b+104|0;c[h>>2]=f;i=c[b+52>>2]|0;j=c[i+8>>2]|0;l=b+108|0;c[l>>2]=j;m=e+44|0;n=c[m>>2]|0;o=c[m+4>>2]|0;m=b+128|0;c[m>>2]=n;c[m+4>>2]=o;m=i+44|0;p=c[m>>2]|0;q=c[m+4>>2]|0;m=b+136|0;c[m>>2]=p;c[m+4>>2]=q;m=c[e+136>>2]|0;c[b+156>>2]=m;r=c[i+136>>2]|0;c[b+160>>2]=r;s=c[e+144>>2]|0;c[b+164>>2]=s;e=c[i+144>>2]|0;c[b+168>>2]=e;i=c[d+28>>2]|0;t=+g[i+(f*12|0)>>2];u=+g[i+(f*12|0)+4>>2];v=+g[i+(f*12|0)+8>>2];w=d+32|0;x=c[w>>2]|0;y=c[x+(f*12|0)>>2]|0;z=c[x+(f*12|0)+4>>2]|0;A=+g[x+(f*12|0)+8>>2];B=+g[i+(j*12|0)>>2];C=+g[i+(j*12|0)+4>>2];D=+g[i+(j*12|0)+8>>2];i=c[x+(j*12|0)>>2]|0;f=c[x+(j*12|0)+4>>2]|0;E=+g[x+(j*12|0)+8>>2];F=+R(+v);G=+Q(+v);H=+R(+D);I=+Q(+D);J=-(c[k>>2]=n,+g[k>>2]);K=-(c[k>>2]=o,+g[k>>2]);L=G*J-F*K;M=F*J+G*K;o=b+112|0;g[o>>2]=L;g[b+116>>2]=M;K=-(c[k>>2]=p,+g[k>>2]);J=-(c[k>>2]=q,+g[k>>2]);N=I*K-H*J;O=H*K+I*J;g[b+120>>2]=N;g[b+124>>2]=O;J=(c[k>>2]=m,+g[k>>2]);I=(c[k>>2]=r,+g[k>>2]);K=(c[k>>2]=s,+g[k>>2]);H=(c[k>>2]=e,+g[k>>2]);P=J+I;S=P+M*(K*M)+O*(H*O);T=K*L;U=H*N;V=-(M*T)-O*U;W=P+L*T+N*U;U=S*W-V*V;T=U!=0.0?1.0/U:U;U=-(V*T);g[b+172>>2]=W*T;g[b+176>>2]=U;g[b+180>>2]=U;g[b+184>>2]=S*T;T=K+H;g[b+188>>2]=T>0.0?1.0/T:T;T=+g[b+68>>2];S=+g[b+72>>2];g[b+144>>2]=B+N-t-L-(G*T-F*S);g[b+148>>2]=C+O-u-M-(F*T+G*S);g[b+152>>2]=D-v-+g[b+76>>2];e=b+80|0;if(!(a[d+24>>0]|0)){g[e>>2]=0.0;g[b+84>>2]=0.0;g[b+88>>2]=0.0;X=y;Y=z;Z=i;_=f;$=A;aa=E;ba=c[h>>2]|0;ca=c[w>>2]|0;da=ca+(ba*12|0)|0;c[da>>2]=X;ea=ca+(ba*12|0)+4|0;c[ea>>2]=Y;fa=c[h>>2]|0;ga=c[w>>2]|0;ha=ga+(fa*12|0)+8|0;g[ha>>2]=$;ia=c[l>>2]|0;ja=ga+(ia*12|0)|0;c[ja>>2]=Z;ka=ga+(ia*12|0)+4|0;c[ka>>2]=_;la=c[l>>2]|0;ma=c[w>>2]|0;na=ma+(la*12|0)+8|0;g[na>>2]=aa;return}else{v=+g[d+8>>2];D=v*+g[e>>2];g[e>>2]=D;e=b+84|0;S=v*+g[e>>2];g[e>>2]=S;e=b+88|0;G=v*+g[e>>2];g[e>>2]=G;e=(g[k>>2]=(c[k>>2]=y,+g[k>>2])-J*D,c[k>>2]|0);y=(g[k>>2]=(c[k>>2]=z,+g[k>>2])-J*S,c[k>>2]|0);z=(g[k>>2]=(c[k>>2]=i,+g[k>>2])+I*D,c[k>>2]|0);X=e;Y=y;Z=z;_=(g[k>>2]=(c[k>>2]=f,+g[k>>2])+I*S,c[k>>2]|0);$=A-K*(G+(S*+g[o>>2]-D*M));aa=E+H*(G+(S*N-D*O));ba=c[h>>2]|0;ca=c[w>>2]|0;da=ca+(ba*12|0)|0;c[da>>2]=X;ea=ca+(ba*12|0)+4|0;c[ea>>2]=Y;fa=c[h>>2]|0;ga=c[w>>2]|0;ha=ga+(fa*12|0)+8|0;g[ha>>2]=$;ia=c[l>>2]|0;ja=ga+(ia*12|0)|0;c[ja>>2]=Z;ka=ga+(ia*12|0)+4|0;c[ka>>2]=_;la=c[l>>2]|0;ma=c[w>>2]|0;na=ma+(la*12|0)+8|0;g[na>>2]=aa;return}}function ah(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,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;d=a+104|0;e=c[d>>2]|0;f=b+32|0;h=c[f>>2]|0;i=+g[h+(e*12|0)>>2];j=+g[h+(e*12|0)+4>>2];k=+g[h+(e*12|0)+8>>2];e=a+108|0;l=c[e>>2]|0;m=+g[h+(l*12|0)>>2];n=+g[h+(l*12|0)+4>>2];o=+g[h+(l*12|0)+8>>2];p=+g[a+156>>2];q=+g[a+160>>2];r=+g[a+164>>2];s=+g[a+168>>2];t=+g[b>>2];u=+g[b+4>>2]*+g[a+100>>2];b=a+88|0;v=+g[b>>2];w=t*+g[a+96>>2];x=v-+g[a+188>>2]*(o-k+u*+g[a+152>>2]);y=-w;z=x>2]=w;z=w-v;v=k-r*z;k=o+s*z;z=+g[a+124>>2];o=+g[a+120>>2];w=+g[a+116>>2];y=+g[a+112>>2];x=+g[a+144>>2]*u+(w*v+(m-z*k-i));A=u*+g[a+148>>2]+(n+o*k-j-y*v);u=+g[a+176>>2]*x+ +g[a+184>>2]*A;b=a+80|0;B=+g[b>>2];l=a+84|0;C=+g[l>>2];D=B-(+g[a+172>>2]*x+ +g[a+180>>2]*A);g[b>>2]=D;A=C-u;g[l>>2]=A;u=t*+g[a+92>>2];t=D*D+A*A;if(t>u*u){x=+O(+t);if(x<1.1920928955078125e-007){E=D;F=A}else{t=1.0/x;x=D*t;g[b>>2]=x;G=A*t;g[l>>2]=G;E=x;F=G}G=u*E;g[b>>2]=G;E=u*F;g[l>>2]=E;H=G;I=E}else{H=D;I=A}A=H-B;B=I-C;l=c[d>>2]|0;b=c[f>>2]|0;g[b+(l*12|0)>>2]=i-p*A;g[b+(l*12|0)+4>>2]=j-p*B;l=c[f>>2]|0;g[l+((c[d>>2]|0)*12|0)+8>>2]=v-r*(y*B-A*w);d=c[e>>2]|0;g[l+(d*12|0)>>2]=m+q*A;g[l+(d*12|0)+4>>2]=n+q*B;g[(c[f>>2]|0)+((c[e>>2]|0)*12|0)+8>>2]=k+s*(B*o-A*z);return}function bh(a,b){a=a|0;b=b|0;return 1}function ch(a,b){a=a|0;b=b|0;var d=0,e=0;d=(c[b+48>>2]|0)+12|0;b=c[d+4>>2]|0;e=a;c[e>>2]=c[d>>2];c[e+4>>2]=b;return}function dh(a,b){a=a|0;b=b|0;var d=0,e=0;d=(c[b+52>>2]|0)+12|0;b=c[d+4>>2]|0;e=a;c[e>>2]=c[d>>2];c[e+4>>2]=b;return}function eh(a,b,c){a=a|0;b=b|0;c=+c;var d=0.0;d=+g[b+84>>2]*c;g[a>>2]=+g[b+80>>2]*c;g[a+4>>2]=d;return}function fh(a,b){a=a|0;b=+b;return +(+g[a+88>>2]*b)}function gh(a,b){a=a|0;b=+b;g[a+92>>2]=b;return}function hh(a,b){a=a|0;b=+b;g[a+96>>2]=b;return}function ih(a,b){a=a|0;b=+b;g[a+100>>2]=b;return}function jh(a,d){a=a|0;d=d|0;var f=0,h=0,i=0,j=0;f=a+68|0;if(!(+g[d>>2]!=+g[f>>2])?!(+g[d+4>>2]!=+g[a+72>>2]):0)return;h=c[a+48>>2]|0;i=h+4|0;j=e[i>>1]|0;if(!(j&2)){b[i>>1]=j|2;g[h+160>>2]=0.0}h=c[a+52>>2]|0;a=h+4|0;j=e[a>>1]|0;if(!(j&2)){b[a>>1]=j|2;g[h+160>>2]=0.0}h=d;d=c[h+4>>2]|0;j=f;c[j>>2]=c[h>>2];c[j+4>>2]=d;return}function kh(a,d){a=a|0;d=+d;var f=0,h=0,i=0,j=0;f=a+76|0;if(!(+g[f>>2]!=d))return;h=c[a+48>>2]|0;i=h+4|0;j=e[i>>1]|0;if(!(j&2)){b[i>>1]=j|2;g[h+160>>2]=0.0}h=c[a+52>>2]|0;a=h+4|0;j=e[a>>1]|0;if(!(j&2)){b[a>>1]=j|2;g[h+160>>2]=0.0}g[f>>2]=d;return}function lh(a){a=a|0;var b=0,e=0,f=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0.0;b=i;i=i+96|0;e=b+80|0;f=b+72|0;j=b+64|0;k=b+56|0;l=b+48|0;m=b+32|0;n=b+24|0;o=b+16|0;p=b+8|0;q=c[(c[a+48>>2]|0)+8>>2]|0;r=c[(c[a+52>>2]|0)+8>>2]|0;bo(3664,b);c[p>>2]=q;bo(4769,p);c[o>>2]=r;bo(4795,o);c[n>>2]=d[a+61>>0];bo(4821,n);s=+g[a+72>>2];h[m>>3]=+g[a+68>>2];h[m+8>>3]=s;bo(3687,m);h[l>>3]=+g[a+76>>2];bo(3729,l);h[k>>3]=+g[a+92>>2];bo(3906,k);h[j>>3]=+g[a+96>>2];bo(3932,j);h[f>>3]=+g[a+100>>2];bo(3760,f);c[e>>2]=c[a+56>>2];bo(5099,e);i=b;return}function mh(a,b){a=a|0;b=b|0;return}function nh(a){a=a|0;so(a);return}function oh(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var h=0.0,i=0,j=0.0,k=0.0,l=0.0;c[a+8>>2]=b;c[a+12>>2]=d;h=+g[e>>2]-+g[b+12>>2];i=e+4|0;j=+g[i>>2]-+g[b+16>>2];k=+g[b+24>>2];l=+g[b+20>>2];g[a+20>>2]=h*k+j*l;g[a+24>>2]=k*j-h*l;l=+g[f>>2]-+g[d+12>>2];b=f+4|0;h=+g[b>>2]-+g[d+16>>2];j=+g[d+24>>2];k=+g[d+20>>2];g[a+28>>2]=l*j+h*k;g[a+32>>2]=j*h-l*k;k=+g[f>>2]-+g[e>>2];l=+g[b>>2]-+g[i>>2];g[a+36>>2]=+O(+(k*k+l*l));return} +function Zk(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,O=0,P=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0.0,$=0,aa=0,ba=0,ca=0,da=0,ea=0.0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0.0,na=0.0,oa=0.0,pa=0,qa=0.0,ra=0,sa=0.0,ta=0.0,ua=0.0,va=0,wa=0,xa=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,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;h=i;i=i+304|0;j=h+252|0;l=h+120|0;m=h+112|0;n=h+76|0;o=h+32|0;p=h+40|0;q=h;r=d+102880|0;s=d+102952|0;Ag(j,64,32,0,d+76|0,c[s>>2]|0);t=d+103007|0;if(a[t>>0]|0){u=c[d+102960>>2]|0;if(u){v=u;do{u=v+4|0;b[u>>1]=e[u>>1]&65534;g[v+76>>2]=0.0;v=c[v+112>>2]|0}while((v|0)!=0)}v=d+102940|0;u=c[v>>2]|0;if(!u)w=v;else{x=u;do{u=x+4|0;c[u>>2]=c[u>>2]&-34;c[x+128>>2]=0;g[x+132>>2]=1.0;x=c[x+12>>2]|0}while((x|0)!=0);w=v}}else w=d+102940|0;v=j+28|0;x=j+36|0;u=j+32|0;y=j+8|0;z=j+12|0;A=o+4|0;B=j+40|0;C=j+44|0;D=q+4|0;E=q+8|0;F=q+16|0;G=f+12|0;H=q+12|0;I=f+20|0;J=q+20|0;K=q+24|0;L=d+103006|0;d=l+16|0;M=l+20|0;N=l+24|0;O=l+44|0;P=l+48|0;S=l+52|0;T=l+28|0;U=l+56|0;V=l+92|0;W=l+128|0;X=m+4|0;Y=c[w>>2]|0;a:do if(Y){Z=Y;_=1.0;$=0;while(1){aa=Z+4|0;ba=c[aa>>2]|0;do if((ba&4|0)!=0?(c[Z+128>>2]|0)<=8:0){if(!(ba&32)){ca=c[Z+48>>2]|0;da=c[Z+52>>2]|0;if(a[ca+38>>0]|0){ea=_;fa=$;break}if(a[da+38>>0]|0){ea=_;fa=$;break}ga=c[ca+8>>2]|0;ha=c[da+8>>2]|0;ia=c[ga>>2]|0;ja=c[ha>>2]|0;ka=b[ga+4>>1]|0;la=b[ha+4>>1]|0;if(!((ia|0)!=0&(ka&2)!=0|(ja|0)!=0&(la&2)!=0)){ea=_;fa=$;break}if(!((ia|0)!=2|(ka&8)!=0|((ja|0)!=2|(la&8)!=0))){ea=_;fa=$;break}la=ga+44|0;ja=ga+76|0;ma=+g[ja>>2];ka=ha+44|0;ia=ha+76|0;na=+g[ia>>2];if(!(ma>2];ra=ha+56|0;sa=+g[ra>>2];ta=oa*(+g[ha+64>>2]-sa);g[pa>>2]=qa+oa*(+g[ha+60>>2]-qa);g[ra>>2]=sa+ta;ra=ha+68|0;ta=+g[ra>>2];g[ra>>2]=ta+oa*(+g[ha+72>>2]-ta);g[ia>>2]=ma;ua=ma}else ua=ma;else{ta=(na-ma)/(1.0-ma);ia=ga+52|0;ma=+g[ia>>2];ha=ga+56|0;oa=+g[ha>>2];sa=ta*(+g[ga+64>>2]-oa);g[ia>>2]=ma+ta*(+g[ga+60>>2]-ma);g[ha>>2]=oa+sa;ha=ga+68|0;sa=+g[ha>>2];g[ha>>2]=sa+ta*(+g[ga+72>>2]-sa);g[ja>>2]=na;ua=na}ja=c[Z+56>>2]|0;ga=c[Z+60>>2]|0;c[d>>2]=0;c[M>>2]=0;g[N>>2]=0.0;c[O>>2]=0;c[P>>2]=0;g[S>>2]=0.0;mf(l,c[ca+12>>2]|0,ja);mf(T,c[da+12>>2]|0,ga);va=U;wa=la;xa=va+36|0;do{c[va>>2]=c[wa>>2];va=va+4|0;wa=wa+4|0}while((va|0)<(xa|0));va=V;wa=ka;xa=va+36|0;do{c[va>>2]=c[wa>>2];va=va+4|0;wa=wa+4|0}while((va|0)<(xa|0));g[W>>2]=1.0;hf(m,l);if((c[m>>2]|0)==3){na=ua+(1.0-ua)*+g[X>>2];ya=na<1.0?na:1.0}else ya=1.0;g[Z+132>>2]=ya;c[aa>>2]=c[aa>>2]|32;za=ya}else za=+g[Z+132>>2];if(za<_){ea=za;fa=Z}else{ea=_;fa=$}}else{ea=_;fa=$}while(0);aa=c[Z+12>>2]|0;if(aa){Z=aa;_=ea;$=fa;continue}if(ea>.9999988079071045|(fa|0)==0)break a;aa=c[(c[fa+48>>2]|0)+8>>2]|0;ba=c[(c[fa+52>>2]|0)+8>>2]|0;ka=aa+44|0;va=l;wa=ka;xa=va+36|0;do{c[va>>2]=c[wa>>2];va=va+4|0;wa=wa+4|0}while((va|0)<(xa|0));la=ba+44|0;va=n;wa=la;xa=va+36|0;do{c[va>>2]=c[wa>>2];va=va+4|0;wa=wa+4|0}while((va|0)<(xa|0));ga=aa+76|0;na=+g[ga>>2];sa=(ea-na)/(1.0-na);da=aa+60|0;ja=aa+52|0;na=+g[ja>>2];ca=aa+64|0;ha=aa+56|0;ta=+g[ha>>2];oa=sa*(+g[ca>>2]-ta);g[ja>>2]=na+sa*(+g[da>>2]-na);g[ha>>2]=ta+oa;ha=aa+72|0;ja=aa+68|0;oa=+g[ja>>2];ta=oa+sa*(+g[ha>>2]-oa);g[ja>>2]=ta;g[ga>>2]=ea;ga=aa+52|0;ja=c[ga>>2]|0;ia=c[ga+4>>2]|0;ga=aa+60|0;c[ga>>2]=ja;c[ga+4>>2]=ia;g[ha>>2]=ta;oa=+R(+ta);ga=aa+20|0;g[ga>>2]=oa;sa=+Q(+ta);ra=aa+24|0;g[ra>>2]=sa;pa=aa+44|0;ta=+g[pa>>2];Aa=aa+48|0;na=+g[Aa>>2];ma=(c[k>>2]=ja,+g[k>>2])-(sa*ta-oa*na);qa=(c[k>>2]=ia,+g[k>>2])-(oa*ta+sa*na);ia=aa+12|0;g[ia>>2]=ma;ja=aa+16|0;g[ja>>2]=qa;Ba=ba+76|0;qa=+g[Ba>>2];ma=(ea-qa)/(1.0-qa);Ca=ba+60|0;Da=ba+52|0;qa=+g[Da>>2];Ea=ba+64|0;Fa=ba+56|0;na=+g[Fa>>2];sa=ma*(+g[Ea>>2]-na);g[Da>>2]=qa+ma*(+g[Ca>>2]-qa);g[Fa>>2]=na+sa;Fa=ba+72|0;Da=ba+68|0;sa=+g[Da>>2];na=sa+ma*(+g[Fa>>2]-sa);g[Da>>2]=na;g[Ba>>2]=ea;Ba=ba+52|0;Da=c[Ba>>2]|0;Ga=c[Ba+4>>2]|0;Ba=ba+60|0;c[Ba>>2]=Da;c[Ba+4>>2]=Ga;g[Fa>>2]=na;sa=+R(+na);Ba=ba+20|0;g[Ba>>2]=sa;ma=+Q(+na);Ha=ba+24|0;g[Ha>>2]=ma;Ia=ba+44|0;na=+g[Ia>>2];Ja=ba+48|0;qa=+g[Ja>>2];ta=(c[k>>2]=Da,+g[k>>2])-(ma*na-sa*qa);oa=(c[k>>2]=Ga,+g[k>>2])-(sa*na+ma*qa);Ga=ba+12|0;g[Ga>>2]=ta;Da=ba+16|0;g[Da>>2]=oa;$j(fa,c[s>>2]|0);Ka=fa+4|0;La=c[Ka>>2]|0;Ma=La&-33;c[Ka>>2]=Ma;Na=fa+128|0;c[Na>>2]=(c[Na>>2]|0)+1;if((La&6|0)==6){Na=aa+4|0;Oa=b[Na>>1]|0;Pa=Oa&65535;if(!(Pa&2)){Qa=(Pa|2)&65535;b[Na>>1]=Qa;g[aa+160>>2]=0.0;Ra=Qa}else Ra=Oa;Oa=ba+4|0;Qa=e[Oa>>1]|0;if(!(Qa&2)){b[Oa>>1]=Qa|2;g[ba+160>>2]=0.0;Sa=b[Na>>1]|0}else Sa=Ra;c[u>>2]=0;Qa=aa+8|0;c[Qa>>2]=0;c[c[y>>2]>>2]=aa;Pa=ba+8|0;c[Pa>>2]=1;c[(c[y>>2]|0)+4>>2]=ba;c[v>>2]=2;c[x>>2]=1;c[c[z>>2]>>2]=fa;b[Na>>1]=Sa&65535|1;b[Oa>>1]=e[Oa>>1]|1;c[Ka>>2]=Ma|1;c[o>>2]=aa;c[A>>2]=ba;Ma=aa;Oa=0;while(1){b:do if((c[Ma>>2]|0)==2?(Na=c[Ma+128>>2]|0,(Na|0)!=0):0){Ta=Ma+4|0;Ua=Na;do{if((c[v>>2]|0)==(c[B>>2]|0))break b;if((c[x>>2]|0)==(c[C>>2]|0))break b;Na=c[Ua+4>>2]|0;Va=Na+4|0;c:do if(!(c[Va>>2]&1)){Wa=c[Ua>>2]|0;do if((c[Wa>>2]|0)==2){if(b[Ta>>1]&8)break;if(!(b[Wa+4>>1]&8))break c}while(0);if(a[(c[Na+48>>2]|0)+38>>0]|0)break;if(a[(c[Na+52>>2]|0)+38>>0]|0)break;Xa=Wa+44|0;va=p;wa=Xa;xa=va+36|0;do{c[va>>2]=c[wa>>2];va=va+4|0;wa=wa+4|0}while((va|0)<(xa|0));Ya=Wa+4|0;if(!(b[Ya>>1]&1)){Za=Wa+76|0;oa=+g[Za>>2];ta=(ea-oa)/(1.0-oa);_a=Wa+52|0;oa=+g[_a>>2];$a=Wa+56|0;qa=+g[$a>>2];ma=ta*(+g[Wa+64>>2]-qa);g[_a>>2]=oa+ta*(+g[Wa+60>>2]-oa);g[$a>>2]=qa+ma;$a=Wa+72|0;_a=Wa+68|0;ma=+g[_a>>2];qa=ma+ta*(+g[$a>>2]-ma);g[_a>>2]=qa;g[Za>>2]=ea;Za=Wa+52|0;_a=c[Za>>2]|0;ab=c[Za+4>>2]|0;Za=Wa+60|0;c[Za>>2]=_a;c[Za+4>>2]=ab;g[$a>>2]=qa;ma=+R(+qa);g[Wa+20>>2]=ma;ta=+Q(+qa);g[Wa+24>>2]=ta;qa=+g[Wa+44>>2];oa=+g[Wa+48>>2];na=(c[k>>2]=_a,+g[k>>2])-(ta*qa-ma*oa);sa=(c[k>>2]=ab,+g[k>>2])-(ma*qa+ta*oa);g[Wa+12>>2]=na;g[Wa+16>>2]=sa}$j(Na,c[s>>2]|0);ab=c[Va>>2]|0;do if(!(ab&4)){va=Xa;wa=p;xa=va+36|0;do{c[va>>2]=c[wa>>2];va=va+4|0;wa=wa+4|0}while((va|0)<(xa|0));sa=+g[Wa+72>>2];na=+R(+sa);g[Wa+20>>2]=na;oa=+Q(+sa);g[Wa+24>>2]=oa;sa=+g[Wa+44>>2];ta=+g[Wa+48>>2];qa=+g[Wa+64>>2]-(na*sa+oa*ta);g[Wa+12>>2]=+g[Wa+60>>2]-(oa*sa-na*ta);g[Wa+16>>2]=qa}else{if(!(ab&2)){va=Xa;wa=p;xa=va+36|0;do{c[va>>2]=c[wa>>2];va=va+4|0;wa=wa+4|0}while((va|0)<(xa|0));qa=+g[Wa+72>>2];ta=+R(+qa);g[Wa+20>>2]=ta;na=+Q(+qa);g[Wa+24>>2]=na;qa=+g[Wa+44>>2];sa=+g[Wa+48>>2];oa=+g[Wa+64>>2]-(ta*qa+na*sa);g[Wa+12>>2]=+g[Wa+60>>2]-(na*qa-ta*sa);g[Wa+16>>2]=oa;break}c[Va>>2]=ab|1;_a=c[x>>2]|0;c[x>>2]=_a+1;c[(c[z>>2]|0)+(_a<<2)>>2]=Na;_a=e[Ya>>1]|0;if(_a&1)break;b[Ya>>1]=_a|1;if((_a&2|0)==0&(c[Wa>>2]|0)!=0){b[Ya>>1]=_a|3;g[Wa+160>>2]=0.0}_a=c[v>>2]|0;c[Wa+8>>2]=_a;c[(c[y>>2]|0)+(_a<<2)>>2]=Wa;c[v>>2]=_a+1}while(0)}while(0);Ua=c[Ua+12>>2]|0}while((Ua|0)!=0)}while(0);Ua=Oa+1|0;if((Ua|0)>=2)break;Ma=c[o+(Ua<<2)>>2]|0;Oa=Ua}oa=(1.0-ea)*+g[f>>2];g[q>>2]=oa;g[D>>2]=1.0/oa;g[E>>2]=1.0;c[F>>2]=20;c[H>>2]=c[G>>2];c[J>>2]=c[I>>2];a[K>>0]=0;Dg(j,q,c[Qa>>2]|0,c[Pa>>2]|0);Oa=c[v>>2]|0;if((Oa|0)>0){Ma=Oa;Oa=0;while(1){aa=c[(c[y>>2]|0)+(Oa<<2)>>2]|0;ba=aa+4|0;b[ba>>1]=e[ba>>1]&65534;if((c[aa>>2]|0)==2){hl(aa);ba=c[aa+128>>2]|0;if(ba){aa=ba;do{ba=(c[aa+4>>2]|0)+4|0;c[ba>>2]=c[ba>>2]&-34;aa=c[aa+12>>2]|0}while((aa|0)!=0)}bb=c[v>>2]|0}else bb=Ma;Oa=Oa+1|0;if((Oa|0)>=(bb|0))break;else Ma=bb}}sl(r);if(a[L>>0]|0)break}else{c[Ka>>2]=La&-37;va=ka;wa=l;xa=va+36|0;do{c[va>>2]=c[wa>>2];va=va+4|0;wa=wa+4|0}while((va|0)<(xa|0));va=la;wa=n;xa=va+36|0;do{c[va>>2]=c[wa>>2];va=va+4|0;wa=wa+4|0}while((va|0)<(xa|0));oa=+g[ha>>2];sa=+R(+oa);g[ga>>2]=sa;ta=+Q(+oa);g[ra>>2]=ta;oa=+g[pa>>2];qa=+g[Aa>>2];na=+g[ca>>2]-(sa*oa+ta*qa);g[ia>>2]=+g[da>>2]-(ta*oa-sa*qa);g[ja>>2]=na;na=+g[Fa>>2];qa=+R(+na);g[Ba>>2]=qa;sa=+Q(+na);g[Ha>>2]=sa;na=+g[Ia>>2];oa=+g[Ja>>2];ta=+g[Ea>>2]-(qa*na+sa*oa);g[Ga>>2]=+g[Ca>>2]-(sa*na-qa*oa);g[Da>>2]=ta}Z=c[w>>2]|0;if(!Z)break a;else{_=1.0;$=0}}a[t>>0]=0;Bg(j);i=h;return}while(0);a[t>>0]=1;Bg(j);i=h;return}function _k(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,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,x=0;j=i;i=i+64|0;k=j+24|0;l=j+32|0;m=j+16|0;n=j+8|0;o=j;Yn(k);p=b+102876|0;q=c[p>>2]|0;if(!(q&1))r=q;else{sl(b+102880|0);q=c[p>>2]&-2;c[p>>2]=q;r=q}c[p>>2]=r|2;g[l>>2]=d;c[l+12>>2]=e;c[l+16>>2]=f;c[l+20>>2]=h;h=d>0.0;f=l+4|0;g[f>>2]=h?1.0/d:0.0;e=b+103e3|0;g[l+8>>2]=+g[e>>2]*d;a[l+24>>0]=a[b+103004>>0]|0;Yn(m);rl(b+102880|0);g[b+103012>>2]=+_n(m);if((a[b+103007>>0]|0)!=0&h){Yn(n);h=c[b+102968>>2]|0;if(h){m=h;do{tm(m,l);m=c[m+408>>2]|0}while((m|0)!=0)}Yk(b,l);g[b+103016>>2]=+_n(n);s=+g[l>>2]}else s=d;if((a[b+103005>>0]|0)!=0&s>0.0){Yn(o);Zk(b,l);g[b+103036>>2]=+_n(o);t=+g[l>>2]}else t=s;if(t>0.0)c[e>>2]=c[f>>2];f=c[p>>2]|0;if(!(f&4)){u=f&-3;c[p>>2]=u;v=+_n(k);w=b+103008|0;g[w>>2]=v;i=j;return}e=c[b+102960>>2]|0;if(!e){u=f&-3;c[p>>2]=u;v=+_n(k);w=b+103008|0;g[w>>2]=v;i=j;return}else x=e;do{g[x+92>>2]=0.0;g[x+96>>2]=0.0;g[x+100>>2]=0.0;x=c[x+112>>2]|0}while((x|0)!=0);u=f&-3;c[p>>2]=u;v=+_n(k);w=b+103008|0;g[w>>2]=v;i=j;return}function $k(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;g=a+102880|0;c[f>>2]=g;c[f+4>>2]=b;bl(g,f,d);f=c[a+102968>>2]|0;if(!f){i=e;return}a=f;do{if(rb[c[(c[b>>2]|0)+16>>2]&31](b,a)|0)Im(a,b,d);a=c[a+408>>2]|0}while((a|0)!=0);i=e;return}function al(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;f=i;i=i+32|0;h=f+24|0;j=f;k=a+102880|0;c[h>>2]=k;c[h+4>>2]=b;g[j+16>>2]=1.0;l=d;m=c[l+4>>2]|0;n=j;c[n>>2]=c[l>>2];c[n+4>>2]=m;m=e;n=c[m+4>>2]|0;l=j+8|0;c[l>>2]=c[m>>2];c[l+4>>2]=n;cl(k,h,j);j=c[a+102968>>2]|0;if(!j){i=f;return}a=j;do{if(rb[c[(c[b>>2]|0)+16>>2]&31](b,a)|0)Jm(a,b,d,e);a=c[a+408>>2]|0}while((a|0)!=0);i=f;return}function bl(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,y=0,z=0,A=0;e=i;i=i+1040|0;f=e;h=f+4|0;c[f>>2]=h;j=f+1028|0;c[j>>2]=0;k=f+1032|0;c[k>>2]=256;c[h>>2]=c[a>>2];l=c[j>>2]|0;m=l+1|0;c[j>>2]=m;a:do if((l|0)>-1){n=a+4|0;o=d+4|0;p=d+8|0;q=d+12|0;r=b+4|0;s=m;while(1){t=s+-1|0;c[j>>2]=t;u=c[f>>2]|0;v=c[u+(t<<2)>>2]|0;do if((v|0)!=-1?(w=c[n>>2]|0,!((+g[d>>2]-+g[w+(v*36|0)+8>>2]>0.0?1:+g[o>>2]-+g[w+(v*36|0)+12>>2]>0.0)|+g[w+(v*36|0)>>2]-+g[p>>2]>0.0|+g[w+(v*36|0)+4>>2]-+g[q>>2]>0.0)):0){x=w+(v*36|0)+24|0;if((c[x>>2]|0)==-1){y=c[r>>2]|0;if(!(rb[c[(c[y>>2]|0)+8>>2]&31](y,c[(c[(c[(c[b>>2]|0)+4>>2]|0)+(v*36|0)+16>>2]|0)+16>>2]|0)|0))break a;z=c[j>>2]|0;break}if((t|0)==(c[k>>2]|0)?(c[k>>2]=t<<1,y=$n(t<<3)|0,c[f>>2]=y,Bp(y|0,u|0,c[j>>2]<<2|0)|0,(u|0)!=(h|0)):0)ao(u);y=c[f>>2]|0;c[y+(c[j>>2]<<2)>>2]=c[x>>2];x=(c[j>>2]|0)+1|0;c[j>>2]=x;A=w+(v*36|0)+28|0;if((x|0)==(c[k>>2]|0)?(c[k>>2]=x<<1,w=$n(x<<3)|0,c[f>>2]=w,Bp(w|0,y|0,c[j>>2]<<2|0)|0,(y|0)!=(h|0)):0)ao(y);c[(c[f>>2]|0)+(c[j>>2]<<2)>>2]=c[A>>2];A=(c[j>>2]|0)+1|0;c[j>>2]=A;z=A}else z=t;while(0);if((z|0)>0)s=z;else break}}while(0);z=c[f>>2]|0;if((z|0)==(h|0)){i=e;return}ao(z);c[f>>2]=0;i=e;return}function cl(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.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.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.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.0,ea=0.0,fa=0.0,ga=0.0,ha=0,ia=0,ja=0,ka=0,la=0.0,ma=0.0,na=0,oa=0,pa=0,qa=0,ra=0.0;e=i;i=i+1088|0;f=e+1064|0;h=e+1056|0;j=e+20|0;l=e;m=+g[d>>2];n=+g[d+4>>2];o=d+8|0;p=+g[o>>2]-m;q=+g[d+12>>2]-n;r=+O(+(p*p+q*q));if(r<1.1920928955078125e-007){s=q;t=p}else{u=1.0/r;s=q*u;t=p*u}u=-s;r=s<-0.0?u:s;s=t>0.0?t:-t;v=+g[d+16>>2];w=m+p*v;x=n+q*v;y=j+4|0;c[j>>2]=y;z=j+1028|0;c[z>>2]=0;A=j+1032|0;c[A>>2]=256;c[y>>2]=c[a>>2];B=c[z>>2]|0;C=B+1|0;c[z>>2]=C;a:do if((B|0)>-1){D=(g[k>>2]=n>x?n:x,c[k>>2]|0);E=(g[k>>2]=m>w?m:w,c[k>>2]|0);F=(g[k>>2]=n>2]|0);G=a+4|0;H=l+8|0;I=l+16|0;J=f+8|0;K=l+4|0;L=l+8|0;M=l+12|0;N=h+4|0;P=b+4|0;Q=C;R=D;D=E;E=F;F=(g[k>>2]=m>2]|0);S=y;T=v;while(1){U=(c[k>>2]=F,+g[k>>2]);V=(c[k>>2]=E,+g[k>>2]);W=(c[k>>2]=D,+g[k>>2]);X=(c[k>>2]=R,+g[k>>2]);Y=Q;Z=S;while(1){_=Y+-1|0;c[z>>2]=_;$=c[Z+(_<<2)>>2]|0;if(($|0)==-1){aa=_;ba=Z}else{ca=c[G>>2]|0;da=+g[ca+($*36|0)+8>>2];ea=+g[ca+($*36|0)+12>>2];fa=+g[ca+($*36|0)>>2];ga=+g[ca+($*36|0)+4>>2];if(U-da>0.0|V-ea>0.0|fa-W>0.0|ga-X>0.0){ha=R;ia=D;ja=E;ka=F;la=T;break}ma=(m-(da+fa)*.5)*u+t*(n-(ea+ga)*.5);if((ma>0.0?ma:-ma)-(r*((da-fa)*.5)+s*((ea-ga)*.5))>0.0){ha=R;ia=D;ja=E;ka=F;la=T;break}na=ca+($*36|0)+24|0;if((c[na>>2]|0)==-1){oa=$;pa=13;break}if((_|0)==(c[A>>2]|0)?(c[A>>2]=_<<1,qa=$n(_<<3)|0,c[j>>2]=qa,Bp(qa|0,Z|0,c[z>>2]<<2|0)|0,(Z|0)!=(y|0)):0)ao(Z);qa=c[j>>2]|0;c[qa+(c[z>>2]<<2)>>2]=c[na>>2];na=(c[z>>2]|0)+1|0;c[z>>2]=na;_=ca+($*36|0)+28|0;if((na|0)==(c[A>>2]|0)?(c[A>>2]=na<<1,$=$n(na<<3)|0,c[j>>2]=$,Bp($|0,qa|0,c[z>>2]<<2|0)|0,(qa|0)!=(y|0)):0)ao(qa);qa=c[j>>2]|0;c[qa+(c[z>>2]<<2)>>2]=c[_>>2];_=(c[z>>2]|0)+1|0;c[z>>2]=_;aa=_;ba=qa}if((aa|0)>0){Y=aa;Z=ba}else break a}if((pa|0)==13){pa=0;Z=d;Y=c[Z+4>>2]|0;qa=l;c[qa>>2]=c[Z>>2];c[qa+4>>2]=Y;Y=o;qa=c[Y+4>>2]|0;Z=H;c[Z>>2]=c[Y>>2];c[Z+4>>2]=qa;g[I>>2]=T;qa=c[(c[(c[b>>2]|0)+4>>2]|0)+(oa*36|0)+16>>2]|0;Z=c[qa+16>>2]|0;Y=c[Z+12>>2]|0;if(sb[c[(c[Y>>2]|0)+24>>2]&15](Y,f,l,(c[Z+8>>2]|0)+12|0,c[qa+20>>2]|0)|0){X=+g[J>>2];W=1.0-X;V=W*+g[K>>2]+X*+g[M>>2];g[h>>2]=+g[l>>2]*W+X*+g[L>>2];g[N>>2]=V;qa=c[P>>2]|0;ra=+jb[c[(c[qa>>2]|0)+8>>2]&1](qa,Z,h,f,X)}else ra=+g[I>>2];if(ra==0.0)break a;if(ra>0.0){X=m+p*ra;V=n+q*ra;Z=(g[k>>2]=m>2]|0);qa=(g[k>>2]=n>2]|0);Y=(g[k>>2]=m>X?m:X,c[k>>2]|0);ha=(g[k>>2]=n>V?n:V,c[k>>2]|0);ia=Y;ja=qa;ka=Z;la=ra}else{ha=R;ia=D;ja=E;ka=F;la=T}}Z=c[z>>2]|0;if((Z|0)<=0)break a;Q=Z;R=ha;D=ia;E=ja;F=ka;S=c[j>>2]|0;T=la}}while(0);ka=c[j>>2]|0;if((ka|0)==(y|0)){i=e;return}ao(ka);c[j>>2]=0;i=e;return}function dl(d,e,f){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.0;h=d+12|0;i=d+28|0;j=d+4|0;k=(a[e+39>>0]|0)==0?0:8;b[j>>1]=k;if(!(a[e+38>>0]|0))l=k;else{m=(k&65535|16)&65535;b[j>>1]=m;l=m}if(!(a[e+36>>0]|0))n=l;else{m=(l&65535|4)&65535;b[j>>1]=m;n=m}if(!(a[e+37>>0]|0))o=n;else{m=(n&65535|2)&65535;b[j>>1]=m;o=m}if(a[e+40>>0]|0)b[j>>1]=o&65535|32;c[d+104>>2]=f;f=e+4|0;o=c[f>>2]|0;j=c[f+4>>2]|0;f=h;c[f>>2]=o;c[f+4>>2]=j;f=e+12|0;p=+g[f>>2];g[d+20>>2]=+R(+p);g[d+24>>2]=+Q(+p);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];g[d+44>>2]=0.0;g[d+48>>2]=0.0;h=d+52|0;c[h>>2]=o;c[h+4>>2]=j;h=d+60|0;c[h>>2]=o;c[h+4>>2]=j;j=c[f>>2]|0;c[d+68>>2]=j;c[d+72>>2]=j;g[d+76>>2]=0.0;c[d+124>>2]=0;c[d+128>>2]=0;c[d+108>>2]=0;c[d+112>>2]=0;j=e+16|0;f=c[j+4>>2]|0;h=d+80|0;c[h>>2]=c[j>>2];c[h+4>>2]=f;c[d+88>>2]=c[e+24>>2];c[d+148>>2]=c[e+28>>2];c[d+152>>2]=c[e+32>>2];c[d+156>>2]=c[e+48>>2];g[d+92>>2]=0.0;g[d+96>>2]=0.0;g[d+100>>2]=0.0;g[d+160>>2]=0.0;f=c[e>>2]|0;c[d>>2]=f;h=(f|0)==2;g[d+132>>2]=h?1.0:0.0;g[d+136>>2]=h?1.0:0.0;g[d+140>>2]=0.0;g[d+144>>2]=0.0;c[d+164>>2]=c[e+44>>2];c[d+116>>2]=0;c[d+120>>2]=0;return}function el(a){a=a|0;return}function fl(a,d){a=a|0;d=d|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;f=i;i=i+16|0;h=f;j=a+104|0;if(c[(c[j>>2]|0)+102876>>2]&2){i=f;return}if((c[a>>2]|0)==(d|0)){i=f;return}c[a>>2]=d;gl(a);if((c[a>>2]|0)==0?(g[a+80>>2]=0.0,g[a+84>>2]=0.0,g[a+88>>2]=0.0,d=c[a+72>>2]|0,c[a+68>>2]=d,l=a+60|0,m=c[l>>2]|0,n=c[l+4>>2]|0,l=a+52|0,c[l>>2]=m,c[l+4>>2]=n,o=(c[k>>2]=d,+g[k>>2]),p=+R(+o),g[h+8>>2]=p,q=+Q(+o),g[h+12>>2]=q,o=+g[a+44>>2],r=+g[a+48>>2],s=(c[k>>2]=m,+g[k>>2])-(q*o-p*r),t=(c[k>>2]=n,+g[k>>2])-(p*o+q*r),g[h>>2]=s,g[h+4>>2]=t,n=(c[j>>2]|0)+102880|0,m=c[a+116>>2]|0,(m|0)!=0):0){d=a+12|0;l=m;do{Nk(l,n,h,d);l=c[l+4>>2]|0}while((l|0)!=0)}l=a+4|0;d=e[l>>1]|0;if(!(d&2)){b[l>>1]=d|2;g[a+160>>2]=0.0}g[a+92>>2]=0.0;g[a+96>>2]=0.0;g[a+100>>2]=0.0;d=a+128|0;l=c[d>>2]|0;if(l){h=l;do{l=h;h=c[h+12>>2]|0;ql((c[j>>2]|0)+102880|0,c[l+4>>2]|0)}while((h|0)!=0)}c[d>>2]=0;d=(c[j>>2]|0)+102880|0;j=c[a+116>>2]|0;if(!j){i=f;return}else u=j;do{j=c[u+28>>2]|0;if((j|0)>0){a=u+24|0;h=0;do{eg(d,c[(c[a>>2]|0)+(h*28|0)+24>>2]|0);h=h+1|0}while((h|0)!=(j|0))}u=c[u+4>>2]|0}while((u|0)!=0);i=f;return}function gl(a){a=a|0;var 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.0,v=0.0,w=0,x=0,y=0,z=0.0,A=0.0,B=0.0,C=0,D=0,E=0.0,F=0,G=0.0,H=0.0,I=0,J=0,K=0.0,L=0,M=0,N=0.0,O=0,P=0,Q=0.0,R=0,S=0.0,T=0.0,U=0.0;d=i;i=i+16|0;e=d;f=a+132|0;h=a+136|0;j=a+140|0;l=a+144|0;m=a+44|0;g[m>>2]=0.0;n=a+48|0;g[n>>2]=0.0;c[f>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;c[f+12>>2]=0;if((c[a>>2]|0)>>>0<2){o=a+12|0;p=c[o>>2]|0;q=c[o+4>>2]|0;o=a+52|0;c[o>>2]=p;c[o+4>>2]=q;o=a+60|0;c[o>>2]=p;c[o+4>>2]=q;c[a+68>>2]=c[a+72>>2];i=d;return}q=c[610]|0;o=c[611]|0;p=c[a+116>>2]|0;if(p){r=e+4|0;s=e+8|0;t=e+12|0;u=0.0;v=0.0;w=q;x=o;y=p;while(1){z=+g[y>>2];if(z==0.0){A=u;B=v;C=x;D=w}else{p=c[y+12>>2]|0;ob[c[(c[p>>2]|0)+32>>2]&31](p,e,z);z=+g[e>>2];E=z+ +g[f>>2];g[f>>2]=E;p=(g[k>>2]=(c[k>>2]=w,+g[k>>2])+z*+g[r>>2],c[k>>2]|0);F=(g[k>>2]=(c[k>>2]=x,+g[k>>2])+z*+g[s>>2],c[k>>2]|0);z=+g[t>>2]+ +g[j>>2];g[j>>2]=z;A=z;B=E;C=F;D=p}y=c[y+4>>2]|0;if(!y){G=A;H=B;I=C;J=D;break}else{u=A;v=B;w=D;x=C}}if(H>0.0){B=1.0/H;g[h>>2]=B;C=(g[k>>2]=(c[k>>2]=J,+g[k>>2])*B,c[k>>2]|0);K=G;L=C;M=(g[k>>2]=(c[k>>2]=I,+g[k>>2])*B,c[k>>2]|0);N=H}else{O=I;P=J;Q=G;R=10}}else{O=o;P=q;Q=0.0;R=10}if((R|0)==10){g[f>>2]=1.0;g[h>>2]=1.0;K=Q;L=P;M=O;N=1.0}if(K>0.0?(b[a+4>>1]&16)==0:0){Q=(c[k>>2]=L,+g[k>>2]);G=(c[k>>2]=M,+g[k>>2]);H=K-(G*G+Q*Q)*N;g[j>>2]=H;S=G;T=Q;U=1.0/H}else{g[j>>2]=0.0;H=(c[k>>2]=L,+g[k>>2]);S=(c[k>>2]=M,+g[k>>2]);T=H;U=0.0}g[l>>2]=U;l=a+60|0;U=+g[l>>2];j=a+64|0;H=+g[j>>2];c[m>>2]=L;c[n>>2]=M;Q=+g[a+24>>2];G=+g[a+20>>2];N=+g[a+12>>2]+(Q*T-G*S);K=T*G+Q*S+ +g[a+16>>2];g[l>>2]=N;g[j>>2]=K;g[a+52>>2]=N;g[a+56>>2]=K;S=+g[a+88>>2];j=a+80|0;g[j>>2]=+g[j>>2]-S*(K-H);j=a+84|0;g[j>>2]=S*(N-U)+ +g[j>>2];i=d;return}function hl(a){a=a|0;var b=0,d=0,e=0.0,f=0.0,h=0.0,j=0.0,k=0.0,l=0,m=0,n=0;b=i;i=i+16|0;d=b;e=+g[a+68>>2];f=+R(+e);g[d+8>>2]=f;h=+Q(+e);g[d+12>>2]=h;e=+g[a+44>>2];j=+g[a+48>>2];k=+g[a+56>>2]-(e*f+h*j);g[d>>2]=+g[a+52>>2]-(h*e-f*j);g[d+4>>2]=k;l=(c[a+104>>2]|0)+102880|0;m=c[a+116>>2]|0;if(!m){i=b;return}n=a+12|0;a=m;do{Nk(a,l,d,n);a=c[a+4>>2]|0}while((a|0)!=0);i=b;return}function il(a,d){a=a|0;d=d|0;var e=0,f=0,h=0,i=0;e=a+104|0;f=c[e>>2]|0;if(c[f+102876>>2]&2){h=0;return h|0}i=Sn(f,44)|0;Ik(i);Jk(i,f,a,d);if(b[a+4>>1]&32)Lk(i,(c[e>>2]|0)+102880|0,a+12|0);d=a+116|0;c[i+4>>2]=c[d>>2];c[d>>2]=i;d=a+120|0;c[d>>2]=(c[d>>2]|0)+1;c[i+8>>2]=a;if(+g[i>>2]>0.0)gl(a);a=(c[e>>2]|0)+102876|0;c[a>>2]=c[a>>2]|1;h=i;return h|0}function jl(a,d){a=a|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;e=a+104|0;if(c[(c[e>>2]|0)+102876>>2]&2)return;f=a+116|0;g=c[f>>2]|0;a:do if(g){h=g;i=f;while(1){if((h|0)==(d|0)){j=i;break}i=h+4|0;h=c[i>>2]|0;if(!h)break a}c[j>>2]=c[d+4>>2]}while(0);j=c[a+128>>2]|0;if(j){f=j;do{j=c[f+4>>2]|0;f=c[f+12>>2]|0;if((c[j+48>>2]|0)==(d|0)?1:(c[j+52>>2]|0)==(d|0))ql((c[e>>2]|0)+102880|0,j)}while((f|0)!=0)}f=c[e>>2]|0;if(b[a+4>>1]&32)Mk(d,f+102880|0);Kk(d,f);c[d+8>>2]=0;c[d+4>>2]=0;Tn(f,d,44);d=a+120|0;c[d>>2]=(c[d>>2]|0)+-1;gl(a);return}function kl(a,d){a=a|0;d=d|0;var e=0,f=0,h=0.0,i=0.0,j=0.0,l=0.0,m=0.0,n=0,o=0,p=0.0,q=0.0,r=0.0;if(c[(c[a+104>>2]|0)+102876>>2]&2)return;if((c[a>>2]|0)!=2)return;e=a+140|0;g[e>>2]=0.0;f=a+144|0;g[f>>2]=0.0;h=+g[d>>2];i=!(h<=0.0)?h:1.0;g[a+132>>2]=i;g[a+136>>2]=1.0/i;h=+g[d+12>>2];if(h>0.0?(b[a+4>>1]&16)==0:0){j=+g[d+4>>2];l=+g[d+8>>2];m=h-i*(j*j+l*l);g[e>>2]=m;g[f>>2]=1.0/m}f=a+60|0;m=+g[f>>2];e=a+64|0;l=+g[e>>2];n=d+4|0;d=c[n>>2]|0;o=c[n+4>>2]|0;n=a+44|0;c[n>>2]=d;c[n+4>>2]=o;j=+g[a+24>>2];i=(c[k>>2]=d,+g[k>>2]);h=+g[a+20>>2];p=(c[k>>2]=o,+g[k>>2]);q=+g[a+12>>2]+(j*i-h*p);r=i*h+j*p+ +g[a+16>>2];g[f>>2]=q;g[e>>2]=r;g[a+52>>2]=q;g[a+56>>2]=r;p=+g[a+88>>2];e=a+80|0;g[e>>2]=+g[e>>2]-p*(r-l);e=a+84|0;g[e>>2]=p*(q-m)+ +g[e>>2];return}function ll(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0;if((c[b>>2]|0)!=2?(c[d>>2]|0)!=2:0){e=0;return e|0}f=c[b+124>>2]|0;if(!f){e=1;return e|0}else g=f;while(1){if((c[g>>2]|0)==(d|0)?(a[(c[g+4>>2]|0)+61>>0]|0)==0:0){e=0;h=7;break}g=c[g+12>>2]|0;if(!g){e=1;h=7;break}}if((h|0)==7)return e|0;return 0}function ml(a,b,d){a=a|0;b=b|0;d=+d;var e=0,f=0,h=0.0,i=0.0,j=0,l=0,m=0.0,n=0.0,o=0.0,p=0.0,q=0;e=c[a+104>>2]|0;if(c[e+102876>>2]&2)return;f=a+12|0;h=+R(+d);g[a+20>>2]=h;i=+Q(+d);g[a+24>>2]=i;j=b;b=c[j>>2]|0;l=c[j+4>>2]|0;j=f;c[j>>2]=b;c[j+4>>2]=l;j=a+28|0;c[j>>2]=c[f>>2];c[j+4>>2]=c[f+4>>2];c[j+8>>2]=c[f+8>>2];c[j+12>>2]=c[f+12>>2];j=a+60|0;m=+g[a+44>>2];n=+g[a+48>>2];o=(c[k>>2]=b,+g[k>>2])+(i*m-h*n);p=m*h+i*n+(c[k>>2]=l,+g[k>>2]);g[j>>2]=o;g[a+64>>2]=p;g[a+72>>2]=d;l=j;j=c[l+4>>2]|0;b=a+52|0;c[b>>2]=c[l>>2];c[b+4>>2]=j;g[a+68>>2]=d;j=e+102880|0;e=c[a+116>>2]|0;if(!e)return;else q=e;do{Nk(q,j,f,f);q=c[q+4>>2]|0}while((q|0)!=0);return}function nl(a,d){a=a|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;e=a+4|0;f=b[e>>1]|0;if(!((f&32)!=0^d))return;g=f&65535;if(d){b[e>>1]=g|32;d=(c[a+104>>2]|0)+102880|0;f=c[a+116>>2]|0;if(!f)return;h=a+12|0;i=f;do{Lk(i,d,h);i=c[i+4>>2]|0}while((i|0)!=0);return}b[e>>1]=g&65503;g=a+104|0;e=(c[g>>2]|0)+102880|0;i=c[a+116>>2]|0;if(i){h=i;do{Mk(h,e);h=c[h+4>>2]|0}while((h|0)!=0)}h=a+128|0;a=c[h>>2]|0;if(a){e=a;do{a=e;e=c[e+12>>2]|0;ql((c[g>>2]|0)+102880|0,c[a+4>>2]|0)}while((e|0)!=0)}c[h>>2]=0;return}function ol(a,c){a=a|0;c=c|0;var d=0,f=0;d=a+4|0;f=e[d>>1]|0;if(!((f&16|0)!=0^c))return;b[d>>1]=c?f|16:f&65519;g[a+88>>2]=0.0;gl(a);return}function pl(a){a=a|0;$f(a);c[a+60>>2]=0;c[a+64>>2]=0;c[a+68>>2]=2088;c[a+72>>2]=2092;c[a+76>>2]=0;return}function ql(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;d=c[(c[b+48>>2]|0)+8>>2]|0;e=c[(c[b+52>>2]|0)+8>>2]|0;f=c[a+72>>2]|0;if((f|0)!=0?(c[b+4>>2]&2|0)!=0:0)kb[c[(c[f>>2]|0)+12>>2]&63](f,b);f=c[b+8>>2]|0;g=b+12|0;if(f)c[f+12>>2]=c[g>>2];h=c[g>>2]|0;if(h)c[h+8>>2]=f;f=a+60|0;if((c[f>>2]|0)==(b|0))c[f>>2]=h;h=c[b+24>>2]|0;f=b+28|0;if(h)c[h+12>>2]=c[f>>2];g=c[f>>2]|0;if(g)c[g+8>>2]=h;h=d+128|0;if((b+16|0)==(c[h>>2]|0))c[h>>2]=g;g=c[b+40>>2]|0;h=b+44|0;if(g)c[g+12>>2]=c[h>>2];d=c[h>>2]|0;if(d)c[d+8>>2]=g;g=e+128|0;if((b+32|0)!=(c[g>>2]|0)){i=a+76|0;j=c[i>>2]|0;Zj(b,j);k=a+64|0;l=c[k>>2]|0;m=l+-1|0;c[k>>2]=m;return}c[g>>2]=d;i=a+76|0;j=c[i>>2]|0;Zj(b,j);k=a+64|0;l=c[k>>2]|0;m=l+-1|0;c[k>>2]=m;return}function rl(a){a=a|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,s=0,t=0,u=0;d=c[a+60>>2]|0;if(!d)return;e=a+4|0;f=a+72|0;h=a+68|0;i=d;while(1){d=c[i+48>>2]|0;j=c[i+52>>2]|0;k=c[i+56>>2]|0;l=c[i+60>>2]|0;m=c[d+8>>2]|0;n=c[j+8>>2]|0;o=i+4|0;do if(!(c[o>>2]&8))p=11;else{if(!(ll(n,m)|0)){q=c[i+12>>2]|0;ql(a,i);r=q;break}q=c[h>>2]|0;if((q|0)!=0?!(lb[c[(c[q>>2]|0)+8>>2]&15](q,d,j)|0):0){q=c[i+12>>2]|0;ql(a,i);r=q;break}c[o>>2]=c[o>>2]&-9;p=11}while(0);do if((p|0)==11){p=0;if(!(b[m+4>>1]&2))s=0;else s=(c[m>>2]|0)!=0;if(!(b[n+4>>1]&2))t=0;else t=(c[n>>2]|0)!=0;if(!(s|t)){r=c[i+12>>2]|0;break}o=c[(c[d+24>>2]|0)+(k*28|0)+24>>2]|0;q=c[(c[j+24>>2]|0)+(l*28|0)+24>>2]|0;u=c[e>>2]|0;if((+g[u+(q*36|0)>>2]-+g[u+(o*36|0)+8>>2]>0.0?1:+g[u+(q*36|0)+4>>2]-+g[u+(o*36|0)+12>>2]>0.0)|+g[u+(o*36|0)>>2]-+g[u+(q*36|0)+8>>2]>0.0|+g[u+(o*36|0)+4>>2]-+g[u+(q*36|0)+12>>2]>0.0){q=c[i+12>>2]|0;ql(a,i);r=q;break}else{$j(i,c[f>>2]|0);r=c[i+12>>2]|0;break}}while(0);if(!r)break;else i=r}return}function sl(a){a=a|0;ul(a,a);return}function tl(d,f,h){d=d|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=c[f+16>>2]|0;j=c[h+16>>2]|0;k=c[f+20>>2]|0;f=c[h+20>>2]|0;h=c[i+8>>2]|0;l=c[j+8>>2]|0;if((h|0)==(l|0))return;m=c[l+128>>2]|0;a:do if(m){n=m;while(1){if((c[n>>2]|0)==(h|0)){o=c[n+4>>2]|0;p=c[o+48>>2]|0;q=c[o+52>>2]|0;r=c[o+56>>2]|0;s=c[o+60>>2]|0;if((p|0)==(i|0)&(q|0)==(j|0)&(r|0)==(k|0)&(s|0)==(f|0)){t=24;break}if((p|0)==(j|0)&(q|0)==(i|0)&(r|0)==(f|0)&(s|0)==(k|0)){t=24;break}}n=c[n+12>>2]|0;if(!n)break a}if((t|0)==24)return}while(0);if(!(ll(l,h)|0))return;h=c[d+68>>2]|0;if((h|0)!=0?!(lb[c[(c[h>>2]|0)+8>>2]&15](h,i,j)|0):0)return;h=Yj(i,k,j,f,c[d+76>>2]|0)|0;if(!h)return;f=c[h+48>>2]|0;j=c[h+52>>2]|0;k=c[f+8>>2]|0;i=c[j+8>>2]|0;c[h+8>>2]=0;l=d+60|0;t=c[l>>2]|0;c[h+12>>2]=t;if(t)c[t+8>>2]=h;c[l>>2]=h;l=h+16|0;c[h+20>>2]=h;c[l>>2]=i;c[h+24>>2]=0;t=k+128|0;m=c[t>>2]|0;c[h+28>>2]=m;if(m)c[m+8>>2]=l;c[t>>2]=l;l=h+32|0;c[h+36>>2]=h;c[l>>2]=k;c[h+40>>2]=0;t=i+128|0;m=c[t>>2]|0;c[h+44>>2]=m;if(m)c[m+8>>2]=l;c[t>>2]=l;if((a[f+38>>0]|0)==0?(a[j+38>>0]|0)==0:0){j=k+4|0;f=e[j>>1]|0;if(!(f&2)){b[j>>1]=f|2;g[k+160>>2]=0.0}k=i+4|0;f=e[k>>1]|0;if(!(f&2)){b[k>>1]=f|2;g[i+160>>2]=0.0}}i=d+64|0;c[i>>2]=(c[i>>2]|0)+1;return}function ul(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;d=i;i=i+16|0;e=d;f=a+52|0;c[f>>2]=0;g=a+40|0;h=c[g>>2]|0;if((h|0)>0){j=a+32|0;k=a+56|0;l=a+4|0;m=h;h=0;while(1){n=c[(c[j>>2]|0)+(h<<2)>>2]|0;c[k>>2]=n;if((n|0)==-1)o=m;else{Al(a,a,(c[l>>2]|0)+(n*36|0)|0);o=c[g>>2]|0}h=h+1|0;if((h|0)>=(o|0))break;else m=o}p=c[f>>2]|0}else p=0;c[g>>2]=0;g=a+44|0;o=c[g>>2]|0;c[e>>2]=26;Cl(o,o+(p<<3)|0,e);if((c[f>>2]|0)<=0){i=d;return}e=a+4|0;a=0;a:while(1){p=c[g>>2]|0;o=p+(a<<3)|0;m=c[e>>2]|0;h=p+(a<<3)+4|0;tl(b,c[m+((c[o>>2]|0)*36|0)+16>>2]|0,c[m+((c[h>>2]|0)*36|0)+16>>2]|0);m=c[f>>2]|0;p=a;while(1){l=p+1|0;if((l|0)>=(m|0))break a;k=c[g>>2]|0;if((c[k+(l<<3)>>2]|0)!=(c[o>>2]|0)){a=l;continue a}if((c[k+(l<<3)+4>>2]|0)==(c[h>>2]|0))p=l;else{a=l;continue a}}}i=d;return}function vl(a){a=a|0;so(a);return}function wl(a,b){a=a|0;b=b|0;return}function xl(a,b){a=a|0;b=b|0;return}function yl(a,b,c){a=a|0;b=b|0;c=c|0;return}function zl(a,b,c){a=a|0;b=b|0;c=c|0;return}function Al(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,y=0,z=0;e=i;i=i+1040|0;f=e;h=f+4|0;c[f>>2]=h;j=f+1028|0;c[j>>2]=0;k=f+1032|0;c[k>>2]=256;c[h>>2]=c[a>>2];l=c[j>>2]|0;m=l+1|0;c[j>>2]=m;a:do if((l|0)>-1){n=a+4|0;o=d+4|0;p=d+8|0;q=d+12|0;r=m;while(1){s=r+-1|0;c[j>>2]=s;t=c[f>>2]|0;u=c[t+(s<<2)>>2]|0;do if((u|0)!=-1?(v=c[n>>2]|0,!((+g[d>>2]-+g[v+(u*36|0)+8>>2]>0.0?1:+g[o>>2]-+g[v+(u*36|0)+12>>2]>0.0)|+g[v+(u*36|0)>>2]-+g[p>>2]>0.0|+g[v+(u*36|0)+4>>2]-+g[q>>2]>0.0)):0){w=v+(u*36|0)+24|0;if((c[w>>2]|0)==-1){if(!(fg(b,u)|0))break a;x=c[j>>2]|0;break}if((s|0)==(c[k>>2]|0)?(c[k>>2]=s<<1,y=$n(s<<3)|0,c[f>>2]=y,Bp(y|0,t|0,c[j>>2]<<2|0)|0,(t|0)!=(h|0)):0)ao(t);y=c[f>>2]|0;c[y+(c[j>>2]<<2)>>2]=c[w>>2];w=(c[j>>2]|0)+1|0;c[j>>2]=w;z=v+(u*36|0)+28|0;if((w|0)==(c[k>>2]|0)?(c[k>>2]=w<<1,v=$n(w<<3)|0,c[f>>2]=v,Bp(v|0,y|0,c[j>>2]<<2|0)|0,(y|0)!=(h|0)):0)ao(y);c[(c[f>>2]|0)+(c[j>>2]<<2)>>2]=c[z>>2];z=(c[j>>2]|0)+1|0;c[j>>2]=z;x=z}else x=s;while(0);if((x|0)>0)r=x;else break}}while(0);x=c[f>>2]|0;if((x|0)==(h|0)){i=e;return}ao(x);c[f>>2]=0;i=e;return}function Bl(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=c[a>>2]|0;e=c[b>>2]|0;if((d|0)<(e|0)){f=1;return f|0}if((d|0)!=(e|0)){f=0;return f|0}f=(c[a+4>>2]|0)<(c[b+4>>2]|0);return f|0}function Cl(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,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;e=a;a=b;a:while(1){b=a;f=a+-8|0;g=e;b:while(1){h=g;i=b-h|0;j=i>>3;switch(j|0){case 2:{k=g;l=f;m=f;n=4;break a;break}case 3:{o=g;p=f;q=f;n=6;break a;break}case 4:{r=g;s=f;n=14;break a;break}case 5:{t=g;u=f;v=f;n=15;break a;break}case 1:case 0:{n=69;break a;break}default:{}}if((i|0)<248){w=g;x=a;n=21;break a}y=(j|0)/2|0;z=g+(y<<3)|0;do if((i|0)>7992){A=(j|0)/4|0;B=g+(A<<3)|0;C=g+(A+y<<3)|0;A=Dl(g,B,z,C,d)|0;if(rb[c[d>>2]&31](f,C)|0){D=C;E=c[D>>2]|0;F=c[D+4>>2]|0;D=f;G=c[D+4>>2]|0;H=C;c[H>>2]=c[D>>2];c[H+4>>2]=G;G=f;c[G>>2]=E;c[G+4>>2]=F;F=A+1|0;if(rb[c[d>>2]&31](C,z)|0){G=z;E=c[G>>2]|0;H=c[G+4>>2]|0;G=C;D=c[G+4>>2]|0;I=z;c[I>>2]=c[G>>2];c[I+4>>2]=D;D=C;c[D>>2]=E;c[D+4>>2]=H;H=A+2|0;if(rb[c[d>>2]&31](z,B)|0){D=B;E=c[D>>2]|0;C=c[D+4>>2]|0;D=z;I=c[D+4>>2]|0;G=B;c[G>>2]=c[D>>2];c[G+4>>2]=I;I=z;c[I>>2]=E;c[I+4>>2]=C;if(rb[c[d>>2]&31](B,g)|0){C=g;I=c[C>>2]|0;E=c[C+4>>2]|0;C=B;G=c[C+4>>2]|0;D=g;c[D>>2]=c[C>>2];c[D+4>>2]=G;G=B;c[G>>2]=I;c[G+4>>2]=E;J=A+4|0}else J=A+3|0}else J=H}else J=F}else J=A}else{A=rb[c[d>>2]&31](z,g)|0;F=rb[c[d>>2]&31](f,z)|0;if(!A){if(!F){J=0;break}A=z;H=c[A>>2]|0;E=c[A+4>>2]|0;A=f;G=c[A+4>>2]|0;I=z;c[I>>2]=c[A>>2];c[I+4>>2]=G;G=f;c[G>>2]=H;c[G+4>>2]=E;if(!(rb[c[d>>2]&31](z,g)|0)){J=1;break}E=g;G=c[E>>2]|0;H=c[E+4>>2]|0;E=z;I=c[E+4>>2]|0;A=g;c[A>>2]=c[E>>2];c[A+4>>2]=I;I=z;c[I>>2]=G;c[I+4>>2]=H;J=2;break}H=g;I=c[H>>2]|0;G=c[H+4>>2]|0;if(F){F=f;H=c[F+4>>2]|0;A=g;c[A>>2]=c[F>>2];c[A+4>>2]=H;H=f;c[H>>2]=I;c[H+4>>2]=G;J=1;break}H=z;A=c[H+4>>2]|0;F=g;c[F>>2]=c[H>>2];c[F+4>>2]=A;A=z;c[A>>2]=I;c[A+4>>2]=G;if(rb[c[d>>2]&31](f,z)|0){G=z;A=c[G>>2]|0;I=c[G+4>>2]|0;G=f;F=c[G+4>>2]|0;H=z;c[H>>2]=c[G>>2];c[H+4>>2]=F;F=f;c[F>>2]=A;c[F+4>>2]=I;J=2}else J=1}while(0);do if(rb[c[d>>2]&31](g,z)|0){K=f;L=J}else{y=f;while(1){j=y+-8|0;if((g|0)==(j|0))break;if(rb[c[d>>2]&31](j,z)|0){M=j;n=51;break}else y=j}if((n|0)==51){n=0;y=g;j=c[y>>2]|0;i=c[y+4>>2]|0;y=M;I=c[y+4>>2]|0;F=g;c[F>>2]=c[y>>2];c[F+4>>2]=I;I=M;c[I>>2]=j;c[I+4>>2]=i;K=M;L=J+1|0;break}i=g+8|0;if(rb[c[d>>2]&31](g,f)|0)N=i;else{if((i|0)==(f|0)){n=69;break a}else{O=g;P=i}while(1){if(rb[c[d>>2]&31](g,P)|0){Q=O;R=P;break}i=P+8|0;if((i|0)==(f|0)){n=69;break a}else{I=P;P=i;O=I}}I=R;i=c[I>>2]|0;j=c[I+4>>2]|0;I=f;F=c[I+4>>2]|0;y=R;c[y>>2]=c[I>>2];c[y+4>>2]=F;F=f;c[F>>2]=i;c[F+4>>2]=j;N=Q+16|0}if((N|0)==(f|0)){n=69;break a}else{S=N;T=f}while(1){j=S;while(1){F=j+8|0;if(rb[c[d>>2]&31](g,j)|0){U=F;V=j;break}else j=F}j=T;while(1){F=j+-8|0;if(rb[c[d>>2]&31](g,F)|0)j=F;else{W=F;break}}if(V>>>0>=W>>>0){g=V;continue b}j=V;F=c[j>>2]|0;i=c[j+4>>2]|0;j=W;y=c[j+4>>2]|0;I=V;c[I>>2]=c[j>>2];c[I+4>>2]=y;y=W;c[y>>2]=F;c[y+4>>2]=i;S=U;T=W}}while(0);i=g+8|0;c:do if(i>>>0>>0){y=i;F=K;I=z;j=L;while(1){A=y;while(1){H=A+8|0;if(rb[c[d>>2]&31](A,I)|0)A=H;else{X=H;Y=A;break}}A=F;while(1){H=A+-8|0;if(rb[c[d>>2]&31](H,I)|0){Z=H;break}else A=H}if(Y>>>0>Z>>>0){_=Y;$=I;aa=j;break c}A=Y;H=c[A>>2]|0;G=c[A+4>>2]|0;A=Z;E=c[A+4>>2]|0;B=Y;c[B>>2]=c[A>>2];c[B+4>>2]=E;E=Z;c[E>>2]=H;c[E+4>>2]=G;y=X;F=Z;I=(I|0)==(Y|0)?Z:I;j=j+1|0}}else{_=i;$=z;aa=L}while(0);if((_|0)!=($|0)?rb[c[d>>2]&31]($,_)|0:0){z=_;i=c[z>>2]|0;j=c[z+4>>2]|0;z=$;I=c[z+4>>2]|0;F=_;c[F>>2]=c[z>>2];c[F+4>>2]=I;I=$;c[I>>2]=i;c[I+4>>2]=j;ba=aa+1|0}else ba=aa;if(!ba){ca=Fl(g,_,d)|0;j=_+8|0;if(Fl(j,a,d)|0){n=64;break}if(ca){g=j;continue}}j=_;if((j-h|0)>=(b-j|0)){da=g;ea=_;n=68;break}Cl(g,_,d);g=_+8|0}if((n|0)==64){n=0;if(ca){n=69;break}else{e=g;a=_;continue}}else if((n|0)==68){n=0;Cl(ea+8|0,a,d);e=da;a=ea;continue}}if((n|0)==4){if(!(rb[c[d>>2]&31](l,k)|0))return;l=k;ea=c[l>>2]|0;a=c[l+4>>2]|0;l=m;da=c[l+4>>2]|0;e=k;c[e>>2]=c[l>>2];c[e+4>>2]=da;da=m;c[da>>2]=ea;c[da+4>>2]=a;return}else if((n|0)==6){a=o+8|0;da=rb[c[d>>2]&31](a,o)|0;ea=rb[c[d>>2]&31](p,a)|0;if(!da){if(!ea)return;da=a;m=c[da>>2]|0;e=c[da+4>>2]|0;da=q;l=c[da+4>>2]|0;k=a;c[k>>2]=c[da>>2];c[k+4>>2]=l;l=q;c[l>>2]=m;c[l+4>>2]=e;if(!(rb[c[d>>2]&31](a,o)|0))return;e=o;l=c[e>>2]|0;m=c[e+4>>2]|0;e=a;k=c[e+4>>2]|0;da=o;c[da>>2]=c[e>>2];c[da+4>>2]=k;k=a;c[k>>2]=l;c[k+4>>2]=m;return}m=o;k=c[m>>2]|0;l=c[m+4>>2]|0;if(ea){ea=q;m=c[ea+4>>2]|0;da=o;c[da>>2]=c[ea>>2];c[da+4>>2]=m;m=q;c[m>>2]=k;c[m+4>>2]=l;return}m=a;da=c[m+4>>2]|0;ea=o;c[ea>>2]=c[m>>2];c[ea+4>>2]=da;da=a;c[da>>2]=k;c[da+4>>2]=l;if(!(rb[c[d>>2]&31](p,a)|0))return;p=a;l=c[p>>2]|0;da=c[p+4>>2]|0;p=q;k=c[p+4>>2]|0;ea=a;c[ea>>2]=c[p>>2];c[ea+4>>2]=k;k=q;c[k>>2]=l;c[k+4>>2]=da;return}else if((n|0)==14){Dl(r,r+8|0,r+16|0,s,d)|0;return}else if((n|0)==15){s=t+8|0;r=t+16|0;da=t+24|0;Dl(t,s,r,da,d)|0;if(!(rb[c[d>>2]&31](u,da)|0))return;u=da;k=c[u>>2]|0;l=c[u+4>>2]|0;u=v;q=c[u+4>>2]|0;ea=da;c[ea>>2]=c[u>>2];c[ea+4>>2]=q;q=v;c[q>>2]=k;c[q+4>>2]=l;if(!(rb[c[d>>2]&31](da,r)|0))return;l=r;q=c[l>>2]|0;k=c[l+4>>2]|0;l=da;v=c[l+4>>2]|0;ea=r;c[ea>>2]=c[l>>2];c[ea+4>>2]=v;v=da;c[v>>2]=q;c[v+4>>2]=k;if(!(rb[c[d>>2]&31](r,s)|0))return;k=s;v=c[k>>2]|0;q=c[k+4>>2]|0;k=r;da=c[k+4>>2]|0;ea=s;c[ea>>2]=c[k>>2];c[ea+4>>2]=da;da=r;c[da>>2]=v;c[da+4>>2]=q;if(!(rb[c[d>>2]&31](s,t)|0))return;q=t;da=c[q>>2]|0;v=c[q+4>>2]|0;q=s;r=c[q+4>>2]|0;ea=t;c[ea>>2]=c[q>>2];c[ea+4>>2]=r;r=s;c[r>>2]=da;c[r+4>>2]=v;return}else if((n|0)==21){El(w,x,d);return}else if((n|0)==69)return}function Dl(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;g=rb[c[f>>2]&31](b,a)|0;h=rb[c[f>>2]&31](d,b)|0;do if(g){i=a;j=c[i>>2]|0;k=c[i+4>>2]|0;if(h){i=d;l=c[i+4>>2]|0;m=a;c[m>>2]=c[i>>2];c[m+4>>2]=l;l=d;c[l>>2]=j;c[l+4>>2]=k;n=1;break}l=b;m=c[l+4>>2]|0;i=a;c[i>>2]=c[l>>2];c[i+4>>2]=m;m=b;c[m>>2]=j;c[m+4>>2]=k;if(rb[c[f>>2]&31](d,b)|0){k=b;m=c[k>>2]|0;j=c[k+4>>2]|0;k=d;i=c[k+4>>2]|0;l=b;c[l>>2]=c[k>>2];c[l+4>>2]=i;i=d;c[i>>2]=m;c[i+4>>2]=j;n=2}else n=1}else if(h){j=b;i=c[j>>2]|0;m=c[j+4>>2]|0;j=d;l=c[j+4>>2]|0;k=b;c[k>>2]=c[j>>2];c[k+4>>2]=l;l=d;c[l>>2]=i;c[l+4>>2]=m;if(rb[c[f>>2]&31](b,a)|0){m=a;l=c[m>>2]|0;i=c[m+4>>2]|0;m=b;k=c[m+4>>2]|0;j=a;c[j>>2]=c[m>>2];c[j+4>>2]=k;k=b;c[k>>2]=l;c[k+4>>2]=i;n=2}else n=1}else n=0;while(0);if(!(rb[c[f>>2]&31](e,d)|0)){o=n;return o|0}h=d;g=c[h>>2]|0;i=c[h+4>>2]|0;h=e;k=c[h+4>>2]|0;l=d;c[l>>2]=c[h>>2];c[l+4>>2]=k;k=e;c[k>>2]=g;c[k+4>>2]=i;if(!(rb[c[f>>2]&31](d,b)|0)){o=n+1|0;return o|0}i=b;k=c[i>>2]|0;g=c[i+4>>2]|0;i=d;e=c[i+4>>2]|0;l=b;c[l>>2]=c[i>>2];c[l+4>>2]=e;e=d;c[e>>2]=k;c[e+4>>2]=g;if(!(rb[c[f>>2]&31](b,a)|0)){o=n+2|0;return o|0}f=a;g=c[f>>2]|0;e=c[f+4>>2]|0;f=b;k=c[f+4>>2]|0;d=a;c[d>>2]=c[f>>2];c[d+4>>2]=k;k=b;c[k>>2]=g;c[k+4>>2]=e;o=n+3|0;return o|0}function El(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,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;e=i;i=i+16|0;f=e;g=a+16|0;h=a+8|0;j=rb[c[d>>2]&31](h,a)|0;k=rb[c[d>>2]&31](g,h)|0;do if(j){l=a;m=c[l>>2]|0;n=c[l+4>>2]|0;if(k){l=g;o=c[l+4>>2]|0;p=a;c[p>>2]=c[l>>2];c[p+4>>2]=o;o=g;c[o>>2]=m;c[o+4>>2]=n;break}o=h;p=c[o+4>>2]|0;l=a;c[l>>2]=c[o>>2];c[l+4>>2]=p;p=h;c[p>>2]=m;c[p+4>>2]=n;if(rb[c[d>>2]&31](g,h)|0){n=h;p=c[n>>2]|0;m=c[n+4>>2]|0;n=g;l=c[n+4>>2]|0;o=h;c[o>>2]=c[n>>2];c[o+4>>2]=l;l=g;c[l>>2]=p;c[l+4>>2]=m}}else if(k?(m=h,l=c[m>>2]|0,p=c[m+4>>2]|0,m=g,o=c[m+4>>2]|0,n=h,c[n>>2]=c[m>>2],c[n+4>>2]=o,o=g,c[o>>2]=l,c[o+4>>2]=p,rb[c[d>>2]&31](h,a)|0):0){p=a;o=c[p>>2]|0;l=c[p+4>>2]|0;p=h;n=c[p+4>>2]|0;m=a;c[m>>2]=c[p>>2];c[m+4>>2]=n;n=h;c[n>>2]=o;c[n+4>>2]=l}while(0);h=a+24|0;if((h|0)==(b|0)){i=e;return}else{q=h;r=g}while(1){if(rb[c[d>>2]&31](q,r)|0){g=q;h=c[g+4>>2]|0;k=f;c[k>>2]=c[g>>2];c[k+4>>2]=h;h=q;k=r;while(1){g=k;j=c[g+4>>2]|0;l=h;c[l>>2]=c[g>>2];c[l+4>>2]=j;if((k|0)==(a|0)){s=k;break}j=k+-8|0;if(rb[c[d>>2]&31](f,j)|0){l=k;k=j;h=l}else{s=k;break}}k=f;h=c[k+4>>2]|0;l=s;c[l>>2]=c[k>>2];c[l+4>>2]=h}h=q+8|0;if((h|0)==(b|0))break;else{l=q;q=h;r=l}}i=e;return}function Fl(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,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;e=i;i=i+16|0;f=e;switch(b-a>>3|0){case 2:{g=b+-8|0;if(!(rb[c[d>>2]&31](g,a)|0)){h=1;i=e;return h|0}j=a;k=c[j>>2]|0;l=c[j+4>>2]|0;j=g;m=c[j+4>>2]|0;n=a;c[n>>2]=c[j>>2];c[n+4>>2]=m;m=g;c[m>>2]=k;c[m+4>>2]=l;h=1;i=e;return h|0}case 3:{l=a+8|0;m=b+-8|0;k=rb[c[d>>2]&31](l,a)|0;g=rb[c[d>>2]&31](m,l)|0;if(!k){if(!g){h=1;i=e;return h|0}k=l;n=c[k>>2]|0;j=c[k+4>>2]|0;k=m;o=c[k+4>>2]|0;p=l;c[p>>2]=c[k>>2];c[p+4>>2]=o;o=m;c[o>>2]=n;c[o+4>>2]=j;if(!(rb[c[d>>2]&31](l,a)|0)){h=1;i=e;return h|0}j=a;o=c[j>>2]|0;n=c[j+4>>2]|0;j=l;p=c[j+4>>2]|0;k=a;c[k>>2]=c[j>>2];c[k+4>>2]=p;p=l;c[p>>2]=o;c[p+4>>2]=n;h=1;i=e;return h|0}n=a;p=c[n>>2]|0;o=c[n+4>>2]|0;if(g){g=m;n=c[g+4>>2]|0;k=a;c[k>>2]=c[g>>2];c[k+4>>2]=n;n=m;c[n>>2]=p;c[n+4>>2]=o;h=1;i=e;return h|0}n=l;k=c[n+4>>2]|0;g=a;c[g>>2]=c[n>>2];c[g+4>>2]=k;k=l;c[k>>2]=p;c[k+4>>2]=o;if(!(rb[c[d>>2]&31](m,l)|0)){h=1;i=e;return h|0}o=l;k=c[o>>2]|0;p=c[o+4>>2]|0;o=m;g=c[o+4>>2]|0;n=l;c[n>>2]=c[o>>2];c[n+4>>2]=g;g=m;c[g>>2]=k;c[g+4>>2]=p;h=1;i=e;return h|0}case 4:{Dl(a,a+8|0,a+16|0,b+-8|0,d)|0;h=1;i=e;return h|0}case 5:{p=a+8|0;g=a+16|0;k=a+24|0;m=b+-8|0;Dl(a,p,g,k,d)|0;if(!(rb[c[d>>2]&31](m,k)|0)){h=1;i=e;return h|0}n=k;o=c[n>>2]|0;l=c[n+4>>2]|0;n=m;j=c[n+4>>2]|0;q=k;c[q>>2]=c[n>>2];c[q+4>>2]=j;j=m;c[j>>2]=o;c[j+4>>2]=l;if(!(rb[c[d>>2]&31](k,g)|0)){h=1;i=e;return h|0}l=g;j=c[l>>2]|0;o=c[l+4>>2]|0;l=k;m=c[l+4>>2]|0;q=g;c[q>>2]=c[l>>2];c[q+4>>2]=m;m=k;c[m>>2]=j;c[m+4>>2]=o;if(!(rb[c[d>>2]&31](g,p)|0)){h=1;i=e;return h|0}o=p;m=c[o>>2]|0;j=c[o+4>>2]|0;o=g;k=c[o+4>>2]|0;q=p;c[q>>2]=c[o>>2];c[q+4>>2]=k;k=g;c[k>>2]=m;c[k+4>>2]=j;if(!(rb[c[d>>2]&31](p,a)|0)){h=1;i=e;return h|0}j=a;k=c[j>>2]|0;m=c[j+4>>2]|0;j=p;g=c[j+4>>2]|0;q=a;c[q>>2]=c[j>>2];c[q+4>>2]=g;g=p;c[g>>2]=k;c[g+4>>2]=m;h=1;i=e;return h|0}case 1:case 0:{h=1;i=e;return h|0}default:{m=a+16|0;g=a+8|0;k=rb[c[d>>2]&31](g,a)|0;p=rb[c[d>>2]&31](m,g)|0;do if(k){q=a;j=c[q>>2]|0;o=c[q+4>>2]|0;if(p){q=m;l=c[q+4>>2]|0;n=a;c[n>>2]=c[q>>2];c[n+4>>2]=l;l=m;c[l>>2]=j;c[l+4>>2]=o;break}l=g;n=c[l+4>>2]|0;q=a;c[q>>2]=c[l>>2];c[q+4>>2]=n;n=g;c[n>>2]=j;c[n+4>>2]=o;if(rb[c[d>>2]&31](m,g)|0){o=g;n=c[o>>2]|0;j=c[o+4>>2]|0;o=m;q=c[o+4>>2]|0;l=g;c[l>>2]=c[o>>2];c[l+4>>2]=q;q=m;c[q>>2]=n;c[q+4>>2]=j}}else if(p?(j=g,q=c[j>>2]|0,n=c[j+4>>2]|0,j=m,l=c[j+4>>2]|0,o=g,c[o>>2]=c[j>>2],c[o+4>>2]=l,l=m,c[l>>2]=q,c[l+4>>2]=n,rb[c[d>>2]&31](g,a)|0):0){n=a;l=c[n>>2]|0;q=c[n+4>>2]|0;n=g;o=c[n+4>>2]|0;j=a;c[j>>2]=c[n>>2];c[j+4>>2]=o;o=g;c[o>>2]=l;c[o+4>>2]=q}while(0);g=a+24|0;if((g|0)==(b|0)){h=1;i=e;return h|0}else{r=0;s=g;t=m}while(1){if(rb[c[d>>2]&31](s,t)|0){m=s;g=c[m+4>>2]|0;p=f;c[p>>2]=c[m>>2];c[p+4>>2]=g;g=s;p=t;while(1){m=p;k=c[m+4>>2]|0;q=g;c[q>>2]=c[m>>2];c[q+4>>2]=k;if((p|0)==(a|0)){u=p;break}k=p+-8|0;if(rb[c[d>>2]&31](f,k)|0){q=p;p=k;g=q}else{u=p;break}}p=f;g=c[p+4>>2]|0;q=u;c[q>>2]=c[p>>2];c[q+4>>2]=g;g=r+1|0;if((g|0)==8){v=s;break}else w=g}else w=r;g=s+8|0;if((g|0)==(b|0)){h=1;x=34;break}else{q=s;r=w;s=g;t=q}}if((x|0)==34){i=e;return h|0}h=(v+8|0)==(b|0);i=e;return h|0}}return 0}function Gl(a,b,d){a=a|0;b=b|0;d=d|0;c[a>>2]=b;c[a+4>>2]=lo(b,d<<4)|0;c[a+8>>2]=d;d=a+12|0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;c[d+12>>2]=0;return}function Hl(a){a=a|0;var b=0;b=c[a+24>>2]|0;if(b)no(c[a>>2]|0,b);no(c[a>>2]|0,c[a+4>>2]|0);return}function Il(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0;g=b+12|0;h=c[g>>2]|0;c[g>>2]=h+1;g=c[b+4>>2]|0;b=d;d=c[b+4>>2]|0;i=g+(h<<4)|0;c[i>>2]=c[b>>2];c[i+4>>2]=d;c[g+(h<<4)+8>>2]=e;a[g+(h<<4)+12>>0]=f&1;return}function Jl(b,d,e){b=b|0;d=+d;e=+e;var f=0.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.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,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,$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,oc=0;f=1.0/d;h=b+12|0;i=c[h>>2]|0;if((i|0)>0){j=c[b+4>>2]|0;l=2139095039;m=2139095039;n=-8388609;o=-8388609;p=0;while(1){if(!(a[j+(p<<4)+12>>0]|0)){q=m;r=l;s=o;t=n}else{d=(c[k>>2]=l,+g[k>>2]);u=+g[j+(p<<4)>>2];v=(c[k>>2]=m,+g[k>>2]);w=+g[j+(p<<4)+4>>2];x=(g[k>>2]=d>2]|0);y=(g[k>>2]=v>2]|0);v=(c[k>>2]=n,+g[k>>2]);d=(c[k>>2]=o,+g[k>>2]);z=(g[k>>2]=v>u?v:u,c[k>>2]|0);q=y;r=x;s=(g[k>>2]=d>w?d:w,c[k>>2]|0);t=z}p=p+1|0;if((p|0)>=(i|0)){A=q;B=r;C=s;D=t;break}else{l=r;m=q;n=t;o=s}}}else{A=2139095039;B=2139095039;C=-8388609;D=-8388609}w=(c[k>>2]=B,+g[k>>2])-e;d=(c[k>>2]=A,+g[k>>2])-e;u=(c[k>>2]=D,+g[k>>2])+e;v=(c[k>>2]=C,+g[k>>2])+e;C=~~(f*(u-w))+1|0;D=b+16|0;c[D>>2]=C;A=~~(f*(v-d))+1|0;B=b+20|0;c[B>>2]=A;s=lo(c[b>>2]|0,_(A<<2,C)|0)|0;C=b+24|0;c[C>>2]=s;A=c[D>>2]|0;o=c[B>>2]|0;t=_(o,A)|0;if((t|0)>0?(c[s>>2]=0,(t|0)>1):0){s=1;do{c[(c[C>>2]|0)+(s<<2)>>2]=0;s=s+1|0}while((s|0)<(t|0))}t=c[b>>2]|0;s=_(A<<2,o)|0;o=lo(t,s<<4)|0;if((c[h>>2]|0)>0){A=b+4|0;b=o;n=0;q=s;m=0;while(1){r=c[A>>2]|0;l=r+(m<<4)|0;i=r+(m<<4)+4|0;v=f*(+g[l>>2]-w);u=f*(+g[i>>2]-d);g[l>>2]=v;g[i>>2]=u;i=~~v;r=~~u;if(((r|i|0)>-1?(p=c[D>>2]|0,(i|0)<(p|0)):0)?(r|0)<(c[B>>2]|0):0){j=(_(p,r)|0)+i|0;if((n|0)<(q|0)){E=b;F=q}else{if((n|0)>0){p=0;do p=p+1|0;while((p|0)!=(n|0))}p=(q|0)>0?q<<1:1;E=mo(t,b,p<<4)|0;F=p}c[E+(n<<4)>>2]=i;c[E+(n<<4)+4>>2]=r;c[E+(n<<4)+8>>2]=j;c[E+(n<<4)+12>>2]=l;G=F;H=n+1|0;I=E}else{G=q;H=n;I=b}m=m+1|0;if((m|0)>=(c[h>>2]|0)){J=G;K=H;L=0;M=I;break}else{b=I;n=H;q=G}}}else{J=s;K=0;L=0;M=o}a:while(1){o=L;while(1){if((o|0)==(K|0)){N=J;O=K;P=M;break a}s=c[M+(o<<4)+8>>2]|0;G=o+1|0;q=(c[C>>2]|0)+(s<<2)|0;if(!(c[q>>2]|0)){Q=o;R=s;S=G;T=q;break}else o=G}o=c[M+(Q<<4)>>2]|0;l=c[M+(Q<<4)+4>>2]|0;j=c[M+(Q<<4)+12>>2]|0;c[T>>2]=j;if((o|0)>0){r=o+-1|0;i=R+-1|0;if((K|0)>=(J|0)){if((K|0)>(S|0)){G=S;do{q=M+(G-S<<4)|0;s=M+(G<<4)|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];G=G+1|0}while((G|0)!=(K|0))}G=K-S|0;if((G|0)<(J|0)){U=M;V=G;W=J;X=0}else{s=(J|0)>0?J<<1:1;U=mo(t,M,s<<4)|0;V=G;W=s;X=0}}else{U=M;V=K;W=J;X=S}c[U+(V<<4)>>2]=r;c[U+(V<<4)+4>>2]=l;c[U+(V<<4)+8>>2]=i;c[U+(V<<4)+12>>2]=j;Y=V+1|0;Z=W;$=X;aa=U}else{Y=K;Z=J;$=S;aa=M}if((l|0)>0){s=l+-1|0;G=R-(c[D>>2]|0)|0;if((Y|0)>=(Z|0)){if((Y|0)>($|0)){q=$;do{H=aa+(q-$<<4)|0;n=aa+(q<<4)|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];q=q+1|0}while((q|0)!=(Y|0))}q=Y-$|0;if((q|0)<(Z|0)){ba=aa;ca=q;da=Z;ea=0}else{i=(Z|0)>0?Z<<1:1;ba=mo(t,aa,i<<4)|0;ca=q;da=i;ea=0}}else{ba=aa;ca=Y;da=Z;ea=$}c[ba+(ca<<4)>>2]=o;c[ba+(ca<<4)+4>>2]=s;c[ba+(ca<<4)+8>>2]=G;c[ba+(ca<<4)+12>>2]=j;fa=ca+1|0;ga=da;ha=ea;ia=ba}else{fa=Y;ga=Z;ha=$;ia=aa}if((o|0)<((c[D>>2]|0)+-1|0)){i=o+1|0;q=R+1|0;if((fa|0)>=(ga|0)){if((fa|0)>(ha|0)){r=ha;do{n=ia+(r-ha<<4)|0;H=ia+(r<<4)|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];r=r+1|0}while((r|0)!=(fa|0))}r=fa-ha|0;if((r|0)<(ga|0)){ja=ia;ka=r;la=ga;ma=0}else{G=(ga|0)>0?ga<<1:1;ja=mo(t,ia,G<<4)|0;ka=r;la=G;ma=0}}else{ja=ia;ka=fa;la=ga;ma=ha}c[ja+(ka<<4)>>2]=i;c[ja+(ka<<4)+4>>2]=l;c[ja+(ka<<4)+8>>2]=q;c[ja+(ka<<4)+12>>2]=j;na=ka+1|0;oa=la;pa=ma;qa=ja}else{na=fa;oa=ga;pa=ha;qa=ia}if((l|0)>=((c[B>>2]|0)+-1|0)){J=oa;K=na;L=pa;M=qa;continue}G=l+1|0;r=(c[D>>2]|0)+R|0;if((na|0)>=(oa|0)){if((na|0)>(pa|0)){s=pa;do{H=qa+(s-pa<<4)|0;n=qa+(s<<4)|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];s=s+1|0}while((s|0)!=(na|0))}s=na-pa|0;if((s|0)<(oa|0)){ra=qa;sa=s;ta=oa;ua=0}else{l=(oa|0)>0?oa<<1:1;ra=mo(t,qa,l<<4)|0;sa=s;ta=l;ua=0}}else{ra=qa;sa=na;ta=oa;ua=pa}c[ra+(sa<<4)>>2]=o;c[ra+(sa<<4)+4>>2]=G;c[ra+(sa<<4)+8>>2]=r;c[ra+(sa<<4)+12>>2]=j;J=ta;K=sa+1|0;L=ua;M=ra}ra=c[B>>2]|0;if((ra|0)<=0){va=P;no(t,va);return}M=c[D>>2]|0;ua=ra;ra=P;P=O;L=O;O=N;N=0;while(1){if((M|0)>1){sa=M;K=L;ta=O;J=P;pa=ra;oa=0;while(1){na=(_(sa,N)|0)+oa|0;qa=c[C>>2]|0;R=c[qa+(na<<2)>>2]|0;ia=na+1|0;ha=c[qa+(ia<<2)>>2]|0;if((R|0)==(ha|0)){wa=oa+1|0;xa=sa;ya=ta;za=K;Aa=J;Ba=pa}else{if((K|0)>=(ta|0)){if((K|0)>(J|0)){qa=J;do{ga=pa+(qa-J<<4)|0;fa=pa+(qa<<4)|0;c[ga>>2]=c[fa>>2];c[ga+4>>2]=c[fa+4>>2];c[ga+8>>2]=c[fa+8>>2];c[ga+12>>2]=c[fa+12>>2];qa=qa+1|0}while((qa|0)!=(K|0))}qa=K-J|0;if((qa|0)<(ta|0)){Ca=pa;Da=qa;Ea=ta;Fa=0}else{fa=(ta|0)>0?ta<<1:1;Ca=mo(t,pa,fa<<4)|0;Da=qa;Ea=fa;Fa=0}}else{Ca=pa;Da=K;Ea=ta;Fa=J}c[Ca+(Da<<4)>>2]=oa;c[Ca+(Da<<4)+4>>2]=N;c[Ca+(Da<<4)+8>>2]=na;c[Ca+(Da<<4)+12>>2]=ha;fa=Da+1|0;qa=oa+1|0;if((fa|0)>=(Ea|0)){if((Da|0)>=(Fa|0)){ga=Fa;do{ja=Ca+(ga-Fa<<4)|0;ma=Ca+(ga<<4)|0;c[ja>>2]=c[ma>>2];c[ja+4>>2]=c[ma+4>>2];c[ja+8>>2]=c[ma+8>>2];c[ja+12>>2]=c[ma+12>>2];ga=ga+1|0}while((ga|0)<(fa|0))}ga=fa-Fa|0;if((ga|0)<(Ea|0)){Ga=Ca;Ha=ga;Ia=Ea;Ja=0}else{ha=(Ea|0)>0?Ea<<1:1;Ga=mo(t,Ca,ha<<4)|0;Ha=ga;Ia=ha;Ja=0}}else{Ga=Ca;Ha=fa;Ia=Ea;Ja=Fa}c[Ga+(Ha<<4)>>2]=qa;c[Ga+(Ha<<4)+4>>2]=N;c[Ga+(Ha<<4)+8>>2]=ia;c[Ga+(Ha<<4)+12>>2]=R;wa=qa;xa=c[D>>2]|0;ya=Ia;za=Ha+1|0;Aa=Ja;Ba=Ga}if((wa|0)<(xa+-1|0)){sa=xa;K=za;ta=ya;J=Aa;pa=Ba;oa=wa}else{Ka=xa;La=ya;Ma=za;Na=Aa;Oa=Ba;break}}Pa=La;Qa=Ma;Ra=Na;Sa=Oa;Ta=c[B>>2]|0;Ua=Ka}else{Pa=O;Qa=L;Ra=P;Sa=ra;Ta=ua;Ua=M}N=N+1|0;if((N|0)>=(Ta|0)){Va=Pa;Wa=Qa;Xa=Ra;Ya=Sa;Za=Ta;break}else{M=Ua;ua=Ta;ra=Sa;P=Ra;L=Qa;O=Pa}}if((Za|0)>1){Pa=c[D>>2]|0;O=Za;Za=Ya;Qa=Xa;L=Wa;Ra=Va;P=0;while(1){Sa=P;P=P+1|0;if((Pa|0)>0){ra=Pa;Ta=L;ua=Ra;Ua=Qa;M=Za;N=0;while(1){Ka=(_(ra,Sa)|0)+N|0;Oa=c[C>>2]|0;Na=c[Oa+(Ka<<2)>>2]|0;Ma=c[Oa+(Ka+ra<<2)>>2]|0;if((Na|0)==(Ma|0)){_a=ra;$a=ua;ab=Ta;bb=Ua;cb=M}else{if((Ta|0)>=(ua|0)){if((Ta|0)>(Ua|0)){Oa=Ua;do{La=M+(Oa-Ua<<4)|0;Ba=M+(Oa<<4)|0;c[La>>2]=c[Ba>>2];c[La+4>>2]=c[Ba+4>>2];c[La+8>>2]=c[Ba+8>>2];c[La+12>>2]=c[Ba+12>>2];Oa=Oa+1|0}while((Oa|0)!=(Ta|0))}Oa=Ta-Ua|0;if((Oa|0)<(ua|0)){db=M;eb=Oa;fb=ua;gb=0}else{qa=(ua|0)>0?ua<<1:1;db=mo(t,M,qa<<4)|0;eb=Oa;fb=qa;gb=0}}else{db=M;eb=Ta;fb=ua;gb=Ua}c[db+(eb<<4)>>2]=N;c[db+(eb<<4)+4>>2]=Sa;c[db+(eb<<4)+8>>2]=Ka;c[db+(eb<<4)+12>>2]=Ma;qa=eb+1|0;Oa=(c[D>>2]|0)+Ka|0;if((qa|0)>=(fb|0)){if((eb|0)>=(gb|0)){R=gb;do{ia=db+(R-gb<<4)|0;fa=db+(R<<4)|0;c[ia>>2]=c[fa>>2];c[ia+4>>2]=c[fa+4>>2];c[ia+8>>2]=c[fa+8>>2];c[ia+12>>2]=c[fa+12>>2];R=R+1|0}while((R|0)<(qa|0))}R=qa-gb|0;if((R|0)<(fb|0)){hb=db;ib=R;jb=fb;kb=0}else{Ka=(fb|0)>0?fb<<1:1;hb=mo(t,db,Ka<<4)|0;ib=R;jb=Ka;kb=0}}else{hb=db;ib=qa;jb=fb;kb=gb}c[hb+(ib<<4)>>2]=N;c[hb+(ib<<4)+4>>2]=P;c[hb+(ib<<4)+8>>2]=Oa;c[hb+(ib<<4)+12>>2]=Na;_a=c[D>>2]|0;$a=jb;ab=ib+1|0;bb=kb;cb=hb}N=N+1|0;if((N|0)>=(_a|0)){lb=_a;mb=$a;nb=ab;ob=bb;pb=cb;break}else{ra=_a;Ta=ab;ua=$a;Ua=bb;M=cb}}qb=mb;rb=nb;sb=ob;tb=pb;ub=c[B>>2]|0;vb=lb}else{qb=Ra;rb=L;sb=Qa;tb=Za;ub=O;vb=Pa}if((P|0)>=(ub+-1|0)){wb=qb;xb=rb;yb=sb;zb=tb;break}else{Pa=vb;O=ub;Za=tb;Qa=sb;L=rb;Ra=qb}}}else{wb=Va;xb=Wa;yb=Xa;zb=Ya}if((yb|0)==(xb|0)){va=zb;no(t,va);return}else{Ab=wb;Bb=xb;Cb=yb;Db=zb}b:while(1){zb=c[C>>2]|0;yb=Cb;while(1){xb=c[Db+(yb<<4)>>2]|0;wb=c[Db+(yb<<4)+4>>2]|0;Ya=c[Db+(yb<<4)+8>>2]|0;Xa=c[Db+(yb<<4)+12>>2]|0;yb=yb+1|0;Wa=zb+(Ya<<2)|0;Va=c[Wa>>2]|0;if((Va|0)!=(Xa|0)?(d=+(xb|0),f=+g[Va>>2]-d,w=+(wb|0),u=+g[Va+4>>2]-w,v=+g[Xa>>2]-d,d=+g[Xa+4>>2]-w,f*f+u*u>v*v+d*d):0){Eb=xb;Fb=wb;Gb=Ya;Hb=Xa;Ib=yb;Jb=Wa;break}if((Bb|0)==(yb|0)){va=Db;Kb=122;break b}}c[Jb>>2]=Hb;if((Eb|0)>0){yb=Eb+-1|0;zb=Gb+-1|0;if((Bb|0)>=(Ab|0)){if((Bb|0)>(Ib|0)){Wa=Ib;do{Xa=Db+(Wa-Ib<<4)|0;Ya=Db+(Wa<<4)|0;c[Xa>>2]=c[Ya>>2];c[Xa+4>>2]=c[Ya+4>>2];c[Xa+8>>2]=c[Ya+8>>2];c[Xa+12>>2]=c[Ya+12>>2];Wa=Wa+1|0}while((Wa|0)!=(Bb|0))}Wa=Bb-Ib|0;if((Wa|0)<(Ab|0)){Lb=Db;Mb=Wa;Nb=Ab;Ob=0}else{Ya=(Ab|0)>0?Ab<<1:1;Lb=mo(t,Db,Ya<<4)|0;Mb=Wa;Nb=Ya;Ob=0}}else{Lb=Db;Mb=Bb;Nb=Ab;Ob=Ib}c[Lb+(Mb<<4)>>2]=yb;c[Lb+(Mb<<4)+4>>2]=Fb;c[Lb+(Mb<<4)+8>>2]=zb;c[Lb+(Mb<<4)+12>>2]=Hb;Pb=Mb+1|0;Qb=Nb;Rb=Ob;Sb=Lb}else{Pb=Bb;Qb=Ab;Rb=Ib;Sb=Db}if((Fb|0)>0){Ya=Fb+-1|0;Wa=Gb-(c[D>>2]|0)|0;if((Pb|0)>=(Qb|0)){if((Pb|0)>(Rb|0)){Xa=Rb;do{wb=Sb+(Xa-Rb<<4)|0;xb=Sb+(Xa<<4)|0;c[wb>>2]=c[xb>>2];c[wb+4>>2]=c[xb+4>>2];c[wb+8>>2]=c[xb+8>>2];c[wb+12>>2]=c[xb+12>>2];Xa=Xa+1|0}while((Xa|0)!=(Pb|0))}Xa=Pb-Rb|0;if((Xa|0)<(Qb|0)){Tb=Sb;Ub=Xa;Vb=Qb;Wb=0}else{zb=(Qb|0)>0?Qb<<1:1;Tb=mo(t,Sb,zb<<4)|0;Ub=Xa;Vb=zb;Wb=0}}else{Tb=Sb;Ub=Pb;Vb=Qb;Wb=Rb}c[Tb+(Ub<<4)>>2]=Eb;c[Tb+(Ub<<4)+4>>2]=Ya;c[Tb+(Ub<<4)+8>>2]=Wa;c[Tb+(Ub<<4)+12>>2]=Hb;Xb=Ub+1|0;Yb=Vb;Zb=Wb;_b=Tb}else{Xb=Pb;Yb=Qb;Zb=Rb;_b=Sb}if((Eb|0)<((c[D>>2]|0)+-1|0)){zb=Eb+1|0;Xa=Gb+1|0;if((Xb|0)>=(Yb|0)){if((Xb|0)>(Zb|0)){yb=Zb;do{xb=_b+(yb-Zb<<4)|0;wb=_b+(yb<<4)|0;c[xb>>2]=c[wb>>2];c[xb+4>>2]=c[wb+4>>2];c[xb+8>>2]=c[wb+8>>2];c[xb+12>>2]=c[wb+12>>2];yb=yb+1|0}while((yb|0)!=(Xb|0))}yb=Xb-Zb|0;if((yb|0)<(Yb|0)){$b=_b;ac=yb;bc=Yb;cc=0}else{Wa=(Yb|0)>0?Yb<<1:1;$b=mo(t,_b,Wa<<4)|0;ac=yb;bc=Wa;cc=0}}else{$b=_b;ac=Xb;bc=Yb;cc=Zb}c[$b+(ac<<4)>>2]=zb;c[$b+(ac<<4)+4>>2]=Fb;c[$b+(ac<<4)+8>>2]=Xa;c[$b+(ac<<4)+12>>2]=Hb;dc=ac+1|0;ec=bc;fc=cc;gc=$b}else{dc=Xb;ec=Yb;fc=Zb;gc=_b}if((Fb|0)<((c[B>>2]|0)+-1|0)){Wa=Fb+1|0;yb=(c[D>>2]|0)+Gb|0;if((dc|0)>=(ec|0)){if((dc|0)>(fc|0)){Ya=fc;do{wb=gc+(Ya-fc<<4)|0;xb=gc+(Ya<<4)|0;c[wb>>2]=c[xb>>2];c[wb+4>>2]=c[xb+4>>2];c[wb+8>>2]=c[xb+8>>2];c[wb+12>>2]=c[xb+12>>2];Ya=Ya+1|0}while((Ya|0)!=(dc|0))}Ya=dc-fc|0;if((Ya|0)<(ec|0)){hc=gc;ic=Ya;jc=ec;kc=0}else{Xa=(ec|0)>0?ec<<1:1;hc=mo(t,gc,Xa<<4)|0;ic=Ya;jc=Xa;kc=0}}else{hc=gc;ic=dc;jc=ec;kc=fc}c[hc+(ic<<4)>>2]=Eb;c[hc+(ic<<4)+4>>2]=Wa;c[hc+(ic<<4)+8>>2]=yb;c[hc+(ic<<4)+12>>2]=Hb;lc=jc;mc=ic+1|0;nc=kc;oc=hc}else{lc=ec;mc=dc;nc=fc;oc=gc}if((nc|0)==(mc|0)){va=oc;Kb=122;break}else{Ab=lc;Bb=mc;Cb=nc;Db=oc}}if((Kb|0)==122){no(t,va);return}}function Kl(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+20|0;if((c[e>>2]|0)<=1)return;f=b+16|0;g=b+24|0;b=c[f>>2]|0;h=0;while(1){if((b|0)>1){i=b;j=0;while(1){k=(_(i,h)|0)+j|0;l=c[g>>2]|0;m=c[l+(k<<2)>>2]|0;n=k+1|0;o=c[l+(n<<2)>>2]|0;p=c[l+(k+i<<2)>>2]|0;k=c[l+(n+i<<2)>>2]|0;do if((o|0)!=(p|0)){do if(!((m|0)==(o|0)|(m|0)==(p|0))){if(((a[m+12>>0]|0)==0?(a[o+12>>0]|0)==0:0)?(a[p+12>>0]|0)==0:0)break;tb[c[(c[d>>2]|0)+8>>2]&31](d,c[m+8>>2]|0,c[o+8>>2]|0,c[p+8>>2]|0)}while(0);if(!((k|0)==(o|0)|(k|0)==(p|0))){if(((a[o+12>>0]|0)==0?(a[k+12>>0]|0)==0:0)?(a[p+12>>0]|0)==0:0)break;tb[c[(c[d>>2]|0)+8>>2]&31](d,c[o+8>>2]|0,c[k+8>>2]|0,c[p+8>>2]|0)}}while(0);j=j+1|0;p=c[f>>2]|0;if((j|0)>=(p+-1|0)){q=p;break}else i=p}}else q=b;h=h+1|0;if((h|0)>=((c[e>>2]|0)+-1|0))break;else b=q}return}function Ll(a){a=a|0;var b=0,d=0,e=0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;c[a+12>>2]=0;g[a+16>>2]=1.0;c[a+20>>2]=0;c[a+24>>2]=0;c[a+28>>2]=-1;g[a+32>>2]=0.0;g[a+36>>2]=0.0;b=2440;d=c[b+4>>2]|0;e=a+40|0;c[e>>2]=c[b>>2];c[e+4>>2]=d;d=2440;e=c[d+4>>2]|0;b=a+48|0;c[b>>2]=c[d>>2];c[b+4>>2]=e;e=a+56|0;c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;c[e+12>>2]=0;g[a+72>>2]=1.0;c[a+76>>2]=0;return}function Ml(a){a=a|0;var b=0,d=0,e=0,f=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.0,t=0.0,u=0.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;b=a+28|0;d=c[a>>2]|0;e=c[d+4>>2]|0;if((c[b>>2]|0)==(e|0))return;f=+g[d+32>>2]*.75;h=f*(+g[d+320>>2]*f);i=a+32|0;g[i>>2]=0.0;j=a+40|0;k=a+44|0;l=a+48|0;m=a+52|0;c[j>>2]=0;c[j+4>>2]=0;c[j+8>>2]=0;c[j+12>>2]=0;n=c[a+4>>2]|0;o=c[a+8>>2]|0;p=(n|0)<(o|0);if(p){q=c[d+96>>2]|0;r=c[d+104>>2]|0;f=0.0;s=0.0;t=0.0;u=0.0;v=0.0;w=n;while(1){x=h+f;y=h*+g[q+(w<<3)+4>>2];z=h*+g[q+(w<<3)>>2]+s;g[j>>2]=z;A=y+t;g[k>>2]=A;y=h*+g[r+(w<<3)+4>>2];B=h*+g[r+(w<<3)>>2]+u;g[l>>2]=B;C=y+v;g[m>>2]=C;w=w+1|0;if((w|0)>=(o|0)){D=x;E=z;F=A;G=B;H=C;break}else{f=x;s=z;t=A;u=B;v=C}}g[i>>2]=D;if(D>0.0){v=1.0/D;D=v*E;g[j>>2]=D;u=v*F;g[k>>2]=u;t=v*G;g[l>>2]=t;s=v*H;g[m>>2]=s;I=D;J=u;K=t;L=s}else{I=E;J=F;K=G;L=H}m=a+36|0;g[m>>2]=0.0;l=a+56|0;g[l>>2]=0.0;if(p){p=c[d+96>>2]|0;k=c[d+104>>2]|0;H=0.0;G=0.0;d=n;while(1){F=+g[p+(d<<3)>>2]-I;E=+g[p+(d<<3)+4>>2]-J;s=h*(F*F+E*E)+H;t=G+h*(F*(+g[k+(d<<3)+4>>2]-L)-E*(+g[k+(d<<3)>>2]-K));d=d+1|0;if((d|0)>=(o|0)){M=s;N=t;break}else{H=s;G=t}}g[m>>2]=M;g[l>>2]=N;if(M>0.0)g[l>>2]=1.0/M*N}}else{g[a+36>>2]=0.0;g[a+56>>2]=0.0}c[b>>2]=e;return}function Nl(a,b){a=a|0;b=b|0;Gm(c[a>>2]|0,c[a+4>>2]|0,c[a+8>>2]|0,b);return}function Ol(a,b){a=a|0;b=b|0;Hm(c[a>>2]|0,c[a+4>>2]|0,c[a+8>>2]|0,b);return}function Pl(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=c[a>>2]|0;if(c[(c[d+400>>2]|0)+102876>>2]&2)return;e=c[a+4>>2]|0;f=a+8|0;if((e|0)>=(c[f>>2]|0))return;_l(d,e,b);d=e+1|0;if((d|0)<(c[f>>2]|0))g=d;else return;do{_l(c[a>>2]|0,g,b);g=g+1|0}while((g|0)<(c[f>>2]|0));return}function Ql(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.0,p=0;f=b+52|0;c[b+56>>2]=f;c[f>>2]=f;c[b+60>>2]=256;f=b+64|0;c[b+68>>2]=f;c[f>>2]=f;f=b+72|0;c[b+76>>2]=f;c[f>>2]=f;f=b+80|0;c[b+136>>2]=0;c[b+140>>2]=0;c[b+148>>2]=0;c[b+152>>2]=0;h=b+196|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;f=b+160|0;i=f+36|0;do{c[f>>2]=0;f=f+4|0}while((f|0)<(i|0));c[h>>2]=e;c[b+200>>2]=0;c[b+204>>2]=0;c[b+208>>2]=0;c[b+212>>2]=e;c[b+216>>2]=0;c[b+220>>2]=0;c[b+224>>2]=0;c[b+228>>2]=e;c[b+232>>2]=0;c[b+236>>2]=0;c[b+240>>2]=0;c[b+244>>2]=e;c[b+248>>2]=0;c[b+252>>2]=0;c[b+256>>2]=0;c[b+260>>2]=e;c[b+264>>2]=0;c[b+268>>2]=0;c[b+272>>2]=0;c[b+276>>2]=e;h=b+280|0;j=b+316|0;a[j>>0]=0;k=b+320|0;c[h>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;c[h+12>>2]=0;g[k>>2]=1.0;l=b+324|0;g[l>>2]=1.0;g[b+328>>2]=1.0;m=b+332|0;c[m>>2]=0;g[b+336>>2]=.05000000074505806;g[b+340>>2]=1.0;g[b+344>>2]=.25;g[b+348>>2]=.25;g[b+352>>2]=.25;g[b+356>>2]=.20000000298023224;g[b+360>>2]=.20000000298023224;g[b+364>>2]=1.0;g[b+368>>2]=.5;g[b+372>>2]=.5;g[b+376>>2]=.20000000298023224;g[b+380>>2]=.20000000298023224;c[b+384>>2]=8;g[b+388>>2]=.5;n=b+392|0;a[n>>0]=1;g[b+396>>2]=.01666666753590107;a[b>>0]=0;c[b+4>>2]=0;c[b+8>>2]=0;a[b+12>>0]=0;c[b+16>>2]=0;a[b+20>>0]=0;a[b+21>>0]=0;c[b+24>>2]=0;a[j>>0]=a[d>>0]|0;o=+g[d+4>>2];g[k>>2]=o;g[b+28>>2]=1.0/o;c[l>>2]=c[d+8>>2];o=+g[d+12>>2]*2.0;g[b+32>>2]=o;g[b+40>>2]=o*o;g[b+36>>2]=1.0/o;c[m>>2]=c[d+16>>2];c[b+44>>2]=0;m=b+48|0;c[m>>2]=0;l=b+112|0;c[b+144>>2]=0;c[b+308>>2]=0;c[b+312>>2]=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;f=j;j=d;i=f+84|0;do{c[f>>2]=c[j>>2];f=f+4|0;j=j+4|0}while((f|0)<(i|0));j=b+400|0;c[j>>2]=e;c[b+156>>2]=0;e=b+296|0;c[e>>2]=0;c[e+4>>2]=0;a[b+304>>0]=0;e=a[n>>0]|0;if(!(e<<24>>24)){a[n>>0]=e;return}f=c[h>>2]|0;if(!f){Ul(b,256);b=Sn(c[j>>2]|0,c[m>>2]<<2)|0;xp(b|0,0,c[m>>2]<<2|0)|0;p=b}else p=f;c[h>>2]=p;a[n>>0]=e;return}function Rl(a){a=a|0;var b=0,d=0,e=0,f=0;b=a+312|0;while(1){d=c[b>>2]|0;if(!d)break;Sl(a,d)}if((c[a+84>>2]|0)==0?(b=a+80|0,d=c[b>>2]|0,(d|0)!=0):0){Tn(c[a+400>>2]|0,d,c[a+48>>2]<<2);c[b>>2]=0}if((c[a+92>>2]|0)==0?(b=a+88|0,d=c[b>>2]|0,(d|0)!=0):0){Tn(c[a+400>>2]|0,d,c[a+48>>2]<<2);c[b>>2]=0}if((c[a+164>>2]|0)==0?(b=a+160|0,d=c[b>>2]|0,(d|0)!=0):0){Tn(c[a+400>>2]|0,d,c[a+48>>2]<<2);c[b>>2]=0}if((c[a+172>>2]|0)==0?(b=a+168|0,d=c[b>>2]|0,(d|0)!=0):0){Tn(c[a+400>>2]|0,d,c[a+48>>2]<<2);c[b>>2]=0}if((c[a+180>>2]|0)==0?(b=a+176|0,d=c[b>>2]|0,(d|0)!=0):0){Tn(c[a+400>>2]|0,d,c[a+48>>2]<<2);c[b>>2]=0}if((c[a+100>>2]|0)==0?(b=a+96|0,d=c[b>>2]|0,(d|0)!=0):0){Tn(c[a+400>>2]|0,d,c[a+48>>2]<<3);c[b>>2]=0}if((c[a+108>>2]|0)==0?(b=a+104|0,d=c[b>>2]|0,(d|0)!=0):0){Tn(c[a+400>>2]|0,d,c[a+48>>2]<<3);c[b>>2]=0}if((c[a+140>>2]|0)==0?(b=a+136|0,d=c[b>>2]|0,(d|0)!=0):0){Tn(c[a+400>>2]|0,d,c[a+48>>2]<<2);c[b>>2]=0}if((c[a+152>>2]|0)==0?(b=a+148|0,d=c[b>>2]|0,(d|0)!=0):0){Tn(c[a+400>>2]|0,d,c[a+48>>2]<<2);c[b>>2]=0}if((c[a+284>>2]|0)==0?(b=a+280|0,d=c[b>>2]|0,(d|0)!=0):0){Tn(c[a+400>>2]|0,d,c[a+48>>2]<<2);c[b>>2]=0}if((c[a+292>>2]|0)==0?(b=a+288|0,d=c[b>>2]|0,(d|0)!=0):0){Tn(c[a+400>>2]|0,d,c[a+48>>2]<<2);c[b>>2]=0}b=a+112|0;d=a+48|0;e=c[b>>2]|0;if(e){Tn(c[a+400>>2]|0,e,c[d>>2]<<3);c[b>>2]=0}b=a+116|0;e=c[b>>2]|0;if(e){Tn(c[a+400>>2]|0,e,c[d>>2]<<2);c[b>>2]=0}b=a+120|0;e=c[b>>2]|0;if(e){Tn(c[a+400>>2]|0,e,c[d>>2]<<2);c[b>>2]=0}b=a+124|0;e=c[b>>2]|0;if(e){Tn(c[a+400>>2]|0,e,c[d>>2]<<2);c[b>>2]=0}b=a+128|0;e=c[b>>2]|0;if(e){Tn(c[a+400>>2]|0,e,c[d>>2]<<3);c[b>>2]=0}b=a+132|0;e=c[b>>2]|0;if(e){Tn(c[a+400>>2]|0,e,c[d>>2]<<2);c[b>>2]=0}b=a+144|0;e=c[b>>2]|0;if(e){Tn(c[a+400>>2]|0,e,c[d>>2]<<2);c[b>>2]=0}b=a+264|0;d=c[b>>2]|0;if(d){e=a+272|0;Tn(c[a+276>>2]|0,d,(c[e>>2]|0)*60|0);c[b>>2]=0;c[e>>2]=0;c[a+268>>2]=0}e=a+248|0;b=c[e>>2]|0;if(b){d=a+256|0;Tn(c[a+260>>2]|0,b,(c[d>>2]|0)*20|0);c[e>>2]=0;c[d>>2]=0;c[a+252>>2]=0}d=a+232|0;e=c[d>>2]|0;if(e){b=a+240|0;Tn(c[a+244>>2]|0,e,(c[b>>2]|0)*28|0);c[d>>2]=0;c[b>>2]=0;c[a+236>>2]=0}b=a+216|0;d=c[b>>2]|0;if(d){e=a+224|0;Tn(c[a+228>>2]|0,d,(c[e>>2]|0)*24|0);c[b>>2]=0;c[e>>2]=0;c[a+220>>2]=0}e=a+200|0;b=c[e>>2]|0;if(b){d=a+208|0;Tn(c[a+212>>2]|0,b,c[d>>2]<<3);c[e>>2]=0;c[d>>2]=0;c[a+204>>2]=0}d=a+184|0;e=c[d>>2]|0;if(!e){f=a+52|0;Km(f);return}b=a+192|0;Tn(c[a+196>>2]|0,e,c[b>>2]<<2);c[d>>2]=0;c[b>>2]=0;c[a+188>>2]=0;f=a+52|0;Km(f);return}function Sl(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+400|0;f=c[(c[e>>2]|0)+102992>>2]|0;if(f)kb[c[(c[f>>2]|0)+16>>2]&63](f,d);f=d+12|0;g=c[f>>2]|0;h=g<<4;i=h&16;if(((h|-17)^16)&g)a[b+20>>0]=1;g=b+16|0;h=c[g>>2]|0;if(i&~h)c[g>>2]=h|i;c[f>>2]=i;i=c[d+4>>2]|0;f=c[d+8>>2]|0;if((i|0)<(f|0)){h=b+144|0;g=i;do{c[(c[h>>2]|0)+(g<<2)>>2]=0;g=g+1|0}while((g|0)<(f|0))}f=c[d+20>>2]|0;g=d+24|0;if(f)c[f+24>>2]=c[g>>2];h=c[g>>2]|0;if(h)c[h+20>>2]=f;f=b+312|0;if((c[f>>2]|0)!=(d|0)){j=b+308|0;k=c[j>>2]|0;l=k+-1|0;c[j>>2]=l;m=c[e>>2]|0;Tn(m,d,80);return}c[f>>2]=h;j=b+308|0;k=c[j>>2]|0;l=k+-1|0;c[j>>2]=l;m=c[e>>2]|0;Tn(m,d,80);return}function Tl(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;b=a+136|0;d=c[b>>2]|0;if(d){e=d;c[b>>2]=e;return e|0}d=a+48|0;f=c[d>>2]|0;if(!f){Ul(a,256);g=c[d>>2]|0}else g=f;f=Sn(c[a+400>>2]|0,g<<2)|0;xp(f|0,0,c[d>>2]<<2|0)|0;e=f;c[b>>2]=e;return e|0}function Ul(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0;d=c[a+332>>2]|0;e=(d|0)!=0&(d|0)<(b|0)?d:b;b=a+92|0;d=c[b>>2]|0;f=(d|0)!=0&(e|0)>(d|0)?d:e;e=a+100|0;g=c[e>>2]|0;h=(g|0)!=0&(f|0)>(g|0)?g:f;f=a+108|0;g=c[f>>2]|0;i=(g|0)!=0&(h|0)>(g|0)?g:h;h=a+140|0;g=c[h>>2]|0;j=(g|0)!=0&(i|0)>(g|0)?g:i;i=a+152|0;g=c[i>>2]|0;k=(g|0)!=0&(j|0)>(g|0)?g:j;j=a+48|0;g=c[j>>2]|0;if((g|0)>=(k|0))return;l=a+80|0;m=c[l>>2]|0;if((m|0)==0|(c[a+84>>2]|0)!=0){n=m;o=g;p=d}else{d=a+400|0;q=Sn(c[d>>2]|0,k<<2)|0;r=g<<2;Bp(q|0,m|0,r|0)|0;Tn(c[d>>2]|0,m,r);n=q;o=c[j>>2]|0;p=c[b>>2]|0}c[l>>2]=n;c[a+60>>2]=k-o;n=a+88|0;l=c[n>>2]|0;if(!p){p=a+400|0;b=Sn(c[p>>2]|0,k<<2)|0;if(!l)s=b;else{q=o<<2;Bp(b|0,l|0,q|0)|0;Tn(c[p>>2]|0,l,q);s=b}}else s=l;c[n>>2]=s;s=(c[a+156>>2]|0)>0;n=c[j>>2]|0;l=a+160|0;b=c[l>>2]|0;q=(b|0)==0;if(!((c[a+164>>2]|0)!=0|s&q)){p=a+400|0;o=Sn(c[p>>2]|0,k<<2)|0;if(q)t=o;else{q=n<<2;Bp(o|0,b|0,q|0)|0;Tn(c[p>>2]|0,b,q);t=o}}else t=b;c[l>>2]=t;t=c[j>>2]|0;l=a+168|0;b=c[l>>2]|0;o=(b|0)==0;if(!((c[a+172>>2]|0)!=0|s&o)){q=a+400|0;p=Sn(c[q>>2]|0,k<<2)|0;if(o)u=p;else{o=t<<2;Bp(p|0,b|0,o|0)|0;Tn(c[q>>2]|0,b,o);u=p}}else u=b;c[l>>2]=u;u=c[j>>2]|0;l=a+176|0;b=c[l>>2]|0;p=(b|0)==0;if(!((c[a+180>>2]|0)!=0|s&p)){s=a+400|0;o=Sn(c[s>>2]|0,k<<2)|0;if(p)v=o;else{p=u<<2;Bp(o|0,b|0,p|0)|0;Tn(c[s>>2]|0,b,p);v=o}}else v=b;c[l>>2]=v;v=c[j>>2]|0;l=a+96|0;b=c[l>>2]|0;if(!(c[e>>2]|0)){e=a+400|0;o=Sn(c[e>>2]|0,k<<3)|0;if(!b)w=o;else{p=v<<3;Bp(o|0,b|0,p|0)|0;Tn(c[e>>2]|0,b,p);w=o}}else w=b;c[l>>2]=w;w=c[j>>2]|0;l=a+104|0;b=c[l>>2]|0;if(!(c[f>>2]|0)){f=a+400|0;o=k<<3;p=Sn(c[f>>2]|0,o)|0;if(!b){x=p;y=o;z=f}else{e=w<<3;Bp(p|0,b|0,e|0)|0;Tn(c[f>>2]|0,b,e);x=p;y=o;z=f}}else{x=b;y=k<<3;z=a+400|0}c[l>>2]=x;x=a+112|0;l=c[x>>2]|0;b=c[j>>2]|0;f=Sn(c[z>>2]|0,y)|0;if(l){o=b<<3;Bp(f|0,l|0,o|0)|0;Tn(c[z>>2]|0,l,o)}c[x>>2]=f;f=a+116|0;x=c[f>>2]|0;o=c[j>>2]|0;l=k<<2;b=Sn(c[z>>2]|0,l)|0;if(x){p=o<<2;Bp(b|0,x|0,p|0)|0;Tn(c[z>>2]|0,x,p)}c[f>>2]=b;b=a+120|0;f=c[b>>2]|0;if(!f)A=0;else{p=c[j>>2]|0;x=Sn(c[z>>2]|0,l)|0;o=p<<2;Bp(x|0,f|0,o|0)|0;Tn(c[z>>2]|0,f,o);A=x}c[b>>2]=A;A=a+124|0;b=c[A>>2]|0;x=c[j>>2]|0;o=Sn(c[z>>2]|0,l)|0;if(b){f=x<<2;Bp(o|0,b|0,f|0)|0;Tn(c[z>>2]|0,b,f)}c[A>>2]=o;o=a+128|0;A=c[o>>2]|0;if(!A)B=0;else{f=c[j>>2]|0;b=Sn(c[z>>2]|0,y)|0;y=f<<3;Bp(b|0,A|0,y|0)|0;Tn(c[z>>2]|0,A,y);B=b}c[o>>2]=B;B=a+132|0;o=c[B>>2]|0;if(!o)C=0;else{b=c[j>>2]|0;y=Sn(c[z>>2]|0,l)|0;A=b<<2;Bp(y|0,o|0,A|0)|0;Tn(c[z>>2]|0,o,A);C=y}c[B>>2]=C;C=a+136|0;B=c[C>>2]|0;if((B|0)==0|(c[h>>2]|0)!=0)D=B;else{h=c[j>>2]|0;y=Sn(c[z>>2]|0,l)|0;A=h<<2;Bp(y|0,B|0,A|0)|0;Tn(c[z>>2]|0,B,A);D=y}c[C>>2]=D;D=a+144|0;C=c[D>>2]|0;y=c[j>>2]|0;A=Sn(c[z>>2]|0,l)|0;if(C){B=y<<2;Bp(A|0,C|0,B|0)|0;Tn(c[z>>2]|0,C,B)}c[D>>2]=A;A=a+148|0;D=c[A>>2]|0;if((D|0)==0|(c[i>>2]|0)!=0)E=D;else{i=c[j>>2]|0;B=Sn(c[z>>2]|0,l)|0;C=i<<2;Bp(B|0,D|0,C|0)|0;Tn(c[z>>2]|0,D,C);E=B}c[A>>2]=E;E=a+280|0;A=c[E>>2]|0;if((A|0)==0|(c[a+284>>2]|0)!=0)F=A;else{B=c[j>>2]|0;C=Sn(c[z>>2]|0,l)|0;D=B<<2;Bp(C|0,A|0,D|0)|0;Tn(c[z>>2]|0,A,D);F=C}c[E>>2]=F;F=a+288|0;E=c[F>>2]|0;if((E|0)==0|(c[a+292>>2]|0)!=0)G=E;else{a=c[j>>2]|0;C=Sn(c[z>>2]|0,l)|0;l=a<<2;Bp(C|0,E|0,l|0)|0;Tn(c[z>>2]|0,E,l);G=C}c[F>>2]=G;c[j>>2]=k;return}function Vl(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.0,y=0.0;e=b+400|0;if(c[(c[e>>2]|0)+102876>>2]&2){f=0;return f|0}h=b+44|0;i=c[h>>2]|0;j=b+48|0;k=c[j>>2]|0;if((i|0)<(k|0)){l=i;m=k}else{Ul(b,(i|0)==0?256:i<<1);l=c[h>>2]|0;m=c[j>>2]|0}do if((l|0)>=(m|0))if(!(a[b+392>>0]|0)){f=-1;return f|0}else{i=c[b+288>>2]|0;k=c[i+(l+-1<<2)>>2]|0;n=(c[(c[b+280>>2]|0)+(k<<2)>>2]|0)>0?k:c[i>>2]|0;i=b+88|0;Zl(b,n,c[(c[i>>2]|0)+(n<<2)>>2]|2);Wl(b);o=i;p=c[h>>2]|0;break}else{o=b+88|0;p=l}while(0);l=p+1|0;c[h>>2]=l;c[(c[o>>2]|0)+(p<<2)>>2]=0;o=c[b+160>>2]|0;if(o)c[o+(p<<2)>>2]=0;o=c[b+168>>2]|0;if(o)c[o+(p<<2)>>2]=0;o=c[b+176>>2]|0;if(o)c[o+(p<<2)>>2]=0;o=d+4|0;h=c[o+4>>2]|0;m=(c[b+96>>2]|0)+(p<<3)|0;c[m>>2]=c[o>>2];c[m+4>>2]=h;h=d+12|0;m=c[h+4>>2]|0;o=(c[b+104>>2]|0)+(p<<3)|0;c[o>>2]=c[h>>2];c[o+4>>2]=m;g[(c[b+116>>2]|0)+(p<<2)>>2]=0.0;m=2440;o=c[m+4>>2]|0;h=(c[b+112>>2]|0)+(p<<3)|0;c[h>>2]=c[m>>2];c[h+4>>2]=o;o=c[b+120>>2]|0;if(o)g[o+(p<<2)>>2]=0.0;o=c[b+132>>2]|0;if(o)g[o+(p<<2)>>2]=0.0;o=b+136|0;h=c[o>>2]|0;m=d+20|0;do if(!h){if((((a[m>>0]|0)==0?(a[d+21>>0]|0)==0:0)?(a[d+22>>0]|0)==0:0)?(a[d+23>>0]|0)==0:0)break;i=c[j>>2]|0;if(!i){Ul(b,256);q=c[j>>2]|0}else q=i;i=Sn(c[e>>2]|0,q<<2)|0;xp(i|0,0,c[j>>2]<<2|0)|0;r=i;s=26}else{r=h;s=26}while(0);if((s|0)==26){c[o>>2]=r;o=a[d+21>>0]|0;h=a[d+22>>0]|0;q=a[d+23>>0]|0;a[r+(p<<2)>>0]=a[m>>0]|0;a[r+(p<<2)+1>>0]=o;a[r+(p<<2)+2>>0]=h;a[r+(p<<2)+3>>0]=q}q=b+148|0;r=c[q>>2]|0;h=d+28|0;if(!r){if(c[h>>2]|0){o=c[j>>2]|0;if(!o){Ul(b,256);t=c[j>>2]|0}else t=o;o=Sn(c[e>>2]|0,t<<2)|0;xp(o|0,0,c[j>>2]<<2|0)|0;u=o;s=32}}else{u=r;s=32}if((s|0)==32){c[q>>2]=u;c[u+(p<<2)>>2]=c[h>>2]}h=c[b+80>>2]|0;if(h)c[h+(p<<2)>>2]=0;h=b+200|0;u=b+204|0;q=c[u>>2]|0;s=b+208|0;r=c[s>>2]|0;if((q|0)>=(r|0)?(o=(r|0)==0?256:r<<1,(r|0)<(o|0)):0){r=b+212|0;j=Sn(c[r>>2]|0,o<<3)|0;t=c[h>>2]|0;if(!t)v=h;else{Bp(j|0,t|0,c[u>>2]<<3|0)|0;Tn(c[r>>2]|0,c[h>>2]|0,c[s>>2]<<3);v=h}c[s>>2]=o;c[v>>2]=j;w=c[u>>2]|0}else w=q;c[u>>2]=w+1;u=c[h>>2]|0;x=+g[d+24>>2];h=x>0.0;if(h|(c[b+280>>2]|0)!=0){if(h)y=x;else{h=c[b+296+4>>2]|0;y=+g[b+396>>2]*+(((h|0)<0?0-h|0:0)-h|0)}Xl(b,p,y);c[(c[b+288>>2]|0)+(p<<2)>>2]=p}c[u+(w<<3)>>2]=p;w=c[d+32>>2]|0;c[(c[b+144>>2]|0)+(p<<2)>>2]=w;do if(w){u=w+4|0;h=c[u>>2]|0;q=w+8|0;j=c[q>>2]|0;if((h|0)<(j|0)){Yl(b,h,j,p);c[q>>2]=l;break}else{c[u>>2]=p;c[q>>2]=l;break}}while(0);Zl(b,p,c[d>>2]|0);f=p;return f|0}function Wl(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,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;d=b+400|0;e=b+44|0;f=lo((c[d>>2]|0)+76|0,c[e>>2]<<2)|0;if((c[e>>2]|0)>0){g=b+88|0;h=b+80|0;i=b+160|0;j=b+168|0;k=b+176|0;l=b+96|0;m=b+104|0;n=b+144|0;o=b+21|0;p=b+120|0;q=b+132|0;r=b+136|0;s=b+148|0;t=b+280|0;u=b+112|0;v=b+64|0;w=0;x=0;y=0;while(1){z=c[g>>2]|0;A=c[z+(x<<2)>>2]|0;if(!(A&2)){c[f+(x<<2)>>2]=y;if((x|0)!=(y|0)){B=c[h>>2]|0;if(!B)C=z;else{z=c[B+(x<<2)>>2]|0;if(z)c[z+8>>2]=y;c[B+(y<<2)>>2]=z;C=c[g>>2]|0}c[C+(y<<2)>>2]=c[C+(x<<2)>>2];z=c[i>>2]|0;if(z)c[z+(y<<2)>>2]=c[z+(x<<2)>>2];z=c[j>>2]|0;if(z)c[z+(y<<2)>>2]=c[z+(x<<2)>>2];z=c[k>>2]|0;if(z)c[z+(y<<2)>>2]=c[z+(x<<2)>>2];z=c[l>>2]|0;B=z+(x<<3)|0;D=c[B+4>>2]|0;E=z+(y<<3)|0;c[E>>2]=c[B>>2];c[E+4>>2]=D;D=c[m>>2]|0;E=D+(x<<3)|0;B=c[E+4>>2]|0;z=D+(y<<3)|0;c[z>>2]=c[E>>2];c[z+4>>2]=B;B=c[n>>2]|0;c[B+(y<<2)>>2]=c[B+(x<<2)>>2];if(a[o>>0]|0){B=c[u>>2]|0;z=B+(x<<3)|0;E=c[z+4>>2]|0;D=B+(y<<3)|0;c[D>>2]=c[z>>2];c[D+4>>2]=E}E=c[p>>2]|0;if(E)c[E+(y<<2)>>2]=c[E+(x<<2)>>2];E=c[q>>2]|0;if(E)c[E+(y<<2)>>2]=c[E+(x<<2)>>2];E=c[r>>2]|0;if(E){D=a[E+(x<<2)+1>>0]|0;z=a[E+(x<<2)+2>>0]|0;B=a[E+(x<<2)+3>>0]|0;a[E+(y<<2)>>0]=a[E+(x<<2)>>0]|0;a[E+(y<<2)+1>>0]=D;a[E+(y<<2)+2>>0]=z;a[E+(y<<2)+3>>0]=B}B=c[s>>2]|0;if(B)c[B+(y<<2)>>2]=c[B+(x<<2)>>2];B=c[t>>2]|0;if(B)c[B+(y<<2)>>2]=c[B+(x<<2)>>2]}F=A|w;G=y+1|0}else{B=c[(c[d>>2]|0)+102992>>2]|0;if((A&512|0)!=0&(B|0)!=0)mb[c[(c[B>>2]|0)+20>>2]&7](B,b,x);B=c[h>>2]|0;if((B|0)!=0?(A=B+(x<<2)|0,B=c[A>>2]|0,(B|0)!=0):0){c[B+8>>2]=-1;c[A>>2]=0;Pn(v,B)}c[f+(x<<2)>>2]=-1;F=w;G=y}x=x+1|0;if((x|0)>=(c[e>>2]|0)){H=F;I=G;break}else{w=F;y=G}}}else{H=0;I=0}G=b+204|0;y=c[G>>2]|0;F=b+200|0;w=c[F>>2]|0;if((y|0)>0){x=0;do{v=w+(x<<3)|0;c[v>>2]=c[f+(c[v>>2]<<2)>>2];x=x+1|0}while((x|0)<(y|0))}x=w+(y<<3)|0;a:do if(!y){J=w;K=40}else{v=w;while(1){if((c[v>>2]|0)<0){J=v;K=40;break a}v=v+8|0;if((v|0)==(x|0)){L=x;M=w;break}}}while(0);if((K|0)==40)if((J|0)==(x|0)){L=x;M=w}else{w=J;y=J;b:while(1){J=y;while(1){v=J+8|0;if((v|0)==(x|0)){N=w;break b}if((c[v>>2]|0)<0)J=v;else{O=v;break}}J=O;v=c[J+4>>2]|0;h=w;c[h>>2]=c[J>>2];c[h+4>>2]=v;w=w+8|0;y=O}L=N;M=c[F>>2]|0}c[G>>2]=L-M>>3;M=b+220|0;L=c[M>>2]|0;G=b+216|0;F=c[G>>2]|0;if((L|0)>0){N=0;do{O=F+(N*24|0)|0;y=F+(N*24|0)+4|0;w=c[f+(c[y>>2]<<2)>>2]|0;c[O>>2]=c[f+(c[O>>2]<<2)>>2];c[y>>2]=w;N=N+1|0}while((N|0)<(L|0))}N=F+(L*24|0)|0;c:do if(!L){P=F;K=52}else{w=F;while(1){if((c[w>>2]|0)<0){P=w;K=52;break c}if((c[w+4>>2]|0)<0){P=w;K=52;break c}w=w+24|0;if((w|0)==(N|0)){Q=N;R=F;break}}}while(0);if((K|0)==52)if((P|0)==(N|0)){Q=N;R=F}else{F=P+24|0;d:do if((F|0)==(N|0))S=P;else{L=P;w=F;y=P;while(1){O=w;x=y;while(1){if((c[O>>2]|0)>=0?(c[x+28>>2]|0)>=0:0){T=O;break}v=O+24|0;if((v|0)==(N|0)){S=L;break d}else{h=O;O=v;x=h}}c[L>>2]=c[T>>2];c[L+4>>2]=c[T+4>>2];c[L+8>>2]=c[T+8>>2];c[L+12>>2]=c[T+12>>2];c[L+16>>2]=c[T+16>>2];c[L+20>>2]=c[T+20>>2];x=L+24|0;O=T+24|0;if((O|0)==(N|0)){S=x;break}else{L=x;w=O;y=T}}}while(0);Q=S;R=c[G>>2]|0}c[M>>2]=(Q-R|0)/24|0;R=b+236|0;Q=c[R>>2]|0;M=b+232|0;G=c[M>>2]|0;if((Q|0)>0){S=0;do{T=G+(S*28|0)|0;c[T>>2]=c[f+(c[T>>2]<<2)>>2];S=S+1|0}while((S|0)<(Q|0))}S=G+(Q*28|0)|0;e:do if(!Q){U=G;K=65}else{T=G;while(1){if((c[T>>2]|0)<0){U=T;K=65;break e}T=T+28|0;if((T|0)==(S|0)){V=S;W=G;break}}}while(0);if((K|0)==65)if((U|0)==(S|0)){V=S;W=G}else{G=U;Q=U;f:while(1){U=Q;while(1){T=U+28|0;if((T|0)==(S|0)){X=G;break f}if((c[T>>2]|0)<0)U=T;else{Y=T;break}}c[G>>2]=c[Y>>2];c[G+4>>2]=c[Y+4>>2];c[G+8>>2]=c[Y+8>>2];c[G+12>>2]=c[Y+12>>2];c[G+16>>2]=c[Y+16>>2];c[G+20>>2]=c[Y+20>>2];c[G+24>>2]=c[Y+24>>2];G=G+28|0;Q=Y}V=X;W=c[M>>2]|0}c[R>>2]=(V-W|0)/28|0;W=b+252|0;V=c[W>>2]|0;R=b+248|0;M=c[R>>2]|0;if((V|0)>0){X=0;do{Y=M+(X*20|0)|0;c[Y>>2]=c[f+(c[Y>>2]<<2)>>2];Y=M+(X*20|0)+4|0;c[Y>>2]=c[f+(c[Y>>2]<<2)>>2];X=X+1|0}while((X|0)<(V|0))}X=M+(V*20|0)|0;g:do if(!V){Z=M;K=76}else{Y=M;while(1){if((c[Y+4>>2]|c[Y>>2]|0)<0){Z=Y;K=76;break g}Y=Y+20|0;if((Y|0)==(X|0)){_=X;$=M;break}}}while(0);if((K|0)==76)if((Z|0)==(X|0)){_=X;$=M}else{M=Z;V=Z;h:while(1){Z=V;while(1){Y=Z+20|0;if((Y|0)==(X|0)){aa=M;break h}if((c[Z+24>>2]|c[Y>>2]|0)<0)Z=Y;else{ba=Y;break}}c[M>>2]=c[ba>>2];c[M+4>>2]=c[ba+4>>2];c[M+8>>2]=c[ba+8>>2];c[M+12>>2]=c[ba+12>>2];c[M+16>>2]=c[ba+16>>2];M=M+20|0;V=ba}_=aa;$=c[R>>2]|0}c[W>>2]=(_-$|0)/20|0;$=b+268|0;_=c[$>>2]|0;W=b+264|0;R=c[W>>2]|0;if((_|0)>0){aa=0;do{ba=R+(aa*60|0)|0;c[ba>>2]=c[f+(c[ba>>2]<<2)>>2];ba=R+(aa*60|0)+4|0;c[ba>>2]=c[f+(c[ba>>2]<<2)>>2];ba=R+(aa*60|0)+8|0;c[ba>>2]=c[f+(c[ba>>2]<<2)>>2];aa=aa+1|0}while((aa|0)<(_|0))}aa=R+(_*60|0)|0;i:do if(!_){ca=R;K=89}else{ba=R;while(1){if((c[ba>>2]|0)<0){ca=ba;K=89;break i}if((c[ba+4>>2]|0)<0){ca=ba;K=89;break i}if((c[ba+8>>2]|0)<0){ca=ba;K=89;break i}ba=ba+60|0;if((ba|0)==(aa|0)){da=aa;ea=R;break}}}while(0);if((K|0)==89)if((ca|0)==(aa|0)){da=aa;ea=R}else{R=ca+60|0;j:do if((R|0)==(aa|0))fa=ca;else{K=ca;_=R;ba=ca;while(1){V=_;M=ba;while(1){if(((c[V>>2]|0)>=0?(c[M+64>>2]|0)>=0:0)?(c[M+68>>2]|0)>=0:0){ga=V;break}X=V+60|0;if((X|0)==(aa|0)){fa=K;break j}else{Z=V;V=X;M=Z}}M=K;V=ga;Z=M+60|0;do{c[M>>2]=c[V>>2];M=M+4|0;V=V+4|0}while((M|0)<(Z|0));V=K+60|0;M=ga+60|0;if((M|0)==(aa|0)){fa=V;break}else{K=V;_=M;ba=ga}}}while(0);da=fa;ea=c[W>>2]|0}c[$>>2]=(da-ea|0)/60|0;ea=c[b+288>>2]|0;if((ea|0)!=0?(da=c[e>>2]|0,(da|0)>0):0){$=da;da=0;W=0;while(1){fa=c[f+(c[ea+(da<<2)>>2]<<2)>>2]|0;if((fa|0)==-1){ha=$;ia=W}else{c[ea+(W<<2)>>2]=fa;ha=c[e>>2]|0;ia=W+1|0}da=da+1|0;if((da|0)>=(ha|0))break;else{$=ha;W=ia}}}ia=b+312|0;W=c[ia>>2]|0;if(W){ha=b+16|0;$=b+132|0;da=b+48|0;ea=b+20|0;fa=W;do{W=fa+4|0;ga=c[W>>2]|0;aa=fa+8|0;ca=c[aa>>2]|0;if((ga|0)<(ca|0)){R=I;ba=ga;ga=0;_=0;while(1){K=c[f+(ba<<2)>>2]|0;if((K|0)>-1){M=K+1|0;ja=(R|0)<(K|0)?R:K;ka=(ga|0)>(M|0)?ga:M;la=_}else{ja=R;ka=ga;la=1}ba=ba+1|0;if((ba|0)>=(ca|0)){ma=ja;na=ka;oa=la;break}else{R=ja;ga=ka;_=la}}}else{ma=I;na=0;oa=0}if((ma|0)<(na|0)){c[W>>2]=ma;c[aa>>2]=na;if(oa?(_=fa+12|0,ga=c[_>>2]|0,(ga&1|0)!=0):0){R=ga|16;ga=c[ha>>2]|0;if(R&~ga){ca=c[$>>2]|0;if(!ca){ba=c[da>>2]|0;if(!ba){Ul(b,256);pa=c[da>>2]|0}else pa=ba;ba=Sn(c[d>>2]|0,pa<<2)|0;xp(ba|0,0,c[da>>2]<<2|0)|0;qa=ba;ra=c[ha>>2]|0}else{qa=ca;ra=ga}c[$>>2]=qa;c[ha>>2]=ra|R}c[_>>2]=R}}else{c[W>>2]=0;c[aa>>2]=0;R=fa+12|0;_=c[R>>2]|0;if(!(_&4)){ga=_|8;if((_&-9^-9)&_)a[ea>>0]=1;ca=c[ha>>2]|0;if(ga&~ca){if(!(_&1))sa=ca;else{_=c[$>>2]|0;if(!_){ba=c[da>>2]|0;if(!ba){Ul(b,256);ta=c[da>>2]|0}else ta=ba;ba=Sn(c[d>>2]|0,ta<<2)|0;xp(ba|0,0,c[da>>2]<<2|0)|0;ua=ba;va=c[ha>>2]|0}else{ua=_;va=ca}c[$>>2]=ua;sa=va}c[ha>>2]=sa|ga}c[R>>2]=ga}}fa=c[fa+24>>2]|0}while((fa|0)!=0)}c[e>>2]=I;no((c[d>>2]|0)+76|0,f);c[b+8>>2]=H;a[b+12>>0]=0;H=c[ia>>2]|0;if(!H)return;else wa=H;do{H=wa;wa=c[wa+24>>2]|0;if(c[H+12>>2]&8)Sl(b,H)}while((wa|0)!=0);return}function Xl(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;f=b+288|0;h=c[f>>2]|0;i=(h|0)==0;j=b+280|0;k=c[j>>2]|0;if(!k){l=b+48|0;m=c[l>>2]|0;if(!m){Ul(b,256);n=c[l>>2]|0}else n=m;m=Sn(c[b+400>>2]|0,n<<2)|0;xp(m|0,0,c[l>>2]<<2|0)|0;o=m;p=c[f>>2]|0}else{o=k;p=h}c[j>>2]=o;if(!p){o=b+48|0;h=c[o>>2]|0;if(!h){Ul(b,256);q=c[o>>2]|0}else q=h;h=Sn(c[b+400>>2]|0,q<<2)|0;xp(h|0,0,c[o>>2]<<2|0)|0;r=h}else r=p;c[f>>2]=r;if(i?(i=c[b+44>>2]|0,(i|0)>0):0){f=0;do{c[r+(f<<2)>>2]=f;f=f+1|0}while((f|0)!=(i|0))}i=~~(e/+g[b+396>>2]);if((i|0)>0)s=(c[b+296+4>>2]|0)+i|0;else s=i;i=(c[j>>2]|0)+(d<<2)|0;if((s|0)==(c[i>>2]|0))return;c[i>>2]=s;a[b+304>>0]=1;return}function Yl(b,e,f,g){b=b|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=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,Ea=0,Fa=0,Ga=0,Ha=0,Ia=0,Ja=0;if((e|0)==(f|0)|(g|0)==(f|0))return;h=c[b+88>>2]|0;i=h+(e<<2)|0;j=h+(f<<2)|0;k=h+(g<<2)|0;a:do if((e+1|0)!=(f|0)){if((f+1|0)==(g|0)){l=h+(g+-1<<2)|0;m=c[l>>2]|0;n=l-i|0;Cp(h+(g-(n>>2)<<2)|0,i|0,n|0)|0;c[i>>2]=m;break}m=j;n=m-i>>2;l=k;o=l-m>>2;if((n|0)==(o|0)){m=i;p=j;while(1){q=c[m>>2]|0;c[m>>2]=c[p>>2];c[p>>2]=q;m=m+4|0;if((m|0)==(j|0))break a;else p=p+4|0}}else{r=n;s=o}while(1){p=(r|0)%(s|0)|0;if(!p){t=s;break}else{m=s;s=p;r=m}}if(t){o=n+-1|0;m=n+e|0;p=h+(t+e<<2)|0;do{q=p;p=p+-4|0;u=c[p>>2]|0;v=p;w=q+(o<<2)|0;while(1){c[v>>2]=c[w>>2];q=l-w>>2;x=(n|0)<(q|0)?w+(n<<2)|0:h+(m-q<<2)|0;if((x|0)==(p|0)){y=w;break}else{q=w;w=x;v=q}}c[y>>2]=u}while((p|0)!=(i|0))}}else{p=c[i>>2]|0;m=k-j|0;Cp(i|0,j|0,m|0)|0;c[h+((m>>2)+e<<2)>>2]=p}while(0);h=c[b+160>>2]|0;b:do if(h){j=h+(e<<2)|0;i=h+(f<<2)|0;k=h+(g<<2)|0;if((e+1|0)==(f|0)){y=c[j>>2]|0;t=k-i|0;Cp(j|0,i|0,t|0)|0;c[h+((t>>2)+e<<2)>>2]=y;break}if((f+1|0)==(g|0)){y=h+(g+-1<<2)|0;t=c[y>>2]|0;r=y-j|0;Cp(h+(g-(r>>2)<<2)|0,j|0,r|0)|0;c[j>>2]=t;break}t=i;r=t-j>>2;y=k;k=y-t>>2;if((r|0)==(k|0)){t=j;s=i;while(1){p=c[t>>2]|0;c[t>>2]=c[s>>2];c[s>>2]=p;t=t+4|0;if((t|0)==(i|0))break b;else s=s+4|0}}else{z=r;A=k}while(1){s=(z|0)%(A|0)|0;if(!s){B=A;break}else{i=A;A=s;z=i}}if(B){k=r+-1|0;i=r+e|0;s=h+(B+e<<2)|0;do{t=s;s=s+-4|0;p=c[s>>2]|0;m=s;n=t+(k<<2)|0;while(1){c[m>>2]=c[n>>2];t=y-n>>2;l=(r|0)<(t|0)?n+(r<<2)|0:h+(i-t<<2)|0;if((l|0)==(s|0)){C=n;break}else{t=n;n=l;m=t}}c[C>>2]=p}while((s|0)!=(j|0))}}while(0);C=c[b+168>>2]|0;c:do if(C){h=C+(e<<2)|0;B=C+(f<<2)|0;z=C+(g<<2)|0;if((e+1|0)==(f|0)){A=c[h>>2]|0;j=z-B|0;Cp(h|0,B|0,j|0)|0;c[C+((j>>2)+e<<2)>>2]=A;break}if((f+1|0)==(g|0)){A=C+(g+-1<<2)|0;j=c[A>>2]|0;s=A-h|0;Cp(C+(g-(s>>2)<<2)|0,h|0,s|0)|0;c[h>>2]=j;break}j=B;s=j-h>>2;A=z;z=A-j>>2;if((s|0)==(z|0)){j=h;i=B;while(1){r=c[j>>2]|0;c[j>>2]=c[i>>2];c[i>>2]=r;j=j+4|0;if((j|0)==(B|0))break c;else i=i+4|0}}else{D=s;E=z}while(1){i=(D|0)%(E|0)|0;if(!i){F=E;break}else{B=E;E=i;D=B}}if(F){z=s+-1|0;B=s+e|0;i=C+(F+e<<2)|0;do{j=i;i=i+-4|0;r=c[i>>2]|0;y=i;k=j+(z<<2)|0;while(1){c[y>>2]=c[k>>2];j=A-k>>2;m=(s|0)<(j|0)?k+(s<<2)|0:C+(B-j<<2)|0;if((m|0)==(i|0)){G=k;break}else{j=k;k=m;y=j}}c[G>>2]=r}while((i|0)!=(h|0))}}while(0);G=c[b+176>>2]|0;d:do if(G){C=G+(e<<2)|0;F=G+(f<<2)|0;D=G+(g<<2)|0;if((e+1|0)==(f|0)){E=c[C>>2]|0;h=D-F|0;Cp(C|0,F|0,h|0)|0;c[G+((h>>2)+e<<2)>>2]=E;break}if((f+1|0)==(g|0)){E=G+(g+-1<<2)|0;h=c[E>>2]|0;i=E-C|0;Cp(G+(g-(i>>2)<<2)|0,C|0,i|0)|0;c[C>>2]=h;break}h=F;i=h-C>>2;E=D;D=E-h>>2;if((i|0)==(D|0)){h=C;B=F;while(1){s=c[h>>2]|0;c[h>>2]=c[B>>2];c[B>>2]=s;h=h+4|0;if((h|0)==(F|0))break d;else B=B+4|0}}else{H=i;I=D}while(1){B=(H|0)%(I|0)|0;if(!B){J=I;break}else{F=I;I=B;H=F}}if(J){D=i+-1|0;F=i+e|0;B=G+(J+e<<2)|0;do{h=B;B=B+-4|0;s=c[B>>2]|0;A=B;z=h+(D<<2)|0;while(1){c[A>>2]=c[z>>2];h=E-z>>2;y=(i|0)<(h|0)?z+(i<<2)|0:G+(F-h<<2)|0;if((y|0)==(B|0)){K=z;break}else{h=z;z=y;A=h}}c[K>>2]=s}while((B|0)!=(C|0))}}while(0);K=c[b+96>>2]|0;G=K+(e<<3)|0;J=K+(f<<3)|0;H=K+(g<<3)|0;e:do if((e+1|0)!=(f|0)){if((f+1|0)==(g|0)){I=K+(g+-1<<3)|0;C=I;B=c[C>>2]|0;F=c[C+4>>2]|0;C=I-G|0;Cp(K+(g-(C>>3)<<3)|0,G|0,C|0)|0;C=G;c[C>>2]=B;c[C+4>>2]=F;break}F=J;C=F-G>>3;B=H;I=B-F>>3;if((C|0)==(I|0)){F=G;i=J;while(1){E=F;D=c[E>>2]|0;A=c[E+4>>2]|0;E=i;z=c[E+4>>2]|0;r=F;c[r>>2]=c[E>>2];c[r+4>>2]=z;z=i;c[z>>2]=D;c[z+4>>2]=A;F=F+8|0;if((F|0)==(J|0))break e;else i=i+8|0}}else{L=C;M=I}while(1){i=(L|0)%(M|0)|0;if(!i){N=M;break}else{F=M;M=i;L=F}}if(N){I=C+-1|0;F=C+e|0;i=K+(N+e<<3)|0;do{A=i;i=i+-8|0;z=i;D=c[z>>2]|0;r=c[z+4>>2]|0;z=i;E=A+(I<<3)|0;while(1){A=E;h=c[A+4>>2]|0;y=z;c[y>>2]=c[A>>2];c[y+4>>2]=h;h=B-E>>3;y=(C|0)<(h|0)?E+(C<<3)|0:K+(F-h<<3)|0;if((y|0)==(i|0)){O=E;break}else{h=E;E=y;z=h}}z=O;c[z>>2]=D;c[z+4>>2]=r}while((i|0)!=(G|0))}}else{i=G;F=c[i>>2]|0;C=c[i+4>>2]|0;i=H-J|0;Cp(G|0,J|0,i|0)|0;B=K+((i>>3)+e<<3)|0;c[B>>2]=F;c[B+4>>2]=C}while(0);K=c[b+104>>2]|0;J=K+(e<<3)|0;G=K+(f<<3)|0;H=K+(g<<3)|0;f:do if((e+1|0)!=(f|0)){if((f+1|0)==(g|0)){O=K+(g+-1<<3)|0;N=O;L=c[N>>2]|0;M=c[N+4>>2]|0;N=O-J|0;Cp(K+(g-(N>>3)<<3)|0,J|0,N|0)|0;N=J;c[N>>2]=L;c[N+4>>2]=M;break}M=G;N=M-J>>3;L=H;O=L-M>>3;if((N|0)==(O|0)){M=J;C=G;while(1){B=M;F=c[B>>2]|0;i=c[B+4>>2]|0;B=C;I=c[B+4>>2]|0;z=M;c[z>>2]=c[B>>2];c[z+4>>2]=I;I=C;c[I>>2]=F;c[I+4>>2]=i;M=M+8|0;if((M|0)==(G|0))break f;else C=C+8|0}}else{P=N;Q=O}while(1){C=(P|0)%(Q|0)|0;if(!C){R=Q;break}else{M=Q;Q=C;P=M}}if(R){O=N+-1|0;M=N+e|0;C=K+(R+e<<3)|0;do{i=C;C=C+-8|0;I=C;F=c[I>>2]|0;z=c[I+4>>2]|0;I=C;B=i+(O<<3)|0;while(1){i=B;E=c[i+4>>2]|0;s=I;c[s>>2]=c[i>>2];c[s+4>>2]=E;E=L-B>>3;s=(N|0)<(E|0)?B+(N<<3)|0:K+(M-E<<3)|0;if((s|0)==(C|0)){S=B;break}else{E=B;B=s;I=E}}I=S;c[I>>2]=F;c[I+4>>2]=z}while((C|0)!=(J|0))}}else{C=J;M=c[C>>2]|0;N=c[C+4>>2]|0;C=H-G|0;Cp(J|0,G|0,C|0)|0;L=K+((C>>3)+e<<3)|0;c[L>>2]=M;c[L+4>>2]=N}while(0);K=c[b+144>>2]|0;G=K+(e<<2)|0;J=K+(f<<2)|0;H=K+(g<<2)|0;g:do if((e+1|0)!=(f|0)){if((f+1|0)==(g|0)){S=K+(g+-1<<2)|0;R=c[S>>2]|0;P=S-G|0;Cp(K+(g-(P>>2)<<2)|0,G|0,P|0)|0;c[G>>2]=R;break}R=J;P=R-G>>2;S=H;Q=S-R>>2;if((P|0)==(Q|0)){R=G;N=J;while(1){L=c[R>>2]|0;c[R>>2]=c[N>>2];c[N>>2]=L;R=R+4|0;if((R|0)==(J|0))break g;else N=N+4|0}}else{T=P;U=Q}while(1){N=(T|0)%(U|0)|0;if(!N){V=U;break}else{R=U;U=N;T=R}}if(V){Q=P+-1|0;R=P+e|0;N=K+(V+e<<2)|0;do{L=N;N=N+-4|0;M=c[N>>2]|0;C=N;O=L+(Q<<2)|0;while(1){c[C>>2]=c[O>>2];L=S-O>>2;I=(P|0)<(L|0)?O+(P<<2)|0:K+(R-L<<2)|0;if((I|0)==(N|0)){W=O;break}else{L=O;O=I;C=L}}c[W>>2]=M}while((N|0)!=(G|0))}}else{N=c[G>>2]|0;R=H-J|0;Cp(G|0,J|0,R|0)|0;c[K+((R>>2)+e<<2)>>2]=N}while(0);h:do if(a[b+21>>0]|0){K=c[b+112>>2]|0;J=K+(e<<3)|0;G=K+(f<<3)|0;H=K+(g<<3)|0;if((e+1|0)==(f|0)){W=J;V=c[W>>2]|0;T=c[W+4>>2]|0;W=H-G|0;Cp(J|0,G|0,W|0)|0;U=K+((W>>3)+e<<3)|0;c[U>>2]=V;c[U+4>>2]=T;break}if((f+1|0)==(g|0)){T=K+(g+-1<<3)|0;U=T;V=c[U>>2]|0;W=c[U+4>>2]|0;U=T-J|0;Cp(K+(g-(U>>3)<<3)|0,J|0,U|0)|0;U=J;c[U>>2]=V;c[U+4>>2]=W;break}W=G;U=W-J>>3;V=H;H=V-W>>3;if((U|0)==(H|0)){W=J;T=G;while(1){N=W;R=c[N>>2]|0;P=c[N+4>>2]|0;N=T;S=c[N+4>>2]|0;Q=W;c[Q>>2]=c[N>>2];c[Q+4>>2]=S;S=T;c[S>>2]=R;c[S+4>>2]=P;W=W+8|0;if((W|0)==(G|0))break h;else T=T+8|0}}else{X=U;Y=H}while(1){T=(X|0)%(Y|0)|0;if(!T){Z=Y;break}else{G=Y;Y=T;X=G}}if(Z){H=U+-1|0;G=U+e|0;T=K+(Z+e<<3)|0;do{W=T;T=T+-8|0;P=T;S=c[P>>2]|0;R=c[P+4>>2]|0;P=T;Q=W+(H<<3)|0;while(1){W=Q;N=c[W+4>>2]|0;C=P;c[C>>2]=c[W>>2];c[C+4>>2]=N;N=V-Q>>3;C=(U|0)<(N|0)?Q+(U<<3)|0:K+(G-N<<3)|0;if((C|0)==(T|0)){_=Q;break}else{N=Q;Q=C;P=N}}P=_;c[P>>2]=S;c[P+4>>2]=R}while((T|0)!=(J|0))}}while(0);_=c[b+120>>2]|0;i:do if(_){Z=_+(e<<2)|0;X=_+(f<<2)|0;Y=_+(g<<2)|0;if((e+1|0)==(f|0)){J=c[Z>>2]|0;T=Y-X|0;Cp(Z|0,X|0,T|0)|0;c[_+((T>>2)+e<<2)>>2]=J;break}if((f+1|0)==(g|0)){J=_+(g+-1<<2)|0;T=c[J>>2]|0;G=J-Z|0;Cp(_+(g-(G>>2)<<2)|0,Z|0,G|0)|0;c[Z>>2]=T;break}T=X;G=T-Z>>2;J=Y;Y=J-T>>2;if((G|0)==(Y|0)){T=Z;K=X;while(1){U=c[T>>2]|0;c[T>>2]=c[K>>2];c[K>>2]=U;T=T+4|0;if((T|0)==(X|0))break i;else K=K+4|0}}else{$=G;aa=Y}while(1){K=($|0)%(aa|0)|0;if(!K){ba=aa;break}else{X=aa;aa=K;$=X}}if(ba){Y=G+-1|0;X=G+e|0;K=_+(ba+e<<2)|0;do{T=K;K=K+-4|0;U=c[K>>2]|0;V=K;H=T+(Y<<2)|0;while(1){c[V>>2]=c[H>>2];T=J-H>>2;P=(G|0)<(T|0)?H+(G<<2)|0:_+(X-T<<2)|0;if((P|0)==(K|0)){ca=H;break}else{T=H;H=P;V=T}}c[ca>>2]=U}while((K|0)!=(Z|0))}}while(0);ca=c[b+132>>2]|0;j:do if(ca){_=ca+(e<<2)|0;ba=ca+(f<<2)|0;$=ca+(g<<2)|0;if((e+1|0)==(f|0)){aa=c[_>>2]|0;Z=$-ba|0;Cp(_|0,ba|0,Z|0)|0;c[ca+((Z>>2)+e<<2)>>2]=aa;break}if((f+1|0)==(g|0)){aa=ca+(g+-1<<2)|0;Z=c[aa>>2]|0;K=aa-_|0;Cp(ca+(g-(K>>2)<<2)|0,_|0,K|0)|0;c[_>>2]=Z;break}Z=ba;K=Z-_>>2;aa=$;$=aa-Z>>2;if((K|0)==($|0)){Z=_;X=ba;while(1){G=c[Z>>2]|0;c[Z>>2]=c[X>>2];c[X>>2]=G;Z=Z+4|0;if((Z|0)==(ba|0))break j;else X=X+4|0}}else{da=K;ea=$}while(1){X=(da|0)%(ea|0)|0;if(!X){fa=ea;break}else{ba=ea;ea=X;da=ba}}if(fa){$=K+-1|0;ba=K+e|0;X=ca+(fa+e<<2)|0;do{Z=X;X=X+-4|0;G=c[X>>2]|0;J=X;Y=Z+($<<2)|0;while(1){c[J>>2]=c[Y>>2];Z=aa-Y>>2;V=(K|0)<(Z|0)?Y+(K<<2)|0:ca+(ba-Z<<2)|0;if((V|0)==(X|0)){ga=Y;break}else{Z=Y;Y=V;J=Z}}c[ga>>2]=G}while((X|0)!=(_|0))}}while(0);ga=c[b+136>>2]|0;k:do if(ga){ca=ga+(f<<2)|0;fa=ga+(g<<2)|0;da=g<<2;ea=f<<2;_=ga+(e<<2)|0;X=ca;ba=ca;while(1){ca=d[_>>0]|d[_+1>>0]<<8|d[_+2>>0]<<16|d[_+3>>0]<<24;K=ba+1|0;aa=a[K>>0]|0;$=ba+2|0;J=a[$>>0]|0;Y=ba+3|0;U=a[Y>>0]|0;a[_>>0]=a[ba>>0]|0;a[_+1>>0]=aa;a[_+2>>0]=J;a[_+3>>0]=U;a[ba>>0]=ca;a[K>>0]=ca>>>8;a[$>>0]=ca>>>16;a[Y>>0]=ca>>>24;ca=_+4|0;Y=ba+4|0;ha=(ca|0)==(X|0);if((Y|0)==(fa|0))break;_=ca;X=ha?Y:X;ba=Y}if(!ha){ba=ga+(e+1+((da+-4-ea|0)>>>2)<<2)|0;_=X;Y=X;while(1){ca=ba;$=Y;while(1){K=d[ca>>0]|d[ca+1>>0]<<8|d[ca+2>>0]<<16|d[ca+3>>0]<<24;U=$+1|0;J=a[U>>0]|0;aa=$+2|0;Z=a[aa>>0]|0;V=$+3|0;H=a[V>>0]|0;a[ca>>0]=a[$>>0]|0;a[ca+1>>0]=J;a[ca+2>>0]=Z;a[ca+3>>0]=H;a[$>>0]=K;a[U>>0]=K>>>8;a[aa>>0]=K>>>16;a[V>>0]=K>>>24;ca=ca+4|0;K=$+4|0;V=(ca|0)==(_|0);if((K|0)!=(fa|0)){ia=ca;ja=K;ka=V;break}if(V)break k;else $=_}ba=ia;_=ka?ja:_;Y=ja}}}while(0);ja=c[b+148>>2]|0;l:do if(ja){ka=ja+(e<<2)|0;ia=ja+(f<<2)|0;ga=ja+(g<<2)|0;if((e+1|0)==(f|0)){ha=c[ka>>2]|0;Y=ga-ia|0;Cp(ka|0,ia|0,Y|0)|0;c[ja+((Y>>2)+e<<2)>>2]=ha;break}if((f+1|0)==(g|0)){ha=ja+(g+-1<<2)|0;Y=c[ha>>2]|0;_=ha-ka|0;Cp(ja+(g-(_>>2)<<2)|0,ka|0,_|0)|0;c[ka>>2]=Y;break}Y=ia;_=Y-ka>>2;ha=ga;ga=ha-Y>>2;if((_|0)==(ga|0)){Y=ka;ba=ia;while(1){fa=c[Y>>2]|0;c[Y>>2]=c[ba>>2];c[ba>>2]=fa;Y=Y+4|0;if((Y|0)==(ia|0))break l;else ba=ba+4|0}}else{la=_;ma=ga}while(1){ba=(la|0)%(ma|0)|0;if(!ba){na=ma;break}else{ia=ma;ma=ba;la=ia}}if(na){ga=_+-1|0;ia=_+e|0;ba=ja+(na+e<<2)|0;do{Y=ba;ba=ba+-4|0;fa=c[ba>>2]|0;X=ba;ea=Y+(ga<<2)|0;while(1){c[X>>2]=c[ea>>2];Y=ha-ea>>2;da=(_|0)<(Y|0)?ea+(_<<2)|0:ja+(ia-Y<<2)|0;if((da|0)==(ba|0)){oa=ea;break}else{Y=ea;ea=da;X=Y}}c[oa>>2]=fa}while((ba|0)!=(ka|0))}}while(0);oa=b+80|0;ja=c[oa>>2]|0;if(ja){na=ja+(e<<2)|0;la=ja+(f<<2)|0;ma=ja+(g<<2)|0;m:do if((e+1|0)!=(f|0)){if((f+1|0)==(g|0)){ka=ja+(g+-1<<2)|0;ba=c[ka>>2]|0;ia=ka-na|0;Cp(ja+(g-(ia>>2)<<2)|0,na|0,ia|0)|0;c[na>>2]=ba;break}ba=la;ia=ba-na>>2;ka=ma;_=ka-ba>>2;if((ia|0)==(_|0)){ba=na;ha=la;while(1){ga=c[ba>>2]|0;c[ba>>2]=c[ha>>2];c[ha>>2]=ga;ba=ba+4|0;if((ba|0)==(la|0))break m;else ha=ha+4|0}}else{pa=ia;qa=_}while(1){ha=(pa|0)%(qa|0)|0;if(!ha){ra=qa;break}else{ba=qa;qa=ha;pa=ba}}if(ra){_=ia+-1|0;ba=ia+e|0;ha=ja+(ra+e<<2)|0;do{ga=ha;ha=ha+-4|0;X=c[ha>>2]|0;ea=ha;Y=ga+(_<<2)|0;while(1){c[ea>>2]=c[Y>>2];ga=ka-Y>>2;da=(ia|0)<(ga|0)?Y+(ia<<2)|0:ja+(ba-ga<<2)|0;if((da|0)==(ha|0)){sa=Y;break}else{ga=Y;Y=da;ea=ga}}c[sa>>2]=X}while((ha|0)!=(na|0))}}else{ha=c[na>>2]|0;ba=ma-la|0;Cp(na|0,la|0,ba|0)|0;c[ja+((ba>>2)+e<<2)>>2]=ha}while(0);if((e|0)<(g|0)){ja=c[oa>>2]|0;oa=g-f|0;la=e-f|0;na=e;do{ma=c[ja+(na<<2)>>2]|0;if(ma){sa=ma+8|0;ma=c[sa>>2]|0;do if((ma|0)>=(e|0))if((ma|0)<(f|0)){ta=oa+ma|0;break}else{ta=ma+((ma|0)<(g|0)?la:0)|0;break}else ta=ma;while(0);c[sa>>2]=ta}na=na+1|0}while((na|0)!=(g|0))}}na=c[b+280>>2]|0;if(na){ta=na+(e<<2)|0;la=na+(f<<2)|0;oa=na+(g<<2)|0;n:do if((e+1|0)==(f|0)){ja=c[ta>>2]|0;ma=oa-la|0;Cp(ta|0,la|0,ma|0)|0;c[na+((ma>>2)+e<<2)>>2]=ja}else{if((f+1|0)==(g|0)){ja=na+(g+-1<<2)|0;ma=c[ja>>2]|0;ra=ja-ta|0;Cp(na+(g-(ra>>2)<<2)|0,ta|0,ra|0)|0;c[ta>>2]=ma;break}ma=la;ra=ma-ta>>2;ja=oa;pa=ja-ma>>2;if((ra|0)==(pa|0)){ma=ta;qa=la;while(1){ha=c[ma>>2]|0;c[ma>>2]=c[qa>>2];c[qa>>2]=ha;ma=ma+4|0;if((ma|0)==(la|0))break n;else qa=qa+4|0}}else{ua=ra;va=pa}while(1){qa=(ua|0)%(va|0)|0;if(!qa){wa=va;break}else{ma=va;va=qa;ua=ma}}if(!wa)break;pa=ra+-1|0;ma=ra+e|0;qa=na+(wa+e<<2)|0;do{sa=qa;qa=qa+-4|0;ha=c[qa>>2]|0;ba=qa;ia=sa+(pa<<2)|0;while(1){c[ba>>2]=c[ia>>2];sa=ja-ia>>2;ka=(ra|0)<(sa|0)?ia+(ra<<2)|0:na+(ma-sa<<2)|0;if((ka|0)==(qa|0)){xa=ia;break}else{sa=ia;ia=ka;ba=sa}}c[xa>>2]=ha}while((qa|0)!=(ta|0))}while(0);ta=c[b+44>>2]|0;xa=c[b+288>>2]|0;if((ta|0)>0){na=g-f|0;wa=e-f|0;ua=0;do{va=xa+(ua<<2)|0;la=c[va>>2]|0;do if((la|0)>=(e|0))if((la|0)<(f|0)){ya=na+la|0;break}else{ya=la+((la|0)<(g|0)?wa:0)|0;break}else ya=la;while(0);c[va>>2]=ya;ua=ua+1|0}while((ua|0)!=(ta|0))}}ta=c[b+204>>2]|0;if((ta|0)>0){ua=c[b+200>>2]|0;ya=g-f|0;wa=e-f|0;na=0;do{xa=ua+(na<<3)|0;la=c[xa>>2]|0;do if((la|0)>=(e|0))if((la|0)<(f|0)){za=ya+la|0;break}else{za=la+((la|0)<(g|0)?wa:0)|0;break}else za=la;while(0);c[xa>>2]=za;na=na+1|0}while((na|0)<(ta|0))}ta=c[b+220>>2]|0;if((ta|0)>0){na=c[b+216>>2]|0;za=g-f|0;wa=e-f|0;ya=0;do{ua=na+(ya*24|0)|0;la=c[ua>>2]|0;do if((la|0)>=(e|0))if((la|0)<(f|0)){Aa=za+la|0;break}else{Aa=la+((la|0)<(g|0)?wa:0)|0;break}else Aa=la;while(0);la=na+(ya*24|0)+4|0;xa=c[la>>2]|0;do if((xa|0)>=(e|0))if((xa|0)<(f|0)){Ba=za+xa|0;break}else{Ba=xa+((xa|0)<(g|0)?wa:0)|0;break}else Ba=xa;while(0);c[ua>>2]=Aa;c[la>>2]=Ba;ya=ya+1|0}while((ya|0)<(ta|0))}ta=c[b+236>>2]|0;if((ta|0)>0){ya=c[b+232>>2]|0;Ba=g-f|0;Aa=e-f|0;wa=0;do{za=ya+(wa*28|0)|0;na=c[za>>2]|0;do if((na|0)>=(e|0))if((na|0)<(f|0)){Ca=Ba+na|0;break}else{Ca=na+((na|0)<(g|0)?Aa:0)|0;break}else Ca=na;while(0);c[za>>2]=Ca;wa=wa+1|0}while((wa|0)<(ta|0))}ta=c[b+252>>2]|0;if((ta|0)>0){wa=c[b+248>>2]|0;Ca=g-f|0;Aa=e-f|0;Ba=0;do{ya=wa+(Ba*20|0)|0;na=c[ya>>2]|0;do if((na|0)>=(e|0))if((na|0)<(f|0)){Da=Ca+na|0;break}else{Da=na+((na|0)<(g|0)?Aa:0)|0;break}else Da=na;while(0);c[ya>>2]=Da;na=wa+(Ba*20|0)+4|0;za=c[na>>2]|0;do if((za|0)>=(e|0))if((za|0)<(f|0)){Ea=Ca+za|0;break}else{Ea=za+((za|0)<(g|0)?Aa:0)|0;break}else Ea=za;while(0);c[na>>2]=Ea;Ba=Ba+1|0}while((Ba|0)<(ta|0))}ta=c[b+268>>2]|0;if((ta|0)>0){Ba=c[b+264>>2]|0;Ea=g-f|0;Aa=e-f|0;Ca=0;do{wa=Ba+(Ca*60|0)|0;Da=c[wa>>2]|0;do if((Da|0)>=(e|0))if((Da|0)<(f|0)){Fa=Ea+Da|0;break}else{Fa=Da+((Da|0)<(g|0)?Aa:0)|0;break}else Fa=Da;while(0);c[wa>>2]=Fa;Da=Ba+(Ca*60|0)+4|0;na=c[Da>>2]|0;do if((na|0)>=(e|0))if((na|0)<(f|0)){Ga=Ea+na|0;break}else{Ga=na+((na|0)<(g|0)?Aa:0)|0;break}else Ga=na;while(0);c[Da>>2]=Ga;na=Ba+(Ca*60|0)+8|0;wa=c[na>>2]|0;do if((wa|0)>=(e|0))if((wa|0)<(f|0)){Ha=Ea+wa|0;break}else{Ha=wa+((wa|0)<(g|0)?Aa:0)|0;break}else Ha=wa;while(0);c[na>>2]=Ha;Ca=Ca+1|0}while((Ca|0)<(ta|0))}ta=c[b+312>>2]|0;if(!ta)return;b=e-f|0;Ca=g-f|0;Ha=ta;do{ta=Ha+4|0;Aa=c[ta>>2]|0;do if((Aa|0)>=(e|0))if((Aa|0)<(f|0)){Ia=Ca+Aa|0;break}else{Ia=Aa+((Aa|0)<(g|0)?b:0)|0;break}else Ia=Aa;while(0);c[ta>>2]=Ia;Aa=Ha+8|0;na=c[Aa>>2]|0;Ea=na+-1|0;do if((na|0)>(e|0))if((na|0)>(f|0)){Ja=Ea+((na|0)>(g|0)?0:b)|0;break}else{Ja=Ca+Ea|0;break}else Ja=Ea;while(0);c[Aa>>2]=Ja+1;Ha=c[Ha+24>>2]|0}while((Ha|0)!=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;f=(c[b+88>>2]|0)+(d<<2)|0;if(c[f>>2]&~e)a[b+12>>0]=1;d=b+8|0;if(!(~c[d>>2]&e)){c[f>>2]=e;return}if(e&128){g=b+128|0;h=c[g>>2]|0;if(!h){i=b+48|0;j=c[i>>2]|0;if(!j){Ul(b,256);k=c[i>>2]|0}else k=j;j=Sn(c[b+400>>2]|0,k<<3)|0;xp(j|0,0,c[i>>2]<<3|0)|0;l=j}else l=h;c[g>>2]=l}if(e&256){l=b+136|0;g=c[l>>2]|0;if(!g){h=b+48|0;j=c[h>>2]|0;if(!j){Ul(b,256);m=c[h>>2]|0}else m=j;j=Sn(c[b+400>>2]|0,m<<2)|0;xp(j|0,0,c[h>>2]<<2|0)|0;n=j}else n=g;c[l>>2]=n}c[d>>2]=c[d>>2]|e;c[f>>2]=e;return}function _l(a,b,d){a=a|0;b=b|0;d=d|0;Zl(a,b,c[(c[a+88>>2]|0)+(b<<2)>>2]|(d?514:2));return}function $l(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0;g=i;i=i+64|0;h=g+16|0;j=g;k=b+400|0;if(c[(c[k>>2]|0)+102876>>2]&2){l=0;i=g;return l|0}c[h>>2]=2152;m=h+12|0;c[h+4>>2]=b;c[h+8>>2]=d;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];a[h+28>>0]=f&1;f=h+32|0;c[f>>2]=0;tb[c[(c[d>>2]|0)+28>>2]&31](d,j,e,0);$k(c[k>>2]|0,h,j);l=c[f>>2]|0;i=g;return l|0}function am(d,e,f,h){d=d|0;e=e|0;f=f|0;h=h|0;var j=0,k=0,l=0,m=0.0,n=0.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,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=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;j=i;i=i+96|0;k=j+48|0;l=j;m=+g[f+52>>2];if(m==0.0)n=+g[d+32>>2]*.75;else n=m;o=fb[c[(c[e>>2]|0)+12>>2]&7](e)|0;if((o|0)<=0){i=j;return}p=l+4|0;q=l+8|0;r=l+28|0;s=e+4|0;t=l+12|0;u=e+12|0;v=l+20|0;w=l+12|0;x=l+24|0;y=l+16|0;z=k+4|0;A=k+12|0;B=k+20|0;C=k+21|0;D=k+22|0;E=k+23|0;F=k+24|0;G=k+28|0;H=k+32|0;I=h+12|0;J=h+8|0;K=h+4|0;L=k+8|0;M=f+28|0;N=f+8|0;P=f+12|0;Q=f+20|0;R=f+24|0;S=k+16|0;T=f+32|0;U=f+33|0;V=f+34|0;W=f+35|0;X=f+64|0;Y=f+68|0;Z=0;m=0.0;while(1){c[l>>2]=916;c[p>>2]=1;g[q>>2]=.009999999776482582;c[r>>2]=0;c[r+4>>2]=0;c[r+8>>2]=0;c[r+12>>2]=0;b[r+16>>1]=0;if((c[s>>2]|0)==1){_=s;$=c[_+4>>2]|0;aa=p;c[aa>>2]=c[_>>2];c[aa+4>>2]=$;c[t>>2]=c[u>>2];c[t+4>>2]=c[u+4>>2];c[t+8>>2]=c[u+8>>2];c[t+12>>2]=c[u+12>>2];c[t+16>>2]=c[u+16>>2];c[t+20>>2]=c[u+20>>2];c[t+24>>2]=c[u+24>>2];c[t+28>>2]=c[u+28>>2];b[t+32>>1]=b[u+32>>1]|0}else Vf(e,l,Z);ba=+g[w>>2];ca=+g[v>>2]-ba;da=+g[y>>2];ea=+g[x>>2]-da;fa=+O(+(ca*ca+ea*ea));a:do if(m>2]|0;_=c[$+4>>2]|0;$=z;c[$>>2]=aa;c[$+4>>2]=_;$=A;c[$>>2]=aa;c[$+4>>2]=_;c[H>>2]=0;c[k>>2]=c[f>>2];ja=+g[I>>2];ma=+g[J>>2];na=+g[h>>2]+(ka*ja-la*ma);oa=la*ja+ka*ma+ +g[K>>2];g[z>>2]=na;g[L>>2]=oa;ma=+g[M>>2];ka=ma*(na-+g[N>>2])+ +g[R>>2];g[A>>2]=+g[Q>>2]-ma*(oa-+g[P>>2]);g[S>>2]=ka;_=a[U>>0]|0;$=a[V>>0]|0;aa=a[W>>0]|0;a[B>>0]=a[T>>0]|0;a[C>>0]=_;a[D>>0]=$;a[E>>0]=aa;c[F>>2]=c[X>>2];c[G>>2]=c[Y>>2];Vl(d,k)|0;ka=n+ia;if(!(ka>2];ha=+g[y>>2];ia=ka}}else pa=m;while(0);Z=Z+1|0;if((Z|0)==(o|0))break;else m=pa-fa}i=j;return}function bm(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,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,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=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.0,_=0.0,$=0.0,aa=0.0,ba=0.0,ca=0.0,da=0.0,ea=0.0;h=i;i=i+80|0;j=h+40|0;k=h+24|0;l=h+8|0;m=h;n=+g[e+52>>2];if(n==0.0)o=+g[b+32>>2]*.75;else o=n;g[k>>2]=0.0;g[k+4>>2]=0.0;g[k+8>>2]=0.0;g[k+12>>2]=1.0;tb[c[(c[d>>2]|0)+28>>2]&31](d,l,k,0);n=o*+M(+(+g[l+4>>2]/o));p=l+12|0;q=+g[p>>2];if(!(n>2];U=n;while(1){n=o*+M(+(+g[l>>2]/o));if(n>2]=V;g[s>>2]=U;if(lb[c[(c[d>>2]|0)+16>>2]&15](d,k,m)|0){W=2440;X=c[W>>2]|0;Y=c[W+4>>2]|0;W=t;c[W>>2]=X;c[W+4>>2]=Y;W=u;c[W>>2]=X;c[W+4>>2]=Y;c[B>>2]=0;c[j>>2]=c[e>>2];n=+g[C>>2];Z=+g[m>>2];_=+g[D>>2];$=+g[s>>2];aa=+g[f>>2]+(n*Z-_*$);ba=Z*_+n*$+ +g[E>>2];g[t>>2]=aa;g[F>>2]=ba;$=+g[G>>2];n=$*(aa-+g[H>>2])+ +g[K>>2];g[u>>2]=+g[J>>2]-$*(ba-+g[I>>2]);g[L>>2]=n;Y=a[O>>0]|0;W=a[P>>0]|0;X=a[Q>>0]|0;a[v>>0]=a[N>>0]|0;a[w>>0]=Y;a[x>>0]=W;a[y>>0]=X;c[z>>2]=c[R>>2];c[A>>2]=c[S>>2];Vl(b,j)|0}V=o+V;n=+g[r>>2]}while(V>2];ea=ca}else{da=T;ea=q}U=o+U;if(!(U>2]|0)+102876>>2]&2){m=0;i=e;return m|0}n=+g[d+16>>2];o=d+8|0;p=c[o>>2]|0;q=c[o+4>>2]|0;o=h;c[o>>2]=p;c[o+4>>2]=q;r=+R(+n);g[h+8>>2]=r;s=+Q(+n);g[h+12>>2]=s;o=b+44|0;t=c[o>>2]|0;u=c[d+40>>2]|0;n=(c[k>>2]=p,+g[k>>2]);v=(c[k>>2]=q,+g[k>>2]);a:do if(u)switch(c[u+4>>2]|0){case 3:case 1:{am(b,u,d,h);break a;break}case 0:case 2:{bm(b,u,d,h);break a;break}default:break a}while(0);u=c[d+44>>2]|0;if(u){q=c[d+48>>2]|0;c[f>>2]=2180;c[f+12>>2]=u;c[f+16>>2]=q;bm(b,f,d,h)}q=d+56|0;if((c[q>>2]|0)>0){u=d+60|0;p=f+4|0;w=f+12|0;x=f+20|0;y=f+21|0;z=f+22|0;A=f+23|0;B=f+24|0;C=f+28|0;D=f+32|0;E=f+8|0;F=d+28|0;G=d+8|0;H=d+12|0;I=d+20|0;J=d+24|0;K=f+16|0;L=d+32|0;M=d+33|0;N=d+34|0;O=d+35|0;P=d+64|0;S=d+68|0;T=0;do{U=c[u>>2]|0;V=+g[U+(T<<3)>>2];W=+g[U+(T<<3)+4>>2];U=2440;X=c[U>>2]|0;Y=c[U+4>>2]|0;U=p;c[U>>2]=X;c[U+4>>2]=Y;U=w;c[U>>2]=X;c[U+4>>2]=Y;c[D>>2]=0;c[f>>2]=c[d>>2];Z=n+(V*s-W*r);_=W*s+V*r+v;g[p>>2]=Z;g[E>>2]=_;V=+g[F>>2];W=V*(Z-+g[G>>2])+ +g[J>>2];g[w>>2]=+g[I>>2]-V*(_-+g[H>>2]);g[K>>2]=W;Y=a[M>>0]|0;U=a[N>>0]|0;X=a[O>>0]|0;a[x>>0]=a[L>>0]|0;a[y>>0]=Y;a[z>>0]=U;a[A>>0]=X;c[B>>2]=c[P>>2];c[C>>2]=c[S>>2];Vl(b,f)|0;T=T+1|0}while((T|0)<(c[q>>2]|0))}q=c[o>>2]|0;o=Sn(c[l>>2]|0,80)|0;Ll(o);c[o>>2]=b;c[o+4>>2]=t;c[o+8>>2]=q;c[o+16>>2]=c[d+36>>2];c[o+76>>2]=c[d+68>>2];T=o+60|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];c[o+20>>2]=0;h=b+312|0;T=c[h>>2]|0;c[o+24>>2]=T;if(T)c[T+20>>2]=o;c[h>>2]=o;h=b+308|0;c[h>>2]=(c[h>>2]|0)+1;if((t|0)<(q|0)){h=b+144|0;T=t;do{c[(c[h>>2]|0)+(T<<2)>>2]=o;T=T+1|0}while((T|0)!=(q|0))}T=c[d+4>>2]|0;h=o+12|0;f=c[h>>2]|0;S=(f^T)<<4&16|T;if(f&~S)a[b+20>>0]=1;f=b+16|0;C=c[f>>2]|0;if(S&~C){if(!(T&1))$=C;else{T=b+132|0;P=c[T>>2]|0;if(!P){B=b+48|0;A=c[B>>2]|0;if(!A){Ul(b,256);aa=c[B>>2]|0}else aa=A;A=Sn(c[l>>2]|0,aa<<2)|0;xp(A|0,0,c[B>>2]<<2|0)|0;ba=A;ca=c[f>>2]|0}else{ba=P;ca=C}c[T>>2]=ba;$=ca}c[f>>2]=$|S}c[h>>2]=S;c[j>>2]=2224;dm(b,1);em(b,t,q,j);j=d+72|0;d=c[j>>2]|0;if(!d){m=o;i=e;return m|0}fm(b,d,o);m=c[j>>2]|0;i=e;return m|0}function dm(a,b){a=a|0;b=b|0;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,v=0,w=0,x=0,y=0,z=0,A=0;d=i;i=i+32|0;e=d;f=d+8|0;h=c[a+204>>2]|0;j=c[a+200>>2]|0;k=j+(h<<3)|0;if((h|0)>0){h=c[a+96>>2]|0;l=+g[a+36>>2];m=j;do{n=c[m>>2]|0;c[m+4>>2]=(~~(l*+g[h+(n<<3)+4>>2]+2048.0)>>>0<<20)+(~~(l*+g[h+(n<<3)>>2]*256.0+524288.0)>>>0);m=m+8|0}while(m>>>0>>0)}Lm(j,k,e);e=a+400|0;k=c[e>>2]|0;c[f>>2]=0;c[f+4>>2]=0;j=f+8|0;c[j>>2]=0;m=f+12|0;c[m>>2]=k+76;h=a+8|0;if((c[h>>2]&32768|0)!=0?(c[k+102952>>2]|0)!=0:0)km(f,c[a+216>>2]|0,c[a+220>>2]|0,c[a+88>>2]|0);k=a+216|0;jm(a,k);if((c[h>>2]&131072|0)!=0?(h=c[(c[e>>2]|0)+102948>>2]|0,(h|0)!=0):0){e=c[k>>2]|0;n=a+220|0;o=c[n>>2]|0;p=e+(o*24|0)|0;a:do if(!o){q=e;r=14}else{s=e;while(1){if((c[s+20>>2]&131072|0)!=0?!(pb[c[(c[h>>2]|0)+16>>2]&7](h,a,c[s>>2]|0,c[s+4>>2]|0)|0):0){q=s;r=14;break a}s=s+24|0;if((s|0)==(p|0)){t=p;break}}}while(0);b:do if((r|0)==14)if((q|0)==(p|0))t=p;else{e=q;o=q;while(1){s=o;while(1){u=s+24|0;if((u|0)==(p|0)){t=e;break b}if(!(c[s+44>>2]&131072)){v=u;break}if(pb[c[(c[h>>2]|0)+16>>2]&7](h,a,c[u>>2]|0,c[s+28>>2]|0)|0){v=u;break}else s=u}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];c[e+16>>2]=c[v+16>>2];c[e+20>>2]=c[v+20>>2];e=e+24|0;o=v}}while(0);c[n>>2]=(t-(c[k>>2]|0)|0)/24|0}lm(a,f);if(b){b=c[k>>2]|0;t=a+220|0;a=c[t>>2]|0;n=b+(a*24|0)|0;c:do if(!a){w=b;r=26}else{v=b;while(1){if(c[v+20>>2]&2){w=v;r=26;break c}v=v+24|0;if((v|0)==(n|0)){x=n;y=b;break}}}while(0);if((r|0)==26)if((w|0)==(n|0)){x=n;y=b}else{b=w;r=w;d:while(1){w=r;while(1){a=w+24|0;if((a|0)==(n|0)){z=b;break d}if(!(c[w+44>>2]&2)){A=a;break}else w=a}c[b>>2]=c[A>>2];c[b+4>>2]=c[A+4>>2];c[b+8>>2]=c[A+8>>2];c[b+12>>2]=c[A+12>>2];c[b+16>>2]=c[A+16>>2];c[b+20>>2]=c[A+20>>2];b=b+24|0;r=A}x=z;y=c[k>>2]|0}c[t>>2]=(x-y|0)/24|0}y=c[f>>2]|0;if(!y){i=d;return}no(c[m>>2]|0,y);c[f>>2]=0;c[j>>2]=0;i=d;return}function em(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,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,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;f=i;i=i+48|0;h=f+40|0;j=f+12|0;k=f;l=(d|0)>(b|0);if(!l){i=f;return}m=c[a+88>>2]|0;n=b;o=0;while(1){p=c[m+(n<<2)>>2]|o;n=n+1|0;if((n|0)==(d|0)){q=p;break}else o=p}if(q&1032){o=a+220|0;if((c[o>>2]|0)>0){n=a+216|0;m=a+88|0;p=a+144|0;r=a+248|0;s=a+252|0;t=a+256|0;u=a+96|0;v=a+260|0;w=0;do{x=c[n>>2]|0;y=c[x+(w*24|0)>>2]|0;z=c[x+(w*24|0)+4>>2]|0;A=c[m>>2]|0;B=c[A+(y<<2)>>2]|0;C=c[A+(z<<2)>>2]|0;A=c[p>>2]|0;D=c[A+(y<<2)>>2]|0;E=c[A+(z<<2)>>2]|0;do if((z|0)<(d|0)&(((y|0)>=(d|0)|(y|0)<(b|0)|(z|0)<(b|0))^1)?(A=C|B,!((A&2|0)!=0|(A&1032|0)==0)):0){if(!(rb[c[(c[e>>2]|0)+8>>2]&31](e,y)|0)?!(rb[c[(c[e>>2]|0)+8>>2]&31](e,z)|0):0)break;if(!(B&28)){if(!D)break;if(!(c[D+12>>2]&2))break}if(!(C&28)){if(!E)break;if(!(c[E+12>>2]&2))break}if(lb[c[(c[e>>2]|0)+12>>2]&15](e,y,z)|0){A=c[s>>2]|0;F=c[t>>2]|0;if((A|0)>=(F|0)?(G=(F|0)==0?256:F<<1,(F|0)<(G|0)):0){F=Sn(c[v>>2]|0,G*20|0)|0;H=c[r>>2]|0;if(H){Bp(F|0,H|0,(c[s>>2]|0)*20|0)|0;Tn(c[v>>2]|0,c[r>>2]|0,(c[t>>2]|0)*20|0)}c[t>>2]=G;c[r>>2]=F;I=c[s>>2]|0}else I=A;c[s>>2]=I+1;A=c[r>>2]|0;c[A+(I*20|0)>>2]=y;c[A+(I*20|0)+4>>2]=z;c[A+(I*20|0)+8>>2]=c[x+(w*24|0)+20>>2];if(!D)J=1.0;else J=+g[D+16>>2];if(!E)K=1.0;else K=+g[E+16>>2];g[A+(I*20|0)+12>>2]=J>2]|0;L=+g[F+(y<<3)>>2]-+g[F+(z<<3)>>2];M=+g[F+(y<<3)+4>>2]-+g[F+(z<<3)+4>>2];g[A+(I*20|0)+16>>2]=+O(+(L*L+M*M))}}while(0);w=w+1|0}while((w|0)<(c[o>>2]|0));N=s}else N=a+252|0;s=a+248|0;o=c[s>>2]|0;w=c[N>>2]|0;I=o+(w*20|0)|0;c[h>>2]=27;u=w*20|0;w=(u|0)/20|0;if((u|0)>2560){u=w;while(1){r=ro(u*20|0,6948)|0;if(r){P=u;Q=r;R=32;break}if((u|0)>1)u=(u|0)/2|0;else{S=0;T=0;break}}if((R|0)==32){S=Q;T=P}U=S;V=T;W=S}else{U=0;V=0;W=0}Mm(o,I,h,w,U,V);if(W)so(W);W=c[s>>2]|0;V=c[N>>2]|0;U=W+(V*20|0)|0;a:do switch(V|0){case 0:{X=W;R=42;break}case 1:{Y=U;Z=W;break}default:{w=W;I=W+20|0;while(1){if((c[w>>2]|0)==(c[w+20>>2]|0)?(c[w+4>>2]|0)==(c[w+24>>2]|0):0){X=w;R=42;break a}o=I+20|0;if((o|0)==(U|0)){Y=U;Z=W;break}else{S=I;I=o;w=S}}}}while(0);if((R|0)==42)if((X|0)==(U|0)){Y=U;Z=W}else{W=X;V=X+20|0;b:while(1){X=W+4|0;w=V;while(1){I=w+20|0;if((I|0)==(U|0)){_=W;break b}if((c[W>>2]|0)!=(c[I>>2]|0)){$=I;break}if((c[X>>2]|0)==(c[w+24>>2]|0))w=I;else{$=I;break}}w=W+20|0;c[w>>2]=c[$>>2];c[w+4>>2]=c[$+4>>2];c[w+8>>2]=c[$+8>>2];c[w+12>>2]=c[$+12>>2];c[w+16>>2]=c[$+16>>2];W=w;V=$}Y=_+20|0;Z=c[s>>2]|0}c[N>>2]=(Y-Z|0)/20|0}if(!(q&16)){i=f;return}Gl(j,(c[a+400>>2]|0)+76|0,d-b|0);if(l){l=a+88|0;q=a+144|0;Z=a+96|0;Y=b;do{b=c[(c[l>>2]|0)+(Y<<2)>>2]|0;do if(!(b&2)){N=c[(c[q>>2]|0)+(Y<<2)>>2]|0;if(!(b&28)){if(!N)break;if(!(c[N+12>>2]&2))break}N=c[Z>>2]|0;Il(j,N+(Y<<3)|0,Y,rb[c[(c[e>>2]|0)+8>>2]&31](e,Y)|0)}while(0);Y=Y+1|0}while((Y|0)<(d|0))}K=+g[a+32>>2]*.75;Jl(j,K*.5,K*2.0);c[k>>2]=2252;c[k+4>>2]=a;c[k+8>>2]=e;Kl(j,k);k=a+264|0;e=c[k>>2]|0;d=a+268|0;a=c[d>>2]|0;Y=e+(a*60|0)|0;c[h>>2]=28;Z=a*60|0;a=(Z|0)/60|0;if((Z|0)>7680){Z=a;while(1){q=ro(Z*60|0,6948)|0;if(q){aa=Z;ba=q;R=62;break}if((Z|0)>1)Z=(Z|0)/2|0;else{ca=0;da=0;break}}if((R|0)==62){ca=ba;da=aa}ea=ca;fa=da;ga=ca}else{ea=0;fa=0;ga=0}Nm(e,Y,h,a,ea,fa);if(ga)so(ga);ga=c[k>>2]|0;fa=c[d>>2]|0;ea=ga+(fa*60|0)|0;c:do switch(fa|0){case 0:{ha=ga;R=73;break}case 1:{ia=ea;ja=ga;break}default:{a=ga;h=ga+60|0;while(1){if(((c[a>>2]|0)==(c[a+60>>2]|0)?(c[a+4>>2]|0)==(c[a+64>>2]|0):0)?(c[a+8>>2]|0)==(c[a+68>>2]|0):0){ha=a;R=73;break c}Y=h+60|0;if((Y|0)==(ea|0)){ia=ea;ja=ga;break}else{e=h;h=Y;a=e}}}}while(0);if((R|0)==73)if((ha|0)==(ea|0)){ia=ea;ja=ga}else{ga=ha;R=ha+60|0;d:while(1){ha=ga+4|0;fa=ga+8|0;a=R;while(1){h=a+60|0;if((h|0)==(ea|0)){ka=ga;break d}if((c[ga>>2]|0)!=(c[h>>2]|0)){la=h;break}if((c[ha>>2]|0)!=(c[a+64>>2]|0)){la=h;break}if((c[fa>>2]|0)==(c[a+68>>2]|0))a=h;else{la=h;break}}a=ga+60|0;fa=a;ha=la;h=fa+60|0;do{c[fa>>2]=c[ha>>2];fa=fa+4|0;ha=ha+4|0}while((fa|0)<(h|0));ga=a;R=la}ia=ka+60|0;ja=c[k>>2]|0}c[d>>2]=(ia-ja|0)/60|0;Hl(j);i=f;return}function fm(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;f=i;i=i+16|0;g=f;h=b+400|0;if(c[(c[h>>2]|0)+102876>>2]&2){i=f;return}j=e+4|0;k=e+8|0;Yl(b,c[j>>2]|0,c[k>>2]|0,c[b+44>>2]|0);l=d+4|0;m=d+8|0;Yl(b,c[l>>2]|0,c[m>>2]|0,c[j>>2]|0);n=c[j>>2]|0;c[g>>2]=2272;c[g+4>>2]=n;dm(b,1);em(b,c[l>>2]|0,c[k>>2]|0,g);g=c[j>>2]|0;l=c[k>>2]|0;if((g|0)<(l|0)){n=b+144|0;o=g;do{c[(c[n>>2]|0)+(o<<2)>>2]=d;o=o+1|0}while((o|0)<(l|0))}l=d+12|0;d=c[l>>2]|0;o=c[e+12>>2]|d;n=(o^d)<<4&16|o;if(d&~n)a[b+20>>0]=1;d=b+16|0;g=c[d>>2]|0;if(n&~g){if(!(o&1))p=g;else{o=b+132|0;q=c[o>>2]|0;if(!q){r=b+48|0;s=c[r>>2]|0;if(!s){Ul(b,256);t=c[r>>2]|0}else t=s;s=Sn(c[h>>2]|0,t<<2)|0;xp(s|0,0,c[r>>2]<<2|0)|0;u=s;v=c[d>>2]|0}else{u=q;v=g}c[o>>2]=u;p=v}c[d>>2]=p|n}c[l>>2]=n;c[m>>2]=c[k>>2];c[j>>2]=c[k>>2];Sl(b,e);i=f;return}function gm(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=c[a>>2]|0;e=c[b>>2]|0;if((d|0)==(e|0)){f=(c[a+4>>2]|0)<(c[b+4>>2]|0);return f|0}else{f=(d|0)<(e|0);return f|0}return 0}function hm(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=c[a>>2]|0;e=c[b>>2]|0;if((d|0)!=(e|0)){f=(d|0)<(e|0);return f|0}e=c[a+4>>2]|0;d=c[b+4>>2]|0;if((e|0)==(d|0)){f=(c[a+8>>2]|0)<(c[b+8>>2]|0);return f|0}else{f=(e|0)<(d|0);return f|0}return 0}function im(b){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,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,I=0,J=0,K=0,L=0,M=0,N=0,P=0.0;d=b+400|0;e=b+220|0;f=lo((c[d>>2]|0)+76|0,(c[e>>2]|0)*24|0)|0;h=c[e>>2]|0;if((h|0)>0){i=b+216|0;j=b+144|0;k=h;h=0;l=0;while(1){m=c[i>>2]|0;n=m+(l*24|0)|0;o=c[j>>2]|0;p=c[o+(c[n>>2]<<2)>>2]|0;if(((p|0)!=0?(p|0)==(c[o+(c[m+(l*24|0)+4>>2]<<2)>>2]|0):0)?(c[p+12>>2]&16|0)!=0:0){p=f+(h*24|0)|0;c[p>>2]=c[n>>2];c[p+4>>2]=c[n+4>>2];c[p+8>>2]=c[n+8>>2];c[p+12>>2]=c[n+12>>2];c[p+16>>2]=c[n+16>>2];c[p+20>>2]=c[n+20>>2];q=c[e>>2]|0;r=h+1|0}else{q=k;r=h}l=l+1|0;if((l|0)>=(q|0)){s=r;break}else{k=q;h=r}}}else s=0;r=lo((c[d>>2]|0)+76|0,c[b+308>>2]<<2)|0;h=c[b+312>>2]|0;if(!h)t=0;else{q=b+16|0;k=b+124|0;l=b+132|0;e=b+48|0;j=b+20|0;i=h;h=0;while(1){n=i+12|0;p=c[n>>2]|0;if(p&16){m=h+1|0;c[r+(h<<2)>>2]=i;o=p&-17;if(((p|16)^-17)&p)a[j>>0]=1;u=c[q>>2]|0;if(o&~u){if(!(p&1))v=u;else{p=c[l>>2]|0;if(!p){w=c[e>>2]|0;if(!w){Ul(b,256);x=c[e>>2]|0}else x=w;w=Sn(c[d>>2]|0,x<<2)|0;xp(w|0,0,c[e>>2]<<2|0)|0;y=w;z=c[q>>2]|0}else{y=p;z=u}c[l>>2]=y;v=z}c[q>>2]=v|o}c[n>>2]=o;o=c[i+4>>2]|0;n=c[i+8>>2]|0;if((o|0)<(n|0)){u=o+1|0;xp((c[k>>2]|0)+(o<<2)|0,0,((n|0)>(u|0)?n:u)-o<<2|0)|0;A=m}else A=m}else A=h;i=c[i+24>>2]|0;if(!i){t=A;break}else h=A}}A=(s|0)>0;if(A){h=c[b+124>>2]|0;i=0;do{k=c[f+(i*24|0)+4>>2]|0;B=+g[f+(i*24|0)+8>>2];v=h+(c[f+(i*24|0)>>2]<<2)|0;g[v>>2]=B+ +g[v>>2];v=h+(k<<2)|0;g[v>>2]=B+ +g[v>>2];i=i+1|0}while((i|0)!=(s|0))}i=(t|0)>0;if(i){h=b+124|0;v=b+132|0;k=0;do{q=c[r+(k<<2)>>2]|0;z=c[q+4>>2]|0;y=c[q+8>>2]|0;if((z|0)<(y|0)){q=c[h>>2]|0;l=c[v>>2]|0;e=z;do{g[l+(e<<2)>>2]=+g[q+(e<<2)>>2]<.800000011920929?0.0:34028234663852886.0e22;e=e+1|0}while((e|0)<(y|0))}k=k+1|0}while((k|0)!=(t|0))}k=~~+O(+(+(c[b+44>>2]|0)));if(!((k|0)<1|A^1)){A=c[b+132>>2]|0;v=0;do{h=0;y=0;while(1){B=1.0-+g[f+(h*24|0)+8>>2];e=A+(c[f+(h*24|0)>>2]<<2)|0;q=A+(c[f+(h*24|0)+4>>2]<<2)|0;C=+g[q>>2];D=B+C;E=+g[e>>2];F=B+E;if(E>D){g[e>>2]=D;G=+g[q>>2];H=1}else{G=C;H=y}if(G>F){g[q>>2]=F;I=1}else I=H;h=h+1|0;if((h|0)==(s|0)){J=I;break}else y=I}v=v+1|0}while(J&(v|0)<(k|0))}if(!i){K=c[d>>2]|0;L=K+76|0;no(L,r);M=c[d>>2]|0;N=M+76|0;no(N,f);return}i=b+132|0;k=b+32|0;b=0;do{v=c[r+(b<<2)>>2]|0;J=c[v+4>>2]|0;I=c[v+8>>2]|0;if((J|0)<(I|0)){v=c[i>>2]|0;s=J;do{J=v+(s<<2)|0;G=+g[J>>2];if(G<34028234663852886.0e22)P=G*+g[k>>2];else P=0.0;g[J>>2]=P;s=s+1|0}while((s|0)<(I|0))}b=b+1|0}while((b|0)!=(t|0));K=c[d>>2]|0;L=K+76|0;no(L,r);M=c[d>>2]|0;N=M+76|0;no(N,f);return}function jm(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;d=c[a+200>>2]|0;e=c[a+204>>2]|0;f=d+(e<<3)|0;c[b+4>>2]=0;if((e|0)>0){g=d;h=d}else return;while(1){d=g+4|0;e=(c[d>>2]|0)+256|0;i=g;g=g+8|0;j=g>>>0>>0;a:do if(j){k=i;l=g;while(1){if(e>>>0<(c[k+12>>2]|0)>>>0)break a;Om(a,c[i>>2]|0,c[k+8>>2]|0,b);m=l+8|0;if(m>>>0>>0){n=l;l=m;k=n}else break}}while(0);e=c[d>>2]|0;k=e+1048320|0;b:do if(h>>>0>>0){l=h;while(1){if(k>>>0<=(c[l+4>>2]|0)>>>0){o=l;break b}n=l+8|0;if(n>>>0>>0)l=n;else{o=n;break}}}else o=h;while(0);k=e+1048832|0;c:do if(o>>>0>>0){d=o;do{if(k>>>0<(c[d+4>>2]|0)>>>0)break c;Om(a,c[i>>2]|0,c[d>>2]|0,b);d=d+8|0}while(d>>>0>>0)}while(0);if(!j)break;else h=o}return}function km(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;f=i;i=i+16|0;g=f;h=c[a>>2]|0;if(!h)j=h;else{no(c[a+12>>2]|0,h);c[a>>2]=0;c[a+8>>2]=0;j=0}if(!d)if(!(c[a+8>>2]|0)){i=f;return}else{k=j;l=0}else{j=lo(c[a+12>>2]|0,d*9|0)|0;c[a>>2]=j;h=j+(d<<3)|0;c[a+4>>2]=h;xp(h|0,1,d|0)|0;c[a+8>>2]=d;h=c[a>>2]|0;if((d|0)>0){j=0;m=0;while(1){n=c[b+(j*24|0)>>2]|0;if(((n|0)!=-1?(o=c[b+(j*24|0)+4>>2]|0,(o|0)!=-1):0)?((c[e+(o<<2)>>2]|c[e+(n<<2)>>2])&32768|0)!=0:0){c[h+(j<<3)>>2]=n;c[h+(j<<3)+4>>2]=o;p=m+1|0}else p=m;j=j+1|0;if((j|0)==(d|0)){k=h;l=p;break}else m=p}}else{k=h;l=0}}c[a+8>>2]=l;c[g>>2]=29;Qm(k,k+(l<<3)|0,g);i=f;return}function lm(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=0;if(!(c[b+8>>2]&32768))return;e=c[(c[b+400>>2]|0)+102952>>2]|0;if(!e)return;f=c[b+220>>2]|0;g=c[b+216>>2]|0;h=g+(f*24|0)|0;i=d+8|0;if((f|0)>0){f=d+4|0;j=g;while(1){g=c[j>>2]|0;k=c[j+4>>2]|0;l=c[i>>2]|0;do if(!l)m=24;else{n=c[d>>2]|0;o=n+(l<<3)|0;p=l<<3>>3;q=(p|0)==0;a:do if(q)r=n;else{s=n;t=p;while(1){u=t;while(1){v=u;u=(u|0)/2|0;if((c[s+(u<<3)>>2]|0)<(g|0)?(c[s+(u<<3)+4>>2]|0)<(k|0):0){w=u;x=v;break}if((v+1|0)>>>0<3){r=s;break a}}u=s+(w+1<<3)|0;v=x+-1|0;if((v|0)==(w|0)){r=u;break}else{s=u;t=v-w|0}}}while(0);if(!((r|0)==(o|0)|(r|0)==0)?(t=(r-n|0)>>>3,s=c[f>>2]|0,(a[s+t>>0]|0)!=0):0){y=s;z=t}else{b:do if(q)A=n;else{t=n;s=p;while(1){v=s;while(1){u=v;v=(v|0)/2|0;if((c[t+(v<<3)>>2]|0)<(k|0)?(c[t+(v<<3)+4>>2]|0)<(g|0):0){B=v;C=u;break}if((u+1|0)>>>0<3){A=t;break b}}v=t+(B+1<<3)|0;u=C+-1|0;if((u|0)==(B|0)){A=v;break}else{t=v;s=u-B|0}}}while(0);if((A|0)==(o|0)|(A|0)==0){m=24;break}p=(A-n|0)>>>3;q=c[f>>2]|0;if(!(a[q+p>>0]|0)){m=24;break}else{y=q;z=p}}a[y+z>>0]=0}while(0);if((m|0)==24){m=0;mb[c[(c[e>>2]|0)+24>>2]&7](e,b,j)}j=j+24|0;if(j>>>0>=h>>>0){D=f;E=d;break}}}else{D=d+4|0;E=d}d=c[i>>2]|0;i=c[E>>2]|0;E=c[D>>2]|0;if((d|0)<=0)return;D=0;do{if(a[E+D>>0]|0)tb[c[(c[e>>2]|0)+28>>2]&31](e,b,c[i+(D<<3)>>2]|0,c[i+(D<<3)+4>>2]|0);D=D+1|0}while((D|0)!=(d|0));return}function mm(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=a+156|0;if((c[d>>2]|0)<1)return;e=(c[a+176>>2]|0)+(b<<2)|0;f=(c[a+160>>2]|0)+(b<<2)|0;g=(c[a+168>>2]|0)+(b<<2)|0;h=(c[g>>2]|0)+1|0;c[g>>2]=h;if((h|0)==2?(h=c[e>>2]|0,c[e>>2]=h+1,(h|0)>=(c[d>>2]|0)):0){d=a+184|0;h=a+188|0;e=c[h>>2]|0;g=a+192|0;i=c[g>>2]|0;if((e|0)>=(i|0)?(j=(i|0)==0?256:i<<1,(i|0)<(j|0)):0){i=a+196|0;k=Sn(c[i>>2]|0,j<<2)|0;l=c[d>>2]|0;if(!l)m=d;else{Bp(k|0,l|0,c[h>>2]<<2|0)|0;Tn(c[i>>2]|0,c[d>>2]|0,c[g>>2]<<2);m=d}c[g>>2]=j;c[m>>2]=k;n=c[h>>2]|0}else n=e;c[h>>2]=n+1;c[(c[d>>2]|0)+(n<<2)>>2]=b}c[f>>2]=c[a+4>>2];return}function nm(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;f=i;i=i+16|0;g=f;h=c[a>>2]|0;if(!h)j=h;else{no(c[a+12>>2]|0,h);c[a>>2]=0;c[a+8>>2]=0;j=0}if(!d)if(!(c[a+8>>2]|0)){i=f;return}else{k=j;l=0}else{j=lo(c[a+12>>2]|0,d*9|0)|0;c[a>>2]=j;h=j+(d<<3)|0;c[a+4>>2]=h;xp(h|0,1,d|0)|0;c[a+8>>2]=d;h=c[a>>2]|0;if((d|0)>0){j=0;m=0;while(1){n=h+(j<<3)|0;o=c[b+(j*28|0)>>2]|0;if((o|0)!=-1?(c[e+(o<<2)>>2]&16384|0)!=0:0){c[n>>2]=c[b+(j*28|0)+8>>2];c[h+(j<<3)+4>>2]=o;p=m+1|0}else p=m;j=j+1|0;if((j|0)==(d|0)){k=h;l=p;break}else m=p}}else{k=h;l=0}}c[a+8>>2]=l;c[g>>2]=30;Sm(k,k+(l<<3)|0,g);i=f;return}function om(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;if(!(c[b+8>>2]&16384))return;e=c[(c[b+400>>2]|0)+102952>>2]|0;if(!e)return;f=b+232|0;g=b+236|0;if(!(c[g>>2]|0)){h=d+8|0;i=d+4|0;j=d}else{k=d+8|0;l=d+4|0;m=c[f>>2]|0;while(1){n=c[m>>2]|0;o=c[m+8>>2]|0;p=c[k>>2]|0;if(p){q=c[d>>2]|0;r=q+(p<<3)|0;s=p<<3>>3;a:do if(!s)t=q;else{p=q;u=s;while(1){v=u;while(1){w=v;v=(v|0)/2|0;if((c[p+(v<<3)>>2]|0)>>>0>>0?(c[p+(v<<3)+4>>2]|0)<(n|0):0){x=v;y=w;break}if((w+1|0)>>>0<3){t=p;break a}}v=p+(x+1<<3)|0;w=y+-1|0;if((w|0)==(x|0)){t=v;break}else{p=v;u=w-x|0}}}while(0);if(!((t|0)==(r|0)|(t|0)==0)?(n=(c[l>>2]|0)+((t-q|0)>>>3)|0,(a[n>>0]|0)!=0):0)a[n>>0]=0;else z=16}else z=16;if((z|0)==16){z=0;mb[c[(c[e>>2]|0)+16>>2]&7](e,b,m)}m=m+28|0;if((m|0)==((c[f>>2]|0)+((c[g>>2]|0)*28|0)|0)){h=k;i=l;j=d;break}}}d=c[j>>2]|0;j=c[i>>2]|0;i=c[h>>2]|0;if((i|0)<=0)return;h=0;do{if(a[j+h>>0]|0)tb[c[(c[e>>2]|0)+20>>2]&31](e,c[d+(h<<3)>>2]|0,b,c[d+(h<<3)+4>>2]|0);h=h+1|0}while((h|0)!=(i|0));return}function pm(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.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;d=i;i=i+80|0;e=d;f=d+64|0;h=d+48|0;j=d+32|0;k=d+16|0;l=b+400|0;m=c[l>>2]|0;c[h>>2]=0;c[h+4>>2]=0;n=h+8|0;c[n>>2]=0;o=h+12|0;c[o>>2]=m+76;p=b+8|0;if((c[p>>2]&16384|0)!=0?(c[m+102952>>2]|0)!=0:0)nm(h,c[b+232>>2]|0,c[b+236>>2]|0,c[b+88>>2]|0);if((c[b+156>>2]|0)>0?(m=c[b+44>>2]|0,(m|0)>0):0){q=c[b+168>>2]|0;r=b+4|0;s=c[b+160>>2]|0;t=b+176|0;u=0;do{c[q+(u<<2)>>2]=0;if((c[r>>2]|0)>((c[s+(u<<2)>>2]|0)+1|0))c[(c[t>>2]|0)+(u<<2)>>2]=0;u=u+1|0}while((u|0)!=(m|0))}m=b+236|0;c[m>>2]=0;c[b+188>>2]=0;if(!(c[p>>2]&65536))v=0;else v=c[(c[l>>2]|0)+102948>>2]|0;c[j+4>>2]=b;c[j>>2]=2328;c[j+8>>2]=v;v=c[b+44>>2]|0;g[k>>2]=34028234663852886.0e22;p=k+4|0;g[p>>2]=34028234663852886.0e22;u=k+8|0;g[u>>2]=-34028234663852886.0e22;t=k+12|0;g[t>>2]=-34028234663852886.0e22;if((v|0)>0){s=c[b+96>>2]|0;w=34028234663852886.0e22;x=34028234663852886.0e22;y=-34028234663852886.0e22;z=-34028234663852886.0e22;r=0;while(1){A=+g[s+(r<<3)>>2];B=+g[s+(r<<3)+4>>2];C=w>2]=C;g[p>>2]=D;E=y>A?y:A;A=z>B?z:B;g[u>>2]=E;g[t>>2]=A;r=r+1|0;if((r|0)==(v|0)){F=C;G=D;H=E;I=A;break}else{w=C;x=D;y=E;z=A}}}else{F=34028234663852886.0e22;G=34028234663852886.0e22;H=-34028234663852886.0e22;I=-34028234663852886.0e22}z=+g[b+32>>2];g[k>>2]=F-z;g[p>>2]=G-z;g[u>>2]=H+z;g[t>>2]=I+z;$k(c[l>>2]|0,j,k);if(a[b+316>>0]|0){k=b+232|0;j=c[k>>2]|0;l=j+((c[m>>2]|0)*28|0)|0;c[e>>2]=31;Tm(j,l,e);c[f>>2]=0;l=c[k>>2]|0;k=c[m>>2]|0;j=l+(k*28|0)|0;c[e>>2]=b;c[e+4>>2]=-1;c[e+8>>2]=0;c[e+12>>2]=f;a:do if(!k){J=l;K=19}else{t=l;do{if(Um(e,t)|0){J=t;K=19;break a}t=t+28|0}while((t|0)!=(j|0))}while(0);b:do if((K|0)==19?(J|0)!=(j|0):0){l=J;k=J;while(1){t=k;while(1){u=t+28|0;if((u|0)==(j|0))break b;if(Um(e,u)|0)t=u;else{L=u;break}}c[l>>2]=c[L>>2];c[l+4>>2]=c[L+4>>2];c[l+8>>2]=c[L+8>>2];c[l+12>>2]=c[L+12>>2];c[l+16>>2]=c[L+16>>2];c[l+20>>2]=c[L+20>>2];c[l+24>>2]=c[L+24>>2];l=l+28|0;k=L}}while(0);c[m>>2]=(c[m>>2]|0)-(c[f>>2]|0)}om(b,h);b=c[h>>2]|0;if(!b){i=d;return}no(c[o>>2]|0,b);c[h>>2]=0;c[n>>2]=0;i=d;return}function qm(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=c[a>>2]|0;e=c[b>>2]|0;if((d|0)==(e|0)){f=+g[a+12>>2]>+g[b+12>>2];return f|0}else{f=(d|0)<(e|0);return f|0}return 0}function rm(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.0,p=0.0,q=0.0,r=0.0,s=0.0,t=0,u=0.0,v=0.0,w=0.0,x=0.0,y=0.0,z=0.0,A=0;d=i;i=i+64|0;e=d;f=d+16|0;g[e>>2]=34028234663852886.0e22;h=e+4|0;g[h>>2]=34028234663852886.0e22;j=e+8|0;g[j>>2]=-34028234663852886.0e22;k=e+12|0;g[k>>2]=-34028234663852886.0e22;l=c[a+44>>2]|0;if((l|0)>0){m=c[a+104>>2]|0;n=c[a+96>>2]|0;o=+g[b>>2];p=34028234663852886.0e22;q=34028234663852886.0e22;r=-34028234663852886.0e22;s=-34028234663852886.0e22;t=0;do{u=+g[n+(t<<3)>>2];v=+g[n+(t<<3)+4>>2];w=u+ +g[m+(t<<3)>>2]*o;x=v+ +g[m+(t<<3)+4>>2]*o;y=u>2]=p;g[h>>2]=q;z=u>w?u:w;w=v>x?v:x;r=r>z?r:z;s=s>w?s:w;g[j>>2]=r;g[k>>2]=s;t=t+1|0}while((t|0)<(l|0))}l=c[a+400>>2]|0;if(!(c[a+8>>2]&65536))A=0;else A=c[l+102948>>2]|0;c[f+4>>2]=a;c[f>>2]=2360;a=f+8|0;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[a+16>>2]=c[b+16>>2];c[a+20>>2]=c[b+20>>2];c[a+24>>2]=c[b+24>>2];c[f+36>>2]=A;$k(l,f,e);i=d;return}function sm(b,d){b=b|0;d=d|0;var e=0,f=0,h=0,i=0,j=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.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.0,K=0,L=0,M=0,N=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.0,ea=0,fa=0.0,ga=0.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.0,qa=0.0,ra=0.0,sa=0.0,ta=0.0,ua=0,va=0,wa=0;e=b+44|0;f=c[e>>2]|0;if((f|0)>0){h=c[b+88>>2]|0;i=b+104|0;j=0;do{if((c[h+(j<<2)>>2]&1028|0)==1028){l=c[i>>2]|0;g[l+(j<<3)>>2]=0.0;g[l+(j<<3)+4>>2]=0.0}j=j+1|0}while((j|0)<(f|0))}m=+g[d>>2]*2.5;f=b+252|0;if((c[f>>2]|0)<=0)return;j=b+248|0;i=b+96|0;h=b+144|0;l=b+104|0;n=b+36|0;o=b+200|0;p=b+204|0;q=b+32|0;r=b+320|0;s=d+4|0;d=b+88|0;t=b+21|0;u=b+112|0;b=0;do{v=c[j>>2]|0;a:do if(c[v+(b*20|0)+8>>2]&1024){w=c[v+(b*20|0)>>2]|0;x=c[v+(b*20|0)+4>>2]|0;y=c[i>>2]|0;z=+g[y+(w<<3)>>2];A=+g[y+(w<<3)+4>>2];B=+g[y+(x<<3)>>2];C=+g[y+(x<<3)+4>>2];D=zB?z:B;G=A>C?A:C;y=c[h>>2]|0;H=c[y+(w<<2)>>2]|0;I=c[y+(x<<2)>>2]|0;if((H|0)!=0?(c[H+12>>2]&2|0)!=0:0){Ml(H);J=+g[H+56>>2];y=(g[k>>2]=+g[H+48>>2]-J*(A-+g[H+44>>2]),c[k>>2]|0);K=y;L=(g[k>>2]=J*(z-+g[H+40>>2])+ +g[H+52>>2],c[k>>2]|0)}else{y=c[l>>2]|0;K=c[y+(w<<3)>>2]|0;L=c[y+(w<<3)+4>>2]|0}if((I|0)!=0?(c[I+12>>2]&2|0)!=0:0){Ml(I);J=+g[I+56>>2];w=(g[k>>2]=+g[I+48>>2]-J*(C-+g[I+44>>2]),c[k>>2]|0);M=w;N=(g[k>>2]=J*(B-+g[I+40>>2])+ +g[I+52>>2],c[k>>2]|0)}else{w=c[l>>2]|0;M=c[w+(x<<3)>>2]|0;N=c[w+(x<<3)+4>>2]|0}J=B-z;B=(c[k>>2]=M,+g[k>>2]);P=(c[k>>2]=K,+g[k>>2]);Q=B-P;B=(c[k>>2]=L,+g[k>>2]);R=+g[n>>2];x=(~~(E*R+-1.0+2048.0)>>>0<<20)+(~~((D*R+-1.0)*256.0+524288.0)>>>0)|0;D=G*R+1.0+2048.0;G=(F*R+1.0)*256.0+524288.0;w=c[o>>2]|0;y=c[p>>2]|0;S=w;T=y<<3>>3;b:while(1){U=T;while(1){if(!U){V=S;break b}W=(U|0)/2|0;if((c[S+(W<<3)+4>>2]|0)>>>0>>0){X=W;Y=U;break}else U=W}S=S+(X+1<<3)|0;T=Y+-1-X|0}R=(c[k>>2]=N,+g[k>>2]);T=(~~D>>>0<<20)+(~~G>>>0)|0;S=V;U=w+(y<<3)-V>>3;c:while(1){W=U;while(1){if(!W){Z=S;break c}_=(W|0)/2|0;if((c[S+(_<<3)+4>>2]|0)>>>0>T>>>0)W=_;else{$=_;aa=W;break}}S=S+($+1<<3)|0;U=aa+-1-$|0}G=C-A;D=R-B;U=x&1048575;S=T&1048575;if(V>>>0>>0){y=V;while(1){w=c[y+4>>2]&1048575;W=y;y=y+8|0;if(w>>>0>>0|w>>>0>S>>>0)if(y>>>0>>0){y=y;continue}else break;w=c[W>>2]|0;if((w|0)<=-1)break a;W=c[i>>2]|0;_=c[W+(w<<3)>>2]|0;ba=c[W+(w<<3)+4>>2]|0;W=c[(c[h>>2]|0)+(w<<2)>>2]|0;d:do if(!((H|0)==(W|0)|(I|0)==(W|0))){ca=(W|0)==0;if(!ca?(c[W+12>>2]&2|0)!=0:0){Ml(W);F=+g[W+56>>2];E=(c[k>>2]=_,+g[k>>2]);da=(c[k>>2]=ba,+g[k>>2]);ea=(g[k>>2]=+g[W+48>>2]-F*(da-+g[W+44>>2]),c[k>>2]|0);fa=da;ga=E;ha=ea;ia=(g[k>>2]=F*(E-+g[W+40>>2])+ +g[W+52>>2],c[k>>2]|0)}else{ea=c[l>>2]|0;E=(c[k>>2]=_,+g[k>>2]);fa=(c[k>>2]=ba,+g[k>>2]);ga=E;ha=c[ea+(w<<3)>>2]|0;ia=c[ea+(w<<3)+4>>2]|0}E=ga-z;F=fa-A;da=(c[k>>2]=ha,+g[k>>2]);ja=da-P;ka=(c[k>>2]=ia,+g[k>>2]);la=ka-B;ma=Q*la-D*ja;na=J*la-G*ja-(D*E-Q*F);oa=J*F-G*E;do if(ma==0.0){if(na==0.0)break d;pa=-oa/na;if(!(pa>=0.0&pa=0.0&sa<=1.0)ta=sa;else break d}else{sa=na*na-oa*4.0*ma;if(sa<0.0)break d;ra=+O(+sa);sa=ma*2.0;qa=(-na-ra)/sa;ea=(g[k>>2]=qa,c[k>>2]|0);pa=(ra-na)/sa;ua=(g[k>>2]=pa,c[k>>2]|0);va=qa>pa;wa=va?ea:ua;pa=(c[k>>2]=va?ua:ea,+g[k>>2]);qa=J+Q*pa;sa=G+D*pa;ra=(qa*(E+ja*pa)+sa*(F+la*pa))/(qa*qa+sa*sa);if(pa>=0.0?ra<=1.0&(ra>=0.0&pa>2]=wa,+g[k>>2]);if(!(ra>=0.0&ra=0.0&qa<=1.0)ta=qa;else break d}while(0);la=P+Q*ta-da;F=B+D*ta-ka;ja=+g[q>>2]*.75;E=ja*(+g[r>>2]*ja);ja=la*E;na=F*E;if(!ca?(c[W+12>>2]&2|0)!=0:0){Ml(W);E=+g[W+32>>2];Ml(W);ma=+g[W+36>>2];if(E>0.0){oa=1.0/E;wa=W+48|0;g[wa>>2]=ja*oa+ +g[wa>>2];wa=W+52|0;g[wa>>2]=na*oa+ +g[wa>>2]}if(ma>0.0){Ml(W);wa=W+56|0;g[wa>>2]=(na*(ga-+g[W+40>>2])-ja*(fa-+g[W+44>>2]))/ma+ +g[wa>>2]}}else{wa=c[l>>2]|0;ea=wa+(w<<3)|0;g[ea>>2]=la+ +g[ea>>2];ea=wa+(w<<3)+4|0;g[ea>>2]=F+ +g[ea>>2]}F=-+g[s>>2];la=ja*F;ja=na*F;if(la!=0.0|ja!=0.0?(c[(c[d>>2]|0)+(w<<2)>>2]&4|0)==0:0){if(!(a[t>>0]|0)){xp(c[u>>2]|0,0,c[e>>2]<<3|0)|0;a[t>>0]=1}ea=c[u>>2]|0;wa=ea+(w<<3)|0;g[wa>>2]=la+ +g[wa>>2];wa=ea+(w<<3)+4|0;g[wa>>2]=ja+ +g[wa>>2]}}while(0);if(y>>>0>=Z>>>0)break}}}while(0);b=b+1|0}while((b|0)<(c[f>>2]|0));return} +function Cn(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,v=0,w=0;switch(b-a>>3|0){case 2:{if((c[b+-4>>2]|0)>>>0>=(c[a+4>>2]|0)>>>0){e=1;return e|0}f=b+-8|0;g=a;h=c[g>>2]|0;i=c[g+4>>2]|0;g=f;j=c[g+4>>2]|0;k=a;c[k>>2]=c[g>>2];c[k+4>>2]=j;j=f;c[j>>2]=h;c[j+4>>2]=i;e=1;return e|0}case 3:{i=a+8|0;j=b+-8|0;h=a+12|0;f=c[h>>2]|0;k=a+4|0;g=b+-4|0;l=(c[g>>2]|0)>>>0>>0;if(f>>>0>=(c[k>>2]|0)>>>0){if(!l){e=1;return e|0}f=i;m=c[f>>2]|0;n=c[f+4>>2]|0;f=j;o=c[f+4>>2]|0;p=i;c[p>>2]=c[f>>2];c[p+4>>2]=o;o=j;c[o>>2]=m;c[o+4>>2]=n;if((c[h>>2]|0)>>>0>=(c[k>>2]|0)>>>0){e=1;return e|0}k=a;h=c[k>>2]|0;n=c[k+4>>2]|0;k=i;o=c[k+4>>2]|0;m=a;c[m>>2]=c[k>>2];c[m+4>>2]=o;o=i;c[o>>2]=h;c[o+4>>2]=n;e=1;return e|0}n=a;o=c[n>>2]|0;h=c[n+4>>2]|0;if(l){l=j;n=c[l+4>>2]|0;m=a;c[m>>2]=c[l>>2];c[m+4>>2]=n;n=j;c[n>>2]=o;c[n+4>>2]=h;e=1;return e|0}n=i;m=c[n+4>>2]|0;l=a;c[l>>2]=c[n>>2];c[l+4>>2]=m;m=i;c[m>>2]=o;c[m+4>>2]=h;if((c[g>>2]|0)>>>0>=h>>>0){e=1;return e|0}g=j;m=c[g+4>>2]|0;l=i;c[l>>2]=c[g>>2];c[l+4>>2]=m;m=j;c[m>>2]=o;c[m+4>>2]=h;e=1;return e|0}case 4:{Bn(a,a+8|0,a+16|0,b+-8|0,d)|0;e=1;return e|0}case 5:{h=a+8|0;m=a+16|0;o=a+24|0;Bn(a,h,m,o,d)|0;d=a+28|0;if((c[b+-4>>2]|0)>>>0>=(c[d>>2]|0)>>>0){e=1;return e|0}j=b+-8|0;l=o;g=c[l>>2]|0;i=c[l+4>>2]|0;l=j;n=c[l+4>>2]|0;k=o;c[k>>2]=c[l>>2];c[k+4>>2]=n;n=j;c[n>>2]=g;c[n+4>>2]=i;if((c[d>>2]|0)>>>0>=(c[a+20>>2]|0)>>>0){e=1;return e|0}d=m;i=c[d>>2]|0;n=c[d+4>>2]|0;d=o;g=c[d>>2]|0;j=c[d+4>>2]|0;d=m;c[d>>2]=g;c[d+4>>2]=j;d=o;c[d>>2]=i;c[d+4>>2]=n;if(j>>>0>=(c[a+12>>2]|0)>>>0){e=1;return e|0}n=h;d=c[n>>2]|0;i=c[n+4>>2]|0;n=h;c[n>>2]=g;c[n+4>>2]=j;n=m;c[n>>2]=d;c[n+4>>2]=i;if(j>>>0>=(c[a+4>>2]|0)>>>0){e=1;return e|0}i=a;n=c[i>>2]|0;d=c[i+4>>2]|0;i=a;c[i>>2]=g;c[i+4>>2]=j;j=h;c[j>>2]=n;c[j+4>>2]=d;e=1;return e|0}case 1:case 0:{e=1;return e|0}default:{d=a+16|0;j=a+8|0;n=c[a+12>>2]|0;h=c[a+4>>2]|0;i=c[a+20>>2]|0;g=i>>>0>>0;do if(n>>>0>>0){m=a;o=c[m>>2]|0;k=c[m+4>>2]|0;if(g){m=d;l=c[m+4>>2]|0;p=a;c[p>>2]=c[m>>2];c[p+4>>2]=l;l=d;c[l>>2]=o;c[l+4>>2]=k;break}l=j;p=c[l+4>>2]|0;m=a;c[m>>2]=c[l>>2];c[m+4>>2]=p;p=j;c[p>>2]=o;c[p+4>>2]=k;if(i>>>0>>0){p=d;m=c[p+4>>2]|0;l=j;c[l>>2]=c[p>>2];c[l+4>>2]=m;m=d;c[m>>2]=o;c[m+4>>2]=k}}else if(g?(k=j,m=c[k>>2]|0,o=c[k+4>>2]|0,k=d,l=c[k>>2]|0,p=c[k+4>>2]|0,k=j,c[k>>2]=l,c[k+4>>2]=p,k=d,c[k>>2]=m,c[k+4>>2]=o,p>>>0>>0):0){o=a;k=c[o>>2]|0;m=c[o+4>>2]|0;o=a;c[o>>2]=l;c[o+4>>2]=p;p=j;c[p>>2]=k;c[p+4>>2]=m}while(0);j=a+24|0;if((j|0)==(b|0)){e=1;return e|0}else{q=0;r=j;s=d}while(1){if((c[r+4>>2]|0)>>>0<(c[s+4>>2]|0)>>>0){d=r;j=c[d>>2]|0;h=c[d+4>>2]|0;d=r;g=s;while(1){i=g;n=c[i+4>>2]|0;m=d;c[m>>2]=c[i>>2];c[m+4>>2]=n;if((g|0)==(a|0)){t=g;break}if(h>>>0<(c[g+-4>>2]|0)>>>0){n=g;g=g+-8|0;d=n}else{t=g;break}}g=t;c[g>>2]=j;c[g+4>>2]=h;g=q+1|0;if((g|0)==8){u=r;break}else v=g}else v=q;g=r+8|0;if((g|0)==(b|0)){e=1;w=34;break}else{d=r;q=v;r=g;s=d}}if((w|0)==34)return e|0;e=(u+8|0)==(b|0);return e|0}}return 0}function Dn(a){a=a|0;so(a);return}function En(a){a=a|0;so(a);return}function Fn(a,b){a=a|0;b=b|0;return 0}function Gn(a){a=a|0;return 1}function Hn(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;e=a+16|0;if((c[e>>2]|0)<=0){f=0;return f|0}g=a+12|0;a=0;while(1){h=c[(c[g>>2]|0)+(a<<2)>>2]|0;a=a+1|0;if(lb[c[(c[h>>2]|0)+16>>2]&15](h,b,d)|0){f=1;i=5;break}if((a|0)>=(c[e>>2]|0)){f=0;i=5;break}}if((i|0)==5)return f|0;return 0}function In(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}function Jn(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return 0}function Kn(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.0,v=0.0,w=0.0;e=i;i=i+16|0;f=e;g[b>>2]=34028234663852886.0e22;h=b+4|0;g[h>>2]=34028234663852886.0e22;j=b+8|0;g[j>>2]=-34028234663852886.0e22;k=b+12|0;g[k>>2]=-34028234663852886.0e22;l=a+16|0;if((c[l>>2]|0)<=0){i=e;return}m=a+12|0;a=f+4|0;n=f+8|0;o=f+12|0;p=0;do{q=c[(c[m>>2]|0)+(p<<2)>>2]|0;r=fb[c[(c[q>>2]|0)+12>>2]&7](q)|0;if((r|0)>0){q=0;do{s=c[(c[m>>2]|0)+(p<<2)>>2]|0;tb[c[(c[s>>2]|0)+28>>2]&31](s,f,d,q);t=+g[b>>2];u=+g[f>>2];v=+g[h>>2];w=+g[a>>2];g[b>>2]=t>2]=v>2];v=+g[n>>2];u=+g[k>>2];t=+g[o>>2];g[j>>2]=w>v?w:v;g[k>>2]=u>t?u:t;q=q+1|0}while((q|0)!=(r|0))}p=p+1|0}while((p|0)<(c[l>>2]|0));i=e;return}function Ln(a,b,c){a=a|0;b=b|0;c=+c;return}function Mn(a){a=a|0;so(a);return}function Nn(a,b){a=a|0;b=b|0;return 0}function On(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;f=b+4|0;if((c[f>>2]|0)!=(d|0)){g=0;return g|0}h=c[b+8>>2]|0;if(!(lb[c[(c[h>>2]|0)+16>>2]&15](h,b+12|0,(c[d+96>>2]|0)+(e<<3)|0)|0)){g=1;return g|0}d=c[f>>2]|0;Zl(d,e,c[(c[d+88>>2]|0)+(e<<2)>>2]|((a[b+28>>0]|0)!=0?514:2));e=b+32|0;c[e>>2]=(c[e>>2]|0)+1;g=1;return g|0}function Pn(a,b){a=a|0;b=b|0;var d=0,e=0;d=b+4|0;e=c[b>>2]|0;c[e+4>>2]=c[d>>2];c[c[d>>2]>>2]=e;c[d>>2]=b;e=a+12|0;c[d>>2]=c[e>>2];c[b>>2]=a+8;c[c[e>>2]>>2]=b;c[e>>2]=b;return}function Qn(b){b=b|0;var d=0,e=0,f=0,g=0;d=b+68|0;c[b+72>>2]=d;c[d>>2]=d;d=b+8|0;c[d>>2]=128;c[b+4>>2]=0;e=$n(1024)|0;c[b>>2]=e;xp(e|0,0,c[d>>2]<<3|0)|0;d=b+12|0;b=d+56|0;do{c[d>>2]=0;d=d+4|0}while((d|0)<(b|0));if(!(a[6718]|0)){f=1;g=0}else return;while(1){d=(f|0)>(c[2384+(g<<2)>>2]|0);b=g+1|0;a[6077+f>>0]=d?b:g;f=f+1|0;if((f|0)==641)break;else g=d?b:g}a[6718]=1;return}function Rn(a){a=a|0;var b=0,d=0;b=a+4|0;if((c[b>>2]|0)>0){d=0;do{ao(c[(c[a>>2]|0)+(d<<3)+4>>2]|0);d=d+1|0}while((d|0)<(c[b>>2]|0))}ao(c[a>>2]|0);b=a+68|0;io(b);d=a+72|0;a=c[b>>2]|0;c[a+4>>2]=c[d>>2];c[c[d>>2]>>2]=a;c[d>>2]=b;c[b>>2]=b;return}function Sn(a,b){a=a|0;b=b|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;if(!b){e=0;return e|0}if((b|0)>640){e=go(a+68|0,b)|0;return e|0}f=d[6077+b>>0]|0;b=a+12+(f<<2)|0;g=c[b>>2]|0;if(g){c[b>>2]=c[g>>2];e=g;return e|0}g=a+4|0;h=c[g>>2]|0;i=a+8|0;if((h|0)==(c[i>>2]|0)){j=c[a>>2]|0;k=h+128|0;c[i>>2]=k;i=$n(k<<3)|0;c[a>>2]=i;Bp(i|0,j|0,c[g>>2]<<3|0)|0;xp((c[a>>2]|0)+(c[g>>2]<<3)|0,0,1024)|0;ao(j);l=c[g>>2]|0}else l=h;h=c[a>>2]|0;a=$n(16384)|0;j=h+(l<<3)+4|0;c[j>>2]=a;i=c[2384+(f<<2)>>2]|0;c[h+(l<<3)>>2]=i;l=16384/(i|0)|0;h=l+-1|0;if((l|0)>1){l=0;do{f=l;l=l+1|0;c[a+(_(f,i)|0)>>2]=a+(_(l,i)|0)}while((l|0)!=(h|0))}c[a+(_(h,i)|0)>>2]=0;c[b>>2]=c[a>>2];c[g>>2]=(c[g>>2]|0)+1;e=c[j>>2]|0;return e|0}function Tn(a,b,e){a=a|0;b=b|0;e=e|0;var f=0;if(!e)return;if((e|0)>640){ho(a+68|0,b);return}else{f=a+12+((d[6077+e>>0]|0)<<2)|0;c[b>>2]=c[f>>2];c[f>>2]=b;return}}function Un(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;d=+g[b+16>>2];e=+g[b+32>>2];f=+g[b+20>>2];h=+g[b+28>>2];i=d*e-f*h;j=+g[b+24>>2];k=+g[b+12>>2];l=f*j-e*k;m=h*k-d*j;n=+g[b>>2];o=+g[b+4>>2];p=+g[b+8>>2];q=i*n+o*l+m*p;r=q!=0.0?1.0/q:q;q=+g[c>>2];s=+g[c+4>>2];t=+g[c+8>>2];g[a>>2]=r*(i*q+l*s+m*t);g[a+4>>2]=r*((s*e-t*h)*n+o*(t*j-e*q)+(h*q-s*j)*p);g[a+8>>2]=r*((d*t-f*s)*n+o*(f*q-t*k)+(s*k-d*q)*p);return}function Vn(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;d=+g[b>>2];e=+g[b+12>>2];f=+g[b+4>>2];h=+g[b+16>>2];i=d*h-e*f;j=i!=0.0?1.0/i:i;i=+g[c>>2];k=+g[c+4>>2];g[a>>2]=j*(h*i-e*k);g[a+4>>2]=j*(d*k-f*i);return}function Wn(a,b){a=a|0;b=b|0;var d=0.0,e=0.0,f=0.0,h=0.0,i=0.0,j=0.0;d=+g[a>>2];e=+g[a+12>>2];f=+g[a+4>>2];h=+g[a+16>>2];i=d*h-e*f;j=i!=0.0?1.0/i:i;g[b>>2]=h*j;h=-j;g[b+12>>2]=e*h;g[b+8>>2]=0.0;g[b+4>>2]=f*h;g[b+16>>2]=d*j;a=b+20|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;c[a+12>>2]=0;return}function Xn(a,b){a=a|0;b=b|0;var c=0.0,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;c=+g[a+16>>2];d=+g[a+32>>2];e=c*d;f=+g[a+20>>2];h=+g[a+28>>2];i=+g[a+24>>2];j=+g[a+12>>2];k=d*j;l=h*j-c*i;m=+g[a>>2];n=(e-f*h)*m+ +g[a+4>>2]*(f*i-k)+l*+g[a+8>>2];f=n!=0.0?1.0/n:n;g[b>>2]=f*(e-h*h);e=f*(i*h-k);g[b+4>>2]=e;k=f*l;g[b+8>>2]=k;g[b+12>>2]=e;g[b+16>>2]=f*(m*d-i*i);d=f*(i*j-m*h);g[b+20>>2]=d;g[b+24>>2]=k;g[b+28>>2]=d;g[b+32>>2]=f*(m*c-j*j);return}function Yn(a){a=a|0;return}function Zn(a){a=a|0;return}function _n(a){a=a|0;return 0.0}function $n(a){a=a|0;c[619]=(c[619]|0)+1;return rb[c[2464>>2]&31](a,c[618]|0)|0}function ao(a){a=a|0;c[619]=(c[619]|0)+-1;kb[c[2468>>2]&63](a,c[618]|0);return}function bo(a,b){a=a|0;b=b|0;return}function co(a,b){a=a|0;b=b|0;return tp(a)|0}function eo(a,b){a=a|0;b=b|0;up(a);return}function fo(a){a=a|0;return a+43&-32|0}function go(a,b){a=a|0;b=b|0;var d=0;d=$n(b+44|0)|0;c[d>>2]=d;b=d+43&-32;c[b+-4>>2]=d;c[d+4>>2]=a;c[d>>2]=c[a>>2];c[(c[a>>2]|0)+4>>2]=d;c[a>>2]=d;return b|0}function ho(a,b){a=a|0;b=b|0;var d=0;a=c[b+-4>>2]|0;b=a+4|0;d=c[a>>2]|0;c[d+4>>2]=c[b>>2];c[c[b>>2]>>2]=d;c[b>>2]=a;c[a>>2]=a;ao(a);return}function io(a){a=a|0;var b=0,d=0,e=0,f=0;b=a+4|0;d=c[b>>2]|0;if((d|0)==(a|0))return;else e=d;do{d=e+4|0;f=c[e>>2]|0;c[f+4>>2]=c[d>>2];c[c[d>>2]>>2]=f;c[d>>2]=e;c[e>>2]=e;ao(e);e=c[b>>2]|0}while((e|0)!=(a|0));return}function jo(a){a=a|0;c[a+102400>>2]=0;c[a+102404>>2]=0;c[a+102408>>2]=0;c[a+102796>>2]=0;return}function ko(a){a=a|0;return}function lo(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;e=d+3&-4;d=b+102796|0;f=c[d>>2]|0;g=b+102412+(f*12|0)|0;c[b+102412+(f*12|0)+4>>2]=e;h=b+102400|0;i=c[h>>2]|0;if((i+e|0)>102400){c[g>>2]=$n(e)|0;a[b+102412+(f*12|0)+8>>0]=1;j=g}else{c[g>>2]=b+i;a[b+102412+(f*12|0)+8>>0]=0;c[h>>2]=(c[h>>2]|0)+e;j=g}g=b+102404|0;h=(c[g>>2]|0)+e|0;c[g>>2]=h;g=b+102408|0;b=c[g>>2]|0;c[g>>2]=(b|0)>(h|0)?b:h;c[d>>2]=(c[d>>2]|0)+1;return c[j>>2]|0}function mo(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;d=(c[b+102796>>2]|0)+-1|0;f=b+102412+(d*12|0)|0;g=b+102412+(d*12|0)+4|0;h=e-(c[g>>2]|0)|0;if((h|0)<=0){i=c[f>>2]|0;return i|0}j=b+102412+(d*12|0)+8|0;do if(!(a[j>>0]|0)){d=b+102400|0;k=(c[d>>2]|0)+h|0;if((k|0)>102400){l=$n(e)|0;Bp(l|0,c[f>>2]|0,c[g>>2]|0)|0;c[d>>2]=(c[d>>2]|0)-(c[g>>2]|0);c[f>>2]=l;a[j>>0]=1;break}else{c[d>>2]=k;k=b+102404|0;d=(c[k>>2]|0)+h|0;c[k>>2]=d;k=b+102408|0;l=c[k>>2]|0;c[k>>2]=(l|0)>(d|0)?l:d;break}}else{d=$n(e)|0;Bp(d|0,c[f>>2]|0,c[g>>2]|0)|0;ao(c[f>>2]|0);c[f>>2]=d}while(0);c[g>>2]=e;i=c[f>>2]|0;return i|0}function no(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+102796|0;f=c[e>>2]|0;g=f+-1|0;if(!(a[b+102412+(g*12|0)+8>>0]|0)){h=b+102412+(g*12|0)+4|0;i=b+102400|0;c[i>>2]=(c[i>>2]|0)-(c[h>>2]|0);j=h;k=f}else{ao(d);j=b+102412+(g*12|0)+4|0;k=c[e>>2]|0}g=b+102404|0;c[g>>2]=(c[g>>2]|0)-(c[j>>2]|0);c[e>>2]=k+-1;return}function oo(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[661]|0;dp(b,a,e)|0;bp(10,b)|0;wa()}function po(){var a=0,b=0;a=i;i=i+16|0;if(!(Ma(2592,3)|0)){b=Ia(c[647]|0)|0;i=a;return b|0}else oo(6949,a);return 0}function qo(a){a=a|0;var b=0,d=0,e=0;b=(a|0)==0?1:a;a=tp(b)|0;a:do if(!a){while(1){d=yo()|0;if(!d)break;nb[d&3]();d=tp(b)|0;if(d){e=d;break a}}d=ya(4)|0;c[d>>2]=2492;Ta(d|0,608,60)}else e=a;while(0);return e|0}function ro(a,b){a=a|0;b=b|0;return qo(a)|0}function so(a){a=a|0;up(a);return}function to(a){a=a|0;return}function uo(a){a=a|0;so(a);return}function vo(a){a=a|0;return 6998}function wo(a){a=a|0;var b=0;b=i;i=i+16|0;nb[a&3]();oo(7013,b)}function xo(){var a=0,b=0;a=po()|0;if(((a|0)!=0?(b=c[a>>2]|0,(b|0)!=0):0)?(a=b+48|0,(c[a>>2]&-256|0)==1126902528?(c[a+4>>2]|0)==1129074247:0):0)wo(c[b+12>>2]|0);b=c[620]|0;c[620]=b+0;wo(b)}function yo(){var a=0;a=c[626]|0;c[626]=a+0;return a|0}function zo(a){a=a|0;return}function Ao(a){a=a|0;return}function Bo(a){a=a|0;return}function Co(a){a=a|0;return}function Do(a){a=a|0;return}function Eo(a){a=a|0;so(a);return}function Fo(a){a=a|0;so(a);return}function Go(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=Ko(b,640,656,0)|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;tb[c[(c[g>>2]|0)+28>>2]&31](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 Ho(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0;b=d+16|0;g=c[b>>2]|0;do if(g){if((g|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{c[b>>2]=e;c[d+24>>2]=f;c[d+36>>2]=1}while(0);return}function Io(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;if((a|0)==(c[b+8>>2]|0))Ho(0,b,d,e);return}function Jo(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;if((a|0)==(c[b+8>>2]|0))Ho(0,b,d,e);else{f=c[a+8>>2]|0;tb[c[(c[f>>2]|0)+28>>2]&31](f,b,d,e)}return}function Ko(d,e,f,g){d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;h=i;i=i+64|0;j=h;k=c[d>>2]|0;l=d+(c[k+-8>>2]|0)|0;m=c[k+-4>>2]|0;c[j>>2]=f;c[j+4>>2]=d;c[j+8>>2]=e;c[j+12>>2]=g;g=j+16|0;e=j+20|0;d=j+24|0;k=j+28|0;n=j+32|0;o=j+40|0;p=(m|0)==(f|0);q=g;r=q+36|0;do{c[q>>2]=0;q=q+4|0}while((q|0)<(r|0));b[g+36>>1]=0;a[g+38>>0]=0;a:do if(p){c[j+48>>2]=1;qb[c[(c[f>>2]|0)+20>>2]&7](f,j,l,l,1,0);s=(c[d>>2]|0)==1?l:0}else{gb[c[(c[m>>2]|0)+24>>2]&3](m,j,l,1,0);switch(c[j+36>>2]|0){case 0:{s=(c[o>>2]|0)==1&(c[k>>2]|0)==1&(c[n>>2]|0)==1?c[e>>2]|0:0;break a;break}case 1:break;default:{s=0;break a}}if((c[d>>2]|0)!=1?!((c[o>>2]|0)==0&(c[k>>2]|0)==1&(c[n>>2]|0)==1):0){s=0;break}s=c[g>>2]|0}while(0);i=h;return s|0}function Lo(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;a[d+53>>0]=1;do if((c[d+4>>2]|0)==(f|0)){a[d+52>>0]=1;b=d+16|0;h=c[b>>2]|0;if(!h){c[b>>2]=e;c[d+24>>2]=g;c[d+36>>2]=1;if(!((g|0)==1?(c[d+48>>2]|0)==1:0))break;a[d+54>>0]=1;break}if((h|0)!=(e|0)){h=d+36|0;c[h>>2]=(c[h>>2]|0)+1;a[d+54>>0]=1;break}h=d+24|0;b=c[h>>2]|0;if((b|0)==2){c[h>>2]=g;i=g}else i=b;if((i|0)==1?(c[d+48>>2]|0)==1:0)a[d+54>>0]=1}while(0);return}function Mo(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;gb[c[(c[h>>2]|0)+24>>2]&3](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;qb[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 No(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 Oo(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))Lo(0,b,d,e,f);else{h=c[a+8>>2]|0;qb[c[(c[h>>2]|0)+20>>2]&7](h,b,d,e,f,g)}return}function Po(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))Lo(0,b,d,e,f);return}function Qo(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=lb[c[(c[a>>2]|0)+16>>2]&15](a,b,f)|0;if(g)c[d>>2]=c[f>>2];i=e;return g&1|0}function Ro(a){a=a|0;var b=0;if(!a)b=0;else b=(Ko(a,640,688,0)|0)!=0;return b&1|0}function So(){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+32|0;d=a+24|0;e=a+16|0;f=a;g=a+36|0;a=po()|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]=c[649];oo(7242,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(lb[c[(c[624>>2]|0)+16>>2]&15](624,l,g)|0){l=c[g>>2]|0;g=c[649]|0;k=fb[c[(c[l>>2]|0)+8>>2]&7](l)|0;c[f>>2]=g;c[f+4>>2]=h;c[f+8>>2]=k;oo(7156,f)}else{c[e>>2]=c[649];c[e+4>>2]=h;oo(7201,e)}}oo(7280,b)}function To(){var a=0;a=i;i=i+16|0;if(!(va(2588,67)|0)){i=a;return}else oo(7053,a)}function Uo(a){a=a|0;var b=0;b=i;i=i+16|0;up(a);if(!(Sa(c[647]|0,0)|0)){i=b;return}else oo(7103,b)}function Vo(b){b=b|0;var c=0,e=0,f=0,g=0,h=0,i=0,j=0;c=0;while(1){if((d[7301+c>>0]|0)==(b|0)){e=c;f=2;break}c=c+1|0;if((c|0)==87){g=87;h=7389;f=5;break}}if((f|0)==2)if(!e)i=7389;else{g=e;h=7389;f=5}if((f|0)==5)while(1){f=0;e=h;while(1){c=e+1|0;if(!(a[e>>0]|0)){j=c;break}else e=c}g=g+-1|0;if(!g){i=j;break}else{h=j;f=5}}return i|0}function Wo(){var a=0;if(!(c[650]|0))a=2652;else a=c[(La()|0)+60>>2]|0;return a|0}function Xo(a){a=a|0;var b=0;if(a>>>0>4294963200){c[(Wo()|0)>>2]=0-a;b=-1}else b=a;return b|0}function Yo(a,b){a=+a;b=b|0;var d=0,e=0,f=0,g=0,i=0.0,j=0.0,l=0,m=0.0;h[k>>3]=a;d=c[k>>2]|0;e=c[k+4>>2]|0;f=Ap(d|0,e|0,52)|0;g=f&2047;switch(g|0){case 0:{if(a!=0.0){i=+Yo(a*18446744073709552.0e3,b);j=i;l=(c[b>>2]|0)+-64|0}else{j=a;l=0}c[b>>2]=l;m=j;break}case 2047:{m=a;break}default:{c[b>>2]=g+-1022;c[k>>2]=d;c[k+4>>2]=e&-2146435073|1071644672;m=+h[k>>3]}}return +m}function Zo(a,b){a=+a;b=b|0;return +(+Yo(a,b))}function _o(b,d,e){b=b|0;d=d|0;e=e|0;var f=0;do if(b){if(d>>>0<128){a[b>>0]=d;f=1;break}if(d>>>0<2048){a[b>>0]=d>>>6|192;a[b+1>>0]=d&63|128;f=2;break}if(d>>>0<55296|(d&-8192|0)==57344){a[b>>0]=d>>>12|224;a[b+1>>0]=d>>>6&63|128;a[b+2>>0]=d&63|128;f=3;break}if((d+-65536|0)>>>0<1048576){a[b>>0]=d>>>18|240;a[b+1>>0]=d>>>12&63|128;a[b+2>>0]=d>>>6&63|128;a[b+3>>0]=d&63|128;f=4;break}else{c[(Wo()|0)>>2]=84;f=-1;break}}else f=1;while(0);return f|0}function $o(a,b){a=a|0;b=b|0;var c=0;if(!a)c=0;else c=_o(a,b,0)|0;return c|0}function ap(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0;do if(a){if((c[a+76>>2]|0)<=-1){b=np(a)|0;break}d=(ep(a)|0)==0;e=np(a)|0;if(d)b=e;else{fp(a);b=e}}else{if(!(c[662]|0))f=0;else f=ap(c[662]|0)|0;Va(2628);e=c[656]|0;if(!e)g=f;else{d=e;e=f;while(1){if((c[d+76>>2]|0)>-1)h=ep(d)|0;else h=0;if((c[d+20>>2]|0)>>>0>(c[d+28>>2]|0)>>>0)i=np(d)|0|e;else i=e;if(h)fp(d);d=c[d+56>>2]|0;if(!d){g=i;break}else e=i}}Qa(2628);b=g}while(0);return b|0}function bp(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;if((c[d+76>>2]|0)>=0?(ep(d)|0)!=0:0){if((a[d+75>>0]|0)!=(b|0)?(e=d+20|0,f=c[e>>2]|0,f>>>0<(c[d+16>>2]|0)>>>0):0){c[e>>2]=f+1;a[f>>0]=b;g=b&255}else g=gp(d,b)|0;fp(d);h=g}else i=3;do if((i|0)==3){if((a[d+75>>0]|0)!=(b|0)?(g=d+20|0,f=c[g>>2]|0,f>>>0<(c[d+16>>2]|0)>>>0):0){c[g>>2]=f+1;a[f>>0]=b;h=b&255;break}h=gp(d,b)|0}while(0);return h|0}function cp(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;f=e+16|0;g=c[f>>2]|0;if(!g)if(!(lp(e)|0)){h=c[f>>2]|0;i=4}else j=0;else{h=g;i=4}a:do if((i|0)==4){g=e+20|0;f=c[g>>2]|0;if((h-f|0)>>>0>>0){j=lb[c[e+36>>2]&15](e,b,d)|0;break}b:do if((a[e+75>>0]|0)>-1){k=d;while(1){if(!k){l=d;m=b;n=f;o=0;break b}p=k+-1|0;if((a[b+p>>0]|0)==10){q=k;break}else k=p}if((lb[c[e+36>>2]&15](e,b,q)|0)>>>0>>0){j=q;break a}l=d-q|0;m=b+q|0;n=c[g>>2]|0;o=q}else{l=d;m=b;n=f;o=0}while(0);Bp(n|0,m|0,l|0)|0;c[g>>2]=(c[g>>2]|0)+l;j=o+l|0}while(0);return j|0}function dp(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;f=i;i=i+224|0;g=f+120|0;h=f+80|0;j=f;k=f+136|0;l=h;m=l+40|0;do{c[l>>2]=0;l=l+4|0}while((l|0)<(m|0));c[g>>2]=c[e>>2];if((op(0,d,g,j,h)|0)<0)n=-1;else{if((c[b+76>>2]|0)>-1)o=ep(b)|0;else o=0;e=c[b>>2]|0;l=e&32;if((a[b+74>>0]|0)<1)c[b>>2]=e&-33;e=b+48|0;if(!(c[e>>2]|0)){m=b+44|0;p=c[m>>2]|0;c[m>>2]=k;q=b+28|0;c[q>>2]=k;r=b+20|0;c[r>>2]=k;c[e>>2]=80;s=b+16|0;c[s>>2]=k+80;k=op(b,d,g,j,h)|0;if(!p)t=k;else{lb[c[b+36>>2]&15](b,0,0)|0;u=(c[r>>2]|0)==0?-1:k;c[m>>2]=p;c[e>>2]=0;c[s>>2]=0;c[q>>2]=0;c[r>>2]=0;t=u}}else t=op(b,d,g,j,h)|0;h=c[b>>2]|0;c[b>>2]=h|l;if(o)fp(b);n=(h&32|0)==0?t:-1}i=f;return n|0}function ep(a){a=a|0;return 0}function fp(a){a=a|0;return}function gp(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0;f=i;i=i+16|0;g=f;h=e&255;a[g>>0]=h;j=b+16|0;k=c[j>>2]|0;if(!k)if(!(lp(b)|0)){l=c[j>>2]|0;m=4}else n=-1;else{l=k;m=4}do if((m|0)==4){k=b+20|0;j=c[k>>2]|0;if(j>>>0>>0?(o=e&255,(o|0)!=(a[b+75>>0]|0)):0){c[k>>2]=j+1;a[j>>0]=h;n=o;break}if((lb[c[b+36>>2]&15](b,g,1)|0)==1)n=d[g>>0]|0;else n=-1}while(0);i=f;return n|0}function hp(a){a=a|0;var b=0,d=0;b=i;i=i+16|0;d=b;c[d>>2]=c[a+60>>2];a=Xo(Wa(6,d|0)|0)|0;i=b;return a|0}function ip(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=i;i=i+32|0;f=e;g=e+20|0;c[f>>2]=c[a+60>>2];c[f+4>>2]=0;c[f+8>>2]=b;c[f+12>>2]=g;c[f+16>>2]=d;if((Xo(_a(140,f|0)|0)|0)<0){c[g>>2]=-1;h=-1}else h=c[g>>2]|0;i=e;return h|0}function jp(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,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;g=e;h=e+32|0;j=a+28|0;k=c[j>>2]|0;c[h>>2]=k;l=a+20|0;m=(c[l>>2]|0)-k|0;c[h+4>>2]=m;c[h+8>>2]=b;c[h+12>>2]=d;b=a+60|0;k=a+44|0;n=h;h=2;o=m+d|0;while(1){if(!(c[650]|0)){c[f>>2]=c[b>>2];c[f+4>>2]=n;c[f+8>>2]=h;p=Xo(bb(146,f|0)|0)|0}else{Xa(68,a|0);c[g>>2]=c[b>>2];c[g+4>>2]=n;c[g+8>>2]=h;m=Xo(bb(146,g|0)|0)|0;ta(0);p=m}if((o|0)==(p|0)){q=6;break}if((p|0)<0){r=n;s=h;q=8;break}m=o-p|0;t=c[n+4>>2]|0;if(p>>>0<=t>>>0)if((h|0)==2){c[j>>2]=(c[j>>2]|0)+p;u=t;v=p;w=n;x=2}else{u=t;v=p;w=n;x=h}else{y=c[k>>2]|0;c[j>>2]=y;c[l>>2]=y;u=c[n+12>>2]|0;v=p-t|0;w=n+8|0;x=h+-1|0}c[w>>2]=(c[w>>2]|0)+v;c[w+4>>2]=u-v;n=w;h=x;o=m}if((q|0)==6){o=c[k>>2]|0;c[a+16>>2]=o+(c[a+48>>2]|0);k=o;c[j>>2]=k;c[l>>2]=k;z=d}else if((q|0)==8){c[a+16>>2]=0;c[j>>2]=0;c[l>>2]=0;c[a>>2]=c[a>>2]|32;if((s|0)==2)z=0;else z=d-(c[r+4>>2]|0)|0}i=e;return z|0}function kp(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0;f=i;i=i+80|0;g=f;c[b+36>>2]=12;if((c[b>>2]&64|0)==0?(c[g>>2]=c[b+60>>2],c[g+4>>2]=21505,c[g+8>>2]=f+12,(Pa(54,g|0)|0)!=0):0)a[b+75>>0]=-1;g=jp(b,d,e)|0;i=f;return g|0}function lp(b){b=b|0;var d=0,e=0,f=0;d=b+74|0;e=a[d>>0]|0;a[d>>0]=e+255|e;e=c[b>>2]|0;if(!(e&8)){c[b+8>>2]=0;c[b+4>>2]=0;d=c[b+44>>2]|0;c[b+28>>2]=d;c[b+20>>2]=d;c[b+16>>2]=d+(c[b+48>>2]|0);f=0}else{c[b>>2]=e|32;f=-1}return f|0}function mp(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;f=d&255;g=(e|0)!=0;a:do if(g&(b&3|0)!=0){h=d&255;i=e;j=b;while(1){if((a[j>>0]|0)==h<<24>>24){k=i;l=j;m=6;break a}n=j+1|0;o=i+-1|0;p=(o|0)!=0;if(p&(n&3|0)!=0){i=o;j=n}else{q=o;r=p;s=n;m=5;break}}}else{q=e;r=g;s=b;m=5}while(0);if((m|0)==5)if(r){k=q;l=s;m=6}else{t=0;u=s}b:do if((m|0)==6){s=d&255;if((a[l>>0]|0)==s<<24>>24){t=k;u=l}else{q=_(f,16843009)|0;c:do if(k>>>0>3){r=k;b=l;while(1){g=c[b>>2]^q;if((g&-2139062144^-2139062144)&g+-16843009){v=r;w=b;break}g=b+4|0;e=r+-4|0;if(e>>>0>3){r=e;b=g}else{x=e;y=g;m=11;break c}}z=v;A=w}else{x=k;y=l;m=11}while(0);if((m|0)==11)if(!x){t=0;u=y;break}else{z=x;A=y}while(1){if((a[A>>0]|0)==s<<24>>24){t=z;u=A;break b}q=A+1|0;z=z+-1|0;if(!z){t=0;u=q;break}else A=q}}}while(0);return ((t|0)!=0?u:0)|0}function np(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0;b=a+20|0;d=a+28|0;if((c[b>>2]|0)>>>0>(c[d>>2]|0)>>>0?(lb[c[a+36>>2]&15](a,0,0)|0,(c[b>>2]|0)==0):0)e=-1;else{f=a+4|0;g=c[f>>2]|0;h=a+8|0;i=c[h>>2]|0;if(g>>>0>>0)lb[c[a+40>>2]&15](a,g-i|0,1)|0;c[a+16>>2]=0;c[d>>2]=0;c[b>>2]=0;c[h>>2]=0;c[f>>2]=0;e=0}return e|0}function op(e,f,g,j,l){e=e|0;f=f|0;g=g|0;j=j|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,x=0,y=0,z=0,A=0,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,$=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.0,bb=0.0,cb=0,db=0,eb=0,fb=0,gb=0,hb=0.0,ib=0.0,jb=0.0,kb=0.0,lb=0,mb=0,nb=0,ob=0,pb=0,qb=0,rb=0,sb=0,tb=0.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.0,Wb=0.0,Xb=0.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,kc=0,lc=0,mc=0,nc=0,oc=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;m=i;i=i+624|0;n=m+24|0;o=m+16|0;p=m+588|0;q=m+576|0;r=m;s=m+536|0;t=m+8|0;u=m+528|0;v=(e|0)!=0;w=s+40|0;x=w;y=s+39|0;s=t+4|0;z=q+12|0;A=q+11|0;q=p;B=z;D=B-q|0;E=-2-q|0;F=B+2|0;G=n+288|0;H=p+9|0;I=H;J=p+8|0;K=0;L=f;f=0;M=0;a:while(1){do if((K|0)>-1)if((f|0)>(2147483647-K|0)){c[(Wo()|0)>>2]=75;N=-1;break}else{N=f+K|0;break}else N=K;while(0);O=a[L>>0]|0;if(!(O<<24>>24)){P=N;Q=M;R=245;break}else{S=O;T=L}b:while(1){switch(S<<24>>24){case 37:{U=T;V=T;R=9;break b;break}case 0:{W=T;X=T;break b;break}default:{}}O=T+1|0;S=a[O>>0]|0;T=O}c:do if((R|0)==9)while(1){R=0;if((a[U+1>>0]|0)!=37){W=U;X=V;break c}O=V+1|0;Y=U+2|0;if((a[Y>>0]|0)==37){U=Y;V=O;R=9}else{W=Y;X=O;break}}while(0);O=X-L|0;if(v?(c[e>>2]&32|0)==0:0)cp(L,O,e)|0;if((X|0)!=(L|0)){K=N;L=W;f=O;continue}Y=W+1|0;Z=a[Y>>0]|0;$=(Z<<24>>24)+-48|0;if($>>>0<10){aa=(a[W+2>>0]|0)==36;ba=aa?W+3|0:Y;ca=a[ba>>0]|0;da=aa?$:-1;ea=aa?1:M;fa=ba}else{ca=Z;da=-1;ea=M;fa=Y}Y=ca<<24>>24;d:do if((Y&-32|0)==32){Z=Y;ba=ca;aa=0;$=fa;while(1){if(!(1<>24)+-32|aa;ka=$+1|0;la=a[ka>>0]|0;Z=la<<24>>24;if((Z&-32|0)!=32){ga=la;ha=ja;ia=ka;break}else{ba=la;aa=ja;$=ka}}}else{ga=ca;ha=0;ia=fa}while(0);do if(ga<<24>>24==42){Y=ia+1|0;$=(a[Y>>0]|0)+-48|0;if($>>>0<10?(a[ia+2>>0]|0)==36:0){c[l+($<<2)>>2]=10;ma=1;na=ia+3|0;oa=c[j+((a[Y>>0]|0)+-48<<3)>>2]|0}else{if(ea){pa=-1;break a}if(!v){qa=ha;ra=Y;sa=0;ta=0;break}$=(c[g>>2]|0)+(4-1)&~(4-1);aa=c[$>>2]|0;c[g>>2]=$+4;ma=0;na=Y;oa=aa}if((oa|0)<0){qa=ha|8192;ra=na;sa=ma;ta=0-oa|0}else{qa=ha;ra=na;sa=ma;ta=oa}}else{aa=(ga<<24>>24)+-48|0;if(aa>>>0<10){Y=ia;$=0;ba=aa;while(1){aa=($*10|0)+ba|0;Z=Y+1|0;ba=(a[Z>>0]|0)+-48|0;if(ba>>>0>=10){ua=aa;va=Z;break}else{Y=Z;$=aa}}if((ua|0)<0){pa=-1;break a}else{qa=ha;ra=va;sa=ea;ta=ua}}else{qa=ha;ra=ia;sa=ea;ta=0}}while(0);e:do if((a[ra>>0]|0)==46){$=ra+1|0;Y=a[$>>0]|0;if(Y<<24>>24!=42){ba=(Y<<24>>24)+-48|0;if(ba>>>0<10){wa=$;xa=0;ya=ba}else{za=$;Aa=0;break}while(1){$=(xa*10|0)+ya|0;ba=wa+1|0;ya=(a[ba>>0]|0)+-48|0;if(ya>>>0>=10){za=ba;Aa=$;break e}else{wa=ba;xa=$}}}$=ra+2|0;ba=(a[$>>0]|0)+-48|0;if(ba>>>0<10?(a[ra+3>>0]|0)==36:0){c[l+(ba<<2)>>2]=10;za=ra+4|0;Aa=c[j+((a[$>>0]|0)+-48<<3)>>2]|0;break}if(sa){pa=-1;break a}if(v){ba=(c[g>>2]|0)+(4-1)&~(4-1);Y=c[ba>>2]|0;c[g>>2]=ba+4;za=$;Aa=Y}else{za=$;Aa=0}}else{za=ra;Aa=-1}while(0);$=za;Y=0;while(1){ba=(a[$>>0]|0)+-65|0;if(ba>>>0>57){pa=-1;break a}aa=$+1|0;Z=a[10233+(Y*58|0)+ba>>0]|0;ba=Z&255;if((ba+-1|0)>>>0<8){$=aa;Y=ba}else{Ba=aa;Ca=Z;Da=ba;Ea=$;Fa=Y;break}}if(!(Ca<<24>>24)){pa=-1;break}Y=(da|0)>-1;do if(Ca<<24>>24==19)if(Y){pa=-1;break a}else R=52;else{if(Y){c[l+(da<<2)>>2]=Da;$=j+(da<<3)|0;ba=c[$+4>>2]|0;Z=r;c[Z>>2]=c[$>>2];c[Z+4>>2]=ba;R=52;break}if(!v){pa=0;break a}qp(r,Da,g)}while(0);if((R|0)==52?(R=0,!v):0){K=N;L=Ba;f=O;M=sa;continue}Y=a[Ea>>0]|0;ba=(Fa|0)!=0&(Y&15|0)==3?Y&-33:Y;Y=qa&-65537;Z=(qa&8192|0)==0?qa:Y;f:do switch(ba|0){case 110:{switch(Fa|0){case 0:{c[c[r>>2]>>2]=N;K=N;L=Ba;f=O;M=sa;continue a;break}case 1:{c[c[r>>2]>>2]=N;K=N;L=Ba;f=O;M=sa;continue a;break}case 2:{$=c[r>>2]|0;c[$>>2]=N;c[$+4>>2]=((N|0)<0)<<31>>31;K=N;L=Ba;f=O;M=sa;continue a;break}case 3:{b[c[r>>2]>>1]=N;K=N;L=Ba;f=O;M=sa;continue a;break}case 4:{a[c[r>>2]>>0]=N;K=N;L=Ba;f=O;M=sa;continue a;break}case 6:{c[c[r>>2]>>2]=N;K=N;L=Ba;f=O;M=sa;continue a;break}case 7:{$=c[r>>2]|0;c[$>>2]=N;c[$+4>>2]=((N|0)<0)<<31>>31;K=N;L=Ba;f=O;M=sa;continue a;break}default:{K=N;L=Ba;f=O;M=sa;continue a}}break}case 112:{Ga=Z|8;Ha=Aa>>>0>8?Aa:8;Ia=120;R=64;break}case 88:case 120:{Ga=Z;Ha=Aa;Ia=ba;R=64;break}case 111:{$=r;aa=c[$>>2]|0;ka=c[$+4>>2]|0;if((aa|0)==0&(ka|0)==0)Ja=w;else{$=w;ja=aa;aa=ka;while(1){ka=$+-1|0;a[ka>>0]=ja&7|48;ja=Ap(ja|0,aa|0,3)|0;aa=C;if((ja|0)==0&(aa|0)==0){Ja=ka;break}else $=ka}}if(!(Z&8)){Ka=Ja;La=Z;Ma=Aa;Na=0;Oa=10713;R=77}else{$=x-Ja+1|0;Ka=Ja;La=Z;Ma=(Aa|0)<($|0)?$:Aa;Na=0;Oa=10713;R=77}break}case 105:case 100:{$=r;aa=c[$>>2]|0;ja=c[$+4>>2]|0;if((ja|0)<0){$=wp(0,0,aa|0,ja|0)|0;ka=C;la=r;c[la>>2]=$;c[la+4>>2]=ka;Pa=$;Qa=ka;Ra=1;Sa=10713;R=76;break f}if(!(Z&2048)){ka=Z&1;Pa=aa;Qa=ja;Ra=ka;Sa=(ka|0)==0?10713:10715;R=76}else{Pa=aa;Qa=ja;Ra=1;Sa=10714;R=76}break}case 117:{ja=r;Pa=c[ja>>2]|0;Qa=c[ja+4>>2]|0;Ra=0;Sa=10713;R=76;break}case 99:{a[y>>0]=c[r>>2];Ta=y;Ua=Y;Va=1;Wa=0;Xa=10713;Ya=w;break}case 109:{Za=Vo(c[(Wo()|0)>>2]|0)|0;R=82;break}case 115:{ja=c[r>>2]|0;Za=(ja|0)!=0?ja:10723;R=82;break}case 67:{c[t>>2]=c[r>>2];c[s>>2]=0;c[r>>2]=t;_a=-1;R=86;break}case 83:{if(!Aa){sp(e,32,ta,0,Z);$a=0;R=98}else{_a=Aa;R=86}break}case 65:case 71:case 70:case 69:case 97:case 103:case 102:case 101:{ab=+h[r>>3];c[o>>2]=0;h[k>>3]=ab;if((c[k+4>>2]|0)>=0)if(!(Z&2048)){ja=Z&1;bb=ab;cb=ja;db=(ja|0)==0?10731:10736}else{bb=ab;cb=1;db=10733}else{bb=-ab;cb=1;db=10730}h[k>>3]=bb;ja=c[k+4>>2]&2146435072;do if(ja>>>0<2146435072|(ja|0)==2146435072&0<0){ab=+Zo(bb,o)*2.0;aa=ab!=0.0;if(aa)c[o>>2]=(c[o>>2]|0)+-1;ka=ba|32;if((ka|0)==97){$=ba&32;la=($|0)==0?db:db+9|0;eb=cb|2;fb=12-Aa|0;do if(!(Aa>>>0>11|(fb|0)==0)){gb=fb;hb=8.0;while(1){gb=gb+-1|0;ib=hb*16.0;if(!gb){jb=ib;break}else hb=ib}if((a[la>>0]|0)==45){kb=-(jb+(-ab-jb));break}else{kb=ab+jb-jb;break}}else kb=ab;while(0);fb=c[o>>2]|0;gb=(fb|0)<0?0-fb|0:fb;lb=rp(gb,((gb|0)<0)<<31>>31,z)|0;if((lb|0)==(z|0)){a[A>>0]=48;mb=A}else mb=lb;a[mb+-1>>0]=(fb>>31&2)+43;fb=mb+-2|0;a[fb>>0]=ba+15;lb=(Aa|0)<1;gb=(Z&8|0)==0;hb=kb;nb=p;while(1){ob=~~hb;pb=nb+1|0;a[nb>>0]=d[10697+ob>>0]|$;hb=(hb-+(ob|0))*16.0;do if((pb-q|0)==1){if(gb&(lb&hb==0.0)){qb=pb;break}a[pb>>0]=46;qb=nb+2|0}else qb=pb;while(0);if(!(hb!=0.0)){rb=qb;break}else nb=qb}nb=rb;lb=(Aa|0)!=0&(E+nb|0)<(Aa|0)?F+Aa-fb|0:D-fb+nb|0;gb=lb+eb|0;sp(e,32,ta,gb,Z);if(!(c[e>>2]&32))cp(la,eb,e)|0;sp(e,48,ta,gb,Z^65536);$=nb-q|0;if(!(c[e>>2]&32))cp(p,$,e)|0;nb=B-fb|0;sp(e,48,lb-($+nb)|0,0,0);if(!(c[e>>2]&32))cp(fb,nb,e)|0;sp(e,32,ta,gb,Z^8192);sb=(gb|0)<(ta|0)?ta:gb;break}gb=(Aa|0)<0?6:Aa;if(aa){nb=(c[o>>2]|0)+-28|0;c[o>>2]=nb;tb=ab*268435456.0;ub=nb}else{tb=ab;ub=c[o>>2]|0}nb=(ub|0)<0?n:G;$=nb;hb=tb;lb=nb;while(1){pb=~~hb>>>0;c[lb>>2]=pb;ob=lb+4|0;hb=(hb-+(pb>>>0))*1.0e9;if(!(hb!=0.0)){vb=ob;break}else lb=ob}lb=c[o>>2]|0;if((lb|0)>0){aa=lb;fb=nb;eb=vb;while(1){la=(aa|0)>29?29:aa;ob=eb+-4|0;do if(ob>>>0>>0)wb=fb;else{pb=0;xb=ob;while(1){yb=yp(c[xb>>2]|0,0,la|0)|0;zb=zp(yb|0,C|0,pb|0,0)|0;yb=C;Ab=Kp(zb|0,yb|0,1e9,0)|0;c[xb>>2]=Ab;Ab=Jp(zb|0,yb|0,1e9,0)|0;xb=xb+-4|0;if(xb>>>0>>0){Bb=Ab;break}else pb=Ab}if(!Bb){wb=fb;break}pb=fb+-4|0;c[pb>>2]=Bb;wb=pb}while(0);ob=eb;while(1){if(ob>>>0<=wb>>>0){Cb=ob;break}pb=ob+-4|0;if(!(c[pb>>2]|0))ob=pb;else{Cb=ob;break}}ob=(c[o>>2]|0)-la|0;c[o>>2]=ob;if((ob|0)>0){aa=ob;fb=wb;eb=Cb}else{Db=ob;Eb=wb;Fb=Cb;break}}}else{Db=lb;Eb=nb;Fb=vb}if((Db|0)<0){eb=((gb+25|0)/9|0)+1|0;fb=(ka|0)==102;aa=Db;ob=Eb;pb=Fb;while(1){xb=0-aa|0;Ab=(xb|0)>9?9:xb;do if(ob>>>0>>0){xb=(1<>>Ab;zb=0;Gb=ob;while(1){Hb=c[Gb>>2]|0;c[Gb>>2]=(Hb>>>Ab)+zb;Ib=_(Hb&xb,yb)|0;Gb=Gb+4|0;if(Gb>>>0>=pb>>>0){Jb=Ib;break}else zb=Ib}zb=(c[ob>>2]|0)==0?ob+4|0:ob;if(!Jb){Kb=zb;Lb=pb;break}c[pb>>2]=Jb;Kb=zb;Lb=pb+4|0}else{Kb=(c[ob>>2]|0)==0?ob+4|0:ob;Lb=pb}while(0);la=fb?nb:Kb;zb=(Lb-la>>2|0)>(eb|0)?la+(eb<<2)|0:Lb;aa=(c[o>>2]|0)+Ab|0;c[o>>2]=aa;if((aa|0)>=0){Mb=Kb;Nb=zb;break}else{ob=Kb;pb=zb}}}else{Mb=Eb;Nb=Fb}do if(Mb>>>0>>0){pb=($-Mb>>2)*9|0;ob=c[Mb>>2]|0;if(ob>>>0<10){Ob=pb;break}else{Pb=pb;Qb=10}while(1){Qb=Qb*10|0;pb=Pb+1|0;if(ob>>>0>>0){Ob=pb;break}else Pb=pb}}else Ob=0;while(0);ob=(ka|0)==103;Ab=(gb|0)!=0;pb=gb-((ka|0)!=102?Ob:0)+((Ab&ob)<<31>>31)|0;if((pb|0)<(((Nb-$>>2)*9|0)+-9|0)){aa=pb+9216|0;pb=(aa|0)/9|0;eb=nb+(pb+-1023<<2)|0;fb=((aa|0)%9|0)+1|0;if((fb|0)<9){aa=10;lb=fb;while(1){fb=aa*10|0;lb=lb+1|0;if((lb|0)==9){Rb=fb;break}else aa=fb}}else Rb=10;aa=c[eb>>2]|0;lb=(aa>>>0)%(Rb>>>0)|0;if((lb|0)==0?(nb+(pb+-1022<<2)|0)==(Nb|0):0){Sb=Mb;Tb=eb;Ub=Ob}else R=163;do if((R|0)==163){R=0;hb=(((aa>>>0)/(Rb>>>0)|0)&1|0)==0?9007199254740992.0:9007199254740994.0;ka=(Rb|0)/2|0;do if(lb>>>0>>0)Vb=.5;else{if((lb|0)==(ka|0)?(nb+(pb+-1022<<2)|0)==(Nb|0):0){Vb=1.0;break}Vb=1.5}while(0);do if(!cb){Wb=hb;Xb=Vb}else{if((a[db>>0]|0)!=45){Wb=hb;Xb=Vb;break}Wb=-hb;Xb=-Vb}while(0);ka=aa-lb|0;c[eb>>2]=ka;if(!(Wb+Xb!=Wb)){Sb=Mb;Tb=eb;Ub=Ob;break}fb=ka+Rb|0;c[eb>>2]=fb;if(fb>>>0>999999999){fb=Mb;ka=eb;while(1){zb=ka+-4|0;c[ka>>2]=0;if(zb>>>0>>0){la=fb+-4|0;c[la>>2]=0;Yb=la}else Yb=fb;la=(c[zb>>2]|0)+1|0;c[zb>>2]=la;if(la>>>0>999999999){fb=Yb;ka=zb}else{Zb=Yb;_b=zb;break}}}else{Zb=Mb;_b=eb}ka=($-Zb>>2)*9|0;fb=c[Zb>>2]|0;if(fb>>>0<10){Sb=Zb;Tb=_b;Ub=ka;break}else{$b=ka;ac=10}while(1){ac=ac*10|0;ka=$b+1|0;if(fb>>>0>>0){Sb=Zb;Tb=_b;Ub=ka;break}else $b=ka}}while(0);eb=Tb+4|0;bc=Sb;cc=Ub;dc=Nb>>>0>eb>>>0?eb:Nb}else{bc=Mb;cc=Ob;dc=Nb}eb=0-cc|0;lb=dc;while(1){if(lb>>>0<=bc>>>0){ec=0;fc=lb;break}aa=lb+-4|0;if(!(c[aa>>2]|0))lb=aa;else{ec=1;fc=lb;break}}do if(ob){lb=(Ab&1^1)+gb|0;if((lb|0)>(cc|0)&(cc|0)>-5){gc=ba+-1|0;hc=lb+-1-cc|0}else{gc=ba+-2|0;hc=lb+-1|0}lb=Z&8;if(lb){ic=gc;jc=hc;kc=lb;break}do if(ec){lb=c[fc+-4>>2]|0;if(!lb){lc=9;break}if(!((lb>>>0)%10|0)){mc=10;nc=0}else{lc=0;break}while(1){mc=mc*10|0;aa=nc+1|0;if((lb>>>0)%(mc>>>0)|0){lc=aa;break}else nc=aa}}else lc=9;while(0);lb=((fc-$>>2)*9|0)+-9|0;if((gc|32|0)==102){aa=lb-lc|0;pb=(aa|0)<0?0:aa;ic=gc;jc=(hc|0)<(pb|0)?hc:pb;kc=0;break}else{pb=lb+cc-lc|0;lb=(pb|0)<0?0:pb;ic=gc;jc=(hc|0)<(lb|0)?hc:lb;kc=0;break}}else{ic=ba;jc=gb;kc=Z&8}while(0);gb=jc|kc;$=(gb|0)!=0&1;Ab=(ic|32|0)==102;if(Ab){oc=(cc|0)>0?cc:0;pc=0}else{ob=(cc|0)<0?eb:cc;lb=rp(ob,((ob|0)<0)<<31>>31,z)|0;if((B-lb|0)<2){ob=lb;while(1){pb=ob+-1|0;a[pb>>0]=48;if((B-pb|0)<2)ob=pb;else{qc=pb;break}}}else qc=lb;a[qc+-1>>0]=(cc>>31&2)+43;ob=qc+-2|0;a[ob>>0]=ic;oc=B-ob|0;pc=ob}ob=cb+1+jc+$+oc|0;sp(e,32,ta,ob,Z);if(!(c[e>>2]&32))cp(db,cb,e)|0;sp(e,48,ta,ob,Z^65536);do if(Ab){eb=bc>>>0>nb>>>0?nb:bc;pb=eb;while(1){aa=rp(c[pb>>2]|0,0,H)|0;do if((pb|0)==(eb|0)){if((aa|0)!=(H|0)){rc=aa;break}a[J>>0]=48;rc=J}else{if(aa>>>0>p>>>0)sc=aa;else{rc=aa;break}while(1){fb=sc+-1|0;a[fb>>0]=48;if(fb>>>0>p>>>0)sc=fb;else{rc=fb;break}}}while(0);if(!(c[e>>2]&32))cp(rc,I-rc|0,e)|0;aa=pb+4|0;if(aa>>>0>nb>>>0){tc=aa;break}else pb=aa}do if(gb){if(c[e>>2]&32)break;cp(10765,1,e)|0}while(0);if((jc|0)>0&tc>>>0>>0){pb=jc;eb=tc;while(1){aa=rp(c[eb>>2]|0,0,H)|0;if(aa>>>0>p>>>0){fb=aa;while(1){ka=fb+-1|0;a[ka>>0]=48;if(ka>>>0>p>>>0)fb=ka;else{uc=ka;break}}}else uc=aa;if(!(c[e>>2]&32))cp(uc,(pb|0)>9?9:pb,e)|0;eb=eb+4|0;fb=pb+-9|0;if(!((pb|0)>9&eb>>>0>>0)){vc=fb;break}else pb=fb}}else vc=jc;sp(e,48,vc+9|0,9,0)}else{pb=ec?fc:bc+4|0;if((jc|0)>-1){eb=(kc|0)==0;fb=jc;ka=bc;while(1){zb=rp(c[ka>>2]|0,0,H)|0;if((zb|0)==(H|0)){a[J>>0]=48;wc=J}else wc=zb;do if((ka|0)==(bc|0)){zb=wc+1|0;if(!(c[e>>2]&32))cp(wc,1,e)|0;if(eb&(fb|0)<1){xc=zb;break}if(c[e>>2]&32){xc=zb;break}cp(10765,1,e)|0;xc=zb}else{if(wc>>>0>p>>>0)yc=wc;else{xc=wc;break}while(1){zb=yc+-1|0;a[zb>>0]=48;if(zb>>>0>p>>>0)yc=zb;else{xc=zb;break}}}while(0);aa=I-xc|0;if(!(c[e>>2]&32))cp(xc,(fb|0)>(aa|0)?aa:fb,e)|0;zb=fb-aa|0;ka=ka+4|0;if(!(ka>>>0>>0&(zb|0)>-1)){zc=zb;break}else fb=zb}}else zc=jc;sp(e,48,zc+18|0,18,0);if(c[e>>2]&32)break;cp(pc,B-pc|0,e)|0}while(0);sp(e,32,ta,ob,Z^8192);sb=(ob|0)<(ta|0)?ta:ob}else{gb=(ba&32|0)!=0;nb=bb!=bb|0.0!=0.0;Ab=nb?0:cb;$=Ab+3|0;sp(e,32,ta,$,Y);lb=c[e>>2]|0;if(!(lb&32)){cp(db,Ab,e)|0;Ac=c[e>>2]|0}else Ac=lb;if(!(Ac&32))cp(nb?(gb?10757:10761):gb?10749:10753,3,e)|0;sp(e,32,ta,$,Z^8192);sb=($|0)<(ta|0)?ta:$}while(0);K=N;L=Ba;f=sb;M=sa;continue a;break}default:{Ta=L;Ua=Z;Va=Aa;Wa=0;Xa=10713;Ya=w}}while(0);g:do if((R|0)==64){R=0;ba=r;O=c[ba>>2]|0;ja=c[ba+4>>2]|0;ba=Ia&32;if(!((O|0)==0&(ja|0)==0)){$=w;gb=O;O=ja;while(1){ja=$+-1|0;a[ja>>0]=d[10697+(gb&15)>>0]|ba;gb=Ap(gb|0,O|0,4)|0;O=C;if((gb|0)==0&(O|0)==0){Bc=ja;break}else $=ja}$=r;if((Ga&8|0)==0|(c[$>>2]|0)==0&(c[$+4>>2]|0)==0){Ka=Bc;La=Ga;Ma=Ha;Na=0;Oa=10713;R=77}else{Ka=Bc;La=Ga;Ma=Ha;Na=2;Oa=10713+(Ia>>4)|0;R=77}}else{Ka=w;La=Ga;Ma=Ha;Na=0;Oa=10713;R=77}}else if((R|0)==76){R=0;Ka=rp(Pa,Qa,w)|0;La=Z;Ma=Aa;Na=Ra;Oa=Sa;R=77}else if((R|0)==82){R=0;$=mp(Za,0,Aa)|0;O=($|0)==0;Ta=Za;Ua=Y;Va=O?Aa:$-Za|0;Wa=0;Xa=10713;Ya=O?Za+Aa|0:$}else if((R|0)==86){R=0;$=0;O=0;gb=c[r>>2]|0;while(1){ba=c[gb>>2]|0;if(!ba){Cc=$;Dc=O;break}ja=$o(u,ba)|0;if((ja|0)<0|ja>>>0>(_a-$|0)>>>0){Cc=$;Dc=ja;break}ba=ja+$|0;if(_a>>>0>ba>>>0){$=ba;O=ja;gb=gb+4|0}else{Cc=ba;Dc=ja;break}}if((Dc|0)<0){pa=-1;break a}sp(e,32,ta,Cc,Z);if(!Cc){$a=0;R=98}else{gb=0;O=c[r>>2]|0;while(1){$=c[O>>2]|0;if(!$){$a=Cc;R=98;break g}ja=$o(u,$)|0;gb=ja+gb|0;if((gb|0)>(Cc|0)){$a=Cc;R=98;break g}if(!(c[e>>2]&32))cp(u,ja,e)|0;if(gb>>>0>=Cc>>>0){$a=Cc;R=98;break}else O=O+4|0}}}while(0);if((R|0)==98){R=0;sp(e,32,ta,$a,Z^8192);K=N;L=Ba;f=(ta|0)>($a|0)?ta:$a;M=sa;continue}if((R|0)==77){R=0;Y=(Ma|0)>-1?La&-65537:La;O=r;gb=(c[O>>2]|0)!=0|(c[O+4>>2]|0)!=0;if((Ma|0)!=0|gb){O=(gb&1^1)+(x-Ka)|0;Ta=Ka;Ua=Y;Va=(Ma|0)>(O|0)?Ma:O;Wa=Na;Xa=Oa;Ya=w}else{Ta=w;Ua=Y;Va=0;Wa=Na;Xa=Oa;Ya=w}}Y=Ya-Ta|0;O=(Va|0)<(Y|0)?Y:Va;gb=Wa+O|0;ja=(ta|0)<(gb|0)?gb:ta;sp(e,32,ja,gb,Ua);if(!(c[e>>2]&32))cp(Xa,Wa,e)|0;sp(e,48,ja,gb,Ua^65536);sp(e,48,O,Y,0);if(!(c[e>>2]&32))cp(Ta,Y,e)|0;sp(e,32,ja,gb,Ua^8192);K=N;L=Ba;f=ja;M=sa}h:do if((R|0)==245)if(!e)if(Q){sa=1;while(1){M=c[l+(sa<<2)>>2]|0;if(!M){Ec=sa;break}qp(j+(sa<<3)|0,M,g);sa=sa+1|0;if((sa|0)>=10){pa=1;break h}}if((Ec|0)<10){sa=Ec;while(1){if(c[l+(sa<<2)>>2]|0){pa=-1;break h}sa=sa+1|0;if((sa|0)>=10){pa=1;break}}}else pa=1}else pa=0;else pa=P;while(0);i=m;return pa|0}function pp(a){a=a|0;if(!(c[a+68>>2]|0))fp(a);return}function qp(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,i=0,j=0.0;a:do if(b>>>0<=20)do switch(b|0){case 9:{e=(c[d>>2]|0)+(4-1)&~(4-1);f=c[e>>2]|0;c[d>>2]=e+4;c[a>>2]=f;break a;break}case 10:{f=(c[d>>2]|0)+(4-1)&~(4-1);e=c[f>>2]|0;c[d>>2]=f+4;f=a;c[f>>2]=e;c[f+4>>2]=((e|0)<0)<<31>>31;break a;break}case 11:{e=(c[d>>2]|0)+(4-1)&~(4-1);f=c[e>>2]|0;c[d>>2]=e+4;e=a;c[e>>2]=f;c[e+4>>2]=0;break a;break}case 12:{e=(c[d>>2]|0)+(8-1)&~(8-1);f=e;g=c[f>>2]|0;i=c[f+4>>2]|0;c[d>>2]=e+8;e=a;c[e>>2]=g;c[e+4>>2]=i;break a;break}case 13:{i=(c[d>>2]|0)+(4-1)&~(4-1);e=c[i>>2]|0;c[d>>2]=i+4;i=(e&65535)<<16>>16;e=a;c[e>>2]=i;c[e+4>>2]=((i|0)<0)<<31>>31;break a;break}case 14:{i=(c[d>>2]|0)+(4-1)&~(4-1);e=c[i>>2]|0;c[d>>2]=i+4;i=a;c[i>>2]=e&65535;c[i+4>>2]=0;break a;break}case 15:{i=(c[d>>2]|0)+(4-1)&~(4-1);e=c[i>>2]|0;c[d>>2]=i+4;i=(e&255)<<24>>24;e=a;c[e>>2]=i;c[e+4>>2]=((i|0)<0)<<31>>31;break a;break}case 16:{i=(c[d>>2]|0)+(4-1)&~(4-1);e=c[i>>2]|0;c[d>>2]=i+4;i=a;c[i>>2]=e&255;c[i+4>>2]=0;break a;break}case 17:{i=(c[d>>2]|0)+(8-1)&~(8-1);j=+h[i>>3];c[d>>2]=i+8;h[a>>3]=j;break a;break}case 18:{i=(c[d>>2]|0)+(8-1)&~(8-1);j=+h[i>>3];c[d>>2]=i+8;h[a>>3]=j;break a;break}default:break a}while(0);while(0);return}function rp(b,c,d){b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;if(c>>>0>0|(c|0)==0&b>>>0>4294967295){e=d;f=b;g=c;while(1){c=Kp(f|0,g|0,10,0)|0;h=e+-1|0;a[h>>0]=c|48;c=Jp(f|0,g|0,10,0)|0;if(g>>>0>9|(g|0)==9&f>>>0>4294967295){e=h;f=c;g=C}else{i=h;j=c;break}}k=i;l=j}else{k=d;l=b}if(!l)m=k;else{b=k;k=l;while(1){l=b+-1|0;a[l>>0]=(k>>>0)%10|0|48;if(k>>>0<10){m=l;break}else{b=l;k=(k>>>0)/10|0}}}return m|0}function sp(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;g=i;i=i+256|0;h=g;do if((d|0)>(e|0)&(f&73728|0)==0){j=d-e|0;xp(h|0,b|0,(j>>>0>256?256:j)|0)|0;k=c[a>>2]|0;l=(k&32|0)==0;if(j>>>0>255){m=d-e|0;n=j;o=k;k=l;while(1){if(k){cp(h,256,a)|0;p=c[a>>2]|0}else p=o;n=n+-256|0;k=(p&32|0)==0;if(n>>>0<=255)break;else o=p}if(k)q=m&255;else break}else if(l)q=j;else break;cp(h,q,a)|0}while(0);i=g;return}function tp(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,xa=0,ya=0,za=0,Aa=0,Ba=0,Da=0,Ea=0,Fa=0,Ga=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;do if(a>>>0<245){b=a>>>0<11?16:a+11&-8;d=b>>>3;e=c[720]|0;f=e>>>d;if(f&3){g=(f&1^1)+d|0;h=g<<1;i=2920+(h<<2)|0;j=2920+(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[724]|0)>>>0)wa();m=l+12|0;if((c[m>>2]|0)==(h|0)){c[m>>2]=i;c[j>>2]=l;break}else wa()}else c[720]=e&~(1<>2]=l|3;j=h+(l|4)|0;c[j>>2]=c[j>>2]|1;n=k;return n|0}j=c[722]|0;if(b>>>0>j>>>0){if(f){l=2<>>12&16;m=l>>>i;l=m>>>5&8;o=m>>>l;m=o>>>2&4;p=o>>>m;o=p>>>1&2;q=p>>>o;p=q>>>1&1;r=(l|i|m|o|p)+(q>>>p)|0;p=r<<1;q=2920+(p<<2)|0;o=2920+(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[724]|0)>>>0)wa();l=i+12|0;if((c[l>>2]|0)==(p|0)){c[l>>2]=q;c[o>>2]=i;s=c[722]|0;break}else wa()}else{c[720]=e&~(1<>2]=b|3;i=p+b|0;c[p+(b|4)>>2]=e|1;c[p+j>>2]=e;if(s){j=c[725]|0;o=s>>>3;q=o<<1;d=2920+(q<<2)|0;f=c[720]|0;k=1<>2]|0;if(h>>>0<(c[724]|0)>>>0)wa();else{t=o;u=h}}else{c[720]=f|k;t=2920+(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[722]=e;c[725]=i;n=m;return n|0}i=c[721]|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[3184+((e|i|d|j|q)+(k>>>q)<<2)>>2]|0;q=(c[f+4>>2]&-8)-b|0;k=f;j=f;while(1){f=c[k+16>>2]|0;if(!f){d=c[k+20>>2]|0;if(!d){v=q;w=j;break}else x=d}else x=f;f=(c[x+4>>2]&-8)-b|0;d=f>>>0>>0;q=d?f:q;k=x;j=d?x:j}j=c[724]|0;if(w>>>0>>0)wa();k=w+b|0;if(w>>>0>=k>>>0)wa();q=c[w+24>>2]|0;m=c[w+12>>2]|0;do if((m|0)==(w|0)){p=w+20|0;r=c[p>>2]|0;if(!r){d=w+16|0;f=c[d>>2]|0;if(!f){y=0;break}else{z=f;A=d}}else{z=r;A=p}while(1){p=z+20|0;r=c[p>>2]|0;if(r){z=r;A=p;continue}p=z+16|0;r=c[p>>2]|0;if(!r){B=z;C=A;break}else{z=r;A=p}}if(C>>>0>>0)wa();else{c[C>>2]=0;y=B;break}}else{p=c[w+8>>2]|0;if(p>>>0>>0)wa();r=p+12|0;if((c[r>>2]|0)!=(w|0))wa();d=m+8|0;if((c[d>>2]|0)==(w|0)){c[r>>2]=m;c[d>>2]=p;y=m;break}else wa()}while(0);do if(q){m=c[w+28>>2]|0;j=3184+(m<<2)|0;if((w|0)==(c[j>>2]|0)){c[j>>2]=y;if(!y){c[721]=c[721]&~(1<>>0<(c[724]|0)>>>0)wa();m=q+16|0;if((c[m>>2]|0)==(w|0))c[m>>2]=y;else c[q+20>>2]=y;if(!y)break}m=c[724]|0;if(y>>>0>>0)wa();c[y+24>>2]=q;j=c[w+16>>2]|0;do if(j)if(j>>>0>>0)wa();else{c[y+16>>2]=j;c[j+24>>2]=y;break}while(0);j=c[w+20>>2]|0;if(j)if(j>>>0<(c[724]|0)>>>0)wa();else{c[y+20>>2]=j;c[j+24>>2]=y;break}}while(0);if(v>>>0<16){q=v+b|0;c[w+4>>2]=q|3;j=w+(q+4)|0;c[j>>2]=c[j>>2]|1}else{c[w+4>>2]=b|3;c[w+(b|4)>>2]=v|1;c[w+(v+b)>>2]=v;j=c[722]|0;if(j){q=c[725]|0;m=j>>>3;j=m<<1;p=2920+(j<<2)|0;d=c[720]|0;r=1<>2]|0;if(f>>>0<(c[724]|0)>>>0)wa();else{D=m;E=f}}else{c[720]=d|r;D=2920+(j+2<<2)|0;E=p}c[D>>2]=q;c[E+12>>2]=q;c[q+8>>2]=E;c[q+12>>2]=p}c[722]=v;c[725]=k}n=w+8|0;return n|0}else F=b}else F=b}else if(a>>>0<=4294967231){p=a+11|0;q=p&-8;j=c[721]|0;if(j){r=0-q|0;d=p>>>8;if(d)if(q>>>0>16777215)G=31;else{p=(d+1048320|0)>>>16&8;f=d<>>16&4;m=f<>>16&2;i=14-(d|p|f)+(m<>>15)|0;G=q>>>(i+7|0)&1|i<<1}else G=0;i=c[3184+(G<<2)>>2]|0;a:do if(!i){H=r;I=0;J=0;K=86}else{f=r;m=0;p=q<<((G|0)==31?0:25-(G>>>1)|0);d=i;e=0;while(1){h=c[d+4>>2]&-8;o=h-q|0;if(o>>>0>>0)if((h|0)==(q|0)){L=o;M=d;N=d;K=90;break a}else{O=o;P=d}else{O=f;P=e}o=c[d+20>>2]|0;d=c[d+16+(p>>>31<<2)>>2]|0;h=(o|0)==0|(o|0)==(d|0)?m:o;if(!d){H=O;I=h;J=P;K=86;break}else{f=O;m=h;p=p<<1;e=P}}}while(0);if((K|0)==86){if((I|0)==0&(J|0)==0){i=2<>>12&16;b=i>>>r;i=b>>>5&8;k=b>>>i;b=k>>>2&4;e=k>>>b;k=e>>>1&2;p=e>>>k;e=p>>>1&1;Q=c[3184+((i|r|b|k|e)+(p>>>e)<<2)>>2]|0;R=0}else{Q=I;R=J}if(!Q){S=H;T=R}else{L=H;M=Q;N=R;K=90}}if((K|0)==90)while(1){K=0;e=(c[M+4>>2]&-8)-q|0;p=e>>>0>>0;k=p?e:L;e=p?M:N;p=c[M+16>>2]|0;if(p){L=k;M=p;N=e;K=90;continue}M=c[M+20>>2]|0;if(!M){S=k;T=e;break}else{L=k;N=e;K=90}}if((T|0)!=0?S>>>0<((c[722]|0)-q|0)>>>0:0){j=c[724]|0;if(T>>>0>>0)wa();e=T+q|0;if(T>>>0>=e>>>0)wa();k=c[T+24>>2]|0;p=c[T+12>>2]|0;do if((p|0)==(T|0)){b=T+20|0;r=c[b>>2]|0;if(!r){i=T+16|0;m=c[i>>2]|0;if(!m){U=0;break}else{V=m;W=i}}else{V=r;W=b}while(1){b=V+20|0;r=c[b>>2]|0;if(r){V=r;W=b;continue}b=V+16|0;r=c[b>>2]|0;if(!r){X=V;Y=W;break}else{V=r;W=b}}if(Y>>>0>>0)wa();else{c[Y>>2]=0;U=X;break}}else{b=c[T+8>>2]|0;if(b>>>0>>0)wa();r=b+12|0;if((c[r>>2]|0)!=(T|0))wa();i=p+8|0;if((c[i>>2]|0)==(T|0)){c[r>>2]=p;c[i>>2]=b;U=p;break}else wa()}while(0);do if(k){p=c[T+28>>2]|0;j=3184+(p<<2)|0;if((T|0)==(c[j>>2]|0)){c[j>>2]=U;if(!U){c[721]=c[721]&~(1<>>0<(c[724]|0)>>>0)wa();p=k+16|0;if((c[p>>2]|0)==(T|0))c[p>>2]=U;else c[k+20>>2]=U;if(!U)break}p=c[724]|0;if(U>>>0

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

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

>>0)wa();else{c[U+16>>2]=j;c[j+24>>2]=U;break}while(0);j=c[T+20>>2]|0;if(j)if(j>>>0<(c[724]|0)>>>0)wa(); +else{c[U+20>>2]=j;c[j+24>>2]=U;break}}while(0);b:do if(S>>>0>=16){c[T+4>>2]=q|3;c[T+(q|4)>>2]=S|1;c[T+(S+q)>>2]=S;k=S>>>3;if(S>>>0<256){j=k<<1;p=2920+(j<<2)|0;b=c[720]|0;i=1<>2]|0;if(r>>>0<(c[724]|0)>>>0)wa();else{Z=k;_=r}}else{c[720]=b|i;Z=2920+(j+2<<2)|0;_=p}c[Z>>2]=e;c[_+12>>2]=e;c[T+(q+8)>>2]=_;c[T+(q+12)>>2]=p;break}p=S>>>8;if(p)if(S>>>0>16777215)$=31;else{j=(p+1048320|0)>>>16&8;i=p<>>16&4;b=i<>>16&2;r=14-(p|j|i)+(b<>> +15)|0;$=S>>>(r+7|0)&1|r<<1}else $=0;r=3184+($<<2)|0;c[T+(q+28)>>2]=$;c[T+(q+20)>>2]=0;c[T+(q+16)>>2]=0;i=c[721]|0;b=1<<$;if(!(i&b)){c[721]=i|b;c[r>>2]=e;c[T+(q+24)>>2]=r;c[T+(q+12)>>2]=e;c[T+(q+8)>>2]=e;break}b=c[r>>2]|0;c:do if((c[b+4>>2]&-8|0)!=(S|0)){r=S<<(($|0)==31?0:25-($>>>1)|0);i=b;while(1){j=i+16+(r>>>31<<2)|0;p=c[j>>2]|0;if(!p){aa=j;ba=i;break}if((c[p+4>>2]&-8|0)==(S|0)){ca=p;break c}else{r=r<<1;i=p}}if(aa>>>0<(c[724]|0)>>>0)wa();else{c[aa>>2]=e;c[T+(q+24)>>2]=ba;c[T+(q+12)>>2]=e;c[T+(q+ +8)>>2]=e;break b}}else ca=b;while(0);b=ca+8|0;i=c[b>>2]|0;r=c[724]|0;if(i>>>0>=r>>>0&ca>>>0>=r>>>0){c[i+12>>2]=e;c[b>>2]=e;c[T+(q+8)>>2]=i;c[T+(q+12)>>2]=ca;c[T+(q+24)>>2]=0;break}else wa()}else{i=S+q|0;c[T+4>>2]=i|3;b=T+(i+4)|0;c[b>>2]=c[b>>2]|1}while(0);n=T+8|0;return n|0}else F=q}else F=q}else F=-1;while(0);T=c[722]|0;if(T>>>0>=F>>>0){S=T-F|0;ca=c[725]|0;if(S>>>0>15){c[725]=ca+F;c[722]=S;c[ca+(F+4)>>2]=S|1;c[ca+T>>2]=S;c[ca+4>>2]=F|3}else{c[722]=0;c[725]=0;c[ca+4>>2]=T|3;S=ca+(T+4)|0;c[S>>2]=c[S>> +2]|1}n=ca+8|0;return n|0}ca=c[723]|0;if(ca>>>0>F>>>0){S=ca-F|0;c[723]=S;ca=c[726]|0;c[726]=ca+F;c[ca+(F+4)>>2]=S|1;c[ca+4>>2]=F|3;n=ca+8|0;return n|0}do if(!(c[838]|0)){ca=Ha(30)|0;if(!(ca+-1&ca)){c[840]=ca;c[839]=ca;c[841]=-1;c[842]=-1;c[843]=0;c[831]=0;c[838]=(Ya(0)|0)&-16^1431655768;break}else wa()}while(0);ca=F+48|0;S=c[840]|0;T=F+47|0;ba=S+T|0;aa=0-S|0;S=ba&aa;if(S>>>0<=F>>>0){n=0;return n|0}$=c[830]|0;if(($|0)!=0?(_=c[828]|0,Z=_+S|0,Z>>>0<=_>>>0|Z>>>0>$>>>0):0){n=0;return n|0}d:do if(!(c[831]& +4)){$=c[726]|0;e:do if($){Z=3328;while(1){_=c[Z>>2]|0;if(_>>>0<=$>>>0?(U=Z+4|0,(_+(c[U>>2]|0)|0)>>>0>$>>>0):0){da=Z;ea=U;break}Z=c[Z+8>>2]|0;if(!Z){K=174;break e}}Z=ba-(c[723]|0)&aa;if(Z>>>0<2147483647){U=Ca(Z|0)|0;_=(U|0)==((c[da>>2]|0)+(c[ea>>2]|0)|0);X=_?Z:0;if(_)if((U|0)==(-1|0))fa=X;else{ga=U;ha=X;K=194;break d}else{ia=U;ja=Z;ka=X;K=184}}else fa=0}else K=174;while(0);do if((K|0)==174){$=Ca(0)|0;if(($|0)!=(-1|0)){q=$;X=c[839]|0;Z=X+-1|0;if(!(Z&q))la=S;else la=S-q+(Z+q&0-X)|0;X=c[828]|0;q=X+la| +0;if(la>>>0>F>>>0&la>>>0<2147483647){Z=c[830]|0;if((Z|0)!=0?q>>>0<=X>>>0|q>>>0>Z>>>0:0){fa=0;break}Z=Ca(la|0)|0;q=(Z|0)==($|0);X=q?la:0;if(q){ga=$;ha=X;K=194;break d}else{ia=Z;ja=la;ka=X;K=184}}else fa=0}else fa=0}while(0);f:do if((K|0)==184){X=0-ja|0;do if(ca>>>0>ja>>>0&(ja>>>0<2147483647&(ia|0)!=(-1|0))?(Z=c[840]|0,$=T-ja+Z&0-Z,$>>>0<2147483647):0)if((Ca($|0)|0)==(-1|0)){Ca(X|0)|0;fa=ka;break f}else{ma=$+ja|0;break}else ma=ja;while(0);if((ia|0)==(-1|0))fa=ka;else{ga=ia;ha=ma;K=194;break d}}while(0); +c[831]=c[831]|4;na=fa;K=191}else{na=0;K=191}while(0);if((((K|0)==191?S>>>0<2147483647:0)?(fa=Ca(S|0)|0,S=Ca(0)|0,fa>>>0>>0&((fa|0)!=(-1|0)&(S|0)!=(-1|0))):0)?(ma=S-fa|0,S=ma>>>0>(F+40|0)>>>0,S):0){ga=fa;ha=S?ma:na;K=194}if((K|0)==194){na=(c[828]|0)+ha|0;c[828]=na;if(na>>>0>(c[829]|0)>>>0)c[829]=na;na=c[726]|0;g:do if(na){ma=3328;do{S=c[ma>>2]|0;fa=ma+4|0;ia=c[fa>>2]|0;if((ga|0)==(S+ia|0)){oa=S;pa=fa;qa=ia;ra=ma;K=204;break}ma=c[ma+8>>2]|0}while((ma|0)!=0);if(((K|0)==204?(c[ra+12>>2]&8|0)==0:0)? +na>>>0>>0&na>>>0>=oa>>>0:0){c[pa>>2]=qa+ha;ma=(c[723]|0)+ha|0;ia=na+8|0;fa=(ia&7|0)==0?0:0-ia&7;ia=ma-fa|0;c[726]=na+fa;c[723]=ia;c[na+(fa+4)>>2]=ia|1;c[na+(ma+4)>>2]=40;c[727]=c[842];break}ma=c[724]|0;if(ga>>>0>>0){c[724]=ga;sa=ga}else sa=ma;ma=ga+ha|0;ia=3328;while(1){if((c[ia>>2]|0)==(ma|0)){ta=ia;ua=ia;K=212;break}ia=c[ia+8>>2]|0;if(!ia){va=3328;break}}if((K|0)==212)if(!(c[ua+12>>2]&8)){c[ta>>2]=ga;ia=ua+4|0;c[ia>>2]=(c[ia>>2]|0)+ha;ia=ga+8|0;ma=(ia&7|0)==0?0:0-ia&7;ia=ga+(ha+8)|0;fa= +(ia&7|0)==0?0:0-ia&7;ia=ga+(fa+ha)|0;S=ma+F|0;ka=ga+S|0;ja=ia-(ga+ma)-F|0;c[ga+(ma+4)>>2]=F|3;h:do if((ia|0)!=(na|0)){if((ia|0)==(c[725]|0)){T=(c[722]|0)+ja|0;c[722]=T;c[725]=ka;c[ga+(S+4)>>2]=T|1;c[ga+(T+S)>>2]=T;break}T=ha+4|0;ca=c[ga+(T+fa)>>2]|0;if((ca&3|0)==1){la=ca&-8;ea=ca>>>3;i:do if(ca>>>0>=256){da=c[ga+((fa|24)+ha)>>2]|0;aa=c[ga+(ha+12+fa)>>2]|0;do if((aa|0)==(ia|0)){ba=fa|16;X=ga+(T+ba)|0;$=c[X>>2]|0;if(!$){Z=ga+(ba+ha)|0;ba=c[Z>>2]|0;if(!ba){xa=0;break}else{ya=ba;za=Z}}else{ya=$;za=X}while(1){X= +ya+20|0;$=c[X>>2]|0;if($){ya=$;za=X;continue}X=ya+16|0;$=c[X>>2]|0;if(!$){Aa=ya;Ba=za;break}else{ya=$;za=X}}if(Ba>>>0>>0)wa();else{c[Ba>>2]=0;xa=Aa;break}}else{X=c[ga+((fa|8)+ha)>>2]|0;if(X>>>0>>0)wa();$=X+12|0;if((c[$>>2]|0)!=(ia|0))wa();Z=aa+8|0;if((c[Z>>2]|0)==(ia|0)){c[$>>2]=aa;c[Z>>2]=X;xa=aa;break}else wa()}while(0);if(!da)break;aa=c[ga+(ha+28+fa)>>2]|0;X=3184+(aa<<2)|0;do if((ia|0)!=(c[X>>2]|0)){if(da>>>0<(c[724]|0)>>>0)wa();Z=da+16|0;if((c[Z>>2]|0)==(ia|0))c[Z>>2]=xa;else c[da+20>> +2]=xa;if(!xa)break i}else{c[X>>2]=xa;if(xa)break;c[721]=c[721]&~(1<>>0>>0)wa();c[xa+24>>2]=da;X=fa|16;Z=c[ga+(X+ha)>>2]|0;do if(Z)if(Z>>>0>>0)wa();else{c[xa+16>>2]=Z;c[Z+24>>2]=xa;break}while(0);Z=c[ga+(T+X)>>2]|0;if(!Z)break;if(Z>>>0<(c[724]|0)>>>0)wa();else{c[xa+20>>2]=Z;c[Z+24>>2]=xa;break}}else{Z=c[ga+((fa|8)+ha)>>2]|0;aa=c[ga+(ha+12+fa)>>2]|0;da=2920+(ea<<1<<2)|0;do if((Z|0)!=(da|0)){if(Z>>>0>>0)wa();if((c[Z+12>>2]|0)==(ia|0))break;wa()}while(0); +if((aa|0)==(Z|0)){c[720]=c[720]&~(1<>>0>>0)wa();X=aa+8|0;if((c[X>>2]|0)==(ia|0)){Da=X;break}wa()}while(0);c[Z+12>>2]=aa;c[Da>>2]=Z}while(0);Ea=ga+((la|fa)+ha)|0;Fa=la+ja|0}else{Ea=ia;Fa=ja}ea=Ea+4|0;c[ea>>2]=c[ea>>2]&-2;c[ga+(S+4)>>2]=Fa|1;c[ga+(Fa+S)>>2]=Fa;ea=Fa>>>3;if(Fa>>>0<256){T=ea<<1;ca=2920+(T<<2)|0;da=c[720]|0;X=1<>2]|0;if($>>>0>=(c[724]|0)>>>0){Ga= +ea;Ia=$;break}wa()}while(0);c[Ga>>2]=ka;c[Ia+12>>2]=ka;c[ga+(S+8)>>2]=Ia;c[ga+(S+12)>>2]=ca;break}T=Fa>>>8;do if(!T)Ja=0;else{if(Fa>>>0>16777215){Ja=31;break}X=(T+1048320|0)>>>16&8;da=T<>>16&4;$=da<>>16&2;ea=14-(la|X|da)+($<>>15)|0;Ja=Fa>>>(ea+7|0)&1|ea<<1}while(0);T=3184+(Ja<<2)|0;c[ga+(S+28)>>2]=Ja;c[ga+(S+20)>>2]=0;c[ga+(S+16)>>2]=0;ca=c[721]|0;ea=1<>2]=ka;c[ga+(S+24)>>2]=T;c[ga+(S+12)>>2]=ka;c[ga+(S+8)>>2]=ka;break}ea= +c[T>>2]|0;j:do if((c[ea+4>>2]&-8|0)!=(Fa|0)){T=Fa<<((Ja|0)==31?0:25-(Ja>>>1)|0);ca=ea;while(1){da=ca+16+(T>>>31<<2)|0;$=c[da>>2]|0;if(!$){Ka=da;La=ca;break}if((c[$+4>>2]&-8|0)==(Fa|0)){Ma=$;break j}else{T=T<<1;ca=$}}if(Ka>>>0<(c[724]|0)>>>0)wa();else{c[Ka>>2]=ka;c[ga+(S+24)>>2]=La;c[ga+(S+12)>>2]=ka;c[ga+(S+8)>>2]=ka;break h}}else Ma=ea;while(0);ea=Ma+8|0;ca=c[ea>>2]|0;T=c[724]|0;if(ca>>>0>=T>>>0&Ma>>>0>=T>>>0){c[ca+12>>2]=ka;c[ea>>2]=ka;c[ga+(S+8)>>2]=ca;c[ga+(S+12)>>2]=Ma;c[ga+(S+24)>>2]=0;break}else wa()}else{ca= +(c[723]|0)+ja|0;c[723]=ca;c[726]=ka;c[ga+(S+4)>>2]=ca|1}while(0);n=ga+(ma|8)|0;return n|0}else va=3328;while(1){S=c[va>>2]|0;if(S>>>0<=na>>>0?(ka=c[va+4>>2]|0,ja=S+ka|0,ja>>>0>na>>>0):0){Na=S;Oa=ka;Pa=ja;break}va=c[va+8>>2]|0}ma=Na+(Oa+-39)|0;ja=Na+(Oa+-47+((ma&7|0)==0?0:0-ma&7))|0;ma=na+16|0;ka=ja>>>0>>0?na:ja;ja=ka+8|0;S=ga+8|0;ia=(S&7|0)==0?0:0-S&7;S=ha+-40-ia|0;c[726]=ga+ia;c[723]=S;c[ga+(ia+4)>>2]=S|1;c[ga+(ha+-36)>>2]=40;c[727]=c[842];S=ka+4|0;c[S>>2]=27;c[ja>>2]=c[832];c[ja+4>>2]=c[833]; +c[ja+8>>2]=c[834];c[ja+12>>2]=c[835];c[832]=ga;c[833]=ha;c[835]=0;c[834]=ja;ja=ka+28|0;c[ja>>2]=7;if((ka+32|0)>>>0>>0){ia=ja;do{ja=ia;ia=ia+4|0;c[ia>>2]=7}while((ja+8|0)>>>0>>0)}if((ka|0)!=(na|0)){ia=ka-na|0;c[S>>2]=c[S>>2]&-2;c[na+4>>2]=ia|1;c[ka>>2]=ia;ja=ia>>>3;if(ia>>>0<256){fa=ja<<1;ca=2920+(fa<<2)|0;ea=c[720]|0;T=1<>2]|0;if(Z>>>0<(c[724]|0)>>>0)wa();else{Qa=ja;Ra=Z}}else{c[720]=ea|T;Qa=2920+(fa+2<<2)|0;Ra=ca}c[Qa>>2]=na;c[Ra+12>>2]=na;c[na+8>> +2]=Ra;c[na+12>>2]=ca;break}ca=ia>>>8;if(ca)if(ia>>>0>16777215)Sa=31;else{fa=(ca+1048320|0)>>>16&8;T=ca<>>16&4;ea=T<>>16&2;Z=14-(ca|fa|T)+(ea<>>15)|0;Sa=ia>>>(Z+7|0)&1|Z<<1}else Sa=0;Z=3184+(Sa<<2)|0;c[na+28>>2]=Sa;c[na+20>>2]=0;c[ma>>2]=0;T=c[721]|0;ea=1<>2]=na;c[na+24>>2]=Z;c[na+12>>2]=na;c[na+8>>2]=na;break}ea=c[Z>>2]|0;k:do if((c[ea+4>>2]&-8|0)!=(ia|0)){Z=ia<<((Sa|0)==31?0:25-(Sa>>>1)|0);T=ea;while(1){fa=T+16+(Z>>>31<<2)| +0;ca=c[fa>>2]|0;if(!ca){Ta=fa;Ua=T;break}if((c[ca+4>>2]&-8|0)==(ia|0)){Va=ca;break k}else{Z=Z<<1;T=ca}}if(Ta>>>0<(c[724]|0)>>>0)wa();else{c[Ta>>2]=na;c[na+24>>2]=Ua;c[na+12>>2]=na;c[na+8>>2]=na;break g}}else Va=ea;while(0);ea=Va+8|0;ia=c[ea>>2]|0;ma=c[724]|0;if(ia>>>0>=ma>>>0&Va>>>0>=ma>>>0){c[ia+12>>2]=na;c[ea>>2]=na;c[na+8>>2]=ia;c[na+12>>2]=Va;c[na+24>>2]=0;break}else wa()}}else{ia=c[724]|0;if((ia|0)==0|ga>>>0>>0)c[724]=ga;c[832]=ga;c[833]=ha;c[835]=0;c[729]=c[838];c[728]=-1;ia=0;do{ea=ia<< +1;ma=2920+(ea<<2)|0;c[2920+(ea+3<<2)>>2]=ma;c[2920+(ea+2<<2)>>2]=ma;ia=ia+1|0}while((ia|0)!=32);ia=ga+8|0;ma=(ia&7|0)==0?0:0-ia&7;ia=ha+-40-ma|0;c[726]=ga+ma;c[723]=ia;c[ga+(ma+4)>>2]=ia|1;c[ga+(ha+-36)>>2]=40;c[727]=c[842]}while(0);ha=c[723]|0;if(ha>>>0>F>>>0){ga=ha-F|0;c[723]=ga;ha=c[726]|0;c[726]=ha+F;c[ha+(F+4)>>2]=ga|1;c[ha+4>>2]=F|3;n=ha+8|0;return n|0}}c[(Wo()|0)>>2]=12;n=0;return n|0}function up(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w= +0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0;if(!a)return;b=a+-8|0;d=c[724]|0;if(b>>>0>>0)wa();e=c[a+-4>>2]|0;f=e&3;if((f|0)==1)wa();g=e&-8;h=a+(g+-8)|0;do if(!(e&1)){i=c[b>>2]|0;if(!f)return;j=-8-i|0;k=a+j|0;l=i+g|0;if(k>>>0>>0)wa();if((k|0)==(c[725]|0)){m=a+(g+-4)|0;n=c[m>>2]|0;if((n&3|0)!=3){o=k;p=l;break}c[722]=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=2920+(n<<1<<2)|0;if((i|0)!=(q|0)){if(i>>>0>> +0)wa();if((c[i+12>>2]|0)!=(k|0))wa()}if((m|0)==(i|0)){c[720]=c[720]&~(1<>>0>>0)wa();q=m+8|0;if((c[q>>2]|0)==(k|0))r=q;else wa()}else r=m+8|0;c[i+12>>2]=m;c[r>>2]=i;o=k;p=l;break}i=c[a+(j+24)>>2]|0;m=c[a+(j+12)>>2]|0;do if((m|0)==(k|0)){q=a+(j+20)|0;n=c[q>>2]|0;if(!n){s=a+(j+16)|0;t=c[s>>2]|0;if(!t){u=0;break}else{v=t;w=s}}else{v=n;w=q}while(1){q=v+20|0;n=c[q>>2]|0;if(n){v=n;w=q;continue}q=v+16|0;n=c[q>>2]|0;if(!n){x=v;y=w;break}else{v=n;w=q}}if(y>>>0>> +0)wa();else{c[y>>2]=0;u=x;break}}else{q=c[a+(j+8)>>2]|0;if(q>>>0>>0)wa();n=q+12|0;if((c[n>>2]|0)!=(k|0))wa();s=m+8|0;if((c[s>>2]|0)==(k|0)){c[n>>2]=m;c[s>>2]=q;u=m;break}else wa()}while(0);if(i){m=c[a+(j+28)>>2]|0;q=3184+(m<<2)|0;if((k|0)==(c[q>>2]|0)){c[q>>2]=u;if(!u){c[721]=c[721]&~(1<>>0<(c[724]|0)>>>0)wa();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[724]|0;if(u>>>0>>0)wa();c[u+24>>2]=i;q=c[a+(j+16)>>2]|0;do if(q)if(q>>> +0>>0)wa();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[724]|0)>>>0)wa();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)wa();b=a+(g+-4)|0;u=c[b>>2]|0;if(!(u&1))wa();if(!(u&2)){if((h|0)==(c[726]|0)){d=(c[723]|0)+p|0;c[723]=d;c[726]=o;c[o+4>>2]=d|1;if((o|0)!=(c[725]|0))return;c[725]=0;c[722]=0;return}if((h|0)==(c[725]|0)){d=(c[722]|0)+p|0;c[722]=d;c[725]=o;c[o+4>>2]=d|1;c[o+d>>2]=d;return}d=(u&-8)+ +p|0;x=u>>>3;do if(u>>>0>=256){y=c[a+(g+16)>>2]|0;w=c[a+(g|4)>>2]|0;do if((w|0)==(h|0)){v=a+(g+12)|0;r=c[v>>2]|0;if(!r){f=a+(g+8)|0;e=c[f>>2]|0;if(!e){z=0;break}else{A=e;B=f}}else{A=r;B=v}while(1){v=A+20|0;r=c[v>>2]|0;if(r){A=r;B=v;continue}v=A+16|0;r=c[v>>2]|0;if(!r){C=A;D=B;break}else{A=r;B=v}}if(D>>>0<(c[724]|0)>>>0)wa();else{c[D>>2]=0;z=C;break}}else{v=c[a+g>>2]|0;if(v>>>0<(c[724]|0)>>>0)wa();r=v+12|0;if((c[r>>2]|0)!=(h|0))wa();f=w+8|0;if((c[f>>2]|0)==(h|0)){c[r>>2]=w;c[f>>2]=v;z=w;break}else wa()}while(0); +if(y){w=c[a+(g+20)>>2]|0;l=3184+(w<<2)|0;if((h|0)==(c[l>>2]|0)){c[l>>2]=z;if(!z){c[721]=c[721]&~(1<>>0<(c[724]|0)>>>0)wa();w=y+16|0;if((c[w>>2]|0)==(h|0))c[w>>2]=z;else c[y+20>>2]=z;if(!z)break}w=c[724]|0;if(z>>>0>>0)wa();c[z+24>>2]=y;l=c[a+(g+8)>>2]|0;do if(l)if(l>>>0>>0)wa();else{c[z+16>>2]=l;c[l+24>>2]=z;break}while(0);l=c[a+(g+12)>>2]|0;if(l)if(l>>>0<(c[724]|0)>>>0)wa();else{c[z+20>>2]=l;c[l+24>>2]=z;break}}}else{l=c[a+g>>2]|0;w=c[a+(g|4)>>2]|0;y=2920+(x<<1<<2)|0;if((l| +0)!=(y|0)){if(l>>>0<(c[724]|0)>>>0)wa();if((c[l+12>>2]|0)!=(h|0))wa()}if((w|0)==(l|0)){c[720]=c[720]&~(1<>>0<(c[724]|0)>>>0)wa();y=w+8|0;if((c[y>>2]|0)==(h|0))E=y;else wa()}else E=w+8|0;c[l+12>>2]=w;c[E>>2]=l}while(0);c[o+4>>2]=d|1;c[o+d>>2]=d;if((o|0)==(c[725]|0)){c[722]=d;return}else F=d}else{c[b>>2]=u&-2;c[o+4>>2]=p|1;c[o+p>>2]=p;F=p}p=F>>>3;if(F>>>0<256){u=p<<1;b=2920+(u<<2)|0;d=c[720]|0;E=1<>2]|0;if(h>>>0<(c[724]|0)>>>0)wa(); +else{G=p;H=h}}else{c[720]=d|E;G=2920+(u+2<<2)|0;H=b}c[G>>2]=o;c[H+12>>2]=o;c[o+8>>2]=H;c[o+12>>2]=b;return}b=F>>>8;if(b)if(F>>>0>16777215)I=31;else{H=(b+1048320|0)>>>16&8;G=b<>>16&4;u=G<>>16&2;E=14-(b|H|G)+(u<>>15)|0;I=F>>>(E+7|0)&1|E<<1}else I=0;E=3184+(I<<2)|0;c[o+28>>2]=I;c[o+20>>2]=0;c[o+16>>2]=0;G=c[721]|0;u=1<>2]|0;b:do if((c[H+4>>2]&-8|0)!=(F|0)){b=F<<((I|0)==31?0:25-(I>>>1)|0);d=H;while(1){h=d+16+(b>>>31<<2)|0;p=c[h>>2]|0;if(!p){J= +h;K=d;break}if((c[p+4>>2]&-8|0)==(F|0)){L=p;break b}else{b=b<<1;d=p}}if(J>>>0<(c[724]|0)>>>0)wa();else{c[J>>2]=o;c[o+24>>2]=K;c[o+12>>2]=o;c[o+8>>2]=o;break a}}else L=H;while(0);H=L+8|0;d=c[H>>2]|0;b=c[724]|0;if(d>>>0>=b>>>0&L>>>0>=b>>>0){c[d+12>>2]=o;c[H>>2]=o;c[o+8>>2]=d;c[o+12>>2]=L;c[o+24>>2]=0;break}else wa()}else{c[721]=G|u;c[E>>2]=o;c[o+24>>2]=E;c[o+12>>2]=o;c[o+8>>2]=o}while(0);o=(c[728]|0)+-1|0;c[728]=o;if(!o)M=3336;else return;while(1){o=c[M>>2]|0;if(!o)break;else M=o+8|0}c[728]=-1;return} +function vp(){}function wp(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(C=e,a-c>>>0|0)|0}function xp(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 yp(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){C=b<>>32-c;return a<>>0;return(C=b+d+(e>>>0>>0|0)>>>0,e|0)|0}function Ap(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){C=b>>>c;return a>>>c|(b&(1<>>c-32|0}function Bp(b,d,e){b=b|0;d=d|0;e=e|0;var f=0;if((e|0)>=4096)return Ka(b|0,d|0,e|0)|0;f=b|0;if((b&3)==(d&3)){while(b&3){if(!e)return f|0;a[b>>0]=a[d>>0]|0;b=b+1|0;d=d+1|0;e=e-1|0}while((e|0)>=4){c[b>>2]=c[d>>2];b=b+4|0;d=d+4|0;e=e-4|0}}while((e|0)>0){a[b>>0]=a[d>>0]|0;b=b+1|0;d=d+1|0;e= +e-1|0}return f|0}function Cp(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 Bp(b,c,d)|0;return b|0}function Dp(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){C=b>>c;return a>>>c|(b&(1<>c-32|0}function Ep(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 Fp(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(C=(a>>>16)+(_(d,f)|0)+(((a&65535)+b|0)>>>16)|0,a+b<<16|e&65535|0)|0}function Gp(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=wp(e^a,f^b,e,f)|0;b=C;a=g^e;e=h^f;return wp((Lp(i,b,wp(g^c,h^d,g,h)|0,C,0)|0)^ +a,C^e,a,e)|0}function Hp(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+16|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=wp(h^a,j^b,h,j)|0;b=C;Lp(m,b,wp(k^d,l^e,k,l)|0,C,g)|0;l=wp(c[g>>2]^h,c[g+4>>2]^j,h,j)|0;j=C;i=f;return(C=j,l)|0}function Ip(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=Fp(e,a)|0;f=C;return(C=(_(b,a)|0)+(_(d,e)|0)+f|f&0,c|0|0)|0}function Jp(a,b,c,d){a= +a|0;b=b|0;c=c|0;d=d|0;return Lp(a,b,c,d,0)|0}function Kp(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|0;Lp(a,b,d,e,g)|0;i=f;return(C=c[g+4>>2]|0,c[g>>2]|0)|0}function Lp(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,D=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(C=n,o)|0}else{if(!m){n=0;o=0;return(C= +n,o)|0}c[f>>2]=a|0;c[f+4>>2]=b&0;n=0;o=0;return(C=n,o)|0}}m=(l|0)==0;do if(j){if(!m){p=(aa(l|0)|0)-(aa(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<>>(q>>>0)&s;w=0;x=g<>2]=a|0;c[f+4>>2]=h|b&0;n=0;o=0;return(C=n,o)|0}r=j-1|0;if(r&j){s=(aa(j|0)|0)+33-(aa(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<>>(s>>>0))&A;v=A&i>>>(s>>>0);w=g<>>(z>>>0))&y|g<>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(C=n,o)|0}else{r=Ep(j|0)|0;n=i>>>(r>>>0)|0;o=i<<32-r|g>>>(r>>>0)|0;return(C=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(C=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(C=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>>>((Ep(l|0)|0)>>>0);return(C=n,o)|0}r=(aa(l|0)|0)-(aa(i|0)|0)|0;if(r>>>0<=30){s=r+1|0;p=31-r|0;t=s;u=i<>>(s>>> +0);v=i>>>(s>>>0);w=0;x=g<>2]=a|0;c[f+4>>2]=h|b&0;n=0;o=0;return(C=n,o)|0}while(0);if(!t){B=x;D=w;E=v;F=u;G=0;H=0}else{b=d|0|0;d=k|e&0;e=zp(b|0,d|0,-1,-1)|0;k=C;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;wp(e,k,g,a)|0;i=C;l=i>>31|((i|0)<0?-1:0)<<1;t=l&1;v=wp(g,a,l&b,(((i|0)<0?-1:0)>>31|((i|0)<0?-1:0)<<1)&d)|0;w=C;u=u-1|0}while((u|0)!=0);B=h;D=x;E=w;F=v;G=0;H=t}t=D;D=0;if(f){c[f>>2]=F;c[f+4>>2]=E}n=(t|0)>>>31|(B| +D)<<1|(D<<1|t>>>31)&0|G;o=(t<<1|0>>>31)&-2|H;return(C=n,o)|0}function Mp(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;return+eb[a&1](b|0,c|0,d|0,e|0,f|0,+g)}function Np(a,b){a=a|0;b=b|0;return fb[a&7](b|0)|0}function Op(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;gb[a&3](b|0,c|0,d|0,e|0,f|0)}function Pp(a,b,c){a=a|0;b=b|0;c=+c;return+hb[a&15](b|0,+c)}function Qp(a,b){a=a|0;b=b|0;ib[a&127](b|0)}function Rp(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=+f;return+jb[a&1](b|0,c|0,d|0,e| +0,+f)}function Sp(a,b,c){a=a|0;b=b|0;c=c|0;kb[a&63](b|0,c|0)}function Tp(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return lb[a&15](b|0,c|0,d|0)|0}function Up(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;mb[a&7](b|0,c|0,d|0)}function Vp(a){a=a|0;nb[a&3]()}function Wp(a,b,c,d){a=a|0;b=b|0;c=c|0;d=+d;ob[a&31](b|0,c|0,+d)}function Xp(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return pb[a&7](b|0,c|0,d|0,e|0)|0}function Yp(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;qb[a&7](b|0,c|0,d|0,e|0,f|0,g|0)}function Zp(a, +b,c){a=a|0;b=b|0;c=c|0;return rb[a&31](b|0,c|0)|0}function _p(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 sb[a&15](b|0,c|0,d|0,e|0,f|0)|0}function $p(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;tb[a&31](b|0,c|0,d|0,e|0)}function aq(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=+f;ba(0);return 0}function bq(a){a=a|0;ba(1);return 0}function cq(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;ba(2)}function dq(a,b){a=a|0;b=+b;ba(3);return 0}function eq(a){a=a|0;ba(4)}function fq(a,b,c,d,e){a=a|0;b=b| +0;c=c|0;d=d|0;e=+e;ba(5);return 0}function gq(a,b){a=a|0;b=b|0;ba(6)}function hq(a,b,c){a=a|0;b=b|0;c=c|0;ba(7);return 0}function iq(a,b,c){a=a|0;b=b|0;c=c|0;ba(8)}function jq(){ba(9)}function kq(){ab()}function lq(a,b,c){a=a|0;b=b|0;c=+c;ba(10)}function mq(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;ba(11);return 0}function nq(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;ba(12)}function oq(a,b){a=a|0;b=b|0;ba(13);return 0}function pq(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;ba(14);return 0}function qq(a, +b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;ba(15)}var eb=[aq,df];var fb=[bq,rf,Af,Jf,Uf,Gn,vo,hp];var gb=[cq,No,Mo,cq];var hb=[dq,Ug,fh,wh,Hh,Uh,ci,oi,Ii,_i,tj,Lj,dq,dq,dq,dq];var ib=[eq,Gc,Qe,Hc,Ze,ff,bf,xf,yf,Hf,Pf,Qf,Rf,Fg,Gg,Wg,Xg,Yg,lh,nh,xh,yh,Kh,Lh,Vh,Wh,ei,fi,zi,Ai,Ki,Li,Qi,Ri,jj,kj,Bj,Cj,Qj,Sj,Wj,Xj,ak,ek,ik,vk,zk,Dk,Hk,vl,Mn,En,ln,Dn,wn,xn,qn,mn,en,Zm,to,uo,Bo,Eo,Co,Do,Fo,Uo,pp,eq,eq,eq,eq,eq,eq,eq,eq,eq,eq,eq,eq,eq,eq,eq,eq,eq,eq,eq,eq,eq,eq,eq,eq,eq,eq,eq,eq,eq,eq,eq,eq,eq,eq,eq,eq,eq,eq,eq,eq,eq, +eq,eq,eq,eq,eq,eq,eq,eq,eq,eq,eq,eq,eq,eq,eq,eq,eq,eq];var jb=[fq,cf];var kb=[gq,Re,Se,Rg,Sg,Vg,Og,Pg,ch,dh,mh,$g,ah,th,uh,qh,rh,Eh,Fh,Bh,Ch,Rh,Sh,Oh,Ph,$h,ai,Yh,Zh,li,mi,ii,ji,Fi,Gi,Ci,Di,Xi,Yi,Ui,Vi,qj,rj,nj,oj,Ij,Jj,Rj,Fj,Gj,wl,xl,eo,gk,ck,Fk,tk,Bk,xk,Uj,gq,gq,gq,gq];var lb=[hq,$e,sf,Cf,Kf,Xf,Eg,On,Hn,on,sn,Go,jp,ip,kp,hq];var mb=[iq,Te,Ve,Xe,Ye,yl,zl,iq];var nb=[jq,kq,So,To];var ob=[lq,wf,Gf,Of,_f,Tg,eh,vh,Gh,Th,bi,ni,Hi,Zi,sj,Kj,Ln,lq,lq,lq,lq,lq,lq,lq,lq,lq,lq,lq,lq,lq,lq,lq];var pb=[mq,Hg, +Ig,pn,tn,mq,mq,mq];var qb=[nq,tf,Df,Lf,Wf,In,Po,Oo];var rb=[oq,_e,af,ef,qf,zf,If,Tf,Qg,bh,sh,Dh,Qh,_h,ki,Ei,Wi,pj,Hj,Nn,Fn,rn,nn,_m,$m,co,Bl,gm,hm,Pm,Rm,qm];var sb=[pq,uf,Ef,Mf,Yf,Jn,fk,bk,Ek,sk,Ak,wk,Tj,pq,pq,pq];var tb=[qq,Ue,We,vf,Ff,Nf,Zf,Vj,dk,hk,uk,yk,Ck,Gk,Kn,yn,fn,an,Io,Jo,qq,qq,qq,qq,qq,qq,qq,qq,qq,qq,qq,qq];return{_b2PrismaticJoint_IsMotorEnabled:Gd,_b2Body_GetWorldVector:ic,_b2MouseJoint_SetFrequency:xd,_b2Body_GetLocalVector:bc,_b2PrismaticJoint_GetMotorSpeed:Dd,_b2ParticleGroup_ApplyLinearImpulse:Ae, +_b2RopeJointDef_Create:he,_b2PrismaticJoint_SetMaxMotorForce:Ld,_b2World_CreateParticleSystem:Kc,_b2ParticleSystem_SetRadius:Pe,_bitshift64Lshr:Ap,_b2FrictionJointDef_Create:$c,_b2RopeJoint_SetMaxLength:fe,_b2World_RayCast:Qc,_b2MotorJointDef_InitializeAndCreate:ud,_b2DistanceJoint_SetFrequency:Zc,_b2MotorJoint_SetCorrectionFactor:sd,_b2Joint_GetType:hd,_b2WheelJoint_EnableMotor:se,_b2Body_GetLocalPoint:ac,_memcpy:Bp,_b2RevoluteJoint_EnableLimit:Ud,_b2Body_DestroyFixture:Xb,_b2World_Create:Ic,_b2PolygonShape_CreateFixture_3:Kb, +_b2PolygonShape_CreateFixture_6:Nb,_b2PolygonShape_CreateFixture_7:Ob,_b2PolygonShape_CreateFixture_4:Lb,_b2PolygonShape_CreateFixture_5:Mb,_b2DistanceJoint_SetLength:Yc,_b2Body_IsActive:Cc,_b2Body_SetAwake:jc,_b2Body_GetWorldCenter:gc,_b2RevoluteJoint_SetMaxMotorTorque:ae,_b2WheelJoint_GetMotorTorque:ve,_b2ParticleGroup_DestroyParticles:Be,_b2PrismaticJoint_EnableLimit:Ad,_b2WheelJoint_GetJointSpeed:qe,_b2MouseJointDef_Create:zd,_b2RevoluteJoint_GetJointAngle:Wd,_b2Body_ApplyLinearImpulse:Tb,___cxa_can_catch:Qo, +_free:up,_b2ParticleSystem_CreateParticle:Ee,_b2Body_SetLinearVelocity:mc,_b2PrismaticJoint_GetJointSpeed:Jd,_b2Body_IsBullet:yc,_b2Body_SetSleepingAllowed:zc,_b2CircleShape_CreateParticleGroup:Hb,_b2WeldJointDef_Create:ke,_b2RevoluteJoint_IsMotorEnabled:Yd,_b2Body_GetAngularVelocity:Zb,_b2Body_ApplyForceToCenter:Vb,_b2Body_SetMassData:nc,_b2MouseJoint_SetMaxForce:wd,_b2PrismaticJoint_SetLimits:Kd,_b2Joint_GetCollideConnected:nd,_b2DistanceJointDef_InitializeAndCreate:Xc,_b2MotorJoint_SetMaxTorque:rd, +_b2Body_ApplyForce:Ub,_b2MotorJoint_SetMaxForce:qd,_b2RevoluteJoint_SetMotorSpeed:ee,_b2WheelJoint_SetSpringDampingRatio:we,___cxa_is_pointer_type:Ro,_b2Body_GetPosition:dc,_b2PrismaticJoint_GetLocalAxisA:Id,_b2World_CreateBody:Jc,_b2Body_GetLinearVelocity:$b,_b2ParticleSystem_SetGravityScale:Me,_b2ParticleSystem_SetMaxParticleCount:Ne,_b2GearJoint_SetRatio:dd,_b2Body_GetAngularDamping:vc,_b2ParticleSystem_GetColorBuffer:Fe,_b2PulleyJointDef_Create:Sd,_b2DistanceJointDef_Create:Wc,_b2Joint_GetReactionTorque:ld, +_b2ParticleSystem_GetPositionBuffer:Ie,_b2CircleShape_DestroyParticlesInShape:Ib,_b2World_QueryAABB:Pc,_b2WeldJoint_SetDampingRatio:je,_b2PulleyJoint_GetGroundAnchorB:Pd,_b2PulleyJoint_GetGroundAnchorA:Od,_b2Joint_GetAnchorB:jd,_b2PolygonShape_DestroyParticlesInShape_4:Rb,_b2Joint_GetAnchorA:id,_b2RevoluteJoint_SetLimits:_d,_b2GearJointDef_Create:ed,_b2PrismaticJoint_IsLimitEnabled:Fd,_b2DistanceJoint_SetDampingRatio:_c,_b2Contact_GetWorldManifold:Vc,_b2Body_IsAwake:wc,_b2FrictionJoint_SetMaxTorque:cd, +_b2Body_SetFixedRotation:kc,_b2RevoluteJoint_GetJointSpeed:Zd,_b2Body_SetBullet:xc,_b2PulleyJoint_GetCurrentLengthA:Qd,_b2PulleyJoint_GetCurrentLengthB:Rd,_b2PrismaticJointDef_InitializeAndCreate:Nd,_b2Joint_GetReactionForce:kd,_b2MotorJointDef_Create:td,_b2World_DestroyBody:Mc,_b2RevoluteJointDef_Create:ce,_b2WheelJoint_GetMotorSpeed:te,_b2Joint_IsActive:md,_b2ParticleGroup_GetParticleCount:De,_b2World_SetGravity:Sc,_b2WheelJoint_GetJointTranslation:pe,_b2PrismaticJoint_EnableMotor:Bd,_b2PolygonShape_CreateParticleGroup_4:Qb, +_b2PolygonShape_CreateFixture_8:Pb,_b2WheelJoint_SetMaxMotorTorque:ue,_b2RopeJoint_GetLimitState:ge,_b2Body_SetAngularVelocity:lc,_b2RevoluteJointDef_InitializeAndCreate:de,_b2Body_IsSleepingAllowed:Ac,_b2Body_GetWorldPoint:hc,_b2WheelJoint_IsMotorEnabled:re,_b2WheelJoint_SetMotorSpeed:me,_b2FrictionJointDef_InitializeAndCreate:ad,_b2Body_GetLinearDamping:tc,_b2Body_SetLinearDamping:sc,_b2World_SetContactListener:Rc,_b2ParticleSystem_SetDamping:Ke,_b2WheelJointDef_Create:xe,_b2Body_SetType:pc,_b2Body_SetTransform:oc, +_b2Body_SetAngularDamping:uc,_b2MotorJoint_SetLinearOffset:pd,_b2WeldJoint_SetFrequency:ie,_b2WheelJoint_GetLocalAxisA:oe,_b2Fixture_TestPoint:Ec,_b2ParticleGroup_ApplyForce:ze,_malloc:tp,_b2Contact_GetManifold:Uc,_b2Fixture_Refilter:Fc,_b2ParticleSystem_GetVelocityBuffer:Je,_b2ParticleSystem_GetParticleLifetime:He,_b2RevoluteJoint_IsLimitEnabled:Xd,_b2World_DestroyParticleSystem:Oc,_b2RevoluteJoint_EnableMotor:Vd,_b2Body_GetTransform:ec,_i64Subtract:wp,_b2WeldJointDef_InitializeAndCreate:le,_b2EdgeShape_CreateFixture:Jb, +_b2RevoluteJoint_GetMotorSpeed:$d,_b2Body_GetType:fc,_b2Manifold_GetPointCount:Db,_bitshift64Shl:yp,_b2ParticleSystem_SetDensity:Le,_fflush:ap,_b2PrismaticJoint_GetMotorForce:Ed,_b2Joint_GetBodyA:fd,_b2PulleyJointDef_InitializeAndCreate:Td,_b2Joint_GetBodyB:gd,_b2ParticleSystem_GetParticleCount:Ge,_b2MouseJoint_SetTarget:vd,_b2Body_ApplyAngularImpulse:Sb,_b2ChainShape_CreateFixture:Eb,_b2Body_SetActive:Bc,_b2World_DestroyJoint:Nc,_b2MotorJoint_SetAngularOffset:od,_b2World_Delete:Lc,_memset:xp,_b2PrismaticJoint_GetJointTranslation:Cd, +_i64Add:zp,_b2Body_GetMass:cc,_b2Body_GetAngle:Yb,_b2ParticleGroup_GetBufferIndex:Ce,_b2WheelJointDef_InitializeAndCreate:ye,_b2World_Step:Tc,_b2PrismaticJointDef_Create:Md,_b2Body_GetGravityScale:rc,_b2Body_SetGravityScale:qc,___errno_location:Wo,_memmove:Cp,_b2MouseJoint_SetDampingRatio:yd,_b2CircleShape_CreateFixture:Gb,_b2Body_GetInertia:_b,_b2WheelJoint_SetSpringFrequencyHz:ne,_b2ParticleSystem_SetParticleLifetime:Oe,_b2RevoluteJoint_GetMotorTorque:be,_b2PrismaticJoint_SetMotorSpeed:Hd,_b2Body_ApplyTorque:Wb, +_boBody_IsFixedRotation:Dc,_b2FrictionJoint_SetMaxForce:bd,__GLOBAL__sub_I_jsBindings_cpp:gf,runPostSets:vp,stackAlloc:ub,stackSave:vb,stackRestore:wb,establishStackSpace:xb,setThrew:yb,setTempRet0:Bb,getTempRet0:Cb,dynCall_diiiiid:Mp,dynCall_ii:Np,dynCall_viiiii:Op,dynCall_did:Pp,dynCall_vi:Qp,dynCall_diiiid:Rp,dynCall_vii:Sp,dynCall_iiii:Tp,dynCall_viii:Up,dynCall_v:Vp,dynCall_viid:Wp,dynCall_iiiii:Xp,dynCall_viiiiii:Yp,dynCall_iii:Zp,dynCall_iiiiii:_p,dynCall_viiii:$p}}(Module.asmGlobalArg,Module.asmLibraryArg, +buffer);var _b2PrismaticJoint_IsMotorEnabled=Module["_b2PrismaticJoint_IsMotorEnabled"]=asm["_b2PrismaticJoint_IsMotorEnabled"];var _b2Body_GetWorldVector=Module["_b2Body_GetWorldVector"]=asm["_b2Body_GetWorldVector"];var _b2MouseJoint_SetFrequency=Module["_b2MouseJoint_SetFrequency"]=asm["_b2MouseJoint_SetFrequency"];var _b2Body_GetLocalVector=Module["_b2Body_GetLocalVector"]=asm["_b2Body_GetLocalVector"];var _b2PrismaticJoint_GetMotorSpeed=Module["_b2PrismaticJoint_GetMotorSpeed"]=asm["_b2PrismaticJoint_GetMotorSpeed"]; +var _b2Body_SetFixedRotation=Module["_b2Body_SetFixedRotation"]=asm["_b2Body_SetFixedRotation"];var _b2RopeJointDef_Create=Module["_b2RopeJointDef_Create"]=asm["_b2RopeJointDef_Create"];var _b2PrismaticJoint_SetMaxMotorForce=Module["_b2PrismaticJoint_SetMaxMotorForce"]=asm["_b2PrismaticJoint_SetMaxMotorForce"];var _b2World_CreateParticleSystem=Module["_b2World_CreateParticleSystem"]=asm["_b2World_CreateParticleSystem"];var _b2ParticleSystem_SetRadius=Module["_b2ParticleSystem_SetRadius"]=asm["_b2ParticleSystem_SetRadius"]; +var __GLOBAL__sub_I_jsBindings_cpp=Module["__GLOBAL__sub_I_jsBindings_cpp"]=asm["__GLOBAL__sub_I_jsBindings_cpp"];var _bitshift64Lshr=Module["_bitshift64Lshr"]=asm["_bitshift64Lshr"];var _b2FrictionJointDef_Create=Module["_b2FrictionJointDef_Create"]=asm["_b2FrictionJointDef_Create"];var _b2RopeJoint_SetMaxLength=Module["_b2RopeJoint_SetMaxLength"]=asm["_b2RopeJoint_SetMaxLength"];var _b2World_RayCast=Module["_b2World_RayCast"]=asm["_b2World_RayCast"]; +var _b2MotorJointDef_InitializeAndCreate=Module["_b2MotorJointDef_InitializeAndCreate"]=asm["_b2MotorJointDef_InitializeAndCreate"];var _b2DistanceJoint_SetFrequency=Module["_b2DistanceJoint_SetFrequency"]=asm["_b2DistanceJoint_SetFrequency"];var _b2MotorJoint_SetCorrectionFactor=Module["_b2MotorJoint_SetCorrectionFactor"]=asm["_b2MotorJoint_SetCorrectionFactor"];var _b2Joint_GetType=Module["_b2Joint_GetType"]=asm["_b2Joint_GetType"];var _b2Body_GetLocalPoint=Module["_b2Body_GetLocalPoint"]=asm["_b2Body_GetLocalPoint"]; +var _memcpy=Module["_memcpy"]=asm["_memcpy"];var _b2RevoluteJoint_EnableLimit=Module["_b2RevoluteJoint_EnableLimit"]=asm["_b2RevoluteJoint_EnableLimit"];var _b2Body_DestroyFixture=Module["_b2Body_DestroyFixture"]=asm["_b2Body_DestroyFixture"];var _b2World_Create=Module["_b2World_Create"]=asm["_b2World_Create"];var _b2PolygonShape_CreateFixture_3=Module["_b2PolygonShape_CreateFixture_3"]=asm["_b2PolygonShape_CreateFixture_3"]; +var _b2PolygonShape_CreateFixture_6=Module["_b2PolygonShape_CreateFixture_6"]=asm["_b2PolygonShape_CreateFixture_6"];var _b2PolygonShape_CreateFixture_7=Module["_b2PolygonShape_CreateFixture_7"]=asm["_b2PolygonShape_CreateFixture_7"];var _b2PolygonShape_CreateFixture_4=Module["_b2PolygonShape_CreateFixture_4"]=asm["_b2PolygonShape_CreateFixture_4"];var _b2PolygonShape_CreateFixture_5=Module["_b2PolygonShape_CreateFixture_5"]=asm["_b2PolygonShape_CreateFixture_5"]; +var _b2DistanceJoint_SetLength=Module["_b2DistanceJoint_SetLength"]=asm["_b2DistanceJoint_SetLength"];var _b2Body_IsActive=Module["_b2Body_IsActive"]=asm["_b2Body_IsActive"];var _b2WheelJoint_SetSpringFrequencyHz=Module["_b2WheelJoint_SetSpringFrequencyHz"]=asm["_b2WheelJoint_SetSpringFrequencyHz"];var _b2Body_SetAwake=Module["_b2Body_SetAwake"]=asm["_b2Body_SetAwake"];var _b2RevoluteJoint_SetMaxMotorTorque=Module["_b2RevoluteJoint_SetMaxMotorTorque"]=asm["_b2RevoluteJoint_SetMaxMotorTorque"]; +var _b2WheelJoint_GetMotorTorque=Module["_b2WheelJoint_GetMotorTorque"]=asm["_b2WheelJoint_GetMotorTorque"];var _b2ParticleGroup_DestroyParticles=Module["_b2ParticleGroup_DestroyParticles"]=asm["_b2ParticleGroup_DestroyParticles"];var _b2PrismaticJoint_EnableLimit=Module["_b2PrismaticJoint_EnableLimit"]=asm["_b2PrismaticJoint_EnableLimit"];var _b2WheelJoint_GetJointSpeed=Module["_b2WheelJoint_GetJointSpeed"]=asm["_b2WheelJoint_GetJointSpeed"]; +var _b2Fixture_TestPoint=Module["_b2Fixture_TestPoint"]=asm["_b2Fixture_TestPoint"];var _b2Body_ApplyLinearImpulse=Module["_b2Body_ApplyLinearImpulse"]=asm["_b2Body_ApplyLinearImpulse"];var ___cxa_can_catch=Module["___cxa_can_catch"]=asm["___cxa_can_catch"];var _free=Module["_free"]=asm["_free"];var runPostSets=Module["runPostSets"]=asm["runPostSets"];var _b2ParticleSystem_CreateParticle=Module["_b2ParticleSystem_CreateParticle"]=asm["_b2ParticleSystem_CreateParticle"]; +var _b2Body_SetLinearVelocity=Module["_b2Body_SetLinearVelocity"]=asm["_b2Body_SetLinearVelocity"];var _b2PrismaticJoint_GetJointSpeed=Module["_b2PrismaticJoint_GetJointSpeed"]=asm["_b2PrismaticJoint_GetJointSpeed"];var _b2Body_IsBullet=Module["_b2Body_IsBullet"]=asm["_b2Body_IsBullet"];var _b2Body_SetSleepingAllowed=Module["_b2Body_SetSleepingAllowed"]=asm["_b2Body_SetSleepingAllowed"];var _b2PolygonShape_DestroyParticlesInShape_4=Module["_b2PolygonShape_DestroyParticlesInShape_4"]=asm["_b2PolygonShape_DestroyParticlesInShape_4"]; +var _b2WeldJointDef_Create=Module["_b2WeldJointDef_Create"]=asm["_b2WeldJointDef_Create"];var _b2Body_GetAngularVelocity=Module["_b2Body_GetAngularVelocity"]=asm["_b2Body_GetAngularVelocity"];var _b2Body_ApplyForceToCenter=Module["_b2Body_ApplyForceToCenter"]=asm["_b2Body_ApplyForceToCenter"];var _b2GearJoint_SetRatio=Module["_b2GearJoint_SetRatio"]=asm["_b2GearJoint_SetRatio"];var _b2MouseJoint_SetMaxForce=Module["_b2MouseJoint_SetMaxForce"]=asm["_b2MouseJoint_SetMaxForce"]; +var _b2PrismaticJoint_SetLimits=Module["_b2PrismaticJoint_SetLimits"]=asm["_b2PrismaticJoint_SetLimits"];var _b2Joint_GetCollideConnected=Module["_b2Joint_GetCollideConnected"]=asm["_b2Joint_GetCollideConnected"];var _b2DistanceJointDef_InitializeAndCreate=Module["_b2DistanceJointDef_InitializeAndCreate"]=asm["_b2DistanceJointDef_InitializeAndCreate"];var _b2MotorJoint_SetMaxTorque=Module["_b2MotorJoint_SetMaxTorque"]=asm["_b2MotorJoint_SetMaxTorque"]; +var _b2Body_ApplyForce=Module["_b2Body_ApplyForce"]=asm["_b2Body_ApplyForce"];var _b2MotorJoint_SetMaxForce=Module["_b2MotorJoint_SetMaxForce"]=asm["_b2MotorJoint_SetMaxForce"];var _b2RevoluteJoint_SetMotorSpeed=Module["_b2RevoluteJoint_SetMotorSpeed"]=asm["_b2RevoluteJoint_SetMotorSpeed"];var _b2PrismaticJoint_GetJointTranslation=Module["_b2PrismaticJoint_GetJointTranslation"]=asm["_b2PrismaticJoint_GetJointTranslation"];var ___cxa_is_pointer_type=Module["___cxa_is_pointer_type"]=asm["___cxa_is_pointer_type"]; +var _b2Body_SetActive=Module["_b2Body_SetActive"]=asm["_b2Body_SetActive"];var _b2Body_GetPosition=Module["_b2Body_GetPosition"]=asm["_b2Body_GetPosition"];var _b2PrismaticJoint_GetLocalAxisA=Module["_b2PrismaticJoint_GetLocalAxisA"]=asm["_b2PrismaticJoint_GetLocalAxisA"];var _b2World_CreateBody=Module["_b2World_CreateBody"]=asm["_b2World_CreateBody"];var _b2Body_GetLinearVelocity=Module["_b2Body_GetLinearVelocity"]=asm["_b2Body_GetLinearVelocity"]; +var _b2EdgeShape_CreateFixture=Module["_b2EdgeShape_CreateFixture"]=asm["_b2EdgeShape_CreateFixture"];var _b2ParticleSystem_SetGravityScale=Module["_b2ParticleSystem_SetGravityScale"]=asm["_b2ParticleSystem_SetGravityScale"];var _b2ParticleSystem_SetMaxParticleCount=Module["_b2ParticleSystem_SetMaxParticleCount"]=asm["_b2ParticleSystem_SetMaxParticleCount"];var _b2Body_SetMassData=Module["_b2Body_SetMassData"]=asm["_b2Body_SetMassData"]; +var _b2Body_GetAngularDamping=Module["_b2Body_GetAngularDamping"]=asm["_b2Body_GetAngularDamping"];var _b2ParticleSystem_GetColorBuffer=Module["_b2ParticleSystem_GetColorBuffer"]=asm["_b2ParticleSystem_GetColorBuffer"];var _b2PrismaticJointDef_Create=Module["_b2PrismaticJointDef_Create"]=asm["_b2PrismaticJointDef_Create"];var _b2DistanceJointDef_Create=Module["_b2DistanceJointDef_Create"]=asm["_b2DistanceJointDef_Create"];var _b2Joint_GetReactionTorque=Module["_b2Joint_GetReactionTorque"]=asm["_b2Joint_GetReactionTorque"]; +var _b2ParticleSystem_GetPositionBuffer=Module["_b2ParticleSystem_GetPositionBuffer"]=asm["_b2ParticleSystem_GetPositionBuffer"];var _b2CircleShape_DestroyParticlesInShape=Module["_b2CircleShape_DestroyParticlesInShape"]=asm["_b2CircleShape_DestroyParticlesInShape"];var _b2World_QueryAABB=Module["_b2World_QueryAABB"]=asm["_b2World_QueryAABB"];var _b2WeldJoint_SetDampingRatio=Module["_b2WeldJoint_SetDampingRatio"]=asm["_b2WeldJoint_SetDampingRatio"]; +var _b2PulleyJoint_GetGroundAnchorB=Module["_b2PulleyJoint_GetGroundAnchorB"]=asm["_b2PulleyJoint_GetGroundAnchorB"];var _b2PulleyJoint_GetGroundAnchorA=Module["_b2PulleyJoint_GetGroundAnchorA"]=asm["_b2PulleyJoint_GetGroundAnchorA"];var _b2Joint_GetAnchorB=Module["_b2Joint_GetAnchorB"]=asm["_b2Joint_GetAnchorB"];var _b2CircleShape_CreateParticleGroup=Module["_b2CircleShape_CreateParticleGroup"]=asm["_b2CircleShape_CreateParticleGroup"];var _b2Joint_GetAnchorA=Module["_b2Joint_GetAnchorA"]=asm["_b2Joint_GetAnchorA"]; +var _b2RevoluteJoint_SetLimits=Module["_b2RevoluteJoint_SetLimits"]=asm["_b2RevoluteJoint_SetLimits"];var _b2PrismaticJoint_SetMotorSpeed=Module["_b2PrismaticJoint_SetMotorSpeed"]=asm["_b2PrismaticJoint_SetMotorSpeed"];var _b2GearJointDef_Create=Module["_b2GearJointDef_Create"]=asm["_b2GearJointDef_Create"];var _b2PrismaticJoint_IsLimitEnabled=Module["_b2PrismaticJoint_IsLimitEnabled"]=asm["_b2PrismaticJoint_IsLimitEnabled"]; +var _b2DistanceJoint_SetDampingRatio=Module["_b2DistanceJoint_SetDampingRatio"]=asm["_b2DistanceJoint_SetDampingRatio"];var _b2Contact_GetWorldManifold=Module["_b2Contact_GetWorldManifold"]=asm["_b2Contact_GetWorldManifold"];var _b2Body_IsAwake=Module["_b2Body_IsAwake"]=asm["_b2Body_IsAwake"];var _b2FrictionJoint_SetMaxTorque=Module["_b2FrictionJoint_SetMaxTorque"]=asm["_b2FrictionJoint_SetMaxTorque"];var _b2ParticleGroup_ApplyLinearImpulse=Module["_b2ParticleGroup_ApplyLinearImpulse"]=asm["_b2ParticleGroup_ApplyLinearImpulse"]; +var _b2Body_SetBullet=Module["_b2Body_SetBullet"]=asm["_b2Body_SetBullet"];var _b2RevoluteJoint_GetJointSpeed=Module["_b2RevoluteJoint_GetJointSpeed"]=asm["_b2RevoluteJoint_GetJointSpeed"];var _b2PulleyJoint_GetCurrentLengthB=Module["_b2PulleyJoint_GetCurrentLengthB"]=asm["_b2PulleyJoint_GetCurrentLengthB"];var _b2PrismaticJointDef_InitializeAndCreate=Module["_b2PrismaticJointDef_InitializeAndCreate"]=asm["_b2PrismaticJointDef_InitializeAndCreate"]; +var _b2Joint_GetReactionForce=Module["_b2Joint_GetReactionForce"]=asm["_b2Joint_GetReactionForce"];var _b2MotorJointDef_Create=Module["_b2MotorJointDef_Create"]=asm["_b2MotorJointDef_Create"];var _b2World_DestroyBody=Module["_b2World_DestroyBody"]=asm["_b2World_DestroyBody"];var _b2RevoluteJointDef_Create=Module["_b2RevoluteJointDef_Create"]=asm["_b2RevoluteJointDef_Create"];var _b2WheelJoint_GetMotorSpeed=Module["_b2WheelJoint_GetMotorSpeed"]=asm["_b2WheelJoint_GetMotorSpeed"]; +var _b2Joint_IsActive=Module["_b2Joint_IsActive"]=asm["_b2Joint_IsActive"];var _b2ParticleGroup_GetParticleCount=Module["_b2ParticleGroup_GetParticleCount"]=asm["_b2ParticleGroup_GetParticleCount"];var _b2World_SetGravity=Module["_b2World_SetGravity"]=asm["_b2World_SetGravity"];var _b2WheelJoint_GetJointTranslation=Module["_b2WheelJoint_GetJointTranslation"]=asm["_b2WheelJoint_GetJointTranslation"];var _b2PrismaticJoint_EnableMotor=Module["_b2PrismaticJoint_EnableMotor"]=asm["_b2PrismaticJoint_EnableMotor"]; +var _b2PolygonShape_CreateParticleGroup_4=Module["_b2PolygonShape_CreateParticleGroup_4"]=asm["_b2PolygonShape_CreateParticleGroup_4"];var _b2PolygonShape_CreateFixture_8=Module["_b2PolygonShape_CreateFixture_8"]=asm["_b2PolygonShape_CreateFixture_8"];var _b2Body_SetGravityScale=Module["_b2Body_SetGravityScale"]=asm["_b2Body_SetGravityScale"];var _b2RopeJoint_GetLimitState=Module["_b2RopeJoint_GetLimitState"]=asm["_b2RopeJoint_GetLimitState"]; +var _b2Body_SetAngularVelocity=Module["_b2Body_SetAngularVelocity"]=asm["_b2Body_SetAngularVelocity"];var _b2RevoluteJointDef_InitializeAndCreate=Module["_b2RevoluteJointDef_InitializeAndCreate"]=asm["_b2RevoluteJointDef_InitializeAndCreate"];var _b2Body_IsSleepingAllowed=Module["_b2Body_IsSleepingAllowed"]=asm["_b2Body_IsSleepingAllowed"];var _b2Body_GetWorldPoint=Module["_b2Body_GetWorldPoint"]=asm["_b2Body_GetWorldPoint"]; +var _b2WheelJoint_IsMotorEnabled=Module["_b2WheelJoint_IsMotorEnabled"]=asm["_b2WheelJoint_IsMotorEnabled"];var _b2WheelJoint_SetMotorSpeed=Module["_b2WheelJoint_SetMotorSpeed"]=asm["_b2WheelJoint_SetMotorSpeed"];var _b2FrictionJointDef_InitializeAndCreate=Module["_b2FrictionJointDef_InitializeAndCreate"]=asm["_b2FrictionJointDef_InitializeAndCreate"];var _b2Body_GetLinearDamping=Module["_b2Body_GetLinearDamping"]=asm["_b2Body_GetLinearDamping"]; +var _b2Body_SetLinearDamping=Module["_b2Body_SetLinearDamping"]=asm["_b2Body_SetLinearDamping"];var _b2Body_GetWorldCenter=Module["_b2Body_GetWorldCenter"]=asm["_b2Body_GetWorldCenter"];var _b2ParticleSystem_SetDamping=Module["_b2ParticleSystem_SetDamping"]=asm["_b2ParticleSystem_SetDamping"];var _b2Body_SetType=Module["_b2Body_SetType"]=asm["_b2Body_SetType"];var _b2Body_SetTransform=Module["_b2Body_SetTransform"]=asm["_b2Body_SetTransform"]; +var _b2MotorJoint_SetLinearOffset=Module["_b2MotorJoint_SetLinearOffset"]=asm["_b2MotorJoint_SetLinearOffset"];var _b2WeldJoint_SetFrequency=Module["_b2WeldJoint_SetFrequency"]=asm["_b2WeldJoint_SetFrequency"];var _b2RevoluteJoint_GetJointAngle=Module["_b2RevoluteJoint_GetJointAngle"]=asm["_b2RevoluteJoint_GetJointAngle"];var _b2ParticleGroup_ApplyForce=Module["_b2ParticleGroup_ApplyForce"]=asm["_b2ParticleGroup_ApplyForce"]; +var _b2CircleShape_CreateFixture=Module["_b2CircleShape_CreateFixture"]=asm["_b2CircleShape_CreateFixture"];var _malloc=Module["_malloc"]=asm["_malloc"];var _b2Contact_GetManifold=Module["_b2Contact_GetManifold"]=asm["_b2Contact_GetManifold"];var _b2Fixture_Refilter=Module["_b2Fixture_Refilter"]=asm["_b2Fixture_Refilter"];var _b2ParticleSystem_GetVelocityBuffer=Module["_b2ParticleSystem_GetVelocityBuffer"]=asm["_b2ParticleSystem_GetVelocityBuffer"]; +var _b2ParticleSystem_GetParticleLifetime=Module["_b2ParticleSystem_GetParticleLifetime"]=asm["_b2ParticleSystem_GetParticleLifetime"];var _b2PulleyJoint_GetCurrentLengthA=Module["_b2PulleyJoint_GetCurrentLengthA"]=asm["_b2PulleyJoint_GetCurrentLengthA"];var _b2RevoluteJoint_IsLimitEnabled=Module["_b2RevoluteJoint_IsLimitEnabled"]=asm["_b2RevoluteJoint_IsLimitEnabled"];var _b2World_DestroyParticleSystem=Module["_b2World_DestroyParticleSystem"]=asm["_b2World_DestroyParticleSystem"]; +var _b2RevoluteJoint_EnableMotor=Module["_b2RevoluteJoint_EnableMotor"]=asm["_b2RevoluteJoint_EnableMotor"];var _b2Body_GetTransform=Module["_b2Body_GetTransform"]=asm["_b2Body_GetTransform"];var _i64Subtract=Module["_i64Subtract"]=asm["_i64Subtract"];var _b2Body_GetAngle=Module["_b2Body_GetAngle"]=asm["_b2Body_GetAngle"];var _b2WeldJointDef_InitializeAndCreate=Module["_b2WeldJointDef_InitializeAndCreate"]=asm["_b2WeldJointDef_InitializeAndCreate"]; +var _b2RevoluteJoint_IsMotorEnabled=Module["_b2RevoluteJoint_IsMotorEnabled"]=asm["_b2RevoluteJoint_IsMotorEnabled"];var _b2RevoluteJoint_GetMotorSpeed=Module["_b2RevoluteJoint_GetMotorSpeed"]=asm["_b2RevoluteJoint_GetMotorSpeed"];var _b2Body_GetType=Module["_b2Body_GetType"]=asm["_b2Body_GetType"];var _b2Manifold_GetPointCount=Module["_b2Manifold_GetPointCount"]=asm["_b2Manifold_GetPointCount"];var _bitshift64Shl=Module["_bitshift64Shl"]=asm["_bitshift64Shl"]; var _b2ParticleSystem_SetDensity=Module["_b2ParticleSystem_SetDensity"]=asm["_b2ParticleSystem_SetDensity"];var _fflush=Module["_fflush"]=asm["_fflush"];var _b2PrismaticJoint_GetMotorForce=Module["_b2PrismaticJoint_GetMotorForce"]=asm["_b2PrismaticJoint_GetMotorForce"];var _b2Joint_GetBodyA=Module["_b2Joint_GetBodyA"]=asm["_b2Joint_GetBodyA"];var _b2PulleyJointDef_InitializeAndCreate=Module["_b2PulleyJointDef_InitializeAndCreate"]=asm["_b2PulleyJointDef_InitializeAndCreate"]; var _b2Joint_GetBodyB=Module["_b2Joint_GetBodyB"]=asm["_b2Joint_GetBodyB"];var _b2ParticleSystem_GetParticleCount=Module["_b2ParticleSystem_GetParticleCount"]=asm["_b2ParticleSystem_GetParticleCount"];var _b2MouseJoint_SetTarget=Module["_b2MouseJoint_SetTarget"]=asm["_b2MouseJoint_SetTarget"];var _b2Body_ApplyAngularImpulse=Module["_b2Body_ApplyAngularImpulse"]=asm["_b2Body_ApplyAngularImpulse"];var _b2ChainShape_CreateFixture=Module["_b2ChainShape_CreateFixture"]=asm["_b2ChainShape_CreateFixture"]; -var _b2World_DestroyJoint=Module["_b2World_DestroyJoint"]=asm["_b2World_DestroyJoint"];var ___uremdi3=Module["___uremdi3"]=asm["___uremdi3"];var _b2MotorJoint_SetAngularOffset=Module["_b2MotorJoint_SetAngularOffset"]=asm["_b2MotorJoint_SetAngularOffset"];var stackAlloc=Module["stackAlloc"]=asm["stackAlloc"];var _b2World_Delete=Module["_b2World_Delete"]=asm["_b2World_Delete"];var _b2PrismaticJoint_GetJointTranslation=Module["_b2PrismaticJoint_GetJointTranslation"]=asm["_b2PrismaticJoint_GetJointTranslation"]; -var _i64Add=Module["_i64Add"]=asm["_i64Add"];var _b2Body_GetMass=Module["_b2Body_GetMass"]=asm["_b2Body_GetMass"];var _b2MouseJointDef_Create=Module["_b2MouseJointDef_Create"]=asm["_b2MouseJointDef_Create"];var _b2ParticleGroup_GetBufferIndex=Module["_b2ParticleGroup_GetBufferIndex"]=asm["_b2ParticleGroup_GetBufferIndex"];var _b2WheelJointDef_InitializeAndCreate=Module["_b2WheelJointDef_InitializeAndCreate"]=asm["_b2WheelJointDef_InitializeAndCreate"];var stackRestore=Module["stackRestore"]=asm["stackRestore"]; -var _b2World_Step=Module["_b2World_Step"]=asm["_b2World_Step"];var _b2PrismaticJointDef_Create=Module["_b2PrismaticJointDef_Create"]=asm["_b2PrismaticJointDef_Create"];var _b2Body_GetGravityScale=Module["_b2Body_GetGravityScale"]=asm["_b2Body_GetGravityScale"];var _b2Body_SetGravityScale=Module["_b2Body_SetGravityScale"]=asm["_b2Body_SetGravityScale"];var ___errno_location=Module["___errno_location"]=asm["___errno_location"];var _b2WheelJointDef_Create=Module["_b2WheelJointDef_Create"]=asm["_b2WheelJointDef_Create"]; -var _b2CircleShape_CreateFixture=Module["_b2CircleShape_CreateFixture"]=asm["_b2CircleShape_CreateFixture"];var _b2Body_GetInertia=Module["_b2Body_GetInertia"]=asm["_b2Body_GetInertia"];var _memmove=Module["_memmove"]=asm["_memmove"];var _b2ParticleSystem_SetParticleLifetime=Module["_b2ParticleSystem_SetParticleLifetime"]=asm["_b2ParticleSystem_SetParticleLifetime"];var _b2PrismaticJoint_SetMotorSpeed=Module["_b2PrismaticJoint_SetMotorSpeed"]=asm["_b2PrismaticJoint_SetMotorSpeed"]; -var dynCall_diiiiid=Module["dynCall_diiiiid"]=asm["dynCall_diiiiid"];var dynCall_ii=Module["dynCall_ii"]=asm["dynCall_ii"];var dynCall_viiiii=Module["dynCall_viiiii"]=asm["dynCall_viiiii"];var dynCall_did=Module["dynCall_did"]=asm["dynCall_did"];var dynCall_vi=Module["dynCall_vi"]=asm["dynCall_vi"];var dynCall_diiiid=Module["dynCall_diiiid"]=asm["dynCall_diiiid"];var dynCall_vii=Module["dynCall_vii"]=asm["dynCall_vii"];var dynCall_iiii=Module["dynCall_iiii"]=asm["dynCall_iiii"]; -var dynCall_viii=Module["dynCall_viii"]=asm["dynCall_viii"];var dynCall_v=Module["dynCall_v"]=asm["dynCall_v"];var dynCall_viid=Module["dynCall_viid"]=asm["dynCall_viid"];var dynCall_iiiii=Module["dynCall_iiiii"]=asm["dynCall_iiiii"];var dynCall_viiiiii=Module["dynCall_viiiiii"]=asm["dynCall_viiiiii"];var dynCall_iii=Module["dynCall_iii"]=asm["dynCall_iii"];var dynCall_iiiiii=Module["dynCall_iiiiii"]=asm["dynCall_iiiiii"];var dynCall_viiii=Module["dynCall_viiii"]=asm["dynCall_viiii"]; -Runtime.stackAlloc=Module["stackAlloc"];Runtime.stackSave=Module["stackSave"];Runtime.stackRestore=Module["stackRestore"];Runtime.establishStackSpace=Module["establishStackSpace"];Runtime.setTempRet0=Module["setTempRet0"];Runtime.getTempRet0=Module["getTempRet0"];Module["asm"]=asm; -if(memoryInitializer){if(typeof Module["locateFile"]==="function")memoryInitializer=Module["locateFile"](memoryInitializer);else if(Module["memoryInitializerPrefixURL"])memoryInitializer=Module["memoryInitializerPrefixURL"]+memoryInitializer;if(ENVIRONMENT_IS_NODE||ENVIRONMENT_IS_SHELL){var data=Module["readBinary"](memoryInitializer);HEAPU8.set(data,Runtime.GLOBAL_BASE)}else{addRunDependency("memory initializer");var applyMemoryInitializer=function(data){if(data.byteLength)data=new Uint8Array(data); -HEAPU8.set(data,Runtime.GLOBAL_BASE);if(Module["memoryInitializerRequest"])delete Module["memoryInitializerRequest"].response;removeRunDependency("memory initializer")};function doBrowserLoad(){Module["readAsync"](memoryInitializer,applyMemoryInitializer,function(){throw"could not load memory initializer "+memoryInitializer;})}if(Module["memoryInitializerRequest"]){function useRequest(){var request=Module["memoryInitializerRequest"];if(request.status!==200&&request.status!==0){console.warn("a problem seems to have happened with Module.memoryInitializerRequest, status: "+ -request.status+", retrying "+memoryInitializer);doBrowserLoad();return}applyMemoryInitializer(request.response)}if(Module["memoryInitializerRequest"].response)setTimeout(useRequest,0);else Module["memoryInitializerRequest"].addEventListener("load",useRequest)}else doBrowserLoad()}}function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}ExitStatus.prototype=new Error;ExitStatus.prototype.constructor=ExitStatus;var initialStackTop; -var preloadStartTime=null;var calledMain=false;dependenciesFulfilled=function runCaller(){if(!Module["calledRun"])run();if(!Module["calledRun"])dependenciesFulfilled=runCaller}; -Module["callMain"]=Module.callMain=function callMain(args){args=args||[];ensureInitRuntime();var argc=args.length+1;function pad(){for(var i=0;i<4-1;i++)argv.push(0)}var argv=[allocate(intArrayFromString(Module["thisProgram"]),"i8",ALLOC_NORMAL)];pad();for(var i=0;i0)return;preRun();if(runDependencies>0)return;if(Module["calledRun"])return;function doRun(){if(Module["calledRun"])return;Module["calledRun"]=true;if(ABORT)return;ensureInitRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(Module["_main"]&&shouldRunNow)Module["callMain"](args);postRun()}if(Module["setStatus"]){Module["setStatus"]("Running..."); -setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else doRun()}Module["run"]=Module.run=run;function exit(status,implicit){if(implicit&&Module["noExitRuntime"])return;if(Module["noExitRuntime"]);else{ABORT=true;EXITSTATUS=status;STACKTOP=initialStackTop;exitRuntime();if(Module["onExit"])Module["onExit"](status)}if(ENVIRONMENT_IS_NODE)process["exit"](status);Module["quit"](status,new ExitStatus(status))}Module["exit"]=Module.exit=exit;var abortDecorators=[]; -function abort(what){if(Module["onAbort"])Module["onAbort"](what);if(what!==undefined){Module.print(what);Module.printErr(what);what=JSON.stringify(what)}else what="";ABORT=true;EXITSTATUS=1;var extra="\nIf this abort() is unexpected, build with -s ASSERTIONS=1 which can give more information.";var output="abort("+what+") at "+stackTrace()+extra;if(abortDecorators)abortDecorators.forEach(function(decorator){output=decorator(output,what)});throw output;}Module["abort"]=Module.abort=abort; +setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else doRun()}Module["run"]=Module.run=run; +function exit(status,implicit){if(implicit&&Module["noExitRuntime"])return;if(Module["noExitRuntime"]);else{ABORT=true;EXITSTATUS=status;STACKTOP=initialStackTop;exitRuntime();if(Module["onExit"])Module["onExit"](status)}if(ENVIRONMENT_IS_NODE){process["stdout"]["once"]("drain",function(){process["exit"](status)});console.log(" ");setTimeout(function(){process["exit"](status)},500)}else if(ENVIRONMENT_IS_SHELL&&typeof quit==="function")quit(status);throw new ExitStatus(status);} +Module["exit"]=Module.exit=exit;var abortDecorators=[];function abort(what){if(what!==undefined){Module.print(what);Module.printErr(what);what=JSON.stringify(what)}else what="";ABORT=true;EXITSTATUS=1;var extra="\nIf this abort() is unexpected, build with -s ASSERTIONS=1 which can give more information.";var output="abort("+what+") at "+stackTrace()+extra;if(abortDecorators)abortDecorators.forEach(function(decorator){output=decorator(output,what)});throw output;}Module["abort"]=Module.abort=abort; if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0)Module["preInit"].pop()()}var shouldRunNow=true;if(Module["noInitialRun"])shouldRunNow=false;run();var Offsets={b2Body:{type:0,islandIndex:8,xf:12,xf0:28,sweep:44,linearVelocity:80,angularVelocity:88,force:92,torque:100,world:104,prev:108,next:112,fixtureList:116,fixtureCount:120,jointList:124,contactList:128,mass:132,invMass:136,I:140,invI:144,linearDamping:148,angularDamping:152,gravityScale:156,sleepTime:160,userData:164},b2Contact:{flags:4,prev:8,next:12,nodeA:16,nodeB:32,fixtureA:48,fixtureB:52,indexA:56,indexB:60,manifold:64,toiCount:128,toi:132,friction:136,restitution:140,tangentSpeed:144}, -b2Fixture:{density:0,next:4,body:8,shape:12,friction:16,restitution:20,proxies:24,proxyCount:28,filter:32,isSensor:38,userData:40},b2ParticleGroup:{system:0,firstIndex:4,lastIndex:8,groupFlags:12,strength:16,prev:20,next:24,timestamp:28,mass:32,inertia:36,center:40,linearVelocity:48,angularVelocity:56,transform:60,userData:76},b2WorldManifold:{normal:0,points:8,separations:24},b2World:{bodyList:102960}};var FLT_EPSILON=1.1920929E-7;function b2Max(a,b){return new b2Vec2(Math.max(a.x,b.x),Math.max(a.y,b.y))}function b2Min(a,b){return new b2Vec2(Math.min(a.x,b.x),Math.min(a.y,b.y))}function b2Clamp(a,low,high){return b2Max(low,b2Min(a,high))}function b2Vec2(x,y){if(x===undefined)x=0;if(y===undefined)y=0;this.x=x;this.y=y}b2Vec2.Add=function(out,a,b){out.x=a.x+b.x;out.y=a.y+b.y};b2Vec2.CrossScalar=function(output,input,scalar){output.x=-scalar*input.y;output.y=scalar*input.x}; +b2Fixture:{density:0,next:4,body:8,shape:12,friction:16,restitution:20,proxies:24,proxyCount:28,filter:32,filterCategoryBits:32,filterMaskBits:34,filterGroupIndex:36,isSensor:38,userData:40},b2ParticleGroup:{system:0,firstIndex:4,lastIndex:8,groupFlags:12,strength:16,prev:20,next:24,timestamp:28,mass:32,inertia:36,center:40,linearVelocity:48,angularVelocity:56,transform:60,userData:76},b2WorldManifold:{normal:0,points:8,separations:24},b2World:{bodyList:102960}};var FLT_EPSILON=1.1920929E-7;function b2Max(a,b){return new b2Vec2(Math.max(a.x,b.x),Math.max(a.y,b.y))}function b2Min(a,b){return new b2Vec2(Math.min(a.x,b.x),Math.min(a.y,b.y))}function b2Clamp(a,low,high){return b2Max(low,b2Min(a,high))}function b2Vec2(x,y){if(x===undefined)x=0;if(y===undefined)y=0;this.x=x;this.y=y}b2Vec2.Add=function(out,a,b){out.x=a.x+b.x;out.y=a.y+b.y};b2Vec2.CrossScalar=function(output,input,scalar){output.x=-scalar*input.y;output.y=scalar*input.x}; b2Vec2.Cross=function(a,b){return a.x*b.y-a.y*b.x};b2Vec2.MulScalar=function(out,input,scalar){out.x=input.x*scalar;out.y=input.y*scalar};b2Vec2.Mul=function(out,T,v){var Tp=T.p;var Tqc=T.q.c;var Tqs=T.q.s;var x=v.x;var y=v.y;out.x=Tqc*x-Tqs*y+Tp.x;out.y=Tqs*x+Tqc*y+Tp.y};b2Vec2.Normalize=function(out,input){var length=input.Length();if(length

>>0)wa();else{c[U+16>>2]=j;c[j+24>>2]=U;break}while(0);j=c[T+20>>2]|0;if(j)if(j>>>0<(c[724]|0)>>>0)wa();else{c[U+20>>2]=j;c[j+24>>2]=U;break}}while(0);b:do if(S>>>0>=16){c[T+4>>2]=q|3;c[T+(q|4)>>2]=S|1;c[T+(S+q)>>2]=S;k=S>>>3;if(S>>>0<256){j=k<<1;p=2920+(j<<2)|0;b=c[720]|0;i=1<>2]|0;if(r>>>0<(c[724]|0)>>>0)wa();else{Z=k;_=r}}else{c[720]=b|i;Z=2920+(j+2<<2)|0;_=p}c[Z>>2]=e;c[_+12>>2]=e;c[T+(q+8)>>2]=_;c[T+(q+12)>>2]=p;break}p=S>>>8;if(p)if(S>>>0>16777215)$=31;else{j=(p+1048320|0)>>>16&8;i=p<>>16&4;b=i<>>16&2;r=14-(p|j|i)+(b<>>15)|0;$=S>>>(r+7|0)&1|r<<1}else $=0;r=3184+($<<2)|0;c[T+(q+28)>>2]=$;c[T+(q+20)>>2]=0;c[T+(q+16)>>2]=0;i=c[721]|0;b=1<<$;if(!(i&b)){c[721]=i|b;c[r>>2]=e;c[T+(q+24)>>2]=r;c[T+(q+12)>>2]=e;c[T+(q+8)>>2]=e;break}b=c[r>>2]|0;c:do if((c[b+4>>2]&-8|0)!=(S|0)){r=S<<(($|0)==31?0:25-($>>>1)|0);i=b;while(1){j=i+16+(r>>>31<<2)|0;p=c[j>>2]|0;if(!p){aa=j;ba=i;break}if((c[p+4>>2]&-8|0)==(S|0)){ca=p;break c}else{r=r<<1;i=p}}if(aa>>>0<(c[724]|0)>>>0)wa();else{c[aa>>2]=e;c[T+(q+24)>>2]=ba;c[T+(q+12)>>2]=e;c[T+(q+8)>>2]=e;break b}}else ca=b;while(0);b=ca+8|0;i=c[b>>2]|0;r=c[724]|0;if(i>>>0>=r>>>0&ca>>>0>=r>>>0){c[i+12>>2]=e;c[b>>2]=e;c[T+(q+8)>>2]=i;c[T+(q+12)>>2]=ca;c[T+(q+24)>>2]=0;break}else wa()}else{i=S+q|0;c[T+4>>2]=i|3;b=T+(i+4)|0;c[b>>2]=c[b>>2]|1}while(0);n=T+8|0;return n|0}else F=q}else F=q}else F=-1;while(0);T=c[722]|0;if(T>>>0>=F>>>0){S=T-F|0;ca=c[725]|0;if(S>>>0>15){c[725]=ca+F;c[722]=S;c[ca+(F+4)>>2]=S|1;c[ca+T>>2]=S;c[ca+4>>2]=F|3}else{c[722]=0;c[725]=0;c[ca+4>>2]=T|3;S=ca+(T+4)|0;c[S>>2]=c[S>>2]|1}n=ca+8|0;return n|0}ca=c[723]|0;if(ca>>>0>F>>>0){S=ca-F|0;c[723]=S;ca=c[726]|0;c[726]=ca+F;c[ca+(F+4)>>2]=S|1;c[ca+4>>2]=F|3;n=ca+8|0;return n|0}do if(!(c[838]|0)){ca=Ha(30)|0;if(!(ca+-1&ca)){c[840]=ca;c[839]=ca;c[841]=-1;c[842]=-1;c[843]=0;c[831]=0;c[838]=(Ya(0)|0)&-16^1431655768;break}else wa()}while(0);ca=F+48|0;S=c[840]|0;T=F+47|0;ba=S+T|0;aa=0-S|0;S=ba&aa;if(S>>>0<=F>>>0){n=0;return n|0}$=c[830]|0;if(($|0)!=0?(_=c[828]|0,Z=_+S|0,Z>>>0<=_>>>0|Z>>>0>$>>>0):0){n=0;return n|0}d:do if(!(c[831]&4)){$=c[726]|0;e:do if($){Z=3328;while(1){_=c[Z>>2]|0;if(_>>>0<=$>>>0?(U=Z+4|0,(_+(c[U>>2]|0)|0)>>>0>$>>>0):0){da=Z;ea=U;break}Z=c[Z+8>>2]|0;if(!Z){K=174;break e}}Z=ba-(c[723]|0)&aa;if(Z>>>0<2147483647){U=Ca(Z|0)|0;_=(U|0)==((c[da>>2]|0)+(c[ea>>2]|0)|0);X=_?Z:0;if(_)if((U|0)==(-1|0))fa=X;else{ga=U;ha=X;K=194;break d}else{ia=U;ja=Z;ka=X;K=184}}else fa=0}else K=174;while(0);do if((K|0)==174){$=Ca(0)|0;if(($|0)!=(-1|0)){q=$;X=c[839]|0;Z=X+-1|0;if(!(Z&q))la=S;else la=S-q+(Z+q&0-X)|0;X=c[828]|0;q=X+la|0;if(la>>>0>F>>>0&la>>>0<2147483647){Z=c[830]|0;if((Z|0)!=0?q>>>0<=X>>>0|q>>>0>Z>>>0:0){fa=0;break}Z=Ca(la|0)|0;q=(Z|0)==($|0);X=q?la:0;if(q){ga=$;ha=X;K=194;break d}else{ia=Z;ja=la;ka=X;K=184}}else fa=0}else fa=0}while(0);f:do if((K|0)==184){X=0-ja|0;do if(ca>>>0>ja>>>0&(ja>>>0<2147483647&(ia|0)!=(-1|0))?(Z=c[840]|0,$=T-ja+Z&0-Z,$>>>0<2147483647):0)if((Ca($|0)|0)==(-1|0)){Ca(X|0)|0;fa=ka;break f}else{ma=$+ja|0;break}else ma=ja;while(0);if((ia|0)==(-1|0))fa=ka;else{ga=ia;ha=ma;K=194;break d}}while(0);c[831]=c[831]|4;na=fa;K=191}else{na=0;K=191}while(0);if((((K|0)==191?S>>>0<2147483647:0)?(fa=Ca(S|0)|0,S=Ca(0)|0,fa>>>0>>0&((fa|0)!=(-1|0)&(S|0)!=(-1|0))):0)?(ma=S-fa|0,S=ma>>>0>(F+40|0)>>>0,S):0){ga=fa;ha=S?ma:na;K=194}if((K|0)==194){na=(c[828]|0)+ha|0;c[828]=na;if(na>>>0>(c[829]|0)>>>0)c[829]=na;na=c[726]|0;g:do if(na){ma=3328;do{S=c[ma>>2]|0;fa=ma+4|0;ia=c[fa>>2]|0;if((ga|0)==(S+ia|0)){oa=S;pa=fa;qa=ia;ra=ma;K=204;break}ma=c[ma+8>>2]|0}while((ma|0)!=0);if(((K|0)==204?(c[ra+12>>2]&8|0)==0:0)?na>>>0>>0&na>>>0>=oa>>>0:0){c[pa>>2]=qa+ha;ma=(c[723]|0)+ha|0;ia=na+8|0;fa=(ia&7|0)==0?0:0-ia&7;ia=ma-fa|0;c[726]=na+fa;c[723]=ia;c[na+(fa+4)>>2]=ia|1;c[na+(ma+4)>>2]=40;c[727]=c[842];break}ma=c[724]|0;if(ga>>>0>>0){c[724]=ga;sa=ga}else sa=ma;ma=ga+ha|0;ia=3328;while(1){if((c[ia>>2]|0)==(ma|0)){ta=ia;ua=ia;K=212;break}ia=c[ia+8>>2]|0;if(!ia){va=3328;break}}if((K|0)==212)if(!(c[ua+12>>2]&8)){c[ta>>2]=ga;ia=ua+4|0;c[ia>>2]=(c[ia>>2]|0)+ha;ia=ga+8|0;ma=(ia&7|0)==0?0:0-ia&7;ia=ga+(ha+8)|0;fa=(ia&7|0)==0?0:0-ia&7;ia=ga+(fa+ha)|0;S=ma+F|0;ka=ga+S|0;ja=ia-(ga+ma)-F|0;c[ga+(ma+4)>>2]=F|3;h:do if((ia|0)!=(na|0)){if((ia|0)==(c[725]|0)){T=(c[722]|0)+ja|0;c[722]=T;c[725]=ka;c[ga+(S+4)>>2]=T|1;c[ga+(T+S)>>2]=T;break}T=ha+4|0;ca=c[ga+(T+fa)>>2]|0;if((ca&3|0)==1){la=ca&-8;ea=ca>>>3;i:do if(ca>>>0>=256){da=c[ga+((fa|24)+ha)>>2]|0;aa=c[ga+(ha+12+fa)>>2]|0;do if((aa|0)==(ia|0)){ba=fa|16;X=ga+(T+ba)|0;$=c[X>>2]|0;if(!$){Z=ga+(ba+ha)|0;ba=c[Z>>2]|0;if(!ba){xa=0;break}else{ya=ba;za=Z}}else{ya=$;za=X}while(1){X=ya+20|0;$=c[X>>2]|0;if($){ya=$;za=X;continue}X=ya+16|0;$=c[X>>2]|0;if(!$){Aa=ya;Ba=za;break}else{ya=$;za=X}}if(Ba>>>0>>0)wa();else{c[Ba>>2]=0;xa=Aa;break}}else{X=c[ga+((fa|8)+ha)>>2]|0;if(X>>>0>>0)wa();$=X+12|0;if((c[$>>2]|0)!=(ia|0))wa();Z=aa+8|0;if((c[Z>>2]|0)==(ia|0)){c[$>>2]=aa;c[Z>>2]=X;xa=aa;break}else wa()}while(0);if(!da)break;aa=c[ga+(ha+28+fa)>>2]|0;X=3184+(aa<<2)|0;do if((ia|0)!=(c[X>>2]|0)){if(da>>>0<(c[724]|0)>>>0)wa();Z=da+16|0;if((c[Z>>2]|0)==(ia|0))c[Z>>2]=xa;else c[da+20>>2]=xa;if(!xa)break i}else{c[X>>2]=xa;if(xa)break;c[721]=c[721]&~(1<>>0>>0)wa();c[xa+24>>2]=da;X=fa|16;Z=c[ga+(X+ha)>>2]|0;do if(Z)if(Z>>>0>>0)wa();else{c[xa+16>>2]=Z;c[Z+24>>2]=xa;break}while(0);Z=c[ga+(T+X)>>2]|0;if(!Z)break;if(Z>>>0<(c[724]|0)>>>0)wa();else{c[xa+20>>2]=Z;c[Z+24>>2]=xa;break}}else{Z=c[ga+((fa|8)+ha)>>2]|0;aa=c[ga+(ha+12+fa)>>2]|0;da=2920+(ea<<1<<2)|0;do if((Z|0)!=(da|0)){if(Z>>>0>>0)wa();if((c[Z+12>>2]|0)==(ia|0))break;wa()}while(0);if((aa|0)==(Z|0)){c[720]=c[720]&~(1<>>0>>0)wa();X=aa+8|0;if((c[X>>2]|0)==(ia|0)){Da=X;break}wa()}while(0);c[Z+12>>2]=aa;c[Da>>2]=Z}while(0);Ea=ga+((la|fa)+ha)|0;Fa=la+ja|0}else{Ea=ia;Fa=ja}ea=Ea+4|0;c[ea>>2]=c[ea>>2]&-2;c[ga+(S+4)>>2]=Fa|1;c[ga+(Fa+S)>>2]=Fa;ea=Fa>>>3;if(Fa>>>0<256){T=ea<<1;ca=2920+(T<<2)|0;da=c[720]|0;X=1<>2]|0;if($>>>0>=(c[724]|0)>>>0){Ga=ea;Ia=$;break}wa()}while(0);c[Ga>>2]=ka;c[Ia+12>>2]=ka;c[ga+(S+8)>>2]=Ia;c[ga+(S+12)>>2]=ca;break}T=Fa>>>8;do if(!T)Ja=0;else{if(Fa>>>0>16777215){Ja=31;break}X=(T+1048320|0)>>>16&8;da=T<>>16&4;$=da<>>16&2;ea=14-(la|X|da)+($<>>15)|0;Ja=Fa>>>(ea+7|0)&1|ea<<1}while(0);T=3184+(Ja<<2)|0;c[ga+(S+28)>>2]=Ja;c[ga+(S+20)>>2]=0;c[ga+(S+16)>>2]=0;ca=c[721]|0;ea=1<>2]=ka;c[ga+(S+24)>>2]=T;c[ga+(S+12)>>2]=ka;c[ga+(S+8)>>2]=ka;break}ea=c[T>>2]|0;j:do if((c[ea+4>>2]&-8|0)!=(Fa|0)){T=Fa<<((Ja|0)==31?0:25-(Ja>>>1)|0);ca=ea;while(1){da=ca+16+(T>>>31<<2)|0;$=c[da>>2]|0;if(!$){Ka=da;La=ca;break}if((c[$+4>>2]&-8|0)==(Fa|0)){Ma=$;break j}else{T=T<<1;ca=$}}if(Ka>>>0<(c[724]|0)>>>0)wa();else{c[Ka>>2]=ka;c[ga+(S+24)>>2]=La;c[ga+(S+12)>>2]=ka;c[ga+(S+8)>>2]=ka;break h}}else Ma=ea;while(0);ea=Ma+8|0;ca=c[ea>>2]|0;T=c[724]|0;if(ca>>>0>=T>>>0&Ma>>>0>=T>>>0){c[ca+12>>2]=ka;c[ea>>2]=ka;c[ga+(S+8)>>2]=ca;c[ga+(S+12)>>2]=Ma;c[ga+(S+24)>>2]=0;break}else wa()}else{ca=(c[723]|0)+ja|0;c[723]=ca;c[726]=ka;c[ga+(S+4)>>2]=ca|1}while(0);n=ga+(ma|8)|0;return n|0}else va=3328;while(1){S=c[va>>2]|0;if(S>>>0<=na>>>0?(ka=c[va+4>>2]|0,ja=S+ka|0,ja>>>0>na>>>0):0){Na=S;Oa=ka;Pa=ja;break}va=c[va+8>>2]|0}ma=Na+(Oa+-39)|0;ja=Na+(Oa+-47+((ma&7|0)==0?0:0-ma&7))|0;ma=na+16|0;ka=ja>>>0>>0?na:ja;ja=ka+8|0;S=ga+8|0;ia=(S&7|0)==0?0:0-S&7;S=ha+-40-ia|0;c[726]=ga+ia;c[723]=S;c[ga+(ia+4)>>2]=S|1;c[ga+(ha+-36)>>2]=40;c[727]=c[842];S=ka+4|0;c[S>>2]=27;c[ja>>2]=c[832];c[ja+4>>2]=c[833];c[ja+8>>2]=c[834];c[ja+12>>2]=c[835];c[832]=ga;c[833]=ha;c[835]=0;c[834]=ja;ja=ka+28|0;c[ja>>2]=7;if((ka+32|0)>>>0>>0){ia=ja;do{ja=ia;ia=ia+4|0;c[ia>>2]=7}while((ja+8|0)>>>0>>0)}if((ka|0)!=(na|0)){ia=ka-na|0;c[S>>2]=c[S>>2]&-2;c[na+4>>2]=ia|1;c[ka>>2]=ia;ja=ia>>>3;if(ia>>>0<256){fa=ja<<1;ca=2920+(fa<<2)|0;ea=c[720]|0;T=1<>2]|0;if(Z>>>0<(c[724]|0)>>>0)wa();else{Qa=ja;Ra=Z}}else{c[720]=ea|T;Qa=2920+(fa+2<<2)|0;Ra=ca}c[Qa>>2]=na;c[Ra+12>>2]=na;c[na+8>>2]=Ra;c[na+12>>2]=ca;break}ca=ia>>>8;if(ca)if(ia>>>0>16777215)Sa=31;else{fa=(ca+1048320|0)>>>16&8;T=ca<>>16&4;ea=T<>>16&2;Z=14-(ca|fa|T)+(ea<>>15)|0;Sa=ia>>>(Z+7|0)&1|Z<<1}else Sa=0;Z=3184+(Sa<<2)|0;c[na+28>>2]=Sa;c[na+20>>2]=0;c[ma>>2]=0;T=c[721]|0;ea=1<>2]=na;c[na+24>>2]=Z;c[na+12>>2]=na;c[na+8>>2]=na;break}ea=c[Z>>2]|0;k:do if((c[ea+4>>2]&-8|0)!=(ia|0)){Z=ia<<((Sa|0)==31?0:25-(Sa>>>1)|0);T=ea;while(1){fa=T+16+(Z>>>31<<2)|0;ca=c[fa>>2]|0;if(!ca){Ta=fa;Ua=T;break}if((c[ca+4>>2]&-8|0)==(ia|0)){Va=ca;break k}else{Z=Z<<1;T=ca}}if(Ta>>>0<(c[724]|0)>>>0)wa();else{c[Ta>>2]=na;c[na+24>>2]=Ua;c[na+12>>2]=na;c[na+8>>2]=na;break g}}else Va=ea;while(0);ea=Va+8|0;ia=c[ea>>2]|0;ma=c[724]|0;if(ia>>>0>=ma>>>0&Va>>>0>=ma>>>0){c[ia+12>>2]=na;c[ea>>2]=na;c[na+8>>2]=ia;c[na+12>>2]=Va;c[na+24>>2]=0;break}else wa()}}else{ia=c[724]|0;if((ia|0)==0|ga>>>0>>0)c[724]=ga;c[832]=ga;c[833]=ha;c[835]=0;c[729]=c[838];c[728]=-1;ia=0;do{ea=ia<<1;ma=2920+(ea<<2)|0;c[2920+(ea+3<<2)>>2]=ma;c[2920+(ea+2<<2)>>2]=ma;ia=ia+1|0}while((ia|0)!=32);ia=ga+8|0;ma=(ia&7|0)==0?0:0-ia&7;ia=ha+-40-ma|0;c[726]=ga+ma;c[723]=ia;c[ga+(ma+4)>>2]=ia|1;c[ga+(ha+-36)>>2]=40;c[727]=c[842]}while(0);ha=c[723]|0;if(ha>>>0>F>>>0){ga=ha-F|0;c[723]=ga;ha=c[726]|0;c[726]=ha+F;c[ha+(F+4)>>2]=ga|1;c[ha+4>>2]=F|3;n=ha+8|0;return n|0}}c[(Wo()|0)>>2]=12;n=0;return n|0}function up(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0;if(!a)return;b=a+-8|0;d=c[724]|0;if(b>>>0>>0)wa();e=c[a+-4>>2]|0;f=e&3;if((f|0)==1)wa();g=e&-8;h=a+(g+-8)|0;do if(!(e&1)){i=c[b>>2]|0;if(!f)return;j=-8-i|0;k=a+j|0;l=i+g|0;if(k>>>0>>0)wa();if((k|0)==(c[725]|0)){m=a+(g+-4)|0;n=c[m>>2]|0;if((n&3|0)!=3){o=k;p=l;break}c[722]=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=2920+(n<<1<<2)|0;if((i|0)!=(q|0)){if(i>>>0>>0)wa();if((c[i+12>>2]|0)!=(k|0))wa()}if((m|0)==(i|0)){c[720]=c[720]&~(1<>>0>>0)wa();q=m+8|0;if((c[q>>2]|0)==(k|0))r=q;else wa()}else r=m+8|0;c[i+12>>2]=m;c[r>>2]=i;o=k;p=l;break}i=c[a+(j+24)>>2]|0;m=c[a+(j+12)>>2]|0;do if((m|0)==(k|0)){q=a+(j+20)|0;n=c[q>>2]|0;if(!n){s=a+(j+16)|0;t=c[s>>2]|0;if(!t){u=0;break}else{v=t;w=s}}else{v=n;w=q}while(1){q=v+20|0;n=c[q>>2]|0;if(n){v=n;w=q;continue}q=v+16|0;n=c[q>>2]|0;if(!n){x=v;y=w;break}else{v=n;w=q}}if(y>>>0>>0)wa();else{c[y>>2]=0;u=x;break}}else{q=c[a+(j+8)>>2]|0;if(q>>>0>>0)wa();n=q+12|0;if((c[n>>2]|0)!=(k|0))wa();s=m+8|0;if((c[s>>2]|0)==(k|0)){c[n>>2]=m;c[s>>2]=q;u=m;break}else wa()}while(0);if(i){m=c[a+(j+28)>>2]|0;q=3184+(m<<2)|0;if((k|0)==(c[q>>2]|0)){c[q>>2]=u;if(!u){c[721]=c[721]&~(1<>>0<(c[724]|0)>>>0)wa();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[724]|0;if(u>>>0>>0)wa();c[u+24>>2]=i;q=c[a+(j+16)>>2]|0;do if(q)if(q>>>0>>0)wa();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[724]|0)>>>0)wa();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)wa();b=a+(g+-4)|0;u=c[b>>2]|0;if(!(u&1))wa();if(!(u&2)){if((h|0)==(c[726]|0)){d=(c[723]|0)+p|0;c[723]=d;c[726]=o;c[o+4>>2]=d|1;if((o|0)!=(c[725]|0))return;c[725]=0;c[722]=0;return}if((h|0)==(c[725]|0)){d=(c[722]|0)+p|0;c[722]=d;c[725]=o;c[o+4>>2]=d|1;c[o+d>>2]=d;return}d=(u&-8)+p|0;x=u>>>3;do if(u>>>0>=256){y=c[a+(g+16)>>2]|0;w=c[a+(g|4)>>2]|0;do if((w|0)==(h|0)){v=a+(g+12)|0;r=c[v>>2]|0;if(!r){f=a+(g+8)|0;e=c[f>>2]|0;if(!e){z=0;break}else{A=e;B=f}}else{A=r;B=v}while(1){v=A+20|0;r=c[v>>2]|0;if(r){A=r;B=v;continue}v=A+16|0;r=c[v>>2]|0;if(!r){C=A;D=B;break}else{A=r;B=v}}if(D>>>0<(c[724]|0)>>>0)wa();else{c[D>>2]=0;z=C;break}}else{v=c[a+g>>2]|0;if(v>>>0<(c[724]|0)>>>0)wa();r=v+12|0;if((c[r>>2]|0)!=(h|0))wa();f=w+8|0;if((c[f>>2]|0)==(h|0)){c[r>>2]=w;c[f>>2]=v;z=w;break}else wa()}while(0);if(y){w=c[a+(g+20)>>2]|0;l=3184+(w<<2)|0;if((h|0)==(c[l>>2]|0)){c[l>>2]=z;if(!z){c[721]=c[721]&~(1<>>0<(c[724]|0)>>>0)wa();w=y+16|0;if((c[w>>2]|0)==(h|0))c[w>>2]=z;else c[y+20>>2]=z;if(!z)break}w=c[724]|0;if(z>>>0>>0)wa();c[z+24>>2]=y;l=c[a+(g+8)>>2]|0;do if(l)if(l>>>0>>0)wa();else{c[z+16>>2]=l;c[l+24>>2]=z;break}while(0);l=c[a+(g+12)>>2]|0;if(l)if(l>>>0<(c[724]|0)>>>0)wa();else{c[z+20>>2]=l;c[l+24>>2]=z;break}}}else{l=c[a+g>>2]|0;w=c[a+(g|4)>>2]|0;y=2920+(x<<1<<2)|0;if((l|0)!=(y|0)){if(l>>>0<(c[724]|0)>>>0)wa();if((c[l+12>>2]|0)!=(h|0))wa()}if((w|0)==(l|0)){c[720]=c[720]&~(1<>>0<(c[724]|0)>>>0)wa();y=w+8|0;if((c[y>>2]|0)==(h|0))E=y;else wa()}else E=w+8|0;c[l+12>>2]=w;c[E>>2]=l}while(0);c[o+4>>2]=d|1;c[o+d>>2]=d;if((o|0)==(c[725]|0)){c[722]=d;return}else F=d}else{c[b>>2]=u&-2;c[o+4>>2]=p|1;c[o+p>>2]=p;F=p}p=F>>>3;if(F>>>0<256){u=p<<1;b=2920+(u<<2)|0;d=c[720]|0;E=1<>2]|0;if(h>>>0<(c[724]|0)>>>0)wa();else{G=p;H=h}}else{c[720]=d|E;G=2920+(u+2<<2)|0;H=b}c[G>>2]=o;c[H+12>>2]=o;c[o+8>>2]=H;c[o+12>>2]=b;return}b=F>>>8;if(b)if(F>>>0>16777215)I=31;else{H=(b+1048320|0)>>>16&8;G=b<>>16&4;u=G<>>16&2;E=14-(b|H|G)+(u<>>15)|0;I=F>>>(E+7|0)&1|E<<1}else I=0;E=3184+(I<<2)|0;c[o+28>>2]=I;c[o+20>>2]=0;c[o+16>>2]=0;G=c[721]|0;u=1<>2]|0;b:do if((c[H+4>>2]&-8|0)!=(F|0)){b=F<<((I|0)==31?0:25-(I>>>1)|0);d=H;while(1){h=d+16+(b>>>31<<2)|0;p=c[h>>2]|0;if(!p){J=h;K=d;break}if((c[p+4>>2]&-8|0)==(F|0)){L=p;break b}else{b=b<<1;d=p}}if(J>>>0<(c[724]|0)>>>0)wa();else{c[J>>2]=o;c[o+24>>2]=K;c[o+12>>2]=o;c[o+8>>2]=o;break a}}else L=H;while(0);H=L+8|0;d=c[H>>2]|0;b=c[724]|0;if(d>>>0>=b>>>0&L>>>0>=b>>>0){c[d+12>>2]=o;c[H>>2]=o;c[o+8>>2]=d;c[o+12>>2]=L;c[o+24>>2]=0;break}else wa()}else{c[721]=G|u;c[E>>2]=o;c[o+24>>2]=E;c[o+12>>2]=o;c[o+8>>2]=o}while(0);o=(c[728]|0)+-1|0;c[728]=o;if(!o)M=3336;else return;while(1){o=c[M>>2]|0;if(!o)break;else M=o+8|0}c[728]=-1;return}function vp(){}function wp(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 (C=e,a-c>>>0|0)|0}function xp(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 yp(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){C=b<>>32-c;return a<>>0;return (C=b+d+(e>>>0>>0|0)>>>0,e|0)|0}function Ap(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){C=b>>>c;return a>>>c|(b&(1<>>c-32|0}function Bp(b,d,e){b=b|0;d=d|0;e=e|0;var f=0;if((e|0)>=4096)return Ka(b|0,d|0,e|0)|0;f=b|0;if((b&3)==(d&3)){while(b&3){if(!e)return f|0;a[b>>0]=a[d>>0]|0;b=b+1|0;d=d+1|0;e=e-1|0}while((e|0)>=4){c[b>>2]=c[d>>2];b=b+4|0;d=d+4|0;e=e-4|0}}while((e|0)>0){a[b>>0]=a[d>>0]|0;b=b+1|0;d=d+1|0;e=e-1|0}return f|0}function Cp(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 Bp(b,c,d)|0;return b|0}function Dp(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){C=b>>c;return a>>>c|(b&(1<>c-32|0}function Ep(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 Fp(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 (C=(a>>>16)+(_(d,f)|0)+(((a&65535)+b|0)>>>16)|0,a+b<<16|e&65535|0)|0}function Gp(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=wp(e^a,f^b,e,f)|0;b=C;a=g^e;e=h^f;return wp((Lp(i,b,wp(g^c,h^d,g,h)|0,C,0)|0)^a,C^e,a,e)|0}function Hp(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+16|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=wp(h^a,j^b,h,j)|0;b=C;Lp(m,b,wp(k^d,l^e,k,l)|0,C,g)|0;l=wp(c[g>>2]^h,c[g+4>>2]^j,h,j)|0;j=C;i=f;return (C=j,l)|0}function Ip(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=Fp(e,a)|0;f=C;return (C=(_(b,a)|0)+(_(d,e)|0)+f|f&0,c|0|0)|0}function Jp(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return Lp(a,b,c,d,0)|0}function Kp(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|0;Lp(a,b,d,e,g)|0;i=f;return (C=c[g+4>>2]|0,c[g>>2]|0)|0}function Lp(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,D=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 (C=n,o)|0}else{if(!m){n=0;o=0;return (C=n,o)|0}c[f>>2]=a|0;c[f+4>>2]=b&0;n=0;o=0;return (C=n,o)|0}}m=(l|0)==0;do if(j){if(!m){p=(aa(l|0)|0)-(aa(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<>>(q>>>0)&s;w=0;x=g<>2]=a|0;c[f+4>>2]=h|b&0;n=0;o=0;return (C=n,o)|0}r=j-1|0;if(r&j){s=(aa(j|0)|0)+33-(aa(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<>>(s>>>0))&A;v=A&i>>>(s>>>0);w=g<>>(z>>>0))&y|g<>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 (C=n,o)|0}else{r=Ep(j|0)|0;n=i>>>(r>>>0)|0;o=i<<32-r|g>>>(r>>>0)|0;return (C=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 (C=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 (C=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>>>((Ep(l|0)|0)>>>0);return (C=n,o)|0}r=(aa(l|0)|0)-(aa(i|0)|0)|0;if(r>>>0<=30){s=r+1|0;p=31-r|0;t=s;u=i<>>(s>>>0);v=i>>>(s>>>0);w=0;x=g<>2]=a|0;c[f+4>>2]=h|b&0;n=0;o=0;return (C=n,o)|0}while(0);if(!t){B=x;D=w;E=v;F=u;G=0;H=0}else{b=d|0|0;d=k|e&0;e=zp(b|0,d|0,-1,-1)|0;k=C;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;wp(e,k,g,a)|0;i=C;l=i>>31|((i|0)<0?-1:0)<<1;t=l&1;v=wp(g,a,l&b,(((i|0)<0?-1:0)>>31|((i|0)<0?-1:0)<<1)&d)|0;w=C;u=u-1|0}while((u|0)!=0);B=h;D=x;E=w;F=v;G=0;H=t}t=D;D=0;if(f){c[f>>2]=F;c[f+4>>2]=E}n=(t|0)>>>31|(B|D)<<1|(D<<1|t>>>31)&0|G;o=(t<<1|0>>>31)&-2|H;return (C=n,o)|0}function Mp(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;return +eb[a&1](b|0,c|0,d|0,e|0,f|0,+g)}function Np(a,b){a=a|0;b=b|0;return fb[a&7](b|0)|0}function Op(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;gb[a&3](b|0,c|0,d|0,e|0,f|0)}function Pp(a,b,c){a=a|0;b=b|0;c=+c;return +hb[a&15](b|0,+c)}function Qp(a,b){a=a|0;b=b|0;ib[a&127](b|0)}function Rp(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=+f;return +jb[a&1](b|0,c|0,d|0,e|0,+f)}function Sp(a,b,c){a=a|0;b=b|0;c=c|0;kb[a&63](b|0,c|0)}function Tp(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return lb[a&15](b|0,c|0,d|0)|0}function Up(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;mb[a&7](b|0,c|0,d|0)}function Vp(a){a=a|0;nb[a&3]()}function Wp(a,b,c,d){a=a|0;b=b|0;c=c|0;d=+d;ob[a&31](b|0,c|0,+d)}function Xp(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return pb[a&7](b|0,c|0,d|0,e|0)|0}function Yp(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;qb[a&7](b|0,c|0,d|0,e|0,f|0,g|0)}function Zp(a,b,c){a=a|0;b=b|0;c=c|0;return rb[a&31](b|0,c|0)|0}function _p(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 sb[a&15](b|0,c|0,d|0,e|0,f|0)|0}function $p(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;tb[a&31](b|0,c|0,d|0,e|0)}function aq(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=+f;ba(0);return 0.0}function bq(a){a=a|0;ba(1);return 0}function cq(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;ba(2)}function dq(a,b){a=a|0;b=+b;ba(3);return 0.0}function eq(a){a=a|0;ba(4)}function fq(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=+e;ba(5);return 0.0}function gq(a,b){a=a|0;b=b|0;ba(6)}function hq(a,b,c){a=a|0;b=b|0;c=c|0;ba(7);return 0}function iq(a,b,c){a=a|0;b=b|0;c=c|0;ba(8)}function jq(){ba(9)}function kq(){ab()}function lq(a,b,c){a=a|0;b=b|0;c=+c;ba(10)}function mq(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;ba(11);return 0}function nq(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;ba(12)}function oq(a,b){a=a|0;b=b|0;ba(13);return 0}function pq(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;ba(14);return 0}function qq(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;ba(15)} // EMSCRIPTEN_END_FUNCS -var La=[no,Fd];var Ma=[oo,Ud,ae,je,se,hk,nm,oo];var Na=[po,qn,zn,po];var Oa=[qo,mf,zf,Nf,Yf,hg,sg,Dg,Vg,ih,zh,Lh,qo,qo,qo,qo];var Pa=[ro,Yb,qd,Zb,zd,Hd,Dd,Rd,Sd,_d,he,pe,qe,df,ef,nf,pf,qf,Af,Cf,Of,Pf,Zf,_f,ig,jg,tg,ug,Eg,Fg,Wg,Xg,dh,eh,jh,kh,Ah,Bh,Mh,Oh,Vh,Wh,ai,di,hi,ui,yi,Ci,Gi,oj,ak,fk,rk,Rk,sk,Ck,Dk,Uk,jl,ol,kn,ln,mn,nn,xn,Dn,ro,ro,ro,ro,ro,ro,ro,ro,ro,ro,ro,ro,ro,ro,ro,ro,ro,ro,ro,ro,ro,ro,ro,ro,ro,ro,ro,ro,ro,ro,ro,ro,ro,ro,ro,ro,ro,ro,ro,ro,ro,ro,ro,ro,ro,ro,ro,ro,ro,ro,ro,ro,ro,ro,ro,ro,ro,ro,ro,ro,ro,ro];var Qa=[so,Ed];var Ra=[to,rd,sd,jf,kf,of,rf,sf,wf,xf,Bf,Df,Ef,Kf,Lf,Qf,Rf,Vf,Wf,$f,ag,eg,fg,kg,lg,pg,qg,vg,wg,Ag,Bg,Gg,Hg,Sg,Tg,Yg,Zg,fh,gh,lh,mh,wh,xh,Ch,Dh,Ih,Jh,Nh,Ph,Qh,pj,qj,Zl,ji,fi,Ii,wi,Ei,Ai,Yh,to,to,to,to];var Sa=[uo,Bd,Vd,be,ke,te,ff,ck,ik,Sk,uk,om,pm,vm,on,uo];var Ta=[vo,td,vd,xd,yd,rj,sj,vo];var Ua=[wo,xo,gn,Cn];var Va=[yo,Zd,fe,oe,xe,lf,yf,Mf,Xf,gg,rg,Cg,Ug,hh,yh,Kh,mk,yo,yo,yo,yo,yo,yo,yo,yo,yo,yo,yo,yo,yo,yo,yo];var Wa=[zo,gf,hf,Tk,vk,zo,zo,zo];var Xa=[Ao,Wd,ce,le,ue,jk,pn,yn];var Ya=[Bo,Ad,Cd,Gd,Td,$d,ie,re,tf,Ff,Sf,bg,mg,xg,Ig,_g,nh,Eh,Rh,bk,gk,tk,Vk,kl,ll,Yl,yj,wk,yk,Lk,Zk,dl];var Za=[Co,Xd,de,me,ve,kk,ii,ei,Hi,vi,Di,zi,Xh,Co,Co,Co];var _a=[Do,ud,wd,Yd,ee,ne,we,Uh,ci,gi,ti,xi,Bi,Fi,lk,Ek,ml,pl,rn,An,Do,Do,Do,Do,Do,Do,Do,Do,Do,Do,Do,Do];return{_b2PrismaticJoint_IsMotorEnabled:Gc,_b2Body_GetWorldVector:Nb,_b2Body_GetLocalPoint:Fb,_b2Body_GetLocalVector:Gb,_b2PrismaticJoint_GetMotorSpeed:Dc,_b2ParticleGroup_ApplyLinearImpulse:ad,_b2RopeJointDef_Create:Uc,_b2World_CreateParticleSystem:ac,_b2ParticleSystem_SetRadius:pd,__GLOBAL__sub_I_jsBindings_cpp:Id,_bitshift64Lshr:Pn,_b2FrictionJointDef_Create:oc,_b2World_RayCast:gc,_b2MotorJointDef_InitializeAndCreate:xc,_b2GearJoint_GetRatio:qc,_sbrk:Un,_b2PolygonShape_CreateFixture_8:sb,_memcpy:Qn,_b2RevoluteJoint_EnableLimit:Mc,_b2Body_DestroyFixture:Ab,_b2World_Create:_b,_b2PolygonShape_CreateFixture_3:nb,_b2PolygonShape_CreateFixture_6:qb,_b2PolygonShape_CreateFixture_7:rb,_b2PolygonShape_CreateFixture_4:ob,_b2PolygonShape_CreateFixture_5:pb,_b2Body_ApplyLinearImpulse:wb,_b2Body_SetAwake:Ob,dynCall_iiii:eo,_emscripten_get_global_libc:mm,_b2ParticleGroup_DestroyParticles:bd,_b2PrismaticJoint_EnableLimit:Ac,dynCall_iiiiii:lo,stackSave:ab,_b2Fixture_TestPoint:Xb,_b2MotorJoint_SetLinearOffset:vc,___cxa_can_catch:In,_free:lm,runPostSets:Kn,_b2ParticleSystem_CreateParticle:ed,_b2Body_SetLinearVelocity:Rb,dynCall_viiiiii:jo,_b2Body_SetAngularVelocity:Qb,_b2CircleShape_CreateParticleGroup:kb,_b2WeldJointDef_Create:Vc,dynCall_viiiii:_n,_b2Body_GetAngularVelocity:Cb,_b2World_SetGravity:ic,_b2DistanceJointDef_InitializeAndCreate:nc,setThrew:db,_b2Body_ApplyForce:xb,_b2RevoluteJoint_SetMotorSpeed:Tc,___cxa_is_pointer_type:Jn,_b2Body_GetPosition:Ib,_b2World_CreateBody:$b,_b2Body_GetLinearVelocity:Eb,_b2ParticleSystem_SetGravityScale:md,_b2ParticleSystem_SetMaxParticleCount:nd,_b2Body_SetMassData:Sb,getTempRet0:fb,_b2MouseJointDef_Create:zc,_b2ParticleSystem_GetColorBuffer:fd,_b2PrismaticJointDef_Create:Ic,_b2DistanceJointDef_Create:mc,_b2ParticleSystem_GetPositionBuffer:id,_b2CircleShape_DestroyParticlesInShape:lb,_b2World_QueryAABB:fc,dynCall_viiii:mo,_b2PolygonShape_DestroyParticlesInShape_4:ub,_llvm_bswap_i32:Xn,_b2RevoluteJointDef_InitializeAndCreate:Sc,_b2GearJointDef_Create:rc,establishStackSpace:cb,_b2PrismaticJoint_IsLimitEnabled:Fc,dynCall_diiiiid:Yn,_b2Contact_GetWorldManifold:lc,_b2WheelJoint_SetSpringFrequencyHz:Yc,_b2Body_ApplyTorque:zb,_b2Body_SetFixedRotation:Pb,_b2PrismaticJointDef_InitializeAndCreate:Jc,_b2MotorJointDef_Create:wc,_b2World_DestroyBody:cc,_b2RevoluteJointDef_Create:Rc,dynCall_viii:fo,_b2ParticleGroup_GetParticleCount:dd,_b2Body_ApplyForceToCenter:yb,dynCall_vi:ao,_b2PrismaticJoint_EnableMotor:Bc,_b2PolygonShape_CreateParticleGroup_4:tb,dynCall_iii:ko,_memset:Nn,_b2ParticleSystem_SetDamping:kd,_b2Body_GetWorldPoint:Mb,_b2WheelJoint_SetMotorSpeed:Xc,_b2EdgeShape_CreateFixture:mb,setTempRet0:eb,_b2Body_GetWorldCenter:Lb,_b2Body_SetType:Ub,_b2Body_SetTransform:Tb,dynCall_ii:Zn,_b2RevoluteJoint_GetJointAngle:Oc,_b2ParticleGroup_ApplyForce:$c,_malloc:km,_b2Contact_GetManifold:kc,_b2RevoluteJoint_IsMotorEnabled:Qc,dynCall_did:$n,_b2ParticleSystem_GetVelocityBuffer:jd,_b2ParticleSystem_GetParticleLifetime:hd,dynCall_v:go,_b2RevoluteJoint_IsLimitEnabled:Pc,_b2World_DestroyParticleSystem:ec,_b2RevoluteJoint_EnableMotor:Nc,_b2Body_GetTransform:Jb,_i64Subtract:Ln,___udivdi3:Tn,_b2WeldJointDef_InitializeAndCreate:Wc,_b2FrictionJointDef_InitializeAndCreate:pc,_b2Body_GetType:Kb,_b2Manifold_GetPointCount:gb,_bitshift64Shl:On,_b2ParticleSystem_SetDensity:ld,_fflush:an,_b2PrismaticJoint_GetMotorForce:Ec,_b2Joint_GetBodyA:sc,_b2PulleyJointDef_InitializeAndCreate:Lc,_b2Joint_GetBodyB:tc,_b2ParticleSystem_GetParticleCount:gd,_b2MouseJoint_SetTarget:yc,_b2Body_ApplyAngularImpulse:vb,_b2ChainShape_CreateFixture:hb,_b2World_DestroyJoint:dc,___uremdi3:Wn,_b2MotorJoint_SetAngularOffset:uc,stackAlloc:$a,_b2World_Delete:bc,_b2World_SetContactListener:hc,dynCall_vii:co,_b2PrismaticJoint_GetJointTranslation:Cc,_i64Add:Mn,_b2Body_GetMass:Hb,_b2Body_GetAngle:Bb,_b2ParticleGroup_GetBufferIndex:cd,_b2WheelJointDef_InitializeAndCreate:_c,stackRestore:bb,dynCall_iiiii:io,dynCall_viid:ho,dynCall_diiiid:bo,_b2World_Step:jc,_b2PulleyJointDef_Create:Kc,_b2Body_GetGravityScale:Wb,_b2Body_SetGravityScale:Vb,___errno_location:rm,_b2WheelJointDef_Create:Zc,_b2CircleShape_CreateFixture:jb,_b2Body_GetInertia:Db,_memmove:Vn,_b2ParticleSystem_SetParticleLifetime:od,_b2PrismaticJoint_SetMotorSpeed:Hc}}) +var eb=[aq,df];var fb=[bq,rf,Af,Jf,Uf,Gn,vo,hp];var gb=[cq,No,Mo,cq];var hb=[dq,Ug,fh,wh,Hh,Uh,ci,oi,Ii,_i,tj,Lj,dq,dq,dq,dq];var ib=[eq,Gc,Qe,Hc,Ze,ff,bf,xf,yf,Hf,Pf,Qf,Rf,Fg,Gg,Wg,Xg,Yg,lh,nh,xh,yh,Kh,Lh,Vh,Wh,ei,fi,zi,Ai,Ki,Li,Qi,Ri,jj,kj,Bj,Cj,Qj,Sj,Wj,Xj,ak,ek,ik,vk,zk,Dk,Hk,vl,Mn,En,ln,Dn,wn,xn,qn,mn,en,Zm,to,uo,Bo,Eo,Co,Do,Fo,Uo,pp,eq,eq,eq,eq,eq,eq,eq,eq,eq,eq,eq,eq,eq,eq,eq,eq,eq,eq,eq,eq,eq,eq,eq,eq,eq,eq,eq,eq,eq,eq,eq,eq,eq,eq,eq,eq,eq,eq,eq,eq,eq,eq,eq,eq,eq,eq,eq,eq,eq,eq,eq,eq,eq,eq,eq,eq,eq,eq,eq];var jb=[fq,cf];var kb=[gq,Re,Se,Rg,Sg,Vg,Og,Pg,ch,dh,mh,$g,ah,th,uh,qh,rh,Eh,Fh,Bh,Ch,Rh,Sh,Oh,Ph,$h,ai,Yh,Zh,li,mi,ii,ji,Fi,Gi,Ci,Di,Xi,Yi,Ui,Vi,qj,rj,nj,oj,Ij,Jj,Rj,Fj,Gj,wl,xl,eo,gk,ck,Fk,tk,Bk,xk,Uj,gq,gq,gq,gq];var lb=[hq,$e,sf,Cf,Kf,Xf,Eg,On,Hn,on,sn,Go,jp,ip,kp,hq];var mb=[iq,Te,Ve,Xe,Ye,yl,zl,iq];var nb=[jq,kq,So,To];var ob=[lq,wf,Gf,Of,_f,Tg,eh,vh,Gh,Th,bi,ni,Hi,Zi,sj,Kj,Ln,lq,lq,lq,lq,lq,lq,lq,lq,lq,lq,lq,lq,lq,lq,lq];var pb=[mq,Hg,Ig,pn,tn,mq,mq,mq];var qb=[nq,tf,Df,Lf,Wf,In,Po,Oo];var rb=[oq,_e,af,ef,qf,zf,If,Tf,Qg,bh,sh,Dh,Qh,_h,ki,Ei,Wi,pj,Hj,Nn,Fn,rn,nn,_m,$m,co,Bl,gm,hm,Pm,Rm,qm];var sb=[pq,uf,Ef,Mf,Yf,Jn,fk,bk,Ek,sk,Ak,wk,Tj,pq,pq,pq];var tb=[qq,Ue,We,vf,Ff,Nf,Zf,Vj,dk,hk,uk,yk,Ck,Gk,Kn,yn,fn,an,Io,Jo,qq,qq,qq,qq,qq,qq,qq,qq,qq,qq,qq,qq];return{_b2PrismaticJoint_IsMotorEnabled:Gd,_b2Body_GetWorldVector:ic,_b2MouseJoint_SetFrequency:xd,_b2Body_GetLocalVector:bc,_b2PrismaticJoint_GetMotorSpeed:Dd,_b2ParticleGroup_ApplyLinearImpulse:Ae,_b2RopeJointDef_Create:he,_b2PrismaticJoint_SetMaxMotorForce:Ld,_b2World_CreateParticleSystem:Kc,_b2ParticleSystem_SetRadius:Pe,_bitshift64Lshr:Ap,_b2FrictionJointDef_Create:$c,_b2RopeJoint_SetMaxLength:fe,_b2World_RayCast:Qc,_b2MotorJointDef_InitializeAndCreate:ud,_b2DistanceJoint_SetFrequency:Zc,_b2MotorJoint_SetCorrectionFactor:sd,_b2Joint_GetType:hd,_b2WheelJoint_EnableMotor:se,_b2Body_GetLocalPoint:ac,_memcpy:Bp,_b2RevoluteJoint_EnableLimit:Ud,_b2Body_DestroyFixture:Xb,_b2World_Create:Ic,_b2PolygonShape_CreateFixture_3:Kb,_b2PolygonShape_CreateFixture_6:Nb,_b2PolygonShape_CreateFixture_7:Ob,_b2PolygonShape_CreateFixture_4:Lb,_b2PolygonShape_CreateFixture_5:Mb,_b2DistanceJoint_SetLength:Yc,_b2Body_IsActive:Cc,_b2Body_SetAwake:jc,_b2Body_GetWorldCenter:gc,_b2RevoluteJoint_SetMaxMotorTorque:ae,_b2WheelJoint_GetMotorTorque:ve,_b2ParticleGroup_DestroyParticles:Be,_b2PrismaticJoint_EnableLimit:Ad,_b2WheelJoint_GetJointSpeed:qe,_b2MouseJointDef_Create:zd,_b2RevoluteJoint_GetJointAngle:Wd,_b2Body_ApplyLinearImpulse:Tb,___cxa_can_catch:Qo,_free:up,_b2ParticleSystem_CreateParticle:Ee,_b2Body_SetLinearVelocity:mc,_b2PrismaticJoint_GetJointSpeed:Jd,_b2Body_IsBullet:yc,_b2Body_SetSleepingAllowed:zc,_b2CircleShape_CreateParticleGroup:Hb,_b2WeldJointDef_Create:ke,_b2RevoluteJoint_IsMotorEnabled:Yd,_b2Body_GetAngularVelocity:Zb,_b2Body_ApplyForceToCenter:Vb,_b2Body_SetMassData:nc,_b2MouseJoint_SetMaxForce:wd,_b2PrismaticJoint_SetLimits:Kd,_b2Joint_GetCollideConnected:nd,_b2DistanceJointDef_InitializeAndCreate:Xc,_b2MotorJoint_SetMaxTorque:rd,_b2Body_ApplyForce:Ub,_b2MotorJoint_SetMaxForce:qd,_b2RevoluteJoint_SetMotorSpeed:ee,_b2WheelJoint_SetSpringDampingRatio:we,___cxa_is_pointer_type:Ro,_b2Body_GetPosition:dc,_b2PrismaticJoint_GetLocalAxisA:Id,_b2World_CreateBody:Jc,_b2Body_GetLinearVelocity:$b,_b2ParticleSystem_SetGravityScale:Me,_b2ParticleSystem_SetMaxParticleCount:Ne,_b2GearJoint_SetRatio:dd,_b2Body_GetAngularDamping:vc,_b2ParticleSystem_GetColorBuffer:Fe,_b2PulleyJointDef_Create:Sd,_b2DistanceJointDef_Create:Wc,_b2Joint_GetReactionTorque:ld,_b2ParticleSystem_GetPositionBuffer:Ie,_b2CircleShape_DestroyParticlesInShape:Ib,_b2World_QueryAABB:Pc,_b2WeldJoint_SetDampingRatio:je,_b2PulleyJoint_GetGroundAnchorB:Pd,_b2PulleyJoint_GetGroundAnchorA:Od,_b2Joint_GetAnchorB:jd,_b2PolygonShape_DestroyParticlesInShape_4:Rb,_b2Joint_GetAnchorA:id,_b2RevoluteJoint_SetLimits:_d,_b2GearJointDef_Create:ed,_b2PrismaticJoint_IsLimitEnabled:Fd,_b2DistanceJoint_SetDampingRatio:_c,_b2Contact_GetWorldManifold:Vc,_b2Body_IsAwake:wc,_b2FrictionJoint_SetMaxTorque:cd,_b2Body_SetFixedRotation:kc,_b2RevoluteJoint_GetJointSpeed:Zd,_b2Body_SetBullet:xc,_b2PulleyJoint_GetCurrentLengthA:Qd,_b2PulleyJoint_GetCurrentLengthB:Rd,_b2PrismaticJointDef_InitializeAndCreate:Nd,_b2Joint_GetReactionForce:kd,_b2MotorJointDef_Create:td,_b2World_DestroyBody:Mc,_b2RevoluteJointDef_Create:ce,_b2WheelJoint_GetMotorSpeed:te,_b2Joint_IsActive:md,_b2ParticleGroup_GetParticleCount:De,_b2World_SetGravity:Sc,_b2WheelJoint_GetJointTranslation:pe,_b2PrismaticJoint_EnableMotor:Bd,_b2PolygonShape_CreateParticleGroup_4:Qb,_b2PolygonShape_CreateFixture_8:Pb,_b2WheelJoint_SetMaxMotorTorque:ue,_b2RopeJoint_GetLimitState:ge,_b2Body_SetAngularVelocity:lc,_b2RevoluteJointDef_InitializeAndCreate:de,_b2Body_IsSleepingAllowed:Ac,_b2Body_GetWorldPoint:hc,_b2WheelJoint_IsMotorEnabled:re,_b2WheelJoint_SetMotorSpeed:me,_b2FrictionJointDef_InitializeAndCreate:ad,_b2Body_GetLinearDamping:tc,_b2Body_SetLinearDamping:sc,_b2World_SetContactListener:Rc,_b2ParticleSystem_SetDamping:Ke,_b2WheelJointDef_Create:xe,_b2Body_SetType:pc,_b2Body_SetTransform:oc,_b2Body_SetAngularDamping:uc,_b2MotorJoint_SetLinearOffset:pd,_b2WeldJoint_SetFrequency:ie,_b2WheelJoint_GetLocalAxisA:oe,_b2Fixture_TestPoint:Ec,_b2ParticleGroup_ApplyForce:ze,_malloc:tp,_b2Contact_GetManifold:Uc,_b2Fixture_Refilter:Fc,_b2ParticleSystem_GetVelocityBuffer:Je,_b2ParticleSystem_GetParticleLifetime:He,_b2RevoluteJoint_IsLimitEnabled:Xd,_b2World_DestroyParticleSystem:Oc,_b2RevoluteJoint_EnableMotor:Vd,_b2Body_GetTransform:ec,_i64Subtract:wp,_b2WeldJointDef_InitializeAndCreate:le,_b2EdgeShape_CreateFixture:Jb,_b2RevoluteJoint_GetMotorSpeed:$d,_b2Body_GetType:fc,_b2Manifold_GetPointCount:Db,_bitshift64Shl:yp,_b2ParticleSystem_SetDensity:Le,_fflush:ap,_b2PrismaticJoint_GetMotorForce:Ed,_b2Joint_GetBodyA:fd,_b2PulleyJointDef_InitializeAndCreate:Td,_b2Joint_GetBodyB:gd,_b2ParticleSystem_GetParticleCount:Ge,_b2MouseJoint_SetTarget:vd,_b2Body_ApplyAngularImpulse:Sb,_b2ChainShape_CreateFixture:Eb,_b2Body_SetActive:Bc,_b2World_DestroyJoint:Nc,_b2MotorJoint_SetAngularOffset:od,_b2World_Delete:Lc,_memset:xp,_b2PrismaticJoint_GetJointTranslation:Cd,_i64Add:zp,_b2Body_GetMass:cc,_b2Body_GetAngle:Yb,_b2ParticleGroup_GetBufferIndex:Ce,_b2WheelJointDef_InitializeAndCreate:ye,_b2World_Step:Tc,_b2PrismaticJointDef_Create:Md,_b2Body_GetGravityScale:rc,_b2Body_SetGravityScale:qc,___errno_location:Wo,_memmove:Cp,_b2MouseJoint_SetDampingRatio:yd,_b2CircleShape_CreateFixture:Gb,_b2Body_GetInertia:_b,_b2WheelJoint_SetSpringFrequencyHz:ne,_b2ParticleSystem_SetParticleLifetime:Oe,_b2RevoluteJoint_GetMotorTorque:be,_b2PrismaticJoint_SetMotorSpeed:Hd,_b2Body_ApplyTorque:Wb,_boBody_IsFixedRotation:Dc,_b2FrictionJoint_SetMaxForce:bd,__GLOBAL__sub_I_jsBindings_cpp:gf,runPostSets:vp,stackAlloc:ub,stackSave:vb,stackRestore:wb,establishStackSpace:xb,setThrew:yb,setTempRet0:Bb,getTempRet0:Cb,dynCall_diiiiid:Mp,dynCall_ii:Np,dynCall_viiiii:Op,dynCall_did:Pp,dynCall_vi:Qp,dynCall_diiiid:Rp,dynCall_vii:Sp,dynCall_iiii:Tp,dynCall_viii:Up,dynCall_v:Vp,dynCall_viid:Wp,dynCall_iiiii:Xp,dynCall_viiiiii:Yp,dynCall_iii:Zp,dynCall_iiiiii:_p,dynCall_viiii:$p}}) // EMSCRIPTEN_END_ASM -(Module.asmGlobalArg,Module.asmLibraryArg,buffer);var _b2PrismaticJoint_IsMotorEnabled=Module["_b2PrismaticJoint_IsMotorEnabled"]=asm["_b2PrismaticJoint_IsMotorEnabled"];var _b2Body_GetWorldVector=Module["_b2Body_GetWorldVector"]=asm["_b2Body_GetWorldVector"];var _b2Body_GetLocalVector=Module["_b2Body_GetLocalVector"]=asm["_b2Body_GetLocalVector"];var _b2PrismaticJoint_GetMotorSpeed=Module["_b2PrismaticJoint_GetMotorSpeed"]=asm["_b2PrismaticJoint_GetMotorSpeed"];var _b2Body_SetFixedRotation=Module["_b2Body_SetFixedRotation"]=asm["_b2Body_SetFixedRotation"];var _b2RopeJointDef_Create=Module["_b2RopeJointDef_Create"]=asm["_b2RopeJointDef_Create"];var _b2World_CreateParticleSystem=Module["_b2World_CreateParticleSystem"]=asm["_b2World_CreateParticleSystem"];var _b2ParticleSystem_SetRadius=Module["_b2ParticleSystem_SetRadius"]=asm["_b2ParticleSystem_SetRadius"];var __GLOBAL__sub_I_jsBindings_cpp=Module["__GLOBAL__sub_I_jsBindings_cpp"]=asm["__GLOBAL__sub_I_jsBindings_cpp"];var _bitshift64Lshr=Module["_bitshift64Lshr"]=asm["_bitshift64Lshr"];var _b2FrictionJointDef_Create=Module["_b2FrictionJointDef_Create"]=asm["_b2FrictionJointDef_Create"];var _b2World_RayCast=Module["_b2World_RayCast"]=asm["_b2World_RayCast"];var _b2MotorJointDef_InitializeAndCreate=Module["_b2MotorJointDef_InitializeAndCreate"]=asm["_b2MotorJointDef_InitializeAndCreate"];var _b2GearJoint_GetRatio=Module["_b2GearJoint_GetRatio"]=asm["_b2GearJoint_GetRatio"];var _sbrk=Module["_sbrk"]=asm["_sbrk"];var _b2PolygonShape_CreateFixture_8=Module["_b2PolygonShape_CreateFixture_8"]=asm["_b2PolygonShape_CreateFixture_8"];var _memcpy=Module["_memcpy"]=asm["_memcpy"];var _b2RevoluteJoint_EnableLimit=Module["_b2RevoluteJoint_EnableLimit"]=asm["_b2RevoluteJoint_EnableLimit"];var _b2Body_DestroyFixture=Module["_b2Body_DestroyFixture"]=asm["_b2Body_DestroyFixture"];var _b2World_Create=Module["_b2World_Create"]=asm["_b2World_Create"];var _b2PolygonShape_CreateFixture_3=Module["_b2PolygonShape_CreateFixture_3"]=asm["_b2PolygonShape_CreateFixture_3"];var _b2PolygonShape_CreateFixture_6=Module["_b2PolygonShape_CreateFixture_6"]=asm["_b2PolygonShape_CreateFixture_6"];var _b2PolygonShape_CreateFixture_7=Module["_b2PolygonShape_CreateFixture_7"]=asm["_b2PolygonShape_CreateFixture_7"];var _b2PolygonShape_CreateFixture_4=Module["_b2PolygonShape_CreateFixture_4"]=asm["_b2PolygonShape_CreateFixture_4"];var _b2PolygonShape_CreateFixture_5=Module["_b2PolygonShape_CreateFixture_5"]=asm["_b2PolygonShape_CreateFixture_5"];var _b2Body_ApplyLinearImpulse=Module["_b2Body_ApplyLinearImpulse"]=asm["_b2Body_ApplyLinearImpulse"];var _b2Body_SetAwake=Module["_b2Body_SetAwake"]=asm["_b2Body_SetAwake"];var _b2Body_GetWorldCenter=Module["_b2Body_GetWorldCenter"]=asm["_b2Body_GetWorldCenter"];var _emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=asm["_emscripten_get_global_libc"];var _b2ParticleGroup_DestroyParticles=Module["_b2ParticleGroup_DestroyParticles"]=asm["_b2ParticleGroup_DestroyParticles"];var _b2PrismaticJoint_EnableLimit=Module["_b2PrismaticJoint_EnableLimit"]=asm["_b2PrismaticJoint_EnableLimit"];var stackSave=Module["stackSave"]=asm["stackSave"];var _b2RevoluteJoint_GetJointAngle=Module["_b2RevoluteJoint_GetJointAngle"]=asm["_b2RevoluteJoint_GetJointAngle"];var _b2MotorJoint_SetLinearOffset=Module["_b2MotorJoint_SetLinearOffset"]=asm["_b2MotorJoint_SetLinearOffset"];var ___cxa_can_catch=Module["___cxa_can_catch"]=asm["___cxa_can_catch"];var _free=Module["_free"]=asm["_free"];var runPostSets=Module["runPostSets"]=asm["runPostSets"];var _b2ParticleSystem_CreateParticle=Module["_b2ParticleSystem_CreateParticle"]=asm["_b2ParticleSystem_CreateParticle"];var _b2Body_SetLinearVelocity=Module["_b2Body_SetLinearVelocity"]=asm["_b2Body_SetLinearVelocity"];var _b2Body_SetAngularVelocity=Module["_b2Body_SetAngularVelocity"]=asm["_b2Body_SetAngularVelocity"];var _b2PolygonShape_DestroyParticlesInShape_4=Module["_b2PolygonShape_DestroyParticlesInShape_4"]=asm["_b2PolygonShape_DestroyParticlesInShape_4"];var _b2WeldJointDef_Create=Module["_b2WeldJointDef_Create"]=asm["_b2WeldJointDef_Create"];var _b2Body_GetAngularVelocity=Module["_b2Body_GetAngularVelocity"]=asm["_b2Body_GetAngularVelocity"];var _b2World_SetGravity=Module["_b2World_SetGravity"]=asm["_b2World_SetGravity"];var _b2DistanceJointDef_InitializeAndCreate=Module["_b2DistanceJointDef_InitializeAndCreate"]=asm["_b2DistanceJointDef_InitializeAndCreate"];var setThrew=Module["setThrew"]=asm["setThrew"];var _b2Body_ApplyForce=Module["_b2Body_ApplyForce"]=asm["_b2Body_ApplyForce"];var _b2RevoluteJoint_SetMotorSpeed=Module["_b2RevoluteJoint_SetMotorSpeed"]=asm["_b2RevoluteJoint_SetMotorSpeed"];var ___cxa_is_pointer_type=Module["___cxa_is_pointer_type"]=asm["___cxa_is_pointer_type"];var _b2Body_GetPosition=Module["_b2Body_GetPosition"]=asm["_b2Body_GetPosition"];var _b2World_CreateBody=Module["_b2World_CreateBody"]=asm["_b2World_CreateBody"];var _b2Body_GetLinearVelocity=Module["_b2Body_GetLinearVelocity"]=asm["_b2Body_GetLinearVelocity"];var _b2EdgeShape_CreateFixture=Module["_b2EdgeShape_CreateFixture"]=asm["_b2EdgeShape_CreateFixture"];var _b2ParticleSystem_SetGravityScale=Module["_b2ParticleSystem_SetGravityScale"]=asm["_b2ParticleSystem_SetGravityScale"];var _b2ParticleSystem_SetMaxParticleCount=Module["_b2ParticleSystem_SetMaxParticleCount"]=asm["_b2ParticleSystem_SetMaxParticleCount"];var _b2Body_SetMassData=Module["_b2Body_SetMassData"]=asm["_b2Body_SetMassData"];var getTempRet0=Module["getTempRet0"]=asm["getTempRet0"];var _b2Body_GetAngle=Module["_b2Body_GetAngle"]=asm["_b2Body_GetAngle"];var _b2ParticleSystem_GetColorBuffer=Module["_b2ParticleSystem_GetColorBuffer"]=asm["_b2ParticleSystem_GetColorBuffer"];var _b2PulleyJointDef_Create=Module["_b2PulleyJointDef_Create"]=asm["_b2PulleyJointDef_Create"];var _b2DistanceJointDef_Create=Module["_b2DistanceJointDef_Create"]=asm["_b2DistanceJointDef_Create"];var _b2ParticleSystem_GetPositionBuffer=Module["_b2ParticleSystem_GetPositionBuffer"]=asm["_b2ParticleSystem_GetPositionBuffer"];var _b2CircleShape_DestroyParticlesInShape=Module["_b2CircleShape_DestroyParticlesInShape"]=asm["_b2CircleShape_DestroyParticlesInShape"];var _b2World_QueryAABB=Module["_b2World_QueryAABB"]=asm["_b2World_QueryAABB"];var _b2CircleShape_CreateParticleGroup=Module["_b2CircleShape_CreateParticleGroup"]=asm["_b2CircleShape_CreateParticleGroup"];var _llvm_bswap_i32=Module["_llvm_bswap_i32"]=asm["_llvm_bswap_i32"];var _b2RevoluteJointDef_InitializeAndCreate=Module["_b2RevoluteJointDef_InitializeAndCreate"]=asm["_b2RevoluteJointDef_InitializeAndCreate"];var _b2GearJointDef_Create=Module["_b2GearJointDef_Create"]=asm["_b2GearJointDef_Create"];var establishStackSpace=Module["establishStackSpace"]=asm["establishStackSpace"];var _b2PrismaticJoint_IsLimitEnabled=Module["_b2PrismaticJoint_IsLimitEnabled"]=asm["_b2PrismaticJoint_IsLimitEnabled"];var _b2Contact_GetWorldManifold=Module["_b2Contact_GetWorldManifold"]=asm["_b2Contact_GetWorldManifold"];var _b2WheelJoint_SetSpringFrequencyHz=Module["_b2WheelJoint_SetSpringFrequencyHz"]=asm["_b2WheelJoint_SetSpringFrequencyHz"];var _b2Body_ApplyTorque=Module["_b2Body_ApplyTorque"]=asm["_b2Body_ApplyTorque"];var _b2ParticleGroup_ApplyLinearImpulse=Module["_b2ParticleGroup_ApplyLinearImpulse"]=asm["_b2ParticleGroup_ApplyLinearImpulse"];var _b2PrismaticJointDef_InitializeAndCreate=Module["_b2PrismaticJointDef_InitializeAndCreate"]=asm["_b2PrismaticJointDef_InitializeAndCreate"];var _memset=Module["_memset"]=asm["_memset"];var _b2MotorJointDef_Create=Module["_b2MotorJointDef_Create"]=asm["_b2MotorJointDef_Create"];var _b2World_DestroyBody=Module["_b2World_DestroyBody"]=asm["_b2World_DestroyBody"];var _b2RevoluteJointDef_Create=Module["_b2RevoluteJointDef_Create"]=asm["_b2RevoluteJointDef_Create"];var _b2ParticleGroup_GetParticleCount=Module["_b2ParticleGroup_GetParticleCount"]=asm["_b2ParticleGroup_GetParticleCount"];var _b2Body_ApplyForceToCenter=Module["_b2Body_ApplyForceToCenter"]=asm["_b2Body_ApplyForceToCenter"];var _b2PrismaticJoint_EnableMotor=Module["_b2PrismaticJoint_EnableMotor"]=asm["_b2PrismaticJoint_EnableMotor"];var _b2PolygonShape_CreateParticleGroup_4=Module["_b2PolygonShape_CreateParticleGroup_4"]=asm["_b2PolygonShape_CreateParticleGroup_4"];var _b2Body_GetLocalPoint=Module["_b2Body_GetLocalPoint"]=asm["_b2Body_GetLocalPoint"];var _b2ParticleSystem_SetDamping=Module["_b2ParticleSystem_SetDamping"]=asm["_b2ParticleSystem_SetDamping"];var _b2Body_GetWorldPoint=Module["_b2Body_GetWorldPoint"]=asm["_b2Body_GetWorldPoint"];var _b2WheelJoint_SetMotorSpeed=Module["_b2WheelJoint_SetMotorSpeed"]=asm["_b2WheelJoint_SetMotorSpeed"];var _b2FrictionJointDef_InitializeAndCreate=Module["_b2FrictionJointDef_InitializeAndCreate"]=asm["_b2FrictionJointDef_InitializeAndCreate"];var setTempRet0=Module["setTempRet0"]=asm["setTempRet0"];var _b2World_SetContactListener=Module["_b2World_SetContactListener"]=asm["_b2World_SetContactListener"];var _b2Body_SetType=Module["_b2Body_SetType"]=asm["_b2Body_SetType"];var _b2Body_SetTransform=Module["_b2Body_SetTransform"]=asm["_b2Body_SetTransform"];var _b2Fixture_TestPoint=Module["_b2Fixture_TestPoint"]=asm["_b2Fixture_TestPoint"];var _b2ParticleGroup_ApplyForce=Module["_b2ParticleGroup_ApplyForce"]=asm["_b2ParticleGroup_ApplyForce"];var _malloc=Module["_malloc"]=asm["_malloc"];var _b2Contact_GetManifold=Module["_b2Contact_GetManifold"]=asm["_b2Contact_GetManifold"];var _b2ParticleSystem_GetVelocityBuffer=Module["_b2ParticleSystem_GetVelocityBuffer"]=asm["_b2ParticleSystem_GetVelocityBuffer"];var _b2ParticleSystem_GetParticleLifetime=Module["_b2ParticleSystem_GetParticleLifetime"]=asm["_b2ParticleSystem_GetParticleLifetime"];var _b2RevoluteJoint_IsLimitEnabled=Module["_b2RevoluteJoint_IsLimitEnabled"]=asm["_b2RevoluteJoint_IsLimitEnabled"];var _b2World_DestroyParticleSystem=Module["_b2World_DestroyParticleSystem"]=asm["_b2World_DestroyParticleSystem"];var _b2RevoluteJoint_EnableMotor=Module["_b2RevoluteJoint_EnableMotor"]=asm["_b2RevoluteJoint_EnableMotor"];var _b2Body_GetTransform=Module["_b2Body_GetTransform"]=asm["_b2Body_GetTransform"];var _i64Subtract=Module["_i64Subtract"]=asm["_i64Subtract"];var ___udivdi3=Module["___udivdi3"]=asm["___udivdi3"];var _b2WeldJointDef_InitializeAndCreate=Module["_b2WeldJointDef_InitializeAndCreate"]=asm["_b2WeldJointDef_InitializeAndCreate"];var _b2RevoluteJoint_IsMotorEnabled=Module["_b2RevoluteJoint_IsMotorEnabled"]=asm["_b2RevoluteJoint_IsMotorEnabled"];var _b2Body_GetType=Module["_b2Body_GetType"]=asm["_b2Body_GetType"];var _b2Manifold_GetPointCount=Module["_b2Manifold_GetPointCount"]=asm["_b2Manifold_GetPointCount"];var _bitshift64Shl=Module["_bitshift64Shl"]=asm["_bitshift64Shl"];var _b2ParticleSystem_SetDensity=Module["_b2ParticleSystem_SetDensity"]=asm["_b2ParticleSystem_SetDensity"];var _fflush=Module["_fflush"]=asm["_fflush"];var _b2PrismaticJoint_GetMotorForce=Module["_b2PrismaticJoint_GetMotorForce"]=asm["_b2PrismaticJoint_GetMotorForce"];var _b2Joint_GetBodyA=Module["_b2Joint_GetBodyA"]=asm["_b2Joint_GetBodyA"];var _b2PulleyJointDef_InitializeAndCreate=Module["_b2PulleyJointDef_InitializeAndCreate"]=asm["_b2PulleyJointDef_InitializeAndCreate"];var _b2Joint_GetBodyB=Module["_b2Joint_GetBodyB"]=asm["_b2Joint_GetBodyB"];var _b2ParticleSystem_GetParticleCount=Module["_b2ParticleSystem_GetParticleCount"]=asm["_b2ParticleSystem_GetParticleCount"];var _b2MouseJoint_SetTarget=Module["_b2MouseJoint_SetTarget"]=asm["_b2MouseJoint_SetTarget"];var _b2Body_ApplyAngularImpulse=Module["_b2Body_ApplyAngularImpulse"]=asm["_b2Body_ApplyAngularImpulse"];var _b2ChainShape_CreateFixture=Module["_b2ChainShape_CreateFixture"]=asm["_b2ChainShape_CreateFixture"];var _b2World_DestroyJoint=Module["_b2World_DestroyJoint"]=asm["_b2World_DestroyJoint"];var ___uremdi3=Module["___uremdi3"]=asm["___uremdi3"];var _b2MotorJoint_SetAngularOffset=Module["_b2MotorJoint_SetAngularOffset"]=asm["_b2MotorJoint_SetAngularOffset"];var stackAlloc=Module["stackAlloc"]=asm["stackAlloc"];var _b2World_Delete=Module["_b2World_Delete"]=asm["_b2World_Delete"];var _b2PrismaticJoint_GetJointTranslation=Module["_b2PrismaticJoint_GetJointTranslation"]=asm["_b2PrismaticJoint_GetJointTranslation"];var _i64Add=Module["_i64Add"]=asm["_i64Add"];var _b2Body_GetMass=Module["_b2Body_GetMass"]=asm["_b2Body_GetMass"];var _b2MouseJointDef_Create=Module["_b2MouseJointDef_Create"]=asm["_b2MouseJointDef_Create"];var _b2ParticleGroup_GetBufferIndex=Module["_b2ParticleGroup_GetBufferIndex"]=asm["_b2ParticleGroup_GetBufferIndex"];var _b2WheelJointDef_InitializeAndCreate=Module["_b2WheelJointDef_InitializeAndCreate"]=asm["_b2WheelJointDef_InitializeAndCreate"];var stackRestore=Module["stackRestore"]=asm["stackRestore"];var _b2World_Step=Module["_b2World_Step"]=asm["_b2World_Step"];var _b2PrismaticJointDef_Create=Module["_b2PrismaticJointDef_Create"]=asm["_b2PrismaticJointDef_Create"];var _b2Body_GetGravityScale=Module["_b2Body_GetGravityScale"]=asm["_b2Body_GetGravityScale"];var _b2Body_SetGravityScale=Module["_b2Body_SetGravityScale"]=asm["_b2Body_SetGravityScale"];var ___errno_location=Module["___errno_location"]=asm["___errno_location"];var _b2WheelJointDef_Create=Module["_b2WheelJointDef_Create"]=asm["_b2WheelJointDef_Create"];var _b2CircleShape_CreateFixture=Module["_b2CircleShape_CreateFixture"]=asm["_b2CircleShape_CreateFixture"];var _b2Body_GetInertia=Module["_b2Body_GetInertia"]=asm["_b2Body_GetInertia"];var _memmove=Module["_memmove"]=asm["_memmove"];var _b2ParticleSystem_SetParticleLifetime=Module["_b2ParticleSystem_SetParticleLifetime"]=asm["_b2ParticleSystem_SetParticleLifetime"];var _b2PrismaticJoint_SetMotorSpeed=Module["_b2PrismaticJoint_SetMotorSpeed"]=asm["_b2PrismaticJoint_SetMotorSpeed"];var dynCall_diiiiid=Module["dynCall_diiiiid"]=asm["dynCall_diiiiid"];var dynCall_ii=Module["dynCall_ii"]=asm["dynCall_ii"];var dynCall_viiiii=Module["dynCall_viiiii"]=asm["dynCall_viiiii"];var dynCall_did=Module["dynCall_did"]=asm["dynCall_did"];var dynCall_vi=Module["dynCall_vi"]=asm["dynCall_vi"];var dynCall_diiiid=Module["dynCall_diiiid"]=asm["dynCall_diiiid"];var dynCall_vii=Module["dynCall_vii"]=asm["dynCall_vii"];var dynCall_iiii=Module["dynCall_iiii"]=asm["dynCall_iiii"];var dynCall_viii=Module["dynCall_viii"]=asm["dynCall_viii"];var dynCall_v=Module["dynCall_v"]=asm["dynCall_v"];var dynCall_viid=Module["dynCall_viid"]=asm["dynCall_viid"];var dynCall_iiiii=Module["dynCall_iiiii"]=asm["dynCall_iiiii"];var dynCall_viiiiii=Module["dynCall_viiiiii"]=asm["dynCall_viiiiii"];var dynCall_iii=Module["dynCall_iii"]=asm["dynCall_iii"];var dynCall_iiiiii=Module["dynCall_iiiiii"]=asm["dynCall_iiiiii"];var dynCall_viiii=Module["dynCall_viiii"]=asm["dynCall_viiii"];Runtime.stackAlloc=Module["stackAlloc"];Runtime.stackSave=Module["stackSave"];Runtime.stackRestore=Module["stackRestore"];Runtime.establishStackSpace=Module["establishStackSpace"];Runtime.setTempRet0=Module["setTempRet0"];Runtime.getTempRet0=Module["getTempRet0"];Module["asm"]=asm;if(memoryInitializer){if(typeof Module["locateFile"]==="function"){memoryInitializer=Module["locateFile"](memoryInitializer)}else if(Module["memoryInitializerPrefixURL"]){memoryInitializer=Module["memoryInitializerPrefixURL"]+memoryInitializer}if(ENVIRONMENT_IS_NODE||ENVIRONMENT_IS_SHELL){var data=Module["readBinary"](memoryInitializer);HEAPU8.set(data,Runtime.GLOBAL_BASE)}else{addRunDependency("memory initializer");var applyMemoryInitializer=(function(data){if(data.byteLength)data=new Uint8Array(data);HEAPU8.set(data,Runtime.GLOBAL_BASE);if(Module["memoryInitializerRequest"])delete Module["memoryInitializerRequest"].response;removeRunDependency("memory initializer")});function doBrowserLoad(){Module["readAsync"](memoryInitializer,applyMemoryInitializer,(function(){throw"could not load memory initializer "+memoryInitializer}))}if(Module["memoryInitializerRequest"]){function useRequest(){var request=Module["memoryInitializerRequest"];if(request.status!==200&&request.status!==0){console.warn("a problem seems to have happened with Module.memoryInitializerRequest, status: "+request.status+", retrying "+memoryInitializer);doBrowserLoad();return}applyMemoryInitializer(request.response)}if(Module["memoryInitializerRequest"].response){setTimeout(useRequest,0)}else{Module["memoryInitializerRequest"].addEventListener("load",useRequest)}}else{doBrowserLoad()}}}function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}ExitStatus.prototype=new Error;ExitStatus.prototype.constructor=ExitStatus;var initialStackTop;var preloadStartTime=null;var calledMain=false;dependenciesFulfilled=function runCaller(){if(!Module["calledRun"])run();if(!Module["calledRun"])dependenciesFulfilled=runCaller};Module["callMain"]=Module.callMain=function callMain(args){args=args||[];ensureInitRuntime();var argc=args.length+1;function pad(){for(var i=0;i<4-1;i++){argv.push(0)}}var argv=[allocate(intArrayFromString(Module["thisProgram"]),"i8",ALLOC_NORMAL)];pad();for(var i=0;i0){return}preRun();if(runDependencies>0)return;if(Module["calledRun"])return;function doRun(){if(Module["calledRun"])return;Module["calledRun"]=true;if(ABORT)return;ensureInitRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(Module["_main"]&&shouldRunNow)Module["callMain"](args);postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout((function(){setTimeout((function(){Module["setStatus"]("")}),1);doRun()}),1)}else{doRun()}}Module["run"]=Module.run=run;function exit(status,implicit){if(implicit&&Module["noExitRuntime"]){return}if(Module["noExitRuntime"]){}else{ABORT=true;EXITSTATUS=status;STACKTOP=initialStackTop;exitRuntime();if(Module["onExit"])Module["onExit"](status)}if(ENVIRONMENT_IS_NODE){process["exit"](status)}Module["quit"](status,new ExitStatus(status))}Module["exit"]=Module.exit=exit;var abortDecorators=[];function abort(what){if(Module["onAbort"]){Module["onAbort"](what)}if(what!==undefined){Module.print(what);Module.printErr(what);what=JSON.stringify(what)}else{what=""}ABORT=true;EXITSTATUS=1;var extra="\nIf this abort() is unexpected, build with -s ASSERTIONS=1 which can give more information.";var output="abort("+what+") at "+stackTrace()+extra;if(abortDecorators){abortDecorators.forEach((function(decorator){output=decorator(output,what)}))}throw output}Module["abort"]=Module.abort=abort;if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=true;if(Module["noInitialRun"]){shouldRunNow=false}run() +(Module.asmGlobalArg,Module.asmLibraryArg,buffer);var _b2PrismaticJoint_IsMotorEnabled=Module["_b2PrismaticJoint_IsMotorEnabled"]=asm["_b2PrismaticJoint_IsMotorEnabled"];var _b2Body_GetWorldVector=Module["_b2Body_GetWorldVector"]=asm["_b2Body_GetWorldVector"];var _b2MouseJoint_SetFrequency=Module["_b2MouseJoint_SetFrequency"]=asm["_b2MouseJoint_SetFrequency"];var _b2Body_GetLocalVector=Module["_b2Body_GetLocalVector"]=asm["_b2Body_GetLocalVector"];var _b2PrismaticJoint_GetMotorSpeed=Module["_b2PrismaticJoint_GetMotorSpeed"]=asm["_b2PrismaticJoint_GetMotorSpeed"];var _b2Body_SetFixedRotation=Module["_b2Body_SetFixedRotation"]=asm["_b2Body_SetFixedRotation"];var _b2RopeJointDef_Create=Module["_b2RopeJointDef_Create"]=asm["_b2RopeJointDef_Create"];var _b2PrismaticJoint_SetMaxMotorForce=Module["_b2PrismaticJoint_SetMaxMotorForce"]=asm["_b2PrismaticJoint_SetMaxMotorForce"];var _b2World_CreateParticleSystem=Module["_b2World_CreateParticleSystem"]=asm["_b2World_CreateParticleSystem"];var _b2ParticleSystem_SetRadius=Module["_b2ParticleSystem_SetRadius"]=asm["_b2ParticleSystem_SetRadius"];var __GLOBAL__sub_I_jsBindings_cpp=Module["__GLOBAL__sub_I_jsBindings_cpp"]=asm["__GLOBAL__sub_I_jsBindings_cpp"];var _bitshift64Lshr=Module["_bitshift64Lshr"]=asm["_bitshift64Lshr"];var _b2FrictionJointDef_Create=Module["_b2FrictionJointDef_Create"]=asm["_b2FrictionJointDef_Create"];var _b2RopeJoint_SetMaxLength=Module["_b2RopeJoint_SetMaxLength"]=asm["_b2RopeJoint_SetMaxLength"];var _b2World_RayCast=Module["_b2World_RayCast"]=asm["_b2World_RayCast"];var _b2MotorJointDef_InitializeAndCreate=Module["_b2MotorJointDef_InitializeAndCreate"]=asm["_b2MotorJointDef_InitializeAndCreate"];var _b2DistanceJoint_SetFrequency=Module["_b2DistanceJoint_SetFrequency"]=asm["_b2DistanceJoint_SetFrequency"];var _b2MotorJoint_SetCorrectionFactor=Module["_b2MotorJoint_SetCorrectionFactor"]=asm["_b2MotorJoint_SetCorrectionFactor"];var _b2Joint_GetType=Module["_b2Joint_GetType"]=asm["_b2Joint_GetType"];var _b2Body_GetLocalPoint=Module["_b2Body_GetLocalPoint"]=asm["_b2Body_GetLocalPoint"];var _memcpy=Module["_memcpy"]=asm["_memcpy"];var _b2RevoluteJoint_EnableLimit=Module["_b2RevoluteJoint_EnableLimit"]=asm["_b2RevoluteJoint_EnableLimit"];var _b2Body_DestroyFixture=Module["_b2Body_DestroyFixture"]=asm["_b2Body_DestroyFixture"];var _b2World_Create=Module["_b2World_Create"]=asm["_b2World_Create"];var _b2PolygonShape_CreateFixture_3=Module["_b2PolygonShape_CreateFixture_3"]=asm["_b2PolygonShape_CreateFixture_3"];var _b2PolygonShape_CreateFixture_6=Module["_b2PolygonShape_CreateFixture_6"]=asm["_b2PolygonShape_CreateFixture_6"];var _b2PolygonShape_CreateFixture_7=Module["_b2PolygonShape_CreateFixture_7"]=asm["_b2PolygonShape_CreateFixture_7"];var _b2PolygonShape_CreateFixture_4=Module["_b2PolygonShape_CreateFixture_4"]=asm["_b2PolygonShape_CreateFixture_4"];var _b2PolygonShape_CreateFixture_5=Module["_b2PolygonShape_CreateFixture_5"]=asm["_b2PolygonShape_CreateFixture_5"];var _b2DistanceJoint_SetLength=Module["_b2DistanceJoint_SetLength"]=asm["_b2DistanceJoint_SetLength"];var _b2Body_IsActive=Module["_b2Body_IsActive"]=asm["_b2Body_IsActive"];var _b2WheelJoint_SetSpringFrequencyHz=Module["_b2WheelJoint_SetSpringFrequencyHz"]=asm["_b2WheelJoint_SetSpringFrequencyHz"];var _b2Body_SetAwake=Module["_b2Body_SetAwake"]=asm["_b2Body_SetAwake"];var _b2RevoluteJoint_SetMaxMotorTorque=Module["_b2RevoluteJoint_SetMaxMotorTorque"]=asm["_b2RevoluteJoint_SetMaxMotorTorque"];var _b2WheelJoint_GetMotorTorque=Module["_b2WheelJoint_GetMotorTorque"]=asm["_b2WheelJoint_GetMotorTorque"];var _b2ParticleGroup_DestroyParticles=Module["_b2ParticleGroup_DestroyParticles"]=asm["_b2ParticleGroup_DestroyParticles"];var _b2PrismaticJoint_EnableLimit=Module["_b2PrismaticJoint_EnableLimit"]=asm["_b2PrismaticJoint_EnableLimit"];var _b2WheelJoint_GetJointSpeed=Module["_b2WheelJoint_GetJointSpeed"]=asm["_b2WheelJoint_GetJointSpeed"];var _b2Fixture_TestPoint=Module["_b2Fixture_TestPoint"]=asm["_b2Fixture_TestPoint"];var _b2Body_ApplyLinearImpulse=Module["_b2Body_ApplyLinearImpulse"]=asm["_b2Body_ApplyLinearImpulse"];var ___cxa_can_catch=Module["___cxa_can_catch"]=asm["___cxa_can_catch"];var _free=Module["_free"]=asm["_free"];var runPostSets=Module["runPostSets"]=asm["runPostSets"];var _b2ParticleSystem_CreateParticle=Module["_b2ParticleSystem_CreateParticle"]=asm["_b2ParticleSystem_CreateParticle"];var _b2Body_SetLinearVelocity=Module["_b2Body_SetLinearVelocity"]=asm["_b2Body_SetLinearVelocity"];var _b2PrismaticJoint_GetJointSpeed=Module["_b2PrismaticJoint_GetJointSpeed"]=asm["_b2PrismaticJoint_GetJointSpeed"];var _b2Body_IsBullet=Module["_b2Body_IsBullet"]=asm["_b2Body_IsBullet"];var _b2Body_SetSleepingAllowed=Module["_b2Body_SetSleepingAllowed"]=asm["_b2Body_SetSleepingAllowed"];var _b2PolygonShape_DestroyParticlesInShape_4=Module["_b2PolygonShape_DestroyParticlesInShape_4"]=asm["_b2PolygonShape_DestroyParticlesInShape_4"];var _b2WeldJointDef_Create=Module["_b2WeldJointDef_Create"]=asm["_b2WeldJointDef_Create"];var _b2Body_GetAngularVelocity=Module["_b2Body_GetAngularVelocity"]=asm["_b2Body_GetAngularVelocity"];var _b2Body_ApplyForceToCenter=Module["_b2Body_ApplyForceToCenter"]=asm["_b2Body_ApplyForceToCenter"];var _b2GearJoint_SetRatio=Module["_b2GearJoint_SetRatio"]=asm["_b2GearJoint_SetRatio"];var _b2MouseJoint_SetMaxForce=Module["_b2MouseJoint_SetMaxForce"]=asm["_b2MouseJoint_SetMaxForce"];var _b2PrismaticJoint_SetLimits=Module["_b2PrismaticJoint_SetLimits"]=asm["_b2PrismaticJoint_SetLimits"];var _b2Joint_GetCollideConnected=Module["_b2Joint_GetCollideConnected"]=asm["_b2Joint_GetCollideConnected"];var _b2DistanceJointDef_InitializeAndCreate=Module["_b2DistanceJointDef_InitializeAndCreate"]=asm["_b2DistanceJointDef_InitializeAndCreate"];var _b2MotorJoint_SetMaxTorque=Module["_b2MotorJoint_SetMaxTorque"]=asm["_b2MotorJoint_SetMaxTorque"];var _b2Body_ApplyForce=Module["_b2Body_ApplyForce"]=asm["_b2Body_ApplyForce"];var _b2MotorJoint_SetMaxForce=Module["_b2MotorJoint_SetMaxForce"]=asm["_b2MotorJoint_SetMaxForce"];var _b2RevoluteJoint_SetMotorSpeed=Module["_b2RevoluteJoint_SetMotorSpeed"]=asm["_b2RevoluteJoint_SetMotorSpeed"];var _b2PrismaticJoint_GetJointTranslation=Module["_b2PrismaticJoint_GetJointTranslation"]=asm["_b2PrismaticJoint_GetJointTranslation"];var ___cxa_is_pointer_type=Module["___cxa_is_pointer_type"]=asm["___cxa_is_pointer_type"];var _b2Body_SetActive=Module["_b2Body_SetActive"]=asm["_b2Body_SetActive"];var _b2Body_GetPosition=Module["_b2Body_GetPosition"]=asm["_b2Body_GetPosition"];var _b2PrismaticJoint_GetLocalAxisA=Module["_b2PrismaticJoint_GetLocalAxisA"]=asm["_b2PrismaticJoint_GetLocalAxisA"];var _b2World_CreateBody=Module["_b2World_CreateBody"]=asm["_b2World_CreateBody"];var _b2Body_GetLinearVelocity=Module["_b2Body_GetLinearVelocity"]=asm["_b2Body_GetLinearVelocity"];var _b2EdgeShape_CreateFixture=Module["_b2EdgeShape_CreateFixture"]=asm["_b2EdgeShape_CreateFixture"];var _b2ParticleSystem_SetGravityScale=Module["_b2ParticleSystem_SetGravityScale"]=asm["_b2ParticleSystem_SetGravityScale"];var _b2ParticleSystem_SetMaxParticleCount=Module["_b2ParticleSystem_SetMaxParticleCount"]=asm["_b2ParticleSystem_SetMaxParticleCount"];var _b2Body_SetMassData=Module["_b2Body_SetMassData"]=asm["_b2Body_SetMassData"];var _b2Body_GetAngularDamping=Module["_b2Body_GetAngularDamping"]=asm["_b2Body_GetAngularDamping"];var _b2ParticleSystem_GetColorBuffer=Module["_b2ParticleSystem_GetColorBuffer"]=asm["_b2ParticleSystem_GetColorBuffer"];var _b2PrismaticJointDef_Create=Module["_b2PrismaticJointDef_Create"]=asm["_b2PrismaticJointDef_Create"];var _b2DistanceJointDef_Create=Module["_b2DistanceJointDef_Create"]=asm["_b2DistanceJointDef_Create"];var _b2Joint_GetReactionTorque=Module["_b2Joint_GetReactionTorque"]=asm["_b2Joint_GetReactionTorque"];var _b2ParticleSystem_GetPositionBuffer=Module["_b2ParticleSystem_GetPositionBuffer"]=asm["_b2ParticleSystem_GetPositionBuffer"];var _b2CircleShape_DestroyParticlesInShape=Module["_b2CircleShape_DestroyParticlesInShape"]=asm["_b2CircleShape_DestroyParticlesInShape"];var _b2World_QueryAABB=Module["_b2World_QueryAABB"]=asm["_b2World_QueryAABB"];var _b2WeldJoint_SetDampingRatio=Module["_b2WeldJoint_SetDampingRatio"]=asm["_b2WeldJoint_SetDampingRatio"];var _b2PulleyJoint_GetGroundAnchorB=Module["_b2PulleyJoint_GetGroundAnchorB"]=asm["_b2PulleyJoint_GetGroundAnchorB"];var _b2PulleyJoint_GetGroundAnchorA=Module["_b2PulleyJoint_GetGroundAnchorA"]=asm["_b2PulleyJoint_GetGroundAnchorA"];var _b2Joint_GetAnchorB=Module["_b2Joint_GetAnchorB"]=asm["_b2Joint_GetAnchorB"];var _b2CircleShape_CreateParticleGroup=Module["_b2CircleShape_CreateParticleGroup"]=asm["_b2CircleShape_CreateParticleGroup"];var _b2Joint_GetAnchorA=Module["_b2Joint_GetAnchorA"]=asm["_b2Joint_GetAnchorA"];var _b2RevoluteJoint_SetLimits=Module["_b2RevoluteJoint_SetLimits"]=asm["_b2RevoluteJoint_SetLimits"];var _b2PrismaticJoint_SetMotorSpeed=Module["_b2PrismaticJoint_SetMotorSpeed"]=asm["_b2PrismaticJoint_SetMotorSpeed"];var _b2GearJointDef_Create=Module["_b2GearJointDef_Create"]=asm["_b2GearJointDef_Create"];var _b2PrismaticJoint_IsLimitEnabled=Module["_b2PrismaticJoint_IsLimitEnabled"]=asm["_b2PrismaticJoint_IsLimitEnabled"];var _b2DistanceJoint_SetDampingRatio=Module["_b2DistanceJoint_SetDampingRatio"]=asm["_b2DistanceJoint_SetDampingRatio"];var _b2Contact_GetWorldManifold=Module["_b2Contact_GetWorldManifold"]=asm["_b2Contact_GetWorldManifold"];var _b2Body_IsAwake=Module["_b2Body_IsAwake"]=asm["_b2Body_IsAwake"];var _b2FrictionJoint_SetMaxTorque=Module["_b2FrictionJoint_SetMaxTorque"]=asm["_b2FrictionJoint_SetMaxTorque"];var _b2ParticleGroup_ApplyLinearImpulse=Module["_b2ParticleGroup_ApplyLinearImpulse"]=asm["_b2ParticleGroup_ApplyLinearImpulse"];var _b2Body_SetBullet=Module["_b2Body_SetBullet"]=asm["_b2Body_SetBullet"];var _b2RevoluteJoint_GetJointSpeed=Module["_b2RevoluteJoint_GetJointSpeed"]=asm["_b2RevoluteJoint_GetJointSpeed"];var _b2PulleyJoint_GetCurrentLengthB=Module["_b2PulleyJoint_GetCurrentLengthB"]=asm["_b2PulleyJoint_GetCurrentLengthB"];var _b2PrismaticJointDef_InitializeAndCreate=Module["_b2PrismaticJointDef_InitializeAndCreate"]=asm["_b2PrismaticJointDef_InitializeAndCreate"];var _b2Joint_GetReactionForce=Module["_b2Joint_GetReactionForce"]=asm["_b2Joint_GetReactionForce"];var _b2MotorJointDef_Create=Module["_b2MotorJointDef_Create"]=asm["_b2MotorJointDef_Create"];var _b2World_DestroyBody=Module["_b2World_DestroyBody"]=asm["_b2World_DestroyBody"];var _b2RevoluteJointDef_Create=Module["_b2RevoluteJointDef_Create"]=asm["_b2RevoluteJointDef_Create"];var _b2WheelJoint_GetMotorSpeed=Module["_b2WheelJoint_GetMotorSpeed"]=asm["_b2WheelJoint_GetMotorSpeed"];var _b2Joint_IsActive=Module["_b2Joint_IsActive"]=asm["_b2Joint_IsActive"];var _b2ParticleGroup_GetParticleCount=Module["_b2ParticleGroup_GetParticleCount"]=asm["_b2ParticleGroup_GetParticleCount"];var _b2World_SetGravity=Module["_b2World_SetGravity"]=asm["_b2World_SetGravity"];var _b2WheelJoint_GetJointTranslation=Module["_b2WheelJoint_GetJointTranslation"]=asm["_b2WheelJoint_GetJointTranslation"];var _b2PrismaticJoint_EnableMotor=Module["_b2PrismaticJoint_EnableMotor"]=asm["_b2PrismaticJoint_EnableMotor"];var _b2PolygonShape_CreateParticleGroup_4=Module["_b2PolygonShape_CreateParticleGroup_4"]=asm["_b2PolygonShape_CreateParticleGroup_4"];var _b2PolygonShape_CreateFixture_8=Module["_b2PolygonShape_CreateFixture_8"]=asm["_b2PolygonShape_CreateFixture_8"];var _b2Body_SetGravityScale=Module["_b2Body_SetGravityScale"]=asm["_b2Body_SetGravityScale"];var _b2RopeJoint_GetLimitState=Module["_b2RopeJoint_GetLimitState"]=asm["_b2RopeJoint_GetLimitState"];var _b2Body_SetAngularVelocity=Module["_b2Body_SetAngularVelocity"]=asm["_b2Body_SetAngularVelocity"];var _b2RevoluteJointDef_InitializeAndCreate=Module["_b2RevoluteJointDef_InitializeAndCreate"]=asm["_b2RevoluteJointDef_InitializeAndCreate"];var _b2Body_IsSleepingAllowed=Module["_b2Body_IsSleepingAllowed"]=asm["_b2Body_IsSleepingAllowed"];var _b2Body_GetWorldPoint=Module["_b2Body_GetWorldPoint"]=asm["_b2Body_GetWorldPoint"];var _b2WheelJoint_IsMotorEnabled=Module["_b2WheelJoint_IsMotorEnabled"]=asm["_b2WheelJoint_IsMotorEnabled"];var _b2WheelJoint_SetMotorSpeed=Module["_b2WheelJoint_SetMotorSpeed"]=asm["_b2WheelJoint_SetMotorSpeed"];var _b2FrictionJointDef_InitializeAndCreate=Module["_b2FrictionJointDef_InitializeAndCreate"]=asm["_b2FrictionJointDef_InitializeAndCreate"];var _b2Body_GetLinearDamping=Module["_b2Body_GetLinearDamping"]=asm["_b2Body_GetLinearDamping"];var _b2Body_SetLinearDamping=Module["_b2Body_SetLinearDamping"]=asm["_b2Body_SetLinearDamping"];var _b2Body_GetWorldCenter=Module["_b2Body_GetWorldCenter"]=asm["_b2Body_GetWorldCenter"];var _b2ParticleSystem_SetDamping=Module["_b2ParticleSystem_SetDamping"]=asm["_b2ParticleSystem_SetDamping"];var _b2Body_SetType=Module["_b2Body_SetType"]=asm["_b2Body_SetType"];var _b2Body_SetTransform=Module["_b2Body_SetTransform"]=asm["_b2Body_SetTransform"];var _b2MotorJoint_SetLinearOffset=Module["_b2MotorJoint_SetLinearOffset"]=asm["_b2MotorJoint_SetLinearOffset"];var _b2WeldJoint_SetFrequency=Module["_b2WeldJoint_SetFrequency"]=asm["_b2WeldJoint_SetFrequency"];var _b2RevoluteJoint_GetJointAngle=Module["_b2RevoluteJoint_GetJointAngle"]=asm["_b2RevoluteJoint_GetJointAngle"];var _b2ParticleGroup_ApplyForce=Module["_b2ParticleGroup_ApplyForce"]=asm["_b2ParticleGroup_ApplyForce"];var _b2CircleShape_CreateFixture=Module["_b2CircleShape_CreateFixture"]=asm["_b2CircleShape_CreateFixture"];var _malloc=Module["_malloc"]=asm["_malloc"];var _b2Contact_GetManifold=Module["_b2Contact_GetManifold"]=asm["_b2Contact_GetManifold"];var _b2Fixture_Refilter=Module["_b2Fixture_Refilter"]=asm["_b2Fixture_Refilter"];var _b2ParticleSystem_GetVelocityBuffer=Module["_b2ParticleSystem_GetVelocityBuffer"]=asm["_b2ParticleSystem_GetVelocityBuffer"];var _b2ParticleSystem_GetParticleLifetime=Module["_b2ParticleSystem_GetParticleLifetime"]=asm["_b2ParticleSystem_GetParticleLifetime"];var _b2PulleyJoint_GetCurrentLengthA=Module["_b2PulleyJoint_GetCurrentLengthA"]=asm["_b2PulleyJoint_GetCurrentLengthA"];var _b2RevoluteJoint_IsLimitEnabled=Module["_b2RevoluteJoint_IsLimitEnabled"]=asm["_b2RevoluteJoint_IsLimitEnabled"];var _b2World_DestroyParticleSystem=Module["_b2World_DestroyParticleSystem"]=asm["_b2World_DestroyParticleSystem"];var _b2RevoluteJoint_EnableMotor=Module["_b2RevoluteJoint_EnableMotor"]=asm["_b2RevoluteJoint_EnableMotor"];var _b2Body_GetTransform=Module["_b2Body_GetTransform"]=asm["_b2Body_GetTransform"];var _i64Subtract=Module["_i64Subtract"]=asm["_i64Subtract"];var _b2Body_GetAngle=Module["_b2Body_GetAngle"]=asm["_b2Body_GetAngle"];var _b2WeldJointDef_InitializeAndCreate=Module["_b2WeldJointDef_InitializeAndCreate"]=asm["_b2WeldJointDef_InitializeAndCreate"];var _b2RevoluteJoint_IsMotorEnabled=Module["_b2RevoluteJoint_IsMotorEnabled"]=asm["_b2RevoluteJoint_IsMotorEnabled"];var _b2RevoluteJoint_GetMotorSpeed=Module["_b2RevoluteJoint_GetMotorSpeed"]=asm["_b2RevoluteJoint_GetMotorSpeed"];var _b2Body_GetType=Module["_b2Body_GetType"]=asm["_b2Body_GetType"];var _b2Manifold_GetPointCount=Module["_b2Manifold_GetPointCount"]=asm["_b2Manifold_GetPointCount"];var _bitshift64Shl=Module["_bitshift64Shl"]=asm["_bitshift64Shl"];var _b2ParticleSystem_SetDensity=Module["_b2ParticleSystem_SetDensity"]=asm["_b2ParticleSystem_SetDensity"];var _fflush=Module["_fflush"]=asm["_fflush"];var _b2PrismaticJoint_GetMotorForce=Module["_b2PrismaticJoint_GetMotorForce"]=asm["_b2PrismaticJoint_GetMotorForce"];var _b2Joint_GetBodyA=Module["_b2Joint_GetBodyA"]=asm["_b2Joint_GetBodyA"];var _b2PulleyJointDef_InitializeAndCreate=Module["_b2PulleyJointDef_InitializeAndCreate"]=asm["_b2PulleyJointDef_InitializeAndCreate"];var _b2Joint_GetBodyB=Module["_b2Joint_GetBodyB"]=asm["_b2Joint_GetBodyB"];var _b2ParticleSystem_GetParticleCount=Module["_b2ParticleSystem_GetParticleCount"]=asm["_b2ParticleSystem_GetParticleCount"];var _b2MouseJoint_SetTarget=Module["_b2MouseJoint_SetTarget"]=asm["_b2MouseJoint_SetTarget"];var _b2Body_ApplyAngularImpulse=Module["_b2Body_ApplyAngularImpulse"]=asm["_b2Body_ApplyAngularImpulse"];var _b2ChainShape_CreateFixture=Module["_b2ChainShape_CreateFixture"]=asm["_b2ChainShape_CreateFixture"];var _b2Body_SetAngularDamping=Module["_b2Body_SetAngularDamping"]=asm["_b2Body_SetAngularDamping"];var _b2World_DestroyJoint=Module["_b2World_DestroyJoint"]=asm["_b2World_DestroyJoint"];var _b2MotorJoint_SetAngularOffset=Module["_b2MotorJoint_SetAngularOffset"]=asm["_b2MotorJoint_SetAngularOffset"];var _b2World_Delete=Module["_b2World_Delete"]=asm["_b2World_Delete"];var _b2World_SetContactListener=Module["_b2World_SetContactListener"]=asm["_b2World_SetContactListener"];var _memset=Module["_memset"]=asm["_memset"];var _b2WheelJoint_SetSpringDampingRatio=Module["_b2WheelJoint_SetSpringDampingRatio"]=asm["_b2WheelJoint_SetSpringDampingRatio"];var _i64Add=Module["_i64Add"]=asm["_i64Add"];var _b2Body_GetMass=Module["_b2Body_GetMass"]=asm["_b2Body_GetMass"];var _b2MouseJointDef_Create=Module["_b2MouseJointDef_Create"]=asm["_b2MouseJointDef_Create"];var _b2ParticleGroup_GetBufferIndex=Module["_b2ParticleGroup_GetBufferIndex"]=asm["_b2ParticleGroup_GetBufferIndex"];var _b2WheelJointDef_InitializeAndCreate=Module["_b2WheelJointDef_InitializeAndCreate"]=asm["_b2WheelJointDef_InitializeAndCreate"];var _b2World_Step=Module["_b2World_Step"]=asm["_b2World_Step"];var _b2PulleyJointDef_Create=Module["_b2PulleyJointDef_Create"]=asm["_b2PulleyJointDef_Create"];var _b2Body_GetGravityScale=Module["_b2Body_GetGravityScale"]=asm["_b2Body_GetGravityScale"];var _b2WheelJoint_SetMaxMotorTorque=Module["_b2WheelJoint_SetMaxMotorTorque"]=asm["_b2WheelJoint_SetMaxMotorTorque"];var ___errno_location=Module["___errno_location"]=asm["___errno_location"];var _b2WheelJointDef_Create=Module["_b2WheelJointDef_Create"]=asm["_b2WheelJointDef_Create"];var _b2WheelJoint_EnableMotor=Module["_b2WheelJoint_EnableMotor"]=asm["_b2WheelJoint_EnableMotor"];var _b2Body_GetInertia=Module["_b2Body_GetInertia"]=asm["_b2Body_GetInertia"];var _memmove=Module["_memmove"]=asm["_memmove"];var _b2MouseJoint_SetDampingRatio=Module["_b2MouseJoint_SetDampingRatio"]=asm["_b2MouseJoint_SetDampingRatio"];var _b2ParticleSystem_SetParticleLifetime=Module["_b2ParticleSystem_SetParticleLifetime"]=asm["_b2ParticleSystem_SetParticleLifetime"];var _b2RevoluteJoint_GetMotorTorque=Module["_b2RevoluteJoint_GetMotorTorque"]=asm["_b2RevoluteJoint_GetMotorTorque"];var _b2WheelJoint_GetLocalAxisA=Module["_b2WheelJoint_GetLocalAxisA"]=asm["_b2WheelJoint_GetLocalAxisA"];var _b2Body_ApplyTorque=Module["_b2Body_ApplyTorque"]=asm["_b2Body_ApplyTorque"];var _boBody_IsFixedRotation=Module["_boBody_IsFixedRotation"]=asm["_boBody_IsFixedRotation"];var _b2FrictionJoint_SetMaxForce=Module["_b2FrictionJoint_SetMaxForce"]=asm["_b2FrictionJoint_SetMaxForce"];var dynCall_diiiiid=Module["dynCall_diiiiid"]=asm["dynCall_diiiiid"];var dynCall_ii=Module["dynCall_ii"]=asm["dynCall_ii"];var dynCall_viiiii=Module["dynCall_viiiii"]=asm["dynCall_viiiii"];var dynCall_did=Module["dynCall_did"]=asm["dynCall_did"];var dynCall_vi=Module["dynCall_vi"]=asm["dynCall_vi"];var dynCall_diiiid=Module["dynCall_diiiid"]=asm["dynCall_diiiid"];var dynCall_vii=Module["dynCall_vii"]=asm["dynCall_vii"];var dynCall_iiii=Module["dynCall_iiii"]=asm["dynCall_iiii"];var dynCall_viii=Module["dynCall_viii"]=asm["dynCall_viii"];var dynCall_v=Module["dynCall_v"]=asm["dynCall_v"];var dynCall_viid=Module["dynCall_viid"]=asm["dynCall_viid"];var dynCall_iiiii=Module["dynCall_iiiii"]=asm["dynCall_iiiii"];var dynCall_viiiiii=Module["dynCall_viiiiii"]=asm["dynCall_viiiiii"];var dynCall_iii=Module["dynCall_iii"]=asm["dynCall_iii"];var dynCall_iiiiii=Module["dynCall_iiiiii"]=asm["dynCall_iiiiii"];var dynCall_viiii=Module["dynCall_viiii"]=asm["dynCall_viiii"];Runtime.stackAlloc=asm["stackAlloc"];Runtime.stackSave=asm["stackSave"];Runtime.stackRestore=asm["stackRestore"];Runtime.establishStackSpace=asm["establishStackSpace"];Runtime.setTempRet0=asm["setTempRet0"];Runtime.getTempRet0=asm["getTempRet0"];function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}ExitStatus.prototype=new Error;ExitStatus.prototype.constructor=ExitStatus;var initialStackTop;var preloadStartTime=null;var calledMain=false;dependenciesFulfilled=function runCaller(){if(!Module["calledRun"])run();if(!Module["calledRun"])dependenciesFulfilled=runCaller};Module["callMain"]=Module.callMain=function callMain(args){assert(runDependencies==0,"cannot call main when async dependencies remain! (listen on __ATMAIN__)");assert(__ATPRERUN__.length==0,"cannot call main when preRun functions remain to be called");args=args||[];ensureInitRuntime();var argc=args.length+1;function pad(){for(var i=0;i<4-1;i++){argv.push(0)}}var argv=[allocate(intArrayFromString(Module["thisProgram"]),"i8",ALLOC_NORMAL)];pad();for(var i=0;i0){return}preRun();if(runDependencies>0)return;if(Module["calledRun"])return;function doRun(){if(Module["calledRun"])return;Module["calledRun"]=true;if(ABORT)return;ensureInitRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(Module["_main"]&&shouldRunNow)Module["callMain"](args);postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout((function(){setTimeout((function(){Module["setStatus"]("")}),1);doRun()}),1)}else{doRun()}}Module["run"]=Module.run=run;function exit(status,implicit){if(implicit&&Module["noExitRuntime"]){return}if(Module["noExitRuntime"]){}else{ABORT=true;EXITSTATUS=status;STACKTOP=initialStackTop;exitRuntime();if(Module["onExit"])Module["onExit"](status)}if(ENVIRONMENT_IS_NODE){process["stdout"]["once"]("drain",(function(){process["exit"](status)}));console.log(" ");setTimeout((function(){process["exit"](status)}),500)}else if(ENVIRONMENT_IS_SHELL&&typeof quit==="function"){quit(status)}throw new ExitStatus(status)}Module["exit"]=Module.exit=exit;var abortDecorators=[];function abort(what){if(what!==undefined){Module.print(what);Module.printErr(what);what=JSON.stringify(what)}else{what=""}ABORT=true;EXITSTATUS=1;var extra="\nIf this abort() is unexpected, build with -s ASSERTIONS=1 which can give more information.";var output="abort("+what+") at "+stackTrace()+extra;if(abortDecorators){abortDecorators.forEach((function(decorator){output=decorator(output,what)}))}throw output}Module["abort"]=Module.abort=abort;if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=true;if(Module["noInitialRun"]){shouldRunNow=false}run() diff --git a/liquidfun/Box2D/lfjs/liquidfun.js b/liquidfun/Box2D/lfjs/liquidfun.js index 5514432d4..b11eed36a 100644 --- a/liquidfun/Box2D/lfjs/liquidfun.js +++ b/liquidfun/Box2D/lfjs/liquidfun.js @@ -1,1154 +1,1457 @@ -var Module;if(!Module)Module=(typeof Module!=="undefined"?Module:null)||{};var moduleOverrides={};for(var key in Module)if(Module.hasOwnProperty(key))moduleOverrides[key]=Module[key];var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false; -if(Module["ENVIRONMENT"])if(Module["ENVIRONMENT"]==="WEB")ENVIRONMENT_IS_WEB=true;else if(Module["ENVIRONMENT"]==="WORKER")ENVIRONMENT_IS_WORKER=true;else if(Module["ENVIRONMENT"]==="NODE")ENVIRONMENT_IS_NODE=true;else if(Module["ENVIRONMENT"]==="SHELL")ENVIRONMENT_IS_SHELL=true;else throw new Error("The provided Module['ENVIRONMENT'] value is not valid. It must be one of: WEB|WORKER|NODE|SHELL.");else{ENVIRONMENT_IS_WEB=typeof window==="object";ENVIRONMENT_IS_WORKER=typeof importScripts==="function"; -ENVIRONMENT_IS_NODE=typeof process==="object"&&typeof require==="function"&&!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_WORKER;ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER} -if(ENVIRONMENT_IS_NODE){if(!Module["print"])Module["print"]=console.log;if(!Module["printErr"])Module["printErr"]=console.warn;var nodeFS;var nodePath;Module["read"]=function shell_read(filename,binary){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);var ret=nodeFS["readFileSync"](filename);return binary?ret:ret.toString()};Module["readBinary"]=function readBinary(filename){var ret=Module["read"](filename,true);if(!ret.buffer)ret=new Uint8Array(ret); -assert(ret.buffer);return ret};Module["load"]=function load(f){globalEval(read(f))};if(!Module["thisProgram"])if(process["argv"].length>1)Module["thisProgram"]=process["argv"][1].replace(/\\/g,"/");else Module["thisProgram"]="unknown-program";Module["arguments"]=process["argv"].slice(2);if(typeof module!=="undefined")module["exports"]=Module;process["on"]("uncaughtException",function(ex){if(!(ex instanceof ExitStatus))throw ex;});Module["inspect"]=function(){return"[Emscripten Module object]"}}else if(ENVIRONMENT_IS_SHELL){if(!Module["print"])Module["print"]= -print;if(typeof printErr!="undefined")Module["printErr"]=printErr;if(typeof read!="undefined")Module["read"]=read;else Module["read"]=function shell_read(){throw"no read() available";};Module["readBinary"]=function readBinary(f){if(typeof readbuffer==="function")return new Uint8Array(readbuffer(f));var data=read(f,"binary");assert(typeof data==="object");return data};if(typeof scriptArgs!="undefined")Module["arguments"]=scriptArgs;else if(typeof arguments!="undefined")Module["arguments"]=arguments; -if(typeof quit==="function")Module["quit"]=function(status,toThrow){quit(status)}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){Module["read"]=function shell_read(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER)Module["readBinary"]=function readBinary(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)};Module["readAsync"]=function readAsync(url, -onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function xhr_onload(){if(xhr.status==200||xhr.status==0&&xhr.response)onload(xhr.response);else onerror()};xhr.onerror=onerror;xhr.send(null)};if(typeof arguments!="undefined")Module["arguments"]=arguments;if(typeof console!=="undefined"){if(!Module["print"])Module["print"]=function shell_print(x){console.log(x)};if(!Module["printErr"])Module["printErr"]=function shell_printErr(x){console.warn(x)}}else{var TRY_USE_DUMP= -false;if(!Module["print"])Module["print"]=TRY_USE_DUMP&&typeof dump!=="undefined"?function(x){dump(x)}:function(x){}}if(ENVIRONMENT_IS_WORKER)Module["load"]=importScripts;if(typeof Module["setWindowTitle"]==="undefined")Module["setWindowTitle"]=function(title){document.title=title}}else throw"Unknown runtime environment. Where are we?";function globalEval(x){eval.call(null,x)}if(!Module["load"]&&Module["read"])Module["load"]=function load(f){globalEval(Module["read"](f))}; -if(!Module["print"])Module["print"]=function(){};if(!Module["printErr"])Module["printErr"]=Module["print"];if(!Module["arguments"])Module["arguments"]=[];if(!Module["thisProgram"])Module["thisProgram"]="./this.program";if(!Module["quit"])Module["quit"]=function(status,toThrow){throw toThrow;};Module.print=Module["print"];Module.printErr=Module["printErr"];Module["preRun"]=[];Module["postRun"]=[];for(var key in moduleOverrides)if(moduleOverrides.hasOwnProperty(key))Module[key]=moduleOverrides[key]; -moduleOverrides=undefined; -var Runtime={setTempRet0:function(value){tempRet0=value;return value},getTempRet0:function(){return tempRet0},stackSave:function(){return STACKTOP},stackRestore:function(stackTop){STACKTOP=stackTop},getNativeTypeSize:function(type){switch(type){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:{if(type[type.length-1]==="*")return Runtime.QUANTUM_SIZE;else if(type[0]==="i"){var bits=parseInt(type.substr(1)); -assert(bits%8===0);return bits/8}else return 0}}},getNativeFieldSize:function(type){return Math.max(Runtime.getNativeTypeSize(type),Runtime.QUANTUM_SIZE)},STACK_ALIGN:16,prepVararg:function(ptr,type){if(type==="double"||type==="i64"){if(ptr&7){assert((ptr&7)===4);ptr+=4}}else assert((ptr&3)===0);return ptr},getAlignSize:function(type,size,vararg){if(!vararg&&(type=="i64"||type=="double"))return 8;if(!type)return Math.min(size,8);return Math.min(size||(type?Runtime.getNativeFieldSize(type):0),Runtime.QUANTUM_SIZE)}, -dynCall:function(sig,ptr,args){if(args&&args.length)return Module["dynCall_"+sig].apply(null,[ptr].concat(args));else return Module["dynCall_"+sig].call(null,ptr)},functionPointers:[],addFunction:function(func){for(var i=0;i>2];var end=(ret+size+15|0)&-16;HEAP32[DYNAMICTOP_PTR>>2]=end;if(end>=TOTAL_MEMORY){var success=enlargeMemory();if(!success){HEAP32[DYNAMICTOP_PTR>>2]=ret;return 0}}return ret},alignMemory:function(size,quantum){var ret=size=Math.ceil(size/(quantum?quantum:16))*(quantum?quantum:16);return ret},makeBigInt:function(low,high,unsigned){var ret=unsigned?+(low>>>0)+ +(high>>>0)*+4294967296:+(low>>>0)+ +(high|0)*+4294967296; -return ret},GLOBAL_BASE:8,QUANTUM_SIZE:4,__dummy__:0};Module["Runtime"]=Runtime;var ABORT=0;var EXITSTATUS=0;function assert(condition,text){if(!condition)abort("Assertion failed: "+text)}function getCFunc(ident){var func=Module["_"+ident];if(!func)try{func=eval("_"+ident)}catch(e){}assert(func,"Cannot call unknown function "+ident+" (perhaps LLVM optimizations or closure removed it?)");return func}var cwrap,ccall; -(function(){var JSfuncs={"stackSave":function(){Runtime.stackSave()},"stackRestore":function(){Runtime.stackRestore()},"arrayToC":function(arr){var ret=Runtime.stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret},"stringToC":function(str){var ret=0;if(str!==null&&str!==undefined&&str!==0){var len=(str.length<<2)+1;ret=Runtime.stackAlloc(len);stringToUTF8(str,ret,len)}return ret}};var toC={"string":JSfuncs["stringToC"],"array":JSfuncs["arrayToC"]};ccall=function ccallFunc(ident,returnType, -argTypes,args,opts){var func=getCFunc(ident);var cArgs=[];var stack=0;if(args)for(var i=0;i1)Module["thisProgram"]=process["argv"][1].replace(/\\/g,"/");else Module["thisProgram"]="unknown-program";Module["arguments"]=process["argv"].slice(2);if(typeof module!=="undefined")module["exports"]= +Module;process["on"]("uncaughtException",function(ex){if(!(ex instanceof ExitStatus))throw ex;});Module["inspect"]=function(){return"[Emscripten Module object]"}}else if(ENVIRONMENT_IS_SHELL){if(!Module["print"])Module["print"]=print;if(typeof printErr!="undefined")Module["printErr"]=printErr;if(typeof read!="undefined")Module["read"]=read;else Module["read"]=function read(){throw"no read() available (jsc?)";};Module["readBinary"]=function readBinary(f){if(typeof readbuffer==="function")return new Uint8Array(readbuffer(f)); +var data=read(f,"binary");assert(typeof data==="object");return data};if(typeof scriptArgs!="undefined")Module["arguments"]=scriptArgs;else if(typeof arguments!="undefined")Module["arguments"]=arguments}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){Module["read"]=function read(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(typeof arguments!="undefined")Module["arguments"]=arguments;if(typeof console!=="undefined"){if(!Module["print"])Module["print"]= +function print(x){console.log(x)};if(!Module["printErr"])Module["printErr"]=function printErr(x){console.log(x)}}else{var TRY_USE_DUMP=false;if(!Module["print"])Module["print"]=TRY_USE_DUMP&&typeof dump!=="undefined"?function(x){dump(x)}:function(x){}}if(ENVIRONMENT_IS_WORKER)Module["load"]=importScripts;if(typeof Module["setWindowTitle"]==="undefined")Module["setWindowTitle"]=function(title){document.title=title}}else throw"Unknown runtime environment. Where are we?"; +function globalEval(x){eval.call(null,x)}if(!Module["load"]&&Module["read"])Module["load"]=function load(f){globalEval(Module["read"](f))};if(!Module["print"])Module["print"]=function(){};if(!Module["printErr"])Module["printErr"]=Module["print"];if(!Module["arguments"])Module["arguments"]=[];if(!Module["thisProgram"])Module["thisProgram"]="./this.program";Module.print=Module["print"];Module.printErr=Module["printErr"];Module["preRun"]=[];Module["postRun"]=[]; +for(var key in moduleOverrides)if(moduleOverrides.hasOwnProperty(key))Module[key]=moduleOverrides[key]; +var Runtime={setTempRet0:function(value){tempRet0=value},getTempRet0:function(){return tempRet0},stackSave:function(){return STACKTOP},stackRestore:function(stackTop){STACKTOP=stackTop},getNativeTypeSize:function(type){switch(type){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:{if(type[type.length-1]==="*")return Runtime.QUANTUM_SIZE;else if(type[0]==="i"){var bits=parseInt(type.substr(1));assert(bits% +8===0);return bits/8}else return 0}}},getNativeFieldSize:function(type){return Math.max(Runtime.getNativeTypeSize(type),Runtime.QUANTUM_SIZE)},STACK_ALIGN:16,prepVararg:function(ptr,type){if(type==="double"||type==="i64"){if(ptr&7){assert((ptr&7)===4);ptr+=4}}else assert((ptr&3)===0);return ptr},getAlignSize:function(type,size,vararg){if(!vararg&&(type=="i64"||type=="double"))return 8;if(!type)return Math.min(size,8);return Math.min(size||(type?Runtime.getNativeFieldSize(type):0),Runtime.QUANTUM_SIZE)}, +dynCall:function(sig,ptr,args){if(args&&args.length){if(!args.splice)args=Array.prototype.slice.call(args);args.splice(0,0,ptr);return Module["dynCall_"+sig].apply(null,args)}else return Module["dynCall_"+sig].call(null,ptr)},functionPointers:[],addFunction:function(func){for(var i=0;i=TOTAL_MEMORY){var success=enlargeMemory();if(!success){DYNAMICTOP=ret;return 0}}return ret},alignMemory:function(size,quantum){var ret=size=Math.ceil(size/(quantum?quantum:16))*(quantum?quantum:16);return ret},makeBigInt:function(low,high,unsigned){var ret=unsigned?+(low>>>0)+ +(high>>>0)*+4294967296:+(low>>>0)+ +(high|0)*+4294967296;return ret},GLOBAL_BASE:8,QUANTUM_SIZE:4,__dummy__:0};Module["Runtime"]=Runtime;var __THREW__=0;var ABORT=false;var EXITSTATUS=0;var undef=0; +var tempValue,tempInt,tempBigInt,tempInt2,tempBigInt2,tempPair,tempBigIntI,tempBigIntR,tempBigIntS,tempBigIntP,tempBigIntD,tempDouble,tempFloat;var tempI64,tempI64b;var tempRet0,tempRet1,tempRet2,tempRet3,tempRet4,tempRet5,tempRet6,tempRet7,tempRet8,tempRet9;function assert(condition,text){if(!condition)abort("Assertion failed: "+text)}var globalScope=this; +function getCFunc(ident){var func=Module["_"+ident];if(!func)try{func=eval("_"+ident)}catch(e){}assert(func,"Cannot call unknown function "+ident+" (perhaps LLVM optimizations or closure removed it?)");return func}var cwrap,ccall; +(function(){var JSfuncs={"stackSave":function(){Runtime.stackSave()},"stackRestore":function(){Runtime.stackRestore()},"arrayToC":function(arr){var ret=Runtime.stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret},"stringToC":function(str){var ret=0;if(str!==null&&str!==undefined&&str!==0){ret=Runtime.stackAlloc((str.length<<2)+1);writeStringToMemory(str,ret)}return ret}};var toC={"string":JSfuncs["stringToC"],"array":JSfuncs["arrayToC"]};ccall=function ccallFunc(ident,returnType,argTypes, +args,opts){var func=getCFunc(ident);var cArgs=[];var stack=0;if(args)for(var i=0;i>0]=value;break;case "i8":HEAP8[ptr>>0]=value;break;case "i16":HEAP16[ptr>>1]=value;break;case "i32":HEAP32[ptr>>2]=value;break;case "i64":tempI64=[value>>>0,(tempDouble=value,+Math_abs(tempDouble)>=+1?tempDouble>+0?(Math_min(+Math_floor(tempDouble/+4294967296),+4294967295)|0)>>>0:~~+Math_ceil((tempDouble-+(~~tempDouble>>>0))/+4294967296)>>>0:0)],HEAP32[ptr>>2]= tempI64[0],HEAP32[ptr+4>>2]=tempI64[1];break;case "float":HEAPF32[ptr>>2]=value;break;case "double":HEAPF64[ptr>>3]=value;break;default:abort("invalid type for setValue: "+type)}}Module["setValue"]=setValue; function getValue(ptr,type,noSafe){type=type||"i8";if(type.charAt(type.length-1)==="*")type="i32";switch(type){case "i1":return HEAP8[ptr>>0];case "i8":return HEAP8[ptr>>0];case "i16":return HEAP16[ptr>>1];case "i32":return HEAP32[ptr>>2];case "i64":return HEAP32[ptr>>2];case "float":return HEAPF32[ptr>>2];case "double":return HEAPF64[ptr>>3];default:abort("invalid type for setValue: "+type)}return null}Module["getValue"]=getValue;var ALLOC_NORMAL=0;var ALLOC_STACK=1;var ALLOC_STATIC=2; var ALLOC_DYNAMIC=3;var ALLOC_NONE=4;Module["ALLOC_NORMAL"]=ALLOC_NORMAL;Module["ALLOC_STACK"]=ALLOC_STACK;Module["ALLOC_STATIC"]=ALLOC_STATIC;Module["ALLOC_DYNAMIC"]=ALLOC_DYNAMIC;Module["ALLOC_NONE"]=ALLOC_NONE; -function allocate(slab,types,allocator,ptr){var zeroinit,size;if(typeof slab==="number"){zeroinit=true;size=slab}else{zeroinit=false;size=slab.length}var singleType=typeof types==="string"?types:null;var ret;if(allocator==ALLOC_NONE)ret=ptr;else ret=[typeof _malloc==="function"?_malloc:Runtime.staticAlloc,Runtime.stackAlloc,Runtime.staticAlloc,Runtime.dynamicAlloc][allocator===undefined?ALLOC_STATIC:allocator](Math.max(size,singleType?1:types.length));if(zeroinit){var ptr=ret,stop;assert((ret&3)== -0);stop=ret+(size&~3);for(;ptr>2]=0;stop=ret+size;while(ptr>0]=0;return ret}if(singleType==="i8"){if(slab.subarray||slab.slice)HEAPU8.set(slab,ret);else HEAPU8.set(new Uint8Array(slab),ret);return ret}var i=0,type,typeSize,previousType;while(i> +2]=0;stop=ret+size;while(ptr>0]=0;return ret}if(singleType==="i8"){if(slab.subarray||slab.slice)HEAPU8.set(slab,ret);else HEAPU8.set(new Uint8Array(slab),ret);return ret}var i=0,type,typeSize,previousType;while(i>0];hasUtf|=t;if(t==0&&!length)break;i++;if(length&&i==length)break}if(!length)length=i;var ret="";if(hasUtf<128){var MAX_CHUNK=1024;var curr;while(length>0){curr=String.fromCharCode.apply(String,HEAPU8.subarray(ptr,ptr+Math.min(length,MAX_CHUNK)));ret=ret?ret+curr:curr;ptr+=MAX_CHUNK;length-=MAX_CHUNK}return ret}return Module["UTF8ToString"](ptr)}Module["Pointer_stringify"]=Pointer_stringify; -function AsciiToString(ptr){var str="";while(1){var ch=HEAP8[ptr++>>0];if(!ch)return str;str+=String.fromCharCode(ch)}}Module["AsciiToString"]=AsciiToString;function stringToAscii(str,outPtr){return writeAsciiToMemory(str,outPtr,false)}Module["stringToAscii"]=stringToAscii;var UTF8Decoder=typeof TextDecoder!=="undefined"?new TextDecoder("utf8"):undefined; -function UTF8ArrayToString(u8Array,idx){var endPtr=idx;while(u8Array[endPtr])++endPtr;if(endPtr-idx>16&&u8Array.subarray&&UTF8Decoder)return UTF8Decoder.decode(u8Array.subarray(idx,endPtr));else{var u0,u1,u2,u3,u4,u5;var str="";while(1){u0=u8Array[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue}u1=u8Array[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}u2=u8Array[idx++]&63;if((u0&240)==224)u0=(u0&15)<<12|u1<<6|u2;else{u3=u8Array[idx++]&63; -if((u0&248)==240)u0=(u0&7)<<18|u1<<12|u2<<6|u3;else{u4=u8Array[idx++]&63;if((u0&252)==248)u0=(u0&3)<<24|u1<<18|u2<<12|u3<<6|u4;else{u5=u8Array[idx++]&63;u0=(u0&1)<<30|u1<<24|u2<<18|u3<<12|u4<<6|u5}}}if(u0<65536)str+=String.fromCharCode(u0);else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}}}Module["UTF8ArrayToString"]=UTF8ArrayToString;function UTF8ToString(ptr){return UTF8ArrayToString(HEAPU8,ptr)}Module["UTF8ToString"]=UTF8ToString; +function AsciiToString(ptr){var str="";while(1){var ch=HEAP8[ptr++>>0];if(!ch)return str;str+=String.fromCharCode(ch)}}Module["AsciiToString"]=AsciiToString;function stringToAscii(str,outPtr){return writeAsciiToMemory(str,outPtr,false)}Module["stringToAscii"]=stringToAscii; +function UTF8ArrayToString(u8Array,idx){var u0,u1,u2,u3,u4,u5;var str="";while(1){u0=u8Array[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue}u1=u8Array[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}u2=u8Array[idx++]&63;if((u0&240)==224)u0=(u0&15)<<12|u1<<6|u2;else{u3=u8Array[idx++]&63;if((u0&248)==240)u0=(u0&7)<<18|u1<<12|u2<<6|u3;else{u4=u8Array[idx++]&63;if((u0&252)==248)u0=(u0&3)<<24|u1<<18|u2<<12|u3<<6|u4;else{u5=u8Array[idx++]&63;u0= +(u0&1)<<30|u1<<24|u2<<18|u3<<12|u4<<6|u5}}}if(u0<65536)str+=String.fromCharCode(u0);else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}}Module["UTF8ArrayToString"]=UTF8ArrayToString;function UTF8ToString(ptr){return UTF8ArrayToString(HEAPU8,ptr)}Module["UTF8ToString"]=UTF8ToString; function stringToUTF8Array(str,outU8Array,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127){if(outIdx>=endIdx)break;outU8Array[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;outU8Array[outIdx++]=192|u>>6;outU8Array[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;outU8Array[outIdx++]= 224|u>>12;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}else if(u<=2097151){if(outIdx+3>=endIdx)break;outU8Array[outIdx++]=240|u>>18;outU8Array[outIdx++]=128|u>>12&63;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}else if(u<=67108863){if(outIdx+4>=endIdx)break;outU8Array[outIdx++]=248|u>>24;outU8Array[outIdx++]=128|u>>18&63;outU8Array[outIdx++]=128|u>>12&63;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}else{if(outIdx+5>=endIdx)break;outU8Array[outIdx++]= 252|u>>30;outU8Array[outIdx++]=128|u>>24&63;outU8Array[outIdx++]=128|u>>18&63;outU8Array[outIdx++]=128|u>>12&63;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}}outU8Array[outIdx]=0;return outIdx-startIdx}Module["stringToUTF8Array"]=stringToUTF8Array;function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}Module["stringToUTF8"]=stringToUTF8; -function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else if(u<=2097151)len+=4;else if(u<=67108863)len+=5;else len+=6}return len}Module["lengthBytesUTF8"]=lengthBytesUTF8;var UTF16Decoder=typeof TextDecoder!=="undefined"?new TextDecoder("utf-16le"):undefined; -function demangle(func){var __cxa_demangle_func=Module["___cxa_demangle"]||Module["__cxa_demangle"];if(__cxa_demangle_func){try{var s=func.substr(1);var len=lengthBytesUTF8(s)+1;var buf=_malloc(len);stringToUTF8(s,buf,len);var status=_malloc(4);var ret=__cxa_demangle_func(buf,0,0,status);if(getValue(status,"i32")===0&&ret)return Pointer_stringify(ret)}catch(e){}finally{if(buf)_free(buf);if(status)_free(status);if(ret)_free(ret)}return func}Runtime.warnOnce("warning: build with -s DEMANGLE_SUPPORT=1 to link in libcxxabi demangling"); -return func}function demangleAll(text){var regex=/__Z[\w\d_]+/g;return text.replace(regex,function(x){var y=demangle(x);return x===y?x:x+" ["+y+"]"})}function jsStackTrace(){var err=new Error;if(!err.stack){try{throw new Error(0);}catch(e){err=e}if(!err.stack)return"(no stack trace available)"}return err.stack.toString()}function stackTrace(){var js=jsStackTrace();if(Module["extraStackTrace"])js+="\n"+Module["extraStackTrace"]();return demangleAll(js)}Module["stackTrace"]=stackTrace; -var HEAP,buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferViews(){Module["HEAP8"]=HEAP8=new Int8Array(buffer);Module["HEAP16"]=HEAP16=new Int16Array(buffer);Module["HEAP32"]=HEAP32=new Int32Array(buffer);Module["HEAPU8"]=HEAPU8=new Uint8Array(buffer);Module["HEAPU16"]=HEAPU16=new Uint16Array(buffer);Module["HEAPU32"]=HEAPU32=new Uint32Array(buffer);Module["HEAPF32"]=HEAPF32=new Float32Array(buffer);Module["HEAPF64"]=HEAPF64=new Float64Array(buffer)} -var STATIC_BASE,STATICTOP,staticSealed;var STACK_BASE,STACKTOP,STACK_MAX;var DYNAMIC_BASE,DYNAMICTOP_PTR;STATIC_BASE=STATICTOP=STACK_BASE=STACKTOP=STACK_MAX=DYNAMIC_BASE=DYNAMICTOP_PTR=0;staticSealed=false; -function abortOnCannotGrowMemory(){abort("Cannot enlarge memory arrays. Either (1) compile with -s TOTAL_MEMORY=X with X higher than the current value "+TOTAL_MEMORY+", (2) compile with -s ALLOW_MEMORY_GROWTH=1 which allows increasing the size at runtime but prevents some optimizations, (3) set Module.TOTAL_MEMORY to a higher value before the program runs, or (4) if you want malloc to return NULL (0) instead of this abort, compile with -s ABORTING_MALLOC=0 ")} -function enlargeMemory(){abortOnCannotGrowMemory()}var TOTAL_STACK=Module["TOTAL_STACK"]||5242880;var TOTAL_MEMORY=Module["TOTAL_MEMORY"]||33554432;if(TOTAL_MEMORY0){var callback=callbacks.shift();if(typeof callback=="function"){callback();continue}var func=callback.func;if(typeof func==="number")if(callback.arg===undefined)Module["dynCall_v"](func);else Module["dynCall_vi"](func,callback.arg);else func(callback.arg===undefined?null:callback.arg)}}var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false; +function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else if(u<=2097151)len+=4;else if(u<=67108863)len+=5;else len+=6}return len}Module["lengthBytesUTF8"]=lengthBytesUTF8;function UTF16ToString(ptr){var i=0;var str="";while(1){var codeUnit=HEAP16[ptr+i*2>>1];if(codeUnit==0)return str;++i;str+=String.fromCharCode(codeUnit)}} +Module["UTF16ToString"]=UTF16ToString;function stringToUTF16(str,outPtr,maxBytesToWrite){if(maxBytesToWrite===undefined)maxBytesToWrite=2147483647;if(maxBytesToWrite<2)return 0;maxBytesToWrite-=2;var startPtr=outPtr;var numCharsToWrite=maxBytesToWrite>1]=codeUnit;outPtr+=2}HEAP16[outPtr>>1]=0;return outPtr-startPtr}Module["stringToUTF16"]=stringToUTF16; +function lengthBytesUTF16(str){return str.length*2}Module["lengthBytesUTF16"]=lengthBytesUTF16;function UTF32ToString(ptr){var i=0;var str="";while(1){var utf32=HEAP32[ptr+i*4>>2];if(utf32==0)return str;++i;if(utf32>=65536){var ch=utf32-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}else str+=String.fromCharCode(utf32)}}Module["UTF32ToString"]=UTF32ToString; +function stringToUTF32(str,outPtr,maxBytesToWrite){if(maxBytesToWrite===undefined)maxBytesToWrite=2147483647;if(maxBytesToWrite<4)return 0;var startPtr=outPtr;var endPtr=startPtr+maxBytesToWrite-4;for(var i=0;i=55296&&codeUnit<=57343){var trailSurrogate=str.charCodeAt(++i);codeUnit=65536+((codeUnit&1023)<<10)|trailSurrogate&1023}HEAP32[outPtr>>2]=codeUnit;outPtr+=4;if(outPtr+4>endPtr)break}HEAP32[outPtr>>2]=0;return outPtr-startPtr} +Module["stringToUTF32"]=stringToUTF32;function lengthBytesUTF32(str){var len=0;for(var i=0;i=55296&&codeUnit<=57343)++i;len+=4}return len}Module["lengthBytesUTF32"]=lengthBytesUTF32; +function demangle(func){var hasLibcxxabi=!!Module["___cxa_demangle"];if(hasLibcxxabi)try{var buf=_malloc(func.length);writeStringToMemory(func.substr(1),buf);var status=_malloc(4);var ret=Module["___cxa_demangle"](buf,0,0,status);if(getValue(status,"i32")===0&&ret)return Pointer_stringify(ret)}catch(e){}finally{if(buf)_free(buf);if(status)_free(status);if(ret)_free(ret)}var i=3;var basicTypes={"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":"..."};var subs=[];var first=true;function dump(x){if(x)Module.print(x);Module.print(func);var pre="";for(var a=0;a"}else ret=name;paramLoop:while(i0){var c=func[i++];if(c in basicTypes)list.push(basicTypes[c]);else switch(c){case "P":list.push(parse(true,1,true)[0]+"*");break;case "R":list.push(parse(true,1,true)[0]+"&");break; +case "L":{i++;var end=func.indexOf("E",i);var size=end-i;list.push(func.substr(i,size));i+=size+2;break}case "A":{var size=parseInt(func.substr(i));i+=size.toString().length;if(func[i]!=="_")throw"?";i++;list.push(parse(true,1,true)[0]+" ["+size+"]");break}case "E":break paramLoop;default:ret+="?"+c;break paramLoop}}if(!allowVoid&&list.length===1&&list[0]==="void")list=[];if(rawList){if(ret)list.push(ret+"?");return list}else return ret+flushList()}var parsed=func;try{if(func=="Object._main"||func== +"_main")return"main()";if(typeof func==="number")func=Pointer_stringify(func);if(func[0]!=="_")return func;if(func[1]!=="_")return func;if(func[2]!=="Z")return func;switch(func[3]){case "n":return"operator new()";case "d":return"operator delete()"}parsed=parse()}catch(e){parsed+="?"}if(parsed.indexOf("?")>=0&&!hasLibcxxabi)Runtime.warnOnce("warning: a problem occurred in builtin C++ name demangling; build with -s DEMANGLE_SUPPORT=1 to link in libcxxabi demangling");return parsed} +function demangleAll(text){return text.replace(/__Z[\w\d_]+/g,function(x){var y=demangle(x);return x===y?x:x+" ["+y+"]"})}function jsStackTrace(){var err=new Error;if(!err.stack){try{throw new Error(0);}catch(e){err=e}if(!err.stack)return"(no stack trace available)"}return err.stack.toString()}function stackTrace(){return demangleAll(jsStackTrace())}Module["stackTrace"]=stackTrace;var PAGE_SIZE=4096;function alignMemoryPage(x){if(x%4096>0)x+=4096-x%4096;return x}var HEAP; +var HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;var STATIC_BASE=0,STATICTOP=0,staticSealed=false;var STACK_BASE=0,STACKTOP=0,STACK_MAX=0;var DYNAMIC_BASE=0,DYNAMICTOP=0; +function abortOnCannotGrowMemory(){abort("Cannot enlarge memory arrays. Either (1) compile with -s TOTAL_MEMORY=X with X higher than the current value "+TOTAL_MEMORY+", (2) compile with -s ALLOW_MEMORY_GROWTH=1 which adjusts the size at runtime but prevents some optimizations, (3) set Module.TOTAL_MEMORY to a higher value before the program runs, or if you want malloc to return NULL (0) instead of this abort, compile with -s ABORTING_MALLOC=0 ")} +function enlargeMemory(){abortOnCannotGrowMemory()}var TOTAL_STACK=Module["TOTAL_STACK"]||5242880;var TOTAL_MEMORY=Module["TOTAL_MEMORY"]||33554432;var totalMemory=64*1024;while(totalMemory0){var callback=callbacks.shift();if(typeof callback=="function"){callback();continue}var func=callback.func;if(typeof func==="number")if(callback.arg===undefined)Runtime.dynCall("v",func);else Runtime.dynCall("vi",func,[callback.arg]);else func(callback.arg===undefined?null:callback.arg)}}var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false; function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length)addOnPreRun(Module["preRun"].shift())}callRuntimeCallbacks(__ATPRERUN__)}function ensureInitRuntime(){if(runtimeInitialized)return;runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){callRuntimeCallbacks(__ATEXIT__);runtimeExited=true} function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length)addOnPostRun(Module["postRun"].shift())}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}Module["addOnPreRun"]=addOnPreRun;function addOnInit(cb){__ATINIT__.unshift(cb)}Module["addOnInit"]=addOnInit;function addOnPreMain(cb){__ATMAIN__.unshift(cb)}Module["addOnPreMain"]=addOnPreMain; function addOnExit(cb){__ATEXIT__.unshift(cb)}Module["addOnExit"]=addOnExit;function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}Module["addOnPostRun"]=addOnPostRun;function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}Module["intArrayFromString"]=intArrayFromString; -function intArrayToString(array){var ret=[];for(var i=0;i255)chr&=255;ret.push(String.fromCharCode(chr))}return ret.join("")}Module["intArrayToString"]=intArrayToString; -function writeStringToMemory(string,buffer,dontAddNull){Runtime.warnOnce("writeStringToMemory is deprecated and should not be called! Use stringToUTF8() instead!");var lastChar,end;if(dontAddNull){end=buffer+lengthBytesUTF8(string);lastChar=HEAP8[end]}stringToUTF8(string,buffer,Infinity);if(dontAddNull)HEAP8[end]=lastChar}Module["writeStringToMemory"]=writeStringToMemory;function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}Module["writeArrayToMemory"]=writeArrayToMemory; -function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i>0]=str.charCodeAt(i);if(!dontAddNull)HEAP8[buffer>>0]=0}Module["writeAsciiToMemory"]=writeAsciiToMemory;if(!Math["imul"]||Math["imul"](4294967295,5)!==-5)Math["imul"]=function imul(a,b){var ah=a>>>16;var al=a&65535;var bh=b>>>16;var bl=b&65535;return al*bl+(ah*bl+al*bh<<16)|0};Math.imul=Math["imul"];if(!Math["clz32"])Math["clz32"]=function(x){x=x>>>0;for(var i=0;i<32;i++)if(x&1<<31-i)return i;return 32}; -Math.clz32=Math["clz32"];if(!Math["trunc"])Math["trunc"]=function(x){return x<0?Math.ceil(x):Math.floor(x)};Math.trunc=Math["trunc"];var Math_abs=Math.abs;var Math_cos=Math.cos;var Math_sin=Math.sin;var Math_tan=Math.tan;var Math_acos=Math.acos;var Math_asin=Math.asin;var Math_atan=Math.atan;var Math_atan2=Math.atan2;var Math_exp=Math.exp;var Math_log=Math.log;var Math_sqrt=Math.sqrt;var Math_ceil=Math.ceil;var Math_floor=Math.floor;var Math_pow=Math.pow;var Math_imul=Math.imul;var Math_fround=Math.fround; -var Math_round=Math.round;var Math_min=Math.min;var Math_clz32=Math.clz32;var Math_trunc=Math.trunc;var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function addRunDependency(id){runDependencies++;if(Module["monitorRunDependencies"])Module["monitorRunDependencies"](runDependencies)}Module["addRunDependency"]=addRunDependency; +function intArrayToString(array){var ret=[];for(var i=0;i255)chr&=255;ret.push(String.fromCharCode(chr))}return ret.join("")}Module["intArrayToString"]=intArrayToString;function writeStringToMemory(string,buffer,dontAddNull){var array=intArrayFromString(string,dontAddNull);var i=0;while(i>0]=chr;i=i+1}}Module["writeStringToMemory"]=writeStringToMemory; +function writeArrayToMemory(array,buffer){for(var i=0;i>0]=array[i]}Module["writeArrayToMemory"]=writeArrayToMemory;function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i>0]=str.charCodeAt(i);if(!dontAddNull)HEAP8[buffer>>0]=0}Module["writeAsciiToMemory"]=writeAsciiToMemory;function unSign(value,bits,ignore){if(value>=0)return value;return bits<=32?2*Math.abs(1<=half&&(bits<=32||value>half))value=-2*half+value;return value}if(!Math["imul"]||Math["imul"](4294967295,5)!==-5)Math["imul"]=function imul(a,b){var ah=a>>>16;var al=a&65535;var bh=b>>>16;var bl=b&65535;return al*bl+(ah*bl+al*bh<<16)|0};Math.imul=Math["imul"];if(!Math["clz32"])Math["clz32"]=function(x){x=x>>>0;for(var i=0;i<32;i++)if(x&1<<31-i)return i;return 32}; +Math.clz32=Math["clz32"];var Math_abs=Math.abs;var Math_cos=Math.cos;var Math_sin=Math.sin;var Math_tan=Math.tan;var Math_acos=Math.acos;var Math_asin=Math.asin;var Math_atan=Math.atan;var Math_atan2=Math.atan2;var Math_exp=Math.exp;var Math_log=Math.log;var Math_sqrt=Math.sqrt;var Math_ceil=Math.ceil;var Math_floor=Math.floor;var Math_pow=Math.pow;var Math_imul=Math.imul;var Math_fround=Math.fround;var Math_min=Math.min;var Math_clz32=Math.clz32;var runDependencies=0;var runDependencyWatcher=null; +var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){runDependencies++;if(Module["monitorRunDependencies"])Module["monitorRunDependencies"](runDependencies)}Module["addRunDependency"]=addRunDependency; function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"])Module["monitorRunDependencies"](runDependencies);if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["removeRunDependency"]=removeRunDependency;Module["preloadedImages"]={};Module["preloadedAudios"]={};var memoryInitializer=null; -var ASM_CONSTS=[];STATIC_BASE=Runtime.GLOBAL_BASE;STATICTOP=STATIC_BASE+11008;__ATINIT__.push({func:function(){__GLOBAL__sub_I_jsBindings_cpp()}});memoryInitializer="lf_core.js.mem";var tempDoublePtr=STATICTOP;STATICTOP+=16;function _b2WorldRayCastCallback(fixturePtr,pointX,pointY,normalX,normalY,fraction){return b2World.RayCast(fixturePtr,pointX,pointY,normalX,normalY,fraction)}function _abort(){Module["abort"]()} -function _b2WorldBeginContactBody(contactPtr){b2World.BeginContactBody(contactPtr)}function _pthread_once(ptr,func){if(!_pthread_once.seen)_pthread_once.seen={};if(ptr in _pthread_once.seen)return;Module["dynCall_v"](func);_pthread_once.seen[ptr]=1}function ___lock(){}function ___unlock(){}var PTHREAD_SPECIFIC={};function _pthread_getspecific(key){return PTHREAD_SPECIFIC[key]||0}var PTHREAD_SPECIFIC_NEXT_KEY=1; +var ASM_CONSTS=[];STATIC_BASE=8;STATICTOP=STATIC_BASE+10768;__ATINIT__.push({func:function(){__GLOBAL__sub_I_jsBindings_cpp()}}); +allocate([212,9,0,0,73,13,0,0,252,9,0,0,48,13,0,0,8,0,0,0,0,0,0,0,212,9,0,0,113,13,0,0,252,9,0,0,93,13,0,0,32,0,0,0,0,0,0,0,212,9,0,0,149,13,0,0,252,9,0,0,131,13,0,0,56,0,0,0,0,0,0,0,252,9,0,0,169,13,0,0,96,0,0,0,0,0,0,0,212,9,0,0,183,13,0,0,252,9,0,0,192,13,0,0,96,0,0,0,0,0,0,0,252,9,0,0,209,13,0,0,96,0,0,0,0,0,0,0,252,9,0,0,225,13,0,0,96,0,0,0,0,0,0,0,212,9,0,0,240,13,0,0,252,9,0,0,2,14,0,0,176,0,0,0,0,0,0,0,212,9,0,0,17,14,0,0,252,9,0,0,65,14,0,0,176,0,0,0,0,0,0,0,252,9,0,0,210,14,0,0,176,0,0, +0,0,0,0,0,252,9,0,0,22,15,0,0,176,0,0,0,0,0,0,0,252,9,0,0,119,15,0,0,176,0,0,0,0,0,0,0,252,9,0,0,155,15,0,0,176,0,0,0,0,0,0,0,252,9,0,0,245,15,0,0,176,0,0,0,0,0,0,0,252,9,0,0,134,16,0,0,176,0,0,0,0,0,0,0,252,9,0,0,244,16,0,0,176,0,0,0,0,0,0,0,252,9,0,0,150,17,0,0,176,0,0,0,0,0,0,0,252,9,0,0,121,18,0,0,176,0,0,0,0,0,0,0,252,9,0,0,22,20,0,0,104,1,0,0,0,0,0,0,212,9,0,0,49,20,0,0,252,9,0,0,61,20,0,0,104,1,0,0,0,0,0,0,252,9,0,0,89,20,0,0,104,1,0,0,0,0,0,0,252,9,0,0,107,20,0,0,104,1,0,0,0,0,0,0,252,9,0, +0,132,20,0,0,104,1,0,0,0,0,0,0,252,9,0,0,158,20,0,0,104,1,0,0,0,0,0,0,252,9,0,0,184,20,0,0,104,1,0,0,0,0,0,0,252,9,0,0,203,20,0,0,224,1,0,0,0,0,0,0,252,9,0,0,24,21,0,0,32,0,0,0,0,0,0,0,252,9,0,0,57,21,0,0,224,1,0,0,0,0,0,0,252,9,0,0,129,21,0,0,16,2,0,0,0,0,0,0,212,9,0,0,212,21,0,0,252,9,0,0,251,21,0,0,16,2,0,0,0,0,0,0,252,9,0,0,85,22,0,0,56,2,0,0,0,0,0,0,212,9,0,0,178,22,0,0,252,9,0,0,213,22,0,0,96,0,0,0,0,0,0,0,252,9,0,0,81,23,0,0,32,0,0,0,0,0,0,0,252,9,0,0,79,26,0,0,112,2,0,0,0,0,0,0,212,9,0,0, +92,26,0,0,212,9,0,0,105,26,0,0,252,9,0,0,118,26,0,0,120,2,0,0,0,0,0,0,252,9,0,0,151,26,0,0,128,2,0,0,0,0,0,0,252,9,0,0,221,26,0,0,128,2,0,0,0,0,0,0,252,9,0,0,185,26,0,0,160,2,0,0,0,0,0,0,252,9,0,0,255,26,0,0,144,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,0,0,1,0,0,0,2,0,0,0,1,0,0,0,2,0,0,0,1,0,0,0,1,0,0,0,2,0,0,0,2,0,0,0,3,0,0,0,4,0,0,0,0,0,0,0,40,0,0,0,3,0,0,0,4,0,0,0,1,0,0,0,1,0,0,0,2,0,0,0,0,0,0,0,64,0,0,0,5,0,0,0,6,0,0,0, +1,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,80,0,0,0,7,0,0,0,8,0,0,0,4,0,0,0,1,0,0,0,2,0,0,0,1,0,0,0,1,0,0,0,3,0,0,0,1,0,0,0,0,0,0,0,104,0,0,0,7,0,0,0,9,0,0,0,5,0,0,0,2,0,0,0,3,0,0,0,2,0,0,0,2,0,0,0,4,0,0,0,2,0,0,0,0,0,0,0,120,0,0,0,7,0,0,0,10,0,0,0,6,0,0,0,3,0,0,0,4,0,0,0,3,0,0,0,3,0,0,0,5,0,0,0,3,0,0,0,0,0,0,0,136,0,0,0,11,0,0,0,12,0,0,0,7,0,0,0,4,0,0,0,5,0,0,0,4,0,0,0,4,0,0,0,6,0,0,0,4,0,0,0,0,0,0,0,152,0,0,0,13,0,0,0,14,0,0,0, +6,0,0,0,1,0,0,0,2,0,0,0,0,0,0,0,160,0,0,0,3,0,0,0,4,0,0,0,5,0,0,0,1,0,0,0,15,0,0,0,5,0,0,0,16,0,0,0,17,0,0,0,6,0,0,0,7,0,0,0,8,0,0,0,0,0,0,0,184,0,0,0,8,0,0,0,9,0,0,0,6,0,0,0,2,0,0,0,18,0,0,0,10,0,0,0,16,0,0,0,19,0,0,0,11,0,0,0,12,0,0,0,9,0,0,0,0,0,0,0,200,0,0,0,13,0,0,0,14,0,0,0,7,0,0,0,3,0,0,0,20,0,0,0,10,0,0,0,16,0,0,0,21,0,0,0,15,0,0,0,16,0,0,0,10,0,0,0,0,0,0,0,216,0,0,0,17,0,0,0,18,0,0,0,8,0,0,0,4,0,0,0,22,0,0,0,10,0,0,0,16,0,0,0,23,0,0,0,19,0,0,0,20,0,0,0,11,0,0,0,0,0,0,0,232,0,0,0,21,0,0,0, +22,0,0,0,9,0,0,0,5,0,0,0,24,0,0,0,10,0,0,0,16,0,0,0,25,0,0,0,23,0,0,0,24,0,0,0,12,0,0,0,0,0,0,0,248,0,0,0,25,0,0,0,26,0,0,0,10,0,0,0,6,0,0,0,26,0,0,0,10,0,0,0,16,0,0,0,27,0,0,0,27,0,0,0,28,0,0,0,13,0,0,0,0,0,0,0,8,1,0,0,29,0,0,0,30,0,0,0,11,0,0,0,7,0,0,0,28,0,0,0,10,0,0,0,16,0,0,0,29,0,0,0,31,0,0,0,32,0,0,0,14,0,0,0,0,0,0,0,24,1,0,0,33,0,0,0,34,0,0,0,12,0,0,0,8,0,0,0,30,0,0,0,10,0,0,0,16,0,0,0,31,0,0,0,35,0,0,0,36,0,0,0,15,0,0,0,0,0,0,0,176,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,32,0,0,0,10,0,0,0, +16,0,0,0,33,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,40,1,0,0,37,0,0,0,38,0,0,0,13,0,0,0,9,0,0,0,34,0,0,0,10,0,0,0,16,0,0,0,35,0,0,0,39,0,0,0,40,0,0,0,16,0,0,0,0,0,0,0,56,1,0,0,41,0,0,0,42,0,0,0,14,0,0,0,10,0,0,0,36,0,0,0,10,0,0,0,16,0,0,0,37,0,0,0,43,0,0,0,44,0,0,0,17,0,0,0,0,0,0,0,72,1,0,0,45,0,0,0,46,0,0,0,15,0,0,0,11,0,0,0,38,0,0,0,47,0,0,0,16,0,0,0,39,0,0,0,48,0,0,0,49,0,0,0,18,0,0,0,0,0,0,0,88,1,0,0,7,0,0,0,40,0,0,0,41,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,104,1,0,0,1,0,0,0,40,0,0,0,42,0,0,0,0,0,0,0,112,1,0,0,8,0,0,0,40,0,0,0,43,0,0,0,0,0,0,0,128,1,0,0,9,0,0,0,40,0,0,0,44,0,0,0,0,0,0,0,144,1,0,0,10,0,0,0,40,0,0,0,45,0,0,0,0,0,0,0,160, +1,0,0,11,0,0,0,40,0,0,0,46,0,0,0,0,0,0,0,176,1,0,0,12,0,0,0,40,0,0,0,47,0,0,0,0,0,0,0,192,1,0,0,13,0,0,0,40,0,0,0,48,0,0,0,68,4,0,0,56,8,0,0,0,0,0,0,8,0,0,0,1,0,0,0,49,0,0,0,50,0,0,0,51,0,0,0,1,0,0,0,1,0,0,0,2,0,0,0,2,0,0,0,5,0,0,0,6,0,0,0,0,0,0,0,80,2,0,0,3,0,0,0,50,0,0,0,19,0,0,0,7,0,0,0,2,0,0,0,0,0,0,0,64,2,0,0,7,0,0,0,51,0,0,0,20,0,0,0,5,0,0,0,8,0,0,0,5,0,0,0,5,0,0,0,14,0,0,0,16,0,0,0,0,0,0,0,16,2,0,0,52,0,0,0,53,0,0,0,21,0,0,0,9,0,0,0,3,0,0,0,0,0,0,0,40,2,0,0,54,0,0,0,55,0,0,0,15,0,0,0,0,0,0, +0,24,2,0,0,52,0,0,0,56,0,0,0,21,0,0,0,10,0,0,0,4,0,0,0,0,0,0,0,0,2,0,0,52,0,0,0,57,0,0,0,22,0,0,0,9,0,0,0,3,0,0,0,0,0,0,0,240,1,0,0,3,0,0,0,58,0,0,0,23,0,0,0,1,0,0,0,24,0,0,0,16,0,0,0,0,0,0,0,208,1,0,0,3,0,0,0,59,0,0,0,23,0,0,0,1,0,0,0,24,0,0,0,17,0,0,0,16,0,0,0,32,0,0,0,64,0,0,0,96,0,0,0,128,0,0,0,160,0,0,0,192,0,0,0,224,0,0,0,0,1,0,0,64,1,0,0,128,1,0,0,192,1,0,0,0,2,0,0,128,2,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,63,26,0,0,25,0,0,0,52,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,96,2,0,0,60,0,0, +0,61,0,0,0,6,0,0,0,0,0,0,0,0,0,0,0,144,2,0,0,62,0,0,0,63,0,0,0,64,0,0,0,65,0,0,0,11,0,0,0,6,0,0,0,1,0,0,0,18,0,0,0,0,0,0,0,192,2,0,0,62,0,0,0,66,0,0,0,64,0,0,0,65,0,0,0,11,0,0,0,7,0,0,0,2,0,0,0,19,0,0,0,0,0,0,0,0,0,0,0,124,28,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,96,10,0,0,208,10,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,13,0,0,0,249,39,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,14,0,0,0,13,0,0,0,241,35,0,0,0,4,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,50,50,98,50,87,111,114,108,100,67,111,110,116,97,99,116,76,105,115,116,101,110,101,114,0,49,55,98,50,67,111,110,116,97,99,116,76,105,115,116,101,110,101,114,0,49,55,81,117,101,114,121,65,65,66, +66,67,97,108,108,98,97,99,107,0,49,53,98,50,81,117,101,114,121,67,97,108,108,98,97,99,107,0,49,53,82,97,121,67,97,115,116,67,97,108,108,98,97,99,107,0,49,55,98,50,82,97,121,67,97,115,116,67,97,108,108,98,97,99,107,0,49,49,98,50,69,100,103,101,83,104,97,112,101,0,55,98,50,83,104,97,112,101,0,49,52,98,50,80,111,108,121,103,111,110,83,104,97,112,101,0,49,51,98,50,67,105,114,99,108,101,83,104,97,112,101,0,49,50,98,50,67,104,97,105,110,83,104,97,112,101,0,49,53,98,50,67,111,110,116,97,99,116,70,105,108, +116,101,114,0,49,50,98,50,77,111,117,115,101,74,111,105,110,116,0,55,98,50,74,111,105,110,116,0,77,111,117,115,101,32,106,111,105,110,116,32,100,117,109,112,105,110,103,32,105,115,32,110,111,116,32,115,117,112,112,111,114,116,101,100,46,10,0,49,50,98,50,77,111,116,111,114,74,111,105,110,116,0,32,32,98,50,77,111,116,111,114,74,111,105,110,116,68,101,102,32,106,100,59,10,0,32,32,106,100,46,108,105,110,101,97,114,79,102,102,115,101,116,46,83,101,116,40,37,46,49,53,108,101,102,44,32,37,46,49,53,108,101, +102,41,59,10,0,32,32,106,100,46,97,110,103,117,108,97,114,79,102,102,115,101,116,32,61,32,37,46,49,53,108,101,102,59,10,0,32,32,106,100,46,99,111,114,114,101,99,116,105,111,110,70,97,99,116,111,114,32,61,32,37,46,49,53,108,101,102,59,10,0,49,53,98,50,68,105,115,116,97,110,99,101,74,111,105,110,116,0,32,32,98,50,68,105,115,116,97,110,99,101,74,111,105,110,116,68,101,102,32,106,100,59,10,0,32,32,106,100,46,108,101,110,103,116,104,32,61,32,37,46,49,53,108,101,102,59,10,0,49,53,98,50,70,114,105,99,116, +105,111,110,74,111,105,110,116,0,32,32,98,50,70,114,105,99,116,105,111,110,74,111,105,110,116,68,101,102,32,106,100,59,10,0,32,32,106,100,46,109,97,120,70,111,114,99,101,32,61,32,37,46,49,53,108,101,102,59,10,0,32,32,106,100,46,109,97,120,84,111,114,113,117,101,32,61,32,37,46,49,53,108,101,102,59,10,0,49,49,98,50,87,101,108,100,74,111,105,110,116,0,32,32,98,50,87,101,108,100,74,111,105,110,116,68,101,102,32,106,100,59,10,0,49,49,98,50,71,101,97,114,74,111,105,110,116,0,32,32,98,50,71,101,97,114,74, +111,105,110,116,68,101,102,32,106,100,59,10,0,32,32,106,100,46,106,111,105,110,116,49,32,61,32,106,111,105,110,116,115,91,37,100,93,59,10,0,32,32,106,100,46,106,111,105,110,116,50,32,61,32,106,111,105,110,116,115,91,37,100,93,59,10,0,49,54,98,50,80,114,105,115,109,97,116,105,99,74,111,105,110,116,0,32,32,98,50,80,114,105,115,109,97,116,105,99,74,111,105,110,116,68,101,102,32,106,100,59,10,0,32,32,106,100,46,108,111,119,101,114,84,114,97,110,115,108,97,116,105,111,110,32,61,32,37,46,49,53,108,101, +102,59,10,0,32,32,106,100,46,117,112,112,101,114,84,114,97,110,115,108,97,116,105,111,110,32,61,32,37,46,49,53,108,101,102,59,10,0,32,32,106,100,46,109,97,120,77,111,116,111,114,70,111,114,99,101,32,61,32,37,46,49,53,108,101,102,59,10,0,49,49,98,50,82,111,112,101,74,111,105,110,116,0,32,32,98,50,82,111,112,101,74,111,105,110,116,68,101,102,32,106,100,59,10,0,32,32,106,100,46,109,97,120,76,101,110,103,116,104,32,61,32,37,46,49,53,108,101,102,59,10,0,47,47,32,68,117,109,112,32,105,115,32,110,111,116, +32,115,117,112,112,111,114,116,101,100,32,102,111,114,32,116,104,105,115,32,106,111,105,110,116,32,116,121,112,101,46,10,0,49,53,98,50,82,101,118,111,108,117,116,101,74,111,105,110,116,0,32,32,98,50,82,101,118,111,108,117,116,101,74,111,105,110,116,68,101,102,32,106,100,59,10,0,32,32,106,100,46,114,101,102,101,114,101,110,99,101,65,110,103,108,101,32,61,32,37,46,49,53,108,101,102,59,10,0,32,32,106,100,46,101,110,97,98,108,101,76,105,109,105,116,32,61,32,98,111,111,108,40,37,100,41,59,10,0,32,32,106, +100,46,108,111,119,101,114,65,110,103,108,101,32,61,32,37,46,49,53,108,101,102,59,10,0,32,32,106,100,46,117,112,112,101,114,65,110,103,108,101,32,61,32,37,46,49,53,108,101,102,59,10,0,49,50,98,50,87,104,101,101,108,74,111,105,110,116,0,32,32,98,50,87,104,101,101,108,74,111,105,110,116,68,101,102,32,106,100,59,10,0,32,32,106,100,46,108,111,99,97,108,65,120,105,115,65,46,83,101,116,40,37,46,49,53,108,101,102,44,32,37,46,49,53,108,101,102,41,59,10,0,32,32,106,100,46,101,110,97,98,108,101,77,111,116, +111,114,32,61,32,98,111,111,108,40,37,100,41,59,10,0,32,32,106,100,46,109,111,116,111,114,83,112,101,101,100,32,61,32,37,46,49,53,108,101,102,59,10,0,32,32,106,100,46,109,97,120,77,111,116,111,114,84,111,114,113,117,101,32,61,32,37,46,49,53,108,101,102,59,10,0,32,32,106,100,46,102,114,101,113,117,101,110,99,121,72,122,32,61,32,37,46,49,53,108,101,102,59,10,0,32,32,106,100,46,100,97,109,112,105,110,103,82,97,116,105,111,32,61,32,37,46,49,53,108,101,102,59,10,0,49,51,98,50,80,117,108,108,101,121,74, +111,105,110,116,0,32,32,98,50,80,117,108,108,101,121,74,111,105,110,116,68,101,102,32,106,100,59,10,0,32,32,106,100,46,98,111,100,121,65,32,61,32,98,111,100,105,101,115,91,37,100,93,59,10,0,32,32,106,100,46,98,111,100,121,66,32,61,32,98,111,100,105,101,115,91,37,100,93,59,10,0,32,32,106,100,46,99,111,108,108,105,100,101,67,111,110,110,101,99,116,101,100,32,61,32,98,111,111,108,40,37,100,41,59,10,0,32,32,106,100,46,103,114,111,117,110,100,65,110,99,104,111,114,65,46,83,101,116,40,37,46,49,53,108,101, +102,44,32,37,46,49,53,108,101,102,41,59,10,0,32,32,106,100,46,103,114,111,117,110,100,65,110,99,104,111,114,66,46,83,101,116,40,37,46,49,53,108,101,102,44,32,37,46,49,53,108,101,102,41,59,10,0,32,32,106,100,46,108,111,99,97,108,65,110,99,104,111,114,65,46,83,101,116,40,37,46,49,53,108,101,102,44,32,37,46,49,53,108,101,102,41,59,10,0,32,32,106,100,46,108,111,99,97,108,65,110,99,104,111,114,66,46,83,101,116,40,37,46,49,53,108,101,102,44,32,37,46,49,53,108,101,102,41,59,10,0,32,32,106,100,46,108,101, +110,103,116,104,65,32,61,32,37,46,49,53,108,101,102,59,10,0,32,32,106,100,46,108,101,110,103,116,104,66,32,61,32,37,46,49,53,108,101,102,59,10,0,32,32,106,100,46,114,97,116,105,111,32,61,32,37,46,49,53,108,101,102,59,10,0,32,32,106,111,105,110,116,115,91,37,100,93,32,61,32,109,95,119,111,114,108,100,45,62,67,114,101,97,116,101,74,111,105,110,116,40,38,106,100,41,59,10,0,50,52,98,50,67,104,97,105,110,65,110,100,80,111,108,121,103,111,110,67,111,110,116,97,99,116,0,57,98,50,67,111,110,116,97,99,116, +0,0,50,53,98,50,80,111,108,121,103,111,110,65,110,100,67,105,114,99,108,101,67,111,110,116,97,99,116,0,49,53,98,50,67,105,114,99,108,101,67,111,110,116,97,99,116,0,50,50,98,50,69,100,103,101,65,110,100,67,105,114,99,108,101,67,111,110,116,97,99,116,0,50,51,98,50,67,104,97,105,110,65,110,100,67,105,114,99,108,101,67,111,110,116,97,99,116,0,50,51,98,50,69,100,103,101,65,110,100,80,111,108,121,103,111,110,67,111,110,116,97,99,116,0,49,54,98,50,80,111,108,121,103,111,110,67,111,110,116,97,99,116,0,90, +78,49,54,98,50,80,97,114,116,105,99,108,101,83,121,115,116,101,109,49,52,83,111,108,118,101,67,111,108,108,105,115,105,111,110,69,82,75,49,48,98,50,84,105,109,101,83,116,101,112,69,50,50,83,111,108,118,101,67,111,108,108,105,115,105,111,110,67,97,108,108,98,97,99,107,0,51,48,98,50,70,105,120,116,117,114,101,80,97,114,116,105,99,108,101,81,117,101,114,121,67,97,108,108,98,97,99,107,0,90,78,49,54,98,50,80,97,114,116,105,99,108,101,83,121,115,116,101,109,49,56,85,112,100,97,116,101,66,111,100,121,67, +111,110,116,97,99,116,115,69,118,69,50,54,85,112,100,97,116,101,66,111,100,121,67,111,110,116,97,99,116,115,67,97,108,108,98,97,99,107,0,90,78,49,54,98,50,80,97,114,116,105,99,108,101,83,121,115,116,101,109,52,49,85,112,100,97,116,101,80,97,105,114,115,65,110,100,84,114,105,97,100,115,87,105,116,104,82,101,97,99,116,105,118,101,80,97,114,116,105,99,108,101,115,69,118,69,49,52,82,101,97,99,116,105,118,101,70,105,108,116,101,114,0,78,49,54,98,50,80,97,114,116,105,99,108,101,83,121,115,116,101,109,49, +54,67,111,110,110,101,99,116,105,111,110,70,105,108,116,101,114,69,0,90,78,49,54,98,50,80,97,114,116,105,99,108,101,83,121,115,116,101,109,49,56,74,111,105,110,80,97,114,116,105,99,108,101,71,114,111,117,112,115,69,80,49,53,98,50,80,97,114,116,105,99,108,101,71,114,111,117,112,83,49,95,69,50,52,74,111,105,110,80,97,114,116,105,99,108,101,71,114,111,117,112,115,70,105,108,116,101,114,0,90,78,49,54,98,50,80,97,114,116,105,99,108,101,83,121,115,116,101,109,50,48,85,112,100,97,116,101,80,97,105,114,115, +65,110,100,84,114,105,97,100,115,69,105,105,82,75,78,83,95,49,54,67,111,110,110,101,99,116,105,111,110,70,105,108,116,101,114,69,69,50,48,85,112,100,97,116,101,84,114,105,97,100,115,67,97,108,108,98,97,99,107,0,78,49,54,98,50,86,111,114,111,110,111,105,68,105,97,103,114,97,109,49,50,78,111,100,101,67,97,108,108,98,97,99,107,69,0,90,78,49,54,98,50,80,97,114,116,105,99,108,101,83,121,115,116,101,109,51,51,67,114,101,97,116,101,80,97,114,116,105,99,108,101,115,87,105,116,104,83,104,97,112,101,115,70, +111,114,71,114,111,117,112,69,80,75,80,75,55,98,50,83,104,97,112,101,105,82,75,49,56,98,50,80,97,114,116,105,99,108,101,71,114,111,117,112,68,101,102,82,75,49,49,98,50,84,114,97,110,115,102,111,114,109,69,49,52,67,111,109,112,111,115,105,116,101,83,104,97,112,101,0,90,78,49,54,98,50,80,97,114,116,105,99,108,101,83,121,115,116,101,109,50,51,68,101,115,116,114,111,121,80,97,114,116,105,99,108,101,115,73,110,83,104,97,112,101,69,82,75,55,98,50,83,104,97,112,101,82,75,49,49,98,50,84,114,97,110,115,102, +111,114,109,98,69,51,49,68,101,115,116,114,111,121,80,97,114,116,105,99,108,101,115,73,110,83,104,97,112,101,67,97,108,108,98,97,99,107,0,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,76,105,113,117,105,100,70,117,110,32,49,46,49,46,48,0,83,116,57,98,97,100,95,97,108, +108,111,99,0,83,116,57,101,120,99,101,112,116,105,111,110,0,83,116,57,116,121,112,101,95,105,110,102,111,0,78,49,48,95,95,99,120,120,97,98,105,118,49,49,54,95,95,115,104,105,109,95,116,121,112,101,95,105,110,102,111,69,0,78,49,48,95,95,99,120,120,97,98,105,118,49,49,55,95,95,99,108,97,115,115,95,116,121,112,101,95,105,110,102,111,69,0,78,49,48,95,95,99,120,120,97,98,105,118,49,49,57,95,95,112,111,105,110,116,101,114,95,116,121,112,101,95,105,110,102,111,69,0,78,49,48,95,95,99,120,120,97,98,105,118, +49,49,55,95,95,112,98,97,115,101,95,116,121,112,101,95,105,110,102,111,69,0,78,49,48,95,95,99,120,120,97,98,105,118,49,50,48,95,95,115,105,95,99,108,97,115,115,95,116,121,112,101,95,105,110,102,111,69,0,0,112,116,104,114,101,97,100,95,111,110,99,101,32,102,97,105,108,117,114,101,32,105,110,32,95,95,99,120,97,95,103,101,116,95,103,108,111,98,97,108,115,95,102,97,115,116,40,41,0,115,116,100,58,58,98,97,100,95,97,108,108,111,99,0,116,101,114,109,105,110,97,116,101,95,104,97,110,100,108,101,114,32,117, +110,101,120,112,101,99,116,101,100,108,121,32,114,101,116,117,114,110,101,100,0,99,97,110,110,111,116,32,99,114,101,97,116,101,32,112,116,104,114,101,97,100,32,107,101,121,32,102,111,114,32,95,95,99,120,97,95,103,101,116,95,103,108,111,98,97,108,115,40,41,0,99,97,110,110,111,116,32,122,101,114,111,32,111,117,116,32,116,104,114,101,97,100,32,118,97,108,117,101,32,102,111,114,32,95,95,99,120,97,95,103,101,116,95,103,108,111,98,97,108,115,40,41,0,116,101,114,109,105,110,97,116,105,110,103,32,119,105, +116,104,32,37,115,32,101,120,99,101,112,116,105,111,110,32,111,102,32,116,121,112,101,32,37,115,58,32,37,115,0,116,101,114,109,105,110,97,116,105,110,103,32,119,105,116,104,32,37,115,32,101,120,99,101,112,116,105,111,110,32,111,102,32,116,121,112,101,32,37,115,0,116,101,114,109,105,110,97,116,105,110,103,32,119,105,116,104,32,37,115,32,102,111,114,101,105,103,110,32,101,120,99,101,112,116,105,111,110,0,116,101,114,109,105,110,97,116,105,110,103,0,117,110,99,97,117,103,104,116,0,84,33,34,25,13,1,2, +3,17,75,28,12,16,4,11,29,18,30,39,104,110,111,112,113,98,32,5,6,15,19,20,21,26,8,22,7,40,36,23,24,9,10,14,27,31,37,35,131,130,125,38,42,43,60,61,62,63,67,71,74,77,88,89,90,91,92,93,94,95,96,97,99,100,101,102,103,105,106,107,108,114,115,116,121,122,123,124,0,73,108,108,101,103,97,108,32,98,121,116,101,32,115,101,113,117,101,110,99,101,0,68,111,109,97,105,110,32,101,114,114,111,114,0,82,101,115,117,108,116,32,110,111,116,32,114,101,112,114,101,115,101,110,116,97,98,108,101,0,78,111,116,32,97,32,116, +116,121,0,80,101,114,109,105,115,115,105,111,110,32,100,101,110,105,101,100,0,79,112,101,114,97,116,105,111,110,32,110,111,116,32,112,101,114,109,105,116,116,101,100,0,78,111,32,115,117,99,104,32,102,105,108,101,32,111,114,32,100,105,114,101,99,116,111,114,121,0,78,111,32,115,117,99,104,32,112,114,111,99,101,115,115,0,70,105,108,101,32,101,120,105,115,116,115,0,86,97,108,117,101,32,116,111,111,32,108,97,114,103,101,32,102,111,114,32,100,97,116,97,32,116,121,112,101,0,78,111,32,115,112,97,99,101,32, +108,101,102,116,32,111,110,32,100,101,118,105,99,101,0,79,117,116,32,111,102,32,109,101,109,111,114,121,0,82,101,115,111,117,114,99,101,32,98,117,115,121,0,73,110,116,101,114,114,117,112,116,101,100,32,115,121,115,116,101,109,32,99,97,108,108,0,82,101,115,111,117,114,99,101,32,116,101,109,112,111,114,97,114,105,108,121,32,117,110,97,118,97,105,108,97,98,108,101,0,73,110,118,97,108,105,100,32,115,101,101,107,0,67,114,111,115,115,45,100,101,118,105,99,101,32,108,105,110,107,0,82,101,97,100,45,111,110, +108,121,32,102,105,108,101,32,115,121,115,116,101,109,0,68,105,114,101,99,116,111,114,121,32,110,111,116,32,101,109,112,116,121,0,67,111,110,110,101,99,116,105,111,110,32,114,101,115,101,116,32,98,121,32,112,101,101,114,0,79,112,101,114,97,116,105,111,110,32,116,105,109,101,100,32,111,117,116,0,67,111,110,110,101,99,116,105,111,110,32,114,101,102,117,115,101,100,0,72,111,115,116,32,105,115,32,100,111,119,110,0,72,111,115,116,32,105,115,32,117,110,114,101,97,99,104,97,98,108,101,0,65,100,100,114,101, +115,115,32,105,110,32,117,115,101,0,66,114,111,107,101,110,32,112,105,112,101,0,73,47,79,32,101,114,114,111,114,0,78,111,32,115,117,99,104,32,100,101,118,105,99,101,32,111,114,32,97,100,100,114,101,115,115,0,66,108,111,99,107,32,100,101,118,105,99,101,32,114,101,113,117,105,114,101,100,0,78,111,32,115,117,99,104,32,100,101,118,105,99,101,0,78,111,116,32,97,32,100,105,114,101,99,116,111,114,121,0,73,115,32,97,32,100,105,114,101,99,116,111,114,121,0,84,101,120,116,32,102,105,108,101,32,98,117,115,121, +0,69,120,101,99,32,102,111,114,109,97,116,32,101,114,114,111,114,0,73,110,118,97,108,105,100,32,97,114,103,117,109,101,110,116,0,65,114,103,117,109,101,110,116,32,108,105,115,116,32,116,111,111,32,108,111,110,103,0,83,121,109,98,111,108,105,99,32,108,105,110,107,32,108,111,111,112,0,70,105,108,101,110,97,109,101,32,116,111,111,32,108,111,110,103,0,84,111,111,32,109,97,110,121,32,111,112,101,110,32,102,105,108,101,115,32,105,110,32,115,121,115,116,101,109,0,78,111,32,102,105,108,101,32,100,101,115, +99,114,105,112,116,111,114,115,32,97,118,97,105,108,97,98,108,101,0,66,97,100,32,102,105,108,101,32,100,101,115,99,114,105,112,116,111,114,0,78,111,32,99,104,105,108,100,32,112,114,111,99,101,115,115,0,66,97,100,32,97,100,100,114,101,115,115,0,70,105,108,101,32,116,111,111,32,108,97,114,103,101,0,84,111,111,32,109,97,110,121,32,108,105,110,107,115,0,78,111,32,108,111,99,107,115,32,97,118,97,105,108,97,98,108,101,0,82,101,115,111,117,114,99,101,32,100,101,97,100,108,111,99,107,32,119,111,117,108,100, +32,111,99,99,117,114,0,83,116,97,116,101,32,110,111,116,32,114,101,99,111,118,101,114,97,98,108,101,0,80,114,101,118,105,111,117,115,32,111,119,110,101,114,32,100,105,101,100,0,79,112,101,114,97,116,105,111,110,32,99,97,110,99,101,108,101,100,0,70,117,110,99,116,105,111,110,32,110,111,116,32,105,109,112,108,101,109,101,110,116,101,100,0,78,111,32,109,101,115,115,97,103,101,32,111,102,32,100,101,115,105,114,101,100,32,116,121,112,101,0,73,100,101,110,116,105,102,105,101,114,32,114,101,109,111,118, +101,100,0,68,101,118,105,99,101,32,110,111,116,32,97,32,115,116,114,101,97,109,0,78,111,32,100,97,116,97,32,97,118,97,105,108,97,98,108,101,0,68,101,118,105,99,101,32,116,105,109,101,111,117,116,0,79,117,116,32,111,102,32,115,116,114,101,97,109,115,32,114,101,115,111,117,114,99,101,115,0,76,105,110,107,32,104,97,115,32,98,101,101,110,32,115,101,118,101,114,101,100,0,80,114,111,116,111,99,111,108,32,101,114,114,111,114,0,66,97,100,32,109,101,115,115,97,103,101,0,70,105,108,101,32,100,101,115,99,114, +105,112,116,111,114,32,105,110,32,98,97,100,32,115,116,97,116,101,0,78,111,116,32,97,32,115,111,99,107,101,116,0,68,101,115,116,105,110,97,116,105,111,110,32,97,100,100,114,101,115,115,32,114,101,113,117,105,114,101,100,0,77,101,115,115,97,103,101,32,116,111,111,32,108,97,114,103,101,0,80,114,111,116,111,99,111,108,32,119,114,111,110,103,32,116,121,112,101,32,102,111,114,32,115,111,99,107,101,116,0,80,114,111,116,111,99,111,108,32,110,111,116,32,97,118,97,105,108,97,98,108,101,0,80,114,111,116,111, +99,111,108,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,83,111,99,107,101,116,32,116,121,112,101,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,78,111,116,32,115,117,112,112,111,114,116,101,100,0,80,114,111,116,111,99,111,108,32,102,97,109,105,108,121,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,65,100,100,114,101,115,115,32,102,97,109,105,108,121,32,110,111,116,32,115,117,112,112,111,114,116,101,100,32,98,121,32,112,114,111,116,111,99,111,108,0,65,100,100,114,101,115, +115,32,110,111,116,32,97,118,97,105,108,97,98,108,101,0,78,101,116,119,111,114,107,32,105,115,32,100,111,119,110,0,78,101,116,119,111,114,107,32,117,110,114,101,97,99,104,97,98,108,101,0,67,111,110,110,101,99,116,105,111,110,32,114,101,115,101,116,32,98,121,32,110,101,116,119,111,114,107,0,67,111,110,110,101,99,116,105,111,110,32,97,98,111,114,116,101,100,0,78,111,32,98,117,102,102,101,114,32,115,112,97,99,101,32,97,118,97,105,108,97,98,108,101,0,83,111,99,107,101,116,32,105,115,32,99,111,110,110, +101,99,116,101,100,0,83,111,99,107,101,116,32,110,111,116,32,99,111,110,110,101,99,116,101,100,0,67,97,110,110,111,116,32,115,101,110,100,32,97,102,116,101,114,32,115,111,99,107,101,116,32,115,104,117,116,100,111,119,110,0,79,112,101,114,97,116,105,111,110,32,97,108,114,101,97,100,121,32,105,110,32,112,114,111,103,114,101,115,115,0,79,112,101,114,97,116,105,111,110,32,105,110,32,112,114,111,103,114,101,115,115,0,83,116,97,108,101,32,102,105,108,101,32,104,97,110,100,108,101,0,82,101,109,111,116,101, +32,73,47,79,32,101,114,114,111,114,0,81,117,111,116,97,32,101,120,99,101,101,100,101,100,0,78,111,32,109,101,100,105,117,109,32,102,111,117,110,100,0,87,114,111,110,103,32,109,101,100,105,117,109,32,116,121,112,101,0,78,111,32,101,114,114,111,114,32,105,110,102,111,114,109,97,116,105,111,110],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE); +allocate([17,0,10,0,17,17,17,0,0,0,0,5,0,0,0,0,0,0,9,0,0,0,0,11,0,0,0,0,0,0,0,0,17,0,15,10,17,17,17,3,10,7,0,1,19,9,11,11,0,0,9,6,11,0,0,11,0,6,17,0,0,0,17,17,17,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,0,0,0,0,0,0,0,0,17,0,10,10,17,17,17,0,10,0,0,2,0,9,11,0,0,0,9,0,11,0,0,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,12,0,0,0,0,9,12,0,0,0,0,0,12,0,0,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,14,0,0,0,0,0,0,0,0,0,0,0,13,0,0,0,4,13,0,0,0,0,9,14,0,0,0, +0,0,14,0,0,14,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,0,0,0,0,15,0,0,0,0,15,0,0,0,0,9,16,0,0,0,0,0,16,0,0,16,0,0,18,0,0,0,18,18,18,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,18,0,0,0,18,18,18,0,0,0,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,0,0,0,0,0,0,0,0,0,0,0,10,0,0,0,0,10,0,0,0,0,9,11,0,0,0,0,0,11,0,0,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,12,0,0,0,0,9,12,0,0,0,0,0,12,0,0, +12,0,0,48,49,50,51,52,53,54,55,56,57,65,66,67,68,69,70,45,43,32,32,32,48,88,48,120,0,40,110,117,108,108,41,0,45,48,88,43,48,88,32,48,88,45,48,120,43,48,120,32,48,120,0,105,110,102,0,73,78,70,0,110,97,110,0,78,65,78,0,46,0],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE+10225);var tempDoublePtr=Runtime.alignMemory(allocate(12,"i8",ALLOC_STATIC),8);assert(tempDoublePtr%8==0); +function copyTempFloat(ptr){HEAP8[tempDoublePtr]=HEAP8[ptr];HEAP8[tempDoublePtr+1]=HEAP8[ptr+1];HEAP8[tempDoublePtr+2]=HEAP8[ptr+2];HEAP8[tempDoublePtr+3]=HEAP8[ptr+3]}function copyTempDouble(ptr){HEAP8[tempDoublePtr]=HEAP8[ptr];HEAP8[tempDoublePtr+1]=HEAP8[ptr+1];HEAP8[tempDoublePtr+2]=HEAP8[ptr+2];HEAP8[tempDoublePtr+3]=HEAP8[ptr+3];HEAP8[tempDoublePtr+4]=HEAP8[ptr+4];HEAP8[tempDoublePtr+5]=HEAP8[ptr+5];HEAP8[tempDoublePtr+6]=HEAP8[ptr+6];HEAP8[tempDoublePtr+7]=HEAP8[ptr+7]}var _cosf=Math_cos; +Module["_i64Subtract"]=_i64Subtract;var _floorf=Math_floor;function __ZSt18uncaught_exceptionv(){return!!__ZSt18uncaught_exceptionv.uncaught_exception} +var EXCEPTIONS={last:0,caught:[],infos:{},deAdjust:function(adjusted){if(!adjusted||EXCEPTIONS.infos[adjusted])return adjusted;for(var ptr in EXCEPTIONS.infos){var info=EXCEPTIONS.infos[ptr];if(info.adjusted===adjusted)return ptr}return adjusted},addRef:function(ptr){if(!ptr)return;var info=EXCEPTIONS.infos[ptr];info.refcount++},decRef:function(ptr){if(!ptr)return;var info=EXCEPTIONS.infos[ptr];assert(info.refcount>0);info.refcount--;if(info.refcount===0){if(info.destructor)Runtime.dynCall("vi",info.destructor, +[ptr]);delete EXCEPTIONS.infos[ptr];___cxa_free_exception(ptr)}},clearRef:function(ptr){if(!ptr)return;var info=EXCEPTIONS.infos[ptr];info.refcount=0}};function ___resumeException(ptr){if(!EXCEPTIONS.last)EXCEPTIONS.last=ptr;EXCEPTIONS.clearRef(EXCEPTIONS.deAdjust(ptr));throw ptr+" - Exception catching is disabled, this exception cannot be caught. Compile with -s DISABLE_EXCEPTION_CATCHING=0 or DISABLE_EXCEPTION_CATCHING=2 to catch.";} +function ___cxa_find_matching_catch(){var thrown=EXCEPTIONS.last;if(!thrown)return(asm["setTempRet0"](0),0)|0;var info=EXCEPTIONS.infos[thrown];var throwntype=info.type;if(!throwntype)return(asm["setTempRet0"](0),thrown)|0;var typeArray=Array.prototype.slice.call(arguments);var pointer=Module["___cxa_is_pointer_type"](throwntype);if(!___cxa_find_matching_catch.buffer)___cxa_find_matching_catch.buffer=_malloc(4);HEAP32[___cxa_find_matching_catch.buffer>>2]=thrown;thrown=___cxa_find_matching_catch.buffer; +for(var i=0;i>2];info.adjusted=thrown;return(asm["setTempRet0"](typeArray[i]),thrown)|0}thrown=HEAP32[thrown>>2];return(asm["setTempRet0"](throwntype),thrown)|0} +function ___cxa_throw(ptr,type,destructor){EXCEPTIONS.infos[ptr]={ptr:ptr,adjusted:ptr,type:type,destructor:destructor,refcount:0};EXCEPTIONS.last=ptr;if(!("uncaught_exception"in __ZSt18uncaught_exceptionv))__ZSt18uncaught_exceptionv.uncaught_exception=1;else __ZSt18uncaught_exceptionv.uncaught_exception++;throw ptr+" - Exception catching is disabled, this exception cannot be caught. Compile with -s DISABLE_EXCEPTION_CATCHING=0 or DISABLE_EXCEPTION_CATCHING=2 to catch.";}Module["_memset"]=_memset; +var _BDtoILow=true;function _b2WorldRayCastCallback(fixturePtr,pointX,pointY,normalX,normalY,fraction){return b2World.RayCast(fixturePtr,pointX,pointY,normalX,normalY,fraction)}var _FtoIHigh=true;Module["_bitshift64Shl"]=_bitshift64Shl;function _abort(){Module["abort"]()}function _b2WorldBeginContactBody(contactPtr){b2World.BeginContactBody(contactPtr)} +function _pthread_once(ptr,func){if(!_pthread_once.seen)_pthread_once.seen={};if(ptr in _pthread_once.seen)return;Runtime.dynCall("v",func);_pthread_once.seen[ptr]=1}var _sqrtf=Math_sqrt;function ___unlock(){}var PTHREAD_SPECIFIC={};function _pthread_getspecific(key){return PTHREAD_SPECIFIC[key]||0}function ___setErrNo(value){if(Module["___errno_location"])HEAP32[Module["___errno_location"]()>>2]=value;return value} var ERRNO_CODES={EPERM:1,ENOENT:2,ESRCH:3,EINTR:4,EIO:5,ENXIO:6,E2BIG:7,ENOEXEC:8,EBADF:9,ECHILD:10,EAGAIN:11,EWOULDBLOCK:11,ENOMEM:12,EACCES:13,EFAULT:14,ENOTBLK:15,EBUSY:16,EEXIST:17,EXDEV:18,ENODEV:19,ENOTDIR:20,EISDIR:21,EINVAL:22,ENFILE:23,EMFILE:24,ENOTTY:25,ETXTBSY:26,EFBIG:27,ENOSPC:28,ESPIPE:29,EROFS:30,EMLINK:31,EPIPE:32,EDOM:33,ERANGE:34,ENOMSG:42,EIDRM:43,ECHRNG:44,EL2NSYNC:45,EL3HLT:46,EL3RST:47,ELNRNG:48,EUNATCH:49,ENOCSI:50,EL2HLT:51,EDEADLK:35,ENOLCK:37,EBADE:52,EBADR:53,EXFULL:54, ENOANO:55,EBADRQC:56,EBADSLT:57,EDEADLOCK:35,EBFONT:59,ENOSTR:60,ENODATA:61,ETIME:62,ENOSR:63,ENONET:64,ENOPKG:65,EREMOTE:66,ENOLINK:67,EADV:68,ESRMNT:69,ECOMM:70,EPROTO:71,EMULTIHOP:72,EDOTDOT:73,EBADMSG:74,ENOTUNIQ:76,EBADFD:77,EREMCHG:78,ELIBACC:79,ELIBBAD:80,ELIBSCN:81,ELIBMAX:82,ELIBEXEC:83,ENOSYS:38,ENOTEMPTY:39,ENAMETOOLONG:36,ELOOP:40,EOPNOTSUPP:95,EPFNOSUPPORT:96,ECONNRESET:104,ENOBUFS:105,EAFNOSUPPORT:97,EPROTOTYPE:91,ENOTSOCK:88,ENOPROTOOPT:92,ESHUTDOWN:108,ECONNREFUSED:111,EADDRINUSE:98, ECONNABORTED:103,ENETUNREACH:101,ENETDOWN:100,ETIMEDOUT:110,EHOSTDOWN:112,EHOSTUNREACH:113,EINPROGRESS:115,EALREADY:114,EDESTADDRREQ:89,EMSGSIZE:90,EPROTONOSUPPORT:93,ESOCKTNOSUPPORT:94,EADDRNOTAVAIL:99,ENETRESET:102,EISCONN:106,ENOTCONN:107,ETOOMANYREFS:109,EUSERS:87,EDQUOT:122,ESTALE:116,ENOTSUP:95,ENOMEDIUM:123,EILSEQ:84,EOVERFLOW:75,ECANCELED:125,ENOTRECOVERABLE:131,EOWNERDEAD:130,ESTRPIPE:86}; -function _pthread_key_create(key,destructor){if(key==0)return ERRNO_CODES.EINVAL;HEAP32[key>>2]=PTHREAD_SPECIFIC_NEXT_KEY;PTHREAD_SPECIFIC[PTHREAD_SPECIFIC_NEXT_KEY]=0;PTHREAD_SPECIFIC_NEXT_KEY++;return 0}function _pthread_setspecific(key,value){if(!(key in PTHREAD_SPECIFIC))return ERRNO_CODES.EINVAL;PTHREAD_SPECIFIC[key]=value;return 0} -var SYSCALLS={varargs:0,get:function(varargs){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(){var ret=Pointer_stringify(SYSCALLS.get());return ret},get64:function(){var low=SYSCALLS.get(),high=SYSCALLS.get();if(low>=0)assert(high===0);else assert(high===-1);return low},getZero:function(){assert(SYSCALLS.get()===0)}}; -function ___syscall54(which,varargs){SYSCALLS.varargs=varargs;try{return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___cxa_pure_virtual(){ABORT=true;throw"Pure virtual function called!";}function _b2WorldEndContactBody(contactPtr){b2World.EndContactBody(contactPtr)}function _b2WorldPreSolve(contactPtr,oldManifoldPtr){b2World.PreSolve(contactPtr,oldManifoldPtr)} -function __ZSt18uncaught_exceptionv(){return!!__ZSt18uncaught_exceptionv.uncaught_exception} -var EXCEPTIONS={last:0,caught:[],infos:{},deAdjust:function(adjusted){if(!adjusted||EXCEPTIONS.infos[adjusted])return adjusted;for(var ptr in EXCEPTIONS.infos){var info=EXCEPTIONS.infos[ptr];if(info.adjusted===adjusted)return ptr}return adjusted},addRef:function(ptr){if(!ptr)return;var info=EXCEPTIONS.infos[ptr];info.refcount++},decRef:function(ptr){if(!ptr)return;var info=EXCEPTIONS.infos[ptr];assert(info.refcount>0);info.refcount--;if(info.refcount===0&&!info.rethrown){if(info.destructor)Module["dynCall_vi"](info.destructor, -ptr);delete EXCEPTIONS.infos[ptr];___cxa_free_exception(ptr)}},clearRef:function(ptr){if(!ptr)return;var info=EXCEPTIONS.infos[ptr];info.refcount=0}};function ___cxa_begin_catch(ptr){var info=EXCEPTIONS.infos[ptr];if(info&&!info.caught){info.caught=true;__ZSt18uncaught_exceptionv.uncaught_exception--}if(info)info.rethrown=false;EXCEPTIONS.caught.push(ptr);EXCEPTIONS.addRef(EXCEPTIONS.deAdjust(ptr));return ptr} -function _emscripten_memcpy_big(dest,src,num){HEAPU8.set(HEAPU8.subarray(src,src+num),dest);return dest}function ___syscall6(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD();FS.close(stream);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}} +function _sysconf(name){switch(name){case 30:return PAGE_SIZE;case 85:return totalMemory/PAGE_SIZE;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:{if(typeof navigator==="object")return navigator["hardwareConcurrency"]||1;return 1}}___setErrNo(ERRNO_CODES.EINVAL);return-1}var PTHREAD_SPECIFIC_NEXT_KEY=1;function _pthread_key_create(key,destructor){if(key==0)return ERRNO_CODES.EINVAL;HEAP32[key>>2]=PTHREAD_SPECIFIC_NEXT_KEY;PTHREAD_SPECIFIC[PTHREAD_SPECIFIC_NEXT_KEY]=0;PTHREAD_SPECIFIC_NEXT_KEY++;return 0} +function ___lock(){} +var ERRNO_MESSAGES={0:"Success",1:"Not super-user",2:"No such file or directory",3:"No such process",4:"Interrupted system call",5:"I/O error",6:"No such device or address",7:"Arg list too long",8:"Exec format error",9:"Bad file number",10:"No children",11:"No more processes",12:"Not enough core",13:"Permission denied",14:"Bad address",15:"Block device required",16:"Mount device busy",17:"File exists",18:"Cross-device link",19:"No such device",20:"Not a directory",21:"Is a directory",22:"Invalid argument", +23:"Too many open files in system",24:"Too many open files",25:"Not a typewriter",26:"Text file busy",27:"File too large",28:"No space left on device",29:"Illegal seek",30:"Read only file system",31:"Too many links",32:"Broken pipe",33:"Math arg out of domain of func",34:"Math result not representable",35:"File locking deadlock error",36:"File or path name too long",37:"No record locks available",38:"Function not implemented",39:"Directory not empty",40:"Too many symbolic links",42:"No message of desired type", +43:"Identifier removed",44:"Channel number out of range",45:"Level 2 not synchronized",46:"Level 3 halted",47:"Level 3 reset",48:"Link number out of range",49:"Protocol driver not attached",50:"No CSI structure available",51:"Level 2 halted",52:"Invalid exchange",53:"Invalid request descriptor",54:"Exchange full",55:"No anode",56:"Invalid request code",57:"Invalid slot",59:"Bad font file fmt",60:"Device not a stream",61:"No data (for no delay io)",62:"Timer expired",63:"Out of streams resources", +64:"Machine is not on the network",65:"Package not installed",66:"The object is remote",67:"The link has been severed",68:"Advertise error",69:"Srmount error",70:"Communication error on send",71:"Protocol error",72:"Multihop attempted",73:"Cross mount point (not really error)",74:"Trying to read unreadable message",75:"Value too large for defined data type",76:"Given log. name not unique",77:"f.d. invalid for this operation",78:"Remote address changed",79:"Can access a needed shared lib",80:"Accessing a corrupted shared lib", +81:".lib section in a.out corrupted",82:"Attempting to link in too many libs",83:"Attempting to exec a shared library",84:"Illegal byte sequence",86:"Streams pipe error",87:"Too many users",88:"Socket operation on non-socket",89:"Destination address required",90:"Message too long",91:"Protocol wrong type for socket",92:"Protocol not available",93:"Unknown protocol",94:"Socket type not supported",95:"Not supported",96:"Protocol family not supported",97:"Address family not supported by protocol family", +98:"Address already in use",99:"Address not available",100:"Network interface is not configured",101:"Network is unreachable",102:"Connection reset by network",103:"Connection aborted",104:"Connection reset by peer",105:"No buffer space available",106:"Socket is already connected",107:"Socket is not connected",108:"Can't send after socket shutdown",109:"Too many references",110:"Connection timed out",111:"Connection refused",112:"Host is down",113:"Host is unreachable",114:"Socket already connected", +115:"Connection already in progress",116:"Stale file handle",122:"Quota exceeded",123:"No medium (in tape drive)",125:"Operation canceled",130:"Previous owner died",131:"State not recoverable"}; +var TTY={ttys:[],init:function(){},shutdown:function(){},register:function(dev,ops){TTY.ttys[dev]={input:[],output:[],ops:ops};FS.registerDevice(dev,TTY.stream_ops)},stream_ops:{open:function(stream){var tty=TTY.ttys[stream.node.rdev];if(!tty)throw new FS.ErrnoError(ERRNO_CODES.ENODEV);stream.tty=tty;stream.seekable=false},close:function(stream){stream.tty.ops.flush(stream.tty)},flush:function(stream){stream.tty.ops.flush(stream.tty)},read:function(stream,buffer,offset,length,pos){if(!stream.tty|| +!stream.tty.ops.get_char)throw new FS.ErrnoError(ERRNO_CODES.ENXIO);var bytesRead=0;for(var i=0;i0)result=buf.slice(0,bytesRead).toString("utf-8");else result=null}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null)result+="\n"}else if(typeof readline=="function"){result=readline();if(result!==null)result+="\n"}if(!result)return null;tty.input=intArrayFromString(result,true)}return tty.input.shift()},put_char:function(tty, +val){if(val===null||val===10){Module["print"](UTF8ArrayToString(tty.output,0));tty.output=[]}else if(val!=0)tty.output.push(val)},flush:function(tty){if(tty.output&&tty.output.length>0){Module["print"](UTF8ArrayToString(tty.output,0));tty.output=[]}}},default_tty1_ops:{put_char:function(tty,val){if(val===null||val===10){Module["printErr"](UTF8ArrayToString(tty.output,0));tty.output=[]}else if(val!=0)tty.output.push(val)},flush:function(tty){if(tty.output&&tty.output.length>0){Module["printErr"](UTF8ArrayToString(tty.output, +0));tty.output=[]}}}}; +var MEMFS={ops_table:null,mount:function(mount){return MEMFS.createNode(null,"/",16384|511,0)},createNode:function(parent,name,mode,dev){if(FS.isBlkdev(mode)||FS.isFIFO(mode))throw new FS.ErrnoError(ERRNO_CODES.EPERM);if(!MEMFS.ops_table)MEMFS.ops_table={dir:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,lookup:MEMFS.node_ops.lookup,mknod:MEMFS.node_ops.mknod,rename:MEMFS.node_ops.rename,unlink:MEMFS.node_ops.unlink,rmdir:MEMFS.node_ops.rmdir,readdir:MEMFS.node_ops.readdir,symlink:MEMFS.node_ops.symlink}, +stream:{llseek:MEMFS.stream_ops.llseek}},file:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:{llseek:MEMFS.stream_ops.llseek,read:MEMFS.stream_ops.read,write:MEMFS.stream_ops.write,allocate:MEMFS.stream_ops.allocate,mmap:MEMFS.stream_ops.mmap,msync:MEMFS.stream_ops.msync}},link:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,readlink:MEMFS.node_ops.readlink},stream:{}},chrdev:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:FS.chrdev_stream_ops}}; +var node=FS.createNode(parent,name,mode,dev);if(FS.isDir(node.mode)){node.node_ops=MEMFS.ops_table.dir.node;node.stream_ops=MEMFS.ops_table.dir.stream;node.contents={}}else if(FS.isFile(node.mode)){node.node_ops=MEMFS.ops_table.file.node;node.stream_ops=MEMFS.ops_table.file.stream;node.usedBytes=0;node.contents=null}else if(FS.isLink(node.mode)){node.node_ops=MEMFS.ops_table.link.node;node.stream_ops=MEMFS.ops_table.link.stream}else if(FS.isChrdev(node.mode)){node.node_ops=MEMFS.ops_table.chrdev.node; +node.stream_ops=MEMFS.ops_table.chrdev.stream}node.timestamp=Date.now();if(parent)parent.contents[name]=node;return node},getFileDataAsRegularArray:function(node){if(node.contents&&node.contents.subarray){var arr=[];for(var i=0;inode.contents.length){node.contents=MEMFS.getFileDataAsRegularArray(node);node.usedBytes=node.contents.length}if(!node.contents||node.contents.subarray){var prevCapacity=node.contents?node.contents.buffer.byteLength:0;if(prevCapacity>=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity0)node.contents.set(oldContents.subarray(0,node.usedBytes),0);return}if(!node.contents&&newCapacity>0)node.contents=[];while(node.contents.lengthnewSize)node.contents.length=newSize;else while(node.contents.length=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);assert(size>=0);if(size>8&&contents.subarray)buffer.set(contents.subarray(position,position+size),offset);else for(var i=0;i0||position+lengthe2.timestamp){create.push(key);total++}});var remove=[];Object.keys(dst.entries).forEach(function(key){var e=dst.entries[key];var e2=src.entries[key];if(!e2){remove.push(key);total++}});if(!total)return callback(null);var errored=false;var completed=0;var db=src.type==="remote"?src.db:dst.db;var transaction=db.transaction([IDBFS.DB_STORE_NAME],"readwrite");var store=transaction.objectStore(IDBFS.DB_STORE_NAME);function done(err){if(err){if(!done.errored){done.errored= +true;return callback(err)}return}if(++completed>=total)return callback(null)}transaction.onerror=function(e){done(this.error);e.preventDefault()};create.sort().forEach(function(path){if(dst.type==="local")IDBFS.loadRemoteEntry(store,path,function(err,entry){if(err)return done(err);IDBFS.storeLocalEntry(path,entry,done)});else IDBFS.loadLocalEntry(path,function(err,entry){if(err)return done(err);IDBFS.storeRemoteEntry(store,path,entry,done)})});remove.sort().reverse().forEach(function(path){if(dst.type=== +"local")IDBFS.removeLocalEntry(path,done);else IDBFS.removeRemoteEntry(store,path,done)})}}; +var NODEFS={isWindows:false,staticInit:function(){NODEFS.isWindows=!!process.platform.match(/^win/)},mount:function(mount){assert(ENVIRONMENT_IS_NODE);return NODEFS.createNode(null,"/",NODEFS.getMode(mount.opts.root),0)},createNode:function(parent,name,mode,dev){if(!FS.isDir(mode)&&!FS.isFile(mode)&&!FS.isLink(mode))throw new FS.ErrnoError(ERRNO_CODES.EINVAL);var node=FS.createNode(parent,name,mode);node.node_ops=NODEFS.node_ops;node.stream_ops=NODEFS.stream_ops;return node},getMode:function(path){var stat; +try{stat=fs.lstatSync(path);if(NODEFS.isWindows)stat.mode=stat.mode|(stat.mode&146)>>1}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code]);}return stat.mode},realPath:function(node){var parts=[];while(node.parent!==node){parts.push(node.name);node=node.parent}parts.push(node.mount.opts.root);parts.reverse();return PATH.join.apply(null,parts)},flagsToPermissionStringMap:{0:"r",1:"r+",2:"r+",64:"r",65:"r+",66:"r+",129:"rx+",193:"rx+",514:"w+",577:"w",578:"w+",705:"wx",706:"wx+", +1024:"a",1025:"a",1026:"a+",1089:"a",1090:"a+",1153:"ax",1154:"ax+",1217:"ax",1218:"ax+",4096:"rs",4098:"rs+"},flagsToPermissionString:function(flags){flags&=~32768;if(flags in NODEFS.flagsToPermissionStringMap)return NODEFS.flagsToPermissionStringMap[flags];else throw new FS.ErrnoError(ERRNO_CODES.EINVAL);},node_ops:{getattr:function(node){var path=NODEFS.realPath(node);var stat;try{stat=fs.lstatSync(path)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code]);}if(NODEFS.isWindows&& +!stat.blksize)stat.blksize=4096;if(NODEFS.isWindows&&!stat.blocks)stat.blocks=(stat.size+stat.blksize-1)/stat.blksize|0;return{dev:stat.dev,ino:stat.ino,mode:stat.mode,nlink:stat.nlink,uid:stat.uid,gid:stat.gid,rdev:stat.rdev,size:stat.size,atime:stat.atime,mtime:stat.mtime,ctime:stat.ctime,blksize:stat.blksize,blocks:stat.blocks}},setattr:function(node,attr){var path=NODEFS.realPath(node);try{if(attr.mode!==undefined){fs.chmodSync(path,attr.mode);node.mode=attr.mode}if(attr.timestamp!==undefined){var date= +new Date(attr.timestamp);fs.utimesSync(path,date,date)}if(attr.size!==undefined)fs.truncateSync(path,attr.size)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code]);}},lookup:function(parent,name){var path=PATH.join2(NODEFS.realPath(parent),name);var mode=NODEFS.getMode(path);return NODEFS.createNode(parent,name,mode)},mknod:function(parent,name,mode,dev){var node=NODEFS.createNode(parent,name,mode,dev);var path=NODEFS.realPath(node);try{if(FS.isDir(node.mode))fs.mkdirSync(path, +node.mode);else fs.writeFileSync(path,"",{mode:node.mode})}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code]);}return node},rename:function(oldNode,newDir,newName){var oldPath=NODEFS.realPath(oldNode);var newPath=PATH.join2(NODEFS.realPath(newDir),newName);try{fs.renameSync(oldPath,newPath)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code]);}},unlink:function(parent,name){var path=PATH.join2(NODEFS.realPath(parent),name);try{fs.unlinkSync(path)}catch(e){if(!e.code)throw e; +throw new FS.ErrnoError(ERRNO_CODES[e.code]);}},rmdir:function(parent,name){var path=PATH.join2(NODEFS.realPath(parent),name);try{fs.rmdirSync(path)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code]);}},readdir:function(node){var path=NODEFS.realPath(node);try{return fs.readdirSync(path)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code]);}},symlink:function(parent,newName,oldPath){var newPath=PATH.join2(NODEFS.realPath(parent),newName);try{fs.symlinkSync(oldPath, +newPath)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code]);}},readlink:function(node){var path=NODEFS.realPath(node);try{path=fs.readlinkSync(path);path=NODEJS_PATH.relative(NODEJS_PATH.resolve(node.mount.opts.root),path);return path}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code]);}}},stream_ops:{open:function(stream){var path=NODEFS.realPath(stream.node);try{if(FS.isFile(stream.node.mode))stream.nfd=fs.openSync(path,NODEFS.flagsToPermissionString(stream.flags))}catch(e){if(!e.code)throw e; +throw new FS.ErrnoError(ERRNO_CODES[e.code]);}},close:function(stream){try{if(FS.isFile(stream.node.mode)&&stream.nfd)fs.closeSync(stream.nfd)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code]);}},read:function(stream,buffer,offset,length,position){if(length===0)return 0;var nbuffer=new Buffer(length);var res;try{res=fs.readSync(stream.nfd,nbuffer,0,length,position)}catch(e){throw new FS.ErrnoError(ERRNO_CODES[e.code]);}if(res>0)for(var i=0;i=stream.node.size)return 0;var chunk=stream.node.contents.slice(position,position+length);var ab=WORKERFS.reader.readAsArrayBuffer(chunk);buffer.set(new Uint8Array(ab),offset);return chunk.size},write:function(stream,buffer,offset,length,position){throw new FS.ErrnoError(ERRNO_CODES.EIO);},llseek:function(stream,offset,whence){var position=offset;if(whence===1)position+=stream.position;else if(whence===2)if(FS.isFile(stream.node.mode))position+= +stream.node.size;if(position<0)throw new FS.ErrnoError(ERRNO_CODES.EINVAL);return position}}};var _stdin=allocate(1,"i32*",ALLOC_STATIC);var _stdout=allocate(1,"i32*",ALLOC_STATIC);var _stderr=allocate(1,"i32*",ALLOC_STATIC); +var FS={root:null,mounts:[],devices:[null],streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:false,ignorePermissions:true,trackingDelegate:{},tracking:{openFlags:{READ:1,WRITE:2}},ErrnoError:null,genericErrors:{},filesystems:null,handleFSError:function(e){if(!(e instanceof FS.ErrnoError))throw e+" : "+stackTrace();return ___setErrNo(e.errno)},lookupPath:function(path,opts){path=PATH.resolve(FS.cwd(),path);opts=opts||{};if(!path)return{path:"",node:null};var defaults={follow_mount:true, +recurse_count:0};for(var key in defaults)if(opts[key]===undefined)opts[key]=defaults[key];if(opts.recurse_count>8)throw new FS.ErrnoError(ERRNO_CODES.ELOOP);var parts=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),false);var current=FS.root;var current_path="/";for(var i=0;i40)throw new FS.ErrnoError(ERRNO_CODES.ELOOP);}}}return{path:current_path,node:current}},getPath:function(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount; +return mount[mount.length-1]!=="/"?mount+"/"+path:mount+path}path=path?node.name+"/"+path:node.name;node=node.parent}},hashName:function(parentid,name){var hash=0;for(var i=0;i>>0)%FS.nameTable.length},hashAddNode:function(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode:function(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]=== +node)FS.nameTable[hash]=node.name_next;else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode:function(parent,name){var err=FS.mayLookup(parent);if(err)throw new FS.ErrnoError(err,parent);var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name)return node}return FS.lookup(parent,name)},createNode:function(parent, +name,mode,rdev){if(!FS.FSNode){FS.FSNode=function(parent,name,mode,rdev){if(!parent)parent=this;this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev};FS.FSNode.prototype={};var readMode=292|73;var writeMode=146;Object.defineProperties(FS.FSNode.prototype,{read:{get:function(){return(this.mode&readMode)===readMode},set:function(val){val?this.mode|=readMode:this.mode&=~readMode}},write:{get:function(){return(this.mode& +writeMode)===writeMode},set:function(val){val?this.mode|=writeMode:this.mode&=~writeMode}},isFolder:{get:function(){return FS.isDir(this.mode)}},isDevice:{get:function(){return FS.isChrdev(this.mode)}}})}var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode:function(node){FS.hashRemoveNode(node)},isRoot:function(node){return node===node.parent},isMountpoint:function(node){return!!node.mounted},isFile:function(mode){return(mode&61440)===32768},isDir:function(mode){return(mode& +61440)===16384},isLink:function(mode){return(mode&61440)===40960},isChrdev:function(mode){return(mode&61440)===8192},isBlkdev:function(mode){return(mode&61440)===24576},isFIFO:function(mode){return(mode&61440)===4096},isSocket:function(mode){return(mode&49152)===49152},flagModes:{"r":0,"rs":1052672,"r+":2,"w":577,"wx":705,"xw":705,"w+":578,"wx+":706,"xw+":706,"a":1089,"ax":1217,"xa":1217,"a+":1090,"ax+":1218,"xa+":1218},modeStringToFlags:function(str){var flags=FS.flagModes[str];if(typeof flags=== +"undefined")throw new Error("Unknown file open mode: "+str);return flags},flagsToPermissionString:function(flag){var perms=["r","w","rw"][flag&3];if(flag&512)perms+="w";return perms},nodePermissions:function(node,perms){if(FS.ignorePermissions)return 0;if(perms.indexOf("r")!==-1&&!(node.mode&292))return ERRNO_CODES.EACCES;else if(perms.indexOf("w")!==-1&&!(node.mode&146))return ERRNO_CODES.EACCES;else if(perms.indexOf("x")!==-1&&!(node.mode&73))return ERRNO_CODES.EACCES;return 0},mayLookup:function(dir){var err= +FS.nodePermissions(dir,"x");if(err)return err;if(!dir.node_ops.lookup)return ERRNO_CODES.EACCES;return 0},mayCreate:function(dir,name){try{var node=FS.lookupNode(dir,name);return ERRNO_CODES.EEXIST}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete:function(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var err=FS.nodePermissions(dir,"wx");if(err)return err;if(isdir){if(!FS.isDir(node.mode))return ERRNO_CODES.ENOTDIR;if(FS.isRoot(node)||FS.getPath(node)=== +FS.cwd())return ERRNO_CODES.EBUSY}else if(FS.isDir(node.mode))return ERRNO_CODES.EISDIR;return 0},mayOpen:function(node,flags){if(!node)return ERRNO_CODES.ENOENT;if(FS.isLink(node.mode))return ERRNO_CODES.ELOOP;else if(FS.isDir(node.mode))if((flags&2097155)!==0||flags&512)return ERRNO_CODES.EISDIR;return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd:function(fd_start,fd_end){fd_start=fd_start||0;fd_end=fd_end||FS.MAX_OPEN_FDS;for(var fd=fd_start;fd<=fd_end;fd++)if(!FS.streams[fd])return fd; +throw new FS.ErrnoError(ERRNO_CODES.EMFILE);},getStream:function(fd){return FS.streams[fd]},createStream:function(stream,fd_start,fd_end){if(!FS.FSStream){FS.FSStream=function(){};FS.FSStream.prototype={};Object.defineProperties(FS.FSStream.prototype,{object:{get:function(){return this.node},set:function(val){this.node=val}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}}})}var newStream= +new FS.FSStream;for(var p in stream)newStream[p]=stream[p];stream=newStream;var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream:function(fd){FS.streams[fd]=null},chrdev_stream_ops:{open:function(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open)stream.stream_ops.open(stream)},llseek:function(){throw new FS.ErrnoError(ERRNO_CODES.ESPIPE);}},major:function(dev){return dev>>8},minor:function(dev){return dev& +255},makedev:function(ma,mi){return ma<<8|mi},registerDevice:function(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:function(dev){return FS.devices[dev]},getMounts:function(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts},syncfs:function(populate,callback){if(typeof populate==="function"){callback=populate;populate=false}var mounts=FS.getMounts(FS.root.mount);var completed=0;function done(err){if(err){if(!done.errored){done.errored= +true;return callback(err)}return}if(++completed>=mounts.length)callback(null)}mounts.forEach(function(mount){if(!mount.type.syncfs)return done(null);mount.type.syncfs(mount,populate,done)})},mount:function(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root)throw new FS.ErrnoError(ERRNO_CODES.EBUSY);else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node))throw new FS.ErrnoError(ERRNO_CODES.EBUSY); +if(!FS.isDir(node.mode))throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR);}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root)FS.root=mountRoot;else if(node){node.mounted=mount;if(node.mount)node.mount.mounts.push(mount)}return mountRoot},unmount:function(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node))throw new FS.ErrnoError(ERRNO_CODES.EINVAL);var node= +lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(function(hash){var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.indexOf(current.mount)!==-1)FS.destroyNode(current);current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);assert(idx!==-1);node.mount.mounts.splice(idx,1)},lookup:function(parent,name){return parent.node_ops.lookup(parent,name)},mknod:function(path,mode,dev){var lookup=FS.lookupPath(path, +{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name==="..")throw new FS.ErrnoError(ERRNO_CODES.EINVAL);var err=FS.mayCreate(parent,name);if(err)throw new FS.ErrnoError(err);if(!parent.node_ops.mknod)throw new FS.ErrnoError(ERRNO_CODES.EPERM);return parent.node_ops.mknod(parent,name,mode,dev)},create:function(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir:function(path,mode){mode=mode!==undefined?mode:511; +mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdev:function(path,mode,dev){if(typeof dev==="undefined"){dev=mode;mode=438}mode|=8192;return FS.mknod(path,mode,dev)},symlink:function(oldpath,newpath){if(!PATH.resolve(oldpath))throw new FS.ErrnoError(ERRNO_CODES.ENOENT);var lookup=FS.lookupPath(newpath,{parent:true});var parent=lookup.node;if(!parent)throw new FS.ErrnoError(ERRNO_CODES.ENOENT);var newname=PATH.basename(newpath);var err=FS.mayCreate(parent,newname);if(err)throw new FS.ErrnoError(err); +if(!parent.node_ops.symlink)throw new FS.ErrnoError(ERRNO_CODES.EPERM);return parent.node_ops.symlink(parent,newname,oldpath)},rename:function(old_path,new_path){var old_dirname=PATH.dirname(old_path);var new_dirname=PATH.dirname(new_path);var old_name=PATH.basename(old_path);var new_name=PATH.basename(new_path);var lookup,old_dir,new_dir;try{lookup=FS.lookupPath(old_path,{parent:true});old_dir=lookup.node;lookup=FS.lookupPath(new_path,{parent:true});new_dir=lookup.node}catch(e){throw new FS.ErrnoError(ERRNO_CODES.EBUSY); +}if(!old_dir||!new_dir)throw new FS.ErrnoError(ERRNO_CODES.ENOENT);if(old_dir.mount!==new_dir.mount)throw new FS.ErrnoError(ERRNO_CODES.EXDEV);var old_node=FS.lookupNode(old_dir,old_name);var relative=PATH.relative(old_path,new_dirname);if(relative.charAt(0)!==".")throw new FS.ErrnoError(ERRNO_CODES.EINVAL);relative=PATH.relative(new_path,old_dirname);if(relative.charAt(0)!==".")throw new FS.ErrnoError(ERRNO_CODES.ENOTEMPTY);var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(old_node=== +new_node)return;var isdir=FS.isDir(old_node.mode);var err=FS.mayDelete(old_dir,old_name,isdir);if(err)throw new FS.ErrnoError(err);err=new_node?FS.mayDelete(new_dir,new_name,isdir):FS.mayCreate(new_dir,new_name);if(err)throw new FS.ErrnoError(err);if(!old_dir.node_ops.rename)throw new FS.ErrnoError(ERRNO_CODES.EPERM);if(FS.isMountpoint(old_node)||new_node&&FS.isMountpoint(new_node))throw new FS.ErrnoError(ERRNO_CODES.EBUSY);if(new_dir!==old_dir){err=FS.nodePermissions(old_dir,"w");if(err)throw new FS.ErrnoError(err); +}try{if(FS.trackingDelegate["willMovePath"])FS.trackingDelegate["willMovePath"](old_path,new_path)}catch(e){console.log("FS.trackingDelegate['willMovePath']('"+old_path+"', '"+new_path+"') threw an exception: "+e.message)}FS.hashRemoveNode(old_node);try{old_dir.node_ops.rename(old_node,new_dir,new_name)}catch(e){throw e;}finally{FS.hashAddNode(old_node)}try{if(FS.trackingDelegate["onMovePath"])FS.trackingDelegate["onMovePath"](old_path,new_path)}catch(e){console.log("FS.trackingDelegate['onMovePath']('"+ +old_path+"', '"+new_path+"') threw an exception: "+e.message)}},rmdir:function(path){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);var node=FS.lookupNode(parent,name);var err=FS.mayDelete(parent,name,true);if(err)throw new FS.ErrnoError(err);if(!parent.node_ops.rmdir)throw new FS.ErrnoError(ERRNO_CODES.EPERM);if(FS.isMountpoint(node))throw new FS.ErrnoError(ERRNO_CODES.EBUSY);try{if(FS.trackingDelegate["willDeletePath"])FS.trackingDelegate["willDeletePath"](path)}catch(e){console.log("FS.trackingDelegate['willDeletePath']('"+ +path+"') threw an exception: "+e.message)}parent.node_ops.rmdir(parent,name);FS.destroyNode(node);try{if(FS.trackingDelegate["onDeletePath"])FS.trackingDelegate["onDeletePath"](path)}catch(e){console.log("FS.trackingDelegate['onDeletePath']('"+path+"') threw an exception: "+e.message)}},readdir:function(path){var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;if(!node.node_ops.readdir)throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR);return node.node_ops.readdir(node)},unlink:function(path){var lookup= +FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);var node=FS.lookupNode(parent,name);var err=FS.mayDelete(parent,name,false);if(err){if(err===ERRNO_CODES.EISDIR)err=ERRNO_CODES.EPERM;throw new FS.ErrnoError(err);}if(!parent.node_ops.unlink)throw new FS.ErrnoError(ERRNO_CODES.EPERM);if(FS.isMountpoint(node))throw new FS.ErrnoError(ERRNO_CODES.EBUSY);try{if(FS.trackingDelegate["willDeletePath"])FS.trackingDelegate["willDeletePath"](path)}catch(e){console.log("FS.trackingDelegate['willDeletePath']('"+ +path+"') threw an exception: "+e.message)}parent.node_ops.unlink(parent,name);FS.destroyNode(node);try{if(FS.trackingDelegate["onDeletePath"])FS.trackingDelegate["onDeletePath"](path)}catch(e){console.log("FS.trackingDelegate['onDeletePath']('"+path+"') threw an exception: "+e.message)}},readlink:function(path){var lookup=FS.lookupPath(path);var link=lookup.node;if(!link)throw new FS.ErrnoError(ERRNO_CODES.ENOENT);if(!link.node_ops.readlink)throw new FS.ErrnoError(ERRNO_CODES.EINVAL);return PATH.resolve(FS.getPath(link.parent), +link.node_ops.readlink(link))},stat:function(path,dontFollow){var lookup=FS.lookupPath(path,{follow:!dontFollow});var node=lookup.node;if(!node)throw new FS.ErrnoError(ERRNO_CODES.ENOENT);if(!node.node_ops.getattr)throw new FS.ErrnoError(ERRNO_CODES.EPERM);return node.node_ops.getattr(node)},lstat:function(path){return FS.stat(path,true)},chmod:function(path,mode,dontFollow){var node;if(typeof path==="string"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node}else node=path;if(!node.node_ops.setattr)throw new FS.ErrnoError(ERRNO_CODES.EPERM); +node.node_ops.setattr(node,{mode:mode&4095|node.mode&~4095,timestamp:Date.now()})},lchmod:function(path,mode){FS.chmod(path,mode,true)},fchmod:function(fd,mode){var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(ERRNO_CODES.EBADF);FS.chmod(stream.node,mode)},chown:function(path,uid,gid,dontFollow){var node;if(typeof path==="string"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node}else node=path;if(!node.node_ops.setattr)throw new FS.ErrnoError(ERRNO_CODES.EPERM);node.node_ops.setattr(node, +{timestamp:Date.now()})},lchown:function(path,uid,gid){FS.chown(path,uid,gid,true)},fchown:function(fd,uid,gid){var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(ERRNO_CODES.EBADF);FS.chown(stream.node,uid,gid)},truncate:function(path,len){if(len<0)throw new FS.ErrnoError(ERRNO_CODES.EINVAL);var node;if(typeof path==="string"){var lookup=FS.lookupPath(path,{follow:true});node=lookup.node}else node=path;if(!node.node_ops.setattr)throw new FS.ErrnoError(ERRNO_CODES.EPERM);if(FS.isDir(node.mode))throw new FS.ErrnoError(ERRNO_CODES.EISDIR); +if(!FS.isFile(node.mode))throw new FS.ErrnoError(ERRNO_CODES.EINVAL);var err=FS.nodePermissions(node,"w");if(err)throw new FS.ErrnoError(err);node.node_ops.setattr(node,{size:len,timestamp:Date.now()})},ftruncate:function(fd,len){var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(ERRNO_CODES.EBADF);if((stream.flags&2097155)===0)throw new FS.ErrnoError(ERRNO_CODES.EINVAL);FS.truncate(stream.node,len)},utime:function(path,atime,mtime){var lookup=FS.lookupPath(path,{follow:true});var node= +lookup.node;node.node_ops.setattr(node,{timestamp:Math.max(atime,mtime)})},open:function(path,flags,mode,fd_start,fd_end){if(path==="")throw new FS.ErrnoError(ERRNO_CODES.ENOENT);flags=typeof flags==="string"?FS.modeStringToFlags(flags):flags;mode=typeof mode==="undefined"?438:mode;if(flags&64)mode=mode&4095|32768;else mode=0;var node;if(typeof path==="object")node=path;else{path=PATH.normalize(path);try{var lookup=FS.lookupPath(path,{follow:!(flags&131072)});node=lookup.node}catch(e){}}var created= +false;if(flags&64)if(node){if(flags&128)throw new FS.ErrnoError(ERRNO_CODES.EEXIST);}else{node=FS.mknod(path,mode,0);created=true}if(!node)throw new FS.ErrnoError(ERRNO_CODES.ENOENT);if(FS.isChrdev(node.mode))flags&=~512;if(flags&65536&&!FS.isDir(node.mode))throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR);if(!created){var err=FS.mayOpen(node,flags);if(err)throw new FS.ErrnoError(err);}if(flags&512)FS.truncate(node,0);flags&=~(128|512);var stream=FS.createStream({node:node,path:FS.getPath(node),flags:flags, +seekable:true,position:0,stream_ops:node.stream_ops,ungotten:[],error:false},fd_start,fd_end);if(stream.stream_ops.open)stream.stream_ops.open(stream);if(Module["logReadFiles"]&&!(flags&1)){if(!FS.readFiles)FS.readFiles={};if(!(path in FS.readFiles)){FS.readFiles[path]=1;Module["printErr"]("read file: "+path)}}try{if(FS.trackingDelegate["onOpenFile"]){var trackingFlags=0;if((flags&2097155)!==1)trackingFlags|=FS.tracking.openFlags.READ;if((flags&2097155)!==0)trackingFlags|=FS.tracking.openFlags.WRITE; +FS.trackingDelegate["onOpenFile"](path,trackingFlags)}}catch(e){console.log("FS.trackingDelegate['onOpenFile']('"+path+"', flags) threw an exception: "+e.message)}return stream},close:function(stream){if(stream.getdents)stream.getdents=null;try{if(stream.stream_ops.close)stream.stream_ops.close(stream)}catch(e){throw e;}finally{FS.closeStream(stream.fd)}},llseek:function(stream,offset,whence){if(!stream.seekable||!stream.stream_ops.llseek)throw new FS.ErrnoError(ERRNO_CODES.ESPIPE);stream.position= +stream.stream_ops.llseek(stream,offset,whence);stream.ungotten=[];return stream.position},read:function(stream,buffer,offset,length,position){if(length<0||position<0)throw new FS.ErrnoError(ERRNO_CODES.EINVAL);if((stream.flags&2097155)===1)throw new FS.ErrnoError(ERRNO_CODES.EBADF);if(FS.isDir(stream.node.mode))throw new FS.ErrnoError(ERRNO_CODES.EISDIR);if(!stream.stream_ops.read)throw new FS.ErrnoError(ERRNO_CODES.EINVAL);var seeking=true;if(typeof position==="undefined"){position=stream.position; +seeking=false}else if(!stream.seekable)throw new FS.ErrnoError(ERRNO_CODES.ESPIPE);var bytesRead=stream.stream_ops.read(stream,buffer,offset,length,position);if(!seeking)stream.position+=bytesRead;return bytesRead},write:function(stream,buffer,offset,length,position,canOwn){if(length<0||position<0)throw new FS.ErrnoError(ERRNO_CODES.EINVAL);if((stream.flags&2097155)===0)throw new FS.ErrnoError(ERRNO_CODES.EBADF);if(FS.isDir(stream.node.mode))throw new FS.ErrnoError(ERRNO_CODES.EISDIR);if(!stream.stream_ops.write)throw new FS.ErrnoError(ERRNO_CODES.EINVAL); +if(stream.flags&1024)FS.llseek(stream,0,2);var seeking=true;if(typeof position==="undefined"){position=stream.position;seeking=false}else if(!stream.seekable)throw new FS.ErrnoError(ERRNO_CODES.ESPIPE);var bytesWritten=stream.stream_ops.write(stream,buffer,offset,length,position,canOwn);if(!seeking)stream.position+=bytesWritten;try{if(stream.path&&FS.trackingDelegate["onWriteToFile"])FS.trackingDelegate["onWriteToFile"](stream.path)}catch(e){console.log("FS.trackingDelegate['onWriteToFile']('"+path+ +"') threw an exception: "+e.message)}return bytesWritten},allocate:function(stream,offset,length){if(offset<0||length<=0)throw new FS.ErrnoError(ERRNO_CODES.EINVAL);if((stream.flags&2097155)===0)throw new FS.ErrnoError(ERRNO_CODES.EBADF);if(!FS.isFile(stream.node.mode)&&!FS.isDir(node.mode))throw new FS.ErrnoError(ERRNO_CODES.ENODEV);if(!stream.stream_ops.allocate)throw new FS.ErrnoError(ERRNO_CODES.EOPNOTSUPP);stream.stream_ops.allocate(stream,offset,length)},mmap:function(stream,buffer,offset,length, +position,prot,flags){if((stream.flags&2097155)===1)throw new FS.ErrnoError(ERRNO_CODES.EACCES);if(!stream.stream_ops.mmap)throw new FS.ErrnoError(ERRNO_CODES.ENODEV);return stream.stream_ops.mmap(stream,buffer,offset,length,position,prot,flags)},msync:function(stream,buffer,offset,length,mmapFlags){if(!stream||!stream.stream_ops.msync)return 0;return stream.stream_ops.msync(stream,buffer,offset,length,mmapFlags)},munmap:function(stream){return 0},ioctl:function(stream,cmd,arg){if(!stream.stream_ops.ioctl)throw new FS.ErrnoError(ERRNO_CODES.ENOTTY); +return stream.stream_ops.ioctl(stream,cmd,arg)},readFile:function(path,opts){opts=opts||{};opts.flags=opts.flags||"r";opts.encoding=opts.encoding||"binary";if(opts.encoding!=="utf8"&&opts.encoding!=="binary")throw new Error('Invalid encoding type "'+opts.encoding+'"');var ret;var stream=FS.open(path,opts.flags);var stat=FS.stat(path);var length=stat.size;var buf=new Uint8Array(length);FS.read(stream,buf,0,length,0);if(opts.encoding==="utf8")ret=UTF8ArrayToString(buf,0);else if(opts.encoding==="binary")ret= +buf;FS.close(stream);return ret},writeFile:function(path,data,opts){opts=opts||{};opts.flags=opts.flags||"w";opts.encoding=opts.encoding||"utf8";if(opts.encoding!=="utf8"&&opts.encoding!=="binary")throw new Error('Invalid encoding type "'+opts.encoding+'"');var stream=FS.open(path,opts.flags,opts.mode);if(opts.encoding==="utf8"){var buf=new Uint8Array(lengthBytesUTF8(data)+1);var actualNumBytes=stringToUTF8Array(data,buf,0,buf.length);FS.write(stream,buf,0,actualNumBytes,0,opts.canOwn)}else if(opts.encoding=== +"binary")FS.write(stream,data,0,data.length,0,opts.canOwn);FS.close(stream)},cwd:function(){return FS.currentPath},chdir:function(path){var lookup=FS.lookupPath(path,{follow:true});if(!FS.isDir(lookup.node.mode))throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR);var err=FS.nodePermissions(lookup.node,"x");if(err)throw new FS.ErrnoError(err);FS.currentPath=lookup.path},createDefaultDirectories:function(){FS.mkdir("/tmp");FS.mkdir("/home");FS.mkdir("/home/web_user")},createDefaultDevices:function(){FS.mkdir("/dev"); +FS.registerDevice(FS.makedev(1,3),{read:function(){return 0},write:function(stream,buffer,offset,length,pos){return length}});FS.mkdev("/dev/null",FS.makedev(1,3));TTY.register(FS.makedev(5,0),TTY.default_tty_ops);TTY.register(FS.makedev(6,0),TTY.default_tty1_ops);FS.mkdev("/dev/tty",FS.makedev(5,0));FS.mkdev("/dev/tty1",FS.makedev(6,0));var random_device;if(typeof crypto!=="undefined"){var randomBuffer=new Uint8Array(1);random_device=function(){crypto.getRandomValues(randomBuffer);return randomBuffer[0]}}else if(ENVIRONMENT_IS_NODE)random_device= +function(){return require("crypto").randomBytes(1)[0]};else random_device=function(){return Math.random()*256|0};FS.createDevice("/dev","random",random_device);FS.createDevice("/dev","urandom",random_device);FS.mkdir("/dev/shm");FS.mkdir("/dev/shm/tmp")},createSpecialDirectories:function(){FS.mkdir("/proc");FS.mkdir("/proc/self");FS.mkdir("/proc/self/fd");FS.mount({mount:function(){var node=FS.createNode("/proc/self","fd",16384|511,73);node.node_ops={lookup:function(parent,name){var fd=+name;var stream= +FS.getStream(fd);if(!stream)throw new FS.ErrnoError(ERRNO_CODES.EBADF);var ret={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:function(){return stream.path}}};ret.parent=ret;return ret}};return node}},{},"/proc/self/fd")},createStandardStreams:function(){if(Module["stdin"])FS.createDevice("/dev","stdin",Module["stdin"]);else FS.symlink("/dev/tty","/dev/stdin");if(Module["stdout"])FS.createDevice("/dev","stdout",null,Module["stdout"]);else FS.symlink("/dev/tty","/dev/stdout");if(Module["stderr"])FS.createDevice("/dev", +"stderr",null,Module["stderr"]);else FS.symlink("/dev/tty1","/dev/stderr");var stdin=FS.open("/dev/stdin","r");assert(stdin.fd===0,"invalid handle for stdin ("+stdin.fd+")");var stdout=FS.open("/dev/stdout","w");assert(stdout.fd===1,"invalid handle for stdout ("+stdout.fd+")");var stderr=FS.open("/dev/stderr","w");assert(stderr.fd===2,"invalid handle for stderr ("+stderr.fd+")")},ensureErrnoError:function(){if(FS.ErrnoError)return;FS.ErrnoError=function ErrnoError(errno,node){this.node=node;this.setErrno= +function(errno){this.errno=errno;for(var key in ERRNO_CODES)if(ERRNO_CODES[key]===errno){this.code=key;break}};this.setErrno(errno);this.message=ERRNO_MESSAGES[errno]};FS.ErrnoError.prototype=new Error;FS.ErrnoError.prototype.constructor=FS.ErrnoError;[ERRNO_CODES.ENOENT].forEach(function(code){FS.genericErrors[code]=new FS.ErrnoError(code);FS.genericErrors[code].stack=""})},staticInit:function(){FS.ensureErrnoError();FS.nameTable=new Array(4096);FS.mount(MEMFS,{},"/");FS.createDefaultDirectories(); +FS.createDefaultDevices();FS.createSpecialDirectories();FS.filesystems={"MEMFS":MEMFS,"IDBFS":IDBFS,"NODEFS":NODEFS,"WORKERFS":WORKERFS}},init:function(input,output,error){assert(!FS.init.initialized,"FS.init was previously called. If you want to initialize later with custom parameters, remove any earlier calls (note that one is automatically added to the generated code)");FS.init.initialized=true;FS.ensureErrnoError();Module["stdin"]=input||Module["stdin"];Module["stdout"]=output||Module["stdout"]; +Module["stderr"]=error||Module["stderr"];FS.createStandardStreams()},quit:function(){FS.init.initialized=false;var fflush=Module["_fflush"];if(fflush)fflush(0);for(var i=0;ithis.length-1||idx<0)return undefined; +var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length")); +var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=function(from,to){if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);if(typeof Uint8Array!= +"undefined")xhr.responseType="arraybuffer";if(xhr.overrideMimeType)xhr.overrideMimeType("text/plain; charset=x-user-defined");xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined)return new Uint8Array(xhr.response||[]);else return intArrayFromString(xhr.responseText||"",true)};var lazyArray=this;lazyArray.setDataGetter(function(chunkNum){var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize- +1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]==="undefined")lazyArray.chunks[chunkNum]=doXHR(start,end);if(typeof lazyArray.chunks[chunkNum]==="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]});this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!=="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc"; +var lazyArray=new LazyUint8Array;Object.defineProperty(lazyArray,"length",{get:function(){if(!this.lengthKnown)this.cacheLength();return this._length}});Object.defineProperty(lazyArray,"chunkSize",{get:function(){if(!this.lengthKnown)this.cacheLength();return this._chunkSize}});var properties={isDevice:false,contents:lazyArray}}else var properties={isDevice:false,url:url};var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents)node.contents=properties.contents;else if(properties.url){node.contents= +null;node.url=properties.url}Object.defineProperty(node,"usedBytes",{get:function(){return this.contents.length}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(function(key){var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){if(!FS.forceLoadFile(node))throw new FS.ErrnoError(ERRNO_CODES.EIO);return fn.apply(null,arguments)}});stream_ops.read=function stream_ops_read(stream,buffer,offset,length,position){if(!FS.forceLoadFile(node))throw new FS.ErrnoError(ERRNO_CODES.EIO); +var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);assert(size>=0);if(contents.slice)for(var i=0;i=0;i--){var last=parts[i];if(last===".")parts.splice(i,1);else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot)for(;up--;up)parts.unshift("..");return parts},normalize:function(path){var isAbsolute=path.charAt(0)=== +"/",trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),!isAbsolute).join("/");if(!path&&!isAbsolute)path=".";if(path&&trailingSlash)path+="/";return(isAbsolute?"/":"")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir)return".";if(dir)dir=dir.substr(0,dir.length-1);return root+dir},basename:function(path){if(path==="/")return"/";var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path; +return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))},join2:function(l,r){return PATH.normalize(l+"/"+r)},resolve:function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!=="string")throw new TypeError("Arguments to path.resolve must be strings");else if(!path)return""; +resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=path.charAt(0)==="/"}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(function(p){return!!p}),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:function(from,to){from=PATH.resolve(from).substr(1);to=PATH.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--)if(arr[end]!=="")break;if(start>end)return[]; +return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i0){var start=Date.now();var blocker=Browser.mainLoop.queue.shift();blocker.func(blocker.arg);if(Browser.mainLoop.remainingBlockers){var remaining=Browser.mainLoop.remainingBlockers;var next=remaining%1==0?remaining-1:Math.floor(remaining);if(blocker.counted)Browser.mainLoop.remainingBlockers=next;else{next=next+.5;Browser.mainLoop.remainingBlockers=(8*remaining+next)/9}}console.log('main loop blocker "'+blocker.name+'" took '+(Date.now()-start)+" ms");Browser.mainLoop.updateStatus(); +setTimeout(Browser.mainLoop.runner,0);return}if(thisMainLoopId1&&Browser.mainLoop.currentFrameNumber%Browser.mainLoop.timingValue!=0){Browser.mainLoop.scheduler();return}if(Browser.mainLoop.method==="timeout"&&Module.ctx){Module.printErr("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!"); +Browser.mainLoop.method=""}Browser.mainLoop.runIter(function(){if(typeof arg!=="undefined")Runtime.dynCall("vi",func,[arg]);else Runtime.dynCall("v",func)});if(thisMainLoopId0)_emscripten_set_main_loop_timing(0,1E3/fps);else _emscripten_set_main_loop_timing(1,1);Browser.mainLoop.scheduler()}if(simulateInfiniteLoop)throw"SimulateInfiniteLoop"; +} +var Browser={mainLoop:{scheduler:null,method:"",currentlyRunningMainloop:0,func:null,arg:0,timingMode:0,timingValue:0,currentFrameNumber:0,queue:[],pause:function(){Browser.mainLoop.scheduler=null;Browser.mainLoop.currentlyRunningMainloop++},resume:function(){Browser.mainLoop.currentlyRunningMainloop++;var timingMode=Browser.mainLoop.timingMode;var timingValue=Browser.mainLoop.timingValue;var func=Browser.mainLoop.func;Browser.mainLoop.func=null;_emscripten_set_main_loop(func,0,false,Browser.mainLoop.arg,true); +_emscripten_set_main_loop_timing(timingMode,timingValue);Browser.mainLoop.scheduler()},updateStatus:function(){if(Module["setStatus"]){var message=Module["statusMessage"]||"Please wait...";var remaining=Browser.mainLoop.remainingBlockers;var expected=Browser.mainLoop.expectedBlockers;if(remaining)if(remaining=6){var curr=leftchar>>leftbits-6&63;leftbits-=6;ret+=BASE[curr]}}if(leftbits==2){ret+=BASE[(leftchar&3)<<4];ret+=PAD+PAD}else if(leftbits==4){ret+=BASE[(leftchar&15)<<2];ret+=PAD}return ret}audio.src="data:audio/x-"+name.substr(-3)+ +";base64,"+encode64(byteArray);finish(audio)};audio.src=url;Browser.safeSetTimeout(function(){finish(audio)},1E4)}else return fail()};Module["preloadPlugins"].push(audioPlugin);var canvas=Module["canvas"];function pointerLockChange(){Browser.pointerLock=document["pointerLockElement"]===canvas||document["mozPointerLockElement"]===canvas||document["webkitPointerLockElement"]===canvas||document["msPointerLockElement"]===canvas}if(canvas){canvas.requestPointerLock=canvas["requestPointerLock"]||canvas["mozRequestPointerLock"]|| +canvas["webkitRequestPointerLock"]||canvas["msRequestPointerLock"]||function(){};canvas.exitPointerLock=document["exitPointerLock"]||document["mozExitPointerLock"]||document["webkitExitPointerLock"]||document["msExitPointerLock"]||function(){};canvas.exitPointerLock=canvas.exitPointerLock.bind(document);document.addEventListener("pointerlockchange",pointerLockChange,false);document.addEventListener("mozpointerlockchange",pointerLockChange,false);document.addEventListener("webkitpointerlockchange", +pointerLockChange,false);document.addEventListener("mspointerlockchange",pointerLockChange,false);if(Module["elementPointerLock"])canvas.addEventListener("click",function(ev){if(!Browser.pointerLock&&canvas.requestPointerLock){canvas.requestPointerLock();ev.preventDefault()}},false)}},createContext:function(canvas,useWebGL,setInModule,webGLContextAttributes){if(useWebGL&&Module.ctx&&canvas==Module.canvas)return Module.ctx;var ctx;var contextHandle;if(useWebGL){var contextAttributes={antialias:false, +alpha:false};if(webGLContextAttributes)for(var attribute in webGLContextAttributes)contextAttributes[attribute]=webGLContextAttributes[attribute];contextHandle=GL.createContext(canvas,contextAttributes);if(contextHandle)ctx=GL.getContext(contextHandle).GLctx;canvas.style.backgroundColor="black"}else ctx=canvas.getContext("2d");if(!ctx)return null;if(setInModule){if(!useWebGL)assert(typeof GLctx==="undefined","cannot set in module if GLctx is used, but we are a non-GL context that would replace it"); +Module.ctx=ctx;if(useWebGL)GL.makeContextCurrent(contextHandle);Module.useWebGL=useWebGL;Browser.moduleContextCreatedCallbacks.forEach(function(callback){callback()});Browser.init()}return ctx},destroyContext:function(canvas,useWebGL,setInModule){},fullScreenHandlersInstalled:false,lockPointer:undefined,resizeCanvas:undefined,requestFullScreen:function(lockPointer,resizeCanvas,vrDevice){Browser.lockPointer=lockPointer;Browser.resizeCanvas=resizeCanvas;Browser.vrDevice=vrDevice;if(typeof Browser.lockPointer=== +"undefined")Browser.lockPointer=true;if(typeof Browser.resizeCanvas==="undefined")Browser.resizeCanvas=false;if(typeof Browser.vrDevice==="undefined")Browser.vrDevice=null;var canvas=Module["canvas"];function fullScreenChange(){Browser.isFullScreen=false;var canvasContainer=canvas.parentNode;if((document["webkitFullScreenElement"]||document["webkitFullscreenElement"]||document["mozFullScreenElement"]||document["mozFullscreenElement"]||document["fullScreenElement"]||document["fullscreenElement"]|| +document["msFullScreenElement"]||document["msFullscreenElement"]||document["webkitCurrentFullScreenElement"])===canvasContainer){canvas.cancelFullScreen=document["cancelFullScreen"]||document["mozCancelFullScreen"]||document["webkitCancelFullScreen"]||document["msExitFullscreen"]||document["exitFullscreen"]||function(){};canvas.cancelFullScreen=canvas.cancelFullScreen.bind(document);if(Browser.lockPointer)canvas.requestPointerLock();Browser.isFullScreen=true;if(Browser.resizeCanvas)Browser.setFullScreenCanvasSize()}else{canvasContainer.parentNode.insertBefore(canvas, +canvasContainer);canvasContainer.parentNode.removeChild(canvasContainer);if(Browser.resizeCanvas)Browser.setWindowedCanvasSize()}if(Module["onFullScreen"])Module["onFullScreen"](Browser.isFullScreen);Browser.updateCanvasDimensions(canvas)}if(!Browser.fullScreenHandlersInstalled){Browser.fullScreenHandlersInstalled=true;document.addEventListener("fullscreenchange",fullScreenChange,false);document.addEventListener("mozfullscreenchange",fullScreenChange,false);document.addEventListener("webkitfullscreenchange", +fullScreenChange,false);document.addEventListener("MSFullscreenChange",fullScreenChange,false)}var canvasContainer=document.createElement("div");canvas.parentNode.insertBefore(canvasContainer,canvas);canvasContainer.appendChild(canvas);canvasContainer.requestFullScreen=canvasContainer["requestFullScreen"]||canvasContainer["mozRequestFullScreen"]||canvasContainer["msRequestFullscreen"]||(canvasContainer["webkitRequestFullScreen"]?function(){canvasContainer["webkitRequestFullScreen"](Element["ALLOW_KEYBOARD_INPUT"])}: +null);if(vrDevice)canvasContainer.requestFullScreen({vrDisplay:vrDevice});else canvasContainer.requestFullScreen()},nextRAF:0,fakeRequestAnimationFrame:function(func){var now=Date.now();if(Browser.nextRAF===0)Browser.nextRAF=now+1E3/60;else while(now+2>=Browser.nextRAF)Browser.nextRAF+=1E3/60;var delay=Math.max(Browser.nextRAF-now,0);setTimeout(func,delay)},requestAnimationFrame:function requestAnimationFrame(func){if(typeof window==="undefined")Browser.fakeRequestAnimationFrame(func);else{if(!window.requestAnimationFrame)window.requestAnimationFrame= +window["requestAnimationFrame"]||window["mozRequestAnimationFrame"]||window["webkitRequestAnimationFrame"]||window["msRequestAnimationFrame"]||window["oRequestAnimationFrame"]||Browser.fakeRequestAnimationFrame;window.requestAnimationFrame(func)}},safeCallback:function(func){return function(){if(!ABORT)return func.apply(null,arguments)}},allowAsyncCallbacks:true,queuedAsyncCallbacks:[],pauseAsyncCallbacks:function(){Browser.allowAsyncCallbacks=false},resumeAsyncCallbacks:function(){Browser.allowAsyncCallbacks= +true;if(Browser.queuedAsyncCallbacks.length>0){var callbacks=Browser.queuedAsyncCallbacks;Browser.queuedAsyncCallbacks=[];callbacks.forEach(function(func){func()})}},safeRequestAnimationFrame:function(func){return Browser.requestAnimationFrame(function(){if(ABORT)return;if(Browser.allowAsyncCallbacks)func();else Browser.queuedAsyncCallbacks.push(func)})},safeSetTimeout:function(func,timeout){Module["noExitRuntime"]=true;return setTimeout(function(){if(ABORT)return;if(Browser.allowAsyncCallbacks)func(); +else Browser.queuedAsyncCallbacks.push(func)},timeout)},safeSetInterval:function(func,timeout){Module["noExitRuntime"]=true;return setInterval(function(){if(ABORT)return;if(Browser.allowAsyncCallbacks)func()},timeout)},getMimetype:function(name){return{"jpg":"image/jpeg","jpeg":"image/jpeg","png":"image/png","bmp":"image/bmp","ogg":"audio/ogg","wav":"audio/wav","mp3":"audio/mpeg"}[name.substr(name.lastIndexOf(".")+1)]},getUserMedia:function(func){if(!window.getUserMedia)window.getUserMedia=navigator["getUserMedia"]|| +navigator["mozGetUserMedia"];window.getUserMedia(func)},getMovementX:function(event){return event["movementX"]||event["mozMovementX"]||event["webkitMovementX"]||0},getMovementY:function(event){return event["movementY"]||event["mozMovementY"]||event["webkitMovementY"]||0},getMouseWheelDelta:function(event){var delta=0;switch(event.type){case "DOMMouseScroll":delta=event.detail;break;case "mousewheel":delta=event.wheelDelta;break;case "wheel":delta=event["deltaY"];break;default:throw"unrecognized mouse wheel event: "+ +event.type;}return delta},mouseX:0,mouseY:0,mouseMovementX:0,mouseMovementY:0,touches:{},lastTouches:{},calculateMouseEvent:function(event){if(Browser.pointerLock){if(event.type!="mousemove"&&"mozMovementX"in event)Browser.mouseMovementX=Browser.mouseMovementY=0;else{Browser.mouseMovementX=Browser.getMovementX(event);Browser.mouseMovementY=Browser.getMovementY(event)}if(typeof SDL!="undefined"){Browser.mouseX=SDL.mouseX+Browser.mouseMovementX;Browser.mouseY=SDL.mouseY+Browser.mouseMovementY}else{Browser.mouseX+= +Browser.mouseMovementX;Browser.mouseY+=Browser.mouseMovementY}}else{var rect=Module["canvas"].getBoundingClientRect();var cw=Module["canvas"].width;var ch=Module["canvas"].height;var scrollX=typeof window.scrollX!=="undefined"?window.scrollX:window.pageXOffset;var scrollY=typeof window.scrollY!=="undefined"?window.scrollY:window.pageYOffset;if(event.type==="touchstart"||event.type==="touchend"||event.type==="touchmove"){var touch=event.touch;if(touch===undefined)return;var adjustedX=touch.pageX-(scrollX+ +rect.left);var adjustedY=touch.pageY-(scrollY+rect.top);adjustedX=adjustedX*(cw/rect.width);adjustedY=adjustedY*(ch/rect.height);var coords={x:adjustedX,y:adjustedY};if(event.type==="touchstart"){Browser.lastTouches[touch.identifier]=coords;Browser.touches[touch.identifier]=coords}else if(event.type==="touchend"||event.type==="touchmove"){var last=Browser.touches[touch.identifier];if(!last)last=coords;Browser.lastTouches[touch.identifier]=last;Browser.touches[touch.identifier]=coords}return}var x= +event.pageX-(scrollX+rect.left);var y=event.pageY-(scrollY+rect.top);x=x*(cw/rect.width);y=y*(ch/rect.height);Browser.mouseMovementX=x-Browser.mouseX;Browser.mouseMovementY=y-Browser.mouseY;Browser.mouseX=x;Browser.mouseY=y}},xhrLoad:function(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function xhr_onload(){if(xhr.status==200||xhr.status==0&&xhr.response)onload(xhr.response);else onerror()};xhr.onerror=onerror;xhr.send(null)},asyncLoad:function(url, +onload,onerror,noRunDep){Browser.xhrLoad(url,function(arrayBuffer){assert(arrayBuffer,'Loading data file "'+url+'" failed (no arrayBuffer).');onload(new Uint8Array(arrayBuffer));if(!noRunDep)removeRunDependency("al "+url)},function(event){if(onerror)onerror();else throw'Loading data file "'+url+'" failed.';});if(!noRunDep)addRunDependency("al "+url)},resizeListeners:[],updateResizeListeners:function(){var canvas=Module["canvas"];Browser.resizeListeners.forEach(function(listener){listener(canvas.width, +canvas.height)})},setCanvasSize:function(width,height,noUpdates){var canvas=Module["canvas"];Browser.updateCanvasDimensions(canvas,width,height);if(!noUpdates)Browser.updateResizeListeners()},windowedWidth:0,windowedHeight:0,setFullScreenCanvasSize:function(){if(typeof SDL!="undefined"){var flags=HEAPU32[SDL.screen+Runtime.QUANTUM_SIZE*0>>2];flags=flags|8388608;HEAP32[SDL.screen+Runtime.QUANTUM_SIZE*0>>2]=flags}Browser.updateResizeListeners()},setWindowedCanvasSize:function(){if(typeof SDL!="undefined"){var flags= +HEAPU32[SDL.screen+Runtime.QUANTUM_SIZE*0>>2];flags=flags&~8388608;HEAP32[SDL.screen+Runtime.QUANTUM_SIZE*0>>2]=flags}Browser.updateResizeListeners()},updateCanvasDimensions:function(canvas,wNative,hNative){if(wNative&&hNative){canvas.widthNative=wNative;canvas.heightNative=hNative}else{wNative=canvas.widthNative;hNative=canvas.heightNative}var w=wNative;var h=hNative;if(Module["forcedAspectRatio"]&&Module["forcedAspectRatio"]>0)if(w/h>2]=ret;return ret} +function _malloc(bytes){var ptr=Runtime.dynamicAlloc(bytes+8);return ptr+8&4294967288}Module["_malloc"]=_malloc;function ___cxa_allocate_exception(size){return _malloc(size)} +var SYSCALLS={DEFAULT_POLLMASK:5,mappings:{},umask:511,calculateAt:function(dirfd,path){if(path[0]!=="/"){var dir;if(dirfd===-100)dir=FS.cwd();else{var dirstream=FS.getStream(dirfd);if(!dirstream)throw new FS.ErrnoError(ERRNO_CODES.EBADF);dir=dirstream.path}path=PATH.join2(dir,path)}return path},doStat:function(func,path,buf){try{var stat=func(path)}catch(e){if(e&&e.node&&PATH.normalize(path)!==PATH.normalize(FS.getPath(e.node)))return-ERRNO_CODES.ENOTDIR;throw e;}HEAP32[buf>>2]=stat.dev;HEAP32[buf+ +4>>2]=0;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAP32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;HEAP32[buf+32>>2]=0;HEAP32[buf+36>>2]=stat.size;HEAP32[buf+40>>2]=4096;HEAP32[buf+44>>2]=stat.blocks;HEAP32[buf+48>>2]=stat.atime.getTime()/1E3|0;HEAP32[buf+52>>2]=0;HEAP32[buf+56>>2]=stat.mtime.getTime()/1E3|0;HEAP32[buf+60>>2]=0;HEAP32[buf+64>>2]=stat.ctime.getTime()/1E3|0;HEAP32[buf+68>>2]=0;HEAP32[buf+72>>2]=stat.ino;return 0}, +doMsync:function(addr,stream,len,flags){var buffer=new Uint8Array(HEAPU8.subarray(addr,addr+len));FS.msync(stream,buffer,0,len,flags)},doMkdir:function(path,mode){path=PATH.normalize(path);if(path[path.length-1]==="/")path=path.substr(0,path.length-1);FS.mkdir(path,mode,0);return 0},doMknod:function(path,mode,dev){switch(mode&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-ERRNO_CODES.EINVAL}FS.mknod(path,mode,dev);return 0},doReadlink:function(path,buf,bufsize){if(bufsize<= +0)return-ERRNO_CODES.EINVAL;var ret=FS.readlink(path);ret=ret.slice(0,Math.max(0,bufsize));writeStringToMemory(ret,buf,true);return ret.length},doAccess:function(path,amode){if(amode&~7)return-ERRNO_CODES.EINVAL;var node;var lookup=FS.lookupPath(path,{follow:true});node=lookup.node;var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms))return-ERRNO_CODES.EACCES;return 0},doDup:function(path,flags,suggestFD){var suggest=FS.getStream(suggestFD); +if(suggest)FS.close(suggest);return FS.open(path,flags,0,suggestFD,suggestFD).fd},doReadv:function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.write(stream,HEAP8,ptr,len, +offset);if(curr<0)return-1;ret+=curr}return ret},varargs:0,get:function(varargs){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(){var ret=Pointer_stringify(SYSCALLS.get());return ret},getStreamFromFD:function(){var stream=FS.getStream(SYSCALLS.get());if(!stream)throw new FS.ErrnoError(ERRNO_CODES.EBADF);return stream},getSocketFromFD:function(){var socket=SOCKFS.getSocket(SYSCALLS.get());if(!socket)throw new FS.ErrnoError(ERRNO_CODES.EBADF);return socket},getSocketAddress:function(allowNull){var addrp= +SYSCALLS.get(),addrlen=SYSCALLS.get();if(allowNull&&addrp===0)return null;var info=__read_sockaddr(addrp,addrlen);if(info.errno)throw new FS.ErrnoError(info.errno);info.addr=DNS.lookup_addr(info.addr)||info.addr;return info},get64:function(){var low=SYSCALLS.get(),high=SYSCALLS.get();if(low>=0)assert(high===0);else assert(high===-1);return low},getZero:function(){assert(SYSCALLS.get()===0)}}; +function ___syscall54(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),op=SYSCALLS.get();switch(op){case 21505:{if(!stream.tty)return-ERRNO_CODES.ENOTTY;return 0}case 21506:{if(!stream.tty)return-ERRNO_CODES.ENOTTY;return 0}case 21519:{if(!stream.tty)return-ERRNO_CODES.ENOTTY;var argp=SYSCALLS.get();HEAP32[argp>>2]=0;return 0}case 21520:{if(!stream.tty)return-ERRNO_CODES.ENOTTY;return-ERRNO_CODES.EINVAL}case 21531:{var argp=SYSCALLS.get();return FS.ioctl(stream,op, +argp)}default:abort("bad ioctl syscall "+op)}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}Module["_i64Add"]=_i64Add;Module["_bitshift64Lshr"]=_bitshift64Lshr;function ___cxa_pure_virtual(){ABORT=true;throw"Pure virtual function called!";}function _b2WorldEndContactBody(contactPtr){b2World.EndContactBody(contactPtr)}var _BDtoIHigh=true; +function _pthread_cleanup_push(routine,arg){__ATEXIT__.push(function(){Runtime.dynCall("vi",routine,[arg])});_pthread_cleanup_push.level=__ATEXIT__.length}function _pthread_cleanup_pop(){assert(_pthread_cleanup_push.level==__ATEXIT__.length,"cannot pop if something else added meanwhile!");__ATEXIT__.pop();_pthread_cleanup_push.level=__ATEXIT__.length}function _b2WorldPreSolve(contactPtr,oldManifoldPtr){b2World.PreSolve(contactPtr,oldManifoldPtr)} +function ___cxa_begin_catch(ptr){__ZSt18uncaught_exceptionv.uncaught_exception--;EXCEPTIONS.caught.push(ptr);EXCEPTIONS.addRef(EXCEPTIONS.deAdjust(ptr));return ptr}var _sinf=Math_sin;function _emscripten_memcpy_big(dest,src,num){HEAPU8.set(HEAPU8.subarray(src,src+num),dest);return dest}Module["_memcpy"]=_memcpy; +function ___syscall6(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD();FS.close(stream);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function _b2WorldQueryAABB(fixturePtr){return b2World.QueryAABB(fixturePtr)} +function _sbrk(bytes){var self=_sbrk;if(!self.called){DYNAMICTOP=alignMemoryPage(DYNAMICTOP);self.called=true;assert(Runtime.dynamicAlloc);self.alloc=Runtime.dynamicAlloc;Runtime.dynamicAlloc=function(){abort("cannot dynamically allocate, sbrk now has control")}}var ret=DYNAMICTOP;if(bytes!=0){var success=self.alloc(bytes);if(!success)return-1>>>0}return ret}Module["_memmove"]=_memmove;var _BItoD=true;function _b2WorldPostSolve(contactPtr,impulsePtr){b2World.PostSolve(contactPtr,impulsePtr)} +var _FtoILow=true;function _pthread_self(){return 0} +function ___syscall140(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),offset_high=SYSCALLS.get(),offset_low=SYSCALLS.get(),result=SYSCALLS.get(),whence=SYSCALLS.get();var offset=offset_low;assert(offset_high===0);FS.llseek(stream,offset,whence);HEAP32[result>>2]=stream.position;if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}} +function ___syscall146(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),iov=SYSCALLS.get(),iovcnt=SYSCALLS.get();return SYSCALLS.doWritev(stream,iov,iovcnt)}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}Module["requestFullScreen"]=function Module_requestFullScreen(lockPointer,resizeCanvas,vrDevice){Browser.requestFullScreen(lockPointer,resizeCanvas,vrDevice)};Module["requestAnimationFrame"]=function Module_requestAnimationFrame(func){Browser.requestAnimationFrame(func)}; +Module["setCanvasSize"]=function Module_setCanvasSize(width,height,noUpdates){Browser.setCanvasSize(width,height,noUpdates)};Module["pauseMainLoop"]=function Module_pauseMainLoop(){Browser.mainLoop.pause()};Module["resumeMainLoop"]=function Module_resumeMainLoop(){Browser.mainLoop.resume()};Module["getUserMedia"]=function Module_getUserMedia(){Browser.getUserMedia()}; +Module["createContext"]=function Module_createContext(canvas,useWebGL,setInModule,webGLContextAttributes){return Browser.createContext(canvas,useWebGL,setInModule,webGLContextAttributes)};FS.staticInit();__ATINIT__.unshift(function(){if(!Module["noFSInit"]&&!FS.init.initialized)FS.init()});__ATMAIN__.push(function(){FS.ignorePermissions=false});__ATEXIT__.push(function(){FS.quit()});Module["FS_createFolder"]=FS.createFolder;Module["FS_createPath"]=FS.createPath;Module["FS_createDataFile"]=FS.createDataFile; +Module["FS_createPreloadedFile"]=FS.createPreloadedFile;Module["FS_createLazyFile"]=FS.createLazyFile;Module["FS_createLink"]=FS.createLink;Module["FS_createDevice"]=FS.createDevice;Module["FS_unlink"]=FS.unlink;__ATINIT__.unshift(function(){TTY.init()});__ATEXIT__.push(function(){TTY.shutdown()});if(ENVIRONMENT_IS_NODE){var fs=require("fs");var NODEJS_PATH=require("path");NODEFS.staticInit()}STACK_BASE=STACKTOP=Runtime.alignMemory(STATICTOP);staticSealed=true;STACK_MAX=STACK_BASE+TOTAL_STACK; +DYNAMIC_BASE=DYNAMICTOP=Runtime.alignMemory(STACK_MAX);assert(DYNAMIC_BASE>2]=value;return value}function ___resumeException(ptr){if(!EXCEPTIONS.last)EXCEPTIONS.last=ptr;throw ptr+" - Exception catching is disabled, this exception cannot be caught. Compile with -s DISABLE_EXCEPTION_CATCHING=0 or DISABLE_EXCEPTION_CATCHING=2 to catch.";} -function ___cxa_find_matching_catch(){var thrown=EXCEPTIONS.last;if(!thrown)return(Runtime.setTempRet0(0),0)|0;var info=EXCEPTIONS.infos[thrown];var throwntype=info.type;if(!throwntype)return(Runtime.setTempRet0(0),thrown)|0;var typeArray=Array.prototype.slice.call(arguments);var pointer=Module["___cxa_is_pointer_type"](throwntype);if(!___cxa_find_matching_catch.buffer)___cxa_find_matching_catch.buffer=_malloc(4);HEAP32[___cxa_find_matching_catch.buffer>>2]=thrown;thrown=___cxa_find_matching_catch.buffer; -for(var i=0;i>2];info.adjusted=thrown;return(Runtime.setTempRet0(typeArray[i]),thrown)|0}thrown=HEAP32[thrown>>2];return(Runtime.setTempRet0(throwntype),thrown)|0}function ___gxx_personality_v0(){}function _b2WorldPostSolve(contactPtr,impulsePtr){b2World.PostSolve(contactPtr,impulsePtr)} -function ___syscall140(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),offset_high=SYSCALLS.get(),offset_low=SYSCALLS.get(),result=SYSCALLS.get(),whence=SYSCALLS.get();var offset=offset_low;FS.llseek(stream,offset,whence);HEAP32[result>>2]=stream.position;if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}} -function ___syscall146(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.get(),iov=SYSCALLS.get(),iovcnt=SYSCALLS.get();var ret=0;if(!___syscall146.buffer){___syscall146.buffers=[null,[],[]];___syscall146.printChar=function(stream,curr){var buffer=___syscall146.buffers[stream];assert(buffer);if(curr===0||curr===10){(stream===1?Module["print"]:Module["printErr"])(UTF8ArrayToString(buffer,0));buffer.length=0}else buffer.push(curr)}}for(var i=0;i>2]; -var len=HEAP32[iov+(i*8+4)>>2];for(var j=0;j>2]=DYNAMIC_BASE;staticSealed=true;function invoke_diiiiid(index,a1,a2,a3,a4,a5,a6){try{return Module["dynCall_diiiiid"](index,a1,a2,a3,a4,a5,a6)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}} -function invoke_ii(index,a1){try{return Module["dynCall_ii"](index,a1)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_viiiii(index,a1,a2,a3,a4,a5){try{Module["dynCall_viiiii"](index,a1,a2,a3,a4,a5)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_did(index,a1,a2){try{return Module["dynCall_did"](index,a1,a2)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}} -function invoke_vi(index,a1){try{Module["dynCall_vi"](index,a1)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_diiiid(index,a1,a2,a3,a4,a5){try{return Module["dynCall_diiiid"](index,a1,a2,a3,a4,a5)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_vii(index,a1,a2){try{Module["dynCall_vii"](index,a1,a2)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}} -function invoke_iiii(index,a1,a2,a3){try{return Module["dynCall_iiii"](index,a1,a2,a3)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_viii(index,a1,a2,a3){try{Module["dynCall_viii"](index,a1,a2,a3)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_v(index){try{Module["dynCall_v"](index)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}} -function invoke_viid(index,a1,a2,a3){try{Module["dynCall_viid"](index,a1,a2,a3)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_iiiii(index,a1,a2,a3,a4){try{return Module["dynCall_iiiii"](index,a1,a2,a3,a4)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}} -function invoke_viiiiii(index,a1,a2,a3,a4,a5,a6){try{Module["dynCall_viiiiii"](index,a1,a2,a3,a4,a5,a6)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_iii(index,a1,a2){try{return Module["dynCall_iii"](index,a1,a2)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}} -function invoke_iiiiii(index,a1,a2,a3,a4,a5){try{return Module["dynCall_iiiiii"](index,a1,a2,a3,a4,a5)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_viiii(index,a1,a2,a3,a4){try{Module["dynCall_viiii"](index,a1,a2,a3,a4)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}} -Module.asmGlobalArg={"Math":Math,"Int8Array":Int8Array,"Int16Array":Int16Array,"Int32Array":Int32Array,"Uint8Array":Uint8Array,"Uint16Array":Uint16Array,"Uint32Array":Uint32Array,"Float32Array":Float32Array,"Float64Array":Float64Array,"NaN":NaN,"Infinity":Infinity}; -Module.asmLibraryArg={"abort":abort,"assert":assert,"enlargeMemory":enlargeMemory,"getTotalMemory":getTotalMemory,"abortOnCannotGrowMemory":abortOnCannotGrowMemory,"invoke_diiiiid":invoke_diiiiid,"invoke_ii":invoke_ii,"invoke_viiiii":invoke_viiiii,"invoke_did":invoke_did,"invoke_vi":invoke_vi,"invoke_diiiid":invoke_diiiid,"invoke_vii":invoke_vii,"invoke_iiii":invoke_iiii,"invoke_viii":invoke_viii,"invoke_v":invoke_v,"invoke_viid":invoke_viid,"invoke_iiiii":invoke_iiiii,"invoke_viiiiii":invoke_viiiiii, -"invoke_iii":invoke_iii,"invoke_iiiiii":invoke_iiiiii,"invoke_viiii":invoke_viiii,"_pthread_key_create":_pthread_key_create,"_abort":_abort,"_b2WorldPreSolve":_b2WorldPreSolve,"___gxx_personality_v0":___gxx_personality_v0,"__ZSt18uncaught_exceptionv":__ZSt18uncaught_exceptionv,"___setErrNo":___setErrNo,"___cxa_begin_catch":___cxa_begin_catch,"_emscripten_memcpy_big":_emscripten_memcpy_big,"___resumeException":___resumeException,"___cxa_find_matching_catch":___cxa_find_matching_catch,"_b2WorldRayCastCallback":_b2WorldRayCastCallback, -"_pthread_getspecific":_pthread_getspecific,"_pthread_once":_pthread_once,"___syscall140":___syscall140,"___syscall54":___syscall54,"___unlock":___unlock,"_b2WorldBeginContactBody":_b2WorldBeginContactBody,"_pthread_setspecific":_pthread_setspecific,"___lock":___lock,"___syscall6":___syscall6,"_b2WorldEndContactBody":_b2WorldEndContactBody,"_b2WorldQueryAABB":_b2WorldQueryAABB,"_b2WorldPostSolve":_b2WorldPostSolve,"___cxa_pure_virtual":___cxa_pure_virtual,"___syscall146":___syscall146,"DYNAMICTOP_PTR":DYNAMICTOP_PTR, -"tempDoublePtr":tempDoublePtr,"ABORT":ABORT,"STACKTOP":STACKTOP,"STACK_MAX":STACK_MAX,"cttz_i8":cttz_i8}; -var asm=function(global,env,buffer){"use asm";var a=new global.Int8Array(buffer);var b=new global.Int16Array(buffer);var c=new global.Int32Array(buffer);var d=new global.Uint8Array(buffer);var e=new global.Uint16Array(buffer);var f=new global.Uint32Array(buffer);var g=new global.Float32Array(buffer);var h=new global.Float64Array(buffer);var i=env.DYNAMICTOP_PTR|0;var j=env.tempDoublePtr|0;var k=env.ABORT|0;var l=env.STACKTOP|0;var m=env.STACK_MAX|0;var n=env.cttz_i8|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;var z=0;var A=global.Math.floor;var B=global.Math.abs;var C=global.Math.sqrt;var D=global.Math.pow;var E=global.Math.cos;var F=global.Math.sin;var G=global.Math.tan;var H=global.Math.acos;var I=global.Math.asin;var J=global.Math.atan;var K=global.Math.atan2;var L=global.Math.exp;var M=global.Math.log;var N=global.Math.ceil;var O=global.Math.imul;var P=global.Math.min;var Q=global.Math.max;var R=global.Math.clz32;var S=env.abort;var T=env.assert; -var U=env.enlargeMemory;var V=env.getTotalMemory;var W=env.abortOnCannotGrowMemory;var X=env.invoke_diiiiid;var Y=env.invoke_ii;var Z=env.invoke_viiiii;var _=env.invoke_did;var $=env.invoke_vi;var aa=env.invoke_diiiid;var ba=env.invoke_vii;var ca=env.invoke_iiii;var da=env.invoke_viii;var ea=env.invoke_v;var fa=env.invoke_viid;var ga=env.invoke_iiiii;var ha=env.invoke_viiiiii;var ia=env.invoke_iii;var ja=env.invoke_iiiiii;var ka=env.invoke_viiii;var la=env._pthread_key_create;var ma=env._abort;var na= -env._b2WorldPreSolve;var oa=env.___gxx_personality_v0;var pa=env.__ZSt18uncaught_exceptionv;var qa=env.___setErrNo;var ra=env.___cxa_begin_catch;var sa=env._emscripten_memcpy_big;var ta=env.___resumeException;var ua=env.___cxa_find_matching_catch;var va=env._b2WorldRayCastCallback;var wa=env._pthread_getspecific;var xa=env._pthread_once;var ya=env.___syscall140;var za=env.___syscall54;var Aa=env.___unlock;var Ba=env._b2WorldBeginContactBody;var Ca=env._pthread_setspecific;var Da=env.___lock;var Ea= -env.___syscall6;var Fa=env._b2WorldEndContactBody;var Ga=env._b2WorldQueryAABB;var Ha=env._b2WorldPostSolve;var Ia=env.___cxa_pure_virtual;var Ja=env.___syscall146;var Ka=0;function Mk(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,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;e=l;l=l+16|0;f=e;g=a;a=b;a:while(1){b=a;h=a+-8|0;i=g;while(1){j=i;b:while(1){k=j;m=b-k|0;n=m>>3;switch(n|0){case 2:{o=5;break a;break}case 3:{o= -7;break a;break}case 4:{o=15;break a;break}case 5:{o=27;break a;break}case 1:case 0:{o=86;break a;break}default:{}}if((m|0)<248){o=29;break a}p=j+(((n|0)/2|0)<<3)|0;do if((m|0)<=7992){q=Ya[c[d>>2]&31](p,j)|0;r=Ya[c[d>>2]&31](h,p)|0;if(!q){if(!r){s=0;break}q=p;t=c[q>>2]|0;u=c[q+4>>2]|0;q=h;v=c[q+4>>2]|0;w=p;c[w>>2]=c[q>>2];c[w+4>>2]=v;v=h;c[v>>2]=t;c[v+4>>2]=u;if(!(Ya[c[d>>2]&31](p,j)|0)){s=1;break}u=j;v=c[u>>2]|0;t=c[u+4>>2]|0;u=p;w=c[u+4>>2]|0;q=j;c[q>>2]=c[u>>2];c[q+4>>2]=w;w=p;c[w>>2]=v;c[w+4>> -2]=t;s=2;break}t=j;w=c[t>>2]|0;v=c[t+4>>2]|0;if(r){r=h;t=c[r+4>>2]|0;q=j;c[q>>2]=c[r>>2];c[q+4>>2]=t;t=h;c[t>>2]=w;c[t+4>>2]=v;s=1;break}t=p;q=c[t+4>>2]|0;r=j;c[r>>2]=c[t>>2];c[r+4>>2]=q;q=p;c[q>>2]=w;c[q+4>>2]=v;if(Ya[c[d>>2]&31](h,p)|0){v=p;q=c[v>>2]|0;w=c[v+4>>2]|0;v=h;r=c[v+4>>2]|0;t=p;c[t>>2]=c[v>>2];c[t+4>>2]=r;r=h;c[r>>2]=q;c[r+4>>2]=w;s=2}else s=1}else{w=(n|0)/4|0;s=Nk(j,j+(w<<3)|0,p,p+(w<<3)|0,h,d)|0}while(0);if(Ya[c[d>>2]&31](j,p)|0){x=h;y=s;break}else z=h;while(1){z=z+-8|0;if((j|0)==(z| -0))break;if(Ya[c[d>>2]&31](z,p)|0){o=69;break b}}n=j+8|0;if(Ya[c[d>>2]&31](j,h)|0)A=n;else{if((n|0)==(h|0)){o=86;break a}else B=n;while(1){if(Ya[c[d>>2]&31](j,B)|0)break;n=B+8|0;if((n|0)==(h|0)){o=86;break a}else B=n}n=B;m=c[n>>2]|0;w=c[n+4>>2]|0;n=h;r=c[n+4>>2]|0;q=B;c[q>>2]=c[n>>2];c[q+4>>2]=r;r=h;c[r>>2]=m;c[r+4>>2]=w;A=B+8|0}if((A|0)==(h|0)){o=86;break a}else{C=h;D=A}while(1){w=D;while(1){E=w+8|0;if(Ya[c[d>>2]&31](j,w)|0){F=C;break}else w=E}do F=F+-8|0;while(Ya[c[d>>2]&31](j,F)|0);if(w>>>0>=F>>> -0){j=w;continue b}r=w;m=c[r>>2]|0;q=c[r+4>>2]|0;r=F;n=c[r+4>>2]|0;t=w;c[t>>2]=c[r>>2];c[t+4>>2]=n;n=F;c[n>>2]=m;c[n+4>>2]=q;C=F;D=E}}if((o|0)==69){o=0;q=j;n=c[q>>2]|0;m=c[q+4>>2]|0;q=z;t=c[q+4>>2]|0;r=j;c[r>>2]=c[q>>2];c[r+4>>2]=t;t=z;c[t>>2]=n;c[t+4>>2]=m;x=z;y=s+1|0}m=j+8|0;c:do if(m>>>0>>0){t=p;n=x;r=m;q=y;while(1){v=r;while(1){G=v+8|0;if(Ya[c[d>>2]&31](v,t)|0)v=G;else{H=n;break}}do H=H+-8|0;while(!(Ya[c[d>>2]&31](H,t)|0));if(v>>>0>H>>>0){I=t;J=q;K=v;break c}w=v;u=c[w>>2]|0;L=c[w+4>>2]|0;w= -H;M=c[w+4>>2]|0;N=v;c[N>>2]=c[w>>2];c[N+4>>2]=M;M=H;c[M>>2]=u;c[M+4>>2]=L;t=(t|0)==(v|0)?H:t;n=H;r=G;q=q+1|0}}else{I=p;J=y;K=m}while(0);if((K|0)!=(I|0)?Ya[c[d>>2]&31](I,K)|0:0){m=K;q=c[m>>2]|0;r=c[m+4>>2]|0;m=I;n=c[m+4>>2]|0;t=K;c[t>>2]=c[m>>2];c[t+4>>2]=n;n=I;c[n>>2]=q;c[n+4>>2]=r;O=J+1|0}else O=J;if(!O){P=Ok(j,K,d)|0;r=K+8|0;if(Ok(r,a,d)|0){o=85;break}if(P){i=r;continue}}r=K;if((r-k|0)>=(b-r|0)){o=84;break}Mk(j,K,d);i=K+8|0}if((o|0)==84){o=0;Mk(K+8|0,a,d);g=j;a=K;continue}else if((o|0)==85){o=0; -if(P){o=86;break}else{g=j;a=K;continue}}}if((o|0)==5){if(!(Ya[c[d>>2]&31](h,j)|0)){l=e;return}K=j;g=c[K>>2]|0;P=c[K+4>>2]|0;K=h;k=c[K+4>>2]|0;O=j;c[O>>2]=c[K>>2];c[O+4>>2]=k;k=h;c[k>>2]=g;c[k+4>>2]=P;l=e;return}else if((o|0)==7){P=j+8|0;k=Ya[c[d>>2]&31](P,j)|0;g=Ya[c[d>>2]&31](h,P)|0;if(!k){if(!g){l=e;return}k=P;O=c[k>>2]|0;K=c[k+4>>2]|0;k=h;J=c[k+4>>2]|0;I=P;c[I>>2]=c[k>>2];c[I+4>>2]=J;J=h;c[J>>2]=O;c[J+4>>2]=K;if(!(Ya[c[d>>2]&31](P,j)|0)){l=e;return}K=j;J=c[K>>2]|0;O=c[K+4>>2]|0;K=P;I=c[K+4>>2]| -0;k=j;c[k>>2]=c[K>>2];c[k+4>>2]=I;I=P;c[I>>2]=J;c[I+4>>2]=O;l=e;return}O=j;I=c[O>>2]|0;J=c[O+4>>2]|0;if(g){g=h;O=c[g+4>>2]|0;k=j;c[k>>2]=c[g>>2];c[k+4>>2]=O;O=h;c[O>>2]=I;c[O+4>>2]=J;l=e;return}O=P;k=c[O+4>>2]|0;g=j;c[g>>2]=c[O>>2];c[g+4>>2]=k;k=P;c[k>>2]=I;c[k+4>>2]=J;if(!(Ya[c[d>>2]&31](h,P)|0)){l=e;return}J=P;k=c[J>>2]|0;I=c[J+4>>2]|0;J=h;g=c[J+4>>2]|0;O=P;c[O>>2]=c[J>>2];c[O+4>>2]=g;g=h;c[g>>2]=k;c[g+4>>2]=I;l=e;return}else if((o|0)==15){I=j+8|0;g=j+16|0;k=Ya[c[d>>2]&31](I,j)|0;O=Ya[c[d>>2]&31](g, -I)|0;do if(k){J=j;P=c[J>>2]|0;K=c[J+4>>2]|0;if(O){J=g;y=c[J+4>>2]|0;p=j;c[p>>2]=c[J>>2];c[p+4>>2]=y;y=g;c[y>>2]=P;c[y+4>>2]=K;break}y=I;p=c[y+4>>2]|0;J=j;c[J>>2]=c[y>>2];c[J+4>>2]=p;p=I;c[p>>2]=P;c[p+4>>2]=K;if(Ya[c[d>>2]&31](g,I)|0){K=I;p=c[K>>2]|0;P=c[K+4>>2]|0;K=g;J=c[K+4>>2]|0;y=I;c[y>>2]=c[K>>2];c[y+4>>2]=J;J=g;c[J>>2]=p;c[J+4>>2]=P}}else if(O?(P=I,J=c[P>>2]|0,p=c[P+4>>2]|0,P=g,y=c[P+4>>2]|0,K=I,c[K>>2]=c[P>>2],c[K+4>>2]=y,y=g,c[y>>2]=J,c[y+4>>2]=p,Ya[c[d>>2]&31](I,j)|0):0){p=j;y=c[p>>2]|0;J= -c[p+4>>2]|0;p=I;K=c[p+4>>2]|0;P=j;c[P>>2]=c[p>>2];c[P+4>>2]=K;K=I;c[K>>2]=y;c[K+4>>2]=J}while(0);if(!(Ya[c[d>>2]&31](h,g)|0)){l=e;return}O=g;k=c[O>>2]|0;J=c[O+4>>2]|0;O=h;K=c[O+4>>2]|0;y=g;c[y>>2]=c[O>>2];c[y+4>>2]=K;K=h;c[K>>2]=k;c[K+4>>2]=J;if(!(Ya[c[d>>2]&31](g,I)|0)){l=e;return}J=I;K=c[J>>2]|0;k=c[J+4>>2]|0;J=g;y=c[J+4>>2]|0;O=I;c[O>>2]=c[J>>2];c[O+4>>2]=y;y=g;c[y>>2]=K;c[y+4>>2]=k;if(!(Ya[c[d>>2]&31](I,j)|0)){l=e;return}k=j;y=c[k>>2]|0;K=c[k+4>>2]|0;k=I;g=c[k+4>>2]|0;O=j;c[O>>2]=c[k>>2];c[O+ -4>>2]=g;g=I;c[g>>2]=y;c[g+4>>2]=K;l=e;return}else if((o|0)==27){Nk(j,j+8|0,j+16|0,j+24|0,h,d)|0;l=e;return}else if((o|0)==29){h=j+16|0;K=j+8|0;g=Ya[c[d>>2]&31](K,j)|0;y=Ya[c[d>>2]&31](h,K)|0;do if(g){I=j;O=c[I>>2]|0;k=c[I+4>>2]|0;if(y){I=h;J=c[I+4>>2]|0;P=j;c[P>>2]=c[I>>2];c[P+4>>2]=J;J=h;c[J>>2]=O;c[J+4>>2]=k;break}J=K;P=c[J+4>>2]|0;I=j;c[I>>2]=c[J>>2];c[I+4>>2]=P;P=K;c[P>>2]=O;c[P+4>>2]=k;if(Ya[c[d>>2]&31](h,K)|0){k=K;P=c[k>>2]|0;O=c[k+4>>2]|0;k=h;I=c[k+4>>2]|0;J=K;c[J>>2]=c[k>>2];c[J+4>>2]=I;I= -h;c[I>>2]=P;c[I+4>>2]=O}}else if(y?(O=K,I=c[O>>2]|0,P=c[O+4>>2]|0,O=h,J=c[O+4>>2]|0,k=K,c[k>>2]=c[O>>2],c[k+4>>2]=J,J=h,c[J>>2]=I,c[J+4>>2]=P,Ya[c[d>>2]&31](K,j)|0):0){P=j;J=c[P>>2]|0;I=c[P+4>>2]|0;P=K;k=c[P+4>>2]|0;O=j;c[O>>2]=c[P>>2];c[O+4>>2]=k;k=K;c[k>>2]=J;c[k+4>>2]=I}while(0);K=j+24|0;if((K|0)==(a|0)){l=e;return}y=K;K=h;while(1){if(Ya[c[d>>2]&31](y,K)|0){h=y;g=c[h+4>>2]|0;I=f;c[I>>2]=c[h>>2];c[I+4>>2]=g;g=K;I=y;while(1){h=g;k=c[h+4>>2]|0;J=I;c[J>>2]=c[h>>2];c[J+4>>2]=k;if((g|0)==(j|0))break; -k=g+-8|0;if(Ya[c[d>>2]&31](f,k)|0){J=g;g=k;I=J}else break}I=f;J=c[I+4>>2]|0;k=g;c[k>>2]=c[I>>2];c[k+4>>2]=J}J=y+8|0;if((J|0)==(a|0))break;else{k=y;y=J;K=k}}l=e;return}else if((o|0)==86){l=e;return}}function Nk(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,k=0,l=0,m=0,n=0,o=0,p=0,q=0;h=Ya[c[g>>2]&31](b,a)|0;i=Ya[c[g>>2]&31](d,b)|0;do if(h){j=a;k=c[j>>2]|0;l=c[j+4>>2]|0;if(i){j=d;m=c[j+4>>2]|0;n=a;c[n>>2]=c[j>>2];c[n+4>>2]=m;m=d;c[m>>2]=k;c[m+4>>2]=l;o=1;break}m=b;n=c[m+4>>2]|0;j= -a;c[j>>2]=c[m>>2];c[j+4>>2]=n;n=b;c[n>>2]=k;c[n+4>>2]=l;if(Ya[c[g>>2]&31](d,b)|0){l=b;n=c[l>>2]|0;k=c[l+4>>2]|0;l=d;j=c[l+4>>2]|0;m=b;c[m>>2]=c[l>>2];c[m+4>>2]=j;j=d;c[j>>2]=n;c[j+4>>2]=k;o=2}else o=1}else if(i){k=b;j=c[k>>2]|0;n=c[k+4>>2]|0;k=d;m=c[k+4>>2]|0;l=b;c[l>>2]=c[k>>2];c[l+4>>2]=m;m=d;c[m>>2]=j;c[m+4>>2]=n;if(Ya[c[g>>2]&31](b,a)|0){n=a;m=c[n>>2]|0;j=c[n+4>>2]|0;n=b;l=c[n+4>>2]|0;k=a;c[k>>2]=c[n>>2];c[k+4>>2]=l;l=b;c[l>>2]=m;c[l+4>>2]=j;o=2}else o=1}else o=0;while(0);if(Ya[c[g>>2]&31](e, -d)|0){i=d;h=c[i>>2]|0;j=c[i+4>>2]|0;i=e;l=c[i+4>>2]|0;m=d;c[m>>2]=c[i>>2];c[m+4>>2]=l;l=e;c[l>>2]=h;c[l+4>>2]=j;j=o+1|0;if(Ya[c[g>>2]&31](d,b)|0){l=b;h=c[l>>2]|0;m=c[l+4>>2]|0;l=d;i=c[l+4>>2]|0;k=b;c[k>>2]=c[l>>2];c[k+4>>2]=i;i=d;c[i>>2]=h;c[i+4>>2]=m;if(Ya[c[g>>2]&31](b,a)|0){m=a;i=c[m>>2]|0;h=c[m+4>>2]|0;m=b;k=c[m+4>>2]|0;l=a;c[l>>2]=c[m>>2];c[l+4>>2]=k;k=b;c[k>>2]=i;c[k+4>>2]=h;p=o+3|0}else p=o+2|0}else p=j}else p=o;if(!(Ya[c[g>>2]&31](f,e)|0)){q=p;return q|0}o=e;j=c[o>>2]|0;h=c[o+4>>2]|0;o=f; -k=c[o+4>>2]|0;i=e;c[i>>2]=c[o>>2];c[i+4>>2]=k;k=f;c[k>>2]=j;c[k+4>>2]=h;if(!(Ya[c[g>>2]&31](e,d)|0)){q=p+1|0;return q|0}h=d;k=c[h>>2]|0;j=c[h+4>>2]|0;h=e;f=c[h+4>>2]|0;i=d;c[i>>2]=c[h>>2];c[i+4>>2]=f;f=e;c[f>>2]=k;c[f+4>>2]=j;if(!(Ya[c[g>>2]&31](d,b)|0)){q=p+2|0;return q|0}j=b;f=c[j>>2]|0;k=c[j+4>>2]|0;j=d;e=c[j+4>>2]|0;i=b;c[i>>2]=c[j>>2];c[i+4>>2]=e;e=d;c[e>>2]=f;c[e+4>>2]=k;if(!(Ya[c[g>>2]&31](b,a)|0)){q=p+3|0;return q|0}g=a;k=c[g>>2]|0;e=c[g+4>>2]|0;g=b;f=c[g+4>>2]|0;d=a;c[d>>2]=c[g>>2];c[d+4>> -2]=f;f=b;c[f>>2]=k;c[f+4>>2]=e;q=p+4|0;return q|0}function Ok(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,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;e=l;l=l+16|0;f=e;switch(b-a>>3|0){case 2:{g=b+-8|0;if(!(Ya[c[d>>2]&31](g,a)|0)){h=1;l=e;return h|0}i=a;j=c[i>>2]|0;k=c[i+4>>2]|0;i=g;m=c[i+4>>2]|0;n=a;c[n>>2]=c[i>>2];c[n+4>>2]=m;m=g;c[m>>2]=j;c[m+4>>2]=k;h=1;l=e;return h|0}case 3:{k=a+8|0;m=b+-8|0;j=Ya[c[d>>2]&31](k,a)|0;g=Ya[c[d>>2]&31](m,k)|0;if(!j){if(!g){h=1;l=e;return h|0}j=k;n=c[j>>2]|0; -i=c[j+4>>2]|0;j=m;o=c[j+4>>2]|0;p=k;c[p>>2]=c[j>>2];c[p+4>>2]=o;o=m;c[o>>2]=n;c[o+4>>2]=i;if(!(Ya[c[d>>2]&31](k,a)|0)){h=1;l=e;return h|0}i=a;o=c[i>>2]|0;n=c[i+4>>2]|0;i=k;p=c[i+4>>2]|0;j=a;c[j>>2]=c[i>>2];c[j+4>>2]=p;p=k;c[p>>2]=o;c[p+4>>2]=n;h=1;l=e;return h|0}n=a;p=c[n>>2]|0;o=c[n+4>>2]|0;if(g){g=m;n=c[g+4>>2]|0;j=a;c[j>>2]=c[g>>2];c[j+4>>2]=n;n=m;c[n>>2]=p;c[n+4>>2]=o;h=1;l=e;return h|0}n=k;j=c[n+4>>2]|0;g=a;c[g>>2]=c[n>>2];c[g+4>>2]=j;j=k;c[j>>2]=p;c[j+4>>2]=o;if(!(Ya[c[d>>2]&31](m,k)|0)){h= -1;l=e;return h|0}o=k;j=c[o>>2]|0;p=c[o+4>>2]|0;o=m;g=c[o+4>>2]|0;n=k;c[n>>2]=c[o>>2];c[n+4>>2]=g;g=m;c[g>>2]=j;c[g+4>>2]=p;h=1;l=e;return h|0}case 4:{p=a+8|0;g=a+16|0;j=b+-8|0;m=Ya[c[d>>2]&31](p,a)|0;n=Ya[c[d>>2]&31](g,p)|0;do if(m){o=a;k=c[o>>2]|0;i=c[o+4>>2]|0;if(n){o=g;q=c[o+4>>2]|0;r=a;c[r>>2]=c[o>>2];c[r+4>>2]=q;q=g;c[q>>2]=k;c[q+4>>2]=i;break}q=p;r=c[q+4>>2]|0;o=a;c[o>>2]=c[q>>2];c[o+4>>2]=r;r=p;c[r>>2]=k;c[r+4>>2]=i;if(Ya[c[d>>2]&31](g,p)|0){i=p;r=c[i>>2]|0;k=c[i+4>>2]|0;i=g;o=c[i+4>>2]|0; -q=p;c[q>>2]=c[i>>2];c[q+4>>2]=o;o=g;c[o>>2]=r;c[o+4>>2]=k}}else if(n?(k=p,o=c[k>>2]|0,r=c[k+4>>2]|0,k=g,q=c[k+4>>2]|0,i=p,c[i>>2]=c[k>>2],c[i+4>>2]=q,q=g,c[q>>2]=o,c[q+4>>2]=r,Ya[c[d>>2]&31](p,a)|0):0){r=a;q=c[r>>2]|0;o=c[r+4>>2]|0;r=p;i=c[r+4>>2]|0;k=a;c[k>>2]=c[r>>2];c[k+4>>2]=i;i=p;c[i>>2]=q;c[i+4>>2]=o}while(0);if(!(Ya[c[d>>2]&31](j,g)|0)){h=1;l=e;return h|0}n=g;m=c[n>>2]|0;o=c[n+4>>2]|0;n=j;i=c[n+4>>2]|0;q=g;c[q>>2]=c[n>>2];c[q+4>>2]=i;i=j;c[i>>2]=m;c[i+4>>2]=o;if(!(Ya[c[d>>2]&31](g,p)|0)){h= -1;l=e;return h|0}o=p;i=c[o>>2]|0;m=c[o+4>>2]|0;o=g;j=c[o+4>>2]|0;q=p;c[q>>2]=c[o>>2];c[q+4>>2]=j;j=g;c[j>>2]=i;c[j+4>>2]=m;if(!(Ya[c[d>>2]&31](p,a)|0)){h=1;l=e;return h|0}m=a;j=c[m>>2]|0;i=c[m+4>>2]|0;m=p;g=c[m+4>>2]|0;q=a;c[q>>2]=c[m>>2];c[q+4>>2]=g;g=p;c[g>>2]=j;c[g+4>>2]=i;h=1;l=e;return h|0}case 5:{Nk(a,a+8|0,a+16|0,a+24|0,b+-8|0,d)|0;h=1;l=e;return h|0}case 1:case 0:{h=1;l=e;return h|0}default:{i=a+16|0;g=a+8|0;j=Ya[c[d>>2]&31](g,a)|0;p=Ya[c[d>>2]&31](i,g)|0;do if(j){q=a;m=c[q>>2]|0;o=c[q+4>> -2]|0;if(p){q=i;n=c[q+4>>2]|0;k=a;c[k>>2]=c[q>>2];c[k+4>>2]=n;n=i;c[n>>2]=m;c[n+4>>2]=o;break}n=g;k=c[n+4>>2]|0;q=a;c[q>>2]=c[n>>2];c[q+4>>2]=k;k=g;c[k>>2]=m;c[k+4>>2]=o;if(Ya[c[d>>2]&31](i,g)|0){o=g;k=c[o>>2]|0;m=c[o+4>>2]|0;o=i;q=c[o+4>>2]|0;n=g;c[n>>2]=c[o>>2];c[n+4>>2]=q;q=i;c[q>>2]=k;c[q+4>>2]=m}}else if(p?(m=g,q=c[m>>2]|0,k=c[m+4>>2]|0,m=i,n=c[m+4>>2]|0,o=g,c[o>>2]=c[m>>2],c[o+4>>2]=n,n=i,c[n>>2]=q,c[n+4>>2]=k,Ya[c[d>>2]&31](g,a)|0):0){k=a;n=c[k>>2]|0;q=c[k+4>>2]|0;k=g;o=c[k+4>>2]|0;m=a;c[m>> -2]=c[k>>2];c[m+4>>2]=o;o=g;c[o>>2]=n;c[o+4>>2]=q}while(0);g=a+24|0;a:do if((g|0)==(b|0)){s=1;t=0}else{p=g;j=0;q=i;while(1){if(Ya[c[d>>2]&31](p,q)|0){o=p;n=c[o+4>>2]|0;m=f;c[m>>2]=c[o>>2];c[m+4>>2]=n;n=q;m=p;while(1){o=n;k=c[o+4>>2]|0;r=m;c[r>>2]=c[o>>2];c[r+4>>2]=k;if((n|0)==(a|0))break;k=n+-8|0;if(Ya[c[d>>2]&31](f,k)|0){r=n;n=k;m=r}else break}m=f;r=c[m+4>>2]|0;k=n;c[k>>2]=c[m>>2];c[k+4>>2]=r;r=j+1|0;if((r|0)==8){s=0;t=(p+8|0)==(b|0);break a}else u=r}else u=j;r=p+8|0;if((r|0)==(b|0)){s=1;t=0;break}else{k= -p;p=r;j=u;q=k}}}while(0);h=t|s;l=e;return h|0}}return 0}function Pk(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;f=b+4|0;g=c[f>>2]|0;h=a+4|0;i=d+4|0;j=c[i>>2]|0;k=j>>>0>>0;do if(g>>>0<(c[h>>2]|0)>>>0){l=a;m=c[l>>2]|0;n=c[l+4>>2]|0;if(k){l=d;o=c[l+4>>2]|0;p=a;c[p>>2]=c[l>>2];c[p+4>>2]=o;o=d;c[o>>2]=m;c[o+4>>2]=n;q=1;r=n;break}o=b;p=c[o+4>>2]|0;l=a;c[l>>2]=c[o>>2];c[l+4>>2]=p;p=b;c[p>>2]=m;c[p+4>>2]=n;p=c[i>>2]|0;if(p>>>0>>0){l=d;o=c[l+4>> -2]|0;s=b;c[s>>2]=c[l>>2];c[s+4>>2]=o;o=d;c[o>>2]=m;c[o+4>>2]=n;q=2;r=n}else{q=1;r=p}}else if(k){p=b;n=c[p>>2]|0;o=c[p+4>>2]|0;p=d;m=c[p+4>>2]|0;s=b;c[s>>2]=c[p>>2];c[s+4>>2]=m;m=d;c[m>>2]=n;c[m+4>>2]=o;if((c[f>>2]|0)>>>0<(c[h>>2]|0)>>>0){m=a;n=c[m>>2]|0;s=c[m+4>>2]|0;m=b;p=c[m+4>>2]|0;l=a;c[l>>2]=c[m>>2];c[l+4>>2]=p;p=b;c[p>>2]=n;c[p+4>>2]=s;q=2;r=c[i>>2]|0}else{q=1;r=o}}else{q=0;r=j}while(0);if((c[e+4>>2]|0)>>>0>=r>>>0){t=q;return t|0}r=d;j=c[r>>2]|0;k=c[r+4>>2]|0;r=e;g=c[r+4>>2]|0;o=d;c[o>>2]=c[r>> -2];c[o+4>>2]=g;g=e;c[g>>2]=j;c[g+4>>2]=k;if((c[i>>2]|0)>>>0>=(c[f>>2]|0)>>>0){t=q+1|0;return t|0}i=b;k=c[i>>2]|0;g=c[i+4>>2]|0;i=d;j=c[i+4>>2]|0;e=b;c[e>>2]=c[i>>2];c[e+4>>2]=j;j=d;c[j>>2]=k;c[j+4>>2]=g;if((c[f>>2]|0)>>>0>=(c[h>>2]|0)>>>0){t=q+2|0;return t|0}h=a;f=c[h>>2]|0;g=c[h+4>>2]|0;h=b;j=c[h+4>>2]|0;k=a;c[k>>2]=c[h>>2];c[k+4>>2]=j;j=b;c[j>>2]=f;c[j+4>>2]=g;t=q+3|0;return t|0}function Qk(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;switch(b-a>>3|0){case 2:{if((c[b+ --4>>2]|0)>>>0>=(c[a+4>>2]|0)>>>0){e=1;return e|0}f=b+-8|0;g=a;h=c[g>>2]|0;i=c[g+4>>2]|0;g=f;j=c[g+4>>2]|0;k=a;c[k>>2]=c[g>>2];c[k+4>>2]=j;j=f;c[j>>2]=h;c[j+4>>2]=i;e=1;return e|0}case 3:{i=a+8|0;j=b+-8|0;h=a+12|0;f=c[h>>2]|0;k=a+4|0;g=b+-4|0;l=(c[g>>2]|0)>>>0>>0;if(f>>>0>=(c[k>>2]|0)>>>0){if(!l){e=1;return e|0}f=i;m=c[f>>2]|0;n=c[f+4>>2]|0;f=j;o=c[f+4>>2]|0;p=i;c[p>>2]=c[f>>2];c[p+4>>2]=o;o=j;c[o>>2]=m;c[o+4>>2]=n;if((c[h>>2]|0)>>>0>=(c[k>>2]|0)>>>0){e=1;return e|0}k=a;h=c[k>>2]|0;n=c[k+4>>2]| -0;k=i;o=c[k+4>>2]|0;m=a;c[m>>2]=c[k>>2];c[m+4>>2]=o;o=i;c[o>>2]=h;c[o+4>>2]=n;e=1;return e|0}n=a;o=c[n>>2]|0;h=c[n+4>>2]|0;if(l){l=j;n=c[l+4>>2]|0;m=a;c[m>>2]=c[l>>2];c[m+4>>2]=n;n=j;c[n>>2]=o;c[n+4>>2]=h;e=1;return e|0}n=i;m=c[n+4>>2]|0;l=a;c[l>>2]=c[n>>2];c[l+4>>2]=m;m=i;c[m>>2]=o;c[m+4>>2]=h;if((c[g>>2]|0)>>>0>=h>>>0){e=1;return e|0}g=j;m=c[g+4>>2]|0;l=i;c[l>>2]=c[g>>2];c[l+4>>2]=m;m=j;c[m>>2]=o;c[m+4>>2]=h;e=1;return e|0}case 4:{Pk(a,a+8|0,a+16|0,b+-8|0,d)|0;e=1;return e|0}case 5:{h=a+8|0;m=a+ -16|0;o=a+24|0;Pk(a,h,m,o,d)|0;d=a+28|0;if((c[b+-4>>2]|0)>>>0>=(c[d>>2]|0)>>>0){e=1;return e|0}j=b+-8|0;l=o;g=c[l>>2]|0;i=c[l+4>>2]|0;l=j;n=c[l+4>>2]|0;k=o;c[k>>2]=c[l>>2];c[k+4>>2]=n;n=j;c[n>>2]=g;c[n+4>>2]=i;if((c[d>>2]|0)>>>0>=(c[a+20>>2]|0)>>>0){e=1;return e|0}d=m;i=c[d>>2]|0;n=c[d+4>>2]|0;d=o;g=c[d>>2]|0;j=c[d+4>>2]|0;d=m;c[d>>2]=g;c[d+4>>2]=j;d=o;c[d>>2]=i;c[d+4>>2]=n;if(j>>>0>=(c[a+12>>2]|0)>>>0){e=1;return e|0}n=h;d=c[n>>2]|0;i=c[n+4>>2]|0;n=h;c[n>>2]=g;c[n+4>>2]=j;n=m;c[n>>2]=d;c[n+4>>2]= -i;if(j>>>0>=(c[a+4>>2]|0)>>>0){e=1;return e|0}i=a;n=c[i>>2]|0;d=c[i+4>>2]|0;i=a;c[i>>2]=g;c[i+4>>2]=j;j=h;c[j>>2]=n;c[j+4>>2]=d;e=1;return e|0}case 1:case 0:{e=1;return e|0}default:{d=a+16|0;j=a+8|0;n=c[a+12>>2]|0;h=c[a+4>>2]|0;i=c[a+20>>2]|0;g=i>>>0>>0;do if(n>>>0>>0){m=a;o=c[m>>2]|0;k=c[m+4>>2]|0;if(g){m=d;l=c[m+4>>2]|0;p=a;c[p>>2]=c[m>>2];c[p+4>>2]=l;l=d;c[l>>2]=o;c[l+4>>2]=k;break}l=j;p=c[l+4>>2]|0;m=a;c[m>>2]=c[l>>2];c[m+4>>2]=p;p=j;c[p>>2]=o;c[p+4>>2]=k;if(i>>>0>>0){p=d;m=c[p+4>>2]| -0;l=j;c[l>>2]=c[p>>2];c[l+4>>2]=m;m=d;c[m>>2]=o;c[m+4>>2]=k}}else if(g?(k=j,m=c[k>>2]|0,o=c[k+4>>2]|0,k=d,l=c[k>>2]|0,p=c[k+4>>2]|0,k=j,c[k>>2]=l,c[k+4>>2]=p,k=d,c[k>>2]=m,c[k+4>>2]=o,p>>>0>>0):0){o=a;k=c[o>>2]|0;m=c[o+4>>2]|0;o=a;c[o>>2]=l;c[o+4>>2]=p;p=j;c[p>>2]=k;c[p+4>>2]=m}while(0);j=a+24|0;a:do if((j|0)==(b|0)){q=1;r=0}else{h=j;g=0;i=d;while(1){if((c[h+4>>2]|0)>>>0<(c[i+4>>2]|0)>>>0){n=h;m=c[n>>2]|0;p=c[n+4>>2]|0;n=i;k=h;while(1){o=n;l=c[o+4>>2]|0;f=k;c[f>>2]=c[o>>2];c[f+4>>2]=l;if((n|0)== -(a|0))break;if(p>>>0<(c[n+-4>>2]|0)>>>0){l=n;n=n+-8|0;k=l}else break}k=n;c[k>>2]=m;c[k+4>>2]=p;k=g+1|0;if((k|0)==8){q=0;r=(h+8|0)==(b|0);break a}else s=k}else s=g;k=h+8|0;if((k|0)==(b|0)){q=1;r=0;break}else{l=h;h=k;g=s;i=l}}}while(0);e=r|q;return e|0}}return 0}function Rk(a){a=a|0;fn(a);return}function Sk(a,b,c){a=a|0;b=b|0;c=c|0;return 1}function Tk(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return 1}function Uk(a){a=a|0;fn(a);return}function Vk(a,b){a=a|0;b=b|0;return(c[(c[a+4>>2]|0)+(b<<2)>>2]&4096|0)!= -0|0}function Wk(b){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,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,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;d=b+400|0;e=b+220|0;f=hm((c[d>>2]|0)+76|0,(c[e>>2]|0)*24|0)|0;h=c[e>>2]|0;if((h|0)>0){i=b+216|0;j=b+144|0;k=0;l=0;m=h;while(1){h=c[i>>2]|0;n=h+(k*24|0)|0;o=c[j>>2]|0;p=c[o+(c[n>>2]<<2)>>2]|0;if(((p|0)!=0?(p|0)==(c[o+(c[h+(k*24|0)+4>>2]<<2)>>2]|0):0)?(c[p+12>>2]&16|0)!=0:0){p=f+(l*24|0)|0;c[p>>2]=c[n>>2];c[p+4>>2]=c[n+4>>2];c[p+ -8>>2]=c[n+8>>2];c[p+12>>2]=c[n+12>>2];c[p+16>>2]=c[n+16>>2];c[p+20>>2]=c[n+20>>2];q=l+1|0;r=c[e>>2]|0}else{q=l;r=m}k=k+1|0;if((k|0)>=(r|0)){s=q;break}else{l=q;m=r}}}else s=0;r=hm((c[d>>2]|0)+76|0,c[b+308>>2]<<2)|0;m=c[b+312>>2]|0;if(!m)t=0;else{q=b+16|0;l=b+124|0;k=b+132|0;e=b+48|0;j=b+20|0;i=0;n=m;while(1){m=n+12|0;p=c[m>>2]|0;if(p&16){h=i+1|0;c[r+(i<<2)>>2]=n;o=p&-17;if(p&((p|16)^-17)|0)a[j>>0]=1;u=c[q>>2]|0;if(o&~u|0){if(!(p&1))v=u;else{p=c[k>>2]|0;if(!p){w=c[e>>2]|0;if(!w){Qj(b,256);x=c[e>>2]| -0}else x=w;w=Pl(c[d>>2]|0,x<<2)|0;Nn(w|0,0,c[e>>2]<<2|0)|0;y=w;z=c[q>>2]|0}else{y=p;z=u}c[k>>2]=y;v=z}c[q>>2]=v|o}c[m>>2]=o;o=c[n+4>>2]|0;m=c[n+8>>2]|0;if((o|0)<(m|0)){u=o+1|0;Nn((c[l>>2]|0)+(o<<2)|0,0,((m|0)>(u|0)?m:u)-o<<2|0)|0;A=h}else A=h}else A=i;n=c[n+24>>2]|0;if(!n){t=A;break}else i=A}}A=(s|0)>0;if(A){i=c[b+124>>2]|0;n=0;do{l=c[f+(n*24|0)+4>>2]|0;B=+g[f+(n*24|0)+8>>2];v=i+(c[f+(n*24|0)>>2]<<2)|0;g[v>>2]=B+ +g[v>>2];v=i+(l<<2)|0;g[v>>2]=B+ +g[v>>2];n=n+1|0}while((n|0)!=(s|0))}n=(t|0)>0;if(n){i= -b+124|0;v=b+132|0;l=0;do{q=c[r+(l<<2)>>2]|0;z=c[q+4>>2]|0;y=c[q+8>>2]|0;if((z|0)<(y|0)){q=c[i>>2]|0;k=c[v>>2]|0;e=z;do{g[k+(e<<2)>>2]=+g[q+(e<<2)>>2]<.800000011920929?0:3.4028234663852886E38;e=e+1|0}while((e|0)<(y|0))}l=l+1|0}while((l|0)!=(t|0))}l=~~+C(+ +(c[b+44>>2]|0));if(!((l|0)<1|A^1)){A=c[b+132>>2]|0;v=0;do{i=0;y=0;while(1){B=1-+g[f+(i*24|0)+8>>2];e=A+(c[f+(i*24|0)>>2]<<2)|0;q=A+(c[f+(i*24|0)+4>>2]<<2)|0;D=+g[q>>2];E=B+D;F=+g[e>>2];G=B+F;if(F>E){g[e>>2]=E;H=1;I=+g[q>>2]}else{H=y;I=D}if(I>G){g[q>> -2]=G;J=1}else J=H;i=i+1|0;if((i|0)==(s|0))break;else y=J}v=v+1|0}while(J&(v|0)<(l|0))}if(!n){K=c[d>>2]|0;L=K+76|0;jm(L,r);M=c[d>>2]|0;N=M+76|0;jm(N,f);return}n=b+132|0;l=b+32|0;b=0;do{v=c[r+(b<<2)>>2]|0;J=c[v+4>>2]|0;s=c[v+8>>2]|0;if((J|0)<(s|0)){v=c[n>>2]|0;H=J;do{J=v+(H<<2)|0;I=+g[J>>2];if(I<3.4028234663852886E38)O=I*+g[l>>2];else O=0;g[J>>2]=O;H=H+1|0}while((H|0)<(s|0))}b=b+1|0}while((b|0)!=(t|0));K=c[d>>2]|0;L=K+76|0;jm(L,r);M=c[d>>2]|0;N=M+76|0;jm(N,f);return}function Xk(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,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=+g[b+36>>2];f=(~~(e*+g[d+4>>2]+-1+2048)>>>0<<20)+(~~((e*+g[d>>2]+-1)*256+524288)>>>0)|0;h=(~~(e*+g[d+12>>2]+1+2048)>>>0<<20)+(~~((e*+g[d+8>>2]+1)*256+524288)>>>0)|0;d=c[b+200>>2]|0;i=c[b+204>>2]|0;b=d+(i<<3)|0;j=i<<3>>3;if(!j)k=d;else{i=j;j=d;while(1){d=(i|0)/2|0;l=(c[j+(d<<3)+4>>2]|0)>>>0>>0;i=l?i+-1-d|0:d;m=l?j+(d<<3)+8|0:j;if(!i){k=m;break}else j=m}}j=b-k>>3;if(!j){n=k;o=f&1048575;c[a>>2]=o;p=h&1048575; -q=a+4|0;c[q>>2]=p;r=f&-1048576;s=a+8|0;c[s>>2]=r;t=h&-1048576;u=a+12|0;c[u>>2]=t;v=a+16|0;c[v>>2]=k;w=a+20|0;c[w>>2]=n;return}else{x=j;y=k}while(1){j=(x|0)/2|0;b=(c[y+(j<<3)+4>>2]|0)>>>0>h>>>0;x=b?j:x+-1-j|0;i=b?y:y+(j<<3)+8|0;if(!x){n=i;break}else y=i}o=f&1048575;c[a>>2]=o;p=h&1048575;q=a+4|0;c[q>>2]=p;r=f&-1048576;s=a+8|0;c[s>>2]=r;t=h&-1048576;u=a+12|0;c[u>>2]=t;v=a+16|0;c[v>>2]=k;w=a+20|0;c[w>>2]=n;return}function Yk(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=a+156|0;if((c[d>> -2]|0)<1)return;e=(c[a+176>>2]|0)+(b<<2)|0;f=(c[a+160>>2]|0)+(b<<2)|0;g=(c[a+168>>2]|0)+(b<<2)|0;h=(c[g>>2]|0)+1|0;c[g>>2]=h;if((h|0)==2?(h=c[e>>2]|0,c[e>>2]=h+1,(h|0)>=(c[d>>2]|0)):0){d=a+184|0;h=a+188|0;e=c[h>>2]|0;g=a+192|0;i=c[g>>2]|0;if((e|0)>=(i|0)?(j=(i|0)==0?256:i<<1,(i|0)<(j|0)):0){i=a+196|0;k=Pl(c[i>>2]|0,j<<2)|0;l=c[d>>2]|0;if(!l)m=d;else{Qn(k|0,l|0,c[h>>2]<<2|0)|0;Ql(c[i>>2]|0,c[d>>2]|0,c[g>>2]<<2);m=d}c[g>>2]=j;c[m>>2]=k;n=c[h>>2]|0}else n=e;e=c[d>>2]|0;c[h>>2]=n+1;c[e+(n<<2)>>2]=b}c[f>> -2]=c[a+4>>2];return}function Zk(a,b){a=a|0;b=b|0;var d=0;if((c[a>>2]|0)>>>0>=(c[b>>2]|0)>>>0){d=0;return d|0}d=(c[a+4>>2]|0)<(c[b+4>>2]|0);return d|0}function _k(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,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;e=l;l=l+16|0;f=e;g=a;a=b;a:while(1){b=a;h=a+-8|0;i=g;while(1){j=i;b:while(1){k=j;m=b-k|0;n=m>>3;switch(n|0){case 2:{o=5;break a;break}case 3:{o=7;break a;break}case 4:{o= -15;break a;break}case 5:{o=27;break a;break}case 1:case 0:{o=86;break a;break}default:{}}if((m|0)<248){o=29;break a}p=j+(((n|0)/2|0)<<3)|0;do if((m|0)<=7992){q=Ya[c[d>>2]&31](p,j)|0;r=Ya[c[d>>2]&31](h,p)|0;if(!q){if(!r){s=0;break}q=p;t=c[q>>2]|0;u=c[q+4>>2]|0;q=h;v=c[q+4>>2]|0;w=p;c[w>>2]=c[q>>2];c[w+4>>2]=v;v=h;c[v>>2]=t;c[v+4>>2]=u;if(!(Ya[c[d>>2]&31](p,j)|0)){s=1;break}u=j;v=c[u>>2]|0;t=c[u+4>>2]|0;u=p;w=c[u+4>>2]|0;q=j;c[q>>2]=c[u>>2];c[q+4>>2]=w;w=p;c[w>>2]=v;c[w+4>>2]=t;s=2;break}t=j;w=c[t>> -2]|0;v=c[t+4>>2]|0;if(r){r=h;t=c[r+4>>2]|0;q=j;c[q>>2]=c[r>>2];c[q+4>>2]=t;t=h;c[t>>2]=w;c[t+4>>2]=v;s=1;break}t=p;q=c[t+4>>2]|0;r=j;c[r>>2]=c[t>>2];c[r+4>>2]=q;q=p;c[q>>2]=w;c[q+4>>2]=v;if(Ya[c[d>>2]&31](h,p)|0){v=p;q=c[v>>2]|0;w=c[v+4>>2]|0;v=h;r=c[v+4>>2]|0;t=p;c[t>>2]=c[v>>2];c[t+4>>2]=r;r=h;c[r>>2]=q;c[r+4>>2]=w;s=2}else s=1}else{w=(n|0)/4|0;s=$k(j,j+(w<<3)|0,p,p+(w<<3)|0,h,d)|0}while(0);if(Ya[c[d>>2]&31](j,p)|0){x=h;y=s;break}else z=h;while(1){z=z+-8|0;if((j|0)==(z|0))break;if(Ya[c[d>>2]&31](z, -p)|0){o=69;break b}}n=j+8|0;if(Ya[c[d>>2]&31](j,h)|0)A=n;else{if((n|0)==(h|0)){o=86;break a}else B=n;while(1){if(Ya[c[d>>2]&31](j,B)|0)break;n=B+8|0;if((n|0)==(h|0)){o=86;break a}else B=n}n=B;m=c[n>>2]|0;w=c[n+4>>2]|0;n=h;r=c[n+4>>2]|0;q=B;c[q>>2]=c[n>>2];c[q+4>>2]=r;r=h;c[r>>2]=m;c[r+4>>2]=w;A=B+8|0}if((A|0)==(h|0)){o=86;break a}else{C=h;D=A}while(1){w=D;while(1){E=w+8|0;if(Ya[c[d>>2]&31](j,w)|0){F=C;break}else w=E}do F=F+-8|0;while(Ya[c[d>>2]&31](j,F)|0);if(w>>>0>=F>>>0){j=w;continue b}r=w;m=c[r>> -2]|0;q=c[r+4>>2]|0;r=F;n=c[r+4>>2]|0;t=w;c[t>>2]=c[r>>2];c[t+4>>2]=n;n=F;c[n>>2]=m;c[n+4>>2]=q;C=F;D=E}}if((o|0)==69){o=0;q=j;n=c[q>>2]|0;m=c[q+4>>2]|0;q=z;t=c[q+4>>2]|0;r=j;c[r>>2]=c[q>>2];c[r+4>>2]=t;t=z;c[t>>2]=n;c[t+4>>2]=m;x=z;y=s+1|0}m=j+8|0;c:do if(m>>>0>>0){t=p;n=x;r=m;q=y;while(1){v=r;while(1){G=v+8|0;if(Ya[c[d>>2]&31](v,t)|0)v=G;else{H=n;break}}do H=H+-8|0;while(!(Ya[c[d>>2]&31](H,t)|0));if(v>>>0>H>>>0){I=t;J=q;K=v;break c}w=v;u=c[w>>2]|0;L=c[w+4>>2]|0;w=H;M=c[w+4>>2]|0;N=v;c[N>>2]=c[w>> -2];c[N+4>>2]=M;M=H;c[M>>2]=u;c[M+4>>2]=L;t=(t|0)==(v|0)?H:t;n=H;r=G;q=q+1|0}}else{I=p;J=y;K=m}while(0);if((K|0)!=(I|0)?Ya[c[d>>2]&31](I,K)|0:0){m=K;q=c[m>>2]|0;r=c[m+4>>2]|0;m=I;n=c[m+4>>2]|0;t=K;c[t>>2]=c[m>>2];c[t+4>>2]=n;n=I;c[n>>2]=q;c[n+4>>2]=r;O=J+1|0}else O=J;if(!O){P=al(j,K,d)|0;r=K+8|0;if(al(r,a,d)|0){o=85;break}if(P){i=r;continue}}r=K;if((r-k|0)>=(b-r|0)){o=84;break}_k(j,K,d);i=K+8|0}if((o|0)==84){o=0;_k(K+8|0,a,d);g=j;a=K;continue}else if((o|0)==85){o=0;if(P){o=86;break}else{g=j;a=K;continue}}}if((o| -0)==5){if(!(Ya[c[d>>2]&31](h,j)|0)){l=e;return}K=j;g=c[K>>2]|0;P=c[K+4>>2]|0;K=h;k=c[K+4>>2]|0;O=j;c[O>>2]=c[K>>2];c[O+4>>2]=k;k=h;c[k>>2]=g;c[k+4>>2]=P;l=e;return}else if((o|0)==7){P=j+8|0;k=Ya[c[d>>2]&31](P,j)|0;g=Ya[c[d>>2]&31](h,P)|0;if(!k){if(!g){l=e;return}k=P;O=c[k>>2]|0;K=c[k+4>>2]|0;k=h;J=c[k+4>>2]|0;I=P;c[I>>2]=c[k>>2];c[I+4>>2]=J;J=h;c[J>>2]=O;c[J+4>>2]=K;if(!(Ya[c[d>>2]&31](P,j)|0)){l=e;return}K=j;J=c[K>>2]|0;O=c[K+4>>2]|0;K=P;I=c[K+4>>2]|0;k=j;c[k>>2]=c[K>>2];c[k+4>>2]=I;I=P;c[I>>2]= -J;c[I+4>>2]=O;l=e;return}O=j;I=c[O>>2]|0;J=c[O+4>>2]|0;if(g){g=h;O=c[g+4>>2]|0;k=j;c[k>>2]=c[g>>2];c[k+4>>2]=O;O=h;c[O>>2]=I;c[O+4>>2]=J;l=e;return}O=P;k=c[O+4>>2]|0;g=j;c[g>>2]=c[O>>2];c[g+4>>2]=k;k=P;c[k>>2]=I;c[k+4>>2]=J;if(!(Ya[c[d>>2]&31](h,P)|0)){l=e;return}J=P;k=c[J>>2]|0;I=c[J+4>>2]|0;J=h;g=c[J+4>>2]|0;O=P;c[O>>2]=c[J>>2];c[O+4>>2]=g;g=h;c[g>>2]=k;c[g+4>>2]=I;l=e;return}else if((o|0)==15){I=j+8|0;g=j+16|0;k=Ya[c[d>>2]&31](I,j)|0;O=Ya[c[d>>2]&31](g,I)|0;do if(k){J=j;P=c[J>>2]|0;K=c[J+4>>2]| -0;if(O){J=g;y=c[J+4>>2]|0;p=j;c[p>>2]=c[J>>2];c[p+4>>2]=y;y=g;c[y>>2]=P;c[y+4>>2]=K;break}y=I;p=c[y+4>>2]|0;J=j;c[J>>2]=c[y>>2];c[J+4>>2]=p;p=I;c[p>>2]=P;c[p+4>>2]=K;if(Ya[c[d>>2]&31](g,I)|0){K=I;p=c[K>>2]|0;P=c[K+4>>2]|0;K=g;J=c[K+4>>2]|0;y=I;c[y>>2]=c[K>>2];c[y+4>>2]=J;J=g;c[J>>2]=p;c[J+4>>2]=P}}else if(O?(P=I,J=c[P>>2]|0,p=c[P+4>>2]|0,P=g,y=c[P+4>>2]|0,K=I,c[K>>2]=c[P>>2],c[K+4>>2]=y,y=g,c[y>>2]=J,c[y+4>>2]=p,Ya[c[d>>2]&31](I,j)|0):0){p=j;y=c[p>>2]|0;J=c[p+4>>2]|0;p=I;K=c[p+4>>2]|0;P=j;c[P>>2]= -c[p>>2];c[P+4>>2]=K;K=I;c[K>>2]=y;c[K+4>>2]=J}while(0);if(!(Ya[c[d>>2]&31](h,g)|0)){l=e;return}O=g;k=c[O>>2]|0;J=c[O+4>>2]|0;O=h;K=c[O+4>>2]|0;y=g;c[y>>2]=c[O>>2];c[y+4>>2]=K;K=h;c[K>>2]=k;c[K+4>>2]=J;if(!(Ya[c[d>>2]&31](g,I)|0)){l=e;return}J=I;K=c[J>>2]|0;k=c[J+4>>2]|0;J=g;y=c[J+4>>2]|0;O=I;c[O>>2]=c[J>>2];c[O+4>>2]=y;y=g;c[y>>2]=K;c[y+4>>2]=k;if(!(Ya[c[d>>2]&31](I,j)|0)){l=e;return}k=j;y=c[k>>2]|0;K=c[k+4>>2]|0;k=I;g=c[k+4>>2]|0;O=j;c[O>>2]=c[k>>2];c[O+4>>2]=g;g=I;c[g>>2]=y;c[g+4>>2]=K;l=e;return}else if((o| -0)==27){$k(j,j+8|0,j+16|0,j+24|0,h,d)|0;l=e;return}else if((o|0)==29){h=j+16|0;K=j+8|0;g=Ya[c[d>>2]&31](K,j)|0;y=Ya[c[d>>2]&31](h,K)|0;do if(g){I=j;O=c[I>>2]|0;k=c[I+4>>2]|0;if(y){I=h;J=c[I+4>>2]|0;P=j;c[P>>2]=c[I>>2];c[P+4>>2]=J;J=h;c[J>>2]=O;c[J+4>>2]=k;break}J=K;P=c[J+4>>2]|0;I=j;c[I>>2]=c[J>>2];c[I+4>>2]=P;P=K;c[P>>2]=O;c[P+4>>2]=k;if(Ya[c[d>>2]&31](h,K)|0){k=K;P=c[k>>2]|0;O=c[k+4>>2]|0;k=h;I=c[k+4>>2]|0;J=K;c[J>>2]=c[k>>2];c[J+4>>2]=I;I=h;c[I>>2]=P;c[I+4>>2]=O}}else if(y?(O=K,I=c[O>>2]|0,P=c[O+ -4>>2]|0,O=h,J=c[O+4>>2]|0,k=K,c[k>>2]=c[O>>2],c[k+4>>2]=J,J=h,c[J>>2]=I,c[J+4>>2]=P,Ya[c[d>>2]&31](K,j)|0):0){P=j;J=c[P>>2]|0;I=c[P+4>>2]|0;P=K;k=c[P+4>>2]|0;O=j;c[O>>2]=c[P>>2];c[O+4>>2]=k;k=K;c[k>>2]=J;c[k+4>>2]=I}while(0);K=j+24|0;if((K|0)==(a|0)){l=e;return}y=K;K=h;while(1){if(Ya[c[d>>2]&31](y,K)|0){h=y;g=c[h+4>>2]|0;I=f;c[I>>2]=c[h>>2];c[I+4>>2]=g;g=K;I=y;while(1){h=g;k=c[h+4>>2]|0;J=I;c[J>>2]=c[h>>2];c[J+4>>2]=k;if((g|0)==(j|0))break;k=g+-8|0;if(Ya[c[d>>2]&31](f,k)|0){J=g;g=k;I=J}else break}I= -f;J=c[I+4>>2]|0;k=g;c[k>>2]=c[I>>2];c[k+4>>2]=J}J=y+8|0;if((J|0)==(a|0))break;else{k=y;y=J;K=k}}l=e;return}else if((o|0)==86){l=e;return}}function $k(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,k=0,l=0,m=0,n=0,o=0,p=0,q=0;h=Ya[c[g>>2]&31](b,a)|0;i=Ya[c[g>>2]&31](d,b)|0;do if(h){j=a;k=c[j>>2]|0;l=c[j+4>>2]|0;if(i){j=d;m=c[j+4>>2]|0;n=a;c[n>>2]=c[j>>2];c[n+4>>2]=m;m=d;c[m>>2]=k;c[m+4>>2]=l;o=1;break}m=b;n=c[m+4>>2]|0;j=a;c[j>>2]=c[m>>2];c[j+4>>2]=n;n=b;c[n>>2]=k;c[n+4>>2]=l;if(Ya[c[g>> -2]&31](d,b)|0){l=b;n=c[l>>2]|0;k=c[l+4>>2]|0;l=d;j=c[l+4>>2]|0;m=b;c[m>>2]=c[l>>2];c[m+4>>2]=j;j=d;c[j>>2]=n;c[j+4>>2]=k;o=2}else o=1}else if(i){k=b;j=c[k>>2]|0;n=c[k+4>>2]|0;k=d;m=c[k+4>>2]|0;l=b;c[l>>2]=c[k>>2];c[l+4>>2]=m;m=d;c[m>>2]=j;c[m+4>>2]=n;if(Ya[c[g>>2]&31](b,a)|0){n=a;m=c[n>>2]|0;j=c[n+4>>2]|0;n=b;l=c[n+4>>2]|0;k=a;c[k>>2]=c[n>>2];c[k+4>>2]=l;l=b;c[l>>2]=m;c[l+4>>2]=j;o=2}else o=1}else o=0;while(0);if(Ya[c[g>>2]&31](e,d)|0){i=d;h=c[i>>2]|0;j=c[i+4>>2]|0;i=e;l=c[i+4>>2]|0;m=d;c[m>>2]=c[i>> -2];c[m+4>>2]=l;l=e;c[l>>2]=h;c[l+4>>2]=j;j=o+1|0;if(Ya[c[g>>2]&31](d,b)|0){l=b;h=c[l>>2]|0;m=c[l+4>>2]|0;l=d;i=c[l+4>>2]|0;k=b;c[k>>2]=c[l>>2];c[k+4>>2]=i;i=d;c[i>>2]=h;c[i+4>>2]=m;if(Ya[c[g>>2]&31](b,a)|0){m=a;i=c[m>>2]|0;h=c[m+4>>2]|0;m=b;k=c[m+4>>2]|0;l=a;c[l>>2]=c[m>>2];c[l+4>>2]=k;k=b;c[k>>2]=i;c[k+4>>2]=h;p=o+3|0}else p=o+2|0}else p=j}else p=o;if(!(Ya[c[g>>2]&31](f,e)|0)){q=p;return q|0}o=e;j=c[o>>2]|0;h=c[o+4>>2]|0;o=f;k=c[o+4>>2]|0;i=e;c[i>>2]=c[o>>2];c[i+4>>2]=k;k=f;c[k>>2]=j;c[k+4>>2]=h; -if(!(Ya[c[g>>2]&31](e,d)|0)){q=p+1|0;return q|0}h=d;k=c[h>>2]|0;j=c[h+4>>2]|0;h=e;f=c[h+4>>2]|0;i=d;c[i>>2]=c[h>>2];c[i+4>>2]=f;f=e;c[f>>2]=k;c[f+4>>2]=j;if(!(Ya[c[g>>2]&31](d,b)|0)){q=p+2|0;return q|0}j=b;f=c[j>>2]|0;k=c[j+4>>2]|0;j=d;e=c[j+4>>2]|0;i=b;c[i>>2]=c[j>>2];c[i+4>>2]=e;e=d;c[e>>2]=f;c[e+4>>2]=k;if(!(Ya[c[g>>2]&31](b,a)|0)){q=p+3|0;return q|0}g=a;k=c[g>>2]|0;e=c[g+4>>2]|0;g=b;f=c[g+4>>2]|0;d=a;c[d>>2]=c[g>>2];c[d+4>>2]=f;f=b;c[f>>2]=k;c[f+4>>2]=e;q=p+4|0;return q|0}function al(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,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;e=l;l=l+16|0;f=e;switch(b-a>>3|0){case 2:{g=b+-8|0;if(!(Ya[c[d>>2]&31](g,a)|0)){h=1;l=e;return h|0}i=a;j=c[i>>2]|0;k=c[i+4>>2]|0;i=g;m=c[i+4>>2]|0;n=a;c[n>>2]=c[i>>2];c[n+4>>2]=m;m=g;c[m>>2]=j;c[m+4>>2]=k;h=1;l=e;return h|0}case 3:{k=a+8|0;m=b+-8|0;j=Ya[c[d>>2]&31](k,a)|0;g=Ya[c[d>>2]&31](m,k)|0;if(!j){if(!g){h=1;l=e;return h|0}j=k;n=c[j>>2]|0;i=c[j+4>>2]|0;j=m;o=c[j+4>>2]|0;p=k;c[p>>2]=c[j>>2];c[p+4>>2]=o;o=m;c[o>> -2]=n;c[o+4>>2]=i;if(!(Ya[c[d>>2]&31](k,a)|0)){h=1;l=e;return h|0}i=a;o=c[i>>2]|0;n=c[i+4>>2]|0;i=k;p=c[i+4>>2]|0;j=a;c[j>>2]=c[i>>2];c[j+4>>2]=p;p=k;c[p>>2]=o;c[p+4>>2]=n;h=1;l=e;return h|0}n=a;p=c[n>>2]|0;o=c[n+4>>2]|0;if(g){g=m;n=c[g+4>>2]|0;j=a;c[j>>2]=c[g>>2];c[j+4>>2]=n;n=m;c[n>>2]=p;c[n+4>>2]=o;h=1;l=e;return h|0}n=k;j=c[n+4>>2]|0;g=a;c[g>>2]=c[n>>2];c[g+4>>2]=j;j=k;c[j>>2]=p;c[j+4>>2]=o;if(!(Ya[c[d>>2]&31](m,k)|0)){h=1;l=e;return h|0}o=k;j=c[o>>2]|0;p=c[o+4>>2]|0;o=m;g=c[o+4>>2]|0;n=k;c[n>> -2]=c[o>>2];c[n+4>>2]=g;g=m;c[g>>2]=j;c[g+4>>2]=p;h=1;l=e;return h|0}case 4:{p=a+8|0;g=a+16|0;j=b+-8|0;m=Ya[c[d>>2]&31](p,a)|0;n=Ya[c[d>>2]&31](g,p)|0;do if(m){o=a;k=c[o>>2]|0;i=c[o+4>>2]|0;if(n){o=g;q=c[o+4>>2]|0;r=a;c[r>>2]=c[o>>2];c[r+4>>2]=q;q=g;c[q>>2]=k;c[q+4>>2]=i;break}q=p;r=c[q+4>>2]|0;o=a;c[o>>2]=c[q>>2];c[o+4>>2]=r;r=p;c[r>>2]=k;c[r+4>>2]=i;if(Ya[c[d>>2]&31](g,p)|0){i=p;r=c[i>>2]|0;k=c[i+4>>2]|0;i=g;o=c[i+4>>2]|0;q=p;c[q>>2]=c[i>>2];c[q+4>>2]=o;o=g;c[o>>2]=r;c[o+4>>2]=k}}else if(n?(k=p, -o=c[k>>2]|0,r=c[k+4>>2]|0,k=g,q=c[k+4>>2]|0,i=p,c[i>>2]=c[k>>2],c[i+4>>2]=q,q=g,c[q>>2]=o,c[q+4>>2]=r,Ya[c[d>>2]&31](p,a)|0):0){r=a;q=c[r>>2]|0;o=c[r+4>>2]|0;r=p;i=c[r+4>>2]|0;k=a;c[k>>2]=c[r>>2];c[k+4>>2]=i;i=p;c[i>>2]=q;c[i+4>>2]=o}while(0);if(!(Ya[c[d>>2]&31](j,g)|0)){h=1;l=e;return h|0}n=g;m=c[n>>2]|0;o=c[n+4>>2]|0;n=j;i=c[n+4>>2]|0;q=g;c[q>>2]=c[n>>2];c[q+4>>2]=i;i=j;c[i>>2]=m;c[i+4>>2]=o;if(!(Ya[c[d>>2]&31](g,p)|0)){h=1;l=e;return h|0}o=p;i=c[o>>2]|0;m=c[o+4>>2]|0;o=g;j=c[o+4>>2]|0;q=p;c[q>> -2]=c[o>>2];c[q+4>>2]=j;j=g;c[j>>2]=i;c[j+4>>2]=m;if(!(Ya[c[d>>2]&31](p,a)|0)){h=1;l=e;return h|0}m=a;j=c[m>>2]|0;i=c[m+4>>2]|0;m=p;g=c[m+4>>2]|0;q=a;c[q>>2]=c[m>>2];c[q+4>>2]=g;g=p;c[g>>2]=j;c[g+4>>2]=i;h=1;l=e;return h|0}case 5:{$k(a,a+8|0,a+16|0,a+24|0,b+-8|0,d)|0;h=1;l=e;return h|0}case 1:case 0:{h=1;l=e;return h|0}default:{i=a+16|0;g=a+8|0;j=Ya[c[d>>2]&31](g,a)|0;p=Ya[c[d>>2]&31](i,g)|0;do if(j){q=a;m=c[q>>2]|0;o=c[q+4>>2]|0;if(p){q=i;n=c[q+4>>2]|0;k=a;c[k>>2]=c[q>>2];c[k+4>>2]=n;n=i;c[n>>2]= -m;c[n+4>>2]=o;break}n=g;k=c[n+4>>2]|0;q=a;c[q>>2]=c[n>>2];c[q+4>>2]=k;k=g;c[k>>2]=m;c[k+4>>2]=o;if(Ya[c[d>>2]&31](i,g)|0){o=g;k=c[o>>2]|0;m=c[o+4>>2]|0;o=i;q=c[o+4>>2]|0;n=g;c[n>>2]=c[o>>2];c[n+4>>2]=q;q=i;c[q>>2]=k;c[q+4>>2]=m}}else if(p?(m=g,q=c[m>>2]|0,k=c[m+4>>2]|0,m=i,n=c[m+4>>2]|0,o=g,c[o>>2]=c[m>>2],c[o+4>>2]=n,n=i,c[n>>2]=q,c[n+4>>2]=k,Ya[c[d>>2]&31](g,a)|0):0){k=a;n=c[k>>2]|0;q=c[k+4>>2]|0;k=g;o=c[k+4>>2]|0;m=a;c[m>>2]=c[k>>2];c[m+4>>2]=o;o=g;c[o>>2]=n;c[o+4>>2]=q}while(0);g=a+24|0;a:do if((g| -0)==(b|0)){s=1;t=0}else{p=g;j=0;q=i;while(1){if(Ya[c[d>>2]&31](p,q)|0){o=p;n=c[o+4>>2]|0;m=f;c[m>>2]=c[o>>2];c[m+4>>2]=n;n=q;m=p;while(1){o=n;k=c[o+4>>2]|0;r=m;c[r>>2]=c[o>>2];c[r+4>>2]=k;if((n|0)==(a|0))break;k=n+-8|0;if(Ya[c[d>>2]&31](f,k)|0){r=n;n=k;m=r}else break}m=f;r=c[m+4>>2]|0;k=n;c[k>>2]=c[m>>2];c[k+4>>2]=r;r=j+1|0;if((r|0)==8){s=0;t=(p+8|0)==(b|0);break a}else u=r}else u=j;r=p+8|0;if((r|0)==(b|0)){s=1;t=0;break}else{k=p;p=r;j=u;q=k}}}while(0);h=t|s;l=e;return h|0}}return 0}function bl(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;if(!(c[b+8>>2]&16384))return;e=c[(c[b+400>>2]|0)+102952>>2]|0;if(!e)return;f=b+232|0;g=b+236|0;if(!(c[g>>2]|0)){h=d+8|0;i=d+4|0;j=d}else{k=d+8|0;l=d+4|0;m=c[f>>2]|0;do{n=c[m+8>>2]|0;o=c[m>>2]|0;p=c[k>>2]|0;if(p){q=c[d>>2]|0;r=q+(p<<3)|0;s=p<<3>>3;p=q;if(!s)t=q;else{u=s;s=q;while(1){q=(u|0)/2|0;v=s+(q<<3)|0;if((c[v>>2]|0)>>>0>>0)w=(c[s+(q<<3)+4>>2]|0)<(o|0);else w=0;u=w?u+-1-q|0:q;q=w?v+8|0:s;if(!u){t= -q;break}else s=q}}if(!((t|0)==(r|0)|(t|0)==0)?(s=(c[l>>2]|0)+((t-p|0)>>>3)|0,(a[s>>0]|0)!=0):0)a[s>>0]=0;else x=16}else x=16;if((x|0)==16){x=0;Ta[c[(c[e>>2]|0)+16>>2]&7](e,b,m)}m=m+28|0}while((m|0)!=((c[f>>2]|0)+((c[g>>2]|0)*28|0)|0));h=k;i=l;j=d}d=c[j>>2]|0;j=c[i>>2]|0;i=c[h>>2]|0;if((i|0)<=0)return;h=0;do{if(a[j+h>>0]|0)_a[c[(c[e>>2]|0)+20>>2]&31](e,c[d+(h<<3)>>2]|0,b,c[d+(h<<3)+4>>2]|0);h=h+1|0}while((h|0)!=(i|0));return}function cl(b){b=b|0;var d=0,e=0,f=0,h=0,i=0,j=0,k=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;d=l;l=l+80|0;e=d;f=d+64|0;h=d+48|0;i=d+32|0;j=d+16|0;k=b+400|0;m=c[k>>2]|0;n=m+76|0;c[h>>2]=0;o=h+4|0;c[o>>2]=0;p=h+8|0;c[p>>2]=0;c[h+12>>2]=n;q=b+8|0;if(((c[q>>2]&16384|0)!=0?(c[m+102952>>2]|0)!=0:0)?(m=c[b+232>>2]|0,r=c[b+236>>2]|0,s=c[b+88>>2]|0,(r|0)!=0):0){t=hm(n,r*9|0)|0;c[h>>2]=t;u=t+(r<<3)|0;c[o>>2]=u;Nn(u|0,1,r|0)|0;c[p>>2]=r;if((r|0)>0){u=0;o=0;while(1){v=c[m+(u*28|0)>>2]|0;if((v|0)!=-1?(c[s+ -(v<<2)>>2]&16384|0)!=0:0){c[t+(u<<3)>>2]=c[m+(u*28|0)+8>>2];c[t+(u<<3)+4>>2]=v;w=o+1|0}else w=o;u=u+1|0;if((u|0)==(r|0)){x=w;break}else o=w}}else x=0;c[p>>2]=x;c[e>>2]=30;_k(t,t+(x<<3)|0,e);y=t}else y=0;if((c[b+156>>2]|0)>0?(t=c[b+44>>2]|0,(t|0)>0):0){x=c[b+168>>2]|0;w=b+4|0;o=c[b+160>>2]|0;r=b+176|0;u=0;do{c[x+(u<<2)>>2]=0;if((c[w>>2]|0)>((c[o+(u<<2)>>2]|0)+1|0))c[(c[r>>2]|0)+(u<<2)>>2]=0;u=u+1|0}while((u|0)!=(t|0))}t=b+236|0;c[t>>2]=0;c[b+188>>2]=0;if(!(c[q>>2]&65536))z=0;else z=c[(c[k>>2]|0)+102948>> -2]|0;c[i+4>>2]=b;c[i>>2]=2036;c[i+8>>2]=z;z=c[b+44>>2]|0;g[j>>2]=3.4028234663852886E38;q=j+4|0;g[q>>2]=3.4028234663852886E38;u=j+8|0;g[u>>2]=-3.4028234663852886E38;r=j+12|0;g[r>>2]=-3.4028234663852886E38;if((z|0)>0){o=c[b+96>>2]|0;w=0;A=3.4028234663852886E38;B=3.4028234663852886E38;C=-3.4028234663852886E38;D=-3.4028234663852886E38;while(1){E=+g[o+(w<<3)>>2];F=+g[o+(w<<3)+4>>2];G=A>2]=G;g[q>>2]=H;I=C>E?C:E;E=D>F?D:F;g[u>>2]=I;g[r>>2]=E;w=w+1|0;if((w|0)==(z|0)){J=G;K=H;L=I;M=E; -break}else{A=G;B=H;C=I;D=E}}}else{J=3.4028234663852886E38;K=3.4028234663852886E38;L=-3.4028234663852886E38;M=-3.4028234663852886E38}D=+g[b+32>>2];g[j>>2]=J-D;g[q>>2]=K-D;g[u>>2]=L+D;g[r>>2]=M+D;$i(c[k>>2]|0,i,j);if(a[b+316>>0]|0){j=b+232|0;i=c[j>>2]|0;k=i+((c[t>>2]|0)*28|0)|0;c[e>>2]=31;el(i,k,e);c[f>>2]=0;k=c[j>>2]|0;j=c[t>>2]|0;i=k+(j*28|0)|0;c[e>>2]=b;c[e+4>>2]=-1;c[e+8>>2]=0;c[e+12>>2]=f;a:do if(!j){N=k;O=25}else{r=k;do{if(fl(e,r)|0){N=r;O=25;break a}r=r+28|0}while((r|0)!=(i|0))}while(0);b:do if((O| -0)==25?(N|0)!=(i|0):0){k=N;j=N;while(1){r=k;do{r=r+28|0;if((r|0)==(i|0))break b}while(fl(e,r)|0);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];c[j+16>>2]=c[r+16>>2];c[j+20>>2]=c[r+20>>2];c[j+24>>2]=c[r+24>>2];k=r;j=j+28|0}}while(0);c[t>>2]=(c[t>>2]|0)-(c[f>>2]|0)}bl(b,h);if(!y){l=d;return}jm(n,y);c[h>>2]=0;c[p>>2]=0;l=d;return}function dl(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=c[a>>2]|0;e=c[b>>2]|0;if((d|0)==(e|0)){f=+g[a+12>>2]>+g[b+12>>2];return f|0}else{f=(d|0)<(e|0); -return f|0}return 0}function el(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,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;e=l;l=l+32|0;f=e;g=a;a=b;a:while(1){b=a;h=a+-28|0;i=g;while(1){j=i;b:while(1){k=j;m=b-k|0;switch((m|0)/28|0|0){case 2:{n=5;break a;break}case 3:{n=7;break a;break}case 4:{n=15;break a;break}case 5:{n=16;break a;break}case 1:case 0:{n=68;break a;break}default:{}}if((m|0)<868){n=22;break a}o=j+(((m>>>0)/56|0)* -28|0)|0;do if((m|0)>27972){p=(m>>>0)/112|0;q=j+(p*28|0)|0;r=o+(p*28|0)|0;p=gl(j,q,o,r,d)|0;if(Ya[c[d>>2]&31](h,r)|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];c[f+16>>2]=c[r+16>>2];c[f+20>>2]=c[r+20>>2];c[f+24>>2]=c[r+24>>2];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];c[r+16>>2]=c[h+16>>2];c[r+20>>2]=c[h+20>>2];c[r+24>>2]=c[h+24>>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];c[h+16>>2]=c[f+16>> -2];c[h+20>>2]=c[f+20>>2];c[h+24>>2]=c[f+24>>2];s=p+1|0;if(Ya[c[d>>2]&31](r,o)|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];c[f+16>>2]=c[o+16>>2];c[f+20>>2]=c[o+20>>2];c[f+24>>2]=c[o+24>>2];c[o>>2]=c[r>>2];c[o+4>>2]=c[r+4>>2];c[o+8>>2]=c[r+8>>2];c[o+12>>2]=c[r+12>>2];c[o+16>>2]=c[r+16>>2];c[o+20>>2]=c[r+20>>2];c[o+24>>2]=c[r+24>>2];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];c[r+16>>2]=c[f+16>>2];c[r+20>>2]=c[f+20>>2];c[r+24>>2]= -c[f+24>>2];r=p+2|0;if(Ya[c[d>>2]&31](o,q)|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[f+16>>2]=c[q+16>>2];c[f+20>>2]=c[q+20>>2];c[f+24>>2]=c[q+24>>2];c[q>>2]=c[o>>2];c[q+4>>2]=c[o+4>>2];c[q+8>>2]=c[o+8>>2];c[q+12>>2]=c[o+12>>2];c[q+16>>2]=c[o+16>>2];c[q+20>>2]=c[o+20>>2];c[q+24>>2]=c[o+24>>2];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];c[o+16>>2]=c[f+16>>2];c[o+20>>2]=c[f+20>>2];c[o+24>>2]=c[f+24>>2];if(Ya[c[d>>2]&31](q,j)|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[f+20>>2]=c[j+20>>2];c[f+24>>2]=c[j+24>>2];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];c[j+16>>2]=c[q+16>>2];c[j+20>>2]=c[q+20>>2];c[j+24>>2]=c[q+24>>2];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];c[q+16>>2]=c[f+16>>2];c[q+20>>2]=c[f+20>>2];c[q+24>>2]=c[f+24>>2];t=p+4|0}else t=p+3|0}else t=r}else t=s}else t=p}else{p=Ya[c[d>>2]&31](o,j)| -0;s=Ya[c[d>>2]&31](h,o)|0;if(!p){if(!s){t=0;break}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];c[f+16>>2]=c[o+16>>2];c[f+20>>2]=c[o+20>>2];c[f+24>>2]=c[o+24>>2];c[o>>2]=c[h>>2];c[o+4>>2]=c[h+4>>2];c[o+8>>2]=c[h+8>>2];c[o+12>>2]=c[h+12>>2];c[o+16>>2]=c[h+16>>2];c[o+20>>2]=c[h+20>>2];c[o+24>>2]=c[h+24>>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];c[h+16>>2]=c[f+16>>2];c[h+20>>2]=c[f+20>>2];c[h+24>>2]=c[f+24>>2];if(!(Ya[c[d>>2]&31](o, -j)|0)){t=1;break}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[f+20>>2]=c[j+20>>2];c[f+24>>2]=c[j+24>>2];c[j>>2]=c[o>>2];c[j+4>>2]=c[o+4>>2];c[j+8>>2]=c[o+8>>2];c[j+12>>2]=c[o+12>>2];c[j+16>>2]=c[o+16>>2];c[j+20>>2]=c[o+20>>2];c[j+24>>2]=c[o+24>>2];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];c[o+16>>2]=c[f+16>>2];c[o+20>>2]=c[f+20>>2];c[o+24>>2]=c[f+24>>2];t=2;break}if(s){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[f+20>>2]=c[j+20>>2];c[f+24>>2]=c[j+24>>2];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[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];c[h+16>>2]=c[f+16>>2];c[h+20>>2]=c[f+20>>2];c[h+24>>2]=c[f+24>>2];t=1;break}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[f+20>>2]=c[j+20>>2];c[f+24>>2]=c[j+24>>2];c[j>>2]=c[o>>2];c[j+4>>2]=c[o+4>>2];c[j+8>>2]=c[o+8>>2];c[j+12>>2]=c[o+12>>2];c[j+16>>2]=c[o+16>>2];c[j+20>>2]=c[o+20>>2];c[j+24>>2]=c[o+24>>2];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];c[o+16>>2]=c[f+16>>2];c[o+20>>2]=c[f+20>>2];c[o+24>>2]=c[f+24>>2];if(Ya[c[d>>2]&31](h,o)|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];c[f+16>>2]=c[o+16>>2];c[f+20>>2]=c[o+20>>2];c[f+24>>2]=c[o+24>> -2];c[o>>2]=c[h>>2];c[o+4>>2]=c[h+4>>2];c[o+8>>2]=c[h+8>>2];c[o+12>>2]=c[h+12>>2];c[o+16>>2]=c[h+16>>2];c[o+20>>2]=c[h+20>>2];c[o+24>>2]=c[h+24>>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];c[h+16>>2]=c[f+16>>2];c[h+20>>2]=c[f+20>>2];c[h+24>>2]=c[f+24>>2];t=2}else t=1}while(0);if(Ya[c[d>>2]&31](j,o)|0){u=h;v=t;break}else w=h;while(1){w=w+-28|0;if((j|0)==(w|0))break;if(Ya[c[d>>2]&31](w,o)|0){n=51;break b}}m=j+28|0;if(Ya[c[d>>2]&31](j,h)|0)x=m;else{if((m|0)==(h|0)){n= -68;break a}else y=m;while(1){if(Ya[c[d>>2]&31](j,y)|0)break;m=y+28|0;if((m|0)==(h|0)){n=68;break a}else y=m}c[f>>2]=c[y>>2];c[f+4>>2]=c[y+4>>2];c[f+8>>2]=c[y+8>>2];c[f+12>>2]=c[y+12>>2];c[f+16>>2]=c[y+16>>2];c[f+20>>2]=c[y+20>>2];c[f+24>>2]=c[y+24>>2];c[y>>2]=c[h>>2];c[y+4>>2]=c[h+4>>2];c[y+8>>2]=c[h+8>>2];c[y+12>>2]=c[h+12>>2];c[y+16>>2]=c[h+16>>2];c[y+20>>2]=c[h+20>>2];c[y+24>>2]=c[h+24>>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];c[h+16>>2]=c[f+16>>2];c[h+20>> -2]=c[f+20>>2];c[h+24>>2]=c[f+24>>2];x=y+28|0}if((x|0)==(h|0)){n=68;break a}else{z=h;A=x}while(1){m=A;while(1){B=m+28|0;if(Ya[c[d>>2]&31](j,m)|0){C=z;break}else m=B}do C=C+-28|0;while(Ya[c[d>>2]&31](j,C)|0);if(m>>>0>=C>>>0){j=m;continue b}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];c[f+16>>2]=c[m+16>>2];c[f+20>>2]=c[m+20>>2];c[f+24>>2]=c[m+24>>2];c[m>>2]=c[C>>2];c[m+4>>2]=c[C+4>>2];c[m+8>>2]=c[C+8>>2];c[m+12>>2]=c[C+12>>2];c[m+16>>2]=c[C+16>>2];c[m+20>>2]=c[C+20>> -2];c[m+24>>2]=c[C+24>>2];c[C>>2]=c[f>>2];c[C+4>>2]=c[f+4>>2];c[C+8>>2]=c[f+8>>2];c[C+12>>2]=c[f+12>>2];c[C+16>>2]=c[f+16>>2];c[C+20>>2]=c[f+20>>2];c[C+24>>2]=c[f+24>>2];z=C;A=B}}if((n|0)==51){n=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[f+20>>2]=c[j+20>>2];c[f+24>>2]=c[j+24>>2];c[j>>2]=c[w>>2];c[j+4>>2]=c[w+4>>2];c[j+8>>2]=c[w+8>>2];c[j+12>>2]=c[w+12>>2];c[j+16>>2]=c[w+16>>2];c[j+20>>2]=c[w+20>>2];c[j+24>>2]=c[w+24>>2];c[w>>2]=c[f>>2];c[w+ -4>>2]=c[f+4>>2];c[w+8>>2]=c[f+8>>2];c[w+12>>2]=c[f+12>>2];c[w+16>>2]=c[f+16>>2];c[w+20>>2]=c[f+20>>2];c[w+24>>2]=c[f+24>>2];u=w;v=t+1|0}s=j+28|0;c:do if(s>>>0>>0){p=o;r=u;q=s;D=v;while(1){E=q;while(1){F=E+28|0;if(Ya[c[d>>2]&31](E,p)|0)E=F;else{G=r;break}}do G=G+-28|0;while(!(Ya[c[d>>2]&31](G,p)|0));if(E>>>0>G>>>0){H=p;I=D;J=E;break c}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];c[f+16>>2]=c[E+16>>2];c[f+20>>2]=c[E+20>>2];c[f+24>>2]=c[E+24>>2];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];c[E+16>>2]=c[G+16>>2];c[E+20>>2]=c[G+20>>2];c[E+24>>2]=c[G+24>>2];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];c[G+16>>2]=c[f+16>>2];c[G+20>>2]=c[f+20>>2];c[G+24>>2]=c[f+24>>2];p=(p|0)==(E|0)?G:p;r=G;q=F;D=D+1|0}}else{H=o;I=v;J=s}while(0);if((J|0)!=(H|0)?Ya[c[d>>2]&31](H,J)|0: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[f+20>>2]=c[J+20>>2];c[f+24>> -2]=c[J+24>>2];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[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];c[H+16>>2]=c[f+16>>2];c[H+20>>2]=c[f+20>>2];c[H+24>>2]=c[f+24>>2];K=I+1|0}else K=I;if(!K){L=il(j,J,d)|0;s=J+28|0;if(il(s,a,d)|0){n=67;break}if(L){i=s;continue}}s=J;if((s-k|0)>=(b-s|0)){n=66;break}el(j,J,d);i=J+28|0}if((n|0)==66){n=0;el(J+28|0,a,d);g=j;a=J;continue}else if((n| -0)==67){n=0;if(L){n=68;break}else{g=j;a=J;continue}}}if((n|0)==5){if(!(Ya[c[d>>2]&31](h,j)|0)){l=e;return}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[f+20>>2]=c[j+20>>2];c[f+24>>2]=c[j+24>>2];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[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];c[h+16>>2]=c[f+16>>2];c[h+20>> -2]=c[f+20>>2];c[h+24>>2]=c[f+24>>2];l=e;return}else if((n|0)==7){J=j+28|0;g=Ya[c[d>>2]&31](J,j)|0;L=Ya[c[d>>2]&31](h,J)|0;if(!g){if(!L){l=e;return}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[f+20>>2]=c[J+20>>2];c[f+24>>2]=c[J+24>>2];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[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];c[h+16>>2]=c[f+16>>2];c[h+20>>2]=c[f+20>>2];c[h+24>>2]=c[f+24>>2];if(!(Ya[c[d>>2]&31](J,j)|0)){l=e;return}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[f+20>>2]=c[j+20>>2];c[f+24>>2]=c[j+24>>2];c[j>>2]=c[J>>2];c[j+4>>2]=c[J+4>>2];c[j+8>>2]=c[J+8>>2];c[j+12>>2]=c[J+12>>2];c[j+16>>2]=c[J+16>>2];c[j+20>>2]=c[J+20>>2];c[j+24>>2]=c[J+24>>2];c[J>>2]=c[f>>2];c[J+4>>2]=c[f+4>>2];c[J+8>>2]=c[f+8>>2];c[J+12>>2]=c[f+12>>2];c[J+16>>2]=c[f+16>> -2];c[J+20>>2]=c[f+20>>2];c[J+24>>2]=c[f+24>>2];l=e;return}if(L){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[f+20>>2]=c[j+20>>2];c[f+24>>2]=c[j+24>>2];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[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];c[h+16>>2]=c[f+16>>2];c[h+20>>2]=c[f+20>>2];c[h+24>>2]=c[f+24>>2];l=e;return}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[f+20>>2]=c[j+20>>2];c[f+24>>2]=c[j+24>>2];c[j>>2]=c[J>>2];c[j+4>>2]=c[J+4>>2];c[j+8>>2]=c[J+8>>2];c[j+12>>2]=c[J+12>>2];c[j+16>>2]=c[J+16>>2];c[j+20>>2]=c[J+20>>2];c[j+24>>2]=c[J+24>>2];c[J>>2]=c[f>>2];c[J+4>>2]=c[f+4>>2];c[J+8>>2]=c[f+8>>2];c[J+12>>2]=c[f+12>>2];c[J+16>>2]=c[f+16>>2];c[J+20>>2]=c[f+20>>2];c[J+24>>2]=c[f+24>>2];if(!(Ya[c[d>>2]&31](h,J)|0)){l=e;return}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[f+20>>2]=c[J+20>>2];c[f+24>>2]=c[J+24>>2];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[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];c[h+16>>2]=c[f+16>>2];c[h+20>>2]=c[f+20>>2];c[h+24>>2]=c[f+24>>2];l=e;return}else if((n|0)==15){gl(j,j+28|0,j+56|0,h,d)|0;l=e;return}else if((n|0)==16){J=j+28|0;L=j+56|0;g= -j+84|0;gl(j,J,L,g,d)|0;if(!(Ya[c[d>>2]&31](h,g)|0)){l=e;return}c[f>>2]=c[g>>2];c[f+4>>2]=c[g+4>>2];c[f+8>>2]=c[g+8>>2];c[f+12>>2]=c[g+12>>2];c[f+16>>2]=c[g+16>>2];c[f+20>>2]=c[g+20>>2];c[f+24>>2]=c[g+24>>2];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];c[g+16>>2]=c[h+16>>2];c[g+20>>2]=c[h+20>>2];c[g+24>>2]=c[h+24>>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];c[h+16>>2]=c[f+16>>2];c[h+20>>2]=c[f+20>>2];c[h+24>>2]=c[f+24>>2];if(!(Ya[c[d>> -2]&31](g,L)|0)){l=e;return}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];c[f+16>>2]=c[L+16>>2];c[f+20>>2]=c[L+20>>2];c[f+24>>2]=c[L+24>>2];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];c[L+16>>2]=c[g+16>>2];c[L+20>>2]=c[g+20>>2];c[L+24>>2]=c[g+24>>2];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];c[g+16>>2]=c[f+16>>2];c[g+20>>2]=c[f+20>>2];c[g+24>>2]=c[f+24>>2];if(!(Ya[c[d>>2]&31](L,J)|0)){l=e;return}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[f+20>>2]=c[J+20>>2];c[f+24>>2]=c[J+24>>2];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];c[J+16>>2]=c[L+16>>2];c[J+20>>2]=c[L+20>>2];c[J+24>>2]=c[L+24>>2];c[L>>2]=c[f>>2];c[L+4>>2]=c[f+4>>2];c[L+8>>2]=c[f+8>>2];c[L+12>>2]=c[f+12>>2];c[L+16>>2]=c[f+16>>2];c[L+20>>2]=c[f+20>>2];c[L+24>>2]=c[f+24>>2];if(!(Ya[c[d>>2]&31](J,j)|0)){l=e;return}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[f+20>>2]=c[j+20>>2];c[f+24>>2]=c[j+24>>2];c[j>>2]=c[J>>2];c[j+4>>2]=c[J+4>>2];c[j+8>>2]=c[J+8>>2];c[j+12>>2]=c[J+12>>2];c[j+16>>2]=c[J+16>>2];c[j+20>>2]=c[J+20>>2];c[j+24>>2]=c[J+24>>2];c[J>>2]=c[f>>2];c[J+4>>2]=c[f+4>>2];c[J+8>>2]=c[f+8>>2];c[J+12>>2]=c[f+12>>2];c[J+16>>2]=c[f+16>>2];c[J+20>>2]=c[f+20>>2];c[J+24>>2]=c[f+24>>2];l=e;return}else if((n|0)==22){hl(j,a,d);l=e;return}else if((n|0)==68){l=e;return}}function fl(a,b){a=a|0; -b=b|0;var d=0,e=0,f=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;d=l;l=l+32|0;e=d+16|0;f=d+8|0;h=d;i=c[b>>2]|0;j=a+4|0;k=a+8|0;if((i|0)==(c[j>>2]|0)){m=c[k>>2]|0;c[k>>2]=m+1;if((m|0)>3){m=c[a+12>>2]|0;c[m>>2]=(c[m>>2]|0)+1;n=1;l=d;return n|0}}else{c[j>>2]=i;c[k>>2]=1}k=c[a>>2]|0;o=+g[k+32>>2]*(1-+g[b+12>>2]);j=c[k+96>>2]|0;p=+g[b+20>>2]*o+ +g[j+(i<<3)+4>>2];g[e>>2]=+g[b+16>>2]*o+ +g[j+(i<<3)>>2];g[e+4>>2]=p;i=b+8|0;b=c[i>>2]|0;j=c[b+12>>2]|0;a:do if(Sa[c[(c[j>>2]|0)+16>>2]&15](j,(c[b+8>>2]|0)+12| -0,e)|0)q=0;else{k=c[(c[i>>2]|0)+12>>2]|0;m=Ma[c[(c[k>>2]|0)+12>>2]&7](k)|0;if((m|0)>0){k=0;do{r=c[i>>2]|0;s=c[r+12>>2]|0;Xa[c[(c[s>>2]|0)+20>>2]&7](s,(c[r+8>>2]|0)+12|0,e,f,h,k);k=k+1|0;if(+g[f>>2]<.004999999888241291){q=0;break a}}while((k|0)<(m|0))}m=c[a+12>>2]|0;c[m>>2]=(c[m>>2]|0)+1;q=1}while(0);n=q;l=d;return n|0}function gl(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,m=0;g=l;l=l+32|0;h=g;i=Ya[c[f>>2]&31](b,a)|0;j=Ya[c[f>>2]&31](d,b)|0;do if(i){if(j){c[h>>2]=c[a>>2];c[h+ -4>>2]=c[a+4>>2];c[h+8>>2]=c[a+8>>2];c[h+12>>2]=c[a+12>>2];c[h+16>>2]=c[a+16>>2];c[h+20>>2]=c[a+20>>2];c[h+24>>2]=c[a+24>>2];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];c[a+16>>2]=c[d+16>>2];c[a+20>>2]=c[d+20>>2];c[a+24>>2]=c[d+24>>2];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];c[d+16>>2]=c[h+16>>2];c[d+20>>2]=c[h+20>>2];c[d+24>>2]=c[h+24>>2];k=1;break}c[h>>2]=c[a>>2];c[h+4>>2]=c[a+4>>2];c[h+8>>2]=c[a+8>>2];c[h+12>>2]=c[a+12>>2];c[h+ -16>>2]=c[a+16>>2];c[h+20>>2]=c[a+20>>2];c[h+24>>2]=c[a+24>>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[a+16>>2]=c[b+16>>2];c[a+20>>2]=c[b+20>>2];c[a+24>>2]=c[b+24>>2];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];c[b+16>>2]=c[h+16>>2];c[b+20>>2]=c[h+20>>2];c[b+24>>2]=c[h+24>>2];if(Ya[c[f>>2]&31](d,b)|0){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];c[h+16>>2]=c[b+16>>2];c[h+20>>2]=c[b+20>>2];c[h+ -24>>2]=c[b+24>>2];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[b+16>>2]=c[d+16>>2];c[b+20>>2]=c[d+20>>2];c[b+24>>2]=c[d+24>>2];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];c[d+16>>2]=c[h+16>>2];c[d+20>>2]=c[h+20>>2];c[d+24>>2]=c[h+24>>2];k=2}else k=1}else if(j){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];c[h+16>>2]=c[b+16>>2];c[h+20>>2]=c[b+20>>2];c[h+24>>2]=c[b+24>>2];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[b+16>>2]=c[d+16>>2];c[b+20>>2]=c[d+20>>2];c[b+24>>2]=c[d+24>>2];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];c[d+16>>2]=c[h+16>>2];c[d+20>>2]=c[h+20>>2];c[d+24>>2]=c[h+24>>2];if(Ya[c[f>>2]&31](b,a)|0){c[h>>2]=c[a>>2];c[h+4>>2]=c[a+4>>2];c[h+8>>2]=c[a+8>>2];c[h+12>>2]=c[a+12>>2];c[h+16>>2]=c[a+16>>2];c[h+20>>2]=c[a+20>>2];c[h+24>>2]=c[a+24>>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[a+16>>2]=c[b+16>>2];c[a+20>>2]=c[b+20>>2];c[a+24>>2]=c[b+24>>2];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];c[b+16>>2]=c[h+16>>2];c[b+20>>2]=c[h+20>>2];c[b+24>>2]=c[h+24>>2];k=2}else k=1}else k=0;while(0);if(!(Ya[c[f>>2]&31](e,d)|0)){m=k;l=g;return m|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];c[h+16>>2]=c[d+16>>2];c[h+20>>2]=c[d+20>>2];c[h+24>>2]=c[d+24>>2];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];c[d+16>>2]=c[e+16>>2];c[d+20>>2]=c[e+20>>2];c[d+24>>2]=c[e+24>>2];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];c[e+16>>2]=c[h+16>>2];c[e+20>>2]=c[h+20>>2];c[e+24>>2]=c[h+24>>2];if(!(Ya[c[f>>2]&31](d,b)|0)){m=k+1|0;l=g;return m|0}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];c[h+16>>2]=c[b+16>>2];c[h+20>>2]=c[b+20>>2];c[h+24>>2]=c[b+24>>2];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[b+16>> -2]=c[d+16>>2];c[b+20>>2]=c[d+20>>2];c[b+24>>2]=c[d+24>>2];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];c[d+16>>2]=c[h+16>>2];c[d+20>>2]=c[h+20>>2];c[d+24>>2]=c[h+24>>2];if(!(Ya[c[f>>2]&31](b,a)|0)){m=k+2|0;l=g;return m|0}c[h>>2]=c[a>>2];c[h+4>>2]=c[a+4>>2];c[h+8>>2]=c[a+8>>2];c[h+12>>2]=c[a+12>>2];c[h+16>>2]=c[a+16>>2];c[h+20>>2]=c[a+20>>2];c[h+24>>2]=c[a+24>>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[a+16>>2]=c[b+16>>2];c[a+ -20>>2]=c[b+20>>2];c[a+24>>2]=c[b+24>>2];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];c[b+16>>2]=c[h+16>>2];c[b+20>>2]=c[h+20>>2];c[b+24>>2]=c[h+24>>2];m=k+3|0;l=g;return m|0}function hl(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,m=0;e=l;l=l+32|0;f=e;g=a+56|0;h=a+28|0;i=Ya[c[d>>2]&31](h,a)|0;j=Ya[c[d>>2]&31](g,h)|0;do if(i){if(j){c[f>>2]=c[a>>2];c[f+4>>2]=c[a+4>>2];c[f+8>>2]=c[a+8>>2];c[f+12>>2]=c[a+12>>2];c[f+16>>2]=c[a+16>>2];c[f+20>>2]=c[a+20>>2];c[f+ -24>>2]=c[a+24>>2];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];c[a+16>>2]=c[g+16>>2];c[a+20>>2]=c[g+20>>2];c[a+24>>2]=c[g+24>>2];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];c[g+16>>2]=c[f+16>>2];c[g+20>>2]=c[f+20>>2];c[g+24>>2]=c[f+24>>2];break}c[f>>2]=c[a>>2];c[f+4>>2]=c[a+4>>2];c[f+8>>2]=c[a+8>>2];c[f+12>>2]=c[a+12>>2];c[f+16>>2]=c[a+16>>2];c[f+20>>2]=c[a+20>>2];c[f+24>>2]=c[a+24>>2];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];c[a+16>>2]=c[h+16>>2];c[a+20>>2]=c[h+20>>2];c[a+24>>2]=c[h+24>>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];c[h+16>>2]=c[f+16>>2];c[h+20>>2]=c[f+20>>2];c[h+24>>2]=c[f+24>>2];if(Ya[c[d>>2]&31](g,h)|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];c[f+16>>2]=c[h+16>>2];c[f+20>>2]=c[h+20>>2];c[f+24>>2]=c[h+24>>2];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];c[h+16>>2]= -c[g+16>>2];c[h+20>>2]=c[g+20>>2];c[h+24>>2]=c[g+24>>2];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];c[g+16>>2]=c[f+16>>2];c[g+20>>2]=c[f+20>>2];c[g+24>>2]=c[f+24>>2]}}else if(j?(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],c[f+16>>2]=c[h+16>>2],c[f+20>>2]=c[h+20>>2],c[f+24>>2]=c[h+24>>2],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],c[h+16>>2]=c[g+16>>2],c[h+20>>2]=c[g+20>>2],c[h+24>>2]=c[g+24>>2],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],c[g+16>>2]=c[f+16>>2],c[g+20>>2]=c[f+20>>2],c[g+24>>2]=c[f+24>>2],Ya[c[d>>2]&31](h,a)|0):0){c[f>>2]=c[a>>2];c[f+4>>2]=c[a+4>>2];c[f+8>>2]=c[a+8>>2];c[f+12>>2]=c[a+12>>2];c[f+16>>2]=c[a+16>>2];c[f+20>>2]=c[a+20>>2];c[f+24>>2]=c[a+24>>2];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];c[a+16>>2]=c[h+16>>2];c[a+20>>2]=c[h+20>>2];c[a+24>>2]=c[h+24>>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];c[h+16>>2]=c[f+16>>2];c[h+20>>2]=c[f+20>>2];c[h+24>>2]=c[f+24>>2]}while(0);h=a+84|0;if((h|0)==(b|0)){l=e;return}j=h;h=g;while(1){if(Ya[c[d>>2]&31](j,h)|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[f+20>>2]=c[j+20>>2];c[f+24>>2]=c[j+24>>2];g=h;i=j;while(1){c[i>>2]=c[g>>2];c[i+4>>2]=c[g+4>>2];c[i+8>>2]=c[g+8>>2];c[i+12>>2]=c[g+12>>2];c[i+16>>2]=c[g+16>>2];c[i+20>>2]=c[g+20>>2];c[i+24>>2]=c[g+24>>2];if((g|0)==(a| -0))break;k=g+-28|0;if(Ya[c[d>>2]&31](f,k)|0){m=g;g=k;i=m}else break}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];c[g+16>>2]=c[f+16>>2];c[g+20>>2]=c[f+20>>2];c[g+24>>2]=c[f+24>>2]}i=j+28|0;if((i|0)==(b|0))break;else{m=j;j=i;h=m}}l=e;return}function il(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,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;e=l;l=l+32|0;f=e;switch((b-a|0)/28|0|0){case 2:{g=b+-28|0;if(!(Ya[c[d>>2]&31](g,a)|0)){h=1;l=e;return h|0}c[f>>2]=c[a>>2];c[f+4>> -2]=c[a+4>>2];c[f+8>>2]=c[a+8>>2];c[f+12>>2]=c[a+12>>2];c[f+16>>2]=c[a+16>>2];c[f+20>>2]=c[a+20>>2];c[f+24>>2]=c[a+24>>2];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];c[a+16>>2]=c[g+16>>2];c[a+20>>2]=c[g+20>>2];c[a+24>>2]=c[g+24>>2];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];c[g+16>>2]=c[f+16>>2];c[g+20>>2]=c[f+20>>2];c[g+24>>2]=c[f+24>>2];h=1;l=e;return h|0}case 3:{g=a+28|0;i=b+-28|0;j=Ya[c[d>>2]&31](g,a)|0;k=Ya[c[d>>2]&31](i,g)| -0;if(!j){if(!k){h=1;l=e;return h|0}c[f>>2]=c[g>>2];c[f+4>>2]=c[g+4>>2];c[f+8>>2]=c[g+8>>2];c[f+12>>2]=c[g+12>>2];c[f+16>>2]=c[g+16>>2];c[f+20>>2]=c[g+20>>2];c[f+24>>2]=c[g+24>>2];c[g>>2]=c[i>>2];c[g+4>>2]=c[i+4>>2];c[g+8>>2]=c[i+8>>2];c[g+12>>2]=c[i+12>>2];c[g+16>>2]=c[i+16>>2];c[g+20>>2]=c[i+20>>2];c[g+24>>2]=c[i+24>>2];c[i>>2]=c[f>>2];c[i+4>>2]=c[f+4>>2];c[i+8>>2]=c[f+8>>2];c[i+12>>2]=c[f+12>>2];c[i+16>>2]=c[f+16>>2];c[i+20>>2]=c[f+20>>2];c[i+24>>2]=c[f+24>>2];if(!(Ya[c[d>>2]&31](g,a)|0)){h=1;l= -e;return h|0}c[f>>2]=c[a>>2];c[f+4>>2]=c[a+4>>2];c[f+8>>2]=c[a+8>>2];c[f+12>>2]=c[a+12>>2];c[f+16>>2]=c[a+16>>2];c[f+20>>2]=c[a+20>>2];c[f+24>>2]=c[a+24>>2];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];c[a+16>>2]=c[g+16>>2];c[a+20>>2]=c[g+20>>2];c[a+24>>2]=c[g+24>>2];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];c[g+16>>2]=c[f+16>>2];c[g+20>>2]=c[f+20>>2];c[g+24>>2]=c[f+24>>2];h=1;l=e;return h|0}if(k){c[f>>2]=c[a>>2];c[f+4>>2]=c[a+4>> -2];c[f+8>>2]=c[a+8>>2];c[f+12>>2]=c[a+12>>2];c[f+16>>2]=c[a+16>>2];c[f+20>>2]=c[a+20>>2];c[f+24>>2]=c[a+24>>2];c[a>>2]=c[i>>2];c[a+4>>2]=c[i+4>>2];c[a+8>>2]=c[i+8>>2];c[a+12>>2]=c[i+12>>2];c[a+16>>2]=c[i+16>>2];c[a+20>>2]=c[i+20>>2];c[a+24>>2]=c[i+24>>2];c[i>>2]=c[f>>2];c[i+4>>2]=c[f+4>>2];c[i+8>>2]=c[f+8>>2];c[i+12>>2]=c[f+12>>2];c[i+16>>2]=c[f+16>>2];c[i+20>>2]=c[f+20>>2];c[i+24>>2]=c[f+24>>2];h=1;l=e;return h|0}c[f>>2]=c[a>>2];c[f+4>>2]=c[a+4>>2];c[f+8>>2]=c[a+8>>2];c[f+12>>2]=c[a+12>>2];c[f+16>> -2]=c[a+16>>2];c[f+20>>2]=c[a+20>>2];c[f+24>>2]=c[a+24>>2];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];c[a+16>>2]=c[g+16>>2];c[a+20>>2]=c[g+20>>2];c[a+24>>2]=c[g+24>>2];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];c[g+16>>2]=c[f+16>>2];c[g+20>>2]=c[f+20>>2];c[g+24>>2]=c[f+24>>2];if(!(Ya[c[d>>2]&31](i,g)|0)){h=1;l=e;return h|0}c[f>>2]=c[g>>2];c[f+4>>2]=c[g+4>>2];c[f+8>>2]=c[g+8>>2];c[f+12>>2]=c[g+12>>2];c[f+16>>2]=c[g+16>>2];c[f+20>> -2]=c[g+20>>2];c[f+24>>2]=c[g+24>>2];c[g>>2]=c[i>>2];c[g+4>>2]=c[i+4>>2];c[g+8>>2]=c[i+8>>2];c[g+12>>2]=c[i+12>>2];c[g+16>>2]=c[i+16>>2];c[g+20>>2]=c[i+20>>2];c[g+24>>2]=c[i+24>>2];c[i>>2]=c[f>>2];c[i+4>>2]=c[f+4>>2];c[i+8>>2]=c[f+8>>2];c[i+12>>2]=c[f+12>>2];c[i+16>>2]=c[f+16>>2];c[i+20>>2]=c[f+20>>2];c[i+24>>2]=c[f+24>>2];h=1;l=e;return h|0}case 4:{gl(a,a+28|0,a+56|0,b+-28|0,d)|0;h=1;l=e;return h|0}case 5:{i=a+28|0;g=a+56|0;k=a+84|0;j=b+-28|0;gl(a,i,g,k,d)|0;if(!(Ya[c[d>>2]&31](j,k)|0)){h=1;l=e;return h| -0}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];c[f+16>>2]=c[k+16>>2];c[f+20>>2]=c[k+20>>2];c[f+24>>2]=c[k+24>>2];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];c[k+16>>2]=c[j+16>>2];c[k+20>>2]=c[j+20>>2];c[k+24>>2]=c[j+24>>2];c[j>>2]=c[f>>2];c[j+4>>2]=c[f+4>>2];c[j+8>>2]=c[f+8>>2];c[j+12>>2]=c[f+12>>2];c[j+16>>2]=c[f+16>>2];c[j+20>>2]=c[f+20>>2];c[j+24>>2]=c[f+24>>2];if(!(Ya[c[d>>2]&31](k,g)|0)){h=1;l=e;return h|0}c[f>>2]=c[g>>2];c[f+ -4>>2]=c[g+4>>2];c[f+8>>2]=c[g+8>>2];c[f+12>>2]=c[g+12>>2];c[f+16>>2]=c[g+16>>2];c[f+20>>2]=c[g+20>>2];c[f+24>>2]=c[g+24>>2];c[g>>2]=c[k>>2];c[g+4>>2]=c[k+4>>2];c[g+8>>2]=c[k+8>>2];c[g+12>>2]=c[k+12>>2];c[g+16>>2]=c[k+16>>2];c[g+20>>2]=c[k+20>>2];c[g+24>>2]=c[k+24>>2];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[k+16>>2]=c[f+16>>2];c[k+20>>2]=c[f+20>>2];c[k+24>>2]=c[f+24>>2];if(!(Ya[c[d>>2]&31](g,i)|0)){h=1;l=e;return h|0}c[f>>2]=c[i>>2];c[f+4>>2]=c[i+4>>2];c[f+8>> -2]=c[i+8>>2];c[f+12>>2]=c[i+12>>2];c[f+16>>2]=c[i+16>>2];c[f+20>>2]=c[i+20>>2];c[f+24>>2]=c[i+24>>2];c[i>>2]=c[g>>2];c[i+4>>2]=c[g+4>>2];c[i+8>>2]=c[g+8>>2];c[i+12>>2]=c[g+12>>2];c[i+16>>2]=c[g+16>>2];c[i+20>>2]=c[g+20>>2];c[i+24>>2]=c[g+24>>2];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];c[g+16>>2]=c[f+16>>2];c[g+20>>2]=c[f+20>>2];c[g+24>>2]=c[f+24>>2];if(!(Ya[c[d>>2]&31](i,a)|0)){h=1;l=e;return h|0}c[f>>2]=c[a>>2];c[f+4>>2]=c[a+4>>2];c[f+8>>2]=c[a+8>>2];c[f+12>> -2]=c[a+12>>2];c[f+16>>2]=c[a+16>>2];c[f+20>>2]=c[a+20>>2];c[f+24>>2]=c[a+24>>2];c[a>>2]=c[i>>2];c[a+4>>2]=c[i+4>>2];c[a+8>>2]=c[i+8>>2];c[a+12>>2]=c[i+12>>2];c[a+16>>2]=c[i+16>>2];c[a+20>>2]=c[i+20>>2];c[a+24>>2]=c[i+24>>2];c[i>>2]=c[f>>2];c[i+4>>2]=c[f+4>>2];c[i+8>>2]=c[f+8>>2];c[i+12>>2]=c[f+12>>2];c[i+16>>2]=c[f+16>>2];c[i+20>>2]=c[f+20>>2];c[i+24>>2]=c[f+24>>2];h=1;l=e;return h|0}case 1:case 0:{h=1;l=e;return h|0}default:{i=a+56|0;g=a+28|0;k=Ya[c[d>>2]&31](g,a)|0;j=Ya[c[d>>2]&31](i,g)|0;do if(k){if(j){c[f>> -2]=c[a>>2];c[f+4>>2]=c[a+4>>2];c[f+8>>2]=c[a+8>>2];c[f+12>>2]=c[a+12>>2];c[f+16>>2]=c[a+16>>2];c[f+20>>2]=c[a+20>>2];c[f+24>>2]=c[a+24>>2];c[a>>2]=c[i>>2];c[a+4>>2]=c[i+4>>2];c[a+8>>2]=c[i+8>>2];c[a+12>>2]=c[i+12>>2];c[a+16>>2]=c[i+16>>2];c[a+20>>2]=c[i+20>>2];c[a+24>>2]=c[i+24>>2];c[i>>2]=c[f>>2];c[i+4>>2]=c[f+4>>2];c[i+8>>2]=c[f+8>>2];c[i+12>>2]=c[f+12>>2];c[i+16>>2]=c[f+16>>2];c[i+20>>2]=c[f+20>>2];c[i+24>>2]=c[f+24>>2];break}c[f>>2]=c[a>>2];c[f+4>>2]=c[a+4>>2];c[f+8>>2]=c[a+8>>2];c[f+12>>2]=c[a+ -12>>2];c[f+16>>2]=c[a+16>>2];c[f+20>>2]=c[a+20>>2];c[f+24>>2]=c[a+24>>2];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];c[a+16>>2]=c[g+16>>2];c[a+20>>2]=c[g+20>>2];c[a+24>>2]=c[g+24>>2];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];c[g+16>>2]=c[f+16>>2];c[g+20>>2]=c[f+20>>2];c[g+24>>2]=c[f+24>>2];if(Ya[c[d>>2]&31](i,g)|0){c[f>>2]=c[g>>2];c[f+4>>2]=c[g+4>>2];c[f+8>>2]=c[g+8>>2];c[f+12>>2]=c[g+12>>2];c[f+16>>2]=c[g+16>>2];c[f+20>>2]=c[g+ -20>>2];c[f+24>>2]=c[g+24>>2];c[g>>2]=c[i>>2];c[g+4>>2]=c[i+4>>2];c[g+8>>2]=c[i+8>>2];c[g+12>>2]=c[i+12>>2];c[g+16>>2]=c[i+16>>2];c[g+20>>2]=c[i+20>>2];c[g+24>>2]=c[i+24>>2];c[i>>2]=c[f>>2];c[i+4>>2]=c[f+4>>2];c[i+8>>2]=c[f+8>>2];c[i+12>>2]=c[f+12>>2];c[i+16>>2]=c[f+16>>2];c[i+20>>2]=c[f+20>>2];c[i+24>>2]=c[f+24>>2]}}else if(j?(c[f>>2]=c[g>>2],c[f+4>>2]=c[g+4>>2],c[f+8>>2]=c[g+8>>2],c[f+12>>2]=c[g+12>>2],c[f+16>>2]=c[g+16>>2],c[f+20>>2]=c[g+20>>2],c[f+24>>2]=c[g+24>>2],c[g>>2]=c[i>>2],c[g+4>>2]=c[i+ -4>>2],c[g+8>>2]=c[i+8>>2],c[g+12>>2]=c[i+12>>2],c[g+16>>2]=c[i+16>>2],c[g+20>>2]=c[i+20>>2],c[g+24>>2]=c[i+24>>2],c[i>>2]=c[f>>2],c[i+4>>2]=c[f+4>>2],c[i+8>>2]=c[f+8>>2],c[i+12>>2]=c[f+12>>2],c[i+16>>2]=c[f+16>>2],c[i+20>>2]=c[f+20>>2],c[i+24>>2]=c[f+24>>2],Ya[c[d>>2]&31](g,a)|0):0){c[f>>2]=c[a>>2];c[f+4>>2]=c[a+4>>2];c[f+8>>2]=c[a+8>>2];c[f+12>>2]=c[a+12>>2];c[f+16>>2]=c[a+16>>2];c[f+20>>2]=c[a+20>>2];c[f+24>>2]=c[a+24>>2];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];c[a+16>>2]=c[g+16>>2];c[a+20>>2]=c[g+20>>2];c[a+24>>2]=c[g+24>>2];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];c[g+16>>2]=c[f+16>>2];c[g+20>>2]=c[f+20>>2];c[g+24>>2]=c[f+24>>2]}while(0);g=a+84|0;a:do if((g|0)==(b|0)){m=1;n=0}else{j=g;k=0;o=i;while(1){if(Ya[c[d>>2]&31](j,o)|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[f+20>>2]=c[j+20>>2];c[f+24>>2]=c[j+24>>2];p=o;q=j;while(1){c[q>>2]=c[p>>2];c[q+4>>2]=c[p+ -4>>2];c[q+8>>2]=c[p+8>>2];c[q+12>>2]=c[p+12>>2];c[q+16>>2]=c[p+16>>2];c[q+20>>2]=c[p+20>>2];c[q+24>>2]=c[p+24>>2];if((p|0)==(a|0))break;r=p+-28|0;if(Ya[c[d>>2]&31](f,r)|0){s=p;p=r;q=s}else break}c[p>>2]=c[f>>2];c[p+4>>2]=c[f+4>>2];c[p+8>>2]=c[f+8>>2];c[p+12>>2]=c[f+12>>2];c[p+16>>2]=c[f+16>>2];c[p+20>>2]=c[f+20>>2];c[p+24>>2]=c[f+24>>2];q=k+1|0;if((q|0)==8){m=0;n=(j+28|0)==(b|0);break a}else t=q}else t=k;q=j+28|0;if((q|0)==(b|0)){m=1;n=0;break}else{s=j;j=q;k=t;o=s}}}while(0);h=n|m;l=e;return h|0}}return 0} -function jl(a){a=a|0;fn(a);return}function kl(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;e=l;l=l+48|0;f=e+24|0;g=e;if(a[d+38>>0]|0){l=e;return 1}h=c[d+12>>2]|0;i=Ma[c[(c[h>>2]|0)+12>>2]&7](h)|0;if((i|0)<=0){l=e;return 1}h=d+24|0;j=b+4|0;k=g+16|0;m=g+20|0;n=g+4|0;o=0;do{p=(c[h>>2]|0)+(o*28|0)|0;c[f>>2]=c[p>>2];c[f+4>>2]=c[p+4>>2];c[f+8>>2]=c[p+8>>2];c[f+12>>2]=c[p+12>>2];Xk(g,c[j>>2]|0,f);p=c[k>>2]|0;q=c[m>>2]|0;if(p>>>0>>0){r=c[g>>2]|0;s=c[n>>2]|0; -t=p;a:while(1){p=t;while(1){u=c[p+4>>2]&1048575;v=p+8|0;if(!(u>>>0>>0|u>>>0>s>>>0))break;if(v>>>0>>0)p=v;else break a}u=c[p>>2]|0;if((u|0)<=-1)break;_a[c[(c[b>>2]|0)+20>>2]&31](b,d,o,u);if(v>>>0>>0)t=v;else break}c[k>>2]=v}o=o+1|0}while((o|0)!=(i|0));l=e;return 1}function ll(a,b){a=a|0;b=b|0;return 0}function ml(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,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;f=l;l=l+32|0;h=f;i=f+16|0;j=f+8|0;k=a+4|0; -m=(c[(c[k>>2]|0)+96>>2]|0)+(e<<3)|0;n=c[m+4>>2]|0;o=h;c[o>>2]=c[m>>2];c[o+4>>2]=n;n=c[b+12>>2]|0;o=b+8|0;Xa[c[(c[n>>2]|0)+20>>2]&7](n,(c[o>>2]|0)+12|0,h,i,j,d);d=c[k>>2]|0;if(!(+g[i>>2]<+g[d+32>>2])){l=f;return}n=c[a+8>>2]|0;do if((n|0)!=0?(c[(c[d+88>>2]|0)+(e<<2)>>2]&65536|0)!=0:0)if(Wa[c[(c[n>>2]|0)+12>>2]&7](n,b,d,e)|0){p=c[k>>2]|0;break}else{l=f;return}else p=d;while(0);d=c[o>>2]|0;q=+g[d+132>>2];r=+g[d+44>>2];s=+g[d+48>>2];t=q*(r*r+s*s);s=+g[d+140>>2]+t-t;if(!(c[(c[p+88>>2]|0)+(e<<2)>>2]&4)){t= -+g[p+36>>2]*1.3333333730697632;u=t*(+g[p+28>>2]*t)}else u=0;o=j+4|0;t=+g[o>>2];r=+g[j>>2];v=(+g[h>>2]-+g[d+60>>2])*t-(+g[h+4>>2]-+g[d+64>>2])*r;w=(q>0?1/q:0)+u+v*((s>0?1/s:0)*v);h=p+232|0;n=p+236|0;a=c[n>>2]|0;m=p+240|0;x=c[m>>2]|0;if((a|0)>=(x|0)?(y=(x|0)==0?256:x<<1,(x|0)<(y|0)):0){x=p+244|0;z=Pl(c[x>>2]|0,y*28|0)|0;A=c[h>>2]|0;if(!A)B=h;else{Qn(z|0,A|0,(c[n>>2]|0)*28|0)|0;Ql(c[x>>2]|0,c[h>>2]|0,(c[m>>2]|0)*28|0);B=h}c[m>>2]=y;c[B>>2]=z;C=c[n>>2]|0;D=c[k>>2]|0;E=+g[j>>2];F=+g[o>>2]}else{C=a;D=p; -E=r;F=t}p=c[h>>2]|0;c[n>>2]=C+1;c[p+(C*28|0)>>2]=e;c[p+(C*28|0)+4>>2]=d;c[p+(C*28|0)+8>>2]=b;g[p+(C*28|0)+12>>2]=1-+g[i>>2]*+g[D+36>>2];g[p+(C*28|0)+16>>2]=-E;g[p+(C*28|0)+20>>2]=-F;g[p+(C*28|0)+24>>2]=w>0?1/w:0;Yk(c[k>>2]|0,e);l=f;return}function nl(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0,i=0,j=0,k=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;d=l;l=l+64|0;e=d;f=d+16|0;g[e>>2]=3.4028234663852886E38;h=e+4|0;g[h>>2]=3.4028234663852886E38;i=e+8|0;g[i>>2]=-3.4028234663852886E38;j=e+12|0; -g[j>>2]=-3.4028234663852886E38;k=c[a+44>>2]|0;if((k|0)>0){m=c[a+104>>2]|0;n=c[a+96>>2]|0;o=+g[b>>2];p=0;q=3.4028234663852886E38;r=3.4028234663852886E38;s=-3.4028234663852886E38;t=-3.4028234663852886E38;do{u=+g[n+(p<<3)>>2];v=+g[n+(p<<3)+4>>2];w=u+ +g[m+(p<<3)>>2]*o;x=v+ +g[m+(p<<3)+4>>2]*o;y=u>2]=q;g[h>>2]=r;z=u>w?u:w;w=v>x?v:x;s=s>z?s:z;t=t>w?t:w;g[i>>2]=s;g[j>>2]=t;p=p+1|0}while((p|0)<(k|0))}k=c[a+400>>2]|0;if(!(c[a+8>>2]&65536))A=0;else A=c[k+102948>>2]| -0;c[f+4>>2]=a;c[f>>2]=2068;a=f+8|0;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[a+16>>2]=c[b+16>>2];c[a+20>>2]=c[b+20>>2];c[a+24>>2]=c[b+24>>2];c[f+36>>2]=A;$i(k,f,e);l=d;return}function ol(a){a=a|0;fn(a);return}function pl(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var h=0,i=0,k=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;h=l;l=l+48|0;i=h+24|0;k=h;m=c[b+36>>2]|0;n=b+4|0;if((m|0?(o=c[n>>2]|0,c[(c[o+ -88>>2]|0)+(f<<2)>>2]&65536|0):0)?!(Wa[c[(c[m>>2]|0)+12>>2]&7](m,d,o,f)|0):0){l=h;return}o=c[d+8>>2]|0;m=c[n>>2]|0;p=c[m+96>>2]|0;q=c[p+(f<<3)>>2]|0;r=c[p+(f<<3)+4>>2]|0;p=c[m+104>>2]|0;s=+g[p+(f<<3)>>2];t=+g[p+(f<<3)+4>>2];if(!(c[m+24>>2]|0)){u=(c[j>>2]=q,+g[j>>2]);v=u-+g[o+28>>2];w=(c[j>>2]=r,+g[j>>2]);x=w-+g[o+32>>2];y=+g[o+40>>2];z=+g[o+36>>2];A=v*y+x*z;B=y*x-v*z;m=c[d+12>>2]|0;if(!(c[m+4>>2]|0)){v=+g[o+44>>2];x=A-v;C=+g[o+48>>2];D=B-C;E=x*y-D*z;F=y*D+x*z;z=+g[o+24>>2];x=+g[o+20>>2];G=v+(z*E+x* -F);H=C+(z*F-E*x);I=z;J=x}else{G=A;H=B;I=+g[o+24>>2];J=+g[o+20>>2]}p=(g[j>>2]=+g[o+12>>2]+(G*I-H*J),c[j>>2]|0);K=u;L=w;M=(g[j>>2]=H*I+G*J+ +g[o+16>>2],c[j>>2]|0);N=p;O=m}else{J=(c[j>>2]=q,+g[j>>2]);K=J;L=(c[j>>2]=r,+g[j>>2]);M=r;N=q;O=c[d+12>>2]|0}c[k>>2]=N;N=k+4|0;c[N>>2]=M;J=+g[b+8>>2];M=k+8|0;g[M>>2]=K+s*J;d=k+12|0;g[d>>2]=L+t*J;g[k+16>>2]=1;if((Za[c[(c[O>>2]|0)+24>>2]&15](O,i,k,o+12|0,e)|0?(J=+g[i+8>>2],G=1-J,e=b+12|0,I=+g[e>>2],H=I*(+g[i>>2]*.004999999888241291+(+g[k>>2]*G+J*+g[M>>2])-K),K=I* -(+g[i+4>>2]*.004999999888241291+(G*+g[N>>2]+J*+g[d>>2])-L),d=c[(c[n>>2]|0)+104>>2]|0,g[d+(f<<3)>>2]=H,g[d+(f<<3)+4>>2]=K,d=c[n>>2]|0,L=+g[d+32>>2]*.75,J=+g[e>>2]*(L*(+g[d+320>>2]*L)),L=(s-H)*J,H=(t-K)*J,L!=0|H!=0):0)?(c[(c[d+88>>2]|0)+(f<<2)>>2]&4|0)==0:0){e=d+21|0;n=d+112|0;if(!(a[e>>0]|0)){Nn(c[n>>2]|0,0,c[d+44>>2]<<3|0)|0;a[e>>0]=1}e=c[n>>2]|0;n=e+(f<<3)|0;g[n>>2]=L+ +g[n>>2];n=e+(f<<3)+4|0;g[n>>2]=H+ +g[n>>2]}l=h;return}function ql(b,d){b=b|0;d=d|0;var e=0,f=0,h=0,i=0,k=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,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;e=l;l=l+48|0;f=e;h=e+16|0;i=b+44|0;k=c[i>>2]|0;if((k|0)>0){m=c[b+88>>2]|0;n=b+104|0;o=0;do{if((c[m+(o<<2)>>2]&1028|0)==1028){p=c[n>>2]|0;g[p+(o<<3)>>2]=0;g[p+(o<<3)+4>>2]=0}o=o+1|0}while((o|0)<(k|0))}q=+g[d>>2]*2.5;k=b+252|0;o=c[k>> -2]|0;if((o|0)<=0){l=e;return}n=b+248|0;m=b+96|0;p=f+4|0;r=f+8|0;s=f+12|0;t=b+144|0;u=b+104|0;v=h+16|0;w=h+20|0;x=h+4|0;y=b+32|0;z=b+320|0;A=d+4|0;d=b+88|0;B=b+21|0;D=b+112|0;E=0;F=o;while(1){o=c[n>>2]|0;if(!(c[o+(E*20|0)+8>>2]&1024))G=F;else{H=c[o+(E*20|0)>>2]|0;I=c[o+(E*20|0)+4>>2]|0;o=c[m>>2]|0;J=+g[o+(H<<3)>>2];K=+g[o+(H<<3)+4>>2];L=+g[o+(I<<3)>>2];M=+g[o+(I<<3)+4>>2];g[f>>2]=J>2]=K>2]=J>L?J:L;g[s>>2]=K>M?K:M;o=c[t>>2]|0;N=c[o+(H<<2)>>2]|0;O=c[o+(I<<2)>>2]|0;if((N|0)!=0?(c[N+ -12>>2]&2|0)!=0:0){Lj(N);P=+g[N+56>>2];Q=+g[N+48>>2]-P*(K-+g[N+44>>2]);R=P*(J-+g[N+40>>2])+ +g[N+52>>2]}else{o=c[u>>2]|0;Q=+g[o+(H<<3)>>2];R=+g[o+(H<<3)+4>>2]}if((O|0)!=0?(c[O+12>>2]&2|0)!=0:0){Lj(O);P=+g[O+56>>2];S=+g[O+48>>2]-P*(M-+g[O+44>>2]);T=P*(L-+g[O+40>>2])+ +g[O+52>>2]}else{H=c[u>>2]|0;S=+g[H+(I<<3)>>2];T=+g[H+(I<<3)+4>>2]}P=L-J;L=M-K;M=S-Q;U=T-R;Xk(h,b,f);I=c[v>>2]|0;H=c[w>>2]|0;if(I>>>0>>0){o=c[h>>2]|0;V=c[x>>2]|0;W=I;a:while(1){I=W;while(1){X=c[I+4>>2]&1048575;Y=I+8|0;if(!(X>>>0>> -0|X>>>0>V>>>0))break;if(Y>>>0>>0)I=Y;else break a}X=c[I>>2]|0;if((X|0)<=-1)break;Z=c[m>>2]|0;_=c[Z+(X<<3)>>2]|0;$=c[Z+(X<<3)+4>>2]|0;Z=c[(c[t>>2]|0)+(X<<2)>>2]|0;b:do if(!((N|0)==(Z|0)|(O|0)==(Z|0))){aa=(Z|0)==0;if(!aa?(c[Z+12>>2]&2|0)!=0:0){Lj(Z);ba=+g[Z+56>>2];ca=(c[j>>2]=_,+g[j>>2]);da=(c[j>>2]=$,+g[j>>2]);ea=da;fa=ca;ga=+g[Z+48>>2]-ba*(da-+g[Z+44>>2]);ha=ba*(ca-+g[Z+40>>2])+ +g[Z+52>>2]}else{ia=c[u>>2]|0;ca=(c[j>>2]=_,+g[j>>2]);ea=(c[j>>2]=$,+g[j>>2]);fa=ca;ga=+g[ia+(X<<3)>>2];ha=+g[ia+(X<< -3)+4>>2]}ca=fa-J;ba=ea-K;da=ga-Q;ja=ha-R;ka=M*ja-U*da;la=P*ja-L*da-(U*ca-M*ba);ma=P*ba-L*ca;do if(ka==0){if(la==0)break b;na=-ma/la;if(!(na>=0&na=0&qa<=1)ra=qa;else break b}else{qa=la*la-ma*4*ka;if(qa<0)break b;pa=+C(+qa);qa=ka*2;oa=(-la-pa)/qa;ia=(g[j>>2]=oa,c[j>>2]|0);na=(pa-la)/qa;sa=(g[j>>2]=na,c[j>>2]|0);ta=oa>na;ua=ta?ia:sa;na=(c[j>>2]=ta?sa:ia,+g[j>>2]);oa=P+M*na;qa=L+U*na;pa=(oa*(ca+da*na)+qa*(ba+ja*na))/ -(oa*oa+qa*qa);if(na>=0?pa<=1&(na=0):0){ra=pa;break}pa=(c[j>>2]=ua,+g[j>>2]);if(!(pa>=0&pa=0&oa<=1)ra=oa;else break b}while(0);ja=Q+M*ra-ga;ba=R+U*ra-ha;da=+g[y>>2]*.75;ca=da*(+g[z>>2]*da);da=ja*ca;la=ba*ca;if(!aa?(c[Z+12>>2]&2|0)!=0:0){Lj(Z);ca=+g[Z+32>>2];Lj(Z);ka=+g[Z+36>>2];if(ca>0){ma=1/ca;ua=Z+48|0;g[ua>>2]=da*ma+ +g[ua>>2];ua=Z+52|0;g[ua>>2]=la*ma+ +g[ua>>2]}if(ka>0){Lj(Z);ua=Z+56|0;va=ua;wa=+g[ua>>2]; -xa=(la*(fa-+g[Z+40>>2])-da*(ea-+g[Z+44>>2]))/ka;ya=46}}else{ua=c[u>>2]|0;ia=ua+(X<<3)|0;g[ia>>2]=ja+ +g[ia>>2];ia=ua+(X<<3)+4|0;va=ia;wa=ba;xa=+g[ia>>2];ya=46}if((ya|0)==46){ya=0;g[va>>2]=xa+wa}ba=-+g[A>>2];ja=da*ba;da=la*ba;if(ja!=0|da!=0?(c[(c[d>>2]|0)+(X<<2)>>2]&4|0)==0:0){if(!(a[B>>0]|0)){Nn(c[D>>2]|0,0,c[i>>2]<<3|0)|0;a[B>>0]=1}ia=c[D>>2]|0;ua=ia+(X<<3)|0;g[ua>>2]=ja+ +g[ua>>2];ua=ia+(X<<3)+4|0;g[ua>>2]=da+ +g[ua>>2]}}while(0);if(Y>>>0>>0)W=Y;else break}c[v>>2]=Y}G=c[k>>2]|0}E=E+1|0;if((E| -0)>=(G|0))break;else F=G}l=e;return}function rl(b,d){b=b|0;d=d|0;var e=0,f=0,h=0,i=0,j=0,k=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,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=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;e=l;l=l+48|0;f=e+32|0;h=e;i=b+44|0;j=c[i>>2]|0;if(!j){l=e;return}k=c[b+280>>2]|0;if(k|0){m=b+296|0;n=m;o=+g[d>>2]/+g[b+396>>2]*4294967296;p=Mn(~~o>>>0|0,(+B(o)>=1?o>0?~~+P(+A(o/4294967296),4294967295)>>>0:~~+N((o-+(~~o>>> -0))/4294967296)>>>0:0)|0,c[n>>2]|0,c[n+4>>2]|0)|0;n=z;q=m;c[q>>2]=p;c[q+4>>2]=n;q=c[b+288>>2]|0;p=b+304|0;if(a[p>>0]|0){c[f>>2]=k;sl(q,q+(j<<2)|0,f);a[p>>0]=0}a:do if((j|0)>0){p=b+88|0;m=j;do{r=m;m=m+-1|0;s=c[q+(m<<2)>>2]|0;t=c[k+(s<<2)>>2]|0;if((n|0)<(t|0)|(t|0)<1)break a;Wj(b,s,c[(c[p>>2]|0)+(s<<2)>>2]|2)}while((r|0)>1)}while(0)}n=b+8|0;if(c[n>>2]&2|0)Xj(b);k=b+12|0;if(a[k>>0]|0){c[n>>2]=0;q=c[i>>2]|0;if((q|0)>0){j=c[b+88>>2]|0;p=0;m=0;do{m=c[j+(p<<2)>>2]|m;c[n>>2]=m;p=p+1|0}while((p|0)!=(q|0))}a[k>> -0]=0}k=b+20|0;if(a[k>>0]|0){q=b+16|0;c[q>>2]=0;p=c[b+312>>2]|0;if(p|0){m=p;p=0;do{p=c[m+12>>2]|p;m=c[m+24>>2]|0}while((m|0)!=0);c[q>>2]=p}a[k>>0]=0}if(a[b>>0]|0){l=e;return}k=b+24|0;c[k>>2]=0;p=d+20|0;q=c[p>>2]|0;if((q|0)<=0){l=e;return}m=b+4|0;j=h+4|0;r=b+116|0;s=b+236|0;t=b+232|0;u=b+220|0;v=b+216|0;w=b+16|0;x=b+21|0;y=b+324|0;D=b+400|0;E=b+104|0;F=b+32|0;G=b+88|0;H=b+96|0;I=b+372|0;J=b+144|0;K=b+132|0;L=b+368|0;M=b+364|0;O=b+36|0;Q=b+28|0;R=b+112|0;S=f+4|0;T=q;do{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];c[h+16>>2]=c[d+16>>2];c[h+20>>2]=c[d+20>>2];c[h+24>>2]=c[d+24>>2];o=+(T|0);U=+g[h>>2]/o;g[h>>2]=U;V=o*+g[j>>2];g[j>>2]=V;ok(b,0);cl(b);Nn(c[r>>2]|0,0,c[i>>2]<<2|0)|0;q=c[s>>2]|0;if((q|0)>0){W=c[t>>2]|0;X=c[r>>2]|0;Y=0;do{Z=X+(c[W+(Y*28|0)>>2]<<2)|0;g[Z>>2]=+g[W+(Y*28|0)+12>>2]+ +g[Z>>2];Y=Y+1|0}while((Y|0)!=(q|0))}q=c[u>>2]|0;if((q|0)>0){Y=c[v>>2]|0;W=c[r>>2]|0;X=0;do{Z=c[Y+(X*24|0)+4>>2]|0;o=+g[Y+(X*24|0)+8>>2];_=W+(c[Y+(X*24| -0)>>2]<<2)|0;g[_>>2]=o+ +g[_>>2];_=W+(Z<<2)|0;g[_>>2]=o+ +g[_>>2];X=X+1|0}while((X|0)!=(q|0))}if(c[w>>2]&16|0)Wk(b);q=c[n>>2]|0;if(!(q&4096))$=q;else{q=c[G>>2]|0;c[f>>2]=2008;c[S>>2]=q;pk(b,0,c[i>>2]|0,f);if((c[i>>2]|0)>0){q=c[G>>2]|0;X=0;do{W=q+(X<<2)|0;c[W>>2]=c[W>>2]&-4097;X=X+1|0}while((X|0)<(c[i>>2]|0))}X=c[n>>2]&-4097;c[n>>2]=X;$=X}if(a[x>>0]|0){o=+g[O>>2]*1.3333333730697632;aa=U*(o*(+g[Q>>2]*o));X=c[i>>2]|0;if((X|0)>0){q=c[R>>2]|0;W=c[E>>2]|0;Y=0;do{o=aa*+g[q+(Y<<3)+4>>2];_=W+(Y<<3)|0;g[_>> -2]=aa*+g[q+(Y<<3)>>2]+ +g[_>>2];_=W+(Y<<3)+4|0;g[_>>2]=o+ +g[_>>2];Y=Y+1|0}while((Y|0)!=(X|0))}a[x>>0]=0}if(!($&32))ba=$;else{tl(b);ba=c[n>>2]|0}if(ba&8192|0?(aa=+g[M>>2]*(+g[F>>2]*V),X=c[u>>2]|0,(X|0)>0):0){Y=c[v>>2]|0;W=0;do{do if(c[Y+(W*24|0)+20>>2]&8192|0){q=c[Y+(W*24|0)>>2]|0;_=c[Y+(W*24|0)+4>>2]|0;Z=c[J>>2]|0;if((c[Z+(q<<2)>>2]|0)==(c[Z+(_<<2)>>2]|0))break;o=aa*+g[Y+(W*24|0)+8>>2];ca=+g[Y+(W*24|0)+12>>2]*o;da=o*+g[Y+(W*24|0)+16>>2];Z=c[E>>2]|0;ea=Z+(q<<3)|0;g[ea>>2]=+g[ea>>2]-ca;ea=Z+(q<<3)+ -4|0;g[ea>>2]=+g[ea>>2]-da;ea=Z+(_<<3)|0;g[ea>>2]=ca+ +g[ea>>2];ea=Z+(_<<3)+4|0;g[ea>>2]=da+ +g[ea>>2]}while(0);W=W+1|0}while((W|0)!=(X|0))}if(ba&64|0?(aa=+g[L>>2]*(+g[F>>2]*V),X=c[u>>2]|0,(X|0)>0):0){W=c[v>>2]|0;Y=0;do{do if(c[W+(Y*24|0)+20>>2]&64|0){da=+g[W+(Y*24|0)+8>>2];if(!(da>.25))break;ea=c[W+(Y*24|0)>>2]|0;_=c[W+(Y*24|0)+4>>2]|0;ca=aa*(da+-.25);da=ca*+g[W+(Y*24|0)+12>>2];o=ca*+g[W+(Y*24|0)+16>>2];Z=c[E>>2]|0;q=Z+(ea<<3)|0;g[q>>2]=+g[q>>2]-da;q=Z+(ea<<3)+4|0;g[q>>2]=+g[q>>2]-o;q=Z+(_<<3)|0; -g[q>>2]=da+ +g[q>>2];q=Z+(_<<3)+4|0;g[q>>2]=o+ +g[q>>2]}while(0);Y=Y+1|0}while((Y|0)!=(X|0))}if(ba&128|0)ul(b,h);if(c[w>>2]&1|0?(aa=V*+g[I>>2],X=c[u>>2]|0,(X|0)>0):0){Y=c[v>>2]|0;W=c[J>>2]|0;q=0;do{_=c[Y+(q*24|0)>>2]|0;Z=c[Y+(q*24|0)+4>>2]|0;if((c[W+(_<<2)>>2]|0)!=(c[W+(Z<<2)>>2]|0)){ea=c[K>>2]|0;o=+g[Y+(q*24|0)+8>>2]*(aa*(+g[ea+(_<<2)>>2]+ +g[ea+(Z<<2)>>2]));da=+g[Y+(q*24|0)+12>>2]*o;ca=+g[Y+(q*24|0)+16>>2]*o;ea=c[E>>2]|0;fa=ea+(_<<3)|0;g[fa>>2]=+g[fa>>2]-da;fa=ea+(_<<3)+4|0;g[fa>>2]=+g[fa>>2]-ca; -fa=ea+(Z<<3)|0;g[fa>>2]=da+ +g[fa>>2];fa=ea+(Z<<3)+4|0;g[fa>>2]=ca+ +g[fa>>2]}q=q+1|0}while((q|0)!=(X|0))}if(c[n>>2]&256|0)vl(b);aa=U*+g[y>>2];X=c[D>>2]|0;ca=aa*+g[X+102980>>2];da=aa*+g[X+102984>>2];X=c[i>>2]|0;if((X|0)>0){q=c[E>>2]|0;Y=0;do{W=q+(Y<<3)|0;g[W>>2]=ca+ +g[W>>2];W=q+(Y<<3)+4|0;g[W>>2]=da+ +g[W>>2];Y=Y+1|0}while((Y|0)!=(X|0))}if(c[n>>2]&2048|0)wl(b,h);xl(b,h);yl(b,h);X=c[n>>2]|0;if(!(X&2048))ga=X;else{zl(b);ga=c[n>>2]|0}if(!(ga&16))ha=ga;else{Al(b,h);ha=c[n>>2]|0}if(ha&8|0)Bl(b,h);da= -+g[F>>2]*V;ca=da*da;X=c[i>>2]|0;if((X|0)>0){Y=c[E>>2]|0;q=0;do{W=Y+(q<<3)|0;da=+g[W>>2];fa=Y+(q<<3)+4|0;aa=+g[fa>>2];o=da*da+aa*aa;if(o>ca){ia=+C(+(ca/o));g[W>>2]=da*ia;g[fa>>2]=aa*ia}q=q+1|0}while((q|0)!=(X|0))}if(c[w>>2]&2|0)Cl(b);if(c[n>>2]&1024|0)ql(b,h);nl(b,h);if(c[w>>2]&2|0)Dl(b,h);X=c[i>>2]|0;do if(!(c[n>>2]&4))ja=97;else{if((X|0)<=0)break;q=c[G>>2]|0;Y=0;do{if(c[q+(Y<<2)>>2]&4|0){fa=c[E>>2]|0;g[fa+(Y<<3)>>2]=0;g[fa+(Y<<3)+4>>2]=0}Y=Y+1|0}while((Y|0)!=(X|0));ja=97}while(0);do if((ja|0)==97){ja= -0;if((X|0)<=0)break;Y=c[E>>2]|0;q=c[H>>2]|0;fa=0;do{ca=U*+g[Y+(fa<<3)+4>>2];W=q+(fa<<3)|0;g[W>>2]=U*+g[Y+(fa<<3)>>2]+ +g[W>>2];W=q+(fa<<3)+4|0;g[W>>2]=ca+ +g[W>>2];fa=fa+1|0}while((fa|0)<(X|0))}while(0);X=(c[k>>2]|0)+1|0;c[k>>2]=X;T=c[p>>2]|0}while((X|0)<(T|0));l=e;return}function sl(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,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;e=a;a=b;a:while(1){b=a;f=a+-4|0;g=e;while(1){h=g;b:while(1){i=h;j=b-i|0;k=j>>2;switch(k|0){case 2:{l=5;break a;break}case 3:{l=7;break a;break}case 4:{l=15;break a;break}case 5:{l=16;break a;break}case 1:case 0:{l=77;break a;break}default:{}}if((j|0)<124){l=18;break a}m=h+(((k|0)/2|0)<<2)|0;do if((j|0)<=3996){n=c[d>>2]|0;o=c[m>>2]|0;p=c[h>>2]|0;q=c[n+(o<<2)>>2]|0;r=n+(p<<2)|0;s=c[r>>2]|0;t=(q|0)<1;u=c[f>>2]|0;v=c[n+(u<<2)>>2]|0;w=(v|0)<1;x=t^w?w:(v|0)>(q|0);if(!(t^(s|0)<1?t:(q|0)>(s|0))){if(!x){y= -0;z=n;break}c[m>>2]=u;c[f>>2]=o;s=c[m>>2]|0;q=c[h>>2]|0;t=c[n+(s<<2)>>2]|0;v=c[n+(q<<2)>>2]|0;w=(t|0)<1;if(!(w^(v|0)<1?w:(t|0)>(v|0))){y=1;z=n;break}c[h>>2]=s;c[m>>2]=q;y=2;z=n;break}if(x){c[h>>2]=u;c[f>>2]=p;y=1;z=n;break}c[h>>2]=o;c[m>>2]=p;o=c[f>>2]|0;u=c[n+(o<<2)>>2]|0;x=c[r>>2]|0;r=(u|0)<1;if(r^(x|0)<1?r:(u|0)>(x|0)){c[m>>2]=o;c[f>>2]=p;y=2;z=n}else{y=1;z=n}}else{n=(k|0)/4|0;p=Fl(h,h+(n<<2)|0,m,m+(n<<2)|0,f,d)|0;y=p;z=c[d>>2]|0}while(0);A=c[h>>2]|0;k=c[m>>2]|0;j=c[z+(A<<2)>>2]|0;p=c[z+(k<<2)>> -2]|0;n=(j|0)<1;if(n^(p|0)<1?n:(j|0)>(p|0)){B=f;C=y;break}p=c[d>>2]|0;j=p+(k<<2)|0;D=f;while(1){D=D+-4|0;if((h|0)==(D|0))break;E=c[D>>2]|0;k=c[p+(E<<2)>>2]|0;n=c[j>>2]|0;o=(k|0)<1;if(o^(n|0)<1?o:(k|0)>(n|0)){l=59;break b}}j=h+4|0;n=c[f>>2]|0;k=c[p+(A<<2)>>2]|0;o=c[p+(n<<2)>>2]|0;x=(k|0)<1;if(x^(o|0)<1?x:(k|0)>(o|0))F=j;else{if((j|0)==(f|0)){l=77;break a}else G=j;while(1){H=c[G>>2]|0;j=c[p+(H<<2)>>2]|0;if(x^(j|0)<1?x:(k|0)>(j|0))break;j=G+4|0;if((j|0)==(f|0)){l=77;break a}else G=j}c[G>>2]=n;c[f>>2]= -H;F=G+4|0}if((F|0)==(f|0)){l=77;break a}k=c[d>>2]|0;x=f;p=F;while(1){j=c[k+(c[h>>2]<<2)>>2]|0;o=(j|0)<1;u=p;while(1){I=c[u>>2]|0;r=c[k+(I<<2)>>2]|0;J=u+4|0;if(o^(r|0)<1?o:(j|0)>(r|0)){K=x;break}else u=J}do{K=K+-4|0;L=c[K>>2]|0;r=c[k+(L<<2)>>2]|0}while(o^(r|0)<1?o:(j|0)>(r|0));if(u>>>0>=K>>>0){h=u;continue b}c[u>>2]=L;c[K>>2]=I;x=K;p=J}}if((l|0)==59){l=0;c[h>>2]=E;c[D>>2]=A;B=D;C=y+1|0}p=h+4|0;c:do if(p>>>0>>0){x=c[d>>2]|0;k=m;n=B;j=p;o=C;while(1){r=c[x+(c[k>>2]<<2)>>2]|0;q=(r|0)<1;s=j;while(1){M= -c[s>>2]|0;v=c[x+(M<<2)>>2]|0;t=(v|0)<1;N=s+4|0;if(t^q?t:(v|0)>(r|0))s=N;else{O=n;break}}do{O=O+-4|0;P=c[O>>2]|0;u=c[x+(P<<2)>>2]|0;v=(u|0)<1}while(!(v^q?v:(u|0)>(r|0)));if(s>>>0>O>>>0){Q=k;R=o;S=s;break c}c[s>>2]=P;c[O>>2]=M;k=(k|0)==(s|0)?O:k;n=O;j=N;o=o+1|0}}else{Q=m;R=C;S=p}while(0);if((S|0)!=(Q|0)?(p=c[Q>>2]|0,o=c[S>>2]|0,j=c[d>>2]|0,n=c[j+(p<<2)>>2]|0,k=c[j+(o<<2)>>2]|0,j=(n|0)<1,j^(k|0)<1?j:(n|0)>(k|0)):0){c[S>>2]=p;c[Q>>2]=o;T=R+1|0}else T=R;if(!T){U=Gl(h,S,d)|0;o=S+4|0;if(Gl(o,a,d)|0){l=76; -break}if(U){g=o;continue}}o=S;if((o-i|0)>=(b-o|0)){l=75;break}sl(h,S,d);g=S+4|0}if((l|0)==75){l=0;sl(S+4|0,a,d);e=h;a=S;continue}else if((l|0)==76){l=0;if(U){l=77;break}else{e=h;a=S;continue}}}if((l|0)==5){S=c[f>>2]|0;e=c[h>>2]|0;U=c[d>>2]|0;i=c[U+(S<<2)>>2]|0;T=c[U+(e<<2)>>2]|0;U=(i|0)<1;if(!(U^(T|0)<1?U:(i|0)>(T|0)))return;c[h>>2]=S;c[f>>2]=e;return}else if((l|0)==7){e=h+4|0;S=c[d>>2]|0;T=c[e>>2]|0;i=c[h>>2]|0;U=c[S+(T<<2)>>2]|0;R=S+(i<<2)|0;Q=c[R>>2]|0;C=(U|0)<1;m=c[f>>2]|0;N=c[S+(m<<2)>>2]|0; -O=(N|0)<1;M=C^O?O:(N|0)>(U|0);if(!(C^(Q|0)<1?C:(U|0)>(Q|0))){if(!M)return;c[e>>2]=m;c[f>>2]=T;Q=c[e>>2]|0;U=c[h>>2]|0;C=c[S+(Q<<2)>>2]|0;N=c[S+(U<<2)>>2]|0;O=(C|0)<1;if(!(O^(N|0)<1?O:(C|0)>(N|0)))return;c[h>>2]=Q;c[e>>2]=U;return}if(M){c[h>>2]=m;c[f>>2]=i;return}c[h>>2]=T;c[e>>2]=i;T=c[f>>2]|0;m=c[S+(T<<2)>>2]|0;S=c[R>>2]|0;R=(m|0)<1;if(!(R^(S|0)<1?R:(m|0)>(S|0)))return;c[e>>2]=T;c[f>>2]=i;return}else if((l|0)==15){El(h,h+4|0,h+8|0,f,c[d>>2]|0)|0;return}else if((l|0)==16){Fl(h,h+4|0,h+8|0,h+12|0, -f,d)|0;return}else if((l|0)==18){f=c[d>>2]|0;d=h+8|0;i=h+4|0;T=c[i>>2]|0;e=c[h>>2]|0;S=c[f+(T<<2)>>2]|0;m=f+(e<<2)|0;R=c[m>>2]|0;M=(S|0)<1;U=c[d>>2]|0;Q=f+(U<<2)|0;N=c[Q>>2]|0;C=(N|0)<1;O=M^C?C:(N|0)>(S|0);do if(M^(R|0)<1?M:(S|0)>(R|0)){if(O){c[h>>2]=U;c[d>>2]=e;V=e;break}c[h>>2]=T;c[i>>2]=e;N=c[Q>>2]|0;C=c[m>>2]|0;P=(N|0)<1;if(P^(C|0)<1?P:(N|0)>(C|0)){c[i>>2]=U;c[d>>2]=e;V=e}else V=U}else if(O){c[i>>2]=U;c[d>>2]=T;C=c[Q>>2]|0;N=c[m>>2]|0;P=(C|0)<1;if(P^(N|0)<1?P:(C|0)>(N|0)){c[h>>2]=U;c[i>>2]=e; -V=T}else V=T}else V=U;while(0);U=h+12|0;if((U|0)==(a|0))return;else{W=U;X=d;Y=V}while(1){V=c[W>>2]|0;d=f+(V<<2)|0;U=c[d>>2]|0;T=c[f+(Y<<2)>>2]|0;e=(U|0)<1;if(e^(T|0)<1?e:(U|0)>(T|0)){T=X;U=W;e=Y;while(1){c[U>>2]=e;if((T|0)==(h|0)){Z=h;break}i=T+-4|0;e=c[i>>2]|0;m=c[d>>2]|0;Q=c[f+(e<<2)>>2]|0;O=(m|0)<1;if(!(O^(Q|0)<1?O:(m|0)>(Q|0))){Z=T;break}else{Q=T;T=i;U=Q}}c[Z>>2]=V}U=W+4|0;if((U|0)==(a|0))break;T=c[W>>2]|0;e=W;W=U;Y=T;X=e}return}else if((l|0)==77)return}function tl(a){a=a|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,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;d=+g[a+352>>2];e=c[a+236>>2]|0;if((e|0)>0){f=a+96|0;h=a+104|0;i=a+36|0;j=a+28|0;k=c[a+232>>2]|0;l=c[a+88>>2]|0;m=0;do{n=c[k+(m*28|0)>>2]|0;if(c[l+(n<<2)>>2]&32|0?(o=c[k+(m*28|0)+4>>2]|0,p=c[f>>2]|0,q=+g[p+(n<<3)>>2],r=+g[p+(n<<3)+4>>2],p=o+88|0,s=+g[p>>2],t=o+60|0,u=o+64|0,v=o+80|0,w=o+84|0,x=c[h>>2]|0,y=x+(n<<3)|0,z=+g[y>>2],A=x+(n<<3)+4|0,B=+g[A>>2],C=+g[k+(m*28|0)+12>>2]*(d*+g[k+(m*28|0)+24>>2]),D= -C*(+g[v>>2]-s*(r-+g[u>>2])-z),E=C*(s*(q-+g[t>>2])+ +g[w>>2]-B),s=+g[i>>2]*1.3333333730697632,C=s*(+g[j>>2]*s),g[y>>2]=z+D*C,g[A>>2]=B+E*C,C=-D,D=-E,(c[o>>2]|0)==2):0){A=o+4|0;y=b[A>>1]|0;if((y&2)==0?(n=y&65535,(n&2|0)==0):0){x=(n|2)&65535;b[A>>1]=x;g[o+160>>2]=0;F=x}else F=y;if(F&2){E=+g[o+136>>2];g[v>>2]=E*C+ +g[v>>2];g[w>>2]=E*D+ +g[w>>2];g[p>>2]=+g[p>>2]+ +g[o+144>>2]*((q-+g[t>>2])*D-(r-+g[u>>2])*C)}}m=m+1|0}while((m|0)<(e|0))}e=c[a+220>>2]|0;if((e|0)<=0)return;m=c[a+216>>2]|0;F=a+104|0;a=0;do{if(c[m+ -(a*24|0)+20>>2]&32|0){j=c[m+(a*24|0)>>2]|0;i=c[m+(a*24|0)+4>>2]|0;k=c[F>>2]|0;h=k+(i<<3)|0;f=k+(j<<3)|0;C=+g[f>>2];l=k+(i<<3)+4|0;i=k+(j<<3)+4|0;r=+g[i>>2];D=d*+g[m+(a*24|0)+8>>2];q=D*(+g[h>>2]-C);E=D*(+g[l>>2]-r);g[f>>2]=C+q;g[i>>2]=E+r;g[h>>2]=+g[h>>2]-q;g[l>>2]=+g[l>>2]-E}a=a+1|0}while((a|0)<(e|0));return}function ul(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,s=0,t=0,u=0;d=a+44|0;if((c[d>>2]|0)>0){e=a+128|0;f=0;do{h=8716;i=c[h+4>>2]|0;j=(c[e>>2]|0)+(f<<3)|0;c[j>> -2]=c[h>>2];c[j+4>>2]=i;f=f+1|0}while((f|0)<(c[d>>2]|0))}d=a+216|0;f=c[a+220>>2]|0;e=(f|0)>0;if(e){i=a+128|0;j=c[d>>2]|0;h=0;do{if(c[j+(h*24|0)+20>>2]&128|0){k=c[j+(h*24|0)>>2]|0;l=c[j+(h*24|0)+4>>2]|0;m=+g[j+(h*24|0)+8>>2];n=m*(1-m);m=+g[j+(h*24|0)+12>>2]*n;o=+g[j+(h*24|0)+16>>2]*n;p=c[i>>2]|0;q=p+(k<<3)|0;g[q>>2]=+g[q>>2]-m;q=p+(k<<3)+4|0;g[q>>2]=+g[q>>2]-o;q=p+(l<<3)|0;g[q>>2]=m+ +g[q>>2];q=p+(l<<3)+4|0;g[q>>2]=o+ +g[q>>2]}h=h+1|0}while((h|0)<(f|0))}o=+g[a+32>>2]*+g[b+4>>2];m=+g[a+356>>2]*o;n=o* -+g[a+360>>2];r=o*.5;if(!e)return;e=a+116|0;b=a+128|0;h=a+104|0;a=c[d>>2]|0;d=0;do{if(c[a+(d*24|0)+20>>2]&128|0){i=c[a+(d*24|0)>>2]|0;j=c[a+(d*24|0)+4>>2]|0;o=+g[a+(d*24|0)+12>>2];s=+g[a+(d*24|0)+16>>2];q=c[e>>2]|0;l=c[b>>2]|0;t=m*(+g[q+(i<<2)>>2]+ +g[q+(j<<2)>>2]+-2)+n*(o*(+g[l+(j<<3)>>2]-+g[l+(i<<3)>>2])+s*(+g[l+(j<<3)+4>>2]-+g[l+(i<<3)+4>>2]));u=+g[a+(d*24|0)+8>>2]*(t>2]|0;q=l+(i<<3)|0;g[q>>2]=+g[q>>2]-t;q=l+(i<<3)+4|0;g[q>>2]=+g[q>>2]-o;q=l+(j<<3)|0;g[q>>2]=+g[q>>2]+t; -q=l+(j<<3)+4|0;g[q>>2]=o+ +g[q>>2]}d=d+1|0}while((d|0)<(f|0));return}function vl(b){b=b|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;e=~~(+g[b+388>>2]*128);if(!e)return;f=c[b+220>>2]|0;if((f|0)<=0)return;h=c[b+216>>2]|0;i=c[b+88>>2]|0;j=b+136|0;b=d[5459]|0;k=0;do{l=c[h+(k*24|0)>>2]|0;m=c[h+(k*24|0)+4>>2]|0;if(c[i+(l<<2)>>2]&256&c[i+(m<<2)>>2]|0){n=c[j>>2]|0;o=n+(m<<2)|0;p=n+(l<<2)|0;q=d[p>>0]|0;r=(O((d[o>>0]|0)-q|0,e)|0)>>b;s=n+(m<<2)+1|0;t=n+(l<<2)+ -1|0;u=d[t>>0]|0;v=(O((d[s>>0]|0)-u|0,e)|0)>>b;w=n+(m<<2)+2|0;x=n+(l<<2)+2|0;y=d[x>>0]|0;z=(O((d[w>>0]|0)-y|0,e)|0)>>b;A=n+(m<<2)+3|0;m=n+(l<<2)+3|0;l=d[m>>0]|0;n=(O((d[A>>0]|0)-l|0,e)|0)>>b;a[p>>0]=r+q;a[t>>0]=v+u;a[x>>0]=z+y;a[m>>0]=n+l;a[o>>0]=(d[o>>0]|0)-r;a[s>>0]=(d[s>>0]|0)-v;a[w>>0]=(d[w>>0]|0)-z;a[A>>0]=(d[A>>0]|0)-n}k=k+1|0}while((k|0)<(f|0));return}function wl(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,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;d=a+120|0;e=c[d>>2]| -0;if(!e){f=a+48|0;h=c[f>>2]|0;if(!h){Qj(a,256);i=c[f>>2]|0}else i=h;h=Pl(c[a+400>>2]|0,i<<2)|0;Nn(h|0,0,c[f>>2]<<2|0)|0;j=h}else j=e;c[d>>2]=j;k=+g[a+32>>2]*+g[b+4>>2];l=+g[a+320>>2]*(k*k);k=+g[a+376>>2]*l;m=l*.25;l=+g[a+380>>2];b=a+384|0;if((c[b>>2]|0)<=0)return;j=a+124|0;e=a+44|0;h=a+220|0;f=a+116|0;i=a+88|0;n=a+216|0;a=0;o=c[e>>2]|0;do{Nn(c[j>>2]|0,0,o<<2|0)|0;p=c[h>>2]|0;if((p|0)>0){q=c[n>>2]|0;r=0;do{if(c[q+(r*24|0)+20>>2]&2048|0){s=c[q+(r*24|0)>>2]|0;t=c[q+(r*24|0)+4>>2]|0;u=+g[q+(r*24|0)+8>> -2];v=c[d>>2]|0;w=c[j>>2]|0;x=w+(s<<2)|0;g[x>>2]=u*+g[v+(t<<2)>>2]+ +g[x>>2];x=w+(t<<2)|0;g[x>>2]=u*+g[v+(s<<2)>>2]+ +g[x>>2]}r=r+1|0}while((r|0)<(p|0))}o=c[e>>2]|0;if((o|0)>0){p=c[f>>2]|0;r=c[i>>2]|0;q=c[d>>2]|0;x=0;do{u=+g[p+(x<<2)>>2];if(!(c[r+(x<<2)>>2]&2048))y=0;else{z=(k*(u+-1)+ +g[(c[j>>2]|0)+(x<<2)>>2])/(l+u);u=z>2]=y;x=x+1|0}while((x|0)<(o|0))}a=a+1|0}while((a|0)<(c[b>>2]|0));return}function xl(a,d){a=a|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;e=a+320|0;f=a+32|0;h=+g[f>>2]*+g[d+4>>2];i=+g[e>>2]*(h*h);h=+g[a+336>>2]*i;j=i*.25;k=c[a+44>>2]|0;l=(k|0)>0;if(l){m=c[a+116>>2]|0;n=c[a+124>>2]|0;o=0;do{i=+g[m+(o<<2)>>2]+-1;p=h*(i<0?0:i);g[n+(o<<2)>>2]=p>2]|0;if(!((o&192|0)==0|l^1)){n=c[a+88>>2]|0;m=a+124|0;q=0;do{if(c[n+(q<<2)>>2]&192|0)g[(c[m>>2]|0)+(q<<2)>>2]=0;q=q+1|0}while((q|0)<(k|0))}if(!((o&2048|0)==0|l^1)){l=c[a+88>>2]|0;o=a+120|0;q=a+124|0;m=0;do{if(c[l+(m<< -2)>>2]&2048|0){n=(c[q>>2]|0)+(m<<2)|0;g[n>>2]=+g[(c[o>>2]|0)+(m<<2)>>2]+ +g[n>>2]}m=m+1|0}while((m|0)<(k|0))}j=+g[d>>2]/(+g[e>>2]*+g[f>>2]);f=c[a+236>>2]|0;if((f|0)>0){e=a+36|0;d=a+28|0;k=c[a+232>>2]|0;m=c[a+96>>2]|0;o=c[a+124>>2]|0;q=c[a+104>>2]|0;l=0;do{n=c[k+(l*28|0)>>2]|0;r=c[k+(l*28|0)+4>>2]|0;p=+g[k+(l*28|0)+12>>2];i=+g[m+(n<<3)>>2];s=+g[m+(n<<3)+4>>2];t=j*p*+g[k+(l*28|0)+24>>2]*(h*p+ +g[o+(n<<2)>>2]);p=+g[k+(l*28|0)+16>>2]*t;u=+g[k+(l*28|0)+20>>2]*t;t=+g[e>>2]*1.3333333730697632;v=t*(+g[d>> -2]*t);w=q+(n<<3)|0;g[w>>2]=+g[w>>2]-p*v;w=q+(n<<3)+4|0;g[w>>2]=+g[w>>2]-u*v;if((c[r>>2]|0)==2){w=r+4|0;n=b[w>>1]|0;if((n&2)==0?(x=n&65535,(x&2|0)==0):0){y=(x|2)&65535;b[w>>1]=y;g[r+160>>2]=0;z=y}else z=n;if(z&2){v=+g[r+136>>2];n=r+80|0;g[n>>2]=p*v+ +g[n>>2];n=r+84|0;g[n>>2]=u*v+ +g[n>>2];n=r+88|0;g[n>>2]=+g[n>>2]+ +g[r+144>>2]*(u*(i-+g[r+60>>2])-p*(s-+g[r+64>>2]))}}l=l+1|0}while((l|0)<(f|0))}f=c[a+220>>2]|0;if((f|0)<=0)return;l=c[a+216>>2]|0;z=c[a+124>>2]|0;q=c[a+104>>2]|0;a=0;do{d=c[l+(a*24|0)>> -2]|0;e=c[l+(a*24|0)+4>>2]|0;h=j*+g[l+(a*24|0)+8>>2]*(+g[z+(d<<2)>>2]+ +g[z+(e<<2)>>2]);s=+g[l+(a*24|0)+12>>2]*h;p=+g[l+(a*24|0)+16>>2]*h;k=q+(d<<3)|0;g[k>>2]=+g[k>>2]-s;k=q+(d<<3)+4|0;g[k>>2]=+g[k>>2]-p;k=q+(e<<3)|0;g[k>>2]=s+ +g[k>>2];k=q+(e<<3)+4|0;g[k>>2]=p+ +g[k>>2];a=a+1|0}while((a|0)<(f|0));return}function yl(a,d){a=a|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;e=+g[a+340>>2];f=1/(+g[a+32>>2]*+g[d+4>>2]);d=c[a+ -236>>2]|0;if((d|0)>0){h=a+36|0;i=a+28|0;j=c[a+232>>2]|0;k=c[a+96>>2]|0;l=c[a+104>>2]|0;m=0;do{n=c[j+(m*28|0)>>2]|0;o=c[j+(m*28|0)+4>>2]|0;p=+g[j+(m*28|0)+16>>2];q=+g[j+(m*28|0)+20>>2];r=+g[k+(n<<3)>>2];s=+g[k+(n<<3)+4>>2];t=o+88|0;u=+g[t>>2];v=o+60|0;w=o+64|0;x=o+80|0;y=o+84|0;z=l+(n<<3)|0;A=+g[z>>2];B=l+(n<<3)+4|0;C=+g[B>>2];D=p*(+g[x>>2]-u*(s-+g[w>>2])-A)+q*(u*(r-+g[v>>2])+ +g[y>>2]-C);if(D<0?(u=e*+g[j+(m*28|0)+12>>2],E=-(f*D),F=E<.5?E:.5,E=D*(+g[j+(m*28|0)+24>>2]*(u>F?u:F)),F=p*E,p=q*E,E=+g[h>> -2]*1.3333333730697632,q=E*(+g[i>>2]*E),g[z>>2]=A+q*F,g[B>>2]=C+q*p,q=-F,F=-p,(c[o>>2]|0)==2):0){B=o+4|0;z=b[B>>1]|0;if((z&2)==0?(n=z&65535,(n&2|0)==0):0){G=(n|2)&65535;b[B>>1]=G;g[o+160>>2]=0;H=G}else H=z;if(H&2){p=+g[o+136>>2];g[x>>2]=p*q+ +g[x>>2];g[y>>2]=p*F+ +g[y>>2];g[t>>2]=+g[t>>2]+ +g[o+144>>2]*((r-+g[v>>2])*F-(s-+g[w>>2])*q)}}m=m+1|0}while((m|0)<(d|0))}d=c[a+220>>2]|0;if((d|0)<=0)return;m=c[a+216>>2]|0;H=c[a+104>>2]|0;a=0;do{i=c[m+(a*24|0)>>2]|0;h=c[m+(a*24|0)+4>>2]|0;q=+g[m+(a*24|0)+12>> -2];s=+g[m+(a*24|0)+16>>2];j=H+(h<<3)|0;l=H+(i<<3)|0;F=+g[l>>2];k=H+(h<<3)+4|0;h=H+(i<<3)+4|0;r=+g[h>>2];p=q*(+g[j>>2]-F)+s*(+g[k>>2]-r);if(p<0){C=e*+g[m+(a*24|0)+8>>2];A=-(f*p);E=A<.5?A:.5;A=p*(C>E?C:E);E=q*A;q=s*A;g[l>>2]=F+E;g[h>>2]=r+q;g[j>>2]=+g[j>>2]-E;g[k>>2]=+g[k>>2]-q}a=a+1|0}while((a|0)<(d|0));return}function zl(a){a=a|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,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0;d=c[a+236>>2]|0;if((d|0)<=0)return;e=a+96|0;f=a+104|0;h=a+36| -0;i=a+28|0;j=c[a+232>>2]|0;k=c[a+88>>2]|0;a=0;do{l=c[j+(a*28|0)>>2]|0;if((c[k+(l<<2)>>2]&2048|0?(m=c[j+(a*28|0)+4>>2]|0,n=+g[j+(a*28|0)+16>>2],o=+g[j+(a*28|0)+20>>2],p=c[e>>2]|0,q=+g[p+(l<<3)>>2],r=+g[p+(l<<3)+4>>2],p=m+88|0,s=+g[p>>2],t=m+60|0,u=m+64|0,v=m+80|0,w=m+84|0,x=c[f>>2]|0,y=x+(l<<3)|0,z=+g[y>>2],A=x+(l<<3)+4|0,B=+g[A>>2],C=n*(+g[v>>2]-s*(r-+g[u>>2])-z)+o*(s*(q-+g[t>>2])+ +g[w>>2]-B),C<0):0)?(s=C*(+g[j+(a*28|0)+24>>2]*.5),C=n*s,n=o*s,s=+g[h>>2]*1.3333333730697632,o=s*(+g[i>>2]*s),g[y>>2]= -z+C*o,g[A>>2]=B+n*o,o=-C,C=-n,(c[m>>2]|0)==2):0){A=m+4|0;y=b[A>>1]|0;if((y&2)==0?(l=y&65535,(l&2|0)==0):0){x=(l|2)&65535;b[A>>1]=x;g[m+160>>2]=0;D=x}else D=y;if(D&2){n=+g[m+136>>2];g[v>>2]=n*o+ +g[v>>2];g[w>>2]=n*C+ +g[w>>2];g[p>>2]=+g[p>>2]+ +g[m+144>>2]*((q-+g[t>>2])*C-(r-+g[u>>2])*o)}}a=a+1|0}while((a|0)<(d|0));return}function Al(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0,i=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;d=+g[b+4>> -2]*+g[a+344>>2];e=a+268|0;f=c[e>>2]|0;if((f|0)<=0)return;h=a+264|0;i=a+96|0;k=a+104|0;a=0;l=f;while(1){f=c[h>>2]|0;if(!(c[f+(a*60|0)+12>>2]&16))m=l;else{n=c[f+(a*60|0)>>2]|0;o=c[f+(a*60|0)+4>>2]|0;p=c[f+(a*60|0)+8>>2]|0;q=c[i>>2]|0;r=c[k>>2]|0;s=+g[b>>2];t=r+(n<<3)|0;u=+g[t>>2];v=r+(n<<3)+4|0;w=+g[v>>2];x=+g[q+(n<<3)>>2]+s*u;y=+g[q+(n<<3)+4>>2]+s*w;n=r+(o<<3)|0;z=r+(o<<3)+4|0;A=+g[q+(o<<3)>>2]+s*+g[n>>2];B=+g[q+(o<<3)+4>>2]+s*+g[z>>2];o=r+(p<<3)|0;C=r+(p<<3)+4|0;D=+g[q+(p<<3)>>2]+s*+g[o>>2];E=+g[q+ -(p<<3)+4>>2]+s*+g[C>>2];s=(x+A+D)*.3333333432674408;F=(y+B+E)*.3333333432674408;G=x-s;x=y-F;y=A-s;A=B-F;B=D-s;s=E-F;F=+g[f+(a*60|0)+20>>2];E=+g[f+(a*60|0)+24>>2];p=f+(a*60|0)+28|0;D=+g[p>>2];q=f+(a*60|0)+32|0;H=+g[q>>2];r=f+(a*60|0)+36|0;I=+g[r>>2];J=f+(a*60|0)+40|0;K=+g[J>>2];L=F*x-E*G+(D*A-H*y)+(I*s-B*K);M=F*G+E*x+(D*y+H*A)+(B*I+s*K);K=L*L+M*M;I=(c[j>>2]=1597463007-((g[j>>2]=K,c[j>>2]|0)>>1),+g[j>>2]);H=I*(1.5-I*(K*.5*I));I=L*H;L=M*H;H=d*+g[f+(a*60|0)+16>>2];g[t>>2]=u+H*(F*L-E*I-G);g[v>>2]=w+H* -(F*I+E*L-x);x=+g[p>>2];E=+g[q>>2];g[n>>2]=+g[n>>2]+H*(x*L-E*I-y);g[z>>2]=+g[z>>2]+H*(x*I+E*L-A);A=+g[r>>2];E=+g[J>>2];g[o>>2]=+g[o>>2]+H*(A*L-E*I-B);g[C>>2]=+g[C>>2]+H*(A*I+E*L-s);m=c[e>>2]|0}a=a+1|0;if((a|0)>=(m|0))break;else l=m}return}function Bl(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,s=0,t=0,u=0,v=0,w=0;d=+g[b+4>>2]*+g[a+348>>2];e=c[a+252>>2]|0;if((e|0)<=0)return;f=a+96|0;h=a+104|0;i=c[a+248>>2]|0;a=0;do{if(c[i+(a*20|0)+8>>2]&8|0){j=c[i+(a*20|0)>>2]|0;k=c[i+ -(a*20|0)+4>>2]|0;l=c[f>>2]|0;m=c[h>>2]|0;n=+g[b>>2];o=m+(j<<3)|0;p=+g[o>>2];q=m+(j<<3)+4|0;r=+g[q>>2];s=m+(k<<3)|0;t=m+(k<<3)+4|0;u=+g[l+(k<<3)>>2]+n*+g[s>>2]-(+g[l+(j<<3)>>2]+n*p);v=+g[l+(k<<3)+4>>2]+n*+g[t>>2]-(+g[l+(j<<3)+4>>2]+n*r);n=+C(+(u*u+v*v));w=(+g[i+(a*20|0)+16>>2]-n)*(d*+g[i+(a*20|0)+12>>2])/n;n=u*w;u=v*w;g[o>>2]=p-n;g[q>>2]=r-u;g[s>>2]=n+ +g[s>>2];g[t>>2]=u+ +g[t>>2]}a=a+1|0}while((a|0)<(e|0));return}function Cl(a){a=a|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,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;d=+g[a+340>>2];e=a+236|0;if((c[e>>2]|0)>0){f=a+232|0;h=a+144|0;i=a+96|0;j=0;do{k=c[f>>2]|0;l=c[k+(j*28|0)>>2]|0;m=c[(c[h>>2]|0)+(l<<2)>>2]|0;if(((m|0?c[m+12>>2]&2|0:0)?(n=c[k+(j*28|0)+4>>2]|0,o=+g[k+(j*28|0)+16>>2],p=+g[k+(j*28|0)+20>>2],q=+g[k+(j*28|0)+12>>2],k=c[i>>2]|0,r=+g[k+(l<<3)>>2],s=+g[k+(l<<3)+4>>2],l=n+88|0,t=+g[l>>2],k=n+60|0,u= -n+64|0,v=n+80|0,w=+g[v>>2]-t*(s-+g[u>>2]),x=n+84|0,y=t*(r-+g[k>>2])+ +g[x>>2],Lj(m),z=m+56|0,t=+g[z>>2],A=m+40|0,B=m+44|0,C=m+48|0,D=m+52|0,E=o*(w-(+g[C>>2]-t*(s-+g[B>>2])))+p*(y-(t*(r-+g[A>>2])+ +g[D>>2])),E<0):0)?(Lj(m),t=+g[m+32>>2],Lj(m),y=+g[m+36>>2],Lj(m),w=t>0?1/t:0,t=y>0?1/y:0,y=p*(r-+g[A>>2])-o*(s-+g[B>>2]),F=+g[n+132>>2],G=+g[n+44>>2],H=+g[n+48>>2],I=F*(G*G+H*H),H=+g[n+140>>2]+I-I,I=p*(r-+g[k>>2])-o*(s-+g[u>>2]),G=(F>0?1/F:0)+(w+y*(t*y))+I*(I*(H>0?1/H:0)),H=d*(q<1?q:1)*(G>0?E/G:0),G=w*H, -g[C>>2]=+g[C>>2]+o*G,g[D>>2]=+g[D>>2]+p*G,g[z>>2]=+g[z>>2]+t*(y*H),y=-H,H=o*y,o=p*y,(c[n>>2]|0)==2):0){z=n+4|0;D=b[z>>1]|0;if((D&2)==0?(C=D&65535,(C&2|0)==0):0){B=(C|2)&65535;b[z>>1]=B;g[n+160>>2]=0;J=B}else J=D;if(J&2){y=+g[n+136>>2];g[v>>2]=H*y+ +g[v>>2];g[x>>2]=o*y+ +g[x>>2];g[l>>2]=+g[l>>2]+ +g[n+144>>2]*(o*(r-+g[k>>2])-H*(s-+g[u>>2]))}}j=j+1|0}while((j|0)<(c[e>>2]|0))}e=a+220|0;if((c[e>>2]|0)<=0)return;j=a+216|0;J=a+144|0;i=a+96|0;h=a+104|0;f=a+88|0;u=a+32|0;k=a+320|0;a=0;do{n=c[j>>2]|0;l=c[n+ -(a*24|0)>>2]|0;x=c[n+(a*24|0)+4>>2]|0;s=+g[n+(a*24|0)+12>>2];H=+g[n+(a*24|0)+16>>2];r=+g[n+(a*24|0)+8>>2];n=c[J>>2]|0;v=c[n+(l<<2)>>2]|0;D=c[n+(x<<2)>>2]|0;n=(v|0)==0;if(n)K=0;else K=(c[v+12>>2]&2|0)!=0;B=(D|0)==0;if(B)L=0;else L=(c[D+12>>2]&2|0)!=0;if((v|0)!=(D|0)&(K|L)){z=c[i>>2]|0;o=(+g[z+(l<<3)>>2]+ +g[z+(x<<3)>>2])*.5;y=(+g[z+(l<<3)+4>>2]+ +g[z+(x<<3)+4>>2])*.5;if(!B?(c[D+12>>2]&2|0)!=0:0){Lj(D);p=+g[D+56>>2];M=+g[D+48>>2]-p*(y-+g[D+44>>2]);N=p*(o-+g[D+40>>2])+ +g[D+52>>2]}else{B=c[h>>2]|0;M= -+g[B+(x<<3)>>2];N=+g[B+(x<<3)+4>>2]}if(!n?(c[v+12>>2]&2|0)!=0:0){Lj(v);p=+g[v+56>>2];O=+g[v+48>>2]-p*(y-+g[v+44>>2]);P=p*(o-+g[v+40>>2])+ +g[v+52>>2]}else{n=c[h>>2]|0;O=+g[n+(l<<3)>>2];P=+g[n+(l<<3)+4>>2]}p=H*(N-P)+s*(M-O);if(p<0){if(K){Lj(v);t=+g[v+32>>2];Lj(v);G=+g[v+36>>2];Lj(v);Q=G>0?1/G:0;R=t>0?1/t:0;S=+g[v+44>>2];T=+g[v+40>>2]}else{if(!(c[(c[f>>2]|0)+(l<<2)>>2]&4)){t=+g[u>>2]*.75;U=t*(+g[k>>2]*t)}else U=0;Q=0;R=U>0?1/U:0;S=y;T=o}t=H*(o-T)-s*(y-S);if(L){Lj(D);G=+g[D+32>>2];Lj(D);w=+g[D+36>>2]; -Lj(D);V=w>0?1/w:0;W=G>0?1/G:0;X=+g[D+44>>2];Y=+g[D+40>>2]}else{if(!(c[(c[f>>2]|0)+(x<<2)>>2]&4)){G=+g[u>>2]*.75;Z=G*(+g[k>>2]*G)}else Z=0;V=0;W=Z>0?1/Z:0;X=y;Y=o}G=H*(o-Y)-s*(y-X);y=R+t*(Q*t)+W+G*(V*G);o=d*r*(y>0?p/y:0);y=R*o;p=s*y;r=H*y;if(K){n=v+48|0;g[n>>2]=p+ +g[n>>2];n=v+52|0;g[n>>2]=r+ +g[n>>2];n=v+56|0;_=n;$=+g[n>>2];aa=Q*(t*o)}else{n=c[h>>2]|0;v=n+(l<<3)|0;g[v>>2]=p+ +g[v>>2];v=n+(l<<3)+4|0;_=v;$=r;aa=+g[v>>2]}g[_>>2]=aa+$;r=-o;o=W*r;p=s*o;s=H*o;if(L){v=D+48|0;g[v>>2]=p+ +g[v>>2];v=D+52|0; -g[v>>2]=s+ +g[v>>2];v=D+56|0;ba=v;ca=+g[v>>2];da=V*(G*r)}else{v=c[h>>2]|0;D=v+(x<<3)|0;g[D>>2]=p+ +g[D>>2];D=v+(x<<3)+4|0;ba=D;ca=s;da=+g[D>>2]}g[ba>>2]=da+ca}}a=a+1|0}while((a|0)<(c[e>>2]|0));return}function Dl(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,s=0;d=c[a+312>>2]|0;if(!d)return;e=b+4|0;f=a+96|0;h=a+104|0;a=d;do{if(c[a+12>>2]&2|0?(Lj(a),i=+g[b>>2],j=i*+g[a+56>>2],k=+F(+j),l=+E(+j),j=+g[a+40>>2],m=+g[a+44>>2],n=i*+g[a+48>>2]+j-(l*j-k*m),o=i*+g[a+52>>2]+m-(k* -j+l*m),d=a+72|0,m=+g[d>>2],p=a+68|0,j=+g[p>>2],q=a+60|0,i=+g[q>>2],r=a+64|0,s=+g[r>>2],g[q>>2]=n+(l*i-k*s),g[r>>2]=o+(k*i+l*s),g[p>>2]=k*m+l*j,g[d>>2]=l*m-k*j,j=+g[e>>2],m=n*j,n=o*j,o=k*j,k=(l+-1)*j,d=c[a+4>>2]|0,p=a+8|0,(d|0)<(c[p>>2]|0)):0){r=d;do{d=c[f>>2]|0;j=+g[d+(r<<3)>>2];l=+g[d+(r<<3)+4>>2];d=c[h>>2]|0;g[d+(r<<3)>>2]=m+(k*j-o*l);g[d+(r<<3)+4>>2]=n+(o*j+k*l);r=r+1|0}while((r|0)<(c[p>>2]|0))}a=c[a+24>>2]|0}while((a|0)!=0);return}function El(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;g=c[b>>2]|0;h=c[a>>2]|0;i=c[f+(g<<2)>>2]|0;j=f+(h<<2)|0;k=c[j>>2]|0;l=(i|0)<1;m=c[d>>2]|0;n=c[f+(m<<2)>>2]|0;o=(n|0)<1;p=l^o?o:(n|0)>(i|0);do if(l^(k|0)<1?l:(i|0)>(k|0)){if(p){c[a>>2]=m;c[d>>2]=h;q=1;r=h;break}c[a>>2]=g;c[b>>2]=h;n=c[d>>2]|0;o=c[f+(n<<2)>>2]|0;s=c[j>>2]|0;t=(o|0)<1;if(t^(s|0)<1?t:(o|0)>(s|0)){c[b>>2]=n;c[d>>2]=h;q=2;r=h}else{q=1;r=n}}else if(p){c[b>>2]=m;c[d>>2]=g;n=c[b>>2]|0;s=c[a>>2]|0;o=c[f+(n<<2)>>2]|0;t=c[f+(s<<2)>>2]| -0;u=(o|0)<1;if(u^(t|0)<1?u:(o|0)>(t|0)){c[a>>2]=n;c[b>>2]=s;q=2;r=c[d>>2]|0}else{q=1;r=g}}else{q=0;r=m}while(0);m=c[e>>2]|0;g=c[f+(m<<2)>>2]|0;p=c[f+(r<<2)>>2]|0;h=(g|0)<1;if(!(h^(p|0)<1?h:(g|0)>(p|0))){v=q;return v|0}c[d>>2]=m;c[e>>2]=r;r=c[d>>2]|0;e=c[b>>2]|0;m=c[f+(r<<2)>>2]|0;p=c[f+(e<<2)>>2]|0;g=(m|0)<1;if(!(g^(p|0)<1?g:(m|0)>(p|0))){v=q+1|0;return v|0}c[b>>2]=r;c[d>>2]=e;e=c[b>>2]|0;d=c[a>>2]|0;r=c[f+(e<<2)>>2]|0;p=c[f+(d<<2)>>2]|0;f=(r|0)<1;if(!(f^(p|0)<1?f:(r|0)>(p|0))){v=q+2|0;return v|0}c[a>> -2]=e;c[b>>2]=d;v=q+3|0;return v|0}function Fl(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,k=0,l=0,m=0,n=0;h=El(a,b,d,e,c[g>>2]|0)|0;i=c[f>>2]|0;j=c[e>>2]|0;k=c[g>>2]|0;g=c[k+(i<<2)>>2]|0;l=c[k+(j<<2)>>2]|0;m=(g|0)<1;if(!(m^(l|0)<1?m:(g|0)>(l|0))){n=h;return n|0}c[e>>2]=i;c[f>>2]=j;j=c[e>>2]|0;f=c[d>>2]|0;i=c[k+(j<<2)>>2]|0;l=c[k+(f<<2)>>2]|0;g=(i|0)<1;if(!(g^(l|0)<1?g:(i|0)>(l|0))){n=h+1|0;return n|0}c[d>>2]=j;c[e>>2]=f;f=c[d>>2]|0;e=c[b>>2]|0;j=c[k+(f<<2)>>2]|0;l=c[k+(e<<2)>> -2]|0;i=(j|0)<1;if(!(i^(l|0)<1?i:(j|0)>(l|0))){n=h+2|0;return n|0}c[b>>2]=f;c[d>>2]=e;e=c[b>>2]|0;d=c[a>>2]|0;f=c[k+(e<<2)>>2]|0;l=c[k+(d<<2)>>2]|0;k=(f|0)<1;if(!(k^(l|0)<1?k:(f|0)>(l|0))){n=h+3|0;return n|0}c[a>>2]=e;c[b>>2]=d;n=h+4|0;return n|0}function Gl(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,v=0,w=0,x=0,y=0,z=0;switch(b-a>>2|0){case 2:{e=b+-4|0;f=c[e>>2]|0;g=c[a>>2]|0;h=c[d>>2]|0;i=c[h+(f<<2)>>2]|0;j=c[h+(g<<2)>>2]|0;h=(i|0)<1;if(!(h^(j| -0)<1?h:(i|0)>(j|0))){k=1;return k|0}c[a>>2]=f;c[e>>2]=g;k=1;return k|0}case 3:{g=a+4|0;e=b+-4|0;f=c[d>>2]|0;j=c[g>>2]|0;i=c[a>>2]|0;h=c[f+(j<<2)>>2]|0;l=f+(i<<2)|0;m=c[l>>2]|0;n=(h|0)<1;o=c[e>>2]|0;p=c[f+(o<<2)>>2]|0;q=(p|0)<1;r=n^q?q:(p|0)>(h|0);if(!(n^(m|0)<1?n:(h|0)>(m|0))){if(!r){k=1;return k|0}c[g>>2]=o;c[e>>2]=j;m=c[g>>2]|0;h=c[a>>2]|0;n=c[f+(m<<2)>>2]|0;p=c[f+(h<<2)>>2]|0;q=(n|0)<1;if(!(q^(p|0)<1?q:(n|0)>(p|0))){k=1;return k|0}c[a>>2]=m;c[g>>2]=h;k=1;return k|0}if(r){c[a>>2]=o;c[e>>2]=i;k= -1;return k|0}c[a>>2]=j;c[g>>2]=i;j=c[e>>2]|0;o=c[f+(j<<2)>>2]|0;f=c[l>>2]|0;l=(o|0)<1;if(!(l^(f|0)<1?l:(o|0)>(f|0))){k=1;return k|0}c[g>>2]=j;c[e>>2]=i;k=1;return k|0}case 4:{El(a,a+4|0,a+8|0,b+-4|0,c[d>>2]|0)|0;k=1;return k|0}case 5:{Fl(a,a+4|0,a+8|0,a+12|0,b+-4|0,d)|0;k=1;return k|0}case 1:case 0:{k=1;return k|0}default:{i=a+8|0;e=a+4|0;j=c[d>>2]|0;g=c[e>>2]|0;f=c[a>>2]|0;o=c[j+(g<<2)>>2]|0;l=j+(f<<2)|0;r=c[l>>2]|0;h=(o|0)<1;m=c[i>>2]|0;p=j+(m<<2)|0;j=c[p>>2]|0;n=(j|0)<1;q=h^n?n:(j|0)>(o|0);do if(h^ -(r|0)<1?h:(o|0)>(r|0)){if(q){c[a>>2]=m;c[i>>2]=f;s=f;break}c[a>>2]=g;c[e>>2]=f;j=c[p>>2]|0;n=c[l>>2]|0;t=(j|0)<1;if(t^(n|0)<1?t:(j|0)>(n|0)){c[e>>2]=m;c[i>>2]=f;s=f}else s=m}else if(q){c[e>>2]=m;c[i>>2]=g;n=c[p>>2]|0;j=c[l>>2]|0;t=(n|0)<1;if(t^(j|0)<1?t:(n|0)>(j|0)){c[a>>2]=m;c[e>>2]=f;s=g}else s=g}else s=m;while(0);m=a+12|0;a:do if((m|0)==(b|0)){u=1;v=0}else{g=c[d>>2]|0;f=m;e=0;l=i;p=s;while(1){q=c[f>>2]|0;r=g+(q<<2)|0;o=c[r>>2]|0;h=c[g+(p<<2)>>2]|0;j=(o|0)<1;if(j^(h|0)<1?j:(o|0)>(h|0)){h=l;o=f; -j=p;while(1){c[o>>2]=j;if((h|0)==(a|0)){w=a;break}n=h+-4|0;j=c[n>>2]|0;t=c[r>>2]|0;x=c[g+(j<<2)>>2]|0;y=(t|0)<1;if(!(y^(x|0)<1?y:(t|0)>(x|0))){w=h;break}else{x=h;h=n;o=x}}c[w>>2]=q;o=e+1|0;if((o|0)==8){u=0;v=(f+4|0)==(b|0);break a}else z=o}else z=e;o=f+4|0;if((o|0)==(b|0)){u=1;v=0;break a}h=c[f>>2]|0;j=f;f=o;e=z;p=h;l=j}}while(0);k=v|u;return k|0}}return 0}function Hl(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;d=a+280|0;e=c[d>>2]|0;if(!e){f=a+48|0;h=c[f>>2]|0;if(!h){Qj(a,256); -i=c[f>>2]|0}else i=h;h=Pl(c[a+400>>2]|0,i<<2)|0;Nn(h|0,0,c[f>>2]<<2|0)|0;j=h}else j=e;c[d>>2]=j;d=c[j+(b<<2)>>2]|0;if((d|0)<=0){k=d;l=+(k|0);m=a+396|0;n=+g[m>>2];o=l*n;return+o}k=d-(c[a+296+4>>2]|0)|0;l=+(k|0);m=a+396|0;n=+g[m>>2];o=l*n;return+o}function Il(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var h=0,i=0,j=0;h=+(e-d|0);i=+g[f>>2]/h;j=+g[f+4>>2]/h;if(!(i!=0|j!=0))return;f=b+21|0;if(!(a[f>>0]|0)){Nn(c[b+112>>2]|0,0,c[b+44>>2]<<3|0)|0;a[f>>0]=1}if((e|0)<=(d|0))return;f=c[b+112>>2]|0;b=d;do{d=f+(b<<3)|0; -g[d>>2]=i+ +g[d>>2];d=f+(b<<3)+4|0;g[d>>2]=j+ +g[d>>2];b=b+1|0}while((b|0)!=(e|0));return}function Jl(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,h=0,i=0;f=+g[a+32>>2]*.75;h=+(d-b|0)*(f*(+g[a+320>>2]*f));f=+g[e>>2]/h;i=+g[e+4>>2]/h;if((d|0)<=(b|0))return;e=c[a+104>>2]|0;a=b;do{b=e+(a<<3)|0;g[b>>2]=f+ +g[b>>2];b=e+(a<<3)+4|0;g[b>>2]=i+ +g[b>>2];a=a+1|0}while((a|0)!=(d|0));return}function Kl(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,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;e=c[a+204>>2]|0;if(!e)return; -f=c[a+200>>2]|0;h=+g[a+36>>2];i=+g[d>>2];j=d+4|0;k=(~~(h*+g[j>>2]+2048)>>>0<<20)+(~~(h*i*256+524288)>>>0)|0;l=f+(e<<3)|0;m=e<<3>>3;if(!m)n=f;else{e=m;m=f;while(1){f=(e|0)/2|0;o=(c[m+(f<<3)+4>>2]|0)>>>0>>0;e=o?e+-1-f|0:f;p=o?m+(f<<3)+8|0:m;if(!e){n=p;break}else m=p}}m=d+8|0;q=+g[m>>2];e=d+12|0;k=(~~(h*+g[e>>2]+2048)>>>0<<20)+(~~(h*q*256+524288)>>>0)|0;p=l-n>>3;if(!p)r=n;else{l=p;p=n;while(1){f=(l|0)/2|0;o=(c[p+(f<<3)+4>>2]|0)>>>0>k>>>0;l=o?f:l+-1-f|0;s=o?p:p+(f<<3)+8|0;if(!l){r=s;break}else p=s}}if(n>>> -0>=r>>>0)return;p=a+96|0;l=n;h=i;i=q;while(1){n=c[l>>2]|0;k=c[p>>2]|0;q=+g[k+(n<<3)>>2];if((h>2],+g[j>>2]>2]:0):0)?!(Sa[c[(c[b>>2]|0)+12>>2]&15](b,a,n)|0):0){t=13;break}n=l+8|0;if(n>>>0>=r>>>0){t=13;break}l=n;h=+g[d>>2];i=+g[m>>2]}if((t|0)==13)return}function Ll(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,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,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;f=l;l=l+64|0;h=f;i=f+32|0;j=f+24| -0;k=f+16|0;if(!(c[a+204>>2]|0)){l=f;return}m=+g[d>>2];n=+g[e>>2];o=d+4|0;p=+g[o>>2];q=+g[e+4>>2];g[h>>2]=m>2]=p>2]=m>n?m:n;g[h+12>>2]=p>q?p:q;r=n-m;m=q-p;p=r*r+m*m;Xk(i,a,h);h=i+16|0;e=c[i+20>>2]|0;s=c[i>>2]|0;t=i+4|0;i=a+96|0;u=a+40|0;v=j+4|0;w=k+4|0;q=1;x=c[h>>2]|0;a:while(1){if(x>>>0>=e>>>0){y=x;break}z=c[t>>2]|0;n=+g[d>>2];A=+g[o>>2];B=x;while(1){D=B;while(1){E=c[D+4>>2]&1048575;F=D+8|0;if(!(E>>>0>>0|E>>>0>z>>>0))break;if(F>>>0>>0)D=F;else{y=F;break a}}G=c[D>>2]| -0;if((G|0)<=-1){y=F;break a}E=c[i>>2]|0;H=n-+g[E+(G<<3)>>2];I=A-+g[E+(G<<3)+4>>2];J=r*H+m*I;K=J*J-p*(H*H+I*I-+g[u>>2]);if(K>=0?(L=+C(+K),K=(-J-L)/p,!(K>q)):0){if(!(K<0)){M=K;break}K=(L-J)/p;if(!(K<0|K>q)){M=K;break}}if(F>>>0>>0)B=F;else{y=F;break a}}K=r*M;J=m*M;L=H+K;N=I+J;g[j>>2]=L;g[v>>2]=N;O=+C(+(L*L+N*N));P=1/O;if(!(O<1.1920928955078125E-7)){g[j>>2]=L*P;g[v>>2]=N*P}B=c[(c[b>>2]|0)+12>>2]|0;g[k>>2]=K+n;g[w>>2]=J+A;J=+La[B&1](b,a,G,k,j,M);q=q>2]=y;l=f;return} -function Ml(a,b){a=a|0;b=b|0;var d=0,e=0;d=b+4|0;e=c[b>>2]|0;c[e+4>>2]=c[d>>2];c[c[d>>2]>>2]=e;c[d>>2]=b;e=a+12|0;c[d>>2]=c[e>>2];c[b>>2]=a+8;c[c[e>>2]>>2]=b;c[e>>2]=b;return}function Nl(b){b=b|0;var d=0,e=0,f=0,g=0;d=b+68|0;c[b+72>>2]=d;c[d>>2]=d;d=b+8|0;c[d>>2]=128;c[b+4>>2]=0;e=_l(1024)|0;c[b>>2]=e;Nn(e|0,0,c[d>>2]<<3|0)|0;d=b+12|0;b=d+56|0;do{c[d>>2]=0;d=d+4|0}while((d|0)<(b|0));if(!(a[9958]|0)){f=0;g=1}else return;do{f=((g|0)>(c[2092+(f<<2)>>2]|0)&1)+f|0;a[9317+g>>0]=f;g=g+1|0}while((g|0)!=641); -a[9958]=1;return}function Ol(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;b=a+4|0;d=c[a>>2]|0;if((c[b>>2]|0)>0){e=0;f=d;while(1){$l(c[f+(e<<3)+4>>2]|0);e=e+1|0;g=c[a>>2]|0;if((e|0)>=(c[b>>2]|0)){h=g;break}else f=g}}else h=d;$l(h);h=a+68|0;em(h);d=a+72|0;a=c[h>>2]|0;c[a+4>>2]=c[d>>2];c[c[d>>2]>>2]=a;c[d>>2]=h;c[h>>2]=h;return}function Pl(a,b){a=a|0;b=b|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;if(!b){e=0;return e|0}if((b|0)>640){e=cm(a+68|0,b)|0;return e|0}f=d[9317+b>>0]|0;b=a+12+(f<<2)|0;g=c[b>>2]|0;if(g|0){c[b>> -2]=c[g>>2];e=g;return e|0}g=a+4|0;h=c[g>>2]|0;i=a+8|0;if((h|0)==(c[i>>2]|0)){j=c[a>>2]|0;k=h+128|0;c[i>>2]=k;i=_l(k<<3)|0;c[a>>2]=i;Qn(i|0,j|0,c[g>>2]<<3|0)|0;Nn((c[a>>2]|0)+(c[g>>2]<<3)|0,0,1024)|0;$l(j);l=c[g>>2]|0}else l=h;h=c[a>>2]|0;a=_l(16384)|0;j=h+(l<<3)+4|0;c[j>>2]=a;i=c[2092+(f<<2)>>2]|0;c[h+(l<<3)>>2]=i;l=16384/(i|0)|0;h=l+-1|0;if((l|0)>1){l=0;do{f=l;l=l+1|0;c[a+(O(f,i)|0)>>2]=a+(O(l,i)|0)}while((l|0)!=(h|0))}c[a+(O(h,i)|0)>>2]=0;c[b>>2]=c[a>>2];c[g>>2]=(c[g>>2]|0)+1;e=c[j>>2]|0;return e| -0}function Ql(a,b,e){a=a|0;b=b|0;e=e|0;var f=0;if(!e)return;if((e|0)>640){dm(a+68|0,b);return}else{f=a+12+((d[9317+e>>0]|0)<<2)|0;c[b>>2]=c[f>>2];c[f>>2]=b;return}}function Rl(a,b,c){a=a|0;b=b|0;c=c|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,s=0,t=0;d=+g[b+16>>2];e=+g[b+32>>2];f=+g[b+20>>2];h=+g[b+28>>2];i=d*e-f*h;j=+g[b+24>>2];k=+g[b+12>>2];l=f*j-e*k;m=h*k-d*j;n=+g[b>>2];o=+g[b+4>>2];p=+g[b+8>>2];q=i*n+o*l+m*p;r=q!=0?1/q:q;q=+g[c>>2];s=+g[c+4>>2];t=+g[c+8>>2];g[a>>2]=r*(i*q+l* -s+m*t);g[a+4>>2]=r*((s*e-t*h)*n+o*(t*j-e*q)+(h*q-s*j)*p);g[a+8>>2]=r*((d*t-f*s)*n+o*(f*q-t*k)+(s*k-d*q)*p);return}function Sl(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,h=0,i=0,j=0,k=0;d=+g[b>>2];e=+g[b+12>>2];f=+g[b+4>>2];h=+g[b+16>>2];i=d*h-e*f;j=i!=0?1/i:i;i=+g[c>>2];k=+g[c+4>>2];g[a>>2]=j*(h*i-e*k);g[a+4>>2]=j*(d*k-f*i);return}function Tl(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0,i=0,j=0;d=+g[a>>2];e=+g[a+12>>2];f=+g[a+4>>2];h=+g[a+16>>2];i=d*h-e*f;j=i!=0?1/i:i;g[b>>2]=h*j;h=-j;g[b+12>>2]=e*h;g[b+8>> -2]=0;g[b+4>>2]=f*h;g[b+16>>2]=d*j;a=b+20|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;c[a+12>>2]=0;return}function Ul(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;c=+g[a+16>>2];d=+g[a+32>>2];e=c*d;f=+g[a+20>>2];h=+g[a+28>>2];i=+g[a+24>>2];j=+g[a+12>>2];k=d*j;l=h*j-c*i;m=+g[a>>2];n=(e-f*h)*m+ +g[a+4>>2]*(f*i-k)+l*+g[a+8>>2];f=n!=0?1/n:n;g[b>>2]=f*(e-h*h);e=f*(i*h-k);g[b+4>>2]=e;k=f*l;g[b+8>>2]=k;g[b+12>>2]=e;g[b+16>>2]=f*(m*d-i*i);d=f*(i*j-m*h);g[b+20>>2]=d;g[b+24>>2]=k;g[b+28>>2]=d;g[b+ -32>>2]=f*(m*c-j*j);return}function Vl(a){a=a|0;return}function Wl(a){a=a|0;return}function Xl(a){a=a|0;return 0}function Yl(a,b){a=a|0;b=b|0;return km(a)|0}function Zl(a,b){a=a|0;b=b|0;lm(a);return}function _l(a){a=a|0;c[2182]=(c[2182]|0)+1;return Ya[c[541]&31](a,c[2181]|0)|0}function $l(a){a=a|0;c[2182]=(c[2182]|0)+-1;Ra[c[542]&63](a,c[2181]|0);return}function am(a,b){a=a|0;b=b|0;return}function bm(a){a=a|0;return a+43&-32|0}function cm(a,b){a=a|0;b=b|0;var d=0;d=_l(b+44|0)|0;b=d+43&-32;c[d>>2]= -d;c[b+-4>>2]=d;c[d+4>>2]=a;c[d>>2]=c[a>>2];c[(c[a>>2]|0)+4>>2]=d;c[a>>2]=d;return b|0}function dm(a,b){a=a|0;b=b|0;var d=0;a=c[b+-4>>2]|0;b=a+4|0;d=c[a>>2]|0;c[d+4>>2]=c[b>>2];c[c[b>>2]>>2]=d;c[b>>2]=a;c[a>>2]=a;$l(a);return}function em(a){a=a|0;var b=0,d=0,e=0,f=0;b=a+4|0;d=c[b>>2]|0;if((d|0)==(a|0))return;else e=d;do{d=e+4|0;f=c[e>>2]|0;c[f+4>>2]=c[d>>2];c[c[d>>2]>>2]=f;c[d>>2]=e;c[e>>2]=e;$l(e);e=c[b>>2]|0}while((e|0)!=(a|0));return}function fm(a){a=a|0;c[a+102400>>2]=0;c[a+102404>>2]=0;c[a+102408>> -2]=0;c[a+102796>>2]=0;return}function gm(a){a=a|0;return}function hm(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;e=d+3&-4;d=b+102796|0;f=c[d>>2]|0;g=b+102412+(f*12|0)|0;c[b+102412+(f*12|0)+4>>2]=e;h=b+102400|0;i=c[h>>2]|0;if((i+e|0)>102400){c[g>>2]=_l(e)|0;a[b+102412+(f*12|0)+8>>0]=1;j=g}else{c[g>>2]=b+i;a[b+102412+(f*12|0)+8>>0]=0;c[h>>2]=(c[h>>2]|0)+e;j=g}g=b+102404|0;h=(c[g>>2]|0)+e|0;c[g>>2]=h;g=b+102408|0;b=c[g>>2]|0;c[g>>2]=(b|0)>(h|0)?b:h;c[d>>2]=(c[d>>2]|0)+1;return c[j>>2]|0}function im(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;d=b+102412+((c[b+102796>>2]|0)*12|0)|0;f=d+-12|0;g=d+-8|0;h=e-(c[g>>2]|0)|0;if((h|0)<=0){i=c[f>>2]|0;return i|0}j=d+-4|0;do if(!(a[j>>0]|0)){d=b+102400|0;k=(c[d>>2]|0)+h|0;if((k|0)>102400){l=_l(e)|0;Qn(l|0,c[f>>2]|0,c[g>>2]|0)|0;c[d>>2]=(c[d>>2]|0)-(c[g>>2]|0);c[f>>2]=l;a[j>>0]=1;break}else{c[d>>2]=k;k=b+102404|0;d=(c[k>>2]|0)+h|0;c[k>>2]=d;k=b+102408|0;l=c[k>>2]|0;c[k>>2]=(l|0)>(d|0)?l:d;break}}else{d=_l(e)|0;Qn(d|0,c[f>>2]|0,c[g>>2]|0)|0;$l(c[f>> -2]|0);c[f>>2]=d}while(0);c[g>>2]=e;i=c[f>>2]|0;return i|0}function jm(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+102796|0;f=c[e>>2]|0;g=b+102412+(f*12|0)|0;if(!(a[g+-4>>0]|0)){h=g+-8|0;i=b+102400|0;c[i>>2]=(c[i>>2]|0)-(c[h>>2]|0);j=h;k=f}else{$l(d);j=g+-8|0;k=c[e>>2]|0}g=b+102404|0;c[g>>2]=(c[g>>2]|0)-(c[j>>2]|0);c[e>>2]=k+-1;return}function km(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=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;b=l;l=l+16|0;d=b;do if(a>>>0<245){e=a>>>0<11?16:a+11&-8;f=e>>>3;g=c[2183]|0;h=g>>>f;if(h&3|0){i=(h&1^1)+f|0;j=8772+(i<<1<<2)|0;k=j+8|0;m=c[k>>2]|0;n=m+8|0;o=c[n>>2]|0;if((j|0)==(o|0))c[2183]=g&~(1<>2]=j;c[k>>2]=o}o=i<<3;c[m+4>>2]=o|3;i=m+o+4|0;c[i>>2]=c[i>>2]|1;p=n;l=b;return p|0}n=c[2185]| -0;if(e>>>0>n>>>0){if(h|0){i=2<>>12&16;f=i>>>o;i=f>>>5&8;h=f>>>i;f=h>>>2&4;m=h>>>f;h=m>>>1&2;k=m>>>h;m=k>>>1&1;j=(i|o|f|h|m)+(k>>>m)|0;m=8772+(j<<1<<2)|0;k=m+8|0;h=c[k>>2]|0;f=h+8|0;o=c[f>>2]|0;if((m|0)==(o|0)){i=g&~(1<>2]=m;c[k>>2]=o;q=g}o=(j<<3)-e|0;c[h+4>>2]=e|3;j=h+e|0;c[j+4>>2]=o|1;c[j+o>>2]=o;if(n|0){h=c[2188]|0;k=n>>>3;m=8772+(k<<1<<2)|0;i=1<>2]|0;s=i}c[s>>2]=h;c[r+12>> -2]=h;c[h+8>>2]=r;c[h+12>>2]=m}c[2185]=o;c[2188]=j;p=f;l=b;return p|0}f=c[2184]|0;if(f){j=(f&0-f)+-1|0;o=j>>>12&16;m=j>>>o;j=m>>>5&8;h=m>>>j;m=h>>>2&4;i=h>>>m;h=i>>>1&2;k=i>>>h;i=k>>>1&1;t=c[9036+((j|o|m|h|i)+(k>>>i)<<2)>>2]|0;i=(c[t+4>>2]&-8)-e|0;k=c[t+16+(((c[t+16>>2]|0)==0&1)<<2)>>2]|0;if(!k){u=t;v=i}else{h=t;t=i;i=k;while(1){k=(c[i+4>>2]&-8)-e|0;m=k>>>0>>0;o=m?k:t;k=m?i:h;i=c[i+16+(((c[i+16>>2]|0)==0&1)<<2)>>2]|0;if(!i){u=k;v=o;break}else{h=k;t=o}}}t=u+e|0;if(u>>>0>>0){h=c[u+24>>2]|0;i=c[u+ -12>>2]|0;do if((i|0)==(u|0)){o=u+20|0;k=c[o>>2]|0;if(!k){m=u+16|0;j=c[m>>2]|0;if(!j){w=0;break}else{x=j;y=m}}else{x=k;y=o}while(1){o=x+20|0;k=c[o>>2]|0;if(k|0){x=k;y=o;continue}o=x+16|0;k=c[o>>2]|0;if(!k)break;else{x=k;y=o}}c[y>>2]=0;w=x}else{o=c[u+8>>2]|0;c[o+12>>2]=i;c[i+8>>2]=o;w=i}while(0);do if(h|0){i=c[u+28>>2]|0;o=9036+(i<<2)|0;if((u|0)==(c[o>>2]|0)){c[o>>2]=w;if(!w){c[2184]=f&~(1<>2]|0)!=(u|0)&1)<<2)>>2]=w;if(!w)break}c[w+24>>2]=h;i=c[u+16>>2]|0;if(i|0){c[w+ -16>>2]=i;c[i+24>>2]=w}i=c[u+20>>2]|0;if(i|0){c[w+20>>2]=i;c[i+24>>2]=w}}while(0);if(v>>>0<16){h=v+e|0;c[u+4>>2]=h|3;f=u+h+4|0;c[f>>2]=c[f>>2]|1}else{c[u+4>>2]=e|3;c[t+4>>2]=v|1;c[t+v>>2]=v;if(n|0){f=c[2188]|0;h=n>>>3;i=8772+(h<<1<<2)|0;o=1<>2]|0;A=o}c[A>>2]=f;c[z+12>>2]=f;c[f+8>>2]=z;c[f+12>>2]=i}c[2185]=v;c[2188]=t}p=u+8|0;l=b;return p|0}else B=e}else B=e}else B=e}else if(a>>>0<=4294967231){i=a+11|0;f=i&-8;o=c[2184]|0;if(o){h=0-f|0;k=i>>>8; -if(k)if(f>>>0>16777215)C=31;else{i=(k+1048320|0)>>>16&8;m=k<>>16&4;j=m<>>16&2;D=14-(k|i|m)+(j<>>15)|0;C=f>>>(D+7|0)&1|D<<1}else C=0;D=c[9036+(C<<2)>>2]|0;a:do if(!D){E=0;F=0;G=h;H=57}else{m=0;j=h;i=D;k=f<<((C|0)==31?0:25-(C>>>1)|0);I=0;while(1){J=(c[i+4>>2]&-8)-f|0;if(J>>>0>>0)if(!J){K=i;L=0;M=i;H=61;break a}else{N=i;O=J}else{N=m;O=j}J=c[i+20>>2]|0;i=c[i+16+(k>>>31<<2)>>2]|0;P=(J|0)==0|(J|0)==(i|0)?I:J;J=(i|0)==0;if(J){E=P;F=N;G=O;H=57;break}else{m=N;j=O; -k=k<<((J^1)&1);I=P}}}while(0);if((H|0)==57){if((E|0)==0&(F|0)==0){D=2<>>12&16;e=D>>>h;D=e>>>5&8;t=e>>>D;e=t>>>2&4;g=t>>>e;t=g>>>1&2;n=g>>>t;g=n>>>1&1;Q=0;R=c[9036+((D|h|e|t|g)+(n>>>g)<<2)>>2]|0}else{Q=F;R=E}if(!R){S=Q;T=G}else{K=Q;L=G;M=R;H=61}}if((H|0)==61)while(1){H=0;g=(c[M+4>>2]&-8)-f|0;n=g>>>0>>0;t=n?g:L;g=n?M:K;M=c[M+16+(((c[M+16>>2]|0)==0&1)<<2)>>2]|0;if(!M){S=g;T=t;break}else{K=g;L=t;H=61}}if((S|0)!=0?T>>>0<((c[2185]|0)-f|0)>>>0:0){t=S+ -f|0;if(S>>>0>=t>>>0){p=0;l=b;return p|0}g=c[S+24>>2]|0;n=c[S+12>>2]|0;do if((n|0)==(S|0)){e=S+20|0;h=c[e>>2]|0;if(!h){D=S+16|0;I=c[D>>2]|0;if(!I){U=0;break}else{V=I;W=D}}else{V=h;W=e}while(1){e=V+20|0;h=c[e>>2]|0;if(h|0){V=h;W=e;continue}e=V+16|0;h=c[e>>2]|0;if(!h)break;else{V=h;W=e}}c[W>>2]=0;U=V}else{e=c[S+8>>2]|0;c[e+12>>2]=n;c[n+8>>2]=e;U=n}while(0);do if(g){n=c[S+28>>2]|0;e=9036+(n<<2)|0;if((S|0)==(c[e>>2]|0)){c[e>>2]=U;if(!U){e=o&~(1<>2]|0)!=(S| -0)&1)<<2)>>2]=U;if(!U){X=o;break}}c[U+24>>2]=g;e=c[S+16>>2]|0;if(e|0){c[U+16>>2]=e;c[e+24>>2]=U}e=c[S+20>>2]|0;if(e){c[U+20>>2]=e;c[e+24>>2]=U;X=o}else X=o}else X=o;while(0);do if(T>>>0>=16){c[S+4>>2]=f|3;c[t+4>>2]=T|1;c[t+T>>2]=T;o=T>>>3;if(T>>>0<256){g=8772+(o<<1<<2)|0;e=c[2183]|0;n=1<>2]|0;Z=n}c[Z>>2]=t;c[Y+12>>2]=t;c[t+8>>2]=Y;c[t+12>>2]=g;break}g=T>>>8;if(g)if(T>>>0>16777215)_=31;else{n=(g+1048320|0)>>>16&8;e=g<>>16&4; -o=e<>>16&2;h=14-(g|n|e)+(o<>>15)|0;_=T>>>(h+7|0)&1|h<<1}else _=0;h=9036+(_<<2)|0;c[t+28>>2]=_;e=t+16|0;c[e+4>>2]=0;c[e>>2]=0;e=1<<_;if(!(X&e)){c[2184]=X|e;c[h>>2]=t;c[t+24>>2]=h;c[t+12>>2]=t;c[t+8>>2]=t;break}e=T<<((_|0)==31?0:25-(_>>>1)|0);o=c[h>>2]|0;while(1){if((c[o+4>>2]&-8|0)==(T|0)){H=97;break}$=o+16+(e>>>31<<2)|0;h=c[$>>2]|0;if(!h){H=96;break}else{e=e<<1;o=h}}if((H|0)==96){c[$>>2]=t;c[t+24>>2]=o;c[t+12>>2]=t;c[t+8>>2]=t;break}else if((H|0)==97){e=o+8|0;h=c[e>>2]|0;c[h+ -12>>2]=t;c[e>>2]=t;c[t+8>>2]=h;c[t+12>>2]=o;c[t+24>>2]=0;break}}else{h=T+f|0;c[S+4>>2]=h|3;e=S+h+4|0;c[e>>2]=c[e>>2]|1}while(0);p=S+8|0;l=b;return p|0}else B=f}else B=f}else B=-1;while(0);S=c[2185]|0;if(S>>>0>=B>>>0){T=S-B|0;$=c[2188]|0;if(T>>>0>15){_=$+B|0;c[2188]=_;c[2185]=T;c[_+4>>2]=T|1;c[_+T>>2]=T;c[$+4>>2]=B|3}else{c[2185]=0;c[2188]=0;c[$+4>>2]=S|3;T=$+S+4|0;c[T>>2]=c[T>>2]|1}p=$+8|0;l=b;return p|0}$=c[2186]|0;if($>>>0>B>>>0){T=$-B|0;c[2186]=T;S=c[2189]|0;_=S+B|0;c[2189]=_;c[_+4>>2]=T|1;c[S+ -4>>2]=B|3;p=S+8|0;l=b;return p|0}if(!(c[2301]|0)){c[2303]=4096;c[2302]=4096;c[2304]=-1;c[2305]=-1;c[2306]=0;c[2294]=0;S=d&-16^1431655768;c[d>>2]=S;c[2301]=S;aa=4096}else aa=c[2303]|0;S=B+48|0;d=B+47|0;T=aa+d|0;_=0-aa|0;aa=T&_;if(aa>>>0<=B>>>0){p=0;l=b;return p|0}X=c[2293]|0;if(X|0?(Y=c[2291]|0,Z=Y+aa|0,Z>>>0<=Y>>>0|Z>>>0>X>>>0):0){p=0;l=b;return p|0}b:do if(!(c[2294]&4)){X=c[2189]|0;c:do if(X){Z=9180;while(1){Y=c[Z>>2]|0;if(Y>>>0<=X>>>0?(ba=Z+4|0,(Y+(c[ba>>2]|0)|0)>>>0>X>>>0):0)break;Y=c[Z+8>>2]| -0;if(!Y){H=118;break c}else Z=Y}o=T-$&_;if(o>>>0<2147483647){Y=Un(o|0)|0;if((Y|0)==((c[Z>>2]|0)+(c[ba>>2]|0)|0))if((Y|0)==(-1|0))ca=o;else{da=o;ea=Y;H=135;break b}else{fa=Y;ga=o;H=126}}else ca=0}else H=118;while(0);do if((H|0)==118){X=Un(0)|0;if((X|0)!=(-1|0)?(f=X,o=c[2302]|0,Y=o+-1|0,U=((Y&f|0)==0?0:(Y+f&0-o)-f|0)+aa|0,f=c[2291]|0,o=U+f|0,U>>>0>B>>>0&U>>>0<2147483647):0){Y=c[2293]|0;if(Y|0?o>>>0<=f>>>0|o>>>0>Y>>>0:0){ca=0;break}Y=Un(U|0)|0;if((Y|0)==(X|0)){da=U;ea=X;H=135;break b}else{fa=Y;ga=U; -H=126}}else ca=0}while(0);do if((H|0)==126){U=0-ga|0;if(!(S>>>0>ga>>>0&(ga>>>0<2147483647&(fa|0)!=(-1|0))))if((fa|0)==(-1|0)){ca=0;break}else{da=ga;ea=fa;H=135;break b}Y=c[2303]|0;X=d-ga+Y&0-Y;if(X>>>0>=2147483647){da=ga;ea=fa;H=135;break b}if((Un(X|0)|0)==(-1|0)){Un(U|0)|0;ca=0;break}else{da=X+ga|0;ea=fa;H=135;break b}}while(0);c[2294]=c[2294]|4;ha=ca;H=133}else{ha=0;H=133}while(0);if(((H|0)==133?aa>>>0<2147483647:0)?(ca=Un(aa|0)|0,aa=Un(0)|0,fa=aa-ca|0,ga=fa>>>0>(B+40|0)>>>0,!((ca|0)==(-1|0)|ga^ -1|ca>>>0>>0&((ca|0)!=(-1|0)&(aa|0)!=(-1|0))^1)):0){da=ga?fa:ha;ea=ca;H=135}if((H|0)==135){ca=(c[2291]|0)+da|0;c[2291]=ca;if(ca>>>0>(c[2292]|0)>>>0)c[2292]=ca;ca=c[2189]|0;do if(ca){ha=9180;while(1){ia=c[ha>>2]|0;ja=ha+4|0;ka=c[ja>>2]|0;if((ea|0)==(ia+ka|0)){H=145;break}fa=c[ha+8>>2]|0;if(!fa)break;else ha=fa}if(((H|0)==145?(c[ha+12>>2]&8|0)==0:0)?ca>>>0>>0&ca>>>0>=ia>>>0:0){c[ja>>2]=ka+da;fa=ca+8|0;ga=(fa&7|0)==0?0:0-fa&7;fa=ca+ga|0;aa=(c[2186]|0)+(da-ga)|0;c[2189]=fa;c[2186]=aa;c[fa+4>>2]= -aa|1;c[fa+aa+4>>2]=40;c[2190]=c[2305];break}if(ea>>>0<(c[2187]|0)>>>0)c[2187]=ea;aa=ea+da|0;fa=9180;while(1){if((c[fa>>2]|0)==(aa|0)){H=153;break}ga=c[fa+8>>2]|0;if(!ga)break;else fa=ga}if((H|0)==153?(c[fa+12>>2]&8|0)==0:0){c[fa>>2]=ea;ha=fa+4|0;c[ha>>2]=(c[ha>>2]|0)+da;ha=ea+8|0;ga=ea+((ha&7|0)==0?0:0-ha&7)|0;ha=aa+8|0;d=aa+((ha&7|0)==0?0:0-ha&7)|0;ha=ga+B|0;S=d-ga-B|0;c[ga+4>>2]=B|3;do if((d|0)!=(ca|0)){if((d|0)==(c[2188]|0)){ba=(c[2185]|0)+S|0;c[2185]=ba;c[2188]=ha;c[ha+4>>2]=ba|1;c[ha+ba>>2]= -ba;break}ba=c[d+4>>2]|0;if((ba&3|0)==1){_=ba&-8;$=ba>>>3;d:do if(ba>>>0<256){T=c[d+8>>2]|0;X=c[d+12>>2]|0;if((X|0)==(T|0)){c[2183]=c[2183]&~(1<<$);break}else{c[T+12>>2]=X;c[X+8>>2]=T;break}}else{T=c[d+24>>2]|0;X=c[d+12>>2]|0;do if((X|0)==(d|0)){U=d+16|0;Y=U+4|0;o=c[Y>>2]|0;if(!o){f=c[U>>2]|0;if(!f){la=0;break}else{ma=f;na=U}}else{ma=o;na=Y}while(1){Y=ma+20|0;o=c[Y>>2]|0;if(o|0){ma=o;na=Y;continue}Y=ma+16|0;o=c[Y>>2]|0;if(!o)break;else{ma=o;na=Y}}c[na>>2]=0;la=ma}else{Y=c[d+8>>2]|0;c[Y+12>>2]=X;c[X+ -8>>2]=Y;la=X}while(0);if(!T)break;X=c[d+28>>2]|0;Y=9036+(X<<2)|0;do if((d|0)!=(c[Y>>2]|0)){c[T+16+(((c[T+16>>2]|0)!=(d|0)&1)<<2)>>2]=la;if(!la)break d}else{c[Y>>2]=la;if(la|0)break;c[2184]=c[2184]&~(1<>2]=T;X=d+16|0;Y=c[X>>2]|0;if(Y|0){c[la+16>>2]=Y;c[Y+24>>2]=la}Y=c[X+4>>2]|0;if(!Y)break;c[la+20>>2]=Y;c[Y+24>>2]=la}while(0);oa=d+_|0;pa=_+S|0}else{oa=d;pa=S}$=oa+4|0;c[$>>2]=c[$>>2]&-2;c[ha+4>>2]=pa|1;c[ha+pa>>2]=pa;$=pa>>>3;if(pa>>>0<256){ba=8772+($<<1<<2)|0;Z=c[2183]| -0;Y=1<<$;if(!(Z&Y)){c[2183]=Z|Y;qa=ba;ra=ba+8|0}else{Y=ba+8|0;qa=c[Y>>2]|0;ra=Y}c[ra>>2]=ha;c[qa+12>>2]=ha;c[ha+8>>2]=qa;c[ha+12>>2]=ba;break}ba=pa>>>8;do if(!ba)sa=0;else{if(pa>>>0>16777215){sa=31;break}Y=(ba+1048320|0)>>>16&8;Z=ba<>>16&4;X=Z<<$;Z=(X+245760|0)>>>16&2;o=14-($|Y|Z)+(X<>>15)|0;sa=pa>>>(o+7|0)&1|o<<1}while(0);ba=9036+(sa<<2)|0;c[ha+28>>2]=sa;_=ha+16|0;c[_+4>>2]=0;c[_>>2]=0;_=c[2184]|0;o=1<>2]=ha;c[ha+24>>2]=ba;c[ha+12>>2]=ha;c[ha+ -8>>2]=ha;break}o=pa<<((sa|0)==31?0:25-(sa>>>1)|0);_=c[ba>>2]|0;while(1){if((c[_+4>>2]&-8|0)==(pa|0)){H=194;break}ta=_+16+(o>>>31<<2)|0;ba=c[ta>>2]|0;if(!ba){H=193;break}else{o=o<<1;_=ba}}if((H|0)==193){c[ta>>2]=ha;c[ha+24>>2]=_;c[ha+12>>2]=ha;c[ha+8>>2]=ha;break}else if((H|0)==194){o=_+8|0;ba=c[o>>2]|0;c[ba+12>>2]=ha;c[o>>2]=ha;c[ha+8>>2]=ba;c[ha+12>>2]=_;c[ha+24>>2]=0;break}}else{ba=(c[2186]|0)+S|0;c[2186]=ba;c[2189]=ha;c[ha+4>>2]=ba|1}while(0);p=ga+8|0;l=b;return p|0}ha=9180;while(1){S=c[ha>>2]| -0;if(S>>>0<=ca>>>0?(ua=S+(c[ha+4>>2]|0)|0,ua>>>0>ca>>>0):0)break;ha=c[ha+8>>2]|0}ha=ua+-47|0;ga=ha+8|0;S=ha+((ga&7|0)==0?0:0-ga&7)|0;ga=ca+16|0;ha=S>>>0>>0?ca:S;S=ha+8|0;d=ea+8|0;aa=(d&7|0)==0?0:0-d&7;d=ea+aa|0;fa=da+-40-aa|0;c[2189]=d;c[2186]=fa;c[d+4>>2]=fa|1;c[d+fa+4>>2]=40;c[2190]=c[2305];fa=ha+4|0;c[fa>>2]=27;c[S>>2]=c[2295];c[S+4>>2]=c[2296];c[S+8>>2]=c[2297];c[S+12>>2]=c[2298];c[2295]=ea;c[2296]=da;c[2298]=0;c[2297]=S;S=ha+24|0;do{d=S;S=S+4|0;c[S>>2]=7}while((d+8|0)>>>0>>0);if((ha| -0)!=(ca|0)){S=ha-ca|0;c[fa>>2]=c[fa>>2]&-2;c[ca+4>>2]=S|1;c[ha>>2]=S;d=S>>>3;if(S>>>0<256){aa=8772+(d<<1<<2)|0;ba=c[2183]|0;o=1<>2]|0;wa=o}c[wa>>2]=ca;c[va+12>>2]=ca;c[ca+8>>2]=va;c[ca+12>>2]=aa;break}aa=S>>>8;if(aa)if(S>>>0>16777215)xa=31;else{o=(aa+1048320|0)>>>16&8;ba=aa<>>16&4;d=ba<>>16&2;Z=14-(aa|o|ba)+(d<>>15)|0;xa=S>>>(Z+7|0)&1|Z<<1}else xa=0;Z=9036+(xa<<2)|0;c[ca+28>>2]=xa;c[ca+20>> -2]=0;c[ga>>2]=0;ba=c[2184]|0;d=1<>2]=ca;c[ca+24>>2]=Z;c[ca+12>>2]=ca;c[ca+8>>2]=ca;break}d=S<<((xa|0)==31?0:25-(xa>>>1)|0);ba=c[Z>>2]|0;while(1){if((c[ba+4>>2]&-8|0)==(S|0)){H=216;break}ya=ba+16+(d>>>31<<2)|0;Z=c[ya>>2]|0;if(!Z){H=215;break}else{d=d<<1;ba=Z}}if((H|0)==215){c[ya>>2]=ca;c[ca+24>>2]=ba;c[ca+12>>2]=ca;c[ca+8>>2]=ca;break}else if((H|0)==216){d=ba+8|0;S=c[d>>2]|0;c[S+12>>2]=ca;c[d>>2]=ca;c[ca+8>>2]=S;c[ca+12>>2]=ba;c[ca+24>>2]=0;break}}}else{S=c[2187]|0; -if((S|0)==0|ea>>>0>>0)c[2187]=ea;c[2295]=ea;c[2296]=da;c[2298]=0;c[2192]=c[2301];c[2191]=-1;S=0;do{d=8772+(S<<1<<2)|0;c[d+12>>2]=d;c[d+8>>2]=d;S=S+1|0}while((S|0)!=32);S=ea+8|0;ba=(S&7|0)==0?0:0-S&7;S=ea+ba|0;d=da+-40-ba|0;c[2189]=S;c[2186]=d;c[S+4>>2]=d|1;c[S+d+4>>2]=40;c[2190]=c[2305]}while(0);da=c[2186]|0;if(da>>>0>B>>>0){ea=da-B|0;c[2186]=ea;da=c[2189]|0;ca=da+B|0;c[2189]=ca;c[ca+4>>2]=ea|1;c[da+4>>2]=B|3;p=da+8|0;l=b;return p|0}}c[(rm()|0)>>2]=12;p=0;l=b;return p|0}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,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,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0;d=b+32|0;e=c[d>>2]|0;f=a+104|0;h=c[f>>2]|0;i=e+(h*12|0)|0;j=+g[i>>2];k=e+(h*12|0)+4|0;l=+g[k>>2];m=+g[e+(h*12|0)+8>>2];h=a+108|0;n=c[h>>2]|0;o=+g[e+(n*12|0)>>2];p=+g[e+(n*12|0)+4>>2];q=+g[e+(n*12|0)+8>>2];r=+g[a+144>>2];s=+g[a+148>>2];t=+g[a+152>>2];u=+g[a+156>>2];v=+g[b>>2];b=a+92|0;w=+g[b>>2];x=v*+g[a+100>>2];y=w-(q-m)*+g[a+176>>2];z=-x;A=y>2]=x;A=x-w;w=m-t*A;m=q+u*A;A=+g[a+124>>2];q=+g[a+120>>2];x=+g[a+116>>2];z=+g[a+112>>2];y=x*w+(o-A*m-j);B=p+q*m-l-z*w;D=+g[a+164>>2]*y+ +g[a+172>>2]*B;b=a+84|0;E=+g[b>>2];n=a+88|0;F=+g[n>>2];G=E-(+g[a+160>>2]*y+ +g[a+168>>2]*B);g[b>>2]=G;B=F-D;g[n>>2]=B;D=v*+g[a+96>>2];v=G*G+B*B;if(v>D*D){y=+C(+v);v=1/y;if(y<1.1920928955078125E-7){H=B;I=G}else{y=B*v;J=G*v;g[b>>2]=J;g[n>>2]=y;H=y;I=J}J=D*I;g[b>>2]=J;I=D*H;g[n>>2]=I;K=J;L=I}else{K=G;L=B}B=K-E;E=L-F;g[i>>2]=j-r*B;g[k>>2]=l-r*E;k=c[d>>2]|0;g[k+ -((c[f>>2]|0)*12|0)+8>>2]=w-t*(z*E-B*x);f=c[h>>2]|0;g[k+(f*12|0)>>2]=o+s*B;g[k+(f*12|0)+4>>2]=p+s*E;g[(c[d>>2]|0)+((c[h>>2]|0)*12|0)+8>>2]=m+u*(E*q-B*A);return}function bg(a,b){a=a|0;b=b|0;return 1}function cg(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;c[a+8>>2]=b;c[a+12>>2]=d;f=+g[e>>2]-+g[b+12>>2];h=e+4|0;i=+g[h>>2]-+g[b+16>>2];j=+g[b+24>>2];k=+g[b+20>>2];g[a+20>>2]=f*j+i*k;g[a+24>>2]=j*i-f*k;k=+g[e>>2]-+g[d+12>>2];f=+g[h>>2]-+g[d+16>>2];i=+g[d+24>>2];j=+g[d+20>>2];g[a+28>>2]=k*i+f* -j;g[a+32>>2]=i*f-k*j;return}function dg(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;ch(a,b);c[a>>2]=1176;d=b+20|0;e=c[d+4>>2]|0;f=a+68|0;c[f>>2]=c[d>>2];c[f+4>>2]=e;e=b+28|0;f=c[e+4>>2]|0;d=a+76|0;c[d>>2]=c[e>>2];c[d+4>>2]=f;g[a+84>>2]=0;g[a+88>>2]=0;g[a+92>>2]=0;c[a+96>>2]=c[b+36>>2];c[a+100>>2]=c[b+40>>2];return}function eg(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0,i=0,j=0;d=c[b+48>>2]|0;e=+g[d+24>>2];f=+g[b+80>>2];h=+g[d+20>>2];i=+g[b+84>>2];j=f*h+e*i+ +g[d+16>>2];g[a>>2]=+g[d+12>>2]+(e*f-h*i);g[a+4>>2]=j;return} -function fg(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0,i=0,j=0;d=c[b+52>>2]|0;e=+g[d+24>>2];f=+g[b+88>>2];h=+g[d+20>>2];i=+g[b+92>>2];j=f*h+e*i+ +g[d+16>>2];g[a>>2]=+g[d+12>>2]+(e*f-h*i);g[a+4>>2]=j;return}function gg(a,b,c){a=a|0;b=b|0;c=+c;var d=0;d=+g[b+108>>2]*c;g[a>>2]=+g[b+104>>2]*c;g[a+4>>2]=d;return}function hg(a,b){a=a|0;b=+b;return+(+g[a+112>>2]*b)}function ig(a){a=a|0;var b=0,e=0,f=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;b=l;l=l+96|0;e=b+88|0;f=b+80|0;i=b+72|0;j=b+64|0;k=b+48|0;m=b+32|0;n= -b+24|0;o=b+16|0;p=b+8|0;q=c[(c[a+48>>2]|0)+8>>2]|0;r=c[(c[a+52>>2]|0)+8>>2]|0;am(3343,b);c[p>>2]=q;am(4137,p);c[o>>2]=r;am(4163,o);c[n>>2]=d[a+61>>0];am(4189,n);s=+g[a+84>>2];h[m>>3]=+g[a+80>>2];h[m+8>>3]=s;am(4310,m);s=+g[a+92>>2];h[k>>3]=+g[a+88>>2];h[k+8>>3]=s;am(4352,k);h[j>>3]=+g[a+96>>2];am(3750,j);h[i>>3]=+g[a+68>>2];am(4039,i);h[f>>3]=+g[a+72>>2];am(4068,f);c[e>>2]=c[a+56>>2];am(4467,e);l=b;return}function jg(a){a=a|0;fn(a);return}function kg(b,d){b=b|0;d=d|0;var e=0,f=0,h=0,i=0,k=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,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;e=l;l=l+48|0;f=e;h=c[b+48>>2]|0;i=c[h+8>>2]|0;k=b+116|0;c[k>>2]=i;m=c[b+52>>2]|0;n=c[m+8>>2]|0;o=b+120|0;c[o>>2]=n;p=h+44|0;q=c[p>>2]|0;r=c[p+4>>2]|0;p=b+140|0;c[p>>2]=q;c[p+4>>2]=r;p=m+44|0;s=c[p>>2]|0;t=c[p+4>>2]|0;p=b+148|0;c[p>>2]=s;c[p+4>>2]=t;p=c[h+136>>2]|0;c[b+156>>2]=p;u=c[m+136>>2]|0;c[b+ -160>>2]=u;v=c[h+144>>2]|0;c[b+164>>2]=v;h=c[m+144>>2]|0;c[b+168>>2]=h;m=c[d+28>>2]|0;w=+g[m+(i*12|0)+8>>2];x=d+32|0;y=c[x>>2]|0;z=c[y+(i*12|0)>>2]|0;A=c[y+(i*12|0)+4>>2]|0;B=+g[y+(i*12|0)+8>>2];C=+g[m+(n*12|0)+8>>2];m=c[y+(n*12|0)>>2]|0;i=c[y+(n*12|0)+4>>2]|0;D=+g[y+(n*12|0)+8>>2];G=+F(+w);H=+E(+w);I=+F(+C);J=+E(+C);K=+g[b+80>>2]-(c[j>>2]=q,+g[j>>2]);L=+g[b+84>>2]-(c[j>>2]=r,+g[j>>2]);M=H*K-G*L;N=G*K+H*L;r=b+124|0;g[r>>2]=M;q=b+128|0;g[q>>2]=N;L=+g[b+88>>2]-(c[j>>2]=s,+g[j>>2]);H=+g[b+92>>2]-(c[j>> -2]=t,+g[j>>2]);K=J*L-I*H;G=I*L+J*H;t=b+132|0;g[t>>2]=K;s=b+136|0;g[s>>2]=G;H=(c[j>>2]=p,+g[j>>2]);J=(c[j>>2]=u,+g[j>>2]);L=(c[j>>2]=v,+g[j>>2]);I=(c[j>>2]=h,+g[j>>2]);O=H+J;g[f>>2]=O+L*(N*N)+I*(G*G);P=-(L*(N*M))-I*(G*K);g[f+12>>2]=P;Q=-(L*N)-I*G;g[f+24>>2]=Q;g[f+4>>2]=P;g[f+16>>2]=O+L*(M*M)+I*(K*K);O=L*M+I*K;g[f+28>>2]=O;g[f+8>>2]=Q;g[f+20>>2]=O;O=L+I;g[f+32>>2]=O;h=b+68|0;v=b+172|0;if(+g[h>>2]>0){Tl(f,v);Q=O>0?1/O:0;K=+g[h>>2]*6.2831854820251465;M=K*(Q*K);P=+g[d>>2];G=P*(K*(Q*2*+g[b+72>>2])+P*M); -Q=G!=0?1/G:0;G=(C-w-+g[b+96>>2])*P*M*Q;M=O+Q;g[b+204>>2]=M!=0?1/M:0;R=G;S=Q}else{Ul(f,v);R=0;S=0}g[b+100>>2]=S;g[b+76>>2]=R;if(!(a[d+24>>0]|0)){g[b+104>>2]=0;g[b+108>>2]=0;g[b+112>>2]=0;T=B;U=D;V=m;W=z;X=i;Y=A;Z=c[x>>2]|0;_=c[k>>2]|0;$=Z+(_*12|0)|0;c[$>>2]=W;aa=Z+(_*12|0)+4|0;c[aa>>2]=Y;ba=c[x>>2]|0;ca=c[k>>2]|0;da=ba+(ca*12|0)+8|0;g[da>>2]=T;ea=c[o>>2]|0;fa=ba+(ea*12|0)|0;c[fa>>2]=V;ga=ba+(ea*12|0)+4|0;c[ga>>2]=X;ha=c[x>>2]|0;ia=c[o>>2]|0;ja=ha+(ia*12|0)+8|0;g[ja>>2]=U;l=e;return}else{R=+g[d+8>> -2];d=b+104|0;S=R*+g[d>>2];g[d>>2]=S;d=b+108|0;Q=R*+g[d>>2];g[d>>2]=Q;d=b+112|0;G=R*+g[d>>2];g[d>>2]=G;d=(g[j>>2]=(c[j>>2]=z,+g[j>>2])-H*S,c[j>>2]|0);z=(g[j>>2]=(c[j>>2]=A,+g[j>>2])-H*Q,c[j>>2]|0);A=(g[j>>2]=(c[j>>2]=m,+g[j>>2])+J*S,c[j>>2]|0);T=B-L*(G+(Q*+g[r>>2]-S*+g[q>>2]));U=D+I*(G+(Q*+g[t>>2]-S*+g[s>>2]));V=A;W=d;X=(g[j>>2]=(c[j>>2]=i,+g[j>>2])+J*Q,c[j>>2]|0);Y=z;Z=c[x>>2]|0;_=c[k>>2]|0;$=Z+(_*12|0)|0;c[$>>2]=W;aa=Z+(_*12|0)+4|0;c[aa>>2]=Y;ba=c[x>>2]|0;ca=c[k>>2]|0;da=ba+(ca*12|0)+8|0;g[da>>2]= -T;ea=c[o>>2]|0;fa=ba+(ea*12|0)|0;c[fa>>2]=V;ga=ba+(ea*12|0)+4|0;c[ga>>2]=X;ha=c[x>>2]|0;ia=c[o>>2]|0;ja=ha+(ia*12|0)+8|0;g[ja>>2]=U;l=e;return}}function lg(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0,i=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;d=b+32|0;b=c[d>>2]|0;e=a+116|0;f=c[e>>2]|0;h=c[b+(f*12|0)>>2]|0;i=b+(f*12|0)+4|0;k=c[i>>2]|0;l=+g[b+(f*12|0)+8>>2];m=a+120| -0;n=c[m>>2]|0;o=c[b+(n*12|0)>>2]|0;p=c[b+(n*12|0)+4>>2]|0;q=+g[b+(n*12|0)+8>>2];r=+g[a+156>>2];s=+g[a+160>>2];t=+g[a+164>>2];u=+g[a+168>>2];v=+g[a+204>>2];if(+g[a+68>>2]>0){n=a+112|0;w=+g[n>>2];x=v*(q-l+ +g[a+76>>2]+ +g[a+100>>2]*w);y=-x;g[n>>2]=w-x;x=l-t*y;w=q+u*y;y=+g[a+136>>2];z=+g[a+132>>2];A=(c[j>>2]=o,+g[j>>2]);B=(c[j>>2]=p,+g[j>>2]);C=(c[j>>2]=h,+g[j>>2]);D=(c[j>>2]=k,+g[j>>2]);E=+g[a+128>>2];F=+g[a+124>>2];G=E*x+(A-y*w-C);H=B+z*w-D-F*x;I=+g[a+172>>2]*G+ +g[a+184>>2]*H;J=+g[a+176>>2]*G+H*+g[a+ -188>>2];H=-I;G=-J;n=a+104|0;g[n>>2]=+g[n>>2]-I;n=a+108|0;g[n>>2]=+g[n>>2]-J;K=x-t*(F*G-E*H);L=w;M=z*G-y*H;N=A+s*H;O=C-r*H;P=B+s*G;Q=D-r*G;R=u*M;S=L+R;T=b+(f*12|0)|0;g[T>>2]=O;g[i>>2]=Q;U=c[d>>2]|0;V=c[e>>2]|0;W=U+(V*12|0)+8|0;g[W>>2]=K;X=c[m>>2]|0;Y=U+(X*12|0)|0;g[Y>>2]=N;Z=U+(X*12|0)+4|0;g[Z>>2]=P;_=c[d>>2]|0;$=c[m>>2]|0;aa=_+($*12|0)+8|0;g[aa>>2]=S;return}else{G=+g[a+136>>2];D=+g[a+132>>2];B=(c[j>>2]=o,+g[j>>2]);H=(c[j>>2]=p,+g[j>>2]);C=(c[j>>2]=h,+g[j>>2]);A=(c[j>>2]=k,+g[j>>2]);y=+g[a+128>>2]; -z=+g[a+124>>2];w=B-q*G-C+l*y;E=H+q*D-A-l*z;F=q-l;x=w*+g[a+172>>2]+E*+g[a+184>>2]+F*+g[a+196>>2];J=w*+g[a+176>>2]+E*+g[a+188>>2]+F*+g[a+200>>2];I=w*+g[a+180>>2]+E*+g[a+192>>2]+F*v;v=-x;F=-J;k=a+104|0;g[k>>2]=+g[k>>2]-x;k=a+108|0;g[k>>2]=+g[k>>2]-J;k=a+112|0;g[k>>2]=+g[k>>2]-I;K=l-t*(z*F-y*v-I);L=q;M=D*F-G*v-I;N=B+s*v;O=C-r*v;P=H+s*F;Q=A-r*F;R=u*M;S=L+R;T=b+(f*12|0)|0;g[T>>2]=O;g[i>>2]=Q;U=c[d>>2]|0;V=c[e>>2]|0;W=U+(V*12|0)+8|0;g[W>>2]=K;X=c[m>>2]|0;Y=U+(X*12|0)|0;g[Y>>2]=N;Z=U+(X*12|0)+4|0;g[Z>>2]= -P;_=c[d>>2]|0;$=c[m>>2]|0;aa=_+($*12|0)+8|0;g[aa>>2]=S;return}}function mg(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0,i=0,k=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,D=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;d=l;l=l+80|0;e=d+36|0;f=d+24|0;h=d+16|0;i=d;k=b+28|0;b=c[k>>2]|0;m=a+116|0;n=c[m>>2]|0;o=c[b+(n*12|0)>>2]|0;p=c[b+(n*12|0)+4>>2]|0;q=+g[b+(n*12|0)+8>>2];n= -a+120|0;r=c[n>>2]|0;s=c[b+(r*12|0)>>2]|0;t=c[b+(r*12|0)+4>>2]|0;u=+g[b+(r*12|0)+8>>2];v=+F(+q);w=+E(+q);x=+F(+u);y=+E(+u);z=+g[a+156>>2];A=+g[a+160>>2];B=+g[a+164>>2];D=+g[a+168>>2];G=+g[a+80>>2]-+g[a+140>>2];H=+g[a+84>>2]-+g[a+144>>2];I=w*G-v*H;J=v*G+w*H;H=+g[a+88>>2]-+g[a+148>>2];w=+g[a+92>>2]-+g[a+152>>2];G=y*H-x*w;v=x*H+y*w;w=z+A;g[e>>2]=w+B*(J*J)+D*(v*v);y=-(B*(J*I))-D*(v*G);g[e+12>>2]=y;H=-(B*J)-D*v;g[e+24>>2]=H;g[e+4>>2]=y;g[e+16>>2]=w+B*(I*I)+D*(G*G);w=B*I+D*G;g[e+28>>2]=w;g[e+8>>2]=H;g[e+ -20>>2]=w;g[e+32>>2]=B+D;if(+g[a+68>>2]>0){w=(c[j>>2]=s,+g[j>>2]);H=(c[j>>2]=t,+g[j>>2]);y=(c[j>>2]=o,+g[j>>2]);x=(c[j>>2]=p,+g[j>>2]);K=w+G-y-I;L=H+v-x-J;g[f>>2]=K;g[f+4>>2]=L;M=+C(+(K*K+L*L));Sl(h,e,f);L=-+g[h>>2];K=-+g[h+4>>2];N=1;O=M;P=G*K-v*L;Q=I*K-J*L;R=w+A*L;S=y-z*L;T=H+A*K;U=x-z*K;V=B*Q;W=D*P;X=q-V;Y=u+W;Z=c[k>>2]|0;_=c[m>>2]|0;$=Z+(_*12|0)|0;g[$>>2]=S;aa=Z+(_*12|0)+4|0;g[aa>>2]=U;ba=c[k>>2]|0;ca=c[m>>2]|0;da=ba+(ca*12|0)+8|0;g[da>>2]=X;ea=c[n>>2]|0;fa=ba+(ea*12|0)|0;g[fa>>2]=R;ga=ba+(ea*12| -0)+4|0;g[ga>>2]=T;ha=c[k>>2]|0;ia=c[n>>2]|0;ja=ha+(ia*12|0)+8|0;g[ja>>2]=Y;ka=O<=.004999999888241291;la=ka&N;l=d;return la|0}else{K=(c[j>>2]=s,+g[j>>2]);x=(c[j>>2]=t,+g[j>>2]);H=(c[j>>2]=o,+g[j>>2]);L=(c[j>>2]=p,+g[j>>2]);y=K+G-H-I;w=x+v-L-J;M=u-q-+g[a+96>>2];ma=+C(+(y*y+w*w));g[f>>2]=y;g[f+4>>2]=w;g[f+8>>2]=M;Rl(i,e,f);w=-+g[i>>2];y=-+g[i+4>>2];na=+g[i+8>>2];N=(M>0?M:-M)<=.03490658849477768;O=ma;P=G*y-v*w-na;Q=I*y-J*w-na;R=K+A*w;S=H-z*w;T=x+A*y;U=L-z*y;V=B*Q;W=D*P;X=q-V;Y=u+W;Z=c[k>>2]|0;_=c[m>> -2]|0;$=Z+(_*12|0)|0;g[$>>2]=S;aa=Z+(_*12|0)+4|0;g[aa>>2]=U;ba=c[k>>2]|0;ca=c[m>>2]|0;da=ba+(ca*12|0)+8|0;g[da>>2]=X;ea=c[n>>2]|0;fa=ba+(ea*12|0)|0;g[fa>>2]=R;ga=ba+(ea*12|0)+4|0;g[ga>>2]=T;ha=c[k>>2]|0;ia=c[n>>2]|0;ja=ha+(ia*12|0)+8|0;g[ja>>2]=Y;ka=O<=.004999999888241291;la=ka&N;l=d;return la|0}return 0}function ng(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;c[a+8>>2]=b;c[a+12>>2]=d;f=+g[e>>2]-+g[b+12>>2];h=e+4|0;i=+g[h>>2]-+g[b+16>>2];j=+g[b+24>>2];k=+g[b+20>>2];g[a+20>>2]=f*j+i*k;g[a+ -24>>2]=j*i-f*k;k=+g[e>>2]-+g[d+12>>2];f=+g[h>>2]-+g[d+16>>2];i=+g[d+24>>2];j=+g[d+20>>2];g[a+28>>2]=k*i+f*j;g[a+32>>2]=i*f-k*j;g[a+36>>2]=+g[d+72>>2]-+g[b+72>>2];return}function og(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;ch(a,b);c[a>>2]=1228;d=b+20|0;e=c[d+4>>2]|0;f=a+80|0;c[f>>2]=c[d>>2];c[f+4>>2]=e;e=b+28|0;f=c[e+4>>2]|0;d=a+88|0;c[d>>2]=c[e>>2];c[d+4>>2]=f;c[a+96>>2]=c[b+36>>2];c[a+68>>2]=c[b+40>>2];c[a+72>>2]=c[b+44>>2];g[a+104>>2]=0;g[a+108>>2]=0;g[a+112>>2]=0;return}function pg(a,b){a=a|0;b=b|0;var d= -0,e=0,f=0,h=0,i=0,j=0;d=c[b+48>>2]|0;e=+g[d+24>>2];f=+g[b+92>>2];h=+g[d+20>>2];i=+g[b+96>>2];j=f*h+e*i+ +g[d+16>>2];g[a>>2]=+g[d+12>>2]+(e*f-h*i);g[a+4>>2]=j;return}function qg(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0,i=0,j=0;d=c[b+52>>2]|0;e=+g[d+24>>2];f=+g[b+100>>2];h=+g[d+20>>2];i=+g[b+104>>2];j=f*h+e*i+ +g[d+16>>2];g[a>>2]=+g[d+12>>2]+(e*f-h*i);g[a+4>>2]=j;return}function rg(a,b,c){a=a|0;b=b|0;c=+c;var d=0,e=0;d=+g[b+156>>2];e=d*+g[b+244>>2]*c;g[a>>2]=d*+g[b+240>>2]*c;g[a+4>>2]=e;return}function sg(a, -b){a=a|0;b=+b;return+(+g[a+156>>2]*+g[a+256>>2]*b)}function tg(a){a=a|0;var b=0,e=0,f=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0;b=l;l=l+64|0;e=b+56|0;f=b+48|0;i=b+40|0;j=b+32|0;k=b+24|0;m=b+16|0;n=b+8|0;o=c[(c[a+48>>2]|0)+8>>2]|0;p=c[(c[a+52>>2]|0)+8>>2]|0;q=c[(c[a+68>>2]|0)+56>>2]|0;r=c[(c[a+72>>2]|0)+56>>2]|0;am(3379,b);c[n>>2]=o;am(4137,n);c[m>>2]=p;am(4163,m);c[k>>2]=d[a+61>>0];am(4189,k);c[j>>2]=q;am(3401,j);c[i>>2]=r;am(3428,i);h[f>>3]=+g[a+152>>2];am(4444,f);c[e>>2]=c[a+56>>2];am(4467,e);l=b;return} -function ug(a){a=a|0;fn(a);return}function vg(b,d){b=b|0;d=d|0;var e=0,f=0,h=0,i=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,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,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;e=c[b+48>>2]|0;f=c[e+8>>2]|0;h=b+160|0;c[h>>2]=f;i=c[b+52>>2]|0;k=c[i+8>>2]|0;l=b+164|0;c[l>>2]=k;m=c[b+84>>2]|0;n=b+168|0;c[n>>2]=c[m+8>>2];o=c[b+88>>2]|0;p=b+172|0;c[p>>2]=c[o+8>>2];q=b+176|0;r=e+44|0;s=c[r+4>>2]|0;t=q;c[t>>2]=c[r>>2];c[t+4>>2]=s;s=b+184|0;t=i+44|0;r=c[t+4>>2]|0;u=s;c[u>>2]=c[t>>2];c[u+4>>2]=r;r=b+192|0;u=m+44|0;t=c[u+4>>2]|0;v=r;c[v>>2]=c[u>>2];c[v+4>>2]=t;t=b+200|0;v=o+44|0;u=c[v+4>>2]|0;w=t;c[w>>2]=c[v>>2];c[w+4>>2]=u;u=b+208|0;c[u>>2]=c[e+136>>2];w=b+212|0;c[w>> -2]=c[i+136>>2];v=c[m+136>>2]|0;c[b+216>>2]=v;x=c[o+136>>2]|0;c[b+220>>2]=x;y=c[e+144>>2]|0;c[b+224>>2]=y;e=c[i+144>>2]|0;c[b+228>>2]=e;i=c[m+144>>2]|0;c[b+232>>2]=i;m=c[o+144>>2]|0;c[b+236>>2]=m;o=c[d+28>>2]|0;z=+g[o+(f*12|0)+8>>2];A=d+32|0;B=c[A>>2]|0;C=c[B+(f*12|0)>>2]|0;D=c[B+(f*12|0)+4>>2]|0;G=+g[B+(f*12|0)+8>>2];H=+g[o+(k*12|0)+8>>2];f=c[B+(k*12|0)>>2]|0;I=c[B+(k*12|0)+4>>2]|0;J=+g[B+(k*12|0)+8>>2];k=c[n>>2]|0;K=+g[o+(k*12|0)+8>>2];L=c[B+(k*12|0)>>2]|0;M=c[B+(k*12|0)+4>>2]|0;N=+g[B+(k*12|0)+ -8>>2];k=c[p>>2]|0;O=+g[o+(k*12|0)+8>>2];o=c[B+(k*12|0)>>2]|0;P=c[B+(k*12|0)+4>>2]|0;Q=+g[B+(k*12|0)+8>>2];R=+F(+z);S=+E(+z);z=+F(+H);T=+E(+H);H=+F(+K);U=+E(+K);K=+F(+O);V=+E(+O);k=b+272|0;g[k>>2]=0;O=(c[j>>2]=v,+g[j>>2]);W=(c[j>>2]=i,+g[j>>2]);X=(c[j>>2]=y,+g[j>>2]);Y=(c[j>>2]=x,+g[j>>2]);Z=(c[j>>2]=m,+g[j>>2]);_=(c[j>>2]=e,+g[j>>2]);if((c[b+76>>2]|0)==1){g[b+264>>2]=1;$=X+W;aa=0;ba=0;ca=1;da=1}else{ea=+g[b+124>>2];fa=+g[b+128>>2];ga=U*ea-H*fa;ha=H*ea+U*fa;fa=+g[b+108>>2]-+g[r>>2];ea=+g[b+112>>2]- -+g[b+196>>2];ia=+g[b+92>>2]-+g[q>>2];ja=+g[b+96>>2]-+g[b+180>>2];ka=ha*(U*fa-H*ea)-ga*(H*fa+U*ea);g[b+264>>2]=ka;ea=ha*(S*ia-R*ja)-ga*(R*ia+S*ja);$=O+ +g[u>>2]+ka*(W*ka)+ea*(ea*X);aa=ga;ba=ha;ca=ea;da=ka}g[b+240>>2]=aa;g[b+244>>2]=ba;g[b+256>>2]=ca;ka=$+0;g[k>>2]=ka;if((c[b+80>>2]|0)==1){q=c[b+152>>2]|0;c[b+260>>2]=q;c[b+268>>2]=q;$=(c[j>>2]=q,+g[j>>2]);la=$*$*(_+Z);ma=0;na=0;oa=$;pa=$}else{$=+g[b+132>>2];ea=+g[b+136>>2];ha=V*$-K*ea;ga=K*$+V*ea;ea=+g[b+116>>2]-+g[t>>2];$=+g[b+120>>2]-+g[b+204>>2]; -ja=+g[b+100>>2]-+g[s>>2];S=+g[b+104>>2]-+g[b+188>>2];ia=+g[b+152>>2];R=(ga*(V*ea-K*$)-ha*(K*ea+V*$))*ia;g[b+268>>2]=R;$=(ga*(T*ja-z*S)-ha*(z*ja+T*S))*ia;g[b+260>>2]=$;la=ia*ia*(Y+ +g[w>>2])+R*(Z*R)+$*($*_);ma=ha*ia;na=ga*ia;oa=$;pa=R}g[b+248>>2]=ma;g[b+252>>2]=na;R=la+ka;g[k>>2]=R>0?1/R:0;if(!(a[d+24>>0]|0)){g[b+156>>2]=0;qa=Q;ra=G;sa=N;ta=J;ua=o;va=L;wa=f;xa=C;ya=P;za=M;Aa=I;Ba=D;Ca=c[A>>2]|0;Da=c[h>>2]|0;Ea=Ca+(Da*12|0)|0;c[Ea>>2]=xa;Fa=Ca+(Da*12|0)+4|0;c[Fa>>2]=Ba;Ga=c[A>>2]|0;Ha=c[h>>2]|0;Ia= -Ga+(Ha*12|0)+8|0;g[Ia>>2]=ra;Ja=c[l>>2]|0;Ka=Ga+(Ja*12|0)|0;c[Ka>>2]=wa;La=Ga+(Ja*12|0)+4|0;c[La>>2]=Aa;Ma=c[A>>2]|0;Na=c[l>>2]|0;Oa=Ma+(Na*12|0)+8|0;g[Oa>>2]=ta;Pa=c[n>>2]|0;Qa=Ma+(Pa*12|0)|0;c[Qa>>2]=va;Ra=Ma+(Pa*12|0)+4|0;c[Ra>>2]=za;Sa=c[A>>2]|0;Ta=c[n>>2]|0;Ua=Sa+(Ta*12|0)+8|0;g[Ua>>2]=sa;Va=c[p>>2]|0;Wa=Sa+(Va*12|0)|0;c[Wa>>2]=ua;Xa=Sa+(Va*12|0)+4|0;c[Xa>>2]=ya;Ya=c[A>>2]|0;Za=c[p>>2]|0;_a=Ya+(Za*12|0)+8|0;g[_a>>2]=qa;return}else{R=+g[b+156>>2];ka=+g[u>>2]*R;u=(g[j>>2]=(c[j>>2]=C,+g[j>>2])+ -aa*ka,c[j>>2]|0);C=(g[j>>2]=(c[j>>2]=D,+g[j>>2])+ka*ba,c[j>>2]|0);ka=R*+g[w>>2];w=(g[j>>2]=(c[j>>2]=f,+g[j>>2])+ma*ka,c[j>>2]|0);f=(g[j>>2]=(c[j>>2]=I,+g[j>>2])+ka*na,c[j>>2]|0);ka=R*O;I=(g[j>>2]=(c[j>>2]=L,+g[j>>2])-aa*ka,c[j>>2]|0);L=(g[j>>2]=(c[j>>2]=M,+g[j>>2])-ba*ka,c[j>>2]|0);ka=R*Y;M=(g[j>>2]=(c[j>>2]=o,+g[j>>2])-ma*ka,c[j>>2]|0);qa=Q-R*Z*pa;ra=G+R*X*ca;sa=N-R*W*da;ta=J+R*_*oa;ua=M;va=I;wa=w;xa=u;ya=(g[j>>2]=(c[j>>2]=P,+g[j>>2])-na*ka,c[j>>2]|0);za=L;Aa=f;Ba=C;Ca=c[A>>2]|0;Da=c[h>>2]|0;Ea= -Ca+(Da*12|0)|0;c[Ea>>2]=xa;Fa=Ca+(Da*12|0)+4|0;c[Fa>>2]=Ba;Ga=c[A>>2]|0;Ha=c[h>>2]|0;Ia=Ga+(Ha*12|0)+8|0;g[Ia>>2]=ra;Ja=c[l>>2]|0;Ka=Ga+(Ja*12|0)|0;c[Ka>>2]=wa;La=Ga+(Ja*12|0)+4|0;c[La>>2]=Aa;Ma=c[A>>2]|0;Na=c[l>>2]|0;Oa=Ma+(Na*12|0)+8|0;g[Oa>>2]=ta;Pa=c[n>>2]|0;Qa=Ma+(Pa*12|0)|0;c[Qa>>2]=va;Ra=Ma+(Pa*12|0)+4|0;c[Ra>>2]=za;Sa=c[A>>2]|0;Ta=c[n>>2]|0;Ua=Sa+(Ta*12|0)+8|0;g[Ua>>2]=sa;Va=c[p>>2]|0;Wa=Sa+(Va*12|0)|0;c[Wa>>2]=ua;Xa=Sa+(Va*12|0)+4|0;c[Xa>>2]=ya;Ya=c[A>>2]|0;Za=c[p>>2]|0;_a=Ya+(Za*12|0)+8| -0;g[_a>>2]=qa;return}}function wg(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,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;d=b+32|0;b=c[d>>2]|0;e=a+160|0;f=c[e>>2]|0;h=+g[b+(f*12|0)>>2];i=+g[b+(f*12|0)+4>>2];j=+g[b+(f*12|0)+8>>2];f=a+164|0;k=c[f>>2]|0;l=+g[b+(k*12|0)>>2];m=+g[b+(k*12|0)+4>>2];n=+g[b+(k*12|0)+8>>2];k=a+168|0;o=c[k>>2]|0;p=+g[b+(o*12|0)>>2];q=+g[b+(o*12|0)+4>>2];r=+g[b+(o*12|0)+8>>2];o=a+172|0;s=c[o>>2]|0;t=+g[b+(s*12|0)>>2];u=+g[b+(s* -12|0)+4>>2];v=+g[b+(s*12|0)+8>>2];w=+g[a+240>>2];x=+g[a+244>>2];y=+g[a+248>>2];z=+g[a+252>>2];A=+g[a+256>>2];B=+g[a+264>>2];C=+g[a+260>>2];D=+g[a+268>>2];E=+g[a+272>>2]*((h-p)*w+(i-q)*x+((l-t)*y+(m-u)*z)+(j*A-r*B+(n*C-v*D)));F=-E;s=a+156|0;g[s>>2]=+g[s>>2]-E;E=+g[a+208>>2]*F;G=j+ +g[a+224>>2]*F*A;A=+g[a+212>>2]*F;j=n+ +g[a+228>>2]*F*C;C=+g[a+216>>2]*F;n=r-+g[a+232>>2]*F*B;B=+g[a+220>>2]*F;r=v-+g[a+236>>2]*F*D;a=c[d>>2]|0;s=c[e>>2]|0;g[a+(s*12|0)>>2]=h+w*E;g[a+(s*12|0)+4>>2]=i+x*E;s=c[d>>2]|0;g[s+ -((c[e>>2]|0)*12|0)+8>>2]=G;e=c[f>>2]|0;g[s+(e*12|0)>>2]=l+y*A;g[s+(e*12|0)+4>>2]=m+A*z;e=c[d>>2]|0;g[e+((c[f>>2]|0)*12|0)+8>>2]=j;f=c[k>>2]|0;g[e+(f*12|0)>>2]=p-w*C;g[e+(f*12|0)+4>>2]=q-x*C;f=c[d>>2]|0;g[f+((c[k>>2]|0)*12|0)+8>>2]=n;k=c[o>>2]|0;g[f+(k*12|0)>>2]=t-y*B;g[f+(k*12|0)+4>>2]=u-z*B;g[(c[d>>2]|0)+((c[o>>2]|0)*12|0)+8>>2]=r;return}function xg(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0,i=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,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;d=b+28|0;b=c[d>>2]|0;e=a+160|0;f=c[e>>2]|0;h=c[b+(f*12|0)>>2]|0;i=b+(f*12|0)+4|0;k=c[i>>2]|0;l=+g[b+(f*12|0)+8>>2];m=a+164|0;n=c[m>>2]|0;o=c[b+(n*12|0)>>2]|0;p=c[b+(n*12|0)+4>>2]|0;q=+g[b+(n*12|0)+8>>2];n=a+168|0;r=c[n>>2]|0;s=c[b+(r*12|0)>>2]|0;t=c[b+(r*12|0)+4>>2]|0;u=+g[b+(r*12|0)+8>>2];r=a+172|0;v=c[r>>2]|0;w=c[b+(v*12|0)>>2]|0;x=c[b+(v*12|0)+4>>2]|0;y=+g[b+(v*12|0)+8>>2];z=+F(+l);A=+E(+l);B=+F(+q); -C=+E(+q);D=+F(+u);G=+E(+u);H=+F(+y);I=+E(+y);J=+g[a+224>>2];K=+g[a+232>>2];if((c[a+76>>2]|0)==1){L=J+K;M=1;N=1;O=l-u-+g[a+140>>2];P=0;Q=0}else{R=+g[a+124>>2];S=+g[a+128>>2];T=G*R-D*S;U=D*R+G*S;V=+g[a+108>>2]-+g[a+192>>2];W=+g[a+112>>2]-+g[a+196>>2];X=+g[a+92>>2]-+g[a+176>>2];Y=+g[a+96>>2]-+g[a+180>>2];Z=A*X-z*Y;_=z*X+A*Y;Y=U*(G*V-D*W)-T*(D*V+G*W);A=U*Z-T*_;X=(c[j>>2]=h,+g[j>>2]);z=X-(c[j>>2]=s,+g[j>>2]);X=(c[j>>2]=k,+g[j>>2]);$=z+Z;Z=X-(c[j>>2]=t,+g[j>>2])+_;L=+g[a+216>>2]+ +g[a+208>>2]+Y*(Y*K)+A* -(J*A);M=Y;N=A;O=R*(G*$+D*Z-V)+S*(G*Z-D*$-W);P=T;Q=U}U=+g[a+152>>2];T=+g[a+228>>2];if((c[a+80>>2]|0)==1){W=+g[a+236>>2];aa=U;ba=U;ca=q-y-+g[a+144>>2];da=U*U*(T+W);ea=0;fa=0;ga=W}else{W=+g[a+132>>2];$=+g[a+136>>2];D=I*W-H*$;Z=H*W+I*$;G=+g[a+116>>2]-+g[a+200>>2];S=+g[a+120>>2]-+g[a+204>>2];V=+g[a+100>>2]-+g[a+184>>2];R=+g[a+104>>2]-+g[a+188>>2];A=C*V-B*R;Y=B*V+C*R;R=U*(Z*(I*G-H*S)-D*(H*G+I*S));C=U*(Z*A-D*Y);V=+g[a+236>>2];B=(c[j>>2]=o,+g[j>>2]);_=B-(c[j>>2]=w,+g[j>>2]);B=(c[j>>2]=p,+g[j>>2]);X=_+A;A= -B-(c[j>>2]=x,+g[j>>2])+Y;aa=R;ba=C;ca=W*(I*X+H*A-G)+$*(I*A-H*X-S);da=U*U*(+g[a+220>>2]+ +g[a+212>>2])+R*(R*V)+C*(T*C);ea=D*U;fa=Z*U;ga=V}V=L+0+da;if(V>0)ha=-(O+ca*U-+g[a+148>>2])/V;else ha=0;V=ha*+g[a+208>>2];U=(c[j>>2]=h,+g[j>>2])+P*V;ca=(c[j>>2]=k,+g[j>>2])+Q*V;V=ha*+g[a+212>>2];O=(c[j>>2]=o,+g[j>>2])+ea*V;da=(c[j>>2]=p,+g[j>>2])+fa*V;V=ha*+g[a+216>>2];L=(c[j>>2]=s,+g[j>>2])-P*V;P=(c[j>>2]=t,+g[j>>2])-Q*V;V=ha*+g[a+220>>2];Q=(c[j>>2]=w,+g[j>>2])-ea*V;ea=(c[j>>2]=x,+g[j>>2])-fa*V;g[b+(f*12|0)>>2]= -U;g[i>>2]=ca;i=c[d>>2]|0;g[i+((c[e>>2]|0)*12|0)+8>>2]=l+N*(ha*J);e=c[m>>2]|0;g[i+(e*12|0)>>2]=O;g[i+(e*12|0)+4>>2]=da;e=c[d>>2]|0;g[e+((c[m>>2]|0)*12|0)+8>>2]=q+ba*(ha*T);m=c[n>>2]|0;g[e+(m*12|0)>>2]=L;g[e+(m*12|0)+4>>2]=P;m=c[d>>2]|0;g[m+((c[n>>2]|0)*12|0)+8>>2]=u-M*(ha*K);n=c[r>>2]|0;g[m+(n*12|0)>>2]=Q;g[m+(n*12|0)+4>>2]=ea;g[(c[d>>2]|0)+((c[r>>2]|0)*12|0)+8>>2]=y-aa*(ha*ga);return 1}function yg(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0,i=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;ch(a,b);c[a>>2]=1280;d=a+92|0;e=a+100|0;f=a+108|0;h=a+116|0;i=a+124|0;k=a+132|0;l=c[b+20>>2]|0;c[a+68>>2]=l;m=b+24|0;n=c[m>>2]|0;c[a+72>>2]=n;o=l;l=c[o+4>>2]|0;c[a+76>>2]=l;p=n;n=c[p+4>>2]|0;c[a+80>>2]=n;q=c[o+48>>2]|0;c[a+84>>2]=q;r=c[o+52>>2]|0;c[a+48>>2]=r;s=+g[r+20>>2];t=+g[r+24>>2];u=q;v=+g[u+20>>2];w=+g[u+24>>2];if((l|0)==1){x=+g[r+72>>2];y=+g[u+72>>2];l=o+68|0;q=c[l+4>>2]|0;z=f;c[z>>2]=c[l>>2];c[z+4>>2]=q;q=o+76|0;z=c[q+4>> -2]|0;l=d;c[l>>2]=c[q>>2];c[l+4>>2]=z;z=c[o+116>>2]|0;c[a+140>>2]=z;g[i>>2]=0;g[a+128>>2]=0;A=x-y-(c[j>>2]=z,+g[j>>2])}else{y=+g[u+16>>2];x=+g[u+12>>2];B=+g[r+16>>2];C=+g[r+12>>2];r=o+68|0;u=c[r>>2]|0;z=c[r+4>>2]|0;r=f;c[r>>2]=u;c[r+4>>2]=z;r=o+76|0;f=c[r>>2]|0;l=c[r+4>>2]|0;r=d;c[r>>2]=f;c[r+4>>2]=l;c[a+140>>2]=c[o+100>>2];r=o+84|0;o=c[r>>2]|0;d=c[r+4>>2]|0;r=i;c[r>>2]=o;c[r+4>>2]=d;D=(c[j>>2]=u,+g[j>>2]);E=(c[j>>2]=z,+g[j>>2]);F=(c[j>>2]=f,+g[j>>2]);G=(c[j>>2]=l,+g[j>>2]);H=C-x+(t*F-s*G);x=B-y+(s* -F+t*G);G=(c[j>>2]=o,+g[j>>2])*(w*H+v*x-D);A=G+(c[j>>2]=d,+g[j>>2])*(w*x-v*H-E)}d=c[p+48>>2]|0;c[a+88>>2]=d;o=c[p+52>>2]|0;c[a+52>>2]=o;E=+g[o+20>>2];H=+g[o+24>>2];p=d;v=+g[p+20>>2];x=+g[p+24>>2];d=c[m>>2]|0;if((n|0)==1){w=+g[o+72>>2];G=+g[p+72>>2];n=d+68|0;m=c[n+4>>2]|0;l=h;c[l>>2]=c[n>>2];c[l+4>>2]=m;m=d+76|0;l=c[m+4>>2]|0;n=e;c[n>>2]=c[m>>2];c[n+4>>2]=l;l=c[d+116>>2]|0;c[a+144>>2]=l;g[k>>2]=0;g[a+136>>2]=0;I=w-G-(c[j>>2]=l,+g[j>>2]);J=b+28|0;K=+g[J>>2];L=a+152|0;g[L>>2]=K;M=I*K;N=A+M;O=a+148|0; -g[O>>2]=N;P=a+156|0;g[P>>2]=0;return}else{G=+g[p+16>>2];w=+g[p+12>>2];D=+g[o+16>>2];t=+g[o+12>>2];o=d+68|0;p=c[o>>2]|0;l=c[o+4>>2]|0;o=h;c[o>>2]=p;c[o+4>>2]=l;o=d+76|0;h=c[o>>2]|0;n=c[o+4>>2]|0;o=e;c[o>>2]=h;c[o+4>>2]=n;c[a+144>>2]=c[d+100>>2];o=d+84|0;d=c[o>>2]|0;e=c[o+4>>2]|0;o=k;c[o>>2]=d;c[o+4>>2]=e;F=(c[j>>2]=p,+g[j>>2]);s=(c[j>>2]=l,+g[j>>2]);y=(c[j>>2]=h,+g[j>>2]);B=(c[j>>2]=n,+g[j>>2]);C=t-w+(H*y-E*B);w=D-G+(E*y+H*B);B=(c[j>>2]=d,+g[j>>2])*(x*C+v*w-F);I=B+(c[j>>2]=e,+g[j>>2])*(x*w-v*C-s); -J=b+28|0;K=+g[J>>2];L=a+152|0;g[L>>2]=K;M=I*K;N=A+M;O=a+148|0;g[O>>2]=N;P=a+156|0;g[P>>2]=0;return}}function zg(a){a=a|0;return+ +g[a+152>>2]}function Ag(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0,i=0,j=0;d=c[b+48>>2]|0;e=+g[d+24>>2];f=+g[b+68>>2];h=+g[d+20>>2];i=+g[b+72>>2];j=f*h+e*i+ +g[d+16>>2];g[a>>2]=+g[d+12>>2]+(e*f-h*i);g[a+4>>2]=j;return}function Bg(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0,i=0,j=0;d=c[b+52>>2]|0;e=+g[d+24>>2];f=+g[b+76>>2];h=+g[d+20>>2];i=+g[b+80>>2];j=f*h+e*i+ +g[d+16>>2];g[a>>2]= -+g[d+12>>2]+(e*f-h*i);g[a+4>>2]=j;return}function Cg(a,b,c){a=a|0;b=b|0;c=+c;var d=0,e=0,f=0;d=+g[b+104>>2];e=+g[b+116>>2]+ +g[b+112>>2];f=(d*+g[b+196>>2]+e*+g[b+188>>2])*c;g[a>>2]=(d*+g[b+192>>2]+ +g[b+184>>2]*e)*c;g[a+4>>2]=f;return}function Dg(a,b){a=a|0;b=+b;return+(+g[a+108>>2]*b)}function Eg(a){a=a|0;var b=0,e=0,f=0,i=0,j=0,k=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;b=l;l=l+144|0;e=b+136|0;f=b+128|0;i=b+120|0;j=b+112|0;k=b+104|0;m=b+96|0;n=b+88|0;o=b+80|0;p=b+64|0;q=b+48|0;r=b+32|0; -s=b+24|0;t=b+16|0;u=b+8|0;v=c[(c[a+48>>2]|0)+8>>2]|0;w=c[(c[a+52>>2]|0)+8>>2]|0;am(3469,b);c[u>>2]=v;am(4137,u);c[t>>2]=w;am(4163,t);c[s>>2]=d[a+61>>0];am(4189,s);x=+g[a+72>>2];h[r>>3]=+g[a+68>>2];h[r+8>>3]=x;am(4310,r);x=+g[a+80>>2];h[q>>3]=+g[a+76>>2];h[q+8>>3]=x;am(4352,q);x=+g[a+88>>2];h[p>>3]=+g[a+84>>2];h[p+8>>3]=x;am(3909,p);h[o>>3]=+g[a+100>>2];am(3750,o);c[n>>2]=d[a+136>>0];am(3782,n);h[m>>3]=+g[a+120>>2];am(3496,m);h[k>>3]=+g[a+124>>2];am(3530,k);c[j>>2]=d[a+137>>0];am(3949,j);h[i>>3]=+g[a+ -132>>2];am(3979,i);h[f>>3]=+g[a+128>>2];am(3564,f);c[e>>2]=c[a+56>>2];am(4467,e);l=b;return}function Fg(a){a=a|0;fn(a);return}function Gg(b,d){b=b|0;d=d|0;var e=0,f=0,h=0,i=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,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;e=c[b+48>>2]|0;f=c[e+8>>2]|0;h=b+144|0;c[h>>2]=f;i=c[b+52>>2]|0; -k=c[i+8>>2]|0;l=b+148|0;c[l>>2]=k;m=e+44|0;n=c[m>>2]|0;o=c[m+4>>2]|0;m=b+152|0;c[m>>2]=n;c[m+4>>2]=o;m=i+44|0;p=c[m>>2]|0;q=c[m+4>>2]|0;m=b+160|0;c[m>>2]=p;c[m+4>>2]=q;m=c[e+136>>2]|0;c[b+168>>2]=m;r=c[i+136>>2]|0;c[b+172>>2]=r;s=c[e+144>>2]|0;c[b+176>>2]=s;e=c[i+144>>2]|0;c[b+180>>2]=e;i=c[d+28>>2]|0;t=+g[i+(f*12|0)+8>>2];u=d+32|0;v=c[u>>2]|0;w=c[v+(f*12|0)>>2]|0;x=c[v+(f*12|0)+4>>2]|0;y=+g[v+(f*12|0)+8>>2];z=+g[i+(k*12|0)+8>>2];A=c[v+(k*12|0)>>2]|0;B=c[v+(k*12|0)+4>>2]|0;C=+g[v+(k*12|0)+8>>2];D= -+F(+t);G=+E(+t);t=+F(+z);H=+E(+z);z=+g[b+68>>2]-(c[j>>2]=n,+g[j>>2]);I=+g[b+72>>2]-(c[j>>2]=o,+g[j>>2]);J=G*z-D*I;K=D*z+G*I;I=+g[b+76>>2]-(c[j>>2]=p,+g[j>>2]);z=+g[b+80>>2]-(c[j>>2]=q,+g[j>>2]);L=H*I-t*z;M=t*I+H*z;z=+g[i+(k*12|0)>>2]-+g[i+(f*12|0)>>2]+L-J;H=+g[i+(k*12|0)+4>>2]-+g[i+(f*12|0)+4>>2]+M-K;I=(c[j>>2]=m,+g[j>>2]);t=(c[j>>2]=r,+g[j>>2]);N=(c[j>>2]=s,+g[j>>2]);O=(c[j>>2]=e,+g[j>>2]);P=+g[b+84>>2];Q=+g[b+88>>2];R=G*P-D*Q;S=D*P+G*Q;g[b+184>>2]=R;g[b+188>>2]=S;Q=J+z;J=K+H;K=Q*S-J*R;g[b+208>> -2]=K;P=L*S-M*R;g[b+212>>2]=P;T=I+t;U=N*K;V=O*P;W=P*V+(T+K*U);g[b+252>>2]=W>0?1/W:W;X=+g[b+92>>2];Y=+g[b+96>>2];Z=G*X-D*Y;_=D*X+G*Y;g[b+192>>2]=Z;g[b+196>>2]=_;Y=Q*_-J*Z;g[b+200>>2]=Y;J=L*_-M*Z;g[b+204>>2]=J;M=N*Y;L=O*J;Q=M+L;G=M*K+L*P;X=N+O;D=U+V;g[b+216>>2]=J*L+(T+Y*M);g[b+220>>2]=Q;g[b+224>>2]=G;g[b+228>>2]=Q;g[b+232>>2]=X==0?1:X;g[b+236>>2]=D;g[b+240>>2]=G;g[b+244>>2]=D;g[b+248>>2]=W;do if(!(a[b+136>>0]|0)){c[b+140>>2]=0;g[b+112>>2]=0}else{W=z*R+H*S;D=+g[b+124>>2];G=+g[b+120>>2];X=D-G;if((X>0? -X:-X)<.009999999776482582){c[b+140>>2]=3;break}if(W<=G){e=b+140|0;if((c[e>>2]|0)==1)break;c[e>>2]=1;g[b+112>>2]=0;break}e=b+140|0;if(W>=D)if((c[e>>2]|0)==2)break;else $=2;else $=0;c[e>>2]=$;g[b+112>>2]=0}while(0);if(!(a[b+137>>0]|0))g[b+116>>2]=0;if(!(a[d+24>>0]|0)){$=b+104|0;c[$>>2]=0;c[$+4>>2]=0;c[$+8>>2]=0;c[$+12>>2]=0;aa=y;ba=C;ca=A;da=w;ea=B;fa=x;ga=c[u>>2]|0;ha=c[h>>2]|0;ia=ga+(ha*12|0)|0;c[ia>>2]=da;ja=ga+(ha*12|0)+4|0;c[ja>>2]=fa;ka=c[u>>2]|0;la=c[h>>2]|0;ma=ka+(la*12|0)+8|0;g[ma>>2]=aa;na= -c[l>>2]|0;oa=ka+(na*12|0)|0;c[oa>>2]=ca;pa=ka+(na*12|0)+4|0;c[pa>>2]=ea;qa=c[u>>2]|0;ra=c[l>>2]|0;sa=qa+(ra*12|0)+8|0;g[sa>>2]=ba;return}else{H=+g[d+8>>2];d=b+104|0;z=H*+g[d>>2];g[d>>2]=z;d=b+108|0;D=H*+g[d>>2];g[d>>2]=D;d=b+112|0;W=H*+g[d>>2];g[d>>2]=W;d=b+116|0;G=H*+g[d>>2];g[d>>2]=G;H=G+W;W=z*Z+R*H;R=z*_+H*S;d=(g[j>>2]=(c[j>>2]=w,+g[j>>2])-I*W,c[j>>2]|0);w=(g[j>>2]=(c[j>>2]=x,+g[j>>2])-I*R,c[j>>2]|0);x=(g[j>>2]=(c[j>>2]=A,+g[j>>2])+t*W,c[j>>2]|0);aa=y-N*(z*Y+D+H*K);ba=C+O*(D+z*J+H*P);ca=x;da=d; -ea=(g[j>>2]=(c[j>>2]=B,+g[j>>2])+t*R,c[j>>2]|0);fa=w;ga=c[u>>2]|0;ha=c[h>>2]|0;ia=ga+(ha*12|0)|0;c[ia>>2]=da;ja=ga+(ha*12|0)+4|0;c[ja>>2]=fa;ka=c[u>>2]|0;la=c[h>>2]|0;ma=ka+(la*12|0)+8|0;g[ma>>2]=aa;na=c[l>>2]|0;oa=ka+(na*12|0)|0;c[oa>>2]=ca;pa=ka+(na*12|0)+4|0;c[pa>>2]=ea;qa=c[u>>2]|0;ra=c[l>>2]|0;sa=qa+(ra*12|0)+8|0;g[sa>>2]=ba;return}}function Hg(b,d){b=b|0;d=d|0;var e=0,f=0,h=0,i=0,k=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;e=l;l=l+32|0;f=e+20|0;h=e+8|0;i=e;k=d+32|0;m=c[k>>2]|0;n=b+144|0;o=c[n>>2]|0;p=c[m+(o*12|0)>>2]|0;q=c[m+(o*12|0)+4>>2]|0;r=+g[m+(o*12|0)+8>>2];o=b+148|0;s=c[o>>2]|0;t=c[m+(s*12|0)>>2]|0;u=c[m+(s*12|0)+4>>2]|0;v=+g[m+(s*12|0)+8>>2];w=+g[b+168>>2];x=+g[b+172>>2];y=+g[b+176>>2];z=+g[b+180>>2];if((a[b+137>>0]|0)!=0?(c[b+ -140>>2]|0)!=3:0){A=(c[j>>2]=t,+g[j>>2]);B=(c[j>>2]=p,+g[j>>2]);C=(c[j>>2]=u,+g[j>>2]);D=(c[j>>2]=q,+g[j>>2]);E=+g[b+184>>2];F=+g[b+188>>2];G=+g[b+212>>2];H=+g[b+208>>2];s=b+116|0;I=+g[s>>2];J=+g[d>>2]*+g[b+128>>2];K=I+ +g[b+252>>2]*(+g[b+132>>2]-((A-B)*E+(C-D)*F+v*G-r*H));L=-J;M=K>2]=J;M=J-I;I=E*M;E=F*M;s=(g[j>>2]=B-w*I,c[j>>2]|0);d=(g[j>>2]=D-w*E,c[j>>2]|0);m=(g[j>>2]=A+x*I,c[j>>2]|0);N=r-y*(H*M);O=v+z*(G*M);P=m;Q=s;R=(g[j>>2]=C+x*E,c[j>>2]|0);S=d}else{N=r;O=v;P=t;Q=p;R=u;S= -q}v=(c[j>>2]=P,+g[j>>2]);r=(c[j>>2]=Q,+g[j>>2]);E=v-r;C=(c[j>>2]=R,+g[j>>2]);M=(c[j>>2]=S,+g[j>>2]);G=C-M;S=b+192|0;R=b+196|0;Q=b+204|0;P=b+200|0;H=E*+g[S>>2]+G*+g[R>>2]+O*+g[Q>>2]-N*+g[P>>2];I=O-N;if(a[b+136>>0]|0?(q=b+140|0,c[q>>2]|0):0){u=b+184|0;p=b+188|0;t=b+212|0;d=b+208|0;A=+g[b+104>>2];s=b+108|0;D=+g[s>>2];m=b+112|0;B=+g[m>>2];T=b+216|0;F=-H;J=-I;L=-(E*+g[u>>2]+G*+g[p>>2]+O*+g[t>>2]-N*+g[d>>2]);g[h>>2]=F;g[h+4>>2]=J;g[h+8>>2]=L;Rl(f,T,h);U=b+104|0;g[U>>2]=+g[f>>2]+ +g[U>>2];g[s>>2]=+g[f+4>> -2]+ +g[s>>2];L=+g[f+8>>2]+ +g[m>>2];g[m>>2]=L;switch(c[q>>2]|0){case 1:{V=L>0;W=9;break}case 2:{V=L<0;W=9;break}default:X=L}if((W|0)==9){G=V?L:0;g[m>>2]=G;X=G}G=X-B;X=J-G*+g[b+244>>2];g[h>>2]=F-+g[b+240>>2]*G;g[h+4>>2]=X;Sl(i,T,h);X=A+ +g[i>>2];G=D+ +g[i+4>>2];g[U>>2]=X;g[s>>2]=G;F=X-A;A=G-D;D=+g[m>>2]-B;Y=F*+g[S>>2]+D*+g[u>>2];Z=F*+g[R>>2]+D*+g[p>>2];_=A+F*+g[Q>>2]+D*+g[t>>2];$=F*+g[P>>2]+A+D*+g[d>>2];aa=w*Z;ba=w*Y;ca=x*Z;da=x*Y;ea=M-aa;fa=r-ba;ga=C+ca;ha=v+da;ia=y*$;ja=z*_;ka=N-ia;la=O+ja;ma=c[k>> -2]|0;na=c[n>>2]|0;oa=ma+(na*12|0)|0;g[oa>>2]=fa;pa=ma+(na*12|0)+4|0;g[pa>>2]=ea;qa=c[k>>2]|0;ra=c[n>>2]|0;sa=qa+(ra*12|0)+8|0;g[sa>>2]=ka;ta=c[o>>2]|0;ua=qa+(ta*12|0)|0;g[ua>>2]=ha;va=qa+(ta*12|0)+4|0;g[va>>2]=ga;wa=c[k>>2]|0;xa=c[o>>2]|0;ya=wa+(xa*12|0)+8|0;g[ya>>2]=la;l=e;return}g[h>>2]=-H;g[h+4>>2]=-I;Sl(f,b+216|0,h);I=+g[f>>2];h=b+104|0;g[h>>2]=I+ +g[h>>2];H=+g[f+4>>2];f=b+108|0;g[f>>2]=H+ +g[f>>2];Y=I*+g[S>>2];Z=I*+g[R>>2];_=H+I*+g[Q>>2];$=I*+g[P>>2]+H;aa=w*Z;ba=w*Y;ca=x*Z;da=x*Y;ea=M-aa;fa= -r-ba;ga=C+ca;ha=v+da;ia=y*$;ja=z*_;ka=N-ia;la=O+ja;ma=c[k>>2]|0;na=c[n>>2]|0;oa=ma+(na*12|0)|0;g[oa>>2]=fa;pa=ma+(na*12|0)+4|0;g[pa>>2]=ea;qa=c[k>>2]|0;ra=c[n>>2]|0;sa=qa+(ra*12|0)+8|0;g[sa>>2]=ka;ta=c[o>>2]|0;ua=qa+(ta*12|0)|0;g[ua>>2]=ha;va=qa+(ta*12|0)+4|0;g[va>>2]=ga;wa=c[k>>2]|0;xa=c[o>>2]|0;ya=wa+(xa*12|0)+8|0;g[ya>>2]=la;l=e;return}function Ig(b,d){b=b|0;d=d|0;var e=0,f=0,h=0,i=0,j=0,k=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,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,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=l;l=l+64|0;f=e+24|0;h=e+12|0;i=e;j=d+28|0;d=c[j>>2]|0;k=b+144|0;m=c[k>>2]|0;n=+g[d+(m*12|0)>>2];o=+g[d+(m*12|0)+4>>2];p=+g[d+(m*12|0)+8>>2];m=b+148|0;q=c[m>>2]|0;r=+g[d+(q*12|0)>>2];s=+g[d+(q*12|0)+4>>2];t=+g[d+(q*12|0)+8>>2];u= -+F(+p);v=+E(+p);w=+F(+t);x=+E(+t);y=+g[b+168>>2];z=+g[b+172>>2];A=+g[b+176>>2];B=+g[b+180>>2];C=+g[b+68>>2]-+g[b+152>>2];D=+g[b+72>>2]-+g[b+156>>2];G=v*C-u*D;H=u*C+v*D;D=+g[b+76>>2]-+g[b+160>>2];C=+g[b+80>>2]-+g[b+164>>2];I=x*D-w*C;J=w*D+x*C;C=r+I-n-G;x=s+J-o-H;D=+g[b+84>>2];w=+g[b+88>>2];K=v*D-u*w;L=u*D+v*w;w=G+C;G=H+x;H=L*w-K*G;D=I*L-J*K;M=+g[b+92>>2];N=+g[b+96>>2];O=v*M-u*N;P=u*M+v*N;N=P*w-O*G;G=I*P-J*O;J=O*C+P*x;I=t-p-+g[b+100>>2];w=-J;v=J>0?J:w;J=-I;M=I>0?I:J;a:do if(!(a[b+136>>0]|0)){Q=v;R= -0;S=0}else{I=K*C+L*x;u=+g[b+124>>2];T=+g[b+120>>2];U=u-T;do if((U>0?U:-U)<.009999999776482582){V=I<.20000000298023224?I:.20000000298023224;W=V<-.20000000298023224?-.20000000298023224:V;X=I>0?I:-I}else{if(I<=T){V=I-T+.004999999888241291;Y=V<0?V:0;W=Y<-.20000000298023224?-.20000000298023224:Y;X=T-I;break}if(!(I>=u)){Q=v;R=0;S=0;break a}Y=I-u;V=Y+-.004999999888241291;Z=V<.20000000298023224?V:.20000000298023224;W=Z<0?0:Z;X=Y}while(0);Q=v>X?v:X;R=1;S=W}while(0);W=y+z;X=A+B;v=A*N;x=B*G;C=x+v;b=X==0;u=G* -x+(W+N*v);if(R){I=D*x+H*v;v=A*H;x=B*D;T=x+v;g[f>>2]=u;g[f+4>>2]=C;g[f+8>>2]=I;g[f+12>>2]=C;g[f+16>>2]=b?1:X;g[f+20>>2]=T;g[f+24>>2]=I;g[f+28>>2]=T;g[f+32>>2]=D*x+(W+H*v);g[i>>2]=w;g[i+4>>2]=J;g[i+8>>2]=-S;Rl(h,f,i);_=+g[h+8>>2];$=+g[h>>2];aa=+g[h+4>>2];ba=O*$;ca=P*$;da=K*_;ea=L*_;fa=ba+da;ga=ca+ea;ha=N*$;ia=ha+aa;ja=H*_;ka=ia+ja;la=G*$;ma=la+aa;na=D*_;oa=ma+na;pa=y*fa;qa=y*ga;ra=n-pa;sa=o-qa;ta=A*ka;ua=p-ta;va=z*fa;wa=z*ga;xa=r+va;ya=s+wa;za=B*oa;Aa=t+za;Ba=c[j>>2]|0;Ca=c[k>>2]|0;Da=Ba+(Ca*12|0)| -0;g[Da>>2]=ra;Ea=Ba+(Ca*12|0)+4|0;g[Ea>>2]=sa;Fa=c[j>>2]|0;Ga=c[k>>2]|0;Ha=Fa+(Ga*12|0)+8|0;g[Ha>>2]=ua;Ia=c[m>>2]|0;Ja=Fa+(Ia*12|0)|0;g[Ja>>2]=xa;Ka=Fa+(Ia*12|0)+4|0;g[Ka>>2]=ya;La=c[j>>2]|0;Ma=c[m>>2]|0;Na=La+(Ma*12|0)+8|0;g[Na>>2]=Aa;Oa=Q<=.004999999888241291;Pa=M<=.03490658849477768;Qa=Pa&Oa;l=e;return Qa|0}else{S=b?1:X;X=S*u-C*C;v=X!=0?1/X:X;_=0;$=(S*w-C*J)*v;aa=(u*J-C*w)*v;ba=O*$;ca=P*$;da=K*_;ea=L*_;fa=ba+da;ga=ca+ea;ha=N*$;ia=ha+aa;ja=H*_;ka=ia+ja;la=G*$;ma=la+aa;na=D*_;oa=ma+na;pa=y*fa;qa= -y*ga;ra=n-pa;sa=o-qa;ta=A*ka;ua=p-ta;va=z*fa;wa=z*ga;xa=r+va;ya=s+wa;za=B*oa;Aa=t+za;Ba=c[j>>2]|0;Ca=c[k>>2]|0;Da=Ba+(Ca*12|0)|0;g[Da>>2]=ra;Ea=Ba+(Ca*12|0)+4|0;g[Ea>>2]=sa;Fa=c[j>>2]|0;Ga=c[k>>2]|0;Ha=Fa+(Ga*12|0)+8|0;g[Ha>>2]=ua;Ia=c[m>>2]|0;Ja=Fa+(Ia*12|0)|0;g[Ja>>2]=xa;Ka=Fa+(Ia*12|0)+4|0;g[Ka>>2]=ya;La=c[j>>2]|0;Ma=c[m>>2]|0;Na=La+(Ma*12|0)+8|0;g[Na>>2]=Aa;Oa=Q<=.004999999888241291;Pa=M<=.03490658849477768;Qa=Pa&Oa;l=e;return Qa|0}return 0}function Jg(a,b,d,e,f){a=a|0;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;c[a+8>>2]=b;c[a+12>>2]=d;h=+g[e>>2]-+g[b+12>>2];i=e+4|0;j=+g[i>>2]-+g[b+16>>2];k=b+24|0;l=+g[k>>2];m=b+20|0;n=+g[m>>2];g[a+20>>2]=h*l+j*n;g[a+24>>2]=l*j-h*n;n=+g[e>>2]-+g[d+12>>2];h=+g[i>>2]-+g[d+16>>2];j=+g[d+24>>2];l=+g[d+20>>2];g[a+28>>2]=n*j+h*l;g[a+32>>2]=j*h-n*l;l=+g[k>>2];n=+g[f>>2];h=+g[m>>2];j=+g[f+4>>2];g[a+36>>2]=l*n+h*j;g[a+40>>2]=l*j-n*h;g[a+44>>2]=+g[d+72>>2]-+g[b+72>>2];return}function Kg(b,d){b=b|0;d=d|0;var e=0,f=0,h=0,i=0,k=0,l=0,m=0,n=0,o=0,p=0;ch(b, -d);c[b>>2]=1332;e=b+84|0;f=d+20|0;h=c[f+4>>2]|0;i=b+68|0;c[i>>2]=c[f>>2];c[i+4>>2]=h;h=d+28|0;i=c[h+4>>2]|0;f=b+76|0;c[f>>2]=c[h>>2];c[f+4>>2]=i;i=d+36|0;f=c[i>>2]|0;h=c[i+4>>2]|0;i=e;c[i>>2]=f;c[i+4>>2]=h;k=(c[j>>2]=f,+g[j>>2]);l=(c[j>>2]=h,+g[j>>2]);m=+C(+(k*k+l*l));n=1/m;if(m<1.1920928955078125E-7){o=l;p=f}else{m=l*n;l=k*n;g[e>>2]=l;g[b+88>>2]=m;o=m;p=(g[j>>2]=l,c[j>>2]|0)}g[b+92>>2]=-o;c[b+96>>2]=p;c[b+100>>2]=c[d+44>>2];p=b+104|0;g[b+252>>2]=0;c[p>>2]=0;c[p+4>>2]=0;c[p+8>>2]=0;c[p+12>>2]=0;c[b+ -120>>2]=c[d+52>>2];c[b+124>>2]=c[d+56>>2];c[b+128>>2]=c[d+64>>2];c[b+132>>2]=c[d+68>>2];a[b+136>>0]=a[d+48>>0]|0;a[b+137>>0]=a[d+60>>0]|0;c[b+140>>2]=0;d=b+184|0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;c[d+12>>2]=0;return}function Lg(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,n=0,o=0;b=c[a+48>>2]|0;d=+g[b+24>>2];e=+g[a+68>>2];f=+g[b+20>>2];h=+g[a+72>>2];i=c[a+52>>2]|0;j=+g[i+24>>2];k=+g[a+76>>2];l=+g[i+20>>2];m=+g[a+80>>2];n=+g[a+84>>2];o=+g[a+88>>2];return+((+g[i+12>>2]+(j*k-l*m)-(+g[b+12>>2]+ -(d*e-f*h)))*(d*n-f*o)+(k*l+j*m+ +g[i+16>>2]-(e*f+d*h+ +g[b+16>>2]))*(f*n+d*o))}function Mg(b){b=b|0;return(a[b+136>>0]|0)!=0|0}function Ng(f,h){f=f|0;h=h|0;var i=0,j=0,k=0,l=0;i=f+136|0;if((h&1|0)==(d[i>>0]|0|0))return;j=c[f+48>>2]|0;k=j+4|0;l=e[k>>1]|0;if(!(l&2)){b[k>>1]=l|2;g[j+160>>2]=0}j=c[f+52>>2]|0;l=j+4|0;k=e[l>>1]|0;if(!(k&2)){b[l>>1]=k|2;g[j+160>>2]=0}a[i>>0]=h&1;g[f+112>>2]=0;return}function Og(b){b=b|0;return(a[b+137>>0]|0)!=0|0}function Pg(d,f){d=d|0;f=f|0;var h=0,i=0,j=0,k=0;h=f&1;f= -c[d+48>>2]|0;i=f+4|0;j=e[i>>1]|0;if(!(j&2)){b[i>>1]=j|2;g[f+160>>2]=0}f=c[d+52>>2]|0;j=f+4|0;i=e[j>>1]|0;if(i&2|0){k=d+137|0;a[k>>0]=h;return}b[j>>1]=i|2;g[f+160>>2]=0;k=d+137|0;a[k>>0]=h;return}function Qg(a,d){a=a|0;d=+d;var f=0,h=0,i=0,j=0;f=c[a+48>>2]|0;h=f+4|0;i=e[h>>1]|0;if(!(i&2)){b[h>>1]=i|2;g[f+160>>2]=0}f=c[a+52>>2]|0;i=f+4|0;h=e[i>>1]|0;if(h&2|0){j=a+132|0;g[j>>2]=d;return}b[i>>1]=h|2;g[f+160>>2]=0;j=a+132|0;g[j>>2]=d;return}function Rg(a,b){a=a|0;b=+b;return+(+g[a+116>>2]*b)}function Sg(a, -b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0,i=0,j=0;d=c[b+48>>2]|0;e=+g[d+24>>2];f=+g[b+68>>2];h=+g[d+20>>2];i=+g[b+72>>2];j=f*h+e*i+ +g[d+16>>2];g[a>>2]=+g[d+12>>2]+(e*f-h*i);g[a+4>>2]=j;return}function Tg(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0,i=0,j=0;d=c[b+52>>2]|0;e=+g[d+24>>2];f=+g[b+76>>2];h=+g[d+20>>2];i=+g[b+80>>2];j=f*h+e*i+ +g[d+16>>2];g[a>>2]=+g[d+12>>2]+(e*f-h*i);g[a+4>>2]=j;return}function Ug(a,b,c){a=a|0;b=b|0;c=+c;var d=0;d=+g[b+92>>2]*c;c=d*+g[b+108>>2];g[a>>2]=+g[b+104>>2]*d;g[a+4>>2]=c;return} -function Vg(a,b){a=a|0;b=+b;return 0}function Wg(a){a=a|0;var b=0,e=0,f=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0;b=l;l=l+80|0;e=b+72|0;f=b+64|0;i=b+48|0;j=b+32|0;k=b+24|0;m=b+16|0;n=b+8|0;o=c[(c[a+48>>2]|0)+8>>2]|0;p=c[(c[a+52>>2]|0)+8>>2]|0;am(3614,b);c[n>>2]=o;am(4137,n);c[m>>2]=p;am(4163,m);c[k>>2]=d[a+61>>0];am(4189,k);q=+g[a+72>>2];h[j>>3]=+g[a+68>>2];h[j+8>>3]=q;am(4310,j);q=+g[a+80>>2];h[i>>3]=+g[a+76>>2];h[i+8>>3]=q;am(4352,i);h[f>>3]=+g[a+84>>2];am(3636,f);c[e>>2]=c[a+56>>2];am(4467,e);l=b;return} -function Xg(a){a=a|0;fn(a);return}function Yg(b,d){b=b|0;d=d|0;var e=0,f=0,h=0,i=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,D=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;e=c[b+48>>2]|0;f=c[e+8>>2]|0;h=b+96|0;c[h>>2]=f;i=c[b+52>>2]|0;k=c[i+8>>2]|0;l=b+100|0;c[l>>2]=k;m=e+44|0;n=c[m>>2]|0;o=c[m+4>>2]|0;m=b+128|0;c[m>>2]=n;c[m+4>>2]=o;m=i+44|0;p=c[m>>2]|0;q=c[m+4>>2]|0;m=b+136|0;c[m>>2]=p;c[m+4>>2]=q;m=b+144|0;c[m>>2]=c[e+136>>2];r=b+148|0;c[r>>2]=c[i+ -136>>2];s=b+152|0;c[s>>2]=c[e+144>>2];e=b+156|0;c[e>>2]=c[i+144>>2];i=c[d+28>>2]|0;t=+g[i+(f*12|0)>>2];u=+g[i+(f*12|0)+4>>2];v=+g[i+(f*12|0)+8>>2];w=d+32|0;x=c[w>>2]|0;y=c[x+(f*12|0)>>2]|0;z=c[x+(f*12|0)+4>>2]|0;A=+g[x+(f*12|0)+8>>2];B=+g[i+(k*12|0)>>2];D=+g[i+(k*12|0)+4>>2];G=+g[i+(k*12|0)+8>>2];i=c[x+(k*12|0)>>2]|0;f=c[x+(k*12|0)+4>>2]|0;H=+g[x+(k*12|0)+8>>2];I=+F(+v);J=+E(+v);v=+F(+G);K=+E(+G);G=+g[b+68>>2]-(c[j>>2]=n,+g[j>>2]);L=+g[b+72>>2]-(c[j>>2]=o,+g[j>>2]);M=J*G-I*L;N=I*G+J*L;g[b+112>>2]= -M;g[b+116>>2]=N;L=+g[b+76>>2]-(c[j>>2]=p,+g[j>>2]);J=+g[b+80>>2]-(c[j>>2]=q,+g[j>>2]);G=K*L-v*J;I=v*L+K*J;g[b+120>>2]=G;g[b+124>>2]=I;J=B+G-t-M;t=D+I-u-N;q=b+104|0;g[q>>2]=J;p=b+108|0;g[p>>2]=t;u=+C(+(J*J+t*t));g[b+88>>2]=u;c[b+164>>2]=u-+g[b+84>>2]>0?2:0;if(!(u>.004999999888241291)){g[q>>2]=0;g[p>>2]=0;g[b+160>>2]=0;g[b+92>>2]=0;return}D=1/u;u=D*J;g[q>>2]=u;J=D*t;g[p>>2]=J;t=J*M-N*u;D=J*G-u*I;B=+g[m>>2];K=+g[s>>2];L=+g[r>>2];v=+g[e>>2];O=L+(B+t*(t*K))+D*(D*v);g[b+160>>2]=O!=0?1/O:0;if(!(a[d+24>> -0]|0)){g[b+92>>2]=0;P=A;Q=H;R=i;S=y;T=f;U=z}else{e=b+92|0;O=+g[d+8>>2]*+g[e>>2];g[e>>2]=O;D=O*u;u=O*J;e=(g[j>>2]=(c[j>>2]=y,+g[j>>2])-D*B,c[j>>2]|0);y=(g[j>>2]=(c[j>>2]=z,+g[j>>2])-u*B,c[j>>2]|0);z=(g[j>>2]=(c[j>>2]=i,+g[j>>2])+D*L,c[j>>2]|0);P=A-K*(u*M-D*N);Q=H+v*(u*G-D*I);R=z;S=e;T=(g[j>>2]=(c[j>>2]=f,+g[j>>2])+u*L,c[j>>2]|0);U=y}y=c[w>>2]|0;f=c[h>>2]|0;c[y+(f*12|0)>>2]=S;c[y+(f*12|0)+4>>2]=U;U=c[w>>2]|0;g[U+((c[h>>2]|0)*12|0)+8>>2]=P;h=c[l>>2]|0;c[U+(h*12|0)>>2]=R;c[U+(h*12|0)+4>>2]=T;g[(c[w>> -2]|0)+((c[l>>2]|0)*12|0)+8>>2]=Q;return}function Zg(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,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;d=b+32|0;e=c[d>>2]|0;f=a+96|0;h=c[f>>2]|0;i=e+(h*12|0)|0;j=+g[i>>2];k=e+(h*12|0)+4|0;l=+g[k>>2];m=+g[e+(h*12|0)+8>>2];h=a+100|0;n=c[h>>2]|0;o=+g[e+(n*12|0)>>2];p=+g[e+(n*12|0)+4>>2];q=+g[e+(n*12|0)+8>>2];r=+g[a+116>>2];s=+g[a+112>>2];t=+g[a+124>>2];u=+g[a+120>>2];v=+g[a+88>>2]-+g[a+84>>2];w=+g[a+104>>2];x=+g[a+108>>2];y=(o-q*t-(j-m*r))*w+ -(p+q*u-(l+m*s))*x;if(v<0)z=y+v*+g[b+4>>2];else z=y;b=a+92|0;y=+g[b>>2];v=y-z*+g[a+160>>2];z=v>0?0:v;g[b>>2]=z;v=z-y;y=w*v;w=x*v;v=+g[a+144>>2];x=m-+g[a+152>>2]*(w*s-y*r);r=+g[a+148>>2];s=q+ +g[a+156>>2]*(w*u-y*t);g[i>>2]=j-v*y;g[k>>2]=l-v*w;k=c[d>>2]|0;g[k+((c[f>>2]|0)*12|0)+8>>2]=x;f=c[h>>2]|0;g[k+(f*12|0)>>2]=o+y*r;g[k+(f*12|0)+4>>2]=p+w*r;g[(c[d>>2]|0)+((c[h>>2]|0)*12|0)+8>>2]=s;return}function _g(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,s=0,t=0,u=0,v=0,w=0, -x=0;d=b+28|0;b=c[d>>2]|0;e=a+96|0;f=c[e>>2]|0;h=+g[b+(f*12|0)>>2];i=+g[b+(f*12|0)+4>>2];j=+g[b+(f*12|0)+8>>2];f=a+100|0;k=c[f>>2]|0;l=+g[b+(k*12|0)>>2];m=+g[b+(k*12|0)+4>>2];n=+g[b+(k*12|0)+8>>2];o=+F(+j);p=+E(+j);q=+F(+n);r=+E(+n);s=+g[a+68>>2]-+g[a+128>>2];t=+g[a+72>>2]-+g[a+132>>2];u=p*s-o*t;v=o*s+p*t;t=+g[a+76>>2]-+g[a+136>>2];p=+g[a+80>>2]-+g[a+140>>2];s=r*t-q*p;o=q*t+r*p;p=l+s-h-u;r=m+o-i-v;t=+C(+(p*p+r*r));k=t<1.1920928955078125E-7;q=1/t;w=k?0:t;b=a+84|0;t=w-+g[b>>2];x=t<.20000000298023224? -t:.20000000298023224;t=-(+g[a+160>>2]*(x<0?0:x));x=(k?p:q*p)*t;p=(k?r:q*r)*t;t=+g[a+144>>2];r=j-+g[a+152>>2]*(u*p-v*x);v=+g[a+148>>2];u=n+ +g[a+156>>2]*(s*p-o*x);a=c[d>>2]|0;k=c[e>>2]|0;g[a+(k*12|0)>>2]=h-t*x;g[a+(k*12|0)+4>>2]=i-t*p;k=c[d>>2]|0;g[k+((c[e>>2]|0)*12|0)+8>>2]=r;e=c[f>>2]|0;g[k+(e*12|0)>>2]=l+v*x;g[k+(e*12|0)+4>>2]=m+v*p;g[(c[d>>2]|0)+((c[f>>2]|0)*12|0)+8>>2]=u;return w-+g[b>>2]<.004999999888241291|0}function $g(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;ch(a,b);c[a>>2]=1384;d=b+20|0;e=c[d+4>> -2]|0;f=a+68|0;c[f>>2]=c[d>>2];c[f+4>>2]=e;e=b+28|0;f=c[e+4>>2]|0;d=a+76|0;c[d>>2]=c[e>>2];c[d+4>>2]=f;c[a+84>>2]=c[b+36>>2];g[a+160>>2]=0;g[a+92>>2]=0;c[a+164>>2]=0;g[a+88>>2]=0;return}function ah(a,b){a=a|0;b=b|0;var d=0,e=0;do switch(c[a>>2]|0){case 3:{d=Pl(b,176)|0;Uf(d,a);e=d;return e|0}case 5:{d=Pl(b,168)|0;uf(d,a);e=d;return e|0}case 2:{d=Pl(b,256)|0;Kg(d,a);e=d;return e|0}case 1:{d=Pl(b,228)|0;ph(d,a);e=d;return e|0}case 4:{d=Pl(b,196)|0;Th(d,a);e=d;return e|0}case 6:{d=Pl(b,276)|0;yg(d,a); -e=d;return e|0}case 7:{d=Pl(b,224)|0;Gh(d,a);e=d;return e|0}case 8:{d=Pl(b,208)|0;og(d,a);e=d;return e|0}case 9:{d=Pl(b,180)|0;dg(d,a);e=d;return e|0}case 10:{d=Pl(b,168)|0;$g(d,a);e=d;return e|0}case 11:{d=Pl(b,192)|0;Hf(d,a);e=d;return e|0}default:{e=0;return e|0}}while(0);return 0}function bh(a,b){a=a|0;b=b|0;Pa[c[(c[a>>2]|0)+24>>2]&127](a);do switch(c[a+4>>2]|0){case 3:{Ql(b,a,176);return}case 5:{Ql(b,a,168);return}case 2:{Ql(b,a,256);return}case 1:{Ql(b,a,228);return}case 4:{Ql(b,a,196);return}case 6:{Ql(b, -a,276);return}case 7:{Ql(b,a,224);return}case 8:{Ql(b,a,208);return}case 9:{Ql(b,a,180);return}case 10:{Ql(b,a,168);return}case 11:{Ql(b,a,192);return}default:return}while(0)}function ch(b,d){b=b|0;d=d|0;c[b>>2]=1436;c[b+4>>2]=c[d>>2];c[b+8>>2]=0;c[b+12>>2]=0;c[b+48>>2]=c[d+8>>2];c[b+52>>2]=c[d+12>>2];c[b+56>>2]=0;a[b+61>>0]=a[d+16>>0]|0;a[b+60>>0]=0;c[b+64>>2]=c[d+4>>2];d=b+16|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;return}function dh(a){a= -a|0;a=l;l=l+16|0;am(3677,a);l=a;return}function eh(a){a=a|0;fn(a);return}function fh(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0,i=0,j=0;d=c[b+48>>2]|0;e=+g[d+24>>2];f=+g[b+68>>2];h=+g[d+20>>2];i=+g[b+72>>2];j=f*h+e*i+ +g[d+16>>2];g[a>>2]=+g[d+12>>2]+(e*f-h*i);g[a+4>>2]=j;return}function gh(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0,i=0,j=0;d=c[b+52>>2]|0;e=+g[d+24>>2];f=+g[b+76>>2];h=+g[d+20>>2];i=+g[b+80>>2];j=f*h+e*i+ +g[d+16>>2];g[a>>2]=+g[d+12>>2]+(e*f-h*i);g[a+4>>2]=j;return}function hh(a,b,c){a=a|0;b=b| -0;c=+c;var d=0;d=+g[b+88>>2]*c;g[a>>2]=+g[b+84>>2]*c;g[a+4>>2]=d;return}function ih(a,b){a=a|0;b=+b;return+(+g[a+92>>2]*b)}function jh(a){a=a|0;var b=0,e=0,f=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;b=l;l=l+128|0;e=b+120|0;f=b+112|0;i=b+104|0;j=b+96|0;k=b+88|0;m=b+80|0;n=b+72|0;o=b+64|0;p=b+48|0;q=b+32|0;r=b+24|0;s=b+16|0;t=b+8|0;u=c[(c[a+48>>2]|0)+8>>2]|0;v=c[(c[a+52>>2]|0)+8>>2]|0;am(3724,b);c[t>>2]=u;am(4137,t);c[s>>2]=v;am(4163,s);c[r>>2]=d[a+61>>0];am(4189,r);w=+g[a+72>>2];h[q>> -3]=+g[a+68>>2];h[q+8>>3]=w;am(4310,q);w=+g[a+80>>2];h[p>>3]=+g[a+76>>2];h[p+8>>3]=w;am(4352,p);h[o>>3]=+g[a+116>>2];am(3750,o);c[n>>2]=d[a+112>>0];am(3782,n);h[m>>3]=+g[a+120>>2];am(3812,m);h[k>>3]=+g[a+124>>2];am(3840,k);c[j>>2]=d[a+100>>0];am(3949,j);h[i>>3]=+g[a+108>>2];am(3979,i);h[f>>3]=+g[a+104>>2];am(4007,f);c[e>>2]=c[a+56>>2];am(4467,e);l=b;return}function kh(a){a=a|0;fn(a);return}function lh(b,d){b=b|0;d=d|0;var e=0,f=0,h=0,i=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,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;e=c[b+48>>2]|0;f=c[e+8>>2]|0;h=b+128|0;c[h>>2]=f;i=c[b+52>>2]|0;k=c[i+8>>2]|0;l=b+132|0;c[l>>2]=k;m=e+44|0;n=c[m>>2]|0;o=c[m+4>>2]|0;m=b+152|0;c[m>>2]=n;c[m+4>>2]=o;m=i+44|0;p=c[m>>2]|0;q=c[m+4>>2]|0;m=b+160|0;c[m>>2]=p;c[m+4>>2]=q;m=c[e+136>>2]|0;c[b+168>>2]=m;r=c[i+136>>2]|0;c[b+172>>2]=r;s=c[e+144>>2]|0;c[b+176>>2]=s;e=c[i+144>>2]|0;c[b+180>>2]=e;i=c[d+28>>2]| -0;t=+g[i+(f*12|0)+8>>2];u=d+32|0;v=c[u>>2]|0;w=c[v+(f*12|0)>>2]|0;x=c[v+(f*12|0)+4>>2]|0;y=+g[v+(f*12|0)+8>>2];z=+g[i+(k*12|0)+8>>2];i=c[v+(k*12|0)>>2]|0;f=c[v+(k*12|0)+4>>2]|0;A=+g[v+(k*12|0)+8>>2];B=+F(+t);C=+E(+t);D=+F(+z);G=+E(+z);H=+g[b+68>>2]-(c[j>>2]=n,+g[j>>2]);I=+g[b+72>>2]-(c[j>>2]=o,+g[j>>2]);J=C*H-B*I;K=B*H+C*I;g[b+136>>2]=J;g[b+140>>2]=K;I=+g[b+76>>2]-(c[j>>2]=p,+g[j>>2]);C=+g[b+80>>2]-(c[j>>2]=q,+g[j>>2]);H=G*I-D*C;B=D*I+G*C;g[b+144>>2]=H;g[b+148>>2]=B;C=(c[j>>2]=m,+g[j>>2]);G=(c[j>> -2]=r,+g[j>>2]);I=(c[j>>2]=s,+g[j>>2]);D=(c[j>>2]=e,+g[j>>2]);L=I+D;e=L==0;M=C+G;g[b+184>>2]=M+I*(K*K)+D*(B*B);N=-(I*(K*J))-D*(B*H);g[b+196>>2]=N;O=-(I*K)-D*B;g[b+208>>2]=O;g[b+188>>2]=N;g[b+200>>2]=M+I*(J*J)+D*(H*H);M=I*J+D*H;g[b+212>>2]=M;g[b+192>>2]=O;g[b+204>>2]=M;g[b+216>>2]=L;g[b+220>>2]=L>0?1/L:L;if(e|(a[b+100>>0]|0)==0)g[b+96>>2]=0;do if(e|(a[b+112>>0]|0)==0)c[b+224>>2]=0;else{L=z-t-+g[b+116>>2];M=+g[b+124>>2];O=+g[b+120>>2];N=M-O;if((N>0?N:-N)<.06981317698955536){c[b+224>>2]=3;break}if(L<= -O){s=b+224|0;if((c[s>>2]|0)!=1)g[b+92>>2]=0;c[s>>2]=1;break}s=b+224|0;if(!(L>=M)){c[s>>2]=0;g[b+92>>2]=0;break}if((c[s>>2]|0)!=2)g[b+92>>2]=0;c[s>>2]=2}while(0);if(!(a[d+24>>0]|0)){e=b+84|0;c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;c[e+12>>2]=0;P=y;Q=A;R=i;S=w;T=f;U=x;V=c[u>>2]|0;W=c[h>>2]|0;X=V+(W*12|0)|0;c[X>>2]=S;Y=V+(W*12|0)+4|0;c[Y>>2]=U;Z=c[u>>2]|0;_=c[h>>2]|0;$=Z+(_*12|0)+8|0;g[$>>2]=P;aa=c[l>>2]|0;ba=Z+(aa*12|0)|0;c[ba>>2]=R;ca=Z+(aa*12|0)+4|0;c[ca>>2]=T;da=c[u>>2]|0;ea=c[l>>2]|0;fa=da+(ea*12|0)+ -8|0;g[fa>>2]=Q;return}else{t=+g[d+8>>2];d=b+84|0;z=t*+g[d>>2];g[d>>2]=z;d=b+88|0;M=t*+g[d>>2];g[d>>2]=M;d=b+92|0;L=t*+g[d>>2];g[d>>2]=L;d=b+96|0;O=t*+g[d>>2];g[d>>2]=O;d=(g[j>>2]=(c[j>>2]=w,+g[j>>2])-C*z,c[j>>2]|0);w=(g[j>>2]=(c[j>>2]=x,+g[j>>2])-C*M,c[j>>2]|0);x=(g[j>>2]=(c[j>>2]=i,+g[j>>2])+G*z,c[j>>2]|0);P=y-I*(L+(O+(M*J-z*K)));Q=A+D*(L+(O+(M*H-z*B)));R=x;S=d;T=(g[j>>2]=(c[j>>2]=f,+g[j>>2])+G*M,c[j>>2]|0);U=w;V=c[u>>2]|0;W=c[h>>2]|0;X=V+(W*12|0)|0;c[X>>2]=S;Y=V+(W*12|0)+4|0;c[Y>>2]=U;Z=c[u>>2]| -0;_=c[h>>2]|0;$=Z+(_*12|0)+8|0;g[$>>2]=P;aa=c[l>>2]|0;ba=Z+(aa*12|0)|0;c[ba>>2]=R;ca=Z+(aa*12|0)+4|0;c[ca>>2]=T;da=c[u>>2]|0;ea=c[l>>2]|0;fa=da+(ea*12|0)+8|0;g[fa>>2]=Q;return}}function mh(b,d){b=b|0;d=d|0;var e=0,f=0,h=0,i=0,k=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;e=l; -l=l+48|0;f=e+28|0;h=e+16|0;i=e+8|0;k=e;m=d+32|0;n=c[m>>2]|0;o=b+128|0;p=c[o>>2]|0;q=c[n+(p*12|0)>>2]|0;r=c[n+(p*12|0)+4>>2]|0;s=+g[n+(p*12|0)+8>>2];p=b+132|0;t=c[p>>2]|0;u=c[n+(t*12|0)>>2]|0;v=c[n+(t*12|0)+4>>2]|0;w=+g[n+(t*12|0)+8>>2];x=+g[b+168>>2];y=+g[b+172>>2];z=+g[b+176>>2];A=+g[b+180>>2];t=z+A==0;if((a[b+100>>0]|0)!=0?!(t|(c[b+224>>2]|0)==3):0){n=b+96|0;B=+g[n>>2];C=+g[d>>2]*+g[b+104>>2];D=B-+g[b+220>>2]*(w-s-+g[b+108>>2]);E=-C;F=D>2]=C;F=C-B;G=s-z*F;H=w+A*F}else{G=s;H= -w}if(a[b+112>>0]|0?(n=b+224|0,!(t|(c[n>>2]|0)==0)):0){t=b+148|0;d=b+144|0;w=(c[j>>2]=u,+g[j>>2]);s=(c[j>>2]=v,+g[j>>2]);F=(c[j>>2]=q,+g[j>>2]);B=(c[j>>2]=r,+g[j>>2]);I=b+140|0;J=b+136|0;C=w-H*+g[t>>2]-F+G*+g[I>>2];E=s+H*+g[d>>2]-B-G*+g[J>>2];g[f>>2]=C;g[f+4>>2]=E;g[f+8>>2]=H-G;K=b+184|0;Rl(h,K,f);D=+g[h>>2];L=-D;M=+g[h+4>>2];N=-M;O=+g[h+8>>2];P=-O;a:do switch(c[n>>2]|0){case 3:{h=b+84|0;g[h>>2]=+g[h>>2]-D;h=b+88|0;g[h>>2]=+g[h>>2]-M;h=b+92|0;g[h>>2]=+g[h>>2]-O;Q=P;R=L;S=N;break}case 1:{h=b+84|0;T= -b+92|0;U=+g[T>>2];V=U-O;if(V<0){W=U*+g[b+212>>2]-E;g[i>>2]=U*+g[b+208>>2]-C;g[i+4>>2]=W;Sl(k,K,i);W=+g[k>>2];U=+g[k+4>>2];X=-+g[T>>2];g[h>>2]=W+ +g[h>>2];Y=b+88|0;g[Y>>2]=U+ +g[Y>>2];g[T>>2]=0;Q=X;R=W;S=U;break a}else{g[h>>2]=+g[h>>2]-D;h=b+88|0;g[h>>2]=+g[h>>2]-M;g[T>>2]=V;Q=P;R=L;S=N;break a}break}case 2:{T=b+84|0;h=b+92|0;V=+g[h>>2];U=V-O;if(U>0){W=V*+g[b+212>>2]-E;g[i>>2]=V*+g[b+208>>2]-C;g[i+4>>2]=W;Sl(k,K,i);W=+g[k>>2];V=+g[k+4>>2];X=-+g[h>>2];g[T>>2]=W+ +g[T>>2];Y=b+88|0;g[Y>>2]=V+ +g[Y>>2]; -g[h>>2]=0;Q=X;R=W;S=V;break a}else{g[T>>2]=+g[T>>2]-D;T=b+88|0;g[T>>2]=+g[T>>2]-M;g[h>>2]=U;Q=P;R=L;S=N;break a}break}default:{Q=P;R=L;S=N}}while(0);Z=Q+(S*+g[d>>2]-R*+g[t>>2]);_=Q+(S*+g[J>>2]-R*+g[I>>2]);$=w+y*R;aa=F-x*R;ba=s+y*S;ca=B-x*S;da=z*_;ea=A*Z;fa=G-da;ga=H+ea;ha=c[m>>2]|0;ia=c[o>>2]|0;ja=ha+(ia*12|0)|0;g[ja>>2]=aa;ka=ha+(ia*12|0)+4|0;g[ka>>2]=ca;la=c[m>>2]|0;ma=c[o>>2]|0;na=la+(ma*12|0)+8|0;g[na>>2]=fa;oa=c[p>>2]|0;pa=la+(oa*12|0)|0;g[pa>>2]=$;qa=la+(oa*12|0)+4|0;g[qa>>2]=ba;ra=c[m>>2]| -0;sa=c[p>>2]|0;ta=ra+(sa*12|0)+8|0;g[ta>>2]=ga;l=e;return}I=b+148|0;J=b+144|0;S=(c[j>>2]=u,+g[j>>2]);B=(c[j>>2]=v,+g[j>>2]);s=(c[j>>2]=q,+g[j>>2]);R=(c[j>>2]=r,+g[j>>2]);r=b+140|0;q=b+136|0;F=-(B+H*+g[J>>2]-R-G*+g[q>>2]);g[i>>2]=-(S-H*+g[I>>2]-s+G*+g[r>>2]);g[i+4>>2]=F;Sl(f,b+184|0,i);F=+g[f>>2];i=b+84|0;g[i>>2]=F+ +g[i>>2];w=+g[f+4>>2];f=b+88|0;g[f>>2]=w+ +g[f>>2];Z=w*+g[J>>2]-F*+g[I>>2];_=w*+g[q>>2]-F*+g[r>>2];$=S+y*F;aa=s-x*F;ba=B+y*w;ca=R-x*w;da=z*_;ea=A*Z;fa=G-da;ga=H+ea;ha=c[m>>2]|0;ia=c[o>> -2]|0;ja=ha+(ia*12|0)|0;g[ja>>2]=aa;ka=ha+(ia*12|0)+4|0;g[ka>>2]=ca;la=c[m>>2]|0;ma=c[o>>2]|0;na=la+(ma*12|0)+8|0;g[na>>2]=fa;oa=c[p>>2]|0;pa=la+(oa*12|0)|0;g[pa>>2]=$;qa=la+(oa*12|0)+4|0;g[qa>>2]=ba;ra=c[m>>2]|0;sa=c[p>>2]|0;ta=ra+(sa*12|0)+8|0;g[ta>>2]=ga;l=e;return}function nh(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,D=0,G=0,H=0,I=0,J=0;e=d+28|0;d=c[e>>2]|0;f=b+128|0;h=c[f>>2]|0;i=+g[d+(h*12|0)>>2];j=+g[d+(h*12|0)+4>>2];k=+g[d+ -(h*12|0)+8>>2];h=b+132|0;l=c[h>>2]|0;m=+g[d+(l*12|0)>>2];n=+g[d+(l*12|0)+4>>2];o=+g[d+(l*12|0)+8>>2];p=+g[b+176>>2];q=+g[b+180>>2];if((a[b+112>>0]|0)!=0?(l=c[b+224>>2]|0,!((l|0)==0|p+q==0)):0){r=o-k-+g[b+116>>2];switch(l|0){case 3:{s=r-+g[b+120>>2];t=s<.13962635397911072?s:.13962635397911072;s=t<-.13962635397911072?-.13962635397911072:t;u=s>0?s:-s;v=-(+g[b+220>>2]*s);break}case 1:{s=r-+g[b+120>>2];t=s+.03490658849477768;w=t<0?t:0;u=-s;v=-(+g[b+220>>2]*(w<-.13962635397911072?-.13962635397911072:w)); -break}case 2:{w=r-+g[b+124>>2];r=w+-.03490658849477768;s=r<.13962635397911072?r:.13962635397911072;u=w;v=-(+g[b+220>>2]*(s<0?0:s));break}default:{u=0;v=0}}x=k-v*p;y=o+v*q;z=u}else{x=k;y=o;z=0}o=+F(+x);k=+E(+x);u=+F(+y);v=+E(+y);s=+g[b+68>>2]-+g[b+152>>2];w=+g[b+72>>2]-+g[b+156>>2];r=k*s-o*w;t=o*s+k*w;w=+g[b+76>>2]-+g[b+160>>2];k=+g[b+80>>2]-+g[b+164>>2];s=v*w-u*k;o=u*w+v*k;k=m+s-i-r;v=n+o-j-t;w=+C(+(k*k+v*v));u=+g[b+168>>2];A=+g[b+172>>2];B=u+A;D=B+t*(t*p)+o*(o*q);G=r*p;H=s*q;I=-(t*G)-o*H;J=B+r*G+ -s*H;H=D*J-I*I;G=H!=0?1/H:H;H=-((k*J-v*I)*G);J=-((v*D-k*I)*G);b=c[e>>2]|0;l=c[f>>2]|0;g[b+(l*12|0)>>2]=i-u*H;g[b+(l*12|0)+4>>2]=j-u*J;l=c[e>>2]|0;g[l+((c[f>>2]|0)*12|0)+8>>2]=x-p*(r*J-t*H);f=c[h>>2]|0;g[l+(f*12|0)>>2]=m+A*H;g[l+(f*12|0)+4>>2]=n+A*J;g[(c[e>>2]|0)+((c[h>>2]|0)*12|0)+8>>2]=y+q*(s*J-o*H);return z<=.03490658849477768&w<=.004999999888241291|0}function oh(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;c[a+8>>2]=b;c[a+12>>2]=d;f=+g[e>>2]-+g[b+12>>2];h=e+4|0;i=+g[h>>2]-+g[b+16>>2]; -j=+g[b+24>>2];k=+g[b+20>>2];g[a+20>>2]=f*j+i*k;g[a+24>>2]=j*i-f*k;k=+g[e>>2]-+g[d+12>>2];f=+g[h>>2]-+g[d+16>>2];i=+g[d+24>>2];j=+g[d+20>>2];g[a+28>>2]=k*i+f*j;g[a+32>>2]=i*f-k*j;g[a+36>>2]=+g[d+72>>2]-+g[b+72>>2];return}function ph(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;ch(b,d);c[b>>2]=1488;e=d+20|0;f=c[e+4>>2]|0;g=b+68|0;c[g>>2]=c[e>>2];c[g+4>>2]=f;f=d+28|0;g=c[f+4>>2]|0;e=b+76|0;c[e>>2]=c[f>>2];c[e+4>>2]=g;c[b+116>>2]=c[d+36>>2];g=b+84|0;c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;c[g+12>>2]=0;c[b+120>>2]=c[d+ -44>>2];c[b+124>>2]=c[d+48>>2];c[b+104>>2]=c[d+60>>2];c[b+108>>2]=c[d+56>>2];a[b+112>>0]=a[d+40>>0]|0;a[b+100>>0]=a[d+52>>0]|0;c[b+224>>2]=0;return}function qh(a){a=a|0;return+(+g[(c[a+52>>2]|0)+72>>2]-+g[(c[a+48>>2]|0)+72>>2]-+g[a+116>>2])}function rh(b){b=b|0;return(a[b+100>>0]|0)!=0|0}function sh(d,f){d=d|0;f=f|0;var h=0,i=0,j=0,k=0;h=f&1;f=c[d+48>>2]|0;i=f+4|0;j=e[i>>1]|0;if(!(j&2)){b[i>>1]=j|2;g[f+160>>2]=0}f=c[d+52>>2]|0;j=f+4|0;i=e[j>>1]|0;if(i&2|0){k=d+100|0;a[k>>0]=h;return}b[j>>1]=i|2;g[f+ -160>>2]=0;k=d+100|0;a[k>>0]=h;return}function th(a,d){a=a|0;d=+d;var f=0,h=0,i=0,j=0;f=c[a+48>>2]|0;h=f+4|0;i=e[h>>1]|0;if(!(i&2)){b[h>>1]=i|2;g[f+160>>2]=0}f=c[a+52>>2]|0;i=f+4|0;h=e[i>>1]|0;if(h&2|0){j=a+108|0;g[j>>2]=d;return}b[i>>1]=h|2;g[f+160>>2]=0;j=a+108|0;g[j>>2]=d;return}function uh(b){b=b|0;return(a[b+112>>0]|0)!=0|0}function vh(f,h){f=f|0;h=h|0;var i=0,j=0,k=0,l=0;i=f+112|0;if((h&1|0)==(d[i>>0]|0|0))return;j=c[f+48>>2]|0;k=j+4|0;l=e[k>>1]|0;if(!(l&2)){b[k>>1]=l|2;g[j+160>>2]=0}j=c[f+52>> -2]|0;l=j+4|0;k=e[l>>1]|0;if(!(k&2)){b[l>>1]=k|2;g[j+160>>2]=0}a[i>>0]=h&1;g[f+92>>2]=0;return}function wh(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0,i=0,j=0;d=c[b+48>>2]|0;e=+g[d+24>>2];f=+g[b+76>>2];h=+g[d+20>>2];i=+g[b+80>>2];j=f*h+e*i+ +g[d+16>>2];g[a>>2]=+g[d+12>>2]+(e*f-h*i);g[a+4>>2]=j;return}function xh(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0,i=0,j=0;d=c[b+52>>2]|0;e=+g[d+24>>2];f=+g[b+84>>2];h=+g[d+20>>2];i=+g[b+88>>2];j=f*h+e*i+ +g[d+16>>2];g[a>>2]=+g[d+12>>2]+(e*f-h*i);g[a+4>>2]=j;return}function yh(a, -b,c){a=a|0;b=b|0;c=+c;var d=0,e=0,f=0;d=+g[b+108>>2];e=+g[b+116>>2];f=(d*+g[b+184>>2]+e*+g[b+176>>2])*c;g[a>>2]=(d*+g[b+180>>2]+e*+g[b+172>>2])*c;g[a+4>>2]=f;return}function zh(a,b){a=a|0;b=+b;return+(+g[a+112>>2]*b)}function Ah(a){a=a|0;var b=0,e=0,f=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;b=l;l=l+128|0;e=b+120|0;f=b+112|0;i=b+104|0;j=b+96|0;k=b+88|0;m=b+80|0;n=b+64|0;o=b+48|0;p=b+32|0;q=b+24|0;r=b+16|0;s=b+8|0;t=c[(c[a+48>>2]|0)+8>>2]|0;u=c[(c[a+52>>2]|0)+8>>2]|0;am(3886,b);c[s>>2]= -t;am(4137,s);c[r>>2]=u;am(4163,r);c[q>>2]=d[a+61>>0];am(4189,q);v=+g[a+80>>2];h[p>>3]=+g[a+76>>2];h[p+8>>3]=v;am(4310,p);v=+g[a+88>>2];h[o>>3]=+g[a+84>>2];h[o+8>>3]=v;am(4352,o);v=+g[a+96>>2];h[n>>3]=+g[a+92>>2];h[n+8>>3]=v;am(3909,n);c[m>>2]=d[a+128>>0];am(3949,m);h[k>>3]=+g[a+124>>2];am(3979,k);h[j>>3]=+g[a+120>>2];am(4007,j);h[i>>3]=+g[a+68>>2];am(4039,i);h[f>>3]=+g[a+72>>2];am(4068,f);c[e>>2]=c[a+56>>2];am(4467,e);l=b;return}function Bh(a){a=a|0;fn(a);return}function Ch(b,d){b=b|0;d=d|0;var e= -0,f=0,h=0,i=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,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;e=c[b+48>>2]|0;f=c[e+8>>2]|0;h=b+132|0;c[h>>2]=f;i=c[b+52>>2]|0;k=c[i+8>>2]|0;l=b+136|0;c[l>>2]=k;m=e+44|0;n=c[m>>2]|0;o=c[m+4>>2]|0;m=b+140|0;c[m>>2]=n;c[m+4>>2]=o;m=i+44|0;p=c[m>>2]|0;q=c[m+4>>2]|0;m=b+148|0;c[m>>2]=p;c[m+4>>2]=q;m=c[e+136>>2]|0;r= -b+156|0;c[r>>2]=m;s=c[i+136>>2]|0;t=b+160|0;c[t>>2]=s;u=c[e+144>>2]|0;e=b+164|0;c[e>>2]=u;v=+g[i+144>>2];i=b+168|0;g[i>>2]=v;w=(c[j>>2]=m,+g[j>>2]);x=(c[j>>2]=s,+g[j>>2]);y=(c[j>>2]=u,+g[j>>2]);u=c[d+28>>2]|0;z=+g[u+(f*12|0)+8>>2];s=d+32|0;m=c[s>>2]|0;A=c[m+(f*12|0)>>2]|0;B=c[m+(f*12|0)+4>>2]|0;C=+g[m+(f*12|0)+8>>2];D=+g[u+(k*12|0)+8>>2];G=c[m+(k*12|0)>>2]|0;H=c[m+(k*12|0)+4>>2]|0;I=+g[m+(k*12|0)+8>>2];J=+F(+z);K=+E(+z);z=+F(+D);L=+E(+D);D=+g[b+76>>2]-(c[j>>2]=n,+g[j>>2]);M=+g[b+80>>2]-(c[j>>2]=o, -+g[j>>2]);N=K*D-J*M;O=J*D+K*M;M=+g[b+84>>2]-(c[j>>2]=p,+g[j>>2]);D=+g[b+88>>2]-(c[j>>2]=q,+g[j>>2]);P=L*M-z*D;Q=z*M+L*D;D=+g[u+(k*12|0)>>2]+P-+g[u+(f*12|0)>>2]-N;L=+g[u+(k*12|0)+4>>2]+Q-+g[u+(f*12|0)+4>>2]-O;M=+g[b+100>>2];z=+g[b+104>>2];R=K*M-J*z;S=J*M+K*z;g[b+180>>2]=R;g[b+184>>2]=S;z=N+D;N=O+L;O=S*z-R*N;g[b+196>>2]=O;M=P*S-Q*R;g[b+200>>2]=M;T=w+x;x=M*(v*M)+(T+O*(y*O));g[b+204>>2]=x>0?1/x:x;f=b+212|0;g[f>>2]=0;u=b+216|0;g[u>>2]=0;k=b+220|0;g[k>>2]=0;x=+g[b+68>>2];if(x>0){w=+g[b+92>>2];U=+g[b+96>> -2];V=K*w-J*U;W=J*w+K*U;g[b+172>>2]=V;g[b+176>>2]=W;U=z*W-N*V;g[b+188>>2]=U;N=P*W-Q*V;g[b+192>>2]=N;Q=N*(v*N)+(T+U*(y*U));if(Q>0){U=1/Q;T=x*6.2831854820251465;x=T*(U*T);N=+g[d>>2];P=N*(T*(U*2*+g[b+72>>2])+N*x);U=P>0?1/P:P;g[k>>2]=U;g[u>>2]=(D*V+L*W)*N*x*U;x=Q+U;g[f>>2]=x>0?1/x:x}}else g[b+116>>2]=0;if(a[b+128>>0]|0){x=v+y;f=b+208|0;g[f>>2]=x;if(x>0)g[f>>2]=1/x}else{g[b+208>>2]=0;g[b+112>>2]=0}if(!(a[d+24>>0]|0)){g[b+108>>2]=0;g[b+116>>2]=0;g[b+112>>2]=0;X=C;Y=I;Z=G;_=A;$=H;aa=B;ba=c[s>>2]|0;ca=c[h>> -2]|0;da=ba+(ca*12|0)|0;c[da>>2]=_;ea=ba+(ca*12|0)+4|0;c[ea>>2]=aa;fa=c[s>>2]|0;ga=c[h>>2]|0;ha=fa+(ga*12|0)+8|0;g[ha>>2]=X;ia=c[l>>2]|0;ja=fa+(ia*12|0)|0;c[ja>>2]=Z;ka=fa+(ia*12|0)+4|0;c[ka>>2]=$;la=c[s>>2]|0;ma=c[l>>2]|0;na=la+(ma*12|0)+8|0;g[na>>2]=Y;return}else{x=+g[d+8>>2];d=b+108|0;y=x*+g[d>>2];g[d>>2]=y;d=b+116|0;v=x*+g[d>>2];g[d>>2]=v;d=b+112|0;U=x*+g[d>>2];g[d>>2]=U;x=y*R+v*+g[b+172>>2];R=y*S+v*+g[b+176>>2];S=+g[r>>2];r=(g[j>>2]=(c[j>>2]=A,+g[j>>2])-x*S,c[j>>2]|0);A=(g[j>>2]=(c[j>>2]=B,+g[j>> -2])-R*S,c[j>>2]|0);S=+g[t>>2];t=(g[j>>2]=(c[j>>2]=G,+g[j>>2])+x*S,c[j>>2]|0);X=C-(U+(y*O+v*+g[b+188>>2]))*+g[e>>2];Y=I+(U+(y*M+v*+g[b+192>>2]))*+g[i>>2];Z=t;_=r;$=(g[j>>2]=(c[j>>2]=H,+g[j>>2])+R*S,c[j>>2]|0);aa=A;ba=c[s>>2]|0;ca=c[h>>2]|0;da=ba+(ca*12|0)|0;c[da>>2]=_;ea=ba+(ca*12|0)+4|0;c[ea>>2]=aa;fa=c[s>>2]|0;ga=c[h>>2]|0;ha=fa+(ga*12|0)+8|0;g[ha>>2]=X;ia=c[l>>2]|0;ja=fa+(ia*12|0)|0;c[ja>>2]=Z;ka=fa+(ia*12|0)+4|0;c[ka>>2]=$;la=c[s>>2]|0;ma=c[l>>2]|0;na=la+(ma*12|0)+8|0;g[na>>2]=Y;return}}function Dh(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,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;d=+g[a+156>>2];e=+g[a+160>>2];f=+g[a+164>>2];h=+g[a+168>>2];i=b+32|0;j=c[i>>2]|0;k=a+132|0;l=c[k>>2]|0;m=+g[j+(l*12|0)>>2];n=+g[j+(l*12|0)+4>>2];o=+g[j+(l*12|0)+8>>2];l=a+136|0;p=c[l>>2]|0;q=+g[j+(p*12|0)>>2];r=+g[j+(p*12|0)+4>>2];s=+g[j+(p*12|0)+8>>2];t=+g[a+172>>2];u=+g[a+176>>2];v=+g[a+192>>2];w=+g[a+188>>2];p=a+116|0;x=+g[p>>2];y=+g[a+212>>2]*((q-m)*t+(r-n)*u+s*v-o*w+ +g[a+216>>2]+ +g[a+ -220>>2]*x);z=-y;g[p>>2]=x-y;y=t*z;t=u*z;u=m-d*y;m=n-d*t;n=o-f*(w*z);w=q+e*y;y=r+e*t;t=s+h*(v*z);p=a+112|0;z=+g[p>>2];v=+g[b>>2]*+g[a+120>>2];s=z-+g[a+208>>2]*(t-n-+g[a+124>>2]);r=-v;q=s>2]=v;q=v-z;z=n-f*q;n=t+h*q;q=+g[a+180>>2];t=+g[a+184>>2];v=+g[a+200>>2];r=+g[a+196>>2];s=+g[a+204>>2]*((w-u)*q+(y-m)*t+v*n-r*z);o=-s;p=a+108|0;g[p>>2]=+g[p>>2]-s;s=q*o;q=t*o;p=c[i>>2]|0;a=c[k>>2]|0;g[p+(a*12|0)>>2]=u-d*s;g[p+(a*12|0)+4>>2]=m-d*q;a=c[i>>2]|0;g[a+((c[k>>2]|0)*12|0)+8>>2]=z-f*(r* -o);k=c[l>>2]|0;g[a+(k*12|0)>>2]=w+e*s;g[a+(k*12|0)+4>>2]=y+e*q;g[(c[i>>2]|0)+((c[l>>2]|0)*12|0)+8>>2]=n+h*(v*o);return}function Eh(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,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,G=0;d=b+28|0;b=c[d>>2]|0;e=a+132|0;f=c[e>>2]|0;h=+g[b+(f*12|0)>>2];i=+g[b+(f*12|0)+4>>2];j=+g[b+(f*12|0)+8>>2];f=a+136|0;k=c[f>>2]|0;l=+g[b+(k*12|0)>>2];m=+g[b+(k*12|0)+4>>2];n=+g[b+(k*12|0)+8>>2];o=+F(+j);p=+E(+j);q=+F(+n);r=+E(+n);s=+g[a+76>>2]- -+g[a+140>>2];t=+g[a+80>>2]-+g[a+144>>2];u=p*s-o*t;v=o*s+p*t;t=+g[a+84>>2]-+g[a+148>>2];s=+g[a+88>>2]-+g[a+152>>2];w=r*t-q*s;x=q*t+r*s;s=l-h+w-u;r=m-i+x-v;t=+g[a+100>>2];q=+g[a+104>>2];y=p*t-o*q;z=o*t+p*q;q=y*s+z*r;p=+g[a+156>>2];t=+g[a+160>>2];o=+g[a+164>>2];A=+g[a+196>>2];B=+g[a+168>>2];C=+g[a+200>>2];D=p+t+A*(o*A)+C*(B*C);C=-q;A=D!=0?C/D:0;D=y*A;G=z*A;a=c[d>>2]|0;k=c[e>>2]|0;g[a+(k*12|0)>>2]=h-p*D;g[a+(k*12|0)+4>>2]=i-p*G;k=c[d>>2]|0;g[k+((c[e>>2]|0)*12|0)+8>>2]=j-o*((z*(u+s)-y*(v+r))*A);e=c[f>> -2]|0;g[k+(e*12|0)>>2]=l+t*D;g[k+(e*12|0)+4>>2]=m+t*G;g[(c[d>>2]|0)+((c[f>>2]|0)*12|0)+8>>2]=n+B*((w*z-x*y)*A);return(q>0?q:C)<=.004999999888241291|0}function Fh(a,b,d,e,f){a=a|0;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;c[a+8>>2]=b;c[a+12>>2]=d;h=+g[e>>2]-+g[b+12>>2];i=e+4|0;j=+g[i>>2]-+g[b+16>>2];k=b+24|0;l=+g[k>>2];m=b+20|0;n=+g[m>>2];g[a+20>>2]=h*l+j*n;g[a+24>>2]=l*j-h*n;n=+g[e>>2]-+g[d+12>>2];h=+g[i>>2]-+g[d+16>>2];j=+g[d+24>>2];l=+g[d+20>>2];g[a+28>>2]=n*j+h*l;g[a+32>>2]=j*h-n* -l;l=+g[k>>2];n=+g[f>>2];h=+g[m>>2];j=+g[f+4>>2];g[a+36>>2]=l*n+h*j;g[a+40>>2]=l*j-n*h;return}function Gh(b,d){b=b|0;d=d|0;var e=0,f=0,h=0;ch(b,d);c[b>>2]=1540;e=d+20|0;f=c[e+4>>2]|0;h=b+76|0;c[h>>2]=c[e>>2];c[h+4>>2]=f;f=d+28|0;h=c[f+4>>2]|0;e=b+84|0;c[e>>2]=c[f>>2];c[e+4>>2]=h;h=d+36|0;e=c[h>>2]|0;f=c[h+4>>2]|0;h=b+92|0;c[h>>2]=e;c[h+4>>2]=f;g[b+100>>2]=-(c[j>>2]=f,+g[j>>2]);c[b+104>>2]=e;g[b+204>>2]=0;g[b+108>>2]=0;g[b+208>>2]=0;g[b+112>>2]=0;g[b+212>>2]=0;g[b+116>>2]=0;c[b+120>>2]=c[d+48>>2];c[b+ -124>>2]=c[d+52>>2];a[b+128>>0]=a[d+44>>0]|0;c[b+68>>2]=c[d+56>>2];c[b+72>>2]=c[d+60>>2];g[b+216>>2]=0;g[b+220>>2]=0;d=b+172|0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;c[d+12>>2]=0;return}function Hh(a,d){a=a|0;d=+d;var f=0,h=0,i=0,j=0;f=c[a+48>>2]|0;h=f+4|0;i=e[h>>1]|0;if(!(i&2)){b[h>>1]=i|2;g[f+160>>2]=0}f=c[a+52>>2]|0;i=f+4|0;h=e[i>>1]|0;if(h&2|0){j=a+124|0;g[j>>2]=d;return}b[i>>1]=h|2;g[f+160>>2]=0;j=a+124|0;g[j>>2]=d;return}function Ih(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0,i=0,j=0;d=c[b+48>>2]|0;e=+g[d+ -24>>2];f=+g[b+92>>2];h=+g[d+20>>2];i=+g[b+96>>2];j=f*h+e*i+ +g[d+16>>2];g[a>>2]=+g[d+12>>2]+(e*f-h*i);g[a+4>>2]=j;return}function Jh(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0,i=0,j=0;d=c[b+52>>2]|0;e=+g[d+24>>2];f=+g[b+100>>2];h=+g[d+20>>2];i=+g[b+104>>2];j=f*h+e*i+ +g[d+16>>2];g[a>>2]=+g[d+12>>2]+(e*f-h*i);g[a+4>>2]=j;return}function Kh(a,b,c){a=a|0;b=b|0;c=+c;var d=0,e=0;d=+g[b+116>>2];e=d*+g[b+140>>2]*c;g[a>>2]=d*+g[b+136>>2]*c;g[a+4>>2]=e;return}function Lh(a,b){a=a|0;b=+b;return 0}function Mh(a){a= -a|0;var b=0,e=0,f=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;b=l;l=l+128|0;e=b+120|0;f=b+112|0;i=b+104|0;j=b+96|0;k=b+80|0;m=b+64|0;n=b+48|0;o=b+32|0;p=b+24|0;q=b+16|0;r=b+8|0;s=c[(c[a+48>>2]|0)+8>>2]|0;t=c[(c[a+52>>2]|0)+8>>2]|0;am(4113,b);c[r>>2]=s;am(4137,r);c[q>>2]=t;am(4163,q);c[p>>2]=d[a+61>>0];am(4189,p);u=+g[a+72>>2];h[o>>3]=+g[a+68>>2];h[o+8>>3]=u;am(4224,o);u=+g[a+80>>2];h[n>>3]=+g[a+76>>2];h[n+8>>3]=u;am(4267,n);u=+g[a+96>>2];h[m>>3]=+g[a+92>>2];h[m+8>>3]=u;am(4310,m);u=+g[a+104>> -2];h[k>>3]=+g[a+100>>2];h[k+8>>3]=u;am(4352,k);h[j>>3]=+g[a+84>>2];am(4394,j);h[i>>3]=+g[a+88>>2];am(4419,i);h[f>>3]=+g[a+112>>2];am(4444,f);c[e>>2]=c[a+56>>2];am(4467,e);l=b;return}function Nh(a,b){a=a|0;b=b|0;var c=0,d=0;c=a+68|0;g[c>>2]=+g[c>>2]-+g[b>>2];c=b+4|0;d=a+72|0;g[d>>2]=+g[d>>2]-+g[c>>2];d=a+76|0;g[d>>2]=+g[d>>2]-+g[b>>2];b=a+80|0;g[b>>2]=+g[b>>2]-+g[c>>2];return}function Oh(a){a=a|0;fn(a);return}function Ph(b,d){b=b|0;d=d|0;var e=0,f=0,h=0,i=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,D=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;e=c[b+48>>2]|0;f=c[e+8>>2]|0;h=b+120|0;c[h>>2]=f;i=c[b+52>>2]|0;k=c[i+8>>2]|0;l=b+124|0;c[l>>2]=k;m=e+44|0;n=c[m>>2]|0;o=c[m+4>>2]|0;m=b+160|0;c[m>>2]=n;c[m+4>>2]=o;m=i+44|0;p=c[m>>2]|0;q=c[m+4>>2]|0;m=b+168|0;c[m>>2]=p;c[m+4>>2]=q;m=b+176|0;c[m>>2]=c[e+136>>2];r=b+180|0;c[r>>2]=c[i+136>>2];s=b+184|0;c[s>>2]=c[e+144>>2];e=b+188|0; -c[e>>2]=c[i+144>>2];i=c[d+28>>2]|0;t=+g[i+(f*12|0)>>2];u=+g[i+(f*12|0)+4>>2];v=+g[i+(f*12|0)+8>>2];w=d+32|0;x=c[w>>2]|0;y=c[x+(f*12|0)>>2]|0;z=c[x+(f*12|0)+4>>2]|0;A=+g[x+(f*12|0)+8>>2];B=+g[i+(k*12|0)>>2];D=+g[i+(k*12|0)+4>>2];G=+g[i+(k*12|0)+8>>2];i=c[x+(k*12|0)>>2]|0;f=c[x+(k*12|0)+4>>2]|0;H=+g[x+(k*12|0)+8>>2];I=+F(+v);J=+E(+v);v=+F(+G);K=+E(+G);G=+g[b+92>>2]-(c[j>>2]=n,+g[j>>2]);L=+g[b+96>>2]-(c[j>>2]=o,+g[j>>2]);M=J*G-I*L;N=I*G+J*L;g[b+144>>2]=M;g[b+148>>2]=N;L=+g[b+100>>2]-(c[j>>2]=p,+g[j>> -2]);J=+g[b+104>>2]-(c[j>>2]=q,+g[j>>2]);G=K*L-v*J;I=v*L+K*J;g[b+152>>2]=G;g[b+156>>2]=I;J=t+M-+g[b+68>>2];t=u+N-+g[b+72>>2];q=b+128|0;g[q>>2]=J;p=b+132|0;g[p>>2]=t;u=B+G-+g[b+76>>2];B=D+I-+g[b+80>>2];o=b+136|0;g[o>>2]=u;n=b+140|0;g[n>>2]=B;D=+C(+(J*J+t*t));K=+C(+(u*u+B*B));if(D>.04999999701976776){L=1/D;D=J*L;g[q>>2]=D;O=L*t;P=D}else{g[q>>2]=0;O=0;P=0}g[p>>2]=O;if(K>.04999999701976776){D=1/K;K=D*u;g[o>>2]=K;Q=D*B;R=K}else{g[o>>2]=0;Q=0;R=0}g[n>>2]=Q;K=M*O-N*P;B=G*Q-I*R;D=+g[m>>2];u=+g[s>>2];t=+g[r>> -2];L=+g[e>>2];J=+g[b+112>>2];v=D+K*(K*u)+J*J*(t+B*(B*L));g[b+192>>2]=v>0?1/v:v;if(!(a[d+24>>0]|0)){g[b+116>>2]=0;S=A;T=H;U=i;V=y;W=f;X=z;Y=c[w>>2]|0;Z=c[h>>2]|0;_=Y+(Z*12|0)|0;c[_>>2]=V;$=Y+(Z*12|0)+4|0;c[$>>2]=X;aa=c[w>>2]|0;ba=c[h>>2]|0;ca=aa+(ba*12|0)+8|0;g[ca>>2]=S;da=c[l>>2]|0;ea=aa+(da*12|0)|0;c[ea>>2]=U;fa=aa+(da*12|0)+4|0;c[fa>>2]=W;ga=c[w>>2]|0;ha=c[l>>2]|0;ia=ga+(ha*12|0)+8|0;g[ia>>2]=T;return}else{e=b+116|0;v=+g[d+8>>2]*+g[e>>2];g[e>>2]=v;B=-v;K=P*B;P=O*B;B=-(v*J);J=R*B;R=Q*B;e=(g[j>>2]= -(c[j>>2]=y,+g[j>>2])+K*D,c[j>>2]|0);y=(g[j>>2]=(c[j>>2]=z,+g[j>>2])+P*D,c[j>>2]|0);z=(g[j>>2]=(c[j>>2]=i,+g[j>>2])+J*t,c[j>>2]|0);S=A+u*(P*M-K*N);T=H+L*(R*G-J*I);U=z;V=e;W=(g[j>>2]=(c[j>>2]=f,+g[j>>2])+R*t,c[j>>2]|0);X=y;Y=c[w>>2]|0;Z=c[h>>2]|0;_=Y+(Z*12|0)|0;c[_>>2]=V;$=Y+(Z*12|0)+4|0;c[$>>2]=X;aa=c[w>>2]|0;ba=c[h>>2]|0;ca=aa+(ba*12|0)+8|0;g[ca>>2]=S;da=c[l>>2]|0;ea=aa+(da*12|0)|0;c[ea>>2]=U;fa=aa+(da*12|0)+4|0;c[fa>>2]=W;ga=c[w>>2]|0;ha=c[l>>2]|0;ia=ga+(ha*12|0)+8|0;g[ia>>2]=T;return}}function Qh(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,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;d=b+32|0;b=c[d>>2]|0;e=a+120|0;f=c[e>>2]|0;h=b+(f*12|0)|0;i=+g[h>>2];j=b+(f*12|0)+4|0;k=+g[j>>2];l=+g[b+(f*12|0)+8>>2];f=a+124|0;m=c[f>>2]|0;n=+g[b+(m*12|0)>>2];o=+g[b+(m*12|0)+4>>2];p=+g[b+(m*12|0)+8>>2];q=+g[a+148>>2];r=+g[a+144>>2];s=+g[a+156>>2];t=+g[a+152>>2];u=+g[a+128>>2];v=+g[a+132>>2];w=+g[a+112>>2];x=+g[a+136>>2];y=+g[a+140>>2];z=+g[a+192>>2]*(-((i-l*q)*u+(k+l*r)*v)-w*((n-p*s)* -x+(o+p*t)*y));m=a+116|0;g[m>>2]=+g[m>>2]-z;A=u*z;u=v*z;v=z*w;w=x*v;x=v*y;y=+g[a+176>>2];v=l+ +g[a+184>>2]*(u*r-A*q);q=+g[a+180>>2];r=p+ +g[a+188>>2]*(x*t-w*s);g[h>>2]=i+A*y;g[j>>2]=k+u*y;j=c[d>>2]|0;g[j+((c[e>>2]|0)*12|0)+8>>2]=v;e=c[f>>2]|0;g[j+(e*12|0)>>2]=n+w*q;g[j+(e*12|0)+4>>2]=o+x*q;g[(c[d>>2]|0)+((c[f>>2]|0)*12|0)+8>>2]=r;return}function Rh(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,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,D=0,G=0,H=0,I=0;d=b+28|0;b=c[d>>2]| -0;e=a+120|0;f=c[e>>2]|0;h=+g[b+(f*12|0)>>2];i=+g[b+(f*12|0)+4>>2];j=+g[b+(f*12|0)+8>>2];f=a+124|0;k=c[f>>2]|0;l=+g[b+(k*12|0)>>2];m=+g[b+(k*12|0)+4>>2];n=+g[b+(k*12|0)+8>>2];o=+F(+j);p=+E(+j);q=+F(+n);r=+E(+n);s=+g[a+92>>2]-+g[a+160>>2];t=+g[a+96>>2]-+g[a+164>>2];u=p*s-o*t;v=o*s+p*t;t=+g[a+100>>2]-+g[a+168>>2];p=+g[a+104>>2]-+g[a+172>>2];s=r*t-q*p;o=q*t+r*p;p=h+u-+g[a+68>>2];r=i+v-+g[a+72>>2];t=l+s-+g[a+76>>2];q=m+o-+g[a+80>>2];w=+C(+(p*p+r*r));x=+C(+(t*t+q*q));k=w>.04999999701976776;y=1/w;z=k?p* -y:0;p=k?r*y:0;k=x>.04999999701976776;y=1/x;r=k?t*y:0;t=k?q*y:0;y=u*p-v*z;q=s*t-o*r;A=+g[a+176>>2];B=+g[a+184>>2];D=+g[a+180>>2];G=+g[a+188>>2];H=+g[a+112>>2];I=A+y*(B*y)+H*H*(D+q*(G*q));q=+g[a+108>>2]-w-x*H;x=q*(I>0?1/I:I);I=z*x;z=p*x;p=H*x;x=r*p;r=t*p;a=c[d>>2]|0;k=c[e>>2]|0;g[a+(k*12|0)>>2]=h+A*I;g[a+(k*12|0)+4>>2]=i+A*z;k=c[d>>2]|0;g[k+((c[e>>2]|0)*12|0)+8>>2]=j+B*(u*z-v*I);e=c[f>>2]|0;g[k+(e*12|0)>>2]=l+D*x;g[k+(e*12|0)+4>>2]=m+D*r;g[(c[d>>2]|0)+((c[f>>2]|0)*12|0)+8>>2]=n+G*(s*r-o*x);return(q> -0?q:-q)<.004999999888241291|0}function Sh(a,b,d,e,f,h,i,j){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;i=i|0;j=+j;var k=0,l=0,m=0,n=0,o=0,p=0,q=0;c[a+8>>2]=b;c[a+12>>2]=d;k=e;l=c[k+4>>2]|0;m=a+20|0;c[m>>2]=c[k>>2];c[m+4>>2]=l;l=f;m=c[l+4>>2]|0;k=a+28|0;c[k>>2]=c[l>>2];c[k+4>>2]=m;n=+g[h>>2]-+g[b+12>>2];m=h+4|0;o=+g[m>>2]-+g[b+16>>2];p=+g[b+24>>2];q=+g[b+20>>2];g[a+36>>2]=n*p+o*q;g[a+40>>2]=p*o-n*q;q=+g[i>>2]-+g[d+12>>2];b=i+4|0;n=+g[b>>2]-+g[d+16>>2];o=+g[d+24>>2];p=+g[d+20>>2];g[a+44>>2]=q*o+n*p;g[a+48>> -2]=o*n-q*p;p=+g[h>>2]-+g[e>>2];q=+g[m>>2]-+g[e+4>>2];g[a+52>>2]=+C(+(p*p+q*q));q=+g[i>>2]-+g[f>>2];p=+g[b>>2]-+g[f+4>>2];g[a+56>>2]=+C(+(q*q+p*p));g[a+60>>2]=j;return}function Th(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0,i=0;ch(a,b);c[a>>2]=1592;d=b+20|0;e=c[d+4>>2]|0;f=a+68|0;c[f>>2]=c[d>>2];c[f+4>>2]=e;e=b+28|0;f=c[e+4>>2]|0;d=a+76|0;c[d>>2]=c[e>>2];c[d+4>>2]=f;f=b+36|0;d=c[f+4>>2]|0;e=a+92|0;c[e>>2]=c[f>>2];c[e+4>>2]=d;d=b+44|0;e=c[d+4>>2]|0;f=a+100|0;c[f>>2]=c[d>>2];c[f+4>>2]=e;e=c[b+52>>2]|0;c[a+ -84>>2]=e;f=c[b+56>>2]|0;c[a+88>>2]=f;h=+g[b+60>>2];g[a+112>>2]=h;i=(c[j>>2]=e,+g[j>>2]);g[a+108>>2]=i+h*(c[j>>2]=f,+g[j>>2]);g[a+116>>2]=0;return}function Uh(a,d,e,f){a=a|0;d=d|0;e=e|0;f=f|0;var h=0,i=0,j=0,k=0;h=l;l=l+48|0;i=h;j=c[(c[a+48>>2]|0)+12>>2]|0;c[i>>2]=816;c[i+4>>2]=1;g[i+8>>2]=.009999999776482582;k=i+28|0;c[k>>2]=0;c[k+4>>2]=0;c[k+8>>2]=0;c[k+12>>2]=0;b[k+16>>1]=0;ze(j,i,c[a+56>>2]|0);Ve(d,i,e,c[(c[a+52>>2]|0)+12>>2]|0,f);l=h;return}function Vh(a){a=a|0;return}function Wh(a){a=a|0;fn(a); -return}function Xh(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0;g=Pl(f,148)|0;$h(g,a,b,d,e);c[g>>2]=1644;return g|0}function Yh(a,b){a=a|0;b=b|0;Pa[c[(c[a>>2]|0)+4>>2]&127](a);Ql(b,a,148);return}function Zh(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;if(!(a[9316]|0)){c[2131]=6;c[2132]=53;a[8532]=1;c[2155]=7;c[2156]=54;a[8628]=1;c[2137]=7;c[2138]=54;a[8556]=0;c[2161]=8;c[2162]=55;a[8652]=1;c[2143]=9;c[2144]=56;a[8580]=1;c[2134]=9;c[2135]=56;a[8544]=0;c[2149]=10;c[2150]=57;a[8604]= -1;c[2158]=10;c[2159]=57;a[8640]=0;c[2167]=11;c[2168]=58;a[8676]=1;c[2140]=11;c[2141]=58;a[8568]=0;c[2173]=12;c[2174]=59;a[8700]=1;c[2164]=12;c[2165]=59;a[8664]=0;a[9316]=1}h=c[(c[b+12>>2]|0)+4>>2]|0;i=c[(c[e+12>>2]|0)+4>>2]|0;j=c[8524+(h*48|0)+(i*12|0)>>2]|0;if(!j){k=0;return k|0}if(!(a[8524+(h*48|0)+(i*12|0)+8>>0]|0)){k=Za[j&15](e,f,b,d,g)|0;return k|0}else{k=Za[j&15](b,d,e,f,g)|0;return k|0}return 0}function _h(d,f){d=d|0;f=f|0;var h=0,i=0,j=0,k=0,l=0;h=c[d+48>>2]|0;i=c[d+52>>2]|0;if(((c[d+124>> -2]|0)>0?(a[h+38>>0]|0)==0:0)?(a[i+38>>0]|0)==0:0){j=c[h+8>>2]|0;k=j+4|0;l=e[k>>1]|0;if(!(l&2)){b[k>>1]=l|2;g[j+160>>2]=0}j=c[i+8>>2]|0;l=j+4|0;k=e[l>>1]|0;if(!(k&2)){b[l>>1]=k|2;g[j+160>>2]=0}}Ra[c[8524+((c[(c[h+12>>2]|0)+4>>2]|0)*48|0)+((c[(c[i+12>>2]|0)+4>>2]|0)*12|0)+4>>2]&63](d,f);return}function $h(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var h=0,i=0,j=0;c[a>>2]=1664;c[a+4>>2]=4;c[a+48>>2]=b;c[a+52>>2]=e;c[a+56>>2]=d;c[a+60>>2]=f;c[a+124>>2]=0;c[a+128>>2]=0;f=b+16|0;d=a+8|0;h=d+40|0;do{c[d>> -2]=0;d=d+4|0}while((d|0)<(h|0));g[a+136>>2]=+C(+(+g[f>>2]*+g[e+16>>2]));i=+g[b+20>>2];j=+g[e+20>>2];g[a+140>>2]=i>j?i:j;g[a+144>>2]=0;return}function ai(a){a=a|0;fn(a);return}function bi(d,f){d=d|0;f=f|0;var h=0,i=0,j=0,k=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;h=l;l=l+64|0;i=h;j=d+64|0;k=i;m=j;n=k+64|0;do{c[k>>2]=c[m>>2];k=k+4|0;m=m+4|0}while((k|0)<(n|0));m=d+4|0;k=c[m>>2]|0;c[m>>2]=k|4;n=k&2;k=(n|0)==0;o=c[d+48>>2]|0;p=c[d+52>>2]|0;q=(a[p+38>>0]|a[o+38>>0])<< -24>>24!=0;r=c[o+8>>2]|0;s=c[p+8>>2]|0;t=r+12|0;u=s+12|0;if(!q){_a[c[c[d>>2]>>2]&31](d,j,t,u);j=d+124|0;v=(c[j>>2]|0)>0;a:do if(v){w=c[i+60>>2]|0;if((w|0)>0)x=0;else{y=0;while(1){g[d+64+(y*20|0)+8>>2]=0;g[d+64+(y*20|0)+12>>2]=0;y=y+1|0;if((y|0)>=(c[j>>2]|0))break a}}do{y=d+64+(x*20|0)+8|0;g[y>>2]=0;z=d+64+(x*20|0)+12|0;g[z>>2]=0;A=c[d+64+(x*20|0)+16>>2]|0;B=0;while(1){if((c[i+(B*20|0)+16>>2]|0)==(A|0)){C=8;break}D=B+1|0;if((D|0)<(w|0))B=D;else break}if((C|0)==8){C=0;c[y>>2]=c[i+(B*20|0)+8>>2];c[z>> -2]=c[i+(B*20|0)+12>>2]}x=x+1|0}while((x|0)<(c[j>>2]|0))}while(0);if((v&1|0)!=(n>>>1|0)){n=r+4|0;j=e[n>>1]|0;if(!(j&2)){b[n>>1]=j|2;g[r+160>>2]=0}r=s+4|0;j=e[r>>1]|0;if(!(j&2)){b[r>>1]=j|2;g[s+160>>2]=0;E=v}else E=v}else E=v}else{v=_e(c[o+12>>2]|0,c[d+56>>2]|0,c[p+12>>2]|0,c[d+60>>2]|0,t,u)|0;c[d+124>>2]=0;E=v}v=c[m>>2]|0;c[m>>2]=E?v|2:v&-3;v=(f|0)!=0;m=v&E;if(k&m)Ra[c[(c[f>>2]|0)+8>>2]&63](f,d);if(v&(E^1)&(k^1))Ra[c[(c[f>>2]|0)+12>>2]&63](f,d);if(!(m&(q^1))){l=h;return}Ta[c[(c[f>>2]|0)+32>>2]&7](f, -d,i);l=h;return}function ci(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;Ie(b,c[(c[a+48>>2]|0)+12>>2]|0,d,c[(c[a+52>>2]|0)+12>>2]|0,e);return}function di(a){a=a|0;fn(a);return}function ei(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;e=Pl(f,148)|0;$h(e,a,0,d,0);c[e>>2]=1684;return e|0}function fi(a,b){a=a|0;b=b|0;Pa[c[(c[a>>2]|0)+4>>2]&127](a);Ql(b,a,148);return}function gi(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;He(b,c[(c[a+48>>2]|0)+12>>2]|0,d,c[(c[a+52>>2]|0)+12>>2]|0,e);return}function hi(a){a=a|0;fn(a);return}function ii(a, -b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;e=Pl(f,148)|0;$h(e,a,0,d,0);c[e>>2]=1704;return e|0}function ji(a,b){a=a|0;b=b|0;Pa[c[(c[a>>2]|0)+4>>2]&127](a);Ql(b,a,148);return}function ki(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[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[b+16>>2]=c[d+16>>2];c[b+20>>2]=c[d+20>>2];c[b+24>>2]=c[d+24>>2];e=c[d+44>>2]|0;f=b+36|0;c[f>>2]=e;h=c[d+32>>2]|0;i=b+52|0;c[i>> -2]=h;j=b+40|0;c[j>>2]=hm(e,h*88|0)|0;h=hm(c[f>>2]|0,(c[i>>2]|0)*156|0)|0;f=b+44|0;c[f>>2]=h;c[b+28>>2]=c[d+36>>2];c[b+32>>2]=c[d+40>>2];e=c[d+28>>2]|0;d=b+48|0;c[d>>2]=e;if((c[i>>2]|0)<=0)return;k=b+24|0;l=b+8|0;b=0;m=e;e=h;while(1){h=c[m+(b<<2)>>2]|0;n=c[h+48>>2]|0;o=c[h+52>>2]|0;p=c[(c[n+12>>2]|0)+8>>2]|0;q=c[(c[o+12>>2]|0)+8>>2]|0;r=c[n+8>>2]|0;n=c[o+8>>2]|0;o=c[h+124>>2]|0;c[e+(b*156|0)+136>>2]=c[h+136>>2];c[e+(b*156|0)+140>>2]=c[h+140>>2];c[e+(b*156|0)+144>>2]=c[h+144>>2];s=r+8|0;c[e+(b*156| -0)+112>>2]=c[s>>2];t=n+8|0;c[e+(b*156|0)+116>>2]=c[t>>2];u=r+136|0;c[e+(b*156|0)+120>>2]=c[u>>2];v=n+136|0;c[e+(b*156|0)+124>>2]=c[v>>2];w=r+144|0;c[e+(b*156|0)+128>>2]=c[w>>2];x=n+144|0;c[e+(b*156|0)+132>>2]=c[x>>2];c[e+(b*156|0)+152>>2]=b;c[e+(b*156|0)+148>>2]=o;y=e+(b*156|0)+80|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[y+20>>2]=0;c[y+24>>2]=0;c[y+28>>2]=0;y=c[j>>2]|0;c[y+(b*88|0)+32>>2]=c[s>>2];c[y+(b*88|0)+36>>2]=c[t>>2];c[y+(b*88|0)+40>>2]=c[u>>2];c[y+(b*88|0)+44>>2]=c[v>> -2];v=r+44|0;r=c[v+4>>2]|0;u=y+(b*88|0)+48|0;c[u>>2]=c[v>>2];c[u+4>>2]=r;r=n+44|0;n=c[r+4>>2]|0;u=y+(b*88|0)+56|0;c[u>>2]=c[r>>2];c[u+4>>2]=n;c[y+(b*88|0)+64>>2]=c[w>>2];c[y+(b*88|0)+68>>2]=c[x>>2];x=h+104|0;w=c[x+4>>2]|0;n=y+(b*88|0)+16|0;c[n>>2]=c[x>>2];c[n+4>>2]=w;w=h+112|0;n=c[w+4>>2]|0;x=y+(b*88|0)+24|0;c[x>>2]=c[w>>2];c[x+4>>2]=n;c[y+(b*88|0)+84>>2]=o;c[y+(b*88|0)+76>>2]=p;c[y+(b*88|0)+80>>2]=q;c[y+(b*88|0)+72>>2]=c[h+120>>2];if((o|0)>0){q=0;do{if(!(a[k>>0]|0)){z=0;A=0}else{B=+g[l>>2];z=B*+g[h+ -64+(q*20|0)+12>>2];A=B*+g[h+64+(q*20|0)+8>>2]}g[e+(b*156|0)+(q*36|0)+16>>2]=A;g[e+(b*156|0)+(q*36|0)+20>>2]=z;p=e+(b*156|0)+(q*36|0)|0;g[e+(b*156|0)+(q*36|0)+24>>2]=0;g[e+(b*156|0)+(q*36|0)+28>>2]=0;g[e+(b*156|0)+(q*36|0)+32>>2]=0;c[p>>2]=0;c[p+4>>2]=0;c[p+8>>2]=0;c[p+12>>2]=0;p=h+64+(q*20|0)|0;n=c[p+4>>2]|0;x=y+(b*88|0)+(q<<3)|0;c[x>>2]=c[p>>2];c[x+4>>2]=n;q=q+1|0}while((q|0)!=(o|0))}o=b+1|0;if((o|0)>=(c[i>>2]|0))break;b=o;m=c[d>>2]|0;e=c[f>>2]|0}return}function li(a){a=a|0;var b=0;b=a+36|0;jm(c[b>> -2]|0,c[a+44>>2]|0);jm(c[b>>2]|0,c[a+40>>2]|0);return}function mi(a){a=a|0;var b=0,d=0,e=0,f=0,h=0,i=0,j=0,k=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,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;b=l;l=l+64|0;d=b+48|0;e=b+32|0;f=b;h=a+52|0;if((c[h>>2]|0)<=0){l=b;return}i=a+44|0;j=a+40|0;k=a+48|0;m=a+28|0;n=a+32|0;a=d+8|0;o=d+12|0;p=e+8|0;q=e+12|0;r=d+4|0;s=e+4|0;t=0;do{u=c[i>>2]|0;v=c[j>>2]|0;w=+g[v+(t*88|0)+76>>2]; -x=+g[v+(t*88|0)+80>>2];y=(c[(c[k>>2]|0)+(c[u+(t*156|0)+152>>2]<<2)>>2]|0)+64|0;z=c[u+(t*156|0)+112>>2]|0;A=c[u+(t*156|0)+116>>2]|0;B=+g[u+(t*156|0)+120>>2];C=+g[u+(t*156|0)+124>>2];D=+g[u+(t*156|0)+128>>2];G=+g[u+(t*156|0)+132>>2];H=+g[v+(t*88|0)+48>>2];I=+g[v+(t*88|0)+52>>2];J=+g[v+(t*88|0)+56>>2];K=+g[v+(t*88|0)+60>>2];v=c[m>>2]|0;L=+g[v+(z*12|0)>>2];M=+g[v+(z*12|0)+4>>2];N=+g[v+(z*12|0)+8>>2];O=c[n>>2]|0;P=+g[O+(z*12|0)>>2];Q=+g[O+(z*12|0)+4>>2];R=+g[O+(z*12|0)+8>>2];S=+g[v+(A*12|0)>>2];T=+g[v+ -(A*12|0)+4>>2];U=+g[v+(A*12|0)+8>>2];V=+g[O+(A*12|0)>>2];W=+g[O+(A*12|0)+4>>2];X=+g[O+(A*12|0)+8>>2];Y=+F(+N);g[a>>2]=Y;Z=+E(+N);g[o>>2]=Z;N=+F(+U);g[p>>2]=N;_=+E(+U);g[q>>2]=_;g[d>>2]=L-(H*Z-I*Y);g[r>>2]=M-(I*Z+H*Y);g[e>>2]=S-(J*_-K*N);g[s>>2]=T-(K*_+J*N);Ye(f,y,d,w,e,x);y=u+(t*156|0)+72|0;A=f;O=c[A+4>>2]|0;v=y;c[v>>2]=c[A>>2];c[v+4>>2]=O;O=u+(t*156|0)+148|0;v=c[O>>2]|0;do if((v|0)>0){A=u+(t*156|0)+76|0;x=B+C;z=u+(t*156|0)+140|0;$=0;do{aa=f+8+($<<3)|0;w=+g[aa>>2]-L;ba=f+8+($<<3)+4|0;N=+g[ba>>2]- -M;g[u+(t*156|0)+($*36|0)>>2]=w;g[u+(t*156|0)+($*36|0)+4>>2]=N;J=+g[aa>>2]-S;_=+g[ba>>2]-T;g[u+(t*156|0)+($*36|0)+8>>2]=J;g[u+(t*156|0)+($*36|0)+12>>2]=_;K=+g[A>>2];Y=+g[y>>2];H=w*K-N*Y;Z=K*J-Y*_;Y=x+H*(D*H)+Z*(G*Z);g[u+(t*156|0)+($*36|0)+24>>2]=Y>0?1/Y:0;Y=+g[A>>2];Z=-+g[y>>2];H=w*Z-Y*N;K=J*Z-Y*_;Y=x+H*(D*H)+K*(G*K);g[u+(t*156|0)+($*36|0)+28>>2]=Y>0?1/Y:0;ba=u+(t*156|0)+($*36|0)+32|0;g[ba>>2]=0;Y=+g[y>>2]*(V-X*_-P+R*N)+ +g[A>>2]*(W+X*J-Q-R*w);if(Y<-1)g[ba>>2]=-(Y*+g[z>>2]);$=$+1|0}while(($|0)!=(v| -0));if((c[O>>2]|0)==2){x=+g[u+(t*156|0)+76>>2];Y=+g[y>>2];w=+g[u+(t*156|0)>>2]*x-+g[u+(t*156|0)+4>>2]*Y;J=x*+g[u+(t*156|0)+8>>2]-Y*+g[u+(t*156|0)+12>>2];N=x*+g[u+(t*156|0)+36>>2]-Y*+g[u+(t*156|0)+40>>2];_=x*+g[u+(t*156|0)+44>>2]-Y*+g[u+(t*156|0)+48>>2];Y=B+C;x=D*w;K=G*J;H=Y+w*x+J*K;J=Y+N*(D*N)+_*(G*_);w=Y+x*N+K*_;_=H*J-w*w;if(H*H<_*1E3){g[u+(t*156|0)+96>>2]=H;g[u+(t*156|0)+100>>2]=w;g[u+(t*156|0)+104>>2]=w;g[u+(t*156|0)+108>>2]=J;K=_!=0?1/_:_;_=-(K*w);g[u+(t*156|0)+80>>2]=J*K;g[u+(t*156|0)+84>>2]= -_;g[u+(t*156|0)+88>>2]=_;g[u+(t*156|0)+92>>2]=H*K;break}else{c[O>>2]=1;break}}}while(0);t=t+1|0}while((t|0)<(c[h>>2]|0));l=b;return}function ni(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,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;b=a+52|0;if((c[b>>2]|0)<=0)return;d=a+44|0;e=a+32|0;a=0;f=c[e>>2]|0;do{h=c[d>>2]|0;i=c[h+(a*156|0)+112>>2]|0;j=c[h+(a*156|0)+116>>2]|0;k=+g[h+(a*156|0)+120>>2];l=+g[h+(a*156|0)+ -128>>2];m=+g[h+(a*156|0)+124>>2];n=+g[h+(a*156|0)+132>>2];o=c[h+(a*156|0)+148>>2]|0;p=f+(i*12|0)|0;q=+g[p>>2];r=f+(i*12|0)+4|0;s=+g[r>>2];t=+g[f+(i*12|0)+8>>2];u=+g[f+(j*12|0)>>2];v=+g[f+(j*12|0)+4>>2];w=+g[f+(j*12|0)+8>>2];x=+g[h+(a*156|0)+72>>2];y=+g[h+(a*156|0)+76>>2];if((o|0)>0){z=0;A=w;B=t;C=q;D=s;E=u;F=v;while(1){G=+g[h+(a*156|0)+(z*36|0)+16>>2];H=+g[h+(a*156|0)+(z*36|0)+20>>2];I=x*G+y*H;J=y*G-x*H;H=B-l*(+g[h+(a*156|0)+(z*36|0)>>2]*J-+g[h+(a*156|0)+(z*36|0)+4>>2]*I);G=C-k*I;K=D-k*J;L=A+n*(J* -+g[h+(a*156|0)+(z*36|0)+8>>2]-I*+g[h+(a*156|0)+(z*36|0)+12>>2]);M=E+m*I;I=F+m*J;z=z+1|0;if((z|0)==(o|0)){N=L;O=H;P=K;Q=G;R=I;S=M;break}else{A=L;B=H;C=G;D=K;E=M;F=I}}}else{N=w;O=t;P=s;Q=q;R=v;S=u}g[p>>2]=Q;g[r>>2]=P;o=c[e>>2]|0;g[o+(i*12|0)+8>>2]=O;g[o+(j*12|0)>>2]=S;g[o+(j*12|0)+4>>2]=R;f=c[e>>2]|0;g[f+(j*12|0)+8>>2]=N;a=a+1|0}while((a|0)<(c[b>>2]|0));return}function oi(a){a=a|0;var b=0,d=0,e=0,f=0,h=0,i=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,Ea=0,Fa=0;b=a+52|0;if((c[b>>2]|0)<=0)return;d=a+44|0;e=a+32|0;a=0;f=c[e>>2]|0;do{h=c[d>>2]|0;i=h+(a*156|0)|0;k=c[h+(a*156|0)+112>>2]|0;l=c[h+(a*156|0)+116>>2]|0;m=+g[h+(a*156|0)+120>>2];n=+g[h+(a*156|0)+128>>2];o=+g[h+(a*156|0)+124>>2];p=+g[h+(a*156|0)+132>>2];q=h+(a* -156|0)+148|0;r=c[q>>2]|0;s=f+(k*12|0)|0;t=c[s>>2]|0;u=(c[j>>2]=t,+g[j>>2]);v=f+(k*12|0)+4|0;w=c[v>>2]|0;x=(c[j>>2]=w,+g[j>>2]);y=+g[f+(k*12|0)+8>>2];z=c[f+(l*12|0)>>2]|0;A=(c[j>>2]=z,+g[j>>2]);B=c[f+(l*12|0)+4>>2]|0;C=(c[j>>2]=B,+g[j>>2]);D=+g[f+(l*12|0)+8>>2];E=+g[h+(a*156|0)+72>>2];F=+g[h+(a*156|0)+76>>2];G=-E;H=+g[h+(a*156|0)+136>>2];if((r|0)>0){I=h+(a*156|0)+144|0;J=y;K=D;L=0;M=z;N=t;O=B;P=w;do{Q=+g[h+(a*156|0)+(L*36|0)+12>>2];R=+g[h+(a*156|0)+(L*36|0)+8>>2];S=(c[j>>2]=M,+g[j>>2]);T=(c[j>>2]= -O,+g[j>>2]);U=(c[j>>2]=N,+g[j>>2]);V=(c[j>>2]=P,+g[j>>2]);W=+g[h+(a*156|0)+(L*36|0)+4>>2];X=+g[h+(a*156|0)+(L*36|0)>>2];Y=H*+g[h+(a*156|0)+(L*36|0)+16>>2];Z=h+(a*156|0)+(L*36|0)+20|0;_=+g[Z>>2];$=_-+g[h+(a*156|0)+(L*36|0)+28>>2]*(F*(S-K*Q-U+J*W)+(T+K*R-V-J*X)*G-+g[I>>2]);aa=-Y;ba=$>2]=Y;Y=F*ba;_=ba*G;ca=U-m*Y;N=(g[j>>2]=ca,c[j>>2]|0);da=V-m*_;P=(g[j>>2]=da,c[j>>2]|0);J=J-n*(X*_-W*Y);ea=S+o*Y;M=(g[j>>2]=ea,c[j>>2]|0);fa=T+o*_;O=(g[j>>2]=fa,c[j>>2]|0);K=K+p*(R*_-Q*Y); -L=L+1|0}while((L|0)!=(r|0));if((c[q>>2]|0)==1){G=+g[h+(a*156|0)+12>>2];H=+g[h+(a*156|0)+8>>2];Y=+g[h+(a*156|0)+4>>2];Q=+g[i>>2];r=h+(a*156|0)+16|0;_=+g[r>>2];R=_-+g[h+(a*156|0)+24>>2]*(E*(ea-K*G-ca+J*Y)+F*(fa+K*H-da-J*Q)-+g[h+(a*156|0)+32>>2]);T=R>0?R:0;R=T-_;g[r>>2]=T;T=E*R;_=F*R;r=(g[j>>2]=ca-m*T,c[j>>2]|0);L=(g[j>>2]=da-m*_,c[j>>2]|0);I=(g[j>>2]=ea+o*T,c[j>>2]|0);ga=J-n*(Q*_-Y*T);ha=K+p*(H*_-G*T);ia=I;ja=r;ka=(g[j>>2]=fa+o*_,c[j>>2]|0);la=L}else{ma=J;na=K;oa=ca;pa=fa;qa=ea;ra=da;sa=M;ta=N;ua=O; -va=P;wa=9}}else{ma=y;na=D;oa=u;pa=C;qa=A;ra=x;sa=z;ta=t;ua=B;va=w;wa=9}do if((wa|0)==9){wa=0;L=h+(a*156|0)+16|0;_=+g[L>>2];r=h+(a*156|0)+52|0;T=+g[r>>2];G=+g[h+(a*156|0)+12>>2];H=+g[h+(a*156|0)+8>>2];Y=+g[h+(a*156|0)+4>>2];Q=+g[i>>2];R=+g[h+(a*156|0)+48>>2];S=+g[h+(a*156|0)+44>>2];W=+g[h+(a*156|0)+40>>2];X=+g[h+(a*156|0)+36>>2];V=+g[h+(a*156|0)+104>>2];U=+g[h+(a*156|0)+100>>2];ba=E*(qa-na*G-oa+ma*Y)+F*(pa+na*H-ra-ma*Q)-+g[h+(a*156|0)+32>>2]-(_*+g[h+(a*156|0)+96>>2]+T*V);aa=E*(qa-na*R-oa+ma*W)+F*(pa+ -na*S-ra-ma*X)-+g[h+(a*156|0)+68>>2]-(_*U+T*+g[h+(a*156|0)+108>>2]);$=+g[h+(a*156|0)+80>>2]*ba+ +g[h+(a*156|0)+88>>2]*aa;xa=ba*+g[h+(a*156|0)+84>>2]+aa*+g[h+(a*156|0)+92>>2];ya=-$;za=-xa;if(!(!($<=-0)|!(xa<=-0))){xa=ya-_;$=za-T;Aa=E*xa;Ba=F*xa;xa=E*$;Ca=F*$;$=Aa+xa;Da=Ba+Ca;I=(g[j>>2]=oa-m*$,c[j>>2]|0);Z=(g[j>>2]=ra-m*Da,c[j>>2]|0);Ea=(g[j>>2]=qa+o*$,c[j>>2]|0);Fa=(g[j>>2]=pa+o*Da,c[j>>2]|0);g[L>>2]=ya;g[r>>2]=za;ga=ma-n*(Q*Ba-Y*Aa+(X*Ca-W*xa));ha=na+p*(H*Ba-G*Aa+(S*Ca-R*xa));ia=Ea;ja=I;ka=Fa;la=Z; -break}xa=ba*+g[h+(a*156|0)+24>>2];Ca=-xa;if(xa<=-0&aa+U*Ca>=0){U=Ca-_;xa=0-T;Aa=E*U;Ba=F*U;U=E*xa;za=F*xa;xa=U+Aa;ya=za+Ba;Z=(g[j>>2]=oa-m*xa,c[j>>2]|0);Fa=(g[j>>2]=ra-m*ya,c[j>>2]|0);I=(g[j>>2]=qa+o*xa,c[j>>2]|0);Ea=(g[j>>2]=pa+o*ya,c[j>>2]|0);g[L>>2]=Ca;c[r>>2]=0;ga=ma-n*(Ba*Q-Aa*Y+(za*X-U*W));ha=na+p*(Ba*H-Aa*G+(za*S-U*R));ia=I;ja=Z;ka=Ea;la=Fa;break}U=aa*+g[h+(a*156|0)+60>>2];za=-U;if(U<=-0&ba+V*za>=0){V=0-_;U=za-T;Aa=E*V;Ba=F*V;V=E*U;Ca=F*U;U=Aa+V;ya=Ba+Ca;Fa=(g[j>>2]=oa-m*U,c[j>>2]|0);Ea=(g[j>> -2]=ra-m*ya,c[j>>2]|0);Z=(g[j>>2]=qa+o*U,c[j>>2]|0);I=(g[j>>2]=pa+o*ya,c[j>>2]|0);c[L>>2]=0;g[r>>2]=za;ga=ma-n*(Ba*Q-Aa*Y+(Ca*X-V*W));ha=na+p*(Ba*H-Aa*G+(Ca*S-V*R));ia=Z;ja=Fa;ka=I;la=Ea;break}if(ba>=0&aa>=0){aa=0-_;_=0-T;T=E*aa;ba=F*aa;aa=E*_;V=F*_;_=T+aa;Ca=ba+V;Ea=(g[j>>2]=oa-m*_,c[j>>2]|0);I=(g[j>>2]=ra-m*Ca,c[j>>2]|0);Fa=(g[j>>2]=qa+o*_,c[j>>2]|0);Z=(g[j>>2]=pa+o*Ca,c[j>>2]|0);c[L>>2]=0;c[r>>2]=0;ga=ma-n*(ba*Q-T*Y+(V*X-aa*W));ha=na+p*(ba*H-T*G+(V*S-aa*R));ia=Fa;ja=Ea;ka=Z;la=I}else{ga=ma;ha=na; -ia=sa;ja=ta;ka=ua;la=va}}while(0);c[s>>2]=ja;c[v>>2]=la;h=c[e>>2]|0;g[h+(k*12|0)+8>>2]=ga;c[h+(l*12|0)>>2]=ia;c[h+(l*12|0)+4>>2]=ka;f=c[e>>2]|0;g[f+(l*12|0)+8>>2]=ha;a=a+1|0}while((a|0)<(c[b>>2]|0));return}function pi(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;b=c[a+52>>2]|0;if((b|0)<=0)return;d=c[a+44>>2]|0;e=c[a+48>>2]|0;a=0;do{f=c[e+(c[d+(a*156|0)+152>>2]<<2)>>2]|0;g=c[d+(a*156|0)+148>>2]|0;if((g|0)>0){h=0;do{c[f+64+(h*20|0)+8>>2]=c[d+(a*156|0)+(h*36|0)+16>>2];c[f+64+(h*20|0)+12>>2]=c[d+(a*156|0)+(h* -36|0)+20>>2];h=h+1|0}while((h|0)<(g|0))}a=a+1|0}while((a|0)<(b|0));return}function qi(a){a=a|0;var b=0,d=0,e=0,f=0,h=0,i=0,j=0,k=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,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;b=l;l=l+64|0;d=b+40|0;e=b+24|0;f=b;h=a+52|0;if((c[h>>2]|0)<=0){i=0;j=i>=-.014999999664723873;l=b;return j|0}k=a+40|0;m=a+ -28|0;a=d+8|0;n=d+12|0;o=e+8|0;p=e+12|0;q=d+4|0;r=e+4|0;s=f+4|0;t=f+8|0;u=f+12|0;v=f+16|0;w=0;x=0;y=c[m>>2]|0;while(1){z=c[k>>2]|0;A=z+(x*88|0)|0;B=c[z+(x*88|0)+32>>2]|0;C=c[z+(x*88|0)+36>>2]|0;D=+g[z+(x*88|0)+48>>2];G=+g[z+(x*88|0)+52>>2];H=+g[z+(x*88|0)+40>>2];I=+g[z+(x*88|0)+64>>2];J=+g[z+(x*88|0)+56>>2];K=+g[z+(x*88|0)+60>>2];L=+g[z+(x*88|0)+44>>2];M=+g[z+(x*88|0)+68>>2];N=c[z+(x*88|0)+84>>2]|0;O=+g[y+(B*12|0)>>2];P=+g[y+(B*12|0)+4>>2];Q=+g[y+(B*12|0)+8>>2];R=+g[y+(C*12|0)>>2];S=+g[y+(C*12|0)+ -4>>2];T=+g[y+(C*12|0)+8>>2];if((N|0)>0){U=H+L;V=Q;W=T;z=0;X=w;Y=O;Z=P;_=R;$=S;do{aa=+F(+V);g[a>>2]=aa;ba=+E(+V);g[n>>2]=ba;ca=+F(+W);g[o>>2]=ca;da=+E(+W);g[p>>2]=da;g[d>>2]=Y-(D*ba-G*aa);g[q>>2]=Z-(G*ba+D*aa);g[e>>2]=_-(J*da-K*ca);g[r>>2]=$-(K*da+J*ca);ri(f,A,d,e,z);ca=+g[f>>2];da=+g[s>>2];aa=+g[t>>2];ba=+g[u>>2];ea=+g[v>>2];fa=aa-Y;ga=ba-Z;ha=aa-_;aa=ba-$;X=X0?-(ea< --.20000000298023224?-.20000000298023224:ea)/ja:0;ja=ca*ba;ca=da*ba;Y=Y-H*ja;Z=Z-H*ca;V=V-I*(fa*ca-ga*ja);_=_+L*ja;$=$+L*ca;W=W+M*(ha*ca-aa*ja);z=z+1|0}while((z|0)!=(N|0));ka=V;la=W;ma=X;na=Z;oa=Y;pa=$;qa=_;ra=c[m>>2]|0}else{ka=Q;la=T;ma=w;na=P;oa=O;pa=S;qa=R;ra=y}g[ra+(B*12|0)>>2]=oa;g[ra+(B*12|0)+4>>2]=na;N=c[m>>2]|0;g[N+(B*12|0)+8>>2]=ka;g[N+(C*12|0)>>2]=qa;g[N+(C*12|0)+4>>2]=pa;y=c[m>>2]|0;g[y+(C*12|0)+8>>2]=la;x=x+1|0;if((x|0)>=(c[h>>2]|0)){i=ma;break}else w=ma}j=i>=-.014999999664723873;l=b;return j| -0}function ri(a,b,d,e,f){a=a|0;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;switch(c[b+72>>2]|0){case 0:{h=+g[d+12>>2];i=+g[b+24>>2];j=+g[d+8>>2];k=+g[b+28>>2];l=+g[d>>2]+(h*i-j*k);m=i*j+h*k+ +g[d+4>>2];k=+g[e+12>>2];h=+g[b>>2];j=+g[e+8>>2];i=+g[b+4>>2];n=+g[e>>2]+(k*h-j*i);o=h*j+k*i+ +g[e+4>>2];i=n-l;k=o-m;g[a>>2]=i;p=a+4|0;g[p>>2]=k;j=+C(+(i*i+k*k));h=1/j;if(j<1.1920928955078125E-7){q=i;r=k}else{j=k*h;s=i*h;g[a>>2]=s;g[p>>2]=j;q=s;r=j}g[a+8>>2]=(l+n)*.5; -g[a+12>>2]=(m+o)*.5;g[a+16>>2]=i*q+k*r-+g[b+76>>2]-+g[b+80>>2];return}case 1:{p=d+12|0;r=+g[p>>2];k=+g[b+16>>2];t=d+8|0;q=+g[t>>2];i=+g[b+20>>2];o=r*k-q*i;m=k*q+r*i;g[a>>2]=o;g[a+4>>2]=m;i=+g[p>>2];r=+g[b+24>>2];q=+g[t>>2];k=+g[b+28>>2];n=+g[e+12>>2];l=+g[b+(f<<3)>>2];j=+g[e+8>>2];s=+g[b+(f<<3)+4>>2];h=+g[e>>2]+(n*l-j*s);u=l*j+n*s+ +g[e+4>>2];g[a+16>>2]=o*(h-(+g[d>>2]+(i*r-q*k)))+(u-(r*q+i*k+ +g[d+4>>2]))*m-+g[b+76>>2]-+g[b+80>>2];g[a+8>>2]=h;g[a+12>>2]=u;return}case 2:{t=e+12|0;u=+g[t>>2];h=+g[b+ -16>>2];p=e+8|0;m=+g[p>>2];k=+g[b+20>>2];i=u*h-m*k;q=h*m+u*k;g[a>>2]=i;v=a+4|0;g[v>>2]=q;k=+g[t>>2];u=+g[b+24>>2];m=+g[p>>2];h=+g[b+28>>2];r=+g[d+12>>2];o=+g[b+(f<<3)>>2];s=+g[d+8>>2];n=+g[b+(f<<3)+4>>2];j=+g[d>>2]+(r*o-s*n);l=o*s+r*n+ +g[d+4>>2];g[a+16>>2]=i*(j-(+g[e>>2]+(k*u-m*h)))+(l-(u*m+k*h+ +g[e+4>>2]))*q-+g[b+76>>2]-+g[b+80>>2];g[a+8>>2]=j;g[a+12>>2]=l;g[a>>2]=-i;g[v>>2]=-q;return}default:{g[a+16>>2]=0;v=8716;b=c[v+4>>2]|0;e=a;c[e>>2]=c[v>>2];c[e+4>>2]=b;b=8716;e=c[b+4>>2]|0;v=a+8|0;c[v>>2]= -c[b>>2];c[v+4>>2]=e;return}}}function si(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,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,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;e=l;l=l+64|0;f=e+40|0;h=e+24|0;i=e;j=a+52|0;if((c[j>>2]|0)<=0){k=0;m=k>=-.007499999832361937;l=e;return m|0}n=a+40|0;o=a+28|0;a=f+8|0;p=f+12|0;q=h+ -8|0;r=h+12|0;s=f+4|0;t=h+4|0;u=i+4|0;v=i+8|0;w=i+12|0;x=i+16|0;y=0;z=0;while(1){A=c[n>>2]|0;B=A+(z*88|0)|0;C=c[A+(z*88|0)+32>>2]|0;D=c[A+(z*88|0)+36>>2]|0;G=+g[A+(z*88|0)+48>>2];H=+g[A+(z*88|0)+52>>2];I=+g[A+(z*88|0)+56>>2];J=+g[A+(z*88|0)+60>>2];K=c[A+(z*88|0)+84>>2]|0;if((C|0)==(b|0)|(C|0)==(d|0)){L=+g[A+(z*88|0)+40>>2];M=+g[A+(z*88|0)+64>>2]}else{L=0;M=0}if((D|0)==(b|0)|(D|0)==(d|0)){N=+g[A+(z*88|0)+68>>2];O=+g[A+(z*88|0)+44>>2]}else{N=0;O=0}A=c[o>>2]|0;P=+g[A+(C*12|0)>>2];Q=+g[A+(C*12|0)+4>>2]; -R=+g[A+(C*12|0)+8>>2];S=+g[A+(D*12|0)>>2];T=+g[A+(D*12|0)+4>>2];U=+g[A+(D*12|0)+8>>2];if((K|0)>0){V=L+O;W=0;X=U;Y=R;Z=y;_=P;$=Q;aa=S;ba=T;do{ca=+F(+Y);g[a>>2]=ca;da=+E(+Y);g[p>>2]=da;ea=+F(+X);g[q>>2]=ea;fa=+E(+X);g[r>>2]=fa;g[f>>2]=_-(G*da-H*ca);g[s>>2]=$-(H*da+G*ca);g[h>>2]=aa-(I*fa-J*ea);g[t>>2]=ba-(J*fa+I*ea);ri(i,B,f,h,W);ea=+g[i>>2];fa=+g[u>>2];ca=+g[v>>2];da=+g[w>>2];ga=+g[x>>2];ha=ca-_;ia=da-$;ja=ca-aa;ca=da-ba;Z=Z0?-(ga<-.20000000298023224?-.20000000298023224:ga)/la:0;la=ea*da;ea=fa*da;_=_-L*la;$=$-L*ea;Y=Y-M*(ha*ea-ia*la);aa=aa+O*la;ba=ba+O*ea;X=X+N*(ja*ea-ca*la);W=W+1|0}while((W|0)!=(K|0));ma=X;na=Y;oa=Z;pa=$;qa=_;ra=ba;sa=aa;ta=c[o>>2]|0}else{ma=U;na=R;oa=y;pa=Q;qa=P;ra=T;sa=S;ta=A}g[ta+(C*12|0)>>2]=qa;g[ta+(C*12|0)+4>>2]=pa;K=c[o>>2]|0;g[K+(C*12|0)+8>>2]=na;g[K+(D*12|0)>>2]=sa;g[K+(D*12|0)+4>>2]=ra;g[(c[o>>2]|0)+(D*12|0)+8>>2]=ma;z=z+1|0;if((z|0)>=(c[j>>2]|0)){k= -oa;break}else y=oa}m=k>=-.007499999832361937;l=e;return m|0}function ti(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;Se(b,c[(c[a+48>>2]|0)+12>>2]|0,d,c[(c[a+52>>2]|0)+12>>2]|0,e);return}function ui(a){a=a|0;fn(a);return}function vi(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;e=Pl(f,148)|0;$h(e,a,0,d,0);c[e>>2]=1724;return e|0}function wi(a,b){a=a|0;b=b|0;Pa[c[(c[a>>2]|0)+4>>2]&127](a);Ql(b,a,148);return}function xi(a,d,e,f){a=a|0;d=d|0;e=e|0;f=f|0;var h=0,i=0,j=0,k=0;h=l;l=l+48|0;i=h;j=c[(c[a+48>>2]|0)+12>>2]|0; -c[i>>2]=816;c[i+4>>2]=1;g[i+8>>2]=.009999999776482582;k=i+28|0;c[k>>2]=0;c[k+4>>2]=0;c[k+8>>2]=0;c[k+12>>2]=0;b[k+16>>1]=0;ze(j,i,c[a+56>>2]|0);Se(d,i,e,c[(c[a+52>>2]|0)+12>>2]|0,f);l=h;return}function yi(a){a=a|0;fn(a);return}function zi(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0;g=Pl(f,148)|0;$h(g,a,b,d,e);c[g>>2]=1744;return g|0}function Ai(a,b){a=a|0;b=b|0;Pa[c[(c[a>>2]|0)+4>>2]&127](a);Ql(b,a,148);return}function Bi(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;Ve(b,c[(c[a+48>>2]|0)+12>>2]|0,d,c[(c[a+ -52>>2]|0)+12>>2]|0,e);return}function Ci(a){a=a|0;fn(a);return}function Di(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;e=Pl(f,148)|0;$h(e,a,0,d,0);c[e>>2]=1764;return e|0}function Ei(a,b){a=a|0;b=b|0;Pa[c[(c[a>>2]|0)+4>>2]&127](a);Ql(b,a,148);return}function Fi(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;We(b,c[(c[a+48>>2]|0)+12>>2]|0,d,c[(c[a+52>>2]|0)+12>>2]|0,e);return}function Gi(a){a=a|0;fn(a);return}function Hi(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;e=Pl(f,148)|0;$h(e,a,0,d,0);c[e>>2]=1784;return e|0}function Ii(a, -b){a=a|0;b=b|0;Pa[c[(c[a>>2]|0)+4>>2]&127](a);Ql(b,a,148);return}function Ji(a){a=a|0;b[a+32>>1]=1;b[a+34>>1]=-1;b[a+36>>1]=0;c[a+40>>2]=0;c[a+24>>2]=0;c[a+28>>2]=0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;c[a+12>>2]=0;return}function Ki(d,e,f,g){d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0;c[d+40>>2]=c[g+4>>2];c[d+16>>2]=c[g+8>>2];c[d+20>>2]=c[g+12>>2];c[d+8>>2]=f;c[d+4>>2]=0;f=g+22|0;h=d+32|0;b[h>>1]=b[f>>1]|0;b[h+2>>1]=b[f+2>>1]|0;b[h+4>>1]=b[f+4>>1]|0;a[d+38>>0]=a[g+20>>0]|0;f=c[g>>2]|0;h=Ya[c[(c[f>> -2]|0)+8>>2]&31](f,e)|0;c[d+12>>2]=h;f=Ma[c[(c[h>>2]|0)+12>>2]&7](h)|0;h=Pl(e,f*28|0)|0;c[d+24>>2]=h;if((f|0)>0)i=0;else{j=d+28|0;c[j>>2]=0;k=g+16|0;l=c[k>>2]|0;c[d>>2]=l;return}do{c[h+(i*28|0)+16>>2]=0;c[h+(i*28|0)+24>>2]=-1;i=i+1|0}while((i|0)!=(f|0));j=d+28|0;c[j>>2]=0;k=g+16|0;l=c[k>>2]|0;c[d>>2]=l;return}function Li(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=a+12|0;e=c[d>>2]|0;f=Ma[c[(c[e>>2]|0)+12>>2]&7](e)|0;e=a+24|0;Ql(b,c[e>>2]|0,f*28|0);c[e>>2]=0;e=c[d>>2]|0;switch(c[e+4>>2]|0){case 0:{Pa[c[c[e>> -2]>>2]&127](e);Ql(b,e,20);c[d>>2]=0;return}case 1:{Pa[c[c[e>>2]>>2]&127](e);Ql(b,e,48);c[d>>2]=0;return}case 2:{Pa[c[c[e>>2]>>2]&127](e);Ql(b,e,152);c[d>>2]=0;return}case 3:{Pa[c[c[e>>2]>>2]&127](e);Ql(b,e,40);c[d>>2]=0;return}default:{c[d>>2]=0;return}}}function Mi(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;e=a+12|0;f=c[e>>2]|0;g=Ma[c[(c[f>>2]|0)+12>>2]&7](f)|0;f=a+28|0;c[f>>2]=g;if((g|0)<=0)return;g=a+24|0;h=0;do{i=c[g>>2]|0;j=i+(h*28|0)|0;k=c[e>>2]|0;_a[c[(c[k>>2]|0)+28>>2]&31](k, -j,d,h);c[i+(h*28|0)+24>>2]=Ce(b,j,j)|0;c[i+(h*28|0)+16>>2]=a;c[i+(h*28|0)+20>>2]=h;h=h+1|0}while((h|0)<(c[f>>2]|0));return}function Ni(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=a+28|0;if((c[d>>2]|0)<=0){c[d>>2]=0;return}e=a+24|0;a=0;do{f=(c[e>>2]|0)+(a*28|0)+24|0;De(b,c[f>>2]|0);c[f>>2]=-1;a=a+1|0}while((a|0)<(c[d>>2]|0));c[d>>2]=0;return}function Oi(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,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;f=l;l=l+48|0;h=f+24|0;i=f+ -8|0;j=f;k=a+28|0;if((c[k>>2]|0)<=0){l=f;return}m=a+24|0;n=a+12|0;a=h+4|0;o=i+4|0;p=h+8|0;q=i+8|0;r=h+12|0;s=i+12|0;t=e+4|0;u=d+4|0;v=j+4|0;w=0;do{x=c[m>>2]|0;y=c[n>>2]|0;z=x+(w*28|0)+20|0;_a[c[(c[y>>2]|0)+28>>2]&31](y,h,d,c[z>>2]|0);y=c[n>>2]|0;_a[c[(c[y>>2]|0)+28>>2]&31](y,i,e,c[z>>2]|0);z=x+(w*28|0)|0;A=+g[h>>2];B=+g[i>>2];C=+g[a>>2];D=+g[o>>2];g[z>>2]=A>2]=C>2];C=+g[q>>2];B=+g[r>>2];A=+g[s>>2];g[x+(w*28|0)+8>>2]=D>C?D:C;g[x+(w*28|0)+12>>2]=B>A?B:A;A=+g[t>>2]- -+g[u>>2];g[j>>2]=+g[e>>2]-+g[d>>2];g[v>>2]=A;Ee(b,c[x+(w*28|0)+24>>2]|0,z,j);w=w+1|0}while((w|0)<(c[k>>2]|0));l=f;return}function Pi(b,d){b=b|0;d=d|0;var e=0,f=0;Nl(b);fm(b+76|0);tj(b+102880|0);c[b+102992>>2]=0;c[b+102996>>2]=0;e=b+102960|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;a[b+103004>>0]=1;a[b+103005>>0]=1;a[b+103006>>0]=0;a[b+103007>>0]=1;a[b+102988>>0]=1;e=d;d=c[e+4>>2]|0;f=b+102980|0;c[f>>2]=c[e>>2];c[f+4>>2]=d;c[b+102876>>2]=4;g[b+103E3>>2]=0;c[b+102956>>2]=b;c[b+103040>> -2]=2148;c[b+103044>>2]=c[540];d=b+103008|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;return}function Qi(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;b=c[a+102960>>2]|0;if(b|0){d=b;do{b=d;d=c[d+112>>2]|0;e=c[b+116>>2]|0;while(1){if(!e)break;b=c[e+4>>2]|0;c[e+28>>2]=0;Li(e,a);e=b}}while((d|0)!=0)}d=a+102968|0;e=c[d>>2]|0;if(!e){f=a+102880|0;Be(f);g=a+76|0;gm(g);Ol(a);return}b=a+102876|0;h=e;do{e=(c[b>>2]&2|0)==0;do;while(!e);e=c[h+404>>2]|0;i= -h+408|0;if(e|0)c[e+408>>2]=c[i>>2];j=c[i>>2]|0;if(j|0)c[j+404>>2]=e;c[d>>2]=j;Sj(h);Ql(a,h,416);h=c[d>>2]|0}while((h|0)!=0);f=a+102880|0;Be(f);g=a+76|0;gm(g);Ol(a);return}function Ri(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;if(c[a+102876>>2]&2|0)return;d=c[b+404>>2]|0;e=b+408|0;if(d|0)c[d+408>>2]=c[e>>2];f=c[e>>2]|0;if(f|0)c[f+404>>2]=d;d=a+102968|0;if((c[d>>2]|0)==(b|0))c[d>>2]=f;Sj(b);Ql(a,b,416);return}function Si(a,b){a=a|0;b=b|0;c[a+102952>>2]=b;return}function Ti(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;if(c[a+ -102876>>2]&2|0){d=0;return d|0}e=Pl(a,168)|0;dj(e,b,a);c[e+108>>2]=0;b=a+102960|0;f=c[b>>2]|0;c[e+112>>2]=f;if(f|0)c[f+108>>2]=e;c[b>>2]=e;b=a+102972|0;c[b>>2]=(c[b>>2]|0)+1;d=e;return d|0}function Ui(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;if(c[a+102876>>2]&2|0)return;d=b+124|0;e=c[d>>2]|0;if(e|0){f=a+102992|0;g=e;do{e=g;g=c[g+12>>2]|0;h=c[f>>2]|0;if(!h)i=e+4|0;else{j=e+4|0;Ra[c[(c[h>>2]|0)+8>>2]&63](h,c[j>>2]|0);i=j}Vi(a,c[i>>2]|0);c[d>>2]=g}while((g|0)!=0)}c[d>>2]=0;d=b+128|0;g=c[d>> -2]|0;if(g|0){i=a+102880|0;f=g;do{g=f;f=c[f+12>>2]|0;uj(i,c[g+4>>2]|0)}while((f|0)!=0)}c[d>>2]=0;d=b+116|0;f=c[d>>2]|0;if(!f)k=b+120|0;else{i=a+102992|0;g=a+102880|0;j=b+120|0;h=f;do{f=h;h=c[h+4>>2]|0;e=c[i>>2]|0;if(e|0)Ra[c[(c[e>>2]|0)+12>>2]&63](e,f);Ni(f,g);Li(f,a);Ql(a,f,44);c[d>>2]=h;c[j>>2]=(c[j>>2]|0)+-1}while((h|0)!=0);k=j}c[d>>2]=0;c[k>>2]=0;k=c[b+108>>2]|0;d=b+112|0;if(k|0)c[k+112>>2]=c[d>>2];j=c[d>>2]|0;if(j|0)c[j+108>>2]=k;k=a+102960|0;if((c[k>>2]|0)==(b|0))c[k>>2]=j;j=a+102972|0;c[j>> -2]=(c[j>>2]|0)+-1;ej(b);Ql(a,b,168);return}function Vi(d,f){d=d|0;f=f|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;if(c[d+102876>>2]&2|0)return;h=a[f+61>>0]|0;i=c[f+8>>2]|0;j=f+12|0;if(i|0)c[i+12>>2]=c[j>>2];k=c[j>>2]|0;if(k|0)c[k+8>>2]=i;i=d+102964|0;if((c[i>>2]|0)==(f|0))c[i>>2]=k;k=c[f+48>>2]|0;i=c[f+52>>2]|0;j=k+4|0;l=e[j>>1]|0;if(!(l&2)){b[j>>1]=l|2;g[k+160>>2]=0}l=i+4|0;j=e[l>>1]|0;if(!(j&2)){b[l>>1]=j|2;g[i+160>>2]=0}j=f+24|0;l=c[j>>2]|0;m=f+28|0;if(l|0)c[l+12>>2]=c[m>>2];n=c[m>>2]|0;if(n|0)c[n+8>> -2]=l;l=k+124|0;if((f+16|0)==(c[l>>2]|0))c[l>>2]=n;c[j>>2]=0;c[m>>2]=0;m=f+40|0;j=c[m>>2]|0;n=f+44|0;if(j|0)c[j+12>>2]=c[n>>2];l=c[n>>2]|0;if(l|0)c[l+8>>2]=j;j=i+124|0;if((f+32|0)==(c[j>>2]|0))c[j>>2]=l;c[m>>2]=0;c[n>>2]=0;bh(f,d);f=d+102976|0;c[f>>2]=(c[f>>2]|0)+-1;if(h<<24>>24)return;h=c[i+128>>2]|0;if(!h)return;else o=h;do{if((c[o>>2]|0)==(k|0)){h=(c[o+4>>2]|0)+4|0;c[h>>2]=c[h>>2]|8}o=c[o+12>>2]|0}while((o|0)!=0);return}function Wi(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;if(c[b+102876>> -2]&2|0){e=0;return e|0}f=ah(d,b)|0;c[f+8>>2]=0;g=b+102964|0;h=c[g>>2]|0;c[f+12>>2]=h;if(h|0)c[h+8>>2]=f;c[g>>2]=f;g=b+102976|0;c[g>>2]=(c[g>>2]|0)+1;g=f+16|0;c[f+20>>2]=f;b=c[f+52>>2]|0;c[g>>2]=b;c[f+24>>2]=0;h=c[f+48>>2]|0;i=h+124|0;j=c[i>>2]|0;c[f+28>>2]=j;if(j|0)c[j+8>>2]=g;c[i>>2]=g;g=f+32|0;c[f+36>>2]=f;c[g>>2]=h;c[f+40>>2]=0;h=b+124|0;b=c[h>>2]|0;c[f+44>>2]=b;if(b|0)c[b+8>>2]=g;c[h>>2]=g;g=c[d+8>>2]|0;if(a[d+16>>0]|0){e=f;return e|0}h=c[(c[d+12>>2]|0)+128>>2]|0;if(!h){e=f;return e|0}else k= -h;do{if((c[k>>2]|0)==(g|0)){h=(c[k+4>>2]|0)+4|0;c[h>>2]=c[h>>2]|8}k=c[k+12>>2]|0}while((k|0)!=0);e=f;return e|0}function Xi(a,b){a=a|0;b=b|0;var d=0,e=0;if(c[a+102876>>2]&2|0){d=0;return d|0}e=Pl(a,416)|0;Pj(e,b,a);c[e+404>>2]=0;b=a+102968|0;a=c[b>>2]|0;c[e+408>>2]=a;if(a|0)c[a+404>>2]=e;c[b>>2]=e;d=e;return d|0}function Yi(d,f){d=d|0;f=f|0;var h=0,i=0,j=0,k=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;h=l;l=l+96|0;i=h+32|0;j=h;k=d+102960|0;m=c[k>>2]|0;if(m|0){n=m;do{m=n+12|0;o=n+28|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];n=c[n+112>>2]|0}while((n|0)!=0)}n=d+103020|0;g[n>>2]=0;m=d+103024|0;g[m>>2]=0;o=d+103028|0;g[o>>2]=0;p=d+102972|0;q=d+102880|0;r=d+76|0;$e(i,c[p>>2]|0,c[d+102944>>2]|0,c[d+102976>>2]|0,r,c[d+102952>>2]|0);s=c[k>>2]|0;if(s|0){t=s;do{s=t+4|0;b[s>>1]=b[s>>1]&-2;t=c[t+112>>2]|0}while((t|0)!=0)}t= -c[d+102940>>2]|0;if(t|0){s=t;do{t=s+4|0;c[t>>2]=c[t>>2]&-2;s=c[s+12>>2]|0}while((s|0)!=0)}s=c[d+102964>>2]|0;if(s|0){t=s;do{a[t+60>>0]=0;t=c[t+12>>2]|0}while((t|0)!=0)}t=hm(r,c[p>>2]<<2)|0;p=c[k>>2]|0;if(p|0){s=i+28|0;u=i+36|0;v=i+32|0;w=i+8|0;x=i+16|0;y=i+12|0;z=d+102980|0;A=d+102988|0;B=j+12|0;C=j+16|0;D=j+20|0;E=p;do{p=E+4|0;F=b[p>>1]|0;if((F&35)==34?c[E>>2]|0:0){c[s>>2]=0;c[u>>2]=0;c[v>>2]=0;c[t>>2]=E;b[p>>1]=F|1;F=1;p=0;G=0;H=0;while(1){I=F+-1|0;J=c[t+(I<<2)>>2]|0;c[J+8>>2]=H;c[(c[w>>2]|0)+(H<< -2)>>2]=J;H=H+1|0;K=J+4|0;L=e[K>>1]|0;if(!(L&2)){b[K>>1]=L|2;g[J+160>>2]=0}if(c[J>>2]|0){L=c[J+128>>2]|0;if(!L){M=I;N=G}else{K=L;L=I;O=G;while(1){P=c[K+4>>2]|0;Q=P+4|0;R=c[Q>>2]|0;do if((R&7|0)==6?(a[(c[P+48>>2]|0)+38>>0]|0)==0:0){if(a[(c[P+52>>2]|0)+38>>0]|0){S=L;T=O;break}U=c[y>>2]|0;V=O+1|0;c[u>>2]=V;c[U+(O<<2)>>2]=P;c[Q>>2]=R|1;U=c[K>>2]|0;W=U+4|0;X=b[W>>1]|0;if(X&1){S=L;T=V;break}c[t+(L<<2)>>2]=U;b[W>>1]=X|1;S=L+1|0;T=V}else{S=L;T=O}while(0);K=c[K+12>>2]|0;if(!K){M=S;N=T;break}else{L=S;O=T}}}O= -c[J+124>>2]|0;if(!O){Y=M;Z=p;_=N}else{L=O;O=M;K=p;while(1){R=L+4|0;Q=c[R>>2]|0;do if((a[Q+60>>0]|0)==0?(P=c[L>>2]|0,V=P+4|0,X=b[V>>1]|0,(X&32)!=0):0){W=c[x>>2]|0;U=K+1|0;c[v>>2]=U;c[W+(K<<2)>>2]=Q;a[(c[R>>2]|0)+60>>0]=1;if(X&1){$=O;aa=U;break}c[t+(O<<2)>>2]=P;b[V>>1]=X|1;$=O+1|0;aa=U}else{$=O;aa=K}while(0);L=c[L+12>>2]|0;if(!L){Y=$;Z=aa;_=N;break}else{O=$;K=aa}}}}else{Y=I;Z=p;_=G}if((Y|0)<=0)break;else{F=Y;p=Z;G=_}}c[s>>2]=H;bf(i,j,f,z,(a[A>>0]|0)!=0);g[n>>2]=+g[B>>2]+ +g[n>>2];g[m>>2]=+g[C>>2]+ +g[m>> -2];g[o>>2]=+g[D>>2]+ +g[o>>2];G=c[s>>2]|0;if((G|0)>0){p=c[w>>2]|0;F=0;do{K=c[p+(F<<2)>>2]|0;if(!(c[K>>2]|0)){O=K+4|0;b[O>>1]=b[O>>1]&-2}F=F+1|0}while((F|0)<(G|0))}}E=c[E+112>>2]|0}while((E|0)!=0)}jm(r,t);Vl(j);t=c[k>>2]|0;if(!t){wj(q);ba=+Xl(j);ca=d+103032|0;g[ca>>2]=ba;af(i);l=h;return}else da=t;do{if(b[da+4>>1]&1?c[da>>2]|0:0)hj(da);da=c[da+112>>2]|0}while((da|0)!=0);wj(q);ba=+Xl(j);ca=d+103032|0;g[ca>>2]=ba;af(i);l=h;return}function Zi(d,f){d=d|0;f=f|0;var h=0,i=0,k=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,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,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;h=l;l=l+272|0;i=h+216|0;k=h+84|0;m=h+48|0;n=h+40|0;o=h;p=d+102880|0;q=d+102952|0;$e(i,64,32,0,d+76|0,c[q>>2]| -0);r=d+103007|0;if(a[r>>0]|0){s=c[d+102960>>2]|0;if(s|0){t=s;do{s=t+4|0;b[s>>1]=b[s>>1]&-2;g[t+76>>2]=0;t=c[t+112>>2]|0}while((t|0)!=0)}t=d+102940|0;s=c[t>>2]|0;if(!s)u=t;else{v=s;do{s=v+4|0;c[s>>2]=c[s>>2]&-34;c[v+128>>2]=0;g[v+132>>2]=1;v=c[v+12>>2]|0}while((v|0)!=0);u=t}}else u=d+102940|0;t=i+28|0;v=i+36|0;s=i+32|0;w=i+8|0;x=i+12|0;y=n+4|0;z=i+40|0;A=i+44|0;B=o+4|0;C=o+8|0;D=o+16|0;G=f+12|0;H=o+12|0;I=f+20|0;J=o+20|0;K=o+24|0;L=d+103006|0;d=k+16|0;M=k+20|0;N=k+24|0;O=k+44|0;P=k+48|0;Q=k+52|0;R= -k+28|0;S=k+56|0;T=k+92|0;U=k+128|0;V=m+4|0;W=c[u>>2]|0;a:do if(W|0){X=W;while(1){Y=0;Z=1;_=X;while(1){$=_+4|0;aa=c[$>>2]|0;do if((aa&4|0)!=0?(c[_+128>>2]|0)<=8:0){if(!(aa&32)){ba=c[_+48>>2]|0;ca=c[_+52>>2]|0;if(a[ba+38>>0]|0){da=Y;ea=Z;break}if(a[ca+38>>0]|0){da=Y;ea=Z;break}fa=c[ba+8>>2]|0;ga=c[ca+8>>2]|0;ha=c[fa>>2]|0;ia=c[ga>>2]|0;ja=b[fa+4>>1]|0;ka=b[ga+4>>1]|0;if(!((ha|0)!=0&(ja&2)!=0|(ia|0)!=0&(ka&2)!=0)){da=Y;ea=Z;break}if(!((ha|0)!=2|(ja&8)!=0|((ia|0)!=2|(ka&8)!=0))){da=Y;ea=Z;break}ka=fa+ -44|0;ia=fa+76|0;la=+g[ia>>2];ja=ga+44|0;ha=ga+76|0;ma=+g[ha>>2];if(!(la>2];qa=ga+56|0;ra=+g[qa>>2];sa=na*(+g[ga+64>>2]-ra);g[oa>>2]=pa+na*(+g[ga+60>>2]-pa);g[qa>>2]=ra+sa;qa=ga+68|0;sa=+g[qa>>2];g[qa>>2]=sa+na*(+g[ga+72>>2]-sa);g[ha>>2]=la;ta=la}else ta=la;else{sa=(ma-la)/(1-la);ha=fa+52|0;la=+g[ha>>2];ga=fa+56|0;na=+g[ga>>2];ra=sa*(+g[fa+64>>2]-na);g[ha>>2]=la+sa*(+g[fa+60>>2]-la);g[ga>>2]=na+ra;ga=fa+68|0;ra=+g[ga>>2];g[ga>>2]=ra+sa*(+g[fa+72>> -2]-ra);g[ia>>2]=ma;ta=ma}ia=c[_+56>>2]|0;fa=c[_+60>>2]|0;c[d>>2]=0;c[M>>2]=0;g[N>>2]=0;c[O>>2]=0;c[P>>2]=0;g[Q>>2]=0;Nd(k,c[ba+12>>2]|0,ia);Nd(R,c[ca+12>>2]|0,fa);ua=S;va=ka;wa=ua+36|0;do{c[ua>>2]=c[va>>2];ua=ua+4|0;va=va+4|0}while((ua|0)<(wa|0));ua=T;va=ja;wa=ua+36|0;do{c[ua>>2]=c[va>>2];ua=ua+4|0;va=va+4|0}while((ua|0)<(wa|0));g[U>>2]=1;Jd(m,k);if((c[m>>2]|0)==3){ma=ta+(1-ta)*+g[V>>2];xa=ma<1?ma:1}else xa=1;g[_+132>>2]=xa;c[$>>2]=c[$>>2]|32;ya=xa}else ya=+g[_+132>>2];ja=ya>2]|0;if(!_)break;else{Y=da;Z=ea}}if(ea>.9999988079071045|(da|0)==0)break a;Y=c[(c[da+48>>2]|0)+8>>2]|0;_=c[(c[da+52>>2]|0)+8>>2]|0;$=Y+44|0;ua=k;va=$;wa=ua+36|0;do{c[ua>>2]=c[va>>2];ua=ua+4|0;va=va+4|0}while((ua|0)<(wa|0));aa=_+44|0;ua=m;va=aa;wa=ua+36|0;do{c[ua>>2]=c[va>>2];ua=ua+4|0;va=va+4|0}while((ua|0)<(wa|0));ja=Y+76|0;Z=+g[ja>>2];ma=(ea-Z)/(1-Z);ka=Y+60|0;fa=Y+52|0;Z=+g[fa>>2];ca=Y+64|0;ia=Y+56|0;ra=+g[ia>>2];sa=ma*(+g[ca>>2]-ra);g[fa>>2]=Z+ma*(+g[ka>>2]- -Z);g[ia>>2]=ra+sa;ia=Y+72|0;fa=Y+68|0;sa=+g[fa>>2];ra=sa+ma*(+g[ia>>2]-sa);g[fa>>2]=ra;g[ja>>2]=ea;ja=Y+52|0;fa=c[ja>>2]|0;ba=c[ja+4>>2]|0;ja=Y+60|0;c[ja>>2]=fa;c[ja+4>>2]=ba;g[ia>>2]=ra;sa=+F(+ra);ja=Y+20|0;g[ja>>2]=sa;ma=+E(+ra);ga=Y+24|0;g[ga>>2]=ma;ha=Y+44|0;ra=+g[ha>>2];qa=Y+48|0;Z=+g[qa>>2];na=(c[j>>2]=fa,+g[j>>2])-(ma*ra-sa*Z);la=(c[j>>2]=ba,+g[j>>2])-(sa*ra+ma*Z);ba=Y+12|0;g[ba>>2]=na;fa=Y+16|0;g[fa>>2]=la;oa=_+76|0;la=+g[oa>>2];na=(ea-la)/(1-la);za=_+60|0;Aa=_+52|0;la=+g[Aa>>2];Ba=_+64|0; -Ca=_+56|0;Z=+g[Ca>>2];ma=na*(+g[Ba>>2]-Z);g[Aa>>2]=la+na*(+g[za>>2]-la);g[Ca>>2]=Z+ma;Ca=_+72|0;Aa=_+68|0;ma=+g[Aa>>2];Z=ma+na*(+g[Ca>>2]-ma);g[Aa>>2]=Z;g[oa>>2]=ea;oa=_+52|0;Aa=c[oa>>2]|0;Da=c[oa+4>>2]|0;oa=_+60|0;c[oa>>2]=Aa;c[oa+4>>2]=Da;g[Ca>>2]=Z;ma=+F(+Z);oa=_+20|0;g[oa>>2]=ma;na=+E(+Z);Ea=_+24|0;g[Ea>>2]=na;Fa=_+44|0;Z=+g[Fa>>2];Ga=_+48|0;la=+g[Ga>>2];ra=(c[j>>2]=Aa,+g[j>>2])-(na*Z-ma*la);sa=(c[j>>2]=Da,+g[j>>2])-(ma*Z+na*la);Da=_+12|0;g[Da>>2]=ra;Aa=_+16|0;g[Aa>>2]=sa;bi(da,c[q>>2]|0);Ha= -da+4|0;Ia=c[Ha>>2]|0;Ja=Ia&-33;c[Ha>>2]=Ja;Ka=da+128|0;c[Ka>>2]=(c[Ka>>2]|0)+1;if((Ia&6|0)==6){Ka=Y+4|0;La=b[Ka>>1]|0;Ma=La&65535;if(!(Ma&2)){Na=(Ma|2)&65535;b[Ka>>1]=Na;g[Y+160>>2]=0;Oa=Na}else Oa=La;La=_+4|0;Na=e[La>>1]|0;if(!(Na&2)){b[La>>1]=Na|2;g[_+160>>2]=0;Pa=b[Ka>>1]|0}else Pa=Oa;c[s>>2]=0;Na=Y+8|0;c[Na>>2]=0;c[c[w>>2]>>2]=Y;Ma=_+8|0;c[Ma>>2]=1;c[(c[w>>2]|0)+4>>2]=_;c[t>>2]=2;Qa=c[x>>2]|0;c[v>>2]=1;c[Qa>>2]=da;b[Ka>>1]=Pa|1;b[La>>1]=b[La>>1]|1;c[Ha>>2]=Ja|1;c[n>>2]=Y;c[y>>2]=_;Ja=0;La=Y;while(1){b:do if((c[La>> -2]|0)==2?(Ka=c[La+128>>2]|0,Ka|0):0){Qa=La+4|0;Ra=Ka;do{if((c[t>>2]|0)==(c[z>>2]|0))break b;if((c[v>>2]|0)==(c[A>>2]|0))break b;Ka=c[Ra+4>>2]|0;Sa=Ka+4|0;c:do if(!(c[Sa>>2]&1)){Ta=c[Ra>>2]|0;do if((c[Ta>>2]|0)==2){if(b[Qa>>1]&8)break;if(!(b[Ta+4>>1]&8))break c}while(0);if(!(a[(c[Ka+48>>2]|0)+38>>0]|0)){if(a[(c[Ka+52>>2]|0)+38>>0]|0)break;Ua=Ta+44|0;ua=o;va=Ua;wa=ua+36|0;do{c[ua>>2]=c[va>>2];ua=ua+4|0;va=va+4|0}while((ua|0)<(wa|0));Va=Ta+4|0;if(!(b[Va>>1]&1)){Wa=Ta+76|0;sa=+g[Wa>>2];ra=(ea-sa)/(1- -sa);Xa=Ta+52|0;sa=+g[Xa>>2];Ya=Ta+56|0;la=+g[Ya>>2];na=ra*(+g[Ta+64>>2]-la);g[Xa>>2]=sa+ra*(+g[Ta+60>>2]-sa);g[Ya>>2]=la+na;Ya=Ta+72|0;Xa=Ta+68|0;na=+g[Xa>>2];la=na+ra*(+g[Ya>>2]-na);g[Xa>>2]=la;g[Wa>>2]=ea;Wa=Ta+52|0;Xa=c[Wa>>2]|0;Za=c[Wa+4>>2]|0;Wa=Ta+60|0;c[Wa>>2]=Xa;c[Wa+4>>2]=Za;g[Ya>>2]=la;na=+F(+la);g[Ta+20>>2]=na;ra=+E(+la);g[Ta+24>>2]=ra;la=+g[Ta+44>>2];sa=+g[Ta+48>>2];Z=(c[j>>2]=Xa,+g[j>>2])-(ra*la-na*sa);ma=(c[j>>2]=Za,+g[j>>2])-(na*la+ra*sa);g[Ta+12>>2]=Z;g[Ta+16>>2]=ma}bi(Ka,c[q>>2]| -0);Za=c[Sa>>2]|0;do if(!(Za&4)){ua=Ua;va=o;wa=ua+36|0;do{c[ua>>2]=c[va>>2];ua=ua+4|0;va=va+4|0}while((ua|0)<(wa|0));ma=+g[Ta+72>>2];Z=+F(+ma);g[Ta+20>>2]=Z;sa=+E(+ma);g[Ta+24>>2]=sa;ma=+g[Ta+44>>2];ra=+g[Ta+48>>2];la=+g[Ta+64>>2]-(Z*ma+sa*ra);g[Ta+12>>2]=+g[Ta+60>>2]-(sa*ma-Z*ra);g[Ta+16>>2]=la}else{if(!(Za&2)){ua=Ua;va=o;wa=ua+36|0;do{c[ua>>2]=c[va>>2];ua=ua+4|0;va=va+4|0}while((ua|0)<(wa|0));la=+g[Ta+72>>2];ra=+F(+la);g[Ta+20>>2]=ra;Z=+E(+la);g[Ta+24>>2]=Z;la=+g[Ta+44>>2];ma=+g[Ta+48>>2];sa=+g[Ta+ -64>>2]-(ra*la+Z*ma);g[Ta+12>>2]=+g[Ta+60>>2]-(Z*la-ra*ma);g[Ta+16>>2]=sa;break}c[Sa>>2]=Za|1;Xa=c[x>>2]|0;Ya=c[v>>2]|0;c[v>>2]=Ya+1;c[Xa+(Ya<<2)>>2]=Ka;Ya=e[Va>>1]|0;if(Ya&1|0)break;b[Va>>1]=Ya|1;if((Ya&2|0)==0&(c[Ta>>2]|0)!=0){b[Va>>1]=Ya|3;g[Ta+160>>2]=0}Ya=c[t>>2]|0;c[Ta+8>>2]=Ya;c[(c[w>>2]|0)+(Ya<<2)>>2]=Ta;c[t>>2]=Ya+1}while(0)}}while(0);Ra=c[Ra+12>>2]|0}while((Ra|0)!=0)}while(0);Ra=Ja+1|0;if((Ra|0)>=2)break;Ja=Ra;La=c[n+(Ra<<2)>>2]|0}sa=(1-ea)*+g[f>>2];g[o>>2]=sa;g[B>>2]=1/sa;g[C>>2]=1;c[D>> -2]=20;c[H>>2]=c[G>>2];c[J>>2]=c[I>>2];a[K>>0]=0;cf(i,o,c[Na>>2]|0,c[Ma>>2]|0);if((c[t>>2]|0)>0){La=0;do{Ja=c[(c[w>>2]|0)+(La<<2)>>2]|0;Y=Ja+4|0;b[Y>>1]=b[Y>>1]&-2;if((c[Ja>>2]|0)==2?(hj(Ja),Y=c[Ja+128>>2]|0,Y|0):0){Ja=Y;do{Y=(c[Ja+4>>2]|0)+4|0;c[Y>>2]=c[Y>>2]&-34;Ja=c[Ja+12>>2]|0}while((Ja|0)!=0)}La=La+1|0}while((La|0)<(c[t>>2]|0))}wj(p);if(a[L>>0]|0)break}else{c[Ha>>2]=Ia&-37;ua=$;va=k;wa=ua+36|0;do{c[ua>>2]=c[va>>2];ua=ua+4|0;va=va+4|0}while((ua|0)<(wa|0));ua=aa;va=m;wa=ua+36|0;do{c[ua>>2]=c[va>> -2];ua=ua+4|0;va=va+4|0}while((ua|0)<(wa|0));sa=+g[ia>>2];ma=+F(+sa);g[ja>>2]=ma;ra=+E(+sa);g[ga>>2]=ra;sa=+g[ha>>2];la=+g[qa>>2];Z=+g[ca>>2]-(ma*sa+ra*la);g[ba>>2]=+g[ka>>2]-(ra*sa-ma*la);g[fa>>2]=Z;Z=+g[Ca>>2];la=+F(+Z);g[oa>>2]=la;ma=+E(+Z);g[Ea>>2]=ma;Z=+g[Fa>>2];sa=+g[Ga>>2];ra=+g[Ba>>2]-(la*Z+ma*sa);g[Da>>2]=+g[za>>2]-(ma*Z-la*sa);g[Aa>>2]=ra}X=c[u>>2]|0;if(!X)break a}a[r>>0]=0;af(i);l=h;return}while(0);a[r>>0]=1;af(i);l=h;return}function _i(b,d,e,f,h){b=b|0;d=+d;e=e|0;f=f|0;h=h|0;var i=0,j= -0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;i=l;l=l+48|0;j=i+8|0;k=i+16|0;m=i;Vl(j);n=b+102876|0;o=c[n>>2]|0;p=b+102880|0;if(!(o&1))q=o;else{wj(p);o=c[n>>2]&-2;c[n>>2]=o;q=o}c[n>>2]=q|2;g[k>>2]=d;c[k+12>>2]=e;c[k+16>>2]=f;c[k+20>>2]=h;h=d>0;f=k+4|0;g[f>>2]=h?1/d:0;e=b+103E3|0;g[k+8>>2]=+g[e>>2]*d;a[k+24>>0]=a[b+103004>>0]|0;Vl(m);vj(p);g[b+103012>>2]=+Xl(m);if((a[b+103007>>0]|0)!=0&h){Vl(m);h=c[b+102968>>2]|0;if(h|0){p=h;do{rl(p,k);p=c[p+408>>2]|0}while((p|0)!=0)}Yi(b,k);g[b+103016>>2]=+Xl(m); -r=+g[k>>2]}else r=d;if((a[b+103005>>0]|0)!=0&r>0){Vl(m);Zi(b,k);g[b+103036>>2]=+Xl(m);s=+g[k>>2]}else s=r;if(s>0)c[e>>2]=c[f>>2];f=c[n>>2]|0;if(!(f&4)){t=f&-3;c[n>>2]=t;u=+Xl(j);v=b+103008|0;g[v>>2]=u;l=i;return}e=c[b+102960>>2]|0;if(!e){t=f&-3;c[n>>2]=t;u=+Xl(j);v=b+103008|0;g[v>>2]=u;l=i;return}else w=e;do{g[w+92>>2]=0;g[w+96>>2]=0;g[w+100>>2]=0;w=c[w+112>>2]|0}while((w|0)!=0);t=f&-3;c[n>>2]=t;u=+Xl(j);v=b+103008|0;g[v>>2]=u;l=i;return}function $i(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;e=l;l= -l+16|0;f=e;g=a+102880|0;c[f>>2]=g;c[f+4>>2]=b;aj(g,f,d);f=c[a+102968>>2]|0;if(!f){l=e;return}a=f;do{if(Ya[c[(c[b>>2]|0)+16>>2]&31](b,a)|0)Kl(a,b,d);a=c[a+408>>2]|0}while((a|0)!=0);l=e;return}function aj(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,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;e=l;l=l+1040|0;f=e;h=f+4|0;c[f>>2]=h;i=f+1028|0;j=f+1032|0;c[j>>2]=256;c[h>>2]=c[a>>2];c[i>>2]=1;k=a+4|0;a=d+4|0;m=d+8|0;n=d+12|0;o=b+4|0;p=1;q=h;a:while(1){r=p+-1|0;c[i>>2]=r;s=c[q+(r<<2)>>2]|0;do if((s| -0)!=-1?(t=c[k>>2]|0,!((+g[d>>2]-+g[t+(s*36|0)+8>>2]>0?1:+g[a>>2]-+g[t+(s*36|0)+12>>2]>0)|+g[t+(s*36|0)>>2]-+g[m>>2]>0|+g[t+(s*36|0)+4>>2]-+g[n>>2]>0)):0){u=t+(s*36|0)+24|0;if((c[u>>2]|0)==-1){v=c[o>>2]|0;if(!(Ya[c[(c[v>>2]|0)+8>>2]&31](v,c[(c[(c[(c[b>>2]|0)+4>>2]|0)+(s*36|0)+16>>2]|0)+16>>2]|0)|0))break a;w=c[i>>2]|0;break}if((r|0)==(c[j>>2]|0)?(c[j>>2]=r<<1,v=_l(r<<3)|0,c[f>>2]=v,Qn(v|0,q|0,c[i>>2]<<2|0)|0,(q|0)!=(h|0)):0)$l(q);v=c[f>>2]|0;c[v+(c[i>>2]<<2)>>2]=c[u>>2];u=(c[i>>2]|0)+1|0;c[i>>2]=u; -x=t+(s*36|0)+28|0;if((u|0)==(c[j>>2]|0)?(c[j>>2]=u<<1,t=_l(u<<3)|0,c[f>>2]=t,Qn(t|0,v|0,c[i>>2]<<2|0)|0,(v|0)!=(h|0)):0)$l(v);c[(c[f>>2]|0)+(c[i>>2]<<2)>>2]=c[x>>2];x=(c[i>>2]|0)+1|0;c[i>>2]=x;w=x}else w=r;while(0);if((w|0)<=0)break;p=w;q=c[f>>2]|0}q=c[f>>2]|0;if((q|0)==(h|0)){l=e;return}$l(q);c[f>>2]=0;l=e;return}function bj(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,m=0,n=0;f=l;l=l+32|0;h=f+24|0;i=f;j=a+102880|0;c[h>>2]=j;c[h+4>>2]=b;g[i+16>>2]=1;k=d;m=c[k+4>>2]|0;n=i;c[n>>2]=c[k>> -2];c[n+4>>2]=m;m=e;n=c[m+4>>2]|0;k=i+8|0;c[k>>2]=c[m>>2];c[k+4>>2]=n;cj(j,h,i);i=c[a+102968>>2]|0;if(!i){l=f;return}a=i;do{if(Ya[c[(c[b>>2]|0)+16>>2]&31](b,a)|0)Ll(a,b,d,e);a=c[a+408>>2]|0}while((a|0)!=0);l=f;return}function cj(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,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,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;e=l;l=l+1088| -0;f=e+1064|0;h=e+1056|0;i=e+20|0;j=e;k=+g[d>>2];m=+g[d+4>>2];n=d+8|0;o=+g[n>>2]-k;p=+g[d+12>>2]-m;q=+C(+(o*o+p*p));r=q<1.1920928955078125E-7;s=1/q;q=r?o:o*s;t=r?p:p*s;s=-t;u=t<-0?s:t;t=q>0?q:-q;v=+g[d+16>>2];w=k+o*v;x=m+p*v;r=i+4|0;c[i>>2]=r;y=i+1028|0;z=i+1032|0;c[z>>2]=256;c[r>>2]=c[a>>2];c[y>>2]=1;A=a+4|0;a=j+8|0;B=j+16|0;D=f+8|0;E=j+4|0;F=j+8|0;G=j+12|0;H=h+4|0;I=b+4|0;J=v;K=1;L=r;v=kw?k:w;w=m>x?m:x;a:while(1){O=K+-1|0;c[y>>2]=O;P=c[L+(O<<2)>>2]|0;do if(((P|0)!=-1?(Q=c[A>> -2]|0,x=+g[Q+(P*36|0)+8>>2],R=+g[Q+(P*36|0)+12>>2],S=+g[Q+(P*36|0)>>2],T=+g[Q+(P*36|0)+4>>2],!(v-x>0|M-R>0|S-N>0|T-w>0)):0)?(U=(k-(x+S)*.5)*s+q*(m-(R+T)*.5),!((U>0?U:-U)-(u*((x-S)*.5)+t*((R-T)*.5))>0)):0){V=Q+(P*36|0)+24|0;if((c[V>>2]|0)==-1){W=d;X=c[W+4>>2]|0;Y=j;c[Y>>2]=c[W>>2];c[Y+4>>2]=X;X=n;Y=c[X+4>>2]|0;W=a;c[W>>2]=c[X>>2];c[W+4>>2]=Y;g[B>>2]=J;Y=c[(c[(c[b>>2]|0)+4>>2]|0)+(P*36|0)+16>>2]|0;W=c[Y+16>>2]|0;X=c[W+12>>2]|0;if(Za[c[(c[X>>2]|0)+24>>2]&15](X,f,j,(c[W+8>>2]|0)+12|0,c[Y+20>>2]|0)|0){T= -+g[D>>2];R=1-T;S=R*+g[E>>2]+T*+g[G>>2];g[h>>2]=R*+g[j>>2]+T*+g[F>>2];g[H>>2]=S;Y=c[I>>2]|0;Z=+Qa[c[(c[Y>>2]|0)+8>>2]&1](Y,W,h,f,T)}else Z=+g[B>>2];if(Z==0){W=22;break a}if(Z>0){T=k+o*Z;S=m+p*Z;_=Z;$=kT?k:T;ca=m>S?m:S}else{_=J;$=v;aa=M;ba=N;ca=w}da=_;ea=c[y>>2]|0;fa=ca;ga=ba;ha=aa;ia=$;break}else{if((O|0)==(c[z>>2]|0)?(c[z>>2]=O<<1,W=_l(O<<3)|0,c[i>>2]=W,Qn(W|0,L|0,c[y>>2]<<2|0)|0,(L|0)!=(r|0)):0)$l(L);W=c[i>>2]|0;c[W+(c[y>>2]<<2)>>2]=c[V>>2];V=(c[y>>2]|0)+1|0;c[y>>2]=V;Y=Q+ -(P*36|0)+28|0;if((V|0)==(c[z>>2]|0)?(c[z>>2]=V<<1,Q=_l(V<<3)|0,c[i>>2]=Q,Qn(Q|0,W|0,c[y>>2]<<2|0)|0,(W|0)!=(r|0)):0)$l(W);c[(c[i>>2]|0)+(c[y>>2]<<2)>>2]=c[Y>>2];Y=(c[y>>2]|0)+1|0;c[y>>2]=Y;da=J;ea=Y;fa=w;ga=N;ha=M;ia=v;break}}else{da=J;ea=O;fa=w;ga=N;ha=M;ia=v}while(0);if((ea|0)<=0)break;J=da;K=ea;L=c[i>>2]|0;v=ia;M=ha;N=ga;w=fa}L=c[i>>2]|0;if((L|0)==(r|0)){l=e;return}$l(L);c[i>>2]=0;l=e;return}function dj(d,e,f){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;h=d+12|0;i=d+28|0;j=d+4|0; -b[j>>1]=0;k=(a[e+39>>0]|0)==0?0:8;b[j>>1]=k;if(!(a[e+38>>0]|0))l=k;else{m=k|16;b[j>>1]=m;l=m}if(!(a[e+36>>0]|0))n=l;else{m=l|4;b[j>>1]=m;n=m}if(!(a[e+37>>0]|0))o=n;else{m=n|2;b[j>>1]=m;o=m}if(a[e+40>>0]|0)b[j>>1]=o|32;c[d+104>>2]=f;f=e+4|0;o=c[f>>2]|0;j=c[f+4>>2]|0;f=h;c[f>>2]=o;c[f+4>>2]=j;f=e+12|0;p=+g[f>>2];g[d+20>>2]=+F(+p);g[d+24>>2]=+E(+p);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];g[d+44>>2]=0;g[d+48>>2]=0;h=d+52|0;c[h>>2]=o;c[h+4>>2]=j;h=d+60|0;c[h>>2]=o; -c[h+4>>2]=j;j=c[f>>2]|0;c[d+68>>2]=j;c[d+72>>2]=j;g[d+76>>2]=0;c[d+124>>2]=0;c[d+128>>2]=0;c[d+108>>2]=0;c[d+112>>2]=0;j=e+16|0;f=c[j+4>>2]|0;h=d+80|0;c[h>>2]=c[j>>2];c[h+4>>2]=f;c[d+88>>2]=c[e+24>>2];c[d+148>>2]=c[e+28>>2];c[d+152>>2]=c[e+32>>2];c[d+156>>2]=c[e+48>>2];g[d+92>>2]=0;g[d+96>>2]=0;g[d+100>>2]=0;g[d+160>>2]=0;f=c[e>>2]|0;c[d>>2]=f;p=(f|0)==2?1:0;g[d+132>>2]=p;g[d+136>>2]=p;g[d+140>>2]=0;g[d+144>>2]=0;c[d+164>>2]=c[e+44>>2];c[d+116>>2]=0;c[d+120>>2]=0;return}function ej(a){a=a|0;return} -function fj(a,d){a=a|0;d=d|0;var f=0,h=0,i=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;f=l;l=l+16|0;h=f;i=a+104|0;if(c[(c[i>>2]|0)+102876>>2]&2|0){l=f;return}if((c[a>>2]|0)==(d|0)){l=f;return}c[a>>2]=d;gj(a);if((c[a>>2]|0)==0?(g[a+80>>2]=0,g[a+84>>2]=0,g[a+88>>2]=0,d=c[a+72>>2]|0,c[a+68>>2]=d,k=a+60|0,m=c[k>>2]|0,n=c[k+4>>2]|0,k=a+52|0,c[k>>2]=m,c[k+4>>2]=n,o=(c[j>>2]=d,+g[j>>2]),p=+F(+o),g[h+8>>2]=p,q=+E(+o),g[h+12>>2]=q,o=+g[a+44>>2],r=+g[a+48>>2],s=(c[j>>2]=m,+g[j>>2])-(q*o-p*r),t=(c[j>>2]=n, -+g[j>>2])-(p*o+q*r),g[h>>2]=s,g[h+4>>2]=t,n=(c[i>>2]|0)+102880|0,m=c[a+116>>2]|0,m|0):0){d=a+12|0;k=m;do{Oi(k,n,h,d);k=c[k+4>>2]|0}while((k|0)!=0)}k=a+4|0;d=e[k>>1]|0;if(!(d&2)){b[k>>1]=d|2;g[a+160>>2]=0}g[a+92>>2]=0;g[a+96>>2]=0;g[a+100>>2]=0;d=a+128|0;k=c[d>>2]|0;h=c[i>>2]|0;if(!k)u=h;else{n=k;k=h;while(1){h=n;n=c[n+12>>2]|0;uj(k+102880|0,c[h+4>>2]|0);h=c[i>>2]|0;if(!n){u=h;break}else k=h}}c[d>>2]=0;d=u+102880|0;u=c[a+116>>2]|0;if(!u){l=f;return}else v=u;do{u=c[v+28>>2]|0;if((u|0)>0){a=v+24|0;k= -0;do{Fe(d,c[(c[a>>2]|0)+(k*28|0)+24>>2]|0);k=k+1|0}while((k|0)!=(u|0))}v=c[v+4>>2]|0}while((v|0)!=0);l=f;return}function gj(a){a=a|0;var d=0,e=0,f=0,h=0,i=0,k=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;d=l;l=l+16|0;e=d;f=a+132|0;h=a+136|0;i=a+140|0;k=a+144|0;m=a+44|0;g[m>>2]=0;n=a+48|0;g[n>>2]=0;c[f>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;c[f+12>>2]=0;if((c[a>>2]|0)>>>0<2){o=a+12|0;p=c[o>>2]|0;q=c[o+4>> -2]|0;o=a+52|0;c[o>>2]=p;c[o+4>>2]=q;o=a+60|0;c[o>>2]=p;c[o+4>>2]=q;c[a+68>>2]=c[a+72>>2];l=d;return}q=c[2179]|0;o=c[2180]|0;p=c[a+116>>2]|0;if(p){r=(c[j>>2]=o,+g[j>>2]);s=e+4|0;t=e+8|0;u=e+12|0;v=p;p=q;w=o;x=0;y=0;z=(c[j>>2]=q,+g[j>>2]);A=r;while(1){r=+g[v>>2];if(r==0){B=p;C=w;D=x;E=z;F=A;G=y}else{H=c[v+12>>2]|0;Va[c[(c[H>>2]|0)+32>>2]&31](H,e,r);r=+g[e>>2];I=r+ +g[f>>2];g[f>>2]=I;J=z+r*+g[s>>2];H=(g[j>>2]=J,c[j>>2]|0);K=A+r*+g[t>>2];L=(g[j>>2]=K,c[j>>2]|0);r=+g[u>>2]+ +g[i>>2];g[i>>2]=r;B=H;C=L; -D=r;E=J;F=K;G=I}v=c[v+4>>2]|0;if(!v)break;else{p=B;w=C;x=D;y=G;z=E;A=F}}if(G>0){F=1/G;g[h>>2]=F;w=(g[j>>2]=(c[j>>2]=B,+g[j>>2])*F,c[j>>2]|0);M=w;N=(g[j>>2]=(c[j>>2]=C,+g[j>>2])*F,c[j>>2]|0);O=D;P=G}else{Q=B;R=C;S=D;T=10}}else{Q=q;R=o;S=0;T=10}if((T|0)==10){g[f>>2]=1;g[h>>2]=1;M=Q;N=R;O=S;P=1}if(O>0?(b[a+4>>1]&16)==0:0){S=(c[j>>2]=M,+g[j>>2]);D=(c[j>>2]=N,+g[j>>2]);G=O-(S*S+D*D)*P;g[i>>2]=G;U=S;V=D;W=1/G}else{g[i>>2]=0;G=(c[j>>2]=M,+g[j>>2]);U=G;V=(c[j>>2]=N,+g[j>>2]);W=0}g[k>>2]=W;k=a+60|0;W=+g[k>> -2];i=a+64|0;G=+g[i>>2];c[m>>2]=M;c[n>>2]=N;D=+g[a+24>>2];S=+g[a+20>>2];P=+g[a+12>>2]+(U*D-S*V);O=U*S+D*V+ +g[a+16>>2];g[k>>2]=P;g[i>>2]=O;g[a+52>>2]=P;g[a+56>>2]=O;V=+g[a+88>>2];i=a+80|0;g[i>>2]=+g[i>>2]-V*(O-G);i=a+84|0;g[i>>2]=V*(P-W)+ +g[i>>2];l=d;return}function hj(a){a=a|0;var b=0,d=0,e=0,f=0,h=0,i=0,j=0,k=0,m=0,n=0;b=l;l=l+16|0;d=b;e=+g[a+68>>2];f=+F(+e);g[d+8>>2]=f;h=+E(+e);g[d+12>>2]=h;e=+g[a+44>>2];i=+g[a+48>>2];j=+g[a+56>>2]-(e*f+h*i);g[d>>2]=+g[a+52>>2]-(h*e-f*i);g[d+4>>2]=j;k=(c[a+104>> -2]|0)+102880|0;m=c[a+116>>2]|0;if(!m){l=b;return}n=a+12|0;a=m;do{Oi(a,k,d,n);a=c[a+4>>2]|0}while((a|0)!=0);l=b;return}function ij(a,d){a=a|0;d=d|0;var e=0,f=0,h=0,i=0;e=a+104|0;f=c[e>>2]|0;if(c[f+102876>>2]&2|0){h=0;return h|0}i=Pl(f,44)|0;Ji(i);Ki(i,f,a,d);if(b[a+4>>1]&32)Mi(i,(c[e>>2]|0)+102880|0,a+12|0);d=a+116|0;c[i+4>>2]=c[d>>2];c[d>>2]=i;d=a+120|0;c[d>>2]=(c[d>>2]|0)+1;c[i+8>>2]=a;if(+g[i>>2]>0)gj(a);a=(c[e>>2]|0)+102876|0;c[a>>2]=c[a>>2]|1;h=i;return h|0}function jj(a,d){a=a|0;d=d|0;var e= -0,f=0,g=0,h=0,i=0,j=0;e=a+104|0;if(c[(c[e>>2]|0)+102876>>2]&2|0)return;f=a+116|0;g=c[f>>2]|0;a:do if(g|0){h=f;i=g;while(1){j=i+4|0;if((i|0)==(d|0))break;i=c[j>>2]|0;if(!i)break a;else h=j}c[h>>2]=c[d+4>>2]}while(0);g=c[a+128>>2]|0;if(g|0){f=g;do{g=c[f+4>>2]|0;f=c[f+12>>2]|0;if((c[g+48>>2]|0)==(d|0)?1:(c[g+52>>2]|0)==(d|0))uj((c[e>>2]|0)+102880|0,g)}while((f|0)!=0)}f=c[e>>2]|0;if(b[a+4>>1]&32)Ni(d,f+102880|0);Li(d,f);c[d+8>>2]=0;c[d+4>>2]=0;Ql(f,d,44);d=a+120|0;c[d>>2]=(c[d>>2]|0)+-1;gj(a);return} -function kj(a,d){a=a|0;d=d|0;var e=0,f=0,h=0,i=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;if(c[(c[a+104>>2]|0)+102876>>2]&2|0)return;if((c[a>>2]|0)!=2)return;e=a+140|0;g[e>>2]=0;f=a+144|0;g[f>>2]=0;h=+g[d>>2];i=!(h<=0)?h:1;g[a+132>>2]=i;g[a+136>>2]=1/i;h=+g[d+12>>2];if(h>0?(b[a+4>>1]&16)==0:0){k=+g[d+4>>2];l=+g[d+8>>2];m=h-i*(k*k+l*l);g[e>>2]=m;g[f>>2]=1/m}f=a+60|0;m=+g[f>>2];e=a+64|0;l=+g[e>>2];n=d+4|0;d=c[n>>2]|0;o=c[n+4>>2]|0;n=a+44|0;c[n>>2]=d;c[n+4>>2]=o;k=+g[a+24>>2];i=(c[j>>2]=d,+g[j>>2]);h=+g[a+20>> -2];p=(c[j>>2]=o,+g[j>>2]);q=+g[a+12>>2]+(k*i-h*p);r=i*h+k*p+ +g[a+16>>2];g[f>>2]=q;g[e>>2]=r;g[a+52>>2]=q;g[a+56>>2]=r;p=+g[a+88>>2];e=a+80|0;g[e>>2]=+g[e>>2]-p*(r-l);e=a+84|0;g[e>>2]=p*(q-m)+ +g[e>>2];return}function lj(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0;if((c[b>>2]|0)!=2?(c[d>>2]|0)!=2:0){e=0;return e|0}f=c[b+124>>2]|0;if(!f){e=1;return e|0}else g=f;while(1){if((c[g>>2]|0)==(d|0)?(a[(c[g+4>>2]|0)+61>>0]|0)==0:0){e=0;h=7;break}g=c[g+12>>2]|0;if(!g){e=1;h=7;break}}if((h|0)==7)return e|0;return 0} -function $a(a){a=a|0;var b=0;b=l;l=l+a|0;l=l+15&-16;return b|0}function ab(){return l|0}function bb(a){a=a|0;l=a}function cb(a,b){a=a|0;b=b|0;l=a;m=b}function db(a,b){a=a|0;b=b|0;if(!o){o=a;p=b}}function eb(a){a=a|0;z=a}function fb(){return z|0}function gb(a){a=a|0;return+ +(c[a+60>>2]|0)}function hb(d,e,f,i,j,k,m,n,o,p,q){d=d|0;e=+e;f=+f;i=+i;j=+j;k=+k;m=+m;n=+n;o=+o;p=p|0;q=+q;var r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;r=l;l=l+1104|0;s=r;t=r+1072|0;u=r+1032|0;v=r+8|0;h[s>>3]=k;c[t>>2]=0;g[t+16>>2]= -e;g[t+8>>2]=f;a[t+20>>0]=i!=0&1;g[t+12>>2]=j;c[t+4>>2]=s;b[t+22>>1]=~~m;b[t+26>>1]=~~n;b[t+24>>1]=~~o;c[u>>2]=948;c[u+4>>2]=3;g[u+8>>2]=.009999999776482582;c[u+12>>2]=0;c[u+16>>2]=0;a[u+36>>0]=0;a[u+37>>0]=0;s=~~(q*.5);if(q>0){w=0;x=0}else{ye(u,v,s);c[t>>2]=u;y=ij(d,t)|0;pe(u);l=r;return y|0}while(1){z=c[p+((w|1)<<2)>>2]|0;c[v+(x<<3)>>2]=c[p+(w<<2)>>2];c[v+(x<<3)+4>>2]=z;w=w+2|0;if(!(+(w|0)>2]=u;y=ij(d,t)|0;pe(u);l=r;return y|0}function ib(a){a=a|0;ra(a|0)|0;En()} -function jb(d,e,f,i,j,k,m,n,o,p,q,r){d=d|0;e=+e;f=+f;i=+i;j=+j;k=+k;m=+m;n=+n;o=+o;p=+p;q=+q;r=+r;var s=0,t=0,u=0,v=0;s=l;l=l+64|0;t=s;u=s+28|0;v=s+8|0;h[t>>3]=k;g[u+16>>2]=e;g[u+8>>2]=f;a[u+20>>0]=i!=0&1;g[u+12>>2]=j;c[u+4>>2]=t;b[u+22>>1]=~~m;b[u+26>>1]=~~n;b[u+24>>1]=~~o;c[v>>2]=904;c[v+4>>2]=0;g[v+12>>2]=p;g[v+16>>2]=q;g[v+8>>2]=r;c[u>>2]=v;v=ij(d,u)|0;l=s;return v|0}function kb(b,d,e,f,i,j,k,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B){b=b|0;d=+d;e=+e;f=+f;i=+i;j=+j;k=+k;m=+m;n=+n;o=+o;p=+p;q=+q;r=+r;s= -+s;t=+t;u=+u;v=+v;w=+w;x=+x;y=+y;z=+z;A=+A;B=+B;var C=0,D=0,E=0,F=0;C=l;l=l+112|0;D=C;E=C+28|0;F=C+8|0;h[D>>3]=y;g[E+16>>2]=d;g[E+28>>2]=e;a[E+32>>0]=~~f;a[E+33>>0]=~~i;a[E+34>>0]=~~j;a[E+35>>0]=~~k;c[E>>2]=~~m>>>0;c[E+72>>2]=0;c[E+4>>2]=~~o>>>0;g[E+64>>2]=p;g[E+20>>2]=q;g[E+24>>2]=r;g[E+8>>2]=s;g[E+12>>2]=t;c[E+60>>2]=0;c[E+56>>2]=~~v;c[E+48>>2]=0;c[E+44>>2]=0;g[E+36>>2]=w;g[E+52>>2]=x;c[E+68>>2]=D;c[F>>2]=904;c[F+4>>2]=0;g[F+12>>2]=z;g[F+16>>2]=A;g[F+8>>2]=B;c[E+40>>2]=F;F=nk(b,E)|0;l=C;return F| -0}function lb(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,m=0,n=0;k=l;l=l+48|0;m=k+16|0;n=k;c[m>>2]=904;c[m+4>>2]=0;g[m+12>>2]=b;g[m+16>>2]=d;g[m+8>>2]=e;g[n>>2]=f;g[n+4>>2]=h;g[n+8>>2]=i;g[n+12>>2]=j;j=+($j(a,m,n,0)|0);l=k;return+j}function mb(d,e,f,i,j,k,m,n,o,p,q,r,s,t,u,v,w,x,y){d=d|0;e=+e;f=+f;i=+i;j=+j;k=+k;m=+m;n=+n;o=+o;p=+p;q=+q;r=+r;s=+s;t=+t;u=+u;v=+v;w=+w;x=+x;y=+y;var z=0,A=0,B=0,C=0;z=l;l=l+96|0;A=z;B=z+56|0;C=z+8|0;h[A>>3]=k;g[B+16>>2]=e;g[B+8>>2]=f;a[B+20>>0]= -i!=0&1;g[B+12>>2]=j;c[B+4>>2]=A;b[B+22>>1]=~~m;b[B+26>>1]=~~n;b[B+24>>1]=~~o;c[C>>2]=816;c[C+4>>2]=1;g[C+8>>2]=.009999999776482582;g[C+28>>2]=r;g[C+32>>2]=s;g[C+12>>2]=t;g[C+16>>2]=u;g[C+20>>2]=v;g[C+24>>2]=w;g[C+36>>2]=x;g[C+40>>2]=y;a[C+44>>0]=p!=0&1;a[C+45>>0]=q!=0&1;c[B>>2]=C;C=ij(d,B)|0;l=z;return C|0}function nb(d,e,f,i,j,k,m,n,o,p,q,r,s,t,u){d=d|0;e=+e;f=+f;i=+i;j=+j;k=+k;m=+m;n=+n;o=+o;p=+p;q=+q;r=+r;s=+s;t=+t;u=+u;var v=0,w=0,x=0,y=0,z=0;v=l;l=l+224|0;w=v;x=v+184|0;y=v+160|0;z=v+8|0;h[w>> -3]=k;c[x>>2]=0;g[x+16>>2]=e;g[x+8>>2]=f;a[x+20>>0]=i!=0&1;g[x+12>>2]=j;c[x+4>>2]=w;b[x+22>>1]=~~m;b[x+26>>1]=~~n;b[x+24>>1]=~~o;g[y>>2]=p;g[y+4>>2]=q;g[y+8>>2]=r;g[y+12>>2]=s;g[y+16>>2]=t;g[y+20>>2]=u;c[z>>2]=860;c[z+4>>2]=2;g[z+8>>2]=.009999999776482582;c[z+148>>2]=0;g[z+12>>2]=0;g[z+16>>2]=0;ge(z,y,3);c[x>>2]=z;z=ij(d,x)|0;l=v;return z|0}function ob(d,e,f,i,j,k,m,n,o,p,q,r,s,t,u,v,w){d=d|0;e=+e;f=+f;i=+i;j=+j;k=+k;m=+m;n=+n;o=+o;p=+p;q=+q;r=+r;s=+s;t=+t;u=+u;v=+v;w=+w;var x=0,y=0,z=0,A=0,B=0;x= -l;l=l+224|0;y=x;z=x+192|0;A=x+160|0;B=x+8|0;h[y>>3]=k;c[z>>2]=0;g[z+16>>2]=e;g[z+8>>2]=f;a[z+20>>0]=i!=0&1;g[z+12>>2]=j;c[z+4>>2]=y;b[z+22>>1]=~~m;b[z+26>>1]=~~n;b[z+24>>1]=~~o;g[A>>2]=p;g[A+4>>2]=q;g[A+8>>2]=r;g[A+12>>2]=s;g[A+16>>2]=t;g[A+20>>2]=u;g[A+24>>2]=v;g[A+28>>2]=w;c[B>>2]=860;c[B+4>>2]=2;g[B+8>>2]=.009999999776482582;c[B+148>>2]=0;g[B+12>>2]=0;g[B+16>>2]=0;ge(B,A,4);c[z>>2]=B;B=ij(d,z)|0;l=x;return B|0}function pb(d,e,f,i,j,k,m,n,o,p,q,r,s,t,u,v,w,x,y){d=d|0;e=+e;f=+f;i=+i;j=+j;k=+k;m= -+m;n=+n;o=+o;p=+p;q=+q;r=+r;s=+s;t=+t;u=+u;v=+v;w=+w;x=+x;y=+y;var z=0,A=0,B=0,C=0,D=0;z=l;l=l+240|0;A=z;B=z+200|0;C=z+160|0;D=z+8|0;h[A>>3]=k;c[B>>2]=0;g[B+16>>2]=e;g[B+8>>2]=f;a[B+20>>0]=i!=0&1;g[B+12>>2]=j;c[B+4>>2]=A;b[B+22>>1]=~~m;b[B+26>>1]=~~n;b[B+24>>1]=~~o;g[C>>2]=p;g[C+4>>2]=q;g[C+8>>2]=r;g[C+12>>2]=s;g[C+16>>2]=t;g[C+20>>2]=u;g[C+24>>2]=v;g[C+28>>2]=w;g[C+32>>2]=x;g[C+36>>2]=y;c[D>>2]=860;c[D+4>>2]=2;g[D+8>>2]=.009999999776482582;c[D+148>>2]=0;g[D+12>>2]=0;g[D+16>>2]=0;ge(D,C,5);c[B>>2]= -D;D=ij(d,B)|0;l=z;return D|0}function qb(d,e,f,i,j,k,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A){d=d|0;e=+e;f=+f;i=+i;j=+j;k=+k;m=+m;n=+n;o=+o;p=+p;q=+q;r=+r;s=+s;t=+t;u=+u;v=+v;w=+w;x=+x;y=+y;z=+z;A=+A;var B=0,C=0,D=0,E=0,F=0;B=l;l=l+240|0;C=B;D=B+208|0;E=B+160|0;F=B+8|0;h[C>>3]=k;c[D>>2]=0;g[D+16>>2]=e;g[D+8>>2]=f;a[D+20>>0]=i!=0&1;g[D+12>>2]=j;c[D+4>>2]=C;b[D+22>>1]=~~m;b[D+26>>1]=~~n;b[D+24>>1]=~~o;g[E>>2]=p;g[E+4>>2]=q;g[E+8>>2]=r;g[E+12>>2]=s;g[E+16>>2]=t;g[E+20>>2]=u;g[E+24>>2]=v;g[E+28>>2]=w;g[E+32>>2]= -x;g[E+36>>2]=y;g[E+40>>2]=z;g[E+44>>2]=A;c[F>>2]=860;c[F+4>>2]=2;g[F+8>>2]=.009999999776482582;c[F+148>>2]=0;g[F+12>>2]=0;g[F+16>>2]=0;ge(F,E,6);c[D>>2]=F;F=ij(d,D)|0;l=B;return F|0}function rb(d,e,f,i,j,k,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C){d=d|0;e=+e;f=+f;i=+i;j=+j;k=+k;m=+m;n=+n;o=+o;p=+p;q=+q;r=+r;s=+s;t=+t;u=+u;v=+v;w=+w;x=+x;y=+y;z=+z;A=+A;B=+B;C=+C;var D=0,E=0,F=0,G=0,H=0;D=l;l=l+256|0;E=D;F=D+216|0;G=D+160|0;H=D+8|0;h[E>>3]=k;c[F>>2]=0;g[F+16>>2]=e;g[F+8>>2]=f;a[F+20>>0]=i!=0&1;g[F+12>>2]= -j;c[F+4>>2]=E;b[F+22>>1]=~~m;b[F+26>>1]=~~n;b[F+24>>1]=~~o;g[G>>2]=p;g[G+4>>2]=q;g[G+8>>2]=r;g[G+12>>2]=s;g[G+16>>2]=t;g[G+20>>2]=u;g[G+24>>2]=v;g[G+28>>2]=w;g[G+32>>2]=x;g[G+36>>2]=y;g[G+40>>2]=z;g[G+44>>2]=A;g[G+48>>2]=B;g[G+52>>2]=C;c[H>>2]=860;c[H+4>>2]=2;g[H+8>>2]=.009999999776482582;c[H+148>>2]=0;g[H+12>>2]=0;g[H+16>>2]=0;ge(H,G,7);c[F>>2]=H;H=ij(d,F)|0;l=D;return H|0}function sb(d,e,f,i,j,k,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E){d=d|0;e=+e;f=+f;i=+i;j=+j;k=+k;m=+m;n=+n;o=+o;p=+p;q=+q;r=+r; -s=+s;t=+t;u=+u;v=+v;w=+w;x=+x;y=+y;z=+z;A=+A;B=+B;C=+C;D=+D;E=+E;var F=0,G=0,H=0,I=0,J=0;F=l;l=l+256|0;G=F;H=F+224|0;I=F+160|0;J=F+8|0;h[G>>3]=k;c[H>>2]=0;g[H+16>>2]=e;g[H+8>>2]=f;a[H+20>>0]=i!=0&1;g[H+12>>2]=j;c[H+4>>2]=G;b[H+22>>1]=~~m;b[H+26>>1]=~~n;b[H+24>>1]=~~o;g[I>>2]=p;g[I+4>>2]=q;g[I+8>>2]=r;g[I+12>>2]=s;g[I+16>>2]=t;g[I+20>>2]=u;g[I+24>>2]=v;g[I+28>>2]=w;g[I+32>>2]=x;g[I+36>>2]=y;g[I+40>>2]=z;g[I+44>>2]=A;g[I+48>>2]=B;g[I+52>>2]=C;g[I+56>>2]=D;g[I+60>>2]=E;c[J>>2]=860;c[J+4>>2]=2;g[J+8>> -2]=.009999999776482582;c[J+148>>2]=0;g[J+12>>2]=0;g[J+16>>2]=0;ge(J,I,8);c[H>>2]=J;J=ij(d,H)|0;l=F;return J|0}function tb(b,d,e,f,i,j,k,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G){b=b|0;d=+d;e=+e;f=+f;i=+i;j=+j;k=+k;m=+m;n=+n;o=+o;p=+p;q=+q;r=+r;s=+s;t=+t;u=+u;v=+v;w=+w;x=+x;y=+y;z=+z;A=+A;B=+B;C=+C;D=+D;E=+E;F=+F;G=+G;var H=0,I=0,J=0,K=0,L=0,M=0;H=l;l=l+272|0;I=H;J=H+192|0;K=H+160|0;L=H+8|0;h[I>>3]=y;M=J+40|0;c[M>>2]=0;g[J+16>>2]=d;g[J+28>>2]=e;a[J+32>>0]=~~f;a[J+33>>0]=~~i;a[J+34>>0]=~~j;a[J+35>> -0]=~~k;c[J>>2]=~~m>>>0;c[J+72>>2]=0;c[J+4>>2]=~~o>>>0;g[J+64>>2]=p;g[J+20>>2]=q;g[J+24>>2]=r;g[J+8>>2]=s;g[J+12>>2]=t;c[J+60>>2]=0;c[J+56>>2]=~~v;c[J+48>>2]=0;c[J+44>>2]=0;g[J+36>>2]=w;g[J+52>>2]=x;c[J+68>>2]=I;g[K>>2]=z;g[K+4>>2]=A;g[K+8>>2]=B;g[K+12>>2]=C;g[K+16>>2]=D;g[K+20>>2]=E;g[K+24>>2]=F;g[K+28>>2]=G;c[L>>2]=860;c[L+4>>2]=2;g[L+8>>2]=.009999999776482582;c[L+148>>2]=0;g[L+12>>2]=0;g[L+16>>2]=0;ge(L,K,4);c[M>>2]=L;L=nk(b,J)|0;l=H;return L|0}function ub(a,b,d,e,f,h,i,j,k,m,n,o,p){a=a|0;b=+b; -d=+d;e=+e;f=+f;h=+h;i=+i;j=+j;k=+k;m=+m;n=+n;o=+o;p=+p;var q=0,r=0,s=0,t=0;q=l;l=l+208|0;r=q+168|0;s=q+16|0;t=q;g[r>>2]=b;g[r+4>>2]=d;g[r+8>>2]=e;g[r+12>>2]=f;g[r+16>>2]=h;g[r+20>>2]=i;g[r+24>>2]=j;g[r+28>>2]=k;c[s>>2]=860;c[s+4>>2]=2;g[s+8>>2]=.009999999776482582;c[s+148>>2]=0;g[s+12>>2]=0;g[s+16>>2]=0;ge(s,r,4);g[t>>2]=m;g[t+4>>2]=n;g[t+8>>2]=o;g[t+12>>2]=p;p=+($j(a,s,t,0)|0);l=q;return+p}function vb(a,d,e){a=a|0;d=+d;e=+e;var f=0,h=0,i=0,j=0,k=0,l=0;f=d;if((c[a>>2]|0)!=2)return;h=a+4|0;i=b[h>> -1]|0;if(e!=0&(i&2)==0?(j=i&65535,(j&2|0)==0):0){k=(j|2)&65535;b[h>>1]=k;g[a+160>>2]=0;l=k}else l=i;if(!(l&2))return;l=a+88|0;g[l>>2]=+g[l>>2]+f*+g[a+144>>2];return}function wb(a,d,e,f,h,i){a=a|0;d=+d;e=+e;f=+f;h=+h;i=+i;var j=0,k=0,l=0,m=0,n=0,o=0;j=d;d=e;e=f;f=h;if((c[a>>2]|0)!=2)return;k=a+4|0;l=b[k>>1]|0;if(i!=0&(l&2)==0?(m=l&65535,(m&2|0)==0):0){n=(m|2)&65535;b[k>>1]=n;g[a+160>>2]=0;o=n}else o=l;if(!(o&2))return;o=a+92|0;g[o>>2]=j+ +g[o>>2];o=a+96|0;g[o>>2]=d+ +g[o>>2];o=a+100|0;g[o>>2]=+g[o>> -2]+(d*(e-+g[a+60>>2])-j*(f-+g[a+64>>2]));return}function xb(a,d,e,f,h,i){a=a|0;d=+d;e=+e;f=+f;h=+h;i=+i;var j=0,k=0,l=0,m=0,n=0,o=0;j=d;d=e;e=f;f=h;if((c[a>>2]|0)!=2)return;k=a+4|0;l=b[k>>1]|0;if(i!=0&(l&2)==0?(m=l&65535,(m&2|0)==0):0){n=(m|2)&65535;b[k>>1]=n;g[a+160>>2]=0;o=n}else o=l;if(!(o&2))return;o=a+92|0;g[o>>2]=j+ +g[o>>2];o=a+96|0;g[o>>2]=d+ +g[o>>2];o=a+100|0;g[o>>2]=+g[o>>2]+(d*(e-+g[a+60>>2])-j*(f-+g[a+64>>2]));return}function yb(a,d,e,f){a=a|0;d=+d;e=+e;f=+f;var h=0,i=0,j=0,k=0,l=0,m= -0;h=d;d=e;if((c[a>>2]|0)!=2)return;i=a+4|0;j=b[i>>1]|0;if(f!=0&(j&2)==0?(k=j&65535,(k&2|0)==0):0){l=(k|2)&65535;b[i>>1]=l;g[a+160>>2]=0;m=l}else m=j;if(!(m&2))return;m=a+92|0;g[m>>2]=h+ +g[m>>2];m=a+96|0;g[m>>2]=d+ +g[m>>2];return}function zb(a,d,e){a=a|0;d=+d;e=+e;var f=0,h=0,i=0,j=0,k=0,l=0;f=d;if((c[a>>2]|0)!=2)return;h=a+4|0;i=b[h>>1]|0;if(e!=0&(i&2)==0?(j=i&65535,(j&2|0)==0):0){k=(j|2)&65535;b[h>>1]=k;g[a+160>>2]=0;l=k}else l=i;if(!(l&2))return;l=a+100|0;g[l>>2]=f+ +g[l>>2];return}function Ab(a, -b){a=a|0;b=b|0;jj(a,b);return}function Bb(a){a=a|0;return+ +g[a+72>>2]}function Cb(a){a=a|0;return+ +g[a+88>>2]}function Db(a){a=a|0;var b=0,c=0;b=+g[a+44>>2];c=+g[a+48>>2];return+(+g[a+140>>2]+ +g[a+132>>2]*(b*b+c*c))}function Eb(a,b){a=a|0;b=b|0;var d=0;d=c[a+84>>2]|0;c[b>>2]=c[a+80>>2];c[b+4>>2]=d;return}function Fb(a,b,c,d){a=a|0;b=+b;c=+c;d=d|0;var e=0,f=0;e=b-+g[a+12>>2];b=c-+g[a+16>>2];c=+g[a+24>>2];f=+g[a+20>>2];g[d>>2]=e*c+b*f;g[d+4>>2]=c*b-e*f;return}function Gb(a,b,c,d){a=a|0;b=+b;c=+c; -d=d|0;var e=0,f=0;e=b-+g[a+12>>2];b=c-+g[a+16>>2];c=+g[a+24>>2];f=+g[a+20>>2];g[d>>2]=e*c+b*f;g[d+4>>2]=c*b-e*f;return}function Hb(a){a=a|0;return+ +g[a+132>>2]}function Ib(a,b){a=a|0;b=b|0;var d=0;d=c[a+16>>2]|0;c[b>>2]=c[a+12>>2];c[b+4>>2]=d;return}function Jb(a,b){a=a|0;b=b|0;c[b>>2]=c[a+12>>2];c[b+4>>2]=c[a+16>>2];c[b+8>>2]=c[a+20>>2];c[b+12>>2]=c[a+24>>2];return}function Kb(a){a=a|0;return+ +((c[a>>2]|0)>>>0)}function Lb(a,b){a=a|0;b=b|0;var d=0;d=c[a+64>>2]|0;c[b>>2]=c[a+60>>2];c[b+4>>2]=d; -return}function Mb(a,b,c,d){a=a|0;b=+b;c=+c;d=d|0;var e=0,f=0,h=0;e=b;b=c;c=+g[a+24>>2];f=+g[a+20>>2];h=b*c+e*f+ +g[a+16>>2];g[d>>2]=+g[a+12>>2]+(e*c-b*f);g[d+4>>2]=h;return}function Nb(a,b,c,d){a=a|0;b=+b;c=+c;d=d|0;var e=0,f=0,h=0;e=b;b=c;c=+g[a+24>>2];f=+g[a+20>>2];h=b*c+e*f+ +g[a+16>>2];g[d>>2]=+g[a+12>>2]+(e*c-b*f);g[d+4>>2]=h;return}function Ob(a,d){a=a|0;d=+d;var f=0,h=0,i=0,j=0;f=a+4|0;h=e[f>>1]|0;do if(d!=0)if(!(h&2)){b[f>>1]=h|2;i=a+160|0;break}else return;else{b[f>>1]=h&65533;g[a+160>> -2]=0;j=a+80|0;c[j>>2]=0;c[j+4>>2]=0;c[j+8>>2]=0;c[j+12>>2]=0;c[j+16>>2]=0;i=a+100|0}while(0);g[i>>2]=0;return}function Pb(a,b){a=a|0;b=+b;nj(a,b!=0);return}function Qb(a,d){a=a|0;d=+d;var f=0,h=0,i=0;f=d;if(!(c[a>>2]|0))return;if(f*f>0?(h=a+4|0,i=e[h>>1]|0,(i&2|0)==0):0){b[h>>1]=i|2;g[a+160>>2]=0}g[a+88>>2]=f;return}function Rb(a,d,f){a=a|0;d=+d;f=+f;var h=0,i=0,j=0;h=d;d=f;if(!(c[a>>2]|0))return;if(h*h+d*d>0?(i=a+4|0,j=e[i>>1]|0,(j&2|0)==0):0){b[i>>1]=j|2;g[a+160>>2]=0}g[a+80>>2]=h;g[a+84>>2]=d; -return}function Sb(a,b,c,d,e){a=a|0;b=+b;c=+c;d=+d;e=+e;var f=0,h=0;f=l;l=l+16|0;h=f;g[h>>2]=b;g[h+4>>2]=c;g[h+8>>2]=d;g[h+12>>2]=e;kj(a,h);l=f;return}function Tb(a,b,c,d){a=a|0;b=+b;c=+c;d=+d;var e=0,f=0;e=l;l=l+16|0;f=e;g[f>>2]=b;g[f+4>>2]=c;mj(a,f,d);l=e;return}function Ub(a,b){a=a|0;b=+b;fj(a,~~b>>>0);return}function Vb(a,b){a=a|0;b=+b;g[a+156>>2]=b;return}function Wb(a){a=a|0;return+ +g[a+156>>2]}function Xb(a,b,d){a=a|0;b=+b;d=+d;var e=0,f=0,h=0;e=l;l=l+16|0;f=e;g[f>>2]=b;g[f+4>>2]=d;h=c[a+ -12>>2]|0;d=+((Sa[c[(c[h>>2]|0)+16>>2]&15](h,(c[a+8>>2]|0)+12|0,f)|0)&1);l=e;return+d}function Yb(a){a=a|0;return}function Zb(a){a=a|0;return}function _b(a,b){a=+a;b=+b;var c=0,d=0,e=0;c=l;l=l+16|0;d=c;e=dn(103048)|0;g[d>>2]=a;g[d+4>>2]=b;Pi(e,d);l=c;return e|0}function $b(b,d,e,f,h,i,j,k,m,n,o,p,q,r,s,t,u){b=b|0;d=+d;e=+e;f=+f;h=+h;i=+i;j=+j;k=+k;m=+m;n=+n;o=+o;p=+p;q=+q;r=+r;s=+s;t=+t;u=u|0;var v=0,w=0;v=l;l=l+64|0;w=v;a[w+40>>0]=d!=0&1;a[w+36>>0]=e!=0&1;g[w+12>>2]=f;g[w+24>>2]=h;g[w+32>>2]=i;a[w+ -37>>0]=j!=0&1;a[w+39>>0]=k!=0&1;a[w+38>>0]=m!=0&1;g[w+48>>2]=n;g[w+28>>2]=o;g[w+16>>2]=p;g[w+20>>2]=q;g[w+4>>2]=r;g[w+8>>2]=s;c[w>>2]=~~t>>>0;c[w+44>>2]=u;u=Ti(b,w)|0;l=v;return u|0}function ac(b,d,e,f,h,i,j,k,m,n,o,p,q,r,s,t,u,v){b=b|0;d=+d;e=+e;f=+f;h=+h;i=+i;j=+j;k=+k;m=+m;n=+n;o=+o;p=+p;q=+q;r=+r;s=+s;t=+t;u=+u;v=+v;var w=0,x=0,y=0;w=l;l=l+96|0;x=w;a[x>>0]=0;g[x+4>>2]=1;g[x+8>>2]=1;c[x+16>>2]=0;g[x+72>>2]=d;g[x+24>>2]=e;a[x+76>>0]=f!=0&1;g[x+56>>2]=h;g[x+28>>2]=i;g[x+80>>2]=j;g[x+52>>2]=k;g[x+ -20>>2]=m;g[x+12>>2]=n;g[x+48>>2]=o;g[x+32>>2]=p;c[x+68>>2]=~~q;g[x+64>>2]=r;g[x+60>>2]=s;g[x+44>>2]=t;g[x+40>>2]=u;g[x+36>>2]=v;y=Xi(b,x)|0;l=w;return y|0}function bc(a){a=a|0;if(!a)return;Qi(a);fn(a);return}function cc(a,b){a=a|0;b=b|0;Ui(a,b);return}function dc(a,b){a=a|0;b=b|0;Vi(a,b);return}function ec(a,b){a=a|0;b=b|0;Ri(a,b);return}function fc(a,b,c,d,e){a=a|0;b=+b;c=+c;d=+d;e=+e;var f=0,h=0;f=l;l=l+16|0;h=f;g[h>>2]=b;g[h+4>>2]=c;g[h+8>>2]=d;g[h+12>>2]=e;$i(a,8444,h);l=f;return}function gc(a, -b,c,d,e){a=a|0;b=+b;c=+c;d=+d;e=+e;var f=0,h=0,i=0;f=l;l=l+16|0;h=f+8|0;i=f;g[h>>2]=b;g[h+4>>2]=c;g[i>>2]=d;g[i+4>>2]=e;bj(a,8448,h,i);l=f;return}function hc(a){a=a|0;Si(a,8440);return}function ic(a,b,c){a=a|0;b=+b;c=+c;g[a+102980>>2]=b;g[a+102984>>2]=c;return}function jc(a,b,c,d){a=a|0;b=+b;c=+c;d=+d;_i(a,b,~~c,~~d,3);return}function kc(a){a=a|0;return a+64|0}function lc(a){a=a|0;var b=0,d=0;b=c[a+48>>2]|0;d=c[a+52>>2]|0;Ye(8452,a+64|0,(c[b+8>>2]|0)+12|0,+g[(c[b+12>>2]|0)+8>>2],(c[d+8>>2]|0)+12| -0,+g[(c[d+12>>2]|0)+8>>2]);return 8452}function mc(b,d,e,f,h,i,j,k,m,n,o){b=b|0;d=d|0;e=e|0;f=+f;h=+h;i=+i;j=+j;k=+k;m=+m;n=+n;o=+o;var p=0,q=0;p=l;l=l+48|0;q=p;c[q+4>>2]=0;c[q>>2]=3;c[q+8>>2]=d;c[q+12>>2]=e;a[q+16>>0]=f!=0&1;g[q+44>>2]=h;g[q+40>>2]=i;g[q+36>>2]=j;g[q+20>>2]=k;g[q+24>>2]=m;g[q+28>>2]=n;g[q+32>>2]=o;e=Wi(b,q)|0;l=p;return e|0}function nc(b,d,e,f,h,i,j,k,m,n){b=b|0;d=d|0;e=e|0;f=+f;h=+h;i=+i;j=+j;k=+k;m=+m;n=+n;var o=0,p=0,q=0,r=0,s=0;o=l;l=l+64|0;p=o+16|0;q=o+8|0;r=o;s=p+4|0;c[s>> -2]=0;c[s+4>>2]=0;c[s+8>>2]=0;c[p>>2]=3;s=p+20|0;c[s>>2]=0;c[s+4>>2]=0;c[s+8>>2]=0;c[s+12>>2]=0;g[p+36>>2]=1;a[p+16>>0]=k!=0&1;g[p+44>>2]=m;g[p+40>>2]=n;g[q>>2]=f;g[q+4>>2]=h;g[r>>2]=i;g[r+4>>2]=j;Tf(p,d,e,q,r);r=Wi(b,p)|0;l=o;return r|0}function oc(b,d,e,f,h,i,j,k,m,n){b=b|0;d=d|0;e=e|0;f=+f;h=+h;i=+i;j=+j;k=+k;m=+m;n=+n;var o=0,p=0;o=l;l=l+48|0;p=o;c[p+4>>2]=0;c[p>>2]=9;c[p+8>>2]=d;c[p+12>>2]=e;a[p+16>>0]=f!=0&1;g[p+20>>2]=h;g[p+24>>2]=i;g[p+28>>2]=j;g[p+32>>2]=k;g[p+36>>2]=m;g[p+40>>2]=n;e=Wi(b, -p)|0;l=o;return e|0}function pc(b,d,e,f,h,i,j,k){b=b|0;d=d|0;e=e|0;f=+f;h=+h;i=+i;j=+j;k=+k;var m=0,n=0,o=0,p=0;m=l;l=l+64|0;n=m+8|0;o=m;p=n+4|0;c[p>>2]=0;c[p+4>>2]=0;c[p+8>>2]=0;c[n>>2]=9;p=n+20|0;c[p>>2]=0;c[p+4>>2]=0;c[p+8>>2]=0;c[p+12>>2]=0;a[n+16>>0]=i!=0&1;g[n+36>>2]=j;g[n+40>>2]=k;g[o>>2]=f;g[o+4>>2]=h;cg(n,d,e,o);o=Wi(b,n)|0;l=m;return o|0}function qc(a){a=a|0;return+ +zg(a)}function rc(b,d,e,f,h,i,j){b=b|0;d=d|0;e=e|0;f=+f;h=h|0;i=i|0;j=+j;var k=0,m=0;k=l;l=l+32|0;m=k;c[m+4>>2]=0;c[m>>2]= -6;c[m+8>>2]=d;c[m+12>>2]=e;a[m+16>>0]=f!=0&1;c[m+20>>2]=h;c[m+24>>2]=i;g[m+28>>2]=j;i=Wi(b,m)|0;l=k;return i|0}function sc(a){a=a|0;return c[a+48>>2]|0}function tc(a){a=a|0;return c[a+52>>2]|0}function uc(a,b){a=a|0;b=+b;Jf(a,b);return}function vc(a,b,c){a=a|0;b=+b;c=+c;var d=0,e=0;d=l;l=l+16|0;e=d;g[e>>2]=b;g[e+4>>2]=c;If(a,e);l=d;return}function wc(b,d,e,f,h,i,j,k,m,n){b=b|0;d=d|0;e=e|0;f=+f;h=+h;i=+i;j=+j;k=+k;m=+m;n=+n;var o=0,p=0;o=l;l=l+48|0;p=o;c[p+4>>2]=0;c[p>>2]=11;c[p+8>>2]=d;c[p+12>>2]= -e;a[p+16>>0]=f!=0&1;g[p+28>>2]=h;g[p+40>>2]=i;g[p+20>>2]=j;g[p+24>>2]=k;g[p+32>>2]=m;g[p+36>>2]=n;e=Wi(b,p)|0;l=o;return e|0}function xc(b,d,e,f,h,i,j){b=b|0;d=d|0;e=e|0;f=+f;h=+h;i=+i;j=+j;var k=0,m=0,n=0;k=l;l=l+48|0;m=k;n=m+4|0;c[n>>2]=0;c[n+4>>2]=0;c[n+8>>2]=0;c[m>>2]=11;g[m+20>>2]=0;g[m+24>>2]=0;g[m+28>>2]=0;a[m+16>>0]=f!=0&1;g[m+40>>2]=h;g[m+32>>2]=i;g[m+36>>2]=j;Gf(m,d,e);e=Wi(b,m)|0;l=k;return e|0}function yc(a,b,c){a=a|0;b=+b;c=+c;var d=0,e=0;d=l;l=l+16|0;e=d;g[e>>2]=b;g[e+4>>2]=c;vf(a,e); -l=d;return}function zc(b,d,e,f,h,i,j,k,m){b=b|0;d=d|0;e=e|0;f=+f;h=+h;i=+i;j=+j;k=+k;m=+m;var n=0,o=0;n=l;l=l+48|0;o=n;c[o+4>>2]=0;c[o>>2]=5;c[o+8>>2]=d;c[o+12>>2]=e;a[o+16>>0]=f!=0&1;g[o+36>>2]=h;g[o+32>>2]=i;g[o+28>>2]=j;g[o+20>>2]=k;g[o+24>>2]=m;e=Wi(b,o)|0;l=n;return e|0}function Ac(a,b){a=a|0;b=+b;Ng(a,b!=0);return}function Bc(a,b){a=a|0;b=+b;Pg(a,b!=0);return}function Cc(a){a=a|0;return+ +Lg(a)}function Dc(a){a=a|0;return+ +g[a+132>>2]}function Ec(a,b){a=a|0;b=+b;return+ +Rg(a,b)}function Fc(a){a= -a|0;return+ +((Mg(a)|0)&1)}function Gc(a){a=a|0;return+ +((Og(a)|0)&1)}function Hc(a,b){a=a|0;b=+b;Qg(a,b);return}function Ic(b,d,e,f,h,i,j,k,m,n,o,p,q,r,s,t,u){b=b|0;d=d|0;e=e|0;f=+f;h=+h;i=+i;j=+j;k=+k;m=+m;n=+n;o=+o;p=+p;q=+q;r=+r;s=+s;t=+t;u=+u;var v=0,w=0;v=l;l=l+80|0;w=v;c[w+4>>2]=0;c[w>>2]=2;c[w+8>>2]=d;c[w+12>>2]=e;a[w+16>>0]=f!=0&1;a[w+48>>0]=h!=0&1;a[w+60>>0]=i!=0&1;g[w+20>>2]=j;g[w+24>>2]=k;g[w+28>>2]=m;g[w+32>>2]=n;g[w+36>>2]=o;g[w+40>>2]=p;g[w+52>>2]=q;g[w+64>>2]=r;g[w+68>>2]=s;g[w+44>> -2]=t;g[w+56>>2]=u;e=Wi(b,w)|0;l=v;return e|0}function Jc(b,d,e,f,h,i,j,k,m,n,o,p,q,r){b=b|0;d=d|0;e=e|0;f=+f;h=+h;i=+i;j=+j;k=+k;m=+m;n=+n;o=+o;p=+p;q=+q;r=+r;var s=0,t=0,u=0,v=0,w=0;s=l;l=l+96|0;t=s+16|0;u=s+8|0;v=s;w=t+4|0;c[w>>2]=0;c[w+4>>2]=0;c[w+8>>2]=0;c[t>>2]=2;w=t+20|0;c[w>>2]=0;c[w+4>>2]=0;c[w+8>>2]=0;c[w+12>>2]=0;g[t+36>>2]=1;g[t+40>>2]=0;g[t+44>>2]=0;a[t+16>>0]=k!=0&1;a[t+48>>0]=m!=0&1;a[t+60>>0]=n!=0&1;g[t+52>>2]=o;g[t+64>>2]=p;g[t+68>>2]=q;g[t+56>>2]=r;g[u>>2]=f;g[u+4>>2]=h;g[v>>2]=i; -g[v+4>>2]=j;Jg(t,d,e,u,v);v=Wi(b,t)|0;l=s;return v|0}function Kc(b,d,e,f,h,i,j,k,m,n,o,p,q,r,s){b=b|0;d=d|0;e=e|0;f=+f;h=+h;i=+i;j=+j;k=+k;m=+m;n=+n;o=+o;p=+p;q=+q;r=+r;s=+s;var t=0,u=0;t=l;l=l+64|0;u=t;c[u+4>>2]=0;c[u>>2]=4;c[u+8>>2]=d;c[u+12>>2]=e;a[u+16>>0]=f!=0&1;g[u+20>>2]=h;g[u+24>>2]=i;g[u+28>>2]=j;g[u+32>>2]=k;g[u+52>>2]=m;g[u+56>>2]=n;g[u+36>>2]=o;g[u+40>>2]=p;g[u+44>>2]=q;g[u+48>>2]=r;g[u+60>>2]=s;e=Wi(b,u)|0;l=t;return e|0}function Lc(b,d,e,f,h,i,j,k,m,n,o,p,q){b=b|0;d=d|0;e=e|0;f=+f;h= -+h;i=+i;j=+j;k=+k;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;r=l;l=l+96|0;s=r+32|0;t=r+24|0;u=r+16|0;v=r+8|0;w=r;x=s+4|0;c[x>>2]=0;c[x+4>>2]=0;c[x+8>>2]=0;c[s>>2]=4;g[s+20>>2]=-1;g[s+24>>2]=1;g[s+28>>2]=1;g[s+32>>2]=1;g[s+36>>2]=-1;g[s+40>>2]=0;g[s+44>>2]=1;g[s+48>>2]=0;g[s+52>>2]=0;g[s+56>>2]=0;g[s+60>>2]=1;a[s+16>>0]=q!=0&1;g[t>>2]=k;g[t+4>>2]=m;g[u>>2]=n;g[u+4>>2]=o;g[v>>2]=f;g[v+4>>2]=h;g[w>>2]=i;g[w+4>>2]=j;Sh(s,d,e,t,u,v,w,p);w=Wi(b,s)|0;l=r;return w|0}function Mc(a,b){a=a|0;b= -+b;vh(a,b!=0);return}function Nc(a,b){a=a|0;b=+b;sh(a,b!=0);return}function Oc(a){a=a|0;return+ +qh(a)}function Pc(a){a=a|0;return+ +((uh(a)|0)&1)}function Qc(a){a=a|0;return+ +((rh(a)|0)&1)}function Rc(b,d,e,f,h,i,j,k,m,n,o,p,q,r,s){b=b|0;d=d|0;e=e|0;f=+f;h=+h;i=+i;j=+j;k=+k;m=+m;n=+n;o=+o;p=+p;q=+q;r=+r;s=+s;var t=0,u=0;t=l;l=l+64|0;u=t;c[u+4>>2]=0;c[u>>2]=1;c[u+8>>2]=d;c[u+12>>2]=e;a[u+16>>0]=f!=0&1;a[u+40>>0]=h!=0&1;a[u+52>>0]=i!=0&1;g[u+20>>2]=k;g[u+24>>2]=m;g[u+28>>2]=n;g[u+32>>2]=o;g[u+44>> -2]=j;g[u+60>>2]=p;g[u+56>>2]=q;g[u+36>>2]=r;g[u+48>>2]=s;e=Wi(b,u)|0;l=t;return e|0}function Sc(b,d,e,f,h,i,j,k,m,n,o,p){b=b|0;d=d|0;e=e|0;f=+f;h=+h;i=+i;j=+j;k=+k;m=+m;n=+n;o=+o;p=+p;var q=0,r=0,s=0,t=0;q=l;l=l+80|0;r=q+8|0;s=q;t=r+4|0;c[t>>2]=0;c[t+4>>2]=0;c[t+8>>2]=0;c[r>>2]=1;t=r+20|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;a[r+16>>0]=i!=0&1;a[r+40>>0]=j!=0&1;a[r+52>>0]=k!=0&1;g[r+44>>2]=m;g[r+60>>2]=n;g[r+56>>2]=o;g[r+48>>2]=p;g[s>>2]=f;g[s+4>>2]=h;oh(r,d,e,s);s=Wi(b,r)|0; -l=q;return s|0}function Tc(a,b){a=a|0;b=+b;th(a,b);return}function Uc(b,d,e,f,h,i,j,k,m){b=b|0;d=d|0;e=e|0;f=+f;h=+h;i=+i;j=+j;k=+k;m=+m;var n=0,o=0;n=l;l=l+48|0;o=n;c[o+4>>2]=0;c[o>>2]=10;c[o+8>>2]=d;c[o+12>>2]=e;a[o+16>>0]=f!=0&1;g[o+20>>2]=h;g[o+24>>2]=i;g[o+28>>2]=j;g[o+32>>2]=k;g[o+36>>2]=m;e=Wi(b,o)|0;l=n;return e|0}function Vc(b,d,e,f,h,i,j,k,m,n,o){b=b|0;d=d|0;e=e|0;f=+f;h=+h;i=+i;j=+j;k=+k;m=+m;n=+n;o=+o;var p=0,q=0;p=l;l=l+48|0;q=p;c[q+4>>2]=0;c[q>>2]=8;c[q+8>>2]=d;c[q+12>>2]=e;a[q+16>> -0]=f!=0&1;g[q+44>>2]=h;g[q+40>>2]=i;g[q+20>>2]=j;g[q+24>>2]=k;g[q+28>>2]=m;g[q+32>>2]=n;g[q+36>>2]=o;e=Wi(b,q)|0;l=p;return e|0}function Wc(b,d,e,f,h,i,j,k){b=b|0;d=d|0;e=e|0;f=+f;h=+h;i=+i;j=+j;k=+k;var m=0,n=0,o=0,p=0;m=l;l=l+64|0;n=m+8|0;o=m;p=n+4|0;c[p>>2]=0;c[p+4>>2]=0;c[p+8>>2]=0;c[n>>2]=8;p=n+20|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;a[n+16>>0]=i!=0&1;g[n+44>>2]=j;g[n+40>>2]=k;g[o>>2]=f;g[o+4>>2]=h;ng(n,d,e,o);o=Wi(b,n)|0;l=m;return o|0}function Xc(a,b){a=a|0;b=+b;Hh(a, -b);return}function Yc(a,b){a=a|0;b=+b;g[a+68>>2]=b;return}function Zc(b,d,e,f,h,i,j,k,m,n,o,p,q,r,s){b=b|0;d=d|0;e=e|0;f=+f;h=+h;i=+i;j=+j;k=+k;m=+m;n=+n;o=+o;p=+p;q=+q;r=+r;s=+s;var t=0,u=0;t=l;l=l+64|0;u=t;c[u+4>>2]=0;c[u>>2]=7;c[u+8>>2]=d;c[u+12>>2]=e;a[u+16>>0]=f!=0&1;g[u+60>>2]=h;a[u+44>>0]=i!=0&1;g[u+56>>2]=j;g[u+20>>2]=k;g[u+24>>2]=m;g[u+28>>2]=n;g[u+32>>2]=o;g[u+36>>2]=p;g[u+40>>2]=q;g[u+48>>2]=r;g[u+52>>2]=s;e=Wi(b,u)|0;l=t;return e|0}function _c(b,d,e,f,h,i,j,k,m,n,o,p,q){b=b|0;d=d|0;e= -e|0;f=+f;h=+h;i=+i;j=+j;k=+k;m=+m;n=+n;o=+o;p=+p;q=+q;var r=0,s=0,t=0,u=0,v=0;r=l;l=l+80|0;s=r+16|0;t=r+8|0;u=r;v=s+4|0;c[v>>2]=0;c[v+4>>2]=0;c[v+8>>2]=0;c[s>>2]=7;v=s+20|0;c[v>>2]=0;c[v+4>>2]=0;c[v+8>>2]=0;c[v+12>>2]=0;g[s+36>>2]=1;g[s+40>>2]=0;a[s+16>>0]=k!=0&1;g[s+60>>2]=m;a[s+44>>0]=n!=0&1;g[s+56>>2]=o;g[s+48>>2]=p;g[s+52>>2]=q;g[t>>2]=f;g[t+4>>2]=h;g[u>>2]=i;g[u+4>>2]=j;Fh(s,d,e,t,u);u=Wi(b,s)|0;l=r;return u|0}function $c(a,b,c){a=a|0;b=+b;c=+c;var d=0,e=0;d=l;l=l+16|0;e=d;g[e>>2]=b;g[e+4>>2]= -c;Mj(a,e);l=d;return}function ad(a,b,c){a=a|0;b=+b;c=+c;var d=0,e=0;d=l;l=l+16|0;e=d;g[e>>2]=b;g[e+4>>2]=c;Nj(a,e);l=d;return}function bd(a,b){a=a|0;b=+b;Oj(a,b!=0);return}function cd(a){a=a|0;return+ +(c[a+4>>2]|0)}function dd(a){a=a|0;return+ +((c[a+8>>2]|0)-(c[a+4>>2]|0)|0)}function ed(b,d,e,f,i,j,k,m,n,o,p,q,r){b=b|0;d=+d;e=+e;f=+f;i=+i;j=+j;k=+k;m=+m;n=+n;o=+o;p=+p;q=+q;r=+r;var s=0,t=0,u=0,v=0;s=l;l=l+64|0;t=s+8|0;u=s;v=s+16|0;h[t>>3]=k;h[u>>3]=p;a[v+20>>0]=~~d;a[v+21>>0]=~~f;a[v+22>>0]=~~e; -a[v+23>>0]=~~i;c[v>>2]=~~j>>>0;c[v+32>>2]=t;g[v+24>>2]=m;g[v+4>>2]=n;g[v+8>>2]=o;c[v+28>>2]=u;g[v+12>>2]=q;g[v+16>>2]=r;r=+(Vj(b,v)|0);l=s;return+r}function fd(a){a=a|0;return Uj(a)|0}function gd(a){a=a|0;return+ +(c[a+44>>2]|0)}function hd(a,b){a=a|0;b=+b;return+ +Hl(a,~~b)}function id(a){a=a|0;return c[a+96>>2]|0}function jd(a){a=a|0;return c[a+104>>2]|0}function kd(a,b){a=a|0;b=+b;g[a+340>>2]=b;return}function ld(a,b){a=a|0;b=+b;var c=0;c=b;g[a+320>>2]=c;g[a+28>>2]=1/c;return}function md(a,b){a= -a|0;b=+b;g[a+324>>2]=b;return}function nd(a,b){a=a|0;b=+b;c[a+332>>2]=~~b;return}function od(a,b,c){a=a|0;b=+b;c=+c;Yj(a,~~b,c);return}function pd(a,b){a=a|0;b=+b;var c=0;c=b*2;g[a+32>>2]=c;g[a+40>>2]=c*c;g[a+36>>2]=1/c;return}function qd(a){a=a|0;fn(a);return}function rd(a,b){a=a|0;b=b|0;Ba(b|0);return}function sd(a,b){a=a|0;b=b|0;Fa(b|0);return}function td(a,b,c){a=a|0;b=b|0;c=c|0;return}function ud(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return}function vd(a,b,c){a=a|0;b=b|0;c=c|0;return}function wd(a, -b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return}function xd(a,b,c){a=a|0;b=b|0;c=c|0;na(b|0,c|0);return}function yd(a,b,c){a=a|0;b=b|0;c=c|0;Ha(b|0,c|0);return}function zd(a){a=a|0;fn(a);return}function Ad(a,b){a=a|0;b=b|0;return Ga(b|0)|0}function Bd(a,b,c){a=a|0;b=b|0;c=c|0;return 0}function Cd(a,b){a=a|0;b=b|0;return 1}function Dd(a){a=a|0;fn(a);return}function Ed(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=+e;return+ +va(b|0,+ +g[c>>2],+ +g[c+4>>2],+ +g[d>>2],+ +g[d+4>>2],+e)}function Fd(a,b,c,d,e,f){a=a|0;b= -b|0;c=c|0;d=d|0;e=e|0;f=+f;return 0}function Gd(a,b){a=a|0;b=b|0;return 1}function Hd(a){a=a|0;return}function Id(){c[2110]=712;c[2111]=760;c[2112]=788;return}function Jd(d,e){d=d|0;e=e|0;var f=0,h=0,i=0,k=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,B=0,C=0,D=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,Ea=0,Fa=0,Ga=0,Ha=0,Ia=0,Ja=0,Ka=0,La=0,Ma=0,Na=0;f=l;l=l+320|0;h=f;i=f+284|0;k=f+248|0;m=f+236|0;n=f+144|0;o=f+120|0;p=f+16|0;q=f+12|0;r=f+8|0;Vl(h);c[2123]=(c[2123]|0)+1;c[d>>2]=0;s=c[e+128>>2]|0;t=d+4|0;c[t>>2]=s;u=e+28|0;v=i;w=e+56|0;x=v+36|0;do{c[v>>2]=c[w>>2];v=v+4|0;w=w+4|0}while((v|0)<(x|0));v=k;w=e+92|0;x=v+36|0;do{c[v>>2]=c[w>>2];v=v+4|0;w=w+4|0}while((v|0)<(x|0));w=i+24|0;y=+g[w>>2];z=+A(+(y/6.2831854820251465))*6.2831854820251465;B=y-z;g[w>>2]=B;v=i+28|0;y=+g[v>>2]-z;g[v>> -2]=y;x=k+24|0;z=+g[x>>2];C=+A(+(z/6.2831854820251465))*6.2831854820251465;D=z-C;g[x>>2]=D;G=k+28|0;z=+g[G>>2]-C;g[G>>2]=z;C=(c[j>>2]=s,+g[j>>2]);H=+g[e+24>>2]+ +g[e+52>>2]+-.014999999664723873;I=H<.004999999888241291?.004999999888241291:H;b[m+4>>1]=0;c[n>>2]=c[e>>2];c[n+4>>2]=c[e+4>>2];c[n+8>>2]=c[e+8>>2];c[n+12>>2]=c[e+12>>2];c[n+16>>2]=c[e+16>>2];c[n+20>>2]=c[e+20>>2];c[n+24>>2]=c[e+24>>2];J=n+28|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];c[J+16>>2]=c[u+16>> -2];c[J+20>>2]=c[u+20>>2];c[J+24>>2]=c[u+24>>2];a[n+88>>0]=0;J=i+8|0;K=i+12|0;L=i+16|0;M=i+20|0;N=i+4|0;O=k+8|0;P=k+12|0;Q=k+16|0;R=k+20|0;S=k+4|0;T=n+56|0;U=n+60|0;V=n+64|0;W=n+68|0;X=n+72|0;Y=n+76|0;Z=n+80|0;_=n+84|0;$=o+16|0;H=I+.0012499999720603228;aa=I+-.0012499999720603228;ba=0;ca=0;da=D;D=z;z=B;B=y;while(1){y=1-ba;ea=y*z+ba*B;fa=+F(+ea);ga=+E(+ea);ea=+g[i>>2];ha=+g[N>>2];ia=y*+g[K>>2]+ba*+g[M>>2]-(fa*ea+ga*ha);ja=y*da+ba*D;ka=+F(+ja);la=+E(+ja);ja=+g[k>>2];ma=+g[S>>2];na=y*+g[O>>2]+ba*+g[Q>> -2]-(la*ja-ka*ma);oa=y*+g[P>>2]+ba*+g[R>>2]-(ka*ja+la*ma);g[T>>2]=y*+g[J>>2]+ba*+g[L>>2]-(ga*ea-fa*ha);g[U>>2]=ia;g[V>>2]=fa;g[W>>2]=ga;g[X>>2]=na;g[Y>>2]=oa;g[Z>>2]=ka;g[_>>2]=la;Pd(o,m,n);la=+g[$>>2];if(la<=0){pa=0;qa=2;ra=20;break}if(laH)){sa=0;ka=C;oa=la;while(1){if(oa>aa){ta=ka;ua=0;break a}na=+Md(p,c[q>>2]|0,c[r>>2]|0,ba);if(na>2]|0,c[r>>2]|0,Aa);ga=na-I;Ba=(ga>0?ga:-ga)<.0012499999720603228;Ca=na>I;if((xa|0)==50|Ba)break;else{va=Ca?va:Aa;wa=Ca?Aa:wa;ya=Ca?na:ya;za=Ca?za:na}}ka=Ba?Aa:ka;Ca=c[2127]|0;c[2127]=(Ca|0)>(xa|0)?Ca:xa;sa=sa+1|0;if((sa|0)==8){ta=ba;ua=0;break a}oa=+Ld(p,q,r,ka);if(oa>H){ra=5;break a}}if((ra|0)==8){ra=0;c[d>>2]=1;g[t>>2]=ba;ta=ba;ua=1;break}else if((ra|0)==10){ra=0;c[d>>2]=3;g[t>>2]=ba;ta=ba;ua=1;break}}else ra= -5;while(0);if((ra|0)==5){ra=0;c[d>>2]=4;c[t>>2]=s;ta=ba;ua=1}sa=ca+1|0;c[2124]=(c[2124]|0)+1;if(ua){Da=sa;break}if((sa|0)==20){ra=19;break}ba=ta;ca=sa;da=+g[x>>2];D=+g[G>>2];z=+g[w>>2];B=+g[v>>2]}if((ra|0)==19){c[d>>2]=1;g[t>>2]=ta;Da=20}else if((ra|0)==20){c[d>>2]=qa;g[t>>2]=pa;Ea=ca;Fa=c[2125]|0;Ga=(Fa|0)>(Ea|0);Ha=Ga?Fa:Ea;c[2125]=Ha;Ia=+Xl(h);Ja=+g[2122];Ka=Ja>Ia;La=Ka?Ja:Ia;g[2122]=La;Ma=+g[2121];Na=Ia+Ma;g[2121]=Na;l=f;return}Ea=Da;Fa=c[2125]|0;Ga=(Fa|0)>(Ea|0);Ha=Ga?Fa:Ea;c[2125]=Ha;Ia=+Xl(h); -Ja=+g[2122];Ka=Ja>Ia;La=Ka?Ja:Ia;g[2122]=La;Ma=+g[2121];Na=Ia+Ma;g[2121]=Na;l=f;return}function Kd(e,f,h,i,j,k,l){e=e|0;f=f|0;h=h|0;i=i|0;j=j|0;k=k|0;l=+l;var 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,D=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0;c[e>>2]=h;c[e+4>>2]=j;m=b[f+4>>1]|0;n=e+8|0;o=n;p=i;i=o+36|0;do{c[o>>2]=c[p>>2];o=o+4|0;p=p+4|0}while((o|0)<(i|0));q=e+44|0;o=q;p=k;i=o+36|0;do{c[o>>2]=c[p>>2];o=o+4|0;p=p+4|0}while((o|0)<(i|0));r=1-l;s=r*+g[e+32>>2]+ +g[e+36>>2]*l;t=+F(+s);u= -+E(+s);s=+g[n>>2];v=+g[e+12>>2];w=r*+g[e+16>>2]+ +g[e+24>>2]*l-(u*s-t*v);x=r*+g[e+20>>2]+ +g[e+28>>2]*l-(t*s+u*v);v=r*+g[e+68>>2]+ +g[e+72>>2]*l;s=+F(+v);y=+E(+v);v=+g[q>>2];z=+g[e+48>>2];A=r*+g[e+52>>2]+ +g[e+60>>2]*l-(y*v-s*z);B=r*+g[e+56>>2]+ +g[e+64>>2]*l-(s*v+y*z);if(m<<16>>16==1){c[e+80>>2]=0;m=d[f+6>>0]|0;q=c[h+16>>2]|0;z=+g[q+(m<<3)>>2];v=+g[q+(m<<3)+4>>2];m=d[f+9>>0]|0;q=c[j+16>>2]|0;l=+g[q+(m<<3)>>2];r=+g[q+(m<<3)+4>>2];D=A+(y*l-s*r)-(w+(u*z-t*v));G=B+(s*l+y*r)-(x+(t*z+u*v));m=e+92|0;g[m>> -2]=D;q=e+96|0;g[q>>2]=G;v=+C(+(D*D+G*G));z=1/v;if(v<1.1920928955078125E-7)H=0;else{g[m>>2]=D*z;g[q>>2]=z*G;H=v}q=8716;m=c[q+4>>2]|0;n=e+84|0;c[n>>2]=c[q>>2];c[n+4>>2]=m;I=H;return+I}m=f+6|0;n=f+7|0;q=e+80|0;if((a[m>>0]|0)==(a[n>>0]|0)){c[q>>2]=2;p=d[f+9>>0]|0;o=c[j+16>>2]|0;H=+g[o+(p<<3)>>2];v=+g[o+(p<<3)+4>>2];p=d[f+10>>0]|0;G=+g[o+(p<<3)>>2];z=+g[o+(p<<3)+4>>2];D=G-H;r=z-v;l=-D;p=e+92|0;g[p>>2]=r;o=e+96|0;g[o>>2]=l;J=+C(+(D*D+r*r));D=1/J;if(J<1.1920928955078125E-7){K=r;L=l}else{J=D*l;l=r*D;g[p>> -2]=l;g[o>>2]=J;K=l;L=J}J=(H+G)*.5;G=(v+z)*.5;g[e+84>>2]=J;g[e+88>>2]=G;i=d[m>>0]|0;k=c[h+16>>2]|0;z=+g[k+(i<<3)>>2];v=+g[k+(i<<3)+4>>2];H=(y*K-s*L)*(w+(u*z-t*v)-(A+(y*J-s*G)))+(s*K+y*L)*(x+(t*z+u*v)-(B+(s*J+y*G)));if(!(H<0)){I=H;return+I}g[p>>2]=-K;g[o>>2]=-L;I=-H;return+I}else{c[q>>2]=1;q=d[m>>0]|0;m=c[h+16>>2]|0;H=+g[m+(q<<3)>>2];L=+g[m+(q<<3)+4>>2];q=d[n>>0]|0;K=+g[m+(q<<3)>>2];G=+g[m+(q<<3)+4>>2];J=K-H;v=G-L;z=-J;q=e+92|0;g[q>>2]=v;m=e+96|0;g[m>>2]=z;l=+C(+(J*J+v*v));J=1/l;if(l<1.1920928955078125E-7){M= -v;N=z}else{l=J*z;z=v*J;g[q>>2]=z;g[m>>2]=l;M=z;N=l}l=(H+K)*.5;K=(L+G)*.5;g[e+84>>2]=l;g[e+88>>2]=K;e=d[f+9>>0]|0;f=c[j+16>>2]|0;G=+g[f+(e<<3)>>2];L=+g[f+(e<<3)+4>>2];H=(u*M-t*N)*(A+(y*G-s*L)-(w+(u*l-t*K)))+(t*M+u*N)*(B+(s*G+y*L)-(x+(t*l+u*K)));if(!(H<0)){I=H;return+I}g[q>>2]=-M;g[m>>2]=-N;I=-H;return+I}return+0}function Ld(a,b,d,e){a=a|0;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,G=0,H=0,I=0,J=0;f=1-e;h=f*+g[a+32>>2]+ +g[a+ -36>>2]*e;i=+F(+h);j=+E(+h);h=+g[a+8>>2];k=+g[a+12>>2];l=f*+g[a+16>>2]+ +g[a+24>>2]*e-(j*h-i*k);m=f*+g[a+20>>2]+ +g[a+28>>2]*e-(i*h+j*k);k=f*+g[a+68>>2]+ +g[a+72>>2]*e;h=+F(+k);n=+E(+k);k=+g[a+44>>2];o=+g[a+48>>2];p=f*+g[a+52>>2]+ +g[a+60>>2]*e-(n*k-h*o);q=f*+g[a+56>>2]+ +g[a+64>>2]*e-(h*k+n*o);switch(c[a+80>>2]|0){case 0:{r=a+92|0;o=+g[r>>2];s=a+96|0;k=+g[s>>2];e=j*o+i*k;f=j*k-i*o;t=-o;o=-k;k=n*t+h*o;u=n*o-h*t;v=c[a>>2]|0;w=c[v+16>>2]|0;x=c[v+20>>2]|0;if((x|0)>1){v=1;t=e*+g[w>>2]+f*+g[w+4>>2];y=0; -while(1){o=e*+g[w+(v<<3)>>2]+f*+g[w+(v<<3)+4>>2];z=o>t;A=z?v:y;v=v+1|0;if((v|0)==(x|0)){B=A;break}else{t=z?o:t;y=A}}}else B=0;c[b>>2]=B;B=c[a+4>>2]|0;y=c[B+16>>2]|0;x=c[B+20>>2]|0;if((x|0)>1){B=1;t=k*+g[y>>2]+u*+g[y+4>>2];v=0;while(1){f=k*+g[y+(B<<3)>>2]+u*+g[y+(B<<3)+4>>2];A=f>t;z=A?B:v;B=B+1|0;if((B|0)==(x|0)){C=z;break}else{t=A?f:t;v=z}}}else C=0;c[d>>2]=C;v=c[b>>2]|0;t=+g[w+(v<<3)>>2];u=+g[w+(v<<3)+4>>2];k=+g[y+(C<<3)>>2];f=+g[y+(C<<3)+4>>2];D=+g[r>>2]*(p+(n*k-h*f)-(l+(j*t-i*u)))+ +g[s>>2]*(q+ -(h*k+n*f)-(m+(i*t+j*u)));return+D}case 1:{u=+g[a+92>>2];t=+g[a+96>>2];f=j*u-i*t;k=i*u+j*t;t=+g[a+84>>2];u=+g[a+88>>2];e=l+(j*t-i*u);o=m+(i*t+j*u);u=-f;t=-k;G=n*u+h*t;H=n*t-h*u;c[b>>2]=-1;s=c[a+4>>2]|0;r=c[s+16>>2]|0;C=c[s+20>>2]|0;if((C|0)>1){s=1;u=G*+g[r>>2]+H*+g[r+4>>2];y=0;while(1){t=G*+g[r+(s<<3)>>2]+H*+g[r+(s<<3)+4>>2];v=t>u;w=v?s:y;s=s+1|0;if((s|0)==(C|0)){I=w;break}else{u=v?t:u;y=w}}}else I=0;c[d>>2]=I;u=+g[r+(I<<3)>>2];H=+g[r+(I<<3)+4>>2];D=f*(p+(n*u-h*H)-e)+k*(q+(h*u+n*H)-o);return+D}case 2:{o= -+g[a+92>>2];H=+g[a+96>>2];u=n*o-h*H;k=h*o+n*H;H=+g[a+84>>2];o=+g[a+88>>2];e=p+(n*H-h*o);p=q+(h*H+n*o);o=-u;n=-k;H=j*o+i*n;h=j*n-i*o;c[d>>2]=-1;I=c[a>>2]|0;a=c[I+16>>2]|0;r=c[I+20>>2]|0;if((r|0)>1){I=1;o=H*+g[a>>2]+h*+g[a+4>>2];y=0;while(1){n=H*+g[a+(I<<3)>>2]+h*+g[a+(I<<3)+4>>2];C=n>o;s=C?I:y;I=I+1|0;if((I|0)==(r|0)){J=s;break}else{o=C?n:o;y=s}}}else J=0;c[b>>2]=J;o=+g[a+(J<<3)>>2];h=+g[a+(J<<3)+4>>2];D=u*(l+(j*o-i*h)-e)+k*(m+(i*o+j*h)-p);return+D}default:{c[b>>2]=-1;c[d>>2]=-1;D=0;return+D}}return+0} -function Md(a,b,d,e){a=a|0;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;f=1-e;h=f*+g[a+32>>2]+ +g[a+36>>2]*e;i=+F(+h);j=+E(+h);h=+g[a+8>>2];k=+g[a+12>>2];l=f*+g[a+16>>2]+ +g[a+24>>2]*e-(j*h-i*k);m=f*+g[a+20>>2]+ +g[a+28>>2]*e-(i*h+j*k);k=f*+g[a+68>>2]+ +g[a+72>>2]*e;h=+F(+k);n=+E(+k);k=+g[a+44>>2];o=+g[a+48>>2];p=f*+g[a+52>>2]+ +g[a+60>>2]*e-(n*k-h*o);q=f*+g[a+56>>2]+ +g[a+64>>2]*e-(h*k+n*o);switch(c[a+80>>2]|0){case 0:{r=c[(c[a>>2]|0)+16>>2]|0;o=+g[r+(b<<3)>>2]; -k=+g[r+(b<<3)+4>>2];r=c[(c[a+4>>2]|0)+16>>2]|0;e=+g[r+(d<<3)>>2];f=+g[r+(d<<3)+4>>2];s=+g[a+92>>2]*(p+(n*e-h*f)-(l+(j*o-i*k)))+ +g[a+96>>2]*(q+(h*e+n*f)-(m+(i*o+j*k)));return+s}case 1:{k=+g[a+92>>2];o=+g[a+96>>2];f=+g[a+84>>2];e=+g[a+88>>2];r=c[(c[a+4>>2]|0)+16>>2]|0;t=+g[r+(d<<3)>>2];u=+g[r+(d<<3)+4>>2];s=(j*k-i*o)*(p+(n*t-h*u)-(l+(j*f-i*e)))+(i*k+j*o)*(q+(h*t+n*u)-(m+(i*f+j*e)));return+s}case 2:{e=+g[a+92>>2];f=+g[a+96>>2];u=+g[a+84>>2];t=+g[a+88>>2];d=c[(c[a>>2]|0)+16>>2]|0;o=+g[d+(b<<3)>>2];k= -+g[d+(b<<3)+4>>2];s=(n*e-h*f)*(l+(j*o-i*k)-(p+(n*u-h*t)))+(h*e+n*f)*(m+(i*o+j*k)-(q+(h*u+n*t)));return+s}default:{s=0;return+s}}return+0}function Nd(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;switch(c[b+4>>2]|0){case 0:{c[a+16>>2]=b+12;e=1;break}case 2:{c[a+16>>2]=b+20;e=c[b+148>>2]|0;break}case 3:{f=b+12|0;g=(c[f>>2]|0)+(d<<3)|0;h=c[g+4>>2]|0;i=a;c[i>>2]=c[g>>2];c[i+4>>2]=h;h=d+1|0;d=c[f>>2]|0;f=(h|0)<(c[b+16>>2]|0)?d+(h<<3)|0:d;d=c[f+4>>2]|0;h=a+8|0;c[h>>2]=c[f>>2];c[h+4>>2]=d;c[a+16>>2]= -a;e=2;break}case 1:{c[a+16>>2]=b+12;e=2;break}default:return}c[a+20>>2]=e;c[a+24>>2]=c[b+8>>2];return}function Od(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,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;b=+g[a+16>>2];d=+g[a+20>>2];e=a+36|0;f=+g[a+52>>2];h=+g[a+56>>2];i=a+72|0;j=+g[a+88>>2];k=+g[a+92>>2];l=f-b;m=h-d;n=b*l+d*m;o=f*l+h*m;p=j-b;q=k-d;r=b*p+d*q;s=j*p+k*q;t=j-f;u=k-h;v=f*t+h*u;w=j*t+k*u;u=l*q-m*p;p=(f*k-h*j)*u;m=(d*j-b*k)*u;k=(b*h-d*f)*u;if(n>=-0&r>=-0){g[a+24>>2]=1;c[a+ -108>>2]=1;return}if(o>0&n<-0&k<=0){u=1/(o-n);g[a+24>>2]=o*u;g[a+60>>2]=-(n*u);c[a+108>>2]=2;return}if(s>0&r<-0&m<=0){u=1/(s-r);g[a+24>>2]=s*u;g[a+96>>2]=-(r*u);c[a+108>>2]=2;x=e;y=i;z=x+36|0;do{c[x>>2]=c[y>>2];x=x+4|0;y=y+4|0}while((x|0)<(z|0));return}if(o<=0&v>=-0){g[a+60>>2]=1;c[a+108>>2]=1;x=a;y=e;z=x+36|0;do{c[x>>2]=c[y>>2];x=x+4|0;y=y+4|0}while((x|0)<(z|0));return}if(s<=0&w<=0){g[a+96>>2]=1;c[a+108>>2]=1;x=a;y=i;z=x+36|0;do{c[x>>2]=c[y>>2];x=x+4|0;y=y+4|0}while((x|0)<(z|0));return}if(w>0&v<-0& -p<=0){s=1/(w-v);g[a+60>>2]=w*s;g[a+96>>2]=-(v*s);c[a+108>>2]=2;x=a;y=i;z=x+36|0;do{c[x>>2]=c[y>>2];x=x+4|0;y=y+4|0}while((x|0)<(z|0));return}else{s=1/(k+(p+m));g[a+24>>2]=p*s;g[a+60>>2]=m*s;g[a+96>>2]=k*s;c[a+108>>2]=3;return}}function Pd(d,e,f){d=d|0;e=e|0;f=f|0;var h=0,i=0,k=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,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;h=l;l=l+176|0;i=h+152|0;k=h+136|0;m=h;n=h+124|0;o=h+112|0;c[2128]=(c[2128]|0)+1;p=f+56|0;c[i>>2]=c[p>>2];c[i+4>>2]=c[p+4>>2];c[i+8>>2]=c[p+8>>2];c[i+12>>2]=c[p+12>>2];p=f+72|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];Qd(m,e,f,i,f+28|0,k);c[n>>2]=0;c[n+4>>2]=0;c[n+8>>2]=0;c[o>>2]=0;c[o+4>>2]=0;c[o+8>>2]=0;p=m+108|0;q=i+12|0;r=i+8|0;s=f+16|0;t=f+20|0;u=i+4|0;v=k+12|0;w=k+8|0;x=f+44|0;y=f+48|0;z=k+4|0;A=m+16|0;B=m+20|0;D= -m+52|0;E=m+56|0;F=m+36|0;G=m+24|0;H=m+60|0;I=0;J=c[p>>2]|0;a:while(1){K=(J|0)>0;if(K){L=0;do{c[n+(L<<2)>>2]=c[m+(L*36|0)+28>>2];c[o+(L<<2)>>2]=c[m+(L*36|0)+32>>2];L=L+1|0}while((L|0)!=(J|0))}b:do switch(J|0){case 3:{Od(m);L=c[p>>2]|0;if((L|0)==3){M=11;break a}else{N=L;M=13}break}case 2:{O=+g[A>>2];P=+g[B>>2];Q=+g[D>>2];R=+g[E>>2];S=Q-O;T=R-P;U=O*S+P*T;do if(!(U>=-0)){P=Q*S+R*T;if(!(P<=0)){O=1/(P-U);g[G>>2]=P*O;g[H>>2]=-(U*O);V=2;break}else{g[H>>2]=1;c[p>>2]=1;L=m;W=F;X=L+36|0;do{c[L>>2]=c[W>>2];L= -L+4|0;W=W+4|0}while((L|0)<(X|0));M=14;break b}}else{g[G>>2]=1;V=1}while(0);c[p>>2]=V;N=V;M=13;break}default:{N=J;M=13}}while(0);c:do if((M|0)==13){M=0;switch(N|0){case 1:{M=14;break c;break}case 2:break;default:{Y=N;Z=+g[2179];_=+g[2180];break c}}U=+g[A>>2];T=+g[D>>2]-U;R=+g[B>>2];S=+g[E>>2]-R;if(U*S-T*R>0){Y=2;Z=-S;_=T;break}else{Y=2;Z=S;_=-T;break}}while(0);if((M|0)==14){M=0;Y=1;Z=-+g[A>>2];_=-+g[B>>2]}if(Z*Z+_*_<1.4210854715202004E-14){$=I;aa=Y;M=32;break}T=-Z;S=-_;R=+g[q>>2];U=+g[r>>2];Q=R*T+ -U*S;O=R*S-U*T;W=c[s>>2]|0;L=c[t>>2]|0;if((L|0)>1){X=1;T=Q*+g[W>>2]+O*+g[W+4>>2];ba=0;while(1){S=Q*+g[W+(X<<3)>>2]+O*+g[W+(X<<3)+4>>2];ca=S>T;da=ca?X:ba;X=X+1|0;if((X|0)==(L|0)){ea=da;break}else{T=ca?S:T;ba=da}}}else ea=0;c[m+(Y*36|0)+28>>2]=ea;T=+g[W+(ea<<3)>>2];O=+g[W+(ea<<3)+4>>2];Q=+g[i>>2]+(R*T-U*O);S=T*U+R*O+ +g[u>>2];g[m+(Y*36|0)>>2]=Q;g[m+(Y*36|0)+4>>2]=S;O=+g[v>>2];T=+g[w>>2];P=Z*O+_*T;fa=_*O-Z*T;ba=c[x>>2]|0;L=c[y>>2]|0;if((L|0)>1){X=1;ga=P*+g[ba>>2]+fa*+g[ba+4>>2];da=0;while(1){ha=P*+g[ba+ -(X<<3)>>2]+fa*+g[ba+(X<<3)+4>>2];ca=ha>ga;ia=ca?X:da;X=X+1|0;if((X|0)==(L|0)){ja=ia;break}else{ga=ca?ha:ga;da=ia}}}else ja=0;c[m+(Y*36|0)+32>>2]=ja;ga=+g[ba+(ja<<3)>>2];fa=+g[ba+(ja<<3)+4>>2];P=+g[k>>2]+(O*ga-T*fa);R=ga*T+O*fa+ +g[z>>2];g[m+(Y*36|0)+8>>2]=P;g[m+(Y*36|0)+12>>2]=R;g[m+(Y*36|0)+16>>2]=P-Q;g[m+(Y*36|0)+20>>2]=R-S;ka=I+1|0;c[2129]=(c[2129]|0)+1;if(K){da=0;do{if((ea|0)==(c[n+(da<<2)>>2]|0)?(ja|0)==(c[o+(da<<2)>>2]|0):0){M=31;break a}da=da+1|0}while((da|0)<(J|0))}da=(c[p>>2]|0)+1|0;c[p>> -2]=da;if((ka|0)<20){I=ka;J=da}else{$=ka;aa=da;M=32;break}}if((M|0)==11){J=c[2130]|0;c[2130]=(J|0)>(I|0)?J:I;la=I;ma=d+8|0;M=36}else if((M|0)==31){$=ka;aa=c[p>>2]|0;M=32}d:do if((M|0)==32){p=c[2130]|0;c[2130]=(p|0)>($|0)?p:$;p=d+8|0;switch(aa|0){case 3:{la=$;ma=p;M=36;break d;break}case 1:{ka=m;I=c[ka>>2]|0;J=c[ka+4>>2]|0;ka=d;c[ka>>2]=I;c[ka+4>>2]=J;J=m+8|0;ka=c[J+4>>2]|0;o=p;c[o>>2]=c[J>>2];c[o+4>>2]=ka;na=$;oa=d;pa=p;qa=(c[j>>2]=I,+g[j>>2]);ra=1;break d;break}case 2:{Z=+g[G>>2];_=+g[H>>2];S=Z*+g[m>> -2]+_*+g[m+36>>2];Q=Z*+g[m+4>>2]+_*+g[m+40>>2];g[d>>2]=S;g[d+4>>2]=Q;Q=Z*+g[m+12>>2]+_*+g[m+48>>2];g[p>>2]=Z*+g[m+8>>2]+_*+g[m+44>>2];g[d+12>>2]=Q;na=$;oa=d;pa=p;qa=S;ra=2;break d;break}default:{na=$;oa=d;pa=p;qa=+g[d>>2];ra=aa;break d}}}while(0);if((M|0)==36){S=+g[G>>2];Q=+g[H>>2];_=+g[m+96>>2];Z=S*+g[m+4>>2]+Q*+g[m+40>>2]+_*+g[m+76>>2];g[d>>2]=S*+g[m>>2]+Q*+g[m+36>>2]+_*+g[m+72>>2];g[d+4>>2]=Z;H=d;G=c[H>>2]|0;aa=c[H+4>>2]|0;H=ma;c[H>>2]=G;c[H+4>>2]=aa;na=la;oa=d;pa=ma;qa=(c[j>>2]=G,+g[j>>2]);ra= -3}Z=qa-+g[pa>>2];G=d+4|0;ma=d+12|0;qa=+g[G>>2]-+g[ma>>2];la=d+16|0;g[la>>2]=+C(+(Z*Z+qa*qa));c[d+20>>2]=na;switch(ra|0){case 3:{qa=+g[A>>2];Z=+g[B>>2];sa=(+g[D>>2]-qa)*(+g[m+92>>2]-Z)-(+g[E>>2]-Z)*(+g[m+88>>2]-qa);M=40;break}case 2:{qa=+g[A>>2]-+g[D>>2];Z=+g[B>>2]-+g[E>>2];sa=+C(+(qa*qa+Z*Z));M=40;break}default:{g[e>>2]=0;b[e+4>>1]=ra;if((ra|0)>0){ta=0;M=42}}}if((M|0)==40){g[e>>2]=sa;b[e+4>>1]=ra;ta=0;M=42}if((M|0)==42)while(1){M=0;a[e+6+ta>>0]=c[m+(ta*36|0)+28>>2];a[e+9+ta>>0]=c[m+(ta*36|0)+32>> -2];ta=ta+1|0;if((ta|0)>=(ra|0))break;else M=42}if(!(a[f+88>>0]|0)){l=h;return}sa=+g[f+24>>2];Z=+g[f+52>>2];qa=+g[la>>2];_=sa+Z;if(qa>_&qa>1.1920928955078125E-7){g[la>>2]=qa-_;_=+g[pa>>2];qa=+g[oa>>2];Q=_-qa;S=+g[ma>>2];O=+g[G>>2];T=S-O;R=+C(+(Q*Q+T*T));f=R<1.1920928955078125E-7;P=1/R;R=f?Q:Q*P;Q=f?T:T*P;g[oa>>2]=qa+sa*R;g[G>>2]=O+sa*Q;g[pa>>2]=_-Z*R;g[ma>>2]=S-Z*Q;l=h;return}else{Q=(+g[oa>>2]+ +g[pa>>2])*.5;Z=(+g[G>>2]+ +g[ma>>2])*.5;g[oa>>2]=Q;g[G>>2]=Z;g[pa>>2]=Q;g[ma>>2]=Z;g[la>>2]=0;l=h;return}} -function Qd(a,e,f,h,i,j){a=a|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,w=0,x=0,y=0,z=0,A=0,B=0,D=0,E=0,F=0,G=0,H=0;k=b[e+4>>1]|0;l=k&65535;m=a+108|0;c[m>>2]=l;if(!(k<<16>>16))n=l;else{l=f+16|0;k=i+16|0;o=h+12|0;p=h+8|0;q=h+4|0;r=j+12|0;s=j+8|0;t=j+4|0;u=0;do{v=d[e+6+u>>0]|0;c[a+(u*36|0)+28>>2]=v;w=d[e+9+u>>0]|0;c[a+(u*36|0)+32>>2]=w;x=c[l>>2]|0;y=+g[x+(v<<3)>>2];z=+g[x+(v<<3)+4>>2];v=c[k>>2]|0;A=+g[v+(w<<3)>>2];B=+g[v+(w<<3)+4>>2];D=+g[o>>2];E=+g[p>>2];F= -+g[h>>2]+(y*D-z*E);G=z*D+y*E+ +g[q>>2];g[a+(u*36|0)>>2]=F;g[a+(u*36|0)+4>>2]=G;E=+g[r>>2];y=+g[s>>2];D=+g[j>>2]+(A*E-B*y);z=B*E+A*y+ +g[t>>2];g[a+(u*36|0)+8>>2]=D;g[a+(u*36|0)+12>>2]=z;g[a+(u*36|0)+16>>2]=D-F;g[a+(u*36|0)+20>>2]=z-G;g[a+(u*36|0)+24>>2]=0;u=u+1|0;w=c[m>>2]|0}while((u|0)<(w|0));n=w}if((n|0)<=1){if(n|0)return}else{G=+g[e>>2];switch(n|0){case 3:{z=+g[a+16>>2];F=+g[a+20>>2];H=(+g[a+52>>2]-z)*(+g[a+92>>2]-F)-(+g[a+56>>2]-F)*(+g[a+88>>2]-z);break}case 2:{z=+g[a+16>>2]-+g[a+52>>2];F=+g[a+ -20>>2]-+g[a+56>>2];H=+C(+(z*z+F*F));break}default:H=0}if(!(H>2]=0}c[a+28>>2]=0;c[a+32>>2]=0;n=c[f+16>>2]|0;H=+g[n>>2];G=+g[n+4>>2];n=c[i+16>>2]|0;F=+g[n>>2];z=+g[n+4>>2];D=+g[h+12>>2];y=+g[h+8>>2];A=+g[h>>2]+(H*D-G*y);E=G*D+H*y+ +g[h+4>>2];g[a>>2]=A;g[a+4>>2]=E;y=+g[j+12>>2];H=+g[j+8>>2];D=+g[j>>2]+(F*y-z*H);G=z*y+F*H+ +g[j+4>>2];g[a+8>>2]=D;g[a+12>>2]=G;g[a+16>>2]=D-A;g[a+20>>2]=G-E;g[a+24>>2]=1;c[m>>2]=1;return}function Rd(a){a=a|0;return}function Sd(a){a= -a|0;fn(a);return}function Td(a,d){a=a|0;d=d|0;var e=0,f=0,h=0,i=0;e=Pl(d,48)|0;c[e>>2]=816;d=e+4|0;c[d>>2]=1;g[e+8>>2]=.009999999776482582;f=e+28|0;c[f>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;c[f+12>>2]=0;b[f+16>>1]=0;f=a+4|0;h=c[f+4>>2]|0;i=d;c[i>>2]=c[f>>2];c[i+4>>2]=h;h=e+12|0;i=a+12|0;c[h>>2]=c[i>>2];c[h+4>>2]=c[i+4>>2];c[h+8>>2]=c[i+8>>2];c[h+12>>2]=c[i+12>>2];c[h+16>>2]=c[i+16>>2];c[h+20>>2]=c[i+20>>2];c[h+24>>2]=c[i+24>>2];c[h+28>>2]=c[i+28>>2];b[h+32>>1]=b[i+32>>1]|0;return e|0}function Ud(a){a=a|0; -return 1}function Vd(a,b,c){a=a|0;b=b|0;c=c|0;return 0}function Wd(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,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;i=+g[b+12>>2];k=+g[a+12>>2];l=+g[b+8>>2];m=+g[a+16>>2];n=+g[b>>2];o=n+(i*k-l*m);p=+g[b+4>>2];q=k*l+i*m+p;m=+g[a+20>>2];k=+g[a+24>>2];r=n+(i*m-l*k);n=p+(l*m+i*k);k=+g[d>>2];i=k-o;m=+g[d+4>>2];l=m-q;p=r-o;o=n-q;q=i*p+l*o;do if(q>0){s=p*p+o*o;if(q>s){t=k-r;u=m-n;break}else{v=q/s;t=i-p*v;u=l-o*v;break}}else{t=i;u=l}while(0); -l=+C(+(t*t+u*u));g[e>>2]=l;if(l>0){i=1/l;e=(g[j>>2]=t*i,c[j>>2]|0);w=e;x=(g[j>>2]=u*i,c[j>>2]|0);c[f>>2]=w;y=f+4|0;c[y>>2]=x;return}else{w=c[2179]|0;x=c[2180]|0;c[f>>2]=w;y=f+4|0;c[y>>2]=x;return}}function Xd(a,b,c,d,e){a=a|0;b=b|0;c=c|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;f=+g[d>>2];h=+g[c>>2]-f;i=+g[d+4>>2];j=+g[c+4>>2]-i;k=+g[d+12>>2];l=+g[d+8>>2];m=h*k+j*l;n=k*j-h*l;h=+g[c+8>>2]-f;f=+g[c+12>>2]-i;i=k*h+l*f-m;j=k*f-l*h-n;h=+g[a+12>>2];f=+g[a+16>> -2];o=+g[a+20>>2]-h;p=+g[a+24>>2]-f;q=-o;r=o*o+p*p;s=+C(+r);a=s<1.1920928955078125E-7;t=1/s;s=a?p:p*t;u=a?q:t*q;q=(h-m)*s+(f-n)*u;t=i*s+j*u;if(t==0){v=0;return v|0}w=q/t;if(w<0){v=0;return v|0}if(r==0?1:+g[c+16>>2]1){v=0;return v|0}g[b+8>>2]=w;w=s*k-u*l;t=u*k+s*l;if(q>0){g[b>>2]=-w;g[b+4>>2]=-t;v=1;return v|0}else{g[b>>2]=w;g[b+4>>2]=t;v=1;return v|0}return 0}function Yd(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,j=0,k=0,l=0,m=0,n= -0;e=+g[c+12>>2];f=+g[a+12>>2];h=+g[c+8>>2];i=+g[a+16>>2];j=+g[c>>2];k=j+(e*f-h*i);l=+g[c+4>>2];m=f*h+e*i+l;i=+g[a+20>>2];f=+g[a+24>>2];n=j+(e*i-h*f);j=l+(h*i+e*f);f=+g[a+8>>2];g[b>>2]=(k>2]=(m>2]=f+(k>n?k:n);g[b+12>>2]=f+(m>j?m:j);return}function Zd(a,b,c){a=a|0;b=b|0;c=+c;g[b>>2]=0;c=(+g[a+16>>2]+ +g[a+24>>2])*.5;g[b+4>>2]=(+g[a+12>>2]+ +g[a+20>>2])*.5;g[b+8>>2]=c;g[b+12>>2]=0;return}function _d(a){a=a|0;fn(a);return}function $d(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h= -0,i=0;d=Pl(b,152)|0;c[d>>2]=860;b=d+4|0;c[b>>2]=2;g[d+8>>2]=.009999999776482582;c[d+148>>2]=0;e=d+12|0;g[e>>2]=0;g[d+16>>2]=0;f=a+4|0;h=c[f+4>>2]|0;i=b;c[i>>2]=c[f>>2];c[i+4>>2]=h;Qn(e|0,a+12|0,140)|0;return d|0}function ae(a){a=a|0;return 1}function be(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,l=0,m=0,n=0;e=+g[d>>2]-+g[b>>2];f=+g[d+4>>2]-+g[b+4>>2];h=+g[b+12>>2];i=+g[b+8>>2];j=e*h+f*i;k=h*f-e*i;b=c[a+148>>2]|0;if((b|0)>0)l=0;else{m=1;return m|0}while(1){if((j-+g[a+20+(l<<3)>>2])*+g[a+ -84+(l<<3)>>2]+(k-+g[a+20+(l<<3)+4>>2])*+g[a+84+(l<<3)+4>>2]>0){m=0;n=4;break}l=l+1|0;if((l|0)>=(b|0)){m=1;n=4;break}}if((n|0)==4)return m|0;return 0}function ce(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,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,D=0,E=0,F=0,G=0,H=0,I=0;i=+g[d>>2]-+g[b>>2];k=+g[d+4>>2]-+g[b+4>>2];d=b+12|0;l=+g[d>>2];h=b+8|0;m=+g[h>>2];n=i*l+k*m;o=l*k-i*m;b=c[a+148>>2]|0;p=(b|0)>0;if(p){q=(g[j>>2]=o,c[j>>2]|0);m=-3.4028234663852886E38;r=0; -s=(g[j>>2]=n,c[j>>2]|0);t=q;i=o;k=n;while(1){l=+g[a+84+(r<<3)>>2];u=+g[a+84+(r<<3)+4>>2];v=(n-+g[a+20+(r<<3)>>2])*l+(o-+g[a+20+(r<<3)+4>>2])*u;if(v>m){q=(g[j>>2]=u,c[j>>2]|0);w=v;x=(g[j>>2]=l,c[j>>2]|0);y=q;z=u;A=l}else{w=m;x=s;y=t;z=i;A=k}r=r+1|0;if((r|0)>=(b|0))break;else{m=w;s=x;t=y;i=z;k=A}}if(w>0){k=w*w;if(p){p=0;i=k;t=x;s=y;while(1){m=n-+g[a+20+(p<<3)>>2];l=o-+g[a+20+(p<<3)+4>>2];r=(g[j>>2]=m,c[j>>2]|0);u=m*m+l*l;q=i>u;B=q?r:t;r=q?(g[j>>2]=l,c[j>>2]|0):s;l=q?u:i;p=p+1|0;if((p|0)>=(b|0)){D=l; -E=B;F=r;break}else{i=l;t=B;s=r}}}else{D=k;E=x;F=y}g[e>>2]=+C(+D);D=+g[d>>2];k=(c[j>>2]=E,+g[j>>2]);i=+g[h>>2];l=(c[j>>2]=F,+g[j>>2]);u=k*D-l*i;m=l*D+k*i;g[f>>2]=u;F=f+4|0;g[F>>2]=m;i=+C(+(u*u+m*m));k=1/i;if(i<1.1920928955078125E-7)return;g[f>>2]=u*k;g[F>>2]=m*k;return}else{G=w;H=z;I=A}}else{G=-3.4028234663852886E38;H=o;I=n}g[e>>2]=G;G=+g[d>>2];n=+g[h>>2];g[f>>2]=I*G-H*n;g[f+4>>2]=H*G+I*n;return}function de(a,b,d,e,f){a=a|0;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;h=+g[e>>2];i=+g[d>>2]-h;j=+g[e+4>>2];k=+g[d+4>>2]-j;l=+g[e+12>>2];m=+g[e+8>>2];n=i*l+k*m;o=l*k-i*m;i=+g[d+8>>2]-h;h=+g[d+12>>2]-j;j=l*i+m*h-n;k=l*h-m*i-o;e=c[a+148>>2]|0;if((e|0)<=0){p=0;return p|0}i=0;f=0;q=-1;h=+g[d+16>>2];a:while(1){r=+g[a+84+(f<<3)>>2];s=+g[a+84+(f<<3)+4>>2];t=(+g[a+20+(f<<3)>>2]-n)*r+(+g[a+20+(f<<3)+4>>2]-o)*s;u=j*r+k*s;do if(u==0)if(t<0){p=0;v=12;break a}else{w=i;x=q;y=h}else if(u<0&t0&t=(e|0)){v=10;break}else{i=w;q=x;h=y}}if((v|0)==10){if((x|0)<=-1){p=0;return p|0}g[b+8>>2]=w;w=+g[a+84+(x<<3)>>2];y=+g[a+84+(x<<3)+4>>2];g[b>>2]=l*w-m*y;g[b+4>>2]=w*m+l*y;p=1;return p|0}else if((v|0)==12)return p|0;return 0}function ee(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,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;f=+g[d+12>>2];h=+g[a+20>>2];i=+g[d+8>>2];j=+g[a+24>>2];k=+g[d>>2];l=k+(f*h-i*j);m=+g[d+4>>2];n=h*i+f*j+m;d=c[a+148>> -2]|0;if((d|0)>1){e=1;j=l;h=n;o=l;p=n;while(1){q=+g[a+20+(e<<3)>>2];r=+g[a+20+(e<<3)+4>>2];s=k+(f*q-i*r);t=q*i+f*r+m;r=js?o:s;s=p>t?p:t;e=e+1|0;if((e|0)>=(d|0)){v=q;w=r;x=s;y=u;break}else{j=r;h=q;o=u;p=s}}}else{v=n;w=l;x=n;y=l}l=+g[a+8>>2];g[b>>2]=w-l;g[b+4>>2]=v-l;g[b+8>>2]=y+l;g[b+12>>2]=x+l;return}function fe(a,b,d){a=a|0;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,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;e=c[a+148>>2]|0;f=(e|0)>0;if(f){h=0; -i=0;j=0;do{i=i+ +g[a+20+(h<<3)>>2];j=j+ +g[a+20+(h<<3)+4>>2];h=h+1|0}while((h|0)<(e|0));k=1/+(e|0);l=i*k;i=j*k;if(f){f=a+20|0;k=0;j=0;h=0;m=0;n=0;while(1){o=+g[a+20+(h<<3)>>2]-l;p=+g[a+20+(h<<3)+4>>2]-i;h=h+1|0;q=(h|0)<(e|0);r=q?a+20+(h<<3)|0:f;s=+g[r>>2]-l;t=+g[r+4>>2]-i;u=o*t-p*s;v=u*.5;w=k+v;x=v*.3333333432674408;v=m+(o+s)*x;y=n+(p+t)*x;x=j+u*.0833333358168602*(s*s+(o*o+o*s)+(t*t+(p*p+p*t)));if(!q){z=w;A=x;B=v;C=y;D=l;E=i;break}else{k=w;j=x;m=v;n=y}}}else{z=0;A=0;B=0;C=0;D=l;E=i}}else{i=1/+(e| -0);z=0;A=0;B=0;C=0;D=i*0;E=i*0}i=z*d;g[b>>2]=i;l=1/z;z=B*l;B=C*l;l=D+z;D=E+B;g[b+4>>2]=l;g[b+8>>2]=D;g[b+12>>2]=A*d+i*(l*l+D*D-(z*z+B*B));return}function ge(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,h=0,i=0,k=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,D=0,E=0,F=0,G=0,H=0,I=0,J=0;e=l;l=l+96|0;f=e+32|0;h=e;if((d|0)<3){c[a+148>>2]=4;g[a+20>>2]=-1;g[a+24>>2]=-1;g[a+28>>2]=1;g[a+32>>2]=-1;g[a+36>>2]=1;g[a+40>>2]=1;g[a+44>>2]=-1;g[a+48>>2]=1;g[a+84>>2]=0;g[a+88>>2]=-1;g[a+92>>2]=1;g[a+ -96>>2]=0;g[a+100>>2]=0;g[a+104>>2]=1;g[a+108>>2]=-1;g[a+112>>2]=0;g[a+12>>2]=0;g[a+16>>2]=0;l=e;return}i=(d|0)<8?d:8;d=0;k=0;while(1){m=c[b+(d<<3)>>2]|0;n=c[b+(d<<3)+4>>2]|0;a:do if((k|0)>0){o=(c[j>>2]=m,+g[j>>2]);p=(c[j>>2]=n,+g[j>>2]);q=0;while(1){r=o-+g[f+(q<<3)>>2];s=p-+g[f+(q<<3)+4>>2];q=q+1|0;if(r*r+s*s<.0024999999441206455){t=k;break a}if((q|0)>=(k|0)){u=9;break}}}else u=9;while(0);if((u|0)==9){u=0;c[f+(k<<3)>>2]=m;c[f+(k<<3)+4>>2]=n;t=k+1|0}d=d+1|0;if((d|0)>=(i|0))break;else k=t}if((t|0)< -3){c[a+148>>2]=4;g[a+20>>2]=-1;g[a+24>>2]=-1;g[a+28>>2]=1;g[a+32>>2]=-1;g[a+36>>2]=1;g[a+40>>2]=1;g[a+44>>2]=-1;g[a+48>>2]=1;g[a+84>>2]=0;g[a+88>>2]=-1;g[a+92>>2]=1;g[a+96>>2]=0;g[a+100>>2]=0;g[a+104>>2]=1;g[a+108>>2]=-1;g[a+112>>2]=0;g[a+12>>2]=0;g[a+16>>2]=0}else{k=1;p=+g[f>>2];i=0;while(1){o=+g[f+(k<<3)>>2];if(!(o>p))if(o==p?+g[f+(k<<3)+4>>2]<+g[f+(i<<3)+4>>2]:0)u=25;else{v=p;w=i}else u=25;if((u|0)==25){u=0;v=o;w=k}k=k+1|0;if((k|0)==(t|0))break;else{p=v;i=w}}if((t|0)>1){i=w;k=0;while(1){c[h+(k<< -2)>>2]=i;u=f+(i<<3)|0;d=f+(i<<3)+4|0;b=1;q=0;while(1){if((q|0)!=(i|0)){v=+g[u>>2];p=+g[f+(q<<3)>>2]-v;o=+g[d>>2];s=+g[f+(q<<3)+4>>2]-o;r=+g[f+(b<<3)>>2]-v;v=+g[f+(b<<3)+4>>2]-o;o=p*v-s*r;x=o<0?b:q;if(o==0?r*r+v*v>p*p+s*s:0)y=b;else y=x}else y=b;b=b+1|0;if((b|0)==(t|0))break;else q=y}q=k+1|0;if((y|0)==(w|0)){z=k;A=q;break}else{i=y;k=q}}}else{k=(w|0)==0;y=w;w=0;while(1){c[h+(w<<2)>>2]=y;i=w+1|0;if(k){z=w;A=i;break}else{y=0;w=i}}}c[a+148>>2]=A;w=(z|0)<0;if(!w){y=0;while(1){k=f+(c[h+(y<<2)>>2]<<3)|0; -i=c[k+4>>2]|0;t=a+20+(y<<3)|0;c[t>>2]=c[k>>2];c[t+4>>2]=i;if((y|0)==(z|0))break;else y=y+1|0}if(!w){w=0;do{y=w;w=w+1|0;h=(y|0)<(z|0)?w:0;s=+g[a+20+(h<<3)>>2]-+g[a+20+(y<<3)>>2];p=+g[a+20+(h<<3)+4>>2]-+g[a+20+(y<<3)+4>>2];v=-s;h=a+84+(y<<3)|0;g[h>>2]=p;f=a+84+(y<<3)+4|0;g[f>>2]=v;r=+C(+(s*s+p*p));s=1/r;if(!(r<1.1920928955078125E-7)){g[h>>2]=p*s;g[f>>2]=s*v}}while((y|0)!=(z|0));if((z|0)>-1){w=0;v=0;s=0;p=0;while(1){r=+g[a+20+(w<<3)>>2];o=+g[a+20+(w<<3)+4>>2];y=w;w=w+1|0;f=(y|0)<(z|0)?w:0;B=+g[a+20+ -(f<<3)>>2];D=+g[a+20+(f<<3)+4>>2];E=(r*D-o*B)*.5;F=v+E;G=E*.3333333432674408;E=s+(r+0+B)*G;B=p+(o+0+D)*G;if((w|0)==(A|0)){H=F;I=E;J=B;break}else{v=F;s=E;p=B}}}else{H=0;I=0;J=0}}else{H=0;I=0;J=0}}else{H=0;I=0;J=0}p=1/H;g[a+12>>2]=I*p;g[a+16>>2]=J*p}l=e;return}function he(a){a=a|0;fn(a);return}function ie(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=Pl(b,20)|0;c[d>>2]=904;b=d+4|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;e=a+4|0;f=c[e+4>>2]|0;g=b;c[g>>2]=c[e>>2];c[g+4>>2]=f;f=a+12|0;a=c[f+4>>2]|0;g= -d+12|0;c[g>>2]=c[f>>2];c[g+4>>2]=a;return d|0}function je(a){a=a|0;return 1}function ke(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,h=0,i=0,j=0;d=+g[b+12>>2];e=+g[a+12>>2];f=+g[b+8>>2];h=+g[a+16>>2];i=+g[c>>2]-(+g[b>>2]+(d*e-f*h));j=+g[c+4>>2]-(+g[b+4>>2]+(e*f+d*h));h=+g[a+8>>2];return i*i+j*j<=h*h|0}function le(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var h=0,i=0,j=0,k=0,l=0,m=0;h=+g[b+12>>2];i=+g[a+12>>2];j=+g[b+8>>2];k=+g[a+16>>2];l=+g[c>>2]-(+g[b>>2]+(h*i-j*k));m=+g[c+4>>2]-(+g[b+4>>2]+(i* -j+h*k));k=+C(+(l*l+m*m));g[d>>2]=k-+g[a+8>>2];h=1/k;g[e>>2]=l*h;g[e+4>>2]=m*h;return}function me(a,b,c,d,e){a=a|0;b=b|0;c=c|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;f=+g[d+12>>2];h=+g[a+12>>2];i=+g[d+8>>2];j=+g[a+16>>2];k=+g[c>>2];l=k-(+g[d>>2]+(f*h-i*j));m=+g[c+4>>2];n=m-(+g[d+4>>2]+(h*i+f*j));j=+g[a+8>>2];f=+g[c+8>>2]-k;k=+g[c+12>>2]-m;m=l*f+n*k;i=f*f+k*k;h=m*m-(l*l+n*n-j*j)*i;if(i<1.1920928955078125E-7|h<0){o=0;return o|0}j=m+ +C(+h);h=-j;if(!(j<=-0)){o=0;return o|0}if(!(i*+g[c+16>> -2]>=h)){o=0;return o|0}j=h/i;g[b+8>>2]=j;i=l+f*j;f=n+k*j;g[b>>2]=i;c=b+4|0;g[c>>2]=f;j=+C(+(i*i+f*f));k=1/j;if(j<1.1920928955078125E-7){o=1;return o|0}g[b>>2]=i*k;g[c>>2]=f*k;o=1;return o|0}function ne(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,j=0,k=0;e=+g[c+12>>2];f=+g[a+12>>2];h=+g[c+8>>2];i=+g[a+16>>2];j=+g[c>>2]+(e*f-h*i);k=+g[c+4>>2]+(f*h+e*i);i=+g[a+8>>2];g[b>>2]=j-i;g[b+4>>2]=k-i;g[b+8>>2]=j+i;g[b+12>>2]=k+i;return}function oe(a,b,d){a=a|0;b=b|0;d=+d;var e=0,f=0,h=0,i=0,j=0,k=0, -l=0,m=0;e=a+8|0;f=+g[e>>2];h=f*(d*3.1415927410125732*f);g[b>>2]=h;i=a+12|0;j=i;k=c[j+4>>2]|0;l=b+4|0;c[l>>2]=c[j>>2];c[l+4>>2]=k;f=+g[e>>2];d=+g[i>>2];m=+g[a+16>>2];g[b+12>>2]=h*(f*(f*.5)+(d*d+m*m));return}function pe(a){a=a|0;var b=0;c[a>>2]=948;b=a+12|0;$l(c[b>>2]|0);c[b>>2]=0;c[a+16>>2]=0;return}function qe(a){a=a|0;c[a>>2]=948;$l(c[a+12>>2]|0);fn(a);return}function re(d,e){d=d|0;e=e|0;var f=0,h=0,i=0,j=0,k=0,l=0,m=0;f=Pl(e,40)|0;c[f>>2]=948;c[f+4>>2]=3;g[f+8>>2]=.009999999776482582;e=f+12|0;c[e>> -2]=0;h=f+16|0;c[h>>2]=0;i=f+36|0;a[i>>0]=0;j=f+37|0;a[j>>0]=0;k=c[d+12>>2]|0;l=c[d+16>>2]|0;c[h>>2]=l;m=_l(l<<3)|0;c[e>>2]=m;Qn(m|0,k|0,c[h>>2]<<3|0)|0;h=f+20|0;c[h>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;c[h+12>>2]=0;b[h+16>>1]=0;k=d+20|0;m=c[k+4>>2]|0;e=h;c[e>>2]=c[k>>2];c[e+4>>2]=m;m=d+28|0;e=c[m+4>>2]|0;k=f+28|0;c[k>>2]=c[m>>2];c[k+4>>2]=e;a[i>>0]=a[d+36>>0]|0;a[j>>0]=a[d+37>>0]|0;return f|0}function se(a){a=a|0;return(c[a+16>>2]|0)+-1|0}function te(a,b,c){a=a|0;b=b|0;c=c|0;return 0}function ue(d,e,f,g, -h,i){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;j=l;l=l+48|0;k=j;c[k>>2]=816;m=k+28|0;c[m>>2]=0;c[m+4>>2]=0;c[m+8>>2]=0;c[m+12>>2]=0;b[m+16>>1]=0;c[k+4>>2]=1;c[k+8>>2]=c[d+8>>2];m=c[d+12>>2]|0;n=m+(i<<3)|0;o=c[n+4>>2]|0;p=k+12|0;c[p>>2]=c[n>>2];c[p+4>>2]=o;o=m+(i+1<<3)|0;p=c[o+4>>2]|0;n=k+20|0;c[n>>2]=c[o>>2];c[n+4>>2]=p;if((i|0)>0){p=m+(i+-1<<3)|0;n=c[p+4>>2]|0;o=k+28|0;c[o>>2]=c[p>>2];c[o+4>>2]=n;q=1}else{n=d+20|0;o=c[n+4>>2]|0;p=k+28|0;c[p>>2]=c[n>>2];c[p+4>>2]= -o;q=a[d+36>>0]|0}a[k+44>>0]=q;if(((c[d+16>>2]|0)+-2|0)>(i|0)){q=m+(i+2<<3)|0;i=c[q+4>>2]|0;m=k+36|0;c[m>>2]=c[q>>2];c[m+4>>2]=i;r=1;s=k+45|0;a[s>>0]=r;Wd(k,e,f,g,h,0);l=j;return}else{i=d+28|0;m=c[i+4>>2]|0;q=k+36|0;c[q>>2]=c[i>>2];c[q+4>>2]=m;r=a[d+37>>0]|0;s=k+45|0;a[s>>0]=r;Wd(k,e,f,g,h,0);l=j;return}}function ve(a,d,e,f,h){a=a|0;d=d|0;e=e|0;f=f|0;h=h|0;var i=0,j=0,k=0,m=0,n=0;i=l;l=l+48|0;j=i;c[j>>2]=816;c[j+4>>2]=1;g[j+8>>2]=.009999999776482582;k=j+28|0;c[k>>2]=0;c[k+4>>2]=0;c[k+8>>2]=0;c[k+12>> -2]=0;b[k+16>>1]=0;k=h+1|0;m=(k|0)==(c[a+16>>2]|0)?0:k;k=c[a+12>>2]|0;a=k+(h<<3)|0;h=c[a+4>>2]|0;n=j+12|0;c[n>>2]=c[a>>2];c[n+4>>2]=h;h=k+(m<<3)|0;m=c[h+4>>2]|0;k=j+20|0;c[k>>2]=c[h>>2];c[k+4>>2]=m;m=Xd(j,d,e,f,0)|0;l=i;return m|0}function we(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;f=e+1|0;h=(f|0)==(c[a+16>>2]|0)?0:f;f=c[a+12>>2]|0;i=+g[d+12>>2];j=+g[f+(e<<3)>>2];k=+g[d+8>>2];l=+g[f+(e<<3)+4>>2];m=+g[d>>2];n=m+(i*j-k*l);o=+g[d+4>>2];p=j*k+i*l+o;l=+g[f+(h<<3)>> -2];j=+g[f+(h<<3)+4>>2];q=m+(i*l-k*j);m=o+(k*l+i*j);g[b>>2]=n>2]=p>2]=n>q?n:q;g[b+12>>2]=p>m?p:m;return}function xe(a,b,d){a=a|0;b=b|0;d=+d;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;return}function ye(a,d,e){a=a|0;d=d|0;e=e|0;var f=0,g=0;f=a+16|0;c[f>>2]=e;g=_l(e<<3)|0;c[a+12>>2]=g;Qn(g|0,d|0,c[f>>2]<<3|0)|0;f=a+20|0;c[f>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;c[f+12>>2]=0;b[f+16>>1]=0;return}function ze(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;c[d+4>>2]=1;c[d+ -8>>2]=c[b+8>>2];f=b+12|0;g=(c[f>>2]|0)+(e<<3)|0;h=c[g+4>>2]|0;i=d+12|0;c[i>>2]=c[g>>2];c[i+4>>2]=h;h=(c[f>>2]|0)+(e+1<<3)|0;i=c[h+4>>2]|0;g=d+20|0;c[g>>2]=c[h>>2];c[g+4>>2]=i;if((e|0)>0){i=(c[f>>2]|0)+(e+-1<<3)|0;g=c[i+4>>2]|0;h=d+28|0;c[h>>2]=c[i>>2];c[h+4>>2]=g;j=1}else{g=b+20|0;h=c[g+4>>2]|0;i=d+28|0;c[i>>2]=c[g>>2];c[i+4>>2]=h;j=a[b+36>>0]|0}a[d+44>>0]=j;if(((c[b+16>>2]|0)+-2|0)>(e|0)){j=(c[f>>2]|0)+(e+2<<3)|0;e=c[j+4>>2]|0;f=d+36|0;c[f>>2]=c[j>>2];c[f+4>>2]=e;k=1;l=d+45|0;a[l>>0]=k;return}else{e= -b+28|0;f=c[e+4>>2]|0;j=d+36|0;c[j>>2]=c[e>>2];c[j+4>>2]=f;k=a[b+37>>0]|0;l=d+45|0;a[l>>0]=k;return}}function Ae(a){a=a|0;Je(a);c[a+28>>2]=0;c[a+48>>2]=16;c[a+52>>2]=0;c[a+44>>2]=_l(128)|0;c[a+36>>2]=16;c[a+40>>2]=0;c[a+32>>2]=_l(64)|0;return}function Be(a){a=a|0;$l(c[a+32>>2]|0);$l(c[a+44>>2]|0);Ke(a);return}function Ce(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=Me(a,b,d)|0;d=a+28|0;c[d>>2]=(c[d>>2]|0)+1;d=a+40|0;b=c[d>>2]|0;f=a+36|0;g=a+32|0;if((b|0)==(c[f>>2]|0)){a=c[g>>2]|0;c[f>>2]=b<<1;f= -_l(b<<3)|0;c[g>>2]=f;Qn(f|0,a|0,c[d>>2]<<2|0)|0;$l(a);h=c[d>>2]|0}else h=b;c[(c[g>>2]|0)+(h<<2)>>2]=e;c[d>>2]=(c[d>>2]|0)+1;return e|0}function De(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;d=a+40|0;e=c[d>>2]|0;if((e|0)>0){f=c[a+32>>2]|0;g=0;h=e;while(1){e=f+(g<<2)|0;if((c[e>>2]|0)==(b|0)){c[e>>2]=-1;i=c[d>>2]|0}else i=h;g=g+1|0;if((g|0)>=(i|0))break;else h=i}}i=a+28|0;c[i>>2]=(c[i>>2]|0)+-1;Pe(a,b);return}function Ee(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;if(!(Re(a,b,d,e)|0))return;e= -a+40|0;d=c[e>>2]|0;f=a+36|0;g=a+32|0;if((d|0)==(c[f>>2]|0)){a=c[g>>2]|0;c[f>>2]=d<<1;f=_l(d<<3)|0;c[g>>2]=f;Qn(f|0,a|0,c[e>>2]<<2|0)|0;$l(a);h=c[e>>2]|0}else h=d;c[(c[g>>2]|0)+(h<<2)>>2]=b;c[e>>2]=(c[e>>2]|0)+1;return}function Fe(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;d=a+40|0;e=c[d>>2]|0;f=a+36|0;g=a+32|0;if((e|0)==(c[f>>2]|0)){a=c[g>>2]|0;c[f>>2]=e<<1;f=_l(e<<3)|0;c[g>>2]=f;Qn(f|0,a|0,c[d>>2]<<2|0)|0;$l(a);h=c[d>>2]|0}else h=e;c[(c[g>>2]|0)+(h<<2)>>2]=b;c[d>>2]=(c[d>>2]|0)+1;return}function Ge(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;d=a+56|0;e=c[d>>2]|0;if((e|0)==(b|0))return 1;f=a+52|0;g=c[f>>2]|0;h=a+48|0;i=a+44|0;if((g|0)==(c[h>>2]|0)){a=c[i>>2]|0;c[h>>2]=g<<1;h=_l(g<<4)|0;c[i>>2]=h;Qn(h|0,a|0,c[f>>2]<<3|0)|0;$l(a);j=c[d>>2]|0;k=c[f>>2]|0}else{j=e;k=g}g=c[i>>2]|0;c[g+(k<<3)>>2]=(j|0)>(b|0)?b:j;c[g+(k<<3)+4>>2]=(j|0)<(b|0)?b:j;c[f>>2]=k+1;return 1}function He(a,b,d,e,f){a=a|0;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;h=a+60|0;c[h>>2]=0; -i=b+12|0;j=+g[d+12>>2];k=+g[i>>2];l=+g[d+8>>2];m=+g[b+16>>2];n=e+12|0;o=+g[f+12>>2];p=+g[n>>2];q=+g[f+8>>2];r=+g[e+16>>2];s=+g[f>>2]+(o*p-q*r)-(+g[d>>2]+(j*k-l*m));t=p*q+o*r+ +g[f+4>>2]-(k*l+j*m+ +g[d+4>>2]);m=+g[b+8>>2]+ +g[e+8>>2];if(s*s+t*t>m*m)return;c[a+56>>2]=0;e=i;i=c[e+4>>2]|0;b=a+48|0;c[b>>2]=c[e>>2];c[b+4>>2]=i;g[a+40>>2]=0;g[a+44>>2]=0;c[h>>2]=1;h=n;n=c[h+4>>2]|0;i=a;c[i>>2]=c[h>>2];c[i+4>>2]=n;c[a+16>>2]=0;return}function Ie(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var h=0,i=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,D=0,E=0,F=0,G=0;h=a+60|0;c[h>>2]=0;i=e+12|0;k=+g[f+12>>2];l=+g[i>>2];m=+g[f+8>>2];n=+g[e+16>>2];o=+g[f>>2]+(k*l-m*n)-+g[d>>2];p=l*m+k*n+ +g[f+4>>2]-+g[d+4>>2];n=+g[d+12>>2];k=+g[d+8>>2];m=o*n+p*k;l=n*p-o*k;k=+g[b+8>>2]+ +g[e+8>>2];e=c[b+148>>2]|0;do if((e|0)>0){o=-3.4028234663852886E38;d=0;f=0;while(1){p=(m-+g[b+20+(d<<3)>>2])*+g[b+84+(d<<3)>>2]+(l-+g[b+20+(d<<3)+4>>2])*+g[b+84+(d<<3)+4>>2];q=p>o;if(p>k){r=18;break}f=q?d:f;o=q?p:o;d= -d+1|0;if((d|0)>=(e|0)){r=4;break}}if((r|0)==4){s=f;t=o<1.1920928955078125E-7;break}else if((r|0)==18)return}else{s=0;t=1}while(0);r=s+1|0;d=(r|0)<(e|0)?r:0;r=c[b+20+(s<<3)>>2]|0;e=c[b+20+(s<<3)+4>>2]|0;q=c[b+20+(d<<3)>>2]|0;u=c[b+20+(d<<3)+4>>2]|0;if(t){c[h>>2]=1;c[a+56>>2]=1;t=b+84+(s<<3)|0;d=c[t+4>>2]|0;v=a+40|0;c[v>>2]=c[t>>2];c[v+4>>2]=d;p=(c[j>>2]=r,+g[j>>2]);n=p+(c[j>>2]=q,+g[j>>2]);p=(c[j>>2]=e,+g[j>>2]);w=(p+(c[j>>2]=u,+g[j>>2]))*.5;g[a+48>>2]=n*.5;g[a+52>>2]=w;d=i;v=c[d+4>>2]|0;t=a;c[t>> -2]=c[d>>2];c[t+4>>2]=v;c[a+16>>2]=0;return}w=(c[j>>2]=r,+g[j>>2]);n=m-w;p=(c[j>>2]=e,+g[j>>2]);x=l-p;y=(c[j>>2]=q,+g[j>>2]);z=(c[j>>2]=u,+g[j>>2]);A=m-y;B=l-z;do if(!(n*(y-w)+x*(z-p)<=0))if(!(A*(w-y)+B*(p-z)<=0)){D=(w+y)*.5;E=(p+z)*.5;v=b+84+(s<<3)|0;if((m-D)*+g[v>>2]+(l-E)*+g[b+84+(s<<3)+4>>2]>k)return;c[h>>2]=1;c[a+56>>2]=1;t=v;v=c[t+4>>2]|0;d=a+40|0;c[d>>2]=c[t>>2];c[d+4>>2]=v;g[a+48>>2]=D;g[a+52>>2]=E;v=i;d=c[v+4>>2]|0;t=a;c[t>>2]=c[v>>2];c[t+4>>2]=d;c[a+16>>2]=0;return}else{E=A*A+B*B;if(E>k* -k)return;c[h>>2]=1;c[a+56>>2]=1;d=a+40|0;g[d>>2]=A;t=a+44|0;g[t>>2]=B;D=+C(+E);E=1/D;if(D<1.1920928955078125E-7){F=u;G=q;break}g[d>>2]=A*E;g[t>>2]=B*E;F=u;G=q;break}else{E=n*n+x*x;if(E>k*k)return;c[h>>2]=1;c[a+56>>2]=1;t=a+40|0;g[t>>2]=n;d=a+44|0;g[d>>2]=x;D=+C(+E);E=1/D;if(D<1.1920928955078125E-7){F=e;G=r}else{g[t>>2]=n*E;g[d>>2]=x*E;F=e;G=r}}while(0);c[a+48>>2]=G;c[a+52>>2]=F;F=i;i=c[F+4>>2]|0;G=a;c[G>>2]=c[F>>2];c[G+4>>2]=i;c[a+16>>2]=0;return}function Je(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;c[a>> -2]=-1;b=a+12|0;c[b>>2]=16;c[a+8>>2]=0;d=_l(576)|0;e=a+4|0;c[e>>2]=d;Nn(d|0,0,(c[b>>2]|0)*36|0)|0;d=c[b>>2]|0;f=d+-1|0;g=c[e>>2]|0;if((d|0)>1){d=0;do{e=d;d=d+1|0;c[g+(e*36|0)+20>>2]=d;c[g+(e*36|0)+32>>2]=-1;e=(c[b>>2]|0)+-1|0}while((d|0)<(e|0));h=e}else h=f;c[g+(h*36|0)+20>>2]=-1;c[g+(((c[b>>2]|0)+-1|0)*36|0)+32>>2]=-1;c[a+16>>2]=0;c[a+20>>2]=0;c[a+24>>2]=0;return}function Ke(a){a=a|0;$l(c[a+4>>2]|0);return}function Le(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;b=a+16|0;d=c[b>> -2]|0;e=a+4|0;if((d|0)==-1){f=c[e>>2]|0;g=a+12|0;h=c[g>>2]|0;c[g>>2]=h<<1;i=_l(h*72|0)|0;c[e>>2]=i;h=a+8|0;Qn(i|0,f|0,(c[h>>2]|0)*36|0)|0;$l(f);f=c[h>>2]|0;i=(c[g>>2]|0)+-1|0;j=c[e>>2]|0;if((f|0)<(i|0)){k=f;do{f=k;k=k+1|0;c[j+(f*36|0)+20>>2]=k;c[j+(f*36|0)+32>>2]=-1;f=(c[g>>2]|0)+-1|0}while((k|0)<(f|0));l=f}else l=i;c[j+(l*36|0)+20>>2]=-1;c[j+(((c[g>>2]|0)+-1|0)*36|0)+32>>2]=-1;g=c[h>>2]|0;c[b>>2]=g;m=h;n=j;o=g}else{m=a+8|0;n=c[e>>2]|0;o=d}d=n+(o*36|0)+20|0;c[b>>2]=c[d>>2];c[d>>2]=-1;c[n+(o*36|0)+ -24>>2]=-1;c[n+(o*36|0)+28>>2]=-1;c[n+(o*36|0)+32>>2]=0;c[n+(o*36|0)+16>>2]=0;c[m>>2]=(c[m>>2]|0)+1;return o|0}function Me(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,h=0,i=0;e=Le(a)|0;f=+g[b+4>>2]+-.10000000149011612;h=a+4|0;i=c[h>>2]|0;g[i+(e*36|0)>>2]=+g[b>>2]+-.10000000149011612;g[i+(e*36|0)+4>>2]=f;f=+g[b+12>>2]+.10000000149011612;i=c[h>>2]|0;g[i+(e*36|0)+8>>2]=+g[b+8>>2]+.10000000149011612;g[i+(e*36|0)+12>>2]=f;i=c[h>>2]|0;c[i+(e*36|0)+16>>2]=d;c[i+(e*36|0)+32>>2]=0;Ne(a,e);return e|0}function Ne(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,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0;d=a+24|0;c[d>>2]=(c[d>>2]|0)+1;d=c[a>>2]|0;if((d|0)==-1){c[a>>2]=b;c[(c[a+4>>2]|0)+(b*36|0)+20>>2]=-1;return}e=a+4|0;f=c[e>>2]|0;h=+g[f+(b*36|0)>>2];i=+g[f+(b*36|0)+4>>2];j=+g[f+(b*36|0)+8>>2];k=+g[f+(b*36|0)+12>>2];l=d;while(1){d=c[f+(l*36|0)+24>>2]|0;if((d|0)==-1)break;m=c[f+(l*36|0)+28>>2]|0;n=+g[f+(l*36|0)+8>>2];o=+g[f+(l*36|0)>>2];p=+g[f+(l*36|0)+12>>2];q=+g[f+(l*36|0)+4>> -2];r=((n>j?n:j)-(ok?p:k)-(q>2];p=h>2];n=i>2];u=j>r?j:r;v=+g[f+(d*36|0)+12>>2];w=k>v?k:v;if((c[f+(d*36|0)+24>>2]|0)==-1)x=(u-p+(w-n))*2;else x=(u-p+(w-n))*2-(r-q+(v-o))*2;o=t+x;v=+g[f+(m*36|0)>>2];q=h>2];n=i>2];p=j>w?j:w;u=+g[f+(m*36|0)+12>>2];y=k>u?k:u;if((c[f+(m*36|0)+24>>2]|0)==-1)z=(p-q+(y-n))*2;else z=(p-q+(y-n))*2-(w-v+(u-r))* -2;r=t+z;if(s>2]|0;f=Le(a)|0;d=c[e>>2]|0;c[d+(f*36|0)+20>>2]=m;c[d+(f*36|0)+16>>2]=0;z=+g[d+(l*36|0)>>2];x=+g[d+(l*36|0)+4>>2];g[d+(f*36|0)>>2]=h>2]=i>2];i=+g[d+(l*36|0)+12>>2];g[d+(f*36|0)+8>>2]=j>x?j:x;g[d+(f*36|0)+12>>2]=k>i?k:i;d=c[e>>2]|0;c[d+(f*36|0)+32>>2]=(c[d+(l*36|0)+32>>2]|0)+1;if((m|0)==-1){c[d+(f*36|0)+24>>2]=l;c[d+(f*36|0)+28>>2]=b;c[d+(l*36|0)+20>>2]=f;A=d+(b*36|0)+20|0;c[A>>2]=f;B=A;C=a}else{A= -d+(m*36|0)+24|0;c[((c[A>>2]|0)==(l|0)?A:d+(m*36|0)+28|0)>>2]=f;c[d+(f*36|0)+24>>2]=l;c[d+(f*36|0)+28>>2]=b;c[d+(l*36|0)+20>>2]=f;l=d+(b*36|0)+20|0;B=l;C=l}c[C>>2]=f;f=c[B>>2]|0;if((f|0)==-1)return;else D=f;do{f=Oe(a,D)|0;B=c[e>>2]|0;C=c[B+(f*36|0)+24>>2]|0;l=c[B+(f*36|0)+28>>2]|0;b=c[B+(C*36|0)+32>>2]|0;d=c[B+(l*36|0)+32>>2]|0;c[B+(f*36|0)+32>>2]=((b|0)>(d|0)?b:d)+1;i=+g[B+(C*36|0)>>2];k=+g[B+(l*36|0)>>2];x=+g[B+(C*36|0)+4>>2];j=+g[B+(l*36|0)+4>>2];g[B+(f*36|0)>>2]=i>2]=x>2];x=+g[B+(l*36|0)+8>>2];k=+g[B+(C*36|0)+12>>2];i=+g[B+(l*36|0)+12>>2];g[B+(f*36|0)+8>>2]=j>x?j:x;g[B+(f*36|0)+12>>2]=k>i?k:i;D=c[(c[e>>2]|0)+(f*36|0)+20>>2]|0}while((D|0)!=-1);return}function Oe(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,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;d=c[a+4>>2]|0;e=d+(b*36|0)|0;f=d+(b*36|0)+24|0;h=c[f>>2]|0;if((h|0)==-1){i=b;return i|0}j=d+(b*36|0)+32|0;if((c[j>> -2]|0)<2){i=b;return i|0}k=d+(b*36|0)+28|0;l=c[k>>2]|0;m=d+(h*36|0)|0;n=d+(l*36|0)|0;o=d+(l*36|0)+32|0;p=d+(h*36|0)+32|0;q=(c[o>>2]|0)-(c[p>>2]|0)|0;if((q|0)>1){r=d+(l*36|0)+24|0;s=c[r>>2]|0;t=d+(l*36|0)+28|0;u=c[t>>2]|0;v=d+(s*36|0)|0;w=d+(u*36|0)|0;c[r>>2]=b;r=d+(b*36|0)+20|0;x=d+(l*36|0)+20|0;c[x>>2]=c[r>>2];c[r>>2]=l;r=c[x>>2]|0;if((r|0)==-1)y=a;else{x=d+(r*36|0)+24|0;y=(c[x>>2]|0)==(b|0)?x:d+(r*36|0)+28|0}c[y>>2]=l;y=d+(s*36|0)+32|0;r=d+(u*36|0)+32|0;if((c[y>>2]|0)>(c[r>>2]|0)){c[t>>2]=s;c[k>> -2]=u;c[d+(u*36|0)+20>>2]=b;z=+g[m>>2];A=+g[w>>2];B=z>2];z=+g[d+(u*36|0)+4>>2];C=A>2]=B;g[d+(b*36|0)+4>>2]=C;z=+g[d+(h*36|0)+8>>2];A=+g[d+(u*36|0)+8>>2];D=+g[d+(h*36|0)+12>>2];E=+g[d+(u*36|0)+12>>2];x=d+(b*36|0)+8|0;g[x>>2]=z>A?z:A;F=d+(b*36|0)+12|0;g[F>>2]=D>E?D:E;E=+g[v>>2];D=+g[d+(s*36|0)+4>>2];g[n>>2]=B>2]=C>2];C=+g[d+(s*36|0)+8>>2];E=+g[F>>2];B=+g[d+(s*36|0)+12>>2];G=y;H=r;I=E>B?E:B;J=D>C?D:C}else{c[t>>2]=u;c[k>>2]=s;c[d+ -(s*36|0)+20>>2]=b;C=+g[m>>2];D=+g[v>>2];B=C>2];C=+g[d+(s*36|0)+4>>2];E=D>2]=B;g[d+(b*36|0)+4>>2]=E;C=+g[d+(h*36|0)+8>>2];D=+g[d+(s*36|0)+8>>2];A=+g[d+(h*36|0)+12>>2];z=+g[d+(s*36|0)+12>>2];s=d+(b*36|0)+8|0;g[s>>2]=C>D?C:D;v=d+(b*36|0)+12|0;g[v>>2]=A>z?A:z;z=+g[w>>2];A=+g[d+(u*36|0)+4>>2];g[n>>2]=B>2]=E>2];E=+g[d+(u*36|0)+8>>2];z=+g[v>>2];B=+g[d+(u*36|0)+12>>2];G=r;H=y;I=z>B?z:B;J=A>E?A:E}g[d+(l*36|0)+8>>2]=J;g[d+(l*36|0)+12>> -2]=I;y=c[p>>2]|0;r=c[H>>2]|0;H=((y|0)>(r|0)?y:r)+1|0;c[j>>2]=H;r=c[G>>2]|0;c[o>>2]=((H|0)>(r|0)?H:r)+1;i=l;return i|0}if((q|0)>=-1){i=b;return i|0}q=d+(h*36|0)+24|0;r=c[q>>2]|0;H=d+(h*36|0)+28|0;G=c[H>>2]|0;y=d+(r*36|0)|0;u=d+(G*36|0)|0;c[q>>2]=b;q=d+(b*36|0)+20|0;v=d+(h*36|0)+20|0;c[v>>2]=c[q>>2];c[q>>2]=h;q=c[v>>2]|0;if((q|0)==-1)K=a;else{a=d+(q*36|0)+24|0;K=(c[a>>2]|0)==(b|0)?a:d+(q*36|0)+28|0}c[K>>2]=h;K=d+(r*36|0)+32|0;q=d+(G*36|0)+32|0;if((c[K>>2]|0)>(c[q>>2]|0)){c[H>>2]=r;c[f>>2]=G;c[d+(G* -36|0)+20>>2]=b;I=+g[n>>2];J=+g[u>>2];E=I>2];I=+g[d+(G*36|0)+4>>2];A=J>2]=E;g[d+(b*36|0)+4>>2]=A;I=+g[d+(l*36|0)+8>>2];J=+g[d+(G*36|0)+8>>2];B=+g[d+(l*36|0)+12>>2];z=+g[d+(G*36|0)+12>>2];a=d+(b*36|0)+8|0;g[a>>2]=I>J?I:J;v=d+(b*36|0)+12|0;g[v>>2]=B>z?B:z;z=+g[y>>2];B=+g[d+(r*36|0)+4>>2];g[m>>2]=E>2]=A>2];A=+g[d+(r*36|0)+8>>2];z=+g[v>>2];E=+g[d+(r*36|0)+12>>2];L=K;M=q;N=z>E?z:E;O=B>A?B:A}else{c[H>>2]=G;c[f>>2]=r;c[d+(r*36|0)+20>> -2]=b;A=+g[n>>2];B=+g[y>>2];E=A>2];A=+g[d+(r*36|0)+4>>2];z=B>2]=E;g[d+(b*36|0)+4>>2]=z;A=+g[d+(l*36|0)+8>>2];B=+g[d+(r*36|0)+8>>2];J=+g[d+(l*36|0)+12>>2];I=+g[d+(r*36|0)+12>>2];r=d+(b*36|0)+8|0;g[r>>2]=A>B?A:B;l=d+(b*36|0)+12|0;g[l>>2]=J>I?J:I;I=+g[u>>2];J=+g[d+(G*36|0)+4>>2];g[m>>2]=E>2]=z>2];z=+g[d+(G*36|0)+8>>2];I=+g[l>>2];E=+g[d+(G*36|0)+12>>2];L=q;M=K;N=I>E?I:E;O=J>z?J:z}g[d+(h*36|0)+8>>2]=O;g[d+(h*36|0)+12>>2]=N;d=c[o>>2]| -0;o=c[M>>2]|0;M=((d|0)>(o|0)?d:o)+1|0;c[j>>2]=M;j=c[L>>2]|0;c[p>>2]=((M|0)>(j|0)?M:j)+1;i=h;return i|0}function Pe(a,b){a=a|0;b=b|0;var d=0,e=0;Qe(a,b);d=a+16|0;e=c[a+4>>2]|0;c[e+(b*36|0)+20>>2]=c[d>>2];c[e+(b*36|0)+32>>2]=-1;c[d>>2]=b;b=a+8|0;c[b>>2]=(c[b>>2]|0)+-1;return}function Qe(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;if((c[a>>2]|0)==(b|0)){c[a>>2]=-1;return}d=a+4|0;e=c[d>>2]|0;f=c[e+(b*36|0)+20>>2]|0;h=e+(f*36|0)+20|0;i=c[h>>2]|0;j=c[e+(f*36|0)+24>>2]|0;if((j|0)==(b| -0))k=c[e+(f*36|0)+28>>2]|0;else k=j;if((i|0)==-1){c[a>>2]=k;c[e+(k*36|0)+20>>2]=-1;j=a+16|0;c[h>>2]=c[j>>2];c[e+(f*36|0)+32>>2]=-1;c[j>>2]=f;j=a+8|0;c[j>>2]=(c[j>>2]|0)+-1;return}j=e+(i*36|0)+24|0;c[((c[j>>2]|0)==(f|0)?j:e+(i*36|0)+28|0)>>2]=k;c[e+(k*36|0)+20>>2]=i;k=a+16|0;c[h>>2]=c[k>>2];c[e+(f*36|0)+32>>2]=-1;c[k>>2]=f;f=a+8|0;c[f>>2]=(c[f>>2]|0)+-1;f=i;do{i=Oe(a,f)|0;k=c[d>>2]|0;e=c[k+(i*36|0)+24>>2]|0;h=c[k+(i*36|0)+28>>2]|0;l=+g[k+(e*36|0)>>2];m=+g[k+(h*36|0)>>2];n=+g[k+(e*36|0)+4>>2];o=+g[k+ -(h*36|0)+4>>2];g[k+(i*36|0)>>2]=l>2]=n>2];n=+g[k+(h*36|0)+8>>2];m=+g[k+(e*36|0)+12>>2];l=+g[k+(h*36|0)+12>>2];g[k+(i*36|0)+8>>2]=o>n?o:n;g[k+(i*36|0)+12>>2]=m>l?m:l;k=c[d>>2]|0;j=c[k+(e*36|0)+32>>2]|0;e=c[k+(h*36|0)+32>>2]|0;c[k+(i*36|0)+32>>2]=((j|0)>(e|0)?j:e)+1;f=c[k+(i*36|0)+20>>2]|0}while((f|0)!=-1);return}function Re(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,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;f=l;l=l+32|0;h=f+8|0;i=f+16|0;j=f;k=f+12| -0;m=a+4|0;n=c[m>>2]|0;if(+g[n+(b*36|0)>>2]<=+g[d>>2]){o=d+4|0;if((+g[n+(b*36|0)+4>>2]<=+g[o>>2]?+g[d+8>>2]<=+g[n+(b*36|0)+8>>2]:0)?+g[d+12>>2]<=+g[n+(b*36|0)+12>>2]:0){p=0;l=f;return p|0}else q=o}else q=d+4|0;Qe(a,b);r=+g[d+8>>2];s=+g[d+12>>2];t=+g[q>>2]+-.10000000149011612;g[h>>2]=+g[d>>2]+-.10000000149011612;g[i>>2]=t;g[j>>2]=r+.10000000149011612;g[k>>2]=s+.10000000149011612;s=+g[e>>2]*2;r=+g[e+4>>2]*2;e=s<0?h:j;g[e>>2]=s+ +g[e>>2];e=r<0?i:k;g[e>>2]=r+ +g[e>>2];e=c[m>>2]|0;c[e+(b*36|0)>>2]=c[h>> -2];c[e+(b*36|0)+4>>2]=c[i>>2];c[e+(b*36|0)+8>>2]=c[j>>2];c[e+(b*36|0)+12>>2]=c[k>>2];Ne(a,b);p=1;l=f;return p|0}function Se(b,d,e,f,h){b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;var i=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,D=0,E=0;i=b+60|0;c[i>>2]=0;k=f+12|0;l=+g[h+12>>2];m=+g[k>>2];n=+g[h+8>>2];o=+g[f+16>>2];p=+g[h>>2]+(l*m-n*o)-+g[e>>2];q=m*n+l*o+ +g[h+4>>2]-+g[e+4>>2];o=+g[e+12>>2];l=+g[e+8>>2];n=p*o+q*l;m=o*q-p*l;e=c[d+12>>2]|0;h=c[d+16>>2]|0;r=c[d+20>>2]|0;s=c[d+24>>2]| -0;l=(c[j>>2]=r,+g[j>>2]);p=(c[j>>2]=e,+g[j>>2]);q=l-p;o=(c[j>>2]=s,+g[j>>2]);t=(c[j>>2]=h,+g[j>>2]);u=o-t;v=q*(l-n)+u*(o-m);w=n-p;x=m-t;y=w*q+x*u;z=+g[d+8>>2]+ +g[f+8>>2];if(y<=0){if(w*w+x*x>z*z)return;if(a[d+44>>0]|0?(p-n)*(p-+g[d+28>>2])+(t-m)*(t-+g[d+32>>2])>0:0)return;c[i>>2]=1;c[b+56>>2]=0;g[b+40>>2]=0;g[b+44>>2]=0;c[b+48>>2]=e;c[b+52>>2]=h;f=b+16|0;a[f>>0]=0;a[f+1>>0]=0;a[f+2>>0]=0;a[f+3>>0]=0;f=k;A=c[f+4>>2]|0;B=b;c[B>>2]=c[f>>2];c[B+4>>2]=A;return}if(!(v<=0)){D=1/(q*q+u*u);E=n-D*(p*v+l*y); -p=m-D*(t*v+o*y);if(E*E+p*p>z*z)return;p=-u;A=x*q+w*p<0;w=A?u:p;p=A?-q:q;q=+C(+(w*w+p*p));A=q<1.1920928955078125E-7;u=1/q;c[i>>2]=1;c[b+56>>2]=1;g[b+40>>2]=A?w:w*u;g[b+44>>2]=A?p:p*u;c[b+48>>2]=e;c[b+52>>2]=h;h=b+16|0;a[h>>0]=0;a[h+1>>0]=0;a[h+2>>0]=1;a[h+3>>0]=0;h=k;e=c[h+4>>2]|0;A=b;c[A>>2]=c[h>>2];c[A+4>>2]=e;return}u=n-l;n=m-o;if(u*u+n*n>z*z)return;if(a[d+45>>0]|0?u*(+g[d+36>>2]-l)+n*(+g[d+40>>2]-o)>0:0)return;c[i>>2]=1;c[b+56>>2]=0;g[b+40>>2]=0;g[b+44>>2]=0;c[b+48>>2]=r;c[b+52>>2]=s;s=b+16|0; -a[s>>0]=1;a[s+1>>0]=0;a[s+2>>0]=0;a[s+3>>0]=0;s=k;k=c[s+4>>2]|0;r=b;c[r>>2]=c[s>>2];c[r+4>>2]=k;return}function Te(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 k=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,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;k=l;l=l+160|0;m=k+140|0;n=k+128|0;o=k+24|0;p= -k+72|0;q=k+48|0;r=k;s=+g[f+12>>2];t=+g[i+8>>2];u=+g[f+8>>2];v=+g[i+12>>2];w=s*t-u*v;x=t*u+s*v;v=+g[i>>2]-+g[f>>2];t=+g[i+4>>2]-+g[f+4>>2];y=s*v+u*t;z=s*t-u*v;f=b+132|0;g[f>>2]=y;i=b+136|0;g[i>>2]=z;A=b+140|0;g[A>>2]=w;B=b+144|0;g[B>>2]=x;v=+g[h+12>>2];u=+g[h+16>>2];t=y+(x*v-w*u);y=v*w+x*u+z;g[b+148>>2]=t;g[b+152>>2]=y;D=e+28|0;E=c[D>>2]|0;F=c[D+4>>2]|0;D=b+156|0;c[D>>2]=E;c[D+4>>2]=F;D=b+164|0;G=e+12|0;H=c[G>>2]|0;I=c[G+4>>2]|0;G=D;c[G>>2]=H;c[G+4>>2]=I;G=b+172|0;J=e+20|0;K=c[J>>2]|0;L=c[J+4>>2]| -0;J=G;c[J>>2]=K;c[J+4>>2]=L;J=e+36|0;M=c[J>>2]|0;N=c[J+4>>2]|0;J=b+180|0;c[J>>2]=M;c[J+4>>2]=N;J=(a[e+44>>0]|0)!=0;O=(a[e+45>>0]|0)==0;z=(c[j>>2]=K,+g[j>>2]);u=(c[j>>2]=H,+g[j>>2]);v=z-u;s=(c[j>>2]=L,+g[j>>2]);L=b+168|0;P=(c[j>>2]=I,+g[j>>2]);Q=s-P;R=+C(+(v*v+Q*Q));I=R<1.1920928955078125E-7;S=1/R;R=I?v:v*S;v=I?Q:Q*S;I=b+196|0;S=-R;g[I>>2]=v;H=b+200|0;g[H>>2]=S;Q=(t-u)*v+(y-P)*S;S=(c[j>>2]=E,+g[j>>2]);T=(c[j>>2]=F,+g[j>>2]);U=(c[j>>2]=M,+g[j>>2]);V=(c[j>>2]=N,+g[j>>2]);if(J){W=u-S;u=P-T;P=+C(+(W*W+ -u*u));N=P<1.1920928955078125E-7;X=1/P;P=N?W:W*X;W=N?u:u*X;X=-P;g[b+188>>2]=W;g[b+192>>2]=X;Y=(t-S)*W+(y-T)*X;Z=v*P-R*W>=0}else{Y=0;Z=0}do if(O){N=Q>=0;if(!J){M=N&1;a[b+248>>0]=M;if(N){F=I;E=c[F>>2]|0;K=c[F+4>>2]|0;F=b+212|0;c[F>>2]=E;c[F+4>>2]=K;W=-(c[j>>2]=E,+g[j>>2]);g[b+228>>2]=W;g[b+232>>2]=R;g[b+236>>2]=W;g[b+240>>2]=R;_=M;break}else{g[b+212>>2]=-v;g[b+216>>2]=R;E=I;K=c[E>>2]|0;F=c[E+4>>2]|0;E=b+228|0;c[E>>2]=K;c[E+4>>2]=F;E=b+236|0;c[E>>2]=K;c[E+4>>2]=F;_=M;break}}M=Y>=0;if(Z){F=N|M;E=F&1;a[b+ -248>>0]=E;if(F){F=I;K=c[F>>2]|0;e=c[F+4>>2]|0;F=b+212|0;c[F>>2]=K;c[F+4>>2]=e;e=b+188|0;F=c[e+4>>2]|0;$=b+228|0;c[$>>2]=c[e>>2];c[$+4>>2]=F;g[b+236>>2]=-(c[j>>2]=K,+g[j>>2]);g[b+240>>2]=R;_=E;break}else{g[b+212>>2]=-v;g[b+216>>2]=R;K=I;F=c[K>>2]|0;$=c[K+4>>2]|0;K=b+228|0;c[K>>2]=F;c[K+4>>2]=$;g[b+236>>2]=-(c[j>>2]=F,+g[j>>2]);g[b+240>>2]=R;_=E;break}}else{E=N&M;M=E&1;a[b+248>>0]=M;if(E){E=I;N=c[E>>2]|0;F=c[E+4>>2]|0;E=b+212|0;c[E>>2]=N;c[E+4>>2]=F;E=b+228|0;c[E>>2]=N;c[E+4>>2]=F;g[b+236>>2]=-(c[j>> -2]=N,+g[j>>2]);g[b+240>>2]=R;_=M;break}else{g[b+212>>2]=-v;g[b+216>>2]=R;N=I;F=c[N+4>>2]|0;E=b+228|0;c[E>>2]=c[N>>2];c[E+4>>2]=F;W=-+g[b+192>>2];g[b+236>>2]=-+g[b+188>>2];g[b+240>>2]=W;_=M;break}}}else{W=U-z;P=V-s;X=+C(+(W*W+P*P));M=X<1.1920928955078125E-7;T=1/X;X=M?W:W*T;W=M?P:P*T;T=-X;g[b+204>>2]=W;g[b+208>>2]=T;M=R*W-v*X>0;P=(t-z)*W+(y-s)*T;if(!J){F=Q>=0;E=P>=0;if(M){N=F|E;$=N&1;a[b+248>>0]=$;if(N){N=I;K=c[N>>2]|0;e=c[N+4>>2]|0;N=b+212|0;c[N>>2]=K;c[N+4>>2]=e;g[b+228>>2]=-(c[j>>2]=K,+g[j>>2]); -g[b+232>>2]=R;K=b+204|0;e=c[K+4>>2]|0;N=b+236|0;c[N>>2]=c[K>>2];c[N+4>>2]=e;_=$;break}else{T=-v;g[b+212>>2]=T;g[b+216>>2]=R;g[b+228>>2]=T;g[b+232>>2]=R;e=I;N=c[e+4>>2]|0;K=b+236|0;c[K>>2]=c[e>>2];c[K+4>>2]=N;_=$;break}}else{$=F&E;E=$&1;a[b+248>>0]=E;if($){$=I;F=c[$>>2]|0;N=c[$+4>>2]|0;$=b+212|0;c[$>>2]=F;c[$+4>>2]=N;g[b+228>>2]=-(c[j>>2]=F,+g[j>>2]);g[b+232>>2]=R;$=b+236|0;c[$>>2]=F;c[$+4>>2]=N;_=E;break}else{g[b+212>>2]=-v;g[b+216>>2]=R;T=-+g[b+208>>2];g[b+228>>2]=-+g[b+204>>2];g[b+232>>2]=T;N=I; -$=c[N+4>>2]|0;F=b+236|0;c[F>>2]=c[N>>2];c[F+4>>2]=$;_=E;break}}}if(Z&M){E=Q>=0|Y>=0|P>=0;$=E&1;a[b+248>>0]=$;if(E){E=I;F=c[E+4>>2]|0;N=b+212|0;c[N>>2]=c[E>>2];c[N+4>>2]=F;F=b+188|0;N=c[F+4>>2]|0;E=b+228|0;c[E>>2]=c[F>>2];c[E+4>>2]=N;N=b+204|0;E=c[N+4>>2]|0;F=b+236|0;c[F>>2]=c[N>>2];c[F+4>>2]=E;_=$;break}else{T=-v;g[b+212>>2]=T;g[b+216>>2]=R;g[b+228>>2]=T;g[b+232>>2]=R;g[b+236>>2]=T;g[b+240>>2]=R;_=$;break}}if(Z){$=Q>=0&P>=0;E=b+248|0;if(!(Y>=0)){F=$&1;a[E>>0]=F;if($)aa=F;else{T=-v;g[b+212>>2]=T;g[b+ -216>>2]=R;g[b+228>>2]=-W;g[b+232>>2]=X;g[b+236>>2]=T;g[b+240>>2]=R;_=F;break}}else{a[E>>0]=1;aa=1}E=I;F=c[E>>2]|0;$=c[E+4>>2]|0;E=b+212|0;c[E>>2]=F;c[E+4>>2]=$;E=b+188|0;N=c[E+4>>2]|0;K=b+228|0;c[K>>2]=c[E>>2];c[K+4>>2]=N;N=b+236|0;c[N>>2]=F;c[N+4>>2]=$;_=aa;break}if(!M){M=Q>=0&Y>=0&P>=0;$=M&1;a[b+248>>0]=$;if(M){M=I;N=c[M>>2]|0;F=c[M+4>>2]|0;M=b+212|0;c[M>>2]=N;c[M+4>>2]=F;M=b+228|0;c[M>>2]=N;c[M+4>>2]=F;M=b+236|0;c[M>>2]=N;c[M+4>>2]=F;_=$;break}else{g[b+212>>2]=-v;g[b+216>>2]=R;g[b+228>>2]=-W;g[b+ -232>>2]=X;X=-+g[b+192>>2];g[b+236>>2]=-+g[b+188>>2];g[b+240>>2]=X;_=$;break}}$=Q>=0&Y>=0;F=b+248|0;if(!(P>=0)){M=$&1;a[F>>0]=M;if($)ba=M;else{P=-v;g[b+212>>2]=P;g[b+216>>2]=R;g[b+228>>2]=P;g[b+232>>2]=R;P=-+g[b+192>>2];g[b+236>>2]=-+g[b+188>>2];g[b+240>>2]=P;_=M;break}}else{a[F>>0]=1;ba=1}F=I;M=c[F>>2]|0;$=c[F+4>>2]|0;F=b+212|0;c[F>>2]=M;c[F+4>>2]=$;F=b+228|0;c[F>>2]=M;c[F+4>>2]=$;$=b+204|0;F=c[$+4>>2]|0;M=b+236|0;c[M>>2]=c[$>>2];c[M+4>>2]=F;_=ba}while(0);ba=h+148|0;aa=c[ba>>2]|0;Z=b+128|0;c[Z>>2]= -aa;if((aa|0)>0){J=0;R=x;x=w;while(1){w=+g[h+20+(J<<3)>>2];v=+g[h+20+(J<<3)+4>>2];Y=w*x+R*v+ +g[i>>2];g[b+(J<<3)>>2]=+g[f>>2]+(R*w-x*v);g[b+(J<<3)+4>>2]=Y;Y=+g[B>>2];v=+g[h+84+(J<<3)>>2];w=+g[A>>2];Q=+g[h+84+(J<<3)+4>>2];g[b+64+(J<<3)>>2]=Y*v-w*Q;g[b+64+(J<<3)+4>>2]=v*w+Y*Q;O=J+1|0;if((O|0)>=(c[ba>>2]|0))break;J=O;R=+g[B>>2];x=+g[A>>2]}J=b+248|0;ca=J;da=a[J>>0]|0;ea=c[Z>>2]|0}else{ca=b+248|0;da=_;ea=aa}aa=b+244|0;g[aa>>2]=.019999999552965164;_=d+60|0;c[_>>2]=0;c[m>>2]=1;c[m+4>>2]=(da^1)&255;da=m+8| -0;g[da>>2]=3.4028234663852886E38;if((ea|0)<=0){l=k;return}x=+g[b+164>>2];R=+g[L>>2];Q=+g[b+212>>2];Y=+g[b+216>>2];L=0;w=3.4028234663852886E38;v=3.4028234663852886E38;while(1){s=Q*(+g[b+(L<<3)>>2]-x)+Y*(+g[b+(L<<3)+4>>2]-R);J=s>2]=v;if(v>.019999999552965164){l=k;return}Ue(n,b);da=c[n>>2]|0;if(da){w=+g[n+8>>2];if(!(w>+g[aa>>2]))if(w>v*.9800000190734863+.0010000000474974513){fa=n;ga=da;ha=55}else{fa=m;ga=1;ha=55}}else{fa=m;ga=1;ha=55}if((ha| -0)==55){ha=c[fa+4>>2]|0;fa=(ga|0)==1;ga=d+56|0;do if(fa){c[ga>>2]=1;m=c[Z>>2]|0;if((m|0)>1){v=+g[b+212>>2];w=+g[b+216>>2];da=1;R=v*+g[b+64>>2]+w*+g[b+68>>2];n=0;while(1){Y=v*+g[b+64+(da<<3)>>2]+w*+g[b+64+(da<<3)+4>>2];ea=Y=(m|0)){ia=L;break}else{R=ea?Y:R;n=L}}}else ia=0;n=ia+1|0;da=(n|0)<(m|0)?n:0;n=b+(ia<<3)|0;L=c[n+4>>2]|0;ea=o;c[ea>>2]=c[n>>2];c[ea+4>>2]=L;L=o+8|0;a[L>>0]=0;a[L+1>>0]=ia;a[L+2>>0]=1;a[L+3>>0]=0;L=b+(da<<3)|0;ea=c[L+4>>2]|0;n=o+12|0;c[n>>2]=c[L>> -2];c[n+4>>2]=ea;ea=o+20|0;a[ea>>0]=0;a[ea+1>>0]=da;a[ea+2>>0]=1;a[ea+3>>0]=0;if(!(a[ca>>0]|0)){c[p>>2]=1;c[p+4>>2]=0;ea=p+8|0;da=G;n=c[da>>2]|0;L=c[da+4>>2]|0;da=ea;c[da>>2]=n;c[da+4>>2]=L;da=D;J=c[da>>2]|0;ba=c[da+4>>2]|0;da=p+16|0;c[da>>2]=J;c[da+4>>2]=ba;R=-+g[I>>2];w=-+g[H>>2];g[p+24>>2]=R;g[p+28>>2]=w;ja=ba;ka=J;la=L;ma=n;na=ea;oa=p;pa=p+24|0;qa=R;ra=(g[j>>2]=w,c[j>>2]|0);sa=1;break}else{c[p>>2]=0;c[p+4>>2]=1;ea=p+8|0;n=D;L=c[n>>2]|0;J=c[n+4>>2]|0;n=ea;c[n>>2]=L;c[n+4>>2]=J;n=G;ba=c[n>>2]|0; -da=c[n+4>>2]|0;n=p+16|0;c[n>>2]=ba;c[n+4>>2]=da;n=p+24|0;O=I;F=c[O>>2]|0;M=c[O+4>>2]|0;O=n;c[O>>2]=F;c[O+4>>2]=M;ja=da;ka=ba;la=J;ma=L;na=ea;oa=p;pa=n;qa=(c[j>>2]=F,+g[j>>2]);ra=M;sa=0;break}}else{c[ga>>2]=2;M=D;F=c[M+4>>2]|0;n=o;c[n>>2]=c[M>>2];c[n+4>>2]=F;F=o+8|0;a[F>>0]=0;n=ha&255;a[F+1>>0]=n;a[F+2>>0]=0;a[F+3>>0]=1;F=G;M=c[F+4>>2]|0;ea=o+12|0;c[ea>>2]=c[F>>2];c[ea+4>>2]=M;M=o+20|0;a[M>>0]=0;a[M+1>>0]=n;a[M+2>>0]=0;a[M+3>>0]=1;c[p>>2]=ha;M=ha+1|0;n=(M|0)<(c[Z>>2]|0)?M:0;c[p+4>>2]=n;M=p+8|0;ea= -b+(ha<<3)|0;F=c[ea>>2]|0;L=c[ea+4>>2]|0;ea=M;c[ea>>2]=F;c[ea+4>>2]=L;ea=b+(n<<3)|0;n=c[ea>>2]|0;J=c[ea+4>>2]|0;ea=p+16|0;c[ea>>2]=n;c[ea+4>>2]=J;ea=p+24|0;ba=b+64+(ha<<3)|0;da=c[ba>>2]|0;O=c[ba+4>>2]|0;ba=ea;c[ba>>2]=da;c[ba+4>>2]=O;ja=J;ka=n;la=L;ma=F;na=M;oa=p;pa=ea;qa=(c[j>>2]=da,+g[j>>2]);ra=O;sa=ha}while(0);w=(c[j>>2]=ma,+g[j>>2]);R=(c[j>>2]=la,+g[j>>2]);v=(c[j>>2]=ka,+g[j>>2]);Y=(c[j>>2]=ja,+g[j>>2]);ja=p+32|0;ka=p+28|0;la=p+24|0;x=-qa;c[ja>>2]=ra;g[p+36>>2]=x;Q=(c[j>>2]=ra,+g[j>>2]);s=-Q;ra= -p+44|0;g[ra>>2]=s;g[p+48>>2]=qa;ma=p+8|0;ha=p+12|0;y=Q*w+R*x;g[p+40>>2]=y;b=p+52|0;g[b>>2]=v*s+qa*Y;if((Ze(q,o,ja,y,sa)|0)>=2?(Ze(r,q,ra,+g[b>>2],c[p+4>>2]|0)|0)>=2:0){if(fa){fa=pa;pa=c[fa>>2]|0;p=c[fa+4>>2]|0;fa=d+40|0;c[fa>>2]=pa;c[fa+4>>2]=p;y=(c[j>>2]=pa,+g[j>>2]);pa=na;na=c[pa+4>>2]|0;p=d+48|0;c[p>>2]=c[pa>>2];c[p+4>>2]=na;Y=+g[ma>>2];qa=+g[ha>>2];s=+g[ka>>2];v=+g[r>>2];x=+g[r+4>>2];R=+g[aa>>2];if(!((v-Y)*y+(x-qa)*s<=R)){ta=0;ua=R}else{R=v-+g[f>>2];v=x-+g[i>>2];x=+g[B>>2];w=+g[A>>2];g[d>>2]= -R*x+v*w;g[d+4>>2]=x*v-R*w;c[d+16>>2]=c[r+8>>2];ta=1;ua=+g[aa>>2]}w=+g[r+12>>2];R=+g[r+16>>2];if(!((w-Y)*y+(R-qa)*s<=ua))va=ta;else{ua=w-+g[f>>2];w=R-+g[i>>2];R=+g[B>>2];s=+g[A>>2];g[d+(ta*20|0)>>2]=ua*R+w*s;g[d+(ta*20|0)+4>>2]=R*w-ua*s;c[d+(ta*20|0)+16>>2]=c[r+20>>2];va=ta+1|0}}else{ta=c[oa>>2]|0;oa=h+84+(ta<<3)|0;A=c[oa+4>>2]|0;B=d+40|0;c[B>>2]=c[oa>>2];c[B+4>>2]=A;s=+g[la>>2];la=h+20+(ta<<3)|0;ta=c[la+4>>2]|0;h=d+48|0;c[h>>2]=c[la>>2];c[h+4>>2]=ta;ua=+g[ma>>2];w=+g[ha>>2];R=+g[ka>>2];qa=+g[aa>> -2];if(!((+g[r>>2]-ua)*s+(+g[r+4>>2]-w)*R<=qa)){wa=0;xa=qa}else{ka=r;ha=c[ka+4>>2]|0;ma=d;c[ma>>2]=c[ka>>2];c[ma+4>>2]=ha;ha=r+8|0;ma=d+16|0;a[ma+2>>0]=a[ha+3>>0]|0;a[ma+3>>0]=a[ha+2>>0]|0;a[ma>>0]=a[ha+1>>0]|0;a[ma+1>>0]=a[ha>>0]|0;wa=1;xa=+g[aa>>2]}aa=r+12|0;if(!((+g[aa>>2]-ua)*s+(+g[r+16>>2]-w)*R<=xa))va=wa;else{ha=aa;aa=c[ha+4>>2]|0;ma=d+(wa*20|0)|0;c[ma>>2]=c[ha>>2];c[ma+4>>2]=aa;aa=r+20|0;r=d+(wa*20|0)+16|0;a[r+2>>0]=a[aa+3>>0]|0;a[r+3>>0]=a[aa+2>>0]|0;a[r>>0]=a[aa+1>>0]|0;a[r+1>>0]=a[aa>>0]| -0;va=wa+1|0}}c[_>>2]=va}}l=k;return}function Ue(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,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;c[a>>2]=0;d=a+4|0;c[d>>2]=-1;e=a+8|0;g[e>>2]=-3.4028234663852886E38;f=+g[b+216>>2];h=+g[b+212>>2];i=c[b+128>>2]|0;if((i|0)<=0)return;j=+g[b+164>>2];k=+g[b+168>>2];l=+g[b+172>>2];m=+g[b+176>>2];n=+g[b+244>>2];o=b+228|0;p=b+232|0;q=b+236|0;r=b+240|0;s=0;t=-3.4028234663852886E38;while(1){u=+g[b+64+(s<<3)>>2];v=-u;w=-+g[b+64+(s<< -3)+4>>2];x=+g[b+(s<<3)>>2];y=+g[b+(s<<3)+4>>2];z=(x-j)*v+(y-k)*w;A=(x-l)*v+(y-m)*w;B=zn)break;if(!(f*u+h*w>=0))if(B>t?!((v-+g[o>>2])*h+(w-+g[p>>2])*f<-.03490658849477768):0)C=7;else D=t;else if(B>t?!((v-+g[q>>2])*h+(w-+g[r>>2])*f<-.03490658849477768):0)C=7;else D=t;if((C|0)==7){C=0;c[a>>2]=2;c[d>>2]=s;g[e>>2]=B;D=B}E=s+1|0;if((E|0)<(i|0)){s=E;t=D}else{C=10;break}}if((C|0)==10)return;c[a>>2]=2;c[d>>2]=s;g[e>>2]=B;return}function Ve(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0;f=l;l= -l+256|0;Te(f,a,b,c,d,e);l=f;return}function We(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,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,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;i=l;l=l+96|0;j=i+92|0;k=i+88|0;m=i+64|0;n=i+56|0;o=i+32|0;p=i+8|0;q=i;r=b+60|0;c[r>>2]=0;s=+g[d+8>>2]+ +g[f+8>>2];c[j>>2]=0;t=+Xe(j,d,e,f,h);if(t>s){l=i;return}c[k>>2]=0;u=+Xe(k,f,h,d,e);if(!(u>s)){v=u>t+5.000000237487257E-4;w=v?e:h;x=v?h:e;e=v?d:f;h=c[k>>2]|0; -k=c[j>>2]|0;t=+g[x+12>>2];u=+g[x+8>>2];y=+g[x+4>>2];z=+g[x>>2];A=+g[w+12>>2];B=+g[w+8>>2];D=+g[w+4>>2];E=+g[w>>2];c[b+56>>2]=v?2:1;w=v?f:d;d=v?h:k;k=c[e+148>>2]|0;F=+g[w+84+(d<<3)>>2];G=+g[w+84+(d<<3)+4>>2];H=t*F-u*G;I=u*F+t*G;G=A*H+B*I;F=A*I-B*H;if((k|0)>0){H=3.4028234663852886E38;h=0;f=0;while(1){I=G*+g[e+84+(h<<3)>>2]+F*+g[e+84+(h<<3)+4>>2];x=I>2];F=+g[e+20+(J<<3)+4>>2];g[m>>2]= -E+(A*H-B*F);g[m+4>>2]=D+(B*H+A*F);f=d&255;k=m+8|0;a[k>>0]=f;a[k+1>>0]=J;a[k+2>>0]=1;a[k+3>>0]=0;F=+g[e+20+(h<<3)>>2];H=+g[e+20+(h<<3)+4>>2];g[m+12>>2]=E+(A*F-B*H);g[m+16>>2]=D+(B*F+A*H);e=m+20|0;a[e>>0]=f;a[e+1>>0]=h;a[e+2>>0]=1;a[e+3>>0]=0;e=d+1|0;h=(e|0)<(c[w+148>>2]|0)?e:0;H=+g[w+20+(d<<3)>>2];F=+g[w+20+(d<<3)+4>>2];G=+g[w+20+(h<<3)>>2];I=+g[w+20+(h<<3)+4>>2];K=G-H;L=I-F;M=+C(+(K*K+L*L));w=M<1.1920928955078125E-7;N=1/M;M=w?K:K*N;K=w?L:L*N;N=(H+G)*.5;L=t*M-u*K;O=u*M+t*K;g[n>>2]=L;g[n+4>>2]=O;P= --L;Q=z+(t*H-u*F);R=y+(u*H+t*F);H=-M;M=(F+I)*.5;F=Q*O+R*P;g[q>>2]=P;g[q+4>>2]=-O;if((Ze(o,m,q,s-(Q*L+R*O),d)|0)>=2?(Ze(p,o,n,s+((z+(t*G-u*I))*L+(y+(u*G+t*I))*O),h)|0)>=2:0){g[b+40>>2]=K;g[b+44>>2]=H;g[b+48>>2]=N;g[b+52>>2]=M;M=+g[p>>2];N=+g[p+4>>2];h=!(O*M+N*P-F<=s);if(v){if(h)S=0;else{H=M-E;K=N-D;g[b>>2]=A*H+B*K;g[b+4>>2]=A*K-B*H;v=b+16|0;n=c[p+8>>2]|0;a[v>>0]=n>>>8;a[v+1>>0]=n;a[v+2>>0]=n>>>24;a[v+3>>0]=n>>>16;S=1}H=+g[p+12>>2];K=+g[p+16>>2];if(!(O*H+K*P-F<=s))T=S;else{I=H-E;H=K-D;g[b+(S*20|0)>> -2]=A*I+B*H;g[b+(S*20|0)+4>>2]=A*H-B*I;n=b+(S*20|0)+16|0;v=c[p+20>>2]|0;a[n>>0]=v>>>8;a[n+1>>0]=v;a[n+2>>0]=v>>>24;a[n+3>>0]=v>>>16;T=S+1|0}}else{if(h)U=0;else{I=M-E;M=N-D;g[b>>2]=A*I+B*M;g[b+4>>2]=A*M-B*I;c[b+16>>2]=c[p+8>>2];U=1}I=+g[p+12>>2];M=+g[p+16>>2];if(!(O*I+M*P-F<=s))T=U;else{s=I-E;E=M-D;g[b+(U*20|0)>>2]=A*s+B*E;g[b+(U*20|0)+4>>2]=A*E-B*s;c[b+(U*20|0)+16>>2]=c[p+20>>2];T=U+1|0}}c[r>>2]=T}}l=i;return}function Xe(a,b,d,e,f){a=a|0;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;h=c[b+148>>2]|0;i=c[e+148>>2]|0;j=+g[f+12>>2];k=+g[d+8>>2];l=+g[f+8>>2];m=+g[d+12>>2];n=j*k-l*m;o=k*l+j*m;m=+g[d>>2]-+g[f>>2];k=+g[d+4>>2]-+g[f+4>>2];p=j*m+l*k;q=j*k-l*m;if((h|0)<=0){r=0;s=-3.4028234663852886E38;c[a>>2]=r;return+s}if((i|0)>0){t=0;u=-3.4028234663852886E38;v=0}else{f=0;m=-3.4028234663852886E38;d=0;while(1){w=m<3.4028234663852886E38;l=w?3.4028234663852886E38:m;x=w?f:d;f=f+1|0;if((f|0)==(h|0)){r=x;s=l;break}else{m=l;d=x}}c[a>>2]=r;return+s}while(1){m= -+g[b+84+(t<<3)>>2];l=+g[b+84+(t<<3)+4>>2];k=o*m-n*l;j=n*m+o*l;l=+g[b+20+(t<<3)>>2];m=+g[b+20+(t<<3)+4>>2];y=p+(o*l-n*m);z=q+(n*l+o*m);d=0;m=3.4028234663852886E38;do{l=k*(+g[e+20+(d<<3)>>2]-y)+j*(+g[e+20+(d<<3)+4>>2]-z);m=lu;z=d?m:u;f=d?t:v;t=t+1|0;if((t|0)==(h|0)){r=f;s=z;break}else{u=z;v=f}}c[a>>2]=r;return+s}function Ye(a,b,d,e,f,h){a=a|0;b=b|0;d=d|0;e=+e;f=f|0;h=+h;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,D=0;i=b+ -60|0;if(!(c[i>>2]|0))return;switch(c[b+56>>2]|0){case 0:{g[a>>2]=1;j=a+4|0;g[j>>2]=0;k=+g[d+12>>2];l=+g[b+48>>2];m=+g[d+8>>2];n=+g[b+52>>2];o=+g[d>>2]+(k*l-m*n);p=l*m+k*n+ +g[d+4>>2];n=+g[f+12>>2];k=+g[b>>2];m=+g[f+8>>2];l=+g[b+4>>2];q=+g[f>>2]+(n*k-m*l);r=k*m+n*l+ +g[f+4>>2];l=o-q;n=p-r;if(l*l+n*n>1.4210854715202004E-14){n=q-o;l=r-p;g[a>>2]=n;g[j>>2]=l;m=+C(+(n*n+l*l));k=1/m;if(m<1.1920928955078125E-7){s=n;t=l}else{m=l*k;l=n*k;g[a>>2]=l;g[j>>2]=m;s=l;t=m}}else{s=1;t=0}m=o+s*e;o=p+t*e;p=q-s*h;q=r- -t*h;g[a+8>>2]=(m+p)*.5;g[a+12>>2]=(o+q)*.5;g[a+24>>2]=(p-m)*s+(q-o)*t;return}case 1:{j=d+12|0;t=+g[j>>2];o=+g[b+40>>2];u=d+8|0;q=+g[u>>2];s=+g[b+44>>2];m=t*o-q*s;p=o*q+t*s;g[a>>2]=m;v=a+4|0;g[v>>2]=p;s=+g[j>>2];t=+g[b+48>>2];q=+g[u>>2];o=+g[b+52>>2];r=+g[d>>2]+(s*t-q*o);l=t*q+s*o+ +g[d+4>>2];if((c[i>>2]|0)<=0)return;u=f+12|0;j=f+8|0;w=f+4|0;x=0;o=m;m=p;while(1){p=+g[u>>2];s=+g[b+(x*20|0)>>2];q=+g[j>>2];t=+g[b+(x*20|0)+4>>2];k=+g[f>>2]+(p*s-q*t);n=s*q+p*t+ +g[w>>2];t=e-(o*(k-r)+(n-l)*m);p=k+o*t;q= -n+m*t;t=k-o*h;k=n-m*h;g[a+8+(x<<3)>>2]=(t+p)*.5;g[a+8+(x<<3)+4>>2]=(k+q)*.5;g[a+24+(x<<2)>>2]=+g[a>>2]*(t-p)+ +g[v>>2]*(k-q);y=x+1|0;if((y|0)>=(c[i>>2]|0))break;x=y;o=+g[a>>2];m=+g[v>>2]}return}case 2:{v=f+12|0;m=+g[v>>2];o=+g[b+40>>2];x=f+8|0;l=+g[x>>2];r=+g[b+44>>2];q=m*o-l*r;k=o*l+m*r;g[a>>2]=q;w=a+4|0;g[w>>2]=k;r=+g[v>>2];m=+g[b+48>>2];l=+g[x>>2];o=+g[b+52>>2];p=+g[f>>2]+(r*m-l*o);t=m*l+r*o+ +g[f+4>>2];if((c[i>>2]|0)>0){f=d+12|0;x=d+8|0;v=d+4|0;j=0;o=q;r=k;while(1){l=+g[f>>2];m=+g[b+(j*20|0)>> -2];n=+g[x>>2];s=+g[b+(j*20|0)+4>>2];z=+g[d>>2]+(l*m-n*s);A=m*n+l*s+ +g[v>>2];s=h-(o*(z-p)+(A-t)*r);l=z+o*s;n=A+r*s;s=z-o*e;z=A-r*e;g[a+8+(j<<3)>>2]=(s+l)*.5;g[a+8+(j<<3)+4>>2]=(z+n)*.5;g[a+24+(j<<2)>>2]=+g[a>>2]*(s-l)+ +g[w>>2]*(z-n);j=j+1|0;n=+g[a>>2];z=+g[w>>2];if((j|0)>=(c[i>>2]|0)){B=n;D=z;break}else{o=n;r=z}}}else{B=q;D=k}g[a>>2]=-B;g[w>>2]=-D;return}default:return}}function Ze(b,d,e,f,h){b=b|0;d=d|0;e=e|0;f=+f;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;i=+g[e>>2];j=+g[e+4>>2];e=d+4|0; -k=i*+g[d>>2]+j*+g[e>>2]-f;l=d+12|0;m=d+16|0;n=i*+g[l>>2]+j*+g[m>>2]-f;if(!(k<=0))o=0;else{c[b>>2]=c[d>>2];c[b+4>>2]=c[d+4>>2];c[b+8>>2]=c[d+8>>2];o=1}if(!(n<=0))p=o;else{q=b+(o*12|0)|0;c[q>>2]=c[l>>2];c[q+4>>2]=c[l+4>>2];c[q+8>>2]=c[l+8>>2];p=o+1|0}if(!(k*n<0)){r=p;return r|0}f=k/(k-n);n=+g[d>>2];k=+g[e>>2];j=k+f*(+g[m>>2]-k);g[b+(p*12|0)>>2]=n+f*(+g[l>>2]-n);g[b+(p*12|0)+4>>2]=j;l=b+(p*12|0)+8|0;a[l>>0]=h;a[l+1>>0]=a[d+8+1>>0]|0;a[l+2>>0]=0;a[l+3>>0]=1;r=p+1|0;return r|0}function _e(d,e,f,h,i,j){d= -d|0;e=e|0;f=f|0;h=h|0;i=i|0;j=j|0;var k=0,m=0,n=0,o=0;k=l;l=l+128|0;m=k+36|0;n=k+24|0;o=k;c[m+16>>2]=0;c[m+20>>2]=0;g[m+24>>2]=0;c[m+44>>2]=0;c[m+48>>2]=0;g[m+52>>2]=0;Nd(m,d,e);Nd(m+28|0,f,h);h=m+56|0;c[h>>2]=c[i>>2];c[h+4>>2]=c[i+4>>2];c[h+8>>2]=c[i+8>>2];c[h+12>>2]=c[i+12>>2];i=m+72|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];a[m+88>>0]=1;b[n+4>>1]=0;Pd(o,n,m);l=k;return+g[o+16>>2]<1.1920928955078125E-6|0}function $e(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;h=a+40|0;c[h>>2]=b;c[a+44>>2]=d;c[a+48>>2]=e;c[a+28>>2]=0;c[a+36>>2]=0;c[a+32>>2]=0;c[a>>2]=f;c[a+4>>2]=g;c[a+8>>2]=hm(f,b<<2)|0;c[a+12>>2]=hm(c[a>>2]|0,d<<2)|0;c[a+16>>2]=hm(c[a>>2]|0,e<<2)|0;c[a+24>>2]=hm(c[a>>2]|0,(c[h>>2]|0)*12|0)|0;c[a+20>>2]=hm(c[a>>2]|0,(c[h>>2]|0)*12|0)|0;return}function af(a){a=a|0;jm(c[a>>2]|0,c[a+20>>2]|0);jm(c[a>>2]|0,c[a+24>>2]|0);jm(c[a>>2]|0,c[a+16>>2]|0);jm(c[a>>2]|0,c[a+12>>2]|0);jm(c[a>>2]|0,c[a+8>>2]|0);return}function bf(d,e,f,h,i){d=d|0;e=e|0; -f=f|0;h=h|0;i=i|0;var k=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,D=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;k=l;l=l+176|0;m=k+148|0;n=k;o=k+112|0;p=k+64|0;q=k+8|0;Vl(n);r=+g[f>>2];s=d+28|0;if((c[s>>2]|0)>0){t=d+8|0;u=h+4|0;v=d+20|0;w=d+24|0;x=0;do{y=c[(c[t>>2]|0)+(x<<2)>>2]|0;z=y+60|0;A=c[z>>2]|0;B=c[z+4>>2]|0;z=c[y+72>>2]|0;D=c[y+80>>2]|0;G=c[y+84>>2]|0;H=+g[y+88>>2];I=y+52|0;c[I>>2]=A;c[I+4>>2]=B;c[y+68>>2]=z;if((c[y>>2]|0)==2){J=+g[y+ -156>>2];K=+g[y+136>>2];L=(c[j>>2]=D,+g[j>>2])+r*(J*+g[h>>2]+K*+g[y+92>>2]);M=(c[j>>2]=G,+g[j>>2])+r*(J*+g[u>>2]+K*+g[y+96>>2]);K=1/(r*+g[y+148>>2]+1);I=(g[j>>2]=L*K,c[j>>2]|0);N=(H+r*+g[y+144>>2]*+g[y+100>>2])*(1/(r*+g[y+152>>2]+1));O=I;P=(g[j>>2]=M*K,c[j>>2]|0)}else{N=H;O=D;P=G}G=(c[v>>2]|0)+(x*12|0)|0;c[G>>2]=A;c[G+4>>2]=B;c[(c[v>>2]|0)+(x*12|0)+8>>2]=z;z=c[w>>2]|0;c[z+(x*12|0)>>2]=O;c[z+(x*12|0)+4>>2]=P;g[(c[w>>2]|0)+(x*12|0)+8>>2]=N;x=x+1|0}while((x|0)<(c[s>>2]|0));Q=w;R=v}else{Q=d+24|0;R=d+20| -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];c[o+16>>2]=c[f+16>>2];c[o+20>>2]=c[f+20>>2];c[o+24>>2]=c[f+24>>2];v=c[R>>2]|0;c[o+28>>2]=v;w=c[Q>>2]|0;c[o+32>>2]=w;c[p>>2]=c[f>>2];c[p+4>>2]=c[f+4>>2];c[p+8>>2]=c[f+8>>2];c[p+12>>2]=c[f+12>>2];c[p+16>>2]=c[f+16>>2];c[p+20>>2]=c[f+20>>2];c[p+24>>2]=c[f+24>>2];x=d+12|0;c[p+28>>2]=c[x>>2];P=d+36|0;c[p+32>>2]=c[P>>2];c[p+36>>2]=v;c[p+40>>2]=w;c[p+44>>2]=c[d>>2];ki(q,p);mi(q);if(a[f+24>>0]|0)ni(q);p=d+32|0;if((c[p>>2]|0)> -0){w=d+16|0;v=0;do{O=c[(c[w>>2]|0)+(v<<2)>>2]|0;Ra[c[(c[O>>2]|0)+32>>2]&63](O,o);v=v+1|0}while((v|0)<(c[p>>2]|0))}g[e+12>>2]=+Xl(n);v=f+12|0;if((c[v>>2]|0)>0){w=d+16|0;O=0;do{if((c[p>>2]|0)>0){u=0;do{h=c[(c[w>>2]|0)+(u<<2)>>2]|0;Ra[c[(c[h>>2]|0)+36>>2]&63](h,o);u=u+1|0}while((u|0)<(c[p>>2]|0))}oi(q);O=O+1|0}while((O|0)<(c[v>>2]|0))}pi(q);g[e+16>>2]=+Xl(n);if((c[s>>2]|0)>0){v=0;O=c[Q>>2]|0;do{w=c[R>>2]|0;u=w+(v*12|0)|0;h=w+(v*12|0)+4|0;t=c[O+(v*12|0)>>2]|0;z=c[O+(v*12|0)+4>>2]|0;N=+g[O+(v*12|0)+8>> -2];H=(c[j>>2]=t,+g[j>>2]);K=r*H;M=(c[j>>2]=z,+g[j>>2]);L=r*M;J=K*K+L*L;if(J>4){L=2/+C(+J);B=(g[j>>2]=H*L,c[j>>2]|0);S=B;T=(g[j>>2]=M*L,c[j>>2]|0)}else{S=t;T=z}L=r*N;if(L*L>2.4674012660980225)U=N*(1.5707963705062866/(L>0?L:-L));else U=N;N=r*(c[j>>2]=S,+g[j>>2]);L=+g[h>>2]+r*(c[j>>2]=T,+g[j>>2]);M=+g[w+(v*12|0)+8>>2]+r*U;g[u>>2]=+g[u>>2]+N;g[h>>2]=L;g[(c[R>>2]|0)+(v*12|0)+8>>2]=M;h=c[Q>>2]|0;c[h+(v*12|0)>>2]=S;c[h+(v*12|0)+4>>2]=T;O=c[Q>>2]|0;g[O+(v*12|0)+8>>2]=U;v=v+1|0}while((v|0)<(c[s>>2]|0))}v= -f+16|0;if((c[v>>2]|0)>0){f=d+16|0;O=0;T=0;do{S=qi(q)|0;if((c[p>>2]|0)>0){h=0;u=1;while(1){w=c[(c[f>>2]|0)+(h<<2)>>2]|0;z=u&(Ya[c[(c[w>>2]|0)+40>>2]&31](w,o)|0);h=h+1|0;if((h|0)>=(c[p>>2]|0)){V=z;break}else u=z}}else V=1;u=S&V;T=T|u;O=O+1|0}while((O|0)<(c[v>>2]|0)&(u^1));W=T^1}else W=1;if((c[s>>2]|0)>0){T=d+8|0;v=0;do{O=c[(c[T>>2]|0)+(v<<2)>>2]|0;V=(c[R>>2]|0)+(v*12|0)|0;p=c[V>>2]|0;o=c[V+4>>2]|0;V=O+60|0;c[V>>2]=p;c[V+4>>2]=o;V=c[(c[R>>2]|0)+(v*12|0)+8>>2]|0;c[O+72>>2]=V;f=(c[Q>>2]|0)+(v*12|0)|0; -u=c[f+4>>2]|0;h=O+80|0;c[h>>2]=c[f>>2];c[h+4>>2]=u;c[O+88>>2]=c[(c[Q>>2]|0)+(v*12|0)+8>>2];U=(c[j>>2]=V,+g[j>>2]);M=+F(+U);g[O+20>>2]=M;L=+E(+U);g[O+24>>2]=L;U=+g[O+44>>2];N=+g[O+48>>2];H=(c[j>>2]=p,+g[j>>2])-(L*U-M*N);J=(c[j>>2]=o,+g[j>>2])-(M*U+L*N);g[O+12>>2]=H;g[O+16>>2]=J;v=v+1|0}while((v|0)<(c[s>>2]|0))}g[e+20>>2]=+Xl(n);n=c[q+44>>2]|0;e=d+4|0;if(c[e>>2]|0?(c[P>>2]|0)>0:0){v=m+16|0;Q=0;do{R=c[(c[x>>2]|0)+(Q<<2)>>2]|0;T=c[n+(Q*156|0)+148>>2]|0;c[v>>2]=T;if((T|0)>0){O=0;do{c[m+(O<<2)>>2]=c[n+ -(Q*156|0)+(O*36|0)+16>>2];c[m+8+(O<<2)>>2]=c[n+(Q*156|0)+(O*36|0)+20>>2];O=O+1|0}while((O|0)!=(T|0))}T=c[e>>2]|0;Ta[c[(c[T>>2]|0)+36>>2]&7](T,R,m);Q=Q+1|0}while((Q|0)<(c[P>>2]|0))}if(!i){li(q);l=k;return}i=c[s>>2]|0;P=(i|0)>0;if(P){Q=c[d+8>>2]|0;m=0;J=3.4028234663852886E38;while(1){e=c[Q+(m<<2)>>2]|0;do if(!(c[e>>2]|0))X=J;else{if((b[e+4>>1]&4?(H=+g[e+88>>2],!(H*H>.001218469929881394)):0)?(H=+g[e+80>>2],N=+g[e+84>>2],!(H*H+N*N>9.999999747378752E-5)):0){n=e+160|0;N=r+ +g[n>>2];g[n>>2]=N;X=J>2]=0;X=0}while(0);m=m+1|0;if((m|0)>=(i|0)){Y=X;break}else J=X}}else Y=3.4028234663852886E38;if(!(Y>=.5)|W|P^1){li(q);l=k;return}P=d+8|0;d=0;do{W=c[(c[P>>2]|0)+(d<<2)>>2]|0;i=W+4|0;b[i>>1]=b[i>>1]&-3;g[W+160>>2]=0;i=W+80|0;d=d+1|0;c[i>>2]=0;c[i+4>>2]=0;c[i+8>>2]=0;c[i+12>>2]=0;c[i+16>>2]=0;c[i+20>>2]=0}while((d|0)<(c[s>>2]|0));li(q);l=k;return}function cf(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,h=0,i=0,k=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,D=0,G=0,H=0, -I=0,J=0,K=0,L=0;f=l;l=l+128|0;h=f+104|0;i=f+56|0;k=f;m=a+28|0;if((c[m>>2]|0)>0){n=a+8|0;o=a+20|0;p=a+24|0;q=0;do{r=c[(c[n>>2]|0)+(q<<2)>>2]|0;s=r+60|0;t=c[s+4>>2]|0;u=(c[o>>2]|0)+(q*12|0)|0;c[u>>2]=c[s>>2];c[u+4>>2]=t;c[(c[o>>2]|0)+(q*12|0)+8>>2]=c[r+72>>2];t=r+80|0;u=c[t+4>>2]|0;s=(c[p>>2]|0)+(q*12|0)|0;c[s>>2]=c[t>>2];c[s+4>>2]=u;v=c[p>>2]|0;c[v+(q*12|0)+8>>2]=c[r+88>>2];q=q+1|0}while((q|0)<(c[m>>2]|0));w=p;x=o;y=v}else{v=a+24|0;w=v;x=a+20|0;y=c[v>>2]|0}v=a+12|0;c[i+28>>2]=c[v>>2];o=a+36|0;c[i+ -32>>2]=c[o>>2];c[i+44>>2]=c[a>>2];c[i>>2]=c[b>>2];c[i+4>>2]=c[b+4>>2];c[i+8>>2]=c[b+8>>2];c[i+12>>2]=c[b+12>>2];c[i+16>>2]=c[b+16>>2];c[i+20>>2]=c[b+20>>2];c[i+24>>2]=c[b+24>>2];c[i+36>>2]=c[x>>2];c[i+40>>2]=y;ki(k,i);i=b+16|0;if((c[i>>2]|0)>0){y=0;do{y=y+1|0;p=(si(k,d,e)|0)^1}while((y|0)<(c[i>>2]|0)&p)}i=a+8|0;y=(c[x>>2]|0)+(d*12|0)|0;p=c[y+4>>2]|0;q=(c[(c[i>>2]|0)+(d<<2)>>2]|0)+52|0;c[q>>2]=c[y>>2];c[q+4>>2]=p;p=c[x>>2]|0;q=c[i>>2]|0;c[(c[q+(d<<2)>>2]|0)+68>>2]=c[p+(d*12|0)+8>>2];d=p+(e*12|0)|0; -p=c[d+4>>2]|0;y=(c[q+(e<<2)>>2]|0)+52|0;c[y>>2]=c[d>>2];c[y+4>>2]=p;c[(c[(c[i>>2]|0)+(e<<2)>>2]|0)+68>>2]=c[(c[x>>2]|0)+(e*12|0)+8>>2];mi(k);e=b+12|0;if((c[e>>2]|0)>0){p=0;do{oi(k);p=p+1|0}while((p|0)<(c[e>>2]|0))}z=+g[b>>2];if((c[m>>2]|0)>0){b=0;do{e=c[x>>2]|0;p=e+(b*12|0)|0;y=e+(b*12|0)+4|0;d=c[w>>2]|0;q=c[d+(b*12|0)>>2]|0;n=c[d+(b*12|0)+4>>2]|0;A=+g[d+(b*12|0)+8>>2];B=(c[j>>2]=q,+g[j>>2]);D=z*B;G=(c[j>>2]=n,+g[j>>2]);H=z*G;I=D*D+H*H;if(I>4){H=2/+C(+I);d=(g[j>>2]=B*H,c[j>>2]|0);J=d;K=(g[j>>2]=G* -H,c[j>>2]|0)}else{J=q;K=n}H=z*A;if(H*H>2.4674012660980225)L=A*(1.5707963705062866/(H>0?H:-H));else L=A;A=z*(c[j>>2]=J,+g[j>>2]);H=+g[p>>2]+A;A=+g[y>>2]+z*(c[j>>2]=K,+g[j>>2]);G=+g[e+(b*12|0)+8>>2]+z*L;g[p>>2]=H;g[y>>2]=A;g[(c[x>>2]|0)+(b*12|0)+8>>2]=G;y=c[w>>2]|0;c[y+(b*12|0)>>2]=J;c[y+(b*12|0)+4>>2]=K;g[(c[w>>2]|0)+(b*12|0)+8>>2]=L;y=c[(c[i>>2]|0)+(b<<2)>>2]|0;g[y+60>>2]=H;g[y+64>>2]=A;g[y+72>>2]=G;c[y+80>>2]=J;c[y+84>>2]=K;g[y+88>>2]=L;B=+F(+G);g[y+20>>2]=B;I=+E(+G);g[y+24>>2]=I;G=+g[y+44>>2];D= -+g[y+48>>2];g[y+12>>2]=H-(I*G-B*D);g[y+16>>2]=A-(B*G+I*D);b=b+1|0}while((b|0)<(c[m>>2]|0))}m=c[k+44>>2]|0;b=a+4|0;if(!(c[b>>2]|0)){li(k);l=f;return}if((c[o>>2]|0)<=0){li(k);l=f;return}a=h+16|0;K=0;do{J=c[(c[v>>2]|0)+(K<<2)>>2]|0;i=c[m+(K*156|0)+148>>2]|0;c[a>>2]=i;if((i|0)>0){w=0;do{c[h+(w<<2)>>2]=c[m+(K*156|0)+(w*36|0)+16>>2];c[h+8+(w<<2)>>2]=c[m+(K*156|0)+(w*36|0)+20>>2];w=w+1|0}while((w|0)!=(i|0))}i=c[b>>2]|0;Ta[c[(c[i>>2]|0)+36>>2]&7](i,J,h);K=K+1|0}while((K|0)<(c[o>>2]|0));li(k);l=f;return}function df(a){a= -a|0;return}function ef(a){a=a|0;fn(a);return}function ff(a,c,d){a=a|0;c=c|0;d=d|0;var e=0;a=b[c+36>>1]|0;if(!(a<<16>>16==0?1:a<<16>>16!=(b[d+36>>1]|0))){e=a<<16>>16>0;return e|0}if(!((b[d+32>>1]&b[c+34>>1])<<16>>16)){e=0;return e|0}e=(b[d+34>>1]&b[c+32>>1])<<16>>16!=0;return e|0}function gf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return 1}function hf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return 1}function jf(a,b){a=a|0;b=b|0;var d=0,e=0;d=b+76|0;b=c[d+4>>2]|0;e=a;c[e>>2]=c[d>>2];c[e+4>>2]=b;return}function kf(a, -b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0,i=0,j=0;d=c[b+52>>2]|0;e=+g[d+24>>2];f=+g[b+68>>2];h=+g[d+20>>2];i=+g[b+72>>2];j=f*h+e*i+ +g[d+16>>2];g[a>>2]=+g[d+12>>2]+(e*f-h*i);g[a+4>>2]=j;return}function lf(a,b,c){a=a|0;b=b|0;c=+c;var d=0;d=+g[b+100>>2]*c;g[a>>2]=+g[b+96>>2]*c;g[a+4>>2]=d;return}function mf(a,b){a=a|0;b=+b;return+(b*0)}function nf(a){a=a|0;a=l;l=l+16|0;am(2970,a);l=a;return}function of(a,b){a=a|0;b=b|0;var c=0;c=a+76|0;g[c>>2]=+g[c>>2]-+g[b>>2];c=a+80|0;g[c>>2]=+g[c>>2]-+g[b+4>>2];return} -function pf(a){a=a|0;return}function qf(a){a=a|0;fn(a);return}function rf(b,d){b=b|0;d=d|0;var e=0,f=0,h=0,i=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,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0;e=c[b+52>>2]|0;f=c[e+8>>2]|0;h=b+116|0;c[h>>2]=f;i=e+44|0;k=c[i>>2]|0;l=c[i+4>>2]|0;i=b+128|0;c[i>>2]=k;c[i+4>>2]=l;i=c[e+136>>2]|0;m=b+136|0;c[m>>2]=i;n=c[e+144>>2]|0;o=b+140|0;c[o>>2]=n;p=c[d+28>>2]|0;q=+g[p+(f*12|0)>>2];r=+g[p+(f*12|0)+4>>2];s=+g[p+(f*12|0)+8>>2]; -p=d+32|0;t=c[p>>2]|0;u=c[t+(f*12|0)>>2]|0;v=c[t+(f*12|0)+4>>2]|0;w=+g[t+(f*12|0)+8>>2];x=+F(+s);y=+E(+s);s=+g[e+132>>2];z=+g[b+84>>2]*6.2831854820251465;A=+g[d>>2];B=A*(s*(z*z));C=A*(z*(s*2*+g[b+88>>2])+B);s=C!=0?1/C:C;g[b+108>>2]=s;C=B*s;g[b+92>>2]=C;B=+g[b+68>>2]-(c[j>>2]=k,+g[j>>2]);z=+g[b+72>>2]-(c[j>>2]=l,+g[j>>2]);A=y*B-x*z;D=x*B+y*z;g[b+120>>2]=A;g[b+124>>2]=D;z=(c[j>>2]=i,+g[j>>2]);y=(c[j>>2]=n,+g[j>>2]);B=s+(z+D*(D*y));x=y*A;y=D*x;G=s+(z+A*x);x=B*G-y*y;z=x!=0?1/x:x;x=y*z;g[b+144>>2]=G*z; -g[b+148>>2]=x;g[b+152>>2]=x;g[b+156>>2]=B*z;z=r+D-+g[b+80>>2];g[b+160>>2]=(q+A-+g[b+76>>2])*C;g[b+164>>2]=z*C;C=w*.9800000190734863;if(!(a[d+24>>0]|0)){g[b+96>>2]=0;g[b+100>>2]=0;H=C;I=u;J=v;K=c[p>>2]|0;L=c[h>>2]|0;M=K+(L*12|0)|0;c[M>>2]=I;N=K+(L*12|0)+4|0;c[N>>2]=J;O=c[p>>2]|0;P=c[h>>2]|0;Q=O+(P*12|0)+8|0;g[Q>>2]=H;return}else{w=+g[d+8>>2];d=b+96|0;z=w*+g[d>>2];g[d>>2]=z;d=b+100|0;q=w*+g[d>>2];g[d>>2]=q;w=+g[m>>2];m=(g[j>>2]=(c[j>>2]=u,+g[j>>2])+z*w,c[j>>2]|0);H=C+ +g[o>>2]*(q*A-z*D);I=m;J=(g[j>> -2]=(c[j>>2]=v,+g[j>>2])+q*w,c[j>>2]|0);K=c[p>>2]|0;L=c[h>>2]|0;M=K+(L*12|0)|0;c[M>>2]=I;N=K+(L*12|0)+4|0;c[N>>2]=J;O=c[p>>2]|0;P=c[h>>2]|0;Q=O+(P*12|0)+8|0;g[Q>>2]=H;return}}function sf(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,s=0,t=0,u=0,v=0,w=0,x=0;d=b+32|0;e=c[d>>2]|0;f=a+116|0;h=c[f>>2]|0;i=e+(h*12|0)|0;j=+g[i>>2];k=e+(h*12|0)+4|0;l=+g[k>>2];m=+g[e+(h*12|0)+8>>2];n=+g[a+124>>2];o=+g[a+120>>2];p=+g[a+108>>2];h=a+96|0;q=+g[h>>2];e=a+100|0;r=+g[e>>2];s=-(j-m*n+ -+g[a+160>>2]+p*q);t=-(l+m*o+ +g[a+164>>2]+p*r);p=+g[a+148>>2]*s+ +g[a+156>>2]*t;u=q+(+g[a+144>>2]*s+ +g[a+152>>2]*t);g[h>>2]=u;t=p+r;g[e>>2]=t;p=+g[b>>2]*+g[a+104>>2];s=t*t+u*u;if(s>p*p){v=p/+C(+s);s=u*v;g[h>>2]=s;p=v*t;g[e>>2]=p;w=s;x=p}else{w=u;x=t}t=w-q;q=x-r;r=+g[a+136>>2];x=m+ +g[a+140>>2]*(q*o-t*n);g[i>>2]=j+t*r;g[k>>2]=l+q*r;g[(c[d>>2]|0)+((c[f>>2]|0)*12|0)+8>>2]=x;return}function tf(a,b){a=a|0;b=b|0;return 1}function uf(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0,i=0,k=0,l=0;ch(a,b);c[a>>2]=1020; -d=b+20|0;e=c[d>>2]|0;f=c[d+4>>2]|0;d=a+76|0;c[d>>2]=e;c[d+4>>2]=f;d=c[a+52>>2]|0;h=(c[j>>2]=e,+g[j>>2])-+g[d+12>>2];i=(c[j>>2]=f,+g[j>>2])-+g[d+16>>2];k=+g[d+24>>2];l=+g[d+20>>2];g[a+68>>2]=h*k+i*l;g[a+72>>2]=k*i-h*l;c[a+104>>2]=c[b+28>>2];g[a+96>>2]=0;g[a+100>>2]=0;c[a+84>>2]=c[b+32>>2];c[a+88>>2]=c[b+36>>2];g[a+92>>2]=0;g[a+108>>2]=0;return}function vf(a,d){a=a|0;d=d|0;var e=0,f=0,h=0,i=0;e=c[a+52>>2]|0;f=e+4|0;h=b[f>>1]|0;if((h&2)==0?(i=h&65535,(i&2|0)==0):0){b[f>>1]=i|2;g[e+160>>2]=0}e=d;d=c[e+ -4>>2]|0;i=a+76|0;c[i>>2]=c[e>>2];c[i+4>>2]=d;return}function wf(a,b){a=a|0;b=b|0;var d=0,e=0;d=(c[b+48>>2]|0)+12|0;b=c[d+4>>2]|0;e=a;c[e>>2]=c[d>>2];c[e+4>>2]=b;return}function xf(a,b){a=a|0;b=b|0;var d=0,e=0;d=(c[b+52>>2]|0)+12|0;b=c[d+4>>2]|0;e=a;c[e>>2]=c[d>>2];c[e+4>>2]=b;return}function yf(a,b,c){a=a|0;b=b|0;c=+c;var d=0;d=+g[b+84>>2]*c;g[a>>2]=+g[b+80>>2]*c;g[a+4>>2]=d;return}function zf(a,b){a=a|0;b=+b;return+(+g[a+88>>2]*b)}function Af(a){a=a|0;var b=0,e=0,f=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0, -q=0,r=0,s=0;b=l;l=l+96|0;e=b+80|0;f=b+72|0;i=b+64|0;j=b+56|0;k=b+48|0;m=b+32|0;n=b+24|0;o=b+16|0;p=b+8|0;q=c[(c[a+48>>2]|0)+8>>2]|0;r=c[(c[a+52>>2]|0)+8>>2]|0;am(3033,b);c[p>>2]=q;am(4137,p);c[o>>2]=r;am(4163,o);c[n>>2]=d[a+61>>0];am(4189,n);s=+g[a+72>>2];h[m>>3]=+g[a+68>>2];h[m+8>>3]=s;am(3056,m);h[k>>3]=+g[a+76>>2];am(3098,k);h[j>>3]=+g[a+92>>2];am(3272,j);h[i>>3]=+g[a+96>>2];am(3298,i);h[f>>3]=+g[a+100>>2];am(3129,f);c[e>>2]=c[a+56>>2];am(4467,e);l=b;return}function Bf(a,b){a=a|0;b=b|0;return} -function Cf(a){a=a|0;fn(a);return}function Df(b,d){b=b|0;d=d|0;var e=0,f=0,h=0,i=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,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;e=c[b+48>>2]|0;f=c[e+8>>2]|0;h=b+104|0;c[h>>2]=f;i=c[b+52>>2]|0;k=c[i+8>>2]|0;l=b+108|0;c[l>>2]=k;m=e+44|0;n=c[m>>2]|0;o=c[m+4>>2]|0;m=b+128|0;c[m>>2]=n;c[m+4>>2]=o;m=i+44|0;p=c[m>> -2]|0;q=c[m+4>>2]|0;m=b+136|0;c[m>>2]=p;c[m+4>>2]=q;m=c[e+136>>2]|0;c[b+156>>2]=m;r=c[i+136>>2]|0;c[b+160>>2]=r;s=c[e+144>>2]|0;c[b+164>>2]=s;e=c[i+144>>2]|0;c[b+168>>2]=e;i=c[d+28>>2]|0;t=+g[i+(f*12|0)>>2];u=+g[i+(f*12|0)+4>>2];v=+g[i+(f*12|0)+8>>2];w=d+32|0;x=c[w>>2]|0;y=c[x+(f*12|0)>>2]|0;z=c[x+(f*12|0)+4>>2]|0;A=+g[x+(f*12|0)+8>>2];B=+g[i+(k*12|0)>>2];C=+g[i+(k*12|0)+4>>2];D=+g[i+(k*12|0)+8>>2];i=c[x+(k*12|0)>>2]|0;f=c[x+(k*12|0)+4>>2]|0;G=+g[x+(k*12|0)+8>>2];H=+F(+v);I=+E(+v);J=+F(+D);K=+E(+D); -L=-(c[j>>2]=n,+g[j>>2]);M=-(c[j>>2]=o,+g[j>>2]);N=I*L-H*M;O=H*L+I*M;o=b+112|0;g[o>>2]=N;g[b+116>>2]=O;M=-(c[j>>2]=p,+g[j>>2]);L=-(c[j>>2]=q,+g[j>>2]);P=K*M-J*L;Q=J*M+K*L;g[b+120>>2]=P;g[b+124>>2]=Q;L=(c[j>>2]=m,+g[j>>2]);K=(c[j>>2]=r,+g[j>>2]);M=(c[j>>2]=s,+g[j>>2]);J=(c[j>>2]=e,+g[j>>2]);R=L+K;S=R+O*(M*O)+Q*(J*Q);T=M*N;U=J*P;V=-(O*T)-Q*U;W=R+N*T+P*U;U=S*W-V*V;T=U!=0?1/U:U;U=-(V*T);g[b+172>>2]=W*T;g[b+176>>2]=U;g[b+180>>2]=U;g[b+184>>2]=S*T;T=M+J;g[b+188>>2]=T>0?1/T:T;T=+g[b+68>>2];S=+g[b+72>>2]; -g[b+144>>2]=B+P-t-N-(I*T-H*S);g[b+148>>2]=C+Q-u-O-(H*T+I*S);g[b+152>>2]=D-v-+g[b+76>>2];if(!(a[d+24>>0]|0)){g[b+80>>2]=0;g[b+84>>2]=0;g[b+88>>2]=0;X=A;Y=G;Z=i;_=y;$=f;aa=z;ba=c[w>>2]|0;ca=c[h>>2]|0;da=ba+(ca*12|0)|0;c[da>>2]=_;ea=ba+(ca*12|0)+4|0;c[ea>>2]=aa;fa=c[w>>2]|0;ga=c[h>>2]|0;ha=fa+(ga*12|0)+8|0;g[ha>>2]=X;ia=c[l>>2]|0;ja=fa+(ia*12|0)|0;c[ja>>2]=Z;ka=fa+(ia*12|0)+4|0;c[ka>>2]=$;la=c[w>>2]|0;ma=c[l>>2]|0;na=la+(ma*12|0)+8|0;g[na>>2]=Y;return}else{v=+g[d+8>>2];d=b+80|0;D=v*+g[d>>2];g[d>>2]= -D;d=b+84|0;S=v*+g[d>>2];g[d>>2]=S;d=b+88|0;I=v*+g[d>>2];g[d>>2]=I;d=(g[j>>2]=(c[j>>2]=y,+g[j>>2])-L*D,c[j>>2]|0);y=(g[j>>2]=(c[j>>2]=z,+g[j>>2])-L*S,c[j>>2]|0);z=(g[j>>2]=(c[j>>2]=i,+g[j>>2])+K*D,c[j>>2]|0);X=A-M*(I+(S*+g[o>>2]-D*O));Y=G+J*(I+(S*P-D*Q));Z=z;_=d;$=(g[j>>2]=(c[j>>2]=f,+g[j>>2])+K*S,c[j>>2]|0);aa=y;ba=c[w>>2]|0;ca=c[h>>2]|0;da=ba+(ca*12|0)|0;c[da>>2]=_;ea=ba+(ca*12|0)+4|0;c[ea>>2]=aa;fa=c[w>>2]|0;ga=c[h>>2]|0;ha=fa+(ga*12|0)+8|0;g[ha>>2]=X;ia=c[l>>2]|0;ja=fa+(ia*12|0)|0;c[ja>>2]=Z;ka= -fa+(ia*12|0)+4|0;c[ka>>2]=$;la=c[w>>2]|0;ma=c[l>>2]|0;na=la+(ma*12|0)+8|0;g[na>>2]=Y;return}}function Ef(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,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0;d=b+32|0;e=c[d>>2]|0;f=a+104|0;h=c[f>>2]|0;i=+g[e+(h*12|0)>>2];j=+g[e+(h*12|0)+4>>2];k=+g[e+(h*12|0)+8>>2];h=a+108|0;l=c[h>>2]|0;m=+g[e+(l*12|0)>>2];n=+g[e+(l*12|0)+4>>2];o=+g[e+(l*12|0)+8>>2];p=+g[a+156>>2];q=+g[a+160>>2];r=+g[a+164>>2];s=+g[a+168>>2]; -t=+g[b>>2];u=+g[b+4>>2]*+g[a+100>>2];b=a+88|0;v=+g[b>>2];w=t*+g[a+96>>2];x=v-+g[a+188>>2]*(o-k+u*+g[a+152>>2]);y=-w;z=x>2]=w;z=w-v;v=k-r*z;k=o+s*z;z=+g[a+124>>2];o=+g[a+120>>2];w=+g[a+116>>2];y=+g[a+112>>2];x=+g[a+144>>2]*u+(w*v+(m-z*k-i));A=u*+g[a+148>>2]+(n+o*k-j-y*v);u=+g[a+176>>2]*x+ +g[a+184>>2]*A;b=a+80|0;B=+g[b>>2];l=a+84|0;D=+g[l>>2];E=B-(+g[a+172>>2]*x+ +g[a+180>>2]*A);g[b>>2]=E;A=D-u;g[l>>2]=A;u=t*+g[a+92>>2];t=A*A+E*E;if(t>u*u){x=+C(+t);t=1/x;if(x<1.1920928955078125E-7){F= -E;G=A}else{x=A*t;H=E*t;g[b>>2]=H;g[l>>2]=x;F=H;G=x}x=u*F;g[b>>2]=x;F=u*G;g[l>>2]=F;I=x;J=F}else{I=E;J=A}A=I-B;B=J-D;l=c[d>>2]|0;b=c[f>>2]|0;g[l+(b*12|0)>>2]=i-p*A;g[l+(b*12|0)+4>>2]=j-p*B;b=c[d>>2]|0;g[b+((c[f>>2]|0)*12|0)+8>>2]=v-r*(y*B-A*w);f=c[h>>2]|0;g[b+(f*12|0)>>2]=m+q*A;g[b+(f*12|0)+4>>2]=n+q*B;g[(c[d>>2]|0)+((c[h>>2]|0)*12|0)+8>>2]=k+s*(B*o-A*z);return}function Ff(a,b){a=a|0;b=b|0;return 1}function Gf(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,h=0,i=0;c[a+8>>2]=b;c[a+12>>2]=d;e=+g[d+12>>2]-+g[b+ -12>>2];f=+g[d+16>>2]-+g[b+16>>2];h=+g[b+24>>2];i=+g[b+20>>2];g[a+20>>2]=e*h+f*i;g[a+24>>2]=h*f-e*i;g[a+28>>2]=+g[d+72>>2]-+g[b+72>>2];return}function Hf(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;ch(a,b);c[a>>2]=1072;d=b+20|0;e=c[d+4>>2]|0;f=a+68|0;c[f>>2]=c[d>>2];c[f+4>>2]=e;c[a+76>>2]=c[b+28>>2];g[a+80>>2]=0;g[a+84>>2]=0;g[a+88>>2]=0;c[a+92>>2]=c[b+32>>2];c[a+96>>2]=c[b+36>>2];c[a+100>>2]=c[b+40>>2];return}function If(a,d){a=a|0;d=d|0;var f=0,h=0,i=0,j=0;f=a+68|0;if(!(+g[d>>2]!=+g[f>>2])?!(+g[d+4>>2]!=+g[a+ -72>>2]):0)return;h=c[a+48>>2]|0;i=h+4|0;j=e[i>>1]|0;if(!(j&2)){b[i>>1]=j|2;g[h+160>>2]=0}h=c[a+52>>2]|0;a=h+4|0;j=e[a>>1]|0;if(!(j&2)){b[a>>1]=j|2;g[h+160>>2]=0}h=d;d=c[h+4>>2]|0;j=f;c[j>>2]=c[h>>2];c[j+4>>2]=d;return}function Jf(a,d){a=a|0;d=+d;var f=0,h=0,i=0,j=0;f=a+76|0;if(!(+g[f>>2]!=d))return;h=c[a+48>>2]|0;i=h+4|0;j=e[i>>1]|0;if(!(j&2)){b[i>>1]=j|2;g[h+160>>2]=0}h=c[a+52>>2]|0;a=h+4|0;j=e[a>>1]|0;if(!(j&2)){b[a>>1]=j|2;g[h+160>>2]=0}g[f>>2]=d;return}function Kf(a,b){a=a|0;b=b|0;var d=0,e=0, -f=0,h=0,i=0,j=0;d=c[b+48>>2]|0;e=+g[d+24>>2];f=+g[b+80>>2];h=+g[d+20>>2];i=+g[b+84>>2];j=f*h+e*i+ +g[d+16>>2];g[a>>2]=+g[d+12>>2]+(e*f-h*i);g[a+4>>2]=j;return}function Lf(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0,i=0,j=0;d=c[b+52>>2]|0;e=+g[d+24>>2];f=+g[b+88>>2];h=+g[d+20>>2];i=+g[b+92>>2];j=f*h+e*i+ +g[d+16>>2];g[a>>2]=+g[d+12>>2]+(e*f-h*i);g[a+4>>2]=j;return}function Mf(a,b,c){a=a|0;b=b|0;c=+c;var d=0;d=+g[b+100>>2]*c;c=d*+g[b+120>>2];g[a>>2]=+g[b+116>>2]*d;g[a+4>>2]=c;return}function Nf(a,b){a=a|0; -b=+b;return 0}function Of(a){a=a|0;var b=0,e=0,f=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;b=l;l=l+96|0;e=b+88|0;f=b+80|0;i=b+72|0;j=b+64|0;k=b+48|0;m=b+32|0;n=b+24|0;o=b+16|0;p=b+8|0;q=c[(c[a+48>>2]|0)+8>>2]|0;r=c[(c[a+52>>2]|0)+8>>2]|0;am(3178,b);c[p>>2]=q;am(4137,p);c[o>>2]=r;am(4163,o);c[n>>2]=d[a+61>>0];am(4189,n);s=+g[a+84>>2];h[m>>3]=+g[a+80>>2];h[m+8>>3]=s;am(4310,m);s=+g[a+92>>2];h[k>>3]=+g[a+88>>2];h[k+8>>3]=s;am(4352,k);h[j>>3]=+g[a+104>>2];am(3204,j);h[i>>3]=+g[a+68>>2];am(4039,i);h[f>> -3]=+g[a+72>>2];am(4068,f);c[e>>2]=c[a+56>>2];am(4467,e);l=b;return}function Pf(a){a=a|0;fn(a);return}function Qf(b,d){b=b|0;d=d|0;var e=0,f=0,h=0,i=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,D=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;e=c[b+48>>2]|0;f=c[e+8>>2]|0;h=b+108|0;c[h>>2]=f;i=c[b+52>>2]|0;k=c[i+8>>2]|0;l=b+112|0;c[l>>2]=k;m=e+44|0;n=c[m>>2]|0;o=c[m+4>> -2]|0;m=b+140|0;c[m>>2]=n;c[m+4>>2]=o;m=i+44|0;p=c[m>>2]|0;q=c[m+4>>2]|0;m=b+148|0;c[m>>2]=p;c[m+4>>2]=q;m=b+156|0;c[m>>2]=c[e+136>>2];r=b+160|0;c[r>>2]=c[i+136>>2];s=b+164|0;c[s>>2]=c[e+144>>2];e=b+168|0;c[e>>2]=c[i+144>>2];i=c[d+28>>2]|0;t=+g[i+(f*12|0)>>2];u=+g[i+(f*12|0)+4>>2];v=+g[i+(f*12|0)+8>>2];w=d+32|0;x=c[w>>2]|0;y=c[x+(f*12|0)>>2]|0;z=c[x+(f*12|0)+4>>2]|0;A=+g[x+(f*12|0)+8>>2];B=+g[i+(k*12|0)>>2];D=+g[i+(k*12|0)+4>>2];G=+g[i+(k*12|0)+8>>2];i=c[x+(k*12|0)>>2]|0;f=c[x+(k*12|0)+4>>2]|0;H=+g[x+ -(k*12|0)+8>>2];I=+F(+v);J=+E(+v);v=+F(+G);K=+E(+G);G=+g[b+80>>2]-(c[j>>2]=n,+g[j>>2]);L=+g[b+84>>2]-(c[j>>2]=o,+g[j>>2]);M=J*G-I*L;N=I*G+J*L;g[b+124>>2]=M;g[b+128>>2]=N;L=+g[b+88>>2]-(c[j>>2]=p,+g[j>>2]);J=+g[b+92>>2]-(c[j>>2]=q,+g[j>>2]);G=K*L-v*J;I=v*L+K*J;g[b+132>>2]=G;g[b+136>>2]=I;J=B+G-t-M;t=D+I-u-N;q=b+116|0;g[q>>2]=J;p=b+120|0;g[p>>2]=t;u=+C(+(J*J+t*t));if(u>.004999999888241291){D=1/u;B=J*D;g[q>>2]=B;O=D*t;P=B}else{g[q>>2]=0;O=0;P=0}g[p>>2]=O;B=O*M-N*P;t=O*G-P*I;D=+g[m>>2];J=+g[s>>2];K=+g[r>> -2];L=+g[e>>2];v=K+(D+B*(B*J))+t*(t*L);t=v!=0?1/v:0;e=b+172|0;g[e>>2]=t;B=+g[b+68>>2];if(B>0){Q=B*6.2831854820251465;B=Q*(Q*t);R=+g[d>>2];S=R*(Q*(t*2*+g[b+72>>2])+B*R);t=S!=0?1/S:0;S=B*((u-+g[b+104>>2])*R)*t;R=v+t;g[e>>2]=R!=0?1/R:0;T=S;U=t}else{T=0;U=0}g[b+96>>2]=U;g[b+76>>2]=T;if(!(a[d+24>>0]|0)){g[b+100>>2]=0;V=A;W=H;X=i;Y=y;Z=f;_=z;$=c[w>>2]|0;aa=c[h>>2]|0;ba=$+(aa*12|0)|0;c[ba>>2]=Y;ca=$+(aa*12|0)+4|0;c[ca>>2]=_;da=c[w>>2]|0;ea=c[h>>2]|0;fa=da+(ea*12|0)+8|0;g[fa>>2]=V;ga=c[l>>2]|0;ha=da+(ga*12| -0)|0;c[ha>>2]=X;ia=da+(ga*12|0)+4|0;c[ia>>2]=Z;ja=c[w>>2]|0;ka=c[l>>2]|0;la=ja+(ka*12|0)+8|0;g[la>>2]=W;return}else{e=b+100|0;T=+g[d+8>>2]*+g[e>>2];g[e>>2]=T;U=T*P;P=T*O;e=(g[j>>2]=(c[j>>2]=y,+g[j>>2])-U*D,c[j>>2]|0);y=(g[j>>2]=(c[j>>2]=z,+g[j>>2])-P*D,c[j>>2]|0);z=(g[j>>2]=(c[j>>2]=i,+g[j>>2])+U*K,c[j>>2]|0);V=A-J*(P*M-U*N);W=H+L*(P*G-U*I);X=z;Y=e;Z=(g[j>>2]=(c[j>>2]=f,+g[j>>2])+P*K,c[j>>2]|0);_=y;$=c[w>>2]|0;aa=c[h>>2]|0;ba=$+(aa*12|0)|0;c[ba>>2]=Y;ca=$+(aa*12|0)+4|0;c[ca>>2]=_;da=c[w>>2]|0;ea= -c[h>>2]|0;fa=da+(ea*12|0)+8|0;g[fa>>2]=V;ga=c[l>>2]|0;ha=da+(ga*12|0)|0;c[ha>>2]=X;ia=da+(ga*12|0)+4|0;c[ia>>2]=Z;ja=c[w>>2]|0;ka=c[l>>2]|0;la=ja+(ka*12|0)+8|0;g[la>>2]=W;return}}function Rf(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,s=0,t=0,u=0,v=0,w=0,x=0,y=0;d=b+32|0;b=c[d>>2]|0;e=a+108|0;f=c[e>>2]|0;h=b+(f*12|0)|0;i=+g[h>>2];j=b+(f*12|0)+4|0;k=+g[j>>2];l=+g[b+(f*12|0)+8>>2];f=a+112|0;m=c[f>>2]|0;n=+g[b+(m*12|0)>>2];o=+g[b+(m*12|0)+4>>2];p=+g[b+(m*12|0)+8>>2]; -q=+g[a+128>>2];r=+g[a+124>>2];s=+g[a+136>>2];t=+g[a+132>>2];u=+g[a+116>>2];v=+g[a+120>>2];m=a+100|0;w=+g[m>>2];x=+g[a+172>>2]*(+g[a+76>>2]+(u*(n-p*s-(i-l*q))+v*(o+p*t-(k+l*r)))+ +g[a+96>>2]*w);y=-x;g[m>>2]=w-x;x=u*y;u=v*y;y=+g[a+156>>2];v=l-+g[a+164>>2]*(u*r-x*q);q=+g[a+160>>2];r=p+ +g[a+168>>2]*(u*t-x*s);g[h>>2]=i-x*y;g[j>>2]=k-u*y;j=c[d>>2]|0;g[j+((c[e>>2]|0)*12|0)+8>>2]=v;e=c[f>>2]|0;g[j+(e*12|0)>>2]=n+x*q;g[j+(e*12|0)+4>>2]=o+u*q;g[(c[d>>2]|0)+((c[f>>2]|0)*12|0)+8>>2]=r;return}function Sf(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,s=0,t=0,u=0,v=0,w=0,x=0,y=0;if(+g[a+68>>2]>0){d=1;return d|0}e=b+28|0;b=c[e>>2]|0;f=a+108|0;h=c[f>>2]|0;i=+g[b+(h*12|0)>>2];j=+g[b+(h*12|0)+4>>2];k=+g[b+(h*12|0)+8>>2];h=a+112|0;l=c[h>>2]|0;m=+g[b+(l*12|0)>>2];n=+g[b+(l*12|0)+4>>2];o=+g[b+(l*12|0)+8>>2];p=+F(+k);q=+E(+k);r=+F(+o);s=+E(+o);t=+g[a+80>>2]-+g[a+140>>2];u=+g[a+84>>2]-+g[a+144>>2];v=q*t-p*u;w=p*t+q*u;u=+g[a+88>>2]-+g[a+148>>2];q=+g[a+92>>2]-+g[a+152>>2];t=s*u-r*q;p=r* -u+s*q;q=m+t-i-v;s=n+p-j-w;u=+C(+(q*q+s*s));l=u<1.1920928955078125E-7;r=1/u;x=(l?0:u)-+g[a+104>>2];u=x<.20000000298023224?x:.20000000298023224;x=u<-.20000000298023224?-.20000000298023224:u;u=-(+g[a+172>>2]*x);y=(l?q:r*q)*u;q=(l?s:r*s)*u;u=+g[a+156>>2];s=k-+g[a+164>>2]*(v*q-w*y);w=+g[a+160>>2];v=o+ +g[a+168>>2]*(t*q-p*y);a=c[e>>2]|0;l=c[f>>2]|0;g[a+(l*12|0)>>2]=i-u*y;g[a+(l*12|0)+4>>2]=j-u*q;l=c[e>>2]|0;g[l+((c[f>>2]|0)*12|0)+8>>2]=s;f=c[h>>2]|0;g[l+(f*12|0)>>2]=m+w*y;g[l+(f*12|0)+4>>2]=n+w*q;g[(c[e>> -2]|0)+((c[h>>2]|0)*12|0)+8>>2]=v;d=(x>0?x:-x)<.004999999888241291;return d|0}function Tf(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var h=0,i=0,j=0,k=0,l=0;c[a+8>>2]=b;c[a+12>>2]=d;h=+g[e>>2]-+g[b+12>>2];i=e+4|0;j=+g[i>>2]-+g[b+16>>2];k=+g[b+24>>2];l=+g[b+20>>2];g[a+20>>2]=h*k+j*l;g[a+24>>2]=k*j-h*l;l=+g[f>>2]-+g[d+12>>2];b=f+4|0;h=+g[b>>2]-+g[d+16>>2];j=+g[d+24>>2];k=+g[d+20>>2];g[a+28>>2]=l*j+h*k;g[a+32>>2]=j*h-l*k;k=+g[f>>2]-+g[e>>2];l=+g[b>>2]-+g[i>>2];g[a+36>>2]=+C(+(k*k+l*l));return}function Uf(a, -b){a=a|0;b=b|0;var d=0,e=0,f=0;ch(a,b);c[a>>2]=1124;d=b+20|0;e=c[d+4>>2]|0;f=a+80|0;c[f>>2]=c[d>>2];c[f+4>>2]=e;e=b+28|0;f=c[e+4>>2]|0;d=a+88|0;c[d>>2]=c[e>>2];c[d+4>>2]=f;c[a+104>>2]=c[b+36>>2];c[a+68>>2]=c[b+40>>2];c[a+72>>2]=c[b+44>>2];g[a+100>>2]=0;g[a+96>>2]=0;g[a+76>>2]=0;return}function Vf(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0,i=0,j=0;d=c[b+48>>2]|0;e=+g[d+24>>2];f=+g[b+68>>2];h=+g[d+20>>2];i=+g[b+72>>2];j=f*h+e*i+ +g[d+16>>2];g[a>>2]=+g[d+12>>2]+(e*f-h*i);g[a+4>>2]=j;return}function Wf(a,b){a= -a|0;b=b|0;var d=0,e=0,f=0,h=0,i=0,j=0;d=c[b+52>>2]|0;e=+g[d+24>>2];f=+g[b+76>>2];h=+g[d+20>>2];i=+g[b+80>>2];j=f*h+e*i+ +g[d+16>>2];g[a>>2]=+g[d+12>>2]+(e*f-h*i);g[a+4>>2]=j;return}function Xf(a,b,c){a=a|0;b=b|0;c=+c;var d=0;d=+g[b+88>>2]*c;g[a>>2]=+g[b+84>>2]*c;g[a+4>>2]=d;return}function Yf(a,b){a=a|0;b=+b;return+(+g[a+92>>2]*b)}function Zf(a){a=a|0;var b=0,e=0,f=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0;b=l;l=l+96|0;e=b+80|0;f=b+72|0;i=b+64|0;j=b+48|0;k=b+32|0;m=b+24|0;n=b+16|0;o=b+8|0;p=c[(c[a+48>> -2]|0)+8>>2]|0;q=c[(c[a+52>>2]|0)+8>>2]|0;am(3246,b);c[o>>2]=p;am(4137,o);c[n>>2]=q;am(4163,n);c[m>>2]=d[a+61>>0];am(4189,m);r=+g[a+72>>2];h[k>>3]=+g[a+68>>2];h[k+8>>3]=r;am(4310,k);r=+g[a+80>>2];h[j>>3]=+g[a+76>>2];h[j+8>>3]=r;am(4352,j);h[i>>3]=+g[a+96>>2];am(3272,i);h[f>>3]=+g[a+100>>2];am(3298,f);c[e>>2]=c[a+56>>2];am(4467,e);l=b;return}function _f(a){a=a|0;fn(a);return}function $f(b,d){b=b|0;d=d|0;var e=0,f=0,h=0,i=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,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;e=c[b+48>>2]|0;f=c[e+8>>2]|0;h=b+104|0;c[h>>2]=f;i=c[b+52>>2]|0;k=c[i+8>>2]|0;l=b+108|0;c[l>>2]=k;m=e+44|0;n=c[m>>2]|0;o=c[m+4>>2]|0;m=b+128|0;c[m>>2]=n;c[m+4>>2]=o;m=i+44|0;p=c[m>>2]|0;q=c[m+4>>2]|0;m=b+136|0;c[m>>2]=p;c[m+4>>2]=q;m=c[e+136>>2]|0;c[b+144>>2]=m;r=c[i+136>>2]|0;c[b+148>>2]=r;s=c[e+144>>2]|0;c[b+152>>2]=s;e=c[i+144>>2]|0;c[b+156>>2]=e;i=c[d+28>>2]|0;t=+g[i+(f*12| -0)+8>>2];u=d+32|0;v=c[u>>2]|0;w=c[v+(f*12|0)>>2]|0;x=c[v+(f*12|0)+4>>2]|0;y=+g[v+(f*12|0)+8>>2];z=+g[i+(k*12|0)+8>>2];i=c[v+(k*12|0)>>2]|0;f=c[v+(k*12|0)+4>>2]|0;A=+g[v+(k*12|0)+8>>2];B=+F(+t);C=+E(+t);t=+F(+z);D=+E(+z);z=+g[b+68>>2]-(c[j>>2]=n,+g[j>>2]);G=+g[b+72>>2]-(c[j>>2]=o,+g[j>>2]);H=C*z-B*G;I=B*z+C*G;g[b+112>>2]=H;g[b+116>>2]=I;G=+g[b+76>>2]-(c[j>>2]=p,+g[j>>2]);C=+g[b+80>>2]-(c[j>>2]=q,+g[j>>2]);z=D*G-t*C;B=t*G+D*C;g[b+120>>2]=z;g[b+124>>2]=B;C=(c[j>>2]=m,+g[j>>2]);D=(c[j>>2]=r,+g[j>>2]); -G=(c[j>>2]=s,+g[j>>2]);t=(c[j>>2]=e,+g[j>>2]);J=C+D;K=J+I*(G*I)+B*(t*B);L=G*H;M=t*z;N=-(I*L)-B*M;O=J+H*L+z*M;M=K*O-N*N;L=M!=0?1/M:M;M=-(N*L);g[b+160>>2]=O*L;g[b+164>>2]=M;g[b+168>>2]=M;g[b+172>>2]=K*L;L=G+t;g[b+176>>2]=L>0?1/L:L;if(!(a[d+24>>0]|0)){g[b+84>>2]=0;g[b+88>>2]=0;g[b+92>>2]=0;P=y;Q=A;R=i;S=w;T=f;U=x;V=c[u>>2]|0;W=c[h>>2]|0;X=V+(W*12|0)|0;c[X>>2]=S;Y=V+(W*12|0)+4|0;c[Y>>2]=U;Z=c[u>>2]|0;_=c[h>>2]|0;$=Z+(_*12|0)+8|0;g[$>>2]=P;aa=c[l>>2]|0;ba=Z+(aa*12|0)|0;c[ba>>2]=R;ca=Z+(aa*12|0)+4|0;c[ca>> -2]=T;da=c[u>>2]|0;ea=c[l>>2]|0;fa=da+(ea*12|0)+8|0;g[fa>>2]=Q;return}else{L=+g[d+8>>2];d=b+84|0;K=L*+g[d>>2];g[d>>2]=K;d=b+88|0;M=L*+g[d>>2];g[d>>2]=M;d=b+92|0;O=L*+g[d>>2];g[d>>2]=O;d=(g[j>>2]=(c[j>>2]=w,+g[j>>2])-C*K,c[j>>2]|0);w=(g[j>>2]=(c[j>>2]=x,+g[j>>2])-C*M,c[j>>2]|0);x=(g[j>>2]=(c[j>>2]=i,+g[j>>2])+D*K,c[j>>2]|0);P=y-G*(O+(M*H-K*I));Q=A+t*(O+(M*z-K*B));R=x;S=d;T=(g[j>>2]=(c[j>>2]=f,+g[j>>2])+D*M,c[j>>2]|0);U=w;V=c[u>>2]|0;W=c[h>>2]|0;X=V+(W*12|0)|0;c[X>>2]=S;Y=V+(W*12|0)+4|0;c[Y>>2]=U;Z= -c[u>>2]|0;_=c[h>>2]|0;$=Z+(_*12|0)+8|0;g[$>>2]=P;aa=c[l>>2]|0;ba=Z+(aa*12|0)|0;c[ba>>2]=R;ca=Z+(aa*12|0)+4|0;c[ca>>2]=T;da=c[u>>2]|0;ea=c[l>>2]|0;fa=da+(ea*12|0)+8|0;g[fa>>2]=Q;return}}function mj(a,b,d){a=a|0;b=b|0;d=+d;var e=0,f=0,h=0,i=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;e=c[a+104>>2]|0;if(c[e+102876>>2]&2|0)return;f=a+12|0;h=+F(+d);g[a+20>>2]=h;i=+E(+d);g[a+24>>2]=i;k=b;b=c[k>>2]|0;l=c[k+4>>2]|0;k=f;c[k>>2]=b;c[k+4>>2]=l;k=a+28|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];m=+g[a+44>>2];n=+g[a+48>>2];o=(c[j>>2]=b,+g[j>>2])+(i*m-h*n);p=m*h+i*n+(c[j>>2]=l,+g[j>>2]);l=a+60|0;g[l>>2]=o;g[a+64>>2]=p;g[a+72>>2]=d;b=l;l=c[b+4>>2]|0;k=a+52|0;c[k>>2]=c[b>>2];c[k+4>>2]=l;g[a+68>>2]=d;l=e+102880|0;e=c[a+116>>2]|0;if(!e)return;else q=e;do{Oi(q,l,f,f);q=c[q+4>>2]|0}while((q|0)!=0);return}function nj(a,c){a=a|0;c=c|0;var d=0,f=0;d=a+4|0;f=e[d>>1]|0;if(!((f&16|0)!=0^c))return;b[d>>1]=c?f|16:f&65519;g[a+88>>2]=0;gj(a);return}function oj(a){a=a|0;fn(a);return}function pj(a,b){a= -a|0;b=b|0;return}function qj(a,b){a=a|0;b=b|0;return}function rj(a,b,c){a=a|0;b=b|0;c=c|0;return}function sj(a,b,c){a=a|0;b=b|0;c=c|0;return}function tj(a){a=a|0;Ae(a);c[a+60>>2]=0;c[a+64>>2]=0;c[a+68>>2]=1796;c[a+72>>2]=1800;c[a+76>>2]=0;return}function uj(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;d=c[(c[b+48>>2]|0)+8>>2]|0;e=c[(c[b+52>>2]|0)+8>>2]|0;f=c[a+72>>2]|0;if(f|0?c[b+4>>2]&2|0:0)Ra[c[(c[f>>2]|0)+12>>2]&63](f,b);f=c[b+8>>2]|0;g=b+12|0;if(f|0)c[f+12>>2]=c[g>>2];h=c[g>>2]| -0;if(h|0)c[h+8>>2]=f;f=a+60|0;if((c[f>>2]|0)==(b|0))c[f>>2]=h;h=c[b+24>>2]|0;f=b+28|0;if(h|0)c[h+12>>2]=c[f>>2];g=c[f>>2]|0;if(g|0)c[g+8>>2]=h;h=d+128|0;if((b+16|0)==(c[h>>2]|0))c[h>>2]=g;g=c[b+40>>2]|0;h=b+44|0;if(g|0)c[g+12>>2]=c[h>>2];d=c[h>>2]|0;if(d|0)c[d+8>>2]=g;g=e+128|0;if((b+32|0)!=(c[g>>2]|0)){i=a+76|0;j=c[i>>2]|0;_h(b,j);k=a+64|0;l=c[k>>2]|0;m=l+-1|0;c[k>>2]=m;return}c[g>>2]=d;i=a+76|0;j=c[i>>2]|0;_h(b,j);k=a+64|0;l=c[k>>2]|0;m=l+-1|0;c[k>>2]=m;return}function vj(a){a=a|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,s=0,t=0,u=0;d=c[a+60>>2]|0;if(!d)return;e=a+4|0;f=a+72|0;h=a+68|0;i=d;while(1){d=c[i+48>>2]|0;j=c[i+52>>2]|0;k=c[i+56>>2]|0;l=c[i+60>>2]|0;m=c[d+8>>2]|0;n=c[j+8>>2]|0;o=i+4|0;do if(!(c[o>>2]&8))p=10;else{if(!(lj(n,m)|0)){q=c[i+12>>2]|0;uj(a,i);r=q;break}q=c[h>>2]|0;if(q|0?!(Sa[c[(c[q>>2]|0)+8>>2]&15](q,d,j)|0):0){q=c[i+12>>2]|0;uj(a,i);r=q;break}c[o>>2]=c[o>>2]&-9;p=10}while(0);do if((p|0)==10){p=0;if(!(b[m+4>>1]&2))s=0;else s=(c[m>>2]|0)!=0;if(!(b[n+ -4>>1]&2))t=0;else t=(c[n>>2]|0)!=0;if(!(s|t)){r=c[i+12>>2]|0;break}o=c[(c[d+24>>2]|0)+(k*28|0)+24>>2]|0;q=c[(c[j+24>>2]|0)+(l*28|0)+24>>2]|0;u=c[e>>2]|0;if((+g[u+(q*36|0)>>2]-+g[u+(o*36|0)+8>>2]>0?1:+g[u+(q*36|0)+4>>2]-+g[u+(o*36|0)+12>>2]>0)|+g[u+(o*36|0)>>2]-+g[u+(q*36|0)+8>>2]>0|+g[u+(o*36|0)+4>>2]-+g[u+(q*36|0)+12>>2]>0){q=c[i+12>>2]|0;uj(a,i);r=q;break}else{bi(i,c[f>>2]|0);r=c[i+12>>2]|0;break}}while(0);if(!r)break;else i=r}return}function wj(a){a=a|0;xj(a,a);return}function xj(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,m=0,n=0,o=0,p=0,q=0;d=l;l=l+16|0;e=d;f=a+52|0;c[f>>2]=0;g=a+40|0;h=c[g>>2]|0;if((h|0)>0){i=a+32|0;j=a+56|0;k=a+4|0;m=0;n=h;while(1){h=c[(c[i>>2]|0)+(m<<2)>>2]|0;c[j>>2]=h;if((h|0)==-1)o=n;else{Aj(a,a,(c[k>>2]|0)+(h*36|0)|0);o=c[g>>2]|0}m=m+1|0;if((m|0)>=(o|0))break;else n=o}p=c[f>>2]|0}else p=0;c[g>>2]=0;g=a+44|0;o=c[g>>2]|0;c[e>>2]=26;zj(o,o+(p<<3)|0,e);if((c[f>>2]|0)<=0){l=d;return}e=a+4|0;a=0;while(1){p=c[g>>2]|0;o=p+(a<<3)|0;n=c[e>>2]|0;m=p+(a<<3)+4|0;Bj(b, -c[n+((c[o>>2]|0)*36|0)+16>>2]|0,c[n+((c[m>>2]|0)*36|0)+16>>2]|0);n=c[f>>2]|0;p=a+1|0;while(1){if((p|0)>=(n|0)){q=p;break}k=c[g>>2]|0;if((c[k+(p<<3)>>2]|0)!=(c[o>>2]|0)){q=p;break}j=(c[k+(p<<3)+4>>2]|0)==(c[m>>2]|0);k=(j&1)+p|0;if(j)p=k;else{q=k;break}}if((q|0)<(n|0))a=q;else break}l=d;return}function yj(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=c[a>>2]|0;e=c[b>>2]|0;if((d|0)<(e|0)){f=1;return f|0}if((d|0)!=(e|0)){f=0;return f|0}f=(c[a+4>>2]|0)<(c[b+4>>2]|0);return f|0}function zj(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,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;e=a;a=b;a:while(1){b=a;f=a+-8|0;g=e;while(1){h=g;b:while(1){i=h;j=b-i|0;k=j>>3;switch(k|0){case 2:{l=5;break a;break}case 3:{l=7;break a;break}case 4:{l=15;break a;break}case 5:{l=16;break a;break}case 1:case 0:{l=68;break a;break}default:{}}if((j|0)<248){l=22;break a}m=h+(((k|0)/2|0)<<3)|0;do if((j|0)>7992){n=(k|0)/4|0;o=h+(n<<3)|0;p=m+(n<<3)|0;n=Cj(h, -o,m,p,d)|0;if(Ya[c[d>>2]&31](f,p)|0){q=p;r=c[q>>2]|0;s=c[q+4>>2]|0;q=f;t=c[q+4>>2]|0;u=p;c[u>>2]=c[q>>2];c[u+4>>2]=t;t=f;c[t>>2]=r;c[t+4>>2]=s;s=n+1|0;if(Ya[c[d>>2]&31](p,m)|0){t=m;r=c[t>>2]|0;u=c[t+4>>2]|0;t=p;q=c[t+4>>2]|0;v=m;c[v>>2]=c[t>>2];c[v+4>>2]=q;q=p;c[q>>2]=r;c[q+4>>2]=u;u=n+2|0;if(Ya[c[d>>2]&31](m,o)|0){q=o;r=c[q>>2]|0;p=c[q+4>>2]|0;q=m;v=c[q+4>>2]|0;t=o;c[t>>2]=c[q>>2];c[t+4>>2]=v;v=m;c[v>>2]=r;c[v+4>>2]=p;if(Ya[c[d>>2]&31](o,h)|0){p=h;v=c[p>>2]|0;r=c[p+4>>2]|0;p=o;t=c[p+4>>2]|0;q=h; -c[q>>2]=c[p>>2];c[q+4>>2]=t;t=o;c[t>>2]=v;c[t+4>>2]=r;w=n+4|0}else w=n+3|0}else w=u}else w=s}else w=n}else{n=Ya[c[d>>2]&31](m,h)|0;s=Ya[c[d>>2]&31](f,m)|0;if(!n){if(!s){w=0;break}n=m;u=c[n>>2]|0;r=c[n+4>>2]|0;n=f;t=c[n+4>>2]|0;v=m;c[v>>2]=c[n>>2];c[v+4>>2]=t;t=f;c[t>>2]=u;c[t+4>>2]=r;if(!(Ya[c[d>>2]&31](m,h)|0)){w=1;break}r=h;t=c[r>>2]|0;u=c[r+4>>2]|0;r=m;v=c[r+4>>2]|0;n=h;c[n>>2]=c[r>>2];c[n+4>>2]=v;v=m;c[v>>2]=t;c[v+4>>2]=u;w=2;break}u=h;v=c[u>>2]|0;t=c[u+4>>2]|0;if(s){s=f;u=c[s+4>>2]|0;n=h;c[n>> -2]=c[s>>2];c[n+4>>2]=u;u=f;c[u>>2]=v;c[u+4>>2]=t;w=1;break}u=m;n=c[u+4>>2]|0;s=h;c[s>>2]=c[u>>2];c[s+4>>2]=n;n=m;c[n>>2]=v;c[n+4>>2]=t;if(Ya[c[d>>2]&31](f,m)|0){t=m;n=c[t>>2]|0;v=c[t+4>>2]|0;t=f;s=c[t+4>>2]|0;u=m;c[u>>2]=c[t>>2];c[u+4>>2]=s;s=f;c[s>>2]=n;c[s+4>>2]=v;w=2}else w=1}while(0);if(Ya[c[d>>2]&31](h,m)|0){x=f;y=w;break}else z=f;while(1){z=z+-8|0;if((h|0)==(z|0))break;if(Ya[c[d>>2]&31](z,m)|0){l=51;break b}}k=h+8|0;if(Ya[c[d>>2]&31](h,f)|0)A=k;else{if((k|0)==(f|0)){l=68;break a}else B=k;while(1){if(Ya[c[d>> -2]&31](h,B)|0)break;k=B+8|0;if((k|0)==(f|0)){l=68;break a}else B=k}k=B;j=c[k>>2]|0;v=c[k+4>>2]|0;k=f;s=c[k+4>>2]|0;n=B;c[n>>2]=c[k>>2];c[n+4>>2]=s;s=f;c[s>>2]=j;c[s+4>>2]=v;A=B+8|0}if((A|0)==(f|0)){l=68;break a}else{C=f;D=A}while(1){v=D;while(1){E=v+8|0;if(Ya[c[d>>2]&31](h,v)|0){F=C;break}else v=E}do F=F+-8|0;while(Ya[c[d>>2]&31](h,F)|0);if(v>>>0>=F>>>0){h=v;continue b}s=v;j=c[s>>2]|0;n=c[s+4>>2]|0;s=F;k=c[s+4>>2]|0;u=v;c[u>>2]=c[s>>2];c[u+4>>2]=k;k=F;c[k>>2]=j;c[k+4>>2]=n;C=F;D=E}}if((l|0)==51){l= -0;n=h;k=c[n>>2]|0;j=c[n+4>>2]|0;n=z;u=c[n+4>>2]|0;s=h;c[s>>2]=c[n>>2];c[s+4>>2]=u;u=z;c[u>>2]=k;c[u+4>>2]=j;x=z;y=w+1|0}j=h+8|0;c:do if(j>>>0>>0){u=m;k=x;s=j;n=y;while(1){t=s;while(1){G=t+8|0;if(Ya[c[d>>2]&31](t,u)|0)t=G;else{H=k;break}}do H=H+-8|0;while(!(Ya[c[d>>2]&31](H,u)|0));if(t>>>0>H>>>0){I=u;J=n;K=t;break c}v=t;r=c[v>>2]|0;o=c[v+4>>2]|0;v=H;q=c[v+4>>2]|0;p=t;c[p>>2]=c[v>>2];c[p+4>>2]=q;q=H;c[q>>2]=r;c[q+4>>2]=o;u=(u|0)==(t|0)?H:u;k=H;s=G;n=n+1|0}}else{I=m;J=y;K=j}while(0);if((K|0)!=(I| -0)?Ya[c[d>>2]&31](I,K)|0:0){j=K;n=c[j>>2]|0;s=c[j+4>>2]|0;j=I;k=c[j+4>>2]|0;u=K;c[u>>2]=c[j>>2];c[u+4>>2]=k;k=I;c[k>>2]=n;c[k+4>>2]=s;L=J+1|0}else L=J;if(!L){M=Ej(h,K,d)|0;s=K+8|0;if(Ej(s,a,d)|0){l=67;break}if(M){g=s;continue}}s=K;if((s-i|0)>=(b-s|0)){l=66;break}zj(h,K,d);g=K+8|0}if((l|0)==66){l=0;zj(K+8|0,a,d);e=h;a=K;continue}else if((l|0)==67){l=0;if(M){l=68;break}else{e=h;a=K;continue}}}if((l|0)==5){if(!(Ya[c[d>>2]&31](f,h)|0))return;K=h;e=c[K>>2]|0;M=c[K+4>>2]|0;K=f;i=c[K+4>>2]|0;L=h;c[L>>2]= -c[K>>2];c[L+4>>2]=i;i=f;c[i>>2]=e;c[i+4>>2]=M;return}else if((l|0)==7){M=h+8|0;i=Ya[c[d>>2]&31](M,h)|0;e=Ya[c[d>>2]&31](f,M)|0;if(!i){if(!e)return;i=M;L=c[i>>2]|0;K=c[i+4>>2]|0;i=f;J=c[i+4>>2]|0;I=M;c[I>>2]=c[i>>2];c[I+4>>2]=J;J=f;c[J>>2]=L;c[J+4>>2]=K;if(!(Ya[c[d>>2]&31](M,h)|0))return;K=h;J=c[K>>2]|0;L=c[K+4>>2]|0;K=M;I=c[K+4>>2]|0;i=h;c[i>>2]=c[K>>2];c[i+4>>2]=I;I=M;c[I>>2]=J;c[I+4>>2]=L;return}L=h;I=c[L>>2]|0;J=c[L+4>>2]|0;if(e){e=f;L=c[e+4>>2]|0;i=h;c[i>>2]=c[e>>2];c[i+4>>2]=L;L=f;c[L>>2]=I; -c[L+4>>2]=J;return}L=M;i=c[L+4>>2]|0;e=h;c[e>>2]=c[L>>2];c[e+4>>2]=i;i=M;c[i>>2]=I;c[i+4>>2]=J;if(!(Ya[c[d>>2]&31](f,M)|0))return;J=M;i=c[J>>2]|0;I=c[J+4>>2]|0;J=f;e=c[J+4>>2]|0;L=M;c[L>>2]=c[J>>2];c[L+4>>2]=e;e=f;c[e>>2]=i;c[e+4>>2]=I;return}else if((l|0)==15){Cj(h,h+8|0,h+16|0,f,d)|0;return}else if((l|0)==16){I=h+8|0;e=h+16|0;i=h+24|0;Cj(h,I,e,i,d)|0;if(!(Ya[c[d>>2]&31](f,i)|0))return;L=i;J=c[L>>2]|0;M=c[L+4>>2]|0;L=f;K=c[L+4>>2]|0;y=i;c[y>>2]=c[L>>2];c[y+4>>2]=K;K=f;c[K>>2]=J;c[K+4>>2]=M;if(!(Ya[c[d>> -2]&31](i,e)|0))return;M=e;K=c[M>>2]|0;J=c[M+4>>2]|0;M=i;f=c[M+4>>2]|0;y=e;c[y>>2]=c[M>>2];c[y+4>>2]=f;f=i;c[f>>2]=K;c[f+4>>2]=J;if(!(Ya[c[d>>2]&31](e,I)|0))return;J=I;f=c[J>>2]|0;K=c[J+4>>2]|0;J=e;i=c[J+4>>2]|0;y=I;c[y>>2]=c[J>>2];c[y+4>>2]=i;i=e;c[i>>2]=f;c[i+4>>2]=K;if(!(Ya[c[d>>2]&31](I,h)|0))return;K=h;i=c[K>>2]|0;f=c[K+4>>2]|0;K=I;e=c[K+4>>2]|0;y=h;c[y>>2]=c[K>>2];c[y+4>>2]=e;e=I;c[e>>2]=i;c[e+4>>2]=f;return}else if((l|0)==22){Dj(h,a,d);return}else if((l|0)==68)return}function Aj(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,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;e=l;l=l+1040|0;f=e;h=f+4|0;c[f>>2]=h;i=f+1028|0;j=f+1032|0;c[j>>2]=256;c[h>>2]=c[a>>2];c[i>>2]=1;k=a+4|0;a=d+4|0;m=d+8|0;n=d+12|0;o=1;p=h;a:while(1){q=o+-1|0;c[i>>2]=q;r=c[p+(q<<2)>>2]|0;do if((r|0)!=-1?(s=c[k>>2]|0,!((+g[d>>2]-+g[s+(r*36|0)+8>>2]>0?1:+g[a>>2]-+g[s+(r*36|0)+12>>2]>0)|+g[s+(r*36|0)>>2]-+g[m>>2]>0|+g[s+(r*36|0)+4>>2]-+g[n>>2]>0)):0){t=s+(r*36|0)+24|0;if((c[t>>2]|0)==-1){if(!(Ge(b,r)|0))break a;u=c[i>> -2]|0;break}if((q|0)==(c[j>>2]|0)?(c[j>>2]=q<<1,v=_l(q<<3)|0,c[f>>2]=v,Qn(v|0,p|0,c[i>>2]<<2|0)|0,(p|0)!=(h|0)):0)$l(p);v=c[f>>2]|0;c[v+(c[i>>2]<<2)>>2]=c[t>>2];t=(c[i>>2]|0)+1|0;c[i>>2]=t;w=s+(r*36|0)+28|0;if((t|0)==(c[j>>2]|0)?(c[j>>2]=t<<1,s=_l(t<<3)|0,c[f>>2]=s,Qn(s|0,v|0,c[i>>2]<<2|0)|0,(v|0)!=(h|0)):0)$l(v);c[(c[f>>2]|0)+(c[i>>2]<<2)>>2]=c[w>>2];w=(c[i>>2]|0)+1|0;c[i>>2]=w;u=w}else u=q;while(0);if((u|0)<=0)break;o=u;p=c[f>>2]|0}p=c[f>>2]|0;if((p|0)==(h|0)){l=e;return}$l(p);c[f>>2]=0;l=e;return} -function Bj(d,f,h){d=d|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=c[f+16>>2]|0;j=c[h+16>>2]|0;k=c[f+20>>2]|0;f=c[h+20>>2]|0;h=c[i+8>>2]|0;l=c[j+8>>2]|0;if((h|0)==(l|0))return;m=c[l+128>>2]|0;a:do if(m|0){n=m;while(1){if((c[n>>2]|0)==(h|0)){o=c[n+4>>2]|0;p=c[o+48>>2]|0;q=c[o+52>>2]|0;r=c[o+56>>2]|0;s=c[o+60>>2]|0;if((p|0)==(i|0)&(q|0)==(j|0)&(r|0)==(k|0)&(s|0)==(f|0)){t=24;break}if((p|0)==(j|0)&(q|0)==(i|0)&(r|0)==(f|0)&(s|0)==(k|0)){t=24;break}}n=c[n+12>>2]|0;if(!n)break a}if((t| -0)==24)return}while(0);if(!(lj(l,h)|0))return;h=c[d+68>>2]|0;if(h|0?!(Sa[c[(c[h>>2]|0)+8>>2]&15](h,i,j)|0):0)return;h=Zh(i,k,j,f,c[d+76>>2]|0)|0;if(!h)return;f=c[h+48>>2]|0;j=c[h+52>>2]|0;k=c[f+8>>2]|0;i=c[j+8>>2]|0;c[h+8>>2]=0;l=d+60|0;t=c[l>>2]|0;c[h+12>>2]=t;if(t|0)c[t+8>>2]=h;c[l>>2]=h;l=h+16|0;c[h+20>>2]=h;c[l>>2]=i;c[h+24>>2]=0;t=k+128|0;m=c[t>>2]|0;c[h+28>>2]=m;if(m|0)c[m+8>>2]=l;c[t>>2]=l;l=h+32|0;c[h+36>>2]=h;c[l>>2]=k;c[h+40>>2]=0;t=i+128|0;m=c[t>>2]|0;c[h+44>>2]=m;if(m|0)c[m+8>>2]=l;c[t>> -2]=l;if((a[f+38>>0]|0)==0?(a[j+38>>0]|0)==0:0){j=k+4|0;f=e[j>>1]|0;if(!(f&2)){b[j>>1]=f|2;g[k+160>>2]=0}k=i+4|0;f=e[k>>1]|0;if(!(f&2)){b[k>>1]=f|2;g[i+160>>2]=0}}i=d+64|0;c[i>>2]=(c[i>>2]|0)+1;return}function Cj(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;g=Ya[c[f>>2]&31](b,a)|0;h=Ya[c[f>>2]&31](d,b)|0;do if(g){i=a;j=c[i>>2]|0;k=c[i+4>>2]|0;if(h){i=d;l=c[i+4>>2]|0;m=a;c[m>>2]=c[i>>2];c[m+4>>2]=l;l=d;c[l>>2]=j;c[l+4>>2]=k;n=1;break}l=b;m=c[l+4>>2]|0;i=a;c[i>>2]= -c[l>>2];c[i+4>>2]=m;m=b;c[m>>2]=j;c[m+4>>2]=k;if(Ya[c[f>>2]&31](d,b)|0){k=b;m=c[k>>2]|0;j=c[k+4>>2]|0;k=d;i=c[k+4>>2]|0;l=b;c[l>>2]=c[k>>2];c[l+4>>2]=i;i=d;c[i>>2]=m;c[i+4>>2]=j;n=2}else n=1}else if(h){j=b;i=c[j>>2]|0;m=c[j+4>>2]|0;j=d;l=c[j+4>>2]|0;k=b;c[k>>2]=c[j>>2];c[k+4>>2]=l;l=d;c[l>>2]=i;c[l+4>>2]=m;if(Ya[c[f>>2]&31](b,a)|0){m=a;l=c[m>>2]|0;i=c[m+4>>2]|0;m=b;k=c[m+4>>2]|0;j=a;c[j>>2]=c[m>>2];c[j+4>>2]=k;k=b;c[k>>2]=l;c[k+4>>2]=i;n=2}else n=1}else n=0;while(0);if(!(Ya[c[f>>2]&31](e,d)|0)){o= -n;return o|0}h=d;g=c[h>>2]|0;i=c[h+4>>2]|0;h=e;k=c[h+4>>2]|0;l=d;c[l>>2]=c[h>>2];c[l+4>>2]=k;k=e;c[k>>2]=g;c[k+4>>2]=i;if(!(Ya[c[f>>2]&31](d,b)|0)){o=n+1|0;return o|0}i=b;k=c[i>>2]|0;g=c[i+4>>2]|0;i=d;e=c[i+4>>2]|0;l=b;c[l>>2]=c[i>>2];c[l+4>>2]=e;e=d;c[e>>2]=k;c[e+4>>2]=g;if(!(Ya[c[f>>2]&31](b,a)|0)){o=n+2|0;return o|0}f=a;g=c[f>>2]|0;e=c[f+4>>2]|0;f=b;k=c[f+4>>2]|0;d=a;c[d>>2]=c[f>>2];c[d+4>>2]=k;k=b;c[k>>2]=g;c[k+4>>2]=e;o=n+3|0;return o|0}function Dj(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,m=0,n=0,o=0,p=0;e=l;l=l+16|0;f=e;g=a+16|0;h=a+8|0;i=Ya[c[d>>2]&31](h,a)|0;j=Ya[c[d>>2]&31](g,h)|0;do if(i){k=a;m=c[k>>2]|0;n=c[k+4>>2]|0;if(j){k=g;o=c[k+4>>2]|0;p=a;c[p>>2]=c[k>>2];c[p+4>>2]=o;o=g;c[o>>2]=m;c[o+4>>2]=n;break}o=h;p=c[o+4>>2]|0;k=a;c[k>>2]=c[o>>2];c[k+4>>2]=p;p=h;c[p>>2]=m;c[p+4>>2]=n;if(Ya[c[d>>2]&31](g,h)|0){n=h;p=c[n>>2]|0;m=c[n+4>>2]|0;n=g;k=c[n+4>>2]|0;o=h;c[o>>2]=c[n>>2];c[o+4>>2]=k;k=g;c[k>>2]=p;c[k+4>>2]=m}}else if(j?(m=h,k=c[m>>2]|0,p=c[m+4>>2]|0,m=g,o=c[m+4>> -2]|0,n=h,c[n>>2]=c[m>>2],c[n+4>>2]=o,o=g,c[o>>2]=k,c[o+4>>2]=p,Ya[c[d>>2]&31](h,a)|0):0){p=a;o=c[p>>2]|0;k=c[p+4>>2]|0;p=h;n=c[p+4>>2]|0;m=a;c[m>>2]=c[p>>2];c[m+4>>2]=n;n=h;c[n>>2]=o;c[n+4>>2]=k}while(0);h=a+24|0;if((h|0)==(b|0)){l=e;return}j=h;h=g;while(1){if(Ya[c[d>>2]&31](j,h)|0){g=j;i=c[g+4>>2]|0;k=f;c[k>>2]=c[g>>2];c[k+4>>2]=i;i=h;k=j;while(1){g=i;n=c[g+4>>2]|0;o=k;c[o>>2]=c[g>>2];c[o+4>>2]=n;if((i|0)==(a|0))break;n=i+-8|0;if(Ya[c[d>>2]&31](f,n)|0){o=i;i=n;k=o}else break}k=f;o=c[k+4>>2]|0;n= -i;c[n>>2]=c[k>>2];c[n+4>>2]=o}o=j+8|0;if((o|0)==(b|0))break;else{n=j;j=o;h=n}}l=e;return}function Ej(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,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;e=l;l=l+16|0;f=e;switch(b-a>>3|0){case 2:{g=b+-8|0;if(!(Ya[c[d>>2]&31](g,a)|0)){h=1;l=e;return h|0}i=a;j=c[i>>2]|0;k=c[i+4>>2]|0;i=g;m=c[i+4>>2]|0;n=a;c[n>>2]=c[i>>2];c[n+4>>2]=m;m=g;c[m>>2]=j;c[m+4>>2]=k;h=1;l=e;return h|0}case 3:{k=a+8|0;m=b+-8|0;j=Ya[c[d>>2]&31](k,a)|0;g=Ya[c[d>>2]&31](m,k)|0;if(!j){if(!g){h= -1;l=e;return h|0}j=k;n=c[j>>2]|0;i=c[j+4>>2]|0;j=m;o=c[j+4>>2]|0;p=k;c[p>>2]=c[j>>2];c[p+4>>2]=o;o=m;c[o>>2]=n;c[o+4>>2]=i;if(!(Ya[c[d>>2]&31](k,a)|0)){h=1;l=e;return h|0}i=a;o=c[i>>2]|0;n=c[i+4>>2]|0;i=k;p=c[i+4>>2]|0;j=a;c[j>>2]=c[i>>2];c[j+4>>2]=p;p=k;c[p>>2]=o;c[p+4>>2]=n;h=1;l=e;return h|0}n=a;p=c[n>>2]|0;o=c[n+4>>2]|0;if(g){g=m;n=c[g+4>>2]|0;j=a;c[j>>2]=c[g>>2];c[j+4>>2]=n;n=m;c[n>>2]=p;c[n+4>>2]=o;h=1;l=e;return h|0}n=k;j=c[n+4>>2]|0;g=a;c[g>>2]=c[n>>2];c[g+4>>2]=j;j=k;c[j>>2]=p;c[j+4>>2]= -o;if(!(Ya[c[d>>2]&31](m,k)|0)){h=1;l=e;return h|0}o=k;j=c[o>>2]|0;p=c[o+4>>2]|0;o=m;g=c[o+4>>2]|0;n=k;c[n>>2]=c[o>>2];c[n+4>>2]=g;g=m;c[g>>2]=j;c[g+4>>2]=p;h=1;l=e;return h|0}case 4:{Cj(a,a+8|0,a+16|0,b+-8|0,d)|0;h=1;l=e;return h|0}case 5:{p=a+8|0;g=a+16|0;j=a+24|0;m=b+-8|0;Cj(a,p,g,j,d)|0;if(!(Ya[c[d>>2]&31](m,j)|0)){h=1;l=e;return h|0}n=j;o=c[n>>2]|0;k=c[n+4>>2]|0;n=m;i=c[n+4>>2]|0;q=j;c[q>>2]=c[n>>2];c[q+4>>2]=i;i=m;c[i>>2]=o;c[i+4>>2]=k;if(!(Ya[c[d>>2]&31](j,g)|0)){h=1;l=e;return h|0}k=g;i=c[k>> -2]|0;o=c[k+4>>2]|0;k=j;m=c[k+4>>2]|0;q=g;c[q>>2]=c[k>>2];c[q+4>>2]=m;m=j;c[m>>2]=i;c[m+4>>2]=o;if(!(Ya[c[d>>2]&31](g,p)|0)){h=1;l=e;return h|0}o=p;m=c[o>>2]|0;i=c[o+4>>2]|0;o=g;j=c[o+4>>2]|0;q=p;c[q>>2]=c[o>>2];c[q+4>>2]=j;j=g;c[j>>2]=m;c[j+4>>2]=i;if(!(Ya[c[d>>2]&31](p,a)|0)){h=1;l=e;return h|0}i=a;j=c[i>>2]|0;m=c[i+4>>2]|0;i=p;g=c[i+4>>2]|0;q=a;c[q>>2]=c[i>>2];c[q+4>>2]=g;g=p;c[g>>2]=j;c[g+4>>2]=m;h=1;l=e;return h|0}case 1:case 0:{h=1;l=e;return h|0}default:{m=a+16|0;g=a+8|0;j=Ya[c[d>>2]&31](g, -a)|0;p=Ya[c[d>>2]&31](m,g)|0;do if(j){q=a;i=c[q>>2]|0;o=c[q+4>>2]|0;if(p){q=m;k=c[q+4>>2]|0;n=a;c[n>>2]=c[q>>2];c[n+4>>2]=k;k=m;c[k>>2]=i;c[k+4>>2]=o;break}k=g;n=c[k+4>>2]|0;q=a;c[q>>2]=c[k>>2];c[q+4>>2]=n;n=g;c[n>>2]=i;c[n+4>>2]=o;if(Ya[c[d>>2]&31](m,g)|0){o=g;n=c[o>>2]|0;i=c[o+4>>2]|0;o=m;q=c[o+4>>2]|0;k=g;c[k>>2]=c[o>>2];c[k+4>>2]=q;q=m;c[q>>2]=n;c[q+4>>2]=i}}else if(p?(i=g,q=c[i>>2]|0,n=c[i+4>>2]|0,i=m,k=c[i+4>>2]|0,o=g,c[o>>2]=c[i>>2],c[o+4>>2]=k,k=m,c[k>>2]=q,c[k+4>>2]=n,Ya[c[d>>2]&31](g,a)| -0):0){n=a;k=c[n>>2]|0;q=c[n+4>>2]|0;n=g;o=c[n+4>>2]|0;i=a;c[i>>2]=c[n>>2];c[i+4>>2]=o;o=g;c[o>>2]=k;c[o+4>>2]=q}while(0);g=a+24|0;a:do if((g|0)==(b|0)){r=1;s=0}else{p=g;j=0;q=m;while(1){if(Ya[c[d>>2]&31](p,q)|0){o=p;k=c[o+4>>2]|0;i=f;c[i>>2]=c[o>>2];c[i+4>>2]=k;k=q;i=p;while(1){o=k;n=c[o+4>>2]|0;t=i;c[t>>2]=c[o>>2];c[t+4>>2]=n;if((k|0)==(a|0))break;n=k+-8|0;if(Ya[c[d>>2]&31](f,n)|0){t=k;k=n;i=t}else break}i=f;t=c[i+4>>2]|0;n=k;c[n>>2]=c[i>>2];c[n+4>>2]=t;t=j+1|0;if((t|0)==8){r=0;s=(p+8|0)==(b|0); -break a}else u=t}else u=j;t=p+8|0;if((t|0)==(b|0)){r=1;s=0;break}else{n=p;p=t;j=u;q=n}}}while(0);h=s|r;l=e;return h|0}}return 0}function Fj(a,b,d){a=a|0;b=b|0;d=d|0;c[a>>2]=b;c[a+4>>2]=hm(b,d<<4)|0;c[a+8>>2]=d;d=a+12|0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;c[d+12>>2]=0;return}function Gj(a){a=a|0;var b=0;b=c[a+24>>2]|0;if(b|0)jm(c[a>>2]|0,b);jm(c[a>>2]|0,c[a+4>>2]|0);return}function Hj(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0;g=c[b+4>>2]|0;h=b+12|0;b=c[h>>2]|0;c[h>>2]=b+1;h=d;d=c[h+4>>2]|0;i= -g+(b<<4)|0;c[i>>2]=c[h>>2];c[i+4>>2]=d;c[g+(b<<4)+8>>2]=e;a[g+(b<<4)+12>>0]=f&1;return}function Ij(b,d,e){b=b|0;d=+d;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,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,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,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,$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,oc=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,Nc=0,Oc=0,Pc=0,Qc=0,Rc=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,Qe=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,cf=0,df=0,ef=0,ff=0,gf=0,hf=0,jf=0,kf=0,lf=0,mf=0,nf=0,of=0,pf=0,qf=0,rf=0,sf=0,tf=0,uf=0,vf=0,wf=0,xf=0,yf=0,zf=0,Af=0,Bf=0,Cf=0,Df=0,Ef=0,Ff=0,Gf=0,Hf=0,If=0,Jf=0,Kf=0,Lf=0,Mf=0,Nf=0,Of=0,Pf=0,Qf=0,Rf=0,Sf=0,Tf=0,Uf=0,Vf=0,Wf=0,Xf=0,Yf=0,Zf=0,_f=0,$f=0,ag=0,bg=0,cg=0,dg=0,eg=0,fg=0,gg=0,hg=0,ig=0,jg=0,kg=0,lg=0,mg=0,ng=0,og=0,pg=0, -qg=0,rg=0,sg=0,tg=0,ug=0,vg=0,wg=0,xg=0,yg=0,zg=0,Ag=0,Bg=0,Cg=0,Dg=0,Eg=0,Fg=0,Gg=0,Hg=0,Ig=0,Jg=0,Kg=0,Lg=0,Mg=0,Ng=0,Og=0,Pg=0,Qg=0,Rg=0,Sg=0,Tg=0,Ug=0,Vg=0,Wg=0,Xg=0,Yg=0,Zg=0,_g=0,$g=0,ah=0,bh=0,ch=0,dh=0,eh=0,fh=0,gh=0,hh=0,ih=0,jh=0,kh=0,lh=0,mh=0,nh=0,oh=0,ph=0,qh=0,rh=0,sh=0,th=0,uh=0,vh=0,wh=0,xh=0,yh=0,zh=0,Ah=0,Bh=0,Ch=0,Dh=0,Eh=0,Fh=0;f=1/d;h=b+12|0;i=c[h>>2]|0;if((i|0)>0){j=c[b+4>>2]|0;k=0;d=3.4028234663852886E38;l=3.4028234663852886E38;m=3.4028234663852886E38;n=-3.4028234663852886E38; -o=-3.4028234663852886E38;p=3.4028234663852886E38;q=-3.4028234663852886E38;r=-3.4028234663852886E38;while(1){if(!(a[j+(k<<4)+12>>0]|0)){s=o;t=q;u=n;v=r;w=m;x=d;y=l;z=p}else{A=+g[j+(k<<4)>>2];B=d>2];D=pA?q:A;A=r>C?r:C;s=E;t=E;u=A;v=A;w=B;x=B;y=D;z=D}k=k+1|0;if((k|0)>=(i|0)){F=y;G=w;H=u;I=s;break}else{d=x;l=y;m=w;n=u;o=s;p=z;q=t;r=v}}}else{F=3.4028234663852886E38;G=3.4028234663852886E38;H=-3.4028234663852886E38;I=-3.4028234663852886E38}v=G-e;G=F-e;i=~~(f*(I+e-v))+1| -0;k=b+16|0;c[k>>2]=i;j=~~(f*(H+e-G))+1|0;J=b+20|0;c[J>>2]=j;K=hm(c[b>>2]|0,O(j<<2,i)|0)|0;i=b+24|0;c[i>>2]=K;j=c[k>>2]|0;L=c[J>>2]|0;M=O(L,j)|0;if((M|0)>0?(c[K>>2]=0,(M|0)!=1):0){K=1;do{c[(c[i>>2]|0)+(K<<2)>>2]=0;K=K+1|0}while((K|0)<(M|0))}M=c[b>>2]|0;K=O(j<<2,L)|0;L=hm(M,K<<4)|0;if((c[h>>2]|0)>0){j=b+4|0;b=0;N=0;P=L;Q=K;R=L;S=L;T=L;U=L;V=L;W=L;X=L;Y=L;Z=L;_=L;$=L;aa=L;ba=L;ca=L;da=L;while(1){ea=c[j>>2]|0;fa=ea+(b<<4)|0;ga=ea+(b<<4)+4|0;e=f*(+g[fa>>2]-v);H=f*(+g[ga>>2]-G);g[fa>>2]=e;g[ga>>2]=H;ga= -~~e;ea=~~H;if(((ea|ga|0)>-1?(ha=c[k>>2]|0,(ga|0)<(ha|0)):0)?(ea|0)<(c[J>>2]|0):0){ia=(O(ha,ea)|0)+ga|0;if((N|0)<(Q|0)){ja=P;ka=Q;la=ca;ma=ba;na=aa;oa=$;pa=_;qa=Z;ra=Y;sa=X;ta=W;ua=V;va=U;wa=T;xa=S;ya=R;za=da}else{if((N|0)>0){ha=0;do ha=ha+1|0;while((ha|0)!=(N|0))}ha=(Q|0)>0?Q<<1:1;Aa=im(M,da,ha<<4)|0;ja=Aa;ka=ha;la=Aa;ma=Aa;na=Aa;oa=Aa;pa=Aa;qa=Aa;ra=Aa;sa=Aa;ta=Aa;ua=Aa;va=Aa;wa=Aa;xa=Aa;ya=Aa;za=Aa}c[ja+(N<<4)>>2]=ga;c[ja+(N<<4)+4>>2]=ea;c[ja+(N<<4)+8>>2]=ia;c[ja+(N<<4)+12>>2]=fa;Ba=N+1|0;Ca=ja; -Da=ka;Ea=la;Fa=ma;Ga=na;Ha=oa;Ia=pa;Ja=qa;Ka=ra;La=sa;Ma=ta;Na=ua;Oa=va;Pa=wa;Qa=xa;Ra=ya;Sa=za}else{Ba=N;Ca=P;Da=Q;Ea=ca;Fa=ba;Ga=aa;Ha=$;Ia=_;Ja=Z;Ka=Y;La=X;Ma=W;Na=V;Oa=U;Pa=T;Qa=S;Ra=R;Sa=da}b=b+1|0;if((b|0)>=(c[h>>2]|0)){Ta=Ea;Ua=Fa;Va=Ga;Wa=Ha;Xa=Ia;Ya=Ja;Za=Ka;_a=La;$a=Ma;ab=Na;bb=Oa;cb=Pa;db=Qa;eb=Ra;fb=Ba;gb=Ca;hb=Da;ib=0;break}else{N=Ba;P=Ca;Q=Da;R=Ra;S=Qa;T=Pa;U=Oa;V=Na;W=Ma;X=La;Y=Ka;Z=Ja;_=Ia;$=Ha;aa=Ga;ba=Fa;ca=Ea;da=Sa}}}else{Ta=L;Ua=L;Va=L;Wa=L;Xa=L;Ya=L;Za=L;_a=L;$a=L;ab=L;bb=L;cb= -L;db=L;eb=L;fb=0;gb=L;hb=K;ib=0}a:while(1){K=ib;while(1){if((K|0)==(fb|0))break a;jb=c[gb+(K<<4)+8>>2]|0;kb=K+1|0;lb=(c[i>>2]|0)+(jb<<2)|0;if(!(c[lb>>2]|0))break;else K=kb}fa=c[gb+(K<<4)>>2]|0;ia=c[gb+(K<<4)+4>>2]|0;ea=c[gb+(K<<4)+12>>2]|0;c[lb>>2]=ea;if((fa|0)>0){ga=fa+-1|0;L=jb+-1|0;if((fb|0)>=(hb|0)){if((fb|0)>(kb|0)){Sa=kb;do{da=gb+(Sa<<4)|0;Ea=gb+(Sa-kb<<4)|0;c[Ea>>2]=c[da>>2];c[Ea+4>>2]=c[da+4>>2];c[Ea+8>>2]=c[da+8>>2];c[Ea+12>>2]=c[da+12>>2];Sa=Sa+1|0}while((Sa|0)!=(fb|0))}Sa=fb-kb|0;if((Sa| -0)<(hb|0)){mb=Sa;nb=gb;ob=hb;pb=0;qb=Ta;rb=Ua;sb=Va;tb=Wa;ub=Xa;vb=Ya;wb=Za;xb=_a;yb=$a;zb=ab;Ab=bb;Bb=cb;Cb=db;Db=eb}else{K=(hb|0)>0?hb<<1:1;da=im(M,Xa,K<<4)|0;mb=Sa;nb=da;ob=K;pb=0;qb=da;rb=da;sb=da;tb=da;ub=da;vb=da;wb=da;xb=da;yb=da;zb=da;Ab=da;Bb=da;Cb=da;Db=da}}else{mb=fb;nb=gb;ob=hb;pb=kb;qb=Ta;rb=Ua;sb=Va;tb=Wa;ub=Xa;vb=Ya;wb=Za;xb=_a;yb=$a;zb=ab;Ab=bb;Bb=cb;Cb=db;Db=eb}c[nb+(mb<<4)>>2]=ga;c[nb+(mb<<4)+4>>2]=ia;c[nb+(mb<<4)+8>>2]=L;c[nb+(mb<<4)+12>>2]=ea;Eb=mb+1|0;Fb=nb;Gb=ob;Hb=pb;Ib=tb; -Jb=qb;Kb=rb;Lb=sb;Mb=ub;Nb=vb;Ob=wb;Pb=xb;Qb=yb;Rb=zb;Sb=Ab;Tb=Bb;Ub=Cb;Vb=Db}else{Eb=fb;Fb=gb;Gb=hb;Hb=kb;Ib=Wa;Jb=Ta;Kb=Ua;Lb=Va;Mb=Xa;Nb=Ya;Ob=Za;Pb=_a;Qb=$a;Rb=ab;Sb=bb;Tb=cb;Ub=db;Vb=eb}if((ia|0)>0){da=ia+-1|0;K=jb-(c[k>>2]|0)|0;if((Eb|0)>=(Gb|0)){if((Eb|0)>(Hb|0)){Sa=Hb;do{Ea=Fb+(Sa<<4)|0;ca=Fb+(Sa-Hb<<4)|0;c[ca>>2]=c[Ea>>2];c[ca+4>>2]=c[Ea+4>>2];c[ca+8>>2]=c[Ea+8>>2];c[ca+12>>2]=c[Ea+12>>2];Sa=Sa+1|0}while((Sa|0)!=(Eb|0))}Sa=Eb-Hb|0;if((Sa|0)<(Gb|0)){Wb=Sa;Xb=Fb;Yb=Gb;Zb=0;_b=Jb;$b=Kb;ac=Lb; -bc=Ib;cc=Mb;dc=Nb;ec=Ob;fc=Pb;gc=Qb;hc=Rb;ic=Sb;jc=Tb;kc=Ub;lc=Vb}else{L=(Gb|0)>0?Gb<<1:1;ga=im(M,Ib,L<<4)|0;Wb=Sa;Xb=ga;Yb=L;Zb=0;_b=ga;$b=ga;ac=ga;bc=ga;cc=ga;dc=ga;ec=ga;fc=ga;gc=ga;hc=ga;ic=ga;jc=ga;kc=ga;lc=ga}}else{Wb=Eb;Xb=Fb;Yb=Gb;Zb=Hb;_b=Jb;$b=Kb;ac=Lb;bc=Ib;cc=Mb;dc=Nb;ec=Ob;fc=Pb;gc=Qb;hc=Rb;ic=Sb;jc=Tb;kc=Ub;lc=Vb}c[Xb+(Wb<<4)>>2]=fa;c[Xb+(Wb<<4)+4>>2]=da;c[Xb+(Wb<<4)+8>>2]=K;c[Xb+(Wb<<4)+12>>2]=ea;mc=Wb+1|0;nc=Xb;oc=Yb;pc=Zb;qc=ac;rc=_b;sc=$b;tc=bc;uc=cc;vc=dc;wc=ec;xc=fc;yc=gc;zc=hc; -Ac=ic;Bc=jc;Cc=kc;Dc=lc}else{mc=Eb;nc=Fb;oc=Gb;pc=Hb;qc=Lb;rc=Jb;sc=Kb;tc=Ib;uc=Mb;vc=Nb;wc=Ob;xc=Pb;yc=Qb;zc=Rb;Ac=Sb;Bc=Tb;Cc=Ub;Dc=Vb}if((fa|0)<((c[k>>2]|0)+-1|0)){ga=fa+1|0;L=jb+1|0;if((mc|0)>=(oc|0)){if((mc|0)>(pc|0)){Sa=pc;do{Ea=nc+(Sa<<4)|0;ca=nc+(Sa-pc<<4)|0;c[ca>>2]=c[Ea>>2];c[ca+4>>2]=c[Ea+4>>2];c[ca+8>>2]=c[Ea+8>>2];c[ca+12>>2]=c[Ea+12>>2];Sa=Sa+1|0}while((Sa|0)!=(mc|0))}Sa=mc-pc|0;if((Sa|0)<(oc|0)){Ec=Sa;Fc=nc;Gc=oc;Hc=0;Ic=rc;Jc=sc;Kc=qc;Lc=tc;Mc=uc;Nc=vc;Oc=wc;Pc=xc;Qc=yc;Rc=zc;Sc=Ac; -Tc=Bc;Uc=Cc;Vc=Dc}else{K=(oc|0)>0?oc<<1:1;da=im(M,qc,K<<4)|0;Ec=Sa;Fc=da;Gc=K;Hc=0;Ic=da;Jc=da;Kc=da;Lc=da;Mc=da;Nc=da;Oc=da;Pc=da;Qc=da;Rc=da;Sc=da;Tc=da;Uc=da;Vc=da}}else{Ec=mc;Fc=nc;Gc=oc;Hc=pc;Ic=rc;Jc=sc;Kc=qc;Lc=tc;Mc=uc;Nc=vc;Oc=wc;Pc=xc;Qc=yc;Rc=zc;Sc=Ac;Tc=Bc;Uc=Cc;Vc=Dc}c[Fc+(Ec<<4)>>2]=ga;c[Fc+(Ec<<4)+4>>2]=ia;c[Fc+(Ec<<4)+8>>2]=L;c[Fc+(Ec<<4)+12>>2]=ea;Wc=Ec+1|0;Xc=Fc;Yc=Gc;Zc=Hc;_c=Ic;$c=Jc;ad=Kc;bd=Lc;cd=Mc;dd=Nc;ed=Oc;fd=Pc;gd=Qc;hd=Rc;id=Sc;jd=Tc;kd=Uc;ld=Vc}else{Wc=mc;Xc=nc;Yc=oc; -Zc=pc;_c=rc;$c=sc;ad=qc;bd=tc;cd=uc;dd=vc;ed=wc;fd=xc;gd=yc;hd=zc;id=Ac;jd=Bc;kd=Cc;ld=Dc}if((ia|0)>=((c[J>>2]|0)+-1|0)){Ta=_c;Ua=$c;Va=ad;Wa=bd;Xa=cd;Ya=dd;Za=ed;_a=fd;$a=gd;ab=hd;bb=id;cb=jd;db=kd;eb=ld;fb=Wc;gb=Xc;hb=Yc;ib=Zc;continue}da=ia+1|0;K=(c[k>>2]|0)+jb|0;if((Wc|0)>=(Yc|0)){if((Wc|0)>(Zc|0)){Sa=Zc;do{Ea=Xc+(Sa<<4)|0;ca=Xc+(Sa-Zc<<4)|0;c[ca>>2]=c[Ea>>2];c[ca+4>>2]=c[Ea+4>>2];c[ca+8>>2]=c[Ea+8>>2];c[ca+12>>2]=c[Ea+12>>2];Sa=Sa+1|0}while((Sa|0)!=(Wc|0))}Sa=Wc-Zc|0;if((Sa|0)<(Yc|0)){md=Sa; -nd=Xc;od=Yc;pd=0;qd=_c;rd=$c;sd=ad;td=bd;ud=cd;vd=dd;wd=ed;xd=fd;yd=gd;zd=hd;Ad=id;Bd=jd;Cd=kd;Dd=ld}else{ia=(Yc|0)>0?Yc<<1:1;L=im(M,_c,ia<<4)|0;md=Sa;nd=L;od=ia;pd=0;qd=L;rd=L;sd=L;td=L;ud=L;vd=L;wd=L;xd=L;yd=L;zd=L;Ad=L;Bd=L;Cd=L;Dd=L}}else{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;Ad=id;Bd=jd;Cd=kd;Dd=ld}c[nd+(md<<4)>>2]=fa;c[nd+(md<<4)+4>>2]=da;c[nd+(md<<4)+8>>2]=K;c[nd+(md<<4)+12>>2]=ea;Ta=qd;Ua=rd;Va=sd;Wa=td;Xa=ud;Ya=vd;Za=wd;_a=xd;$a=yd;ab=zd;bb=Ad; -cb=Bd;db=Cd;eb=Dd;fb=md+1|0;gb=nd;hb=od;ib=pd}if((c[J>>2]|0)<=0){Ed=ab;jm(M,Ed);return}pd=0;ib=fb;od=gb;gb=hb;hb=fb;fb=c[k>>2]|0;nd=eb;eb=db;db=cb;cb=bb;bb=ab;ab=$a;$a=_a;_a=Za;Za=Ya;Ya=Ua;while(1){if((fb|0)>1){Ua=0;md=ib;Dd=od;Cd=gb;Bd=hb;Ad=fb;zd=eb;yd=nd;xd=db;wd=cb;vd=bb;ud=ab;Xa=$a;td=_a;Wa=Za;sd=Ya;while(1){Va=(O(Ad,pd)|0)+Ua|0;rd=c[i>>2]|0;qd=c[rd+(Va<<2)>>2]|0;Ta=Va+1|0;ld=c[rd+(Ta<<2)>>2]|0;if((qd|0)==(ld|0)){Fd=Ua+1|0;Gd=md;Hd=Dd;Id=Cd;Jd=Bd;Kd=Ad;Ld=sd;Md=Wa;Nd=td;Od=Xa;Pd=ud;Qd=vd;Rd= -wd;Sd=xd;Td=zd;Ud=yd}else{if((md|0)>=(Cd|0)){if((md|0)>(Bd|0)){rd=Bd;do{kd=Dd+(rd<<4)|0;jd=Dd+(rd-Bd<<4)|0;c[jd>>2]=c[kd>>2];c[jd+4>>2]=c[kd+4>>2];c[jd+8>>2]=c[kd+8>>2];c[jd+12>>2]=c[kd+12>>2];rd=rd+1|0}while((rd|0)!=(md|0))}rd=md-Bd|0;if((rd|0)<(Cd|0)){Vd=rd;Wd=Dd;Xd=Cd;Yd=0;Zd=yd;_d=sd;$d=Wa;ae=td;be=Xa;ce=ud;de=vd;ee=wd;fe=xd;ge=zd}else{kd=(Cd|0)>0?Cd<<1:1;jd=im(M,zd,kd<<4)|0;Vd=rd;Wd=jd;Xd=kd;Yd=0;Zd=jd;_d=jd;$d=jd;ae=jd;be=jd;ce=jd;de=jd;ee=jd;fe=jd;ge=jd}}else{Vd=md;Wd=Dd;Xd=Cd;Yd=Bd;Zd=yd; -_d=sd;$d=Wa;ae=td;be=Xa;ce=ud;de=vd;ee=wd;fe=xd;ge=zd}c[Wd+(Vd<<4)>>2]=Ua;c[Wd+(Vd<<4)+4>>2]=pd;c[Wd+(Vd<<4)+8>>2]=Va;c[Wd+(Vd<<4)+12>>2]=ld;jd=Vd+1|0;kd=Ua+1|0;if((jd|0)>=(Xd|0)){if((Vd|0)>=(Yd|0)){rd=Yd;while(1){id=Wd+(rd<<4)|0;hd=Wd+(rd-Yd<<4)|0;c[hd>>2]=c[id>>2];c[hd+4>>2]=c[id+4>>2];c[hd+8>>2]=c[id+8>>2];c[hd+12>>2]=c[id+12>>2];if((rd|0)<(Vd|0))rd=rd+1|0;else break}}rd=jd-Yd|0;if((rd|0)<(Xd|0)){he=rd;ie=Wd;je=Xd;ke=0;le=_d;me=$d;ne=ae;oe=be;pe=ce;qe=de;re=ee;se=fe;te=ge;ue=Zd}else{ld=(Xd|0)> -0?Xd<<1:1;Va=im(M,Zd,ld<<4)|0;he=rd;ie=Va;je=ld;ke=0;le=Va;me=Va;ne=Va;oe=Va;pe=Va;qe=Va;re=Va;se=Va;te=Va;ue=Va}}else{he=jd;ie=Wd;je=Xd;ke=Yd;le=_d;me=$d;ne=ae;oe=be;pe=ce;qe=de;re=ee;se=fe;te=ge;ue=Zd}c[ie+(he<<4)>>2]=kd;c[ie+(he<<4)+4>>2]=pd;c[ie+(he<<4)+8>>2]=Ta;c[ie+(he<<4)+12>>2]=qd;Fd=kd;Gd=he+1|0;Hd=ie;Id=je;Jd=ke;Kd=c[k>>2]|0;Ld=le;Md=me;Nd=ne;Od=oe;Pd=pe;Qd=qe;Rd=re;Sd=se;Td=te;Ud=ue}if((Fd|0)<(Kd+-1|0)){Ua=Fd;md=Gd;Dd=Hd;Cd=Id;Bd=Jd;Ad=Kd;zd=Td;yd=Ud;xd=Sd;wd=Rd;vd=Qd;ud=Pd;Xa=Od;td=Nd; -Wa=Md;sd=Ld}else{ve=Ud;we=Td;xe=Sd;ye=Rd;ze=Qd;Ae=Pd;Be=Od;Ce=Nd;De=Md;Ee=Ld;Fe=Gd;Ge=Hd;He=Id;Ie=Jd;Je=Kd;break}}}else{ve=nd;we=eb;xe=db;ye=cb;ze=bb;Ae=ab;Be=$a;Ce=_a;De=Za;Ee=Ya;Fe=ib;Ge=od;He=gb;Ie=hb;Je=fb}pd=pd+1|0;Ke=c[J>>2]|0;if((pd|0)>=(Ke|0))break;else{ib=Fe;od=Ge;gb=He;hb=Ie;fb=Je;nd=ve;eb=we;db=xe;cb=ye;bb=ze;ab=Ae;$a=Be;_a=Ce;Za=De;Ya=Ee}}if((Ke|0)>1){Ke=0;Ya=Fe;Za=Ge;_a=He;$a=Ie;ab=c[k>>2]|0;bb=xe;xe=ye;ye=ze;cb=Ae;db=Be;we=Ce;eb=De;ve=Ee;while(1){nd=Ke;Ke=Ke+1|0;if((ab|0)>0){Je=0;fb= -Ya;hb=Za;gb=_a;od=$a;ib=ab;pd=xe;Kd=bb;Jd=ye;Id=cb;Hd=db;Gd=we;Ld=eb;Md=ve;while(1){Nd=(O(ib,nd)|0)+Je|0;Od=c[i>>2]|0;Pd=c[Od+(Nd<<2)>>2]|0;Qd=c[Od+(Nd+ib<<2)>>2]|0;if((Pd|0)==(Qd|0)){Le=fb;Me=hb;Ne=gb;Oe=od;Pe=ib;Qe=Md;Re=Ld;Se=Gd;Te=Hd;Ue=Id;Ve=Jd;We=pd;Xe=Kd}else{if((fb|0)>=(gb|0)){if((fb|0)>(od|0)){Od=od;do{Rd=hb+(Od<<4)|0;Sd=hb+(Od-od<<4)|0;c[Sd>>2]=c[Rd>>2];c[Sd+4>>2]=c[Rd+4>>2];c[Sd+8>>2]=c[Rd+8>>2];c[Sd+12>>2]=c[Rd+12>>2];Od=Od+1|0}while((Od|0)!=(fb|0))}Od=fb-od|0;if((Od|0)<(gb|0)){Ye=Od; -Ze=hb;_e=gb;$e=0;af=Kd;bf=Md;cf=Ld;df=Gd;ef=Hd;ff=Id;gf=Jd;hf=pd}else{kd=(gb|0)>0?gb<<1:1;qd=im(M,pd,kd<<4)|0;Ye=Od;Ze=qd;_e=kd;$e=0;af=qd;bf=qd;cf=qd;df=qd;ef=qd;ff=qd;gf=qd;hf=qd}}else{Ye=fb;Ze=hb;_e=gb;$e=od;af=Kd;bf=Md;cf=Ld;df=Gd;ef=Hd;ff=Id;gf=Jd;hf=pd}c[Ze+(Ye<<4)>>2]=Je;c[Ze+(Ye<<4)+4>>2]=nd;c[Ze+(Ye<<4)+8>>2]=Nd;c[Ze+(Ye<<4)+12>>2]=Qd;qd=Ye+1|0;kd=(c[k>>2]|0)+Nd|0;if((qd|0)>=(_e|0)){if((Ye|0)>=($e|0)){Od=$e;while(1){Ta=Ze+(Od<<4)|0;jd=Ze+(Od-$e<<4)|0;c[jd>>2]=c[Ta>>2];c[jd+4>>2]=c[Ta+4>> -2];c[jd+8>>2]=c[Ta+8>>2];c[jd+12>>2]=c[Ta+12>>2];if((Od|0)<(Ye|0))Od=Od+1|0;else break}}Od=qd-$e|0;if((Od|0)<(_e|0)){jf=Od;kf=Ze;lf=_e;mf=0;nf=bf;of=cf;pf=df;qf=ef;rf=ff;sf=gf;tf=hf;uf=af}else{Nd=(_e|0)>0?_e<<1:1;Qd=im(M,af,Nd<<4)|0;jf=Od;kf=Qd;lf=Nd;mf=0;nf=Qd;of=Qd;pf=Qd;qf=Qd;rf=Qd;sf=Qd;tf=Qd;uf=Qd}}else{jf=qd;kf=Ze;lf=_e;mf=$e;nf=bf;of=cf;pf=df;qf=ef;rf=ff;sf=gf;tf=hf;uf=af}c[kf+(jf<<4)>>2]=Je;c[kf+(jf<<4)+4>>2]=Ke;c[kf+(jf<<4)+8>>2]=kd;c[kf+(jf<<4)+12>>2]=Pd;Le=jf+1|0;Me=kf;Ne=lf;Oe=mf;Pe=c[k>> -2]|0;Qe=nf;Re=of;Se=pf;Te=qf;Ue=rf;Ve=sf;We=tf;Xe=uf}Je=Je+1|0;if((Je|0)>=(Pe|0)){vf=Xe;wf=We;xf=Ve;yf=Ue;zf=Te;Af=Se;Bf=Re;Cf=Qe;Df=Le;Ef=Me;Ff=Ne;Gf=Oe;Hf=Pe;break}else{fb=Le;hb=Me;gb=Ne;od=Oe;ib=Pe;pd=We;Kd=Xe;Jd=Ve;Id=Ue;Hd=Te;Gd=Se;Ld=Re;Md=Qe}}}else{vf=bb;wf=xe;xf=ye;yf=cb;zf=db;Af=we;Bf=eb;Cf=ve;Df=Ya;Ef=Za;Ff=_a;Gf=$a;Hf=ab}if((Ke|0)>=((c[J>>2]|0)+-1|0)){If=xf;Jf=yf;Kf=zf;Lf=Af;Mf=Bf;Nf=Cf;Of=Df;Pf=Ef;Qf=Ff;Rf=Gf;break}else{Ya=Df;Za=Ef;_a=Ff;$a=Gf;ab=Hf;bb=vf;xe=wf;ye=xf;cb=yf;db=zf;we=Af; -eb=Bf;ve=Cf}}}else{If=ze;Jf=Ae;Kf=Be;Lf=Ce;Mf=De;Nf=Ee;Of=Fe;Pf=Ge;Qf=He;Rf=Ie}if((Rf|0)==(Of|0)){Ed=If;jm(M,Ed);return}else{Sf=Nf;Tf=Mf;Uf=Lf;Vf=Kf;Wf=Jf;Xf=If;Yf=Of;Zf=Pf;_f=Qf;$f=Rf}b:while(1){Rf=c[i>>2]|0;Qf=$f;while(1){ag=c[Zf+(Qf<<4)>>2]|0;bg=c[Zf+(Qf<<4)+4>>2]|0;cg=c[Zf+(Qf<<4)+8>>2]|0;dg=c[Zf+(Qf<<4)+12>>2]|0;Qf=Qf+1|0;eg=Rf+(cg<<2)|0;Pf=c[eg>>2]|0;if((Pf|0)!=(dg|0)?(G=+(ag|0),f=+g[Pf>>2]-G,v=+(bg|0),H=+g[Pf+4>>2]-v,e=+g[dg>>2]-G,G=+g[dg+4>>2]-v,f*f+H*H>e*e+G*G):0)break;if((Yf|0)==(Qf|0)){Ed= -Xf;fg=120;break b}}c[eg>>2]=dg;if((ag|0)>0){Rf=ag+-1|0;Pf=cg+-1|0;if((Yf|0)>=(_f|0)){if((Yf|0)>(Qf|0)){Of=Qf;do{If=Zf+(Of<<4)|0;Jf=Zf+(Of-Qf<<4)|0;c[Jf>>2]=c[If>>2];c[Jf+4>>2]=c[If+4>>2];c[Jf+8>>2]=c[If+8>>2];c[Jf+12>>2]=c[If+12>>2];Of=Of+1|0}while((Of|0)!=(Yf|0))}Of=Yf-Qf|0;if((Of|0)<(_f|0)){gg=Of;hg=Zf;ig=_f;jg=0;kg=Sf;lg=Tf;mg=Uf;ng=Vf;og=Wf;pg=Xf}else{If=(_f|0)>0?_f<<1:1;Jf=im(M,Wf,If<<4)|0;gg=Of;hg=Jf;ig=If;jg=0;kg=Jf;lg=Jf;mg=Jf;ng=Jf;og=Jf;pg=Jf}}else{gg=Yf;hg=Zf;ig=_f;jg=Qf;kg=Sf;lg=Tf;mg= -Uf;ng=Vf;og=Wf;pg=Xf}c[hg+(gg<<4)>>2]=Rf;c[hg+(gg<<4)+4>>2]=bg;c[hg+(gg<<4)+8>>2]=Pf;c[hg+(gg<<4)+12>>2]=dg;qg=gg+1|0;rg=hg;sg=ig;tg=jg;ug=ng;vg=kg;wg=lg;xg=mg;yg=og;zg=pg}else{qg=Yf;rg=Zf;sg=_f;tg=Qf;ug=Vf;vg=Sf;wg=Tf;xg=Uf;yg=Wf;zg=Xf}if((bg|0)>0){Jf=bg+-1|0;If=cg-(c[k>>2]|0)|0;if((qg|0)>=(sg|0)){if((qg|0)>(tg|0)){Of=tg;do{Kf=rg+(Of<<4)|0;Lf=rg+(Of-tg<<4)|0;c[Lf>>2]=c[Kf>>2];c[Lf+4>>2]=c[Kf+4>>2];c[Lf+8>>2]=c[Kf+8>>2];c[Lf+12>>2]=c[Kf+12>>2];Of=Of+1|0}while((Of|0)!=(qg|0))}Of=qg-tg|0;if((Of|0)< -(sg|0)){Ag=Of;Bg=rg;Cg=sg;Dg=0;Eg=vg;Fg=wg;Gg=xg;Hg=ug;Ig=yg;Jg=zg}else{Qf=(sg|0)>0?sg<<1:1;Pf=im(M,ug,Qf<<4)|0;Ag=Of;Bg=Pf;Cg=Qf;Dg=0;Eg=Pf;Fg=Pf;Gg=Pf;Hg=Pf;Ig=Pf;Jg=Pf}}else{Ag=qg;Bg=rg;Cg=sg;Dg=tg;Eg=vg;Fg=wg;Gg=xg;Hg=ug;Ig=yg;Jg=zg}c[Bg+(Ag<<4)>>2]=ag;c[Bg+(Ag<<4)+4>>2]=Jf;c[Bg+(Ag<<4)+8>>2]=If;c[Bg+(Ag<<4)+12>>2]=dg;Kg=Ag+1|0;Lg=Bg;Mg=Cg;Ng=Dg;Og=Gg;Pg=Eg;Qg=Fg;Rg=Hg;Sg=Ig;Tg=Jg}else{Kg=qg;Lg=rg;Mg=sg;Ng=tg;Og=xg;Pg=vg;Qg=wg;Rg=ug;Sg=yg;Tg=zg}if((ag|0)<((c[k>>2]|0)+-1|0)){Pf=ag+1|0;Qf=cg+1| -0;if((Kg|0)>=(Mg|0)){if((Kg|0)>(Ng|0)){Of=Ng;do{Rf=Lg+(Of<<4)|0;Kf=Lg+(Of-Ng<<4)|0;c[Kf>>2]=c[Rf>>2];c[Kf+4>>2]=c[Rf+4>>2];c[Kf+8>>2]=c[Rf+8>>2];c[Kf+12>>2]=c[Rf+12>>2];Of=Of+1|0}while((Of|0)!=(Kg|0))}Of=Kg-Ng|0;if((Of|0)<(Mg|0)){Ug=Of;Vg=Lg;Wg=Mg;Xg=0;Yg=Pg;Zg=Qg;_g=Og;$g=Rg;ah=Sg;bh=Tg}else{If=(Mg|0)>0?Mg<<1:1;Jf=im(M,Og,If<<4)|0;Ug=Of;Vg=Jf;Wg=If;Xg=0;Yg=Jf;Zg=Jf;_g=Jf;$g=Jf;ah=Jf;bh=Jf}}else{Ug=Kg;Vg=Lg;Wg=Mg;Xg=Ng;Yg=Pg;Zg=Qg;_g=Og;$g=Rg;ah=Sg;bh=Tg}c[Vg+(Ug<<4)>>2]=Pf;c[Vg+(Ug<<4)+4>>2]=bg; -c[Vg+(Ug<<4)+8>>2]=Qf;c[Vg+(Ug<<4)+12>>2]=dg;ch=Ug+1|0;dh=Vg;eh=Wg;fh=Xg;gh=Zg;hh=Yg;ih=_g;jh=$g;kh=ah;lh=bh}else{ch=Kg;dh=Lg;eh=Mg;fh=Ng;gh=Qg;hh=Pg;ih=Og;jh=Rg;kh=Sg;lh=Tg}if((bg|0)<((c[J>>2]|0)+-1|0)){Jf=bg+1|0;If=(c[k>>2]|0)+cg|0;if((ch|0)>=(eh|0)){if((ch|0)>(fh|0)){Of=fh;do{Rf=dh+(Of<<4)|0;Kf=dh+(Of-fh<<4)|0;c[Kf>>2]=c[Rf>>2];c[Kf+4>>2]=c[Rf+4>>2];c[Kf+8>>2]=c[Rf+8>>2];c[Kf+12>>2]=c[Rf+12>>2];Of=Of+1|0}while((Of|0)!=(ch|0))}Of=ch-fh|0;if((Of|0)<(eh|0)){mh=Of;nh=dh;oh=eh;ph=0;qh=hh;rh=gh;sh=ih; -th=jh;uh=kh;vh=lh}else{Qf=(eh|0)>0?eh<<1:1;Pf=im(M,gh,Qf<<4)|0;mh=Of;nh=Pf;oh=Qf;ph=0;qh=Pf;rh=Pf;sh=Pf;th=Pf;uh=Pf;vh=Pf}}else{mh=ch;nh=dh;oh=eh;ph=fh;qh=hh;rh=gh;sh=ih;th=jh;uh=kh;vh=lh}c[nh+(mh<<4)>>2]=ag;c[nh+(mh<<4)+4>>2]=Jf;c[nh+(mh<<4)+8>>2]=If;c[nh+(mh<<4)+12>>2]=dg;wh=qh;xh=rh;yh=sh;zh=th;Ah=uh;Bh=vh;Ch=mh+1|0;Dh=nh;Eh=oh;Fh=ph}else{wh=hh;xh=gh;yh=ih;zh=jh;Ah=kh;Bh=lh;Ch=ch;Dh=dh;Eh=eh;Fh=fh}if((Fh|0)==(Ch|0)){Ed=Bh;fg=120;break}else{Sf=wh;Tf=xh;Uf=yh;Vf=zh;Wf=Ah;Xf=Bh;Yf=Ch;Zf=Dh;_f=Eh; -$f=Fh}}if((fg|0)==120){jm(M,Ed);return}}function Jj(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+20|0;if((c[e>>2]|0)<=1)return;f=b+16|0;g=b+24|0;b=0;h=c[f>>2]|0;while(1){if((h|0)>1){i=0;j=h;while(1){k=(O(j,b)|0)+i|0;l=c[g>>2]|0;m=c[l+(k<<2)>>2]|0;n=k+1|0;o=c[l+(n<<2)>>2]|0;p=c[l+(k+j<<2)>>2]|0;k=c[l+(n+j<<2)>>2]|0;do if((o|0)!=(p|0)){do if(!((m|0)==(o|0)|(m|0)==(p|0))){if(((a[m+12>>0]|0)==0?(a[o+12>>0]|0)==0:0)?(a[p+12>>0]|0)==0:0)break;_a[c[(c[d>>2]|0)+8>>2]&31](d, -c[m+8>>2]|0,c[o+8>>2]|0,c[p+8>>2]|0)}while(0);if(!((k|0)==(o|0)|(k|0)==(p|0))){if(((a[o+12>>0]|0)==0?(a[k+12>>0]|0)==0:0)?(a[p+12>>0]|0)==0:0)break;_a[c[(c[d>>2]|0)+8>>2]&31](d,c[o+8>>2]|0,c[k+8>>2]|0,c[p+8>>2]|0)}}while(0);i=i+1|0;p=c[f>>2]|0;if((i|0)>=(p+-1|0)){q=p;break}else j=p}}else q=h;b=b+1|0;if((b|0)>=((c[e>>2]|0)+-1|0))break;else h=q}return}function Kj(a){a=a|0;var b=0,d=0,e=0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;c[a+12>>2]=0;g[a+16>>2]=1;c[a+20>>2]=0;c[a+24>>2]=0;c[a+28>>2]=-1;g[a+32>>2]=0; -g[a+36>>2]=0;b=8716;d=c[b>>2]|0;e=c[b+4>>2]|0;b=a+40|0;c[b>>2]=d;c[b+4>>2]=e;b=a+48|0;c[b>>2]=d;c[b+4>>2]=e;e=a+56|0;c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;c[e+12>>2]=0;g[a+72>>2]=1;c[a+76>>2]=0;return}function Lj(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,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;b=a+28|0;d=c[a>>2]|0;e=c[d+4>>2]|0;if((c[b>>2]|0)==(e|0))return;f=+g[d+32>>2]*.75;h=f*(+g[d+320>>2]*f);i=a+32|0;g[i>>2]=0;j=a+40|0;k=a+44|0;l=a+48|0;m=a+52|0;c[j>>2]=0; -c[j+4>>2]=0;c[j+8>>2]=0;c[j+12>>2]=0;n=c[a+4>>2]|0;o=c[a+8>>2]|0;p=(n|0)<(o|0);if(p){q=c[d+96>>2]|0;r=c[d+104>>2]|0;s=n;f=0;t=0;u=0;v=0;w=0;do{f=h+f;x=h*+g[q+(s<<3)+4>>2];t=h*+g[q+(s<<3)>>2]+t;g[j>>2]=t;u=x+u;g[k>>2]=u;x=h*+g[r+(s<<3)+4>>2];v=h*+g[r+(s<<3)>>2]+v;g[l>>2]=v;w=x+w;g[m>>2]=w;s=s+1|0}while((s|0)<(o|0));g[i>>2]=f;if(f>0){x=1/f;f=x*t;g[j>>2]=f;y=x*u;g[k>>2]=y;z=v*x;g[l>>2]=z;A=x*w;g[m>>2]=A;B=f;C=y;D=z;E=A}else{B=t;C=u;D=v;E=w}m=a+36|0;g[m>>2]=0;l=a+56|0;g[l>>2]=0;if(p){p=c[d+96>>2]|0;k= -c[d+104>>2]|0;d=n;w=0;v=0;do{u=+g[p+(d<<3)>>2]-B;t=+g[p+(d<<3)+4>>2]-C;w=h*(u*u+t*t)+w;v=v+h*(u*(+g[k+(d<<3)+4>>2]-E)-t*(+g[k+(d<<3)>>2]-D));d=d+1|0}while((d|0)<(o|0));g[m>>2]=w;g[l>>2]=v;if(w>0)g[l>>2]=1/w*v}}else{g[a+36>>2]=0;g[a+56>>2]=0}c[b>>2]=e;return}function Mj(a,b){a=a|0;b=b|0;Il(c[a>>2]|0,c[a+4>>2]|0,c[a+8>>2]|0,b);return}function Nj(a,b){a=a|0;b=b|0;Jl(c[a>>2]|0,c[a+4>>2]|0,c[a+8>>2]|0,b);return}function Oj(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=c[a>>2]|0;if(c[(c[d+400>>2]|0)+102876>>2]& -2|0)return;e=c[a+4>>2]|0;f=a+8|0;if((e|0)>=(c[f>>2]|0))return;_j(d,e,b);d=e+1|0;if((d|0)<(c[f>>2]|0))g=d;else return;do{_j(c[a>>2]|0,g,b);g=g+1|0}while((g|0)<(c[f>>2]|0));return}function Pj(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;f=b+52|0;c[b+56>>2]=f;c[f>>2]=f;c[b+60>>2]=256;f=b+64|0;c[b+68>>2]=f;c[f>>2]=f;f=b+72|0;c[b+76>>2]=f;c[f>>2]=f;f=b+80|0;c[b+136>>2]=0;c[b+140>>2]=0;c[b+148>>2]=0;c[b+152>>2]=0;h=b+196|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;f=b+160|0;i=f+36|0;do{c[f>>2]=0;f=f+4|0}while((f|0)<(i|0));c[h>>2]=e;c[b+200>>2]=0;c[b+204>>2]=0;c[b+208>>2]=0;c[b+212>>2]=e;c[b+216>>2]=0;c[b+220>>2]=0;c[b+224>>2]=0;c[b+228>>2]=e;c[b+232>>2]=0;c[b+236>>2]=0;c[b+240>>2]=0;c[b+244>>2]=e;c[b+248>>2]=0;c[b+252>>2]=0;c[b+256>>2]=0;c[b+260>>2]=e;c[b+264>>2]=0;c[b+268>>2]=0;c[b+272>>2]=0;c[b+276>>2]=e;h=b+280|0;j=b+316|0;a[j>>0]=0;k=b+320|0;c[h>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;c[h+12>>2]=0;g[k>>2]=1;l=b+324|0;g[l>> -2]=1;g[b+328>>2]=1;m=b+332|0;c[m>>2]=0;g[b+336>>2]=.05000000074505806;g[b+340>>2]=1;g[b+344>>2]=.25;g[b+348>>2]=.25;g[b+352>>2]=.25;g[b+356>>2]=.20000000298023224;g[b+360>>2]=.20000000298023224;g[b+364>>2]=1;g[b+368>>2]=.5;g[b+372>>2]=.5;g[b+376>>2]=.20000000298023224;g[b+380>>2]=.20000000298023224;c[b+384>>2]=8;g[b+388>>2]=.5;n=b+392|0;a[n>>0]=1;g[b+396>>2]=.01666666753590107;a[b>>0]=0;c[b+4>>2]=0;c[b+8>>2]=0;a[b+12>>0]=0;c[b+16>>2]=0;a[b+20>>0]=0;a[b+21>>0]=0;c[b+24>>2]=0;a[j>>0]=a[d>>0]|0;o=+g[d+ -4>>2];g[k>>2]=o;g[b+28>>2]=1/o;c[l>>2]=c[d+8>>2];o=+g[d+12>>2]*2;g[b+32>>2]=o;g[b+40>>2]=o*o;g[b+36>>2]=1/o;c[m>>2]=c[d+16>>2];c[b+44>>2]=0;m=b+48|0;c[m>>2]=0;l=b+112|0;c[b+144>>2]=0;c[b+308>>2]=0;c[b+312>>2]=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;f=j;j=d;i=f+84|0;do{c[f>>2]=c[j>>2];f=f+4|0;j=j+4|0}while((f|0)<(i|0));j=b+400|0;c[j>>2]=e;c[b+156>>2]=0;e=b+296|0;c[e>>2]=0;c[e+4>>2]=0;a[b+304>>0]=0;e=a[n>>0]|0;if(!(e<<24>>24)){a[n>>0]=e;return}f=c[h>>2]|0;if(!f){Qj(b, -256);b=Pl(c[j>>2]|0,c[m>>2]<<2)|0;Nn(b|0,0,c[m>>2]<<2|0)|0;p=b}else p=f;c[h>>2]=p;a[n>>0]=e;return}function Qj(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0;d=c[a+332>>2]|0;e=(d|0)!=0&(d|0)<(b|0)?d:b;b=a+92|0;d=c[b>>2]|0;f=(d|0)!=0&(e|0)>(d|0)?d:e;e=a+100|0;g=c[e>>2]|0;h=(g|0)!=0&(f|0)>(g|0)?g:f;f=a+108|0;g=c[f>>2]|0;i=(g|0)!=0&(h|0)>(g|0)?g:h;h=a+140|0;g=c[h>>2]|0;j=(g|0)!=0&(i|0)>(g|0)?g:i;i=a+152|0;g= -c[i>>2]|0;k=(g|0)!=0&(j|0)>(g|0)?g:j;j=a+48|0;g=c[j>>2]|0;if((g|0)>=(k|0))return;l=a+80|0;m=c[l>>2]|0;if((m|0)==0|(c[a+84>>2]|0)!=0){n=m;o=g;p=d}else{d=a+400|0;q=Pl(c[d>>2]|0,k<<2)|0;r=g<<2;Qn(q|0,m|0,r|0)|0;Ql(c[d>>2]|0,m,r);n=q;o=c[j>>2]|0;p=c[b>>2]|0}c[l>>2]=n;c[a+60>>2]=k-o;n=a+88|0;l=c[n>>2]|0;if(!p){p=a+400|0;b=Pl(c[p>>2]|0,k<<2)|0;q=o<<2;if(!l)s=b;else{Qn(b|0,l|0,q|0)|0;Ql(c[p>>2]|0,l,q);s=b}}else s=l;c[n>>2]=s;s=(c[a+156>>2]|0)>0;n=a+160|0;l=c[n>>2]|0;b=(l|0)==0;if(!((c[a+164>>2]|0)!=0|s& -b)){q=c[j>>2]|0;p=a+400|0;o=Pl(c[p>>2]|0,k<<2)|0;r=q<<2;if(b)t=o;else{Qn(o|0,l|0,r|0)|0;Ql(c[p>>2]|0,l,r);t=o}}else t=l;c[n>>2]=t;t=a+168|0;n=c[t>>2]|0;l=(n|0)==0;if(!((c[a+172>>2]|0)!=0|s&l)){o=c[j>>2]|0;r=a+400|0;p=Pl(c[r>>2]|0,k<<2)|0;b=o<<2;if(l)u=p;else{Qn(p|0,n|0,b|0)|0;Ql(c[r>>2]|0,n,b);u=p}}else u=n;c[t>>2]=u;u=a+176|0;t=c[u>>2]|0;n=(t|0)==0;if(!((c[a+180>>2]|0)!=0|s&n)){s=c[j>>2]|0;p=a+400|0;b=Pl(c[p>>2]|0,k<<2)|0;r=s<<2;if(n)v=b;else{Qn(b|0,t|0,r|0)|0;Ql(c[p>>2]|0,t,r);v=b}}else v=t;c[u>> -2]=v;v=a+96|0;u=c[v>>2]|0;if(!(c[e>>2]|0)){e=c[j>>2]|0;t=a+400|0;b=Pl(c[t>>2]|0,k<<3)|0;r=e<<3;if(!u)w=b;else{Qn(b|0,u|0,r|0)|0;Ql(c[t>>2]|0,u,r);w=b}}else w=u;c[v>>2]=w;w=a+104|0;v=c[w>>2]|0;if(!(c[f>>2]|0)){f=c[j>>2]|0;u=a+400|0;b=k<<3;r=Pl(c[u>>2]|0,b)|0;t=f<<3;if(!v){x=r;y=b;z=u}else{Qn(r|0,v|0,t|0)|0;Ql(c[u>>2]|0,v,t);x=r;y=b;z=u}}else{x=v;y=k<<3;z=a+400|0}c[w>>2]=x;x=a+112|0;w=c[x>>2]|0;v=c[j>>2]|0;u=Pl(c[z>>2]|0,y)|0;b=v<<3;if(w|0){Qn(u|0,w|0,b|0)|0;Ql(c[z>>2]|0,w,b)}c[x>>2]=u;u=a+116|0;x= -c[u>>2]|0;b=c[j>>2]|0;w=k<<2;v=Pl(c[z>>2]|0,w)|0;r=b<<2;if(x|0){Qn(v|0,x|0,r|0)|0;Ql(c[z>>2]|0,x,r)}c[u>>2]=v;v=a+120|0;u=c[v>>2]|0;if(!u)A=0;else{r=c[j>>2]|0;x=Pl(c[z>>2]|0,w)|0;b=r<<2;Qn(x|0,u|0,b|0)|0;Ql(c[z>>2]|0,u,b);A=x}c[v>>2]=A;A=a+124|0;v=c[A>>2]|0;x=c[j>>2]|0;b=Pl(c[z>>2]|0,w)|0;u=x<<2;if(v|0){Qn(b|0,v|0,u|0)|0;Ql(c[z>>2]|0,v,u)}c[A>>2]=b;b=a+128|0;A=c[b>>2]|0;if(!A)B=0;else{u=c[j>>2]|0;v=Pl(c[z>>2]|0,y)|0;y=u<<3;Qn(v|0,A|0,y|0)|0;Ql(c[z>>2]|0,A,y);B=v}c[b>>2]=B;B=a+132|0;b=c[B>>2]|0;if(!b)C= -0;else{v=c[j>>2]|0;y=Pl(c[z>>2]|0,w)|0;A=v<<2;Qn(y|0,b|0,A|0)|0;Ql(c[z>>2]|0,b,A);C=y}c[B>>2]=C;C=a+136|0;B=c[C>>2]|0;if((B|0)==0|(c[h>>2]|0)!=0)D=B;else{h=c[j>>2]|0;y=Pl(c[z>>2]|0,w)|0;A=h<<2;Qn(y|0,B|0,A|0)|0;Ql(c[z>>2]|0,B,A);D=y}c[C>>2]=D;D=a+144|0;C=c[D>>2]|0;y=c[j>>2]|0;A=Pl(c[z>>2]|0,w)|0;B=y<<2;if(C|0){Qn(A|0,C|0,B|0)|0;Ql(c[z>>2]|0,C,B)}c[D>>2]=A;A=a+148|0;D=c[A>>2]|0;if((D|0)==0|(c[i>>2]|0)!=0)E=D;else{i=c[j>>2]|0;B=Pl(c[z>>2]|0,w)|0;C=i<<2;Qn(B|0,D|0,C|0)|0;Ql(c[z>>2]|0,D,C);E=B}c[A>>2]= -E;E=a+280|0;A=c[E>>2]|0;if((A|0)==0|(c[a+284>>2]|0)!=0)F=A;else{B=c[j>>2]|0;C=Pl(c[z>>2]|0,w)|0;D=B<<2;Qn(C|0,A|0,D|0)|0;Ql(c[z>>2]|0,A,D);F=C}c[E>>2]=F;F=a+288|0;E=c[F>>2]|0;if((E|0)==0|(c[a+292>>2]|0)!=0)G=E;else{a=c[j>>2]|0;C=Pl(c[z>>2]|0,w)|0;w=a<<2;Qn(C|0,E|0,w|0)|0;Ql(c[z>>2]|0,E,w);G=C}c[F>>2]=G;c[j>>2]=k;return}function Rj(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;b=a+4|0;d=c[b>>2]|0;if((d|0)!=(a|0)){e=d;do{d=bm(e)|0;f=c[d>>2]|0;if(f|0){g=d+32|0;h=0;while(1){i=g+4|0;j=c[g>>2]|0;c[j+4>> -2]=c[i>>2];c[c[i>>2]>>2]=j;c[i>>2]=g;c[g>>2]=g;h=h+1|0;if((h|0)==(f|0))break;else g=g+12|0}}dm(a,d);e=c[b>>2]|0}while((e|0)!=(a|0))}e=a+12|0;g=a+20|0;f=a+24|0;h=c[g>>2]|0;c[h+4>>2]=c[f>>2];c[c[f>>2]>>2]=h;c[f>>2]=g;c[g>>2]=g;g=a+16|0;f=c[e>>2]|0;c[f+4>>2]=c[g>>2];c[c[g>>2]>>2]=f;c[g>>2]=e;c[e>>2]=e;em(a);e=c[a>>2]|0;c[e+4>>2]=c[b>>2];c[c[b>>2]>>2]=e;c[b>>2]=a;c[a>>2]=a;return}function Sj(a){a=a|0;var b=0,d=0,e=0,f=0;b=a+312|0;while(1){d=c[b>>2]|0;if(!d)break;Tj(a,d)}if((c[a+84>>2]|0)==0?(b=a+80|0, -d=c[b>>2]|0,d|0):0){Ql(c[a+400>>2]|0,d,c[a+48>>2]<<2);c[b>>2]=0}if((c[a+92>>2]|0)==0?(b=a+88|0,d=c[b>>2]|0,d|0):0){Ql(c[a+400>>2]|0,d,c[a+48>>2]<<2);c[b>>2]=0}if((c[a+164>>2]|0)==0?(b=a+160|0,d=c[b>>2]|0,d|0):0){Ql(c[a+400>>2]|0,d,c[a+48>>2]<<2);c[b>>2]=0}if((c[a+172>>2]|0)==0?(b=a+168|0,d=c[b>>2]|0,d|0):0){Ql(c[a+400>>2]|0,d,c[a+48>>2]<<2);c[b>>2]=0}if((c[a+180>>2]|0)==0?(b=a+176|0,d=c[b>>2]|0,d|0):0){Ql(c[a+400>>2]|0,d,c[a+48>>2]<<2);c[b>>2]=0}if((c[a+100>>2]|0)==0?(b=a+96|0,d=c[b>>2]|0,d|0):0){Ql(c[a+ -400>>2]|0,d,c[a+48>>2]<<3);c[b>>2]=0}if((c[a+108>>2]|0)==0?(b=a+104|0,d=c[b>>2]|0,d|0):0){Ql(c[a+400>>2]|0,d,c[a+48>>2]<<3);c[b>>2]=0}if((c[a+140>>2]|0)==0?(b=a+136|0,d=c[b>>2]|0,d|0):0){Ql(c[a+400>>2]|0,d,c[a+48>>2]<<2);c[b>>2]=0}if((c[a+152>>2]|0)==0?(b=a+148|0,d=c[b>>2]|0,d|0):0){Ql(c[a+400>>2]|0,d,c[a+48>>2]<<2);c[b>>2]=0}if((c[a+284>>2]|0)==0?(b=a+280|0,d=c[b>>2]|0,d|0):0){Ql(c[a+400>>2]|0,d,c[a+48>>2]<<2);c[b>>2]=0}if((c[a+292>>2]|0)==0?(b=a+288|0,d=c[b>>2]|0,d|0):0){Ql(c[a+400>>2]|0,d,c[a+ -48>>2]<<2);c[b>>2]=0}b=a+112|0;d=a+48|0;e=c[b>>2]|0;if(e|0){Ql(c[a+400>>2]|0,e,c[d>>2]<<3);c[b>>2]=0}b=a+116|0;e=c[b>>2]|0;if(e|0){Ql(c[a+400>>2]|0,e,c[d>>2]<<2);c[b>>2]=0}b=a+120|0;e=c[b>>2]|0;if(e|0){Ql(c[a+400>>2]|0,e,c[d>>2]<<2);c[b>>2]=0}b=a+124|0;e=c[b>>2]|0;if(e|0){Ql(c[a+400>>2]|0,e,c[d>>2]<<2);c[b>>2]=0}b=a+128|0;e=c[b>>2]|0;if(e|0){Ql(c[a+400>>2]|0,e,c[d>>2]<<3);c[b>>2]=0}b=a+132|0;e=c[b>>2]|0;if(e|0){Ql(c[a+400>>2]|0,e,c[d>>2]<<2);c[b>>2]=0}b=a+144|0;e=c[b>>2]|0;if(e|0){Ql(c[a+400>>2]| -0,e,c[d>>2]<<2);c[b>>2]=0}b=a+264|0;d=c[b>>2]|0;if(d|0){e=a+272|0;Ql(c[a+276>>2]|0,d,(c[e>>2]|0)*60|0);c[b>>2]=0;c[e>>2]=0;c[a+268>>2]=0}e=a+248|0;b=c[e>>2]|0;if(b|0){d=a+256|0;Ql(c[a+260>>2]|0,b,(c[d>>2]|0)*20|0);c[e>>2]=0;c[d>>2]=0;c[a+252>>2]=0}d=a+232|0;e=c[d>>2]|0;if(e|0){b=a+240|0;Ql(c[a+244>>2]|0,e,(c[b>>2]|0)*28|0);c[d>>2]=0;c[b>>2]=0;c[a+236>>2]=0}b=a+216|0;d=c[b>>2]|0;if(d|0){e=a+224|0;Ql(c[a+228>>2]|0,d,(c[e>>2]|0)*24|0);c[b>>2]=0;c[e>>2]=0;c[a+220>>2]=0}e=a+200|0;b=c[e>>2]|0;if(b|0){d= -a+208|0;Ql(c[a+212>>2]|0,b,c[d>>2]<<3);c[e>>2]=0;c[d>>2]=0;c[a+204>>2]=0}d=a+184|0;e=c[d>>2]|0;if(!e){f=a+52|0;Rj(f);return}b=a+192|0;Ql(c[a+196>>2]|0,e,c[b>>2]<<2);c[d>>2]=0;c[b>>2]=0;c[a+188>>2]=0;f=a+52|0;Rj(f);return}function Tj(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+400|0;f=c[(c[e>>2]|0)+102992>>2]|0;if(f|0)Ra[c[(c[f>>2]|0)+16>>2]&63](f,d);f=d+12|0;g=c[f>>2]|0;h=g<<4;i=h&16;if(((h|-17)^16)&g|0)a[b+20>>0]=1;g=b+16|0;h=c[g>>2]|0;if(i&~h|0)c[g>>2]=h|i;c[f>>2]=i;i=c[d+4>>2]| -0;f=c[d+8>>2]|0;if((i|0)<(f|0)){h=b+144|0;g=i;do{c[(c[h>>2]|0)+(g<<2)>>2]=0;g=g+1|0}while((g|0)<(f|0))}f=c[d+20>>2]|0;g=d+24|0;if(f|0)c[f+24>>2]=c[g>>2];h=c[g>>2]|0;if(h|0)c[h+20>>2]=f;f=b+312|0;if((c[f>>2]|0)!=(d|0)){j=b+308|0;k=c[j>>2]|0;l=k+-1|0;c[j>>2]=l;m=c[e>>2]|0;Ql(m,d,80);return}c[f>>2]=h;j=b+308|0;k=c[j>>2]|0;l=k+-1|0;c[j>>2]=l;m=c[e>>2]|0;Ql(m,d,80);return}function Uj(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;b=a+136|0;d=c[b>>2]|0;if(d|0){e=d;c[b>>2]=e;return e|0}d=a+48|0;f=c[d>>2]|0;if(!f){Qj(a, -256);g=c[d>>2]|0}else g=f;f=Pl(c[a+400>>2]|0,g<<2)|0;Nn(f|0,0,c[d>>2]<<2|0)|0;e=f;c[b>>2]=e;return e|0}function Vj(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;e=b+400|0;if(c[(c[e>>2]|0)+102876>>2]&2|0){f=0;return f|0}h=b+44|0;i=c[h>>2]|0;j=b+48|0;k=c[j>>2]|0;if((i|0)<(k|0)){l=i;m=k}else{Qj(b,(i|0)==0?256:i<<1);l=c[h>>2]|0;m=c[j>>2]|0}do if((l|0)>=(m|0))if(!(a[b+392>>0]|0)){f=-1;return f|0}else{i=c[b+288>>2]|0;k=c[i+(l+-1<<2)>>2]|0;n=(c[(c[b+ -280>>2]|0)+(k<<2)>>2]|0)>0?k:c[i>>2]|0;i=b+88|0;Wj(b,n,c[(c[i>>2]|0)+(n<<2)>>2]|2);Xj(b);o=i;p=c[h>>2]|0;break}else{o=b+88|0;p=l}while(0);l=p+1|0;c[h>>2]=l;c[(c[o>>2]|0)+(p<<2)>>2]=0;o=c[b+160>>2]|0;if(o|0)c[o+(p<<2)>>2]=0;o=c[b+168>>2]|0;if(o|0)c[o+(p<<2)>>2]=0;o=c[b+176>>2]|0;if(o|0)c[o+(p<<2)>>2]=0;o=d+4|0;h=c[o+4>>2]|0;m=(c[b+96>>2]|0)+(p<<3)|0;c[m>>2]=c[o>>2];c[m+4>>2]=h;h=d+12|0;m=c[h+4>>2]|0;o=(c[b+104>>2]|0)+(p<<3)|0;c[o>>2]=c[h>>2];c[o+4>>2]=m;g[(c[b+116>>2]|0)+(p<<2)>>2]=0;m=8716;o=c[m+ -4>>2]|0;h=(c[b+112>>2]|0)+(p<<3)|0;c[h>>2]=c[m>>2];c[h+4>>2]=o;o=c[b+120>>2]|0;if(o|0)g[o+(p<<2)>>2]=0;o=c[b+132>>2]|0;if(o|0)g[o+(p<<2)>>2]=0;o=b+136|0;h=c[o>>2]|0;m=d+20|0;do if(!h){if((((a[m>>0]|0)==0?(a[d+21>>0]|0)==0:0)?(a[d+22>>0]|0)==0:0)?(a[d+23>>0]|0)==0:0)break;i=c[j>>2]|0;if(!i){Qj(b,256);q=c[j>>2]|0}else q=i;i=Pl(c[e>>2]|0,q<<2)|0;Nn(i|0,0,c[j>>2]<<2|0)|0;r=i;s=26}else{r=h;s=26}while(0);if((s|0)==26){c[o>>2]=r;o=a[d+21>>0]|0;h=a[d+22>>0]|0;q=a[d+23>>0]|0;a[r+(p<<2)>>0]=a[m>>0]|0;a[r+(p<< -2)+1>>0]=o;a[r+(p<<2)+2>>0]=h;a[r+(p<<2)+3>>0]=q}q=b+148|0;r=c[q>>2]|0;h=d+28|0;if(!r){if(c[h>>2]|0){o=c[j>>2]|0;if(!o){Qj(b,256);t=c[j>>2]|0}else t=o;o=Pl(c[e>>2]|0,t<<2)|0;Nn(o|0,0,c[j>>2]<<2|0)|0;u=o;s=32}}else{u=r;s=32}if((s|0)==32){c[q>>2]=u;c[u+(p<<2)>>2]=c[h>>2]}h=c[b+80>>2]|0;if(h|0)c[h+(p<<2)>>2]=0;h=b+200|0;u=b+204|0;q=c[u>>2]|0;s=b+208|0;r=c[s>>2]|0;if((q|0)>=(r|0)?(o=(r|0)==0?256:r<<1,(r|0)<(o|0)):0){r=b+212|0;j=Pl(c[r>>2]|0,o<<3)|0;t=c[h>>2]|0;if(!t)v=h;else{Qn(j|0,t|0,c[u>>2]<<3|0)| -0;Ql(c[r>>2]|0,c[h>>2]|0,c[s>>2]<<3);v=h}c[s>>2]=o;c[v>>2]=j;w=c[u>>2]|0}else w=q;q=c[h>>2]|0;c[u>>2]=w+1;x=+g[d+24>>2];u=x>0;if(u|(c[b+280>>2]|0)!=0){if(u)y=x;else{u=c[b+296+4>>2]|0;y=+g[b+396>>2]*+(0-(((u|0)<0?u:0)+u)|0)}Yj(b,p,y);c[(c[b+288>>2]|0)+(p<<2)>>2]=p}c[q+(w<<3)>>2]=p;w=c[d+32>>2]|0;c[(c[b+144>>2]|0)+(p<<2)>>2]=w;if(w|0){q=w+4|0;u=c[q>>2]|0;h=w+8|0;w=c[h>>2]|0;if((u|0)<(w|0))Zj(b,u,w,p);else c[q>>2]=p;c[h>>2]=l}Wj(b,p,c[d>>2]|0);f=p;return f|0}function Wj(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;f=(c[b+88>>2]|0)+(d<<2)|0;if(c[f>>2]&~e|0)a[b+12>>0]=1;d=b+8|0;if(!(~c[d>>2]&e)){c[f>>2]=e;return}if(e&128|0){g=b+128|0;h=c[g>>2]|0;if(!h){i=b+48|0;j=c[i>>2]|0;if(!j){Qj(b,256);k=c[i>>2]|0}else k=j;j=Pl(c[b+400>>2]|0,k<<3)|0;Nn(j|0,0,c[i>>2]<<3|0)|0;l=j}else l=h;c[g>>2]=l}if(e&256|0){l=b+136|0;g=c[l>>2]|0;if(!g){h=b+48|0;j=c[h>>2]|0;if(!j){Qj(b,256);m=c[h>>2]|0}else m=j;j=Pl(c[b+400>>2]|0,m<<2)|0;Nn(j|0,0,c[h>>2]<<2|0)|0;n=j}else n=g;c[l>>2]=n}c[d>>2]=c[d>>2]|e;c[f>> -2]=e;return}function Xj(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,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;d=b+400|0;e=b+44|0;f=hm((c[d>>2]|0)+76|0,c[e>>2]<<2)|0;if((c[e>>2]|0)>0){g=b+88|0;h=b+80|0;i=b+160|0;j=b+168|0;k=b+176|0;l=b+96|0;m=b+104|0;n=b+144|0;o=b+21|0;p=b+120|0;q=b+132|0;r=b+136|0;s=b+148|0;t=b+280|0;u=b+112|0;v= -b+64|0;w=0;x=0;y=0;while(1){z=c[g>>2]|0;A=c[z+(x<<2)>>2]|0;if(!(A&2)){c[f+(x<<2)>>2]=y;if((x|0)!=(y|0)){B=c[h>>2]|0;if(!B)C=z;else{z=c[B+(x<<2)>>2]|0;if(z|0)c[z+8>>2]=y;c[B+(y<<2)>>2]=z;C=c[g>>2]|0}c[C+(y<<2)>>2]=c[C+(x<<2)>>2];z=c[i>>2]|0;if(z|0)c[z+(y<<2)>>2]=c[z+(x<<2)>>2];z=c[j>>2]|0;if(z|0)c[z+(y<<2)>>2]=c[z+(x<<2)>>2];z=c[k>>2]|0;if(z|0)c[z+(y<<2)>>2]=c[z+(x<<2)>>2];z=c[l>>2]|0;B=z+(x<<3)|0;D=c[B+4>>2]|0;E=z+(y<<3)|0;c[E>>2]=c[B>>2];c[E+4>>2]=D;D=c[m>>2]|0;E=D+(x<<3)|0;B=c[E+4>>2]|0;z=D+(y<< -3)|0;c[z>>2]=c[E>>2];c[z+4>>2]=B;B=c[n>>2]|0;c[B+(y<<2)>>2]=c[B+(x<<2)>>2];if(a[o>>0]|0){B=c[u>>2]|0;z=B+(x<<3)|0;E=c[z+4>>2]|0;D=B+(y<<3)|0;c[D>>2]=c[z>>2];c[D+4>>2]=E}E=c[p>>2]|0;if(E|0)c[E+(y<<2)>>2]=c[E+(x<<2)>>2];E=c[q>>2]|0;if(E|0)c[E+(y<<2)>>2]=c[E+(x<<2)>>2];E=c[r>>2]|0;if(E|0){D=a[E+(x<<2)+1>>0]|0;z=a[E+(x<<2)+2>>0]|0;B=a[E+(x<<2)+3>>0]|0;a[E+(y<<2)>>0]=a[E+(x<<2)>>0]|0;a[E+(y<<2)+1>>0]=D;a[E+(y<<2)+2>>0]=z;a[E+(y<<2)+3>>0]=B}B=c[s>>2]|0;if(B|0)c[B+(y<<2)>>2]=c[B+(x<<2)>>2];B=c[t>>2]|0;if(B| -0)c[B+(y<<2)>>2]=c[B+(x<<2)>>2]}F=y+1|0;G=A|w}else{B=c[(c[d>>2]|0)+102992>>2]|0;if((A&512|0)!=0&(B|0)!=0)Ta[c[(c[B>>2]|0)+20>>2]&7](B,b,x);B=c[h>>2]|0;if(B|0?(A=B+(x<<2)|0,B=c[A>>2]|0,B|0):0){c[B+8>>2]=-1;c[A>>2]=0;Ml(v,B)}c[f+(x<<2)>>2]=-1;F=y;G=w}x=x+1|0;if((x|0)>=(c[e>>2]|0)){H=F;I=G;break}else{w=G;y=F}}}else{H=0;I=0}F=b+200|0;y=b+204|0;G=c[y>>2]|0;w=c[F>>2]|0;x=w;if((G|0)>0){v=0;do{h=w+(v<<3)|0;c[h>>2]=c[f+(c[h>>2]<<2)>>2];v=v+1|0}while((v|0)<(G|0))}v=w+(G<<3)|0;a:do if(!G){J=w;K=39}else{h=w; -while(1){if((c[h>>2]|0)<0){J=h;K=39;break a}h=h+8|0;if((h|0)==(v|0)){L=v;M=x;break}}}while(0);if((K|0)==39)if((J|0)==(v|0)){L=v;M=x}else{x=J;w=J;b:while(1){J=x;do{J=J+8|0;if((J|0)==(v|0))break b}while((c[J>>2]|0)<0);G=J;h=c[G+4>>2]|0;t=w;c[t>>2]=c[G>>2];c[t+4>>2]=h;x=J;w=w+8|0}L=w;M=c[F>>2]|0}c[y>>2]=L-M>>3;M=b+216|0;L=b+220|0;y=c[L>>2]|0;F=c[M>>2]|0;if((y|0)>0){w=0;do{x=F+(w*24|0)|0;v=F+(w*24|0)+4|0;h=c[f+(c[v>>2]<<2)>>2]|0;c[x>>2]=c[f+(c[x>>2]<<2)>>2];c[v>>2]=h;w=w+1|0}while((w|0)<(y|0))}w=F+(y* -24|0)|0;c:do if(!y){N=F;K=51}else{h=F;while(1){if((c[h>>2]|0)<0){N=h;K=51;break c}if((c[h+4>>2]|0)<0){N=h;K=51;break c}h=h+24|0;if((h|0)==(w|0)){O=w;break}}}while(0);d:do if((K|0)==51)if((N|0)!=(w|0)){F=N+24|0;if((F|0)==(w|0))O=N;else{y=N;h=N;J=F;while(1){F=y;v=J;while(1){if((c[v>>2]|0)>=0?(c[F+28>>2]|0)>=0:0)break;x=v+24|0;if((x|0)==(w|0)){O=h;break d}else{t=v;v=x;F=t}}c[h>>2]=c[v>>2];c[h+4>>2]=c[v+4>>2];c[h+8>>2]=c[v+8>>2];c[h+12>>2]=c[v+12>>2];c[h+16>>2]=c[v+16>>2];c[h+20>>2]=c[v+20>>2];F=h+24| -0;J=v+24|0;if((J|0)==(w|0)){O=F;break}else{y=v;h=F}}}}else O=w;while(0);c[L>>2]=(O-(c[M>>2]|0)|0)/24|0;M=b+232|0;O=b+236|0;L=c[O>>2]|0;w=c[M>>2]|0;N=w;if((L|0)>0){h=0;do{y=w+(h*28|0)|0;c[y>>2]=c[f+(c[y>>2]<<2)>>2];h=h+1|0}while((h|0)<(L|0))}h=w+(L*28|0)|0;e:do if(!L){P=w;K=63}else{y=w;while(1){if((c[y>>2]|0)<0){P=y;K=63;break e}y=y+28|0;if((y|0)==(h|0)){Q=h;R=N;break}}}while(0);if((K|0)==63)if((P|0)==(h|0)){Q=h;R=N}else{N=P;w=P;f:while(1){P=N;do{P=P+28|0;if((P|0)==(h|0))break f}while((c[P>>2]|0)< -0);c[w>>2]=c[P>>2];c[w+4>>2]=c[P+4>>2];c[w+8>>2]=c[P+8>>2];c[w+12>>2]=c[P+12>>2];c[w+16>>2]=c[P+16>>2];c[w+20>>2]=c[P+20>>2];c[w+24>>2]=c[P+24>>2];N=P;w=w+28|0}Q=w;R=c[M>>2]|0}c[O>>2]=(Q-R|0)/28|0;R=b+248|0;Q=b+252|0;O=c[Q>>2]|0;M=c[R>>2]|0;w=M;if((O|0)>0){N=0;do{h=M+(N*20|0)|0;c[h>>2]=c[f+(c[h>>2]<<2)>>2];h=M+(N*20|0)+4|0;c[h>>2]=c[f+(c[h>>2]<<2)>>2];N=N+1|0}while((N|0)<(O|0))}N=M+(O*20|0)|0;g:do if(!O){S=M;K=74}else{h=M;while(1){if((c[h+4>>2]|c[h>>2]|0)<0){S=h;K=74;break g}h=h+20|0;if((h|0)==(N| -0)){T=N;U=w;break}}}while(0);if((K|0)==74)if((S|0)==(N|0)){T=N;U=w}else{w=S;M=S;h:while(1){S=w;do{O=S;S=S+20|0;if((S|0)==(N|0))break h}while((c[O+24>>2]|c[S>>2]|0)<0);c[M>>2]=c[S>>2];c[M+4>>2]=c[S+4>>2];c[M+8>>2]=c[S+8>>2];c[M+12>>2]=c[S+12>>2];c[M+16>>2]=c[S+16>>2];w=S;M=M+20|0}T=M;U=c[R>>2]|0}c[Q>>2]=(T-U|0)/20|0;U=b+264|0;T=b+268|0;Q=c[T>>2]|0;R=c[U>>2]|0;if((Q|0)>0){M=0;do{w=R+(M*60|0)|0;c[w>>2]=c[f+(c[w>>2]<<2)>>2];w=R+(M*60|0)+4|0;c[w>>2]=c[f+(c[w>>2]<<2)>>2];w=R+(M*60|0)+8|0;c[w>>2]=c[f+(c[w>> -2]<<2)>>2];M=M+1|0}while((M|0)<(Q|0))}M=R+(Q*60|0)|0;i:do if(!Q){V=R;K=87}else{w=R;while(1){if((c[w>>2]|0)<0){V=w;K=87;break i}if((c[w+4>>2]|0)<0){V=w;K=87;break i}if((c[w+8>>2]|0)<0){V=w;K=87;break i}w=w+60|0;if((w|0)==(M|0)){W=M;break}}}while(0);j:do if((K|0)==87)if((V|0)!=(M|0)){R=V+60|0;if((R|0)==(M|0))W=V;else{Q=V;w=V;S=R;while(1){R=Q;N=S;while(1){if(((c[N>>2]|0)>=0?(c[R+64>>2]|0)>=0:0)?(c[R+68>>2]|0)>=0:0)break;O=N+60|0;if((O|0)==(M|0)){W=w;break j}else{h=N;N=O;R=h}}R=w;v=N;h=R+60|0;do{c[R>> -2]=c[v>>2];R=R+4|0;v=v+4|0}while((R|0)<(h|0));v=w+60|0;S=N+60|0;if((S|0)==(M|0)){W=v;break}else{Q=N;w=v}}}}else W=M;while(0);c[T>>2]=(W-(c[U>>2]|0)|0)/60|0;U=c[b+288>>2]|0;if(U|0?(W=c[e>>2]|0,(W|0)>0):0){T=0;M=0;V=W;while(1){W=c[f+(c[U+(T<<2)>>2]<<2)>>2]|0;if((W|0)==-1){X=M;Y=V}else{c[U+(M<<2)>>2]=W;X=M+1|0;Y=c[e>>2]|0}T=T+1|0;if((T|0)>=(Y|0))break;else{M=X;V=Y}}}Y=b+312|0;V=c[Y>>2]|0;if(V|0){X=b+16|0;M=b+132|0;T=b+48|0;U=b+20|0;W=V;do{V=W+4|0;K=c[V>>2]|0;w=W+8|0;Q=c[w>>2]|0;if((K|0)<(Q|0)){S=K;K= -0;v=0;R=H;while(1){h=c[f+(S<<2)>>2]|0;O=(h|0)>-1;P=h+1|0;L=O?(R|0)<(h|0)?R:h:R;h=O?(v|0)>(P|0)?v:P:v;P=K|O^1;S=S+1|0;if((S|0)>=(Q|0)){Z=P;_=h;$=L;break}else{K=P;v=h;R=L}}}else{Z=0;_=0;$=H}if(($|0)<(_|0)){c[V>>2]=$;c[w>>2]=_;if(Z?(R=W+12|0,v=c[R>>2]|0,v&1|0):0){K=v|16;v=c[X>>2]|0;if(K&~v|0){Q=c[M>>2]|0;if(!Q){S=c[T>>2]|0;if(!S){Qj(b,256);aa=c[T>>2]|0}else aa=S;S=Pl(c[d>>2]|0,aa<<2)|0;Nn(S|0,0,c[T>>2]<<2|0)|0;ba=S;ca=c[X>>2]|0}else{ba=Q;ca=v}c[M>>2]=ba;c[X>>2]=ca|K}c[R>>2]=K}}else{c[V>>2]=0;c[w>>2]= -0;K=W+12|0;R=c[K>>2]|0;if(!(R&4)){v=R|8;if((R&-9^-9)&R|0)a[U>>0]=1;Q=c[X>>2]|0;if(v&~Q|0){if(!(R&1))da=Q;else{R=c[M>>2]|0;if(!R){S=c[T>>2]|0;if(!S){Qj(b,256);ea=c[T>>2]|0}else ea=S;S=Pl(c[d>>2]|0,ea<<2)|0;Nn(S|0,0,c[T>>2]<<2|0)|0;fa=S;ga=c[X>>2]|0}else{fa=R;ga=Q}c[M>>2]=fa;da=ga}c[X>>2]=da|v}c[K>>2]=v}}W=c[W+24>>2]|0}while((W|0)!=0)}c[e>>2]=H;jm((c[d>>2]|0)+76|0,f);c[b+8>>2]=I;a[b+12>>0]=0;I=c[Y>>2]|0;if(!I)return;else ha=I;do{I=ha;ha=c[ha+24>>2]|0;if(c[I+12>>2]&8|0)Tj(b,I)}while((ha|0)!=0);return} -function Yj(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;f=b+288|0;h=c[f>>2]|0;i=(h|0)==0;j=b+280|0;k=c[j>>2]|0;if(!k){l=b+48|0;m=c[l>>2]|0;if(!m){Qj(b,256);n=c[l>>2]|0}else n=m;m=Pl(c[b+400>>2]|0,n<<2)|0;Nn(m|0,0,c[l>>2]<<2|0)|0;o=m;p=c[f>>2]|0}else{o=k;p=h}c[j>>2]=o;if(!p){o=b+48|0;h=c[o>>2]|0;if(!h){Qj(b,256);q=c[o>>2]|0}else q=h;h=Pl(c[b+400>>2]|0,q<<2)|0;Nn(h|0,0,c[o>>2]<<2|0)|0;r=h}else r=p;c[f>>2]=r;if(i?(i=c[b+44>>2]|0,(i|0)>0):0){f=0;do{c[r+(f<<2)>>2]=f; -f=f+1|0}while((f|0)!=(i|0))}i=~~(e/+g[b+396>>2]);if((i|0)>0)s=(c[b+296+4>>2]|0)+i|0;else s=i;i=(c[j>>2]|0)+(d<<2)|0;if((s|0)==(c[i>>2]|0))return;c[i>>2]=s;a[b+304>>0]=1;return}function Zj(b,e,f,g){b=b|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=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;if((e|0)==(f|0)|(g|0)==(f|0))return;h=c[b+88>>2]|0;i=h+(e<< -2)|0;j=h+(f<<2)|0;k=h+(g<<2)|0;a:do if((i+4|0)!=(j|0)){if((j+4|0)==(k|0)){h=k+-4|0;l=c[h>>2]|0;m=h-i|0;h=m>>2;if(h|0)Vn(k+(0-h<<2)|0,i|0,m|0)|0;c[i>>2]=l;break}l=j;m=l-i>>2;h=k;n=h-l>>2;if((m|0)==(n|0)){l=i;o=j;while(1){p=c[l>>2]|0;c[l>>2]=c[o>>2];c[o>>2]=p;l=l+4|0;if((l|0)==(j|0))break a;else o=o+4|0}}else{q=m;r=n}while(1){o=(q|0)%(r|0)|0;if(!o)break;else{l=r;r=o;q=l}}if(r|0){n=i+(r<<2)|0;do{n=n+-4|0;l=c[n>>2]|0;o=n+(m<<2)|0;p=n;while(1){c[p>>2]=c[o>>2];s=h-o>>2;t=(m|0)<(s|0)?o+(m<<2)|0:i+(m-s<< -2)|0;if((t|0)==(n|0))break;else{s=o;o=t;p=s}}c[o>>2]=l}while((n|0)!=(i|0))}}else{n=c[i>>2]|0;m=k-j|0;h=m>>2;if(h|0)Vn(i|0,j|0,m|0)|0;c[i+(h<<2)>>2]=n}while(0);i=c[b+160>>2]|0;b:do if(i|0){j=i+(e<<2)|0;k=i+(f<<2)|0;r=i+(g<<2)|0;if((j+4|0)==(k|0)){q=c[j>>2]|0;n=r-k|0;h=n>>2;if(h|0)Vn(j|0,k|0,n|0)|0;c[j+(h<<2)>>2]=q;break}if((k+4|0)==(r|0)){q=r+-4|0;h=c[q>>2]|0;n=q-j|0;q=n>>2;if(q|0)Vn(r+(0-q<<2)|0,j|0,n|0)|0;c[j>>2]=h;break}h=k;n=h-j>>2;q=r;r=q-h>>2;if((n|0)==(r|0)){h=j;m=k;while(1){p=c[h>>2]|0;c[h>> -2]=c[m>>2];c[m>>2]=p;h=h+4|0;if((h|0)==(k|0))break b;else m=m+4|0}}else{u=n;v=r}while(1){m=(u|0)%(v|0)|0;if(!m)break;else{k=v;v=m;u=k}}if(v|0){r=j+(v<<2)|0;do{r=r+-4|0;k=c[r>>2]|0;m=r+(n<<2)|0;h=r;while(1){c[h>>2]=c[m>>2];p=q-m>>2;s=(n|0)<(p|0)?m+(n<<2)|0:j+(n-p<<2)|0;if((s|0)==(r|0))break;else{p=m;m=s;h=p}}c[m>>2]=k}while((r|0)!=(j|0))}}while(0);v=c[b+168>>2]|0;c:do if(v|0){u=v+(e<<2)|0;i=v+(f<<2)|0;j=v+(g<<2)|0;if((u+4|0)==(i|0)){r=c[u>>2]|0;n=j-i|0;q=n>>2;if(q|0)Vn(u|0,i|0,n|0)|0;c[u+(q<<2)>>2]= -r;break}if((i+4|0)==(j|0)){r=j+-4|0;q=c[r>>2]|0;n=r-u|0;r=n>>2;if(r|0)Vn(j+(0-r<<2)|0,u|0,n|0)|0;c[u>>2]=q;break}q=i;n=q-u>>2;r=j;j=r-q>>2;if((n|0)==(j|0)){q=u;h=i;while(1){l=c[q>>2]|0;c[q>>2]=c[h>>2];c[h>>2]=l;q=q+4|0;if((q|0)==(i|0))break c;else h=h+4|0}}else{w=n;x=j}while(1){h=(w|0)%(x|0)|0;if(!h)break;else{i=x;x=h;w=i}}if(x|0){j=u+(x<<2)|0;do{j=j+-4|0;i=c[j>>2]|0;h=j+(n<<2)|0;q=j;while(1){c[q>>2]=c[h>>2];l=r-h>>2;o=(n|0)<(l|0)?h+(n<<2)|0:u+(n-l<<2)|0;if((o|0)==(j|0))break;else{l=h;h=o;q=l}}c[h>> -2]=i}while((j|0)!=(u|0))}}while(0);x=c[b+176>>2]|0;d:do if(x|0){w=x+(e<<2)|0;v=x+(f<<2)|0;u=x+(g<<2)|0;if((w+4|0)==(v|0)){j=c[w>>2]|0;n=u-v|0;r=n>>2;if(r|0)Vn(w|0,v|0,n|0)|0;c[w+(r<<2)>>2]=j;break}if((v+4|0)==(u|0)){j=u+-4|0;r=c[j>>2]|0;n=j-w|0;j=n>>2;if(j|0)Vn(u+(0-j<<2)|0,w|0,n|0)|0;c[w>>2]=r;break}r=v;n=r-w>>2;j=u;u=j-r>>2;if((n|0)==(u|0)){r=w;q=v;while(1){k=c[r>>2]|0;c[r>>2]=c[q>>2];c[q>>2]=k;r=r+4|0;if((r|0)==(v|0))break d;else q=q+4|0}}else{y=n;z=u}while(1){q=(y|0)%(z|0)|0;if(!q)break;else{v= -z;z=q;y=v}}if(z|0){u=w+(z<<2)|0;do{u=u+-4|0;v=c[u>>2]|0;q=u+(n<<2)|0;r=u;while(1){c[r>>2]=c[q>>2];k=j-q>>2;m=(n|0)<(k|0)?q+(n<<2)|0:w+(n-k<<2)|0;if((m|0)==(u|0))break;else{k=q;q=m;r=k}}c[q>>2]=v}while((u|0)!=(w|0))}}while(0);z=c[b+96>>2]|0;y=z+(e<<3)|0;x=z+(f<<3)|0;w=z+(g<<3)|0;e:do if((y+8|0)!=(x|0)){if((x+8|0)==(w|0)){z=w+-8|0;u=z;n=c[u>>2]|0;j=c[u+4>>2]|0;u=z-y|0;z=u>>3;if(z|0)Vn(w+(0-z<<3)|0,y|0,u|0)|0;u=y;c[u>>2]=n;c[u+4>>2]=j;break}j=x;u=j-y>>3;n=w;z=n-j>>3;if((u|0)==(z|0)){j=y;r=x;while(1){i= -j;h=c[i>>2]|0;k=c[i+4>>2]|0;i=r;m=c[i+4>>2]|0;l=j;c[l>>2]=c[i>>2];c[l+4>>2]=m;m=r;c[m>>2]=h;c[m+4>>2]=k;j=j+8|0;if((j|0)==(x|0))break e;else r=r+8|0}}else{A=u;B=z}while(1){r=(A|0)%(B|0)|0;if(!r)break;else{j=B;B=r;A=j}}if(B|0){z=y+(B<<3)|0;do{z=z+-8|0;j=z;r=c[j>>2]|0;k=c[j+4>>2]|0;j=z+(u<<3)|0;m=z;while(1){h=j;l=c[h+4>>2]|0;i=m;c[i>>2]=c[h>>2];c[i+4>>2]=l;l=n-j>>3;i=(u|0)<(l|0)?j+(u<<3)|0:y+(u-l<<3)|0;if((i|0)==(z|0))break;else{l=j;j=i;m=l}}m=j;c[m>>2]=r;c[m+4>>2]=k}while((z|0)!=(y|0))}}else{z=y;u= -c[z>>2]|0;n=c[z+4>>2]|0;z=w-x|0;m=z>>3;if(m|0)Vn(y|0,x|0,z|0)|0;z=y+(m<<3)|0;c[z>>2]=u;c[z+4>>2]=n}while(0);y=c[b+104>>2]|0;x=y+(e<<3)|0;w=y+(f<<3)|0;B=y+(g<<3)|0;f:do if((x+8|0)!=(w|0)){if((w+8|0)==(B|0)){y=B+-8|0;A=y;n=c[A>>2]|0;z=c[A+4>>2]|0;A=y-x|0;y=A>>3;if(y|0)Vn(B+(0-y<<3)|0,x|0,A|0)|0;A=x;c[A>>2]=n;c[A+4>>2]=z;break}z=w;A=z-x>>3;n=B;y=n-z>>3;if((A|0)==(y|0)){z=x;u=w;while(1){m=z;v=c[m>>2]|0;q=c[m+4>>2]|0;m=u;l=c[m+4>>2]|0;i=z;c[i>>2]=c[m>>2];c[i+4>>2]=l;l=u;c[l>>2]=v;c[l+4>>2]=q;z=z+8|0;if((z| -0)==(w|0))break f;else u=u+8|0}}else{C=A;D=y}while(1){u=(C|0)%(D|0)|0;if(!u)break;else{z=D;D=u;C=z}}if(D|0){y=x+(D<<3)|0;do{y=y+-8|0;z=y;u=c[z>>2]|0;q=c[z+4>>2]|0;z=y+(A<<3)|0;l=y;while(1){v=z;i=c[v+4>>2]|0;m=l;c[m>>2]=c[v>>2];c[m+4>>2]=i;i=n-z>>3;m=(A|0)<(i|0)?z+(A<<3)|0:x+(A-i<<3)|0;if((m|0)==(y|0))break;else{i=z;z=m;l=i}}l=z;c[l>>2]=u;c[l+4>>2]=q}while((y|0)!=(x|0))}}else{y=x;A=c[y>>2]|0;n=c[y+4>>2]|0;y=B-w|0;l=y>>3;if(l|0)Vn(x|0,w|0,y|0)|0;y=x+(l<<3)|0;c[y>>2]=A;c[y+4>>2]=n}while(0);x=c[b+144>> -2]|0;w=x+(e<<2)|0;B=x+(f<<2)|0;D=x+(g<<2)|0;g:do if((w+4|0)!=(B|0)){if((B+4|0)==(D|0)){x=D+-4|0;C=c[x>>2]|0;n=x-w|0;x=n>>2;if(x|0)Vn(D+(0-x<<2)|0,w|0,n|0)|0;c[w>>2]=C;break}C=B;n=C-w>>2;x=D;y=x-C>>2;if((n|0)==(y|0)){C=w;A=B;while(1){l=c[C>>2]|0;c[C>>2]=c[A>>2];c[A>>2]=l;C=C+4|0;if((C|0)==(B|0))break g;else A=A+4|0}}else{E=n;F=y}while(1){A=(E|0)%(F|0)|0;if(!A)break;else{C=F;F=A;E=C}}if(F|0){y=w+(F<<2)|0;do{y=y+-4|0;C=c[y>>2]|0;A=y+(n<<2)|0;l=y;while(1){c[l>>2]=c[A>>2];k=x-A>>2;r=(n|0)<(k|0)?A+(n<< -2)|0:w+(n-k<<2)|0;if((r|0)==(y|0))break;else{k=A;A=r;l=k}}c[A>>2]=C}while((y|0)!=(w|0))}}else{y=c[w>>2]|0;n=D-B|0;x=n>>2;if(x|0)Vn(w|0,B|0,n|0)|0;c[w+(x<<2)>>2]=y}while(0);h:do if(a[b+21>>0]|0){w=c[b+112>>2]|0;B=w+(e<<3)|0;D=w+(f<<3)|0;F=w+(g<<3)|0;if((B+8|0)==(D|0)){w=B;E=c[w>>2]|0;y=c[w+4>>2]|0;w=F-D|0;x=w>>3;if(x|0)Vn(B|0,D|0,w|0)|0;w=B+(x<<3)|0;c[w>>2]=E;c[w+4>>2]=y;break}if((D+8|0)==(F|0)){y=F+-8|0;w=y;E=c[w>>2]|0;x=c[w+4>>2]|0;w=y-B|0;y=w>>3;if(y|0)Vn(F+(0-y<<3)|0,B|0,w|0)|0;w=B;c[w>>2]=E;c[w+ -4>>2]=x;break}x=D;w=x-B>>3;E=F;F=E-x>>3;if((w|0)==(F|0)){x=B;y=D;while(1){n=x;l=c[n>>2]|0;q=c[n+4>>2]|0;n=y;u=c[n+4>>2]|0;z=x;c[z>>2]=c[n>>2];c[z+4>>2]=u;u=y;c[u>>2]=l;c[u+4>>2]=q;x=x+8|0;if((x|0)==(D|0))break h;else y=y+8|0}}else{G=w;H=F}while(1){y=(G|0)%(H|0)|0;if(!y)break;else{D=H;H=y;G=D}}if(H|0){F=B+(H<<3)|0;do{F=F+-8|0;D=F;y=c[D>>2]|0;x=c[D+4>>2]|0;D=F+(w<<3)|0;q=F;while(1){u=D;l=c[u+4>>2]|0;z=q;c[z>>2]=c[u>>2];c[z+4>>2]=l;l=E-D>>3;z=(w|0)<(l|0)?D+(w<<3)|0:B+(w-l<<3)|0;if((z|0)==(F|0))break; -else{l=D;D=z;q=l}}q=D;c[q>>2]=y;c[q+4>>2]=x}while((F|0)!=(B|0))}}while(0);H=c[b+120>>2]|0;i:do if(H|0){G=H+(e<<2)|0;B=H+(f<<2)|0;F=H+(g<<2)|0;if((G+4|0)==(B|0)){w=c[G>>2]|0;E=F-B|0;q=E>>2;if(q|0)Vn(G|0,B|0,E|0)|0;c[G+(q<<2)>>2]=w;break}if((B+4|0)==(F|0)){w=F+-4|0;q=c[w>>2]|0;E=w-G|0;w=E>>2;if(w|0)Vn(F+(0-w<<2)|0,G|0,E|0)|0;c[G>>2]=q;break}q=B;E=q-G>>2;w=F;F=w-q>>2;if((E|0)==(F|0)){q=G;C=B;while(1){A=c[q>>2]|0;c[q>>2]=c[C>>2];c[C>>2]=A;q=q+4|0;if((q|0)==(B|0))break i;else C=C+4|0}}else{I=E;J=F}while(1){C= -(I|0)%(J|0)|0;if(!C)break;else{B=J;J=C;I=B}}if(J|0){F=G+(J<<2)|0;do{F=F+-4|0;B=c[F>>2]|0;C=F+(E<<2)|0;q=F;while(1){c[q>>2]=c[C>>2];A=w-C>>2;l=(E|0)<(A|0)?C+(E<<2)|0:G+(E-A<<2)|0;if((l|0)==(F|0))break;else{A=C;C=l;q=A}}c[C>>2]=B}while((F|0)!=(G|0))}}while(0);J=c[b+132>>2]|0;j:do if(J|0){I=J+(e<<2)|0;H=J+(f<<2)|0;G=J+(g<<2)|0;if((I+4|0)==(H|0)){F=c[I>>2]|0;E=G-H|0;w=E>>2;if(w|0)Vn(I|0,H|0,E|0)|0;c[I+(w<<2)>>2]=F;break}if((H+4|0)==(G|0)){F=G+-4|0;w=c[F>>2]|0;E=F-I|0;F=E>>2;if(F|0)Vn(G+(0-F<<2)|0,I|0, -E|0)|0;c[I>>2]=w;break}w=H;E=w-I>>2;F=G;G=F-w>>2;if((E|0)==(G|0)){w=I;q=H;while(1){x=c[w>>2]|0;c[w>>2]=c[q>>2];c[q>>2]=x;w=w+4|0;if((w|0)==(H|0))break j;else q=q+4|0}}else{K=E;L=G}while(1){q=(K|0)%(L|0)|0;if(!q)break;else{H=L;L=q;K=H}}if(L|0){G=I+(L<<2)|0;do{G=G+-4|0;H=c[G>>2]|0;q=G+(E<<2)|0;w=G;while(1){c[w>>2]=c[q>>2];x=F-q>>2;y=(E|0)<(x|0)?q+(E<<2)|0:I+(E-x<<2)|0;if((y|0)==(G|0))break;else{x=q;q=y;w=x}}c[q>>2]=H}while((G|0)!=(I|0))}}while(0);L=c[b+136>>2]|0;k:do if(L|0){K=L+(e<<2)|0;J=L+(f<<2)| -0;I=L+(g<<2)|0;G=I+-4|0;E=K;F=J;w=J;while(1){B=d[E>>0]|d[E+1>>0]<<8|d[E+2>>0]<<16|d[E+3>>0]<<24;C=F+1|0;x=a[C>>0]|0;y=F+2|0;D=a[y>>0]|0;A=F+3|0;l=a[A>>0]|0;a[E>>0]=a[F>>0]|0;a[E+1>>0]=x;a[E+2>>0]=D;a[E+3>>0]=l;a[F>>0]=B;a[C>>0]=B>>>8;a[y>>0]=B>>>16;a[A>>0]=B>>>24;B=E+4|0;A=F+4|0;M=(B|0)==(w|0);if((A|0)==(I|0))break;E=B;F=A;w=M?A:w}if(!M){F=K+(((G-J|0)>>>2)+1<<2)|0;E=w;A=w;while(1){B=F;y=E;while(1){C=d[B>>0]|d[B+1>>0]<<8|d[B+2>>0]<<16|d[B+3>>0]<<24;l=y+1|0;D=a[l>>0]|0;x=y+2|0;z=a[x>>0]|0;u=y+3|0;n= -a[u>>0]|0;a[B>>0]=a[y>>0]|0;a[B+1>>0]=D;a[B+2>>0]=z;a[B+3>>0]=n;a[y>>0]=C;a[l>>0]=C>>>8;a[x>>0]=C>>>16;a[u>>0]=C>>>24;B=B+4|0;N=y+4|0;O=(B|0)==(A|0);if((N|0)!=(I|0))break;if(O)break k;else y=A}F=B;E=N;A=O?N:A}}}while(0);N=c[b+148>>2]|0;l:do if(N|0){O=N+(e<<2)|0;M=N+(f<<2)|0;L=N+(g<<2)|0;if((O+4|0)==(M|0)){A=c[O>>2]|0;E=L-M|0;F=E>>2;if(F|0)Vn(O|0,M|0,E|0)|0;c[O+(F<<2)>>2]=A;break}if((M+4|0)==(L|0)){A=L+-4|0;F=c[A>>2]|0;E=A-O|0;A=E>>2;if(A|0)Vn(L+(0-A<<2)|0,O|0,E|0)|0;c[O>>2]=F;break}F=M;E=F-O>>2;A= -L;L=A-F>>2;if((E|0)==(L|0)){F=O;I=M;while(1){w=c[F>>2]|0;c[F>>2]=c[I>>2];c[I>>2]=w;F=F+4|0;if((F|0)==(M|0))break l;else I=I+4|0}}else{P=E;Q=L}while(1){I=(P|0)%(Q|0)|0;if(!I)break;else{M=Q;Q=I;P=M}}if(Q|0){L=O+(Q<<2)|0;do{L=L+-4|0;M=c[L>>2]|0;I=L+(E<<2)|0;F=L;while(1){c[F>>2]=c[I>>2];w=A-I>>2;J=(E|0)<(w|0)?I+(E<<2)|0:O+(E-w<<2)|0;if((J|0)==(L|0))break;else{w=I;I=J;F=w}}c[I>>2]=M}while((L|0)!=(O|0))}}while(0);Q=b+80|0;P=c[Q>>2]|0;if(P|0){N=P+(e<<2)|0;O=P+(f<<2)|0;L=P+(g<<2)|0;m:do if((N+4|0)!=(O|0)){if((O+ -4|0)==(L|0)){P=L+-4|0;E=c[P>>2]|0;A=P-N|0;P=A>>2;if(P|0)Vn(L+(0-P<<2)|0,N|0,A|0)|0;c[N>>2]=E;break}E=O;A=E-N>>2;P=L;F=P-E>>2;if((A|0)==(F|0)){E=N;B=O;while(1){w=c[E>>2]|0;c[E>>2]=c[B>>2];c[B>>2]=w;E=E+4|0;if((E|0)==(O|0))break m;else B=B+4|0}}else{R=A;S=F}while(1){B=(R|0)%(S|0)|0;if(!B)break;else{E=S;S=B;R=E}}if(S|0){F=N+(S<<2)|0;do{F=F+-4|0;E=c[F>>2]|0;B=F+(A<<2)|0;w=F;while(1){c[w>>2]=c[B>>2];J=P-B>>2;G=(A|0)<(J|0)?B+(A<<2)|0:N+(A-J<<2)|0;if((G|0)==(F|0))break;else{J=B;B=G;w=J}}c[B>>2]=E}while((F| -0)!=(N|0))}}else{F=c[N>>2]|0;A=L-O|0;P=A>>2;if(P|0)Vn(N|0,O|0,A|0)|0;c[N+(P<<2)>>2]=F}while(0);if((e|0)<(g|0)){N=c[Q>>2]|0;Q=g-f|0;O=e-f|0;L=e;do{S=c[N+(L<<2)>>2]|0;if(S|0){R=S+8|0;S=c[R>>2]|0;do if((S|0)>=(e|0))if((S|0)<(f|0)){T=Q+S|0;break}else{T=((S|0)<(g|0)?O:0)+S|0;break}else T=S;while(0);c[R>>2]=T}L=L+1|0}while((L|0)!=(g|0))}}L=c[b+280>>2]|0;if(L|0){T=L+(e<<2)|0;O=L+(f<<2)|0;Q=L+(g<<2)|0;n:do if((T+4|0)==(O|0)){L=c[T>>2]|0;N=Q-O|0;S=N>>2;if(S|0)Vn(T|0,O|0,N|0)|0;c[T+(S<<2)>>2]=L}else{if((O+ -4|0)==(Q|0)){L=Q+-4|0;S=c[L>>2]|0;N=L-T|0;L=N>>2;if(L|0)Vn(Q+(0-L<<2)|0,T|0,N|0)|0;c[T>>2]=S;break}S=O;N=S-T>>2;L=Q;F=L-S>>2;if((N|0)==(F|0)){S=T;P=O;while(1){A=c[S>>2]|0;c[S>>2]=c[P>>2];c[P>>2]=A;S=S+4|0;if((S|0)==(O|0))break n;else P=P+4|0}}else{U=N;V=F}while(1){P=(U|0)%(V|0)|0;if(!P)break;else{S=V;V=P;U=S}}if(!V)break;F=T+(V<<2)|0;do{F=F+-4|0;S=c[F>>2]|0;P=F+(N<<2)|0;R=F;while(1){c[R>>2]=c[P>>2];A=L-P>>2;w=(N|0)<(A|0)?P+(N<<2)|0:T+(N-A<<2)|0;if((w|0)==(F|0))break;else{A=P;P=w;R=A}}c[P>>2]=S}while((F| -0)!=(T|0))}while(0);T=c[b+44>>2]|0;V=c[b+288>>2]|0;if((T|0)>0){U=g-f|0;O=e-f|0;Q=0;do{F=V+(Q<<2)|0;N=c[F>>2]|0;do if((N|0)>=(e|0))if((N|0)<(f|0)){W=U+N|0;break}else{W=((N|0)<(g|0)?O:0)+N|0;break}else W=N;while(0);c[F>>2]=W;Q=Q+1|0}while((Q|0)!=(T|0))}}T=c[b+204>>2]|0;if((T|0)>0){Q=c[b+200>>2]|0;W=g-f|0;O=e-f|0;U=0;do{V=Q+(U<<3)|0;N=c[V>>2]|0;do if((N|0)>=(e|0))if((N|0)<(f|0)){X=W+N|0;break}else{X=((N|0)<(g|0)?O:0)+N|0;break}else X=N;while(0);c[V>>2]=X;U=U+1|0}while((U|0)<(T|0))}T=c[b+220>>2]|0;if((T| -0)>0){U=c[b+216>>2]|0;X=g-f|0;O=e-f|0;W=0;do{Q=U+(W*24|0)|0;N=c[Q>>2]|0;do if((N|0)>=(e|0))if((N|0)<(f|0)){Y=X+N|0;break}else{Y=((N|0)<(g|0)?O:0)+N|0;break}else Y=N;while(0);N=U+(W*24|0)+4|0;V=c[N>>2]|0;do if((V|0)>=(e|0))if((V|0)<(f|0)){Z=X+V|0;break}else{Z=((V|0)<(g|0)?O:0)+V|0;break}else Z=V;while(0);c[Q>>2]=Y;c[N>>2]=Z;W=W+1|0}while((W|0)<(T|0))}T=c[b+236>>2]|0;if((T|0)>0){W=c[b+232>>2]|0;Z=g-f|0;Y=e-f|0;O=0;do{X=W+(O*28|0)|0;U=c[X>>2]|0;do if((U|0)>=(e|0))if((U|0)<(f|0)){_=Z+U|0;break}else{_= -((U|0)<(g|0)?Y:0)+U|0;break}else _=U;while(0);c[X>>2]=_;O=O+1|0}while((O|0)<(T|0))}T=c[b+252>>2]|0;if((T|0)>0){O=c[b+248>>2]|0;_=g-f|0;Y=e-f|0;Z=0;do{W=O+(Z*20|0)|0;U=c[W>>2]|0;do if((U|0)>=(e|0))if((U|0)<(f|0)){$=_+U|0;break}else{$=((U|0)<(g|0)?Y:0)+U|0;break}else $=U;while(0);c[W>>2]=$;U=O+(Z*20|0)+4|0;X=c[U>>2]|0;do if((X|0)>=(e|0))if((X|0)<(f|0)){aa=_+X|0;break}else{aa=((X|0)<(g|0)?Y:0)+X|0;break}else aa=X;while(0);c[U>>2]=aa;Z=Z+1|0}while((Z|0)<(T|0))}T=c[b+268>>2]|0;if((T|0)>0){Z=c[b+264>>2]| -0;aa=g-f|0;Y=e-f|0;_=0;do{O=Z+(_*60|0)|0;$=c[O>>2]|0;do if(($|0)>=(e|0))if(($|0)<(f|0)){ba=aa+$|0;break}else{ba=(($|0)<(g|0)?Y:0)+$|0;break}else ba=$;while(0);c[O>>2]=ba;$=Z+(_*60|0)+4|0;U=c[$>>2]|0;do if((U|0)>=(e|0))if((U|0)<(f|0)){ca=aa+U|0;break}else{ca=((U|0)<(g|0)?Y:0)+U|0;break}else ca=U;while(0);c[$>>2]=ca;U=Z+(_*60|0)+8|0;O=c[U>>2]|0;do if((O|0)>=(e|0))if((O|0)<(f|0)){da=aa+O|0;break}else{da=((O|0)<(g|0)?Y:0)+O|0;break}else da=O;while(0);c[U>>2]=da;_=_+1|0}while((_|0)<(T|0))}T=c[b+312>>2]| -0;if(!T)return;b=e-f|0;_=g-f|0;da=T;do{T=da+4|0;Y=c[T>>2]|0;do if((Y|0)>=(e|0))if((Y|0)<(f|0)){ea=_+Y|0;break}else{ea=((Y|0)<(g|0)?b:0)+Y|0;break}else ea=Y;while(0);c[T>>2]=ea;Y=da+8|0;U=c[Y>>2]|0;aa=U+-1|0;do if((U|0)>(e|0))if((U|0)>(f|0)){fa=((U|0)<=(g|0)?b:0)+aa|0;break}else{fa=_+aa|0;break}else fa=aa;while(0);c[Y>>2]=fa+1;da=c[da+24>>2]|0}while((da|0)!=0);return}function _j(a,b,d){a=a|0;b=b|0;d=d|0;Wj(a,b,c[(c[a+88>>2]|0)+(b<<2)>>2]|(d?514:2));return}function $j(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,m=0;g=l;l=l+64|0;h=g+16|0;i=g;j=b+400|0;if(c[(c[j>>2]|0)+102876>>2]&2|0){k=0;l=g;return k|0}c[h>>2]=1860;m=h+12|0;c[h+4>>2]=b;c[h+8>>2]=d;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];a[h+28>>0]=f&1;f=h+32|0;c[f>>2]=0;_a[c[(c[d>>2]|0)+28>>2]&31](d,i,e,0);$i(c[j>>2]|0,h,i);k=c[f>>2]|0;l=g;return k|0}function ak(a){a=a|0;fn(a);return}function bk(a,b){a=a|0;b=b|0;return 0}function ck(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;f=b+4|0;if((c[f>>2]| -0)!=(d|0)){g=0;return g|0}h=c[b+8>>2]|0;if(!(Sa[c[(c[h>>2]|0)+16>>2]&15](h,b+12|0,(c[d+96>>2]|0)+(e<<3)|0)|0)){g=1;return g|0}d=c[f>>2]|0;Wj(d,e,c[(c[d+88>>2]|0)+(e<<2)>>2]|(a[b+28>>0]|0?514:2));e=b+32|0;c[e>>2]=(c[e>>2]|0)+1;g=1;return g|0}function dk(d,e,f,h){d=d|0;e=e|0;f=f|0;h=h|0;var i=0,j=0,k=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,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;i=l;l=l+96|0;j=i+48|0;k=i;m=+g[f+52>>2];if(m==0)n=+g[d+32>>2]*.75;else n=m;o=Ma[c[(c[e>>2]|0)+12>>2]&7](e)|0;if((o|0)<=0){l=i;return}p=k+4|0;q=k+8|0;r=k+28|0;s=e+4|0;t=k+12|0;u=e+12|0;v=k+20|0;w=k+12|0;x=k+24|0;y=k+16|0;z=j+20|0;A=j+21|0;B=j+22|0;D=j+23|0;E=j+24|0;F=j+28|0;G=j+32|0;H=h+12|0;I=h+8|0;J=h+4|0;K=j+4|0;L=j+8|0;M=f+28|0;N=f+8|0;O=f+12|0;P=f+20|0;Q=f+24|0;R=j+12|0;S=j+16|0;T=f+32|0;U=f+33|0;V=f+34|0;W=f+35|0;X=f+64|0;Y=f+68|0;Z=0;m=0;while(1){c[k>> -2]=816;c[p>>2]=1;g[q>>2]=.009999999776482582;c[r>>2]=0;c[r+4>>2]=0;c[r+8>>2]=0;c[r+12>>2]=0;b[r+16>>1]=0;if((c[s>>2]|0)==1){_=s;$=c[_+4>>2]|0;aa=p;c[aa>>2]=c[_>>2];c[aa+4>>2]=$;c[t>>2]=c[u>>2];c[t+4>>2]=c[u+4>>2];c[t+8>>2]=c[u+8>>2];c[t+12>>2]=c[u+12>>2];c[t+16>>2]=c[u+16>>2];c[t+20>>2]=c[u+20>>2];c[t+24>>2]=c[u+24>>2];c[t+28>>2]=c[u+28>>2];b[t+32>>1]=b[u+32>>1]|0}else ze(e,k,Z);ba=+g[w>>2];ca=+g[v>>2]-ba;da=+g[y>>2];ea=+g[x>>2]-da;fa=+C(+(ca*ca+ea*ea));a:do if(m>2]=0;c[j>>2]=c[f>>2];ja=+g[H>>2];ma=+g[I>>2];na=+g[h>>2]+(ka*ja-la*ma);oa=la*ja+ka*ma+ +g[J>>2];g[K>>2]=na;g[L>>2]=oa;ma=+g[M>>2];ka=ma*(na-+g[N>>2])+ +g[Q>>2];g[R>>2]=+g[P>>2]-ma*(oa-+g[O>>2]);g[S>>2]=ka;$=a[U>>0]|0;aa=a[V>>0]|0;_=a[W>>0]|0;a[z>>0]=a[T>>0]|0;a[A>>0]=$;a[B>>0]=aa;a[D>>0]=_;c[E>>2]=c[X>>2];c[F>>2]=c[Y>>2];Vj(d,j)|0;ka=n+ga;if(!(ka>2];ia=+g[y>>2]}}else pa=m;while(0);Z=Z+1|0;if((Z|0)>=(o|0))break;else m=pa-fa}l=i;return} -function ek(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,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,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;h=l;l=l+80|0;i=h+40|0;j=h+24|0;k=h+8|0;m=h;n=+g[e+52>>2];if(n==0)o=+g[b+32>>2]*.75;else o=n;g[j>>2]=0;g[j+4>>2]=0;g[j+8>>2]=0;g[j+12>>2]=1;_a[c[(c[d>>2]|0)+28>>2]&31](d,k,j,0);n=o*+A(+(+g[k+4>>2]/o));p=k+12|0;q=+g[p>>2];if(!(n>2];while(1){U=o*+A(+(+g[k>>2]/o));if(U>2]=V;g[s>>2]=T;if(Sa[c[(c[d>>2]|0)+16>>2]&15](d,j,m)|0){c[z>>2]=0;c[i>>2]=c[e>>2];U=+g[B>>2];W=+g[m>>2];X=+g[C>>2];Y=+g[s>>2];Z=+g[f>>2]+(U*W-X*Y);_=W*X+U*Y+ +g[D>>2];g[E>>2]=Z;g[F>>2]=_;Y=+g[G>>2];U=Y* -(Z-+g[H>>2])+ +g[K>>2];g[L>>2]=+g[J>>2]-Y*(_-+g[I>>2]);g[M>>2]=U;$=a[O>>0]|0;aa=a[P>>0]|0;ba=a[Q>>0]|0;a[t>>0]=a[N>>0]|0;a[u>>0]=$;a[v>>0]=aa;a[w>>0]=ba;c[x>>2]=c[R>>2];c[y>>2]=c[S>>2];Vj(b,i)|0}V=o+V;ca=+g[r>>2]}while(V>2]}else{da=q;ea=n}T=o+T;if(!(T>2]|0)<=0){f= -0;return f|0}g=a+12|0;a=0;while(1){h=c[(c[g>>2]|0)+(a<<2)>>2]|0;a=a+1|0;if(Sa[c[(c[h>>2]|0)+16>>2]&15](h,b,d)|0){f=1;i=5;break}if((a|0)>=(c[e>>2]|0)){f=0;i=5;break}}if((i|0)==5)return f|0;return 0}function jk(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}function kk(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return 0}function lk(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,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;e=l;l=l+16|0;f=e;g[b>>2]=3.4028234663852886E38;h=b+4|0;g[h>>2]= -3.4028234663852886E38;i=b+8|0;g[i>>2]=-3.4028234663852886E38;j=b+12|0;g[j>>2]=-3.4028234663852886E38;k=a+16|0;if((c[k>>2]|0)<=0){l=e;return}m=a+12|0;a=f+4|0;n=f+8|0;o=f+12|0;p=0;do{q=c[(c[m>>2]|0)+(p<<2)>>2]|0;r=Ma[c[(c[q>>2]|0)+12>>2]&7](q)|0;if((r|0)>0){q=0;do{s=c[(c[m>>2]|0)+(p<<2)>>2]|0;_a[c[(c[s>>2]|0)+28>>2]&31](s,f,d,q);t=+g[b>>2];u=+g[f>>2];v=+g[h>>2];w=+g[a>>2];g[b>>2]=t>2]=v>2];v=+g[n>>2];u=+g[j>>2];t=+g[o>>2];g[i>>2]=w>v?w:v;g[j>>2]=u>t?u:t;q=q+1|0}while((q|0)!= -(r|0))}p=p+1|0}while((p|0)<(c[k>>2]|0));l=e;return}function mk(a,b,c){a=a|0;b=b|0;c=+c;return}function nk(b,d){b=b|0;d=d|0;var e=0,f=0,h=0,i=0,k=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,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=l;l=l+64|0;f=e+16|0;h=e;i=b+400|0;if(c[(c[i>>2]|0)+102876>>2]&2|0){k=0;l=e;return k|0}m=+g[d+16>>2];n=d+8|0;o=c[n>>2]|0;p=c[n+4>>2]|0;n=h;c[n>>2]=o;c[n+4>>2]=p;q=+F(+m);g[h+ -8>>2]=q;r=+E(+m);g[h+12>>2]=r;n=b+44|0;s=c[n>>2]|0;t=c[d+40>>2]|0;m=(c[j>>2]=o,+g[j>>2]);u=(c[j>>2]=p,+g[j>>2]);a:do if(t|0)switch(c[t+4>>2]|0){case 3:case 1:{dk(b,t,d,h);break a;break}case 0:case 2:{ek(b,t,d,h);break a;break}default:break a}while(0);t=c[d+44>>2]|0;if(t|0){p=c[d+48>>2]|0;c[f>>2]=1888;c[f+12>>2]=t;c[f+16>>2]=p;ek(b,f,d,h)}p=d+56|0;if((c[p>>2]|0)>0){t=d+60|0;o=f+20|0;v=f+21|0;w=f+22|0;x=f+23|0;y=f+24|0;z=f+28|0;A=f+32|0;B=f+4|0;C=f+8|0;D=d+28|0;G=d+8|0;H=d+12|0;I=d+20|0;J=d+24|0;K= -f+12|0;L=f+16|0;M=d+32|0;N=d+33|0;O=d+34|0;P=d+35|0;Q=d+64|0;R=d+68|0;S=0;do{T=c[t>>2]|0;U=+g[T+(S<<3)>>2];V=+g[T+(S<<3)+4>>2];c[A>>2]=0;c[f>>2]=c[d>>2];W=m+(U*r-V*q);X=V*r+U*q+u;g[B>>2]=W;g[C>>2]=X;U=+g[D>>2];V=U*(W-+g[G>>2])+ +g[J>>2];g[K>>2]=+g[I>>2]-U*(X-+g[H>>2]);g[L>>2]=V;T=a[N>>0]|0;Y=a[O>>0]|0;Z=a[P>>0]|0;a[o>>0]=a[M>>0]|0;a[v>>0]=T;a[w>>0]=Y;a[x>>0]=Z;c[y>>2]=c[Q>>2];c[z>>2]=c[R>>2];Vj(b,f)|0;S=S+1|0}while((S|0)<(c[p>>2]|0));_=R}else _=d+68|0;R=c[n>>2]|0;n=Pl(c[i>>2]|0,80)|0;Kj(n);c[n>>2]= -b;c[n+4>>2]=s;c[n+8>>2]=R;c[n+16>>2]=c[d+36>>2];c[n+76>>2]=c[_>>2];_=n+60|0;c[_>>2]=c[h>>2];c[_+4>>2]=c[h+4>>2];c[_+8>>2]=c[h+8>>2];c[_+12>>2]=c[h+12>>2];c[n+20>>2]=0;h=b+312|0;_=c[h>>2]|0;c[n+24>>2]=_;if(_|0)c[_+20>>2]=n;c[h>>2]=n;h=b+308|0;c[h>>2]=(c[h>>2]|0)+1;if((s|0)<(R|0)){h=b+144|0;_=s;do{c[(c[h>>2]|0)+(_<<2)>>2]=n;_=_+1|0}while((_|0)!=(R|0))}_=c[d+4>>2]|0;h=n+12|0;p=c[h>>2]|0;S=(p^_)<<4&16|_;if(p&~S|0)a[b+20>>0]=1;p=b+16|0;z=c[p>>2]|0;if(S&~z|0){if(!(_&1))$=z;else{_=b+132|0;Q=c[_>>2]|0;if(!Q){y= -b+48|0;x=c[y>>2]|0;if(!x){Qj(b,256);aa=c[y>>2]|0}else aa=x;x=Pl(c[i>>2]|0,aa<<2)|0;Nn(x|0,0,c[y>>2]<<2|0)|0;ba=x;ca=c[p>>2]|0}else{ba=Q;ca=z}c[_>>2]=ba;$=ca}c[p>>2]=$|S}c[h>>2]=S;c[f>>2]=1932;ok(b,1);pk(b,s,R,f);f=d+72|0;d=c[f>>2]|0;if(!d)da=n;else{qk(b,d,n);da=c[f>>2]|0}k=da;l=e;return k|0}function ok(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0,i=0,j=0,k=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;d=l;l=l+16|0;e=d;f=a+200|0;h=c[f>>2]|0;i=a+204|0;j=c[i>>2]|0;k=h+(j<< -3)|0;if((j|0)>0){j=c[a+96>>2]|0;m=+g[a+36>>2];n=h;do{o=c[n>>2]|0;c[n+4>>2]=(~~(m*+g[j+(o<<3)+4>>2]+2048)>>>0<<20)+(~~(m*+g[j+(o<<3)>>2]*256+524288)>>>0);n=n+8|0}while(n>>>0>>0)}Hk(h,k,e);k=a+400|0;h=c[k>>2]|0;c[e>>2]=0;c[e+4>>2]=0;n=e+8|0;c[n>>2]=0;j=e+12|0;c[j>>2]=h+76;o=a+8|0;if(c[o>>2]&32768|0?c[h+102952>>2]|0:0)Ik(e,c[a+216>>2]|0,c[a+220>>2]|0,c[a+88>>2]|0);h=a+216|0;p=c[f>>2]|0;f=c[i>>2]|0;i=p+(f<<3)|0;q=a+220|0;c[q>>2]=0;if((f|0)>0){f=p;r=p;while(1){p=f+4|0;s=c[p>>2]|0;t=s+256|0;u=f;f=f+ -8|0;v=f>>>0>>0;if(v){w=f;do{if(t>>>0<(c[w+4>>2]|0)>>>0)break;Jk(a,c[u>>2]|0,c[w>>2]|0,h);w=w+8|0}while(w>>>0>>0);x=c[p>>2]|0}else x=s;w=x+1048320|0;a:do if(r>>>0>>0){t=r;while(1){if(w>>>0<=(c[t+4>>2]|0)>>>0){y=t;break a}z=t+8|0;if(z>>>0>>0)t=z;else{y=z;break}}}else y=r;while(0);w=x+1048832|0;b:do if(y>>>0>>0){s=y;do{if(w>>>0<(c[s+4>>2]|0)>>>0)break b;Jk(a,c[u>>2]|0,c[s>>2]|0,h);s=s+8|0}while(s>>>0>>0)}while(0);if(!v)break;else r=y}}if(c[o>>2]&131072|0?(o=c[(c[k>>2]|0)+102948>>2]| -0,o|0):0){k=c[h>>2]|0;y=c[q>>2]|0;r=k+(y*24|0)|0;c:do if(!y){A=k;B=28}else{i=k;while(1){if(c[i+20>>2]&131072|0?!(Wa[c[(c[o>>2]|0)+16>>2]&7](o,a,c[i>>2]|0,c[i+4>>2]|0)|0):0){A=i;B=28;break c}i=i+24|0;if((i|0)==(r|0)){C=r;break}}}while(0);d:do if((B|0)==28)if((A|0)==(r|0))C=r;else{k=A;y=A;while(1){i=k;do{v=i;i=i+24|0;if((i|0)==(r|0)){C=y;break d}if(!(c[v+44>>2]&131072))break}while(!(Wa[c[(c[o>>2]|0)+16>>2]&7](o,a,c[i>>2]|0,c[v+28>>2]|0)|0));c[y>>2]=c[i>>2];c[y+4>>2]=c[i+4>>2];c[y+8>>2]=c[i+8>>2];c[y+ -12>>2]=c[i+12>>2];c[y+16>>2]=c[i+16>>2];c[y+20>>2]=c[i+20>>2];k=i;y=y+24|0}}while(0);c[q>>2]=(C-(c[h>>2]|0)|0)/24|0}Kk(a,e);if(b){b=c[h>>2]|0;a=c[q>>2]|0;C=b+(a*24|0)|0;o=b;e:do if(!a){D=b;B=40}else{r=b;while(1){if(c[r+20>>2]&2|0){D=r;B=40;break e}r=r+24|0;if((r|0)==(C|0)){E=C;F=o;break}}}while(0);if((B|0)==40)if((D|0)==(C|0)){E=C;F=o}else{o=D;B=D;f:while(1){D=o;do{b=D;D=D+24|0;if((D|0)==(C|0))break f}while((c[b+44>>2]&2|0)!=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[B+16>>2]=c[D+16>>2];c[B+20>>2]=c[D+20>>2];o=D;B=B+24|0}E=B;F=c[h>>2]|0}c[q>>2]=(E-F|0)/24|0}F=c[e>>2]|0;if(!F){l=d;return}jm(c[j>>2]|0,F);c[e>>2]=0;c[n>>2]=0;l=d;return}function pk(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,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,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;f=l;l=l+48|0;h=f+40|0;i=f+12|0;j=f;k=(d|0)>(b|0);if(!k){l=f;return}m=c[a+ -88>>2]|0;n=b;o=0;do{o=c[m+(n<<2)>>2]|o;n=n+1|0}while((n|0)!=(d|0));if(o&1032|0){n=a+220|0;if((c[n>>2]|0)>0){m=a+216|0;p=a+88|0;q=a+144|0;r=a+248|0;s=a+252|0;t=a+256|0;u=a+96|0;v=a+260|0;w=0;do{x=c[m>>2]|0;y=c[x+(w*24|0)>>2]|0;z=c[x+(w*24|0)+4>>2]|0;A=c[p>>2]|0;B=c[A+(y<<2)>>2]|0;D=c[A+(z<<2)>>2]|0;A=c[q>>2]|0;E=c[A+(y<<2)>>2]|0;F=c[A+(z<<2)>>2]|0;do if((z|0)<(d|0)&(((y|0)>=(d|0)|(y|0)<(b|0)|(z|0)<(b|0))^1)?(A=D|B,!((A&2|0)!=0|(A&1032|0)==0)):0){if(!(Ya[c[(c[e>>2]|0)+8>>2]&31](e,y)|0)?!(Ya[c[(c[e>> -2]|0)+8>>2]&31](e,z)|0):0)break;if(!(B&28)){if(!E)break;if(!(c[E+12>>2]&2))break}if(!(D&28)){if(!F)break;if(!(c[F+12>>2]&2))break}if(Sa[c[(c[e>>2]|0)+12>>2]&15](e,y,z)|0){A=c[s>>2]|0;G=c[t>>2]|0;if((A|0)>=(G|0)?(H=(G|0)==0?256:G<<1,(G|0)<(H|0)):0){G=Pl(c[v>>2]|0,H*20|0)|0;I=c[r>>2]|0;if(I|0){Qn(G|0,I|0,(c[s>>2]|0)*20|0)|0;Ql(c[v>>2]|0,c[r>>2]|0,(c[t>>2]|0)*20|0)}c[t>>2]=H;c[r>>2]=G;J=c[s>>2]|0}else J=A;A=c[r>>2]|0;c[s>>2]=J+1;c[A+(J*20|0)>>2]=y;c[A+(J*20|0)+4>>2]=z;c[A+(J*20|0)+8>>2]=c[x+(w*24|0)+ -20>>2];if(!E)K=1;else K=+g[E+16>>2];if(!F)L=1;else L=+g[F+16>>2];g[A+(J*20|0)+12>>2]=K>2]|0;M=+g[G+(y<<3)>>2]-+g[G+(z<<3)>>2];N=+g[G+(y<<3)+4>>2]-+g[G+(z<<3)+4>>2];g[A+(J*20|0)+16>>2]=+C(+(M*M+N*N))}}while(0);w=w+1|0}while((w|0)<(c[n>>2]|0));O=r;P=s;Q=r}else{r=a+248|0;O=r;P=a+252|0;Q=r}r=c[O>>2]|0;s=c[P>>2]|0;n=r+(s*20|0)|0;c[h>>2]=27;w=s*20|0;s=(w|0)/20|0;if((w|0)>2560){w=(s|0)<107374182?s:107374182;while(1){J=en(w*20|0,10999)|0;if(J|0){R=J;S=w;break}w=w>>>1;if(!w){R=0;S=0;break}}T= -R;U=S}else{T=0;U=0}xk(r,n,h,s,T,U);if(T|0)fn(T);T=c[O>>2]|0;O=c[P>>2]|0;U=T+(O*20|0)|0;s=T;a:do switch(O|0){case 0:{V=T;W=20;break}case 1:{X=U;Y=s;break}default:{n=T;r=T+20|0;S=c[T>>2]|0;while(1){R=S;S=c[r>>2]|0;if((R|0)==(S|0)?(c[n+4>>2]|0)==(c[n+24>>2]|0):0){V=n;W=20;break a}R=r+20|0;if((R|0)==(U|0)){X=U;Y=s;break}else{w=r;r=R;n=w}}}}while(0);if((W|0)==20)if((V|0)==(U|0)){X=U;Y=s}else{s=V+20|0;T=V;b:while(1){V=T+4|0;O=s;do{n=O;O=O+20|0;if((O|0)==(U|0))break b;if((c[T>>2]|0)!=(c[O>>2]|0))break}while((c[V>> -2]|0)==(c[n+24>>2]|0));V=T+20|0;c[V>>2]=c[O>>2];c[V+4>>2]=c[O+4>>2];c[V+8>>2]=c[O+8>>2];c[V+12>>2]=c[O+12>>2];c[V+16>>2]=c[O+16>>2];s=O;T=V}X=T+20|0;Y=c[Q>>2]|0}c[P>>2]=(X-Y|0)/20|0}if(!(o&16)){l=f;return}Fj(i,(c[a+400>>2]|0)+76|0,d-b|0);if(k){k=a+88|0;o=a+144|0;Y=a+96|0;X=b;do{b=c[(c[k>>2]|0)+(X<<2)>>2]|0;do if(!(b&2)){P=c[(c[o>>2]|0)+(X<<2)>>2]|0;if(!(b&28)){if(!P)break;if(!(c[P+12>>2]&2))break}P=c[Y>>2]|0;Hj(i,P+(X<<3)|0,X,Ya[c[(c[e>>2]|0)+8>>2]&31](e,X)|0)}while(0);X=X+1|0}while((X|0)<(d|0))}L= -+g[a+32>>2]*.75;Ij(i,L*.5,L*2);c[j>>2]=1988;c[j+4>>2]=a;c[j+8>>2]=e;Jj(i,j);j=a+264|0;e=c[j>>2]|0;d=a+268|0;a=c[d>>2]|0;X=e+(a*60|0)|0;c[h>>2]=28;Y=a*60|0;a=(Y|0)/60|0;if((Y|0)>7680){Y=(a|0)<35791394?a:35791394;while(1){o=en(Y*60|0,10999)|0;if(o|0){Z=o;_=Y;break}Y=Y>>>1;if(!Y){Z=0;_=0;break}}$=Z;aa=_}else{$=0;aa=0}zk(e,X,h,a,$,aa);if($|0)fn($);$=c[j>>2]|0;aa=c[d>>2]|0;a=$+(aa*60|0)|0;h=$;c:do switch(aa|0){case 0:{ba=$;W=73;break}case 1:{ca=a;da=h;break}default:{X=$;e=$+60|0;_=c[$>>2]|0;while(1){Z= -_;_=c[e>>2]|0;if(((Z|0)==(_|0)?(c[X+4>>2]|0)==(c[X+64>>2]|0):0)?(c[X+8>>2]|0)==(c[X+68>>2]|0):0){ba=X;W=73;break c}Z=e+60|0;if((Z|0)==(a|0)){ca=a;da=h;break}else{Y=e;e=Z;X=Y}}}}while(0);if((W|0)==73)if((ba|0)==(a|0)){ca=a;da=h}else{h=ba+60|0;W=ba;d:while(1){ba=W+4|0;$=W+8|0;aa=h;do{X=aa;aa=aa+60|0;if((aa|0)==(a|0))break d;if((c[W>>2]|0)!=(c[aa>>2]|0))break;if((c[ba>>2]|0)!=(c[X+64>>2]|0))break}while((c[$>>2]|0)==(c[X+68>>2]|0));$=W+60|0;ba=$;X=aa;e=ba+60|0;do{c[ba>>2]=c[X>>2];ba=ba+4|0;X=X+4|0}while((ba| -0)<(e|0));h=aa;W=$}ca=W+60|0;da=c[j>>2]|0}c[d>>2]=(ca-da|0)/60|0;Gj(i);l=f;return}function qk(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,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;f=l;l=l+16|0;g=f;h=b+400|0;if(c[(c[h>>2]|0)+102876>>2]&2|0){l=f;return}i=e+4|0;j=e+8|0;Zj(b,c[i>>2]|0,c[j>>2]|0,c[b+44>>2]|0);k=d+4|0;m=d+8|0;Zj(b,c[k>>2]|0,c[m>>2]|0,c[i>>2]|0);n=c[i>>2]|0;c[g>>2]=1960;c[g+4>>2]=n;ok(b,1);pk(b,c[k>>2]|0,c[j>>2]|0,g);g=c[i>>2]|0;k=c[j>>2]|0;if((g|0)<(k|0)){n=b+144|0;o=g;do{c[(c[n>> -2]|0)+(o<<2)>>2]=d;o=o+1|0}while((o|0)<(k|0))}k=d+12|0;d=c[k>>2]|0;o=c[e+12>>2]|d;n=(o^d)<<4&16|o;if(d&~n|0)a[b+20>>0]=1;d=b+16|0;g=c[d>>2]|0;if(n&~g|0){if(!(o&1))p=g;else{o=b+132|0;q=c[o>>2]|0;if(!q){r=b+48|0;s=c[r>>2]|0;if(!s){Qj(b,256);t=c[r>>2]|0}else t=s;s=Pl(c[h>>2]|0,t<<2)|0;Nn(s|0,0,c[r>>2]<<2|0)|0;u=s;v=c[d>>2]|0}else{u=q;v=g}c[o>>2]=u;p=v}c[d>>2]=p|n}c[k>>2]=n;c[m>>2]=c[j>>2];c[i>>2]=c[j>>2];Tj(b,e);l=f;return}function rk(a){a=a|0;return}function sk(a){a=a|0;fn(a);return}function tk(a,b){a= -a|0;b=b|0;return 1}function uk(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=c[a+4>>2]|0;a=(e|0)<=(b|0);b=(e|0)>(d|0);if(a|b)return b&a|0;else return 1;return 0}function vk(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;f=c[a+4>>2]|0;a=(f|0)>(b|0);b=(f|0)>(d|0);if((f|0)>(e|0)|(a|b))return(f|0)<=(e|0)|a&b^1|0;else return 0;return 0}function wk(a,b){a=a|0;b=b|0;var d=0,e=0;d=(c[a>>2]|0)-(c[b>>2]|0)|0;if(!d){e=(c[a+4>>2]|0)<(c[b+4>>2]|0);return e|0}else{e=(d|0)<0;return e|0}return 0}function xk(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,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;h=l;l=l+32|0;i=h;switch(e|0){case 2:{j=b+-20|0;if(!(Ya[c[d>>2]&31](j,a)|0)){l=h;return}c[i>>2]=c[a>>2];c[i+4>>2]=c[a+4>>2];c[i+8>>2]=c[a+8>>2];c[i+12>>2]=c[a+12>>2];c[i+16>>2]=c[a+16>>2];c[a>>2]=c[j>>2];c[a+4>>2]=c[j+4>>2];c[a+8>>2]=c[j+8>>2];c[a+12>>2]=c[j+12>>2];c[a+16>>2]=c[j+16>>2];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];c[j+16>>2]=c[i+16>>2];l=h;return}case 1:case 0:{l= -h;return}default:{if((e|0)<129){if((a|0)==(b|0)){l=h;return}j=a+20|0;if((j|0)==(b|0)){l=h;return}k=j;do{c[i>>2]=c[k>>2];c[i+4>>2]=c[k+4>>2];c[i+8>>2]=c[k+8>>2];c[i+12>>2]=c[k+12>>2];c[i+16>>2]=c[k+16>>2];a:do if((k|0)==(a|0))m=a;else{j=k;while(1){n=j;j=j+-20|0;if(!(Ya[c[d>>2]&31](i,j)|0)){m=n;break a}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];c[n+16>>2]=c[j+16>>2];if((j|0)==(a|0)){m=a;break}}}while(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];c[m+16>>2]=c[i+16>>2];k=k+20|0}while((k|0)!=(b|0));l=h;return}k=e>>>1;i=a+(k*20|0)|0;if((e|0)>(g|0)){xk(a,i,d,k,f,g);m=e-k|0;xk(i,b,d,m,f,g);Gk(a,i,b,d,k,m,f,g);l=h;return}Fk(a,i,d,k,f);g=f+(k*20|0)|0;Fk(i,b,d,e-k|0,g);k=f+(e*20|0)|0;e=a;a=g;b=f;while(1){if((a|0)==(k|0)){o=16;break}if(Ya[c[d>>2]&31](a,b)|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];c[e+16>>2]=c[a+16>>2];p=a+20|0;q=b}else{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[e+16>>2]=c[b+16>>2];p=a;q=b+20|0}r=e+20|0;if((q|0)==(g|0)){o=14;break}else{e=r;a=p;b=q}}if((o|0)==14){if((p|0)==(k|0)){l=h;return}else{s=r;t=p}while(1){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];c[s+16>>2]=c[t+16>>2];t=t+20|0;if((t|0)==(k|0))break;else s=s+20|0}l=h;return}else if((o|0)==16){if((b|0)==(g|0)){l=h;return}else{u=e;v=b}while(1){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[u+16>>2]=c[v+16>>2];v=v+ -20|0;if((v|0)==(g|0))break;else u=u+20|0}l=h;return}}}}function yk(a,b){a=a|0;b=b|0;var d=0,e=0;d=(c[a>>2]|0)-(c[b>>2]|0)|0;if(d|0){e=(d|0)<0;return e|0}d=(c[a+4>>2]|0)-(c[b+4>>2]|0)|0;if(!d){e=(c[a+8>>2]|0)<(c[b+8>>2]|0);return e|0}else{e=(d|0)<0;return e|0}return 0}function zk(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,k=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;h=l;l=l+64|0;i=h;switch(e|0){case 2:{j=b+-60|0;if(!(Ya[c[d>>2]&31](j,a)|0)){l=h;return}k=i;m=a;n=k+60| -0;do{c[k>>2]=c[m>>2];k=k+4|0;m=m+4|0}while((k|0)<(n|0));k=a;m=j;n=k+60|0;do{c[k>>2]=c[m>>2];k=k+4|0;m=m+4|0}while((k|0)<(n|0));k=j;m=i;n=k+60|0;do{c[k>>2]=c[m>>2];k=k+4|0;m=m+4|0}while((k|0)<(n|0));l=h;return}case 1:case 0:{l=h;return}default:{if((e|0)<129){if((a|0)==(b|0)){l=h;return}j=a+60|0;if((j|0)==(b|0)){l=h;return}o=j;do{k=i;m=o;n=k+60|0;do{c[k>>2]=c[m>>2];k=k+4|0;m=m+4|0}while((k|0)<(n|0));a:do if((o|0)==(a|0))p=a;else{j=o;while(1){q=j;j=j+-60|0;if(!(Ya[c[d>>2]&31](i,j)|0)){p=q;break a}k= -q;m=j;n=k+60|0;do{c[k>>2]=c[m>>2];k=k+4|0;m=m+4|0}while((k|0)<(n|0));if((j|0)==(a|0)){p=a;break}}}while(0);k=p;m=i;n=k+60|0;do{c[k>>2]=c[m>>2];k=k+4|0;m=m+4|0}while((k|0)<(n|0));o=o+60|0}while((o|0)!=(b|0));l=h;return}o=e>>>1;i=a+(o*60|0)|0;if((e|0)>(g|0)){zk(a,i,d,o,f,g);p=e-o|0;zk(i,b,d,p,f,g);Bk(a,i,b,d,o,p,f,g);l=h;return}Ak(a,i,d,o,f);g=f+(o*60|0)|0;Ak(i,b,d,e-o|0,g);o=f+(e*60|0)|0;e=a;a=g;b=f;while(1){if((a|0)==(o|0)){r=16;break}if(Ya[c[d>>2]&31](a,b)|0){k=e;m=a;n=k+60|0;do{c[k>>2]=c[m>>2]; -k=k+4|0;m=m+4|0}while((k|0)<(n|0));s=a+60|0;t=b}else{k=e;m=b;n=k+60|0;do{c[k>>2]=c[m>>2];k=k+4|0;m=m+4|0}while((k|0)<(n|0));s=a;t=b+60|0}u=e+60|0;if((t|0)==(g|0)){r=14;break}else{e=u;a=s;b=t}}if((r|0)==14){if((s|0)==(o|0)){l=h;return}else{v=u;w=s}while(1){k=v;m=w;n=k+60|0;do{c[k>>2]=c[m>>2];k=k+4|0;m=m+4|0}while((k|0)<(n|0));w=w+60|0;if((w|0)==(o|0))break;else v=v+60|0}l=h;return}else if((r|0)==16){if((b|0)==(g|0)){l=h;return}else{x=e;y=b}while(1){k=x;m=y;n=k+60|0;do{c[k>>2]=c[m>>2];k=k+4|0;m=m+4| -0}while((k|0)<(n|0));y=y+60|0;if((y|0)==(g|0))break;else x=x+60|0}l=h;return}}}}function Ak(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;switch(e|0){case 1:{g=f;h=a;i=g+60|0;do{c[g>>2]=c[h>>2];g=g+4|0;h=h+4|0}while((g|0)<(i|0));return}case 2:{j=b+-60|0;if(Ya[c[d>>2]&31](j,a)|0){g=f;h=j;i=g+60|0;do{c[g>>2]=c[h>>2];g=g+4|0;h=h+4|0}while((g|0)<(i|0));g=f+60|0;h=a;i=g+60|0;do{c[g>>2]=c[h>>2];g=g+4|0;h=h+4|0}while((g|0)<(i|0));return}else{g= -f;h=a;i=g+60|0;do{c[g>>2]=c[h>>2];g=g+4|0;h=h+4|0}while((g|0)<(i|0));g=f+60|0;h=j;i=g+60|0;do{c[g>>2]=c[h>>2];g=g+4|0;h=h+4|0}while((g|0)<(i|0));return}break}case 0:return;default:{if((e|0)<9){if((a|0)==(b|0))return;g=f;h=a;i=g+60|0;do{c[g>>2]=c[h>>2];g=g+4|0;h=h+4|0}while((g|0)<(i|0));j=a+60|0;if((j|0)==(b|0))return;else{k=f;l=j}do{j=k;k=k+60|0;if(Ya[c[d>>2]&31](l,j)|0){g=k;h=j;i=g+60|0;do{c[g>>2]=c[h>>2];g=g+4|0;h=h+4|0}while((g|0)<(i|0));a:do if((j|0)==(f|0))m=f;else{n=j;while(1){o=n;n=n+-60|0; -if(!(Ya[c[d>>2]&31](l,n)|0)){m=o;break a}g=o;h=n;i=g+60|0;do{c[g>>2]=c[h>>2];g=g+4|0;h=h+4|0}while((g|0)<(i|0));if((n|0)==(f|0)){m=f;break}}}while(0);g=m;h=l;i=g+60|0;do{c[g>>2]=c[h>>2];g=g+4|0;h=h+4|0}while((g|0)<(i|0))}else{g=k;h=l;i=g+60|0;do{c[g>>2]=c[h>>2];g=g+4|0;h=h+4|0}while((g|0)<(i|0))}l=l+60|0}while((l|0)!=(b|0));return}l=e>>>1;k=a+(l*60|0)|0;zk(a,k,d,l,f,l);m=e-l|0;zk(k,b,d,m,f+(l*60|0)|0,m);b:do if(!l){p=k;q=f}else{m=k;e=f;j=a;while(1){if((m|0)==(b|0))break;if(Ya[c[d>>2]&31](m,j)|0){g= -e;h=m;i=g+60|0;do{c[g>>2]=c[h>>2];g=g+4|0;h=h+4|0}while((g|0)<(i|0));r=j;s=m+60|0}else{g=e;h=j;i=g+60|0;do{c[g>>2]=c[h>>2];g=g+4|0;h=h+4|0}while((g|0)<(i|0));r=j+60|0;s=m}n=e+60|0;if((r|0)==(k|0)){p=s;q=n;break b}else{m=s;e=n;j=r}}if((j|0)==(k|0))return;else{t=j;u=e}while(1){g=u;h=t;i=g+60|0;do{c[g>>2]=c[h>>2];g=g+4|0;h=h+4|0}while((g|0)<(i|0));t=t+60|0;if((t|0)==(k|0))break;else u=u+60|0}return}while(0);if((p|0)==(b|0))return;else{v=p;w=q}while(1){g=w;h=v;i=g+60|0;do{c[g>>2]=c[h>>2];g=g+4|0;h=h+ -4|0}while((g|0)<(i|0));v=v+60|0;if((v|0)==(b|0))break;else w=w+60|0}return}}}function Bk(a,b,d,e,f,g,h,i){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=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;j=l;l=l+64|0;k=j+4|0;m=j;if(!g){l=j;return}n=a;a=b;b=d;d=f;f=g;a:while(1){if(!((f|0)>(i|0)&(d|0)>(i|0))){o=5;break}if(!d){o=65;break}else{p= -n;q=d}while(1){if(Ya[c[e>>2]&31](a,p)|0)break;g=q+-1|0;if(!g){o=65;break a}else{p=p+60|0;q=g}}if((q|0)<(f|0)){g=(f|0)/2|0;r=a+(g*60|0)|0;s=p;t=a-s|0;if(!t)u=p;else{v=(t|0)/60|0;t=p;while(1){w=(v|0)/2|0;x=t+(w*60|0)|0;y=Ya[c[e>>2]&31](r,x)|0;v=y?w:v+-1-w|0;w=y?t:x+60|0;if(!v){u=w;break}else t=w}}z=r;A=u;B=g;C=(u-s|0)/60|0}else{if((q|0)==1){o=36;break}t=(q|0)/2|0;v=p+(t*60|0)|0;w=a;x=b-w|0;if(!x)D=a;else{y=(x|0)/60|0;x=a;while(1){E=(y|0)/2|0;F=x+(E*60|0)|0;G=Ya[c[e>>2]&31](F,v)|0;y=G?y+-1-E|0:E;E=G? -F+60|0:x;if(!y){D=E;break}else x=E}}z=D;A=v;B=(D-w|0)/60|0;C=t}x=q-C|0;y=f-B|0;b:do if((A|0)!=(a|0))if((a|0)==(z|0))H=A;else{if((A+60|0)==(a|0)){I=k;J=A;K=I+60|0;do{c[I>>2]=c[J>>2];I=I+4|0;J=J+4|0}while((I|0)<(K|0));s=z-a|0;if(s|0)Vn(A|0,a|0,s|0)|0;g=A+(((s|0)/60|0)*60|0)|0;I=g;J=k;K=I+60|0;do{c[I>>2]=c[J>>2];I=I+4|0;J=J+4|0}while((I|0)<(K|0));H=g;break}if((a+60|0)==(z|0)){s=z+-60|0;I=k;J=s;K=I+60|0;do{c[I>>2]=c[J>>2];I=I+4|0;J=J+4|0}while((I|0)<(K|0));g=s-A|0;if(!g){L=z;M=A}else{r=z+(((g|0)/-60| -0)*60|0)|0;Vn(r|0,A|0,g|0)|0;L=r;M=A}I=M;J=k;K=I+60|0;do{c[I>>2]=c[J>>2];I=I+4|0;J=J+4|0}while((I|0)<(K|0));H=L;break}s=a;r=(s-A|0)/60|0;g=z;E=(g-s|0)/60|0;if((r|0)==(E|0)){s=a;F=A;while(1){I=k;J=F;K=I+60|0;do{c[I>>2]=c[J>>2];I=I+4|0;J=J+4|0}while((I|0)<(K|0));I=F;J=s;K=I+60|0;do{c[I>>2]=c[J>>2];I=I+4|0;J=J+4|0}while((I|0)<(K|0));I=s;J=k;K=I+60|0;do{c[I>>2]=c[J>>2];I=I+4|0;J=J+4|0}while((I|0)<(K|0));F=F+60|0;if((F|0)==(a|0)){H=a;break b}else s=s+60|0}}else{N=r;O=E}while(1){s=(N|0)%(O|0)|0;if(!s)break; -else{F=O;O=s;N=F}}if(O|0){F=A+(O*60|0)|0;do{F=F+-60|0;I=k;J=F;K=I+60|0;do{c[I>>2]=c[J>>2];I=I+4|0;J=J+4|0}while((I|0)<(K|0));s=F+(r*60|0)|0;G=F;while(1){I=G;J=s;K=I+60|0;do{c[I>>2]=c[J>>2];I=I+4|0;J=J+4|0}while((I|0)<(K|0));P=(g-s|0)/60|0;Q=(r|0)<(P|0)?s+(r*60|0)|0:A+((r-P|0)*60|0)|0;if((Q|0)==(F|0))break;else{P=s;s=Q;G=P}}I=s;J=k;K=I+60|0;do{c[I>>2]=c[J>>2];I=I+4|0;J=J+4|0}while((I|0)<(K|0))}while((F|0)!=(A|0))}H=A+(E*60|0)|0}else H=z;while(0);if((B+C|0)<(y+x|0)){Bk(p,A,H,e,C,B,h,i);R=z;S=b;T=y; -U=H;V=x}else{Bk(H,z,b,e,x,y,h,i);R=A;S=H;T=B;U=p;V=C}if(!T){o=65;break}else{n=U;a=R;b=S;d=V;f=T}}if((o|0)==5){if((d|0)>(f|0)){if((a|0)==(b|0))W=h;else{f=a;d=h;while(1){I=d;J=f;K=I+60|0;do{c[I>>2]=c[J>>2];I=I+4|0;J=J+4|0}while((I|0)<(K|0));f=f+60|0;y=d+60|0;if((f|0)==(b|0)){W=y;break}else d=y}}c[k>>2]=a;c[m>>2]=W;c:do if((W|0)!=(h|0)){if((a|0)==(n|0)){X=W;Y=b}else{d=a;f=W;y=b;while(1){x=d+-60|0;T=f+-60|0;V=y+-60|0;if(Ya[c[e>>2]&31](x,T)|0){I=V;J=T;K=I+60|0;do{c[I>>2]=c[J>>2];I=I+4|0;J=J+4|0}while((I| -0)<(K|0));Z=m;_=f}else{I=V;J=x;K=I+60|0;do{c[I>>2]=c[J>>2];I=I+4|0;J=J+4|0}while((I|0)<(K|0));Z=k;_=d}c[Z>>2]=_+-60;x=c[m>>2]|0;if((x|0)==(h|0))break c;d=c[k>>2]|0;if((d|0)==(n|0)){X=x;Y=V;break}else{f=x;y=V}}}if((X|0)!=(h|0)){y=X;f=Y;do{y=y+-60|0;f=f+-60|0;I=f;J=y;K=I+60|0;do{c[I>>2]=c[J>>2];I=I+4|0;J=J+4|0}while((I|0)<(K|0))}while((y|0)!=(h|0))}}while(0);l=j;return}if((n|0)==(a|0)){l=j;return}else{$=n;aa=h}do{I=aa;J=$;K=I+60|0;do{c[I>>2]=c[J>>2];I=I+4|0;J=J+4|0}while((I|0)<(K|0));$=$+60|0;aa=aa+ -60|0}while(($|0)!=(a|0));$=c[e>>2]|0;if((aa|0)==(h|0)){l=j;return}else{ba=n;ca=a;da=h}while(1){if((ca|0)==(b|0))break;if(Ya[$&31](ca,da)|0){I=ba;J=ca;K=I+60|0;do{c[I>>2]=c[J>>2];I=I+4|0;J=J+4|0}while((I|0)<(K|0));ea=da;fa=ca+60|0}else{I=ba;J=da;K=I+60|0;do{c[I>>2]=c[J>>2];I=I+4|0;J=J+4|0}while((I|0)<(K|0));ea=da+60|0;fa=ca}if((ea|0)==(aa|0)){o=65;break}else{ba=ba+60|0;ca=fa;da=ea}}if((o|0)==65){l=j;return}ea=aa-da|0;if(!ea){l=j;return}Vn(ba|0,da|0,ea|0)|0;l=j;return}else if((o|0)==36){I=k;J=p;K=I+ -60|0;do{c[I>>2]=c[J>>2];I=I+4|0;J=J+4|0}while((I|0)<(K|0));I=p;J=a;K=I+60|0;do{c[I>>2]=c[J>>2];I=I+4|0;J=J+4|0}while((I|0)<(K|0));I=a;J=k;K=I+60|0;do{c[I>>2]=c[J>>2];I=I+4|0;J=J+4|0}while((I|0)<(K|0));l=j;return}else if((o|0)==65){l=j;return}}function Ck(a){a=a|0;return}function Dk(a){a=a|0;fn(a);return}function Ek(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,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;f=a+4|0;h=c[(c[f>>2]|0)+ -88>>2]|0;i=c[h+(d<<2)>>2]|c[h+(b<<2)>>2]|c[h+(e<<2)>>2];if(!(i&16))return;h=c[a+8>>2]|0;if(!(Wa[c[(c[h>>2]|0)+16>>2]&7](h,b,d,e)|0))return;h=c[f>>2]|0;f=c[h+96>>2]|0;a=f+(b<<3)|0;j=+g[a>>2];k=f+(d<<3)|0;l=+g[k>>2];m=j-l;n=f+(b<<3)+4|0;o=+g[n>>2];p=f+(d<<3)+4|0;q=+g[p>>2];r=o-q;s=f+(e<<3)|0;t=+g[s>>2];u=l-t;v=f+(e<<3)+4|0;l=+g[v>>2];w=q-l;q=t-j;j=l-o;o=+g[h+40>>2]*4;if(m*m+r*r>o)return;if(u*u+w*w>o)return;if(q*q+j*j>o)return;f=c[h+144>>2]|0;x=c[f+(b<<2)>>2]|0;y=c[f+(d<<2)>>2]|0;z=c[f+(e<<2)>>2]|0; -f=h+264|0;A=h+268|0;B=c[A>>2]|0;C=h+272|0;D=c[C>>2]|0;if((B|0)>=(D|0)?(E=(D|0)==0?256:D<<1,(D|0)<(E|0)):0){D=h+276|0;h=Pl(c[D>>2]|0,E*60|0)|0;F=c[f>>2]|0;if(!F)G=f;else{Qn(h|0,F|0,(c[A>>2]|0)*60|0)|0;Ql(c[D>>2]|0,c[f>>2]|0,(c[C>>2]|0)*60|0);G=f}c[C>>2]=E;c[G>>2]=h;H=c[A>>2]|0}else H=B;B=c[f>>2]|0;c[A>>2]=H+1;c[B+(H*60|0)>>2]=b;c[B+(H*60|0)+4>>2]=d;c[B+(H*60|0)+8>>2]=e;c[B+(H*60|0)+12>>2]=i;if(!x)I=1;else I=+g[x+16>>2];if(!y)J=1;else J=+g[y+16>>2];o=I>2];g[B+(H*60|0)+ -16>>2]=o>2];o=+g[n>>2];J=(K+ +g[k>>2]+ +g[s>>2])*.3333333432674408;I=(o+ +g[p>>2]+ +g[v>>2])*.3333333432674408;g[B+(H*60|0)+20>>2]=K-J;g[B+(H*60|0)+24>>2]=o-I;o=+g[p>>2]-I;g[B+(H*60|0)+28>>2]=+g[k>>2]-J;g[B+(H*60|0)+32>>2]=o;o=+g[v>>2]-I;g[B+(H*60|0)+36>>2]=+g[s>>2]-J;g[B+(H*60|0)+40>>2]=o;g[B+(H*60|0)+44>>2]=-(m*q+r*j);g[B+(H*60|0)+48>>2]=-(m*u+r*w);g[B+(H*60|0)+52>>2]=-(u*q+w*j);j=+g[a>>2];w=+g[p>>2];q=+g[n>>2];u=+g[k>>2];r=+g[v>>2];m=+g[s>>2];g[B+(H*60|0)+56>>2]=q*m-j*r+(j*w-q*u+ -(u*r-w*m));return}function Fk(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;switch(e|0){case 1:{c[f>>2]=c[a>>2];c[f+4>>2]=c[a+4>>2];c[f+8>>2]=c[a+8>>2];c[f+12>>2]=c[a+12>>2];c[f+16>>2]=c[a+16>>2];return}case 2:{g=b+-20|0;if(Ya[c[d>>2]&31](g,a)|0){c[f>>2]=c[g>>2];c[f+4>>2]=c[g+4>>2];c[f+8>>2]=c[g+8>>2];c[f+12>>2]=c[g+12>>2];c[f+16>>2]=c[g+16>>2];h=f+20|0;c[h>>2]=c[a>>2];c[h+4>>2]=c[a+4>>2];c[h+8>>2]=c[a+8>>2];c[h+12>>2]=c[a+12>>2];c[h+16>>2]=c[a+ -16>>2];return}else{c[f>>2]=c[a>>2];c[f+4>>2]=c[a+4>>2];c[f+8>>2]=c[a+8>>2];c[f+12>>2]=c[a+12>>2];c[f+16>>2]=c[a+16>>2];h=f+20|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];c[h+16>>2]=c[g+16>>2];return}break}case 0:return;default:{if((e|0)<9){if((a|0)==(b|0))return;c[f>>2]=c[a>>2];c[f+4>>2]=c[a+4>>2];c[f+8>>2]=c[a+8>>2];c[f+12>>2]=c[a+12>>2];c[f+16>>2]=c[a+16>>2];g=a+20|0;if((g|0)==(b|0))return;else{i=f;j=g}do{g=i;i=i+20|0;if(Ya[c[d>>2]&31](j,g)|0){c[i>>2]=c[g>>2]; -c[i+4>>2]=c[g+4>>2];c[i+8>>2]=c[g+8>>2];c[i+12>>2]=c[g+12>>2];c[i+16>>2]=c[g+16>>2];a:do if((g|0)==(f|0))k=f;else{h=g;while(1){l=h;h=h+-20|0;if(!(Ya[c[d>>2]&31](j,h)|0)){k=l;break a}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];c[l+16>>2]=c[h+16>>2];if((h|0)==(f|0)){k=f;break}}}while(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];c[k+16>>2]=c[j+16>>2]}else{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]; -c[i+16>>2]=c[j+16>>2]}j=j+20|0}while((j|0)!=(b|0));return}j=e>>>1;i=a+(j*20|0)|0;xk(a,i,d,j,f,j);k=e-j|0;xk(i,b,d,k,f+(j*20|0)|0,k);b:do if(!j){m=i;n=f}else{k=i;e=f;g=a;while(1){if((k|0)==(b|0))break;if(Ya[c[d>>2]&31](k,g)|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];c[e+16>>2]=c[k+16>>2];o=g;p=k+20|0}else{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];c[e+16>>2]=c[g+16>>2];o=g+20|0;p=k}h=e+20|0;if((o|0)==(i|0)){m=p;n=h;break b}else{k= -p;e=h;g=o}}if((g|0)==(i|0))return;else{q=g;r=e}while(1){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];c[r+16>>2]=c[q+16>>2];q=q+20|0;if((q|0)==(i|0))break;else r=r+20|0}return}while(0);if((m|0)==(b|0))return;else{s=m;t=n}while(1){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];c[t+16>>2]=c[s+16>>2];s=s+20|0;if((s|0)==(b|0))break;else t=t+20|0}return}}}function Gk(a,b,d,e,f,g,h,i){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0, -k=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;j=l;l=l+32|0;k=j+4|0;m=j;if(!g){l=j;return}n=a;a=b;b=d;d=f;f=g;a:while(1){if(!((f|0)>(i|0)&(d|0)>(i|0))){o=5;break}if(!d){o=65;break}else{p=n;q=d}while(1){if(Ya[c[e>>2]&31](a,p)|0)break;g=q+-1|0;if(!g){o=65;break a}else{p=p+20|0;q=g}}if((q|0)<(f|0)){g=(f|0)/2|0;r=a+(g*20|0)|0;s=p;t=a-s|0;if(!t)u=p;else{v=(t|0)/20| -0;t=p;while(1){w=(v|0)/2|0;x=t+(w*20|0)|0;y=Ya[c[e>>2]&31](r,x)|0;v=y?w:v+-1-w|0;w=y?t:x+20|0;if(!v){u=w;break}else t=w}}z=r;A=u;B=g;C=(u-s|0)/20|0}else{if((q|0)==1){o=36;break}t=(q|0)/2|0;v=p+(t*20|0)|0;w=a;x=b-w|0;if(!x)D=a;else{y=(x|0)/20|0;x=a;while(1){E=(y|0)/2|0;F=x+(E*20|0)|0;G=Ya[c[e>>2]&31](F,v)|0;y=G?y+-1-E|0:E;E=G?F+20|0:x;if(!y){D=E;break}else x=E}}z=D;A=v;B=(D-w|0)/20|0;C=t}x=q-C|0;y=f-B|0;b:do if((A|0)!=(a|0))if((a|0)==(z|0))H=A;else{if((A+20|0)==(a|0)){c[k>>2]=c[A>>2];c[k+4>>2]=c[A+ -4>>2];c[k+8>>2]=c[A+8>>2];c[k+12>>2]=c[A+12>>2];c[k+16>>2]=c[A+16>>2];s=z-a|0;if(s|0)Vn(A|0,a|0,s|0)|0;g=A+(((s|0)/20|0)*20|0)|0;c[g>>2]=c[k>>2];c[g+4>>2]=c[k+4>>2];c[g+8>>2]=c[k+8>>2];c[g+12>>2]=c[k+12>>2];c[g+16>>2]=c[k+16>>2];H=g;break}if((a+20|0)==(z|0)){g=z+-20|0;c[k>>2]=c[g>>2];c[k+4>>2]=c[g+4>>2];c[k+8>>2]=c[g+8>>2];c[k+12>>2]=c[g+12>>2];c[k+16>>2]=c[g+16>>2];s=g-A|0;if(!s){I=z;J=A}else{g=z+(((s|0)/-20|0)*20|0)|0;Vn(g|0,A|0,s|0)|0;I=g;J=A}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[J+16>>2]=c[k+16>>2];H=I;break}g=a;s=(g-A|0)/20|0;r=z;E=(r-g|0)/20|0;if((s|0)==(E|0)){g=a;F=A;while(1){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[k+16>>2]=c[F+16>>2];c[F>>2]=c[g>>2];c[F+4>>2]=c[g+4>>2];c[F+8>>2]=c[g+8>>2];c[F+12>>2]=c[g+12>>2];c[F+16>>2]=c[g+16>>2];c[g>>2]=c[k>>2];c[g+4>>2]=c[k+4>>2];c[g+8>>2]=c[k+8>>2];c[g+12>>2]=c[k+12>>2];c[g+16>>2]=c[k+16>>2];F=F+20|0;if((F|0)==(a|0)){H=a;break b}else g=g+20|0}}else{K=s;L=E}while(1){g= -(K|0)%(L|0)|0;if(!g)break;else{F=L;L=g;K=F}}if(L|0){F=A+(L*20|0)|0;do{F=F+-20|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[k+16>>2]=c[F+16>>2];g=F+(s*20|0)|0;G=F;while(1){c[G>>2]=c[g>>2];c[G+4>>2]=c[g+4>>2];c[G+8>>2]=c[g+8>>2];c[G+12>>2]=c[g+12>>2];c[G+16>>2]=c[g+16>>2];M=(r-g|0)/20|0;N=(s|0)<(M|0)?g+(s*20|0)|0:A+((s-M|0)*20|0)|0;if((N|0)==(F|0))break;else{M=g;g=N;G=M}}c[g>>2]=c[k>>2];c[g+4>>2]=c[k+4>>2];c[g+8>>2]=c[k+8>>2];c[g+12>>2]=c[k+12>>2];c[g+16>>2]=c[k+ -16>>2]}while((F|0)!=(A|0))}H=A+(E*20|0)|0}else H=z;while(0);if((B+C|0)<(y+x|0)){Gk(p,A,H,e,C,B,h,i);O=z;P=b;Q=y;R=H;S=x}else{Gk(H,z,b,e,x,y,h,i);O=A;P=H;Q=B;R=p;S=C}if(!Q){o=65;break}else{n=R;a=O;b=P;d=S;f=Q}}if((o|0)==5){if((d|0)>(f|0)){if((a|0)==(b|0))T=h;else{f=a;d=h;while(1){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];c[d+16>>2]=c[f+16>>2];f=f+20|0;Q=d+20|0;if((f|0)==(b|0)){T=Q;break}else d=Q}}c[k>>2]=a;c[m>>2]=T;c:do if((T|0)!=(h|0)){if((a|0)==(n|0)){U=T;V=b}else{d= -a;f=T;Q=b;while(1){S=d+-20|0;P=f+-20|0;O=Q+-20|0;if(Ya[c[e>>2]&31](S,P)|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[O+16>>2]=c[P+16>>2];W=m;X=f}else{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[O+16>>2]=c[S+16>>2];W=k;X=d}c[W>>2]=X+-20;S=c[m>>2]|0;if((S|0)==(h|0))break c;d=c[k>>2]|0;if((d|0)==(n|0)){U=S;V=O;break}else{f=S;Q=O}}}if((U|0)!=(h|0)){Q=U;f=V;do{Q=Q+-20|0;f=f+-20|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[f+16>>2]=c[Q+16>>2]}while((Q|0)!=(h|0))}}while(0);l=j;return}if((n|0)==(a|0)){l=j;return}else{Y=n;Z=h}do{c[Z>>2]=c[Y>>2];c[Z+4>>2]=c[Y+4>>2];c[Z+8>>2]=c[Y+8>>2];c[Z+12>>2]=c[Y+12>>2];c[Z+16>>2]=c[Y+16>>2];Y=Y+20|0;Z=Z+20|0}while((Y|0)!=(a|0));Y=c[e>>2]|0;if((Z|0)==(h|0)){l=j;return}else{_=n;$=a;aa=h}while(1){if(($|0)==(b|0))break;if(Ya[Y&31]($,aa)|0){c[_>>2]=c[$>>2];c[_+4>>2]=c[$+4>>2];c[_+8>>2]=c[$+8>>2];c[_+12>>2]=c[$+12>>2];c[_+16>>2]=c[$+16>>2];ba=aa;ca=$+20|0}else{c[_>> -2]=c[aa>>2];c[_+4>>2]=c[aa+4>>2];c[_+8>>2]=c[aa+8>>2];c[_+12>>2]=c[aa+12>>2];c[_+16>>2]=c[aa+16>>2];ba=aa+20|0;ca=$}if((ba|0)==(Z|0)){o=65;break}else{_=_+20|0;$=ca;aa=ba}}if((o|0)==65){l=j;return}ba=Z-aa|0;if(!ba){l=j;return}Vn(_|0,aa|0,ba|0)|0;l=j;return}else if((o|0)==36){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];c[k+16>>2]=c[p+16>>2];c[p>>2]=c[a>>2];c[p+4>>2]=c[a+4>>2];c[p+8>>2]=c[a+8>>2];c[p+12>>2]=c[a+12>>2];c[p+16>>2]=c[a+16>>2];c[a>>2]=c[k>>2];c[a+4>>2]= -c[k+4>>2];c[a+8>>2]=c[k+8>>2];c[a+12>>2]=c[k+12>>2];c[a+16>>2]=c[k+16>>2];l=j;return}else if((o|0)==65){l=j;return}}function Hk(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,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;e=a;a=b;a:while(1){b=a;f=a+-8|0;g=a+-4|0;h=e;while(1){i=h;b:while(1){j=i;k=b-j|0;l=k>>3;switch(l|0){case 2:{m=5;break a;break}case 3:{m=7;break a;break}case 4:{m=15;break a;break}case 5:{m= -16;break a;break}case 1:case 0:{m=83;break a;break}default:{}}if((k|0)<248){m=22;break a}n=(l|0)/2|0;o=i+(n<<3)|0;do if((k|0)>7992){p=(l|0)/4|0;q=i+(p<<3)|0;r=o+(p<<3)|0;s=Pk(i,q,o,r,d)|0;t=r+4|0;if((c[g>>2]|0)>>>0>=(c[t>>2]|0)>>>0){u=s;v=i+(n<<3)+4|0;break}w=r;x=c[w>>2]|0;y=c[w+4>>2]|0;w=f;z=c[w+4>>2]|0;A=r;c[A>>2]=c[w>>2];c[A+4>>2]=z;z=f;c[z>>2]=x;c[z+4>>2]=y;y=s+1|0;z=i+(n<<3)+4|0;if((c[t>>2]|0)>>>0<(c[z>>2]|0)>>>0){t=o;x=c[t>>2]|0;A=c[t+4>>2]|0;t=r;w=c[t+4>>2]|0;B=o;c[B>>2]=c[t>>2];c[B+4>>2]= -w;w=r;c[w>>2]=x;c[w+4>>2]=A;A=s+2|0;w=i+(p<<3)+4|0;if((c[z>>2]|0)>>>0<(c[w>>2]|0)>>>0){p=q;x=c[p>>2]|0;r=c[p+4>>2]|0;p=o;B=c[p+4>>2]|0;t=q;c[t>>2]=c[p>>2];c[t+4>>2]=B;B=o;c[B>>2]=x;c[B+4>>2]=r;if((c[w>>2]|0)>>>0<(c[i+4>>2]|0)>>>0){w=i;r=c[w>>2]|0;B=c[w+4>>2]|0;w=q;x=c[w+4>>2]|0;t=i;c[t>>2]=c[w>>2];c[t+4>>2]=x;x=q;c[x>>2]=r;c[x+4>>2]=B;u=s+4|0;v=z}else{u=s+3|0;v=z}}else{u=A;v=z}}else{u=y;v=z}}else{z=i+(n<<3)+4|0;y=c[z>>2]|0;A=i+4|0;s=(c[g>>2]|0)>>>0>>0;if(y>>>0>=(c[A>>2]|0)>>>0){if(!s){u=0;v=z; -break}y=o;B=c[y>>2]|0;x=c[y+4>>2]|0;y=f;r=c[y+4>>2]|0;q=o;c[q>>2]=c[y>>2];c[q+4>>2]=r;r=f;c[r>>2]=B;c[r+4>>2]=x;if((c[z>>2]|0)>>>0>=(c[A>>2]|0)>>>0){u=1;v=z;break}A=i;x=c[A>>2]|0;r=c[A+4>>2]|0;A=o;B=c[A+4>>2]|0;q=i;c[q>>2]=c[A>>2];c[q+4>>2]=B;B=o;c[B>>2]=x;c[B+4>>2]=r;u=2;v=z;break}r=i;B=c[r>>2]|0;x=c[r+4>>2]|0;if(s){s=f;r=c[s+4>>2]|0;q=i;c[q>>2]=c[s>>2];c[q+4>>2]=r;r=f;c[r>>2]=B;c[r+4>>2]=x;u=1;v=z;break}r=o;q=c[r+4>>2]|0;s=i;c[s>>2]=c[r>>2];c[s+4>>2]=q;q=o;c[q>>2]=B;c[q+4>>2]=x;if((c[g>>2]|0)>>> -0>>0){q=f;s=c[q+4>>2]|0;r=o;c[r>>2]=c[q>>2];c[r+4>>2]=s;s=f;c[s>>2]=B;c[s+4>>2]=x;u=2;v=z}else{u=1;v=z}}while(0);n=i+4|0;l=c[n>>2]|0;k=c[v>>2]|0;if(l>>>0>>0){C=f;D=u;break}else E=f;while(1){z=E;E=E+-8|0;if((i|0)==(E|0))break;if((c[z+-4>>2]|0)>>>0>>0){m=66;break b}}k=i+8|0;if(l>>>0<(c[g>>2]|0)>>>0)F=k;else{if((k|0)==(f|0)){m=83;break a}else G=k;while(1){if(l>>>0<(c[G+4>>2]|0)>>>0)break;k=G+8|0;if((k|0)==(f|0)){m=83;break a}else G=k}l=G;k=c[l>>2]|0;z=c[l+4>>2]|0;l=f;x=c[l+4>>2]|0;s=G;c[s>> -2]=c[l>>2];c[s+4>>2]=x;x=f;c[x>>2]=k;c[x+4>>2]=z;F=G+8|0}if((F|0)==(f|0)){m=83;break a}else{H=f;I=F}while(1){z=c[n>>2]|0;x=I;while(1){J=x+8|0;if(z>>>0<(c[x+4>>2]|0)>>>0){K=H;break}else x=J}do{k=K;K=K+-8|0}while(z>>>0<(c[k+-4>>2]|0)>>>0);if(x>>>0>=K>>>0){i=x;continue b}z=x;k=c[z>>2]|0;s=c[z+4>>2]|0;z=K;l=c[z+4>>2]|0;B=x;c[B>>2]=c[z>>2];c[B+4>>2]=l;l=K;c[l>>2]=k;c[l+4>>2]=s;H=K;I=J}}if((m|0)==66){m=0;n=i;s=c[n>>2]|0;l=c[n+4>>2]|0;n=E;k=c[n+4>>2]|0;B=i;c[B>>2]=c[n>>2];c[B+4>>2]=k;k=E;c[k>>2]=s;c[k+4>> -2]=l;C=E;D=u+1|0}l=i+8|0;c:do if(l>>>0>>0){k=o;s=C;B=l;n=D;while(1){z=c[k+4>>2]|0;r=B;while(1){L=r+8|0;if((c[r+4>>2]|0)>>>0>>0)r=L;else{M=s;break}}do{x=M;M=M+-8|0}while((c[x+-4>>2]|0)>>>0>=z>>>0);if(r>>>0>M>>>0){N=k;O=n;P=r;break c}z=r;x=c[z>>2]|0;q=c[z+4>>2]|0;z=M;A=c[z+4>>2]|0;y=r;c[y>>2]=c[z>>2];c[y+4>>2]=A;A=M;c[A>>2]=x;c[A+4>>2]=q;k=(k|0)==(r|0)?M:k;s=M;B=L;n=n+1|0}}else{N=o;O=D;P=l}while(0);if((P|0)!=(N|0)?(c[N+4>>2]|0)>>>0<(c[P+4>>2]|0)>>>0:0){l=P;n=c[l>>2]|0;B=c[l+4>>2]|0;l=N;s=c[l+ -4>>2]|0;k=P;c[k>>2]=c[l>>2];c[k+4>>2]=s;s=N;c[s>>2]=n;c[s+4>>2]=B;Q=O+1|0}else Q=O;if(!Q){R=Qk(i,P,d)|0;B=P+8|0;if(Qk(B,a,d)|0){m=82;break}if(R){h=B;continue}}B=P;if((B-j|0)>=(b-B|0)){m=81;break}Hk(i,P,d);h=P+8|0}if((m|0)==81){m=0;Hk(P+8|0,a,d);e=i;a=P;continue}else if((m|0)==82){m=0;if(R){m=83;break}else{e=i;a=P;continue}}}if((m|0)==5){if((c[g>>2]|0)>>>0>=(c[i+4>>2]|0)>>>0)return;P=i;e=c[P>>2]|0;R=c[P+4>>2]|0;P=f;j=c[P+4>>2]|0;Q=i;c[Q>>2]=c[P>>2];c[Q+4>>2]=j;j=f;c[j>>2]=e;c[j+4>>2]=R;return}else if((m| -0)==7){R=i+8|0;j=i+12|0;e=c[j>>2]|0;Q=i+4|0;P=(c[g>>2]|0)>>>0>>0;if(e>>>0>=(c[Q>>2]|0)>>>0){if(!P)return;e=R;O=c[e>>2]|0;N=c[e+4>>2]|0;e=f;D=c[e+4>>2]|0;o=R;c[o>>2]=c[e>>2];c[o+4>>2]=D;D=f;c[D>>2]=O;c[D+4>>2]=N;if((c[j>>2]|0)>>>0>=(c[Q>>2]|0)>>>0)return;Q=i;j=c[Q>>2]|0;N=c[Q+4>>2]|0;Q=R;D=c[Q+4>>2]|0;O=i;c[O>>2]=c[Q>>2];c[O+4>>2]=D;D=R;c[D>>2]=j;c[D+4>>2]=N;return}N=i;D=c[N>>2]|0;j=c[N+4>>2]|0;if(P){P=f;N=c[P+4>>2]|0;O=i;c[O>>2]=c[P>>2];c[O+4>>2]=N;N=f;c[N>>2]=D;c[N+4>>2]=j;return}N=R;O=c[N+4>> -2]|0;P=i;c[P>>2]=c[N>>2];c[P+4>>2]=O;O=R;c[O>>2]=D;c[O+4>>2]=j;if((c[g>>2]|0)>>>0>=j>>>0)return;O=f;P=c[O+4>>2]|0;N=R;c[N>>2]=c[O>>2];c[N+4>>2]=P;P=f;c[P>>2]=D;c[P+4>>2]=j;return}else if((m|0)==15){Pk(i,i+8|0,i+16|0,f,d)|0;return}else if((m|0)==16){j=i+8|0;P=i+16|0;D=i+24|0;Pk(i,j,P,D,d)|0;d=i+28|0;if((c[g>>2]|0)>>>0>=(c[d>>2]|0)>>>0)return;g=D;N=c[g>>2]|0;O=c[g+4>>2]|0;g=f;R=c[g+4>>2]|0;Q=D;c[Q>>2]=c[g>>2];c[Q+4>>2]=R;R=f;c[R>>2]=N;c[R+4>>2]=O;if((c[d>>2]|0)>>>0>=(c[i+20>>2]|0)>>>0)return;d=P;O= -c[d>>2]|0;R=c[d+4>>2]|0;d=D;N=c[d>>2]|0;f=c[d+4>>2]|0;d=P;c[d>>2]=N;c[d+4>>2]=f;d=D;c[d>>2]=O;c[d+4>>2]=R;if(f>>>0>=(c[i+12>>2]|0)>>>0)return;R=j;d=c[R>>2]|0;O=c[R+4>>2]|0;R=j;c[R>>2]=N;c[R+4>>2]=f;R=P;c[R>>2]=d;c[R+4>>2]=O;if(f>>>0>=(c[i+4>>2]|0)>>>0)return;O=i;R=c[O>>2]|0;d=c[O+4>>2]|0;O=i;c[O>>2]=N;c[O+4>>2]=f;f=j;c[f>>2]=R;c[f+4>>2]=d;return}else if((m|0)==22){d=i+16|0;f=i+8|0;R=c[i+12>>2]|0;j=c[i+4>>2]|0;O=c[i+20>>2]|0;N=O>>>0>>0;do if(R>>>0>>0){P=i;D=c[P>>2]|0;Q=c[P+4>>2]|0;if(N){P=d; -g=c[P+4>>2]|0;o=i;c[o>>2]=c[P>>2];c[o+4>>2]=g;g=d;c[g>>2]=D;c[g+4>>2]=Q;break}g=f;o=c[g+4>>2]|0;P=i;c[P>>2]=c[g>>2];c[P+4>>2]=o;o=f;c[o>>2]=D;c[o+4>>2]=Q;if(O>>>0>>0){o=d;P=c[o+4>>2]|0;g=f;c[g>>2]=c[o>>2];c[g+4>>2]=P;P=d;c[P>>2]=D;c[P+4>>2]=Q}}else if(N?(Q=f,P=c[Q>>2]|0,D=c[Q+4>>2]|0,Q=d,g=c[Q>>2]|0,o=c[Q+4>>2]|0,Q=f,c[Q>>2]=g,c[Q+4>>2]=o,Q=d,c[Q>>2]=P,c[Q+4>>2]=D,o>>>0>>0):0){D=i;Q=c[D>>2]|0;P=c[D+4>>2]|0;D=i;c[D>>2]=g;c[D+4>>2]=o;o=f;c[o>>2]=Q;c[o+4>>2]=P}while(0);f=i+24|0;if((f|0)==(a|0))return; -else{S=f;T=d}while(1){if((c[S+4>>2]|0)>>>0<(c[T+4>>2]|0)>>>0){d=S;f=c[d>>2]|0;j=c[d+4>>2]|0;d=T;N=S;while(1){O=d;R=c[O+4>>2]|0;P=N;c[P>>2]=c[O>>2];c[P+4>>2]=R;if((d|0)==(i|0))break;if(j>>>0<(c[d+-4>>2]|0)>>>0){R=d;d=d+-8|0;N=R}else break}N=d;c[N>>2]=f;c[N+4>>2]=j}N=S+8|0;if((N|0)==(a|0))break;else{R=S;S=N;T=R}}return}else if((m|0)==83)return}function Ik(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,m=0,n=0,o=0,p=0;f=l;l=l+16|0;g=f;h=c[a>>2]|0;if(!h)i=h;else{jm(c[a+12>>2]|0,h);c[a>> -2]=0;c[a+8>>2]=0;i=0}if(!d)if(!(c[a+8>>2]|0)){l=f;return}else{j=0;k=i}else{i=hm(c[a+12>>2]|0,d*9|0)|0;c[a>>2]=i;h=i+(d<<3)|0;c[a+4>>2]=h;Nn(h|0,1,d|0)|0;c[a+8>>2]=d;h=c[a>>2]|0;if((d|0)>0){i=0;m=0;while(1){n=c[b+(i*24|0)>>2]|0;if(((n|0)!=-1?(o=c[b+(i*24|0)+4>>2]|0,(o|0)!=-1):0)?((c[e+(o<<2)>>2]|c[e+(n<<2)>>2])&32768|0)!=0:0){c[h+(i<<3)>>2]=n;c[h+(i<<3)+4>>2]=o;p=m+1|0}else p=m;i=i+1|0;if((i|0)==(d|0)){j=p;k=h;break}else m=p}}else{j=0;k=h}}c[a+8>>2]=j;c[g>>2]=29;Mk(k,k+(j<<3)|0,g);l=f;return}function Jk(a, -b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,h=0,i=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;f=c[a+96>>2]|0;h=+g[f+(d<<3)>>2]-+g[f+(b<<3)>>2];i=+g[f+(d<<3)+4>>2]-+g[f+(b<<3)+4>>2];k=h*h+i*i;if(!(k<+g[a+40>>2]))return;l=(c[j>>2]=1597463007-((g[j>>2]=k,c[j>>2]|0)>>1),+g[j>>2]);m=l*(1.5-l*(k*.5*l));f=e+4|0;n=c[f>>2]|0;o=e+8|0;p=c[o>>2]|0;if((n|0)>=(p|0)?(q=(p|0)==0?256:p<<1,(p|0)<(q|0)):0){p=e+12|0;r=Pl(c[p>>2]|0,q*24|0)|0;s=c[e>>2]|0;if(!s)t=e;else{Qn(r|0,s|0,(c[f>>2]|0)*24|0)|0;Ql(c[p>>2]|0,c[e>>2]| -0,(c[o>>2]|0)*24|0);t=e}c[o>>2]=q;c[t>>2]=r;u=c[f>>2]|0}else u=n;n=c[e>>2]|0;c[f>>2]=u+1;c[n+(u*24|0)>>2]=b;c[n+(u*24|0)+4>>2]=d;f=c[a+88>>2]|0;c[n+(u*24|0)+20>>2]=c[f+(d<<2)>>2]|c[f+(b<<2)>>2];g[n+(u*24|0)+8>>2]=1-k*m*+g[a+36>>2];g[n+(u*24|0)+12>>2]=h*m;g[n+(u*24|0)+16>>2]=i*m;return}function Kk(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;if(!(c[b+8>>2]&32768))return;e=c[(c[b+400>>2]|0)+102952>>2]|0;if(!e)return;f=c[b+ -216>>2]|0;g=c[b+220>>2]|0;h=f+(g*24|0)|0;i=d+8|0;if((g|0)>0){g=d+4|0;j=f;do{f=c[j>>2]|0;k=c[j+4>>2]|0;l=c[i>>2]|0;do if(!l)m=22;else{n=c[d>>2]|0;o=n+(l<<3)|0;p=l<<3>>3;q=(p|0)==0;r=n;if(q)s=n;else{t=p;u=n;while(1){v=(t|0)/2|0;w=u+(v<<3)|0;if((c[w>>2]|0)<(f|0))x=(c[u+(v<<3)+4>>2]|0)<(k|0);else x=0;t=x?t+-1-v|0:v;v=x?w+8|0:u;if(!t){s=v;break}else u=v}}if(!((s|0)==(o|0)|(s|0)==0)?(u=(s-r|0)>>>3,t=c[g>>2]|0,(a[t+u>>0]|0)!=0):0){y=u;z=t}else{if(q)A=n;else{t=p;u=n;while(1){v=(t|0)/2|0;w=u+(v<<3)|0;if((c[w>> -2]|0)<(k|0))B=(c[u+(v<<3)+4>>2]|0)<(f|0);else B=0;t=B?t+-1-v|0:v;v=B?w+8|0:u;if(!t){A=v;break}else u=v}}if((A|0)==(o|0)|(A|0)==0){m=22;break}u=(A-r|0)>>>3;t=c[g>>2]|0;if(!(a[t+u>>0]|0)){m=22;break}else{y=u;z=t}}a[z+y>>0]=0}while(0);if((m|0)==22){m=0;Ta[c[(c[e>>2]|0)+24>>2]&7](e,b,j)}j=j+24|0}while(j>>>0>>0);C=g;D=d}else{C=d+4|0;D=d}d=c[i>>2]|0;i=c[D>>2]|0;D=c[C>>2]|0;if((d|0)<=0)return;C=0;do{if(a[D+C>>0]|0)_a[c[(c[e>>2]|0)+28>>2]&31](e,b,c[i+(C<<3)>>2]|0,c[i+(C<<3)+4>>2]|0);C=C+1|0}while((C|0)!= -(d|0));return}function Lk(a,b){a=a|0;b=b|0;var d=0;if((c[a>>2]|0)>=(c[b>>2]|0)){d=0;return d|0}d=(c[a+4>>2]|0)<(c[b+4>>2]|0);return d|0}function lm(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;if(!a)return;b=a+-8|0;d=c[2187]|0;e=c[a+-4>>2]|0;a=e&-8;f=b+a|0;do if(!(e&1)){g=c[b>>2]|0;if(!(e&3))return;h=b+(0-g)|0;i=g+a|0;if(h>>>0>>0)return;if((h|0)==(c[2188]|0)){j=f+4|0;k=c[j>>2]|0;if((k&3|0)!=3){l=h;m=i;n=h;break}c[2185]= -i;c[j>>2]=k&-2;c[h+4>>2]=i|1;c[h+i>>2]=i;return}k=g>>>3;if(g>>>0<256){g=c[h+8>>2]|0;j=c[h+12>>2]|0;if((j|0)==(g|0)){c[2183]=c[2183]&~(1<>2]=j;c[j+8>>2]=g;l=h;m=i;n=h;break}}g=c[h+24>>2]|0;j=c[h+12>>2]|0;do if((j|0)==(h|0)){k=h+16|0;o=k+4|0;p=c[o>>2]|0;if(!p){q=c[k>>2]|0;if(!q){r=0;break}else{s=q;t=k}}else{s=p;t=o}while(1){o=s+20|0;p=c[o>>2]|0;if(p|0){s=p;t=o;continue}o=s+16|0;p=c[o>>2]|0;if(!p)break;else{s=p;t=o}}c[t>>2]=0;r=s}else{o=c[h+8>>2]|0;c[o+12>>2]=j;c[j+ -8>>2]=o;r=j}while(0);if(g){j=c[h+28>>2]|0;o=9036+(j<<2)|0;if((h|0)==(c[o>>2]|0)){c[o>>2]=r;if(!r){c[2184]=c[2184]&~(1<>2]|0)!=(h|0)&1)<<2)>>2]=r;if(!r){l=h;m=i;n=h;break}}c[r+24>>2]=g;j=h+16|0;o=c[j>>2]|0;if(o|0){c[r+16>>2]=o;c[o+24>>2]=r}o=c[j+4>>2]|0;if(o){c[r+20>>2]=o;c[o+24>>2]=r;l=h;m=i;n=h}else{l=h;m=i;n=h}}else{l=h;m=i;n=h}}else{l=b;m=a;n=b}while(0);if(n>>>0>=f>>>0)return;b=f+4|0;a=c[b>>2]|0;if(!(a&1))return;if(!(a&2)){r=c[2188]|0;if((f|0)==(c[2189]| -0)){s=(c[2186]|0)+m|0;c[2186]=s;c[2189]=l;c[l+4>>2]=s|1;if((l|0)!=(r|0))return;c[2188]=0;c[2185]=0;return}if((f|0)==(r|0)){r=(c[2185]|0)+m|0;c[2185]=r;c[2188]=n;c[l+4>>2]=r|1;c[n+r>>2]=r;return}r=(a&-8)+m|0;s=a>>>3;do if(a>>>0<256){t=c[f+8>>2]|0;d=c[f+12>>2]|0;if((d|0)==(t|0)){c[2183]=c[2183]&~(1<>2]=d;c[d+8>>2]=t;break}}else{t=c[f+24>>2]|0;d=c[f+12>>2]|0;do if((d|0)==(f|0)){e=f+16|0;o=e+4|0;j=c[o>>2]|0;if(!j){p=c[e>>2]|0;if(!p){u=0;break}else{v=p;w=e}}else{v=j;w=o}while(1){o= -v+20|0;j=c[o>>2]|0;if(j|0){v=j;w=o;continue}o=v+16|0;j=c[o>>2]|0;if(!j)break;else{v=j;w=o}}c[w>>2]=0;u=v}else{o=c[f+8>>2]|0;c[o+12>>2]=d;c[d+8>>2]=o;u=d}while(0);if(t|0){d=c[f+28>>2]|0;h=9036+(d<<2)|0;if((f|0)==(c[h>>2]|0)){c[h>>2]=u;if(!u){c[2184]=c[2184]&~(1<>2]|0)!=(f|0)&1)<<2)>>2]=u;if(!u)break}c[u+24>>2]=t;d=f+16|0;h=c[d>>2]|0;if(h|0){c[u+16>>2]=h;c[h+24>>2]=u}h=c[d+4>>2]|0;if(h|0){c[u+20>>2]=h;c[h+24>>2]=u}}}while(0);c[l+4>>2]=r|1;c[n+r>>2]=r;if((l|0)==(c[2188]| -0)){c[2185]=r;return}else x=r}else{c[b>>2]=a&-2;c[l+4>>2]=m|1;c[n+m>>2]=m;x=m}m=x>>>3;if(x>>>0<256){n=8772+(m<<1<<2)|0;a=c[2183]|0;b=1<>2]|0;z=b}c[z>>2]=l;c[y+12>>2]=l;c[l+8>>2]=y;c[l+12>>2]=n;return}n=x>>>8;if(n)if(x>>>0>16777215)A=31;else{y=(n+1048320|0)>>>16&8;z=n<>>16&4;b=z<>>16&2;a=14-(n|y|z)+(b<>>15)|0;A=x>>>(a+7|0)&1|a<<1}else A=0;a=9036+(A<<2)|0;c[l+28>>2]=A;c[l+20>>2]=0;c[l+16>>2]=0;z=c[2184]| -0;b=1<>>1)|0);n=c[a>>2]|0;while(1){if((c[n+4>>2]&-8|0)==(x|0)){B=73;break}C=n+16+(y>>>31<<2)|0;m=c[C>>2]|0;if(!m){B=72;break}else{y=y<<1;n=m}}if((B|0)==72){c[C>>2]=l;c[l+24>>2]=n;c[l+12>>2]=l;c[l+8>>2]=l;break}else if((B|0)==73){y=n+8|0;t=c[y>>2]|0;c[t+12>>2]=l;c[y>>2]=l;c[l+8>>2]=t;c[l+12>>2]=n;c[l+24>>2]=0;break}}else{c[2184]=z|b;c[a>>2]=l;c[l+24>>2]=a;c[l+12>>2]=l;c[l+8>>2]=l}while(0);l=(c[2191]|0)+-1|0;c[2191]=l;if(!l)D=9188;else return;while(1){l=c[D>>2]| -0;if(!l)break;else D=l+8|0}c[2191]=-1;return}function mm(){return 9228}function nm(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=um(c[a+60>>2]|0)|0;a=qm(Ea(6,d|0)|0)|0;l=b;return a|0}function om(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,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;e=l;l=l+48|0;f=e+16|0;g=e;h=e+32|0;i=a+28|0;j=c[i>>2]|0;c[h>>2]=j;k=a+20|0;m=(c[k>>2]|0)-j|0;c[h+4>>2]=m;c[h+8>>2]=b;c[h+12>>2]=d;b=m+d|0;m=a+60|0;c[g>>2]=c[m>>2];c[g+4>>2]=h;c[g+8>>2]=2;j=qm(Ja(146,g|0)|0)| -0;a:do if((b|0)!=(j|0)){g=2;n=b;o=h;p=j;while(1){if((p|0)<0)break;n=n-p|0;q=c[o+4>>2]|0;r=p>>>0>q>>>0;s=r?o+8|0:o;t=(r<<31>>31)+g|0;u=p-(r?q:0)|0;c[s>>2]=(c[s>>2]|0)+u;q=s+4|0;c[q>>2]=(c[q>>2]|0)-u;c[f>>2]=c[m>>2];c[f+4>>2]=s;c[f+8>>2]=t;p=qm(Ja(146,f|0)|0)|0;if((n|0)==(p|0)){v=3;break a}else{g=t;o=s}}c[a+16>>2]=0;c[i>>2]=0;c[k>>2]=0;c[a>>2]=c[a>>2]|32;if((g|0)==2)w=0;else w=d-(c[o+4>>2]|0)|0}else v=3;while(0);if((v|0)==3){v=c[a+44>>2]|0;c[a+16>>2]=v+(c[a+48>>2]|0);c[i>>2]=v;c[k>>2]=v;w=d}l=e;return w| -0}function pm(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=l;l=l+32|0;f=e;g=e+20|0;c[f>>2]=c[a+60>>2];c[f+4>>2]=0;c[f+8>>2]=b;c[f+12>>2]=g;c[f+16>>2]=d;if((qm(ya(140,f|0)|0)|0)<0){c[g>>2]=-1;h=-1}else h=c[g>>2]|0;l=e;return h|0}function qm(a){a=a|0;var b=0;if(a>>>0>4294963200){c[(rm()|0)>>2]=0-a;b=-1}else b=a;return b|0}function rm(){return(sm()|0)+64|0}function sm(){return tm()|0}function tm(){return 2300}function um(a){a=a|0;return a|0}function vm(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0;f=l;l=l+ -32|0;g=f;c[b+36>>2]=11;if((c[b>>2]&64|0)==0?(c[g>>2]=c[b+60>>2],c[g+4>>2]=21523,c[g+8>>2]=f+16,za(54,g|0)|0):0)a[b+75>>0]=-1;g=om(b,d,e)|0;l=f;return g|0}function wm(b,c){b=b|0;c=c|0;var d=0,e=0,f=0,g=0;d=a[b>>0]|0;e=a[c>>0]|0;if(d<<24>>24==0?1:d<<24>>24!=e<<24>>24){f=e;g=d}else{d=c;c=b;do{c=c+1|0;d=d+1|0;b=a[c>>0]|0;e=a[d>>0]|0}while(!(b<<24>>24==0?1:b<<24>>24!=e<<24>>24));f=e;g=b}return(g&255)-(f&255)|0}function xm(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,m=0,n=0,o=0,p=0,q=0,r=0,s=0, -t=0,u=0;f=l;l=l+224|0;g=f+120|0;h=f+80|0;i=f;j=f+136|0;k=h;m=k+40|0;do{c[k>>2]=0;k=k+4|0}while((k|0)<(m|0));c[g>>2]=c[e>>2];if((ym(0,d,g,i,h)|0)<0)n=-1;else{if((c[b+76>>2]|0)>-1)o=zm(b)|0;else o=0;e=c[b>>2]|0;k=e&32;if((a[b+74>>0]|0)<1)c[b>>2]=e&-33;e=b+48|0;if(!(c[e>>2]|0)){m=b+44|0;p=c[m>>2]|0;c[m>>2]=j;q=b+28|0;c[q>>2]=j;r=b+20|0;c[r>>2]=j;c[e>>2]=80;s=b+16|0;c[s>>2]=j+80;j=ym(b,d,g,i,h)|0;if(!p)t=j;else{Sa[c[b+36>>2]&15](b,0,0)|0;u=(c[r>>2]|0)==0?-1:j;c[m>>2]=p;c[e>>2]=0;c[s>>2]=0;c[q>>2]=0;c[r>> -2]=0;t=u}}else t=ym(b,d,g,i,h)|0;h=c[b>>2]|0;c[b>>2]=h|k;if(o|0)Am(b);n=(h&32|0)==0?t:-1}l=f;return n|0}function ym(d,e,f,g,i){d=d|0;e=e|0;f=f|0;g=g|0;i=i|0;var j=0,k=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,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,Ea=0,Fa=0,Ga=0,Ha= -0,Ia=0;j=l;l=l+64|0;k=j+16|0;m=j;n=j+24|0;o=j+8|0;p=j+20|0;c[k>>2]=e;q=(d|0)!=0;r=n+40|0;s=r;t=n+39|0;n=o+4|0;u=0;v=0;w=0;x=e;a:while(1){do if((v|0)>-1)if((u|0)>(2147483647-v|0)){c[(rm()|0)>>2]=75;y=-1;break}else{y=u+v|0;break}else y=v;while(0);e=a[x>>0]|0;if(!(e<<24>>24)){A=87;break}else{B=e;C=x}b:while(1){switch(B<<24>>24){case 37:{D=C;E=C;A=9;break b;break}case 0:{F=C;G=C;break b;break}default:{}}e=C+1|0;c[k>>2]=e;B=a[e>>0]|0;C=e}c:do if((A|0)==9)while(1){A=0;if((a[E+1>>0]|0)!=37){F=D;G=E;break c}e= -D+1|0;H=E+2|0;c[k>>2]=H;if((a[H>>0]|0)==37){D=e;E=H;A=9}else{F=e;G=H;break}}while(0);H=F-x|0;if(q)Bm(d,x,H);if(H|0){u=H;v=y;x=G;continue}H=G+1|0;e=(a[H>>0]|0)+-48|0;if(e>>>0<10){I=(a[G+2>>0]|0)==36;J=I?e:-1;K=I?1:w;L=I?G+3|0:H}else{J=-1;K=w;L=H}c[k>>2]=L;H=a[L>>0]|0;I=(H<<24>>24)+-32|0;d:do if(I>>>0<32){e=0;M=H;N=I;O=L;while(1){P=1<>2]=P;U=a[P>>0]|0;N=(U<<24>>24)+-32|0;if(N>>>0>=32){Q=T;R=U;S=P;break}else{e=T;M=U;O=P}}}else{Q=0;R=H;S=L}while(0); -if(R<<24>>24==42){H=S+1|0;I=(a[H>>0]|0)+-48|0;if(I>>>0<10?(a[S+2>>0]|0)==36:0){c[i+(I<<2)>>2]=10;V=c[g+((a[H>>0]|0)+-48<<3)>>2]|0;W=1;X=S+3|0}else{if(K|0){Y=-1;break}if(q){I=(c[f>>2]|0)+(4-1)&~(4-1);O=c[I>>2]|0;c[f>>2]=I+4;V=O;W=0;X=H}else{V=0;W=0;X=H}}c[k>>2]=X;H=(V|0)<0;Z=H?0-V|0:V;_=H?Q|8192:Q;$=W;aa=X}else{H=Cm(k)|0;if((H|0)<0){Y=-1;break}Z=H;_=Q;$=K;aa=c[k>>2]|0}do if((a[aa>>0]|0)==46){if((a[aa+1>>0]|0)!=42){c[k>>2]=aa+1;H=Cm(k)|0;ba=H;ca=c[k>>2]|0;break}H=aa+2|0;O=(a[H>>0]|0)+-48|0;if(O>>>0< -10?(a[aa+3>>0]|0)==36:0){c[i+(O<<2)>>2]=10;O=c[g+((a[H>>0]|0)+-48<<3)>>2]|0;I=aa+4|0;c[k>>2]=I;ba=O;ca=I;break}if($|0){Y=-1;break a}if(q){I=(c[f>>2]|0)+(4-1)&~(4-1);O=c[I>>2]|0;c[f>>2]=I+4;da=O}else da=0;c[k>>2]=H;ba=da;ca=H}else{ba=-1;ca=aa}while(0);H=0;O=ca;while(1){if(((a[O>>0]|0)+-65|0)>>>0>57){Y=-1;break a}ea=O+1|0;c[k>>2]=ea;fa=a[(a[O>>0]|0)+-65+(5476+(H*58|0))>>0]|0;ga=fa&255;if((ga+-1|0)>>>0<8){H=ga;O=ea}else break}if(!(fa<<24>>24)){Y=-1;break}I=(J|0)>-1;do if(fa<<24>>24==19)if(I){Y=-1;break a}else A= -49;else{if(I){c[i+(J<<2)>>2]=ga;M=g+(J<<3)|0;e=c[M+4>>2]|0;N=m;c[N>>2]=c[M>>2];c[N+4>>2]=e;A=49;break}if(!q){Y=0;break a}Dm(m,ga,f)}while(0);if((A|0)==49?(A=0,!q):0){u=0;v=y;w=$;x=ea;continue}I=a[O>>0]|0;e=(H|0)!=0&(I&15|0)==3?I&-33:I;I=_&-65537;N=(_&8192|0)==0?_:I;e:do switch(e|0){case 110:{switch((H&255)<<24>>24){case 0:{c[c[m>>2]>>2]=y;u=0;v=y;w=$;x=ea;continue a;break}case 1:{c[c[m>>2]>>2]=y;u=0;v=y;w=$;x=ea;continue a;break}case 2:{M=c[m>>2]|0;c[M>>2]=y;c[M+4>>2]=((y|0)<0)<<31>>31;u=0;v=y;w= -$;x=ea;continue a;break}case 3:{b[c[m>>2]>>1]=y;u=0;v=y;w=$;x=ea;continue a;break}case 4:{a[c[m>>2]>>0]=y;u=0;v=y;w=$;x=ea;continue a;break}case 6:{c[c[m>>2]>>2]=y;u=0;v=y;w=$;x=ea;continue a;break}case 7:{M=c[m>>2]|0;c[M>>2]=y;c[M+4>>2]=((y|0)<0)<<31>>31;u=0;v=y;w=$;x=ea;continue a;break}default:{u=0;v=y;w=$;x=ea;continue a}}break}case 112:{ha=120;ia=ba>>>0>8?ba:8;ja=N|8;A=61;break}case 88:case 120:{ha=e;ia=ba;ja=N;A=61;break}case 111:{M=m;P=c[M>>2]|0;U=c[M+4>>2]|0;M=Fm(P,U,r)|0;T=s-M|0;ka=M;la= -0;ma=5940;na=(N&8|0)==0|(ba|0)>(T|0)?ba:T+1|0;oa=N;pa=P;qa=U;A=67;break}case 105:case 100:{U=m;P=c[U>>2]|0;T=c[U+4>>2]|0;if((T|0)<0){U=Ln(0,0,P|0,T|0)|0;M=z;ra=m;c[ra>>2]=U;c[ra+4>>2]=M;sa=1;ta=5940;ua=U;va=M;A=66;break e}else{sa=(N&2049|0)!=0&1;ta=(N&2048|0)==0?(N&1|0)==0?5940:5942:5941;ua=P;va=T;A=66;break e}break}case 117:{T=m;sa=0;ta=5940;ua=c[T>>2]|0;va=c[T+4>>2]|0;A=66;break}case 99:{a[t>>0]=c[m>>2];wa=t;xa=0;ya=5940;za=r;Aa=1;Ba=I;break}case 109:{Ca=Hm(c[(rm()|0)>>2]|0)|0;A=71;break}case 115:{T= -c[m>>2]|0;Ca=T|0?T:5950;A=71;break}case 67:{c[o>>2]=c[m>>2];c[n>>2]=0;c[m>>2]=o;Da=-1;Ea=o;A=75;break}case 83:{T=c[m>>2]|0;if(!ba){Jm(d,32,Z,0,N);Fa=0;A=84}else{Da=ba;Ea=T;A=75}break}case 65:case 71:case 70:case 69:case 97:case 103:case 102:case 101:{u=Lm(d,+h[m>>3],Z,ba,N,e)|0;v=y;w=$;x=ea;continue a;break}default:{wa=x;xa=0;ya=5940;za=r;Aa=ba;Ba=N}}while(0);f:do if((A|0)==61){A=0;e=m;H=c[e>>2]|0;O=c[e+4>>2]|0;e=Em(H,O,r,ha&32)|0;T=(ja&8|0)==0|(H|0)==0&(O|0)==0;ka=e;la=T?0:2;ma=T?5940:5940+(ha>> -4)|0;na=ia;oa=ja;pa=H;qa=O;A=67}else if((A|0)==66){A=0;ka=Gm(ua,va,r)|0;la=sa;ma=ta;na=ba;oa=N;pa=ua;qa=va;A=67}else if((A|0)==71){A=0;O=Im(Ca,0,ba)|0;H=(O|0)==0;wa=Ca;xa=0;ya=5940;za=H?Ca+ba|0:O;Aa=H?ba:O-Ca|0;Ba=I}else if((A|0)==75){A=0;O=Ea;H=0;T=0;while(1){e=c[O>>2]|0;if(!e){Ga=H;Ha=T;break}P=Km(p,e)|0;if((P|0)<0|P>>>0>(Da-H|0)>>>0){Ga=H;Ha=P;break}e=P+H|0;if(Da>>>0>e>>>0){O=O+4|0;H=e;T=P}else{Ga=e;Ha=P;break}}if((Ha|0)<0){Y=-1;break a}Jm(d,32,Z,Ga,N);if(!Ga){Fa=0;A=84}else{T=Ea;H=0;while(1){O= -c[T>>2]|0;if(!O){Fa=Ga;A=84;break f}P=Km(p,O)|0;H=P+H|0;if((H|0)>(Ga|0)){Fa=Ga;A=84;break f}Bm(d,p,P);if(H>>>0>=Ga>>>0){Fa=Ga;A=84;break}else T=T+4|0}}}while(0);if((A|0)==67){A=0;I=(pa|0)!=0|(qa|0)!=0;T=(na|0)!=0|I;H=((I^1)&1)+(s-ka)|0;wa=T?ka:r;xa=la;ya=ma;za=r;Aa=T?(na|0)>(H|0)?na:H:na;Ba=(na|0)>-1?oa&-65537:oa}else if((A|0)==84){A=0;Jm(d,32,Z,Fa,N^8192);u=(Z|0)>(Fa|0)?Z:Fa;v=y;w=$;x=ea;continue}H=za-wa|0;T=(Aa|0)<(H|0)?H:Aa;I=T+xa|0;P=(Z|0)<(I|0)?I:Z;Jm(d,32,P,I,Ba);Bm(d,ya,xa);Jm(d,48,P,I,Ba^ -65536);Jm(d,48,T,H,0);Bm(d,wa,H);Jm(d,32,P,I,Ba^8192);u=P;v=y;w=$;x=ea}g:do if((A|0)==87)if(!d)if(!w)Y=0;else{ea=1;while(1){x=c[i+(ea<<2)>>2]|0;if(!x){Ia=ea;break}Dm(g+(ea<<3)|0,x,f);ea=ea+1|0;if((ea|0)>=10){Y=1;break g}}while(1){if(c[i+(Ia<<2)>>2]|0){Y=-1;break g}Ia=Ia+1|0;if((Ia|0)>=10){Y=1;break}}}else Y=y;while(0);l=j;return Y|0}function zm(a){a=a|0;return 0}function Am(a){a=a|0;return}function Bm(a,b,d){a=a|0;b=b|0;d=d|0;if(!(c[a>>2]&32))Xm(b,d,a)|0;return}function Cm(b){b=b|0;var d=0,e=0,f= -0,g=0,h=0;d=c[b>>2]|0;e=(a[d>>0]|0)+-48|0;if(e>>>0<10){f=0;g=d;d=e;while(1){e=d+(f*10|0)|0;g=g+1|0;c[b>>2]=g;d=(a[g>>0]|0)+-48|0;if(d>>>0>=10){h=e;break}else f=e}}else h=0;return h|0}function Dm(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,i=0,j=0;a:do if(b>>>0<=20){do switch(b|0){case 9:{e=(c[d>>2]|0)+(4-1)&~(4-1);f=c[e>>2]|0;c[d>>2]=e+4;c[a>>2]=f;break a;break}case 10:{f=(c[d>>2]|0)+(4-1)&~(4-1);e=c[f>>2]|0;c[d>>2]=f+4;f=a;c[f>>2]=e;c[f+4>>2]=((e|0)<0)<<31>>31;break a;break}case 11:{e=(c[d>>2]|0)+(4- -1)&~(4-1);f=c[e>>2]|0;c[d>>2]=e+4;e=a;c[e>>2]=f;c[e+4>>2]=0;break a;break}case 12:{e=(c[d>>2]|0)+(8-1)&~(8-1);f=e;g=c[f>>2]|0;i=c[f+4>>2]|0;c[d>>2]=e+8;e=a;c[e>>2]=g;c[e+4>>2]=i;break a;break}case 13:{i=(c[d>>2]|0)+(4-1)&~(4-1);e=c[i>>2]|0;c[d>>2]=i+4;i=(e&65535)<<16>>16;e=a;c[e>>2]=i;c[e+4>>2]=((i|0)<0)<<31>>31;break a;break}case 14:{i=(c[d>>2]|0)+(4-1)&~(4-1);e=c[i>>2]|0;c[d>>2]=i+4;i=a;c[i>>2]=e&65535;c[i+4>>2]=0;break a;break}case 15:{i=(c[d>>2]|0)+(4-1)&~(4-1);e=c[i>>2]|0;c[d>>2]=i+4;i=(e&255)<< -24>>24;e=a;c[e>>2]=i;c[e+4>>2]=((i|0)<0)<<31>>31;break a;break}case 16:{i=(c[d>>2]|0)+(4-1)&~(4-1);e=c[i>>2]|0;c[d>>2]=i+4;i=a;c[i>>2]=e&255;c[i+4>>2]=0;break a;break}case 17:{i=(c[d>>2]|0)+(8-1)&~(8-1);j=+h[i>>3];c[d>>2]=i+8;h[a>>3]=j;break a;break}case 18:{i=(c[d>>2]|0)+(8-1)&~(8-1);j=+h[i>>3];c[d>>2]=i+8;h[a>>3]=j;break a;break}default:break a}while(0)}while(0);return}function Em(b,c,e,f){b=b|0;c=c|0;e=e|0;f=f|0;var g=0,h=0;if((b|0)==0&(c|0)==0)g=e;else{h=e;e=c;c=b;while(1){b=h+-1|0;a[b>>0]=d[5992+ -(c&15)>>0]|0|f;c=Pn(c|0,e|0,4)|0;e=z;if((c|0)==0&(e|0)==0){g=b;break}else h=b}}return g|0}function Fm(b,c,d){b=b|0;c=c|0;d=d|0;var e=0,f=0;if((b|0)==0&(c|0)==0)e=d;else{f=d;d=c;c=b;while(1){b=f+-1|0;a[b>>0]=c&7|48;c=Pn(c|0,d|0,3)|0;d=z;if((c|0)==0&(d|0)==0){e=b;break}else f=b}}return e|0}function Gm(b,c,d){b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;if(c>>>0>0|(c|0)==0&b>>>0>4294967295){e=d;f=b;g=c;while(1){c=Wn(f|0,g|0,10,0)|0;e=e+-1|0;a[e>>0]=c&255|48;c=f;f=Tn(f|0,g|0,10,0)|0;if(!(g>>>0>9|(g| -0)==9&c>>>0>4294967295))break;else g=z}h=f;i=e}else{h=b;i=d}if(!h)j=i;else{d=h;h=i;while(1){i=h+-1|0;a[i>>0]=(d>>>0)%10|0|48;if(d>>>0<10){j=i;break}else{d=(d>>>0)/10|0;h=i}}}return j|0}function Hm(a){a=a|0;return Sm(a,c[(Rm()|0)+188>>2]|0)|0}function Im(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;f=d&255;g=(e|0)!=0;a:do if(g&(b&3|0)!=0){h=d&255;i=b;j=e;while(1){if((a[i>>0]|0)==h<<24>>24){k=i;l=j;m=6;break a}n=i+1|0;o=j+-1|0;p=(o|0)!= -0;if(p&(n&3|0)!=0){i=n;j=o}else{q=n;r=o;s=p;m=5;break}}}else{q=b;r=e;s=g;m=5}while(0);if((m|0)==5)if(s){k=q;l=r;m=6}else{t=q;u=0}b:do if((m|0)==6){q=d&255;if((a[k>>0]|0)==q<<24>>24){t=k;u=l}else{r=O(f,16843009)|0;c:do if(l>>>0>3){s=k;g=l;while(1){e=c[s>>2]^r;if((e&-2139062144^-2139062144)&e+-16843009|0)break;e=s+4|0;b=g+-4|0;if(b>>>0>3){s=e;g=b}else{v=e;w=b;m=11;break c}}x=s;y=g}else{v=k;w=l;m=11}while(0);if((m|0)==11)if(!w){t=v;u=0;break}else{x=v;y=w}while(1){if((a[x>>0]|0)==q<<24>>24){t=x;u=y;break b}r= -x+1|0;y=y+-1|0;if(!y){t=r;u=0;break}else x=r}}}while(0);return(u|0?t:0)|0}function Jm(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0;f=l;l=l+256|0;g=f;if((c|0)>(d|0)&(e&73728|0)==0){e=c-d|0;Nn(g|0,b|0,(e>>>0<256?e:256)|0)|0;if(e>>>0>255){b=c-d|0;d=e;do{Bm(a,g,256);d=d+-256|0}while(d>>>0>255);h=b&255}else h=e;Bm(a,g,h)}l=f;return}function Km(a,b){a=a|0;b=b|0;var c=0;if(!a)c=0;else c=Pm(a,b,0)|0;return c|0}function Lm(b,e,f,g,h,i){b=b|0;e=+e;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=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,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,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;j=l;l=l+560|0;k=j+8|0;m=j;n=j+524|0;o=n;p=j+512|0;c[m>>2]=0;q=p+12|0;Mm(e)|0;if((z|0)<0){r=-e;s=1;t=5957}else{r=e;s=(h&2049|0)!=0&1;t=(h&2048|0)==0?(h&1|0)==0?5958:5963:5960}Mm(r)|0;u=z&2146435072;do if(u>>> -0<2146435072|(u|0)==2146435072&0<0){e=+Nm(r,m)*2;v=e!=0;if(v)c[m>>2]=(c[m>>2]|0)+-1;w=i|32;if((w|0)==97){x=i&32;y=(x|0)==0?t:t+9|0;A=s|2;B=12-g|0;do if(!(g>>>0>11|(B|0)==0)){C=8;D=B;do{D=D+-1|0;C=C*16}while((D|0)!=0);if((a[y>>0]|0)==45){E=-(C+(-e-C));break}else{E=e+C-C;break}}else E=e;while(0);B=c[m>>2]|0;D=(B|0)<0?0-B|0:B;F=Gm(D,((D|0)<0)<<31>>31,q)|0;if((F|0)==(q|0)){D=p+11|0;a[D>>0]=48;G=D}else G=F;a[G+-1>>0]=(B>>31&2)+43;B=G+-2|0;a[B>>0]=i+15;F=(g|0)<1;D=(h&8|0)==0;H=n;I=E;while(1){J=~~I;K=H+ -1|0;a[H>>0]=d[5992+J>>0]|x;I=(I-+(J|0))*16;if((K-o|0)==1?!(D&(F&I==0)):0){a[K>>0]=46;L=H+2|0}else L=K;if(!(I!=0))break;else H=L}H=L-o|0;F=q-B|0;D=(g|0)!=0&(H+-2|0)<(g|0)?g+2|0:H;x=F+A+D|0;Jm(b,32,f,x,h);Bm(b,y,A);Jm(b,48,f,x,h^65536);Bm(b,n,H);Jm(b,48,D-H|0,0,0);Bm(b,B,F);Jm(b,32,f,x,h^8192);M=x;break}x=(g|0)<0?6:g;if(v){F=(c[m>>2]|0)+-28|0;c[m>>2]=F;N=e*268435456;P=F}else{N=e;P=c[m>>2]|0}F=(P|0)<0?k:k+288|0;H=F;I=N;do{D=~~I>>>0;c[H>>2]=D;H=H+4|0;I=(I-+(D>>>0))*1E9}while(I!=0);if((P|0)>0){v=F;B=H; -A=P;while(1){y=(A|0)<29?A:29;D=B+-4|0;if(D>>>0>=v>>>0){K=D;D=0;do{J=On(c[K>>2]|0,0,y|0)|0;Q=Mn(J|0,z|0,D|0,0)|0;J=z;R=Wn(Q|0,J|0,1E9,0)|0;c[K>>2]=R;D=Tn(Q|0,J|0,1E9,0)|0;K=K+-4|0}while(K>>>0>=v>>>0);if(D){K=v+-4|0;c[K>>2]=D;S=K}else S=v}else S=v;K=B;while(1){if(K>>>0<=S>>>0)break;J=K+-4|0;if(!(c[J>>2]|0))K=J;else break}D=(c[m>>2]|0)-y|0;c[m>>2]=D;if((D|0)>0){v=S;B=K;A=D}else{T=S;U=K;V=D;break}}}else{T=F;U=H;V=P}if((V|0)<0){A=((x+25|0)/9|0)+1|0;B=(w|0)==102;v=T;D=U;J=V;while(1){Q=0-J|0;R=(Q|0)<9?Q: -9;if(v>>>0>>0){Q=(1<>>R;X=0;Y=v;do{Z=c[Y>>2]|0;c[Y>>2]=(Z>>>R)+X;X=O(Z&Q,W)|0;Y=Y+4|0}while(Y>>>0>>0);Y=(c[v>>2]|0)==0?v+4|0:v;if(!X){_=Y;$=D}else{c[D>>2]=X;_=Y;$=D+4|0}}else{_=(c[v>>2]|0)==0?v+4|0:v;$=D}Y=B?F:_;W=($-Y>>2|0)>(A|0)?Y+(A<<2)|0:$;J=(c[m>>2]|0)+R|0;c[m>>2]=J;if((J|0)>=0){aa=_;ba=W;break}else{v=_;D=W}}}else{aa=T;ba=U}D=F;if(aa>>>0>>0){v=(D-aa>>2)*9|0;J=c[aa>>2]|0;if(J>>>0<10)ca=v;else{A=v;v=10;while(1){v=v*10|0;B=A+1|0;if(J>>>0>>0){ca=B;break}else A=B}}}else ca= -0;A=(w|0)==103;v=(x|0)!=0;J=x-((w|0)!=102?ca:0)+((v&A)<<31>>31)|0;if((J|0)<(((ba-D>>2)*9|0)+-9|0)){B=J+9216|0;J=F+4+(((B|0)/9|0)+-1024<<2)|0;H=((B|0)%9|0)+1|0;if((H|0)<9){B=H;H=10;while(1){W=H*10|0;B=B+1|0;if((B|0)==9){da=W;break}else H=W}}else da=10;H=c[J>>2]|0;B=(H>>>0)%(da>>>0)|0;w=(J+4|0)==(ba|0);if(!(w&(B|0)==0)){C=(((H>>>0)/(da>>>0)|0)&1|0)==0?9007199254740992:9007199254740994;W=(da|0)/2|0;I=B>>>0>>0?.5:w&(B|0)==(W|0)?1:1.5;if(!s){ea=I;fa=C}else{W=(a[t>>0]|0)==45;ea=W?-I:I;fa=W?-C:C}W=H- -B|0;c[J>>2]=W;if(fa+ea!=fa){B=W+da|0;c[J>>2]=B;if(B>>>0>999999999){B=aa;W=J;while(1){H=W+-4|0;c[W>>2]=0;if(H>>>0>>0){w=B+-4|0;c[w>>2]=0;ga=w}else ga=B;w=(c[H>>2]|0)+1|0;c[H>>2]=w;if(w>>>0>999999999){B=ga;W=H}else{ha=ga;ia=H;break}}}else{ha=aa;ia=J}W=(D-ha>>2)*9|0;B=c[ha>>2]|0;if(B>>>0<10){ja=ia;ka=W;la=ha}else{H=W;W=10;while(1){W=W*10|0;w=H+1|0;if(B>>>0>>0){ja=ia;ka=w;la=ha;break}else H=w}}}else{ja=J;ka=ca;la=aa}}else{ja=J;ka=ca;la=aa}H=ja+4|0;ma=ka;na=ba>>>0>H>>>0?H:ba;oa=la}else{ma=ca;na= -ba;oa=aa}H=na;while(1){if(H>>>0<=oa>>>0){pa=0;break}W=H+-4|0;if(!(c[W>>2]|0))H=W;else{pa=1;break}}J=0-ma|0;do if(A){W=((v^1)&1)+x|0;if((W|0)>(ma|0)&(ma|0)>-5){qa=i+-1|0;ra=W+-1-ma|0}else{qa=i+-2|0;ra=W+-1|0}W=h&8;if(!W){if(pa?(B=c[H+-4>>2]|0,(B|0)!=0):0)if(!((B>>>0)%10|0)){w=0;Y=10;while(1){Y=Y*10|0;Q=w+1|0;if((B>>>0)%(Y>>>0)|0|0){sa=Q;break}else w=Q}}else sa=0;else sa=9;w=((H-D>>2)*9|0)+-9|0;if((qa|32|0)==102){Y=w-sa|0;B=(Y|0)>0?Y:0;ta=qa;ua=(ra|0)<(B|0)?ra:B;va=0;break}else{B=w+ma-sa|0;w=(B|0)> -0?B:0;ta=qa;ua=(ra|0)<(w|0)?ra:w;va=0;break}}else{ta=qa;ua=ra;va=W}}else{ta=i;ua=x;va=h&8}while(0);x=ua|va;D=(x|0)!=0&1;v=(ta|32|0)==102;if(v){wa=0;xa=(ma|0)>0?ma:0}else{A=(ma|0)<0?J:ma;w=Gm(A,((A|0)<0)<<31>>31,q)|0;A=q;if((A-w|0)<2){B=w;while(1){Y=B+-1|0;a[Y>>0]=48;if((A-Y|0)<2)B=Y;else{ya=Y;break}}}else ya=w;a[ya+-1>>0]=(ma>>31&2)+43;B=ya+-2|0;a[B>>0]=ta;wa=B;xa=A-B|0}B=s+1+ua+D+xa|0;Jm(b,32,f,B,h);Bm(b,t,s);Jm(b,48,f,B,h^65536);if(v){J=oa>>>0>F>>>0?F:oa;Y=n+9|0;R=Y;X=n+8|0;Q=J;do{K=Gm(c[Q>>2]| -0,0,Y)|0;if((Q|0)==(J|0))if((K|0)==(Y|0)){a[X>>0]=48;za=X}else za=K;else if(K>>>0>n>>>0){Nn(n|0,48,K-o|0)|0;y=K;while(1){Z=y+-1|0;if(Z>>>0>n>>>0)y=Z;else{za=Z;break}}}else za=K;Bm(b,za,R-za|0);Q=Q+4|0}while(Q>>>0<=F>>>0);if(x|0)Bm(b,6008,1);if(Q>>>0>>0&(ua|0)>0){F=ua;R=Q;while(1){X=Gm(c[R>>2]|0,0,Y)|0;if(X>>>0>n>>>0){Nn(n|0,48,X-o|0)|0;J=X;while(1){v=J+-1|0;if(v>>>0>n>>>0)J=v;else{Aa=v;break}}}else Aa=X;Bm(b,Aa,(F|0)<9?F:9);R=R+4|0;J=F+-9|0;if(!(R>>>0>>0&(F|0)>9)){Ba=J;break}else F=J}}else Ba= -ua;Jm(b,48,Ba+9|0,9,0)}else{F=pa?H:oa+4|0;if((ua|0)>-1){R=n+9|0;Y=(va|0)==0;Q=R;x=0-o|0;J=n+8|0;K=ua;v=oa;while(1){D=Gm(c[v>>2]|0,0,R)|0;if((D|0)==(R|0)){a[J>>0]=48;Ca=J}else Ca=D;do if((v|0)==(oa|0)){D=Ca+1|0;Bm(b,Ca,1);if(Y&(K|0)<1){Da=D;break}Bm(b,6008,1);Da=D}else{if(Ca>>>0<=n>>>0){Da=Ca;break}Nn(n|0,48,Ca+x|0)|0;D=Ca;while(1){A=D+-1|0;if(A>>>0>n>>>0)D=A;else{Da=A;break}}}while(0);X=Q-Da|0;Bm(b,Da,(K|0)>(X|0)?X:K);D=K-X|0;v=v+4|0;if(!(v>>>0>>0&(D|0)>-1)){Ea=D;break}else K=D}}else Ea=ua;Jm(b, -48,Ea+18|0,18,0);Bm(b,wa,q-wa|0)}Jm(b,32,f,B,h^8192);M=B}else{K=(i&32|0)!=0;F=s+3|0;Jm(b,32,f,F,h&-65537);Bm(b,t,s);Bm(b,r!=r|0!=0?K?5984:5988:K?5976:5980,3);Jm(b,32,f,F,h^8192);M=F}while(0);l=j;return((M|0)<(f|0)?f:M)|0}function Mm(a){a=+a;var b=0;h[j>>3]=a;b=c[j>>2]|0;z=c[j+4>>2]|0;return b|0}function Nm(a,b){a=+a;b=b|0;return+ +Om(a,b)}function Om(a,b){a=+a;b=b|0;var d=0,e=0,f=0,g=0,i=0,k=0,l=0;h[j>>3]=a;d=c[j>>2]|0;e=c[j+4>>2]|0;f=Pn(d|0,e|0,52)|0;switch(f&2047){case 0:{if(a!=0){g=+Om(a*1.8446744073709552E19, -b);i=g;k=(c[b>>2]|0)+-64|0}else{i=a;k=0}c[b>>2]=k;l=i;break}case 2047:{l=a;break}default:{c[b>>2]=(f&2047)+-1022;c[j>>2]=d;c[j+4>>2]=e&-2146435073|1071644672;l=+h[j>>3]}}return+l}function Pm(b,d,e){b=b|0;d=d|0;e=e|0;var f=0;do if(b){if(d>>>0<128){a[b>>0]=d;f=1;break}if(!(c[c[(Qm()|0)+188>>2]>>2]|0))if((d&-128|0)==57216){a[b>>0]=d;f=1;break}else{c[(rm()|0)>>2]=84;f=-1;break}if(d>>>0<2048){a[b>>0]=d>>>6|192;a[b+1>>0]=d&63|128;f=2;break}if(d>>>0<55296|(d&-8192|0)==57344){a[b>>0]=d>>>12|224;a[b+1>>0]= -d>>>6&63|128;a[b+2>>0]=d&63|128;f=3;break}if((d+-65536|0)>>>0<1048576){a[b>>0]=d>>>18|240;a[b+1>>0]=d>>>12&63|128;a[b+2>>0]=d>>>6&63|128;a[b+3>>0]=d&63|128;f=4;break}else{c[(rm()|0)>>2]=84;f=-1;break}}else f=1;while(0);return f|0}function Qm(){return tm()|0}function Rm(){return tm()|0}function Sm(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0;f=0;while(1){if((d[6010+f>>0]|0)==(b|0)){g=2;break}h=f+1|0;if((h|0)==87){i=6098;j=87;g=5;break}else f=h}if((g|0)==2)if(!f)k=6098;else{i=6098;j=f;g=5}if((g|0)== -5)while(1){g=0;f=i;do{b=f;f=f+1|0}while((a[b>>0]|0)!=0);j=j+-1|0;if(!j){k=f;break}else{i=f;g=5}}return Tm(k,c[e+20>>2]|0)|0}function Tm(a,b){a=a|0;b=b|0;return Um(a,b)|0}function Um(a,b){a=a|0;b=b|0;var d=0;if(!b)d=0;else d=Vm(c[b>>2]|0,c[b+4>>2]|0,a)|0;return(d|0?d:a)|0}function Vm(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;f=(c[b>>2]|0)+1794895138|0;g=Wm(c[b+8>>2]|0,f)|0;h=Wm(c[b+12>>2]|0,f)|0;i=Wm(c[b+16>>2]|0,f)|0;a:do if((g>>>0>>2>>>0?(j=d-(g<< -2)|0,h>>>0>>0&i>>>0>>0):0)?((i|h)&3|0)==0:0){j=h>>>2;k=i>>>2;l=0;m=g;while(1){n=m>>>1;o=l+n|0;p=o<<1;q=p+j|0;r=Wm(c[b+(q<<2)>>2]|0,f)|0;s=Wm(c[b+(q+1<<2)>>2]|0,f)|0;if(!(s>>>0>>0&r>>>0<(d-s|0)>>>0)){t=0;break a}if(a[b+(s+r)>>0]|0){t=0;break a}r=wm(e,b+s|0)|0;if(!r)break;s=(r|0)<0;if((m|0)==1){t=0;break a}else{l=s?l:o;m=s?n:m-n|0}}m=p+k|0;l=Wm(c[b+(m<<2)>>2]|0,f)|0;j=Wm(c[b+(m+1<<2)>>2]|0,f)|0;if(j>>>0>>0&l>>>0<(d-j|0)>>>0)t=(a[b+(j+l)>>0]|0)==0?b+j|0:0;else t=0}else t=0;while(0);return t| -0}function Wm(a,b){a=a|0;b=b|0;var c=0;c=Xn(a|0)|0;return((b|0)==0?a:c)|0}function Xm(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;f=e+16|0;g=c[f>>2]|0;if(!g)if(!(Ym(e)|0)){h=c[f>>2]|0;i=5}else j=0;else{h=g;i=5}a:do if((i|0)==5){g=e+20|0;f=c[g>>2]|0;k=f;if((h-f|0)>>>0>>0){j=Sa[c[e+36>>2]&15](e,b,d)|0;break}b:do if((a[e+75>>0]|0)>-1){f=d;while(1){if(!f){l=0;m=b;n=d;o=k;break b}p=f+-1|0;if((a[b+p>>0]|0)==10)break;else f=p}p=Sa[c[e+36>>2]&15](e,b,f)|0;if(p>>>0>>0){j= -p;break a}l=f;m=b+f|0;n=d-f|0;o=c[g>>2]|0}else{l=0;m=b;n=d;o=k}while(0);Qn(o|0,m|0,n|0)|0;c[g>>2]=(c[g>>2]|0)+n;j=l+n|0}while(0);return j|0}function Ym(b){b=b|0;var d=0,e=0,f=0;d=b+74|0;e=a[d>>0]|0;a[d>>0]=e+255|e;e=c[b>>2]|0;if(!(e&8)){c[b+8>>2]=0;c[b+4>>2]=0;d=c[b+44>>2]|0;c[b+28>>2]=d;c[b+20>>2]=d;c[b+16>>2]=d+(c[b+48>>2]|0);f=0}else{c[b>>2]=e|32;f=-1}return f|0}function Zm(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0;f=l;l=l+16|0;g=f;h=e&255;a[g>>0]=h;i=b+16|0;j=c[i>>2]|0;if(!j)if(!(Ym(b)| -0)){k=c[i>>2]|0;m=4}else n=-1;else{k=j;m=4}do if((m|0)==4){j=b+20|0;i=c[j>>2]|0;if(i>>>0>>0?(o=e&255,(o|0)!=(a[b+75>>0]|0)):0){c[j>>2]=i+1;a[i>>0]=h;n=o;break}if((Sa[c[b+36>>2]&15](b,g,1)|0)==1)n=d[g>>0]|0;else n=-1}while(0);l=f;return n|0}function _m(){Da(9292);return 9300}function $m(){Aa(9292);return}function an(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0;do if(a){if((c[a+76>>2]|0)<=-1){b=bn(a)|0;break}d=(zm(a)|0)==0;e=bn(a)|0;if(d)b=e;else{Am(a);b=e}}else{if(!(c[667]|0))f=0;else f=an(c[667]|0)| -0;e=c[(_m()|0)>>2]|0;if(!e)g=f;else{d=e;e=f;while(1){if((c[d+76>>2]|0)>-1)h=zm(d)|0;else h=0;if((c[d+20>>2]|0)>>>0>(c[d+28>>2]|0)>>>0)i=bn(d)|0|e;else i=e;if(h|0)Am(d);d=c[d+56>>2]|0;if(!d){g=i;break}else e=i}}$m();b=g}while(0);return b|0}function bn(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0;b=a+20|0;d=a+28|0;if((c[b>>2]|0)>>>0>(c[d>>2]|0)>>>0?(Sa[c[a+36>>2]&15](a,0,0)|0,(c[b>>2]|0)==0):0)e=-1;else{f=a+4|0;g=c[f>>2]|0;h=a+8|0;i=c[h>>2]|0;if(g>>>0>>0)Sa[c[a+40>>2]&15](a,g-i|0,1)|0;c[a+16>>2]=0;c[d>> -2]=0;c[b>>2]=0;c[h>>2]=0;c[f>>2]=0;e=0}return e|0}function cn(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&255;f=b&255;if((c[d+76>>2]|0)>=0?(zm(d)|0)!=0:0){if((f|0)!=(a[d+75>>0]|0)?(g=d+20|0,h=c[g>>2]|0,h>>>0<(c[d+16>>2]|0)>>>0):0){c[g>>2]=h+1;a[h>>0]=e;i=f}else i=Zm(d,b)|0;Am(d);j=i}else k=3;do if((k|0)==3){if((f|0)!=(a[d+75>>0]|0)?(i=d+20|0,h=c[i>>2]|0,h>>>0<(c[d+16>>2]|0)>>>0):0){c[i>>2]=h+1;a[h>>0]=e;j=f;break}j=Zm(d,b)|0}while(0);return j|0}function dn(a){a=a|0;var b=0,c=0;b=(a|0)==0? -1:a;while(1){a=km(b)|0;if(a|0){c=a;break}a=Hn()|0;if(!a){c=0;break}Ua[a&3]()}return c|0}function en(a,b){a=a|0;b=b|0;return dn(a)|0}function fn(a){a=a|0;lm(a);return}function gn(){var a=0,b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;a=l;l=l+48|0;b=a+32|0;d=a+24|0;e=a+16|0;f=a;g=a+36|0;a=hn()|0;if(a|0?(h=c[a>>2]|0,h|0):0){a=h+48|0;i=c[a>>2]|0;j=c[a+4>>2]|0;if(!((i&-256|0)==1126902528&(j|0)==1129074247)){c[d>>2]=c[669];jn(7988,d)}if((i|0)==1126902529&(j|0)==1129074247)k=c[h+44>>2]|0;else k=h+80|0;c[g>>2]=k; -k=c[h>>2]|0;h=c[k+4>>2]|0;j=Sa[c[(c[152]|0)+16>>2]&15](608,k,g)|0;k=c[669]|0;if(j){j=c[g>>2]|0;g=Ma[c[(c[j>>2]|0)+8>>2]&7](j)|0;c[f>>2]=k;c[f+4>>2]=h;c[f+8>>2]=g;jn(7902,f)}else{c[e>>2]=k;c[e+4>>2]=h;jn(7947,e)}}jn(8026,b)}function hn(){var a=0,b=0;a=l;l=l+16|0;if(!(xa(9304,3)|0)){b=wa(c[2327]|0)|0;l=a;return b|0}else jn(8177,a);return 0}function jn(a,b){a=a|0;b=b|0;var d=0,e=0;d=l;l=l+16|0;e=d;c[e>>2]=b;b=c[543]|0;xm(b,a,e)|0;cn(10,b)|0;ma()}function kn(a){a=a|0;return}function ln(a){a=a|0;kn(a); -fn(a);return}function mn(a){a=a|0;return}function nn(a){a=a|0;return}function on(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=l;l=l+64|0;f=e;if(!(sn(a,b,0)|0))if((b|0)!=0?(g=wn(b,632,616,0)|0,(g|0)!=0):0){b=f+4|0;h=b+52|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;_a[c[(c[g>>2]|0)+28>>2]&31](g,f,c[d>>2]|0,1);if((c[f+24>>2]|0)==1){c[d>>2]=c[f+16>>2];i=1}else i=0;j=i}else j=0;else j=1;l=e;return j|0}function pn(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(sn(a,c[b+8>>2]|0,g)|0)vn(0,b,d,e,f);return}function qn(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;do if(!(sn(b,c[d+8>>2]|0,g)|0)){if(sn(b,c[d>>2]|0,g)|0){h=d+32|0;if((c[d+16>>2]|0)!=(e|0)?(i=d+20|0,(c[i>>2]|0)!=(e|0)):0){c[h>>2]=f;c[i>>2]=e;i=d+40|0;c[i>>2]=(c[i>>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[h>>2]=1}}else un(0,d,e,f);while(0);return}function rn(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;if(sn(a,c[b+8>>2]|0,0)|0)tn(0, -b,d,e);return}function sn(a,b,c){a=a|0;b=b|0;c=c|0;return(a|0)==(b|0)|0}function tn(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0;b=d+16|0;g=c[b>>2]|0;h=d+36|0;i=d+24|0;do if(g){if((g|0)!=(e|0)){c[h>>2]=(c[h>>2]|0)+1;c[i>>2]=2;a[d+54>>0]=1;break}if((c[i>>2]|0)==2)c[i>>2]=f}else{c[b>>2]=e;c[i>>2]=f;c[h>>2]=1}while(0);return}function un(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;if((c[b+4>>2]|0)==(d|0)?(d=b+28|0,(c[d>>2]|0)!=1):0)c[d>>2]=e;return}function vn(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;a[d+53>>0]=1;do if((c[d+4>>2]|0)==(f|0)){a[d+52>>0]=1;b=d+16|0;h=c[b>>2]|0;i=d+54|0;j=d+48|0;k=d+24|0;l=d+36|0;if(!h){c[b>>2]=e;c[k>>2]=g;c[l>>2]=1;if(!((c[j>>2]|0)==1&(g|0)==1))break;a[i>>0]=1;break}if((h|0)!=(e|0)){c[l>>2]=(c[l>>2]|0)+1;a[i>>0]=1;break}l=c[k>>2]|0;if((l|0)==2){c[k>>2]=g;m=g}else m=l;if((c[j>>2]|0)==1&(m|0)==1)a[i>>0]=1}while(0);return}function wn(d,e,f,g){d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0;h=l;l=l+64|0;i=h;j=c[d>>2]|0;k=d+(c[j+ --8>>2]|0)|0;m=c[j+-4>>2]|0;c[i>>2]=f;c[i+4>>2]=d;c[i+8>>2]=e;c[i+12>>2]=g;g=i+16|0;e=i+20|0;d=i+24|0;j=i+28|0;n=i+32|0;o=i+40|0;p=g;q=p+36|0;do{c[p>>2]=0;p=p+4|0}while((p|0)<(q|0));b[g+36>>1]=0;a[g+38>>0]=0;a:do if(sn(m,f,0)|0){c[i+48>>2]=1;Xa[c[(c[m>>2]|0)+20>>2]&7](m,i,k,k,1,0);r=(c[d>>2]|0)==1?k:0}else{Na[c[(c[m>>2]|0)+24>>2]&3](m,i,k,1,0);switch(c[i+36>>2]|0){case 0:{r=(c[o>>2]|0)==1&(c[j>>2]|0)==1&(c[n>>2]|0)==1?c[e>>2]|0:0;break a;break}case 1:break;default:{r=0;break a}}if((c[d>>2]|0)!=1?!((c[o>> -2]|0)==0&(c[j>>2]|0)==1&(c[n>>2]|0)==1):0){r=0;break}r=c[g>>2]|0}while(0);l=h;return r|0}function xn(a){a=a|0;kn(a);fn(a);return}function yn(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(sn(a,c[b+8>>2]|0,g)|0)vn(0,b,d,e,f);else{h=c[a+8>>2]|0;Xa[c[(c[h>>2]|0)+20>>2]&7](h,b,d,e,f,g)}return}function zn(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;do if(!(sn(b,c[d+8>>2]|0,g)|0)){h=b+8|0;if(!(sn(b,c[d>>2]|0,g)|0)){i=c[h>>2]|0;Na[c[(c[i>>2]|0)+24>>2]& -3](i,d,e,f,g);break}i=d+32|0;if((c[d+16>>2]|0)!=(e|0)?(j=d+20|0,(c[j>>2]|0)!=(e|0)):0){c[i>>2]=f;k=d+44|0;if((c[k>>2]|0)==4)break;l=d+52|0;a[l>>0]=0;m=d+53|0;a[m>>0]=0;n=c[h>>2]|0;Xa[c[(c[n>>2]|0)+20>>2]&7](n,d,e,e,1,g);if(a[m>>0]|0)if(!(a[l>>0]|0)){o=3;p=11}else q=3;else{o=4;p=11}if((p|0)==11){c[j>>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;q=o}else q=o}c[k>>2]=q;break}if((f|0)==1)c[i>>2]=1}else un(0,d,e,f);while(0);return}function An(a,b,d,e){a=a| -0;b=b|0;d=d|0;e=e|0;var f=0;if(sn(a,c[b+8>>2]|0,0)|0)tn(0,b,d,e);else{f=c[a+8>>2]|0;_a[c[(c[f>>2]|0)+28>>2]&31](f,b,d,e)}return}function Bn(a){a=a|0;return}function Cn(){var a=0;a=l;l=l+16|0;if(!(la(9308,65)|0)){l=a;return}else jn(8226,a)}function Dn(a){a=a|0;var b=0;b=l;l=l+16|0;lm(a);if(!(Ca(c[2327]|0,0)|0)){l=b;return}else jn(8276,b)}function En(){var a=0,b=0;a=hn()|0;if((a|0?(b=c[a>>2]|0,b|0):0)?(a=b+48|0,(c[a>>2]&-256|0)==1126902528?(c[a+4>>2]|0)==1129074247:0):0)Fn(c[b+12>>2]|0);Fn(Gn()|0)} -function Fn(a){a=a|0;var b=0;b=l;l=l+16|0;Ua[a&3]();jn(8329,b)}function Gn(){var a=0;a=c[668]|0;c[668]=a+0;return a|0}function Hn(){var a=0;a=c[2328]|0;c[2328]=a+0;return a|0}function In(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;e=l;l=l+16|0;f=e;c[f>>2]=c[d>>2];g=Sa[c[(c[a>>2]|0)+16>>2]&15](a,b,f)|0;if(g)c[d>>2]=c[f>>2];l=e;return g&1|0}function Jn(a){a=a|0;var b=0;if(!a)b=0;else b=(wn(a,632,688,0)|0)!=0;return b&1|0}function Kn(){}function Ln(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(z=e,a-c>>>0|0)|0}function Mn(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0;e=a+c>>>0;return(z=b+d+(e>>>0>>0|0)>>>0,e|0)|0}function Nn(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;d=d&255;if((e|0)>=67){while(b&3){a[b>>0]=d;b=b+1|0}g=f&-4|0;h=g-64|0;i=d|d<<8|d<<16|d<<24;while((b|0)<=(h|0)){c[b>>2]=i;c[b+4>>2]=i;c[b+8>>2]=i;c[b+12>>2]=i;c[b+16>>2]=i;c[b+20>>2]=i;c[b+24>>2]=i;c[b+28>>2]=i;c[b+32>>2]=i;c[b+36>>2]=i;c[b+40>>2]=i;c[b+44>>2]=i;c[b+48>>2]=i;c[b+52>>2]=i; -c[b+56>>2]=i;c[b+60>>2]=i;b=b+64|0}while((b|0)<(g|0)){c[b>>2]=i;b=b+4|0}}while((b|0)<(f|0)){a[b>>0]=d;b=b+1|0}return f-e|0}function On(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){z=b<>>32-c;return a<>>c;return a>>>c|(b&(1<>>c-32|0}function Qn(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;if((e|0)>=8192)return sa(b|0,d|0,e|0)|0;f=b|0;g=b+e|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}h=g&-4|0;e=h-64|0;while((b|0)<=(e|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[b+16>>2]=c[d+16>>2];c[b+20>>2]=c[d+20>>2];c[b+24>>2]=c[d+24>>2];c[b+28>>2]=c[d+28>>2];c[b+32>>2]=c[d+32>>2];c[b+36>>2]=c[d+36>>2];c[b+40>>2]=c[d+40>>2];c[b+44>>2]=c[d+44>>2];c[b+48>>2]=c[d+48>>2];c[b+52>>2]=c[d+52>>2];c[b+56>>2]=c[d+56>>2];c[b+60>>2]=c[d+60>>2];b=b+64|0;d=d+64|0}while((b|0)<(h|0)){c[b>>2]=c[d>>2];b=b+4|0;d=d+4|0}}else{h=g- -4|0;while((b|0)<(h|0)){a[b>>0]=a[d>>0]|0;a[b+1>>0]=a[d+1>>0]|0;a[b+2>>0]=a[d+2>>0]|0;a[b+3>>0]=a[d+3>>0]|0;b=b+4|0;d=d+4|0}}while((b|0)<(g|0)){a[b>>0]=a[d>>0]|0;b=b+1|0;d=d+1|0}return f|0}function Rn(b){b=b|0;var c=0;c=a[n+(b&255)>>0]|0;if((c|0)<8)return c|0;c=a[n+(b>>8&255)>>0]|0;if((c|0)<8)return c+8|0;c=a[n+(b>>16&255)>>0]|0;if((c|0)<8)return c+16|0;return(a[n+(b>>>24)>>0]|0)+24|0}function Sn(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,A=0,B=0,C=0,D=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(z=n,o)|0}else{if(!m){n=0;o=0;return(z=n,o)|0}c[f>>2]=a|0;c[f+4>>2]=b&0;n=0;o=0;return(z=n,o)|0}}m=(l|0)==0;do if(j){if(!m){p=(R(l|0)|0)-(R(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<>>(q>>>0)&s;w=0;x=g<>2]=a|0;c[f+4>>2]=h|b&0;n=0;o=0;return(z=n, -o)|0}r=j-1|0;if(r&j|0){s=(R(j|0)|0)+33-(R(i|0)|0)|0;q=64-s|0;p=32-s|0;y=p>>31;A=s-32|0;B=A>>31;t=s;u=p-1>>31&i>>>(A>>>0)|(i<>>(s>>>0))&B;v=B&i>>>(s>>>0);w=g<>>(A>>>0))&y|g<>31;break}if(f|0){c[f>>2]=r&g;c[f+4>>2]=0}if((j|0)==1){n=h|b&0;o=a|0|0;return(z=n,o)|0}else{r=Rn(j|0)|0;n=i>>>(r>>>0)|0;o=i<<32-r|g>>>(r>>>0)|0;return(z=n,o)|0}}else{if(m){if(f|0){c[f>>2]=(i>>>0)%(j>>>0);c[f+4>>2]=0}n=0;o=(i>>>0)/(j>>>0)>>>0;return(z=n,o)|0}if(!g){if(f|0){c[f>>2]=0;c[f+4>>2]=(i>>>0)% -(l>>>0)}n=0;o=(i>>>0)/(l>>>0)>>>0;return(z=n,o)|0}r=l-1|0;if(!(r&l)){if(f|0){c[f>>2]=a|0;c[f+4>>2]=r&i|b&0}n=0;o=i>>>((Rn(l|0)|0)>>>0);return(z=n,o)|0}r=(R(l|0)|0)-(R(i|0)|0)|0;if(r>>>0<=30){s=r+1|0;p=31-r|0;t=s;u=i<>>(s>>>0);v=i>>>(s>>>0);w=0;x=g<>2]=a|0;c[f+4>>2]=h|b&0;n=0;o=0;return(z=n,o)|0}while(0);if(!t){C=x;D=w;E=v;F=u;G=0;H=0}else{b=d|0|0;d=k|e&0;e=Mn(b|0,d|0,-1,-1)|0;k=z;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;Ln(e|0,k|0,g|0,a|0)|0;i=z;l=i>>31|((i|0)<0?-1:0)<<1;t=l&1;v=Ln(g|0,a|0,l&b|0,(((i|0)<0?-1:0)>>31|((i|0)<0?-1:0)<<1)&d|0)|0;w=z;u=u-1|0}while((u|0)!=0);C=h;D=x;E=w;F=v;G=0;H=t}t=D;D=0;if(f|0){c[f>>2]=F;c[f+4>>2]=E}n=(t|0)>>>31|(C|D)<<1|(D<<1|t>>>31)&0|G;o=(t<<1|0>>>31)&-2|H;return(z=n,o)|0}function Tn(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return Sn(a,b,c,d,0)|0}function Un(a){a=a|0;var b=0,d=0;a=a+15&-16|0;b=c[i>>2]|0;d=b+a|0;if((a|0)>0&(d|0)<(b|0)|(d|0)<0){W()|0;qa(12);return-1}c[i>>2]= -d;if((d|0)>(V()|0)?(U()|0)==0:0){c[i>>2]=b;qa(12);return-1}return b|0}function Vn(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 Qn(b,c,d)|0;return b|0}function Wn(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;f=l;l=l+16|0;g=f|0;Sn(a,b,d,e,g)|0;l=f;return(z=c[g+4>>2]|0,c[g>>2]|0)|0}function Xn(a){a=a|0;return(a&255)<<24|(a>>8&255)<<16|(a>>16&255)<<8|a>>>24|0}function Yn(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;return+La[a&1](b|0,c|0,d|0,e|0,f|0,+g)}function Zn(a,b){a=a|0;b=b|0;return Ma[a&7](b|0)|0}function _n(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;Na[a&3](b|0,c|0,d|0,e|0,f|0)}function $n(a,b,c){a=a|0;b=b|0;c=+c;return+Oa[a&15](b|0,+c)}function ao(a,b){a=a|0;b=b|0;Pa[a&127](b|0)}function bo(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=+f;return+Qa[a&1](b|0,c|0,d|0,e|0,+f)}function co(a,b,c){a=a|0;b=b|0;c=c|0;Ra[a&63](b|0,c|0)}function eo(a,b,c,d){a=a|0;b=b|0;c=c|0; -d=d|0;return Sa[a&15](b|0,c|0,d|0)|0}function fo(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;Ta[a&7](b|0,c|0,d|0)}function go(a){a=a|0;Ua[a&3]()}function ho(a,b,c,d){a=a|0;b=b|0;c=c|0;d=+d;Va[a&31](b|0,c|0,+d)}function io(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return Wa[a&7](b|0,c|0,d|0,e|0)|0}function jo(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;Xa[a&7](b|0,c|0,d|0,e|0,f|0,g|0)}function ko(a,b,c){a=a|0;b=b|0;c=c|0;return Ya[a&31](b|0,c|0)|0}function lo(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 Za[a&15](b|0,c|0,d|0,e|0,f|0)|0}function mo(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;_a[a&31](b|0,c|0,d|0,e|0)}function no(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=+f;S(0);return 0}function oo(a){a=a|0;S(1);return 0}function po(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;S(2)}function qo(a,b){a=a|0;b=+b;S(3);return 0}function ro(a){a=a|0;S(4)}function so(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=+e;S(5);return 0}function to(a,b){a=a|0;b=b|0;S(6)}function uo(a,b,c){a=a|0;b=b|0;c=c|0; -S(7);return 0}function vo(a,b,c){a=a|0;b=b|0;c=c|0;S(8)}function wo(){S(9)}function xo(){Ia()}function yo(a,b,c){a=a|0;b=b|0;c=+c;S(10)}function zo(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;S(11);return 0}function Ao(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;S(12)}function Bo(a,b){a=a|0;b=b|0;S(13);return 0}function Co(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;S(14);return 0}function Do(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;S(15)}var La=[no,Fd];var Ma=[oo,Ud,ae,je,se,hk,nm,oo];var Na=[po,qn,zn,po];var Oa= -[qo,mf,zf,Nf,Yf,hg,sg,Dg,Vg,ih,zh,Lh,qo,qo,qo,qo];var Pa=[ro,Yb,qd,Zb,zd,Hd,Dd,Rd,Sd,_d,he,pe,qe,df,ef,nf,pf,qf,Af,Cf,Of,Pf,Zf,_f,ig,jg,tg,ug,Eg,Fg,Wg,Xg,dh,eh,jh,kh,Ah,Bh,Mh,Oh,Vh,Wh,ai,di,hi,ui,yi,Ci,Gi,oj,ak,fk,rk,Rk,sk,Ck,Dk,Uk,jl,ol,kn,ln,mn,nn,xn,Dn,ro,ro,ro,ro,ro,ro,ro,ro,ro,ro,ro,ro,ro,ro,ro,ro,ro,ro,ro,ro,ro,ro,ro,ro,ro,ro,ro,ro,ro,ro,ro,ro,ro,ro,ro,ro,ro,ro,ro,ro,ro,ro,ro,ro,ro,ro,ro,ro,ro,ro,ro,ro,ro,ro,ro,ro,ro,ro,ro,ro,ro,ro];var Qa=[so,Ed];var Ra=[to,rd,sd,jf,kf,of,rf,sf,wf,xf,Bf,Df, -Ef,Kf,Lf,Qf,Rf,Vf,Wf,$f,ag,eg,fg,kg,lg,pg,qg,vg,wg,Ag,Bg,Gg,Hg,Sg,Tg,Yg,Zg,fh,gh,lh,mh,wh,xh,Ch,Dh,Ih,Jh,Nh,Ph,Qh,pj,qj,Zl,ji,fi,Ii,wi,Ei,Ai,Yh,to,to,to,to];var Sa=[uo,Bd,Vd,be,ke,te,ff,ck,ik,Sk,uk,om,pm,vm,on,uo];var Ta=[vo,td,vd,xd,yd,rj,sj,vo];var Ua=[wo,xo,gn,Cn];var Va=[yo,Zd,fe,oe,xe,lf,yf,Mf,Xf,gg,rg,Cg,Ug,hh,yh,Kh,mk,yo,yo,yo,yo,yo,yo,yo,yo,yo,yo,yo,yo,yo,yo,yo];var Wa=[zo,gf,hf,Tk,vk,zo,zo,zo];var Xa=[Ao,Wd,ce,le,ue,jk,pn,yn];var Ya=[Bo,Ad,Cd,Gd,Td,$d,ie,re,tf,Ff,Sf,bg,mg,xg,Ig,_g,nh,Eh, -Rh,bk,gk,tk,Vk,kl,ll,Yl,yj,wk,yk,Lk,Zk,dl];var Za=[Co,Xd,de,me,ve,kk,ii,ei,Hi,vi,Di,zi,Xh,Co,Co,Co];var _a=[Do,ud,wd,Yd,ee,ne,we,Uh,ci,gi,ti,xi,Bi,Fi,lk,Ek,ml,pl,rn,An,Do,Do,Do,Do,Do,Do,Do,Do,Do,Do,Do,Do];return{_b2PrismaticJoint_IsMotorEnabled:Gc,_b2Body_GetWorldVector:Nb,_b2Body_GetLocalPoint:Fb,_b2Body_GetLocalVector:Gb,_b2PrismaticJoint_GetMotorSpeed:Dc,_b2ParticleGroup_ApplyLinearImpulse:ad,_b2RopeJointDef_Create:Uc,_b2World_CreateParticleSystem:ac,_b2ParticleSystem_SetRadius:pd,__GLOBAL__sub_I_jsBindings_cpp:Id, -_bitshift64Lshr:Pn,_b2FrictionJointDef_Create:oc,_b2World_RayCast:gc,_b2MotorJointDef_InitializeAndCreate:xc,_b2GearJoint_GetRatio:qc,_sbrk:Un,_b2PolygonShape_CreateFixture_8:sb,_memcpy:Qn,_b2RevoluteJoint_EnableLimit:Mc,_b2Body_DestroyFixture:Ab,_b2World_Create:_b,_b2PolygonShape_CreateFixture_3:nb,_b2PolygonShape_CreateFixture_6:qb,_b2PolygonShape_CreateFixture_7:rb,_b2PolygonShape_CreateFixture_4:ob,_b2PolygonShape_CreateFixture_5:pb,_b2Body_ApplyLinearImpulse:wb,_b2Body_SetAwake:Ob,dynCall_iiii:eo, -_emscripten_get_global_libc:mm,_b2ParticleGroup_DestroyParticles:bd,_b2PrismaticJoint_EnableLimit:Ac,dynCall_iiiiii:lo,stackSave:ab,_b2Fixture_TestPoint:Xb,_b2MotorJoint_SetLinearOffset:vc,___cxa_can_catch:In,_free:lm,runPostSets:Kn,_b2ParticleSystem_CreateParticle:ed,_b2Body_SetLinearVelocity:Rb,dynCall_viiiiii:jo,_b2Body_SetAngularVelocity:Qb,_b2CircleShape_CreateParticleGroup:kb,_b2WeldJointDef_Create:Vc,dynCall_viiiii:_n,_b2Body_GetAngularVelocity:Cb,_b2World_SetGravity:ic,_b2DistanceJointDef_InitializeAndCreate:nc, -setThrew:db,_b2Body_ApplyForce:xb,_b2RevoluteJoint_SetMotorSpeed:Tc,___cxa_is_pointer_type:Jn,_b2Body_GetPosition:Ib,_b2World_CreateBody:$b,_b2Body_GetLinearVelocity:Eb,_b2ParticleSystem_SetGravityScale:md,_b2ParticleSystem_SetMaxParticleCount:nd,_b2Body_SetMassData:Sb,getTempRet0:fb,_b2MouseJointDef_Create:zc,_b2ParticleSystem_GetColorBuffer:fd,_b2PrismaticJointDef_Create:Ic,_b2DistanceJointDef_Create:mc,_b2ParticleSystem_GetPositionBuffer:id,_b2CircleShape_DestroyParticlesInShape:lb,_b2World_QueryAABB:fc, -dynCall_viiii:mo,_b2PolygonShape_DestroyParticlesInShape_4:ub,_llvm_bswap_i32:Xn,_b2RevoluteJointDef_InitializeAndCreate:Sc,_b2GearJointDef_Create:rc,establishStackSpace:cb,_b2PrismaticJoint_IsLimitEnabled:Fc,dynCall_diiiiid:Yn,_b2Contact_GetWorldManifold:lc,_b2WheelJoint_SetSpringFrequencyHz:Yc,_b2Body_ApplyTorque:zb,_b2Body_SetFixedRotation:Pb,_b2PrismaticJointDef_InitializeAndCreate:Jc,_b2MotorJointDef_Create:wc,_b2World_DestroyBody:cc,_b2RevoluteJointDef_Create:Rc,dynCall_viii:fo,_b2ParticleGroup_GetParticleCount:dd, -_b2Body_ApplyForceToCenter:yb,dynCall_vi:ao,_b2PrismaticJoint_EnableMotor:Bc,_b2PolygonShape_CreateParticleGroup_4:tb,dynCall_iii:ko,_memset:Nn,_b2ParticleSystem_SetDamping:kd,_b2Body_GetWorldPoint:Mb,_b2WheelJoint_SetMotorSpeed:Xc,_b2EdgeShape_CreateFixture:mb,setTempRet0:eb,_b2Body_GetWorldCenter:Lb,_b2Body_SetType:Ub,_b2Body_SetTransform:Tb,dynCall_ii:Zn,_b2RevoluteJoint_GetJointAngle:Oc,_b2ParticleGroup_ApplyForce:$c,_malloc:km,_b2Contact_GetManifold:kc,_b2RevoluteJoint_IsMotorEnabled:Qc,dynCall_did:$n, -_b2ParticleSystem_GetVelocityBuffer:jd,_b2ParticleSystem_GetParticleLifetime:hd,dynCall_v:go,_b2RevoluteJoint_IsLimitEnabled:Pc,_b2World_DestroyParticleSystem:ec,_b2RevoluteJoint_EnableMotor:Nc,_b2Body_GetTransform:Jb,_i64Subtract:Ln,___udivdi3:Tn,_b2WeldJointDef_InitializeAndCreate:Wc,_b2FrictionJointDef_InitializeAndCreate:pc,_b2Body_GetType:Kb,_b2Manifold_GetPointCount:gb,_bitshift64Shl:On,_b2ParticleSystem_SetDensity:ld,_fflush:an,_b2PrismaticJoint_GetMotorForce:Ec,_b2Joint_GetBodyA:sc,_b2PulleyJointDef_InitializeAndCreate:Lc, -_b2Joint_GetBodyB:tc,_b2ParticleSystem_GetParticleCount:gd,_b2MouseJoint_SetTarget:yc,_b2Body_ApplyAngularImpulse:vb,_b2ChainShape_CreateFixture:hb,_b2World_DestroyJoint:dc,___uremdi3:Wn,_b2MotorJoint_SetAngularOffset:uc,stackAlloc:$a,_b2World_Delete:bc,_b2World_SetContactListener:hc,dynCall_vii:co,_b2PrismaticJoint_GetJointTranslation:Cc,_i64Add:Mn,_b2Body_GetMass:Hb,_b2Body_GetAngle:Bb,_b2ParticleGroup_GetBufferIndex:cd,_b2WheelJointDef_InitializeAndCreate:_c,stackRestore:bb,dynCall_iiiii:io,dynCall_viid:ho, -dynCall_diiiid:bo,_b2World_Step:jc,_b2PulleyJointDef_Create:Kc,_b2Body_GetGravityScale:Wb,_b2Body_SetGravityScale:Vb,___errno_location:rm,_b2WheelJointDef_Create:Zc,_b2CircleShape_CreateFixture:jb,_b2Body_GetInertia:Db,_memmove:Vn,_b2ParticleSystem_SetParticleLifetime:od,_b2PrismaticJoint_SetMotorSpeed:Hc}}(Module.asmGlobalArg,Module.asmLibraryArg,buffer);var _b2PrismaticJoint_IsMotorEnabled=Module["_b2PrismaticJoint_IsMotorEnabled"]=asm["_b2PrismaticJoint_IsMotorEnabled"]; -var _b2Body_GetWorldVector=Module["_b2Body_GetWorldVector"]=asm["_b2Body_GetWorldVector"];var _b2Body_GetLocalVector=Module["_b2Body_GetLocalVector"]=asm["_b2Body_GetLocalVector"];var _b2PrismaticJoint_GetMotorSpeed=Module["_b2PrismaticJoint_GetMotorSpeed"]=asm["_b2PrismaticJoint_GetMotorSpeed"];var _b2Body_SetFixedRotation=Module["_b2Body_SetFixedRotation"]=asm["_b2Body_SetFixedRotation"];var _b2RopeJointDef_Create=Module["_b2RopeJointDef_Create"]=asm["_b2RopeJointDef_Create"]; -var _b2World_CreateParticleSystem=Module["_b2World_CreateParticleSystem"]=asm["_b2World_CreateParticleSystem"];var _b2ParticleSystem_SetRadius=Module["_b2ParticleSystem_SetRadius"]=asm["_b2ParticleSystem_SetRadius"];var __GLOBAL__sub_I_jsBindings_cpp=Module["__GLOBAL__sub_I_jsBindings_cpp"]=asm["__GLOBAL__sub_I_jsBindings_cpp"];var _bitshift64Lshr=Module["_bitshift64Lshr"]=asm["_bitshift64Lshr"];var _b2FrictionJointDef_Create=Module["_b2FrictionJointDef_Create"]=asm["_b2FrictionJointDef_Create"]; -var _b2World_RayCast=Module["_b2World_RayCast"]=asm["_b2World_RayCast"];var _b2MotorJointDef_InitializeAndCreate=Module["_b2MotorJointDef_InitializeAndCreate"]=asm["_b2MotorJointDef_InitializeAndCreate"];var _b2GearJoint_GetRatio=Module["_b2GearJoint_GetRatio"]=asm["_b2GearJoint_GetRatio"];var _sbrk=Module["_sbrk"]=asm["_sbrk"];var _b2PolygonShape_CreateFixture_8=Module["_b2PolygonShape_CreateFixture_8"]=asm["_b2PolygonShape_CreateFixture_8"];var _memcpy=Module["_memcpy"]=asm["_memcpy"]; -var _b2RevoluteJoint_EnableLimit=Module["_b2RevoluteJoint_EnableLimit"]=asm["_b2RevoluteJoint_EnableLimit"];var _b2Body_DestroyFixture=Module["_b2Body_DestroyFixture"]=asm["_b2Body_DestroyFixture"];var _b2World_Create=Module["_b2World_Create"]=asm["_b2World_Create"];var _b2PolygonShape_CreateFixture_3=Module["_b2PolygonShape_CreateFixture_3"]=asm["_b2PolygonShape_CreateFixture_3"];var _b2PolygonShape_CreateFixture_6=Module["_b2PolygonShape_CreateFixture_6"]=asm["_b2PolygonShape_CreateFixture_6"]; -var _b2PolygonShape_CreateFixture_7=Module["_b2PolygonShape_CreateFixture_7"]=asm["_b2PolygonShape_CreateFixture_7"];var _b2PolygonShape_CreateFixture_4=Module["_b2PolygonShape_CreateFixture_4"]=asm["_b2PolygonShape_CreateFixture_4"];var _b2PolygonShape_CreateFixture_5=Module["_b2PolygonShape_CreateFixture_5"]=asm["_b2PolygonShape_CreateFixture_5"];var _b2Body_ApplyLinearImpulse=Module["_b2Body_ApplyLinearImpulse"]=asm["_b2Body_ApplyLinearImpulse"]; -var _b2Body_SetAwake=Module["_b2Body_SetAwake"]=asm["_b2Body_SetAwake"];var _b2Body_GetWorldCenter=Module["_b2Body_GetWorldCenter"]=asm["_b2Body_GetWorldCenter"];var _emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=asm["_emscripten_get_global_libc"];var _b2ParticleGroup_DestroyParticles=Module["_b2ParticleGroup_DestroyParticles"]=asm["_b2ParticleGroup_DestroyParticles"];var _b2PrismaticJoint_EnableLimit=Module["_b2PrismaticJoint_EnableLimit"]=asm["_b2PrismaticJoint_EnableLimit"]; -var stackSave=Module["stackSave"]=asm["stackSave"];var _b2RevoluteJoint_GetJointAngle=Module["_b2RevoluteJoint_GetJointAngle"]=asm["_b2RevoluteJoint_GetJointAngle"];var _b2MotorJoint_SetLinearOffset=Module["_b2MotorJoint_SetLinearOffset"]=asm["_b2MotorJoint_SetLinearOffset"];var ___cxa_can_catch=Module["___cxa_can_catch"]=asm["___cxa_can_catch"];var _free=Module["_free"]=asm["_free"];var runPostSets=Module["runPostSets"]=asm["runPostSets"]; -var _b2ParticleSystem_CreateParticle=Module["_b2ParticleSystem_CreateParticle"]=asm["_b2ParticleSystem_CreateParticle"];var _b2Body_SetLinearVelocity=Module["_b2Body_SetLinearVelocity"]=asm["_b2Body_SetLinearVelocity"];var _b2Body_SetAngularVelocity=Module["_b2Body_SetAngularVelocity"]=asm["_b2Body_SetAngularVelocity"];var _b2PolygonShape_DestroyParticlesInShape_4=Module["_b2PolygonShape_DestroyParticlesInShape_4"]=asm["_b2PolygonShape_DestroyParticlesInShape_4"]; -var _b2WeldJointDef_Create=Module["_b2WeldJointDef_Create"]=asm["_b2WeldJointDef_Create"];var _b2Body_GetAngularVelocity=Module["_b2Body_GetAngularVelocity"]=asm["_b2Body_GetAngularVelocity"];var _b2World_SetGravity=Module["_b2World_SetGravity"]=asm["_b2World_SetGravity"];var _b2DistanceJointDef_InitializeAndCreate=Module["_b2DistanceJointDef_InitializeAndCreate"]=asm["_b2DistanceJointDef_InitializeAndCreate"];var setThrew=Module["setThrew"]=asm["setThrew"]; -var _b2Body_ApplyForce=Module["_b2Body_ApplyForce"]=asm["_b2Body_ApplyForce"];var _b2RevoluteJoint_SetMotorSpeed=Module["_b2RevoluteJoint_SetMotorSpeed"]=asm["_b2RevoluteJoint_SetMotorSpeed"];var ___cxa_is_pointer_type=Module["___cxa_is_pointer_type"]=asm["___cxa_is_pointer_type"];var _b2Body_GetPosition=Module["_b2Body_GetPosition"]=asm["_b2Body_GetPosition"];var _b2World_CreateBody=Module["_b2World_CreateBody"]=asm["_b2World_CreateBody"]; -var _b2Body_GetLinearVelocity=Module["_b2Body_GetLinearVelocity"]=asm["_b2Body_GetLinearVelocity"];var _b2EdgeShape_CreateFixture=Module["_b2EdgeShape_CreateFixture"]=asm["_b2EdgeShape_CreateFixture"];var _b2ParticleSystem_SetGravityScale=Module["_b2ParticleSystem_SetGravityScale"]=asm["_b2ParticleSystem_SetGravityScale"];var _b2ParticleSystem_SetMaxParticleCount=Module["_b2ParticleSystem_SetMaxParticleCount"]=asm["_b2ParticleSystem_SetMaxParticleCount"]; -var _b2Body_SetMassData=Module["_b2Body_SetMassData"]=asm["_b2Body_SetMassData"];var getTempRet0=Module["getTempRet0"]=asm["getTempRet0"];var _b2Body_GetAngle=Module["_b2Body_GetAngle"]=asm["_b2Body_GetAngle"];var _b2ParticleSystem_GetColorBuffer=Module["_b2ParticleSystem_GetColorBuffer"]=asm["_b2ParticleSystem_GetColorBuffer"];var _b2PulleyJointDef_Create=Module["_b2PulleyJointDef_Create"]=asm["_b2PulleyJointDef_Create"];var _b2DistanceJointDef_Create=Module["_b2DistanceJointDef_Create"]=asm["_b2DistanceJointDef_Create"]; -var _b2ParticleSystem_GetPositionBuffer=Module["_b2ParticleSystem_GetPositionBuffer"]=asm["_b2ParticleSystem_GetPositionBuffer"];var _b2CircleShape_DestroyParticlesInShape=Module["_b2CircleShape_DestroyParticlesInShape"]=asm["_b2CircleShape_DestroyParticlesInShape"];var _b2World_QueryAABB=Module["_b2World_QueryAABB"]=asm["_b2World_QueryAABB"];var _b2CircleShape_CreateParticleGroup=Module["_b2CircleShape_CreateParticleGroup"]=asm["_b2CircleShape_CreateParticleGroup"]; -var _llvm_bswap_i32=Module["_llvm_bswap_i32"]=asm["_llvm_bswap_i32"];var _b2RevoluteJointDef_InitializeAndCreate=Module["_b2RevoluteJointDef_InitializeAndCreate"]=asm["_b2RevoluteJointDef_InitializeAndCreate"];var _b2GearJointDef_Create=Module["_b2GearJointDef_Create"]=asm["_b2GearJointDef_Create"];var establishStackSpace=Module["establishStackSpace"]=asm["establishStackSpace"];var _b2PrismaticJoint_IsLimitEnabled=Module["_b2PrismaticJoint_IsLimitEnabled"]=asm["_b2PrismaticJoint_IsLimitEnabled"]; -var _b2Contact_GetWorldManifold=Module["_b2Contact_GetWorldManifold"]=asm["_b2Contact_GetWorldManifold"];var _b2WheelJoint_SetSpringFrequencyHz=Module["_b2WheelJoint_SetSpringFrequencyHz"]=asm["_b2WheelJoint_SetSpringFrequencyHz"];var _b2Body_ApplyTorque=Module["_b2Body_ApplyTorque"]=asm["_b2Body_ApplyTorque"];var _b2ParticleGroup_ApplyLinearImpulse=Module["_b2ParticleGroup_ApplyLinearImpulse"]=asm["_b2ParticleGroup_ApplyLinearImpulse"]; -var _b2PrismaticJointDef_InitializeAndCreate=Module["_b2PrismaticJointDef_InitializeAndCreate"]=asm["_b2PrismaticJointDef_InitializeAndCreate"];var _memset=Module["_memset"]=asm["_memset"];var _b2MotorJointDef_Create=Module["_b2MotorJointDef_Create"]=asm["_b2MotorJointDef_Create"];var _b2World_DestroyBody=Module["_b2World_DestroyBody"]=asm["_b2World_DestroyBody"];var _b2RevoluteJointDef_Create=Module["_b2RevoluteJointDef_Create"]=asm["_b2RevoluteJointDef_Create"]; -var _b2ParticleGroup_GetParticleCount=Module["_b2ParticleGroup_GetParticleCount"]=asm["_b2ParticleGroup_GetParticleCount"];var _b2Body_ApplyForceToCenter=Module["_b2Body_ApplyForceToCenter"]=asm["_b2Body_ApplyForceToCenter"];var _b2PrismaticJoint_EnableMotor=Module["_b2PrismaticJoint_EnableMotor"]=asm["_b2PrismaticJoint_EnableMotor"];var _b2PolygonShape_CreateParticleGroup_4=Module["_b2PolygonShape_CreateParticleGroup_4"]=asm["_b2PolygonShape_CreateParticleGroup_4"]; -var _b2Body_GetLocalPoint=Module["_b2Body_GetLocalPoint"]=asm["_b2Body_GetLocalPoint"];var _b2ParticleSystem_SetDamping=Module["_b2ParticleSystem_SetDamping"]=asm["_b2ParticleSystem_SetDamping"];var _b2Body_GetWorldPoint=Module["_b2Body_GetWorldPoint"]=asm["_b2Body_GetWorldPoint"];var _b2WheelJoint_SetMotorSpeed=Module["_b2WheelJoint_SetMotorSpeed"]=asm["_b2WheelJoint_SetMotorSpeed"];var _b2FrictionJointDef_InitializeAndCreate=Module["_b2FrictionJointDef_InitializeAndCreate"]=asm["_b2FrictionJointDef_InitializeAndCreate"]; -var setTempRet0=Module["setTempRet0"]=asm["setTempRet0"];var _b2World_SetContactListener=Module["_b2World_SetContactListener"]=asm["_b2World_SetContactListener"];var _b2Body_SetType=Module["_b2Body_SetType"]=asm["_b2Body_SetType"];var _b2Body_SetTransform=Module["_b2Body_SetTransform"]=asm["_b2Body_SetTransform"];var _b2Fixture_TestPoint=Module["_b2Fixture_TestPoint"]=asm["_b2Fixture_TestPoint"];var _b2ParticleGroup_ApplyForce=Module["_b2ParticleGroup_ApplyForce"]=asm["_b2ParticleGroup_ApplyForce"]; -var _malloc=Module["_malloc"]=asm["_malloc"];var _b2Contact_GetManifold=Module["_b2Contact_GetManifold"]=asm["_b2Contact_GetManifold"];var _b2ParticleSystem_GetVelocityBuffer=Module["_b2ParticleSystem_GetVelocityBuffer"]=asm["_b2ParticleSystem_GetVelocityBuffer"];var _b2ParticleSystem_GetParticleLifetime=Module["_b2ParticleSystem_GetParticleLifetime"]=asm["_b2ParticleSystem_GetParticleLifetime"];var _b2RevoluteJoint_IsLimitEnabled=Module["_b2RevoluteJoint_IsLimitEnabled"]=asm["_b2RevoluteJoint_IsLimitEnabled"]; -var _b2World_DestroyParticleSystem=Module["_b2World_DestroyParticleSystem"]=asm["_b2World_DestroyParticleSystem"];var _b2RevoluteJoint_EnableMotor=Module["_b2RevoluteJoint_EnableMotor"]=asm["_b2RevoluteJoint_EnableMotor"];var _b2Body_GetTransform=Module["_b2Body_GetTransform"]=asm["_b2Body_GetTransform"];var _i64Subtract=Module["_i64Subtract"]=asm["_i64Subtract"];var ___udivdi3=Module["___udivdi3"]=asm["___udivdi3"]; -var _b2WeldJointDef_InitializeAndCreate=Module["_b2WeldJointDef_InitializeAndCreate"]=asm["_b2WeldJointDef_InitializeAndCreate"];var _b2RevoluteJoint_IsMotorEnabled=Module["_b2RevoluteJoint_IsMotorEnabled"]=asm["_b2RevoluteJoint_IsMotorEnabled"];var _b2Body_GetType=Module["_b2Body_GetType"]=asm["_b2Body_GetType"];var _b2Manifold_GetPointCount=Module["_b2Manifold_GetPointCount"]=asm["_b2Manifold_GetPointCount"];var _bitshift64Shl=Module["_bitshift64Shl"]=asm["_bitshift64Shl"]; +4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0],"i8",ALLOC_DYNAMIC);function invoke_diiiiid(index,a1,a2,a3,a4,a5,a6){try{return Module["dynCall_diiiiid"](index,a1,a2,a3,a4,a5,a6)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;asm["setThrew"](1,0)}}function invoke_ii(index,a1){try{return Module["dynCall_ii"](index,a1)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;asm["setThrew"](1,0)}} +function invoke_viiiii(index,a1,a2,a3,a4,a5){try{Module["dynCall_viiiii"](index,a1,a2,a3,a4,a5)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;asm["setThrew"](1,0)}}function invoke_did(index,a1,a2){try{return Module["dynCall_did"](index,a1,a2)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;asm["setThrew"](1,0)}}function invoke_vi(index,a1){try{Module["dynCall_vi"](index,a1)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;asm["setThrew"](1,0)}} +function invoke_diiiid(index,a1,a2,a3,a4,a5){try{return Module["dynCall_diiiid"](index,a1,a2,a3,a4,a5)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;asm["setThrew"](1,0)}}function invoke_vii(index,a1,a2){try{Module["dynCall_vii"](index,a1,a2)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;asm["setThrew"](1,0)}}function invoke_iiii(index,a1,a2,a3){try{return Module["dynCall_iiii"](index,a1,a2,a3)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;asm["setThrew"](1,0)}} +function invoke_viii(index,a1,a2,a3){try{Module["dynCall_viii"](index,a1,a2,a3)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;asm["setThrew"](1,0)}}function invoke_v(index){try{Module["dynCall_v"](index)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;asm["setThrew"](1,0)}}function invoke_viid(index,a1,a2,a3){try{Module["dynCall_viid"](index,a1,a2,a3)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;asm["setThrew"](1,0)}} +function invoke_iiiii(index,a1,a2,a3,a4){try{return Module["dynCall_iiiii"](index,a1,a2,a3,a4)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;asm["setThrew"](1,0)}}function invoke_viiiiii(index,a1,a2,a3,a4,a5,a6){try{Module["dynCall_viiiiii"](index,a1,a2,a3,a4,a5,a6)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;asm["setThrew"](1,0)}} +function invoke_iii(index,a1,a2){try{return Module["dynCall_iii"](index,a1,a2)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;asm["setThrew"](1,0)}}function invoke_iiiiii(index,a1,a2,a3,a4,a5){try{return Module["dynCall_iiiiii"](index,a1,a2,a3,a4,a5)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;asm["setThrew"](1,0)}} +function invoke_viiii(index,a1,a2,a3,a4){try{Module["dynCall_viiii"](index,a1,a2,a3,a4)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;asm["setThrew"](1,0)}}Module.asmGlobalArg={"Math":Math,"Int8Array":Int8Array,"Int16Array":Int16Array,"Int32Array":Int32Array,"Uint8Array":Uint8Array,"Uint16Array":Uint16Array,"Uint32Array":Uint32Array,"Float32Array":Float32Array,"Float64Array":Float64Array,"NaN":NaN,"Infinity":Infinity}; +Module.asmLibraryArg={"abort":abort,"assert":assert,"invoke_diiiiid":invoke_diiiiid,"invoke_ii":invoke_ii,"invoke_viiiii":invoke_viiiii,"invoke_did":invoke_did,"invoke_vi":invoke_vi,"invoke_diiiid":invoke_diiiid,"invoke_vii":invoke_vii,"invoke_iiii":invoke_iiii,"invoke_viii":invoke_viii,"invoke_v":invoke_v,"invoke_viid":invoke_viid,"invoke_iiiii":invoke_iiiii,"invoke_viiiiii":invoke_viiiiii,"invoke_iii":invoke_iii,"invoke_iiiiii":invoke_iiiiii,"invoke_viiii":invoke_viiii,"_pthread_cleanup_pop":_pthread_cleanup_pop, +"_cosf":_cosf,"_pthread_key_create":_pthread_key_create,"_abort":_abort,"___setErrNo":___setErrNo,"___cxa_allocate_exception":___cxa_allocate_exception,"___cxa_find_matching_catch":___cxa_find_matching_catch,"_b2WorldBeginContactBody":_b2WorldBeginContactBody,"_emscripten_set_main_loop_timing":_emscripten_set_main_loop_timing,"_sbrk":_sbrk,"___cxa_begin_catch":___cxa_begin_catch,"_sinf":_sinf,"___resumeException":___resumeException,"__ZSt18uncaught_exceptionv":__ZSt18uncaught_exceptionv,"_sysconf":_sysconf, +"_pthread_getspecific":_pthread_getspecific,"_sqrtf":_sqrtf,"_emscripten_memcpy_big":_emscripten_memcpy_big,"_pthread_self":_pthread_self,"_pthread_once":_pthread_once,"_b2WorldQueryAABB":_b2WorldQueryAABB,"_floorf":_floorf,"___syscall54":___syscall54,"___unlock":___unlock,"_emscripten_set_main_loop":_emscripten_set_main_loop,"_pthread_setspecific":_pthread_setspecific,"___cxa_throw":___cxa_throw,"_b2WorldRayCastCallback":_b2WorldRayCastCallback,"___lock":___lock,"___syscall6":___syscall6,"_pthread_cleanup_push":_pthread_cleanup_push, +"_time":_time,"_b2WorldEndContactBody":_b2WorldEndContactBody,"___syscall140":___syscall140,"_b2WorldPostSolve":_b2WorldPostSolve,"___cxa_pure_virtual":___cxa_pure_virtual,"___syscall146":___syscall146,"_b2WorldPreSolve":_b2WorldPreSolve,"STACKTOP":STACKTOP,"STACK_MAX":STACK_MAX,"tempDoublePtr":tempDoublePtr,"ABORT":ABORT,"cttz_i8":cttz_i8}; +var asm=function(global,env,buffer){"use asm";var a=new global.Int8Array(buffer);var b=new global.Int16Array(buffer);var c=new global.Int32Array(buffer);var d=new global.Uint8Array(buffer);var e=new global.Uint16Array(buffer);var f=new global.Uint32Array(buffer);var g=new global.Float32Array(buffer);var h=new global.Float64Array(buffer);var i=env.STACKTOP|0;var j=env.STACK_MAX|0;var k=env.tempDoublePtr|0;var l=env.ABORT|0;var m=env.cttz_i8|0;var n=0;var o=0;var p=0;var q=0;var r=global.NaN,s=global.Infinity; +var t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0;var C=0;var D=0;var E=0;var F=0;var G=0;var H=0;var I=0;var J=0;var K=0;var L=0;var M=global.Math.floor;var N=global.Math.abs;var O=global.Math.sqrt;var P=global.Math.pow;var Q=global.Math.cos;var R=global.Math.sin;var S=global.Math.tan;var T=global.Math.acos;var U=global.Math.asin;var V=global.Math.atan;var W=global.Math.atan2;var X=global.Math.exp;var Y=global.Math.log;var Z=global.Math.ceil;var _=global.Math.imul;var $=global.Math.min;var aa=global.Math.clz32; +var ba=env.abort;var ca=env.assert;var da=env.invoke_diiiiid;var ea=env.invoke_ii;var fa=env.invoke_viiiii;var ga=env.invoke_did;var ha=env.invoke_vi;var ia=env.invoke_diiiid;var ja=env.invoke_vii;var ka=env.invoke_iiii;var la=env.invoke_viii;var ma=env.invoke_v;var na=env.invoke_viid;var oa=env.invoke_iiiii;var pa=env.invoke_viiiiii;var qa=env.invoke_iii;var ra=env.invoke_iiiiii;var sa=env.invoke_viiii;var ta=env._pthread_cleanup_pop;var ua=env._cosf;var va=env._pthread_key_create;var wa=env._abort; +var xa=env.___setErrNo;var ya=env.___cxa_allocate_exception;var za=env.___cxa_find_matching_catch;var Aa=env._b2WorldBeginContactBody;var Ba=env._emscripten_set_main_loop_timing;var Ca=env._sbrk;var Da=env.___cxa_begin_catch;var Ea=env._sinf;var Fa=env.___resumeException;var Ga=env.__ZSt18uncaught_exceptionv;var Ha=env._sysconf;var Ia=env._pthread_getspecific;var Ja=env._sqrtf;var Ka=env._emscripten_memcpy_big;var La=env._pthread_self;var Ma=env._pthread_once;var Na=env._b2WorldQueryAABB;var Oa=env._floorf; +var Pa=env.___syscall54;var Qa=env.___unlock;var Ra=env._emscripten_set_main_loop;var Sa=env._pthread_setspecific;var Ta=env.___cxa_throw;var Ua=env._b2WorldRayCastCallback;var Va=env.___lock;var Wa=env.___syscall6;var Xa=env._pthread_cleanup_push;var Ya=env._time;var Za=env._b2WorldEndContactBody;var _a=env.___syscall140;var $a=env._b2WorldPostSolve;var ab=env.___cxa_pure_virtual;var bb=env.___syscall146;var cb=env._b2WorldPreSolve;var db=0;function tm(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,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,_=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0;e=i;i=i+48|0;f=e+32|0;h=e;j=b+44|0;k=c[j>>2]|0;if(!k){i=e;return}l=c[b+280>>2]|0;if(l){m=b+296|0;n=m;o=+g[d>>2]/+g[b+396>>2]*4294967296;p=zp(~~o>>>0|0,(+N(o)>=1?o>0?~~+$(+M(o/4294967296),4294967295)>>>0:~~+Z((o-+(~~o>>>0))/4294967296)>>>0:0)|0,c[n>>2]|0,c[n+4>>2]|0)|0;n=C;q=m;c[q>>2]=p;c[q+4>>2]=n;q=c[b+ +288>>2]|0;p=b+304|0;if(a[p>>0]|0){c[f>>2]=l;Vm(q,q+(k<<2)|0,f);a[p>>0]=0}a:do if((k|0)>0){p=b+88|0;m=k;do{r=m;m=m+-1|0;s=c[q+(m<<2)>>2]|0;t=c[l+(s<<2)>>2]|0;if((n|0)<(t|0)|(t|0)<1)break a;Zl(b,s,c[(c[p>>2]|0)+(s<<2)>>2]|2)}while((r|0)>1)}while(0)}n=b+8|0;if(c[n>>2]&2)Wl(b);l=b+12|0;if(a[l>>0]|0){c[n>>2]=0;q=c[j>>2]|0;if((q|0)>0){k=c[b+88>>2]|0;p=0;m=0;do{p=c[k+(m<<2)>>2]|p;c[n>>2]=p;m=m+1|0}while((m|0)!=(q|0))}a[l>>0]=0}l=b+20|0;if(a[l>>0]|0){q=b+16|0;c[q>>2]=0;m=c[b+312>>2]|0;if(m){p=0;k=m;do{p= +c[k+12>>2]|p;c[q>>2]=p;k=c[k+24>>2]|0}while((k|0)!=0)}a[l>>0]=0}if(a[b>>0]|0){i=e;return}l=b+24|0;c[l>>2]=0;k=d+20|0;p=c[k>>2]|0;if((p|0)<=0){i=e;return}q=b+4|0;m=h+4|0;r=b+116|0;s=b+236|0;t=b+232|0;u=b+220|0;v=b+216|0;w=b+16|0;x=b+21|0;y=b+324|0;z=b+400|0;A=b+104|0;B=b+32|0;D=b+88|0;E=b+96|0;F=b+372|0;G=b+144|0;H=b+132|0;I=b+368|0;J=b+364|0;K=b+36|0;L=b+28|0;P=b+112|0;Q=f+4|0;R=p;do{c[q>>2]=(c[q>>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];c[h+16>>2]=c[d+ +16>>2];c[h+20>>2]=c[d+20>>2];c[h+24>>2]=c[d+24>>2];o=+(R|0);S=+g[h>>2]/o;g[h>>2]=S;T=+g[m>>2]*o;g[m>>2]=T;dm(b,0);pm(b);xp(c[r>>2]|0,0,c[j>>2]<<2|0)|0;p=c[s>>2]|0;if((p|0)>0){U=c[t>>2]|0;V=c[r>>2]|0;W=0;do{X=V+(c[U+(W*28|0)>>2]<<2)|0;g[X>>2]=+g[U+(W*28|0)+12>>2]+ +g[X>>2];W=W+1|0}while((W|0)!=(p|0))}p=c[u>>2]|0;if((p|0)>0){W=c[v>>2]|0;U=c[r>>2]|0;V=0;do{X=c[W+(V*24|0)+4>>2]|0;o=+g[W+(V*24|0)+8>>2];Y=U+(c[W+(V*24|0)>>2]<<2)|0;g[Y>>2]=o+ +g[Y>>2];Y=U+(X<<2)|0;g[Y>>2]=o+ +g[Y>>2];V=V+1|0}while((V|0)!= +(p|0))}if(c[w>>2]&16)im(b);p=c[n>>2]|0;if(!(p&4096))_=p;else{p=c[D>>2]|0;c[f>>2]=2300;c[Q>>2]=p;em(b,0,c[j>>2]|0,f);if((c[j>>2]|0)>0){p=c[D>>2]|0;V=0;do{U=p+(V<<2)|0;c[U>>2]=c[U>>2]&-4097;V=V+1|0}while((V|0)<(c[j>>2]|0))}V=c[n>>2]&-4097;c[n>>2]=V;_=V}if(a[x>>0]|0){o=+g[K>>2]*1.3333333730697632;aa=S*(o*(+g[L>>2]*o));V=c[j>>2]|0;if((V|0)>0){p=c[A>>2]|0;U=c[P>>2]|0;W=0;do{o=aa*+g[U+(W<<3)+4>>2];Y=p+(W<<3)|0;g[Y>>2]=aa*+g[U+(W<<3)>>2]+ +g[Y>>2];Y=p+(W<<3)+4|0;g[Y>>2]=o+ +g[Y>>2];W=W+1|0}while((W|0)!= +(V|0))}a[x>>0]=0}if(!(_&32))ba=_;else{um(b);ba=c[n>>2]|0}if((ba&8192|0)!=0?(aa=+g[J>>2]*(+g[B>>2]*T),V=c[u>>2]|0,(V|0)>0):0){W=c[v>>2]|0;p=0;do{do if(c[W+(p*24|0)+20>>2]&8192){U=c[W+(p*24|0)>>2]|0;Y=c[W+(p*24|0)+4>>2]|0;X=c[G>>2]|0;if((c[X+(U<<2)>>2]|0)==(c[X+(Y<<2)>>2]|0))break;o=aa*+g[W+(p*24|0)+8>>2];ca=+g[W+(p*24|0)+12>>2]*o;da=o*+g[W+(p*24|0)+16>>2];X=c[A>>2]|0;ea=X+(U<<3)|0;g[ea>>2]=+g[ea>>2]-ca;ea=X+(U<<3)+4|0;g[ea>>2]=+g[ea>>2]-da;ea=X+(Y<<3)|0;g[ea>>2]=ca+ +g[ea>>2];ea=X+(Y<<3)+4|0;g[ea>> +2]=da+ +g[ea>>2]}while(0);p=p+1|0}while((p|0)!=(V|0))}if((ba&64|0)!=0?(aa=+g[I>>2]*(+g[B>>2]*T),V=c[u>>2]|0,(V|0)>0):0){p=c[v>>2]|0;W=0;do{do if(c[p+(W*24|0)+20>>2]&64){da=+g[p+(W*24|0)+8>>2];if(!(da>.25))break;ea=c[p+(W*24|0)>>2]|0;Y=c[p+(W*24|0)+4>>2]|0;ca=aa*(da+-.25);da=ca*+g[p+(W*24|0)+12>>2];o=ca*+g[p+(W*24|0)+16>>2];X=c[A>>2]|0;U=X+(ea<<3)|0;g[U>>2]=+g[U>>2]-da;U=X+(ea<<3)+4|0;g[U>>2]=+g[U>>2]-o;U=X+(Y<<3)|0;g[U>>2]=da+ +g[U>>2];U=X+(Y<<3)+4|0;g[U>>2]=o+ +g[U>>2]}while(0);W=W+1|0}while((W| +0)!=(V|0))}if(ba&128)vm(b,h);if((c[w>>2]&1|0)!=0?(aa=T*+g[F>>2],V=c[u>>2]|0,(V|0)>0):0){W=c[v>>2]|0;p=c[G>>2]|0;U=0;do{Y=c[W+(U*24|0)>>2]|0;X=c[W+(U*24|0)+4>>2]|0;if((c[p+(Y<<2)>>2]|0)!=(c[p+(X<<2)>>2]|0)){ea=c[H>>2]|0;o=+g[W+(U*24|0)+8>>2]*(aa*(+g[ea+(Y<<2)>>2]+ +g[ea+(X<<2)>>2]));da=+g[W+(U*24|0)+12>>2]*o;ca=+g[W+(U*24|0)+16>>2]*o;ea=c[A>>2]|0;fa=ea+(Y<<3)|0;g[fa>>2]=+g[fa>>2]-da;fa=ea+(Y<<3)+4|0;g[fa>>2]=+g[fa>>2]-ca;fa=ea+(X<<3)|0;g[fa>>2]=da+ +g[fa>>2];fa=ea+(X<<3)+4|0;g[fa>>2]=ca+ +g[fa>>2]}U= +U+1|0}while((U|0)!=(V|0))}if(c[n>>2]&256)wm(b);aa=S*+g[y>>2];V=c[z>>2]|0;ca=aa*+g[V+102980>>2];da=aa*+g[V+102984>>2];V=c[j>>2]|0;if((V|0)>0){U=c[A>>2]|0;W=0;do{p=U+(W<<3)|0;g[p>>2]=ca+ +g[p>>2];p=U+(W<<3)+4|0;g[p>>2]=da+ +g[p>>2];W=W+1|0}while((W|0)!=(V|0))}if(c[n>>2]&2048)xm(b,h);ym(b,h);zm(b,h);V=c[n>>2]|0;if(!(V&2048))ga=V;else{Am(b);ga=c[n>>2]|0}if(!(ga&16))ha=ga;else{Bm(b,h);ha=c[n>>2]|0}if(ha&8)Cm(b,h);da=+g[B>>2]*T;ca=da*da;V=c[j>>2]|0;if((V|0)>0){W=c[A>>2]|0;U=0;do{p=W+(U<<3)|0;da=+g[p>>2]; +fa=W+(U<<3)+4|0;aa=+g[fa>>2];o=da*da+aa*aa;if(o>ca){ia=+O(+(ca/o));g[p>>2]=da*ia;g[fa>>2]=aa*ia}U=U+1|0}while((U|0)!=(V|0))}if(c[w>>2]&2)Dm(b);if(c[n>>2]&1024)sm(b,h);rm(b,h);if(c[w>>2]&2)Em(b,h);V=c[j>>2]|0;do if(!(c[n>>2]&4))ja=96;else{if((V|0)<=0)break;U=c[D>>2]|0;W=0;do{if(c[U+(W<<2)>>2]&4){fa=c[A>>2]|0;g[fa+(W<<3)>>2]=0;g[fa+(W<<3)+4>>2]=0}W=W+1|0}while((W|0)!=(V|0));ja=96}while(0);do if((ja|0)==96){ja=0;if((V|0)<=0)break;W=c[E>>2]|0;U=c[A>>2]|0;fa=0;do{ca=S*+g[U+(fa<<3)+4>>2];p=W+(fa<<3)|0; +g[p>>2]=S*+g[U+(fa<<3)>>2]+ +g[p>>2];p=W+(fa<<3)+4|0;g[p>>2]=ca+ +g[p>>2];fa=fa+1|0}while((fa|0)<(V|0))}while(0);V=(c[l>>2]|0)+1|0;c[l>>2]=V;R=c[k>>2]|0}while((V|0)<(R|0));i=e;return}function um(a){a=a|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,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;d=+g[a+352>>2];e=c[a+236>>2]|0;if((e|0)>0){f=a+96|0;h=a+104|0;i=a+36|0;j=a+28|0;k=c[a+232>>2]|0;l=c[a+88>>2]|0;m=0;do{n=c[k+(m*28|0)>>2]|0;if((c[l+(n<<2)>>2]&32|0)!=0?(o=c[k+(m*28|0)+ +4>>2]|0,p=c[f>>2]|0,q=+g[p+(n<<3)>>2],r=+g[p+(n<<3)+4>>2],p=o+88|0,s=+g[p>>2],t=o+60|0,u=o+64|0,v=o+80|0,w=o+84|0,x=c[h>>2]|0,y=x+(n<<3)|0,z=+g[y>>2],A=x+(n<<3)+4|0,B=+g[A>>2],C=+g[k+(m*28|0)+12>>2]*(d*+g[k+(m*28|0)+24>>2]),D=C*(+g[v>>2]-s*(r-+g[u>>2])-z),E=C*(s*(q-+g[t>>2])+ +g[w>>2]-B),s=+g[i>>2]*1.3333333730697632,C=s*(+g[j>>2]*s),g[y>>2]=z+D*C,g[A>>2]=B+E*C,C=-D,D=-E,(c[o>>2]|0)==2):0){A=o+4|0;y=b[A>>1]|0;if((y&2)==0?(n=y&65535,(n&2|0)==0):0){x=(n|2)&65535;b[A>>1]=x;g[o+160>>2]=0;F=x}else F=y; +if(F&2){E=+g[o+136>>2];g[v>>2]=E*C+ +g[v>>2];g[w>>2]=E*D+ +g[w>>2];g[p>>2]=+g[p>>2]+ +g[o+144>>2]*((q-+g[t>>2])*D-(r-+g[u>>2])*C)}}m=m+1|0}while((m|0)<(e|0))}e=c[a+220>>2]|0;if((e|0)<=0)return;m=c[a+216>>2]|0;F=a+104|0;a=0;do{if(c[m+(a*24|0)+20>>2]&32){j=c[m+(a*24|0)>>2]|0;i=c[m+(a*24|0)+4>>2]|0;k=c[F>>2]|0;h=k+(i<<3)|0;f=k+(j<<3)|0;C=+g[f>>2];l=k+(i<<3)+4|0;i=k+(j<<3)+4|0;r=+g[i>>2];D=d*+g[m+(a*24|0)+8>>2];q=D*(+g[h>>2]-C);E=D*(+g[l>>2]-r);g[f>>2]=C+q;g[i>>2]=r+E;g[h>>2]=+g[h>>2]-q;g[l>>2]=+g[l>> +2]-E}a=a+1|0}while((a|0)<(e|0));return}function vm(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,s=0,t=0,u=0;d=a+44|0;if((c[d>>2]|0)>0){e=a+128|0;f=0;do{h=2440;i=c[h+4>>2]|0;j=(c[e>>2]|0)+(f<<3)|0;c[j>>2]=c[h>>2];c[j+4>>2]=i;f=f+1|0}while((f|0)<(c[d>>2]|0))}d=a+216|0;f=c[a+220>>2]|0;e=(f|0)>0;if(e){i=a+128|0;j=c[d>>2]|0;h=0;do{if(c[j+(h*24|0)+20>>2]&128){k=c[j+(h*24|0)>>2]|0;l=c[j+(h*24|0)+4>>2]|0;m=+g[j+(h*24|0)+8>>2];n=m*(1-m);m=+g[j+(h*24|0)+12>>2]*n;o=+g[j+(h*24| +0)+16>>2]*n;p=c[i>>2]|0;q=p+(k<<3)|0;g[q>>2]=+g[q>>2]-m;q=p+(k<<3)+4|0;g[q>>2]=+g[q>>2]-o;q=p+(l<<3)|0;g[q>>2]=m+ +g[q>>2];q=p+(l<<3)+4|0;g[q>>2]=o+ +g[q>>2]}h=h+1|0}while((h|0)<(f|0))}o=+g[a+32>>2]*+g[b+4>>2];m=+g[a+356>>2]*o;n=o*+g[a+360>>2];r=o*.5;if(!e)return;e=a+116|0;b=a+128|0;h=a+104|0;a=c[d>>2]|0;d=0;do{if(c[a+(d*24|0)+20>>2]&128){i=c[a+(d*24|0)>>2]|0;j=c[a+(d*24|0)+4>>2]|0;o=+g[a+(d*24|0)+12>>2];s=+g[a+(d*24|0)+16>>2];q=c[e>>2]|0;l=c[b>>2]|0;t=m*(+g[q+(i<<2)>>2]+ +g[q+(j<<2)>>2]+-2)+n*(o* +(+g[l+(j<<3)>>2]-+g[l+(i<<3)>>2])+s*(+g[l+(j<<3)+4>>2]-+g[l+(i<<3)+4>>2]));u=+g[a+(d*24|0)+8>>2]*(t>2]|0;q=l+(i<<3)|0;g[q>>2]=+g[q>>2]-t;q=l+(i<<3)+4|0;g[q>>2]=+g[q>>2]-o;q=l+(j<<3)|0;g[q>>2]=+g[q>>2]+t;q=l+(j<<3)+4|0;g[q>>2]=+g[q>>2]+o}d=d+1|0}while((d|0)<(f|0));return}function wm(b){b=b|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;e=~~(+g[b+388>>2]*128);if(!e)return;f=c[b+220>>2]|0;if((f|0)<=0)return;h=b+136|0;i=d[6076]| +0;j=c[b+216>>2]|0;k=c[b+88>>2]|0;b=0;do{l=c[j+(b*24|0)>>2]|0;m=c[j+(b*24|0)+4>>2]|0;if(c[k+(l<<2)>>2]&256&c[k+(m<<2)>>2]){n=c[h>>2]|0;o=n+(m<<2)|0;p=n+(l<<2)|0;q=d[p>>0]|0;r=(_((d[o>>0]|0)-q|0,e)|0)>>i;s=n+(m<<2)+1|0;t=n+(l<<2)+1|0;u=d[t>>0]|0;v=(_((d[s>>0]|0)-u|0,e)|0)>>i;w=n+(m<<2)+2|0;x=n+(l<<2)+2|0;y=d[x>>0]|0;z=(_((d[w>>0]|0)-y|0,e)|0)>>i;A=n+(m<<2)+3|0;m=n+(l<<2)+3|0;l=d[m>>0]|0;n=(_((d[A>>0]|0)-l|0,e)|0)>>i;a[p>>0]=r+q;a[t>>0]=v+u;a[x>>0]=z+y;a[m>>0]=n+l;a[o>>0]=(d[o>>0]|0)-r;a[s>>0]=(d[s>> +0]|0)-v;a[w>>0]=(d[w>>0]|0)-z;a[A>>0]=(d[A>>0]|0)-n}b=b+1|0}while((b|0)<(f|0));return}function xm(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,s=0,t=0,u=0,v=0,w=0,x=0,y=0;d=a+120|0;e=c[d>>2]|0;if(!e){f=a+48|0;h=c[f>>2]|0;if(!h){Ul(a,256);i=c[f>>2]|0}else i=h;h=Sn(c[a+400>>2]|0,i<<2)|0;xp(h|0,0,c[f>>2]<<2|0)|0;j=h}else j=e;c[d>>2]=j;k=+g[a+32>>2]*+g[b+4>>2];l=+g[a+320>>2]*(k*k);k=+g[a+376>>2]*l;m=l*.25;l=+g[a+380>>2];b=a+384|0;if((c[b>>2]|0)<=0)return;j=a+124|0;e=a+ +44|0;h=a+220|0;f=a+116|0;i=a+88|0;n=a+216|0;a=c[e>>2]|0;o=0;do{xp(c[j>>2]|0,0,a<<2|0)|0;p=c[h>>2]|0;if((p|0)>0){q=c[n>>2]|0;r=0;do{if(c[q+(r*24|0)+20>>2]&2048){s=c[q+(r*24|0)>>2]|0;t=c[q+(r*24|0)+4>>2]|0;u=+g[q+(r*24|0)+8>>2];v=c[d>>2]|0;w=c[j>>2]|0;x=w+(s<<2)|0;g[x>>2]=u*+g[v+(t<<2)>>2]+ +g[x>>2];x=w+(t<<2)|0;g[x>>2]=u*+g[v+(s<<2)>>2]+ +g[x>>2]}r=r+1|0}while((r|0)<(p|0))}a=c[e>>2]|0;if((a|0)>0){p=c[f>>2]|0;r=c[i>>2]|0;q=0;do{u=+g[p+(q<<2)>>2];if(!(c[r+(q<<2)>>2]&2048))g[(c[d>>2]|0)+(q<<2)>>2]=0; +else{y=(k*(u+-1)+ +g[(c[j>>2]|0)+(q<<2)>>2])/(l+u);u=y>2]|0)+(q<<2)>>2]=u<0?0:u}q=q+1|0}while((q|0)<(a|0))}o=o+1|0}while((o|0)<(c[b>>2]|0));return}function ym(a,d){a=a|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;e=a+320|0;f=a+32|0;h=+g[f>>2]*+g[d+4>>2];i=+g[e>>2]*(h*h);h=+g[a+336>>2]*i;j=i*.25;k=c[a+44>>2]|0;l=(k|0)>0;if(l){m=c[a+116>>2]|0;n=c[a+124>>2]|0;o=0;do{i=+g[m+(o<<2)>>2]+-1;p=h*(i<0?0:i);g[n+(o<<2)>>2]=p>2]|0;if(!((o&192|0)==0|l^1)){n=c[a+88>>2]|0;m=a+124|0;q=0;do{if(c[n+(q<<2)>>2]&192)g[(c[m>>2]|0)+(q<<2)>>2]=0;q=q+1|0}while((q|0)<(k|0))}if(!((o&2048|0)==0|l^1)){l=c[a+88>>2]|0;o=a+120|0;q=a+124|0;m=0;do{if(c[l+(m<<2)>>2]&2048){n=(c[q>>2]|0)+(m<<2)|0;g[n>>2]=+g[(c[o>>2]|0)+(m<<2)>>2]+ +g[n>>2]}m=m+1|0}while((m|0)<(k|0))}j=+g[d>>2]/(+g[e>>2]*+g[f>>2]);f=c[a+236>>2]|0;if((f|0)>0){e=c[a+232>>2]|0;d=c[a+96>>2]|0;k=c[a+124>>2]|0;m=c[a+104>>2]|0;p=+g[a+36>>2]*1.3333333730697632;i=p*(+g[a+ +28>>2]*p);o=0;do{q=c[e+(o*28|0)>>2]|0;l=c[e+(o*28|0)+4>>2]|0;p=+g[e+(o*28|0)+12>>2];r=+g[d+(q<<3)>>2];s=+g[d+(q<<3)+4>>2];t=j*p*+g[e+(o*28|0)+24>>2]*(h*p+ +g[k+(q<<2)>>2]);p=+g[e+(o*28|0)+16>>2]*t;u=+g[e+(o*28|0)+20>>2]*t;n=m+(q<<3)|0;g[n>>2]=+g[n>>2]-p*i;n=m+(q<<3)+4|0;g[n>>2]=+g[n>>2]-u*i;if((c[l>>2]|0)==2){n=l+4|0;q=b[n>>1]|0;if((q&2)==0?(v=q&65535,(v&2|0)==0):0){w=(v|2)&65535;b[n>>1]=w;g[l+160>>2]=0;x=w}else x=q;if(x&2){t=+g[l+136>>2];q=l+80|0;g[q>>2]=p*t+ +g[q>>2];q=l+84|0;g[q>>2]=u*t+ +g[q>> +2];q=l+88|0;g[q>>2]=+g[q>>2]+ +g[l+144>>2]*(u*(r-+g[l+60>>2])-p*(s-+g[l+64>>2]))}}o=o+1|0}while((o|0)<(f|0))}f=c[a+220>>2]|0;if((f|0)<=0)return;o=c[a+216>>2]|0;x=c[a+124>>2]|0;m=c[a+104>>2]|0;a=0;do{e=c[o+(a*24|0)>>2]|0;k=c[o+(a*24|0)+4>>2]|0;i=j*+g[o+(a*24|0)+8>>2]*(+g[x+(e<<2)>>2]+ +g[x+(k<<2)>>2]);h=+g[o+(a*24|0)+12>>2]*i;s=+g[o+(a*24|0)+16>>2]*i;d=m+(e<<3)|0;g[d>>2]=+g[d>>2]-h;d=m+(e<<3)+4|0;g[d>>2]=+g[d>>2]-s;d=m+(k<<3)|0;g[d>>2]=h+ +g[d>>2];d=m+(k<<3)+4|0;g[d>>2]=s+ +g[d>>2];a=a+1|0}while((a| +0)<(f|0));return}function zm(a,d){a=a|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;e=+g[a+340>>2];f=1/(+g[a+32>>2]*+g[d+4>>2]);d=c[a+236>>2]|0;if((d|0)>0){h=a+36|0;i=a+28|0;j=c[a+232>>2]|0;k=c[a+96>>2]|0;l=c[a+104>>2]|0;m=0;do{n=c[j+(m*28|0)>>2]|0;o=c[j+(m*28|0)+4>>2]|0;p=+g[j+(m*28|0)+16>>2];q=+g[j+(m*28|0)+20>>2];r=+g[k+(n<<3)>>2];s=+g[k+(n<<3)+4>>2];t=o+88|0;u=+g[t>>2];v=o+60|0;w=o+64|0;x=o+80|0;y=o+84|0;z=l+(n<< +3)|0;A=+g[z>>2];B=l+(n<<3)+4|0;C=+g[B>>2];D=p*(+g[x>>2]-u*(s-+g[w>>2])-A)+q*(u*(r-+g[v>>2])+ +g[y>>2]-C);if(D<0?(u=e*+g[j+(m*28|0)+12>>2],E=f*D,F=E>-.5?-E:.5,E=D*(+g[j+(m*28|0)+24>>2]*(u>F?u:F)),F=p*E,p=q*E,E=+g[h>>2]*1.3333333730697632,q=E*(+g[i>>2]*E),g[z>>2]=A+q*F,g[B>>2]=C+q*p,q=-F,F=-p,(c[o>>2]|0)==2):0){B=o+4|0;z=b[B>>1]|0;if((z&2)==0?(n=z&65535,(n&2|0)==0):0){G=(n|2)&65535;b[B>>1]=G;g[o+160>>2]=0;H=G}else H=z;if(H&2){p=+g[o+136>>2];g[x>>2]=p*q+ +g[x>>2];g[y>>2]=p*F+ +g[y>>2];g[t>>2]=+g[t>> +2]+ +g[o+144>>2]*((r-+g[v>>2])*F-(s-+g[w>>2])*q)}}m=m+1|0}while((m|0)<(d|0))}d=c[a+220>>2]|0;if((d|0)<=0)return;m=c[a+216>>2]|0;H=c[a+104>>2]|0;a=0;do{i=c[m+(a*24|0)>>2]|0;h=c[m+(a*24|0)+4>>2]|0;q=+g[m+(a*24|0)+12>>2];s=+g[m+(a*24|0)+16>>2];j=H+(h<<3)|0;l=H+(i<<3)|0;F=+g[l>>2];k=H+(h<<3)+4|0;h=H+(i<<3)+4|0;r=+g[h>>2];p=q*(+g[j>>2]-F)+s*(+g[k>>2]-r);if(p<0){C=e*+g[m+(a*24|0)+8>>2];A=f*p;E=A>-.5?-A:.5;A=p*(C>E?C:E);E=q*A;q=s*A;g[l>>2]=F+E;g[h>>2]=r+q;g[j>>2]=+g[j>>2]-E;g[k>>2]=+g[k>>2]-q}a=a+1|0}while((a| +0)<(d|0));return}function Am(a){a=a|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,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0;d=c[a+236>>2]|0;if((d|0)<=0)return;e=a+96|0;f=a+104|0;h=a+36|0;i=a+28|0;j=c[a+232>>2]|0;k=c[a+88>>2]|0;a=0;do{l=c[j+(a*28|0)>>2]|0;if(((c[k+(l<<2)>>2]&2048|0)!=0?(m=c[j+(a*28|0)+4>>2]|0,n=+g[j+(a*28|0)+16>>2],o=+g[j+(a*28|0)+20>>2],p=c[e>>2]|0,q=+g[p+(l<<3)>>2],r=+g[p+(l<<3)+4>>2],p=m+88|0,s=+g[p>>2],t=m+60|0,u=m+64|0,v=m+80|0,w=m+84|0,x=c[f>>2]|0,y=x+(l<< +3)|0,z=+g[y>>2],A=x+(l<<3)+4|0,B=+g[A>>2],C=n*(+g[v>>2]-s*(r-+g[u>>2])-z)+o*(s*(q-+g[t>>2])+ +g[w>>2]-B),C<0):0)?(s=C*(+g[j+(a*28|0)+24>>2]*.5),C=n*s,n=o*s,s=+g[h>>2]*1.3333333730697632,o=s*(+g[i>>2]*s),g[y>>2]=z+C*o,g[A>>2]=B+n*o,o=-C,C=-n,(c[m>>2]|0)==2):0){A=m+4|0;y=b[A>>1]|0;if((y&2)==0?(l=y&65535,(l&2|0)==0):0){x=(l|2)&65535;b[A>>1]=x;g[m+160>>2]=0;D=x}else D=y;if(D&2){n=+g[m+136>>2];g[v>>2]=n*o+ +g[v>>2];g[w>>2]=n*C+ +g[w>>2];g[p>>2]=+g[p>>2]+ +g[m+144>>2]*((q-+g[t>>2])*C-(r-+g[u>>2])*o)}}a= +a+1|0}while((a|0)<(d|0));return}function Bm(a,b){a=a|0;b=b|0;var d=0,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,G=0,H=0,I=0,J=0,K=0,L=0,M=0;d=+g[b+4>>2]*+g[a+344>>2];e=a+268|0;f=c[e>>2]|0;if((f|0)<=0)return;h=a+264|0;i=a+96|0;j=a+104|0;a=f;f=0;while(1){l=c[h>>2]|0;if(!(c[l+(f*60|0)+12>>2]&16))m=a;else{n=c[l+(f*60|0)>>2]|0;o=c[l+(f*60|0)+4>>2]|0;p=c[l+(f*60|0)+8>>2]|0;q=c[i>>2]|0;r=c[j>>2]|0;s=+g[b>>2];t=r+(n<<3)|0;u=+g[t>>2];v=r+(n<<3)+ +4|0;w=+g[v>>2];x=+g[q+(n<<3)>>2]+s*u;y=+g[q+(n<<3)+4>>2]+s*w;n=r+(o<<3)|0;z=r+(o<<3)+4|0;A=+g[q+(o<<3)>>2]+s*+g[n>>2];B=+g[q+(o<<3)+4>>2]+s*+g[z>>2];o=r+(p<<3)|0;C=r+(p<<3)+4|0;D=+g[q+(p<<3)>>2]+s*+g[o>>2];E=+g[q+(p<<3)+4>>2]+s*+g[C>>2];s=(x+A+D)*.3333333432674408;F=(y+B+E)*.3333333432674408;G=x-s;x=y-F;y=A-s;A=B-F;B=D-s;s=E-F;F=+g[l+(f*60|0)+20>>2];E=+g[l+(f*60|0)+24>>2];p=l+(f*60|0)+28|0;D=+g[p>>2];q=l+(f*60|0)+32|0;H=+g[q>>2];r=l+(f*60|0)+36|0;I=+g[r>>2];J=l+(f*60|0)+40|0;K=+g[J>>2];L=F*x-E*G+ +(D*A-H*y)+(I*s-B*K);M=F*G+E*x+(D*y+H*A)+(B*I+s*K);K=L*L+M*M;I=(c[k>>2]=1597463007-((g[k>>2]=K,c[k>>2]|0)>>1),+g[k>>2]);H=I*(1.5-I*(K*.5*I));I=L*H;L=M*H;H=d*+g[l+(f*60|0)+16>>2];g[t>>2]=u+H*(F*L-E*I-G);g[v>>2]=w+H*(F*I+E*L-x);x=+g[p>>2];E=+g[q>>2];g[n>>2]=+g[n>>2]+H*(x*L-E*I-y);g[z>>2]=+g[z>>2]+H*(x*I+E*L-A);A=+g[r>>2];E=+g[J>>2];g[o>>2]=+g[o>>2]+H*(A*L-E*I-B);g[C>>2]=+g[C>>2]+H*(A*I+E*L-s);m=c[e>>2]|0}f=f+1|0;if((f|0)>=(m|0))break;else a=m}return}function Cm(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,s=0,t=0,u=0,v=0,w=0;d=+g[b+4>>2]*+g[a+348>>2];e=c[a+252>>2]|0;if((e|0)<=0)return;f=a+96|0;h=a+104|0;i=c[a+248>>2]|0;a=0;do{if(c[i+(a*20|0)+8>>2]&8){j=c[i+(a*20|0)>>2]|0;k=c[i+(a*20|0)+4>>2]|0;l=c[f>>2]|0;m=c[h>>2]|0;n=+g[b>>2];o=m+(j<<3)|0;p=+g[o>>2];q=m+(j<<3)+4|0;r=+g[q>>2];s=m+(k<<3)|0;t=m+(k<<3)+4|0;u=+g[l+(k<<3)>>2]+n*+g[s>>2]-(+g[l+(j<<3)>>2]+n*p);v=+g[l+(k<<3)+4>>2]+n*+g[t>>2]-(+g[l+(j<<3)+4>>2]+n*r);n=+O(+(u*u+v*v));w=(+g[i+(a*20|0)+16>>2]-n)*(d*+g[i+ +(a*20|0)+12>>2])/n;n=u*w;u=v*w;g[o>>2]=p-n;g[q>>2]=r-u;g[s>>2]=n+ +g[s>>2];g[t>>2]=u+ +g[t>>2]}a=a+1|0}while((a|0)<(e|0));return}function Dm(a){a=a|0;var d=0,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,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;d=+g[a+340>>2];e=a+236|0;if((c[e>>2]|0)>0){f=a+232|0;h=a+144|0;i=a+96|0;j=0;do{l=c[f>>2]|0;m=c[l+(j*28|0)>>2]|0;n=c[(c[h>>2]|0)+(m<<2)>>2]|0;if((((n|0)!=0?(c[n+12>> +2]&2|0)!=0:0)?(o=c[l+(j*28|0)+4>>2]|0,p=+g[l+(j*28|0)+16>>2],q=+g[l+(j*28|0)+20>>2],r=+g[l+(j*28|0)+12>>2],l=c[i>>2]|0,s=+g[l+(m<<3)>>2],t=+g[l+(m<<3)+4>>2],m=o+88|0,u=+g[m>>2],l=o+60|0,v=o+64|0,w=o+80|0,x=+g[w>>2]-u*(t-+g[v>>2]),y=o+84|0,z=u*(s-+g[l>>2])+ +g[y>>2],Ml(n),A=n+56|0,u=+g[A>>2],B=n+40|0,C=n+44|0,D=n+48|0,E=n+52|0,F=p*(x-(+g[D>>2]-u*(t-+g[C>>2])))+q*(z-(u*(s-+g[B>>2])+ +g[E>>2])),F<0):0)?(Ml(n),u=+g[n+32>>2],Ml(n),z=+g[n+36>>2],Ml(n),x=u>0?1/u:0,u=z>0?1/z:0,z=q*(s-+g[B>>2])-p*(t-+g[C>> +2]),G=+g[o+132>>2],H=+g[o+44>>2],I=+g[o+48>>2],J=G*(H*H+I*I),I=+g[o+140>>2]+J-J,J=q*(s-+g[l>>2])-p*(t-+g[v>>2]),H=x+z*(u*z)+(G>0?1/G:0)+J*((I>0?1/I:0)*J),J=d*(r<1?r:1)*(H>0?F/H:0),H=x*J,g[D>>2]=+g[D>>2]+p*H,g[E>>2]=+g[E>>2]+q*H,g[A>>2]=+g[A>>2]+u*(z*J),z=-J,J=p*z,p=q*z,(c[o>>2]|0)==2):0){A=o+4|0;E=b[A>>1]|0;if((E&2)==0?(D=E&65535,(D&2|0)==0):0){C=(D|2)&65535;b[A>>1]=C;g[o+160>>2]=0;K=C}else K=E;if(K&2){z=+g[o+136>>2];g[w>>2]=J*z+ +g[w>>2];g[y>>2]=p*z+ +g[y>>2];g[m>>2]=+g[m>>2]+ +g[o+144>>2]*(p*(s- ++g[l>>2])-J*(t-+g[v>>2]))}}j=j+1|0}while((j|0)<(c[e>>2]|0))}e=a+220|0;if((c[e>>2]|0)<=0)return;j=a+216|0;K=a+144|0;i=a+96|0;h=a+104|0;f=a+88|0;v=a+32|0;l=a+320|0;a=0;do{o=c[j>>2]|0;m=c[o+(a*24|0)>>2]|0;y=c[o+(a*24|0)+4>>2]|0;t=+g[o+(a*24|0)+12>>2];J=+g[o+(a*24|0)+16>>2];s=+g[o+(a*24|0)+8>>2];o=c[K>>2]|0;w=c[o+(m<<2)>>2]|0;E=c[o+(y<<2)>>2]|0;o=(w|0)==0;if(o)L=0;else L=(c[w+12>>2]&2|0)!=0;C=(E|0)==0;if(C)M=0;else M=(c[E+12>>2]&2|0)!=0;do if((w|0)!=(E|0)&(L|M)){A=c[i>>2]|0;p=(+g[A+(m<<3)>>2]+ +g[A+(y<< +3)>>2])*.5;z=(+g[A+(m<<3)+4>>2]+ +g[A+(y<<3)+4>>2])*.5;if(!C?(c[E+12>>2]&2|0)!=0:0){Ml(E);q=+g[E+56>>2];A=(g[k>>2]=+g[E+48>>2]-q*(z-+g[E+44>>2]),c[k>>2]|0);N=A;O=(g[k>>2]=q*(p-+g[E+40>>2])+ +g[E+52>>2],c[k>>2]|0)}else{A=c[h>>2]|0;N=c[A+(y<<3)>>2]|0;O=c[A+(y<<3)+4>>2]|0}if(!o?(c[w+12>>2]&2|0)!=0:0){Ml(w);q=+g[w+56>>2];A=(g[k>>2]=+g[w+48>>2]-q*(z-+g[w+44>>2]),c[k>>2]|0);P=A;Q=(g[k>>2]=q*(p-+g[w+40>>2])+ +g[w+52>>2],c[k>>2]|0)}else{A=c[h>>2]|0;P=c[A+(m<<3)>>2]|0;Q=c[A+(m<<3)+4>>2]|0}q=(c[k>>2]=N,+g[k>> +2]);u=q-(c[k>>2]=P,+g[k>>2]);q=(c[k>>2]=O,+g[k>>2]);H=J*(q-(c[k>>2]=Q,+g[k>>2]))+t*u;if(H<0){if(L){Ml(w);u=+g[w+32>>2];Ml(w);q=+g[w+36>>2];Ml(w);R=q>0?1/q:0;S=u>0?1/u:0;T=J*(p-+g[w+40>>2])-t*(z-+g[w+44>>2])}else{if(!(c[(c[f>>2]|0)+(m<<2)>>2]&4)){u=+g[v>>2]*.75;U=u*(+g[l>>2]*u)}else U=0;R=0;S=U>0?1/U:0;T=J*(p-p)-t*(z-z)}if(M){Ml(E);u=+g[E+32>>2];Ml(E);q=+g[E+36>>2];Ml(E);V=u>0?1/u:0;W=q>0?1/q:0;X=J*(p-+g[E+40>>2])-t*(z-+g[E+44>>2])}else{if(!(c[(c[f>>2]|0)+(y<<2)>>2]&4)){q=+g[v>>2]*.75;Y=q*(+g[l>>2]* +q)}else Y=0;V=Y>0?1/Y:0;W=0;X=J*(p-p)-t*(z-z)}z=S+T*(R*T)+V+X*(W*X);p=d*s*(z>0?H/z:0);if(L){z=S*p;A=w+48|0;g[A>>2]=t*z+ +g[A>>2];A=w+52|0;g[A>>2]=J*z+ +g[A>>2];A=w+56|0;g[A>>2]=R*(T*p)+ +g[A>>2]}else{A=c[h>>2]|0;z=S*p;D=A+(m<<3)|0;g[D>>2]=t*z+ +g[D>>2];D=A+(m<<3)+4|0;g[D>>2]=J*z+ +g[D>>2]}z=-p;if(M){p=V*z;D=E+48|0;g[D>>2]=t*p+ +g[D>>2];D=E+52|0;g[D>>2]=J*p+ +g[D>>2];D=E+56|0;g[D>>2]=W*(X*z)+ +g[D>>2];break}else{D=c[h>>2]|0;p=V*z;A=D+(y<<3)|0;g[A>>2]=t*p+ +g[A>>2];A=D+(y<<3)+4|0;g[A>>2]=J*p+ +g[A>> +2];break}}}while(0);a=a+1|0}while((a|0)<(c[e>>2]|0));return}function Em(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,s=0;d=c[a+312>>2]|0;if(!d)return;e=b+4|0;f=a+104|0;h=a+96|0;a=d;do{if((c[a+12>>2]&2|0)!=0?(Ml(a),i=+g[b>>2],j=i*+g[a+56>>2],k=+R(+j),l=+Q(+j),j=+g[a+40>>2],m=+g[a+44>>2],n=i*+g[a+48>>2]+j-(l*j-k*m),o=i*+g[a+52>>2]+m-(k*j+l*m),d=a+72|0,m=+g[d>>2],p=a+68|0,j=+g[p>>2],q=a+60|0,i=+g[q>>2],r=a+64|0,s=+g[r>>2],g[q>>2]=n+(l*i-k*s),g[r>>2]=o+(k*i+l*s),g[p>>2]= +k*m+l*j,g[d>>2]=l*m-k*j,j=+g[e>>2],m=n*j,n=o*j,o=k*j,k=(l+-1)*j,d=c[a+4>>2]|0,p=a+8|0,(d|0)<(c[p>>2]|0)):0){r=d;do{d=c[f>>2]|0;q=c[h>>2]|0;j=+g[q+(r<<3)>>2];l=+g[q+(r<<3)+4>>2];g[d+(r<<3)>>2]=m+(k*j-o*l);g[d+(r<<3)+4>>2]=n+(o*j+k*l);r=r+1|0}while((r|0)<(c[p>>2]|0))}a=c[a+24>>2]|0}while((a|0)!=0);return}function Fm(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;d=a+280|0;e=c[d>>2]|0;if(!e){f=a+48|0;h=c[f>>2]|0;if(!h){Ul(a,256);i=c[f>>2]|0}else i=h;h=Sn(c[a+400>>2]|0,i<<2)|0;xp(h| +0,0,c[f>>2]<<2|0)|0;j=h}else j=e;c[d>>2]=j;d=c[j+(b<<2)>>2]|0;if((d|0)<=0){k=d;l=+(k|0);m=a+396|0;n=+g[m>>2];o=l*n;return+o}k=d-(c[a+296+4>>2]|0)|0;l=+(k|0);m=a+396|0;n=+g[m>>2];o=l*n;return+o}function Gm(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var h=0,i=0,j=0;h=+(e-d|0);i=+g[f>>2]/h;j=+g[f+4>>2]/h;if(!(i!=0|j!=0))return;f=b+21|0;if(!(a[f>>0]|0)){xp(c[b+112>>2]|0,0,c[b+44>>2]<<3|0)|0;a[f>>0]=1}if((e|0)<=(d|0))return;f=c[b+112>>2]|0;b=d;do{d=f+(b<<3)|0;g[d>>2]=i+ +g[d>>2];d=f+(b<<3)+4|0;g[d>>2]=j+ +g[d>> +2];b=b+1|0}while((b|0)!=(e|0));return}function Hm(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,h=0,i=0;f=+g[a+32>>2]*.75;h=+(d-b|0)*(f*(+g[a+320>>2]*f));f=+g[e>>2]/h;i=+g[e+4>>2]/h;if((d|0)<=(b|0))return;e=c[a+104>>2]|0;a=b;do{b=e+(a<<3)|0;g[b>>2]=f+ +g[b>>2];b=e+(a<<3)+4|0;g[b>>2]=i+ +g[b>>2];a=a+1|0}while((a|0)!=(d|0));return}function Im(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,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;e=c[a+204>>2]|0;if(!e)return;f=c[a+200>>2]|0;h=+g[a+36>>2];i=+g[d>> +2];j=d+4|0;k=(~~(h*+g[j>>2]+2048)>>>0<<20)+(~~(h*i*256+524288)>>>0)|0;l=f;m=e<<3>>3;a:while(1){n=m;while(1){if(!n){o=l;break a}p=(n|0)/2|0;if((c[l+(p<<3)+4>>2]|0)>>>0>>0){q=p;r=n;break}else n=p}l=l+(q+1<<3)|0;m=r+-1-q|0}q=d+8|0;s=+g[q>>2];r=d+12|0;m=(~~(h*+g[r>>2]+2048)>>>0<<20)+(~~(h*s*256+524288)>>>0)|0;l=o;k=f+(e<<3)-o>>3;b:while(1){e=k;while(1){if(!e){t=l;break b}f=(e|0)/2|0;if((c[l+(f<<3)+4>>2]|0)>>>0>m>>>0)e=f;else{u=f;v=e;break}}l=l+(u+1<<3)|0;k=v+-1-u|0}if(o>>>0>=t>>>0)return;u=a+96|0; +h=i;i=s;v=o;while(1){o=c[v>>2]|0;k=c[u>>2]|0;s=+g[k+(o<<3)>>2];if((h>2],+g[j>>2]>2]:0):0)?!(lb[c[(c[b>>2]|0)+12>>2]&15](b,a,o)|0):0){w=19;break}o=v+8|0;if(o>>>0>=t>>>0){w=19;break}h=+g[d>>2];i=+g[q>>2];v=o}if((w|0)==19)return}function Jm(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,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;f=i;i=i+16|0;h=f+8|0;j=f;k=c[a+204>>2]|0;if(!k){i=f;return}l= ++g[d>>2];m=+g[e>>2];n=d+4|0;o=+g[n>>2];p=+g[e+4>>2];q=p-o;r=q*q;s=+g[a+36>>2];e=(~~(s*(o>>0<<20)+(~~(((l>>0)|0;t=s*(o>p?o:p)+1+2048;p=((l>m?l:m)*s+1)*256+524288;u=c[a+200>>2]|0;v=u;w=k<<3>>3;a:while(1){x=w;while(1){if(!x){y=v;break a}z=(x|0)/2|0;if((c[v+(z<<3)+4>>2]|0)>>>0>>0){A=z;B=x;break}else x=z}v=v+(A+1<<3)|0;w=B+-1-A|0}s=m-l;l=s*s+r;A=(~~t>>>0<<20)+(~~p>>>0)|0;B=y;w=u+(k<<3)-y>>3;b:while(1){k=w;while(1){if(!k){C=B;break b}u=(k|0)/2|0;if((c[B+(u<< +3)+4>>2]|0)>>>0>A>>>0)k=u;else{D=u;E=k;break}}B=B+(D+1<<3)|0;w=E+-1-D|0}D=e&1048575;e=A&1048575;A=a+96|0;E=a+40|0;w=h+4|0;B=j+4|0;k=y;p=1;c:while(1){if(k>>>0>=C>>>0){F=26;break}t=+g[d>>2];r=+g[n>>2];y=k;while(1){u=c[y+4>>2]&1048575;v=y;y=y+8|0;if(u>>>0>>0|u>>>0>e>>>0)if(y>>>0>>0){y=y;continue}else{F=26;break c}u=c[v>>2]|0;if((u|0)<=-1){F=26;break c}v=c[A>>2]|0;m=t-+g[v+(u<<3)>>2];o=r-+g[v+(u<<3)+4>>2];G=s*m+q*o;H=G*G-l*(m*m+o*o-+g[E>>2]);if(H>=0?(I=+O(+H),H=(-G-I)/l,!(H>p)):0){if(!(H<0)){J= +u;K=y;L=m;M=o;N=H;break}H=(I-G)/l;if(!(H<0|H>p)){J=u;K=y;L=m;M=o;N=H;break}}if(y>>>0>=C>>>0){F=26;break c}}H=s*N;o=q*N;m=L+H;G=M+o;g[h>>2]=m;g[w>>2]=G;I=+O(+(m*m+G*G));if(!(I<1.1920928955078125E-7)){P=1/I;g[h>>2]=m*P;g[w>>2]=G*P}y=c[(c[b>>2]|0)+12>>2]|0;g[j>>2]=H+t;g[B>>2]=o+r;o=+eb[y&1](b,a,J,j,h,N);p=p>2]|0;if((d|0)!=(a|0)){e=d;do{d=fo(e)|0;f=c[d>>2]|0;if(f){g=0;h= +d+32|0;while(1){i=h+4|0;j=c[h>>2]|0;c[j+4>>2]=c[i>>2];c[c[i>>2]>>2]=j;c[i>>2]=h;c[h>>2]=h;g=g+1|0;if((g|0)==(f|0))break;else h=h+12|0}}ho(a,d);e=c[b>>2]|0}while((e|0)!=(a|0))}e=a+12|0;h=a+20|0;f=a+24|0;g=c[h>>2]|0;c[g+4>>2]=c[f>>2];c[c[f>>2]>>2]=g;c[f>>2]=h;c[h>>2]=h;h=a+16|0;f=c[e>>2]|0;c[f+4>>2]=c[h>>2];c[c[h>>2]>>2]=f;c[h>>2]=e;c[e>>2]=e;io(a);e=c[a>>2]|0;c[e+4>>2]=c[b>>2];c[c[b>>2]>>2]=e;c[b>>2]=a;c[a>>2]=a;return}function Lm(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,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;e=a;a=b;a:while(1){b=a;f=a+-8|0;g=a+-4|0;h=e;b:while(1){i=h;j=b-i|0;k=j>>3;switch(k|0){case 2:{l=h;m=g;n=f;o=4;break a;break}case 3:{p=h;q=g;r=f;o=6;break a;break}case 4:{s=h;t=f;o=14;break a;break}case 5:{u=h;v=g;w=f;o=15;break a;break}case 1:case 0:{o=84;break a;break}default:{}}if((j| +0)<248){x=h;y=a;o=21;break a}z=(k|0)/2|0;A=h+(z<<3)|0;do if((j|0)>7992){B=(k|0)/4|0;C=h+(B<<3)|0;D=B+z|0;E=h+(D<<3)|0;F=Bn(h,C,A,E,d)|0;G=h+(D<<3)+4|0;if((c[g>>2]|0)>>>0>=(c[G>>2]|0)>>>0){H=h+(z<<3)+4|0;I=F;break}D=E;J=c[D>>2]|0;K=c[D+4>>2]|0;D=f;L=c[D+4>>2]|0;M=E;c[M>>2]=c[D>>2];c[M+4>>2]=L;L=f;c[L>>2]=J;c[L+4>>2]=K;K=F+1|0;L=h+(z<<3)+4|0;if((c[G>>2]|0)>>>0<(c[L>>2]|0)>>>0){G=A;J=c[G>>2]|0;M=c[G+4>>2]|0;G=E;D=c[G+4>>2]|0;N=A;c[N>>2]=c[G>>2];c[N+4>>2]=D;D=E;c[D>>2]=J;c[D+4>>2]=M;M=F+2|0;D=h+(B<<3)+ +4|0;if((c[L>>2]|0)>>>0<(c[D>>2]|0)>>>0){B=C;J=c[B>>2]|0;E=c[B+4>>2]|0;B=A;N=c[B+4>>2]|0;G=C;c[G>>2]=c[B>>2];c[G+4>>2]=N;N=A;c[N>>2]=J;c[N+4>>2]=E;if((c[D>>2]|0)>>>0<(c[h+4>>2]|0)>>>0){D=h;E=c[D>>2]|0;N=c[D+4>>2]|0;D=C;J=c[D+4>>2]|0;G=h;c[G>>2]=c[D>>2];c[G+4>>2]=J;J=C;c[J>>2]=E;c[J+4>>2]=N;H=L;I=F+4|0}else{H=L;I=F+3|0}}else{H=L;I=M}}else{H=L;I=K}}else{K=h+(z<<3)+4|0;L=c[K>>2]|0;M=h+4|0;F=(c[g>>2]|0)>>>0>>0;if(L>>>0>=(c[M>>2]|0)>>>0){if(!F){H=K;I=0;break}L=A;N=c[L>>2]|0;J=c[L+4>>2]|0;L=f;E=c[L+4>> +2]|0;C=A;c[C>>2]=c[L>>2];c[C+4>>2]=E;E=f;c[E>>2]=N;c[E+4>>2]=J;if((c[K>>2]|0)>>>0>=(c[M>>2]|0)>>>0){H=K;I=1;break}M=h;J=c[M>>2]|0;E=c[M+4>>2]|0;M=A;N=c[M+4>>2]|0;C=h;c[C>>2]=c[M>>2];c[C+4>>2]=N;N=A;c[N>>2]=J;c[N+4>>2]=E;H=K;I=2;break}E=h;N=c[E>>2]|0;J=c[E+4>>2]|0;if(F){F=f;E=c[F+4>>2]|0;C=h;c[C>>2]=c[F>>2];c[C+4>>2]=E;E=f;c[E>>2]=N;c[E+4>>2]=J;H=K;I=1;break}E=A;C=c[E+4>>2]|0;F=h;c[F>>2]=c[E>>2];c[F+4>>2]=C;C=A;c[C>>2]=N;c[C+4>>2]=J;if((c[g>>2]|0)>>>0>>0){C=f;F=c[C+4>>2]|0;E=A;c[E>>2]=c[C>>2];c[E+ +4>>2]=F;F=f;c[F>>2]=N;c[F+4>>2]=J;H=K;I=2}else{H=K;I=1}}while(0);z=h+4|0;k=c[z>>2]|0;j=c[H>>2]|0;do if(k>>>0>>0){O=f;P=I}else{K=a;J=f;while(1){F=J+-8|0;if((h|0)==(F|0))break;if((c[K+-12>>2]|0)>>>0>>0){Q=F;o=66;break}else{N=J;J=F;K=N}}if((o|0)==66){o=0;K=h;J=c[K>>2]|0;N=c[K+4>>2]|0;K=Q;F=c[K+4>>2]|0;E=h;c[E>>2]=c[K>>2];c[E+4>>2]=F;F=Q;c[F>>2]=J;c[F+4>>2]=N;O=Q;P=I+1|0;break}N=h+8|0;if(k>>>0<(c[g>>2]|0)>>>0)R=N;else{if((N|0)==(f|0)){o=84;break a}else{S=h;T=N}while(1){if(k>>>0<(c[S+12>>2]|0)>>> +0){U=S;V=T;break}N=T+8|0;if((N|0)==(f|0)){o=84;break a}else{F=T;T=N;S=F}}F=V;N=c[F>>2]|0;J=c[F+4>>2]|0;F=f;E=c[F+4>>2]|0;K=V;c[K>>2]=c[F>>2];c[K+4>>2]=E;E=f;c[E>>2]=N;c[E+4>>2]=J;R=U+16|0}if((R|0)==(f|0)){o=84;break a}else{W=R;X=f}while(1){J=c[z>>2]|0;E=W;while(1){N=E+8|0;if(J>>>0<(c[E+4>>2]|0)>>>0){Y=N;Z=E;break}else E=N}E=X;while(1){N=E+-8|0;if(J>>>0<(c[E+-4>>2]|0)>>>0)E=N;else{_=N;break}}if(Z>>>0>=_>>>0){h=Z;continue b}E=Z;J=c[E>>2]|0;N=c[E+4>>2]|0;E=_;K=c[E+4>>2]|0;F=Z;c[F>>2]=c[E>>2];c[F+4>> +2]=K;K=_;c[K>>2]=J;c[K+4>>2]=N;W=Y;X=_}}while(0);z=h+8|0;c:do if(z>>>0>>0){k=z;j=O;N=A;K=P;while(1){J=c[N+4>>2]|0;F=k;while(1){E=F+8|0;if((c[F+4>>2]|0)>>>0>>0)F=E;else{$=E;aa=F;break}}F=j;while(1){E=F+-8|0;if((c[F+-4>>2]|0)>>>0>>0){ba=E;break}else F=E}if(aa>>>0>ba>>>0){ca=aa;da=N;ea=K;break c}F=aa;J=c[F>>2]|0;E=c[F+4>>2]|0;F=ba;C=c[F+4>>2]|0;M=aa;c[M>>2]=c[F>>2];c[M+4>>2]=C;C=ba;c[C>>2]=J;c[C+4>>2]=E;k=$;j=ba;N=(N|0)==(aa|0)?ba:N;K=K+1|0}}else{ca=z;da=A;ea=P}while(0);if((ca|0)!=(da|0)?(c[da+ +4>>2]|0)>>>0<(c[ca+4>>2]|0)>>>0:0){A=ca;z=c[A>>2]|0;K=c[A+4>>2]|0;A=da;N=c[A+4>>2]|0;j=ca;c[j>>2]=c[A>>2];c[j+4>>2]=N;N=da;c[N>>2]=z;c[N+4>>2]=K;fa=ea+1|0}else fa=ea;if(!fa){ga=Cn(h,ca,d)|0;K=ca+8|0;if(Cn(K,a,d)|0){o=79;break}if(ga){h=K;continue}}K=ca;if((K-i|0)>=(b-K|0)){ha=h;ia=ca;o=83;break}Lm(h,ca,d);h=ca+8|0}if((o|0)==79){o=0;if(ga){o=84;break}else{e=h;a=ca;continue}}else if((o|0)==83){o=0;Lm(ia+8|0,a,d);e=ha;a=ia;continue}}if((o|0)==4){if((c[m>>2]|0)>>>0>=(c[l+4>>2]|0)>>>0)return;m=l;ia=c[m>> +2]|0;a=c[m+4>>2]|0;m=n;ha=c[m+4>>2]|0;e=l;c[e>>2]=c[m>>2];c[e+4>>2]=ha;ha=n;c[ha>>2]=ia;c[ha+4>>2]=a;return}else if((o|0)==6){a=p+8|0;ha=p+12|0;ia=c[ha>>2]|0;n=p+4|0;e=(c[q>>2]|0)>>>0>>0;if(ia>>>0>=(c[n>>2]|0)>>>0){if(!e)return;ia=a;m=c[ia>>2]|0;l=c[ia+4>>2]|0;ia=r;ca=c[ia+4>>2]|0;ga=a;c[ga>>2]=c[ia>>2];c[ga+4>>2]=ca;ca=r;c[ca>>2]=m;c[ca+4>>2]=l;if((c[ha>>2]|0)>>>0>=(c[n>>2]|0)>>>0)return;n=p;ha=c[n>>2]|0;l=c[n+4>>2]|0;n=a;ca=c[n+4>>2]|0;m=p;c[m>>2]=c[n>>2];c[m+4>>2]=ca;ca=a;c[ca>>2]=ha;c[ca+ +4>>2]=l;return}l=p;ca=c[l>>2]|0;ha=c[l+4>>2]|0;if(e){e=r;l=c[e+4>>2]|0;m=p;c[m>>2]=c[e>>2];c[m+4>>2]=l;l=r;c[l>>2]=ca;c[l+4>>2]=ha;return}l=a;m=c[l+4>>2]|0;e=p;c[e>>2]=c[l>>2];c[e+4>>2]=m;m=a;c[m>>2]=ca;c[m+4>>2]=ha;if((c[q>>2]|0)>>>0>=ha>>>0)return;q=r;m=c[q+4>>2]|0;e=a;c[e>>2]=c[q>>2];c[e+4>>2]=m;m=r;c[m>>2]=ca;c[m+4>>2]=ha;return}else if((o|0)==14){Bn(s,s+8|0,s+16|0,t,d)|0;return}else if((o|0)==15){t=u+8|0;s=u+16|0;ha=u+24|0;Bn(u,t,s,ha,d)|0;d=u+28|0;if((c[v>>2]|0)>>>0>=(c[d>>2]|0)>>>0)return; +v=ha;m=c[v>>2]|0;ca=c[v+4>>2]|0;v=w;r=c[v+4>>2]|0;e=ha;c[e>>2]=c[v>>2];c[e+4>>2]=r;r=w;c[r>>2]=m;c[r+4>>2]=ca;if((c[d>>2]|0)>>>0>=(c[u+20>>2]|0)>>>0)return;d=s;ca=c[d>>2]|0;r=c[d+4>>2]|0;d=ha;m=c[d>>2]|0;w=c[d+4>>2]|0;d=s;c[d>>2]=m;c[d+4>>2]=w;d=ha;c[d>>2]=ca;c[d+4>>2]=r;if(w>>>0>=(c[u+12>>2]|0)>>>0)return;r=t;d=c[r>>2]|0;ca=c[r+4>>2]|0;r=t;c[r>>2]=m;c[r+4>>2]=w;r=s;c[r>>2]=d;c[r+4>>2]=ca;if(w>>>0>=(c[u+4>>2]|0)>>>0)return;ca=u;r=c[ca>>2]|0;d=c[ca+4>>2]|0;ca=u;c[ca>>2]=m;c[ca+4>>2]=w;w=t;c[w>>2]= +r;c[w+4>>2]=d;return}else if((o|0)==21){d=x+16|0;w=x+8|0;r=c[x+12>>2]|0;t=c[x+4>>2]|0;ca=c[x+20>>2]|0;m=ca>>>0>>0;do if(r>>>0>>0){u=x;s=c[u>>2]|0;ha=c[u+4>>2]|0;if(m){u=d;e=c[u+4>>2]|0;v=x;c[v>>2]=c[u>>2];c[v+4>>2]=e;e=d;c[e>>2]=s;c[e+4>>2]=ha;break}e=w;v=c[e+4>>2]|0;u=x;c[u>>2]=c[e>>2];c[u+4>>2]=v;v=w;c[v>>2]=s;c[v+4>>2]=ha;if(ca>>>0>>0){v=d;u=c[v+4>>2]|0;e=w;c[e>>2]=c[v>>2];c[e+4>>2]=u;u=d;c[u>>2]=s;c[u+4>>2]=ha}}else if(m?(ha=w,u=c[ha>>2]|0,s=c[ha+4>>2]|0,ha=d,e=c[ha>>2]|0,v=c[ha+4>> +2]|0,ha=w,c[ha>>2]=e,c[ha+4>>2]=v,ha=d,c[ha>>2]=u,c[ha+4>>2]=s,v>>>0>>0):0){s=x;ha=c[s>>2]|0;u=c[s+4>>2]|0;s=x;c[s>>2]=e;c[s+4>>2]=v;v=w;c[v>>2]=ha;c[v+4>>2]=u}while(0);w=x+24|0;if((w|0)==(y|0))return;else{ja=w;ka=d}while(1){if((c[ja+4>>2]|0)>>>0<(c[ka+4>>2]|0)>>>0){d=ja;w=c[d>>2]|0;t=c[d+4>>2]|0;d=ja;m=ka;while(1){ca=m;r=c[ca+4>>2]|0;u=d;c[u>>2]=c[ca>>2];c[u+4>>2]=r;if((m|0)==(x|0)){la=m;break}if(t>>>0<(c[m+-4>>2]|0)>>>0){r=m;m=m+-8|0;d=r}else{la=m;break}}m=la;c[m>>2]=w;c[m+4>>2]=t}m=ja+8|0;if((m| +0)==(y|0))break;else{d=ja;ja=m;ka=d}}return}else if((o|0)==84)return}function Mm(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,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;h=i;i=i+32|0;j=h;switch(e|0){case 2:{k=b+-20|0;if(!(rb[c[d>>2]&31](k,a)|0)){i=h;return}c[j>>2]=c[a>>2];c[j+4>>2]=c[a+4>>2];c[j+8>>2]=c[a+8>>2];c[j+12>>2]=c[a+12>>2];c[j+16>>2]=c[a+16>>2];c[a>>2]=c[k>>2];c[a+4>>2]=c[k+4>>2];c[a+8>>2]=c[k+8>>2];c[a+12>>2]=c[k+12>>2];c[a+16>>2]=c[k+16>>2];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];c[k+16>>2]=c[j+16>>2];i=h;return}case 1:case 0:{i=h;return}default:{if((e|0)<129){if((a|0)!=(b|0)?(k=a+20|0,(k|0)!=(b|0)):0){l=k;do{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];c[j+16>>2]=c[l+16>>2];a:do if((l|0)==(a|0))m=a;else{k=l;while(1){n=k;k=k+-20|0;if(!(rb[c[d>>2]&31](j,k)|0)){m=n;break a}c[n>>2]=c[k>>2];c[n+4>>2]=c[k+4>>2];c[n+8>>2]=c[k+8>>2];c[n+12>>2]=c[k+12>>2];c[n+16>>2]=c[k+16>>2];if((k|0)== +(a|0)){m=a;break}}}while(0);c[m>>2]=c[j>>2];c[m+4>>2]=c[j+4>>2];c[m+8>>2]=c[j+8>>2];c[m+12>>2]=c[j+12>>2];c[m+16>>2]=c[j+16>>2];l=l+20|0}while((l|0)!=(b|0))}i=h;return}l=(e|0)/2|0;j=a+(l*20|0)|0;if((e|0)>(g|0)){Mm(a,j,d,l,f,g);m=e-l|0;Mm(j,b,d,m,f,g);An(a,j,b,d,l,m,f,g);i=h;return}zn(a,j,d,l,f);g=f+(l*20|0)|0;zn(j,b,d,e-l|0,g);l=f+(e*20|0)|0;b:do if((e+1|0)>>>0<3){o=a;p=g}else{b=a;j=f;m=g;while(1){if((m|0)==(l|0)){q=b;r=j;break}if(rb[c[d>>2]&31](m,j)|0){c[b>>2]=c[m>>2];c[b+4>>2]=c[m+4>>2];c[b+8>> +2]=c[m+8>>2];c[b+12>>2]=c[m+12>>2];c[b+16>>2]=c[m+16>>2];s=m+20|0;t=j}else{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];c[b+16>>2]=c[j+16>>2];s=m;t=j+20|0}k=b+20|0;if((t|0)==(g|0)){o=k;p=s;break b}else{b=k;j=t;m=s}}if((r|0)==(g|0)){i=h;return}else{u=r;v=q}while(1){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];c[v+16>>2]=c[u+16>>2];u=u+20|0;if((u|0)==(g|0))break;else v=v+20|0}i=h;return}while(0);if((p|0)==(l|0)){i=h;return}else{w=o;x= +p}while(1){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[w+16>>2]=c[x+16>>2];x=x+20|0;if((x|0)==(l|0))break;else w=w+20|0}i=h;return}}}function Nm(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,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;h=i;i=i+64|0;j=h;switch(e|0){case 2:{k=b+-60|0;if(!(rb[c[d>>2]&31](k,a)|0)){i=h;return}l=j;m=a;n=l+60|0;do{c[l>>2]=c[m>>2];l=l+4|0;m=m+4|0}while((l|0)<(n|0));l=a;m=k;n=l+60|0;do{c[l>>2]=c[m>> +2];l=l+4|0;m=m+4|0}while((l|0)<(n|0));l=k;m=j;n=l+60|0;do{c[l>>2]=c[m>>2];l=l+4|0;m=m+4|0}while((l|0)<(n|0));i=h;return}case 1:case 0:{i=h;return}default:{if((e|0)<129){if((a|0)==(b|0)){i=h;return}k=a+60|0;if((k|0)==(b|0)){i=h;return}o=k;do{l=j;m=o;n=l+60|0;do{c[l>>2]=c[m>>2];l=l+4|0;m=m+4|0}while((l|0)<(n|0));a:do if((o|0)==(a|0))p=a;else{k=o;while(1){q=k;k=k+-60|0;if(!(rb[c[d>>2]&31](j,k)|0)){p=q;break a}l=q;m=k;n=l+60|0;do{c[l>>2]=c[m>>2];l=l+4|0;m=m+4|0}while((l|0)<(n|0));if((k|0)==(a|0)){p=a; +break}}}while(0);l=p;m=j;n=l+60|0;do{c[l>>2]=c[m>>2];l=l+4|0;m=m+4|0}while((l|0)<(n|0));o=o+60|0}while((o|0)!=(b|0));i=h;return}o=(e|0)/2|0;j=a+(o*60|0)|0;if((e|0)>(g|0)){Nm(a,j,d,o,f,g);p=e-o|0;Nm(j,b,d,p,f,g);vn(a,j,b,d,o,p,f,g);i=h;return}un(a,j,d,o,f);g=f+(o*60|0)|0;un(j,b,d,e-o|0,g);o=f+(e*60|0)|0;b:do if((e+1|0)>>>0<3){r=a;s=g}else{b=a;j=f;p=g;while(1){if((p|0)==(o|0)){t=b;u=j;break}if(rb[c[d>>2]&31](p,j)|0){l=b;m=p;n=l+60|0;do{c[l>>2]=c[m>>2];l=l+4|0;m=m+4|0}while((l|0)<(n|0));v=p+60|0;w=j}else{l= +b;m=j;n=l+60|0;do{c[l>>2]=c[m>>2];l=l+4|0;m=m+4|0}while((l|0)<(n|0));v=p;w=j+60|0}k=b+60|0;if((w|0)==(g|0)){r=k;s=v;break b}else{b=k;j=w;p=v}}if((u|0)==(g|0)){i=h;return}else{x=u;y=t}while(1){l=y;m=x;n=l+60|0;do{c[l>>2]=c[m>>2];l=l+4|0;m=m+4|0}while((l|0)<(n|0));x=x+60|0;if((x|0)==(g|0))break;else y=y+60|0}i=h;return}while(0);if((s|0)==(o|0)){i=h;return}else{z=r;A=s}while(1){l=z;m=A;n=l+60|0;do{c[l>>2]=c[m>>2];l=l+4|0;m=m+4|0}while((l|0)<(n|0));A=A+60|0;if((A|0)==(o|0))break;else z=z+60|0}i=h;return}}} +function Om(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,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;f=c[a+96>>2]|0;h=+g[f+(d<<3)>>2]-+g[f+(b<<3)>>2];i=+g[f+(d<<3)+4>>2]-+g[f+(b<<3)+4>>2];j=h*h+i*i;if(!(j<+g[a+40>>2]))return;l=(c[k>>2]=1597463007-((g[k>>2]=j,c[k>>2]|0)>>1),+g[k>>2]);m=l*(1.5-l*(j*.5*l));f=e+4|0;n=c[f>>2]|0;o=e+8|0;p=c[o>>2]|0;if((n|0)>=(p|0)?(q=(p|0)==0?256:p<<1,(p|0)<(q|0)):0){p=e+12|0;r=Sn(c[p>>2]|0,q*24|0)|0;s=c[e>>2]|0;if(!s)t=e;else{Bp(r|0,s|0,(c[f>>2]|0)*24|0)|0;Tn(c[p>> +2]|0,c[e>>2]|0,(c[o>>2]|0)*24|0);t=e}c[o>>2]=q;c[t>>2]=r;u=c[f>>2]|0}else u=n;c[f>>2]=u+1;f=c[e>>2]|0;c[f+(u*24|0)>>2]=b;c[f+(u*24|0)+4>>2]=d;e=c[a+88>>2]|0;c[f+(u*24|0)+20>>2]=c[e+(d<<2)>>2]|c[e+(b<<2)>>2];g[f+(u*24|0)+8>>2]=1-j*m*+g[a+36>>2];g[f+(u*24|0)+12>>2]=h*m;g[f+(u*24|0)+16>>2]=i*m;return}function Pm(a,b){a=a|0;b=b|0;var d=0;if((c[a>>2]|0)>=(c[b>>2]|0)){d=0;return d|0}d=(c[a+4>>2]|0)<(c[b+4>>2]|0);return d|0}function Qm(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,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;e=i;i=i+16|0;f=e;g=a;a=b;a:while(1){b=a;h=a+-8|0;j=g;b:while(1){k=j;l=b-k|0;m=l>>3;switch(m|0){case 2:{n=j;o=h;p=h;q=4;break a;break}case 3:{r=j;s=h;t=h;q=6;break a;break}case 4:{u=j;v=h;w=h;q=14;break a;break}case 5:{x=j;y=h;q=26;break a;break}case 1:case 0:{q=87;break a;break}default:{}}if((l|0)<248){z=j;A= +a;q=28;break a}B=(m|0)/2|0;C=j+(B<<3)|0;do if((l|0)<=7992){D=rb[c[d>>2]&31](C,j)|0;E=rb[c[d>>2]&31](h,C)|0;if(!D){if(!E){F=0;break}D=C;G=c[D>>2]|0;H=c[D+4>>2]|0;D=h;I=c[D+4>>2]|0;J=C;c[J>>2]=c[D>>2];c[J+4>>2]=I;I=h;c[I>>2]=G;c[I+4>>2]=H;if(!(rb[c[d>>2]&31](C,j)|0)){F=1;break}H=j;I=c[H>>2]|0;G=c[H+4>>2]|0;H=C;J=c[H+4>>2]|0;D=j;c[D>>2]=c[H>>2];c[D+4>>2]=J;J=C;c[J>>2]=I;c[J+4>>2]=G;F=2;break}G=j;J=c[G>>2]|0;I=c[G+4>>2]|0;if(E){E=h;G=c[E+4>>2]|0;D=j;c[D>>2]=c[E>>2];c[D+4>>2]=G;G=h;c[G>>2]=J;c[G+4>>2]= +I;F=1;break}G=C;D=c[G+4>>2]|0;E=j;c[E>>2]=c[G>>2];c[E+4>>2]=D;D=C;c[D>>2]=J;c[D+4>>2]=I;if(rb[c[d>>2]&31](h,C)|0){I=C;D=c[I>>2]|0;J=c[I+4>>2]|0;I=h;E=c[I+4>>2]|0;G=C;c[G>>2]=c[I>>2];c[G+4>>2]=E;E=h;c[E>>2]=D;c[E+4>>2]=J;F=2}else F=1}else{J=(m|0)/4|0;F=jn(j,j+(J<<3)|0,C,j+(J+B<<3)|0,h,d)|0}while(0);do if(rb[c[d>>2]&31](j,C)|0){K=h;L=F}else{B=h;while(1){m=B+-8|0;if((j|0)==(m|0))break;if(rb[c[d>>2]&31](m,C)|0){M=m;q=69;break}else B=m}if((q|0)==69){q=0;B=j;m=c[B>>2]|0;l=c[B+4>>2]|0;B=M;J=c[B+4>>2]|0; +E=j;c[E>>2]=c[B>>2];c[E+4>>2]=J;J=M;c[J>>2]=m;c[J+4>>2]=l;K=M;L=F+1|0;break}l=j+8|0;if(rb[c[d>>2]&31](j,h)|0)N=l;else{if((l|0)==(h|0)){q=87;break a}else{O=j;P=l}while(1){if(rb[c[d>>2]&31](j,P)|0){Q=O;R=P;break}l=P+8|0;if((l|0)==(h|0)){q=87;break a}else{J=P;P=l;O=J}}J=R;l=c[J>>2]|0;m=c[J+4>>2]|0;J=h;E=c[J+4>>2]|0;B=R;c[B>>2]=c[J>>2];c[B+4>>2]=E;E=h;c[E>>2]=l;c[E+4>>2]=m;N=Q+16|0}if((N|0)==(h|0)){q=87;break a}else{S=N;T=h}while(1){m=S;while(1){E=m+8|0;if(rb[c[d>>2]&31](j,m)|0){U=E;V=m;break}else m= +E}m=T;while(1){E=m+-8|0;if(rb[c[d>>2]&31](j,E)|0)m=E;else{W=E;break}}if(V>>>0>=W>>>0){j=V;continue b}m=V;E=c[m>>2]|0;l=c[m+4>>2]|0;m=W;B=c[m+4>>2]|0;J=V;c[J>>2]=c[m>>2];c[J+4>>2]=B;B=W;c[B>>2]=E;c[B+4>>2]=l;S=U;T=W}}while(0);l=j+8|0;c:do if(l>>>0>>0){B=l;E=K;J=C;m=L;while(1){D=B;while(1){G=D+8|0;if(rb[c[d>>2]&31](D,J)|0)D=G;else{X=G;Y=D;break}}D=E;while(1){G=D+-8|0;if(rb[c[d>>2]&31](G,J)|0){Z=G;break}else D=G}if(Y>>>0>Z>>>0){_=Y;$=J;aa=m;break c}D=Y;G=c[D>>2]|0;I=c[D+4>>2]|0;D=Z;H=c[D+4>>2]|0; +ba=Y;c[ba>>2]=c[D>>2];c[ba+4>>2]=H;H=Z;c[H>>2]=G;c[H+4>>2]=I;B=X;E=Z;J=(J|0)==(Y|0)?Z:J;m=m+1|0}}else{_=l;$=C;aa=L}while(0);if((_|0)!=($|0)?rb[c[d>>2]&31]($,_)|0:0){C=_;l=c[C>>2]|0;m=c[C+4>>2]|0;C=$;J=c[C+4>>2]|0;E=_;c[E>>2]=c[C>>2];c[E+4>>2]=J;J=$;c[J>>2]=l;c[J+4>>2]=m;ca=aa+1|0}else ca=aa;if(!ca){da=kn(j,_,d)|0;m=_+8|0;if(kn(m,a,d)|0){q=82;break}if(da){j=m;continue}}m=_;if((m-k|0)>=(b-m|0)){ea=j;fa=_;q=86;break}Qm(j,_,d);j=_+8|0}if((q|0)==82){q=0;if(da){q=87;break}else{g=j;a=_;continue}}else if((q| +0)==86){q=0;Qm(fa+8|0,a,d);g=ea;a=fa;continue}}if((q|0)==4){if(!(rb[c[d>>2]&31](o,n)|0)){i=e;return}o=n;fa=c[o>>2]|0;a=c[o+4>>2]|0;o=p;ea=c[o+4>>2]|0;g=n;c[g>>2]=c[o>>2];c[g+4>>2]=ea;ea=p;c[ea>>2]=fa;c[ea+4>>2]=a;i=e;return}else if((q|0)==6){a=r+8|0;ea=rb[c[d>>2]&31](a,r)|0;fa=rb[c[d>>2]&31](s,a)|0;if(!ea){if(!fa){i=e;return}ea=a;p=c[ea>>2]|0;g=c[ea+4>>2]|0;ea=t;o=c[ea+4>>2]|0;n=a;c[n>>2]=c[ea>>2];c[n+4>>2]=o;o=t;c[o>>2]=p;c[o+4>>2]=g;if(!(rb[c[d>>2]&31](a,r)|0)){i=e;return}g=r;o=c[g>>2]|0;p=c[g+ +4>>2]|0;g=a;n=c[g+4>>2]|0;ea=r;c[ea>>2]=c[g>>2];c[ea+4>>2]=n;n=a;c[n>>2]=o;c[n+4>>2]=p;i=e;return}p=r;n=c[p>>2]|0;o=c[p+4>>2]|0;if(fa){fa=t;p=c[fa+4>>2]|0;ea=r;c[ea>>2]=c[fa>>2];c[ea+4>>2]=p;p=t;c[p>>2]=n;c[p+4>>2]=o;i=e;return}p=a;ea=c[p+4>>2]|0;fa=r;c[fa>>2]=c[p>>2];c[fa+4>>2]=ea;ea=a;c[ea>>2]=n;c[ea+4>>2]=o;if(!(rb[c[d>>2]&31](s,a)|0)){i=e;return}s=a;o=c[s>>2]|0;ea=c[s+4>>2]|0;s=t;n=c[s+4>>2]|0;fa=a;c[fa>>2]=c[s>>2];c[fa+4>>2]=n;n=t;c[n>>2]=o;c[n+4>>2]=ea;i=e;return}else if((q|0)==14){ea=u+8|0; +n=u+16|0;o=rb[c[d>>2]&31](ea,u)|0;t=rb[c[d>>2]&31](n,ea)|0;do if(o){fa=u;s=c[fa>>2]|0;a=c[fa+4>>2]|0;if(t){fa=n;p=c[fa+4>>2]|0;r=u;c[r>>2]=c[fa>>2];c[r+4>>2]=p;p=n;c[p>>2]=s;c[p+4>>2]=a;break}p=ea;r=c[p+4>>2]|0;fa=u;c[fa>>2]=c[p>>2];c[fa+4>>2]=r;r=ea;c[r>>2]=s;c[r+4>>2]=a;if(rb[c[d>>2]&31](n,ea)|0){a=ea;r=c[a>>2]|0;s=c[a+4>>2]|0;a=n;fa=c[a+4>>2]|0;p=ea;c[p>>2]=c[a>>2];c[p+4>>2]=fa;fa=n;c[fa>>2]=r;c[fa+4>>2]=s}}else if(t?(s=ea,fa=c[s>>2]|0,r=c[s+4>>2]|0,s=n,p=c[s+4>>2]|0,a=ea,c[a>>2]=c[s>>2],c[a+4>> +2]=p,p=n,c[p>>2]=fa,c[p+4>>2]=r,rb[c[d>>2]&31](ea,u)|0):0){r=u;p=c[r>>2]|0;fa=c[r+4>>2]|0;r=ea;a=c[r+4>>2]|0;s=u;c[s>>2]=c[r>>2];c[s+4>>2]=a;a=ea;c[a>>2]=p;c[a+4>>2]=fa}while(0);if(!(rb[c[d>>2]&31](v,n)|0)){i=e;return}v=n;t=c[v>>2]|0;o=c[v+4>>2]|0;v=w;fa=c[v+4>>2]|0;a=n;c[a>>2]=c[v>>2];c[a+4>>2]=fa;fa=w;c[fa>>2]=t;c[fa+4>>2]=o;if(!(rb[c[d>>2]&31](n,ea)|0)){i=e;return}o=ea;fa=c[o>>2]|0;t=c[o+4>>2]|0;o=n;w=c[o+4>>2]|0;a=ea;c[a>>2]=c[o>>2];c[a+4>>2]=w;w=n;c[w>>2]=fa;c[w+4>>2]=t;if(!(rb[c[d>>2]&31](ea, +u)|0)){i=e;return}t=u;w=c[t>>2]|0;fa=c[t+4>>2]|0;t=ea;n=c[t+4>>2]|0;a=u;c[a>>2]=c[t>>2];c[a+4>>2]=n;n=ea;c[n>>2]=w;c[n+4>>2]=fa;i=e;return}else if((q|0)==26){jn(x,x+8|0,x+16|0,x+24|0,y,d)|0;i=e;return}else if((q|0)==28){y=z+16|0;x=z+8|0;fa=rb[c[d>>2]&31](x,z)|0;n=rb[c[d>>2]&31](y,x)|0;do if(fa){w=z;ea=c[w>>2]|0;a=c[w+4>>2]|0;if(n){w=y;t=c[w+4>>2]|0;u=z;c[u>>2]=c[w>>2];c[u+4>>2]=t;t=y;c[t>>2]=ea;c[t+4>>2]=a;break}t=x;u=c[t+4>>2]|0;w=z;c[w>>2]=c[t>>2];c[w+4>>2]=u;u=x;c[u>>2]=ea;c[u+4>>2]=a;if(rb[c[d>> +2]&31](y,x)|0){a=x;u=c[a>>2]|0;ea=c[a+4>>2]|0;a=y;w=c[a+4>>2]|0;t=x;c[t>>2]=c[a>>2];c[t+4>>2]=w;w=y;c[w>>2]=u;c[w+4>>2]=ea}}else if(n?(ea=x,w=c[ea>>2]|0,u=c[ea+4>>2]|0,ea=y,t=c[ea+4>>2]|0,a=x,c[a>>2]=c[ea>>2],c[a+4>>2]=t,t=y,c[t>>2]=w,c[t+4>>2]=u,rb[c[d>>2]&31](x,z)|0):0){u=z;t=c[u>>2]|0;w=c[u+4>>2]|0;u=x;a=c[u+4>>2]|0;ea=z;c[ea>>2]=c[u>>2];c[ea+4>>2]=a;a=x;c[a>>2]=t;c[a+4>>2]=w}while(0);x=z+24|0;if((x|0)!=(A|0)){n=x;x=y;while(1){if(rb[c[d>>2]&31](n,x)|0){y=n;fa=c[y+4>>2]|0;w=f;c[w>>2]=c[y>>2];c[w+ +4>>2]=fa;fa=n;w=x;while(1){y=w;a=c[y+4>>2]|0;t=fa;c[t>>2]=c[y>>2];c[t+4>>2]=a;if((w|0)==(z|0)){ga=w;break}a=w+-8|0;if(rb[c[d>>2]&31](f,a)|0){t=w;w=a;fa=t}else{ga=w;break}}w=f;fa=c[w+4>>2]|0;j=ga;c[j>>2]=c[w>>2];c[j+4>>2]=fa}fa=n+8|0;if((fa|0)==(A|0))break;else{j=n;n=fa;x=j}}}i=e;return}else if((q|0)==87){i=e;return}}function Rm(a,b){a=a|0;b=b|0;var d=0;if((c[a>>2]|0)>>>0>=(c[b>>2]|0)>>>0){d=0;return d|0}d=(c[a+4>>2]|0)<(c[b+4>>2]|0);return d|0}function Sm(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,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;e=i;i=i+16|0;f=e;g=a;a=b;a:while(1){b=a;h=a+-8|0;j=g;b:while(1){k=j;l=b-k|0;m=l>>3;switch(m|0){case 2:{n=j;o=h;p=h;q=4;break a;break}case 3:{r=j;s=h;t=h;q=6;break a;break}case 4:{u=j;v=h;w=h;q=14;break a;break}case 5:{x=j;y=h;q=26;break a;break}case 1:case 0:{q=87;break a;break}default:{}}if((l| +0)<248){z=j;A=a;q=28;break a}B=(m|0)/2|0;C=j+(B<<3)|0;do if((l|0)<=7992){D=rb[c[d>>2]&31](C,j)|0;E=rb[c[d>>2]&31](h,C)|0;if(!D){if(!E){F=0;break}D=C;G=c[D>>2]|0;H=c[D+4>>2]|0;D=h;I=c[D+4>>2]|0;J=C;c[J>>2]=c[D>>2];c[J+4>>2]=I;I=h;c[I>>2]=G;c[I+4>>2]=H;if(!(rb[c[d>>2]&31](C,j)|0)){F=1;break}H=j;I=c[H>>2]|0;G=c[H+4>>2]|0;H=C;J=c[H+4>>2]|0;D=j;c[D>>2]=c[H>>2];c[D+4>>2]=J;J=C;c[J>>2]=I;c[J+4>>2]=G;F=2;break}G=j;J=c[G>>2]|0;I=c[G+4>>2]|0;if(E){E=h;G=c[E+4>>2]|0;D=j;c[D>>2]=c[E>>2];c[D+4>>2]=G;G=h;c[G>> +2]=J;c[G+4>>2]=I;F=1;break}G=C;D=c[G+4>>2]|0;E=j;c[E>>2]=c[G>>2];c[E+4>>2]=D;D=C;c[D>>2]=J;c[D+4>>2]=I;if(rb[c[d>>2]&31](h,C)|0){I=C;D=c[I>>2]|0;J=c[I+4>>2]|0;I=h;E=c[I+4>>2]|0;G=C;c[G>>2]=c[I>>2];c[G+4>>2]=E;E=h;c[E>>2]=D;c[E+4>>2]=J;F=2}else F=1}else{J=(m|0)/4|0;F=gn(j,j+(J<<3)|0,C,j+(J+B<<3)|0,h,d)|0}while(0);do if(rb[c[d>>2]&31](j,C)|0){K=h;L=F}else{B=h;while(1){m=B+-8|0;if((j|0)==(m|0))break;if(rb[c[d>>2]&31](m,C)|0){M=m;q=69;break}else B=m}if((q|0)==69){q=0;B=j;m=c[B>>2]|0;l=c[B+4>>2]|0;B=M; +J=c[B+4>>2]|0;E=j;c[E>>2]=c[B>>2];c[E+4>>2]=J;J=M;c[J>>2]=m;c[J+4>>2]=l;K=M;L=F+1|0;break}l=j+8|0;if(rb[c[d>>2]&31](j,h)|0)N=l;else{if((l|0)==(h|0)){q=87;break a}else{O=j;P=l}while(1){if(rb[c[d>>2]&31](j,P)|0){Q=O;R=P;break}l=P+8|0;if((l|0)==(h|0)){q=87;break a}else{J=P;P=l;O=J}}J=R;l=c[J>>2]|0;m=c[J+4>>2]|0;J=h;E=c[J+4>>2]|0;B=R;c[B>>2]=c[J>>2];c[B+4>>2]=E;E=h;c[E>>2]=l;c[E+4>>2]=m;N=Q+16|0}if((N|0)==(h|0)){q=87;break a}else{S=N;T=h}while(1){m=S;while(1){E=m+8|0;if(rb[c[d>>2]&31](j,m)|0){U=E;V=m; +break}else m=E}m=T;while(1){E=m+-8|0;if(rb[c[d>>2]&31](j,E)|0)m=E;else{W=E;break}}if(V>>>0>=W>>>0){j=V;continue b}m=V;E=c[m>>2]|0;l=c[m+4>>2]|0;m=W;B=c[m+4>>2]|0;J=V;c[J>>2]=c[m>>2];c[J+4>>2]=B;B=W;c[B>>2]=E;c[B+4>>2]=l;S=U;T=W}}while(0);l=j+8|0;c:do if(l>>>0>>0){B=l;E=K;J=C;m=L;while(1){D=B;while(1){G=D+8|0;if(rb[c[d>>2]&31](D,J)|0)D=G;else{X=G;Y=D;break}}D=E;while(1){G=D+-8|0;if(rb[c[d>>2]&31](G,J)|0){Z=G;break}else D=G}if(Y>>>0>Z>>>0){_=Y;$=J;aa=m;break c}D=Y;G=c[D>>2]|0;I=c[D+4>>2]|0;D=Z;H= +c[D+4>>2]|0;ba=Y;c[ba>>2]=c[D>>2];c[ba+4>>2]=H;H=Z;c[H>>2]=G;c[H+4>>2]=I;B=X;E=Z;J=(J|0)==(Y|0)?Z:J;m=m+1|0}}else{_=l;$=C;aa=L}while(0);if((_|0)!=($|0)?rb[c[d>>2]&31]($,_)|0:0){C=_;l=c[C>>2]|0;m=c[C+4>>2]|0;C=$;J=c[C+4>>2]|0;E=_;c[E>>2]=c[C>>2];c[E+4>>2]=J;J=$;c[J>>2]=l;c[J+4>>2]=m;ca=aa+1|0}else ca=aa;if(!ca){da=hn(j,_,d)|0;m=_+8|0;if(hn(m,a,d)|0){q=82;break}if(da){j=m;continue}}m=_;if((m-k|0)>=(b-m|0)){ea=j;fa=_;q=86;break}Sm(j,_,d);j=_+8|0}if((q|0)==82){q=0;if(da){q=87;break}else{g=j;a=_;continue}}else if((q| +0)==86){q=0;Sm(fa+8|0,a,d);g=ea;a=fa;continue}}if((q|0)==4){if(!(rb[c[d>>2]&31](o,n)|0)){i=e;return}o=n;fa=c[o>>2]|0;a=c[o+4>>2]|0;o=p;ea=c[o+4>>2]|0;g=n;c[g>>2]=c[o>>2];c[g+4>>2]=ea;ea=p;c[ea>>2]=fa;c[ea+4>>2]=a;i=e;return}else if((q|0)==6){a=r+8|0;ea=rb[c[d>>2]&31](a,r)|0;fa=rb[c[d>>2]&31](s,a)|0;if(!ea){if(!fa){i=e;return}ea=a;p=c[ea>>2]|0;g=c[ea+4>>2]|0;ea=t;o=c[ea+4>>2]|0;n=a;c[n>>2]=c[ea>>2];c[n+4>>2]=o;o=t;c[o>>2]=p;c[o+4>>2]=g;if(!(rb[c[d>>2]&31](a,r)|0)){i=e;return}g=r;o=c[g>>2]|0;p=c[g+ +4>>2]|0;g=a;n=c[g+4>>2]|0;ea=r;c[ea>>2]=c[g>>2];c[ea+4>>2]=n;n=a;c[n>>2]=o;c[n+4>>2]=p;i=e;return}p=r;n=c[p>>2]|0;o=c[p+4>>2]|0;if(fa){fa=t;p=c[fa+4>>2]|0;ea=r;c[ea>>2]=c[fa>>2];c[ea+4>>2]=p;p=t;c[p>>2]=n;c[p+4>>2]=o;i=e;return}p=a;ea=c[p+4>>2]|0;fa=r;c[fa>>2]=c[p>>2];c[fa+4>>2]=ea;ea=a;c[ea>>2]=n;c[ea+4>>2]=o;if(!(rb[c[d>>2]&31](s,a)|0)){i=e;return}s=a;o=c[s>>2]|0;ea=c[s+4>>2]|0;s=t;n=c[s+4>>2]|0;fa=a;c[fa>>2]=c[s>>2];c[fa+4>>2]=n;n=t;c[n>>2]=o;c[n+4>>2]=ea;i=e;return}else if((q|0)==14){ea=u+8|0; +n=u+16|0;o=rb[c[d>>2]&31](ea,u)|0;t=rb[c[d>>2]&31](n,ea)|0;do if(o){fa=u;s=c[fa>>2]|0;a=c[fa+4>>2]|0;if(t){fa=n;p=c[fa+4>>2]|0;r=u;c[r>>2]=c[fa>>2];c[r+4>>2]=p;p=n;c[p>>2]=s;c[p+4>>2]=a;break}p=ea;r=c[p+4>>2]|0;fa=u;c[fa>>2]=c[p>>2];c[fa+4>>2]=r;r=ea;c[r>>2]=s;c[r+4>>2]=a;if(rb[c[d>>2]&31](n,ea)|0){a=ea;r=c[a>>2]|0;s=c[a+4>>2]|0;a=n;fa=c[a+4>>2]|0;p=ea;c[p>>2]=c[a>>2];c[p+4>>2]=fa;fa=n;c[fa>>2]=r;c[fa+4>>2]=s}}else if(t?(s=ea,fa=c[s>>2]|0,r=c[s+4>>2]|0,s=n,p=c[s+4>>2]|0,a=ea,c[a>>2]=c[s>>2],c[a+4>> +2]=p,p=n,c[p>>2]=fa,c[p+4>>2]=r,rb[c[d>>2]&31](ea,u)|0):0){r=u;p=c[r>>2]|0;fa=c[r+4>>2]|0;r=ea;a=c[r+4>>2]|0;s=u;c[s>>2]=c[r>>2];c[s+4>>2]=a;a=ea;c[a>>2]=p;c[a+4>>2]=fa}while(0);if(!(rb[c[d>>2]&31](v,n)|0)){i=e;return}v=n;t=c[v>>2]|0;o=c[v+4>>2]|0;v=w;fa=c[v+4>>2]|0;a=n;c[a>>2]=c[v>>2];c[a+4>>2]=fa;fa=w;c[fa>>2]=t;c[fa+4>>2]=o;if(!(rb[c[d>>2]&31](n,ea)|0)){i=e;return}o=ea;fa=c[o>>2]|0;t=c[o+4>>2]|0;o=n;w=c[o+4>>2]|0;a=ea;c[a>>2]=c[o>>2];c[a+4>>2]=w;w=n;c[w>>2]=fa;c[w+4>>2]=t;if(!(rb[c[d>>2]&31](ea, +u)|0)){i=e;return}t=u;w=c[t>>2]|0;fa=c[t+4>>2]|0;t=ea;n=c[t+4>>2]|0;a=u;c[a>>2]=c[t>>2];c[a+4>>2]=n;n=ea;c[n>>2]=w;c[n+4>>2]=fa;i=e;return}else if((q|0)==26){gn(x,x+8|0,x+16|0,x+24|0,y,d)|0;i=e;return}else if((q|0)==28){y=z+16|0;x=z+8|0;fa=rb[c[d>>2]&31](x,z)|0;n=rb[c[d>>2]&31](y,x)|0;do if(fa){w=z;ea=c[w>>2]|0;a=c[w+4>>2]|0;if(n){w=y;t=c[w+4>>2]|0;u=z;c[u>>2]=c[w>>2];c[u+4>>2]=t;t=y;c[t>>2]=ea;c[t+4>>2]=a;break}t=x;u=c[t+4>>2]|0;w=z;c[w>>2]=c[t>>2];c[w+4>>2]=u;u=x;c[u>>2]=ea;c[u+4>>2]=a;if(rb[c[d>> +2]&31](y,x)|0){a=x;u=c[a>>2]|0;ea=c[a+4>>2]|0;a=y;w=c[a+4>>2]|0;t=x;c[t>>2]=c[a>>2];c[t+4>>2]=w;w=y;c[w>>2]=u;c[w+4>>2]=ea}}else if(n?(ea=x,w=c[ea>>2]|0,u=c[ea+4>>2]|0,ea=y,t=c[ea+4>>2]|0,a=x,c[a>>2]=c[ea>>2],c[a+4>>2]=t,t=y,c[t>>2]=w,c[t+4>>2]=u,rb[c[d>>2]&31](x,z)|0):0){u=z;t=c[u>>2]|0;w=c[u+4>>2]|0;u=x;a=c[u+4>>2]|0;ea=z;c[ea>>2]=c[u>>2];c[ea+4>>2]=a;a=x;c[a>>2]=t;c[a+4>>2]=w}while(0);x=z+24|0;if((x|0)!=(A|0)){n=x;x=y;while(1){if(rb[c[d>>2]&31](n,x)|0){y=n;fa=c[y+4>>2]|0;w=f;c[w>>2]=c[y>>2];c[w+ +4>>2]=fa;fa=n;w=x;while(1){y=w;a=c[y+4>>2]|0;t=fa;c[t>>2]=c[y>>2];c[t+4>>2]=a;if((w|0)==(z|0)){ga=w;break}a=w+-8|0;if(rb[c[d>>2]&31](f,a)|0){t=w;w=a;fa=t}else{ga=w;break}}w=f;fa=c[w+4>>2]|0;j=ga;c[j>>2]=c[w>>2];c[j+4>>2]=fa}fa=n+8|0;if((fa|0)==(A|0))break;else{j=n;n=fa;x=j}}}i=e;return}else if((q|0)==87){i=e;return}}function Tm(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,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;e=i;i=i+32|0;f=e;g=a;a=b;a:while(1){b=a;h=a+-28|0;j=g;b:while(1){k=j;l=b-k|0;switch((l|0)/28|0|0){case 2:{m=j;n=h;o=h;p=4;break a;break}case 3:{q=j;r=h;s=h;p=6;break a;break}case 4:{t=j;u=h;p=14;break a;break}case 5:{v=j;w=h;x=h;p=15;break a;break}case 1:case 0:{p=69;break a;break}default:{}}if((l|0)<868){y=j;z=a;p=21;break a}A=(l|0)/56|0;B=j+(A*28|0)|0;do if((l|0)>27972){C=(l|0)/112|0;D=j+(C*28|0)|0;E=j+((C+A|0)*28|0)|0;C=bn(j, +D,B,E,d)|0;if(rb[c[d>>2]&31](h,E)|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];c[f+16>>2]=c[E+16>>2];c[f+20>>2]=c[E+20>>2];c[f+24>>2]=c[E+24>>2];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];c[E+16>>2]=c[h+16>>2];c[E+20>>2]=c[h+20>>2];c[E+24>>2]=c[h+24>>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];c[h+16>>2]=c[f+16>>2];c[h+20>>2]=c[f+20>>2];c[h+24>>2]=c[f+24>>2];F=C+1|0;if(rb[c[d>>2]&31](E,B)|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];c[f+16>>2]=c[B+16>>2];c[f+20>>2]=c[B+20>>2];c[f+24>>2]=c[B+24>>2];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];c[B+16>>2]=c[E+16>>2];c[B+20>>2]=c[E+20>>2];c[B+24>>2]=c[E+24>>2];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];c[E+16>>2]=c[f+16>>2];c[E+20>>2]=c[f+20>>2];c[E+24>>2]=c[f+24>>2];E=C+2|0;if(rb[c[d>>2]&31](B,D)|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>>2]=c[D+16>>2];c[f+20>>2]=c[D+20>>2];c[f+24>>2]=c[D+24>>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];c[D+16>>2]=c[B+16>>2];c[D+20>>2]=c[B+20>>2];c[D+24>>2]=c[B+24>>2];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];c[B+16>>2]=c[f+16>>2];c[B+20>>2]=c[f+20>>2];c[B+24>>2]=c[f+24>>2];if(rb[c[d>>2]&31](D,j)|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[f+20>>2]=c[j+20>>2];c[f+24>>2]=c[j+24>>2];c[j>>2]=c[D>>2];c[j+4>>2]=c[D+4>>2];c[j+8>>2]=c[D+8>>2];c[j+12>>2]=c[D+12>>2];c[j+16>>2]=c[D+16>>2];c[j+20>>2]=c[D+20>>2];c[j+24>>2]=c[D+24>>2];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];c[D+16>>2]=c[f+16>>2];c[D+20>>2]=c[f+20>>2];c[D+24>>2]=c[f+24>>2];G=C+4|0}else G=C+3|0}else G=E}else G=F}else G=C}else{C=rb[c[d>>2]&31](B,j)|0;F=rb[c[d>>2]&31](h,B)|0;if(!C){if(!F){G=0;break}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];c[f+16>>2]=c[B+16>>2];c[f+20>>2]=c[B+20>>2];c[f+24>>2]=c[B+24>>2];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];c[B+16>>2]=c[h+16>>2];c[B+20>>2]=c[h+20>>2];c[B+24>>2]=c[h+24>>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];c[h+16>>2]=c[f+16>>2];c[h+20>>2]=c[f+20>>2];c[h+24>>2]=c[f+24>>2];if(!(rb[c[d>>2]&31](B,j)|0)){G=1;break}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[f+20>>2]=c[j+20>>2];c[f+24>>2]=c[j+24>>2];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];c[j+16>>2]=c[B+16>>2];c[j+20>>2]=c[B+20>>2];c[j+24>>2]=c[B+24>>2];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];c[B+16>>2]=c[f+16>>2];c[B+20>>2]=c[f+20>>2];c[B+24>>2]=c[f+24>>2];G=2;break}if(F){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[f+20>>2]=c[j+ +20>>2];c[f+24>>2]=c[j+24>>2];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[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];c[h+16>>2]=c[f+16>>2];c[h+20>>2]=c[f+20>>2];c[h+24>>2]=c[f+24>>2];G=1;break}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[f+20>>2]=c[j+20>>2];c[f+24>>2]=c[j+24>>2];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];c[j+16>>2]=c[B+16>>2];c[j+20>>2]=c[B+20>>2];c[j+24>>2]=c[B+24>>2];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];c[B+16>>2]=c[f+16>>2];c[B+20>>2]=c[f+20>>2];c[B+24>>2]=c[f+24>>2];if(rb[c[d>>2]&31](h,B)|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];c[f+16>>2]=c[B+16>>2];c[f+20>>2]=c[B+20>>2];c[f+24>>2]=c[B+24>>2];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];c[B+16>>2]=c[h+16>>2];c[B+20>>2]=c[h+20>>2];c[B+24>>2]=c[h+24>>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];c[h+16>>2]=c[f+16>>2];c[h+20>>2]=c[f+20>>2];c[h+24>>2]=c[f+24>>2];G=2}else G=1}while(0);do if(rb[c[d>>2]&31](j,B)|0){H=h;I=G}else{A=h;while(1){l=A+-28|0;if((j|0)==(l|0))break;if(rb[c[d>>2]&31](l,B)|0){J=l;p=51;break}else A=l}if((p|0)==51){p=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[f+20>>2]= +c[j+20>>2];c[f+24>>2]=c[j+24>>2];c[j>>2]=c[J>>2];c[j+4>>2]=c[J+4>>2];c[j+8>>2]=c[J+8>>2];c[j+12>>2]=c[J+12>>2];c[j+16>>2]=c[J+16>>2];c[j+20>>2]=c[J+20>>2];c[j+24>>2]=c[J+24>>2];c[J>>2]=c[f>>2];c[J+4>>2]=c[f+4>>2];c[J+8>>2]=c[f+8>>2];c[J+12>>2]=c[f+12>>2];c[J+16>>2]=c[f+16>>2];c[J+20>>2]=c[f+20>>2];c[J+24>>2]=c[f+24>>2];H=J;I=G+1|0;break}A=j+28|0;if(rb[c[d>>2]&31](j,h)|0)K=A;else{if((A|0)==(h|0)){p=69;break a}else{L=j;M=A}while(1){if(rb[c[d>>2]&31](j,M)|0){N=L;O=M;break}A=M+28|0;if((A|0)==(h|0)){p= +69;break a}else{l=M;M=A;L=l}}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];c[f+16>>2]=c[O+16>>2];c[f+20>>2]=c[O+20>>2];c[f+24>>2]=c[O+24>>2];c[O>>2]=c[h>>2];c[O+4>>2]=c[h+4>>2];c[O+8>>2]=c[h+8>>2];c[O+12>>2]=c[h+12>>2];c[O+16>>2]=c[h+16>>2];c[O+20>>2]=c[h+20>>2];c[O+24>>2]=c[h+24>>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];c[h+16>>2]=c[f+16>>2];c[h+20>>2]=c[f+20>>2];c[h+24>>2]=c[f+24>>2];K=N+56|0}if((K|0)==(h|0)){p=69;break a}else{P= +K;Q=h}while(1){l=P;while(1){A=l+28|0;if(rb[c[d>>2]&31](j,l)|0){R=A;S=l;break}else l=A}l=Q;while(1){A=l+-28|0;if(rb[c[d>>2]&31](j,A)|0)l=A;else{T=A;break}}if(S>>>0>=T>>>0){j=S;continue b}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];c[f+16>>2]=c[S+16>>2];c[f+20>>2]=c[S+20>>2];c[f+24>>2]=c[S+24>>2];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];c[S+16>>2]=c[T+16>>2];c[S+20>>2]=c[T+20>>2];c[S+24>>2]=c[T+24>>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];c[T+16>>2]=c[f+16>>2];c[T+20>>2]=c[f+20>>2];c[T+24>>2]=c[f+24>>2];P=R;Q=T}}while(0);l=j+28|0;c:do if(l>>>0>>0){A=l;F=H;C=B;E=I;while(1){D=A;while(1){U=D+28|0;if(rb[c[d>>2]&31](D,C)|0)D=U;else{V=U;W=D;break}}D=F;while(1){U=D+-28|0;if(rb[c[d>>2]&31](U,C)|0){X=U;break}else D=U}if(W>>>0>X>>>0){Y=W;Z=C;_=E;break c}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[f+16>>2]=c[W+16>>2];c[f+20>>2]=c[W+20>>2];c[f+24>>2]=c[W+24>> +2];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[W+16>>2]=c[X+16>>2];c[W+20>>2]=c[X+20>>2];c[W+24>>2]=c[X+24>>2];c[X>>2]=c[f>>2];c[X+4>>2]=c[f+4>>2];c[X+8>>2]=c[f+8>>2];c[X+12>>2]=c[f+12>>2];c[X+16>>2]=c[f+16>>2];c[X+20>>2]=c[f+20>>2];c[X+24>>2]=c[f+24>>2];A=V;F=X;C=(C|0)==(W|0)?X:C;E=E+1|0}}else{Y=l;Z=B;_=I}while(0);if((Y|0)!=(Z|0)?rb[c[d>>2]&31](Z,Y)|0:0){c[f>>2]=c[Y>>2];c[f+4>>2]=c[Y+4>>2];c[f+8>>2]=c[Y+8>>2];c[f+12>>2]=c[Y+12>>2];c[f+16>>2]=c[Y+16>>2];c[f+20>> +2]=c[Y+20>>2];c[f+24>>2]=c[Y+24>>2];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];c[Y+16>>2]=c[Z+16>>2];c[Y+20>>2]=c[Z+20>>2];c[Y+24>>2]=c[Z+24>>2];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[Z+16>>2]=c[f+16>>2];c[Z+20>>2]=c[f+20>>2];c[Z+24>>2]=c[f+24>>2];$=_+1|0}else $=_;if(!$){aa=dn(j,Y,d)|0;B=Y+28|0;if(dn(B,a,d)|0){p=64;break}if(aa){j=B;continue}}B=Y;if((B-k|0)>=(b-B|0)){ba=j;ca=Y;p=68;break}Tm(j,Y,d);j=Y+28|0}if((p|0)==64){p= +0;if(aa){p=69;break}else{g=j;a=Y;continue}}else if((p|0)==68){p=0;Tm(ca+28|0,a,d);g=ba;a=ca;continue}}if((p|0)==4){if(!(rb[c[d>>2]&31](n,m)|0)){i=e;return}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];c[f+16>>2]=c[m+16>>2];c[f+20>>2]=c[m+20>>2];c[f+24>>2]=c[m+24>>2];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];c[m+16>>2]=c[o+16>>2];c[m+20>>2]=c[o+20>>2];c[m+24>>2]=c[o+24>>2];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];c[o+16>>2]=c[f+16>>2];c[o+20>>2]=c[f+20>>2];c[o+24>>2]=c[f+24>>2];i=e;return}else if((p|0)==6){o=q+28|0;m=rb[c[d>>2]&31](o,q)|0;n=rb[c[d>>2]&31](r,o)|0;if(!m){if(!n){i=e;return}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];c[f+16>>2]=c[o+16>>2];c[f+20>>2]=c[o+20>>2];c[f+24>>2]=c[o+24>>2];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[o+16>>2]=c[s+16>>2];c[o+20>>2]=c[s+20>>2];c[o+24>>2]=c[s+24>>2];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];c[s+16>>2]=c[f+16>>2];c[s+20>>2]=c[f+20>>2];c[s+24>>2]=c[f+24>>2];if(!(rb[c[d>>2]&31](o,q)|0)){i=e;return}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[f+16>>2]=c[q+16>>2];c[f+20>>2]=c[q+20>>2];c[f+24>>2]=c[q+24>>2];c[q>>2]=c[o>>2];c[q+4>>2]=c[o+4>>2];c[q+8>>2]=c[o+8>>2];c[q+12>>2]=c[o+12>>2];c[q+16>>2]=c[o+16>>2];c[q+20>>2]=c[o+20>>2];c[q+24>>2]=c[o+24>>2];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];c[o+16>>2]=c[f+16>>2];c[o+20>>2]=c[f+20>>2];c[o+24>>2]=c[f+24>>2];i=e;return}if(n){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[f+16>>2]=c[q+16>>2];c[f+20>>2]=c[q+20>>2];c[f+24>>2]=c[q+24>>2];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];c[q+16>>2]=c[s+16>>2];c[q+20>>2]=c[s+20>>2];c[q+24>>2]=c[s+24>>2];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];c[s+16>>2]=c[f+16>>2];c[s+ +20>>2]=c[f+20>>2];c[s+24>>2]=c[f+24>>2];i=e;return}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[f+16>>2]=c[q+16>>2];c[f+20>>2]=c[q+20>>2];c[f+24>>2]=c[q+24>>2];c[q>>2]=c[o>>2];c[q+4>>2]=c[o+4>>2];c[q+8>>2]=c[o+8>>2];c[q+12>>2]=c[o+12>>2];c[q+16>>2]=c[o+16>>2];c[q+20>>2]=c[o+20>>2];c[q+24>>2]=c[o+24>>2];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];c[o+16>>2]=c[f+16>>2];c[o+20>>2]=c[f+20>>2];c[o+24>>2]=c[f+24>>2];if(!(rb[c[d>>2]&31](r, +o)|0)){i=e;return}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];c[f+16>>2]=c[o+16>>2];c[f+20>>2]=c[o+20>>2];c[f+24>>2]=c[o+24>>2];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[o+16>>2]=c[s+16>>2];c[o+20>>2]=c[s+20>>2];c[o+24>>2]=c[s+24>>2];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];c[s+16>>2]=c[f+16>>2];c[s+20>>2]=c[f+20>>2];c[s+24>>2]=c[f+24>>2];i=e;return}else if((p|0)==14){bn(t,t+28|0,t+56|0,u, +d)|0;i=e;return}else if((p|0)==15){u=v+28|0;t=v+56|0;s=v+84|0;bn(v,u,t,s,d)|0;if(!(rb[c[d>>2]&31](w,s)|0)){i=e;return}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];c[f+16>>2]=c[s+16>>2];c[f+20>>2]=c[s+20>>2];c[f+24>>2]=c[s+24>>2];c[s>>2]=c[x>>2];c[s+4>>2]=c[x+4>>2];c[s+8>>2]=c[x+8>>2];c[s+12>>2]=c[x+12>>2];c[s+16>>2]=c[x+16>>2];c[s+20>>2]=c[x+20>>2];c[s+24>>2]=c[x+24>>2];c[x>>2]=c[f>>2];c[x+4>>2]=c[f+4>>2];c[x+8>>2]=c[f+8>>2];c[x+12>>2]=c[f+12>>2];c[x+16>>2]=c[f+16>> +2];c[x+20>>2]=c[f+20>>2];c[x+24>>2]=c[f+24>>2];if(!(rb[c[d>>2]&31](s,t)|0)){i=e;return}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[f+16>>2]=c[t+16>>2];c[f+20>>2]=c[t+20>>2];c[f+24>>2]=c[t+24>>2];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];c[t+16>>2]=c[s+16>>2];c[t+20>>2]=c[s+20>>2];c[t+24>>2]=c[s+24>>2];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];c[s+16>>2]=c[f+16>>2];c[s+20>>2]=c[f+20>>2];c[s+ +24>>2]=c[f+24>>2];if(!(rb[c[d>>2]&31](t,u)|0)){i=e;return}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];c[f+16>>2]=c[u+16>>2];c[f+20>>2]=c[u+20>>2];c[f+24>>2]=c[u+24>>2];c[u>>2]=c[t>>2];c[u+4>>2]=c[t+4>>2];c[u+8>>2]=c[t+8>>2];c[u+12>>2]=c[t+12>>2];c[u+16>>2]=c[t+16>>2];c[u+20>>2]=c[t+20>>2];c[u+24>>2]=c[t+24>>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];c[t+16>>2]=c[f+16>>2];c[t+20>>2]=c[f+20>>2];c[t+24>>2]=c[f+24>>2];if(!(rb[c[d>> +2]&31](u,v)|0)){i=e;return}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];c[f+16>>2]=c[v+16>>2];c[f+20>>2]=c[v+20>>2];c[f+24>>2]=c[v+24>>2];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];c[v+16>>2]=c[u+16>>2];c[v+20>>2]=c[u+20>>2];c[v+24>>2]=c[u+24>>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];c[u+16>>2]=c[f+16>>2];c[u+20>>2]=c[f+20>>2];c[u+24>>2]=c[f+24>>2];i=e;return}else if((p|0)==21){cn(y,z,d);i= +e;return}else if((p|0)==69){i=e;return}}function Um(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;d=i;i=i+32|0;e=d+16|0;f=d+8|0;h=d;j=c[b>>2]|0;k=a+4|0;l=a+8|0;if((j|0)==(c[k>>2]|0)){m=c[l>>2]|0;c[l>>2]=m+1;if((m|0)>3){m=c[a+12>>2]|0;c[m>>2]=(c[m>>2]|0)+1;n=1;i=d;return n|0}}else{c[k>>2]=j;c[l>>2]=1}l=c[a>>2]|0;o=+g[l+32>>2]*(1-+g[b+12>>2]);k=c[l+96>>2]|0;p=+g[b+20>>2]*o+ +g[k+(j<<3)+4>>2];g[e>>2]=+g[k+(j<<3)>>2]+ +g[b+16>>2]*o;g[e+4>>2]=p;j=b+8|0;b=c[j>>2]|0;k=c[b+12>>2]|0;if(lb[c[(c[k>> +2]|0)+16>>2]&15](k,(c[b+8>>2]|0)+12|0,e)|0){n=0;i=d;return n|0}b=c[(c[j>>2]|0)+12>>2]|0;k=fb[c[(c[b>>2]|0)+12>>2]&7](b)|0;a:do if((k|0)>0){b=0;while(1){l=c[j>>2]|0;m=c[l+12>>2]|0;qb[c[(c[m>>2]|0)+20>>2]&7](m,(c[l+8>>2]|0)+12|0,e,f,h,b);b=b+1|0;if(+g[f>>2]<.004999999888241291){n=0;break}if((b|0)>=(k|0))break a}i=d;return n|0}while(0);k=c[a+12>>2]|0;c[k>>2]=(c[k>>2]|0)+1;n=1;i=d;return n|0}function Vm(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,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;e=a;a=b;a:while(1){b=a;f=a+-4|0;g=e;b:while(1){h=g;i=b-h|0;j=i>>2;switch(j|0){case 2:{k=g;l=f;m=4;break a;break}case 3:{n=g;o=f;m=6;break a;break}case 4:{p=g;q=f;m=14;break a;break}case 5:{r=g;s=f;m=15;break a;break}case 1:case 0:{m=75;break a;break}default:{}}if((i|0)<124){t=g;u=a;m=17;break a}v= +(j|0)/2|0;w=g+(v<<2)|0;do if((i|0)<=3996){x=c[d>>2]|0;y=c[w>>2]|0;z=c[g>>2]|0;A=c[x+(y<<2)>>2]|0;B=x+(z<<2)|0;C=c[B>>2]|0;D=(A|0)<1;E=c[f>>2]|0;F=c[x+(E<<2)>>2]|0;G=(F|0)<1;H=D^G?G:(F|0)>(A|0);if(!(D^(C|0)<1?D:(A|0)>(C|0))){if(!H){I=x;J=0;break}c[w>>2]=E;c[f>>2]=y;C=c[w>>2]|0;A=c[g>>2]|0;D=c[x+(C<<2)>>2]|0;F=c[x+(A<<2)>>2]|0;G=(D|0)<1;if(!(G^(F|0)<1?G:(D|0)>(F|0))){I=x;J=1;break}c[g>>2]=C;c[w>>2]=A;I=x;J=2;break}if(H){c[g>>2]=E;c[f>>2]=z;I=x;J=1;break}c[g>>2]=y;c[w>>2]=z;y=c[f>>2]|0;E=c[x+(y<<2)>> +2]|0;H=c[B>>2]|0;B=(E|0)<1;if(B^(H|0)<1?B:(E|0)>(H|0)){c[w>>2]=y;c[f>>2]=z;I=x;J=2}else{I=x;J=1}}else{x=(j|0)/4|0;z=Xm(g,g+(x<<2)|0,w,g+(x+v<<2)|0,f,d)|0;I=c[d>>2]|0;J=z}while(0);v=c[g>>2]|0;j=c[I+(v<<2)>>2]|0;i=c[I+(c[w>>2]<<2)>>2]|0;z=(j|0)<1;x=(i|0)<1;do if(z^x?z:(j|0)>(i|0)){K=f;L=J}else{y=f;while(1){H=y+-4|0;if((g|0)==(H|0))break;E=c[H>>2]|0;B=c[I+(E<<2)>>2]|0;A=(B|0)<1;if(A^x?A:(B|0)>(i|0)){M=E;N=H;m=57;break}else y=H}if((m|0)==57){m=0;c[g>>2]=M;c[N>>2]=v;K=N;L=J+1|0;break}y=g+4|0;H=c[f>>2]| +0;E=c[I+(H<<2)>>2]|0;if(z^(E|0)<1?z:(j|0)>(E|0))O=y;else{if((y|0)==(f|0)){m=75;break a}else{P=g;Q=y}while(1){y=c[Q>>2]|0;E=c[I+(y<<2)>>2]|0;if(z^(E|0)<1?z:(j|0)>(E|0)){R=P;S=y;T=Q;break}y=Q+4|0;if((y|0)==(f|0)){m=75;break a}else{E=Q;Q=y;P=E}}c[T>>2]=H;c[f>>2]=S;O=R+8|0}if((O|0)==(f|0)){m=75;break a}else{U=O;V=f}while(1){E=c[I+(c[g>>2]<<2)>>2]|0;y=(E|0)<1;B=U;while(1){A=c[B>>2]|0;C=c[I+(A<<2)>>2]|0;F=B+4|0;if(y^(C|0)<1?y:(E|0)>(C|0)){W=A;X=F;Y=B;break}else B=F}B=V;while(1){F=B+-4|0;A=c[F>>2]|0;C=c[I+ +(A<<2)>>2]|0;if(y^(C|0)<1?y:(E|0)>(C|0))B=F;else{Z=F;_=A;break}}if(Y>>>0>=Z>>>0){g=Y;continue b}c[Y>>2]=_;c[Z>>2]=W;U=X;V=Z}}while(0);j=g+4|0;c:do if(j>>>0>>0){z=j;v=K;i=w;x=L;while(1){H=c[I+(c[i>>2]<<2)>>2]|0;B=(H|0)<1;E=z;while(1){y=c[E>>2]|0;A=c[I+(y<<2)>>2]|0;F=(A|0)<1;C=E+4|0;if(F^B?F:(A|0)>(H|0))E=C;else{$=y;aa=C;ba=E;break}}E=v;while(1){C=E+-4|0;y=c[C>>2]|0;A=c[I+(y<<2)>>2]|0;F=(A|0)<1;if(F^B?F:(A|0)>(H|0)){ca=C;da=y;break}else E=C}if(ba>>>0>ca>>>0){ea=ba;fa=i;ga=x;break c}c[ba>>2]=da;c[ca>> +2]=$;z=aa;v=ca;i=(i|0)==(ba|0)?ca:i;x=x+1|0}}else{ea=j;fa=w;ga=L}while(0);if((ea|0)!=(fa|0)?(w=c[fa>>2]|0,j=c[ea>>2]|0,x=c[I+(w<<2)>>2]|0,i=c[I+(j<<2)>>2]|0,v=(x|0)<1,v^(i|0)<1?v:(x|0)>(i|0)):0){c[ea>>2]=w;c[fa>>2]=j;ha=ga+1|0}else ha=ga;if(!ha){ia=Ym(g,ea,d)|0;j=ea+4|0;if(Ym(j,a,d)|0){m=70;break}if(ia){g=j;continue}}j=ea;if((j-h|0)>=(b-j|0)){ja=g;ka=ea;m=74;break}Vm(g,ea,d);g=ea+4|0}if((m|0)==70){m=0;if(ia){m=75;break}else{e=g;a=ea;continue}}else if((m|0)==74){m=0;Vm(ka+4|0,a,d);e=ja;a=ka;continue}}if((m| +0)==4){ka=c[l>>2]|0;a=c[k>>2]|0;ja=c[d>>2]|0;e=c[ja+(ka<<2)>>2]|0;ea=c[ja+(a<<2)>>2]|0;ja=(e|0)<1;if(!(ja^(ea|0)<1?ja:(e|0)>(ea|0)))return;c[k>>2]=ka;c[l>>2]=a;return}else if((m|0)==6){a=n+4|0;l=c[d>>2]|0;ka=c[a>>2]|0;k=c[n>>2]|0;ea=c[l+(ka<<2)>>2]|0;e=l+(k<<2)|0;ja=c[e>>2]|0;ia=(ea|0)<1;ha=c[o>>2]|0;ga=c[l+(ha<<2)>>2]|0;fa=(ga|0)<1;I=ia^fa?fa:(ga|0)>(ea|0);if(!(ia^(ja|0)<1?ia:(ea|0)>(ja|0))){if(!I)return;c[a>>2]=ha;c[o>>2]=ka;ja=c[a>>2]|0;ea=c[n>>2]|0;ia=c[l+(ja<<2)>>2]|0;ga=c[l+(ea<<2)>>2]|0;fa= +(ia|0)<1;if(!(fa^(ga|0)<1?fa:(ia|0)>(ga|0)))return;c[n>>2]=ja;c[a>>2]=ea;return}if(I){c[n>>2]=ha;c[o>>2]=k;return}c[n>>2]=ka;c[a>>2]=k;ka=c[o>>2]|0;n=c[l+(ka<<2)>>2]|0;l=c[e>>2]|0;e=(n|0)<1;if(!(e^(l|0)<1?e:(n|0)>(l|0)))return;c[a>>2]=ka;c[o>>2]=k;return}else if((m|0)==14){Wm(p,p+4|0,p+8|0,q,c[d>>2]|0)|0;return}else if((m|0)==15){Xm(r,r+4|0,r+8|0,r+12|0,s,d)|0;return}else if((m|0)==17){s=c[d>>2]|0;d=t+8|0;r=t+4|0;q=c[r>>2]|0;p=c[t>>2]|0;k=c[s+(q<<2)>>2]|0;o=s+(p<<2)|0;ka=c[o>>2]|0;a=(k|0)<1;l=c[d>> +2]|0;n=s+(l<<2)|0;e=c[n>>2]|0;ha=(e|0)<1;I=a^ha?ha:(e|0)>(k|0);do if(a^(ka|0)<1?a:(k|0)>(ka|0)){if(I){c[t>>2]=l;c[d>>2]=p;la=p;break}c[t>>2]=q;c[r>>2]=p;e=c[n>>2]|0;ha=c[o>>2]|0;ea=(e|0)<1;if(ea^(ha|0)<1?ea:(e|0)>(ha|0)){c[r>>2]=l;c[d>>2]=p;la=p}else la=l}else if(I){c[r>>2]=l;c[d>>2]=q;ha=c[n>>2]|0;e=c[o>>2]|0;ea=(ha|0)<1;if(ea^(e|0)<1?ea:(ha|0)>(e|0)){c[t>>2]=l;c[r>>2]=p;la=q}else la=q}else la=l;while(0);l=t+12|0;if((l|0)==(u|0))return;else{ma=la;na=l;oa=d}while(1){d=c[na>>2]|0;l=s+(d<<2)|0;la=c[l>> +2]|0;q=c[s+(ma<<2)>>2]|0;p=(la|0)<1;if(p^(q|0)<1?p:(la|0)>(q|0)){q=ma;la=na;p=oa;while(1){c[la>>2]=q;if((p|0)==(t|0)){pa=t;break}r=p+-4|0;q=c[r>>2]|0;o=c[l>>2]|0;n=c[s+(q<<2)>>2]|0;I=(o|0)<1;if(!(I^(n|0)<1?I:(o|0)>(n|0))){pa=p;break}else{n=p;p=r;la=n}}c[pa>>2]=d}la=na+4|0;if((la|0)==(u|0))break;p=na;ma=c[na>>2]|0;na=la;oa=p}return}else if((m|0)==75)return}function Wm(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;g=c[b>>2]|0;h=c[a>>2]| +0;i=c[f+(g<<2)>>2]|0;j=f+(h<<2)|0;k=c[j>>2]|0;l=(i|0)<1;m=c[d>>2]|0;n=c[f+(m<<2)>>2]|0;o=(n|0)<1;p=l^o?o:(n|0)>(i|0);do if(l^(k|0)<1?l:(i|0)>(k|0)){if(p){c[a>>2]=m;c[d>>2]=h;q=1;r=h;break}c[a>>2]=g;c[b>>2]=h;n=c[d>>2]|0;o=c[f+(n<<2)>>2]|0;s=c[j>>2]|0;t=(o|0)<1;if(t^(s|0)<1?t:(o|0)>(s|0)){c[b>>2]=n;c[d>>2]=h;q=2;r=h}else{q=1;r=n}}else if(p){c[b>>2]=m;c[d>>2]=g;n=c[b>>2]|0;s=c[a>>2]|0;o=c[f+(n<<2)>>2]|0;t=c[f+(s<<2)>>2]|0;u=(o|0)<1;if(u^(t|0)<1?u:(o|0)>(t|0)){c[a>>2]=n;c[b>>2]=s;q=2;r=c[d>>2]|0}else{q= +1;r=g}}else{q=0;r=m}while(0);m=c[e>>2]|0;g=c[f+(m<<2)>>2]|0;p=c[f+(r<<2)>>2]|0;h=(g|0)<1;if(!(h^(p|0)<1?h:(g|0)>(p|0))){v=q;return v|0}c[d>>2]=m;c[e>>2]=r;r=c[d>>2]|0;e=c[b>>2]|0;m=c[f+(r<<2)>>2]|0;p=c[f+(e<<2)>>2]|0;g=(m|0)<1;if(!(g^(p|0)<1?g:(m|0)>(p|0))){v=q+1|0;return v|0}c[b>>2]=r;c[d>>2]=e;e=c[b>>2]|0;d=c[a>>2]|0;r=c[f+(e<<2)>>2]|0;p=c[f+(d<<2)>>2]|0;f=(r|0)<1;if(!(f^(p|0)<1?f:(r|0)>(p|0))){v=q+2|0;return v|0}c[a>>2]=e;c[b>>2]=d;v=q+3|0;return v|0}function Xm(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,k=0,l=0,m=0,n=0;h=Wm(a,b,d,e,c[g>>2]|0)|0;i=c[f>>2]|0;j=c[e>>2]|0;k=c[g>>2]|0;g=c[k+(i<<2)>>2]|0;l=c[k+(j<<2)>>2]|0;m=(g|0)<1;if(!(m^(l|0)<1?m:(g|0)>(l|0))){n=h;return n|0}c[e>>2]=i;c[f>>2]=j;j=c[e>>2]|0;f=c[d>>2]|0;i=c[k+(j<<2)>>2]|0;l=c[k+(f<<2)>>2]|0;g=(i|0)<1;if(!(g^(l|0)<1?g:(i|0)>(l|0))){n=h+1|0;return n|0}c[d>>2]=j;c[e>>2]=f;f=c[d>>2]|0;e=c[b>>2]|0;j=c[k+(f<<2)>>2]|0;l=c[k+(e<<2)>>2]|0;i=(j|0)<1;if(!(i^(l|0)<1?i:(j|0)>(l|0))){n=h+2|0;return n|0}c[b>>2]=f;c[d>> +2]=e;e=c[b>>2]|0;d=c[a>>2]|0;f=c[k+(e<<2)>>2]|0;l=c[k+(d<<2)>>2]|0;k=(f|0)<1;if(!(k^(l|0)<1?k:(f|0)>(l|0))){n=h+3|0;return n|0}c[a>>2]=e;c[b>>2]=d;n=h+4|0;return n|0}function Ym(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,v=0,w=0,x=0,y=0,z=0,A=0,B=0;switch(b-a>>2|0){case 2:{e=b+-4|0;f=c[e>>2]|0;g=c[a>>2]|0;h=c[d>>2]|0;i=c[h+(f<<2)>>2]|0;j=c[h+(g<<2)>>2]|0;h=(i|0)<1;if(!(h^(j|0)<1?h:(i|0)>(j|0))){k=1;return k|0}c[a>>2]=f;c[e>>2]=g;k=1;return k|0}case 3:{g= +a+4|0;e=b+-4|0;f=c[d>>2]|0;j=c[g>>2]|0;i=c[a>>2]|0;h=c[f+(j<<2)>>2]|0;l=f+(i<<2)|0;m=c[l>>2]|0;n=(h|0)<1;o=c[e>>2]|0;p=c[f+(o<<2)>>2]|0;q=(p|0)<1;r=n^q?q:(p|0)>(h|0);if(!(n^(m|0)<1?n:(h|0)>(m|0))){if(!r){k=1;return k|0}c[g>>2]=o;c[e>>2]=j;m=c[g>>2]|0;h=c[a>>2]|0;n=c[f+(m<<2)>>2]|0;p=c[f+(h<<2)>>2]|0;q=(n|0)<1;if(!(q^(p|0)<1?q:(n|0)>(p|0))){k=1;return k|0}c[a>>2]=m;c[g>>2]=h;k=1;return k|0}if(r){c[a>>2]=o;c[e>>2]=i;k=1;return k|0}c[a>>2]=j;c[g>>2]=i;j=c[e>>2]|0;o=c[f+(j<<2)>>2]|0;f=c[l>>2]|0;l=(o| +0)<1;if(!(l^(f|0)<1?l:(o|0)>(f|0))){k=1;return k|0}c[g>>2]=j;c[e>>2]=i;k=1;return k|0}case 4:{Wm(a,a+4|0,a+8|0,b+-4|0,c[d>>2]|0)|0;k=1;return k|0}case 5:{Xm(a,a+4|0,a+8|0,a+12|0,b+-4|0,d)|0;k=1;return k|0}case 1:case 0:{k=1;return k|0}default:{i=a+8|0;e=a+4|0;j=c[d>>2]|0;d=c[e>>2]|0;g=c[a>>2]|0;f=c[j+(d<<2)>>2]|0;o=j+(g<<2)|0;l=c[o>>2]|0;r=(f|0)<1;h=c[i>>2]|0;m=j+(h<<2)|0;p=c[m>>2]|0;n=(p|0)<1;q=r^n?n:(p|0)>(f|0);do if(r^(l|0)<1?r:(f|0)>(l|0)){if(q){c[a>>2]=h;c[i>>2]=g;s=g;break}c[a>>2]=d;c[e>>2]= +g;p=c[m>>2]|0;n=c[o>>2]|0;t=(p|0)<1;if(t^(n|0)<1?t:(p|0)>(n|0)){c[e>>2]=h;c[i>>2]=g;s=g}else s=h}else if(q){c[e>>2]=h;c[i>>2]=d;n=c[m>>2]|0;p=c[o>>2]|0;t=(n|0)<1;if(t^(p|0)<1?t:(n|0)>(p|0)){c[a>>2]=h;c[e>>2]=g;s=d}else s=d}else s=h;while(0);h=a+12|0;if((h|0)==(b|0)){k=1;return k|0}else{u=s;v=0;w=h;x=i}while(1){i=c[w>>2]|0;h=j+(i<<2)|0;s=c[h>>2]|0;d=c[j+(u<<2)>>2]|0;g=(s|0)<1;if(g^(d|0)<1?g:(s|0)>(d|0)){d=u;s=w;g=x;while(1){c[s>>2]=d;if((g|0)==(a|0)){y=a;break}e=g+-4|0;d=c[e>>2]|0;o=c[h>>2]|0;m=c[j+ +(d<<2)>>2]|0;q=(o|0)<1;if(!(q^(m|0)<1?q:(o|0)>(m|0))){y=g;break}else{m=g;g=e;s=m}}c[y>>2]=i;s=v+1|0;if((s|0)==8){z=w;break}else A=s}else A=v;s=w+4|0;if((s|0)==(b|0)){k=1;B=30;break}g=w;u=c[w>>2]|0;v=A;w=s;x=g}if((B|0)==30)return k|0;k=(z+4|0)==(b|0);return k|0}}return 0}function Zm(a){a=a|0;so(a);return}function _m(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;if(a[d+38>>0]|0)return 1;e=c[d+12>>2]|0;f=fb[c[(c[e>>2]|0)+12>>2]&7](e)|0;if((f| +0)<=0)return 1;e=d+24|0;h=b+4|0;i=0;do{j=c[e>>2]|0;k=c[h>>2]|0;l=+g[k+36>>2];m=(~~(+g[j+(i*28|0)+4>>2]*l+-1+2048)>>>0<<20)+(~~((+g[j+(i*28|0)>>2]*l+-1)*256+524288)>>>0)|0;n=+g[j+(i*28|0)+12>>2]*l+1+2048;o=(+g[j+(i*28|0)+8>>2]*l+1)*256+524288;j=c[k+200>>2]|0;p=c[k+204>>2]|0;k=j;q=p<<3>>3;a:while(1){r=q;while(1){if(!r){s=k;break a}t=(r|0)/2|0;if((c[k+(t<<3)+4>>2]|0)>>>0>>0){u=t;v=r;break}else r=t}k=k+(u+1<<3)|0;q=v+-1-u|0}q=(~~n>>>0<<20)+(~~o>>>0)|0;k=s;r=j+(p<<3)-s>>3;b:while(1){t=r;while(1){if(!t){w= +k;break b}x=(t|0)/2|0;if((c[k+(x<<3)+4>>2]|0)>>>0>q>>>0)t=x;else{y=x;z=t;break}}k=k+(y+1<<3)|0;r=z+-1-y|0}r=m&1048575;k=q&1048575;c:do if(s>>>0>>0){p=s;while(1){j=c[p+4>>2]&1048575;t=p;p=p+8|0;if(j>>>0>>0|j>>>0>k>>>0)if(p>>>0>>0){p=p;continue}else break;j=c[t>>2]|0;if((j|0)<=-1)break c;tb[c[(c[b>>2]|0)+20>>2]&31](b,d,i,j);if(p>>>0>=w>>>0)break}}while(0);i=i+1|0}while((i|0)!=(f|0));return 1}function $m(a,b){a=a|0;b=b|0;return 0}function an(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;h=i;i=i+48|0;j=h+24|0;l=h;m=c[b+36>>2]|0;n=b+4|0;if(((m|0)!=0?(o=c[n>>2]|0,(c[(c[o+88>>2]|0)+(f<<2)>>2]&65536|0)!=0):0)?!(pb[c[(c[m>>2]|0)+12>>2]&7](m,d,o,f)|0):0){i=h;return}o=c[d+8>>2]|0;m=c[n>>2]|0;p=c[m+96>>2]|0;q=c[p+(f<<3)>>2]|0;r=c[p+(f<<3)+4>>2]|0;p=c[m+104>>2]|0;s=+g[p+(f<<3)>>2];t=+g[p+(f<<3)+4>>2];if(!(c[m+24>>2]|0)){u=(c[k>>2]=q,+g[k>>2]);v=u-+g[o+28>>2];w=(c[k>>2]=r,+g[k>>2]);x= +w-+g[o+32>>2];y=+g[o+40>>2];z=+g[o+36>>2];A=v*y+x*z;B=y*x-v*z;m=c[d+12>>2]|0;if(!(c[m+4>>2]|0)){v=+g[o+44>>2];x=A-v;C=+g[o+48>>2];D=B-C;E=x*y-D*z;F=y*D+x*z;z=+g[o+24>>2];x=+g[o+20>>2];G=C+(z*F-E*x);H=v+(z*E+x*F);I=z;J=x}else{G=B;H=A;I=+g[o+24>>2];J=+g[o+20>>2]}A=G*I+H*J+ +g[o+16>>2];g[l>>2]=+g[o+12>>2]+(H*I-G*J);g[l+4>>2]=A;K=u;L=w;M=m}else{c[l>>2]=q;c[l+4>>2]=r;w=(c[k>>2]=q,+g[k>>2]);K=w;L=(c[k>>2]=r,+g[k>>2]);M=c[d+12>>2]|0}w=+g[b+8>>2];d=l+8|0;g[d>>2]=K+s*w;r=l+12|0;g[r>>2]=L+t*w;g[l+16>>2]=1; +if(!(sb[c[(c[M>>2]|0)+24>>2]&15](M,j,l,o+12|0,e)|0)){i=h;return}w=+g[j+8>>2];u=1-w;e=b+12|0;A=+g[e>>2];J=A*(+g[j>>2]*.004999999888241291+(+g[l>>2]*u+w*+g[d>>2])-K);K=A*(+g[j+4>>2]*.004999999888241291+(u*+g[l+4>>2]+w*+g[r>>2])-L);r=c[(c[n>>2]|0)+104>>2]|0;g[r+(f<<3)>>2]=J;g[r+(f<<3)+4>>2]=K;r=c[n>>2]|0;L=+g[r+32>>2]*.75;w=+g[e>>2]*(L*(+g[r+320>>2]*L));L=(s-J)*w;J=(t-K)*w;if(!(L!=0|J!=0)){i=h;return}if(c[(c[r+88>>2]|0)+(f<<2)>>2]&4){i=h;return}e=r+21|0;n=r+112|0;if(!(a[e>>0]|0)){xp(c[n>>2]|0,0,c[r+ +44>>2]<<3|0)|0;a[e>>0]=1}e=c[n>>2]|0;n=e+(f<<3)|0;g[n>>2]=L+ +g[n>>2];n=e+(f<<3)+4|0;g[n>>2]=J+ +g[n>>2];i=h;return}function bn(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+32|0;h=g;j=rb[c[f>>2]&31](b,a)|0;k=rb[c[f>>2]&31](d,b)|0;do if(j){if(k){c[h>>2]=c[a>>2];c[h+4>>2]=c[a+4>>2];c[h+8>>2]=c[a+8>>2];c[h+12>>2]=c[a+12>>2];c[h+16>>2]=c[a+16>>2];c[h+20>>2]=c[a+20>>2];c[h+24>>2]=c[a+24>>2];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];c[a+ +16>>2]=c[d+16>>2];c[a+20>>2]=c[d+20>>2];c[a+24>>2]=c[d+24>>2];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];c[d+16>>2]=c[h+16>>2];c[d+20>>2]=c[h+20>>2];c[d+24>>2]=c[h+24>>2];l=1;break}c[h>>2]=c[a>>2];c[h+4>>2]=c[a+4>>2];c[h+8>>2]=c[a+8>>2];c[h+12>>2]=c[a+12>>2];c[h+16>>2]=c[a+16>>2];c[h+20>>2]=c[a+20>>2];c[h+24>>2]=c[a+24>>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[a+16>>2]=c[b+16>>2];c[a+20>>2]=c[b+20>>2];c[a+24>>2]=c[b+24>> +2];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];c[b+16>>2]=c[h+16>>2];c[b+20>>2]=c[h+20>>2];c[b+24>>2]=c[h+24>>2];if(rb[c[f>>2]&31](d,b)|0){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];c[h+16>>2]=c[b+16>>2];c[h+20>>2]=c[b+20>>2];c[h+24>>2]=c[b+24>>2];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[b+16>>2]=c[d+16>>2];c[b+20>>2]=c[d+20>>2];c[b+24>>2]=c[d+24>>2];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];c[d+16>>2]=c[h+16>>2];c[d+20>>2]=c[h+20>>2];c[d+24>>2]=c[h+24>>2];l=2}else l=1}else if(k){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];c[h+16>>2]=c[b+16>>2];c[h+20>>2]=c[b+20>>2];c[h+24>>2]=c[b+24>>2];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[b+16>>2]=c[d+16>>2];c[b+20>>2]=c[d+20>>2];c[b+24>>2]=c[d+24>>2];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];c[d+16>> +2]=c[h+16>>2];c[d+20>>2]=c[h+20>>2];c[d+24>>2]=c[h+24>>2];if(rb[c[f>>2]&31](b,a)|0){c[h>>2]=c[a>>2];c[h+4>>2]=c[a+4>>2];c[h+8>>2]=c[a+8>>2];c[h+12>>2]=c[a+12>>2];c[h+16>>2]=c[a+16>>2];c[h+20>>2]=c[a+20>>2];c[h+24>>2]=c[a+24>>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[a+16>>2]=c[b+16>>2];c[a+20>>2]=c[b+20>>2];c[a+24>>2]=c[b+24>>2];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];c[b+16>>2]=c[h+16>>2];c[b+20>>2]=c[h+20>>2];c[b+24>> +2]=c[h+24>>2];l=2}else l=1}else l=0;while(0);if(!(rb[c[f>>2]&31](e,d)|0)){m=l;i=g;return m|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];c[h+16>>2]=c[d+16>>2];c[h+20>>2]=c[d+20>>2];c[h+24>>2]=c[d+24>>2];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];c[d+16>>2]=c[e+16>>2];c[d+20>>2]=c[e+20>>2];c[d+24>>2]=c[e+24>>2];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];c[e+16>>2]=c[h+16>>2];c[e+20>>2]=c[h+20>>2]; +c[e+24>>2]=c[h+24>>2];if(!(rb[c[f>>2]&31](d,b)|0)){m=l+1|0;i=g;return m|0}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];c[h+16>>2]=c[b+16>>2];c[h+20>>2]=c[b+20>>2];c[h+24>>2]=c[b+24>>2];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[b+16>>2]=c[d+16>>2];c[b+20>>2]=c[d+20>>2];c[b+24>>2]=c[d+24>>2];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];c[d+16>>2]=c[h+16>>2];c[d+20>>2]=c[h+20>>2];c[d+24>>2]=c[h+24>> +2];if(!(rb[c[f>>2]&31](b,a)|0)){m=l+2|0;i=g;return m|0}c[h>>2]=c[a>>2];c[h+4>>2]=c[a+4>>2];c[h+8>>2]=c[a+8>>2];c[h+12>>2]=c[a+12>>2];c[h+16>>2]=c[a+16>>2];c[h+20>>2]=c[a+20>>2];c[h+24>>2]=c[a+24>>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[a+16>>2]=c[b+16>>2];c[a+20>>2]=c[b+20>>2];c[a+24>>2]=c[b+24>>2];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];c[b+16>>2]=c[h+16>>2];c[b+20>>2]=c[h+20>>2];c[b+24>>2]=c[h+24>>2];m=l+3|0;i=g;return m| +0}function cn(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,l=0,m=0,n=0;e=i;i=i+64|0;f=e+28|0;g=e;h=a+56|0;j=a+28|0;k=rb[c[d>>2]&31](j,a)|0;l=rb[c[d>>2]&31](h,j)|0;do if(k){if(l){c[f>>2]=c[a>>2];c[f+4>>2]=c[a+4>>2];c[f+8>>2]=c[a+8>>2];c[f+12>>2]=c[a+12>>2];c[f+16>>2]=c[a+16>>2];c[f+20>>2]=c[a+20>>2];c[f+24>>2]=c[a+24>>2];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];c[a+16>>2]=c[h+16>>2];c[a+20>>2]=c[h+20>>2];c[a+24>>2]=c[h+24>>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];c[h+16>>2]=c[f+16>>2];c[h+20>>2]=c[f+20>>2];c[h+24>>2]=c[f+24>>2];break}c[f>>2]=c[a>>2];c[f+4>>2]=c[a+4>>2];c[f+8>>2]=c[a+8>>2];c[f+12>>2]=c[a+12>>2];c[f+16>>2]=c[a+16>>2];c[f+20>>2]=c[a+20>>2];c[f+24>>2]=c[a+24>>2];c[a>>2]=c[j>>2];c[a+4>>2]=c[j+4>>2];c[a+8>>2]=c[j+8>>2];c[a+12>>2]=c[j+12>>2];c[a+16>>2]=c[j+16>>2];c[a+20>>2]=c[j+20>>2];c[a+24>>2]=c[j+24>>2];c[j>>2]=c[f>>2];c[j+4>>2]=c[f+4>>2];c[j+8>>2]=c[f+8>>2];c[j+12>>2]=c[f+12>>2];c[j+16>>2]=c[f+ +16>>2];c[j+20>>2]=c[f+20>>2];c[j+24>>2]=c[f+24>>2];if(rb[c[d>>2]&31](h,j)|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[f+20>>2]=c[j+20>>2];c[f+24>>2]=c[j+24>>2];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[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];c[h+16>>2]=c[f+16>>2];c[h+20>>2]=c[f+20>>2];c[h+24>>2]=c[f+ +24>>2]}}else if(l?(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[f+20>>2]=c[j+20>>2],c[f+24>>2]=c[j+24>>2],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[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],c[h+16>>2]=c[f+16>>2],c[h+20>>2]=c[f+20>>2],c[h+24>>2]=c[f+24>>2],rb[c[d>>2]&31](j,a)|0):0){c[f>>2]=c[a>>2];c[f+4>>2]= +c[a+4>>2];c[f+8>>2]=c[a+8>>2];c[f+12>>2]=c[a+12>>2];c[f+16>>2]=c[a+16>>2];c[f+20>>2]=c[a+20>>2];c[f+24>>2]=c[a+24>>2];c[a>>2]=c[j>>2];c[a+4>>2]=c[j+4>>2];c[a+8>>2]=c[j+8>>2];c[a+12>>2]=c[j+12>>2];c[a+16>>2]=c[j+16>>2];c[a+20>>2]=c[j+20>>2];c[a+24>>2]=c[j+24>>2];c[j>>2]=c[f>>2];c[j+4>>2]=c[f+4>>2];c[j+8>>2]=c[f+8>>2];c[j+12>>2]=c[f+12>>2];c[j+16>>2]=c[f+16>>2];c[j+20>>2]=c[f+20>>2];c[j+24>>2]=c[f+24>>2]}while(0);f=a+84|0;if((f|0)==(b|0)){i=e;return}j=f;f=h;while(1){if(rb[c[d>>2]&31](j,f)|0){c[g>>2]= +c[j>>2];c[g+4>>2]=c[j+4>>2];c[g+8>>2]=c[j+8>>2];c[g+12>>2]=c[j+12>>2];c[g+16>>2]=c[j+16>>2];c[g+20>>2]=c[j+20>>2];c[g+24>>2]=c[j+24>>2];h=j;l=f;while(1){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];c[h+16>>2]=c[l+16>>2];c[h+20>>2]=c[l+20>>2];c[h+24>>2]=c[l+24>>2];if((l|0)==(a|0)){m=l;break}k=l+-28|0;if(rb[c[d>>2]&31](g,k)|0){n=l;l=k;h=n}else{m=l;break}}c[m>>2]=c[g>>2];c[m+4>>2]=c[g+4>>2];c[m+8>>2]=c[g+8>>2];c[m+12>>2]=c[g+12>>2];c[m+16>>2]=c[g+16>>2];c[m+20>>2]=c[g+ +20>>2];c[m+24>>2]=c[g+24>>2]}l=j+28|0;if((l|0)==(b|0))break;else{h=j;j=l;f=h}}i=e;return}function dn(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,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;e=i;i=i+64|0;f=e+28|0;g=e;switch((b-a|0)/28|0|0){case 2:{h=b+-28|0;if(!(rb[c[d>>2]&31](h,a)|0)){j=1;i=e;return j|0}c[f>>2]=c[a>>2];c[f+4>>2]=c[a+4>>2];c[f+8>>2]=c[a+8>>2];c[f+12>>2]=c[a+12>>2];c[f+16>>2]=c[a+16>>2];c[f+20>>2]=c[a+20>>2];c[f+24>>2]=c[a+24>>2];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];c[a+16>>2]=c[h+16>>2];c[a+20>>2]=c[h+20>>2];c[a+24>>2]=c[h+24>>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];c[h+16>>2]=c[f+16>>2];c[h+20>>2]=c[f+20>>2];c[h+24>>2]=c[f+24>>2];j=1;i=e;return j|0}case 3:{h=a+28|0;k=b+-28|0;l=rb[c[d>>2]&31](h,a)|0;m=rb[c[d>>2]&31](k,h)|0;if(!l){if(!m){j=1;i=e;return j|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];c[f+16>>2]=c[h+16>>2];c[f+20>>2]=c[h+20>>2];c[f+24>>2]=c[h+24>>2]; +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[h+16>>2]=c[k+16>>2];c[h+20>>2]=c[k+20>>2];c[h+24>>2]=c[k+24>>2];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[k+16>>2]=c[f+16>>2];c[k+20>>2]=c[f+20>>2];c[k+24>>2]=c[f+24>>2];if(!(rb[c[d>>2]&31](h,a)|0)){j=1;i=e;return j|0}c[f>>2]=c[a>>2];c[f+4>>2]=c[a+4>>2];c[f+8>>2]=c[a+8>>2];c[f+12>>2]=c[a+12>>2];c[f+16>>2]=c[a+16>>2];c[f+20>>2]=c[a+20>>2];c[f+24>>2]=c[a+24>>2];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];c[a+16>>2]=c[h+16>>2];c[a+20>>2]=c[h+20>>2];c[a+24>>2]=c[h+24>>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];c[h+16>>2]=c[f+16>>2];c[h+20>>2]=c[f+20>>2];c[h+24>>2]=c[f+24>>2];j=1;i=e;return j|0}if(m){c[f>>2]=c[a>>2];c[f+4>>2]=c[a+4>>2];c[f+8>>2]=c[a+8>>2];c[f+12>>2]=c[a+12>>2];c[f+16>>2]=c[a+16>>2];c[f+20>>2]=c[a+20>>2];c[f+24>>2]=c[a+24>>2];c[a>>2]=c[k>>2];c[a+4>>2]=c[k+4>>2];c[a+8>>2]=c[k+8>>2];c[a+12>>2]= +c[k+12>>2];c[a+16>>2]=c[k+16>>2];c[a+20>>2]=c[k+20>>2];c[a+24>>2]=c[k+24>>2];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[k+16>>2]=c[f+16>>2];c[k+20>>2]=c[f+20>>2];c[k+24>>2]=c[f+24>>2];j=1;i=e;return j|0}c[f>>2]=c[a>>2];c[f+4>>2]=c[a+4>>2];c[f+8>>2]=c[a+8>>2];c[f+12>>2]=c[a+12>>2];c[f+16>>2]=c[a+16>>2];c[f+20>>2]=c[a+20>>2];c[f+24>>2]=c[a+24>>2];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];c[a+16>>2]=c[h+16>>2];c[a+20>>2]=c[h+20>> +2];c[a+24>>2]=c[h+24>>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];c[h+16>>2]=c[f+16>>2];c[h+20>>2]=c[f+20>>2];c[h+24>>2]=c[f+24>>2];if(!(rb[c[d>>2]&31](k,h)|0)){j=1;i=e;return j|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];c[f+16>>2]=c[h+16>>2];c[f+20>>2]=c[h+20>>2];c[f+24>>2]=c[h+24>>2];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[h+16>>2]=c[k+16>>2];c[h+20>>2]=c[k+20>>2];c[h+24>>2]=c[k+24>> +2];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[k+16>>2]=c[f+16>>2];c[k+20>>2]=c[f+20>>2];c[k+24>>2]=c[f+24>>2];j=1;i=e;return j|0}case 4:{bn(a,a+28|0,a+56|0,b+-28|0,d)|0;j=1;i=e;return j|0}case 5:{k=a+28|0;h=a+56|0;m=a+84|0;l=b+-28|0;bn(a,k,h,m,d)|0;if(!(rb[c[d>>2]&31](l,m)|0)){j=1;i=e;return j|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];c[f+16>>2]=c[m+16>>2];c[f+20>>2]=c[m+20>>2];c[f+24>>2]=c[m+24>>2];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];c[m+16>>2]=c[l+16>>2];c[m+20>>2]=c[l+20>>2];c[m+24>>2]=c[l+24>>2];c[l>>2]=c[f>>2];c[l+4>>2]=c[f+4>>2];c[l+8>>2]=c[f+8>>2];c[l+12>>2]=c[f+12>>2];c[l+16>>2]=c[f+16>>2];c[l+20>>2]=c[f+20>>2];c[l+24>>2]=c[f+24>>2];if(!(rb[c[d>>2]&31](m,h)|0)){j=1;i=e;return j|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];c[f+16>>2]=c[h+16>>2];c[f+20>>2]=c[h+20>>2];c[f+24>>2]=c[h+24>>2];c[h>>2]=c[m>>2];c[h+4>>2]=c[m+4>>2];c[h+8>>2]= +c[m+8>>2];c[h+12>>2]=c[m+12>>2];c[h+16>>2]=c[m+16>>2];c[h+20>>2]=c[m+20>>2];c[h+24>>2]=c[m+24>>2];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];c[m+16>>2]=c[f+16>>2];c[m+20>>2]=c[f+20>>2];c[m+24>>2]=c[f+24>>2];if(!(rb[c[d>>2]&31](h,k)|0)){j=1;i=e;return j|0}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];c[f+16>>2]=c[k+16>>2];c[f+20>>2]=c[k+20>>2];c[f+24>>2]=c[k+24>>2];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];c[k+16>>2]=c[h+16>>2];c[k+20>>2]=c[h+20>>2];c[k+24>>2]=c[h+24>>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];c[h+16>>2]=c[f+16>>2];c[h+20>>2]=c[f+20>>2];c[h+24>>2]=c[f+24>>2];if(!(rb[c[d>>2]&31](k,a)|0)){j=1;i=e;return j|0}c[f>>2]=c[a>>2];c[f+4>>2]=c[a+4>>2];c[f+8>>2]=c[a+8>>2];c[f+12>>2]=c[a+12>>2];c[f+16>>2]=c[a+16>>2];c[f+20>>2]=c[a+20>>2];c[f+24>>2]=c[a+24>>2];c[a>>2]=c[k>>2];c[a+4>>2]=c[k+4>>2];c[a+8>>2]=c[k+8>>2];c[a+12>>2]=c[k+12>>2];c[a+16>>2]= +c[k+16>>2];c[a+20>>2]=c[k+20>>2];c[a+24>>2]=c[k+24>>2];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[k+16>>2]=c[f+16>>2];c[k+20>>2]=c[f+20>>2];c[k+24>>2]=c[f+24>>2];j=1;i=e;return j|0}case 1:case 0:{j=1;i=e;return j|0}default:{k=a+56|0;h=a+28|0;m=rb[c[d>>2]&31](h,a)|0;l=rb[c[d>>2]&31](k,h)|0;do if(m){if(l){c[f>>2]=c[a>>2];c[f+4>>2]=c[a+4>>2];c[f+8>>2]=c[a+8>>2];c[f+12>>2]=c[a+12>>2];c[f+16>>2]=c[a+16>>2];c[f+20>>2]=c[a+20>>2];c[f+24>>2]=c[a+24>>2];c[a>>2]=c[k>>2]; +c[a+4>>2]=c[k+4>>2];c[a+8>>2]=c[k+8>>2];c[a+12>>2]=c[k+12>>2];c[a+16>>2]=c[k+16>>2];c[a+20>>2]=c[k+20>>2];c[a+24>>2]=c[k+24>>2];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[k+16>>2]=c[f+16>>2];c[k+20>>2]=c[f+20>>2];c[k+24>>2]=c[f+24>>2];break}c[f>>2]=c[a>>2];c[f+4>>2]=c[a+4>>2];c[f+8>>2]=c[a+8>>2];c[f+12>>2]=c[a+12>>2];c[f+16>>2]=c[a+16>>2];c[f+20>>2]=c[a+20>>2];c[f+24>>2]=c[a+24>>2];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];c[a+ +16>>2]=c[h+16>>2];c[a+20>>2]=c[h+20>>2];c[a+24>>2]=c[h+24>>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];c[h+16>>2]=c[f+16>>2];c[h+20>>2]=c[f+20>>2];c[h+24>>2]=c[f+24>>2];if(rb[c[d>>2]&31](k,h)|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];c[f+16>>2]=c[h+16>>2];c[f+20>>2]=c[h+20>>2];c[f+24>>2]=c[h+24>>2];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[h+16>>2]=c[k+16>>2];c[h+20>>2]=c[k+20>>2];c[h+ +24>>2]=c[k+24>>2];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[k+16>>2]=c[f+16>>2];c[k+20>>2]=c[f+20>>2];c[k+24>>2]=c[f+24>>2]}}else if(l?(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],c[f+16>>2]=c[h+16>>2],c[f+20>>2]=c[h+20>>2],c[f+24>>2]=c[h+24>>2],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[h+16>>2]=c[k+16>>2],c[h+20>>2]=c[k+20>>2],c[h+24>>2]=c[k+24>>2],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[k+16>>2]=c[f+16>>2],c[k+20>>2]=c[f+20>>2],c[k+24>>2]=c[f+24>>2],rb[c[d>>2]&31](h,a)|0):0){c[f>>2]=c[a>>2];c[f+4>>2]=c[a+4>>2];c[f+8>>2]=c[a+8>>2];c[f+12>>2]=c[a+12>>2];c[f+16>>2]=c[a+16>>2];c[f+20>>2]=c[a+20>>2];c[f+24>>2]=c[a+24>>2];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];c[a+16>>2]=c[h+16>>2];c[a+20>>2]=c[h+20>>2];c[a+24>>2]=c[h+24>>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];c[h+16>> +2]=c[f+16>>2];c[h+20>>2]=c[f+20>>2];c[h+24>>2]=c[f+24>>2]}while(0);f=a+84|0;if((f|0)==(b|0)){j=1;i=e;return j|0}h=0;l=f;f=k;while(1){if(rb[c[d>>2]&31](l,f)|0){c[g>>2]=c[l>>2];c[g+4>>2]=c[l+4>>2];c[g+8>>2]=c[l+8>>2];c[g+12>>2]=c[l+12>>2];c[g+16>>2]=c[l+16>>2];c[g+20>>2]=c[l+20>>2];c[g+24>>2]=c[l+24>>2];k=l;m=f;while(1){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];c[k+16>>2]=c[m+16>>2];c[k+20>>2]=c[m+20>>2];c[k+24>>2]=c[m+24>>2];if((m|0)==(a|0)){n=m;break}o=m+-28|0; +if(rb[c[d>>2]&31](g,o)|0){p=m;m=o;k=p}else{n=m;break}}c[n>>2]=c[g>>2];c[n+4>>2]=c[g+4>>2];c[n+8>>2]=c[g+8>>2];c[n+12>>2]=c[g+12>>2];c[n+16>>2]=c[g+16>>2];c[n+20>>2]=c[g+20>>2];c[n+24>>2]=c[g+24>>2];m=h+1|0;if((m|0)==8){q=l;break}else r=m}else r=h;m=l+28|0;if((m|0)==(b|0)){j=1;s=35;break}else{k=l;h=r;l=m;f=k}}if((s|0)==35){i=e;return j|0}j=(q+28|0)==(b|0);i=e;return j|0}}return 0}function en(a){a=a|0;so(a);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,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;f=i;i=i+32|0;h=f;j=f+16|0;k=f+8|0;l=a+4|0;m=(c[(c[l>>2]|0)+96>>2]|0)+(e<<3)|0;n=c[m+4>>2]|0;o=h;c[o>>2]=c[m>>2];c[o+4>>2]=n;n=c[b+12>>2]|0;o=b+8|0;qb[c[(c[n>>2]|0)+20>>2]&7](n,(c[o>>2]|0)+12|0,h,j,k,d);d=c[l>>2]|0;if(!(+g[j>>2]<+g[d+32>>2])){i=f;return}n=c[a+8>>2]|0;do if((n|0)!=0?(c[(c[d+88>>2]|0)+(e<<2)>>2]&65536|0)!=0:0)if(pb[c[(c[n>>2]|0)+12>>2]&7](n,b,d,e)|0){p=c[l>>2]|0;break}else{i=f;return}else p=d;while(0);d=c[o>>2]|0;q=+g[d+ +132>>2];r=+g[d+44>>2];s=+g[d+48>>2];t=q*(r*r+s*s);s=+g[d+140>>2]+t-t;if(!(c[(c[p+88>>2]|0)+(e<<2)>>2]&4)){t=+g[p+36>>2]*1.3333333730697632;u=t*(+g[p+28>>2]*t)}else u=0;o=k+4|0;t=+g[o>>2];r=+g[k>>2];v=(+g[h>>2]-+g[d+60>>2])*t-(+g[h+4>>2]-+g[d+64>>2])*r;w=(q>0?1/q:0)+u+v*((s>0?1/s:0)*v);h=p+232|0;n=p+236|0;a=c[n>>2]|0;m=p+240|0;x=c[m>>2]|0;if((a|0)>=(x|0)?(y=(x|0)==0?256:x<<1,(x|0)<(y|0)):0){x=p+244|0;z=Sn(c[x>>2]|0,y*28|0)|0;A=c[h>>2]|0;if(!A)B=h;else{Bp(z|0,A|0,(c[n>>2]|0)*28|0)|0;Tn(c[x>>2]|0,c[h>> +2]|0,(c[m>>2]|0)*28|0);B=h}c[m>>2]=y;c[B>>2]=z;C=c[n>>2]|0;D=c[l>>2]|0;E=+g[k>>2];F=+g[o>>2]}else{C=a;D=p;E=r;F=t}c[n>>2]=C+1;n=c[h>>2]|0;c[n+(C*28|0)>>2]=e;c[n+(C*28|0)+4>>2]=d;c[n+(C*28|0)+8>>2]=b;g[n+(C*28|0)+12>>2]=1-+g[j>>2]*+g[D+36>>2];g[n+(C*28|0)+16>>2]=-E;g[n+(C*28|0)+20>>2]=-F;g[n+(C*28|0)+24>>2]=w>0?1/w:0;mm(c[l>>2]|0,e);i=f;return}function gn(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,k=0,l=0,m=0,n=0,o=0,p=0,q=0;h=rb[c[g>>2]&31](b,a)|0;i=rb[c[g>>2]&31](d,b)|0;do if(h){j= +a;k=c[j>>2]|0;l=c[j+4>>2]|0;if(i){j=d;m=c[j+4>>2]|0;n=a;c[n>>2]=c[j>>2];c[n+4>>2]=m;m=d;c[m>>2]=k;c[m+4>>2]=l;o=1;break}m=b;n=c[m+4>>2]|0;j=a;c[j>>2]=c[m>>2];c[j+4>>2]=n;n=b;c[n>>2]=k;c[n+4>>2]=l;if(rb[c[g>>2]&31](d,b)|0){l=b;n=c[l>>2]|0;k=c[l+4>>2]|0;l=d;j=c[l+4>>2]|0;m=b;c[m>>2]=c[l>>2];c[m+4>>2]=j;j=d;c[j>>2]=n;c[j+4>>2]=k;o=2}else o=1}else if(i){k=b;j=c[k>>2]|0;n=c[k+4>>2]|0;k=d;m=c[k+4>>2]|0;l=b;c[l>>2]=c[k>>2];c[l+4>>2]=m;m=d;c[m>>2]=j;c[m+4>>2]=n;if(rb[c[g>>2]&31](b,a)|0){n=a;m=c[n>>2]|0;j= +c[n+4>>2]|0;n=b;l=c[n+4>>2]|0;k=a;c[k>>2]=c[n>>2];c[k+4>>2]=l;l=b;c[l>>2]=m;c[l+4>>2]=j;o=2}else o=1}else o=0;while(0);if(rb[c[g>>2]&31](e,d)|0){i=d;h=c[i>>2]|0;j=c[i+4>>2]|0;i=e;l=c[i+4>>2]|0;m=d;c[m>>2]=c[i>>2];c[m+4>>2]=l;l=e;c[l>>2]=h;c[l+4>>2]=j;j=o+1|0;if(rb[c[g>>2]&31](d,b)|0){l=b;h=c[l>>2]|0;m=c[l+4>>2]|0;l=d;i=c[l+4>>2]|0;k=b;c[k>>2]=c[l>>2];c[k+4>>2]=i;i=d;c[i>>2]=h;c[i+4>>2]=m;if(rb[c[g>>2]&31](b,a)|0){m=a;i=c[m>>2]|0;h=c[m+4>>2]|0;m=b;k=c[m+4>>2]|0;l=a;c[l>>2]=c[m>>2];c[l+4>>2]=k;k=b; +c[k>>2]=i;c[k+4>>2]=h;p=o+3|0}else p=o+2|0}else p=j}else p=o;if(!(rb[c[g>>2]&31](f,e)|0)){q=p;return q|0}o=e;j=c[o>>2]|0;h=c[o+4>>2]|0;o=f;k=c[o+4>>2]|0;i=e;c[i>>2]=c[o>>2];c[i+4>>2]=k;k=f;c[k>>2]=j;c[k+4>>2]=h;if(!(rb[c[g>>2]&31](e,d)|0)){q=p+1|0;return q|0}h=d;k=c[h>>2]|0;j=c[h+4>>2]|0;h=e;f=c[h+4>>2]|0;i=d;c[i>>2]=c[h>>2];c[i+4>>2]=f;f=e;c[f>>2]=k;c[f+4>>2]=j;if(!(rb[c[g>>2]&31](d,b)|0)){q=p+2|0;return q|0}j=b;f=c[j>>2]|0;k=c[j+4>>2]|0;j=d;e=c[j+4>>2]|0;i=b;c[i>>2]=c[j>>2];c[i+4>>2]=e;e=d;c[e>> +2]=f;c[e+4>>2]=k;if(!(rb[c[g>>2]&31](b,a)|0)){q=p+3|0;return q|0}g=a;k=c[g>>2]|0;e=c[g+4>>2]|0;g=b;f=c[g+4>>2]|0;d=a;c[d>>2]=c[g>>2];c[d+4>>2]=f;f=b;c[f>>2]=k;c[f+4>>2]=e;q=p+4|0;return q|0}function hn(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,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+16|0;f=e;switch(b-a>>3|0){case 2:{g=b+-8|0;if(!(rb[c[d>>2]&31](g,a)|0)){h=1;i=e;return h|0}j=a;k=c[j>>2]|0;l=c[j+4>>2]|0;j=g;m=c[j+4>>2]|0;n=a;c[n>>2]=c[j>>2];c[n+4>>2]=m;m=g;c[m>>2]= +k;c[m+4>>2]=l;h=1;i=e;return h|0}case 3:{l=a+8|0;m=b+-8|0;k=rb[c[d>>2]&31](l,a)|0;g=rb[c[d>>2]&31](m,l)|0;if(!k){if(!g){h=1;i=e;return h|0}k=l;n=c[k>>2]|0;j=c[k+4>>2]|0;k=m;o=c[k+4>>2]|0;p=l;c[p>>2]=c[k>>2];c[p+4>>2]=o;o=m;c[o>>2]=n;c[o+4>>2]=j;if(!(rb[c[d>>2]&31](l,a)|0)){h=1;i=e;return h|0}j=a;o=c[j>>2]|0;n=c[j+4>>2]|0;j=l;p=c[j+4>>2]|0;k=a;c[k>>2]=c[j>>2];c[k+4>>2]=p;p=l;c[p>>2]=o;c[p+4>>2]=n;h=1;i=e;return h|0}n=a;p=c[n>>2]|0;o=c[n+4>>2]|0;if(g){g=m;n=c[g+4>>2]|0;k=a;c[k>>2]=c[g>>2];c[k+4>>2]= +n;n=m;c[n>>2]=p;c[n+4>>2]=o;h=1;i=e;return h|0}n=l;k=c[n+4>>2]|0;g=a;c[g>>2]=c[n>>2];c[g+4>>2]=k;k=l;c[k>>2]=p;c[k+4>>2]=o;if(!(rb[c[d>>2]&31](m,l)|0)){h=1;i=e;return h|0}o=l;k=c[o>>2]|0;p=c[o+4>>2]|0;o=m;g=c[o+4>>2]|0;n=l;c[n>>2]=c[o>>2];c[n+4>>2]=g;g=m;c[g>>2]=k;c[g+4>>2]=p;h=1;i=e;return h|0}case 4:{p=a+8|0;g=a+16|0;k=b+-8|0;m=rb[c[d>>2]&31](p,a)|0;n=rb[c[d>>2]&31](g,p)|0;do if(m){o=a;l=c[o>>2]|0;j=c[o+4>>2]|0;if(n){o=g;q=c[o+4>>2]|0;r=a;c[r>>2]=c[o>>2];c[r+4>>2]=q;q=g;c[q>>2]=l;c[q+4>>2]=j;break}q= +p;r=c[q+4>>2]|0;o=a;c[o>>2]=c[q>>2];c[o+4>>2]=r;r=p;c[r>>2]=l;c[r+4>>2]=j;if(rb[c[d>>2]&31](g,p)|0){j=p;r=c[j>>2]|0;l=c[j+4>>2]|0;j=g;o=c[j+4>>2]|0;q=p;c[q>>2]=c[j>>2];c[q+4>>2]=o;o=g;c[o>>2]=r;c[o+4>>2]=l}}else if(n?(l=p,o=c[l>>2]|0,r=c[l+4>>2]|0,l=g,q=c[l+4>>2]|0,j=p,c[j>>2]=c[l>>2],c[j+4>>2]=q,q=g,c[q>>2]=o,c[q+4>>2]=r,rb[c[d>>2]&31](p,a)|0):0){r=a;q=c[r>>2]|0;o=c[r+4>>2]|0;r=p;j=c[r+4>>2]|0;l=a;c[l>>2]=c[r>>2];c[l+4>>2]=j;j=p;c[j>>2]=q;c[j+4>>2]=o}while(0);if(!(rb[c[d>>2]&31](k,g)|0)){h=1;i=e; +return h|0}n=g;m=c[n>>2]|0;o=c[n+4>>2]|0;n=k;j=c[n+4>>2]|0;q=g;c[q>>2]=c[n>>2];c[q+4>>2]=j;j=k;c[j>>2]=m;c[j+4>>2]=o;if(!(rb[c[d>>2]&31](g,p)|0)){h=1;i=e;return h|0}o=p;j=c[o>>2]|0;m=c[o+4>>2]|0;o=g;k=c[o+4>>2]|0;q=p;c[q>>2]=c[o>>2];c[q+4>>2]=k;k=g;c[k>>2]=j;c[k+4>>2]=m;if(!(rb[c[d>>2]&31](p,a)|0)){h=1;i=e;return h|0}m=a;k=c[m>>2]|0;j=c[m+4>>2]|0;m=p;g=c[m+4>>2]|0;q=a;c[q>>2]=c[m>>2];c[q+4>>2]=g;g=p;c[g>>2]=k;c[g+4>>2]=j;h=1;i=e;return h|0}case 5:{gn(a,a+8|0,a+16|0,a+24|0,b+-8|0,d)|0;h=1;i=e;return h| +0}case 1:case 0:{h=1;i=e;return h|0}default:{j=a+16|0;g=a+8|0;k=rb[c[d>>2]&31](g,a)|0;p=rb[c[d>>2]&31](j,g)|0;do if(k){q=a;m=c[q>>2]|0;o=c[q+4>>2]|0;if(p){q=j;n=c[q+4>>2]|0;l=a;c[l>>2]=c[q>>2];c[l+4>>2]=n;n=j;c[n>>2]=m;c[n+4>>2]=o;break}n=g;l=c[n+4>>2]|0;q=a;c[q>>2]=c[n>>2];c[q+4>>2]=l;l=g;c[l>>2]=m;c[l+4>>2]=o;if(rb[c[d>>2]&31](j,g)|0){o=g;l=c[o>>2]|0;m=c[o+4>>2]|0;o=j;q=c[o+4>>2]|0;n=g;c[n>>2]=c[o>>2];c[n+4>>2]=q;q=j;c[q>>2]=l;c[q+4>>2]=m}}else if(p?(m=g,q=c[m>>2]|0,l=c[m+4>>2]|0,m=j,n=c[m+4>>2]| +0,o=g,c[o>>2]=c[m>>2],c[o+4>>2]=n,n=j,c[n>>2]=q,c[n+4>>2]=l,rb[c[d>>2]&31](g,a)|0):0){l=a;n=c[l>>2]|0;q=c[l+4>>2]|0;l=g;o=c[l+4>>2]|0;m=a;c[m>>2]=c[l>>2];c[m+4>>2]=o;o=g;c[o>>2]=n;c[o+4>>2]=q}while(0);g=a+24|0;if((g|0)==(b|0)){h=1;i=e;return h|0}else{s=0;t=g;u=j}while(1){if(rb[c[d>>2]&31](t,u)|0){j=t;g=c[j+4>>2]|0;p=f;c[p>>2]=c[j>>2];c[p+4>>2]=g;g=t;p=u;while(1){j=p;k=c[j+4>>2]|0;q=g;c[q>>2]=c[j>>2];c[q+4>>2]=k;if((p|0)==(a|0)){v=p;break}k=p+-8|0;if(rb[c[d>>2]&31](f,k)|0){q=p;p=k;g=q}else{v=p;break}}p= +f;g=c[p+4>>2]|0;q=v;c[q>>2]=c[p>>2];c[q+4>>2]=g;g=s+1|0;if((g|0)==8){w=t;break}else x=g}else x=s;g=t+8|0;if((g|0)==(b|0)){h=1;y=41;break}else{q=t;s=x;t=g;u=q}}if((y|0)==41){i=e;return h|0}h=(w+8|0)==(b|0);i=e;return h|0}}return 0}function jn(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,k=0,l=0,m=0,n=0,o=0,p=0,q=0;h=rb[c[g>>2]&31](b,a)|0;i=rb[c[g>>2]&31](d,b)|0;do if(h){j=a;k=c[j>>2]|0;l=c[j+4>>2]|0;if(i){j=d;m=c[j+4>>2]|0;n=a;c[n>>2]=c[j>>2];c[n+4>>2]=m;m=d;c[m>>2]=k;c[m+4>>2]= +l;o=1;break}m=b;n=c[m+4>>2]|0;j=a;c[j>>2]=c[m>>2];c[j+4>>2]=n;n=b;c[n>>2]=k;c[n+4>>2]=l;if(rb[c[g>>2]&31](d,b)|0){l=b;n=c[l>>2]|0;k=c[l+4>>2]|0;l=d;j=c[l+4>>2]|0;m=b;c[m>>2]=c[l>>2];c[m+4>>2]=j;j=d;c[j>>2]=n;c[j+4>>2]=k;o=2}else o=1}else if(i){k=b;j=c[k>>2]|0;n=c[k+4>>2]|0;k=d;m=c[k+4>>2]|0;l=b;c[l>>2]=c[k>>2];c[l+4>>2]=m;m=d;c[m>>2]=j;c[m+4>>2]=n;if(rb[c[g>>2]&31](b,a)|0){n=a;m=c[n>>2]|0;j=c[n+4>>2]|0;n=b;l=c[n+4>>2]|0;k=a;c[k>>2]=c[n>>2];c[k+4>>2]=l;l=b;c[l>>2]=m;c[l+4>>2]=j;o=2}else o=1}else o= +0;while(0);if(rb[c[g>>2]&31](e,d)|0){i=d;h=c[i>>2]|0;j=c[i+4>>2]|0;i=e;l=c[i+4>>2]|0;m=d;c[m>>2]=c[i>>2];c[m+4>>2]=l;l=e;c[l>>2]=h;c[l+4>>2]=j;j=o+1|0;if(rb[c[g>>2]&31](d,b)|0){l=b;h=c[l>>2]|0;m=c[l+4>>2]|0;l=d;i=c[l+4>>2]|0;k=b;c[k>>2]=c[l>>2];c[k+4>>2]=i;i=d;c[i>>2]=h;c[i+4>>2]=m;if(rb[c[g>>2]&31](b,a)|0){m=a;i=c[m>>2]|0;h=c[m+4>>2]|0;m=b;k=c[m+4>>2]|0;l=a;c[l>>2]=c[m>>2];c[l+4>>2]=k;k=b;c[k>>2]=i;c[k+4>>2]=h;p=o+3|0}else p=o+2|0}else p=j}else p=o;if(!(rb[c[g>>2]&31](f,e)|0)){q=p;return q|0}o=e; +j=c[o>>2]|0;h=c[o+4>>2]|0;o=f;k=c[o+4>>2]|0;i=e;c[i>>2]=c[o>>2];c[i+4>>2]=k;k=f;c[k>>2]=j;c[k+4>>2]=h;if(!(rb[c[g>>2]&31](e,d)|0)){q=p+1|0;return q|0}h=d;k=c[h>>2]|0;j=c[h+4>>2]|0;h=e;f=c[h+4>>2]|0;i=d;c[i>>2]=c[h>>2];c[i+4>>2]=f;f=e;c[f>>2]=k;c[f+4>>2]=j;if(!(rb[c[g>>2]&31](d,b)|0)){q=p+2|0;return q|0}j=b;f=c[j>>2]|0;k=c[j+4>>2]|0;j=d;e=c[j+4>>2]|0;i=b;c[i>>2]=c[j>>2];c[i+4>>2]=e;e=d;c[e>>2]=f;c[e+4>>2]=k;if(!(rb[c[g>>2]&31](b,a)|0)){q=p+3|0;return q|0}g=a;k=c[g>>2]|0;e=c[g+4>>2]|0;g=b;f=c[g+4>> +2]|0;d=a;c[d>>2]=c[g>>2];c[d+4>>2]=f;f=b;c[f>>2]=k;c[f+4>>2]=e;q=p+4|0;return q|0}function kn(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,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+16|0;f=e;switch(b-a>>3|0){case 2:{g=b+-8|0;if(!(rb[c[d>>2]&31](g,a)|0)){h=1;i=e;return h|0}j=a;k=c[j>>2]|0;l=c[j+4>>2]|0;j=g;m=c[j+4>>2]|0;n=a;c[n>>2]=c[j>>2];c[n+4>>2]=m;m=g;c[m>>2]=k;c[m+4>>2]=l;h=1;i=e;return h|0}case 3:{l=a+8|0;m=b+-8|0;k=rb[c[d>>2]&31](l,a)|0;g=rb[c[d>>2]&31](m,l)|0;if(!k){if(!g){h= +1;i=e;return h|0}k=l;n=c[k>>2]|0;j=c[k+4>>2]|0;k=m;o=c[k+4>>2]|0;p=l;c[p>>2]=c[k>>2];c[p+4>>2]=o;o=m;c[o>>2]=n;c[o+4>>2]=j;if(!(rb[c[d>>2]&31](l,a)|0)){h=1;i=e;return h|0}j=a;o=c[j>>2]|0;n=c[j+4>>2]|0;j=l;p=c[j+4>>2]|0;k=a;c[k>>2]=c[j>>2];c[k+4>>2]=p;p=l;c[p>>2]=o;c[p+4>>2]=n;h=1;i=e;return h|0}n=a;p=c[n>>2]|0;o=c[n+4>>2]|0;if(g){g=m;n=c[g+4>>2]|0;k=a;c[k>>2]=c[g>>2];c[k+4>>2]=n;n=m;c[n>>2]=p;c[n+4>>2]=o;h=1;i=e;return h|0}n=l;k=c[n+4>>2]|0;g=a;c[g>>2]=c[n>>2];c[g+4>>2]=k;k=l;c[k>>2]=p;c[k+4>>2]= +o;if(!(rb[c[d>>2]&31](m,l)|0)){h=1;i=e;return h|0}o=l;k=c[o>>2]|0;p=c[o+4>>2]|0;o=m;g=c[o+4>>2]|0;n=l;c[n>>2]=c[o>>2];c[n+4>>2]=g;g=m;c[g>>2]=k;c[g+4>>2]=p;h=1;i=e;return h|0}case 4:{p=a+8|0;g=a+16|0;k=b+-8|0;m=rb[c[d>>2]&31](p,a)|0;n=rb[c[d>>2]&31](g,p)|0;do if(m){o=a;l=c[o>>2]|0;j=c[o+4>>2]|0;if(n){o=g;q=c[o+4>>2]|0;r=a;c[r>>2]=c[o>>2];c[r+4>>2]=q;q=g;c[q>>2]=l;c[q+4>>2]=j;break}q=p;r=c[q+4>>2]|0;o=a;c[o>>2]=c[q>>2];c[o+4>>2]=r;r=p;c[r>>2]=l;c[r+4>>2]=j;if(rb[c[d>>2]&31](g,p)|0){j=p;r=c[j>>2]|0; +l=c[j+4>>2]|0;j=g;o=c[j+4>>2]|0;q=p;c[q>>2]=c[j>>2];c[q+4>>2]=o;o=g;c[o>>2]=r;c[o+4>>2]=l}}else if(n?(l=p,o=c[l>>2]|0,r=c[l+4>>2]|0,l=g,q=c[l+4>>2]|0,j=p,c[j>>2]=c[l>>2],c[j+4>>2]=q,q=g,c[q>>2]=o,c[q+4>>2]=r,rb[c[d>>2]&31](p,a)|0):0){r=a;q=c[r>>2]|0;o=c[r+4>>2]|0;r=p;j=c[r+4>>2]|0;l=a;c[l>>2]=c[r>>2];c[l+4>>2]=j;j=p;c[j>>2]=q;c[j+4>>2]=o}while(0);if(!(rb[c[d>>2]&31](k,g)|0)){h=1;i=e;return h|0}n=g;m=c[n>>2]|0;o=c[n+4>>2]|0;n=k;j=c[n+4>>2]|0;q=g;c[q>>2]=c[n>>2];c[q+4>>2]=j;j=k;c[j>>2]=m;c[j+4>>2]= +o;if(!(rb[c[d>>2]&31](g,p)|0)){h=1;i=e;return h|0}o=p;j=c[o>>2]|0;m=c[o+4>>2]|0;o=g;k=c[o+4>>2]|0;q=p;c[q>>2]=c[o>>2];c[q+4>>2]=k;k=g;c[k>>2]=j;c[k+4>>2]=m;if(!(rb[c[d>>2]&31](p,a)|0)){h=1;i=e;return h|0}m=a;k=c[m>>2]|0;j=c[m+4>>2]|0;m=p;g=c[m+4>>2]|0;q=a;c[q>>2]=c[m>>2];c[q+4>>2]=g;g=p;c[g>>2]=k;c[g+4>>2]=j;h=1;i=e;return h|0}case 5:{jn(a,a+8|0,a+16|0,a+24|0,b+-8|0,d)|0;h=1;i=e;return h|0}case 1:case 0:{h=1;i=e;return h|0}default:{j=a+16|0;g=a+8|0;k=rb[c[d>>2]&31](g,a)|0;p=rb[c[d>>2]&31](j,g)|0; +do if(k){q=a;m=c[q>>2]|0;o=c[q+4>>2]|0;if(p){q=j;n=c[q+4>>2]|0;l=a;c[l>>2]=c[q>>2];c[l+4>>2]=n;n=j;c[n>>2]=m;c[n+4>>2]=o;break}n=g;l=c[n+4>>2]|0;q=a;c[q>>2]=c[n>>2];c[q+4>>2]=l;l=g;c[l>>2]=m;c[l+4>>2]=o;if(rb[c[d>>2]&31](j,g)|0){o=g;l=c[o>>2]|0;m=c[o+4>>2]|0;o=j;q=c[o+4>>2]|0;n=g;c[n>>2]=c[o>>2];c[n+4>>2]=q;q=j;c[q>>2]=l;c[q+4>>2]=m}}else if(p?(m=g,q=c[m>>2]|0,l=c[m+4>>2]|0,m=j,n=c[m+4>>2]|0,o=g,c[o>>2]=c[m>>2],c[o+4>>2]=n,n=j,c[n>>2]=q,c[n+4>>2]=l,rb[c[d>>2]&31](g,a)|0):0){l=a;n=c[l>>2]|0;q=c[l+ +4>>2]|0;l=g;o=c[l+4>>2]|0;m=a;c[m>>2]=c[l>>2];c[m+4>>2]=o;o=g;c[o>>2]=n;c[o+4>>2]=q}while(0);g=a+24|0;if((g|0)==(b|0)){h=1;i=e;return h|0}else{s=0;t=g;u=j}while(1){if(rb[c[d>>2]&31](t,u)|0){j=t;g=c[j+4>>2]|0;p=f;c[p>>2]=c[j>>2];c[p+4>>2]=g;g=t;p=u;while(1){j=p;k=c[j+4>>2]|0;q=g;c[q>>2]=c[j>>2];c[q+4>>2]=k;if((p|0)==(a|0)){v=p;break}k=p+-8|0;if(rb[c[d>>2]&31](f,k)|0){q=p;p=k;g=q}else{v=p;break}}p=f;g=c[p+4>>2]|0;q=v;c[q>>2]=c[p>>2];c[q+4>>2]=g;g=s+1|0;if((g|0)==8){w=t;break}else x=g}else x=s;g=t+8| +0;if((g|0)==(b|0)){h=1;y=41;break}else{q=t;s=x;t=g;u=q}}if((y|0)==41){i=e;return h|0}h=(w+8|0)==(b|0);i=e;return h|0}}return 0}function ln(a){a=a|0;return}function mn(a){a=a|0;so(a);return}function nn(a,b){a=a|0;b=b|0;return(c[(c[a+4>>2]|0)+(b<<2)>>2]&4096|0)!=0|0}function on(a,b,c){a=a|0;b=b|0;c=c|0;return 1}function pn(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return 1}function qn(a){a=a|0;so(a);return}function rn(a,b){a=a|0;b=b|0;return 1}function sn(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=c[a+4>>2]|0;a=(e| +0)<=(b|0);b=(e|0)>(d|0);if(a|b)return b&a|0;else return 1;return 0}function tn(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;f=c[a+4>>2]|0;a=(f|0)>(b|0);b=(f|0)>(d|0);if((f|0)>(e|0)|(a|b))return(f|0)<=(e|0)|a&b^1|0;else return 0;return 0}function un(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;switch(e|0){case 1:{g=f;h=a;i=g+60|0;do{c[g>>2]=c[h>>2];g=g+4|0;h=h+4|0}while((g|0)<(i|0));return}case 2:{j=b+-60|0;if(rb[c[d>>2]&31](j, +a)|0){g=f;h=j;i=g+60|0;do{c[g>>2]=c[h>>2];g=g+4|0;h=h+4|0}while((g|0)<(i|0));g=f+60|0;h=a;i=g+60|0;do{c[g>>2]=c[h>>2];g=g+4|0;h=h+4|0}while((g|0)<(i|0));return}else{g=f;h=a;i=g+60|0;do{c[g>>2]=c[h>>2];g=g+4|0;h=h+4|0}while((g|0)<(i|0));g=f+60|0;h=j;i=g+60|0;do{c[g>>2]=c[h>>2];g=g+4|0;h=h+4|0}while((g|0)<(i|0));return}break}case 0:return;default:{if((e|0)<9){if((a|0)==(b|0))return;g=f;h=a;i=g+60|0;do{c[g>>2]=c[h>>2];g=g+4|0;h=h+4|0}while((g|0)<(i|0));j=a+60|0;if((j|0)==(b|0))return;else{k=j;l=f}do{j= +l;l=l+60|0;if(rb[c[d>>2]&31](k,j)|0){g=l;h=j;i=g+60|0;do{c[g>>2]=c[h>>2];g=g+4|0;h=h+4|0}while((g|0)<(i|0));a:do if((j|0)==(f|0))m=f;else{n=j;while(1){o=n;n=n+-60|0;if(!(rb[c[d>>2]&31](k,n)|0)){m=o;break a}g=o;h=n;i=g+60|0;do{c[g>>2]=c[h>>2];g=g+4|0;h=h+4|0}while((g|0)<(i|0));if((n|0)==(f|0)){m=f;break}}}while(0);g=m;h=k;i=g+60|0;do{c[g>>2]=c[h>>2];g=g+4|0;h=h+4|0}while((g|0)<(i|0))}else{g=l;h=k;i=g+60|0;do{c[g>>2]=c[h>>2];g=g+4|0;h=h+4|0}while((g|0)<(i|0))}k=k+60|0}while((k|0)!=(b|0));return}k=(e| +0)/2|0;l=a+(k*60|0)|0;Nm(a,l,d,k,f,k);m=e-k|0;Nm(l,b,d,m,f+(k*60|0)|0,m);b:do if((e+1|0)>>>0<3){p=l;q=f}else{m=l;k=a;j=f;while(1){if((m|0)==(b|0)){r=k;s=j;break}if(rb[c[d>>2]&31](m,k)|0){g=j;h=m;i=g+60|0;do{c[g>>2]=c[h>>2];g=g+4|0;h=h+4|0}while((g|0)<(i|0));t=k;u=m+60|0}else{g=j;h=k;i=g+60|0;do{c[g>>2]=c[h>>2];g=g+4|0;h=h+4|0}while((g|0)<(i|0));t=k+60|0;u=m}n=j+60|0;if((t|0)==(l|0)){p=u;q=n;break b}else{m=u;k=t;j=n}}if((r|0)==(l|0))return;else{v=r;w=s}while(1){g=w;h=v;i=g+60|0;do{c[g>>2]=c[h>>2]; +g=g+4|0;h=h+4|0}while((g|0)<(i|0));v=v+60|0;if((v|0)==(l|0))break;else w=w+60|0}return}while(0);if((p|0)==(b|0))return;else{x=p;y=q}while(1){g=y;h=x;i=g+60|0;do{c[g>>2]=c[h>>2];g=g+4|0;h=h+4|0}while((g|0)<(i|0));x=x+60|0;if((x|0)==(b|0))break;else y=y+60|0}return}}}function vn(a,b,d,e,f,g,h,j){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|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,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,Ea=0,Fa=0,Ga=0,Ha=0,Ia=0,Ja=0,Ka=0,La=0;k=i;i=i+64|0;l=k;if((g|0)==0|(f|0)==0){i=k;return}m=a;a=b;b=d;d=f;f=g;a:while(1){g=b;n=a;o=d;p=m;q=f;while(1){r=p;s=o;while(1){if(rb[c[e>>2]&31](n,r)|0){t=r;u=s;break}s=s+-1|0;if(!s){v=68;break a}else r=r+60|0}if(!((q|0)>(j|0)&(u|0)>(j|0))){w=n;x=b;y=q;z=t;A=u;B=g;v=8;break a}if((u|0)<(q| +0)){r=(q|0)/2|0;s=n+(r*60|0)|0;C=t;D=t;E=(n-C|0)/60|0;b:while(1){F=E;while(1){if(!F){G=D;break b}H=(F|0)/2|0;if(rb[c[e>>2]&31](s,D+(H*60|0)|0)|0)F=H;else{I=H;J=F;break}}D=D+((I+1|0)*60|0)|0;E=J+-1-I|0}K=G;L=s;M=(G-C|0)/60|0;N=r}else{if((u|0)==1){O=n;P=t;v=43;break a}E=(u|0)/2|0;D=t+(E*60|0)|0;F=n;H=n;Q=(g-F|0)/60|0;c:while(1){R=Q;while(1){if(!R){S=H;break c}T=(R|0)/2|0;if(rb[c[e>>2]&31](H+(T*60|0)|0,D)|0){U=T;V=R;break}else R=T}H=H+((U+1|0)*60|0)|0;Q=V+-1-U|0}K=D;L=S;M=E;N=(S-F|0)/60|0}o=u-M|0;Q= +q;q=q-N|0;d:do if((K|0)!=(n|0))if((n|0)==(L|0))W=K;else{if((K+60|0)==(n|0)){X=l;Y=K;Z=X+60|0;do{c[X>>2]=c[Y>>2];X=X+4|0;Y=Y+4|0}while((X|0)<(Z|0));H=L-n|0;Cp(K|0,n|0,H|0)|0;r=K+(((H|0)/60|0)*60|0)|0;X=r;Y=l;Z=X+60|0;do{c[X>>2]=c[Y>>2];X=X+4|0;Y=Y+4|0}while((X|0)<(Z|0));W=r;break}if((n+60|0)==(L|0)){H=L+-60|0;X=l;Y=H;Z=X+60|0;do{c[X>>2]=c[Y>>2];X=X+4|0;Y=Y+4|0}while((X|0)<(Z|0));r=H-K|0;C=L+(((r|0)/-60|0)*60|0)|0;Cp(C|0,K|0,r|0)|0;X=K;Y=l;Z=X+60|0;do{c[X>>2]=c[Y>>2];X=X+4|0;Y=Y+4|0}while((X|0)<(Z| +0));W=C;break}H=n;r=(H-K|0)/60|0;s=L;R=(s-H|0)/60|0;if((r|0)==(R|0)){H=K;T=n;while(1){X=l;Y=H;Z=X+60|0;do{c[X>>2]=c[Y>>2];X=X+4|0;Y=Y+4|0}while((X|0)<(Z|0));X=H;Y=T;Z=X+60|0;do{c[X>>2]=c[Y>>2];X=X+4|0;Y=Y+4|0}while((X|0)<(Z|0));X=T;Y=l;Z=X+60|0;do{c[X>>2]=c[Y>>2];X=X+4|0;Y=Y+4|0}while((X|0)<(Z|0));H=H+60|0;if((H|0)==(n|0)){W=n;break d}else T=T+60|0}}else{_=r;$=R}while(1){T=(_|0)%($|0)|0;if(!T){aa=$;break}else{H=$;$=T;_=H}}if(aa){H=r+-1|0;T=K+(aa*60|0)|0;do{C=T;T=T+-60|0;X=l;Y=T;Z=X+60|0;do{c[X>>2]= +c[Y>>2];X=X+4|0;Y=Y+4|0}while((X|0)<(Z|0));ba=T;ca=C+(H*60|0)|0;while(1){X=ba;Y=ca;Z=X+60|0;do{c[X>>2]=c[Y>>2];X=X+4|0;Y=Y+4|0}while((X|0)<(Z|0));da=(s-ca|0)/60|0;ea=(r|0)<(da|0)?ca+(r*60|0)|0:K+((r-da|0)*60|0)|0;if((ea|0)==(T|0)){fa=ca;break}else{da=ca;ca=ea;ba=da}}X=fa;Y=l;Z=X+60|0;do{c[X>>2]=c[Y>>2];X=X+4|0;Y=Y+4|0}while((X|0)<(Z|0))}while((T|0)!=(K|0))}W=K+(R*60|0)|0}else W=L;while(0);if((N+M|0)>=(q+o|0)){ga=W;ha=K;ia=L;ja=t;ka=o;la=q;ma=M;na=N;break}vn(t,K,W,e,M,N,h,j);if((Q|0)==(N|0)|(u|0)== +(M|0)){v=68;break a}else{n=L;p=W}}vn(ga,ia,b,e,ka,la,h,j);if((na|0)==0|(ma|0)==0){v=68;break}else{m=ja;a=ha;b=ga;d=ma;f=na}}if((v|0)==8){na=z;f=w;if((A|0)<=(y|0)){e:do if((z|0)!=(w|0)){y=((w+-60-na|0)>>>0)/60|0;A=z;ma=h;while(1){X=ma;Y=A;Z=X+60|0;do{c[X>>2]=c[Y>>2];X=X+4|0;Y=Y+4|0}while((X|0)<(Z|0));A=A+60|0;if((A|0)==(w|0))break;else ma=ma+60|0}ma=h+((y+1|0)*60|0)|0;A=ma;if((ma|0)==(h|0)){oa=z;pa=f}else{Q=z;d=h;ga=f;b=h;ha=w;a=w;while(1){if((ha|0)==(x|0)){qa=Q;ra=b;break}if(rb[c[e>>2]&31](ha,d)| +0){X=Q;Y=a;Z=X+60|0;do{c[X>>2]=c[Y>>2];X=X+4|0;Y=Y+4|0}while((X|0)<(Z|0));ja=ha+60|0;sa=ja;ta=b;ua=ja;va=ja;wa=d}else{X=Q;Y=d;Z=X+60|0;do{c[X>>2]=c[Y>>2];X=X+4|0;Y=Y+4|0}while((X|0)<(Z|0));ja=d+60|0;sa=ga;ta=ja;ua=a;va=ha;wa=ja}ja=Q+60|0;if((wa|0)==(ma|0)){oa=ja;pa=sa;break e}else{Q=ja;d=wa;ga=sa;b=ta;ha=va;a=ua}}Cp(qa|0,ra|0,A-ra|0)|0;i=k;return}}else{oa=w;pa=f}while(0);Cp(oa|0,pa|0,B-pa|0)|0;i=k;return}if((w|0)==(x|0))xa=h;else{pa=((x+-60-f|0)>>>0)/60|0;B=w;oa=h;while(1){X=oa;Y=B;Z=X+60|0;do{c[X>> +2]=c[Y>>2];X=X+4|0;Y=Y+4|0}while((X|0)<(Z|0));B=B+60|0;if((B|0)==(x|0))break;else oa=oa+60|0}xa=h+((pa+1|0)*60|0)|0}pa=xa;f:do if((w|0)==(z|0)){ya=x;za=pa}else{oa=pa;B=f;A=f;ra=pa;qa=xa;ua=w;va=x;ta=xa;sa=xa;while(1){if((ra|0)==(h|0)){Aa=va;Ba=B;break}wa=ua+-60|0;na=va+-60|0;if(rb[c[e>>2]&31](qa+-60|0,wa)|0){X=na;Y=wa;Z=X+60|0;do{c[X>>2]=c[Y>>2];X=X+4|0;Y=Y+4|0}while((X|0)<(Z|0));a=wa;Ca=oa;Da=a;Ea=sa;Fa=ta;Ga=qa;Ha=a}else{X=na;Y=ta+-60|0;Z=X+60|0;do{c[X>>2]=c[Y>>2];X=X+4|0;Y=Y+4|0}while((X|0)<(Z| +0));wa=sa+-60|0;Ca=wa;Da=B;Ea=wa;Fa=wa;Ga=wa;Ha=A}ua=Ha;if((ua|0)==(z|0)){ya=na;za=Ca;break f}else{oa=Ca;B=Da;A=Ha;ra=Ga;qa=Ga;va=na;ta=Fa;sa=Ea}}sa=Ba;if((sa|0)==(z|0)){i=k;return}else{Ia=Aa;Ja=sa}do{Ia=Ia+-60|0;Ja=Ja+-60|0;X=Ia;Y=Ja;Z=X+60|0;do{c[X>>2]=c[Y>>2];X=X+4|0;Y=Y+4|0}while((X|0)<(Z|0))}while((Ja|0)!=(z|0));i=k;return}while(0);z=za;if((z|0)==(h|0)){i=k;return}else{Ka=ya;La=z}do{Ka=Ka+-60|0;La=La+-60|0;X=Ka;Y=La;Z=X+60|0;do{c[X>>2]=c[Y>>2];X=X+4|0;Y=Y+4|0}while((X|0)<(Z|0))}while((La|0)!= +(h|0));i=k;return}else if((v|0)==43){X=l;Y=P;Z=X+60|0;do{c[X>>2]=c[Y>>2];X=X+4|0;Y=Y+4|0}while((X|0)<(Z|0));X=P;Y=O;Z=X+60|0;do{c[X>>2]=c[Y>>2];X=X+4|0;Y=Y+4|0}while((X|0)<(Z|0));X=O;Y=l;Z=X+60|0;do{c[X>>2]=c[Y>>2];X=X+4|0;Y=Y+4|0}while((X|0)<(Z|0));i=k;return}else if((v|0)==68){i=k;return}}function wn(a){a=a|0;return}function xn(a){a=a|0;so(a);return}function yn(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,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;f=a+4|0;h=c[(c[f>>2]|0)+88>>2]|0;i=c[h+(d<<2)>>2]|c[h+(b<<2)>>2]|c[h+(e<<2)>>2];if(!(i&16))return;h=c[a+8>>2]|0;if(!(pb[c[(c[h>>2]|0)+16>>2]&7](h,b,d,e)|0))return;h=c[f>>2]|0;f=c[h+96>>2]|0;a=f+(b<<3)|0;j=+g[a>>2];k=f+(d<<3)|0;l=+g[k>>2];m=j-l;n=f+(b<<3)+4|0;o=+g[n>>2];p=f+(d<<3)+4|0;q=+g[p>>2];r=o-q;s=f+(e<<3)|0;t=+g[s>>2];u=l-t;v=f+(e<<3)+4|0;l=+g[v>>2];w=q-l;q=t-j;j=l-o;o=+g[h+40>>2]*4;if(m*m+r*r>o)return;if(u*u+w*w>o)return;if(q*q+j*j>o)return;f=c[h+144>>2]|0;x=c[f+(b<< +2)>>2]|0;y=c[f+(d<<2)>>2]|0;z=c[f+(e<<2)>>2]|0;f=h+264|0;A=h+268|0;B=c[A>>2]|0;C=h+272|0;D=c[C>>2]|0;if((B|0)>=(D|0)?(E=(D|0)==0?256:D<<1,(D|0)<(E|0)):0){D=h+276|0;h=Sn(c[D>>2]|0,E*60|0)|0;F=c[f>>2]|0;if(!F)G=f;else{Bp(h|0,F|0,(c[A>>2]|0)*60|0)|0;Tn(c[D>>2]|0,c[f>>2]|0,(c[C>>2]|0)*60|0);G=f}c[C>>2]=E;c[G>>2]=h;H=c[A>>2]|0}else H=B;c[A>>2]=H+1;A=c[f>>2]|0;c[A+(H*60|0)>>2]=b;c[A+(H*60|0)+4>>2]=d;c[A+(H*60|0)+8>>2]=e;c[A+(H*60|0)+12>>2]=i;if(!x)I=1;else I=+g[x+16>>2];if(!y)J=1;else J=+g[y+16>>2];o=I< +J?I:J;if(!z)K=1;else K=+g[z+16>>2];g[A+(H*60|0)+16>>2]=o>2];o=+g[n>>2];J=(K+ +g[k>>2]+ +g[s>>2])*.3333333432674408;I=(o+ +g[p>>2]+ +g[v>>2])*.3333333432674408;g[A+(H*60|0)+20>>2]=K-J;g[A+(H*60|0)+24>>2]=o-I;o=+g[p>>2]-I;g[A+(H*60|0)+28>>2]=+g[k>>2]-J;g[A+(H*60|0)+32>>2]=o;o=+g[v>>2]-I;g[A+(H*60|0)+36>>2]=+g[s>>2]-J;g[A+(H*60|0)+40>>2]=o;g[A+(H*60|0)+44>>2]=-(m*q+r*j);g[A+(H*60|0)+48>>2]=-(m*u+r*w);g[A+(H*60|0)+52>>2]=-(u*q+w*j);j=+g[a>>2];w=+g[p>>2];q=+g[n>>2];u=+g[k>>2];r=+g[v>>2]; +m=+g[s>>2];g[A+(H*60|0)+56>>2]=q*m-j*r+(j*w-q*u+(u*r-w*m));return}function zn(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;switch(e|0){case 1:{c[f>>2]=c[a>>2];c[f+4>>2]=c[a+4>>2];c[f+8>>2]=c[a+8>>2];c[f+12>>2]=c[a+12>>2];c[f+16>>2]=c[a+16>>2];return}case 2:{g=b+-20|0;if(rb[c[d>>2]&31](g,a)|0){c[f>>2]=c[g>>2];c[f+4>>2]=c[g+4>>2];c[f+8>>2]=c[g+8>>2];c[f+12>>2]=c[g+12>>2];c[f+16>>2]=c[g+16>>2];h=f+20|0;c[h>>2]=c[a>>2];c[h+4>>2]=c[a+4>>2]; +c[h+8>>2]=c[a+8>>2];c[h+12>>2]=c[a+12>>2];c[h+16>>2]=c[a+16>>2];return}else{c[f>>2]=c[a>>2];c[f+4>>2]=c[a+4>>2];c[f+8>>2]=c[a+8>>2];c[f+12>>2]=c[a+12>>2];c[f+16>>2]=c[a+16>>2];h=f+20|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];c[h+16>>2]=c[g+16>>2];return}break}case 0:return;default:{if((e|0)<9){if((a|0)==(b|0))return;c[f>>2]=c[a>>2];c[f+4>>2]=c[a+4>>2];c[f+8>>2]=c[a+8>>2];c[f+12>>2]=c[a+12>>2];c[f+16>>2]=c[a+16>>2];g=a+20|0;if((g|0)==(b|0))return;else{i=g;j=f}do{g= +j;j=j+20|0;if(rb[c[d>>2]&31](i,g)|0){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];c[j+16>>2]=c[g+16>>2];a:do if((g|0)==(f|0))k=f;else{h=g;while(1){l=h;h=h+-20|0;if(!(rb[c[d>>2]&31](i,h)|0)){k=l;break a}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];c[l+16>>2]=c[h+16>>2];if((h|0)==(f|0)){k=f;break}}}while(0);c[k>>2]=c[i>>2];c[k+4>>2]=c[i+4>>2];c[k+8>>2]=c[i+8>>2];c[k+12>>2]=c[i+12>>2];c[k+16>>2]=c[i+16>>2]}else{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];c[j+16>>2]=c[i+16>>2]}i=i+20|0}while((i|0)!=(b|0));return}i=(e|0)/2|0;j=a+(i*20|0)|0;Mm(a,j,d,i,f,i);k=e-i|0;Mm(j,b,d,k,f+(i*20|0)|0,k);b:do if((e+1|0)>>>0<3){m=j;n=f}else{k=j;i=a;g=f;while(1){if((k|0)==(b|0)){o=i;p=g;break}if(rb[c[d>>2]&31](k,i)|0){c[g>>2]=c[k>>2];c[g+4>>2]=c[k+4>>2];c[g+8>>2]=c[k+8>>2];c[g+12>>2]=c[k+12>>2];c[g+16>>2]=c[k+16>>2];q=i;r=k+20|0}else{c[g>>2]=c[i>>2];c[g+4>>2]=c[i+4>>2];c[g+8>>2]=c[i+8>>2];c[g+12>>2]=c[i+12>>2]; +c[g+16>>2]=c[i+16>>2];q=i+20|0;r=k}h=g+20|0;if((q|0)==(j|0)){m=r;n=h;break b}else{k=r;i=q;g=h}}if((o|0)==(j|0))return;else{s=o;t=p}while(1){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];c[t+16>>2]=c[s+16>>2];s=s+20|0;if((s|0)==(j|0))break;else t=t+20|0}return}while(0);if((m|0)==(b|0))return;else{u=m;v=n}while(1){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];c[v+16>>2]=c[u+16>>2];u=u+20|0;if((u|0)==(b|0))break;else v=v+20|0}return}}}function An(a, +b,d,e,f,g,h,j){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|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,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,Ea=0,Fa=0,Ga=0,Ha=0;k=i;i=i+48|0;l=k+20|0;m=k;if((g|0)==0|(f|0)==0){i=k;return}n=a;a=b;b=d;d=f;f=g;a:while(1){g= +b;o=a;p=d;q=n;r=f;while(1){s=q;t=p;while(1){if(rb[c[e>>2]&31](o,s)|0){u=s;v=t;break}t=t+-1|0;if(!t){w=69;break a}else s=s+20|0}if(!((r|0)>(j|0)&(v|0)>(j|0))){x=o;y=b;z=r;A=u;B=v;C=g;w=8;break a}if((v|0)<(r|0)){s=(r|0)/2|0;t=o+(s*20|0)|0;D=u;E=u;F=(o-D|0)/20|0;b:while(1){G=F;while(1){if(!G){H=E;break b}I=(G|0)/2|0;if(rb[c[e>>2]&31](t,E+(I*20|0)|0)|0)G=I;else{J=I;K=G;break}}E=E+((J+1|0)*20|0)|0;F=K+-1-J|0}L=H;M=t;N=(H-D|0)/20|0;O=s}else{if((v|0)==1){P=o;Q=u;w=43;break a}F=(v|0)/2|0;E=u+(F*20|0)|0;G= +o;I=o;R=(g-G|0)/20|0;c:while(1){S=R;while(1){if(!S){T=I;break c}U=(S|0)/2|0;if(rb[c[e>>2]&31](I+(U*20|0)|0,E)|0){V=U;W=S;break}else S=U}I=I+((V+1|0)*20|0)|0;R=W+-1-V|0}L=E;M=T;N=F;O=(T-G|0)/20|0}p=v-N|0;R=r;r=r-O|0;do if((L|0)!=(o|0))if((o|0)==(M|0))X=L;else{if((L+20|0)==(o|0)){c[l>>2]=c[L>>2];c[l+4>>2]=c[L+4>>2];c[l+8>>2]=c[L+8>>2];c[l+12>>2]=c[L+12>>2];c[l+16>>2]=c[L+16>>2];I=M-o|0;Cp(L|0,o|0,I|0)|0;s=L+(((I|0)/20|0)*20|0)|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];X=s;break}if((o+20|0)==(M|0)){s=M+-20|0;c[l>>2]=c[s>>2];c[l+4>>2]=c[s+4>>2];c[l+8>>2]=c[s+8>>2];c[l+12>>2]=c[s+12>>2];c[l+16>>2]=c[s+16>>2];I=s-L|0;s=M+(((I|0)/-20|0)*20|0)|0;Cp(s|0,L|0,I|0)|0;c[L>>2]=c[l>>2];c[L+4>>2]=c[l+4>>2];c[L+8>>2]=c[l+8>>2];c[L+12>>2]=c[l+12>>2];c[L+16>>2]=c[l+16>>2];X=s;break}s=o;I=(s-L|0)/20|0;D=M;t=(D-s|0)/20|0;if((I|0)==(t|0)){s=L;S=o;while(1){c[l>>2]=c[s>>2];c[l+4>>2]=c[s+4>>2];c[l+8>>2]=c[s+8>>2];c[l+12>>2]=c[s+12>>2];c[l+16>>2]=c[s+16>> +2];c[s>>2]=c[S>>2];c[s+4>>2]=c[S+4>>2];c[s+8>>2]=c[S+8>>2];c[s+12>>2]=c[S+12>>2];c[s+16>>2]=c[S+16>>2];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];s=s+20|0;if((s|0)==(o|0)){Y=o;break}else S=S+20|0}}else{S=I;s=t;while(1){U=(S|0)%(s|0)|0;if(!U){Z=s;break}else{_=s;s=U;S=_}}if(Z){S=I+-1|0;s=L+(Z*20|0)|0;do{_=s;s=s+-20|0;c[m>>2]=c[s>>2];c[m+4>>2]=c[s+4>>2];c[m+8>>2]=c[s+8>>2];c[m+12>>2]=c[s+12>>2];c[m+16>>2]=c[s+16>>2];U=s;$=_+(S*20|0)|0;while(1){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];c[U+16>>2]=c[$+16>>2];_=(D-$|0)/20|0;aa=(I|0)<(_|0)?$+(I*20|0)|0:L+((I-_|0)*20|0)|0;if((aa|0)==(s|0)){ba=$;break}else{_=$;$=aa;U=_}}c[ba>>2]=c[m>>2];c[ba+4>>2]=c[m+4>>2];c[ba+8>>2]=c[m+8>>2];c[ba+12>>2]=c[m+12>>2];c[ba+16>>2]=c[m+16>>2]}while((s|0)!=(L|0))}Y=L+(t*20|0)|0}X=Y}else X=M;while(0);if((O+N|0)>=(r+p|0)){ca=X;da=L;ea=M;fa=u;ga=p;ha=r;ia=N;ja=O;break}An(u,L,X,e,N,O,h,j);if((R|0)==(O|0)|(v|0)==(N|0)){w=69;break a}else{o= +M;q=X}}An(ca,ea,b,e,ga,ha,h,j);if((ja|0)==0|(ia|0)==0){w=69;break}else{n=fa;a=da;b=ca;d=ia;f=ja}}if((w|0)==8){ja=A;f=x;if((B|0)<=(z|0)){d:do if((A|0)!=(x|0)){z=((x+-20-ja|0)>>>0)/20|0;B=A;ia=h;while(1){c[ia>>2]=c[B>>2];c[ia+4>>2]=c[B+4>>2];c[ia+8>>2]=c[B+8>>2];c[ia+12>>2]=c[B+12>>2];c[ia+16>>2]=c[B+16>>2];B=B+20|0;if((B|0)==(x|0))break;else ia=ia+20|0}ia=h+((z+1|0)*20|0)|0;B=ia;if((ia|0)==(h|0)){ka=A;la=f}else{d=A;ca=h;b=f;da=h;a=x;fa=x;while(1){if((a|0)==(y|0)){ma=d;na=da;break}if(rb[c[e>>2]&31](a, +ca)|0){c[d>>2]=c[fa>>2];c[d+4>>2]=c[fa+4>>2];c[d+8>>2]=c[fa+8>>2];c[d+12>>2]=c[fa+12>>2];c[d+16>>2]=c[fa+16>>2];n=a+20|0;oa=n;pa=da;qa=n;ra=n;sa=ca}else{c[d>>2]=c[ca>>2];c[d+4>>2]=c[ca+4>>2];c[d+8>>2]=c[ca+8>>2];c[d+12>>2]=c[ca+12>>2];c[d+16>>2]=c[ca+16>>2];n=ca+20|0;oa=b;pa=n;qa=fa;ra=a;sa=n}n=d+20|0;if((sa|0)==(ia|0)){ka=n;la=oa;break d}else{d=n;ca=sa;b=oa;da=pa;a=ra;fa=qa}}Cp(ma|0,na|0,B-na|0)|0;i=k;return}}else{ka=x;la=f}while(0);Cp(ka|0,la|0,C-la|0)|0;i=k;return}if((x|0)==(y|0))ta=h;else{la= +((y+-20-f|0)>>>0)/20|0;C=x;ka=h;while(1){c[ka>>2]=c[C>>2];c[ka+4>>2]=c[C+4>>2];c[ka+8>>2]=c[C+8>>2];c[ka+12>>2]=c[C+12>>2];c[ka+16>>2]=c[C+16>>2];C=C+20|0;if((C|0)==(y|0))break;else ka=ka+20|0}ta=h+((la+1|0)*20|0)|0}la=ta;e:do if((x|0)==(A|0)){ua=y;va=la}else{ka=la;C=f;na=f;ma=la;qa=ta;ra=x;pa=y;oa=ta;sa=ta;while(1){if((ma|0)==(h|0)){wa=pa;xa=C;break}ja=ra+-20|0;fa=pa+-20|0;if(rb[c[e>>2]&31](qa+-20|0,ja)|0){c[fa>>2]=c[ja>>2];c[fa+4>>2]=c[ja+4>>2];c[fa+8>>2]=c[ja+8>>2];c[fa+12>>2]=c[ja+12>>2];c[fa+ +16>>2]=c[ja+16>>2];a=ja;ya=ka;za=a;Aa=sa;Ba=oa;Ca=qa;Da=a}else{a=oa+-20|0;c[fa>>2]=c[a>>2];c[fa+4>>2]=c[a+4>>2];c[fa+8>>2]=c[a+8>>2];c[fa+12>>2]=c[a+12>>2];c[fa+16>>2]=c[a+16>>2];a=sa+-20|0;ya=a;za=C;Aa=a;Ba=a;Ca=a;Da=na}ra=Da;if((ra|0)==(A|0)){ua=fa;va=ya;break e}else{ka=ya;C=za;na=Da;ma=Ca;qa=Ca;pa=fa;oa=Ba;sa=Aa}}sa=xa;if((sa|0)==(A|0)){i=k;return}else{Ea=wa;Fa=sa}do{Ea=Ea+-20|0;Fa=Fa+-20|0;c[Ea>>2]=c[Fa>>2];c[Ea+4>>2]=c[Fa+4>>2];c[Ea+8>>2]=c[Fa+8>>2];c[Ea+12>>2]=c[Fa+12>>2];c[Ea+16>>2]=c[Fa+16>> +2]}while((Fa|0)!=(A|0));i=k;return}while(0);A=va;if((A|0)==(h|0)){i=k;return}else{Ga=ua;Ha=A}do{Ga=Ga+-20|0;Ha=Ha+-20|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];c[Ga+16>>2]=c[Ha+16>>2]}while((Ha|0)!=(h|0));i=k;return}else if((w|0)==43){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];c[l+16>>2]=c[Q+16>>2];c[Q>>2]=c[P>>2];c[Q+4>>2]=c[P+4>>2];c[Q+8>>2]=c[P+8>>2];c[Q+12>>2]=c[P+12>>2];c[Q+16>>2]=c[P+16>>2];c[P>>2]=c[l>>2];c[P+ +4>>2]=c[l+4>>2];c[P+8>>2]=c[l+8>>2];c[P+12>>2]=c[l+12>>2];c[P+16>>2]=c[l+16>>2];i=k;return}else if((w|0)==69){i=k;return}}function Bn(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;f=b+4|0;g=c[f>>2]|0;h=a+4|0;i=d+4|0;j=c[i>>2]|0;k=j>>>0>>0;do if(g>>>0<(c[h>>2]|0)>>>0){l=a;m=c[l>>2]|0;n=c[l+4>>2]|0;if(k){l=d;o=c[l+4>>2]|0;p=a;c[p>>2]=c[l>>2];c[p+4>>2]=o;o=d;c[o>>2]=m;c[o+4>>2]=n;q=1;r=n;break}o=b;p=c[o+4>>2]|0;l=a;c[l>>2]=c[o>>2];c[l+4>>2]=p; +p=b;c[p>>2]=m;c[p+4>>2]=n;p=c[i>>2]|0;if(p>>>0>>0){l=d;o=c[l+4>>2]|0;s=b;c[s>>2]=c[l>>2];c[s+4>>2]=o;o=d;c[o>>2]=m;c[o+4>>2]=n;q=2;r=n}else{q=1;r=p}}else if(k){p=b;n=c[p>>2]|0;o=c[p+4>>2]|0;p=d;m=c[p+4>>2]|0;s=b;c[s>>2]=c[p>>2];c[s+4>>2]=m;m=d;c[m>>2]=n;c[m+4>>2]=o;if((c[f>>2]|0)>>>0<(c[h>>2]|0)>>>0){m=a;n=c[m>>2]|0;s=c[m+4>>2]|0;m=b;p=c[m+4>>2]|0;l=a;c[l>>2]=c[m>>2];c[l+4>>2]=p;p=b;c[p>>2]=n;c[p+4>>2]=s;q=2;r=c[i>>2]|0}else{q=1;r=o}}else{q=0;r=j}while(0);if((c[e+4>>2]|0)>>>0>=r>>>0){t=q;return t| +0}r=d;j=c[r>>2]|0;k=c[r+4>>2]|0;r=e;g=c[r+4>>2]|0;o=d;c[o>>2]=c[r>>2];c[o+4>>2]=g;g=e;c[g>>2]=j;c[g+4>>2]=k;if((c[i>>2]|0)>>>0>=(c[f>>2]|0)>>>0){t=q+1|0;return t|0}i=b;k=c[i>>2]|0;g=c[i+4>>2]|0;i=d;j=c[i+4>>2]|0;e=b;c[e>>2]=c[i>>2];c[e+4>>2]=j;j=d;c[j>>2]=k;c[j+4>>2]=g;if((c[f>>2]|0)>>>0>=(c[h>>2]|0)>>>0){t=q+2|0;return t|0}h=a;f=c[h>>2]|0;g=c[h+4>>2]|0;h=b;j=c[h+4>>2]|0;k=a;c[k>>2]=c[h>>2];c[k+4>>2]=j;j=b;c[j>>2]=f;c[j+4>>2]=g;t=q+3|0;return t|0}function ph(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;Oi(a, +b);c[a>>2]=1224;d=b+20|0;e=c[d+4>>2]|0;f=a+80|0;c[f>>2]=c[d>>2];c[f+4>>2]=e;e=b+28|0;f=c[e+4>>2]|0;d=a+88|0;c[d>>2]=c[e>>2];c[d+4>>2]=f;c[a+104>>2]=c[b+36>>2];c[a+68>>2]=c[b+40>>2];c[a+72>>2]=c[b+44>>2];g[a+100>>2]=0;g[a+96>>2]=0;g[a+76>>2]=0;return}function qh(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,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,P=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;e=c[b+48>>2]|0;f=c[e+8>>2]|0;h=b+108|0;c[h>>2]=f;i=c[b+52>>2]|0;j=c[i+8>>2]|0;l=b+112|0;c[l>>2]=j;m=e+44|0;n=c[m>>2]|0;o=c[m+4>>2]|0;m=b+140|0;c[m>>2]=n;c[m+4>>2]=o;m=i+44|0;p=c[m>>2]|0;q=c[m+4>>2]|0;m=b+148|0;c[m>>2]=p;c[m+4>>2]=q;m=b+156|0;c[m>>2]=c[e+136>>2];r=b+160|0;c[r>>2]=c[i+136>>2];s=b+164|0;c[s>>2]=c[e+144>>2];e=b+168|0;c[e>>2]=c[i+144>>2];i=c[d+28>>2]|0;t=+g[i+(f*12|0)>>2];u=+g[i+(f*12|0)+4>>2];v=+g[i+(f*12|0)+8>>2];w=d+32|0;x=c[w>>2]|0;y=c[x+(f*12|0)>>2]|0;z=c[x+(f*12| +0)+4>>2]|0;A=+g[x+(f*12|0)+8>>2];B=+g[i+(j*12|0)>>2];C=+g[i+(j*12|0)+4>>2];D=+g[i+(j*12|0)+8>>2];i=c[x+(j*12|0)>>2]|0;f=c[x+(j*12|0)+4>>2]|0;E=+g[x+(j*12|0)+8>>2];F=+R(+v);G=+Q(+v);v=+R(+D);H=+Q(+D);D=+g[b+80>>2]-(c[k>>2]=n,+g[k>>2]);I=+g[b+84>>2]-(c[k>>2]=o,+g[k>>2]);J=G*D-F*I;K=F*D+G*I;g[b+124>>2]=J;g[b+128>>2]=K;I=+g[b+88>>2]-(c[k>>2]=p,+g[k>>2]);G=+g[b+92>>2]-(c[k>>2]=q,+g[k>>2]);D=H*I-v*G;F=v*I+H*G;g[b+132>>2]=D;g[b+136>>2]=F;G=B+D-t-J;t=C+F-u-K;q=b+116|0;g[q>>2]=G;p=b+120|0;g[p>>2]=t;u=+O(+(G* +G+t*t));if(u>.004999999888241291){C=1/u;B=G*C;g[q>>2]=B;L=C*t;M=B}else{g[q>>2]=0;L=0;M=0}g[p>>2]=L;B=L*J-K*M;t=L*D-M*F;C=+g[m>>2];G=+g[s>>2];H=+g[r>>2];I=+g[e>>2];v=H+(C+B*(B*G))+t*(t*I);t=v!=0?1/v:0;e=b+172|0;g[e>>2]=t;B=+g[b+68>>2];if(B>0){N=u-+g[b+104>>2];u=B*6.2831854820251465;B=u*(u*t);P=+g[d>>2];S=P*(u*(t*2*+g[b+72>>2])+B*P);t=S!=0?1/S:0;g[b+96>>2]=t;S=v+t;g[e>>2]=S!=0?1/S:0;T=B*(N*P)*t}else{g[b+96>>2]=0;T=0}g[b+76>>2]=T;if(!(a[d+24>>0]|0)){g[b+100>>2]=0;U=y;V=z;W=i;X=f;Y=A;Z=E;_=c[h>>2]|0; +$=c[w>>2]|0;aa=$+(_*12|0)|0;c[aa>>2]=U;ba=$+(_*12|0)+4|0;c[ba>>2]=V;ca=c[h>>2]|0;da=c[w>>2]|0;ea=da+(ca*12|0)+8|0;g[ea>>2]=Y;fa=c[l>>2]|0;ga=da+(fa*12|0)|0;c[ga>>2]=W;ha=da+(fa*12|0)+4|0;c[ha>>2]=X;ia=c[l>>2]|0;ja=c[w>>2]|0;ka=ja+(ia*12|0)+8|0;g[ka>>2]=Z;return}else{e=b+100|0;T=+g[d+8>>2]*+g[e>>2];g[e>>2]=T;t=M*T;M=T*L;e=(g[k>>2]=(c[k>>2]=y,+g[k>>2])-t*C,c[k>>2]|0);y=(g[k>>2]=(c[k>>2]=z,+g[k>>2])-M*C,c[k>>2]|0);z=(g[k>>2]=(c[k>>2]=i,+g[k>>2])+t*H,c[k>>2]|0);U=e;V=y;W=z;X=(g[k>>2]=(c[k>>2]=f,+g[k>> +2])+M*H,c[k>>2]|0);Y=A-G*(M*J-t*K);Z=E+I*(M*D-t*F);_=c[h>>2]|0;$=c[w>>2]|0;aa=$+(_*12|0)|0;c[aa>>2]=U;ba=$+(_*12|0)+4|0;c[ba>>2]=V;ca=c[h>>2]|0;da=c[w>>2]|0;ea=da+(ca*12|0)+8|0;g[ea>>2]=Y;fa=c[l>>2]|0;ga=da+(fa*12|0)|0;c[ga>>2]=W;ha=da+(fa*12|0)+4|0;c[ha>>2]=X;ia=c[l>>2]|0;ja=c[w>>2]|0;ka=ja+(ia*12|0)+8|0;g[ka>>2]=Z;return}}function rh(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,s=0,t=0,u=0,v=0,w=0,x=0,y=0;d=a+108|0;e=c[d>>2]|0;f=b+32|0;b=c[f>>2]|0;h=b+(e*12|0)|0; +i=+g[h>>2];j=b+(e*12|0)+4|0;k=+g[j>>2];l=+g[b+(e*12|0)+8>>2];e=a+112|0;m=c[e>>2]|0;n=+g[b+(m*12|0)>>2];o=+g[b+(m*12|0)+4>>2];p=+g[b+(m*12|0)+8>>2];q=+g[a+128>>2];r=+g[a+124>>2];s=+g[a+136>>2];t=+g[a+132>>2];u=+g[a+116>>2];v=+g[a+120>>2];m=a+100|0;w=+g[m>>2];x=+g[a+172>>2]*(+g[a+76>>2]+(u*(n-p*s-(i-l*q))+v*(o+p*t-(k+l*r)))+ +g[a+96>>2]*w);y=-x;g[m>>2]=w-x;x=u*y;u=v*y;y=+g[a+156>>2];v=l-+g[a+164>>2]*(u*r-x*q);q=+g[a+160>>2];r=p+ +g[a+168>>2]*(u*t-x*s);g[h>>2]=i-y*x;g[j>>2]=k-y*u;j=c[f>>2]|0;g[j+((c[d>> +2]|0)*12|0)+8>>2]=v;d=c[e>>2]|0;g[j+(d*12|0)>>2]=n+x*q;g[j+(d*12|0)+4>>2]=o+u*q;g[(c[f>>2]|0)+((c[e>>2]|0)*12|0)+8>>2]=r;return}function sh(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,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0;if(+g[a+68>>2]>0){d=1;return d|0}e=a+108|0;f=c[e>>2]|0;h=b+28|0;b=c[h>>2]|0;i=b+(f*12|0)|0;j=+g[i>>2];k=b+(f*12|0)+4|0;l=+g[k>>2];m=+g[b+(f*12|0)+8>>2];f=a+112|0;n=c[f>>2]|0;o=+g[b+(n*12|0)>>2];p=+g[b+(n*12|0)+4>>2];q=+g[b+(n*12|0)+8>>2];r=+R(+m); +s=+Q(+m);t=+R(+q);u=+Q(+q);v=+g[a+80>>2]-+g[a+140>>2];w=+g[a+84>>2]-+g[a+144>>2];x=s*v-r*w;y=r*v+s*w;w=+g[a+88>>2]-+g[a+148>>2];s=+g[a+92>>2]-+g[a+152>>2];v=u*w-t*s;r=t*w+u*s;s=o+v-j-x;u=p+r-l-y;w=+O(+(s*s+u*u));if(w<1.1920928955078125E-7){z=0;A=s;B=u}else{t=1/w;z=w;A=s*t;B=u*t}t=z-+g[a+104>>2];z=t<.20000000298023224?t:.20000000298023224;t=z<-.20000000298023224?-.20000000298023224:z;z=-(+g[a+172>>2]*t);u=A*z;A=B*z;z=+g[a+156>>2];B=m-+g[a+164>>2]*(x*A-y*u);y=+g[a+160>>2];x=q+ +g[a+168>>2]*(v*A-r*u); +g[i>>2]=j-z*u;g[k>>2]=l-z*A;k=c[h>>2]|0;g[k+((c[e>>2]|0)*12|0)+8>>2]=B;e=c[f>>2]|0;g[k+(e*12|0)>>2]=o+y*u;g[k+(e*12|0)+4>>2]=p+y*A;g[(c[h>>2]|0)+((c[f>>2]|0)*12|0)+8>>2]=x;d=(t>0?t:-t)<.004999999888241291;return d|0}function th(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0,i=0,j=0;d=c[b+48>>2]|0;e=+g[d+24>>2];f=+g[b+80>>2];h=+g[d+20>>2];i=+g[b+84>>2];j=f*h+e*i+ +g[d+16>>2];g[a>>2]=+g[d+12>>2]+(e*f-h*i);g[a+4>>2]=j;return}function uh(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0,i=0,j=0;d=c[b+52>>2]|0;e=+g[d+24>>2]; +f=+g[b+88>>2];h=+g[d+20>>2];i=+g[b+92>>2];j=f*h+e*i+ +g[d+16>>2];g[a>>2]=+g[d+12>>2]+(e*f-h*i);g[a+4>>2]=j;return}function vh(a,b,c){a=a|0;b=b|0;c=+c;var d=0;d=+g[b+100>>2]*c;c=d*+g[b+120>>2];g[a>>2]=+g[b+116>>2]*d;g[a+4>>2]=c;return}function wh(a,b){a=a|0;b=+b;return 0}function xh(a){a=a|0;var b=0,e=0,f=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;b=i;i=i+96|0;e=b+88|0;f=b+80|0;j=b+72|0;k=b+64|0;l=b+48|0;m=b+32|0;n=b+24|0;o=b+16|0;p=b+8|0;q=c[(c[a+48>>2]|0)+8>>2]|0;r=c[(c[a+52>>2]|0)+8>>2]|0;bo(3812, +b);c[p>>2]=q;bo(4769,p);c[o>>2]=r;bo(4795,o);c[n>>2]=d[a+61>>0];bo(4821,n);s=+g[a+84>>2];h[m>>3]=+g[a+80>>2];h[m+8>>3]=s;bo(4942,m);s=+g[a+92>>2];h[l>>3]=+g[a+88>>2];h[l+8>>3]=s;bo(4984,l);h[k>>3]=+g[a+104>>2];bo(3838,k);h[j>>3]=+g[a+68>>2];bo(4670,j);h[f>>3]=+g[a+72>>2];bo(4699,f);c[e>>2]=c[a+56>>2];bo(5099,e);i=b;return}function yh(a){a=a|0;so(a);return}function zh(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;c[a+8>>2]=b;c[a+12>>2]=d;f=+g[e>>2]-+g[b+12>>2];h=e+4|0;i=+g[h>>2]-+g[b+16>> +2];j=+g[b+24>>2];k=+g[b+20>>2];g[a+20>>2]=f*j+i*k;g[a+24>>2]=j*i-f*k;k=+g[e>>2]-+g[d+12>>2];f=+g[h>>2]-+g[d+16>>2];i=+g[d+24>>2];j=+g[d+20>>2];g[a+28>>2]=k*i+f*j;g[a+32>>2]=i*f-k*j;return}function Ah(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;Oi(a,b);c[a>>2]=1276;d=b+20|0;e=c[d+4>>2]|0;f=a+68|0;c[f>>2]=c[d>>2];c[f+4>>2]=e;e=b+28|0;f=c[e+4>>2]|0;d=a+76|0;c[d>>2]=c[e>>2];c[d+4>>2]=f;g[a+84>>2]=0;g[a+88>>2]=0;g[a+92>>2]=0;c[a+96>>2]=c[b+36>>2];c[a+100>>2]=c[b+40>>2];return}function Bh(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,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=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;e=c[b+48>>2]|0;f=c[e+8>>2]|0;h=b+104|0;c[h>>2]=f;i=c[b+52>>2]|0;j=c[i+8>>2]|0;l=b+108|0;c[l>>2]=j;m=e+44|0;n=c[m>>2]|0;o=c[m+4>>2]|0;m=b+128|0;c[m>>2]=n;c[m+4>>2]=o;m=i+44|0;p=c[m>>2]|0;q=c[m+4>>2]|0;m=b+136|0;c[m>>2]=p;c[m+4>>2]=q;m=c[e+136>>2]|0;c[b+144>>2]=m;r=c[i+136>>2]|0;c[b+148>>2]=r; +s=c[e+144>>2]|0;c[b+152>>2]=s;e=c[i+144>>2]|0;c[b+156>>2]=e;i=c[d+28>>2]|0;t=+g[i+(f*12|0)+8>>2];u=d+32|0;v=c[u>>2]|0;w=c[v+(f*12|0)>>2]|0;x=c[v+(f*12|0)+4>>2]|0;y=+g[v+(f*12|0)+8>>2];z=+g[i+(j*12|0)+8>>2];i=c[v+(j*12|0)>>2]|0;f=c[v+(j*12|0)+4>>2]|0;A=+g[v+(j*12|0)+8>>2];B=+R(+t);C=+Q(+t);t=+R(+z);D=+Q(+z);z=+g[b+68>>2]-(c[k>>2]=n,+g[k>>2]);E=+g[b+72>>2]-(c[k>>2]=o,+g[k>>2]);F=C*z-B*E;G=B*z+C*E;g[b+112>>2]=F;g[b+116>>2]=G;E=+g[b+76>>2]-(c[k>>2]=p,+g[k>>2]);C=+g[b+80>>2]-(c[k>>2]=q,+g[k>>2]);z=D*E- +t*C;B=t*E+D*C;g[b+120>>2]=z;g[b+124>>2]=B;C=(c[k>>2]=m,+g[k>>2]);D=(c[k>>2]=r,+g[k>>2]);E=(c[k>>2]=s,+g[k>>2]);t=(c[k>>2]=e,+g[k>>2]);H=C+D;I=H+G*(E*G)+B*(t*B);J=E*F;K=t*z;L=-(G*J)-B*K;M=H+F*J+z*K;K=I*M-L*L;J=K!=0?1/K:K;K=-(L*J);g[b+160>>2]=M*J;g[b+164>>2]=K;g[b+168>>2]=K;g[b+172>>2]=I*J;J=E+t;g[b+176>>2]=J>0?1/J:J;e=b+84|0;if(!(a[d+24>>0]|0)){g[e>>2]=0;g[b+88>>2]=0;g[b+92>>2]=0;N=w;O=x;P=i;S=f;T=y;U=A;V=c[h>>2]|0;W=c[u>>2]|0;X=W+(V*12|0)|0;c[X>>2]=N;Y=W+(V*12|0)+4|0;c[Y>>2]=O;Z=c[h>>2]|0;_=c[u>> +2]|0;$=_+(Z*12|0)+8|0;g[$>>2]=T;aa=c[l>>2]|0;ba=_+(aa*12|0)|0;c[ba>>2]=P;ca=_+(aa*12|0)+4|0;c[ca>>2]=S;da=c[l>>2]|0;ea=c[u>>2]|0;fa=ea+(da*12|0)+8|0;g[fa>>2]=U;return}else{J=+g[d+8>>2];I=J*+g[e>>2];g[e>>2]=I;e=b+88|0;K=J*+g[e>>2];g[e>>2]=K;e=b+92|0;M=J*+g[e>>2];g[e>>2]=M;e=(g[k>>2]=(c[k>>2]=w,+g[k>>2])-C*I,c[k>>2]|0);w=(g[k>>2]=(c[k>>2]=x,+g[k>>2])-C*K,c[k>>2]|0);x=(g[k>>2]=(c[k>>2]=i,+g[k>>2])+D*I,c[k>>2]|0);N=e;O=w;P=x;S=(g[k>>2]=(c[k>>2]=f,+g[k>>2])+D*K,c[k>>2]|0);T=y-E*(M+(K*F-I*G));U=A+t*(M+ +(K*z-I*B));V=c[h>>2]|0;W=c[u>>2]|0;X=W+(V*12|0)|0;c[X>>2]=N;Y=W+(V*12|0)+4|0;c[Y>>2]=O;Z=c[h>>2]|0;_=c[u>>2]|0;$=_+(Z*12|0)+8|0;g[$>>2]=T;aa=c[l>>2]|0;ba=_+(aa*12|0)|0;c[ba>>2]=P;ca=_+(aa*12|0)+4|0;c[ca>>2]=S;da=c[l>>2]|0;ea=c[u>>2]|0;fa=ea+(da*12|0)+8|0;g[fa>>2]=U;return}}function Ch(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,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;d=a+104|0;e=c[d>>2]|0;f=b+32|0;h=c[f>>2]|0;i=h+(e*12|0)|0;j=+g[i>> +2];k=h+(e*12|0)+4|0;l=+g[k>>2];m=+g[h+(e*12|0)+8>>2];e=a+108|0;n=c[e>>2]|0;o=+g[h+(n*12|0)>>2];p=+g[h+(n*12|0)+4>>2];q=+g[h+(n*12|0)+8>>2];r=+g[a+144>>2];s=+g[a+148>>2];t=+g[a+152>>2];u=+g[a+156>>2];v=+g[b>>2];b=a+92|0;w=+g[b>>2];x=v*+g[a+100>>2];y=w-(q-m)*+g[a+176>>2];z=-x;A=y>2]=x;A=x-w;w=m-t*A;m=q+u*A;A=+g[a+124>>2];q=+g[a+120>>2];x=+g[a+116>>2];z=+g[a+112>>2];y=x*w+(o-A*m-j);B=p+q*m-l-z*w;C=+g[a+164>>2]*y+ +g[a+172>>2]*B;b=a+84|0;D=+g[b>>2];n=a+88|0;E=+g[n>>2];F=D-(+g[a+160>> +2]*y+ +g[a+168>>2]*B);g[b>>2]=F;B=E-C;g[n>>2]=B;C=v*+g[a+96>>2];v=F*F+B*B;if(v>C*C){y=+O(+v);if(y<1.1920928955078125E-7){G=B;H=F}else{v=1/y;y=F*v;g[b>>2]=y;I=B*v;g[n>>2]=I;G=I;H=y}y=C*H;g[b>>2]=y;H=C*G;g[n>>2]=H;J=y;K=H}else{J=F;K=B}B=J-D;D=K-E;g[i>>2]=j-r*B;g[k>>2]=l-r*D;k=c[f>>2]|0;g[k+((c[d>>2]|0)*12|0)+8>>2]=w-t*(z*D-B*x);d=c[e>>2]|0;g[k+(d*12|0)>>2]=o+s*B;g[k+(d*12|0)+4>>2]=p+s*D;g[(c[f>>2]|0)+((c[e>>2]|0)*12|0)+8>>2]=m+u*(D*q-B*A);return}function Dh(a,b){a=a|0;b=b|0;return 1}function Eh(a,b){a= +a|0;b=b|0;var d=0,e=0,f=0,h=0,i=0,j=0;d=c[b+48>>2]|0;e=+g[d+24>>2];f=+g[b+68>>2];h=+g[d+20>>2];i=+g[b+72>>2];j=f*h+e*i+ +g[d+16>>2];g[a>>2]=+g[d+12>>2]+(e*f-h*i);g[a+4>>2]=j;return}function Fh(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0,i=0,j=0;d=c[b+52>>2]|0;e=+g[d+24>>2];f=+g[b+76>>2];h=+g[d+20>>2];i=+g[b+80>>2];j=f*h+e*i+ +g[d+16>>2];g[a>>2]=+g[d+12>>2]+(e*f-h*i);g[a+4>>2]=j;return}function Gh(a,b,c){a=a|0;b=b|0;c=+c;var d=0;d=+g[b+88>>2]*c;g[a>>2]=+g[b+84>>2]*c;g[a+4>>2]=d;return}function Hh(a,b){a= +a|0;b=+b;return+(+g[a+92>>2]*b)}function Ih(a,b){a=a|0;b=+b;g[a+96>>2]=b;return}function Jh(a,b){a=a|0;b=+b;g[a+100>>2]=b;return}function Kh(a){a=a|0;var b=0,e=0,f=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;b=i;i=i+96|0;e=b+80|0;f=b+72|0;j=b+64|0;k=b+48|0;l=b+32|0;m=b+24|0;n=b+16|0;o=b+8|0;p=c[(c[a+48>>2]|0)+8>>2]|0;q=c[(c[a+52>>2]|0)+8>>2]|0;bo(3880,b);c[o>>2]=p;bo(4769,o);c[n>>2]=q;bo(4795,n);c[m>>2]=d[a+61>>0];bo(4821,m);r=+g[a+72>>2];h[l>>3]=+g[a+68>>2];h[l+8>>3]=r;bo(4942,l);r=+g[a+80>>2];h[k>>3]= ++g[a+76>>2];h[k+8>>3]=r;bo(4984,k);h[j>>3]=+g[a+96>>2];bo(3906,j);h[f>>3]=+g[a+100>>2];bo(3932,f);c[e>>2]=c[a+56>>2];bo(5099,e);i=b;return}function Lh(a){a=a|0;so(a);return}function Mh(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;c[a+8>>2]=b;c[a+12>>2]=d;f=+g[e>>2]-+g[b+12>>2];h=e+4|0;i=+g[h>>2]-+g[b+16>>2];j=+g[b+24>>2];k=+g[b+20>>2];g[a+20>>2]=f*j+i*k;g[a+24>>2]=j*i-f*k;k=+g[e>>2]-+g[d+12>>2];f=+g[h>>2]-+g[d+16>>2];i=+g[d+24>>2];j=+g[d+20>>2];g[a+28>>2]=k*i+f*j;g[a+32>>2]=i*f-k*j;g[a+ +36>>2]=+g[d+72>>2]-+g[b+72>>2];return}function Nh(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;Oi(a,b);c[a>>2]=1328;d=b+20|0;e=c[d+4>>2]|0;f=a+80|0;c[f>>2]=c[d>>2];c[f+4>>2]=e;e=b+28|0;f=c[e+4>>2]|0;d=a+88|0;c[d>>2]=c[e>>2];c[d+4>>2]=f;c[a+96>>2]=c[b+36>>2];c[a+68>>2]=c[b+40>>2];c[a+72>>2]=c[b+44>>2];g[a+104>>2]=0;g[a+108>>2]=0;g[a+112>>2]=0;return}function Oh(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,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;e=i;i=i+48|0;f=e;h=c[b+48>>2]|0;j=c[h+8>>2]|0;l=b+116|0;c[l>>2]=j;m=c[b+52>>2]|0;n=c[m+8>>2]|0;o=b+120|0;c[o>>2]=n;p=h+44|0;q=c[p>>2]|0;r=c[p+4>>2]|0;p=b+140|0;c[p>>2]=q;c[p+4>>2]=r;p=m+44|0;s=c[p>>2]|0;t=c[p+4>>2]|0;p=b+148|0;c[p>>2]=s;c[p+4>>2]=t;p=c[h+136>>2]|0;c[b+156>>2]=p;u=c[m+136>>2]|0;c[b+160>>2]=u;v=c[h+144>>2]|0;c[b+164>>2]=v;h=c[m+144>>2]|0;c[b+168>>2]=h;m=c[d+28>>2]|0;w=+g[m+(j*12|0)+8>>2]; +x=d+32|0;y=c[x>>2]|0;z=c[y+(j*12|0)>>2]|0;A=c[y+(j*12|0)+4>>2]|0;B=+g[y+(j*12|0)+8>>2];C=+g[m+(n*12|0)+8>>2];m=c[y+(n*12|0)>>2]|0;j=c[y+(n*12|0)+4>>2]|0;D=+g[y+(n*12|0)+8>>2];E=+R(+w);F=+Q(+w);G=+R(+C);H=+Q(+C);I=+g[b+80>>2]-(c[k>>2]=q,+g[k>>2]);J=+g[b+84>>2]-(c[k>>2]=r,+g[k>>2]);K=F*I-E*J;L=E*I+F*J;r=b+124|0;g[r>>2]=K;q=b+128|0;g[q>>2]=L;J=+g[b+88>>2]-(c[k>>2]=s,+g[k>>2]);F=+g[b+92>>2]-(c[k>>2]=t,+g[k>>2]);I=H*J-G*F;E=G*J+H*F;t=b+132|0;g[t>>2]=I;s=b+136|0;g[s>>2]=E;F=(c[k>>2]=p,+g[k>>2]);H=(c[k>> +2]=u,+g[k>>2]);J=(c[k>>2]=v,+g[k>>2]);G=(c[k>>2]=h,+g[k>>2]);M=F+H;g[f>>2]=M+J*(L*L)+G*(E*E);N=-(J*(L*K))-G*(E*I);g[f+12>>2]=N;O=-(J*L)-G*E;g[f+24>>2]=O;g[f+4>>2]=N;g[f+16>>2]=M+J*(K*K)+G*(I*I);M=J*K+G*I;g[f+28>>2]=M;g[f+8>>2]=O;g[f+20>>2]=M;M=J+G;g[f+32>>2]=M;h=b+68|0;v=b+172|0;if(+g[h>>2]>0){Wn(f,v);O=M>0?1/M:0;I=C-w-+g[b+96>>2];w=+g[h>>2]*6.2831854820251465;C=w*(O*w);K=+g[d>>2];N=K*(w*(O*2*+g[b+72>>2])+K*C);O=N!=0?1/N:0;g[b+100>>2]=O;N=M+O;g[b+204>>2]=N!=0?1/N:0;P=I*K*C*O}else{Xn(f,v);g[b+100>> +2]=0;P=0}g[b+76>>2]=P;v=b+104|0;if(!(a[d+24>>0]|0)){g[v>>2]=0;g[b+108>>2]=0;g[b+112>>2]=0;S=z;T=A;U=m;V=j;W=B;X=D;Y=c[l>>2]|0;Z=c[x>>2]|0;_=Z+(Y*12|0)|0;c[_>>2]=S;$=Z+(Y*12|0)+4|0;c[$>>2]=T;aa=c[l>>2]|0;ba=c[x>>2]|0;ca=ba+(aa*12|0)+8|0;g[ca>>2]=W;da=c[o>>2]|0;ea=ba+(da*12|0)|0;c[ea>>2]=U;fa=ba+(da*12|0)+4|0;c[fa>>2]=V;ga=c[o>>2]|0;ha=c[x>>2]|0;ia=ha+(ga*12|0)+8|0;g[ia>>2]=X;i=e;return}else{P=+g[d+8>>2];O=P*+g[v>>2];g[v>>2]=O;v=b+108|0;C=P*+g[v>>2];g[v>>2]=C;v=b+112|0;K=P*+g[v>>2];g[v>>2]=K;v=(g[k>> +2]=(c[k>>2]=z,+g[k>>2])-F*O,c[k>>2]|0);z=(g[k>>2]=(c[k>>2]=A,+g[k>>2])-F*C,c[k>>2]|0);A=(g[k>>2]=(c[k>>2]=m,+g[k>>2])+H*O,c[k>>2]|0);S=v;T=z;U=A;V=(g[k>>2]=(c[k>>2]=j,+g[k>>2])+H*C,c[k>>2]|0);W=B-J*(K+(C*+g[r>>2]-O*+g[q>>2]));X=D+G*(K+(C*+g[t>>2]-O*+g[s>>2]));Y=c[l>>2]|0;Z=c[x>>2]|0;_=Z+(Y*12|0)|0;c[_>>2]=S;$=Z+(Y*12|0)+4|0;c[$>>2]=T;aa=c[l>>2]|0;ba=c[x>>2]|0;ca=ba+(aa*12|0)+8|0;g[ca>>2]=W;da=c[o>>2]|0;ea=ba+(da*12|0)|0;c[ea>>2]=U;fa=ba+(da*12|0)+4|0;c[fa>>2]=V;ga=c[o>>2]|0;ha=c[x>>2]|0;ia=ha+(ga* +12|0)+8|0;g[ia>>2]=X;i=e;return}}function Ph(a,b){a=a|0;b=b|0;var d=0,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,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;d=a+116|0;e=c[d>>2]|0;f=b+32|0;b=c[f>>2]|0;h=c[b+(e*12|0)>>2]|0;i=b+(e*12|0)+4|0;j=c[i>>2]|0;l=+g[b+(e*12|0)+8>>2];m=a+120|0;n=c[m>>2]|0;o=c[b+(n*12|0)>>2]|0;p=c[b+(n*12|0)+4>>2]|0;q=+g[b+(n*12|0)+8>>2];r=+g[a+156>>2];s=+g[a+160>>2];t=+g[a+164>>2]; +u=+g[a+168>>2];v=+g[a+204>>2];if(+g[a+68>>2]>0){n=a+112|0;w=+g[n>>2];x=v*(q-l+ +g[a+76>>2]+ +g[a+100>>2]*w);y=-x;g[n>>2]=w-x;x=l-t*y;w=q+u*y;y=+g[a+136>>2];z=+g[a+132>>2];A=(c[k>>2]=o,+g[k>>2]);B=(c[k>>2]=p,+g[k>>2]);C=(c[k>>2]=h,+g[k>>2]);D=(c[k>>2]=j,+g[k>>2]);E=+g[a+128>>2];F=+g[a+124>>2];G=E*x+(A-y*w-C);H=B+z*w-D-F*x;I=+g[a+172>>2]*G+ +g[a+184>>2]*H;J=+g[a+176>>2]*G+ +g[a+188>>2]*H;H=-I;G=-J;n=a+104|0;g[n>>2]=+g[n>>2]-I;n=a+108|0;g[n>>2]=+g[n>>2]-J;K=D-r*G;L=C-r*H;M=B+s*G;N=A+s*H;O=x-t*(F*G-E* +H);P=w+u*(z*G-y*H);Q=b+(e*12|0)|0;g[Q>>2]=L;g[i>>2]=K;R=c[d>>2]|0;S=c[f>>2]|0;T=S+(R*12|0)+8|0;g[T>>2]=O;U=c[m>>2]|0;V=S+(U*12|0)|0;g[V>>2]=N;W=S+(U*12|0)+4|0;g[W>>2]=M;X=c[m>>2]|0;Y=c[f>>2]|0;Z=Y+(X*12|0)+8|0;g[Z>>2]=P;return}else{H=+g[a+136>>2];y=+g[a+132>>2];G=(c[k>>2]=o,+g[k>>2]);z=(c[k>>2]=p,+g[k>>2]);w=(c[k>>2]=h,+g[k>>2]);E=(c[k>>2]=j,+g[k>>2]);F=+g[a+128>>2];x=+g[a+124>>2];A=G-q*H-w+l*F;B=z+q*y-E-l*x;C=q-l;D=A*+g[a+172>>2]+B*+g[a+184>>2]+C*+g[a+196>>2];J=A*+g[a+176>>2]+B*+g[a+188>>2]+C*+g[a+ +200>>2];I=A*+g[a+180>>2]+B*+g[a+192>>2]+C*v;v=-D;C=-J;j=a+104|0;g[j>>2]=+g[j>>2]-D;j=a+108|0;g[j>>2]=+g[j>>2]-J;j=a+112|0;g[j>>2]=+g[j>>2]-I;K=E-r*C;L=w-r*v;M=z+s*C;N=G+s*v;O=l-t*(x*C-F*v-I);P=q+u*(y*C-H*v-I);Q=b+(e*12|0)|0;g[Q>>2]=L;g[i>>2]=K;R=c[d>>2]|0;S=c[f>>2]|0;T=S+(R*12|0)+8|0;g[T>>2]=O;U=c[m>>2]|0;V=S+(U*12|0)|0;g[V>>2]=N;W=S+(U*12|0)+4|0;g[W>>2]=M;X=c[m>>2]|0;Y=c[f>>2]|0;Z=Y+(X*12|0)+8|0;g[Z>>2]=P;return}}function Qh(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,M=0,N=0;d=i;i=i+80|0;e=d+40|0;f=d+32|0;h=d+24|0;j=d+12|0;k=d;l=a+116|0;m=c[l>>2]|0;n=b+28|0;b=c[n>>2]|0;o=+g[b+(m*12|0)>>2];p=+g[b+(m*12|0)+4>>2];q=+g[b+(m*12|0)+8>>2];m=a+120|0;r=c[m>>2]|0;s=+g[b+(r*12|0)>>2];t=+g[b+(r*12|0)+4>>2];u=+g[b+(r*12|0)+8>>2];v=+R(+q);w=+Q(+q);x=+R(+u);y=+Q(+u);z=+g[a+156>>2];A=+g[a+160>>2];B=+g[a+164>>2];C=+g[a+168>>2];D=+g[a+80>>2]-+g[a+140>>2];E=+g[a+84>>2]-+g[a+144>>2];F=w*D-v*E;G=v*D+ +w*E;E=+g[a+88>>2]-+g[a+148>>2];w=+g[a+92>>2]-+g[a+152>>2];D=y*E-x*w;v=x*E+y*w;w=z+A;g[e>>2]=w+B*(G*G)+C*(v*v);y=-(B*(G*F))-C*(v*D);g[e+12>>2]=y;E=-(B*G)-C*v;g[e+24>>2]=E;g[e+4>>2]=y;g[e+16>>2]=w+B*(F*F)+C*(D*D);w=B*F+C*D;g[e+28>>2]=w;g[e+8>>2]=E;g[e+20>>2]=w;g[e+32>>2]=B+C;w=s+D-o-F;E=t+v-p-G;if(+g[a+68>>2]>0){g[f>>2]=w;g[f+4>>2]=E;y=+O(+(E*E+w*w));Vn(h,e,f);x=-+g[h>>2];H=-+g[h+4>>2];I=D*H-v*x;J=H;K=x;L=F*H-G*x;M=1;N=y}else{y=u-q-+g[a+96>>2];x=+O(+(w*w+E*E));g[j>>2]=w;g[j+4>>2]=E;g[j+8>>2]=y;Un(k, +e,j);E=-+g[k>>2];w=-+g[k+4>>2];H=+g[k+8>>2];I=D*w-v*E-H;J=w;K=E;L=F*w-G*E-H;M=(y>0?y:-y)<=.03490658849477768;N=x}k=c[l>>2]|0;j=c[n>>2]|0;g[j+(k*12|0)>>2]=o-z*K;g[j+(k*12|0)+4>>2]=p-z*J;k=c[n>>2]|0;g[k+((c[l>>2]|0)*12|0)+8>>2]=q-B*L;l=c[m>>2]|0;g[k+(l*12|0)>>2]=s+A*K;g[k+(l*12|0)+4>>2]=t+A*J;g[(c[n>>2]|0)+((c[m>>2]|0)*12|0)+8>>2]=u+C*I;i=d;return N<=.004999999888241291&M|0}function Rh(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0,i=0,j=0;d=c[b+48>>2]|0;e=+g[d+24>>2];f=+g[b+80>>2];h=+g[d+20>>2];i=+g[b+84>>2]; +j=f*h+e*i+ +g[d+16>>2];g[a>>2]=+g[d+12>>2]+(e*f-h*i);g[a+4>>2]=j;return}function Sh(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0,i=0,j=0;d=c[b+52>>2]|0;e=+g[d+24>>2];f=+g[b+88>>2];h=+g[d+20>>2];i=+g[b+92>>2];j=f*h+e*i+ +g[d+16>>2];g[a>>2]=+g[d+12>>2]+(e*f-h*i);g[a+4>>2]=j;return}function Th(a,b,c){a=a|0;b=b|0;c=+c;var d=0;d=+g[b+108>>2]*c;g[a>>2]=+g[b+104>>2]*c;g[a+4>>2]=d;return}function Uh(a,b){a=a|0;b=+b;return+(+g[a+112>>2]*b)}function Vh(a){a=a|0;var b=0,e=0,f=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s= +0;b=i;i=i+96|0;e=b+88|0;f=b+80|0;j=b+72|0;k=b+64|0;l=b+48|0;m=b+32|0;n=b+24|0;o=b+16|0;p=b+8|0;q=c[(c[a+48>>2]|0)+8>>2]|0;r=c[(c[a+52>>2]|0)+8>>2]|0;bo(3973,b);c[p>>2]=q;bo(4769,p);c[o>>2]=r;bo(4795,o);c[n>>2]=d[a+61>>0];bo(4821,n);s=+g[a+84>>2];h[m>>3]=+g[a+80>>2];h[m+8>>3]=s;bo(4942,m);s=+g[a+92>>2];h[l>>3]=+g[a+88>>2];h[l+8>>3]=s;bo(4984,l);h[k>>3]=+g[a+96>>2];bo(4384,k);h[j>>3]=+g[a+68>>2];bo(4670,j);h[f>>3]=+g[a+72>>2];bo(4699,f);c[e>>2]=c[a+56>>2];bo(5099,e);i=b;return}function Wh(a){a=a|0; +so(a);return}function Xh(a,b){a=a|0;b=b|0;var d=0,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,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0;Oi(a,b);c[a>>2]=1380;d=a+92|0;e=a+100|0;f=a+108|0;h=a+116|0;i=a+124|0;j=a+132|0;l=c[b+20>>2]|0;c[a+68>>2]=l;m=b+24|0;n=c[m>>2]|0;c[a+72>>2]=n;o=l;l=c[o+4>>2]|0;c[a+76>>2]=l;p=n;n=c[p+4>>2]|0;c[a+80>>2]=n;q=c[o+48>>2]|0;c[a+84>>2]=q;r=c[o+52>>2]|0;c[a+48>>2]=r;s=+g[r+20>>2];t=+g[r+24>>2];u=q;v=+g[u+20>>2];w= ++g[u+24>>2];if((l|0)==1){x=+g[r+72>>2];y=+g[u+72>>2];l=o+68|0;q=c[l+4>>2]|0;z=f;c[z>>2]=c[l>>2];c[z+4>>2]=q;q=o+76|0;z=c[q+4>>2]|0;l=d;c[l>>2]=c[q>>2];c[l+4>>2]=z;z=c[o+116>>2]|0;c[a+140>>2]=z;g[i>>2]=0;g[a+128>>2]=0;A=x-y-(c[k>>2]=z,+g[k>>2])}else{y=+g[u+16>>2];x=+g[u+12>>2];B=+g[r+16>>2];C=+g[r+12>>2];r=o+68|0;u=c[r>>2]|0;z=c[r+4>>2]|0;r=f;c[r>>2]=u;c[r+4>>2]=z;r=o+76|0;f=c[r>>2]|0;l=c[r+4>>2]|0;r=d;c[r>>2]=f;c[r+4>>2]=l;c[a+140>>2]=c[o+100>>2];r=o+84|0;o=c[r>>2]|0;d=c[r+4>>2]|0;r=i;c[r>>2]=o;c[r+ +4>>2]=d;D=(c[k>>2]=u,+g[k>>2]);E=(c[k>>2]=z,+g[k>>2]);F=(c[k>>2]=f,+g[k>>2]);G=(c[k>>2]=l,+g[k>>2]);H=C-x+(t*F-s*G);x=B-y+(s*F+t*G);G=(c[k>>2]=o,+g[k>>2])*(w*H+v*x-D);A=G+(c[k>>2]=d,+g[k>>2])*(w*x-v*H-E)}d=c[p+48>>2]|0;c[a+88>>2]=d;o=c[p+52>>2]|0;c[a+52>>2]=o;E=+g[o+20>>2];H=+g[o+24>>2];p=d;v=+g[p+20>>2];x=+g[p+24>>2];d=c[m>>2]|0;if((n|0)==1){w=+g[o+72>>2];G=+g[p+72>>2];n=d+68|0;m=c[n+4>>2]|0;l=h;c[l>>2]=c[n>>2];c[l+4>>2]=m;m=d+76|0;l=c[m+4>>2]|0;n=e;c[n>>2]=c[m>>2];c[n+4>>2]=l;l=c[d+116>>2]|0;c[a+ +144>>2]=l;g[j>>2]=0;g[a+136>>2]=0;I=w-G-(c[k>>2]=l,+g[k>>2]);J=b+28|0;K=+g[J>>2];L=a+152|0;g[L>>2]=K;M=I*K;N=A+M;O=a+148|0;g[O>>2]=N;P=a+156|0;g[P>>2]=0;return}else{G=+g[p+16>>2];w=+g[p+12>>2];D=+g[o+16>>2];t=+g[o+12>>2];o=d+68|0;p=c[o>>2]|0;l=c[o+4>>2]|0;o=h;c[o>>2]=p;c[o+4>>2]=l;o=d+76|0;h=c[o>>2]|0;n=c[o+4>>2]|0;o=e;c[o>>2]=h;c[o+4>>2]=n;c[a+144>>2]=c[d+100>>2];o=d+84|0;d=c[o>>2]|0;e=c[o+4>>2]|0;o=j;c[o>>2]=d;c[o+4>>2]=e;F=(c[k>>2]=p,+g[k>>2]);s=(c[k>>2]=l,+g[k>>2]);y=(c[k>>2]=h,+g[k>>2]);B=(c[k>> +2]=n,+g[k>>2]);C=t-w+(H*y-E*B);w=D-G+(E*y+H*B);B=(c[k>>2]=d,+g[k>>2])*(x*C+v*w-F);I=B+(c[k>>2]=e,+g[k>>2])*(x*w-v*C-s);J=b+28|0;K=+g[J>>2];L=a+152|0;g[L>>2]=K;M=I*K;N=A+M;O=a+148|0;g[O>>2]=N;P=a+156|0;g[P>>2]=0;return}}function Yh(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,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=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,Qa=0,Ra=0,Sa=0,Ta=0,Ua=0,Va=0,Wa=0,Xa=0,Ya=0,Za=0,_a=0;e=c[b+48>>2]|0;f=c[e+8>>2]|0;h=b+160|0;c[h>>2]=f;i=c[b+52>>2]|0;j=c[i+8>>2]|0;l=b+164|0;c[l>>2]=j;m=c[b+84>>2]|0;n=b+168|0;c[n>>2]=c[m+8>>2];o=c[b+88>>2]|0;p=b+172|0;c[p>>2]=c[o+8>>2];q=b+176|0;r=e+44|0;s=c[r+4>>2]|0;t=q;c[t>>2]=c[r>>2];c[t+4>>2]=s;s=b+184|0;t=i+44|0;r=c[t+4>>2]|0;u=s;c[u>>2]=c[t>>2]; +c[u+4>>2]=r;r=b+192|0;u=m+44|0;t=c[u+4>>2]|0;v=r;c[v>>2]=c[u>>2];c[v+4>>2]=t;t=b+200|0;v=o+44|0;u=c[v+4>>2]|0;w=t;c[w>>2]=c[v>>2];c[w+4>>2]=u;u=b+208|0;c[u>>2]=c[e+136>>2];w=b+212|0;c[w>>2]=c[i+136>>2];v=c[m+136>>2]|0;c[b+216>>2]=v;x=c[o+136>>2]|0;c[b+220>>2]=x;y=c[e+144>>2]|0;c[b+224>>2]=y;e=c[i+144>>2]|0;c[b+228>>2]=e;i=c[m+144>>2]|0;c[b+232>>2]=i;m=c[o+144>>2]|0;c[b+236>>2]=m;o=c[d+28>>2]|0;z=+g[o+(f*12|0)+8>>2];A=d+32|0;B=c[A>>2]|0;C=c[B+(f*12|0)>>2]|0;D=c[B+(f*12|0)+4>>2]|0;E=+g[B+(f*12|0)+8>> +2];F=+g[o+(j*12|0)+8>>2];f=c[B+(j*12|0)>>2]|0;G=c[B+(j*12|0)+4>>2]|0;H=+g[B+(j*12|0)+8>>2];j=c[n>>2]|0;I=+g[o+(j*12|0)+8>>2];J=c[B+(j*12|0)>>2]|0;K=c[B+(j*12|0)+4>>2]|0;L=+g[B+(j*12|0)+8>>2];j=c[p>>2]|0;M=+g[o+(j*12|0)+8>>2];o=c[B+(j*12|0)>>2]|0;N=c[B+(j*12|0)+4>>2]|0;O=+g[B+(j*12|0)+8>>2];P=+R(+z);S=+Q(+z);z=+R(+F);T=+Q(+F);F=+R(+I);U=+Q(+I);I=+R(+M);V=+Q(+M);j=b+272|0;g[j>>2]=0;M=(c[k>>2]=v,+g[k>>2]);W=(c[k>>2]=i,+g[k>>2]);X=(c[k>>2]=y,+g[k>>2]);Y=(c[k>>2]=x,+g[k>>2]);Z=(c[k>>2]=m,+g[k>>2]);_=(c[k>> +2]=e,+g[k>>2]);if((c[b+76>>2]|0)==1){g[b+264>>2]=1;$=X+W;aa=0;ba=0;ca=1;da=1}else{ea=+g[b+124>>2];fa=+g[b+128>>2];ga=U*ea-F*fa;ha=F*ea+U*fa;fa=+g[b+108>>2]-+g[r>>2];ea=+g[b+112>>2]-+g[b+196>>2];ia=+g[b+92>>2]-+g[q>>2];ja=+g[b+96>>2]-+g[b+180>>2];ka=ha*(U*fa-F*ea)-ga*(F*fa+U*ea);g[b+264>>2]=ka;ea=ha*(S*ia-P*ja)-ga*(P*ia+S*ja);$=M+ +g[u>>2]+ka*(W*ka)+ea*(X*ea);aa=ga;ba=ha;ca=ea;da=ka}ka=$+0;g[b+240>>2]=aa;g[b+244>>2]=ba;g[b+256>>2]=ca;g[j>>2]=ka;if((c[b+80>>2]|0)==1){q=c[b+152>>2]|0;c[b+260>>2]=q;c[b+ +268>>2]=q;$=(c[k>>2]=q,+g[k>>2]);la=$*$*(_+Z);ma=0;na=0;oa=$;pa=$}else{$=+g[b+132>>2];ea=+g[b+136>>2];ha=V*$-I*ea;ga=I*$+V*ea;ea=+g[b+116>>2]-+g[t>>2];$=+g[b+120>>2]-+g[b+204>>2];ja=+g[b+100>>2]-+g[s>>2];S=+g[b+104>>2]-+g[b+188>>2];ia=+g[b+152>>2];P=(ga*(V*ea-I*$)-ha*(I*ea+V*$))*ia;g[b+268>>2]=P;$=ia*(ga*(T*ja-z*S)-ha*(z*ja+T*S));g[b+260>>2]=$;la=ia*ia*(Y+ +g[w>>2])+P*(Z*P)+$*($*_);ma=ha*ia;na=ga*ia;oa=$;pa=P}P=ka+la;g[b+248>>2]=ma;g[b+252>>2]=na;g[j>>2]=P>0?1/P:0;if(!(a[d+24>>0]|0)){g[b+156>>2]= +0;qa=C;ra=D;sa=f;ta=G;ua=J;va=K;wa=o;xa=N;ya=E;za=H;Aa=L;Ba=O;Ca=c[h>>2]|0;Da=c[A>>2]|0;Ea=Da+(Ca*12|0)|0;c[Ea>>2]=qa;Fa=Da+(Ca*12|0)+4|0;c[Fa>>2]=ra;Ga=c[h>>2]|0;Ha=c[A>>2]|0;Ia=Ha+(Ga*12|0)+8|0;g[Ia>>2]=ya;Ja=c[l>>2]|0;Ka=Ha+(Ja*12|0)|0;c[Ka>>2]=sa;La=Ha+(Ja*12|0)+4|0;c[La>>2]=ta;Ma=c[l>>2]|0;Na=c[A>>2]|0;Oa=Na+(Ma*12|0)+8|0;g[Oa>>2]=za;Pa=c[n>>2]|0;Qa=Na+(Pa*12|0)|0;c[Qa>>2]=ua;Ra=Na+(Pa*12|0)+4|0;c[Ra>>2]=va;Sa=c[n>>2]|0;Ta=c[A>>2]|0;Ua=Ta+(Sa*12|0)+8|0;g[Ua>>2]=Aa;Va=c[p>>2]|0;Wa=Ta+(Va*12|0)| +0;c[Wa>>2]=wa;Xa=Ta+(Va*12|0)+4|0;c[Xa>>2]=xa;Ya=c[p>>2]|0;Za=c[A>>2]|0;_a=Za+(Ya*12|0)+8|0;g[_a>>2]=Ba;return}else{P=+g[b+156>>2];la=+g[u>>2]*P;u=(g[k>>2]=(c[k>>2]=C,+g[k>>2])+aa*la,c[k>>2]|0);C=(g[k>>2]=(c[k>>2]=D,+g[k>>2])+la*ba,c[k>>2]|0);la=P*+g[w>>2];w=(g[k>>2]=(c[k>>2]=f,+g[k>>2])+ma*la,c[k>>2]|0);f=(g[k>>2]=(c[k>>2]=G,+g[k>>2])+la*na,c[k>>2]|0);la=P*M;G=(g[k>>2]=(c[k>>2]=J,+g[k>>2])-aa*la,c[k>>2]|0);J=(g[k>>2]=(c[k>>2]=K,+g[k>>2])-ba*la,c[k>>2]|0);la=P*Y;K=(g[k>>2]=(c[k>>2]=o,+g[k>>2])-ma* +la,c[k>>2]|0);qa=u;ra=C;sa=w;ta=f;ua=G;va=J;wa=K;xa=(g[k>>2]=(c[k>>2]=N,+g[k>>2])-na*la,c[k>>2]|0);ya=E+P*X*ca;za=H+P*_*oa;Aa=L-P*W*da;Ba=O-P*Z*pa;Ca=c[h>>2]|0;Da=c[A>>2]|0;Ea=Da+(Ca*12|0)|0;c[Ea>>2]=qa;Fa=Da+(Ca*12|0)+4|0;c[Fa>>2]=ra;Ga=c[h>>2]|0;Ha=c[A>>2]|0;Ia=Ha+(Ga*12|0)+8|0;g[Ia>>2]=ya;Ja=c[l>>2]|0;Ka=Ha+(Ja*12|0)|0;c[Ka>>2]=sa;La=Ha+(Ja*12|0)+4|0;c[La>>2]=ta;Ma=c[l>>2]|0;Na=c[A>>2]|0;Oa=Na+(Ma*12|0)+8|0;g[Oa>>2]=za;Pa=c[n>>2]|0;Qa=Na+(Pa*12|0)|0;c[Qa>>2]=ua;Ra=Na+(Pa*12|0)+4|0;c[Ra>>2]=va; +Sa=c[n>>2]|0;Ta=c[A>>2]|0;Ua=Ta+(Sa*12|0)+8|0;g[Ua>>2]=Aa;Va=c[p>>2]|0;Wa=Ta+(Va*12|0)|0;c[Wa>>2]=wa;Xa=Ta+(Va*12|0)+4|0;c[Xa>>2]=xa;Ya=c[p>>2]|0;Za=c[A>>2]|0;_a=Za+(Ya*12|0)+8|0;g[_a>>2]=Ba;return}}function Zh(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,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;d=a+160|0;e=c[d>>2]|0;f=b+32|0;b=c[f>>2]|0;h=+g[b+(e*12|0)>>2];i=+g[b+(e*12|0)+4>>2];j=+g[b+(e*12|0)+8>>2];e=a+164|0;k=c[e>>2]|0;l=+g[b+(k*12|0)>>2];m=+g[b+ +(k*12|0)+4>>2];n=+g[b+(k*12|0)+8>>2];k=a+168|0;o=c[k>>2]|0;p=+g[b+(o*12|0)>>2];q=+g[b+(o*12|0)+4>>2];r=+g[b+(o*12|0)+8>>2];o=a+172|0;s=c[o>>2]|0;t=+g[b+(s*12|0)>>2];u=+g[b+(s*12|0)+4>>2];v=+g[b+(s*12|0)+8>>2];w=+g[a+240>>2];x=+g[a+244>>2];y=+g[a+248>>2];z=+g[a+252>>2];A=+g[a+256>>2];B=+g[a+264>>2];C=+g[a+260>>2];D=+g[a+268>>2];E=+g[a+272>>2]*((h-p)*w+(i-q)*x+((l-t)*y+(m-u)*z)+(j*A-r*B+(n*C-v*D)));F=-E;s=a+156|0;g[s>>2]=+g[s>>2]-E;E=+g[a+208>>2]*F;G=j+ +g[a+224>>2]*F*A;A=+g[a+212>>2]*F;j=n+ +g[a+228>> +2]*F*C;C=+g[a+216>>2]*F;n=r-+g[a+232>>2]*F*B;B=+g[a+220>>2]*F;r=v-+g[a+236>>2]*F*D;a=c[d>>2]|0;s=c[f>>2]|0;g[s+(a*12|0)>>2]=h+w*E;g[s+(a*12|0)+4>>2]=i+x*E;a=c[f>>2]|0;g[a+((c[d>>2]|0)*12|0)+8>>2]=G;d=c[e>>2]|0;g[a+(d*12|0)>>2]=l+y*A;g[a+(d*12|0)+4>>2]=m+A*z;d=c[f>>2]|0;g[d+((c[e>>2]|0)*12|0)+8>>2]=j;e=c[k>>2]|0;g[d+(e*12|0)>>2]=p-w*C;g[d+(e*12|0)+4>>2]=q-x*C;e=c[f>>2]|0;g[e+((c[k>>2]|0)*12|0)+8>>2]=n;k=c[o>>2]|0;g[e+(k*12|0)>>2]=t-y*B;g[e+(k*12|0)+4>>2]=u-z*B;g[(c[f>>2]|0)+((c[o>>2]|0)*12|0)+8>>2]= +r;return}function _h(a,b){a=a|0;b=b|0;var d=0,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,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=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;d=a+160|0;e=c[d>>2]|0;f=b+28|0;b=c[f>>2]|0;h=c[b+(e*12|0)>>2]|0;i=b+(e*12|0)+4|0;j=c[i>>2]|0;l=+g[b+(e*12|0)+8>>2];m=a+164|0;n=c[m>>2]|0;o=c[b+(n*12|0)>>2]|0;p=c[b+(n*12|0)+4>>2]|0;q=+g[b+(n*12|0)+8>>2];n=a+168|0;r=c[n>>2]|0;s=c[b+ +(r*12|0)>>2]|0;t=c[b+(r*12|0)+4>>2]|0;u=+g[b+(r*12|0)+8>>2];r=a+172|0;v=c[r>>2]|0;w=c[b+(v*12|0)>>2]|0;x=c[b+(v*12|0)+4>>2]|0;y=+g[b+(v*12|0)+8>>2];z=+R(+l);A=+Q(+l);B=+R(+q);C=+Q(+q);D=+R(+u);E=+Q(+u);F=+R(+y);G=+Q(+y);H=+g[a+224>>2];I=+g[a+232>>2];if((c[a+76>>2]|0)==1){J=0;K=0;L=1;M=1;N=l-u-+g[a+140>>2];O=H+I}else{P=+g[a+124>>2];S=+g[a+128>>2];T=E*P-D*S;U=D*P+E*S;V=+g[a+108>>2]-+g[a+192>>2];W=+g[a+112>>2]-+g[a+196>>2];X=+g[a+92>>2]-+g[a+176>>2];Y=+g[a+96>>2]-+g[a+180>>2];Z=A*X-z*Y;_=z*X+A*Y;Y=U* +(E*V-D*W)-T*(D*V+E*W);A=U*Z-T*_;X=(c[k>>2]=h,+g[k>>2]);z=X-(c[k>>2]=s,+g[k>>2]);X=(c[k>>2]=j,+g[k>>2]);$=z+Z;Z=X-(c[k>>2]=t,+g[k>>2])+_;J=T;K=U;L=A;M=Y;N=P*(E*$+D*Z-V)+S*(E*Z-D*$-W);O=+g[a+216>>2]+ +g[a+208>>2]+Y*(Y*I)+A*(H*A)}A=+g[a+152>>2];Y=+g[a+228>>2];if((c[a+80>>2]|0)==1){W=+g[a+236>>2];aa=A*A*(Y+W);ba=0;ca=0;da=W;ea=A;fa=A;ga=q-y-+g[a+144>>2]}else{W=+g[a+132>>2];$=+g[a+136>>2];D=G*W-F*$;Z=F*W+G*$;E=+g[a+116>>2]-+g[a+200>>2];S=+g[a+120>>2]-+g[a+204>>2];V=+g[a+100>>2]-+g[a+184>>2];P=+g[a+104>> +2]-+g[a+188>>2];U=C*V-B*P;T=B*V+C*P;P=A*(Z*(G*E-F*S)-D*(F*E+G*S));C=A*(Z*U-D*T);V=+g[a+236>>2];B=(c[k>>2]=o,+g[k>>2]);_=B-(c[k>>2]=w,+g[k>>2]);B=(c[k>>2]=p,+g[k>>2]);X=_+U;U=B-(c[k>>2]=x,+g[k>>2])+T;aa=A*A*(+g[a+220>>2]+ +g[a+212>>2])+P*(P*V)+C*(Y*C);ba=D*A;ca=Z*A;da=V;ea=C;fa=P;ga=W*(G*X+F*U-E)+$*(G*U-F*X-S)}S=O+0+aa;if(S>0)ha=-(N+ga*A-+g[a+148>>2])/S;else ha=0;S=ha*+g[a+208>>2];A=(c[k>>2]=h,+g[k>>2])+J*S;ga=(c[k>>2]=j,+g[k>>2])+K*S;S=ha*+g[a+212>>2];N=(c[k>>2]=o,+g[k>>2])+ba*S;aa=(c[k>>2]=p,+g[k>> +2])+ca*S;S=ha*+g[a+216>>2];O=(c[k>>2]=s,+g[k>>2])-J*S;J=(c[k>>2]=t,+g[k>>2])-K*S;S=ha*+g[a+220>>2];K=(c[k>>2]=w,+g[k>>2])-ba*S;ba=(c[k>>2]=x,+g[k>>2])-ca*S;g[b+(e*12|0)>>2]=A;g[i>>2]=ga;i=c[f>>2]|0;g[i+((c[d>>2]|0)*12|0)+8>>2]=l+L*(ha*H);d=c[m>>2]|0;g[i+(d*12|0)>>2]=N;g[i+(d*12|0)+4>>2]=aa;d=c[f>>2]|0;g[d+((c[m>>2]|0)*12|0)+8>>2]=q+ea*(ha*Y);m=c[n>>2]|0;g[d+(m*12|0)>>2]=O;g[d+(m*12|0)+4>>2]=J;m=c[f>>2]|0;g[m+((c[n>>2]|0)*12|0)+8>>2]=u-M*(ha*I);n=c[r>>2]|0;g[m+(n*12|0)>>2]=K;g[m+(n*12|0)+4>>2]=ba; +g[(c[f>>2]|0)+((c[r>>2]|0)*12|0)+8>>2]=y-fa*(ha*da);return 1}function $h(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0,i=0,j=0;d=c[b+48>>2]|0;e=+g[d+24>>2];f=+g[b+92>>2];h=+g[d+20>>2];i=+g[b+96>>2];j=f*h+e*i+ +g[d+16>>2];g[a>>2]=+g[d+12>>2]+(e*f-h*i);g[a+4>>2]=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;d=c[b+52>>2]|0;e=+g[d+24>>2];f=+g[b+100>>2];h=+g[d+20>>2];i=+g[b+104>>2];j=f*h+e*i+ +g[d+16>>2];g[a>>2]=+g[d+12>>2]+(e*f-h*i);g[a+4>>2]=j;return}function bi(a,b,c){a=a|0;b=b|0;c=+c;var d= +0,e=0;d=+g[b+156>>2];e=d*+g[b+244>>2]*c;g[a>>2]=d*+g[b+240>>2]*c;g[a+4>>2]=e;return}function ci(a,b){a=a|0;b=+b;return+(+g[a+156>>2]*+g[a+256>>2]*b)}function di(a,b){a=a|0;b=+b;g[a+152>>2]=b;return}function ei(a){a=a|0;var b=0,e=0,f=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;b=i;i=i+64|0;e=b+56|0;f=b+48|0;j=b+40|0;k=b+32|0;l=b+24|0;m=b+16|0;n=b+8|0;o=c[(c[a+48>>2]|0)+8>>2]|0;p=c[(c[a+52>>2]|0)+8>>2]|0;q=c[(c[a+68>>2]|0)+56>>2]|0;r=c[(c[a+72>>2]|0)+56>>2]|0;bo(4009,b);c[n>>2]=o;bo(4769,n);c[m>>2]=p;bo(4795, +m);c[l>>2]=d[a+61>>0];bo(4821,l);c[k>>2]=q;bo(4031,k);c[j>>2]=r;bo(4058,j);h[f>>3]=+g[a+152>>2];bo(5076,f);c[e>>2]=c[a+56>>2];bo(5099,e);i=b;return}function fi(a){a=a|0;so(a);return}function gi(a,b,d,e,f){a=a|0;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;c[a+8>>2]=b;c[a+12>>2]=d;h=+g[e>>2]-+g[b+12>>2];i=e+4|0;j=+g[i>>2]-+g[b+16>>2];k=b+24|0;l=+g[k>>2];m=b+20|0;n=+g[m>>2];g[a+20>>2]=h*l+j*n;g[a+24>>2]=l*j-h*n;n=+g[e>>2]-+g[d+12>>2];h=+g[i>>2]-+g[d+16>>2];j=+g[d+24>>2];l=+g[d+20>>2];g[a+ +28>>2]=n*j+h*l;g[a+32>>2]=j*h-n*l;l=+g[k>>2];n=+g[f>>2];h=+g[m>>2];j=+g[f+4>>2];g[a+36>>2]=l*n+h*j;g[a+40>>2]=l*j-n*h;g[a+44>>2]=+g[d+72>>2]-+g[b+72>>2];return}function hi(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;Oi(b,d);c[b>>2]=1432;e=b+84|0;f=d+20|0;h=c[f+4>>2]|0;i=b+68|0;c[i>>2]=c[f>>2];c[i+4>>2]=h;h=d+28|0;i=c[h+4>>2]|0;f=b+76|0;c[f>>2]=c[h>>2];c[f+4>>2]=i;i=d+36|0;f=c[i>>2]|0;h=c[i+4>>2]|0;i=e;c[i>>2]=f;c[i+4>>2]=h;j=(c[k>>2]=f,+g[k>>2]);l=(c[k>>2]=h,+g[k>>2]);m=+O(+(j*j+ +l*l));if(m<1.1920928955078125E-7){n=l;o=f}else{p=1/m;m=j*p;g[e>>2]=m;j=l*p;g[b+88>>2]=j;n=j;o=(g[k>>2]=m,c[k>>2]|0)}g[b+92>>2]=-n;c[b+96>>2]=o;c[b+100>>2]=c[d+44>>2];o=b+104|0;g[b+252>>2]=0;c[o>>2]=0;c[o+4>>2]=0;c[o+8>>2]=0;c[o+12>>2]=0;c[b+120>>2]=c[d+52>>2];c[b+124>>2]=c[d+56>>2];c[b+128>>2]=c[d+64>>2];c[b+132>>2]=c[d+68>>2];a[b+136>>0]=a[d+48>>0]|0;a[b+137>>0]=a[d+60>>0]|0;c[b+140>>2]=0;d=b+184|0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;c[d+12>>2]=0;return}function ii(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,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=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;e=c[b+48>>2]|0;f=c[e+8>>2]|0;h=b+144|0;c[h>>2]=f;i=c[b+52>>2]|0;j=c[i+8>>2]|0;l=b+148|0;c[l>>2]=j;m=e+44|0;n=c[m>>2]|0;o=c[m+4>>2]|0;m=b+152|0;c[m>>2]=n;c[m+4>>2]=o;m=i+44|0;p=c[m>>2]|0;q=c[m+4>>2]|0;m=b+160|0;c[m>>2]=p;c[m+4>>2]=q;m=c[e+136>> +2]|0;c[b+168>>2]=m;r=c[i+136>>2]|0;c[b+172>>2]=r;s=c[e+144>>2]|0;c[b+176>>2]=s;e=c[i+144>>2]|0;c[b+180>>2]=e;i=c[d+28>>2]|0;t=+g[i+(f*12|0)+8>>2];u=d+32|0;v=c[u>>2]|0;w=c[v+(f*12|0)>>2]|0;x=c[v+(f*12|0)+4>>2]|0;y=+g[v+(f*12|0)+8>>2];z=+g[i+(j*12|0)+8>>2];A=c[v+(j*12|0)>>2]|0;B=c[v+(j*12|0)+4>>2]|0;C=+g[v+(j*12|0)+8>>2];D=+R(+t);E=+Q(+t);t=+R(+z);F=+Q(+z);z=+g[b+68>>2]-(c[k>>2]=n,+g[k>>2]);G=+g[b+72>>2]-(c[k>>2]=o,+g[k>>2]);H=E*z-D*G;I=D*z+E*G;G=+g[b+76>>2]-(c[k>>2]=p,+g[k>>2]);z=+g[b+80>>2]-(c[k>> +2]=q,+g[k>>2]);J=F*G-t*z;K=t*G+F*z;z=+g[i+(j*12|0)>>2]-+g[i+(f*12|0)>>2]+J-H;F=+g[i+(j*12|0)+4>>2]-+g[i+(f*12|0)+4>>2]+K-I;G=(c[k>>2]=m,+g[k>>2]);t=(c[k>>2]=r,+g[k>>2]);L=(c[k>>2]=s,+g[k>>2]);M=(c[k>>2]=e,+g[k>>2]);N=+g[b+84>>2];O=+g[b+88>>2];P=E*N-D*O;S=D*N+E*O;g[b+184>>2]=P;g[b+188>>2]=S;O=H+z;H=I+F;I=O*S-H*P;g[b+208>>2]=I;N=J*S-K*P;g[b+212>>2]=N;T=G+t;U=L*I;V=M*N;W=T+I*U+N*V;g[b+252>>2]=W>0?1/W:W;X=+g[b+92>>2];Y=+g[b+96>>2];Z=E*X-D*Y;_=D*X+E*Y;g[b+192>>2]=Z;g[b+196>>2]=_;Y=O*_-H*Z;g[b+200>>2]= +Y;H=J*_-K*Z;g[b+204>>2]=H;K=L*Y;J=M*H;O=K+J;E=K*I+J*N;X=L+M;D=U+V;g[b+216>>2]=T+Y*K+H*J;g[b+220>>2]=O;g[b+224>>2]=E;g[b+228>>2]=O;g[b+232>>2]=X==0?1:X;g[b+236>>2]=D;g[b+240>>2]=E;g[b+244>>2]=D;g[b+248>>2]=W;do if(a[b+136>>0]|0){W=z*P+F*S;D=+g[b+124>>2];E=+g[b+120>>2];X=D-E;if((X>0?X:-X)<.009999999776482582){c[b+140>>2]=3;break}if(W<=E){e=b+140|0;if((c[e>>2]|0)==1)break;c[e>>2]=1;g[b+112>>2]=0;break}e=b+140|0;if(!(W>=D)){c[e>>2]=0;g[b+112>>2]=0;break}if((c[e>>2]|0)!=2){c[e>>2]=2;g[b+112>>2]=0}}else{c[b+ +140>>2]=0;g[b+112>>2]=0}while(0);if(!(a[b+137>>0]|0))g[b+116>>2]=0;e=b+104|0;if(!(a[d+24>>0]|0)){c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;c[e+12>>2]=0;$=w;aa=x;ba=A;ca=B;da=y;ea=C;fa=c[h>>2]|0;ga=c[u>>2]|0;ha=ga+(fa*12|0)|0;c[ha>>2]=$;ia=ga+(fa*12|0)+4|0;c[ia>>2]=aa;ja=c[h>>2]|0;ka=c[u>>2]|0;la=ka+(ja*12|0)+8|0;g[la>>2]=da;ma=c[l>>2]|0;na=ka+(ma*12|0)|0;c[na>>2]=ba;oa=ka+(ma*12|0)+4|0;c[oa>>2]=ca;pa=c[l>>2]|0;qa=c[u>>2]|0;ra=qa+(pa*12|0)+8|0;g[ra>>2]=ea;return}else{F=+g[d+8>>2];z=F*+g[e>>2];g[e>>2]=z;e= +b+108|0;D=F*+g[e>>2];g[e>>2]=D;e=b+112|0;W=F*+g[e>>2];g[e>>2]=W;e=b+116|0;E=F*+g[e>>2];g[e>>2]=E;F=E+W;W=z*Z+P*F;P=z*_+F*S;e=(g[k>>2]=(c[k>>2]=w,+g[k>>2])-G*W,c[k>>2]|0);w=(g[k>>2]=(c[k>>2]=x,+g[k>>2])-G*P,c[k>>2]|0);x=(g[k>>2]=(c[k>>2]=A,+g[k>>2])+t*W,c[k>>2]|0);$=e;aa=w;ba=x;ca=(g[k>>2]=(c[k>>2]=B,+g[k>>2])+t*P,c[k>>2]|0);da=y-L*(z*Y+D+F*I);ea=C+M*(D+z*H+F*N);fa=c[h>>2]|0;ga=c[u>>2]|0;ha=ga+(fa*12|0)|0;c[ha>>2]=$;ia=ga+(fa*12|0)+4|0;c[ia>>2]=aa;ja=c[h>>2]|0;ka=c[u>>2]|0;la=ka+(ja*12|0)+8|0;g[la>> +2]=da;ma=c[l>>2]|0;na=ka+(ma*12|0)|0;c[na>>2]=ba;oa=ka+(ma*12|0)+4|0;c[oa>>2]=ca;pa=c[l>>2]|0;qa=c[u>>2]|0;ra=qa+(pa*12|0)+8|0;g[ra>>2]=ea;return}}function ji(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,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;e=i;i=i+64|0;f=e+44|0;h=e+32|0;j=e+24|0;l=e+16|0;m=e+8|0;n=e;o=b+144|0;p=c[o>>2]|0;q=d+32|0;r=c[q>>2]|0;s=c[r+(p*12|0)>>2]|0;t=c[r+(p*12|0)+4>>2]|0;u=+g[r+(p*12|0)+8>>2];p=b+148|0;v=c[p>>2]|0;w=c[r+(v*12|0)>>2]|0;x=c[r+(v*12|0)+4>>2]|0;y=+g[r+(v*12|0)+8>>2];z=+g[b+168>>2];A=+g[b+172>>2];B=+g[b+176>>2];C=+g[b+180>>2];if((a[b+137>>0]|0)!=0?(c[b+140>>2]|0)!=3:0){D=(c[k>>2]=w,+g[k>>2]);E=(c[k>>2]=s,+g[k>>2]);F=(c[k>>2]=x,+g[k>>2]);G=(c[k>>2]=t,+g[k>>2]);H=+g[b+184>>2];I=+g[b+188>>2];J=+g[b+212>>2]; +K=+g[b+208>>2];v=b+116|0;L=+g[v>>2];M=+g[d>>2]*+g[b+128>>2];N=L+ +g[b+252>>2]*(+g[b+132>>2]-((D-E)*H+(F-G)*I+y*J-u*K));O=-M;P=N>2]=M;P=M-L;L=H*P;H=I*P;v=(g[k>>2]=E-z*L,c[k>>2]|0);d=(g[k>>2]=G-z*H,c[k>>2]|0);r=(g[k>>2]=D+A*L,c[k>>2]|0);Q=(g[k>>2]=F+A*H,c[k>>2]|0);R=d;S=r;T=v;U=u-B*(K*P);V=y+C*(J*P)}else{Q=x;R=t;S=w;T=s;U=u;V=y}y=(c[k>>2]=S,+g[k>>2]);u=(c[k>>2]=T,+g[k>>2]);P=y-u;J=(c[k>>2]=Q,+g[k>>2]);K=(c[k>>2]=R,+g[k>>2]);H=J-K;R=b+192|0;Q=b+196|0;T=b+204|0;S=b+200|0;F=P*+g[R>> +2]+H*+g[Q>>2]+V*+g[T>>2]-U*+g[S>>2];L=V-U;if((a[b+136>>0]|0)!=0?(s=b+140|0,(c[s>>2]|0)!=0):0){w=b+184|0;t=b+188|0;x=b+212|0;v=b+208|0;D=+g[b+104>>2];r=b+108|0;G=+g[r>>2];d=b+112|0;E=+g[d>>2];W=b+216|0;I=-F;M=-L;O=-(P*+g[w>>2]+H*+g[t>>2]+V*+g[x>>2]-U*+g[v>>2]);g[h>>2]=I;g[h+4>>2]=M;g[h+8>>2]=O;Un(f,W,h);h=b+104|0;g[h>>2]=+g[f>>2]+ +g[h>>2];X=f+4|0;g[r>>2]=+g[X>>2]+ +g[r>>2];Y=f+8|0;O=+g[Y>>2]+ +g[d>>2];g[d>>2]=O;switch(c[s>>2]|0){case 1:{H=O>0?O:0;g[d>>2]=H;Z=H;break}case 2:{H=O<0?O:0;g[d>>2]=H;Z= +H;break}default:Z=O}O=Z-E;Z=M-O*+g[b+244>>2];g[j>>2]=I-+g[b+240>>2]*O;g[j+4>>2]=Z;Vn(l,W,j);Z=D+ +g[l>>2];O=G+ +g[l+4>>2];g[h>>2]=Z;g[r>>2]=O;I=Z-D;D=O-G;G=+g[d>>2]-E;g[f>>2]=I;g[X>>2]=D;g[Y>>2]=G;_=D+I*+g[T>>2]+G*+g[x>>2];$=I*+g[S>>2]+D+G*+g[v>>2];aa=I*+g[Q>>2]+G*+g[t>>2];ba=I*+g[R>>2]+G*+g[w>>2];ca=z*ba;da=z*aa;ea=u-ca;fa=K-da;ga=A*ba;ha=A*aa;ia=y+ga;ja=J+ha;ka=B*$;la=C*_;ma=U-ka;na=V+la;oa=c[o>>2]|0;pa=c[q>>2]|0;qa=pa+(oa*12|0)|0;g[qa>>2]=ea;ra=pa+(oa*12|0)+4|0;g[ra>>2]=fa;sa=c[o>>2]|0;ta=c[q>> +2]|0;ua=ta+(sa*12|0)+8|0;g[ua>>2]=ma;va=c[p>>2]|0;wa=ta+(va*12|0)|0;g[wa>>2]=ia;xa=ta+(va*12|0)+4|0;g[xa>>2]=ja;ya=c[p>>2]|0;za=c[q>>2]|0;Aa=za+(ya*12|0)+8|0;g[Aa>>2]=na;i=e;return}g[n>>2]=-F;g[n+4>>2]=-L;Vn(m,b+216|0,n);L=+g[m>>2];n=b+104|0;g[n>>2]=L+ +g[n>>2];F=+g[m+4>>2];m=b+108|0;g[m>>2]=F+ +g[m>>2];_=F+L*+g[T>>2];$=L*+g[S>>2]+F;aa=L*+g[Q>>2];ba=L*+g[R>>2];ca=z*ba;da=z*aa;ea=u-ca;fa=K-da;ga=A*ba;ha=A*aa;ia=y+ga;ja=J+ha;ka=B*$;la=C*_;ma=U-ka;na=V+la;oa=c[o>>2]|0;pa=c[q>>2]|0;qa=pa+(oa*12|0)|0; +g[qa>>2]=ea;ra=pa+(oa*12|0)+4|0;g[ra>>2]=fa;sa=c[o>>2]|0;ta=c[q>>2]|0;ua=ta+(sa*12|0)+8|0;g[ua>>2]=ma;va=c[p>>2]|0;wa=ta+(va*12|0)|0;g[wa>>2]=ia;xa=ta+(va*12|0)+4|0;g[xa>>2]=ja;ya=c[p>>2]|0;za=c[q>>2]|0;Aa=za+(ya*12|0)+8|0;g[Aa>>2]=na;i=e;return}function ki(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,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0;e=i;i=i+64|0;f=e+24|0;h=e+12|0;j=e;l=b+144|0;m=c[l>> +2]|0;n=d+28|0;d=c[n>>2]|0;o=+g[d+(m*12|0)>>2];p=+g[d+(m*12|0)+4>>2];q=+g[d+(m*12|0)+8>>2];m=b+148|0;r=c[m>>2]|0;s=+g[d+(r*12|0)>>2];t=+g[d+(r*12|0)+4>>2];u=+g[d+(r*12|0)+8>>2];v=+R(+q);w=+Q(+q);x=+R(+u);y=+Q(+u);z=+g[b+168>>2];A=+g[b+172>>2];B=+g[b+176>>2];C=+g[b+180>>2];D=+g[b+68>>2]-+g[b+152>>2];E=+g[b+72>>2]-+g[b+156>>2];F=w*D-v*E;G=v*D+w*E;E=+g[b+76>>2]-+g[b+160>>2];D=+g[b+80>>2]-+g[b+164>>2];H=y*E-x*D;I=x*E+y*D;D=s+H-o-F;y=t+I-p-G;E=+g[b+84>>2];x=+g[b+88>>2];J=w*E-v*x;K=v*E+w*x;x=F+D;F=G+y;G= +K*x-J*F;E=H*K-I*J;L=+g[b+92>>2];M=+g[b+96>>2];N=w*L-v*M;O=v*L+w*M;M=O*x-N*F;F=H*O-I*N;I=N*D+O*y;H=u-q-+g[b+100>>2];x=-I;w=I>0?I:x;I=-H;L=H>0?H:I;do if(a[b+136>>0]|0){H=J*D+K*y;v=+g[b+124>>2];P=+g[b+120>>2];S=v-P;if((S>0?S:-S)<.009999999776482582){S=H<.20000000298023224?H:.20000000298023224;T=H>0?H:-H;U=S<-.20000000298023224?-.20000000298023224:S;V=1;W=w>T?w:T;break}if(H<=P){T=H-P+.004999999888241291;S=T<0?T:0;T=P-H;U=S<-.20000000298023224?-.20000000298023224:S;V=1;W=w>T?w:T;break}if(H>=v){T=H-v;v= +T+-.004999999888241291;H=v<.20000000298023224?v:.20000000298023224;U=H<0?0:H;V=1;W=w>T?w:T}else{U=0;V=0;W=w}}else{U=0;V=0;W=w}while(0);w=z+A;y=B*M;D=C*F;T=F*D+(w+M*y);H=D+y;if(V){v=E*D+G*y;y=B+C;D=B*G;S=C*E;P=S+D;g[f>>2]=T;g[f+4>>2]=H;g[f+8>>2]=v;g[f+12>>2]=H;g[f+16>>2]=y==0?1:y;g[f+20>>2]=P;g[f+24>>2]=v;g[f+28>>2]=P;g[f+32>>2]=E*S+(w+G*D);g[j>>2]=x;g[j+4>>2]=I;g[j+8>>2]=-U;Un(h,f,j);X=c[h>>2]|0;Y=+g[h+8>>2];Z=c[h+4>>2]|0}else{U=B+C;D=U==0?1:U;U=D*T-H*H;w=U!=0?1/U:U;h=(g[k>>2]=(D*x-H*I)*w,c[k>>2]| +0);X=h;Y=0;Z=(g[k>>2]=(T*I-H*x)*w,c[k>>2]|0)}w=(c[k>>2]=X,+g[k>>2]);x=J*Y+N*w;N=K*Y+O*w;O=(c[k>>2]=Z,+g[k>>2]);Z=c[l>>2]|0;X=c[n>>2]|0;g[X+(Z*12|0)>>2]=o-z*x;g[X+(Z*12|0)+4>>2]=p-z*N;Z=c[n>>2]|0;g[Z+((c[l>>2]|0)*12|0)+8>>2]=q-B*(G*Y+(O+M*w));l=c[m>>2]|0;g[Z+(l*12|0)>>2]=s+A*x;g[Z+(l*12|0)+4>>2]=t+A*N;g[(c[n>>2]|0)+((c[m>>2]|0)*12|0)+8>>2]=u+C*(E*Y+(O+F*w));i=e;return L<=.03490658849477768&W<=.004999999888241291|0}function li(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0,i=0,j=0;d=c[b+48>>2]|0;e=+g[d+24>>2]; +f=+g[b+68>>2];h=+g[d+20>>2];i=+g[b+72>>2];j=f*h+e*i+ +g[d+16>>2];g[a>>2]=+g[d+12>>2]+(e*f-h*i);g[a+4>>2]=j;return}function mi(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0,i=0,j=0;d=c[b+52>>2]|0;e=+g[d+24>>2];f=+g[b+76>>2];h=+g[d+20>>2];i=+g[b+80>>2];j=f*h+e*i+ +g[d+16>>2];g[a>>2]=+g[d+12>>2]+(e*f-h*i);g[a+4>>2]=j;return}function ni(a,b,c){a=a|0;b=b|0;c=+c;var d=0,e=0,f=0;d=+g[b+104>>2];e=+g[b+116>>2]+ +g[b+112>>2];f=(d*+g[b+196>>2]+e*+g[b+188>>2])*c;g[a>>2]=(d*+g[b+192>>2]+ +g[b+184>>2]*e)*c;g[a+4>>2]=f; +return}function oi(a,b){a=a|0;b=+b;return+(+g[a+108>>2]*b)}function pi(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,n=0,o=0;b=c[a+48>>2]|0;d=+g[b+24>>2];e=+g[a+68>>2];f=+g[b+20>>2];h=+g[a+72>>2];i=c[a+52>>2]|0;j=+g[i+24>>2];k=+g[a+76>>2];l=+g[i+20>>2];m=+g[a+80>>2];n=+g[a+84>>2];o=+g[a+88>>2];return+((+g[i+12>>2]+(j*k-l*m)-(+g[b+12>>2]+(d*e-f*h)))*(d*n-f*o)+(k*l+j*m+ +g[i+16>>2]-(e*f+d*h+ +g[b+16>>2]))*(f*n+d*o))}function qi(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,n=0,o=0;b=c[a+ +48>>2]|0;d=c[a+52>>2]|0;e=+g[a+68>>2]-+g[b+44>>2];f=+g[a+72>>2]-+g[b+48>>2];h=+g[b+24>>2];i=+g[b+20>>2];j=e*h-f*i;k=h*f+e*i;e=+g[a+76>>2]-+g[d+44>>2];f=+g[a+80>>2]-+g[d+48>>2];l=+g[d+24>>2];m=+g[d+20>>2];n=e*l-f*m;o=l*f+e*m;m=+g[a+84>>2];e=+g[a+88>>2];f=h*m-i*e;l=i*m+h*e;e=+g[b+88>>2];h=+g[d+88>>2];return+((o+ +g[d+64>>2]-(k+ +g[b+64>>2]))*(f*e)-(n+ +g[d+60>>2]-(j+ +g[b+60>>2]))*(l*e)+(f*(k*e+(+g[d+80>>2]-o*h-+g[b+80>>2]))+l*(+g[d+84>>2]+n*h-+g[b+84>>2]-j*e)))}function ri(b){b=b|0;return(a[b+136>> +0]|0)!=0|0}function si(f,h){f=f|0;h=h|0;var i=0,j=0,k=0,l=0;i=f+136|0;if((h&1|0)==(d[i>>0]|0|0))return;j=c[f+48>>2]|0;k=j+4|0;l=e[k>>1]|0;if(!(l&2)){b[k>>1]=l|2;g[j+160>>2]=0}j=c[f+52>>2]|0;l=j+4|0;k=e[l>>1]|0;if(!(k&2)){b[l>>1]=k|2;g[j+160>>2]=0}a[i>>0]=h&1;g[f+112>>2]=0;return}function ti(a,d,f){a=a|0;d=+d;f=+f;var h=0,i=0,j=0,k=0;h=a+120|0;if(!(+g[h>>2]!=d)?!(+g[a+124>>2]!=f):0)return;i=c[a+48>>2]|0;j=i+4|0;k=e[j>>1]|0;if(!(k&2)){b[j>>1]=k|2;g[i+160>>2]=0}i=c[a+52>>2]|0;k=i+4|0;j=e[k>>1]|0;if(!(j& +2)){b[k>>1]=j|2;g[i+160>>2]=0}g[h>>2]=d;g[a+124>>2]=f;g[a+112>>2]=0;return}function ui(b){b=b|0;return(a[b+137>>0]|0)!=0|0}function vi(d,f){d=d|0;f=f|0;var h=0,i=0,j=0,k=0,l=0;h=c[d+48>>2]|0;i=h+4|0;j=e[i>>1]|0;if(!(j&2)){b[i>>1]=j|2;g[h+160>>2]=0}h=c[d+52>>2]|0;j=h+4|0;i=e[j>>1]|0;if(i&2){k=d+137|0;l=f&1;a[k>>0]=l;return}b[j>>1]=i|2;g[h+160>>2]=0;k=d+137|0;l=f&1;a[k>>0]=l;return}function wi(a,d){a=a|0;d=+d;var f=0,h=0,i=0,j=0;f=c[a+48>>2]|0;h=f+4|0;i=e[h>>1]|0;if(!(i&2)){b[h>>1]=i|2;g[f+160>>2]= +0}f=c[a+52>>2]|0;i=f+4|0;h=e[i>>1]|0;if(h&2){j=a+132|0;g[j>>2]=d;return}b[i>>1]=h|2;g[f+160>>2]=0;j=a+132|0;g[j>>2]=d;return}function xi(a,d){a=a|0;d=+d;var f=0,h=0,i=0,j=0;f=c[a+48>>2]|0;h=f+4|0;i=e[h>>1]|0;if(!(i&2)){b[h>>1]=i|2;g[f+160>>2]=0}f=c[a+52>>2]|0;i=f+4|0;h=e[i>>1]|0;if(h&2){j=a+128|0;g[j>>2]=d;return}b[i>>1]=h|2;g[f+160>>2]=0;j=a+128|0;g[j>>2]=d;return}function yi(a,b){a=a|0;b=+b;return+(+g[a+116>>2]*b)}function zi(a){a=a|0;var b=0,e=0,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;b=i;i=i+144|0;e=b+136|0;f=b+128|0;j=b+120|0;k=b+112|0;l=b+104|0;m=b+96|0;n=b+88|0;o=b+80|0;p=b+64|0;q=b+48|0;r=b+32|0;s=b+24|0;t=b+16|0;u=b+8|0;v=c[(c[a+48>>2]|0)+8>>2]|0;w=c[(c[a+52>>2]|0)+8>>2]|0;bo(4104,b);c[u>>2]=v;bo(4769,u);c[t>>2]=w;bo(4795,t);c[s>>2]=d[a+61>>0];bo(4821,s);x=+g[a+72>>2];h[r>>3]=+g[a+68>>2];h[r+8>>3]=x;bo(4942,r);x=+g[a+80>>2];h[q>>3]=+g[a+76>>2];h[q+8>>3]=x;bo(4984,q);x=+g[a+88>>2];h[p>>3]=+g[a+84>>2];h[p+8>>3]=x;bo(4540,p);h[o>>3]=+g[a+100>>2];bo(4384,o);c[n>> +2]=d[a+136>>0];bo(4416,n);h[m>>3]=+g[a+120>>2];bo(4131,m);h[l>>3]=+g[a+124>>2];bo(4165,l);c[k>>2]=d[a+137>>0];bo(4580,k);h[j>>3]=+g[a+132>>2];bo(4610,j);h[f>>3]=+g[a+128>>2];bo(4199,f);c[e>>2]=c[a+56>>2];bo(5099,e);i=b;return}function Ai(a){a=a|0;so(a);return}function Bi(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;Oi(a,b);c[a>>2]=1484;d=b+20|0;e=c[d+4>>2]|0;f=a+68|0;c[f>>2]=c[d>>2];c[f+4>>2]=e;e=b+28|0;f=c[e+4>>2]|0;d=a+76|0;c[d>>2]=c[e>>2];c[d+4>>2]=f;c[a+84>>2]=c[b+36>>2];g[a+160>>2]=0;g[a+92>>2]=0;c[a+164>> +2]=0;g[a+88>>2]=0;return}function Ci(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,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,P=0,S=0,T=0,U=0;e=c[b+48>>2]|0;f=c[e+8>>2]|0;h=b+96|0;c[h>>2]=f;i=c[b+52>>2]|0;j=c[i+8>>2]|0;l=b+100|0;c[l>>2]=j;m=e+44|0;n=c[m>>2]|0;o=c[m+4>>2]|0;m=b+128|0;c[m>>2]=n;c[m+4>>2]=o;m=i+44|0;p=c[m>>2]|0;q=c[m+4>>2]|0;m=b+136|0;c[m>>2]=p;c[m+4>>2]=q;m=b+144|0;c[m>>2]=c[e+136>>2];r=b+148|0;c[r>>2]=c[i+136>>2]; +s=b+152|0;c[s>>2]=c[e+144>>2];e=b+156|0;c[e>>2]=c[i+144>>2];i=c[d+28>>2]|0;t=+g[i+(f*12|0)>>2];u=+g[i+(f*12|0)+4>>2];v=+g[i+(f*12|0)+8>>2];w=d+32|0;x=c[w>>2]|0;y=c[x+(f*12|0)>>2]|0;z=c[x+(f*12|0)+4>>2]|0;A=+g[x+(f*12|0)+8>>2];B=+g[i+(j*12|0)>>2];C=+g[i+(j*12|0)+4>>2];D=+g[i+(j*12|0)+8>>2];i=c[x+(j*12|0)>>2]|0;f=c[x+(j*12|0)+4>>2]|0;E=+g[x+(j*12|0)+8>>2];F=+R(+v);G=+Q(+v);v=+R(+D);H=+Q(+D);D=+g[b+68>>2]-(c[k>>2]=n,+g[k>>2]);I=+g[b+72>>2]-(c[k>>2]=o,+g[k>>2]);J=G*D-F*I;K=F*D+G*I;g[b+112>>2]=J;g[b+116>> +2]=K;I=+g[b+76>>2]-(c[k>>2]=p,+g[k>>2]);G=+g[b+80>>2]-(c[k>>2]=q,+g[k>>2]);D=H*I-v*G;F=v*I+H*G;g[b+120>>2]=D;g[b+124>>2]=F;G=B+D-t-J;t=C+F-u-K;q=b+104|0;g[q>>2]=G;p=b+108|0;g[p>>2]=t;u=+O(+(G*G+t*t));g[b+88>>2]=u;c[b+164>>2]=u-+g[b+84>>2]>0?2:0;if(!(u>.004999999888241291)){g[q>>2]=0;g[p>>2]=0;g[b+160>>2]=0;g[b+92>>2]=0;return}C=1/u;u=C*G;g[q>>2]=u;G=C*t;g[p>>2]=G;t=J*G-K*u;C=G*D-u*F;B=+g[m>>2];H=+g[s>>2];I=+g[r>>2];v=+g[e>>2];L=I+(B+t*(t*H))+C*(C*v);g[b+160>>2]=L!=0?1/L:0;if(!(a[d+24>>0]|0)){g[b+ +92>>2]=0;M=y;N=z;P=i;S=f;T=A;U=E}else{e=b+92|0;L=+g[d+8>>2]*+g[e>>2];g[e>>2]=L;C=u*L;u=L*G;e=(g[k>>2]=(c[k>>2]=y,+g[k>>2])-C*B,c[k>>2]|0);y=(g[k>>2]=(c[k>>2]=z,+g[k>>2])-u*B,c[k>>2]|0);z=(g[k>>2]=(c[k>>2]=i,+g[k>>2])+C*I,c[k>>2]|0);M=e;N=y;P=z;S=(g[k>>2]=(c[k>>2]=f,+g[k>>2])+u*I,c[k>>2]|0);T=A-H*(u*J-C*K);U=E+v*(u*D-C*F)}f=c[h>>2]|0;z=c[w>>2]|0;c[z+(f*12|0)>>2]=M;c[z+(f*12|0)+4>>2]=N;N=c[w>>2]|0;g[N+((c[h>>2]|0)*12|0)+8>>2]=T;h=c[l>>2]|0;c[N+(h*12|0)>>2]=P;c[N+(h*12|0)+4>>2]=S;g[(c[w>>2]|0)+((c[l>> +2]|0)*12|0)+8>>2]=U;return}function Di(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,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;d=a+96|0;e=c[d>>2]|0;f=b+32|0;h=c[f>>2]|0;i=h+(e*12|0)|0;j=+g[i>>2];k=h+(e*12|0)+4|0;l=+g[k>>2];m=+g[h+(e*12|0)+8>>2];e=a+100|0;n=c[e>>2]|0;o=+g[h+(n*12|0)>>2];p=+g[h+(n*12|0)+4>>2];q=+g[h+(n*12|0)+8>>2];r=+g[a+116>>2];s=+g[a+112>>2];t=+g[a+124>>2];u=+g[a+120>>2];v=+g[a+88>>2]-+g[a+84>>2];w=+g[a+104>>2];x=+g[a+108>>2];y=(o-q*t-(j-m*r))*w+(p+q*u-(l+m*s))* +x;if(v<0)z=y+v*+g[b+4>>2];else z=y;b=a+92|0;y=+g[b>>2];v=y-z*+g[a+160>>2];z=v>0?0:v;g[b>>2]=z;v=z-y;y=w*v;w=x*v;v=+g[a+144>>2];x=m-+g[a+152>>2]*(s*w-y*r);r=+g[a+148>>2];s=q+ +g[a+156>>2]*(w*u-y*t);g[i>>2]=j-v*y;g[k>>2]=l-v*w;k=c[f>>2]|0;g[k+((c[d>>2]|0)*12|0)+8>>2]=x;d=c[e>>2]|0;g[k+(d*12|0)>>2]=o+y*r;g[k+(d*12|0)+4>>2]=p+w*r;g[(c[f>>2]|0)+((c[e>>2]|0)*12|0)+8>>2]=s;return}function Ei(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,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0; +d=a+96|0;e=c[d>>2]|0;f=b+28|0;b=c[f>>2]|0;h=b+(e*12|0)|0;i=+g[h>>2];j=b+(e*12|0)+4|0;k=+g[j>>2];l=+g[b+(e*12|0)+8>>2];e=a+100|0;m=c[e>>2]|0;n=+g[b+(m*12|0)>>2];o=+g[b+(m*12|0)+4>>2];p=+g[b+(m*12|0)+8>>2];q=+R(+l);r=+Q(+l);s=+R(+p);t=+Q(+p);u=+g[a+68>>2]-+g[a+128>>2];v=+g[a+72>>2]-+g[a+132>>2];w=r*u-q*v;x=q*u+r*v;v=+g[a+76>>2]-+g[a+136>>2];r=+g[a+80>>2]-+g[a+140>>2];u=t*v-s*r;q=s*v+t*r;r=n+u-i-w;t=o+q-k-x;v=+O(+(r*r+t*t));if(v<1.1920928955078125E-7){y=0;z=r;A=t}else{s=1/v;y=v;z=r*s;A=t*s}m=a+84|0; +s=y-+g[m>>2];t=s<.20000000298023224?s:.20000000298023224;s=-(+g[a+160>>2]*(t<0?0:t));t=z*s;z=A*s;s=+g[a+144>>2];A=l-+g[a+152>>2]*(w*z-x*t);x=+g[a+148>>2];w=p+ +g[a+156>>2]*(u*z-q*t);g[h>>2]=i-s*t;g[j>>2]=k-s*z;j=c[f>>2]|0;g[j+((c[d>>2]|0)*12|0)+8>>2]=A;d=c[e>>2]|0;g[j+(d*12|0)>>2]=n+x*t;g[j+(d*12|0)+4>>2]=o+x*z;g[(c[f>>2]|0)+((c[e>>2]|0)*12|0)+8>>2]=w;return y-+g[m>>2]<.004999999888241291|0}function Fi(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0,i=0,j=0;d=c[b+48>>2]|0;e=+g[d+24>>2];f=+g[b+68>>2];h=+g[d+ +20>>2];i=+g[b+72>>2];j=f*h+e*i+ +g[d+16>>2];g[a>>2]=+g[d+12>>2]+(e*f-h*i);g[a+4>>2]=j;return}function Gi(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0,i=0,j=0;d=c[b+52>>2]|0;e=+g[d+24>>2];f=+g[b+76>>2];h=+g[d+20>>2];i=+g[b+80>>2];j=f*h+e*i+ +g[d+16>>2];g[a>>2]=+g[d+12>>2]+(e*f-h*i);g[a+4>>2]=j;return}function Hi(a,b,c){a=a|0;b=b|0;c=+c;var d=0;d=+g[b+92>>2]*c;c=d*+g[b+108>>2];g[a>>2]=+g[b+104>>2]*d;g[a+4>>2]=c;return}function Ii(a,b){a=a|0;b=+b;return 0}function Ji(a){a=a|0;return c[a+164>>2]|0}function Ki(a){a= +a|0;var b=0,e=0,f=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;b=i;i=i+80|0;e=b+72|0;f=b+64|0;j=b+48|0;k=b+32|0;l=b+24|0;m=b+16|0;n=b+8|0;o=c[(c[a+48>>2]|0)+8>>2]|0;p=c[(c[a+52>>2]|0)+8>>2]|0;bo(4244,b);c[n>>2]=o;bo(4769,n);c[m>>2]=p;bo(4795,m);c[l>>2]=d[a+61>>0];bo(4821,l);q=+g[a+72>>2];h[k>>3]=+g[a+68>>2];h[k+8>>3]=q;bo(4942,k);q=+g[a+80>>2];h[j>>3]=+g[a+76>>2];h[j+8>>3]=q;bo(4984,j);h[f>>3]=+g[a+84>>2];bo(4266,f);c[e>>2]=c[a+56>>2];bo(5099,e);i=b;return}function Li(a){a=a|0;so(a);return}function Mi(a,b){a= +a|0;b=b|0;var d=0,e=0;do switch(c[a>>2]|0){case 3:{d=Sn(b,176)|0;ph(d,a);e=d;return e|0}case 5:{d=Sn(b,168)|0;Jg(d,a);e=d;return e|0}case 2:{d=Sn(b,256)|0;hi(d,a);e=d;return e|0}case 1:{d=Sn(b,228)|0;Ti(d,a);e=d;return e|0}case 4:{d=Sn(b,196)|0;Ej(d,a);e=d;return e|0}case 6:{d=Sn(b,276)|0;Xh(d,a);e=d;return e|0}case 7:{d=Sn(b,224)|0;mj(d,a);e=d;return e|0}case 8:{d=Sn(b,208)|0;Nh(d,a);e=d;return e|0}case 9:{d=Sn(b,180)|0;Ah(d,a);e=d;return e|0}case 10:{d=Sn(b,168)|0;Bi(d,a);e=d;return e|0}case 11:{d= +Sn(b,192)|0;_g(d,a);e=d;return e|0}default:{e=0;return e|0}}while(0);return 0}function Ni(a,b){a=a|0;b=b|0;ib[c[(c[a>>2]|0)+24>>2]&127](a);do switch(c[a+4>>2]|0){case 3:{Tn(b,a,176);return}case 5:{Tn(b,a,168);return}case 2:{Tn(b,a,256);return}case 1:{Tn(b,a,228);return}case 4:{Tn(b,a,196);return}case 6:{Tn(b,a,276);return}case 7:{Tn(b,a,224);return}case 8:{Tn(b,a,208);return}case 9:{Tn(b,a,180);return}case 10:{Tn(b,a,168);return}case 11:{Tn(b,a,192);return}default:return}while(0)}function Oi(b,d){b= +b|0;d=d|0;c[b>>2]=1536;c[b+4>>2]=c[d>>2];c[b+8>>2]=0;c[b+12>>2]=0;c[b+48>>2]=c[d+8>>2];c[b+52>>2]=c[d+12>>2];c[b+56>>2]=0;a[b+61>>0]=a[d+16>>0]|0;a[b+60>>0]=0;c[b+64>>2]=c[d+4>>2];d=b+16|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;return}function Pi(a){a=a|0;var d=0;if(!(b[(c[a+48>>2]|0)+4>>1]&32)){d=0;return d|0}d=(b[(c[a+52>>2]|0)+4>>1]&32)!=0;return d|0}function Qi(a){a=a|0;a=i;i=i+16|0;bo(4293,a);i=a;return}function Ri(a){a=a|0;so(a);return} +function Si(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;c[a+8>>2]=b;c[a+12>>2]=d;f=+g[e>>2]-+g[b+12>>2];h=e+4|0;i=+g[h>>2]-+g[b+16>>2];j=+g[b+24>>2];k=+g[b+20>>2];g[a+20>>2]=f*j+i*k;g[a+24>>2]=j*i-f*k;k=+g[e>>2]-+g[d+12>>2];f=+g[h>>2]-+g[d+16>>2];i=+g[d+24>>2];j=+g[d+20>>2];g[a+28>>2]=k*i+f*j;g[a+32>>2]=i*f-k*j;g[a+36>>2]=+g[d+72>>2]-+g[b+72>>2];return}function Ti(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;Oi(b,d);c[b>>2]=1588;e=d+20|0;f=c[e+4>>2]|0;g=b+68|0;c[g>>2]=c[e>>2];c[g+4>>2]=f;f=d+28| +0;g=c[f+4>>2]|0;e=b+76|0;c[e>>2]=c[f>>2];c[e+4>>2]=g;c[b+116>>2]=c[d+36>>2];g=b+84|0;c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;c[g+12>>2]=0;c[b+120>>2]=c[d+44>>2];c[b+124>>2]=c[d+48>>2];c[b+104>>2]=c[d+60>>2];c[b+108>>2]=c[d+56>>2];a[b+112>>0]=a[d+40>>0]|0;a[b+100>>0]=a[d+52>>0]|0;c[b+224>>2]=0;return}function Ui(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,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=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;e=c[b+48>>2]|0;f=c[e+8>>2]|0;h=b+128|0;c[h>>2]=f;i=c[b+52>>2]|0;j=c[i+8>>2]|0;l=b+132|0;c[l>>2]=j;m=e+44|0;n=c[m>>2]|0;o=c[m+4>>2]|0;m=b+152|0;c[m>>2]=n;c[m+4>>2]=o;m=i+44|0;p=c[m>>2]|0;q=c[m+4>>2]|0;m=b+160|0;c[m>>2]=p;c[m+4>>2]=q;m=c[e+136>>2]|0;c[b+168>>2]=m;r=c[i+136>>2]|0;c[b+172>>2]=r;s=c[e+144>>2]|0;c[b+176>>2]=s;e=c[i+144>>2]|0;c[b+180>>2]=e;i=c[d+28>>2]|0;t=+g[i+(f*12|0)+8>>2];u=d+32|0;v=c[u>>2]|0;w=c[v+(f*12|0)>>2]|0;x=c[v+(f*12|0)+4>>2]|0;y=+g[v+ +(f*12|0)+8>>2];z=+g[i+(j*12|0)+8>>2];i=c[v+(j*12|0)>>2]|0;f=c[v+(j*12|0)+4>>2]|0;A=+g[v+(j*12|0)+8>>2];B=+R(+t);C=+Q(+t);D=+R(+z);E=+Q(+z);F=+g[b+68>>2]-(c[k>>2]=n,+g[k>>2]);G=+g[b+72>>2]-(c[k>>2]=o,+g[k>>2]);H=C*F-B*G;I=B*F+C*G;g[b+136>>2]=H;g[b+140>>2]=I;G=+g[b+76>>2]-(c[k>>2]=p,+g[k>>2]);C=+g[b+80>>2]-(c[k>>2]=q,+g[k>>2]);F=E*G-D*C;B=D*G+E*C;g[b+144>>2]=F;g[b+148>>2]=B;C=(c[k>>2]=m,+g[k>>2]);E=(c[k>>2]=r,+g[k>>2]);G=(c[k>>2]=s,+g[k>>2]);D=(c[k>>2]=e,+g[k>>2]);J=G+D;e=J==0;K=C+E;g[b+184>>2]=K+G* +(I*I)+D*(B*B);L=-(G*(I*H))-D*(B*F);g[b+196>>2]=L;M=-(G*I)-D*B;g[b+208>>2]=M;g[b+188>>2]=L;g[b+200>>2]=K+G*(H*H)+D*(F*F);K=G*H+D*F;g[b+212>>2]=K;g[b+192>>2]=M;g[b+204>>2]=K;g[b+216>>2]=J;g[b+220>>2]=J>0?1/J:J;if(e|(a[b+100>>0]|0)==0)g[b+96>>2]=0;do if(e|(a[b+112>>0]|0)==0)c[b+224>>2]=0;else{J=z-t-+g[b+116>>2];K=+g[b+124>>2];M=+g[b+120>>2];L=K-M;if((L>0?L:-L)<.06981317698955536){c[b+224>>2]=3;break}if(J<=M){s=b+224|0;if((c[s>>2]|0)!=1)g[b+92>>2]=0;c[s>>2]=1;break}s=b+224|0;if(!(J>=K)){c[s>>2]=0;g[b+ +92>>2]=0;break}if((c[s>>2]|0)!=2)g[b+92>>2]=0;c[s>>2]=2}while(0);e=b+84|0;if(!(a[d+24>>0]|0)){c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;c[e+12>>2]=0;N=w;O=x;P=i;S=f;T=y;U=A;V=c[h>>2]|0;W=c[u>>2]|0;X=W+(V*12|0)|0;c[X>>2]=N;Y=W+(V*12|0)+4|0;c[Y>>2]=O;Z=c[h>>2]|0;_=c[u>>2]|0;$=_+(Z*12|0)+8|0;g[$>>2]=T;aa=c[l>>2]|0;ba=_+(aa*12|0)|0;c[ba>>2]=P;ca=_+(aa*12|0)+4|0;c[ca>>2]=S;da=c[l>>2]|0;ea=c[u>>2]|0;fa=ea+(da*12|0)+8|0;g[fa>>2]=U;return}else{t=+g[d+8>>2];z=t*+g[e>>2];g[e>>2]=z;e=b+88|0;K=t*+g[e>>2];g[e>>2]=K;e= +b+92|0;J=t*+g[e>>2];g[e>>2]=J;e=b+96|0;M=t*+g[e>>2];g[e>>2]=M;e=(g[k>>2]=(c[k>>2]=w,+g[k>>2])-C*z,c[k>>2]|0);w=(g[k>>2]=(c[k>>2]=x,+g[k>>2])-C*K,c[k>>2]|0);x=(g[k>>2]=(c[k>>2]=i,+g[k>>2])+E*z,c[k>>2]|0);N=e;O=w;P=x;S=(g[k>>2]=(c[k>>2]=f,+g[k>>2])+E*K,c[k>>2]|0);T=y-G*(J+(M+(K*H-z*I)));U=A+D*(J+(M+(K*F-z*B)));V=c[h>>2]|0;W=c[u>>2]|0;X=W+(V*12|0)|0;c[X>>2]=N;Y=W+(V*12|0)+4|0;c[Y>>2]=O;Z=c[h>>2]|0;_=c[u>>2]|0;$=_+(Z*12|0)+8|0;g[$>>2]=T;aa=c[l>>2]|0;ba=_+(aa*12|0)|0;c[ba>>2]=P;ca=_+(aa*12|0)+4|0;c[ca>> +2]=S;da=c[l>>2]|0;ea=c[u>>2]|0;fa=ea+(da*12|0)+8|0;g[fa>>2]=U;return}}function Vi(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,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;e=i;i=i+80|0;f=e+60|0;h=e+48|0;j=e+40|0;l=e+32|0;m=e+24|0;n=e+16|0;o=e+8|0;p=e;q=b+128|0;r= +c[q>>2]|0;s=d+32|0;t=c[s>>2]|0;u=c[t+(r*12|0)>>2]|0;v=c[t+(r*12|0)+4>>2]|0;w=+g[t+(r*12|0)+8>>2];r=b+132|0;x=c[r>>2]|0;y=c[t+(x*12|0)>>2]|0;z=c[t+(x*12|0)+4>>2]|0;A=+g[t+(x*12|0)+8>>2];B=+g[b+168>>2];C=+g[b+172>>2];D=+g[b+176>>2];E=+g[b+180>>2];x=D+E==0;if((a[b+100>>0]|0)!=0?!(x|(c[b+224>>2]|0)==3):0){t=b+96|0;F=+g[t>>2];G=+g[d>>2]*+g[b+104>>2];H=F-+g[b+220>>2]*(A-w-+g[b+108>>2]);I=-G;J=H>2]=G;J=G-F;K=w-D*J;L=A+E*J}else{K=w;L=A}if((a[b+112>>0]|0)!=0?(t=b+224|0,!(x|(c[t>>2]|0)== +0)):0){x=b+148|0;d=b+144|0;A=(c[k>>2]=y,+g[k>>2]);w=(c[k>>2]=z,+g[k>>2]);J=(c[k>>2]=u,+g[k>>2]);F=(c[k>>2]=v,+g[k>>2]);M=b+140|0;N=b+136|0;G=A-L*+g[x>>2]-J+K*+g[M>>2];I=w+L*+g[d>>2]-F-K*+g[N>>2];g[f>>2]=G;g[f+4>>2]=I;g[f+8>>2]=L-K;O=b+184|0;Un(h,O,f);H=+g[h>>2];P=+g[h+4>>2];Q=+g[h+8>>2];R=-Q;h=(g[k>>2]=-H,c[k>>2]|0);f=(g[k>>2]=-P,c[k>>2]|0);a:do switch(c[t>>2]|0){case 3:{S=b+84|0;g[S>>2]=+g[S>>2]-H;S=b+88|0;g[S>>2]=+g[S>>2]-P;S=b+92|0;g[S>>2]=+g[S>>2]-Q;T=h;U=f;V=R;break}case 1:{S=b+84|0;W=b+92|0; +X=+g[W>>2];Y=X-Q;if(Y<0){Z=X*+g[b+212>>2]-I;g[j>>2]=X*+g[b+208>>2]-G;g[j+4>>2]=Z;Vn(l,O,j);_=c[l>>2]|0;$=c[l+4>>2]|0;Z=-+g[W>>2];g[S>>2]=(c[k>>2]=_,+g[k>>2])+ +g[S>>2];aa=b+88|0;g[aa>>2]=(c[k>>2]=$,+g[k>>2])+ +g[aa>>2];g[W>>2]=0;T=_;U=$;V=Z;break a}else{g[S>>2]=+g[S>>2]-H;S=b+88|0;g[S>>2]=+g[S>>2]-P;g[W>>2]=Y;T=h;U=f;V=R;break a}break}case 2:{W=b+84|0;S=b+92|0;Y=+g[S>>2];Z=Y-Q;if(Z>0){X=Y*+g[b+212>>2]-I;g[m>>2]=Y*+g[b+208>>2]-G;g[m+4>>2]=X;Vn(n,O,m);$=c[n>>2]|0;_=c[n+4>>2]|0;X=-+g[S>>2];g[W>>2]=(c[k>> +2]=$,+g[k>>2])+ +g[W>>2];aa=b+88|0;g[aa>>2]=(c[k>>2]=_,+g[k>>2])+ +g[aa>>2];g[S>>2]=0;T=$;U=_;V=X;break a}else{g[W>>2]=+g[W>>2]-H;W=b+88|0;g[W>>2]=+g[W>>2]-P;g[S>>2]=Z;T=h;U=f;V=R;break a}break}default:{T=h;U=f;V=R}}while(0);R=(c[k>>2]=T,+g[k>>2]);P=(c[k>>2]=U,+g[k>>2]);ba=F-B*P;ca=J-B*R;da=w+C*P;ea=A+C*R;fa=V+(P*+g[d>>2]-R*+g[x>>2]);ga=V+(P*+g[N>>2]-R*+g[M>>2]);ha=D*ga;ia=E*fa;ja=K-ha;ka=L+ia;la=c[q>>2]|0;ma=c[s>>2]|0;na=ma+(la*12|0)|0;g[na>>2]=ca;oa=ma+(la*12|0)+4|0;g[oa>>2]=ba;pa=c[q>>2]|0;qa= +c[s>>2]|0;ra=qa+(pa*12|0)+8|0;g[ra>>2]=ja;sa=c[r>>2]|0;ta=qa+(sa*12|0)|0;g[ta>>2]=ea;ua=qa+(sa*12|0)+4|0;g[ua>>2]=da;va=c[r>>2]|0;wa=c[s>>2]|0;xa=wa+(va*12|0)+8|0;g[xa>>2]=ka;i=e;return}M=b+148|0;N=b+144|0;R=(c[k>>2]=y,+g[k>>2]);P=(c[k>>2]=z,+g[k>>2]);V=(c[k>>2]=u,+g[k>>2]);A=(c[k>>2]=v,+g[k>>2]);v=b+140|0;u=b+136|0;w=-(P+L*+g[N>>2]-A-K*+g[u>>2]);g[p>>2]=-(R-L*+g[M>>2]-V+K*+g[v>>2]);g[p+4>>2]=w;Vn(o,b+184|0,p);w=+g[o>>2];p=b+84|0;g[p>>2]=w+ +g[p>>2];J=+g[o+4>>2];o=b+88|0;g[o>>2]=J+ +g[o>>2];ba=A- +B*J;ca=V-B*w;da=P+C*J;ea=R+C*w;fa=J*+g[N>>2]-w*+g[M>>2];ga=J*+g[u>>2]-w*+g[v>>2];ha=D*ga;ia=E*fa;ja=K-ha;ka=L+ia;la=c[q>>2]|0;ma=c[s>>2]|0;na=ma+(la*12|0)|0;g[na>>2]=ca;oa=ma+(la*12|0)+4|0;g[oa>>2]=ba;pa=c[q>>2]|0;qa=c[s>>2]|0;ra=qa+(pa*12|0)+8|0;g[ra>>2]=ja;sa=c[r>>2]|0;ta=qa+(sa*12|0)|0;g[ta>>2]=ea;ua=qa+(sa*12|0)+4|0;g[ua>>2]=da;va=c[r>>2]|0;wa=c[s>>2]|0;xa=wa+(va*12|0)+8|0;g[xa>>2]=ka;i=e;return}function Wi(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;e=b+128|0;f=c[e>>2]|0;h=d+28|0;d=c[h>>2]|0;i=+g[d+(f*12|0)>>2];j=+g[d+(f*12|0)+4>>2];k=+g[d+(f*12|0)+8>>2];f=b+132|0;l=c[f>>2]|0;m=+g[d+(l*12|0)>>2];n=+g[d+(l*12|0)+4>>2];o=+g[d+(l*12|0)+8>>2];p=+g[b+176>>2];q=+g[b+180>>2];if((a[b+112>>0]|0)!=0?(l=c[b+224>>2]|0,!((l|0)==0|p+q==0)):0){r=o-k-+g[b+116>>2];switch(l|0){case 3:{s=r-+g[b+120>>2];t=s<.13962635397911072?s:.13962635397911072;s=t<-.13962635397911072?-.13962635397911072:t;u=s>0?s:-s;v=-(+g[b+220>> +2]*s);break}case 1:{s=r-+g[b+120>>2];t=s+.03490658849477768;w=t<0?t:0;u=-s;v=-(+g[b+220>>2]*(w<-.13962635397911072?-.13962635397911072:w));break}case 2:{w=r-+g[b+124>>2];r=w+-.03490658849477768;s=r<.13962635397911072?r:.13962635397911072;u=w;v=-(+g[b+220>>2]*(s<0?0:s));break}default:{u=0;v=0}}x=k-v*p;y=o+v*q;z=u}else{x=k;y=o;z=0}o=+R(+x);k=+Q(+x);u=+R(+y);v=+Q(+y);s=+g[b+68>>2]-+g[b+152>>2];w=+g[b+72>>2]-+g[b+156>>2];r=k*s-o*w;t=o*s+k*w;w=+g[b+76>>2]-+g[b+160>>2];k=+g[b+80>>2]-+g[b+164>>2];s=v*w- +u*k;o=u*w+v*k;k=m+s-i-r;v=n+o-j-t;w=+O(+(k*k+v*v));u=+g[b+168>>2];A=+g[b+172>>2];B=u+A;C=B+t*(t*p)+o*(o*q);D=r*p;E=s*q;F=-(t*D)-o*E;G=B+r*D+s*E;E=C*G-F*F;D=E!=0?1/E:E;E=-((k*G-v*F)*D);G=-((v*C-k*F)*D);b=c[e>>2]|0;l=c[h>>2]|0;g[l+(b*12|0)>>2]=i-u*E;g[l+(b*12|0)+4>>2]=j-u*G;b=c[h>>2]|0;g[b+((c[e>>2]|0)*12|0)+8>>2]=x-p*(r*G-t*E);e=c[f>>2]|0;g[b+(e*12|0)>>2]=m+A*E;g[b+(e*12|0)+4>>2]=n+A*G;g[(c[h>>2]|0)+((c[f>>2]|0)*12|0)+8>>2]=y+q*(s*G-o*E);return z<=.03490658849477768&w<=.004999999888241291|0}function Xi(a, +b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0,i=0,j=0;d=c[b+48>>2]|0;e=+g[d+24>>2];f=+g[b+68>>2];h=+g[d+20>>2];i=+g[b+72>>2];j=f*h+e*i+ +g[d+16>>2];g[a>>2]=+g[d+12>>2]+(e*f-h*i);g[a+4>>2]=j;return}function Yi(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0,i=0,j=0;d=c[b+52>>2]|0;e=+g[d+24>>2];f=+g[b+76>>2];h=+g[d+20>>2];i=+g[b+80>>2];j=f*h+e*i+ +g[d+16>>2];g[a>>2]=+g[d+12>>2]+(e*f-h*i);g[a+4>>2]=j;return}function Zi(a,b,c){a=a|0;b=b|0;c=+c;var d=0;d=+g[b+88>>2]*c;g[a>>2]=+g[b+84>>2]*c;g[a+4>>2]=d;return}function _i(a, +b){a=a|0;b=+b;return+(+g[a+92>>2]*b)}function $i(a){a=a|0;return+(+g[(c[a+52>>2]|0)+72>>2]-+g[(c[a+48>>2]|0)+72>>2]-+g[a+116>>2])}function aj(a){a=a|0;return+(+g[(c[a+52>>2]|0)+88>>2]-+g[(c[a+48>>2]|0)+88>>2])}function bj(b){b=b|0;return(a[b+100>>0]|0)!=0|0}function cj(d,f){d=d|0;f=f|0;var h=0,i=0,j=0,k=0,l=0;h=c[d+48>>2]|0;i=h+4|0;j=e[i>>1]|0;if(!(j&2)){b[i>>1]=j|2;g[h+160>>2]=0}h=c[d+52>>2]|0;j=h+4|0;i=e[j>>1]|0;if(i&2){k=d+100|0;l=f&1;a[k>>0]=l;return}b[j>>1]=i|2;g[h+160>>2]=0;k=d+100|0;l=f&1; +a[k>>0]=l;return}function dj(a,b){a=a|0;b=+b;return+(+g[a+96>>2]*b)}function ej(a,d){a=a|0;d=+d;var f=0,h=0,i=0,j=0;f=c[a+48>>2]|0;h=f+4|0;i=e[h>>1]|0;if(!(i&2)){b[h>>1]=i|2;g[f+160>>2]=0}f=c[a+52>>2]|0;i=f+4|0;h=e[i>>1]|0;if(h&2){j=a+108|0;g[j>>2]=d;return}b[i>>1]=h|2;g[f+160>>2]=0;j=a+108|0;g[j>>2]=d;return}function fj(a,d){a=a|0;d=+d;var f=0,h=0,i=0,j=0;f=c[a+48>>2]|0;h=f+4|0;i=e[h>>1]|0;if(!(i&2)){b[h>>1]=i|2;g[f+160>>2]=0}f=c[a+52>>2]|0;i=f+4|0;h=e[i>>1]|0;if(h&2){j=a+104|0;g[j>>2]=d;return}b[i>> +1]=h|2;g[f+160>>2]=0;j=a+104|0;g[j>>2]=d;return}function gj(b){b=b|0;return(a[b+112>>0]|0)!=0|0}function hj(f,h){f=f|0;h=h|0;var i=0,j=0,k=0,l=0;i=f+112|0;if((h&1|0)==(d[i>>0]|0|0))return;j=c[f+48>>2]|0;k=j+4|0;l=e[k>>1]|0;if(!(l&2)){b[k>>1]=l|2;g[j+160>>2]=0}j=c[f+52>>2]|0;l=j+4|0;k=e[l>>1]|0;if(!(k&2)){b[l>>1]=k|2;g[j+160>>2]=0}a[i>>0]=h&1;g[f+92>>2]=0;return}function ij(a,d,f){a=a|0;d=+d;f=+f;var h=0,i=0,j=0,k=0;h=a+120|0;if(!(+g[h>>2]!=d)?!(+g[a+124>>2]!=f):0)return;i=c[a+48>>2]|0;j=i+4|0;k=e[j>> +1]|0;if(!(k&2)){b[j>>1]=k|2;g[i+160>>2]=0}i=c[a+52>>2]|0;k=i+4|0;j=e[k>>1]|0;if(!(j&2)){b[k>>1]=j|2;g[i+160>>2]=0}g[a+92>>2]=0;g[h>>2]=d;g[a+124>>2]=f;return}function jj(a){a=a|0;var b=0,e=0,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;b=i;i=i+128|0;e=b+120|0;f=b+112|0;j=b+104|0;k=b+96|0;l=b+88|0;m=b+80|0;n=b+72|0;o=b+64|0;p=b+48|0;q=b+32|0;r=b+24|0;s=b+16|0;t=b+8|0;u=c[(c[a+48>>2]|0)+8>>2]|0;v=c[(c[a+52>>2]|0)+8>>2]|0;bo(4358,b);c[t>>2]=u;bo(4769,t);c[s>>2]=v;bo(4795,s);c[r>>2]=d[a+ +61>>0];bo(4821,r);w=+g[a+72>>2];h[q>>3]=+g[a+68>>2];h[q+8>>3]=w;bo(4942,q);w=+g[a+80>>2];h[p>>3]=+g[a+76>>2];h[p+8>>3]=w;bo(4984,p);h[o>>3]=+g[a+116>>2];bo(4384,o);c[n>>2]=d[a+112>>0];bo(4416,n);h[m>>3]=+g[a+120>>2];bo(4446,m);h[l>>3]=+g[a+124>>2];bo(4474,l);c[k>>2]=d[a+100>>0];bo(4580,k);h[j>>3]=+g[a+108>>2];bo(4610,j);h[f>>3]=+g[a+104>>2];bo(4638,f);c[e>>2]=c[a+56>>2];bo(5099,e);i=b;return}function kj(a){a=a|0;so(a);return}function lj(a,b,d,e,f){a=a|0;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;c[a+8>>2]=b;c[a+12>>2]=d;h=+g[e>>2]-+g[b+12>>2];i=e+4|0;j=+g[i>>2]-+g[b+16>>2];k=b+24|0;l=+g[k>>2];m=b+20|0;n=+g[m>>2];g[a+20>>2]=h*l+j*n;g[a+24>>2]=l*j-h*n;n=+g[e>>2]-+g[d+12>>2];h=+g[i>>2]-+g[d+16>>2];j=+g[d+24>>2];l=+g[d+20>>2];g[a+28>>2]=n*j+h*l;g[a+32>>2]=j*h-n*l;l=+g[k>>2];n=+g[f>>2];h=+g[m>>2];j=+g[f+4>>2];g[a+36>>2]=l*n+h*j;g[a+40>>2]=l*j-n*h;return}function mj(b,d){b=b|0;d=d|0;var e=0,f=0,h=0;Oi(b,d);c[b>>2]=1640;e=d+20|0;f=c[e+4>>2]|0;h=b+76|0;c[h>>2]=c[e>>2];c[h+4>>2]=f;f=d+ +28|0;h=c[f+4>>2]|0;e=b+84|0;c[e>>2]=c[f>>2];c[e+4>>2]=h;h=d+36|0;e=c[h>>2]|0;f=c[h+4>>2]|0;h=b+92|0;c[h>>2]=e;c[h+4>>2]=f;g[b+100>>2]=-(c[k>>2]=f,+g[k>>2]);c[b+104>>2]=e;g[b+204>>2]=0;g[b+108>>2]=0;g[b+208>>2]=0;g[b+112>>2]=0;g[b+212>>2]=0;g[b+116>>2]=0;c[b+120>>2]=c[d+48>>2];c[b+124>>2]=c[d+52>>2];a[b+128>>0]=a[d+44>>0]|0;c[b+68>>2]=c[d+56>>2];c[b+72>>2]=c[d+60>>2];g[b+216>>2]=0;g[b+220>>2]=0;d=b+172|0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;c[d+12>>2]=0;return}function nj(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,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=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;e=c[b+48>>2]|0;f=c[e+8>>2]|0;h=b+132|0;c[h>>2]=f;i=c[b+52>>2]|0;j=c[i+8>>2]|0;l=b+136|0;c[l>>2]=j;m=e+44|0;n=c[m>>2]|0;o=c[m+4>>2]|0;m=b+140|0;c[m>>2]=n;c[m+4>>2]=o;m=i+44|0;p=c[m>>2]|0;q=c[m+4>>2]|0;m=b+148|0;c[m>>2]=p;c[m+4>>2]=q;m=c[e+136>>2]|0;r=b+156| +0;c[r>>2]=m;s=c[i+136>>2]|0;t=b+160|0;c[t>>2]=s;u=c[e+144>>2]|0;e=b+164|0;c[e>>2]=u;v=+g[i+144>>2];i=b+168|0;g[i>>2]=v;w=(c[k>>2]=m,+g[k>>2]);x=(c[k>>2]=s,+g[k>>2]);y=(c[k>>2]=u,+g[k>>2]);u=c[d+28>>2]|0;z=+g[u+(f*12|0)+8>>2];s=d+32|0;m=c[s>>2]|0;A=c[m+(f*12|0)>>2]|0;B=c[m+(f*12|0)+4>>2]|0;C=+g[m+(f*12|0)+8>>2];D=+g[u+(j*12|0)+8>>2];E=c[m+(j*12|0)>>2]|0;F=c[m+(j*12|0)+4>>2]|0;G=+g[m+(j*12|0)+8>>2];H=+R(+z);I=+Q(+z);z=+R(+D);J=+Q(+D);D=+g[b+76>>2]-(c[k>>2]=n,+g[k>>2]);K=+g[b+80>>2]-(c[k>>2]=o,+g[k>> +2]);L=I*D-H*K;M=H*D+I*K;K=+g[b+84>>2]-(c[k>>2]=p,+g[k>>2]);D=+g[b+88>>2]-(c[k>>2]=q,+g[k>>2]);N=J*K-z*D;O=z*K+J*D;D=+g[u+(j*12|0)>>2]+N-+g[u+(f*12|0)>>2]-L;J=+g[u+(j*12|0)+4>>2]+O-+g[u+(f*12|0)+4>>2]-M;K=+g[b+100>>2];z=+g[b+104>>2];P=I*K-H*z;S=H*K+I*z;g[b+180>>2]=P;g[b+184>>2]=S;z=L+D;L=M+J;M=S*z-P*L;g[b+196>>2]=M;K=N*S-O*P;g[b+200>>2]=K;T=w+x;x=T+M*(y*M)+K*(v*K);g[b+204>>2]=x>0?1/x:x;f=b+212|0;g[f>>2]=0;u=b+216|0;g[u>>2]=0;j=b+220|0;g[j>>2]=0;x=+g[b+68>>2];if(x>0){w=+g[b+92>>2];U=+g[b+96>>2];V=I* +w-H*U;W=H*w+I*U;g[b+172>>2]=V;g[b+176>>2]=W;U=z*W-L*V;g[b+188>>2]=U;L=N*W-O*V;g[b+192>>2]=L;O=T+U*(y*U)+L*(v*L);if(O>0?(L=1/O,U=x*6.2831854820251465,x=U*(L*U),T=+g[d>>2],N=T*(U*(L*2*+g[b+72>>2])+T*x),L=N>0?1/N:N,g[j>>2]=L,g[u>>2]=(D*V+J*W)*T*x*L,x=O+L,g[f>>2]=x,x>0):0)g[f>>2]=1/x}else g[b+116>>2]=0;if(a[b+128>>0]|0){x=v+y;f=b+208|0;g[f>>2]=x;if(x>0)g[f>>2]=1/x}else{g[b+208>>2]=0;g[b+112>>2]=0}if(!(a[d+24>>0]|0)){g[b+108>>2]=0;g[b+116>>2]=0;g[b+112>>2]=0;X=A;Y=B;Z=E;_=F;$=C;aa=G;ba=c[h>>2]|0;ca=c[s>> +2]|0;da=ca+(ba*12|0)|0;c[da>>2]=X;ea=ca+(ba*12|0)+4|0;c[ea>>2]=Y;fa=c[h>>2]|0;ga=c[s>>2]|0;ha=ga+(fa*12|0)+8|0;g[ha>>2]=$;ia=c[l>>2]|0;ja=ga+(ia*12|0)|0;c[ja>>2]=Z;ka=ga+(ia*12|0)+4|0;c[ka>>2]=_;la=c[l>>2]|0;ma=c[s>>2]|0;na=ma+(la*12|0)+8|0;g[na>>2]=aa;return}else{x=+g[d+8>>2];d=b+108|0;y=x*+g[d>>2];g[d>>2]=y;d=b+116|0;v=x*+g[d>>2];g[d>>2]=v;d=b+112|0;L=x*+g[d>>2];g[d>>2]=L;x=y*P+v*+g[b+172>>2];P=y*S+v*+g[b+176>>2];S=+g[r>>2];r=(g[k>>2]=(c[k>>2]=A,+g[k>>2])-x*S,c[k>>2]|0);A=(g[k>>2]=(c[k>>2]=B,+g[k>> +2])-P*S,c[k>>2]|0);S=+g[t>>2];t=(g[k>>2]=(c[k>>2]=E,+g[k>>2])+x*S,c[k>>2]|0);X=r;Y=A;Z=t;_=(g[k>>2]=(c[k>>2]=F,+g[k>>2])+P*S,c[k>>2]|0);$=C-(L+(y*M+v*+g[b+188>>2]))*+g[e>>2];aa=G+(L+(y*K+v*+g[b+192>>2]))*+g[i>>2];ba=c[h>>2]|0;ca=c[s>>2]|0;da=ca+(ba*12|0)|0;c[da>>2]=X;ea=ca+(ba*12|0)+4|0;c[ea>>2]=Y;fa=c[h>>2]|0;ga=c[s>>2]|0;ha=ga+(fa*12|0)+8|0;g[ha>>2]=$;ia=c[l>>2]|0;ja=ga+(ia*12|0)|0;c[ja>>2]=Z;ka=ga+(ia*12|0)+4|0;c[ka>>2]=_;la=c[l>>2]|0;ma=c[s>>2]|0;na=ma+(la*12|0)+8|0;g[na>>2]=aa;return}}function oj(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,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;d=+g[a+156>>2];e=+g[a+160>>2];f=+g[a+164>>2];h=+g[a+168>>2];i=a+132|0;j=c[i>>2]|0;k=b+32|0;l=c[k>>2]|0;m=+g[l+(j*12|0)>>2];n=+g[l+(j*12|0)+4>>2];o=+g[l+(j*12|0)+8>>2];j=a+136|0;p=c[j>>2]|0;q=+g[l+(p*12|0)>>2];r=+g[l+(p*12|0)+4>>2];s=+g[l+(p*12|0)+8>>2];t=+g[a+172>>2];u=+g[a+176>>2];v=+g[a+192>>2];w=+g[a+188>>2];p=a+116|0;x=+g[p>>2];y=+g[a+212>>2]*((q-m)*t+(r-n)*u+s*v-o*w+ +g[a+216>>2]+ +g[a+ +220>>2]*x);z=-y;g[p>>2]=x-y;y=t*z;t=u*z;u=m-d*y;m=n-d*t;n=o-f*(w*z);w=q+e*y;y=r+e*t;t=s+h*(v*z);p=a+112|0;z=+g[p>>2];v=+g[b>>2]*+g[a+120>>2];s=z-+g[a+208>>2]*(t-n-+g[a+124>>2]);r=-v;q=s>2]=v;q=v-z;z=n-f*q;n=t+h*q;q=+g[a+180>>2];t=+g[a+184>>2];v=+g[a+200>>2];r=+g[a+196>>2];s=+g[a+204>>2]*((w-u)*q+(y-m)*t+v*n-r*z);o=-s;p=a+108|0;g[p>>2]=+g[p>>2]-s;s=q*o;q=t*o;p=c[i>>2]|0;a=c[k>>2]|0;g[a+(p*12|0)>>2]=u-d*s;g[a+(p*12|0)+4>>2]=m-d*q;p=c[k>>2]|0;g[p+((c[i>>2]|0)*12|0)+8>>2]=z-f*(r* +o);i=c[j>>2]|0;g[p+(i*12|0)>>2]=w+e*s;g[p+(i*12|0)+4>>2]=y+e*q;g[(c[k>>2]|0)+((c[j>>2]|0)*12|0)+8>>2]=n+h*(v*o);return}function pj(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,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;d=a+132|0;e=c[d>>2]|0;f=b+28|0;b=c[f>>2]|0;h=b+(e*12|0)|0;i=+g[h>>2];j=b+(e*12|0)+4|0;k=+g[j>>2];l=+g[b+(e*12|0)+8>>2];e=a+136|0;m=c[e>>2]|0;n=+g[b+(m*12|0)>>2];o=+g[b+(m*12|0)+4>>2];p=+g[b+(m*12|0)+8>>2];q=+R(+l);r=+Q(+l);s=+R(+p);t= ++Q(+p);u=+g[a+76>>2]-+g[a+140>>2];v=+g[a+80>>2]-+g[a+144>>2];w=r*u-q*v;x=q*u+r*v;v=+g[a+84>>2]-+g[a+148>>2];u=+g[a+88>>2]-+g[a+152>>2];y=t*v-s*u;z=s*v+t*u;u=n-i+y-w;t=o-k+z-x;v=+g[a+100>>2];s=+g[a+104>>2];A=r*v-q*s;B=q*v+r*s;s=A*u+B*t;r=+g[a+156>>2];v=+g[a+160>>2];q=+g[a+164>>2];C=+g[a+196>>2];D=+g[a+168>>2];E=+g[a+200>>2];F=r+v+C*(q*C)+E*(D*E);E=-s;C=F!=0?E/F:0;F=A*C;G=B*C;g[h>>2]=i-r*F;g[j>>2]=k-r*G;j=c[f>>2]|0;g[j+((c[d>>2]|0)*12|0)+8>>2]=l-q*((B*(w+u)-A*(x+t))*C);d=c[e>>2]|0;g[j+(d*12|0)>>2]= +n+v*F;g[j+(d*12|0)+4>>2]=o+v*G;g[(c[f>>2]|0)+((c[e>>2]|0)*12|0)+8>>2]=p+D*((y*B-z*A)*C);return(s>0?s:E)<=.004999999888241291|0}function qj(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0,i=0,j=0;d=c[b+48>>2]|0;e=+g[d+24>>2];f=+g[b+76>>2];h=+g[d+20>>2];i=+g[b+80>>2];j=f*h+e*i+ +g[d+16>>2];g[a>>2]=+g[d+12>>2]+(e*f-h*i);g[a+4>>2]=j;return}function rj(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0,i=0,j=0;d=c[b+52>>2]|0;e=+g[d+24>>2];f=+g[b+84>>2];h=+g[d+20>>2];i=+g[b+88>>2];j=f*h+e*i+ +g[d+16>>2];g[a>>2]=+g[d+12>>2]+(e* +f-h*i);g[a+4>>2]=j;return}function sj(a,b,c){a=a|0;b=b|0;c=+c;var d=0,e=0,f=0;d=+g[b+108>>2];e=+g[b+116>>2];f=(d*+g[b+184>>2]+e*+g[b+176>>2])*c;g[a>>2]=(d*+g[b+180>>2]+e*+g[b+172>>2])*c;g[a+4>>2]=f;return}function tj(a,b){a=a|0;b=+b;return+(+g[a+112>>2]*b)}function uj(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,n=0,o=0;b=c[a+48>>2]|0;d=c[a+52>>2]|0;e=+g[b+24>>2];f=+g[a+76>>2];h=+g[b+20>>2];i=+g[a+80>>2];j=+g[d+24>>2];k=+g[a+84>>2];l=+g[d+20>>2];m=+g[a+88>>2];n=+g[a+92>>2];o=+g[a+96>>2];return+((+g[d+ +12>>2]+(j*k-l*m)-(+g[b+12>>2]+(e*f-h*i)))*(e*n-h*o)+(k*l+j*m+ +g[d+16>>2]-(f*h+e*i+ +g[b+16>>2]))*(h*n+e*o))}function vj(a){a=a|0;return+(+g[(c[a+52>>2]|0)+88>>2]-+g[(c[a+48>>2]|0)+88>>2])}function wj(b){b=b|0;return(a[b+128>>0]|0)!=0|0}function xj(d,f){d=d|0;f=f|0;var h=0,i=0,j=0,k=0,l=0;h=c[d+48>>2]|0;i=h+4|0;j=e[i>>1]|0;if(!(j&2)){b[i>>1]=j|2;g[h+160>>2]=0}h=c[d+52>>2]|0;j=h+4|0;i=e[j>>1]|0;if(i&2){k=d+128|0;l=f&1;a[k>>0]=l;return}b[j>>1]=i|2;g[h+160>>2]=0;k=d+128|0;l=f&1;a[k>>0]=l;return}function yj(a, +d){a=a|0;d=+d;var f=0,h=0,i=0,j=0;f=c[a+48>>2]|0;h=f+4|0;i=e[h>>1]|0;if(!(i&2)){b[h>>1]=i|2;g[f+160>>2]=0}f=c[a+52>>2]|0;i=f+4|0;h=e[i>>1]|0;if(h&2){j=a+124|0;g[j>>2]=d;return}b[i>>1]=h|2;g[f+160>>2]=0;j=a+124|0;g[j>>2]=d;return}function zj(a,d){a=a|0;d=+d;var f=0,h=0,i=0,j=0;f=c[a+48>>2]|0;h=f+4|0;i=e[h>>1]|0;if(!(i&2)){b[h>>1]=i|2;g[f+160>>2]=0}f=c[a+52>>2]|0;i=f+4|0;h=e[i>>1]|0;if(h&2){j=a+120|0;g[j>>2]=d;return}b[i>>1]=h|2;g[f+160>>2]=0;j=a+120|0;g[j>>2]=d;return}function Aj(a,b){a=a|0;b=+b;return+(+g[a+ +112>>2]*b)}function Bj(a){a=a|0;var b=0,e=0,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;b=i;i=i+128|0;e=b+120|0;f=b+112|0;j=b+104|0;k=b+96|0;l=b+88|0;m=b+80|0;n=b+64|0;o=b+48|0;p=b+32|0;q=b+24|0;r=b+16|0;s=b+8|0;t=c[(c[a+48>>2]|0)+8>>2]|0;u=c[(c[a+52>>2]|0)+8>>2]|0;bo(4517,b);c[s>>2]=t;bo(4769,s);c[r>>2]=u;bo(4795,r);c[q>>2]=d[a+61>>0];bo(4821,q);v=+g[a+80>>2];h[p>>3]=+g[a+76>>2];h[p+8>>3]=v;bo(4942,p);v=+g[a+88>>2];h[o>>3]=+g[a+84>>2];h[o+8>>3]=v;bo(4984,o);v=+g[a+96>>2];h[n>>3]=+g[a+ +92>>2];h[n+8>>3]=v;bo(4540,n);c[m>>2]=d[a+128>>0];bo(4580,m);h[l>>3]=+g[a+124>>2];bo(4610,l);h[k>>3]=+g[a+120>>2];bo(4638,k);h[j>>3]=+g[a+68>>2];bo(4670,j);h[f>>3]=+g[a+72>>2];bo(4699,f);c[e>>2]=c[a+56>>2];bo(5099,e);i=b;return}function Cj(a){a=a|0;so(a);return}function Dj(a,b,d,e,f,h,i,j){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;i=i|0;j=+j;var k=0,l=0,m=0,n=0,o=0,p=0,q=0;c[a+8>>2]=b;c[a+12>>2]=d;k=e;l=c[k+4>>2]|0;m=a+20|0;c[m>>2]=c[k>>2];c[m+4>>2]=l;l=f;m=c[l+4>>2]|0;k=a+28|0;c[k>>2]=c[l>>2];c[k+4>>2]= +m;n=+g[h>>2]-+g[b+12>>2];m=h+4|0;o=+g[m>>2]-+g[b+16>>2];p=+g[b+24>>2];q=+g[b+20>>2];g[a+36>>2]=n*p+o*q;g[a+40>>2]=p*o-n*q;q=+g[i>>2]-+g[d+12>>2];b=i+4|0;n=+g[b>>2]-+g[d+16>>2];o=+g[d+24>>2];p=+g[d+20>>2];g[a+44>>2]=q*o+n*p;g[a+48>>2]=o*n-q*p;p=+g[h>>2]-+g[e>>2];q=+g[m>>2]-+g[e+4>>2];g[a+52>>2]=+O(+(p*p+q*q));q=+g[i>>2]-+g[f>>2];p=+g[b>>2]-+g[f+4>>2];g[a+56>>2]=+O(+(q*q+p*p));g[a+60>>2]=j;return}function Ej(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0,i=0;Oi(a,b);c[a>>2]=1692;d=b+20|0;e=c[d+4>>2]|0;f=a+68| +0;c[f>>2]=c[d>>2];c[f+4>>2]=e;e=b+28|0;f=c[e+4>>2]|0;d=a+76|0;c[d>>2]=c[e>>2];c[d+4>>2]=f;f=b+36|0;d=c[f+4>>2]|0;e=a+92|0;c[e>>2]=c[f>>2];c[e+4>>2]=d;d=b+44|0;e=c[d+4>>2]|0;f=a+100|0;c[f>>2]=c[d>>2];c[f+4>>2]=e;e=c[b+52>>2]|0;c[a+84>>2]=e;f=c[b+56>>2]|0;c[a+88>>2]=f;h=+g[b+60>>2];g[a+112>>2]=h;i=(c[k>>2]=e,+g[k>>2]);g[a+108>>2]=i+h*(c[k>>2]=f,+g[k>>2]);g[a+116>>2]=0;return}function Fj(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,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,P=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;e=c[b+48>>2]|0;f=c[e+8>>2]|0;h=b+120|0;c[h>>2]=f;i=c[b+52>>2]|0;j=c[i+8>>2]|0;l=b+124|0;c[l>>2]=j;m=e+44|0;n=c[m>>2]|0;o=c[m+4>>2]|0;m=b+160|0;c[m>>2]=n;c[m+4>>2]=o;m=i+44|0;p=c[m>>2]|0;q=c[m+4>>2]|0;m=b+168|0;c[m>>2]=p;c[m+4>>2]=q;m=b+176|0;c[m>>2]=c[e+136>>2];r=b+180|0;c[r>>2]=c[i+136>>2];s=b+184|0;c[s>>2]=c[e+144>>2];e=b+188|0;c[e>>2]=c[i+144>>2];i=c[d+28>>2]|0;t= ++g[i+(f*12|0)>>2];u=+g[i+(f*12|0)+4>>2];v=+g[i+(f*12|0)+8>>2];w=d+32|0;x=c[w>>2]|0;y=c[x+(f*12|0)>>2]|0;z=c[x+(f*12|0)+4>>2]|0;A=+g[x+(f*12|0)+8>>2];B=+g[i+(j*12|0)>>2];C=+g[i+(j*12|0)+4>>2];D=+g[i+(j*12|0)+8>>2];i=c[x+(j*12|0)>>2]|0;f=c[x+(j*12|0)+4>>2]|0;E=+g[x+(j*12|0)+8>>2];F=+R(+v);G=+Q(+v);v=+R(+D);H=+Q(+D);D=+g[b+92>>2]-(c[k>>2]=n,+g[k>>2]);I=+g[b+96>>2]-(c[k>>2]=o,+g[k>>2]);J=G*D-F*I;K=F*D+G*I;g[b+144>>2]=J;g[b+148>>2]=K;I=+g[b+100>>2]-(c[k>>2]=p,+g[k>>2]);G=+g[b+104>>2]-(c[k>>2]=q,+g[k>> +2]);D=H*I-v*G;F=v*I+H*G;g[b+152>>2]=D;g[b+156>>2]=F;G=t+J-+g[b+68>>2];t=u+K-+g[b+72>>2];q=b+128|0;g[q>>2]=G;p=b+132|0;g[p>>2]=t;u=B+D-+g[b+76>>2];B=C+F-+g[b+80>>2];o=b+136|0;g[o>>2]=u;n=b+140|0;g[n>>2]=B;C=+O(+(G*G+t*t));H=+O(+(u*u+B*B));if(C>.04999999701976776){I=1/C;C=G*I;g[q>>2]=C;L=I*t;M=C}else{g[q>>2]=0;L=0;M=0}g[p>>2]=L;if(H>.04999999701976776){C=1/H;H=C*u;g[o>>2]=H;N=C*B;P=H}else{g[o>>2]=0;N=0;P=0}g[n>>2]=N;H=J*L-K*M;B=D*N-F*P;C=+g[m>>2];u=+g[s>>2];t=+g[r>>2];I=+g[e>>2];G=+g[b+112>>2];v=C+ +H*(H*u)+G*G*(t+B*(B*I));g[b+192>>2]=v>0?1/v:v;if(!(a[d+24>>0]|0)){g[b+116>>2]=0;S=y;T=z;U=i;V=f;W=A;X=E;Y=c[h>>2]|0;Z=c[w>>2]|0;_=Z+(Y*12|0)|0;c[_>>2]=S;$=Z+(Y*12|0)+4|0;c[$>>2]=T;aa=c[h>>2]|0;ba=c[w>>2]|0;ca=ba+(aa*12|0)+8|0;g[ca>>2]=W;da=c[l>>2]|0;ea=ba+(da*12|0)|0;c[ea>>2]=U;fa=ba+(da*12|0)+4|0;c[fa>>2]=V;ga=c[l>>2]|0;ha=c[w>>2]|0;ia=ha+(ga*12|0)+8|0;g[ia>>2]=X;return}else{e=b+116|0;v=+g[d+8>>2]*+g[e>>2];g[e>>2]=v;B=-v;H=M*B;M=L*B;B=-(v*G);G=P*B;P=N*B;e=(g[k>>2]=(c[k>>2]=y,+g[k>>2])+H*C,c[k>>2]| +0);y=(g[k>>2]=(c[k>>2]=z,+g[k>>2])+M*C,c[k>>2]|0);z=(g[k>>2]=(c[k>>2]=i,+g[k>>2])+G*t,c[k>>2]|0);S=e;T=y;U=z;V=(g[k>>2]=(c[k>>2]=f,+g[k>>2])+P*t,c[k>>2]|0);W=A+u*(M*J-H*K);X=E+I*(P*D-G*F);Y=c[h>>2]|0;Z=c[w>>2]|0;_=Z+(Y*12|0)|0;c[_>>2]=S;$=Z+(Y*12|0)+4|0;c[$>>2]=T;aa=c[h>>2]|0;ba=c[w>>2]|0;ca=ba+(aa*12|0)+8|0;g[ca>>2]=W;da=c[l>>2]|0;ea=ba+(da*12|0)|0;c[ea>>2]=U;fa=ba+(da*12|0)+4|0;c[fa>>2]=V;ga=c[l>>2]|0;ha=c[w>>2]|0;ia=ha+(ga*12|0)+8|0;g[ia>>2]=X;return}}function Gj(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,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;d=a+120|0;e=c[d>>2]|0;f=b+32|0;b=c[f>>2]|0;h=b+(e*12|0)|0;i=+g[h>>2];j=b+(e*12|0)+4|0;k=+g[j>>2];l=+g[b+(e*12|0)+8>>2];e=a+124|0;m=c[e>>2]|0;n=+g[b+(m*12|0)>>2];o=+g[b+(m*12|0)+4>>2];p=+g[b+(m*12|0)+8>>2];q=+g[a+148>>2];r=+g[a+144>>2];s=+g[a+156>>2];t=+g[a+152>>2];u=+g[a+128>>2];v=+g[a+132>>2];w=+g[a+112>>2];x=+g[a+136>>2];y=+g[a+140>>2];z=+g[a+192>>2]*(-((i-l*q)*u+(k+l*r)*v)-w*((n-p*s)*x+(o+p*t)*y));m=a+116|0;g[m>> +2]=+g[m>>2]-z;A=u*z;u=v*z;v=w*z;z=x*v;x=v*y;y=+g[a+176>>2];v=l+ +g[a+184>>2]*(u*r-A*q);q=+g[a+180>>2];r=p+ +g[a+188>>2]*(x*t-z*s);g[h>>2]=i+A*y;g[j>>2]=k+u*y;j=c[f>>2]|0;g[j+((c[d>>2]|0)*12|0)+8>>2]=v;d=c[e>>2]|0;g[j+(d*12|0)>>2]=n+z*q;g[j+(d*12|0)+4>>2]=o+x*q;g[(c[f>>2]|0)+((c[e>>2]|0)*12|0)+8>>2]=r;return}function Hj(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,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;d=a+120|0;e=c[d>>2]|0;f=b+28|0;b=c[f>>2]| +0;h=b+(e*12|0)|0;i=+g[h>>2];j=b+(e*12|0)+4|0;k=+g[j>>2];l=+g[b+(e*12|0)+8>>2];e=a+124|0;m=c[e>>2]|0;n=+g[b+(m*12|0)>>2];o=+g[b+(m*12|0)+4>>2];p=+g[b+(m*12|0)+8>>2];q=+R(+l);r=+Q(+l);s=+R(+p);t=+Q(+p);u=+g[a+92>>2]-+g[a+160>>2];v=+g[a+96>>2]-+g[a+164>>2];w=r*u-q*v;x=q*u+r*v;v=+g[a+100>>2]-+g[a+168>>2];r=+g[a+104>>2]-+g[a+172>>2];u=t*v-s*r;q=s*v+t*r;r=i+w-+g[a+68>>2];t=k+x-+g[a+72>>2];v=n+u-+g[a+76>>2];s=o+q-+g[a+80>>2];y=+O(+(r*r+t*t));z=+O(+(v*v+s*s));if(y>.04999999701976776){A=1/y;B=t*A;C=r*A}else{B= +0;C=0}if(z>.04999999701976776){A=1/z;D=s*A;E=v*A}else{D=0;E=0}A=w*B-x*C;v=u*D-q*E;s=+g[a+176>>2];r=+g[a+184>>2];t=+g[a+180>>2];F=+g[a+188>>2];G=+g[a+112>>2];H=s+A*(A*r)+G*G*(t+v*(v*F));v=+g[a+108>>2]-y-z*G;z=v*(H>0?1/H:H);H=C*z;C=B*z;B=G*z;z=E*B;E=D*B;g[h>>2]=i+s*H;g[j>>2]=k+s*C;j=c[f>>2]|0;g[j+((c[d>>2]|0)*12|0)+8>>2]=l+r*(w*C-x*H);d=c[e>>2]|0;g[j+(d*12|0)>>2]=n+t*z;g[j+(d*12|0)+4>>2]=o+t*E;g[(c[f>>2]|0)+((c[e>>2]|0)*12|0)+8>>2]=p+F*(u*E-q*z);return(v>0?v:-v)<.004999999888241291|0}function Ij(a, +b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0,i=0,j=0;d=c[b+48>>2]|0;e=+g[d+24>>2];f=+g[b+92>>2];h=+g[d+20>>2];i=+g[b+96>>2];j=f*h+e*i+ +g[d+16>>2];g[a>>2]=+g[d+12>>2]+(e*f-h*i);g[a+4>>2]=j;return}function Jj(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0,i=0,j=0;d=c[b+52>>2]|0;e=+g[d+24>>2];f=+g[b+100>>2];h=+g[d+20>>2];i=+g[b+104>>2];j=f*h+e*i+ +g[d+16>>2];g[a>>2]=+g[d+12>>2]+(e*f-h*i);g[a+4>>2]=j;return}function Kj(a,b,c){a=a|0;b=b|0;c=+c;var d=0,e=0;d=+g[b+116>>2];e=d*+g[b+140>>2]*c;g[a>>2]=d*+g[b+136>>2]*c;g[a+4>> +2]=e;return}function Lj(a,b){a=a|0;b=+b;return 0}function Mj(a,b){a=a|0;b=b|0;var d=0,e=0;d=b+68|0;b=c[d+4>>2]|0;e=a;c[e>>2]=c[d>>2];c[e+4>>2]=b;return}function Nj(a,b){a=a|0;b=b|0;var d=0,e=0;d=b+76|0;b=c[d+4>>2]|0;e=a;c[e>>2]=c[d>>2];c[e+4>>2]=b;return}function Oj(a){a=a|0;var b=0,d=0,e=0,f=0,h=0,i=0,j=0;b=c[a+48>>2]|0;d=+g[b+24>>2];e=+g[a+92>>2];f=+g[b+20>>2];h=+g[a+96>>2];i=+g[b+12>>2]+(d*e-f*h)-+g[a+68>>2];j=e*f+d*h+ +g[b+16>>2]-+g[a+72>>2];return+ +O(+(i*i+j*j))}function Pj(a){a=a|0;var b=0, +d=0,e=0,f=0,h=0,i=0,j=0;b=c[a+52>>2]|0;d=+g[b+24>>2];e=+g[a+100>>2];f=+g[b+20>>2];h=+g[a+104>>2];i=+g[b+12>>2]+(d*e-f*h)-+g[a+76>>2];j=e*f+d*h+ +g[b+16>>2]-+g[a+80>>2];return+ +O(+(i*i+j*j))}function Qj(a){a=a|0;var b=0,e=0,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;b=i;i=i+128|0;e=b+120|0;f=b+112|0;j=b+104|0;k=b+96|0;l=b+80|0;m=b+64|0;n=b+48|0;o=b+32|0;p=b+24|0;q=b+16|0;r=b+8|0;s=c[(c[a+48>>2]|0)+8>>2]|0;t=c[(c[a+52>>2]|0)+8>>2]|0;bo(4745,b);c[r>>2]=s;bo(4769,r);c[q>>2]=t;bo(4795,q);c[p>> +2]=d[a+61>>0];bo(4821,p);u=+g[a+72>>2];h[o>>3]=+g[a+68>>2];h[o+8>>3]=u;bo(4856,o);u=+g[a+80>>2];h[n>>3]=+g[a+76>>2];h[n+8>>3]=u;bo(4899,n);u=+g[a+96>>2];h[m>>3]=+g[a+92>>2];h[m+8>>3]=u;bo(4942,m);u=+g[a+104>>2];h[l>>3]=+g[a+100>>2];h[l+8>>3]=u;bo(4984,l);h[k>>3]=+g[a+84>>2];bo(5026,k);h[j>>3]=+g[a+88>>2];bo(5051,j);h[f>>3]=+g[a+112>>2];bo(5076,f);c[e>>2]=c[a+56>>2];bo(5099,e);i=b;return}function Rj(a,b){a=a|0;b=b|0;var c=0,d=0;c=a+68|0;g[c>>2]=+g[c>>2]-+g[b>>2];c=b+4|0;d=a+72|0;g[d>>2]=+g[d>>2]-+g[c>> +2];d=a+76|0;g[d>>2]=+g[d>>2]-+g[b>>2];b=a+80|0;g[b>>2]=+g[b>>2]-+g[c>>2];return}function Sj(a){a=a|0;so(a);return}function Tj(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0;g=Sn(f,148)|0;_j(g,a,b,d,e);c[g>>2]=1744;return g|0}function Uj(a,b){a=a|0;b=b|0;ib[c[(c[a>>2]|0)+4>>2]&127](a);Tn(b,a,148);return}function Vj(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;h=i;i=i+48|0;j=h;k=c[(c[a+48>>2]|0)+12>>2]|0;c[j>>2]=916;c[j+4>>2]=1;g[j+8>>2]=.009999999776482582;l=j+28|0;c[l>>2]=0;c[l+4>>2]=0; +c[l+8>>2]=0;c[l+12>>2]=0;b[l+16>>1]=0;Vf(k,j,c[a+56>>2]|0);ug(d,j,e,c[(c[a+52>>2]|0)+12>>2]|0,f);i=h;return}function Wj(a){a=a|0;return}function Xj(a){a=a|0;so(a);return}function Yj(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;if(!(a[5180]|0)){c[439]=6;c[440]=53;a[1764]=1;c[463]=7;c[464]=54;a[1860]=1;c[445]=7;c[446]=54;a[1788]=0;c[469]=8;c[470]=55;a[1884]=1;c[451]=9;c[452]=56;a[1812]=1;c[442]=9;c[443]=56;a[1776]=0;c[457]=10;c[458]=57;a[1836]=1;c[466]=10;c[467]=57;a[1872]=0;c[475]= +11;c[476]=58;a[1908]=1;c[448]=11;c[449]=58;a[1800]=0;c[481]=12;c[482]=59;a[1932]=1;c[472]=12;c[473]=59;a[1896]=0;a[5180]=1}h=c[(c[b+12>>2]|0)+4>>2]|0;i=c[(c[e+12>>2]|0)+4>>2]|0;j=c[1756+(h*48|0)+(i*12|0)>>2]|0;if(!j){k=0;return k|0}if(!(a[1756+(h*48|0)+(i*12|0)+8>>0]|0)){k=sb[j&15](e,f,b,d,g)|0;return k|0}else{k=sb[j&15](b,d,e,f,g)|0;return k|0}return 0}function Zj(d,f){d=d|0;f=f|0;var h=0,i=0,j=0,k=0,l=0;h=c[d+48>>2]|0;i=c[d+52>>2]|0;if(((c[d+124>>2]|0)>0?(a[h+38>>0]|0)==0:0)?(a[i+38>>0]|0)==0:0){j= +c[h+8>>2]|0;k=j+4|0;l=e[k>>1]|0;if(!(l&2)){b[k>>1]=l|2;g[j+160>>2]=0}j=c[i+8>>2]|0;l=j+4|0;k=e[l>>1]|0;if(!(k&2)){b[l>>1]=k|2;g[j+160>>2]=0}}kb[c[1756+((c[(c[h+12>>2]|0)+4>>2]|0)*48|0)+((c[(c[i+12>>2]|0)+4>>2]|0)*12|0)+4>>2]&63](d,f);return}function _j(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var h=0,i=0,j=0;c[a>>2]=1956;c[a+4>>2]=4;c[a+48>>2]=b;c[a+52>>2]=e;c[a+56>>2]=d;c[a+60>>2]=f;c[a+124>>2]=0;c[a+128>>2]=0;f=b+16|0;d=a+8|0;h=d+40|0;do{c[d>>2]=0;d=d+4|0}while((d|0)<(h|0));g[a+136>>2]=+O(+(+g[f>> +2]*+g[e+16>>2]));i=+g[b+20>>2];j=+g[e+20>>2];g[a+140>>2]=i>j?i:j;g[a+144>>2]=0;return}function $j(d,f){d=d|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,C=0,D=0,E=0;h=i;i=i+64|0;j=h;k=d+64|0;l=j;m=k;n=l+64|0;do{c[l>>2]=c[m>>2];l=l+4|0;m=m+4|0}while((l|0)<(n|0));m=d+4|0;l=c[m>>2]|0;c[m>>2]=l|4;n=l>>>1;l=c[d+48>>2]|0;o=c[d+52>>2]|0;p=(a[o+38>>0]|a[l+38>>0])<<24>>24!=0;q=c[l+8>>2]|0;r=c[o+8>>2]|0;s=q+12|0;t=r+12|0;if(!p){tb[c[c[d>>2]>>2]&31](d,k,s,t);k=d+ +124|0;u=(c[k>>2]|0)>0;a:do if(u){v=c[j+60>>2]|0;if((v|0)>0)w=0;else{x=0;while(1){g[d+64+(x*20|0)+8>>2]=0;g[d+64+(x*20|0)+12>>2]=0;x=x+1|0;if((x|0)>=(c[k>>2]|0))break a}}do{x=d+64+(w*20|0)+8|0;g[x>>2]=0;y=d+64+(w*20|0)+12|0;g[y>>2]=0;z=c[d+64+(w*20|0)+16>>2]|0;A=0;do{if((c[j+(A*20|0)+16>>2]|0)==(z|0)){B=A;C=7;break}A=A+1|0}while((A|0)<(v|0));if((C|0)==7){C=0;c[x>>2]=c[j+(B*20|0)+8>>2];c[y>>2]=c[j+(B*20|0)+12>>2]}w=w+1|0}while((w|0)<(c[k>>2]|0))}while(0);k=n&1;if((k|0)!=0^u){w=q+4|0;B=e[w>>1]|0;if(!(B& +2)){b[w>>1]=B|2;g[q+160>>2]=0}q=r+4|0;B=e[q>>1]|0;if(!(B&2)){b[q>>1]=B|2;g[r+160>>2]=0;D=k;E=u}else{D=k;E=u}}else{D=k;E=u}}else{u=zg(c[l+12>>2]|0,c[d+56>>2]|0,c[o+12>>2]|0,c[d+60>>2]|0,s,t)|0;c[d+124>>2]=0;D=n&1;E=u}u=c[m>>2]|0;c[m>>2]=E?u|2:u&-3;u=(D|0)==0;D=(f|0)!=0;m=D&E;if(u&m)kb[c[(c[f>>2]|0)+8>>2]&63](f,d);if(D&(E^1)&(u^1))kb[c[(c[f>>2]|0)+12>>2]&63](f,d);if(!(m&(p^1))){i=h;return}mb[c[(c[f>>2]|0)+32>>2]&7](f,d,j);i=h;return}function ak(a){a=a|0;so(a);return}function bk(a,b,d,e,f){a=a|0;b=b| +0;d=d|0;e=e|0;f=f|0;e=Sn(f,148)|0;_j(e,a,0,d,0);c[e>>2]=1976;return e|0}function ck(a,b){a=a|0;b=b|0;ib[c[(c[a>>2]|0)+4>>2]&127](a);Tn(b,a,148);return}function dk(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;hg(b,c[(c[a+48>>2]|0)+12>>2]|0,d,c[(c[a+52>>2]|0)+12>>2]|0,e);return}function ek(a){a=a|0;so(a);return}function fk(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;e=Sn(f,148)|0;_j(e,a,0,d,0);c[e>>2]=1996;return e|0}function gk(a,b){a=a|0;b=b|0;ib[c[(c[a>>2]|0)+4>>2]&127](a);Tn(b,a,148);return}function hk(a,b,d, +e){a=a|0;b=b|0;d=d|0;e=e|0;gg(b,c[(c[a+48>>2]|0)+12>>2]|0,d,c[(c[a+52>>2]|0)+12>>2]|0,e);return}function ik(a){a=a|0;so(a);return}function jk(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[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[b+16>>2]=c[d+16>>2];c[b+20>>2]=c[d+20>>2];c[b+24>>2]=c[d+24>>2];e=c[d+44>>2]|0;f=b+36|0;c[f>>2]=e;h=c[d+32>>2]|0;i=b+52|0;c[i>>2]=h;j=b+40|0;c[j>>2]=lo(e,h*88|0)|0;h= +lo(c[f>>2]|0,(c[i>>2]|0)*156|0)|0;f=b+44|0;c[f>>2]=h;c[b+28>>2]=c[d+36>>2];c[b+32>>2]=c[d+40>>2];e=c[d+28>>2]|0;d=b+48|0;c[d>>2]=e;if((c[i>>2]|0)<=0)return;k=b+24|0;l=b+8|0;b=e;e=h;h=0;while(1){m=c[b+(h<<2)>>2]|0;n=c[m+48>>2]|0;o=c[m+52>>2]|0;p=c[(c[n+12>>2]|0)+8>>2]|0;q=c[(c[o+12>>2]|0)+8>>2]|0;r=c[n+8>>2]|0;n=c[o+8>>2]|0;o=c[m+124>>2]|0;c[e+(h*156|0)+136>>2]=c[m+136>>2];c[e+(h*156|0)+140>>2]=c[m+140>>2];c[e+(h*156|0)+144>>2]=c[m+144>>2];s=r+8|0;c[e+(h*156|0)+112>>2]=c[s>>2];t=n+8|0;c[e+(h*156|0)+ +116>>2]=c[t>>2];u=r+136|0;c[e+(h*156|0)+120>>2]=c[u>>2];v=n+136|0;c[e+(h*156|0)+124>>2]=c[v>>2];w=r+144|0;c[e+(h*156|0)+128>>2]=c[w>>2];x=n+144|0;c[e+(h*156|0)+132>>2]=c[x>>2];c[e+(h*156|0)+152>>2]=h;c[e+(h*156|0)+148>>2]=o;y=e+(h*156|0)+80|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[y+20>>2]=0;c[y+24>>2]=0;c[y+28>>2]=0;y=c[j>>2]|0;c[y+(h*88|0)+32>>2]=c[s>>2];c[y+(h*88|0)+36>>2]=c[t>>2];c[y+(h*88|0)+40>>2]=c[u>>2];c[y+(h*88|0)+44>>2]=c[v>>2];v=r+44|0;r=c[v+4>>2]|0;u=y+(h*88|0)+ +48|0;c[u>>2]=c[v>>2];c[u+4>>2]=r;r=n+44|0;n=c[r+4>>2]|0;u=y+(h*88|0)+56|0;c[u>>2]=c[r>>2];c[u+4>>2]=n;c[y+(h*88|0)+64>>2]=c[w>>2];c[y+(h*88|0)+68>>2]=c[x>>2];x=m+104|0;w=c[x+4>>2]|0;n=y+(h*88|0)+16|0;c[n>>2]=c[x>>2];c[n+4>>2]=w;w=m+112|0;n=c[w+4>>2]|0;x=y+(h*88|0)+24|0;c[x>>2]=c[w>>2];c[x+4>>2]=n;c[y+(h*88|0)+84>>2]=o;c[y+(h*88|0)+76>>2]=p;c[y+(h*88|0)+80>>2]=q;c[y+(h*88|0)+72>>2]=c[m+120>>2];if((o|0)>0){q=0;do{if(!(a[k>>0]|0)){z=0;A=0}else{B=+g[l>>2];z=B*+g[m+64+(q*20|0)+12>>2];A=B*+g[m+64+(q*20| +0)+8>>2]}g[e+(h*156|0)+(q*36|0)+16>>2]=A;g[e+(h*156|0)+(q*36|0)+20>>2]=z;p=e+(h*156|0)+(q*36|0)|0;g[e+(h*156|0)+(q*36|0)+24>>2]=0;g[e+(h*156|0)+(q*36|0)+28>>2]=0;g[e+(h*156|0)+(q*36|0)+32>>2]=0;c[p>>2]=0;c[p+4>>2]=0;c[p+8>>2]=0;c[p+12>>2]=0;p=m+64+(q*20|0)|0;n=c[p+4>>2]|0;x=y+(h*88|0)+(q<<3)|0;c[x>>2]=c[p>>2];c[x+4>>2]=n;q=q+1|0}while((q|0)!=(o|0))}o=h+1|0;if((o|0)>=(c[i>>2]|0))break;b=c[d>>2]|0;e=c[f>>2]|0;h=o}return}function kk(a){a=a|0;var b=0;b=a+36|0;no(c[b>>2]|0,c[a+44>>2]|0);no(c[b>>2]|0,c[a+ +40>>2]|0);return}function lk(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,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,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0;b=i;i=i+64|0;d=b+48|0;e=b+32|0;f=b;h=a+52|0;if((c[h>>2]|0)<=0){i=b;return}j=a+44|0;k=a+40|0;l=a+48|0;m=a+28|0;n=a+32|0;a=d+8|0;o=d+12|0;p=e+8|0;q=e+12|0;r=d+4|0;s=e+4|0;t=0;do{u=c[j>>2]|0;v=c[k>>2]|0;w=+g[v+(t*88|0)+76>>2];x=+g[v+(t*88|0)+80>>2];y=(c[(c[l>> +2]|0)+(c[u+(t*156|0)+152>>2]<<2)>>2]|0)+64|0;z=c[u+(t*156|0)+112>>2]|0;A=c[u+(t*156|0)+116>>2]|0;B=+g[u+(t*156|0)+120>>2];C=+g[u+(t*156|0)+124>>2];D=+g[u+(t*156|0)+128>>2];E=+g[u+(t*156|0)+132>>2];F=+g[v+(t*88|0)+48>>2];G=+g[v+(t*88|0)+52>>2];H=+g[v+(t*88|0)+56>>2];I=+g[v+(t*88|0)+60>>2];v=c[m>>2]|0;J=+g[v+(z*12|0)>>2];K=+g[v+(z*12|0)+4>>2];L=+g[v+(z*12|0)+8>>2];M=c[n>>2]|0;N=+g[M+(z*12|0)>>2];O=+g[M+(z*12|0)+4>>2];P=+g[M+(z*12|0)+8>>2];S=+g[v+(A*12|0)>>2];T=+g[v+(A*12|0)+4>>2];U=+g[v+(A*12|0)+8>> +2];V=+g[M+(A*12|0)>>2];W=+g[M+(A*12|0)+4>>2];X=+g[M+(A*12|0)+8>>2];Y=+R(+L);g[a>>2]=Y;Z=+Q(+L);g[o>>2]=Z;L=+R(+U);g[p>>2]=L;_=+Q(+U);g[q>>2]=_;g[d>>2]=J-(F*Z-G*Y);g[r>>2]=K-(G*Z+F*Y);g[e>>2]=S-(H*_-I*L);g[s>>2]=T-(I*_+H*L);xg(f,y,d,w,e,x);y=u+(t*156|0)+72|0;A=f;M=c[A+4>>2]|0;v=y;c[v>>2]=c[A>>2];c[v+4>>2]=M;M=u+(t*156|0)+148|0;v=c[M>>2]|0;do if((v|0)>0){A=u+(t*156|0)+76|0;x=B+C;z=u+(t*156|0)+140|0;$=0;do{aa=f+8+($<<3)|0;w=+g[aa>>2]-J;ba=f+8+($<<3)+4|0;L=+g[ba>>2]-K;g[u+(t*156|0)+($*36|0)>>2]=w;g[u+ +(t*156|0)+($*36|0)+4>>2]=L;H=+g[aa>>2]-S;_=+g[ba>>2]-T;g[u+(t*156|0)+($*36|0)+8>>2]=H;g[u+(t*156|0)+($*36|0)+12>>2]=_;I=+g[A>>2];Y=+g[y>>2];F=w*I-L*Y;Z=I*H-Y*_;Y=x+F*(D*F)+Z*(E*Z);g[u+(t*156|0)+($*36|0)+24>>2]=Y>0?1/Y:0;Y=+g[A>>2];Z=-+g[y>>2];F=w*Z-Y*L;I=H*Z-Y*_;Y=x+F*(D*F)+I*(E*I);g[u+(t*156|0)+($*36|0)+28>>2]=Y>0?1/Y:0;ba=u+(t*156|0)+($*36|0)+32|0;g[ba>>2]=0;Y=+g[y>>2]*(V-X*_-N+P*L)+ +g[A>>2]*(W+X*H-O-P*w);if(Y<-1)g[ba>>2]=-(Y*+g[z>>2]);$=$+1|0}while(($|0)!=(v|0));if((c[M>>2]|0)==2){x=+g[u+(t*156| +0)+76>>2];Y=+g[y>>2];w=+g[u+(t*156|0)>>2]*x-+g[u+(t*156|0)+4>>2]*Y;H=x*+g[u+(t*156|0)+8>>2]-Y*+g[u+(t*156|0)+12>>2];L=x*+g[u+(t*156|0)+36>>2]-Y*+g[u+(t*156|0)+40>>2];_=x*+g[u+(t*156|0)+44>>2]-Y*+g[u+(t*156|0)+48>>2];Y=B+C;x=D*w;I=E*H;F=Y+w*x+H*I;H=Y+L*(D*L)+_*(E*_);w=Y+x*L+I*_;_=F*H-w*w;if(F*F<_*1E3){g[u+(t*156|0)+96>>2]=F;g[u+(t*156|0)+100>>2]=w;g[u+(t*156|0)+104>>2]=w;g[u+(t*156|0)+108>>2]=H;I=_!=0?1/_:_;_=-(I*w);g[u+(t*156|0)+80>>2]=H*I;g[u+(t*156|0)+84>>2]=_;g[u+(t*156|0)+88>>2]=_;g[u+(t*156| +0)+92>>2]=F*I;break}else{c[M>>2]=1;break}}}while(0);t=t+1|0}while((t|0)<(c[h>>2]|0));i=b;return}function mk(a){a=a|0;var b=0,d=0,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,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;b=a+52|0;if((c[b>>2]|0)<=0)return;d=a+44|0;e=a+32|0;a=c[e>>2]|0;f=0;do{h=c[d>>2]|0;i=c[h+(f*156|0)+112>>2]|0;j=c[h+(f*156|0)+116>>2]|0;l=+g[h+(f*156|0)+120>>2];m=+g[h+(f*156|0)+128>>2];n=+g[h+(f*156|0)+124>>2]; +o=+g[h+(f*156|0)+132>>2];p=c[h+(f*156|0)+148>>2]|0;q=a+(i*12|0)|0;r=c[q>>2]|0;s=a+(i*12|0)+4|0;t=c[s>>2]|0;u=+g[a+(i*12|0)+8>>2];v=c[a+(j*12|0)>>2]|0;w=c[a+(j*12|0)+4>>2]|0;x=+g[a+(j*12|0)+8>>2];y=+g[h+(f*156|0)+72>>2];z=+g[h+(f*156|0)+76>>2];if((p|0)>0){A=r;B=t;C=v;D=w;E=0;F=u;G=x;while(1){H=+g[h+(f*156|0)+(E*36|0)+16>>2];I=+g[h+(f*156|0)+(E*36|0)+20>>2];J=y*H+z*I;K=z*H-y*I;I=F-m*(+g[h+(f*156|0)+(E*36|0)>>2]*K-+g[h+(f*156|0)+(E*36|0)+4>>2]*J);L=(g[k>>2]=(c[k>>2]=A,+g[k>>2])-l*J,c[k>>2]|0);M=(g[k>> +2]=(c[k>>2]=B,+g[k>>2])-l*K,c[k>>2]|0);H=G+o*(K*+g[h+(f*156|0)+(E*36|0)+8>>2]-J*+g[h+(f*156|0)+(E*36|0)+12>>2]);N=(g[k>>2]=(c[k>>2]=C,+g[k>>2])+n*J,c[k>>2]|0);O=(g[k>>2]=(c[k>>2]=D,+g[k>>2])+n*K,c[k>>2]|0);E=E+1|0;if((E|0)==(p|0)){P=M;Q=O;R=N;S=L;T=I;U=H;break}else{A=L;B=M;C=N;D=O;F=I;G=H}}}else{P=t;Q=w;R=v;S=r;T=u;U=x}c[q>>2]=S;c[s>>2]=P;D=c[e>>2]|0;g[D+(i*12|0)+8>>2]=T;c[D+(j*12|0)>>2]=R;c[D+(j*12|0)+4>>2]=Q;a=c[e>>2]|0;g[a+(j*12|0)+8>>2]=U;f=f+1|0}while((f|0)<(c[b>>2]|0));return}function nk(a){a= +a|0;var b=0,d=0,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,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,Ea=0,Fa=0,Ga=0;b=a+52|0;if((c[b>>2]|0)<=0)return;d=a+44|0;e=a+32|0;a=c[e>>2]|0;f=0;do{h=c[d>>2]|0;i=h+(f*156|0)|0;j=c[h+(f*156|0)+112>>2]|0;l=c[h+ +(f*156|0)+116>>2]|0;m=+g[h+(f*156|0)+120>>2];n=+g[h+(f*156|0)+128>>2];o=+g[h+(f*156|0)+124>>2];p=+g[h+(f*156|0)+132>>2];q=h+(f*156|0)+148|0;r=c[q>>2]|0;s=a+(j*12|0)|0;t=c[s>>2]|0;u=a+(j*12|0)+4|0;v=c[u>>2]|0;w=+g[a+(j*12|0)+8>>2];x=c[a+(l*12|0)>>2]|0;y=c[a+(l*12|0)+4>>2]|0;z=+g[a+(l*12|0)+8>>2];A=+g[h+(f*156|0)+72>>2];B=+g[h+(f*156|0)+76>>2];C=-A;D=+g[h+(f*156|0)+136>>2];if((r|0)>0){E=h+(f*156|0)+144|0;F=x;G=y;H=t;I=v;J=0;K=w;L=z;while(1){M=+g[h+(f*156|0)+(J*36|0)+12>>2];N=+g[h+(f*156|0)+(J*36|0)+ +8>>2];O=(c[k>>2]=F,+g[k>>2]);P=(c[k>>2]=G,+g[k>>2]);Q=(c[k>>2]=H,+g[k>>2]);R=(c[k>>2]=I,+g[k>>2]);S=+g[h+(f*156|0)+(J*36|0)+4>>2];T=+g[h+(f*156|0)+(J*36|0)>>2];U=D*+g[h+(f*156|0)+(J*36|0)+16>>2];V=h+(f*156|0)+(J*36|0)+20|0;W=+g[V>>2];X=W-+g[h+(f*156|0)+(J*36|0)+28>>2]*(B*(O-L*M-Q+K*S)+(P+L*N-R-K*T)*C-+g[E>>2]);Y=-U;Z=X>2]=U;U=B*Z;W=Z*C;Z=Q-m*U;V=(g[k>>2]=Z,c[k>>2]|0);Q=R-m*W;_=(g[k>>2]=Q,c[k>>2]|0);R=K-n*(T*W-S*U);S=O+o*U;$=(g[k>>2]=S,c[k>>2]|0);O=P+o*W;aa=(g[k>>2]=O,c[k>> +2]|0);P=L+p*(N*W-M*U);J=J+1|0;if((J|0)==(r|0)){ba=Z;ca=V;da=Q;ea=_;fa=R;ga=S;ha=$;ia=O;ja=aa;ka=P;break}else{F=$;G=aa;H=V;I=_;K=R;L=P}}if((c[q>>2]|0)==1){L=+g[h+(f*156|0)+12>>2];K=+g[h+(f*156|0)+8>>2];C=+g[h+(f*156|0)+4>>2];D=+g[i>>2];I=h+(f*156|0)+16|0;P=+g[I>>2];R=P-+g[h+(f*156|0)+24>>2]*(A*(ga-ka*L-ba+fa*C)+B*(ia+ka*K-da-fa*D)-+g[h+(f*156|0)+32>>2]);O=R>0?R:0;R=O-P;g[I>>2]=O;O=A*R;P=B*R;I=(g[k>>2]=ba-m*O,c[k>>2]|0);H=(g[k>>2]=da-m*P,c[k>>2]|0);G=(g[k>>2]=ga+o*O,c[k>>2]|0);la=I;ma=H;na=G;oa=(g[k>> +2]=ia+o*P,c[k>>2]|0);pa=fa-n*(D*P-C*O);qa=ka+p*(K*P-L*O)}else{ra=ea;sa=ca;ta=ja;ua=ha;va=fa;wa=ka;xa=8}}else{ra=v;sa=t;ta=y;ua=x;va=w;wa=z;xa=8}do if((xa|0)==8){xa=0;G=h+(f*156|0)+16|0;O=+g[G>>2];H=h+(f*156|0)+52|0;L=+g[H>>2];P=+g[h+(f*156|0)+12>>2];K=+g[h+(f*156|0)+8>>2];C=(c[k>>2]=ua,+g[k>>2]);D=(c[k>>2]=ta,+g[k>>2]);R=(c[k>>2]=sa,+g[k>>2]);S=(c[k>>2]=ra,+g[k>>2]);Q=+g[h+(f*156|0)+4>>2];Z=+g[i>>2];U=+g[h+(f*156|0)+48>>2];M=+g[h+(f*156|0)+44>>2];W=+g[h+(f*156|0)+40>>2];N=+g[h+(f*156|0)+36>>2];T= ++g[h+(f*156|0)+104>>2];Y=+g[h+(f*156|0)+100>>2];X=A*(C-wa*P-R+va*Q)+B*(D+wa*K-S-va*Z)-+g[h+(f*156|0)+32>>2]-(O*+g[h+(f*156|0)+96>>2]+L*T);ya=A*(C-wa*U-R+va*W)+B*(D+wa*M-S-va*N)-+g[h+(f*156|0)+68>>2]-(O*Y+L*+g[h+(f*156|0)+108>>2]);za=+g[h+(f*156|0)+80>>2]*X+ +g[h+(f*156|0)+88>>2]*ya;Aa=X*+g[h+(f*156|0)+84>>2]+ya*+g[h+(f*156|0)+92>>2];Ba=-za;Ca=-Aa;if(!(!(za<=-0)|!(Aa<=-0))){Aa=Ba-O;za=Ca-L;Da=A*Aa;Ea=B*Aa;Aa=A*za;Fa=B*za;za=Da+Aa;Ga=Ea+Fa;I=(g[k>>2]=R-m*za,c[k>>2]|0);F=(g[k>>2]=S-m*Ga,c[k>>2]|0);r= +(g[k>>2]=C+o*za,c[k>>2]|0);J=(g[k>>2]=D+o*Ga,c[k>>2]|0);g[G>>2]=Ba;g[H>>2]=Ca;la=I;ma=F;na=r;oa=J;pa=va-n*(Z*Ea-Q*Da+(N*Fa-W*Aa));qa=wa+p*(K*Ea-P*Da+(M*Fa-U*Aa));break}Aa=X*+g[h+(f*156|0)+24>>2];Fa=-Aa;if(Aa<=-0&ya+Y*Fa>=0){Y=Fa-O;Aa=0-L;Da=A*Y;Ea=B*Y;Y=A*Aa;Ca=B*Aa;Aa=Y+Da;Ba=Ca+Ea;J=(g[k>>2]=R-m*Aa,c[k>>2]|0);r=(g[k>>2]=S-m*Ba,c[k>>2]|0);F=(g[k>>2]=C+o*Aa,c[k>>2]|0);I=(g[k>>2]=D+o*Ba,c[k>>2]|0);g[G>>2]=Fa;c[H>>2]=0;la=J;ma=r;na=F;oa=I;pa=va-n*(Ea*Z-Da*Q+(Ca*N-Y*W));qa=wa+p*(Ea*K-Da*P+(Ca*M-Y*U)); +break}Y=ya*+g[h+(f*156|0)+60>>2];Ca=-Y;if(Y<=-0&X+T*Ca>=0){T=0-O;Y=Ca-L;Da=A*T;Ea=B*T;T=A*Y;Fa=B*Y;Y=Da+T;Ba=Ea+Fa;I=(g[k>>2]=R-m*Y,c[k>>2]|0);F=(g[k>>2]=S-m*Ba,c[k>>2]|0);r=(g[k>>2]=C+o*Y,c[k>>2]|0);J=(g[k>>2]=D+o*Ba,c[k>>2]|0);c[G>>2]=0;g[H>>2]=Ca;la=I;ma=F;na=r;oa=J;pa=va-n*(Ea*Z-Da*Q+(Fa*N-T*W));qa=wa+p*(Ea*K-Da*P+(Fa*M-T*U));break}if(X>=0&ya>=0){ya=0-O;O=0-L;L=A*ya;X=B*ya;ya=A*O;T=B*O;O=L+ya;Fa=X+T;J=(g[k>>2]=R-m*O,c[k>>2]|0);r=(g[k>>2]=S-m*Fa,c[k>>2]|0);F=(g[k>>2]=C+o*O,c[k>>2]|0);I=(g[k>>2]= +D+o*Fa,c[k>>2]|0);c[G>>2]=0;c[H>>2]=0;la=J;ma=r;na=F;oa=I;pa=va-n*(X*Z-L*Q+(T*N-ya*W));qa=wa+p*(X*K-L*P+(T*M-ya*U))}else{la=sa;ma=ra;na=ua;oa=ta;pa=va;qa=wa}}while(0);c[s>>2]=la;c[u>>2]=ma;h=c[e>>2]|0;g[h+(j*12|0)+8>>2]=pa;c[h+(l*12|0)>>2]=na;c[h+(l*12|0)+4>>2]=oa;a=c[e>>2]|0;g[a+(l*12|0)+8>>2]=qa;f=f+1|0}while((f|0)<(c[b>>2]|0));return}function ok(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;b=c[a+52>>2]|0;if((b|0)<=0)return;d=c[a+44>>2]|0;e=c[a+48>>2]|0;a=0;do{f=c[e+(c[d+(a*156|0)+152>>2]<<2)>>2]|0;g=c[d+ +(a*156|0)+148>>2]|0;if((g|0)>0){h=0;do{c[f+64+(h*20|0)+8>>2]=c[d+(a*156|0)+(h*36|0)+16>>2];c[f+64+(h*20|0)+12>>2]=c[d+(a*156|0)+(h*36|0)+20>>2];h=h+1|0}while((h|0)<(g|0))}a=a+1|0}while((a|0)<(b|0));return}function pk(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,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;b=i;i=i+64|0;d=b+40|0;e=b+24|0;f=b;h=a+52|0;if((c[h>>2]|0)<=0){j=0;l=j>=-.014999999664723873;i=b;return l|0}m=a+40|0;n=a+28|0;a=d+8|0;o=d+12|0;p=e+8|0;q=e+12|0;r=d+4|0;s=e+4|0;t=f+4|0;u=f+8|0;v=f+12|0;w=f+16|0;x=c[n>>2]|0;y=0;z=0;while(1){A=c[m>>2]|0;B=A+(y*88|0)|0;C=c[A+(y*88|0)+32>>2]|0;D=c[A+(y*88|0)+36>>2]|0;E=+g[A+(y*88|0)+48>>2];F=+g[A+(y*88|0)+52>>2];G=+g[A+(y*88|0)+40>>2];H=+g[A+(y*88|0)+64>>2];I=+g[A+ +(y*88|0)+56>>2];J=+g[A+(y*88|0)+60>>2];K=+g[A+(y*88|0)+44>>2];L=+g[A+(y*88|0)+68>>2];M=c[A+(y*88|0)+84>>2]|0;A=c[x+(C*12|0)>>2]|0;N=c[x+(C*12|0)+4>>2]|0;O=+g[x+(C*12|0)+8>>2];P=c[x+(D*12|0)>>2]|0;S=c[x+(D*12|0)+4>>2]|0;T=+g[x+(D*12|0)+8>>2];if((M|0)>0){U=G+K;V=A;W=N;X=P;Y=S;Z=O;_=T;$=0;aa=z;while(1){ba=+R(+Z);g[a>>2]=ba;ca=+Q(+Z);g[o>>2]=ca;da=+R(+_);g[p>>2]=da;ea=+Q(+_);g[q>>2]=ea;fa=(c[k>>2]=V,+g[k>>2]);ga=(c[k>>2]=W,+g[k>>2]);g[d>>2]=fa-(E*ca-F*ba);g[r>>2]=ga-(F*ca+E*ba);ba=(c[k>>2]=X,+g[k>>2]); +ca=(c[k>>2]=Y,+g[k>>2]);g[e>>2]=ba-(I*ea-J*da);g[s>>2]=ca-(J*ea+I*da);rk(f,B,d,e,$);da=+g[f>>2];ea=+g[t>>2];ha=+g[u>>2];ia=+g[v>>2];ja=+g[w>>2];ka=ha-fa;la=ia-ga;ma=ha-ba;ha=ia-ca;ia=aa0?(ja<-.20000000298023224?.20000000298023224:-ja)/pa:0;pa=da*na;da=ea*na;qa=(g[k>>2]=fa-G*pa,c[k>>2]|0);ra=(g[k>>2]=ga-G*da,c[k>>2]|0);ga=Z-H*(ka*da-la*pa);sa=(g[k>>2]=ba+K*pa,c[k>>2]| +0);ta=(g[k>>2]=ca+K*da,c[k>>2]|0);ca=_+L*(ma*da-ha*pa);$=$+1|0;if(($|0)==(M|0)){ua=ia;va=qa;wa=ra;xa=ga;ya=sa;za=ta;Aa=ca;break}else{V=qa;W=ra;X=sa;Y=ta;Z=ga;_=ca;aa=ia}}Ba=wa;Ca=va;Da=za;Ea=ya;Fa=c[n>>2]|0;Ga=xa;Ha=Aa;Ia=ua}else{Ba=N;Ca=A;Da=S;Ea=P;Fa=x;Ga=O;Ha=T;Ia=z}c[Fa+(C*12|0)>>2]=Ca;c[Fa+(C*12|0)+4>>2]=Ba;Y=c[n>>2]|0;g[Y+(C*12|0)+8>>2]=Ga;c[Y+(D*12|0)>>2]=Ea;c[Y+(D*12|0)+4>>2]=Da;x=c[n>>2]|0;g[x+(D*12|0)+8>>2]=Ha;y=y+1|0;if((y|0)>=(c[h>>2]|0)){j=Ia;break}else z=Ia}l=j>=-.014999999664723873; +i=b;return l|0}function qk(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,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,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;e=i;i=i+64|0;f=e+40|0;h=e+24|0;j=e;l=a+52|0;if((c[l>>2]|0)<=0){m=0;n=m>=-.007499999832361937; +i=e;return n|0}o=a+40|0;p=a+28|0;a=f+8|0;q=f+12|0;r=h+8|0;s=h+12|0;t=f+4|0;u=h+4|0;v=j+4|0;w=j+8|0;x=j+12|0;y=j+16|0;z=0;A=0;while(1){B=c[o>>2]|0;C=B+(z*88|0)|0;D=c[B+(z*88|0)+32>>2]|0;E=c[B+(z*88|0)+36>>2]|0;F=+g[B+(z*88|0)+48>>2];G=+g[B+(z*88|0)+52>>2];H=+g[B+(z*88|0)+56>>2];I=+g[B+(z*88|0)+60>>2];J=c[B+(z*88|0)+84>>2]|0;if((D|0)==(b|0)|(D|0)==(d|0)){K=+g[B+(z*88|0)+64>>2];L=+g[B+(z*88|0)+40>>2]}else{K=0;L=0}if((E|0)==(b|0)|(E|0)==(d|0)){M=+g[B+(z*88|0)+68>>2];N=+g[B+(z*88|0)+44>>2]}else{M=0;N= +0}B=c[p>>2]|0;O=c[B+(D*12|0)>>2]|0;P=c[B+(D*12|0)+4>>2]|0;S=+g[B+(D*12|0)+8>>2];T=c[B+(E*12|0)>>2]|0;U=c[B+(E*12|0)+4>>2]|0;V=+g[B+(E*12|0)+8>>2];if((J|0)>0){W=L+N;X=O;Y=P;Z=T;_=U;$=S;aa=V;ba=0;ca=A;while(1){da=+R(+$);g[a>>2]=da;ea=+Q(+$);g[q>>2]=ea;fa=+R(+aa);g[r>>2]=fa;ga=+Q(+aa);g[s>>2]=ga;ha=(c[k>>2]=X,+g[k>>2]);ia=(c[k>>2]=Y,+g[k>>2]);g[f>>2]=ha-(F*ea-G*da);g[t>>2]=ia-(G*ea+F*da);da=(c[k>>2]=Z,+g[k>>2]);ea=(c[k>>2]=_,+g[k>>2]);g[h>>2]=da-(H*ga-I*fa);g[u>>2]=ea-(I*ga+H*fa);rk(j,C,f,h,ba);fa=+g[j>> +2];ga=+g[v>>2];ja=+g[w>>2];ka=+g[x>>2];la=+g[y>>2];ma=ja-ha;na=ka-ia;oa=ja-da;ja=ka-ea;ka=ca0?(la<-.20000000298023224?.20000000298023224:-la)/ra:0;ra=fa*pa;fa=ga*pa;sa=(g[k>>2]=ha-L*ra,c[k>>2]|0);ta=(g[k>>2]=ia-L*fa,c[k>>2]|0);ia=$-K*(ma*fa-na*ra);ua=(g[k>>2]=da+N*ra,c[k>>2]|0);va=(g[k>>2]=ea+N*fa,c[k>>2]|0);ea=aa+M*(oa*fa-ja*ra);ba=ba+1|0;if((ba|0)==(J|0)){wa=ka;xa=sa;ya=ta;za=ia; +Aa=ua;Ba=va;Ca=ea;break}else{X=sa;Y=ta;Z=ua;_=va;$=ia;aa=ea;ca=ka}}Da=ya;Ea=xa;Fa=Ba;Ga=Aa;Ha=c[p>>2]|0;Ia=za;Ja=Ca;Ka=wa}else{Da=P;Ea=O;Fa=U;Ga=T;Ha=B;Ia=S;Ja=V;Ka=A}c[Ha+(D*12|0)>>2]=Ea;c[Ha+(D*12|0)+4>>2]=Da;_=c[p>>2]|0;g[_+(D*12|0)+8>>2]=Ia;c[_+(E*12|0)>>2]=Ga;c[_+(E*12|0)+4>>2]=Fa;g[(c[p>>2]|0)+(E*12|0)+8>>2]=Ja;z=z+1|0;if((z|0)>=(c[l>>2]|0)){m=Ka;break}else A=Ka}n=m>=-.007499999832361937;i=e;return n|0}function rk(a,b,d,e,f){a=a|0;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;switch(c[b+72>>2]|0){case 0:{h=+g[d+12>>2];i=+g[b+24>>2];j=+g[d+8>>2];k=+g[b+28>>2];l=+g[d>>2]+(h*i-j*k);m=i*j+h*k+ +g[d+4>>2];k=+g[e+12>>2];h=+g[b>>2];j=+g[e+8>>2];i=+g[b+4>>2];n=+g[e>>2]+(k*h-j*i);o=h*j+k*i+ +g[e+4>>2];i=n-l;k=o-m;g[a>>2]=i;p=a+4|0;g[p>>2]=k;j=+O(+(i*i+k*k));if(j<1.1920928955078125E-7){q=i;r=k}else{h=1/j;j=i*h;g[a>>2]=j;s=k*h;g[p>>2]=s;q=j;r=s}g[a+8>>2]=(l+n)*.5;g[a+12>>2]=(m+o)*.5;g[a+16>>2]=i*q+k*r-+g[b+76>>2]-+g[b+80>>2];return}case 1:{p=d+12|0;r= ++g[p>>2];k=+g[b+16>>2];t=d+8|0;q=+g[t>>2];i=+g[b+20>>2];o=r*k-q*i;m=k*q+r*i;g[a>>2]=o;g[a+4>>2]=m;i=+g[p>>2];r=+g[b+24>>2];q=+g[t>>2];k=+g[b+28>>2];n=+g[e+12>>2];l=+g[b+(f<<3)>>2];s=+g[e+8>>2];j=+g[b+(f<<3)+4>>2];h=+g[e>>2]+(n*l-s*j);u=l*s+n*j+ +g[e+4>>2];g[a+16>>2]=o*(h-(+g[d>>2]+(i*r-q*k)))+(u-(r*q+i*k+ +g[d+4>>2]))*m-+g[b+76>>2]-+g[b+80>>2];g[a+8>>2]=h;g[a+12>>2]=u;return}case 2:{t=e+12|0;u=+g[t>>2];h=+g[b+16>>2];p=e+8|0;m=+g[p>>2];k=+g[b+20>>2];i=u*h-m*k;q=h*m+u*k;g[a>>2]=i;v=a+4|0;g[v>>2]=q; +k=+g[t>>2];u=+g[b+24>>2];m=+g[p>>2];h=+g[b+28>>2];r=+g[d+12>>2];o=+g[b+(f<<3)>>2];j=+g[d+8>>2];n=+g[b+(f<<3)+4>>2];s=+g[d>>2]+(r*o-j*n);l=o*j+r*n+ +g[d+4>>2];g[a+16>>2]=i*(s-(+g[e>>2]+(k*u-m*h)))+(l-(u*m+k*h+ +g[e+4>>2]))*q-+g[b+76>>2]-+g[b+80>>2];g[a+8>>2]=s;g[a+12>>2]=l;g[a>>2]=-i;g[v>>2]=-q;return}default:{g[a+16>>2]=0;v=2440;b=c[v+4>>2]|0;e=a;c[e>>2]=c[v>>2];c[e+4>>2]=b;b=2440;e=c[b+4>>2]|0;v=a+8|0;c[v>>2]=c[b>>2];c[v+4>>2]=e;return}}}function sk(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;e=Sn(f, +148)|0;_j(e,a,0,d,0);c[e>>2]=2016;return e|0}function tk(a,b){a=a|0;b=b|0;ib[c[(c[a>>2]|0)+4>>2]&127](a);Tn(b,a,148);return}function uk(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;rg(b,c[(c[a+48>>2]|0)+12>>2]|0,d,c[(c[a+52>>2]|0)+12>>2]|0,e);return}function vk(a){a=a|0;so(a);return}function wk(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0;g=Sn(f,148)|0;_j(g,a,b,d,e);c[g>>2]=2036;return g|0}function xk(a,b){a=a|0;b=b|0;ib[c[(c[a>>2]|0)+4>>2]&127](a);Tn(b,a,148);return}function yk(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;h=i;i=i+48|0;j=h;k=c[(c[a+48>>2]|0)+12>>2]|0;c[j>>2]=916;c[j+4>>2]=1;g[j+8>>2]=.009999999776482582;l=j+28|0;c[l>>2]=0;c[l+4>>2]=0;c[l+8>>2]=0;c[l+12>>2]=0;b[l+16>>1]=0;Vf(k,j,c[a+56>>2]|0);rg(d,j,e,c[(c[a+52>>2]|0)+12>>2]|0,f);i=h;return}function zk(a){a=a|0;so(a);return}function Ak(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;e=Sn(f,148)|0;_j(e,a,0,d,0);c[e>>2]=2056;return e|0}function Bk(a,b){a=a|0;b=b|0;ib[c[(c[a>>2]|0)+4>>2]&127](a);Tn(b,a,148);return}function Ck(a,b,d, +e){a=a|0;b=b|0;d=d|0;e=e|0;ug(b,c[(c[a+48>>2]|0)+12>>2]|0,d,c[(c[a+52>>2]|0)+12>>2]|0,e);return}function Dk(a){a=a|0;so(a);return}function Ek(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;e=Sn(f,148)|0;_j(e,a,0,d,0);c[e>>2]=2076;return e|0}function Fk(a,b){a=a|0;b=b|0;ib[c[(c[a>>2]|0)+4>>2]&127](a);Tn(b,a,148);return}function Gk(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;vg(b,c[(c[a+48>>2]|0)+12>>2]|0,d,c[(c[a+52>>2]|0)+12>>2]|0,e);return}function Hk(a){a=a|0;so(a);return}function Ik(a){a=a|0;b[a+32>>1]=1;b[a+34>> +1]=-1;b[a+36>>1]=0;c[a+40>>2]=0;c[a+24>>2]=0;c[a+28>>2]=0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;c[a+12>>2]=0;return}function Jk(d,e,f,g){d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0;c[d+40>>2]=c[g+4>>2];c[d+16>>2]=c[g+8>>2];c[d+20>>2]=c[g+12>>2];c[d+8>>2]=f;c[d+4>>2]=0;f=d+32|0;h=g+22|0;b[f>>1]=b[h>>1]|0;b[f+2>>1]=b[h+2>>1]|0;b[f+4>>1]=b[h+4>>1]|0;a[d+38>>0]=a[g+20>>0]|0;h=c[g>>2]|0;f=rb[c[(c[h>>2]|0)+8>>2]&31](h,e)|0;c[d+12>>2]=f;h=fb[c[(c[f>>2]|0)+12>>2]&7](f)|0;f=Sn(e,h*28|0)|0;c[d+24>>2]=f;if((h| +0)>0)i=0;else{j=d+28|0;c[j>>2]=0;k=g+16|0;l=c[k>>2]|0;c[d>>2]=l;return}do{c[f+(i*28|0)+16>>2]=0;c[f+(i*28|0)+24>>2]=-1;i=i+1|0}while((i|0)!=(h|0));j=d+28|0;c[j>>2]=0;k=g+16|0;l=c[k>>2]|0;c[d>>2]=l;return}function Kk(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=a+12|0;e=c[d>>2]|0;f=fb[c[(c[e>>2]|0)+12>>2]&7](e)|0;e=a+24|0;Tn(b,c[e>>2]|0,f*28|0);c[e>>2]=0;e=c[d>>2]|0;switch(c[e+4>>2]|0){case 0:{ib[c[c[e>>2]>>2]&127](e);Tn(b,e,20);c[d>>2]=0;return}case 1:{ib[c[c[e>>2]>>2]&127](e);Tn(b,e,48);c[d>>2]=0;return}case 2:{ib[c[c[e>> +2]>>2]&127](e);Tn(b,e,152);c[d>>2]=0;return}case 3:{ib[c[c[e>>2]>>2]&127](e);Tn(b,e,40);c[d>>2]=0;return}default:{c[d>>2]=0;return}}}function Lk(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;e=a+12|0;f=c[e>>2]|0;g=fb[c[(c[f>>2]|0)+12>>2]&7](f)|0;f=a+28|0;c[f>>2]=g;if((g|0)<=0)return;g=a+24|0;h=0;do{i=c[g>>2]|0;j=i+(h*28|0)|0;k=c[e>>2]|0;tb[c[(c[k>>2]|0)+28>>2]&31](k,j,d,h);c[i+(h*28|0)+24>>2]=bg(b,j,j)|0;c[i+(h*28|0)+16>>2]=a;c[i+(h*28|0)+20>>2]=h;h=h+1|0}while((h|0)<(c[f>>2]|0));return} +function Mk(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=a+28|0;if((c[d>>2]|0)<=0){c[d>>2]=0;return}e=a+24|0;a=0;do{f=(c[e>>2]|0)+(a*28|0)+24|0;cg(b,c[f>>2]|0);c[f>>2]=-1;a=a+1|0}while((a|0)<(c[d>>2]|0));c[d>>2]=0;return}function Nk(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,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0;f=i;i=i+48|0;h=f+24|0;j=f+8|0;k=f;l=a+28|0;if((c[l>>2]|0)<=0){i=f;return}m=a+24|0;n=a+12|0;a=h+4|0;o=j+4|0;p=h+8|0;q=j+8|0;r=h+12|0;s=j+12|0;t=e+4|0; +u=d+4|0;v=k+4|0;w=0;do{x=c[m>>2]|0;y=c[n>>2]|0;z=x+(w*28|0)+20|0;tb[c[(c[y>>2]|0)+28>>2]&31](y,h,d,c[z>>2]|0);y=c[n>>2]|0;tb[c[(c[y>>2]|0)+28>>2]&31](y,j,e,c[z>>2]|0);z=x+(w*28|0)|0;A=+g[h>>2];B=+g[j>>2];C=+g[a>>2];D=+g[o>>2];g[z>>2]=A>2]=C>2];C=+g[q>>2];B=+g[r>>2];A=+g[s>>2];g[x+(w*28|0)+8>>2]=D>C?D:C;g[x+(w*28|0)+12>>2]=B>A?B:A;A=+g[t>>2]-+g[u>>2];g[k>>2]=+g[e>>2]-+g[d>>2];g[v>>2]=A;dg(b,c[x+(w*28|0)+24>>2]|0,z,k);w=w+1|0}while((w|0)<(c[l>>2]|0));i=f;return}function Ok(a){a= +a|0;var b=0,d=0,e=0,f=0;b=c[a+8>>2]|0;if(!b)return;d=c[b+128>>2]|0;if(d){e=d;do{d=c[e+4>>2]|0;if((c[d+48>>2]|0)==(a|0)?1:(c[d+52>>2]|0)==(a|0)){f=d+4|0;c[f>>2]=c[f>>2]|8}e=c[e+12>>2]|0}while((e|0)!=0)}e=c[b+104>>2]|0;if(!e)return;b=e+102880|0;e=a+28|0;if((c[e>>2]|0)<=0)return;f=a+24|0;a=0;do{eg(b,c[(c[f>>2]|0)+(a*28|0)+24>>2]|0);a=a+1|0}while((a|0)<(c[e>>2]|0));return}function Pk(b,d){b=b|0;d=d|0;var e=0,f=0;Qn(b);jo(b+76|0);pl(b+102880|0);c[b+102992>>2]=0;c[b+102996>>2]=0;e=b+102960|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;a[b+103004>>0]=1;a[b+103005>>0]=1;a[b+103006>>0]=0;a[b+103007>>0]=1;a[b+102988>>0]=1;e=d;d=c[e+4>>2]|0;f=b+102980|0;c[f>>2]=c[e>>2];c[f+4>>2]=d;c[b+102876>>2]=4;g[b+103E3>>2]=0;c[b+102956>>2]=b;c[b+103040>>2]=2448;c[b+103044>>2]=c[615];d=b+103008|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;return}function Qk(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;b=c[a+102960>>2]|0;if(b){d=b;do{b=d;d=c[d+ +112>>2]|0;e=c[b+116>>2]|0;while(1){if(!e)break;b=c[e+4>>2]|0;c[e+28>>2]=0;Kk(e,a);e=b}}while((d|0)!=0)}d=a+102968|0;e=c[d>>2]|0;if(!e){f=a+102880|0;ag(f);g=a+76|0;ko(g);Rn(a);return}b=a+102876|0;h=e;do{e=(c[b>>2]&2|0)==0;do;while(!e);e=c[h+404>>2]|0;i=h+408|0;if(e)c[e+408>>2]=c[i>>2];j=c[i>>2]|0;if(j)c[j+404>>2]=e;c[d>>2]=j;Rl(h);Tn(a,h,416);h=c[d>>2]|0}while((h|0)!=0);f=a+102880|0;ag(f);g=a+76|0;ko(g);Rn(a);return}function Rk(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;if(c[a+102876>>2]&2)return;d=c[b+404>> +2]|0;e=b+408|0;if(d)c[d+408>>2]=c[e>>2];f=c[e>>2]|0;if(f)c[f+404>>2]=d;d=a+102968|0;if((c[d>>2]|0)==(b|0))c[d>>2]=f;Rl(b);Tn(a,b,416);return}function Sk(a,b){a=a|0;b=b|0;c[a+102952>>2]=b;return}function Tk(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;if(c[a+102876>>2]&2){d=0;return d|0}e=Sn(a,168)|0;dl(e,b,a);c[e+108>>2]=0;b=a+102960|0;f=c[b>>2]|0;c[e+112>>2]=f;if(f)c[f+108>>2]=e;c[b>>2]=e;b=a+102972|0;c[b>>2]=(c[b>>2]|0)+1;d=e;return d|0}function Uk(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;if(c[a+ +102876>>2]&2)return;d=b+124|0;e=c[d>>2]|0;if(e){f=a+102992|0;g=e;do{e=g;g=c[g+12>>2]|0;h=c[f>>2]|0;if(!h)i=e+4|0;else{j=e+4|0;kb[c[(c[h>>2]|0)+8>>2]&63](h,c[j>>2]|0);i=j}Vk(a,c[i>>2]|0);c[d>>2]=g}while((g|0)!=0)}c[d>>2]=0;d=b+128|0;g=c[d>>2]|0;if(g){i=a+102880|0;f=g;do{g=f;f=c[f+12>>2]|0;ql(i,c[g+4>>2]|0)}while((f|0)!=0)}c[d>>2]=0;d=b+116|0;f=c[d>>2]|0;if(!f)k=b+120|0;else{i=a+102992|0;g=a+102880|0;j=b+120|0;h=f;do{f=h;h=c[h+4>>2]|0;e=c[i>>2]|0;if(e)kb[c[(c[e>>2]|0)+12>>2]&63](e,f);Mk(f,g);Kk(f,a); +Tn(a,f,44);c[d>>2]=h;c[j>>2]=(c[j>>2]|0)+-1}while((h|0)!=0);k=j}c[d>>2]=0;c[k>>2]=0;k=c[b+108>>2]|0;d=b+112|0;if(k)c[k+112>>2]=c[d>>2];j=c[d>>2]|0;if(j)c[j+108>>2]=k;k=a+102960|0;if((c[k>>2]|0)==(b|0))c[k>>2]=j;j=a+102972|0;c[j>>2]=(c[j>>2]|0)+-1;el(b);Tn(a,b,168);return}function Vk(d,f){d=d|0;f=f|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;if(c[d+102876>>2]&2)return;h=a[f+61>>0]|0;i=c[f+8>>2]|0;j=f+12|0;if(i)c[i+12>>2]=c[j>>2];k=c[j>>2]|0;if(k)c[k+8>>2]=i;i=d+102964|0;if((c[i>>2]|0)==(f|0))c[i>>2]=k;k= +c[f+48>>2]|0;i=c[f+52>>2]|0;j=k+4|0;l=e[j>>1]|0;if(!(l&2)){b[j>>1]=l|2;g[k+160>>2]=0}l=i+4|0;j=e[l>>1]|0;if(!(j&2)){b[l>>1]=j|2;g[i+160>>2]=0}j=f+24|0;l=c[j>>2]|0;m=f+28|0;if(l)c[l+12>>2]=c[m>>2];n=c[m>>2]|0;if(n)c[n+8>>2]=l;l=k+124|0;if((f+16|0)==(c[l>>2]|0))c[l>>2]=n;c[j>>2]=0;c[m>>2]=0;m=f+40|0;j=c[m>>2]|0;n=f+44|0;if(j)c[j+12>>2]=c[n>>2];l=c[n>>2]|0;if(l)c[l+8>>2]=j;j=i+124|0;if((f+32|0)==(c[j>>2]|0))c[j>>2]=l;c[m>>2]=0;c[n>>2]=0;Ni(f,d);f=d+102976|0;c[f>>2]=(c[f>>2]|0)+-1;if(h<<24>>24)return; +h=c[i+128>>2]|0;if(!h)return;else o=h;do{if((c[o>>2]|0)==(k|0)){h=(c[o+4>>2]|0)+4|0;c[h>>2]=c[h>>2]|8}o=c[o+12>>2]|0}while((o|0)!=0);return}function Wk(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;if(c[b+102876>>2]&2){e=0;return e|0}f=Mi(d,b)|0;c[f+8>>2]=0;g=b+102964|0;h=c[g>>2]|0;c[f+12>>2]=h;if(h)c[h+8>>2]=f;c[g>>2]=f;g=b+102976|0;c[g>>2]=(c[g>>2]|0)+1;g=f+16|0;c[f+20>>2]=f;b=c[f+52>>2]|0;c[g>>2]=b;c[f+24>>2]=0;h=c[f+48>>2]|0;i=h+124|0;j=c[i>>2]|0;c[f+28>>2]=j;if(j)c[j+8>>2]=g;c[i>>2]=g;g=f+ +32|0;c[f+36>>2]=f;c[g>>2]=h;c[f+40>>2]=0;h=b+124|0;b=c[h>>2]|0;c[f+44>>2]=b;if(b)c[b+8>>2]=g;c[h>>2]=g;g=c[d+8>>2]|0;if(a[d+16>>0]|0){e=f;return e|0}h=c[(c[d+12>>2]|0)+128>>2]|0;if(!h){e=f;return e|0}else k=h;do{if((c[k>>2]|0)==(g|0)){h=(c[k+4>>2]|0)+4|0;c[h>>2]=c[h>>2]|8}k=c[k+12>>2]|0}while((k|0)!=0);e=f;return e|0}function Xk(a,b){a=a|0;b=b|0;var d=0,e=0;if(c[a+102876>>2]&2){d=0;return d|0}e=Sn(a,416)|0;Ql(e,b,a);c[e+404>>2]=0;b=a+102968|0;a=c[b>>2]|0;c[e+408>>2]=a;if(a)c[a+404>>2]=e;c[b>>2]=e; +d=e;return d|0}function Yk(d,f){d=d|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,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;h=i;i=i+96|0;j=h+40|0;k=h+8|0;l=h;m=d+102960|0;n=c[m>>2]|0;if(n){o=n;do{n=o+28|0;p=o+12|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];o=c[o+112>>2]|0}while((o|0)!=0)}o=d+103020|0;g[o>>2]=0;p=d+103024|0;g[p>>2]= +0;n=d+103028|0;g[n>>2]=0;q=d+102972|0;r=d+102880|0;s=d+76|0;Ag(j,c[q>>2]|0,c[d+102944>>2]|0,c[d+102976>>2]|0,s,c[d+102952>>2]|0);t=c[m>>2]|0;if(t){u=t;do{t=u+4|0;b[t>>1]=e[t>>1]&65534;u=c[u+112>>2]|0}while((u|0)!=0)}u=c[d+102940>>2]|0;if(u){t=u;do{u=t+4|0;c[u>>2]=c[u>>2]&-2;t=c[t+12>>2]|0}while((t|0)!=0)}t=c[d+102964>>2]|0;if(t){u=t;do{a[u+60>>0]=0;u=c[u+12>>2]|0}while((u|0)!=0)}u=lo(s,c[q>>2]<<2)|0;q=c[m>>2]|0;if(q){t=j+28|0;v=j+36|0;w=j+32|0;x=j+8|0;y=j+16|0;z=j+12|0;A=d+102980|0;B=d+102988|0;C= +k+12|0;D=k+16|0;E=k+20|0;F=q;do{q=F+4|0;G=b[q>>1]|0;if((G&35)==34?(c[F>>2]|0)!=0:0){c[t>>2]=0;c[v>>2]=0;c[w>>2]=0;c[u>>2]=F;b[q>>1]=G&65535|1;G=0;q=0;H=0;I=1;while(1){J=I+-1|0;K=c[u+(J<<2)>>2]|0;c[K+8>>2]=H;c[(c[x>>2]|0)+(H<<2)>>2]=K;H=H+1|0;c[t>>2]=H;L=K+4|0;M=e[L>>1]|0;if(!(M&2)){b[L>>1]=M|2;g[K+160>>2]=0}if(c[K>>2]|0){M=c[K+128>>2]|0;if(!M){N=q;O=J}else{L=q;P=M;M=J;while(1){Q=c[P+4>>2]|0;R=Q+4|0;S=c[R>>2]|0;do if((S&7|0)==6?(a[(c[Q+48>>2]|0)+38>>0]|0)==0:0){if(a[(c[Q+52>>2]|0)+38>>0]|0){T=L;U= +M;break}V=L+1|0;c[v>>2]=V;c[(c[z>>2]|0)+(L<<2)>>2]=Q;c[R>>2]=S|1;W=c[P>>2]|0;X=W+4|0;Y=b[X>>1]|0;if(Y&1){T=V;U=M;break}c[u+(M<<2)>>2]=W;b[X>>1]=Y&65535|1;T=V;U=M+1|0}else{T=L;U=M}while(0);P=c[P+12>>2]|0;if(!P){N=T;O=U;break}else{L=T;M=U}}}M=c[K+124>>2]|0;if(!M){Z=G;_=N;$=O}else{L=G;P=M;M=O;while(1){S=P+4|0;R=c[S>>2]|0;do if((a[R+60>>0]|0)==0?(Q=c[P>>2]|0,V=Q+4|0,Y=b[V>>1]|0,(Y&32)!=0):0){X=L+1|0;c[w>>2]=X;c[(c[y>>2]|0)+(L<<2)>>2]=R;a[(c[S>>2]|0)+60>>0]=1;if(Y&1){aa=X;ba=M;break}c[u+(M<<2)>>2]=Q;b[V>> +1]=Y&65535|1;aa=X;ba=M+1|0}else{aa=L;ba=M}while(0);P=c[P+12>>2]|0;if(!P){Z=aa;_=N;$=ba;break}else{L=aa;M=ba}}}}else{Z=G;_=q;$=J}if(($|0)<=0)break;else{G=Z;q=_;I=$}}Cg(j,k,f,A,(a[B>>0]|0)!=0);g[o>>2]=+g[C>>2]+ +g[o>>2];g[p>>2]=+g[D>>2]+ +g[p>>2];g[n>>2]=+g[E>>2]+ +g[n>>2];I=c[t>>2]|0;if((I|0)>0){q=c[x>>2]|0;G=0;do{H=c[q+(G<<2)>>2]|0;if(!(c[H>>2]|0)){M=H+4|0;b[M>>1]=e[M>>1]&65534}G=G+1|0}while((G|0)<(I|0))}}F=c[F+112>>2]|0}while((F|0)!=0)}no(s,u);Yn(l);u=c[m>>2]|0;if(!u){sl(r);ca=+_n(l);da=d+103032| +0;g[da>>2]=ca;Bg(j);i=h;return}else ea=u;do{if((b[ea+4>>1]&1)!=0?(c[ea>>2]|0)!=0:0)hl(ea);ea=c[ea+112>>2]|0}while((ea|0)!=0);sl(r);ca=+_n(l);da=d+103032|0;g[da>>2]=ca;Bg(j);i=h;return}function ub(a){a=a|0;var b=0;b=i;i=i+a|0;i=i+15&-16;return b|0}function vb(){return i|0}function wb(a){a=a|0;i=a}function xb(a,b){a=a|0;b=b|0;i=a;j=b}function yb(a,b){a=a|0;b=b|0;if(!n){n=a;o=b}}function zb(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 Ab(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 Bb(a){a=a|0;C=a}function Cb(){return C|0}function Db(a){a=a|0;return+ +(c[a+60>>2]|0)}function Eb(d,e,f,j,k,l,m,n,o,p,q){d=d|0;e=+e;f=+f;j=+j;k=+k;l=+l;m=+m;n=+n;o=+o;p=p|0;q=+q;var r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;r=i;i=i+1104|0;s=r;t=r+1032|0;u=r+1064|0;v=r+8|0;h[s>>3]=l;c[t>>2]=0;g[t+16>>2]=e;g[t+8>>2]=f;a[t+20>>0]=j!=0&1;g[t+12>>2]= +k;c[t+4>>2]=s;b[t+22>>1]=~~m;b[t+26>>1]=~~n;b[t+24>>1]=~~o;c[u>>2]=1048;c[u+4>>2]=3;g[u+8>>2]=.009999999776482582;c[u+12>>2]=0;c[u+16>>2]=0;a[u+36>>0]=0;a[u+37>>0]=0;s=~~(q*.5);if(q>0){w=0;x=0}else{Sf(u,v,s);c[t>>2]=u;y=il(d,t)|0;Qf(u);i=r;return y|0}while(1){z=c[p+((w|1)<<2)>>2]|0;c[v+(x<<3)>>2]=c[p+(w<<2)>>2];c[v+(x<<3)+4>>2]=z;w=w+2|0;if(!(+(w|0)>2]=u;y=il(d,t)|0;Qf(u);i=r;return y|0}function Fb(a){a=a|0;Da(a|0)|0;xo()}function Gb(d,e,f,j,k,l,m,n,o,p,q,r){d= +d|0;e=+e;f=+f;j=+j;k=+k;l=+l;m=+m;n=+n;o=+o;p=+p;q=+q;r=+r;var s=0,t=0,u=0,v=0;s=i;i=i+64|0;t=s;u=s+28|0;v=s+8|0;h[t>>3]=l;g[u+16>>2]=e;g[u+8>>2]=f;a[u+20>>0]=j!=0&1;g[u+12>>2]=k;c[u+4>>2]=t;b[u+22>>1]=~~m;b[u+26>>1]=~~n;b[u+24>>1]=~~o;c[v>>2]=1004;t=v+4|0;c[t>>2]=0;c[t+4>>2]=0;c[t+8>>2]=0;g[v+12>>2]=p;g[v+16>>2]=q;g[v+8>>2]=r;c[u>>2]=v;v=il(d,u)|0;i=s;return v|0}function Hb(b,d,e,f,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B){b=b|0;d=+d;e=+e;f=+f;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;x=+x;y=+y;z=+z;A=+A;B=+B;var C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0;C=i;i=i+112|0;D=C;E=C+28|0;F=C+8|0;h[D>>3]=y;G=E+8|0;H=E+20|0;I=2440;J=c[I>>2]|0;K=c[I+4>>2]|0;I=G;c[I>>2]=J;c[I+4>>2]=K;I=H;c[I>>2]=J;c[I+4>>2]=K;K=E+40|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;c[K+20>>2]=0;c[K+24>>2]=0;g[E+16>>2]=d;g[E+28>>2]=e;a[E+32>>0]=~~f;a[E+33>>0]=~~j;a[E+34>>0]=~~k;a[E+35>>0]=~~l;c[E>>2]=~~m>>>0;c[E+72>>2]=0;c[E+4>>2]=~~o>>>0;g[E+64>>2]=p;g[H>>2]=q;g[E+24>>2]=r;g[G>>2]=s; +g[E+12>>2]=t;c[E+60>>2]=0;c[E+56>>2]=~~v;c[E+48>>2]=0;c[E+44>>2]=0;g[E+36>>2]=w;g[E+52>>2]=x;c[E+68>>2]=D;c[F>>2]=1004;D=F+4|0;c[D>>2]=0;c[D+4>>2]=0;c[D+8>>2]=0;g[F+12>>2]=z;g[F+16>>2]=A;g[F+8>>2]=B;c[K>>2]=F;F=cm(b,E)|0;i=C;return F|0}function Ib(a,b,d,e,f,h,j,k){a=a|0;b=+b;d=+d;e=+e;f=+f;h=+h;j=+j;k=+k;var l=0,m=0,n=0,o=0;l=i;i=i+48|0;m=l+16|0;n=l;c[m>>2]=1004;o=m+4|0;c[o>>2]=0;c[o+4>>2]=0;c[o+8>>2]=0;g[m+12>>2]=b;g[m+16>>2]=d;g[m+8>>2]=e;g[n>>2]=f;g[n+4>>2]=h;g[n+8>>2]=j;g[n+12>>2]=k;k=+($l(a, +m,n,0)|0);i=l;return+k}function Jb(d,e,f,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y){d=d|0;e=+e;f=+f;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;x=+x;y=+y;var z=0,A=0,B=0,C=0;z=i;i=i+96|0;A=z;B=z+8|0;C=z+40|0;h[A>>3]=l;g[B+16>>2]=e;g[B+8>>2]=f;a[B+20>>0]=j!=0&1;g[B+12>>2]=k;c[B+4>>2]=A;b[B+22>>1]=~~m;b[B+26>>1]=~~n;b[B+24>>1]=~~o;c[C>>2]=916;c[C+4>>2]=1;g[C+8>>2]=.009999999776482582;A=C+28|0;c[A>>2]=0;c[A+4>>2]=0;c[A+8>>2]=0;c[A+12>>2]=0;b[A+16>>1]=0;g[A>>2]=r;g[C+32>>2]=s;g[C+12>> +2]=t;g[C+16>>2]=u;g[C+20>>2]=v;g[C+24>>2]=w;g[C+36>>2]=x;g[C+40>>2]=y;a[C+44>>0]=p!=0&1;a[C+45>>0]=q!=0&1;c[B>>2]=C;C=il(d,B)|0;i=z;return C|0}function Kb(d,e,f,j,k,l,m,n,o,p,q,r,s,t,u){d=d|0;e=+e;f=+f;j=+j;k=+k;l=+l;m=+m;n=+n;o=+o;p=+p;q=+q;r=+r;s=+s;t=+t;u=+u;var v=0,w=0,x=0,y=0,z=0;v=i;i=i+224|0;w=v;x=v+32|0;y=v+8|0;z=v+64|0;h[w>>3]=l;g[x+16>>2]=e;g[x+8>>2]=f;a[x+20>>0]=j!=0&1;g[x+12>>2]=k;c[x+4>>2]=w;b[x+22>>1]=~~m;b[x+26>>1]=~~n;b[x+24>>1]=~~o;g[y>>2]=p;g[y+4>>2]=q;g[y+8>>2]=r;g[y+12>>2]=s;g[y+ +16>>2]=t;g[y+20>>2]=u;c[z>>2]=960;c[z+4>>2]=2;g[z+8>>2]=.009999999776482582;c[z+148>>2]=0;g[z+12>>2]=0;g[z+16>>2]=0;Bf(z,y,3);c[x>>2]=z;z=il(d,x)|0;i=v;return z|0}function Lb(d,e,f,j,k,l,m,n,o,p,q,r,s,t,u,v,w){d=d|0;e=+e;f=+f;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;var x=0,y=0,z=0,A=0,B=0;x=i;i=i+224|0;y=x;z=x+40|0;A=x+8|0;B=x+72|0;h[y>>3]=l;g[z+16>>2]=e;g[z+8>>2]=f;a[z+20>>0]=j!=0&1;g[z+12>>2]=k;c[z+4>>2]=y;b[z+22>>1]=~~m;b[z+26>>1]=~~n;b[z+24>>1]=~~o;g[A>>2]=p;g[A+ +4>>2]=q;g[A+8>>2]=r;g[A+12>>2]=s;g[A+16>>2]=t;g[A+20>>2]=u;g[A+24>>2]=v;g[A+28>>2]=w;c[B>>2]=960;c[B+4>>2]=2;g[B+8>>2]=.009999999776482582;c[B+148>>2]=0;g[B+12>>2]=0;g[B+16>>2]=0;Bf(B,A,4);c[z>>2]=B;B=il(d,z)|0;i=x;return B|0}function Mb(d,e,f,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y){d=d|0;e=+e;f=+f;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;x=+x;y=+y;var z=0,A=0,B=0,C=0,D=0;z=i;i=i+240|0;A=z;B=z+160|0;C=z+192|0;D=z+8|0;h[A>>3]=l;g[B+16>>2]=e;g[B+8>>2]=f;a[B+20>>0]=j!=0&1;g[B+12>> +2]=k;c[B+4>>2]=A;b[B+22>>1]=~~m;b[B+26>>1]=~~n;b[B+24>>1]=~~o;g[C>>2]=p;g[C+4>>2]=q;g[C+8>>2]=r;g[C+12>>2]=s;g[C+16>>2]=t;g[C+20>>2]=u;g[C+24>>2]=v;g[C+28>>2]=w;g[C+32>>2]=x;g[C+36>>2]=y;c[D>>2]=960;c[D+4>>2]=2;g[D+8>>2]=.009999999776482582;c[D+148>>2]=0;g[D+12>>2]=0;g[D+16>>2]=0;Bf(D,C,5);c[B>>2]=D;D=il(d,B)|0;i=z;return D|0}function Nb(d,e,f,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A){d=d|0;e=+e;f=+f;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;x=+x;y=+y;z=+z;A=+A;var B=0,C=0, +D=0,E=0,F=0;B=i;i=i+240|0;C=B;D=B+160|0;E=B+192|0;F=B+8|0;h[C>>3]=l;g[D+16>>2]=e;g[D+8>>2]=f;a[D+20>>0]=j!=0&1;g[D+12>>2]=k;c[D+4>>2]=C;b[D+22>>1]=~~m;b[D+26>>1]=~~n;b[D+24>>1]=~~o;g[E>>2]=p;g[E+4>>2]=q;g[E+8>>2]=r;g[E+12>>2]=s;g[E+16>>2]=t;g[E+20>>2]=u;g[E+24>>2]=v;g[E+28>>2]=w;g[E+32>>2]=x;g[E+36>>2]=y;g[E+40>>2]=z;g[E+44>>2]=A;c[F>>2]=960;c[F+4>>2]=2;g[F+8>>2]=.009999999776482582;c[F+148>>2]=0;g[F+12>>2]=0;g[F+16>>2]=0;Bf(F,E,6);c[D>>2]=F;F=il(d,D)|0;i=B;return F|0}function Ob(d,e,f,j,k,l,m,n, +o,p,q,r,s,t,u,v,w,x,y,z,A,B,C){d=d|0;e=+e;f=+f;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;x=+x;y=+y;z=+z;A=+A;B=+B;C=+C;var D=0,E=0,F=0,G=0,H=0;D=i;i=i+256|0;E=D;F=D+160|0;G=D+192|0;H=D+8|0;h[E>>3]=l;g[F+16>>2]=e;g[F+8>>2]=f;a[F+20>>0]=j!=0&1;g[F+12>>2]=k;c[F+4>>2]=E;b[F+22>>1]=~~m;b[F+26>>1]=~~n;b[F+24>>1]=~~o;g[G>>2]=p;g[G+4>>2]=q;g[G+8>>2]=r;g[G+12>>2]=s;g[G+16>>2]=t;g[G+20>>2]=u;g[G+24>>2]=v;g[G+28>>2]=w;g[G+32>>2]=x;g[G+36>>2]=y;g[G+40>>2]=z;g[G+44>>2]=A;g[G+48>>2]= +B;g[G+52>>2]=C;c[H>>2]=960;c[H+4>>2]=2;g[H+8>>2]=.009999999776482582;c[H+148>>2]=0;g[H+12>>2]=0;g[H+16>>2]=0;Bf(H,G,7);c[F>>2]=H;H=il(d,F)|0;i=D;return H|0}function Pb(d,e,f,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E){d=d|0;e=+e;f=+f;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;x=+x;y=+y;z=+z;A=+A;B=+B;C=+C;D=+D;E=+E;var F=0,G=0,H=0,I=0,J=0;F=i;i=i+256|0;G=F;H=F+160|0;I=F+192|0;J=F+8|0;h[G>>3]=l;g[H+16>>2]=e;g[H+8>>2]=f;a[H+20>>0]=j!=0&1;g[H+12>>2]=k;c[H+4>>2]=G;b[H+22>> +1]=~~m;b[H+26>>1]=~~n;b[H+24>>1]=~~o;g[I>>2]=p;g[I+4>>2]=q;g[I+8>>2]=r;g[I+12>>2]=s;g[I+16>>2]=t;g[I+20>>2]=u;g[I+24>>2]=v;g[I+28>>2]=w;g[I+32>>2]=x;g[I+36>>2]=y;g[I+40>>2]=z;g[I+44>>2]=A;g[I+48>>2]=B;g[I+52>>2]=C;g[I+56>>2]=D;g[I+60>>2]=E;c[J>>2]=960;c[J+4>>2]=2;g[J+8>>2]=.009999999776482582;c[J+148>>2]=0;g[J+12>>2]=0;g[J+16>>2]=0;Bf(J,I,8);c[H>>2]=J;J=il(d,H)|0;i=F;return J|0}function Qb(b,d,e,f,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G){b=b|0;d=+d;e=+e;f=+f;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;x=+x;y=+y;z=+z;A=+A;B=+B;C=+C;D=+D;E=+E;F=+F;G=+G;var H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0;H=i;i=i+272|0;I=H;J=H+192|0;K=H+8|0;L=H+40|0;h[I>>3]=y;M=J+8|0;N=J+20|0;O=2440;P=c[O>>2]|0;Q=c[O+4>>2]|0;O=M;c[O>>2]=P;c[O+4>>2]=Q;O=N;c[O>>2]=P;c[O+4>>2]=Q;Q=J+40|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[Q+20>>2]=0;c[Q+24>>2]=0;g[J+16>>2]=d;g[J+28>>2]=e;a[J+32>>0]=~~f;a[J+33>>0]=~~j;a[J+34>>0]=~~k;a[J+35>>0]=~~l;c[J>>2]=~~m>>>0;c[J+72>>2]=0; +c[J+4>>2]=~~o>>>0;g[J+64>>2]=p;g[N>>2]=q;g[J+24>>2]=r;g[M>>2]=s;g[J+12>>2]=t;c[J+60>>2]=0;c[J+56>>2]=~~v;c[J+48>>2]=0;c[J+44>>2]=0;g[J+36>>2]=w;g[J+52>>2]=x;c[J+68>>2]=I;g[K>>2]=z;g[K+4>>2]=A;g[K+8>>2]=B;g[K+12>>2]=C;g[K+16>>2]=D;g[K+20>>2]=E;g[K+24>>2]=F;g[K+28>>2]=G;c[L>>2]=960;c[L+4>>2]=2;g[L+8>>2]=.009999999776482582;c[L+148>>2]=0;g[L+12>>2]=0;g[L+16>>2]=0;Bf(L,K,4);c[Q>>2]=L;L=cm(b,J)|0;i=H;return L|0}function Rb(a,b,d,e,f,h,j,k,l,m,n,o,p){a=a|0;b=+b;d=+d;e=+e;f=+f;h=+h;j=+j;k=+k;l=+l;m=+m;n= ++n;o=+o;p=+p;var q=0,r=0,s=0,t=0;q=i;i=i+208|0;r=q+168|0;s=q+16|0;t=q;g[r>>2]=b;g[r+4>>2]=d;g[r+8>>2]=e;g[r+12>>2]=f;g[r+16>>2]=h;g[r+20>>2]=j;g[r+24>>2]=k;g[r+28>>2]=l;c[s>>2]=960;c[s+4>>2]=2;g[s+8>>2]=.009999999776482582;c[s+148>>2]=0;g[s+12>>2]=0;g[s+16>>2]=0;Bf(s,r,4);g[t>>2]=m;g[t+4>>2]=n;g[t+8>>2]=o;g[t+12>>2]=p;p=+($l(a,s,t,0)|0);i=q;return+p}function Sb(a,d,e){a=a|0;d=+d;e=+e;var f=0,h=0,i=0,j=0,k=0,l=0;f=d;if((c[a>>2]|0)!=2)return;h=a+4|0;i=b[h>>1]|0;if(e!=0&(i&2)==0?(j=i&65535,(j&2|0)== +0):0){k=(j|2)&65535;b[h>>1]=k;g[a+160>>2]=0;l=k}else l=i;if(!(l&2))return;l=a+88|0;g[l>>2]=+g[l>>2]+f*+g[a+144>>2];return}function Tb(a,d,e,f,h,i){a=a|0;d=+d;e=+e;f=+f;h=+h;i=+i;var j=0,k=0,l=0,m=0,n=0,o=0;j=d;d=e;e=f;f=h;if((c[a>>2]|0)!=2)return;k=a+4|0;l=b[k>>1]|0;if(i!=0&(l&2)==0?(m=l&65535,(m&2|0)==0):0){n=(m|2)&65535;b[k>>1]=n;g[a+160>>2]=0;o=n}else o=l;if(!(o&2))return;o=a+92|0;g[o>>2]=j+ +g[o>>2];o=a+96|0;g[o>>2]=d+ +g[o>>2];o=a+100|0;g[o>>2]=+g[o>>2]+(d*(e-+g[a+60>>2])-j*(f-+g[a+64>>2])); +return}function Ub(a,d,e,f,h,i){a=a|0;d=+d;e=+e;f=+f;h=+h;i=+i;var j=0,k=0,l=0,m=0,n=0,o=0;j=d;d=e;e=f;f=h;if((c[a>>2]|0)!=2)return;k=a+4|0;l=b[k>>1]|0;if(i!=0&(l&2)==0?(m=l&65535,(m&2|0)==0):0){n=(m|2)&65535;b[k>>1]=n;g[a+160>>2]=0;o=n}else o=l;if(!(o&2))return;o=a+92|0;g[o>>2]=j+ +g[o>>2];o=a+96|0;g[o>>2]=d+ +g[o>>2];o=a+100|0;g[o>>2]=+g[o>>2]+(d*(e-+g[a+60>>2])-j*(f-+g[a+64>>2]));return}function Vb(a,d,e,f){a=a|0;d=+d;e=+e;f=+f;var h=0,i=0,j=0,k=0,l=0,m=0;h=d;d=e;if((c[a>>2]|0)!=2)return;i=a+4| +0;j=b[i>>1]|0;if(f!=0&(j&2)==0?(k=j&65535,(k&2|0)==0):0){l=(k|2)&65535;b[i>>1]=l;g[a+160>>2]=0;m=l}else m=j;if(!(m&2))return;m=a+92|0;g[m>>2]=h+ +g[m>>2];m=a+96|0;g[m>>2]=d+ +g[m>>2];return}function Wb(a,d,e){a=a|0;d=+d;e=+e;var f=0,h=0,i=0,j=0,k=0,l=0;f=d;if((c[a>>2]|0)!=2)return;h=a+4|0;i=b[h>>1]|0;if(e!=0&(i&2)==0?(j=i&65535,(j&2|0)==0):0){k=(j|2)&65535;b[h>>1]=k;g[a+160>>2]=0;l=k}else l=i;if(!(l&2))return;l=a+100|0;g[l>>2]=f+ +g[l>>2];return}function Xb(a,b){a=a|0;b=b|0;jl(a,b);return}function Yb(a){a= +a|0;return+ +g[a+72>>2]}function Zb(a){a=a|0;return+ +g[a+88>>2]}function _b(a){a=a|0;var b=0,c=0;b=+g[a+44>>2];c=+g[a+48>>2];return+(+g[a+140>>2]+ +g[a+132>>2]*(b*b+c*c))}function $b(a,b){a=a|0;b=b|0;var d=0;d=c[a+84>>2]|0;c[b>>2]=c[a+80>>2];c[b+4>>2]=d;return}function ac(a,b,c,d){a=a|0;b=+b;c=+c;d=d|0;var e=0,f=0;e=b-+g[a+12>>2];b=c-+g[a+16>>2];c=+g[a+24>>2];f=+g[a+20>>2];g[d>>2]=e*c+b*f;g[d+4>>2]=c*b-e*f;return}function bc(a,b,c,d){a=a|0;b=+b;c=+c;d=d|0;var e=0,f=0;e=b-+g[a+12>>2];b=c-+g[a+16>> +2];c=+g[a+24>>2];f=+g[a+20>>2];g[d>>2]=e*c+b*f;g[d+4>>2]=c*b-e*f;return}function cc(a){a=a|0;return+ +g[a+132>>2]}function dc(a,b){a=a|0;b=b|0;var d=0;d=c[a+16>>2]|0;c[b>>2]=c[a+12>>2];c[b+4>>2]=d;return}function ec(a,b){a=a|0;b=b|0;c[b>>2]=c[a+12>>2];c[b+4>>2]=c[a+16>>2];c[b+8>>2]=c[a+20>>2];c[b+12>>2]=c[a+24>>2];return}function fc(a){a=a|0;return+ +((c[a>>2]|0)>>>0)}function gc(a,b){a=a|0;b=b|0;var d=0;d=c[a+64>>2]|0;c[b>>2]=c[a+60>>2];c[b+4>>2]=d;return}function hc(a,b,c,d){a=a|0;b=+b;c=+c;d=d| +0;var e=0,f=0,h=0;e=b;b=c;c=+g[a+24>>2];f=+g[a+20>>2];h=b*c+e*f+ +g[a+16>>2];g[d>>2]=+g[a+12>>2]+(e*c-b*f);g[d+4>>2]=h;return}function ic(a,b,c,d){a=a|0;b=+b;c=+c;d=d|0;var e=0,f=0,h=0;e=b;b=c;c=+g[a+24>>2];f=+g[a+20>>2];h=b*c+e*f+ +g[a+16>>2];g[d>>2]=+g[a+12>>2]+(e*c-b*f);g[d+4>>2]=h;return}function jc(a,d){a=a|0;d=+d;var f=0,h=0,i=0;f=a+4|0;h=e[f>>1]|0;if(!(d!=0)){b[f>>1]=h&65533;g[a+160>>2]=0;i=a+80|0;c[i>>2]=0;c[i+4>>2]=0;c[i+8>>2]=0;c[i+12>>2]=0;c[i+16>>2]=0;c[i+20>>2]=0;return}if(h&2)return; +b[f>>1]=h|2;g[a+160>>2]=0;return}function kc(a,b){a=a|0;b=+b;ol(a,b!=0);return}function lc(a,d){a=a|0;d=+d;var f=0,h=0,i=0;f=d;if(!(c[a>>2]|0))return;if(f*f>0?(h=a+4|0,i=e[h>>1]|0,(i&2|0)==0):0){b[h>>1]=i|2;g[a+160>>2]=0}g[a+88>>2]=f;return}function mc(a,d,f){a=a|0;d=+d;f=+f;var h=0,i=0,j=0;h=d;d=f;if(!(c[a>>2]|0))return;if(h*h+d*d>0?(i=a+4|0,j=e[i>>1]|0,(j&2|0)==0):0){b[i>>1]=j|2;g[a+160>>2]=0}g[a+80>>2]=h;g[a+84>>2]=d;return}function nc(a,b,c,d,e){a=a|0;b=+b;c=+c;d=+d;e=+e;var f=0,h=0;f=i;i=i+16| +0;h=f;g[h>>2]=b;g[h+4>>2]=c;g[h+8>>2]=d;g[h+12>>2]=e;kl(a,h);i=f;return}function oc(a,b,c,d){a=a|0;b=+b;c=+c;d=+d;var e=0,f=0;e=i;i=i+16|0;f=e;g[f>>2]=b;g[f+4>>2]=c;ml(a,f,d);i=e;return}function pc(a,b){a=a|0;b=+b;fl(a,~~b>>>0);return}function qc(a,b){a=a|0;b=+b;g[a+156>>2]=b;return}function rc(a){a=a|0;return+ +g[a+156>>2]}function sc(a,b){a=a|0;b=+b;g[a+148>>2]=b;return}function tc(a){a=a|0;return+ +g[a+148>>2]}function uc(a,b){a=a|0;b=+b;g[a+152>>2]=b;return}function vc(a){a=a|0;return+ +g[a+152>> +2]}function wc(a){a=a|0;return(b[a+4>>1]&2)!=0|0}function xc(a,c){a=a|0;c=+c;var d=0;d=a+4|0;a=e[d>>1]|0;b[d>>1]=c!=0?a|8:a&65527;return}function yc(a){a=a|0;return(b[a+4>>1]&8)!=0|0}function zc(a,c){a=a|0;c=+c;var d=0,f=0,h=0;d=a+4|0;f=e[d>>1]|0;if(c!=0){b[d>>1]=f|4;return}h=f&65531;b[d>>1]=h;if(f&2)return;b[d>>1]=h|2;g[a+160>>2]=0;return}function Ac(a){a=a|0;return(b[a+4>>1]&4)!=0|0}function Bc(a,b){a=a|0;b=+b;nl(a,b!=0);return}function Cc(a){a=a|0;return(b[a+4>>1]&32)!=0|0}function Dc(a){a=a|0; +return(b[a+4>>1]&16)!=0|0}function Ec(a,b,d){a=a|0;b=+b;d=+d;var e=0,f=0,h=0;e=i;i=i+16|0;f=e;g[f>>2]=b;g[f+4>>2]=d;h=c[a+12>>2]|0;d=+((lb[c[(c[h>>2]|0)+16>>2]&15](h,(c[a+8>>2]|0)+12|0,f)|0)&1);i=e;return+d}function Fc(a){a=a|0;Ok(a);return}function Gc(a){a=a|0;return}function Hc(a){a=a|0;return}function Ic(a,b){a=+a;b=+b;var c=0,d=0,e=0;c=i;i=i+16|0;d=c;e=qo(103048)|0;g[d>>2]=a;g[d+4>>2]=b;Pk(e,d);i=c;return e|0}function Jc(b,d,e,f,h,j,k,l,m,n,o,p,q,r,s,t,u){b=b|0;d=+d;e=+e;f=+f;h=+h;j=+j;k=+k;l= ++l;m=+m;n=+n;o=+o;p=+p;q=+q;r=+r;s=+s;t=+t;u=u|0;var v=0,w=0,x=0;v=i;i=i+64|0;w=v;x=w+4|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;a[w+40>>0]=d!=0&1;a[w+36>>0]=e!=0&1;g[w+12>>2]=f;g[w+24>>2]=h;g[w+32>>2]=j;a[w+37>>0]=k!=0&1;a[w+39>>0]=l!=0&1;a[w+38>>0]=m!=0&1;g[w+48>>2]=n;g[w+28>>2]=o;g[w+16>>2]=p;g[w+20>>2]=q;g[x>>2]=r;g[w+8>>2]=s;c[w>>2]=~~t>>>0;c[w+44>>2]=u;u=Tk(b,w)|0;i=v;return u|0}function Kc(b,d,e,f,h,j,k,l,m,n,o,p,q,r,s,t,u,v){b=b|0;d=+d;e=+e;f=+f;h=+h;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;var w=0,x=0,y=0;w=i;i=i+96|0;x=w;a[x>>0]=0;g[x+4>>2]=1;g[x+8>>2]=1;c[x+16>>2]=0;g[x+72>>2]=d;g[x+24>>2]=e;a[x+76>>0]=f!=0&1;g[x+56>>2]=h;g[x+28>>2]=j;g[x+80>>2]=k;g[x+52>>2]=l;g[x+20>>2]=m;g[x+12>>2]=n;g[x+48>>2]=o;g[x+32>>2]=p;c[x+68>>2]=~~q;g[x+64>>2]=r;g[x+60>>2]=s;g[x+44>>2]=t;g[x+40>>2]=u;g[x+36>>2]=v;y=Xk(b,x)|0;i=w;return y|0}function Lc(a){a=a|0;if(!a)return;Qk(a);so(a);return}function Mc(a,b){a=a|0;b=b|0;Uk(a,b);return}function Nc(a, +b){a=a|0;b=b|0;Vk(a,b);return}function Oc(a,b){a=a|0;b=b|0;Rk(a,b);return}function Pc(a,b,c,d,e){a=a|0;b=+b;c=+c;d=+d;e=+e;var f=0,h=0;f=i;i=i+16|0;h=f;g[h>>2]=b;g[h+4>>2]=c;g[h+8>>2]=d;g[h+12>>2]=e;$k(a,724,h);i=f;return}function Qc(a,b,c,d,e){a=a|0;b=+b;c=+c;d=+d;e=+e;var f=0,h=0,j=0;f=i;i=i+16|0;h=f+8|0;j=f;g[h>>2]=b;g[h+4>>2]=c;g[j>>2]=d;g[j+4>>2]=e;al(a,728,h,j);i=f;return}function Rc(a){a=a|0;Sk(a,720);return}function Sc(a,b,c){a=a|0;b=+b;c=+c;g[a+102980>>2]=b;g[a+102984>>2]=c;return}function Tc(a, +b,c,d){a=a|0;b=+b;c=+c;d=+d;_k(a,b,~~c,~~d,3);return}function Uc(a){a=a|0;return a+64|0}function Vc(a){a=a|0;var b=0,d=0;b=c[a+48>>2]|0;d=c[a+52>>2]|0;xg(732,a+64|0,(c[b+8>>2]|0)+12|0,+g[(c[b+12>>2]|0)+8>>2],(c[d+8>>2]|0)+12|0,+g[(c[d+12>>2]|0)+8>>2]);return 732}function Wc(b,d,e,f,h,j,k,l,m,n,o){b=b|0;d=d|0;e=e|0;f=+f;h=+h;j=+j;k=+k;l=+l;m=+m;n=+n;o=+o;var p=0,q=0,r=0;p=i;i=i+48|0;q=p;c[q>>2]=0;c[q+4>>2]=0;c[q+8>>2]=0;c[q+12>>2]=0;c[q>>2]=3;r=q+20|0;c[r>>2]=0;c[r+4>>2]=0;c[r+8>>2]=0;c[q+8>>2]=d; +c[q+12>>2]=e;a[q+16>>0]=f!=0&1;g[q+44>>2]=h;g[q+40>>2]=j;g[q+36>>2]=k;g[r>>2]=l;g[q+24>>2]=m;g[q+28>>2]=n;g[q+32>>2]=o;r=Wk(b,q)|0;i=p;return r|0}function Xc(b,d,e,f,h,j,k,l,m,n){b=b|0;d=d|0;e=e|0;f=+f;h=+h;j=+j;k=+k;l=+l;m=+m;n=+n;var o=0,p=0,q=0,r=0,s=0;o=i;i=i+64|0;p=o+16|0;q=o+8|0;r=o;c[p>>2]=0;c[p+4>>2]=0;c[p+8>>2]=0;c[p+12>>2]=0;c[p>>2]=3;s=p+20|0;c[s>>2]=0;c[s+4>>2]=0;c[s+8>>2]=0;c[s+12>>2]=0;g[p+36>>2]=1;a[p+16>>0]=l!=0&1;g[p+44>>2]=m;g[p+40>>2]=n;g[q>>2]=f;g[q+4>>2]=h;g[r>>2]=j;g[r+4>>2]= +k;oh(p,d,e,q,r);r=Wk(b,p)|0;i=o;return r|0}function Yc(a,b){a=a|0;b=+b;g[a+104>>2]=b;return}function Zc(a,b){a=a|0;b=+b;g[a+68>>2]=b;return}function _c(a,b){a=a|0;b=+b;g[a+72>>2]=b;return}function $c(b,d,e,f,h,j,k,l,m,n){b=b|0;d=d|0;e=e|0;f=+f;h=+h;j=+j;k=+k;l=+l;m=+m;n=+n;var o=0,p=0,q=0;o=i;i=i+48|0;p=o;c[p>>2]=0;c[p+4>>2]=0;c[p+8>>2]=0;c[p+12>>2]=0;c[p>>2]=9;q=p+20|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[p+8>>2]=d;c[p+12>>2]=e;a[p+16>>0]=f!=0&1;g[q>>2]=h;g[p+24>>2]=j;g[p+ +28>>2]=k;g[p+32>>2]=l;g[p+36>>2]=m;g[p+40>>2]=n;q=Wk(b,p)|0;i=o;return q|0}function ad(b,d,e,f,h,j,k,l){b=b|0;d=d|0;e=e|0;f=+f;h=+h;j=+j;k=+k;l=+l;var m=0,n=0,o=0,p=0;m=i;i=i+64|0;n=m+8|0;o=m;c[n>>2]=0;c[n+4>>2]=0;c[n+8>>2]=0;c[n+12>>2]=0;c[n>>2]=9;p=n+20|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;a[n+16>>0]=j!=0&1;g[n+36>>2]=k;g[n+40>>2]=l;g[o>>2]=f;g[o+4>>2]=h;zh(n,d,e,o);o=Wk(b,n)|0;i=m;return o|0}function bd(a,b){a=a|0;b=+b;Ih(a,b);return}function cd(a,b){a=a|0;b=+b;Jh(a,b); +return}function dd(a,b){a=a|0;b=+b;di(a,b);return}function ed(b,d,e,f,h,j,k){b=b|0;d=d|0;e=e|0;f=+f;h=h|0;j=j|0;k=+k;var l=0,m=0;l=i;i=i+32|0;m=l;c[m>>2]=0;c[m+4>>2]=0;c[m+8>>2]=0;c[m+12>>2]=0;c[m>>2]=6;c[m+8>>2]=d;c[m+12>>2]=e;a[m+16>>0]=f!=0&1;c[m+20>>2]=h;c[m+24>>2]=j;g[m+28>>2]=k;j=Wk(b,m)|0;i=l;return j|0}function fd(a){a=a|0;return c[a+48>>2]|0}function gd(a){a=a|0;return c[a+52>>2]|0}function hd(a){a=a|0;return+ +((c[a+4>>2]|0)>>>0)}function id(a,b){a=a|0;b=b|0;var d=0,e=0;d=i;i=i+16|0;e=d; +kb[c[c[a>>2]>>2]&63](e,a);c[b>>2]=c[e>>2];c[b+4>>2]=c[e+4>>2];i=d;return}function jd(a,b){a=a|0;b=b|0;var d=0,e=0;d=i;i=i+16|0;e=d;kb[c[(c[a>>2]|0)+4>>2]&63](e,a);c[b>>2]=c[e>>2];c[b+4>>2]=c[e+4>>2];i=d;return}function kd(a,b,d){a=a|0;b=+b;d=d|0;var e=0,f=0;e=i;i=i+16|0;f=e;ob[c[(c[a>>2]|0)+8>>2]&31](f,a,b);c[d>>2]=c[f>>2];c[d+4>>2]=c[f+4>>2];i=e;return}function ld(a,b){a=a|0;b=+b;return+ +hb[c[(c[a>>2]|0)+12>>2]&15](a,b)}function md(a){a=a|0;return Pi(a)|0}function nd(b){b=b|0;return(a[b+61>>0]| +0)!=0|0}function od(a,b){a=a|0;b=+b;kh(a,b);return}function pd(a,b,c){a=a|0;b=+b;c=+c;var d=0,e=0;d=i;i=i+16|0;e=d;g[e>>2]=b;g[e+4>>2]=c;jh(a,e);i=d;return}function qd(a,b){a=a|0;b=+b;gh(a,b);return}function rd(a,b){a=a|0;b=+b;hh(a,b);return}function sd(a,b){a=a|0;b=+b;ih(a,b);return}function td(b,d,e,f,h,j,k,l,m,n){b=b|0;d=d|0;e=e|0;f=+f;h=+h;j=+j;k=+k;l=+l;m=+m;n=+n;var o=0,p=0;o=i;i=i+48|0;p=o;c[p>>2]=0;c[p+4>>2]=0;c[p+8>>2]=0;c[p+12>>2]=0;c[p>>2]=11;c[p+8>>2]=d;c[p+12>>2]=e;a[p+16>>0]=f!=0&1; +g[p+28>>2]=h;g[p+40>>2]=j;g[p+20>>2]=k;g[p+24>>2]=l;g[p+32>>2]=m;g[p+36>>2]=n;e=Wk(b,p)|0;i=o;return e|0}function ud(b,d,e,f,h,j,k){b=b|0;d=d|0;e=e|0;f=+f;h=+h;j=+j;k=+k;var l=0,m=0;l=i;i=i+48|0;m=l;c[m>>2]=0;c[m+4>>2]=0;c[m+8>>2]=0;c[m+12>>2]=0;c[m>>2]=11;g[m+20>>2]=0;g[m+24>>2]=0;g[m+28>>2]=0;a[m+16>>0]=f!=0&1;g[m+40>>2]=h;g[m+32>>2]=j;g[m+36>>2]=k;Zg(m,d,e);e=Wk(b,m)|0;i=l;return e|0}function vd(a,b,c){a=a|0;b=+b;c=+c;var d=0,e=0;d=i;i=i+16|0;e=d;g[e>>2]=b;g[e+4>>2]=c;Kg(a,e);i=d;return}function wd(a, +b){a=a|0;b=+b;Lg(a,b);return}function xd(a,b){a=a|0;b=+b;Mg(a,b);return}function yd(a,b){a=a|0;b=+b;Ng(a,b);return}function zd(b,d,e,f,h,j,k,l,m){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;n=i;i=i+48|0;o=n;c[o>>2]=0;c[o+4>>2]=0;c[o+8>>2]=0;c[o+12>>2]=0;c[o>>2]=5;c[o+8>>2]=d;c[o+12>>2]=e;a[o+16>>0]=f!=0&1;g[o+36>>2]=h;g[o+32>>2]=j;g[o+28>>2]=k;g[o+20>>2]=l;g[o+24>>2]=m;e=Wk(b,o)|0;i=n;return e|0}function Ad(a,b){a=a|0;b=+b;si(a,b!=0);return}function Bd(a,b){a=a|0;b=+b;vi(a,b!=0);return} +function Cd(a){a=a|0;return+ +pi(a)}function Dd(a){a=a|0;return+ +g[a+132>>2]}function Ed(a,b){a=a|0;b=+b;return+ +yi(a,b)}function Fd(a){a=a|0;return+ +((ri(a)|0)&1)}function Gd(a){a=a|0;return+ +((ui(a)|0)&1)}function Hd(a,b){a=a|0;b=+b;wi(a,b);return}function Id(a,b){a=a|0;b=b|0;var d=0;d=c[a+88>>2]|0;c[b>>2]=c[a+84>>2];c[b+4>>2]=d;return}function Jd(a){a=a|0;return+ +qi(a)}function Kd(a,b,c){a=a|0;b=+b;c=+c;ti(a,b,c);return}function Ld(a,b){a=a|0;b=+b;xi(a,b);return}function Md(b,d,e,f,h,j,k, +l,m,n,o,p,q,r,s,t,u){b=b|0;d=d|0;e=e|0;f=+f;h=+h;j=+j;k=+k;l=+l;m=+m;n=+n;o=+o;p=+p;q=+q;r=+r;s=+s;t=+t;u=+u;var v=0,w=0,x=0;v=i;i=i+80|0;w=v;c[w>>2]=0;c[w+4>>2]=0;c[w+8>>2]=0;c[w+12>>2]=0;c[w>>2]=2;x=w+20|0;c[x>>2]=0;c[x+4>>2]=0;c[x+8>>2]=0;c[w+8>>2]=d;c[w+12>>2]=e;a[w+16>>0]=f!=0&1;a[w+48>>0]=h!=0&1;a[w+60>>0]=j!=0&1;g[x>>2]=k;g[w+24>>2]=l;g[w+28>>2]=m;g[w+32>>2]=n;g[w+36>>2]=o;g[w+40>>2]=p;g[w+52>>2]=q;g[w+64>>2]=r;g[w+68>>2]=s;g[w+44>>2]=t;g[w+56>>2]=u;x=Wk(b,w)|0;i=v;return x|0}function Nd(b, +d,e,f,h,j,k,l,m,n,o,p,q,r){b=b|0;d=d|0;e=e|0;f=+f;h=+h;j=+j;k=+k;l=+l;m=+m;n=+n;o=+o;p=+p;q=+q;r=+r;var s=0,t=0,u=0,v=0,w=0;s=i;i=i+96|0;t=s+16|0;u=s+8|0;v=s;c[t>>2]=0;c[t+4>>2]=0;c[t+8>>2]=0;c[t+12>>2]=0;c[t>>2]=2;w=t+20|0;c[w>>2]=0;c[w+4>>2]=0;c[w+8>>2]=0;c[w+12>>2]=0;g[t+36>>2]=1;g[t+40>>2]=0;g[t+44>>2]=0;a[t+16>>0]=l!=0&1;a[t+48>>0]=m!=0&1;a[t+60>>0]=n!=0&1;g[t+52>>2]=o;g[t+64>>2]=p;g[t+68>>2]=q;g[t+56>>2]=r;g[u>>2]=f;g[u+4>>2]=h;g[v>>2]=j;g[v+4>>2]=k;gi(t,d,e,u,v);v=Wk(b,t)|0;i=s;return v|0} +function Od(a,b){a=a|0;b=b|0;var d=0,e=0;d=i;i=i+16|0;e=d;Mj(e,a);c[b>>2]=c[e>>2];c[b+4>>2]=c[e+4>>2];i=d;return}function Pd(a,b){a=a|0;b=b|0;var d=0,e=0;d=i;i=i+16|0;e=d;Nj(e,a);c[b>>2]=c[e>>2];c[b+4>>2]=c[e+4>>2];i=d;return}function Qd(a){a=a|0;return+ +Oj(a)}function Rd(a){a=a|0;return+ +Pj(a)}function Sd(b,d,e,f,h,j,k,l,m,n,o,p,q,r,s){b=b|0;d=d|0;e=e|0;f=+f;h=+h;j=+j;k=+k;l=+l;m=+m;n=+n;o=+o;p=+p;q=+q;r=+r;s=+s;var t=0,u=0;t=i;i=i+64|0;u=t;c[u>>2]=0;c[u+4>>2]=0;c[u+8>>2]=0;c[u>>2]=4;c[u+8>>2]= +d;c[u+12>>2]=e;a[u+16>>0]=f!=0&1;g[u+20>>2]=h;g[u+24>>2]=j;g[u+28>>2]=k;g[u+32>>2]=l;g[u+52>>2]=m;g[u+56>>2]=n;g[u+36>>2]=o;g[u+40>>2]=p;g[u+44>>2]=q;g[u+48>>2]=r;g[u+60>>2]=s;e=Wk(b,u)|0;i=t;return e|0}function Td(b,d,e,f,h,j,k,l,m,n,o,p,q){b=b|0;d=d|0;e=e|0;f=+f;h=+h;j=+j;k=+k;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;r=i;i=i+96|0;s=r+32|0;t=r+24|0;u=r+16|0;v=r+8|0;w=r;c[s>>2]=0;c[s+4>>2]=0;c[s+8>>2]=0;c[s+12>>2]=0;c[s>>2]=4;g[s+20>>2]=-1;g[s+24>>2]=1;g[s+28>>2]=1;g[s+32>>2]=1;g[s+ +36>>2]=-1;g[s+40>>2]=0;g[s+44>>2]=1;g[s+48>>2]=0;g[s+52>>2]=0;g[s+56>>2]=0;g[s+60>>2]=1;a[s+16>>0]=q!=0&1;g[t>>2]=l;g[t+4>>2]=m;g[u>>2]=n;g[u+4>>2]=o;g[v>>2]=f;g[v+4>>2]=h;g[w>>2]=j;g[w+4>>2]=k;Dj(s,d,e,t,u,v,w,p);w=Wk(b,s)|0;i=r;return w|0}function Ud(a,b){a=a|0;b=+b;hj(a,b!=0);return}function Vd(a,b){a=a|0;b=+b;cj(a,b!=0);return}function Wd(a){a=a|0;return+ +$i(a)}function Xd(a){a=a|0;return+ +((gj(a)|0)&1)}function Yd(a){a=a|0;return+ +((bj(a)|0)&1)}function Zd(a){a=a|0;return+ +aj(a)}function _d(a, +b,c){a=a|0;b=+b;c=+c;ij(a,b,c);return}function $d(a){a=a|0;return+ +g[a+108>>2]}function ae(a,b){a=a|0;b=+b;fj(a,b);return}function be(a,b){a=a|0;b=+b;return+ +dj(a,b)}function ce(b,d,e,f,h,j,k,l,m,n,o,p,q,r,s){b=b|0;d=d|0;e=e|0;f=+f;h=+h;j=+j;k=+k;l=+l;m=+m;n=+n;o=+o;p=+p;q=+q;r=+r;s=+s;var t=0,u=0,v=0;t=i;i=i+64|0;u=t;c[u>>2]=0;c[u+4>>2]=0;c[u+8>>2]=0;c[u+12>>2]=0;c[u>>2]=1;v=u+20|0;c[v>>2]=0;c[v+4>>2]=0;c[v+8>>2]=0;c[v+12>>2]=0;c[u+8>>2]=d;c[u+12>>2]=e;a[u+16>>0]=f!=0&1;a[u+40>>0]=h!=0&1;a[u+52>> +0]=j!=0&1;g[v>>2]=l;g[u+24>>2]=m;g[u+28>>2]=n;g[u+32>>2]=o;g[u+44>>2]=k;g[u+60>>2]=p;g[u+56>>2]=q;g[u+36>>2]=r;g[u+48>>2]=s;v=Wk(b,u)|0;i=t;return v|0}function de(b,d,e,f,h,j,k,l,m,n,o,p){b=b|0;d=d|0;e=e|0;f=+f;h=+h;j=+j;k=+k;l=+l;m=+m;n=+n;o=+o;p=+p;var q=0,r=0,s=0,t=0;q=i;i=i+80|0;r=q+8|0;s=q;c[r>>2]=0;c[r+4>>2]=0;c[r+8>>2]=0;c[r+12>>2]=0;c[r>>2]=1;t=r+20|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;a[r+16>>0]=j!=0&1;a[r+40>>0]=k!=0&1;a[r+52>>0]=l!=0&1;g[r+44>>2]=m;g[r+60>>2]=n; +g[r+56>>2]=o;g[r+48>>2]=p;g[s>>2]=f;g[s+4>>2]=h;Si(r,d,e,s);s=Wk(b,r)|0;i=q;return s|0}function ee(a,b){a=a|0;b=+b;ej(a,b);return}function fe(a,b){a=a|0;b=+b;g[a+84>>2]=b;return}function ge(a){a=a|0;return+ +((Ji(a)|0)>>>0)}function he(b,d,e,f,h,j,k,l,m){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;n=i;i=i+48|0;o=n;c[o>>2]=0;c[o+4>>2]=0;c[o+8>>2]=0;c[o+12>>2]=0;c[o>>2]=10;c[o+8>>2]=d;c[o+12>>2]=e;a[o+16>>0]=f!=0&1;g[o+20>>2]=h;g[o+24>>2]=j;g[o+28>>2]=k;g[o+32>>2]=l;g[o+36>>2]=m;e=Wk(b, +o)|0;i=n;return e|0}function ie(a,b){a=a|0;b=+b;g[a+68>>2]=b;return}function je(a,b){a=a|0;b=+b;g[a+72>>2]=b;return}function ke(b,d,e,f,h,j,k,l,m,n,o){b=b|0;d=d|0;e=e|0;f=+f;h=+h;j=+j;k=+k;l=+l;m=+m;n=+n;o=+o;var p=0,q=0,r=0;p=i;i=i+48|0;q=p;c[q>>2]=0;c[q+4>>2]=0;c[q+8>>2]=0;c[q+12>>2]=0;c[q>>2]=8;r=q+20|0;c[r>>2]=0;c[r+4>>2]=0;c[r+8>>2]=0;c[r+12>>2]=0;c[q+8>>2]=d;c[q+12>>2]=e;a[q+16>>0]=f!=0&1;g[q+44>>2]=h;g[q+40>>2]=j;g[r>>2]=k;g[q+24>>2]=l;g[q+28>>2]=m;g[q+32>>2]=n;g[q+36>>2]=o;r=Wk(b,q)|0;i=p; +return r|0}function le(b,d,e,f,h,j,k,l){b=b|0;d=d|0;e=e|0;f=+f;h=+h;j=+j;k=+k;l=+l;var m=0,n=0,o=0,p=0;m=i;i=i+64|0;n=m+8|0;o=m;c[n>>2]=0;c[n+4>>2]=0;c[n+8>>2]=0;c[n+12>>2]=0;c[n>>2]=8;p=n+20|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;a[n+16>>0]=j!=0&1;g[n+44>>2]=k;g[n+40>>2]=l;g[o>>2]=f;g[o+4>>2]=h;Mh(n,d,e,o);o=Wk(b,n)|0;i=m;return o|0}function me(a,b){a=a|0;b=+b;yj(a,b);return}function ne(a,b){a=a|0;b=+b;g[a+68>>2]=b;return}function oe(a,b){a=a|0;b=b|0;var d=0;d=c[a+96>>2]|0; +c[b>>2]=c[a+92>>2];c[b+4>>2]=d;return}function pe(a){a=a|0;return+ +uj(a)}function qe(a){a=a|0;return+ +vj(a)}function re(a){a=a|0;return+ +((wj(a)|0)&1)}function se(a,b){a=a|0;b=+b;xj(a,b!=0);return}function te(a){a=a|0;return+ +g[a+124>>2]}function ue(a,b){a=a|0;b=+b;zj(a,b);return}function ve(a,b){a=a|0;b=+b;return+ +Aj(a,b)}function we(a,b){a=a|0;b=+b;g[a+72>>2]=b;return}function xe(b,d,e,f,h,j,k,l,m,n,o,p,q,r,s){b=b|0;d=d|0;e=e|0;f=+f;h=+h;j=+j;k=+k;l=+l;m=+m;n=+n;o=+o;p=+p;q=+q;r=+r;s=+s;var t= +0,u=0,v=0;t=i;i=i+64|0;u=t;c[u>>2]=0;c[u+4>>2]=0;c[u+8>>2]=0;c[u+12>>2]=0;c[u>>2]=7;v=u+20|0;c[v>>2]=0;c[v+4>>2]=0;c[v+8>>2]=0;c[u+8>>2]=d;c[u+12>>2]=e;a[u+16>>0]=f!=0&1;g[u+60>>2]=h;a[u+44>>0]=j!=0&1;g[u+56>>2]=k;g[v>>2]=l;g[u+24>>2]=m;g[u+28>>2]=n;g[u+32>>2]=o;g[u+36>>2]=p;g[u+40>>2]=q;g[u+48>>2]=r;g[u+52>>2]=s;v=Wk(b,u)|0;i=t;return v|0}function ye(b,d,e,f,h,j,k,l,m,n,o,p,q){b=b|0;d=d|0;e=e|0;f=+f;h=+h;j=+j;k=+k;l=+l;m=+m;n=+n;o=+o;p=+p;q=+q;var r=0,s=0,t=0,u=0,v=0;r=i;i=i+80|0;s=r+16|0;t=r+8| +0;u=r;c[s>>2]=0;c[s+4>>2]=0;c[s+8>>2]=0;c[s+12>>2]=0;c[s>>2]=7;v=s+20|0;c[v>>2]=0;c[v+4>>2]=0;c[v+8>>2]=0;c[v+12>>2]=0;g[s+36>>2]=1;g[s+40>>2]=0;a[s+16>>0]=l!=0&1;g[s+60>>2]=m;a[s+44>>0]=n!=0&1;g[s+56>>2]=o;g[s+48>>2]=p;g[s+52>>2]=q;g[t>>2]=f;g[t+4>>2]=h;g[u>>2]=j;g[u+4>>2]=k;lj(s,d,e,t,u);u=Wk(b,s)|0;i=r;return u|0}function ze(a,b,c){a=a|0;b=+b;c=+c;var d=0,e=0;d=i;i=i+16|0;e=d;g[e>>2]=b;g[e+4>>2]=c;Nl(a,e);i=d;return}function Ae(a,b,c){a=a|0;b=+b;c=+c;var d=0,e=0;d=i;i=i+16|0;e=d;g[e>>2]=b;g[e+ +4>>2]=c;Ol(a,e);i=d;return}function Be(a,b){a=a|0;b=+b;Pl(a,b!=0);return}function Ce(a){a=a|0;return+ +(c[a+4>>2]|0)}function De(a){a=a|0;return+ +((c[a+8>>2]|0)-(c[a+4>>2]|0)|0)}function Ee(b,d,e,f,j,k,l,m,n,o,p,q,r){b=b|0;d=+d;e=+e;f=+f;j=+j;k=+k;l=+l;m=+m;n=+n;o=+o;p=+p;q=+q;r=+r;var s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;s=i;i=i+64|0;t=s+8|0;u=s;v=s+16|0;h[t>>3]=l;h[u>>3]=p;w=v+4|0;x=v+12|0;y=2440;z=c[y>>2]|0;A=c[y+4>>2]|0;y=w;c[y>>2]=z;c[y+4>>2]=A;y=x;c[y>>2]=z;c[y+4>>2]=A;a[v+20>>0]=~~d;a[v+21>> +0]=~~f;a[v+22>>0]=~~e;a[v+23>>0]=~~j;c[v>>2]=~~k>>>0;c[v+32>>2]=t;g[v+24>>2]=m;g[w>>2]=n;g[v+8>>2]=o;c[v+28>>2]=u;g[x>>2]=q;g[v+16>>2]=r;r=+(Vl(b,v)|0);i=s;return+r}function Fe(a){a=a|0;return Tl(a)|0}function Ge(a){a=a|0;return+ +(c[a+44>>2]|0)}function He(a,b){a=a|0;b=+b;return+ +Fm(a,~~b)}function Ie(a){a=a|0;return c[a+96>>2]|0}function Je(a){a=a|0;return c[a+104>>2]|0}function Ke(a,b){a=a|0;b=+b;g[a+340>>2]=b;return}function Le(a,b){a=a|0;b=+b;var c=0;c=b;g[a+320>>2]=c;g[a+28>>2]=1/c;return} +function Me(a,b){a=a|0;b=+b;g[a+324>>2]=b;return}function Ne(a,b){a=a|0;b=+b;c[a+332>>2]=~~b;return}function Oe(a,b,c){a=a|0;b=+b;c=+c;Xl(a,~~b,c);return}function Pe(a,b){a=a|0;b=+b;var c=0;c=b*2;g[a+32>>2]=c;g[a+40>>2]=c*c;g[a+36>>2]=1/c;return}function Qe(a){a=a|0;so(a);return}function Re(a,b){a=a|0;b=b|0;Aa(b|0);return}function Se(a,b){a=a|0;b=b|0;Za(b|0);return}function Te(a,b,c){a=a|0;b=b|0;c=c|0;return}function Ue(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return}function Ve(a,b,c){a=a|0;b=b|0;c=c|0; +return}function We(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return}function Xe(a,b,c){a=a|0;b=b|0;c=c|0;cb(b|0,c|0);return}function Ye(a,b,c){a=a|0;b=b|0;c=c|0;$a(b|0,c|0);return}function Ze(a){a=a|0;so(a);return}function _e(a,b){a=a|0;b=b|0;return Na(b|0)|0}function $e(a,b,c){a=a|0;b=b|0;c=c|0;return 0}function af(a,b){a=a|0;b=b|0;return 1}function bf(a){a=a|0;so(a);return}function cf(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=+e;return+ +Ua(b|0,+ +g[c>>2],+ +g[c+4>>2],+ +g[d>>2],+ +g[d+4>>2],+e)}function df(a, +b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=+f;return 0}function ef(a,b){a=a|0;b=b|0;return 1}function ff(a){a=a|0;return}function gf(){c[180]=772;c[181]=820;c[182]=848;return}function hf(d,e){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,L=0,N=0,O=0,P=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;f=i;i=i+320|0;h=f;j=f+280|0;l=f+244|0;m=f+140|0;n=f+152|0;o=f+16|0;p=f+40|0;q=f+12|0;r=f+8|0;Yn(h);c[219]=(c[219]|0)+1;c[d>>2]=0;s=c[e+128>>2]|0;t=d+4|0;c[t>>2]=s;u=e+28|0;v=j;w=e+56|0;x=v+36|0;do{c[v>>2]=c[w>>2];v=v+4|0;w=w+4|0}while((v|0)<(x|0));v=l;w=e+92|0;x=v+36|0;do{c[v>>2]=c[w>>2];v=v+4|0;w=w+4|0}while((v|0)<(x|0));w=j+24|0;y=+g[w>>2];z=+M(+(y/6.2831854820251465))*6.2831854820251465;A=y-z;g[w>>2]=A;w=j+28|0;y= ++g[w>>2]-z;g[w>>2]=y;w=l+24|0;z=+g[w>>2];B=+M(+(z/6.2831854820251465))*6.2831854820251465;C=z-B;g[w>>2]=C;w=l+28|0;z=+g[w>>2]-B;g[w>>2]=z;B=(c[k>>2]=s,+g[k>>2]);D=+g[e+24>>2]+ +g[e+52>>2]+-.014999999664723873;E=D<.004999999888241291?.004999999888241291:D;b[m+4>>1]=0;c[n>>2]=c[e>>2];c[n+4>>2]=c[e+4>>2];c[n+8>>2]=c[e+8>>2];c[n+12>>2]=c[e+12>>2];c[n+16>>2]=c[e+16>>2];c[n+20>>2]=c[e+20>>2];c[n+24>>2]=c[e+24>>2];w=n+28|0;c[w>>2]=c[u>>2];c[w+4>>2]=c[u+4>>2];c[w+8>>2]=c[u+8>>2];c[w+12>>2]=c[u+12>>2];c[w+ +16>>2]=c[u+16>>2];c[w+20>>2]=c[u+20>>2];c[w+24>>2]=c[u+24>>2];a[n+88>>0]=0;w=n+56|0;v=n+60|0;x=n+64|0;F=n+68|0;G=n+72|0;H=n+76|0;I=n+80|0;J=n+84|0;K=o+16|0;D=E+.0012499999720603228;L=E+-.0012499999720603228;N=+g[j+8>>2];O=+g[j+12>>2];P=+g[j+16>>2];S=+g[j+20>>2];T=+g[j>>2];U=+g[j+4>>2];V=+g[l+8>>2];W=+g[l+12>>2];X=+g[l+16>>2];Y=+g[l+20>>2];Z=+g[l>>2];_=+g[l+4>>2];$=0;aa=0;a:while(1){ba=1-aa;ca=ba*A+aa*y;da=+R(+ca);ea=+Q(+ca);ca=ba*C+aa*z;fa=+R(+ca);ga=+Q(+ca);g[w>>2]=ba*N+aa*P-(ea*T-da*U);g[v>>2]= +ba*O+aa*S-(da*T+ea*U);g[x>>2]=da;g[F>>2]=ea;g[G>>2]=ba*V+aa*X-(ga*Z-fa*_);g[H>>2]=ba*W+aa*Y-(fa*Z+ga*_);g[I>>2]=fa;g[J>>2]=ga;of(o,m,n);ga=+g[K>>2];if(ga<=0){ha=$;ia=3;break}if(gaD){ma=$;ia=8;break a}if(fa>L){na=ga;break}oa=c[q>>2]|0;pa=c[r>>2]|0;ba=+lf(p,oa,pa,aa);if(ba0?ba:-ba)<.0012499999720603228){Aa=ua;Ba=za;break}Ca=fa>E;if((ua|0)==50){Aa=50;Ba=ga;break}else{sa=Ca?za:sa;ta=Ca?ta:za;va=Ca?fa:va;wa=Ca?wa:fa}}pa=c[223]|0;c[223]=(pa|0)>(Aa|0)?pa:Aa;la=la+1|0;if((la|0)==8){na=aa;break}else ga=Ba}la=$+1|0;c[220]=(c[220]|0)+1;if((la|0)==20){Da=na;ia=21;break}$=la;aa=na}if((ia|0)==3){c[d>>2]=2;g[t>>2]=0;Ea=ha;Fa=c[221]|0;Ga=(Fa|0)>(Ea|0);Ha=Ga?Fa:Ea;c[221]=Ha;Ia=+_n(h);Ja=+g[218]; +Ka=Ja>Ia;La=Ka?Ja:Ia;g[218]=La;Ma=+g[217];Na=Ia+Ma;g[217]=Na;i=f;return}else if((ia|0)==5){c[d>>2]=3;g[t>>2]=ka;Ea=ja;Fa=c[221]|0;Ga=(Fa|0)>(Ea|0);Ha=Ga?Fa:Ea;c[221]=Ha;Ia=+_n(h);Ja=+g[218];Ka=Ja>Ia;La=Ka?Ja:Ia;g[218]=La;Ma=+g[217];Na=Ia+Ma;g[217]=Na;i=f;return}else if((ia|0)==8){c[d>>2]=4;c[t>>2]=s;Oa=ma}else if((ia|0)==11){c[d>>2]=1;g[t>>2]=ra;Oa=qa}else if((ia|0)==13){c[d>>2]=3;g[t>>2]=ya;Oa=xa}else if((ia|0)==21){c[d>>2]=1;g[t>>2]=Da;Ea=20;Fa=c[221]|0;Ga=(Fa|0)>(Ea|0);Ha=Ga?Fa:Ea;c[221]=Ha;Ia= ++_n(h);Ja=+g[218];Ka=Ja>Ia;La=Ka?Ja:Ia;g[218]=La;Ma=+g[217];Na=Ia+Ma;g[217]=Na;i=f;return}c[220]=(c[220]|0)+1;Ea=Oa+1|0;Fa=c[221]|0;Ga=(Fa|0)>(Ea|0);Ha=Ga?Fa:Ea;c[221]=Ha;Ia=+_n(h);Ja=+g[218];Ka=Ja>Ia;La=Ka?Ja:Ia;g[218]=La;Ma=+g[217];Na=Ia+Ma;g[217]=Na;i=f;return}function jf(e,f,h,i,j,k,l){e=e|0;f=f|0;h=h|0;i=i|0;j=j|0;k=k|0;l=+l;var 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;c[e>>2]=h;c[e+4>>2]=j;m=b[f+4>>1]|0;n=e+8|0;o=n;p=i;i=o+36|0;do{c[o>> +2]=c[p>>2];o=o+4|0;p=p+4|0}while((o|0)<(i|0));q=e+44|0;o=q;p=k;i=o+36|0;do{c[o>>2]=c[p>>2];o=o+4|0;p=p+4|0}while((o|0)<(i|0));r=1-l;s=r*+g[e+32>>2]+ +g[e+36>>2]*l;t=+R(+s);u=+Q(+s);s=+g[n>>2];v=+g[e+12>>2];w=r*+g[e+16>>2]+ +g[e+24>>2]*l-(u*s-t*v);x=r*+g[e+20>>2]+ +g[e+28>>2]*l-(t*s+u*v);v=r*+g[e+68>>2]+ +g[e+72>>2]*l;s=+R(+v);y=+Q(+v);v=+g[q>>2];z=+g[e+48>>2];A=r*+g[e+52>>2]+ +g[e+60>>2]*l-(y*v-s*z);B=r*+g[e+56>>2]+ +g[e+64>>2]*l-(s*v+y*z);if(m<<16>>16==1){c[e+80>>2]=0;m=d[f+6>>0]|0;q=c[h+16>>2]| +0;z=+g[q+(m<<3)>>2];v=+g[q+(m<<3)+4>>2];m=d[f+9>>0]|0;q=c[j+16>>2]|0;l=+g[q+(m<<3)>>2];r=+g[q+(m<<3)+4>>2];C=A+(y*l-s*r)-(w+(u*z-t*v));D=B+(s*l+y*r)-(x+(t*z+u*v));m=e+92|0;g[m>>2]=C;q=e+96|0;g[q>>2]=D;v=+O(+(C*C+D*D));if(v<1.1920928955078125E-7)E=0;else{z=1/v;g[m>>2]=C*z;g[q>>2]=D*z;E=v}q=2440;m=c[q+4>>2]|0;n=e+84|0;c[n>>2]=c[q>>2];c[n+4>>2]=m;F=E;return+F}m=f+6|0;n=f+7|0;q=e+80|0;if((a[m>>0]|0)==(a[n>>0]|0)){c[q>>2]=2;p=d[f+9>>0]|0;o=c[j+16>>2]|0;E=+g[o+(p<<3)>>2];v=+g[o+(p<<3)+4>>2];p=d[f+10>>0]| +0;z=+g[o+(p<<3)>>2];D=+g[o+(p<<3)+4>>2];C=z-E;r=D-v;l=-C;p=e+92|0;g[p>>2]=r;o=e+96|0;g[o>>2]=l;G=+O(+(C*C+r*r));if(G<1.1920928955078125E-7){H=r;I=l}else{C=1/G;G=r*C;g[p>>2]=G;r=C*l;g[o>>2]=r;H=G;I=r}r=(E+z)*.5;z=(v+D)*.5;g[e+84>>2]=r;g[e+88>>2]=z;i=d[m>>0]|0;k=c[h+16>>2]|0;D=+g[k+(i<<3)>>2];v=+g[k+(i<<3)+4>>2];E=(y*H-s*I)*(w+(u*D-t*v)-(A+(y*r-s*z)))+(s*H+y*I)*(x+(t*D+u*v)-(B+(y*z+s*r)));if(!(E<0)){F=E;return+F}g[p>>2]=-H;g[o>>2]=-I;F=-E;return+F}else{c[q>>2]=1;q=d[m>>0]|0;m=c[h+16>>2]|0;E=+g[m+(q<< +3)>>2];I=+g[m+(q<<3)+4>>2];q=d[n>>0]|0;H=+g[m+(q<<3)>>2];r=+g[m+(q<<3)+4>>2];z=H-E;v=r-I;D=-z;q=e+92|0;g[q>>2]=v;m=e+96|0;g[m>>2]=D;G=+O(+(z*z+v*v));if(G<1.1920928955078125E-7){J=v;K=D}else{z=1/G;G=v*z;g[q>>2]=G;v=z*D;g[m>>2]=v;J=G;K=v}v=(E+H)*.5;H=(I+r)*.5;g[e+84>>2]=v;g[e+88>>2]=H;e=d[f+9>>0]|0;f=c[j+16>>2]|0;r=+g[f+(e<<3)>>2];I=+g[f+(e<<3)+4>>2];E=(u*J-t*K)*(A+(y*r-s*I)-(w+(u*v-t*H)))+(t*J+u*K)*(B+(s*r+y*I)-(x+(u*H+t*v)));if(!(E<0)){F=E;return+F}g[q>>2]=-J;g[m>>2]=-K;F=-E;return+F}return+0}function kf(a, +b,d,e){a=a|0;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,H=0;f=1-e;h=f*+g[a+32>>2]+ +g[a+36>>2]*e;i=+R(+h);j=+Q(+h);h=+g[a+8>>2];k=+g[a+12>>2];l=f*+g[a+16>>2]+ +g[a+24>>2]*e-(j*h-i*k);m=f*+g[a+20>>2]+ +g[a+28>>2]*e-(i*h+j*k);k=f*+g[a+68>>2]+ +g[a+72>>2]*e;h=+R(+k);n=+Q(+k);k=+g[a+44>>2];o=+g[a+48>>2];p=f*+g[a+52>>2]+ +g[a+60>>2]*e-(n*k-h*o);q=f*+g[a+56>>2]+ +g[a+64>>2]*e-(h*k+n*o);switch(c[a+80>>2]|0){case 0:{r=a+ +92|0;o=+g[r>>2];s=a+96|0;k=+g[s>>2];e=j*o+i*k;f=j*k-i*o;t=-o;o=-k;k=n*t+h*o;u=n*o-h*t;v=c[a>>2]|0;w=c[v+16>>2]|0;x=c[v+20>>2]|0;if((x|0)>1){v=0;t=e*+g[w>>2]+f*+g[w+4>>2];y=1;while(1){o=e*+g[w+(y<<3)>>2]+f*+g[w+(y<<3)+4>>2];z=o>t;A=z?y:v;y=y+1|0;if((y|0)==(x|0)){B=A;break}else{v=A;t=z?o:t}}}else B=0;c[b>>2]=B;B=c[a+4>>2]|0;v=c[B+16>>2]|0;x=c[B+20>>2]|0;if((x|0)>1){B=0;t=k*+g[v>>2]+u*+g[v+4>>2];y=1;while(1){f=k*+g[v+(y<<3)>>2]+u*+g[v+(y<<3)+4>>2];z=f>t;A=z?y:B;y=y+1|0;if((y|0)==(x|0)){C=A;break}else{B= +A;t=z?f:t}}}else C=0;c[d>>2]=C;B=c[b>>2]|0;t=+g[w+(B<<3)>>2];u=+g[w+(B<<3)+4>>2];k=+g[v+(C<<3)>>2];f=+g[v+(C<<3)+4>>2];D=+g[r>>2]*(p+(n*k-h*f)-(l+(j*t-i*u)))+ +g[s>>2]*(q+(h*k+n*f)-(m+(i*t+j*u)));return+D}case 1:{u=+g[a+92>>2];t=+g[a+96>>2];f=j*u-i*t;k=i*u+j*t;t=+g[a+84>>2];u=+g[a+88>>2];e=l+(j*t-i*u);o=m+(i*t+j*u);u=-f;t=-k;E=n*u+h*t;F=n*t-h*u;c[b>>2]=-1;s=c[a+4>>2]|0;r=c[s+16>>2]|0;C=c[s+20>>2]|0;if((C|0)>1){s=0;u=E*+g[r>>2]+F*+g[r+4>>2];v=1;while(1){t=E*+g[r+(v<<3)>>2]+F*+g[r+(v<<3)+4>>2];B=t> +u;w=B?v:s;v=v+1|0;if((v|0)==(C|0)){G=w;break}else{s=w;u=B?t:u}}}else G=0;c[d>>2]=G;u=+g[r+(G<<3)>>2];F=+g[r+(G<<3)+4>>2];D=f*(p+(n*u-h*F)-e)+k*(q+(h*u+n*F)-o);return+D}case 2:{o=+g[a+92>>2];F=+g[a+96>>2];u=n*o-h*F;k=h*o+n*F;F=+g[a+84>>2];o=+g[a+88>>2];e=p+(n*F-h*o);p=q+(h*F+n*o);o=-u;n=-k;F=j*o+i*n;h=j*n-i*o;c[d>>2]=-1;G=c[a>>2]|0;a=c[G+16>>2]|0;r=c[G+20>>2]|0;if((r|0)>1){G=0;o=F*+g[a>>2]+h*+g[a+4>>2];s=1;while(1){n=F*+g[a+(s<<3)>>2]+h*+g[a+(s<<3)+4>>2];C=n>o;v=C?s:G;s=s+1|0;if((s|0)==(r|0)){H=v; +break}else{G=v;o=C?n:o}}}else H=0;c[b>>2]=H;o=+g[a+(H<<3)>>2];h=+g[a+(H<<3)+4>>2];D=u*(l+(j*o-i*h)-e)+k*(m+(i*o+j*h)-p);return+D}default:{c[b>>2]=-1;c[d>>2]=-1;D=0;return+D}}return+0}function lf(a,b,d,e){a=a|0;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;f=1-e;h=f*+g[a+32>>2]+ +g[a+36>>2]*e;i=+R(+h);j=+Q(+h);h=+g[a+8>>2];k=+g[a+12>>2];l=f*+g[a+16>>2]+ +g[a+24>>2]*e-(j*h-i*k);m=f*+g[a+20>>2]+ +g[a+28>>2]*e-(i*h+j*k);k=f*+g[a+68>>2]+ +g[a+72>>2]*e;h=+R(+k);n=+Q(+k); +k=+g[a+44>>2];o=+g[a+48>>2];p=f*+g[a+52>>2]+ +g[a+60>>2]*e-(n*k-h*o);q=f*+g[a+56>>2]+ +g[a+64>>2]*e-(h*k+n*o);switch(c[a+80>>2]|0){case 0:{r=c[(c[a>>2]|0)+16>>2]|0;o=+g[r+(b<<3)>>2];k=+g[r+(b<<3)+4>>2];r=c[(c[a+4>>2]|0)+16>>2]|0;e=+g[r+(d<<3)>>2];f=+g[r+(d<<3)+4>>2];s=+g[a+92>>2]*(p+(n*e-h*f)-(l+(j*o-i*k)))+ +g[a+96>>2]*(q+(h*e+n*f)-(m+(i*o+j*k)));return+s}case 1:{k=+g[a+92>>2];o=+g[a+96>>2];f=+g[a+84>>2];e=+g[a+88>>2];r=c[(c[a+4>>2]|0)+16>>2]|0;t=+g[r+(d<<3)>>2];u=+g[r+(d<<3)+4>>2];s=(j*k-i*o)*(p+ +(n*t-h*u)-(l+(j*f-i*e)))+(i*k+j*o)*(q+(h*t+n*u)-(m+(i*f+j*e)));return+s}case 2:{e=+g[a+92>>2];f=+g[a+96>>2];u=+g[a+84>>2];t=+g[a+88>>2];d=c[(c[a>>2]|0)+16>>2]|0;o=+g[d+(b<<3)>>2];k=+g[d+(b<<3)+4>>2];s=(n*e-h*f)*(l+(j*o-i*k)-(p+(n*u-h*t)))+(h*e+n*f)*(m+(i*o+j*k)-(q+(h*u+n*t)));return+s}default:{s=0;return+s}}return+0}function mf(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;switch(c[b+4>>2]|0){case 0:{c[a+16>>2]=b+12;c[a+20>>2]=1;c[a+24>>2]=c[b+8>>2];return}case 2:{c[a+16>>2]=b+20;c[a+20>>2]=c[b+148>> +2];c[a+24>>2]=c[b+8>>2];return}case 3:{e=b+12|0;f=(c[e>>2]|0)+(d<<3)|0;g=c[f+4>>2]|0;h=a;c[h>>2]=c[f>>2];c[h+4>>2]=g;g=d+1|0;d=a+8|0;if((g|0)<(c[b+16>>2]|0)){h=(c[e>>2]|0)+(g<<3)|0;g=c[h+4>>2]|0;f=d;c[f>>2]=c[h>>2];c[f+4>>2]=g}else{g=c[e>>2]|0;e=c[g+4>>2]|0;f=d;c[f>>2]=c[g>>2];c[f+4>>2]=e}c[a+16>>2]=a;c[a+20>>2]=2;c[a+24>>2]=c[b+8>>2];return}case 1:{c[a+16>>2]=b+12;c[a+20>>2]=2;c[a+24>>2]=c[b+8>>2];return}default:return}}function nf(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,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;b=+g[a+16>>2];d=+g[a+20>>2];e=a+36|0;f=+g[a+52>>2];h=+g[a+56>>2];i=a+72|0;j=+g[a+88>>2];k=+g[a+92>>2];l=f-b;m=h-d;n=b*l+d*m;o=f*l+h*m;p=j-b;q=k-d;r=b*p+d*q;s=j*p+k*q;t=j-f;u=k-h;v=f*t+h*u;w=j*t+k*u;u=l*q-m*p;p=(f*k-h*j)*u;m=(d*j-b*k)*u;k=(b*h-d*f)*u;if(n>=-0&r>=-0){g[a+24>>2]=1;c[a+108>>2]=1;return}if(o>0&n<-0&k<=0){u=1/(o-n);g[a+24>>2]=o*u;g[a+60>>2]=-(n*u);c[a+108>>2]=2;return}if(s>0&r<-0&m<=0){u=1/(s-r);g[a+24>>2]=s*u;g[a+96>>2]=-(r*u);c[a+108>>2]=2;x=e; +y=i;z=x+36|0;do{c[x>>2]=c[y>>2];x=x+4|0;y=y+4|0}while((x|0)<(z|0));return}if(o<=0&v>=-0){g[a+60>>2]=1;c[a+108>>2]=1;x=a;y=e;z=x+36|0;do{c[x>>2]=c[y>>2];x=x+4|0;y=y+4|0}while((x|0)<(z|0));return}if(s<=0&w<=0){g[a+96>>2]=1;c[a+108>>2]=1;x=a;y=i;z=x+36|0;do{c[x>>2]=c[y>>2];x=x+4|0;y=y+4|0}while((x|0)<(z|0));return}if(w>0&v<-0&p<=0){s=1/(w-v);g[a+60>>2]=w*s;g[a+96>>2]=-(v*s);c[a+108>>2]=2;x=a;y=i;z=x+36|0;do{c[x>>2]=c[y>>2];x=x+4|0;y=y+4|0}while((x|0)<(z|0));return}else{s=1/(k+(p+m));g[a+24>>2]=p*s;g[a+ +60>>2]=m*s;g[a+96>>2]=k*s;c[a+108>>2]=3;return}}function of(d,e,f){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,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;h=i;i=i+176|0;j=h+152|0;l=h+136|0;m=h;n=h+124|0;o=h+112|0;c[224]=(c[224]|0)+1;p=f+56|0;c[j>>2]=c[p>>2];c[j+4>>2]=c[p+ +4>>2];c[j+8>>2]=c[p+8>>2];c[j+12>>2]=c[p+12>>2];p=f+72|0;c[l>>2]=c[p>>2];c[l+4>>2]=c[p+4>>2];c[l+8>>2]=c[p+8>>2];c[l+12>>2]=c[p+12>>2];pf(m,e,f,j,f+28|0,l);c[n>>2]=0;c[n+4>>2]=0;c[n+8>>2]=0;c[o>>2]=0;c[o+4>>2]=0;c[o+8>>2]=0;p=m+108|0;q=+g[j+12>>2];r=+g[j+8>>2];s=f+16|0;t=f+20|0;u=+g[j>>2];v=+g[j+4>>2];w=+g[l+12>>2];x=+g[l+8>>2];j=f+44|0;y=f+48|0;z=+g[l>>2];A=+g[l+4>>2];l=m+16|0;B=m+20|0;C=m+52|0;D=m+56|0;E=m+36|0;F=m+24|0;G=m+60|0;H=c[p>>2]|0;I=0;a:while(1){J=(H|0)>0;if(J){K=0;do{c[n+(K<<2)>>2]=c[m+ +(K*36|0)+28>>2];c[o+(K<<2)>>2]=c[m+(K*36|0)+32>>2];K=K+1|0}while((K|0)!=(H|0))}b:do switch(H|0){case 3:{nf(m);K=c[p>>2]|0;if((K|0)==3){L=I;M=11;break a}else{N=K;M=12}break}case 2:{P=+g[l>>2];Q=+g[B>>2];R=+g[C>>2];S=+g[D>>2];T=R-P;U=S-Q;V=P*T+Q*U;if(V>=-0){g[F>>2]=1;c[p>>2]=1;M=13;break b}Q=R*T+S*U;if(!(Q<=0)){U=1/(Q-V);g[F>>2]=Q*U;g[G>>2]=-(V*U);c[p>>2]=2;M=14;break b}else{g[G>>2]=1;c[p>>2]=1;K=m;W=E;X=K+36|0;do{c[K>>2]=c[W>>2];K=K+4|0;W=W+4|0}while((K|0)<(X|0));M=13;break b}break}default:{N=H;M= +12}}while(0);c:do if((M|0)==12){M=0;switch(N|0){case 1:{M=13;break c;break}case 2:{M=14;break c;break}default:{}}Y=N;Z=c[610]|0;_=c[611]|0}while(0);do if((M|0)==13){M=0;W=(g[k>>2]=-+g[l>>2],c[k>>2]|0);Y=1;Z=W;_=(g[k>>2]=-+g[B>>2],c[k>>2]|0)}else if((M|0)==14){M=0;U=+g[l>>2];V=+g[C>>2]-U;Q=+g[B>>2];S=+g[D>>2]-Q;if(U*S-V*Q>0){W=(g[k>>2]=-S,c[k>>2]|0);Y=2;Z=W;_=(g[k>>2]=V,c[k>>2]|0);break}else{W=(g[k>>2]=S,c[k>>2]|0);Y=2;Z=W;_=(g[k>>2]=-V,c[k>>2]|0);break}}while(0);V=(c[k>>2]=Z,+g[k>>2]);S=(c[k>>2]= +_,+g[k>>2]);if(S*S+V*V<1.4210854715202004E-14){$=Y;aa=I;M=31;break}Q=-V;U=-S;T=q*Q+r*U;R=q*U-r*Q;W=c[s>>2]|0;K=c[t>>2]|0;if((K|0)>1){X=0;Q=T*+g[W>>2]+R*+g[W+4>>2];ba=1;while(1){U=T*+g[W+(ba<<3)>>2]+R*+g[W+(ba<<3)+4>>2];ca=U>Q;da=ca?ba:X;ba=ba+1|0;if((ba|0)==(K|0)){ea=da;break}else{X=da;Q=ca?U:Q}}}else ea=0;c[m+(Y*36|0)+28>>2]=ea;Q=+g[W+(ea<<3)>>2];R=+g[W+(ea<<3)+4>>2];T=u+(q*Q-r*R);U=Q*r+q*R+v;g[m+(Y*36|0)>>2]=T;g[m+(Y*36|0)+4>>2]=U;R=V*w+S*x;Q=S*w-V*x;X=c[j>>2]|0;K=c[y>>2]|0;if((K|0)>1){ba=0;P=R* ++g[X>>2]+Q*+g[X+4>>2];ca=1;while(1){fa=R*+g[X+(ca<<3)>>2]+Q*+g[X+(ca<<3)+4>>2];da=fa>P;ga=da?ca:ba;ca=ca+1|0;if((ca|0)==(K|0)){ha=ga;break}else{ba=ga;P=da?fa:P}}}else ha=0;c[m+(Y*36|0)+32>>2]=ha;P=+g[X+(ha<<3)>>2];Q=+g[X+(ha<<3)+4>>2];R=z+(w*P-x*Q);V=P*x+w*Q+A;g[m+(Y*36|0)+8>>2]=R;g[m+(Y*36|0)+12>>2]=V;g[m+(Y*36|0)+16>>2]=R-T;g[m+(Y*36|0)+20>>2]=V-U;ba=I+1|0;c[225]=(c[225]|0)+1;if(J){K=0;do{if((ea|0)==(c[n+(K<<2)>>2]|0)?(ha|0)==(c[o+(K<<2)>>2]|0):0){ia=ba;M=30;break a}K=K+1|0}while((K|0)<(H|0))}K= +(c[p>>2]|0)+1|0;c[p>>2]=K;if((ba|0)<20){H=K;I=ba}else{$=K;aa=ba;M=31;break}}if((M|0)==11){I=c[226]|0;c[226]=(I|0)>(L|0)?I:L;ja=L;M=35}else if((M|0)==30){$=c[p>>2]|0;aa=ia;M=31}d:do if((M|0)==31){ia=c[226]|0;c[226]=(ia|0)>(aa|0)?ia:aa;ia=d+8|0;switch($|0){case 3:{ja=aa;M=35;break d;break}case 1:{p=m;L=c[p>>2]|0;I=c[p+4>>2]|0;p=d;c[p>>2]=L;c[p+4>>2]=I;p=m+8|0;H=c[p>>2]|0;o=c[p+4>>2]|0;p=ia;c[p>>2]=H;c[p+4>>2]=o;A=(c[k>>2]=L,+g[k>>2]);w=(c[k>>2]=H,+g[k>>2]);x=(c[k>>2]=I,+g[k>>2]);ka=ia;la=d+4|0;ma=d+ +12|0;na=d;oa=w;pa=A;qa=(c[k>>2]=o,+g[k>>2]);ra=x;sa=1;ta=aa;break d;break}case 2:{x=+g[F>>2];A=+g[G>>2];w=x*+g[m>>2]+A*+g[m+36>>2];z=x*+g[m+4>>2]+A*+g[m+40>>2];g[d>>2]=w;o=d+4|0;g[o>>2]=z;v=x*+g[m+8>>2]+A*+g[m+44>>2];q=x*+g[m+12>>2]+A*+g[m+48>>2];g[ia>>2]=v;I=d+12|0;g[I>>2]=q;ka=ia;la=o;ma=I;na=d;oa=v;pa=w;qa=q;ra=z;sa=2;ta=aa;break d;break}default:{I=d+4|0;o=d+12|0;ka=ia;la=I;ma=o;na=d;oa=+g[ia>>2];pa=+g[d>>2];qa=+g[o>>2];ra=+g[I>>2];sa=$;ta=aa;break d}}}while(0);if((M|0)==35){z=+g[F>>2];q=+g[G>> +2];w=+g[m+96>>2];v=z*+g[m>>2]+q*+g[m+36>>2]+w*+g[m+72>>2];A=z*+g[m+4>>2]+q*+g[m+40>>2]+w*+g[m+76>>2];g[d>>2]=v;G=d+4|0;g[G>>2]=A;F=d+8|0;g[F>>2]=v;aa=d+12|0;g[aa>>2]=A;ka=F;la=G;ma=aa;na=d;oa=v;pa=v;qa=A;ra=A;sa=3;ta=ja}A=pa-oa;oa=ra-qa;ja=d+16|0;g[ja>>2]=+O(+(A*A+oa*oa));c[d+20>>2]=ta;switch(sa|0){case 3:{oa=+g[l>>2];A=+g[B>>2];ua=(+g[C>>2]-oa)*(+g[m+92>>2]-A)-(+g[D>>2]-A)*(+g[m+88>>2]-oa);M=39;break}case 2:{oa=+g[l>>2]-+g[C>>2];A=+g[B>>2]-+g[D>>2];ua=+O(+(oa*oa+A*A));M=39;break}default:{g[e>>2]= +0;b[e+4>>1]=sa;if((sa|0)>0){va=0;M=41}}}if((M|0)==39){g[e>>2]=ua;b[e+4>>1]=sa;va=0;M=41}if((M|0)==41)while(1){M=0;a[e+6+va>>0]=c[m+(va*36|0)+28>>2];a[e+9+va>>0]=c[m+(va*36|0)+32>>2];va=va+1|0;if((va|0)>=(sa|0))break;else M=41}if(!(a[f+88>>0]|0)){i=h;return}ua=+g[f+24>>2];A=+g[f+52>>2];oa=+g[ja>>2];qa=ua+A;if(!(oa>qa&oa>1.1920928955078125E-7)){ra=(+g[na>>2]+ +g[ka>>2])*.5;pa=(+g[la>>2]+ +g[ma>>2])*.5;g[na>>2]=ra;g[la>>2]=pa;g[ka>>2]=ra;g[ma>>2]=pa;g[ja>>2]=0;i=h;return}g[ja>>2]=oa-qa;qa=+g[ka>>2]; +oa=+g[na>>2];pa=qa-oa;ra=+g[ma>>2];v=+g[la>>2];w=ra-v;q=+O(+(pa*pa+w*w));if(q<1.1920928955078125E-7){wa=pa;xa=w}else{z=1/q;wa=pa*z;xa=w*z}g[na>>2]=ua*wa+oa;g[la>>2]=ua*xa+v;g[ka>>2]=qa-A*wa;g[ma>>2]=ra-A*xa;i=h;return}function pf(a,e,f,h,i,j){a=a|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,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0;k=b[e+4>>1]|0;l=k&65535;m=a+108|0;c[m>>2]=l;if(!(k<<16>>16))n=l;else{l=f+16|0;k=i+16|0;o=h+12|0;p=h+8|0;q=h+4|0;r=j+12|0;s=j+8| +0;t=j+4|0;u=0;do{v=d[e+6+u>>0]|0;c[a+(u*36|0)+28>>2]=v;w=d[e+9+u>>0]|0;c[a+(u*36|0)+32>>2]=w;x=c[l>>2]|0;y=+g[x+(v<<3)>>2];z=+g[x+(v<<3)+4>>2];v=c[k>>2]|0;A=+g[v+(w<<3)>>2];B=+g[v+(w<<3)+4>>2];C=+g[o>>2];D=+g[p>>2];E=+g[h>>2]+(y*C-z*D);F=z*C+y*D+ +g[q>>2];g[a+(u*36|0)>>2]=E;g[a+(u*36|0)+4>>2]=F;D=+g[r>>2];y=+g[s>>2];C=+g[j>>2]+(A*D-B*y);z=B*D+A*y+ +g[t>>2];g[a+(u*36|0)+8>>2]=C;g[a+(u*36|0)+12>>2]=z;g[a+(u*36|0)+16>>2]=C-E;g[a+(u*36|0)+20>>2]=z-F;g[a+(u*36|0)+24>>2]=0;u=u+1|0;w=c[m>>2]|0}while((u| +0)<(w|0));n=w}if((n|0)<=1){if(n)return}else{F=+g[e>>2];switch(n|0){case 3:{z=+g[a+16>>2];E=+g[a+20>>2];G=(+g[a+52>>2]-z)*(+g[a+92>>2]-E)-(+g[a+56>>2]-E)*(+g[a+88>>2]-z);break}case 2:{z=+g[a+16>>2]-+g[a+52>>2];E=+g[a+20>>2]-+g[a+56>>2];G=+O(+(z*z+E*E));break}default:G=0}if(!(G>2]=0}c[a+28>>2]=0;c[a+32>>2]=0;n=c[f+16>>2]|0;G=+g[n>>2];F=+g[n+4>>2];n=c[i+16>>2]|0;E=+g[n>>2];z=+g[n+4>>2];C=+g[h+12>>2];y=+g[h+8>>2];A=+g[h>>2]+(G*C-F*y);D=F*C+G*y+ +g[h+ +4>>2];g[a>>2]=A;g[a+4>>2]=D;y=+g[j+12>>2];G=+g[j+8>>2];C=+g[j>>2]+(E*y-z*G);F=z*y+E*G+ +g[j+4>>2];g[a+8>>2]=C;g[a+12>>2]=F;g[a+16>>2]=C-A;g[a+20>>2]=F-D;g[a+24>>2]=1;c[m>>2]=1;return}function qf(a,d){a=a|0;d=d|0;var e=0,f=0,h=0,i=0;e=Sn(d,48)|0;c[e>>2]=916;d=e+4|0;c[d>>2]=1;g[e+8>>2]=.009999999776482582;f=e+28|0;c[f>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;c[f+12>>2]=0;b[f+16>>1]=0;f=a+4|0;h=c[f+4>>2]|0;i=d;c[i>>2]=c[f>>2];c[i+4>>2]=h;h=e+12|0;i=a+12|0;c[h>>2]=c[i>>2];c[h+4>>2]=c[i+4>>2];c[h+8>>2]=c[i+8>>2]; +c[h+12>>2]=c[i+12>>2];c[h+16>>2]=c[i+16>>2];c[h+20>>2]=c[i+20>>2];c[h+24>>2]=c[i+24>>2];c[h+28>>2]=c[i+28>>2];b[h+32>>1]=b[i+32>>1]|0;return e|0}function rf(a){a=a|0;return 1}function sf(a,b,c){a=a|0;b=b|0;c=c|0;return 0}function tf(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,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;i=+g[b+12>>2];j=+g[a+12>>2];l=+g[b+8>>2];m=+g[a+16>>2];n=+g[b>>2];o=n+(i*j-l*m);p=+g[b+4>>2];q=j*l+i*m+p;m=+g[a+20>>2];j=+g[a+24>>2];r=n+(i*m-l*j);n=p+ +(l*m+i*j);j=+g[d>>2];i=j-o;m=+g[d+4>>2];l=m-q;p=r-o;o=n-q;q=i*p+l*o;do if(q>0){s=p*p+o*o;if(q>s){t=m-n;u=j-r;break}else{v=q/s;t=l-o*v;u=i-p*v;break}}else{t=l;u=i}while(0);i=+O(+(t*t+u*u));g[e>>2]=i;if(i>0){l=1/i;e=(g[k>>2]=u*l,c[k>>2]|0);w=e;x=(g[k>>2]=t*l,c[k>>2]|0);c[f>>2]=w;y=f+4|0;c[y>>2]=x;return}else{w=c[610]|0;x=c[611]|0;c[f>>2]=w;y=f+4|0;c[y>>2]=x;return}}function uf(a,b,c,d,e){a=a|0;b=b|0;c=c|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;f=+g[d>>2]; +h=+g[c>>2]-f;i=+g[d+4>>2];j=+g[c+4>>2]-i;k=+g[d+12>>2];l=+g[d+8>>2];m=h*k+j*l;n=k*j-h*l;h=+g[c+8>>2]-f;f=+g[c+12>>2]-i;i=k*h+l*f-m;j=k*f-l*h-n;h=+g[a+12>>2];f=+g[a+16>>2];o=+g[a+20>>2]-h;p=+g[a+24>>2]-f;q=-o;r=o*o+p*p;s=+O(+r);if(s<1.1920928955078125E-7){t=p;u=q}else{v=1/s;t=p*v;u=v*q}q=(f-n)*u+(h-m)*t;v=j*u+i*t;if(v==0){w=0;return w|0}s=q/v;if(s<0){w=0;return w|0}if(r==0?1:+g[c+16>>2]1){w=0;return w|0}g[b+8>>2]=s;s=t*k-u*l;v=u*k+t*l;if(q> +0){g[b>>2]=-s;g[b+4>>2]=-v;w=1;return w|0}else{g[b>>2]=s;g[b+4>>2]=v;w=1;return w|0}return 0}function vf(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,j=0,k=0,l=0,m=0,n=0;e=+g[c+12>>2];f=+g[a+12>>2];h=+g[c+8>>2];i=+g[a+16>>2];j=+g[c>>2];k=j+(e*f-h*i);l=+g[c+4>>2];m=f*h+e*i+l;i=+g[a+20>>2];f=+g[a+24>>2];n=j+(e*i-h*f);j=l+(h*i+e*f);f=+g[a+8>>2];g[b>>2]=(k>2]=(m>2]=f+(k>n?k:n);g[b+12>>2]=f+(m>j?m:j);return}function wf(a,b,c){a=a|0;b=b|0;c=+c;g[b>>2]=0;c=(+g[a+16>> +2]+ +g[a+24>>2])*.5;g[b+4>>2]=(+g[a+12>>2]+ +g[a+20>>2])*.5;g[b+8>>2]=c;g[b+12>>2]=0;return}function xf(a){a=a|0;return}function yf(a){a=a|0;so(a);return}function zf(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0,i=0;d=Sn(b,152)|0;c[d>>2]=960;b=d+4|0;c[b>>2]=2;g[d+8>>2]=.009999999776482582;c[d+148>>2]=0;e=d+12|0;g[e>>2]=0;g[d+16>>2]=0;f=a+4|0;h=c[f+4>>2]|0;i=b;c[i>>2]=c[f>>2];c[i+4>>2]=h;Bp(e|0,a+12|0,140)|0;return d|0}function Af(a){a=a|0;return 1}function Bf(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,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;e=i;i=i+96|0;f=e+32|0;h=e;if((d|0)<3){c[a+148>>2]=4;g[a+20>>2]=-1;g[a+24>>2]=-1;g[a+28>>2]=1;g[a+32>>2]=-1;g[a+36>>2]=1;g[a+40>>2]=1;g[a+44>>2]=-1;g[a+48>>2]=1;g[a+84>>2]=0;g[a+88>>2]=-1;g[a+92>>2]=1;g[a+96>>2]=0;g[a+100>>2]=0;g[a+104>>2]=1;g[a+108>>2]=-1;g[a+112>>2]=0;g[a+12>>2]=0;g[a+16>>2]=0;i=e;return}j=(d|0)<8?d:8;d=0;l=0;while(1){m=c[b+(d<<3)>>2]|0;n=c[b+(d<<3)+4>>2]|0;a:do if((l|0)>0){o=(c[k>> +2]=m,+g[k>>2]);p=(c[k>>2]=n,+g[k>>2]);q=0;while(1){r=o-+g[f+(q<<3)>>2];s=p-+g[f+(q<<3)+4>>2];q=q+1|0;if(r*r+s*s<.0024999999441206455){t=l;break a}if((q|0)>=(l|0)){u=8;break}}}else u=8;while(0);if((u|0)==8){u=0;c[f+(l<<3)>>2]=m;c[f+(l<<3)+4>>2]=n;t=l+1|0}d=d+1|0;if((d|0)==(j|0)){v=t;break}else l=t}if((v|0)<3){c[a+148>>2]=4;g[a+20>>2]=-1;g[a+24>>2]=-1;g[a+28>>2]=1;g[a+32>>2]=-1;g[a+36>>2]=1;g[a+40>>2]=1;g[a+44>>2]=-1;g[a+48>>2]=1;g[a+84>>2]=0;g[a+88>>2]=-1;g[a+92>>2]=1;g[a+96>>2]=0;g[a+100>>2]=0;g[a+ +104>>2]=1;g[a+108>>2]=-1;g[a+112>>2]=0;g[a+12>>2]=0;g[a+16>>2]=0}else{t=0;l=1;p=+g[f>>2];while(1){o=+g[f+(l<<3)>>2];if(!(o>p))if(o==p?+g[f+(l<<3)+4>>2]<+g[f+(t<<3)+4>>2]:0)u=23;else{w=t;x=p}else u=23;if((u|0)==23){u=0;w=l;x=o}l=l+1|0;if((l|0)==(v|0)){y=w;break}else{t=w;p=x}}w=y;t=0;while(1){c[h+(t<<2)>>2]=w;l=f+(w<<3)|0;u=f+(w<<3)+4|0;j=0;d=1;while(1){if((j|0)!=(w|0)){x=+g[l>>2];p=+g[f+(j<<3)>>2]-x;o=+g[u>>2];s=+g[f+(j<<3)+4>>2]-o;r=+g[f+(d<<3)>>2]-x;x=+g[f+(d<<3)+4>>2]-o;o=p*x-s*r;b=o<0?d:j;if(o== +0?r*r+x*x>p*p+s*s:0)z=d;else z=b}else z=d;d=d+1|0;if((d|0)==(v|0)){A=z;break}else j=z}j=t+1|0;if((A|0)==(y|0)){B=j;C=t;break}else{w=A;t=j}}c[a+148>>2]=B;t=(C|0)>-1;if(t){A=0;do{w=f+(c[h+(A<<2)>>2]<<3)|0;y=c[w+4>>2]|0;z=a+20+(A<<3)|0;c[z>>2]=c[w>>2];c[z+4>>2]=y;A=A+1|0}while((A|0)!=(B|0));if(t){t=0;do{A=t;t=t+1|0;h=(t|0)<(B|0)?t:0;s=+g[a+20+(h<<3)>>2]-+g[a+20+(A<<3)>>2];p=+g[a+20+(h<<3)+4>>2]-+g[a+20+(A<<3)+4>>2];x=-s;h=a+84+(A<<3)|0;g[h>>2]=p;f=a+84+(A<<3)+4|0;g[f>>2]=x;r=+O(+(s*s+p*p));if(!(r<1.1920928955078125E-7)){s= +1/r;g[h>>2]=p*s;g[f>>2]=s*x}}while((t|0)!=(B|0))}}t=a+20|0;if((C|0)>-1){x=0;s=0;p=0;C=0;while(1){r=+g[a+20+(C<<3)>>2];o=+g[a+20+(C<<3)+4>>2];C=C+1|0;f=(C|0)<(B|0)?a+20+(C<<3)|0:t;D=+g[f>>2];E=+g[f+4>>2];F=(r*E-o*D)*.5;G=p+F;H=F*.3333333432674408;F=x+(r+0+D)*H;D=s+(o+0+E)*H;if((C|0)==(B|0)){I=F;J=D;K=G;break}else{x=F;s=D;p=G}}}else{I=0;J=0;K=0}p=1/K;g[a+12>>2]=I*p;g[a+16>>2]=J*p}i=e;return}function Cf(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,l=0,m=0,n=0;e=+g[d>>2]-+g[b>>2];f=+g[d+4>>2]- ++g[b+4>>2];h=+g[b+12>>2];i=+g[b+8>>2];j=e*h+f*i;k=h*f-e*i;b=c[a+148>>2]|0;if((b|0)>0)l=0;else{m=1;return m|0}while(1){if((j-+g[a+20+(l<<3)>>2])*+g[a+84+(l<<3)>>2]+(k-+g[a+20+(l<<3)+4>>2])*+g[a+84+(l<<3)+4>>2]>0){m=0;n=4;break}l=l+1|0;if((l|0)>=(b|0)){m=1;n=4;break}}if((n|0)==4)return m|0;return 0}function Df(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,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=+g[d>>2]-+g[b>>2];j=+g[d+4>>2]-+g[b+ +4>>2];d=b+12|0;l=+g[d>>2];h=b+8|0;m=+g[h>>2];n=i*l+j*m;o=l*j-i*m;b=(g[k>>2]=n,c[k>>2]|0);p=(g[k>>2]=o,c[k>>2]|0);q=c[a+148>>2]|0;r=(q|0)>0;if(r){s=p;t=b;u=0;m=-3.4028234663852886E38;while(1){i=+g[a+84+(u<<3)>>2];j=+g[a+84+(u<<3)+4>>2];l=(n-+g[a+20+(u<<3)>>2])*i+(o-+g[a+20+(u<<3)+4>>2])*j;v=l>m;w=(g[k>>2]=j,c[k>>2]|0);x=v?w:s;w=v?(g[k>>2]=i,c[k>>2]|0):t;i=v?l:m;u=u+1|0;if((u|0)>=(q|0)){y=x;z=w;A=i;break}else{s=x;t=w;m=i}}if(A>0){m=A*A;if(r){r=y;t=z;s=0;i=m;while(1){l=n-+g[a+20+(s<<3)>>2];j=o-+g[a+ +20+(s<<3)+4>>2];u=(g[k>>2]=l,c[k>>2]|0);B=l*l+j*j;w=i>B;x=w?(g[k>>2]=j,c[k>>2]|0):r;v=w?u:t;j=w?B:i;s=s+1|0;if((s|0)>=(q|0)){C=x;D=v;E=j;break}else{r=x;t=v;i=j}}}else{C=y;D=z;E=m}g[e>>2]=+O(+E);E=+g[d>>2];m=(c[k>>2]=D,+g[k>>2]);i=+g[h>>2];o=(c[k>>2]=C,+g[k>>2]);n=m*E-o*i;j=o*E+m*i;g[f>>2]=n;C=f+4|0;g[C>>2]=j;i=+O(+(n*n+j*j));if(i<1.1920928955078125E-7)return;m=1/i;g[f>>2]=n*m;g[C>>2]=j*m;return}else{F=y;G=z;H=A}}else{F=p;G=b;H=-3.4028234663852886E38}g[e>>2]=H;H=+g[d>>2];A=(c[k>>2]=G,+g[k>>2]);m=+g[h>> +2];j=(c[k>>2]=F,+g[k>>2]);g[f>>2]=A*H-j*m;g[f+4>>2]=j*H+A*m;return}function Ef(a,b,d,e,f){a=a|0;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;h=+g[e>>2];i=+g[d>>2]-h;j=+g[e+4>>2];k=+g[d+4>>2]-j;l=+g[e+12>>2];m=+g[e+8>>2];n=i*l+k*m;o=l*k-i*m;i=+g[d+8>>2]-h;h=+g[d+12>>2]-j;j=l*i+m*h-n;k=l*h-m*i-o;e=c[a+148>>2]|0;if((e|0)<=0){p=0;return p|0}f=0;q=-1;i=0;h=+g[d+16>>2];a:while(1){r=+g[a+84+(f<<3)>>2];s=+g[a+84+(f<<3)+4>>2];t=(+g[a+20+(f<<3)>> +2]-n)*r+(+g[a+20+(f<<3)+4>>2]-o)*s;u=j*r+k*s;do if(u==0)if(t<0){p=0;v=12;break a}else{w=q;x=i;y=h}else if(u<0&t0&t=(e|0)){z=w;A=x;v=10;break}else{q=w;i=x;h=y}}if((v|0)==10){if((z|0)<=-1){p=0;return p|0}g[b+8>>2]=A;A=+g[a+84+(z<<3)>>2];y=+g[a+84+(z<<3)+4>>2];g[b>>2]=l*A-m*y;g[b+4>>2]=A*m+l*y;p=1;return p|0}else if((v|0)==12)return p|0;return 0}function Ff(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,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;f=+g[d+12>>2];h=+g[a+20>>2];i=+g[d+8>>2];j=+g[a+24>>2];l=+g[d>>2];m=+g[d+4>>2];d=(g[k>>2]=l+(f*h-i*j),c[k>>2]|0);e=(g[k>>2]=h*i+f*j+m,c[k>>2]|0);n=c[a+148>>2]|0;if((n|0)>1){o=d;p=e;q=d;r=e;s=1;while(1){j=+g[a+20+(s<<3)>>2];h=+g[a+20+(s<<3)+4>>2];t=l+(f*j-i*h);u=j*i+f*h+m;h=(c[k>>2]=o,+g[k>>2]);j=(c[k>>2]=p,+g[k>>2]);v=(g[k>>2]=h>2]|0);w=(g[k>>2]=j>2]|0);j=(c[k>>2]=q,+g[k>>2]);h=(c[k>>2]=r,+g[k>> +2]);x=(g[k>>2]=j>t?j:t,c[k>>2]|0);y=(g[k>>2]=h>u?h:u,c[k>>2]|0);s=s+1|0;if((s|0)>=(n|0)){z=w;A=v;B=y;C=x;break}else{o=v;p=w;q=x;r=y}}}else{z=e;A=d;B=e;C=d}m=+g[a+8>>2];f=(c[k>>2]=A,+g[k>>2])-m;i=(c[k>>2]=z,+g[k>>2])-m;g[b>>2]=f;g[b+4>>2]=i;i=(c[k>>2]=C,+g[k>>2])+m;f=(c[k>>2]=B,+g[k>>2])+m;g[b+8>>2]=i;g[b+12>>2]=f;return}function Gf(a,b,d){a=a|0;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,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;e=c[a+148>>2]|0;f=(e|0)>0;if(f){h=0; +i=0;j=0;while(1){k=h+ +g[a+20+(j<<3)>>2];l=i+ +g[a+20+(j<<3)+4>>2];j=j+1|0;if((j|0)>=(e|0)){m=k;n=l;break}else{h=k;i=l}}i=1/+(e|0);h=m*i;m=n*i;if(f){f=a+20|0;j=a+24|0;i=0;n=0;l=0;k=0;o=0;while(1){p=+g[a+20+(o<<3)>>2]-h;q=+g[a+20+(o<<3)+4>>2]-m;o=o+1|0;r=(o|0)<(e|0);s=+g[(r?a+20+(o<<3)|0:f)>>2]-h;t=+g[(r?a+20+(o<<3)+4|0:j)>>2]-m;u=p*t-q*s;v=u*.5;w=k+v;x=v*.3333333432674408;v=i+(p+s)*x;y=n+(q+t)*x;x=l+u*.0833333358168602*(s*s+(p*p+p*s)+(t*t+(q*q+q*t)));if(!r){z=y;A=v;B=h;C=m;D=x;E=w;break}else{i=v; +n=y;l=x;k=w}}}else{z=0;A=0;B=h;C=m;D=0;E=0}}else{m=1/+(e|0);z=0;A=0;B=m*0;C=m*0;D=0;E=0}m=E*d;g[b>>2]=m;h=1/E;E=A*h;A=z*h;h=B+E;B=C+A;g[b+4>>2]=h;g[b+8>>2]=B;g[b+12>>2]=D*d+m*(h*h+B*B-(E*E+A*A));return}function Hf(a){a=a|0;so(a);return}function If(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=Sn(b,20)|0;c[d>>2]=1004;b=d+4|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;e=a+4|0;f=c[e+4>>2]|0;g=b;c[g>>2]=c[e>>2];c[g+4>>2]=f;f=a+12|0;a=c[f+4>>2]|0;g=d+12|0;c[g>>2]=c[f>>2];c[g+4>>2]=a;return d|0}function Jf(a){a= +a|0;return 1}function Kf(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,h=0,i=0,j=0;d=+g[b+12>>2];e=+g[a+12>>2];f=+g[b+8>>2];h=+g[a+16>>2];i=+g[c>>2]-(+g[b>>2]+(d*e-f*h));j=+g[c+4>>2]-(+g[b+4>>2]+(e*f+d*h));h=+g[a+8>>2];return i*i+j*j<=h*h|0}function Lf(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var h=0,i=0,j=0,k=0,l=0,m=0;h=+g[b+12>>2];i=+g[a+12>>2];j=+g[b+8>>2];k=+g[a+16>>2];l=+g[c>>2]-(+g[b>>2]+(h*i-j*k));m=+g[c+4>>2]-(+g[b+4>>2]+(i*j+h*k));k=+O(+(l*l+m*m));g[d>>2]=k-+g[a+8>>2];h=1/k;g[e>>2]=l* +h;g[e+4>>2]=m*h;return}function Mf(a,b,c,d,e){a=a|0;b=b|0;c=c|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;f=+g[d+12>>2];h=+g[a+12>>2];i=+g[d+8>>2];j=+g[a+16>>2];k=+g[c>>2];l=k-(+g[d>>2]+(f*h-i*j));m=+g[c+4>>2];n=m-(+g[d+4>>2]+(h*i+f*j));j=+g[a+8>>2];f=+g[c+8>>2]-k;k=+g[c+12>>2]-m;m=l*f+n*k;i=f*f+k*k;h=m*m-(l*l+n*n-j*j)*i;if(i<1.1920928955078125E-7|h<0){o=0;return o|0}j=m+ +O(+h);h=-j;if(!(j<=-0)){o=0;return o|0}if(!(i*+g[c+16>>2]>=h)){o=0;return o|0}j=h/i;g[b+8>>2]=j;i=l+f*j;f=n+k*j;g[b>> +2]=i;c=b+4|0;g[c>>2]=f;j=+O(+(i*i+f*f));if(j<1.1920928955078125E-7){o=1;return o|0}k=1/j;g[b>>2]=i*k;g[c>>2]=f*k;o=1;return o|0}function Nf(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,j=0,k=0;e=+g[c+12>>2];f=+g[a+12>>2];h=+g[c+8>>2];i=+g[a+16>>2];j=+g[c>>2]+(e*f-h*i);k=+g[c+4>>2]+(f*h+e*i);i=+g[a+8>>2];g[b>>2]=j-i;g[b+4>>2]=k-i;g[b+8>>2]=j+i;g[b+12>>2]=k+i;return}function Of(a,b,d){a=a|0;b=b|0;d=+d;var e=0,f=0,h=0,i=0,j=0,k=0,l=0,m=0;e=a+8|0;f=+g[e>>2];h=f*(d*3.1415927410125732*f);g[b>>2]= +h;i=a+12|0;j=i;k=c[j+4>>2]|0;l=b+4|0;c[l>>2]=c[j>>2];c[l+4>>2]=k;f=+g[e>>2];d=+g[i>>2];m=+g[a+16>>2];g[b+12>>2]=h*(f*(f*.5)+(d*d+m*m));return}function Pf(a){a=a|0;so(a);return}function Qf(a){a=a|0;var b=0;c[a>>2]=1048;b=a+12|0;ao(c[b>>2]|0);c[b>>2]=0;c[a+16>>2]=0;return}function Rf(a){a=a|0;c[a>>2]=1048;ao(c[a+12>>2]|0);so(a);return}function Sf(a,d,e){a=a|0;d=d|0;e=e|0;var f=0,g=0;f=a+16|0;c[f>>2]=e;g=$n(e<<3)|0;c[a+12>>2]=g;Bp(g|0,d|0,c[f>>2]<<3|0)|0;f=a+20|0;c[f>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;c[f+ +12>>2]=0;b[f+16>>1]=0;return}function Tf(d,e){d=d|0;e=e|0;var f=0,h=0,i=0,j=0,k=0,l=0,m=0;f=Sn(e,40)|0;c[f>>2]=1048;c[f+4>>2]=3;g[f+8>>2]=.009999999776482582;e=f+12|0;c[e>>2]=0;h=f+16|0;c[h>>2]=0;i=f+36|0;a[i>>0]=0;j=f+37|0;a[j>>0]=0;k=c[d+12>>2]|0;l=c[d+16>>2]|0;c[h>>2]=l;m=$n(l<<3)|0;c[e>>2]=m;Bp(m|0,k|0,c[h>>2]<<3|0)|0;h=f+20|0;c[h>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;c[h+12>>2]=0;b[h+16>>1]=0;k=d+20|0;m=c[k+4>>2]|0;e=h;c[e>>2]=c[k>>2];c[e+4>>2]=m;m=d+28|0;e=c[m+4>>2]|0;k=f+28|0;c[k>>2]=c[m>>2];c[k+4>> +2]=e;a[i>>0]=a[d+36>>0]|0;a[j>>0]=a[d+37>>0]|0;return f|0}function Uf(a){a=a|0;return(c[a+16>>2]|0)+-1|0}function Vf(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;c[d+4>>2]=1;c[d+8>>2]=c[b+8>>2];f=b+12|0;g=(c[f>>2]|0)+(e<<3)|0;h=c[g+4>>2]|0;i=d+12|0;c[i>>2]=c[g>>2];c[i+4>>2]=h;h=(c[f>>2]|0)+(e+1<<3)|0;i=c[h+4>>2]|0;g=d+20|0;c[g>>2]=c[h>>2];c[g+4>>2]=i;i=d+28|0;if((e|0)>0){g=(c[f>>2]|0)+(e+-1<<3)|0;h=c[g+4>>2]|0;j=i;c[j>>2]=c[g>>2];c[j+4>>2]=h;k=1}else{h=b+20|0;j=c[h+4>>2]|0;g=i;c[g>> +2]=c[h>>2];c[g+4>>2]=j;k=a[b+36>>0]|0}a[d+44>>0]=k;k=d+36|0;if(((c[b+16>>2]|0)+-2|0)>(e|0)){j=(c[f>>2]|0)+(e+2<<3)|0;e=c[j+4>>2]|0;f=k;c[f>>2]=c[j>>2];c[f+4>>2]=e;l=1;m=d+45|0;a[m>>0]=l;return}else{e=b+28|0;f=c[e+4>>2]|0;j=k;c[j>>2]=c[e>>2];c[j+4>>2]=f;l=a[b+37>>0]|0;m=d+45|0;a[m>>0]=l;return}}function Wf(d,e,f,g,h,j){d=d|0;e=e|0;f=f|0;g=g|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;k=i;i=i+48|0;l=k;c[l>>2]=916;m=l+28|0;c[m>>2]=0;c[m+4>>2]=0;c[m+8>>2]=0;c[m+12>>2]=0;b[m+16>>1]=0;c[l+ +4>>2]=1;c[l+8>>2]=c[d+8>>2];m=c[d+12>>2]|0;n=m+(j<<3)|0;o=c[n+4>>2]|0;p=l+12|0;c[p>>2]=c[n>>2];c[p+4>>2]=o;o=m+(j+1<<3)|0;p=c[o+4>>2]|0;n=l+20|0;c[n>>2]=c[o>>2];c[n+4>>2]=p;p=l+28|0;if((j|0)>0){n=m+(j+-1<<3)|0;o=c[n+4>>2]|0;q=p;c[q>>2]=c[n>>2];c[q+4>>2]=o;r=1}else{o=d+20|0;q=c[o+4>>2]|0;n=p;c[n>>2]=c[o>>2];c[n+4>>2]=q;r=a[d+36>>0]|0}a[l+44>>0]=r;r=l+36|0;if(((c[d+16>>2]|0)+-2|0)>(j|0)){q=m+(j+2<<3)|0;j=c[q+4>>2]|0;m=r;c[m>>2]=c[q>>2];c[m+4>>2]=j;s=1;t=l+45|0;a[t>>0]=s;tf(l,e,f,g,h,0);i=k;return}else{j= +d+28|0;m=c[j+4>>2]|0;q=r;c[q>>2]=c[j>>2];c[q+4>>2]=m;s=a[d+37>>0]|0;t=l+45|0;a[t>>0]=s;tf(l,e,f,g,h,0);i=k;return}}function Xf(a,b,c){a=a|0;b=b|0;c=c|0;return 0}function Yf(a,d,e,f,h){a=a|0;d=d|0;e=e|0;f=f|0;h=h|0;var j=0,k=0,l=0,m=0,n=0;j=i;i=i+48|0;k=j;c[k>>2]=916;c[k+4>>2]=1;g[k+8>>2]=.009999999776482582;l=k+28|0;c[l>>2]=0;c[l+4>>2]=0;c[l+8>>2]=0;c[l+12>>2]=0;b[l+16>>1]=0;l=h+1|0;m=(l|0)==(c[a+16>>2]|0)?0:l;l=c[a+12>>2]|0;a=l+(h<<3)|0;h=c[a+4>>2]|0;n=k+12|0;c[n>>2]=c[a>>2];c[n+4>>2]=h;h=l+(m<< +3)|0;m=c[h+4>>2]|0;l=k+20|0;c[l>>2]=c[h>>2];c[l+4>>2]=m;m=uf(k,d,e,f,0)|0;i=j;return m|0}function Zf(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;f=e+1|0;h=(f|0)==(c[a+16>>2]|0)?0:f;f=c[a+12>>2]|0;i=+g[d+12>>2];j=+g[f+(e<<3)>>2];k=+g[d+8>>2];l=+g[f+(e<<3)+4>>2];m=+g[d>>2];n=m+(i*j-k*l);o=+g[d+4>>2];p=j*k+i*l+o;l=+g[f+(h<<3)>>2];j=+g[f+(h<<3)+4>>2];q=m+(i*l-k*j);m=o+(k*l+i*j);g[b>>2]=n>2]=p>2]=n>q?n:q;g[b+12>>2]=p>m?p:m;return}function _f(a, +b,d){a=a|0;b=b|0;d=+d;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;return}function $f(a){a=a|0;ig(a);c[a+28>>2]=0;c[a+48>>2]=16;c[a+52>>2]=0;c[a+44>>2]=$n(128)|0;c[a+36>>2]=16;c[a+40>>2]=0;c[a+32>>2]=$n(64)|0;return}function ag(a){a=a|0;ao(c[a+32>>2]|0);ao(c[a+44>>2]|0);jg(a);return}function bg(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=lg(a,b,d)|0;d=a+28|0;c[d>>2]=(c[d>>2]|0)+1;d=a+40|0;b=c[d>>2]|0;f=a+36|0;g=a+32|0;if((b|0)==(c[f>>2]|0)){a=c[g>>2]|0;c[f>>2]=b<<1;f=$n(b<<3)|0;c[g>>2]=f;Bp(f| +0,a|0,c[d>>2]<<2|0)|0;ao(a);h=c[d>>2]|0}else h=b;c[(c[g>>2]|0)+(h<<2)>>2]=e;c[d>>2]=(c[d>>2]|0)+1;return e|0}function cg(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;d=a+40|0;e=c[d>>2]|0;if((e|0)>0){f=c[a+32>>2]|0;g=e;e=0;while(1){h=f+(e<<2)|0;if((c[h>>2]|0)==(b|0)){c[h>>2]=-1;i=c[d>>2]|0}else i=g;e=e+1|0;if((e|0)>=(i|0))break;else g=i}}i=a+28|0;c[i>>2]=(c[i>>2]|0)+-1;ng(a,b);return}function dg(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;if(!(pg(a,b,d,e)|0))return;e=a+40|0;d=c[e>>2]|0;f=a+36| +0;g=a+32|0;if((d|0)==(c[f>>2]|0)){a=c[g>>2]|0;c[f>>2]=d<<1;f=$n(d<<3)|0;c[g>>2]=f;Bp(f|0,a|0,c[e>>2]<<2|0)|0;ao(a);h=c[e>>2]|0}else h=d;c[(c[g>>2]|0)+(h<<2)>>2]=b;c[e>>2]=(c[e>>2]|0)+1;return}function eg(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;d=a+40|0;e=c[d>>2]|0;f=a+36|0;g=a+32|0;if((e|0)==(c[f>>2]|0)){a=c[g>>2]|0;c[f>>2]=e<<1;f=$n(e<<3)|0;c[g>>2]=f;Bp(f|0,a|0,c[d>>2]<<2|0)|0;ao(a);h=c[d>>2]|0}else h=e;c[(c[g>>2]|0)+(h<<2)>>2]=b;c[d>>2]=(c[d>>2]|0)+1;return}function fg(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;d=a+56|0;e=c[d>>2]|0;if((e|0)==(b|0))return 1;f=a+52|0;g=c[f>>2]|0;h=a+48|0;i=a+44|0;if((g|0)==(c[h>>2]|0)){a=c[i>>2]|0;c[h>>2]=g<<1;h=$n(g<<4)|0;c[i>>2]=h;Bp(h|0,a|0,c[f>>2]<<3|0)|0;ao(a);j=c[d>>2]|0;k=c[f>>2]|0}else{j=e;k=g}g=c[i>>2]|0;c[g+(k<<3)>>2]=(j|0)>(b|0)?b:j;c[g+(k<<3)+4>>2]=(j|0)<(b|0)?b:j;c[f>>2]=k+1;return 1}function gg(a,b,d,e,f){a=a|0;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;h=a+60|0;c[h>>2]=0;i=b+12|0;j=+g[d+12>>2]; +k=+g[i>>2];l=+g[d+8>>2];m=+g[b+16>>2];n=e+12|0;o=+g[f+12>>2];p=+g[n>>2];q=+g[f+8>>2];r=+g[e+16>>2];s=+g[f>>2]+(o*p-q*r)-(+g[d>>2]+(j*k-l*m));t=p*q+o*r+ +g[f+4>>2]-(k*l+j*m+ +g[d+4>>2]);m=+g[b+8>>2]+ +g[e+8>>2];if(s*s+t*t>m*m)return;c[a+56>>2]=0;e=i;i=c[e+4>>2]|0;b=a+48|0;c[b>>2]=c[e>>2];c[b+4>>2]=i;g[a+40>>2]=0;g[a+44>>2]=0;c[h>>2]=1;h=n;n=c[h+4>>2]|0;i=a;c[i>>2]=c[h>>2];c[i+4>>2]=n;c[a+16>>2]=0;return}function hg(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var 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;h=a+60|0;c[h>>2]=0;i=e+12|0;j=+g[f+12>>2];l=+g[i>>2];m=+g[f+8>>2];n=+g[e+16>>2];o=+g[f>>2]+(j*l-m*n)-+g[d>>2];p=l*m+j*n+ +g[f+4>>2]-+g[d+4>>2];n=+g[d+12>>2];j=+g[d+8>>2];m=o*n+p*j;l=n*p-o*j;j=+g[b+8>>2]+ +g[e+8>>2];e=c[b+148>>2]|0;do if((e|0)>0){d=0;f=0;o=-3.4028234663852886E38;while(1){p=(m-+g[b+20+(d<<3)>>2])*+g[b+84+(d<<3)>>2]+(l-+g[b+20+(d<<3)+4>>2])*+g[b+84+(d<<3)+4>>2];if(p>j){q=19;break}r=p>o;n=r?p:o;s=r?d:f;d=d+1|0;if((d|0)>=(e|0)){t=s;u=n;q=4; +break}else{f=s;o=n}}if((q|0)==4){v=t;w=u<1.1920928955078125E-7;break}else if((q|0)==19)return}else{v=0;w=1}while(0);q=v+1|0;t=(q|0)<(e|0)?q:0;q=c[b+20+(v<<3)>>2]|0;e=c[b+20+(v<<3)+4>>2]|0;f=c[b+20+(t<<3)>>2]|0;d=c[b+20+(t<<3)+4>>2]|0;if(w){c[h>>2]=1;c[a+56>>2]=1;w=b+84+(v<<3)|0;t=c[w+4>>2]|0;s=a+40|0;c[s>>2]=c[w>>2];c[s+4>>2]=t;u=(c[k>>2]=q,+g[k>>2]);o=u+(c[k>>2]=f,+g[k>>2]);u=(c[k>>2]=e,+g[k>>2]);n=(u+(c[k>>2]=d,+g[k>>2]))*.5;g[a+48>>2]=o*.5;g[a+52>>2]=n;t=i;s=c[t+4>>2]|0;w=a;c[w>>2]=c[t>>2];c[w+ +4>>2]=s;c[a+16>>2]=0;return}n=(c[k>>2]=q,+g[k>>2]);o=m-n;u=(c[k>>2]=e,+g[k>>2]);p=l-u;x=(c[k>>2]=f,+g[k>>2]);y=(c[k>>2]=d,+g[k>>2]);z=m-x;A=l-y;if(o*(x-n)+p*(y-u)<=0){B=o*o+p*p;if(B>j*j)return;c[h>>2]=1;c[a+56>>2]=1;s=a+40|0;g[s>>2]=o;w=a+44|0;g[w>>2]=p;C=+O(+B);if(!(C<1.1920928955078125E-7)){B=1/C;g[s>>2]=o*B;g[w>>2]=p*B}c[a+48>>2]=q;c[a+52>>2]=e;e=i;q=c[e+4>>2]|0;w=a;c[w>>2]=c[e>>2];c[w+4>>2]=q;c[a+16>>2]=0;return}if(!(z*(n-x)+A*(u-y)<=0)){B=(n+x)*.5;x=(u+y)*.5;q=b+84+(v<<3)|0;if((m-B)*+g[q>>2]+ +(l-x)*+g[b+84+(v<<3)+4>>2]>j)return;c[h>>2]=1;c[a+56>>2]=1;v=q;q=c[v+4>>2]|0;b=a+40|0;c[b>>2]=c[v>>2];c[b+4>>2]=q;g[a+48>>2]=B;g[a+52>>2]=x;q=i;b=c[q+4>>2]|0;v=a;c[v>>2]=c[q>>2];c[v+4>>2]=b;c[a+16>>2]=0;return}x=z*z+A*A;if(x>j*j)return;c[h>>2]=1;c[a+56>>2]=1;h=a+40|0;g[h>>2]=z;b=a+44|0;g[b>>2]=A;j=+O(+x);if(!(j<1.1920928955078125E-7)){x=1/j;g[h>>2]=z*x;g[b>>2]=A*x}c[a+48>>2]=f;c[a+52>>2]=d;d=i;i=c[d+4>>2]|0;f=a;c[f>>2]=c[d>>2];c[f+4>>2]=i;c[a+16>>2]=0;return}function ig(a){a=a|0;var b=0,d=0,e=0,f= +0,g=0,h=0,i=0,j=0;c[a>>2]=-1;b=a+12|0;c[b>>2]=16;c[a+8>>2]=0;d=$n(576)|0;e=a+4|0;c[e>>2]=d;xp(d|0,0,(c[b>>2]|0)*36|0)|0;d=c[b>>2]|0;if((d|0)>1){f=c[e>>2]|0;g=0;do{h=g;g=g+1|0;c[f+(h*36|0)+20>>2]=g;c[f+(h*36|0)+32>>2]=-1;h=(c[b>>2]|0)+-1|0}while((g|0)<(h|0));i=h;j=f}else{i=d+-1|0;j=c[e>>2]|0}c[j+(i*36|0)+20>>2]=-1;c[j+(((c[b>>2]|0)+-1|0)*36|0)+32>>2]=-1;c[a+16>>2]=0;c[a+20>>2]=0;c[a+24>>2]=0;return}function jg(a){a=a|0;ao(c[a+4>>2]|0);return}function kg(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;b=a+16|0;d=c[b>>2]|0;e=a+4|0;if((d|0)==-1){f=c[e>>2]|0;g=a+12|0;h=c[g>>2]|0;c[g>>2]=h<<1;i=$n(h*72|0)|0;c[e>>2]=i;h=a+8|0;Bp(i|0,f|0,(c[h>>2]|0)*36|0)|0;ao(f);f=c[h>>2]|0;i=(c[g>>2]|0)+-1|0;j=c[e>>2]|0;if((f|0)<(i|0)){k=f;do{f=k;k=k+1|0;c[j+(f*36|0)+20>>2]=k;c[j+(f*36|0)+32>>2]=-1;f=(c[g>>2]|0)+-1|0}while((k|0)<(f|0));l=f}else l=i;c[j+(l*36|0)+20>>2]=-1;c[j+(((c[g>>2]|0)+-1|0)*36|0)+32>>2]=-1;g=c[h>>2]|0;c[b>>2]=g;m=h;n=j;o=g}else{m=a+8|0;n=c[e>>2]|0;o=d}d=n+(o*36|0)+20|0;c[b>> +2]=c[d>>2];c[d>>2]=-1;c[n+(o*36|0)+24>>2]=-1;c[n+(o*36|0)+28>>2]=-1;c[n+(o*36|0)+32>>2]=0;c[n+(o*36|0)+16>>2]=0;c[m>>2]=(c[m>>2]|0)+1;return o|0}function lg(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,h=0,i=0;e=kg(a)|0;f=a+4|0;h=c[f>>2]|0;i=+g[b+4>>2]+-.10000000149011612;g[h+(e*36|0)>>2]=+g[b>>2]+-.10000000149011612;g[h+(e*36|0)+4>>2]=i;h=c[f>>2]|0;i=+g[b+12>>2]+.10000000149011612;g[h+(e*36|0)+8>>2]=+g[b+8>>2]+.10000000149011612;g[h+(e*36|0)+12>>2]=i;h=c[f>>2]|0;c[h+(e*36|0)+16>>2]=d;c[h+(e*36|0)+32>>2]= +0;mg(a,e);return e|0}function mg(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,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;d=a+24|0;c[d>>2]=(c[d>>2]|0)+1;d=c[a>>2]|0;if((d|0)==-1){c[a>>2]=b;c[(c[a+4>>2]|0)+(b*36|0)+20>>2]=-1;return}e=a+4|0;f=c[e>>2]|0;h=+g[f+(b*36|0)>>2];i=+g[f+(b*36|0)+4>>2];j=+g[f+(b*36|0)+8>>2];k=+g[f+(b*36|0)+12>>2];l=c[f+(d*36|0)+24>>2]|0;a:do if((l|0)==-1)m=d;else{n=l;o=d;while(1){p=c[f+(o*36|0)+28>>2]|0;q=+g[f+(o*36|0)+8>>2];r=+g[f+ +(o*36|0)>>2];s=+g[f+(o*36|0)+12>>2];t=+g[f+(o*36|0)+4>>2];u=((q>j?q:j)-(rk?s:k)-(t>2];s=h>2];q=i>2];x=j>u?j:u;y=+g[f+(n*36|0)+12>>2];z=k>y?k:y;if((c[f+(n*36|0)+24>>2]|0)==-1)A=(x-s+(z-q))*2;else A=(x-s+(z-q))*2-(u-t+(y-r))*2;r=w+A;y=+g[f+(p*36|0)>>2];t=h>2];q=i>2];s=j>z?j:z;x=+g[f+(p*36|0)+12>>2];B=k>x?k:x;if((c[f+(p*36|0)+24>>2]|0)== +-1)C=(s-t+(B-q))*2;else C=(s-t+(B-q))*2-(z-y+(x-u))*2;u=w+C;if(v>2]|0;if((n|0)==-1){m=D;break}else o=D}}while(0);d=c[f+(m*36|0)+20>>2]|0;f=kg(a)|0;l=c[e>>2]|0;c[l+(f*36|0)+20>>2]=d;c[l+(f*36|0)+16>>2]=0;C=+g[l+(m*36|0)>>2];A=+g[l+(m*36|0)+4>>2];g[l+(f*36|0)>>2]=h>2]=i>2];i=+g[l+(m*36|0)+12>>2];g[l+(f*36|0)+8>>2]=j>A?j:A;g[l+(f*36|0)+12>>2]=k>i?k:i;l=c[e>>2]|0;c[l+(f*36|0)+32>>2]=(c[l+(m*36|0)+32>>2]|0)+ +1;if((d|0)==-1){c[l+(f*36|0)+24>>2]=m;c[l+(f*36|0)+28>>2]=b;c[l+(m*36|0)+20>>2]=f;o=l+(b*36|0)+20|0;c[o>>2]=f;c[a>>2]=f;E=c[o>>2]|0}else{o=l+(d*36|0)+24|0;if((c[o>>2]|0)==(m|0))c[o>>2]=f;else c[l+(d*36|0)+28>>2]=f;c[l+(f*36|0)+24>>2]=m;c[l+(f*36|0)+28>>2]=b;c[l+(m*36|0)+20>>2]=f;c[l+(b*36|0)+20>>2]=f;E=f}if((E|0)==-1)return;else F=E;do{E=qg(a,F)|0;f=c[e>>2]|0;b=c[f+(E*36|0)+24>>2]|0;l=c[f+(E*36|0)+28>>2]|0;m=c[f+(b*36|0)+32>>2]|0;d=c[f+(l*36|0)+32>>2]|0;c[f+(E*36|0)+32>>2]=((m|0)>(d|0)?m:d)+1;i=+g[f+ +(b*36|0)>>2];k=+g[f+(l*36|0)>>2];A=+g[f+(b*36|0)+4>>2];j=+g[f+(l*36|0)+4>>2];g[f+(E*36|0)>>2]=i>2]=A>2];A=+g[f+(l*36|0)+8>>2];k=+g[f+(b*36|0)+12>>2];i=+g[f+(l*36|0)+12>>2];g[f+(E*36|0)+8>>2]=j>A?j:A;g[f+(E*36|0)+12>>2]=k>i?k:i;F=c[(c[e>>2]|0)+(E*36|0)+20>>2]|0}while((F|0)!=-1);return}function ng(a,b){a=a|0;b=b|0;var d=0,e=0;og(a,b);d=a+16|0;e=c[a+4>>2]|0;c[e+(b*36|0)+20>>2]=c[d>>2];c[e+(b*36|0)+32>>2]=-1;c[d>>2]=b;b=a+8|0;c[b>>2]=(c[b>>2]|0)+-1;return} +function og(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;if((c[a>>2]|0)==(b|0)){c[a>>2]=-1;return}d=a+4|0;e=c[d>>2]|0;f=c[e+(b*36|0)+20>>2]|0;h=e+(f*36|0)+20|0;i=c[h>>2]|0;j=c[e+(f*36|0)+24>>2]|0;if((j|0)==(b|0))k=c[e+(f*36|0)+28>>2]|0;else k=j;if((i|0)==-1){c[a>>2]=k;c[e+(k*36|0)+20>>2]=-1;j=a+16|0;c[h>>2]=c[j>>2];c[e+(f*36|0)+32>>2]=-1;c[j>>2]=f;j=a+8|0;c[j>>2]=(c[j>>2]|0)+-1;return}j=e+(i*36|0)+24|0;if((c[j>>2]|0)==(f|0))c[j>>2]=k;else c[e+(i*36|0)+28>>2]=k;c[e+(k*36|0)+20>> +2]=i;k=a+16|0;c[h>>2]=c[k>>2];c[e+(f*36|0)+32>>2]=-1;c[k>>2]=f;f=a+8|0;c[f>>2]=(c[f>>2]|0)+-1;f=i;do{i=qg(a,f)|0;k=c[d>>2]|0;e=c[k+(i*36|0)+24>>2]|0;h=c[k+(i*36|0)+28>>2]|0;l=+g[k+(e*36|0)>>2];m=+g[k+(h*36|0)>>2];n=+g[k+(e*36|0)+4>>2];o=+g[k+(h*36|0)+4>>2];g[k+(i*36|0)>>2]=l>2]=n>2];n=+g[k+(h*36|0)+8>>2];m=+g[k+(e*36|0)+12>>2];l=+g[k+(h*36|0)+12>>2];g[k+(i*36|0)+8>>2]=o>n?o:n;g[k+(i*36|0)+12>>2]=m>l?m:l;k=c[d>>2]|0;j=c[k+(e*36|0)+32>>2]|0;e=c[k+(h*36| +0)+32>>2]|0;c[k+(i*36|0)+32>>2]=((j|0)>(e|0)?j:e)+1;f=c[k+(i*36|0)+20>>2]|0}while((f|0)!=-1);return}function pg(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;f=a+4|0;h=c[f>>2]|0;if(+g[h+(b*36|0)>>2]<=+g[d>>2]){i=d+4|0;if((+g[h+(b*36|0)+4>>2]<=+g[i>>2]?+g[d+8>>2]<=+g[h+(b*36|0)+8>>2]:0)?+g[d+12>>2]<=+g[h+(b*36|0)+12>>2]:0){j=0;return j|0}else k=i}else k=d+4|0;og(a,b);l=+g[d>>2]+-.10000000149011612;m=+g[k>>2]+-.10000000149011612;n=+g[d+8>>2]+.10000000149011612;o=+g[d+ +12>>2]+.10000000149011612;p=+g[e>>2]*2;q=+g[e+4>>2]*2;e=p<0;d=q<0;k=c[f>>2]|0;g[k+(b*36|0)>>2]=e?l+p:l;g[k+(b*36|0)+4>>2]=d?m+q:m;g[k+(b*36|0)+8>>2]=e?n:n+p;g[k+(b*36|0)+12>>2]=d?o:o+q;mg(a,b);j=1;return j|0}function qg(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,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;d=c[a+4>>2]|0;e=d+(b*36|0)|0;f=d+(b*36|0)+24|0;h=c[f>>2]|0;if((h|0)==-1){i=b;return i|0}j=d+(b*36|0)+32|0;if((c[j>>2]|0)<2){i=b;return i| +0}k=d+(b*36|0)+28|0;l=c[k>>2]|0;m=d+(h*36|0)|0;n=d+(l*36|0)|0;o=d+(l*36|0)+32|0;p=d+(h*36|0)+32|0;q=(c[o>>2]|0)-(c[p>>2]|0)|0;if((q|0)>1){r=d+(l*36|0)+24|0;s=c[r>>2]|0;t=d+(l*36|0)+28|0;u=c[t>>2]|0;v=d+(s*36|0)|0;w=d+(u*36|0)|0;c[r>>2]=b;r=d+(b*36|0)+20|0;x=d+(l*36|0)+20|0;c[x>>2]=c[r>>2];c[r>>2]=l;r=c[x>>2]|0;do if((r|0)!=-1){x=d+(r*36|0)+24|0;if((c[x>>2]|0)==(b|0)){c[x>>2]=l;break}else{c[d+(r*36|0)+28>>2]=l;break}}else c[a>>2]=l;while(0);r=d+(s*36|0)+32|0;x=d+(u*36|0)+32|0;if((c[r>>2]|0)>(c[x>> +2]|0)){c[t>>2]=s;c[k>>2]=u;c[d+(u*36|0)+20>>2]=b;y=+g[m>>2];z=+g[w>>2];A=y>2];y=+g[d+(u*36|0)+4>>2];B=z>2]=A;g[d+(b*36|0)+4>>2]=B;y=+g[d+(h*36|0)+8>>2];z=+g[d+(u*36|0)+8>>2];C=+g[d+(h*36|0)+12>>2];D=+g[d+(u*36|0)+12>>2];E=d+(b*36|0)+8|0;g[E>>2]=y>z?y:z;F=d+(b*36|0)+12|0;g[F>>2]=C>D?C:D;D=+g[v>>2];C=+g[d+(s*36|0)+4>>2];g[n>>2]=A>2]=B>2];B=+g[d+(s*36|0)+8>>2];D=+g[F>>2];A=+g[d+(s*36|0)+12>>2];g[d+(l*36|0)+8>>2]=C>B?C:B;g[d+(l*36| +0)+12>>2]=D>A?D:A;F=c[p>>2]|0;E=c[x>>2]|0;G=((F|0)>(E|0)?F:E)+1|0;c[j>>2]=G;E=c[r>>2]|0;H=(G|0)>(E|0)?G:E}else{c[t>>2]=u;c[k>>2]=s;c[d+(s*36|0)+20>>2]=b;A=+g[m>>2];D=+g[v>>2];B=A>2];A=+g[d+(s*36|0)+4>>2];C=D>2]=B;g[d+(b*36|0)+4>>2]=C;A=+g[d+(h*36|0)+8>>2];D=+g[d+(s*36|0)+8>>2];z=+g[d+(h*36|0)+12>>2];y=+g[d+(s*36|0)+12>>2];s=d+(b*36|0)+8|0;g[s>>2]=A>D?A:D;v=d+(b*36|0)+12|0;g[v>>2]=z>y?z:y;y=+g[w>>2];z=+g[d+(u*36|0)+4>>2];g[n>>2]=B>2]=C>2];C=+g[d+(u*36|0)+8>>2];y=+g[v>>2];B=+g[d+(u*36|0)+12>>2];g[d+(l*36|0)+8>>2]=z>C?z:C;g[d+(l*36|0)+12>>2]=y>B?y:B;u=c[p>>2]|0;v=c[r>>2]|0;r=((u|0)>(v|0)?u:v)+1|0;c[j>>2]=r;v=c[x>>2]|0;H=(r|0)>(v|0)?r:v}c[o>>2]=H+1;i=l;return i|0}if((q|0)>=-1){i=b;return i|0}q=d+(h*36|0)+24|0;H=c[q>>2]|0;v=d+(h*36|0)+28|0;r=c[v>>2]|0;x=d+(H*36|0)|0;u=d+(r*36|0)|0;c[q>>2]=b;q=d+(b*36|0)+20|0;s=d+(h*36|0)+20|0;c[s>>2]=c[q>>2];c[q>>2]=h;q=c[s>>2]|0;do if((q|0)!=-1){s=d+(q*36|0)+24|0;if((c[s>>2]|0)==(b|0)){c[s>> +2]=h;break}else{c[d+(q*36|0)+28>>2]=h;break}}else c[a>>2]=h;while(0);a=d+(H*36|0)+32|0;q=d+(r*36|0)+32|0;if((c[a>>2]|0)>(c[q>>2]|0)){c[v>>2]=H;c[f>>2]=r;c[d+(r*36|0)+20>>2]=b;B=+g[n>>2];y=+g[u>>2];C=B>2];B=+g[d+(r*36|0)+4>>2];z=y>2]=C;g[d+(b*36|0)+4>>2]=z;B=+g[d+(l*36|0)+8>>2];y=+g[d+(r*36|0)+8>>2];D=+g[d+(l*36|0)+12>>2];A=+g[d+(r*36|0)+12>>2];s=d+(b*36|0)+8|0;g[s>>2]=B>y?B:y;w=d+(b*36|0)+12|0;g[w>>2]=D>A?D:A;A=+g[x>>2];D=+g[d+(H*36|0)+4>>2];g[m>>2]=C>2]=z>2];z=+g[d+(H*36|0)+8>>2];A=+g[w>>2];C=+g[d+(H*36|0)+12>>2];g[d+(h*36|0)+8>>2]=D>z?D:z;g[d+(h*36|0)+12>>2]=A>C?A:C;w=c[o>>2]|0;s=c[q>>2]|0;k=((w|0)>(s|0)?w:s)+1|0;c[j>>2]=k;s=c[a>>2]|0;I=(k|0)>(s|0)?k:s}else{c[v>>2]=r;c[f>>2]=H;c[d+(H*36|0)+20>>2]=b;C=+g[n>>2];A=+g[x>>2];z=C>2];C=+g[d+(H*36|0)+4>>2];D=A>2]=z;g[d+(b*36|0)+4>>2]=D;C=+g[d+(l*36|0)+8>>2];A=+g[d+(H*36|0)+8>>2];y=+g[d+(l*36|0)+12>>2];B=+g[d+(H*36|0)+12>>2];H=d+(b*36|0)+8| +0;g[H>>2]=C>A?C:A;l=d+(b*36|0)+12|0;g[l>>2]=y>B?y:B;B=+g[u>>2];y=+g[d+(r*36|0)+4>>2];g[m>>2]=z>2]=D>2];D=+g[d+(r*36|0)+8>>2];B=+g[l>>2];z=+g[d+(r*36|0)+12>>2];g[d+(h*36|0)+8>>2]=y>D?y:D;g[d+(h*36|0)+12>>2]=B>z?B:z;d=c[o>>2]|0;o=c[a>>2]|0;a=((d|0)>(o|0)?d:o)+1|0;c[j>>2]=a;j=c[q>>2]|0;I=(a|0)>(j|0)?a:j}c[p>>2]=I+1;i=h;return i|0}function rg(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,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;i=b+60|0;c[i>>2]=0;j=f+12|0;l=+g[h+12>>2];m=+g[j>>2];n=+g[h+8>>2];o=+g[f+16>>2];p=+g[h>>2]+(l*m-n*o)-+g[e>>2];q=m*n+l*o+ +g[h+4>>2]-+g[e+4>>2];o=+g[e+12>>2];l=+g[e+8>>2];n=p*o+q*l;m=o*q-p*l;e=c[d+12>>2]|0;h=c[d+16>>2]|0;r=c[d+20>>2]|0;s=c[d+24>>2]|0;l=(c[k>>2]=r,+g[k>>2]);p=(c[k>>2]=e,+g[k>>2]);q=l-p;o=(c[k>>2]=s,+g[k>>2]);t=(c[k>>2]=h,+g[k>>2]);u=o-t;v=q*(l-n)+u*(o-m);w=n-p;x=m-t;y=w*q+x*u;z=+g[d+8>>2]+ +g[f+8>>2];if(y<=0){if(w*w+x*x>z*z)return;if((a[d+44>>0]|0)!=0?(p-n)*(p-+g[d+28>> +2])+(t-m)*(t-+g[d+32>>2])>0:0)return;c[i>>2]=1;c[b+56>>2]=0;g[b+40>>2]=0;g[b+44>>2]=0;c[b+48>>2]=e;c[b+52>>2]=h;f=b+16|0;c[f>>2]=0;a[f>>0]=0;a[f+1>>0]=0;a[f+2>>0]=0;a[f+3>>0]=0;f=j;A=c[f+4>>2]|0;B=b;c[B>>2]=c[f>>2];c[B+4>>2]=A;return}if(!(v<=0)){C=1/(q*q+u*u);D=n-(p*v+l*y)*C;p=m-(t*v+o*y)*C;if(D*D+p*p>z*z)return;p=-u;A=x*q+w*p<0;w=A?-q:q;q=A?u:p;p=+O(+(q*q+w*w));if(p<1.1920928955078125E-7){E=w;F=q}else{u=1/p;E=w*u;F=q*u}c[i>>2]=1;c[b+56>>2]=1;g[b+40>>2]=F;g[b+44>>2]=E;c[b+48>>2]=e;c[b+52>>2]=h;h= +b+16|0;c[h>>2]=0;a[h>>0]=0;a[h+1>>0]=0;a[h+2>>0]=1;a[h+3>>0]=0;h=j;e=c[h+4>>2]|0;A=b;c[A>>2]=c[h>>2];c[A+4>>2]=e;return}E=n-l;n=m-o;if(E*E+n*n>z*z)return;if((a[d+45>>0]|0)!=0?E*(+g[d+36>>2]-l)+n*(+g[d+40>>2]-o)>0:0)return;c[i>>2]=1;c[b+56>>2]=0;g[b+40>>2]=0;g[b+44>>2]=0;c[b+48>>2]=r;c[b+52>>2]=s;s=b+16|0;c[s>>2]=0;a[s>>0]=1;a[s+1>>0]=0;a[s+2>>0]=0;a[s+3>>0]=0;s=j;j=c[s+4>>2]|0;r=b;c[r>>2]=c[s>>2];c[r+4>>2]=j;return}function sg(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,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,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;l=i;i=i+144|0;m=l+128|0;n=l+24|0;o=l+72|0;p=l+48|0;q=l;r=+g[f+12>>2];s=+g[j+8>>2];t=+g[f+8>>2];u=+g[j+12>>2];v=r*s-t*u;w=s*t+r*u;u=+g[j>>2]-+g[f>>2];s=+g[j+4>>2]-+g[f+4>>2];x=r*u+t*s;y=r*s-t*u;f=b+132|0;g[f>>2]= +x;j=b+136|0;g[j>>2]=y;z=b+140|0;g[z>>2]=v;A=b+144|0;g[A>>2]=w;u=+g[h+12>>2];t=+g[h+16>>2];s=x+(w*u-v*t);x=u*v+w*t+y;g[b+148>>2]=s;g[b+152>>2]=x;B=e+28|0;C=c[B>>2]|0;D=c[B+4>>2]|0;B=b+156|0;c[B>>2]=C;c[B+4>>2]=D;B=b+164|0;E=e+12|0;F=c[E>>2]|0;G=c[E+4>>2]|0;E=B;c[E>>2]=F;c[E+4>>2]=G;E=b+172|0;H=e+20|0;I=c[H>>2]|0;J=c[H+4>>2]|0;H=E;c[H>>2]=I;c[H+4>>2]=J;H=e+36|0;K=c[H>>2]|0;L=c[H+4>>2]|0;H=b+180|0;c[H>>2]=K;c[H+4>>2]=L;H=(a[e+44>>0]|0)!=0;M=(a[e+45>>0]|0)==0;y=(c[k>>2]=I,+g[k>>2]);t=(c[k>>2]=F,+g[k>> +2]);w=y-t;v=(c[k>>2]=J,+g[k>>2]);J=b+168|0;u=(c[k>>2]=G,+g[k>>2]);r=v-u;N=+O(+(w*w+r*r));P=(c[k>>2]=C,+g[k>>2]);Q=(c[k>>2]=D,+g[k>>2]);R=(c[k>>2]=K,+g[k>>2]);S=(c[k>>2]=L,+g[k>>2]);if(N<1.1920928955078125E-7){T=w;U=r}else{V=1/N;T=w*V;U=r*V}L=b+196|0;V=-T;g[L>>2]=U;K=b+200|0;g[K>>2]=V;r=(s-t)*U+(x-u)*V;if(H){V=t-P;t=u-Q;u=+O(+(V*V+t*t));if(u<1.1920928955078125E-7){W=V;X=t}else{w=1/u;W=V*w;X=t*w}w=-W;g[b+188>>2]=X;g[b+192>>2]=w;Y=U*W-T*X>=0;Z=(s-P)*X+(x-Q)*w}else{Y=0;Z=0}do if(M){if(!H){D=r>=0;a[b+ +248>>0]=D&1;C=b+212|0;if(D){D=L;G=c[D>>2]|0;F=c[D+4>>2]|0;D=C;c[D>>2]=G;c[D+4>>2]=F;w=-(c[k>>2]=G,+g[k>>2]);g[b+228>>2]=w;g[b+232>>2]=T;g[b+236>>2]=w;g[b+240>>2]=T;break}else{g[C>>2]=-U;g[b+216>>2]=T;C=L;G=c[C>>2]|0;F=c[C+4>>2]|0;C=b+228|0;c[C>>2]=G;c[C+4>>2]=F;C=b+236|0;c[C>>2]=G;c[C+4>>2]=F;break}}F=Z>=0;C=r>=0;if(Y){G=C|F;a[b+248>>0]=G&1;D=b+212|0;if(G){G=L;I=c[G>>2]|0;e=c[G+4>>2]|0;G=D;c[G>>2]=I;c[G+4>>2]=e;e=b+188|0;G=c[e+4>>2]|0;_=b+228|0;c[_>>2]=c[e>>2];c[_+4>>2]=G;g[b+236>>2]=-(c[k>>2]=I, ++g[k>>2]);g[b+240>>2]=T;break}else{g[D>>2]=-U;g[b+216>>2]=T;D=L;I=c[D>>2]|0;G=c[D+4>>2]|0;D=b+228|0;c[D>>2]=I;c[D+4>>2]=G;g[b+236>>2]=-(c[k>>2]=I,+g[k>>2]);g[b+240>>2]=T;break}}else{I=C&F;a[b+248>>0]=I&1;F=b+212|0;if(I){I=L;C=c[I>>2]|0;G=c[I+4>>2]|0;I=F;c[I>>2]=C;c[I+4>>2]=G;I=b+228|0;c[I>>2]=C;c[I+4>>2]=G;g[b+236>>2]=-(c[k>>2]=C,+g[k>>2]);g[b+240>>2]=T;break}else{g[F>>2]=-U;g[b+216>>2]=T;F=L;C=c[F+4>>2]|0;G=b+228|0;c[G>>2]=c[F>>2];c[G+4>>2]=C;w=-+g[b+192>>2];g[b+236>>2]=-+g[b+188>>2];g[b+240>>2]= +w;break}}}else{w=R-y;Q=S-v;X=+O(+(w*w+Q*Q));if(X<1.1920928955078125E-7){$=w;aa=Q}else{P=1/X;$=w*P;aa=Q*P}P=-$;g[b+204>>2]=aa;g[b+208>>2]=P;C=T*aa-U*$>0;Q=(s-y)*aa+(x-v)*P;if(!H){G=r>=0;F=Q>=0;if(C){I=G|F;a[b+248>>0]=I&1;D=b+212|0;if(I){I=L;_=c[I>>2]|0;e=c[I+4>>2]|0;I=D;c[I>>2]=_;c[I+4>>2]=e;g[b+228>>2]=-(c[k>>2]=_,+g[k>>2]);g[b+232>>2]=T;_=b+204|0;e=c[_+4>>2]|0;I=b+236|0;c[I>>2]=c[_>>2];c[I+4>>2]=e;break}else{P=-U;g[D>>2]=P;g[b+216>>2]=T;g[b+228>>2]=P;g[b+232>>2]=T;D=L;e=c[D+4>>2]|0;I=b+236|0;c[I>> +2]=c[D>>2];c[I+4>>2]=e;break}}else{e=G&F;a[b+248>>0]=e&1;F=b+212|0;if(e){e=L;G=c[e>>2]|0;I=c[e+4>>2]|0;e=F;c[e>>2]=G;c[e+4>>2]=I;g[b+228>>2]=-(c[k>>2]=G,+g[k>>2]);g[b+232>>2]=T;e=b+236|0;c[e>>2]=G;c[e+4>>2]=I;break}else{g[F>>2]=-U;g[b+216>>2]=T;P=-+g[b+208>>2];g[b+228>>2]=-+g[b+204>>2];g[b+232>>2]=P;F=L;I=c[F+4>>2]|0;e=b+236|0;c[e>>2]=c[F>>2];c[e+4>>2]=I;break}}}if(Y&C){I=r>=0|Z>=0|Q>=0;a[b+248>>0]=I&1;e=b+212|0;if(I){I=L;F=c[I+4>>2]|0;G=e;c[G>>2]=c[I>>2];c[G+4>>2]=F;F=b+188|0;G=c[F+4>>2]|0;I=b+228| +0;c[I>>2]=c[F>>2];c[I+4>>2]=G;G=b+204|0;I=c[G+4>>2]|0;F=b+236|0;c[F>>2]=c[G>>2];c[F+4>>2]=I;break}else{P=-U;g[e>>2]=P;g[b+216>>2]=T;g[b+228>>2]=P;g[b+232>>2]=T;g[b+236>>2]=P;g[b+240>>2]=T;break}}if(Y){if(!(Z>=0)){e=r>=0&Q>=0;a[b+248>>0]=e&1;I=b+212|0;if(e)ba=I;else{P=-U;g[I>>2]=P;g[b+216>>2]=T;g[b+228>>2]=-aa;g[b+232>>2]=$;g[b+236>>2]=P;g[b+240>>2]=T;break}}else{a[b+248>>0]=1;ba=b+212|0}I=L;e=c[I+4>>2]|0;F=ba;c[F>>2]=c[I>>2];c[F+4>>2]=e;e=b+188|0;F=c[e+4>>2]|0;I=b+228|0;c[I>>2]=c[e>>2];c[I+4>>2]= +F;F=L;I=c[F+4>>2]|0;e=b+236|0;c[e>>2]=c[F>>2];c[e+4>>2]=I;break}if(!C){C=r>=0&Z>=0&Q>=0;a[b+248>>0]=C&1;I=b+212|0;if(C){C=L;e=c[C>>2]|0;F=c[C+4>>2]|0;C=I;c[C>>2]=e;c[C+4>>2]=F;C=b+228|0;c[C>>2]=e;c[C+4>>2]=F;C=b+236|0;c[C>>2]=e;c[C+4>>2]=F;break}else{g[I>>2]=-U;g[b+216>>2]=T;g[b+228>>2]=-aa;g[b+232>>2]=$;P=-+g[b+192>>2];g[b+236>>2]=-+g[b+188>>2];g[b+240>>2]=P;break}}if(!(Q>=0)){I=r>=0&Z>=0;a[b+248>>0]=I&1;F=b+212|0;if(I)ca=F;else{Q=-U;g[F>>2]=Q;g[b+216>>2]=T;g[b+228>>2]=Q;g[b+232>>2]=T;Q=-+g[b+192>> +2];g[b+236>>2]=-+g[b+188>>2];g[b+240>>2]=Q;break}}else{a[b+248>>0]=1;ca=b+212|0}F=L;I=c[F+4>>2]|0;C=ca;c[C>>2]=c[F>>2];c[C+4>>2]=I;I=L;C=c[I+4>>2]|0;F=b+228|0;c[F>>2]=c[I>>2];c[F+4>>2]=C;C=b+204|0;F=c[C+4>>2]|0;I=b+236|0;c[I>>2]=c[C>>2];c[I+4>>2]=F}while(0);ca=h+148|0;ba=c[ca>>2]|0;Y=b+128|0;c[Y>>2]=ba;if((ba|0)>0){H=0;do{T=+g[A>>2];U=+g[h+20+(H<<3)>>2];Z=+g[z>>2];r=+g[h+20+(H<<3)+4>>2];$=U*Z+T*r+ +g[j>>2];g[b+(H<<3)>>2]=+g[f>>2]+(T*U-Z*r);g[b+(H<<3)+4>>2]=$;$=+g[A>>2];r=+g[h+84+(H<<3)>>2];Z=+g[z>> +2];U=+g[h+84+(H<<3)+4>>2];g[b+64+(H<<3)>>2]=$*r-Z*U;g[b+64+(H<<3)+4>>2]=r*Z+$*U;H=H+1|0}while((H|0)<(c[ca>>2]|0));da=c[Y>>2]|0}else da=ba;ba=b+244|0;g[ba>>2]=.019999999552965164;ca=d+60|0;c[ca>>2]=0;H=b+248|0;if((da|0)<=0){i=l;return}U=+g[b+164>>2];$=+g[J>>2];Z=+g[b+212>>2];r=+g[b+216>>2];T=3.4028234663852886E38;J=0;while(1){aa=Z*(+g[b+(J<<3)>>2]-U)+r*(+g[b+(J<<3)+4>>2]-$);v=aa.019999999552965164){i=l;return}tg(m,b);da=c[m>>2]|0;if(da){T= ++g[m+8>>2];if(T>+g[ba>>2]){i=l;return}if(T>ea*.9800000190734863+.0010000000474974513){J=c[m+4>>2]|0;m=d+56|0;if((da|0)==1){fa=o;ga=n;ha=m;ia=60}else{c[m>>2]=2;m=B;da=c[m+4>>2]|0;M=n;c[M>>2]=c[m>>2];c[M+4>>2]=da;da=n+8|0;a[da>>0]=0;M=J&255;a[da+1>>0]=M;a[da+2>>0]=0;a[da+3>>0]=1;da=E;m=c[da+4>>2]|0;F=n+12|0;c[F>>2]=c[da>>2];c[F+4>>2]=m;m=n+20|0;a[m>>0]=0;a[m+1>>0]=M;a[m+2>>0]=0;a[m+3>>0]=1;c[o>>2]=J;m=J+1|0;M=(m|0)<(c[Y>>2]|0)?m:0;c[o+4>>2]=M;m=o+8|0;F=b+(J<<3)|0;da=c[F>>2]|0;I=c[F+4>>2]|0;F=m;c[F>> +2]=da;c[F+4>>2]=I;F=b+(M<<3)|0;M=c[F>>2]|0;C=c[F+4>>2]|0;F=o+16|0;c[F>>2]=M;c[F+4>>2]=C;F=o+24|0;e=b+64+(J<<3)|0;G=c[e>>2]|0;D=c[e+4>>2]|0;e=F;c[e>>2]=G;c[e+4>>2]=D;ja=C;ka=M;la=I;ma=da;na=m;oa=o;pa=F;qa=0;ra=o;sa=(c[k>>2]=G,+g[k>>2]);ta=D;ua=n;va=J}}else ia=58}else ia=58;if((ia|0)==58){fa=o;ga=n;ha=d+56|0;ia=60}do if((ia|0)==60){c[ha>>2]=1;J=c[Y>>2]|0;if((J|0)>1){ea=+g[b+212>>2];T=+g[b+216>>2];D=0;$=ea*+g[b+64>>2]+T*+g[b+68>>2];G=1;while(1){r=ea*+g[b+64+(G<<3)>>2]+T*+g[b+64+(G<<3)+4>>2];F=r<$;m= +F?G:D;G=G+1|0;if((G|0)>=(J|0)){wa=m;break}else{D=m;$=F?r:$}}}else wa=0;D=wa+1|0;G=(D|0)<(J|0)?D:0;D=b+(wa<<3)|0;F=c[D+4>>2]|0;m=n;c[m>>2]=c[D>>2];c[m+4>>2]=F;F=n+8|0;a[F>>0]=0;a[F+1>>0]=wa;a[F+2>>0]=1;a[F+3>>0]=0;F=b+(G<<3)|0;m=c[F+4>>2]|0;D=n+12|0;c[D>>2]=c[F>>2];c[D+4>>2]=m;m=n+20|0;a[m>>0]=0;a[m+1>>0]=G;a[m+2>>0]=1;a[m+3>>0]=0;if(!(a[H>>0]|0)){c[o>>2]=1;c[o+4>>2]=0;m=o+8|0;G=E;D=c[G>>2]|0;F=c[G+4>>2]|0;G=m;c[G>>2]=D;c[G+4>>2]=F;G=B;da=c[G>>2]|0;I=c[G+4>>2]|0;G=o+16|0;c[G>>2]=da;c[G+4>>2]=I;$=-+g[L>> +2];T=-+g[K>>2];g[o+24>>2]=$;g[o+28>>2]=T;ja=I;ka=da;la=F;ma=D;na=m;oa=o;pa=o+24|0;qa=1;ra=fa;sa=$;ta=(g[k>>2]=T,c[k>>2]|0);ua=ga;va=1;break}else{c[o>>2]=0;c[o+4>>2]=1;m=o+8|0;D=B;F=c[D>>2]|0;da=c[D+4>>2]|0;D=m;c[D>>2]=F;c[D+4>>2]=da;D=E;I=c[D>>2]|0;G=c[D+4>>2]|0;D=o+16|0;c[D>>2]=I;c[D+4>>2]=G;D=o+24|0;M=L;C=c[M>>2]|0;e=c[M+4>>2]|0;M=D;c[M>>2]=C;c[M+4>>2]=e;ja=G;ka=I;la=da;ma=F;na=m;oa=o;pa=D;qa=1;ra=fa;sa=(c[k>>2]=C,+g[k>>2]);ta=e;ua=ga;va=0;break}}while(0);T=(c[k>>2]=ma,+g[k>>2]);$=(c[k>>2]=la,+g[k>> +2]);ea=(c[k>>2]=ka,+g[k>>2]);r=(c[k>>2]=ja,+g[k>>2]);ja=o+32|0;ka=o+28|0;la=o+24|0;U=-sa;c[ja>>2]=ta;g[o+36>>2]=U;ma=o+44|0;Z=(c[k>>2]=ta,+g[k>>2]);v=-Z;g[ma>>2]=v;g[o+48>>2]=sa;ta=o+8|0;ga=o+12|0;aa=Z*T+$*U;g[o+40>>2]=aa;fa=o+52|0;g[fa>>2]=ea*v+sa*r;if((yg(p,ua,ja,aa,va)|0)>=2?(yg(q,p,ma,+g[fa>>2],c[o+4>>2]|0)|0)>=2:0){o=d+40|0;if(qa){qa=pa;pa=c[qa>>2]|0;fa=c[qa+4>>2]|0;qa=o;c[qa>>2]=pa;c[qa+4>>2]=fa;fa=na;na=c[fa>>2]|0;qa=c[fa+4>>2]|0;fa=d+48|0;c[fa>>2]=na;c[fa+4>>2]=qa;aa=(c[k>>2]=na,+g[k>>2]); +r=(c[k>>2]=pa,+g[k>>2]);sa=+g[ga>>2];v=+g[ka>>2];ea=+g[q>>2];U=+g[q+4>>2];$=+g[ba>>2];if(!((ea-aa)*r+(U-sa)*v<=$)){xa=$;ya=0}else{$=ea-+g[f>>2];ea=U-+g[j>>2];U=+g[A>>2];T=+g[z>>2];g[d>>2]=$*U+ea*T;g[d+4>>2]=U*ea-$*T;c[d+16>>2]=c[q+8>>2];xa=+g[ba>>2];ya=1}T=+g[q+12>>2];$=+g[q+16>>2];if(!((T-aa)*r+($-sa)*v<=xa))za=ya;else{xa=T-+g[f>>2];T=$-+g[j>>2];$=+g[A>>2];v=+g[z>>2];g[d+(ya*20|0)>>2]=xa*$+T*v;g[d+(ya*20|0)+4>>2]=$*T-xa*v;c[d+(ya*20|0)+16>>2]=c[q+20>>2];za=ya+1|0}}else{ya=c[oa>>2]|0;oa=h+84+(ya<< +3)|0;z=c[oa+4>>2]|0;A=o;c[A>>2]=c[oa>>2];c[A+4>>2]=z;z=h+20+(ya<<3)|0;ya=c[z+4>>2]|0;h=d+48|0;c[h>>2]=c[z>>2];c[h+4>>2]=ya;v=+g[ta>>2];xa=+g[la>>2];T=+g[ga>>2];$=+g[ka>>2];sa=+g[ba>>2];if(!((+g[q>>2]-v)*xa+(+g[q+4>>2]-T)*$<=sa)){Aa=sa;Ba=0}else{ka=q;ga=c[ka+4>>2]|0;la=d;c[la>>2]=c[ka>>2];c[la+4>>2]=ga;ga=q+8|0;la=d+16|0;a[la+2>>0]=a[ga+3>>0]|0;a[la+3>>0]=a[ga+2>>0]|0;a[la>>0]=a[ga+1>>0]|0;a[la+1>>0]=a[ga>>0]|0;Aa=+g[ba>>2];Ba=1}ba=q+12|0;if(!((+g[ba>>2]-v)*xa+(+g[q+16>>2]-T)*$<=Aa))za=Ba;else{ga= +ba;ba=c[ga+4>>2]|0;la=d+(Ba*20|0)|0;c[la>>2]=c[ga>>2];c[la+4>>2]=ba;ba=q+20|0;q=d+(Ba*20|0)+16|0;a[q+2>>0]=a[ba+3>>0]|0;a[q+3>>0]=a[ba+2>>0]|0;a[q>>0]=a[ba+1>>0]|0;a[q+1>>0]=a[ba>>0]|0;za=Ba+1|0}}c[ca>>2]=za}i=l;return}function tg(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,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;c[a>>2]=0;d=a+4|0;c[d>>2]=-1;e=a+8|0;g[e>>2]=-3.4028234663852886E38;f=+g[b+216>>2];h=+g[b+212>>2];i=c[b+128>>2]|0;if((i|0)<=0)return;j=+g[b+164>> +2];k=+g[b+168>>2];l=+g[b+172>>2];m=+g[b+176>>2];n=+g[b+244>>2];o=b+228|0;p=b+232|0;q=b+236|0;r=b+240|0;s=-3.4028234663852886E38;t=0;while(1){u=+g[b+64+(t<<3)>>2];v=-u;w=-+g[b+64+(t<<3)+4>>2];x=+g[b+(t<<3)>>2];y=+g[b+(t<<3)+4>>2];z=(x-j)*v+(y-k)*w;A=(x-l)*v+(y-m)*w;y=zn){B=y;C=t;break}if(!(f*u+h*w>=0))if(y>s?!((v-+g[o>>2])*h+(w-+g[p>>2])*f<-.03490658849477768):0)D=8;else E=s;else if(y>s?!((v-+g[q>>2])*h+(w-+g[r>>2])*f<-.03490658849477768):0)D=8;else E=s;if((D|0)==8){D=0;c[a>>2]=2;c[d>> +2]=t;g[e>>2]=y;E=y}t=t+1|0;if((t|0)>=(i|0)){D=10;break}else s=E}if((D|0)==10)return;c[a>>2]=2;c[d>>2]=C;g[e>>2]=B;return}function ug(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0;f=i;i=i+256|0;sg(f,a,b,c,d,e);i=f;return}function vg(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,V=0,W=0;j=i;i=i+96|0;k=j+92|0;l=j+88|0;m=j+64|0;n=j+56|0;o=j+32|0;p=j+8|0; +q=j;r=b+60|0;c[r>>2]=0;s=+g[d+8>>2]+ +g[f+8>>2];c[k>>2]=0;t=+wg(k,d,e,f,h);if(t>s){i=j;return}c[l>>2]=0;u=+wg(l,f,h,d,e);if(u>s){i=j;return}v=+g[h>>2];w=+g[h+4>>2];x=+g[h+8>>2];y=+g[h+12>>2];z=+g[e>>2];A=+g[e+4>>2];B=+g[e+8>>2];C=+g[e+12>>2];if(u>t+5.000000237487257E-4){D=2;E=v;F=w;G=y;H=x;I=C;J=B;K=z;L=A;M=l;N=1;P=f;Q=d}else{D=1;E=z;F=A;G=C;H=B;I=y;J=x;K=v;L=w;M=k;N=0;P=d;Q=f}f=c[M>>2]|0;c[b+56>>2]=D;D=c[Q+148>>2]|0;w=+g[P+84+(f<<3)>>2];v=+g[P+84+(f<<3)+4>>2];x=G*w-H*v;y=H*w+G*v;v=I*x+J*y;w=I*y- +J*x;if((D|0)>0){M=0;d=0;x=3.4028234663852886E38;while(1){y=v*+g[Q+84+(M<<3)>>2]+w*+g[Q+84+(M<<3)+4>>2];k=y>2];w=+g[Q+20+(R<<3)+4>>2];g[m>>2]=K+(I*x-J*w);g[m+4>>2]=L+(J*x+I*w);d=f&255;D=m+8|0;a[D>>0]=d;a[D+1>>0]=R;a[D+2>>0]=1;a[D+3>>0]=0;w=+g[Q+20+(M<<3)>>2];x=+g[Q+20+(M<<3)+4>>2];g[m+12>>2]=K+(I*w-J*x);g[m+16>>2]=L+(J*w+I*x);Q=m+20|0;a[Q>>0]=d;a[Q+1>>0]=M;a[Q+2>>0]=1;a[Q+3>>0]=0;Q= +f+1|0;M=(Q|0)<(c[P+148>>2]|0)?Q:0;x=+g[P+20+(f<<3)>>2];w=+g[P+20+(f<<3)+4>>2];v=+g[P+20+(M<<3)>>2];y=+g[P+20+(M<<3)+4>>2];B=v-x;C=y-w;A=+O(+(B*B+C*C));if(A<1.1920928955078125E-7){S=B;T=C}else{z=1/A;S=B*z;T=C*z}z=G*S-H*T;C=G*T+H*S;g[n>>2]=z;g[n+4>>2]=C;B=-z;A=E+(G*x-H*w);t=F+(H*x+G*w);u=t*B+A*C;g[q>>2]=B;g[q+4>>2]=-C;if((yg(o,m,q,s-(A*z+t*C),f)|0)<2){i=j;return}if((yg(p,o,n,s+((E+(G*v-H*y))*z+(F+(H*v+G*y))*C),M)|0)<2){i=j;return}g[b+40>>2]=T;g[b+44>>2]=-S;g[b+48>>2]=(x+v)*.5;g[b+52>>2]=(w+y)*.5;y= ++g[p>>2];w=+g[p+4>>2];M=!(C*y+w*B-u<=s);if(!(N<<24>>24)){if(M)U=0;else{v=y-K;x=w-L;g[b>>2]=I*v+J*x;g[b+4>>2]=I*x-J*v;c[b+16>>2]=c[p+8>>2];U=1}v=+g[p+12>>2];x=+g[p+16>>2];if(!(C*v+x*B-u<=s))V=U;else{S=v-K;v=x-L;g[b+(U*20|0)>>2]=I*S+J*v;g[b+(U*20|0)+4>>2]=I*v-J*S;c[b+(U*20|0)+16>>2]=c[p+20>>2];V=U+1|0}}else{if(M)W=0;else{S=y-K;y=w-L;g[b>>2]=I*S+J*y;g[b+4>>2]=I*y-J*S;M=b+16|0;U=c[p+8>>2]|0;c[M>>2]=U;a[M>>0]=U>>>8;a[M+1>>0]=U;a[M+2>>0]=U>>>24;a[M+3>>0]=U>>>16;W=1}S=+g[p+12>>2];y=+g[p+16>>2];if(!(C*S+ +y*B-u<=s))V=W;else{s=S-K;K=y-L;g[b+(W*20|0)>>2]=I*s+J*K;g[b+(W*20|0)+4>>2]=I*K-J*s;U=b+(W*20|0)+16|0;b=c[p+20>>2]|0;c[U>>2]=b;a[U>>0]=b>>>8;a[U+1>>0]=b;a[U+2>>0]=b>>>24;a[U+3>>0]=b>>>16;V=W+1|0}}c[r>>2]=V;i=j;return}function wg(a,b,d,e,f){a=a|0;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;h=c[b+148>>2]|0;i=c[e+148>>2]|0;j=+g[f+12>>2];k=+g[d+8>>2];l=+g[f+8>>2];m=+g[d+12>>2];n=j*k-l*m;o=k*l+j*m;m=+g[d>>2]-+g[f>>2];k=+g[d+4>>2]-+g[f+ +4>>2];p=j*m+l*k;q=j*k-l*m;if((h|0)<=0){r=0;s=-3.4028234663852886E38;c[a>>2]=r;return+s}if((i|0)>0){t=0;u=0;v=-3.4028234663852886E38}else{f=0;d=0;m=-3.4028234663852886E38;while(1){w=m<3.4028234663852886E38;l=w?3.4028234663852886E38:m;x=w?d:f;d=d+1|0;if((d|0)==(h|0)){r=x;s=l;break}else{f=x;m=l}}c[a>>2]=r;return+s}while(1){m=+g[b+84+(u<<3)>>2];l=+g[b+84+(u<<3)+4>>2];k=o*m-n*l;j=n*m+o*l;l=+g[b+20+(u<<3)>>2];m=+g[b+20+(u<<3)+4>>2];y=p+(o*l-n*m);z=q+(n*l+o*m);f=0;m=3.4028234663852886E38;while(1){l=k*(+g[e+ +20+(f<<3)>>2]-y)+j*(+g[e+20+(f<<3)+4>>2]-z);A=lv;m=f?B:v;d=f?u:t;u=u+1|0;if((u|0)==(h|0)){r=d;s=m;break}else{t=d;v=m}}c[a>>2]=r;return+s}function xg(a,b,d,e,f,h){a=a|0;b=b|0;d=d|0;e=+e;f=f|0;h=+h;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;i=b+60|0;if(!(c[i>>2]|0))return;switch(c[b+56>>2]|0){case 0:{g[a>>2]=1;j=a+4|0;g[j>>2]=0;k=+g[d+12>>2];l=+g[b+48>>2];m=+g[d+8>>2];n=+g[b+52>>2];o=+g[d>>2]+(k*l-m* +n);p=l*m+k*n+ +g[d+4>>2];n=+g[f+12>>2];k=+g[b>>2];m=+g[f+8>>2];l=+g[b+4>>2];q=+g[f>>2]+(n*k-m*l);r=k*m+n*l+ +g[f+4>>2];l=o-q;n=p-r;if(l*l+n*n>1.4210854715202004E-14){n=q-o;l=r-p;g[a>>2]=n;g[j>>2]=l;m=+O(+(l*l+n*n));if(m<1.1920928955078125E-7){s=n;t=l}else{k=1/m;m=n*k;g[a>>2]=m;n=l*k;g[j>>2]=n;s=m;t=n}}else{s=1;t=0}n=o+s*e;o=p+t*e;p=q-s*h;q=r-t*h;g[a+8>>2]=(n+p)*.5;g[a+12>>2]=(o+q)*.5;g[a+24>>2]=s*(p-n)+t*(q-o);return}case 1:{j=d+12|0;o=+g[j>>2];q=+g[b+40>>2];u=d+8|0;t=+g[u>>2];n=+g[b+44>>2];p=o*q- +t*n;s=q*t+o*n;g[a>>2]=p;v=a+4|0;g[v>>2]=s;n=+g[j>>2];o=+g[b+48>>2];t=+g[u>>2];q=+g[b+52>>2];r=+g[d>>2]+(n*o-t*q);m=o*t+n*q+ +g[d+4>>2];if((c[i>>2]|0)<=0)return;u=f+12|0;j=f+8|0;w=f+4|0;q=p;p=s;x=0;while(1){s=+g[u>>2];n=+g[b+(x*20|0)>>2];t=+g[j>>2];o=+g[b+(x*20|0)+4>>2];k=+g[f>>2]+(s*n-t*o);l=n*t+s*o+ +g[w>>2];o=e-(q*(k-r)+(l-m)*p);s=k+q*o;t=l+p*o;o=k-q*h;k=l-p*h;g[a+8+(x<<3)>>2]=(o+s)*.5;g[a+8+(x<<3)+4>>2]=(k+t)*.5;g[a+24+(x<<2)>>2]=+g[a>>2]*(o-s)+ +g[v>>2]*(k-t);y=x+1|0;if((y|0)>=(c[i>>2]|0))break; +q=+g[a>>2];p=+g[v>>2];x=y}return}case 2:{x=f+12|0;p=+g[x>>2];q=+g[b+40>>2];v=f+8|0;m=+g[v>>2];r=+g[b+44>>2];t=p*q-m*r;k=q*m+p*r;g[a>>2]=t;w=a+4|0;g[w>>2]=k;r=+g[x>>2];p=+g[b+48>>2];m=+g[v>>2];q=+g[b+52>>2];s=+g[f>>2]+(r*p-m*q);o=p*m+r*q+ +g[f+4>>2];if((c[i>>2]|0)>0){f=d+12|0;v=d+8|0;x=d+4|0;q=t;r=k;j=0;while(1){m=+g[f>>2];p=+g[b+(j*20|0)>>2];l=+g[v>>2];n=+g[b+(j*20|0)+4>>2];z=+g[d>>2]+(m*p-l*n);A=p*l+m*n+ +g[x>>2];n=h-(q*(z-s)+(A-o)*r);m=z+q*n;l=A+r*n;n=z-q*e;z=A-r*e;g[a+8+(j<<3)>>2]=(n+m)*.5;g[a+ +8+(j<<3)+4>>2]=(z+l)*.5;g[a+24+(j<<2)>>2]=+g[a>>2]*(n-m)+ +g[w>>2]*(z-l);j=j+1|0;l=+g[a>>2];z=+g[w>>2];if((j|0)>=(c[i>>2]|0)){B=l;C=z;break}else{q=l;r=z}}}else{B=t;C=k}g[a>>2]=-B;g[w>>2]=-C;return}default:return}}function yg(b,d,e,f,h){b=b|0;d=d|0;e=e|0;f=+f;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;i=+g[e>>2];j=+g[e+4>>2];e=d+4|0;k=i*+g[d>>2]+j*+g[e>>2]-f;l=d+12|0;m=d+16|0;n=i*+g[l>>2]+j*+g[m>>2]-f;if(!(k<=0))o=0;else{c[b>>2]=c[d>>2];c[b+4>>2]=c[d+4>>2];c[b+8>>2]=c[d+8>>2];o=1}if(!(n<=0))p= +o;else{q=b+(o*12|0)|0;c[q>>2]=c[l>>2];c[q+4>>2]=c[l+4>>2];c[q+8>>2]=c[l+8>>2];p=o+1|0}if(!(k*n<0)){r=p;return r|0}f=k/(k-n);n=+g[d>>2];k=+g[e>>2];j=k+f*(+g[m>>2]-k);g[b+(p*12|0)>>2]=n+f*(+g[l>>2]-n);g[b+(p*12|0)+4>>2]=j;l=b+(p*12|0)+8|0;a[l>>0]=h;a[l+1>>0]=a[d+8+1>>0]|0;a[l+2>>0]=0;a[l+3>>0]=1;r=p+1|0;return r|0}function zg(d,e,f,h,j,k){d=d|0;e=e|0;f=f|0;h=h|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0;l=i;i=i+128|0;m=l+36|0;n=l+24|0;o=l;c[m+16>>2]=0;c[m+20>>2]=0;g[m+24>>2]=0;c[m+44>>2]=0;c[m+48>>2]=0;g[m+52>> +2]=0;mf(m,d,e);mf(m+28|0,f,h);h=m+56|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=m+72|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];a[m+88>>0]=1;b[n+4>>1]=0;of(o,n,m);i=l;return+g[o+16>>2]<1.1920928955078125E-6|0}function Ag(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;h=a+40|0;c[h>>2]=b;c[a+44>>2]=d;c[a+48>>2]=e;c[a+28>>2]=0;c[a+36>>2]=0;c[a+32>>2]=0;c[a>>2]=f;c[a+4>>2]=g;c[a+8>>2]=lo(f,b<<2)|0;c[a+12>>2]=lo(c[a>> +2]|0,d<<2)|0;c[a+16>>2]=lo(c[a>>2]|0,e<<2)|0;c[a+24>>2]=lo(c[a>>2]|0,(c[h>>2]|0)*12|0)|0;c[a+20>>2]=lo(c[a>>2]|0,(c[h>>2]|0)*12|0)|0;return}function Bg(a){a=a|0;no(c[a>>2]|0,c[a+20>>2]|0);no(c[a>>2]|0,c[a+24>>2]|0);no(c[a>>2]|0,c[a+16>>2]|0);no(c[a>>2]|0,c[a+12>>2]|0);no(c[a>>2]|0,c[a+8>>2]|0);return}function Cg(d,f,h,j,l){d=d|0;f=f|0;h=h|0;j=j|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,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,S=0,T=0,U=0,V=0,W=0,X=0,Y= +0,Z=0;m=i;i=i+176|0;n=m+148|0;o=m;p=m+112|0;q=m+64|0;r=m+8|0;Yn(o);s=+g[h>>2];t=d+28|0;if((c[t>>2]|0)>0){u=d+8|0;v=j+4|0;w=d+20|0;x=d+24|0;y=0;do{z=c[(c[u>>2]|0)+(y<<2)>>2]|0;A=z+60|0;B=c[A>>2]|0;C=c[A+4>>2]|0;A=c[z+72>>2]|0;D=c[z+80>>2]|0;E=c[z+84>>2]|0;F=+g[z+88>>2];G=z+52|0;c[G>>2]=B;c[G+4>>2]=C;c[z+68>>2]=A;if((c[z>>2]|0)==2){H=+g[z+156>>2];I=+g[z+136>>2];J=(c[k>>2]=D,+g[k>>2])+s*(H*+g[j>>2]+I*+g[z+92>>2]);K=(c[k>>2]=E,+g[k>>2])+s*(H*+g[v>>2]+I*+g[z+96>>2]);I=1/(s*+g[z+148>>2]+1);G=(g[k>>2]=J* +I,c[k>>2]|0);L=G;M=(g[k>>2]=K*I,c[k>>2]|0);N=(F+s*+g[z+144>>2]*+g[z+100>>2])*(1/(s*+g[z+152>>2]+1))}else{L=D;M=E;N=F}E=(c[w>>2]|0)+(y*12|0)|0;c[E>>2]=B;c[E+4>>2]=C;c[(c[w>>2]|0)+(y*12|0)+8>>2]=A;A=c[x>>2]|0;c[A+(y*12|0)>>2]=L;c[A+(y*12|0)+4>>2]=M;g[(c[x>>2]|0)+(y*12|0)+8>>2]=N;y=y+1|0}while((y|0)<(c[t>>2]|0));P=x;S=w}else{P=d+24|0;S=d+20|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];c[p+16>>2]=c[h+16>>2];c[p+20>>2]=c[h+20>>2];c[p+24>>2]=c[h+24>>2];w=c[S>>2]|0;c[p+ +28>>2]=w;x=c[P>>2]|0;c[p+32>>2]=x;c[q>>2]=c[h>>2];c[q+4>>2]=c[h+4>>2];c[q+8>>2]=c[h+8>>2];c[q+12>>2]=c[h+12>>2];c[q+16>>2]=c[h+16>>2];c[q+20>>2]=c[h+20>>2];c[q+24>>2]=c[h+24>>2];y=d+12|0;c[q+28>>2]=c[y>>2];M=d+36|0;c[q+32>>2]=c[M>>2];c[q+36>>2]=w;c[q+40>>2]=x;c[q+44>>2]=c[d>>2];jk(r,q);lk(r);if(a[h+24>>0]|0)mk(r);q=d+32|0;if((c[q>>2]|0)>0){x=d+16|0;w=0;do{L=c[(c[x>>2]|0)+(w<<2)>>2]|0;kb[c[(c[L>>2]|0)+32>>2]&63](L,p);w=w+1|0}while((w|0)<(c[q>>2]|0))}g[f+12>>2]=+_n(o);w=h+12|0;if((c[w>>2]|0)>0){x=d+ +16|0;L=0;do{if((c[q>>2]|0)>0){v=0;do{j=c[(c[x>>2]|0)+(v<<2)>>2]|0;kb[c[(c[j>>2]|0)+36>>2]&63](j,p);v=v+1|0}while((v|0)<(c[q>>2]|0))}nk(r);L=L+1|0}while((L|0)<(c[w>>2]|0))}ok(r);g[f+16>>2]=+_n(o);if((c[t>>2]|0)>0){w=c[P>>2]|0;L=0;do{x=c[S>>2]|0;v=x+(L*12|0)|0;j=x+(L*12|0)+4|0;u=c[w+(L*12|0)>>2]|0;A=c[w+(L*12|0)+4>>2]|0;N=+g[w+(L*12|0)+8>>2];F=(c[k>>2]=u,+g[k>>2]);I=s*F;K=(c[k>>2]=A,+g[k>>2]);J=s*K;H=I*I+J*J;if(H>4){J=2/+O(+H);C=(g[k>>2]=F*J,c[k>>2]|0);T=C;U=(g[k>>2]=K*J,c[k>>2]|0)}else{T=u;U=A}J=s* +N;if(J*J>2.4674012660980225)V=N*(1.5707963705062866/(J>0?J:-J));else V=N;N=s*(c[k>>2]=T,+g[k>>2]);J=+g[j>>2]+s*(c[k>>2]=U,+g[k>>2]);K=+g[x+(L*12|0)+8>>2]+s*V;g[v>>2]=+g[v>>2]+N;g[j>>2]=J;g[(c[S>>2]|0)+(L*12|0)+8>>2]=K;j=c[P>>2]|0;c[j+(L*12|0)>>2]=T;c[j+(L*12|0)+4>>2]=U;w=c[P>>2]|0;g[w+(L*12|0)+8>>2]=V;L=L+1|0}while((L|0)<(c[t>>2]|0))}L=h+16|0;a:do if((c[L>>2]|0)>0){h=d+16|0;w=0;while(1){U=pk(r)|0;if((c[q>>2]|0)>0){T=0;j=1;while(1){v=c[(c[h>>2]|0)+(T<<2)>>2]|0;x=j&(rb[c[(c[v>>2]|0)+40>>2]&31](v,p)| +0);T=T+1|0;if((T|0)>=(c[q>>2]|0)){W=x;break}else j=x}}else W=1;w=w+1|0;if(U&W){X=0;break a}if((w|0)>=(c[L>>2]|0)){X=1;break}}}else X=1;while(0);if((c[t>>2]|0)>0){L=d+8|0;W=0;do{q=c[(c[L>>2]|0)+(W<<2)>>2]|0;p=(c[S>>2]|0)+(W*12|0)|0;w=c[p>>2]|0;h=c[p+4>>2]|0;p=q+60|0;c[p>>2]=w;c[p+4>>2]=h;p=c[(c[S>>2]|0)+(W*12|0)+8>>2]|0;c[q+72>>2]=p;j=(c[P>>2]|0)+(W*12|0)|0;T=c[j+4>>2]|0;x=q+80|0;c[x>>2]=c[j>>2];c[x+4>>2]=T;c[q+88>>2]=c[(c[P>>2]|0)+(W*12|0)+8>>2];V=(c[k>>2]=p,+g[k>>2]);K=+R(+V);g[q+20>>2]=K;J=+Q(+V); +g[q+24>>2]=J;V=+g[q+44>>2];N=+g[q+48>>2];F=(c[k>>2]=w,+g[k>>2])-(J*V-K*N);H=(c[k>>2]=h,+g[k>>2])-(K*V+J*N);g[q+12>>2]=F;g[q+16>>2]=H;W=W+1|0}while((W|0)<(c[t>>2]|0))}g[f+20>>2]=+_n(o);o=c[r+44>>2]|0;f=d+4|0;if((c[f>>2]|0)!=0?(c[M>>2]|0)>0:0){W=n+16|0;P=0;do{S=c[(c[y>>2]|0)+(P<<2)>>2]|0;L=c[o+(P*156|0)+148>>2]|0;c[W>>2]=L;if((L|0)>0){q=0;do{c[n+(q<<2)>>2]=c[o+(P*156|0)+(q*36|0)+16>>2];c[n+8+(q<<2)>>2]=c[o+(P*156|0)+(q*36|0)+20>>2];q=q+1|0}while((q|0)!=(L|0))}L=c[f>>2]|0;mb[c[(c[L>>2]|0)+36>>2]&7](L, +S,n);P=P+1|0}while((P|0)<(c[M>>2]|0))}if(!l){kk(r);i=m;return}l=c[t>>2]|0;M=(l|0)>0;if(M){P=c[d+8>>2]|0;n=0;H=3.4028234663852886E38;while(1){f=c[P+(n<<2)>>2]|0;do if(!(c[f>>2]|0))Y=H;else{if(((b[f+4>>1]&4)!=0?(F=+g[f+88>>2],!(F*F>.001218469929881394)):0)?(F=+g[f+80>>2],N=+g[f+84>>2],!(F*F+N*N>9.999999747378752E-5)):0){o=f+160|0;N=s+ +g[o>>2];g[o>>2]=N;Y=H>2]=0;Y=0}while(0);n=n+1|0;if((n|0)>=(l|0)){Z=Y;break}else H=Y}}else Z=3.4028234663852886E38;if(X|!(Z>=.5)|M^1){kk(r);i=m;return}M= +d+8|0;d=0;do{X=c[(c[M>>2]|0)+(d<<2)>>2]|0;l=X+4|0;b[l>>1]=e[l>>1]&65533;g[X+160>>2]=0;l=X+80|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;d=d+1|0}while((d|0)<(c[t>>2]|0));kk(r);i=m;return}function Dg(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,F=0,G=0,H=0,I=0;f=i;i=i+128|0;h=f+104|0;j=f+56|0;l=f;m=a+28|0;if((c[m>>2]|0)>0){n=a+8|0;o=a+20|0;p=a+24|0;q=0;do{r=c[(c[n>>2]|0)+(q<<2)>>2]|0; +s=r+60|0;t=c[s+4>>2]|0;u=(c[o>>2]|0)+(q*12|0)|0;c[u>>2]=c[s>>2];c[u+4>>2]=t;c[(c[o>>2]|0)+(q*12|0)+8>>2]=c[r+72>>2];t=r+80|0;u=c[t+4>>2]|0;s=(c[p>>2]|0)+(q*12|0)|0;c[s>>2]=c[t>>2];c[s+4>>2]=u;u=c[p>>2]|0;c[u+(q*12|0)+8>>2]=c[r+88>>2];q=q+1|0}while((q|0)<(c[m>>2]|0));v=u;w=p;x=o;y=v}else{v=a+24|0;w=v;x=a+20|0;y=c[v>>2]|0}v=a+12|0;c[j+28>>2]=c[v>>2];o=a+36|0;c[j+32>>2]=c[o>>2];c[j+44>>2]=c[a>>2];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];c[j+16>>2]=c[b+16>>2];c[j+ +20>>2]=c[b+20>>2];c[j+24>>2]=c[b+24>>2];c[j+36>>2]=c[x>>2];c[j+40>>2]=y;jk(l,j);j=b+16|0;if((c[j>>2]|0)>0){y=0;do{y=y+1|0;p=(qk(l,d,e)|0)^1}while((y|0)<(c[j>>2]|0)&p)}j=a+8|0;y=(c[x>>2]|0)+(d*12|0)|0;p=c[y+4>>2]|0;q=(c[(c[j>>2]|0)+(d<<2)>>2]|0)+52|0;c[q>>2]=c[y>>2];c[q+4>>2]=p;p=c[x>>2]|0;q=c[j>>2]|0;c[(c[q+(d<<2)>>2]|0)+68>>2]=c[p+(d*12|0)+8>>2];d=p+(e*12|0)|0;p=c[d+4>>2]|0;y=(c[q+(e<<2)>>2]|0)+52|0;c[y>>2]=c[d>>2];c[y+4>>2]=p;c[(c[(c[j>>2]|0)+(e<<2)>>2]|0)+68>>2]=c[(c[x>>2]|0)+(e*12|0)+8>>2];lk(l); +e=b+12|0;if((c[e>>2]|0)>0){p=0;do{nk(l);p=p+1|0}while((p|0)<(c[e>>2]|0))}z=+g[b>>2];if((c[m>>2]|0)>0){b=0;do{e=c[x>>2]|0;p=e+(b*12|0)|0;y=e+(b*12|0)+4|0;d=c[w>>2]|0;q=c[d+(b*12|0)>>2]|0;n=c[d+(b*12|0)+4>>2]|0;A=+g[d+(b*12|0)+8>>2];B=(c[k>>2]=q,+g[k>>2]);C=z*B;D=(c[k>>2]=n,+g[k>>2]);E=z*D;F=C*C+E*E;if(F>4){E=2/+O(+F);d=(g[k>>2]=B*E,c[k>>2]|0);G=d;H=(g[k>>2]=D*E,c[k>>2]|0)}else{G=q;H=n}E=z*A;if(E*E>2.4674012660980225)I=A*(1.5707963705062866/(E>0?E:-E));else I=A;A=z*(c[k>>2]=G,+g[k>>2]);E=+g[p>>2]+A; +A=+g[y>>2]+z*(c[k>>2]=H,+g[k>>2]);D=+g[e+(b*12|0)+8>>2]+z*I;g[p>>2]=E;g[y>>2]=A;g[(c[x>>2]|0)+(b*12|0)+8>>2]=D;y=c[w>>2]|0;c[y+(b*12|0)>>2]=G;c[y+(b*12|0)+4>>2]=H;g[(c[w>>2]|0)+(b*12|0)+8>>2]=I;y=c[(c[j>>2]|0)+(b<<2)>>2]|0;g[y+60>>2]=E;g[y+64>>2]=A;g[y+72>>2]=D;c[y+80>>2]=G;c[y+84>>2]=H;g[y+88>>2]=I;B=+R(+D);g[y+20>>2]=B;F=+Q(+D);g[y+24>>2]=F;D=+g[y+44>>2];C=+g[y+48>>2];g[y+12>>2]=E-(F*D-B*C);g[y+16>>2]=A-(B*D+F*C);b=b+1|0}while((b|0)<(c[m>>2]|0))}m=c[l+44>>2]|0;b=a+4|0;if(!(c[b>>2]|0)){kk(l);i=f; +return}if((c[o>>2]|0)<=0){kk(l);i=f;return}a=h+16|0;H=0;do{G=c[(c[v>>2]|0)+(H<<2)>>2]|0;j=c[m+(H*156|0)+148>>2]|0;c[a>>2]=j;if((j|0)>0){w=0;do{c[h+(w<<2)>>2]=c[m+(H*156|0)+(w*36|0)+16>>2];c[h+8+(w<<2)>>2]=c[m+(H*156|0)+(w*36|0)+20>>2];w=w+1|0}while((w|0)!=(j|0))}j=c[b>>2]|0;mb[c[(c[j>>2]|0)+36>>2]&7](j,G,h);H=H+1|0}while((H|0)<(c[o>>2]|0));kk(l);i=f;return}function Eg(a,c,d){a=a|0;c=c|0;d=d|0;var e=0;a=b[c+36>>1]|0;if(!(a<<16>>16==0?1:a<<16>>16!=(b[d+36>>1]|0))){e=a<<16>>16>0;return e|0}if(!((b[d+ +32>>1]&b[c+34>>1])<<16>>16)){e=0;return e|0}e=(b[d+34>>1]&b[c+32>>1])<<16>>16!=0;return e|0}function Fg(a){a=a|0;return}function Gg(a){a=a|0;so(a);return}function Hg(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return 1}function Ig(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return 1}function Jg(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0,i=0,j=0,l=0;Oi(a,b);c[a>>2]=1120;d=b+20|0;e=c[d>>2]|0;f=c[d+4>>2]|0;d=a+76|0;c[d>>2]=e;c[d+4>>2]=f;d=c[a+52>>2]|0;h=(c[k>>2]=e,+g[k>>2])-+g[d+12>>2];i=(c[k>>2]=f,+g[k>>2])-+g[d+16>>2];j=+g[d+ +24>>2];l=+g[d+20>>2];g[a+68>>2]=h*j+i*l;g[a+72>>2]=j*i-h*l;c[a+104>>2]=c[b+28>>2];g[a+96>>2]=0;g[a+100>>2]=0;c[a+84>>2]=c[b+32>>2];c[a+88>>2]=c[b+36>>2];g[a+92>>2]=0;g[a+108>>2]=0;return}function Kg(a,d){a=a|0;d=d|0;var e=0,f=0,h=0,i=0;e=c[a+52>>2]|0;f=e+4|0;h=b[f>>1]|0;if((h&2)==0?(i=h&65535,(i&2|0)==0):0){b[f>>1]=i|2;g[e+160>>2]=0}e=d;d=c[e+4>>2]|0;i=a+76|0;c[i>>2]=c[e>>2];c[i+4>>2]=d;return}function Lg(a,b){a=a|0;b=+b;g[a+104>>2]=b;return}function Mg(a,b){a=a|0;b=+b;g[a+84>>2]=b;return}function Ng(a, +b){a=a|0;b=+b;g[a+88>>2]=b;return}function Og(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,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0;e=c[b+52>>2]|0;f=c[e+8>>2]|0;h=b+116|0;c[h>>2]=f;i=e+44|0;j=c[i>>2]|0;l=c[i+4>>2]|0;i=b+128|0;c[i>>2]=j;c[i+4>>2]=l;i=c[e+136>>2]|0;m=b+136|0;c[m>>2]=i;n=c[e+144>>2]|0;o=b+140|0;c[o>>2]=n;p=c[d+28>>2]|0;q=+g[p+(f*12|0)>>2];r=+g[p+(f*12|0)+4>>2];s=+g[p+(f*12|0)+8>>2];p=d+32|0;t=c[p>>2]|0;u=c[t+ +(f*12|0)>>2]|0;v=c[t+(f*12|0)+4>>2]|0;w=+g[t+(f*12|0)+8>>2];x=+R(+s);y=+Q(+s);s=+g[e+132>>2];z=+g[b+84>>2]*6.2831854820251465;A=+g[d>>2];B=A*(s*(z*z));C=A*(z*(s*2*+g[b+88>>2])+B);s=C!=0?1/C:C;g[b+108>>2]=s;C=B*s;g[b+92>>2]=C;B=+g[b+68>>2]-(c[k>>2]=j,+g[k>>2]);z=+g[b+72>>2]-(c[k>>2]=l,+g[k>>2]);A=y*B-x*z;D=x*B+y*z;g[b+120>>2]=A;g[b+124>>2]=D;z=(c[k>>2]=i,+g[k>>2]);y=(c[k>>2]=n,+g[k>>2]);B=s+(z+D*(y*D));x=y*A;y=D*x;E=s+(z+A*x);x=B*E-y*y;z=x!=0?1/x:x;x=y*z;g[b+144>>2]=E*z;g[b+148>>2]=x;g[b+152>>2]=x; +g[b+156>>2]=B*z;z=r+D-+g[b+80>>2];g[b+160>>2]=C*(q+A-+g[b+76>>2]);g[b+164>>2]=C*z;z=w*.9800000190734863;n=b+96|0;if(!(a[d+24>>0]|0)){g[n>>2]=0;g[b+100>>2]=0;F=u;G=v;H=z;I=c[h>>2]|0;J=c[p>>2]|0;K=J+(I*12|0)|0;c[K>>2]=F;L=J+(I*12|0)+4|0;c[L>>2]=G;M=c[h>>2]|0;N=c[p>>2]|0;O=N+(M*12|0)+8|0;g[O>>2]=H;return}else{w=+g[d+8>>2];C=w*+g[n>>2];g[n>>2]=C;n=b+100|0;q=w*+g[n>>2];g[n>>2]=q;w=+g[m>>2];m=(g[k>>2]=(c[k>>2]=u,+g[k>>2])+w*C,c[k>>2]|0);F=m;G=(g[k>>2]=(c[k>>2]=v,+g[k>>2])+q*w,c[k>>2]|0);H=z+ +g[o>>2]*(q* +A-C*D);I=c[h>>2]|0;J=c[p>>2]|0;K=J+(I*12|0)|0;c[K>>2]=F;L=J+(I*12|0)+4|0;c[L>>2]=G;M=c[h>>2]|0;N=c[p>>2]|0;O=N+(M*12|0)+8|0;g[O>>2]=H;return}}function Pg(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,s=0,t=0,u=0,v=0,w=0,x=0;d=a+116|0;e=c[d>>2]|0;f=b+32|0;h=c[f>>2]|0;i=h+(e*12|0)|0;j=+g[i>>2];k=h+(e*12|0)+4|0;l=+g[k>>2];m=+g[h+(e*12|0)+8>>2];n=+g[a+124>>2];o=+g[a+120>>2];p=+g[a+108>>2];e=a+96|0;q=+g[e>>2];h=a+100|0;r=+g[h>>2];s=-(j-m*n+ +g[a+160>>2]+p*q);t=-(l+m*o+ +g[a+ +164>>2]+p*r);p=+g[a+148>>2]*s+ +g[a+156>>2]*t;u=q+(+g[a+144>>2]*s+ +g[a+152>>2]*t);g[e>>2]=u;t=p+r;g[h>>2]=t;p=+g[b>>2]*+g[a+104>>2];s=t*t+u*u;if(s>p*p){v=p/+O(+s);s=u*v;g[e>>2]=s;p=v*t;g[h>>2]=p;w=s;x=p}else{w=u;x=t}t=w-q;q=x-r;r=+g[a+136>>2];x=m+ +g[a+140>>2]*(q*o-t*n);g[i>>2]=j+t*r;g[k>>2]=l+q*r;g[(c[f>>2]|0)+((c[d>>2]|0)*12|0)+8>>2]=x;return}function Qg(a,b){a=a|0;b=b|0;return 1}function Rg(a,b){a=a|0;b=b|0;var d=0,e=0;d=b+76|0;b=c[d+4>>2]|0;e=a;c[e>>2]=c[d>>2];c[e+4>>2]=b;return}function Sg(a, +b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0,i=0,j=0;d=c[b+52>>2]|0;e=+g[d+24>>2];f=+g[b+68>>2];h=+g[d+20>>2];i=+g[b+72>>2];j=f*h+e*i+ +g[d+16>>2];g[a>>2]=+g[d+12>>2]+(e*f-h*i);g[a+4>>2]=j;return}function Tg(a,b,c){a=a|0;b=b|0;c=+c;var d=0;d=+g[b+100>>2]*c;g[a>>2]=+g[b+96>>2]*c;g[a+4>>2]=d;return}function Ug(a,b){a=a|0;b=+b;return+(b*0)}function Vg(a,b){a=a|0;b=b|0;var c=0;c=a+76|0;g[c>>2]=+g[c>>2]-+g[b>>2];c=a+80|0;g[c>>2]=+g[c>>2]-+g[b+4>>2];return}function Wg(a){a=a|0;a=i;i=i+16|0;bo(3610,a);i=a;return} +function Xg(a){a=a|0;return}function Yg(a){a=a|0;so(a);return}function Zg(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,h=0,i=0;c[a+8>>2]=b;c[a+12>>2]=d;e=+g[d+12>>2]-+g[b+12>>2];f=+g[d+16>>2]-+g[b+16>>2];h=+g[b+24>>2];i=+g[b+20>>2];g[a+20>>2]=e*h+f*i;g[a+24>>2]=h*f-e*i;g[a+28>>2]=+g[d+72>>2]-+g[b+72>>2];return}function _g(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;Oi(a,b);c[a>>2]=1172;d=b+20|0;e=c[d+4>>2]|0;f=a+68|0;c[f>>2]=c[d>>2];c[f+4>>2]=e;c[a+76>>2]=c[b+28>>2];g[a+80>>2]=0;g[a+84>>2]=0;g[a+88>>2]=0;c[a+92>>2]= +c[b+32>>2];c[a+96>>2]=c[b+36>>2];c[a+100>>2]=c[b+40>>2];return}function $g(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,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=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;e=c[b+48>>2]|0;f=c[e+8>>2]|0;h=b+104|0;c[h>>2]=f;i=c[b+52>>2]|0;j=c[i+8>>2]|0;l=b+108|0;c[l>>2]=j;m=e+44|0;n=c[m>>2]|0;o=c[m+4>>2]|0;m=b+128|0;c[m>>2]= +n;c[m+4>>2]=o;m=i+44|0;p=c[m>>2]|0;q=c[m+4>>2]|0;m=b+136|0;c[m>>2]=p;c[m+4>>2]=q;m=c[e+136>>2]|0;c[b+156>>2]=m;r=c[i+136>>2]|0;c[b+160>>2]=r;s=c[e+144>>2]|0;c[b+164>>2]=s;e=c[i+144>>2]|0;c[b+168>>2]=e;i=c[d+28>>2]|0;t=+g[i+(f*12|0)>>2];u=+g[i+(f*12|0)+4>>2];v=+g[i+(f*12|0)+8>>2];w=d+32|0;x=c[w>>2]|0;y=c[x+(f*12|0)>>2]|0;z=c[x+(f*12|0)+4>>2]|0;A=+g[x+(f*12|0)+8>>2];B=+g[i+(j*12|0)>>2];C=+g[i+(j*12|0)+4>>2];D=+g[i+(j*12|0)+8>>2];i=c[x+(j*12|0)>>2]|0;f=c[x+(j*12|0)+4>>2]|0;E=+g[x+(j*12|0)+8>>2];F=+R(+v); +G=+Q(+v);H=+R(+D);I=+Q(+D);J=-(c[k>>2]=n,+g[k>>2]);K=-(c[k>>2]=o,+g[k>>2]);L=G*J-F*K;M=F*J+G*K;o=b+112|0;g[o>>2]=L;g[b+116>>2]=M;K=-(c[k>>2]=p,+g[k>>2]);J=-(c[k>>2]=q,+g[k>>2]);N=I*K-H*J;O=H*K+I*J;g[b+120>>2]=N;g[b+124>>2]=O;J=(c[k>>2]=m,+g[k>>2]);I=(c[k>>2]=r,+g[k>>2]);K=(c[k>>2]=s,+g[k>>2]);H=(c[k>>2]=e,+g[k>>2]);P=J+I;S=P+M*(K*M)+O*(H*O);T=K*L;U=H*N;V=-(M*T)-O*U;W=P+L*T+N*U;U=S*W-V*V;T=U!=0?1/U:U;U=-(V*T);g[b+172>>2]=W*T;g[b+176>>2]=U;g[b+180>>2]=U;g[b+184>>2]=S*T;T=K+H;g[b+188>>2]=T>0?1/T:T;T= ++g[b+68>>2];S=+g[b+72>>2];g[b+144>>2]=B+N-t-L-(G*T-F*S);g[b+148>>2]=C+O-u-M-(F*T+G*S);g[b+152>>2]=D-v-+g[b+76>>2];e=b+80|0;if(!(a[d+24>>0]|0)){g[e>>2]=0;g[b+84>>2]=0;g[b+88>>2]=0;X=y;Y=z;Z=i;_=f;$=A;aa=E;ba=c[h>>2]|0;ca=c[w>>2]|0;da=ca+(ba*12|0)|0;c[da>>2]=X;ea=ca+(ba*12|0)+4|0;c[ea>>2]=Y;fa=c[h>>2]|0;ga=c[w>>2]|0;ha=ga+(fa*12|0)+8|0;g[ha>>2]=$;ia=c[l>>2]|0;ja=ga+(ia*12|0)|0;c[ja>>2]=Z;ka=ga+(ia*12|0)+4|0;c[ka>>2]=_;la=c[l>>2]|0;ma=c[w>>2]|0;na=ma+(la*12|0)+8|0;g[na>>2]=aa;return}else{v=+g[d+8>>2]; +D=v*+g[e>>2];g[e>>2]=D;e=b+84|0;S=v*+g[e>>2];g[e>>2]=S;e=b+88|0;G=v*+g[e>>2];g[e>>2]=G;e=(g[k>>2]=(c[k>>2]=y,+g[k>>2])-J*D,c[k>>2]|0);y=(g[k>>2]=(c[k>>2]=z,+g[k>>2])-J*S,c[k>>2]|0);z=(g[k>>2]=(c[k>>2]=i,+g[k>>2])+I*D,c[k>>2]|0);X=e;Y=y;Z=z;_=(g[k>>2]=(c[k>>2]=f,+g[k>>2])+I*S,c[k>>2]|0);$=A-K*(G+(S*+g[o>>2]-D*M));aa=E+H*(G+(S*N-D*O));ba=c[h>>2]|0;ca=c[w>>2]|0;da=ca+(ba*12|0)|0;c[da>>2]=X;ea=ca+(ba*12|0)+4|0;c[ea>>2]=Y;fa=c[h>>2]|0;ga=c[w>>2]|0;ha=ga+(fa*12|0)+8|0;g[ha>>2]=$;ia=c[l>>2]|0;ja=ga+(ia* +12|0)|0;c[ja>>2]=Z;ka=ga+(ia*12|0)+4|0;c[ka>>2]=_;la=c[l>>2]|0;ma=c[w>>2]|0;na=ma+(la*12|0)+8|0;g[na>>2]=aa;return}}function ah(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,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;d=a+104|0;e=c[d>>2]|0;f=b+32|0;h=c[f>>2]|0;i=+g[h+(e*12|0)>>2];j=+g[h+(e*12|0)+4>>2];k=+g[h+(e*12|0)+8>>2];e=a+108|0;l=c[e>>2]|0;m=+g[h+(l*12|0)>>2];n=+g[h+(l*12|0)+4>>2];o=+g[h+(l*12|0)+8>>2];p=+g[a+156>>2];q=+g[a+160>>2];r=+g[a+ +164>>2];s=+g[a+168>>2];t=+g[b>>2];u=+g[b+4>>2]*+g[a+100>>2];b=a+88|0;v=+g[b>>2];w=t*+g[a+96>>2];x=v-+g[a+188>>2]*(o-k+u*+g[a+152>>2]);y=-w;z=x>2]=w;z=w-v;v=k-r*z;k=o+s*z;z=+g[a+124>>2];o=+g[a+120>>2];w=+g[a+116>>2];y=+g[a+112>>2];x=+g[a+144>>2]*u+(w*v+(m-z*k-i));A=u*+g[a+148>>2]+(n+o*k-j-y*v);u=+g[a+176>>2]*x+ +g[a+184>>2]*A;b=a+80|0;B=+g[b>>2];l=a+84|0;C=+g[l>>2];D=B-(+g[a+172>>2]*x+ +g[a+180>>2]*A);g[b>>2]=D;A=C-u;g[l>>2]=A;u=t*+g[a+92>>2];t=D*D+A*A;if(t>u*u){x=+O(+t);if(x< +1.1920928955078125E-7){E=D;F=A}else{t=1/x;x=D*t;g[b>>2]=x;G=A*t;g[l>>2]=G;E=x;F=G}G=u*E;g[b>>2]=G;E=u*F;g[l>>2]=E;H=G;I=E}else{H=D;I=A}A=H-B;B=I-C;l=c[d>>2]|0;b=c[f>>2]|0;g[b+(l*12|0)>>2]=i-p*A;g[b+(l*12|0)+4>>2]=j-p*B;l=c[f>>2]|0;g[l+((c[d>>2]|0)*12|0)+8>>2]=v-r*(y*B-A*w);d=c[e>>2]|0;g[l+(d*12|0)>>2]=m+q*A;g[l+(d*12|0)+4>>2]=n+q*B;g[(c[f>>2]|0)+((c[e>>2]|0)*12|0)+8>>2]=k+s*(B*o-A*z);return}function bh(a,b){a=a|0;b=b|0;return 1}function ch(a,b){a=a|0;b=b|0;var d=0,e=0;d=(c[b+48>>2]|0)+12|0;b=c[d+ +4>>2]|0;e=a;c[e>>2]=c[d>>2];c[e+4>>2]=b;return}function dh(a,b){a=a|0;b=b|0;var d=0,e=0;d=(c[b+52>>2]|0)+12|0;b=c[d+4>>2]|0;e=a;c[e>>2]=c[d>>2];c[e+4>>2]=b;return}function eh(a,b,c){a=a|0;b=b|0;c=+c;var d=0;d=+g[b+84>>2]*c;g[a>>2]=+g[b+80>>2]*c;g[a+4>>2]=d;return}function fh(a,b){a=a|0;b=+b;return+(+g[a+88>>2]*b)}function gh(a,b){a=a|0;b=+b;g[a+92>>2]=b;return}function hh(a,b){a=a|0;b=+b;g[a+96>>2]=b;return}function ih(a,b){a=a|0;b=+b;g[a+100>>2]=b;return}function jh(a,d){a=a|0;d=d|0;var f=0,h=0, +i=0,j=0;f=a+68|0;if(!(+g[d>>2]!=+g[f>>2])?!(+g[d+4>>2]!=+g[a+72>>2]):0)return;h=c[a+48>>2]|0;i=h+4|0;j=e[i>>1]|0;if(!(j&2)){b[i>>1]=j|2;g[h+160>>2]=0}h=c[a+52>>2]|0;a=h+4|0;j=e[a>>1]|0;if(!(j&2)){b[a>>1]=j|2;g[h+160>>2]=0}h=d;d=c[h+4>>2]|0;j=f;c[j>>2]=c[h>>2];c[j+4>>2]=d;return}function kh(a,d){a=a|0;d=+d;var f=0,h=0,i=0,j=0;f=a+76|0;if(!(+g[f>>2]!=d))return;h=c[a+48>>2]|0;i=h+4|0;j=e[i>>1]|0;if(!(j&2)){b[i>>1]=j|2;g[h+160>>2]=0}h=c[a+52>>2]|0;a=h+4|0;j=e[a>>1]|0;if(!(j&2)){b[a>>1]=j|2;g[h+160>>2]= +0}g[f>>2]=d;return}function lh(a){a=a|0;var b=0,e=0,f=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;b=i;i=i+96|0;e=b+80|0;f=b+72|0;j=b+64|0;k=b+56|0;l=b+48|0;m=b+32|0;n=b+24|0;o=b+16|0;p=b+8|0;q=c[(c[a+48>>2]|0)+8>>2]|0;r=c[(c[a+52>>2]|0)+8>>2]|0;bo(3664,b);c[p>>2]=q;bo(4769,p);c[o>>2]=r;bo(4795,o);c[n>>2]=d[a+61>>0];bo(4821,n);s=+g[a+72>>2];h[m>>3]=+g[a+68>>2];h[m+8>>3]=s;bo(3687,m);h[l>>3]=+g[a+76>>2];bo(3729,l);h[k>>3]=+g[a+92>>2];bo(3906,k);h[j>>3]=+g[a+96>>2];bo(3932,j);h[f>>3]=+g[a+100>>2];bo(3760, +f);c[e>>2]=c[a+56>>2];bo(5099,e);i=b;return}function mh(a,b){a=a|0;b=b|0;return}function nh(a){a=a|0;so(a);return}function oh(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var h=0,i=0,j=0,k=0,l=0;c[a+8>>2]=b;c[a+12>>2]=d;h=+g[e>>2]-+g[b+12>>2];i=e+4|0;j=+g[i>>2]-+g[b+16>>2];k=+g[b+24>>2];l=+g[b+20>>2];g[a+20>>2]=h*k+j*l;g[a+24>>2]=k*j-h*l;l=+g[f>>2]-+g[d+12>>2];b=f+4|0;h=+g[b>>2]-+g[d+16>>2];j=+g[d+24>>2];k=+g[d+20>>2];g[a+28>>2]=l*j+h*k;g[a+32>>2]=j*h-l*k;k=+g[f>>2]-+g[e>>2];l=+g[b>>2]-+g[i>>2];g[a+36>> +2]=+O(+(k*k+l*l));return}function Zk(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,O=0,P=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,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;h=i;i=i+304|0;j=h+252|0;l=h+120|0;m=h+112|0;n=h+76|0;o=h+32|0;p=h+40|0;q=h;r=d+102880|0;s=d+102952|0;Ag(j,64,32,0,d+76|0,c[s>>2]|0);t=d+103007|0;if(a[t>>0]|0){u=c[d+102960>>2]|0;if(u){v=u;do{u=v+4|0;b[u>>1]=e[u>>1]&65534;g[v+76>>2]=0;v=c[v+112>>2]|0}while((v|0)!=0)}v=d+102940|0;u=c[v>>2]|0;if(!u)w=v;else{x=u;do{u=x+4|0;c[u>>2]=c[u>>2]&-34;c[x+128>>2]=0;g[x+132>>2]=1;x=c[x+12>>2]|0}while((x|0)!=0);w=v}}else w=d+102940|0;v=j+28|0;x=j+36|0;u=j+32|0;y=j+8|0;z=j+12|0;A=o+4|0;B=j+40|0;C=j+44|0;D= +q+4|0;E=q+8|0;F=q+16|0;G=f+12|0;H=q+12|0;I=f+20|0;J=q+20|0;K=q+24|0;L=d+103006|0;d=l+16|0;M=l+20|0;N=l+24|0;O=l+44|0;P=l+48|0;S=l+52|0;T=l+28|0;U=l+56|0;V=l+92|0;W=l+128|0;X=m+4|0;Y=c[w>>2]|0;a:do if(Y){Z=Y;_=1;$=0;while(1){aa=Z+4|0;ba=c[aa>>2]|0;do if((ba&4|0)!=0?(c[Z+128>>2]|0)<=8:0){if(!(ba&32)){ca=c[Z+48>>2]|0;da=c[Z+52>>2]|0;if(a[ca+38>>0]|0){ea=_;fa=$;break}if(a[da+38>>0]|0){ea=_;fa=$;break}ga=c[ca+8>>2]|0;ha=c[da+8>>2]|0;ia=c[ga>>2]|0;ja=c[ha>>2]|0;ka=b[ga+4>>1]|0;la=b[ha+4>>1]|0;if(!((ia| +0)!=0&(ka&2)!=0|(ja|0)!=0&(la&2)!=0)){ea=_;fa=$;break}if(!((ia|0)!=2|(ka&8)!=0|((ja|0)!=2|(la&8)!=0))){ea=_;fa=$;break}la=ga+44|0;ja=ga+76|0;ma=+g[ja>>2];ka=ha+44|0;ia=ha+76|0;na=+g[ia>>2];if(!(ma>2];ra=ha+56|0;sa=+g[ra>>2];ta=oa*(+g[ha+64>>2]-sa);g[pa>>2]=qa+oa*(+g[ha+60>>2]-qa);g[ra>>2]=sa+ta;ra=ha+68|0;ta=+g[ra>>2];g[ra>>2]=ta+oa*(+g[ha+72>>2]-ta);g[ia>>2]=ma;ua=ma}else ua=ma;else{ta=(na-ma)/(1-ma);ia=ga+52|0;ma=+g[ia>>2];ha=ga+56|0;oa=+g[ha>> +2];sa=ta*(+g[ga+64>>2]-oa);g[ia>>2]=ma+ta*(+g[ga+60>>2]-ma);g[ha>>2]=oa+sa;ha=ga+68|0;sa=+g[ha>>2];g[ha>>2]=sa+ta*(+g[ga+72>>2]-sa);g[ja>>2]=na;ua=na}ja=c[Z+56>>2]|0;ga=c[Z+60>>2]|0;c[d>>2]=0;c[M>>2]=0;g[N>>2]=0;c[O>>2]=0;c[P>>2]=0;g[S>>2]=0;mf(l,c[ca+12>>2]|0,ja);mf(T,c[da+12>>2]|0,ga);va=U;wa=la;xa=va+36|0;do{c[va>>2]=c[wa>>2];va=va+4|0;wa=wa+4|0}while((va|0)<(xa|0));va=V;wa=ka;xa=va+36|0;do{c[va>>2]=c[wa>>2];va=va+4|0;wa=wa+4|0}while((va|0)<(xa|0));g[W>>2]=1;hf(m,l);if((c[m>>2]|0)==3){na=ua+(1- +ua)*+g[X>>2];ya=na<1?na:1}else ya=1;g[Z+132>>2]=ya;c[aa>>2]=c[aa>>2]|32;za=ya}else za=+g[Z+132>>2];if(za<_){ea=za;fa=Z}else{ea=_;fa=$}}else{ea=_;fa=$}while(0);aa=c[Z+12>>2]|0;if(aa){Z=aa;_=ea;$=fa;continue}if(ea>.9999988079071045|(fa|0)==0)break a;aa=c[(c[fa+48>>2]|0)+8>>2]|0;ba=c[(c[fa+52>>2]|0)+8>>2]|0;ka=aa+44|0;va=l;wa=ka;xa=va+36|0;do{c[va>>2]=c[wa>>2];va=va+4|0;wa=wa+4|0}while((va|0)<(xa|0));la=ba+44|0;va=n;wa=la;xa=va+36|0;do{c[va>>2]=c[wa>>2];va=va+4|0;wa=wa+4|0}while((va|0)<(xa|0));ga=aa+ +76|0;na=+g[ga>>2];sa=(ea-na)/(1-na);da=aa+60|0;ja=aa+52|0;na=+g[ja>>2];ca=aa+64|0;ha=aa+56|0;ta=+g[ha>>2];oa=sa*(+g[ca>>2]-ta);g[ja>>2]=na+sa*(+g[da>>2]-na);g[ha>>2]=ta+oa;ha=aa+72|0;ja=aa+68|0;oa=+g[ja>>2];ta=oa+sa*(+g[ha>>2]-oa);g[ja>>2]=ta;g[ga>>2]=ea;ga=aa+52|0;ja=c[ga>>2]|0;ia=c[ga+4>>2]|0;ga=aa+60|0;c[ga>>2]=ja;c[ga+4>>2]=ia;g[ha>>2]=ta;oa=+R(+ta);ga=aa+20|0;g[ga>>2]=oa;sa=+Q(+ta);ra=aa+24|0;g[ra>>2]=sa;pa=aa+44|0;ta=+g[pa>>2];Aa=aa+48|0;na=+g[Aa>>2];ma=(c[k>>2]=ja,+g[k>>2])-(sa*ta-oa*na);qa= +(c[k>>2]=ia,+g[k>>2])-(oa*ta+sa*na);ia=aa+12|0;g[ia>>2]=ma;ja=aa+16|0;g[ja>>2]=qa;Ba=ba+76|0;qa=+g[Ba>>2];ma=(ea-qa)/(1-qa);Ca=ba+60|0;Da=ba+52|0;qa=+g[Da>>2];Ea=ba+64|0;Fa=ba+56|0;na=+g[Fa>>2];sa=ma*(+g[Ea>>2]-na);g[Da>>2]=qa+ma*(+g[Ca>>2]-qa);g[Fa>>2]=na+sa;Fa=ba+72|0;Da=ba+68|0;sa=+g[Da>>2];na=sa+ma*(+g[Fa>>2]-sa);g[Da>>2]=na;g[Ba>>2]=ea;Ba=ba+52|0;Da=c[Ba>>2]|0;Ga=c[Ba+4>>2]|0;Ba=ba+60|0;c[Ba>>2]=Da;c[Ba+4>>2]=Ga;g[Fa>>2]=na;sa=+R(+na);Ba=ba+20|0;g[Ba>>2]=sa;ma=+Q(+na);Ha=ba+24|0;g[Ha>>2]=ma; +Ia=ba+44|0;na=+g[Ia>>2];Ja=ba+48|0;qa=+g[Ja>>2];ta=(c[k>>2]=Da,+g[k>>2])-(ma*na-sa*qa);oa=(c[k>>2]=Ga,+g[k>>2])-(sa*na+ma*qa);Ga=ba+12|0;g[Ga>>2]=ta;Da=ba+16|0;g[Da>>2]=oa;$j(fa,c[s>>2]|0);Ka=fa+4|0;La=c[Ka>>2]|0;Ma=La&-33;c[Ka>>2]=Ma;Na=fa+128|0;c[Na>>2]=(c[Na>>2]|0)+1;if((La&6|0)==6){Na=aa+4|0;Oa=b[Na>>1]|0;Pa=Oa&65535;if(!(Pa&2)){Qa=(Pa|2)&65535;b[Na>>1]=Qa;g[aa+160>>2]=0;Ra=Qa}else Ra=Oa;Oa=ba+4|0;Qa=e[Oa>>1]|0;if(!(Qa&2)){b[Oa>>1]=Qa|2;g[ba+160>>2]=0;Sa=b[Na>>1]|0}else Sa=Ra;c[u>>2]=0;Qa=aa+ +8|0;c[Qa>>2]=0;c[c[y>>2]>>2]=aa;Pa=ba+8|0;c[Pa>>2]=1;c[(c[y>>2]|0)+4>>2]=ba;c[v>>2]=2;c[x>>2]=1;c[c[z>>2]>>2]=fa;b[Na>>1]=Sa&65535|1;b[Oa>>1]=e[Oa>>1]|1;c[Ka>>2]=Ma|1;c[o>>2]=aa;c[A>>2]=ba;Ma=aa;Oa=0;while(1){b:do if((c[Ma>>2]|0)==2?(Na=c[Ma+128>>2]|0,(Na|0)!=0):0){Ta=Ma+4|0;Ua=Na;do{if((c[v>>2]|0)==(c[B>>2]|0))break b;if((c[x>>2]|0)==(c[C>>2]|0))break b;Na=c[Ua+4>>2]|0;Va=Na+4|0;c:do if(!(c[Va>>2]&1)){Wa=c[Ua>>2]|0;do if((c[Wa>>2]|0)==2){if(b[Ta>>1]&8)break;if(!(b[Wa+4>>1]&8))break c}while(0);if(a[(c[Na+ +48>>2]|0)+38>>0]|0)break;if(a[(c[Na+52>>2]|0)+38>>0]|0)break;Xa=Wa+44|0;va=p;wa=Xa;xa=va+36|0;do{c[va>>2]=c[wa>>2];va=va+4|0;wa=wa+4|0}while((va|0)<(xa|0));Ya=Wa+4|0;if(!(b[Ya>>1]&1)){Za=Wa+76|0;oa=+g[Za>>2];ta=(ea-oa)/(1-oa);_a=Wa+52|0;oa=+g[_a>>2];$a=Wa+56|0;qa=+g[$a>>2];ma=ta*(+g[Wa+64>>2]-qa);g[_a>>2]=oa+ta*(+g[Wa+60>>2]-oa);g[$a>>2]=qa+ma;$a=Wa+72|0;_a=Wa+68|0;ma=+g[_a>>2];qa=ma+ta*(+g[$a>>2]-ma);g[_a>>2]=qa;g[Za>>2]=ea;Za=Wa+52|0;_a=c[Za>>2]|0;ab=c[Za+4>>2]|0;Za=Wa+60|0;c[Za>>2]=_a;c[Za+4>> +2]=ab;g[$a>>2]=qa;ma=+R(+qa);g[Wa+20>>2]=ma;ta=+Q(+qa);g[Wa+24>>2]=ta;qa=+g[Wa+44>>2];oa=+g[Wa+48>>2];na=(c[k>>2]=_a,+g[k>>2])-(ta*qa-ma*oa);sa=(c[k>>2]=ab,+g[k>>2])-(ma*qa+ta*oa);g[Wa+12>>2]=na;g[Wa+16>>2]=sa}$j(Na,c[s>>2]|0);ab=c[Va>>2]|0;do if(!(ab&4)){va=Xa;wa=p;xa=va+36|0;do{c[va>>2]=c[wa>>2];va=va+4|0;wa=wa+4|0}while((va|0)<(xa|0));sa=+g[Wa+72>>2];na=+R(+sa);g[Wa+20>>2]=na;oa=+Q(+sa);g[Wa+24>>2]=oa;sa=+g[Wa+44>>2];ta=+g[Wa+48>>2];qa=+g[Wa+64>>2]-(na*sa+oa*ta);g[Wa+12>>2]=+g[Wa+60>>2]-(oa*sa- +na*ta);g[Wa+16>>2]=qa}else{if(!(ab&2)){va=Xa;wa=p;xa=va+36|0;do{c[va>>2]=c[wa>>2];va=va+4|0;wa=wa+4|0}while((va|0)<(xa|0));qa=+g[Wa+72>>2];ta=+R(+qa);g[Wa+20>>2]=ta;na=+Q(+qa);g[Wa+24>>2]=na;qa=+g[Wa+44>>2];sa=+g[Wa+48>>2];oa=+g[Wa+64>>2]-(ta*qa+na*sa);g[Wa+12>>2]=+g[Wa+60>>2]-(na*qa-ta*sa);g[Wa+16>>2]=oa;break}c[Va>>2]=ab|1;_a=c[x>>2]|0;c[x>>2]=_a+1;c[(c[z>>2]|0)+(_a<<2)>>2]=Na;_a=e[Ya>>1]|0;if(_a&1)break;b[Ya>>1]=_a|1;if((_a&2|0)==0&(c[Wa>>2]|0)!=0){b[Ya>>1]=_a|3;g[Wa+160>>2]=0}_a=c[v>>2]|0;c[Wa+ +8>>2]=_a;c[(c[y>>2]|0)+(_a<<2)>>2]=Wa;c[v>>2]=_a+1}while(0)}while(0);Ua=c[Ua+12>>2]|0}while((Ua|0)!=0)}while(0);Ua=Oa+1|0;if((Ua|0)>=2)break;Ma=c[o+(Ua<<2)>>2]|0;Oa=Ua}oa=(1-ea)*+g[f>>2];g[q>>2]=oa;g[D>>2]=1/oa;g[E>>2]=1;c[F>>2]=20;c[H>>2]=c[G>>2];c[J>>2]=c[I>>2];a[K>>0]=0;Dg(j,q,c[Qa>>2]|0,c[Pa>>2]|0);Oa=c[v>>2]|0;if((Oa|0)>0){Ma=Oa;Oa=0;while(1){aa=c[(c[y>>2]|0)+(Oa<<2)>>2]|0;ba=aa+4|0;b[ba>>1]=e[ba>>1]&65534;if((c[aa>>2]|0)==2){hl(aa);ba=c[aa+128>>2]|0;if(ba){aa=ba;do{ba=(c[aa+4>>2]|0)+4|0;c[ba>> +2]=c[ba>>2]&-34;aa=c[aa+12>>2]|0}while((aa|0)!=0)}bb=c[v>>2]|0}else bb=Ma;Oa=Oa+1|0;if((Oa|0)>=(bb|0))break;else Ma=bb}}sl(r);if(a[L>>0]|0)break}else{c[Ka>>2]=La&-37;va=ka;wa=l;xa=va+36|0;do{c[va>>2]=c[wa>>2];va=va+4|0;wa=wa+4|0}while((va|0)<(xa|0));va=la;wa=n;xa=va+36|0;do{c[va>>2]=c[wa>>2];va=va+4|0;wa=wa+4|0}while((va|0)<(xa|0));oa=+g[ha>>2];sa=+R(+oa);g[ga>>2]=sa;ta=+Q(+oa);g[ra>>2]=ta;oa=+g[pa>>2];qa=+g[Aa>>2];na=+g[ca>>2]-(sa*oa+ta*qa);g[ia>>2]=+g[da>>2]-(ta*oa-sa*qa);g[ja>>2]=na;na=+g[Fa>> +2];qa=+R(+na);g[Ba>>2]=qa;sa=+Q(+na);g[Ha>>2]=sa;na=+g[Ia>>2];oa=+g[Ja>>2];ta=+g[Ea>>2]-(qa*na+sa*oa);g[Ga>>2]=+g[Ca>>2]-(sa*na-qa*oa);g[Da>>2]=ta}Z=c[w>>2]|0;if(!Z)break a;else{_=1;$=0}}a[t>>0]=0;Bg(j);i=h;return}while(0);a[t>>0]=1;Bg(j);i=h;return}function _k(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,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;j=i;i=i+64|0;k=j+24|0;l=j+32|0;m=j+16|0;n=j+8|0;o=j;Yn(k);p=b+102876|0;q=c[p>>2]|0;if(!(q&1))r=q;else{sl(b+102880|0);q=c[p>>2]&-2;c[p>> +2]=q;r=q}c[p>>2]=r|2;g[l>>2]=d;c[l+12>>2]=e;c[l+16>>2]=f;c[l+20>>2]=h;h=d>0;f=l+4|0;g[f>>2]=h?1/d:0;e=b+103E3|0;g[l+8>>2]=+g[e>>2]*d;a[l+24>>0]=a[b+103004>>0]|0;Yn(m);rl(b+102880|0);g[b+103012>>2]=+_n(m);if((a[b+103007>>0]|0)!=0&h){Yn(n);h=c[b+102968>>2]|0;if(h){m=h;do{tm(m,l);m=c[m+408>>2]|0}while((m|0)!=0)}Yk(b,l);g[b+103016>>2]=+_n(n);s=+g[l>>2]}else s=d;if((a[b+103005>>0]|0)!=0&s>0){Yn(o);Zk(b,l);g[b+103036>>2]=+_n(o);t=+g[l>>2]}else t=s;if(t>0)c[e>>2]=c[f>>2];f=c[p>>2]|0;if(!(f&4)){u=f&-3;c[p>> +2]=u;v=+_n(k);w=b+103008|0;g[w>>2]=v;i=j;return}e=c[b+102960>>2]|0;if(!e){u=f&-3;c[p>>2]=u;v=+_n(k);w=b+103008|0;g[w>>2]=v;i=j;return}else x=e;do{g[x+92>>2]=0;g[x+96>>2]=0;g[x+100>>2]=0;x=c[x+112>>2]|0}while((x|0)!=0);u=f&-3;c[p>>2]=u;v=+_n(k);w=b+103008|0;g[w>>2]=v;i=j;return}function $k(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;g=a+102880|0;c[f>>2]=g;c[f+4>>2]=b;bl(g,f,d);f=c[a+102968>>2]|0;if(!f){i=e;return}a=f;do{if(rb[c[(c[b>>2]|0)+16>>2]&31](b,a)|0)Im(a,b,d);a=c[a+408>>2]|0}while((a| +0)!=0);i=e;return}function al(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;f=i;i=i+32|0;h=f+24|0;j=f;k=a+102880|0;c[h>>2]=k;c[h+4>>2]=b;g[j+16>>2]=1;l=d;m=c[l+4>>2]|0;n=j;c[n>>2]=c[l>>2];c[n+4>>2]=m;m=e;n=c[m+4>>2]|0;l=j+8|0;c[l>>2]=c[m>>2];c[l+4>>2]=n;cl(k,h,j);j=c[a+102968>>2]|0;if(!j){i=f;return}a=j;do{if(rb[c[(c[b>>2]|0)+16>>2]&31](b,a)|0)Jm(a,b,d,e);a=c[a+408>>2]|0}while((a|0)!=0);i=f;return}function bl(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,y=0,z=0,A=0;e=i;i=i+1040|0;f=e;h=f+4|0;c[f>>2]=h;j=f+1028|0;c[j>>2]=0;k=f+1032|0;c[k>>2]=256;c[h>>2]=c[a>>2];l=c[j>>2]|0;m=l+1|0;c[j>>2]=m;a:do if((l|0)>-1){n=a+4|0;o=d+4|0;p=d+8|0;q=d+12|0;r=b+4|0;s=m;while(1){t=s+-1|0;c[j>>2]=t;u=c[f>>2]|0;v=c[u+(t<<2)>>2]|0;do if((v|0)!=-1?(w=c[n>>2]|0,!((+g[d>>2]-+g[w+(v*36|0)+8>>2]>0?1:+g[o>>2]-+g[w+(v*36|0)+12>>2]>0)|+g[w+(v*36|0)>>2]-+g[p>>2]>0|+g[w+(v*36|0)+4>>2]-+g[q>>2]>0)):0){x=w+(v*36|0)+24|0;if((c[x>>2]|0)==-1){y=c[r>> +2]|0;if(!(rb[c[(c[y>>2]|0)+8>>2]&31](y,c[(c[(c[(c[b>>2]|0)+4>>2]|0)+(v*36|0)+16>>2]|0)+16>>2]|0)|0))break a;z=c[j>>2]|0;break}if((t|0)==(c[k>>2]|0)?(c[k>>2]=t<<1,y=$n(t<<3)|0,c[f>>2]=y,Bp(y|0,u|0,c[j>>2]<<2|0)|0,(u|0)!=(h|0)):0)ao(u);y=c[f>>2]|0;c[y+(c[j>>2]<<2)>>2]=c[x>>2];x=(c[j>>2]|0)+1|0;c[j>>2]=x;A=w+(v*36|0)+28|0;if((x|0)==(c[k>>2]|0)?(c[k>>2]=x<<1,w=$n(x<<3)|0,c[f>>2]=w,Bp(w|0,y|0,c[j>>2]<<2|0)|0,(y|0)!=(h|0)):0)ao(y);c[(c[f>>2]|0)+(c[j>>2]<<2)>>2]=c[A>>2];A=(c[j>>2]|0)+1|0;c[j>>2]=A;z=A}else z= +t;while(0);if((z|0)>0)s=z;else break}}while(0);z=c[f>>2]|0;if((z|0)==(h|0)){i=e;return}ao(z);c[f>>2]=0;i=e;return}function cl(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,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,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;e=i;i=i+1088|0;f=e+1064|0;h=e+1056|0;j=e+20|0;l=e;m=+g[d>>2];n=+g[d+4>>2]; +o=d+8|0;p=+g[o>>2]-m;q=+g[d+12>>2]-n;r=+O(+(p*p+q*q));if(r<1.1920928955078125E-7){s=q;t=p}else{u=1/r;s=q*u;t=p*u}u=-s;r=s<-0?u:s;s=t>0?t:-t;v=+g[d+16>>2];w=m+p*v;x=n+q*v;y=j+4|0;c[j>>2]=y;z=j+1028|0;c[z>>2]=0;A=j+1032|0;c[A>>2]=256;c[y>>2]=c[a>>2];B=c[z>>2]|0;C=B+1|0;c[z>>2]=C;a:do if((B|0)>-1){D=(g[k>>2]=n>x?n:x,c[k>>2]|0);E=(g[k>>2]=m>w?m:w,c[k>>2]|0);F=(g[k>>2]=n>2]|0);G=a+4|0;H=l+8|0;I=l+16|0;J=f+8|0;K=l+4|0;L=l+8|0;M=l+12|0;N=h+4|0;P=b+4|0;Q=C;R=D;D=E;E=F;F=(g[k>>2]=m>2]| +0);S=y;T=v;while(1){U=(c[k>>2]=F,+g[k>>2]);V=(c[k>>2]=E,+g[k>>2]);W=(c[k>>2]=D,+g[k>>2]);X=(c[k>>2]=R,+g[k>>2]);Y=Q;Z=S;while(1){_=Y+-1|0;c[z>>2]=_;$=c[Z+(_<<2)>>2]|0;if(($|0)==-1){aa=_;ba=Z}else{ca=c[G>>2]|0;da=+g[ca+($*36|0)+8>>2];ea=+g[ca+($*36|0)+12>>2];fa=+g[ca+($*36|0)>>2];ga=+g[ca+($*36|0)+4>>2];if(U-da>0|V-ea>0|fa-W>0|ga-X>0){ha=R;ia=D;ja=E;ka=F;la=T;break}ma=(m-(da+fa)*.5)*u+t*(n-(ea+ga)*.5);if((ma>0?ma:-ma)-(r*((da-fa)*.5)+s*((ea-ga)*.5))>0){ha=R;ia=D;ja=E;ka=F;la=T;break}na=ca+($*36|0)+ +24|0;if((c[na>>2]|0)==-1){oa=$;pa=13;break}if((_|0)==(c[A>>2]|0)?(c[A>>2]=_<<1,qa=$n(_<<3)|0,c[j>>2]=qa,Bp(qa|0,Z|0,c[z>>2]<<2|0)|0,(Z|0)!=(y|0)):0)ao(Z);qa=c[j>>2]|0;c[qa+(c[z>>2]<<2)>>2]=c[na>>2];na=(c[z>>2]|0)+1|0;c[z>>2]=na;_=ca+($*36|0)+28|0;if((na|0)==(c[A>>2]|0)?(c[A>>2]=na<<1,$=$n(na<<3)|0,c[j>>2]=$,Bp($|0,qa|0,c[z>>2]<<2|0)|0,(qa|0)!=(y|0)):0)ao(qa);qa=c[j>>2]|0;c[qa+(c[z>>2]<<2)>>2]=c[_>>2];_=(c[z>>2]|0)+1|0;c[z>>2]=_;aa=_;ba=qa}if((aa|0)>0){Y=aa;Z=ba}else break a}if((pa|0)==13){pa=0;Z= +d;Y=c[Z+4>>2]|0;qa=l;c[qa>>2]=c[Z>>2];c[qa+4>>2]=Y;Y=o;qa=c[Y+4>>2]|0;Z=H;c[Z>>2]=c[Y>>2];c[Z+4>>2]=qa;g[I>>2]=T;qa=c[(c[(c[b>>2]|0)+4>>2]|0)+(oa*36|0)+16>>2]|0;Z=c[qa+16>>2]|0;Y=c[Z+12>>2]|0;if(sb[c[(c[Y>>2]|0)+24>>2]&15](Y,f,l,(c[Z+8>>2]|0)+12|0,c[qa+20>>2]|0)|0){X=+g[J>>2];W=1-X;V=W*+g[K>>2]+X*+g[M>>2];g[h>>2]=+g[l>>2]*W+X*+g[L>>2];g[N>>2]=V;qa=c[P>>2]|0;ra=+jb[c[(c[qa>>2]|0)+8>>2]&1](qa,Z,h,f,X)}else ra=+g[I>>2];if(ra==0)break a;if(ra>0){X=m+p*ra;V=n+q*ra;Z=(g[k>>2]=m>2]|0);qa=(g[k>> +2]=n>2]|0);Y=(g[k>>2]=m>X?m:X,c[k>>2]|0);ha=(g[k>>2]=n>V?n:V,c[k>>2]|0);ia=Y;ja=qa;ka=Z;la=ra}else{ha=R;ia=D;ja=E;ka=F;la=T}}Z=c[z>>2]|0;if((Z|0)<=0)break a;Q=Z;R=ha;D=ia;E=ja;F=ka;S=c[j>>2]|0;T=la}}while(0);ka=c[j>>2]|0;if((ka|0)==(y|0)){i=e;return}ao(ka);c[j>>2]=0;i=e;return}function dl(d,e,f){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;h=d+12|0;i=d+28|0;j=d+4|0;k=(a[e+39>>0]|0)==0?0:8;b[j>>1]=k;if(!(a[e+38>>0]|0))l=k;else{m=(k&65535|16)&65535;b[j>>1]=m;l=m}if(!(a[e+36>> +0]|0))n=l;else{m=(l&65535|4)&65535;b[j>>1]=m;n=m}if(!(a[e+37>>0]|0))o=n;else{m=(n&65535|2)&65535;b[j>>1]=m;o=m}if(a[e+40>>0]|0)b[j>>1]=o&65535|32;c[d+104>>2]=f;f=e+4|0;o=c[f>>2]|0;j=c[f+4>>2]|0;f=h;c[f>>2]=o;c[f+4>>2]=j;f=e+12|0;p=+g[f>>2];g[d+20>>2]=+R(+p);g[d+24>>2]=+Q(+p);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];g[d+44>>2]=0;g[d+48>>2]=0;h=d+52|0;c[h>>2]=o;c[h+4>>2]=j;h=d+60|0;c[h>>2]=o;c[h+4>>2]=j;j=c[f>>2]|0;c[d+68>>2]=j;c[d+72>>2]=j;g[d+76>>2]=0;c[d+124>> +2]=0;c[d+128>>2]=0;c[d+108>>2]=0;c[d+112>>2]=0;j=e+16|0;f=c[j+4>>2]|0;h=d+80|0;c[h>>2]=c[j>>2];c[h+4>>2]=f;c[d+88>>2]=c[e+24>>2];c[d+148>>2]=c[e+28>>2];c[d+152>>2]=c[e+32>>2];c[d+156>>2]=c[e+48>>2];g[d+92>>2]=0;g[d+96>>2]=0;g[d+100>>2]=0;g[d+160>>2]=0;f=c[e>>2]|0;c[d>>2]=f;h=(f|0)==2;g[d+132>>2]=h?1:0;g[d+136>>2]=h?1:0;g[d+140>>2]=0;g[d+144>>2]=0;c[d+164>>2]=c[e+44>>2];c[d+116>>2]=0;c[d+120>>2]=0;return}function el(a){a=a|0;return}function fl(a,d){a=a|0;d=d|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;f=i;i=i+16|0;h=f;j=a+104|0;if(c[(c[j>>2]|0)+102876>>2]&2){i=f;return}if((c[a>>2]|0)==(d|0)){i=f;return}c[a>>2]=d;gl(a);if((c[a>>2]|0)==0?(g[a+80>>2]=0,g[a+84>>2]=0,g[a+88>>2]=0,d=c[a+72>>2]|0,c[a+68>>2]=d,l=a+60|0,m=c[l>>2]|0,n=c[l+4>>2]|0,l=a+52|0,c[l>>2]=m,c[l+4>>2]=n,o=(c[k>>2]=d,+g[k>>2]),p=+R(+o),g[h+8>>2]=p,q=+Q(+o),g[h+12>>2]=q,o=+g[a+44>>2],r=+g[a+48>>2],s=(c[k>>2]=m,+g[k>>2])-(q*o-p*r),t=(c[k>>2]=n,+g[k>>2])-(p*o+q*r),g[h>>2]=s,g[h+4>>2]=t,n=(c[j>>2]|0)+102880|0,m=c[a+116>> +2]|0,(m|0)!=0):0){d=a+12|0;l=m;do{Nk(l,n,h,d);l=c[l+4>>2]|0}while((l|0)!=0)}l=a+4|0;d=e[l>>1]|0;if(!(d&2)){b[l>>1]=d|2;g[a+160>>2]=0}g[a+92>>2]=0;g[a+96>>2]=0;g[a+100>>2]=0;d=a+128|0;l=c[d>>2]|0;if(l){h=l;do{l=h;h=c[h+12>>2]|0;ql((c[j>>2]|0)+102880|0,c[l+4>>2]|0)}while((h|0)!=0)}c[d>>2]=0;d=(c[j>>2]|0)+102880|0;j=c[a+116>>2]|0;if(!j){i=f;return}else u=j;do{j=c[u+28>>2]|0;if((j|0)>0){a=u+24|0;h=0;do{eg(d,c[(c[a>>2]|0)+(h*28|0)+24>>2]|0);h=h+1|0}while((h|0)!=(j|0))}u=c[u+4>>2]|0}while((u|0)!=0);i=f; +return}function gl(a){a=a|0;var 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;d=i;i=i+16|0;e=d;f=a+132|0;h=a+136|0;j=a+140|0;l=a+144|0;m=a+44|0;g[m>>2]=0;n=a+48|0;g[n>>2]=0;c[f>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;c[f+12>>2]=0;if((c[a>>2]|0)>>>0<2){o=a+12|0;p=c[o>>2]|0;q=c[o+4>>2]|0;o=a+52|0;c[o>>2]=p;c[o+4>>2]=q;o=a+60|0;c[o>>2]=p;c[o+4>>2]=q;c[a+68>>2]=c[a+72>>2];i=d;return}q=c[610]|0; +o=c[611]|0;p=c[a+116>>2]|0;if(p){r=e+4|0;s=e+8|0;t=e+12|0;u=0;v=0;w=q;x=o;y=p;while(1){z=+g[y>>2];if(z==0){A=u;B=v;C=x;D=w}else{p=c[y+12>>2]|0;ob[c[(c[p>>2]|0)+32>>2]&31](p,e,z);z=+g[e>>2];E=z+ +g[f>>2];g[f>>2]=E;p=(g[k>>2]=(c[k>>2]=w,+g[k>>2])+z*+g[r>>2],c[k>>2]|0);F=(g[k>>2]=(c[k>>2]=x,+g[k>>2])+z*+g[s>>2],c[k>>2]|0);z=+g[t>>2]+ +g[j>>2];g[j>>2]=z;A=z;B=E;C=F;D=p}y=c[y+4>>2]|0;if(!y){G=A;H=B;I=C;J=D;break}else{u=A;v=B;w=D;x=C}}if(H>0){B=1/H;g[h>>2]=B;C=(g[k>>2]=(c[k>>2]=J,+g[k>>2])*B,c[k>>2]|0); +K=G;L=C;M=(g[k>>2]=(c[k>>2]=I,+g[k>>2])*B,c[k>>2]|0);N=H}else{O=I;P=J;Q=G;R=10}}else{O=o;P=q;Q=0;R=10}if((R|0)==10){g[f>>2]=1;g[h>>2]=1;K=Q;L=P;M=O;N=1}if(K>0?(b[a+4>>1]&16)==0:0){Q=(c[k>>2]=L,+g[k>>2]);G=(c[k>>2]=M,+g[k>>2]);H=K-(G*G+Q*Q)*N;g[j>>2]=H;S=G;T=Q;U=1/H}else{g[j>>2]=0;H=(c[k>>2]=L,+g[k>>2]);S=(c[k>>2]=M,+g[k>>2]);T=H;U=0}g[l>>2]=U;l=a+60|0;U=+g[l>>2];j=a+64|0;H=+g[j>>2];c[m>>2]=L;c[n>>2]=M;Q=+g[a+24>>2];G=+g[a+20>>2];N=+g[a+12>>2]+(Q*T-G*S);K=T*G+Q*S+ +g[a+16>>2];g[l>>2]=N;g[j>>2]=K;g[a+ +52>>2]=N;g[a+56>>2]=K;S=+g[a+88>>2];j=a+80|0;g[j>>2]=+g[j>>2]-S*(K-H);j=a+84|0;g[j>>2]=S*(N-U)+ +g[j>>2];i=d;return}function hl(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;b=i;i=i+16|0;d=b;e=+g[a+68>>2];f=+R(+e);g[d+8>>2]=f;h=+Q(+e);g[d+12>>2]=h;e=+g[a+44>>2];j=+g[a+48>>2];k=+g[a+56>>2]-(e*f+h*j);g[d>>2]=+g[a+52>>2]-(h*e-f*j);g[d+4>>2]=k;l=(c[a+104>>2]|0)+102880|0;m=c[a+116>>2]|0;if(!m){i=b;return}n=a+12|0;a=m;do{Nk(a,l,d,n);a=c[a+4>>2]|0}while((a|0)!=0);i=b;return}function il(a,d){a=a|0; +d=d|0;var e=0,f=0,h=0,i=0;e=a+104|0;f=c[e>>2]|0;if(c[f+102876>>2]&2){h=0;return h|0}i=Sn(f,44)|0;Ik(i);Jk(i,f,a,d);if(b[a+4>>1]&32)Lk(i,(c[e>>2]|0)+102880|0,a+12|0);d=a+116|0;c[i+4>>2]=c[d>>2];c[d>>2]=i;d=a+120|0;c[d>>2]=(c[d>>2]|0)+1;c[i+8>>2]=a;if(+g[i>>2]>0)gl(a);a=(c[e>>2]|0)+102876|0;c[a>>2]=c[a>>2]|1;h=i;return h|0}function jl(a,d){a=a|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;e=a+104|0;if(c[(c[e>>2]|0)+102876>>2]&2)return;f=a+116|0;g=c[f>>2]|0;a:do if(g){h=g;i=f;while(1){if((h|0)==(d|0)){j=i;break}i= +h+4|0;h=c[i>>2]|0;if(!h)break a}c[j>>2]=c[d+4>>2]}while(0);j=c[a+128>>2]|0;if(j){f=j;do{j=c[f+4>>2]|0;f=c[f+12>>2]|0;if((c[j+48>>2]|0)==(d|0)?1:(c[j+52>>2]|0)==(d|0))ql((c[e>>2]|0)+102880|0,j)}while((f|0)!=0)}f=c[e>>2]|0;if(b[a+4>>1]&32)Mk(d,f+102880|0);Kk(d,f);c[d+8>>2]=0;c[d+4>>2]=0;Tn(f,d,44);d=a+120|0;c[d>>2]=(c[d>>2]|0)+-1;gl(a);return}function kl(a,d){a=a|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;if(c[(c[a+104>>2]|0)+102876>>2]&2)return;if((c[a>>2]|0)!=2)return;e=a+140|0;g[e>> +2]=0;f=a+144|0;g[f>>2]=0;h=+g[d>>2];i=!(h<=0)?h:1;g[a+132>>2]=i;g[a+136>>2]=1/i;h=+g[d+12>>2];if(h>0?(b[a+4>>1]&16)==0:0){j=+g[d+4>>2];l=+g[d+8>>2];m=h-i*(j*j+l*l);g[e>>2]=m;g[f>>2]=1/m}f=a+60|0;m=+g[f>>2];e=a+64|0;l=+g[e>>2];n=d+4|0;d=c[n>>2]|0;o=c[n+4>>2]|0;n=a+44|0;c[n>>2]=d;c[n+4>>2]=o;j=+g[a+24>>2];i=(c[k>>2]=d,+g[k>>2]);h=+g[a+20>>2];p=(c[k>>2]=o,+g[k>>2]);q=+g[a+12>>2]+(j*i-h*p);r=i*h+j*p+ +g[a+16>>2];g[f>>2]=q;g[e>>2]=r;g[a+52>>2]=q;g[a+56>>2]=r;p=+g[a+88>>2];e=a+80|0;g[e>>2]=+g[e>>2]-p*(r- +l);e=a+84|0;g[e>>2]=p*(q-m)+ +g[e>>2];return}function ll(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0;if((c[b>>2]|0)!=2?(c[d>>2]|0)!=2:0){e=0;return e|0}f=c[b+124>>2]|0;if(!f){e=1;return e|0}else g=f;while(1){if((c[g>>2]|0)==(d|0)?(a[(c[g+4>>2]|0)+61>>0]|0)==0:0){e=0;h=7;break}g=c[g+12>>2]|0;if(!g){e=1;h=7;break}}if((h|0)==7)return e|0;return 0}function ml(a,b,d){a=a|0;b=b|0;d=+d;var e=0,f=0,h=0,i=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0;e=c[a+104>>2]|0;if(c[e+102876>>2]&2)return;f=a+12|0;h=+R(+d);g[a+20>>2]=h;i=+Q(+d); +g[a+24>>2]=i;j=b;b=c[j>>2]|0;l=c[j+4>>2]|0;j=f;c[j>>2]=b;c[j+4>>2]=l;j=a+28|0;c[j>>2]=c[f>>2];c[j+4>>2]=c[f+4>>2];c[j+8>>2]=c[f+8>>2];c[j+12>>2]=c[f+12>>2];j=a+60|0;m=+g[a+44>>2];n=+g[a+48>>2];o=(c[k>>2]=b,+g[k>>2])+(i*m-h*n);p=m*h+i*n+(c[k>>2]=l,+g[k>>2]);g[j>>2]=o;g[a+64>>2]=p;g[a+72>>2]=d;l=j;j=c[l+4>>2]|0;b=a+52|0;c[b>>2]=c[l>>2];c[b+4>>2]=j;g[a+68>>2]=d;j=e+102880|0;e=c[a+116>>2]|0;if(!e)return;else q=e;do{Nk(q,j,f,f);q=c[q+4>>2]|0}while((q|0)!=0);return}function nl(a,d){a=a|0;d=d|0;var e=0, +f=0,g=0,h=0,i=0;e=a+4|0;f=b[e>>1]|0;if(!((f&32)!=0^d))return;g=f&65535;if(d){b[e>>1]=g|32;d=(c[a+104>>2]|0)+102880|0;f=c[a+116>>2]|0;if(!f)return;h=a+12|0;i=f;do{Lk(i,d,h);i=c[i+4>>2]|0}while((i|0)!=0);return}b[e>>1]=g&65503;g=a+104|0;e=(c[g>>2]|0)+102880|0;i=c[a+116>>2]|0;if(i){h=i;do{Mk(h,e);h=c[h+4>>2]|0}while((h|0)!=0)}h=a+128|0;a=c[h>>2]|0;if(a){e=a;do{a=e;e=c[e+12>>2]|0;ql((c[g>>2]|0)+102880|0,c[a+4>>2]|0)}while((e|0)!=0)}c[h>>2]=0;return}function ol(a,c){a=a|0;c=c|0;var d=0,f=0;d=a+4|0;f=e[d>> +1]|0;if(!((f&16|0)!=0^c))return;b[d>>1]=c?f|16:f&65519;g[a+88>>2]=0;gl(a);return}function pl(a){a=a|0;$f(a);c[a+60>>2]=0;c[a+64>>2]=0;c[a+68>>2]=2088;c[a+72>>2]=2092;c[a+76>>2]=0;return}function ql(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;d=c[(c[b+48>>2]|0)+8>>2]|0;e=c[(c[b+52>>2]|0)+8>>2]|0;f=c[a+72>>2]|0;if((f|0)!=0?(c[b+4>>2]&2|0)!=0:0)kb[c[(c[f>>2]|0)+12>>2]&63](f,b);f=c[b+8>>2]|0;g=b+12|0;if(f)c[f+12>>2]=c[g>>2];h=c[g>>2]|0;if(h)c[h+8>>2]=f;f=a+60|0;if((c[f>>2]|0)==(b|0))c[f>> +2]=h;h=c[b+24>>2]|0;f=b+28|0;if(h)c[h+12>>2]=c[f>>2];g=c[f>>2]|0;if(g)c[g+8>>2]=h;h=d+128|0;if((b+16|0)==(c[h>>2]|0))c[h>>2]=g;g=c[b+40>>2]|0;h=b+44|0;if(g)c[g+12>>2]=c[h>>2];d=c[h>>2]|0;if(d)c[d+8>>2]=g;g=e+128|0;if((b+32|0)!=(c[g>>2]|0)){i=a+76|0;j=c[i>>2]|0;Zj(b,j);k=a+64|0;l=c[k>>2]|0;m=l+-1|0;c[k>>2]=m;return}c[g>>2]=d;i=a+76|0;j=c[i>>2]|0;Zj(b,j);k=a+64|0;l=c[k>>2]|0;m=l+-1|0;c[k>>2]=m;return}function rl(a){a=a|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,s=0,t=0,u=0;d=c[a+ +60>>2]|0;if(!d)return;e=a+4|0;f=a+72|0;h=a+68|0;i=d;while(1){d=c[i+48>>2]|0;j=c[i+52>>2]|0;k=c[i+56>>2]|0;l=c[i+60>>2]|0;m=c[d+8>>2]|0;n=c[j+8>>2]|0;o=i+4|0;do if(!(c[o>>2]&8))p=11;else{if(!(ll(n,m)|0)){q=c[i+12>>2]|0;ql(a,i);r=q;break}q=c[h>>2]|0;if((q|0)!=0?!(lb[c[(c[q>>2]|0)+8>>2]&15](q,d,j)|0):0){q=c[i+12>>2]|0;ql(a,i);r=q;break}c[o>>2]=c[o>>2]&-9;p=11}while(0);do if((p|0)==11){p=0;if(!(b[m+4>>1]&2))s=0;else s=(c[m>>2]|0)!=0;if(!(b[n+4>>1]&2))t=0;else t=(c[n>>2]|0)!=0;if(!(s|t)){r=c[i+12>>2]| +0;break}o=c[(c[d+24>>2]|0)+(k*28|0)+24>>2]|0;q=c[(c[j+24>>2]|0)+(l*28|0)+24>>2]|0;u=c[e>>2]|0;if((+g[u+(q*36|0)>>2]-+g[u+(o*36|0)+8>>2]>0?1:+g[u+(q*36|0)+4>>2]-+g[u+(o*36|0)+12>>2]>0)|+g[u+(o*36|0)>>2]-+g[u+(q*36|0)+8>>2]>0|+g[u+(o*36|0)+4>>2]-+g[u+(q*36|0)+12>>2]>0){q=c[i+12>>2]|0;ql(a,i);r=q;break}else{$j(i,c[f>>2]|0);r=c[i+12>>2]|0;break}}while(0);if(!r)break;else i=r}return}function sl(a){a=a|0;ul(a,a);return}function tl(d,f,h){d=d|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=c[f+16>>2]|0;j=c[h+16>>2]|0;k=c[f+20>>2]|0;f=c[h+20>>2]|0;h=c[i+8>>2]|0;l=c[j+8>>2]|0;if((h|0)==(l|0))return;m=c[l+128>>2]|0;a:do if(m){n=m;while(1){if((c[n>>2]|0)==(h|0)){o=c[n+4>>2]|0;p=c[o+48>>2]|0;q=c[o+52>>2]|0;r=c[o+56>>2]|0;s=c[o+60>>2]|0;if((p|0)==(i|0)&(q|0)==(j|0)&(r|0)==(k|0)&(s|0)==(f|0)){t=24;break}if((p|0)==(j|0)&(q|0)==(i|0)&(r|0)==(f|0)&(s|0)==(k|0)){t=24;break}}n=c[n+12>>2]|0;if(!n)break a}if((t|0)==24)return}while(0);if(!(ll(l,h)|0))return;h=c[d+68>>2]|0;if((h|0)!=0?!(lb[c[(c[h>> +2]|0)+8>>2]&15](h,i,j)|0):0)return;h=Yj(i,k,j,f,c[d+76>>2]|0)|0;if(!h)return;f=c[h+48>>2]|0;j=c[h+52>>2]|0;k=c[f+8>>2]|0;i=c[j+8>>2]|0;c[h+8>>2]=0;l=d+60|0;t=c[l>>2]|0;c[h+12>>2]=t;if(t)c[t+8>>2]=h;c[l>>2]=h;l=h+16|0;c[h+20>>2]=h;c[l>>2]=i;c[h+24>>2]=0;t=k+128|0;m=c[t>>2]|0;c[h+28>>2]=m;if(m)c[m+8>>2]=l;c[t>>2]=l;l=h+32|0;c[h+36>>2]=h;c[l>>2]=k;c[h+40>>2]=0;t=i+128|0;m=c[t>>2]|0;c[h+44>>2]=m;if(m)c[m+8>>2]=l;c[t>>2]=l;if((a[f+38>>0]|0)==0?(a[j+38>>0]|0)==0:0){j=k+4|0;f=e[j>>1]|0;if(!(f&2)){b[j>>1]= +f|2;g[k+160>>2]=0}k=i+4|0;f=e[k>>1]|0;if(!(f&2)){b[k>>1]=f|2;g[i+160>>2]=0}}i=d+64|0;c[i>>2]=(c[i>>2]|0)+1;return}function ul(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;d=i;i=i+16|0;e=d;f=a+52|0;c[f>>2]=0;g=a+40|0;h=c[g>>2]|0;if((h|0)>0){j=a+32|0;k=a+56|0;l=a+4|0;m=h;h=0;while(1){n=c[(c[j>>2]|0)+(h<<2)>>2]|0;c[k>>2]=n;if((n|0)==-1)o=m;else{Al(a,a,(c[l>>2]|0)+(n*36|0)|0);o=c[g>>2]|0}h=h+1|0;if((h|0)>=(o|0))break;else m=o}p=c[f>>2]|0}else p=0;c[g>>2]=0;g=a+44|0;o=c[g>>2]|0; +c[e>>2]=26;Cl(o,o+(p<<3)|0,e);if((c[f>>2]|0)<=0){i=d;return}e=a+4|0;a=0;a:while(1){p=c[g>>2]|0;o=p+(a<<3)|0;m=c[e>>2]|0;h=p+(a<<3)+4|0;tl(b,c[m+((c[o>>2]|0)*36|0)+16>>2]|0,c[m+((c[h>>2]|0)*36|0)+16>>2]|0);m=c[f>>2]|0;p=a;while(1){l=p+1|0;if((l|0)>=(m|0))break a;k=c[g>>2]|0;if((c[k+(l<<3)>>2]|0)!=(c[o>>2]|0)){a=l;continue a}if((c[k+(l<<3)+4>>2]|0)==(c[h>>2]|0))p=l;else{a=l;continue a}}}i=d;return}function vl(a){a=a|0;so(a);return}function wl(a,b){a=a|0;b=b|0;return}function xl(a,b){a=a|0;b=b|0;return} +function yl(a,b,c){a=a|0;b=b|0;c=c|0;return}function zl(a,b,c){a=a|0;b=b|0;c=c|0;return}function Al(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,y=0,z=0;e=i;i=i+1040|0;f=e;h=f+4|0;c[f>>2]=h;j=f+1028|0;c[j>>2]=0;k=f+1032|0;c[k>>2]=256;c[h>>2]=c[a>>2];l=c[j>>2]|0;m=l+1|0;c[j>>2]=m;a:do if((l|0)>-1){n=a+4|0;o=d+4|0;p=d+8|0;q=d+12|0;r=m;while(1){s=r+-1|0;c[j>>2]=s;t=c[f>>2]|0;u=c[t+(s<<2)>>2]|0;do if((u|0)!=-1?(v=c[n>>2]|0,!((+g[d>>2]-+g[v+(u*36| +0)+8>>2]>0?1:+g[o>>2]-+g[v+(u*36|0)+12>>2]>0)|+g[v+(u*36|0)>>2]-+g[p>>2]>0|+g[v+(u*36|0)+4>>2]-+g[q>>2]>0)):0){w=v+(u*36|0)+24|0;if((c[w>>2]|0)==-1){if(!(fg(b,u)|0))break a;x=c[j>>2]|0;break}if((s|0)==(c[k>>2]|0)?(c[k>>2]=s<<1,y=$n(s<<3)|0,c[f>>2]=y,Bp(y|0,t|0,c[j>>2]<<2|0)|0,(t|0)!=(h|0)):0)ao(t);y=c[f>>2]|0;c[y+(c[j>>2]<<2)>>2]=c[w>>2];w=(c[j>>2]|0)+1|0;c[j>>2]=w;z=v+(u*36|0)+28|0;if((w|0)==(c[k>>2]|0)?(c[k>>2]=w<<1,v=$n(w<<3)|0,c[f>>2]=v,Bp(v|0,y|0,c[j>>2]<<2|0)|0,(y|0)!=(h|0)):0)ao(y);c[(c[f>> +2]|0)+(c[j>>2]<<2)>>2]=c[z>>2];z=(c[j>>2]|0)+1|0;c[j>>2]=z;x=z}else x=s;while(0);if((x|0)>0)r=x;else break}}while(0);x=c[f>>2]|0;if((x|0)==(h|0)){i=e;return}ao(x);c[f>>2]=0;i=e;return}function Bl(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=c[a>>2]|0;e=c[b>>2]|0;if((d|0)<(e|0)){f=1;return f|0}if((d|0)!=(e|0)){f=0;return f|0}f=(c[a+4>>2]|0)<(c[b+4>>2]|0);return f|0}function Cl(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,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;e=a;a=b;a:while(1){b=a;f=a+-8|0;g=e;b:while(1){h=g;i=b-h|0;j=i>>3;switch(j|0){case 2:{k=g;l=f;m=f;n=4;break a;break}case 3:{o=g;p=f;q=f;n=6;break a;break}case 4:{r=g;s=f;n=14;break a;break}case 5:{t=g;u=f;v=f;n=15;break a;break}case 1:case 0:{n=69;break a;break}default:{}}if((i|0)<248){w=g;x=a;n=21;break a}y=(j|0)/2|0;z=g+(y<<3)|0;do if((i|0)>7992){A=(j|0)/4|0;B=g+(A<<3)|0;C=g+ +(A+y<<3)|0;A=Dl(g,B,z,C,d)|0;if(rb[c[d>>2]&31](f,C)|0){D=C;E=c[D>>2]|0;F=c[D+4>>2]|0;D=f;G=c[D+4>>2]|0;H=C;c[H>>2]=c[D>>2];c[H+4>>2]=G;G=f;c[G>>2]=E;c[G+4>>2]=F;F=A+1|0;if(rb[c[d>>2]&31](C,z)|0){G=z;E=c[G>>2]|0;H=c[G+4>>2]|0;G=C;D=c[G+4>>2]|0;I=z;c[I>>2]=c[G>>2];c[I+4>>2]=D;D=C;c[D>>2]=E;c[D+4>>2]=H;H=A+2|0;if(rb[c[d>>2]&31](z,B)|0){D=B;E=c[D>>2]|0;C=c[D+4>>2]|0;D=z;I=c[D+4>>2]|0;G=B;c[G>>2]=c[D>>2];c[G+4>>2]=I;I=z;c[I>>2]=E;c[I+4>>2]=C;if(rb[c[d>>2]&31](B,g)|0){C=g;I=c[C>>2]|0;E=c[C+4>>2]|0;C=B; +G=c[C+4>>2]|0;D=g;c[D>>2]=c[C>>2];c[D+4>>2]=G;G=B;c[G>>2]=I;c[G+4>>2]=E;J=A+4|0}else J=A+3|0}else J=H}else J=F}else J=A}else{A=rb[c[d>>2]&31](z,g)|0;F=rb[c[d>>2]&31](f,z)|0;if(!A){if(!F){J=0;break}A=z;H=c[A>>2]|0;E=c[A+4>>2]|0;A=f;G=c[A+4>>2]|0;I=z;c[I>>2]=c[A>>2];c[I+4>>2]=G;G=f;c[G>>2]=H;c[G+4>>2]=E;if(!(rb[c[d>>2]&31](z,g)|0)){J=1;break}E=g;G=c[E>>2]|0;H=c[E+4>>2]|0;E=z;I=c[E+4>>2]|0;A=g;c[A>>2]=c[E>>2];c[A+4>>2]=I;I=z;c[I>>2]=G;c[I+4>>2]=H;J=2;break}H=g;I=c[H>>2]|0;G=c[H+4>>2]|0;if(F){F=f;H=c[F+ +4>>2]|0;A=g;c[A>>2]=c[F>>2];c[A+4>>2]=H;H=f;c[H>>2]=I;c[H+4>>2]=G;J=1;break}H=z;A=c[H+4>>2]|0;F=g;c[F>>2]=c[H>>2];c[F+4>>2]=A;A=z;c[A>>2]=I;c[A+4>>2]=G;if(rb[c[d>>2]&31](f,z)|0){G=z;A=c[G>>2]|0;I=c[G+4>>2]|0;G=f;F=c[G+4>>2]|0;H=z;c[H>>2]=c[G>>2];c[H+4>>2]=F;F=f;c[F>>2]=A;c[F+4>>2]=I;J=2}else J=1}while(0);do if(rb[c[d>>2]&31](g,z)|0){K=f;L=J}else{y=f;while(1){j=y+-8|0;if((g|0)==(j|0))break;if(rb[c[d>>2]&31](j,z)|0){M=j;n=51;break}else y=j}if((n|0)==51){n=0;y=g;j=c[y>>2]|0;i=c[y+4>>2]|0;y=M;I=c[y+4>> +2]|0;F=g;c[F>>2]=c[y>>2];c[F+4>>2]=I;I=M;c[I>>2]=j;c[I+4>>2]=i;K=M;L=J+1|0;break}i=g+8|0;if(rb[c[d>>2]&31](g,f)|0)N=i;else{if((i|0)==(f|0)){n=69;break a}else{O=g;P=i}while(1){if(rb[c[d>>2]&31](g,P)|0){Q=O;R=P;break}i=P+8|0;if((i|0)==(f|0)){n=69;break a}else{I=P;P=i;O=I}}I=R;i=c[I>>2]|0;j=c[I+4>>2]|0;I=f;F=c[I+4>>2]|0;y=R;c[y>>2]=c[I>>2];c[y+4>>2]=F;F=f;c[F>>2]=i;c[F+4>>2]=j;N=Q+16|0}if((N|0)==(f|0)){n=69;break a}else{S=N;T=f}while(1){j=S;while(1){F=j+8|0;if(rb[c[d>>2]&31](g,j)|0){U=F;V=j;break}else j= +F}j=T;while(1){F=j+-8|0;if(rb[c[d>>2]&31](g,F)|0)j=F;else{W=F;break}}if(V>>>0>=W>>>0){g=V;continue b}j=V;F=c[j>>2]|0;i=c[j+4>>2]|0;j=W;y=c[j+4>>2]|0;I=V;c[I>>2]=c[j>>2];c[I+4>>2]=y;y=W;c[y>>2]=F;c[y+4>>2]=i;S=U;T=W}}while(0);i=g+8|0;c:do if(i>>>0>>0){y=i;F=K;I=z;j=L;while(1){A=y;while(1){H=A+8|0;if(rb[c[d>>2]&31](A,I)|0)A=H;else{X=H;Y=A;break}}A=F;while(1){H=A+-8|0;if(rb[c[d>>2]&31](H,I)|0){Z=H;break}else A=H}if(Y>>>0>Z>>>0){_=Y;$=I;aa=j;break c}A=Y;H=c[A>>2]|0;G=c[A+4>>2]|0;A=Z;E=c[A+4>>2]|0; +B=Y;c[B>>2]=c[A>>2];c[B+4>>2]=E;E=Z;c[E>>2]=H;c[E+4>>2]=G;y=X;F=Z;I=(I|0)==(Y|0)?Z:I;j=j+1|0}}else{_=i;$=z;aa=L}while(0);if((_|0)!=($|0)?rb[c[d>>2]&31]($,_)|0:0){z=_;i=c[z>>2]|0;j=c[z+4>>2]|0;z=$;I=c[z+4>>2]|0;F=_;c[F>>2]=c[z>>2];c[F+4>>2]=I;I=$;c[I>>2]=i;c[I+4>>2]=j;ba=aa+1|0}else ba=aa;if(!ba){ca=Fl(g,_,d)|0;j=_+8|0;if(Fl(j,a,d)|0){n=64;break}if(ca){g=j;continue}}j=_;if((j-h|0)>=(b-j|0)){da=g;ea=_;n=68;break}Cl(g,_,d);g=_+8|0}if((n|0)==64){n=0;if(ca){n=69;break}else{e=g;a=_;continue}}else if((n| +0)==68){n=0;Cl(ea+8|0,a,d);e=da;a=ea;continue}}if((n|0)==4){if(!(rb[c[d>>2]&31](l,k)|0))return;l=k;ea=c[l>>2]|0;a=c[l+4>>2]|0;l=m;da=c[l+4>>2]|0;e=k;c[e>>2]=c[l>>2];c[e+4>>2]=da;da=m;c[da>>2]=ea;c[da+4>>2]=a;return}else if((n|0)==6){a=o+8|0;da=rb[c[d>>2]&31](a,o)|0;ea=rb[c[d>>2]&31](p,a)|0;if(!da){if(!ea)return;da=a;m=c[da>>2]|0;e=c[da+4>>2]|0;da=q;l=c[da+4>>2]|0;k=a;c[k>>2]=c[da>>2];c[k+4>>2]=l;l=q;c[l>>2]=m;c[l+4>>2]=e;if(!(rb[c[d>>2]&31](a,o)|0))return;e=o;l=c[e>>2]|0;m=c[e+4>>2]|0;e=a;k=c[e+4>> +2]|0;da=o;c[da>>2]=c[e>>2];c[da+4>>2]=k;k=a;c[k>>2]=l;c[k+4>>2]=m;return}m=o;k=c[m>>2]|0;l=c[m+4>>2]|0;if(ea){ea=q;m=c[ea+4>>2]|0;da=o;c[da>>2]=c[ea>>2];c[da+4>>2]=m;m=q;c[m>>2]=k;c[m+4>>2]=l;return}m=a;da=c[m+4>>2]|0;ea=o;c[ea>>2]=c[m>>2];c[ea+4>>2]=da;da=a;c[da>>2]=k;c[da+4>>2]=l;if(!(rb[c[d>>2]&31](p,a)|0))return;p=a;l=c[p>>2]|0;da=c[p+4>>2]|0;p=q;k=c[p+4>>2]|0;ea=a;c[ea>>2]=c[p>>2];c[ea+4>>2]=k;k=q;c[k>>2]=l;c[k+4>>2]=da;return}else if((n|0)==14){Dl(r,r+8|0,r+16|0,s,d)|0;return}else if((n|0)== +15){s=t+8|0;r=t+16|0;da=t+24|0;Dl(t,s,r,da,d)|0;if(!(rb[c[d>>2]&31](u,da)|0))return;u=da;k=c[u>>2]|0;l=c[u+4>>2]|0;u=v;q=c[u+4>>2]|0;ea=da;c[ea>>2]=c[u>>2];c[ea+4>>2]=q;q=v;c[q>>2]=k;c[q+4>>2]=l;if(!(rb[c[d>>2]&31](da,r)|0))return;l=r;q=c[l>>2]|0;k=c[l+4>>2]|0;l=da;v=c[l+4>>2]|0;ea=r;c[ea>>2]=c[l>>2];c[ea+4>>2]=v;v=da;c[v>>2]=q;c[v+4>>2]=k;if(!(rb[c[d>>2]&31](r,s)|0))return;k=s;v=c[k>>2]|0;q=c[k+4>>2]|0;k=r;da=c[k+4>>2]|0;ea=s;c[ea>>2]=c[k>>2];c[ea+4>>2]=da;da=r;c[da>>2]=v;c[da+4>>2]=q;if(!(rb[c[d>> +2]&31](s,t)|0))return;q=t;da=c[q>>2]|0;v=c[q+4>>2]|0;q=s;r=c[q+4>>2]|0;ea=t;c[ea>>2]=c[q>>2];c[ea+4>>2]=r;r=s;c[r>>2]=da;c[r+4>>2]=v;return}else if((n|0)==21){El(w,x,d);return}else if((n|0)==69)return}function Dl(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;g=rb[c[f>>2]&31](b,a)|0;h=rb[c[f>>2]&31](d,b)|0;do if(g){i=a;j=c[i>>2]|0;k=c[i+4>>2]|0;if(h){i=d;l=c[i+4>>2]|0;m=a;c[m>>2]=c[i>>2];c[m+4>>2]=l;l=d;c[l>>2]=j;c[l+4>>2]=k;n=1;break}l=b;m=c[l+4>>2]|0;i=a;c[i>>2]= +c[l>>2];c[i+4>>2]=m;m=b;c[m>>2]=j;c[m+4>>2]=k;if(rb[c[f>>2]&31](d,b)|0){k=b;m=c[k>>2]|0;j=c[k+4>>2]|0;k=d;i=c[k+4>>2]|0;l=b;c[l>>2]=c[k>>2];c[l+4>>2]=i;i=d;c[i>>2]=m;c[i+4>>2]=j;n=2}else n=1}else if(h){j=b;i=c[j>>2]|0;m=c[j+4>>2]|0;j=d;l=c[j+4>>2]|0;k=b;c[k>>2]=c[j>>2];c[k+4>>2]=l;l=d;c[l>>2]=i;c[l+4>>2]=m;if(rb[c[f>>2]&31](b,a)|0){m=a;l=c[m>>2]|0;i=c[m+4>>2]|0;m=b;k=c[m+4>>2]|0;j=a;c[j>>2]=c[m>>2];c[j+4>>2]=k;k=b;c[k>>2]=l;c[k+4>>2]=i;n=2}else n=1}else n=0;while(0);if(!(rb[c[f>>2]&31](e,d)|0)){o= +n;return o|0}h=d;g=c[h>>2]|0;i=c[h+4>>2]|0;h=e;k=c[h+4>>2]|0;l=d;c[l>>2]=c[h>>2];c[l+4>>2]=k;k=e;c[k>>2]=g;c[k+4>>2]=i;if(!(rb[c[f>>2]&31](d,b)|0)){o=n+1|0;return o|0}i=b;k=c[i>>2]|0;g=c[i+4>>2]|0;i=d;e=c[i+4>>2]|0;l=b;c[l>>2]=c[i>>2];c[l+4>>2]=e;e=d;c[e>>2]=k;c[e+4>>2]=g;if(!(rb[c[f>>2]&31](b,a)|0)){o=n+2|0;return o|0}f=a;g=c[f>>2]|0;e=c[f+4>>2]|0;f=b;k=c[f+4>>2]|0;d=a;c[d>>2]=c[f>>2];c[d+4>>2]=k;k=b;c[k>>2]=g;c[k+4>>2]=e;o=n+3|0;return o|0}function El(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,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;e=i;i=i+16|0;f=e;g=a+16|0;h=a+8|0;j=rb[c[d>>2]&31](h,a)|0;k=rb[c[d>>2]&31](g,h)|0;do if(j){l=a;m=c[l>>2]|0;n=c[l+4>>2]|0;if(k){l=g;o=c[l+4>>2]|0;p=a;c[p>>2]=c[l>>2];c[p+4>>2]=o;o=g;c[o>>2]=m;c[o+4>>2]=n;break}o=h;p=c[o+4>>2]|0;l=a;c[l>>2]=c[o>>2];c[l+4>>2]=p;p=h;c[p>>2]=m;c[p+4>>2]=n;if(rb[c[d>>2]&31](g,h)|0){n=h;p=c[n>>2]|0;m=c[n+4>>2]|0;n=g;l=c[n+4>>2]|0;o=h;c[o>>2]=c[n>>2];c[o+4>>2]=l;l=g;c[l>>2]=p;c[l+4>>2]=m}}else if(k?(m=h,l=c[m>>2]|0,p=c[m+4>>2]|0, +m=g,o=c[m+4>>2]|0,n=h,c[n>>2]=c[m>>2],c[n+4>>2]=o,o=g,c[o>>2]=l,c[o+4>>2]=p,rb[c[d>>2]&31](h,a)|0):0){p=a;o=c[p>>2]|0;l=c[p+4>>2]|0;p=h;n=c[p+4>>2]|0;m=a;c[m>>2]=c[p>>2];c[m+4>>2]=n;n=h;c[n>>2]=o;c[n+4>>2]=l}while(0);h=a+24|0;if((h|0)==(b|0)){i=e;return}else{q=h;r=g}while(1){if(rb[c[d>>2]&31](q,r)|0){g=q;h=c[g+4>>2]|0;k=f;c[k>>2]=c[g>>2];c[k+4>>2]=h;h=q;k=r;while(1){g=k;j=c[g+4>>2]|0;l=h;c[l>>2]=c[g>>2];c[l+4>>2]=j;if((k|0)==(a|0)){s=k;break}j=k+-8|0;if(rb[c[d>>2]&31](f,j)|0){l=k;k=j;h=l}else{s=k; +break}}k=f;h=c[k+4>>2]|0;l=s;c[l>>2]=c[k>>2];c[l+4>>2]=h}h=q+8|0;if((h|0)==(b|0))break;else{l=q;q=h;r=l}}i=e;return}function Fl(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,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;e=i;i=i+16|0;f=e;switch(b-a>>3|0){case 2:{g=b+-8|0;if(!(rb[c[d>>2]&31](g,a)|0)){h=1;i=e;return h|0}j=a;k=c[j>>2]|0;l=c[j+4>>2]|0;j=g;m=c[j+4>>2]|0;n=a;c[n>>2]=c[j>>2];c[n+4>>2]=m;m=g;c[m>>2]=k;c[m+4>>2]=l;h=1;i=e;return h|0}case 3:{l=a+8|0;m=b+-8|0;k=rb[c[d>>2]&31](l, +a)|0;g=rb[c[d>>2]&31](m,l)|0;if(!k){if(!g){h=1;i=e;return h|0}k=l;n=c[k>>2]|0;j=c[k+4>>2]|0;k=m;o=c[k+4>>2]|0;p=l;c[p>>2]=c[k>>2];c[p+4>>2]=o;o=m;c[o>>2]=n;c[o+4>>2]=j;if(!(rb[c[d>>2]&31](l,a)|0)){h=1;i=e;return h|0}j=a;o=c[j>>2]|0;n=c[j+4>>2]|0;j=l;p=c[j+4>>2]|0;k=a;c[k>>2]=c[j>>2];c[k+4>>2]=p;p=l;c[p>>2]=o;c[p+4>>2]=n;h=1;i=e;return h|0}n=a;p=c[n>>2]|0;o=c[n+4>>2]|0;if(g){g=m;n=c[g+4>>2]|0;k=a;c[k>>2]=c[g>>2];c[k+4>>2]=n;n=m;c[n>>2]=p;c[n+4>>2]=o;h=1;i=e;return h|0}n=l;k=c[n+4>>2]|0;g=a;c[g>>2]= +c[n>>2];c[g+4>>2]=k;k=l;c[k>>2]=p;c[k+4>>2]=o;if(!(rb[c[d>>2]&31](m,l)|0)){h=1;i=e;return h|0}o=l;k=c[o>>2]|0;p=c[o+4>>2]|0;o=m;g=c[o+4>>2]|0;n=l;c[n>>2]=c[o>>2];c[n+4>>2]=g;g=m;c[g>>2]=k;c[g+4>>2]=p;h=1;i=e;return h|0}case 4:{Dl(a,a+8|0,a+16|0,b+-8|0,d)|0;h=1;i=e;return h|0}case 5:{p=a+8|0;g=a+16|0;k=a+24|0;m=b+-8|0;Dl(a,p,g,k,d)|0;if(!(rb[c[d>>2]&31](m,k)|0)){h=1;i=e;return h|0}n=k;o=c[n>>2]|0;l=c[n+4>>2]|0;n=m;j=c[n+4>>2]|0;q=k;c[q>>2]=c[n>>2];c[q+4>>2]=j;j=m;c[j>>2]=o;c[j+4>>2]=l;if(!(rb[c[d>> +2]&31](k,g)|0)){h=1;i=e;return h|0}l=g;j=c[l>>2]|0;o=c[l+4>>2]|0;l=k;m=c[l+4>>2]|0;q=g;c[q>>2]=c[l>>2];c[q+4>>2]=m;m=k;c[m>>2]=j;c[m+4>>2]=o;if(!(rb[c[d>>2]&31](g,p)|0)){h=1;i=e;return h|0}o=p;m=c[o>>2]|0;j=c[o+4>>2]|0;o=g;k=c[o+4>>2]|0;q=p;c[q>>2]=c[o>>2];c[q+4>>2]=k;k=g;c[k>>2]=m;c[k+4>>2]=j;if(!(rb[c[d>>2]&31](p,a)|0)){h=1;i=e;return h|0}j=a;k=c[j>>2]|0;m=c[j+4>>2]|0;j=p;g=c[j+4>>2]|0;q=a;c[q>>2]=c[j>>2];c[q+4>>2]=g;g=p;c[g>>2]=k;c[g+4>>2]=m;h=1;i=e;return h|0}case 1:case 0:{h=1;i=e;return h|0}default:{m= +a+16|0;g=a+8|0;k=rb[c[d>>2]&31](g,a)|0;p=rb[c[d>>2]&31](m,g)|0;do if(k){q=a;j=c[q>>2]|0;o=c[q+4>>2]|0;if(p){q=m;l=c[q+4>>2]|0;n=a;c[n>>2]=c[q>>2];c[n+4>>2]=l;l=m;c[l>>2]=j;c[l+4>>2]=o;break}l=g;n=c[l+4>>2]|0;q=a;c[q>>2]=c[l>>2];c[q+4>>2]=n;n=g;c[n>>2]=j;c[n+4>>2]=o;if(rb[c[d>>2]&31](m,g)|0){o=g;n=c[o>>2]|0;j=c[o+4>>2]|0;o=m;q=c[o+4>>2]|0;l=g;c[l>>2]=c[o>>2];c[l+4>>2]=q;q=m;c[q>>2]=n;c[q+4>>2]=j}}else if(p?(j=g,q=c[j>>2]|0,n=c[j+4>>2]|0,j=m,l=c[j+4>>2]|0,o=g,c[o>>2]=c[j>>2],c[o+4>>2]=l,l=m,c[l>>2]= +q,c[l+4>>2]=n,rb[c[d>>2]&31](g,a)|0):0){n=a;l=c[n>>2]|0;q=c[n+4>>2]|0;n=g;o=c[n+4>>2]|0;j=a;c[j>>2]=c[n>>2];c[j+4>>2]=o;o=g;c[o>>2]=l;c[o+4>>2]=q}while(0);g=a+24|0;if((g|0)==(b|0)){h=1;i=e;return h|0}else{r=0;s=g;t=m}while(1){if(rb[c[d>>2]&31](s,t)|0){m=s;g=c[m+4>>2]|0;p=f;c[p>>2]=c[m>>2];c[p+4>>2]=g;g=s;p=t;while(1){m=p;k=c[m+4>>2]|0;q=g;c[q>>2]=c[m>>2];c[q+4>>2]=k;if((p|0)==(a|0)){u=p;break}k=p+-8|0;if(rb[c[d>>2]&31](f,k)|0){q=p;p=k;g=q}else{u=p;break}}p=f;g=c[p+4>>2]|0;q=u;c[q>>2]=c[p>>2];c[q+ +4>>2]=g;g=r+1|0;if((g|0)==8){v=s;break}else w=g}else w=r;g=s+8|0;if((g|0)==(b|0)){h=1;x=34;break}else{q=s;r=w;s=g;t=q}}if((x|0)==34){i=e;return h|0}h=(v+8|0)==(b|0);i=e;return h|0}}return 0}function Gl(a,b,d){a=a|0;b=b|0;d=d|0;c[a>>2]=b;c[a+4>>2]=lo(b,d<<4)|0;c[a+8>>2]=d;d=a+12|0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;c[d+12>>2]=0;return}function Hl(a){a=a|0;var b=0;b=c[a+24>>2]|0;if(b)no(c[a>>2]|0,b);no(c[a>>2]|0,c[a+4>>2]|0);return}function Il(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0;g=b+12| +0;h=c[g>>2]|0;c[g>>2]=h+1;g=c[b+4>>2]|0;b=d;d=c[b+4>>2]|0;i=g+(h<<4)|0;c[i>>2]=c[b>>2];c[i+4>>2]=d;c[g+(h<<4)+8>>2]=e;a[g+(h<<4)+12>>0]=f&1;return}function Jl(b,d,e){b=b|0;d=+d;e=+e;var 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,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,$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,oc=0;f=1/d;h=b+12|0;i=c[h>> +2]|0;if((i|0)>0){j=c[b+4>>2]|0;l=2139095039;m=2139095039;n=-8388609;o=-8388609;p=0;while(1){if(!(a[j+(p<<4)+12>>0]|0)){q=m;r=l;s=o;t=n}else{d=(c[k>>2]=l,+g[k>>2]);u=+g[j+(p<<4)>>2];v=(c[k>>2]=m,+g[k>>2]);w=+g[j+(p<<4)+4>>2];x=(g[k>>2]=d>2]|0);y=(g[k>>2]=v>2]|0);v=(c[k>>2]=n,+g[k>>2]);d=(c[k>>2]=o,+g[k>>2]);z=(g[k>>2]=v>u?v:u,c[k>>2]|0);q=y;r=x;s=(g[k>>2]=d>w?d:w,c[k>>2]|0);t=z}p=p+1|0;if((p|0)>=(i|0)){A=q;B=r;C=s;D=t;break}else{l=r;m=q;n=t;o=s}}}else{A=2139095039;B=2139095039; +C=-8388609;D=-8388609}w=(c[k>>2]=B,+g[k>>2])-e;d=(c[k>>2]=A,+g[k>>2])-e;u=(c[k>>2]=D,+g[k>>2])+e;v=(c[k>>2]=C,+g[k>>2])+e;C=~~(f*(u-w))+1|0;D=b+16|0;c[D>>2]=C;A=~~(f*(v-d))+1|0;B=b+20|0;c[B>>2]=A;s=lo(c[b>>2]|0,_(A<<2,C)|0)|0;C=b+24|0;c[C>>2]=s;A=c[D>>2]|0;o=c[B>>2]|0;t=_(o,A)|0;if((t|0)>0?(c[s>>2]=0,(t|0)>1):0){s=1;do{c[(c[C>>2]|0)+(s<<2)>>2]=0;s=s+1|0}while((s|0)<(t|0))}t=c[b>>2]|0;s=_(A<<2,o)|0;o=lo(t,s<<4)|0;if((c[h>>2]|0)>0){A=b+4|0;b=o;n=0;q=s;m=0;while(1){r=c[A>>2]|0;l=r+(m<<4)|0;i=r+(m<<4)+ +4|0;v=f*(+g[l>>2]-w);u=f*(+g[i>>2]-d);g[l>>2]=v;g[i>>2]=u;i=~~v;r=~~u;if(((r|i|0)>-1?(p=c[D>>2]|0,(i|0)<(p|0)):0)?(r|0)<(c[B>>2]|0):0){j=(_(p,r)|0)+i|0;if((n|0)<(q|0)){E=b;F=q}else{if((n|0)>0){p=0;do p=p+1|0;while((p|0)!=(n|0))}p=(q|0)>0?q<<1:1;E=mo(t,b,p<<4)|0;F=p}c[E+(n<<4)>>2]=i;c[E+(n<<4)+4>>2]=r;c[E+(n<<4)+8>>2]=j;c[E+(n<<4)+12>>2]=l;G=F;H=n+1|0;I=E}else{G=q;H=n;I=b}m=m+1|0;if((m|0)>=(c[h>>2]|0)){J=G;K=H;L=0;M=I;break}else{b=I;n=H;q=G}}}else{J=s;K=0;L=0;M=o}a:while(1){o=L;while(1){if((o|0)== +(K|0)){N=J;O=K;P=M;break a}s=c[M+(o<<4)+8>>2]|0;G=o+1|0;q=(c[C>>2]|0)+(s<<2)|0;if(!(c[q>>2]|0)){Q=o;R=s;S=G;T=q;break}else o=G}o=c[M+(Q<<4)>>2]|0;l=c[M+(Q<<4)+4>>2]|0;j=c[M+(Q<<4)+12>>2]|0;c[T>>2]=j;if((o|0)>0){r=o+-1|0;i=R+-1|0;if((K|0)>=(J|0)){if((K|0)>(S|0)){G=S;do{q=M+(G-S<<4)|0;s=M+(G<<4)|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];G=G+1|0}while((G|0)!=(K|0))}G=K-S|0;if((G|0)<(J|0)){U=M;V=G;W=J;X=0}else{s=(J|0)>0?J<<1:1;U=mo(t,M,s<<4)|0;V=G;W=s;X=0}}else{U= +M;V=K;W=J;X=S}c[U+(V<<4)>>2]=r;c[U+(V<<4)+4>>2]=l;c[U+(V<<4)+8>>2]=i;c[U+(V<<4)+12>>2]=j;Y=V+1|0;Z=W;$=X;aa=U}else{Y=K;Z=J;$=S;aa=M}if((l|0)>0){s=l+-1|0;G=R-(c[D>>2]|0)|0;if((Y|0)>=(Z|0)){if((Y|0)>($|0)){q=$;do{H=aa+(q-$<<4)|0;n=aa+(q<<4)|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];q=q+1|0}while((q|0)!=(Y|0))}q=Y-$|0;if((q|0)<(Z|0)){ba=aa;ca=q;da=Z;ea=0}else{i=(Z|0)>0?Z<<1:1;ba=mo(t,aa,i<<4)|0;ca=q;da=i;ea=0}}else{ba=aa;ca=Y;da=Z;ea=$}c[ba+(ca<<4)>>2]=o;c[ba+(ca<< +4)+4>>2]=s;c[ba+(ca<<4)+8>>2]=G;c[ba+(ca<<4)+12>>2]=j;fa=ca+1|0;ga=da;ha=ea;ia=ba}else{fa=Y;ga=Z;ha=$;ia=aa}if((o|0)<((c[D>>2]|0)+-1|0)){i=o+1|0;q=R+1|0;if((fa|0)>=(ga|0)){if((fa|0)>(ha|0)){r=ha;do{n=ia+(r-ha<<4)|0;H=ia+(r<<4)|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];r=r+1|0}while((r|0)!=(fa|0))}r=fa-ha|0;if((r|0)<(ga|0)){ja=ia;ka=r;la=ga;ma=0}else{G=(ga|0)>0?ga<<1:1;ja=mo(t,ia,G<<4)|0;ka=r;la=G;ma=0}}else{ja=ia;ka=fa;la=ga;ma=ha}c[ja+(ka<<4)>>2]=i;c[ja+(ka<< +4)+4>>2]=l;c[ja+(ka<<4)+8>>2]=q;c[ja+(ka<<4)+12>>2]=j;na=ka+1|0;oa=la;pa=ma;qa=ja}else{na=fa;oa=ga;pa=ha;qa=ia}if((l|0)>=((c[B>>2]|0)+-1|0)){J=oa;K=na;L=pa;M=qa;continue}G=l+1|0;r=(c[D>>2]|0)+R|0;if((na|0)>=(oa|0)){if((na|0)>(pa|0)){s=pa;do{H=qa+(s-pa<<4)|0;n=qa+(s<<4)|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];s=s+1|0}while((s|0)!=(na|0))}s=na-pa|0;if((s|0)<(oa|0)){ra=qa;sa=s;ta=oa;ua=0}else{l=(oa|0)>0?oa<<1:1;ra=mo(t,qa,l<<4)|0;sa=s;ta=l;ua=0}}else{ra=qa;sa= +na;ta=oa;ua=pa}c[ra+(sa<<4)>>2]=o;c[ra+(sa<<4)+4>>2]=G;c[ra+(sa<<4)+8>>2]=r;c[ra+(sa<<4)+12>>2]=j;J=ta;K=sa+1|0;L=ua;M=ra}ra=c[B>>2]|0;if((ra|0)<=0){va=P;no(t,va);return}M=c[D>>2]|0;ua=ra;ra=P;P=O;L=O;O=N;N=0;while(1){if((M|0)>1){sa=M;K=L;ta=O;J=P;pa=ra;oa=0;while(1){na=(_(sa,N)|0)+oa|0;qa=c[C>>2]|0;R=c[qa+(na<<2)>>2]|0;ia=na+1|0;ha=c[qa+(ia<<2)>>2]|0;if((R|0)==(ha|0)){wa=oa+1|0;xa=sa;ya=ta;za=K;Aa=J;Ba=pa}else{if((K|0)>=(ta|0)){if((K|0)>(J|0)){qa=J;do{ga=pa+(qa-J<<4)|0;fa=pa+(qa<<4)|0;c[ga>>2]=c[fa>> +2];c[ga+4>>2]=c[fa+4>>2];c[ga+8>>2]=c[fa+8>>2];c[ga+12>>2]=c[fa+12>>2];qa=qa+1|0}while((qa|0)!=(K|0))}qa=K-J|0;if((qa|0)<(ta|0)){Ca=pa;Da=qa;Ea=ta;Fa=0}else{fa=(ta|0)>0?ta<<1:1;Ca=mo(t,pa,fa<<4)|0;Da=qa;Ea=fa;Fa=0}}else{Ca=pa;Da=K;Ea=ta;Fa=J}c[Ca+(Da<<4)>>2]=oa;c[Ca+(Da<<4)+4>>2]=N;c[Ca+(Da<<4)+8>>2]=na;c[Ca+(Da<<4)+12>>2]=ha;fa=Da+1|0;qa=oa+1|0;if((fa|0)>=(Ea|0)){if((Da|0)>=(Fa|0)){ga=Fa;do{ja=Ca+(ga-Fa<<4)|0;ma=Ca+(ga<<4)|0;c[ja>>2]=c[ma>>2];c[ja+4>>2]=c[ma+4>>2];c[ja+8>>2]=c[ma+8>>2];c[ja+12>> +2]=c[ma+12>>2];ga=ga+1|0}while((ga|0)<(fa|0))}ga=fa-Fa|0;if((ga|0)<(Ea|0)){Ga=Ca;Ha=ga;Ia=Ea;Ja=0}else{ha=(Ea|0)>0?Ea<<1:1;Ga=mo(t,Ca,ha<<4)|0;Ha=ga;Ia=ha;Ja=0}}else{Ga=Ca;Ha=fa;Ia=Ea;Ja=Fa}c[Ga+(Ha<<4)>>2]=qa;c[Ga+(Ha<<4)+4>>2]=N;c[Ga+(Ha<<4)+8>>2]=ia;c[Ga+(Ha<<4)+12>>2]=R;wa=qa;xa=c[D>>2]|0;ya=Ia;za=Ha+1|0;Aa=Ja;Ba=Ga}if((wa|0)<(xa+-1|0)){sa=xa;K=za;ta=ya;J=Aa;pa=Ba;oa=wa}else{Ka=xa;La=ya;Ma=za;Na=Aa;Oa=Ba;break}}Pa=La;Qa=Ma;Ra=Na;Sa=Oa;Ta=c[B>>2]|0;Ua=Ka}else{Pa=O;Qa=L;Ra=P;Sa=ra;Ta=ua;Ua=M}N= +N+1|0;if((N|0)>=(Ta|0)){Va=Pa;Wa=Qa;Xa=Ra;Ya=Sa;Za=Ta;break}else{M=Ua;ua=Ta;ra=Sa;P=Ra;L=Qa;O=Pa}}if((Za|0)>1){Pa=c[D>>2]|0;O=Za;Za=Ya;Qa=Xa;L=Wa;Ra=Va;P=0;while(1){Sa=P;P=P+1|0;if((Pa|0)>0){ra=Pa;Ta=L;ua=Ra;Ua=Qa;M=Za;N=0;while(1){Ka=(_(ra,Sa)|0)+N|0;Oa=c[C>>2]|0;Na=c[Oa+(Ka<<2)>>2]|0;Ma=c[Oa+(Ka+ra<<2)>>2]|0;if((Na|0)==(Ma|0)){_a=ra;$a=ua;ab=Ta;bb=Ua;cb=M}else{if((Ta|0)>=(ua|0)){if((Ta|0)>(Ua|0)){Oa=Ua;do{La=M+(Oa-Ua<<4)|0;Ba=M+(Oa<<4)|0;c[La>>2]=c[Ba>>2];c[La+4>>2]=c[Ba+4>>2];c[La+8>>2]=c[Ba+8>> +2];c[La+12>>2]=c[Ba+12>>2];Oa=Oa+1|0}while((Oa|0)!=(Ta|0))}Oa=Ta-Ua|0;if((Oa|0)<(ua|0)){db=M;eb=Oa;fb=ua;gb=0}else{qa=(ua|0)>0?ua<<1:1;db=mo(t,M,qa<<4)|0;eb=Oa;fb=qa;gb=0}}else{db=M;eb=Ta;fb=ua;gb=Ua}c[db+(eb<<4)>>2]=N;c[db+(eb<<4)+4>>2]=Sa;c[db+(eb<<4)+8>>2]=Ka;c[db+(eb<<4)+12>>2]=Ma;qa=eb+1|0;Oa=(c[D>>2]|0)+Ka|0;if((qa|0)>=(fb|0)){if((eb|0)>=(gb|0)){R=gb;do{ia=db+(R-gb<<4)|0;fa=db+(R<<4)|0;c[ia>>2]=c[fa>>2];c[ia+4>>2]=c[fa+4>>2];c[ia+8>>2]=c[fa+8>>2];c[ia+12>>2]=c[fa+12>>2];R=R+1|0}while((R|0)< +(qa|0))}R=qa-gb|0;if((R|0)<(fb|0)){hb=db;ib=R;jb=fb;kb=0}else{Ka=(fb|0)>0?fb<<1:1;hb=mo(t,db,Ka<<4)|0;ib=R;jb=Ka;kb=0}}else{hb=db;ib=qa;jb=fb;kb=gb}c[hb+(ib<<4)>>2]=N;c[hb+(ib<<4)+4>>2]=P;c[hb+(ib<<4)+8>>2]=Oa;c[hb+(ib<<4)+12>>2]=Na;_a=c[D>>2]|0;$a=jb;ab=ib+1|0;bb=kb;cb=hb}N=N+1|0;if((N|0)>=(_a|0)){lb=_a;mb=$a;nb=ab;ob=bb;pb=cb;break}else{ra=_a;Ta=ab;ua=$a;Ua=bb;M=cb}}qb=mb;rb=nb;sb=ob;tb=pb;ub=c[B>>2]|0;vb=lb}else{qb=Ra;rb=L;sb=Qa;tb=Za;ub=O;vb=Pa}if((P|0)>=(ub+-1|0)){wb=qb;xb=rb;yb=sb;zb=tb;break}else{Pa= +vb;O=ub;Za=tb;Qa=sb;L=rb;Ra=qb}}}else{wb=Va;xb=Wa;yb=Xa;zb=Ya}if((yb|0)==(xb|0)){va=zb;no(t,va);return}else{Ab=wb;Bb=xb;Cb=yb;Db=zb}b:while(1){zb=c[C>>2]|0;yb=Cb;while(1){xb=c[Db+(yb<<4)>>2]|0;wb=c[Db+(yb<<4)+4>>2]|0;Ya=c[Db+(yb<<4)+8>>2]|0;Xa=c[Db+(yb<<4)+12>>2]|0;yb=yb+1|0;Wa=zb+(Ya<<2)|0;Va=c[Wa>>2]|0;if((Va|0)!=(Xa|0)?(d=+(xb|0),f=+g[Va>>2]-d,w=+(wb|0),u=+g[Va+4>>2]-w,v=+g[Xa>>2]-d,d=+g[Xa+4>>2]-w,f*f+u*u>v*v+d*d):0){Eb=xb;Fb=wb;Gb=Ya;Hb=Xa;Ib=yb;Jb=Wa;break}if((Bb|0)==(yb|0)){va=Db;Kb=122;break b}}c[Jb>> +2]=Hb;if((Eb|0)>0){yb=Eb+-1|0;zb=Gb+-1|0;if((Bb|0)>=(Ab|0)){if((Bb|0)>(Ib|0)){Wa=Ib;do{Xa=Db+(Wa-Ib<<4)|0;Ya=Db+(Wa<<4)|0;c[Xa>>2]=c[Ya>>2];c[Xa+4>>2]=c[Ya+4>>2];c[Xa+8>>2]=c[Ya+8>>2];c[Xa+12>>2]=c[Ya+12>>2];Wa=Wa+1|0}while((Wa|0)!=(Bb|0))}Wa=Bb-Ib|0;if((Wa|0)<(Ab|0)){Lb=Db;Mb=Wa;Nb=Ab;Ob=0}else{Ya=(Ab|0)>0?Ab<<1:1;Lb=mo(t,Db,Ya<<4)|0;Mb=Wa;Nb=Ya;Ob=0}}else{Lb=Db;Mb=Bb;Nb=Ab;Ob=Ib}c[Lb+(Mb<<4)>>2]=yb;c[Lb+(Mb<<4)+4>>2]=Fb;c[Lb+(Mb<<4)+8>>2]=zb;c[Lb+(Mb<<4)+12>>2]=Hb;Pb=Mb+1|0;Qb=Nb;Rb=Ob;Sb=Lb}else{Pb= +Bb;Qb=Ab;Rb=Ib;Sb=Db}if((Fb|0)>0){Ya=Fb+-1|0;Wa=Gb-(c[D>>2]|0)|0;if((Pb|0)>=(Qb|0)){if((Pb|0)>(Rb|0)){Xa=Rb;do{wb=Sb+(Xa-Rb<<4)|0;xb=Sb+(Xa<<4)|0;c[wb>>2]=c[xb>>2];c[wb+4>>2]=c[xb+4>>2];c[wb+8>>2]=c[xb+8>>2];c[wb+12>>2]=c[xb+12>>2];Xa=Xa+1|0}while((Xa|0)!=(Pb|0))}Xa=Pb-Rb|0;if((Xa|0)<(Qb|0)){Tb=Sb;Ub=Xa;Vb=Qb;Wb=0}else{zb=(Qb|0)>0?Qb<<1:1;Tb=mo(t,Sb,zb<<4)|0;Ub=Xa;Vb=zb;Wb=0}}else{Tb=Sb;Ub=Pb;Vb=Qb;Wb=Rb}c[Tb+(Ub<<4)>>2]=Eb;c[Tb+(Ub<<4)+4>>2]=Ya;c[Tb+(Ub<<4)+8>>2]=Wa;c[Tb+(Ub<<4)+12>>2]=Hb;Xb=Ub+ +1|0;Yb=Vb;Zb=Wb;_b=Tb}else{Xb=Pb;Yb=Qb;Zb=Rb;_b=Sb}if((Eb|0)<((c[D>>2]|0)+-1|0)){zb=Eb+1|0;Xa=Gb+1|0;if((Xb|0)>=(Yb|0)){if((Xb|0)>(Zb|0)){yb=Zb;do{xb=_b+(yb-Zb<<4)|0;wb=_b+(yb<<4)|0;c[xb>>2]=c[wb>>2];c[xb+4>>2]=c[wb+4>>2];c[xb+8>>2]=c[wb+8>>2];c[xb+12>>2]=c[wb+12>>2];yb=yb+1|0}while((yb|0)!=(Xb|0))}yb=Xb-Zb|0;if((yb|0)<(Yb|0)){$b=_b;ac=yb;bc=Yb;cc=0}else{Wa=(Yb|0)>0?Yb<<1:1;$b=mo(t,_b,Wa<<4)|0;ac=yb;bc=Wa;cc=0}}else{$b=_b;ac=Xb;bc=Yb;cc=Zb}c[$b+(ac<<4)>>2]=zb;c[$b+(ac<<4)+4>>2]=Fb;c[$b+(ac<<4)+8>> +2]=Xa;c[$b+(ac<<4)+12>>2]=Hb;dc=ac+1|0;ec=bc;fc=cc;gc=$b}else{dc=Xb;ec=Yb;fc=Zb;gc=_b}if((Fb|0)<((c[B>>2]|0)+-1|0)){Wa=Fb+1|0;yb=(c[D>>2]|0)+Gb|0;if((dc|0)>=(ec|0)){if((dc|0)>(fc|0)){Ya=fc;do{wb=gc+(Ya-fc<<4)|0;xb=gc+(Ya<<4)|0;c[wb>>2]=c[xb>>2];c[wb+4>>2]=c[xb+4>>2];c[wb+8>>2]=c[xb+8>>2];c[wb+12>>2]=c[xb+12>>2];Ya=Ya+1|0}while((Ya|0)!=(dc|0))}Ya=dc-fc|0;if((Ya|0)<(ec|0)){hc=gc;ic=Ya;jc=ec;kc=0}else{Xa=(ec|0)>0?ec<<1:1;hc=mo(t,gc,Xa<<4)|0;ic=Ya;jc=Xa;kc=0}}else{hc=gc;ic=dc;jc=ec;kc=fc}c[hc+(ic<<4)>> +2]=Eb;c[hc+(ic<<4)+4>>2]=Wa;c[hc+(ic<<4)+8>>2]=yb;c[hc+(ic<<4)+12>>2]=Hb;lc=jc;mc=ic+1|0;nc=kc;oc=hc}else{lc=ec;mc=dc;nc=fc;oc=gc}if((nc|0)==(mc|0)){va=oc;Kb=122;break}else{Ab=lc;Bb=mc;Cb=nc;Db=oc}}if((Kb|0)==122){no(t,va);return}}function Kl(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+20|0;if((c[e>>2]|0)<=1)return;f=b+16|0;g=b+24|0;b=c[f>>2]|0;h=0;while(1){if((b|0)>1){i=b;j=0;while(1){k=(_(i,h)|0)+j|0;l=c[g>>2]|0;m=c[l+(k<<2)>>2]|0;n=k+1|0;o=c[l+(n<<2)>>2]|0;p=c[l+ +(k+i<<2)>>2]|0;k=c[l+(n+i<<2)>>2]|0;do if((o|0)!=(p|0)){do if(!((m|0)==(o|0)|(m|0)==(p|0))){if(((a[m+12>>0]|0)==0?(a[o+12>>0]|0)==0:0)?(a[p+12>>0]|0)==0:0)break;tb[c[(c[d>>2]|0)+8>>2]&31](d,c[m+8>>2]|0,c[o+8>>2]|0,c[p+8>>2]|0)}while(0);if(!((k|0)==(o|0)|(k|0)==(p|0))){if(((a[o+12>>0]|0)==0?(a[k+12>>0]|0)==0:0)?(a[p+12>>0]|0)==0:0)break;tb[c[(c[d>>2]|0)+8>>2]&31](d,c[o+8>>2]|0,c[k+8>>2]|0,c[p+8>>2]|0)}}while(0);j=j+1|0;p=c[f>>2]|0;if((j|0)>=(p+-1|0)){q=p;break}else i=p}}else q=b;h=h+1|0;if((h|0)>= +((c[e>>2]|0)+-1|0))break;else b=q}return}function Ll(a){a=a|0;var b=0,d=0,e=0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;c[a+12>>2]=0;g[a+16>>2]=1;c[a+20>>2]=0;c[a+24>>2]=0;c[a+28>>2]=-1;g[a+32>>2]=0;g[a+36>>2]=0;b=2440;d=c[b+4>>2]|0;e=a+40|0;c[e>>2]=c[b>>2];c[e+4>>2]=d;d=2440;e=c[d+4>>2]|0;b=a+48|0;c[b>>2]=c[d>>2];c[b+4>>2]=e;e=a+56|0;c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;c[e+12>>2]=0;g[a+72>>2]=1;c[a+76>>2]=0;return}function Ml(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,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;b=a+28|0;d=c[a>>2]|0;e=c[d+4>>2]|0;if((c[b>>2]|0)==(e|0))return;f=+g[d+32>>2]*.75;h=f*(+g[d+320>>2]*f);i=a+32|0;g[i>>2]=0;j=a+40|0;k=a+44|0;l=a+48|0;m=a+52|0;c[j>>2]=0;c[j+4>>2]=0;c[j+8>>2]=0;c[j+12>>2]=0;n=c[a+4>>2]|0;o=c[a+8>>2]|0;p=(n|0)<(o|0);if(p){q=c[d+96>>2]|0;r=c[d+104>>2]|0;f=0;s=0;t=0;u=0;v=0;w=n;while(1){x=h+f;y=h*+g[q+(w<<3)+4>>2];z=h*+g[q+(w<<3)>>2]+s;g[j>>2]=z;A=y+t;g[k>>2]=A;y=h*+g[r+(w<<3)+4>>2];B=h*+g[r+ +(w<<3)>>2]+u;g[l>>2]=B;C=y+v;g[m>>2]=C;w=w+1|0;if((w|0)>=(o|0)){D=x;E=z;F=A;G=B;H=C;break}else{f=x;s=z;t=A;u=B;v=C}}g[i>>2]=D;if(D>0){v=1/D;D=v*E;g[j>>2]=D;u=v*F;g[k>>2]=u;t=v*G;g[l>>2]=t;s=v*H;g[m>>2]=s;I=D;J=u;K=t;L=s}else{I=E;J=F;K=G;L=H}m=a+36|0;g[m>>2]=0;l=a+56|0;g[l>>2]=0;if(p){p=c[d+96>>2]|0;k=c[d+104>>2]|0;H=0;G=0;d=n;while(1){F=+g[p+(d<<3)>>2]-I;E=+g[p+(d<<3)+4>>2]-J;s=h*(F*F+E*E)+H;t=G+h*(F*(+g[k+(d<<3)+4>>2]-L)-E*(+g[k+(d<<3)>>2]-K));d=d+1|0;if((d|0)>=(o|0)){M=s;N=t;break}else{H=s;G=t}}g[m>> +2]=M;g[l>>2]=N;if(M>0)g[l>>2]=1/M*N}}else{g[a+36>>2]=0;g[a+56>>2]=0}c[b>>2]=e;return}function Nl(a,b){a=a|0;b=b|0;Gm(c[a>>2]|0,c[a+4>>2]|0,c[a+8>>2]|0,b);return}function Ol(a,b){a=a|0;b=b|0;Hm(c[a>>2]|0,c[a+4>>2]|0,c[a+8>>2]|0,b);return}function Pl(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=c[a>>2]|0;if(c[(c[d+400>>2]|0)+102876>>2]&2)return;e=c[a+4>>2]|0;f=a+8|0;if((e|0)>=(c[f>>2]|0))return;_l(d,e,b);d=e+1|0;if((d|0)<(c[f>>2]|0))g=d;else return;do{_l(c[a>>2]|0,g,b);g=g+1|0}while((g|0)<(c[f>>2]|0));return} +function Ql(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;f=b+52|0;c[b+56>>2]=f;c[f>>2]=f;c[b+60>>2]=256;f=b+64|0;c[b+68>>2]=f;c[f>>2]=f;f=b+72|0;c[b+76>>2]=f;c[f>>2]=f;f=b+80|0;c[b+136>>2]=0;c[b+140>>2]=0;c[b+148>>2]=0;c[b+152>>2]=0;h=b+196|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;f=b+160|0;i=f+36|0;do{c[f>>2]=0;f=f+4|0}while((f|0)<(i|0));c[h>>2]=e;c[b+200>>2]=0;c[b+204>>2]=0;c[b+208>>2]=0;c[b+212>>2]=e;c[b+216>>2]= +0;c[b+220>>2]=0;c[b+224>>2]=0;c[b+228>>2]=e;c[b+232>>2]=0;c[b+236>>2]=0;c[b+240>>2]=0;c[b+244>>2]=e;c[b+248>>2]=0;c[b+252>>2]=0;c[b+256>>2]=0;c[b+260>>2]=e;c[b+264>>2]=0;c[b+268>>2]=0;c[b+272>>2]=0;c[b+276>>2]=e;h=b+280|0;j=b+316|0;a[j>>0]=0;k=b+320|0;c[h>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;c[h+12>>2]=0;g[k>>2]=1;l=b+324|0;g[l>>2]=1;g[b+328>>2]=1;m=b+332|0;c[m>>2]=0;g[b+336>>2]=.05000000074505806;g[b+340>>2]=1;g[b+344>>2]=.25;g[b+348>>2]=.25;g[b+352>>2]=.25;g[b+356>>2]=.20000000298023224;g[b+360>>2]=.20000000298023224; +g[b+364>>2]=1;g[b+368>>2]=.5;g[b+372>>2]=.5;g[b+376>>2]=.20000000298023224;g[b+380>>2]=.20000000298023224;c[b+384>>2]=8;g[b+388>>2]=.5;n=b+392|0;a[n>>0]=1;g[b+396>>2]=.01666666753590107;a[b>>0]=0;c[b+4>>2]=0;c[b+8>>2]=0;a[b+12>>0]=0;c[b+16>>2]=0;a[b+20>>0]=0;a[b+21>>0]=0;c[b+24>>2]=0;a[j>>0]=a[d>>0]|0;o=+g[d+4>>2];g[k>>2]=o;g[b+28>>2]=1/o;c[l>>2]=c[d+8>>2];o=+g[d+12>>2]*2;g[b+32>>2]=o;g[b+40>>2]=o*o;g[b+36>>2]=1/o;c[m>>2]=c[d+16>>2];c[b+44>>2]=0;m=b+48|0;c[m>>2]=0;l=b+112|0;c[b+144>>2]=0;c[b+308>> +2]=0;c[b+312>>2]=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;f=j;j=d;i=f+84|0;do{c[f>>2]=c[j>>2];f=f+4|0;j=j+4|0}while((f|0)<(i|0));j=b+400|0;c[j>>2]=e;c[b+156>>2]=0;e=b+296|0;c[e>>2]=0;c[e+4>>2]=0;a[b+304>>0]=0;e=a[n>>0]|0;if(!(e<<24>>24)){a[n>>0]=e;return}f=c[h>>2]|0;if(!f){Ul(b,256);b=Sn(c[j>>2]|0,c[m>>2]<<2)|0;xp(b|0,0,c[m>>2]<<2|0)|0;p=b}else p=f;c[h>>2]=p;a[n>>0]=e;return}function Rl(a){a=a|0;var b=0,d=0,e=0,f=0;b=a+312|0;while(1){d=c[b>>2]|0;if(!d)break;Sl(a, +d)}if((c[a+84>>2]|0)==0?(b=a+80|0,d=c[b>>2]|0,(d|0)!=0):0){Tn(c[a+400>>2]|0,d,c[a+48>>2]<<2);c[b>>2]=0}if((c[a+92>>2]|0)==0?(b=a+88|0,d=c[b>>2]|0,(d|0)!=0):0){Tn(c[a+400>>2]|0,d,c[a+48>>2]<<2);c[b>>2]=0}if((c[a+164>>2]|0)==0?(b=a+160|0,d=c[b>>2]|0,(d|0)!=0):0){Tn(c[a+400>>2]|0,d,c[a+48>>2]<<2);c[b>>2]=0}if((c[a+172>>2]|0)==0?(b=a+168|0,d=c[b>>2]|0,(d|0)!=0):0){Tn(c[a+400>>2]|0,d,c[a+48>>2]<<2);c[b>>2]=0}if((c[a+180>>2]|0)==0?(b=a+176|0,d=c[b>>2]|0,(d|0)!=0):0){Tn(c[a+400>>2]|0,d,c[a+48>>2]<<2);c[b>> +2]=0}if((c[a+100>>2]|0)==0?(b=a+96|0,d=c[b>>2]|0,(d|0)!=0):0){Tn(c[a+400>>2]|0,d,c[a+48>>2]<<3);c[b>>2]=0}if((c[a+108>>2]|0)==0?(b=a+104|0,d=c[b>>2]|0,(d|0)!=0):0){Tn(c[a+400>>2]|0,d,c[a+48>>2]<<3);c[b>>2]=0}if((c[a+140>>2]|0)==0?(b=a+136|0,d=c[b>>2]|0,(d|0)!=0):0){Tn(c[a+400>>2]|0,d,c[a+48>>2]<<2);c[b>>2]=0}if((c[a+152>>2]|0)==0?(b=a+148|0,d=c[b>>2]|0,(d|0)!=0):0){Tn(c[a+400>>2]|0,d,c[a+48>>2]<<2);c[b>>2]=0}if((c[a+284>>2]|0)==0?(b=a+280|0,d=c[b>>2]|0,(d|0)!=0):0){Tn(c[a+400>>2]|0,d,c[a+48>>2]<< +2);c[b>>2]=0}if((c[a+292>>2]|0)==0?(b=a+288|0,d=c[b>>2]|0,(d|0)!=0):0){Tn(c[a+400>>2]|0,d,c[a+48>>2]<<2);c[b>>2]=0}b=a+112|0;d=a+48|0;e=c[b>>2]|0;if(e){Tn(c[a+400>>2]|0,e,c[d>>2]<<3);c[b>>2]=0}b=a+116|0;e=c[b>>2]|0;if(e){Tn(c[a+400>>2]|0,e,c[d>>2]<<2);c[b>>2]=0}b=a+120|0;e=c[b>>2]|0;if(e){Tn(c[a+400>>2]|0,e,c[d>>2]<<2);c[b>>2]=0}b=a+124|0;e=c[b>>2]|0;if(e){Tn(c[a+400>>2]|0,e,c[d>>2]<<2);c[b>>2]=0}b=a+128|0;e=c[b>>2]|0;if(e){Tn(c[a+400>>2]|0,e,c[d>>2]<<3);c[b>>2]=0}b=a+132|0;e=c[b>>2]|0;if(e){Tn(c[a+ +400>>2]|0,e,c[d>>2]<<2);c[b>>2]=0}b=a+144|0;e=c[b>>2]|0;if(e){Tn(c[a+400>>2]|0,e,c[d>>2]<<2);c[b>>2]=0}b=a+264|0;d=c[b>>2]|0;if(d){e=a+272|0;Tn(c[a+276>>2]|0,d,(c[e>>2]|0)*60|0);c[b>>2]=0;c[e>>2]=0;c[a+268>>2]=0}e=a+248|0;b=c[e>>2]|0;if(b){d=a+256|0;Tn(c[a+260>>2]|0,b,(c[d>>2]|0)*20|0);c[e>>2]=0;c[d>>2]=0;c[a+252>>2]=0}d=a+232|0;e=c[d>>2]|0;if(e){b=a+240|0;Tn(c[a+244>>2]|0,e,(c[b>>2]|0)*28|0);c[d>>2]=0;c[b>>2]=0;c[a+236>>2]=0}b=a+216|0;d=c[b>>2]|0;if(d){e=a+224|0;Tn(c[a+228>>2]|0,d,(c[e>>2]|0)*24| +0);c[b>>2]=0;c[e>>2]=0;c[a+220>>2]=0}e=a+200|0;b=c[e>>2]|0;if(b){d=a+208|0;Tn(c[a+212>>2]|0,b,c[d>>2]<<3);c[e>>2]=0;c[d>>2]=0;c[a+204>>2]=0}d=a+184|0;e=c[d>>2]|0;if(!e){f=a+52|0;Km(f);return}b=a+192|0;Tn(c[a+196>>2]|0,e,c[b>>2]<<2);c[d>>2]=0;c[b>>2]=0;c[a+188>>2]=0;f=a+52|0;Km(f);return}function Sl(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+400|0;f=c[(c[e>>2]|0)+102992>>2]|0;if(f)kb[c[(c[f>>2]|0)+16>>2]&63](f,d);f=d+12|0;g=c[f>>2]|0;h=g<<4;i=h&16;if(((h|-17)^16)&g)a[b+20>>0]=1;g= +b+16|0;h=c[g>>2]|0;if(i&~h)c[g>>2]=h|i;c[f>>2]=i;i=c[d+4>>2]|0;f=c[d+8>>2]|0;if((i|0)<(f|0)){h=b+144|0;g=i;do{c[(c[h>>2]|0)+(g<<2)>>2]=0;g=g+1|0}while((g|0)<(f|0))}f=c[d+20>>2]|0;g=d+24|0;if(f)c[f+24>>2]=c[g>>2];h=c[g>>2]|0;if(h)c[h+20>>2]=f;f=b+312|0;if((c[f>>2]|0)!=(d|0)){j=b+308|0;k=c[j>>2]|0;l=k+-1|0;c[j>>2]=l;m=c[e>>2]|0;Tn(m,d,80);return}c[f>>2]=h;j=b+308|0;k=c[j>>2]|0;l=k+-1|0;c[j>>2]=l;m=c[e>>2]|0;Tn(m,d,80);return}function Tl(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;b=a+136|0;d=c[b>>2]|0;if(d){e= +d;c[b>>2]=e;return e|0}d=a+48|0;f=c[d>>2]|0;if(!f){Ul(a,256);g=c[d>>2]|0}else g=f;f=Sn(c[a+400>>2]|0,g<<2)|0;xp(f|0,0,c[d>>2]<<2|0)|0;e=f;c[b>>2]=e;return e|0}function Ul(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0;d=c[a+332>>2]|0;e=(d|0)!=0&(d|0)<(b|0)?d:b;b=a+92|0;d=c[b>>2]|0;f=(d|0)!=0&(e|0)>(d|0)?d:e;e=a+100|0;g=c[e>>2]|0;h=(g|0)!=0&(f|0)>(g|0)?g:f;f=a+108|0;g=c[f>>2]|0;i=(g|0)!=0&(h|0)>(g|0)?g:h; +h=a+140|0;g=c[h>>2]|0;j=(g|0)!=0&(i|0)>(g|0)?g:i;i=a+152|0;g=c[i>>2]|0;k=(g|0)!=0&(j|0)>(g|0)?g:j;j=a+48|0;g=c[j>>2]|0;if((g|0)>=(k|0))return;l=a+80|0;m=c[l>>2]|0;if((m|0)==0|(c[a+84>>2]|0)!=0){n=m;o=g;p=d}else{d=a+400|0;q=Sn(c[d>>2]|0,k<<2)|0;r=g<<2;Bp(q|0,m|0,r|0)|0;Tn(c[d>>2]|0,m,r);n=q;o=c[j>>2]|0;p=c[b>>2]|0}c[l>>2]=n;c[a+60>>2]=k-o;n=a+88|0;l=c[n>>2]|0;if(!p){p=a+400|0;b=Sn(c[p>>2]|0,k<<2)|0;if(!l)s=b;else{q=o<<2;Bp(b|0,l|0,q|0)|0;Tn(c[p>>2]|0,l,q);s=b}}else s=l;c[n>>2]=s;s=(c[a+156>>2]|0)> +0;n=c[j>>2]|0;l=a+160|0;b=c[l>>2]|0;q=(b|0)==0;if(!((c[a+164>>2]|0)!=0|s&q)){p=a+400|0;o=Sn(c[p>>2]|0,k<<2)|0;if(q)t=o;else{q=n<<2;Bp(o|0,b|0,q|0)|0;Tn(c[p>>2]|0,b,q);t=o}}else t=b;c[l>>2]=t;t=c[j>>2]|0;l=a+168|0;b=c[l>>2]|0;o=(b|0)==0;if(!((c[a+172>>2]|0)!=0|s&o)){q=a+400|0;p=Sn(c[q>>2]|0,k<<2)|0;if(o)u=p;else{o=t<<2;Bp(p|0,b|0,o|0)|0;Tn(c[q>>2]|0,b,o);u=p}}else u=b;c[l>>2]=u;u=c[j>>2]|0;l=a+176|0;b=c[l>>2]|0;p=(b|0)==0;if(!((c[a+180>>2]|0)!=0|s&p)){s=a+400|0;o=Sn(c[s>>2]|0,k<<2)|0;if(p)v=o;else{p= +u<<2;Bp(o|0,b|0,p|0)|0;Tn(c[s>>2]|0,b,p);v=o}}else v=b;c[l>>2]=v;v=c[j>>2]|0;l=a+96|0;b=c[l>>2]|0;if(!(c[e>>2]|0)){e=a+400|0;o=Sn(c[e>>2]|0,k<<3)|0;if(!b)w=o;else{p=v<<3;Bp(o|0,b|0,p|0)|0;Tn(c[e>>2]|0,b,p);w=o}}else w=b;c[l>>2]=w;w=c[j>>2]|0;l=a+104|0;b=c[l>>2]|0;if(!(c[f>>2]|0)){f=a+400|0;o=k<<3;p=Sn(c[f>>2]|0,o)|0;if(!b){x=p;y=o;z=f}else{e=w<<3;Bp(p|0,b|0,e|0)|0;Tn(c[f>>2]|0,b,e);x=p;y=o;z=f}}else{x=b;y=k<<3;z=a+400|0}c[l>>2]=x;x=a+112|0;l=c[x>>2]|0;b=c[j>>2]|0;f=Sn(c[z>>2]|0,y)|0;if(l){o=b<<3; +Bp(f|0,l|0,o|0)|0;Tn(c[z>>2]|0,l,o)}c[x>>2]=f;f=a+116|0;x=c[f>>2]|0;o=c[j>>2]|0;l=k<<2;b=Sn(c[z>>2]|0,l)|0;if(x){p=o<<2;Bp(b|0,x|0,p|0)|0;Tn(c[z>>2]|0,x,p)}c[f>>2]=b;b=a+120|0;f=c[b>>2]|0;if(!f)A=0;else{p=c[j>>2]|0;x=Sn(c[z>>2]|0,l)|0;o=p<<2;Bp(x|0,f|0,o|0)|0;Tn(c[z>>2]|0,f,o);A=x}c[b>>2]=A;A=a+124|0;b=c[A>>2]|0;x=c[j>>2]|0;o=Sn(c[z>>2]|0,l)|0;if(b){f=x<<2;Bp(o|0,b|0,f|0)|0;Tn(c[z>>2]|0,b,f)}c[A>>2]=o;o=a+128|0;A=c[o>>2]|0;if(!A)B=0;else{f=c[j>>2]|0;b=Sn(c[z>>2]|0,y)|0;y=f<<3;Bp(b|0,A|0,y|0)|0;Tn(c[z>> +2]|0,A,y);B=b}c[o>>2]=B;B=a+132|0;o=c[B>>2]|0;if(!o)C=0;else{b=c[j>>2]|0;y=Sn(c[z>>2]|0,l)|0;A=b<<2;Bp(y|0,o|0,A|0)|0;Tn(c[z>>2]|0,o,A);C=y}c[B>>2]=C;C=a+136|0;B=c[C>>2]|0;if((B|0)==0|(c[h>>2]|0)!=0)D=B;else{h=c[j>>2]|0;y=Sn(c[z>>2]|0,l)|0;A=h<<2;Bp(y|0,B|0,A|0)|0;Tn(c[z>>2]|0,B,A);D=y}c[C>>2]=D;D=a+144|0;C=c[D>>2]|0;y=c[j>>2]|0;A=Sn(c[z>>2]|0,l)|0;if(C){B=y<<2;Bp(A|0,C|0,B|0)|0;Tn(c[z>>2]|0,C,B)}c[D>>2]=A;A=a+148|0;D=c[A>>2]|0;if((D|0)==0|(c[i>>2]|0)!=0)E=D;else{i=c[j>>2]|0;B=Sn(c[z>>2]|0,l)|0;C= +i<<2;Bp(B|0,D|0,C|0)|0;Tn(c[z>>2]|0,D,C);E=B}c[A>>2]=E;E=a+280|0;A=c[E>>2]|0;if((A|0)==0|(c[a+284>>2]|0)!=0)F=A;else{B=c[j>>2]|0;C=Sn(c[z>>2]|0,l)|0;D=B<<2;Bp(C|0,A|0,D|0)|0;Tn(c[z>>2]|0,A,D);F=C}c[E>>2]=F;F=a+288|0;E=c[F>>2]|0;if((E|0)==0|(c[a+292>>2]|0)!=0)G=E;else{a=c[j>>2]|0;C=Sn(c[z>>2]|0,l)|0;l=a<<2;Bp(C|0,E|0,l|0)|0;Tn(c[z>>2]|0,E,l);G=C}c[F>>2]=G;c[j>>2]=k;return}function Vl(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;e=b+400|0;if(c[(c[e>> +2]|0)+102876>>2]&2){f=0;return f|0}h=b+44|0;i=c[h>>2]|0;j=b+48|0;k=c[j>>2]|0;if((i|0)<(k|0)){l=i;m=k}else{Ul(b,(i|0)==0?256:i<<1);l=c[h>>2]|0;m=c[j>>2]|0}do if((l|0)>=(m|0))if(!(a[b+392>>0]|0)){f=-1;return f|0}else{i=c[b+288>>2]|0;k=c[i+(l+-1<<2)>>2]|0;n=(c[(c[b+280>>2]|0)+(k<<2)>>2]|0)>0?k:c[i>>2]|0;i=b+88|0;Zl(b,n,c[(c[i>>2]|0)+(n<<2)>>2]|2);Wl(b);o=i;p=c[h>>2]|0;break}else{o=b+88|0;p=l}while(0);l=p+1|0;c[h>>2]=l;c[(c[o>>2]|0)+(p<<2)>>2]=0;o=c[b+160>>2]|0;if(o)c[o+(p<<2)>>2]=0;o=c[b+168>>2]|0;if(o)c[o+ +(p<<2)>>2]=0;o=c[b+176>>2]|0;if(o)c[o+(p<<2)>>2]=0;o=d+4|0;h=c[o+4>>2]|0;m=(c[b+96>>2]|0)+(p<<3)|0;c[m>>2]=c[o>>2];c[m+4>>2]=h;h=d+12|0;m=c[h+4>>2]|0;o=(c[b+104>>2]|0)+(p<<3)|0;c[o>>2]=c[h>>2];c[o+4>>2]=m;g[(c[b+116>>2]|0)+(p<<2)>>2]=0;m=2440;o=c[m+4>>2]|0;h=(c[b+112>>2]|0)+(p<<3)|0;c[h>>2]=c[m>>2];c[h+4>>2]=o;o=c[b+120>>2]|0;if(o)g[o+(p<<2)>>2]=0;o=c[b+132>>2]|0;if(o)g[o+(p<<2)>>2]=0;o=b+136|0;h=c[o>>2]|0;m=d+20|0;do if(!h){if((((a[m>>0]|0)==0?(a[d+21>>0]|0)==0:0)?(a[d+22>>0]|0)==0:0)?(a[d+23>>0]| +0)==0:0)break;i=c[j>>2]|0;if(!i){Ul(b,256);q=c[j>>2]|0}else q=i;i=Sn(c[e>>2]|0,q<<2)|0;xp(i|0,0,c[j>>2]<<2|0)|0;r=i;s=26}else{r=h;s=26}while(0);if((s|0)==26){c[o>>2]=r;o=a[d+21>>0]|0;h=a[d+22>>0]|0;q=a[d+23>>0]|0;a[r+(p<<2)>>0]=a[m>>0]|0;a[r+(p<<2)+1>>0]=o;a[r+(p<<2)+2>>0]=h;a[r+(p<<2)+3>>0]=q}q=b+148|0;r=c[q>>2]|0;h=d+28|0;if(!r){if(c[h>>2]|0){o=c[j>>2]|0;if(!o){Ul(b,256);t=c[j>>2]|0}else t=o;o=Sn(c[e>>2]|0,t<<2)|0;xp(o|0,0,c[j>>2]<<2|0)|0;u=o;s=32}}else{u=r;s=32}if((s|0)==32){c[q>>2]=u;c[u+(p<< +2)>>2]=c[h>>2]}h=c[b+80>>2]|0;if(h)c[h+(p<<2)>>2]=0;h=b+200|0;u=b+204|0;q=c[u>>2]|0;s=b+208|0;r=c[s>>2]|0;if((q|0)>=(r|0)?(o=(r|0)==0?256:r<<1,(r|0)<(o|0)):0){r=b+212|0;j=Sn(c[r>>2]|0,o<<3)|0;t=c[h>>2]|0;if(!t)v=h;else{Bp(j|0,t|0,c[u>>2]<<3|0)|0;Tn(c[r>>2]|0,c[h>>2]|0,c[s>>2]<<3);v=h}c[s>>2]=o;c[v>>2]=j;w=c[u>>2]|0}else w=q;c[u>>2]=w+1;u=c[h>>2]|0;x=+g[d+24>>2];h=x>0;if(h|(c[b+280>>2]|0)!=0){if(h)y=x;else{h=c[b+296+4>>2]|0;y=+g[b+396>>2]*+(((h|0)<0?0-h|0:0)-h|0)}Xl(b,p,y);c[(c[b+288>>2]|0)+(p<<2)>> +2]=p}c[u+(w<<3)>>2]=p;w=c[d+32>>2]|0;c[(c[b+144>>2]|0)+(p<<2)>>2]=w;do if(w){u=w+4|0;h=c[u>>2]|0;q=w+8|0;j=c[q>>2]|0;if((h|0)<(j|0)){Yl(b,h,j,p);c[q>>2]=l;break}else{c[u>>2]=p;c[q>>2]=l;break}}while(0);Zl(b,p,c[d>>2]|0);f=p;return f|0}function Wl(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,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;d=b+400|0;e=b+44|0;f=lo((c[d>>2]|0)+76|0,c[e>>2]<<2)|0;if((c[e>>2]|0)>0){g=b+88|0;h=b+80|0;i=b+160|0;j=b+168|0;k=b+176|0;l=b+96|0;m=b+104|0;n=b+144|0;o=b+21|0;p=b+120|0;q=b+132|0;r=b+136|0;s=b+148|0;t=b+280|0;u=b+112|0;v=b+64|0;w=0;x=0;y=0;while(1){z=c[g>>2]|0;A=c[z+(x<<2)>>2]|0;if(!(A&2)){c[f+(x<<2)>>2]=y;if((x|0)!=(y|0)){B=c[h>>2]|0;if(!B)C=z;else{z=c[B+(x<<2)>>2]|0;if(z)c[z+8>>2]=y;c[B+(y<<2)>>2]=z;C=c[g>>2]|0}c[C+(y<< +2)>>2]=c[C+(x<<2)>>2];z=c[i>>2]|0;if(z)c[z+(y<<2)>>2]=c[z+(x<<2)>>2];z=c[j>>2]|0;if(z)c[z+(y<<2)>>2]=c[z+(x<<2)>>2];z=c[k>>2]|0;if(z)c[z+(y<<2)>>2]=c[z+(x<<2)>>2];z=c[l>>2]|0;B=z+(x<<3)|0;D=c[B+4>>2]|0;E=z+(y<<3)|0;c[E>>2]=c[B>>2];c[E+4>>2]=D;D=c[m>>2]|0;E=D+(x<<3)|0;B=c[E+4>>2]|0;z=D+(y<<3)|0;c[z>>2]=c[E>>2];c[z+4>>2]=B;B=c[n>>2]|0;c[B+(y<<2)>>2]=c[B+(x<<2)>>2];if(a[o>>0]|0){B=c[u>>2]|0;z=B+(x<<3)|0;E=c[z+4>>2]|0;D=B+(y<<3)|0;c[D>>2]=c[z>>2];c[D+4>>2]=E}E=c[p>>2]|0;if(E)c[E+(y<<2)>>2]=c[E+(x<<2)>> +2];E=c[q>>2]|0;if(E)c[E+(y<<2)>>2]=c[E+(x<<2)>>2];E=c[r>>2]|0;if(E){D=a[E+(x<<2)+1>>0]|0;z=a[E+(x<<2)+2>>0]|0;B=a[E+(x<<2)+3>>0]|0;a[E+(y<<2)>>0]=a[E+(x<<2)>>0]|0;a[E+(y<<2)+1>>0]=D;a[E+(y<<2)+2>>0]=z;a[E+(y<<2)+3>>0]=B}B=c[s>>2]|0;if(B)c[B+(y<<2)>>2]=c[B+(x<<2)>>2];B=c[t>>2]|0;if(B)c[B+(y<<2)>>2]=c[B+(x<<2)>>2]}F=A|w;G=y+1|0}else{B=c[(c[d>>2]|0)+102992>>2]|0;if((A&512|0)!=0&(B|0)!=0)mb[c[(c[B>>2]|0)+20>>2]&7](B,b,x);B=c[h>>2]|0;if((B|0)!=0?(A=B+(x<<2)|0,B=c[A>>2]|0,(B|0)!=0):0){c[B+8>>2]=-1;c[A>> +2]=0;Pn(v,B)}c[f+(x<<2)>>2]=-1;F=w;G=y}x=x+1|0;if((x|0)>=(c[e>>2]|0)){H=F;I=G;break}else{w=F;y=G}}}else{H=0;I=0}G=b+204|0;y=c[G>>2]|0;F=b+200|0;w=c[F>>2]|0;if((y|0)>0){x=0;do{v=w+(x<<3)|0;c[v>>2]=c[f+(c[v>>2]<<2)>>2];x=x+1|0}while((x|0)<(y|0))}x=w+(y<<3)|0;a:do if(!y){J=w;K=40}else{v=w;while(1){if((c[v>>2]|0)<0){J=v;K=40;break a}v=v+8|0;if((v|0)==(x|0)){L=x;M=w;break}}}while(0);if((K|0)==40)if((J|0)==(x|0)){L=x;M=w}else{w=J;y=J;b:while(1){J=y;while(1){v=J+8|0;if((v|0)==(x|0)){N=w;break b}if((c[v>> +2]|0)<0)J=v;else{O=v;break}}J=O;v=c[J+4>>2]|0;h=w;c[h>>2]=c[J>>2];c[h+4>>2]=v;w=w+8|0;y=O}L=N;M=c[F>>2]|0}c[G>>2]=L-M>>3;M=b+220|0;L=c[M>>2]|0;G=b+216|0;F=c[G>>2]|0;if((L|0)>0){N=0;do{O=F+(N*24|0)|0;y=F+(N*24|0)+4|0;w=c[f+(c[y>>2]<<2)>>2]|0;c[O>>2]=c[f+(c[O>>2]<<2)>>2];c[y>>2]=w;N=N+1|0}while((N|0)<(L|0))}N=F+(L*24|0)|0;c:do if(!L){P=F;K=52}else{w=F;while(1){if((c[w>>2]|0)<0){P=w;K=52;break c}if((c[w+4>>2]|0)<0){P=w;K=52;break c}w=w+24|0;if((w|0)==(N|0)){Q=N;R=F;break}}}while(0);if((K|0)==52)if((P| +0)==(N|0)){Q=N;R=F}else{F=P+24|0;d:do if((F|0)==(N|0))S=P;else{L=P;w=F;y=P;while(1){O=w;x=y;while(1){if((c[O>>2]|0)>=0?(c[x+28>>2]|0)>=0:0){T=O;break}v=O+24|0;if((v|0)==(N|0)){S=L;break d}else{h=O;O=v;x=h}}c[L>>2]=c[T>>2];c[L+4>>2]=c[T+4>>2];c[L+8>>2]=c[T+8>>2];c[L+12>>2]=c[T+12>>2];c[L+16>>2]=c[T+16>>2];c[L+20>>2]=c[T+20>>2];x=L+24|0;O=T+24|0;if((O|0)==(N|0)){S=x;break}else{L=x;w=O;y=T}}}while(0);Q=S;R=c[G>>2]|0}c[M>>2]=(Q-R|0)/24|0;R=b+236|0;Q=c[R>>2]|0;M=b+232|0;G=c[M>>2]|0;if((Q|0)>0){S=0;do{T= +G+(S*28|0)|0;c[T>>2]=c[f+(c[T>>2]<<2)>>2];S=S+1|0}while((S|0)<(Q|0))}S=G+(Q*28|0)|0;e:do if(!Q){U=G;K=65}else{T=G;while(1){if((c[T>>2]|0)<0){U=T;K=65;break e}T=T+28|0;if((T|0)==(S|0)){V=S;W=G;break}}}while(0);if((K|0)==65)if((U|0)==(S|0)){V=S;W=G}else{G=U;Q=U;f:while(1){U=Q;while(1){T=U+28|0;if((T|0)==(S|0)){X=G;break f}if((c[T>>2]|0)<0)U=T;else{Y=T;break}}c[G>>2]=c[Y>>2];c[G+4>>2]=c[Y+4>>2];c[G+8>>2]=c[Y+8>>2];c[G+12>>2]=c[Y+12>>2];c[G+16>>2]=c[Y+16>>2];c[G+20>>2]=c[Y+20>>2];c[G+24>>2]=c[Y+24>>2]; +G=G+28|0;Q=Y}V=X;W=c[M>>2]|0}c[R>>2]=(V-W|0)/28|0;W=b+252|0;V=c[W>>2]|0;R=b+248|0;M=c[R>>2]|0;if((V|0)>0){X=0;do{Y=M+(X*20|0)|0;c[Y>>2]=c[f+(c[Y>>2]<<2)>>2];Y=M+(X*20|0)+4|0;c[Y>>2]=c[f+(c[Y>>2]<<2)>>2];X=X+1|0}while((X|0)<(V|0))}X=M+(V*20|0)|0;g:do if(!V){Z=M;K=76}else{Y=M;while(1){if((c[Y+4>>2]|c[Y>>2]|0)<0){Z=Y;K=76;break g}Y=Y+20|0;if((Y|0)==(X|0)){_=X;$=M;break}}}while(0);if((K|0)==76)if((Z|0)==(X|0)){_=X;$=M}else{M=Z;V=Z;h:while(1){Z=V;while(1){Y=Z+20|0;if((Y|0)==(X|0)){aa=M;break h}if((c[Z+ +24>>2]|c[Y>>2]|0)<0)Z=Y;else{ba=Y;break}}c[M>>2]=c[ba>>2];c[M+4>>2]=c[ba+4>>2];c[M+8>>2]=c[ba+8>>2];c[M+12>>2]=c[ba+12>>2];c[M+16>>2]=c[ba+16>>2];M=M+20|0;V=ba}_=aa;$=c[R>>2]|0}c[W>>2]=(_-$|0)/20|0;$=b+268|0;_=c[$>>2]|0;W=b+264|0;R=c[W>>2]|0;if((_|0)>0){aa=0;do{ba=R+(aa*60|0)|0;c[ba>>2]=c[f+(c[ba>>2]<<2)>>2];ba=R+(aa*60|0)+4|0;c[ba>>2]=c[f+(c[ba>>2]<<2)>>2];ba=R+(aa*60|0)+8|0;c[ba>>2]=c[f+(c[ba>>2]<<2)>>2];aa=aa+1|0}while((aa|0)<(_|0))}aa=R+(_*60|0)|0;i:do if(!_){ca=R;K=89}else{ba=R;while(1){if((c[ba>> +2]|0)<0){ca=ba;K=89;break i}if((c[ba+4>>2]|0)<0){ca=ba;K=89;break i}if((c[ba+8>>2]|0)<0){ca=ba;K=89;break i}ba=ba+60|0;if((ba|0)==(aa|0)){da=aa;ea=R;break}}}while(0);if((K|0)==89)if((ca|0)==(aa|0)){da=aa;ea=R}else{R=ca+60|0;j:do if((R|0)==(aa|0))fa=ca;else{K=ca;_=R;ba=ca;while(1){V=_;M=ba;while(1){if(((c[V>>2]|0)>=0?(c[M+64>>2]|0)>=0:0)?(c[M+68>>2]|0)>=0:0){ga=V;break}X=V+60|0;if((X|0)==(aa|0)){fa=K;break j}else{Z=V;V=X;M=Z}}M=K;V=ga;Z=M+60|0;do{c[M>>2]=c[V>>2];M=M+4|0;V=V+4|0}while((M|0)<(Z|0)); +V=K+60|0;M=ga+60|0;if((M|0)==(aa|0)){fa=V;break}else{K=V;_=M;ba=ga}}}while(0);da=fa;ea=c[W>>2]|0}c[$>>2]=(da-ea|0)/60|0;ea=c[b+288>>2]|0;if((ea|0)!=0?(da=c[e>>2]|0,(da|0)>0):0){$=da;da=0;W=0;while(1){fa=c[f+(c[ea+(da<<2)>>2]<<2)>>2]|0;if((fa|0)==-1){ha=$;ia=W}else{c[ea+(W<<2)>>2]=fa;ha=c[e>>2]|0;ia=W+1|0}da=da+1|0;if((da|0)>=(ha|0))break;else{$=ha;W=ia}}}ia=b+312|0;W=c[ia>>2]|0;if(W){ha=b+16|0;$=b+132|0;da=b+48|0;ea=b+20|0;fa=W;do{W=fa+4|0;ga=c[W>>2]|0;aa=fa+8|0;ca=c[aa>>2]|0;if((ga|0)<(ca|0)){R= +I;ba=ga;ga=0;_=0;while(1){K=c[f+(ba<<2)>>2]|0;if((K|0)>-1){M=K+1|0;ja=(R|0)<(K|0)?R:K;ka=(ga|0)>(M|0)?ga:M;la=_}else{ja=R;ka=ga;la=1}ba=ba+1|0;if((ba|0)>=(ca|0)){ma=ja;na=ka;oa=la;break}else{R=ja;ga=ka;_=la}}}else{ma=I;na=0;oa=0}if((ma|0)<(na|0)){c[W>>2]=ma;c[aa>>2]=na;if(oa?(_=fa+12|0,ga=c[_>>2]|0,(ga&1|0)!=0):0){R=ga|16;ga=c[ha>>2]|0;if(R&~ga){ca=c[$>>2]|0;if(!ca){ba=c[da>>2]|0;if(!ba){Ul(b,256);pa=c[da>>2]|0}else pa=ba;ba=Sn(c[d>>2]|0,pa<<2)|0;xp(ba|0,0,c[da>>2]<<2|0)|0;qa=ba;ra=c[ha>>2]|0}else{qa= +ca;ra=ga}c[$>>2]=qa;c[ha>>2]=ra|R}c[_>>2]=R}}else{c[W>>2]=0;c[aa>>2]=0;R=fa+12|0;_=c[R>>2]|0;if(!(_&4)){ga=_|8;if((_&-9^-9)&_)a[ea>>0]=1;ca=c[ha>>2]|0;if(ga&~ca){if(!(_&1))sa=ca;else{_=c[$>>2]|0;if(!_){ba=c[da>>2]|0;if(!ba){Ul(b,256);ta=c[da>>2]|0}else ta=ba;ba=Sn(c[d>>2]|0,ta<<2)|0;xp(ba|0,0,c[da>>2]<<2|0)|0;ua=ba;va=c[ha>>2]|0}else{ua=_;va=ca}c[$>>2]=ua;sa=va}c[ha>>2]=sa|ga}c[R>>2]=ga}}fa=c[fa+24>>2]|0}while((fa|0)!=0)}c[e>>2]=I;no((c[d>>2]|0)+76|0,f);c[b+8>>2]=H;a[b+12>>0]=0;H=c[ia>>2]|0;if(!H)return; +else wa=H;do{H=wa;wa=c[wa+24>>2]|0;if(c[H+12>>2]&8)Sl(b,H)}while((wa|0)!=0);return}function Xl(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;f=b+288|0;h=c[f>>2]|0;i=(h|0)==0;j=b+280|0;k=c[j>>2]|0;if(!k){l=b+48|0;m=c[l>>2]|0;if(!m){Ul(b,256);n=c[l>>2]|0}else n=m;m=Sn(c[b+400>>2]|0,n<<2)|0;xp(m|0,0,c[l>>2]<<2|0)|0;o=m;p=c[f>>2]|0}else{o=k;p=h}c[j>>2]=o;if(!p){o=b+48|0;h=c[o>>2]|0;if(!h){Ul(b,256);q=c[o>>2]|0}else q=h;h=Sn(c[b+400>>2]|0,q<<2)|0;xp(h|0,0,c[o>>2]<<2|0)| +0;r=h}else r=p;c[f>>2]=r;if(i?(i=c[b+44>>2]|0,(i|0)>0):0){f=0;do{c[r+(f<<2)>>2]=f;f=f+1|0}while((f|0)!=(i|0))}i=~~(e/+g[b+396>>2]);if((i|0)>0)s=(c[b+296+4>>2]|0)+i|0;else s=i;i=(c[j>>2]|0)+(d<<2)|0;if((s|0)==(c[i>>2]|0))return;c[i>>2]=s;a[b+304>>0]=1;return}function Yl(b,e,f,g){b=b|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=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,Ea=0,Fa=0,Ga=0,Ha=0,Ia=0,Ja=0;if((e|0)==(f|0)|(g|0)==(f|0))return;h=c[b+88>>2]|0;i=h+(e<<2)|0;j=h+(f<<2)|0;k=h+(g<<2)|0;a:do if((e+1|0)!=(f|0)){if((f+1|0)==(g|0)){l=h+(g+-1<<2)|0;m=c[l>>2]|0;n=l-i|0;Cp(h+(g-(n>>2)<<2)|0,i|0,n|0)|0;c[i>>2]=m;break}m=j;n=m-i>>2;l=k;o=l-m>>2;if((n|0)==(o|0)){m=i;p=j;while(1){q=c[m>>2]|0;c[m>>2]=c[p>>2];c[p>>2]=q;m=m+4|0;if((m| +0)==(j|0))break a;else p=p+4|0}}else{r=n;s=o}while(1){p=(r|0)%(s|0)|0;if(!p){t=s;break}else{m=s;s=p;r=m}}if(t){o=n+-1|0;m=n+e|0;p=h+(t+e<<2)|0;do{q=p;p=p+-4|0;u=c[p>>2]|0;v=p;w=q+(o<<2)|0;while(1){c[v>>2]=c[w>>2];q=l-w>>2;x=(n|0)<(q|0)?w+(n<<2)|0:h+(m-q<<2)|0;if((x|0)==(p|0)){y=w;break}else{q=w;w=x;v=q}}c[y>>2]=u}while((p|0)!=(i|0))}}else{p=c[i>>2]|0;m=k-j|0;Cp(i|0,j|0,m|0)|0;c[h+((m>>2)+e<<2)>>2]=p}while(0);h=c[b+160>>2]|0;b:do if(h){j=h+(e<<2)|0;i=h+(f<<2)|0;k=h+(g<<2)|0;if((e+1|0)==(f|0)){y=c[j>> +2]|0;t=k-i|0;Cp(j|0,i|0,t|0)|0;c[h+((t>>2)+e<<2)>>2]=y;break}if((f+1|0)==(g|0)){y=h+(g+-1<<2)|0;t=c[y>>2]|0;r=y-j|0;Cp(h+(g-(r>>2)<<2)|0,j|0,r|0)|0;c[j>>2]=t;break}t=i;r=t-j>>2;y=k;k=y-t>>2;if((r|0)==(k|0)){t=j;s=i;while(1){p=c[t>>2]|0;c[t>>2]=c[s>>2];c[s>>2]=p;t=t+4|0;if((t|0)==(i|0))break b;else s=s+4|0}}else{z=r;A=k}while(1){s=(z|0)%(A|0)|0;if(!s){B=A;break}else{i=A;A=s;z=i}}if(B){k=r+-1|0;i=r+e|0;s=h+(B+e<<2)|0;do{t=s;s=s+-4|0;p=c[s>>2]|0;m=s;n=t+(k<<2)|0;while(1){c[m>>2]=c[n>>2];t=y-n>>2;l=(r| +0)<(t|0)?n+(r<<2)|0:h+(i-t<<2)|0;if((l|0)==(s|0)){C=n;break}else{t=n;n=l;m=t}}c[C>>2]=p}while((s|0)!=(j|0))}}while(0);C=c[b+168>>2]|0;c:do if(C){h=C+(e<<2)|0;B=C+(f<<2)|0;z=C+(g<<2)|0;if((e+1|0)==(f|0)){A=c[h>>2]|0;j=z-B|0;Cp(h|0,B|0,j|0)|0;c[C+((j>>2)+e<<2)>>2]=A;break}if((f+1|0)==(g|0)){A=C+(g+-1<<2)|0;j=c[A>>2]|0;s=A-h|0;Cp(C+(g-(s>>2)<<2)|0,h|0,s|0)|0;c[h>>2]=j;break}j=B;s=j-h>>2;A=z;z=A-j>>2;if((s|0)==(z|0)){j=h;i=B;while(1){r=c[j>>2]|0;c[j>>2]=c[i>>2];c[i>>2]=r;j=j+4|0;if((j|0)==(B|0))break c; +else i=i+4|0}}else{D=s;E=z}while(1){i=(D|0)%(E|0)|0;if(!i){F=E;break}else{B=E;E=i;D=B}}if(F){z=s+-1|0;B=s+e|0;i=C+(F+e<<2)|0;do{j=i;i=i+-4|0;r=c[i>>2]|0;y=i;k=j+(z<<2)|0;while(1){c[y>>2]=c[k>>2];j=A-k>>2;m=(s|0)<(j|0)?k+(s<<2)|0:C+(B-j<<2)|0;if((m|0)==(i|0)){G=k;break}else{j=k;k=m;y=j}}c[G>>2]=r}while((i|0)!=(h|0))}}while(0);G=c[b+176>>2]|0;d:do if(G){C=G+(e<<2)|0;F=G+(f<<2)|0;D=G+(g<<2)|0;if((e+1|0)==(f|0)){E=c[C>>2]|0;h=D-F|0;Cp(C|0,F|0,h|0)|0;c[G+((h>>2)+e<<2)>>2]=E;break}if((f+1|0)==(g|0)){E= +G+(g+-1<<2)|0;h=c[E>>2]|0;i=E-C|0;Cp(G+(g-(i>>2)<<2)|0,C|0,i|0)|0;c[C>>2]=h;break}h=F;i=h-C>>2;E=D;D=E-h>>2;if((i|0)==(D|0)){h=C;B=F;while(1){s=c[h>>2]|0;c[h>>2]=c[B>>2];c[B>>2]=s;h=h+4|0;if((h|0)==(F|0))break d;else B=B+4|0}}else{H=i;I=D}while(1){B=(H|0)%(I|0)|0;if(!B){J=I;break}else{F=I;I=B;H=F}}if(J){D=i+-1|0;F=i+e|0;B=G+(J+e<<2)|0;do{h=B;B=B+-4|0;s=c[B>>2]|0;A=B;z=h+(D<<2)|0;while(1){c[A>>2]=c[z>>2];h=E-z>>2;y=(i|0)<(h|0)?z+(i<<2)|0:G+(F-h<<2)|0;if((y|0)==(B|0)){K=z;break}else{h=z;z=y;A=h}}c[K>> +2]=s}while((B|0)!=(C|0))}}while(0);K=c[b+96>>2]|0;G=K+(e<<3)|0;J=K+(f<<3)|0;H=K+(g<<3)|0;e:do if((e+1|0)!=(f|0)){if((f+1|0)==(g|0)){I=K+(g+-1<<3)|0;C=I;B=c[C>>2]|0;F=c[C+4>>2]|0;C=I-G|0;Cp(K+(g-(C>>3)<<3)|0,G|0,C|0)|0;C=G;c[C>>2]=B;c[C+4>>2]=F;break}F=J;C=F-G>>3;B=H;I=B-F>>3;if((C|0)==(I|0)){F=G;i=J;while(1){E=F;D=c[E>>2]|0;A=c[E+4>>2]|0;E=i;z=c[E+4>>2]|0;r=F;c[r>>2]=c[E>>2];c[r+4>>2]=z;z=i;c[z>>2]=D;c[z+4>>2]=A;F=F+8|0;if((F|0)==(J|0))break e;else i=i+8|0}}else{L=C;M=I}while(1){i=(L|0)%(M|0)|0;if(!i){N= +M;break}else{F=M;M=i;L=F}}if(N){I=C+-1|0;F=C+e|0;i=K+(N+e<<3)|0;do{A=i;i=i+-8|0;z=i;D=c[z>>2]|0;r=c[z+4>>2]|0;z=i;E=A+(I<<3)|0;while(1){A=E;h=c[A+4>>2]|0;y=z;c[y>>2]=c[A>>2];c[y+4>>2]=h;h=B-E>>3;y=(C|0)<(h|0)?E+(C<<3)|0:K+(F-h<<3)|0;if((y|0)==(i|0)){O=E;break}else{h=E;E=y;z=h}}z=O;c[z>>2]=D;c[z+4>>2]=r}while((i|0)!=(G|0))}}else{i=G;F=c[i>>2]|0;C=c[i+4>>2]|0;i=H-J|0;Cp(G|0,J|0,i|0)|0;B=K+((i>>3)+e<<3)|0;c[B>>2]=F;c[B+4>>2]=C}while(0);K=c[b+104>>2]|0;J=K+(e<<3)|0;G=K+(f<<3)|0;H=K+(g<<3)|0;f:do if((e+ +1|0)!=(f|0)){if((f+1|0)==(g|0)){O=K+(g+-1<<3)|0;N=O;L=c[N>>2]|0;M=c[N+4>>2]|0;N=O-J|0;Cp(K+(g-(N>>3)<<3)|0,J|0,N|0)|0;N=J;c[N>>2]=L;c[N+4>>2]=M;break}M=G;N=M-J>>3;L=H;O=L-M>>3;if((N|0)==(O|0)){M=J;C=G;while(1){B=M;F=c[B>>2]|0;i=c[B+4>>2]|0;B=C;I=c[B+4>>2]|0;z=M;c[z>>2]=c[B>>2];c[z+4>>2]=I;I=C;c[I>>2]=F;c[I+4>>2]=i;M=M+8|0;if((M|0)==(G|0))break f;else C=C+8|0}}else{P=N;Q=O}while(1){C=(P|0)%(Q|0)|0;if(!C){R=Q;break}else{M=Q;Q=C;P=M}}if(R){O=N+-1|0;M=N+e|0;C=K+(R+e<<3)|0;do{i=C;C=C+-8|0;I=C;F=c[I>>2]| +0;z=c[I+4>>2]|0;I=C;B=i+(O<<3)|0;while(1){i=B;E=c[i+4>>2]|0;s=I;c[s>>2]=c[i>>2];c[s+4>>2]=E;E=L-B>>3;s=(N|0)<(E|0)?B+(N<<3)|0:K+(M-E<<3)|0;if((s|0)==(C|0)){S=B;break}else{E=B;B=s;I=E}}I=S;c[I>>2]=F;c[I+4>>2]=z}while((C|0)!=(J|0))}}else{C=J;M=c[C>>2]|0;N=c[C+4>>2]|0;C=H-G|0;Cp(J|0,G|0,C|0)|0;L=K+((C>>3)+e<<3)|0;c[L>>2]=M;c[L+4>>2]=N}while(0);K=c[b+144>>2]|0;G=K+(e<<2)|0;J=K+(f<<2)|0;H=K+(g<<2)|0;g:do if((e+1|0)!=(f|0)){if((f+1|0)==(g|0)){S=K+(g+-1<<2)|0;R=c[S>>2]|0;P=S-G|0;Cp(K+(g-(P>>2)<<2)|0,G|0, +P|0)|0;c[G>>2]=R;break}R=J;P=R-G>>2;S=H;Q=S-R>>2;if((P|0)==(Q|0)){R=G;N=J;while(1){L=c[R>>2]|0;c[R>>2]=c[N>>2];c[N>>2]=L;R=R+4|0;if((R|0)==(J|0))break g;else N=N+4|0}}else{T=P;U=Q}while(1){N=(T|0)%(U|0)|0;if(!N){V=U;break}else{R=U;U=N;T=R}}if(V){Q=P+-1|0;R=P+e|0;N=K+(V+e<<2)|0;do{L=N;N=N+-4|0;M=c[N>>2]|0;C=N;O=L+(Q<<2)|0;while(1){c[C>>2]=c[O>>2];L=S-O>>2;I=(P|0)<(L|0)?O+(P<<2)|0:K+(R-L<<2)|0;if((I|0)==(N|0)){W=O;break}else{L=O;O=I;C=L}}c[W>>2]=M}while((N|0)!=(G|0))}}else{N=c[G>>2]|0;R=H-J|0;Cp(G| +0,J|0,R|0)|0;c[K+((R>>2)+e<<2)>>2]=N}while(0);h:do if(a[b+21>>0]|0){K=c[b+112>>2]|0;J=K+(e<<3)|0;G=K+(f<<3)|0;H=K+(g<<3)|0;if((e+1|0)==(f|0)){W=J;V=c[W>>2]|0;T=c[W+4>>2]|0;W=H-G|0;Cp(J|0,G|0,W|0)|0;U=K+((W>>3)+e<<3)|0;c[U>>2]=V;c[U+4>>2]=T;break}if((f+1|0)==(g|0)){T=K+(g+-1<<3)|0;U=T;V=c[U>>2]|0;W=c[U+4>>2]|0;U=T-J|0;Cp(K+(g-(U>>3)<<3)|0,J|0,U|0)|0;U=J;c[U>>2]=V;c[U+4>>2]=W;break}W=G;U=W-J>>3;V=H;H=V-W>>3;if((U|0)==(H|0)){W=J;T=G;while(1){N=W;R=c[N>>2]|0;P=c[N+4>>2]|0;N=T;S=c[N+4>>2]|0;Q=W;c[Q>>2]= +c[N>>2];c[Q+4>>2]=S;S=T;c[S>>2]=R;c[S+4>>2]=P;W=W+8|0;if((W|0)==(G|0))break h;else T=T+8|0}}else{X=U;Y=H}while(1){T=(X|0)%(Y|0)|0;if(!T){Z=Y;break}else{G=Y;Y=T;X=G}}if(Z){H=U+-1|0;G=U+e|0;T=K+(Z+e<<3)|0;do{W=T;T=T+-8|0;P=T;S=c[P>>2]|0;R=c[P+4>>2]|0;P=T;Q=W+(H<<3)|0;while(1){W=Q;N=c[W+4>>2]|0;C=P;c[C>>2]=c[W>>2];c[C+4>>2]=N;N=V-Q>>3;C=(U|0)<(N|0)?Q+(U<<3)|0:K+(G-N<<3)|0;if((C|0)==(T|0)){_=Q;break}else{N=Q;Q=C;P=N}}P=_;c[P>>2]=S;c[P+4>>2]=R}while((T|0)!=(J|0))}}while(0);_=c[b+120>>2]|0;i:do if(_){Z= +_+(e<<2)|0;X=_+(f<<2)|0;Y=_+(g<<2)|0;if((e+1|0)==(f|0)){J=c[Z>>2]|0;T=Y-X|0;Cp(Z|0,X|0,T|0)|0;c[_+((T>>2)+e<<2)>>2]=J;break}if((f+1|0)==(g|0)){J=_+(g+-1<<2)|0;T=c[J>>2]|0;G=J-Z|0;Cp(_+(g-(G>>2)<<2)|0,Z|0,G|0)|0;c[Z>>2]=T;break}T=X;G=T-Z>>2;J=Y;Y=J-T>>2;if((G|0)==(Y|0)){T=Z;K=X;while(1){U=c[T>>2]|0;c[T>>2]=c[K>>2];c[K>>2]=U;T=T+4|0;if((T|0)==(X|0))break i;else K=K+4|0}}else{$=G;aa=Y}while(1){K=($|0)%(aa|0)|0;if(!K){ba=aa;break}else{X=aa;aa=K;$=X}}if(ba){Y=G+-1|0;X=G+e|0;K=_+(ba+e<<2)|0;do{T=K;K=K+ +-4|0;U=c[K>>2]|0;V=K;H=T+(Y<<2)|0;while(1){c[V>>2]=c[H>>2];T=J-H>>2;P=(G|0)<(T|0)?H+(G<<2)|0:_+(X-T<<2)|0;if((P|0)==(K|0)){ca=H;break}else{T=H;H=P;V=T}}c[ca>>2]=U}while((K|0)!=(Z|0))}}while(0);ca=c[b+132>>2]|0;j:do if(ca){_=ca+(e<<2)|0;ba=ca+(f<<2)|0;$=ca+(g<<2)|0;if((e+1|0)==(f|0)){aa=c[_>>2]|0;Z=$-ba|0;Cp(_|0,ba|0,Z|0)|0;c[ca+((Z>>2)+e<<2)>>2]=aa;break}if((f+1|0)==(g|0)){aa=ca+(g+-1<<2)|0;Z=c[aa>>2]|0;K=aa-_|0;Cp(ca+(g-(K>>2)<<2)|0,_|0,K|0)|0;c[_>>2]=Z;break}Z=ba;K=Z-_>>2;aa=$;$=aa-Z>>2;if((K|0)== +($|0)){Z=_;X=ba;while(1){G=c[Z>>2]|0;c[Z>>2]=c[X>>2];c[X>>2]=G;Z=Z+4|0;if((Z|0)==(ba|0))break j;else X=X+4|0}}else{da=K;ea=$}while(1){X=(da|0)%(ea|0)|0;if(!X){fa=ea;break}else{ba=ea;ea=X;da=ba}}if(fa){$=K+-1|0;ba=K+e|0;X=ca+(fa+e<<2)|0;do{Z=X;X=X+-4|0;G=c[X>>2]|0;J=X;Y=Z+($<<2)|0;while(1){c[J>>2]=c[Y>>2];Z=aa-Y>>2;V=(K|0)<(Z|0)?Y+(K<<2)|0:ca+(ba-Z<<2)|0;if((V|0)==(X|0)){ga=Y;break}else{Z=Y;Y=V;J=Z}}c[ga>>2]=G}while((X|0)!=(_|0))}}while(0);ga=c[b+136>>2]|0;k:do if(ga){ca=ga+(f<<2)|0;fa=ga+(g<<2)|0; +da=g<<2;ea=f<<2;_=ga+(e<<2)|0;X=ca;ba=ca;while(1){ca=d[_>>0]|d[_+1>>0]<<8|d[_+2>>0]<<16|d[_+3>>0]<<24;K=ba+1|0;aa=a[K>>0]|0;$=ba+2|0;J=a[$>>0]|0;Y=ba+3|0;U=a[Y>>0]|0;a[_>>0]=a[ba>>0]|0;a[_+1>>0]=aa;a[_+2>>0]=J;a[_+3>>0]=U;a[ba>>0]=ca;a[K>>0]=ca>>>8;a[$>>0]=ca>>>16;a[Y>>0]=ca>>>24;ca=_+4|0;Y=ba+4|0;ha=(ca|0)==(X|0);if((Y|0)==(fa|0))break;_=ca;X=ha?Y:X;ba=Y}if(!ha){ba=ga+(e+1+((da+-4-ea|0)>>>2)<<2)|0;_=X;Y=X;while(1){ca=ba;$=Y;while(1){K=d[ca>>0]|d[ca+1>>0]<<8|d[ca+2>>0]<<16|d[ca+3>>0]<<24;U=$+1|0; +J=a[U>>0]|0;aa=$+2|0;Z=a[aa>>0]|0;V=$+3|0;H=a[V>>0]|0;a[ca>>0]=a[$>>0]|0;a[ca+1>>0]=J;a[ca+2>>0]=Z;a[ca+3>>0]=H;a[$>>0]=K;a[U>>0]=K>>>8;a[aa>>0]=K>>>16;a[V>>0]=K>>>24;ca=ca+4|0;K=$+4|0;V=(ca|0)==(_|0);if((K|0)!=(fa|0)){ia=ca;ja=K;ka=V;break}if(V)break k;else $=_}ba=ia;_=ka?ja:_;Y=ja}}}while(0);ja=c[b+148>>2]|0;l:do if(ja){ka=ja+(e<<2)|0;ia=ja+(f<<2)|0;ga=ja+(g<<2)|0;if((e+1|0)==(f|0)){ha=c[ka>>2]|0;Y=ga-ia|0;Cp(ka|0,ia|0,Y|0)|0;c[ja+((Y>>2)+e<<2)>>2]=ha;break}if((f+1|0)==(g|0)){ha=ja+(g+-1<<2)|0; +Y=c[ha>>2]|0;_=ha-ka|0;Cp(ja+(g-(_>>2)<<2)|0,ka|0,_|0)|0;c[ka>>2]=Y;break}Y=ia;_=Y-ka>>2;ha=ga;ga=ha-Y>>2;if((_|0)==(ga|0)){Y=ka;ba=ia;while(1){fa=c[Y>>2]|0;c[Y>>2]=c[ba>>2];c[ba>>2]=fa;Y=Y+4|0;if((Y|0)==(ia|0))break l;else ba=ba+4|0}}else{la=_;ma=ga}while(1){ba=(la|0)%(ma|0)|0;if(!ba){na=ma;break}else{ia=ma;ma=ba;la=ia}}if(na){ga=_+-1|0;ia=_+e|0;ba=ja+(na+e<<2)|0;do{Y=ba;ba=ba+-4|0;fa=c[ba>>2]|0;X=ba;ea=Y+(ga<<2)|0;while(1){c[X>>2]=c[ea>>2];Y=ha-ea>>2;da=(_|0)<(Y|0)?ea+(_<<2)|0:ja+(ia-Y<<2)|0;if((da| +0)==(ba|0)){oa=ea;break}else{Y=ea;ea=da;X=Y}}c[oa>>2]=fa}while((ba|0)!=(ka|0))}}while(0);oa=b+80|0;ja=c[oa>>2]|0;if(ja){na=ja+(e<<2)|0;la=ja+(f<<2)|0;ma=ja+(g<<2)|0;m:do if((e+1|0)!=(f|0)){if((f+1|0)==(g|0)){ka=ja+(g+-1<<2)|0;ba=c[ka>>2]|0;ia=ka-na|0;Cp(ja+(g-(ia>>2)<<2)|0,na|0,ia|0)|0;c[na>>2]=ba;break}ba=la;ia=ba-na>>2;ka=ma;_=ka-ba>>2;if((ia|0)==(_|0)){ba=na;ha=la;while(1){ga=c[ba>>2]|0;c[ba>>2]=c[ha>>2];c[ha>>2]=ga;ba=ba+4|0;if((ba|0)==(la|0))break m;else ha=ha+4|0}}else{pa=ia;qa=_}while(1){ha= +(pa|0)%(qa|0)|0;if(!ha){ra=qa;break}else{ba=qa;qa=ha;pa=ba}}if(ra){_=ia+-1|0;ba=ia+e|0;ha=ja+(ra+e<<2)|0;do{ga=ha;ha=ha+-4|0;X=c[ha>>2]|0;ea=ha;Y=ga+(_<<2)|0;while(1){c[ea>>2]=c[Y>>2];ga=ka-Y>>2;da=(ia|0)<(ga|0)?Y+(ia<<2)|0:ja+(ba-ga<<2)|0;if((da|0)==(ha|0)){sa=Y;break}else{ga=Y;Y=da;ea=ga}}c[sa>>2]=X}while((ha|0)!=(na|0))}}else{ha=c[na>>2]|0;ba=ma-la|0;Cp(na|0,la|0,ba|0)|0;c[ja+((ba>>2)+e<<2)>>2]=ha}while(0);if((e|0)<(g|0)){ja=c[oa>>2]|0;oa=g-f|0;la=e-f|0;na=e;do{ma=c[ja+(na<<2)>>2]|0;if(ma){sa= +ma+8|0;ma=c[sa>>2]|0;do if((ma|0)>=(e|0))if((ma|0)<(f|0)){ta=oa+ma|0;break}else{ta=ma+((ma|0)<(g|0)?la:0)|0;break}else ta=ma;while(0);c[sa>>2]=ta}na=na+1|0}while((na|0)!=(g|0))}}na=c[b+280>>2]|0;if(na){ta=na+(e<<2)|0;la=na+(f<<2)|0;oa=na+(g<<2)|0;n:do if((e+1|0)==(f|0)){ja=c[ta>>2]|0;ma=oa-la|0;Cp(ta|0,la|0,ma|0)|0;c[na+((ma>>2)+e<<2)>>2]=ja}else{if((f+1|0)==(g|0)){ja=na+(g+-1<<2)|0;ma=c[ja>>2]|0;ra=ja-ta|0;Cp(na+(g-(ra>>2)<<2)|0,ta|0,ra|0)|0;c[ta>>2]=ma;break}ma=la;ra=ma-ta>>2;ja=oa;pa=ja-ma>>2; +if((ra|0)==(pa|0)){ma=ta;qa=la;while(1){ha=c[ma>>2]|0;c[ma>>2]=c[qa>>2];c[qa>>2]=ha;ma=ma+4|0;if((ma|0)==(la|0))break n;else qa=qa+4|0}}else{ua=ra;va=pa}while(1){qa=(ua|0)%(va|0)|0;if(!qa){wa=va;break}else{ma=va;va=qa;ua=ma}}if(!wa)break;pa=ra+-1|0;ma=ra+e|0;qa=na+(wa+e<<2)|0;do{sa=qa;qa=qa+-4|0;ha=c[qa>>2]|0;ba=qa;ia=sa+(pa<<2)|0;while(1){c[ba>>2]=c[ia>>2];sa=ja-ia>>2;ka=(ra|0)<(sa|0)?ia+(ra<<2)|0:na+(ma-sa<<2)|0;if((ka|0)==(qa|0)){xa=ia;break}else{sa=ia;ia=ka;ba=sa}}c[xa>>2]=ha}while((qa|0)!=(ta| +0))}while(0);ta=c[b+44>>2]|0;xa=c[b+288>>2]|0;if((ta|0)>0){na=g-f|0;wa=e-f|0;ua=0;do{va=xa+(ua<<2)|0;la=c[va>>2]|0;do if((la|0)>=(e|0))if((la|0)<(f|0)){ya=na+la|0;break}else{ya=la+((la|0)<(g|0)?wa:0)|0;break}else ya=la;while(0);c[va>>2]=ya;ua=ua+1|0}while((ua|0)!=(ta|0))}}ta=c[b+204>>2]|0;if((ta|0)>0){ua=c[b+200>>2]|0;ya=g-f|0;wa=e-f|0;na=0;do{xa=ua+(na<<3)|0;la=c[xa>>2]|0;do if((la|0)>=(e|0))if((la|0)<(f|0)){za=ya+la|0;break}else{za=la+((la|0)<(g|0)?wa:0)|0;break}else za=la;while(0);c[xa>>2]=za; +na=na+1|0}while((na|0)<(ta|0))}ta=c[b+220>>2]|0;if((ta|0)>0){na=c[b+216>>2]|0;za=g-f|0;wa=e-f|0;ya=0;do{ua=na+(ya*24|0)|0;la=c[ua>>2]|0;do if((la|0)>=(e|0))if((la|0)<(f|0)){Aa=za+la|0;break}else{Aa=la+((la|0)<(g|0)?wa:0)|0;break}else Aa=la;while(0);la=na+(ya*24|0)+4|0;xa=c[la>>2]|0;do if((xa|0)>=(e|0))if((xa|0)<(f|0)){Ba=za+xa|0;break}else{Ba=xa+((xa|0)<(g|0)?wa:0)|0;break}else Ba=xa;while(0);c[ua>>2]=Aa;c[la>>2]=Ba;ya=ya+1|0}while((ya|0)<(ta|0))}ta=c[b+236>>2]|0;if((ta|0)>0){ya=c[b+232>>2]|0;Ba= +g-f|0;Aa=e-f|0;wa=0;do{za=ya+(wa*28|0)|0;na=c[za>>2]|0;do if((na|0)>=(e|0))if((na|0)<(f|0)){Ca=Ba+na|0;break}else{Ca=na+((na|0)<(g|0)?Aa:0)|0;break}else Ca=na;while(0);c[za>>2]=Ca;wa=wa+1|0}while((wa|0)<(ta|0))}ta=c[b+252>>2]|0;if((ta|0)>0){wa=c[b+248>>2]|0;Ca=g-f|0;Aa=e-f|0;Ba=0;do{ya=wa+(Ba*20|0)|0;na=c[ya>>2]|0;do if((na|0)>=(e|0))if((na|0)<(f|0)){Da=Ca+na|0;break}else{Da=na+((na|0)<(g|0)?Aa:0)|0;break}else Da=na;while(0);c[ya>>2]=Da;na=wa+(Ba*20|0)+4|0;za=c[na>>2]|0;do if((za|0)>=(e|0))if((za| +0)<(f|0)){Ea=Ca+za|0;break}else{Ea=za+((za|0)<(g|0)?Aa:0)|0;break}else Ea=za;while(0);c[na>>2]=Ea;Ba=Ba+1|0}while((Ba|0)<(ta|0))}ta=c[b+268>>2]|0;if((ta|0)>0){Ba=c[b+264>>2]|0;Ea=g-f|0;Aa=e-f|0;Ca=0;do{wa=Ba+(Ca*60|0)|0;Da=c[wa>>2]|0;do if((Da|0)>=(e|0))if((Da|0)<(f|0)){Fa=Ea+Da|0;break}else{Fa=Da+((Da|0)<(g|0)?Aa:0)|0;break}else Fa=Da;while(0);c[wa>>2]=Fa;Da=Ba+(Ca*60|0)+4|0;na=c[Da>>2]|0;do if((na|0)>=(e|0))if((na|0)<(f|0)){Ga=Ea+na|0;break}else{Ga=na+((na|0)<(g|0)?Aa:0)|0;break}else Ga=na;while(0); +c[Da>>2]=Ga;na=Ba+(Ca*60|0)+8|0;wa=c[na>>2]|0;do if((wa|0)>=(e|0))if((wa|0)<(f|0)){Ha=Ea+wa|0;break}else{Ha=wa+((wa|0)<(g|0)?Aa:0)|0;break}else Ha=wa;while(0);c[na>>2]=Ha;Ca=Ca+1|0}while((Ca|0)<(ta|0))}ta=c[b+312>>2]|0;if(!ta)return;b=e-f|0;Ca=g-f|0;Ha=ta;do{ta=Ha+4|0;Aa=c[ta>>2]|0;do if((Aa|0)>=(e|0))if((Aa|0)<(f|0)){Ia=Ca+Aa|0;break}else{Ia=Aa+((Aa|0)<(g|0)?b:0)|0;break}else Ia=Aa;while(0);c[ta>>2]=Ia;Aa=Ha+8|0;na=c[Aa>>2]|0;Ea=na+-1|0;do if((na|0)>(e|0))if((na|0)>(f|0)){Ja=Ea+((na|0)>(g|0)?0:b)| +0;break}else{Ja=Ca+Ea|0;break}else Ja=Ea;while(0);c[Aa>>2]=Ja+1;Ha=c[Ha+24>>2]|0}while((Ha|0)!=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;f=(c[b+88>>2]|0)+(d<<2)|0;if(c[f>>2]&~e)a[b+12>>0]=1;d=b+8|0;if(!(~c[d>>2]&e)){c[f>>2]=e;return}if(e&128){g=b+128|0;h=c[g>>2]|0;if(!h){i=b+48|0;j=c[i>>2]|0;if(!j){Ul(b,256);k=c[i>>2]|0}else k=j;j=Sn(c[b+400>>2]|0,k<<3)|0;xp(j|0,0,c[i>>2]<<3|0)|0;l=j}else l=h;c[g>>2]=l}if(e&256){l=b+136|0;g=c[l>>2]|0;if(!g){h=b+48|0;j= +c[h>>2]|0;if(!j){Ul(b,256);m=c[h>>2]|0}else m=j;j=Sn(c[b+400>>2]|0,m<<2)|0;xp(j|0,0,c[h>>2]<<2|0)|0;n=j}else n=g;c[l>>2]=n}c[d>>2]=c[d>>2]|e;c[f>>2]=e;return}function _l(a,b,d){a=a|0;b=b|0;d=d|0;Zl(a,b,c[(c[a+88>>2]|0)+(b<<2)>>2]|(d?514:2));return}function $l(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0;g=i;i=i+64|0;h=g+16|0;j=g;k=b+400|0;if(c[(c[k>>2]|0)+102876>>2]&2){l=0;i=g;return l|0}c[h>>2]=2152;m=h+12|0;c[h+4>>2]=b;c[h+8>>2]=d;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];a[h+28>>0]=f&1;f=h+32|0;c[f>>2]=0;tb[c[(c[d>>2]|0)+28>>2]&31](d,j,e,0);$k(c[k>>2]|0,h,j);l=c[f>>2]|0;i=g;return l|0}function am(d,e,f,h){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,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;j=i;i=i+96|0;k=j+48|0;l=j;m=+g[f+52>>2];if(m==0)n=+g[d+ +32>>2]*.75;else n=m;o=fb[c[(c[e>>2]|0)+12>>2]&7](e)|0;if((o|0)<=0){i=j;return}p=l+4|0;q=l+8|0;r=l+28|0;s=e+4|0;t=l+12|0;u=e+12|0;v=l+20|0;w=l+12|0;x=l+24|0;y=l+16|0;z=k+4|0;A=k+12|0;B=k+20|0;C=k+21|0;D=k+22|0;E=k+23|0;F=k+24|0;G=k+28|0;H=k+32|0;I=h+12|0;J=h+8|0;K=h+4|0;L=k+8|0;M=f+28|0;N=f+8|0;P=f+12|0;Q=f+20|0;R=f+24|0;S=k+16|0;T=f+32|0;U=f+33|0;V=f+34|0;W=f+35|0;X=f+64|0;Y=f+68|0;Z=0;m=0;while(1){c[l>>2]=916;c[p>>2]=1;g[q>>2]=.009999999776482582;c[r>>2]=0;c[r+4>>2]=0;c[r+8>>2]=0;c[r+12>>2]=0;b[r+ +16>>1]=0;if((c[s>>2]|0)==1){_=s;$=c[_+4>>2]|0;aa=p;c[aa>>2]=c[_>>2];c[aa+4>>2]=$;c[t>>2]=c[u>>2];c[t+4>>2]=c[u+4>>2];c[t+8>>2]=c[u+8>>2];c[t+12>>2]=c[u+12>>2];c[t+16>>2]=c[u+16>>2];c[t+20>>2]=c[u+20>>2];c[t+24>>2]=c[u+24>>2];c[t+28>>2]=c[u+28>>2];b[t+32>>1]=b[u+32>>1]|0}else Vf(e,l,Z);ba=+g[w>>2];ca=+g[v>>2]-ba;da=+g[y>>2];ea=+g[x>>2]-da;fa=+O(+(ca*ca+ea*ea));a:do if(m>2]|0;_=c[$+4>>2]|0;$=z;c[$>>2]=aa;c[$+4>>2]=_;$=A;c[$>> +2]=aa;c[$+4>>2]=_;c[H>>2]=0;c[k>>2]=c[f>>2];ja=+g[I>>2];ma=+g[J>>2];na=+g[h>>2]+(ka*ja-la*ma);oa=la*ja+ka*ma+ +g[K>>2];g[z>>2]=na;g[L>>2]=oa;ma=+g[M>>2];ka=ma*(na-+g[N>>2])+ +g[R>>2];g[A>>2]=+g[Q>>2]-ma*(oa-+g[P>>2]);g[S>>2]=ka;_=a[U>>0]|0;$=a[V>>0]|0;aa=a[W>>0]|0;a[B>>0]=a[T>>0]|0;a[C>>0]=_;a[D>>0]=$;a[E>>0]=aa;c[F>>2]=c[X>>2];c[G>>2]=c[Y>>2];Vl(d,k)|0;ka=n+ia;if(!(ka>2];ha=+g[y>>2];ia=ka}}else pa=m;while(0);Z=Z+1|0;if((Z|0)==(o|0))break;else m=pa-fa}i=j;return}function bm(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,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=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;h=i;i=i+80|0;j=h+40|0;k=h+24|0;l=h+8|0;m=h;n=+g[e+52>>2];if(n==0)o=+g[b+32>>2]*.75;else o=n;g[k>>2]=0;g[k+4>>2]=0;g[k+8>>2]=0;g[k+12>>2]=1;tb[c[(c[d>>2]|0)+28>>2]&31](d,l,k,0);n=o*+M(+(+g[l+4>>2]/o));p=l+12|0;q=+g[p>>2];if(!(n>2];U=n;while(1){n=o*+M(+(+g[l>>2]/o));if(n>2]=V;g[s>>2]=U;if(lb[c[(c[d>>2]|0)+16>>2]&15](d,k,m)|0){W=2440;X=c[W>>2]|0;Y=c[W+4>>2]|0;W=t;c[W>>2]=X;c[W+4>>2]=Y;W=u;c[W>>2]=X;c[W+4>>2]=Y;c[B>>2]=0;c[j>>2]=c[e>>2];n=+g[C>>2];Z=+g[m>>2];_=+g[D>>2];$=+g[s>>2];aa=+g[f>> +2]+(n*Z-_*$);ba=Z*_+n*$+ +g[E>>2];g[t>>2]=aa;g[F>>2]=ba;$=+g[G>>2];n=$*(aa-+g[H>>2])+ +g[K>>2];g[u>>2]=+g[J>>2]-$*(ba-+g[I>>2]);g[L>>2]=n;Y=a[O>>0]|0;W=a[P>>0]|0;X=a[Q>>0]|0;a[v>>0]=a[N>>0]|0;a[w>>0]=Y;a[x>>0]=W;a[y>>0]=X;c[z>>2]=c[R>>2];c[A>>2]=c[S>>2];Vl(b,j)|0}V=o+V;n=+g[r>>2]}while(V>2];ea=ca}else{da=T;ea=q}U=o+U;if(!(U>2]|0)+102876>>2]&2){m=0;i=e;return m|0}n=+g[d+16>>2];o=d+8|0;p=c[o>>2]|0;q=c[o+4>>2]|0;o=h;c[o>>2]=p;c[o+4>>2]=q;r=+R(+n);g[h+8>>2]=r;s=+Q(+n);g[h+12>>2]=s;o=b+44|0;t=c[o>>2]|0;u=c[d+40>>2]|0;n=(c[k>>2]=p,+g[k>>2]);v=(c[k>>2]=q,+g[k>>2]);a:do if(u)switch(c[u+4>>2]|0){case 3:case 1:{am(b,u,d,h);break a;break}case 0:case 2:{bm(b,u,d,h);break a; +break}default:break a}while(0);u=c[d+44>>2]|0;if(u){q=c[d+48>>2]|0;c[f>>2]=2180;c[f+12>>2]=u;c[f+16>>2]=q;bm(b,f,d,h)}q=d+56|0;if((c[q>>2]|0)>0){u=d+60|0;p=f+4|0;w=f+12|0;x=f+20|0;y=f+21|0;z=f+22|0;A=f+23|0;B=f+24|0;C=f+28|0;D=f+32|0;E=f+8|0;F=d+28|0;G=d+8|0;H=d+12|0;I=d+20|0;J=d+24|0;K=f+16|0;L=d+32|0;M=d+33|0;N=d+34|0;O=d+35|0;P=d+64|0;S=d+68|0;T=0;do{U=c[u>>2]|0;V=+g[U+(T<<3)>>2];W=+g[U+(T<<3)+4>>2];U=2440;X=c[U>>2]|0;Y=c[U+4>>2]|0;U=p;c[U>>2]=X;c[U+4>>2]=Y;U=w;c[U>>2]=X;c[U+4>>2]=Y;c[D>>2]=0; +c[f>>2]=c[d>>2];Z=n+(V*s-W*r);_=W*s+V*r+v;g[p>>2]=Z;g[E>>2]=_;V=+g[F>>2];W=V*(Z-+g[G>>2])+ +g[J>>2];g[w>>2]=+g[I>>2]-V*(_-+g[H>>2]);g[K>>2]=W;Y=a[M>>0]|0;U=a[N>>0]|0;X=a[O>>0]|0;a[x>>0]=a[L>>0]|0;a[y>>0]=Y;a[z>>0]=U;a[A>>0]=X;c[B>>2]=c[P>>2];c[C>>2]=c[S>>2];Vl(b,f)|0;T=T+1|0}while((T|0)<(c[q>>2]|0))}q=c[o>>2]|0;o=Sn(c[l>>2]|0,80)|0;Ll(o);c[o>>2]=b;c[o+4>>2]=t;c[o+8>>2]=q;c[o+16>>2]=c[d+36>>2];c[o+76>>2]=c[d+68>>2];T=o+60|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];c[o+20>>2]=0;h=b+312|0;T=c[h>>2]|0;c[o+24>>2]=T;if(T)c[T+20>>2]=o;c[h>>2]=o;h=b+308|0;c[h>>2]=(c[h>>2]|0)+1;if((t|0)<(q|0)){h=b+144|0;T=t;do{c[(c[h>>2]|0)+(T<<2)>>2]=o;T=T+1|0}while((T|0)!=(q|0))}T=c[d+4>>2]|0;h=o+12|0;f=c[h>>2]|0;S=(f^T)<<4&16|T;if(f&~S)a[b+20>>0]=1;f=b+16|0;C=c[f>>2]|0;if(S&~C){if(!(T&1))$=C;else{T=b+132|0;P=c[T>>2]|0;if(!P){B=b+48|0;A=c[B>>2]|0;if(!A){Ul(b,256);aa=c[B>>2]|0}else aa=A;A=Sn(c[l>>2]|0,aa<<2)|0;xp(A|0,0,c[B>>2]<<2|0)|0;ba=A;ca=c[f>>2]|0}else{ba=P;ca=C}c[T>>2]=ba; +$=ca}c[f>>2]=$|S}c[h>>2]=S;c[j>>2]=2224;dm(b,1);em(b,t,q,j);j=d+72|0;d=c[j>>2]|0;if(!d){m=o;i=e;return m|0}fm(b,d,o);m=c[j>>2]|0;i=e;return m|0}function dm(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;d=i;i=i+32|0;e=d;f=d+8|0;h=c[a+204>>2]|0;j=c[a+200>>2]|0;k=j+(h<<3)|0;if((h|0)>0){h=c[a+96>>2]|0;l=+g[a+36>>2];m=j;do{n=c[m>>2]|0;c[m+4>>2]=(~~(l*+g[h+(n<<3)+4>>2]+2048)>>>0<<20)+(~~(l*+g[h+(n<<3)>>2]*256+524288)>>>0);m=m+8|0}while(m>>> +0>>0)}Lm(j,k,e);e=a+400|0;k=c[e>>2]|0;c[f>>2]=0;c[f+4>>2]=0;j=f+8|0;c[j>>2]=0;m=f+12|0;c[m>>2]=k+76;h=a+8|0;if((c[h>>2]&32768|0)!=0?(c[k+102952>>2]|0)!=0:0)km(f,c[a+216>>2]|0,c[a+220>>2]|0,c[a+88>>2]|0);k=a+216|0;jm(a,k);if((c[h>>2]&131072|0)!=0?(h=c[(c[e>>2]|0)+102948>>2]|0,(h|0)!=0):0){e=c[k>>2]|0;n=a+220|0;o=c[n>>2]|0;p=e+(o*24|0)|0;a:do if(!o){q=e;r=14}else{s=e;while(1){if((c[s+20>>2]&131072|0)!=0?!(pb[c[(c[h>>2]|0)+16>>2]&7](h,a,c[s>>2]|0,c[s+4>>2]|0)|0):0){q=s;r=14;break a}s=s+24|0;if((s| +0)==(p|0)){t=p;break}}}while(0);b:do if((r|0)==14)if((q|0)==(p|0))t=p;else{e=q;o=q;while(1){s=o;while(1){u=s+24|0;if((u|0)==(p|0)){t=e;break b}if(!(c[s+44>>2]&131072)){v=u;break}if(pb[c[(c[h>>2]|0)+16>>2]&7](h,a,c[u>>2]|0,c[s+28>>2]|0)|0){v=u;break}else s=u}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];c[e+16>>2]=c[v+16>>2];c[e+20>>2]=c[v+20>>2];e=e+24|0;o=v}}while(0);c[n>>2]=(t-(c[k>>2]|0)|0)/24|0}lm(a,f);if(b){b=c[k>>2]|0;t=a+220|0;a=c[t>>2]|0;n=b+(a*24|0)|0;c:do if(!a){w= +b;r=26}else{v=b;while(1){if(c[v+20>>2]&2){w=v;r=26;break c}v=v+24|0;if((v|0)==(n|0)){x=n;y=b;break}}}while(0);if((r|0)==26)if((w|0)==(n|0)){x=n;y=b}else{b=w;r=w;d:while(1){w=r;while(1){a=w+24|0;if((a|0)==(n|0)){z=b;break d}if(!(c[w+44>>2]&2)){A=a;break}else w=a}c[b>>2]=c[A>>2];c[b+4>>2]=c[A+4>>2];c[b+8>>2]=c[A+8>>2];c[b+12>>2]=c[A+12>>2];c[b+16>>2]=c[A+16>>2];c[b+20>>2]=c[A+20>>2];b=b+24|0;r=A}x=z;y=c[k>>2]|0}c[t>>2]=(x-y|0)/24|0}y=c[f>>2]|0;if(!y){i=d;return}no(c[m>>2]|0,y);c[f>>2]=0;c[j>>2]=0;i= +d;return}function em(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,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,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;f=i;i=i+48|0;h=f+40|0;j=f+12|0;k=f;l=(d|0)>(b|0);if(!l){i=f;return}m=c[a+88>>2]|0;n=b;o=0;while(1){p=c[m+(n<<2)>>2]|o;n=n+1|0;if((n|0)==(d|0)){q=p;break}else o=p}if(q&1032){o=a+220|0;if((c[o>>2]|0)>0){n= +a+216|0;m=a+88|0;p=a+144|0;r=a+248|0;s=a+252|0;t=a+256|0;u=a+96|0;v=a+260|0;w=0;do{x=c[n>>2]|0;y=c[x+(w*24|0)>>2]|0;z=c[x+(w*24|0)+4>>2]|0;A=c[m>>2]|0;B=c[A+(y<<2)>>2]|0;C=c[A+(z<<2)>>2]|0;A=c[p>>2]|0;D=c[A+(y<<2)>>2]|0;E=c[A+(z<<2)>>2]|0;do if((z|0)<(d|0)&(((y|0)>=(d|0)|(y|0)<(b|0)|(z|0)<(b|0))^1)?(A=C|B,!((A&2|0)!=0|(A&1032|0)==0)):0){if(!(rb[c[(c[e>>2]|0)+8>>2]&31](e,y)|0)?!(rb[c[(c[e>>2]|0)+8>>2]&31](e,z)|0):0)break;if(!(B&28)){if(!D)break;if(!(c[D+12>>2]&2))break}if(!(C&28)){if(!E)break;if(!(c[E+ +12>>2]&2))break}if(lb[c[(c[e>>2]|0)+12>>2]&15](e,y,z)|0){A=c[s>>2]|0;F=c[t>>2]|0;if((A|0)>=(F|0)?(G=(F|0)==0?256:F<<1,(F|0)<(G|0)):0){F=Sn(c[v>>2]|0,G*20|0)|0;H=c[r>>2]|0;if(H){Bp(F|0,H|0,(c[s>>2]|0)*20|0)|0;Tn(c[v>>2]|0,c[r>>2]|0,(c[t>>2]|0)*20|0)}c[t>>2]=G;c[r>>2]=F;I=c[s>>2]|0}else I=A;c[s>>2]=I+1;A=c[r>>2]|0;c[A+(I*20|0)>>2]=y;c[A+(I*20|0)+4>>2]=z;c[A+(I*20|0)+8>>2]=c[x+(w*24|0)+20>>2];if(!D)J=1;else J=+g[D+16>>2];if(!E)K=1;else K=+g[E+16>>2];g[A+(I*20|0)+12>>2]=J>2]|0;L=+g[F+(y<< +3)>>2]-+g[F+(z<<3)>>2];M=+g[F+(y<<3)+4>>2]-+g[F+(z<<3)+4>>2];g[A+(I*20|0)+16>>2]=+O(+(L*L+M*M))}}while(0);w=w+1|0}while((w|0)<(c[o>>2]|0));N=s}else N=a+252|0;s=a+248|0;o=c[s>>2]|0;w=c[N>>2]|0;I=o+(w*20|0)|0;c[h>>2]=27;u=w*20|0;w=(u|0)/20|0;if((u|0)>2560){u=w;while(1){r=ro(u*20|0,6948)|0;if(r){P=u;Q=r;R=32;break}if((u|0)>1)u=(u|0)/2|0;else{S=0;T=0;break}}if((R|0)==32){S=Q;T=P}U=S;V=T;W=S}else{U=0;V=0;W=0}Mm(o,I,h,w,U,V);if(W)so(W);W=c[s>>2]|0;V=c[N>>2]|0;U=W+(V*20|0)|0;a:do switch(V|0){case 0:{X=W; +R=42;break}case 1:{Y=U;Z=W;break}default:{w=W;I=W+20|0;while(1){if((c[w>>2]|0)==(c[w+20>>2]|0)?(c[w+4>>2]|0)==(c[w+24>>2]|0):0){X=w;R=42;break a}o=I+20|0;if((o|0)==(U|0)){Y=U;Z=W;break}else{S=I;I=o;w=S}}}}while(0);if((R|0)==42)if((X|0)==(U|0)){Y=U;Z=W}else{W=X;V=X+20|0;b:while(1){X=W+4|0;w=V;while(1){I=w+20|0;if((I|0)==(U|0)){_=W;break b}if((c[W>>2]|0)!=(c[I>>2]|0)){$=I;break}if((c[X>>2]|0)==(c[w+24>>2]|0))w=I;else{$=I;break}}w=W+20|0;c[w>>2]=c[$>>2];c[w+4>>2]=c[$+4>>2];c[w+8>>2]=c[$+8>>2];c[w+12>> +2]=c[$+12>>2];c[w+16>>2]=c[$+16>>2];W=w;V=$}Y=_+20|0;Z=c[s>>2]|0}c[N>>2]=(Y-Z|0)/20|0}if(!(q&16)){i=f;return}Gl(j,(c[a+400>>2]|0)+76|0,d-b|0);if(l){l=a+88|0;q=a+144|0;Z=a+96|0;Y=b;do{b=c[(c[l>>2]|0)+(Y<<2)>>2]|0;do if(!(b&2)){N=c[(c[q>>2]|0)+(Y<<2)>>2]|0;if(!(b&28)){if(!N)break;if(!(c[N+12>>2]&2))break}N=c[Z>>2]|0;Il(j,N+(Y<<3)|0,Y,rb[c[(c[e>>2]|0)+8>>2]&31](e,Y)|0)}while(0);Y=Y+1|0}while((Y|0)<(d|0))}K=+g[a+32>>2]*.75;Jl(j,K*.5,K*2);c[k>>2]=2252;c[k+4>>2]=a;c[k+8>>2]=e;Kl(j,k);k=a+264|0;e=c[k>>2]| +0;d=a+268|0;a=c[d>>2]|0;Y=e+(a*60|0)|0;c[h>>2]=28;Z=a*60|0;a=(Z|0)/60|0;if((Z|0)>7680){Z=a;while(1){q=ro(Z*60|0,6948)|0;if(q){aa=Z;ba=q;R=62;break}if((Z|0)>1)Z=(Z|0)/2|0;else{ca=0;da=0;break}}if((R|0)==62){ca=ba;da=aa}ea=ca;fa=da;ga=ca}else{ea=0;fa=0;ga=0}Nm(e,Y,h,a,ea,fa);if(ga)so(ga);ga=c[k>>2]|0;fa=c[d>>2]|0;ea=ga+(fa*60|0)|0;c:do switch(fa|0){case 0:{ha=ga;R=73;break}case 1:{ia=ea;ja=ga;break}default:{a=ga;h=ga+60|0;while(1){if(((c[a>>2]|0)==(c[a+60>>2]|0)?(c[a+4>>2]|0)==(c[a+64>>2]|0):0)?(c[a+ +8>>2]|0)==(c[a+68>>2]|0):0){ha=a;R=73;break c}Y=h+60|0;if((Y|0)==(ea|0)){ia=ea;ja=ga;break}else{e=h;h=Y;a=e}}}}while(0);if((R|0)==73)if((ha|0)==(ea|0)){ia=ea;ja=ga}else{ga=ha;R=ha+60|0;d:while(1){ha=ga+4|0;fa=ga+8|0;a=R;while(1){h=a+60|0;if((h|0)==(ea|0)){ka=ga;break d}if((c[ga>>2]|0)!=(c[h>>2]|0)){la=h;break}if((c[ha>>2]|0)!=(c[a+64>>2]|0)){la=h;break}if((c[fa>>2]|0)==(c[a+68>>2]|0))a=h;else{la=h;break}}a=ga+60|0;fa=a;ha=la;h=fa+60|0;do{c[fa>>2]=c[ha>>2];fa=fa+4|0;ha=ha+4|0}while((fa|0)<(h|0));ga= +a;R=la}ia=ka+60|0;ja=c[k>>2]|0}c[d>>2]=(ia-ja|0)/60|0;Hl(j);i=f;return}function fm(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;f=i;i=i+16|0;g=f;h=b+400|0;if(c[(c[h>>2]|0)+102876>>2]&2){i=f;return}j=e+4|0;k=e+8|0;Yl(b,c[j>>2]|0,c[k>>2]|0,c[b+44>>2]|0);l=d+4|0;m=d+8|0;Yl(b,c[l>>2]|0,c[m>>2]|0,c[j>>2]|0);n=c[j>>2]|0;c[g>>2]=2272;c[g+4>>2]=n;dm(b,1);em(b,c[l>>2]|0,c[k>>2]|0,g);g=c[j>>2]|0;l=c[k>>2]|0;if((g|0)<(l|0)){n=b+144|0;o=g;do{c[(c[n>>2]|0)+(o<<2)>> +2]=d;o=o+1|0}while((o|0)<(l|0))}l=d+12|0;d=c[l>>2]|0;o=c[e+12>>2]|d;n=(o^d)<<4&16|o;if(d&~n)a[b+20>>0]=1;d=b+16|0;g=c[d>>2]|0;if(n&~g){if(!(o&1))p=g;else{o=b+132|0;q=c[o>>2]|0;if(!q){r=b+48|0;s=c[r>>2]|0;if(!s){Ul(b,256);t=c[r>>2]|0}else t=s;s=Sn(c[h>>2]|0,t<<2)|0;xp(s|0,0,c[r>>2]<<2|0)|0;u=s;v=c[d>>2]|0}else{u=q;v=g}c[o>>2]=u;p=v}c[d>>2]=p|n}c[l>>2]=n;c[m>>2]=c[k>>2];c[j>>2]=c[k>>2];Sl(b,e);i=f;return}function gm(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=c[a>>2]|0;e=c[b>>2]|0;if((d|0)==(e|0)){f=(c[a+4>> +2]|0)<(c[b+4>>2]|0);return f|0}else{f=(d|0)<(e|0);return f|0}return 0}function hm(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=c[a>>2]|0;e=c[b>>2]|0;if((d|0)!=(e|0)){f=(d|0)<(e|0);return f|0}e=c[a+4>>2]|0;d=c[b+4>>2]|0;if((e|0)==(d|0)){f=(c[a+8>>2]|0)<(c[b+8>>2]|0);return f|0}else{f=(e|0)<(d|0);return f|0}return 0}function im(b){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,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;d=b+400|0;e=b+220|0;f= +lo((c[d>>2]|0)+76|0,(c[e>>2]|0)*24|0)|0;h=c[e>>2]|0;if((h|0)>0){i=b+216|0;j=b+144|0;k=h;h=0;l=0;while(1){m=c[i>>2]|0;n=m+(l*24|0)|0;o=c[j>>2]|0;p=c[o+(c[n>>2]<<2)>>2]|0;if(((p|0)!=0?(p|0)==(c[o+(c[m+(l*24|0)+4>>2]<<2)>>2]|0):0)?(c[p+12>>2]&16|0)!=0:0){p=f+(h*24|0)|0;c[p>>2]=c[n>>2];c[p+4>>2]=c[n+4>>2];c[p+8>>2]=c[n+8>>2];c[p+12>>2]=c[n+12>>2];c[p+16>>2]=c[n+16>>2];c[p+20>>2]=c[n+20>>2];q=c[e>>2]|0;r=h+1|0}else{q=k;r=h}l=l+1|0;if((l|0)>=(q|0)){s=r;break}else{k=q;h=r}}}else s=0;r=lo((c[d>>2]|0)+76| +0,c[b+308>>2]<<2)|0;h=c[b+312>>2]|0;if(!h)t=0;else{q=b+16|0;k=b+124|0;l=b+132|0;e=b+48|0;j=b+20|0;i=h;h=0;while(1){n=i+12|0;p=c[n>>2]|0;if(p&16){m=h+1|0;c[r+(h<<2)>>2]=i;o=p&-17;if(((p|16)^-17)&p)a[j>>0]=1;u=c[q>>2]|0;if(o&~u){if(!(p&1))v=u;else{p=c[l>>2]|0;if(!p){w=c[e>>2]|0;if(!w){Ul(b,256);x=c[e>>2]|0}else x=w;w=Sn(c[d>>2]|0,x<<2)|0;xp(w|0,0,c[e>>2]<<2|0)|0;y=w;z=c[q>>2]|0}else{y=p;z=u}c[l>>2]=y;v=z}c[q>>2]=v|o}c[n>>2]=o;o=c[i+4>>2]|0;n=c[i+8>>2]|0;if((o|0)<(n|0)){u=o+1|0;xp((c[k>>2]|0)+(o<<2)| +0,0,((n|0)>(u|0)?n:u)-o<<2|0)|0;A=m}else A=m}else A=h;i=c[i+24>>2]|0;if(!i){t=A;break}else h=A}}A=(s|0)>0;if(A){h=c[b+124>>2]|0;i=0;do{k=c[f+(i*24|0)+4>>2]|0;B=+g[f+(i*24|0)+8>>2];v=h+(c[f+(i*24|0)>>2]<<2)|0;g[v>>2]=B+ +g[v>>2];v=h+(k<<2)|0;g[v>>2]=B+ +g[v>>2];i=i+1|0}while((i|0)!=(s|0))}i=(t|0)>0;if(i){h=b+124|0;v=b+132|0;k=0;do{q=c[r+(k<<2)>>2]|0;z=c[q+4>>2]|0;y=c[q+8>>2]|0;if((z|0)<(y|0)){q=c[h>>2]|0;l=c[v>>2]|0;e=z;do{g[l+(e<<2)>>2]=+g[q+(e<<2)>>2]<.800000011920929?0:3.4028234663852886E38;e=e+ +1|0}while((e|0)<(y|0))}k=k+1|0}while((k|0)!=(t|0))}k=~~+O(+ +(c[b+44>>2]|0));if(!((k|0)<1|A^1)){A=c[b+132>>2]|0;v=0;do{h=0;y=0;while(1){B=1-+g[f+(h*24|0)+8>>2];e=A+(c[f+(h*24|0)>>2]<<2)|0;q=A+(c[f+(h*24|0)+4>>2]<<2)|0;C=+g[q>>2];D=B+C;E=+g[e>>2];F=B+E;if(E>D){g[e>>2]=D;G=+g[q>>2];H=1}else{G=C;H=y}if(G>F){g[q>>2]=F;I=1}else I=H;h=h+1|0;if((h|0)==(s|0)){J=I;break}else y=I}v=v+1|0}while(J&(v|0)<(k|0))}if(!i){K=c[d>>2]|0;L=K+76|0;no(L,r);M=c[d>>2]|0;N=M+76|0;no(N,f);return}i=b+132|0;k=b+32|0;b=0;do{v= +c[r+(b<<2)>>2]|0;J=c[v+4>>2]|0;I=c[v+8>>2]|0;if((J|0)<(I|0)){v=c[i>>2]|0;s=J;do{J=v+(s<<2)|0;G=+g[J>>2];if(G<3.4028234663852886E38)P=G*+g[k>>2];else P=0;g[J>>2]=P;s=s+1|0}while((s|0)<(I|0))}b=b+1|0}while((b|0)!=(t|0));K=c[d>>2]|0;L=K+76|0;no(L,r);M=c[d>>2]|0;N=M+76|0;no(N,f);return}function jm(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;d=c[a+200>>2]|0;e=c[a+204>>2]|0;f=d+(e<<3)|0;c[b+4>>2]=0;if((e|0)>0){g=d;h=d}else return;while(1){d=g+4|0;e=(c[d>>2]|0)+256|0;i=g;g=g+8|0; +j=g>>>0>>0;a:do if(j){k=i;l=g;while(1){if(e>>>0<(c[k+12>>2]|0)>>>0)break a;Om(a,c[i>>2]|0,c[k+8>>2]|0,b);m=l+8|0;if(m>>>0>>0){n=l;l=m;k=n}else break}}while(0);e=c[d>>2]|0;k=e+1048320|0;b:do if(h>>>0>>0){l=h;while(1){if(k>>>0<=(c[l+4>>2]|0)>>>0){o=l;break b}n=l+8|0;if(n>>>0>>0)l=n;else{o=n;break}}}else o=h;while(0);k=e+1048832|0;c:do if(o>>>0>>0){d=o;do{if(k>>>0<(c[d+4>>2]|0)>>>0)break c;Om(a,c[i>>2]|0,c[d>>2]|0,b);d=d+8|0}while(d>>>0>>0)}while(0);if(!j)break;else h=o}return}function km(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;f=i;i=i+16|0;g=f;h=c[a>>2]|0;if(!h)j=h;else{no(c[a+12>>2]|0,h);c[a>>2]=0;c[a+8>>2]=0;j=0}if(!d)if(!(c[a+8>>2]|0)){i=f;return}else{k=j;l=0}else{j=lo(c[a+12>>2]|0,d*9|0)|0;c[a>>2]=j;h=j+(d<<3)|0;c[a+4>>2]=h;xp(h|0,1,d|0)|0;c[a+8>>2]=d;h=c[a>>2]|0;if((d|0)>0){j=0;m=0;while(1){n=c[b+(j*24|0)>>2]|0;if(((n|0)!=-1?(o=c[b+(j*24|0)+4>>2]|0,(o|0)!=-1):0)?((c[e+(o<<2)>>2]|c[e+(n<<2)>>2])&32768|0)!=0:0){c[h+(j<<3)>>2]=n;c[h+(j<<3)+4>> +2]=o;p=m+1|0}else p=m;j=j+1|0;if((j|0)==(d|0)){k=h;l=p;break}else m=p}}else{k=h;l=0}}c[a+8>>2]=l;c[g>>2]=29;Qm(k,k+(l<<3)|0,g);i=f;return}function lm(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=0;if(!(c[b+8>>2]&32768))return;e=c[(c[b+400>>2]|0)+102952>>2]|0;if(!e)return;f=c[b+220>>2]|0;g=c[b+216>>2]|0;h=g+(f*24|0)|0;i=d+8|0;if((f|0)>0){f=d+4|0;j=g;while(1){g=c[j>>2]|0;k=c[j+4>>2]|0;l=c[i>>2]|0;do if(!l)m=24;else{n= +c[d>>2]|0;o=n+(l<<3)|0;p=l<<3>>3;q=(p|0)==0;a:do if(q)r=n;else{s=n;t=p;while(1){u=t;while(1){v=u;u=(u|0)/2|0;if((c[s+(u<<3)>>2]|0)<(g|0)?(c[s+(u<<3)+4>>2]|0)<(k|0):0){w=u;x=v;break}if((v+1|0)>>>0<3){r=s;break a}}u=s+(w+1<<3)|0;v=x+-1|0;if((v|0)==(w|0)){r=u;break}else{s=u;t=v-w|0}}}while(0);if(!((r|0)==(o|0)|(r|0)==0)?(t=(r-n|0)>>>3,s=c[f>>2]|0,(a[s+t>>0]|0)!=0):0){y=s;z=t}else{b:do if(q)A=n;else{t=n;s=p;while(1){v=s;while(1){u=v;v=(v|0)/2|0;if((c[t+(v<<3)>>2]|0)<(k|0)?(c[t+(v<<3)+4>>2]|0)<(g|0):0){B= +v;C=u;break}if((u+1|0)>>>0<3){A=t;break b}}v=t+(B+1<<3)|0;u=C+-1|0;if((u|0)==(B|0)){A=v;break}else{t=v;s=u-B|0}}}while(0);if((A|0)==(o|0)|(A|0)==0){m=24;break}p=(A-n|0)>>>3;q=c[f>>2]|0;if(!(a[q+p>>0]|0)){m=24;break}else{y=q;z=p}}a[y+z>>0]=0}while(0);if((m|0)==24){m=0;mb[c[(c[e>>2]|0)+24>>2]&7](e,b,j)}j=j+24|0;if(j>>>0>=h>>>0){D=f;E=d;break}}}else{D=d+4|0;E=d}d=c[i>>2]|0;i=c[E>>2]|0;E=c[D>>2]|0;if((d|0)<=0)return;D=0;do{if(a[E+D>>0]|0)tb[c[(c[e>>2]|0)+28>>2]&31](e,b,c[i+(D<<3)>>2]|0,c[i+(D<<3)+4>> +2]|0);D=D+1|0}while((D|0)!=(d|0));return}function mm(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=a+156|0;if((c[d>>2]|0)<1)return;e=(c[a+176>>2]|0)+(b<<2)|0;f=(c[a+160>>2]|0)+(b<<2)|0;g=(c[a+168>>2]|0)+(b<<2)|0;h=(c[g>>2]|0)+1|0;c[g>>2]=h;if((h|0)==2?(h=c[e>>2]|0,c[e>>2]=h+1,(h|0)>=(c[d>>2]|0)):0){d=a+184|0;h=a+188|0;e=c[h>>2]|0;g=a+192|0;i=c[g>>2]|0;if((e|0)>=(i|0)?(j=(i|0)==0?256:i<<1,(i|0)<(j|0)):0){i=a+196|0;k=Sn(c[i>>2]|0,j<<2)|0;l=c[d>>2]|0;if(!l)m=d;else{Bp(k|0,l|0,c[h>> +2]<<2|0)|0;Tn(c[i>>2]|0,c[d>>2]|0,c[g>>2]<<2);m=d}c[g>>2]=j;c[m>>2]=k;n=c[h>>2]|0}else n=e;c[h>>2]=n+1;c[(c[d>>2]|0)+(n<<2)>>2]=b}c[f>>2]=c[a+4>>2];return}function nm(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;f=i;i=i+16|0;g=f;h=c[a>>2]|0;if(!h)j=h;else{no(c[a+12>>2]|0,h);c[a>>2]=0;c[a+8>>2]=0;j=0}if(!d)if(!(c[a+8>>2]|0)){i=f;return}else{k=j;l=0}else{j=lo(c[a+12>>2]|0,d*9|0)|0;c[a>>2]=j;h=j+(d<<3)|0;c[a+4>>2]=h;xp(h|0,1,d|0)|0;c[a+8>>2]=d;h=c[a>>2]|0;if((d|0)>0){j= +0;m=0;while(1){n=h+(j<<3)|0;o=c[b+(j*28|0)>>2]|0;if((o|0)!=-1?(c[e+(o<<2)>>2]&16384|0)!=0:0){c[n>>2]=c[b+(j*28|0)+8>>2];c[h+(j<<3)+4>>2]=o;p=m+1|0}else p=m;j=j+1|0;if((j|0)==(d|0)){k=h;l=p;break}else m=p}}else{k=h;l=0}}c[a+8>>2]=l;c[g>>2]=30;Sm(k,k+(l<<3)|0,g);i=f;return}function om(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;if(!(c[b+8>>2]&16384))return;e=c[(c[b+400>>2]|0)+102952>>2]|0;if(!e)return;f=b+232|0;g=b+236|0;if(!(c[g>>2]| +0)){h=d+8|0;i=d+4|0;j=d}else{k=d+8|0;l=d+4|0;m=c[f>>2]|0;while(1){n=c[m>>2]|0;o=c[m+8>>2]|0;p=c[k>>2]|0;if(p){q=c[d>>2]|0;r=q+(p<<3)|0;s=p<<3>>3;a:do if(!s)t=q;else{p=q;u=s;while(1){v=u;while(1){w=v;v=(v|0)/2|0;if((c[p+(v<<3)>>2]|0)>>>0>>0?(c[p+(v<<3)+4>>2]|0)<(n|0):0){x=v;y=w;break}if((w+1|0)>>>0<3){t=p;break a}}v=p+(x+1<<3)|0;w=y+-1|0;if((w|0)==(x|0)){t=v;break}else{p=v;u=w-x|0}}}while(0);if(!((t|0)==(r|0)|(t|0)==0)?(n=(c[l>>2]|0)+((t-q|0)>>>3)|0,(a[n>>0]|0)!=0):0)a[n>>0]=0;else z=16}else z= +16;if((z|0)==16){z=0;mb[c[(c[e>>2]|0)+16>>2]&7](e,b,m)}m=m+28|0;if((m|0)==((c[f>>2]|0)+((c[g>>2]|0)*28|0)|0)){h=k;i=l;j=d;break}}}d=c[j>>2]|0;j=c[i>>2]|0;i=c[h>>2]|0;if((i|0)<=0)return;h=0;do{if(a[j+h>>0]|0)tb[c[(c[e>>2]|0)+20>>2]&31](e,c[d+(h<<3)>>2]|0,b,c[d+(h<<3)+4>>2]|0);h=h+1|0}while((h|0)!=(i|0));return}function pm(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;d=i;i=i+80|0;e=d;f=d+64|0;h=d+48| +0;j=d+32|0;k=d+16|0;l=b+400|0;m=c[l>>2]|0;c[h>>2]=0;c[h+4>>2]=0;n=h+8|0;c[n>>2]=0;o=h+12|0;c[o>>2]=m+76;p=b+8|0;if((c[p>>2]&16384|0)!=0?(c[m+102952>>2]|0)!=0:0)nm(h,c[b+232>>2]|0,c[b+236>>2]|0,c[b+88>>2]|0);if((c[b+156>>2]|0)>0?(m=c[b+44>>2]|0,(m|0)>0):0){q=c[b+168>>2]|0;r=b+4|0;s=c[b+160>>2]|0;t=b+176|0;u=0;do{c[q+(u<<2)>>2]=0;if((c[r>>2]|0)>((c[s+(u<<2)>>2]|0)+1|0))c[(c[t>>2]|0)+(u<<2)>>2]=0;u=u+1|0}while((u|0)!=(m|0))}m=b+236|0;c[m>>2]=0;c[b+188>>2]=0;if(!(c[p>>2]&65536))v=0;else v=c[(c[l>>2]| +0)+102948>>2]|0;c[j+4>>2]=b;c[j>>2]=2328;c[j+8>>2]=v;v=c[b+44>>2]|0;g[k>>2]=3.4028234663852886E38;p=k+4|0;g[p>>2]=3.4028234663852886E38;u=k+8|0;g[u>>2]=-3.4028234663852886E38;t=k+12|0;g[t>>2]=-3.4028234663852886E38;if((v|0)>0){s=c[b+96>>2]|0;w=3.4028234663852886E38;x=3.4028234663852886E38;y=-3.4028234663852886E38;z=-3.4028234663852886E38;r=0;while(1){A=+g[s+(r<<3)>>2];B=+g[s+(r<<3)+4>>2];C=w>2]=C;g[p>>2]=D;E=y>A?y:A;A=z>B?z:B;g[u>>2]=E;g[t>>2]=A;r=r+1|0;if((r|0)==(v|0)){F=C;G= +D;H=E;I=A;break}else{w=C;x=D;y=E;z=A}}}else{F=3.4028234663852886E38;G=3.4028234663852886E38;H=-3.4028234663852886E38;I=-3.4028234663852886E38}z=+g[b+32>>2];g[k>>2]=F-z;g[p>>2]=G-z;g[u>>2]=H+z;g[t>>2]=I+z;$k(c[l>>2]|0,j,k);if(a[b+316>>0]|0){k=b+232|0;j=c[k>>2]|0;l=j+((c[m>>2]|0)*28|0)|0;c[e>>2]=31;Tm(j,l,e);c[f>>2]=0;l=c[k>>2]|0;k=c[m>>2]|0;j=l+(k*28|0)|0;c[e>>2]=b;c[e+4>>2]=-1;c[e+8>>2]=0;c[e+12>>2]=f;a:do if(!k){J=l;K=19}else{t=l;do{if(Um(e,t)|0){J=t;K=19;break a}t=t+28|0}while((t|0)!=(j|0))}while(0); +b:do if((K|0)==19?(J|0)!=(j|0):0){l=J;k=J;while(1){t=k;while(1){u=t+28|0;if((u|0)==(j|0))break b;if(Um(e,u)|0)t=u;else{L=u;break}}c[l>>2]=c[L>>2];c[l+4>>2]=c[L+4>>2];c[l+8>>2]=c[L+8>>2];c[l+12>>2]=c[L+12>>2];c[l+16>>2]=c[L+16>>2];c[l+20>>2]=c[L+20>>2];c[l+24>>2]=c[L+24>>2];l=l+28|0;k=L}}while(0);c[m>>2]=(c[m>>2]|0)-(c[f>>2]|0)}om(b,h);b=c[h>>2]|0;if(!b){i=d;return}no(c[o>>2]|0,b);c[h>>2]=0;c[n>>2]=0;i=d;return}function qm(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=c[a>>2]|0;e=c[b>>2]|0;if((d|0)==(e|0)){f= ++g[a+12>>2]>+g[b+12>>2];return f|0}else{f=(d|0)<(e|0);return f|0}return 0}function rm(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;d=i;i=i+64|0;e=d;f=d+16|0;g[e>>2]=3.4028234663852886E38;h=e+4|0;g[h>>2]=3.4028234663852886E38;j=e+8|0;g[j>>2]=-3.4028234663852886E38;k=e+12|0;g[k>>2]=-3.4028234663852886E38;l=c[a+44>>2]|0;if((l|0)>0){m=c[a+104>>2]|0;n=c[a+96>>2]|0;o=+g[b>>2];p=3.4028234663852886E38;q=3.4028234663852886E38;r=-3.4028234663852886E38; +s=-3.4028234663852886E38;t=0;do{u=+g[n+(t<<3)>>2];v=+g[n+(t<<3)+4>>2];w=u+ +g[m+(t<<3)>>2]*o;x=v+ +g[m+(t<<3)+4>>2]*o;y=u>2]=p;g[h>>2]=q;z=u>w?u:w;w=v>x?v:x;r=r>z?r:z;s=s>w?s:w;g[j>>2]=r;g[k>>2]=s;t=t+1|0}while((t|0)<(l|0))}l=c[a+400>>2]|0;if(!(c[a+8>>2]&65536))A=0;else A=c[l+102948>>2]|0;c[f+4>>2]=a;c[f>>2]=2360;a=f+8|0;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[a+16>>2]=c[b+16>>2];c[a+20>>2]=c[b+20>>2];c[a+24>>2]=c[b+ +24>>2];c[f+36>>2]=A;$k(l,f,e);i=d;return}function sm(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,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,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;e=b+44|0;f=c[e>>2]|0;if((f|0)>0){h=c[b+88>>2]|0;i=b+104|0;j=0;do{if((c[h+(j<<2)>>2]&1028|0)==1028){l=c[i>>2]|0;g[l+(j<<3)>>2]= +0;g[l+(j<<3)+4>>2]=0}j=j+1|0}while((j|0)<(f|0))}m=+g[d>>2]*2.5;f=b+252|0;if((c[f>>2]|0)<=0)return;j=b+248|0;i=b+96|0;h=b+144|0;l=b+104|0;n=b+36|0;o=b+200|0;p=b+204|0;q=b+32|0;r=b+320|0;s=d+4|0;d=b+88|0;t=b+21|0;u=b+112|0;b=0;do{v=c[j>>2]|0;a:do if(c[v+(b*20|0)+8>>2]&1024){w=c[v+(b*20|0)>>2]|0;x=c[v+(b*20|0)+4>>2]|0;y=c[i>>2]|0;z=+g[y+(w<<3)>>2];A=+g[y+(w<<3)+4>>2];B=+g[y+(x<<3)>>2];C=+g[y+(x<<3)+4>>2];D=zB?z:B;G=A>C?A:C;y=c[h>>2]|0;H=c[y+(w<<2)>>2]|0;I=c[y+(x<<2)>>2]|0;if((H| +0)!=0?(c[H+12>>2]&2|0)!=0:0){Ml(H);J=+g[H+56>>2];y=(g[k>>2]=+g[H+48>>2]-J*(A-+g[H+44>>2]),c[k>>2]|0);K=y;L=(g[k>>2]=J*(z-+g[H+40>>2])+ +g[H+52>>2],c[k>>2]|0)}else{y=c[l>>2]|0;K=c[y+(w<<3)>>2]|0;L=c[y+(w<<3)+4>>2]|0}if((I|0)!=0?(c[I+12>>2]&2|0)!=0:0){Ml(I);J=+g[I+56>>2];w=(g[k>>2]=+g[I+48>>2]-J*(C-+g[I+44>>2]),c[k>>2]|0);M=w;N=(g[k>>2]=J*(B-+g[I+40>>2])+ +g[I+52>>2],c[k>>2]|0)}else{w=c[l>>2]|0;M=c[w+(x<<3)>>2]|0;N=c[w+(x<<3)+4>>2]|0}J=B-z;B=(c[k>>2]=M,+g[k>>2]);P=(c[k>>2]=K,+g[k>>2]);Q=B-P;B=(c[k>> +2]=L,+g[k>>2]);R=+g[n>>2];x=(~~(E*R+-1+2048)>>>0<<20)+(~~((D*R+-1)*256+524288)>>>0)|0;D=G*R+1+2048;G=(F*R+1)*256+524288;w=c[o>>2]|0;y=c[p>>2]|0;S=w;T=y<<3>>3;b:while(1){U=T;while(1){if(!U){V=S;break b}W=(U|0)/2|0;if((c[S+(W<<3)+4>>2]|0)>>>0>>0){X=W;Y=U;break}else U=W}S=S+(X+1<<3)|0;T=Y+-1-X|0}R=(c[k>>2]=N,+g[k>>2]);T=(~~D>>>0<<20)+(~~G>>>0)|0;S=V;U=w+(y<<3)-V>>3;c:while(1){W=U;while(1){if(!W){Z=S;break c}_=(W|0)/2|0;if((c[S+(_<<3)+4>>2]|0)>>>0>T>>>0)W=_;else{$=_;aa=W;break}}S=S+($+1<<3)|0;U=aa+ +-1-$|0}G=C-A;D=R-B;U=x&1048575;S=T&1048575;if(V>>>0>>0){y=V;while(1){w=c[y+4>>2]&1048575;W=y;y=y+8|0;if(w>>>0>>0|w>>>0>S>>>0)if(y>>>0>>0){y=y;continue}else break;w=c[W>>2]|0;if((w|0)<=-1)break a;W=c[i>>2]|0;_=c[W+(w<<3)>>2]|0;ba=c[W+(w<<3)+4>>2]|0;W=c[(c[h>>2]|0)+(w<<2)>>2]|0;d:do if(!((H|0)==(W|0)|(I|0)==(W|0))){ca=(W|0)==0;if(!ca?(c[W+12>>2]&2|0)!=0:0){Ml(W);F=+g[W+56>>2];E=(c[k>>2]=_,+g[k>>2]);da=(c[k>>2]=ba,+g[k>>2]);ea=(g[k>>2]=+g[W+48>>2]-F*(da-+g[W+44>>2]),c[k>>2]|0);fa=da;ga=E;ha= +ea;ia=(g[k>>2]=F*(E-+g[W+40>>2])+ +g[W+52>>2],c[k>>2]|0)}else{ea=c[l>>2]|0;E=(c[k>>2]=_,+g[k>>2]);fa=(c[k>>2]=ba,+g[k>>2]);ga=E;ha=c[ea+(w<<3)>>2]|0;ia=c[ea+(w<<3)+4>>2]|0}E=ga-z;F=fa-A;da=(c[k>>2]=ha,+g[k>>2]);ja=da-P;ka=(c[k>>2]=ia,+g[k>>2]);la=ka-B;ma=Q*la-D*ja;na=J*la-G*ja-(D*E-Q*F);oa=J*F-G*E;do if(ma==0){if(na==0)break d;pa=-oa/na;if(!(pa>=0&pa=0&sa<=1)ta=sa;else break d}else{sa=na*na-oa*4*ma;if(sa<0)break d; +ra=+O(+sa);sa=ma*2;qa=(-na-ra)/sa;ea=(g[k>>2]=qa,c[k>>2]|0);pa=(ra-na)/sa;ua=(g[k>>2]=pa,c[k>>2]|0);va=qa>pa;wa=va?ea:ua;pa=(c[k>>2]=va?ua:ea,+g[k>>2]);qa=J+Q*pa;sa=G+D*pa;ra=(qa*(E+ja*pa)+sa*(F+la*pa))/(qa*qa+sa*sa);if(pa>=0?ra<=1&(ra>=0&pa>2]=wa,+g[k>>2]);if(!(ra>=0&ra=0&qa<=1)ta=qa;else break d}while(0);la=P+Q*ta-da;F=B+D*ta-ka;ja=+g[q>>2]*.75;E=ja*(+g[r>>2]*ja);ja=la*E;na=F*E;if(!ca?(c[W+ +12>>2]&2|0)!=0:0){Ml(W);E=+g[W+32>>2];Ml(W);ma=+g[W+36>>2];if(E>0){oa=1/E;wa=W+48|0;g[wa>>2]=ja*oa+ +g[wa>>2];wa=W+52|0;g[wa>>2]=na*oa+ +g[wa>>2]}if(ma>0){Ml(W);wa=W+56|0;g[wa>>2]=(na*(ga-+g[W+40>>2])-ja*(fa-+g[W+44>>2]))/ma+ +g[wa>>2]}}else{wa=c[l>>2]|0;ea=wa+(w<<3)|0;g[ea>>2]=la+ +g[ea>>2];ea=wa+(w<<3)+4|0;g[ea>>2]=F+ +g[ea>>2]}F=-+g[s>>2];la=ja*F;ja=na*F;if(la!=0|ja!=0?(c[(c[d>>2]|0)+(w<<2)>>2]&4|0)==0:0){if(!(a[t>>0]|0)){xp(c[u>>2]|0,0,c[e>>2]<<3|0)|0;a[t>>0]=1}ea=c[u>>2]|0;wa=ea+(w<<3)|0;g[wa>> +2]=la+ +g[wa>>2];wa=ea+(w<<3)+4|0;g[wa>>2]=ja+ +g[wa>>2]}}while(0);if(y>>>0>=Z>>>0)break}}}while(0);b=b+1|0}while((b|0)<(c[f>>2]|0));return}function Cn(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,v=0,w=0;switch(b-a>>3|0){case 2:{if((c[b+-4>>2]|0)>>>0>=(c[a+4>>2]|0)>>>0){e=1;return e|0}f=b+-8|0;g=a;h=c[g>>2]|0;i=c[g+4>>2]|0;g=f;j=c[g+4>>2]|0;k=a;c[k>>2]=c[g>>2];c[k+4>>2]=j;j=f;c[j>>2]=h;c[j+4>>2]=i;e=1;return e|0}case 3:{i=a+8|0;j=b+-8|0;h=a+12| +0;f=c[h>>2]|0;k=a+4|0;g=b+-4|0;l=(c[g>>2]|0)>>>0>>0;if(f>>>0>=(c[k>>2]|0)>>>0){if(!l){e=1;return e|0}f=i;m=c[f>>2]|0;n=c[f+4>>2]|0;f=j;o=c[f+4>>2]|0;p=i;c[p>>2]=c[f>>2];c[p+4>>2]=o;o=j;c[o>>2]=m;c[o+4>>2]=n;if((c[h>>2]|0)>>>0>=(c[k>>2]|0)>>>0){e=1;return e|0}k=a;h=c[k>>2]|0;n=c[k+4>>2]|0;k=i;o=c[k+4>>2]|0;m=a;c[m>>2]=c[k>>2];c[m+4>>2]=o;o=i;c[o>>2]=h;c[o+4>>2]=n;e=1;return e|0}n=a;o=c[n>>2]|0;h=c[n+4>>2]|0;if(l){l=j;n=c[l+4>>2]|0;m=a;c[m>>2]=c[l>>2];c[m+4>>2]=n;n=j;c[n>>2]=o;c[n+4>>2]=h;e=1;return e| +0}n=i;m=c[n+4>>2]|0;l=a;c[l>>2]=c[n>>2];c[l+4>>2]=m;m=i;c[m>>2]=o;c[m+4>>2]=h;if((c[g>>2]|0)>>>0>=h>>>0){e=1;return e|0}g=j;m=c[g+4>>2]|0;l=i;c[l>>2]=c[g>>2];c[l+4>>2]=m;m=j;c[m>>2]=o;c[m+4>>2]=h;e=1;return e|0}case 4:{Bn(a,a+8|0,a+16|0,b+-8|0,d)|0;e=1;return e|0}case 5:{h=a+8|0;m=a+16|0;o=a+24|0;Bn(a,h,m,o,d)|0;d=a+28|0;if((c[b+-4>>2]|0)>>>0>=(c[d>>2]|0)>>>0){e=1;return e|0}j=b+-8|0;l=o;g=c[l>>2]|0;i=c[l+4>>2]|0;l=j;n=c[l+4>>2]|0;k=o;c[k>>2]=c[l>>2];c[k+4>>2]=n;n=j;c[n>>2]=g;c[n+4>>2]=i;if((c[d>> +2]|0)>>>0>=(c[a+20>>2]|0)>>>0){e=1;return e|0}d=m;i=c[d>>2]|0;n=c[d+4>>2]|0;d=o;g=c[d>>2]|0;j=c[d+4>>2]|0;d=m;c[d>>2]=g;c[d+4>>2]=j;d=o;c[d>>2]=i;c[d+4>>2]=n;if(j>>>0>=(c[a+12>>2]|0)>>>0){e=1;return e|0}n=h;d=c[n>>2]|0;i=c[n+4>>2]|0;n=h;c[n>>2]=g;c[n+4>>2]=j;n=m;c[n>>2]=d;c[n+4>>2]=i;if(j>>>0>=(c[a+4>>2]|0)>>>0){e=1;return e|0}i=a;n=c[i>>2]|0;d=c[i+4>>2]|0;i=a;c[i>>2]=g;c[i+4>>2]=j;j=h;c[j>>2]=n;c[j+4>>2]=d;e=1;return e|0}case 1:case 0:{e=1;return e|0}default:{d=a+16|0;j=a+8|0;n=c[a+12>>2]|0;h=c[a+ +4>>2]|0;i=c[a+20>>2]|0;g=i>>>0>>0;do if(n>>>0>>0){m=a;o=c[m>>2]|0;k=c[m+4>>2]|0;if(g){m=d;l=c[m+4>>2]|0;p=a;c[p>>2]=c[m>>2];c[p+4>>2]=l;l=d;c[l>>2]=o;c[l+4>>2]=k;break}l=j;p=c[l+4>>2]|0;m=a;c[m>>2]=c[l>>2];c[m+4>>2]=p;p=j;c[p>>2]=o;c[p+4>>2]=k;if(i>>>0>>0){p=d;m=c[p+4>>2]|0;l=j;c[l>>2]=c[p>>2];c[l+4>>2]=m;m=d;c[m>>2]=o;c[m+4>>2]=k}}else if(g?(k=j,m=c[k>>2]|0,o=c[k+4>>2]|0,k=d,l=c[k>>2]|0,p=c[k+4>>2]|0,k=j,c[k>>2]=l,c[k+4>>2]=p,k=d,c[k>>2]=m,c[k+4>>2]=o,p>>>0>>0):0){o=a;k=c[o>>2]|0;m=c[o+ +4>>2]|0;o=a;c[o>>2]=l;c[o+4>>2]=p;p=j;c[p>>2]=k;c[p+4>>2]=m}while(0);j=a+24|0;if((j|0)==(b|0)){e=1;return e|0}else{q=0;r=j;s=d}while(1){if((c[r+4>>2]|0)>>>0<(c[s+4>>2]|0)>>>0){d=r;j=c[d>>2]|0;h=c[d+4>>2]|0;d=r;g=s;while(1){i=g;n=c[i+4>>2]|0;m=d;c[m>>2]=c[i>>2];c[m+4>>2]=n;if((g|0)==(a|0)){t=g;break}if(h>>>0<(c[g+-4>>2]|0)>>>0){n=g;g=g+-8|0;d=n}else{t=g;break}}g=t;c[g>>2]=j;c[g+4>>2]=h;g=q+1|0;if((g|0)==8){u=r;break}else v=g}else v=q;g=r+8|0;if((g|0)==(b|0)){e=1;w=34;break}else{d=r;q=v;r=g;s=d}}if((w| +0)==34)return e|0;e=(u+8|0)==(b|0);return e|0}}return 0}function Dn(a){a=a|0;so(a);return}function En(a){a=a|0;so(a);return}function Fn(a,b){a=a|0;b=b|0;return 0}function Gn(a){a=a|0;return 1}function Hn(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;e=a+16|0;if((c[e>>2]|0)<=0){f=0;return f|0}g=a+12|0;a=0;while(1){h=c[(c[g>>2]|0)+(a<<2)>>2]|0;a=a+1|0;if(lb[c[(c[h>>2]|0)+16>>2]&15](h,b,d)|0){f=1;i=5;break}if((a|0)>=(c[e>>2]|0)){f=0;i=5;break}}if((i|0)==5)return f|0;return 0}function In(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}function Jn(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return 0}function Kn(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,u=0,v=0,w=0;e=i;i=i+16|0;f=e;g[b>>2]=3.4028234663852886E38;h=b+4|0;g[h>>2]=3.4028234663852886E38;j=b+8|0;g[j>>2]=-3.4028234663852886E38;k=b+12|0;g[k>>2]=-3.4028234663852886E38;l=a+16|0;if((c[l>>2]|0)<=0){i=e;return}m=a+12|0;a=f+4|0;n=f+8|0;o=f+12|0;p=0;do{q=c[(c[m>>2]|0)+(p<<2)>>2]|0;r=fb[c[(c[q>> +2]|0)+12>>2]&7](q)|0;if((r|0)>0){q=0;do{s=c[(c[m>>2]|0)+(p<<2)>>2]|0;tb[c[(c[s>>2]|0)+28>>2]&31](s,f,d,q);t=+g[b>>2];u=+g[f>>2];v=+g[h>>2];w=+g[a>>2];g[b>>2]=t>2]=v>2];v=+g[n>>2];u=+g[k>>2];t=+g[o>>2];g[j>>2]=w>v?w:v;g[k>>2]=u>t?u:t;q=q+1|0}while((q|0)!=(r|0))}p=p+1|0}while((p|0)<(c[l>>2]|0));i=e;return}function Ln(a,b,c){a=a|0;b=b|0;c=+c;return}function Mn(a){a=a|0;so(a);return}function Nn(a,b){a=a|0;b=b|0;return 0}function On(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;f=b+ +4|0;if((c[f>>2]|0)!=(d|0)){g=0;return g|0}h=c[b+8>>2]|0;if(!(lb[c[(c[h>>2]|0)+16>>2]&15](h,b+12|0,(c[d+96>>2]|0)+(e<<3)|0)|0)){g=1;return g|0}d=c[f>>2]|0;Zl(d,e,c[(c[d+88>>2]|0)+(e<<2)>>2]|((a[b+28>>0]|0)!=0?514:2));e=b+32|0;c[e>>2]=(c[e>>2]|0)+1;g=1;return g|0}function Pn(a,b){a=a|0;b=b|0;var d=0,e=0;d=b+4|0;e=c[b>>2]|0;c[e+4>>2]=c[d>>2];c[c[d>>2]>>2]=e;c[d>>2]=b;e=a+12|0;c[d>>2]=c[e>>2];c[b>>2]=a+8;c[c[e>>2]>>2]=b;c[e>>2]=b;return}function Qn(b){b=b|0;var d=0,e=0,f=0,g=0;d=b+68|0;c[b+72>>2]=d;c[d>> +2]=d;d=b+8|0;c[d>>2]=128;c[b+4>>2]=0;e=$n(1024)|0;c[b>>2]=e;xp(e|0,0,c[d>>2]<<3|0)|0;d=b+12|0;b=d+56|0;do{c[d>>2]=0;d=d+4|0}while((d|0)<(b|0));if(!(a[6718]|0)){f=1;g=0}else return;while(1){d=(f|0)>(c[2384+(g<<2)>>2]|0);b=g+1|0;a[6077+f>>0]=d?b:g;f=f+1|0;if((f|0)==641)break;else g=d?b:g}a[6718]=1;return}function Rn(a){a=a|0;var b=0,d=0;b=a+4|0;if((c[b>>2]|0)>0){d=0;do{ao(c[(c[a>>2]|0)+(d<<3)+4>>2]|0);d=d+1|0}while((d|0)<(c[b>>2]|0))}ao(c[a>>2]|0);b=a+68|0;io(b);d=a+72|0;a=c[b>>2]|0;c[a+4>>2]=c[d>> +2];c[c[d>>2]>>2]=a;c[d>>2]=b;c[b>>2]=b;return}function Sn(a,b){a=a|0;b=b|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;if(!b){e=0;return e|0}if((b|0)>640){e=go(a+68|0,b)|0;return e|0}f=d[6077+b>>0]|0;b=a+12+(f<<2)|0;g=c[b>>2]|0;if(g){c[b>>2]=c[g>>2];e=g;return e|0}g=a+4|0;h=c[g>>2]|0;i=a+8|0;if((h|0)==(c[i>>2]|0)){j=c[a>>2]|0;k=h+128|0;c[i>>2]=k;i=$n(k<<3)|0;c[a>>2]=i;Bp(i|0,j|0,c[g>>2]<<3|0)|0;xp((c[a>>2]|0)+(c[g>>2]<<3)|0,0,1024)|0;ao(j);l=c[g>>2]|0}else l=h;h=c[a>>2]|0;a=$n(16384)|0;j=h+(l<<3)+4|0;c[j>> +2]=a;i=c[2384+(f<<2)>>2]|0;c[h+(l<<3)>>2]=i;l=16384/(i|0)|0;h=l+-1|0;if((l|0)>1){l=0;do{f=l;l=l+1|0;c[a+(_(f,i)|0)>>2]=a+(_(l,i)|0)}while((l|0)!=(h|0))}c[a+(_(h,i)|0)>>2]=0;c[b>>2]=c[a>>2];c[g>>2]=(c[g>>2]|0)+1;e=c[j>>2]|0;return e|0}function Tn(a,b,e){a=a|0;b=b|0;e=e|0;var f=0;if(!e)return;if((e|0)>640){ho(a+68|0,b);return}else{f=a+12+((d[6077+e>>0]|0)<<2)|0;c[b>>2]=c[f>>2];c[f>>2]=b;return}}function Un(a,b,c){a=a|0;b=b|0;c=c|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,s=0,t=0; +d=+g[b+16>>2];e=+g[b+32>>2];f=+g[b+20>>2];h=+g[b+28>>2];i=d*e-f*h;j=+g[b+24>>2];k=+g[b+12>>2];l=f*j-e*k;m=h*k-d*j;n=+g[b>>2];o=+g[b+4>>2];p=+g[b+8>>2];q=i*n+o*l+m*p;r=q!=0?1/q:q;q=+g[c>>2];s=+g[c+4>>2];t=+g[c+8>>2];g[a>>2]=r*(i*q+l*s+m*t);g[a+4>>2]=r*((s*e-t*h)*n+o*(t*j-e*q)+(h*q-s*j)*p);g[a+8>>2]=r*((d*t-f*s)*n+o*(f*q-t*k)+(s*k-d*q)*p);return}function Vn(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,h=0,i=0,j=0,k=0;d=+g[b>>2];e=+g[b+12>>2];f=+g[b+4>>2];h=+g[b+16>>2];i=d*h-e*f;j=i!=0?1/i:i;i=+g[c>>2]; +k=+g[c+4>>2];g[a>>2]=j*(h*i-e*k);g[a+4>>2]=j*(d*k-f*i);return}function Wn(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0,i=0,j=0;d=+g[a>>2];e=+g[a+12>>2];f=+g[a+4>>2];h=+g[a+16>>2];i=d*h-e*f;j=i!=0?1/i:i;g[b>>2]=h*j;h=-j;g[b+12>>2]=e*h;g[b+8>>2]=0;g[b+4>>2]=f*h;g[b+16>>2]=d*j;a=b+20|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;c[a+12>>2]=0;return}function Xn(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;c=+g[a+16>>2];d=+g[a+32>>2];e=c*d;f=+g[a+20>>2];h=+g[a+28>>2];i=+g[a+24>>2];j=+g[a+12>>2];k=d* +j;l=h*j-c*i;m=+g[a>>2];n=(e-f*h)*m+ +g[a+4>>2]*(f*i-k)+l*+g[a+8>>2];f=n!=0?1/n:n;g[b>>2]=f*(e-h*h);e=f*(i*h-k);g[b+4>>2]=e;k=f*l;g[b+8>>2]=k;g[b+12>>2]=e;g[b+16>>2]=f*(m*d-i*i);d=f*(i*j-m*h);g[b+20>>2]=d;g[b+24>>2]=k;g[b+28>>2]=d;g[b+32>>2]=f*(m*c-j*j);return}function Yn(a){a=a|0;return}function Zn(a){a=a|0;return}function _n(a){a=a|0;return 0}function $n(a){a=a|0;c[619]=(c[619]|0)+1;return rb[c[2464>>2]&31](a,c[618]|0)|0}function ao(a){a=a|0;c[619]=(c[619]|0)+-1;kb[c[2468>>2]&63](a,c[618]|0);return} +function bo(a,b){a=a|0;b=b|0;return}function co(a,b){a=a|0;b=b|0;return tp(a)|0}function eo(a,b){a=a|0;b=b|0;up(a);return}function fo(a){a=a|0;return a+43&-32|0}function go(a,b){a=a|0;b=b|0;var d=0;d=$n(b+44|0)|0;c[d>>2]=d;b=d+43&-32;c[b+-4>>2]=d;c[d+4>>2]=a;c[d>>2]=c[a>>2];c[(c[a>>2]|0)+4>>2]=d;c[a>>2]=d;return b|0}function ho(a,b){a=a|0;b=b|0;var d=0;a=c[b+-4>>2]|0;b=a+4|0;d=c[a>>2]|0;c[d+4>>2]=c[b>>2];c[c[b>>2]>>2]=d;c[b>>2]=a;c[a>>2]=a;ao(a);return}function io(a){a=a|0;var b=0,d=0,e=0,f=0;b=a+ +4|0;d=c[b>>2]|0;if((d|0)==(a|0))return;else e=d;do{d=e+4|0;f=c[e>>2]|0;c[f+4>>2]=c[d>>2];c[c[d>>2]>>2]=f;c[d>>2]=e;c[e>>2]=e;ao(e);e=c[b>>2]|0}while((e|0)!=(a|0));return}function jo(a){a=a|0;c[a+102400>>2]=0;c[a+102404>>2]=0;c[a+102408>>2]=0;c[a+102796>>2]=0;return}function ko(a){a=a|0;return}function lo(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;e=d+3&-4;d=b+102796|0;f=c[d>>2]|0;g=b+102412+(f*12|0)|0;c[b+102412+(f*12|0)+4>>2]=e;h=b+102400|0;i=c[h>>2]|0;if((i+e|0)>102400){c[g>>2]=$n(e)|0;a[b+102412+ +(f*12|0)+8>>0]=1;j=g}else{c[g>>2]=b+i;a[b+102412+(f*12|0)+8>>0]=0;c[h>>2]=(c[h>>2]|0)+e;j=g}g=b+102404|0;h=(c[g>>2]|0)+e|0;c[g>>2]=h;g=b+102408|0;b=c[g>>2]|0;c[g>>2]=(b|0)>(h|0)?b:h;c[d>>2]=(c[d>>2]|0)+1;return c[j>>2]|0}function mo(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;d=(c[b+102796>>2]|0)+-1|0;f=b+102412+(d*12|0)|0;g=b+102412+(d*12|0)+4|0;h=e-(c[g>>2]|0)|0;if((h|0)<=0){i=c[f>>2]|0;return i|0}j=b+102412+(d*12|0)+8|0;do if(!(a[j>>0]|0)){d=b+102400|0;k=(c[d>>2]|0)+h|0;if((k|0)>102400){l= +$n(e)|0;Bp(l|0,c[f>>2]|0,c[g>>2]|0)|0;c[d>>2]=(c[d>>2]|0)-(c[g>>2]|0);c[f>>2]=l;a[j>>0]=1;break}else{c[d>>2]=k;k=b+102404|0;d=(c[k>>2]|0)+h|0;c[k>>2]=d;k=b+102408|0;l=c[k>>2]|0;c[k>>2]=(l|0)>(d|0)?l:d;break}}else{d=$n(e)|0;Bp(d|0,c[f>>2]|0,c[g>>2]|0)|0;ao(c[f>>2]|0);c[f>>2]=d}while(0);c[g>>2]=e;i=c[f>>2]|0;return i|0}function no(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+102796|0;f=c[e>>2]|0;g=f+-1|0;if(!(a[b+102412+(g*12|0)+8>>0]|0)){h=b+102412+(g*12|0)+4|0;i=b+102400|0;c[i>>2]=(c[i>>2]| +0)-(c[h>>2]|0);j=h;k=f}else{ao(d);j=b+102412+(g*12|0)+4|0;k=c[e>>2]|0}g=b+102404|0;c[g>>2]=(c[g>>2]|0)-(c[j>>2]|0);c[e>>2]=k+-1;return}function oo(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[661]|0;dp(b,a,e)|0;bp(10,b)|0;wa()}function po(){var a=0,b=0;a=i;i=i+16|0;if(!(Ma(2592,3)|0)){b=Ia(c[647]|0)|0;i=a;return b|0}else oo(6949,a);return 0}function qo(a){a=a|0;var b=0,d=0,e=0;b=(a|0)==0?1:a;a=tp(b)|0;a:do if(!a){while(1){d=yo()|0;if(!d)break;nb[d&3]();d=tp(b)|0;if(d){e=d;break a}}d= +ya(4)|0;c[d>>2]=2492;Ta(d|0,608,60)}else e=a;while(0);return e|0}function ro(a,b){a=a|0;b=b|0;return qo(a)|0}function so(a){a=a|0;up(a);return}function to(a){a=a|0;return}function uo(a){a=a|0;so(a);return}function vo(a){a=a|0;return 6998}function wo(a){a=a|0;var b=0;b=i;i=i+16|0;nb[a&3]();oo(7013,b)}function xo(){var a=0,b=0;a=po()|0;if(((a|0)!=0?(b=c[a>>2]|0,(b|0)!=0):0)?(a=b+48|0,(c[a>>2]&-256|0)==1126902528?(c[a+4>>2]|0)==1129074247:0):0)wo(c[b+12>>2]|0);b=c[620]|0;c[620]=b+0;wo(b)}function yo(){var a= +0;a=c[626]|0;c[626]=a+0;return a|0}function zo(a){a=a|0;return}function Ao(a){a=a|0;return}function Bo(a){a=a|0;return}function Co(a){a=a|0;return}function Do(a){a=a|0;return}function Eo(a){a=a|0;so(a);return}function Fo(a){a=a|0;so(a);return}function Go(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=Ko(b,640,656,0)|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;tb[c[(c[g>>2]| +0)+28>>2]&31](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 Ho(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0;b=d+16|0;g=c[b>>2]|0;do if(g){if((g|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{c[b>>2]=e;c[d+24>>2]=f;c[d+36>>2]=1}while(0);return}function Io(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;if((a|0)==(c[b+8>>2]|0))Ho(0,b,d,e);return}function Jo(a,b,d,e){a=a|0;b=b| +0;d=d|0;e=e|0;var f=0;if((a|0)==(c[b+8>>2]|0))Ho(0,b,d,e);else{f=c[a+8>>2]|0;tb[c[(c[f>>2]|0)+28>>2]&31](f,b,d,e)}return}function Ko(d,e,f,g){d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;h=i;i=i+64|0;j=h;k=c[d>>2]|0;l=d+(c[k+-8>>2]|0)|0;m=c[k+-4>>2]|0;c[j>>2]=f;c[j+4>>2]=d;c[j+8>>2]=e;c[j+12>>2]=g;g=j+16|0;e=j+20|0;d=j+24|0;k=j+28|0;n=j+32|0;o=j+40|0;p=(m|0)==(f|0);q=g;r=q+36|0;do{c[q>>2]=0;q=q+4|0}while((q|0)<(r|0));b[g+36>>1]=0;a[g+38>>0]=0;a:do if(p){c[j+48>>2]=1;qb[c[(c[f>> +2]|0)+20>>2]&7](f,j,l,l,1,0);s=(c[d>>2]|0)==1?l:0}else{gb[c[(c[m>>2]|0)+24>>2]&3](m,j,l,1,0);switch(c[j+36>>2]|0){case 0:{s=(c[o>>2]|0)==1&(c[k>>2]|0)==1&(c[n>>2]|0)==1?c[e>>2]|0:0;break a;break}case 1:break;default:{s=0;break a}}if((c[d>>2]|0)!=1?!((c[o>>2]|0)==0&(c[k>>2]|0)==1&(c[n>>2]|0)==1):0){s=0;break}s=c[g>>2]|0}while(0);i=h;return s|0}function Lo(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;a[d+53>>0]=1;do if((c[d+4>>2]|0)==(f|0)){a[d+52>>0]=1;b=d+16|0;h=c[b>>2]|0;if(!h){c[b>>2]=e; +c[d+24>>2]=g;c[d+36>>2]=1;if(!((g|0)==1?(c[d+48>>2]|0)==1:0))break;a[d+54>>0]=1;break}if((h|0)!=(e|0)){h=d+36|0;c[h>>2]=(c[h>>2]|0)+1;a[d+54>>0]=1;break}h=d+24|0;b=c[h>>2]|0;if((b|0)==2){c[h>>2]=g;i=g}else i=b;if((i|0)==1?(c[d+48>>2]|0)==1:0)a[d+54>>0]=1}while(0);return}function Mo(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;gb[c[(c[h>> +2]|0)+24>>2]&3](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;qb[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 No(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 Oo(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))Lo(0,b,d,e,f);else{h=c[a+8>>2]|0;qb[c[(c[h>>2]|0)+20>>2]&7](h,b,d,e,f,g)}return}function Po(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))Lo(0,b,d,e,f);return}function Qo(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=lb[c[(c[a>>2]|0)+16>>2]&15](a,b,f)|0;if(g)c[d>>2]=c[f>>2];i=e;return g&1|0}function Ro(a){a=a|0;var b=0;if(!a)b=0;else b=(Ko(a,640,688,0)|0)!=0;return b&1|0}function So(){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+32|0;d=a+24|0;e=a+16|0;f=a;g=a+36|0;a=po()|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]=c[649];oo(7242,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(lb[c[(c[624>>2]|0)+16>>2]&15](624,l,g)|0){l=c[g>>2]|0;g=c[649]|0;k=fb[c[(c[l>>2]|0)+8>>2]&7](l)|0;c[f>>2]=g;c[f+4>>2]=h;c[f+8>>2]=k;oo(7156,f)}else{c[e>>2]=c[649];c[e+4>>2]=h;oo(7201,e)}}oo(7280, +b)}function To(){var a=0;a=i;i=i+16|0;if(!(va(2588,67)|0)){i=a;return}else oo(7053,a)}function Uo(a){a=a|0;var b=0;b=i;i=i+16|0;up(a);if(!(Sa(c[647]|0,0)|0)){i=b;return}else oo(7103,b)}function Vo(b){b=b|0;var c=0,e=0,f=0,g=0,h=0,i=0,j=0;c=0;while(1){if((d[7301+c>>0]|0)==(b|0)){e=c;f=2;break}c=c+1|0;if((c|0)==87){g=87;h=7389;f=5;break}}if((f|0)==2)if(!e)i=7389;else{g=e;h=7389;f=5}if((f|0)==5)while(1){f=0;e=h;while(1){c=e+1|0;if(!(a[e>>0]|0)){j=c;break}else e=c}g=g+-1|0;if(!g){i=j;break}else{h=j;f= +5}}return i|0}function Wo(){var a=0;if(!(c[650]|0))a=2652;else a=c[(La()|0)+60>>2]|0;return a|0}function Xo(a){a=a|0;var b=0;if(a>>>0>4294963200){c[(Wo()|0)>>2]=0-a;b=-1}else b=a;return b|0}function Yo(a,b){a=+a;b=b|0;var d=0,e=0,f=0,g=0,i=0,j=0,l=0,m=0;h[k>>3]=a;d=c[k>>2]|0;e=c[k+4>>2]|0;f=Ap(d|0,e|0,52)|0;g=f&2047;switch(g|0){case 0:{if(a!=0){i=+Yo(a*1.8446744073709552E19,b);j=i;l=(c[b>>2]|0)+-64|0}else{j=a;l=0}c[b>>2]=l;m=j;break}case 2047:{m=a;break}default:{c[b>>2]=g+-1022;c[k>>2]=d;c[k+4>>2]= +e&-2146435073|1071644672;m=+h[k>>3]}}return+m}function Zo(a,b){a=+a;b=b|0;return+ +Yo(a,b)}function _o(b,d,e){b=b|0;d=d|0;e=e|0;var f=0;do if(b){if(d>>>0<128){a[b>>0]=d;f=1;break}if(d>>>0<2048){a[b>>0]=d>>>6|192;a[b+1>>0]=d&63|128;f=2;break}if(d>>>0<55296|(d&-8192|0)==57344){a[b>>0]=d>>>12|224;a[b+1>>0]=d>>>6&63|128;a[b+2>>0]=d&63|128;f=3;break}if((d+-65536|0)>>>0<1048576){a[b>>0]=d>>>18|240;a[b+1>>0]=d>>>12&63|128;a[b+2>>0]=d>>>6&63|128;a[b+3>>0]=d&63|128;f=4;break}else{c[(Wo()|0)>>2]=84;f=-1;break}}else f= +1;while(0);return f|0}function $o(a,b){a=a|0;b=b|0;var c=0;if(!a)c=0;else c=_o(a,b,0)|0;return c|0}function ap(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0;do if(a){if((c[a+76>>2]|0)<=-1){b=np(a)|0;break}d=(ep(a)|0)==0;e=np(a)|0;if(d)b=e;else{fp(a);b=e}}else{if(!(c[662]|0))f=0;else f=ap(c[662]|0)|0;Va(2628);e=c[656]|0;if(!e)g=f;else{d=e;e=f;while(1){if((c[d+76>>2]|0)>-1)h=ep(d)|0;else h=0;if((c[d+20>>2]|0)>>>0>(c[d+28>>2]|0)>>>0)i=np(d)|0|e;else i=e;if(h)fp(d);d=c[d+56>>2]|0;if(!d){g=i;break}else e=i}}Qa(2628); +b=g}while(0);return b|0}function bp(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;if((c[d+76>>2]|0)>=0?(ep(d)|0)!=0:0){if((a[d+75>>0]|0)!=(b|0)?(e=d+20|0,f=c[e>>2]|0,f>>>0<(c[d+16>>2]|0)>>>0):0){c[e>>2]=f+1;a[f>>0]=b;g=b&255}else g=gp(d,b)|0;fp(d);h=g}else i=3;do if((i|0)==3){if((a[d+75>>0]|0)!=(b|0)?(g=d+20|0,f=c[g>>2]|0,f>>>0<(c[d+16>>2]|0)>>>0):0){c[g>>2]=f+1;a[f>>0]=b;h=b&255;break}h=gp(d,b)|0}while(0);return h|0}function cp(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;f=e+16|0;g=c[f>>2]|0;if(!g)if(!(lp(e)|0)){h=c[f>>2]|0;i=4}else j=0;else{h=g;i=4}a:do if((i|0)==4){g=e+20|0;f=c[g>>2]|0;if((h-f|0)>>>0>>0){j=lb[c[e+36>>2]&15](e,b,d)|0;break}b:do if((a[e+75>>0]|0)>-1){k=d;while(1){if(!k){l=d;m=b;n=f;o=0;break b}p=k+-1|0;if((a[b+p>>0]|0)==10){q=k;break}else k=p}if((lb[c[e+36>>2]&15](e,b,q)|0)>>>0>>0){j=q;break a}l=d-q|0;m=b+q|0;n=c[g>>2]|0;o=q}else{l=d;m=b;n=f;o=0}while(0);Bp(n|0,m|0,l|0)|0;c[g>>2]=(c[g>>2]|0)+l;j=o+l|0}while(0);return j|0}function dp(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;f=i;i=i+224|0;g=f+120|0;h=f+80|0;j=f;k=f+136|0;l=h;m=l+40|0;do{c[l>>2]=0;l=l+4|0}while((l|0)<(m|0));c[g>>2]=c[e>>2];if((op(0,d,g,j,h)|0)<0)n=-1;else{if((c[b+76>>2]|0)>-1)o=ep(b)|0;else o=0;e=c[b>>2]|0;l=e&32;if((a[b+74>>0]|0)<1)c[b>>2]=e&-33;e=b+48|0;if(!(c[e>>2]|0)){m=b+44|0;p=c[m>>2]|0;c[m>>2]=k;q=b+28|0;c[q>>2]=k;r=b+20|0;c[r>>2]=k;c[e>>2]=80;s=b+16|0;c[s>>2]=k+80;k=op(b,d,g,j,h)|0;if(!p)t=k;else{lb[c[b+36>>2]& +15](b,0,0)|0;u=(c[r>>2]|0)==0?-1:k;c[m>>2]=p;c[e>>2]=0;c[s>>2]=0;c[q>>2]=0;c[r>>2]=0;t=u}}else t=op(b,d,g,j,h)|0;h=c[b>>2]|0;c[b>>2]=h|l;if(o)fp(b);n=(h&32|0)==0?t:-1}i=f;return n|0}function ep(a){a=a|0;return 0}function fp(a){a=a|0;return}function gp(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0;f=i;i=i+16|0;g=f;h=e&255;a[g>>0]=h;j=b+16|0;k=c[j>>2]|0;if(!k)if(!(lp(b)|0)){l=c[j>>2]|0;m=4}else n=-1;else{l=k;m=4}do if((m|0)==4){k=b+20|0;j=c[k>>2]|0;if(j>>>0>>0?(o=e&255,(o|0)!=(a[b+75>> +0]|0)):0){c[k>>2]=j+1;a[j>>0]=h;n=o;break}if((lb[c[b+36>>2]&15](b,g,1)|0)==1)n=d[g>>0]|0;else n=-1}while(0);i=f;return n|0}function hp(a){a=a|0;var b=0,d=0;b=i;i=i+16|0;d=b;c[d>>2]=c[a+60>>2];a=Xo(Wa(6,d|0)|0)|0;i=b;return a|0}function ip(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=i;i=i+32|0;f=e;g=e+20|0;c[f>>2]=c[a+60>>2];c[f+4>>2]=0;c[f+8>>2]=b;c[f+12>>2]=g;c[f+16>>2]=d;if((Xo(_a(140,f|0)|0)|0)<0){c[g>>2]=-1;h=-1}else h=c[g>>2]|0;i=e;return h|0}function jp(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,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;g=e;h=e+32|0;j=a+28|0;k=c[j>>2]|0;c[h>>2]=k;l=a+20|0;m=(c[l>>2]|0)-k|0;c[h+4>>2]=m;c[h+8>>2]=b;c[h+12>>2]=d;b=a+60|0;k=a+44|0;n=h;h=2;o=m+d|0;while(1){if(!(c[650]|0)){c[f>>2]=c[b>>2];c[f+4>>2]=n;c[f+8>>2]=h;p=Xo(bb(146,f|0)|0)|0}else{Xa(68,a|0);c[g>>2]=c[b>>2];c[g+4>>2]=n;c[g+8>>2]=h;m=Xo(bb(146,g|0)|0)|0;ta(0);p=m}if((o|0)==(p|0)){q=6;break}if((p|0)<0){r=n;s=h;q=8;break}m=o-p|0;t=c[n+4>>2]|0;if(p>>> +0<=t>>>0)if((h|0)==2){c[j>>2]=(c[j>>2]|0)+p;u=t;v=p;w=n;x=2}else{u=t;v=p;w=n;x=h}else{y=c[k>>2]|0;c[j>>2]=y;c[l>>2]=y;u=c[n+12>>2]|0;v=p-t|0;w=n+8|0;x=h+-1|0}c[w>>2]=(c[w>>2]|0)+v;c[w+4>>2]=u-v;n=w;h=x;o=m}if((q|0)==6){o=c[k>>2]|0;c[a+16>>2]=o+(c[a+48>>2]|0);k=o;c[j>>2]=k;c[l>>2]=k;z=d}else if((q|0)==8){c[a+16>>2]=0;c[j>>2]=0;c[l>>2]=0;c[a>>2]=c[a>>2]|32;if((s|0)==2)z=0;else z=d-(c[r+4>>2]|0)|0}i=e;return z|0}function kp(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0;f=i;i=i+80|0;g=f;c[b+36>>2]=12;if((c[b>> +2]&64|0)==0?(c[g>>2]=c[b+60>>2],c[g+4>>2]=21505,c[g+8>>2]=f+12,(Pa(54,g|0)|0)!=0):0)a[b+75>>0]=-1;g=jp(b,d,e)|0;i=f;return g|0}function lp(b){b=b|0;var d=0,e=0,f=0;d=b+74|0;e=a[d>>0]|0;a[d>>0]=e+255|e;e=c[b>>2]|0;if(!(e&8)){c[b+8>>2]=0;c[b+4>>2]=0;d=c[b+44>>2]|0;c[b+28>>2]=d;c[b+20>>2]=d;c[b+16>>2]=d+(c[b+48>>2]|0);f=0}else{c[b>>2]=e|32;f=-1}return f|0}function mp(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;f=d&255;g=(e|0)!= +0;a:do if(g&(b&3|0)!=0){h=d&255;i=e;j=b;while(1){if((a[j>>0]|0)==h<<24>>24){k=i;l=j;m=6;break a}n=j+1|0;o=i+-1|0;p=(o|0)!=0;if(p&(n&3|0)!=0){i=o;j=n}else{q=o;r=p;s=n;m=5;break}}}else{q=e;r=g;s=b;m=5}while(0);if((m|0)==5)if(r){k=q;l=s;m=6}else{t=0;u=s}b:do if((m|0)==6){s=d&255;if((a[l>>0]|0)==s<<24>>24){t=k;u=l}else{q=_(f,16843009)|0;c:do if(k>>>0>3){r=k;b=l;while(1){g=c[b>>2]^q;if((g&-2139062144^-2139062144)&g+-16843009){v=r;w=b;break}g=b+4|0;e=r+-4|0;if(e>>>0>3){r=e;b=g}else{x=e;y=g;m=11;break c}}z= +v;A=w}else{x=k;y=l;m=11}while(0);if((m|0)==11)if(!x){t=0;u=y;break}else{z=x;A=y}while(1){if((a[A>>0]|0)==s<<24>>24){t=z;u=A;break b}q=A+1|0;z=z+-1|0;if(!z){t=0;u=q;break}else A=q}}}while(0);return((t|0)!=0?u:0)|0}function np(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0;b=a+20|0;d=a+28|0;if((c[b>>2]|0)>>>0>(c[d>>2]|0)>>>0?(lb[c[a+36>>2]&15](a,0,0)|0,(c[b>>2]|0)==0):0)e=-1;else{f=a+4|0;g=c[f>>2]|0;h=a+8|0;i=c[h>>2]|0;if(g>>>0>>0)lb[c[a+40>>2]&15](a,g-i|0,1)|0;c[a+16>>2]=0;c[d>>2]=0;c[b>>2]=0;c[h>>2]= +0;c[f>>2]=0;e=0}return e|0}function op(e,f,g,j,l){e=e|0;f=f|0;g=g|0;j=j|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,x=0,y=0,z=0,A=0,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,$=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,$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,oc=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;m=i;i=i+624|0;n=m+24|0;o=m+16|0;p=m+588|0;q=m+576|0;r=m;s=m+536| +0;t=m+8|0;u=m+528|0;v=(e|0)!=0;w=s+40|0;x=w;y=s+39|0;s=t+4|0;z=q+12|0;A=q+11|0;q=p;B=z;D=B-q|0;E=-2-q|0;F=B+2|0;G=n+288|0;H=p+9|0;I=H;J=p+8|0;K=0;L=f;f=0;M=0;a:while(1){do if((K|0)>-1)if((f|0)>(2147483647-K|0)){c[(Wo()|0)>>2]=75;N=-1;break}else{N=f+K|0;break}else N=K;while(0);O=a[L>>0]|0;if(!(O<<24>>24)){P=N;Q=M;R=245;break}else{S=O;T=L}b:while(1){switch(S<<24>>24){case 37:{U=T;V=T;R=9;break b;break}case 0:{W=T;X=T;break b;break}default:{}}O=T+1|0;S=a[O>>0]|0;T=O}c:do if((R|0)==9)while(1){R=0;if((a[U+ +1>>0]|0)!=37){W=U;X=V;break c}O=V+1|0;Y=U+2|0;if((a[Y>>0]|0)==37){U=Y;V=O;R=9}else{W=Y;X=O;break}}while(0);O=X-L|0;if(v?(c[e>>2]&32|0)==0:0)cp(L,O,e)|0;if((X|0)!=(L|0)){K=N;L=W;f=O;continue}Y=W+1|0;Z=a[Y>>0]|0;$=(Z<<24>>24)+-48|0;if($>>>0<10){aa=(a[W+2>>0]|0)==36;ba=aa?W+3|0:Y;ca=a[ba>>0]|0;da=aa?$:-1;ea=aa?1:M;fa=ba}else{ca=Z;da=-1;ea=M;fa=Y}Y=ca<<24>>24;d:do if((Y&-32|0)==32){Z=Y;ba=ca;aa=0;$=fa;while(1){if(!(1<>24)+-32|aa;ka=$+1|0;la=a[ka>> +0]|0;Z=la<<24>>24;if((Z&-32|0)!=32){ga=la;ha=ja;ia=ka;break}else{ba=la;aa=ja;$=ka}}}else{ga=ca;ha=0;ia=fa}while(0);do if(ga<<24>>24==42){Y=ia+1|0;$=(a[Y>>0]|0)+-48|0;if($>>>0<10?(a[ia+2>>0]|0)==36:0){c[l+($<<2)>>2]=10;ma=1;na=ia+3|0;oa=c[j+((a[Y>>0]|0)+-48<<3)>>2]|0}else{if(ea){pa=-1;break a}if(!v){qa=ha;ra=Y;sa=0;ta=0;break}$=(c[g>>2]|0)+(4-1)&~(4-1);aa=c[$>>2]|0;c[g>>2]=$+4;ma=0;na=Y;oa=aa}if((oa|0)<0){qa=ha|8192;ra=na;sa=ma;ta=0-oa|0}else{qa=ha;ra=na;sa=ma;ta=oa}}else{aa=(ga<<24>>24)+-48|0;if(aa>>> +0<10){Y=ia;$=0;ba=aa;while(1){aa=($*10|0)+ba|0;Z=Y+1|0;ba=(a[Z>>0]|0)+-48|0;if(ba>>>0>=10){ua=aa;va=Z;break}else{Y=Z;$=aa}}if((ua|0)<0){pa=-1;break a}else{qa=ha;ra=va;sa=ea;ta=ua}}else{qa=ha;ra=ia;sa=ea;ta=0}}while(0);e:do if((a[ra>>0]|0)==46){$=ra+1|0;Y=a[$>>0]|0;if(Y<<24>>24!=42){ba=(Y<<24>>24)+-48|0;if(ba>>>0<10){wa=$;xa=0;ya=ba}else{za=$;Aa=0;break}while(1){$=(xa*10|0)+ya|0;ba=wa+1|0;ya=(a[ba>>0]|0)+-48|0;if(ya>>>0>=10){za=ba;Aa=$;break e}else{wa=ba;xa=$}}}$=ra+2|0;ba=(a[$>>0]|0)+-48|0;if(ba>>> +0<10?(a[ra+3>>0]|0)==36:0){c[l+(ba<<2)>>2]=10;za=ra+4|0;Aa=c[j+((a[$>>0]|0)+-48<<3)>>2]|0;break}if(sa){pa=-1;break a}if(v){ba=(c[g>>2]|0)+(4-1)&~(4-1);Y=c[ba>>2]|0;c[g>>2]=ba+4;za=$;Aa=Y}else{za=$;Aa=0}}else{za=ra;Aa=-1}while(0);$=za;Y=0;while(1){ba=(a[$>>0]|0)+-65|0;if(ba>>>0>57){pa=-1;break a}aa=$+1|0;Z=a[10233+(Y*58|0)+ba>>0]|0;ba=Z&255;if((ba+-1|0)>>>0<8){$=aa;Y=ba}else{Ba=aa;Ca=Z;Da=ba;Ea=$;Fa=Y;break}}if(!(Ca<<24>>24)){pa=-1;break}Y=(da|0)>-1;do if(Ca<<24>>24==19)if(Y){pa=-1;break a}else R= +52;else{if(Y){c[l+(da<<2)>>2]=Da;$=j+(da<<3)|0;ba=c[$+4>>2]|0;Z=r;c[Z>>2]=c[$>>2];c[Z+4>>2]=ba;R=52;break}if(!v){pa=0;break a}qp(r,Da,g)}while(0);if((R|0)==52?(R=0,!v):0){K=N;L=Ba;f=O;M=sa;continue}Y=a[Ea>>0]|0;ba=(Fa|0)!=0&(Y&15|0)==3?Y&-33:Y;Y=qa&-65537;Z=(qa&8192|0)==0?qa:Y;f:do switch(ba|0){case 110:{switch(Fa|0){case 0:{c[c[r>>2]>>2]=N;K=N;L=Ba;f=O;M=sa;continue a;break}case 1:{c[c[r>>2]>>2]=N;K=N;L=Ba;f=O;M=sa;continue a;break}case 2:{$=c[r>>2]|0;c[$>>2]=N;c[$+4>>2]=((N|0)<0)<<31>>31;K=N;L= +Ba;f=O;M=sa;continue a;break}case 3:{b[c[r>>2]>>1]=N;K=N;L=Ba;f=O;M=sa;continue a;break}case 4:{a[c[r>>2]>>0]=N;K=N;L=Ba;f=O;M=sa;continue a;break}case 6:{c[c[r>>2]>>2]=N;K=N;L=Ba;f=O;M=sa;continue a;break}case 7:{$=c[r>>2]|0;c[$>>2]=N;c[$+4>>2]=((N|0)<0)<<31>>31;K=N;L=Ba;f=O;M=sa;continue a;break}default:{K=N;L=Ba;f=O;M=sa;continue a}}break}case 112:{Ga=Z|8;Ha=Aa>>>0>8?Aa:8;Ia=120;R=64;break}case 88:case 120:{Ga=Z;Ha=Aa;Ia=ba;R=64;break}case 111:{$=r;aa=c[$>>2]|0;ka=c[$+4>>2]|0;if((aa|0)==0&(ka| +0)==0)Ja=w;else{$=w;ja=aa;aa=ka;while(1){ka=$+-1|0;a[ka>>0]=ja&7|48;ja=Ap(ja|0,aa|0,3)|0;aa=C;if((ja|0)==0&(aa|0)==0){Ja=ka;break}else $=ka}}if(!(Z&8)){Ka=Ja;La=Z;Ma=Aa;Na=0;Oa=10713;R=77}else{$=x-Ja+1|0;Ka=Ja;La=Z;Ma=(Aa|0)<($|0)?$:Aa;Na=0;Oa=10713;R=77}break}case 105:case 100:{$=r;aa=c[$>>2]|0;ja=c[$+4>>2]|0;if((ja|0)<0){$=wp(0,0,aa|0,ja|0)|0;ka=C;la=r;c[la>>2]=$;c[la+4>>2]=ka;Pa=$;Qa=ka;Ra=1;Sa=10713;R=76;break f}if(!(Z&2048)){ka=Z&1;Pa=aa;Qa=ja;Ra=ka;Sa=(ka|0)==0?10713:10715;R=76}else{Pa=aa;Qa= +ja;Ra=1;Sa=10714;R=76}break}case 117:{ja=r;Pa=c[ja>>2]|0;Qa=c[ja+4>>2]|0;Ra=0;Sa=10713;R=76;break}case 99:{a[y>>0]=c[r>>2];Ta=y;Ua=Y;Va=1;Wa=0;Xa=10713;Ya=w;break}case 109:{Za=Vo(c[(Wo()|0)>>2]|0)|0;R=82;break}case 115:{ja=c[r>>2]|0;Za=(ja|0)!=0?ja:10723;R=82;break}case 67:{c[t>>2]=c[r>>2];c[s>>2]=0;c[r>>2]=t;_a=-1;R=86;break}case 83:{if(!Aa){sp(e,32,ta,0,Z);$a=0;R=98}else{_a=Aa;R=86}break}case 65:case 71:case 70:case 69:case 97:case 103:case 102:case 101:{ab=+h[r>>3];c[o>>2]=0;h[k>>3]=ab;if((c[k+ +4>>2]|0)>=0)if(!(Z&2048)){ja=Z&1;bb=ab;cb=ja;db=(ja|0)==0?10731:10736}else{bb=ab;cb=1;db=10733}else{bb=-ab;cb=1;db=10730}h[k>>3]=bb;ja=c[k+4>>2]&2146435072;do if(ja>>>0<2146435072|(ja|0)==2146435072&0<0){ab=+Zo(bb,o)*2;aa=ab!=0;if(aa)c[o>>2]=(c[o>>2]|0)+-1;ka=ba|32;if((ka|0)==97){$=ba&32;la=($|0)==0?db:db+9|0;eb=cb|2;fb=12-Aa|0;do if(!(Aa>>>0>11|(fb|0)==0)){gb=fb;hb=8;while(1){gb=gb+-1|0;ib=hb*16;if(!gb){jb=ib;break}else hb=ib}if((a[la>>0]|0)==45){kb=-(jb+(-ab-jb));break}else{kb=ab+jb-jb;break}}else kb= +ab;while(0);fb=c[o>>2]|0;gb=(fb|0)<0?0-fb|0:fb;lb=rp(gb,((gb|0)<0)<<31>>31,z)|0;if((lb|0)==(z|0)){a[A>>0]=48;mb=A}else mb=lb;a[mb+-1>>0]=(fb>>31&2)+43;fb=mb+-2|0;a[fb>>0]=ba+15;lb=(Aa|0)<1;gb=(Z&8|0)==0;hb=kb;nb=p;while(1){ob=~~hb;pb=nb+1|0;a[nb>>0]=d[10697+ob>>0]|$;hb=(hb-+(ob|0))*16;do if((pb-q|0)==1){if(gb&(lb&hb==0)){qb=pb;break}a[pb>>0]=46;qb=nb+2|0}else qb=pb;while(0);if(!(hb!=0)){rb=qb;break}else nb=qb}nb=rb;lb=(Aa|0)!=0&(E+nb|0)<(Aa|0)?F+Aa-fb|0:D-fb+nb|0;gb=lb+eb|0;sp(e,32,ta,gb,Z);if(!(c[e>> +2]&32))cp(la,eb,e)|0;sp(e,48,ta,gb,Z^65536);$=nb-q|0;if(!(c[e>>2]&32))cp(p,$,e)|0;nb=B-fb|0;sp(e,48,lb-($+nb)|0,0,0);if(!(c[e>>2]&32))cp(fb,nb,e)|0;sp(e,32,ta,gb,Z^8192);sb=(gb|0)<(ta|0)?ta:gb;break}gb=(Aa|0)<0?6:Aa;if(aa){nb=(c[o>>2]|0)+-28|0;c[o>>2]=nb;tb=ab*268435456;ub=nb}else{tb=ab;ub=c[o>>2]|0}nb=(ub|0)<0?n:G;$=nb;hb=tb;lb=nb;while(1){pb=~~hb>>>0;c[lb>>2]=pb;ob=lb+4|0;hb=(hb-+(pb>>>0))*1E9;if(!(hb!=0)){vb=ob;break}else lb=ob}lb=c[o>>2]|0;if((lb|0)>0){aa=lb;fb=nb;eb=vb;while(1){la=(aa|0)>29? +29:aa;ob=eb+-4|0;do if(ob>>>0>>0)wb=fb;else{pb=0;xb=ob;while(1){yb=yp(c[xb>>2]|0,0,la|0)|0;zb=zp(yb|0,C|0,pb|0,0)|0;yb=C;Ab=Kp(zb|0,yb|0,1E9,0)|0;c[xb>>2]=Ab;Ab=Jp(zb|0,yb|0,1E9,0)|0;xb=xb+-4|0;if(xb>>>0>>0){Bb=Ab;break}else pb=Ab}if(!Bb){wb=fb;break}pb=fb+-4|0;c[pb>>2]=Bb;wb=pb}while(0);ob=eb;while(1){if(ob>>>0<=wb>>>0){Cb=ob;break}pb=ob+-4|0;if(!(c[pb>>2]|0))ob=pb;else{Cb=ob;break}}ob=(c[o>>2]|0)-la|0;c[o>>2]=ob;if((ob|0)>0){aa=ob;fb=wb;eb=Cb}else{Db=ob;Eb=wb;Fb=Cb;break}}}else{Db=lb;Eb= +nb;Fb=vb}if((Db|0)<0){eb=((gb+25|0)/9|0)+1|0;fb=(ka|0)==102;aa=Db;ob=Eb;pb=Fb;while(1){xb=0-aa|0;Ab=(xb|0)>9?9:xb;do if(ob>>>0>>0){xb=(1<>>Ab;zb=0;Gb=ob;while(1){Hb=c[Gb>>2]|0;c[Gb>>2]=(Hb>>>Ab)+zb;Ib=_(Hb&xb,yb)|0;Gb=Gb+4|0;if(Gb>>>0>=pb>>>0){Jb=Ib;break}else zb=Ib}zb=(c[ob>>2]|0)==0?ob+4|0:ob;if(!Jb){Kb=zb;Lb=pb;break}c[pb>>2]=Jb;Kb=zb;Lb=pb+4|0}else{Kb=(c[ob>>2]|0)==0?ob+4|0:ob;Lb=pb}while(0);la=fb?nb:Kb;zb=(Lb-la>>2|0)>(eb|0)?la+(eb<<2)|0:Lb;aa=(c[o>>2]|0)+Ab|0;c[o>>2]=aa; +if((aa|0)>=0){Mb=Kb;Nb=zb;break}else{ob=Kb;pb=zb}}}else{Mb=Eb;Nb=Fb}do if(Mb>>>0>>0){pb=($-Mb>>2)*9|0;ob=c[Mb>>2]|0;if(ob>>>0<10){Ob=pb;break}else{Pb=pb;Qb=10}while(1){Qb=Qb*10|0;pb=Pb+1|0;if(ob>>>0>>0){Ob=pb;break}else Pb=pb}}else Ob=0;while(0);ob=(ka|0)==103;Ab=(gb|0)!=0;pb=gb-((ka|0)!=102?Ob:0)+((Ab&ob)<<31>>31)|0;if((pb|0)<(((Nb-$>>2)*9|0)+-9|0)){aa=pb+9216|0;pb=(aa|0)/9|0;eb=nb+(pb+-1023<<2)|0;fb=((aa|0)%9|0)+1|0;if((fb|0)<9){aa=10;lb=fb;while(1){fb=aa*10|0;lb=lb+1|0;if((lb|0)==9){Rb= +fb;break}else aa=fb}}else Rb=10;aa=c[eb>>2]|0;lb=(aa>>>0)%(Rb>>>0)|0;if((lb|0)==0?(nb+(pb+-1022<<2)|0)==(Nb|0):0){Sb=Mb;Tb=eb;Ub=Ob}else R=163;do if((R|0)==163){R=0;hb=(((aa>>>0)/(Rb>>>0)|0)&1|0)==0?9007199254740992:9007199254740994;ka=(Rb|0)/2|0;do if(lb>>>0>>0)Vb=.5;else{if((lb|0)==(ka|0)?(nb+(pb+-1022<<2)|0)==(Nb|0):0){Vb=1;break}Vb=1.5}while(0);do if(!cb){Wb=hb;Xb=Vb}else{if((a[db>>0]|0)!=45){Wb=hb;Xb=Vb;break}Wb=-hb;Xb=-Vb}while(0);ka=aa-lb|0;c[eb>>2]=ka;if(!(Wb+Xb!=Wb)){Sb=Mb;Tb=eb;Ub=Ob; +break}fb=ka+Rb|0;c[eb>>2]=fb;if(fb>>>0>999999999){fb=Mb;ka=eb;while(1){zb=ka+-4|0;c[ka>>2]=0;if(zb>>>0>>0){la=fb+-4|0;c[la>>2]=0;Yb=la}else Yb=fb;la=(c[zb>>2]|0)+1|0;c[zb>>2]=la;if(la>>>0>999999999){fb=Yb;ka=zb}else{Zb=Yb;_b=zb;break}}}else{Zb=Mb;_b=eb}ka=($-Zb>>2)*9|0;fb=c[Zb>>2]|0;if(fb>>>0<10){Sb=Zb;Tb=_b;Ub=ka;break}else{$b=ka;ac=10}while(1){ac=ac*10|0;ka=$b+1|0;if(fb>>>0>>0){Sb=Zb;Tb=_b;Ub=ka;break}else $b=ka}}while(0);eb=Tb+4|0;bc=Sb;cc=Ub;dc=Nb>>>0>eb>>>0?eb:Nb}else{bc=Mb;cc=Ob;dc= +Nb}eb=0-cc|0;lb=dc;while(1){if(lb>>>0<=bc>>>0){ec=0;fc=lb;break}aa=lb+-4|0;if(!(c[aa>>2]|0))lb=aa;else{ec=1;fc=lb;break}}do if(ob){lb=(Ab&1^1)+gb|0;if((lb|0)>(cc|0)&(cc|0)>-5){gc=ba+-1|0;hc=lb+-1-cc|0}else{gc=ba+-2|0;hc=lb+-1|0}lb=Z&8;if(lb){ic=gc;jc=hc;kc=lb;break}do if(ec){lb=c[fc+-4>>2]|0;if(!lb){lc=9;break}if(!((lb>>>0)%10|0)){mc=10;nc=0}else{lc=0;break}while(1){mc=mc*10|0;aa=nc+1|0;if((lb>>>0)%(mc>>>0)|0){lc=aa;break}else nc=aa}}else lc=9;while(0);lb=((fc-$>>2)*9|0)+-9|0;if((gc|32|0)==102){aa= +lb-lc|0;pb=(aa|0)<0?0:aa;ic=gc;jc=(hc|0)<(pb|0)?hc:pb;kc=0;break}else{pb=lb+cc-lc|0;lb=(pb|0)<0?0:pb;ic=gc;jc=(hc|0)<(lb|0)?hc:lb;kc=0;break}}else{ic=ba;jc=gb;kc=Z&8}while(0);gb=jc|kc;$=(gb|0)!=0&1;Ab=(ic|32|0)==102;if(Ab){oc=(cc|0)>0?cc:0;pc=0}else{ob=(cc|0)<0?eb:cc;lb=rp(ob,((ob|0)<0)<<31>>31,z)|0;if((B-lb|0)<2){ob=lb;while(1){pb=ob+-1|0;a[pb>>0]=48;if((B-pb|0)<2)ob=pb;else{qc=pb;break}}}else qc=lb;a[qc+-1>>0]=(cc>>31&2)+43;ob=qc+-2|0;a[ob>>0]=ic;oc=B-ob|0;pc=ob}ob=cb+1+jc+$+oc|0;sp(e,32,ta,ob, +Z);if(!(c[e>>2]&32))cp(db,cb,e)|0;sp(e,48,ta,ob,Z^65536);do if(Ab){eb=bc>>>0>nb>>>0?nb:bc;pb=eb;while(1){aa=rp(c[pb>>2]|0,0,H)|0;do if((pb|0)==(eb|0)){if((aa|0)!=(H|0)){rc=aa;break}a[J>>0]=48;rc=J}else{if(aa>>>0>p>>>0)sc=aa;else{rc=aa;break}while(1){fb=sc+-1|0;a[fb>>0]=48;if(fb>>>0>p>>>0)sc=fb;else{rc=fb;break}}}while(0);if(!(c[e>>2]&32))cp(rc,I-rc|0,e)|0;aa=pb+4|0;if(aa>>>0>nb>>>0){tc=aa;break}else pb=aa}do if(gb){if(c[e>>2]&32)break;cp(10765,1,e)|0}while(0);if((jc|0)>0&tc>>>0>>0){pb=jc;eb=tc; +while(1){aa=rp(c[eb>>2]|0,0,H)|0;if(aa>>>0>p>>>0){fb=aa;while(1){ka=fb+-1|0;a[ka>>0]=48;if(ka>>>0>p>>>0)fb=ka;else{uc=ka;break}}}else uc=aa;if(!(c[e>>2]&32))cp(uc,(pb|0)>9?9:pb,e)|0;eb=eb+4|0;fb=pb+-9|0;if(!((pb|0)>9&eb>>>0>>0)){vc=fb;break}else pb=fb}}else vc=jc;sp(e,48,vc+9|0,9,0)}else{pb=ec?fc:bc+4|0;if((jc|0)>-1){eb=(kc|0)==0;fb=jc;ka=bc;while(1){zb=rp(c[ka>>2]|0,0,H)|0;if((zb|0)==(H|0)){a[J>>0]=48;wc=J}else wc=zb;do if((ka|0)==(bc|0)){zb=wc+1|0;if(!(c[e>>2]&32))cp(wc,1,e)|0;if(eb&(fb|0)< +1){xc=zb;break}if(c[e>>2]&32){xc=zb;break}cp(10765,1,e)|0;xc=zb}else{if(wc>>>0>p>>>0)yc=wc;else{xc=wc;break}while(1){zb=yc+-1|0;a[zb>>0]=48;if(zb>>>0>p>>>0)yc=zb;else{xc=zb;break}}}while(0);aa=I-xc|0;if(!(c[e>>2]&32))cp(xc,(fb|0)>(aa|0)?aa:fb,e)|0;zb=fb-aa|0;ka=ka+4|0;if(!(ka>>>0>>0&(zb|0)>-1)){zc=zb;break}else fb=zb}}else zc=jc;sp(e,48,zc+18|0,18,0);if(c[e>>2]&32)break;cp(pc,B-pc|0,e)|0}while(0);sp(e,32,ta,ob,Z^8192);sb=(ob|0)<(ta|0)?ta:ob}else{gb=(ba&32|0)!=0;nb=bb!=bb|0!=0;Ab=nb?0:cb;$=Ab+ +3|0;sp(e,32,ta,$,Y);lb=c[e>>2]|0;if(!(lb&32)){cp(db,Ab,e)|0;Ac=c[e>>2]|0}else Ac=lb;if(!(Ac&32))cp(nb?gb?10757:10761:gb?10749:10753,3,e)|0;sp(e,32,ta,$,Z^8192);sb=($|0)<(ta|0)?ta:$}while(0);K=N;L=Ba;f=sb;M=sa;continue a;break}default:{Ta=L;Ua=Z;Va=Aa;Wa=0;Xa=10713;Ya=w}}while(0);g:do if((R|0)==64){R=0;ba=r;O=c[ba>>2]|0;ja=c[ba+4>>2]|0;ba=Ia&32;if(!((O|0)==0&(ja|0)==0)){$=w;gb=O;O=ja;while(1){ja=$+-1|0;a[ja>>0]=d[10697+(gb&15)>>0]|ba;gb=Ap(gb|0,O|0,4)|0;O=C;if((gb|0)==0&(O|0)==0){Bc=ja;break}else $= +ja}$=r;if((Ga&8|0)==0|(c[$>>2]|0)==0&(c[$+4>>2]|0)==0){Ka=Bc;La=Ga;Ma=Ha;Na=0;Oa=10713;R=77}else{Ka=Bc;La=Ga;Ma=Ha;Na=2;Oa=10713+(Ia>>4)|0;R=77}}else{Ka=w;La=Ga;Ma=Ha;Na=0;Oa=10713;R=77}}else if((R|0)==76){R=0;Ka=rp(Pa,Qa,w)|0;La=Z;Ma=Aa;Na=Ra;Oa=Sa;R=77}else if((R|0)==82){R=0;$=mp(Za,0,Aa)|0;O=($|0)==0;Ta=Za;Ua=Y;Va=O?Aa:$-Za|0;Wa=0;Xa=10713;Ya=O?Za+Aa|0:$}else if((R|0)==86){R=0;$=0;O=0;gb=c[r>>2]|0;while(1){ba=c[gb>>2]|0;if(!ba){Cc=$;Dc=O;break}ja=$o(u,ba)|0;if((ja|0)<0|ja>>>0>(_a-$|0)>>>0){Cc= +$;Dc=ja;break}ba=ja+$|0;if(_a>>>0>ba>>>0){$=ba;O=ja;gb=gb+4|0}else{Cc=ba;Dc=ja;break}}if((Dc|0)<0){pa=-1;break a}sp(e,32,ta,Cc,Z);if(!Cc){$a=0;R=98}else{gb=0;O=c[r>>2]|0;while(1){$=c[O>>2]|0;if(!$){$a=Cc;R=98;break g}ja=$o(u,$)|0;gb=ja+gb|0;if((gb|0)>(Cc|0)){$a=Cc;R=98;break g}if(!(c[e>>2]&32))cp(u,ja,e)|0;if(gb>>>0>=Cc>>>0){$a=Cc;R=98;break}else O=O+4|0}}}while(0);if((R|0)==98){R=0;sp(e,32,ta,$a,Z^8192);K=N;L=Ba;f=(ta|0)>($a|0)?ta:$a;M=sa;continue}if((R|0)==77){R=0;Y=(Ma|0)>-1?La&-65537:La;O=r;gb= +(c[O>>2]|0)!=0|(c[O+4>>2]|0)!=0;if((Ma|0)!=0|gb){O=(gb&1^1)+(x-Ka)|0;Ta=Ka;Ua=Y;Va=(Ma|0)>(O|0)?Ma:O;Wa=Na;Xa=Oa;Ya=w}else{Ta=w;Ua=Y;Va=0;Wa=Na;Xa=Oa;Ya=w}}Y=Ya-Ta|0;O=(Va|0)<(Y|0)?Y:Va;gb=Wa+O|0;ja=(ta|0)<(gb|0)?gb:ta;sp(e,32,ja,gb,Ua);if(!(c[e>>2]&32))cp(Xa,Wa,e)|0;sp(e,48,ja,gb,Ua^65536);sp(e,48,O,Y,0);if(!(c[e>>2]&32))cp(Ta,Y,e)|0;sp(e,32,ja,gb,Ua^8192);K=N;L=Ba;f=ja;M=sa}h:do if((R|0)==245)if(!e)if(Q){sa=1;while(1){M=c[l+(sa<<2)>>2]|0;if(!M){Ec=sa;break}qp(j+(sa<<3)|0,M,g);sa=sa+1|0;if((sa|0)>= +10){pa=1;break h}}if((Ec|0)<10){sa=Ec;while(1){if(c[l+(sa<<2)>>2]|0){pa=-1;break h}sa=sa+1|0;if((sa|0)>=10){pa=1;break}}}else pa=1}else pa=0;else pa=P;while(0);i=m;return pa|0}function pp(a){a=a|0;if(!(c[a+68>>2]|0))fp(a);return}function qp(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,i=0,j=0;a:do if(b>>>0<=20){do switch(b|0){case 9:{e=(c[d>>2]|0)+(4-1)&~(4-1);f=c[e>>2]|0;c[d>>2]=e+4;c[a>>2]=f;break a;break}case 10:{f=(c[d>>2]|0)+(4-1)&~(4-1);e=c[f>>2]|0;c[d>>2]=f+4;f=a;c[f>>2]=e;c[f+4>>2]=((e|0)<0)<< +31>>31;break a;break}case 11:{e=(c[d>>2]|0)+(4-1)&~(4-1);f=c[e>>2]|0;c[d>>2]=e+4;e=a;c[e>>2]=f;c[e+4>>2]=0;break a;break}case 12:{e=(c[d>>2]|0)+(8-1)&~(8-1);f=e;g=c[f>>2]|0;i=c[f+4>>2]|0;c[d>>2]=e+8;e=a;c[e>>2]=g;c[e+4>>2]=i;break a;break}case 13:{i=(c[d>>2]|0)+(4-1)&~(4-1);e=c[i>>2]|0;c[d>>2]=i+4;i=(e&65535)<<16>>16;e=a;c[e>>2]=i;c[e+4>>2]=((i|0)<0)<<31>>31;break a;break}case 14:{i=(c[d>>2]|0)+(4-1)&~(4-1);e=c[i>>2]|0;c[d>>2]=i+4;i=a;c[i>>2]=e&65535;c[i+4>>2]=0;break a;break}case 15:{i=(c[d>>2]| +0)+(4-1)&~(4-1);e=c[i>>2]|0;c[d>>2]=i+4;i=(e&255)<<24>>24;e=a;c[e>>2]=i;c[e+4>>2]=((i|0)<0)<<31>>31;break a;break}case 16:{i=(c[d>>2]|0)+(4-1)&~(4-1);e=c[i>>2]|0;c[d>>2]=i+4;i=a;c[i>>2]=e&255;c[i+4>>2]=0;break a;break}case 17:{i=(c[d>>2]|0)+(8-1)&~(8-1);j=+h[i>>3];c[d>>2]=i+8;h[a>>3]=j;break a;break}case 18:{i=(c[d>>2]|0)+(8-1)&~(8-1);j=+h[i>>3];c[d>>2]=i+8;h[a>>3]=j;break a;break}default:break a}while(0)}while(0);return}function rp(b,c,d){b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0; +if(c>>>0>0|(c|0)==0&b>>>0>4294967295){e=d;f=b;g=c;while(1){c=Kp(f|0,g|0,10,0)|0;h=e+-1|0;a[h>>0]=c|48;c=Jp(f|0,g|0,10,0)|0;if(g>>>0>9|(g|0)==9&f>>>0>4294967295){e=h;f=c;g=C}else{i=h;j=c;break}}k=i;l=j}else{k=d;l=b}if(!l)m=k;else{b=k;k=l;while(1){l=b+-1|0;a[l>>0]=(k>>>0)%10|0|48;if(k>>>0<10){m=l;break}else{b=l;k=(k>>>0)/10|0}}}return m|0}function sp(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;g=i;i=i+256|0;h=g;do if((d|0)>(e|0)&(f&73728|0)==0){j=d-e|0;xp(h| +0,b|0,(j>>>0>256?256:j)|0)|0;k=c[a>>2]|0;l=(k&32|0)==0;if(j>>>0>255){m=d-e|0;n=j;o=k;k=l;while(1){if(k){cp(h,256,a)|0;p=c[a>>2]|0}else p=o;n=n+-256|0;k=(p&32|0)==0;if(n>>>0<=255)break;else o=p}if(k)q=m&255;else break}else if(l)q=j;else break;cp(h,q,a)|0}while(0);i=g;return}function tp(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,xa=0,ya=0,za=0,Aa=0,Ba=0,Da=0,Ea=0,Fa=0,Ga=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;do if(a>>>0<245){b=a>>>0<11?16:a+11&-8;d=b>>>3;e=c[720]|0;f=e>>>d;if(f&3){g=(f&1^1)+d|0;h=g<<1;i=2920+(h<<2)|0;j=2920+(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[724]|0)>>>0)wa();m=l+12|0;if((c[m>>2]|0)==(h|0)){c[m>>2]=i;c[j>>2]=l;break}else wa()}else c[720]= +e&~(1<>2]=l|3;j=h+(l|4)|0;c[j>>2]=c[j>>2]|1;n=k;return n|0}j=c[722]|0;if(b>>>0>j>>>0){if(f){l=2<>>12&16;m=l>>>i;l=m>>>5&8;o=m>>>l;m=o>>>2&4;p=o>>>m;o=p>>>1&2;q=p>>>o;p=q>>>1&1;r=(l|i|m|o|p)+(q>>>p)|0;p=r<<1;q=2920+(p<<2)|0;o=2920+(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[724]|0)>>>0)wa();l=i+12|0;if((c[l>>2]|0)==(p|0)){c[l>>2]=q;c[o>>2]=i;s=c[722]|0;break}else wa()}else{c[720]=e&~(1<>2]=b|3;i=p+b|0;c[p+(b|4)>>2]=e|1;c[p+j>>2]=e;if(s){j=c[725]|0;o=s>>>3;q=o<<1;d=2920+(q<<2)|0;f=c[720]|0;k=1<>2]|0;if(h>>>0<(c[724]|0)>>>0)wa();else{t=o;u=h}}else{c[720]=f|k;t=2920+(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[722]=e;c[725]=i;n=m;return n|0}i=c[721]|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[3184+((e|i|d|j|q)+(k>>>q)<<2)>>2]|0;q=(c[f+4>>2]&-8)- +b|0;k=f;j=f;while(1){f=c[k+16>>2]|0;if(!f){d=c[k+20>>2]|0;if(!d){v=q;w=j;break}else x=d}else x=f;f=(c[x+4>>2]&-8)-b|0;d=f>>>0>>0;q=d?f:q;k=x;j=d?x:j}j=c[724]|0;if(w>>>0>>0)wa();k=w+b|0;if(w>>>0>=k>>>0)wa();q=c[w+24>>2]|0;m=c[w+12>>2]|0;do if((m|0)==(w|0)){p=w+20|0;r=c[p>>2]|0;if(!r){d=w+16|0;f=c[d>>2]|0;if(!f){y=0;break}else{z=f;A=d}}else{z=r;A=p}while(1){p=z+20|0;r=c[p>>2]|0;if(r){z=r;A=p;continue}p=z+16|0;r=c[p>>2]|0;if(!r){B=z;C=A;break}else{z=r;A=p}}if(C>>>0>>0)wa();else{c[C>>2]=0;y= +B;break}}else{p=c[w+8>>2]|0;if(p>>>0>>0)wa();r=p+12|0;if((c[r>>2]|0)!=(w|0))wa();d=m+8|0;if((c[d>>2]|0)==(w|0)){c[r>>2]=m;c[d>>2]=p;y=m;break}else wa()}while(0);do if(q){m=c[w+28>>2]|0;j=3184+(m<<2)|0;if((w|0)==(c[j>>2]|0)){c[j>>2]=y;if(!y){c[721]=c[721]&~(1<>>0<(c[724]|0)>>>0)wa();m=q+16|0;if((c[m>>2]|0)==(w|0))c[m>>2]=y;else c[q+20>>2]=y;if(!y)break}m=c[724]|0;if(y>>>0>>0)wa();c[y+24>>2]=q;j=c[w+16>>2]|0;do if(j)if(j>>>0>>0)wa();else{c[y+16>>2]=j;c[j+24>>2]=y;break}while(0); +j=c[w+20>>2]|0;if(j)if(j>>>0<(c[724]|0)>>>0)wa();else{c[y+20>>2]=j;c[j+24>>2]=y;break}}while(0);if(v>>>0<16){q=v+b|0;c[w+4>>2]=q|3;j=w+(q+4)|0;c[j>>2]=c[j>>2]|1}else{c[w+4>>2]=b|3;c[w+(b|4)>>2]=v|1;c[w+(v+b)>>2]=v;j=c[722]|0;if(j){q=c[725]|0;m=j>>>3;j=m<<1;p=2920+(j<<2)|0;d=c[720]|0;r=1<>2]|0;if(f>>>0<(c[724]|0)>>>0)wa();else{D=m;E=f}}else{c[720]=d|r;D=2920+(j+2<<2)|0;E=p}c[D>>2]=q;c[E+12>>2]=q;c[q+8>>2]=E;c[q+12>>2]=p}c[722]=v;c[725]=k}n=w+8|0;return n|0}else F= +b}else F=b}else if(a>>>0<=4294967231){p=a+11|0;q=p&-8;j=c[721]|0;if(j){r=0-q|0;d=p>>>8;if(d)if(q>>>0>16777215)G=31;else{p=(d+1048320|0)>>>16&8;f=d<>>16&4;m=f<>>16&2;i=14-(d|p|f)+(m<>>15)|0;G=q>>>(i+7|0)&1|i<<1}else G=0;i=c[3184+(G<<2)>>2]|0;a:do if(!i){H=r;I=0;J=0;K=86}else{f=r;m=0;p=q<<((G|0)==31?0:25-(G>>>1)|0);d=i;e=0;while(1){h=c[d+4>>2]&-8;o=h-q|0;if(o>>>0>>0)if((h|0)==(q|0)){L=o;M=d;N=d;K=90;break a}else{O=o;P=d}else{O=f;P=e}o=c[d+20>>2]|0;d=c[d+16+ +(p>>>31<<2)>>2]|0;h=(o|0)==0|(o|0)==(d|0)?m:o;if(!d){H=O;I=h;J=P;K=86;break}else{f=O;m=h;p=p<<1;e=P}}}while(0);if((K|0)==86){if((I|0)==0&(J|0)==0){i=2<>>12&16;b=i>>>r;i=b>>>5&8;k=b>>>i;b=k>>>2&4;e=k>>>b;k=e>>>1&2;p=e>>>k;e=p>>>1&1;Q=c[3184+((i|r|b|k|e)+(p>>>e)<<2)>>2]|0;R=0}else{Q=I;R=J}if(!Q){S=H;T=R}else{L=H;M=Q;N=R;K=90}}if((K|0)==90)while(1){K=0;e=(c[M+4>>2]&-8)-q|0;p=e>>>0>>0;k=p?e:L;e=p?M:N;p=c[M+16>>2]|0;if(p){L=k;M=p;N=e;K=90;continue}M= +c[M+20>>2]|0;if(!M){S=k;T=e;break}else{L=k;N=e;K=90}}if((T|0)!=0?S>>>0<((c[722]|0)-q|0)>>>0:0){j=c[724]|0;if(T>>>0>>0)wa();e=T+q|0;if(T>>>0>=e>>>0)wa();k=c[T+24>>2]|0;p=c[T+12>>2]|0;do if((p|0)==(T|0)){b=T+20|0;r=c[b>>2]|0;if(!r){i=T+16|0;m=c[i>>2]|0;if(!m){U=0;break}else{V=m;W=i}}else{V=r;W=b}while(1){b=V+20|0;r=c[b>>2]|0;if(r){V=r;W=b;continue}b=V+16|0;r=c[b>>2]|0;if(!r){X=V;Y=W;break}else{V=r;W=b}}if(Y>>>0>>0)wa();else{c[Y>>2]=0;U=X;break}}else{b=c[T+8>>2]|0;if(b>>>0>>0)wa();r=b+12|0; +if((c[r>>2]|0)!=(T|0))wa();i=p+8|0;if((c[i>>2]|0)==(T|0)){c[r>>2]=p;c[i>>2]=b;U=p;break}else wa()}while(0);do if(k){p=c[T+28>>2]|0;j=3184+(p<<2)|0;if((T|0)==(c[j>>2]|0)){c[j>>2]=U;if(!U){c[721]=c[721]&~(1<>>0<(c[724]|0)>>>0)wa();p=k+16|0;if((c[p>>2]|0)==(T|0))c[p>>2]=U;else c[k+20>>2]=U;if(!U)break}p=c[724]|0;if(U>>>0