Quick experiment with LiquidFun from google.github.io/liquidfun/
Exports as a 60 FPS GIF of the same duration as the simulation time.
Log in to post a comment.
// LL 2021
// Using LiquidFun.js
const simulate_seconds = 2; // min=0 max=10 step=.01
const volume = 10; // min=0 max=20 step=0.1
const draw_style = 0; // min=0 max=3 step=1 (Circles,Trace,Contour,Filled contour)
const precision = 500; // min=10 max=1500 step=1
if (draw_style==1) Canvas.setpenopacity(.02);
const turtle = new Turtle();
function walk(i, t) {
if (i==0 && (t==0 || t==1)) {
const gravity = new b2Vec2(0, -10);
world = new b2World(gravity);
test = new TestImpulse;
done_iterations = 0;
}
if (i==0) contour_i = 0;
if (done_iterations < simulate_seconds * 60 * t) {
world.Step(timeStep, velocityIterations, positionIterations);
done_iterations++;
if (draw_style==1) draw();
return true;
}
if (draw_style < 2) {
draw();
return false;
}
return contour(contour_i++, getWater);
}
// p: 2D point in -100 to 100 range
function getWater(in_p2) {
for (var j = 0, jcount = world.particleSystems.length; j < jcount; j++) {
var particles = world.particleSystems[j].GetPositionBuffer();
const r = 1.5;
for (var i = 0, icount = particles.length; i < icount; i += 2) {
const x = particles[i] * 48 - 48;
const y = -particles[i+1] * 48 + 48;
const dist = Math.hypot(in_p2[0] - x, in_p2[1] - y);
if (dist < r) return 2 + (draw_style == 3 ? (Math.random() > 0.5) : 0);
}
}
return 0;
}
function draw() {
for (var i = 0, max = world.bodies.length; i < max; i++) {
var body = world.bodies[i];
var maxFixtures = body.fixtures.length;
var transform = body.GetTransform();
for (var j = 0; j < maxFixtures; j++) {
var fixture = body.fixtures[j];
//fixture.shape.draw(transform);
}
}
for (var i = 0, max = world.particleSystems.length; i < max; i++) {
drawParticleSystem(world.particleSystems[i]);
}
};
function drawParticleSystem(system) {
var particles = system.GetPositionBuffer();
var maxParticles = particles.length;
const r = 1;
for (var i = 0; i < maxParticles; i += 2) {
const x = particles[i] * 48 - 48;
const y = -particles[i+1] * 48 + 48;
turtle.jump(x, y-r);
turtle.circle(r, 0, 10);
}
}
var world = null;
var camera;
var timeStep = 1.0 / 60.0;
var velocityIterations = 8;
var positionIterations = 3;
function TestImpulse() {
this.boxLeft = -2;
this.boxRight = 2;
this.boxBottom = -2;
this.boxTop = 40;
var bd = new b2BodyDef;
var ground = world.CreateBody(bd);
var shape = new b2ChainShape;
shape.vertices.push(new b2Vec2(this.boxLeft, this.boxBottom));
shape.vertices.push(new b2Vec2(this.boxRight, this.boxBottom));
shape.vertices.push(new b2Vec2(this.boxRight,this.boxTop));
shape.vertices.push(new b2Vec2(this.boxLeft, this.boxTop));
shape.CreateLoop();
ground.CreateFixtureFromShape(shape, 0.0);
var psd = new b2ParticleSystemDef();
psd.radius = 0.025;
psd.damping = 0.2;
this.particleSystem = world.CreateParticleSystem(psd);
shape = new b2PolygonShape ;
shape.SetAsBoxXYCenterAngle(0.2, volume, new b2Vec2(0.0, volume + .01), 0);
var pd = new b2ParticleGroupDef;
pd.shape = shape;
this.group = this.particleSystem.CreateParticleGroup(pd);
}
//////////////////////////////////////////
// Contour utility by Lionel Lemarie 2021
// https://turtletoy.net/turtle/765d77abf4
function contour(i, zFunc) {
if (i == 0) { cache = {}; }
const r = 100 / precision;
if (i >= precision*precision) return false;
const xx = i % precision;
const yy = (i / precision) | 0;
const ci00 = (xx-1) + (yy-1) * precision;
const ci01 = (xx-0) + (yy-1) * precision;
const ci10 = (xx-1) + (yy-0) * precision;
const ci11 = (xx-0) + (yy-0) * precision;
const x0 = ((xx-1) / precision - 0.5) * 200;
const y0 = ((yy-1) / precision - 0.5) * 200;
const x1 = ((xx-0) / precision - 0.5) * 200;
const y1 = ((yy-0) / precision - 0.5) * 200;
const z00 = cache[ci00], z01 = cache[ci01], z10 = cache[ci10];
const z11 = cache[ci11] = zFunc([x1, y1]);
var lines = [];
// A bit like marching cubes
if (z00 != z01 && z00 != z10 && z00 != z11) lines = [[[1,0],[0,1]],[[0,1],[1,2]],[[1,2],[2,1]],[[2,1],[1,0]]];
if (z00 == z01 && z00 == z10 && z00 != z11) lines = [[[2,1],[1,2]]];
if (z00 == z01 && z00 == z11 && z00 != z10) lines = [[[0,1],[1,2]]];
if (z00 == z01 && z10 == z11 && z00 != z10) lines = [[[0,1],[2,1]]];
if (z00 == z10 && z00 == z11 && z00 != z01) lines = [[[1,0],[2,1]]];
if (z00 == z10 && z01 == z11 && z00 != z01) lines = [[[1,0],[1,2]]];
if (z00 == z11 && z01 == z10 && z00 != z01) lines = [[[1,0],[0,1]],[[2,1],[1,2]]];
if (z01 == z10 && z01 == z11 && z00 != z01) lines = [[[1,0],[0,1]]];
lines.forEach(l => {
turtle.jump(r/2+x0+l[0][0]*r, r/2+y0+l[0][1]*r);
turtle.goto(r/2+x0+l[1][0]*r, r/2+y0+l[1][1]*r);
});
return true;
}
// LiquidFun.js from https://google.github.io/liquidfun/
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_NODE = typeof process === "object" && typeof require === "function";
var ENVIRONMENT_IS_WEB = typeof window === "object";
var ENVIRONMENT_IS_WORKER = typeof importScripts === "function";
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) {
return Module["read"](filename, true)
};
Module["load"] = function load(f) {
globalEval(read(f))
};
Module["arguments"] = process["argv"].slice(2);
module["exports"] = Module
} 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) {
return read(f, "binary")
};
if (typeof scriptArgs != "undefined")
Module["arguments"] = scriptArgs;
else if (typeof arguments != "undefined")
Module["arguments"] = arguments;
this["Module"] = Module
} 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_WEB)
window["Module"] = Module;
else
Module["load"] = importScripts
} else
throw "Unknown runtime environment. Where are we?";
function globalEval(x) {
eval.call(null, x)
}
if (!Module["load"] == "undefined" && 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"] = [];
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
},
forceAlign: function(target, quantum) {
quantum = quantum || 4;
if (quantum == 1)
return target;
if (isNumber(target) && isNumber(quantum))
return Math.ceil(target / quantum) * quantum;
else if (isNumber(quantum) && isPowerOfTwo(quantum))
return "(((" + target + ")+" + (quantum - 1) + ")&" + -quantum + ")";
return "Math.ceil((" + target + ")/" + quantum + ")*" + quantum
},
isNumberType: function(type) {
return type in Runtime.INT_TYPES || type in Runtime.FLOAT_TYPES
},
isPointerType: function isPointerType(type) {
return type[type.length - 1] == "*"
},
isStructType: function isStructType(type) {
if (isPointerType(type))
return false;
if (isArrayType(type))
return true;
if (/<?\{ ?[^}]* ?\}>?/.test(type))
return true;
return type[0] == "%"
},
INT_TYPES: {
"i1": 0,
"i8": 0,
"i16": 0,
"i32": 0,
"i64": 0
},
FLOAT_TYPES: {
"float": 0,
"double": 0
},
or64: function(x, y) {
var l = x | 0 | (y | 0);
var h = (Math.round(x / 4294967296) | Math.round(y /
4294967296)) * 4294967296;
return l + h
},
and64: function(x, y) {
var l = (x | 0) & (y | 0);
var h = (Math.round(x / 4294967296) & Math.round(y / 4294967296)) * 4294967296;
return l + h
},
xor64: function(x, y) {
var l = (x | 0) ^ (y | 0);
var h = (Math.round(x / 4294967296) ^ Math.round(y / 4294967296)) * 4294967296;
return l + h
},
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)
},
dedup: function dedup(items, ident) {
var seen = {};
if (ident)
return items.filter(function(item) {
if (seen[item[ident]])
return false;
seen[item[ident]] = true;
return true
});
else
return items.filter(function(item) {
if (seen[item])
return false;
seen[item] = true;
return true
})
},
set: function set() {
var args = typeof arguments[0] ===
"object" ? arguments[0] : arguments;
var ret = {};
for (var i = 0; i < args.length; i++)
ret[args[i]] = 0;
return ret
},
STACK_ALIGN: 8,
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)
},
calculateStructAlignment: function calculateStructAlignment(type) {
type.flatSize = 0;
type.alignSize = 0;
var diffs = [];
var prev = -1;
var index = 0;
type.flatIndexes = type.fields.map(function(field) {
index++;
var size,
alignSize;
if (Runtime.isNumberType(field) || Runtime.isPointerType(field)) {
size = Runtime.getNativeTypeSize(field);
alignSize = Runtime.getAlignSize(field, size)
} else if (Runtime.isStructType(field))
if (field[1] === "0") {
size = 0;
if (Types.types[field])
alignSize = Runtime.getAlignSize(null, Types.types[field].alignSize);
else
alignSize = type.alignSize || QUANTUM_SIZE
} else {
size = Types.types[field].flatSize;
alignSize = Runtime.getAlignSize(null, Types.types[field].alignSize)
}
else if (field[0] == "b") {
size = field.substr(1) |
0;
alignSize = 1
} else if (field[0] === "<")
size = alignSize = Types.types[field].flatSize;
else if (field[0] === "i") {
size = alignSize = parseInt(field.substr(1)) / 8;
assert(size % 1 === 0, "cannot handle non-byte-size field " + field)
} else
assert(false, "invalid type for calculateStructAlignment");
if (type.packed)
alignSize = 1;
type.alignSize = Math.max(type.alignSize, alignSize);
var curr = Runtime.alignMemory(type.flatSize, alignSize);
type.flatSize = curr + size;
if (prev >= 0)
diffs.push(curr - prev);
prev = curr;
return curr
});
if (type.name_ && type.name_[0] ===
"[")
type.flatSize = parseInt(type.name_.substr(1)) * type.flatSize / 2;
type.flatSize = Runtime.alignMemory(type.flatSize, type.alignSize);
if (diffs.length == 0)
type.flatFactor = type.flatSize;
else if (Runtime.dedup(diffs).length == 1)
type.flatFactor = diffs[0];
type.needsFlattening = type.flatFactor != 1;
return type.flatIndexes
},
generateStructInfo: function(struct, typeName, offset) {
var type,
alignment;
if (typeName) {
offset = offset || 0;
type = (typeof Types === "undefined" ? Runtime.typeInfo : Types.types)[typeName];
if (!type)
return null;
if (type.fields.length != struct.length) {
printErr("Number of named fields must match the type for " + typeName + ": possibly duplicate struct names. Cannot return structInfo");
return null
}
alignment = type.flatIndexes
} else {
var type = {
fields: struct.map(function(item) {
return item[0]
})
};
alignment = Runtime.calculateStructAlignment(type)
}
var ret = {
__size__: type.flatSize
};
if (typeName)
struct.forEach(function(item, i) {
if (typeof item === "string")
ret[item] = alignment[i] + offset;
else {
var key;
for (var k in item)
key = k;
ret[key] =
Runtime.generateStructInfo(item[key], type.fields[i], alignment[i])
}
});
else
struct.forEach(function(item, i) {
ret[item[1]] = alignment[i]
});
return ret
},
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 < Runtime.functionPointers.length; i++)
if (!Runtime.functionPointers[i]) {
Runtime.functionPointers[i] =
func;
return 2 * (1 + i)
}
throw "Finished up all reserved function pointers. Use a higher value for RESERVED_FUNCTION_POINTERS.";
},
removeFunction: function(index) {
Runtime.functionPointers[(index - 2) / 2] = null
},
getAsmConst: function(code, numArgs) {
if (!Runtime.asmConstCache)
Runtime.asmConstCache = {};
var func = Runtime.asmConstCache[code];
if (func)
return func;
var args = [];
for (var i = 0; i < numArgs; i++)
args.push(String.fromCharCode(36) + i);
var source = Pointer_stringify(code);
if (source[0] === '"')
if (source.indexOf('"', 1) === source.length -
1)
source = source.substr(1, source.length - 2);
else
abort("invalid EM_ASM input |" + source + "|. Please use EM_ASM(..code..) (no quotes) or EM_ASM({ ..code($0).. }, input) (to input values)");
try {
var evalled = eval("(function(" + args.join(",") + "){ " + source + " })")
} catch (e) {
Module.printErr("error in executing inline EM_ASM code: " + e + " on: \n\n" + source + "\n\nwith args |" + args + "| (make sure to use the right one out of EM_ASM, EM_ASM_ARGS, etc.)");
throw e;
}
return Runtime.asmConstCache[code] = evalled
},
warnOnce: function(text) {
if (!Runtime.warnOnce.shown)
Runtime.warnOnce.shown =
{};
if (!Runtime.warnOnce.shown[text]) {
Runtime.warnOnce.shown[text] = 1;
Module.printErr(text)
}
},
funcWrappers: {},
getFuncWrapper: function(func, sig) {
assert(sig);
if (!Runtime.funcWrappers[func])
Runtime.funcWrappers[func] = function dynCall_wrapper() {
return Runtime.dynCall(sig, func, arguments)
};
return Runtime.funcWrappers[func]
},
UTF8Processor: function() {
var buffer = [];
var needed = 0;
this.processCChar = function(code) {
code = code & 255;
if (buffer.length == 0) {
if ((code & 128) == 0)
return String.fromCharCode(code);
buffer.push(code);
if ((code & 224) == 192)
needed = 1;
else if ((code & 240) == 224)
needed = 2;
else
needed = 3;
return ""
}
if (needed) {
buffer.push(code);
needed--;
if (needed > 0)
return ""
}
var c1 = buffer[0];
var c2 = buffer[1];
var c3 = buffer[2];
var c4 = buffer[3];
var ret;
if (buffer.length == 2)
ret = String.fromCharCode((c1 & 31) << 6 | c2 & 63);
else if (buffer.length == 3)
ret = String.fromCharCode((c1 & 15) << 12 | (c2 & 63) << 6 | c3 & 63);
else {
var codePoint = (c1 & 7) << 18 | (c2 & 63) << 12 | (c3 & 63) << 6 | c4 & 63;
ret = String.fromCharCode(Math.floor((codePoint - 65536) / 1024) + 55296, (codePoint - 65536) %
1024 + 56320)
}
buffer.length = 0;
return ret
};
this.processJSString = function processJSString(string) {
string = unescape(encodeURIComponent(string));
var ret = [];
for (var i = 0; i < string.length; i++)
ret.push(string.charCodeAt(i));
return ret
}
},
getCompilerSetting: function(name) {
throw "You must build with -s RETAIN_COMPILER_SETTINGS=1 for Runtime.getCompilerSetting or emscripten_get_compiler_setting to work";
},
stackAlloc: function(size) {
var ret = STACKTOP;
STACKTOP = STACKTOP + size | 0;
STACKTOP = STACKTOP + 7 & -8;
return ret
},
staticAlloc: function(size) {
var ret =
STATICTOP;
STATICTOP = STATICTOP + size | 0;
STATICTOP = STATICTOP + 7 & -8;
return ret
},
dynamicAlloc: function(size) {
var ret = DYNAMICTOP;
DYNAMICTOP = DYNAMICTOP + size | 0;
DYNAMICTOP = DYNAMICTOP + 7 & -8;
if (DYNAMICTOP >= TOTAL_MEMORY)
enlargeMemory();
return ret
},
alignMemory: function(size, quantum) {
var ret = size = Math.ceil(size / (quantum ? quantum : 8)) * (quantum ? quantum : 8);
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 stack = 0;
var JSfuncs = {
"stackSave": function() {
stack = Runtime.stackSave()
},
"stackRestore": function() {
Runtime.stackRestore(stack)
},
"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 + 1);
writeStringToMemory(str, ret)
}
return ret
}
};
var toC = {
"string": JSfuncs["stringToC"],
"array": JSfuncs["arrayToC"]
};
ccall = function ccallFunc(ident,
returnType, argTypes, args) {
var func = getCFunc(ident);
var cArgs = [];
if (args)
for (var i = 0; i < args.length; i++) {
var converter = toC[argTypes[i]];
if (converter) {
if (stack === 0)
stack = Runtime.stackSave();
cArgs[i] = converter(args[i])
} else
cArgs[i] = args[i]
}
var ret = func.apply(null, cArgs);
if (returnType === "string")
ret = Pointer_stringify(ret);
if (stack !== 0)
JSfuncs["stackRestore"]();
return ret
};
var sourceRegex = /^function\s*\(([^)]*)\)\s*{\s*([^*]*?)[\s;]*(?:return\s*(.*?)[;\s]*)?}$/;
function parseJSFunc(jsfunc) {
var parsed =
jsfunc.toString().match(sourceRegex).slice(1);
return {
arguments: parsed[0],
body: parsed[1],
returnValue: parsed[2]
}
}
var JSsource = {};
for (var fun in JSfuncs)
if (JSfuncs.hasOwnProperty(fun))
JSsource[fun] = parseJSFunc(JSfuncs[fun]);
cwrap = function cwrap(ident, returnType, argTypes) {
var cfunc = getCFunc(ident);
var numericArgs = argTypes.every(function(type) {
return type === "number"
});
var numericRet = returnType !== "string";
if (numericRet && numericArgs)
return cfunc;
var argNames = argTypes.map(function(x, i) {
return "$" + i
});
var funcstr =
"(function(" + argNames.join(",") + ") {";
var nargs = argTypes.length;
if (!numericArgs) {
funcstr += JSsource["stackSave"].body + ";";
for (var i = 0; i < nargs; i++) {
var arg = argNames[i],
type = argTypes[i];
if (type === "number")
continue;
var convertCode = JSsource[type + "ToC"];
funcstr += "var " + convertCode.arguments + " = " + arg + ";";
funcstr += convertCode.body + ";";
funcstr += arg + "=" + convertCode.returnValue + ";"
}
}
var cfuncname = parseJSFunc(function() {
return cfunc
}).returnValue;
funcstr += "var ret = " + cfuncname + "(" + argNames.join(",") + ");";
if (!numericRet) {
var strgfy =
parseJSFunc(function() {
return Pointer_stringify
}).returnValue;
funcstr += "ret = " + strgfy + "(ret);"
}
if (!numericArgs)
funcstr += JSsource["stackRestore"].body + ";";
funcstr += "return ret})";
return eval(funcstr)
}
})();
Module["cwrap"] = cwrap;
Module["ccall"] = ccall;
function setValue(ptr, value, type, noSafe) {
type = type || "i8";
if (type.charAt(type.length - 1) === "*")
type = "i32";
switch (type) {
case "i1":
HEAP8[ptr >> 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 < stop; ptr += 4)
HEAP32[ptr >>
2] = 0;
stop = ret + size;
while (ptr < stop)
HEAP8[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 < size) {
var curr = slab[i];
if (typeof curr === "function")
curr = Runtime.getFunctionIndex(curr);
type = singleType || types[i];
if (type === 0) {
i++;
continue
}
if (type == "i64")
type = "i32";
setValue(ret + i, curr, type);
if (previousType !== type) {
typeSize = Runtime.getNativeTypeSize(type);
previousType = type
}
i +=
typeSize
}
return ret
}
Module["allocate"] = allocate;
function Pointer_stringify(ptr, length) {
var hasUtf = false;
var t;
var i = 0;
while (1) {
t = HEAPU8[ptr + i >> 0];
if (t >= 128)
hasUtf = true;
else if (t == 0 && !length)
break;
i++;
if (length && i == length)
break
}
if (!length)
length = i;
var ret = "";
if (!hasUtf) {
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
}
var utf8 = new Runtime.UTF8Processor;
for (i = 0; i < length; i++) {
t = HEAPU8[ptr + i >> 0];
ret +=
utf8.processCChar(t)
}
return ret
}
Module["Pointer_stringify"] = Pointer_stringify;
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) {
for (var i = 0; i < str.length; ++i) {
var codeUnit = str.charCodeAt(i);
HEAP16[outPtr + i * 2 >> 1] = codeUnit
}
HEAP16[outPtr + str.length * 2 >> 1] = 0
}
Module["stringToUTF16"] = stringToUTF16;
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) {
var iChar = 0;
for (var iCodeUnit = 0; iCodeUnit < str.length; ++iCodeUnit) {
var codeUnit = str.charCodeAt(iCodeUnit);
if (codeUnit >= 55296 && codeUnit <= 57343) {
var trailSurrogate = str.charCodeAt(++iCodeUnit);
codeUnit = 65536 + ((codeUnit & 1023) << 10) | trailSurrogate & 1023
}
HEAP32[outPtr + iChar * 4 >> 2] = codeUnit;
++iChar
}
HEAP32[outPtr + iChar * 4 >> 2] = 0
}
Module["stringToUTF32"] = stringToUTF32;
function demangle(func) {
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 < i; a++)
pre += " ";
Module.print(pre + "^")
}
function parseNested() {
i++;
if (func[i] === "K")
i++;
var parts =
[];
while (func[i] !== "E") {
if (func[i] === "S") {
i++;
var next = func.indexOf("_", i);
var num = func.substring(i, next) || 0;
parts.push(subs[num] || "?");
i = next + 1;
continue
}
if (func[i] === "C") {
parts.push(parts[parts.length - 1]);
i += 2;
continue
}
var size = parseInt(func.substr(i));
var pre = size.toString().length;
if (!size || !pre) {
i--;
break
}
var curr = func.substr(i + pre, size);
parts.push(curr);
subs.push(curr);
i += pre + size
}
i++;
return parts
}
function parse(rawList, limit, allowVoid) {
limit = limit || Infinity;
var ret = "",
list = [];
function flushList() {
return "(" +
list.join(", ") + ")"
}
var name;
if (func[i] === "N") {
name = parseNested().join("::");
limit--;
if (limit === 0)
return rawList ? [name] : name
} else {
if (func[i] === "K" || first && func[i] === "L")
i++;
var size = parseInt(func.substr(i));
if (size) {
var pre = size.toString().length;
name = func.substr(i + pre, size);
i += pre + size
}
}
first = false;
if (func[i] === "I") {
i++;
var iList = parse(true);
var iRet = parse(true, 1, true);
ret += iRet[0] + " " + name + "<" + iList.join(", ") + ">"
} else
ret = name;
paramLoop:
while (i < func.length && limit-- > 0) {
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()
}
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()"
}
return parse()
} catch (e) {
return func
}
}
function demangleAll(text) {
return text.replace(/__Z[\w\d_]+/g, function(x) {
var y = demangle(x);
return x === y ? x : x + " [" + y + "]"
})
}
function stackTrace() {
var stack = (new Error).stack;
return stack ? demangleAll(stack) : "(no stack trace available)"
}
var PAGE_SIZE = 4096;
function alignMemoryPage(x) {
return x + 4095 & -4096
}
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 enlargeMemory() {
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 ALLOW_MEMORY_GROWTH which adjusts the size at runtime but prevents some optimizations, or (3) set Module.TOTAL_MEMORY before the program runs.")
}
var TOTAL_STACK = Module["TOTAL_STACK"] || 5242880;
var TOTAL_MEMORY = Module["TOTAL_MEMORY"] || 33554432;
var FAST_MEMORY = Module["FAST_MEMORY"] || 2097152;
var totalMemory = 4096;
while (totalMemory < TOTAL_MEMORY || totalMemory < 2 * TOTAL_STACK)
if (totalMemory < 16 * 1024 * 1024)
totalMemory *= 2;
else
totalMemory += 16 * 1024 * 1024;
if (totalMemory !== TOTAL_MEMORY) {
Module.printErr("increasing TOTAL_MEMORY to " + totalMemory + " to be more reasonable");
TOTAL_MEMORY = totalMemory
}
assert(typeof Int32Array !== "undefined" && typeof Float64Array !== "undefined" && !!(new Int32Array(1))["subarray"] && !!(new Int32Array(1))["set"], "JS engine does not provide full typed array support");
var buffer = new ArrayBuffer(TOTAL_MEMORY);
HEAP8 = new Int8Array(buffer);
HEAP16 = new Int16Array(buffer);
HEAP32 = new Int32Array(buffer);
HEAPU8 = new Uint8Array(buffer);
HEAPU16 = new Uint16Array(buffer);
HEAPU32 = new Uint32Array(buffer);
HEAPF32 = new Float32Array(buffer);
HEAPF64 = new Float64Array(buffer);
HEAP32[0] = 255;
assert(HEAPU8[0] === 255 && HEAPU8[3] === 0, "Typed arrays 2 must be run on a little-endian system");
Module["HEAP"] = HEAP;
Module["HEAP8"] = HEAP8;
Module["HEAP16"] = HEAP16;
Module["HEAP32"] = HEAP32;
Module["HEAPU8"] = HEAPU8;
Module["HEAPU16"] = HEAPU16;
Module["HEAPU32"] = HEAPU32;
Module["HEAPF32"] = HEAPF32;
Module["HEAPF64"] = HEAPF64;
function callRuntimeCallbacks(callbacks) {
while (callbacks.length > 0) {
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;
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__)
}
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"] = Module.addOnPreRun = addOnPreRun;
function addOnInit(cb) {
__ATINIT__.unshift(cb)
}
Module["addOnInit"] = Module.addOnInit = addOnInit;
function addOnPreMain(cb) {
__ATMAIN__.unshift(cb)
}
Module["addOnPreMain"] = Module.addOnPreMain = addOnPreMain;
function addOnExit(cb) {
__ATEXIT__.unshift(cb)
}
Module["addOnExit"] = Module.addOnExit = addOnExit;
function addOnPostRun(cb) {
__ATPOSTRUN__.unshift(cb)
}
Module["addOnPostRun"] = Module.addOnPostRun = addOnPostRun;
function intArrayFromString(stringy, dontAddNull, length) {
var ret = (new Runtime.UTF8Processor).processJSString(stringy);
if (length)
ret.length = length;
if (!dontAddNull)
ret.push(0);
return ret
}
Module["intArrayFromString"] = intArrayFromString;
function intArrayToString(array) {
var ret = [];
for (var i = 0; i < array.length; i++) {
var chr = array[i];
if (chr > 255)
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 < array.length) {
var chr = array[i];
HEAP8[buffer + i >> 0] = chr;
i = i + 1
}
}
Module["writeStringToMemory"] = writeStringToMemory;
function writeArrayToMemory(array, buffer) {
for (var i = 0; i < array.length; i++)
HEAP8[buffer + i >> 0] = array[i]
}
Module["writeArrayToMemory"] = writeArrayToMemory;
function writeAsciiToMemory(str, buffer, dontAddNull) {
for (var i = 0; i < str.length; i++)
HEAP8[buffer + i >> 0] = str.charCodeAt(i);
if (!dontAddNull)
HEAP8[buffer + str.length >> 0] = 0
}
Module["writeAsciiToMemory"] = writeAsciiToMemory;
function unSign(value, bits, ignore) {
if (value >= 0)
return value;
return bits <= 32 ? 2 * Math.abs(1 << bits - 1) + value : Math.pow(2, bits) + value
}
function reSign(value, bits, ignore) {
if (value <= 0)
return value;
var half = bits <= 32 ? Math.abs(1 << bits - 1) : Math.pow(2, bits - 1);
if (value >= 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"];
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 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 __ZTVN10__cxxabiv117__class_type_infoE = 9E3;
var __ZTVN10__cxxabiv120__si_class_type_infoE = 9040;
STATIC_BASE = 8;
STATICTOP = STATIC_BASE + Runtime.alignMemory(9715);
__ATINIT__.push({
func: function() {
__GLOBAL__I_a()
}
});
allocate([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 152, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 49, 53, 82, 97, 121, 67, 97, 115, 116, 67, 97, 108, 108, 98, 97, 99, 107, 0, 0, 0, 0, 0, 0, 0, 49, 55, 98, 50, 82, 97, 121, 67, 97, 115, 116, 67, 97, 108, 108, 98, 97, 99, 107, 0, 0, 0, 0, 0, 48, 35, 0, 0, 120, 0, 0, 0, 88, 35, 0, 0, 96, 0, 0, 0, 144, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 3, 0, 0, 0, 4, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 49, 55, 81, 117, 101, 114, 121, 65, 65, 66, 66, 67, 97, 108, 108,
98, 97, 99, 107, 0, 0, 0, 0, 0, 49, 53, 98, 50, 81, 117, 101, 114, 121, 67, 97, 108, 108, 98, 97, 99, 107, 0, 0, 0, 0, 0, 0, 0, 48, 35, 0, 0, 224, 0, 0, 0, 88, 35, 0, 0, 200, 0, 0, 0, 248, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 1, 0, 0, 5, 0, 0, 0, 6, 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, 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, 0, 0, 0, 0, 0, 0, 0, 49, 55, 98, 50, 67, 111, 110, 116, 97, 99, 116, 76, 105, 115, 116, 101, 110, 101, 114, 0, 0, 0, 0, 0, 48, 35, 0, 0, 96, 1, 0, 0, 88, 35, 0, 0, 64, 1, 0, 0, 120, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56, 2, 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, 49, 49, 98, 50, 69, 100, 103, 101, 83, 104, 97, 112, 101, 0, 0, 0, 55, 98, 50, 83, 104, 97, 112, 101, 0, 0, 0, 0, 0, 0, 0, 0, 48, 35, 0, 0, 32, 2, 0, 0, 88, 35, 0, 0, 16, 2, 0, 0, 48, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 144, 2, 0, 0, 9, 0, 0, 0, 10, 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, 49, 52, 98, 50,
80, 111, 108, 121, 103, 111, 110, 83, 104, 97, 112, 101, 0, 0, 0, 0, 0, 0, 0, 0, 88, 35, 0, 0, 120, 2, 0, 0, 48, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 2, 0, 0, 11, 0, 0, 0, 12, 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, 49, 51, 98, 50, 67, 105, 114, 99, 108, 101, 83, 104, 97, 112, 101, 0, 88, 35, 0, 0, 208, 2, 0, 0, 48, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 3, 0, 0, 13, 0, 0, 0, 14, 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, 49, 50, 98, 50, 67, 104, 97, 105, 110, 83, 104, 97, 112, 101, 0, 0, 88, 35, 0, 0, 32, 3, 0, 0, 48, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 120, 3, 0, 0, 15, 0, 0,
0, 16, 0, 0, 0, 6, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 49, 53, 98, 50, 67, 111, 110, 116, 97, 99, 116, 70, 105, 108, 116, 101, 114, 0, 0, 0, 0, 0, 0, 0, 48, 35, 0, 0, 96, 3, 0, 0, 0, 0, 0, 0, 224, 3, 0, 0, 3, 0, 0, 0, 4, 0, 0, 0, 5, 0, 0, 0, 1, 0, 0, 0, 17, 0, 0, 0, 5, 0, 0, 0, 18, 0, 0, 0, 19, 0, 0, 0, 6, 0, 0, 0, 7, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 49, 50, 98, 50, 77, 111, 117, 115, 101, 74, 111, 105, 110, 116, 0, 0, 55, 98, 50, 74, 111, 105, 110, 116, 0, 0, 0, 0, 0, 0, 0, 0, 48, 35, 0, 0, 200, 3, 0, 0, 88, 35, 0, 0, 184, 3, 0, 0, 216, 3, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 200, 5, 0, 0, 8, 0, 0, 0, 9, 0, 0, 0, 6, 0, 0, 0, 2, 0, 0, 0, 20, 0, 0, 0, 10, 0, 0, 0, 21, 0, 0, 0, 22, 0, 0, 0, 11, 0, 0, 0, 12, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 32, 32, 98, 50, 77, 111, 116, 111, 114, 74, 111, 105, 110, 116, 68, 101, 102, 32, 106, 100, 59, 10, 0, 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, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 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, 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, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 49, 50, 98, 50, 77, 111, 116, 111, 114, 74, 111, 105, 110, 116, 0, 0, 88, 35, 0, 0, 184, 5, 0, 0, 216, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 152, 7, 0, 0, 13, 0, 0, 0, 14, 0, 0, 0, 7, 0, 0, 0, 3, 0, 0, 0, 23, 0, 0, 0, 10, 0, 0,
0, 24, 0, 0, 0, 25, 0, 0, 0, 15, 0, 0, 0, 16, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 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, 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, 0, 0, 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, 0, 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, 0, 0, 0, 0, 0, 49, 53, 98, 50, 68, 105, 115, 116, 97, 110, 99, 101, 74, 111, 105, 110, 116, 0, 0, 0, 0, 0, 0, 0, 88, 35, 0, 0, 128, 7, 0, 0, 216, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 9, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0, 8, 0, 0, 0, 4, 0, 0, 0, 26, 0, 0, 0, 10, 0, 0, 0, 27, 0, 0, 0, 28, 0, 0, 0, 19, 0, 0, 0, 20, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 49, 53, 98, 50, 70, 114, 105, 99, 116, 105, 111, 110, 74, 111, 105, 110, 116, 0, 0, 0, 0, 0, 0, 0, 88, 35, 0, 0, 56, 9, 0, 0, 216, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 11, 0, 0, 21, 0, 0, 0, 22, 0, 0, 0, 9, 0, 0, 0, 5, 0, 0, 0, 29, 0, 0, 0, 10, 0, 0, 0, 30, 0, 0, 0, 31, 0, 0, 0, 23, 0, 0, 0, 24, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 32, 32, 98, 50, 87, 101, 108, 100, 74, 111, 105, 110, 116, 68, 101, 102, 32, 106, 100, 59, 10, 0, 0, 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, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 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, 102, 114, 101, 113, 117, 101, 110, 99, 121, 72, 122, 32, 61, 32, 37, 46, 49, 53, 108, 101, 102, 59, 10, 0, 0, 0, 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, 0, 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, 0, 0, 0, 0, 0, 49, 49, 98, 50, 87, 101, 108, 100, 74, 111, 105, 110, 116, 0, 0, 0, 88, 35, 0, 0, 8, 11, 0, 0, 216, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 120, 12, 0, 0, 25, 0, 0, 0, 26, 0, 0, 0, 10, 0, 0, 0, 6, 0, 0, 0, 32, 0, 0, 0, 10, 0, 0, 0, 33, 0, 0, 0, 34, 0, 0, 0, 27, 0, 0, 0, 28, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 32, 32, 98, 50, 71, 101, 97, 114, 74, 111, 105, 110, 116, 68, 101, 102, 32, 106, 100, 59, 10, 0, 0, 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, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0,
0, 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, 0, 0, 0, 0, 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, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 32, 32, 106, 100, 46, 114, 97, 116, 105, 111, 32, 61, 32, 37, 46, 49, 53, 108, 101, 102, 59, 10, 0, 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, 0, 0, 0, 0, 0, 49, 49, 98, 50, 71, 101, 97, 114, 74, 111, 105, 110, 116, 0, 0, 0, 88, 35, 0, 0, 104, 12, 0, 0, 216, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 15, 0, 0, 29, 0, 0, 0, 30, 0, 0, 0, 11, 0, 0, 0, 7, 0, 0, 0, 35, 0, 0, 0, 10, 0, 0, 0, 36, 0, 0, 0, 37, 0, 0, 0, 31, 0, 0, 0, 32, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 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, 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, 0, 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, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 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, 0, 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, 0, 0, 0, 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, 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, 0, 0, 0, 0, 0, 49, 54, 98, 50, 80, 114, 105, 115, 109, 97, 116, 105, 99, 74, 111, 105, 110, 116, 0, 0, 0, 0, 0, 0, 88, 35, 0, 0, 240, 14, 0, 0, 216, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 144, 16, 0, 0, 33, 0, 0, 0, 34, 0, 0, 0, 12, 0, 0, 0, 8, 0, 0, 0, 38, 0, 0, 0, 10, 0, 0, 0, 39, 0, 0, 0, 40, 0, 0, 0, 35, 0, 0, 0, 36, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 32, 32, 98, 50, 82, 111, 112, 101, 74, 111, 105, 110, 116, 68, 101, 102, 32, 106, 100, 59, 10, 0, 0, 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, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 49, 49, 98, 50, 82, 111, 112, 101, 74, 111, 105, 110, 116, 0, 0, 0, 88, 35, 0, 0, 128, 16, 0, 0, 216, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 216, 3, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 41, 0, 0, 0, 10, 0,
0, 0, 42, 0, 0, 0, 43, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 80, 19, 0, 0, 37, 0, 0, 0, 38, 0, 0, 0, 13, 0, 0, 0, 9, 0, 0, 0, 44, 0, 0, 0, 10, 0, 0, 0, 45, 0, 0, 0, 46, 0, 0, 0, 39, 0, 0, 0, 40, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 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, 0, 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, 0, 0, 0, 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, 0, 0, 0, 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, 0, 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, 0, 0, 0, 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, 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, 0, 0, 0, 0,
0, 49, 53, 98, 50, 82, 101, 118, 111, 108, 117, 116, 101, 74, 111, 105, 110, 116, 0, 0, 0, 0, 0, 0, 0, 88, 35, 0, 0, 56, 19, 0, 0, 216, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 21, 0, 0, 41, 0, 0, 0, 42, 0, 0, 0, 14, 0, 0, 0, 10, 0, 0, 0, 47, 0, 0, 0, 10, 0, 0, 0, 48, 0, 0, 0, 49, 0, 0, 0, 43, 0, 0, 0, 44, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 32, 32, 98, 50, 87, 104, 101, 101, 108, 74, 111, 105, 110, 116, 68, 101, 102, 32, 106, 100, 59, 10, 0, 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, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 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, 0, 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, 0, 0, 0, 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, 0, 0, 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, 0, 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, 0, 0, 0, 0, 0, 49, 50, 98, 50, 87, 104, 101, 101, 108, 74, 111, 105, 110, 116, 0, 0, 88, 35, 0, 0, 112, 21, 0, 0, 216, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 160, 23, 0, 0, 45, 0, 0, 0, 46, 0, 0, 0, 15, 0, 0, 0, 11, 0, 0, 0, 50, 0, 0, 0, 47, 0, 0, 0, 51, 0, 0, 0, 52, 0, 0, 0, 48, 0, 0, 0, 49, 0, 0, 0, 18, 0, 0, 0,
0, 0, 0, 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, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 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, 0, 0, 0, 0, 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, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 32, 32, 106, 100, 46, 114, 97, 116, 105, 111, 32, 61, 32, 37, 46, 49, 53, 108, 101, 102, 59, 10, 0, 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, 0, 0, 0, 0, 0, 49, 51, 98, 50, 80, 117,
108, 108, 101, 121, 74, 111, 105, 110, 116, 0, 88, 35, 0, 0, 144, 23, 0, 0, 216, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 7, 0, 0, 0, 53, 0, 0, 0, 54, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 57, 98, 50, 67, 111, 110, 116, 97, 99, 116, 0, 0, 0, 0, 0, 0, 48, 35, 0, 0, 232, 23, 0, 0, 88, 35, 0, 0, 200, 23, 0, 0, 248, 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 248, 23, 0, 0, 1, 0, 0, 0, 55, 0, 0, 0, 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 25, 0, 0, 8, 0, 0, 0, 57, 0, 0, 0, 58, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 88, 35, 0, 0, 8, 25, 0, 0, 248, 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 104, 25,
0, 0, 9, 0, 0, 0, 59, 0, 0, 0, 60, 0, 0, 0, 0, 0, 0, 0, 49, 53, 98, 50, 67, 105, 114, 99, 108, 101, 67, 111, 110, 116, 97, 99, 116, 0, 0, 0, 0, 0, 0, 0, 88, 35, 0, 0, 80, 25, 0, 0, 248, 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 176, 25, 0, 0, 10, 0, 0, 0, 61, 0, 0, 0, 62, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 88, 35, 0, 0, 144, 25, 0, 0, 248, 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 248, 25, 0, 0, 11, 0, 0, 0, 63, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0,
88, 35, 0, 0, 216, 25, 0, 0, 248, 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 26, 0, 0, 12, 0, 0, 0, 65, 0, 0, 0, 66, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 88, 35, 0, 0, 32, 26, 0, 0, 248, 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 26, 0, 0, 13, 0, 0, 0, 67, 0, 0, 0, 68, 0, 0, 0, 0, 0, 0, 0, 49, 54, 98, 50, 80, 111, 108, 121, 103, 111, 110, 67, 111, 110, 116, 97, 99, 116, 0, 0, 0, 0, 0, 0, 88, 35, 0, 0, 104, 26, 0, 0, 248, 23, 0, 0, 0, 0, 0, 0, 72, 3, 0, 0, 0, 0, 0, 0, 168, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 120, 1, 0, 0, 69, 0, 0, 0, 70, 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, 120, 27, 0, 0, 71, 0, 0, 0, 72, 0, 0, 0, 19, 0, 0, 0, 1, 0, 0, 0, 20, 0, 0, 0, 14, 0, 0, 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, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 88, 35, 0, 0, 64, 27, 0, 0, 248, 0, 0, 0, 0, 0, 0, 0, 88, 35, 0, 0, 240, 26, 0, 0, 104, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 240, 27, 0, 0, 73, 0, 0, 0, 74, 0, 0, 0, 19, 0, 0, 0, 1, 0, 0, 0, 20, 0, 0, 0, 15, 0, 0, 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, 88, 35, 0, 0, 168, 27, 0, 0, 104, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 168, 28, 0, 0, 75, 0, 0, 0, 76, 0, 0, 0, 16,
0, 0, 0, 0, 0, 0, 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, 0, 0, 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, 0, 0, 0, 0, 0, 48, 35, 0, 0, 120, 28, 0, 0, 88,
35, 0, 0, 24, 28, 0, 0, 160, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, 29, 0, 0, 77, 0, 0, 0, 78, 0, 0, 0, 21, 0, 0, 0, 7, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 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, 0, 48, 35, 0, 0, 48, 29, 0, 0, 88, 35, 0, 0, 216, 28, 0, 0, 88, 29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88, 29, 0, 0, 79, 0, 0, 0, 80, 0, 0, 0, 22, 0, 0, 0, 7, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 30, 0, 0, 81, 0, 0, 0, 82, 0, 0, 0, 22, 0, 0, 0, 8, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 88, 35, 0, 0, 176, 29, 0, 0, 88, 29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 208, 30, 0, 0, 83, 0, 0, 0, 84, 0, 0, 0, 23, 0, 0, 0, 5, 0, 0, 0, 9, 0, 0, 0, 5, 0, 0, 0, 5, 0, 0, 0, 17, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 88, 35, 0, 0, 80, 30, 0, 0, 48, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 112, 31, 0, 0, 85, 0, 0, 0, 86, 0, 0, 0, 24, 0, 0, 0, 10, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 88, 35, 0, 0, 0, 31, 0, 0, 248, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 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, 104, 34, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 116, 57, 116, 121, 112, 101, 95, 105, 110, 102, 111, 0, 0, 0, 0, 48, 35, 0, 0, 160, 34, 0, 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, 0, 0, 0, 0, 0, 0, 0, 88, 35, 0, 0, 184, 34, 0, 0, 176, 34, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 88, 35, 0, 0, 240, 34, 0, 0, 224, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 35, 0, 0, 87, 0, 0, 0, 88, 0, 0, 0, 89, 0, 0, 0, 90, 0, 0, 0, 11, 0, 0, 0, 6, 0, 0, 0, 1, 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 160, 35, 0, 0, 87, 0, 0, 0, 91, 0, 0, 0, 89, 0, 0, 0, 90, 0, 0, 0, 11, 0, 0, 0, 7, 0, 0, 0, 2, 0, 0, 0, 19, 0, 0, 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, 0, 0, 88, 35, 0, 0, 120, 35, 0, 0, 24, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 232, 37, 0, 0, 92, 0, 0, 0, 93, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 115, 116, 100, 58, 58, 98, 97, 100, 95, 97, 108, 108, 111, 99, 0, 0, 83, 116, 57, 98, 97, 100, 95, 97, 108, 108, 111, 99, 0, 0, 0, 0, 88, 35, 0, 0, 216, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], "i8", ALLOC_NONE, Runtime.GLOBAL_BASE);
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]
}
function _cosf() {
return Math_cos.apply(null, arguments)
}
function ___cxa_pure_virtual() {
ABORT = true;
throw "Pure virtual function called!";
}
function _b2WorldEndContactBody(contactPtr) {
b2World.EndContactBody(contactPtr)
}
function _floorf() {
return Math_floor.apply(null, arguments)
}
function __ZSt18uncaught_exceptionv() {
return !!__ZSt18uncaught_exceptionv.uncaught_exception
}
function ___cxa_is_number_type(type) {
var isNumber = false;
try {
if (type == __ZTIi)
isNumber = true
} catch (e) {}
try {
if (type == __ZTIj)
isNumber = true
} catch (e) {}
try {
if (type == __ZTIl)
isNumber = true
} catch (e) {}
try {
if (type == __ZTIm)
isNumber = true
} catch (e) {}
try {
if (type == __ZTIx)
isNumber = true
} catch (e) {}
try {
if (type == __ZTIy)
isNumber = true
} catch (e) {}
try {
if (type == __ZTIf)
isNumber = true
} catch (e) {}
try {
if (type == __ZTId)
isNumber = true
} catch (e) {}
try {
if (type == __ZTIe)
isNumber = true
} catch (e) {}
try {
if (type == __ZTIc)
isNumber = true
} catch (e) {}
try {
if (type ==
__ZTIa)
isNumber = true
} catch (e) {}
try {
if (type == __ZTIh)
isNumber = true
} catch (e) {}
try {
if (type == __ZTIs)
isNumber = true
} catch (e) {}
try {
if (type == __ZTIt)
isNumber = true
} catch (e) {}
return isNumber
}
function ___cxa_does_inherit(definiteType, possibilityType, possibility) {
if (possibility == 0)
return false;
if (possibilityType == 0 || possibilityType == definiteType)
return true;
var possibility_type_info;
if (___cxa_is_number_type(possibilityType))
possibility_type_info = possibilityType;
else {
var possibility_type_infoAddr = HEAP32[possibilityType >> 2] - 8;
possibility_type_info = HEAP32[possibility_type_infoAddr >> 2]
}
switch (possibility_type_info) {
case 0:
var definite_type_infoAddr = HEAP32[definiteType >> 2] - 8;
var definite_type_info =
HEAP32[definite_type_infoAddr >> 2];
if (definite_type_info == 0) {
var defPointerBaseAddr = definiteType + 8;
var defPointerBaseType = HEAP32[defPointerBaseAddr >> 2];
var possPointerBaseAddr = possibilityType + 8;
var possPointerBaseType = HEAP32[possPointerBaseAddr >> 2];
return ___cxa_does_inherit(defPointerBaseType, possPointerBaseType, possibility)
} else
return false;
case 1:
return false;
case 2:
var parentTypeAddr = possibilityType + 8;
var parentType = HEAP32[parentTypeAddr >> 2];
return ___cxa_does_inherit(definiteType, parentType,
possibility);
default:
return false
}
}
var ___cxa_last_thrown_exception = 0;
function ___resumeException(ptr) {
if (!___cxa_last_thrown_exception)
___cxa_last_thrown_exception = 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.";
}
var ___cxa_exception_header_size = 8;
function ___cxa_find_matching_catch(thrown, throwntype) {
if (thrown == -1)
thrown = ___cxa_last_thrown_exception;
header = thrown - ___cxa_exception_header_size;
if (throwntype == -1)
throwntype = HEAP32[header >> 2];
var typeArray = Array.prototype.slice.call(arguments, 2);
if (throwntype != 0 && !___cxa_is_number_type(throwntype)) {
var throwntypeInfoAddr = HEAP32[throwntype >> 2] - 8;
var throwntypeInfo = HEAP32[throwntypeInfoAddr >> 2];
if (throwntypeInfo == 0)
thrown = HEAP32[thrown >> 2]
}
for (var i = 0; i < typeArray.length; i++)
if (___cxa_does_inherit(typeArray[i],
throwntype, thrown))
return (asm["setTempRet0"](typeArray[i]), thrown) | 0;
return (asm["setTempRet0"](throwntype), thrown) | 0
}
function ___cxa_throw(ptr, type, destructor) {
if (!___cxa_throw.initialized) {
try {
HEAP32[__ZTVN10__cxxabiv119__pointer_type_infoE >> 2] = 0
} catch (e) {}
try {
HEAP32[__ZTVN10__cxxabiv117__class_type_infoE >> 2] = 1
} catch (e) {}
try {
HEAP32[__ZTVN10__cxxabiv120__si_class_type_infoE >> 2] = 2
} catch (e) {}
___cxa_throw.initialized = true
}
var header = ptr - ___cxa_exception_header_size;
HEAP32[header >> 2] = type;
HEAP32[header + 4 >> 2] = destructor;
___cxa_last_thrown_exception = 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;
function _b2WorldRayCastCallback(fixturePtr, pointX, pointY, normalX, normalY, fraction) {
return b2World.RayCast(fixturePtr, pointX, pointY, normalX, normalY, fraction)
}
var _FtoIHigh = true;
function __exit(status) {
Module["exit"](status)
}
function _exit(status) {
__exit(status)
}
function __ZSt9terminatev() {
_exit(-1234)
}
function _abort() {
Module["abort"]()
}
function _b2WorldBeginContactBody(contactPtr) {
b2World.BeginContactBody(contactPtr)
}
var ___cxa_caught_exceptions = [];
function ___cxa_begin_catch(ptr) {
__ZSt18uncaught_exceptionv.uncaught_exception--;
___cxa_caught_exceptions.push(___cxa_last_thrown_exception);
return ptr
}
function _sinf() {
return Math_sin.apply(null, arguments)
}
function _b2WorldPostSolve(contactPtr, impulsePtr) {
b2World.PostSolve(contactPtr, impulsePtr)
}
Module["_strlen"] = _strlen;
function _sqrtf() {
return Math_sqrt.apply(null, arguments)
}
function _b2WorldQueryAABB(fixturePtr) {
return b2World.QueryAABB(fixturePtr)
}
Module["_i64Add"] = _i64Add;
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)
self.alloc(bytes);
return ret
}
function _emscripten_memcpy_big(dest, src, num) {
HEAPU8.set(HEAPU8.subarray(src, src + num), dest);
return dest
}
Module["_memcpy"] = _memcpy;
Module["_memmove"] = _memmove;
var ___errno_state = 0;
function ___setErrNo(value) {
HEAP32[___errno_state >> 2] = value;
return value
}
function ___errno_location() {
return ___errno_state
}
var _FtoILow = true;
function __ZNSt9exceptionD2Ev() {}
function _b2WorldPreSolve(contactPtr, oldManifoldPtr) {
b2World.PreSolve(contactPtr, oldManifoldPtr)
}
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
};
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) {
if (stream.tty.output.length)
stream.tty.ops.put_char(stream.tty, 10)
},
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; i < length; i++) {
var result;
try {
result = stream.tty.ops.get_char(stream.tty)
} catch (e) {
throw new FS.ErrnoError(ERRNO_CODES.EIO);
}
if (result === undefined && bytesRead === 0)
throw new FS.ErrnoError(ERRNO_CODES.EAGAIN);
if (result === null || result === undefined)
break;
bytesRead++;
buffer[offset + i] = result
}
if (bytesRead)
stream.node.timestamp = Date.now();
return bytesRead
},
write: function(stream, buffer, offset, length, pos) {
if (!stream.tty || !stream.tty.ops.put_char)
throw new FS.ErrnoError(ERRNO_CODES.ENXIO);
for (var i = 0; i < length; i++)
try {
stream.tty.ops.put_char(stream.tty, buffer[offset + i])
} catch (e) {
throw new FS.ErrnoError(ERRNO_CODES.EIO);
}
if (length)
stream.node.timestamp = Date.now();
return i
}
},
default_tty_ops: {
get_char: function(tty) {
if (!tty.input.length) {
var result = null;
if (ENVIRONMENT_IS_NODE) {
result = process["stdin"]["read"]();
if (!result) {
if (process["stdin"]["_readableState"] && process["stdin"]["_readableState"]["ended"])
return null;
return undefined
}
} 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"](tty.output.join(""));
tty.output = []
} else
tty.output.push(TTY.utf8.processCChar(val))
}
},
default_tty1_ops: {
put_char: function(tty, val) {
if (val === null || val === 10) {
Module["printErr"](tty.output.join(""));
tty.output = []
} else
tty.output.push(TTY.utf8.processCChar(val))
}
}
};
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
}
},
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; i < node.usedBytes; ++i)
arr.push(node.contents[i]);
return arr
}
return node.contents
},
getFileDataAsTypedArray: function(node) {
if (node.contents && node.contents.subarray)
return node.contents.subarray(0, node.usedBytes);
return new Uint8Array(node.contents)
},
expandFileStorage: function(node,
newCapacity) {
if (node.contents && node.contents.subarray && newCapacity > node.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 * (prevCapacity < CAPACITY_DOUBLING_MAX ? 2 : 1.125) | 0);
if (prevCapacity != 0)
newCapacity = Math.max(newCapacity,
256);
var oldContents = node.contents;
node.contents = new Uint8Array(newCapacity);
if (node.usedBytes > 0)
node.contents.set(oldContents.subarray(0, node.usedBytes), 0);
return
}
if (!node.contents && newCapacity > 0)
node.contents = [];
while (node.contents.length < newCapacity)
node.contents.push(0)
},
resizeFileStorage: function(node, newSize) {
if (node.usedBytes == newSize)
return;
if (newSize == 0) {
node.contents = null;
node.usedBytes = 0;
return
}
if (!node.contents || node.contents.subarray) {
var oldContents = node.contents;
node.contents = new Uint8Array(new ArrayBuffer(newSize));
node.contents.set(oldContents.subarray(0, Math.min(newSize, node.usedBytes)));
node.usedBytes = newSize;
return
}
if (!node.contents)
node.contents = [];
if (node.contents.length > newSize)
node.contents.length = newSize;
else
while (node.contents.length < newSize)
node.contents.push(0);
node.usedBytes = newSize
},
node_ops: {
getattr: function(node) {
var attr = {};
attr.dev = FS.isChrdev(node.mode) ? node.id : 1;
attr.ino = node.id;
attr.mode = node.mode;
attr.nlink = 1;
attr.uid = 0;
attr.gid = 0;
attr.rdev = node.rdev;
if (FS.isDir(node.mode))
attr.size = 4096;
else if (FS.isFile(node.mode))
attr.size = node.usedBytes;
else if (FS.isLink(node.mode))
attr.size = node.link.length;
else
attr.size = 0;
attr.atime = new Date(node.timestamp);
attr.mtime = new Date(node.timestamp);
attr.ctime = new Date(node.timestamp);
attr.blksize = 4096;
attr.blocks = Math.ceil(attr.size / attr.blksize);
return attr
},
setattr: function(node, attr) {
if (attr.mode !== undefined)
node.mode = attr.mode;
if (attr.timestamp !== undefined)
node.timestamp = attr.timestamp;
if (attr.size !== undefined)
MEMFS.resizeFileStorage(node, attr.size)
},
lookup: function(parent, name) {
throw FS.genericErrors[ERRNO_CODES.ENOENT];
},
mknod: function(parent, name, mode, dev) {
return MEMFS.createNode(parent, name, mode, dev)
},
rename: function(old_node, new_dir, new_name) {
if (FS.isDir(old_node.mode)) {
var new_node;
try {
new_node = FS.lookupNode(new_dir, new_name)
} catch (e) {}
if (new_node)
for (var i in new_node.contents)
throw new FS.ErrnoError(ERRNO_CODES.ENOTEMPTY);
}
delete old_node.parent.contents[old_node.name];
old_node.name = new_name;
new_dir.contents[new_name] = old_node;
old_node.parent =
new_dir
},
unlink: function(parent, name) {
delete parent.contents[name]
},
rmdir: function(parent, name) {
var node = FS.lookupNode(parent, name);
for (var i in node.contents)
throw new FS.ErrnoError(ERRNO_CODES.ENOTEMPTY);
delete parent.contents[name]
},
readdir: function(node) {
var entries = [".", ".."];
for (var key in node.contents) {
if (!node.contents.hasOwnProperty(key))
continue;
entries.push(key)
}
return entries
},
symlink: function(parent, newname, oldpath) {
var node = MEMFS.createNode(parent, newname, 511 | 40960, 0);
node.link = oldpath;
return node
},
readlink: function(node) {
if (!FS.isLink(node.mode))
throw new FS.ErrnoError(ERRNO_CODES.EINVAL);
return node.link
}
},
stream_ops: {
read: function(stream, buffer, offset, length, position) {
var contents = stream.node.contents;
if (position >= 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; i < size; i++)
buffer[offset + i] = contents[position + i];
return size
},
write: function(stream, buffer, offset, length, position, canOwn) {
if (!length)
return 0;
var node = stream.node;
node.timestamp = Date.now();
if (buffer.subarray && (!node.contents || node.contents.subarray))
if (canOwn) {
node.contents = buffer.subarray(offset, offset + length);
node.usedBytes = length;
return length
} else if (node.usedBytes === 0 && position === 0) {
node.contents = new Uint8Array(buffer.subarray(offset, offset + length));
node.usedBytes = length;
return length
} else if (position + length <= node.usedBytes) {
node.contents.set(buffer.subarray(offset,
offset + length), position);
return length
}
MEMFS.expandFileStorage(node, position + length);
if (node.contents.subarray && buffer.subarray)
node.contents.set(buffer.subarray(offset, offset + length), position);
else
for (var i = 0; i < length; i++)
node.contents[position + i] = buffer[offset + i];
node.usedBytes = Math.max(node.usedBytes, position + length);
return length
},
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.usedBytes;
if (position < 0)
throw new FS.ErrnoError(ERRNO_CODES.EINVAL);
stream.ungotten = [];
stream.position = position;
return position
},
allocate: function(stream, offset, length) {
MEMFS.expandFileStorage(stream.node, offset + length);
stream.node.usedBytes = Math.max(stream.node.usedBytes, offset + length)
},
mmap: function(stream, buffer, offset, length, position, prot, flags) {
if (!FS.isFile(stream.node.mode))
throw new FS.ErrnoError(ERRNO_CODES.ENODEV);
var ptr;
var allocated;
var contents = stream.node.contents;
if (!(flags & 2) && (contents.buffer ===
buffer || contents.buffer === buffer.buffer)) {
allocated = false;
ptr = contents.byteOffset
} else {
if (position > 0 || position + length < stream.node.usedBytes)
if (contents.subarray)
contents = contents.subarray(position, position + length);
else
contents = Array.prototype.slice.call(contents, position, position + length);
allocated = true;
ptr = _malloc(length);
if (!ptr)
throw new FS.ErrnoError(ERRNO_CODES.ENOMEM);
buffer.set(contents, ptr)
}
return {
ptr: ptr,
allocated: allocated
}
}
}
};
var IDBFS = {
dbs: {},
indexedDB: function() {
return window.indexedDB || window.mozIndexedDB || window.webkitIndexedDB || window.msIndexedDB
},
DB_VERSION: 21,
DB_STORE_NAME: "FILE_DATA",
mount: function(mount) {
return MEMFS.mount.apply(null, arguments)
},
syncfs: function(mount, populate, callback) {
IDBFS.getLocalSet(mount, function(err, local) {
if (err)
return callback(err);
IDBFS.getRemoteSet(mount, function(err, remote) {
if (err)
return callback(err);
var src = populate ? remote : local;
var dst = populate ? local : remote;
IDBFS.reconcile(src, dst,
callback)
})
})
},
getDB: function(name, callback) {
var db = IDBFS.dbs[name];
if (db)
return callback(null, db);
var req;
try {
req = IDBFS.indexedDB().open(name, IDBFS.DB_VERSION)
} catch (e) {
return callback(e)
}
req.onupgradeneeded = function(e) {
var db = e.target.result;
var transaction = e.target.transaction;
var fileStore;
if (db.objectStoreNames.contains(IDBFS.DB_STORE_NAME))
fileStore = transaction.objectStore(IDBFS.DB_STORE_NAME);
else
fileStore = db.createObjectStore(IDBFS.DB_STORE_NAME);
fileStore.createIndex("timestamp", "timestamp",
{
unique: false
})
};
req.onsuccess = function() {
db = req.result;
IDBFS.dbs[name] = db;
callback(null, db)
};
req.onerror = function() {
callback(this.error)
}
},
getLocalSet: function(mount, callback) {
var entries = {};
function isRealDir(p) {
return p !== "." && p !== ".."
}
function toAbsolute(root) {
return function(p) {
return PATH.join2(root, p)
}
}
var check = FS.readdir(mount.mountpoint).filter(isRealDir).map(toAbsolute(mount.mountpoint));
while (check.length) {
var path = check.pop();
var stat;
try {
stat = FS.stat(path)
} catch (e) {
return callback(e)
}
if (FS.isDir(stat.mode))
check.push.apply(check,
FS.readdir(path).filter(isRealDir).map(toAbsolute(path)));
entries[path] = {
timestamp: stat.mtime
}
}
return callback(null, {
type: "local",
entries: entries
})
},
getRemoteSet: function(mount, callback) {
var entries = {};
IDBFS.getDB(mount.mountpoint, function(err, db) {
if (err)
return callback(err);
var transaction = db.transaction([IDBFS.DB_STORE_NAME], "readonly");
transaction.onerror = function() {
callback(this.error)
};
var store = transaction.objectStore(IDBFS.DB_STORE_NAME);
var index = store.index("timestamp");
index.openKeyCursor().onsuccess =
function(event) {
var cursor = event.target.result;
if (!cursor)
return callback(null, {
type: "remote",
db: db,
entries: entries
});
entries[cursor.primaryKey] = {
timestamp: cursor.key
};
cursor.continue()
}
})
},
loadLocalEntry: function(path, callback) {
var stat,
node;
try {
var lookup = FS.lookupPath(path);
node = lookup.node;
stat = FS.stat(path)
} catch (e) {
return callback(e)
}
if (FS.isDir(stat.mode))
return callback(null, {
timestamp: stat.mtime,
mode: stat.mode
});
else if (FS.isFile(stat.mode)) {
node.contents = MEMFS.getFileDataAsTypedArray(node);
return callback(null, {
timestamp: stat.mtime,
mode: stat.mode,
contents: node.contents
})
} else
return callback(new Error("node type not supported"))
},
storeLocalEntry: function(path, entry, callback) {
try {
if (FS.isDir(entry.mode))
FS.mkdir(path, entry.mode);
else if (FS.isFile(entry.mode))
FS.writeFile(path, entry.contents, {
encoding: "binary",
canOwn: true
});
else
return callback(new Error("node type not supported"));
FS.utime(path, entry.timestamp, entry.timestamp)
} catch (e) {
return callback(e)
}
callback(null)
},
removeLocalEntry: function(path,
callback) {
try {
var lookup = FS.lookupPath(path);
var stat = FS.stat(path);
if (FS.isDir(stat.mode))
FS.rmdir(path);
else if (FS.isFile(stat.mode))
FS.unlink(path)
} catch (e) {
return callback(e)
}
callback(null)
},
loadRemoteEntry: function(store, path, callback) {
var req = store.get(path);
req.onsuccess = function(event) {
callback(null, event.target.result)
};
req.onerror = function() {
callback(this.error)
}
},
storeRemoteEntry: function(store, path, entry, callback) {
var req = store.put(entry, path);
req.onsuccess = function() {
callback(null)
};
req.onerror = function() {
callback(this.error)
}
},
removeRemoteEntry: function(store, path, callback) {
var req = store.delete(path);
req.onsuccess = function() {
callback(null)
};
req.onerror = function() {
callback(this.error)
}
},
reconcile: function(src, dst, callback) {
var total = 0;
var create = [];
Object.keys(src.entries).forEach(function(key) {
var e = src.entries[key];
var e2 = dst.entries[key];
if (!e2 || e.timestamp > e2.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() {
done(this.error)
};
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) {
if (flags in NODEFS.flagsToPermissionStringMap)
return NODEFS.flagsToPermissionStringMap[flags];
else
return flags
},
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 {
return fs.readlinkSync(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) {
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 < res; i++)
buffer[offset + i] = nbuffer[i];
return res
},
write: function(stream, buffer, offset, length, position) {
var nbuffer = new Buffer(buffer.subarray(offset, offset + length));
var res;
try {
res = fs.writeSync(stream.nfd, nbuffer, 0, length, position)
} catch (e) {
throw new FS.ErrnoError(ERRNO_CODES[e.code]);
}
return res
},
llseek: function(stream, offset, whence) {
var position = offset;
if (whence === 1)
position += stream.position;
else if (whence === 2)
if (FS.isFile(stream.node.mode))
try {
var stat = fs.fstatSync(stream.nfd);
position += stat.size
} catch (e) {
throw new FS.ErrnoError(ERRNO_CODES[e.code]);
}
if (position < 0)
throw new FS.ErrnoError(ERRNO_CODES.EINVAL);
stream.position = position;
return position
}
}
};
var _stdin = allocate(1, "i32*", ALLOC_STATIC);
var _stdout = allocate(1, "i32*", ALLOC_STATIC);
var _stderr = allocate(1, "i32*", ALLOC_STATIC);
function _fflush(stream) {}
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: {},
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 || {};
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; i < parts.length; i++) {
var islast = i === parts.length - 1;
if (islast && opts.parent)
break;
current = FS.lookupNode(current, parts[i]);
current_path = PATH.join2(current_path, parts[i]);
if (FS.isMountpoint(current))
if (!islast || islast && opts.follow_mount)
current = current.mounted.root;
if (!islast || opts.follow) {
var count =
0;
while (FS.isLink(current.mode)) {
var link = FS.readlink(current_path);
current_path = PATH.resolve(PATH.dirname(current_path), link);
var lookup = FS.lookupPath(current_path, {
recurse_count: opts.recurse_count
});
current = lookup.node;
if (count++ > 40)
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 < name.length; i++)
hash = (hash << 5) - hash + name.charCodeAt(i) | 0;
return (parentid + hash >>> 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);
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 accmode = flag & 2097155;
var perms = ["r", "w", "rw"][accmode];
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) {
return FS.nodePermissions(dir, "x")
},
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
},
getStreamFromPtr: function(ptr) {
return FS.streams[ptr - 1]
},
getPtrForStream: function(stream) {
return stream ? stream.fd + 1 : 0
},
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);
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) {
var lookup = FS.lookupPath(newpath, {
parent: true
});
var parent = lookup.node;
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.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.node_ops.readlink)
throw new FS.ErrnoError(ERRNO_CODES.EINVAL);
return link.node_ops.readlink(link)
},
stat: function(path, dontFollow) {
var lookup = FS.lookupPath(path, {
follow: !dontFollow
});
var node = lookup.node;
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) {
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) {}
}
if (flags & 64)
if (node) {
if (flags & 128)
throw new FS.ErrnoError(ERRNO_CODES.EEXIST);
} else
node = FS.mknod(path, mode, 0);
if (!node)
throw new FS.ErrnoError(ERRNO_CODES.ENOENT);
if (FS.isChrdev(node.mode))
flags &= ~512;
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) {
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);
return stream.stream_ops.llseek(stream, offset, whence)
},
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)
},
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 = "";
var utf8 = new Runtime.UTF8Processor;
for (var i = 0; i < length; i++)
ret += utf8.processCChar(buf[i])
} 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 utf8 = new Runtime.UTF8Processor;
var buf = new Uint8Array(utf8.processJSString(data));
FS.write(stream, buf, 0, buf.length, 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")
},
createDefaultDevices: function() {
FS.mkdir("/dev");
FS.registerDevice(FS.makedev(1, 3), {
read: function() {
return 0
},
write: function() {
return 0
}
});
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));
FS.mkdir("/dev/shm");
FS.mkdir("/dev/shm/tmp")
},
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");
HEAP32[_stdin >> 2] = FS.getPtrForStream(stdin);
assert(stdin.fd === 0, "invalid handle for stdin (" + stdin.fd + ")");
var stdout = FS.open("/dev/stdout", "w");
HEAP32[_stdout >> 2] = FS.getPtrForStream(stdout);
assert(stdout.fd === 1, "invalid handle for stdout (" + stdout.fd + ")");
var stderr = FS.open("/dev/stderr", "w");
HEAP32[_stderr >> 2] = FS.getPtrForStream(stderr);
assert(stderr.fd === 2, "invalid handle for stderr (" + stderr.fd + ")")
},
ensureErrnoError: function() {
if (FS.ErrnoError)
return;
FS.ErrnoError = function ErrnoError(errno) {
this.errno = errno;
for (var key in ERRNO_CODES)
if (ERRNO_CODES[key] ===
errno) {
this.code = key;
break
}
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 = "<generic error, no stack>"
})
},
staticInit: function() {
FS.ensureErrnoError();
FS.nameTable = new Array(4096);
FS.mount(MEMFS, {}, "/");
FS.createDefaultDirectories();
FS.createDefaultDevices()
},
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;
for (var i = 0; i < FS.streams.length; i++) {
var stream = FS.streams[i];
if (!stream)
continue;
FS.close(stream)
}
},
getMode: function(canRead, canWrite) {
var mode = 0;
if (canRead)
mode |= 292 | 73;
if (canWrite)
mode |= 146;
return mode
},
joinPath: function(parts, forceRelative) {
var path = PATH.join.apply(null, parts);
if (forceRelative && path[0] == "/")
path = path.substr(1);
return path
},
absolutePath: function(relative, base) {
return PATH.resolve(base, relative)
},
standardizePath: function(path) {
return PATH.normalize(path)
},
findObject: function(path, dontResolveLastLink) {
var ret = FS.analyzePath(path, dontResolveLastLink);
if (ret.exists)
return ret.object;
else {
___setErrNo(ret.error);
return null
}
},
analyzePath: function(path, dontResolveLastLink) {
try {
var lookup = FS.lookupPath(path, {
follow: !dontResolveLastLink
});
path = lookup.path
} catch (e) {}
var ret = {
isRoot: false,
exists: false,
error: 0,
name: null,
path: null,
object: null,
parentExists: false,
parentPath: null,
parentObject: null
};
try {
var lookup = FS.lookupPath(path, {
parent: true
});
ret.parentExists = true;
ret.parentPath = lookup.path;
ret.parentObject = lookup.node;
ret.name = PATH.basename(path);
lookup = FS.lookupPath(path, {
follow: !dontResolveLastLink
});
ret.exists = true;
ret.path = lookup.path;
ret.object = lookup.node;
ret.name = lookup.node.name;
ret.isRoot = lookup.path === "/"
} catch (e) {
ret.error = e.errno
}
return ret
},
createFolder: function(parent, name, canRead, canWrite) {
var path = PATH.join2(typeof parent === "string" ? parent : FS.getPath(parent), name);
var mode = FS.getMode(canRead, canWrite);
return FS.mkdir(path, mode)
},
createPath: function(parent, path, canRead, canWrite) {
parent = typeof parent === "string" ? parent : FS.getPath(parent);
var parts = path.split("/").reverse();
while (parts.length) {
var part =
parts.pop();
if (!part)
continue;
var current = PATH.join2(parent, part);
try {
FS.mkdir(current)
} catch (e) {}
parent = current
}
return current
},
createFile: function(parent, name, properties, canRead, canWrite) {
var path = PATH.join2(typeof parent === "string" ? parent : FS.getPath(parent), name);
var mode = FS.getMode(canRead, canWrite);
return FS.create(path, mode)
},
createDataFile: function(parent, name, data, canRead, canWrite, canOwn) {
var path = name ? PATH.join2(typeof parent === "string" ? parent : FS.getPath(parent), name) : parent;
var mode = FS.getMode(canRead,
canWrite);
var node = FS.create(path, mode);
if (data) {
if (typeof data === "string") {
var arr = new Array(data.length);
for (var i = 0, len = data.length; i < len; ++i)
arr[i] = data.charCodeAt(i);
data = arr
}
FS.chmod(node, mode | 146);
var stream = FS.open(node, "w");
FS.write(stream, data, 0, data.length, 0, canOwn);
FS.close(stream);
FS.chmod(node, mode)
}
return node
},
createDevice: function(parent, name, input, output) {
var path = PATH.join2(typeof parent === "string" ? parent : FS.getPath(parent), name);
var mode = FS.getMode(!!input, !!output);
if (!FS.createDevice.major)
FS.createDevice.major =
64;
var dev = FS.makedev(FS.createDevice.major++, 0);
FS.registerDevice(dev, {
open: function(stream) {
stream.seekable = false
},
close: function(stream) {
if (output && output.buffer && output.buffer.length)
output(10)
},
read: function(stream, buffer, offset, length, pos) {
var bytesRead = 0;
for (var i = 0; i < length; i++) {
var result;
try {
result = input()
} catch (e) {
throw new FS.ErrnoError(ERRNO_CODES.EIO);
}
if (result === undefined && bytesRead === 0)
throw new FS.ErrnoError(ERRNO_CODES.EAGAIN);
if (result === null || result === undefined)
break;
bytesRead++;
buffer[offset + i] = result
}
if (bytesRead)
stream.node.timestamp = Date.now();
return bytesRead
},
write: function(stream, buffer, offset, length, pos) {
for (var i = 0; i < length; i++)
try {
output(buffer[offset + i])
} catch (e) {
throw new FS.ErrnoError(ERRNO_CODES.EIO);
}
if (length)
stream.node.timestamp = Date.now();
return i
}
});
return FS.mkdev(path, mode, dev)
},
createLink: function(parent, name, target, canRead, canWrite) {
var path = PATH.join2(typeof parent === "string" ? parent : FS.getPath(parent), name);
return FS.symlink(target, path)
},
forceLoadFile: function(obj) {
if (obj.isDevice ||
obj.isFolder || obj.link || obj.contents)
return true;
var success = true;
if (typeof XMLHttpRequest !== "undefined")
throw new Error("Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread.");
else if (Module["read"])
try {
obj.contents = intArrayFromString(Module["read"](obj.url), true);
obj.usedBytes = obj.contents.length
} catch (e) {
success = false
}
else
throw new Error("Cannot load without read() or XMLHttpRequest.");
if (!success)
___setErrNo(ERRNO_CODES.EIO);
return success
},
createLazyFile: function(parent, name, url, canRead, canWrite) {
function LazyUint8Array() {
this.lengthKnown = false;
this.chunks = []
}
LazyUint8Array.prototype.get = function LazyUint8Array_get(idx) {
if (idx > this.length - 1 || idx < 0)
return undefined;
var chunkOffset = idx % this.chunkSize;
var chunkNum = Math.floor(idx / this.chunkSize);
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 < size; i++)
buffer[offset + i] = contents[position + i];
else
for (var i = 0; i < size; i++)
buffer[offset + i] = contents.get(position + i);
return size
};
node.stream_ops = stream_ops;
return node
},
createPreloadedFile: function(parent, name, url, canRead, canWrite, onload, onerror, dontCreateFile, canOwn) {
Browser.init();
var fullname = name ? PATH.resolve(PATH.join2(parent, name)) : parent;
function processData(byteArray) {
function finish(byteArray) {
if (!dontCreateFile)
FS.createDataFile(parent, name, byteArray, canRead, canWrite, canOwn);
if (onload)
onload();
removeRunDependency("cp " + fullname)
}
var handled = false;
Module["preloadPlugins"].forEach(function(plugin) {
if (handled)
return;
if (plugin["canHandle"](fullname)) {
plugin["handle"](byteArray, fullname, finish, function() {
if (onerror)
onerror();
removeRunDependency("cp " + fullname)
});
handled = true
}
});
if (!handled)
finish(byteArray)
}
addRunDependency("cp " + fullname);
if (typeof url == "string")
Browser.asyncLoad(url, function(byteArray) {
processData(byteArray)
}, onerror);
else
processData(url)
},
indexedDB: function() {
return window.indexedDB ||
window.mozIndexedDB || window.webkitIndexedDB || window.msIndexedDB
},
DB_NAME: function() {
return "EM_FS_" + window.location.pathname
},
DB_VERSION: 20,
DB_STORE_NAME: "FILE_DATA",
saveFilesToDB: function(paths, onload, onerror) {
onload = onload || function() {};
onerror = onerror || function() {};
var indexedDB = FS.indexedDB();
try {
var openRequest = indexedDB.open(FS.DB_NAME(), FS.DB_VERSION)
} catch (e) {
return onerror(e)
}
openRequest.onupgradeneeded = function openRequest_onupgradeneeded() {
console.log("creating db");
var db = openRequest.result;
db.createObjectStore(FS.DB_STORE_NAME)
};
openRequest.onsuccess = function openRequest_onsuccess() {
var db = openRequest.result;
var transaction = db.transaction([FS.DB_STORE_NAME], "readwrite");
var files = transaction.objectStore(FS.DB_STORE_NAME);
var ok = 0,
fail = 0,
total = paths.length;
function finish() {
if (fail == 0)
onload();
else
onerror()
}
paths.forEach(function(path) {
var putRequest = files.put(FS.analyzePath(path).object.contents, path);
putRequest.onsuccess = function putRequest_onsuccess() {
ok++;
if (ok + fail == total)
finish()
};
putRequest.onerror = function putRequest_onerror() {
fail++;
if (ok + fail == total)
finish()
}
});
transaction.onerror = onerror
};
openRequest.onerror = onerror
},
loadFilesFromDB: function(paths, onload, onerror) {
onload = onload || function() {};
onerror = onerror || function() {};
var indexedDB = FS.indexedDB();
try {
var openRequest = indexedDB.open(FS.DB_NAME(), FS.DB_VERSION)
} catch (e) {
return onerror(e)
}
openRequest.onupgradeneeded = onerror;
openRequest.onsuccess = function openRequest_onsuccess() {
var db = openRequest.result;
try {
var transaction =
db.transaction([FS.DB_STORE_NAME], "readonly")
} catch (e) {
onerror(e);
return
}
var files = transaction.objectStore(FS.DB_STORE_NAME);
var ok = 0,
fail = 0,
total = paths.length;
function finish() {
if (fail == 0)
onload();
else
onerror()
}
paths.forEach(function(path) {
var getRequest = files.get(path);
getRequest.onsuccess = function getRequest_onsuccess() {
if (FS.analyzePath(path).exists)
FS.unlink(path);
FS.createDataFile(PATH.dirname(path), PATH.basename(path), getRequest.result, true, true, true);
ok++;
if (ok + fail == total)
finish()
};
getRequest.onerror =
function getRequest_onerror() {
fail++;
if (ok + fail == total)
finish()
}
});
transaction.onerror = onerror
};
openRequest.onerror = onerror
}
};
var PATH = {
splitPath: function(filename) {
var splitPathRe = /^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;
return splitPathRe.exec(filename).slice(1)
},
normalizeArray: function(parts, allowAboveRoot) {
var up = 0;
for (var i = parts.length - 1; 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)
continue;
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 < arr.length; start++)
if (arr[start] !== "")
break;
var end = arr.length - 1;
for (; end >= 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; i < length; i++)
if (fromParts[i] !== toParts[i]) {
samePartsLength = i;
break
}
var outputParts = [];
for (var i = samePartsLength; i < fromParts.length; i++)
outputParts.push("..");
outputParts = outputParts.concat(toParts.slice(samePartsLength));
return outputParts.join("/")
}
};
var Browser = {
mainLoop: {
scheduler: null,
method: "",
shouldPause: false,
paused: false,
queue: [],
pause: function() {
Browser.mainLoop.shouldPause = true
},
resume: function() {
if (Browser.mainLoop.paused) {
Browser.mainLoop.paused = false;
Browser.mainLoop.scheduler()
}
Browser.mainLoop.shouldPause = false
},
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 <
expected)
Module["setStatus"](message + " (" + (expected - remaining) + "/" + expected + ")");
else
Module["setStatus"](message);
else
Module["setStatus"]("")
}
}
},
isFullScreen: false,
pointerLock: false,
moduleContextCreatedCallbacks: [],
workers: [],
init: function() {
if (!Module["preloadPlugins"])
Module["preloadPlugins"] = [];
if (Browser.initted || ENVIRONMENT_IS_WORKER)
return;
Browser.initted = true;
try {
new Blob;
Browser.hasBlobConstructor = true
} catch (e) {
Browser.hasBlobConstructor = false;
console.log("warning: no blob constructor, cannot create blobs with mimetypes")
}
Browser.BlobBuilder =
typeof MozBlobBuilder != "undefined" ? MozBlobBuilder : typeof WebKitBlobBuilder != "undefined" ? WebKitBlobBuilder : !Browser.hasBlobConstructor ? console.log("warning: no BlobBuilder") : null;
Browser.URLObject = typeof window != "undefined" ? window.URL ? window.URL : window.webkitURL : undefined;
if (!Module.noImageDecoding && typeof Browser.URLObject === "undefined") {
console.log("warning: Browser does not support creating object URLs. Built-in browser image decoding will not be available.");
Module.noImageDecoding = true
}
var imagePlugin =
{};
imagePlugin["canHandle"] = function imagePlugin_canHandle(name) {
return !Module.noImageDecoding && /\.(jpg|jpeg|png|bmp)$/i.test(name)
};
imagePlugin["handle"] = function imagePlugin_handle(byteArray, name, onload, onerror) {
var b = null;
if (Browser.hasBlobConstructor)
try {
b = new Blob([byteArray], {
type: Browser.getMimetype(name)
});
if (b.size !== byteArray.length)
b = new Blob([(new Uint8Array(byteArray)).buffer], {
type: Browser.getMimetype(name)
})
} catch (e) {
Runtime.warnOnce("Blob constructor present but fails: " + e + "; falling back to blob builder")
}
if (!b) {
var bb =
new Browser.BlobBuilder;
bb.append((new Uint8Array(byteArray)).buffer);
b = bb.getBlob()
}
var url = Browser.URLObject.createObjectURL(b);
var img = new Image;
img.onload = function img_onload() {
assert(img.complete, "Image " + name + " could not be decoded");
var canvas = document.createElement("canvas");
canvas.width = img.width;
canvas.height = img.height;
var ctx = canvas.getContext("2d");
ctx.drawImage(img, 0, 0);
Module["preloadedImages"][name] = canvas;
Browser.URLObject.revokeObjectURL(url);
if (onload)
onload(byteArray)
};
img.onerror =
function img_onerror(event) {
console.log("Image " + url + " could not be decoded");
if (onerror)
onerror()
};
img.src = url
};
Module["preloadPlugins"].push(imagePlugin);
var audioPlugin = {};
audioPlugin["canHandle"] = function audioPlugin_canHandle(name) {
return !Module.noAudioDecoding && name.substr(-4) in {
".ogg": 1,
".wav": 1,
".mp3": 1
}
};
audioPlugin["handle"] = function audioPlugin_handle(byteArray, name, onload, onerror) {
var done = false;
function finish(audio) {
if (done)
return;
done = true;
Module["preloadedAudios"][name] = audio;
if (onload)
onload(byteArray)
}
function fail() {
if (done)
return;
done = true;
Module["preloadedAudios"][name] = new Audio;
if (onerror)
onerror()
}
if (Browser.hasBlobConstructor) {
try {
var b = new Blob([byteArray], {
type: Browser.getMimetype(name)
})
} catch (e) {
return fail()
}
var url = Browser.URLObject.createObjectURL(b);
var audio = new Audio;
audio.addEventListener("canplaythrough", function() {
finish(audio)
}, false);
audio.onerror = function audio_onerror(event) {
if (done)
return;
console.log("warning: browser could not fully decode audio " + name + ", trying slower base64 approach");
function encode64(data) {
var BASE = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
var PAD = "=";
var ret = "";
var leftchar = 0;
var leftbits = 0;
for (var i = 0; i < data.length; i++) {
leftchar = leftchar << 8 | data[i];
leftbits += 8;
while (leftbits >= 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"];
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);
function pointerLockChange() {
Browser.pointerLock = document["pointerLockElement"] === canvas || document["mozPointerLockElement"] === canvas || document["webkitPointerLockElement"] === canvas || document["msPointerLockElement"] === canvas
}
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) {
var ctx;
var errorInfo = "?";
function onContextCreationError(event) {
errorInfo = event.statusMessage || errorInfo
}
try {
if (useWebGL) {
var contextAttributes = {
antialias: false,
alpha: false
};
if (webGLContextAttributes)
for (var attribute in webGLContextAttributes)
contextAttributes[attribute] = webGLContextAttributes[attribute];
canvas.addEventListener("webglcontextcreationerror", onContextCreationError, false);
try {
["experimental-webgl", "webgl"].some(function(webglId) {
return ctx = canvas.getContext(webglId, contextAttributes)
})
} finally {
canvas.removeEventListener("webglcontextcreationerror", onContextCreationError, false)
}
} else
ctx = canvas.getContext("2d");
if (!ctx)
throw ":(";
} catch (e) {
Module.print("Could not create canvas: " +
[errorInfo, e]);
return null
}
if (useWebGL)
canvas.style.backgroundColor = "black";
if (setInModule) {
GLctx = Module.ctx = ctx;
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) {
Browser.lockPointer = lockPointer;
Browser.resizeCanvas = resizeCanvas;
if (typeof Browser.lockPointer ===
"undefined")
Browser.lockPointer = true;
if (typeof Browser.resizeCanvas === "undefined")
Browser.resizeCanvas = false;
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);
canvasContainer.requestFullScreen()
},
requestAnimationFrame: function requestAnimationFrame(func) {
if (typeof window === "undefined")
setTimeout(func, 1E3 / 60);
else {
if (!window.requestAnimationFrame)
window.requestAnimationFrame = window["requestAnimationFrame"] || window["mozRequestAnimationFrame"] || window["webkitRequestAnimationFrame"] || window["msRequestAnimationFrame"] || window["oRequestAnimationFrame"] || window["setTimeout"];
window.requestAnimationFrame(func)
}
},
safeCallback: function(func) {
return function() {
if (!ABORT)
return func.apply(null,
arguments)
}
},
safeRequestAnimationFrame: function(func) {
return Browser.requestAnimationFrame(function() {
if (!ABORT)
func()
})
},
safeSetTimeout: function(func, timeout) {
Module["noExitRuntime"] = true;
return setTimeout(function() {
if (!ABORT)
func()
}, timeout)
},
safeSetInterval: function(func, timeout) {
Module["noExitRuntime"] = true;
return setInterval(function() {
if (!ABORT)
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 Math.max(-1, Math.min(1, 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") {
Browser.lastTouches[touch.identifier] =
Browser.touches[touch.identifier];
Browser.touches[touch.identifier] = {
x: adjustedX,
y: adjustedY
}
}
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 < Module["forcedAspectRatio"])
w = Math.round(h * Module["forcedAspectRatio"]);
else
h = Math.round(w / Module["forcedAspectRatio"]);
if ((document["webkitFullScreenElement"] || document["webkitFullscreenElement"] || document["mozFullScreenElement"] || document["mozFullscreenElement"] || document["fullScreenElement"] || document["fullscreenElement"] || document["msFullScreenElement"] || document["msFullscreenElement"] || document["webkitCurrentFullScreenElement"]) ===
canvas.parentNode && typeof screen != "undefined") {
var factor = Math.min(screen.width / w, screen.height / h);
w = Math.round(w * factor);
h = Math.round(h * factor)
}
if (Browser.resizeCanvas) {
if (canvas.width != w)
canvas.width = w;
if (canvas.height != h)
canvas.height = h;
if (typeof canvas.style != "undefined") {
canvas.style.removeProperty("width");
canvas.style.removeProperty("height")
}
} else {
if (canvas.width != wNative)
canvas.width = wNative;
if (canvas.height != hNative)
canvas.height = hNative;
if (typeof canvas.style != "undefined")
if (w != wNative ||
h != hNative) {
canvas.style.setProperty("width", w + "px", "important");
canvas.style.setProperty("height", h + "px", "important")
} else {
canvas.style.removeProperty("width");
canvas.style.removeProperty("height")
}
}
}
};
function _time(ptr) {
var ret = Math.floor(Date.now() / 1E3);
if (ptr)
HEAP32[ptr >> 2] = ret;
return ret
}
function _sysconf(name) {
switch (name) {
case 30:
return 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 79:
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 27:
case 246:
case 127:
case 128:
case 23:
case 24:
case 160:
case 161:
case 181:
case 182:
case 242:
case 183:
case 184:
case 243:
case 244:
case 245:
case 165:
case 178:
case 179:
case 49:
case 50:
case 168:
case 169:
case 175:
case 170:
case 171:
case 172:
case 97:
case 76:
case 32:
case 173:
case 35:
return -1;
case 176:
case 177:
case 7:
case 155:
case 8:
case 157:
case 125:
case 126:
case 92:
case 93:
case 129:
case 130:
case 131:
case 94:
case 91:
return 1;
case 74:
case 60:
case 69:
case 70:
case 4:
return 1024;
case 31:
case 42:
case 72:
return 32;
case 87:
case 26:
case 33:
return 2147483647;
case 34:
case 1:
return 47839;
case 38:
case 36:
return 99;
case 43:
case 37:
return 2048;
case 0:
return 2097152;
case 3:
return 65536;
case 28:
return 32768;
case 44:
return 32767;
case 75:
return 16384;
case 39:
return 1E3;
case 89:
return 700;
case 71:
return 256;
case 40:
return 255;
case 2:
return 100;
case 180:
return 64;
case 25:
return 20;
case 5:
return 16;
case 6:
return 6;
case 73:
return 4;
case 84:
return 1
}
___setErrNo(ERRNO_CODES.EINVAL);
return -1
}
function _malloc(bytes) {
var ptr = Runtime.dynamicAlloc(bytes + 8);
return ptr + 8 & 4294967288
}
Module["_malloc"] = _malloc;
function ___cxa_allocate_exception(size) {
var ptr = _malloc(size + ___cxa_exception_header_size);
return ptr + ___cxa_exception_header_size
}
var __ZTISt9exception = allocate([allocate([1, 0, 0, 0, 0, 0, 0], "i8", ALLOC_STATIC) + 8, 0], "i32", ALLOC_STATIC);
___errno_state = Runtime.staticAlloc(4);
HEAP32[___errno_state >> 2] = 0;
Module["requestFullScreen"] = function Module_requestFullScreen(lockPointer, resizeCanvas) {
Browser.requestFullScreen(lockPointer, resizeCanvas)
};
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()
};
FS.staticInit();
__ATINIT__.unshift({
func: function() {
if (!Module["noFSInit"] && !FS.init.initialized)
FS.init()
}
});
__ATMAIN__.push({
func: function() {
FS.ignorePermissions = false
}
});
__ATEXIT__.push({
func: 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;
__ATINIT__.unshift({
func: function() {
TTY.init()
}
});
__ATEXIT__.push({
func: function() {
TTY.shutdown()
}
});
TTY.utf8 = new Runtime.UTF8Processor;
if (ENVIRONMENT_IS_NODE) {
var fs = require("fs");
NODEFS.staticInit()
}
STACK_BASE = STACKTOP = Runtime.alignMemory(STATICTOP);
staticSealed = true;
STACK_MAX = STACK_BASE + 5242880;
DYNAMIC_BASE = DYNAMICTOP = Runtime.alignMemory(STACK_MAX);
assert(DYNAMIC_BASE < TOTAL_MEMORY, "TOTAL_MEMORY not big enough for stack");
var ctlz_i8 = allocate([8, 7, 6, 6, 5, 5, 5, 5, 4, 4, 4, 4, 4, 4, 4, 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], "i8", ALLOC_DYNAMIC);
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_DYNAMIC);
var Math_min = Math.min;
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)
}
}
function asmPrintInt(x, y) {
Module.print("int " + x + "," + y)
}
function asmPrintFloat(x, y) {
Module.print("float " + x + "," + y)
}
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 = env.ctlz_i8 | 0;
var o = env.__ZTISt9exception | 0;
var p =
0;
var q = 0;
var r = 0;
var s = 0;
var t = +env.NaN,
u = +env.Infinity;
var v = 0,
w = 0,
x = 0,
y = 0,
z = 0,
A = 0,
B = 0,
C = 0,
D = 0;
var E = 0;
var F = 0;
var G = 0;
var H = 0;
var I = 0;
var J = 0;
var K = 0;
var L = 0;
var M = 0;
var N = 0;
var O = global.Math.floor;
var P = global.Math.abs;
var Q = global.Math.sqrt;
var R = global.Math.pow;
var S = global.Math.cos;
var T = global.Math.sin;
var U = global.Math.tan;
var V = global.Math.acos;
var W = global.Math.asin;
var X = global.Math.atan;
var Y = global.Math.atan2;
var Z = global.Math.exp;
var _ = global.Math.log;
var $ = global.Math.ceil;
var aa =
global.Math.imul;
var ba = env.abort;
var ca = env.assert;
var da = env.asmPrintInt;
var ea = env.asmPrintFloat;
var fa = env.min;
var ga = env.invoke_diiiiid;
var ha = env.invoke_ii;
var ia = env.invoke_viiiii;
var ja = env.invoke_did;
var ka = env.invoke_vi;
var la = env.invoke_diiiid;
var ma = env.invoke_vii;
var na = env.invoke_iiii;
var oa = env.invoke_viii;
var pa = env.invoke_v;
var qa = env.invoke_viid;
var ra = env.invoke_iiiii;
var sa = env.invoke_viiiiii;
var ta = env.invoke_iii;
var ua = env.invoke_iiiiii;
var va = env.invoke_viiii;
var wa = env._cosf;
var xa = env.__ZSt9terminatev;
var ya = env._b2WorldPreSolve;
var za = env.___cxa_is_number_type;
var Aa = env.___cxa_allocate_exception;
var Ba = env.___cxa_find_matching_catch;
var Ca = env._fflush;
var Da = env._time;
var Ea = env.__exit;
var Fa = env.___setErrNo;
var Ga = env._sbrk;
var Ha = env.___cxa_begin_catch;
var Ia = env._sinf;
var Ja = env.___resumeException;
var Ka = env.__ZSt18uncaught_exceptionv;
var La = env._b2WorldRayCastCallback;
var Ma = env._emscripten_memcpy_big;
var Na = env._floorf;
var Oa = env._sqrtf;
var Pa = env._b2WorldBeginContactBody;
var Qa = env.___errno_location;
var Ra = env.__ZNSt9exceptionD2Ev;
var Sa = env.___cxa_throw;
var Ta = env._sysconf;
var Ua = env._abort;
var Va = env.___cxa_does_inherit;
var Wa = env._b2WorldEndContactBody;
var Xa = env._b2WorldQueryAABB;
var Ya = env._b2WorldPostSolve;
var Za = env._exit;
var _a = env.___cxa_pure_virtual;
var $a = 0;
function $k(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;
d = i;
i = i + 64 | 0;
e = d;
f = d + 16 | 0;
g[e >> 2] = 3.4028234663852886E38;
g[e + 4 >> 2] = 3.4028234663852886E38;
h = e + 8 | 0;
g[h >> 2] = -3.4028234663852886E38;
g[e + 12 >> 2] = -3.4028234663852886E38;
j = c[a + 44 >> 2] | 0;
if ((j | 0) > 0) {
k = c[a + 104 >> 2] | 0;
l = c[a + 96 >> 2] | 0;
m = +g[b >> 2];
n = 3.4028234663852886E38;
o = 3.4028234663852886E38;
p = -3.4028234663852886E38;
q = -3.4028234663852886E38;
r = 0;
do {
s = k + (r << 3) | 0;
t = +g[s >> 2];
u = +g[s + 4 >> 2];
s = l + (r << 3) | 0;
v = +g[s >> 2];
w = +g[s + 4 >> 2];
x = v + t * m;
t = u * m + w;
u = v < x ? v : x;
y = w < t ? w : t;
n = n < u ? n : u;
o = o < y ? o : y;
y = +n;
u = +o;
s = e;
g[s >> 2] = y;
g[s + 4 >> 2] = u;
u = v > x ? v : x;
x = w > t ? w : t;
p = p > u ? p : u;
q = q > x ? q : x;
x = +p;
u = +q;
s = h;
g[s >> 2] = x;
g[s + 4 >> 2] = u;
r = r + 1 | 0
} while ((r |
0) < (j | 0))
}
c[f + 4 >> 2] = a;
c[f >> 2] = 6872;
j = f + 8 | 0;
c[j + 0 >> 2] = c[b + 0 >> 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];
Dj(c[a + 400 >> 2] | 0, f, e);
i = d;
return
}
function al(b, d) {
b = b | 0;
d = d | 0;
var e = 0,
f = 0,
h = 0,
j = 0,
k = 0,
l = 0,
m = 0,
n = 0,
o = 0,
p = 0,
q = 0,
r = 0,
s = 0,
t = 0,
u = 0,
v = 0,
w = 0,
x = 0,
y = 0,
z = 0,
A = 0,
B = 0,
C = 0,
D = 0,
E = 0,
F = 0,
G = 0,
H = 0,
I = 0,
J = 0,
K = 0,
L = 0,
M = 0,
N = 0,
O = 0,
P = 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 = i;
i = i + 48 | 0;
f = e;
h = e + 16 | 0;
j = b + 44 | 0;
k = c[j >> 2] | 0;
if ((k | 0) > 0) {
l = c[b + 88 >> 2] | 0;
m = b + 104 | 0;
n = 0;
do {
if ((c[l + (n << 2) >> 2] & 1028 | 0) == 1028) {
o = c[m >> 2] | 0;
g[o + (n << 3) >> 2] = 0;
g[o + (n << 3) + 4 >> 2] = 0
}
n = n + 1 | 0
} while ((n | 0) < (k | 0))
}
p = +g[d >> 2] * 2.5;
k = b + 252 | 0;
if ((c[k >> 2] | 0) <= 0) {
i = e;
return
}
n = b + 248 | 0;
m = b + 96 | 0;
l = f + 8 | 0;
o = b + 144 | 0;
q = b + 104 | 0;
r = h + 16 | 0;
s = h + 20 | 0;
t = h + 4 | 0;
u = b + 32 | 0;
v = b + 320 | 0;
w = d + 4 | 0;
d = b + 88 | 0;
x = b + 21 | 0;
y = b + 112 | 0;
z = 0;
do {
A = c[n >> 2] | 0;
a:
do if ((c[A + (z * 20 | 0) + 8 >> 2] & 1024 | 0) != 0) {
B = c[A + (z * 20 | 0) >> 2] | 0;
C = c[A + (z * 20 | 0) + 4 >> 2] | 0;
D = c[m >> 2] | 0;
E =
D + (B << 3) | 0;
F = +g[E >> 2];
G = +g[E + 4 >> 2];
E = D + (C << 3) | 0;
H = +g[E >> 2];
I = +g[E + 4 >> 2];
J = +(F < H ? F : H);
K = +(G < I ? G : I);
E = f;
g[E >> 2] = J;
g[E + 4 >> 2] = K;
K = +(F > H ? F : H);
J = +(G > I ? G : I);
E = l;
g[E >> 2] = K;
g[E + 4 >> 2] = J;
E = c[o >> 2] | 0;
D = c[E + (B << 2) >> 2] | 0;
L = c[E + (C << 2) >> 2] | 0;
if ((D | 0) != 0 ? (c[D + 12 >> 2] & 2 | 0) != 0 : 0) {
nk(D);
J = +g[D + 56 >> 2];
M = +g[D + 48 >> 2] - J * (G - +g[D + 44 >> 2]);
N = J * (F - +g[D + 40 >> 2]) + +g[D + 52 >> 2]
} else {
E = (c[q >> 2] | 0) + (B << 3) | 0;
J = +g[E >> 2];
M = J;
N = +g[E + 4 >> 2]
}
if ((L | 0) != 0 ? (c[L + 12 >> 2] & 2 | 0) != 0 : 0) {
nk(L);
J = +g[L + 56 >> 2];
O = +g[L + 48 >> 2] - J * (I - +g[L + 44 >> 2]);
P = J * (H - +g[L +
40 >> 2]) + +g[L + 52 >> 2]
} else {
E = (c[q >> 2] | 0) + (C << 3) | 0;
J = +g[E >> 2];
O = J;
P = +g[E + 4 >> 2]
}
J = H - F;
H = I - G;
I = O - M;
K = P - N;
Nk(h, b, f);
E = c[r >> 2] | 0;
C = c[s >> 2] | 0;
if (E >>> 0 < C >>> 0) {
B = c[h >> 2] | 0;
R = c[t >> 2] | 0;
S = E;
while (1) {
E = c[S + 4 >> 2] & 1048575;
T = S;
S = S + 8 | 0;
c[r >> 2] = S;
if (E >>> 0 < B >>> 0 | E >>> 0 > R >>> 0)
if (S >>> 0 < C >>> 0) {
S = S;
continue
} else
break;
E = c[T >> 2] | 0;
if (!((E | 0) > -1))
break a;
T = (c[m >> 2] | 0) + (E << 3) | 0;
U = +g[T >> 2];
V = +g[T + 4 >> 2];
T = c[(c[o >> 2] | 0) + (E << 2) >> 2] | 0;
b:
do if (!((D | 0) == (T | 0) | (L | 0) == (T | 0))) {
W = (T | 0) == 0;
if (!W ? (c[T + 12 >> 2] & 2 | 0) != 0 : 0) {
nk(T);
X = +g[T + 56 >>
2];
Y = +g[T + 48 >> 2] - X * (V - +g[T + 44 >> 2]);
Z = X * (U - +g[T + 40 >> 2]) + +g[T + 52 >> 2]
} else {
_ = (c[q >> 2] | 0) + (E << 3) | 0;
X = +g[_ >> 2];
Y = X;
Z = +g[_ + 4 >> 2]
}
X = U - F;
$ = V - G;
aa = Y - M;
ba = Z - N;
ca = I * ba - K * aa;
da = J * ba - H * aa - (K * X - I * $);
ea = J * $ - H * X;
do if (ca == 0) {
if (da == 0)
break b;
fa = -ea / da;
if (!(fa >= 0 & fa < p))
break b;
ga = J + I * fa;
ha = H + K * fa;
ia = (ga * (X + aa * fa) + ha * ($ + ba * fa)) / (ga * ga + ha * ha);
if (ia >= 0 & ia <= 1)
ja = ia;
else
break b
} else {
ia = da * da - ea * 4 * ca;
if (ia < 0)
break b;
ha = +Q(+ia);
ia = ca * 2;
ga = (-da - ha) / ia;
fa = (ha - da) / ia;
_ = ga > fa;
ia = _ ? fa : ga;
ha = _ ? ga : fa;
fa = J + I * ia;
ga = H + K * ia;
ka = (fa *
(X + aa * ia) + ga * ($ + ba * ia)) / (fa * fa + ga * ga);
if (ia >= 0 & ia < p ? ka >= 0 & ka <= 1 : 0) {
ja = ka;
break
}
if (!(ha >= 0 & ha < p))
break b;
ka = J + I * ha;
ia = H + K * ha;
ga = (ka * (X + aa * ha) + ia * ($ + ba * ha)) / (ka * ka + ia * ia);
if (ga >= 0 & ga <= 1)
ja = ga;
else
break b
}
while (0);
ba = M + I * ja - Y;
$ = N + K * ja - Z;
aa = +g[u >> 2] * .75;
X = aa * +g[v >> 2] * aa;
aa = ba * X;
da = $ * X;
if (!W ? (c[T + 12 >> 2] & 2 | 0) != 0 : 0) {
nk(T);
X = +g[T + 32 >> 2];
nk(T);
ca = +g[T + 36 >> 2];
if (X > 0) {
ea = 1 / X;
_ = T + 48 | 0;
g[_ >> 2] = aa * ea + +g[_ >> 2];
_ = T + 52 | 0;
g[_ >> 2] = da * ea + +g[_ >> 2]
}
if (ca > 0) {
nk(T);
_ = T + 40 | 0;
ea = +g[_ >> 2];
la = T + 56 | 0;
g[la >> 2] = (da * (U - ea) - aa *
(V - +g[_ + 4 >> 2])) / ca + +g[la >> 2]
}
} else {
la = c[q >> 2] | 0;
_ = la + (E << 3) | 0;
g[_ >> 2] = ba + +g[_ >> 2];
_ = la + (E << 3) + 4 | 0;
g[_ >> 2] = $ + +g[_ >> 2]
}
$ = -+g[w >> 2];
ba = aa * $;
aa = da * $;
if (ba != 0 | aa != 0 ? (c[(c[d >> 2] | 0) + (E << 2) >> 2] & 4 | 0) == 0 : 0) {
if ((a[x >> 0] | 0) == 0) {
xn(c[y >> 2] | 0, 0, c[j >> 2] << 3 | 0) | 0;
a[x >> 0] = 1
}
_ = c[y >> 2] | 0;
la = _ + (E << 3) | 0;
g[la >> 2] = ba + +g[la >> 2];
la = _ + (E << 3) + 4 | 0;
g[la >> 2] = aa + +g[la >> 2]
}
}
while (0);
if (!(S >>> 0 < C >>> 0))
break
}
}
}
while (0);
z = z + 1 | 0
} while ((z | 0) < (c[k >> 2] | 0));
i = e;
return
}
function bl(b, d) {
b = b | 0;
d = d | 0;
var e = 0,
f = 0,
h = 0,
j = 0,
k = 0,
l = 0,
m = 0,
n = 0,
o = 0,
p = 0,
q = 0,
r = 0,
s = 0,
t = 0,
u = 0,
v = 0,
w = 0,
x = 0,
y = 0,
z = 0,
A = 0,
B = 0,
C = 0,
D = 0,
F = 0,
G = 0,
H = 0,
I = 0,
J = 0,
K = 0,
L = 0,
M = 0,
N = 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,
ga = 0;
e = i;
i = i + 48 | 0;
f = e + 32 | 0;
h = e + 28 | 0;
j = e;
k = b + 44 | 0;
l = c[k >> 2] | 0;
if ((l | 0) == 0) {
i = e;
return
}
m = c[b + 280 >> 2] | 0;
a:
do if ((m | 0) != 0) {
n = b + 296 | 0;
o = n;
p = +g[d >> 2] / +g[b + 396 >> 2] * 4294967296;
q = zn(~~p >>> 0 | 0, (+P(p) >= 1 ? p > 0 ? (fa(+O(p / 4294967296), 4294967295) | 0) >>> 0 : ~~+$((p - +(~~p >>> 0)) / 4294967296) >>> 0 : 0) | 0, c[o >> 2] | 0, c[o + 4 >> 2] | 0) | 0;
o = E;
r = n;
c[r >> 2] = q;
c[r + 4 >> 2] = o;
r = c[b +
288 >> 2] | 0;
q = b + 304 | 0;
if ((a[q >> 0] | 0) != 0) {
c[h >> 2] = m;
sl(r, r + (l << 2) | 0, h);
a[q >> 0] = 0
}
if ((l | 0) > 0) {
q = b + 88 | 0;
n = l;
do {
n = n + -1 | 0;
s = c[r + (n << 2) >> 2] | 0;
t = c[m + (s << 2) >> 2] | 0;
if ((o | 0) < (t | 0) | (t | 0) < 1)
break a;
Ak(b, s, c[(c[q >> 2] | 0) + (s << 2) >> 2] | 2)
} while ((n | 0) > 0)
}
}
while (0);
m = b + 8 | 0;
if ((c[m >> 2] & 2 | 0) != 0)
xk(b);
l = b + 12 | 0;
if ((a[l >> 0] | 0) != 0) {
c[m >> 2] = 0;
h = c[k >> 2] | 0;
if ((h | 0) > 0) {
n = c[b + 88 >> 2] | 0;
q = 0;
o = 0;
do {
q = c[n + (o << 2) >> 2] | q;
c[m >> 2] = q;
o = o + 1 | 0
} while ((o | 0) != (h | 0))
}
a[l >> 0] = 0
}
l = b + 20 | 0;
if ((a[l >> 0] | 0) != 0) {
h = b + 16 | 0;
c[h >> 2] = 0;
o = c[b + 312 >> 2] | 0;
if ((o |
0) != 0) {
q = 0;
n = o;
do {
q = c[n + 12 >> 2] | q;
c[h >> 2] = q;
n = c[n + 24 >> 2] | 0
} while ((n | 0) != 0)
}
a[l >> 0] = 0
}
if ((a[b >> 0] | 0) != 0) {
i = e;
return
}
l = b + 24 | 0;
c[l >> 2] = 0;
n = d + 20 | 0;
if ((c[n >> 2] | 0) <= 0) {
i = e;
return
}
q = b + 4 | 0;
h = j + 4 | 0;
o = b + 116 | 0;
r = b + 236 | 0;
s = b + 232 | 0;
t = b + 220 | 0;
u = b + 216 | 0;
v = b + 16 | 0;
w = b + 21 | 0;
x = b + 324 | 0;
y = b + 400 | 0;
z = b + 104 | 0;
A = b + 32 | 0;
B = b + 88 | 0;
C = b + 96 | 0;
D = b + 372 | 0;
F = b + 144 | 0;
G = b + 132 | 0;
H = b + 368 | 0;
I = b + 364 | 0;
J = b + 36 | 0;
K = b + 28 | 0;
L = b + 112 | 0;
M = f + 4 | 0;
do {
c[q >> 2] = (c[q >> 2] | 0) + 1;
c[j + 0 >> 2] = c[d + 0 >> 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];
p = +(c[n >> 2] | 0);
N = +g[j >> 2] / p;
g[j >> 2] = N;
R = +g[h >> 2] * p;
g[h >> 2] = R;
Gk(b, 0);
Yk(b);
xn(c[o >> 2] | 0, 0, c[k >> 2] << 2 | 0) | 0;
S = c[r >> 2] | 0;
if ((S | 0) > 0) {
T = c[s >> 2] | 0;
U = c[o >> 2] | 0;
V = 0;
do {
W = U + (c[T + (V * 28 | 0) >> 2] << 2) | 0;
g[W >> 2] = +g[T + (V * 28 | 0) + 12 >> 2] + +g[W >> 2];
V = V + 1 | 0
} while ((V | 0) != (S | 0))
}
S = c[t >> 2] | 0;
if ((S | 0) > 0) {
V = c[u >> 2] | 0;
T = c[o >> 2] | 0;
U = 0;
do {
W = c[V + (U * 24 | 0) + 4 >> 2] | 0;
p = +g[V + (U * 24 | 0) + 8 >> 2];
X = T + (c[V + (U * 24 | 0) >> 2] << 2) | 0;
g[X >> 2] = p + +g[X >> 2];
X = T + (W << 2) | 0;
g[X >> 2] = p + +g[X >>
2];
U = U + 1 | 0
} while ((U | 0) != (S | 0))
}
if ((c[v >> 2] & 16 | 0) != 0)
Mk(b);
S = c[m >> 2] | 0;
if ((S & 4096 | 0) == 0)
Y = S;
else {
S = c[B >> 2] | 0;
c[f >> 2] = 7360;
c[M >> 2] = S;
Hk(b, 0, c[k >> 2] | 0, f);
if ((c[k >> 2] | 0) > 0) {
S = c[B >> 2] | 0;
U = 0;
do {
T = S + (U << 2) | 0;
c[T >> 2] = c[T >> 2] & -4097;
U = U + 1 | 0
} while ((U | 0) < (c[k >> 2] | 0))
}
U = c[m >> 2] & -4097;
c[m >> 2] = U;
Y = U
}
if ((a[w >> 0] | 0) != 0) {
p = +g[J >> 2] * 1.3333333730697632;
Z = N * p * +g[K >> 2] * p;
U = c[k >> 2] | 0;
if ((U | 0) > 0) {
S = c[z >> 2] | 0;
T = c[L >> 2] | 0;
V = 0;
do {
p = Z * +g[T + (V << 3) + 4 >> 2];
X = S + (V << 3) | 0;
g[X >> 2] = Z * +g[T + (V << 3) >> 2] + +g[X >> 2];
X = S + (V << 3) + 4 | 0;
g[X >> 2] =
p + +g[X >> 2];
V = V + 1 | 0
} while ((V | 0) != (U | 0))
}
a[w >> 0] = 0
}
if ((Y & 32 | 0) == 0)
_ = Y;
else {
cl(b);
_ = c[m >> 2] | 0
}
if ((_ & 8192 | 0) != 0 ? (Z = +g[I >> 2] * +g[A >> 2] * R, U = c[t >> 2] | 0, (U | 0) > 0) : 0) {
V = c[u >> 2] | 0;
S = 0;
do {
do if ((c[V + (S * 24 | 0) + 20 >> 2] & 8192 | 0) != 0) {
T = c[V + (S * 24 | 0) >> 2] | 0;
X = c[V + (S * 24 | 0) + 4 >> 2] | 0;
W = c[F >> 2] | 0;
if ((c[W + (T << 2) >> 2] | 0) == (c[W + (X << 2) >> 2] | 0))
break;
W = V + (S * 24 | 0) + 12 | 0;
N = +g[W >> 2];
p = Z * +g[V + (S * 24 | 0) + 8 >> 2];
aa = p * N;
N = p * +g[W + 4 >> 2];
W = c[z >> 2] | 0;
ba = W + (T << 3) | 0;
g[ba >> 2] = +g[ba >> 2] - aa;
ba = W + (T << 3) + 4 | 0;
g[ba >> 2] = +g[ba >> 2] - N;
ba = W + (X << 3) | 0;
g[ba >> 2] =
aa + +g[ba >> 2];
ba = W + (X << 3) + 4 | 0;
g[ba >> 2] = N + +g[ba >> 2]
}
while (0);
S = S + 1 | 0
} while ((S | 0) != (U | 0))
}
if ((_ & 64 | 0) != 0 ? (Z = +g[H >> 2] * +g[A >> 2] * R, U = c[t >> 2] | 0, (U | 0) > 0) : 0) {
S = c[u >> 2] | 0;
V = 0;
do {
do if ((c[S + (V * 24 | 0) + 20 >> 2] & 64 | 0) != 0) {
N = +g[S + (V * 24 | 0) + 8 >> 2];
if (!(N > .25))
break;
ba = c[S + (V * 24 | 0) >> 2] | 0;
X = c[S + (V * 24 | 0) + 4 >> 2] | 0;
W = S + (V * 24 | 0) + 12 | 0;
aa = +g[W >> 2];
p = Z * (N + -.25);
N = p * aa;
aa = p * +g[W + 4 >> 2];
W = c[z >> 2] | 0;
T = W + (ba << 3) | 0;
g[T >> 2] = +g[T >> 2] - N;
T = W + (ba << 3) + 4 | 0;
g[T >> 2] = +g[T >> 2] - aa;
T = W + (X << 3) | 0;
g[T >> 2] = N + +g[T >> 2];
T = W + (X << 3) + 4 | 0;
g[T >> 2] = aa + +g[T >>
2]
}
while (0);
V = V + 1 | 0
} while ((V | 0) != (U | 0))
}
if ((_ & 128 | 0) != 0)
dl(b, j);
if ((c[v >> 2] & 1 | 0) != 0 ? (Z = +g[h >> 2] * +g[D >> 2], U = c[t >> 2] | 0, (U | 0) > 0) : 0) {
V = c[u >> 2] | 0;
S = c[F >> 2] | 0;
T = 0;
do {
X = c[V + (T * 24 | 0) >> 2] | 0;
W = c[V + (T * 24 | 0) + 4 >> 2] | 0;
if ((c[S + (X << 2) >> 2] | 0) != (c[S + (W << 2) >> 2] | 0)) {
ba = V + (T * 24 | 0) + 12 | 0;
R = +g[ba >> 2];
ca = c[G >> 2] | 0;
aa = +g[V + (T * 24 | 0) + 8 >> 2] * Z * (+g[ca + (X << 2) >> 2] + +g[ca + (W << 2) >> 2]);
N = R * aa;
R = +g[ba + 4 >> 2] * aa;
ba = c[z >> 2] | 0;
ca = ba + (X << 3) | 0;
g[ca >> 2] = +g[ca >> 2] - N;
ca = ba + (X << 3) + 4 | 0;
g[ca >> 2] = +g[ca >> 2] - R;
ca = ba + (W << 3) | 0;
g[ca >> 2] = N + +g[ca >> 2];
ca = ba + (W << 3) + 4 | 0;
g[ca >> 2] = R + +g[ca >> 2]
}
T = T + 1 | 0
} while ((T | 0) != (U | 0))
}
if ((c[m >> 2] & 256 | 0) != 0)
el(b);
Z = +g[j >> 2] * +g[x >> 2];
U = (c[y >> 2] | 0) + 102980 | 0;
R = +g[U >> 2];
N = Z * R;
R = Z * +g[U + 4 >> 2];
U = c[k >> 2] | 0;
if ((U | 0) > 0) {
T = c[z >> 2] | 0;
V = 0;
do {
S = T + (V << 3) | 0;
g[S >> 2] = N + +g[S >> 2];
S = T + (V << 3) + 4 | 0;
g[S >> 2] = R + +g[S >> 2];
V = V + 1 | 0
} while ((V | 0) != (U | 0))
}
if ((c[m >> 2] & 2048 | 0) != 0)
fl(b, j);
gl(b, j);
hl(b, j);
U = c[m >> 2] | 0;
if ((U & 2048 | 0) == 0)
da = U;
else {
il(b);
da = c[m >> 2] | 0
}
if ((da & 16 | 0) == 0)
ea = da;
else {
jl(b, j);
ea = c[m >> 2] | 0
}
if ((ea & 8 | 0) != 0)
kl(b, j);
R = +g[A >> 2] * +g[h >>
2];
N = R * R;
U = c[k >> 2] | 0;
if ((U | 0) > 0) {
V = c[z >> 2] | 0;
T = 0;
do {
S = V + (T << 3) | 0;
R = +g[S >> 2];
ca = V + (T << 3) + 4 | 0;
Z = +g[ca >> 2];
aa = R * R + Z * Z;
if (aa > N) {
p = +Q(+(N / aa));
g[S >> 2] = R * p;
g[ca >> 2] = Z * p
}
T = T + 1 | 0
} while ((T | 0) != (U | 0))
}
if ((c[v >> 2] & 2 | 0) != 0)
ll(b);
if ((c[m >> 2] & 1024 | 0) != 0)
al(b, j);
$k(b, j);
if ((c[v >> 2] & 2 | 0) != 0)
ml(b, j);
U = c[k >> 2] | 0;
do if ((c[m >> 2] & 4 | 0) == 0)
ga = 95;
else {
if ((U | 0) <= 0)
break;
T = c[B >> 2] | 0;
V = 0;
do {
if ((c[T + (V << 2) >> 2] & 4 | 0) != 0) {
ca = c[z >> 2] | 0;
g[ca + (V << 3) >> 2] = 0;
g[ca + (V << 3) + 4 >> 2] = 0
}
V = V + 1 | 0
} while ((V | 0) != (U | 0));
ga = 95
}
while (0);
do if ((ga | 0) ==
95) {
ga = 0;
if ((U | 0) <= 0)
break;
V = c[C >> 2] | 0;
N = +g[j >> 2];
T = c[z >> 2] | 0;
ca = 0;
do {
p = N * +g[T + (ca << 3) + 4 >> 2];
S = V + (ca << 3) | 0;
g[S >> 2] = N * +g[T + (ca << 3) >> 2] + +g[S >> 2];
S = V + (ca << 3) + 4 | 0;
g[S >> 2] = p + +g[S >> 2];
ca = ca + 1 | 0
} while ((ca | 0) < (U | 0))
}
while (0);
U = (c[l >> 2] | 0) + 1 | 0;
c[l >> 2] = U
} while ((U | 0) < (c[n >> 2] | 0));
i = e;
return
}
function cl(a) {
a = a | 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;
d = i;
e = +g[a + 352 >> 2];
f = c[a + 236 >> 2] | 0;
if ((f | 0) > 0) {
h = a + 96 | 0;
j = a + 104 | 0;
k = a + 36 | 0;
l =
a + 28 | 0;
m = c[a + 232 >> 2] | 0;
n = c[a + 88 >> 2] | 0;
o = 0;
do {
p = c[m + (o * 28 | 0) >> 2] | 0;
if ((c[n + (p << 2) >> 2] & 32 | 0) != 0 ? (q = c[m + (o * 28 | 0) + 4 >> 2] | 0, r = (c[h >> 2] | 0) + (p << 3) | 0, s = +g[r >> 2], t = +g[r + 4 >> 2], r = q + 88 | 0, u = +g[r >> 2], v = q + 60 | 0, w = q + 64 | 0, x = q + 80 | 0, y = q + 84 | 0, z = c[j >> 2] | 0, A = z + (p << 3) | 0, B = +g[A >> 2], C = z + (p << 3) + 4 | 0, D = +g[C >> 2], E = +g[m + (o * 28 | 0) + 12 >> 2] * e * +g[m + (o * 28 | 0) + 24 >> 2], F = E * (+g[x >> 2] - u * (t - +g[w >> 2]) - B), G = E * (u * (s - +g[v >> 2]) + +g[y >> 2] - D), u = +g[k >> 2] * 1.3333333730697632, E = u * +g[l >> 2] * u, g[A >> 2] = B + F * E, g[C >> 2] = D + G * E, E = -F, F = -G, (c[q >> 2] | 0) == 2) : 0) {
C = q + 4 |
0;
A = b[C >> 1] | 0;
if ((A & 2) == 0 ? (p = A & 65535, (p & 2 | 0) == 0) : 0) {
z = (p | 2) & 65535;
b[C >> 1] = z;
g[q + 160 >> 2] = 0;
H = z
} else
H = A;
if (!((H & 2) == 0)) {
G = +g[q + 136 >> 2];
g[x >> 2] = G * E + +g[x >> 2];
g[y >> 2] = G * F + +g[y >> 2];
g[r >> 2] = +g[r >> 2] + +g[q + 144 >> 2] * ((s - +g[v >> 2]) * F - (t - +g[w >> 2]) * E)
}
}
o = o + 1 | 0
} while ((o | 0) < (f | 0))
}
f = c[a + 220 >> 2] | 0;
if ((f | 0) <= 0) {
i = d;
return
}
o = c[a + 216 >> 2] | 0;
H = a + 104 | 0;
a = 0;
do {
if ((c[o + (a * 24 | 0) + 20 >> 2] & 32 | 0) != 0) {
l = c[o + (a * 24 | 0) >> 2] | 0;
k = c[o + (a * 24 | 0) + 4 >> 2] | 0;
m = c[H >> 2] | 0;
j = m + (k << 3) | 0;
h = m + (l << 3) | 0;
E = +g[h >> 2];
n = m + (k << 3) + 4 | 0;
k = m + (l << 3) + 4 | 0;
t =
+g[k >> 2];
F = e * +g[o + (a * 24 | 0) + 8 >> 2];
s = F * (+g[j >> 2] - E);
G = F * (+g[n >> 2] - t);
g[h >> 2] = E + s;
g[k >> 2] = t + G;
g[j >> 2] = +g[j >> 2] - s;
g[n >> 2] = +g[n >> 2] - G
}
a = a + 1 | 0
} while ((a | 0) < (f | 0));
i = d;
return
}
function dl(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;
d = i;
e = a + 44 | 0;
if ((c[e >> 2] | 0) > 0) {
f = a + 128 | 0;
h = 0;
do {
j = 8784;
k = c[j + 4 >> 2] | 0;
l = (c[f >> 2] | 0) + (h << 3) | 0;
c[l >> 2] = c[j >> 2];
c[l + 4 >> 2] = k;
h = h + 1 | 0
} while ((h | 0) < (c[e >> 2] | 0))
}
e = a + 216 | 0;
h = c[a + 220 >> 2] | 0;
f = (h | 0) > 0;
if (f) {
k = a + 128 | 0;
l = c[e >> 2] | 0;
j = 0;
do {
if ((c[l +
(j * 24 | 0) + 20 >> 2] & 128 | 0) != 0) {
m = c[l + (j * 24 | 0) >> 2] | 0;
n = c[l + (j * 24 | 0) + 4 >> 2] | 0;
o = +g[l + (j * 24 | 0) + 8 >> 2];
p = l + (j * 24 | 0) + 12 | 0;
q = +g[p >> 2];
r = o * (1 - o);
o = r * q;
q = r * +g[p + 4 >> 2];
p = c[k >> 2] | 0;
s = p + (m << 3) | 0;
g[s >> 2] = +g[s >> 2] - o;
s = p + (m << 3) + 4 | 0;
g[s >> 2] = +g[s >> 2] - q;
s = p + (n << 3) | 0;
g[s >> 2] = o + +g[s >> 2];
s = p + (n << 3) + 4 | 0;
g[s >> 2] = q + +g[s >> 2]
}
j = j + 1 | 0
} while ((j | 0) < (h | 0))
}
q = +g[a + 32 >> 2] * +g[b + 4 >> 2];
o = +g[a + 356 >> 2] * q;
r = q * +g[a + 360 >> 2];
t = q * .5;
if (!f) {
i = d;
return
}
f = a + 116 | 0;
b = a + 128 | 0;
j = a + 104 | 0;
a = c[e >> 2] | 0;
e = 0;
do {
if ((c[a + (e * 24 | 0) + 20 >> 2] & 128 | 0) != 0) {
k = c[a + (e *
24 | 0) >> 2] | 0;
l = c[a + (e * 24 | 0) + 4 >> 2] | 0;
s = a + (e * 24 | 0) + 12 | 0;
q = +g[s >> 2];
u = +g[s + 4 >> 2];
s = c[f >> 2] | 0;
n = c[b >> 2] | 0;
v = o * (+g[s + (k << 2) >> 2] + +g[s + (l << 2) >> 2] + -2) + r * (q * (+g[n + (l << 3) >> 2] - +g[n + (k << 3) >> 2]) + u * (+g[n + (l << 3) + 4 >> 2] - +g[n + (k << 3) + 4 >> 2]));
w = +g[a + (e * 24 | 0) + 8 >> 2] * (v < t ? v : t);
v = q * w;
q = u * w;
n = c[j >> 2] | 0;
s = n + (k << 3) | 0;
g[s >> 2] = +g[s >> 2] - v;
s = n + (k << 3) + 4 | 0;
g[s >> 2] = +g[s >> 2] - q;
s = n + (l << 3) | 0;
g[s >> 2] = +g[s >> 2] + v;
s = n + (l << 3) + 4 | 0;
g[s >> 2] = +g[s >> 2] + q
}
e = e + 1 | 0
} while ((e | 0) < (h | 0));
i = d;
return
}
function el(b) {
b = b | 0;
var e = 0,
f = 0,
h = 0,
j = 0,
k = 0,
l = 0,
m = 0,
n = 0,
o = 0,
p = 0,
q = 0,
r = 0,
s = 0,
t = 0,
u = 0,
v = 0,
w = 0,
x = 0,
y = 0,
z = 0,
A = 0,
B = 0,
C = 0,
D = 0,
E = 0;
e = i;
f = ~~(+g[b + 388 >> 2] * 128);
if ((f | 0) == 0) {
i = e;
return
}
h = b + 220 | 0;
j = c[h >> 2] | 0;
if ((j | 0) <= 0) {
i = e;
return
}
k = b + 216 | 0;
l = b + 88 | 0;
m = b + 136 | 0;
b = d[8064] | 0;
n = j;
j = 0;
while (1) {
o = c[k >> 2] | 0;
p = c[o + (j * 24 | 0) >> 2] | 0;
q = c[o + (j * 24 | 0) + 4 >> 2] | 0;
o = c[l >> 2] | 0;
if ((c[o + (p << 2) >> 2] & 256 & c[o + (q << 2) >> 2] | 0) == 0)
r = n;
else {
o = c[m >> 2] | 0;
s = o + (q << 2) | 0;
t = o + (p << 2) | 0;
u = d[t >> 0] | 0;
v = (aa((d[s >> 0] | 0) - u | 0, f) | 0) >> b;
w = o + (q << 2) + 1 | 0;
x = o + (p << 2) + 1 | 0;
y = d[x >> 0] | 0;
z = (aa((d[w >> 0] | 0) - y | 0, f) | 0) >> b;
A = o + (q << 2) + 2 | 0;
B = o + (p << 2) + 2 | 0;
C = d[B >> 0] | 0;
D = (aa((d[A >> 0] | 0) - C | 0, f) | 0) >> b;
E = o + (q << 2) + 3 | 0;
q = o + (p << 2) + 3 | 0;
p = d[q >> 0] | 0;
o = (aa((d[E >> 0] | 0) - p | 0, f) | 0) >> b;
a[t >> 0] = v + u;
a[x >> 0] = z + y;
a[B >> 0] = D + C;
a[q >> 0] = o + p;
a[s >> 0] = (d[s >> 0] | 0) - v;
a[w >> 0] = (d[w >> 0] | 0) - z;
a[A >> 0] = (d[A >> 0] | 0) - D;
a[E >> 0] = (d[E >> 0] | 0) - o;
r = c[h >> 2] | 0
}
j = j + 1 | 0;
if ((j | 0) >= (r | 0))
break;
else
n = r
}
i = e;
return
}
function fl(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;
e = a + 120 | 0;
f = c[e >> 2] | 0;
if ((f | 0) ==
0) {
h = a + 48 | 0;
j = c[h >> 2] | 0;
if ((j | 0) == 0) {
vk(a, 256);
k = c[h >> 2] | 0
} else
k = j;
j = Em(c[a + 400 >> 2] | 0, k << 2) | 0;
xn(j | 0, 0, c[h >> 2] << 2 | 0) | 0;
l = j
} else
l = f;
c[e >> 2] = l;
m = +g[a + 32 >> 2] * +g[b + 4 >> 2];
n = +g[a + 320 >> 2] * m * m;
m = +g[a + 376 >> 2] * n;
o = n * .25;
n = +g[a + 380 >> 2];
b = a + 384 | 0;
if ((c[b >> 2] | 0) <= 0) {
i = d;
return
}
l = a + 124 | 0;
f = a + 44 | 0;
j = a + 220 | 0;
h = a + 116 | 0;
k = a + 88 | 0;
p = a + 216 | 0;
a = c[f >> 2] | 0;
q = 1;
while (1) {
xn(c[l >> 2] | 0, 0, a << 2 | 0) | 0;
r = c[j >> 2] | 0;
if ((r | 0) > 0) {
s = c[p >> 2] | 0;
t = 0;
do {
if ((c[s + (t * 24 | 0) + 20 >> 2] & 2048 | 0) != 0) {
u = c[s + (t * 24 | 0) >> 2] | 0;
v = c[s + (t * 24 | 0) + 4 >> 2] | 0;
w = +g[s +
(t * 24 | 0) + 8 >> 2];
x = c[e >> 2] | 0;
y = c[l >> 2] | 0;
z = y + (u << 2) | 0;
g[z >> 2] = w * +g[x + (v << 2) >> 2] + +g[z >> 2];
z = y + (v << 2) | 0;
g[z >> 2] = w * +g[x + (u << 2) >> 2] + +g[z >> 2]
}
t = t + 1 | 0
} while ((t | 0) < (r | 0))
}
r = c[f >> 2] | 0;
if ((r | 0) > 0) {
t = c[h >> 2] | 0;
s = c[k >> 2] | 0;
z = 0;
do {
w = +g[t + (z << 2) >> 2];
if ((c[s + (z << 2) >> 2] & 2048 | 0) == 0)
g[(c[e >> 2] | 0) + (z << 2) >> 2] = 0;
else {
A = (m * (w + -1) + +g[(c[l >> 2] | 0) + (z << 2) >> 2]) / (n + w);
w = A < o ? A : o;
g[(c[e >> 2] | 0) + (z << 2) >> 2] = w < 0 ? 0 : w
}
z = z + 1 | 0
} while ((z | 0) < (r | 0))
}
if ((q | 0) >= (c[b >> 2] | 0))
break;
a = r;
q = q + 1 | 0
}
i = d;
return
}
function gl(a, d) {
a = a | 0;
d = d | 0;
var e =
0,
f = 0,
h = 0,
j = 0,
k = 0,
l = 0,
m = 0,
n = 0,
o = 0,
p = 0,
q = 0,
r = 0,
s = 0,
t = 0,
u = 0,
v = 0,
w = 0,
x = 0,
y = 0,
z = 0,
A = 0,
B = 0;
e = i;
f = a + 320 | 0;
h = a + 32 | 0;
j = +g[h >> 2] * +g[d + 4 >> 2];
k = +g[f >> 2] * j * j;
j = +g[a + 336 >> 2] * k;
l = k * .25;
m = c[a + 44 >> 2] | 0;
n = (m | 0) > 0;
if (n) {
o = c[a + 116 >> 2] | 0;
p = c[a + 124 >> 2] | 0;
q = 0;
do {
k = +g[o + (q << 2) >> 2] + -1;
r = j * (k < 0 ? 0 : k);
g[p + (q << 2) >> 2] = r < l ? r : l;
q = q + 1 | 0
} while ((q | 0) < (m | 0))
}
q = c[a + 8 >> 2] | 0;
if (!((q & 192 | 0) == 0 | n ^ 1)) {
p = c[a + 88 >> 2] | 0;
o = a + 124 | 0;
s = 0;
do {
if ((c[p + (s << 2) >> 2] & 192 | 0) != 0)
g[(c[o >> 2] | 0) + (s << 2) >> 2] = 0;
s = s + 1 | 0
} while ((s | 0) < (m | 0))
}
if (!((q & 2048 | 0) == 0 | n ^ 1)) {
n =
c[a + 88 >> 2] | 0;
q = a + 120 | 0;
s = a + 124 | 0;
o = 0;
do {
if ((c[n + (o << 2) >> 2] & 2048 | 0) != 0) {
p = (c[s >> 2] | 0) + (o << 2) | 0;
g[p >> 2] = +g[(c[q >> 2] | 0) + (o << 2) >> 2] + +g[p >> 2]
}
o = o + 1 | 0
} while ((o | 0) < (m | 0))
}
l = +g[d >> 2] / (+g[f >> 2] * +g[h >> 2]);
h = c[a + 236 >> 2] | 0;
if ((h | 0) > 0) {
f = a + 36 | 0;
d = a + 28 | 0;
m = c[a + 232 >> 2] | 0;
o = c[a + 96 >> 2] | 0;
q = c[a + 124 >> 2] | 0;
s = c[a + 104 >> 2] | 0;
n = 0;
do {
p = c[m + (n * 28 | 0) >> 2] | 0;
t = c[m + (n * 28 | 0) + 4 >> 2] | 0;
r = +g[m + (n * 28 | 0) + 12 >> 2];
u = m + (n * 28 | 0) + 16 | 0;
k = +g[u >> 2];
v = +g[u + 4 >> 2];
u = o + (p << 3) | 0;
w = +g[u >> 2];
x = +g[u + 4 >> 2];
y = l * r * +g[m + (n * 28 | 0) + 24 >> 2] * (j * r + +g[q + (p << 2) >>
2]);
r = k * y;
k = v * y;
y = +g[f >> 2] * 1.3333333730697632;
v = y * +g[d >> 2] * y;
u = s + (p << 3) | 0;
g[u >> 2] = +g[u >> 2] - r * v;
u = s + (p << 3) + 4 | 0;
g[u >> 2] = +g[u >> 2] - k * v;
if ((c[t >> 2] | 0) == 2) {
u = t + 4 | 0;
p = b[u >> 1] | 0;
if ((p & 2) == 0 ? (z = p & 65535, (z & 2 | 0) == 0) : 0) {
A = (z | 2) & 65535;
b[u >> 1] = A;
g[t + 160 >> 2] = 0;
B = A
} else
B = p;
if (!((B & 2) == 0)) {
v = +g[t + 136 >> 2];
p = t + 80 | 0;
g[p >> 2] = r * v + +g[p >> 2];
p = t + 84 | 0;
g[p >> 2] = k * v + +g[p >> 2];
p = t + 88 | 0;
g[p >> 2] = +g[p >> 2] + +g[t + 144 >> 2] * (k * (w - +g[t + 60 >> 2]) - r * (x - +g[t + 64 >> 2]))
}
}
n = n + 1 | 0
} while ((n | 0) < (h | 0))
}
h = c[a + 220 >> 2] | 0;
if ((h | 0) <= 0) {
i = e;
return
}
n = c[a +
216 >> 2] | 0;
B = c[a + 124 >> 2] | 0;
s = c[a + 104 >> 2] | 0;
a = 0;
do {
d = c[n + (a * 24 | 0) >> 2] | 0;
f = c[n + (a * 24 | 0) + 4 >> 2] | 0;
q = n + (a * 24 | 0) + 12 | 0;
j = +g[q >> 2];
x = l * +g[n + (a * 24 | 0) + 8 >> 2] * (+g[B + (d << 2) >> 2] + +g[B + (f << 2) >> 2]);
r = j * x;
j = +g[q + 4 >> 2] * x;
q = s + (d << 3) | 0;
g[q >> 2] = +g[q >> 2] - r;
q = s + (d << 3) + 4 | 0;
g[q >> 2] = +g[q >> 2] - j;
q = s + (f << 3) | 0;
g[q >> 2] = r + +g[q >> 2];
q = s + (f << 3) + 4 | 0;
g[q >> 2] = j + +g[q >> 2];
a = a + 1 | 0
} while ((a | 0) < (h | 0));
i = e;
return
}
function hl(a, d) {
a = a | 0;
d = d | 0;
var e = 0,
f = 0,
h = 0,
j = 0,
k = 0,
l = 0,
m = 0,
n = 0,
o = 0,
p = 0,
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;
e = i;
f = +g[a + 340 >> 2];
h = 1 / (+g[a + 32 >> 2] * +g[d + 4 >> 2]);
d = c[a + 236 >> 2] | 0;
if ((d | 0) > 0) {
j = a + 36 | 0;
k = a + 28 | 0;
l = c[a + 232 >> 2] | 0;
m = c[a + 96 >> 2] | 0;
n = c[a + 104 >> 2] | 0;
o = 0;
do {
p = c[l + (o * 28 | 0) >> 2] | 0;
q = c[l + (o * 28 | 0) + 4 >> 2] | 0;
r = l + (o * 28 | 0) + 16 | 0;
s = +g[r >> 2];
t = +g[r + 4 >> 2];
r = m + (p << 3) | 0;
u = +g[r >> 2];
v = +g[r + 4 >> 2];
r = q + 88 | 0;
w = +g[r >> 2];
x = q + 60 | 0;
y = q + 64 | 0;
z = q + 80 | 0;
A = q + 84 | 0;
B = n + (p << 3) | 0;
C = +g[B >> 2];
D = n + (p << 3) + 4 | 0;
E = +g[D >> 2];
F = s * (+g[z >> 2] - w * (v - +g[y >> 2]) - C) + t * (w * (u - +g[x >> 2]) + +g[A >> 2] - E);
if (F < 0 ? (w = f * +g[l + (o * 28 | 0) + 12 >> 2], G =
h * F, H = G > -.5 ? -G : .5, G = F * +g[l + (o * 28 | 0) + 24 >> 2] * (w > H ? w : H), H = s * G, s = t * G, G = +g[j >> 2] * 1.3333333730697632, t = G * +g[k >> 2] * G, g[B >> 2] = C + t * H, g[D >> 2] = E + t * s, t = -H, H = -s, (c[q >> 2] | 0) == 2) : 0) {
D = q + 4 | 0;
B = b[D >> 1] | 0;
if ((B & 2) == 0 ? (p = B & 65535, (p & 2 | 0) == 0) : 0) {
I = (p | 2) & 65535;
b[D >> 1] = I;
g[q + 160 >> 2] = 0;
J = I
} else
J = B;
if (!((J & 2) == 0)) {
s = +g[q + 136 >> 2];
g[z >> 2] = s * t + +g[z >> 2];
g[A >> 2] = s * H + +g[A >> 2];
g[r >> 2] = +g[r >> 2] + +g[q + 144 >> 2] * ((u - +g[x >> 2]) * H - (v - +g[y >> 2]) * t)
}
}
o = o + 1 | 0
} while ((o | 0) < (d | 0))
}
d = c[a + 220 >> 2] | 0;
if ((d | 0) <= 0) {
i = e;
return
}
o = c[a + 216 >> 2] | 0;
J = c[a +
104 >> 2] | 0;
a = 0;
do {
k = c[o + (a * 24 | 0) >> 2] | 0;
j = c[o + (a * 24 | 0) + 4 >> 2] | 0;
l = o + (a * 24 | 0) + 12 | 0;
t = +g[l >> 2];
v = +g[l + 4 >> 2];
l = J + (j << 3) | 0;
n = J + (k << 3) | 0;
H = +g[n >> 2];
m = J + (j << 3) + 4 | 0;
j = J + (k << 3) + 4 | 0;
u = +g[j >> 2];
s = t * (+g[l >> 2] - H) + v * (+g[m >> 2] - u);
if (s < 0) {
E = f * +g[o + (a * 24 | 0) + 8 >> 2];
C = h * s;
G = C > -.5 ? -C : .5;
C = s * (E > G ? E : G);
G = t * C;
t = v * C;
g[n >> 2] = H + G;
g[j >> 2] = u + t;
g[l >> 2] = +g[l >> 2] - G;
g[m >> 2] = +g[m >> 2] - t
}
a = a + 1 | 0
} while ((a | 0) < (d | 0));
i = e;
return
}
function il(a) {
a = a | 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;
d = i;
e = c[a + 236 >> 2] | 0;
if ((e | 0) <= 0) {
i = d;
return
}
f = a + 96 | 0;
h = a + 104 | 0;
j = a + 36 | 0;
k = a + 28 | 0;
l = c[a + 232 >> 2] | 0;
m = c[a + 88 >> 2] | 0;
a = 0;
do {
n = c[l + (a * 28 | 0) >> 2] | 0;
if (((c[m + (n << 2) >> 2] & 2048 | 0) != 0 ? (o = c[l + (a * 28 | 0) + 4 >> 2] | 0, p = l + (a * 28 | 0) + 16 | 0, q = +g[p >> 2], r = +g[p + 4 >> 2], p = (c[f >> 2] | 0) + (n << 3) | 0, s = +g[p >> 2], t = +g[p + 4 >> 2], p = o + 88 | 0, u = +g[p >> 2], v = o + 60 | 0, w = o + 64 | 0, x = o + 80 | 0, y = o + 84 | 0, z = c[h >> 2] | 0, A = z + (n << 3) | 0, B = +g[A >> 2], C = z + (n << 3) + 4 | 0, D = +g[C >> 2], E = q * (+g[x >> 2] - u * (t - +g[w >> 2]) - B) + r * (u * (s - +g[v >> 2]) + +g[y >> 2] - D), E < 0) : 0) ? (u = E * +g[l +
(a * 28 | 0) + 24 >> 2] * .5, E = q * u, q = r * u, u = +g[j >> 2] * 1.3333333730697632, r = u * +g[k >> 2] * u, g[A >> 2] = B + E * r, g[C >> 2] = D + q * r, r = -E, E = -q, (c[o >> 2] | 0) == 2) : 0) {
C = o + 4 | 0;
A = b[C >> 1] | 0;
if ((A & 2) == 0 ? (n = A & 65535, (n & 2 | 0) == 0) : 0) {
z = (n | 2) & 65535;
b[C >> 1] = z;
g[o + 160 >> 2] = 0;
F = z
} else
F = A;
if (!((F & 2) == 0)) {
q = +g[o + 136 >> 2];
g[x >> 2] = q * r + +g[x >> 2];
g[y >> 2] = q * E + +g[y >> 2];
g[p >> 2] = +g[p >> 2] + +g[o + 144 >> 2] * ((s - +g[v >> 2]) * E - (t - +g[w >> 2]) * r)
}
}
a = a + 1 | 0
} while ((a | 0) < (e | 0));
i = d;
return
}
function jl(a, b) {
a = a | 0;
b = b | 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;
d = i;
e = +g[b + 4 >> 2] * +g[a + 344 >> 2];
f = a + 268 | 0;
h = c[f >> 2] | 0;
if ((h | 0) <= 0) {
i = d;
return
}
j = a + 264 | 0;
l = a + 96 | 0;
m = a + 104 | 0;
a = h;
h = 0;
while (1) {
n = c[j >> 2] | 0;
if ((c[n + (h * 60 | 0) + 12 >> 2] & 16 | 0) == 0)
o = a;
else {
p = c[n + (h * 60 | 0) >> 2] | 0;
q = c[n + (h * 60 | 0) + 4 >> 2] | 0;
r = c[n + (h * 60 | 0) + 8 >> 2] | 0;
s = c[l >> 2] | 0;
t = s + (p << 3) | 0;
u = +g[t >> 2];
v = +g[t + 4 >> 2];
t = s + (q << 3) | 0;
w = +g[t >> 2];
x = +g[t + 4 >> 2];
t = s + (r << 3) | 0;
y = +g[t >> 2];
s = c[m >> 2] | 0;
z = +g[b >> 2];
A = s + (p << 3) | 0;
B = +g[A >> 2];
C = s + (p << 3) +
4 | 0;
D = +g[C >> 2];
E = u + z * B;
u = v + z * D;
p = s + (q << 3) | 0;
F = s + (q << 3) + 4 | 0;
v = w + z * +g[p >> 2];
w = x + z * +g[F >> 2];
q = s + (r << 3) | 0;
G = s + (r << 3) + 4 | 0;
x = y + z * +g[q >> 2];
y = +g[t + 4 >> 2] + z * +g[G >> 2];
z = (E + v + x) * .3333333432674408;
H = (u + w + y) * .3333333432674408;
I = E - z;
E = u - H;
u = v - z;
v = w - H;
w = x - z;
z = y - H;
H = +g[n + (h * 60 | 0) + 20 >> 2];
y = +g[n + (h * 60 | 0) + 24 >> 2];
t = n + (h * 60 | 0) + 28 | 0;
x = +g[t >> 2];
r = n + (h * 60 | 0) + 32 | 0;
J = +g[r >> 2];
s = n + (h * 60 | 0) + 36 | 0;
K = +g[s >> 2];
L = n + (h * 60 | 0) + 40 | 0;
M = +g[L >> 2];
N = H * E - y * I + (x * v - J * u) + (K * z - w * M);
O = H * I + y * E + (x * u + J * v) + (w * K + z * M);
M = N * N + O * O;
K = (c[k >> 2] = 1597463007 -
((g[k >> 2] = M, c[k >> 2] | 0) >> 1), +g[k >> 2]);
J = K * (1.5 - K * M * .5 * K);
K = N * J;
N = O * J;
J = e * +g[n + (h * 60 | 0) + 16 >> 2];
g[A >> 2] = B + J * (H * N - y * K - I);
g[C >> 2] = D + J * (H * K + y * N - E);
E = +g[t >> 2];
y = +g[r >> 2];
g[p >> 2] = +g[p >> 2] + J * (E * N - y * K - u);
g[F >> 2] = +g[F >> 2] + J * (E * K + y * N - v);
v = +g[s >> 2];
y = +g[L >> 2];
g[q >> 2] = +g[q >> 2] + J * (v * N - y * K - w);
g[G >> 2] = +g[G >> 2] + J * (v * K + y * N - z);
o = c[f >> 2] | 0
}
h = h + 1 | 0;
if ((h | 0) >= (o | 0))
break;
else
a = o
}
i = d;
return
}
function kl(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;
d = i;
e = +g[b + 4 >> 2] *
+g[a + 348 >> 2];
f = c[a + 252 >> 2] | 0;
if ((f | 0) <= 0) {
i = d;
return
}
h = a + 96 | 0;
j = a + 104 | 0;
k = c[a + 248 >> 2] | 0;
a = 0;
do {
if ((c[k + (a * 20 | 0) + 8 >> 2] & 8 | 0) != 0) {
l = c[k + (a * 20 | 0) >> 2] | 0;
m = c[k + (a * 20 | 0) + 4 >> 2] | 0;
n = c[h >> 2] | 0;
o = n + (l << 3) | 0;
p = +g[o >> 2];
q = +g[o + 4 >> 2];
o = n + (m << 3) | 0;
r = +g[o >> 2];
n = c[j >> 2] | 0;
s = +g[b >> 2];
t = n + (l << 3) | 0;
u = +g[t >> 2];
v = n + (l << 3) + 4 | 0;
w = +g[v >> 2];
l = n + (m << 3) | 0;
x = n + (m << 3) + 4 | 0;
y = r + s * +g[l >> 2] - (p + s * u);
p = +g[o + 4 >> 2] + s * +g[x >> 2] - (q + s * w);
s = +Q(+(y * y + p * p));
q = (+g[k + (a * 20 | 0) + 16 >> 2] - s) * e * +g[k + (a * 20 | 0) + 12 >> 2] / s;
s = y * q;
y = p * q;
g[t >> 2] = u - s;
g[v >> 2] =
w - y;
g[l >> 2] = s + +g[l >> 2];
g[x >> 2] = y + +g[x >> 2]
}
a = a + 1 | 0
} while ((a | 0) < (f | 0));
i = d;
return
}
function ll(a) {
a = a | 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,
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;
d = i;
e = +g[a + 340 >> 2];
f = a + 236 | 0;
if ((c[f >> 2] | 0) > 0) {
h = a + 232 | 0;
j = a + 144 | 0;
k = a + 96 | 0;
l = 0;
do {
m = c[h >> 2] | 0;
n = c[m + (l * 28 | 0) >> 2] | 0;
o = c[(c[j >> 2] | 0) + (n << 2) >> 2] | 0;
if (((o | 0) != 0 ? (c[o + 12 >> 2] & 2 | 0) !=
0 : 0) ? (p = c[m + (l * 28 | 0) + 4 >> 2] | 0, q = m + (l * 28 | 0) + 16 | 0, r = +g[q >> 2], s = +g[q + 4 >> 2], t = +g[m + (l * 28 | 0) + 12 >> 2], m = (c[k >> 2] | 0) + (n << 3) | 0, u = +g[m >> 2], v = +g[m + 4 >> 2], m = p + 88 | 0, w = +g[m >> 2], n = p + 60 | 0, q = p + 64 | 0, x = p + 80 | 0, y = +g[x >> 2] - w * (v - +g[q >> 2]), z = p + 84 | 0, A = w * (u - +g[n >> 2]) + +g[z >> 2], nk(o), B = o + 56 | 0, w = +g[B >> 2], C = o + 48 | 0, D = o + 52 | 0, E = r * (y - (+g[C >> 2] - w * (v - +g[o + 44 >> 2]))) + s * (A - (w * (u - +g[o + 40 >> 2]) + +g[D >> 2])), E < 0) : 0) {
nk(o);
w = +g[o + 32 >> 2];
nk(o);
A = +g[o + 36 >> 2];
nk(o);
F = o + 40 | 0;
y = +g[F >> 2];
if (w > 0)
G = 1 / w;
else
G = 0;
if (A > 0)
H = 1 / A;
else
H = 0;
A = s * (u - y) - r * (v - +g[F +
4 >> 2]);
y = +g[p + 132 >> 2];
w = +g[p + 44 >> 2];
I = +g[p + 48 >> 2];
J = y * (w * w + I * I);
I = +g[p + 140 >> 2] + J - J;
if (y > 0)
K = 1 / y;
else
K = 0;
if (I > 0)
L = 1 / I;
else
L = 0;
I = s * (u - +g[n >> 2]) - r * (v - +g[q >> 2]);
y = G + A * A * H + K + I * L * I;
if (y > 0)
M = E / y;
else
M = 0;
y = e * (t < 1 ? t : 1) * M;
t = G * y;
g[C >> 2] = +g[C >> 2] + r * t;
g[D >> 2] = +g[D >> 2] + s * t;
g[B >> 2] = H * A * y + +g[B >> 2];
A = -y;
y = r * A;
r = s * A;
if ((c[p >> 2] | 0) == 2) {
B = p + 4 | 0;
D = b[B >> 1] | 0;
if ((D & 2) == 0 ? (C = D & 65535, (C & 2 | 0) == 0) : 0) {
F = (C | 2) & 65535;
b[B >> 1] = F;
g[p + 160 >> 2] = 0;
N = F
} else
N = D;
if (!((N & 2) == 0)) {
A = +g[p + 136 >> 2];
g[x >> 2] = y * A + +g[x >> 2];
g[z >> 2] = r * A + +g[z >>
2];
g[m >> 2] = +g[m >> 2] + +g[p + 144 >> 2] * (r * (u - +g[n >> 2]) - y * (v - +g[q >> 2]))
}
}
}
l = l + 1 | 0
} while ((l | 0) < (c[f >> 2] | 0))
}
f = a + 220 | 0;
if ((c[f >> 2] | 0) <= 0) {
i = d;
return
}
l = a + 216 | 0;
N = a + 144 | 0;
k = a + 96 | 0;
j = a + 104 | 0;
h = a + 88 | 0;
q = a + 32 | 0;
n = a + 320 | 0;
a = 0;
do {
p = c[l >> 2] | 0;
m = c[p + (a * 24 | 0) >> 2] | 0;
z = c[p + (a * 24 | 0) + 4 >> 2] | 0;
x = p + (a * 24 | 0) + 12 | 0;
H = +g[x >> 2];
G = +g[x + 4 >> 2];
M = +g[p + (a * 24 | 0) + 8 >> 2];
p = c[N >> 2] | 0;
x = c[p + (m << 2) >> 2] | 0;
D = c[p + (z << 2) >> 2] | 0;
p = (x | 0) == 0;
if (p)
O = 0;
else
O = (c[x + 12 >> 2] & 2 | 0) != 0;
F = (D | 0) == 0;
if (F)
P = 0;
else
P = (c[D + 12 >> 2] & 2 | 0) != 0;
do if ((x | 0) != (D | 0) & (O |
P)) {
B = c[k >> 2] | 0;
L = (+g[B + (m << 3) >> 2] + +g[B + (z << 3) >> 2]) * .5;
K = (+g[B + (m << 3) + 4 >> 2] + +g[B + (z << 3) + 4 >> 2]) * .5;
if (!F ? (c[D + 12 >> 2] & 2 | 0) != 0 : 0) {
nk(D);
v = +g[D + 56 >> 2];
Q = +g[D + 48 >> 2] - v * (K - +g[D + 44 >> 2]);
R = v * (L - +g[D + 40 >> 2]) + +g[D + 52 >> 2]
} else {
B = (c[j >> 2] | 0) + (z << 3) | 0;
v = +g[B >> 2];
Q = v;
R = +g[B + 4 >> 2]
}
if (!p ? (c[x + 12 >> 2] & 2 | 0) != 0 : 0) {
nk(x);
v = +g[x + 56 >> 2];
S = +g[x + 48 >> 2] - v * (K - +g[x + 44 >> 2]);
T = v * (L - +g[x + 40 >> 2]) + +g[x + 52 >> 2]
} else {
B = (c[j >> 2] | 0) + (m << 3) | 0;
v = +g[B >> 2];
S = v;
T = +g[B + 4 >> 2]
}
v = G * (R - T) + H * (Q - S);
if (v < 0) {
if (O) {
nk(x);
y = +g[x + 32 >> 2];
nk(x);
u = +g[x +
36 >> 2];
nk(x);
B = x + 40 | 0;
r = +g[B >> 2];
if (y > 0)
U = 1 / y;
else
U = 0;
if (u > 0)
V = 1 / u;
else
V = 0;
W = V;
X = U;
Y = G * (L - r) - H * (K - +g[B + 4 >> 2])
} else {
if ((c[(c[h >> 2] | 0) + (m << 2) >> 2] & 4 | 0) == 0 ? (r = +g[q >> 2] * .75, u = r * +g[n >> 2] * r, u > 0) : 0)
Z = 1 / u;
else
Z = 0;
W = 0;
X = Z;
Y = G * (L - L) - H * (K - K)
}
if (P) {
nk(D);
u = +g[D + 32 >> 2];
nk(D);
r = +g[D + 36 >> 2];
nk(D);
B = D + 40 | 0;
y = +g[B >> 2];
if (u > 0)
_ = 1 / u;
else
_ = 0;
if (r > 0)
$ = 1 / r;
else
$ = 0;
aa = _;
ba = $;
ca = G * (L - y) - H * (K - +g[B + 4 >> 2])
} else {
if ((c[(c[h >> 2] | 0) + (z << 2) >> 2] & 4 | 0) == 0 ? (y = +g[q >> 2] * .75, r = y * +g[n >> 2] * y, r > 0) : 0)
da = 1 / r;
else
da = 0;
aa = da;
ba = 0;
ca = G * (L -
L) - H * (K - K)
}
K = X + Y * W * Y + aa + ca * ba * ca;
if (K > 0)
ea = v / K;
else
ea = 0;
K = e * M * ea;
if (O) {
v = X * K;
B = x + 48 | 0;
g[B >> 2] = H * v + +g[B >> 2];
B = x + 52 | 0;
g[B >> 2] = G * v + +g[B >> 2];
B = x + 56 | 0;
g[B >> 2] = W * Y * K + +g[B >> 2]
} else {
B = c[j >> 2] | 0;
v = X * K;
C = B + (m << 3) | 0;
g[C >> 2] = H * v + +g[C >> 2];
C = B + (m << 3) + 4 | 0;
g[C >> 2] = G * v + +g[C >> 2]
}
v = -K;
if (P) {
K = aa * v;
C = D + 48 | 0;
g[C >> 2] = H * K + +g[C >> 2];
C = D + 52 | 0;
g[C >> 2] = G * K + +g[C >> 2];
C = D + 56 | 0;
g[C >> 2] = ba * ca * v + +g[C >> 2];
break
} else {
C = c[j >> 2] | 0;
K = aa * v;
B = C + (z << 3) | 0;
g[B >> 2] = H * K + +g[B >> 2];
B = C + (z << 3) + 4 | 0;
g[B >> 2] = G * K + +g[B >> 2];
break
}
}
}
while (0);
a = a + 1 | 0
} while ((a | 0) < (c[f >> 2] | 0));
i = d;
return
}
function ml(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;
d = i;
e = c[a + 312 >> 2] | 0;
if ((e | 0) == 0) {
i = d;
return
}
f = b + 4 | 0;
h = a + 104 | 0;
j = a + 96 | 0;
a = e;
do {
if ((c[a + 12 >> 2] & 2 | 0) != 0 ? (nk(a), k = +g[b >> 2], l = k * +g[a + 56 >> 2], m = +T(+l), n = +S(+l), l = +g[a + 40 >> 2], o = +g[a + 44 >> 2], p = k * +g[a + 48 >> 2] + l - (n * l - m * o), q = k * +g[a + 52 >> 2] + o - (m * l + n * o), e = a + 60 | 0, o = +g[a + 72 >> 2], l = +g[a + 68 >> 2], k = +(m * o + n * l), r = +(n * o - m * l), l = +g[e >> 2], o = +g[a + 64 >> 2], s = +(p + (n * l - m * o)), t = +(q + (m * l + n * o)),
u = e, g[u >> 2] = s, g[u + 4 >> 2] = t, u = a + 68 | 0, g[u >> 2] = k, g[u + 4 >> 2] = r, r = +g[f >> 2], k = p * r, p = q * r, q = m * r, m = (n + -1) * r, u = c[a + 4 >> 2] | 0, e = a + 8 | 0, (u | 0) < (c[e >> 2] | 0)) : 0) {
v = u;
do {
u = c[j >> 2] | 0;
r = +g[u + (v << 3) >> 2];
n = +g[u + (v << 3) + 4 >> 2];
t = +(k + (m * r - q * n));
s = +(p + (q * r + m * n));
u = (c[h >> 2] | 0) + (v << 3) | 0;
g[u >> 2] = t;
g[u + 4 >> 2] = s;
v = v + 1 | 0
} while ((v | 0) < (c[e >> 2] | 0))
}
a = c[a + 24 >> 2] | 0
} while ((a | 0) != 0);
i = d;
return
}
function nl(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;
h = i;
j = +(e - d | 0);
k = +g[f >> 2] / j;
l = +g[f + 4 >> 2] / j;
if (!(k != 0 | l != 0)) {
i = h;
return
}
f = b + 21 | 0;
if ((a[f >>
0] | 0) == 0) {
xn(c[b + 112 >> 2] | 0, 0, c[b + 44 >> 2] << 3 | 0) | 0;
a[f >> 0] = 1
}
if ((d | 0) >= (e | 0)) {
i = h;
return
}
f = c[b + 112 >> 2] | 0;
b = d;
do {
d = f + (b << 3) | 0;
g[d >> 2] = k + +g[d >> 2];
d = f + (b << 3) + 4 | 0;
g[d >> 2] = l + +g[d >> 2];
b = b + 1 | 0
} while ((b | 0) != (e | 0));
i = h;
return
}
function ol(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;
f = i;
h = +g[a + 32 >> 2] * .75;
j = +(d - b | 0) * h * +g[a + 320 >> 2] * h;
h = +g[e >> 2] / j;
k = +g[e + 4 >> 2] / j;
if ((b | 0) >= (d | 0)) {
i = f;
return
}
e = c[a + 104 >> 2] | 0;
a = b;
do {
b = e + (a << 3) | 0;
g[b >> 2] = h + +g[b >> 2];
b = e + (a << 3) + 4 | 0;
g[b >> 2] = k + +g[b >> 2];
a = a + 1 | 0
} while ((a | 0) != (d |
0));
i = f;
return
}
function pl(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;
e = i;
f = c[a + 204 >> 2] | 0;
if ((f | 0) == 0) {
i = e;
return
}
h = c[a + 200 >> 2] | 0;
j = +g[a + 36 >> 2];
k = +g[d >> 2];
l = d + 4 | 0;
m = (~~(j * +g[l >> 2] + 2048) >>> 0 << 20) + (~~(j * k * 256 + 524288) >>> 0) | 0;
n = h;
o = f << 3 >> 3;
a:
while (1) {
p = o;
while (1) {
if ((p | 0) == 0)
break a;
q = (p | 0) / 2 | 0;
if ((c[n + (q << 3) + 4 >> 2] | 0) >>> 0 < m >>> 0)
break;
else
p = q
}
n = n + (q + 1 << 3) | 0;
o = p + -1 - q | 0
}
q = d + 8 | 0;
o = d + 12 | 0;
m = (~~(j * +g[o >> 2] + 2048) >>> 0 << 20) + (~~(j * +g[q >> 2] * 256 + 524288) >>> 0) | 0;
r = n;
s =
h + (f << 3) - n >> 3;
b:
while (1) {
f = s;
while (1) {
if ((f | 0) == 0)
break b;
t = (f | 0) / 2 | 0;
if ((c[r + (t << 3) + 4 >> 2] | 0) >>> 0 > m >>> 0)
f = t;
else
break
}
r = r + (t + 1 << 3) | 0;
s = f + -1 - t | 0
}
if (!(n >>> 0 < r >>> 0)) {
i = e;
return
}
t = a + 96 | 0;
j = k;
s = n;
while (1) {
n = c[s >> 2] | 0;
m = c[t >> 2] | 0;
k = +g[m + (n << 3) >> 2];
if ((((j < k ? k < +g[q >> 2] : 0) ? (k = +g[m + (n << 3) + 4 >> 2], +g[l >> 2] < k) : 0) ? k < +g[o >> 2] : 0) ? !(hb[c[(c[b >> 2] | 0) + 12 >> 2] & 15](b, a, n) | 0) : 0) {
u = 21;
break
}
n = s + 8 | 0;
if (!(n >>> 0 < r >>> 0)) {
u = 21;
break
}
j = +g[d >> 2];
s = n
}
if ((u | 0) == 21) {
i = e;
return
}
}
function ql(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,
O = 0;
f = i;
i = i + 64 | 0;
h = f;
j = f + 32 | 0;
k = f + 24 | 0;
l = f + 16 | 0;
if ((c[a + 204 >> 2] | 0) == 0) {
i = f;
return
}
m = +g[d >> 2];
n = +g[e >> 2];
o = d + 4 | 0;
p = +g[o >> 2];
q = +g[e + 4 >> 2];
r = +(m < n ? m : n);
s = +(p < q ? p : q);
e = h;
g[e >> 2] = r;
g[e + 4 >> 2] = s;
s = +(m > n ? m : n);
r = +(p > q ? p : q);
e = h + 8 | 0;
g[e >> 2] = s;
g[e + 4 >> 2] = r;
r = n - m;
m = q - p;
p = r * r + m * m;
Nk(j, a, h);
h = j + 16 | 0;
e = c[j + 20 >> 2] | 0;
t = j + 4 | 0;
u = a + 96 | 0;
v = a + 40 | 0;
w = k + 4 | 0;
x = l + 4 | 0;
y = c[h >> 2] | 0;
q = 1;
a:
while (1) {
if (!(y >>>
0 < e >>> 0)) {
z = 16;
break
}
A = c[j >> 2] | 0;
B = c[t >> 2] | 0;
C = y;
while (1) {
D = c[C + 4 >> 2] & 1048575;
E = C;
C = C + 8 | 0;
c[h >> 2] = C;
if (D >>> 0 < A >>> 0 | D >>> 0 > B >>> 0)
if (C >>> 0 < e >>> 0) {
C = C;
continue
} else {
z = 16;
break a
}
F = c[E >> 2] | 0;
if (!((F | 0) > -1)) {
z = 16;
break a
}
E = c[u >> 2] | 0;
G = +g[d >> 2];
H = G - +g[E + (F << 3) >> 2];
I = +g[o >> 2];
J = I - +g[E + (F << 3) + 4 >> 2];
n = r * H + m * J;
s = n * n - p * (H * H + J * J - +g[v >> 2]);
if (s >= 0 ? (K = +Q(+s), s = (-n - K) / p, !(s > q)) : 0) {
if (!(s < 0)) {
L = s;
break
}
s = (K - n) / p;
if (!(s < 0 | s > q)) {
L = s;
break
}
}
if (!(C >>> 0 < e >>> 0)) {
z = 16;
break a
}
}
s = r * L;
n = m * L;
K = H + s;
M = J + n;
g[k >> 2] = K;
g[w >> 2] = M;
N = +Q(+(K * K + M * M));
if (!(N < 1.1920928955078125E-7)) {
O = 1 / N;
g[k >> 2] = K * O;
g[w >> 2] = M * O
}
B = c[(c[b >> 2] | 0) + 12 >> 2] | 0;
g[l >> 2] = s + G;
g[x >> 2] = n + I;
n = +ab[B & 1](b, a, F, l, k, L);
q = q < n ? q : n;
if (q <= 0) {
z = 16;
break
} else
y = C
}
if ((z | 0) == 16) {
i = f;
return
}
}
function rl(b, c, e) {
b = b | 0;
c = c | 0;
e = e | 0;
var f = 0,
g = 0,
h = 0,
j = 0,
k = 0,
l = 0,
m = 0,
n = 0,
o = 0,
p = 0,
q = 0,
r = 0,
s = 0,
t = 0,
u = 0,
v = 0,
w = 0;
f = i;
g = ((e + -4 + (0 - c) | 0) >>> 2) + 1 | 0;
h = b;
j = c;
k = c;
while (1) {
c = d[h >> 0] | d[h + 1 >> 0] << 8 | d[h + 2 >> 0] << 16 | d[h + 3 >> 0] << 24;
l = k + 1 | 0;
m = a[l >> 0] | 0;
n = k + 2 | 0;
o = a[n >> 0] | 0;
p = k + 3 | 0;
q = a[p >> 0] | 0;
a[h >> 0] = a[k >>
0] | 0;
a[h + 1 >> 0] = m;
a[h + 2 >> 0] = o;
a[h + 3 >> 0] = q;
a[k >> 0] = c;
a[l >> 0] = c >>> 8;
a[n >> 0] = c >>> 16;
a[p >> 0] = c >>> 24;
c = h + 4 | 0;
p = k + 4 | 0;
r = (c | 0) == (j | 0);
if ((p | 0) == (e | 0))
break;
h = c;
j = r ? p : j;
k = p
}
k = b + (g << 2) | 0;
if (r) {
i = f;
return k | 0
} else {
s = k;
t = j;
u = j
}
a:
while (1) {
j = s;
r = u;
while (1) {
g = d[j >> 0] | d[j + 1 >> 0] << 8 | d[j + 2 >> 0] << 16 | d[j + 3 >> 0] << 24;
b = r + 1 | 0;
h = a[b >> 0] | 0;
p = r + 2 | 0;
c = a[p >> 0] | 0;
n = r + 3 | 0;
l = a[n >> 0] | 0;
a[j >> 0] = a[r >> 0] | 0;
a[j + 1 >> 0] = h;
a[j + 2 >> 0] = c;
a[j + 3 >> 0] = l;
a[r >> 0] = g;
a[b >> 0] = g >>> 8;
a[p >> 0] = g >>> 16;
a[n >> 0] = g >>> 24;
j = j + 4 | 0;
v = r + 4 | 0;
w = (j | 0) == (t | 0);
if ((v | 0) !=
(e | 0))
break;
if (w)
break a;
else
r = t
}
s = j;
t = w ? v : t;
u = v
}
i = f;
return k | 0
}
function sl(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;
e = i;
f = a;
a = b;
a:
while (1) {
b = a;
g = a + -4 | 0;
h = f;
b:
while (1) {
j = h;
k = b - j | 0;
l = k >> 2;
switch (l | 0) {
case 2:
m = 4;
break a;
break;
case 3:
m = 6;
break a;
break;
case 5:
m = 8;
break a;
break;
case 4:
m = 7;
break a;
break;
case 1:
case 0:
m = 51;
break a;
break;
default:
}
if ((k |
0) < 124) {
m = 10;
break a
}
n = (l | 0) / 2 | 0;
o = h + (n << 2) | 0;
if ((k | 0) > 3996) {
k = (l | 0) / 4 | 0;
p = vl(h, h + (k << 2) | 0, o, h + (k + n << 2) | 0, g, d) | 0
} else
p = tl(h, o, g, c[d >> 2] | 0) | 0;
n = c[h >> 2] | 0;
k = c[d >> 2] | 0;
l = c[k + (n << 2) >> 2] | 0;
q = c[k + (c[o >> 2] << 2) >> 2] | 0;
r = +(l | 0) <= 0;
s = +(q | 0) <= 0;
do if (r ^ s ? r : (l | 0) > (q | 0)) {
t = g;
u = p
} else {
v = g;
while (1) {
v = v + -4 | 0;
if ((h | 0) == (v | 0))
break;
w = c[v >> 2] | 0;
x = c[k + (w << 2) >> 2] | 0;
y = +(x | 0) <= 0;
if (y ^ s ? y : (x | 0) > (q | 0)) {
m = 34;
break
}
}
if ((m | 0) == 34) {
m = 0;
c[h >> 2] = w;
c[v >> 2] = n;
t = v;
u = p + 1 | 0;
break
}
x = h + 4 | 0;
y = c[g >> 2] | 0;
z = c[k + (y << 2) >> 2] | 0;
if (r ^ +(z | 0) <=
0 ? r : (l | 0) > (z | 0))
A = x;
else {
if ((x | 0) == (g | 0)) {
m = 51;
break a
} else
B = x;
while (1) {
C = c[B >> 2] | 0;
x = c[k + (C << 2) >> 2] | 0;
D = B + 4 | 0;
if (r ^ +(x | 0) <= 0 ? r : (l | 0) > (x | 0))
break;
if ((D | 0) == (g | 0)) {
m = 51;
break a
} else
B = D
}
c[B >> 2] = y;
c[g >> 2] = C;
A = D
}
if ((A | 0) == (g | 0)) {
m = 51;
break a
} else {
E = A;
F = g
}
while (1) {
v = c[k + (c[h >> 2] << 2) >> 2] | 0;
x = +(v | 0) <= 0;
z = E;
while (1) {
G = c[z >> 2] | 0;
H = c[k + (G << 2) >> 2] | 0;
I = z + 4 | 0;
if (x ^ +(H | 0) <= 0 ? x : (v | 0) > (H | 0)) {
J = F;
break
} else
z = I
}
do {
J = J + -4 | 0;
K = c[J >> 2] | 0;
H = c[k + (K << 2) >> 2] | 0
} while (x ^ +(H | 0) <= 0 ? x : (v | 0) > (H | 0));
if (!(z >>> 0 < J >>> 0)) {
h = z;
continue b
}
c[z >>
2] = K;
c[J >> 2] = G;
E = I;
F = J
}
}
while (0);
l = h + 4 | 0;
c:
do if (l >>> 0 < t >>> 0) {
r = l;
n = t;
q = o;
s = u;
while (1) {
y = c[k + (c[q >> 2] << 2) >> 2] | 0;
v = +(y | 0) <= 0;
x = r;
while (1) {
L = c[x >> 2] | 0;
H = c[k + (L << 2) >> 2] | 0;
M = +(H | 0) <= 0;
N = x + 4 | 0;
if (M ^ v ? M : (H | 0) > (y | 0))
x = N;
else {
O = n;
break
}
}
do {
O = O + -4 | 0;
P = c[O >> 2] | 0;
z = c[k + (P << 2) >> 2] | 0;
H = +(z | 0) <= 0
} while (!(H ^ v ? H : (z | 0) > (y | 0)));
if (x >>> 0 > O >>> 0) {
Q = x;
R = q;
S = s;
break c
}
c[x >> 2] = P;
c[O >> 2] = L;
r = N;
n = O;
q = (q | 0) == (x | 0) ? O : q;
s = s + 1 | 0
}
} else {
Q = l;
R = o;
S = u
}
while (0);
if ((Q | 0) != (R | 0) ? (o = c[R >> 2] | 0, l = c[Q >> 2] | 0, s = c[k + (o << 2) >> 2] | 0, q = c[k + (l << 2) >>
2] | 0, n = +(s | 0) <= 0, n ^ +(q | 0) <= 0 ? n : (s | 0) > (q | 0)) : 0) {
c[Q >> 2] = o;
c[R >> 2] = l;
T = S + 1 | 0
} else
T = S;
if ((T | 0) == 0) {
U = wl(h, Q, d) | 0;
l = Q + 4 | 0;
if (wl(l, a, d) | 0) {
m = 46;
break
}
if (U) {
h = l;
continue
}
}
l = Q;
if ((l - j | 0) >= (b - l | 0)) {
m = 50;
break
}
sl(h, Q, d);
h = Q + 4 | 0
}
if ((m | 0) == 46) {
m = 0;
if (U) {
m = 51;
break
} else {
f = h;
a = Q;
continue
}
} else if ((m | 0) == 50) {
m = 0;
sl(Q + 4 | 0, a, d);
f = h;
a = Q;
continue
}
}
if ((m | 0) == 4) {
Q = c[g >> 2] | 0;
f = c[h >> 2] | 0;
U = c[d >> 2] | 0;
T = c[U + (Q << 2) >> 2] | 0;
S = c[U + (f << 2) >> 2] | 0;
U = +(T | 0) <= 0;
if (!(U ^ +(S | 0) <= 0 ? U : (T | 0) > (S | 0))) {
i = e;
return
}
c[h >> 2] = Q;
c[g >> 2] = f;
i = e;
return
} else if ((m |
0) == 6) {
tl(h, h + 4 | 0, g, c[d >> 2] | 0) | 0;
i = e;
return
} else if ((m | 0) == 7) {
ul(h, h + 4 | 0, h + 8 | 0, g, d) | 0;
i = e;
return
} else if ((m | 0) == 8) {
vl(h, h + 4 | 0, h + 8 | 0, h + 12 | 0, g, d) | 0;
i = e;
return
} else if ((m | 0) == 10) {
g = h + 8 | 0;
tl(h, h + 4 | 0, g, c[d >> 2] | 0) | 0;
f = h + 12 | 0;
if ((f | 0) == (a | 0)) {
i = e;
return
}
Q = c[d >> 2] | 0;
d = f;
f = g;
while (1) {
g = c[d >> 2] | 0;
S = c[f >> 2] | 0;
T = Q + (g << 2) | 0;
U = c[T >> 2] | 0;
R = c[Q + (S << 2) >> 2] | 0;
u = +(U | 0) <= 0;
if (u ^ +(R | 0) <= 0 ? u : (U | 0) > (R | 0)) {
R = S;
S = d;
U = f;
while (1) {
c[S >> 2] = R;
if ((U | 0) == (h | 0)) {
V = h;
break
}
u = U + -4 | 0;
R = c[u >> 2] | 0;
O = c[T >> 2] | 0;
N = c[Q + (R << 2) >> 2] | 0;
L = +(O |
0) <= 0;
if (!(L ^ +(N | 0) <= 0 ? L : (O | 0) > (N | 0))) {
V = U;
break
} else {
N = U;
U = u;
S = N
}
}
c[V >> 2] = g
}
S = d + 4 | 0;
if ((S | 0) == (a | 0))
break;
else {
U = d;
d = S;
f = U
}
}
i = e;
return
} else if ((m | 0) == 51) {
i = e;
return
}
}
function tl(a, b, d, e) {
a = a | 0;
b = b | 0;
d = d | 0;
e = e | 0;
var f = 0,
g = 0,
h = 0,
j = 0,
k = 0,
l = 0,
m = 0,
n = 0,
o = 0,
p = 0,
q = 0,
r = 0;
f = i;
g = c[b >> 2] | 0;
h = c[a >> 2] | 0;
j = c[e + (g << 2) >> 2] | 0;
k = e + (h << 2) | 0;
l = c[k >> 2] | 0;
m = +(j | 0) <= 0;
n = c[d >> 2] | 0;
o = c[e + (n << 2) >> 2] | 0;
p = +(o | 0) <= 0;
q = p ^ m ? p : (o | 0) > (j | 0);
if (!(m ^ +(l | 0) <= 0 ? m : (j | 0) > (l | 0))) {
if (!q) {
r = 0;
i = f;
return r | 0
}
c[b >> 2] = n;
c[d >> 2] = g;
l = c[b >> 2] | 0;
j = c[a >> 2] | 0;
m = c[e + (l << 2) >> 2] | 0;
o = c[e + (j << 2) >> 2] | 0;
p = +(m | 0) <= 0;
if (!(p ^ +(o | 0) <= 0 ? p : (m | 0) > (o | 0))) {
r = 1;
i = f;
return r | 0
}
c[a >> 2] = l;
c[b >> 2] = j;
r = 2;
i = f;
return r | 0
}
if (q) {
c[a >> 2] = n;
c[d >> 2] = h;
r = 1;
i = f;
return r | 0
}
c[a >> 2] = g;
c[b >> 2] = h;
g = c[d >> 2] | 0;
a = c[e + (g << 2) >> 2] | 0;
e = c[k >> 2] | 0;
k = +(a | 0) <= 0;
if (!(k ^ +(e | 0) <= 0 ? k : (a | 0) > (e | 0))) {
r = 1;
i = f;
return r | 0
}
c[b >> 2] = g;
c[d >> 2] = h;
r = 2;
i = f;
return r | 0
}
function ul(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;
g = i;
h = tl(a, b, d, c[f >> 2] | 0) | 0;
j = c[e >> 2] | 0;
k = c[d >> 2] |
0;
l = c[f >> 2] | 0;
f = c[l + (j << 2) >> 2] | 0;
m = c[l + (k << 2) >> 2] | 0;
n = +(f | 0) <= 0;
if (!(n ^ +(m | 0) <= 0 ? n : (f | 0) > (m | 0))) {
o = h;
i = g;
return o | 0
}
c[d >> 2] = j;
c[e >> 2] = k;
k = c[d >> 2] | 0;
e = c[b >> 2] | 0;
j = c[l + (k << 2) >> 2] | 0;
m = c[l + (e << 2) >> 2] | 0;
f = +(j | 0) <= 0;
if (!(f ^ +(m | 0) <= 0 ? f : (j | 0) > (m | 0))) {
o = h + 1 | 0;
i = g;
return o | 0
}
c[b >> 2] = k;
c[d >> 2] = e;
e = c[b >> 2] | 0;
d = c[a >> 2] | 0;
k = c[l + (e << 2) >> 2] | 0;
m = c[l + (d << 2) >> 2] | 0;
l = +(k | 0) <= 0;
if (!(l ^ +(m | 0) <= 0 ? l : (k | 0) > (m | 0))) {
o = h + 2 | 0;
i = g;
return o | 0
}
c[a >> 2] = e;
c[b >> 2] = d;
o = h + 3 | 0;
i = g;
return o | 0
}
function vl(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;
h = i;
j = ul(a, b, d, e, g) | 0;
k = c[f >> 2] | 0;
l = c[e >> 2] | 0;
m = c[g >> 2] | 0;
g = c[m + (k << 2) >> 2] | 0;
n = c[m + (l << 2) >> 2] | 0;
o = +(g | 0) <= 0;
if (!(o ^ +(n | 0) <= 0 ? o : (g | 0) > (n | 0))) {
p = j;
i = h;
return p | 0
}
c[e >> 2] = k;
c[f >> 2] = l;
l = c[e >> 2] | 0;
f = c[d >> 2] | 0;
k = c[m + (l << 2) >> 2] | 0;
n = c[m + (f << 2) >> 2] | 0;
g = +(k | 0) <= 0;
if (!(g ^ +(n | 0) <= 0 ? g : (k | 0) > (n | 0))) {
p = j + 1 | 0;
i = h;
return p | 0
}
c[d >> 2] = l;
c[e >> 2] = f;
f = c[d >> 2] | 0;
e = c[b >> 2] | 0;
l = c[m + (f << 2) >> 2] | 0;
n = c[m + (e << 2) >> 2] | 0;
k = +(l | 0) <= 0;
if (!(k ^ +(n | 0) <= 0 ? k : (l | 0) > (n | 0))) {
p = j + 2 | 0;
i =
h;
return p | 0
}
c[b >> 2] = f;
c[d >> 2] = e;
e = c[b >> 2] | 0;
d = c[a >> 2] | 0;
f = c[m + (e << 2) >> 2] | 0;
n = c[m + (d << 2) >> 2] | 0;
m = +(f | 0) <= 0;
if (!(m ^ +(n | 0) <= 0 ? m : (f | 0) > (n | 0))) {
p = j + 3 | 0;
i = h;
return p | 0
}
c[a >> 2] = e;
c[b >> 2] = d;
p = j + 4 | 0;
i = h;
return p | 0
}
function wl(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;
e = i;
switch (b - a >> 2 | 0) {
case 3:
tl(a, a + 4 | 0, b + -4 | 0, c[d >> 2] | 0) | 0;
f = 1;
i = e;
return f | 0;
case 2:
g = b + -4 | 0;
h = c[g >> 2] | 0;
j = c[a >> 2] | 0;
k = c[d >> 2] | 0;
l = c[k + (h << 2) >> 2] | 0;
m = c[k + (j << 2) >> 2] | 0;
k = +(l | 0) <= 0;
if (!(k ^
+(m | 0) <= 0 ? k : (l | 0) > (m | 0))) {
f = 1;
i = e;
return f | 0
}
c[a >> 2] = h;
c[g >> 2] = j;
f = 1;
i = e;
return f | 0;
case 4:
ul(a, a + 4 | 0, a + 8 | 0, b + -4 | 0, d) | 0;
f = 1;
i = e;
return f | 0;
case 1:
case 0:
f = 1;
i = e;
return f | 0;
case 5:
vl(a, a + 4 | 0, a + 8 | 0, a + 12 | 0, b + -4 | 0, d) | 0;
f = 1;
i = e;
return f | 0;
default:
j = a + 8 | 0;
tl(a, a + 4 | 0, j, c[d >> 2] | 0) | 0;
g = a + 12 | 0;
if ((g | 0) == (b | 0)) {
f = 1;
i = e;
return f | 0
}
h = c[d >> 2] | 0;
d = 0;
m = g;
g = j;
while (1) {
j = c[m >> 2] | 0;
l = c[g >> 2] | 0;
k = h + (j << 2) | 0;
n = c[k >> 2] | 0;
o = c[h + (l << 2) >> 2] | 0;
p = +(n | 0) <= 0;
if (p ^ +(o | 0) <= 0 ? p : (n | 0) > (o | 0)) {
o = l;
l = m;
n = g;
while (1) {
c[l >> 2] = o;
if ((n |
0) == (a | 0)) {
q = a;
break
}
p = n + -4 | 0;
o = c[p >> 2] | 0;
r = c[k >> 2] | 0;
s = c[h + (o << 2) >> 2] | 0;
t = +(r | 0) <= 0;
if (!(t ^ +(s | 0) <= 0 ? t : (r | 0) > (s | 0))) {
q = n;
break
} else {
s = n;
n = p;
l = s
}
}
c[q >> 2] = j;
l = d + 1 | 0;
if ((l | 0) == 8)
break;
else
u = l
} else
u = d;
l = m + 4 | 0;
if ((l | 0) == (b | 0)) {
f = 1;
v = 15;
break
} else {
n = m;
d = u;
m = l;
g = n
}
}
if ((v | 0) == 15) {
i = e;
return f | 0
}
f = (m + 4 | 0) == (b | 0);
i = e;
return f | 0
}
return 0
}
function xl(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;
d = i;
i = i + 32 | 0;
e = d + 16 | 0;
f = d + 8 | 0;
h = d;
j = a + 4 | 0;
k = a + 8 | 0;
if ((c[b >> 2] | 0) == (c[j >> 2] | 0)) {
l = c[k >> 2] |
0;
c[a + 8 >> 2] = l + 1;
if ((l | 0) > 3) {
l = c[a + 12 >> 2] | 0;
c[l >> 2] = (c[l >> 2] | 0) + 1;
m = 1;
i = d;
return m | 0
}
} else {
c[k >> 2] = 0;
c[j >> 2] = c[b >> 2];
c[a + 8 >> 2] = 1
}
j = b + 16 | 0;
n = +g[j >> 2];
k = c[a >> 2] | 0;
o = +g[k + 32 >> 2] * (1 - +g[b + 12 >> 2]);
l = c[b >> 2] | 0;
p = c[k + 96 >> 2] | 0;
q = +g[j + 4 >> 2] * o + +g[p + (l << 3) + 4 >> 2];
g[e >> 2] = +g[p + (l << 3) >> 2] + n * o;
g[e + 4 >> 2] = q;
l = b + 8 | 0;
b = c[l >> 2] | 0;
p = c[b + 12 >> 2] | 0;
if (hb[c[(c[p >> 2] | 0) + 16 >> 2] & 15](p, (c[b + 8 >> 2] | 0) + 12 | 0, e) | 0) {
m = 0;
i = d;
return m | 0
}
b = c[(c[l >> 2] | 0) + 12 >> 2] | 0;
p = bb[c[(c[b >> 2] | 0) + 12 >> 2] & 7](b) | 0;
a:
do if ((p | 0) > 0) {
b = 0;
while (1) {
j = c[l >> 2] |
0;
k = c[j + 12 >> 2] | 0;
mb[c[(c[k >> 2] | 0) + 20 >> 2] & 7](k, (c[j + 8 >> 2] | 0) + 12 | 0, e, f, h, b);
b = b + 1 | 0;
if (+g[f >> 2] < .004999999888241291) {
m = 0;
break
}
if ((b | 0) >= (p | 0))
break a
}
i = d;
return m | 0
}
while (0);
p = c[a + 12 >> 2] | 0;
c[p >> 2] = (c[p >> 2] | 0) + 1;
m = 1;
i = d;
return m | 0
}
function yl(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;
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 4:
m =
14;
break a;
break;
case 3:
m = 6;
break a;
break;
case 5:
m = 15;
break a;
break;
case 1:
case 0:
m = 67;
break a;
break;
case 2:
m = 4;
break a;
break;
default:
}
if ((l | 0) < 868) {
m = 21;
break a
}
n = (l | 0) / 56 | 0;
o = j + (n * 28 | 0) | 0;
do if ((l | 0) > 27972) {
p = (l | 0) / 112 | 0;
q = j + (p * 28 | 0) | 0;
r = j + ((p + n | 0) * 28 | 0) | 0;
p = zl(j, q, o, r, d) | 0;
if (nb[c[d >> 2] & 31](h, r) | 0) {
c[f + 0 >> 2] = c[r + 0 >> 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 + 0 >> 2] = c[h + 0 >> 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 + 0 >> 2] = c[f + 0 >> 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 (nb[c[d >> 2] & 31](r, o) | 0) {
c[f + 0 >> 2] = c[o + 0 >> 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 + 0 >> 2] = c[r + 0 >> 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 + 0 >> 2] = c[f + 0 >> 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 (nb[c[d >> 2] & 31](o, q) | 0) {
c[f + 0 >> 2] = c[q + 0 >> 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 + 0 >> 2] = c[o + 0 >> 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 + 0 >> 2] = c[f + 0 >> 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 (nb[c[d >> 2] & 31](q, j) | 0) {
c[f + 0 >> 2] = c[j + 0 >> 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 + 0 >> 2] = c[q + 0 >> 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 + 0 >> 2] = c[f + 0 >> 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 = nb[c[d >> 2] & 31](o, j) | 0;
s = nb[c[d >> 2] & 31](h, o) | 0;
if (!p) {
if (!s) {
t = 0;
break
}
c[f + 0 >> 2] = c[o + 0 >> 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 + 0 >> 2] = c[h + 0 >> 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 + 0 >> 2] = c[f + 0 >> 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 (!(nb[c[d >> 2] & 31](o, j) | 0)) {
t = 1;
break
}
c[f + 0 >> 2] = c[j + 0 >> 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 + 0 >> 2] = c[o + 0 >> 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 + 0 >> 2] = c[f + 0 >> 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 + 0 >> 2] = c[j + 0 >> 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 + 0 >> 2] = c[h + 0 >> 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 + 0 >> 2] = c[f + 0 >> 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 + 0 >> 2] = c[j + 0 >> 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 + 0 >> 2] = c[o + 0 >> 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 + 0 >> 2] = c[f + 0 >> 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 (nb[c[d >> 2] & 31](h, o) | 0) {
c[f + 0 >> 2] = c[o + 0 >> 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 + 0 >> 2] = c[h + 0 >> 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 + 0 >> 2] = c[f + 0 >> 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);
do if (nb[c[d >> 2] & 31](j, o) | 0) {
u = h;
v = t
} else {
n = h;
while (1) {
n = n + -28 | 0;
if ((j | 0) == (n | 0))
break;
if (nb[c[d >> 2] & 31](n, o) | 0) {
m = 50;
break
}
}
if ((m | 0) == 50) {
m = 0;
c[f + 0 >> 2] = c[j + 0 >> 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 + 0 >> 2] = c[n + 0 >> 2];
c[j + 4 >> 2] = c[n + 4 >> 2];
c[j + 8 >> 2] = c[n + 8 >> 2];
c[j + 12 >> 2] = c[n + 12 >> 2];
c[j + 16 >> 2] = c[n + 16 >> 2];
c[j + 20 >> 2] = c[n + 20 >> 2];
c[j + 24 >> 2] = c[n + 24 >> 2];
c[n + 0 >> 2] = c[f + 0 >> 2];
c[n + 4 >> 2] = c[f + 4 >> 2];
c[n + 8 >> 2] = c[f + 8 >> 2];
c[n + 12 >> 2] = c[f + 12 >> 2];
c[n + 16 >> 2] = c[f + 16 >> 2];
c[n + 20 >> 2] = c[f + 20 >> 2];
c[n + 24 >> 2] = c[f + 24 >> 2];
u = n;
v = t + 1 | 0;
break
}
l = j + 28 | 0;
if (nb[c[d >> 2] & 31](j, h) | 0)
w = l;
else {
if ((l | 0) == (h | 0)) {
m = 67;
break a
} else
x = l;
while (1) {
y = x + 28 | 0;
if (nb[c[d >> 2] & 31](j, x) | 0)
break;
if ((y | 0) == (h | 0)) {
m = 67;
break a
} else
x = y
}
c[f + 0 >> 2] = c[x + 0 >> 2];
c[f + 4 >> 2] = c[x + 4 >> 2];
c[f + 8 >> 2] = c[x + 8 >> 2];
c[f + 12 >> 2] = c[x + 12 >> 2];
c[f + 16 >> 2] = c[x + 16 >> 2];
c[f + 20 >> 2] = c[x + 20 >>
2];
c[f + 24 >> 2] = c[x + 24 >> 2];
c[x + 0 >> 2] = c[h + 0 >> 2];
c[x + 4 >> 2] = c[h + 4 >> 2];
c[x + 8 >> 2] = c[h + 8 >> 2];
c[x + 12 >> 2] = c[h + 12 >> 2];
c[x + 16 >> 2] = c[h + 16 >> 2];
c[x + 20 >> 2] = c[h + 20 >> 2];
c[x + 24 >> 2] = c[h + 24 >> 2];
c[h + 0 >> 2] = c[f + 0 >> 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];
w = y
}
if ((w | 0) == (h | 0)) {
m = 67;
break a
} else {
z = w;
A = h
}
while (1) {
n = z;
while (1) {
B = n + 28 | 0;
if (nb[c[d >> 2] & 31](j, n) | 0) {
C = A;
break
} else
n = B
}
do C = C + -28 | 0;
while (nb[c[d >> 2] & 31](j, C) | 0);
if (!(n >>> 0 < C >>>
0)) {
j = n;
continue b
}
c[f + 0 >> 2] = c[n + 0 >> 2];
c[f + 4 >> 2] = c[n + 4 >> 2];
c[f + 8 >> 2] = c[n + 8 >> 2];
c[f + 12 >> 2] = c[n + 12 >> 2];
c[f + 16 >> 2] = c[n + 16 >> 2];
c[f + 20 >> 2] = c[n + 20 >> 2];
c[f + 24 >> 2] = c[n + 24 >> 2];
c[n + 0 >> 2] = c[C + 0 >> 2];
c[n + 4 >> 2] = c[C + 4 >> 2];
c[n + 8 >> 2] = c[C + 8 >> 2];
c[n + 12 >> 2] = c[C + 12 >> 2];
c[n + 16 >> 2] = c[C + 16 >> 2];
c[n + 20 >> 2] = c[C + 20 >> 2];
c[n + 24 >> 2] = c[C + 24 >> 2];
c[C + 0 >> 2] = c[f + 0 >> 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 = B;
A = C
}
}
while (0);
l = j + 28 | 0;
c:
do if (l >>>
0 < u >>> 0) {
s = l;
p = u;
r = o;
q = v;
while (1) {
D = s;
while (1) {
E = D + 28 | 0;
if (nb[c[d >> 2] & 31](D, r) | 0)
D = E;
else {
F = p;
break
}
}
do F = F + -28 | 0;
while (!(nb[c[d >> 2] & 31](F, r) | 0));
if (D >>> 0 > F >>> 0) {
G = D;
H = r;
I = q;
break c
}
c[f + 0 >> 2] = c[D + 0 >> 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 + 0 >> 2] = c[F + 0 >> 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];
c[F + 0 >> 2] = c[f + 0 >> 2];
c[F +
4 >> 2] = c[f + 4 >> 2];
c[F + 8 >> 2] = c[f + 8 >> 2];
c[F + 12 >> 2] = c[f + 12 >> 2];
c[F + 16 >> 2] = c[f + 16 >> 2];
c[F + 20 >> 2] = c[f + 20 >> 2];
c[F + 24 >> 2] = c[f + 24 >> 2];
s = E;
p = F;
r = (r | 0) == (D | 0) ? F : r;
q = q + 1 | 0
}
} else {
G = l;
H = o;
I = v
}
while (0);
if ((G | 0) != (H | 0) ? nb[c[d >> 2] & 31](H, G) | 0 : 0) {
c[f + 0 >> 2] = c[G + 0 >> 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 + 0 >> 2] = c[H + 0 >> 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 + 0 >> 2] = c[f + 0 >> 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 = I + 1 | 0
} else
J = I;
if ((J | 0) == 0) {
K = Bl(j, G, d) | 0;
o = G + 28 | 0;
if (Bl(o, a, d) | 0) {
m = 62;
break
}
if (K) {
j = o;
continue
}
}
o = G;
if ((o - k | 0) >= (b - o | 0)) {
m = 66;
break
}
yl(j, G, d);
j = G + 28 | 0
}
if ((m | 0) == 62) {
m = 0;
if (K) {
m = 67;
break
} else {
g = j;
a = G;
continue
}
} else if ((m | 0) == 66) {
m = 0;
yl(G + 28 | 0, a, d);
g = j;
a = G;
continue
}
}
if ((m | 0) == 4) {
if (!(nb[c[d >> 2] & 31](h, j) | 0)) {
i = e;
return
}
c[f + 0 >> 2] =
c[j + 0 >> 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 + 0 >> 2] = c[h + 0 >> 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 + 0 >> 2] = c[f + 0 >> 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];
i = e;
return
} else if ((m | 0) == 6) {
G = j + 28 | 0;
g = nb[c[d >> 2] & 31](G, j) | 0;
K = nb[c[d >>
2] & 31](h, G) | 0;
if (!g) {
if (!K) {
i = e;
return
}
c[f + 0 >> 2] = c[G + 0 >> 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 + 0 >> 2] = c[h + 0 >> 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 + 0 >> 2] = c[f + 0 >> 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 (!(nb[c[d >> 2] & 31](G,
j) | 0)) {
i = e;
return
}
c[f + 0 >> 2] = c[j + 0 >> 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 + 0 >> 2] = c[G + 0 >> 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];
c[j + 20 >> 2] = c[G + 20 >> 2];
c[j + 24 >> 2] = c[G + 24 >> 2];
c[G + 0 >> 2] = c[f + 0 >> 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 = e;
return
}
if (K) {
c[f + 0 >> 2] = c[j + 0 >> 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 + 0 >> 2] = c[h + 0 >> 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 + 0 >> 2] = c[f + 0 >> 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];
i = e;
return
}
c[f + 0 >> 2] = c[j + 0 >> 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 + 0 >> 2] = c[G + 0 >> 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];
c[j + 20 >> 2] = c[G + 20 >> 2];
c[j + 24 >> 2] = c[G + 24 >> 2];
c[G + 0 >> 2] = c[f + 0 >> 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 (!(nb[c[d >> 2] & 31](h, G) | 0)) {
i = e;
return
}
c[f + 0 >> 2] = c[G + 0 >> 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 + 0 >> 2] = c[h + 0 >> 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 + 0 >> 2] = c[f + 0 >> 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];
i = e;
return
} else if ((m | 0) == 14) {
zl(j, j + 28 | 0, j + 56 | 0, h, d) | 0;
i = e;
return
} else if ((m | 0) == 15) {
G = j + 28 | 0;
K = j + 56 | 0;
g = j + 84 | 0;
zl(j, G, K, g, d) | 0;
if (!(nb[c[d >> 2] & 31](h,
g) | 0)) {
i = e;
return
}
c[f + 0 >> 2] = c[g + 0 >> 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 + 0 >> 2] = c[h + 0 >> 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 + 0 >> 2] = c[f + 0 >> 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 (!(nb[c[d >> 2] & 31](g, K) | 0)) {
i = e;
return
}
c[f +
0 >> 2] = c[K + 0 >> 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 + 0 >> 2] = c[g + 0 >> 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];
c[K + 20 >> 2] = c[g + 20 >> 2];
c[K + 24 >> 2] = c[g + 24 >> 2];
c[g + 0 >> 2] = c[f + 0 >> 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 (!(nb[c[d >> 2] & 31](K, G) | 0)) {
i = e;
return
}
c[f + 0 >> 2] = c[G + 0 >> 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 + 0 >> 2] = c[K + 0 >> 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 + 0 >> 2] = c[f + 0 >> 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 (!(nb[c[d >> 2] & 31](G, j) | 0)) {
i = e;
return
}
c[f + 0 >> 2] = c[j + 0 >> 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 + 0 >> 2] = c[G + 0 >> 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];
c[j + 20 >> 2] = c[G + 20 >> 2];
c[j + 24 >> 2] = c[G + 24 >> 2];
c[G + 0 >> 2] = c[f + 0 >> 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 = e;
return
} else if ((m | 0) == 21) {
Al(j, a, d);
i = e;
return
} else if ((m | 0) == 67) {
i = e;
return
}
}
function zl(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 = nb[c[f >> 2] & 31](b, a) | 0;
k = nb[c[f >> 2] & 31](d, b) | 0;
do if (j) {
if (k) {
c[h + 0 >> 2] = c[a + 0 >> 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 + 0 >> 2] = c[d + 0 >> 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 + 0 >> 2] = c[h + 0 >> 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 + 0 >> 2] = c[a + 0 >> 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 + 0 >> 2] = c[b + 0 >> 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 + 0 >> 2] = c[h + 0 >> 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 (nb[c[f >> 2] & 31](d, b) | 0) {
c[h + 0 >> 2] = c[b + 0 >> 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 + 0 >> 2] = c[d + 0 >> 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 + 0 >> 2] = c[h + 0 >> 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 + 0 >> 2] = c[b + 0 >> 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 + 0 >> 2] = c[d + 0 >> 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 + 0 >> 2] = c[h + 0 >> 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 (nb[c[f >> 2] & 31](b, a) | 0) {
c[h +
0 >> 2] = c[a + 0 >> 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 + 0 >> 2] = c[b + 0 >> 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 + 0 >> 2] = c[h + 0 >> 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 (!(nb[c[f >> 2] & 31](e, d) | 0)) {
m =
l;
i = g;
return m | 0
}
c[h + 0 >> 2] = c[d + 0 >> 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 + 0 >> 2] = c[e + 0 >> 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 + 0 >> 2] = c[h + 0 >> 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 (!(nb[c[f >> 2] & 31](d, b) | 0)) {
m = l + 1 | 0;
i = g;
return m | 0
}
c[h + 0 >> 2] = c[b + 0 >> 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 + 0 >> 2] = c[d + 0 >> 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 + 0 >> 2] = c[h + 0 >> 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 (!(nb[c[f >> 2] & 31](b, a) | 0)) {
m = l + 2 | 0;
i = g;
return m |
0
}
c[h + 0 >> 2] = c[a + 0 >> 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 + 0 >> 2] = c[b + 0 >> 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 + 0 >> 2] = c[h + 0 >> 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 Al(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;
e = i;
i = i + 64 | 0;
f = e + 28 | 0;
g = e;
h = a + 56 | 0;
j = a + 28 | 0;
k = nb[c[d >> 2] & 31](j, a) | 0;
l = nb[c[d >> 2] & 31](h, j) | 0;
do if (k) {
if (l) {
c[f + 0 >> 2] = c[a + 0 >> 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 + 0 >> 2] = c[h + 0 >> 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 + 0 >> 2] = c[f + 0 >> 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 + 0 >> 2] = c[a + 0 >> 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 + 0 >> 2] = c[j + 0 >> 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 + 0 >> 2] = c[f + 0 >> 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 (nb[c[d >> 2] & 31](h, j) | 0) {
c[f + 0 >> 2] = c[j + 0 >> 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 + 0 >> 2] = c[h + 0 >> 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 + 0 >> 2] = c[f + 0 >> 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 + 0 >> 2] = c[j + 0 >> 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 + 0 >> 2] = c[h + 0 >> 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 + 0 >> 2] = c[f + 0 >> 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 (nb[c[d >> 2] & 31](j, a) | 0) {
c[f + 0 >> 2] = c[a + 0 >>
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 + 0 >> 2] = c[j + 0 >> 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 + 0 >> 2] = c[f + 0 >> 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 (nb[c[d >>
2] & 31](j, f) | 0) {
c[g + 0 >> 2] = c[j + 0 >> 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 + 0 >> 2] = c[l + 0 >> 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))
break;
k = l + -28 | 0;
if (nb[c[d >> 2] & 31](g, k) | 0) {
m = l;
l = k;
h = m
} else
break
}
c[l + 0 >> 2] = c[g + 0 >> 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]
}
h = j + 28 | 0;
if ((h | 0) == (b | 0))
break;
else {
m = j;
j = h;
f = m
}
}
i = e;
return
}
function Bl(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;
e = i;
i = i + 64 | 0;
f = e + 28 | 0;
g = e;
switch ((b - a | 0) / 28 | 0 | 0) {
case 5:
h = a + 28 | 0;
j = a + 56 | 0;
k = a + 84 | 0;
l = b + -28 | 0;
zl(a, h, j, k, d) | 0;
if (!(nb[c[d >> 2] & 31](l, k) | 0)) {
m = 1;
i = e;
return m | 0
}
c[f + 0 >> 2] = c[k + 0 >> 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 + 0 >> 2] = c[l + 0 >> 2];
c[k + 4 >> 2] = c[l + 4 >> 2];
c[k + 8 >> 2] = c[l + 8 >> 2];
c[k + 12 >> 2] = c[l + 12 >> 2];
c[k + 16 >> 2] = c[l + 16 >> 2];
c[k + 20 >> 2] = c[l + 20 >> 2];
c[k + 24 >> 2] = c[l + 24 >> 2];
c[l + 0 >> 2] = c[f + 0 >> 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 (!(nb[c[d >> 2] & 31](k, j) | 0)) {
m = 1;
i = e;
return m | 0
}
c[f + 0 >> 2] = c[j + 0 >> 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 +
0 >> 2] = c[k + 0 >> 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];
c[j + 20 >> 2] = c[k + 20 >> 2];
c[j + 24 >> 2] = c[k + 24 >> 2];
c[k + 0 >> 2] = c[f + 0 >> 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 (!(nb[c[d >> 2] & 31](j, h) | 0)) {
m = 1;
i = e;
return m | 0
}
c[f + 0 >> 2] = c[h + 0 >> 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 + 0 >> 2] = c[j +
0 >> 2];
c[h + 4 >> 2] = c[j + 4 >> 2];
c[h + 8 >> 2] = c[j + 8 >> 2];
c[h + 12 >> 2] = c[j + 12 >> 2];
c[h + 16 >> 2] = c[j + 16 >> 2];
c[h + 20 >> 2] = c[j + 20 >> 2];
c[h + 24 >> 2] = c[j + 24 >> 2];
c[j + 0 >> 2] = c[f + 0 >> 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 (!(nb[c[d >> 2] & 31](h, a) | 0)) {
m = 1;
i = e;
return m | 0
}
c[f + 0 >> 2] = c[a + 0 >> 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 + 0 >> 2] = c[h + 0 >> 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 + 0 >> 2] = c[f + 0 >> 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];
m = 1;
i = e;
return m | 0;
case 3:
h = a + 28 | 0;
j = b + -28 | 0;
k = nb[c[d >> 2] & 31](h, a) | 0;
l = nb[c[d >> 2] & 31](j, h) | 0;
if (!k) {
if (!l) {
m = 1;
i = e;
return m | 0
}
c[f + 0 >> 2] = c[h + 0 >> 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 + 0 >> 2] = c[j + 0 >> 2];
c[h + 4 >> 2] = c[j + 4 >> 2];
c[h + 8 >> 2] = c[j + 8 >> 2];
c[h + 12 >> 2] = c[j + 12 >> 2];
c[h + 16 >> 2] = c[j + 16 >> 2];
c[h + 20 >> 2] = c[j + 20 >> 2];
c[h + 24 >> 2] = c[j + 24 >> 2];
c[j + 0 >> 2] = c[f + 0 >> 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 (!(nb[c[d >> 2] & 31](h, a) | 0)) {
m = 1;
i = e;
return m | 0
}
c[f + 0 >> 2] = c[a + 0 >> 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 + 0 >> 2] = c[h + 0 >> 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 + 0 >> 2] = c[f + 0 >> 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];
m = 1;
i = e;
return m | 0
}
if (l) {
c[f + 0 >> 2] = c[a + 0 >> 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 + 0 >> 2] = c[j + 0 >> 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 + 0 >> 2] = c[f + 0 >> 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];
m = 1;
i = e;
return m | 0
}
c[f + 0 >> 2] = c[a + 0 >> 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 + 0 >> 2] = c[h + 0 >> 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 + 0 >> 2] = c[f + 0 >> 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 (!(nb[c[d >> 2] & 31](j, h) | 0)) {
m = 1;
i = e;
return m | 0
}
c[f + 0 >> 2] = c[h + 0 >> 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 + 0 >> 2] = c[j + 0 >> 2];
c[h + 4 >> 2] = c[j + 4 >> 2];
c[h + 8 >> 2] =
c[j + 8 >> 2];
c[h + 12 >> 2] = c[j + 12 >> 2];
c[h + 16 >> 2] = c[j + 16 >> 2];
c[h + 20 >> 2] = c[j + 20 >> 2];
c[h + 24 >> 2] = c[j + 24 >> 2];
c[j + 0 >> 2] = c[f + 0 >> 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];
m = 1;
i = e;
return m | 0;
case 1:
case 0:
m = 1;
i = e;
return m | 0;
case 4:
zl(a, a + 28 | 0, a + 56 | 0, b + -28 | 0, d) | 0;
m = 1;
i = e;
return m | 0;
case 2:
j = b + -28 | 0;
if (!(nb[c[d >> 2] & 31](j, a) | 0)) {
m = 1;
i = e;
return m | 0
}
c[f + 0 >> 2] = c[a + 0 >> 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 + 0 >> 2] = c[j + 0 >> 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 + 0 >> 2] = c[f + 0 >> 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];
m = 1;
i = e;
return m | 0;
default:
j = a + 56 | 0;
h = a + 28 | 0;
l = nb[c[d >> 2] & 31](h, a) | 0;
k = nb[c[d >> 2] & 31](j, h) | 0;
do if (l) {
if (k) {
c[f + 0 >> 2] = c[a + 0 >> 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 + 0 >> 2] = c[j + 0 >> 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 + 0 >> 2] = c[f + 0 >> 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];
break
}
c[f + 0 >> 2] = c[a + 0 >> 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 + 0 >> 2] = c[h + 0 >> 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 + 0 >> 2] = c[f + 0 >> 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 (nb[c[d >> 2] & 31](j, h) | 0) {
c[f + 0 >> 2] = c[h + 0 >> 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 + 0 >> 2] = c[j + 0 >> 2];
c[h + 4 >> 2] = c[j + 4 >> 2];
c[h + 8 >> 2] = c[j + 8 >> 2];
c[h + 12 >> 2] = c[j + 12 >> 2];
c[h + 16 >> 2] = c[j + 16 >> 2];
c[h + 20 >> 2] = c[j + 20 >> 2];
c[h + 24 >> 2] = c[j + 24 >> 2];
c[j + 0 >> 2] = c[f + 0 >> 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]
}
} else if (k) {
c[f + 0 >> 2] = c[h + 0 >> 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 + 0 >> 2] = c[j + 0 >>
2];
c[h + 4 >> 2] = c[j + 4 >> 2];
c[h + 8 >> 2] = c[j + 8 >> 2];
c[h + 12 >> 2] = c[j + 12 >> 2];
c[h + 16 >> 2] = c[j + 16 >> 2];
c[h + 20 >> 2] = c[j + 20 >> 2];
c[h + 24 >> 2] = c[j + 24 >> 2];
c[j + 0 >> 2] = c[f + 0 >> 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 (nb[c[d >> 2] & 31](h, a) | 0) {
c[f + 0 >> 2] = c[a + 0 >> 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 + 0 >> 2] = c[h + 0 >> 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 + 0 >> 2] = c[f + 0 >> 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)) {
m = 1;
i = e;
return m | 0
}
h = 0;
k = f;
f = j;
while (1) {
if (nb[c[d >> 2] & 31](k, f) | 0) {
c[g + 0 >> 2] = c[k + 0 >> 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];
j = k;
l =
f;
while (1) {
c[j + 0 >> 2] = c[l + 0 >> 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];
if ((l | 0) == (a | 0))
break;
n = l + -28 | 0;
if (nb[c[d >> 2] & 31](g, n) | 0) {
o = l;
l = n;
j = o
} else
break
}
c[l + 0 >> 2] = c[g + 0 >> 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];
j = h + 1 | 0;
if ((j | 0) == 8)
break;
else
p = j
} else
p = h;
j = k + 28 | 0;
if ((j | 0) == (b | 0)) {
m = 1;
q = 35;
break
} else {
o = k;
h = p;
k = j;
f = o
}
}
if ((q |
0) == 35) {
i = e;
return m | 0
}
m = (k + 28 | 0) == (b | 0);
i = e;
return m | 0
}
return 0
}
function Cl(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;
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 = 4;
break a;
break;
case 3:
n = 6;
break a;
break;
case 4:
n = 14;
break a;
break;
case 5:
n = 26;
break a;
break;
case 1:
case 0:
n = 84;
break a;
break;
default:
}
if ((l |
0) < 248) {
n = 28;
break a
}
o = (m | 0) / 2 | 0;
p = j + (o << 3) | 0;
do if ((l | 0) <= 7992) {
q = nb[c[d >> 2] & 31](p, j) | 0;
r = nb[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 (!(nb[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 (nb[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 = (m | 0) / 4 | 0;
s = Dl(j, j + (w << 3) | 0, p, j + (w + o << 3) | 0, h, d) | 0
}
while (0);
do if (nb[c[d >> 2] & 31](j, p) | 0) {
x = h;
y = s
} else {
o = h;
while (1) {
o = o + -8 | 0;
if ((j | 0) == (o | 0))
break;
if (nb[c[d >> 2] & 31](o, p) | 0) {
n = 67;
break
}
}
if ((n | 0) == 67) {
n = 0;
m = j;
l = c[m >> 2] | 0;
w = c[m + 4 >> 2] | 0;
m = o;
r = c[m + 4 >> 2] | 0;
q = j;
c[q >>
2] = c[m >> 2];
c[q + 4 >> 2] = r;
r = o;
c[r >> 2] = l;
c[r + 4 >> 2] = w;
x = o;
y = s + 1 | 0;
break
}
w = j + 8 | 0;
if (nb[c[d >> 2] & 31](j, h) | 0)
z = w;
else {
if ((w | 0) == (h | 0)) {
n = 84;
break a
} else
A = w;
while (1) {
B = A + 8 | 0;
if (nb[c[d >> 2] & 31](j, A) | 0)
break;
if ((B | 0) == (h | 0)) {
n = 84;
break a
} else
A = B
}
o = A;
w = c[o >> 2] | 0;
r = c[o + 4 >> 2] | 0;
o = h;
l = c[o + 4 >> 2] | 0;
q = A;
c[q >> 2] = c[o >> 2];
c[q + 4 >> 2] = l;
l = h;
c[l >> 2] = w;
c[l + 4 >> 2] = r;
z = B
}
if ((z | 0) == (h | 0)) {
n = 84;
break a
} else {
C = z;
D = h
}
while (1) {
r = C;
while (1) {
E = r + 8 | 0;
if (nb[c[d >> 2] & 31](j, r) | 0) {
F = D;
break
} else
r = E
}
do F = F + -8 | 0;
while (nb[c[d >> 2] & 31](j, F) |
0);
if (!(r >>> 0 < F >>> 0)) {
j = r;
continue b
}
l = r;
w = c[l >> 2] | 0;
q = c[l + 4 >> 2] | 0;
l = F;
o = c[l + 4 >> 2] | 0;
m = r;
c[m >> 2] = c[l >> 2];
c[m + 4 >> 2] = o;
o = F;
c[o >> 2] = w;
c[o + 4 >> 2] = q;
C = E;
D = F
}
}
while (0);
q = j + 8 | 0;
c:
do if (q >>> 0 < x >>> 0) {
o = q;
w = x;
m = p;
l = y;
while (1) {
t = o;
while (1) {
G = t + 8 | 0;
if (nb[c[d >> 2] & 31](t, m) | 0)
t = G;
else {
H = w;
break
}
}
do H = H + -8 | 0;
while (!(nb[c[d >> 2] & 31](H, m) | 0));
if (t >>> 0 > H >>> 0) {
I = t;
J = m;
K = l;
break c
}
r = t;
v = c[r >> 2] | 0;
u = c[r + 4 >> 2] | 0;
r = H;
L = c[r + 4 >> 2] | 0;
M = t;
c[M >> 2] = c[r >> 2];
c[M + 4 >> 2] = L;
L = H;
c[L >> 2] = v;
c[L + 4 >> 2] = u;
o = G;
w = H;
m = (m | 0) == (t | 0) ? H : m;
l = l + 1 | 0
}
} else {
I =
q;
J = p;
K = y
}
while (0);
if ((I | 0) != (J | 0) ? nb[c[d >> 2] & 31](J, I) | 0 : 0) {
p = I;
q = c[p >> 2] | 0;
l = c[p + 4 >> 2] | 0;
p = J;
m = c[p + 4 >> 2] | 0;
w = I;
c[w >> 2] = c[p >> 2];
c[w + 4 >> 2] = m;
m = J;
c[m >> 2] = q;
c[m + 4 >> 2] = l;
N = K + 1 | 0
} else
N = K;
if ((N | 0) == 0) {
O = El(j, I, d) | 0;
l = I + 8 | 0;
if (El(l, a, d) | 0) {
n = 79;
break
}
if (O) {
j = l;
continue
}
}
l = I;
if ((l - k | 0) >= (b - l | 0)) {
n = 83;
break
}
Cl(j, I, d);
j = I + 8 | 0
}
if ((n | 0) == 79) {
n = 0;
if (O) {
n = 84;
break
} else {
g = j;
a = I;
continue
}
} else if ((n | 0) == 83) {
n = 0;
Cl(I + 8 | 0, a, d);
g = j;
a = I;
continue
}
}
if ((n | 0) == 4) {
if (!(nb[c[d >> 2] & 31](h, j) | 0)) {
i = e;
return
}
I = j;
g = c[I >> 2] | 0;
O = c[I + 4 >> 2] | 0;
I = h;
N = c[I + 4 >> 2] | 0;
K = j;
c[K >> 2] = c[I >> 2];
c[K + 4 >> 2] = N;
N = h;
c[N >> 2] = g;
c[N + 4 >> 2] = O;
i = e;
return
} else if ((n | 0) == 6) {
O = j + 8 | 0;
N = nb[c[d >> 2] & 31](O, j) | 0;
g = nb[c[d >> 2] & 31](h, O) | 0;
if (!N) {
if (!g) {
i = e;
return
}
N = O;
K = c[N >> 2] | 0;
I = c[N + 4 >> 2] | 0;
N = h;
J = c[N + 4 >> 2] | 0;
y = O;
c[y >> 2] = c[N >> 2];
c[y + 4 >> 2] = J;
J = h;
c[J >> 2] = K;
c[J + 4 >> 2] = I;
if (!(nb[c[d >> 2] & 31](O, j) | 0)) {
i = e;
return
}
I = j;
J = c[I >> 2] | 0;
K = c[I + 4 >> 2] | 0;
I = O;
y = c[I + 4 >> 2] | 0;
N = j;
c[N >> 2] = c[I >> 2];
c[N + 4 >> 2] = y;
y = O;
c[y >> 2] = J;
c[y + 4 >> 2] = K;
i = e;
return
}
K = j;
y = c[K >> 2] | 0;
J = c[K + 4 >> 2] | 0;
if (g) {
g =
h;
K = c[g + 4 >> 2] | 0;
N = j;
c[N >> 2] = c[g >> 2];
c[N + 4 >> 2] = K;
K = h;
c[K >> 2] = y;
c[K + 4 >> 2] = J;
i = e;
return
}
K = O;
N = c[K + 4 >> 2] | 0;
g = j;
c[g >> 2] = c[K >> 2];
c[g + 4 >> 2] = N;
N = O;
c[N >> 2] = y;
c[N + 4 >> 2] = J;
if (!(nb[c[d >> 2] & 31](h, O) | 0)) {
i = e;
return
}
J = O;
N = c[J >> 2] | 0;
y = c[J + 4 >> 2] | 0;
J = h;
g = c[J + 4 >> 2] | 0;
K = O;
c[K >> 2] = c[J >> 2];
c[K + 4 >> 2] = g;
g = h;
c[g >> 2] = N;
c[g + 4 >> 2] = y;
i = e;
return
} else if ((n | 0) == 14) {
y = j + 8 | 0;
g = j + 16 | 0;
N = nb[c[d >> 2] & 31](y, j) | 0;
K = nb[c[d >> 2] & 31](g, y) | 0;
do if (N) {
J = j;
O = c[J >> 2] | 0;
I = c[J + 4 >> 2] | 0;
if (K) {
J = g;
H = c[J + 4 >> 2] | 0;
G = j;
c[G >> 2] = c[J >> 2];
c[G + 4 >> 2] = H;
H = g;
c[H >> 2] = O;
c[H + 4 >> 2] = I;
break
}
H = y;
G = c[H + 4 >> 2] | 0;
J = j;
c[J >> 2] = c[H >> 2];
c[J + 4 >> 2] = G;
G = y;
c[G >> 2] = O;
c[G + 4 >> 2] = I;
if (nb[c[d >> 2] & 31](g, y) | 0) {
I = y;
G = c[I >> 2] | 0;
O = c[I + 4 >> 2] | 0;
I = g;
J = c[I + 4 >> 2] | 0;
H = y;
c[H >> 2] = c[I >> 2];
c[H + 4 >> 2] = J;
J = g;
c[J >> 2] = G;
c[J + 4 >> 2] = O
}
} else if (K ? (O = y, J = c[O >> 2] | 0, G = c[O + 4 >> 2] | 0, O = g, H = c[O + 4 >> 2] | 0, I = y, c[I >> 2] = c[O >> 2], c[I + 4 >> 2] = H, H = g, c[H >> 2] = J, c[H + 4 >> 2] = G, nb[c[d >> 2] & 31](y, j) | 0) : 0) {
G = j;
H = c[G >> 2] | 0;
J = c[G + 4 >> 2] | 0;
G = y;
I = c[G + 4 >> 2] | 0;
O = j;
c[O >> 2] = c[G >> 2];
c[O + 4 >> 2] = I;
I = y;
c[I >> 2] = H;
c[I + 4 >> 2] = J
}
while (0);
if (!(nb[c[d >>
2] & 31](h, g) | 0)) {
i = e;
return
}
K = g;
N = c[K >> 2] | 0;
J = c[K + 4 >> 2] | 0;
K = h;
I = c[K + 4 >> 2] | 0;
H = g;
c[H >> 2] = c[K >> 2];
c[H + 4 >> 2] = I;
I = h;
c[I >> 2] = N;
c[I + 4 >> 2] = J;
if (!(nb[c[d >> 2] & 31](g, y) | 0)) {
i = e;
return
}
J = y;
I = c[J >> 2] | 0;
N = c[J + 4 >> 2] | 0;
J = g;
H = c[J + 4 >> 2] | 0;
K = y;
c[K >> 2] = c[J >> 2];
c[K + 4 >> 2] = H;
H = g;
c[H >> 2] = I;
c[H + 4 >> 2] = N;
if (!(nb[c[d >> 2] & 31](y, j) | 0)) {
i = e;
return
}
N = j;
H = c[N >> 2] | 0;
I = c[N + 4 >> 2] | 0;
N = y;
g = c[N + 4 >> 2] | 0;
K = j;
c[K >> 2] = c[N >> 2];
c[K + 4 >> 2] = g;
g = y;
c[g >> 2] = H;
c[g + 4 >> 2] = I;
i = e;
return
} else if ((n | 0) == 26) {
Dl(j, j + 8 | 0, j + 16 | 0, j + 24 | 0, h, d) | 0;
i = e;
return
} else if ((n |
0) == 28) {
h = j + 16 | 0;
I = j + 8 | 0;
g = nb[c[d >> 2] & 31](I, j) | 0;
H = nb[c[d >> 2] & 31](h, I) | 0;
do if (g) {
y = j;
K = c[y >> 2] | 0;
N = c[y + 4 >> 2] | 0;
if (H) {
y = h;
J = c[y + 4 >> 2] | 0;
O = j;
c[O >> 2] = c[y >> 2];
c[O + 4 >> 2] = J;
J = h;
c[J >> 2] = K;
c[J + 4 >> 2] = N;
break
}
J = I;
O = c[J + 4 >> 2] | 0;
y = j;
c[y >> 2] = c[J >> 2];
c[y + 4 >> 2] = O;
O = I;
c[O >> 2] = K;
c[O + 4 >> 2] = N;
if (nb[c[d >> 2] & 31](h, I) | 0) {
N = I;
O = c[N >> 2] | 0;
K = c[N + 4 >> 2] | 0;
N = h;
y = c[N + 4 >> 2] | 0;
J = I;
c[J >> 2] = c[N >> 2];
c[J + 4 >> 2] = y;
y = h;
c[y >> 2] = O;
c[y + 4 >> 2] = K
}
} else if (H ? (K = I, y = c[K >> 2] | 0, O = c[K + 4 >> 2] | 0, K = h, J = c[K + 4 >> 2] | 0, N = I, c[N >> 2] = c[K >> 2], c[N + 4 >> 2] = J, J =
h, c[J >> 2] = y, c[J + 4 >> 2] = O, nb[c[d >> 2] & 31](I, j) | 0) : 0) {
O = j;
J = c[O >> 2] | 0;
y = c[O + 4 >> 2] | 0;
O = I;
N = c[O + 4 >> 2] | 0;
K = j;
c[K >> 2] = c[O >> 2];
c[K + 4 >> 2] = N;
N = I;
c[N >> 2] = J;
c[N + 4 >> 2] = y
}
while (0);
I = j + 24 | 0;
if ((I | 0) == (a | 0)) {
i = e;
return
} else {
P = I;
Q = h
}
while (1) {
if (nb[c[d >> 2] & 31](P, Q) | 0) {
h = P;
I = c[h + 4 >> 2] | 0;
H = f;
c[H >> 2] = c[h >> 2];
c[H + 4 >> 2] = I;
I = P;
H = Q;
while (1) {
h = H;
g = c[h + 4 >> 2] | 0;
y = I;
c[y >> 2] = c[h >> 2];
c[y + 4 >> 2] = g;
if ((H | 0) == (j | 0))
break;
g = H + -8 | 0;
if (nb[c[d >> 2] & 31](f, g) | 0) {
y = H;
H = g;
I = y
} else
break
}
I = f;
y = c[I + 4 >> 2] | 0;
g = H;
c[g >> 2] = c[I >> 2];
c[g + 4 >> 2] = y
}
y = P +
8 | 0;
if ((y | 0) == (a | 0))
break;
else {
g = P;
P = y;
Q = g
}
}
i = e;
return
} else if ((n | 0) == 84) {
i = e;
return
}
}
function Dl(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;
h = i;
j = nb[c[g >> 2] & 31](b, a) | 0;
k = nb[c[g >> 2] & 31](d, b) | 0;
do if (j) {
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;
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;
if (nb[c[g >> 2] & 31](d, b) | 0) {
n = b;
p = c[n >> 2] | 0;
m = c[n +
4 >> 2] | 0;
n = d;
l = c[n + 4 >> 2] | 0;
o = b;
c[o >> 2] = c[n >> 2];
c[o + 4 >> 2] = l;
l = d;
c[l >> 2] = p;
c[l + 4 >> 2] = m;
q = 2
} else
q = 1
} else if (k) {
m = b;
l = c[m >> 2] | 0;
p = c[m + 4 >> 2] | 0;
m = d;
o = c[m + 4 >> 2] | 0;
n = b;
c[n >> 2] = c[m >> 2];
c[n + 4 >> 2] = o;
o = d;
c[o >> 2] = l;
c[o + 4 >> 2] = p;
if (nb[c[g >> 2] & 31](b, a) | 0) {
p = a;
o = c[p >> 2] | 0;
l = c[p + 4 >> 2] | 0;
p = b;
n = c[p + 4 >> 2] | 0;
m = a;
c[m >> 2] = c[p >> 2];
c[m + 4 >> 2] = n;
n = b;
c[n >> 2] = o;
c[n + 4 >> 2] = l;
q = 2
} else
q = 1
} else
q = 0;
while (0);
if (nb[c[g >> 2] & 31](e, d) | 0) {
k = d;
j = c[k >> 2] | 0;
l = c[k + 4 >> 2] | 0;
k = e;
n = c[k + 4 >> 2] | 0;
o = d;
c[o >> 2] = c[k >> 2];
c[o + 4 >> 2] = n;
n = e;
c[n >> 2] = j;
c[n +
4 >> 2] = l;
l = q + 1 | 0;
if (nb[c[g >> 2] & 31](d, b) | 0) {
n = b;
j = c[n >> 2] | 0;
o = c[n + 4 >> 2] | 0;
n = d;
k = c[n + 4 >> 2] | 0;
m = b;
c[m >> 2] = c[n >> 2];
c[m + 4 >> 2] = k;
k = d;
c[k >> 2] = j;
c[k + 4 >> 2] = o;
if (nb[c[g >> 2] & 31](b, a) | 0) {
o = a;
k = c[o >> 2] | 0;
j = c[o + 4 >> 2] | 0;
o = b;
m = c[o + 4 >> 2] | 0;
n = a;
c[n >> 2] = c[o >> 2];
c[n + 4 >> 2] = m;
m = b;
c[m >> 2] = k;
c[m + 4 >> 2] = j;
r = q + 3 | 0
} else
r = q + 2 | 0
} else
r = l
} else
r = q;
if (!(nb[c[g >> 2] & 31](f, e) | 0)) {
s = r;
i = h;
return s | 0
}
q = e;
l = c[q >> 2] | 0;
j = c[q + 4 >> 2] | 0;
q = f;
m = c[q + 4 >> 2] | 0;
k = e;
c[k >> 2] = c[q >> 2];
c[k + 4 >> 2] = m;
m = f;
c[m >> 2] = l;
c[m + 4 >> 2] = j;
if (!(nb[c[g >> 2] & 31](e, d) | 0)) {
s =
r + 1 | 0;
i = h;
return s | 0
}
j = d;
m = c[j >> 2] | 0;
l = c[j + 4 >> 2] | 0;
j = e;
f = c[j + 4 >> 2] | 0;
k = d;
c[k >> 2] = c[j >> 2];
c[k + 4 >> 2] = f;
f = e;
c[f >> 2] = m;
c[f + 4 >> 2] = l;
if (!(nb[c[g >> 2] & 31](d, b) | 0)) {
s = r + 2 | 0;
i = h;
return s | 0
}
l = b;
f = c[l >> 2] | 0;
m = c[l + 4 >> 2] | 0;
l = d;
e = c[l + 4 >> 2] | 0;
k = b;
c[k >> 2] = c[l >> 2];
c[k + 4 >> 2] = e;
e = d;
c[e >> 2] = f;
c[e + 4 >> 2] = m;
if (!(nb[c[g >> 2] & 31](b, a) | 0)) {
s = r + 3 | 0;
i = h;
return s | 0
}
g = a;
m = 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] = m;
c[f + 4 >> 2] = e;
s = r + 4 | 0;
i = h;
return s | 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,
t = 0,
u = 0,
v = 0,
w = 0;
e = i;
i = i + 16 | 0;
f = e;
switch (b - a >> 3 | 0) {
case 2:
g = b + -8 | 0;
if (!(nb[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 5:
Dl(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;
case 4:
l = a + 8 | 0;
m = a + 16 | 0;
k = b + -8 | 0;
g = nb[c[d >> 2] & 31](l, a) | 0;
n = nb[c[d >> 2] & 31](m, l) | 0;
do if (g) {
j = a;
o = c[j >> 2] |
0;
p = c[j + 4 >> 2] | 0;
if (n) {
j = m;
q = c[j + 4 >> 2] | 0;
r = a;
c[r >> 2] = c[j >> 2];
c[r + 4 >> 2] = q;
q = m;
c[q >> 2] = o;
c[q + 4 >> 2] = p;
break
}
q = l;
r = c[q + 4 >> 2] | 0;
j = a;
c[j >> 2] = c[q >> 2];
c[j + 4 >> 2] = r;
r = l;
c[r >> 2] = o;
c[r + 4 >> 2] = p;
if (nb[c[d >> 2] & 31](m, l) | 0) {
p = l;
r = c[p >> 2] | 0;
o = c[p + 4 >> 2] | 0;
p = m;
j = c[p + 4 >> 2] | 0;
q = l;
c[q >> 2] = c[p >> 2];
c[q + 4 >> 2] = j;
j = m;
c[j >> 2] = r;
c[j + 4 >> 2] = o
}
} else if (n ? (o = l, j = c[o >> 2] | 0, r = c[o + 4 >> 2] | 0, o = m, q = c[o + 4 >> 2] | 0, p = l, c[p >> 2] = c[o >> 2], c[p + 4 >> 2] = q, q = m, c[q >> 2] = j, c[q + 4 >> 2] = r, nb[c[d >> 2] & 31](l, a) | 0) : 0) {
r = a;
q = c[r >> 2] | 0;
j = c[r + 4 >> 2] | 0;
r = l;
p = c[r + 4 >> 2] |
0;
o = a;
c[o >> 2] = c[r >> 2];
c[o + 4 >> 2] = p;
p = l;
c[p >> 2] = q;
c[p + 4 >> 2] = j
}
while (0);
if (!(nb[c[d >> 2] & 31](k, m) | 0)) {
h = 1;
i = e;
return h | 0
}
n = m;
g = c[n >> 2] | 0;
j = c[n + 4 >> 2] | 0;
n = k;
p = c[n + 4 >> 2] | 0;
q = m;
c[q >> 2] = c[n >> 2];
c[q + 4 >> 2] = p;
p = k;
c[p >> 2] = g;
c[p + 4 >> 2] = j;
if (!(nb[c[d >> 2] & 31](m, l) | 0)) {
h = 1;
i = e;
return h | 0
}
j = l;
p = c[j >> 2] | 0;
g = c[j + 4 >> 2] | 0;
j = m;
k = c[j + 4 >> 2] | 0;
q = l;
c[q >> 2] = c[j >> 2];
c[q + 4 >> 2] = k;
k = m;
c[k >> 2] = p;
c[k + 4 >> 2] = g;
if (!(nb[c[d >> 2] & 31](l, a) | 0)) {
h = 1;
i = e;
return h | 0
}
g = a;
k = c[g >> 2] | 0;
p = c[g + 4 >> 2] | 0;
g = l;
m = c[g + 4 >> 2] | 0;
q = a;
c[q >> 2] = c[g >> 2];
c[q + 4 >> 2] =
m;
m = l;
c[m >> 2] = k;
c[m + 4 >> 2] = p;
h = 1;
i = e;
return h | 0;
case 3:
p = a + 8 | 0;
m = b + -8 | 0;
k = nb[c[d >> 2] & 31](p, a) | 0;
l = nb[c[d >> 2] & 31](m, p) | 0;
if (!k) {
if (!l) {
h = 1;
i = e;
return h | 0
}
k = p;
q = c[k >> 2] | 0;
g = c[k + 4 >> 2] | 0;
k = m;
j = c[k + 4 >> 2] | 0;
n = p;
c[n >> 2] = c[k >> 2];
c[n + 4 >> 2] = j;
j = m;
c[j >> 2] = q;
c[j + 4 >> 2] = g;
if (!(nb[c[d >> 2] & 31](p, a) | 0)) {
h = 1;
i = e;
return h | 0
}
g = a;
j = c[g >> 2] | 0;
q = c[g + 4 >> 2] | 0;
g = p;
n = c[g + 4 >> 2] | 0;
k = a;
c[k >> 2] = c[g >> 2];
c[k + 4 >> 2] = n;
n = p;
c[n >> 2] = j;
c[n + 4 >> 2] = q;
h = 1;
i = e;
return h | 0
}
q = a;
n = c[q >> 2] | 0;
j = c[q + 4 >> 2] | 0;
if (l) {
l = m;
q = c[l + 4 >> 2] | 0;
k = a;
c[k >> 2] = c[l >>
2];
c[k + 4 >> 2] = q;
q = m;
c[q >> 2] = n;
c[q + 4 >> 2] = j;
h = 1;
i = e;
return h | 0
}
q = p;
k = c[q + 4 >> 2] | 0;
l = a;
c[l >> 2] = c[q >> 2];
c[l + 4 >> 2] = k;
k = p;
c[k >> 2] = n;
c[k + 4 >> 2] = j;
if (!(nb[c[d >> 2] & 31](m, p) | 0)) {
h = 1;
i = e;
return h | 0
}
j = p;
k = c[j >> 2] | 0;
n = c[j + 4 >> 2] | 0;
j = m;
l = c[j + 4 >> 2] | 0;
q = p;
c[q >> 2] = c[j >> 2];
c[q + 4 >> 2] = l;
l = m;
c[l >> 2] = k;
c[l + 4 >> 2] = n;
h = 1;
i = e;
return h | 0;
default:
n = a + 16 | 0;
l = a + 8 | 0;
k = nb[c[d >> 2] & 31](l, a) | 0;
m = nb[c[d >> 2] & 31](n, l) | 0;
do if (k) {
q = a;
j = c[q >> 2] | 0;
p = c[q + 4 >> 2] | 0;
if (m) {
q = n;
g = c[q + 4 >> 2] | 0;
o = a;
c[o >> 2] = c[q >> 2];
c[o + 4 >> 2] = g;
g = n;
c[g >> 2] = j;
c[g + 4 >> 2] =
p;
break
}
g = l;
o = c[g + 4 >> 2] | 0;
q = a;
c[q >> 2] = c[g >> 2];
c[q + 4 >> 2] = o;
o = l;
c[o >> 2] = j;
c[o + 4 >> 2] = p;
if (nb[c[d >> 2] & 31](n, l) | 0) {
p = l;
o = c[p >> 2] | 0;
j = c[p + 4 >> 2] | 0;
p = n;
q = c[p + 4 >> 2] | 0;
g = l;
c[g >> 2] = c[p >> 2];
c[g + 4 >> 2] = q;
q = n;
c[q >> 2] = o;
c[q + 4 >> 2] = j
}
} else if (m ? (j = l, q = c[j >> 2] | 0, o = c[j + 4 >> 2] | 0, j = n, g = c[j + 4 >> 2] | 0, p = l, c[p >> 2] = c[j >> 2], c[p + 4 >> 2] = g, g = n, c[g >> 2] = q, c[g + 4 >> 2] = o, nb[c[d >> 2] & 31](l, a) | 0) : 0) {
o = a;
g = c[o >> 2] | 0;
q = c[o + 4 >> 2] | 0;
o = l;
p = c[o + 4 >> 2] | 0;
j = a;
c[j >> 2] = c[o >> 2];
c[j + 4 >> 2] = p;
p = l;
c[p >> 2] = g;
c[p + 4 >> 2] = q
}
while (0);
l = a + 24 | 0;
if ((l | 0) == (b | 0)) {
h =
1;
i = e;
return h | 0
} else {
s = 0;
t = l;
u = n
}
while (1) {
if (nb[c[d >> 2] & 31](t, u) | 0) {
n = t;
l = c[n + 4 >> 2] | 0;
m = f;
c[m >> 2] = c[n >> 2];
c[m + 4 >> 2] = l;
l = t;
m = u;
while (1) {
n = m;
k = c[n + 4 >> 2] | 0;
q = l;
c[q >> 2] = c[n >> 2];
c[q + 4 >> 2] = k;
if ((m | 0) == (a | 0))
break;
k = m + -8 | 0;
if (nb[c[d >> 2] & 31](f, k) | 0) {
q = m;
m = k;
l = q
} else
break
}
l = f;
q = c[l + 4 >> 2] | 0;
k = m;
c[k >> 2] = c[l >> 2];
c[k + 4 >> 2] = q;
q = s + 1 | 0;
if ((q | 0) == 8)
break;
else
v = q
} else
v = s;
q = t + 8 | 0;
if ((q | 0) == (b | 0)) {
h = 1;
w = 41;
break
} else {
k = t;
s = v;
t = q;
u = k
}
}
if ((w | 0) == 41) {
i = e;
return h | 0
}
h = (t + 8 | 0) == (b | 0);
i = e;
return h | 0
}
return 0
}
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,
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;
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 = 4;
break a;
break;
case 4:
n = 14;
break a;
break;
case 5:
n = 26;
break a;
break;
case 3:
n = 6;
break a;
break;
case 1:
case 0:
n = 84;
break a;
break;
default:
}
if ((l | 0) < 248) {
n = 28;
break a
}
o = (m | 0) / 2 | 0;
p = j + (o << 3) | 0;
do if ((l | 0) <= 7992) {
q = nb[c[d >> 2] &
31](p, j) | 0;
r = nb[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 (!(nb[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 (nb[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 = (m | 0) / 4 | 0;
s = Gl(j, j + (w << 3) | 0, p, j + (w + o << 3) | 0, h, d) | 0
}
while (0);
do if (nb[c[d >> 2] & 31](j, p) | 0) {
x = h;
y = s
} else {
o = h;
while (1) {
o = o + -8 | 0;
if ((j | 0) == (o | 0))
break;
if (nb[c[d >> 2] & 31](o, p) | 0) {
n = 67;
break
}
}
if ((n | 0) == 67) {
n = 0;
m = j;
l = c[m >> 2] | 0;
w = c[m + 4 >> 2] | 0;
m = o;
r = c[m + 4 >> 2] | 0;
q = j;
c[q >> 2] = c[m >> 2];
c[q + 4 >> 2] = r;
r = o;
c[r >> 2] = l;
c[r + 4 >> 2] = w;
x = o;
y = s + 1 | 0;
break
}
w = j + 8 | 0;
if (nb[c[d >> 2] & 31](j, h) | 0)
z = w;
else {
if ((w | 0) == (h | 0)) {
n = 84;
break a
} else
A = w;
while (1) {
B = A + 8 | 0;
if (nb[c[d >> 2] & 31](j, A) | 0)
break;
if ((B | 0) == (h | 0)) {
n = 84;
break a
} else
A = B
}
o = A;
w = c[o >> 2] | 0;
r = c[o + 4 >> 2] | 0;
o = h;
l = c[o + 4 >> 2] | 0;
q = A;
c[q >> 2] = c[o >> 2];
c[q + 4 >> 2] = l;
l = h;
c[l >> 2] = w;
c[l + 4 >> 2] = r;
z = B
}
if ((z | 0) == (h | 0)) {
n = 84;
break a
} else {
C = z;
D = h
}
while (1) {
r = C;
while (1) {
E = r + 8 | 0;
if (nb[c[d >> 2] & 31](j, r) | 0) {
F = D;
break
} else
r = E
}
do F = F + -8 | 0;
while (nb[c[d >> 2] & 31](j, F) | 0);
if (!(r >>> 0 < F >>> 0)) {
j = r;
continue b
}
l = r;
w = c[l >> 2] | 0;
q = c[l + 4 >> 2] | 0;
l = F;
o = c[l +
4 >> 2] | 0;
m = r;
c[m >> 2] = c[l >> 2];
c[m + 4 >> 2] = o;
o = F;
c[o >> 2] = w;
c[o + 4 >> 2] = q;
C = E;
D = F
}
}
while (0);
q = j + 8 | 0;
c:
do if (q >>> 0 < x >>> 0) {
o = q;
w = x;
m = p;
l = y;
while (1) {
t = o;
while (1) {
G = t + 8 | 0;
if (nb[c[d >> 2] & 31](t, m) | 0)
t = G;
else {
H = w;
break
}
}
do H = H + -8 | 0;
while (!(nb[c[d >> 2] & 31](H, m) | 0));
if (t >>> 0 > H >>> 0) {
I = t;
J = m;
K = l;
break c
}
r = t;
v = c[r >> 2] | 0;
u = c[r + 4 >> 2] | 0;
r = H;
L = c[r + 4 >> 2] | 0;
M = t;
c[M >> 2] = c[r >> 2];
c[M + 4 >> 2] = L;
L = H;
c[L >> 2] = v;
c[L + 4 >> 2] = u;
o = G;
w = H;
m = (m | 0) == (t | 0) ? H : m;
l = l + 1 | 0
}
} else {
I = q;
J = p;
K = y
}
while (0);
if ((I | 0) != (J | 0) ? nb[c[d >> 2] & 31](J, I) | 0 : 0) {
p = I;
q = c[p >>
2] | 0;
l = c[p + 4 >> 2] | 0;
p = J;
m = c[p + 4 >> 2] | 0;
w = I;
c[w >> 2] = c[p >> 2];
c[w + 4 >> 2] = m;
m = J;
c[m >> 2] = q;
c[m + 4 >> 2] = l;
N = K + 1 | 0
} else
N = K;
if ((N | 0) == 0) {
O = Hl(j, I, d) | 0;
l = I + 8 | 0;
if (Hl(l, a, d) | 0) {
n = 79;
break
}
if (O) {
j = l;
continue
}
}
l = I;
if ((l - k | 0) >= (b - l | 0)) {
n = 83;
break
}
Fl(j, I, d);
j = I + 8 | 0
}
if ((n | 0) == 79) {
n = 0;
if (O) {
n = 84;
break
} else {
g = j;
a = I;
continue
}
} else if ((n | 0) == 83) {
n = 0;
Fl(I + 8 | 0, a, d);
g = j;
a = I;
continue
}
}
if ((n | 0) == 4) {
if (!(nb[c[d >> 2] & 31](h, j) | 0)) {
i = e;
return
}
I = j;
g = c[I >> 2] | 0;
O = c[I + 4 >> 2] | 0;
I = h;
N = c[I + 4 >> 2] | 0;
K = j;
c[K >> 2] = c[I >> 2];
c[K + 4 >> 2] = N;
N = h;
c[N >>
2] = g;
c[N + 4 >> 2] = O;
i = e;
return
} else if ((n | 0) == 6) {
O = j + 8 | 0;
N = nb[c[d >> 2] & 31](O, j) | 0;
g = nb[c[d >> 2] & 31](h, O) | 0;
if (!N) {
if (!g) {
i = e;
return
}
N = O;
K = c[N >> 2] | 0;
I = c[N + 4 >> 2] | 0;
N = h;
J = c[N + 4 >> 2] | 0;
y = O;
c[y >> 2] = c[N >> 2];
c[y + 4 >> 2] = J;
J = h;
c[J >> 2] = K;
c[J + 4 >> 2] = I;
if (!(nb[c[d >> 2] & 31](O, j) | 0)) {
i = e;
return
}
I = j;
J = c[I >> 2] | 0;
K = c[I + 4 >> 2] | 0;
I = O;
y = c[I + 4 >> 2] | 0;
N = j;
c[N >> 2] = c[I >> 2];
c[N + 4 >> 2] = y;
y = O;
c[y >> 2] = J;
c[y + 4 >> 2] = K;
i = e;
return
}
K = j;
y = c[K >> 2] | 0;
J = c[K + 4 >> 2] | 0;
if (g) {
g = h;
K = c[g + 4 >> 2] | 0;
N = j;
c[N >> 2] = c[g >> 2];
c[N + 4 >> 2] = K;
K = h;
c[K >> 2] = y;
c[K + 4 >> 2] = J;
i = e;
return
}
K = O;
N = c[K + 4 >> 2] | 0;
g = j;
c[g >> 2] = c[K >> 2];
c[g + 4 >> 2] = N;
N = O;
c[N >> 2] = y;
c[N + 4 >> 2] = J;
if (!(nb[c[d >> 2] & 31](h, O) | 0)) {
i = e;
return
}
J = O;
N = c[J >> 2] | 0;
y = c[J + 4 >> 2] | 0;
J = h;
g = c[J + 4 >> 2] | 0;
K = O;
c[K >> 2] = c[J >> 2];
c[K + 4 >> 2] = g;
g = h;
c[g >> 2] = N;
c[g + 4 >> 2] = y;
i = e;
return
} else if ((n | 0) == 14) {
y = j + 8 | 0;
g = j + 16 | 0;
N = nb[c[d >> 2] & 31](y, j) | 0;
K = nb[c[d >> 2] & 31](g, y) | 0;
do if (N) {
J = j;
O = c[J >> 2] | 0;
I = c[J + 4 >> 2] | 0;
if (K) {
J = g;
H = c[J + 4 >> 2] | 0;
G = j;
c[G >> 2] = c[J >> 2];
c[G + 4 >> 2] = H;
H = g;
c[H >> 2] = O;
c[H + 4 >> 2] = I;
break
}
H = y;
G = c[H + 4 >> 2] | 0;
J = j;
c[J >> 2] = c[H >> 2];
c[J + 4 >> 2] =
G;
G = y;
c[G >> 2] = O;
c[G + 4 >> 2] = I;
if (nb[c[d >> 2] & 31](g, y) | 0) {
I = y;
G = c[I >> 2] | 0;
O = c[I + 4 >> 2] | 0;
I = g;
J = c[I + 4 >> 2] | 0;
H = y;
c[H >> 2] = c[I >> 2];
c[H + 4 >> 2] = J;
J = g;
c[J >> 2] = G;
c[J + 4 >> 2] = O
}
} else if (K ? (O = y, J = c[O >> 2] | 0, G = c[O + 4 >> 2] | 0, O = g, H = c[O + 4 >> 2] | 0, I = y, c[I >> 2] = c[O >> 2], c[I + 4 >> 2] = H, H = g, c[H >> 2] = J, c[H + 4 >> 2] = G, nb[c[d >> 2] & 31](y, j) | 0) : 0) {
G = j;
H = c[G >> 2] | 0;
J = c[G + 4 >> 2] | 0;
G = y;
I = c[G + 4 >> 2] | 0;
O = j;
c[O >> 2] = c[G >> 2];
c[O + 4 >> 2] = I;
I = y;
c[I >> 2] = H;
c[I + 4 >> 2] = J
}
while (0);
if (!(nb[c[d >> 2] & 31](h, g) | 0)) {
i = e;
return
}
K = g;
N = c[K >> 2] | 0;
J = c[K + 4 >> 2] | 0;
K = h;
I = c[K + 4 >>
2] | 0;
H = g;
c[H >> 2] = c[K >> 2];
c[H + 4 >> 2] = I;
I = h;
c[I >> 2] = N;
c[I + 4 >> 2] = J;
if (!(nb[c[d >> 2] & 31](g, y) | 0)) {
i = e;
return
}
J = y;
I = c[J >> 2] | 0;
N = c[J + 4 >> 2] | 0;
J = g;
H = c[J + 4 >> 2] | 0;
K = y;
c[K >> 2] = c[J >> 2];
c[K + 4 >> 2] = H;
H = g;
c[H >> 2] = I;
c[H + 4 >> 2] = N;
if (!(nb[c[d >> 2] & 31](y, j) | 0)) {
i = e;
return
}
N = j;
H = c[N >> 2] | 0;
I = c[N + 4 >> 2] | 0;
N = y;
g = c[N + 4 >> 2] | 0;
K = j;
c[K >> 2] = c[N >> 2];
c[K + 4 >> 2] = g;
g = y;
c[g >> 2] = H;
c[g + 4 >> 2] = I;
i = e;
return
} else if ((n | 0) == 26) {
Gl(j, j + 8 | 0, j + 16 | 0, j + 24 | 0, h, d) | 0;
i = e;
return
} else if ((n | 0) == 28) {
h = j + 16 | 0;
I = j + 8 | 0;
g = nb[c[d >> 2] & 31](I, j) | 0;
H = nb[c[d >> 2] &
31](h, I) | 0;
do if (g) {
y = j;
K = c[y >> 2] | 0;
N = c[y + 4 >> 2] | 0;
if (H) {
y = h;
J = c[y + 4 >> 2] | 0;
O = j;
c[O >> 2] = c[y >> 2];
c[O + 4 >> 2] = J;
J = h;
c[J >> 2] = K;
c[J + 4 >> 2] = N;
break
}
J = I;
O = c[J + 4 >> 2] | 0;
y = j;
c[y >> 2] = c[J >> 2];
c[y + 4 >> 2] = O;
O = I;
c[O >> 2] = K;
c[O + 4 >> 2] = N;
if (nb[c[d >> 2] & 31](h, I) | 0) {
N = I;
O = c[N >> 2] | 0;
K = c[N + 4 >> 2] | 0;
N = h;
y = c[N + 4 >> 2] | 0;
J = I;
c[J >> 2] = c[N >> 2];
c[J + 4 >> 2] = y;
y = h;
c[y >> 2] = O;
c[y + 4 >> 2] = K
}
} else if (H ? (K = I, y = c[K >> 2] | 0, O = c[K + 4 >> 2] | 0, K = h, J = c[K + 4 >> 2] | 0, N = I, c[N >> 2] = c[K >> 2], c[N + 4 >> 2] = J, J = h, c[J >> 2] = y, c[J + 4 >> 2] = O, nb[c[d >> 2] & 31](I, j) | 0) : 0) {
O = j;
J = c[O >>
2] | 0;
y = c[O + 4 >> 2] | 0;
O = I;
N = c[O + 4 >> 2] | 0;
K = j;
c[K >> 2] = c[O >> 2];
c[K + 4 >> 2] = N;
N = I;
c[N >> 2] = J;
c[N + 4 >> 2] = y
}
while (0);
I = j + 24 | 0;
if ((I | 0) == (a | 0)) {
i = e;
return
} else {
P = I;
Q = h
}
while (1) {
if (nb[c[d >> 2] & 31](P, Q) | 0) {
h = P;
I = c[h + 4 >> 2] | 0;
H = f;
c[H >> 2] = c[h >> 2];
c[H + 4 >> 2] = I;
I = P;
H = Q;
while (1) {
h = H;
g = c[h + 4 >> 2] | 0;
y = I;
c[y >> 2] = c[h >> 2];
c[y + 4 >> 2] = g;
if ((H | 0) == (j | 0))
break;
g = H + -8 | 0;
if (nb[c[d >> 2] & 31](f, g) | 0) {
y = H;
H = g;
I = y
} else
break
}
I = f;
y = c[I + 4 >> 2] | 0;
g = H;
c[g >> 2] = c[I >> 2];
c[g + 4 >> 2] = y
}
y = P + 8 | 0;
if ((y | 0) == (a | 0))
break;
else {
g = P;
P = y;
Q = g
}
}
i = e;
return
} else if ((n |
0) == 84) {
i = e;
return
}
}
function Gl(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;
h = i;
j = nb[c[g >> 2] & 31](b, a) | 0;
k = nb[c[g >> 2] & 31](d, b) | 0;
do if (j) {
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;
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;
if (nb[c[g >> 2] & 31](d, b) | 0) {
n = b;
p = c[n >> 2] | 0;
m = c[n + 4 >> 2] | 0;
n = d;
l = c[n + 4 >> 2] | 0;
o = b;
c[o >> 2] = c[n >> 2];
c[o + 4 >> 2] = l;
l = d;
c[l >>
2] = p;
c[l + 4 >> 2] = m;
q = 2
} else
q = 1
} else if (k) {
m = b;
l = c[m >> 2] | 0;
p = c[m + 4 >> 2] | 0;
m = d;
o = c[m + 4 >> 2] | 0;
n = b;
c[n >> 2] = c[m >> 2];
c[n + 4 >> 2] = o;
o = d;
c[o >> 2] = l;
c[o + 4 >> 2] = p;
if (nb[c[g >> 2] & 31](b, a) | 0) {
p = a;
o = c[p >> 2] | 0;
l = c[p + 4 >> 2] | 0;
p = b;
n = c[p + 4 >> 2] | 0;
m = a;
c[m >> 2] = c[p >> 2];
c[m + 4 >> 2] = n;
n = b;
c[n >> 2] = o;
c[n + 4 >> 2] = l;
q = 2
} else
q = 1
} else
q = 0;
while (0);
if (nb[c[g >> 2] & 31](e, d) | 0) {
k = d;
j = c[k >> 2] | 0;
l = c[k + 4 >> 2] | 0;
k = e;
n = c[k + 4 >> 2] | 0;
o = d;
c[o >> 2] = c[k >> 2];
c[o + 4 >> 2] = n;
n = e;
c[n >> 2] = j;
c[n + 4 >> 2] = l;
l = q + 1 | 0;
if (nb[c[g >> 2] & 31](d, b) | 0) {
n = b;
j = c[n >> 2] | 0;
o = c[n + 4 >>
2] | 0;
n = d;
k = c[n + 4 >> 2] | 0;
m = b;
c[m >> 2] = c[n >> 2];
c[m + 4 >> 2] = k;
k = d;
c[k >> 2] = j;
c[k + 4 >> 2] = o;
if (nb[c[g >> 2] & 31](b, a) | 0) {
o = a;
k = c[o >> 2] | 0;
j = c[o + 4 >> 2] | 0;
o = b;
m = c[o + 4 >> 2] | 0;
n = a;
c[n >> 2] = c[o >> 2];
c[n + 4 >> 2] = m;
m = b;
c[m >> 2] = k;
c[m + 4 >> 2] = j;
r = q + 3 | 0
} else
r = q + 2 | 0
} else
r = l
} else
r = q;
if (!(nb[c[g >> 2] & 31](f, e) | 0)) {
s = r;
i = h;
return s | 0
}
q = e;
l = c[q >> 2] | 0;
j = c[q + 4 >> 2] | 0;
q = f;
m = c[q + 4 >> 2] | 0;
k = e;
c[k >> 2] = c[q >> 2];
c[k + 4 >> 2] = m;
m = f;
c[m >> 2] = l;
c[m + 4 >> 2] = j;
if (!(nb[c[g >> 2] & 31](e, d) | 0)) {
s = r + 1 | 0;
i = h;
return s | 0
}
j = d;
m = c[j >> 2] | 0;
l = c[j + 4 >> 2] | 0;
j = e;
f = c[j + 4 >>
2] | 0;
k = d;
c[k >> 2] = c[j >> 2];
c[k + 4 >> 2] = f;
f = e;
c[f >> 2] = m;
c[f + 4 >> 2] = l;
if (!(nb[c[g >> 2] & 31](d, b) | 0)) {
s = r + 2 | 0;
i = h;
return s | 0
}
l = b;
f = c[l >> 2] | 0;
m = c[l + 4 >> 2] | 0;
l = d;
e = c[l + 4 >> 2] | 0;
k = b;
c[k >> 2] = c[l >> 2];
c[k + 4 >> 2] = e;
e = d;
c[e >> 2] = f;
c[e + 4 >> 2] = m;
if (!(nb[c[g >> 2] & 31](b, a) | 0)) {
s = r + 3 | 0;
i = h;
return s | 0
}
g = a;
m = 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] = m;
c[f + 4 >> 2] = e;
s = r + 4 | 0;
i = h;
return s | 0
}
function Hl(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;
e = i;
i = i + 16 | 0;
f = e;
switch (b - a >> 3 | 0) {
case 3:
g = a + 8 | 0;
h = b + -8 | 0;
j = nb[c[d >> 2] & 31](g, a) | 0;
k = nb[c[d >> 2] & 31](h, g) | 0;
if (!j) {
if (!k) {
l = 1;
i = e;
return l | 0
}
j = g;
m = c[j >> 2] | 0;
n = c[j + 4 >> 2] | 0;
j = h;
o = c[j + 4 >> 2] | 0;
p = g;
c[p >> 2] = c[j >> 2];
c[p + 4 >> 2] = o;
o = h;
c[o >> 2] = m;
c[o + 4 >> 2] = n;
if (!(nb[c[d >> 2] & 31](g, a) | 0)) {
l = 1;
i = e;
return l | 0
}
n = a;
o = c[n >> 2] | 0;
m = c[n + 4 >> 2] | 0;
n = g;
p = c[n + 4 >> 2] | 0;
j = a;
c[j >> 2] = c[n >> 2];
c[j + 4 >> 2] = p;
p = g;
c[p >> 2] = o;
c[p + 4 >> 2] = m;
l = 1;
i = e;
return l | 0
}
m = a;
p = c[m >> 2] | 0;
o = c[m + 4 >> 2] | 0;
if (k) {
k = h;
m = c[k + 4 >> 2] | 0;
j = a;
c[j >> 2] = c[k >>
2];
c[j + 4 >> 2] = m;
m = h;
c[m >> 2] = p;
c[m + 4 >> 2] = o;
l = 1;
i = e;
return l | 0
}
m = g;
j = c[m + 4 >> 2] | 0;
k = a;
c[k >> 2] = c[m >> 2];
c[k + 4 >> 2] = j;
j = g;
c[j >> 2] = p;
c[j + 4 >> 2] = o;
if (!(nb[c[d >> 2] & 31](h, g) | 0)) {
l = 1;
i = e;
return l | 0
}
o = g;
j = c[o >> 2] | 0;
p = c[o + 4 >> 2] | 0;
o = h;
k = c[o + 4 >> 2] | 0;
m = g;
c[m >> 2] = c[o >> 2];
c[m + 4 >> 2] = k;
k = h;
c[k >> 2] = j;
c[k + 4 >> 2] = p;
l = 1;
i = e;
return l | 0;
case 4:
p = a + 8 | 0;
k = a + 16 | 0;
j = b + -8 | 0;
h = nb[c[d >> 2] & 31](p, a) | 0;
m = nb[c[d >> 2] & 31](k, p) | 0;
do if (h) {
o = a;
g = c[o >> 2] | 0;
n = c[o + 4 >> 2] | 0;
if (m) {
o = k;
q = c[o + 4 >> 2] | 0;
r = a;
c[r >> 2] = c[o >> 2];
c[r + 4 >> 2] = q;
q = k;
c[q >> 2] = g;
c[q +
4 >> 2] = n;
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] = g;
c[r + 4 >> 2] = n;
if (nb[c[d >> 2] & 31](k, p) | 0) {
n = p;
r = c[n >> 2] | 0;
g = c[n + 4 >> 2] | 0;
n = k;
o = c[n + 4 >> 2] | 0;
q = p;
c[q >> 2] = c[n >> 2];
c[q + 4 >> 2] = o;
o = k;
c[o >> 2] = r;
c[o + 4 >> 2] = g
}
} else if (m ? (g = p, o = c[g >> 2] | 0, r = c[g + 4 >> 2] | 0, g = k, q = c[g + 4 >> 2] | 0, n = p, c[n >> 2] = c[g >> 2], c[n + 4 >> 2] = q, q = k, c[q >> 2] = o, c[q + 4 >> 2] = r, nb[c[d >> 2] & 31](p, a) | 0) : 0) {
r = a;
q = c[r >> 2] | 0;
o = c[r + 4 >> 2] | 0;
r = p;
n = c[r + 4 >> 2] | 0;
g = a;
c[g >> 2] = c[r >> 2];
c[g + 4 >> 2] = n;
n = p;
c[n >> 2] = q;
c[n + 4 >> 2] = o
}
while (0);
if (!(nb[c[d >> 2] & 31](j,
k) | 0)) {
l = 1;
i = e;
return l | 0
}
m = k;
h = c[m >> 2] | 0;
o = c[m + 4 >> 2] | 0;
m = j;
n = c[m + 4 >> 2] | 0;
q = k;
c[q >> 2] = c[m >> 2];
c[q + 4 >> 2] = n;
n = j;
c[n >> 2] = h;
c[n + 4 >> 2] = o;
if (!(nb[c[d >> 2] & 31](k, p) | 0)) {
l = 1;
i = e;
return l | 0
}
o = p;
n = c[o >> 2] | 0;
h = c[o + 4 >> 2] | 0;
o = k;
j = c[o + 4 >> 2] | 0;
q = p;
c[q >> 2] = c[o >> 2];
c[q + 4 >> 2] = j;
j = k;
c[j >> 2] = n;
c[j + 4 >> 2] = h;
if (!(nb[c[d >> 2] & 31](p, a) | 0)) {
l = 1;
i = e;
return l | 0
}
h = a;
j = c[h >> 2] | 0;
n = c[h + 4 >> 2] | 0;
h = p;
k = c[h + 4 >> 2] | 0;
q = a;
c[q >> 2] = c[h >> 2];
c[q + 4 >> 2] = k;
k = p;
c[k >> 2] = j;
c[k + 4 >> 2] = n;
l = 1;
i = e;
return l | 0;
case 1:
case 0:
l = 1;
i = e;
return l | 0;
case 5:
Gl(a,
a + 8 | 0, a + 16 | 0, a + 24 | 0, b + -8 | 0, d) | 0;
l = 1;
i = e;
return l | 0;
case 2:
n = b + -8 | 0;
if (!(nb[c[d >> 2] & 31](n, a) | 0)) {
l = 1;
i = e;
return l | 0
}
k = a;
j = c[k >> 2] | 0;
p = c[k + 4 >> 2] | 0;
k = n;
q = c[k + 4 >> 2] | 0;
h = a;
c[h >> 2] = c[k >> 2];
c[h + 4 >> 2] = q;
q = n;
c[q >> 2] = j;
c[q + 4 >> 2] = p;
l = 1;
i = e;
return l | 0;
default:
p = a + 16 | 0;
q = a + 8 | 0;
j = nb[c[d >> 2] & 31](q, a) | 0;
n = nb[c[d >> 2] & 31](p, q) | 0;
do if (j) {
h = a;
k = c[h >> 2] | 0;
o = c[h + 4 >> 2] | 0;
if (n) {
h = p;
m = c[h + 4 >> 2] | 0;
g = a;
c[g >> 2] = c[h >> 2];
c[g + 4 >> 2] = m;
m = p;
c[m >> 2] = k;
c[m + 4 >> 2] = o;
break
}
m = q;
g = c[m + 4 >> 2] | 0;
h = a;
c[h >> 2] = c[m >> 2];
c[h + 4 >> 2] = g;
g = q;
c[g >> 2] =
k;
c[g + 4 >> 2] = o;
if (nb[c[d >> 2] & 31](p, q) | 0) {
o = q;
g = c[o >> 2] | 0;
k = c[o + 4 >> 2] | 0;
o = p;
h = c[o + 4 >> 2] | 0;
m = q;
c[m >> 2] = c[o >> 2];
c[m + 4 >> 2] = h;
h = p;
c[h >> 2] = g;
c[h + 4 >> 2] = k
}
} else if (n ? (k = q, h = c[k >> 2] | 0, g = c[k + 4 >> 2] | 0, k = p, m = c[k + 4 >> 2] | 0, o = q, c[o >> 2] = c[k >> 2], c[o + 4 >> 2] = m, m = p, c[m >> 2] = h, c[m + 4 >> 2] = g, nb[c[d >> 2] & 31](q, a) | 0) : 0) {
g = a;
m = c[g >> 2] | 0;
h = c[g + 4 >> 2] | 0;
g = q;
o = c[g + 4 >> 2] | 0;
k = a;
c[k >> 2] = c[g >> 2];
c[k + 4 >> 2] = o;
o = q;
c[o >> 2] = m;
c[o + 4 >> 2] = h
}
while (0);
q = a + 24 | 0;
if ((q | 0) == (b | 0)) {
l = 1;
i = e;
return l | 0
} else {
s = 0;
t = q;
u = p
}
while (1) {
if (nb[c[d >> 2] & 31](t, u) | 0) {
p =
t;
q = c[p + 4 >> 2] | 0;
n = f;
c[n >> 2] = c[p >> 2];
c[n + 4 >> 2] = q;
q = t;
n = u;
while (1) {
p = n;
j = c[p + 4 >> 2] | 0;
h = q;
c[h >> 2] = c[p >> 2];
c[h + 4 >> 2] = j;
if ((n | 0) == (a | 0))
break;
j = n + -8 | 0;
if (nb[c[d >> 2] & 31](f, j) | 0) {
h = n;
n = j;
q = h
} else
break
}
q = f;
h = c[q + 4 >> 2] | 0;
j = n;
c[j >> 2] = c[q >> 2];
c[j + 4 >> 2] = h;
h = s + 1 | 0;
if ((h | 0) == 8)
break;
else
v = h
} else
v = s;
h = t + 8 | 0;
if ((h | 0) == (b | 0)) {
l = 1;
w = 41;
break
} else {
j = t;
s = v;
t = h;
u = j
}
}
if ((w | 0) == 41) {
i = e;
return l | 0
}
l = (t + 8 | 0) == (b | 0);
i = e;
return l | 0
}
return 0
}
function Il(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;
e = i;
f = a;
a = b;
a:
while (1) {
b = a;
g = a + -8 | 0;
h = a + -4 | 0;
j = f;
b:
while (1) {
k = j;
l = b - k | 0;
m = l >> 3;
switch (m | 0) {
case 2:
n = 4;
break a;
break;
case 4:
n = 14;
break a;
break;
case 3:
n = 6;
break a;
break;
case 5:
n = 15;
break a;
break;
case 1:
case 0:
n = 85;
break a;
break;
default:
}
if ((l | 0) < 248) {
n = 21;
break a
}
o = (m | 0) / 2 | 0;
p = j + (o << 3) | 0;
do if ((l | 0) > 7992) {
q = (m | 0) / 4 | 0;
r = j + (q << 3) | 0;
s = q + o | 0;
t = j + (s << 3) | 0;
u = Jl(j, r, p, t, 0) | 0;
v = j + (s <<
3) + 4 | 0;
if (!((c[h >> 2] | 0) >>> 0 < (c[v >> 2] | 0) >>> 0)) {
w = j + (o << 3) + 4 | 0;
x = u;
break
}
s = t;
y = c[s >> 2] | 0;
z = c[s + 4 >> 2] | 0;
s = g;
A = c[s + 4 >> 2] | 0;
B = t;
c[B >> 2] = c[s >> 2];
c[B + 4 >> 2] = A;
A = g;
c[A >> 2] = y;
c[A + 4 >> 2] = z;
z = j + (o << 3) + 4 | 0;
if (!((c[v >> 2] | 0) >>> 0 < (c[z >> 2] | 0) >>> 0)) {
w = z;
x = u + 1 | 0;
break
}
v = p;
A = c[v >> 2] | 0;
y = c[v + 4 >> 2] | 0;
v = t;
B = c[v + 4 >> 2] | 0;
s = p;
c[s >> 2] = c[v >> 2];
c[s + 4 >> 2] = B;
B = t;
c[B >> 2] = A;
c[B + 4 >> 2] = y;
y = j + (q << 3) + 4 | 0;
if (!((c[z >> 2] | 0) >>> 0 < (c[y >> 2] | 0) >>> 0)) {
w = z;
x = u + 2 | 0;
break
}
q = r;
B = c[q >> 2] | 0;
A = c[q + 4 >> 2] | 0;
q = p;
t = c[q + 4 >> 2] | 0;
s = r;
c[s >> 2] = c[q >> 2];
c[s + 4 >>
2] = t;
t = p;
c[t >> 2] = B;
c[t + 4 >> 2] = A;
if ((c[y >> 2] | 0) >>> 0 < (c[j + 4 >> 2] | 0) >>> 0) {
y = j;
A = c[y >> 2] | 0;
t = c[y + 4 >> 2] | 0;
y = r;
B = c[y + 4 >> 2] | 0;
s = j;
c[s >> 2] = c[y >> 2];
c[s + 4 >> 2] = B;
B = r;
c[B >> 2] = A;
c[B + 4 >> 2] = t;
w = z;
x = u + 4 | 0;
break
} else {
w = z;
x = u + 3 | 0;
break
}
} else {
u = j + (o << 3) + 4 | 0;
z = c[u >> 2] | 0;
t = j + 4 | 0;
B = (c[h >> 2] | 0) >>> 0 < z >>> 0;
if (!(z >>> 0 < (c[t >> 2] | 0) >>> 0)) {
if (!B) {
w = u;
x = 0;
break
}
z = p;
A = c[z >> 2] | 0;
r = c[z + 4 >> 2] | 0;
z = g;
s = c[z + 4 >> 2] | 0;
y = p;
c[y >> 2] = c[z >> 2];
c[y + 4 >> 2] = s;
s = g;
c[s >> 2] = A;
c[s + 4 >> 2] = r;
if (!((c[u >> 2] | 0) >>> 0 < (c[t >> 2] | 0) >>> 0)) {
w = u;
x = 1;
break
}
t = j;
r = c[t >>
2] | 0;
s = c[t + 4 >> 2] | 0;
t = p;
A = c[t + 4 >> 2] | 0;
y = j;
c[y >> 2] = c[t >> 2];
c[y + 4 >> 2] = A;
A = p;
c[A >> 2] = r;
c[A + 4 >> 2] = s;
w = u;
x = 2;
break
}
s = j;
A = c[s >> 2] | 0;
r = c[s + 4 >> 2] | 0;
if (B) {
B = g;
s = c[B + 4 >> 2] | 0;
y = j;
c[y >> 2] = c[B >> 2];
c[y + 4 >> 2] = s;
s = g;
c[s >> 2] = A;
c[s + 4 >> 2] = r;
w = u;
x = 1;
break
}
s = p;
y = c[s + 4 >> 2] | 0;
B = j;
c[B >> 2] = c[s >> 2];
c[B + 4 >> 2] = y;
y = p;
c[y >> 2] = A;
c[y + 4 >> 2] = r;
if ((c[h >> 2] | 0) >>> 0 < r >>> 0) {
y = g;
B = c[y + 4 >> 2] | 0;
s = p;
c[s >> 2] = c[y >> 2];
c[s + 4 >> 2] = B;
B = g;
c[B >> 2] = A;
c[B + 4 >> 2] = r;
w = u;
x = 2
} else {
w = u;
x = 1
}
}
while (0);
o = j + 4 | 0;
m = c[o >> 2] | 0;
l = c[w >> 2] | 0;
do if (m >>> 0 < l >>> 0) {
C = g;
D =
x
} else {
u = g;
while (1) {
r = u;
u = u + -8 | 0;
if ((j | 0) == (u | 0))
break;
if ((c[r + -4 >> 2] | 0) >>> 0 < l >>> 0) {
n = 68;
break
}
}
if ((n | 0) == 68) {
n = 0;
r = j;
B = c[r >> 2] | 0;
A = c[r + 4 >> 2] | 0;
r = u;
s = c[r + 4 >> 2] | 0;
y = j;
c[y >> 2] = c[r >> 2];
c[y + 4 >> 2] = s;
s = u;
c[s >> 2] = B;
c[s + 4 >> 2] = A;
C = u;
D = x + 1 | 0;
break
}
A = j + 8 | 0;
if (m >>> 0 < (c[h >> 2] | 0) >>> 0)
E = A;
else {
if ((A | 0) == (g | 0)) {
n = 85;
break a
} else
F = A;
while (1) {
G = F + 8 | 0;
if (m >>> 0 < (c[F + 4 >> 2] | 0) >>> 0)
break;
if ((G | 0) == (g | 0)) {
n = 85;
break a
} else
F = G
}
u = F;
A = c[u >> 2] | 0;
s = c[u + 4 >> 2] | 0;
u = g;
B = c[u + 4 >> 2] | 0;
y = F;
c[y >> 2] = c[u >> 2];
c[y + 4 >> 2] = B;
B = g;
c[B >> 2] = A;
c[B + 4 >> 2] = s;
E = G
}
if ((E | 0) == (g | 0)) {
n = 85;
break a
} else {
H = E;
I = g
}
while (1) {
s = c[o >> 2] | 0;
B = H;
while (1) {
J = B + 8 | 0;
if (s >>> 0 < (c[B + 4 >> 2] | 0) >>> 0) {
K = I;
break
} else
B = J
}
do {
A = K;
K = K + -8 | 0
} while (s >>> 0 < (c[A + -4 >> 2] | 0) >>> 0);
if (!(B >>> 0 < K >>> 0)) {
j = B;
continue b
}
s = B;
A = c[s >> 2] | 0;
y = c[s + 4 >> 2] | 0;
s = K;
u = c[s + 4 >> 2] | 0;
r = B;
c[r >> 2] = c[s >> 2];
c[r + 4 >> 2] = u;
u = K;
c[u >> 2] = A;
c[u + 4 >> 2] = y;
H = J;
I = K
}
}
while (0);
o = j + 8 | 0;
c:
do if (o >>> 0 < C >>> 0) {
m = o;
l = C;
y = p;
u = D;
while (1) {
A = c[y + 4 >> 2] | 0;
r = m;
while (1) {
L = r + 8 | 0;
if ((c[r + 4 >> 2] | 0) >>> 0 < A >>> 0)
r = L;
else {
M = l;
break
}
}
do {
B = M;
M = M +
-8 | 0
} while (!((c[B + -4 >> 2] | 0) >>> 0 < A >>> 0));
if (r >>> 0 > M >>> 0) {
N = r;
O = y;
P = u;
break c
}
A = r;
B = c[A >> 2] | 0;
s = c[A + 4 >> 2] | 0;
A = M;
t = c[A + 4 >> 2] | 0;
z = r;
c[z >> 2] = c[A >> 2];
c[z + 4 >> 2] = t;
t = M;
c[t >> 2] = B;
c[t + 4 >> 2] = s;
m = L;
l = M;
y = (y | 0) == (r | 0) ? M : y;
u = u + 1 | 0
}
} else {
N = o;
O = p;
P = D
}
while (0);
if ((N | 0) != (O | 0) ? (c[O + 4 >> 2] | 0) >>> 0 < (c[N + 4 >> 2] | 0) >>> 0 : 0) {
p = N;
o = c[p >> 2] | 0;
u = c[p + 4 >> 2] | 0;
p = O;
y = c[p + 4 >> 2] | 0;
l = N;
c[l >> 2] = c[p >> 2];
c[l + 4 >> 2] = y;
y = O;
c[y >> 2] = o;
c[y + 4 >> 2] = u;
Q = P + 1 | 0
} else
Q = P;
if ((Q | 0) == 0) {
R = Kl(j, N, 0) | 0;
u = N + 8 | 0;
if (Kl(u, a, 0) | 0) {
n = 80;
break
}
if (R) {
j = u;
continue
}
}
u =
N;
if ((u - k | 0) >= (b - u | 0)) {
n = 84;
break
}
Il(j, N, d);
j = N + 8 | 0
}
if ((n | 0) == 80) {
n = 0;
if (R) {
n = 85;
break
} else {
f = j;
a = N;
continue
}
} else if ((n | 0) == 84) {
n = 0;
Il(N + 8 | 0, a, d);
f = j;
a = N;
continue
}
}
if ((n | 0) == 4) {
if (!((c[h >> 2] | 0) >>> 0 < (c[j + 4 >> 2] | 0) >>> 0)) {
i = e;
return
}
N = j;
f = c[N >> 2] | 0;
d = c[N + 4 >> 2] | 0;
N = g;
R = c[N + 4 >> 2] | 0;
Q = j;
c[Q >> 2] = c[N >> 2];
c[Q + 4 >> 2] = R;
R = g;
c[R >> 2] = f;
c[R + 4 >> 2] = d;
i = e;
return
} else if ((n | 0) == 6) {
d = j + 8 | 0;
R = j + 12 | 0;
f = c[R >> 2] | 0;
Q = j + 4 | 0;
N = (c[h >> 2] | 0) >>> 0 < f >>> 0;
if (!(f >>> 0 < (c[Q >> 2] | 0) >>> 0)) {
if (!N) {
i = e;
return
}
f = d;
P = c[f >> 2] | 0;
O = c[f + 4 >> 2] |
0;
f = g;
D = c[f + 4 >> 2] | 0;
M = d;
c[M >> 2] = c[f >> 2];
c[M + 4 >> 2] = D;
D = g;
c[D >> 2] = P;
c[D + 4 >> 2] = O;
if (!((c[R >> 2] | 0) >>> 0 < (c[Q >> 2] | 0) >>> 0)) {
i = e;
return
}
Q = j;
R = c[Q >> 2] | 0;
O = c[Q + 4 >> 2] | 0;
Q = d;
D = c[Q + 4 >> 2] | 0;
P = j;
c[P >> 2] = c[Q >> 2];
c[P + 4 >> 2] = D;
D = d;
c[D >> 2] = R;
c[D + 4 >> 2] = O;
i = e;
return
}
O = j;
D = c[O >> 2] | 0;
R = c[O + 4 >> 2] | 0;
if (N) {
N = g;
O = c[N + 4 >> 2] | 0;
P = j;
c[P >> 2] = c[N >> 2];
c[P + 4 >> 2] = O;
O = g;
c[O >> 2] = D;
c[O + 4 >> 2] = R;
i = e;
return
}
O = d;
P = c[O + 4 >> 2] | 0;
N = j;
c[N >> 2] = c[O >> 2];
c[N + 4 >> 2] = P;
P = d;
c[P >> 2] = D;
c[P + 4 >> 2] = R;
if (!((c[h >> 2] | 0) >>> 0 < R >>> 0)) {
i = e;
return
}
P = g;
N = c[P + 4 >> 2] | 0;
O = d;
c[O >> 2] = c[P >> 2];
c[O + 4 >> 2] = N;
N = g;
c[N >> 2] = D;
c[N + 4 >> 2] = R;
i = e;
return
} else if ((n | 0) == 14) {
Jl(j, j + 8 | 0, j + 16 | 0, g, 0) | 0;
i = e;
return
} else if ((n | 0) == 15) {
R = j + 8 | 0;
N = j + 16 | 0;
D = j + 24 | 0;
Jl(j, R, N, D, 0) | 0;
O = j + 28 | 0;
if (!((c[h >> 2] | 0) >>> 0 < (c[O >> 2] | 0) >>> 0)) {
i = e;
return
}
h = D;
P = c[h >> 2] | 0;
d = c[h + 4 >> 2] | 0;
h = g;
Q = c[h + 4 >> 2] | 0;
M = D;
c[M >> 2] = c[h >> 2];
c[M + 4 >> 2] = Q;
Q = g;
c[Q >> 2] = P;
c[Q + 4 >> 2] = d;
if (!((c[O >> 2] | 0) >>> 0 < (c[j + 20 >> 2] | 0) >>> 0)) {
i = e;
return
}
O = N;
d = c[O >> 2] | 0;
Q = c[O + 4 >> 2] | 0;
O = D;
P = c[O >> 2] | 0;
g = c[O + 4 >> 2] | 0;
O = N;
c[O >> 2] = P;
c[O + 4 >> 2] = g;
O = D;
c[O >> 2] =
d;
c[O + 4 >> 2] = Q;
if (!(g >>> 0 < (c[j + 12 >> 2] | 0) >>> 0)) {
i = e;
return
}
Q = R;
O = c[Q >> 2] | 0;
d = c[Q + 4 >> 2] | 0;
Q = R;
c[Q >> 2] = P;
c[Q + 4 >> 2] = g;
Q = N;
c[Q >> 2] = O;
c[Q + 4 >> 2] = d;
if (!(g >>> 0 < (c[j + 4 >> 2] | 0) >>> 0)) {
i = e;
return
}
d = j;
Q = c[d >> 2] | 0;
O = c[d + 4 >> 2] | 0;
d = j;
c[d >> 2] = P;
c[d + 4 >> 2] = g;
g = R;
c[g >> 2] = Q;
c[g + 4 >> 2] = O;
i = e;
return
} else if ((n | 0) == 21) {
O = j + 16 | 0;
g = j + 8 | 0;
Q = c[j + 12 >> 2] | 0;
R = c[j + 4 >> 2] | 0;
d = c[j + 20 >> 2] | 0;
P = d >>> 0 < Q >>> 0;
do if (Q >>> 0 < R >>> 0) {
N = j;
D = c[N >> 2] | 0;
M = c[N + 4 >> 2] | 0;
if (P) {
N = O;
h = c[N + 4 >> 2] | 0;
f = j;
c[f >> 2] = c[N >> 2];
c[f + 4 >> 2] = h;
h = O;
c[h >> 2] = D;
c[h + 4 >> 2] = M;
break
}
h =
g;
f = c[h + 4 >> 2] | 0;
N = j;
c[N >> 2] = c[h >> 2];
c[N + 4 >> 2] = f;
f = g;
c[f >> 2] = D;
c[f + 4 >> 2] = M;
if (d >>> 0 < M >>> 0) {
f = O;
N = c[f + 4 >> 2] | 0;
h = g;
c[h >> 2] = c[f >> 2];
c[h + 4 >> 2] = N;
N = O;
c[N >> 2] = D;
c[N + 4 >> 2] = M
}
} else if (P ? (M = g, N = c[M >> 2] | 0, D = c[M + 4 >> 2] | 0, M = O, h = c[M >> 2] | 0, f = c[M + 4 >> 2] | 0, M = g, c[M >> 2] = h, c[M + 4 >> 2] = f, M = O, c[M >> 2] = N, c[M + 4 >> 2] = D, f >>> 0 < R >>> 0) : 0) {
D = j;
M = c[D >> 2] | 0;
N = c[D + 4 >> 2] | 0;
D = j;
c[D >> 2] = h;
c[D + 4 >> 2] = f;
f = g;
c[f >> 2] = M;
c[f + 4 >> 2] = N
}
while (0);
g = j + 24 | 0;
if ((g | 0) == (a | 0)) {
i = e;
return
} else {
S = g;
T = O
}
while (1) {
if ((c[S + 4 >> 2] | 0) >>> 0 < (c[T + 4 >> 2] | 0) >>> 0) {
O = S;
g =
c[O >> 2] | 0;
R = c[O + 4 >> 2] | 0;
O = S;
P = T;
while (1) {
d = P;
Q = c[d + 4 >> 2] | 0;
N = O;
c[N >> 2] = c[d >> 2];
c[N + 4 >> 2] = Q;
if ((P | 0) == (j | 0))
break;
if (R >>> 0 < (c[P + -4 >> 2] | 0) >>> 0) {
Q = P;
P = P + -8 | 0;
O = Q
} else
break
}
O = P;
c[O >> 2] = g;
c[O + 4 >> 2] = R
}
O = S + 8 | 0;
if ((O | 0) == (a | 0))
break;
else {
Q = S;
S = O;
T = Q
}
}
i = e;
return
} else if ((n | 0) == 85) {
i = e;
return
}
}
function Jl(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,
r = 0,
s = 0,
t = 0,
u = 0,
v = 0;
f = i;
g = b + 4 | 0;
h = c[g >> 2] | 0;
j = a + 4 | 0;
k = d + 4 | 0;
l = c[k >> 2] | 0;
m = l >>> 0 < h >>> 0;
do if (h >>> 0 < (c[j >> 2] | 0) >>> 0) {
n = a;
o = c[n >> 2] | 0;
p = c[n + 4 >> 2] | 0;
if (m) {
n = d;
q = c[n + 4 >> 2] | 0;
r = a;
c[r >> 2] = c[n >> 2];
c[r + 4 >> 2] = q;
q = d;
c[q >> 2] = o;
c[q + 4 >> 2] = p;
s = 1;
t = p;
break
}
q = b;
r = c[q + 4 >> 2] | 0;
n = a;
c[n >> 2] = c[q >> 2];
c[n + 4 >> 2] = r;
r = b;
c[r >> 2] = o;
c[r + 4 >> 2] = p;
r = c[k >> 2] | 0;
if (r >>> 0 < p >>> 0) {
n = d;
q = c[n + 4 >> 2] | 0;
u = b;
c[u >> 2] = c[n >> 2];
c[u + 4 >> 2] = q;
q = d;
c[q >> 2] = o;
c[q + 4 >> 2] = p;
s = 2;
t = p
} else {
s = 1;
t = r
}
} else if (m) {
r = b;
p = c[r >> 2] | 0;
q = c[r + 4 >> 2] | 0;
r = d;
o = c[r + 4 >> 2] | 0;
u = b;
c[u >> 2] = c[r >> 2];
c[u + 4 >> 2] = o;
o = d;
c[o >> 2] = p;
c[o + 4 >> 2] = q;
if ((c[g >> 2] | 0) >>> 0 < (c[j >> 2] | 0) >>> 0) {
o = a;
p = c[o >> 2] | 0;
u = c[o + 4 >>
2] | 0;
o = b;
r = c[o + 4 >> 2] | 0;
n = a;
c[n >> 2] = c[o >> 2];
c[n + 4 >> 2] = r;
r = b;
c[r >> 2] = p;
c[r + 4 >> 2] = u;
s = 2;
t = c[k >> 2] | 0
} else {
s = 1;
t = q
}
} else {
s = 0;
t = l
}
while (0);
if (!((c[e + 4 >> 2] | 0) >>> 0 < t >>> 0)) {
v = s;
i = f;
return v | 0
}
t = d;
l = c[t >> 2] | 0;
m = c[t + 4 >> 2] | 0;
t = e;
h = c[t + 4 >> 2] | 0;
q = d;
c[q >> 2] = c[t >> 2];
c[q + 4 >> 2] = h;
h = e;
c[h >> 2] = l;
c[h + 4 >> 2] = m;
if (!((c[k >> 2] | 0) >>> 0 < (c[g >> 2] | 0) >>> 0)) {
v = s + 1 | 0;
i = f;
return v | 0
}
k = b;
m = c[k >> 2] | 0;
h = c[k + 4 >> 2] | 0;
k = d;
l = c[k + 4 >> 2] | 0;
e = b;
c[e >> 2] = c[k >> 2];
c[e + 4 >> 2] = l;
l = d;
c[l >> 2] = m;
c[l + 4 >> 2] = h;
if (!((c[g >> 2] | 0) >>> 0 < (c[j >> 2] | 0) >>> 0)) {
v = s + 2 |
0;
i = f;
return v | 0
}
j = a;
g = c[j >> 2] | 0;
h = c[j + 4 >> 2] | 0;
j = b;
l = c[j + 4 >> 2] | 0;
m = a;
c[m >> 2] = c[j >> 2];
c[m + 4 >> 2] = l;
l = b;
c[l >> 2] = g;
c[l + 4 >> 2] = h;
v = s + 3 | 0;
i = f;
return v | 0
}
function Kl(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;
d = i;
switch (b - a >> 3 | 0) {
case 5:
e = a + 8 | 0;
f = a + 16 | 0;
g = a + 24 | 0;
Jl(a, e, f, g, 0) | 0;
h = a + 28 | 0;
if (!((c[b + -4 >> 2] | 0) >>> 0 < (c[h >> 2] | 0) >>> 0)) {
j = 1;
i = d;
return j | 0
}
k = b + -8 | 0;
l = g;
m = c[l >> 2] | 0;
n = c[l + 4 >> 2] | 0;
l = k;
o = c[l + 4 >> 2] | 0;
p = g;
c[p >> 2] = c[l >> 2];
c[p + 4 >> 2] = o;
o = k;
c[o >> 2] = m;
c[o +
4 >> 2] = n;
if (!((c[h >> 2] | 0) >>> 0 < (c[a + 20 >> 2] | 0) >>> 0)) {
j = 1;
i = d;
return j | 0
}
h = f;
n = c[h >> 2] | 0;
o = c[h + 4 >> 2] | 0;
h = g;
m = c[h >> 2] | 0;
k = c[h + 4 >> 2] | 0;
h = f;
c[h >> 2] = m;
c[h + 4 >> 2] = k;
h = g;
c[h >> 2] = n;
c[h + 4 >> 2] = o;
if (!(k >>> 0 < (c[a + 12 >> 2] | 0) >>> 0)) {
j = 1;
i = d;
return j | 0
}
o = e;
h = c[o >> 2] | 0;
n = c[o + 4 >> 2] | 0;
o = e;
c[o >> 2] = m;
c[o + 4 >> 2] = k;
o = f;
c[o >> 2] = h;
c[o + 4 >> 2] = n;
if (!(k >>> 0 < (c[a + 4 >> 2] | 0) >>> 0)) {
j = 1;
i = d;
return j | 0
}
n = a;
o = c[n >> 2] | 0;
h = c[n + 4 >> 2] | 0;
n = a;
c[n >> 2] = m;
c[n + 4 >> 2] = k;
k = e;
c[k >> 2] = o;
c[k + 4 >> 2] = h;
j = 1;
i = d;
return j | 0;
case 4:
Jl(a, a + 8 | 0, a + 16 | 0, b + -8 | 0, 0) | 0;
j = 1;
i = d;
return j | 0;
case 1:
case 0:
j = 1;
i = d;
return j | 0;
case 3:
h = a + 8 | 0;
k = b + -8 | 0;
o = a + 12 | 0;
e = c[o >> 2] | 0;
n = a + 4 | 0;
m = b + -4 | 0;
f = (c[m >> 2] | 0) >>> 0 < e >>> 0;
if (!(e >>> 0 < (c[n >> 2] | 0) >>> 0)) {
if (!f) {
j = 1;
i = d;
return j | 0
}
e = h;
g = c[e >> 2] | 0;
p = c[e + 4 >> 2] | 0;
e = k;
l = c[e + 4 >> 2] | 0;
q = h;
c[q >> 2] = c[e >> 2];
c[q + 4 >> 2] = l;
l = k;
c[l >> 2] = g;
c[l + 4 >> 2] = p;
if (!((c[o >> 2] | 0) >>> 0 < (c[n >> 2] | 0) >>> 0)) {
j = 1;
i = d;
return j | 0
}
n = a;
o = c[n >> 2] | 0;
p = c[n + 4 >> 2] | 0;
n = h;
l = c[n + 4 >> 2] | 0;
g = a;
c[g >> 2] = c[n >> 2];
c[g + 4 >> 2] = l;
l = h;
c[l >> 2] = o;
c[l + 4 >> 2] = p;
j = 1;
i = d;
return j | 0
}
p = a;
l = c[p >> 2] | 0;
o = c[p +
4 >> 2] | 0;
if (f) {
f = k;
p = c[f + 4 >> 2] | 0;
g = a;
c[g >> 2] = c[f >> 2];
c[g + 4 >> 2] = p;
p = k;
c[p >> 2] = l;
c[p + 4 >> 2] = o;
j = 1;
i = d;
return j | 0
}
p = h;
g = c[p + 4 >> 2] | 0;
f = a;
c[f >> 2] = c[p >> 2];
c[f + 4 >> 2] = g;
g = h;
c[g >> 2] = l;
c[g + 4 >> 2] = o;
if (!((c[m >> 2] | 0) >>> 0 < o >>> 0)) {
j = 1;
i = d;
return j | 0
}
m = k;
g = c[m + 4 >> 2] | 0;
f = h;
c[f >> 2] = c[m >> 2];
c[f + 4 >> 2] = g;
g = k;
c[g >> 2] = l;
c[g + 4 >> 2] = o;
j = 1;
i = d;
return j | 0;
case 2:
if (!((c[b + -4 >> 2] | 0) >>> 0 < (c[a + 4 >> 2] | 0) >>> 0)) {
j = 1;
i = d;
return j | 0
}
o = b + -8 | 0;
g = a;
l = c[g >> 2] | 0;
k = c[g + 4 >> 2] | 0;
g = o;
f = c[g + 4 >> 2] | 0;
m = a;
c[m >> 2] = c[g >> 2];
c[m + 4 >> 2] = f;
f = o;
c[f >> 2] = l;
c[f + 4 >> 2] = k;
j = 1;
i = d;
return j | 0;
default:
k = a + 16 | 0;
f = a + 8 | 0;
l = c[a + 12 >> 2] | 0;
o = c[a + 4 >> 2] | 0;
m = c[a + 20 >> 2] | 0;
g = m >>> 0 < l >>> 0;
do if (l >>> 0 < o >>> 0) {
h = a;
p = c[h >> 2] | 0;
n = c[h + 4 >> 2] | 0;
if (g) {
h = k;
q = c[h + 4 >> 2] | 0;
e = a;
c[e >> 2] = c[h >> 2];
c[e + 4 >> 2] = q;
q = k;
c[q >> 2] = p;
c[q + 4 >> 2] = n;
break
}
q = f;
e = c[q + 4 >> 2] | 0;
h = a;
c[h >> 2] = c[q >> 2];
c[h + 4 >> 2] = e;
e = f;
c[e >> 2] = p;
c[e + 4 >> 2] = n;
if (m >>> 0 < n >>> 0) {
e = k;
h = c[e + 4 >> 2] | 0;
q = f;
c[q >> 2] = c[e >> 2];
c[q + 4 >> 2] = h;
h = k;
c[h >> 2] = p;
c[h + 4 >> 2] = n
}
} else if (g ? (n = f, h = c[n >> 2] | 0, p = c[n + 4 >> 2] | 0, n = k, q = c[n >> 2] | 0, e = c[n + 4 >> 2] | 0, n = f, c[n >> 2] =
q, c[n + 4 >> 2] = e, n = k, c[n >> 2] = h, c[n + 4 >> 2] = p, e >>> 0 < o >>> 0) : 0) {
p = a;
n = c[p >> 2] | 0;
h = c[p + 4 >> 2] | 0;
p = a;
c[p >> 2] = q;
c[p + 4 >> 2] = e;
e = f;
c[e >> 2] = n;
c[e + 4 >> 2] = h
}
while (0);
f = a + 24 | 0;
if ((f | 0) == (b | 0)) {
j = 1;
i = d;
return j | 0
} else {
r = 0;
s = f;
t = k
}
while (1) {
if ((c[s + 4 >> 2] | 0) >>> 0 < (c[t + 4 >> 2] | 0) >>> 0) {
k = s;
f = c[k >> 2] | 0;
o = c[k + 4 >> 2] | 0;
k = s;
g = t;
while (1) {
m = g;
l = c[m + 4 >> 2] | 0;
h = k;
c[h >> 2] = c[m >> 2];
c[h + 4 >> 2] = l;
if ((g | 0) == (a | 0))
break;
if (o >>> 0 < (c[g + -4 >> 2] | 0) >>> 0) {
l = g;
g = g + -8 | 0;
k = l
} else
break
}
k = g;
c[k >> 2] = f;
c[k + 4 >> 2] = o;
k = r + 1 | 0;
if ((k | 0) == 8)
break;
else
u = k
} else
u =
r;
k = s + 8 | 0;
if ((k | 0) == (b | 0)) {
j = 1;
v = 34;
break
} else {
l = s;
r = u;
s = k;
t = l
}
}
if ((v | 0) == 34) {
i = d;
return j | 0
}
j = (s + 8 | 0) == (b | 0);
i = d;
return j | 0
}
return 0
}
function Ll(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;
h = i;
i = i + 64 | 0;
j = h;
if ((e | 0) == 2) {
k = b + -60 | 0;
if (!(nb[c[d >> 2] & 31](k, a) | 0)) {
i = h;
return
}
l = j + 0 | 0;
m = a + 0 | 0;
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 + 0 | 0;
m = k + 0 | 0;
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 + 0 | 0;
m = j + 0 | 0;
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
} else if ((e | 0) == 1 | (e | 0) == 0) {
i = h;
return
} else {
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 + 0 | 0;
m = o + 0 | 0;
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 (!(nb[c[d >> 2] & 31](j, k) | 0)) {
p = q;
break a
}
l = q + 0 | 0;
m = k + 0 | 0;
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 + 0 | 0;
m = j + 0 | 0;
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)) {
Ll(a, j, d, o, f, g);
p = e - o | 0;
Ll(j, b, d, p, f, g);
Nl(a, j, b, d, o, p, f, g);
i = h;
return
}
Ml(a, j, d, o, f);
g = f + (o * 60 | 0) | 0;
Ml(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))
break;
if (nb[c[d >> 2] & 31](p, j) | 0) {
l = b + 0 | 0;
m = p + 0 | 0;
n = l + 60 | 0;
do {
c[l >> 2] = c[m >> 2];
l = l + 4 | 0;
m = m + 4 | 0
} while ((l | 0) < (n | 0));
t = p + 60 | 0;
u = j
} else {
l = b +
0 | 0;
m = j + 0 | 0;
n = l + 60 | 0;
do {
c[l >> 2] = c[m >> 2];
l = l + 4 | 0;
m = m + 4 | 0
} while ((l | 0) < (n | 0));
t = p;
u = j + 60 | 0
}
k = b + 60 | 0;
if ((u | 0) == (g | 0)) {
r = k;
s = t;
break b
} else {
b = k;
j = u;
p = t
}
}
if ((j | 0) == (g | 0)) {
i = h;
return
} else {
v = j;
w = b
}
while (1) {
l = w + 0 | 0;
m = v + 0 | 0;
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 = v + 60 | 0;
if ((v | 0) == (g | 0))
break;
else
w = w + 60 | 0
}
i = h;
return
}
while (0);
if ((s | 0) == (o | 0)) {
i = h;
return
} else {
x = r;
y = s
}
while (1) {
l = x + 0 | 0;
m = y + 0 | 0;
n = l + 60 | 0;
do {
c[l >> 2] = c[m >> 2];
l = l + 4 | 0;
m = m + 4 | 0
} while ((l | 0) < (n | 0));
y = y + 60 | 0;
if ((y | 0) == (o | 0))
break;
else
x = x + 60 | 0
}
i = h;
return
}
}
function Ml(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,
r = 0,
s = 0,
t = 0,
u = 0,
v = 0,
w = 0,
x = 0,
y = 0;
g = i;
if ((e | 0) == 1) {
if ((f | 0) == 0) {
i = g;
return
}
h = f + 0 | 0;
j = a + 0 | 0;
k = h + 60 | 0;
do {
c[h >> 2] = c[j >> 2];
h = h + 4 | 0;
j = j + 4 | 0
} while ((h | 0) < (k | 0));
i = g;
return
} else if ((e | 0) == 2) {
l = b + -60 | 0;
m = (f | 0) == 0;
if (nb[c[d >> 2] & 31](l, a) | 0) {
if (!m) {
h = f + 0 | 0;
j = l + 0 | 0;
k = h + 60 | 0;
do {
c[h >> 2] = c[j >> 2];
h = h + 4 | 0;
j = j + 4 | 0
} while ((h | 0) < (k | 0))
}
h = f + 60 | 0;
j = a + 0 | 0;
k = h + 60 | 0;
do {
c[h >> 2] = c[j >> 2];
h = h + 4 | 0;
j = j + 4 | 0
} while ((h |
0) < (k | 0));
i = g;
return
} else {
if (!m) {
h = f + 0 | 0;
j = a + 0 | 0;
k = h + 60 | 0;
do {
c[h >> 2] = c[j >> 2];
h = h + 4 | 0;
j = j + 4 | 0
} while ((h | 0) < (k | 0))
}
h = f + 60 | 0;
j = l + 0 | 0;
k = h + 60 | 0;
do {
c[h >> 2] = c[j >> 2];
h = h + 4 | 0;
j = j + 4 | 0
} while ((h | 0) < (k | 0));
i = g;
return
}
} else if ((e | 0) == 0) {
i = g;
return
} else {
if ((e | 0) < 9) {
if ((a | 0) == (b | 0)) {
i = g;
return
}
if ((f | 0) == 0)
n = 0;
else {
h = f + 0 | 0;
j = a + 0 | 0;
k = h + 60 | 0;
do {
c[h >> 2] = c[j >> 2];
h = h + 4 | 0;
j = j + 4 | 0
} while ((h | 0) < (k | 0));
n = f
}
l = a + 60 | 0;
if ((l | 0) == (b | 0)) {
i = g;
return
} else {
o = l;
p = n
}
do {
n = p;
p = p + 60 | 0;
if (nb[c[d >> 2] & 31](o, n) | 0) {
h = p + 0 | 0;
j = n + 0 | 0;
k = h + 60 | 0;
do {
c[h >>
2] = c[j >> 2];
h = h + 4 | 0;
j = j + 4 | 0
} while ((h | 0) < (k | 0));
a:
do if ((n | 0) == (f | 0))
q = f;
else {
l = n;
while (1) {
m = l;
l = l + -60 | 0;
if (!(nb[c[d >> 2] & 31](o, l) | 0)) {
q = m;
break a
}
h = m + 0 | 0;
j = l + 0 | 0;
k = h + 60 | 0;
do {
c[h >> 2] = c[j >> 2];
h = h + 4 | 0;
j = j + 4 | 0
} while ((h | 0) < (k | 0));
if ((l | 0) == (f | 0)) {
q = f;
break
}
}
}
while (0);
h = q + 0 | 0;
j = o + 0 | 0;
k = h + 60 | 0;
do {
c[h >> 2] = c[j >> 2];
h = h + 4 | 0;
j = j + 4 | 0
} while ((h | 0) < (k | 0))
} else {
h = p + 0 | 0;
j = o + 0 | 0;
k = h + 60 | 0;
do {
c[h >> 2] = c[j >> 2];
h = h + 4 | 0;
j = j + 4 | 0
} while ((h | 0) < (k | 0))
}
o = o + 60 | 0
} while ((o | 0) != (b | 0));
i = g;
return
}
o = (e | 0) / 2 | 0;
p = a + (o * 60 | 0) | 0;
Ll(a, p, d, o,
f, o);
q = e - o | 0;
Ll(p, b, d, q, f + (o * 60 | 0) | 0, q);
b:
do if ((e + 1 | 0) >>> 0 < 3) {
r = p;
s = f
} else {
q = p;
o = a;
n = f;
while (1) {
if ((q | 0) == (b | 0))
break;
l = (n | 0) == 0;
if (nb[c[d >> 2] & 31](q, o) | 0) {
if (!l) {
h = n + 0 | 0;
j = q + 0 | 0;
k = h + 60 | 0;
do {
c[h >> 2] = c[j >> 2];
h = h + 4 | 0;
j = j + 4 | 0
} while ((h | 0) < (k | 0))
}
t = o;
u = q + 60 | 0
} else {
if (!l) {
h = n + 0 | 0;
j = o + 0 | 0;
k = h + 60 | 0;
do {
c[h >> 2] = c[j >> 2];
h = h + 4 | 0;
j = j + 4 | 0
} while ((h | 0) < (k | 0))
}
t = o + 60 | 0;
u = q
}
l = n + 60 | 0;
if ((t | 0) == (p | 0)) {
r = u;
s = l;
break b
} else {
q = u;
o = t;
n = l
}
}
if ((o | 0) == (p | 0)) {
i = g;
return
} else {
v = o;
w = n
}
while (1) {
if ((w | 0) != 0) {
h = w + 0 | 0;
j = v + 0 | 0;
k = h +
60 | 0;
do {
c[h >> 2] = c[j >> 2];
h = h + 4 | 0;
j = j + 4 | 0
} while ((h | 0) < (k | 0))
}
v = v + 60 | 0;
if ((v | 0) == (p | 0))
break;
else
w = w + 60 | 0
}
i = g;
return
}
while (0);
if ((r | 0) == (b | 0)) {
i = g;
return
} else {
x = r;
y = s
}
while (1) {
if ((y | 0) != 0) {
h = y + 0 | 0;
j = x + 0 | 0;
k = h + 60 | 0;
do {
c[h >> 2] = c[j >> 2];
h = h + 4 | 0;
j = j + 4 | 0
} while ((h | 0) < (k | 0))
}
x = x + 60 | 0;
if ((x | 0) == (b | 0))
break;
else
y = y + 60 | 0
}
i = g;
return
}
}
function Nl(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;
k = i;
i = i + 64 | 0;
l = k;
if ((g | 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) {
if ((o | 0) == 0) {
r = 45;
break a
} else {
s = p;
t = o
}
while (1) {
if (nb[c[e >> 2] & 31](n, s) | 0)
break;
u = t + -1 | 0;
if ((u | 0) == 0) {
r = 45;
break a
} else {
s = s + 60 | 0;
t = u
}
}
if (!((t | 0) > (j | 0) & (q | 0) > (j | 0))) {
r = 8;
break a
}
if ((t | 0) < (q | 0)) {
u = (q | 0) / 2 | 0;
v = n + (u * 60 | 0) | 0;
w = s;
x = s;
y = (n - w | 0) / 60 | 0;
b:
while (1) {
z = y;
while (1) {
if ((z | 0) == 0)
break b;
A = (z | 0) / 2 | 0;
if (nb[c[e >> 2] & 31](v, x + (A * 60 | 0) | 0) | 0)
z = A;
else
break
}
x =
x + ((A + 1 | 0) * 60 | 0) | 0;
y = z + -1 - A | 0
}
B = x;
C = v;
D = (x - w | 0) / 60 | 0;
E = u
} else {
if ((t | 0) == 1) {
r = 17;
break a
}
y = (t | 0) / 2 | 0;
F = s + (y * 60 | 0) | 0;
G = n;
H = n;
I = (g - G | 0) / 60 | 0;
c:
while (1) {
J = I;
while (1) {
if ((J | 0) == 0)
break c;
K = (J | 0) / 2 | 0;
if (nb[c[e >> 2] & 31](H + (K * 60 | 0) | 0, F) | 0)
break;
else
J = K
}
H = H + ((K + 1 | 0) * 60 | 0) | 0;
I = J + -1 - K | 0
}
B = F;
C = H;
D = y;
E = (H - G | 0) / 60 | 0
}
o = t - D | 0;
L = q - E | 0;
d:
do if ((B | 0) != (n | 0))
if ((n | 0) == (C | 0))
M = B;
else {
if ((B + 60 | 0) == (n | 0)) {
N = l + 0 | 0;
O = B + 0 | 0;
P = N + 60 | 0;
do {
c[N >> 2] = c[O >> 2];
N = N + 4 | 0;
O = O + 4 | 0
} while ((N | 0) < (P | 0));
J = C - n | 0;
Bn(B | 0, n | 0, J | 0) | 0;
I = B + (((J | 0) /
60 | 0) * 60 | 0) | 0;
N = I + 0 | 0;
O = l + 0 | 0;
P = N + 60 | 0;
do {
c[N >> 2] = c[O >> 2];
N = N + 4 | 0;
O = O + 4 | 0
} while ((N | 0) < (P | 0));
M = I;
break
}
if ((n + 60 | 0) == (C | 0)) {
J = C + -60 | 0;
N = l + 0 | 0;
O = J + 0 | 0;
P = N + 60 | 0;
do {
c[N >> 2] = c[O >> 2];
N = N + 4 | 0;
O = O + 4 | 0
} while ((N | 0) < (P | 0));
I = J - B | 0;
u = C + (((I | 0) / -60 | 0) * 60 | 0) | 0;
Bn(u | 0, B | 0, I | 0) | 0;
N = B + 0 | 0;
O = l + 0 | 0;
P = N + 60 | 0;
do {
c[N >> 2] = c[O >> 2];
N = N + 4 | 0;
O = O + 4 | 0
} while ((N | 0) < (P | 0));
M = u;
break
}
J = n;
I = (J - B | 0) / 60 | 0;
w = C;
x = (w - J | 0) / 60 | 0;
if ((I | 0) == (x | 0)) {
J = B;
v = n;
while (1) {
N = l + 0 | 0;
O = J + 0 | 0;
P = N + 60 | 0;
do {
c[N >> 2] = c[O >> 2];
N = N + 4 | 0;
O = O + 4 | 0
} while ((N | 0) < (P |
0));
N = J + 0 | 0;
O = v + 0 | 0;
P = N + 60 | 0;
do {
c[N >> 2] = c[O >> 2];
N = N + 4 | 0;
O = O + 4 | 0
} while ((N | 0) < (P | 0));
N = v + 0 | 0;
O = l + 0 | 0;
P = N + 60 | 0;
do {
c[N >> 2] = c[O >> 2];
N = N + 4 | 0;
O = O + 4 | 0
} while ((N | 0) < (P | 0));
J = J + 60 | 0;
if ((J | 0) == (n | 0)) {
M = n;
break d
} else
v = v + 60 | 0
}
} else {
Q = I;
R = x
}
while (1) {
v = (Q | 0) % (R | 0) | 0;
if ((v | 0) == 0)
break;
else {
J = R;
R = v;
Q = J
}
}
if ((R | 0) != 0) {
J = I + -1 | 0;
v = B + (R * 60 | 0) | 0;
do {
u = v;
v = v + -60 | 0;
N = l + 0 | 0;
O = v + 0 | 0;
P = N + 60 | 0;
do {
c[N >> 2] = c[O >> 2];
N = N + 4 | 0;
O = O + 4 | 0
} while ((N | 0) < (P | 0));
z = v;
S = u + (J * 60 | 0) | 0;
while (1) {
N = z + 0 | 0;
O = S + 0 | 0;
P = N + 60 | 0;
do {
c[N >> 2] = c[O >> 2];
N = N + 4 | 0;
O = O + 4 | 0
} while ((N | 0) < (P | 0));
T = (w - S | 0) / 60 | 0;
if ((I | 0) < (T | 0))
U = S + (I * 60 | 0) | 0;
else
U = B + ((I - T | 0) * 60 | 0) | 0;
if ((U | 0) == (v | 0))
break;
else {
T = S;
S = U;
z = T
}
}
N = S + 0 | 0;
O = l + 0 | 0;
P = N + 60 | 0;
do {
c[N >> 2] = c[O >> 2];
N = N + 4 | 0;
O = O + 4 | 0
} while ((N | 0) < (P | 0))
} while ((v | 0) != (B | 0))
}
M = B + (x * 60 | 0) | 0
}
else
M = C;
while (0);
if ((E + D | 0) >= (L + o | 0))
break;
Nl(s, B, M, e, D, E, h, j);
if ((q | 0) == (E | 0)) {
r = 45;
break a
} else {
n = C;
p = M;
q = L
}
}
Nl(M, C, b, e, o, L, h, j);
if ((E | 0) == 0) {
r = 45;
break
} else {
m = s;
a = B;
b = M;
d = D;
f = E
}
}
if ((r | 0) == 8) {
Ol(s, n, b, e, t, q, h);
i = k;
return
} else if ((r | 0) == 17) {
N = l + 0 |
0;
O = s + 0 | 0;
P = N + 60 | 0;
do {
c[N >> 2] = c[O >> 2];
N = N + 4 | 0;
O = O + 4 | 0
} while ((N | 0) < (P | 0));
N = s + 0 | 0;
O = n + 0 | 0;
P = N + 60 | 0;
do {
c[N >> 2] = c[O >> 2];
N = N + 4 | 0;
O = O + 4 | 0
} while ((N | 0) < (P | 0));
N = n + 0 | 0;
O = l + 0 | 0;
P = N + 60 | 0;
do {
c[N >> 2] = c[O >> 2];
N = N + 4 | 0;
O = O + 4 | 0
} while ((N | 0) < (P | 0));
i = k;
return
} else if ((r | 0) == 45) {
i = k;
return
}
}
function Ol(a, b, d, e, f, g, h) {
a = a | 0;
b = b | 0;
d = d | 0;
e = e | 0;
f = f | 0;
g = g | 0;
h = h | 0;
var j = 0,
k = 0,
l = 0,
m = 0,
n = 0,
o = 0,
p = 0,
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;
j = i;
k = a;
l = b;
if ((f | 0) <= (g | 0)) {
a:
do if ((a | 0) != (b | 0)) {
g = (((b + -60 + (0 -
k) | 0) >>> 0) / 60 | 0) + 1 | 0;
f = a;
m = h;
while (1) {
if ((m | 0) != 0) {
n = m + 0 | 0;
o = f + 0 | 0;
p = n + 60 | 0;
do {
c[n >> 2] = c[o >> 2];
n = n + 4 | 0;
o = o + 4 | 0
} while ((n | 0) < (p | 0))
}
f = f + 60 | 0;
if ((f | 0) == (b | 0))
break;
else
m = m + 60 | 0
}
m = h + (g * 60 | 0) | 0;
if ((m | 0) != (h | 0)) {
f = a;
q = b;
r = h;
while (1) {
if ((q | 0) == (d | 0))
break;
if (nb[c[e >> 2] & 31](q, r) | 0) {
n = f + 0 | 0;
o = q + 0 | 0;
p = n + 60 | 0;
do {
c[n >> 2] = c[o >> 2];
n = n + 4 | 0;
o = o + 4 | 0
} while ((n | 0) < (p | 0));
s = r;
t = q + 60 | 0
} else {
n = f + 0 | 0;
o = r + 0 | 0;
p = n + 60 | 0;
do {
c[n >> 2] = c[o >> 2];
n = n + 4 | 0;
o = o + 4 | 0
} while ((n | 0) < (p | 0));
s = r + 60 | 0;
t = q
}
u = f + 60 | 0;
if ((s | 0) == (m | 0)) {
v = u;
w = t;
break a
} else {
f =
u;
q = t;
r = s
}
}
Bn(f | 0, r | 0, m - r | 0) | 0;
i = j;
return
} else {
v = a;
w = b
}
} else {
v = a;
w = b
}
while (0);
Bn(v | 0, w | 0, d - w | 0) | 0;
i = j;
return
}
if ((b | 0) == (d | 0))
x = h;
else {
w = (((d + -60 + (0 - l) | 0) >>> 0) / 60 | 0) + 1 | 0;
l = b;
v = h;
while (1) {
if ((v | 0) != 0) {
n = v + 0 | 0;
o = l + 0 | 0;
p = n + 60 | 0;
do {
c[n >> 2] = c[o >> 2];
n = n + 4 | 0;
o = o + 4 | 0
} while ((n | 0) < (p | 0))
}
l = l + 60 | 0;
if ((l | 0) == (d | 0))
break;
else
v = v + 60 | 0
}
x = h + (w * 60 | 0) | 0
}
w = x;
b:
do if ((b | 0) == (a | 0)) {
y = w;
z = d
} else {
v = w;
l = b;
r = x;
m = d;
while (1) {
if ((v | 0) == (h | 0))
break;
f = r + -60 | 0;
s = l + -60 | 0;
t = m + -60 | 0;
if (nb[c[e >> 2] & 31](f, s) | 0) {
n = t + 0 | 0;
o = s + 0 | 0;
p = n + 60 |
0;
do {
c[n >> 2] = c[o >> 2];
n = n + 4 | 0;
o = o + 4 | 0
} while ((n | 0) < (p | 0));
A = s;
B = r
} else {
n = t + 0 | 0;
o = f + 0 | 0;
p = n + 60 | 0;
do {
c[n >> 2] = c[o >> 2];
n = n + 4 | 0;
o = o + 4 | 0
} while ((n | 0) < (p | 0));
A = l;
B = f
}
s = B;
if ((A | 0) == (a | 0)) {
y = s;
z = t;
break b
} else {
v = s;
l = A;
r = B;
m = t
}
}
if ((l | 0) == (a | 0)) {
i = j;
return
} else {
C = m;
D = l
}
do {
C = C + -60 | 0;
D = D + -60 | 0;
n = C + 0 | 0;
o = D + 0 | 0;
p = n + 60 | 0;
do {
c[n >> 2] = c[o >> 2];
n = n + 4 | 0;
o = o + 4 | 0
} while ((n | 0) < (p | 0))
} while ((D | 0) != (a | 0));
i = j;
return
}
while (0);
a = y;
if ((a | 0) == (h | 0)) {
i = j;
return
} else {
E = z;
F = a
}
do {
E = E + -60 | 0;
F = F + -60 | 0;
n = E + 0 | 0;
o = F + 0 | 0;
p = n + 60 | 0;
do {
c[n >> 2] =
c[o >> 2];
n = n + 4 | 0;
o = o + 4 | 0
} while ((n | 0) < (p | 0))
} while ((F | 0) != (h | 0));
i = j;
return
}
function Pl(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;
h = i;
i = i + 32 | 0;
j = h;
if ((e | 0) == 2) {
k = b + -20 | 0;
if (!(nb[c[d >> 2] & 31](k, a) | 0)) {
i = h;
return
}
c[j + 0 >> 2] = c[a + 0 >> 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 + 0 >> 2] = c[k + 0 >> 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 + 0 >> 2] = c[j + 0 >> 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
} else if ((e | 0) == 1 | (e | 0) == 0) {
i = h;
return
} else {
if ((e | 0) < 129) {
if ((a | 0) == (b | 0)) {
i = h;
return
}
k = a + 20 | 0;
if ((k | 0) == (b | 0)) {
i = h;
return
} else
l = k;
do {
c[j + 0 >> 2] = c[l + 0 >> 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 (!(nb[c[d >> 2] & 31](j, k) | 0)) {
m = n;
break a
}
c[n + 0 >> 2] = c[k + 0 >> 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 + 0 >> 2] = c[j + 0 >> 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)) {
Pl(a, j, d, l, f, g);
m = e - l | 0;
Pl(j, b, d, m, f, g);
Rl(a, j, b, d, l, m, f, g);
i = h;
return
}
Ql(a, j, d, l, f);
g = f + (l * 20 | 0) | 0;
Ql(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))
break;
if (nb[c[d >> 2] & 31](m, j) | 0) {
c[b + 0 >>
2] = c[m + 0 >> 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];
q = m + 20 | 0;
r = j
} else {
c[b + 0 >> 2] = c[j + 0 >> 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];
q = m;
r = j + 20 | 0
}
k = b + 20 | 0;
if ((r | 0) == (g | 0)) {
o = k;
p = q;
break b
} else {
b = k;
j = r;
m = q
}
}
if ((j | 0) == (g | 0)) {
i = h;
return
} else {
s = j;
t = b
}
while (1) {
c[t + 0 >> 2] = c[s + 0 >> 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) == (g | 0))
break;
else
t = t + 20 | 0
}
i = h;
return
}
while (0);
if ((p | 0) == (l | 0)) {
i = h;
return
} else {
u = o;
v = p
}
while (1) {
c[u + 0 >> 2] = c[v + 0 >> 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) == (l | 0))
break;
else
u = u + 20 | 0
}
i = h;
return
}
}
function Ql(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,
r = 0,
s = 0,
t = 0,
u = 0,
v = 0,
w = 0;
g = i;
if ((e | 0) == 1) {
if ((f | 0) == 0) {
i = g;
return
}
c[f + 0 >> 2] = c[a + 0 >> 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];
i = g;
return
} else if ((e | 0) ==
0) {
i = g;
return
} else if ((e | 0) == 2) {
h = b + -20 | 0;
j = (f | 0) == 0;
if (nb[c[d >> 2] & 31](h, a) | 0) {
if (!j) {
c[f + 0 >> 2] = c[h + 0 >> 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]
}
k = f + 20 | 0;
c[k + 0 >> 2] = c[a + 0 >> 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];
i = g;
return
} else {
if (!j) {
c[f + 0 >> 2] = c[a + 0 >> 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]
}
j = f + 20 | 0;
c[j + 0 >> 2] = c[h + 0 >> 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];
i = g;
return
}
} else {
if ((e | 0) < 9) {
if ((a | 0) == (b | 0)) {
i = g;
return
}
if ((f | 0) == 0)
l = 0;
else {
c[f + 0 >> 2] = c[a + 0 >> 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];
l = f
}
h = a + 20 | 0;
if ((h | 0) == (b | 0)) {
i = g;
return
} else {
m = h;
n = l
}
do {
l = n;
n = n + 20 | 0;
if (nb[c[d >> 2] & 31](m, l) | 0) {
c[n + 0 >> 2] = c[l + 0 >> 2];
c[n + 4 >> 2] = c[l + 4 >> 2];
c[n + 8 >> 2] = c[l + 8 >> 2];
c[n + 12 >> 2] = c[l + 12 >> 2];
c[n + 16 >> 2] = c[l + 16 >> 2];
a:
do if ((l | 0) == (f | 0))
o = f;
else {
h = l;
while (1) {
j = h;
h = h + -20 | 0;
if (!(nb[c[d >> 2] & 31](m,
h) | 0)) {
o = j;
break a
}
c[j + 0 >> 2] = c[h + 0 >> 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];
if ((h | 0) == (f | 0)) {
o = f;
break
}
}
}
while (0);
c[o + 0 >> 2] = c[m + 0 >> 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];
c[o + 16 >> 2] = c[m + 16 >> 2]
} else {
c[n + 0 >> 2] = c[m + 0 >> 2];
c[n + 4 >> 2] = c[m + 4 >> 2];
c[n + 8 >> 2] = c[m + 8 >> 2];
c[n + 12 >> 2] = c[m + 12 >> 2];
c[n + 16 >> 2] = c[m + 16 >> 2]
}
m = m + 20 | 0
} while ((m | 0) != (b | 0));
i = g;
return
}
m = (e | 0) / 2 | 0;
n = a + (m * 20 | 0) | 0;
Pl(a, n, d, m, f, m);
o = e - m | 0;
Pl(n, b, d, o, f + (m * 20 | 0) | 0, o);
b:
do if ((e +
1 | 0) >>> 0 < 3) {
p = n;
q = f
} else {
o = n;
m = a;
l = f;
while (1) {
if ((o | 0) == (b | 0))
break;
h = (l | 0) == 0;
if (nb[c[d >> 2] & 31](o, m) | 0) {
if (!h) {
c[l + 0 >> 2] = c[o + 0 >> 2];
c[l + 4 >> 2] = c[o + 4 >> 2];
c[l + 8 >> 2] = c[o + 8 >> 2];
c[l + 12 >> 2] = c[o + 12 >> 2];
c[l + 16 >> 2] = c[o + 16 >> 2]
}
r = m;
s = o + 20 | 0
} else {
if (!h) {
c[l + 0 >> 2] = c[m + 0 >> 2];
c[l + 4 >> 2] = c[m + 4 >> 2];
c[l + 8 >> 2] = c[m + 8 >> 2];
c[l + 12 >> 2] = c[m + 12 >> 2];
c[l + 16 >> 2] = c[m + 16 >> 2]
}
r = m + 20 | 0;
s = o
}
h = l + 20 | 0;
if ((r | 0) == (n | 0)) {
p = s;
q = h;
break b
} else {
o = s;
m = r;
l = h
}
}
if ((m | 0) == (n | 0)) {
i = g;
return
} else {
t = m;
u = l
}
while (1) {
if ((u | 0) != 0) {
c[u + 0 >> 2] = c[t + 0 >> 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]
}
t = t + 20 | 0;
if ((t | 0) == (n | 0))
break;
else
u = u + 20 | 0
}
i = g;
return
}
while (0);
if ((p | 0) == (b | 0)) {
i = g;
return
} else {
v = p;
w = q
}
while (1) {
if ((w | 0) != 0) {
c[w + 0 >> 2] = c[v + 0 >> 2];
c[w + 4 >> 2] = c[v + 4 >> 2];
c[w + 8 >> 2] = c[v + 8 >> 2];
c[w + 12 >> 2] = c[v + 12 >> 2];
c[w + 16 >> 2] = c[v + 16 >> 2]
}
v = v + 20 | 0;
if ((v | 0) == (b | 0))
break;
else
w = w + 20 | 0
}
i = g;
return
}
}
function Rl(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;
k = i;
i = i + 48 | 0;
l = k + 20 | 0;
m = k;
if ((g | 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) {
if ((p | 0) == 0) {
s = 45;
break a
} else {
t = q;
u = p
}
while (1) {
if (nb[c[e >> 2] & 31](o, t) | 0)
break;
v = u + -1 | 0;
if ((v | 0) == 0) {
s = 45;
break a
} else {
t = t + 20 | 0;
u = v
}
}
if (!((u | 0) > (j | 0) & (r | 0) > (j | 0))) {
s = 8;
break a
}
if ((u | 0) < (r | 0)) {
v = (r | 0) / 2 | 0;
w = o + (v * 20 | 0) | 0;
x = t;
y = t;
z = (o - x | 0) / 20 | 0;
b:
while (1) {
A = z;
while (1) {
if ((A | 0) == 0)
break b;
B = (A | 0) / 2 | 0;
if (nb[c[e >>
2] & 31](w, y + (B * 20 | 0) | 0) | 0)
A = B;
else
break
}
y = y + ((B + 1 | 0) * 20 | 0) | 0;
z = A + -1 - B | 0
}
C = y;
D = w;
E = (y - x | 0) / 20 | 0;
F = v
} else {
if ((u | 0) == 1) {
s = 17;
break a
}
z = (u | 0) / 2 | 0;
G = t + (z * 20 | 0) | 0;
H = o;
I = o;
J = (g - H | 0) / 20 | 0;
c:
while (1) {
K = J;
while (1) {
if ((K | 0) == 0)
break c;
L = (K | 0) / 2 | 0;
if (nb[c[e >> 2] & 31](I + (L * 20 | 0) | 0, G) | 0)
break;
else
K = L
}
I = I + ((L + 1 | 0) * 20 | 0) | 0;
J = K + -1 - L | 0
}
C = G;
D = I;
E = z;
F = (I - H | 0) / 20 | 0
}
p = u - E | 0;
M = r - F | 0;
d:
do if ((C | 0) != (o | 0))
if ((o | 0) == (D | 0))
N = C;
else {
if ((C + 20 | 0) == (o | 0)) {
c[l + 0 >> 2] = c[C + 0 >> 2];
c[l + 4 >> 2] = c[C + 4 >> 2];
c[l + 8 >> 2] = c[C + 8 >> 2];
c[l + 12 >> 2] = c[C +
12 >> 2];
c[l + 16 >> 2] = c[C + 16 >> 2];
J = D - o | 0;
Bn(C | 0, o | 0, J | 0) | 0;
v = C + (((J | 0) / 20 | 0) * 20 | 0) | 0;
c[v + 0 >> 2] = c[l + 0 >> 2];
c[v + 4 >> 2] = c[l + 4 >> 2];
c[v + 8 >> 2] = c[l + 8 >> 2];
c[v + 12 >> 2] = c[l + 12 >> 2];
c[v + 16 >> 2] = c[l + 16 >> 2];
N = v;
break
}
if ((o + 20 | 0) == (D | 0)) {
v = D + -20 | 0;
c[l + 0 >> 2] = c[v + 0 >> 2];
c[l + 4 >> 2] = c[v + 4 >> 2];
c[l + 8 >> 2] = c[v + 8 >> 2];
c[l + 12 >> 2] = c[v + 12 >> 2];
c[l + 16 >> 2] = c[v + 16 >> 2];
J = v - C | 0;
v = D + (((J | 0) / -20 | 0) * 20 | 0) | 0;
Bn(v | 0, C | 0, J | 0) | 0;
c[C + 0 >> 2] = c[l + 0 >> 2];
c[C + 4 >> 2] = c[l + 4 >> 2];
c[C + 8 >> 2] = c[l + 8 >> 2];
c[C + 12 >> 2] = c[l + 12 >> 2];
c[C + 16 >> 2] = c[l + 16 >> 2];
N = v;
break
}
v = o;
J =
(v - C | 0) / 20 | 0;
x = D;
y = (x - v | 0) / 20 | 0;
if ((J | 0) == (y | 0)) {
v = C;
w = o;
while (1) {
c[l + 0 >> 2] = c[v + 0 >> 2];
c[l + 4 >> 2] = c[v + 4 >> 2];
c[l + 8 >> 2] = c[v + 8 >> 2];
c[l + 12 >> 2] = c[v + 12 >> 2];
c[l + 16 >> 2] = c[v + 16 >> 2];
c[v + 0 >> 2] = c[w + 0 >> 2];
c[v + 4 >> 2] = c[w + 4 >> 2];
c[v + 8 >> 2] = c[w + 8 >> 2];
c[v + 12 >> 2] = c[w + 12 >> 2];
c[v + 16 >> 2] = c[w + 16 >> 2];
c[w + 0 >> 2] = c[l + 0 >> 2];
c[w + 4 >> 2] = c[l + 4 >> 2];
c[w + 8 >> 2] = c[l + 8 >> 2];
c[w + 12 >> 2] = c[l + 12 >> 2];
c[w + 16 >> 2] = c[l + 16 >> 2];
v = v + 20 | 0;
if ((v | 0) == (o | 0)) {
N = o;
break d
} else
w = w + 20 | 0
}
} else {
O = J;
P = y
}
while (1) {
w = (O | 0) % (P | 0) | 0;
if ((w | 0) == 0)
break;
else {
v = P;
P = w;
O =
v
}
}
if ((P | 0) != 0) {
v = J + -1 | 0;
w = C + (P * 20 | 0) | 0;
do {
K = w;
w = w + -20 | 0;
c[m + 0 >> 2] = c[w + 0 >> 2];
c[m + 4 >> 2] = c[w + 4 >> 2];
c[m + 8 >> 2] = c[w + 8 >> 2];
c[m + 12 >> 2] = c[w + 12 >> 2];
c[m + 16 >> 2] = c[w + 16 >> 2];
A = w;
Q = K + (v * 20 | 0) | 0;
while (1) {
c[A + 0 >> 2] = c[Q + 0 >> 2];
c[A + 4 >> 2] = c[Q + 4 >> 2];
c[A + 8 >> 2] = c[Q + 8 >> 2];
c[A + 12 >> 2] = c[Q + 12 >> 2];
c[A + 16 >> 2] = c[Q + 16 >> 2];
K = (x - Q | 0) / 20 | 0;
if ((J | 0) < (K | 0))
R = Q + (J * 20 | 0) | 0;
else
R = C + ((J - K | 0) * 20 | 0) | 0;
if ((R | 0) == (w | 0))
break;
else {
K = Q;
Q = R;
A = K
}
}
c[Q + 0 >> 2] = c[m + 0 >> 2];
c[Q + 4 >> 2] = c[m + 4 >> 2];
c[Q + 8 >> 2] = c[m + 8 >> 2];
c[Q + 12 >> 2] = c[m + 12 >> 2];
c[Q + 16 >> 2] = c[m +
16 >> 2]
} while ((w | 0) != (C | 0))
}
N = C + (y * 20 | 0) | 0
}
else
N = D;
while (0);
if ((F + E | 0) >= (M + p | 0))
break;
Rl(t, C, N, e, E, F, h, j);
if ((r | 0) == (F | 0)) {
s = 45;
break a
} else {
o = D;
q = N;
r = M
}
}
Rl(N, D, b, e, p, M, h, j);
if ((F | 0) == 0) {
s = 45;
break
} else {
n = t;
a = C;
b = N;
d = E;
f = F
}
}
if ((s | 0) == 8) {
Sl(t, o, b, e, u, r, h);
i = k;
return
} else if ((s | 0) == 17) {
c[l + 0 >> 2] = c[t + 0 >> 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[t + 0 >> 2] = c[o + 0 >> 2];
c[t + 4 >> 2] = c[o + 4 >> 2];
c[t + 8 >> 2] = c[o + 8 >> 2];
c[t + 12 >> 2] = c[o + 12 >> 2];
c[t + 16 >> 2] = c[o + 16 >> 2];
c[o + 0 >> 2] =
c[l + 0 >> 2];
c[o + 4 >> 2] = c[l + 4 >> 2];
c[o + 8 >> 2] = c[l + 8 >> 2];
c[o + 12 >> 2] = c[l + 12 >> 2];
c[o + 16 >> 2] = c[l + 16 >> 2];
i = k;
return
} else if ((s | 0) == 45) {
i = k;
return
}
}
function Sl(a, b, d, e, f, g, h) {
a = a | 0;
b = b | 0;
d = d | 0;
e = e | 0;
f = f | 0;
g = g | 0;
h = h | 0;
var j = 0,
k = 0,
l = 0,
m = 0,
n = 0,
o = 0,
p = 0,
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;
j = i;
k = a;
l = b;
if ((f | 0) <= (g | 0)) {
a:
do if ((a | 0) != (b | 0)) {
g = (((b + -20 + (0 - k) | 0) >>> 0) / 20 | 0) + 1 | 0;
f = a;
m = h;
while (1) {
if ((m | 0) != 0) {
c[m + 0 >> 2] = c[f + 0 >> 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]
}
f = f + 20 | 0;
if ((f | 0) == (b | 0))
break;
else
m = m + 20 | 0
}
m = h + (g * 20 | 0) | 0;
if ((m | 0) != (h | 0)) {
f = a;
n = b;
o = h;
while (1) {
if ((n | 0) == (d | 0))
break;
if (nb[c[e >> 2] & 31](n, o) | 0) {
c[f + 0 >> 2] = c[n + 0 >> 2];
c[f + 4 >> 2] = c[n + 4 >> 2];
c[f + 8 >> 2] = c[n + 8 >> 2];
c[f + 12 >> 2] = c[n + 12 >> 2];
c[f + 16 >> 2] = c[n + 16 >> 2];
p = o;
q = n + 20 | 0
} else {
c[f + 0 >> 2] = c[o + 0 >> 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];
p = o + 20 | 0;
q = n
}
r = f + 20 | 0;
if ((p | 0) == (m | 0)) {
s = r;
t = q;
break a
} else {
f = r;
n = q;
o = p
}
}
Bn(f | 0, o | 0, m - o | 0) | 0;
i = j;
return
} else {
s = a;
t = b
}
} else {
s =
a;
t = b
}
while (0);
Bn(s | 0, t | 0, d - t | 0) | 0;
i = j;
return
}
if ((b | 0) == (d | 0))
u = h;
else {
t = (((d + -20 + (0 - l) | 0) >>> 0) / 20 | 0) + 1 | 0;
l = b;
s = h;
while (1) {
if ((s | 0) != 0) {
c[s + 0 >> 2] = c[l + 0 >> 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]
}
l = l + 20 | 0;
if ((l | 0) == (d | 0))
break;
else
s = s + 20 | 0
}
u = h + (t * 20 | 0) | 0
}
t = u;
b:
do if ((b | 0) == (a | 0)) {
v = t;
w = d
} else {
s = t;
l = b;
p = u;
q = d;
while (1) {
if ((s | 0) == (h | 0))
break;
k = p + -20 | 0;
n = l + -20 | 0;
g = q + -20 | 0;
if (nb[c[e >> 2] & 31](k, n) | 0) {
c[g + 0 >> 2] = c[n + 0 >> 2];
c[g + 4 >> 2] = c[n + 4 >> 2];
c[g + 8 >> 2] = c[n + 8 >> 2];
c[g + 12 >> 2] = c[n + 12 >> 2];
c[g + 16 >> 2] = c[n + 16 >> 2];
x = n;
y = p
} else {
c[g + 0 >> 2] = c[k + 0 >> 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];
x = l;
y = k
}
k = y;
if ((x | 0) == (a | 0)) {
v = k;
w = g;
break b
} else {
s = k;
l = x;
p = y;
q = g
}
}
if ((l | 0) == (a | 0)) {
i = j;
return
} else {
z = q;
A = l
}
do {
z = z + -20 | 0;
A = A + -20 | 0;
c[z + 0 >> 2] = c[A + 0 >> 2];
c[z + 4 >> 2] = c[A + 4 >> 2];
c[z + 8 >> 2] = c[A + 8 >> 2];
c[z + 12 >> 2] = c[A + 12 >> 2];
c[z + 16 >> 2] = c[A + 16 >> 2]
} while ((A | 0) != (a | 0));
i = j;
return
}
while (0);
a = v;
if ((a | 0) == (h | 0)) {
i = j;
return
} else {
B = w;
C = a
}
do {
B = B + -20 | 0;
C = C + -20 |
0;
c[B + 0 >> 2] = c[C + 0 >> 2];
c[B + 4 >> 2] = c[C + 4 >> 2];
c[B + 8 >> 2] = c[C + 8 >> 2];
c[B + 12 >> 2] = c[C + 12 >> 2];
c[B + 16 >> 2] = c[C + 16 >> 2]
} while ((C | 0) != (h | 0));
i = j;
return
}
function Tl(a) {
a = a | 0;
var b = 0,
d = 0,
e = 0,
f = 0,
g = 0,
h = 0,
j = 0,
k = 0;
b = i;
d = a + 4 | 0;
e = c[d >> 2] | 0;
if ((e | 0) != (a | 0)) {
f = e;
do {
e = Sm(f) | 0;
g = c[e >> 2] | 0;
if ((g | 0) != 0) {
h = 0;
j = e + 32 | 0;
while (1) {
k = j + 4 | 0;
c[(c[j >> 2] | 0) + 4 >> 2] = c[k >> 2];
c[c[k >> 2] >> 2] = c[j >> 2];
c[k >> 2] = j;
c[j >> 2] = j;
h = h + 1 | 0;
if ((h | 0) == (g | 0))
break;
else
j = j + 12 | 0
}
}
Um(a, e);
f = c[d >> 2] | 0
} while ((f | 0) != (a | 0))
}
f = a + 12 | 0;
j = a + 20 | 0;
g = a + 24 | 0;
c[(c[j >> 2] | 0) +
4 >> 2] = c[g >> 2];
c[c[g >> 2] >> 2] = c[j >> 2];
c[g >> 2] = j;
c[j >> 2] = j;
j = a + 16 | 0;
c[(c[f >> 2] | 0) + 4 >> 2] = c[j >> 2];
c[c[j >> 2] >> 2] = c[f >> 2];
c[j >> 2] = f;
c[f >> 2] = f;
Vm(a);
c[(c[a >> 2] | 0) + 4 >> 2] = c[d >> 2];
c[c[d >> 2] >> 2] = c[a >> 2];
c[d >> 2] = a;
c[a >> 2] = a;
i = b;
return
}
function Ul(a) {
a = a | 0;
return
}
function Vl(a) {
a = a | 0;
var b = 0;
b = i;
sn(a);
i = b;
return
}
function Wl(b, d) {
b = b | 0;
d = d | 0;
var e = 0,
f = 0,
g = 0,
h = 0,
j = 0,
k = 0,
l = 0,
m = 0,
n = 0,
o = 0,
p = 0,
q = 0,
r = 0,
s = 0,
t = 0,
u = 0,
v = 0;
e = i;
i = i + 48 | 0;
f = e + 24 | 0;
g = e;
if ((a[d + 38 >> 0] | 0) != 0) {
i = e;
return 1
}
h = c[d + 12 >> 2] | 0;
j = bb[c[(c[h >> 2] | 0) + 12 >> 2] &
7](h) | 0;
if ((j | 0) <= 0) {
i = e;
return 1
}
h = d + 24 | 0;
k = b + 4 | 0;
l = 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 + 0 >> 2] = c[p + 0 >> 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];
Nk(g, c[k >> 2] | 0, f);
p = c[l >> 2] | 0;
q = c[m >> 2] | 0;
a:
do if (p >>> 0 < q >>> 0) {
r = c[g >> 2] | 0;
s = c[n >> 2] | 0;
t = p;
while (1) {
u = c[t + 4 >> 2] & 1048575;
v = t;
t = t + 8 | 0;
c[l >> 2] = t;
if (u >>> 0 < r >>> 0 | u >>> 0 > s >>> 0)
if (t >>> 0 < q >>> 0) {
t = t;
continue
} else
break;
u = c[v >> 2] | 0;
if (!((u | 0) > -1))
break a;
pb[c[(c[b >> 2] | 0) + 20 >> 2] & 31](b, d, o, u);
if (!(t >>> 0 < q >>> 0))
break
}
}
while (0);
o = o + 1 | 0
} while ((o | 0) != (j | 0));
i = e;
return 1
}
function Xl(a, b) {
a = a | 0;
b = b | 0;
return 0
}
function Yl(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;
h = i;
i = i + 48 | 0;
j = h + 24 | 0;
l = h;
m = c[d + 8 >> 2] | 0;
n = b + 4 | 0;
o = c[n >> 2] | 0;
p = (c[o + 96 >> 2] | 0) + (f << 3) | 0;
q = c[p >> 2] | 0;
r = c[p + 4 >> 2] | 0;
s = (c[k >> 2] = q, +g[k >> 2]);
t = (c[k >> 2] = r, +g[k >> 2]);
p = (c[o + 104 >> 2] | 0) + (f << 3) | 0;
u = +g[p >> 2];
v = +g[p + 4 >> 2];
if ((c[o + 24 >> 2] | 0) == 0) {
w = s - +g[m + 28 >> 2];
x = t - +g[m + 32 >> 2];
y = +g[m + 40 >> 2];
z = +g[m + 36 >> 2];
A = w * y + x * z;
B = y * x - w * z;
o = c[d + 12 >> 2] | 0;
if ((c[o + 4 >> 2] | 0) == 0) {
w = +g[m + 44 >> 2];
x = A - w;
C = +g[m + 48 >> 2];
D = B - C;
E = x * y - D * z;
F = y * D + x * z;
z = +g[m + 24 >> 2];
x = +g[m + 20 >> 2];
G = z;
H = w + (z * E + x * F);
I = x;
J = C + (z * F - E * x)
} else {
G = +g[m + 24 >> 2];
H = A;
I = +g[m + 20 >> 2];
J = B
}
B = +(+g[m + 12 >> 2] + (H * G - J * I));
A = +(J * G + H * I + +g[m + 16 >> 2]);
p = l;
g[p >> 2] = B;
g[p + 4 >> 2] = A;
K = o
} else {
o = l;
c[o >> 2] = q;
c[o + 4 >> 2] = r;
K = c[d + 12 >> 2] | 0
}
d = l + 8 | 0;
A = +g[b + 8 >> 2];
B = +(s + u * A);
I = +(t + v * A);
r = d;
g[r >> 2] = B;
g[r + 4 >> 2] = I;
g[l + 16 >> 2] = 1;
if (!(ob[c[(c[K >> 2] | 0) + 24 >> 2] & 15](K, j, l, m +
12 | 0, e) | 0)) {
i = h;
return
}
e = j;
I = +g[e >> 2];
B = +g[j + 8 >> 2];
A = 1 - B;
j = b + 12 | 0;
H = +g[j >> 2];
G = H * (I * .004999999888241291 + (+g[l >> 2] * A + B * +g[d >> 2]) - s);
s = H * (+g[e + 4 >> 2] * .004999999888241291 + (A * +g[l + 4 >> 2] + B * +g[l + 12 >> 2]) - t);
t = +G;
B = +s;
l = (c[(c[n >> 2] | 0) + 104 >> 2] | 0) + (f << 3) | 0;
g[l >> 2] = t;
g[l + 4 >> 2] = B;
l = c[n >> 2] | 0;
B = +g[l + 32 >> 2] * .75;
t = +g[j >> 2] * B * +g[l + 320 >> 2] * B;
B = (u - G) * t;
G = (v - s) * t;
if (!(B != 0 | G != 0)) {
i = h;
return
}
if ((c[(c[l + 88 >> 2] | 0) + (f << 2) >> 2] & 4 | 0) != 0) {
i = h;
return
}
j = l + 21 | 0;
n = l + 112 | 0;
if ((a[j >> 0] | 0) == 0) {
xn(c[n >> 2] | 0, 0, c[l + 44 >> 2] << 3 | 0) | 0;
a[j >>
0] = 1
}
j = c[n >> 2] | 0;
n = j + (f << 3) | 0;
g[n >> 2] = B + +g[n >> 2];
n = j + (f << 3) + 4 | 0;
g[n >> 2] = G + +g[n >> 2];
i = h;
return
}
function Zl(a) {
a = a | 0;
return
}
function _l(a) {
a = a | 0;
var b = 0;
b = i;
sn(a);
i = b;
return
}
function $l(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;
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;
mb[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;
if (((n | 0) != 0 ? (c[(c[d + 88 >> 2] | 0) + (e << 2) >> 2] & 65536 | 0) != 0 : 0) ? !(lb[c[(c[n >> 2] | 0) + 12 >> 2] & 7](n, b, d, e) | 0) : 0) {
i = f;
return
}
d = c[o >> 2] | 0;
o = d + 60 | 0;
p = +g[o >> 2];
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 (q > 0)
u = 1 / q;
else
u = 0;
if (s > 0)
v = 1 / s;
else
v = 0;
n = c[l >> 2] | 0;
if ((c[(c[n + 88 >> 2] | 0) + (e << 2) >> 2] & 4 | 0) == 0) {
s = +g[n + 36 >> 2] * 1.3333333730697632;
w = s * +g[n + 28 >> 2] * s
} else
w = 0;
a = k + 4 | 0;
s = (+g[h >> 2] - p) * +g[a >> 2] - (+g[h + 4 >> 2] - +g[o +
4 >> 2]) * +g[k >> 2];
p = u + w + s * v * s;
o = n + 232 | 0;
h = n + 236 | 0;
m = c[h >> 2] | 0;
x = n + 240 | 0;
y = c[x >> 2] | 0;
if ((m | 0) >= (y | 0) ? (z = (y | 0) == 0 ? 256 : y << 1, (y | 0) < (z | 0)) : 0) {
y = n + 244 | 0;
n = Em(c[y >> 2] | 0, z * 28 | 0) | 0;
A = c[o >> 2] | 0;
if ((A | 0) != 0) {
An(n | 0, A | 0, (c[h >> 2] | 0) * 28 | 0) | 0;
Fm(c[y >> 2] | 0, c[o >> 2] | 0, (c[x >> 2] | 0) * 28 | 0)
}
c[x >> 2] = z;
c[o >> 2] = n;
B = c[h >> 2] | 0
} else
B = m;
c[h >> 2] = B + 1;
h = c[o >> 2] | 0;
c[h + (B * 28 | 0) >> 2] = e;
c[h + (B * 28 | 0) + 4 >> 2] = d;
c[h + (B * 28 | 0) + 8 >> 2] = b;
g[h + (B * 28 | 0) + 12 >> 2] = 1 - +g[j >> 2] * +g[(c[l >> 2] | 0) + 36 >> 2];
s = +-+g[k >> 2];
v = +-+g[a >> 2];
a = h + (B * 28 | 0) + 16 | 0;
g[a >> 2] = s;
g[a +
4 >> 2] = v;
if (p > 0)
C = 1 / p;
else
C = 0;
g[h + (B * 28 | 0) + 24 >> 2] = C;
Tk(c[l >> 2] | 0, e);
i = f;
return
}
function am(a) {
a = a | 0;
return
}
function bm(a) {
a = a | 0;
var b = 0;
b = i;
sn(a);
i = b;
return
}
function sj(a) {
a = a | 0;
var b = 0,
d = 0,
e = 0,
f = 0,
g = 0,
h = 0,
j = 0,
k = 0,
l = 0,
m = 0;
b = i;
d = c[a + 102960 >> 2] | 0;
if ((d | 0) != 0) {
e = d;
do {
d = e;
e = c[e + 112 >> 2] | 0;
f = c[d + 116 >> 2] | 0;
while (1) {
if ((f | 0) == 0)
break;
d = c[f + 4 >> 2] | 0;
c[f + 28 >> 2] = 0;
nj(f, a);
f = d
}
} while ((e | 0) != 0)
}
e = a + 102968 | 0;
f = c[e >> 2] | 0;
if ((f | 0) == 0) {
g = a + 102880 | 0;
Ne(g);
h = a + 76 | 0;
Xm(h);
Dm(a);
i = b;
return
}
d = a + 102876 | 0;
j = f;
while (1) {
if ((c[d >>
2] & 2 | 0) == 0) {
f = j + 404 | 0;
k = c[f >> 2] | 0;
l = j + 408 | 0;
if ((k | 0) != 0)
c[k + 408 >> 2] = c[l >> 2];
k = c[l >> 2] | 0;
if ((k | 0) != 0)
c[k + 404 >> 2] = c[f >> 2];
if ((c[e >> 2] | 0) == (j | 0))
c[e >> 2] = c[l >> 2];
sk(j);
Fm(a, j, 416);
m = c[e >> 2] | 0
} else
m = j;
if ((m | 0) == 0)
break;
else
j = m
}
g = a + 102880 | 0;
Ne(g);
h = a + 76 | 0;
Xm(h);
Dm(a);
i = b;
return
}
function tj(a, b) {
a = a | 0;
b = b | 0;
var d = 0,
e = 0,
f = 0,
g = 0;
d = i;
if ((c[a + 102876 >> 2] & 2 | 0) != 0) {
i = d;
return
}
e = b + 404 | 0;
f = c[e >> 2] | 0;
g = b + 408 | 0;
if ((f | 0) != 0)
c[f + 408 >> 2] = c[g >> 2];
f = c[g >> 2] | 0;
if ((f | 0) != 0)
c[f + 404 >> 2] = c[e >> 2];
e = a + 102968 | 0;
if ((c[e >> 2] | 0) ==
(b | 0))
c[e >> 2] = c[g >> 2];
sk(b);
Fm(a, b, 416);
i = d;
return
}
function uj(a, b) {
a = a | 0;
b = b | 0;
c[a + 102952 >> 2] = b;
return
}
function vj(a, b) {
a = a | 0;
b = b | 0;
var d = 0,
e = 0,
f = 0,
g = 0;
d = i;
if ((c[a + 102876 >> 2] & 2 | 0) != 0) {
e = 0;
i = d;
return e | 0
}
f = Em(a, 168) | 0;
if ((f | 0) == 0)
g = 0;
else {
Hj(f, b, a);
g = f
}
c[g + 108 >> 2] = 0;
f = a + 102960 | 0;
c[g + 112 >> 2] = c[f >> 2];
b = c[f >> 2] | 0;
if ((b | 0) != 0)
c[b + 108 >> 2] = g;
c[f >> 2] = g;
f = a + 102972 | 0;
c[f >> 2] = (c[f >> 2] | 0) + 1;
e = g;
i = d;
return e | 0
}
function wj(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;
d = i;
if ((c[a + 102876 >> 2] & 2 | 0) != 0) {
i =
d;
return
}
e = b + 124 | 0;
f = c[e >> 2] | 0;
if ((f | 0) != 0) {
g = a + 102992 | 0;
h = f;
do {
f = h;
h = c[h + 12 >> 2] | 0;
j = c[g >> 2] | 0;
if ((j | 0) == 0)
k = f + 4 | 0;
else {
l = f + 4 | 0;
gb[c[(c[j >> 2] | 0) + 8 >> 2] & 63](j, c[l >> 2] | 0);
k = l
}
xj(a, c[k >> 2] | 0);
c[e >> 2] = h
} while ((h | 0) != 0)
}
c[e >> 2] = 0;
e = b + 128 | 0;
h = c[e >> 2] | 0;
if ((h | 0) != 0) {
k = a + 102880 | 0;
g = h;
do {
h = g;
g = c[g + 12 >> 2] | 0;
Tj(k, c[h + 4 >> 2] | 0)
} while ((g | 0) != 0)
}
c[e >> 2] = 0;
e = b + 116 | 0;
g = c[e >> 2] | 0;
if ((g | 0) == 0)
m = b + 120 | 0;
else {
k = a + 102992 | 0;
h = a + 102880 | 0;
l = b + 120 | 0;
j = g;
do {
g = j;
j = c[j + 4 >> 2] | 0;
f = c[k >> 2] | 0;
if ((f | 0) != 0)
gb[c[(c[f >> 2] | 0) + 12 >> 2] & 63](f,
g);
pj(g, h);
nj(g, a);
Fm(a, g, 44);
c[e >> 2] = j;
c[l >> 2] = (c[l >> 2] | 0) + -1
} while ((j | 0) != 0);
m = l
}
c[e >> 2] = 0;
c[m >> 2] = 0;
m = b + 108 | 0;
e = c[m >> 2] | 0;
l = b + 112 | 0;
if ((e | 0) != 0)
c[e + 112 >> 2] = c[l >> 2];
e = c[l >> 2] | 0;
if ((e | 0) != 0)
c[e + 108 >> 2] = c[m >> 2];
m = a + 102960 | 0;
if ((c[m >> 2] | 0) == (b | 0))
c[m >> 2] = c[l >> 2];
l = a + 102972 | 0;
c[l >> 2] = (c[l >> 2] | 0) + -1;
Ij(b);
Fm(a, b, 168);
i = d;
return
}
function xj(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;
h = i;
if ((c[d + 102876 >> 2] & 2 | 0) != 0) {
i = h;
return
}
j = a[f + 61 >> 0] | 0;
k = f + 8 | 0;
l = c[k >> 2] | 0;
m = f + 12 | 0;
if ((l | 0) != 0)
c[l + 12 >> 2] =
c[m >> 2];
l = c[m >> 2] | 0;
if ((l | 0) != 0)
c[l + 8 >> 2] = c[k >> 2];
k = d + 102964 | 0;
if ((c[k >> 2] | 0) == (f | 0))
c[k >> 2] = c[m >> 2];
m = c[f + 48 >> 2] | 0;
k = c[f + 52 >> 2] | 0;
l = m + 4 | 0;
n = e[l >> 1] | 0;
if ((n & 2 | 0) == 0) {
b[l >> 1] = n | 2;
g[m + 160 >> 2] = 0
}
n = k + 4 | 0;
l = e[n >> 1] | 0;
if ((l & 2 | 0) == 0) {
b[n >> 1] = l | 2;
g[k + 160 >> 2] = 0
}
l = f + 24 | 0;
n = c[l >> 2] | 0;
o = f + 28 | 0;
if ((n | 0) != 0)
c[n + 12 >> 2] = c[o >> 2];
n = c[o >> 2] | 0;
if ((n | 0) != 0)
c[n + 8 >> 2] = c[l >> 2];
n = m + 124 | 0;
if ((f + 16 | 0) == (c[n >> 2] | 0))
c[n >> 2] = c[o >> 2];
c[l >> 2] = 0;
c[o >> 2] = 0;
o = f + 40 | 0;
l = c[o >> 2] | 0;
n = f + 44 | 0;
if ((l | 0) != 0)
c[l + 12 >> 2] = c[n >> 2];
l = c[n >> 2] | 0;
if ((l |
0) != 0)
c[l + 8 >> 2] = c[o >> 2];
l = k + 124 | 0;
if ((f + 32 | 0) == (c[l >> 2] | 0))
c[l >> 2] = c[n >> 2];
c[o >> 2] = 0;
c[n >> 2] = 0;
uh(f, d);
f = d + 102976 | 0;
c[f >> 2] = (c[f >> 2] | 0) + -1;
if (!(j << 24 >> 24 == 0)) {
i = h;
return
}
j = c[k + 128 >> 2] | 0;
if ((j | 0) == 0) {
i = h;
return
} else
p = j;
do {
if ((c[p >> 2] | 0) == (m | 0)) {
j = (c[p + 4 >> 2] | 0) + 4 | 0;
c[j >> 2] = c[j >> 2] | 8
}
p = c[p + 12 >> 2] | 0
} while ((p | 0) != 0);
i = h;
return
}
function yj(b, d) {
b = b | 0;
d = d | 0;
var e = 0,
f = 0,
g = 0,
h = 0,
j = 0,
k = 0,
l = 0,
m = 0,
n = 0,
o = 0,
p = 0;
e = i;
if ((c[b + 102876 >> 2] & 2 | 0) != 0) {
f = 0;
i = e;
return f | 0
}
g = th(d, b) | 0;
c[g + 8 >> 2] = 0;
h = b + 102964 | 0;
c[g + 12 >> 2] =
c[h >> 2];
j = c[h >> 2] | 0;
if ((j | 0) != 0)
c[j + 8 >> 2] = g;
c[h >> 2] = g;
h = b + 102976 | 0;
c[h >> 2] = (c[h >> 2] | 0) + 1;
h = g + 16 | 0;
c[g + 20 >> 2] = g;
b = g + 52 | 0;
c[h >> 2] = c[b >> 2];
c[g + 24 >> 2] = 0;
j = g + 48 | 0;
k = c[j >> 2] | 0;
l = k + 124 | 0;
c[g + 28 >> 2] = c[l >> 2];
m = c[l >> 2] | 0;
if ((m | 0) == 0)
n = k;
else {
c[m + 8 >> 2] = h;
n = c[j >> 2] | 0
}
c[n + 124 >> 2] = h;
h = g + 32 | 0;
c[g + 36 >> 2] = g;
c[h >> 2] = c[j >> 2];
c[g + 40 >> 2] = 0;
j = c[b >> 2] | 0;
n = j + 124 | 0;
c[g + 44 >> 2] = c[n >> 2];
m = c[n >> 2] | 0;
if ((m | 0) == 0)
o = j;
else {
c[m + 8 >> 2] = h;
o = c[b >> 2] | 0
}
c[o + 124 >> 2] = h;
h = c[d + 8 >> 2] | 0;
if ((a[d + 16 >> 0] | 0) != 0) {
f = g;
i = e;
return f | 0
}
o = c[(c[d + 12 >>
2] | 0) + 128 >> 2] | 0;
if ((o | 0) == 0) {
f = g;
i = e;
return f | 0
} else
p = o;
do {
if ((c[p >> 2] | 0) == (h | 0)) {
o = (c[p + 4 >> 2] | 0) + 4 | 0;
c[o >> 2] = c[o >> 2] | 8
}
p = c[p + 12 >> 2] | 0
} while ((p | 0) != 0);
f = g;
i = e;
return f | 0
}
function zj(a, b) {
a = a | 0;
b = b | 0;
var d = 0,
e = 0,
f = 0,
g = 0;
d = i;
if ((c[a + 102876 >> 2] & 2 | 0) != 0) {
e = 0;
i = d;
return e | 0
}
f = Em(a, 416) | 0;
if ((f | 0) == 0)
g = 0;
else {
rk(f, b, a);
g = f
}
c[g + 404 >> 2] = 0;
f = a + 102968 | 0;
c[g + 408 >> 2] = c[f >> 2];
a = c[f >> 2] | 0;
if ((a | 0) != 0)
c[a + 404 >> 2] = g;
c[f >> 2] = g;
e = g;
i = d;
return e | 0
}
function Aj(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;
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 | 0) != 0) {
o = n;
do {
n = o + 28 | 0;
p = o + 12 | 0;
c[n + 0 >> 2] = c[p + 0 >> 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;
mf(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 | 0) != 0) {
u = t;
do {
t = u + 4 | 0;
b[t >> 1] = b[t >> 1] & 65534;
u = c[u + 112 >> 2] | 0
} while ((u | 0) != 0)
}
u = c[d + 102940 >> 2] | 0;
if ((u | 0) != 0) {
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 | 0) != 0) {
u = t;
do {
a[u + 60 >> 0] = 0;
u = c[u + 12 >> 2] | 0
} while ((u | 0) != 0)
}
u = Ym(s, c[q >> 2] << 2) | 0;
q = c[m >> 2] | 0;
if ((q | 0) != 0) {
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 = 1;
while (1) {
H = q + -1 | 0;
I = c[u + (H << 2) >> 2] | 0;
c[I + 8 >> 2] = G;
J = c[t >> 2] | 0;
c[(c[x >> 2] | 0) + (J << 2) >> 2] = I;
c[t >> 2] = J + 1;
J = I + 4 | 0;
K = e[J >> 1] | 0;
if ((K & 2 | 0) == 0) {
b[J >> 1] = K | 2;
g[I + 160 >> 2] = 0
}
if ((c[I >> 2] | 0) != 0) {
K = c[I + 128 >> 2] | 0;
if ((K | 0) == 0)
L = H;
else {
J = K;
K = H;
while (1) {
M = c[J + 4 >> 2] | 0;
N = M + 4 | 0;
do if ((c[N >> 2] & 7 | 0) == 6 ? (a[(c[M + 48 >> 2] | 0) + 38 >> 0] | 0) == 0 : 0) {
if ((a[(c[M + 52 >> 2] | 0) + 38 >> 0] | 0) != 0) {
O = K;
break
}
P = c[v >> 2] | 0;
c[v >> 2] = P + 1;
c[(c[z >> 2] | 0) + (P << 2) >> 2] = M;
c[N >> 2] = c[N >> 2] | 1;
P = c[J >> 2] | 0;
Q =
P + 4 | 0;
R = b[Q >> 1] | 0;
if (!((R & 1) == 0)) {
O = K;
break
}
c[u + (K << 2) >> 2] = P;
b[Q >> 1] = R & 65535 | 1;
O = K + 1 | 0
} else
O = K;
while (0);
J = c[J + 12 >> 2] | 0;
if ((J | 0) == 0) {
L = O;
break
} else
K = O
}
}
K = c[I + 124 >> 2] | 0;
if ((K | 0) == 0)
S = L;
else {
J = K;
K = L;
while (1) {
N = J + 4 | 0;
M = c[N >> 2] | 0;
do if ((a[M + 60 >> 0] | 0) == 0 ? (R = c[J >> 2] | 0, Q = R + 4 | 0, P = b[Q >> 1] | 0, !((P & 32) == 0)) : 0) {
T = c[w >> 2] | 0;
c[w >> 2] = T + 1;
c[(c[y >> 2] | 0) + (T << 2) >> 2] = M;
a[(c[N >> 2] | 0) + 60 >> 0] = 1;
if (!((P & 1) == 0)) {
U = K;
break
}
c[u + (K << 2) >> 2] = R;
b[Q >> 1] = P & 65535 | 1;
U = K + 1 | 0
} else
U = K;
while (0);
J = c[J + 12 >> 2] | 0;
if ((J | 0) == 0) {
S = U;
break
} else
K =
U
}
}
} else
S = H;
if ((S | 0) <= 0)
break;
G = c[t >> 2] | 0;
q = S
}
of(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];
q = c[t >> 2] | 0;
if ((q | 0) > 0) {
G = c[x >> 2] | 0;
K = 0;
do {
J = c[G + (K << 2) >> 2] | 0;
if ((c[J >> 2] | 0) == 0) {
I = J + 4 | 0;
b[I >> 1] = b[I >> 1] & 65534
}
K = K + 1 | 0
} while ((K | 0) < (q | 0))
}
}
F = c[F + 112 >> 2] | 0
} while ((F | 0) != 0)
}
_m(s, u);
Km(l);
u = c[m >> 2] | 0;
if ((u | 0) == 0) {
Vj(r);
V = +Mm(l);
W = d + 103032 | 0;
g[W >> 2] = V;
nf(j);
i = h;
return
} else
X = u;
do {
if (!((b[X + 4 >> 1] & 1) == 0) ? (c[X >> 2] | 0) != 0 : 0)
Lj(X);
X = c[X + 112 >> 2] | 0
} while ((X |
0) != 0);
Vj(r);
V = +Mm(l);
W = d + 103032 | 0;
g[W >> 2] = V;
nf(j);
i = h;
return
}
function Bj(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,
Q = 0,
R = 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 = i;
i = i + 336 | 0;
j = h + 284 | 0;
l = h + 152 | 0;
m = h + 144 | 0;
n = h + 108 | 0;
o = h + 72 | 0;
p = h + 64 | 0;
q = h + 28 | 0;
r = h;
s = d + 102880 | 0;
t = d + 102952 | 0;
mf(j, 64, 32, 0, d + 76 | 0, c[t >> 2] | 0);
u = d + 103007 | 0;
if ((a[u >> 0] | 0) != 0) {
v = c[d + 102960 >> 2] | 0;
if ((v | 0) != 0) {
w = v;
do {
v = w + 4 | 0;
b[v >> 1] = b[v >> 1] & 65534;
g[w + 76 >> 2] = 0;
w = c[w + 112 >> 2] | 0
} while ((w | 0) != 0)
}
w = d + 102940 | 0;
v = c[w >> 2] | 0;
if ((v | 0) == 0)
x = w;
else {
y = v;
do {
v = y + 4 | 0;
c[v >> 2] = c[v >> 2] & -34;
c[y + 128 >> 2] = 0;
g[y + 132 >> 2] = 1;
y = c[y + 12 >> 2] | 0
} while ((y | 0) != 0);
x = w
}
} else
x = d + 102940 | 0;
w = j + 28 | 0;
y = j + 36 | 0;
v = j + 32 |
0;
z = j + 8 | 0;
A = j + 12 | 0;
B = p + 4 | 0;
C = j + 40 | 0;
D = j + 44 | 0;
E = r + 4 | 0;
F = r + 8 | 0;
G = r + 16 | 0;
H = f + 12 | 0;
I = r + 12 | 0;
J = f + 20 | 0;
K = r + 20 | 0;
L = r + 24 | 0;
M = d + 103006 | 0;
d = l + 16 | 0;
N = l + 20 | 0;
O = l + 24 | 0;
P = l + 44 | 0;
Q = l + 48 | 0;
R = l + 52 | 0;
U = l + 28 | 0;
V = l + 56 | 0;
W = l + 92 | 0;
X = l + 128 | 0;
Y = m + 4 | 0;
while (1) {
Z = c[x >> 2] | 0;
if ((Z | 0) == 0) {
_ = 28;
break
} else {
$ = Z;
aa = 1;
ba = 0
}
while (1) {
Z = $ + 4 | 0;
ca = c[Z >> 2] | 0;
do if ((ca & 4 | 0) != 0 ? (c[$ + 128 >> 2] | 0) <= 8 : 0) {
if ((ca & 32 | 0) == 0) {
da = c[$ + 48 >> 2] | 0;
ea = c[$ + 52 >> 2] | 0;
if ((a[da + 38 >> 0] | 0) != 0) {
fa = aa;
ga = ba;
break
}
if ((a[ea + 38 >> 0] | 0) != 0) {
fa = aa;
ga = ba;
break
}
ha = c[da + 8 >>
2] | 0;
ia = c[ea + 8 >> 2] | 0;
ja = c[ha >> 2] | 0;
ka = c[ia >> 2] | 0;
la = b[ha + 4 >> 1] | 0;
ma = b[ia + 4 >> 1] | 0;
if (!((la & 2) != 0 & (ja | 0) != 0 | (ma & 2) != 0 & (ka | 0) != 0)) {
fa = aa;
ga = ba;
break
}
if (!((la & 8) != 0 | (ja | 0) != 2 | ((ma & 8) != 0 | (ka | 0) != 2))) {
fa = aa;
ga = ba;
break
}
ka = ha + 44 | 0;
ma = ha + 76 | 0;
na = +g[ma >> 2];
ja = ia + 44 | 0;
la = ia + 76 | 0;
oa = +g[la >> 2];
if (!(na < oa))
if (oa < na) {
pa = (na - oa) / (1 - oa);
qa = ia + 52 | 0;
ra = +g[qa >> 2];
sa = ia + 56 | 0;
ta = +g[sa >> 2];
ua = pa * (+g[ia + 64 >> 2] - ta);
g[qa >> 2] = ra + pa * (+g[ia + 60 >> 2] - ra);
g[sa >> 2] = ta + ua;
sa = ia + 68 | 0;
ua = +g[sa >> 2];
g[sa >> 2] = ua + pa * (+g[ia + 72 >> 2] - ua);
g[la >>
2] = na;
va = na
} else
va = na;
else {
ua = (oa - na) / (1 - na);
la = ha + 52 | 0;
na = +g[la >> 2];
ia = ha + 56 | 0;
pa = +g[ia >> 2];
ta = ua * (+g[ha + 64 >> 2] - pa);
g[la >> 2] = na + ua * (+g[ha + 60 >> 2] - na);
g[ia >> 2] = pa + ta;
ia = ha + 68 | 0;
ta = +g[ia >> 2];
g[ia >> 2] = ta + ua * (+g[ha + 72 >> 2] - ta);
g[ma >> 2] = oa;
va = oa
}
ma = c[$ + 56 >> 2] | 0;
ha = c[$ + 60 >> 2] | 0;
c[d >> 2] = 0;
c[N >> 2] = 0;
g[O >> 2] = 0;
c[P >> 2] = 0;
c[Q >> 2] = 0;
g[R >> 2] = 0;
be(l, c[da + 12 >> 2] | 0, ma);
be(U, c[ea + 12 >> 2] | 0, ha);
wa = V + 0 | 0;
xa = ka + 0 | 0;
ya = wa + 36 | 0;
do {
c[wa >> 2] = c[xa >> 2];
wa = wa + 4 | 0;
xa = xa + 4 | 0
} while ((wa | 0) < (ya | 0));
wa = W + 0 | 0;
xa = ja + 0 | 0;
ya = wa + 36 | 0;
do {
c[wa >> 2] = c[xa >> 2];
wa = wa + 4 | 0;
xa = xa + 4 | 0
} while ((wa | 0) < (ya | 0));
g[X >> 2] = 1;
Zd(m, l);
if ((c[m >> 2] | 0) == 3) {
oa = va + (1 - va) * +g[Y >> 2];
za = oa < 1 ? oa : 1
} else
za = 1;
g[$ + 132 >> 2] = za;
c[Z >> 2] = c[Z >> 2] | 32;
Aa = za
} else
Aa = +g[$ + 132 >> 2];
if (Aa < aa) {
fa = Aa;
ga = $
} else {
fa = aa;
ga = ba
}
} else {
fa = aa;
ga = ba
}
while (0);
$ = c[$ + 12 >> 2] | 0;
if (($ | 0) == 0)
break;
else {
aa = fa;
ba = ga
}
}
if ((ga | 0) == 0 | fa > .9999988079071045) {
_ = 28;
break
}
Z = c[(c[ga + 48 >> 2] | 0) + 8 >> 2] | 0;
ca = c[(c[ga + 52 >> 2] | 0) + 8 >> 2] | 0;
ja = Z + 44 | 0;
wa = n + 0 | 0;
xa = ja + 0 | 0;
ya = wa + 36 | 0;
do {
c[wa >> 2] = c[xa >> 2];
wa = wa + 4 | 0;
xa = xa +
4 | 0
} while ((wa | 0) < (ya | 0));
ka = ca + 44 | 0;
wa = o + 0 | 0;
xa = ka + 0 | 0;
ya = wa + 36 | 0;
do {
c[wa >> 2] = c[xa >> 2];
wa = wa + 4 | 0;
xa = xa + 4 | 0
} while ((wa | 0) < (ya | 0));
ha = Z + 76 | 0;
oa = +g[ha >> 2];
ta = (fa - oa) / (1 - oa);
ea = Z + 60 | 0;
ma = Z + 52 | 0;
oa = +g[ma >> 2];
da = Z + 64 | 0;
ia = Z + 56 | 0;
ua = +g[ia >> 2];
pa = ta * (+g[da >> 2] - ua);
g[ma >> 2] = oa + ta * (+g[ea >> 2] - oa);
g[ia >> 2] = ua + pa;
ia = Z + 72 | 0;
ma = Z + 68 | 0;
pa = +g[ma >> 2];
ua = pa + ta * (+g[ia >> 2] - pa);
g[ma >> 2] = ua;
g[ha >> 2] = fa;
ha = Z + 52 | 0;
ma = c[ha >> 2] | 0;
la = c[ha + 4 >> 2] | 0;
ha = Z + 60 | 0;
c[ha >> 2] = ma;
c[ha + 4 >> 2] = la;
g[ia >> 2] = ua;
pa = +T(+ua);
ha = Z + 20 | 0;
g[ha >> 2] = pa;
ta = +S(+ua);
sa = Z + 24 | 0;
g[sa >> 2] = ta;
qa = Z + 12 | 0;
Ba = Z + 44 | 0;
ua = +g[Ba >> 2];
Ca = Z + 48 | 0;
oa = +g[Ca >> 2];
na = (c[k >> 2] = ma, +g[k >> 2]) - (ta * ua - pa * oa);
ra = (c[k >> 2] = la, +g[k >> 2]) - (pa * ua + ta * oa);
oa = +na;
na = +ra;
la = qa;
g[la >> 2] = oa;
g[la + 4 >> 2] = na;
la = ca + 76 | 0;
na = +g[la >> 2];
oa = (fa - na) / (1 - na);
ma = ca + 60 | 0;
Da = ca + 52 | 0;
na = +g[Da >> 2];
Ea = ca + 64 | 0;
Fa = ca + 56 | 0;
ra = +g[Fa >> 2];
ta = oa * (+g[Ea >> 2] - ra);
g[Da >> 2] = na + oa * (+g[ma >> 2] - na);
g[Fa >> 2] = ra + ta;
Fa = ca + 72 | 0;
Da = ca + 68 | 0;
ta = +g[Da >> 2];
ra = ta + oa * (+g[Fa >> 2] - ta);
g[Da >> 2] = ra;
g[la >> 2] = fa;
la = ca + 52 | 0;
Da = c[la >> 2] | 0;
Ga =
c[la + 4 >> 2] | 0;
la = ca + 60 | 0;
c[la >> 2] = Da;
c[la + 4 >> 2] = Ga;
g[Fa >> 2] = ra;
ta = +T(+ra);
la = ca + 20 | 0;
g[la >> 2] = ta;
oa = +S(+ra);
Ha = ca + 24 | 0;
g[Ha >> 2] = oa;
Ia = ca + 12 | 0;
Ja = ca + 44 | 0;
ra = +g[Ja >> 2];
Ka = ca + 48 | 0;
na = +g[Ka >> 2];
ua = (c[k >> 2] = Da, +g[k >> 2]) - (oa * ra - ta * na);
pa = (c[k >> 2] = Ga, +g[k >> 2]) - (ta * ra + oa * na);
na = +ua;
ua = +pa;
Ga = Ia;
g[Ga >> 2] = na;
g[Ga + 4 >> 2] = ua;
xi(ga, c[t >> 2] | 0);
Ga = ga + 4 | 0;
Da = c[Ga >> 2] | 0;
c[Ga >> 2] = Da & -33;
La = ga + 128 | 0;
c[La >> 2] = (c[La >> 2] | 0) + 1;
if ((Da & 6 | 0) != 6) {
c[Ga >> 2] = Da & -37;
wa = ja + 0 | 0;
xa = n + 0 | 0;
ya = wa + 36 | 0;
do {
c[wa >> 2] = c[xa >> 2];
wa = wa + 4 | 0;
xa =
xa + 4 | 0
} while ((wa | 0) < (ya | 0));
wa = ka + 0 | 0;
xa = o + 0 | 0;
ya = wa + 36 | 0;
do {
c[wa >> 2] = c[xa >> 2];
wa = wa + 4 | 0;
xa = xa + 4 | 0
} while ((wa | 0) < (ya | 0));
ua = +g[ia >> 2];
na = +T(+ua);
g[ha >> 2] = na;
pa = +S(+ua);
g[sa >> 2] = pa;
ua = +g[Ba >> 2];
oa = +g[Ca >> 2];
ra = +(+g[ea >> 2] - (pa * ua - na * oa));
ta = +(+g[da >> 2] - (na * ua + pa * oa));
ka = qa;
g[ka >> 2] = ra;
g[ka + 4 >> 2] = ta;
ta = +g[Fa >> 2];
ra = +T(+ta);
g[la >> 2] = ra;
oa = +S(+ta);
g[Ha >> 2] = oa;
ta = +g[Ja >> 2];
pa = +g[Ka >> 2];
ua = +(+g[ma >> 2] - (oa * ta - ra * pa));
na = +(+g[Ea >> 2] - (ra * ta + oa * pa));
ka = Ia;
g[ka >> 2] = ua;
g[ka + 4 >> 2] = na;
continue
}
ka = Z + 4 | 0;
ja = b[ka >>
1] | 0;
Da = ja & 65535;
if ((Da & 2 | 0) == 0) {
La = (Da | 2) & 65535;
b[ka >> 1] = La;
g[Z + 160 >> 2] = 0;
Ma = La
} else
Ma = ja;
ja = ca + 4 | 0;
La = e[ja >> 1] | 0;
if ((La & 2 | 0) == 0) {
b[ja >> 1] = La | 2;
g[ca + 160 >> 2] = 0;
Na = b[ka >> 1] | 0
} else
Na = Ma;
c[w >> 2] = 0;
c[y >> 2] = 0;
c[v >> 2] = 0;
La = Z + 8 | 0;
c[La >> 2] = 0;
Da = c[w >> 2] | 0;
c[(c[z >> 2] | 0) + (Da << 2) >> 2] = Z;
Oa = Da + 1 | 0;
c[w >> 2] = Oa;
Da = ca + 8 | 0;
c[Da >> 2] = Oa;
Oa = c[w >> 2] | 0;
c[(c[z >> 2] | 0) + (Oa << 2) >> 2] = ca;
c[w >> 2] = Oa + 1;
Oa = c[y >> 2] | 0;
c[y >> 2] = Oa + 1;
c[(c[A >> 2] | 0) + (Oa << 2) >> 2] = ga;
b[ka >> 1] = Na & 65535 | 1;
b[ja >> 1] = e[ja >> 1] | 1;
c[Ga >> 2] = c[Ga >> 2] | 1;
c[p >> 2] = Z;
c[B >>
2] = ca;
ja = Z;
ka = 1;
while (1) {
a:
do if ((c[ja >> 2] | 0) == 2 ? (Oa = c[ja + 128 >> 2] | 0, (Oa | 0) != 0) : 0) {
Pa = ja + 4 | 0;
Qa = Oa;
do {
if ((c[w >> 2] | 0) == (c[C >> 2] | 0))
break a;
if ((c[y >> 2] | 0) == (c[D >> 2] | 0))
break a;
Oa = c[Qa + 4 >> 2] | 0;
Ra = Oa + 4 | 0;
do if ((c[Ra >> 2] & 1 | 0) == 0) {
Sa = c[Qa >> 2] | 0;
if (((c[Sa >> 2] | 0) == 2 ? (b[Pa >> 1] & 8) == 0 : 0) ? (b[Sa + 4 >> 1] & 8) == 0 : 0)
break;
if ((a[(c[Oa + 48 >> 2] | 0) + 38 >> 0] | 0) == 0 ? (a[(c[Oa + 52 >> 2] | 0) + 38 >> 0] | 0) == 0 : 0) {
Ta = Sa + 44 | 0;
wa = q + 0 | 0;
xa = Ta + 0 | 0;
ya = wa + 36 | 0;
do {
c[wa >> 2] = c[xa >> 2];
wa = wa + 4 | 0;
xa = xa + 4 | 0
} while ((wa | 0) < (ya | 0));
Ua = Sa + 4 | 0;
if ((b[Ua >> 1] & 1) ==
0) {
Va = Sa + 76 | 0;
na = +g[Va >> 2];
ua = (fa - na) / (1 - na);
Wa = Sa + 52 | 0;
na = +g[Wa >> 2];
Xa = Sa + 56 | 0;
pa = +g[Xa >> 2];
oa = ua * (+g[Sa + 64 >> 2] - pa);
g[Wa >> 2] = na + ua * (+g[Sa + 60 >> 2] - na);
g[Xa >> 2] = pa + oa;
Xa = Sa + 72 | 0;
Wa = Sa + 68 | 0;
oa = +g[Wa >> 2];
pa = oa + ua * (+g[Xa >> 2] - oa);
g[Wa >> 2] = pa;
g[Va >> 2] = fa;
Va = Sa + 52 | 0;
Wa = c[Va >> 2] | 0;
Ya = c[Va + 4 >> 2] | 0;
Va = Sa + 60 | 0;
c[Va >> 2] = Wa;
c[Va + 4 >> 2] = Ya;
g[Xa >> 2] = pa;
oa = +T(+pa);
g[Sa + 20 >> 2] = oa;
ua = +S(+pa);
g[Sa + 24 >> 2] = ua;
pa = +g[Sa + 44 >> 2];
na = +g[Sa + 48 >> 2];
ta = (c[k >> 2] = Wa, +g[k >> 2]) - (ua * pa - oa * na);
ra = (c[k >> 2] = Ya, +g[k >> 2]) - (oa * pa + ua * na);
na =
+ta;
ta = +ra;
Ya = Sa + 12 | 0;
g[Ya >> 2] = na;
g[Ya + 4 >> 2] = ta
}
xi(Oa, c[t >> 2] | 0);
Ya = c[Ra >> 2] | 0;
if ((Ya & 4 | 0) == 0) {
wa = Ta + 0 | 0;
xa = q + 0 | 0;
ya = wa + 36 | 0;
do {
c[wa >> 2] = c[xa >> 2];
wa = wa + 4 | 0;
xa = xa + 4 | 0
} while ((wa | 0) < (ya | 0));
ta = +g[Sa + 72 >> 2];
na = +T(+ta);
g[Sa + 20 >> 2] = na;
ra = +S(+ta);
g[Sa + 24 >> 2] = ra;
ta = +g[Sa + 44 >> 2];
ua = +g[Sa + 48 >> 2];
pa = +(+g[Sa + 60 >> 2] - (ra * ta - na * ua));
oa = +(+g[Sa + 64 >> 2] - (na * ta + ra * ua));
Wa = Sa + 12 | 0;
g[Wa >> 2] = pa;
g[Wa + 4 >> 2] = oa;
break
}
if ((Ya & 2 | 0) == 0) {
wa = Ta + 0 | 0;
xa = q + 0 | 0;
ya = wa + 36 | 0;
do {
c[wa >> 2] = c[xa >> 2];
wa = wa + 4 | 0;
xa = xa + 4 | 0
} while ((wa | 0) < (ya | 0));
oa = +g[Sa + 72 >> 2];
pa = +T(+oa);
g[Sa + 20 >> 2] = pa;
ua = +S(+oa);
g[Sa + 24 >> 2] = ua;
oa = +g[Sa + 44 >> 2];
ra = +g[Sa + 48 >> 2];
ta = +(+g[Sa + 60 >> 2] - (ua * oa - pa * ra));
na = +(+g[Sa + 64 >> 2] - (pa * oa + ua * ra));
Ta = Sa + 12 | 0;
g[Ta >> 2] = ta;
g[Ta + 4 >> 2] = na;
break
}
c[Ra >> 2] = Ya | 1;
Ta = c[y >> 2] | 0;
c[y >> 2] = Ta + 1;
c[(c[A >> 2] | 0) + (Ta << 2) >> 2] = Oa;
Ta = e[Ua >> 1] | 0;
if ((Ta & 1 | 0) != 0)
break;
b[Ua >> 1] = Ta | 1;
do if ((c[Sa >> 2] | 0) != 0) {
if ((Ta & 2 | 0) != 0)
break;
b[Ua >> 1] = Ta | 3;
g[Sa + 160 >> 2] = 0
}
while (0);
c[Sa + 8 >> 2] = c[w >> 2];
Ta = c[w >> 2] | 0;
c[(c[z >> 2] | 0) + (Ta << 2) >> 2] = Sa;
c[w >> 2] = Ta + 1
}
}
while (0);
Qa = c[Qa +
12 >> 2] | 0
} while ((Qa | 0) != 0)
}
while (0);
if ((ka | 0) >= 2)
break;
ja = c[p + (ka << 2) >> 2] | 0;
ka = ka + 1 | 0
}
na = (1 - fa) * +g[f >> 2];
g[r >> 2] = na;
g[E >> 2] = 1 / na;
g[F >> 2] = 1;
c[G >> 2] = 20;
c[I >> 2] = c[H >> 2];
c[K >> 2] = c[J >> 2];
a[L >> 0] = 0;
pf(j, r, c[La >> 2] | 0, c[Da >> 2] | 0);
ka = c[w >> 2] | 0;
if ((ka | 0) > 0) {
ja = ka;
ka = 0;
while (1) {
Z = c[(c[z >> 2] | 0) + (ka << 2) >> 2] | 0;
ca = Z + 4 | 0;
b[ca >> 1] = b[ca >> 1] & 65534;
if ((c[Z >> 2] | 0) == 2) {
Lj(Z);
ca = c[Z + 128 >> 2] | 0;
if ((ca | 0) != 0) {
Z = ca;
do {
ca = (c[Z + 4 >> 2] | 0) + 4 | 0;
c[ca >> 2] = c[ca >> 2] & -34;
Z = c[Z + 12 >> 2] | 0
} while ((Z | 0) != 0)
}
Za = c[w >> 2] | 0
} else
Za = ja;
ka = ka + 1 | 0;
if ((ka | 0) >= (Za | 0))
break;
else
ja = Za
}
}
Vj(s);
if ((a[M >> 0] | 0) != 0) {
_ = 68;
break
}
}
if ((_ | 0) == 28) {
a[u >> 0] = 1;
nf(j);
i = h;
return
} else if ((_ | 0) == 68) {
a[u >> 0] = 0;
nf(j);
i = h;
return
}
}
function Cj(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;
Km(k);
p = b + 102876 | 0;
q = c[p >> 2] | 0;
if ((q & 1 | 0) == 0)
r = q;
else {
Vj(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;
if (d > 0)
g[l + 4 >> 2] =
1 / d;
else
g[l + 4 >> 2] = 0;
h = b + 103E3 | 0;
g[l + 8 >> 2] = +g[h >> 2] * d;
a[l + 24 >> 0] = a[b + 103004 >> 0] | 0;
Km(m);
Uj(b + 102880 | 0);
g[b + 103012 >> 2] = +Mm(m);
if ((a[b + 103007 >> 0] | 0) != 0 ? +g[l >> 2] > 0 : 0) {
Km(n);
m = c[b + 102968 >> 2] | 0;
if ((m | 0) != 0) {
f = m;
do {
bl(f, l);
f = c[f + 408 >> 2] | 0
} while ((f | 0) != 0)
}
Aj(b, l);
g[b + 103016 >> 2] = +Mm(n)
}
if ((a[b + 103005 >> 0] | 0) != 0) {
d = +g[l >> 2];
if (d > 0) {
Km(o);
Bj(b, l);
g[b + 103036 >> 2] = +Mm(o);
s = 14
} else
t = d
} else
s = 14;
if ((s | 0) == 14)
t = +g[l >> 2];
if (t > 0)
g[h >> 2] = +g[l + 4 >> 2];
l = c[p >> 2] | 0;
if ((l & 4 | 0) == 0) {
u = l & -3;
c[p >> 2] = u;
v = +Mm(k);
w = b + 103008 | 0;
g[w >>
2] = v;
i = j;
return
}
h = c[b + 102960 >> 2] | 0;
if ((h | 0) == 0) {
u = l & -3;
c[p >> 2] = u;
v = +Mm(k);
w = b + 103008 | 0;
g[w >> 2] = v;
i = j;
return
} else
x = h;
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 = l & -3;
c[p >> 2] = u;
v = +Mm(k);
w = b + 103008 | 0;
g[w >> 2] = v;
i = j;
return
}
function Dj(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;
Gj(g, f, d);
f = c[a + 102968 >> 2] | 0;
if ((f | 0) == 0) {
i = e;
return
}
a = f;
do {
if (nb[c[(c[b >> 2] | 0) + 16 >> 2] & 31](b, a) | 0)
pl(a, b, d);
a = c[a + 408 >> 2] | 0
} while ((a | 0) != 0);
i = e;
return
}
function Ej(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;
Fj(k, h, j);
j = c[a + 102968 >> 2] | 0;
if ((j | 0) == 0) {
i = f;
return
}
a = j;
do {
if (nb[c[(c[b >> 2] | 0) + 16 >> 2] & 31](b, a) | 0)
ql(a, b, d, e);
a = c[a + 408 >> 2] | 0
} while ((a | 0) != 0);
i = f;
return
}
function Fj(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,
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,
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 = i;
i = i + 1088 | 0;
f = e + 1064 | 0;
h = e + 1056 | 0;
j = e + 20 | 0;
k = e;
l = d;
m = +g[l >> 2];
n = +g[l + 4 >> 2];
l = d + 8 | 0;
o = l;
p = +g[o >> 2];
q = p - m;
p = +g[o + 4 >> 2] - n;
r = +Q(+(q * q + p * p));
if (r < 1.1920928955078125E-7) {
s = p;
t = q
} else {
u = 1 / r;
s = p * u;
t = q * u
}
u = -s;
r = s < -0 ? u : s;
if (t > 0)
v = t;
else
v = -t;
s = +g[d + 16 >> 2];
w = m + q * s;
x = n + p * s;
o = j + 4 | 0;
c[j >> 2] = o;
y = j + 1028 |
0;
c[y >> 2] = 0;
z = j + 1032 | 0;
c[z >> 2] = 256;
A = c[j >> 2] | 0;
c[A + (c[y >> 2] << 2) >> 2] = c[a >> 2];
B = c[y >> 2] | 0;
C = B + 1 | 0;
c[y >> 2] = C;
a:
do if ((B | 0) > -1) {
D = a + 4 | 0;
E = k + 8 | 0;
F = k + 16 | 0;
G = f + 8 | 0;
H = k + 4 | 0;
I = k + 8 | 0;
J = k + 12 | 0;
K = h + 4 | 0;
L = b + 4 | 0;
M = C;
N = n < x ? n : x;
O = m < w ? m : w;
P = n > x ? n : x;
R = m > w ? m : w;
S = A;
T = s;
while (1) {
U = M;
V = S;
while (1) {
W = U + -1 | 0;
c[y >> 2] = W;
X = c[V + (W << 2) >> 2] | 0;
if ((X | 0) == -1) {
Y = W;
Z = V
} else {
_ = c[D >> 2] | 0;
$ = +g[_ + (X * 36 | 0) + 8 >> 2];
aa = +g[_ + (X * 36 | 0) + 12 >> 2];
ba = +g[_ + (X * 36 | 0) >> 2];
ca = +g[_ + (X * 36 | 0) + 4 >> 2];
if (O - $ > 0 | N - aa > 0 | ba - R > 0 | ca - P > 0) {
da = N;
ea = O;
fa = P;
ga = R;
ha = T;
break
}
ia =
(m - ($ + ba) * .5) * u + t * (n - (aa + ca) * .5);
if (ia > 0)
ja = ia;
else
ja = -ia;
if (ja - (r * ($ - ba) * .5 + v * (aa - ca) * .5) > 0) {
da = N;
ea = O;
fa = P;
ga = R;
ha = T;
break
}
ka = _ + (X * 36 | 0) + 24 | 0;
if ((c[ka >> 2] | 0) == -1) {
la = 17;
break
}
if ((W | 0) == (c[z >> 2] | 0) ? (c[z >> 2] = W << 1, ma = Pm(W << 3) | 0, c[j >> 2] = ma, An(ma | 0, V | 0, c[y >> 2] << 2 | 0) | 0, (V | 0) != (o | 0)) : 0)
Qm(V);
ma = c[j >> 2] | 0;
c[ma + (c[y >> 2] << 2) >> 2] = c[ka >> 2];
ka = (c[y >> 2] | 0) + 1 | 0;
c[y >> 2] = ka;
W = _ + (X * 36 | 0) + 28 | 0;
if ((ka | 0) == (c[z >> 2] | 0) ? (c[z >> 2] = ka << 1, _ = Pm(ka << 3) | 0, c[j >> 2] = _, An(_ | 0, ma | 0, c[y >> 2] << 2 | 0) | 0, (ma | 0) != (o | 0)) : 0)
Qm(ma);
ma = c[j >>
2] | 0;
c[ma + (c[y >> 2] << 2) >> 2] = c[W >> 2];
W = (c[y >> 2] | 0) + 1 | 0;
c[y >> 2] = W;
Y = W;
Z = ma
}
if ((Y | 0) > 0) {
U = Y;
V = Z
} else
break a
}
if ((la | 0) == 17) {
la = 0;
c[k + 0 >> 2] = 0;
c[k + 4 >> 2] = 0;
c[k + 8 >> 2] = 0;
c[k + 12 >> 2] = 0;
V = d;
U = c[V + 4 >> 2] | 0;
ma = k;
c[ma >> 2] = c[V >> 2];
c[ma + 4 >> 2] = U;
U = l;
ma = c[U + 4 >> 2] | 0;
V = E;
c[V >> 2] = c[U >> 2];
c[V + 4 >> 2] = ma;
g[F >> 2] = T;
ma = c[(c[(c[b >> 2] | 0) + 4 >> 2] | 0) + (X * 36 | 0) + 16 >> 2] | 0;
V = c[ma + 16 >> 2] | 0;
U = c[V + 12 >> 2] | 0;
if (ob[c[(c[U >> 2] | 0) + 24 >> 2] & 15](U, f, k, (c[V + 8 >> 2] | 0) + 12 | 0, c[ma + 20 >> 2] | 0) | 0) {
ca = +g[G >> 2];
aa = 1 - ca;
ba = aa * +g[H >> 2] + ca * +g[J >> 2];
g[h >> 2] = +g[k >>
2] * aa + ca * +g[I >> 2];
g[K >> 2] = ba;
ma = c[L >> 2] | 0;
na = +fb[c[(c[ma >> 2] | 0) + 8 >> 2] & 1](ma, V, h, f, ca)
} else
na = +g[F >> 2];
if (na == 0)
break a;
if (na > 0) {
ca = m + q * na;
ba = n + p * na;
da = n < ba ? n : ba;
ea = m < ca ? m : ca;
fa = n > ba ? n : ba;
ga = m > ca ? m : ca;
ha = na
} else {
da = N;
ea = O;
fa = P;
ga = R;
ha = T
}
}
V = c[y >> 2] | 0;
if ((V | 0) <= 0)
break a;
M = V;
N = da;
O = ea;
P = fa;
R = ga;
S = c[j >> 2] | 0;
T = ha
}
}
while (0);
y = c[j >> 2] | 0;
if ((y | 0) == (o | 0)) {
i = e;
return
}
Qm(y);
c[j >> 2] = 0;
i = e;
return
}
function Gj(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,
B = 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;
l = c[f >> 2] | 0;
c[l + (c[j >> 2] << 2) >> 2] = c[a >> 2];
m = c[j >> 2] | 0;
n = m + 1 | 0;
c[j >> 2] = n;
a:
do if ((m | 0) > -1) {
o = a + 4 | 0;
p = d + 4 | 0;
q = d + 8 | 0;
r = d + 12 | 0;
s = b + 4 | 0;
t = n;
u = l;
while (1) {
v = t + -1 | 0;
c[j >> 2] = v;
w = c[u + (v << 2) >> 2] | 0;
do if (!((w | 0) == -1) ? (x = c[o >> 2] | 0, !((+g[d >> 2] - +g[x + (w * 36 | 0) + 8 >> 2] > 0 ? 1 : +g[p >> 2] - +g[x + (w * 36 | 0) + 12 >> 2] > 0) | +g[x + (w * 36 | 0) >> 2] - +g[q >> 2] > 0 | +g[x + (w * 36 | 0) + 4 >> 2] - +g[r >> 2] > 0)) : 0) {
y = x + (w * 36 | 0) + 24 | 0;
if ((c[y >> 2] | 0) == -1) {
z = c[s >> 2] | 0;
if (!(nb[c[(c[z >>
2] | 0) + 8 >> 2] & 31](z, c[(c[(c[(c[b >> 2] | 0) + 4 >> 2] | 0) + (w * 36 | 0) + 16 >> 2] | 0) + 16 >> 2] | 0) | 0))
break a;
A = c[j >> 2] | 0;
break
}
if ((v | 0) == (c[k >> 2] | 0) ? (c[k >> 2] = v << 1, z = Pm(v << 3) | 0, c[f >> 2] = z, An(z | 0, u | 0, c[j >> 2] << 2 | 0) | 0, (u | 0) != (h | 0)) : 0)
Qm(u);
z = c[f >> 2] | 0;
c[z + (c[j >> 2] << 2) >> 2] = c[y >> 2];
y = (c[j >> 2] | 0) + 1 | 0;
c[j >> 2] = y;
B = x + (w * 36 | 0) + 28 | 0;
if ((y | 0) == (c[k >> 2] | 0) ? (c[k >> 2] = y << 1, x = Pm(y << 3) | 0, c[f >> 2] = x, An(x | 0, z | 0, c[j >> 2] << 2 | 0) | 0, (z | 0) != (h | 0)) : 0)
Qm(z);
c[(c[f >> 2] | 0) + (c[j >> 2] << 2) >> 2] = c[B >> 2];
B = (c[j >> 2] | 0) + 1 | 0;
c[j >> 2] = B;
A = B
} else
A = v;
while (0);
if ((A |
0) <= 0)
break a;
t = A;
u = c[f >> 2] | 0
}
}
while (0);
A = c[f >> 2] | 0;
if ((A | 0) == (h | 0)) {
i = e;
return
}
Qm(A);
c[f >> 2] = 0;
i = e;
return
}
function Hj(d, e, f) {
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;
h = i;
j = d + 12 | 0;
k = d + 28 | 0;
l = d + 80 | 0;
m = d + 4 | 0;
n = (a[e + 39 >> 0] | 0) == 0 ? 0 : 8;
b[m >> 1] = n;
if ((a[e + 38 >> 0] | 0) == 0)
o = n;
else {
p = (n & 65535 | 16) & 65535;
b[m >> 1] = p;
o = p
}
if ((a[e + 36 >> 0] | 0) == 0)
q = o;
else {
p = (o & 65535 | 4) & 65535;
b[m >> 1] = p;
q = p
}
if ((a[e + 37 >> 0] | 0) == 0)
r = q;
else {
p = (q & 65535 | 2) & 65535;
b[m >> 1] = p;
r = p
}
if ((a[e + 40 >> 0] |
0) != 0)
b[m >> 1] = r & 65535 | 32;
c[d + 104 >> 2] = f;
f = e + 4 | 0;
r = c[f >> 2] | 0;
m = c[f + 4 >> 2] | 0;
f = j;
c[f >> 2] = r;
c[f + 4 >> 2] = m;
f = e + 12 | 0;
s = +g[f >> 2];
g[d + 20 >> 2] = +T(+s);
g[d + 24 >> 2] = +S(+s);
c[k + 0 >> 2] = c[j + 0 >> 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];
g[d + 44 >> 2] = 0;
g[d + 48 >> 2] = 0;
j = d + 52 | 0;
c[j >> 2] = r;
c[j + 4 >> 2] = m;
j = d + 60 | 0;
c[j >> 2] = r;
c[j + 4 >> 2] = m;
g[d + 68 >> 2] = +g[f >> 2];
g[d + 72 >> 2] = +g[f >> 2];
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;
f = e + 16 | 0;
m = c[f + 4 >> 2] | 0;
j = l;
c[j >> 2] = c[f >> 2];
c[j + 4 >> 2] = m;
g[d + 88 >> 2] = +g[e +
24 >> 2];
g[d + 148 >> 2] = +g[e + 28 >> 2];
g[d + 152 >> 2] = +g[e + 32 >> 2];
g[d + 156 >> 2] = +g[e + 48 >> 2];
g[d + 92 >> 2] = 0;
g[d + 96 >> 2] = 0;
g[d + 100 >> 2] = 0;
g[d + 160 >> 2] = 0;
m = c[e >> 2] | 0;
c[d >> 2] = m;
j = d + 132 | 0;
if ((m | 0) == 2) {
g[j >> 2] = 1;
g[d + 136 >> 2] = 1;
t = d + 140 | 0;
g[t >> 2] = 0;
u = d + 144 | 0;
g[u >> 2] = 0;
v = e + 44 | 0;
w = c[v >> 2] | 0;
x = d + 164 | 0;
c[x >> 2] = w;
y = d + 116 | 0;
c[y >> 2] = 0;
z = d + 120 | 0;
c[z >> 2] = 0;
i = h;
return
} else {
g[j >> 2] = 0;
g[d + 136 >> 2] = 0;
t = d + 140 | 0;
g[t >> 2] = 0;
u = d + 144 | 0;
g[u >> 2] = 0;
v = e + 44 | 0;
w = c[v >> 2] | 0;
x = d + 164 | 0;
c[x >> 2] = w;
y = d + 116 | 0;
c[y >> 2] = 0;
z = d + 120 | 0;
c[z >> 2] = 0;
i = h;
return
}
}
function Ij(a) {
a =
a | 0;
return
}
function Jj(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 | 0) != 0) {
i = f;
return
}
if ((c[a >> 2] | 0) == (d | 0)) {
i = f;
return
}
c[a >> 2] = d;
Kj(a);
if ((c[a >> 2] | 0) == 0 ? (g[a + 80 >> 2] = 0, g[a + 84 >> 2] = 0, g[a + 88 >> 2] = 0, l = +g[a + 72 >> 2], g[a + 68 >> 2] = l, d = a + 60 | 0, m = c[d >> 2] | 0, n = c[d + 4 >> 2] | 0, d = a + 52 | 0, c[d >> 2] = m, c[d + 4 >> 2] = n, o = +T(+l), g[h + 8 >> 2] = o, p = +S(+l), g[h + 12 >> 2] = p, l = +g[a + 44 >> 2], q = +g[a + 48 >> 2], r = (c[k >> 2] = m, +g[k >> 2]) - (p * l - o * q), s = (c[k >> 2] = n, +g[k >> 2]) - (o *
l + p * q), q = +r, r = +s, n = h, g[n >> 2] = q, g[n + 4 >> 2] = r, n = (c[j >> 2] | 0) + 102880 | 0, m = c[a + 116 >> 2] | 0, (m | 0) != 0) : 0) {
d = a + 12 | 0;
t = m;
do {
qj(t, n, h, d);
t = c[t + 4 >> 2] | 0
} while ((t | 0) != 0)
}
t = a + 4 | 0;
d = e[t >> 1] | 0;
if ((d & 2 | 0) == 0) {
b[t >> 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;
t = c[d >> 2] | 0;
if ((t | 0) != 0) {
h = t;
do {
t = h;
h = c[h + 12 >> 2] | 0;
Tj((c[j >> 2] | 0) + 102880 | 0, c[t + 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 | 0) == 0) {
i = f;
return
} else
u = j;
do {
j = c[u + 28 >> 2] | 0;
if ((j | 0) > 0) {
a = u + 24 | 0;
h = 0;
do {
Re(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 Kj(a) {
a = a | 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 + 16 | 0;
e = d;
f = a + 132 | 0;
h = a + 136 | 0;
j = a + 140 | 0;
k = a + 144 | 0;
l = a + 44 | 0;
g[l >> 2] = 0;
g[a + 48 >> 2] = 0;
c[f + 0 >> 2] = 0;
c[f + 4 >> 2] = 0;
c[f + 8 >> 2] = 0;
c[f + 12 >> 2] = 0;
if ((c[a >> 2] | 0) >>> 0 < 2) {
m = a + 12 | 0;
n = c[m >> 2] | 0;
o = c[m + 4 >> 2] | 0;
m = a + 52 | 0;
c[m >> 2] = n;
c[m + 4 >> 2] = o;
m = a + 60 | 0;
c[m >> 2] = n;
c[m + 4 >> 2] = o;
g[a + 68 >> 2] = +g[a + 72 >> 2];
i = d;
return
}
o = 8784;
p = +g[o >> 2];
q = +g[o + 4 >> 2];
o = c[a + 116 >> 2] | 0;
if ((o | 0) != 0) {
m = e + 4 | 0;
n = e + 8 | 0;
r = e + 12 | 0;
s = 0;
t = 0;
u = p;
v = q;
w = o;
while (1) {
x = +g[w >> 2];
if (x == 0) {
y = s;
z = t;
A = u;
B = v
} else {
o = c[w + 12 >> 2] | 0;
kb[c[(c[o >> 2] | 0) + 32 >> 2] & 31](o, e, x);
x = +g[e >> 2];
C = x + +g[f >> 2];
g[f >> 2] = C;
D = u + x * +g[m >> 2];
E = v + x * +g[n >> 2];
x = +g[r >> 2] + +g[j >> 2];
g[j >> 2] = x;
y = x;
z = C;
A = D;
B = E
}
w = c[w + 4 >> 2] | 0;
if ((w | 0) == 0)
break;
else {
s = y;
t = z;
u = A;
v = B
}
}
if (z > 0) {
v = 1 / z;
g[h >> 2] = v;
F = y;
G = A * v;
H = B * v;
I = z
} else {
J = B;
K = A;
L = y;
M = 10
}
} else {
J =
q;
K = p;
L = 0;
M = 10
}
if ((M | 0) == 10) {
g[f >> 2] = 1;
g[h >> 2] = 1;
F = L;
G = K;
H = J;
I = 1
}
if (F > 0 ? (b[a + 4 >> 1] & 16) == 0 : 0) {
J = F - (H * H + G * G) * I;
g[j >> 2] = J;
N = 1 / J
} else {
g[j >> 2] = 0;
N = 0
}
g[k >> 2] = N;
k = a + 60 | 0;
j = k;
N = +g[j >> 2];
J = +g[j + 4 >> 2];
I = +G;
F = +H;
j = l;
g[j >> 2] = I;
g[j + 4 >> 2] = F;
F = +g[a + 24 >> 2];
I = +g[a + 20 >> 2];
K = +g[a + 12 >> 2] + (F * G - I * H);
L = G * I + F * H + +g[a + 16 >> 2];
H = +K;
F = +L;
j = k;
g[j >> 2] = H;
g[j + 4 >> 2] = F;
j = a + 52 | 0;
g[j >> 2] = H;
g[j + 4 >> 2] = F;
F = +g[a + 88 >> 2];
j = a + 80 | 0;
g[j >> 2] = +g[j >> 2] - F * (L - J);
j = a + 84 | 0;
g[j >> 2] = F * (K - N) + +g[j >> 2];
i = d;
return
}
function Lj(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;
b = i;
i = i + 16 | 0;
d = b;
e = +g[a + 68 >> 2];
f = +T(+e);
g[d + 8 >> 2] = f;
h = +S(+e);
g[d + 12 >> 2] = h;
e = +g[a + 44 >> 2];
j = +g[a + 48 >> 2];
k = +(+g[a + 52 >> 2] - (h * e - f * j));
l = +(+g[a + 56 >> 2] - (e * f + h * j));
m = d;
g[m >> 2] = k;
g[m + 4 >> 2] = l;
m = (c[a + 104 >> 2] | 0) + 102880 | 0;
n = c[a + 116 >> 2] | 0;
if ((n | 0) == 0) {
i = b;
return
}
o = a + 12 | 0;
a = n;
do {
qj(a, m, d, o);
a = c[a + 4 >> 2] | 0
} while ((a | 0) != 0);
i = b;
return
}
function Mj(a, d) {
a = a | 0;
d = d | 0;
var e = 0,
f = 0,
h = 0,
j = 0,
k = 0,
l = 0;
e = i;
f = a + 104 | 0;
h = c[f >> 2] | 0;
if ((c[h + 102876 >> 2] & 2 | 0) != 0) {
j = 0;
i = e;
return j | 0
}
k = Em(h, 44) | 0;
if ((k | 0) ==
0)
l = 0;
else {
lj(k);
l = k
}
mj(l, h, a, d);
if (!((b[a + 4 >> 1] & 32) == 0))
oj(l, (c[f >> 2] | 0) + 102880 | 0, a + 12 | 0);
d = a + 116 | 0;
c[l + 4 >> 2] = c[d >> 2];
c[d >> 2] = l;
d = a + 120 | 0;
c[d >> 2] = (c[d >> 2] | 0) + 1;
c[l + 8 >> 2] = a;
if (+g[l >> 2] > 0)
Kj(a);
a = (c[f >> 2] | 0) + 102876 | 0;
c[a >> 2] = c[a >> 2] | 1;
j = l;
i = e;
return j | 0
}
function Nj(a, d) {
a = a | 0;
d = d | 0;
var e = 0,
f = 0,
g = 0,
h = 0,
j = 0,
k = 0,
l = 0;
e = i;
f = a + 104 | 0;
if ((c[(c[f >> 2] | 0) + 102876 >> 2] & 2 | 0) != 0) {
i = e;
return
}
g = a + 116 | 0;
h = c[g >> 2] | 0;
a:
do if ((h | 0) != 0) {
j = h;
k = g;
while (1) {
l = j + 4 | 0;
if ((j | 0) == (d | 0))
break;
j = c[l >> 2] | 0;
if ((j | 0) == 0)
break a;
else
k =
l
}
c[k >> 2] = c[d + 4 >> 2]
}
while (0);
g = c[a + 128 >> 2] | 0;
if ((g | 0) != 0) {
h = g;
do {
g = c[h + 4 >> 2] | 0;
h = c[h + 12 >> 2] | 0;
if ((c[g + 48 >> 2] | 0) == (d | 0) ? 1 : (c[g + 52 >> 2] | 0) == (d | 0))
Tj((c[f >> 2] | 0) + 102880 | 0, g)
} while ((h | 0) != 0)
}
h = c[f >> 2] | 0;
if (!((b[a + 4 >> 1] & 32) == 0))
pj(d, h + 102880 | 0);
nj(d, h);
c[d + 8 >> 2] = 0;
c[d + 4 >> 2] = 0;
Fm(h, d, 44);
d = a + 120 | 0;
c[d >> 2] = (c[d >> 2] | 0) + -1;
Kj(a);
i = e;
return
}
function Oj(a, d) {
a = a | 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;
e = i;
if ((c[(c[a + 104 >> 2] | 0) + 102876 >> 2] & 2 | 0) != 0) {
i = e;
return
}
if ((c[a >> 2] | 0) != 2) {
i = e;
return
}
f =
a + 136 | 0;
g[f >> 2] = 0;
h = a + 140 | 0;
g[h >> 2] = 0;
j = a + 144 | 0;
g[j >> 2] = 0;
l = +g[d >> 2];
m = !(l <= 0) ? l : 1;
g[a + 132 >> 2] = m;
g[f >> 2] = 1 / m;
l = +g[d + 12 >> 2];
if (l > 0 ? (b[a + 4 >> 1] & 16) == 0 : 0) {
n = +g[d + 4 >> 2];
o = +g[d + 8 >> 2];
p = l - m * (n * n + o * o);
g[h >> 2] = p;
g[j >> 2] = 1 / p
}
j = a + 60 | 0;
h = j;
p = +g[h >> 2];
o = +g[h + 4 >> 2];
h = d + 4 | 0;
d = c[h >> 2] | 0;
f = c[h + 4 >> 2] | 0;
h = a + 44 | 0;
c[h >> 2] = d;
c[h + 4 >> 2] = f;
n = +g[a + 24 >> 2];
m = (c[k >> 2] = d, +g[k >> 2]);
l = +g[a + 20 >> 2];
q = (c[k >> 2] = f, +g[k >> 2]);
r = +g[a + 12 >> 2] + (n * m - l * q);
s = m * l + n * q + +g[a + 16 >> 2];
q = +r;
n = +s;
f = j;
g[f >> 2] = q;
g[f + 4 >> 2] = n;
f = a + 52 | 0;
g[f >> 2] = q;
g[f + 4 >> 2] =
n;
n = +g[a + 88 >> 2];
f = a + 80 | 0;
g[f >> 2] = +g[f >> 2] - n * (s - o);
f = a + 84 | 0;
g[f >> 2] = n * (r - p) + +g[f >> 2];
i = e;
return
}
function Pj(b, d) {
b = b | 0;
d = d | 0;
var e = 0,
f = 0,
g = 0,
h = 0,
j = 0;
e = i;
if ((c[b >> 2] | 0) != 2 ? (c[d >> 2] | 0) != 2 : 0)
f = 0;
else
g = 3;
a:
do if ((g | 0) == 3) {
h = c[b + 124 >> 2] | 0;
if ((h | 0) == 0)
f = 1;
else {
j = h;
while (1) {
if ((c[j >> 2] | 0) == (d | 0) ? (a[(c[j + 4 >> 2] | 0) + 61 >> 0] | 0) == 0 : 0) {
f = 0;
break a
}
j = c[j + 12 >> 2] | 0;
if ((j | 0) == 0) {
f = 1;
break
}
}
}
}
while (0);
i = e;
return f | 0
}
function Qj(a, b, d) {
a = a | 0;
b = b | 0;
d = +d;
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;
e = i;
f = c[a + 104 >>
2] | 0;
if ((c[f + 102876 >> 2] & 2 | 0) != 0) {
i = e;
return
}
h = a + 12 | 0;
j = +T(+d);
g[a + 20 >> 2] = j;
l = +S(+d);
g[a + 24 >> 2] = l;
m = b;
b = c[m >> 2] | 0;
n = c[m + 4 >> 2] | 0;
m = h;
c[m >> 2] = b;
c[m + 4 >> 2] = n;
m = a + 28 | 0;
c[m + 0 >> 2] = c[h + 0 >> 2];
c[m + 4 >> 2] = c[h + 4 >> 2];
c[m + 8 >> 2] = c[h + 8 >> 2];
c[m + 12 >> 2] = c[h + 12 >> 2];
o = +g[a + 44 >> 2];
p = +g[a + 48 >> 2];
q = (c[k >> 2] = b, +g[k >> 2]) + (l * o - j * p);
r = o * j + l * p + (c[k >> 2] = n, +g[k >> 2]);
p = +q;
q = +r;
n = a + 60 | 0;
g[n >> 2] = p;
g[n + 4 >> 2] = q;
g[a + 72 >> 2] = d;
n = a + 52 | 0;
g[n >> 2] = p;
g[n + 4 >> 2] = q;
g[a + 68 >> 2] = d;
n = f + 102880 | 0;
f = c[a + 116 >> 2] | 0;
if ((f | 0) == 0) {
i = e;
return
} else
s = f;
do {
qj(s,
n, h, h);
s = c[s + 4 >> 2] | 0
} while ((s | 0) != 0);
i = e;
return
}
function Rj(a) {
a = a | 0;
return
}
function Sj(a) {
a = a | 0;
var b = 0;
b = i;
Me(a);
c[a + 60 >> 2] = 0;
c[a + 64 >> 2] = 0;
c[a + 68 >> 2] = 6800;
c[a + 72 >> 2] = 6808;
c[a + 76 >> 2] = 0;
i = b;
return
}
function Tj(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;
d = i;
e = c[(c[b + 48 >> 2] | 0) + 8 >> 2] | 0;
f = c[(c[b + 52 >> 2] | 0) + 8 >> 2] | 0;
g = c[a + 72 >> 2] | 0;
if ((g | 0) != 0 ? (c[b + 4 >> 2] & 2 | 0) != 0 : 0)
gb[c[(c[g >> 2] | 0) + 12 >> 2] & 63](g, b);
g = b + 8 | 0;
h = c[g >> 2] | 0;
j = b + 12 | 0;
if ((h | 0) != 0)
c[h + 12 >> 2] = c[j >> 2];
h = c[j >> 2] | 0;
if ((h | 0) != 0)
c[h +
8 >> 2] = c[g >> 2];
g = a + 60 | 0;
if ((c[g >> 2] | 0) == (b | 0))
c[g >> 2] = c[j >> 2];
j = b + 24 | 0;
g = c[j >> 2] | 0;
h = b + 28 | 0;
if ((g | 0) != 0)
c[g + 12 >> 2] = c[h >> 2];
g = c[h >> 2] | 0;
if ((g | 0) != 0)
c[g + 8 >> 2] = c[j >> 2];
j = e + 128 | 0;
if ((b + 16 | 0) == (c[j >> 2] | 0))
c[j >> 2] = c[h >> 2];
h = b + 40 | 0;
j = c[h >> 2] | 0;
e = b + 44 | 0;
if ((j | 0) != 0)
c[j + 12 >> 2] = c[e >> 2];
j = c[e >> 2] | 0;
if ((j | 0) != 0)
c[j + 8 >> 2] = c[h >> 2];
h = f + 128 | 0;
if ((b + 32 | 0) != (c[h >> 2] | 0)) {
k = a + 76 | 0;
l = c[k >> 2] | 0;
vi(b, l);
m = a + 64 | 0;
n = c[m >> 2] | 0;
o = n + -1 | 0;
c[m >> 2] = o;
i = d;
return
}
c[h >> 2] = c[e >> 2];
k = a + 76 | 0;
l = c[k >> 2] | 0;
vi(b, l);
m = a + 64 | 0;
n = c[m >> 2] | 0;
o =
n + -1 | 0;
c[m >> 2] = o;
i = d;
return
}
function Uj(a) {
a = a | 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;
d = i;
e = c[a + 60 >> 2] | 0;
if ((e | 0) == 0) {
i = d;
return
}
f = a + 4 | 0;
h = a + 72 | 0;
j = a + 68 | 0;
k = e;
while (1) {
e = c[k + 48 >> 2] | 0;
l = c[k + 52 >> 2] | 0;
m = c[k + 56 >> 2] | 0;
n = c[k + 60 >> 2] | 0;
o = c[e + 8 >> 2] | 0;
p = c[l + 8 >> 2] | 0;
q = k + 4 | 0;
do if ((c[q >> 2] & 8 | 0) == 0)
r = 11;
else {
if (!(Pj(p, o) | 0)) {
s = c[k + 12 >> 2] | 0;
Tj(a, k);
t = s;
break
}
s = c[j >> 2] | 0;
if ((s | 0) != 0 ? !(hb[c[(c[s >> 2] | 0) + 8 >> 2] & 15](s, e, l) | 0) : 0) {
s = c[k + 12 >> 2] | 0;
Tj(a, k);
t = s;
break
}
c[q >> 2] = c[q >> 2] &
-9;
r = 11
}
while (0);
do if ((r | 0) == 11) {
r = 0;
if ((b[o + 4 >> 1] & 2) == 0)
u = 0;
else
u = (c[o >> 2] | 0) != 0;
if ((b[p + 4 >> 1] & 2) == 0)
v = 0;
else
v = (c[p >> 2] | 0) != 0;
if (!(u | v)) {
t = c[k + 12 >> 2] | 0;
break
}
q = c[(c[e + 24 >> 2] | 0) + (m * 28 | 0) + 24 >> 2] | 0;
s = c[(c[l + 24 >> 2] | 0) + (n * 28 | 0) + 24 >> 2] | 0;
w = c[f >> 2] | 0;
if ((+g[w + (s * 36 | 0) >> 2] - +g[w + (q * 36 | 0) + 8 >> 2] > 0 ? 1 : +g[w + (s * 36 | 0) + 4 >> 2] - +g[w + (q * 36 | 0) + 12 >> 2] > 0) | +g[w + (q * 36 | 0) >> 2] - +g[w + (s * 36 | 0) + 8 >> 2] > 0 | +g[w + (q * 36 | 0) + 4 >> 2] - +g[w + (s * 36 | 0) + 12 >> 2] > 0) {
s = c[k + 12 >> 2] | 0;
Tj(a, k);
t = s;
break
} else {
xi(k, c[h >> 2] | 0);
t = c[k + 12 >> 2] | 0;
break
}
}
while (0);
if ((t | 0) == 0)
break;
else
k = t
}
i = d;
return
}
function Vj(a) {
a = a | 0;
var b = 0;
b = i;
Wj(a, a);
i = b;
return
}
function Wj(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 {
Yj(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;
_j(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;
Xj(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 Xj(d, f, h) {
d = d | 0;
f = f | 0;
h = h | 0;
var j = 0,
k = 0,
l = 0,
m = 0,
n = 0,
o = 0,
p = 0,
q = 0,
r = 0,
s = 0,
t = 0,
u = 0,
v = 0;
j = i;
k = c[f + 16 >> 2] | 0;
l = c[h + 16 >> 2] | 0;
m = c[f + 20 >> 2] | 0;
f = c[h + 20 >> 2] | 0;
h = c[k + 8 >> 2] | 0;
n = c[l + 8 >> 2] | 0;
if ((h | 0) == (n | 0)) {
i = j;
return
}
o = c[n + 128 >> 2] | 0;
a:
do if ((o | 0) != 0) {
p = o;
while (1) {
if ((c[p >> 2] | 0) == (h | 0)) {
q = c[p + 4 >> 2] | 0;
r = c[q + 48 >> 2] | 0;
s = c[q + 52 >> 2] | 0;
t = c[q + 56 >> 2] | 0;
u = c[q + 60 >> 2] | 0;
if ((r | 0) == (k | 0) & (s | 0) == (l | 0) & (t | 0) == (m | 0) & (u | 0) == (f | 0)) {
v = 24;
break
}
if ((r | 0) == (l | 0) & (s | 0) == (k | 0) & (t | 0) == (f | 0) & (u | 0) == (m | 0)) {
v = 24;
break
}
}
p = c[p + 12 >> 2] | 0;
if ((p | 0) == 0)
break a
}
if ((v | 0) == 24) {
i = j;
return
}
}
while (0);
if (!(Pj(n, h) | 0)) {
i = j;
return
}
h = c[d + 68 >> 2] | 0;
if ((h | 0) != 0 ? !(hb[c[(c[h >>
2] | 0) + 8 >> 2] & 15](h, k, l) | 0) : 0) {
i = j;
return
}
h = ui(k, m, l, f, c[d + 76 >> 2] | 0) | 0;
if ((h | 0) == 0) {
i = j;
return
}
f = c[h + 48 >> 2] | 0;
l = c[h + 52 >> 2] | 0;
m = c[f + 8 >> 2] | 0;
k = c[l + 8 >> 2] | 0;
c[h + 8 >> 2] = 0;
n = d + 60 | 0;
c[h + 12 >> 2] = c[n >> 2];
v = c[n >> 2] | 0;
if ((v | 0) != 0)
c[v + 8 >> 2] = h;
c[n >> 2] = h;
n = h + 16 | 0;
c[h + 20 >> 2] = h;
c[n >> 2] = k;
c[h + 24 >> 2] = 0;
v = m + 128 | 0;
c[h + 28 >> 2] = c[v >> 2];
o = c[v >> 2] | 0;
if ((o | 0) != 0)
c[o + 8 >> 2] = n;
c[v >> 2] = n;
n = h + 32 | 0;
c[h + 36 >> 2] = h;
c[n >> 2] = m;
c[h + 40 >> 2] = 0;
v = k + 128 | 0;
c[h + 44 >> 2] = c[v >> 2];
h = c[v >> 2] | 0;
if ((h | 0) != 0)
c[h + 8 >> 2] = n;
c[v >> 2] = n;
if ((a[f + 38 >> 0] | 0) == 0 ? (a[l +
38 >> 0] | 0) == 0 : 0) {
l = m + 4 | 0;
f = e[l >> 1] | 0;
if ((f & 2 | 0) == 0) {
b[l >> 1] = f | 2;
g[m + 160 >> 2] = 0
}
m = k + 4 | 0;
f = e[m >> 1] | 0;
if ((f & 2 | 0) == 0) {
b[m >> 1] = f | 2;
g[k + 160 >> 2] = 0
}
}
k = d + 64 | 0;
c[k >> 2] = (c[k >> 2] | 0) + 1;
i = j;
return
}
function Yj(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;
l = c[f >> 2] | 0;
c[l + (c[j >> 2] << 2) >> 2] = c[a >> 2];
m = c[j >> 2] | 0;
n = m + 1 | 0;
c[j >> 2] = n;
a:
do if ((m | 0) > -1) {
o = a + 4 | 0;
p = d + 4 | 0;
q = d + 8 | 0;
r =
d + 12 | 0;
s = n;
t = l;
while (1) {
u = s + -1 | 0;
c[j >> 2] = u;
v = c[t + (u << 2) >> 2] | 0;
do if (!((v | 0) == -1) ? (w = c[o >> 2] | 0, !((+g[d >> 2] - +g[w + (v * 36 | 0) + 8 >> 2] > 0 ? 1 : +g[p >> 2] - +g[w + (v * 36 | 0) + 12 >> 2] > 0) | +g[w + (v * 36 | 0) >> 2] - +g[q >> 2] > 0 | +g[w + (v * 36 | 0) + 4 >> 2] - +g[r >> 2] > 0)) : 0) {
x = w + (v * 36 | 0) + 24 | 0;
if ((c[x >> 2] | 0) == -1) {
if (!(Se(b, v) | 0))
break a;
y = c[j >> 2] | 0;
break
}
if ((u | 0) == (c[k >> 2] | 0) ? (c[k >> 2] = u << 1, z = Pm(u << 3) | 0, c[f >> 2] = z, An(z | 0, t | 0, c[j >> 2] << 2 | 0) | 0, (t | 0) != (h | 0)) : 0)
Qm(t);
z = c[f >> 2] | 0;
c[z + (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 = Pm(x << 3) | 0, c[f >> 2] = w, An(w | 0, z | 0, c[j >> 2] << 2 | 0) | 0, (z | 0) != (h | 0)) : 0)
Qm(z);
c[(c[f >> 2] | 0) + (c[j >> 2] << 2) >> 2] = c[A >> 2];
A = (c[j >> 2] | 0) + 1 | 0;
c[j >> 2] = A;
y = A
} else
y = u;
while (0);
if ((y | 0) <= 0)
break a;
s = y;
t = c[f >> 2] | 0
}
}
while (0);
y = c[f >> 2] | 0;
if ((y | 0) == (h | 0)) {
i = e;
return
}
Qm(y);
c[f >> 2] = 0;
i = e;
return
}
function Zj(a, b) {
a = a | 0;
b = b | 0;
var d = 0,
e = 0,
f = 0,
g = 0;
d = i;
e = c[a >> 2] | 0;
f = c[b >> 2] | 0;
if ((e | 0) >= (f | 0))
if ((e | 0) == (f | 0))
g = (c[a + 4 >> 2] | 0) < (c[b + 4 >> 2] | 0);
else
g = 0;
else
g = 1;
i = d;
return g | 0
}
function _j(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;
e = i;
f = a;
a = b;
a:
while (1) {
b = a;
g = a + -8 | 0;
h = f;
b:
while (1) {
j = h;
k = b - j | 0;
l = k >> 3;
switch (l | 0) {
case 5:
m = 15;
break a;
break;
case 2:
m = 4;
break a;
break;
case 4:
m = 14;
break a;
break;
case 1:
case 0:
m = 67;
break a;
break;
case 3:
m = 6;
break a;
break;
default:
}
if ((k | 0) < 248) {
m = 21;
break a
}
n = (l | 0) / 2 | 0;
o = h + (n << 3) | 0;
do if ((k | 0) > 7992) {
p = (l | 0) / 4 | 0;
q = h + (p << 3) | 0;
r = h + (p + n << 3) | 0;
p =
$j(h, q, o, r, d) | 0;
if (nb[c[d >> 2] & 31](g, r) | 0) {
s = r;
t = c[s >> 2] | 0;
u = c[s + 4 >> 2] | 0;
s = g;
v = c[s + 4 >> 2] | 0;
w = r;
c[w >> 2] = c[s >> 2];
c[w + 4 >> 2] = v;
v = g;
c[v >> 2] = t;
c[v + 4 >> 2] = u;
u = p + 1 | 0;
if (nb[c[d >> 2] & 31](r, o) | 0) {
v = o;
t = c[v >> 2] | 0;
w = c[v + 4 >> 2] | 0;
v = r;
s = c[v + 4 >> 2] | 0;
x = o;
c[x >> 2] = c[v >> 2];
c[x + 4 >> 2] = s;
s = r;
c[s >> 2] = t;
c[s + 4 >> 2] = w;
w = p + 2 | 0;
if (nb[c[d >> 2] & 31](o, q) | 0) {
s = q;
t = c[s >> 2] | 0;
r = c[s + 4 >> 2] | 0;
s = o;
x = c[s + 4 >> 2] | 0;
v = q;
c[v >> 2] = c[s >> 2];
c[v + 4 >> 2] = x;
x = o;
c[x >> 2] = t;
c[x + 4 >> 2] = r;
if (nb[c[d >> 2] & 31](q, h) | 0) {
r = h;
x = c[r >> 2] | 0;
t = c[r + 4 >> 2] | 0;
r = q;
v = c[r + 4 >> 2] | 0;
s = h;
c[s >> 2] = c[r >> 2];
c[s + 4 >> 2] = v;
v = q;
c[v >> 2] = x;
c[v + 4 >> 2] = t;
y = p + 4 | 0
} else
y = p + 3 | 0
} else
y = w
} else
y = u
} else
y = p
} else {
p = nb[c[d >> 2] & 31](o, h) | 0;
u = nb[c[d >> 2] & 31](g, o) | 0;
if (!p) {
if (!u) {
y = 0;
break
}
p = o;
w = c[p >> 2] | 0;
t = c[p + 4 >> 2] | 0;
p = g;
v = c[p + 4 >> 2] | 0;
x = o;
c[x >> 2] = c[p >> 2];
c[x + 4 >> 2] = v;
v = g;
c[v >> 2] = w;
c[v + 4 >> 2] = t;
if (!(nb[c[d >> 2] & 31](o, h) | 0)) {
y = 1;
break
}
t = h;
v = c[t >> 2] | 0;
w = c[t + 4 >> 2] | 0;
t = o;
x = c[t + 4 >> 2] | 0;
p = h;
c[p >> 2] = c[t >> 2];
c[p + 4 >> 2] = x;
x = o;
c[x >> 2] = v;
c[x + 4 >> 2] = w;
y = 2;
break
}
w = h;
x = c[w >> 2] | 0;
v = c[w + 4 >> 2] | 0;
if (u) {
u = g;
w = c[u + 4 >> 2] | 0;
p = h;
c[p >> 2] = c[u >> 2];
c[p + 4 >> 2] = w;
w = g;
c[w >> 2] = x;
c[w + 4 >> 2] = v;
y = 1;
break
}
w = o;
p = c[w + 4 >> 2] | 0;
u = h;
c[u >> 2] = c[w >> 2];
c[u + 4 >> 2] = p;
p = o;
c[p >> 2] = x;
c[p + 4 >> 2] = v;
if (nb[c[d >> 2] & 31](g, o) | 0) {
v = o;
p = c[v >> 2] | 0;
x = c[v + 4 >> 2] | 0;
v = g;
u = c[v + 4 >> 2] | 0;
w = o;
c[w >> 2] = c[v >> 2];
c[w + 4 >> 2] = u;
u = g;
c[u >> 2] = p;
c[u + 4 >> 2] = x;
y = 2
} else
y = 1
}
while (0);
do if (nb[c[d >> 2] & 31](h, o) | 0) {
z = g;
A = y
} else {
n = g;
while (1) {
n = n + -8 | 0;
if ((h | 0) == (n | 0))
break;
if (nb[c[d >> 2] & 31](n, o) | 0) {
m = 50;
break
}
}
if ((m | 0) == 50) {
m = 0;
l = h;
k = c[l >> 2] | 0;
x = c[l + 4 >> 2] | 0;
l = n;
u = c[l + 4 >> 2] | 0;
p = h;
c[p >> 2] = c[l >>
2];
c[p + 4 >> 2] = u;
u = n;
c[u >> 2] = k;
c[u + 4 >> 2] = x;
z = n;
A = y + 1 | 0;
break
}
x = h + 8 | 0;
if (nb[c[d >> 2] & 31](h, g) | 0)
B = x;
else {
if ((x | 0) == (g | 0)) {
m = 67;
break a
} else
C = x;
while (1) {
D = C + 8 | 0;
if (nb[c[d >> 2] & 31](h, C) | 0)
break;
if ((D | 0) == (g | 0)) {
m = 67;
break a
} else
C = D
}
n = C;
x = c[n >> 2] | 0;
u = c[n + 4 >> 2] | 0;
n = g;
k = c[n + 4 >> 2] | 0;
p = C;
c[p >> 2] = c[n >> 2];
c[p + 4 >> 2] = k;
k = g;
c[k >> 2] = x;
c[k + 4 >> 2] = u;
B = D
}
if ((B | 0) == (g | 0)) {
m = 67;
break a
} else {
E = B;
F = g
}
while (1) {
u = E;
while (1) {
G = u + 8 | 0;
if (nb[c[d >> 2] & 31](h, u) | 0) {
H = F;
break
} else
u = G
}
do H = H + -8 | 0;
while (nb[c[d >> 2] & 31](h, H) | 0);
if (!(u >>>
0 < H >>> 0)) {
h = u;
continue b
}
k = u;
x = c[k >> 2] | 0;
p = c[k + 4 >> 2] | 0;
k = H;
n = c[k + 4 >> 2] | 0;
l = u;
c[l >> 2] = c[k >> 2];
c[l + 4 >> 2] = n;
n = H;
c[n >> 2] = x;
c[n + 4 >> 2] = p;
E = G;
F = H
}
}
while (0);
p = h + 8 | 0;
c:
do if (p >>> 0 < z >>> 0) {
n = p;
x = z;
l = o;
k = A;
while (1) {
w = n;
while (1) {
I = w + 8 | 0;
if (nb[c[d >> 2] & 31](w, l) | 0)
w = I;
else {
J = x;
break
}
}
do J = J + -8 | 0;
while (!(nb[c[d >> 2] & 31](J, l) | 0));
if (w >>> 0 > J >>> 0) {
K = w;
L = l;
M = k;
break c
}
u = w;
v = c[u >> 2] | 0;
t = c[u + 4 >> 2] | 0;
u = J;
q = c[u + 4 >> 2] | 0;
s = w;
c[s >> 2] = c[u >> 2];
c[s + 4 >> 2] = q;
q = J;
c[q >> 2] = v;
c[q + 4 >> 2] = t;
n = I;
x = J;
l = (l | 0) == (w | 0) ? J : l;
k = k + 1 | 0
}
} else {
K = p;
L =
o;
M = A
}
while (0);
if ((K | 0) != (L | 0) ? nb[c[d >> 2] & 31](L, K) | 0 : 0) {
o = K;
p = c[o >> 2] | 0;
k = c[o + 4 >> 2] | 0;
o = L;
l = c[o + 4 >> 2] | 0;
x = K;
c[x >> 2] = c[o >> 2];
c[x + 4 >> 2] = l;
l = L;
c[l >> 2] = p;
c[l + 4 >> 2] = k;
N = M + 1 | 0
} else
N = M;
if ((N | 0) == 0) {
O = bk(h, K, d) | 0;
k = K + 8 | 0;
if (bk(k, a, d) | 0) {
m = 62;
break
}
if (O) {
h = k;
continue
}
}
k = K;
if ((k - j | 0) >= (b - k | 0)) {
m = 66;
break
}
_j(h, K, d);
h = K + 8 | 0
}
if ((m | 0) == 62) {
m = 0;
if (O) {
m = 67;
break
} else {
f = h;
a = K;
continue
}
} else if ((m | 0) == 66) {
m = 0;
_j(K + 8 | 0, a, d);
f = h;
a = K;
continue
}
}
if ((m | 0) == 4) {
if (!(nb[c[d >> 2] & 31](g, h) | 0)) {
i = e;
return
}
K = h;
f = c[K >> 2] | 0;
O = c[K +
4 >> 2] | 0;
K = g;
N = c[K + 4 >> 2] | 0;
M = h;
c[M >> 2] = c[K >> 2];
c[M + 4 >> 2] = N;
N = g;
c[N >> 2] = f;
c[N + 4 >> 2] = O;
i = e;
return
} else if ((m | 0) == 6) {
O = h + 8 | 0;
N = nb[c[d >> 2] & 31](O, h) | 0;
f = nb[c[d >> 2] & 31](g, O) | 0;
if (!N) {
if (!f) {
i = e;
return
}
N = O;
M = c[N >> 2] | 0;
K = c[N + 4 >> 2] | 0;
N = g;
L = c[N + 4 >> 2] | 0;
A = O;
c[A >> 2] = c[N >> 2];
c[A + 4 >> 2] = L;
L = g;
c[L >> 2] = M;
c[L + 4 >> 2] = K;
if (!(nb[c[d >> 2] & 31](O, h) | 0)) {
i = e;
return
}
K = h;
L = c[K >> 2] | 0;
M = c[K + 4 >> 2] | 0;
K = O;
A = c[K + 4 >> 2] | 0;
N = h;
c[N >> 2] = c[K >> 2];
c[N + 4 >> 2] = A;
A = O;
c[A >> 2] = L;
c[A + 4 >> 2] = M;
i = e;
return
}
M = h;
A = c[M >> 2] | 0;
L = c[M + 4 >> 2] | 0;
if (f) {
f = g;
M = c[f +
4 >> 2] | 0;
N = h;
c[N >> 2] = c[f >> 2];
c[N + 4 >> 2] = M;
M = g;
c[M >> 2] = A;
c[M + 4 >> 2] = L;
i = e;
return
}
M = O;
N = c[M + 4 >> 2] | 0;
f = h;
c[f >> 2] = c[M >> 2];
c[f + 4 >> 2] = N;
N = O;
c[N >> 2] = A;
c[N + 4 >> 2] = L;
if (!(nb[c[d >> 2] & 31](g, O) | 0)) {
i = e;
return
}
L = O;
N = c[L >> 2] | 0;
A = c[L + 4 >> 2] | 0;
L = g;
f = c[L + 4 >> 2] | 0;
M = O;
c[M >> 2] = c[L >> 2];
c[M + 4 >> 2] = f;
f = g;
c[f >> 2] = N;
c[f + 4 >> 2] = A;
i = e;
return
} else if ((m | 0) == 14) {
$j(h, h + 8 | 0, h + 16 | 0, g, d) | 0;
i = e;
return
} else if ((m | 0) == 15) {
A = h + 8 | 0;
f = h + 16 | 0;
N = h + 24 | 0;
$j(h, A, f, N, d) | 0;
if (!(nb[c[d >> 2] & 31](g, N) | 0)) {
i = e;
return
}
M = N;
L = c[M >> 2] | 0;
O = c[M + 4 >> 2] | 0;
M = g;
K =
c[M + 4 >> 2] | 0;
J = N;
c[J >> 2] = c[M >> 2];
c[J + 4 >> 2] = K;
K = g;
c[K >> 2] = L;
c[K + 4 >> 2] = O;
if (!(nb[c[d >> 2] & 31](N, f) | 0)) {
i = e;
return
}
O = f;
K = c[O >> 2] | 0;
L = c[O + 4 >> 2] | 0;
O = N;
g = c[O + 4 >> 2] | 0;
J = f;
c[J >> 2] = c[O >> 2];
c[J + 4 >> 2] = g;
g = N;
c[g >> 2] = K;
c[g + 4 >> 2] = L;
if (!(nb[c[d >> 2] & 31](f, A) | 0)) {
i = e;
return
}
L = A;
g = c[L >> 2] | 0;
K = c[L + 4 >> 2] | 0;
L = f;
N = c[L + 4 >> 2] | 0;
J = A;
c[J >> 2] = c[L >> 2];
c[J + 4 >> 2] = N;
N = f;
c[N >> 2] = g;
c[N + 4 >> 2] = K;
if (!(nb[c[d >> 2] & 31](A, h) | 0)) {
i = e;
return
}
K = h;
N = c[K >> 2] | 0;
g = c[K + 4 >> 2] | 0;
K = A;
f = c[K + 4 >> 2] | 0;
J = h;
c[J >> 2] = c[K >> 2];
c[J + 4 >> 2] = f;
f = A;
c[f >> 2] = N;
c[f + 4 >>
2] = g;
i = e;
return
} else if ((m | 0) == 21) {
ak(h, a, d);
i = e;
return
} else if ((m | 0) == 67) {
i = e;
return
}
}
function $j(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;
h = nb[c[f >> 2] & 31](b, a) | 0;
j = nb[c[f >> 2] & 31](d, b) | 0;
do if (h) {
k = a;
l = c[k >> 2] | 0;
m = c[k + 4 >> 2] | 0;
if (j) {
k = d;
n = c[k + 4 >> 2] | 0;
o = a;
c[o >> 2] = c[k >> 2];
c[o + 4 >> 2] = n;
n = d;
c[n >> 2] = l;
c[n + 4 >> 2] = m;
p = 1;
break
}
n = b;
o = c[n + 4 >> 2] | 0;
k = a;
c[k >> 2] = c[n >> 2];
c[k + 4 >> 2] = o;
o = b;
c[o >> 2] = l;
c[o + 4 >> 2] = m;
if (nb[c[f >> 2] & 31](d, b) | 0) {
m = b;
o = c[m >> 2] | 0;
l = c[m + 4 >> 2] | 0;
m =
d;
k = c[m + 4 >> 2] | 0;
n = b;
c[n >> 2] = c[m >> 2];
c[n + 4 >> 2] = k;
k = d;
c[k >> 2] = o;
c[k + 4 >> 2] = l;
p = 2
} else
p = 1
} else if (j) {
l = b;
k = c[l >> 2] | 0;
o = c[l + 4 >> 2] | 0;
l = d;
n = c[l + 4 >> 2] | 0;
m = b;
c[m >> 2] = c[l >> 2];
c[m + 4 >> 2] = n;
n = d;
c[n >> 2] = k;
c[n + 4 >> 2] = o;
if (nb[c[f >> 2] & 31](b, a) | 0) {
o = a;
n = c[o >> 2] | 0;
k = c[o + 4 >> 2] | 0;
o = b;
m = c[o + 4 >> 2] | 0;
l = a;
c[l >> 2] = c[o >> 2];
c[l + 4 >> 2] = m;
m = b;
c[m >> 2] = n;
c[m + 4 >> 2] = k;
p = 2
} else
p = 1
} else
p = 0;
while (0);
if (!(nb[c[f >> 2] & 31](e, d) | 0)) {
q = p;
i = g;
return q | 0
}
j = d;
h = c[j >> 2] | 0;
k = c[j + 4 >> 2] | 0;
j = e;
m = c[j + 4 >> 2] | 0;
n = d;
c[n >> 2] = c[j >> 2];
c[n + 4 >> 2] = m;
m = e;
c[m >>
2] = h;
c[m + 4 >> 2] = k;
if (!(nb[c[f >> 2] & 31](d, b) | 0)) {
q = p + 1 | 0;
i = g;
return q | 0
}
k = b;
m = c[k >> 2] | 0;
h = c[k + 4 >> 2] | 0;
k = d;
e = c[k + 4 >> 2] | 0;
n = b;
c[n >> 2] = c[k >> 2];
c[n + 4 >> 2] = e;
e = d;
c[e >> 2] = m;
c[e + 4 >> 2] = h;
if (!(nb[c[f >> 2] & 31](b, a) | 0)) {
q = p + 2 | 0;
i = g;
return q | 0
}
f = a;
h = c[f >> 2] | 0;
e = c[f + 4 >> 2] | 0;
f = b;
m = c[f + 4 >> 2] | 0;
d = a;
c[d >> 2] = c[f >> 2];
c[d + 4 >> 2] = m;
m = b;
c[m >> 2] = h;
c[m + 4 >> 2] = e;
q = p + 3 | 0;
i = g;
return q | 0
}
function ak(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;
e = i;
i = i + 16 | 0;
f = e;
g = a + 16 | 0;
h = a + 8 | 0;
j = nb[c[d >> 2] & 31](h,
a) | 0;
k = nb[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 (nb[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, nb[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 (nb[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))
break;
j = k + -8 | 0;
if (nb[c[d >> 2] & 31](f, j) | 0) {
l = k;
k = j;
h = l
} else
break
}
h = f;
l = c[h + 4 >> 2] | 0;
j = k;
c[j >> 2] = c[h >> 2];
c[j + 4 >> 2] = l
}
l = q + 8 | 0;
if ((l | 0) == (b | 0))
break;
else {
j = q;
q = l;
r = j
}
}
i =
e;
return
}
function bk(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;
e = i;
i = i + 16 | 0;
f = e;
switch (b - a >> 3 | 0) {
case 2:
g = b + -8 | 0;
if (!(nb[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 4:
$j(a, a + 8 | 0, a + 16 | 0, b + -8 | 0, d) | 0;
h = 1;
i = e;
return h | 0;
case 5:
l = a + 8 | 0;
m = a + 16 | 0;
k = a + 24 | 0;
g = b + -8 | 0;
$j(a, l, m, k, d) | 0;
if (!(nb[c[d >> 2] & 31](g, k) | 0)) {
h = 1;
i = e;
return h |
0
}
n = k;
j = c[n >> 2] | 0;
o = c[n + 4 >> 2] | 0;
n = g;
p = c[n + 4 >> 2] | 0;
q = k;
c[q >> 2] = c[n >> 2];
c[q + 4 >> 2] = p;
p = g;
c[p >> 2] = j;
c[p + 4 >> 2] = o;
if (!(nb[c[d >> 2] & 31](k, m) | 0)) {
h = 1;
i = e;
return h | 0
}
o = m;
p = c[o >> 2] | 0;
j = c[o + 4 >> 2] | 0;
o = k;
g = c[o + 4 >> 2] | 0;
q = m;
c[q >> 2] = c[o >> 2];
c[q + 4 >> 2] = g;
g = k;
c[g >> 2] = p;
c[g + 4 >> 2] = j;
if (!(nb[c[d >> 2] & 31](m, l) | 0)) {
h = 1;
i = e;
return h | 0
}
j = l;
g = c[j >> 2] | 0;
p = c[j + 4 >> 2] | 0;
j = m;
k = c[j + 4 >> 2] | 0;
q = l;
c[q >> 2] = c[j >> 2];
c[q + 4 >> 2] = k;
k = m;
c[k >> 2] = g;
c[k + 4 >> 2] = p;
if (!(nb[c[d >> 2] & 31](l, a) | 0)) {
h = 1;
i = e;
return h | 0
}
p = a;
k = c[p >> 2] | 0;
g = c[p + 4 >> 2] | 0;
p = l;
m = c[p +
4 >> 2] | 0;
q = a;
c[q >> 2] = c[p >> 2];
c[q + 4 >> 2] = m;
m = l;
c[m >> 2] = k;
c[m + 4 >> 2] = g;
h = 1;
i = e;
return h | 0;
case 3:
g = a + 8 | 0;
m = b + -8 | 0;
k = nb[c[d >> 2] & 31](g, a) | 0;
l = nb[c[d >> 2] & 31](m, g) | 0;
if (!k) {
if (!l) {
h = 1;
i = e;
return h | 0
}
k = g;
q = c[k >> 2] | 0;
p = c[k + 4 >> 2] | 0;
k = m;
j = c[k + 4 >> 2] | 0;
o = g;
c[o >> 2] = c[k >> 2];
c[o + 4 >> 2] = j;
j = m;
c[j >> 2] = q;
c[j + 4 >> 2] = p;
if (!(nb[c[d >> 2] & 31](g, a) | 0)) {
h = 1;
i = e;
return h | 0
}
p = a;
j = c[p >> 2] | 0;
q = c[p + 4 >> 2] | 0;
p = g;
o = c[p + 4 >> 2] | 0;
k = a;
c[k >> 2] = c[p >> 2];
c[k + 4 >> 2] = o;
o = g;
c[o >> 2] = j;
c[o + 4 >> 2] = q;
h = 1;
i = e;
return h | 0
}
q = a;
o = c[q >> 2] | 0;
j = c[q + 4 >> 2] | 0;
if (l) {
l =
m;
q = c[l + 4 >> 2] | 0;
k = a;
c[k >> 2] = c[l >> 2];
c[k + 4 >> 2] = q;
q = m;
c[q >> 2] = o;
c[q + 4 >> 2] = j;
h = 1;
i = e;
return h | 0
}
q = g;
k = c[q + 4 >> 2] | 0;
l = a;
c[l >> 2] = c[q >> 2];
c[l + 4 >> 2] = k;
k = g;
c[k >> 2] = o;
c[k + 4 >> 2] = j;
if (!(nb[c[d >> 2] & 31](m, g) | 0)) {
h = 1;
i = e;
return h | 0
}
j = g;
k = c[j >> 2] | 0;
o = c[j + 4 >> 2] | 0;
j = m;
l = c[j + 4 >> 2] | 0;
q = g;
c[q >> 2] = c[j >> 2];
c[q + 4 >> 2] = l;
l = m;
c[l >> 2] = k;
c[l + 4 >> 2] = o;
h = 1;
i = e;
return h | 0;
case 1:
case 0:
h = 1;
i = e;
return h | 0;
default:
o = a + 16 | 0;
l = a + 8 | 0;
k = nb[c[d >> 2] & 31](l, a) | 0;
m = nb[c[d >> 2] & 31](o, l) | 0;
do if (k) {
q = a;
j = c[q >> 2] | 0;
g = c[q + 4 >> 2] | 0;
if (m) {
q = o;
p = c[q +
4 >> 2] | 0;
n = a;
c[n >> 2] = c[q >> 2];
c[n + 4 >> 2] = p;
p = o;
c[p >> 2] = j;
c[p + 4 >> 2] = g;
break
}
p = l;
n = c[p + 4 >> 2] | 0;
q = a;
c[q >> 2] = c[p >> 2];
c[q + 4 >> 2] = n;
n = l;
c[n >> 2] = j;
c[n + 4 >> 2] = g;
if (nb[c[d >> 2] & 31](o, l) | 0) {
g = l;
n = c[g >> 2] | 0;
j = c[g + 4 >> 2] | 0;
g = o;
q = c[g + 4 >> 2] | 0;
p = l;
c[p >> 2] = c[g >> 2];
c[p + 4 >> 2] = q;
q = o;
c[q >> 2] = n;
c[q + 4 >> 2] = j
}
} else if (m ? (j = l, q = c[j >> 2] | 0, n = c[j + 4 >> 2] | 0, j = o, p = c[j + 4 >> 2] | 0, g = l, c[g >> 2] = c[j >> 2], c[g + 4 >> 2] = p, p = o, c[p >> 2] = q, c[p + 4 >> 2] = n, nb[c[d >> 2] & 31](l, a) | 0) : 0) {
n = a;
p = c[n >> 2] | 0;
q = c[n + 4 >> 2] | 0;
n = l;
g = c[n + 4 >> 2] | 0;
j = a;
c[j >> 2] = c[n >> 2];
c[j + 4 >> 2] =
g;
g = l;
c[g >> 2] = p;
c[g + 4 >> 2] = q
}
while (0);
l = a + 24 | 0;
if ((l | 0) == (b | 0)) {
h = 1;
i = e;
return h | 0
} else {
r = 0;
s = l;
t = o
}
while (1) {
if (nb[c[d >> 2] & 31](s, t) | 0) {
o = s;
l = c[o + 4 >> 2] | 0;
m = f;
c[m >> 2] = c[o >> 2];
c[m + 4 >> 2] = l;
l = s;
m = t;
while (1) {
o = m;
k = c[o + 4 >> 2] | 0;
q = l;
c[q >> 2] = c[o >> 2];
c[q + 4 >> 2] = k;
if ((m | 0) == (a | 0))
break;
k = m + -8 | 0;
if (nb[c[d >> 2] & 31](f, k) | 0) {
q = m;
m = k;
l = q
} else
break
}
l = f;
q = c[l + 4 >> 2] | 0;
k = m;
c[k >> 2] = c[l >> 2];
c[k + 4 >> 2] = q;
q = r + 1 | 0;
if ((q | 0) == 8)
break;
else
u = q
} else
u = r;
q = s + 8 | 0;
if ((q | 0) == (b | 0)) {
h = 1;
v = 34;
break
} else {
k = s;
r = u;
s = q;
t = k
}
}
if ((v | 0) == 34) {
i =
e;
return h | 0
}
h = (s + 8 | 0) == (b | 0);
i = e;
return h | 0
}
return 0
}
function ck(a) {
a = a | 0;
var b = 0;
b = i;
sn(a);
i = b;
return
}
function dk(a, b) {
a = a | 0;
b = b | 0;
return
}
function ek(a, b) {
a = a | 0;
b = b | 0;
return
}
function fk(a, b, c) {
a = a | 0;
b = b | 0;
c = c | 0;
return
}
function gk(a, b, c) {
a = a | 0;
b = b | 0;
c = c | 0;
return
}
function hk(a, b, d) {
a = a | 0;
b = b | 0;
d = d | 0;
var e = 0;
e = i;
c[a >> 2] = b;
c[a + 4 >> 2] = Ym(b, d << 4) | 0;
c[a + 8 >> 2] = d;
d = a + 12 | 0;
c[d + 0 >> 2] = 0;
c[d + 4 >> 2] = 0;
c[d + 8 >> 2] = 0;
c[d + 12 >> 2] = 0;
i = e;
return
}
function ik(a) {
a = a | 0;
var b = 0,
d = 0;
b = i;
d = c[a + 24 >> 2] | 0;
if ((d | 0) != 0)
_m(c[a >> 2] |
0, d);
_m(c[a >> 2] | 0, c[a + 4 >> 2] | 0);
i = b;
return
}
function jk(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 kk(b, d, e) {
b = b | 0;
d = +d;
e = +e;
var f = 0,
h = 0,
j = 0,
k = 0,
l = 0,
m = 0,
n = 0,
o = 0,
p = 0,
q = 0,
r = 0,
s = 0,
t = 0,
u = 0,
v = 0,
w = 0,
x = 0,
y = 0,
z = 0,
A = 0,
B = 0,
C = 0,
D = 0,
E = 0,
F = 0,
G = 0,
H = 0,
I = 0,
J = 0,
K = 0,
L = 0,
M = 0,
N = 0,
O = 0,
P = 0,
Q = 0,
R = 0,
S = 0,
T = 0,
U = 0,
V = 0,
W = 0,
X = 0,
Y = 0,
Z = 0,
_ = 0,
$ = 0,
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;
f = i;
h = 1 / d;
j = b + 12 | 0;
k = c[j >> 2] | 0;
if ((k | 0) > 0) {
l = c[b + 4 >> 2] | 0;
d = 3.4028234663852886E38;
m = 3.4028234663852886E38;
n = -3.4028234663852886E38;
o = -3.4028234663852886E38;
p = 0;
while (1) {
if ((a[l + (p << 4) + 12 >> 0] | 0) == 0) {
q = m;
r = d;
s = o;
t = n
} else {
u = +g[l + (p << 4) >> 2];
v = +g[l + (p << 4) + 4 >> 2];
q = m < v ? m : v;
r = d < u ? d : u;
s = o > v ? o : v;
t = n > u ? n : u
}
p = p + 1 | 0;
if ((p | 0) >= (k | 0)) {
w = q;
x = r;
y = s;
z = t;
break
} else {
d = r;
m = q;
n = t;
o = s
}
}
} else {
w = 3.4028234663852886E38;
x = 3.4028234663852886E38;
y = -3.4028234663852886E38;
z = -3.4028234663852886E38
}
s = x - e;
x = w - e;
k = ~~(h * (z + e - s)) + 1 | 0;
p = b + 16 | 0;
c[p >> 2] = k;
l = ~~(h * (y + e - x)) + 1 | 0;
A = b + 20 | 0;
c[A >> 2] = l;
B = Ym(c[b >> 2] | 0, aa(l << 2, k) | 0) | 0;
k = b + 24 | 0;
c[k >> 2] = B;
l = c[p >> 2] | 0;
C = c[A >> 2] | 0;
D = aa(C, l) | 0;
a:
do if ((D | 0) > 0) {
E = B;
F = 0;
while (1) {
c[E + (F << 2) >> 2] = 0;
G = F + 1 | 0;
if ((G | 0) >= (D | 0))
break a;
E = c[k >> 2] | 0;
F = G
}
}
while (0);
D = c[b >> 2] | 0;
B = aa(l << 2, C) | 0;
C = Ym(D, B << 4) | 0;
if ((c[j >> 2] | 0) > 0) {
l = b + 4 | 0;
b = 0;
F = B;
E = C;
G = 0;
while (1) {
H = c[l >> 2] | 0;
I = H + (G << 4) | 0;
J = H + (G << 4) + 4 | 0;
e = h * (+g[I >> 2] - s);
y = +e;
z = +(h * (+g[J >> 2] - x));
H = I;
g[H >> 2] = y;
g[H +
4 >> 2] = z;
H = ~~e;
K = ~~+g[J >> 2];
if (((K | H | 0) > -1 ? (J = c[p >> 2] | 0, (H | 0) < (J | 0)) : 0) ? (K | 0) < (c[A >> 2] | 0) : 0) {
L = (aa(J, K) | 0) + H | 0;
if ((b | 0) < (F | 0)) {
M = F;
N = E
} else {
if ((b | 0) > 0) {
J = 0;
do J = J + 1 | 0;
while ((J | 0) != (b | 0))
}
J = (F | 0) > 0 ? F << 1 : 1;
M = J;
N = Zm(D, E, J << 4) | 0
}
c[N + (b << 4) >> 2] = H;
c[N + (b << 4) + 4 >> 2] = K;
c[N + (b << 4) + 8 >> 2] = L;
c[N + (b << 4) + 12 >> 2] = I;
O = M;
P = b + 1 | 0;
Q = N
} else {
O = F;
P = b;
Q = E
}
G = G + 1 | 0;
if ((G | 0) >= (c[j >> 2] | 0)) {
R = O;
S = P;
T = 0;
U = Q;
break
} else {
b = P;
F = O;
E = Q
}
}
} else {
R = B;
S = 0;
T = 0;
U = C
}
b:
while (1) {
C = T;
do {
if ((C | 0) == (S | 0))
break b;
V = c[U + (C << 4) >> 2] | 0;
W = c[U + (C << 4) + 4 >>
2] | 0;
X = c[U + (C << 4) + 8 >> 2] | 0;
Y = c[U + (C << 4) + 12 >> 2] | 0;
C = C + 1 | 0;
Z = (c[k >> 2] | 0) + (X << 2) | 0
} while ((c[Z >> 2] | 0) != 0);
c[Z >> 2] = Y;
if ((V | 0) > 0) {
I = V + -1 | 0;
L = X + -1 | 0;
if ((S | 0) >= (R | 0)) {
if ((C | 0) < (S | 0)) {
K = C;
do {
H = U + (K - C << 4) | 0;
B = U + (K << 4) | 0;
c[H + 0 >> 2] = c[B + 0 >> 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];
K = K + 1 | 0
} while ((K | 0) != (S | 0))
}
K = S - C | 0;
if ((K | 0) < (R | 0)) {
_ = U;
$ = K;
ba = R;
ca = 0
} else {
B = (R | 0) > 0 ? R << 1 : 1;
_ = Zm(D, U, B << 4) | 0;
$ = K;
ba = B;
ca = 0
}
} else {
_ = U;
$ = S;
ba = R;
ca = C
}
c[_ + ($ << 4) >> 2] = I;
c[_ + ($ << 4) + 4 >> 2] = W;
c[_ + ($ << 4) + 8 >> 2] = L;
c[_ + ($ <<
4) + 12 >> 2] = Y;
da = $ + 1 | 0;
ea = ba;
fa = ca;
ga = _
} else {
da = S;
ea = R;
fa = C;
ga = U
}
if ((W | 0) > 0) {
B = W + -1 | 0;
K = X - (c[p >> 2] | 0) | 0;
if ((da | 0) >= (ea | 0)) {
if ((fa | 0) < (da | 0)) {
H = fa;
do {
Q = ga + (H - fa << 4) | 0;
E = ga + (H << 4) | 0;
c[Q + 0 >> 2] = c[E + 0 >> 2];
c[Q + 4 >> 2] = c[E + 4 >> 2];
c[Q + 8 >> 2] = c[E + 8 >> 2];
c[Q + 12 >> 2] = c[E + 12 >> 2];
H = H + 1 | 0
} while ((H | 0) != (da | 0))
}
H = da - fa | 0;
if ((H | 0) < (ea | 0)) {
ha = ga;
ia = H;
ja = ea;
ka = 0
} else {
C = (ea | 0) > 0 ? ea << 1 : 1;
ha = Zm(D, ga, C << 4) | 0;
ia = H;
ja = C;
ka = 0
}
} else {
ha = ga;
ia = da;
ja = ea;
ka = fa
}
c[ha + (ia << 4) >> 2] = V;
c[ha + (ia << 4) + 4 >> 2] = B;
c[ha + (ia << 4) + 8 >> 2] = K;
c[ha + (ia << 4) + 12 >>
2] = Y;
la = ia + 1 | 0;
ma = ja;
na = ka;
oa = ha
} else {
la = da;
ma = ea;
na = fa;
oa = ga
}
if ((V | 0) < ((c[p >> 2] | 0) + -1 | 0)) {
C = V + 1 | 0;
H = X + 1 | 0;
if ((la | 0) >= (ma | 0)) {
if ((na | 0) < (la | 0)) {
L = na;
do {
I = oa + (L - na << 4) | 0;
E = oa + (L << 4) | 0;
c[I + 0 >> 2] = c[E + 0 >> 2];
c[I + 4 >> 2] = c[E + 4 >> 2];
c[I + 8 >> 2] = c[E + 8 >> 2];
c[I + 12 >> 2] = c[E + 12 >> 2];
L = L + 1 | 0
} while ((L | 0) != (la | 0))
}
L = la - na | 0;
if ((L | 0) < (ma | 0)) {
pa = oa;
qa = L;
ra = ma;
sa = 0
} else {
K = (ma | 0) > 0 ? ma << 1 : 1;
pa = Zm(D, oa, K << 4) | 0;
qa = L;
ra = K;
sa = 0
}
} else {
pa = oa;
qa = la;
ra = ma;
sa = na
}
c[pa + (qa << 4) >> 2] = C;
c[pa + (qa << 4) + 4 >> 2] = W;
c[pa + (qa << 4) + 8 >> 2] = H;
c[pa + (qa <<
4) + 12 >> 2] = Y;
ta = qa + 1 | 0;
ua = ra;
va = sa;
wa = pa
} else {
ta = la;
ua = ma;
va = na;
wa = oa
}
if ((W | 0) >= ((c[A >> 2] | 0) + -1 | 0)) {
R = ua;
S = ta;
T = va;
U = wa;
continue
}
K = W + 1 | 0;
L = (c[p >> 2] | 0) + X | 0;
if ((ta | 0) >= (ua | 0)) {
if ((va | 0) < (ta | 0)) {
B = va;
do {
E = wa + (B - va << 4) | 0;
I = wa + (B << 4) | 0;
c[E + 0 >> 2] = c[I + 0 >> 2];
c[E + 4 >> 2] = c[I + 4 >> 2];
c[E + 8 >> 2] = c[I + 8 >> 2];
c[E + 12 >> 2] = c[I + 12 >> 2];
B = B + 1 | 0
} while ((B | 0) != (ta | 0))
}
B = ta - va | 0;
if ((B | 0) < (ua | 0)) {
xa = wa;
ya = B;
za = ua;
Aa = 0
} else {
H = (ua | 0) > 0 ? ua << 1 : 1;
xa = Zm(D, wa, H << 4) | 0;
ya = B;
za = H;
Aa = 0
}
} else {
xa = wa;
ya = ta;
za = ua;
Aa = va
}
c[xa + (ya << 4) >> 2] = V;
c[xa +
(ya << 4) + 4 >> 2] = K;
c[xa + (ya << 4) + 8 >> 2] = L;
c[xa + (ya << 4) + 12 >> 2] = Y;
R = za;
S = ya + 1 | 0;
T = Aa;
U = xa
}
xa = c[A >> 2] | 0;
if ((xa | 0) > 0) {
Aa = c[p >> 2] | 0;
T = xa;
ya = U;
za = S;
Y = S;
V = R;
va = 0;
while (1) {
if ((Aa + -1 | 0) > 0) {
ua = Aa;
ta = Y;
wa = V;
X = za;
W = ya;
oa = 0;
while (1) {
na = (aa(ua, va) | 0) + oa | 0;
ma = c[k >> 2] | 0;
la = c[ma + (na << 2) >> 2] | 0;
pa = na + 1 | 0;
sa = c[ma + (pa << 2) >> 2] | 0;
if ((la | 0) == (sa | 0)) {
Ba = oa + 1 | 0;
Ca = ua;
Da = wa;
Ea = ta;
Fa = X;
Ga = W
} else {
if ((ta | 0) >= (wa | 0)) {
if ((X | 0) < (ta | 0)) {
ma = X;
do {
ra = W + (ma - X << 4) | 0;
qa = W + (ma << 4) | 0;
c[ra + 0 >> 2] = c[qa + 0 >> 2];
c[ra + 4 >> 2] = c[qa + 4 >> 2];
c[ra + 8 >> 2] = c[qa +
8 >> 2];
c[ra + 12 >> 2] = c[qa + 12 >> 2];
ma = ma + 1 | 0
} while ((ma | 0) != (ta | 0))
}
ma = ta - X | 0;
if ((ma | 0) < (wa | 0)) {
Ha = W;
Ia = ma;
Ja = wa;
Ka = 0
} else {
qa = (wa | 0) > 0 ? wa << 1 : 1;
Ha = Zm(D, W, qa << 4) | 0;
Ia = ma;
Ja = qa;
Ka = 0
}
} else {
Ha = W;
Ia = ta;
Ja = wa;
Ka = X
}
c[Ha + (Ia << 4) >> 2] = oa;
c[Ha + (Ia << 4) + 4 >> 2] = va;
c[Ha + (Ia << 4) + 8 >> 2] = na;
c[Ha + (Ia << 4) + 12 >> 2] = sa;
qa = Ia + 1 | 0;
ma = oa + 1 | 0;
if ((qa | 0) >= (Ja | 0)) {
if ((Ka | 0) < (qa | 0)) {
ra = Ka;
do {
ga = Ha + (ra - Ka << 4) | 0;
fa = Ha + (ra << 4) | 0;
c[ga + 0 >> 2] = c[fa + 0 >> 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];
ra = ra + 1 | 0
} while ((ra | 0) !=
(qa | 0))
}
ra = qa - Ka | 0;
if ((ra | 0) < (Ja | 0)) {
La = Ha;
Ma = ra;
Na = Ja;
Oa = 0
} else {
sa = (Ja | 0) > 0 ? Ja << 1 : 1;
La = Zm(D, Ha, sa << 4) | 0;
Ma = ra;
Na = sa;
Oa = 0
}
} else {
La = Ha;
Ma = qa;
Na = Ja;
Oa = Ka
}
c[La + (Ma << 4) >> 2] = ma;
c[La + (Ma << 4) + 4 >> 2] = va;
c[La + (Ma << 4) + 8 >> 2] = pa;
c[La + (Ma << 4) + 12 >> 2] = la;
Ba = ma;
Ca = c[p >> 2] | 0;
Da = Na;
Ea = Ma + 1 | 0;
Fa = Oa;
Ga = La
}
if ((Ba | 0) < (Ca + -1 | 0)) {
ua = Ca;
ta = Ea;
wa = Da;
X = Fa;
W = Ga;
oa = Ba
} else
break
}
Pa = Da;
Qa = Ea;
Ra = Fa;
Sa = Ga;
Ta = c[A >> 2] | 0;
Ua = Ca
} else {
Pa = V;
Qa = Y;
Ra = za;
Sa = ya;
Ta = T;
Ua = Aa
}
va = va + 1 | 0;
if ((va | 0) >= (Ta | 0)) {
Va = Pa;
Wa = Qa;
Xa = Ra;
Ya = Sa;
Za = Ta;
break
} else {
Aa =
Ua;
T = Ta;
ya = Sa;
za = Ra;
Y = Qa;
V = Pa
}
}
} else {
Va = R;
Wa = S;
Xa = S;
Ya = U;
Za = xa
}
if ((Za + -1 | 0) > 0) {
xa = c[p >> 2] | 0;
U = Za;
Za = Ya;
S = Xa;
R = Wa;
Pa = Va;
V = 0;
while (1) {
Qa = V;
V = V + 1 | 0;
if ((xa | 0) > 0) {
Y = xa;
Ra = R;
za = Pa;
Sa = S;
ya = Za;
Ta = 0;
while (1) {
T = (aa(Y, Qa) | 0) + Ta | 0;
Ua = c[k >> 2] | 0;
Aa = c[Ua + (T << 2) >> 2] | 0;
va = c[Ua + (T + Y << 2) >> 2] | 0;
if ((Aa | 0) == (va | 0)) {
_a = Y;
$a = za;
ab = Ra;
bb = Sa;
cb = ya
} else {
if ((Ra | 0) >= (za | 0)) {
if ((Sa | 0) < (Ra | 0)) {
Ua = Sa;
do {
Ca = ya + (Ua - Sa << 4) | 0;
Ga = ya + (Ua << 4) | 0;
c[Ca + 0 >> 2] = c[Ga + 0 >> 2];
c[Ca + 4 >> 2] = c[Ga + 4 >> 2];
c[Ca + 8 >> 2] = c[Ga + 8 >> 2];
c[Ca + 12 >> 2] = c[Ga + 12 >> 2];
Ua =
Ua + 1 | 0
} while ((Ua | 0) != (Ra | 0))
}
Ua = Ra - Sa | 0;
if ((Ua | 0) < (za | 0)) {
db = ya;
eb = Ua;
fb = za;
gb = 0
} else {
ma = (za | 0) > 0 ? za << 1 : 1;
db = Zm(D, ya, ma << 4) | 0;
eb = Ua;
fb = ma;
gb = 0
}
} else {
db = ya;
eb = Ra;
fb = za;
gb = Sa
}
c[db + (eb << 4) >> 2] = Ta;
c[db + (eb << 4) + 4 >> 2] = Qa;
c[db + (eb << 4) + 8 >> 2] = T;
c[db + (eb << 4) + 12 >> 2] = va;
ma = eb + 1 | 0;
Ua = (c[p >> 2] | 0) + T | 0;
if ((ma | 0) >= (fb | 0)) {
if ((gb | 0) < (ma | 0)) {
la = gb;
do {
pa = db + (la - gb << 4) | 0;
qa = db + (la << 4) | 0;
c[pa + 0 >> 2] = c[qa + 0 >> 2];
c[pa + 4 >> 2] = c[qa + 4 >> 2];
c[pa + 8 >> 2] = c[qa + 8 >> 2];
c[pa + 12 >> 2] = c[qa + 12 >> 2];
la = la + 1 | 0
} while ((la | 0) != (ma | 0))
}
la = ma - gb | 0;
if ((la | 0) < (fb | 0)) {
hb = db;
ib = la;
jb = fb;
kb = 0
} else {
T = (fb | 0) > 0 ? fb << 1 : 1;
hb = Zm(D, db, T << 4) | 0;
ib = la;
jb = T;
kb = 0
}
} else {
hb = db;
ib = ma;
jb = fb;
kb = gb
}
c[hb + (ib << 4) >> 2] = Ta;
c[hb + (ib << 4) + 4 >> 2] = V;
c[hb + (ib << 4) + 8 >> 2] = Ua;
c[hb + (ib << 4) + 12 >> 2] = Aa;
_a = c[p >> 2] | 0;
$a = jb;
ab = ib + 1 | 0;
bb = kb;
cb = hb
}
Ta = Ta + 1 | 0;
if ((Ta | 0) >= (_a | 0))
break;
else {
Y = _a;
Ra = ab;
za = $a;
Sa = bb;
ya = cb
}
}
lb = $a;
mb = ab;
nb = bb;
ob = cb;
pb = c[A >> 2] | 0;
qb = _a
} else {
lb = Pa;
mb = R;
nb = S;
ob = Za;
pb = U;
qb = xa
}
if ((V | 0) >= (pb + -1 | 0)) {
rb = lb;
sb = mb;
tb = nb;
ub = ob;
break
} else {
xa = qb;
U = pb;
Za = ob;
S = nb;
R = mb;
Pa = lb
}
}
} else {
rb =
Va;
sb = Wa;
tb = Xa;
ub = Ya
}
if ((tb | 0) == (sb | 0)) {
vb = ub;
_m(D, vb);
i = f;
return
} else {
wb = rb;
xb = sb;
yb = tb;
zb = ub
}
c:
while (1) {
ub = c[k >> 2] | 0;
tb = yb;
while (1) {
Ab = c[zb + (tb << 4) >> 2] | 0;
Bb = c[zb + (tb << 4) + 4 >> 2] | 0;
Cb = c[zb + (tb << 4) + 8 >> 2] | 0;
Db = c[zb + (tb << 4) + 12 >> 2] | 0;
tb = tb + 1 | 0;
Eb = ub + (Cb << 2) | 0;
sb = c[Eb >> 2] | 0;
if ((sb | 0) != (Db | 0) ? (x = +(Ab | 0), h = +g[sb >> 2] - x, s = +(Bb | 0), e = +g[sb + 4 >> 2] - s, z = +g[Db >> 2] - x, x = +g[Db + 4 >> 2] - s, h * h + e * e > z * z + x * x) : 0)
break;
if ((tb | 0) == (xb | 0)) {
vb = zb;
Fb = 122;
break c
}
}
c[Eb >> 2] = Db;
if ((Ab | 0) > 0) {
ub = Ab + -1 | 0;
sb = Cb + -1 | 0;
if ((xb | 0) >= (wb | 0)) {
if ((tb |
0) < (xb | 0)) {
rb = tb;
do {
Ya = zb + (rb - tb << 4) | 0;
Xa = zb + (rb << 4) | 0;
c[Ya + 0 >> 2] = c[Xa + 0 >> 2];
c[Ya + 4 >> 2] = c[Xa + 4 >> 2];
c[Ya + 8 >> 2] = c[Xa + 8 >> 2];
c[Ya + 12 >> 2] = c[Xa + 12 >> 2];
rb = rb + 1 | 0
} while ((rb | 0) != (xb | 0))
}
rb = xb - tb | 0;
if ((rb | 0) < (wb | 0)) {
Gb = zb;
Hb = rb;
Ib = wb;
Jb = 0
} else {
Xa = (wb | 0) > 0 ? wb << 1 : 1;
Gb = Zm(D, zb, Xa << 4) | 0;
Hb = rb;
Ib = Xa;
Jb = 0
}
} else {
Gb = zb;
Hb = xb;
Ib = wb;
Jb = tb
}
c[Gb + (Hb << 4) >> 2] = ub;
c[Gb + (Hb << 4) + 4 >> 2] = Bb;
c[Gb + (Hb << 4) + 8 >> 2] = sb;
c[Gb + (Hb << 4) + 12 >> 2] = Db;
Kb = Hb + 1 | 0;
Lb = Ib;
Mb = Jb;
Nb = Gb
} else {
Kb = xb;
Lb = wb;
Mb = tb;
Nb = zb
}
if ((Bb | 0) > 0) {
Xa = Bb + -1 | 0;
rb = Cb - (c[p >>
2] | 0) | 0;
if ((Kb | 0) >= (Lb | 0)) {
if ((Mb | 0) < (Kb | 0)) {
Ya = Mb;
do {
Wa = Nb + (Ya - Mb << 4) | 0;
Va = Nb + (Ya << 4) | 0;
c[Wa + 0 >> 2] = c[Va + 0 >> 2];
c[Wa + 4 >> 2] = c[Va + 4 >> 2];
c[Wa + 8 >> 2] = c[Va + 8 >> 2];
c[Wa + 12 >> 2] = c[Va + 12 >> 2];
Ya = Ya + 1 | 0
} while ((Ya | 0) != (Kb | 0))
}
Ya = Kb - Mb | 0;
if ((Ya | 0) < (Lb | 0)) {
Ob = Nb;
Pb = Ya;
Qb = Lb;
Rb = 0
} else {
tb = (Lb | 0) > 0 ? Lb << 1 : 1;
Ob = Zm(D, Nb, tb << 4) | 0;
Pb = Ya;
Qb = tb;
Rb = 0
}
} else {
Ob = Nb;
Pb = Kb;
Qb = Lb;
Rb = Mb
}
c[Ob + (Pb << 4) >> 2] = Ab;
c[Ob + (Pb << 4) + 4 >> 2] = Xa;
c[Ob + (Pb << 4) + 8 >> 2] = rb;
c[Ob + (Pb << 4) + 12 >> 2] = Db;
Sb = Pb + 1 | 0;
Tb = Qb;
Ub = Rb;
Vb = Ob
} else {
Sb = Kb;
Tb = Lb;
Ub = Mb;
Vb = Nb
}
if ((Ab |
0) < ((c[p >> 2] | 0) + -1 | 0)) {
tb = Ab + 1 | 0;
Ya = Cb + 1 | 0;
if ((Sb | 0) >= (Tb | 0)) {
if ((Ub | 0) < (Sb | 0)) {
sb = Ub;
do {
ub = Vb + (sb - Ub << 4) | 0;
Va = Vb + (sb << 4) | 0;
c[ub + 0 >> 2] = c[Va + 0 >> 2];
c[ub + 4 >> 2] = c[Va + 4 >> 2];
c[ub + 8 >> 2] = c[Va + 8 >> 2];
c[ub + 12 >> 2] = c[Va + 12 >> 2];
sb = sb + 1 | 0
} while ((sb | 0) != (Sb | 0))
}
sb = Sb - Ub | 0;
if ((sb | 0) < (Tb | 0)) {
Wb = Vb;
Xb = sb;
Yb = Tb;
Zb = 0
} else {
rb = (Tb | 0) > 0 ? Tb << 1 : 1;
Wb = Zm(D, Vb, rb << 4) | 0;
Xb = sb;
Yb = rb;
Zb = 0
}
} else {
Wb = Vb;
Xb = Sb;
Yb = Tb;
Zb = Ub
}
c[Wb + (Xb << 4) >> 2] = tb;
c[Wb + (Xb << 4) + 4 >> 2] = Bb;
c[Wb + (Xb << 4) + 8 >> 2] = Ya;
c[Wb + (Xb << 4) + 12 >> 2] = Db;
_b = Xb + 1 | 0;
$b = Yb;
ac = Zb;
bc =
Wb
} else {
_b = Sb;
$b = Tb;
ac = Ub;
bc = Vb
}
if ((Bb | 0) < ((c[A >> 2] | 0) + -1 | 0)) {
rb = Bb + 1 | 0;
sb = (c[p >> 2] | 0) + Cb | 0;
if ((_b | 0) >= ($b | 0)) {
if ((ac | 0) < (_b | 0)) {
Xa = ac;
do {
Va = bc + (Xa - ac << 4) | 0;
ub = bc + (Xa << 4) | 0;
c[Va + 0 >> 2] = c[ub + 0 >> 2];
c[Va + 4 >> 2] = c[ub + 4 >> 2];
c[Va + 8 >> 2] = c[ub + 8 >> 2];
c[Va + 12 >> 2] = c[ub + 12 >> 2];
Xa = Xa + 1 | 0
} while ((Xa | 0) != (_b | 0))
}
Xa = _b - ac | 0;
if ((Xa | 0) < ($b | 0)) {
cc = bc;
dc = Xa;
ec = $b;
fc = 0
} else {
Ya = ($b | 0) > 0 ? $b << 1 : 1;
cc = Zm(D, bc, Ya << 4) | 0;
dc = Xa;
ec = Ya;
fc = 0
}
} else {
cc = bc;
dc = _b;
ec = $b;
fc = ac
}
c[cc + (dc << 4) >> 2] = Ab;
c[cc + (dc << 4) + 4 >> 2] = rb;
c[cc + (dc << 4) + 8 >> 2] = sb;
c[cc + (dc << 4) + 12 >> 2] = Db;
gc = ec;
hc = dc + 1 | 0;
ic = fc;
jc = cc
} else {
gc = $b;
hc = _b;
ic = ac;
jc = bc
}
if ((ic | 0) == (hc | 0)) {
vb = jc;
Fb = 122;
break
} else {
wb = gc;
xb = hc;
yb = ic;
zb = jc
}
}
if ((Fb | 0) == 122) {
_m(D, vb);
i = f;
return
}
}
function lk(b, d) {
b = b | 0;
d = d | 0;
var e = 0,
f = 0,
g = 0,
h = 0,
j = 0,
k = 0,
l = 0,
m = 0,
n = 0,
o = 0,
p = 0,
q = 0,
r = 0,
s = 0,
t = 0,
u = 0;
e = i;
f = b + 20 | 0;
g = c[f >> 2] | 0;
if ((g + -1 | 0) <= 0) {
i = e;
return
}
h = b + 16 | 0;
j = b + 24 | 0;
b = c[h >> 2] | 0;
k = g;
g = 0;
while (1) {
if ((b + -1 | 0) > 0) {
l = b;
m = 0;
do {
n = (aa(l, g) | 0) + m | 0;
o = c[j >> 2] | 0;
p = c[o + (n << 2) >> 2] | 0;
q = n + 1 | 0;
r = c[o + (q << 2) >> 2] | 0;
s = c[o + (n + l << 2) >> 2] |
0;
n = c[o + (q + l << 2) >> 2] | 0;
do if ((r | 0) != (s | 0)) {
do if (!((p | 0) == (r | 0) | (p | 0) == (s | 0))) {
if (((a[p + 12 >> 0] | 0) == 0 ? (a[r + 12 >> 0] | 0) == 0 : 0) ? (a[s + 12 >> 0] | 0) == 0 : 0)
break;
pb[c[(c[d >> 2] | 0) + 8 >> 2] & 31](d, c[p + 8 >> 2] | 0, c[r + 8 >> 2] | 0, c[s + 8 >> 2] | 0)
}
while (0);
if (!((n | 0) == (r | 0) | (n | 0) == (s | 0))) {
if (((a[r + 12 >> 0] | 0) == 0 ? (a[n + 12 >> 0] | 0) == 0 : 0) ? (a[s + 12 >> 0] | 0) == 0 : 0)
break;
pb[c[(c[d >> 2] | 0) + 8 >> 2] & 31](d, c[r + 8 >> 2] | 0, c[n + 8 >> 2] | 0, c[s + 8 >> 2] | 0)
}
}
while (0);
m = m + 1 | 0;
l = c[h >> 2] | 0
} while ((m | 0) < (l + -1 | 0));
t = c[f >> 2] | 0;
u = l
} else {
t = k;
u = b
}
g = g + 1 | 0;
if ((g | 0) >= (t + -1 | 0))
break;
else {
b = u;
k = t
}
}
i = e;
return
}
function mk(a) {
a = a | 0;
var b = 0,
d = 0,
e = 0,
f = 0,
h = 0,
j = 0;
b = i;
d = a + 40 | 0;
e = a + 48 | 0;
f = a + 16 | 0;
c[a + 0 >> 2] = 0;
c[a + 4 >> 2] = 0;
c[a + 8 >> 2] = 0;
c[a + 12 >> 2] = 0;
g[f >> 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;
f = 8784;
h = c[f + 4 >> 2] | 0;
j = d;
c[j >> 2] = c[f >> 2];
c[j + 4 >> 2] = h;
h = 8784;
j = c[h + 4 >> 2] | 0;
f = e;
c[f >> 2] = c[h >> 2];
c[f + 4 >> 2] = j;
j = a + 56 | 0;
f = a + 72 | 0;
c[j + 0 >> 2] = 0;
c[j + 4 >> 2] = 0;
c[j + 8 >> 2] = 0;
c[j + 12 >> 2] = 0;
g[f >> 2] = 1;
c[a + 76 >> 2] = 0;
i = b;
return
}
function nk(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;
b = i;
d = a + 28 | 0;
e = c[a >> 2] | 0;
f = c[e + 4 >> 2] | 0;
if ((c[d >> 2] | 0) == (f | 0)) {
i = b;
return
}
h = +g[e + 32 >> 2] * .75;
j = h * +g[e + 320 >> 2] * h;
k = a + 32 | 0;
g[k >> 2] = 0;
l = a + 40 | 0;
m = a + 44 | 0;
n = a + 48 | 0;
o = a + 52 | 0;
p = a + 4 | 0;
c[l + 0 >> 2] = 0;
c[l + 4 >> 2] = 0;
c[l + 8 >> 2] = 0;
c[l + 12 >> 2] = 0;
q = c[p >> 2] | 0;
p = c[a + 8 >> 2] | 0;
r = (q | 0) < (p | 0);
if (r) {
s = c[e + 96 >> 2] | 0;
t = c[e + 104 >> 2] | 0;
h = 0;
u = 0;
v = 0;
w = 0;
x = 0;
y = q;
do {
h = j + h;
g[k >> 2] = h;
z = j * +g[s + (y << 3) + 4 >> 2];
u = j * +g[s + (y << 3) >> 2] + u;
g[l >> 2] = u;
v = z + v;
g[m >> 2] = v;
z = j * +g[t + (y <<
3) + 4 >> 2];
w = j * +g[t + (y << 3) >> 2] + w;
g[n >> 2] = w;
x = z + x;
g[o >> 2] = x;
y = y + 1 | 0
} while ((y | 0) < (p | 0));
if (h > 0) {
z = 1 / h;
A = z * u;
g[l >> 2] = A;
B = z * v;
g[m >> 2] = B;
z = 1 / h;
h = z * w;
g[n >> 2] = h;
C = z * x;
g[o >> 2] = C;
D = A;
E = B;
F = h;
G = C
} else {
D = u;
E = v;
F = w;
G = x
}
o = a + 36 | 0;
g[o >> 2] = 0;
n = a + 56 | 0;
g[n >> 2] = 0;
if (r) {
r = c[e + 96 >> 2] | 0;
m = c[e + 104 >> 2] | 0;
x = 0;
w = 0;
e = q;
do {
v = +g[r + (e << 3) >> 2] - D;
u = +g[r + (e << 3) + 4 >> 2] - E;
C = +g[m + (e << 3) >> 2] - F;
h = +g[m + (e << 3) + 4 >> 2] - G;
x = j * (v * v + u * u) + x;
g[o >> 2] = x;
w = w + j * (v * h - u * C);
g[n >> 2] = w;
e = e + 1 | 0
} while ((e | 0) < (p | 0));
if (x > 0)
g[n >> 2] = 1 / x * w
}
} else {
g[a + 36 >> 2] = 0;
g[a +
56 >> 2] = 0
}
c[d >> 2] = f;
i = b;
return
}
function ok(a, b) {
a = a | 0;
b = b | 0;
var d = 0;
d = i;
nl(c[a >> 2] | 0, c[a + 4 >> 2] | 0, c[a + 8 >> 2] | 0, b);
i = d;
return
}
function pk(a, b) {
a = a | 0;
b = b | 0;
var d = 0;
d = i;
ol(c[a >> 2] | 0, c[a + 4 >> 2] | 0, c[a + 8 >> 2] | 0, b);
i = d;
return
}
function qk(a, b) {
a = a | 0;
b = b | 0;
var d = 0,
e = 0,
f = 0,
g = 0,
h = 0,
j = 0;
d = i;
e = c[a >> 2] | 0;
if ((c[(c[e + 400 >> 2] | 0) + 102876 >> 2] & 2 | 0) != 0) {
i = d;
return
}
f = c[a + 4 >> 2] | 0;
g = a + 8 | 0;
if ((f | 0) < (c[g >> 2] | 0)) {
h = e;
j = f
} else {
i = d;
return
}
while (1) {
Bk(h, j, b);
f = j + 1 | 0;
if ((f | 0) >= (c[g >> 2] | 0))
break;
h = c[a >> 2] | 0;
j = f
}
i = d;
return
}
function rk(b,
d, e) {
b = b | 0;
d = d | 0;
e = e | 0;
var f = 0,
h = 0,
j = 0,
k = 0,
l = 0,
m = 0,
n = 0,
o = 0,
p = 0,
q = 0,
r = 0;
f = i;
h = b + 52 | 0;
c[b + 56 >> 2] = h;
c[h >> 2] = h;
c[b + 60 >> 2] = 256;
h = b + 64 | 0;
c[b + 68 >> 2] = h;
c[h >> 2] = h;
h = b + 72 | 0;
c[b + 76 >> 2] = h;
c[h >> 2] = h;
h = b + 80 | 0;
c[b + 136 >> 2] = 0;
c[b + 140 >> 2] = 0;
c[b + 148 >> 2] = 0;
c[b + 152 >> 2] = 0;
j = b + 160 | 0;
k = b + 196 | 0;
c[h + 0 >> 2] = 0;
c[h + 4 >> 2] = 0;
c[h + 8 >> 2] = 0;
c[h + 12 >> 2] = 0;
c[h + 16 >> 2] = 0;
c[h + 20 >> 2] = 0;
c[h + 24 >> 2] = 0;
c[h + 28 >> 2] = 0;
h = j + 0 | 0;
j = h + 36 | 0;
do {
c[h >> 2] = 0;
h = h + 4 | 0
} while ((h | 0) < (j | 0));
c[k >> 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;
k = b + 280 | 0;
l = b + 316 | 0;
a[l >> 0] = 0;
m = b + 320 | 0;
c[k + 0 >> 2] = 0;
c[k + 4 >> 2] = 0;
c[k + 8 >> 2] = 0;
c[k + 12 >> 2] = 0;
g[m >> 2] = 1;
n = b + 324 | 0;
g[n >> 2] = 1;
g[b + 328 >> 2] = 1;
o = b + 332 | 0;
c[o >> 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;
p = b + 392 | 0;
a[p >> 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[l >> 0] = a[d >> 0] | 0;
q = +g[d + 4 >> 2];
g[m >> 2] = q;
g[b + 28 >> 2] = 1 / q;
g[n >> 2] = +g[d + 8 >> 2];
q = +g[d + 12 >> 2] * 2;
g[b + 32 >> 2] = q;
g[b + 40 >> 2] = q * q;
g[b + 36 >> 2] = 1 / q;
c[o >> 2] = c[d + 16 >> 2];
c[b + 44 >> 2] = 0;
o = b + 48 | 0;
c[o >> 2] = 0;
n = b + 112 | 0;
c[b + 144 >> 2] = 0;
c[b + 308 >> 2] = 0;
c[b + 312 >> 2] = 0;
c[n + 0 >> 2] = 0;
c[n + 4 >> 2] = 0;
c[n + 8 >> 2] = 0;
c[n + 12 >> 2] = 0;
c[n + 16 >> 2] = 0;
c[n + 20 >> 2] = 0;
h = l + 0 | 0;
l = d + 0 | 0;
j = h + 84 | 0;
do {
c[h >> 2] = c[l >> 2];
h = h + 4 | 0;
l = l + 4 | 0
} while ((h | 0) < (j | 0));
l = b + 400 | 0;
c[l >> 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[p >> 0] | 0;
if (e << 24 >> 24 == 0) {
a[p >> 0] = e;
i = f;
return
}
h = c[k >> 2] | 0;
if ((h | 0) == 0) {
vk(b, 256);
b = Em(c[l >> 2] | 0, c[o >> 2] << 2) | 0;
xn(b | 0, 0, c[o >> 2] << 2 | 0) | 0;
r = b
} else
r = h;
c[k >> 2] = r;
a[p >> 0] = e;
i = f;
return
}
function sk(a) {
a = a | 0;
var b = 0,
d = 0,
e = 0,
f = 0,
g =
0;
b = i;
d = a + 312 | 0;
while (1) {
e = c[d >> 2] | 0;
if ((e | 0) == 0)
break;
tk(a, e)
}
if ((c[a + 84 >> 2] | 0) == 0 ? (d = a + 80 | 0, e = c[d >> 2] | 0, (e | 0) != 0) : 0) {
Fm(c[a + 400 >> 2] | 0, e, c[a + 48 >> 2] << 2);
c[d >> 2] = 0
}
if ((c[a + 92 >> 2] | 0) == 0 ? (d = a + 88 | 0, e = c[d >> 2] | 0, (e | 0) != 0) : 0) {
Fm(c[a + 400 >> 2] | 0, e, c[a + 48 >> 2] << 2);
c[d >> 2] = 0
}
if ((c[a + 164 >> 2] | 0) == 0 ? (d = a + 160 | 0, e = c[d >> 2] | 0, (e | 0) != 0) : 0) {
Fm(c[a + 400 >> 2] | 0, e, c[a + 48 >> 2] << 2);
c[d >> 2] = 0
}
if ((c[a + 172 >> 2] | 0) == 0 ? (d = a + 168 | 0, e = c[d >> 2] | 0, (e | 0) != 0) : 0) {
Fm(c[a + 400 >> 2] | 0, e, c[a + 48 >> 2] << 2);
c[d >> 2] = 0
}
if ((c[a + 180 >> 2] | 0) == 0 ? (d = a + 176 | 0, e =
c[d >> 2] | 0, (e | 0) != 0) : 0) {
Fm(c[a + 400 >> 2] | 0, e, c[a + 48 >> 2] << 2);
c[d >> 2] = 0
}
if ((c[a + 100 >> 2] | 0) == 0 ? (d = a + 96 | 0, e = c[d >> 2] | 0, (e | 0) != 0) : 0) {
Fm(c[a + 400 >> 2] | 0, e, c[a + 48 >> 2] << 3);
c[d >> 2] = 0
}
if ((c[a + 108 >> 2] | 0) == 0 ? (d = a + 104 | 0, e = c[d >> 2] | 0, (e | 0) != 0) : 0) {
Fm(c[a + 400 >> 2] | 0, e, c[a + 48 >> 2] << 3);
c[d >> 2] = 0
}
if ((c[a + 140 >> 2] | 0) == 0 ? (d = a + 136 | 0, e = c[d >> 2] | 0, (e | 0) != 0) : 0) {
Fm(c[a + 400 >> 2] | 0, e, c[a + 48 >> 2] << 2);
c[d >> 2] = 0
}
if ((c[a + 152 >> 2] | 0) == 0 ? (d = a + 148 | 0, e = c[d >> 2] | 0, (e | 0) != 0) : 0) {
Fm(c[a + 400 >> 2] | 0, e, c[a + 48 >> 2] << 2);
c[d >> 2] = 0
}
if ((c[a + 284 >> 2] | 0) == 0 ? (d = a +
280 | 0, e = c[d >> 2] | 0, (e | 0) != 0) : 0) {
Fm(c[a + 400 >> 2] | 0, e, c[a + 48 >> 2] << 2);
c[d >> 2] = 0
}
if ((c[a + 292 >> 2] | 0) == 0 ? (d = a + 288 | 0, e = c[d >> 2] | 0, (e | 0) != 0) : 0) {
Fm(c[a + 400 >> 2] | 0, e, c[a + 48 >> 2] << 2);
c[d >> 2] = 0
}
d = a + 112 | 0;
e = a + 48 | 0;
f = c[d >> 2] | 0;
if ((f | 0) != 0) {
Fm(c[a + 400 >> 2] | 0, f, c[e >> 2] << 3);
c[d >> 2] = 0
}
d = a + 116 | 0;
f = c[d >> 2] | 0;
if ((f | 0) != 0) {
Fm(c[a + 400 >> 2] | 0, f, c[e >> 2] << 2);
c[d >> 2] = 0
}
d = a + 120 | 0;
f = c[d >> 2] | 0;
if ((f | 0) != 0) {
Fm(c[a + 400 >> 2] | 0, f, c[e >> 2] << 2);
c[d >> 2] = 0
}
d = a + 124 | 0;
f = c[d >> 2] | 0;
if ((f | 0) != 0) {
Fm(c[a + 400 >> 2] | 0, f, c[e >> 2] << 2);
c[d >> 2] = 0
}
d = a + 128 | 0;
f =
c[d >> 2] | 0;
if ((f | 0) != 0) {
Fm(c[a + 400 >> 2] | 0, f, c[e >> 2] << 3);
c[d >> 2] = 0
}
d = a + 132 | 0;
f = c[d >> 2] | 0;
if ((f | 0) != 0) {
Fm(c[a + 400 >> 2] | 0, f, c[e >> 2] << 2);
c[d >> 2] = 0
}
d = a + 144 | 0;
f = c[d >> 2] | 0;
if ((f | 0) != 0) {
Fm(c[a + 400 >> 2] | 0, f, c[e >> 2] << 2);
c[d >> 2] = 0
}
d = a + 264 | 0;
e = c[d >> 2] | 0;
if ((e | 0) != 0) {
f = a + 272 | 0;
Fm(c[a + 276 >> 2] | 0, e, (c[f >> 2] | 0) * 60 | 0);
c[d >> 2] = 0;
c[f >> 2] = 0;
c[a + 268 >> 2] = 0
}
f = a + 248 | 0;
d = c[f >> 2] | 0;
if ((d | 0) != 0) {
e = a + 256 | 0;
Fm(c[a + 260 >> 2] | 0, d, (c[e >> 2] | 0) * 20 | 0);
c[f >> 2] = 0;
c[e >> 2] = 0;
c[a + 252 >> 2] = 0
}
e = a + 232 | 0;
f = c[e >> 2] | 0;
if ((f | 0) != 0) {
d = a + 240 | 0;
Fm(c[a + 244 >>
2] | 0, f, (c[d >> 2] | 0) * 28 | 0);
c[e >> 2] = 0;
c[d >> 2] = 0;
c[a + 236 >> 2] = 0
}
d = a + 216 | 0;
e = c[d >> 2] | 0;
if ((e | 0) != 0) {
f = a + 224 | 0;
Fm(c[a + 228 >> 2] | 0, e, (c[f >> 2] | 0) * 24 | 0);
c[d >> 2] = 0;
c[f >> 2] = 0;
c[a + 220 >> 2] = 0
}
f = a + 200 | 0;
d = c[f >> 2] | 0;
if ((d | 0) != 0) {
e = a + 208 | 0;
Fm(c[a + 212 >> 2] | 0, d, c[e >> 2] << 3);
c[f >> 2] = 0;
c[e >> 2] = 0;
c[a + 204 >> 2] = 0
}
e = a + 184 | 0;
f = c[e >> 2] | 0;
if ((f | 0) == 0) {
g = a + 52 | 0;
Tl(g);
i = b;
return
}
d = a + 192 | 0;
Fm(c[a + 196 >> 2] | 0, f, c[d >> 2] << 2);
c[e >> 2] = 0;
c[d >> 2] = 0;
c[a + 188 >> 2] = 0;
g = a + 52 | 0;
Tl(g);
i = b;
return
}
function tk(b, d) {
b = b | 0;
d = d | 0;
var e = 0,
f = 0,
g = 0,
h = 0,
j = 0,
k =
0,
l = 0,
m = 0,
n = 0,
o = 0;
e = i;
f = b + 400 | 0;
g = c[(c[f >> 2] | 0) + 102992 >> 2] | 0;
if ((g | 0) != 0)
gb[c[(c[g >> 2] | 0) + 16 >> 2] & 63](g, d);
g = d + 12 | 0;
h = c[g >> 2] | 0;
j = h << 4;
k = j & 16;
if ((((j | -17) ^ 16) & h | 0) != 0)
a[b + 20 >> 0] = 1;
h = b + 16 | 0;
j = c[h >> 2] | 0;
if ((k & ~j | 0) != 0)
c[h >> 2] = j | k;
c[g >> 2] = k;
k = c[d + 4 >> 2] | 0;
g = c[d + 8 >> 2] | 0;
if ((k | 0) < (g | 0)) {
j = b + 144 | 0;
h = k;
do {
c[(c[j >> 2] | 0) + (h << 2) >> 2] = 0;
h = h + 1 | 0
} while ((h | 0) < (g | 0))
}
g = d + 20 | 0;
h = c[g >> 2] | 0;
j = d + 24 | 0;
if ((h | 0) != 0)
c[h + 24 >> 2] = c[j >> 2];
h = c[j >> 2] | 0;
if ((h | 0) != 0)
c[h + 20 >> 2] = c[g >> 2];
g = b + 312 | 0;
if ((c[g >> 2] | 0) != (d | 0)) {
l = b + 308 | 0;
m =
c[l >> 2] | 0;
n = m + -1 | 0;
c[l >> 2] = n;
o = c[f >> 2] | 0;
Fm(o, d, 80);
i = e;
return
}
c[g >> 2] = c[j >> 2];
l = b + 308 | 0;
m = c[l >> 2] | 0;
n = m + -1 | 0;
c[l >> 2] = n;
o = c[f >> 2] | 0;
Fm(o, d, 80);
i = e;
return
}
function uk(a) {
a = a | 0;
var b = 0,
d = 0,
e = 0,
f = 0,
g = 0,
h = 0;
b = i;
d = a + 136 | 0;
e = c[d >> 2] | 0;
if ((e | 0) != 0) {
f = e;
c[d >> 2] = f;
i = b;
return f | 0
}
e = a + 48 | 0;
g = c[e >> 2] | 0;
if ((g | 0) == 0) {
vk(a, 256);
h = c[e >> 2] | 0
} else
h = g;
g = Em(c[a + 400 >> 2] | 0, h << 2) | 0;
xn(g | 0, 0, c[e >> 2] << 2 | 0) | 0;
f = g;
c[d >> 2] = f;
i = b;
return f | 0
}
function vk(a, b) {
a = a | 0;
b = b | 0;
var d = 0,
e = 0,
f = 0,
g = 0,
h = 0,
j = 0,
k = 0,
l = 0,
m = 0,
n = 0,
o = 0,
p = 0,
q = 0,
r = 0,
s = 0,
t = 0,
u = 0,
v = 0,
w = 0,
x = 0,
y = 0,
z = 0,
A = 0,
B = 0,
C = 0,
D = 0,
E = 0,
F = 0,
G = 0;
d = i;
e = c[a + 332 >> 2] | 0;
if ((e | 0) == 0)
f = b;
else
f = (e | 0) < (b | 0) ? e : b;
b = a + 92 | 0;
e = c[b >> 2] | 0;
if ((e | 0) == 0)
g = f;
else
g = (f | 0) > (e | 0) ? e : f;
f = a + 100 | 0;
e = c[f >> 2] | 0;
if ((e | 0) == 0)
h = g;
else
h = (g | 0) > (e | 0) ? e : g;
g = a + 108 | 0;
e = c[g >> 2] | 0;
if ((e | 0) == 0)
j = h;
else
j = (h | 0) > (e | 0) ? e : h;
h = a + 140 | 0;
e = c[h >> 2] | 0;
if ((e | 0) == 0)
k = j;
else
k = (j | 0) > (e | 0) ? e : j;
j = a + 152 | 0;
e = c[j >> 2] | 0;
if ((e | 0) == 0)
l = k;
else
l = (k | 0) > (e | 0) ? e : k;
k = a + 48 | 0;
e = c[k >> 2] | 0;
if ((e | 0) >= (l | 0)) {
i = d;
return
}
m = a + 80 | 0;
n = c[m >> 2] | 0;
o = (n |
0) == 0;
if ((c[a + 84 >> 2] | 0) == 0 & (o ^ 1)) {
p = a + 400 | 0;
q = Em(c[p >> 2] | 0, l << 2) | 0;
if (o)
r = q;
else {
o = e << 2;
An(q | 0, n | 0, o | 0) | 0;
Fm(c[p >> 2] | 0, n, o);
r = q
}
} else
r = n;
c[m >> 2] = r;
r = c[k >> 2] | 0;
c[a + 60 >> 2] = l - r;
m = a + 88 | 0;
n = c[m >> 2] | 0;
if ((c[b >> 2] | 0) == 0) {
b = a + 400 | 0;
q = Em(c[b >> 2] | 0, l << 2) | 0;
if ((n | 0) == 0)
s = q;
else {
o = r << 2;
An(q | 0, n | 0, o | 0) | 0;
Fm(c[b >> 2] | 0, n, o);
s = q
}
} else
s = n;
c[m >> 2] = s;
s = (c[a + 156 >> 2] | 0) > 0;
m = c[k >> 2] | 0;
n = a + 160 | 0;
q = c[n >> 2] | 0;
o = (q | 0) == 0;
if ((c[a + 164 >> 2] | 0) == 0 & (o & s ^ 1)) {
b = a + 400 | 0;
r = Em(c[b >> 2] | 0, l << 2) | 0;
if (o)
t = r;
else {
o = m << 2;
An(r | 0, q | 0, o | 0) |
0;
Fm(c[b >> 2] | 0, q, o);
t = r
}
} else
t = q;
c[n >> 2] = t;
t = c[k >> 2] | 0;
n = a + 168 | 0;
q = c[n >> 2] | 0;
r = (q | 0) == 0;
if ((c[a + 172 >> 2] | 0) == 0 & (r & s ^ 1)) {
o = a + 400 | 0;
b = Em(c[o >> 2] | 0, l << 2) | 0;
if (r)
u = b;
else {
r = t << 2;
An(b | 0, q | 0, r | 0) | 0;
Fm(c[o >> 2] | 0, q, r);
u = b
}
} else
u = q;
c[n >> 2] = u;
u = c[k >> 2] | 0;
n = a + 176 | 0;
q = c[n >> 2] | 0;
b = (q | 0) == 0;
if ((c[a + 180 >> 2] | 0) == 0 & (b & s ^ 1)) {
s = a + 400 | 0;
r = Em(c[s >> 2] | 0, l << 2) | 0;
if (b)
v = r;
else {
b = u << 2;
An(r | 0, q | 0, b | 0) | 0;
Fm(c[s >> 2] | 0, q, b);
v = r
}
} else
v = q;
c[n >> 2] = v;
v = c[k >> 2] | 0;
n = a + 96 | 0;
q = c[n >> 2] | 0;
if ((c[f >> 2] | 0) == 0) {
f = a + 400 | 0;
r = Em(c[f >> 2] | 0,
l << 3) | 0;
if ((q | 0) == 0)
w = r;
else {
b = v << 3;
An(r | 0, q | 0, b | 0) | 0;
Fm(c[f >> 2] | 0, q, b);
w = r
}
} else
w = q;
c[n >> 2] = w;
w = c[k >> 2] | 0;
n = a + 104 | 0;
q = c[n >> 2] | 0;
if ((c[g >> 2] | 0) == 0) {
g = a + 400 | 0;
r = l << 3;
b = Em(c[g >> 2] | 0, r) | 0;
if ((q | 0) == 0) {
x = b;
y = r;
z = g
} else {
f = w << 3;
An(b | 0, q | 0, f | 0) | 0;
Fm(c[g >> 2] | 0, q, f);
x = b;
y = r;
z = g
}
} else {
x = q;
y = l << 3;
z = a + 400 | 0
}
c[n >> 2] = x;
x = a + 112 | 0;
n = c[x >> 2] | 0;
q = c[k >> 2] | 0;
g = Em(c[z >> 2] | 0, y) | 0;
if ((n | 0) != 0) {
r = q << 3;
An(g | 0, n | 0, r | 0) | 0;
Fm(c[z >> 2] | 0, n, r)
}
c[x >> 2] = g;
g = a + 116 | 0;
x = c[g >> 2] | 0;
r = c[k >> 2] | 0;
n = l << 2;
q = Em(c[z >> 2] | 0, n) | 0;
if ((x | 0) != 0) {
b =
r << 2;
An(q | 0, x | 0, b | 0) | 0;
Fm(c[z >> 2] | 0, x, b)
}
c[g >> 2] = q;
q = a + 120 | 0;
g = c[q >> 2] | 0;
if ((g | 0) == 0)
A = 0;
else {
b = c[k >> 2] | 0;
x = Em(c[z >> 2] | 0, n) | 0;
r = b << 2;
An(x | 0, g | 0, r | 0) | 0;
Fm(c[z >> 2] | 0, g, r);
A = x
}
c[q >> 2] = A;
A = a + 124 | 0;
q = c[A >> 2] | 0;
x = c[k >> 2] | 0;
r = Em(c[z >> 2] | 0, n) | 0;
if ((q | 0) != 0) {
g = x << 2;
An(r | 0, q | 0, g | 0) | 0;
Fm(c[z >> 2] | 0, q, g)
}
c[A >> 2] = r;
r = a + 128 | 0;
A = c[r >> 2] | 0;
if ((A | 0) == 0)
B = 0;
else {
g = c[k >> 2] | 0;
q = Em(c[z >> 2] | 0, y) | 0;
y = g << 3;
An(q | 0, A | 0, y | 0) | 0;
Fm(c[z >> 2] | 0, A, y);
B = q
}
c[r >> 2] = B;
B = a + 132 | 0;
r = c[B >> 2] | 0;
if ((r | 0) == 0)
C = 0;
else {
q = c[k >> 2] | 0;
y = Em(c[z >> 2] |
0, n) | 0;
A = q << 2;
An(y | 0, r | 0, A | 0) | 0;
Fm(c[z >> 2] | 0, r, A);
C = y
}
c[B >> 2] = C;
C = c[k >> 2] | 0;
B = a + 136 | 0;
y = c[B >> 2] | 0;
A = (y | 0) == 0;
do if ((c[h >> 2] | 0) == 0 & (A ^ 1)) {
r = Em(c[z >> 2] | 0, n) | 0;
if (A) {
D = r;
break
}
q = C << 2;
An(r | 0, y | 0, q | 0) | 0;
Fm(c[z >> 2] | 0, y, q);
D = r
} else
D = y;
while (0);
c[B >> 2] = D;
D = a + 144 | 0;
B = c[D >> 2] | 0;
y = c[k >> 2] | 0;
C = Em(c[z >> 2] | 0, n) | 0;
if ((B | 0) != 0) {
A = y << 2;
An(C | 0, B | 0, A | 0) | 0;
Fm(c[z >> 2] | 0, B, A)
}
c[D >> 2] = C;
C = c[k >> 2] | 0;
D = a + 148 | 0;
A = c[D >> 2] | 0;
B = (A | 0) == 0;
do if ((c[j >> 2] | 0) == 0 & (B ^ 1)) {
y = Em(c[z >> 2] | 0, n) | 0;
if (B) {
E = y;
break
}
h = C << 2;
An(y | 0, A | 0, h | 0) | 0;
Fm(c[z >> 2] | 0, A, h);
E = y
} else
E = A;
while (0);
c[D >> 2] = E;
E = c[k >> 2] | 0;
D = a + 280 | 0;
A = c[D >> 2] | 0;
C = (A | 0) == 0;
do if ((c[a + 284 >> 2] | 0) == 0 & (C ^ 1)) {
B = Em(c[z >> 2] | 0, n) | 0;
if (C) {
F = B;
break
}
j = E << 2;
An(B | 0, A | 0, j | 0) | 0;
Fm(c[z >> 2] | 0, A, j);
F = B
} else
F = A;
while (0);
c[D >> 2] = F;
F = c[k >> 2] | 0;
D = a + 288 | 0;
A = c[D >> 2] | 0;
E = (A | 0) == 0;
do if ((c[a + 292 >> 2] | 0) == 0 & (E ^ 1)) {
C = Em(c[z >> 2] | 0, n) | 0;
if (E) {
G = C;
break
}
B = F << 2;
An(C | 0, A | 0, B | 0) | 0;
Fm(c[z >> 2] | 0, A, B);
G = C
} else
G = A;
while (0);
c[D >> 2] = G;
c[k >> 2] = l;
i = d;
return
}
function wk(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;
e = i;
f = b + 400 | 0;
if ((c[(c[f >> 2] | 0) + 102876 >> 2] & 2 | 0) != 0) {
h = 0;
i = e;
return h | 0
}
j = b + 44 | 0;
k = c[j >> 2] | 0;
l = b + 48 | 0;
m = c[l >> 2] | 0;
if ((k | 0) < (m | 0)) {
n = k;
o = m
} else {
vk(b, (k | 0) == 0 ? 256 : k << 1);
n = c[j >> 2] | 0;
o = c[l >> 2] | 0
}
do if ((n | 0) >= (o | 0))
if ((a[b + 392 >> 0] | 0) == 0) {
h = -1;
i = e;
return h | 0
} else {
k = c[b + 288 >> 2] | 0;
m = c[k + (n + -1 << 2) >> 2] | 0;
p = +(c[(c[b + 280 >> 2] | 0) + (m << 2) >> 2] | 0) > 0 ? m : c[k >> 2] | 0;
k = b + 88 | 0;
Ak(b, p, c[(c[k >> 2] | 0) + (p << 2) >> 2] | 2);
xk(b);
q = k;
r = c[j >> 2] | 0;
break
}
else {
q = b + 88 | 0;
r = n
}
while (0);
n = r + 1 | 0;
c[j >> 2] = n;
c[(c[q >> 2] | 0) + (r << 2) >> 2] = 0;
q = c[b + 160 >> 2] | 0;
if ((q | 0) != 0)
c[q + (r << 2) >> 2] = 0;
q = c[b + 168 >> 2] | 0;
if ((q | 0) != 0)
c[q + (r << 2) >> 2] = 0;
q = c[b + 176 >> 2] | 0;
if ((q | 0) != 0)
c[q + (r << 2) >> 2] = 0;
q = d + 4 | 0;
j = c[q + 4 >> 2] | 0;
o = (c[b + 96 >> 2] | 0) + (r << 3) | 0;
c[o >> 2] = c[q >> 2];
c[o + 4 >> 2] = j;
j = d + 12 | 0;
o = c[j + 4 >> 2] | 0;
q = (c[b + 104 >> 2] | 0) + (r << 3) | 0;
c[q >> 2] = c[j >> 2];
c[q + 4 >> 2] = o;
g[(c[b + 116 >> 2] | 0) + (r << 2) >> 2] = 0;
o = 8784;
q = c[o + 4 >> 2] | 0;
j = (c[b + 112 >> 2] | 0) + (r << 3) | 0;
c[j >> 2] = c[o >> 2];
c[j + 4 >> 2] = q;
q = c[b + 120 >> 2] | 0;
if ((q | 0) != 0)
g[q + (r << 2) >> 2] = 0;
q = c[b + 132 >> 2] | 0;
if ((q | 0) != 0)
g[q + (r << 2) >> 2] = 0;
q = b + 136 | 0;
j = c[q >> 2] | 0;
o = d + 20 | 0;
do if ((j | 0) == 0) {
if ((((a[o >> 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;
k = c[l >> 2] | 0;
if ((k | 0) == 0) {
vk(b, 256);
s = c[l >> 2] | 0
} else
s = k;
k = Em(c[f >> 2] | 0, s << 2) | 0;
xn(k | 0, 0, c[l >> 2] << 2 | 0) | 0;
t = k;
u = 26
} else {
t = j;
u = 26
}
while (0);
if ((u | 0) == 26) {
c[q >> 2] = t;
q = a[d + 21 >> 0] | 0;
j = a[d + 22 >> 0] | 0;
s = a[d + 23 >> 0] | 0;
a[t + (r << 2) >> 0] = a[o >> 0] | 0;
a[t + (r << 2) + 1 >> 0] = q;
a[t + (r << 2) + 2 >> 0] = j;
a[t + (r << 2) + 3 >> 0] = s
}
s = b + 148 | 0;
t = c[s >> 2] | 0;
j = d + 28 | 0;
if ((t | 0) == 0) {
if ((c[j >>
2] | 0) != 0) {
q = c[l >> 2] | 0;
if ((q | 0) == 0) {
vk(b, 256);
v = c[l >> 2] | 0
} else
v = q;
q = Em(c[f >> 2] | 0, v << 2) | 0;
xn(q | 0, 0, c[l >> 2] << 2 | 0) | 0;
w = q;
u = 32
}
} else {
w = t;
u = 32
}
if ((u | 0) == 32) {
c[s >> 2] = w;
c[w + (r << 2) >> 2] = c[j >> 2]
}
j = c[b + 80 >> 2] | 0;
if ((j | 0) != 0)
c[j + (r << 2) >> 2] = 0;
j = b + 200 | 0;
w = b + 204 | 0;
s = c[w >> 2] | 0;
u = b + 208 | 0;
t = c[u >> 2] | 0;
if ((s | 0) >= (t | 0) ? (q = (t | 0) == 0 ? 256 : t << 1, (t | 0) < (q | 0)) : 0) {
t = b + 212 | 0;
l = Em(c[t >> 2] | 0, q << 3) | 0;
v = c[j >> 2] | 0;
if ((v | 0) != 0) {
An(l | 0, v | 0, c[w >> 2] << 3 | 0) | 0;
Fm(c[t >> 2] | 0, c[j >> 2] | 0, c[u >> 2] << 3)
}
c[u >> 2] = q;
c[j >> 2] = l;
x = c[w >> 2] | 0
} else
x = s;
c[w >>
2] = x + 1;
w = c[j >> 2] | 0;
y = +g[d + 24 >> 2];
j = y > 0;
if ((c[b + 280 >> 2] | 0) != 0 | j) {
if (j)
z = y;
else {
j = c[b + 300 >> 2] | 0;
z = +g[b + 396 >> 2] * +(((j | 0) < 0 ? 0 - j | 0 : 0) - j | 0)
}
yk(b, r, z);
c[(c[b + 288 >> 2] | 0) + (r << 2) >> 2] = r
}
c[w + (x << 3) >> 2] = r;
x = c[d + 32 >> 2] | 0;
c[(c[b + 144 >> 2] | 0) + (r << 2) >> 2] = x;
do if ((x | 0) != 0) {
w = x + 4 | 0;
j = c[w >> 2] | 0;
s = x + 8 | 0;
l = c[s >> 2] | 0;
if ((j | 0) < (l | 0)) {
zk(b, j, l, r);
c[s >> 2] = n;
break
} else {
c[w >> 2] = r;
c[s >> 2] = n;
break
}
}
while (0);
Ak(b, r, c[d >> 2] | 0);
h = r;
i = e;
return h | 0
}
function xk(b) {
b = b | 0;
var d = 0,
e = 0,
f = 0,
h = 0,
j = 0,
k = 0,
l = 0,
m = 0,
n = 0,
o = 0,
p = 0,
q = 0,
r = 0,
s = 0,
t = 0,
u = 0,
v = 0,
w = 0,
x = 0,
y = 0,
z = 0,
A = 0,
B = 0,
C = 0,
D = 0,
E = 0,
F = 0,
G = 0,
H = 0,
I = 0,
J = 0,
K = 0,
L = 0,
M = 0,
N = 0,
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;
d = i;
e = b + 400 | 0;
f = b + 44 | 0;
h = Ym((c[e >> 2] | 0) + 76 | 0, c[f >> 2] << 2) | 0;
if ((c[f >> 2] | 0) > 0) {
j = b + 88 | 0;
k = b + 80 | 0;
l = b + 160 | 0;
m = b + 168 | 0;
n = b + 176 | 0;
o = b + 96 | 0;
p = b + 104 | 0;
q = b + 144 | 0;
r = b + 21 | 0;
s = b + 120 | 0;
t = b + 132 | 0;
u = b + 136 | 0;
v = b + 148 | 0;
w = b + 280 | 0;
x = b + 112 | 0;
y = b + 64 | 0;
z = 0;
A = 0;
B = 0;
while (1) {
C =
c[j >> 2] | 0;
D = c[C + (A << 2) >> 2] | 0;
if ((D & 2 | 0) == 0) {
c[h + (A << 2) >> 2] = B;
if ((A | 0) != (B | 0)) {
E = c[k >> 2] | 0;
if ((E | 0) == 0)
F = C;
else {
C = c[E + (A << 2) >> 2] | 0;
if ((C | 0) != 0)
c[C + 8 >> 2] = B;
c[E + (B << 2) >> 2] = C;
F = c[j >> 2] | 0
}
c[F + (B << 2) >> 2] = c[F + (A << 2) >> 2];
C = c[l >> 2] | 0;
if ((C | 0) != 0)
c[C + (B << 2) >> 2] = c[C + (A << 2) >> 2];
C = c[m >> 2] | 0;
if ((C | 0) != 0)
c[C + (B << 2) >> 2] = c[C + (A << 2) >> 2];
C = c[n >> 2] | 0;
if ((C | 0) != 0)
c[C + (B << 2) >> 2] = c[C + (A << 2) >> 2];
C = c[o >> 2] | 0;
E = C + (A << 3) | 0;
G = c[E + 4 >> 2] | 0;
H = C + (B << 3) | 0;
c[H >> 2] = c[E >> 2];
c[H + 4 >> 2] = G;
G = c[p >> 2] | 0;
H = G + (A << 3) | 0;
E = c[H + 4 >> 2] | 0;
C = G + (B <<
3) | 0;
c[C >> 2] = c[H >> 2];
c[C + 4 >> 2] = E;
E = c[q >> 2] | 0;
c[E + (B << 2) >> 2] = c[E + (A << 2) >> 2];
if ((a[r >> 0] | 0) != 0) {
E = c[x >> 2] | 0;
C = E + (A << 3) | 0;
H = c[C + 4 >> 2] | 0;
G = E + (B << 3) | 0;
c[G >> 2] = c[C >> 2];
c[G + 4 >> 2] = H
}
H = c[s >> 2] | 0;
if ((H | 0) != 0)
g[H + (B << 2) >> 2] = +g[H + (A << 2) >> 2];
H = c[t >> 2] | 0;
if ((H | 0) != 0)
g[H + (B << 2) >> 2] = +g[H + (A << 2) >> 2];
H = c[u >> 2] | 0;
if ((H | 0) != 0) {
G = a[H + (A << 2) + 1 >> 0] | 0;
C = a[H + (A << 2) + 2 >> 0] | 0;
E = a[H + (A << 2) + 3 >> 0] | 0;
a[H + (B << 2) >> 0] = a[H + (A << 2) >> 0] | 0;
a[H + (B << 2) + 1 >> 0] = G;
a[H + (B << 2) + 2 >> 0] = C;
a[H + (B << 2) + 3 >> 0] = E
}
E = c[v >> 2] | 0;
if ((E | 0) != 0)
c[E + (B << 2) >> 2] = c[E +
(A << 2) >> 2];
E = c[w >> 2] | 0;
if ((E | 0) != 0)
c[E + (B << 2) >> 2] = c[E + (A << 2) >> 2]
}
I = D | z;
J = B + 1 | 0
} else {
E = c[(c[e >> 2] | 0) + 102992 >> 2] | 0;
if (!((D & 512 | 0) == 0 | (E | 0) == 0))
ib[c[(c[E >> 2] | 0) + 20 >> 2] & 7](E, b, A);
E = c[k >> 2] | 0;
if ((E | 0) != 0 ? (D = E + (A << 2) | 0, E = c[D >> 2] | 0, (E | 0) != 0) : 0) {
c[E + 8 >> 2] = -1;
c[D >> 2] = 0;
Bm(y, E)
}
c[h + (A << 2) >> 2] = -1;
I = z;
J = B
}
A = A + 1 | 0;
if ((A | 0) >= (c[f >> 2] | 0)) {
K = I;
L = J;
break
} else {
z = I;
B = J
}
}
} else {
K = 0;
L = 0
}
J = b + 204 | 0;
B = c[J >> 2] | 0;
I = b + 200 | 0;
z = c[I >> 2] | 0;
if ((B | 0) > 0) {
A = 0;
do {
y = z + (A << 3) | 0;
c[y >> 2] = c[h + (c[y >> 2] << 2) >> 2];
A = A + 1 | 0;
y = c[J >> 2] | 0
} while ((A |
0) < (y | 0));
M = y
} else
M = B;
B = z + (M << 3) | 0;
a:
do if ((M | 0) == 0) {
N = z;
O = 40
} else {
A = z;
while (1) {
if ((c[A >> 2] | 0) < 0) {
N = A;
O = 40;
break a
}
A = A + 8 | 0;
if ((A | 0) == (B | 0)) {
P = B;
Q = z;
break
}
}
}
while (0);
if ((O | 0) == 40)
if ((N | 0) == (B | 0)) {
P = B;
Q = z
} else {
z = N;
M = N;
b:
while (1) {
N = M;
do {
N = N + 8 | 0;
if ((N | 0) == (B | 0))
break b
} while ((c[N >> 2] | 0) < 0);
A = N;
y = c[A + 4 >> 2] | 0;
k = z;
c[k >> 2] = c[A >> 2];
c[k + 4 >> 2] = y;
z = z + 8 | 0;
M = N
}
P = z;
Q = c[I >> 2] | 0
}
c[J >> 2] = P - Q >> 3;
Q = b + 220 | 0;
P = c[Q >> 2] | 0;
J = b + 216 | 0;
I = c[J >> 2] | 0;
if ((P | 0) > 0) {
z = 0;
do {
M = I + (z * 24 | 0) | 0;
B = I + (z * 24 | 0) + 4 | 0;
y = c[h + (c[B >> 2] << 2) >> 2] | 0;
c[M >> 2] = c[h + (c[M >> 2] << 2) >> 2];
c[B >> 2] = y;
z = z + 1 | 0;
y = c[Q >> 2] | 0
} while ((z | 0) < (y | 0));
R = y
} else
R = P;
P = I + (R * 24 | 0) | 0;
c:
do if ((R | 0) == 0) {
S = I;
O = 52
} else {
z = I;
while (1) {
if ((c[z >> 2] | 0) < 0) {
S = z;
O = 52;
break c
}
if ((c[z + 4 >> 2] | 0) < 0) {
S = z;
O = 52;
break c
}
z = z + 24 | 0;
if ((z | 0) == (P | 0)) {
T = P;
U = I;
break
}
}
}
while (0);
if ((O | 0) == 52)
if ((S | 0) == (P | 0)) {
T = P;
U = I
} else {
I = S + 24 | 0;
d:
do if ((I | 0) == (P | 0))
V = S;
else {
R = S;
z = I;
N = S;
while (1) {
y = z;
B = N;
while (1) {
if ((c[y >> 2] | 0) >= 0 ? (c[B + 28 >> 2] | 0) >= 0 : 0)
break;
M = y + 24 | 0;
if ((M | 0) == (P | 0)) {
V = R;
break d
} else {
k = y;
y = M;
B = k
}
}
c[R + 0 >>
2] = c[y + 0 >> 2];
c[R + 4 >> 2] = c[y + 4 >> 2];
c[R + 8 >> 2] = c[y + 8 >> 2];
c[R + 12 >> 2] = c[y + 12 >> 2];
c[R + 16 >> 2] = c[y + 16 >> 2];
c[R + 20 >> 2] = c[y + 20 >> 2];
B = R + 24 | 0;
z = y + 24 | 0;
if ((z | 0) == (P | 0)) {
V = B;
break
} else {
R = B;
N = y
}
}
}
while (0);
T = V;
U = c[J >> 2] | 0
}
c[Q >> 2] = (T - U | 0) / 24 | 0;
U = b + 236 | 0;
T = c[U >> 2] | 0;
Q = b + 232 | 0;
J = c[Q >> 2] | 0;
if ((T | 0) > 0) {
V = 0;
do {
P = J + (V * 28 | 0) | 0;
c[P >> 2] = c[h + (c[P >> 2] << 2) >> 2];
V = V + 1 | 0;
P = c[U >> 2] | 0
} while ((V | 0) < (P | 0));
W = P
} else
W = T;
T = J + (W * 28 | 0) | 0;
e:
do if ((W | 0) == 0) {
X = J;
O = 65
} else {
V = J;
while (1) {
if ((c[V >> 2] | 0) < 0) {
X = V;
O = 65;
break e
}
V = V + 28 | 0;
if ((V | 0) == (T |
0)) {
Y = T;
Z = J;
break
}
}
}
while (0);
if ((O | 0) == 65)
if ((X | 0) == (T | 0)) {
Y = T;
Z = J
} else {
J = X;
W = X;
f:
while (1) {
X = W;
do {
X = X + 28 | 0;
if ((X | 0) == (T | 0))
break f
} while ((c[X >> 2] | 0) < 0);
c[J + 0 >> 2] = c[X + 0 >> 2];
c[J + 4 >> 2] = c[X + 4 >> 2];
c[J + 8 >> 2] = c[X + 8 >> 2];
c[J + 12 >> 2] = c[X + 12 >> 2];
c[J + 16 >> 2] = c[X + 16 >> 2];
c[J + 20 >> 2] = c[X + 20 >> 2];
c[J + 24 >> 2] = c[X + 24 >> 2];
J = J + 28 | 0;
W = X
}
Y = J;
Z = c[Q >> 2] | 0
}
c[U >> 2] = (Y - Z | 0) / 28 | 0;
Z = b + 252 | 0;
Y = c[Z >> 2] | 0;
U = b + 248 | 0;
Q = c[U >> 2] | 0;
if ((Y | 0) > 0) {
J = 0;
do {
W = Q + (J * 20 | 0) | 0;
c[W >> 2] = c[h + (c[W >> 2] << 2) >> 2];
W = Q + (J * 20 | 0) + 4 | 0;
c[W >> 2] = c[h + (c[W >> 2] << 2) >> 2];
J = J + 1 | 0;
W = c[Z >> 2] | 0
} while ((J | 0) < (W | 0));
_ = W
} else
_ = Y;
Y = Q + (_ * 20 | 0) | 0;
g:
do if ((_ | 0) == 0) {
$ = Q;
O = 77
} else {
J = Q;
while (1) {
if ((c[J >> 2] | 0) < 0) {
$ = J;
O = 77;
break g
}
if ((c[J + 4 >> 2] | 0) < 0) {
$ = J;
O = 77;
break g
}
J = J + 20 | 0;
if ((J | 0) == (Y | 0)) {
aa = Y;
ba = Q;
break
}
}
}
while (0);
if ((O | 0) == 77)
if (($ | 0) == (Y | 0)) {
aa = Y;
ba = Q
} else {
Q = $ + 20 | 0;
h:
do if ((Q | 0) == (Y | 0))
ca = $;
else {
_ = $;
J = Q;
X = $;
while (1) {
W = J;
T = X;
while (1) {
if ((c[W >> 2] | 0) >= 0 ? (c[T + 24 >> 2] | 0) >= 0 : 0)
break;
V = W + 20 | 0;
if ((V | 0) == (Y | 0)) {
ca = _;
break h
} else {
P = W;
W = V;
T = P
}
}
c[_ + 0 >> 2] = c[W + 0 >> 2];
c[_ + 4 >> 2] = c[W + 4 >> 2];
c[_ + 8 >> 2] = c[W + 8 >> 2];
c[_ + 12 >> 2] = c[W + 12 >> 2];
c[_ + 16 >> 2] = c[W + 16 >> 2];
T = _ + 20 | 0;
J = W + 20 | 0;
if ((J | 0) == (Y | 0)) {
ca = T;
break
} else {
_ = T;
X = W
}
}
}
while (0);
aa = ca;
ba = c[U >> 2] | 0
}
c[Z >> 2] = (aa - ba | 0) / 20 | 0;
ba = b + 268 | 0;
aa = c[ba >> 2] | 0;
Z = b + 264 | 0;
U = c[Z >> 2] | 0;
if ((aa | 0) > 0) {
ca = 0;
do {
Y = U + (ca * 60 | 0) | 0;
c[Y >> 2] = c[h + (c[Y >> 2] << 2) >> 2];
Y = U + (ca * 60 | 0) + 4 | 0;
c[Y >> 2] = c[h + (c[Y >> 2] << 2) >> 2];
Y = U + (ca * 60 | 0) + 8 | 0;
c[Y >> 2] = c[h + (c[Y >> 2] << 2) >> 2];
ca = ca + 1 | 0;
Y = c[ba >> 2] | 0
} while ((ca | 0) < (Y | 0));
da = Y
} else
da = aa;
aa = U + (da * 60 | 0) | 0;
i:
do if ((da | 0) == 0) {
ea = U;
O = 92
} else {
ca = U;
while (1) {
if ((c[ca >>
2] | 0) < 0) {
ea = ca;
O = 92;
break i
}
if ((c[ca + 4 >> 2] | 0) < 0) {
ea = ca;
O = 92;
break i
}
if ((c[ca + 8 >> 2] | 0) < 0) {
ea = ca;
O = 92;
break i
}
ca = ca + 60 | 0;
if ((ca | 0) == (aa | 0)) {
fa = aa;
ga = U;
break
}
}
}
while (0);
if ((O | 0) == 92)
if ((ea | 0) == (aa | 0)) {
fa = aa;
ga = U
} else {
U = ea + 60 | 0;
j:
do if ((U | 0) == (aa | 0))
ha = ea;
else {
O = ea;
da = U;
ca = ea;
while (1) {
Y = da;
$ = ca;
while (1) {
if (((c[Y >> 2] | 0) >= 0 ? (c[$ + 64 >> 2] | 0) >= 0 : 0) ? (c[$ + 68 >> 2] | 0) >= 0 : 0)
break;
Q = Y + 60 | 0;
if ((Q | 0) == (aa | 0)) {
ha = O;
break j
} else {
X = Y;
Y = Q;
$ = X
}
}
$ = O + 0 | 0;
W = Y + 0 | 0;
X = $ + 60 | 0;
do {
c[$ >> 2] = c[W >> 2];
$ = $ + 4 | 0;
W = W + 4 | 0
} while (($ | 0) < (X | 0));
W = O + 60 | 0;
da = Y + 60 | 0;
if ((da | 0) == (aa | 0)) {
ha = W;
break
} else {
O = W;
ca = Y
}
}
}
while (0);
fa = ha;
ga = c[Z >> 2] | 0
}
c[ba >> 2] = (fa - ga | 0) / 60 | 0;
ga = c[b + 288 >> 2] | 0;
if ((ga | 0) != 0 ? (fa = c[f >> 2] | 0, (fa | 0) > 0) : 0) {
ba = fa;
fa = 0;
Z = 0;
while (1) {
ha = c[h + (c[ga + (fa << 2) >> 2] << 2) >> 2] | 0;
if ((ha | 0) == -1) {
ia = ba;
ja = Z
} else {
c[ga + (Z << 2) >> 2] = ha;
ia = c[f >> 2] | 0;
ja = Z + 1 | 0
}
fa = fa + 1 | 0;
if ((fa | 0) >= (ia | 0))
break;
else {
ba = ia;
Z = ja
}
}
}
ja = b + 312 | 0;
Z = c[ja >> 2] | 0;
if ((Z | 0) != 0) {
ia = b + 16 | 0;
ba = b + 132 | 0;
fa = b + 48 | 0;
ga = b + 20 | 0;
ha = Z;
do {
Z = ha + 4 | 0;
aa = c[Z >> 2] | 0;
ea = ha + 8 | 0;
U = c[ea >> 2] | 0;
if ((aa | 0) < (U |
0)) {
ca = L;
O = aa;
aa = 0;
da = 0;
while (1) {
W = c[h + (O << 2) >> 2] | 0;
if ((W | 0) > -1) {
$ = W + 1 | 0;
ka = (ca | 0) < (W | 0) ? ca : W;
la = (aa | 0) > ($ | 0) ? aa : $;
ma = da
} else {
ka = ca;
la = aa;
ma = 1
}
O = O + 1 | 0;
if ((O | 0) >= (U | 0)) {
na = ka;
oa = la;
pa = ma;
break
} else {
ca = ka;
aa = la;
da = ma
}
}
} else {
na = L;
oa = 0;
pa = 0
}
if ((na | 0) < (oa | 0)) {
c[Z >> 2] = na;
c[ea >> 2] = oa;
if (pa ? (da = ha + 12 | 0, aa = c[da >> 2] | 0, (aa & 1 | 0) != 0) : 0) {
ca = aa | 16;
aa = c[ia >> 2] | 0;
if ((ca & ~aa | 0) != 0) {
U = c[ba >> 2] | 0;
if ((U | 0) == 0) {
O = c[fa >> 2] | 0;
if ((O | 0) == 0) {
vk(b, 256);
qa = c[fa >> 2] | 0
} else
qa = O;
O = Em(c[e >> 2] | 0, qa << 2) | 0;
xn(O | 0, 0, c[fa >> 2] << 2 | 0) |
0;
ra = O;
sa = c[ia >> 2] | 0
} else {
ra = U;
sa = aa
}
c[ba >> 2] = ra;
c[ia >> 2] = sa | ca
}
c[da >> 2] = ca
}
} else {
c[Z >> 2] = 0;
c[ea >> 2] = 0;
ca = ha + 12 | 0;
da = c[ca >> 2] | 0;
if ((da & 4 | 0) == 0) {
aa = da | 8;
if (((da & -9 ^ -9) & da | 0) != 0)
a[ga >> 0] = 1;
U = c[ia >> 2] | 0;
if ((aa & ~U | 0) != 0) {
if ((da & 1 | 0) == 0)
ta = U;
else {
da = c[ba >> 2] | 0;
if ((da | 0) == 0) {
O = c[fa >> 2] | 0;
if ((O | 0) == 0) {
vk(b, 256);
ua = c[fa >> 2] | 0
} else
ua = O;
O = Em(c[e >> 2] | 0, ua << 2) | 0;
xn(O | 0, 0, c[fa >> 2] << 2 | 0) | 0;
va = O;
wa = c[ia >> 2] | 0
} else {
va = da;
wa = U
}
c[ba >> 2] = va;
ta = wa
}
c[ia >> 2] = ta | aa
}
c[ca >> 2] = aa
}
}
ha = c[ha + 24 >> 2] | 0
} while ((ha | 0) != 0)
}
c[f >> 2] =
L;
_m((c[e >> 2] | 0) + 76 | 0, h);
c[b + 8 >> 2] = K;
a[b + 12 >> 0] = 0;
K = c[ja >> 2] | 0;
if ((K | 0) == 0) {
i = d;
return
} else
xa = K;
do {
K = xa;
xa = c[xa + 24 >> 2] | 0;
if ((c[K + 12 >> 2] & 8 | 0) != 0)
tk(b, K)
} while ((xa | 0) != 0);
i = d;
return
}
function yk(b, d, e) {
b = b | 0;
d = d | 0;
e = +e;
var f = 0,
h = 0,
j = 0,
k = 0,
l = 0,
m = 0,
n = 0,
o = 0,
p = 0,
q = 0,
r = 0,
s = 0,
t = 0,
u = 0;
f = i;
h = b + 288 | 0;
j = c[h >> 2] | 0;
k = (j | 0) == 0;
l = b + 280 | 0;
m = c[l >> 2] | 0;
if ((m | 0) == 0) {
n = b + 48 | 0;
o = c[n >> 2] | 0;
if ((o | 0) == 0) {
vk(b, 256);
p = c[n >> 2] | 0
} else
p = o;
o = Em(c[b + 400 >> 2] | 0, p << 2) | 0;
xn(o | 0, 0, c[n >> 2] << 2 | 0) | 0;
q = o;
r = c[h >> 2] | 0
} else {
q = m;
r = j
}
c[l >> 2] =
q;
if ((r | 0) == 0) {
q = b + 48 | 0;
j = c[q >> 2] | 0;
if ((j | 0) == 0) {
vk(b, 256);
s = c[q >> 2] | 0
} else
s = j;
j = Em(c[b + 400 >> 2] | 0, s << 2) | 0;
xn(j | 0, 0, c[q >> 2] << 2 | 0) | 0;
t = j
} else
t = r;
c[h >> 2] = t;
if (k ? (k = c[b + 44 >> 2] | 0, (k | 0) > 0) : 0) {
h = 0;
do {
c[t + (h << 2) >> 2] = h;
h = h + 1 | 0
} while ((h | 0) != (k | 0))
}
k = ~~(e / +g[b + 396 >> 2]);
if ((k | 0) > 0)
u = (c[b + 300 >> 2] | 0) + k | 0;
else
u = k;
k = (c[l >> 2] | 0) + (d << 2) | 0;
if ((u | 0) == (c[k >> 2] | 0)) {
i = f;
return
}
c[k >> 2] = u;
a[b + 304 >> 0] = 1;
i = f;
return
}
function zk(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,
M = 0,
N = 0,
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;
h = i;
if ((d | 0) == (e | 0) | (e | 0) == (f | 0)) {
i = h;
return
}
j = c[b + 88 >> 2] | 0;
k = j + (d << 2) | 0;
l = j + (e << 2) | 0;
m = j + (f << 2) | 0;
a:
do if ((d + 1 | 0) != (e | 0)) {
if ((e + 1 | 0) == (f | 0)) {
n = j + (f + -1 << 2) | 0;
o = c[n >> 2] | 0;
p = n - k | 0;
Bn(j + (f - (p >> 2) << 2) | 0, k | 0, p | 0) | 0;
c[k >> 2] = o;
break
}
o = l;
p = o - k >> 2;
n = m;
q = n - o >> 2;
if ((p | 0) == (q |
0)) {
o = k;
r = l;
while (1) {
s = c[o >> 2] | 0;
c[o >> 2] = c[r >> 2];
c[r >> 2] = s;
o = o + 4 | 0;
if ((o | 0) == (l | 0))
break a;
else
r = r + 4 | 0
}
} else {
t = p;
u = q
}
while (1) {
r = (t | 0) % (u | 0) | 0;
if ((r | 0) == 0)
break;
else {
o = u;
u = r;
t = o
}
}
if ((u | 0) != 0) {
q = p + -1 | 0;
o = p + d | 0;
r = j + (u + d << 2) | 0;
do {
s = r;
r = r + -4 | 0;
v = c[r >> 2] | 0;
w = r;
x = s + (q << 2) | 0;
while (1) {
c[w >> 2] = c[x >> 2];
s = n - x >> 2;
if ((p | 0) < (s | 0))
y = x + (p << 2) | 0;
else
y = j + (o - s << 2) | 0;
if ((y | 0) == (r | 0))
break;
else {
s = x;
x = y;
w = s
}
}
c[x >> 2] = v
} while ((r | 0) != (k | 0))
}
} else {
r = c[k >> 2] | 0;
o = m - l | 0;
Bn(k | 0, l | 0, o | 0) | 0;
c[j + ((o >> 2) + d << 2) >> 2] = r
}
while (0);
j = c[b +
160 >> 2] | 0;
b:
do if ((j | 0) != 0) {
l = j + (d << 2) | 0;
k = j + (e << 2) | 0;
m = j + (f << 2) | 0;
if ((d + 1 | 0) == (e | 0)) {
y = c[l >> 2] | 0;
u = m - k | 0;
Bn(l | 0, k | 0, u | 0) | 0;
c[j + ((u >> 2) + d << 2) >> 2] = y;
break
}
if ((e + 1 | 0) == (f | 0)) {
y = j + (f + -1 << 2) | 0;
u = c[y >> 2] | 0;
t = y - l | 0;
Bn(j + (f - (t >> 2) << 2) | 0, l | 0, t | 0) | 0;
c[l >> 2] = u;
break
}
u = k;
t = u - l >> 2;
y = m;
m = y - u >> 2;
if ((t | 0) == (m | 0)) {
u = l;
r = k;
while (1) {
o = c[u >> 2] | 0;
c[u >> 2] = c[r >> 2];
c[r >> 2] = o;
u = u + 4 | 0;
if ((u | 0) == (k | 0))
break b;
else
r = r + 4 | 0
}
} else {
z = t;
A = m
}
while (1) {
r = (z | 0) % (A | 0) | 0;
if ((r | 0) == 0)
break;
else {
k = A;
A = r;
z = k
}
}
if ((A | 0) != 0) {
m = t + -1 | 0;
k = t +
d | 0;
r = j + (A + d << 2) | 0;
do {
u = r;
r = r + -4 | 0;
o = c[r >> 2] | 0;
p = r;
n = u + (m << 2) | 0;
while (1) {
c[p >> 2] = c[n >> 2];
u = y - n >> 2;
if ((t | 0) < (u | 0))
B = n + (t << 2) | 0;
else
B = j + (k - u << 2) | 0;
if ((B | 0) == (r | 0))
break;
else {
u = n;
n = B;
p = u
}
}
c[n >> 2] = o
} while ((r | 0) != (l | 0))
}
}
while (0);
B = c[b + 168 >> 2] | 0;
c:
do if ((B | 0) != 0) {
j = B + (d << 2) | 0;
A = B + (e << 2) | 0;
z = B + (f << 2) | 0;
if ((d + 1 | 0) == (e | 0)) {
l = c[j >> 2] | 0;
r = z - A | 0;
Bn(j | 0, A | 0, r | 0) | 0;
c[B + ((r >> 2) + d << 2) >> 2] = l;
break
}
if ((e + 1 | 0) == (f | 0)) {
l = B + (f + -1 << 2) | 0;
r = c[l >> 2] | 0;
k = l - j | 0;
Bn(B + (f - (k >> 2) << 2) | 0, j | 0, k | 0) | 0;
c[j >> 2] = r;
break
}
r = A;
k = r - j >> 2;
l = z;
z = l - r >> 2;
if ((k | 0) == (z | 0)) {
r = j;
t = A;
while (1) {
y = c[r >> 2] | 0;
c[r >> 2] = c[t >> 2];
c[t >> 2] = y;
r = r + 4 | 0;
if ((r | 0) == (A | 0))
break c;
else
t = t + 4 | 0
}
} else {
C = k;
D = z
}
while (1) {
t = (C | 0) % (D | 0) | 0;
if ((t | 0) == 0)
break;
else {
A = D;
D = t;
C = A
}
}
if ((D | 0) != 0) {
z = k + -1 | 0;
A = k + d | 0;
t = B + (D + d << 2) | 0;
do {
r = t;
t = t + -4 | 0;
y = c[t >> 2] | 0;
m = t;
p = r + (z << 2) | 0;
while (1) {
c[m >> 2] = c[p >> 2];
r = l - p >> 2;
if ((k | 0) < (r | 0))
E = p + (k << 2) | 0;
else
E = B + (A - r << 2) | 0;
if ((E | 0) == (t | 0))
break;
else {
r = p;
p = E;
m = r
}
}
c[p >> 2] = y
} while ((t | 0) != (j | 0))
}
}
while (0);
E = c[b + 176 >> 2] | 0;
d:
do if ((E | 0) != 0) {
B = E + (d << 2) |
0;
D = E + (e << 2) | 0;
C = E + (f << 2) | 0;
if ((d + 1 | 0) == (e | 0)) {
j = c[B >> 2] | 0;
t = C - D | 0;
Bn(B | 0, D | 0, t | 0) | 0;
c[E + ((t >> 2) + d << 2) >> 2] = j;
break
}
if ((e + 1 | 0) == (f | 0)) {
j = E + (f + -1 << 2) | 0;
t = c[j >> 2] | 0;
A = j - B | 0;
Bn(E + (f - (A >> 2) << 2) | 0, B | 0, A | 0) | 0;
c[B >> 2] = t;
break
}
t = D;
A = t - B >> 2;
j = C;
C = j - t >> 2;
if ((A | 0) == (C | 0)) {
t = B;
k = D;
while (1) {
l = c[t >> 2] | 0;
c[t >> 2] = c[k >> 2];
c[k >> 2] = l;
t = t + 4 | 0;
if ((t | 0) == (D | 0))
break d;
else
k = k + 4 | 0
}
} else {
F = A;
G = C
}
while (1) {
k = (F | 0) % (G | 0) | 0;
if ((k | 0) == 0)
break;
else {
D = G;
G = k;
F = D
}
}
if ((G | 0) != 0) {
C = A + -1 | 0;
D = A + d | 0;
k = E + (G + d << 2) | 0;
do {
t = k;
k = k + -4 | 0;
l = c[k >>
2] | 0;
z = k;
m = t + (C << 2) | 0;
while (1) {
c[z >> 2] = c[m >> 2];
t = j - m >> 2;
if ((A | 0) < (t | 0))
H = m + (A << 2) | 0;
else
H = E + (D - t << 2) | 0;
if ((H | 0) == (k | 0))
break;
else {
t = m;
m = H;
z = t
}
}
c[m >> 2] = l
} while ((k | 0) != (B | 0))
}
}
while (0);
H = c[b + 96 >> 2] | 0;
E = H + (d << 3) | 0;
G = H + (e << 3) | 0;
F = H + (f << 3) | 0;
e:
do if ((d + 1 | 0) != (e | 0)) {
if ((e + 1 | 0) == (f | 0)) {
B = H + (f + -1 << 3) | 0;
k = B;
D = c[k >> 2] | 0;
A = c[k + 4 >> 2] | 0;
k = B - E | 0;
Bn(H + (f - (k >> 3) << 3) | 0, E | 0, k | 0) | 0;
k = E;
c[k >> 2] = D;
c[k + 4 >> 2] = A;
break
}
A = G;
k = A - E >> 3;
D = F;
B = D - A >> 3;
if ((k | 0) == (B | 0)) {
A = E;
j = G;
while (1) {
C = A;
z = c[C >> 2] | 0;
y = c[C + 4 >> 2] | 0;
C = j;
p = c[C + 4 >>
2] | 0;
t = A;
c[t >> 2] = c[C >> 2];
c[t + 4 >> 2] = p;
p = j;
c[p >> 2] = z;
c[p + 4 >> 2] = y;
A = A + 8 | 0;
if ((A | 0) == (G | 0))
break e;
else
j = j + 8 | 0
}
} else {
I = k;
J = B
}
while (1) {
j = (I | 0) % (J | 0) | 0;
if ((j | 0) == 0)
break;
else {
A = J;
J = j;
I = A
}
}
if ((J | 0) != 0) {
B = k + -1 | 0;
A = k + d | 0;
j = H + (J + d << 3) | 0;
do {
y = j;
j = j + -8 | 0;
p = j;
z = c[p >> 2] | 0;
t = c[p + 4 >> 2] | 0;
p = j;
C = y + (B << 3) | 0;
while (1) {
y = C;
o = c[y + 4 >> 2] | 0;
n = p;
c[n >> 2] = c[y >> 2];
c[n + 4 >> 2] = o;
o = D - C >> 3;
if ((k | 0) < (o | 0))
K = C + (k << 3) | 0;
else
K = H + (A - o << 3) | 0;
if ((K | 0) == (j | 0))
break;
else {
o = C;
C = K;
p = o
}
}
p = C;
c[p >> 2] = z;
c[p + 4 >> 2] = t
} while ((j | 0) != (E | 0))
}
} else {
j =
E;
A = c[j >> 2] | 0;
k = c[j + 4 >> 2] | 0;
j = F - G | 0;
Bn(E | 0, G | 0, j | 0) | 0;
D = H + ((j >> 3) + d << 3) | 0;
c[D >> 2] = A;
c[D + 4 >> 2] = k
}
while (0);
H = c[b + 104 >> 2] | 0;
G = H + (d << 3) | 0;
E = H + (e << 3) | 0;
F = H + (f << 3) | 0;
f:
do if ((d + 1 | 0) != (e | 0)) {
if ((e + 1 | 0) == (f | 0)) {
K = H + (f + -1 << 3) | 0;
J = K;
I = c[J >> 2] | 0;
k = c[J + 4 >> 2] | 0;
J = K - G | 0;
Bn(H + (f - (J >> 3) << 3) | 0, G | 0, J | 0) | 0;
J = G;
c[J >> 2] = I;
c[J + 4 >> 2] = k;
break
}
k = E;
J = k - G >> 3;
I = F;
K = I - k >> 3;
if ((J | 0) == (K | 0)) {
k = G;
D = E;
while (1) {
A = k;
j = c[A >> 2] | 0;
B = c[A + 4 >> 2] | 0;
A = D;
p = c[A + 4 >> 2] | 0;
l = k;
c[l >> 2] = c[A >> 2];
c[l + 4 >> 2] = p;
p = D;
c[p >> 2] = j;
c[p + 4 >> 2] = B;
k = k + 8 | 0;
if ((k |
0) == (E | 0))
break f;
else
D = D + 8 | 0
}
} else {
L = J;
M = K
}
while (1) {
D = (L | 0) % (M | 0) | 0;
if ((D | 0) == 0)
break;
else {
k = M;
M = D;
L = k
}
}
if ((M | 0) != 0) {
K = J + -1 | 0;
k = J + d | 0;
D = H + (M + d << 3) | 0;
do {
B = D;
D = D + -8 | 0;
p = D;
j = c[p >> 2] | 0;
l = c[p + 4 >> 2] | 0;
p = D;
A = B + (K << 3) | 0;
while (1) {
B = A;
m = c[B + 4 >> 2] | 0;
o = p;
c[o >> 2] = c[B >> 2];
c[o + 4 >> 2] = m;
m = I - A >> 3;
if ((J | 0) < (m | 0))
N = A + (J << 3) | 0;
else
N = H + (k - m << 3) | 0;
if ((N | 0) == (D | 0))
break;
else {
m = A;
A = N;
p = m
}
}
p = A;
c[p >> 2] = j;
c[p + 4 >> 2] = l
} while ((D | 0) != (G | 0))
}
} else {
D = G;
k = c[D >> 2] | 0;
J = c[D + 4 >> 2] | 0;
D = F - E | 0;
Bn(G | 0, E | 0, D | 0) | 0;
I = H + ((D >> 3) + d << 3) | 0;
c[I >>
2] = k;
c[I + 4 >> 2] = J
}
while (0);
H = c[b + 144 >> 2] | 0;
E = H + (d << 2) | 0;
G = H + (e << 2) | 0;
F = H + (f << 2) | 0;
g:
do if ((d + 1 | 0) != (e | 0)) {
if ((e + 1 | 0) == (f | 0)) {
N = H + (f + -1 << 2) | 0;
M = c[N >> 2] | 0;
L = N - E | 0;
Bn(H + (f - (L >> 2) << 2) | 0, E | 0, L | 0) | 0;
c[E >> 2] = M;
break
}
M = G;
L = M - E >> 2;
N = F;
J = N - M >> 2;
if ((L | 0) == (J | 0)) {
M = E;
I = G;
while (1) {
k = c[M >> 2] | 0;
c[M >> 2] = c[I >> 2];
c[I >> 2] = k;
M = M + 4 | 0;
if ((M | 0) == (G | 0))
break g;
else
I = I + 4 | 0
}
} else {
O = L;
P = J
}
while (1) {
I = (O | 0) % (P | 0) | 0;
if ((I | 0) == 0)
break;
else {
M = P;
P = I;
O = M
}
}
if ((P | 0) != 0) {
J = L + -1 | 0;
M = L + d | 0;
I = H + (P + d << 2) | 0;
do {
k = I;
I = I + -4 | 0;
D = c[I >> 2] | 0;
K =
I;
p = k + (J << 2) | 0;
while (1) {
c[K >> 2] = c[p >> 2];
k = N - p >> 2;
if ((L | 0) < (k | 0))
Q = p + (L << 2) | 0;
else
Q = H + (M - k << 2) | 0;
if ((Q | 0) == (I | 0))
break;
else {
k = p;
p = Q;
K = k
}
}
c[p >> 2] = D
} while ((I | 0) != (E | 0))
}
} else {
I = c[E >> 2] | 0;
M = F - G | 0;
Bn(E | 0, G | 0, M | 0) | 0;
c[H + ((M >> 2) + d << 2) >> 2] = I
}
while (0);
h:
do if ((a[b + 21 >> 0] | 0) != 0) {
H = c[b + 112 >> 2] | 0;
G = H + (d << 3) | 0;
E = H + (e << 3) | 0;
F = H + (f << 3) | 0;
if ((d + 1 | 0) == (e | 0)) {
Q = G;
P = c[Q >> 2] | 0;
O = c[Q + 4 >> 2] | 0;
Q = F - E | 0;
Bn(G | 0, E | 0, Q | 0) | 0;
I = H + ((Q >> 3) + d << 3) | 0;
c[I >> 2] = P;
c[I + 4 >> 2] = O;
break
}
if ((e + 1 | 0) == (f | 0)) {
O = H + (f + -1 << 3) | 0;
I = O;
P = c[I >> 2] | 0;
Q =
c[I + 4 >> 2] | 0;
I = O - G | 0;
Bn(H + (f - (I >> 3) << 3) | 0, G | 0, I | 0) | 0;
I = G;
c[I >> 2] = P;
c[I + 4 >> 2] = Q;
break
}
Q = E;
I = Q - G >> 3;
P = F;
F = P - Q >> 3;
if ((I | 0) == (F | 0)) {
Q = G;
O = E;
while (1) {
M = Q;
L = c[M >> 2] | 0;
N = c[M + 4 >> 2] | 0;
M = O;
J = c[M + 4 >> 2] | 0;
K = Q;
c[K >> 2] = c[M >> 2];
c[K + 4 >> 2] = J;
J = O;
c[J >> 2] = L;
c[J + 4 >> 2] = N;
Q = Q + 8 | 0;
if ((Q | 0) == (E | 0))
break h;
else
O = O + 8 | 0
}
} else {
R = I;
S = F
}
while (1) {
O = (R | 0) % (S | 0) | 0;
if ((O | 0) == 0)
break;
else {
E = S;
S = O;
R = E
}
}
if ((S | 0) != 0) {
F = I + -1 | 0;
E = I + d | 0;
O = H + (S + d << 3) | 0;
do {
Q = O;
O = O + -8 | 0;
N = O;
J = c[N >> 2] | 0;
L = c[N + 4 >> 2] | 0;
N = O;
K = Q + (F << 3) | 0;
while (1) {
Q = K;
M = c[Q + 4 >> 2] |
0;
l = N;
c[l >> 2] = c[Q >> 2];
c[l + 4 >> 2] = M;
M = P - K >> 3;
if ((I | 0) < (M | 0))
T = K + (I << 3) | 0;
else
T = H + (E - M << 3) | 0;
if ((T | 0) == (O | 0))
break;
else {
M = K;
K = T;
N = M
}
}
N = K;
c[N >> 2] = J;
c[N + 4 >> 2] = L
} while ((O | 0) != (G | 0))
}
}
while (0);
T = c[b + 120 >> 2] | 0;
i:
do if ((T | 0) != 0) {
S = T + (d << 2) | 0;
R = T + (e << 2) | 0;
G = T + (f << 2) | 0;
if ((d + 1 | 0) == (e | 0)) {
U = +g[S >> 2];
O = G - R | 0;
Bn(S | 0, R | 0, O | 0) | 0;
g[T + ((O >> 2) + d << 2) >> 2] = U;
break
}
if ((e + 1 | 0) == (f | 0)) {
O = T + (f + -1 << 2) | 0;
U = +g[O >> 2];
E = O - S | 0;
Bn(T + (f - (E >> 2) << 2) | 0, S | 0, E | 0) | 0;
g[S >> 2] = U;
break
}
E = R;
O = E - S >> 2;
H = G;
G = H - E >> 2;
if ((O | 0) == (G | 0)) {
E = S;
I = R;
while (1) {
U =
+g[E >> 2];
g[E >> 2] = +g[I >> 2];
g[I >> 2] = U;
E = E + 4 | 0;
if ((E | 0) == (R | 0))
break i;
else
I = I + 4 | 0
}
} else {
V = O;
W = G
}
while (1) {
I = (V | 0) % (W | 0) | 0;
if ((I | 0) == 0)
break;
else {
R = W;
W = I;
V = R
}
}
if ((W | 0) != 0) {
G = O + -1 | 0;
R = O + d | 0;
I = T + (W + d << 2) | 0;
do {
E = I;
I = I + -4 | 0;
U = +g[I >> 2];
P = I;
F = E + (G << 2) | 0;
while (1) {
g[P >> 2] = +g[F >> 2];
E = H - F >> 2;
if ((O | 0) < (E | 0))
X = F + (O << 2) | 0;
else
X = T + (R - E << 2) | 0;
if ((X | 0) == (I | 0))
break;
else {
E = F;
F = X;
P = E
}
}
g[F >> 2] = U
} while ((I | 0) != (S | 0))
}
}
while (0);
X = c[b + 132 >> 2] | 0;
j:
do if ((X | 0) != 0) {
T = X + (d << 2) | 0;
W = X + (e << 2) | 0;
V = X + (f << 2) | 0;
if ((d + 1 | 0) == (e | 0)) {
Y =
+g[T >> 2];
S = V - W | 0;
Bn(T | 0, W | 0, S | 0) | 0;
g[X + ((S >> 2) + d << 2) >> 2] = Y;
break
}
if ((e + 1 | 0) == (f | 0)) {
S = X + (f + -1 << 2) | 0;
Y = +g[S >> 2];
I = S - T | 0;
Bn(X + (f - (I >> 2) << 2) | 0, T | 0, I | 0) | 0;
g[T >> 2] = Y;
break
}
I = W;
S = I - T >> 2;
R = V;
V = R - I >> 2;
if ((S | 0) == (V | 0)) {
I = T;
O = W;
while (1) {
Y = +g[I >> 2];
g[I >> 2] = +g[O >> 2];
g[O >> 2] = Y;
I = I + 4 | 0;
if ((I | 0) == (W | 0))
break j;
else
O = O + 4 | 0
}
} else {
Z = S;
_ = V
}
while (1) {
O = (Z | 0) % (_ | 0) | 0;
if ((O | 0) == 0)
break;
else {
W = _;
_ = O;
Z = W
}
}
if ((_ | 0) != 0) {
V = S + -1 | 0;
W = S + d | 0;
O = X + (_ + d << 2) | 0;
do {
I = O;
O = O + -4 | 0;
Y = +g[O >> 2];
H = O;
G = I + (V << 2) | 0;
while (1) {
g[H >> 2] = +g[G >> 2];
I =
R - G >> 2;
if ((S | 0) < (I | 0))
$ = G + (S << 2) | 0;
else
$ = X + (W - I << 2) | 0;
if (($ | 0) == (O | 0))
break;
else {
I = G;
G = $;
H = I
}
}
g[G >> 2] = Y
} while ((O | 0) != (T | 0))
}
}
while (0);
$ = c[b + 136 >> 2] | 0;
if (($ | 0) != 0)
rl($ + (d << 2) | 0, $ + (e << 2) | 0, $ + (f << 2) | 0) | 0;
$ = c[b + 148 >> 2] | 0;
k:
do if (($ | 0) != 0) {
X = $ + (d << 2) | 0;
_ = $ + (e << 2) | 0;
Z = $ + (f << 2) | 0;
if ((d + 1 | 0) == (e | 0)) {
T = c[X >> 2] | 0;
O = Z - _ | 0;
Bn(X | 0, _ | 0, O | 0) | 0;
c[$ + ((O >> 2) + d << 2) >> 2] = T;
break
}
if ((e + 1 | 0) == (f | 0)) {
T = $ + (f + -1 << 2) | 0;
O = c[T >> 2] | 0;
W = T - X | 0;
Bn($ + (f - (W >> 2) << 2) | 0, X | 0, W | 0) | 0;
c[X >> 2] = O;
break
}
O = _;
W = O - X >> 2;
T = Z;
Z = T - O >> 2;
if ((W | 0) ==
(Z | 0)) {
O = X;
S = _;
while (1) {
R = c[O >> 2] | 0;
c[O >> 2] = c[S >> 2];
c[S >> 2] = R;
O = O + 4 | 0;
if ((O | 0) == (_ | 0))
break k;
else
S = S + 4 | 0
}
} else {
aa = W;
ba = Z
}
while (1) {
S = (aa | 0) % (ba | 0) | 0;
if ((S | 0) == 0)
break;
else {
_ = ba;
ba = S;
aa = _
}
}
if ((ba | 0) != 0) {
Z = W + -1 | 0;
_ = W + d | 0;
S = $ + (ba + d << 2) | 0;
do {
O = S;
S = S + -4 | 0;
R = c[S >> 2] | 0;
V = S;
H = O + (Z << 2) | 0;
while (1) {
c[V >> 2] = c[H >> 2];
O = T - H >> 2;
if ((W | 0) < (O | 0))
ca = H + (W << 2) | 0;
else
ca = $ + (_ - O << 2) | 0;
if ((ca | 0) == (S | 0))
break;
else {
O = H;
H = ca;
V = O
}
}
c[H >> 2] = R
} while ((S | 0) != (X | 0))
}
}
while (0);
ca = b + 80 | 0;
$ = c[ca >> 2] | 0;
if (($ | 0) != 0) {
ba = $ + (d << 2) | 0;
aa = $ +
(e << 2) | 0;
X = $ + (f << 2) | 0;
l:
do if ((d + 1 | 0) != (e | 0)) {
if ((e + 1 | 0) == (f | 0)) {
S = $ + (f + -1 << 2) | 0;
_ = c[S >> 2] | 0;
W = S - ba | 0;
Bn($ + (f - (W >> 2) << 2) | 0, ba | 0, W | 0) | 0;
c[ba >> 2] = _;
break
}
_ = aa;
W = _ - ba >> 2;
S = X;
T = S - _ >> 2;
if ((W | 0) == (T | 0)) {
_ = ba;
Z = aa;
while (1) {
V = c[_ >> 2] | 0;
c[_ >> 2] = c[Z >> 2];
c[Z >> 2] = V;
_ = _ + 4 | 0;
if ((_ | 0) == (aa | 0))
break l;
else
Z = Z + 4 | 0
}
} else {
da = W;
ea = T
}
while (1) {
Z = (da | 0) % (ea | 0) | 0;
if ((Z | 0) == 0)
break;
else {
_ = ea;
ea = Z;
da = _
}
}
if ((ea | 0) != 0) {
T = W + -1 | 0;
_ = W + d | 0;
Z = $ + (ea + d << 2) | 0;
do {
V = Z;
Z = Z + -4 | 0;
G = c[Z >> 2] | 0;
O = Z;
F = V + (T << 2) | 0;
while (1) {
c[O >> 2] = c[F >> 2];
V =
S - F >> 2;
if ((W | 0) < (V | 0))
fa = F + (W << 2) | 0;
else
fa = $ + (_ - V << 2) | 0;
if ((fa | 0) == (Z | 0))
break;
else {
V = F;
F = fa;
O = V
}
}
c[F >> 2] = G
} while ((Z | 0) != (ba | 0))
}
} else {
Z = c[ba >> 2] | 0;
_ = X - aa | 0;
Bn(ba | 0, aa | 0, _ | 0) | 0;
c[$ + ((_ >> 2) + d << 2) >> 2] = Z
}
while (0);
if ((d | 0) < (f | 0)) {
$ = c[ca >> 2] | 0;
ca = f - e | 0;
aa = d - e | 0;
ba = d;
do {
X = c[$ + (ba << 2) >> 2] | 0;
if ((X | 0) != 0) {
fa = X + 8 | 0;
X = c[fa >> 2] | 0;
do if ((X | 0) >= (d | 0))
if ((X | 0) < (e | 0)) {
ga = ca + X | 0;
break
} else {
ga = X + ((X | 0) < (f | 0) ? aa : 0) | 0;
break
}
else
ga = X;
while (0);
c[fa >> 2] = ga
}
ba = ba + 1 | 0
} while ((ba | 0) != (f | 0))
}
}
ba = c[b + 280 >> 2] | 0;
if ((ba | 0) != 0) {
ga =
ba + (d << 2) | 0;
aa = ba + (e << 2) | 0;
ca = ba + (f << 2) | 0;
m:
do if ((d + 1 | 0) == (e | 0)) {
$ = c[ga >> 2] | 0;
X = ca - aa | 0;
Bn(ga | 0, aa | 0, X | 0) | 0;
c[ba + ((X >> 2) + d << 2) >> 2] = $
} else {
if ((e + 1 | 0) == (f | 0)) {
$ = ba + (f + -1 << 2) | 0;
X = c[$ >> 2] | 0;
ea = $ - ga | 0;
Bn(ba + (f - (ea >> 2) << 2) | 0, ga | 0, ea | 0) | 0;
c[ga >> 2] = X;
break
}
X = aa;
ea = X - ga >> 2;
$ = ca;
da = $ - X >> 2;
if ((ea | 0) == (da | 0)) {
X = ga;
Z = aa;
while (1) {
_ = c[X >> 2] | 0;
c[X >> 2] = c[Z >> 2];
c[Z >> 2] = _;
X = X + 4 | 0;
if ((X | 0) == (aa | 0))
break m;
else
Z = Z + 4 | 0
}
} else {
ha = ea;
ia = da
}
while (1) {
Z = (ha | 0) % (ia | 0) | 0;
if ((Z | 0) == 0)
break;
else {
X = ia;
ia = Z;
ha = X
}
}
if ((ia | 0) == 0)
break;
da = ea + -1 | 0;
X = ea + d | 0;
Z = ba + (ia + d << 2) | 0;
do {
fa = Z;
Z = Z + -4 | 0;
_ = c[Z >> 2] | 0;
W = Z;
S = fa + (da << 2) | 0;
while (1) {
c[W >> 2] = c[S >> 2];
fa = $ - S >> 2;
if ((ea | 0) < (fa | 0))
ja = S + (ea << 2) | 0;
else
ja = ba + (X - fa << 2) | 0;
if ((ja | 0) == (Z | 0))
break;
else {
fa = S;
S = ja;
W = fa
}
}
c[S >> 2] = _
} while ((Z | 0) != (ga | 0))
}
while (0);
ga = c[b + 44 >> 2] | 0;
ja = c[b + 288 >> 2] | 0;
if ((ga | 0) > 0) {
ba = f - e | 0;
ia = d - e | 0;
ha = 0;
do {
aa = ja + (ha << 2) | 0;
ca = c[aa >> 2] | 0;
do if ((ca | 0) >= (d | 0))
if ((ca | 0) < (e | 0)) {
ka = ba + ca | 0;
break
} else {
ka = ca + ((ca | 0) < (f | 0) ? ia : 0) | 0;
break
}
else
ka = ca;
while (0);
c[aa >> 2] = ka;
ha = ha + 1 | 0
} while ((ha |
0) != (ga | 0))
}
}
ga = b + 204 | 0;
if ((c[ga >> 2] | 0) > 0) {
ha = c[b + 200 >> 2] | 0;
ka = f - e | 0;
ia = d - e | 0;
ba = 0;
do {
ja = ha + (ba << 3) | 0;
ca = c[ja >> 2] | 0;
do if ((ca | 0) >= (d | 0))
if ((ca | 0) < (e | 0)) {
la = ka + ca | 0;
break
} else {
la = ca + ((ca | 0) < (f | 0) ? ia : 0) | 0;
break
}
else
la = ca;
while (0);
c[ja >> 2] = la;
ba = ba + 1 | 0
} while ((ba | 0) < (c[ga >> 2] | 0))
}
ga = b + 220 | 0;
if ((c[ga >> 2] | 0) > 0) {
ba = c[b + 216 >> 2] | 0;
la = f - e | 0;
ia = d - e | 0;
ka = 0;
do {
ha = ba + (ka * 24 | 0) | 0;
ca = c[ha >> 2] | 0;
do if ((ca | 0) >= (d | 0))
if ((ca | 0) < (e | 0)) {
ma = la + ca | 0;
break
} else {
ma = ca + ((ca | 0) < (f | 0) ? ia : 0) | 0;
break
}
else
ma = ca;
while (0);
ca = ba +
(ka * 24 | 0) + 4 | 0;
ja = c[ca >> 2] | 0;
do if ((ja | 0) >= (d | 0))
if ((ja | 0) < (e | 0)) {
na = la + ja | 0;
break
} else {
na = ja + ((ja | 0) < (f | 0) ? ia : 0) | 0;
break
}
else
na = ja;
while (0);
c[ha >> 2] = ma;
c[ca >> 2] = na;
ka = ka + 1 | 0
} while ((ka | 0) < (c[ga >> 2] | 0))
}
ga = b + 236 | 0;
if ((c[ga >> 2] | 0) > 0) {
ka = c[b + 232 >> 2] | 0;
na = f - e | 0;
ma = d - e | 0;
ia = 0;
do {
la = ka + (ia * 28 | 0) | 0;
ba = c[la >> 2] | 0;
do if ((ba | 0) >= (d | 0))
if ((ba | 0) < (e | 0)) {
oa = na + ba | 0;
break
} else {
oa = ba + ((ba | 0) < (f | 0) ? ma : 0) | 0;
break
}
else
oa = ba;
while (0);
c[la >> 2] = oa;
ia = ia + 1 | 0
} while ((ia | 0) < (c[ga >> 2] | 0))
}
ga = b + 252 | 0;
if ((c[ga >> 2] | 0) > 0) {
ia =
c[b + 248 >> 2] | 0;
oa = f - e | 0;
ma = d - e | 0;
na = 0;
do {
ka = ia + (na * 20 | 0) | 0;
ba = c[ka >> 2] | 0;
do if ((ba | 0) >= (d | 0))
if ((ba | 0) < (e | 0)) {
pa = oa + ba | 0;
break
} else {
pa = ba + ((ba | 0) < (f | 0) ? ma : 0) | 0;
break
}
else
pa = ba;
while (0);
c[ka >> 2] = pa;
ba = ia + (na * 20 | 0) + 4 | 0;
la = c[ba >> 2] | 0;
do if ((la | 0) >= (d | 0))
if ((la | 0) < (e | 0)) {
qa = oa + la | 0;
break
} else {
qa = la + ((la | 0) < (f | 0) ? ma : 0) | 0;
break
}
else
qa = la;
while (0);
c[ba >> 2] = qa;
na = na + 1 | 0
} while ((na | 0) < (c[ga >> 2] | 0))
}
ga = b + 268 | 0;
if ((c[ga >> 2] | 0) > 0) {
na = c[b + 264 >> 2] | 0;
qa = f - e | 0;
ma = d - e | 0;
oa = 0;
do {
ia = na + (oa * 60 | 0) | 0;
pa = c[ia >> 2] | 0;
do if ((pa |
0) >= (d | 0))
if ((pa | 0) < (e | 0)) {
ra = qa + pa | 0;
break
} else {
ra = pa + ((pa | 0) < (f | 0) ? ma : 0) | 0;
break
}
else
ra = pa;
while (0);
c[ia >> 2] = ra;
pa = na + (oa * 60 | 0) + 4 | 0;
ba = c[pa >> 2] | 0;
do if ((ba | 0) >= (d | 0))
if ((ba | 0) < (e | 0)) {
sa = qa + ba | 0;
break
} else {
sa = ba + ((ba | 0) < (f | 0) ? ma : 0) | 0;
break
}
else
sa = ba;
while (0);
c[pa >> 2] = sa;
ba = na + (oa * 60 | 0) + 8 | 0;
ia = c[ba >> 2] | 0;
do if ((ia | 0) >= (d | 0))
if ((ia | 0) < (e | 0)) {
ta = qa + ia | 0;
break
} else {
ta = ia + ((ia | 0) < (f | 0) ? ma : 0) | 0;
break
}
else
ta = ia;
while (0);
c[ba >> 2] = ta;
oa = oa + 1 | 0
} while ((oa | 0) < (c[ga >> 2] | 0))
}
ga = c[b + 312 >> 2] | 0;
if ((ga | 0) == 0) {
i =
h;
return
}
b = d - e | 0;
oa = f - e | 0;
ta = ga;
do {
ga = ta + 4 | 0;
ma = c[ga >> 2] | 0;
do if ((ma | 0) >= (d | 0))
if ((ma | 0) < (e | 0)) {
ua = oa + ma | 0;
break
} else {
ua = ma + ((ma | 0) < (f | 0) ? b : 0) | 0;
break
}
else
ua = ma;
while (0);
c[ga >> 2] = ua;
ma = ta + 8 | 0;
ba = c[ma >> 2] | 0;
qa = ba + -1 | 0;
do if ((ba | 0) > (d | 0))
if ((ba | 0) > (e | 0)) {
va = qa + ((ba | 0) > (f | 0) ? 0 : b) | 0;
break
} else {
va = oa + qa | 0;
break
}
else
va = qa;
while (0);
c[ma >> 2] = va + 1;
ta = c[ta + 24 >> 2] | 0
} while ((ta | 0) != 0);
i = h;
return
}
function Ak(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;
f = i;
g = (c[b + 88 >> 2] | 0) + (d << 2) | 0;
if ((c[g >>
2] & ~e | 0) != 0)
a[b + 12 >> 0] = 1;
d = b + 8 | 0;
if ((~c[d >> 2] & e | 0) == 0) {
c[g >> 2] = e;
i = f;
return
}
if ((e & 128 | 0) != 0) {
h = b + 128 | 0;
j = c[h >> 2] | 0;
if ((j | 0) == 0) {
k = b + 48 | 0;
l = c[k >> 2] | 0;
if ((l | 0) == 0) {
vk(b, 256);
m = c[k >> 2] | 0
} else
m = l;
l = Em(c[b + 400 >> 2] | 0, m << 3) | 0;
xn(l | 0, 0, c[k >> 2] << 3 | 0) | 0;
n = l
} else
n = j;
c[h >> 2] = n
}
if ((e & 256 | 0) != 0) {
n = b + 136 | 0;
h = c[n >> 2] | 0;
if ((h | 0) == 0) {
j = b + 48 | 0;
l = c[j >> 2] | 0;
if ((l | 0) == 0) {
vk(b, 256);
o = c[j >> 2] | 0
} else
o = l;
l = Em(c[b + 400 >> 2] | 0, o << 2) | 0;
xn(l | 0, 0, c[j >> 2] << 2 | 0) | 0;
p = l
} else
p = h;
c[n >> 2] = p
}
c[d >> 2] = c[d >> 2] | e;
c[g >> 2] = e;
i = f;
return
}
function Bk(a,
b, d) {
a = a | 0;
b = b | 0;
d = d | 0;
var e = 0;
e = i;
Ak(a, b, c[(c[a + 88 >> 2] | 0) + (b << 2) >> 2] | (d ? 514 : 2));
i = e;
return
}
function Ck(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 | 0) != 0) {
l = 0;
i = g;
return l | 0
}
c[h >> 2] = 7912;
m = h + 12 | 0;
c[h + 4 >> 2] = b;
c[h + 8 >> 2] = d;
c[m + 0 >> 2] = c[e + 0 >> 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;
pb[c[(c[d >> 2] | 0) + 28 >> 2] & 31](d, j, e, 0);
Dj(c[k >> 2] | 0, h, j);
l = c[f >> 2] | 0;
i = g;
return l | 0
}
function Dk(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,
O = 0,
P = 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;
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 = bb[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 = f + 28 | 0;
M = f + 8 | 0;
N = f + 12 | 0;
O = f + 20 | 0;
P = f + 24 | 0;
R = f + 32 | 0;
S = f + 33 | 0;
T = f + 34 | 0;
U = f + 35 | 0;
V = f + 64 | 0;
W = f + 68 | 0;
X = 0;
m = 0;
while (1) {
c[l >> 2] = 488;
c[p >> 2] = 1;
g[q >> 2] = .009999999776482582;
c[r + 0 >> 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) {
Y = s;
Z = c[Y + 4 >> 2] | 0;
_ = p;
c[_ >> 2] = c[Y >> 2];
c[_ + 4 >> 2] = Z;
c[t + 0 >> 2] = c[u + 0 >> 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
Ge(e, l, X);
$ = +g[w >> 2];
aa = +g[v >> 2] - $;
ba = +g[y >> 2];
ca = +g[x >> 2] - ba;
da = +Q(+(aa * aa + ca * ca));
a:
do if (m < da) {
ea = $;
fa = ba;
ga = m;
while (1) {
ha = ga / da;
ia = ea + aa * ha;
ja = ca * ha + fa;
c[H >> 2] = 0;
c[k >> 2] = c[f >> 2];
ha = +g[I >> 2];
ka = +g[J >> 2];
la = +g[h >> 2] + (ia * ha - ja * ka);
ma = ja * ha + ia * ka + +g[K >> 2];
ka = +la;
ia = +ma;
Z = z;
g[Z >> 2] = ka;
g[Z + 4 >> 2] = ia;
ia = +g[L >> 2];
ka = +(+g[O >> 2] - ia * (ma - +g[N >> 2]));
ma = +(ia * (la - +g[M >> 2]) + +g[P >> 2]);
Z = A;
g[Z >> 2] =
ka;
g[Z + 4 >> 2] = ma;
Z = a[S >> 0] | 0;
_ = a[T >> 0] | 0;
Y = a[U >> 0] | 0;
a[B >> 0] = a[R >> 0] | 0;
a[C >> 0] = Z;
a[D >> 0] = _;
a[E >> 0] = Y;
g[F >> 2] = +g[V >> 2];
c[G >> 2] = c[W >> 2];
wk(d, k) | 0;
ma = n + ga;
if (!(ma < da)) {
na = ma;
break a
}
ea = +g[w >> 2];
fa = +g[y >> 2];
ga = ma
}
} else
na = m;
while (0);
Y = X + 1 | 0;
if ((Y | 0) == (o | 0))
break;
X = Y;
m = na - da
}
i = j;
return
}
function Ek(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,
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;
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;
pb[c[(c[d >> 2] | 0) + 28 >> 2] & 31](d, l, k, 0);
n = o * +O(+(+g[l + 4 >> 2] / o));
p = l + 12 | 0;
q = +g[p >> 2];
if (!(n < q)) {
i = h;
return
}
r = l + 8 | 0;
s = m + 4 | 0;
t = j + 4 | 0;
u = j + 12 | 0;
v = j + 20 | 0;
w = j + 21 | 0;
x = j + 22 | 0;
y = j + 23 | 0;
z = j + 24 | 0;
A = j + 28 | 0;
B = j + 32 | 0;
C = f + 12 | 0;
D = f + 8 | 0;
E = f + 4 | 0;
F = e + 28 | 0;
G = e + 8 | 0;
H = e + 12 | 0;
I = e + 20 | 0;
J = e + 24 | 0;
K = e + 32 | 0;
L = e + 33 | 0;
M = e + 34 | 0;
N = e + 35 | 0;
P = e + 64 | 0;
Q = e + 68 | 0;
R = q;
q = +g[r >> 2];
S =
n;
while (1) {
n = o * +O(+(+g[l >> 2] / o));
if (n < q) {
T = n;
do {
g[m >> 2] = T;
g[s >> 2] = S;
if (hb[c[(c[d >> 2] | 0) + 16 >> 2] & 15](d, k, m) | 0) {
c[B >> 2] = 0;
c[j >> 2] = c[e >> 2];
n = +g[C >> 2];
U = +g[m >> 2];
V = +g[D >> 2];
W = +g[s >> 2];
X = +g[f >> 2] + (n * U - V * W);
Y = U * V + n * W + +g[E >> 2];
W = +X;
n = +Y;
Z = t;
g[Z >> 2] = W;
g[Z + 4 >> 2] = n;
n = +g[F >> 2];
W = +(+g[I >> 2] - n * (Y - +g[H >> 2]));
Y = +(n * (X - +g[G >> 2]) + +g[J >> 2]);
Z = u;
g[Z >> 2] = W;
g[Z + 4 >> 2] = Y;
Z = a[L >> 0] | 0;
_ = a[M >> 0] | 0;
$ = a[N >> 0] | 0;
a[v >> 0] = a[K >> 0] | 0;
a[w >> 0] = Z;
a[x >> 0] = _;
a[y >> 0] = $;
g[z >> 2] = +g[P >> 2];
c[A >> 2] = c[Q >> 2];
wk(b, j) | 0
}
T = o + T;
aa = +g[r >> 2]
} while (T <
aa);
ba = +g[p >> 2];
ca = aa
} else {
ba = R;
ca = q
}
S = o + S;
if (!(S < ba))
break;
else {
R = ba;
q = ca
}
}
i = h;
return
}
function Fk(b, d) {
b = b | 0;
d = d | 0;
var e = 0,
f = 0,
h = 0,
j = 0,
k = 0,
l = 0,
m = 0,
n = 0,
o = 0,
p = 0,
q = 0,
r = 0,
s = 0,
t = 0,
u = 0,
v = 0,
w = 0,
x = 0,
y = 0,
z = 0,
A = 0,
B = 0,
C = 0,
D = 0,
E = 0,
F = 0,
G = 0,
H = 0,
I = 0,
J = 0,
K = 0,
L = 0,
M = 0,
N = 0,
O = 0,
P = 0,
Q = 0,
R = 0,
U = 0,
V = 0,
W = 0,
X = 0,
Y = 0,
Z = 0,
_ = 0,
$ = 0,
aa = 0;
e = i;
i = i + 64 | 0;
f = e + 20 | 0;
h = e;
j = e + 16 | 0;
k = b + 400 | 0;
if ((c[(c[k >> 2] | 0) + 102876 >> 2] & 2 | 0) != 0) {
l = 0;
i = e;
return l | 0
}
m = +g[d + 16 >> 2];
n = d + 8 | 0;
o = c[n + 4 >> 2] | 0;
p = h;
c[p >> 2] = c[n >> 2];
c[p + 4 >> 2] = o;
o = h + 8 | 0;
g[o >> 2] = +T(+m);
p = h + 12 | 0;
g[p >> 2] = +S(+m);
n = b + 44 | 0;
q = c[n >> 2] | 0;
r = c[d + 40 >> 2] | 0;
do if ((r | 0) != 0) {
s = c[r + 4 >> 2] | 0;
if ((s | 0) == 3 | (s | 0) == 1) {
Dk(b, r, d, h);
break
} else if ((s | 0) == 0 | (s | 0) == 2) {
Ek(b, r, d, h);
break
} else
break
}
while (0);
r = c[d + 44 >> 2] | 0;
if ((r | 0) != 0) {
s = c[d + 48 >> 2] | 0;
c[f >> 2] = 7720;
c[f + 12 >> 2] = r;
c[f + 16 >> 2] = s;
Ek(b, f, d, h)
}
s = d + 56 | 0;
if ((c[s >> 2] | 0) > 0) {
r = d + 60 | 0;
t = f + 4 | 0;
u = f + 12 | 0;
v = f + 20 | 0;
w = f + 21 | 0;
x = f + 22 | 0;
y = f + 23 | 0;
z = f + 24 | 0;
A = f + 28 | 0;
B = f + 32 | 0;
m = +g[p >> 2];
C = +g[o >> 2];
D = +g[h >> 2];
E = +g[h + 4 >> 2];
o = d + 28 | 0;
p = d + 8 | 0;
F = d + 12 | 0;
G = d + 20 | 0;
H = d + 24 | 0;
I = d + 32 |
0;
J = d + 33 | 0;
K = d + 34 | 0;
L = d + 35 | 0;
M = d + 64 | 0;
N = d + 68 | 0;
O = 0;
do {
P = (c[r >> 2] | 0) + (O << 3) | 0;
Q = +g[P >> 2];
R = +g[P + 4 >> 2];
c[B >> 2] = 0;
c[f >> 2] = c[d >> 2];
U = D + (Q * m - R * C);
V = m * R + Q * C + E;
Q = +U;
R = +V;
P = t;
g[P >> 2] = Q;
g[P + 4 >> 2] = R;
R = +g[o >> 2];
Q = +(+g[G >> 2] - R * (V - +g[F >> 2]));
V = +(R * (U - +g[p >> 2]) + +g[H >> 2]);
P = u;
g[P >> 2] = Q;
g[P + 4 >> 2] = V;
P = a[J >> 0] | 0;
W = a[K >> 0] | 0;
X = a[L >> 0] | 0;
a[v >> 0] = a[I >> 0] | 0;
a[w >> 0] = P;
a[x >> 0] = W;
a[y >> 0] = X;
g[z >> 2] = +g[M >> 2];
c[A >> 2] = c[N >> 2];
wk(b, f) | 0;
O = O + 1 | 0
} while ((O | 0) < (c[s >> 2] | 0))
}
s = c[n >> 2] | 0;
n = Em(c[k >> 2] | 0, 80) | 0;
if ((n | 0) == 0)
Y = 0;
else {
mk(n);
Y = n
}
c[Y >> 2] = b;
c[Y + 4 >> 2] = q;
c[Y + 8 >> 2] = s;
g[Y + 16 >> 2] = +g[d + 36 >> 2];
c[Y + 76 >> 2] = c[d + 68 >> 2];
n = Y + 60 | 0;
c[n + 0 >> 2] = c[h + 0 >> 2];
c[n + 4 >> 2] = c[h + 4 >> 2];
c[n + 8 >> 2] = c[h + 8 >> 2];
c[n + 12 >> 2] = c[h + 12 >> 2];
c[Y + 20 >> 2] = 0;
h = b + 312 | 0;
c[Y + 24 >> 2] = c[h >> 2];
n = c[h >> 2] | 0;
if ((n | 0) != 0)
c[n + 20 >> 2] = Y;
c[h >> 2] = Y;
h = b + 308 | 0;
c[h >> 2] = (c[h >> 2] | 0) + 1;
if ((q | 0) < (s | 0)) {
h = b + 144 | 0;
n = q;
do {
c[(c[h >> 2] | 0) + (n << 2) >> 2] = Y;
n = n + 1 | 0
} while ((n | 0) != (s | 0))
}
n = c[d + 4 >> 2] | 0;
h = Y + 12 | 0;
O = c[h >> 2] | 0;
f = (O ^ n) << 4 & 16 | n;
if ((O & ~f | 0) != 0)
a[b + 20 >> 0] = 1;
O = b + 16 | 0;
N = c[O >> 2] | 0;
if ((f & ~N | 0) != 0) {
if ((n &
1 | 0) == 0)
Z = N;
else {
n = b + 132 | 0;
A = c[n >> 2] | 0;
if ((A | 0) == 0) {
M = b + 48 | 0;
z = c[M >> 2] | 0;
if ((z | 0) == 0) {
vk(b, 256);
_ = c[M >> 2] | 0
} else
_ = z;
z = Em(c[k >> 2] | 0, _ << 2) | 0;
xn(z | 0, 0, c[M >> 2] << 2 | 0) | 0;
$ = z;
aa = c[O >> 2] | 0
} else {
$ = A;
aa = N
}
c[n >> 2] = $;
Z = aa
}
c[O >> 2] = Z | f
}
c[h >> 2] = f;
c[j >> 2] = 7544;
Gk(b, 1);
Hk(b, q, s, j);
j = d + 72 | 0;
d = c[j >> 2] | 0;
if ((d | 0) == 0) {
l = Y;
i = e;
return l | 0
}
Ik(b, d, Y);
l = c[j >> 2] | 0;
i = e;
return l | 0
}
function Gk(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;
d = i;
i = i + 32 | 0;
e = d;
f = d + 8 | 0;
h = a + 204 | 0;
j = c[h >> 2] | 0;
k =
c[a + 200 >> 2] | 0;
l = k + (j << 3) | 0;
if ((j | 0) > 0) {
m = c[a + 96 >> 2] | 0;
n = +g[a + 36 >> 2];
o = k;
do {
p = c[o >> 2] | 0;
c[o + 4 >> 2] = (~~(n * +g[m + (p << 3) + 4 >> 2] + 2048) >>> 0 << 20) + (~~(n * +g[m + (p << 3) >> 2] * 256 + 524288) >>> 0);
o = o + 8 | 0
} while (o >>> 0 < l >>> 0);
q = c[h >> 2] | 0
} else
q = j;
Il(k, k + (q << 3) | 0, e);
e = c[a + 400 >> 2] | 0;
c[f >> 2] = 0;
c[f + 4 >> 2] = 0;
q = f + 8 | 0;
c[q >> 2] = 0;
k = f + 12 | 0;
c[k >> 2] = e + 76;
if ((c[a + 8 >> 2] & 32768 | 0) != 0 ? (c[e + 102952 >> 2] | 0) != 0 : 0)
Rk(f, c[a + 216 >> 2] | 0, c[a + 220 >> 2] | 0, c[a + 88 >> 2] | 0);
e = a + 216 | 0;
Ok(a, e);
Qk(a, e);
Sk(a, f);
if (b) {
b = c[e >> 2] | 0;
j = a + 220 | 0;
a = c[j >> 2] | 0;
h = b + (a * 24 |
0) | 0;
a:
do if ((a | 0) == 0) {
r = b;
s = 12
} else {
l = b;
while (1) {
if ((c[l + 20 >> 2] & 2 | 0) != 0) {
r = l;
s = 12;
break a
}
l = l + 24 | 0;
if ((l | 0) == (h | 0)) {
t = h;
u = b;
break
}
}
}
while (0);
if ((s | 0) == 12)
if ((r | 0) == (h | 0)) {
t = h;
u = b
} else {
b = r;
s = r;
b:
while (1) {
r = s;
do {
a = r;
r = r + 24 | 0;
if ((r | 0) == (h | 0))
break b
} while ((c[a + 44 >> 2] & 2 | 0) != 0);
c[b + 0 >> 2] = c[r + 0 >> 2];
c[b + 4 >> 2] = c[r + 4 >> 2];
c[b + 8 >> 2] = c[r + 8 >> 2];
c[b + 12 >> 2] = c[r + 12 >> 2];
c[b + 16 >> 2] = c[r + 16 >> 2];
c[b + 20 >> 2] = c[r + 20 >> 2];
b = b + 24 | 0;
s = r
}
t = b;
u = c[e >> 2] | 0
}
c[j >> 2] = (t - u | 0) / 24 | 0
}
u = c[f >> 2] | 0;
if ((u | 0) == 0) {
i = d;
return
}
_m(c[k >> 2] | 0, u);
c[f >> 2] = 0;
c[q >> 2] = 0;
i = d;
return
}
function Hk(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,
O = 0,
P = 0,
R = 0,
S = 0,
T = 0,
U = 0,
V = 0,
W = 0,
X = 0,
Y = 0,
Z = 0;
f = i;
i = i + 48 | 0;
h = f + 40 | 0;
j = f + 12 | 0;
k = f;
l = (b | 0) < (d | 0);
if (!l) {
i = 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) != 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 + 252 | 0;
s = a + 256 | 0;
t = a + 248 | 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;
C = c[A + (z << 2) >> 2] | 0;
A = c[q >> 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 (!(nb[c[(c[e >> 2] | 0) + 8 >> 2] & 31](e, y) | 0) ? !(nb[c[(c[e >> 2] | 0) + 8 >> 2] & 31](e, z) | 0) : 0)
break;
if ((B & 28 | 0) == 0) {
if ((D | 0) == 0)
break;
if ((c[D + 12 >> 2] & 2 | 0) == 0)
break
}
if ((C & 28 | 0) == 0) {
if ((E | 0) == 0)
break;
if ((c[E + 12 >> 2] & 2 | 0) == 0)
break
}
if (hb[c[(c[e >>
2] | 0) + 12 >> 2] & 15](e, y, z) | 0) {
A = c[r >> 2] | 0;
F = c[s >> 2] | 0;
if ((A | 0) >= (F | 0) ? (G = (F | 0) == 0 ? 256 : F << 1, (F | 0) < (G | 0)) : 0) {
F = Em(c[v >> 2] | 0, G * 20 | 0) | 0;
H = c[t >> 2] | 0;
if ((H | 0) != 0) {
An(F | 0, H | 0, (c[r >> 2] | 0) * 20 | 0) | 0;
Fm(c[v >> 2] | 0, c[t >> 2] | 0, (c[s >> 2] | 0) * 20 | 0)
}
c[s >> 2] = G;
c[t >> 2] = F;
I = c[r >> 2] | 0
} else
I = A;
c[r >> 2] = I + 1;
A = c[t >> 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 | 0) == 0)
J = 1;
else
J = +g[D + 16 >> 2];
if ((E | 0) == 0)
K = 1;
else
K = +g[E + 16 >> 2];
g[A + (I * 20 | 0) + 12 >> 2] = J < K ? J : K;
F = c[u >> 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] = +Q(+(L * L + M * M))
}
}
while (0);
w = w + 1 | 0
} while ((w | 0) < (c[n >> 2] | 0));
N = r
} else
N = a + 252 | 0;
r = a + 248 | 0;
n = c[r >> 2] | 0;
w = c[N >> 2] | 0;
I = n + (w * 20 | 0) | 0;
c[h >> 2] = 27;
u = w * 20 | 0;
w = (u | 0) / 20 | 0;
a:
do if ((u | 0) > 2560) {
t = w;
while (1) {
s = rn(t * 20 | 0, 9632) | 0;
if ((s | 0) != 0) {
O = s;
P = t;
break a
}
if ((t | 0) > 1)
t = (t | 0) / 2 | 0;
else {
O = s;
P = 0;
break
}
}
} else {
O = 0;
P = 0
}
while (0);
Pl(n, I, h, w, O, P);
if ((O | 0) != 0)
sn(O);
O = c[r >> 2] | 0;
P = c[N >> 2] | 0;
w = O + (P * 20 | 0) | 0;
b:
do if ((P | 0) == 0) {
R = O;
S = 40
} else if ((P | 0) == 1) {
T = w;
U = O
} else {
I =
O;
n = O + 20 | 0;
u = c[O >> 2] | 0;
while (1) {
t = u;
u = c[n >> 2] | 0;
if ((t | 0) == (u | 0) ? (c[I + 4 >> 2] | 0) == (c[I + 24 >> 2] | 0) : 0) {
R = I;
S = 40;
break b
}
t = n + 20 | 0;
if ((t | 0) == (w | 0)) {
T = w;
U = O;
break
} else {
s = n;
n = t;
I = s
}
}
}
while (0);
if ((S | 0) == 40)
if ((R | 0) == (w | 0)) {
T = w;
U = O
} else {
O = R;
P = R + 20 | 0;
c:
while (1) {
R = O + 4 | 0;
I = P;
do {
n = I;
I = I + 20 | 0;
if ((I | 0) == (w | 0))
break c;
if ((c[O >> 2] | 0) != (c[I >> 2] | 0))
break
} while ((c[R >> 2] | 0) == (c[n + 24 >> 2] | 0));
R = O + 20 | 0;
c[R + 0 >> 2] = c[I + 0 >> 2];
c[R + 4 >> 2] = c[I + 4 >> 2];
c[R + 8 >> 2] = c[I + 8 >> 2];
c[R + 12 >> 2] = c[I + 12 >> 2];
c[R + 16 >> 2] = c[I + 16 >> 2];
O = R;
P = I
}
T = O + 20 | 0;
U =
c[r >> 2] | 0
}
c[N >> 2] = (T - U | 0) / 20 | 0
}
if ((o & 16 | 0) == 0) {
i = f;
return
}
hk(j, (c[a + 400 >> 2] | 0) + 76 | 0, d - b | 0);
if (l) {
l = a + 88 | 0;
o = a + 144 | 0;
U = a + 96 | 0;
T = b;
do {
b = c[(c[l >> 2] | 0) + (T << 2) >> 2] | 0;
do if ((b & 2 | 0) == 0) {
N = c[(c[o >> 2] | 0) + (T << 2) >> 2] | 0;
if ((b & 28 | 0) == 0) {
if ((N | 0) == 0)
break;
if ((c[N + 12 >> 2] & 2 | 0) == 0)
break
}
N = c[U >> 2] | 0;
jk(j, N + (T << 3) | 0, T, nb[c[(c[e >> 2] | 0) + 8 >> 2] & 31](e, T) | 0)
}
while (0);
T = T + 1 | 0
} while ((T | 0) < (d | 0))
}
K = +g[a + 32 >> 2] * .75;
kk(j, K * .5, K * 2);
c[k >> 2] = 7176;
c[k + 4 >> 2] = a;
c[k + 8 >> 2] = e;
lk(j, k);
k = a + 264 | 0;
e = c[k >> 2] | 0;
d = a + 268 | 0;
a = c[d >> 2] | 0;
T = e + (a *
60 | 0) | 0;
c[h >> 2] = 28;
U = a * 60 | 0;
a = (U | 0) / 60 | 0;
d:
do if ((U | 0) > 7680) {
o = a;
while (1) {
l = rn(o * 60 | 0, 9632) | 0;
if ((l | 0) != 0) {
V = l;
W = o;
break d
}
if ((o | 0) > 1)
o = (o | 0) / 2 | 0;
else {
V = l;
W = 0;
break
}
}
} else {
V = 0;
W = 0
}
while (0);
Ll(e, T, h, a, V, W);
if ((V | 0) != 0)
sn(V);
V = c[k >> 2] | 0;
W = c[d >> 2] | 0;
a = V + (W * 60 | 0) | 0;
e:
do if ((W | 0) == 0) {
X = V;
S = 69
} else if ((W | 0) == 1) {
Y = a;
Z = V
} else {
h = V;
T = V + 60 | 0;
e = c[V >> 2] | 0;
while (1) {
U = e;
e = c[T >> 2] | 0;
if (((U | 0) == (e | 0) ? (c[h + 4 >> 2] | 0) == (c[h + 64 >> 2] | 0) : 0) ? (c[h + 8 >> 2] | 0) == (c[h + 68 >> 2] | 0) : 0) {
X = h;
S = 69;
break e
}
U = T + 60 | 0;
if ((U | 0) == (a | 0)) {
Y = a;
Z =
V;
break
} else {
o = T;
T = U;
h = o
}
}
}
while (0);
if ((S | 0) == 69)
if ((X | 0) == (a | 0)) {
Y = a;
Z = V
} else {
V = X;
S = X + 60 | 0;
f:
while (1) {
X = V + 4 | 0;
W = V + 8 | 0;
h = S;
do {
T = h;
h = h + 60 | 0;
if ((h | 0) == (a | 0))
break f;
if ((c[V >> 2] | 0) != (c[h >> 2] | 0))
break;
if ((c[X >> 2] | 0) != (c[T + 64 >> 2] | 0))
break
} while ((c[W >> 2] | 0) == (c[T + 68 >> 2] | 0));
W = V + 60 | 0;
X = W + 0 | 0;
T = h + 0 | 0;
e = X + 60 | 0;
do {
c[X >> 2] = c[T >> 2];
X = X + 4 | 0;
T = T + 4 | 0
} while ((X | 0) < (e | 0));
V = W;
S = h
}
Y = V + 60 | 0;
Z = c[k >> 2] | 0
}
c[d >> 2] = (Y - Z | 0) / 60 | 0;
ik(j);
i = f;
return
}
function Ik(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 | 0) != 0) {
i = f;
return
}
j = e + 4 | 0;
k = e + 8 | 0;
zk(b, c[j >> 2] | 0, c[k >> 2] | 0, c[b + 44 >> 2] | 0);
l = d + 4 | 0;
m = d + 8 | 0;
zk(b, c[l >> 2] | 0, c[m >> 2] | 0, c[j >> 2] | 0);
n = c[j >> 2] | 0;
c[g >> 2] = 7576;
c[g + 4 >> 2] = n;
Gk(b, 1);
Hk(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 | 0) != 0)
a[b + 20 >> 0] = 1;
d = b + 16 | 0;
g = c[d >> 2] | 0;
if ((n &
~g | 0) != 0) {
if ((o & 1 | 0) == 0)
p = g;
else {
o = b + 132 | 0;
q = c[o >> 2] | 0;
if ((q | 0) == 0) {
r = b + 48 | 0;
s = c[r >> 2] | 0;
if ((s | 0) == 0) {
vk(b, 256);
t = c[r >> 2] | 0
} else
t = s;
s = Em(c[h >> 2] | 0, t << 2) | 0;
xn(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];
tk(b, e);
i = f;
return
}
function Jk(a) {
a = a | 0;
return
}
function Kk(a, b) {
a = a | 0;
b = b | 0;
var d = 0,
e = 0,
f = 0,
g = 0;
d = i;
e = c[a >> 2] | 0;
f = c[b >> 2] | 0;
if ((e | 0) == (f | 0)) {
g = (c[a + 4 >> 2] | 0) < (c[b + 4 >> 2] | 0);
i = d;
return g | 0
} else {
g = (e - f | 0) < 0;
i = d;
return g | 0
}
return 0
}
function Lk(a, b) {
a = a | 0;
b = b | 0;
var d = 0,
e = 0,
f = 0,
g = 0;
d = i;
e = c[a >> 2] | 0;
f = c[b >> 2] | 0;
if ((e | 0) != (f | 0)) {
g = (e - f | 0) < 0;
i = d;
return g | 0
}
f = c[a + 4 >> 2] | 0;
e = c[b + 4 >> 2] | 0;
if ((f | 0) == (e | 0)) {
g = (c[a + 8 >> 2] | 0) < (c[b + 8 >> 2] | 0);
i = d;
return g | 0
} else {
g = (f - e | 0) < 0;
i = d;
return g | 0
}
return 0
}
function Mk(b) {
b = b | 0;
var d = 0,
e = 0,
f = 0,
h = 0,
j = 0,
k = 0,
l = 0,
m = 0,
n = 0,
o = 0,
p = 0,
q = 0,
r = 0,
s = 0,
t = 0,
u = 0,
v = 0,
w = 0,
x = 0,
y = 0,
z = 0,
A = 0,
B = 0,
C = 0,
D = 0,
E = 0,
F = 0,
G = 0,
H = 0,
I = 0,
J = 0,
K = 0,
L = 0,
M = 0,
N = 0,
O = 0,
P = 0;
d = i;
e = b + 400 | 0;
f = b + 220 | 0;
h = Ym((c[e >> 2] | 0) + 76 | 0, (c[f >> 2] | 0) * 24 | 0) | 0;
j = c[f >> 2] |
0;
if ((j | 0) > 0) {
k = b + 216 | 0;
l = b + 144 | 0;
m = j;
j = 0;
n = 0;
while (1) {
o = c[k >> 2] | 0;
p = o + (n * 24 | 0) | 0;
q = c[l >> 2] | 0;
r = c[q + (c[p >> 2] << 2) >> 2] | 0;
if (((r | 0) != 0 ? (r | 0) == (c[q + (c[o + (n * 24 | 0) + 4 >> 2] << 2) >> 2] | 0) : 0) ? (c[r + 12 >> 2] & 16 | 0) != 0 : 0) {
r = j + 1 | 0;
o = h + (j * 24 | 0) | 0;
c[o + 0 >> 2] = c[p + 0 >> 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];
c[o + 20 >> 2] = c[p + 20 >> 2];
s = c[f >> 2] | 0;
t = r
} else {
s = m;
t = j
}
n = n + 1 | 0;
if ((n | 0) >= (s | 0)) {
u = t;
break
} else {
m = s;
j = t
}
}
} else
u = 0;
t = Ym((c[e >> 2] | 0) + 76 | 0, c[b + 308 >> 2] << 2) | 0;
j = c[b + 312 >> 2] | 0;
if ((j |
0) == 0)
v = 0;
else {
s = b + 16 | 0;
m = b + 124 | 0;
n = b + 132 | 0;
f = b + 48 | 0;
l = b + 20 | 0;
k = j;
j = 0;
while (1) {
r = k + 12 | 0;
p = c[r >> 2] | 0;
if ((p & 16 | 0) != 0) {
o = j + 1 | 0;
c[t + (j << 2) >> 2] = k;
q = p & -17;
if ((((p | 16) ^ -17) & p | 0) != 0)
a[l >> 0] = 1;
w = c[s >> 2] | 0;
if ((q & ~w | 0) != 0) {
if ((p & 1 | 0) == 0)
x = w;
else {
p = c[n >> 2] | 0;
if ((p | 0) == 0) {
y = c[f >> 2] | 0;
if ((y | 0) == 0) {
vk(b, 256);
z = c[f >> 2] | 0
} else
z = y;
y = Em(c[e >> 2] | 0, z << 2) | 0;
xn(y | 0, 0, c[f >> 2] << 2 | 0) | 0;
A = y;
B = c[s >> 2] | 0
} else {
A = p;
B = w
}
c[n >> 2] = A;
x = B
}
c[s >> 2] = x | q
}
c[r >> 2] = q;
q = c[k + 4 >> 2] | 0;
r = c[k + 8 >> 2] | 0;
if ((q | 0) < (r | 0)) {
w = q + 1 | 0;
xn((c[m >> 2] | 0) + (q << 2) |
0, 0, ((r | 0) > (w | 0) ? r : w) - q << 2 | 0) | 0;
C = o
} else
C = o
} else
C = j;
k = c[k + 24 >> 2] | 0;
if ((k | 0) == 0) {
v = C;
break
} else
j = C
}
}
C = (u | 0) > 0;
if (C) {
j = c[b + 124 >> 2] | 0;
k = 0;
do {
m = c[h + (k * 24 | 0) + 4 >> 2] | 0;
D = +g[h + (k * 24 | 0) + 8 >> 2];
x = j + (c[h + (k * 24 | 0) >> 2] << 2) | 0;
g[x >> 2] = D + +g[x >> 2];
x = j + (m << 2) | 0;
g[x >> 2] = D + +g[x >> 2];
k = k + 1 | 0
} while ((k | 0) != (u | 0))
}
k = (v | 0) > 0;
if (k) {
j = b + 124 | 0;
x = b + 132 | 0;
m = 0;
do {
s = c[t + (m << 2) >> 2] | 0;
B = c[s + 4 >> 2] | 0;
A = c[s + 8 >> 2] | 0;
if ((B | 0) < (A | 0)) {
s = c[j >> 2] | 0;
n = c[x >> 2] | 0;
f = B;
do {
g[n + (f << 2) >> 2] = +g[s + (f << 2) >> 2] < .800000011920929 ? 0 : 3.4028234663852886E38;
f = f + 1 | 0
} while ((f | 0) < (A | 0))
}
m = m + 1 | 0
} while ((m | 0) != (v | 0))
}
m = ~~+Q(1+(c[b + 44 >> 2] | 0));
if ((m | 0) > 0 ? (x = b + 132 | 0, C) : 0) {
C = 0;
do {
j = c[x >> 2] | 0;
A = 0;
f = 0;
while (1) {
D = 1 - +g[h + (A * 24 | 0) + 8 >> 2];
s = j + (c[h + (A * 24 | 0) >> 2] << 2) | 0;
n = j + (c[h + (A * 24 | 0) + 4 >> 2] << 2) | 0;
E = +g[n >> 2];
F = D + E;
G = +g[s >> 2];
H = D + G;
if (G > F) {
g[s >> 2] = F;
I = +g[n >> 2];
J = 1
} else {
I = E;
J = f
}
if (I > H) {
g[n >> 2] = H;
K = 1
} else
K = J;
A = A + 1 | 0;
if ((A | 0) == (u | 0))
break;
else
f = K
}
C = C + 1 | 0
} while (K & (C | 0) < (m | 0))
}
if (!k) {
L = c[e >> 2] | 0;
M = L + 76 | 0;
_m(M, t);
N = c[e >> 2] | 0;
O = N + 76 | 0;
_m(O, h);
i = d;
return
}
k = b + 132 | 0;
m = b + 32 | 0;
b = 0;
do {
C = c[t + (b << 2) >> 2] | 0;
K = c[C + 4 >> 2] | 0;
u = c[C + 8 >> 2] | 0;
if ((K | 0) < (u | 0)) {
C = c[k >> 2] | 0;
J = K;
do {
K = C + (J << 2) | 0;
I = +g[K >> 2];
if (I < 3.4028234663852886E38)
P = I * +g[m >> 2];
else
P = 0;
g[K >> 2] = P;
J = J + 1 | 0
} while ((J | 0) < (u | 0))
}
b = b + 1 | 0
} while ((b | 0) != (v | 0));
L = c[e >> 2] | 0;
M = L + 76 | 0;
_m(M, t);
N = c[e >> 2] | 0;
O = N + 76 | 0;
_m(O, h);
i = d;
return
}
function Nk(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;
e = i;
f = +g[b + 36 >> 2];
h = (~~(f * +g[d + 4 >> 2] + -1 + 2048) >>> 0 << 20) + (~~((f * +g[d >> 2] + -1) * 256 + 524288) >>> 0) | 0;
j = ~~(f * +g[d + 12 >> 2] + 1 + 2048) >>> 0;
k = ~~((f *
+g[d + 8 >> 2] + 1) * 256 + 524288) >>> 0;
d = c[b + 200 >> 2] | 0;
l = c[b + 204 >> 2] | 0;
b = d + (l << 3) | 0;
m = d;
d = l << 3 >> 3;
a:
while (1) {
l = d;
while (1) {
if ((l | 0) == 0)
break a;
n = (l | 0) / 2 | 0;
if ((c[m + (n << 3) + 4 >> 2] | 0) >>> 0 < h >>> 0)
break;
else
l = n
}
m = m + (n + 1 << 3) | 0;
d = l + -1 - n | 0
}
n = (j << 20) + k | 0;
k = m;
j = b - m >> 3;
b:
while (1) {
b = j;
while (1) {
if ((b | 0) == 0)
break b;
o = (b | 0) / 2 | 0;
if ((c[k + (o << 3) + 4 >> 2] | 0) >>> 0 > n >>> 0)
b = o;
else
break
}
k = k + (o + 1 << 3) | 0;
j = b + -1 - o | 0
}
c[a >> 2] = h & 1048575;
c[a + 4 >> 2] = n & 1048575;
c[a + 8 >> 2] = h & -1048576;
c[a + 12 >> 2] = n & -1048576;
c[a + 16 >> 2] = m;
c[a + 20 >> 2] = k;
i = e;
return
}
function Ok(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;
e = c[a + 200 >> 2] | 0;
f = c[a + 204 >> 2] | 0;
g = e + (f << 3) | 0;
c[b + 4 >> 2] = 0;
if ((f | 0) > 0) {
h = e;
j = e
} else {
i = d;
return
}
while (1) {
e = h + 4 | 0;
f = (c[e >> 2] | 0) + 256 | 0;
k = h;
h = h + 8 | 0;
l = h >>> 0 < g >>> 0;
a:
do if (l) {
m = h;
do {
if (f >>> 0 < (c[m + 4 >> 2] | 0) >>> 0)
break a;
Pk(a, c[k >> 2] | 0, c[m >> 2] | 0, b);
m = m + 8 | 0
} while (m >>> 0 < g >>> 0)
}
while (0);
f = c[e >> 2] | 0;
m = f + 1048320 | 0;
b:
do if (j >>> 0 < g >>> 0) {
n = j;
while (1) {
o = n + 8 | 0;
if (!(m >>> 0 > (c[n + 4 >> 2] | 0) >>> 0)) {
p = n;
break b
}
if (o >>> 0 < g >>> 0)
n = o;
else {
p = o;
break
}
}
} else
p = j;
while (0);
m = f + 1048832 | 0;
c:
do if (p >>> 0 < g >>> 0) {
e = p;
do {
if (m >>> 0 < (c[e + 4 >> 2] | 0) >>> 0)
break c;
Pk(a, c[k >> 2] | 0, c[e >> 2] | 0, b);
e = e + 8 | 0
} while (e >>> 0 < g >>> 0)
}
while (0);
if (!l)
break;
else
j = p
}
i = 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,
j = 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;
h = c[a + 96 >> 2] | 0;
j = +g[h + (d << 3) >> 2] - +g[h + (b << 3) >> 2];
l = +g[h + (d << 3) + 4 >> 2] - +g[h + (b << 3) + 4 >> 2];
m = j * j + l * l;
if (!(m < +g[a + 40 >> 2])) {
i = f;
return
}
n = (c[k >> 2] = 1597463007 - ((g[k >> 2] = m, c[k >> 2] | 0) >> 1), +g[k >> 2]);
o = n * (1.5 - n * m * .5 * n);
h = e + 4 | 0;
p = c[h >>
2] | 0;
q = e + 8 | 0;
r = c[q >> 2] | 0;
if ((p | 0) >= (r | 0) ? (s = (r | 0) == 0 ? 256 : r << 1, (r | 0) < (s | 0)) : 0) {
r = e + 12 | 0;
t = Em(c[r >> 2] | 0, s * 24 | 0) | 0;
u = c[e >> 2] | 0;
if ((u | 0) != 0) {
An(t | 0, u | 0, (c[h >> 2] | 0) * 24 | 0) | 0;
Fm(c[r >> 2] | 0, c[e >> 2] | 0, (c[q >> 2] | 0) * 24 | 0)
}
c[q >> 2] = s;
c[e >> 2] = t;
v = c[h >> 2] | 0
} else
v = p;
c[h >> 2] = v + 1;
h = c[e >> 2] | 0;
c[h + (v * 24 | 0) >> 2] = b;
c[h + (v * 24 | 0) + 4 >> 2] = d;
e = c[a + 88 >> 2] | 0;
c[h + (v * 24 | 0) + 20 >> 2] = c[e + (d << 2) >> 2] | c[e + (b << 2) >> 2];
g[h + (v * 24 | 0) + 8 >> 2] = 1 - m * o * +g[a + 36 >> 2];
m = +(j * o);
j = +(l * o);
a = h + (v * 24 | 0) + 12 | 0;
g[a >> 2] = m;
g[a + 4 >> 2] = j;
i = f;
return
}
function Qk(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;
d = i;
if ((c[a + 8 >> 2] & 131072 | 0) == 0) {
i = d;
return
}
e = c[(c[a + 400 >> 2] | 0) + 102948 >> 2] | 0;
if ((e | 0) == 0) {
i = d;
return
}
f = c[b >> 2] | 0;
g = b + 4 | 0;
h = c[g >> 2] | 0;
j = f + (h * 24 | 0) | 0;
a:
do if ((h | 0) == 0) {
k = f;
l = 8
} else {
m = f;
while (1) {
if ((c[m + 20 >> 2] & 131072 | 0) != 0 ? !(lb[c[(c[e >> 2] | 0) + 16 >> 2] & 7](e, a, c[m >> 2] | 0, c[m + 4 >> 2] | 0) | 0) : 0) {
k = m;
l = 8;
break a
}
m = m + 24 | 0;
if ((m | 0) == (j | 0)) {
n = j;
break
}
}
}
while (0);
b:
do if ((l | 0) == 8)
if ((k | 0) == (j | 0))
n = j;
else {
f = k;
h = k;
while (1) {
m = h;
do {
o = m;
m = m + 24 | 0;
if ((m | 0) == (j | 0)) {
n = f;
break b
}
if ((c[o + 44 >> 2] & 131072 | 0) == 0)
break
} while (!(lb[c[(c[e >> 2] | 0) + 16 >> 2] & 7](e, a, c[m >> 2] | 0, c[o + 28 >> 2] | 0) | 0));
c[f + 0 >> 2] = c[m + 0 >> 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];
f = f + 24 | 0;
h = m
}
}
while (0);
c[g >> 2] = (n - (c[b >> 2] | 0) | 0) / 24 | 0;
i = d;
return
}
function Rk(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 | 0) != 0) {
_m(c[a + 12 >> 2] | 0, h);
c[a >> 2] = 0;
c[a + 8 >> 2] = 0
}
if ((d | 0) == 0)
j = c[a + 8 >> 2] | 0;
else {
h =
Ym(c[a + 12 >> 2] | 0, d * 9 | 0) | 0;
c[a >> 2] = h;
k = h + (d << 3) | 0;
c[a + 4 >> 2] = k;
xn(k | 0, 1, d | 0) | 0;
c[a + 8 >> 2] = d;
j = d
}
if ((j | 0) == 0) {
i = f;
return
}
j = c[a >> 2] | 0;
if ((d | 0) > 0) {
k = 0;
h = 0;
while (1) {
l = c[b + (k * 24 | 0) >> 2] | 0;
if ((!((l | 0) == -1) ? (m = b + (k * 24 | 0) + 4 | 0, n = c[m >> 2] | 0, !((n | 0) == -1)) : 0) ? ((c[e + (n << 2) >> 2] | c[e + (l << 2) >> 2]) & 32768 | 0) != 0 : 0) {
c[j + (k << 3) >> 2] = l;
c[j + (k << 3) + 4 >> 2] = c[m >> 2];
o = h + 1 | 0
} else
o = h;
k = k + 1 | 0;
if ((k | 0) == (d | 0)) {
p = o;
break
} else
h = o
}
} else
p = 0;
c[a + 8 >> 2] = p;
c[g >> 2] = 29;
Cl(j, j + (p << 3) | 0, g);
i = f;
return
}
function Sk(b, d) {
b = b | 0;
d = d | 0;
var e = 0,
f = 0,
g = 0,
h = 0,
j = 0,
k = 0,
l = 0,
m = 0,
n = 0,
o = 0,
p = 0,
q = 0,
r = 0,
s = 0,
t = 0,
u = 0,
v = 0,
w = 0,
x = 0,
y = 0,
z = 0,
A = 0,
B = 0,
C = 0,
D = 0,
E = 0,
F = 0;
e = i;
if ((c[b + 8 >> 2] & 32768 | 0) == 0) {
i = e;
return
}
f = c[(c[b + 400 >> 2] | 0) + 102952 >> 2] | 0;
if ((f | 0) == 0) {
i = e;
return
}
g = c[b + 220 >> 2] | 0;
h = c[b + 216 >> 2] | 0;
j = h + (g * 24 | 0) | 0;
k = d + 8 | 0;
if ((g | 0) > 0) {
g = d + 4 | 0;
l = h;
while (1) {
h = c[l >> 2] | 0;
m = c[l + 4 >> 2] | 0;
n = c[k >> 2] | 0;
do if ((n | 0) == 0)
o = 24;
else {
p = c[d >> 2] | 0;
q = p;
r = p + (n << 3) - q >> 3;
s = (r | 0) == 0;
a:
do if (s)
t = p;
else {
u = p;
v = r;
while (1) {
w = v;
while (1) {
x = (w | 0) / 2 | 0;
if ((c[u + (x << 3) >> 2] | 0) < (h | 0) ? (c[u + (x << 3) + 4 >> 2] | 0) < (m |
0) : 0)
break;
if ((w + 1 | 0) >>> 0 < 3) {
t = u;
break a
} else
w = x
}
y = u + (x + 1 << 3) | 0;
z = w + -1 | 0;
if ((z | 0) == (x | 0)) {
t = y;
break
} else {
u = y;
v = z - x | 0
}
}
}
while (0);
if ((t | 0) != 0 ? (v = (t - q | 0) >>> 3, u = c[g >> 2] | 0, (a[u + v >> 0] | 0) != 0) : 0) {
A = u;
B = v
} else {
b:
do if (s)
C = p;
else {
v = p;
u = r;
while (1) {
z = u;
while (1) {
D = (z | 0) / 2 | 0;
if ((c[v + (D << 3) >> 2] | 0) < (m | 0) ? (c[v + (D << 3) + 4 >> 2] | 0) < (h | 0) : 0)
break;
if ((z + 1 | 0) >>> 0 < 3) {
C = v;
break b
} else
z = D
}
w = v + (D + 1 << 3) | 0;
y = z + -1 | 0;
if ((y | 0) == (D | 0)) {
C = w;
break
} else {
v = w;
u = y - D | 0
}
}
}
while (0);
if ((C | 0) == 0) {
o = 24;
break
}
r = (C - q | 0) >>> 3;
p = c[g >> 2] | 0;
if ((a[p +
r >> 0] | 0) == 0) {
o = 24;
break
} else {
A = p;
B = r
}
}
a[A + B >> 0] = 0
}
while (0);
if ((o | 0) == 24) {
o = 0;
ib[c[(c[f >> 2] | 0) + 24 >> 2] & 7](f, b, l)
}
l = l + 24 | 0;
if (!(l >>> 0 < j >>> 0)) {
E = d;
F = g;
break
}
}
} else {
E = d;
F = d + 4 | 0
}
d = c[k >> 2] | 0;
k = c[E >> 2] | 0;
E = c[F >> 2] | 0;
if ((d | 0) <= 0) {
i = e;
return
}
F = 0;
do {
if ((a[E + F >> 0] | 0) != 0)
pb[c[(c[f >> 2] | 0) + 28 >> 2] & 31](f, b, c[k + (F << 3) >> 2] | 0, c[k + (F << 3) + 4 >> 2] | 0);
F = F + 1 | 0
} while ((F | 0) != (d | 0));
i = e;
return
}
function Tk(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;
d = i;
e = a + 156 | 0;
if ((c[e >> 2] | 0) < 1) {
i = d;
return
}
f = (c[a + 176 >> 2] |
0) + (b << 2) | 0;
g = (c[a + 160 >> 2] | 0) + (b << 2) | 0;
h = (c[a + 168 >> 2] | 0) + (b << 2) | 0;
j = (c[h >> 2] | 0) + 1 | 0;
c[h >> 2] = j;
if ((j | 0) == 2 ? (j = c[f >> 2] | 0, c[f >> 2] = j + 1, (j | 0) >= (c[e >> 2] | 0)) : 0) {
e = a + 184 | 0;
j = a + 188 | 0;
f = c[j >> 2] | 0;
h = a + 192 | 0;
k = c[h >> 2] | 0;
if ((f | 0) >= (k | 0) ? (l = (k | 0) == 0 ? 256 : k << 1, (k | 0) < (l | 0)) : 0) {
k = a + 196 | 0;
m = Em(c[k >> 2] | 0, l << 2) | 0;
n = c[e >> 2] | 0;
if ((n | 0) != 0) {
An(m | 0, n | 0, c[j >> 2] << 2 | 0) | 0;
Fm(c[k >> 2] | 0, c[e >> 2] | 0, c[h >> 2] << 2)
}
c[h >> 2] = l;
c[e >> 2] = m;
o = c[j >> 2] | 0
} else
o = f;
c[j >> 2] = o + 1;
c[(c[e >> 2] | 0) + (o << 2) >> 2] = b
}
c[g >> 2] = c[a + 4 >> 2];
i = d;
return
}
function Uk(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;
f = i;
i = i + 16 | 0;
g = f;
h = c[a >> 2] | 0;
if ((h | 0) != 0) {
_m(c[a + 12 >> 2] | 0, h);
c[a >> 2] = 0;
c[a + 8 >> 2] = 0
}
if ((d | 0) == 0)
j = c[a + 8 >> 2] | 0;
else {
h = Ym(c[a + 12 >> 2] | 0, d * 9 | 0) | 0;
c[a >> 2] = h;
k = h + (d << 3) | 0;
c[a + 4 >> 2] = k;
xn(k | 0, 1, d | 0) | 0;
c[a + 8 >> 2] = d;
j = d
}
if ((j | 0) == 0) {
i = f;
return
}
j = c[a >> 2] | 0;
if ((d | 0) > 0) {
k = 0;
h = 0;
while (1) {
l = c[b + (k * 28 | 0) >> 2] | 0;
if (!((l | 0) == -1) ? (c[e + (l << 2) >> 2] & 16384 | 0) != 0 : 0) {
c[j + (k << 3) >> 2] = c[b + (k * 28 | 0) + 8 >> 2];
c[j + (k << 3) + 4 >> 2] = l;
m = h + 1 | 0
} else
m = h;
k = k + 1 | 0;
if ((k | 0) == (d | 0)) {
n =
m;
break
} else
h = m
}
} else
n = 0;
c[a + 8 >> 2] = n;
c[g >> 2] = 30;
Fl(j, j + (n << 3) | 0, g);
i = f;
return
}
function Vk(a, b) {
a = a | 0;
b = b | 0;
var d = 0,
e = 0;
d = i;
if (!((c[a >> 2] | 0) >>> 0 < (c[b >> 2] | 0) >>> 0)) {
e = 0;
i = d;
return e | 0
}
e = (c[a + 4 >> 2] | 0) < (c[b + 4 >> 2] | 0);
i = d;
return e | 0
}
function Wk(a, b) {
a = a | 0;
b = b | 0;
var d = 0,
e = 0;
d = i;
if ((c[a >> 2] | 0) >= (c[b >> 2] | 0)) {
e = 0;
i = d;
return e | 0
}
e = (c[a + 4 >> 2] | 0) < (c[b + 4 >> 2] | 0);
i = d;
return e | 0
}
function Xk(b, d) {
b = b | 0;
d = d | 0;
var e = 0,
f = 0,
g = 0,
h = 0,
j = 0,
k = 0,
l = 0,
m = 0,
n = 0,
o = 0,
p = 0,
q = 0,
r = 0,
s = 0,
t = 0,
u = 0,
v = 0,
w = 0,
x = 0,
y = 0,
z = 0,
A = 0,
B = 0;
e = i;
if ((c[b +
8 >> 2] & 16384 | 0) == 0) {
i = e;
return
}
f = c[(c[b + 400 >> 2] | 0) + 102952 >> 2] | 0;
if ((f | 0) == 0) {
i = e;
return
}
g = b + 232 | 0;
h = b + 236 | 0;
if ((c[h >> 2] | 0) == 0) {
j = d;
k = d + 8 | 0;
l = d + 4 | 0
} else {
m = d + 8 | 0;
n = d + 4 | 0;
o = c[g >> 2] | 0;
while (1) {
p = c[o + 8 >> 2] | 0;
q = c[o >> 2] | 0;
r = c[m >> 2] | 0;
if ((r | 0) != 0) {
s = c[d >> 2] | 0;
t = s;
u = s + (r << 3) - t >> 3;
a:
do if ((u | 0) == 0)
v = s;
else {
r = s;
w = u;
while (1) {
x = w;
while (1) {
y = (x | 0) / 2 | 0;
if ((c[r + (y << 3) >> 2] | 0) >>> 0 < p >>> 0 ? (c[r + (y << 3) + 4 >> 2] | 0) < (q | 0) : 0)
break;
if ((x + 1 | 0) >>> 0 < 3) {
v = r;
break a
} else
x = y
}
z = r + (y + 1 << 3) | 0;
A = x + -1 | 0;
if ((A | 0) == (y | 0)) {
v = z;
break
} else {
r =
z;
w = A - y | 0
}
}
}
while (0);
if ((v | 0) != 0 ? (q = (c[n >> 2] | 0) + ((v - t | 0) >>> 3) | 0, (a[q >> 0] | 0) != 0) : 0)
a[q >> 0] = 0;
else
B = 16
} else
B = 16;
if ((B | 0) == 16) {
B = 0;
ib[c[(c[f >> 2] | 0) + 16 >> 2] & 7](f, b, o)
}
o = o + 28 | 0;
if ((o | 0) == ((c[g >> 2] | 0) + ((c[h >> 2] | 0) * 28 | 0) | 0)) {
j = d;
k = m;
l = n;
break
}
}
}
n = c[j >> 2] | 0;
j = c[l >> 2] | 0;
l = c[k >> 2] | 0;
if ((l | 0) <= 0) {
i = e;
return
}
k = 0;
do {
if ((a[j + k >> 0] | 0) != 0)
pb[c[(c[f >> 2] | 0) + 20 >> 2] & 31](f, c[n + (k << 3) >> 2] | 0, b, c[n + (k << 3) + 4 >> 2] | 0);
k = k + 1 | 0
} while ((k | 0) != (l | 0));
i = e;
return
}
function Yk(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;
d = i;
i = i + 48 | 0;
e = d + 32 | 0;
f = d + 16 | 0;
h = d;
j = b + 400 | 0;
k = c[j >> 2] | 0;
c[e >> 2] = 0;
c[e + 4 >> 2] = 0;
l = e + 8 | 0;
c[l >> 2] = 0;
m = e + 12 | 0;
c[m >> 2] = k + 76;
n = b + 8 | 0;
if ((c[n >> 2] & 16384 | 0) != 0 ? (c[k + 102952 >> 2] | 0) != 0 : 0)
Uk(e, c[b + 232 >> 2] | 0, c[b + 236 >> 2] | 0, c[b + 88 >> 2] | 0);
if ((c[b + 156 >> 2] | 0) > 0 ? (k = c[b + 44 >> 2] | 0, (k | 0) > 0) : 0) {
o = c[b + 168 >> 2] | 0;
p = b + 4 | 0;
q = c[b + 160 >> 2] | 0;
r = b + 176 | 0;
s = 0;
do {
c[o + (s << 2) >> 2] = 0;
if ((c[p >> 2] | 0) > ((c[q + (s << 2) >> 2] | 0) + 1 | 0))
c[(c[r >> 2] | 0) + (s << 2) >> 2] = 0;
s = s + 1 | 0
} while ((s |
0) != (k | 0))
}
c[b + 236 >> 2] = 0;
c[b + 188 >> 2] = 0;
if ((c[n >> 2] & 65536 | 0) == 0)
t = 0;
else
t = c[(c[j >> 2] | 0) + 102948 >> 2] | 0;
c[f + 4 >> 2] = b;
c[f >> 2] = 7056;
c[f + 8 >> 2] = t;
t = c[b + 44 >> 2] | 0;
g[h >> 2] = 3.4028234663852886E38;
n = h + 4 | 0;
g[n >> 2] = 3.4028234663852886E38;
k = h + 8 | 0;
g[k >> 2] = -3.4028234663852886E38;
s = h + 12 | 0;
g[s >> 2] = -3.4028234663852886E38;
if ((t | 0) > 0) {
r = c[b + 96 >> 2] | 0;
u = 3.4028234663852886E38;
v = 3.4028234663852886E38;
w = -3.4028234663852886E38;
x = -3.4028234663852886E38;
q = 0;
while (1) {
p = r + (q << 3) | 0;
y = +g[p >> 2];
z = +g[p + 4 >> 2];
A = u < y ? u : y;
B = v < z ? v : z;
C = +A;
D =
+B;
p = h;
g[p >> 2] = C;
g[p + 4 >> 2] = D;
D = w > y ? w : y;
y = x > z ? x : z;
z = +D;
C = +y;
p = k;
g[p >> 2] = z;
g[p + 4 >> 2] = C;
q = q + 1 | 0;
if ((q | 0) == (t | 0)) {
E = y;
F = A;
G = B;
H = D;
break
} else {
u = A;
v = B;
w = D;
x = y
}
}
} else {
E = -3.4028234663852886E38;
F = 3.4028234663852886E38;
G = 3.4028234663852886E38;
H = -3.4028234663852886E38
}
x = +g[b + 32 >> 2];
g[h >> 2] = F - x;
g[n >> 2] = G - x;
g[k >> 2] = H + x;
g[s >> 2] = E + x;
Dj(c[j >> 2] | 0, f, h);
if ((a[b + 316 >> 0] | 0) != 0)
Zk(b);
Xk(b, e);
b = c[e >> 2] | 0;
if ((b | 0) == 0) {
i = d;
return
}
_m(c[m >> 2] | 0, b);
c[e >> 2] = 0;
c[l >> 2] = 0;
i = d;
return
}
function Zk(a) {
a = a | 0;
var b = 0,
d = 0,
e = 0,
f = 0,
g = 0,
h = 0,
j = 0,
k = 0,
l = 0,
m = 0,
n = 0,
o = 0,
p = 0,
q = 0;
b = i;
i = i + 32 | 0;
d = b + 20 | 0;
e = b;
f = b + 16 | 0;
g = a + 232 | 0;
h = c[g >> 2] | 0;
j = a + 236 | 0;
k = h + ((c[j >> 2] | 0) * 28 | 0) | 0;
c[d >> 2] = 31;
yl(h, k, d);
c[f >> 2] = 0;
d = c[g >> 2] | 0;
g = c[j >> 2] | 0;
k = d + (g * 28 | 0) | 0;
c[e >> 2] = a;
c[e + 4 >> 2] = -1;
c[e + 8 >> 2] = 0;
c[e + 12 >> 2] = f;
a:
do if ((g | 0) == 0)
l = d;
else {
a = d;
do {
if (xl(e, a) | 0) {
l = a;
break a
}
a = a + 28 | 0
} while ((a | 0) != (k | 0));
m = c[j >> 2] | 0;
n = c[f >> 2] | 0;
o = m - n | 0;
c[j >> 2] = o;
i = b;
return
}
while (0);
if ((l | 0) == (k | 0)) {
m = c[j >> 2] | 0;
n = c[f >> 2] | 0;
o = m - n | 0;
c[j >> 2] = o;
i = b;
return
} else {
p = l;
q = l
}
b:
while (1) {
l = q;
do {
l = l +
28 | 0;
if ((l | 0) == (k | 0))
break b
} while (xl(e, l) | 0);
c[p + 0 >> 2] = c[l + 0 >> 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];
c[p + 20 >> 2] = c[l + 20 >> 2];
c[p + 24 >> 2] = c[l + 24 >> 2];
p = p + 28 | 0;
q = l
}
m = c[j >> 2] | 0;
n = c[f >> 2] | 0;
o = m - n | 0;
c[j >> 2] = o;
i = b;
return
}
function _k(a, b) {
a = a | 0;
b = b | 0;
var d = 0,
e = 0,
f = 0,
h = 0;
d = i;
e = c[a >> 2] | 0;
f = c[b >> 2] | 0;
if ((e | 0) == (f | 0)) {
h = +g[a + 12 >> 2] > +g[b + 12 >> 2];
i = d;
return h | 0
} else {
h = (e | 0) < (f | 0);
i = d;
return h | 0
}
return 0
}
function Jf(a, b) {
a = a | 0;
b = b | 0;
var d = 0,
e = 0,
f = 0,
h = 0;
d = i;
vh(a, b);
c[a >>
2] = 1056;
e = b + 20 | 0;
f = c[e + 4 >> 2] | 0;
h = a + 68 | 0;
c[h >> 2] = c[e >> 2];
c[h + 4 >> 2] = f;
g[a + 76 >> 2] = +g[b + 28 >> 2];
g[a + 80 >> 2] = 0;
g[a + 84 >> 2] = 0;
g[a + 88 >> 2] = 0;
g[a + 92 >> 2] = +g[b + 32 >> 2];
g[a + 96 >> 2] = +g[b + 36 >> 2];
g[a + 100 >> 2] = +g[b + 40 >> 2];
i = d;
return
}
function Kf(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,
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;
e = i;
f = c[b + 48 >> 2] | 0;
h = c[f + 8 >> 2] | 0;
j = b + 104 | 0;
c[j >> 2] = h;
l = c[b + 52 >> 2] | 0;
m = c[l + 8 >> 2] | 0;
n = b + 108 | 0;
c[n >> 2] = m;
o = f + 44 | 0;
p = c[o >> 2] | 0;
q = c[o + 4 >> 2] | 0;
o = b + 128 | 0;
c[o >> 2] = p;
c[o + 4 >> 2] = q;
o = l + 44 | 0;
r = c[o >> 2] | 0;
s = c[o + 4 >> 2] | 0;
o = b + 136 | 0;
c[o >> 2] = r;
c[o + 4 >> 2] = s;
o = b + 156 | 0;
g[o >> 2] = +g[f + 136 >> 2];
t = b + 160 | 0;
g[t >> 2] = +g[l + 136 >> 2];
u = b + 164 | 0;
g[u >> 2] = +g[f + 144 >> 2];
f = b + 168 | 0;
g[f >> 2] = +g[l + 144 >> 2];
l = c[d + 28 >> 2] | 0;
v = l + (h * 12 | 0) | 0;
w = +g[v >> 2];
x = +g[v + 4 >> 2];
y = +g[l + (h *
12 | 0) + 8 >> 2];
v = d + 32 | 0;
z = c[v >> 2] | 0;
A = z + (h * 12 | 0) | 0;
B = +g[A >> 2];
C = +g[A + 4 >> 2];
D = +g[z + (h * 12 | 0) + 8 >> 2];
h = l + (m * 12 | 0) | 0;
E = +g[h >> 2];
F = +g[h + 4 >> 2];
G = +g[l + (m * 12 | 0) + 8 >> 2];
l = z + (m * 12 | 0) | 0;
H = +g[l >> 2];
I = +g[l + 4 >> 2];
J = +g[z + (m * 12 | 0) + 8 >> 2];
K = +T(+y);
L = +S(+y);
M = +T(+G);
N = +S(+G);
O = -(c[k >> 2] = p, +g[k >> 2]);
P = -(c[k >> 2] = q, +g[k >> 2]);
Q = L * O - K * P;
R = K * O + L * P;
P = +Q;
O = +R;
q = b + 112 | 0;
g[q >> 2] = P;
g[q + 4 >> 2] = O;
O = -(c[k >> 2] = r, +g[k >> 2]);
P = -(c[k >> 2] = s, +g[k >> 2]);
U = N * O - M * P;
V = M * O + N * P;
P = +U;
N = +V;
s = b + 120 | 0;
g[s >> 2] = P;
g[s + 4 >> 2] = N;
N = +g[o >> 2];
P = +g[t >> 2];
O = +g[u >>
2];
M = +g[f >> 2];
W = N + P;
X = W + R * O * R + V * M * V;
Y = O * Q;
Z = M * U;
_ = -(R * Y) - V * Z;
$ = W + Q * Y + U * Z;
Z = X * $ - _ * _;
if (Z != 0)
aa = 1 / Z;
else
aa = Z;
Z = -(_ * aa);
g[b + 172 >> 2] = $ * aa;
g[b + 176 >> 2] = Z;
g[b + 180 >> 2] = Z;
g[b + 184 >> 2] = X * aa;
aa = O + M;
if (aa > 0)
ba = 1 / aa;
else
ba = aa;
g[b + 188 >> 2] = ba;
ba = +g[b + 68 >> 2];
aa = +g[b + 72 >> 2];
X = +(E + U - w - Q - (L * ba - K * aa));
w = +(F + V - x - R - (K * ba + L * aa));
f = b + 144 | 0;
g[f >> 2] = X;
g[f + 4 >> 2] = w;
g[b + 152 >> 2] = G - y - +g[b + 76 >> 2];
f = b + 80 | 0;
if ((a[d + 24 >> 0] | 0) == 0) {
g[f >> 2] = 0;
g[b + 84 >> 2] = 0;
g[b + 88 >> 2] = 0;
ca = B;
da = C;
ea = H;
fa = I;
ga = D;
ha = J;
ia = c[j >> 2] | 0;
ja = c[v >> 2] | 0;
ka = ja + (ia *
12 | 0) | 0;
la = +ca;
ma = +da;
na = ka;
oa = na;
g[oa >> 2] = la;
pa = na + 4 | 0;
qa = pa;
g[qa >> 2] = ma;
ra = c[j >> 2] | 0;
sa = c[v >> 2] | 0;
ta = sa + (ra * 12 | 0) + 8 | 0;
g[ta >> 2] = ga;
ua = c[n >> 2] | 0;
va = sa + (ua * 12 | 0) | 0;
wa = +ea;
xa = +fa;
ya = va;
za = ya;
g[za >> 2] = wa;
Aa = ya + 4 | 0;
Ba = Aa;
g[Ba >> 2] = xa;
Ca = c[n >> 2] | 0;
Da = c[v >> 2] | 0;
Ea = Da + (Ca * 12 | 0) + 8 | 0;
g[Ea >> 2] = ha;
i = e;
return
} else {
u = d + 8 | 0;
y = +g[u >> 2];
G = y * +g[f >> 2];
g[f >> 2] = G;
f = b + 84 | 0;
w = y * +g[f >> 2];
g[f >> 2] = w;
f = b + 88 | 0;
y = +g[u >> 2] * +g[f >> 2];
g[f >> 2] = y;
ca = B - N * G;
da = C - N * w;
ea = H + P * G;
fa = I + P * w;
ga = D - O * (y + (w * Q - G * R));
ha = J + M * (y + (w * U - G * V));
ia = c[j >>
2] | 0;
ja = c[v >> 2] | 0;
ka = ja + (ia * 12 | 0) | 0;
la = +ca;
ma = +da;
na = ka;
oa = na;
g[oa >> 2] = la;
pa = na + 4 | 0;
qa = pa;
g[qa >> 2] = ma;
ra = c[j >> 2] | 0;
sa = c[v >> 2] | 0;
ta = sa + (ra * 12 | 0) + 8 | 0;
g[ta >> 2] = ga;
ua = c[n >> 2] | 0;
va = sa + (ua * 12 | 0) | 0;
wa = +ea;
xa = +fa;
ya = va;
za = ya;
g[za >> 2] = wa;
Aa = ya + 4 | 0;
Ba = Aa;
g[Ba >> 2] = xa;
Ca = c[n >> 2] | 0;
Da = c[v >> 2] | 0;
Ea = Da + (Ca * 12 | 0) + 8 | 0;
g[Ea >> 2] = ha;
i = e;
return
}
}
function Lf(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;
d = i;
e = a + 104 |
0;
f = c[e >> 2] | 0;
h = b + 32 | 0;
j = c[h >> 2] | 0;
k = j + (f * 12 | 0) | 0;
l = +g[k >> 2];
m = +g[k + 4 >> 2];
n = +g[j + (f * 12 | 0) + 8 >> 2];
f = a + 108 | 0;
k = c[f >> 2] | 0;
o = j + (k * 12 | 0) | 0;
p = +g[o >> 2];
q = +g[o + 4 >> 2];
r = +g[j + (k * 12 | 0) + 8 >> 2];
s = +g[a + 156 >> 2];
t = +g[a + 160 >> 2];
u = +g[a + 164 >> 2];
v = +g[a + 168 >> 2];
w = +g[b >> 2];
x = +g[b + 4 >> 2] * +g[a + 100 >> 2];
b = a + 88 | 0;
y = +g[b >> 2];
z = w * +g[a + 96 >> 2];
A = y - +g[a + 188 >> 2] * (r - n + x * +g[a + 152 >> 2]);
B = -z;
C = A < z ? A : z;
z = C < B ? B : C;
g[b >> 2] = z;
C = z - y;
y = n - u * C;
n = r + v * C;
C = +g[a + 124 >> 2];
r = +g[a + 120 >> 2];
z = +g[a + 116 >> 2];
B = +g[a + 112 >> 2];
A = +g[a + 144 >> 2] * x + (z * y + (p - C * n - l));
D =
x * +g[a + 148 >> 2] + (q + r * n - m - B * y);
x = +g[a + 176 >> 2] * A + +g[a + 184 >> 2] * D;
b = a + 80 | 0;
k = b;
E = +g[k >> 2];
F = +g[k + 4 >> 2];
G = E - (+g[a + 172 >> 2] * A + +g[a + 180 >> 2] * D);
g[b >> 2] = G;
k = a + 84 | 0;
D = +g[k >> 2] - x;
g[k >> 2] = D;
x = w * +g[a + 92 >> 2];
w = G * G + D * D;
if (w > x * x) {
A = +Q(+w);
if (A < 1.1920928955078125E-7) {
H = G;
I = D
} else {
w = 1 / A;
A = G * w;
g[b >> 2] = A;
J = D * w;
g[k >> 2] = J;
H = A;
I = J
}
J = x * H;
g[b >> 2] = J;
H = x * I;
g[k >> 2] = H;
K = J;
L = H
} else {
K = G;
L = D
}
D = K - E;
E = L - F;
F = +(l - s * D);
l = +(m - s * E);
k = (c[h >> 2] | 0) + ((c[e >> 2] | 0) * 12 | 0) | 0;
g[k >> 2] = F;
g[k + 4 >> 2] = l;
k = c[h >> 2] | 0;
g[k + ((c[e >> 2] | 0) * 12 | 0) + 8 >> 2] = y - u * (B *
E - D * z);
z = +(p + t * D);
p = +(q + t * E);
e = k + ((c[f >> 2] | 0) * 12 | 0) | 0;
g[e >> 2] = z;
g[e + 4 >> 2] = p;
g[(c[h >> 2] | 0) + ((c[f >> 2] | 0) * 12 | 0) + 8 >> 2] = n + v * (E * r - D * C);
i = d;
return
}
function Mf(a, b) {
a = a | 0;
b = b | 0;
return 1
}
function Nf(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 Of(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 Pf(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 Qf(a, b) {
a = a | 0;
b = +b;
return +(+g[a + 88 >> 2] * b)
}
function Rf(a, d) {
a = a | 0;
d = d | 0;
var f = 0,
h = 0,
j = 0,
k = 0,
l = 0;
f = i;
h = a + 68 | 0;
if (!(+g[d >> 2] != +g[h >> 2]) ? !(+g[d + 4 >> 2] != +g[a + 72 >> 2]) : 0) {
i = f;
return
}
j = c[a + 48 >> 2] | 0;
k = j + 4 | 0;
l = e[k >> 1] | 0;
if ((l & 2 | 0) == 0) {
b[k >> 1] = l | 2;
g[j + 160 >> 2] = 0
}
j = c[a + 52 >> 2] | 0;
a = j + 4 | 0;
l = e[a >> 1] | 0;
if ((l & 2 | 0) == 0) {
b[a >> 1] = l | 2;
g[j + 160 >> 2] = 0
}
j = d;
d = c[j + 4 >> 2] | 0;
l = h;
c[l >> 2] = c[j >> 2];
c[l + 4 >> 2] = d;
i = f;
return
}
function Sf(a, d) {
a = a | 0;
d = +d;
var f = 0,
h = 0,
j = 0,
k = 0,
l = 0;
f = i;
h = a + 76 | 0;
if (!(+g[h >> 2] != d)) {
i = f;
return
}
j =
c[a + 48 >> 2] | 0;
k = j + 4 | 0;
l = e[k >> 1] | 0;
if ((l & 2 | 0) == 0) {
b[k >> 1] = l | 2;
g[j + 160 >> 2] = 0
}
j = c[a + 52 >> 2] | 0;
a = j + 4 | 0;
l = e[a >> 1] | 0;
if ((l & 2 | 0) == 0) {
b[a >> 1] = l | 2;
g[j + 160 >> 2] = 0
}
g[h >> 2] = d;
i = f;
return
}
function Tf(a) {
a = a | 0;
var b = 0,
e = 0,
f = 0,
j = 0,
l = 0;
b = i;
i = i + 16 | 0;
e = b;
f = c[(c[a + 48 >> 2] | 0) + 8 >> 2] | 0;
j = c[(c[a + 52 >> 2] | 0) + 8 >> 2] | 0;
Rm(1104, e);
c[e >> 2] = f;
Rm(1128, e);
c[e >> 2] = j;
Rm(1160, e);
c[e >> 2] = d[a + 61 >> 0] | 0;
Rm(1192, e);
l = +g[a + 72 >> 2];
h[k >> 3] = +g[a + 68 >> 2];
c[e >> 2] = c[k >> 2];
c[e + 4 >> 2] = c[k + 4 >> 2];
j = e + 8 | 0;
h[k >> 3] = l;
c[j >> 2] = c[k >> 2];
c[j + 4 >> 2] = c[k + 4 >> 2];
Rm(1232,
e);
h[k >> 3] = +g[a + 76 >> 2];
c[e >> 2] = c[k >> 2];
c[e + 4 >> 2] = c[k + 4 >> 2];
Rm(1280, e);
h[k >> 3] = +g[a + 92 >> 2];
c[e >> 2] = c[k >> 2];
c[e + 4 >> 2] = c[k + 4 >> 2];
Rm(1312, e);
h[k >> 3] = +g[a + 96 >> 2];
c[e >> 2] = c[k >> 2];
c[e + 4 >> 2] = c[k + 4 >> 2];
Rm(1344, e);
h[k >> 3] = +g[a + 100 >> 2];
c[e >> 2] = c[k >> 2];
c[e + 4 >> 2] = c[k + 4 >> 2];
Rm(1376, e);
c[e >> 2] = c[a + 56 >> 2];
Rm(1416, e);
i = b;
return
}
function Uf(a, b) {
a = a | 0;
b = b | 0;
return
}
function Vf(a) {
a = a | 0;
return
}
function Wf(a) {
a = a | 0;
var b = 0;
b = i;
sn(a);
i = b;
return
}
function Xf(a, b, d, e, f) {
a = a | 0;
b = b | 0;
d = d | 0;
e = e | 0;
f = f | 0;
var h = 0,
j = 0,
k = 0,
l = 0,
m =
0,
n = 0,
o = 0,
p = 0;
h = i;
c[a + 8 >> 2] = b;
c[a + 12 >> 2] = d;
j = +g[e >> 2] - +g[b + 12 >> 2];
k = e + 4 | 0;
l = +g[k >> 2] - +g[b + 16 >> 2];
m = +g[b + 24 >> 2];
n = +g[b + 20 >> 2];
o = +(j * m + l * n);
p = +(m * l - j * n);
b = a + 20 | 0;
g[b >> 2] = o;
g[b + 4 >> 2] = p;
p = +g[f >> 2] - +g[d + 12 >> 2];
b = f + 4 | 0;
o = +g[b >> 2] - +g[d + 16 >> 2];
n = +g[d + 24 >> 2];
j = +g[d + 20 >> 2];
l = +(p * n + o * j);
m = +(n * o - p * j);
d = a + 28 | 0;
g[d >> 2] = l;
g[d + 4 >> 2] = m;
m = +g[f >> 2] - +g[e >> 2];
l = +g[b >> 2] - +g[k >> 2];
g[a + 36 >> 2] = +Q(+(m * m + l * l));
i = h;
return
}
function Yf(a, b) {
a = a | 0;
b = b | 0;
var d = 0,
e = 0,
f = 0,
h = 0;
d = i;
vh(a, b);
c[a >> 2] = 1504;
e = b + 20 | 0;
f = c[e + 4 >> 2] | 0;
h = a + 80 |
0;
c[h >> 2] = c[e >> 2];
c[h + 4 >> 2] = f;
f = b + 28 | 0;
h = c[f + 4 >> 2] | 0;
e = a + 88 | 0;
c[e >> 2] = c[f >> 2];
c[e + 4 >> 2] = h;
g[a + 104 >> 2] = +g[b + 36 >> 2];
g[a + 68 >> 2] = +g[b + 40 >> 2];
g[a + 72 >> 2] = +g[b + 44 >> 2];
g[a + 100 >> 2] = 0;
g[a + 96 >> 2] = 0;
g[a + 76 >> 2] = 0;
i = d;
return
}
function Zf(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,
R = 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;
e = i;
f = c[b + 48 >> 2] | 0;
h = c[f + 8 >> 2] | 0;
j = b + 108 | 0;
c[j >> 2] = h;
l = c[b + 52 >> 2] | 0;
m = c[l + 8 >> 2] | 0;
n = b + 112 | 0;
c[n >> 2] = m;
o = f + 44 | 0;
p = c[o >> 2] | 0;
q = c[o + 4 >> 2] | 0;
o = b + 140 | 0;
c[o >> 2] = p;
c[o + 4 >> 2] = q;
o = l + 44 | 0;
r = c[o >> 2] | 0;
s = c[o + 4 >> 2] | 0;
o = b + 148 | 0;
c[o >> 2] = r;
c[o + 4 >> 2] = s;
s = b + 156 | 0;
g[s >> 2] = +g[f + 136 >> 2];
o = b + 160 | 0;
g[o >> 2] = +g[l + 136 >> 2];
t = b + 164 | 0;
g[t >> 2] = +g[f + 144 >> 2];
f = b + 168 | 0;
g[f >> 2] = +g[l + 144 >> 2];
l = c[d + 28 >> 2] | 0;
u = l + (h * 12 | 0) | 0;
v = +g[u >> 2];
w = +g[u + 4 >> 2];
x = +g[l + (h * 12 | 0) + 8 >> 2];
u = d + 32 | 0;
y = c[u >> 2] |
0;
z = y + (h * 12 | 0) | 0;
A = +g[z >> 2];
B = +g[z + 4 >> 2];
C = +g[y + (h * 12 | 0) + 8 >> 2];
h = l + (m * 12 | 0) | 0;
D = +g[h >> 2];
E = +g[h + 4 >> 2];
F = +g[l + (m * 12 | 0) + 8 >> 2];
l = y + (m * 12 | 0) | 0;
G = +g[l >> 2];
H = +g[l + 4 >> 2];
I = +g[y + (m * 12 | 0) + 8 >> 2];
J = +T(+x);
K = +S(+x);
x = +T(+F);
L = +S(+F);
F = +g[b + 80 >> 2] - (c[k >> 2] = p, +g[k >> 2]);
M = +g[b + 84 >> 2] - (c[k >> 2] = q, +g[k >> 2]);
N = K * F - J * M;
O = J * F + K * M;
M = +N;
K = +O;
q = b + 124 | 0;
g[q >> 2] = M;
g[q + 4 >> 2] = K;
K = +g[b + 88 >> 2] - (c[k >> 2] = r, +g[k >> 2]);
M = +g[b + 92 >> 2] - +g[b + 152 >> 2];
F = L * K - x * M;
J = x * K + L * M;
M = +F;
L = +J;
r = b + 132 | 0;
g[r >> 2] = M;
g[r + 4 >> 2] = L;
r = b + 116 | 0;
L = D + F - v - N;
v = E +
J - w - O;
w = +L;
E = +v;
q = r;
g[q >> 2] = w;
g[q + 4 >> 2] = E;
E = +Q(+(L * L + v * v));
if (E > .004999999888241291) {
w = 1 / E;
D = L * w;
g[r >> 2] = D;
P = w * v;
R = D
} else {
g[r >> 2] = 0;
P = 0;
R = 0
}
g[b + 120 >> 2] = P;
D = P * N - O * R;
v = P * F - R * J;
w = +g[s >> 2];
L = +g[t >> 2];
M = +g[o >> 2];
K = +g[f >> 2];
x = M + (w + D * D * L) + v * v * K;
if (x != 0)
U = 1 / x;
else
U = 0;
f = b + 172 | 0;
g[f >> 2] = U;
v = +g[b + 68 >> 2];
if (v > 0) {
D = E - +g[b + 104 >> 2];
E = v * 6.2831854820251465;
v = E * U * E;
V = +g[d >> 2];
W = V * (E * U * 2 * +g[b + 72 >> 2] + v * V);
o = b + 96 | 0;
g[o >> 2] = W;
if (W != 0)
X = 1 / W;
else
X = 0;
g[o >> 2] = X;
g[b + 76 >> 2] = v * D * V * X;
V = x + X;
if (V != 0)
Y = 1 / V;
else
Y = 0;
g[f >> 2] = Y
} else {
g[b +
96 >> 2] = 0;
g[b + 76 >> 2] = 0
}
if ((a[d + 24 >> 0] | 0) == 0) {
g[b + 100 >> 2] = 0;
Z = A;
_ = B;
$ = G;
aa = H;
ba = C;
ca = I;
da = c[j >> 2] | 0;
ea = c[u >> 2] | 0;
fa = ea + (da * 12 | 0) | 0;
ga = +Z;
ha = +_;
ia = fa;
ja = ia;
g[ja >> 2] = ga;
ka = ia + 4 | 0;
la = ka;
g[la >> 2] = ha;
ma = c[j >> 2] | 0;
na = c[u >> 2] | 0;
oa = na + (ma * 12 | 0) + 8 | 0;
g[oa >> 2] = ba;
pa = c[n >> 2] | 0;
qa = na + (pa * 12 | 0) | 0;
ra = +$;
sa = +aa;
ta = qa;
ua = ta;
g[ua >> 2] = ra;
va = ta + 4 | 0;
wa = va;
g[wa >> 2] = sa;
xa = c[n >> 2] | 0;
ya = c[u >> 2] | 0;
za = ya + (xa * 12 | 0) + 8 | 0;
g[za >> 2] = ca;
i = e;
return
} else {
f = b + 100 | 0;
Y = +g[d + 8 >> 2] * +g[f >> 2];
g[f >> 2] = Y;
V = R * Y;
R = Y * P;
Z = A - V * w;
_ = B - R * w;
$ = G + V * M;
aa =
H + R * M;
ba = C - L * (R * N - V * O);
ca = I + K * (R * F - V * J);
da = c[j >> 2] | 0;
ea = c[u >> 2] | 0;
fa = ea + (da * 12 | 0) | 0;
ga = +Z;
ha = +_;
ia = fa;
ja = ia;
g[ja >> 2] = ga;
ka = ia + 4 | 0;
la = ka;
g[la >> 2] = ha;
ma = c[j >> 2] | 0;
na = c[u >> 2] | 0;
oa = na + (ma * 12 | 0) + 8 | 0;
g[oa >> 2] = ba;
pa = c[n >> 2] | 0;
qa = na + (pa * 12 | 0) | 0;
ra = +$;
sa = +aa;
ta = qa;
ua = ta;
g[ua >> 2] = ra;
va = ta + 4 | 0;
wa = va;
g[wa >> 2] = sa;
xa = c[n >> 2] | 0;
ya = c[u >> 2] | 0;
za = ya + (xa * 12 | 0) + 8 | 0;
g[za >> 2] = ca;
i = e;
return
}
}
function _f(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;
e = a +
108 | 0;
f = c[e >> 2] | 0;
h = b + 32 | 0;
b = c[h >> 2] | 0;
j = b + (f * 12 | 0) | 0;
k = j;
l = +g[k >> 2];
m = +g[k + 4 >> 2];
n = +g[b + (f * 12 | 0) + 8 >> 2];
f = a + 112 | 0;
k = c[f >> 2] | 0;
o = b + (k * 12 | 0) | 0;
p = +g[o >> 2];
q = +g[o + 4 >> 2];
r = +g[b + (k * 12 | 0) + 8 >> 2];
s = +g[a + 128 >> 2];
t = +g[a + 124 >> 2];
u = +g[a + 136 >> 2];
v = +g[a + 132 >> 2];
w = +g[a + 116 >> 2];
x = +g[a + 120 >> 2];
k = a + 100 | 0;
y = +g[k >> 2];
z = +g[a + 172 >> 2] * (+g[a + 76 >> 2] + (w * (p - r * u - (l - n * s)) + x * (q + r * v - (m + n * t))) + +g[a + 96 >> 2] * y);
A = -z;
g[k >> 2] = y - z;
z = w * A;
w = x * A;
A = +g[a + 156 >> 2];
x = n - +g[a + 164 >> 2] * (t * w - z * s);
s = +g[a + 160 >> 2];
t = r + +g[a + 168 >> 2] * (w * v - z * u);
u = +(l - A *
z);
l = +(m - A * w);
a = j;
g[a >> 2] = u;
g[a + 4 >> 2] = l;
a = c[h >> 2] | 0;
g[a + ((c[e >> 2] | 0) * 12 | 0) + 8 >> 2] = x;
x = +(p + z * s);
z = +(q + w * s);
e = a + ((c[f >> 2] | 0) * 12 | 0) | 0;
g[e >> 2] = x;
g[e + 4 >> 2] = z;
g[(c[h >> 2] | 0) + ((c[f >> 2] | 0) * 12 | 0) + 8 >> 2] = t;
i = d;
return
}
function $f(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;
d = i;
if (+g[a + 68 >> 2] > 0) {
e = 1;
i = d;
return e | 0
}
f = a + 108 | 0;
h = c[f >> 2] | 0;
j = b + 28 | 0;
b = c[j >> 2] | 0;
k = b + (h * 12 | 0) | 0;
l = k;
m = +g[l >> 2];
n = +g[l + 4 >> 2];
o = +g[b + (h * 12 | 0) + 8 >> 2];
h = a + 112 | 0;
l =
c[h >> 2] | 0;
p = b + (l * 12 | 0) | 0;
q = +g[p >> 2];
r = +g[p + 4 >> 2];
s = +g[b + (l * 12 | 0) + 8 >> 2];
t = +T(+o);
u = +S(+o);
v = +T(+s);
w = +S(+s);
x = +g[a + 80 >> 2] - +g[a + 140 >> 2];
y = +g[a + 84 >> 2] - +g[a + 144 >> 2];
z = u * x - t * y;
A = t * x + u * y;
y = +g[a + 88 >> 2] - +g[a + 148 >> 2];
u = +g[a + 92 >> 2] - +g[a + 152 >> 2];
x = w * y - v * u;
t = v * y + w * u;
u = q + x - m - z;
w = r + t - n - A;
y = +Q(+(u * u + w * w));
if (y < 1.1920928955078125E-7) {
B = 0;
C = u;
D = w
} else {
v = 1 / y;
B = y;
C = u * v;
D = w * v
}
v = B - +g[a + 104 >> 2];
B = v < .20000000298023224 ? v : .20000000298023224;
v = B < -.20000000298023224 ? -.20000000298023224 : B;
B = -(+g[a + 172 >> 2] * v);
w = C * B;
C = D * B;
B = +g[a +
156 >> 2];
D = o - +g[a + 164 >> 2] * (z * C - A * w);
A = +g[a + 160 >> 2];
z = s + +g[a + 168 >> 2] * (x * C - t * w);
t = +(m - B * w);
m = +(n - B * C);
a = k;
g[a >> 2] = t;
g[a + 4 >> 2] = m;
a = c[j >> 2] | 0;
g[a + ((c[f >> 2] | 0) * 12 | 0) + 8 >> 2] = D;
D = +(q + A * w);
w = +(r + A * C);
f = a + ((c[h >> 2] | 0) * 12 | 0) | 0;
g[f >> 2] = D;
g[f + 4 >> 2] = w;
g[(c[j >> 2] | 0) + ((c[h >> 2] | 0) * 12 | 0) + 8 >> 2] = z;
if (v > 0)
E = v;
else
E = -v;
e = E < .004999999888241291;
i = d;
return e | 0
}
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 + 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 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 + 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 cg(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 dg(a, b) {
a = a | 0;
b = +b;
return 0
}
function eg(a) {
a = a | 0;
var b = 0,
e = 0,
f = 0,
j = 0,
l = 0;
b = i;
i = i + 16 | 0;
e = b;
f = c[(c[a + 48 >> 2] | 0) + 8 >> 2] | 0;
j = c[(c[a + 52 >> 2] | 0) +
8 >> 2] | 0;
Rm(1552, e);
c[e >> 2] = f;
Rm(1584, e);
c[e >> 2] = j;
Rm(1616, e);
c[e >> 2] = d[a + 61 >> 0] | 0;
Rm(1648, e);
l = +g[a + 84 >> 2];
h[k >> 3] = +g[a + 80 >> 2];
c[e >> 2] = c[k >> 2];
c[e + 4 >> 2] = c[k + 4 >> 2];
j = e + 8 | 0;
h[k >> 3] = l;
c[j >> 2] = c[k >> 2];
c[j + 4 >> 2] = c[k + 4 >> 2];
Rm(1688, e);
l = +g[a + 92 >> 2];
h[k >> 3] = +g[a + 88 >> 2];
c[e >> 2] = c[k >> 2];
c[e + 4 >> 2] = c[k + 4 >> 2];
j = e + 8 | 0;
h[k >> 3] = l;
c[j >> 2] = c[k >> 2];
c[j + 4 >> 2] = c[k + 4 >> 2];
Rm(1736, e);
h[k >> 3] = +g[a + 104 >> 2];
c[e >> 2] = c[k >> 2];
c[e + 4 >> 2] = c[k + 4 >> 2];
Rm(1784, e);
h[k >> 3] = +g[a + 68 >> 2];
c[e >> 2] = c[k >> 2];
c[e + 4 >> 2] = c[k + 4 >> 2];
Rm(1808, e);
h[k >>
3] = +g[a + 72 >> 2];
c[e >> 2] = c[k >> 2];
c[e + 4 >> 2] = c[k + 4 >> 2];
Rm(1840, e);
c[e >> 2] = c[a + 56 >> 2];
Rm(1872, e);
i = b;
return
}
function fg(a) {
a = a | 0;
return
}
function gg(a) {
a = a | 0;
var b = 0;
b = i;
sn(a);
i = b;
return
}
function hg(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;
f = i;
c[a + 8 >> 2] = b;
c[a + 12 >> 2] = d;
h = +g[e >> 2] - +g[b + 12 >> 2];
j = e + 4 | 0;
k = +g[j >> 2] - +g[b + 16 >> 2];
l = +g[b + 24 >> 2];
m = +g[b + 20 >> 2];
n = +(h * l + k * m);
o = +(l * k - h * m);
b = a + 20 | 0;
g[b >> 2] = n;
g[b + 4 >> 2] = o;
o = +g[e >> 2] - +g[d + 12 >> 2];
n = +g[j >> 2] - +g[d + 16 >> 2];
m = +g[d + 24 >> 2];
h = +g[d + 20 >>
2];
k = +(o * m + n * h);
l = +(m * n - o * h);
d = a + 28 | 0;
g[d >> 2] = k;
g[d + 4 >> 2] = l;
i = f;
return
}
function ig(a, b) {
a = a | 0;
b = b | 0;
var d = 0,
e = 0,
f = 0,
h = 0;
d = i;
vh(a, b);
c[a >> 2] = 1968;
e = b + 20 | 0;
f = c[e + 4 >> 2] | 0;
h = a + 68 | 0;
c[h >> 2] = c[e >> 2];
c[h + 4 >> 2] = f;
f = b + 28 | 0;
h = c[f + 4 >> 2] | 0;
e = a + 76 | 0;
c[e >> 2] = c[f >> 2];
c[e + 4 >> 2] = h;
g[a + 84 >> 2] = 0;
g[a + 88 >> 2] = 0;
g[a + 92 >> 2] = 0;
g[a + 96 >> 2] = +g[b + 36 >> 2];
g[a + 100 >> 2] = +g[b + 40 >> 2];
i = d;
return
}
function jg(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,
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 = i;
f = c[b + 48 >> 2] | 0;
h = c[f + 8 >> 2] | 0;
j = b + 104 | 0;
c[j >> 2] = h;
l = c[b + 52 >> 2] | 0;
m = c[l + 8 >> 2] | 0;
n = b + 108 | 0;
c[n >> 2] = m;
o = f + 44 | 0;
p = c[o >> 2] | 0;
q = c[o + 4 >> 2] | 0;
o = b + 128 | 0;
c[o >> 2] = p;
c[o + 4 >> 2] = q;
o = l + 44 | 0;
r = c[o >> 2] | 0;
s = c[o + 4 >> 2] | 0;
o = b + 136 | 0;
c[o >> 2] = r;
c[o + 4 >> 2] = s;
o = b + 144 | 0;
g[o >> 2] = +g[f + 136 >> 2];
t = +g[l + 136 >> 2];
g[b + 148 >> 2] = t;
u = +g[f + 144 >> 2];
g[b + 152 >> 2] = u;
v =
+g[l + 144 >> 2];
g[b + 156 >> 2] = v;
l = c[d + 28 >> 2] | 0;
w = +g[l + (h * 12 | 0) + 8 >> 2];
f = d + 32 | 0;
x = c[f >> 2] | 0;
y = x + (h * 12 | 0) | 0;
z = +g[y >> 2];
A = +g[y + 4 >> 2];
B = +g[x + (h * 12 | 0) + 8 >> 2];
C = +g[l + (m * 12 | 0) + 8 >> 2];
l = x + (m * 12 | 0) | 0;
D = +g[l >> 2];
E = +g[l + 4 >> 2];
F = +g[x + (m * 12 | 0) + 8 >> 2];
G = +T(+w);
H = +S(+w);
w = +T(+C);
I = +S(+C);
C = +g[b + 68 >> 2] - (c[k >> 2] = p, +g[k >> 2]);
J = +g[b + 72 >> 2] - (c[k >> 2] = q, +g[k >> 2]);
K = H * C - G * J;
L = G * C + H * J;
J = +K;
H = +L;
q = b + 112 | 0;
g[q >> 2] = J;
g[q + 4 >> 2] = H;
H = +g[b + 76 >> 2] - (c[k >> 2] = r, +g[k >> 2]);
J = +g[b + 80 >> 2] - (c[k >> 2] = s, +g[k >> 2]);
C = I * H - w * J;
G = w * H + I * J;
J = +C;
I = +G;
s = b +
120 | 0;
g[s >> 2] = J;
g[s + 4 >> 2] = I;
I = +g[o >> 2];
J = I + t;
H = J + L * u * L + G * v * G;
w = u * K;
M = v * C;
N = -(L * w) - G * M;
O = J + K * w + C * M;
M = H * O - N * N;
if (M != 0)
P = 1 / M;
else
P = M;
M = -(N * P);
g[b + 160 >> 2] = O * P;
g[b + 164 >> 2] = M;
g[b + 168 >> 2] = M;
g[b + 172 >> 2] = H * P;
P = u + v;
if (P > 0)
Q = 1 / P;
else
Q = P;
g[b + 176 >> 2] = Q;
o = b + 84 | 0;
if ((a[d + 24 >> 0] | 0) == 0) {
g[o >> 2] = 0;
g[b + 88 >> 2] = 0;
g[b + 92 >> 2] = 0;
R = z;
U = A;
V = D;
W = E;
X = B;
Y = F;
Z = c[j >> 2] | 0;
_ = c[f >> 2] | 0;
$ = _ + (Z * 12 | 0) | 0;
aa = +R;
ba = +U;
ca = $;
da = ca;
g[da >> 2] = aa;
ea = ca + 4 | 0;
fa = ea;
g[fa >> 2] = ba;
ga = c[j >> 2] | 0;
ha = c[f >> 2] | 0;
ia = ha + (ga * 12 | 0) + 8 | 0;
g[ia >> 2] = X;
ja = c[n >> 2] |
0;
ka = ha + (ja * 12 | 0) | 0;
la = +V;
ma = +W;
na = ka;
oa = na;
g[oa >> 2] = la;
pa = na + 4 | 0;
qa = pa;
g[qa >> 2] = ma;
ra = c[n >> 2] | 0;
sa = c[f >> 2] | 0;
ta = sa + (ra * 12 | 0) + 8 | 0;
g[ta >> 2] = Y;
i = e;
return
} else {
s = d + 8 | 0;
Q = +g[s >> 2];
P = Q * +g[o >> 2];
g[o >> 2] = P;
o = b + 88 | 0;
H = Q * +g[o >> 2];
g[o >> 2] = H;
o = b + 92 | 0;
Q = +g[s >> 2] * +g[o >> 2];
g[o >> 2] = Q;
R = z - I * P;
U = A - I * H;
V = D + t * P;
W = E + t * H;
X = B - u * (Q + (H * K - P * L));
Y = F + v * (Q + (H * C - P * G));
Z = c[j >> 2] | 0;
_ = c[f >> 2] | 0;
$ = _ + (Z * 12 | 0) | 0;
aa = +R;
ba = +U;
ca = $;
da = ca;
g[da >> 2] = aa;
ea = ca + 4 | 0;
fa = ea;
g[fa >> 2] = ba;
ga = c[j >> 2] | 0;
ha = c[f >> 2] | 0;
ia = ha + (ga * 12 | 0) + 8 | 0;
g[ia >> 2] = X;
ja = c[n >> 2] | 0;
ka = ha + (ja * 12 | 0) | 0;
la = +V;
ma = +W;
na = ka;
oa = na;
g[oa >> 2] = la;
pa = na + 4 | 0;
qa = pa;
g[qa >> 2] = ma;
ra = c[n >> 2] | 0;
sa = c[f >> 2] | 0;
ta = sa + (ra * 12 | 0) + 8 | 0;
g[ta >> 2] = Y;
i = e;
return
}
}
function kg(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;
d = i;
e = a + 104 | 0;
f = c[e >> 2] | 0;
h = b + 32 | 0;
j = c[h >> 2] | 0;
k = j + (f * 12 | 0) | 0;
l = +g[k >> 2];
m = +g[k + 4 >> 2];
n = +g[j + (f * 12 | 0) + 8 >> 2];
f = a + 108 | 0;
k = c[f >> 2] | 0;
o = j + (k * 12 | 0) | 0;
p = +g[o >> 2];
q = +g[o + 4 >> 2];
r = +g[j +
(k * 12 | 0) + 8 >> 2];
s = +g[a + 144 >> 2];
t = +g[a + 148 >> 2];
u = +g[a + 152 >> 2];
v = +g[a + 156 >> 2];
w = +g[b >> 2];
b = a + 92 | 0;
x = +g[b >> 2];
y = w * +g[a + 100 >> 2];
z = x - (r - n) * +g[a + 176 >> 2];
A = -y;
B = z < y ? z : y;
y = B < A ? A : B;
g[b >> 2] = y;
B = y - x;
x = n - u * B;
n = r + v * B;
B = +g[a + 124 >> 2];
r = +g[a + 120 >> 2];
y = +g[a + 116 >> 2];
A = +g[a + 112 >> 2];
z = y * x + (p - B * n - l);
C = q + r * n - m - A * x;
D = +g[a + 164 >> 2] * z + +g[a + 172 >> 2] * C;
b = a + 84 | 0;
k = b;
E = +g[k >> 2];
F = +g[k + 4 >> 2];
G = E - (+g[a + 160 >> 2] * z + +g[a + 168 >> 2] * C);
g[b >> 2] = G;
k = a + 88 | 0;
C = +g[k >> 2] - D;
g[k >> 2] = C;
D = w * +g[a + 96 >> 2];
w = G * G + C * C;
if (w > D * D) {
z = +Q(+w);
if (z < 1.1920928955078125E-7) {
H =
G;
I = C
} else {
w = 1 / z;
z = G * w;
g[b >> 2] = z;
J = C * w;
g[k >> 2] = J;
H = z;
I = J
}
J = D * H;
g[b >> 2] = J;
H = D * I;
g[k >> 2] = H;
K = J;
L = H
} else {
K = G;
L = C
}
C = K - E;
E = L - F;
F = +(l - s * C);
l = +(m - s * E);
k = (c[h >> 2] | 0) + ((c[e >> 2] | 0) * 12 | 0) | 0;
g[k >> 2] = F;
g[k + 4 >> 2] = l;
k = c[h >> 2] | 0;
g[k + ((c[e >> 2] | 0) * 12 | 0) + 8 >> 2] = x - u * (A * E - C * y);
y = +(p + t * C);
p = +(q + t * E);
e = k + ((c[f >> 2] | 0) * 12 | 0) | 0;
g[e >> 2] = y;
g[e + 4 >> 2] = p;
g[(c[h >> 2] | 0) + ((c[f >> 2] | 0) * 12 | 0) + 8 >> 2] = n + v * (E * r - C * B);
i = d;
return
}
function lg(a, b) {
a = a | 0;
b = b | 0;
return 1
}
function mg(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 ng(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 og(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 pg(a, b) {
a = a | 0;
b = +b;
return +(+g[a + 92 >> 2] * b)
}
function qg(a) {
a = a | 0;
var b =
0,
e = 0,
f = 0,
j = 0,
l = 0;
b = i;
i = i + 16 | 0;
e = b;
f = c[(c[a + 48 >> 2] | 0) + 8 >> 2] | 0;
j = c[(c[a + 52 >> 2] | 0) + 8 >> 2] | 0;
Rm(2016, e);
c[e >> 2] = f;
Rm(2048, e);
c[e >> 2] = j;
Rm(2080, e);
c[e >> 2] = d[a + 61 >> 0] | 0;
Rm(2112, e);
l = +g[a + 72 >> 2];
h[k >> 3] = +g[a + 68 >> 2];
c[e >> 2] = c[k >> 2];
c[e + 4 >> 2] = c[k + 4 >> 2];
j = e + 8 | 0;
h[k >> 3] = l;
c[j >> 2] = c[k >> 2];
c[j + 4 >> 2] = c[k + 4 >> 2];
Rm(2152, e);
l = +g[a + 80 >> 2];
h[k >> 3] = +g[a + 76 >> 2];
c[e >> 2] = c[k >> 2];
c[e + 4 >> 2] = c[k + 4 >> 2];
j = e + 8 | 0;
h[k >> 3] = l;
c[j >> 2] = c[k >> 2];
c[j + 4 >> 2] = c[k + 4 >> 2];
Rm(2200, e);
h[k >> 3] = +g[a + 96 >> 2];
c[e >> 2] = c[k >> 2];
c[e + 4 >> 2] = c[k + 4 >> 2];
Rm(2248,
e);
h[k >> 3] = +g[a + 100 >> 2];
c[e >> 2] = c[k >> 2];
c[e + 4 >> 2] = c[k + 4 >> 2];
Rm(2280, e);
c[e >> 2] = c[a + 56 >> 2];
Rm(2312, e);
i = b;
return
}
function rg(a) {
a = a | 0;
return
}
function sg(a) {
a = a | 0;
var b = 0;
b = i;
sn(a);
i = b;
return
}
function tg(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;
f = i;
c[a + 8 >> 2] = b;
c[a + 12 >> 2] = d;
h = +g[e >> 2] - +g[b + 12 >> 2];
j = e + 4 | 0;
k = +g[j >> 2] - +g[b + 16 >> 2];
l = +g[b + 24 >> 2];
m = +g[b + 20 >> 2];
n = +(h * l + k * m);
o = +(l * k - h * m);
p = a + 20 | 0;
g[p >> 2] = n;
g[p + 4 >> 2] = o;
o = +g[e >> 2] - +g[d + 12 >> 2];
n = +g[j >> 2] - +g[d + 16 >> 2];
m = +g[d + 24 >> 2];
h = +g[d + 20 >> 2];
k = +(o * m + n * h);
l = +(m * n - o * h);
j = a + 28 | 0;
g[j >> 2] = k;
g[j + 4 >> 2] = l;
g[a + 36 >> 2] = +g[d + 72 >> 2] - +g[b + 72 >> 2];
i = f;
return
}
function ug(a, b) {
a = a | 0;
b = b | 0;
var d = 0,
e = 0,
f = 0,
h = 0;
d = i;
vh(a, b);
c[a >> 2] = 2408;
e = b + 20 | 0;
f = c[e + 4 >> 2] | 0;
h = a + 80 | 0;
c[h >> 2] = c[e >> 2];
c[h + 4 >> 2] = f;
f = b + 28 | 0;
h = c[f + 4 >> 2] | 0;
e = a + 88 | 0;
c[e >> 2] = c[f >> 2];
c[e + 4 >> 2] = h;
g[a + 96 >> 2] = +g[b + 36 >> 2];
g[a + 68 >> 2] = +g[b + 40 >> 2];
g[a + 72 >> 2] = +g[b + 44 >> 2];
g[a + 104 >> 2] = 0;
g[a + 108 >> 2] = 0;
g[a + 112 >> 2] = 0;
i = d;
return
}
function vg(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,
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;
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 = b +
156 | 0;
g[p >> 2] = +g[h + 136 >> 2];
u = +g[m + 136 >> 2];
g[b + 160 >> 2] = u;
v = +g[h + 144 >> 2];
g[b + 164 >> 2] = v;
w = +g[m + 144 >> 2];
g[b + 168 >> 2] = w;
m = c[d + 28 >> 2] | 0;
x = +g[m + (j * 12 | 0) + 8 >> 2];
h = d + 32 | 0;
y = c[h >> 2] | 0;
z = y + (j * 12 | 0) | 0;
A = +g[z >> 2];
B = +g[z + 4 >> 2];
C = +g[y + (j * 12 | 0) + 8 >> 2];
D = +g[m + (n * 12 | 0) + 8 >> 2];
m = y + (n * 12 | 0) | 0;
E = +g[m >> 2];
F = +g[m + 4 >> 2];
G = +g[y + (n * 12 | 0) + 8 >> 2];
H = +T(+x);
I = +S(+x);
J = +T(+D);
K = +S(+D);
n = b + 124 | 0;
L = +g[b + 80 >> 2] - (c[k >> 2] = q, +g[k >> 2]);
M = +g[b + 84 >> 2] - (c[k >> 2] = r, +g[k >> 2]);
N = I * L - H * M;
O = H * L + I * M;
M = +N;
I = +O;
r = n;
g[r >> 2] = M;
g[r + 4 >> 2] = I;
r = b + 132 | 0;
I = +g[b +
88 >> 2] - (c[k >> 2] = s, +g[k >> 2]);
M = +g[b + 92 >> 2] - (c[k >> 2] = t, +g[k >> 2]);
L = K * I - J * M;
H = J * I + K * M;
M = +L;
K = +H;
t = r;
g[t >> 2] = M;
g[t + 4 >> 2] = K;
K = +g[p >> 2];
M = K + u;
p = b + 128 | 0;
t = b + 136 | 0;
g[f >> 2] = M + v * O * O + w * H * H;
I = -(v * O * N) - w * H * L;
g[f + 12 >> 2] = I;
J = -(v * O) - w * H;
g[f + 24 >> 2] = J;
g[f + 4 >> 2] = I;
g[f + 16 >> 2] = M + v * N * N + w * L * L;
M = v * N + w * L;
g[f + 28 >> 2] = M;
g[f + 8 >> 2] = J;
g[f + 20 >> 2] = M;
M = v + w;
g[f + 32 >> 2] = M;
s = b + 68 | 0;
q = b + 172 | 0;
if (+g[s >> 2] > 0) {
Im(f, q);
if (M > 0)
P = 1 / M;
else
P = 0;
J = D - x - +g[b + 96 >> 2];
x = +g[s >> 2] * 6.2831854820251465;
D = x * P * x;
L = +g[d >> 2];
N = L * (x * P * 2 * +g[b + 72 >> 2] + L * D);
s = b +
100 | 0;
g[s >> 2] = N;
if (N != 0)
Q = 1 / N;
else
Q = 0;
g[s >> 2] = Q;
g[b + 76 >> 2] = J * L * D * Q;
D = M + Q;
if (D != 0)
R = 1 / D;
else
R = 0;
g[b + 204 >> 2] = R
} else {
Jm(f, q);
g[b + 100 >> 2] = 0;
g[b + 76 >> 2] = 0
}
q = b + 104 | 0;
if ((a[d + 24 >> 0] | 0) == 0) {
g[q >> 2] = 0;
g[b + 108 >> 2] = 0;
g[b + 112 >> 2] = 0;
U = A;
V = B;
W = E;
X = F;
Y = C;
Z = G;
_ = c[l >> 2] | 0;
$ = c[h >> 2] | 0;
aa = $ + (_ * 12 | 0) | 0;
ba = +U;
ca = +V;
da = aa;
ea = da;
g[ea >> 2] = ba;
fa = da + 4 | 0;
ga = fa;
g[ga >> 2] = ca;
ha = c[l >> 2] | 0;
ia = c[h >> 2] | 0;
ja = ia + (ha * 12 | 0) + 8 | 0;
g[ja >> 2] = Y;
ka = c[o >> 2] | 0;
la = ia + (ka * 12 | 0) | 0;
ma = +W;
na = +X;
oa = la;
pa = oa;
g[pa >> 2] = ma;
qa = oa + 4 | 0;
ra = qa;
g[ra >> 2] = na;
sa = c[o >> 2] | 0;
ta = c[h >> 2] | 0;
ua = ta + (sa * 12 | 0) + 8 | 0;
g[ua >> 2] = Z;
i = e;
return
} else {
R = +g[d + 8 >> 2];
D = R * +g[q >> 2];
g[q >> 2] = D;
q = b + 108 | 0;
Q = R * +g[q >> 2];
g[q >> 2] = Q;
q = b + 112 | 0;
M = R * +g[q >> 2];
g[q >> 2] = M;
U = A - K * D;
V = B - K * Q;
W = E + u * D;
X = F + u * Q;
Y = C - v * (M + (Q * +g[n >> 2] - D * +g[p >> 2]));
Z = G + w * (M + (Q * +g[r >> 2] - D * +g[t >> 2]));
_ = c[l >> 2] | 0;
$ = c[h >> 2] | 0;
aa = $ + (_ * 12 | 0) | 0;
ba = +U;
ca = +V;
da = aa;
ea = da;
g[ea >> 2] = ba;
fa = da + 4 | 0;
ga = fa;
g[ga >> 2] = ca;
ha = c[l >> 2] | 0;
ia = c[h >> 2] | 0;
ja = ia + (ha * 12 | 0) + 8 | 0;
g[ja >> 2] = Y;
ka = c[o >> 2] | 0;
la = ia + (ka * 12 | 0) | 0;
ma = +W;
na = +X;
oa = la;
pa = oa;
g[pa >> 2] = ma;
qa = oa + 4 | 0;
ra = qa;
g[ra >> 2] = na;
sa = c[o >> 2] | 0;
ta = c[h >> 2] | 0;
ua = ta + (sa * 12 | 0) + 8 | 0;
g[ua >> 2] = Z;
i = e;
return
}
}
function wg(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,
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;
d = i;
e = a + 116 | 0;
f = c[e >> 2] | 0;
h = b + 32 | 0;
b = c[h >> 2] | 0;
j = b + (f * 12 | 0) | 0;
k = j;
l = +g[k >> 2];
m = +g[k + 4 >> 2];
n = +g[b + (f * 12 | 0) + 8 >> 2];
f = a + 120 | 0;
k = c[f >>
2] | 0;
o = b + (k * 12 | 0) | 0;
p = +g[o >> 2];
q = +g[o + 4 >> 2];
r = +g[b + (k * 12 | 0) + 8 >> 2];
s = +g[a + 156 >> 2];
t = +g[a + 160 >> 2];
u = +g[a + 164 >> 2];
v = +g[a + 168 >> 2];
if (+g[a + 68 >> 2] > 0) {
k = a + 112 | 0;
w = +g[k >> 2];
x = +g[a + 204 >> 2] * (r - n + +g[a + 76 >> 2] + +g[a + 100 >> 2] * w);
y = -x;
g[k >> 2] = w - x;
x = n - u * y;
w = r + v * y;
y = +g[a + 136 >> 2];
z = +g[a + 132 >> 2];
A = +g[a + 128 >> 2];
B = +g[a + 124 >> 2];
C = A * x + (p - y * w - l);
D = q + z * w - m - B * x;
E = +g[a + 172 >> 2] * C + +g[a + 184 >> 2] * D;
F = +g[a + 176 >> 2] * C + +g[a + 188 >> 2] * D;
D = -E;
C = -F;
k = a + 104 | 0;
g[k >> 2] = +g[k >> 2] - E;
k = a + 108 | 0;
g[k >> 2] = +g[k >> 2] - F;
G = C;
H = D;
I = x - u * (B * C - A * D);
J = w + v *
(z * C - y * D);
K = t * H;
L = t * G;
M = s * H;
N = s * G;
O = p + K;
P = q + L;
Q = l - M;
R = m - N;
S = +Q;
T = +R;
U = j;
V = U;
g[V >> 2] = S;
W = U + 4 | 0;
X = W;
g[X >> 2] = T;
Y = c[e >> 2] | 0;
Z = c[h >> 2] | 0;
_ = Z + (Y * 12 | 0) + 8 | 0;
g[_ >> 2] = I;
$ = c[f >> 2] | 0;
aa = Z + ($ * 12 | 0) | 0;
ba = +O;
ca = +P;
da = aa;
ea = da;
g[ea >> 2] = ba;
fa = da + 4 | 0;
ga = fa;
g[ga >> 2] = ca;
ha = c[f >> 2] | 0;
ia = c[h >> 2] | 0;
ja = ia + (ha * 12 | 0) + 8 | 0;
g[ja >> 2] = J;
i = d;
return
} else {
D = +g[a + 136 >> 2];
y = +g[a + 132 >> 2];
C = +g[a + 128 >> 2];
z = +g[a + 124 >> 2];
w = p - r * D - l + n * C;
A = q + r * y - m - n * z;
B = r - n;
x = w * +g[a + 172 >> 2] + A * +g[a + 184 >> 2] + B * +g[a + 196 >> 2];
F = w * +g[a + 176 >> 2] + A * +g[a + 188 >> 2] + B * +g[a +
200 >> 2];
E = w * +g[a + 180 >> 2] + A * +g[a + 192 >> 2] + B * +g[a + 204 >> 2];
B = -x;
A = -F;
k = a + 104 | 0;
g[k >> 2] = +g[k >> 2] - x;
k = a + 108 | 0;
g[k >> 2] = +g[k >> 2] - F;
k = a + 112 | 0;
g[k >> 2] = +g[k >> 2] - E;
G = A;
H = B;
I = n - u * (z * A - C * B - E);
J = r + v * (y * A - D * B - E);
K = t * H;
L = t * G;
M = s * H;
N = s * G;
O = p + K;
P = q + L;
Q = l - M;
R = m - N;
S = +Q;
T = +R;
U = j;
V = U;
g[V >> 2] = S;
W = U + 4 | 0;
X = W;
g[X >> 2] = T;
Y = c[e >> 2] | 0;
Z = c[h >> 2] | 0;
_ = Z + (Y * 12 | 0) + 8 | 0;
g[_ >> 2] = I;
$ = c[f >> 2] | 0;
aa = Z + ($ * 12 | 0) | 0;
ba = +O;
ca = +P;
da = aa;
ea = da;
g[ea >> 2] = ba;
fa = da + 4 | 0;
ga = fa;
g[ga >> 2] = ca;
ha = c[f >> 2] | 0;
ia = c[h >> 2] | 0;
ja = ia + (ha * 12 | 0) + 8 | 0;
g[ja >> 2] = J;
i = d;
return
}
}
function xg(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,
O = 0,
P = 0,
R = 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 = b + (m * 12 | 0) | 0;
p = +g[o >> 2];
q = +g[o + 4 >> 2];
r = +g[b + (m * 12 | 0) + 8 >> 2];
m = a + 120 | 0;
o = c[m >> 2] | 0;
s = b + (o * 12 | 0) | 0;
t = +g[s >> 2];
u = +g[s + 4 >> 2];
v = +g[b + (o * 12 | 0) + 8 >> 2];
w = +T(+r);
x = +S(+r);
y = +T(+v);
z = +S(+v);
A = +g[a + 156 >> 2];
B = +g[a + 160 >> 2];
C = +g[a + 164 >>
2];
D = +g[a + 168 >> 2];
E = +g[a + 80 >> 2] - +g[a + 140 >> 2];
F = +g[a + 84 >> 2] - +g[a + 144 >> 2];
G = x * E - w * F;
H = w * E + x * F;
F = +g[a + 88 >> 2] - +g[a + 148 >> 2];
x = +g[a + 92 >> 2] - +g[a + 152 >> 2];
E = z * F - y * x;
w = y * F + z * x;
x = A + B;
g[e >> 2] = x + C * H * H + D * w * w;
z = -(C * H * G) - D * w * E;
g[e + 12 >> 2] = z;
F = -(C * H) - D * w;
g[e + 24 >> 2] = F;
g[e + 4 >> 2] = z;
g[e + 16 >> 2] = x + C * G * G + D * E * E;
x = C * G + D * E;
g[e + 28 >> 2] = x;
g[e + 8 >> 2] = F;
g[e + 20 >> 2] = x;
g[e + 32 >> 2] = C + D;
x = t + E - p - G;
F = u + w - q - H;
if (+g[a + 68 >> 2] > 0) {
g[f >> 2] = x;
g[f + 4 >> 2] = F;
z = +Q(+(F * F + x * x));
Hm(h, e, f);
y = -+g[h >> 2];
I = -+g[h + 4 >> 2];
J = I;
K = y;
L = E * I - w * y;
M = G * I - H * y;
N = 0;
O = z
} else {
z =
v - r - +g[a + 96 >> 2];
y = +Q(+(x * x + F * F));
if (z > 0)
P = z;
else
P = -z;
g[j >> 2] = x;
g[j + 4 >> 2] = F;
g[j + 8 >> 2] = z;
Gm(k, e, j);
z = -+g[k >> 2];
F = -+g[k + 4 >> 2];
x = +g[k + 8 >> 2];
J = F;
K = z;
L = E * F - w * z - x;
M = G * F - H * z - x;
N = P;
O = y
}
y = +(p - A * K);
p = +(q - A * J);
k = (c[n >> 2] | 0) + ((c[l >> 2] | 0) * 12 | 0) | 0;
g[k >> 2] = y;
g[k + 4 >> 2] = p;
k = c[n >> 2] | 0;
g[k + ((c[l >> 2] | 0) * 12 | 0) + 8 >> 2] = r - C * M;
M = +(t + B * K);
K = +(u + B * J);
l = k + ((c[m >> 2] | 0) * 12 | 0) | 0;
g[l >> 2] = M;
g[l + 4 >> 2] = K;
g[(c[n >> 2] | 0) + ((c[m >> 2] | 0) * 12 | 0) + 8 >> 2] = v + D * L;
if (!(O <= .004999999888241291)) {
R = 0;
i = d;
return R | 0
}
R = N <= .03490658849477768;
i = d;
return R |
0
}
function yg(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 zg(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 Ag(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 Bg(a, b) {
a = a | 0;
b = +b;
return +(+g[a + 112 >> 2] * b)
}
function Cg(a) {
a = a | 0;
var b = 0,
e = 0,
f = 0,
j = 0,
l = 0;
b = i;
i = i + 16 | 0;
e = b;
f = c[(c[a + 48 >> 2] | 0) + 8 >> 2] | 0;
j = c[(c[a + 52 >> 2] | 0) + 8 >> 2] | 0;
Rm(2456, e);
c[e >> 2] = f;
Rm(2480, e);
c[e >> 2] = j;
Rm(2512, e);
c[e >> 2] = d[a + 61 >> 0] | 0;
Rm(2544, e);
l = +g[a + 84 >> 2];
h[k >> 3] = +g[a + 80 >> 2];
c[e >> 2] = c[k >> 2];
c[e + 4 >> 2] = c[k + 4 >> 2];
j = e + 8 | 0;
h[k >> 3] = l;
c[j >> 2] = c[k >> 2];
c[j + 4 >> 2] = c[k + 4 >> 2];
Rm(2584, e);
l = +g[a + 92 >> 2];
h[k >> 3] = +g[a + 88 >> 2];
c[e >> 2] = c[k >> 2];
c[e + 4 >> 2] = c[k + 4 >> 2];
j = e + 8 | 0;
h[k >> 3] = l;
c[j >> 2] = c[k >> 2];
c[j + 4 >> 2] =
c[k + 4 >> 2];
Rm(2632, e);
h[k >> 3] = +g[a + 96 >> 2];
c[e >> 2] = c[k >> 2];
c[e + 4 >> 2] = c[k + 4 >> 2];
Rm(2680, e);
h[k >> 3] = +g[a + 68 >> 2];
c[e >> 2] = c[k >> 2];
c[e + 4 >> 2] = c[k + 4 >> 2];
Rm(2712, e);
h[k >> 3] = +g[a + 72 >> 2];
c[e >> 2] = c[k >> 2];
c[e + 4 >> 2] = c[k + 4 >> 2];
Rm(2744, e);
c[e >> 2] = c[a + 56 >> 2];
Rm(2776, e);
i = b;
return
}
function Dg(a) {
a = a | 0;
return
}
function Eg(a) {
a = a | 0;
var b = 0;
b = i;
sn(a);
i = b;
return
}
function Fg(a, b) {
a = a | 0;
b = b | 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;
d = i;
vh(a, b);
c[a >> 2] = 2864;
e = a + 92 | 0;
f = a + 100 | 0;
h = a + 108 | 0;
j = a + 116 | 0;
l = a + 124 | 0;
m = a + 132 | 0;
n = b + 20 | 0;
o = c[n >> 2] | 0;
c[a + 68 >> 2] = o;
p = b + 24 | 0;
q = c[p >> 2] | 0;
c[a + 72 >> 2] = q;
r = c[o + 4 >> 2] | 0;
c[a + 76 >> 2] = r;
s = c[q + 4 >> 2] | 0;
c[a + 80 >> 2] = s;
t = c[o + 48 >> 2] | 0;
c[a + 84 >> 2] = t;
u = c[o + 52 >> 2] | 0;
c[a + 48 >> 2] = u;
v = +g[u + 20 >> 2];
w = +g[u + 24 >> 2];
x = +g[t + 20 >> 2];
y = +g[t + 24 >> 2];
o = c[n >> 2] | 0;
if ((r | 0) == 1) {
z = +g[u + 72 >> 2];
A = +g[t + 72 >> 2];
r = o + 68 | 0;
n = c[r + 4 >> 2] | 0;
B = h;
c[B >> 2] = c[r >> 2];
c[B + 4 >> 2] = n;
n = o + 76 | 0;
B = c[n + 4 >> 2] | 0;
r = e;
c[r >> 2] = c[n >> 2];
c[r + 4 >> 2] =
B;
C = +g[o + 116 >> 2];
g[a + 140 >> 2] = C;
g[l >> 2] = 0;
g[a + 128 >> 2] = 0;
D = z - A - C
} else {
C = +g[t + 16 >> 2];
A = +g[t + 12 >> 2];
z = +g[u + 16 >> 2];
E = +g[u + 12 >> 2];
u = o + 68 | 0;
t = c[u >> 2] | 0;
B = c[u + 4 >> 2] | 0;
u = h;
c[u >> 2] = t;
c[u + 4 >> 2] = B;
u = o + 76 | 0;
h = c[u >> 2] | 0;
r = c[u + 4 >> 2] | 0;
u = e;
c[u >> 2] = h;
c[u + 4 >> 2] = r;
g[a + 140 >> 2] = +g[o + 100 >> 2];
u = o + 84 | 0;
o = c[u >> 2] | 0;
e = c[u + 4 >> 2] | 0;
u = l;
c[u >> 2] = o;
c[u + 4 >> 2] = e;
F = (c[k >> 2] = t, +g[k >> 2]);
G = (c[k >> 2] = B, +g[k >> 2]);
H = (c[k >> 2] = h, +g[k >> 2]);
I = (c[k >> 2] = r, +g[k >> 2]);
J = E - A + (w * H - v * I);
A = z - C + (v * H + w * I);
I = (c[k >> 2] = o, +g[k >> 2]) * (y * J + x * A - F);
D = I + (c[k >>
2] = e, +g[k >> 2]) * (y * A - x * J - G)
}
e = c[q + 48 >> 2] | 0;
c[a + 88 >> 2] = e;
o = c[q + 52 >> 2] | 0;
c[a + 52 >> 2] = o;
G = +g[o + 20 >> 2];
J = +g[o + 24 >> 2];
x = +g[e + 20 >> 2];
A = +g[e + 24 >> 2];
q = c[p >> 2] | 0;
if ((s | 0) == 1) {
y = +g[o + 72 >> 2];
I = +g[e + 72 >> 2];
s = q + 68 | 0;
p = c[s + 4 >> 2] | 0;
r = j;
c[r >> 2] = c[s >> 2];
c[r + 4 >> 2] = p;
p = q + 76 | 0;
r = c[p + 4 >> 2] | 0;
s = f;
c[s >> 2] = c[p >> 2];
c[s + 4 >> 2] = r;
F = +g[q + 116 >> 2];
g[a + 144 >> 2] = F;
g[m >> 2] = 0;
g[a + 136 >> 2] = 0;
K = y - I - F;
L = b + 28 | 0;
M = +g[L >> 2];
N = a + 152 | 0;
g[N >> 2] = M;
O = K * M;
P = D + O;
Q = a + 148 | 0;
g[Q >> 2] = P;
R = a + 156 | 0;
g[R >> 2] = 0;
i = d;
return
} else {
F = +g[e + 16 >> 2];
I = +g[e + 12 >> 2];
y =
+g[o + 16 >> 2];
w = +g[o + 12 >> 2];
o = q + 68 | 0;
e = c[o >> 2] | 0;
r = c[o + 4 >> 2] | 0;
o = j;
c[o >> 2] = e;
c[o + 4 >> 2] = r;
o = q + 76 | 0;
j = c[o >> 2] | 0;
s = c[o + 4 >> 2] | 0;
o = f;
c[o >> 2] = j;
c[o + 4 >> 2] = s;
g[a + 144 >> 2] = +g[q + 100 >> 2];
o = q + 84 | 0;
q = c[o >> 2] | 0;
f = c[o + 4 >> 2] | 0;
o = m;
c[o >> 2] = q;
c[o + 4 >> 2] = f;
H = (c[k >> 2] = e, +g[k >> 2]);
v = (c[k >> 2] = r, +g[k >> 2]);
C = (c[k >> 2] = j, +g[k >> 2]);
z = (c[k >> 2] = s, +g[k >> 2]);
E = w - I + (J * C - G * z);
I = y - F + (G * C + J * z);
z = (c[k >> 2] = q, +g[k >> 2]) * (A * E + x * I - H);
K = z + (c[k >> 2] = f, +g[k >> 2]) * (A * I - x * E - v);
L = b + 28 | 0;
M = +g[L >> 2];
N = a + 152 | 0;
g[N >> 2] = M;
O = K * M;
P = D + O;
Q = a + 148 | 0;
g[Q >> 2] = P;
R = a + 156 | 0;
g[R >> 2] = 0;
i = d;
return
}
}
function Gg(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,
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;
e = i;
f = c[b + 48 >> 2] | 0;
h = c[f + 8 >> 2] | 0;
j = b + 160 | 0;
c[j >> 2] = h;
l = c[b + 52 >> 2] | 0;
m = c[l + 8 >> 2] | 0;
n = b + 164 | 0;
c[n >> 2] = m;
o = c[b + 84 >> 2] | 0;
p = c[o + 8 >> 2] | 0;
q = b + 168 | 0;
c[q >> 2] = p;
r = c[b + 88 >> 2] | 0;
s = c[r + 8 >> 2] | 0;
t = b + 172 | 0;
c[t >> 2] = s;
u = b + 176 | 0;
v = f + 44 | 0;
w = c[v + 4 >> 2] | 0;
x = u;
c[x >> 2] = c[v >> 2];
c[x + 4 >> 2] = w;
w = b + 184 | 0;
x = l + 44 | 0;
v = c[x + 4 >> 2] | 0;
y = w;
c[y >> 2] = c[x >> 2];
c[y + 4 >> 2] = v;
v = b + 192 | 0;
y = o + 44 | 0;
x = c[y + 4 >> 2] | 0;
z =
v;
c[z >> 2] = c[y >> 2];
c[z + 4 >> 2] = x;
x = r + 44 | 0;
z = c[x >> 2] | 0;
y = c[x + 4 >> 2] | 0;
x = b + 200 | 0;
c[x >> 2] = z;
c[x + 4 >> 2] = y;
A = +g[f + 136 >> 2];
g[b + 208 >> 2] = A;
B = +g[l + 136 >> 2];
g[b + 212 >> 2] = B;
C = +g[o + 136 >> 2];
g[b + 216 >> 2] = C;
D = +g[r + 136 >> 2];
g[b + 220 >> 2] = D;
E = +g[f + 144 >> 2];
g[b + 224 >> 2] = E;
F = +g[l + 144 >> 2];
g[b + 228 >> 2] = F;
G = +g[o + 144 >> 2];
g[b + 232 >> 2] = G;
H = +g[r + 144 >> 2];
g[b + 236 >> 2] = H;
r = c[d + 28 >> 2] | 0;
I = +g[r + (h * 12 | 0) + 8 >> 2];
o = d + 32 | 0;
l = c[o >> 2] | 0;
f = l + (h * 12 | 0) | 0;
J = +g[f >> 2];
K = +g[f + 4 >> 2];
L = +g[l + (h * 12 | 0) + 8 >> 2];
M = +g[r + (m * 12 | 0) + 8 >> 2];
h = l + (m * 12 | 0) | 0;
N = +g[h >> 2];
O = +g[h +
4 >> 2];
P = +g[l + (m * 12 | 0) + 8 >> 2];
Q = +g[r + (p * 12 | 0) + 8 >> 2];
m = l + (p * 12 | 0) | 0;
R = +g[m >> 2];
U = +g[m + 4 >> 2];
V = +g[l + (p * 12 | 0) + 8 >> 2];
W = +g[r + (s * 12 | 0) + 8 >> 2];
r = l + (s * 12 | 0) | 0;
X = +g[r >> 2];
Y = +g[r + 4 >> 2];
Z = +g[l + (s * 12 | 0) + 8 >> 2];
_ = +T(+I);
$ = +S(+I);
I = +T(+M);
aa = +S(+M);
M = +T(+Q);
ba = +S(+Q);
Q = +T(+W);
ca = +S(+W);
s = b + 272 | 0;
g[s >> 2] = 0;
W = (c[k >> 2] = z, +g[k >> 2]);
if ((c[b + 76 >> 2] | 0) == 1) {
g[b + 240 >> 2] = 0;
g[b + 244 >> 2] = 0;
g[b + 256 >> 2] = 1;
g[b + 264 >> 2] = 1;
da = E + G;
ea = 0;
fa = 0;
ga = 1;
ha = 1
} else {
ia = +g[b + 124 >> 2];
ja = +g[b + 128 >> 2];
ka = ba * ia - M * ja;
la = M * ia + ba * ja;
ja = +g[b + 108 >> 2] - +g[v >>
2];
ia = +g[b + 112 >> 2] - +g[b + 196 >> 2];
ma = +g[b + 92 >> 2] - +g[u >> 2];
na = +g[b + 96 >> 2] - +g[b + 180 >> 2];
oa = +ka;
pa = +la;
u = b + 240 | 0;
g[u >> 2] = oa;
g[u + 4 >> 2] = pa;
pa = la * (ba * ja - M * ia) - ka * (M * ja + ba * ia);
g[b + 264 >> 2] = pa;
ia = la * ($ * ma - _ * na) - ka * (_ * ma + $ * na);
g[b + 256 >> 2] = ia;
da = C + A + pa * G * pa + ia * E * ia;
ea = ka;
fa = la;
ga = ia;
ha = pa
}
pa = da + 0;
g[s >> 2] = pa;
if ((c[b + 80 >> 2] | 0) == 1) {
g[b + 248 >> 2] = 0;
g[b + 252 >> 2] = 0;
da = +g[b + 152 >> 2];
g[b + 260 >> 2] = da;
g[b + 268 >> 2] = da;
qa = da * da * (F + H);
ra = 0;
sa = 0;
ta = da;
ua = da
} else {
da = +g[b + 132 >> 2];
ia = +g[b + 136 >> 2];
la = ca * da - Q * ia;
ka = Q * da + ca * ia;
ia = +g[b +
116 >> 2] - W;
W = +g[b + 120 >> 2] - +g[b + 204 >> 2];
da = +g[b + 100 >> 2] - +g[w >> 2];
na = +g[b + 104 >> 2] - +g[b + 188 >> 2];
$ = +g[b + 152 >> 2];
ma = la * $;
_ = ka * $;
ba = +ma;
ja = +_;
w = b + 248 | 0;
g[w >> 2] = ba;
g[w + 4 >> 2] = ja;
ja = (ka * (ca * ia - Q * W) - la * (Q * ia + ca * W)) * $;
g[b + 268 >> 2] = ja;
W = $ * (ka * (aa * da - I * na) - la * (I * da + aa * na));
g[b + 260 >> 2] = W;
qa = $ * $ * (D + B) + ja * H * ja + W * W * F;
ra = ma;
sa = _;
ta = W;
ua = ja
}
ja = pa + qa;
g[s >> 2] = ja;
if (ja > 0)
va = 1 / ja;
else
va = 0;
g[s >> 2] = va;
s = b + 156 | 0;
if ((a[d + 24 >> 0] | 0) == 0) {
g[s >> 2] = 0;
wa = J;
xa = K;
ya = N;
za = O;
Aa = R;
Ba = U;
Ca = X;
Da = Y;
Ea = L;
Fa = P;
Ga = V;
Ha = Z;
Ia = c[j >> 2] | 0;
Ja = c[o >>
2] | 0;
Ka = Ja + (Ia * 12 | 0) | 0;
La = +wa;
Ma = +xa;
Na = Ka;
Oa = Na;
g[Oa >> 2] = La;
Pa = Na + 4 | 0;
Qa = Pa;
g[Qa >> 2] = Ma;
Ra = c[j >> 2] | 0;
Sa = c[o >> 2] | 0;
Ta = Sa + (Ra * 12 | 0) + 8 | 0;
g[Ta >> 2] = Ea;
Ua = c[n >> 2] | 0;
Va = Sa + (Ua * 12 | 0) | 0;
Wa = +ya;
Xa = +za;
Ya = Va;
Za = Ya;
g[Za >> 2] = Wa;
_a = Ya + 4 | 0;
$a = _a;
g[$a >> 2] = Xa;
ab = c[n >> 2] | 0;
bb = c[o >> 2] | 0;
cb = bb + (ab * 12 | 0) + 8 | 0;
g[cb >> 2] = Fa;
db = c[q >> 2] | 0;
eb = bb + (db * 12 | 0) | 0;
fb = +Aa;
gb = +Ba;
hb = eb;
ib = hb;
g[ib >> 2] = fb;
jb = hb + 4 | 0;
kb = jb;
g[kb >> 2] = gb;
lb = c[q >> 2] | 0;
mb = c[o >> 2] | 0;
nb = mb + (lb * 12 | 0) + 8 | 0;
g[nb >> 2] = Ga;
ob = c[t >> 2] | 0;
pb = mb + (ob * 12 | 0) | 0;
qb = +Ca;
rb = +Da;
sb = pb;
tb = sb;
g[tb >> 2] = qb;
ub = sb + 4 | 0;
vb = ub;
g[vb >> 2] = rb;
wb = c[t >> 2] | 0;
xb = c[o >> 2] | 0;
yb = xb + (wb * 12 | 0) + 8 | 0;
g[yb >> 2] = Ha;
i = e;
return
} else {
va = +g[s >> 2];
ja = A * va;
A = va * B;
B = va * C;
C = va * D;
wa = J + ea * ja;
xa = K + ja * fa;
ya = N + ra * A;
za = O + A * sa;
Aa = R - ea * B;
Ba = U - fa * B;
Ca = X - ra * C;
Da = Y - sa * C;
Ea = L + va * E * ga;
Fa = P + va * F * ta;
Ga = V - va * G * ha;
Ha = Z - va * H * ua;
Ia = c[j >> 2] | 0;
Ja = c[o >> 2] | 0;
Ka = Ja + (Ia * 12 | 0) | 0;
La = +wa;
Ma = +xa;
Na = Ka;
Oa = Na;
g[Oa >> 2] = La;
Pa = Na + 4 | 0;
Qa = Pa;
g[Qa >> 2] = Ma;
Ra = c[j >> 2] | 0;
Sa = c[o >> 2] | 0;
Ta = Sa + (Ra * 12 | 0) + 8 | 0;
g[Ta >> 2] = Ea;
Ua = c[n >> 2] | 0;
Va = Sa + (Ua * 12 | 0) | 0;
Wa =
+ya;
Xa = +za;
Ya = Va;
Za = Ya;
g[Za >> 2] = Wa;
_a = Ya + 4 | 0;
$a = _a;
g[$a >> 2] = Xa;
ab = c[n >> 2] | 0;
bb = c[o >> 2] | 0;
cb = bb + (ab * 12 | 0) + 8 | 0;
g[cb >> 2] = Fa;
db = c[q >> 2] | 0;
eb = bb + (db * 12 | 0) | 0;
fb = +Aa;
gb = +Ba;
hb = eb;
ib = hb;
g[ib >> 2] = fb;
jb = hb + 4 | 0;
kb = jb;
g[kb >> 2] = gb;
lb = c[q >> 2] | 0;
mb = c[o >> 2] | 0;
nb = mb + (lb * 12 | 0) + 8 | 0;
g[nb >> 2] = Ga;
ob = c[t >> 2] | 0;
pb = mb + (ob * 12 | 0) | 0;
qb = +Ca;
rb = +Da;
sb = pb;
tb = sb;
g[tb >> 2] = qb;
ub = sb + 4 | 0;
vb = ub;
g[vb >> 2] = rb;
wb = c[t >> 2] | 0;
xb = c[o >> 2] | 0;
yb = xb + (wb * 12 | 0) + 8 | 0;
g[yb >> 2] = Ha;
i = e;
return
}
}
function Hg(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;
d = i;
e = a + 160 | 0;
f = c[e >> 2] | 0;
h = b + 32 | 0;
b = c[h >> 2] | 0;
j = b + (f * 12 | 0) | 0;
k = +g[j >> 2];
l = +g[j + 4 >> 2];
m = +g[b + (f * 12 | 0) + 8 >> 2];
f = a + 164 | 0;
j = c[f >> 2] | 0;
n = b + (j * 12 | 0) | 0;
o = +g[n >> 2];
p = +g[n + 4 >> 2];
q = +g[b + (j * 12 | 0) + 8 >> 2];
j = a + 168 | 0;
n = c[j >> 2] | 0;
r = b + (n * 12 | 0) | 0;
s = +g[r >> 2];
t = +g[r + 4 >> 2];
u = +g[b + (n * 12 | 0) + 8 >> 2];
n = a + 172 | 0;
r = c[n >> 2] | 0;
v = b + (r * 12 | 0) | 0;
w = +g[v >> 2];
x = +g[v + 4 >> 2];
y = +g[b + (r * 12 | 0) + 8 >> 2];
z = +g[a + 240 >> 2];
A = +g[a + 244 >> 2];
B = +g[a + 248 >> 2];
C =
+g[a + 252 >> 2];
D = +g[a + 256 >> 2];
E = +g[a + 264 >> 2];
F = +g[a + 260 >> 2];
G = +g[a + 268 >> 2];
H = +g[a + 272 >> 2] * ((k - s) * z + (l - t) * A + ((o - w) * B + (p - x) * C) + (m * D - u * E + (q * F - y * G)));
I = -H;
r = a + 156 | 0;
g[r >> 2] = +g[r >> 2] - H;
H = +g[a + 208 >> 2] * I;
J = m + +g[a + 224 >> 2] * I * D;
D = +g[a + 212 >> 2] * I;
m = q + +g[a + 228 >> 2] * I * F;
F = +g[a + 216 >> 2] * I;
q = u - +g[a + 232 >> 2] * I * E;
E = +g[a + 220 >> 2] * I;
u = y - +g[a + 236 >> 2] * I * G;
G = +(k + z * H);
k = +(l + A * H);
a = (c[h >> 2] | 0) + ((c[e >> 2] | 0) * 12 | 0) | 0;
g[a >> 2] = G;
g[a + 4 >> 2] = k;
a = c[h >> 2] | 0;
g[a + ((c[e >> 2] | 0) * 12 | 0) + 8 >> 2] = J;
J = +(o + B * D);
o = +(p + D * C);
e = a + ((c[f >> 2] | 0) * 12 | 0) | 0;
g[e >> 2] = J;
g[e + 4 >> 2] = o;
e = c[h >> 2] | 0;
g[e + ((c[f >> 2] | 0) * 12 | 0) + 8 >> 2] = m;
m = +(s - z * F);
z = +(t - A * F);
f = e + ((c[j >> 2] | 0) * 12 | 0) | 0;
g[f >> 2] = m;
g[f + 4 >> 2] = z;
f = c[h >> 2] | 0;
g[f + ((c[j >> 2] | 0) * 12 | 0) + 8 >> 2] = q;
q = +(w - B * E);
B = +(x - C * E);
j = f + ((c[n >> 2] | 0) * 12 | 0) | 0;
g[j >> 2] = q;
g[j + 4 >> 2] = B;
g[(c[h >> 2] | 0) + ((c[n >> 2] | 0) * 12 | 0) + 8 >> 2] = u;
i = d;
return
}
function Ig(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,
O = 0,
P = 0,
Q = 0,
R = 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;
d = i;
e = a + 160 | 0;
f = c[e >> 2] | 0;
h = b + 28 | 0;
b = c[h >> 2] | 0;
j = b + (f * 12 | 0) | 0;
k = j;
l = +g[k >> 2];
m = +g[k + 4 >> 2];
n = +g[b + (f * 12 | 0) + 8 >> 2];
f = a + 164 | 0;
k = c[f >> 2] | 0;
o = b + (k * 12 | 0) | 0;
p = +g[o >> 2];
q = +g[o + 4 >> 2];
r = +g[b + (k * 12 | 0) + 8 >> 2];
k = a + 168 | 0;
o = c[k >> 2] | 0;
s = b + (o * 12 | 0) | 0;
t = +g[s >> 2];
u = +g[s + 4 >> 2];
v = +g[b + (o * 12 | 0) + 8 >> 2];
o = a + 172 | 0;
s = c[o >> 2] | 0;
w = b + (s * 12 | 0) | 0;
x = +g[w >> 2];
y = +g[w + 4 >> 2];
z = +g[b + (s * 12 | 0) + 8 >> 2];
A = +T(+n);
B = +S(+n);
C = +T(+r);
D = +S(+r);
E = +T(+v);
F = +S(+v);
G = +T(+z);
H = +S(+z);
if ((c[a + 76 >> 2] | 0) == 1) {
I = +g[a + 224 >> 2];
J = +g[a + 232 >> 2];
K = 0;
L = 0;
M = I;
N = J;
O = 1;
P = 1;
Q = n - v - +g[a + 140 >> 2];
R = I + J
} else {
J = +g[a + 124 >> 2];
I = +g[a + 128 >> 2];
U = F * J - E * I;
V = E * J + F * I;
W = +g[a + 108 >> 2] - +g[a + 192 >> 2];
X = +g[a + 112 >> 2] - +g[a + 196 >> 2];
Y = +g[a + 92 >> 2] - +g[a + 176 >> 2];
Z = +g[a + 96 >> 2] - +g[a + 180 >> 2];
_ = B * Y - A * Z;
$ = A * Y + B * Z;
Z = V * (F * W - E * X) - U * (E * W + F * X);
B = V * _ - U * $;
Y = +g[a + 232 >> 2];
A = +g[a + 224 >> 2];
aa = l - t + _;
_ = m - u + $;
K = U;
L = V;
M = A;
N = Y;
O = B;
P = Z;
Q = J * (F * aa + E * _ - W) + I * (F * _ - E * aa - X);
R = +g[a + 216 >> 2] + +g[a + 208 >> 2] + Z * Z * Y + B * A * B
}
if ((c[a + 80 >> 2] | 0) == 1) {
B = +g[a + 152 >> 2];
A = +g[a + 228 >> 2];
Y = +g[a + 236 >> 2];
ba = B * B * (A + Y);
ca = B;
da = 0;
ea = 0;
fa = A;
ga = Y;
ha = B;
ia = B;
ja = r - z - +g[a + 144 >> 2]
} else {
B = +g[a + 132 >> 2];
Y = +g[a + 136 >> 2];
A = H * B - G * Y;
Z = G * B + H * Y;
X = +g[a + 116 >> 2] - +g[a + 200 >> 2];
aa = +g[a + 120 >> 2] - +g[a + 204 >> 2];
E = +g[a + 100 >> 2] - +g[a + 184 >> 2];
_ = +g[a + 104 >> 2] - +g[a + 188 >> 2];
F = D * E - C * _;
I = C * E + D * _;
_ = +g[a + 152 >> 2];
D = _ * (Z * (H * X - G * aa) - A * (G * X + H * aa));
E = _ * (Z * F - A * I);
C = +g[a + 236 >> 2];
W = +g[a + 228 >> 2];
J = p - x + F;
F = q - y + I;
ba = _ * _ * (+g[a + 220 >> 2] + +g[a + 212 >> 2]) + D * D * C + E * W * E;
ca = _;
da = A * _;
ea = Z * _;
fa = W;
ga = C;
ha = E;
ia = D;
ja = B * (H * J + G * F - X) + Y * (H *
F - G * J - aa)
}
aa = R + 0 + ba;
if (aa > 0)
ka = -(Q + ja * ca - +g[a + 148 >> 2]) / aa;
else
ka = 0;
aa = ka * +g[a + 208 >> 2];
ca = ka * +g[a + 212 >> 2];
ja = ka * +g[a + 216 >> 2];
Q = ka * +g[a + 220 >> 2];
ba = +(l + K * aa);
l = +(m + L * aa);
a = j;
g[a >> 2] = ba;
g[a + 4 >> 2] = l;
a = c[h >> 2] | 0;
g[a + ((c[e >> 2] | 0) * 12 | 0) + 8 >> 2] = n + O * ka * M;
M = +(p + da * ca);
p = +(q + ea * ca);
e = a + ((c[f >> 2] | 0) * 12 | 0) | 0;
g[e >> 2] = M;
g[e + 4 >> 2] = p;
e = c[h >> 2] | 0;
g[e + ((c[f >> 2] | 0) * 12 | 0) + 8 >> 2] = r + ha * ka * fa;
fa = +(t - K * ja);
K = +(u - L * ja);
f = e + ((c[k >> 2] | 0) * 12 | 0) | 0;
g[f >> 2] = fa;
g[f + 4 >> 2] = K;
f = c[h >> 2] | 0;
g[f + ((c[k >> 2] | 0) * 12 | 0) + 8 >> 2] = v - P * ka * N;
N = +(x - da *
Q);
da = +(y - ea * Q);
k = f + ((c[o >> 2] | 0) * 12 | 0) | 0;
g[k >> 2] = N;
g[k + 4 >> 2] = da;
g[(c[h >> 2] | 0) + ((c[o >> 2] | 0) * 12 | 0) + 8 >> 2] = z - ia * ka * ga;
i = d;
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;
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 Kg(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 Lg(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 Mg(a, b) {
a = a | 0;
b = +b;
return +(+g[a + 156 >> 2] * +g[a + 256 >> 2] * b)
}
function Ng(a) {
a = a | 0;
return ++g[a + 152 >> 2]
}
function Og(a) {
a = a | 0;
var b = 0,
e = 0,
f = 0,
j = 0,
l = 0,
m = 0;
b = i;
i = i + 16 | 0;
e = b;
f = c[(c[a + 48 >> 2] | 0) + 8 >> 2] | 0;
j = c[(c[a + 52 >> 2] | 0) + 8 >> 2] | 0;
l = c[(c[a + 68 >> 2] | 0) + 56 >> 2] | 0;
m = c[(c[a + 72 >> 2] | 0) + 56 >> 2] | 0;
Rm(2912, e);
c[e >> 2] = f;
Rm(2936, e);
c[e >> 2] = j;
Rm(2968, e);
c[e >> 2] = d[a + 61 >>
0] | 0;
Rm(3E3, e);
c[e >> 2] = l;
Rm(3040, e);
c[e >> 2] = m;
Rm(3072, e);
h[k >> 3] = +g[a + 152 >> 2];
c[e >> 2] = c[k >> 2];
c[e + 4 >> 2] = c[k + 4 >> 2];
Rm(3104, e);
c[e >> 2] = c[a + 56 >> 2];
Rm(3128, e);
i = b;
return
}
function Pg(a) {
a = a | 0;
return
}
function Qg(a) {
a = a | 0;
var b = 0;
b = i;
sn(a);
i = b;
return
}
function Rg(a, b, d, e, f) {
a = a | 0;
b = b | 0;
d = d | 0;
e = e | 0;
f = f | 0;
var h = 0,
j = 0,
k = 0,
l = 0,
m = 0,
n = 0,
o = 0,
p = 0,
q = 0,
r = 0,
s = 0;
h = i;
c[a + 8 >> 2] = b;
c[a + 12 >> 2] = d;
j = +g[e >> 2] - +g[b + 12 >> 2];
k = e + 4 | 0;
l = +g[k >> 2] - +g[b + 16 >> 2];
m = b + 24 | 0;
n = +g[m >> 2];
o = b + 20 | 0;
p = +g[o >> 2];
q = +(j * n + l * p);
r = +(n * l - j * p);
s = a + 20 |
0;
g[s >> 2] = q;
g[s + 4 >> 2] = r;
r = +g[e >> 2] - +g[d + 12 >> 2];
q = +g[k >> 2] - +g[d + 16 >> 2];
p = +g[d + 24 >> 2];
j = +g[d + 20 >> 2];
l = +(r * p + q * j);
n = +(p * q - r * j);
k = a + 28 | 0;
g[k >> 2] = l;
g[k + 4 >> 2] = n;
n = +g[m >> 2];
l = +g[f >> 2];
j = +g[o >> 2];
r = +g[f + 4 >> 2];
q = +(n * l + j * r);
p = +(n * r - l * j);
f = a + 36 | 0;
g[f >> 2] = q;
g[f + 4 >> 2] = p;
g[a + 44 >> 2] = +g[d + 72 >> 2] - +g[b + 72 >> 2];
i = h;
return
}
function Sg(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;
e = i;
vh(b, d);
c[b >> 2] = 3216;
f = b + 84 | 0;
h = d + 20 | 0;
j = c[h + 4 >> 2] | 0;
l = b + 68 | 0;
c[l >> 2] = c[h >> 2];
c[l + 4 >> 2] = j;
j = d + 28 | 0;
l = c[j + 4 >> 2] | 0;
h = b +
76 | 0;
c[h >> 2] = c[j >> 2];
c[h + 4 >> 2] = l;
l = d + 36 | 0;
h = c[l >> 2] | 0;
j = c[l + 4 >> 2] | 0;
l = f;
c[l >> 2] = h;
c[l + 4 >> 2] = j;
m = (c[k >> 2] = h, +g[k >> 2]);
n = (c[k >> 2] = j, +g[k >> 2]);
o = +Q(+(m * m + n * n));
if (o < 1.1920928955078125E-7) {
p = n;
q = m
} else {
r = 1 / o;
o = m * r;
g[f >> 2] = o;
m = n * r;
g[b + 88 >> 2] = m;
p = m;
q = o
}
o = +-p;
p = +q;
f = b + 92 | 0;
g[f >> 2] = o;
g[f + 4 >> 2] = p;
g[b + 100 >> 2] = +g[d + 44 >> 2];
f = b + 104 | 0;
g[b + 252 >> 2] = 0;
j = d + 52 | 0;
c[f + 0 >> 2] = 0;
c[f + 4 >> 2] = 0;
c[f + 8 >> 2] = 0;
c[f + 12 >> 2] = 0;
g[b + 120 >> 2] = +g[j >> 2];
g[b + 124 >> 2] = +g[d + 56 >> 2];
g[b + 128 >> 2] = +g[d + 64 >> 2];
g[b + 132 >> 2] = +g[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 + 0 >> 2] = 0;
c[d + 4 >> 2] = 0;
c[d + 8 >> 2] = 0;
c[d + 12 >> 2] = 0;
i = e;
return
}
function Tg(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,
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;
e = i;
f = c[b + 48 >> 2] | 0;
h =
c[f + 8 >> 2] | 0;
j = b + 144 | 0;
c[j >> 2] = h;
l = c[b + 52 >> 2] | 0;
m = c[l + 8 >> 2] | 0;
n = b + 148 | 0;
c[n >> 2] = m;
o = f + 44 | 0;
p = c[o >> 2] | 0;
q = c[o + 4 >> 2] | 0;
o = b + 152 | 0;
c[o >> 2] = p;
c[o + 4 >> 2] = q;
o = l + 44 | 0;
r = c[o >> 2] | 0;
s = c[o + 4 >> 2] | 0;
o = b + 160 | 0;
c[o >> 2] = r;
c[o + 4 >> 2] = s;
o = b + 168 | 0;
g[o >> 2] = +g[f + 136 >> 2];
t = b + 172 | 0;
g[t >> 2] = +g[l + 136 >> 2];
u = +g[f + 144 >> 2];
g[b + 176 >> 2] = u;
v = +g[l + 144 >> 2];
g[b + 180 >> 2] = v;
l = c[d + 28 >> 2] | 0;
f = l + (h * 12 | 0) | 0;
w = +g[f >> 2];
x = +g[f + 4 >> 2];
y = +g[l + (h * 12 | 0) + 8 >> 2];
f = d + 32 | 0;
z = c[f >> 2] | 0;
A = z + (h * 12 | 0) | 0;
B = +g[A >> 2];
C = +g[A + 4 >> 2];
D = +g[z + (h * 12 | 0) + 8 >> 2];
h = l + (m * 12 |
0) | 0;
E = +g[h >> 2];
F = +g[h + 4 >> 2];
G = +g[l + (m * 12 | 0) + 8 >> 2];
l = z + (m * 12 | 0) | 0;
H = +g[l >> 2];
I = +g[l + 4 >> 2];
J = +g[z + (m * 12 | 0) + 8 >> 2];
K = +T(+y);
L = +S(+y);
y = +T(+G);
M = +S(+G);
G = +g[b + 68 >> 2] - (c[k >> 2] = p, +g[k >> 2]);
N = +g[b + 72 >> 2] - (c[k >> 2] = q, +g[k >> 2]);
O = L * G - K * N;
P = K * G + L * N;
N = +g[b + 76 >> 2] - (c[k >> 2] = r, +g[k >> 2]);
G = +g[b + 80 >> 2] - (c[k >> 2] = s, +g[k >> 2]);
Q = M * N - y * G;
R = y * N + M * G;
G = E - w + Q - O;
w = F - x + R - P;
x = +g[o >> 2];
F = +g[t >> 2];
E = +g[b + 84 >> 2];
M = +g[b + 88 >> 2];
N = L * E - K * M;
y = K * E + L * M;
M = +N;
E = +y;
t = b + 184 | 0;
g[t >> 2] = M;
g[t + 4 >> 2] = E;
E = O + G;
O = P + w;
P = E * y - O * N;
g[b + 208 >> 2] = P;
M = Q * y -
R * N;
g[b + 212 >> 2] = M;
U = x + F;
V = u * P;
W = v * M;
X = U + P * V + M * W;
if (X > 0)
Y = 1 / X;
else
Y = X;
g[b + 252 >> 2] = Y;
Y = +g[b + 92 >> 2];
Z = +g[b + 96 >> 2];
_ = L * Y - K * Z;
$ = K * Y + L * Z;
Z = +_;
L = +$;
t = b + 192 | 0;
g[t >> 2] = Z;
g[t + 4 >> 2] = L;
L = E * $ - O * _;
g[b + 200 >> 2] = L;
O = Q * $ - R * _;
g[b + 204 >> 2] = O;
R = u * L;
Q = v * O;
E = R + Q;
Z = R * P + Q * M;
Y = v + u;
K = V + W;
g[b + 216 >> 2] = U + L * R + O * Q;
g[b + 220 >> 2] = E;
g[b + 224 >> 2] = Z;
g[b + 228 >> 2] = E;
g[b + 232 >> 2] = Y == 0 ? 1 : Y;
g[b + 236 >> 2] = K;
g[b + 240 >> 2] = Z;
g[b + 244 >> 2] = K;
g[b + 248 >> 2] = X;
do if ((a[b + 136 >> 0] | 0) != 0) {
X = G * N + w * y;
K = +g[b + 124 >> 2];
Z = +g[b + 120 >> 2];
Y = K - Z;
if (Y > 0)
aa = Y;
else
aa = -Y;
if (aa <
.009999999776482582) {
c[b + 140 >> 2] = 3;
break
}
if (X <= Z) {
t = b + 140 | 0;
if ((c[t >> 2] | 0) == 1)
break;
c[t >> 2] = 1;
g[b + 112 >> 2] = 0;
break
}
t = b + 140 | 0;
if (!(X >= K)) {
c[t >> 2] = 0;
g[b + 112 >> 2] = 0;
break
}
if ((c[t >> 2] | 0) != 2) {
c[t >> 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) == 0)
g[b + 116 >> 2] = 0;
t = b + 104 | 0;
if ((a[d + 24 >> 0] | 0) == 0) {
c[t + 0 >> 2] = 0;
c[t + 4 >> 2] = 0;
c[t + 8 >> 2] = 0;
c[t + 12 >> 2] = 0;
ba = B;
ca = C;
da = H;
ea = I;
fa = D;
ga = J;
ha = c[j >> 2] | 0;
ia = c[f >> 2] | 0;
ja = ia + (ha * 12 | 0) | 0;
ka = +ba;
la = +ca;
ma = ja;
na = ma;
g[na >> 2] = ka;
oa = ma + 4 | 0;
pa = oa;
g[pa >>
2] = la;
qa = c[j >> 2] | 0;
ra = c[f >> 2] | 0;
sa = ra + (qa * 12 | 0) + 8 | 0;
g[sa >> 2] = fa;
ta = c[n >> 2] | 0;
ua = ra + (ta * 12 | 0) | 0;
va = +da;
wa = +ea;
xa = ua;
ya = xa;
g[ya >> 2] = va;
za = xa + 4 | 0;
Aa = za;
g[Aa >> 2] = wa;
Ba = c[n >> 2] | 0;
Ca = c[f >> 2] | 0;
Da = Ca + (Ba * 12 | 0) + 8 | 0;
g[Da >> 2] = ga;
i = e;
return
} else {
o = d + 8 | 0;
aa = +g[o >> 2];
w = aa * +g[t >> 2];
g[t >> 2] = w;
t = b + 108 | 0;
G = aa * +g[t >> 2];
g[t >> 2] = G;
t = b + 112 | 0;
K = aa * +g[t >> 2];
g[t >> 2] = K;
t = b + 116 | 0;
aa = +g[o >> 2] * +g[t >> 2];
g[t >> 2] = aa;
X = aa + K;
K = w * _ + N * X;
N = w * $ + X * y;
ba = B - x * K;
ca = C - x * N;
da = H + F * K;
ea = I + F * N;
fa = D - u * (w * L + G + X * P);
ga = J + v * (G + w * O + X * M);
ha = c[j >> 2] |
0;
ia = c[f >> 2] | 0;
ja = ia + (ha * 12 | 0) | 0;
ka = +ba;
la = +ca;
ma = ja;
na = ma;
g[na >> 2] = ka;
oa = ma + 4 | 0;
pa = oa;
g[pa >> 2] = la;
qa = c[j >> 2] | 0;
ra = c[f >> 2] | 0;
sa = ra + (qa * 12 | 0) + 8 | 0;
g[sa >> 2] = fa;
ta = c[n >> 2] | 0;
ua = ra + (ta * 12 | 0) | 0;
va = +da;
wa = +ea;
xa = ua;
ya = xa;
g[ya >> 2] = va;
za = xa + 4 | 0;
Aa = za;
g[Aa >> 2] = wa;
Ba = c[n >> 2] | 0;
Ca = c[f >> 2] | 0;
Da = Ca + (Ba * 12 | 0) + 8 | 0;
g[Da >> 2] = ga;
i = e;
return
}
}
function Ug(b, d) {
b = b | 0;
d = d | 0;
var e = 0,
f = 0,
h = 0,
j = 0,
k = 0,
l = 0,
m = 0,
n = 0,
o = 0,
p = 0,
q = 0,
r = 0,
s = 0,
t = 0,
u = 0,
v = 0,
w = 0,
x = 0,
y = 0,
z = 0,
A = 0,
B = 0,
C = 0,
D = 0,
E = 0,
F = 0,
G = 0,
H = 0,
I = 0,
J = 0,
K = 0,
L = 0,
M = 0,
N = 0,
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;
e = i;
i = i + 64 | 0;
f = e + 44 | 0;
h = e + 32 | 0;
j = e + 24 | 0;
k = e + 16 | 0;
l = e + 8 | 0;
m = e;
n = b + 144 | 0;
o = c[n >> 2] | 0;
p = d + 32 | 0;
q = c[p >> 2] | 0;
r = q + (o * 12 | 0) | 0;
s = +g[r >> 2];
t = +g[r + 4 >> 2];
u = +g[q + (o * 12 | 0) + 8 >> 2];
o = b + 148 | 0;
r = c[o >> 2] | 0;
v = q + (r * 12 | 0) | 0;
w = +g[v >> 2];
x = +g[v + 4 >> 2];
y = +g[q + (r * 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 = +g[b + 184 >> 2];
E = +g[b + 188 >> 2];
F = +g[b + 212 >> 2];
G = +g[b + 208 >> 2];
r = b + 116 | 0;
H = +g[r >> 2];
I = +g[d >> 2] * +g[b + 128 >> 2];
J = H + +g[b + 252 >> 2] * (+g[b + 132 >> 2] - ((w - s) * D + (x - t) * E + y * F - u * G));
K = -I;
L = J < I ? J : I;
I = L < K ? K : L;
g[r >> 2] = I;
L = I - H;
H = D * L;
D = E * L;
M = t - z * D;
N = x + A * D;
O = s - z * H;
P = w + A * H;
Q = u - B * G * L;
R = y + C * F * L
} else {
M = t;
N = x;
O = s;
P = w;
Q = u;
R = y
}
y = P - O;
u = N - M;
r = b + 192 | 0;
d = b + 196 | 0;
q = b + 204 | 0;
v = b + 200 | 0;
w = y * +g[r >> 2] + u * +g[d >> 2] + R * +g[q >> 2] - Q * +g[v >> 2];
s =
R - Q;
if ((a[b + 136 >> 0] | 0) != 0 ? (S = b + 140 | 0, (c[S >> 2] | 0) != 0) : 0) {
T = b + 184 | 0;
U = b + 188 | 0;
V = b + 212 | 0;
W = b + 208 | 0;
X = b + 104 | 0;
x = +g[X >> 2];
Y = b + 108 | 0;
t = +g[Y >> 2];
Z = b + 112 | 0;
L = +g[Z >> 2];
_ = b + 216 | 0;
F = -w;
G = -s;
H = -(y * +g[T >> 2] + u * +g[U >> 2] + R * +g[V >> 2] - Q * +g[W >> 2]);
g[h >> 2] = F;
g[h + 4 >> 2] = G;
g[h + 8 >> 2] = H;
Gm(f, _, h);
g[X >> 2] = +g[f >> 2] + +g[X >> 2];
h = f + 4 | 0;
g[Y >> 2] = +g[h >> 2] + +g[Y >> 2];
$ = f + 8 | 0;
H = +g[$ >> 2] + +g[Z >> 2];
g[Z >> 2] = H;
aa = c[S >> 2] | 0;
if ((aa | 0) == 2) {
u = H < 0 ? H : 0;
g[Z >> 2] = u;
ba = u
} else if ((aa | 0) == 1) {
u = H > 0 ? H : 0;
g[Z >> 2] = u;
ba = u
} else
ba = H;
H = ba - L;
ba = G - H * +g[b + 244 >>
2];
g[j >> 2] = F - +g[b + 240 >> 2] * H;
g[j + 4 >> 2] = ba;
Hm(k, _, j);
ba = x + +g[k >> 2];
H = t + +g[k + 4 >> 2];
g[X >> 2] = ba;
g[Y >> 2] = H;
F = ba - x;
x = H - t;
t = +g[Z >> 2] - L;
g[f >> 2] = F;
g[h >> 2] = x;
g[$ >> 2] = t;
ca = x + F * +g[q >> 2] + t * +g[V >> 2];
da = F * +g[r >> 2] + t * +g[T >> 2];
ea = F * +g[v >> 2] + x + t * +g[W >> 2];
fa = F * +g[d >> 2] + t * +g[U >> 2];
ga = z * fa;
ha = z * da;
ia = O - ha;
ja = M - ga;
ka = A * da;
la = A * fa;
ma = P + ka;
na = N + la;
oa = B * ea;
pa = C * ca;
qa = Q - oa;
ra = R + pa;
sa = c[n >> 2] | 0;
ta = c[p >> 2] | 0;
ua = ta + (sa * 12 | 0) | 0;
va = +ia;
wa = +ja;
xa = ua;
ya = xa;
g[ya >> 2] = va;
za = xa + 4 | 0;
Aa = za;
g[Aa >> 2] = wa;
Ba = c[n >> 2] | 0;
Ca = c[p >> 2] | 0;
Da = Ca +
(Ba * 12 | 0) + 8 | 0;
g[Da >> 2] = qa;
Ea = c[o >> 2] | 0;
Fa = Ca + (Ea * 12 | 0) | 0;
Ga = +ma;
Ha = +na;
Ia = Fa;
Ja = Ia;
g[Ja >> 2] = Ga;
Ka = Ia + 4 | 0;
La = Ka;
g[La >> 2] = Ha;
Ma = c[o >> 2] | 0;
Na = c[p >> 2] | 0;
Oa = Na + (Ma * 12 | 0) + 8 | 0;
g[Oa >> 2] = ra;
i = e;
return
}
g[m >> 2] = -w;
g[m + 4 >> 2] = -s;
Hm(l, b + 216 | 0, m);
s = +g[l >> 2];
m = b + 104 | 0;
g[m >> 2] = s + +g[m >> 2];
w = +g[l + 4 >> 2];
l = b + 108 | 0;
g[l >> 2] = w + +g[l >> 2];
ca = w + s * +g[q >> 2];
da = s * +g[r >> 2];
ea = s * +g[v >> 2] + w;
fa = s * +g[d >> 2];
ga = z * fa;
ha = z * da;
ia = O - ha;
ja = M - ga;
ka = A * da;
la = A * fa;
ma = P + ka;
na = N + la;
oa = B * ea;
pa = C * ca;
qa = Q - oa;
ra = R + pa;
sa = c[n >> 2] | 0;
ta = c[p >> 2] | 0;
ua =
ta + (sa * 12 | 0) | 0;
va = +ia;
wa = +ja;
xa = ua;
ya = xa;
g[ya >> 2] = va;
za = xa + 4 | 0;
Aa = za;
g[Aa >> 2] = wa;
Ba = c[n >> 2] | 0;
Ca = c[p >> 2] | 0;
Da = Ca + (Ba * 12 | 0) + 8 | 0;
g[Da >> 2] = qa;
Ea = c[o >> 2] | 0;
Fa = Ca + (Ea * 12 | 0) | 0;
Ga = +ma;
Ha = +na;
Ia = Fa;
Ja = Ia;
g[Ja >> 2] = Ga;
Ka = Ia + 4 | 0;
La = Ka;
g[La >> 2] = Ha;
Ma = c[o >> 2] | 0;
Na = c[p >> 2] | 0;
Oa = Na + (Ma * 12 | 0) + 8 | 0;
g[Oa >> 2] = ra;
i = e;
return
}
function Vg(b, d) {
b = b | 0;
d = d | 0;
var e = 0,
f = 0,
h = 0,
j = 0,
k = 0,
l = 0,
m = 0,
n = 0,
o = 0,
p = 0,
q = 0,
r = 0,
s = 0,
t = 0,
u = 0,
v = 0,
w = 0,
x = 0,
y = 0,
z = 0,
A = 0,
B = 0,
C = 0,
D = 0,
E = 0,
F = 0,
G = 0,
H = 0,
I = 0,
J = 0,
K = 0,
L = 0,
M = 0,
N = 0,
O = 0,
P = 0,
Q = 0,
R = 0,
U = 0,
V = 0,
W = 0,
X = 0,
Y = 0,
Z = 0,
_ = 0,
$ = 0,
aa = 0,
ba = 0;
e = i;
i = i + 64 | 0;
f = e + 24 | 0;
h = e + 12 | 0;
j = e;
k = b + 144 | 0;
l = c[k >> 2] | 0;
m = d + 28 | 0;
d = c[m >> 2] | 0;
n = d + (l * 12 | 0) | 0;
o = +g[n >> 2];
p = +g[n + 4 >> 2];
q = +g[d + (l * 12 | 0) + 8 >> 2];
l = b + 148 | 0;
n = c[l >> 2] | 0;
r = d + (n * 12 | 0) | 0;
s = +g[r >> 2];
t = +g[r + 4 >> 2];
u = +g[d + (n * 12 | 0) + 8 >> 2];
v = +T(+q);
w = +S(+q);
x = +T(+u);
y = +S(+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];
if (I > 0)
P = I;
else
P = -I;
if (H > 0)
Q = H;
else
Q = -H;
do if ((a[b + 136 >> 0] | 0) != 0) {
x = J * D + K * y;
w = +g[b + 124 >> 2];
L = +g[b + 120 >> 2];
v = w - L;
if (v > 0)
R = v;
else
R = -v;
if (R < .009999999776482582) {
v = x < .20000000298023224 ? x : .20000000298023224;
if (x > 0)
U = x;
else
U = -x;
V = v < -.20000000298023224 ? -.20000000298023224 : v;
W = 1;
X = P > U ? P : U;
break
}
if (x <= L) {
v = x - L + .004999999888241291;
Y = v < 0 ? v : 0;
v = L - x;
V = Y < -.20000000298023224 ? -.20000000298023224 : Y;
W = 1;
X = P > v ? P : v;
break
}
if (x >= w) {
v = x - w;
w = v + -.004999999888241291;
x = w < .20000000298023224 ? w : .20000000298023224;
V = x < 0 ? 0 : x;
W = 1;
X = P > v ? P : v
} else {
V = 0;
W = 0;
X = P
}
} else {
V = 0;
W = 0;
X = P
}
while (0);
P = z + A;
U = B * M;
R = C * F;
y = F * R + (P + M * U);
D = R + U;
if (W) {
v = E * R + G * U;
U = B + C;
R = B * G;
x = C * E;
w = x + R;
g[f >> 2] = y;
g[f + 4 >> 2] = D;
g[f + 8 >> 2] = v;
g[f + 12 >> 2] = D;
g[f + 16 >> 2] = U == 0 ? 1 : U;
g[f + 20 >> 2] = w;
g[f + 24 >> 2] = v;
g[f + 28 >> 2] = w;
g[f + 32 >> 2] = E * x + (P + G * R);
g[j >> 2] = -I;
g[j + 4 >> 2] = -H;
g[j + 8 >> 2] = -V;
Gm(h, f, j);
Z = +g[h >> 2];
_ =
+g[h + 8 >> 2];
$ = +g[h + 4 >> 2]
} else {
V = B + C;
R = V == 0 ? 1 : V;
V = -I;
I = -H;
H = R * y - D * D;
if (H != 0)
aa = 1 / H;
else
aa = H;
Z = (R * V - D * I) * aa;
_ = 0;
$ = (y * I - D * V) * aa
}
aa = J * _ + N * Z;
N = K * _ + O * Z;
O = +(o - z * aa);
o = +(p - z * N);
h = (c[m >> 2] | 0) + ((c[k >> 2] | 0) * 12 | 0) | 0;
g[h >> 2] = O;
g[h + 4 >> 2] = o;
h = c[m >> 2] | 0;
g[h + ((c[k >> 2] | 0) * 12 | 0) + 8 >> 2] = q - B * (G * _ + ($ + M * Z));
M = +(s + A * aa);
aa = +(t + A * N);
k = h + ((c[l >> 2] | 0) * 12 | 0) | 0;
g[k >> 2] = M;
g[k + 4 >> 2] = aa;
g[(c[m >> 2] | 0) + ((c[l >> 2] | 0) * 12 | 0) + 8 >> 2] = u + C * (E * _ + ($ + F * Z));
if (!(X <= .004999999888241291)) {
ba = 0;
i = e;
return ba | 0
}
ba = Q <= .03490658849477768;
i = e;
return ba |
0
}
function Wg(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 Xg(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 Yg(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 Zg(a, b) {
a = a | 0;
b = +b;
return +(+g[a + 108 >> 2] * b)
}
function _g(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 $g(b) {
b = b | 0;
return (a[b + 136 >> 0] | 0) != 0 | 0
}
function ah(f, h) {
f = f | 0;
h = h | 0;
var j = 0,
k = 0,
l = 0,
m = 0,
n = 0;
j = i;
k = f + 136 | 0;
if ((h & 1 | 0) == (d[k >> 0] | 0 | 0)) {
i = j;
return
}
l = c[f + 48 >> 2] | 0;
m = l + 4 | 0;
n = e[m >> 1] | 0;
if ((n & 2 | 0) == 0) {
b[m >> 1] = n | 2;
g[l + 160 >> 2] = 0
}
l = c[f + 52 >> 2] | 0;
n = l + 4 | 0;
m = e[n >> 1] | 0;
if ((m & 2 | 0) == 0) {
b[n >> 1] = m | 2;
g[l + 160 >> 2] = 0
}
a[k >> 0] = h & 1;
g[f + 112 >> 2] = 0;
i = j;
return
}
function bh(b) {
b = b | 0;
return (a[b + 137 >> 0] | 0) != 0 | 0
}
function ch(d, f) {
d = d | 0;
f = f | 0;
var h = 0,
j = 0,
k = 0,
l = 0,
m = 0,
n = 0;
h = i;
j = c[d + 48 >> 2] | 0;
k = j + 4 | 0;
l = e[k >> 1] | 0;
if ((l & 2 |
0) == 0) {
b[k >> 1] = l | 2;
g[j + 160 >> 2] = 0
}
j = c[d + 52 >> 2] | 0;
l = j + 4 | 0;
k = e[l >> 1] | 0;
if ((k & 2 | 0) != 0) {
m = d + 137 | 0;
n = f & 1;
a[m >> 0] = n;
i = h;
return
}
b[l >> 1] = k | 2;
g[j + 160 >> 2] = 0;
m = d + 137 | 0;
n = f & 1;
a[m >> 0] = n;
i = h;
return
}
function dh(a, d) {
a = a | 0;
d = +d;
var f = 0,
h = 0,
j = 0,
k = 0,
l = 0;
f = i;
h = c[a + 48 >> 2] | 0;
j = h + 4 | 0;
k = e[j >> 1] | 0;
if ((k & 2 | 0) == 0) {
b[j >> 1] = k | 2;
g[h + 160 >> 2] = 0
}
h = c[a + 52 >> 2] | 0;
k = h + 4 | 0;
j = e[k >> 1] | 0;
if ((j & 2 | 0) != 0) {
l = a + 132 | 0;
g[l >> 2] = d;
i = f;
return
}
b[k >> 1] = j | 2;
g[h + 160 >> 2] = 0;
l = a + 132 | 0;
g[l >> 2] = d;
i = f;
return
}
function eh(a, b) {
a = a | 0;
b = +b;
return +(+g[a + 116 >> 2] *
b)
}
function fh(a) {
a = a | 0;
var b = 0,
e = 0,
f = 0,
j = 0,
l = 0;
b = i;
i = i + 16 | 0;
e = b;
f = c[(c[a + 48 >> 2] | 0) + 8 >> 2] | 0;
j = c[(c[a + 52 >> 2] | 0) + 8 >> 2] | 0;
Rm(3264, e);
c[e >> 2] = f;
Rm(3296, e);
c[e >> 2] = j;
Rm(3328, e);
c[e >> 2] = d[a + 61 >> 0] | 0;
Rm(3360, e);
l = +g[a + 72 >> 2];
h[k >> 3] = +g[a + 68 >> 2];
c[e >> 2] = c[k >> 2];
c[e + 4 >> 2] = c[k + 4 >> 2];
j = e + 8 | 0;
h[k >> 3] = l;
c[j >> 2] = c[k >> 2];
c[j + 4 >> 2] = c[k + 4 >> 2];
Rm(3400, e);
l = +g[a + 80 >> 2];
h[k >> 3] = +g[a + 76 >> 2];
c[e >> 2] = c[k >> 2];
c[e + 4 >> 2] = c[k + 4 >> 2];
j = e + 8 | 0;
h[k >> 3] = l;
c[j >> 2] = c[k >> 2];
c[j + 4 >> 2] = c[k + 4 >> 2];
Rm(3448, e);
l = +g[a + 88 >> 2];
h[k >> 3] = +g[a +
84 >> 2];
c[e >> 2] = c[k >> 2];
c[e + 4 >> 2] = c[k + 4 >> 2];
j = e + 8 | 0;
h[k >> 3] = l;
c[j >> 2] = c[k >> 2];
c[j + 4 >> 2] = c[k + 4 >> 2];
Rm(3496, e);
h[k >> 3] = +g[a + 100 >> 2];
c[e >> 2] = c[k >> 2];
c[e + 4 >> 2] = c[k + 4 >> 2];
Rm(3536, e);
c[e >> 2] = d[a + 136 >> 0] | 0;
Rm(3568, e);
h[k >> 3] = +g[a + 120 >> 2];
c[e >> 2] = c[k >> 2];
c[e + 4 >> 2] = c[k + 4 >> 2];
Rm(3600, e);
h[k >> 3] = +g[a + 124 >> 2];
c[e >> 2] = c[k >> 2];
c[e + 4 >> 2] = c[k + 4 >> 2];
Rm(3640, e);
c[e >> 2] = d[a + 137 >> 0] | 0;
Rm(3680, e);
h[k >> 3] = +g[a + 132 >> 2];
c[e >> 2] = c[k >> 2];
c[e + 4 >> 2] = c[k + 4 >> 2];
Rm(3712, e);
h[k >> 3] = +g[a + 128 >> 2];
c[e >> 2] = c[k >> 2];
c[e + 4 >> 2] = c[k + 4 >> 2];
Rm(3744, e);
c[e >> 2] = c[a + 56 >> 2];
Rm(3776, e);
i = b;
return
}
function gh(a) {
a = a | 0;
return
}
function hh(a) {
a = a | 0;
var b = 0;
b = i;
sn(a);
i = b;
return
}
function ih(a, b) {
a = a | 0;
b = b | 0;
var d = 0,
e = 0,
f = 0,
h = 0;
d = i;
vh(a, b);
c[a >> 2] = 3872;
e = b + 20 | 0;
f = c[e + 4 >> 2] | 0;
h = a + 68 | 0;
c[h >> 2] = c[e >> 2];
c[h + 4 >> 2] = f;
f = b + 28 | 0;
h = c[f + 4 >> 2] | 0;
e = a + 76 | 0;
c[e >> 2] = c[f >> 2];
c[e + 4 >> 2] = h;
g[a + 84 >> 2] = +g[b + 36 >> 2];
g[a + 160 >> 2] = 0;
g[a + 92 >> 2] = 0;
c[a + 164 >> 2] = 0;
g[a + 88 >> 2] = 0;
i = d;
return
}
function jh(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,
R = 0,
U = 0,
V = 0,
W = 0,
X = 0,
Y = 0,
Z = 0;
e = i;
f = c[b + 48 >> 2] | 0;
h = c[f + 8 >> 2] | 0;
j = b + 96 | 0;
c[j >> 2] = h;
l = c[b + 52 >> 2] | 0;
m = c[l + 8 >> 2] | 0;
n = b + 100 | 0;
c[n >> 2] = m;
o = f + 44 | 0;
p = c[o >> 2] | 0;
q = c[o + 4 >> 2] | 0;
o = b + 128 | 0;
c[o >> 2] = p;
c[o + 4 >> 2] = q;
o = l + 44 | 0;
r = c[o >> 2] | 0;
s = c[o + 4 >> 2] | 0;
o = b + 136 | 0;
c[o >> 2] = r;
c[o + 4 >> 2] = s;
s = b + 144 | 0;
g[s >> 2] = +g[f + 136 >> 2];
o = b + 148 | 0;
g[o >> 2] = +g[l + 136 >> 2];
t = b + 152 | 0;
g[t >> 2] = +g[f + 144 >> 2];
f = b + 156 | 0;
g[f >> 2] = +g[l + 144 >> 2];
l = c[d + 28 >> 2] | 0;
u = l + (h * 12 | 0) | 0;
v = +g[u >> 2];
w = +g[u + 4 >> 2];
x = +g[l + (h * 12 | 0) + 8 >> 2];
u = d + 32 | 0;
y = c[u >> 2] | 0;
z = y + (h * 12 | 0) | 0;
A = +g[z >> 2];
B = +g[z + 4 >> 2];
C = +g[y + (h * 12 | 0) + 8 >> 2];
h = l + (m * 12 | 0) | 0;
D = +g[h >> 2];
E = +g[h + 4 >> 2];
F = +g[l + (m * 12 | 0) + 8 >> 2];
l = y + (m * 12 | 0) | 0;
G = +g[l >> 2];
H = +g[l + 4 >> 2];
I = +g[y + (m * 12 | 0) + 8 >> 2];
J = +T(+x);
K = +S(+x);
x = +T(+F);
L = +S(+F);
F = +g[b + 68 >> 2] - (c[k >> 2] = p, +g[k >> 2]);
M = +g[b + 72 >> 2] - (c[k >> 2] = q, +g[k >> 2]);
N = K * F - J * M;
O = J * F + K * M;
M = +N;
K = +O;
q = b + 112 | 0;
g[q >> 2] = M;
g[q + 4 >> 2] = K;
K = +g[b + 76 >> 2] - (c[k >> 2] = r, +g[k >> 2]);
M = +g[b + 80 >> 2] - +g[b + 140 >> 2];
F = L * K - x * M;
J = x * K + L * M;
M =
+F;
L = +J;
r = b + 120 | 0;
g[r >> 2] = M;
g[r + 4 >> 2] = L;
r = b + 104 | 0;
L = D + F - v - N;
v = E + J - w - O;
w = +L;
E = +v;
q = r;
g[q >> 2] = w;
g[q + 4 >> 2] = E;
q = b + 108 | 0;
E = +Q(+(L * L + v * v));
g[b + 88 >> 2] = E;
c[b + 164 >> 2] = E - +g[b + 84 >> 2] > 0 ? 2 : 0;
if (!(E > .004999999888241291)) {
g[r >> 2] = 0;
g[q >> 2] = 0;
g[b + 160 >> 2] = 0;
g[b + 92 >> 2] = 0;
i = e;
return
}
w = 1 / E;
E = w * L;
g[r >> 2] = E;
L = w * v;
g[q >> 2] = L;
v = N * L - O * E;
w = L * F - E * J;
D = +g[s >> 2];
M = +g[t >> 2];
K = +g[o >> 2];
x = +g[f >> 2];
P = K + (D + v * v * M) + w * w * x;
if (P != 0)
R = 1 / P;
else
R = 0;
g[b + 160 >> 2] = R;
if ((a[d + 24 >> 0] | 0) == 0) {
g[b + 92 >> 2] = 0;
U = A;
V = B;
W = G;
X = H;
Y = C;
Z = I
} else {
f = b + 92 | 0;
R = +g[d +
8 >> 2] * +g[f >> 2];
g[f >> 2] = R;
P = E * R;
E = R * L;
U = A - P * D;
V = B - E * D;
W = G + P * K;
X = H + E * K;
Y = C - M * (E * N - P * O);
Z = I + x * (E * F - P * J)
}
J = +U;
U = +V;
f = (c[u >> 2] | 0) + ((c[j >> 2] | 0) * 12 | 0) | 0;
g[f >> 2] = J;
g[f + 4 >> 2] = U;
f = c[u >> 2] | 0;
g[f + ((c[j >> 2] | 0) * 12 | 0) + 8 >> 2] = Y;
Y = +W;
W = +X;
j = f + ((c[n >> 2] | 0) * 12 | 0) | 0;
g[j >> 2] = Y;
g[j + 4 >> 2] = W;
g[(c[u >> 2] | 0) + ((c[n >> 2] | 0) * 12 | 0) + 8 >> 2] = Z;
i = e;
return
}
function kh(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;
d = i;
e = a + 96 | 0;
f = c[e >> 2] | 0;
h = b + 32 | 0;
j = c[h >> 2] | 0;
k = j + (f * 12 |
0) | 0;
l = k;
m = +g[l >> 2];
n = +g[l + 4 >> 2];
o = +g[j + (f * 12 | 0) + 8 >> 2];
f = a + 100 | 0;
l = c[f >> 2] | 0;
p = j + (l * 12 | 0) | 0;
q = +g[p >> 2];
r = +g[p + 4 >> 2];
s = +g[j + (l * 12 | 0) + 8 >> 2];
t = +g[a + 116 >> 2];
u = +g[a + 112 >> 2];
v = +g[a + 124 >> 2];
w = +g[a + 120 >> 2];
x = +g[a + 88 >> 2] - +g[a + 84 >> 2];
y = +g[a + 104 >> 2];
z = +g[a + 108 >> 2];
A = (q - s * v - (m - o * t)) * y + (r + s * w - (n + o * u)) * z;
if (x < 0)
B = A + x * +g[b + 4 >> 2];
else
B = A;
b = a + 92 | 0;
A = +g[b >> 2];
x = A - B * +g[a + 160 >> 2];
B = x > 0 ? 0 : x;
g[b >> 2] = B;
x = B - A;
A = y * x;
y = z * x;
x = +g[a + 144 >> 2];
z = o - +g[a + 152 >> 2] * (u * y - A * t);
t = +g[a + 148 >> 2];
u = s + +g[a + 156 >> 2] * (y * w - A * v);
v = +(m - x * A);
m = +(n -
x * y);
a = k;
g[a >> 2] = v;
g[a + 4 >> 2] = m;
a = c[h >> 2] | 0;
g[a + ((c[e >> 2] | 0) * 12 | 0) + 8 >> 2] = z;
z = +(q + A * t);
A = +(r + y * t);
e = a + ((c[f >> 2] | 0) * 12 | 0) | 0;
g[e >> 2] = z;
g[e + 4 >> 2] = A;
g[(c[h >> 2] | 0) + ((c[f >> 2] | 0) * 12 | 0) + 8 >> 2] = u;
i = d;
return
}
function lh(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 = i;
e = a + 96 | 0;
f = c[e >> 2] | 0;
h = b + 28 | 0;
b = c[h >> 2] | 0;
j = b + (f * 12 | 0) | 0;
k = j;
l = +g[k >> 2];
m = +g[k + 4 >> 2];
n = +g[b + (f * 12 | 0) + 8 >> 2];
f = a + 100 | 0;
k = c[f >> 2] | 0;
o = b + (k * 12 | 0) | 0;
p = +g[o >> 2];
q = +g[o + 4 >> 2];
r = +g[b +
(k * 12 | 0) + 8 >> 2];
s = +T(+n);
t = +S(+n);
u = +T(+r);
v = +S(+r);
w = +g[a + 68 >> 2] - +g[a + 128 >> 2];
x = +g[a + 72 >> 2] - +g[a + 132 >> 2];
y = t * w - s * x;
z = s * w + t * x;
x = +g[a + 76 >> 2] - +g[a + 136 >> 2];
t = +g[a + 80 >> 2] - +g[a + 140 >> 2];
w = v * x - u * t;
s = u * x + v * t;
t = p + w - l - y;
v = q + s - m - z;
x = +Q(+(t * t + v * v));
if (x < 1.1920928955078125E-7) {
A = 0;
B = t;
C = v
} else {
u = 1 / x;
A = x;
B = t * u;
C = v * u
}
k = a + 84 | 0;
u = A - +g[k >> 2];
v = u < .20000000298023224 ? u : .20000000298023224;
u = -(+g[a + 160 >> 2] * (v < 0 ? 0 : v));
v = B * u;
B = C * u;
u = +g[a + 144 >> 2];
C = n - +g[a + 152 >> 2] * (y * B - z * v);
z = +g[a + 148 >> 2];
y = r + +g[a + 156 >> 2] * (w * B - s * v);
s = +(l - u *
v);
l = +(m - u * B);
a = j;
g[a >> 2] = s;
g[a + 4 >> 2] = l;
a = c[h >> 2] | 0;
g[a + ((c[e >> 2] | 0) * 12 | 0) + 8 >> 2] = C;
C = +(p + z * v);
v = +(q + z * B);
e = a + ((c[f >> 2] | 0) * 12 | 0) | 0;
g[e >> 2] = C;
g[e + 4 >> 2] = v;
g[(c[h >> 2] | 0) + ((c[f >> 2] | 0) * 12 | 0) + 8 >> 2] = y;
i = d;
return A - +g[k >> 2] < .004999999888241291 | 0
}
function mh(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 nh(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 oh(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 ph(a, b) {
a = a | 0;
b = +b;
return 0
}
function qh(a) {
a = a | 0;
var b = 0,
e = 0,
f = 0,
j = 0,
l = 0;
b = i;
i = i + 16 | 0;
e = b;
f = c[(c[a + 48 >> 2] | 0) + 8 >> 2] | 0;
j = c[(c[a + 52 >> 2] | 0) + 8 >> 2] | 0;
Rm(3920, e);
c[e >> 2] = f;
Rm(3944, e);
c[e >> 2] = j;
Rm(3976, e);
c[e >> 2] = d[a + 61 >> 0] | 0;
Rm(4008, e);
l = +g[a + 72 >>
2];
h[k >> 3] = +g[a + 68 >> 2];
c[e >> 2] = c[k >> 2];
c[e + 4 >> 2] = c[k + 4 >> 2];
j = e + 8 | 0;
h[k >> 3] = l;
c[j >> 2] = c[k >> 2];
c[j + 4 >> 2] = c[k + 4 >> 2];
Rm(4048, e);
l = +g[a + 80 >> 2];
h[k >> 3] = +g[a + 76 >> 2];
c[e >> 2] = c[k >> 2];
c[e + 4 >> 2] = c[k + 4 >> 2];
j = e + 8 | 0;
h[k >> 3] = l;
c[j >> 2] = c[k >> 2];
c[j + 4 >> 2] = c[k + 4 >> 2];
Rm(4096, e);
h[k >> 3] = +g[a + 84 >> 2];
c[e >> 2] = c[k >> 2];
c[e + 4 >> 2] = c[k + 4 >> 2];
Rm(4144, e);
c[e >> 2] = c[a + 56 >> 2];
Rm(4176, e);
i = b;
return
}
function rh(a) {
a = a | 0;
return
}
function sh(a) {
a = a | 0;
var b = 0;
b = i;
sn(a);
i = b;
return
}
function th(a, b) {
a = a | 0;
b = b | 0;
var d = 0,
e = 0,
f = 0,
g = 0,
h = 0,
j = 0,
k = 0,
l = 0,
m = 0,
n = 0,
o = 0,
p = 0,
q = 0,
r = 0;
d = i;
do switch (c[a >> 2] | 0) {
case 5:
e = Em(b, 168) | 0;
if ((e | 0) == 0)
f = 0;
else {
vf(e, a);
f = e
}
g = f;
break;
case 2:
e = Em(b, 256) | 0;
if ((e | 0) == 0)
h = 0;
else {
Sg(e, a);
h = e
}
g = h;
break;
case 7:
e = Em(b, 224) | 0;
if ((e | 0) == 0)
j = 0;
else {
Sh(e, a);
j = e
}
g = j;
break;
case 4:
e = Em(b, 196) | 0;
if ((e | 0) == 0)
k = 0;
else {
di(e, a);
k = e
}
g = k;
break;
case 3:
e = Em(b, 176) | 0;
if ((e | 0) == 0)
l = 0;
else {
Yf(e, a);
l = e
}
g = l;
break;
case 9:
e = Em(b, 180) | 0;
if ((e | 0) == 0)
m = 0;
else {
ig(e, a);
m = e
}
g = m;
break;
case 11:
e = Em(b, 192) | 0;
if ((e | 0) == 0)
n = 0;
else {
Jf(e, a);
n = e
}
g = n;
break;
case 1:
e = Em(b, 228) | 0;
if ((e | 0) == 0)
o = 0;
else {
Ah(e, a);
o = e
}
g = o;
break;
case 8:
e = Em(b, 208) | 0;
if ((e | 0) == 0)
p = 0;
else {
ug(e, a);
p = e
}
g = p;
break;
case 6:
e = Em(b, 276) | 0;
if ((e | 0) == 0)
q = 0;
else {
Fg(e, a);
q = e
}
g = q;
break;
case 10:
e = Em(b, 168) | 0;
if ((e | 0) == 0)
r = 0;
else {
ih(e, a);
r = e
}
g = r;
break;
default:
g = 0
}
while (0);
i = d;
return g | 0
}
function uh(a, b) {
a = a | 0;
b = b | 0;
var d = 0;
d = i;
eb[c[(c[a >> 2] | 0) + 24 >> 2] & 127](a);
do switch (c[a + 4 >> 2] | 0) {
case 9:
Fm(b, a, 180);
break;
case 2:
Fm(b, a, 256);
break;
case 1:
Fm(b, a, 228);
break;
case 7:
Fm(b, a, 224);
break;
case 8:
Fm(b,
a, 208);
break;
case 5:
Fm(b, a, 168);
break;
case 3:
Fm(b, a, 176);
break;
case 11:
Fm(b, a, 192);
break;
case 4:
Fm(b, a, 196);
break;
case 10:
Fm(b, a, 168);
break;
case 6:
Fm(b, a, 276);
break;
default:
}
while (0);
i = d;
return
}
function vh(b, d) {
b = b | 0;
d = d | 0;
var e = 0;
e = i;
c[b >> 2] = 4264;
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 + 0 >> 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;
i = e;
return
}
function wh(a) {
a = a | 0;
a = i;
i = i + 16 | 0;
Rm(4312, a);
i = a;
return
}
function xh(a) {
a = a | 0;
return
}
function yh(a) {
a = a | 0;
var b = 0;
b = i;
sn(a);
i = b;
return
}
function zh(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;
f = i;
c[a + 8 >> 2] = b;
c[a + 12 >> 2] = d;
h = +g[e >> 2] - +g[b + 12 >> 2];
j = e + 4 | 0;
k = +g[j >> 2] - +g[b + 16 >> 2];
l = +g[b + 24 >> 2];
m = +g[b + 20 >> 2];
n = +(h * l + k * m);
o = +(l * k - h * m);
p = a + 20 | 0;
g[p >> 2] = n;
g[p + 4 >> 2] = o;
o = +g[e >> 2] - +g[d + 12 >> 2];
n = +g[j >> 2] - +g[d + 16 >> 2];
m = +g[d + 24 >> 2];
h = +g[d + 20 >> 2];
k = +(o * m + n * h);
l = +(m *
n - o * h);
j = a + 28 | 0;
g[j >> 2] = k;
g[j + 4 >> 2] = l;
g[a + 36 >> 2] = +g[d + 72 >> 2] - +g[b + 72 >> 2];
i = f;
return
}
function Ah(b, d) {
b = b | 0;
d = d | 0;
var e = 0,
f = 0,
h = 0,
j = 0;
e = i;
vh(b, d);
c[b >> 2] = 4368;
f = d + 20 | 0;
h = c[f + 4 >> 2] | 0;
j = b + 68 | 0;
c[j >> 2] = c[f >> 2];
c[j + 4 >> 2] = h;
h = d + 28 | 0;
j = c[h + 4 >> 2] | 0;
f = b + 76 | 0;
c[f >> 2] = c[h >> 2];
c[f + 4 >> 2] = j;
g[b + 116 >> 2] = +g[d + 36 >> 2];
j = b + 84 | 0;
f = d + 44 | 0;
c[j + 0 >> 2] = 0;
c[j + 4 >> 2] = 0;
c[j + 8 >> 2] = 0;
c[j + 12 >> 2] = 0;
g[b + 120 >> 2] = +g[f >> 2];
g[b + 124 >> 2] = +g[d + 48 >> 2];
g[b + 104 >> 2] = +g[d + 60 >> 2];
g[b + 108 >> 2] = +g[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;
i = e;
return
}
function Bh(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,
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 = i;
f = c[b + 48 >> 2] | 0;
h = c[f + 8 >> 2] | 0;
j = b + 128 | 0;
c[j >> 2] = h;
l = c[b + 52 >> 2] | 0;
m = c[l + 8 >> 2] | 0;
n = b + 132 | 0;
c[n >> 2] = m;
o = f + 44 | 0;
p = c[o >> 2] | 0;
q = c[o + 4 >> 2] | 0;
o = b + 152 | 0;
c[o >> 2] =
p;
c[o + 4 >> 2] = q;
o = l + 44 | 0;
r = c[o >> 2] | 0;
s = c[o + 4 >> 2] | 0;
o = b + 160 | 0;
c[o >> 2] = r;
c[o + 4 >> 2] = s;
o = b + 168 | 0;
g[o >> 2] = +g[f + 136 >> 2];
t = +g[l + 136 >> 2];
g[b + 172 >> 2] = t;
u = +g[f + 144 >> 2];
g[b + 176 >> 2] = u;
v = +g[l + 144 >> 2];
g[b + 180 >> 2] = v;
l = c[d + 28 >> 2] | 0;
w = +g[l + (h * 12 | 0) + 8 >> 2];
f = d + 32 | 0;
x = c[f >> 2] | 0;
y = x + (h * 12 | 0) | 0;
z = +g[y >> 2];
A = +g[y + 4 >> 2];
B = +g[x + (h * 12 | 0) + 8 >> 2];
C = +g[l + (m * 12 | 0) + 8 >> 2];
l = x + (m * 12 | 0) | 0;
D = +g[l >> 2];
E = +g[l + 4 >> 2];
F = +g[x + (m * 12 | 0) + 8 >> 2];
G = +T(+w);
H = +S(+w);
I = +T(+C);
J = +S(+C);
m = b + 136 | 0;
K = +g[b + 68 >> 2] - (c[k >> 2] = p, +g[k >> 2]);
L = +g[b + 72 >> 2] - (c[k >>
2] = q, +g[k >> 2]);
M = H * K - G * L;
N = G * K + H * L;
L = +M;
H = +N;
q = m;
g[q >> 2] = L;
g[q + 4 >> 2] = H;
H = +g[b + 76 >> 2] - (c[k >> 2] = r, +g[k >> 2]);
L = +g[b + 80 >> 2] - (c[k >> 2] = s, +g[k >> 2]);
K = J * H - I * L;
G = I * H + J * L;
L = +K;
J = +G;
s = b + 144 | 0;
g[s >> 2] = L;
g[s + 4 >> 2] = J;
J = +g[o >> 2];
L = u + v;
o = L == 0;
H = J + t;
s = b + 140 | 0;
g[b + 184 >> 2] = H + u * N * N + v * G * G;
I = -(u * N * M) - v * G * K;
g[b + 196 >> 2] = I;
O = -(u * N) - v * G;
g[b + 208 >> 2] = O;
g[b + 188 >> 2] = I;
g[b + 200 >> 2] = H + u * M * M + v * K * K;
H = u * M + v * K;
g[b + 212 >> 2] = H;
g[b + 192 >> 2] = O;
g[b + 204 >> 2] = H;
g[b + 216 >> 2] = L;
if (L > 0)
P = 1 / L;
else
P = L;
g[b + 220 >> 2] = P;
if ((a[b + 100 >> 0] | 0) == 0 | o)
g[b + 96 >>
2] = 0;
do if ((a[b + 112 >> 0] | 0) == 0 | o)
c[b + 224 >> 2] = 0;
else {
P = C - w - +g[b + 116 >> 2];
L = +g[b + 124 >> 2];
H = +g[b + 120 >> 2];
O = L - H;
if (O > 0)
Q = O;
else
Q = -O;
if (Q < .06981317698955536) {
c[b + 224 >> 2] = 3;
break
}
if (P <= H) {
r = b + 224 | 0;
if ((c[r >> 2] | 0) != 1)
g[b + 92 >> 2] = 0;
c[r >> 2] = 1;
break
}
r = b + 224 | 0;
if (!(P >= L)) {
c[r >> 2] = 0;
g[b + 92 >> 2] = 0;
break
}
if ((c[r >> 2] | 0) != 2)
g[b + 92 >> 2] = 0;
c[r >> 2] = 2
}
while (0);
o = b + 84 | 0;
if ((a[d + 24 >> 0] | 0) == 0) {
c[o + 0 >> 2] = 0;
c[o + 4 >> 2] = 0;
c[o + 8 >> 2] = 0;
c[o + 12 >> 2] = 0;
R = z;
U = A;
V = D;
W = E;
X = B;
Y = F;
Z = c[j >> 2] | 0;
_ = c[f >> 2] | 0;
$ = _ + (Z * 12 | 0) | 0;
aa = +R;
ba = +U;
ca = $;
da =
ca;
g[da >> 2] = aa;
ea = ca + 4 | 0;
fa = ea;
g[fa >> 2] = ba;
ga = c[j >> 2] | 0;
ha = c[f >> 2] | 0;
ia = ha + (ga * 12 | 0) + 8 | 0;
g[ia >> 2] = X;
ja = c[n >> 2] | 0;
ka = ha + (ja * 12 | 0) | 0;
la = +V;
ma = +W;
na = ka;
oa = na;
g[oa >> 2] = la;
pa = na + 4 | 0;
qa = pa;
g[qa >> 2] = ma;
ra = c[n >> 2] | 0;
sa = c[f >> 2] | 0;
ta = sa + (ra * 12 | 0) + 8 | 0;
g[ta >> 2] = Y;
i = e;
return
} else {
r = d + 8 | 0;
Q = +g[r >> 2];
w = Q * +g[o >> 2];
g[o >> 2] = w;
o = b + 88 | 0;
C = Q * +g[o >> 2];
g[o >> 2] = C;
o = b + 92 | 0;
L = Q * +g[o >> 2];
g[o >> 2] = L;
o = b + 96 | 0;
Q = +g[r >> 2] * +g[o >> 2];
g[o >> 2] = Q;
R = z - J * w;
U = A - J * C;
V = D + t * w;
W = E + t * C;
X = B - u * (L + (Q + (C * +g[m >> 2] - w * +g[s >> 2])));
Y = F + v * (L + (Q + (C * K - w *
G)));
Z = c[j >> 2] | 0;
_ = c[f >> 2] | 0;
$ = _ + (Z * 12 | 0) | 0;
aa = +R;
ba = +U;
ca = $;
da = ca;
g[da >> 2] = aa;
ea = ca + 4 | 0;
fa = ea;
g[fa >> 2] = ba;
ga = c[j >> 2] | 0;
ha = c[f >> 2] | 0;
ia = ha + (ga * 12 | 0) + 8 | 0;
g[ia >> 2] = X;
ja = c[n >> 2] | 0;
ka = ha + (ja * 12 | 0) | 0;
la = +V;
ma = +W;
na = ka;
oa = na;
g[oa >> 2] = la;
pa = na + 4 | 0;
qa = pa;
g[qa >> 2] = ma;
ra = c[n >> 2] | 0;
sa = c[f >> 2] | 0;
ta = sa + (ra * 12 | 0) + 8 | 0;
g[ta >> 2] = Y;
i = e;
return
}
}
function Ch(b, d) {
b = b | 0;
d = d | 0;
var e = 0,
f = 0,
h = 0,
j = 0,
k = 0,
l = 0,
m = 0,
n = 0,
o = 0,
p = 0,
q = 0,
r = 0,
s = 0,
t = 0,
u = 0,
v = 0,
w = 0,
x = 0,
y = 0,
z = 0,
A = 0,
B = 0,
C = 0,
D = 0,
E = 0,
F = 0,
G = 0,
H = 0,
I = 0,
J = 0,
K = 0,
L = 0,
M = 0,
N = 0,
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;
e = i;
i = i + 80 | 0;
f = e + 60 | 0;
h = e + 48 | 0;
j = e + 40 | 0;
k = e + 32 | 0;
l = e + 24 | 0;
m = e + 16 | 0;
n = e + 8 | 0;
o = e;
p = b + 128 | 0;
q = c[p >> 2] | 0;
r = d + 32 | 0;
s = c[r >> 2] | 0;
t = s + (q * 12 | 0) | 0;
u = +g[t >> 2];
v = +g[t + 4 >> 2];
w = +g[s + (q * 12 | 0) + 8 >> 2];
q = b + 132 | 0;
t = c[q >> 2] | 0;
x = s + (t * 12 | 0) | 0;
y = +g[x >> 2];
z = +g[x + 4 >> 2];
A = +g[s + (t * 12 | 0) + 8 >> 2];
B = +g[b + 168 >> 2];
C = +g[b + 172 >> 2];
D = +g[b + 176 >> 2];
E = +g[b + 180 >> 2];
t = D + E == 0;
if ((a[b + 100 >> 0] | 0) != 0 ? !((c[b + 224 >> 2] | 0) == 3 | t) : 0) {
s = b + 96 | 0;
F = +g[s >> 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 < G ? H : G;
G = J < I ? I : J;
g[s >> 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 ? (s = b + 224 | 0, !((c[s >> 2] | 0) == 0 | t)) : 0) {
t = b + 148 | 0;
d = b + 144 | 0;
x = b + 140 | 0;
M = b + 136 | 0;
A = y - L * +g[t >> 2] - u + K * +g[x >> 2];
w = z + L * +g[d >> 2] - v - K * +g[M >> 2];
g[f >> 2] = A;
g[f + 4 >> 2] = w;
g[f + 8 >> 2] = L - K;
N = b + 184 | 0;
Gm(h, N, f);
J = +g[h >> 2];
F = -J;
G = +g[h + 4 >> 2];
I = -G;
H = +g[h +
8 >> 2];
O = -H;
h = c[s >> 2] | 0;
do if ((h | 0) == 2) {
s = b + 84 | 0;
f = b + 92 | 0;
P = +g[f >> 2];
Q = P - H;
if (Q > 0) {
R = P * +g[b + 212 >> 2] - w;
g[l >> 2] = P * +g[b + 208 >> 2] - A;
g[l + 4 >> 2] = R;
Hm(m, N, l);
R = +g[m >> 2];
P = +g[m + 4 >> 2];
S = -+g[f >> 2];
g[s >> 2] = R + +g[s >> 2];
T = b + 88 | 0;
g[T >> 2] = P + +g[T >> 2];
g[f >> 2] = 0;
U = P;
V = R;
W = S;
break
} else {
g[s >> 2] = +g[s >> 2] - J;
s = b + 88 | 0;
g[s >> 2] = +g[s >> 2] - G;
g[f >> 2] = Q;
U = I;
V = F;
W = O;
break
}
} else if ((h | 0) == 3) {
f = b + 84 | 0;
g[f >> 2] = +g[f >> 2] - J;
f = b + 88 | 0;
g[f >> 2] = +g[f >> 2] - G;
f = b + 92 | 0;
g[f >> 2] = +g[f >> 2] - H;
U = I;
V = F;
W = O
} else if ((h | 0) == 1) {
f = b + 84 | 0;
s = b + 92 | 0;
Q = +g[s >> 2];
S = Q - H;
if (S < 0) {
R = Q * +g[b + 212 >> 2] - w;
g[j >> 2] = Q * +g[b + 208 >> 2] - A;
g[j + 4 >> 2] = R;
Hm(k, N, j);
R = +g[k >> 2];
Q = +g[k + 4 >> 2];
P = -+g[s >> 2];
g[f >> 2] = R + +g[f >> 2];
T = b + 88 | 0;
g[T >> 2] = Q + +g[T >> 2];
g[s >> 2] = 0;
U = Q;
V = R;
W = P;
break
} else {
g[f >> 2] = +g[f >> 2] - J;
f = b + 88 | 0;
g[f >> 2] = +g[f >> 2] - G;
g[s >> 2] = S;
U = I;
V = F;
W = O;
break
}
} else {
U = I;
V = F;
W = O
}
while (0);
X = W + (U * +g[d >> 2] - V * +g[t >> 2]);
Y = W + (U * +g[M >> 2] - V * +g[x >> 2]);
Z = U;
_ = V;
$ = C * _;
aa = C * Z;
ba = B * _;
ca = B * Z;
da = y + $;
ea = z + aa;
fa = u - ba;
ga = v - ca;
ha = D * Y;
ia = E * X;
ja = K - ha;
ka = L + ia;
la = c[p >> 2] | 0;
ma = c[r >> 2] | 0;
na = ma + (la * 12 | 0) | 0;
oa = +fa;
pa = +ga;
qa = na;
ra = qa;
g[ra >> 2] = oa;
sa = qa + 4 | 0;
ta = sa;
g[ta >> 2] = pa;
ua = c[p >> 2] | 0;
va = c[r >> 2] | 0;
wa = va + (ua * 12 | 0) + 8 | 0;
g[wa >> 2] = ja;
xa = c[q >> 2] | 0;
ya = va + (xa * 12 | 0) | 0;
za = +da;
Aa = +ea;
Ba = ya;
Ca = Ba;
g[Ca >> 2] = za;
Da = Ba + 4 | 0;
Ea = Da;
g[Ea >> 2] = Aa;
Fa = c[q >> 2] | 0;
Ga = c[r >> 2] | 0;
Ha = Ga + (Fa * 12 | 0) + 8 | 0;
g[Ha >> 2] = ka;
i = e;
return
}
x = b + 148 | 0;
M = b + 144 | 0;
t = b + 140 | 0;
d = b + 136 | 0;
V = -(z + L * +g[M >> 2] - v - K * +g[d >> 2]);
g[o >> 2] = -(y - L * +g[x >> 2] - u + K * +g[t >> 2]);
g[o + 4 >> 2] = V;
Hm(n, b + 184 | 0, o);
V = +g[n >> 2];
o = b + 84 | 0;
g[o >> 2] = V + +g[o >> 2];
U = +g[n + 4 >> 2];
n = b + 88 | 0;
g[n >> 2] = U + +g[n >> 2];
X = U * +g[M >> 2] - V * +g[x >> 2];
Y = U * +g[d >> 2] - V * +g[t >> 2];
Z = U;
_ = V;
$ = C * _;
aa = C * Z;
ba = B * _;
ca = B * Z;
da = y + $;
ea = z + aa;
fa = u - ba;
ga = v - ca;
ha = D * Y;
ia = E * X;
ja = K - ha;
ka = L + ia;
la = c[p >> 2] | 0;
ma = c[r >> 2] | 0;
na = ma + (la * 12 | 0) | 0;
oa = +fa;
pa = +ga;
qa = na;
ra = qa;
g[ra >> 2] = oa;
sa = qa + 4 | 0;
ta = sa;
g[ta >> 2] = pa;
ua = c[p >> 2] | 0;
va = c[r >> 2] | 0;
wa = va + (ua * 12 | 0) + 8 | 0;
g[wa >> 2] = ja;
xa = c[q >> 2] | 0;
ya = va + (xa * 12 | 0) | 0;
za = +da;
Aa = +ea;
Ba = ya;
Ca = Ba;
g[Ca >> 2] = za;
Da = Ba + 4 | 0;
Ea = Da;
g[Ea >> 2] = Aa;
Fa = c[q >> 2] | 0;
Ga = c[r >> 2] | 0;
Ha = Ga + (Fa * 12 | 0) + 8 | 0;
g[Ha >> 2] = ka;
i = e;
return
}
function Dh(b, d) {
b = b | 0;
d = d | 0;
var e = 0,
f = 0,
h = 0,
j = 0,
k = 0,
l = 0,
m = 0,
n = 0,
o = 0,
p = 0,
q = 0,
r = 0,
s = 0,
t = 0,
u = 0,
v = 0,
w = 0,
x = 0,
y = 0,
z = 0,
A = 0,
B = 0,
C = 0,
D = 0,
E = 0,
F = 0,
G = 0,
H = 0,
I = 0,
J = 0,
K = 0,
L = 0,
M = 0;
e = i;
f = b + 128 | 0;
h = c[f >> 2] | 0;
j = d + 28 | 0;
d = c[j >> 2] | 0;
k = d + (h * 12 | 0) | 0;
l = k;
m = +g[l >> 2];
n = +g[l + 4 >> 2];
o = +g[d + (h * 12 | 0) + 8 >> 2];
h = b + 132 | 0;
l = c[h >> 2] | 0;
p = d + (l * 12 | 0) | 0;
q = +g[p >> 2];
r = +g[p + 4 >> 2];
s = +g[d + (l * 12 | 0) + 8 >> 2];
l = b + 176 | 0;
d = b + 180 | 0;
if ((a[b + 112 >> 0] | 0) != 0) {
t = +g[d >> 2];
u = +g[l >> 2];
p = c[b + 224 >> 2] | 0;
if ((p | 0) == 0 | t + u == 0) {
v = u;
w = t;
x = o;
y = s;
z = 0
} else {
A = s - o - +g[b + 116 >> 2];
if ((p | 0) == 1) {
B = A - +g[b +
120 >> 2];
C = B + .03490658849477768;
D = C < 0 ? C : 0;
E = -B;
F = -(+g[b + 220 >> 2] * (D < -.13962635397911072 ? -.13962635397911072 : D))
} else if ((p | 0) == 3) {
D = A - +g[b + 120 >> 2];
B = D < .13962635397911072 ? D : .13962635397911072;
D = B < -.13962635397911072 ? -.13962635397911072 : B;
B = -(+g[b + 220 >> 2] * D);
if (D > 0) {
E = D;
F = B
} else {
E = -D;
F = B
}
} else if ((p | 0) == 2) {
B = A - +g[b + 124 >> 2];
A = B + -.03490658849477768;
D = A < .13962635397911072 ? A : .13962635397911072;
E = B;
F = -(+g[b + 220 >> 2] * (D < 0 ? 0 : D))
} else {
E = 0;
F = 0
}
v = u;
w = t;
x = o - F * u;
y = s + F * t;
z = E
}
} else {
v = +g[l >> 2];
w = +g[d >> 2];
x = o;
y = s;
z = 0
}
s =
+T(+x);
o = +S(+x);
E = +T(+y);
t = +S(+y);
F = +g[b + 68 >> 2] - +g[b + 152 >> 2];
u = +g[b + 72 >> 2] - +g[b + 156 >> 2];
D = o * F - s * u;
B = s * F + o * u;
u = +g[b + 76 >> 2] - +g[b + 160 >> 2];
o = +g[b + 80 >> 2] - +g[b + 164 >> 2];
F = t * u - E * o;
s = E * u + t * o;
o = q + F - m - D;
t = r + s - n - B;
u = +Q(+(o * o + t * t));
E = +g[b + 168 >> 2];
A = +g[b + 172 >> 2];
C = E + A;
G = C + B * B * v + s * s * w;
H = D * v;
I = F * w;
J = -(B * H) - s * I;
K = C + D * H + F * I;
I = G * K - J * J;
if (I != 0)
L = 1 / I;
else
L = I;
I = -((o * K - t * J) * L);
K = -((t * G - o * J) * L);
L = +(m - E * I);
m = +(n - E * K);
b = k;
g[b >> 2] = L;
g[b + 4 >> 2] = m;
b = c[j >> 2] | 0;
g[b + ((c[f >> 2] | 0) * 12 | 0) + 8 >> 2] = x - v * (D * K - B * I);
B = +(q + A * I);
q = +(r + A * K);
f =
b + ((c[h >> 2] | 0) * 12 | 0) | 0;
g[f >> 2] = B;
g[f + 4 >> 2] = q;
g[(c[j >> 2] | 0) + ((c[h >> 2] | 0) * 12 | 0) + 8 >> 2] = y + w * (F * K - s * I);
if (!(u <= .004999999888241291)) {
M = 0;
i = e;
return M | 0
}
M = z <= .03490658849477768;
i = e;
return M | 0
}
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) {
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 Jh(b) {
b = b | 0;
return (a[b + 100 >> 0] | 0) != 0 | 0
}
function Kh(d, f) {
d = d | 0;
f = f | 0;
var h = 0,
j = 0,
k = 0,
l = 0,
m = 0,
n = 0;
h = i;
j = c[d + 48 >> 2] | 0;
k = j + 4 | 0;
l = e[k >> 1] | 0;
if ((l & 2 | 0) == 0) {
b[k >> 1] = l | 2;
g[j +
160 >> 2] = 0
}
j = c[d + 52 >> 2] | 0;
l = j + 4 | 0;
k = e[l >> 1] | 0;
if ((k & 2 | 0) != 0) {
m = d + 100 | 0;
n = f & 1;
a[m >> 0] = n;
i = h;
return
}
b[l >> 1] = k | 2;
g[j + 160 >> 2] = 0;
m = d + 100 | 0;
n = f & 1;
a[m >> 0] = n;
i = h;
return
}
function Lh(a, d) {
a = a | 0;
d = +d;
var f = 0,
h = 0,
j = 0,
k = 0,
l = 0;
f = i;
h = c[a + 48 >> 2] | 0;
j = h + 4 | 0;
k = e[j >> 1] | 0;
if ((k & 2 | 0) == 0) {
b[j >> 1] = k | 2;
g[h + 160 >> 2] = 0
}
h = c[a + 52 >> 2] | 0;
k = h + 4 | 0;
j = e[k >> 1] | 0;
if ((j & 2 | 0) != 0) {
l = a + 108 | 0;
g[l >> 2] = d;
i = f;
return
}
b[k >> 1] = j | 2;
g[h + 160 >> 2] = 0;
l = a + 108 | 0;
g[l >> 2] = d;
i = f;
return
}
function Mh(b) {
b = b | 0;
return (a[b + 112 >> 0] | 0) != 0 | 0
}
function Nh(f, h) {
f = f | 0;
h = h | 0;
var j = 0,
k = 0,
l = 0,
m = 0,
n = 0;
j = i;
k = f + 112 | 0;
if ((h & 1 | 0) == (d[k >> 0] | 0 | 0)) {
i = j;
return
}
l = c[f + 48 >> 2] | 0;
m = l + 4 | 0;
n = e[m >> 1] | 0;
if ((n & 2 | 0) == 0) {
b[m >> 1] = n | 2;
g[l + 160 >> 2] = 0
}
l = c[f + 52 >> 2] | 0;
n = l + 4 | 0;
m = e[n >> 1] | 0;
if ((m & 2 | 0) == 0) {
b[n >> 1] = m | 2;
g[l + 160 >> 2] = 0
}
a[k >> 0] = h & 1;
g[f + 92 >> 2] = 0;
i = j;
return
}
function Oh(a) {
a = a | 0;
var b = 0,
e = 0,
f = 0,
j = 0,
l = 0;
b = i;
i = i + 16 | 0;
e = b;
f = c[(c[a + 48 >> 2] | 0) + 8 >> 2] | 0;
j = c[(c[a + 52 >> 2] | 0) + 8 >> 2] | 0;
Rm(4416, e);
c[e >> 2] = f;
Rm(4448, e);
c[e >> 2] = j;
Rm(4480, e);
c[e >> 2] = d[a + 61 >> 0] | 0;
Rm(4512, e);
l = +g[a + 72 >> 2];
h[k >> 3] = +g[a + 68 >>
2];
c[e >> 2] = c[k >> 2];
c[e + 4 >> 2] = c[k + 4 >> 2];
j = e + 8 | 0;
h[k >> 3] = l;
c[j >> 2] = c[k >> 2];
c[j + 4 >> 2] = c[k + 4 >> 2];
Rm(4552, e);
l = +g[a + 80 >> 2];
h[k >> 3] = +g[a + 76 >> 2];
c[e >> 2] = c[k >> 2];
c[e + 4 >> 2] = c[k + 4 >> 2];
j = e + 8 | 0;
h[k >> 3] = l;
c[j >> 2] = c[k >> 2];
c[j + 4 >> 2] = c[k + 4 >> 2];
Rm(4600, e);
h[k >> 3] = +g[a + 116 >> 2];
c[e >> 2] = c[k >> 2];
c[e + 4 >> 2] = c[k + 4 >> 2];
Rm(4648, e);
c[e >> 2] = d[a + 112 >> 0] | 0;
Rm(4680, e);
h[k >> 3] = +g[a + 120 >> 2];
c[e >> 2] = c[k >> 2];
c[e + 4 >> 2] = c[k + 4 >> 2];
Rm(4712, e);
h[k >> 3] = +g[a + 124 >> 2];
c[e >> 2] = c[k >> 2];
c[e + 4 >> 2] = c[k + 4 >> 2];
Rm(4744, e);
c[e >> 2] = d[a + 100 >> 0] | 0;
Rm(4776,
e);
h[k >> 3] = +g[a + 108 >> 2];
c[e >> 2] = c[k >> 2];
c[e + 4 >> 2] = c[k + 4 >> 2];
Rm(4808, e);
h[k >> 3] = +g[a + 104 >> 2];
c[e >> 2] = c[k >> 2];
c[e + 4 >> 2] = c[k + 4 >> 2];
Rm(4840, e);
c[e >> 2] = c[a + 56 >> 2];
Rm(4872, e);
i = b;
return
}
function Ph(a) {
a = a | 0;
return
}
function Qh(a) {
a = a | 0;
var b = 0;
b = i;
sn(a);
i = b;
return
}
function Rh(a, b, d, e, f) {
a = a | 0;
b = b | 0;
d = d | 0;
e = e | 0;
f = f | 0;
var h = 0,
j = 0,
k = 0,
l = 0,
m = 0,
n = 0,
o = 0,
p = 0,
q = 0,
r = 0;
h = i;
c[a + 8 >> 2] = b;
c[a + 12 >> 2] = d;
j = +g[e >> 2] - +g[b + 12 >> 2];
k = e + 4 | 0;
l = +g[k >> 2] - +g[b + 16 >> 2];
m = b + 24 | 0;
n = +g[m >> 2];
o = b + 20 | 0;
p = +g[o >> 2];
q = +(j * n + l * p);
r = +(n * l - j *
p);
b = a + 20 | 0;
g[b >> 2] = q;
g[b + 4 >> 2] = r;
r = +g[e >> 2] - +g[d + 12 >> 2];
q = +g[k >> 2] - +g[d + 16 >> 2];
p = +g[d + 24 >> 2];
j = +g[d + 20 >> 2];
l = +(r * p + q * j);
n = +(p * q - r * j);
d = a + 28 | 0;
g[d >> 2] = l;
g[d + 4 >> 2] = n;
n = +g[m >> 2];
l = +g[f >> 2];
j = +g[o >> 2];
r = +g[f + 4 >> 2];
q = +(n * l + j * r);
p = +(n * r - l * j);
f = a + 36 | 0;
g[f >> 2] = q;
g[f + 4 >> 2] = p;
i = h;
return
}
function Sh(b, d) {
b = b | 0;
d = d | 0;
var e = 0,
f = 0,
h = 0,
j = 0;
e = i;
vh(b, d);
c[b >> 2] = 4968;
f = d + 20 | 0;
h = c[f + 4 >> 2] | 0;
j = b + 76 | 0;
c[j >> 2] = c[f >> 2];
c[j + 4 >> 2] = h;
h = d + 28 | 0;
j = c[h + 4 >> 2] | 0;
f = b + 84 | 0;
c[f >> 2] = c[h >> 2];
c[f + 4 >> 2] = j;
j = d + 36 | 0;
f = c[j >> 2] | 0;
h = c[j + 4 >>
2] | 0;
j = b + 92 | 0;
c[j >> 2] = f;
c[j + 4 >> 2] = h;
j = b + 100 | 0;
g[j >> 2] = -(c[k >> 2] = h, +g[k >> 2]);
c[j + 4 >> 2] = f;
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;
g[b + 120 >> 2] = +g[d + 48 >> 2];
g[b + 124 >> 2] = +g[d + 52 >> 2];
a[b + 128 >> 0] = a[d + 44 >> 0] | 0;
g[b + 68 >> 2] = +g[d + 56 >> 2];
g[b + 72 >> 2] = +g[d + 60 >> 2];
g[b + 216 >> 2] = 0;
g[b + 220 >> 2] = 0;
d = b + 172 | 0;
c[d + 0 >> 2] = 0;
c[d + 4 >> 2] = 0;
c[d + 8 >> 2] = 0;
c[d + 12 >> 2] = 0;
i = e;
return
}
function Th(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,
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;
e = i;
f = c[b + 48 >> 2] | 0;
h = c[f + 8 >> 2] | 0;
j = b + 132 | 0;
c[j >> 2] = h;
l = c[b + 52 >> 2] | 0;
m = c[l + 8 >> 2] | 0;
n = b + 136 | 0;
c[n >> 2] = m;
o = f + 44 | 0;
p = c[o >> 2] | 0;
q = c[o + 4 >> 2] | 0;
o = b + 140 | 0;
c[o >> 2] = p;
c[o + 4 >> 2] = q;
o = l + 44 | 0;
r = c[o >> 2] | 0;
s = c[o + 4 >> 2] | 0;
o = b + 148 | 0;
c[o >> 2] = r;
c[o + 4 >> 2] = s;
t = +g[f + 136 >> 2];
o = b + 156 | 0;
g[o >> 2] = t;
u = +g[l + 136 >> 2];
v = b + 160 | 0;
g[v >> 2] = u;
w = +g[f + 144 >> 2];
f = b + 164 | 0;
g[f >> 2] = w;
x = +g[l + 144 >> 2];
l = b + 168 | 0;
g[l >> 2] = x;
y = c[d + 28 >> 2] | 0;
z = y + (h * 12 | 0) | 0;
A = +g[z >> 2];
B = +g[z + 4 >> 2];
C = +g[y + (h * 12 | 0) + 8 >> 2];
z = d + 32 | 0;
D = c[z >> 2] | 0;
E = D + (h * 12 | 0) | 0;
F = +g[E >> 2];
G = +g[E + 4 >> 2];
H = +g[D + (h * 12 | 0) + 8 >> 2];
h = y + (m * 12 | 0) | 0;
I = +g[h >> 2];
J = +g[h + 4 >> 2];
K = +g[y + (m * 12 | 0) + 8 >> 2];
y = D + (m * 12 | 0) | 0;
L = +g[y >> 2];
M = +g[y + 4 >> 2];
N = +g[D + (m * 12 | 0) + 8 >> 2];
O = +T(+C);
P = +S(+C);
C = +T(+K);
Q = +S(+K);
K = +g[b + 76 >> 2] - (c[k >> 2] = p, +g[k >> 2]);
R = +g[b + 80 >> 2] - (c[k >> 2] = q, +g[k >> 2]);
U = P * K - O * R;
V = O * K + P * R;
R = +g[b + 84 >> 2] - (c[k >> 2] = r, +g[k >> 2]);
K = +g[b + 88 >> 2] - (c[k >> 2] = s, +g[k >> 2]);
W = Q * R - C * K;
X = C * R + Q * K;
K = I + W - A - U;
A = J + X - B - V;
B = +g[b + 100 >> 2];
J = +g[b + 104 >> 2];
I = P * B - O * J;
Q = O * B + P * J;
J = +I;
B = +Q;
s = b + 180 | 0;
g[s >> 2] = J;
g[s + 4 >> 2] = B;
B = U + K;
U = V + A;
V = Q * B - I * U;
g[b + 196 >> 2] = V;
J = W * Q - X * I;
g[b + 200 >> 2] = J;
R = t + u;
u = R + V * w * V + J * x * J;
if (u > 0)
Y = 1 / u;
else
Y = u;
g[b + 204 >> 2] = Y;
s = b + 212 | 0;
g[s >> 2] = 0;
r = b + 216 | 0;
g[r >> 2] = 0;
q = b + 220 | 0;
g[q >> 2] = 0;
Y = +g[b + 68 >> 2];
if (Y > 0) {
u = +g[b + 92 >> 2];
t = +g[b + 96 >> 2];
C = P * u - O * t;
Z = O * u + P * t;
t = +C;
P = +Z;
p = b + 172 | 0;
g[p >> 2] = t;
g[p +
4 >> 2] = P;
P = B * Z - U * C;
g[b + 188 >> 2] = P;
U = W * Z - X * C;
g[b + 192 >> 2] = U;
X = R + P * w * P + U * x * U;
if (X > 0) {
U = 1 / X;
g[s >> 2] = U;
P = Y * 6.2831854820251465;
Y = P * U * P;
R = +g[d >> 2];
W = R * (P * U * 2 * +g[b + 72 >> 2] + R * Y);
if (W > 0)
_ = 1 / W;
else
_ = W;
g[q >> 2] = _;
g[r >> 2] = (K * C + A * Z) * R * Y * _;
Y = X + _;
g[s >> 2] = Y;
if (Y > 0)
g[s >> 2] = 1 / Y
}
} else
g[b + 116 >> 2] = 0;
if ((a[b + 128 >> 0] | 0) != 0) {
Y = x + w;
s = b + 208 | 0;
g[s >> 2] = Y;
if (Y > 0)
g[s >> 2] = 1 / Y
} else {
g[b + 208 >> 2] = 0;
g[b + 112 >> 2] = 0
}
if ((a[d + 24 >> 0] | 0) == 0) {
g[b + 108 >> 2] = 0;
g[b + 116 >> 2] = 0;
g[b + 112 >> 2] = 0;
$ = F;
aa = G;
ba = L;
ca = M;
da = H;
ea = N;
fa = c[j >> 2] | 0;
ga = c[z >> 2] | 0;
ha = ga +
(fa * 12 | 0) | 0;
ia = +$;
ja = +aa;
ka = ha;
la = ka;
g[la >> 2] = ia;
ma = ka + 4 | 0;
na = ma;
g[na >> 2] = ja;
oa = c[j >> 2] | 0;
pa = c[z >> 2] | 0;
qa = pa + (oa * 12 | 0) + 8 | 0;
g[qa >> 2] = da;
ra = c[n >> 2] | 0;
sa = pa + (ra * 12 | 0) | 0;
ta = +ba;
ua = +ca;
va = sa;
wa = va;
g[wa >> 2] = ta;
xa = va + 4 | 0;
ya = xa;
g[ya >> 2] = ua;
za = c[n >> 2] | 0;
Aa = c[z >> 2] | 0;
Ba = Aa + (za * 12 | 0) + 8 | 0;
g[Ba >> 2] = ea;
i = e;
return
} else {
s = d + 8 | 0;
d = b + 108 | 0;
Y = +g[s >> 2] * +g[d >> 2];
g[d >> 2] = Y;
d = b + 116 | 0;
w = +g[s >> 2] * +g[d >> 2];
g[d >> 2] = w;
d = b + 112 | 0;
x = +g[s >> 2] * +g[d >> 2];
g[d >> 2] = x;
_ = Y * I + w * +g[b + 172 >> 2];
I = Y * Q + w * +g[b + 176 >> 2];
Q = +g[o >> 2];
X = +g[v >> 2];
$ = F -
_ * Q;
aa = G - I * Q;
ba = L + _ * X;
ca = M + I * X;
da = H - (x + (Y * V + w * +g[b + 188 >> 2])) * +g[f >> 2];
ea = N + (x + (Y * J + w * +g[b + 192 >> 2])) * +g[l >> 2];
fa = c[j >> 2] | 0;
ga = c[z >> 2] | 0;
ha = ga + (fa * 12 | 0) | 0;
ia = +$;
ja = +aa;
ka = ha;
la = ka;
g[la >> 2] = ia;
ma = ka + 4 | 0;
na = ma;
g[na >> 2] = ja;
oa = c[j >> 2] | 0;
pa = c[z >> 2] | 0;
qa = pa + (oa * 12 | 0) + 8 | 0;
g[qa >> 2] = da;
ra = c[n >> 2] | 0;
sa = pa + (ra * 12 | 0) | 0;
ta = +ba;
ua = +ca;
va = sa;
wa = va;
g[wa >> 2] = ta;
xa = va + 4 | 0;
ya = xa;
g[ya >> 2] = ua;
za = c[n >> 2] | 0;
Aa = c[z >> 2] | 0;
Ba = Aa + (za * 12 | 0) + 8 | 0;
g[Ba >> 2] = ea;
i = e;
return
}
}
function Uh(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 = i;
e = +g[a + 156 >> 2];
f = +g[a + 160 >> 2];
h = +g[a + 164 >> 2];
j = +g[a + 168 >> 2];
k = a + 132 | 0;
l = c[k >> 2] | 0;
m = b + 32 | 0;
n = c[m >> 2] | 0;
o = n + (l * 12 | 0) | 0;
p = +g[o >> 2];
q = +g[o + 4 >> 2];
r = +g[n + (l * 12 | 0) + 8 >> 2];
l = a + 136 | 0;
o = c[l >> 2] | 0;
s = n + (o * 12 | 0) | 0;
t = +g[s >> 2];
u = +g[s + 4 >> 2];
v = +g[n + (o * 12 | 0) + 8 >> 2];
w = +g[a + 172 >> 2];
x = +g[a + 176 >> 2];
y = +g[a + 192 >> 2];
z = +g[a + 188 >> 2];
o = a + 116 | 0;
A = +g[o >> 2];
B = +g[a + 212 >> 2] * (+g[a + 216 >> 2] + (v * y + (w * (t - p) + x * (u - q)) - r * z) + +g[a + 220 >> 2] * A);
C = -B;
g[o >> 2] = A - B;
B = w * C;
w =
x * C;
x = p - e * B;
p = q - e * w;
q = r - h * z * C;
z = t + f * B;
B = u + f * w;
w = v + j * y * C;
o = a + 112 | 0;
C = +g[o >> 2];
y = +g[b >> 2] * +g[a + 120 >> 2];
v = C - +g[a + 208 >> 2] * (w - q - +g[a + 124 >> 2]);
u = -y;
t = v < y ? v : y;
y = t < u ? u : t;
g[o >> 2] = y;
t = y - C;
C = q - h * t;
q = w + j * t;
t = +g[a + 180 >> 2];
w = +g[a + 184 >> 2];
y = +g[a + 200 >> 2];
u = +g[a + 196 >> 2];
v = +g[a + 204 >> 2] * ((z - x) * t + (B - p) * w + y * q - u * C);
r = -v;
o = a + 108 | 0;
g[o >> 2] = +g[o >> 2] - v;
v = t * r;
t = w * r;
w = +(x - e * v);
x = +(p - e * t);
o = (c[m >> 2] | 0) + ((c[k >> 2] | 0) * 12 | 0) | 0;
g[o >> 2] = w;
g[o + 4 >> 2] = x;
o = c[m >> 2] | 0;
g[o + ((c[k >> 2] | 0) * 12 | 0) + 8 >> 2] = C - h * u * r;
u = +(z + f * v);
v = +(B + f * t);
k = o + ((c[l >>
2] | 0) * 12 | 0) | 0;
g[k >> 2] = u;
g[k + 4 >> 2] = v;
g[(c[m >> 2] | 0) + ((c[l >> 2] | 0) * 12 | 0) + 8 >> 2] = q + j * y * r;
i = d;
return
}
function Vh(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;
d = i;
e = a + 132 | 0;
f = c[e >> 2] | 0;
h = b + 28 | 0;
b = c[h >> 2] | 0;
j = b + (f * 12 | 0) | 0;
k = +g[j >> 2];
l = +g[j + 4 >> 2];
m = +g[b + (f * 12 | 0) + 8 >> 2];
f = a + 136 | 0;
j = c[f >> 2] | 0;
n = b + (j * 12 | 0) | 0;
o = +g[n >> 2];
p = +g[n + 4 >> 2];
q = +g[b + (j * 12 | 0) + 8 >> 2];
r = +T(+m);
s = +S(+m);
t = +T(+q);
u = +S(+q);
v = +g[a + 76 >> 2] - +g[a + 140 >>
2];
w = +g[a + 80 >> 2] - +g[a + 144 >> 2];
x = s * v - r * w;
y = r * v + s * w;
w = +g[a + 84 >> 2] - +g[a + 148 >> 2];
v = +g[a + 88 >> 2] - +g[a + 152 >> 2];
z = u * w - t * v;
A = t * w + u * v;
v = o - k + z - x;
u = p - l + A - y;
w = +g[a + 100 >> 2];
t = +g[a + 104 >> 2];
B = s * w - r * t;
C = r * w + s * t;
t = B * v + C * u;
s = +g[a + 156 >> 2];
w = +g[a + 160 >> 2];
r = +g[a + 164 >> 2];
D = +g[a + 196 >> 2];
E = +g[a + 168 >> 2];
F = +g[a + 200 >> 2];
G = s + w + D * r * D + F * E * F;
if (G != 0)
H = -t / G;
else
H = 0;
G = B * H;
F = C * H;
D = +(k - G * s);
k = +(l - F * s);
a = (c[h >> 2] | 0) + ((c[e >> 2] | 0) * 12 | 0) | 0;
g[a >> 2] = D;
g[a + 4 >> 2] = k;
a = c[h >> 2] | 0;
g[a + ((c[e >> 2] | 0) * 12 | 0) + 8 >> 2] = m - (C * (x + v) - B * (y + u)) * H * r;
r = +(o + G * w);
G = +(p + F * w);
e = a + ((c[f >> 2] | 0) * 12 | 0) | 0;
g[e >> 2] = r;
g[e + 4 >> 2] = G;
g[(c[h >> 2] | 0) + ((c[f >> 2] | 0) * 12 | 0) + 8 >> 2] = q + (z * C - A * B) * H * E;
if (t > 0) {
I = t;
J = I <= .004999999888241291;
i = d;
return J | 0
}
I = -t;
J = I <= .004999999888241291;
i = d;
return J | 0
}
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 _h(a, d) {
a = a | 0;
d = +d;
var f = 0,
h = 0,
j = 0,
k = 0,
l = 0;
f = i;
h = c[a + 48 >> 2] | 0;
j = h + 4 | 0;
k = e[j >> 1] | 0;
if ((k & 2 | 0) == 0) {
b[j >> 1] = k | 2;
g[h + 160 >> 2] = 0
}
h = c[a + 52 >> 2] | 0;
k = h + 4 | 0;
j = e[k >> 1] |
0;
if ((j & 2 | 0) != 0) {
l = a + 124 | 0;
g[l >> 2] = d;
i = f;
return
}
b[k >> 1] = j | 2;
g[h + 160 >> 2] = 0;
l = a + 124 | 0;
g[l >> 2] = d;
i = f;
return
}
function $h(a) {
a = a | 0;
var b = 0,
e = 0,
f = 0,
j = 0,
l = 0;
b = i;
i = i + 16 | 0;
e = b;
f = c[(c[a + 48 >> 2] | 0) + 8 >> 2] | 0;
j = c[(c[a + 52 >> 2] | 0) + 8 >> 2] | 0;
Rm(5016, e);
c[e >> 2] = f;
Rm(5040, e);
c[e >> 2] = j;
Rm(5072, e);
c[e >> 2] = d[a + 61 >> 0] | 0;
Rm(5104, e);
l = +g[a + 80 >> 2];
h[k >> 3] = +g[a + 76 >> 2];
c[e >> 2] = c[k >> 2];
c[e + 4 >> 2] = c[k + 4 >> 2];
j = e + 8 | 0;
h[k >> 3] = l;
c[j >> 2] = c[k >> 2];
c[j + 4 >> 2] = c[k + 4 >> 2];
Rm(5144, e);
l = +g[a + 88 >> 2];
h[k >> 3] = +g[a + 84 >> 2];
c[e >> 2] = c[k >> 2];
c[e + 4 >> 2] =
c[k + 4 >> 2];
j = e + 8 | 0;
h[k >> 3] = l;
c[j >> 2] = c[k >> 2];
c[j + 4 >> 2] = c[k + 4 >> 2];
Rm(5192, e);
l = +g[a + 96 >> 2];
h[k >> 3] = +g[a + 92 >> 2];
c[e >> 2] = c[k >> 2];
c[e + 4 >> 2] = c[k + 4 >> 2];
j = e + 8 | 0;
h[k >> 3] = l;
c[j >> 2] = c[k >> 2];
c[j + 4 >> 2] = c[k + 4 >> 2];
Rm(5240, e);
c[e >> 2] = d[a + 128 >> 0] | 0;
Rm(5280, e);
h[k >> 3] = +g[a + 124 >> 2];
c[e >> 2] = c[k >> 2];
c[e + 4 >> 2] = c[k + 4 >> 2];
Rm(5312, e);
h[k >> 3] = +g[a + 120 >> 2];
c[e >> 2] = c[k >> 2];
c[e + 4 >> 2] = c[k + 4 >> 2];
Rm(5344, e);
h[k >> 3] = +g[a + 68 >> 2];
c[e >> 2] = c[k >> 2];
c[e + 4 >> 2] = c[k + 4 >> 2];
Rm(5376, e);
h[k >> 3] = +g[a + 72 >> 2];
c[e >> 2] = c[k >> 2];
c[e + 4 >> 2] = c[k + 4 >> 2];
Rm(5408, e);
c[e >> 2] = c[a + 56 >> 2];
Rm(5440, e);
i = b;
return
}
function ai(a) {
a = a | 0;
return
}
function bi(a) {
a = a | 0;
var b = 0;
b = i;
sn(a);
i = b;
return
}
function ci(a, b, d, e, f, h, j, k) {
a = a | 0;
b = b | 0;
d = d | 0;
e = e | 0;
f = f | 0;
h = h | 0;
j = j | 0;
k = +k;
var l = 0,
m = 0,
n = 0,
o = 0,
p = 0,
q = 0,
r = 0,
s = 0,
t = 0,
u = 0;
l = i;
c[a + 8 >> 2] = b;
c[a + 12 >> 2] = d;
m = e;
n = c[m + 4 >> 2] | 0;
o = a + 20 | 0;
c[o >> 2] = c[m >> 2];
c[o + 4 >> 2] = n;
n = f;
o = c[n + 4 >> 2] | 0;
m = a + 28 | 0;
c[m >> 2] = c[n >> 2];
c[m + 4 >> 2] = o;
p = +g[h >> 2] - +g[b + 12 >> 2];
o = h + 4 | 0;
q = +g[o >> 2] - +g[b + 16 >> 2];
r = +g[b + 24 >> 2];
s = +g[b + 20 >> 2];
t = +(p * r + q * s);
u = +(r * q - p * s);
b = a +
36 | 0;
g[b >> 2] = t;
g[b + 4 >> 2] = u;
u = +g[j >> 2] - +g[d + 12 >> 2];
b = j + 4 | 0;
t = +g[b >> 2] - +g[d + 16 >> 2];
s = +g[d + 24 >> 2];
p = +g[d + 20 >> 2];
q = +(u * s + t * p);
r = +(s * t - u * p);
d = a + 44 | 0;
g[d >> 2] = q;
g[d + 4 >> 2] = r;
r = +g[h >> 2] - +g[e >> 2];
q = +g[o >> 2] - +g[e + 4 >> 2];
g[a + 52 >> 2] = +Q(+(r * r + q * q));
q = +g[j >> 2] - +g[f >> 2];
r = +g[b >> 2] - +g[f + 4 >> 2];
g[a + 56 >> 2] = +Q(+(q * q + r * r));
g[a + 60 >> 2] = k;
i = l;
return
}
function di(a, b) {
a = a | 0;
b = b | 0;
var d = 0,
e = 0,
f = 0,
h = 0,
j = 0;
d = i;
vh(a, b);
c[a >> 2] = 5528;
e = b + 20 | 0;
f = c[e + 4 >> 2] | 0;
h = a + 68 | 0;
c[h >> 2] = c[e >> 2];
c[h + 4 >> 2] = f;
f = b + 28 | 0;
h = c[f + 4 >> 2] | 0;
e = a + 76 | 0;
c[e >>
2] = c[f >> 2];
c[e + 4 >> 2] = h;
h = b + 36 | 0;
e = c[h + 4 >> 2] | 0;
f = a + 92 | 0;
c[f >> 2] = c[h >> 2];
c[f + 4 >> 2] = e;
e = b + 44 | 0;
f = c[e + 4 >> 2] | 0;
h = a + 100 | 0;
c[h >> 2] = c[e >> 2];
c[h + 4 >> 2] = f;
f = b + 52 | 0;
g[a + 84 >> 2] = +g[f >> 2];
h = b + 56 | 0;
g[a + 88 >> 2] = +g[h >> 2];
j = +g[b + 60 >> 2];
g[a + 112 >> 2] = j;
g[a + 108 >> 2] = +g[f >> 2] + j * +g[h >> 2];
g[a + 116 >> 2] = 0;
i = d;
return
}
function ei(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,
R = 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;
f = c[b + 48 >> 2] | 0;
h = c[f + 8 >> 2] | 0;
j = b + 120 | 0;
c[j >> 2] = h;
l = c[b + 52 >> 2] | 0;
m = c[l + 8 >> 2] | 0;
n = b + 124 | 0;
c[n >> 2] = m;
o = f + 44 | 0;
p = c[o >> 2] | 0;
q = c[o + 4 >> 2] | 0;
o = b + 160 | 0;
c[o >> 2] = p;
c[o + 4 >> 2] = q;
o = l + 44 | 0;
r = c[o >> 2] | 0;
s = c[o + 4 >> 2] | 0;
o = b + 168 | 0;
c[o >> 2] = r;
c[o + 4 >> 2] = s;
s = b + 176 | 0;
g[s >> 2] = +g[f + 136 >> 2];
o = b + 180 | 0;
g[o >> 2] = +g[l + 136 >> 2];
t = b + 184 | 0;
g[t >> 2] = +g[f + 144 >> 2];
f = b + 188 | 0;
g[f >> 2] = +g[l + 144 >> 2];
l = c[d + 28 >> 2] | 0;
u = l + (h * 12 | 0) |
0;
v = +g[u >> 2];
w = +g[u + 4 >> 2];
x = +g[l + (h * 12 | 0) + 8 >> 2];
u = d + 32 | 0;
y = c[u >> 2] | 0;
z = y + (h * 12 | 0) | 0;
A = +g[z >> 2];
B = +g[z + 4 >> 2];
C = +g[y + (h * 12 | 0) + 8 >> 2];
h = l + (m * 12 | 0) | 0;
D = +g[h >> 2];
E = +g[h + 4 >> 2];
F = +g[l + (m * 12 | 0) + 8 >> 2];
l = y + (m * 12 | 0) | 0;
G = +g[l >> 2];
H = +g[l + 4 >> 2];
I = +g[y + (m * 12 | 0) + 8 >> 2];
J = +T(+x);
K = +S(+x);
x = +T(+F);
L = +S(+F);
m = b + 144 | 0;
F = +g[b + 92 >> 2] - (c[k >> 2] = p, +g[k >> 2]);
M = +g[b + 96 >> 2] - (c[k >> 2] = q, +g[k >> 2]);
N = K * F - J * M;
O = J * F + K * M;
M = +N;
K = +O;
q = m;
g[q >> 2] = M;
g[q + 4 >> 2] = K;
K = +g[b + 100 >> 2] - (c[k >> 2] = r, +g[k >> 2]);
M = +g[b + 104 >> 2] - +g[b + 172 >> 2];
F = L * K - x * M;
J = x *
K + L * M;
M = +F;
L = +J;
r = b + 152 | 0;
g[r >> 2] = M;
g[r + 4 >> 2] = L;
r = b + 128 | 0;
L = v + N - +g[b + 68 >> 2];
N = w + O - +g[b + 72 >> 2];
O = +L;
w = +N;
q = r;
g[q >> 2] = O;
g[q + 4 >> 2] = w;
q = b + 136 | 0;
w = D + F - +g[b + 76 >> 2];
D = E + J - +g[b + 80 >> 2];
E = +w;
O = +D;
p = q;
g[p >> 2] = E;
g[p + 4 >> 2] = O;
O = +Q(+(L * L + N * N));
E = +Q(+(w * w + D * D));
if (O > .04999999701976776) {
v = 1 / O;
O = L * v;
g[r >> 2] = O;
P = v * N;
R = O
} else {
g[r >> 2] = 0;
P = 0;
R = 0
}
g[b + 132 >> 2] = P;
if (E > .04999999701976776) {
O = 1 / E;
E = O * w;
g[q >> 2] = E;
U = O * D;
V = E
} else {
g[q >> 2] = 0;
U = 0;
V = 0
}
g[b + 140 >> 2] = U;
E = +g[m >> 2];
D = +g[b + 148 >> 2];
O = E * P - D * R;
w = F * U - J * V;
N = +g[s >> 2];
v = +g[t >> 2];
L = +g[o >> 2];
M = +g[f >> 2];
K = +g[b + 112 >> 2];
x = N + O * O * v + K * K * (L + w * w * M);
if (x > 0)
W = 1 / x;
else
W = x;
g[b + 192 >> 2] = W;
if ((a[d + 24 >> 0] | 0) == 0) {
g[b + 116 >> 2] = 0;
X = A;
Y = B;
Z = G;
_ = H;
$ = C;
aa = I;
ba = c[j >> 2] | 0;
ca = c[u >> 2] | 0;
da = ca + (ba * 12 | 0) | 0;
ea = +X;
fa = +Y;
ga = da;
ha = ga;
g[ha >> 2] = ea;
ia = ga + 4 | 0;
ja = ia;
g[ja >> 2] = fa;
ka = c[j >> 2] | 0;
la = c[u >> 2] | 0;
ma = la + (ka * 12 | 0) + 8 | 0;
g[ma >> 2] = $;
na = c[n >> 2] | 0;
oa = la + (na * 12 | 0) | 0;
pa = +Z;
qa = +_;
ra = oa;
sa = ra;
g[sa >> 2] = pa;
ta = ra + 4 | 0;
ua = ta;
g[ua >> 2] = qa;
va = c[n >> 2] | 0;
wa = c[u >> 2] | 0;
xa = wa + (va * 12 | 0) + 8 | 0;
g[xa >> 2] = aa;
i = e;
return
} else {
f = b + 116 | 0;
W = +g[d + 8 >> 2] * +g[f >> 2];
g[f >> 2] = W;
x = -W;
w = R * x;
R = P * x;
x = -(W * K);
K = V * x;
V = U * x;
X = A + w * N;
Y = B + R * N;
Z = G + K * L;
_ = H + V * L;
$ = C + v * (R * E - w * D);
aa = I + M * (V * F - K * J);
ba = c[j >> 2] | 0;
ca = c[u >> 2] | 0;
da = ca + (ba * 12 | 0) | 0;
ea = +X;
fa = +Y;
ga = da;
ha = ga;
g[ha >> 2] = ea;
ia = ga + 4 | 0;
ja = ia;
g[ja >> 2] = fa;
ka = c[j >> 2] | 0;
la = c[u >> 2] | 0;
ma = la + (ka * 12 | 0) + 8 | 0;
g[ma >> 2] = $;
na = c[n >> 2] | 0;
oa = la + (na * 12 | 0) | 0;
pa = +Z;
qa = +_;
ra = oa;
sa = ra;
g[sa >> 2] = pa;
ta = ra + 4 | 0;
ua = ta;
g[ua >> 2] = qa;
va = c[n >> 2] | 0;
wa = c[u >> 2] | 0;
xa = wa + (va * 12 | 0) + 8 | 0;
g[xa >> 2] = aa;
i = e;
return
}
}
function fi(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 = i;
e = a + 120 | 0;
f = c[e >> 2] | 0;
h = b + 32 | 0;
b = c[h >> 2] | 0;
j = b + (f * 12 | 0) | 0;
k = j;
l = +g[k >> 2];
m = +g[k + 4 >> 2];
n = +g[b + (f * 12 | 0) + 8 >> 2];
f = a + 124 | 0;
k = c[f >> 2] | 0;
o = b + (k * 12 | 0) | 0;
p = +g[o >> 2];
q = +g[o + 4 >> 2];
r = +g[b + (k * 12 | 0) + 8 >> 2];
s = +g[a + 148 >> 2];
t = +g[a + 144 >> 2];
u = +g[a + 156 >> 2];
v = +g[a + 152 >> 2];
w = +g[a + 128 >> 2];
x = +g[a + 132 >> 2];
y = +g[a + 112 >> 2];
z = +g[a + 136 >> 2];
A = +g[a + 140 >> 2];
B = +g[a + 192 >> 2] * (-((l - n * s) * w + (m + n * t) * x) - y * ((p - r * u) * z + (q + r * v) * A));
k = a + 116 | 0;
g[k >>
2] = +g[k >> 2] - B;
C = w * B;
w = x * B;
x = y * B;
B = z * x;
z = x * A;
A = +g[a + 176 >> 2];
x = n + +g[a + 184 >> 2] * (w * t - C * s);
s = +g[a + 180 >> 2];
t = r + +g[a + 188 >> 2] * (z * v - B * u);
u = +(l + C * A);
C = +(m + w * A);
a = j;
g[a >> 2] = u;
g[a + 4 >> 2] = C;
a = c[h >> 2] | 0;
g[a + ((c[e >> 2] | 0) * 12 | 0) + 8 >> 2] = x;
x = +(p + B * s);
B = +(q + z * s);
e = a + ((c[f >> 2] | 0) * 12 | 0) | 0;
g[e >> 2] = x;
g[e + 4 >> 2] = B;
g[(c[h >> 2] | 0) + ((c[f >> 2] | 0) * 12 | 0) + 8 >> 2] = t;
i = d;
return
}
function gi(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;
d = i;
e = a + 120 | 0;
f = c[e >> 2] | 0;
h = b + 28 | 0;
b = c[h >> 2] | 0;
j = b + (f * 12 | 0) | 0;
k = j;
l = +g[k >> 2];
m = +g[k + 4 >> 2];
n = +g[b + (f * 12 | 0) + 8 >> 2];
f = a + 124 | 0;
k = c[f >> 2] | 0;
o = b + (k * 12 | 0) | 0;
p = +g[o >> 2];
q = +g[o + 4 >> 2];
r = +g[b + (k * 12 | 0) + 8 >> 2];
s = +T(+n);
t = +S(+n);
u = +T(+r);
v = +S(+r);
w = +g[a + 92 >> 2] - +g[a + 160 >> 2];
x = +g[a + 96 >> 2] - +g[a + 164 >> 2];
y = t * w - s * x;
z = s * w + t * x;
x = +g[a + 100 >> 2] - +g[a + 168 >> 2];
t = +g[a + 104 >> 2] - +g[a + 172 >> 2];
w = v * x - u * t;
s = u * x + v * t;
t = l + y - +g[a + 68 >> 2];
v = m + z - +g[a + 72 >> 2];
x = p + w - +g[a + 76 >> 2];
u = q + s - +g[a + 80 >> 2];
A = +Q(+(t * t + v * v));
B = +Q(+(x * x + u * u));
if (A > .04999999701976776) {
C =
1 / A;
D = v * C;
E = t * C
} else {
D = 0;
E = 0
}
if (B > .04999999701976776) {
C = 1 / B;
F = u * C;
G = x * C
} else {
F = 0;
G = 0
}
C = y * D - z * E;
x = w * F - s * G;
u = +g[a + 176 >> 2];
t = +g[a + 184 >> 2];
v = +g[a + 180 >> 2];
H = +g[a + 188 >> 2];
I = +g[a + 112 >> 2];
J = u + C * C * t + I * I * (v + x * x * H);
if (J > 0)
K = 1 / J;
else
K = J;
J = +g[a + 108 >> 2] - A - B * I;
if (J > 0)
L = J;
else
L = -J;
B = K * J;
J = E * B;
E = D * B;
D = B * I;
I = G * D;
G = F * D;
D = +(l + J * u);
l = +(m + E * u);
a = j;
g[a >> 2] = D;
g[a + 4 >> 2] = l;
a = c[h >> 2] | 0;
g[a + ((c[e >> 2] | 0) * 12 | 0) + 8 >> 2] = n + (y * E - z * J) * t;
t = +(p + I * v);
p = +(q + G * v);
e = a + ((c[f >> 2] | 0) * 12 | 0) | 0;
g[e >> 2] = t;
g[e + 4 >> 2] = p;
g[(c[h >> 2] | 0) + ((c[f >> 2] | 0) *
12 | 0) + 8 >> 2] = r + H * (w * G - s * I);
i = d;
return L < .004999999888241291 | 0
}
function hi(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 ii(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 ji(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 ki(a, b) {
a = a | 0;
b = +b;
return 0
}
function li(a) {
a = a | 0;
var b = 0,
e = 0,
f = 0,
j = 0,
l = 0;
b = i;
i = i + 16 | 0;
e = b;
f = c[(c[a + 48 >> 2] | 0) + 8 >> 2] | 0;
j = c[(c[a + 52 >> 2] | 0) + 8 >> 2] | 0;
Rm(5576, e);
c[e >> 2] = f;
Rm(5600, e);
c[e >> 2] = j;
Rm(5632, e);
c[e >> 2] = d[a + 61 >> 0] | 0;
Rm(5664, e);
l = +g[a + 72 >> 2];
h[k >> 3] = +g[a + 68 >> 2];
c[e >> 2] = c[k >> 2];
c[e + 4 >> 2] = c[k + 4 >> 2];
j = e + 8 | 0;
h[k >> 3] = l;
c[j >> 2] = c[k >> 2];
c[j + 4 >> 2] = c[k + 4 >> 2];
Rm(5704, e);
l = +g[a + 80 >> 2];
h[k >> 3] = +g[a + 76 >> 2];
c[e >> 2] = c[k >>
2];
c[e + 4 >> 2] = c[k + 4 >> 2];
j = e + 8 | 0;
h[k >> 3] = l;
c[j >> 2] = c[k >> 2];
c[j + 4 >> 2] = c[k + 4 >> 2];
Rm(5752, e);
l = +g[a + 96 >> 2];
h[k >> 3] = +g[a + 92 >> 2];
c[e >> 2] = c[k >> 2];
c[e + 4 >> 2] = c[k + 4 >> 2];
j = e + 8 | 0;
h[k >> 3] = l;
c[j >> 2] = c[k >> 2];
c[j + 4 >> 2] = c[k + 4 >> 2];
Rm(5800, e);
l = +g[a + 104 >> 2];
h[k >> 3] = +g[a + 100 >> 2];
c[e >> 2] = c[k >> 2];
c[e + 4 >> 2] = c[k + 4 >> 2];
j = e + 8 | 0;
h[k >> 3] = l;
c[j >> 2] = c[k >> 2];
c[j + 4 >> 2] = c[k + 4 >> 2];
Rm(5848, e);
h[k >> 3] = +g[a + 84 >> 2];
c[e >> 2] = c[k >> 2];
c[e + 4 >> 2] = c[k + 4 >> 2];
Rm(5896, e);
h[k >> 3] = +g[a + 88 >> 2];
c[e >> 2] = c[k >> 2];
c[e + 4 >> 2] = c[k + 4 >> 2];
Rm(5928, e);
h[k >> 3] =
+g[a + 112 >> 2];
c[e >> 2] = c[k >> 2];
c[e + 4 >> 2] = c[k + 4 >> 2];
Rm(5960, e);
c[e >> 2] = c[a + 56 >> 2];
Rm(5984, e);
i = b;
return
}
function mi(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 ni(a) {
a = a | 0;
return
}
function oi(a) {
a = a | 0;
var b = 0;
b = i;
sn(a);
i = b;
return
}
function pi(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;
g = i;
h = Em(f, 148) | 0;
if ((h | 0) == 0) {
j = 0;
i = g;
return j | 0
}
wi(h, a,
b, d, e);
c[h >> 2] = 6072;
j = h;
i = g;
return j | 0
}
function qi(a, b) {
a = a | 0;
b = b | 0;
var d = 0;
d = i;
eb[c[(c[a >> 2] | 0) + 4 >> 2] & 127](a);
Fm(b, a, 148);
i = d;
return
}
function ri(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] = 488;
c[j + 4 >> 2] = 1;
g[j + 8 >> 2] = .009999999776482582;
l = j + 28 | 0;
c[l + 0 >> 2] = 0;
c[l + 4 >> 2] = 0;
c[l + 8 >> 2] = 0;
c[l + 12 >> 2] = 0;
b[l + 16 >> 1] = 0;
Ge(k, j, c[a + 56 >> 2] | 0);
ff(d, j, e, c[(c[a + 52 >> 2] | 0) + 12 >> 2] | 0, f);
i = h;
return
}
function si(a) {
a = a | 0;
return
}
function ti(a) {
a = a | 0;
var b = 0;
b = i;
sn(a);
i = b;
return
}
function ui(b, d, e, f, g) {
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;
h = i;
if ((a[6352] | 0) == 0) {
c[1540] = 6;
c[6164 >> 2] = 53;
a[6168 >> 0] = 1;
c[6256 >> 2] = 7;
c[6260 >> 2] = 54;
a[6264 >> 0] = 1;
c[6184 >> 2] = 7;
c[6188 >> 2] = 54;
a[6192 >> 0] = 0;
c[6280 >> 2] = 8;
c[6284 >> 2] = 55;
a[6288 >> 0] = 1;
c[6208 >> 2] = 9;
c[6212 >> 2] = 56;
a[6216 >> 0] = 1;
c[6172 >> 2] = 9;
c[6176 >> 2] = 56;
a[6180 >> 0] = 0;
c[6232 >> 2] = 10;
c[6236 >> 2] = 57;
a[6240 >> 0] = 1;
c[6268 >> 2] = 10;
c[6272 >> 2] = 57;
a[6276 >> 0] = 0;
c[6304 >> 2] = 11;
c[6308 >> 2] = 58;
a[6312 >> 0] = 1;
c[6196 >> 2] = 11;
c[6200 >> 2] = 58;
a[6204 >>
0] = 0;
c[6328 >> 2] = 12;
c[6332 >> 2] = 59;
a[6336 >> 0] = 1;
c[6292 >> 2] = 12;
c[6296 >> 2] = 59;
a[6300 >> 0] = 0;
a[6352] = 1
}
j = c[(c[b + 12 >> 2] | 0) + 4 >> 2] | 0;
k = c[(c[e + 12 >> 2] | 0) + 4 >> 2] | 0;
l = c[6160 + (j * 48 | 0) + (k * 12 | 0) >> 2] | 0;
if ((l | 0) == 0) {
m = 0;
i = h;
return m | 0
}
if ((a[6160 + (j * 48 | 0) + (k * 12 | 0) + 8 >> 0] | 0) == 0) {
m = ob[l & 15](e, f, b, d, g) | 0;
i = h;
return m | 0
} else {
m = ob[l & 15](b, d, e, f, g) | 0;
i = h;
return m | 0
}
return 0
}
function vi(d, f) {
d = d | 0;
f = f | 0;
var h = 0,
j = 0,
k = 0,
l = 0,
m = 0,
n = 0;
h = i;
j = c[d + 48 >> 2] | 0;
k = c[d + 52 >> 2] | 0;
if (((c[d + 124 >> 2] | 0) > 0 ? (a[j + 38 >> 0] | 0) == 0 : 0) ? (a[k + 38 >> 0] | 0) == 0 :
0) {
l = c[j + 8 >> 2] | 0;
m = l + 4 | 0;
n = e[m >> 1] | 0;
if ((n & 2 | 0) == 0) {
b[m >> 1] = n | 2;
g[l + 160 >> 2] = 0
}
l = c[k + 8 >> 2] | 0;
n = l + 4 | 0;
m = e[n >> 1] | 0;
if ((m & 2 | 0) == 0) {
b[n >> 1] = m | 2;
g[l + 160 >> 2] = 0
}
}
gb[c[6160 + ((c[(c[j + 12 >> 2] | 0) + 4 >> 2] | 0) * 48 | 0) + ((c[(c[k + 12 >> 2] | 0) + 4 >> 2] | 0) * 12 | 0) + 4 >> 2] & 63](d, f);
i = h;
return
}
function wi(a, b, d, e, f) {
a = a | 0;
b = b | 0;
d = d | 0;
e = e | 0;
f = f | 0;
var h = 0,
j = 0,
k = 0,
l = 0;
h = i;
c[a >> 2] = 6368;
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;
j = d + 40 | 0;
do {
c[d >> 2] = 0;
d = d + 4 | 0
} while ((d | 0) < (j |
0));
g[a + 136 >> 2] = +Q(+(+g[f >> 2] * +g[e + 16 >> 2]));
k = +g[b + 20 >> 2];
l = +g[e + 20 >> 2];
g[a + 140 >> 2] = k > l ? k : l;
g[a + 144 >> 2] = 0;
i = h;
return
}
function xi(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 + 0 | 0;
m = k + 0 | 0;
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) {
pb[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 + (x * 20 | 0) + 72 >> 2] = 0;
g[d + (x * 20 | 0) + 76 >> 2] = 0;
x = x + 1 | 0;
if ((x | 0) >= (c[k >> 2] | 0))
break a
}
}
do {
x = d + (w * 20 | 0) + 72 | 0;
g[x >> 2] = 0;
y = d + (w * 20 | 0) + 76 | 0;
g[y >> 2] = 0;
z = c[d + (w * 20 | 0) + 80 >> 2] | 0;
A = 0;
while (1) {
B = A + 1 | 0;
if ((c[j + (A * 20 | 0) + 16 >> 2] | 0) == (z | 0)) {
C = 7;
break
}
if ((B | 0) < (v | 0))
A = B;
else
break
}
if ((C | 0) == 7) {
C = 0;
g[x >> 2] = +g[j + (A * 20 | 0) + 8 >> 2];
g[y >> 2] = +g[j + (A * 20 | 0) + 12 >> 2]
}
w = w + 1 | 0
} while ((w | 0) < (c[k >> 2] | 0))
}
while (0);
k = n & 1;
if (u ^ (k | 0) !=
0) {
w = q + 4 | 0;
C = e[w >> 1] | 0;
if ((C & 2 | 0) == 0) {
b[w >> 1] = C | 2;
g[q + 160 >> 2] = 0
}
q = r + 4 | 0;
C = e[q >> 1] | 0;
if ((C & 2 | 0) == 0) {
b[q >> 1] = C | 2;
g[r + 160 >> 2] = 0;
D = k;
E = u
} else {
D = k;
E = u
}
} else {
D = k;
E = u
}
} else {
u = lf(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 = E ^ 1;
m = (f | 0) == 0;
if (!(u ^ 1 | D | m))
gb[c[(c[f >> 2] | 0) + 8 >> 2] & 63](f, d);
if (!(u | E | m))
gb[c[(c[f >> 2] | 0) + 12 >> 2] & 63](f, d);
if (p | D | m) {
i = h;
return
}
ib[c[(c[f >> 2] | 0) + 32 >> 2] & 7](f, d, j);
i = h;
return
}
function yi(a) {
a = a | 0;
return
}
function zi(a) {
a =
a | 0;
var b = 0;
b = i;
sn(a);
i = b;
return
}
function Ai(a, b, d, e, f) {
a = a | 0;
b = b | 0;
d = d | 0;
e = e | 0;
f = f | 0;
var g = 0;
e = i;
b = Em(f, 148) | 0;
if ((b | 0) == 0) {
g = 0;
i = e;
return g | 0
}
wi(b, a, 0, d, 0);
c[b >> 2] = 6392;
g = b;
i = e;
return g | 0
}
function Bi(a, b) {
a = a | 0;
b = b | 0;
var d = 0;
d = i;
eb[c[(c[a >> 2] | 0) + 4 >> 2] & 127](a);
Fm(b, a, 148);
i = d;
return
}
function Ci(a, b, d, e) {
a = a | 0;
b = b | 0;
d = d | 0;
e = e | 0;
var f = 0;
f = i;
Ue(b, c[(c[a + 48 >> 2] | 0) + 12 >> 2] | 0, d, c[(c[a + 52 >> 2] | 0) + 12 >> 2] | 0, e);
i = f;
return
}
function Di(a) {
a = a | 0;
return
}
function Ei(a) {
a = a | 0;
var b = 0;
b = i;
sn(a);
i = b;
return
}
function Fi(a,
b, d, e, f) {
a = a | 0;
b = b | 0;
d = d | 0;
e = e | 0;
f = f | 0;
var g = 0;
e = i;
b = Em(f, 148) | 0;
if ((b | 0) == 0) {
g = 0;
i = e;
return g | 0
}
wi(b, a, 0, d, 0);
c[b >> 2] = 6464;
g = b;
i = e;
return g | 0
}
function Gi(a, b) {
a = a | 0;
b = b | 0;
var d = 0;
d = i;
eb[c[(c[a >> 2] | 0) + 4 >> 2] & 127](a);
Fm(b, a, 148);
i = d;
return
}
function Hi(a, b, d, e) {
a = a | 0;
b = b | 0;
d = d | 0;
e = e | 0;
var f = 0;
f = i;
Te(b, c[(c[a + 48 >> 2] | 0) + 12 >> 2] | 0, d, c[(c[a + 52 >> 2] | 0) + 12 >> 2] | 0, e);
i = f;
return
}
function Ii(a) {
a = a | 0;
return
}
function Ji(a) {
a = a | 0;
var b = 0;
b = i;
sn(a);
i = b;
return
}
function Ki(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;
e = i;
c[b + 0 >> 2] = c[d + 0 >> 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];
f = c[d + 44 >> 2] | 0;
h = b + 36 | 0;
c[h >> 2] = f;
j = c[d + 32 >> 2] | 0;
k = b + 52 | 0;
c[k >> 2] = j;
l = b + 40 | 0;
c[l >> 2] = Ym(f, j * 88 | 0) | 0;
j = Ym(c[h >> 2] | 0, (c[k >> 2] | 0) * 156 | 0) | 0;
h = b + 44 | 0;
c[h >> 2] = j;
c[b + 28 >> 2] = c[d + 36 >> 2];
c[b + 32 >> 2] = c[d + 40 >> 2];
f = c[d + 28 >> 2] | 0;
d = b + 48 | 0;
c[d >> 2] = f;
if ((c[k >> 2] | 0) <= 0) {
i = e;
return
}
m = b + 24 | 0;
n = b + 8 | 0;
b = f;
f = j;
j = 0;
while (1) {
o = c[b + (j << 2) >> 2] | 0;
p = c[o + 48 >> 2] | 0;
q = c[o + 52 >> 2] | 0;
r = +g[(c[p + 12 >> 2] | 0) + 8 >> 2];
s = +g[(c[q + 12 >> 2] | 0) + 8 >> 2];
t = c[p + 8 >> 2] | 0;
p = c[q + 8 >> 2] | 0;
q = c[o + 124 >> 2] | 0;
g[f + (j * 156 | 0) + 136 >> 2] = +g[o + 136 >> 2];
g[f + (j * 156 | 0) + 140 >> 2] = +g[o + 140 >> 2];
g[f + (j * 156 | 0) + 144 >> 2] = +g[o + 144 >> 2];
u = t + 8 | 0;
c[f + (j * 156 | 0) + 112 >> 2] = c[u >> 2];
v = p + 8 | 0;
c[f + (j * 156 | 0) + 116 >> 2] = c[v >> 2];
w = t + 136 | 0;
g[f + (j * 156 | 0) + 120 >> 2] = +g[w >> 2];
x = p + 136 | 0;
g[f + (j * 156 | 0) + 124 >> 2] = +g[x >> 2];
y = t + 144 | 0;
g[f + (j * 156 | 0) + 128 >> 2] = +g[y >> 2];
z = p + 144 | 0;
g[f + (j * 156 | 0) + 132 >> 2] = +g[z >> 2];
c[f + (j * 156 | 0) + 152 >> 2] = j;
c[f + (j * 156 | 0) + 148 >> 2] = q;
A = f + (j * 156 | 0) + 80 | 0;
c[A + 0 >> 2] = 0;
c[A + 4 >> 2] = 0;
c[A + 8 >> 2] = 0;
c[A + 12 >> 2] = 0;
c[A + 16 >> 2] = 0;
c[A + 20 >> 2] = 0;
c[A + 24 >> 2] = 0;
c[A + 28 >> 2] = 0;
A = c[l >> 2] | 0;
c[A + (j * 88 | 0) + 32 >> 2] = c[u >> 2];
c[A + (j * 88 | 0) + 36 >> 2] = c[v >> 2];
g[A + (j * 88 | 0) + 40 >> 2] = +g[w >> 2];
g[A + (j * 88 | 0) + 44 >> 2] = +g[x >> 2];
x = t + 44 | 0;
t = c[x + 4 >> 2] | 0;
w = A + (j * 88 | 0) + 48 | 0;
c[w >> 2] = c[x >> 2];
c[w + 4 >> 2] = t;
t = p + 44 | 0;
p = c[t + 4 >> 2] | 0;
w = A + (j * 88 | 0) + 56 | 0;
c[w >> 2] = c[t >> 2];
c[w + 4 >> 2] = p;
g[A + (j * 88 | 0) + 64 >> 2] = +g[y >> 2];
g[A + (j * 88 | 0) + 68 >> 2] = +g[z >> 2];
z = o + 104 | 0;
y =
c[z + 4 >> 2] | 0;
p = A + (j * 88 | 0) + 16 | 0;
c[p >> 2] = c[z >> 2];
c[p + 4 >> 2] = y;
y = o + 112 | 0;
p = c[y + 4 >> 2] | 0;
z = A + (j * 88 | 0) + 24 | 0;
c[z >> 2] = c[y >> 2];
c[z + 4 >> 2] = p;
c[A + (j * 88 | 0) + 84 >> 2] = q;
g[A + (j * 88 | 0) + 76 >> 2] = r;
g[A + (j * 88 | 0) + 80 >> 2] = s;
c[A + (j * 88 | 0) + 72 >> 2] = c[o + 120 >> 2];
if ((q | 0) > 0) {
p = 0;
do {
z = o + (p * 20 | 0) + 64 | 0;
if ((a[m >> 0] | 0) == 0) {
g[f + (j * 156 | 0) + (p * 36 | 0) + 16 >> 2] = 0;
g[f + (j * 156 | 0) + (p * 36 | 0) + 20 >> 2] = 0
} else {
g[f + (j * 156 | 0) + (p * 36 | 0) + 16 >> 2] = +g[n >> 2] * +g[o + (p * 20 | 0) + 72 >> 2];
g[f + (j * 156 | 0) + (p * 36 | 0) + 20 >> 2] = +g[n >> 2] * +g[o + (p * 20 | 0) + 76 >> 2]
}
y = f + (j * 156 | 0) + (p * 36 | 0) | 0;
g[f + (j *
156 | 0) + (p * 36 | 0) + 24 >> 2] = 0;
g[f + (j * 156 | 0) + (p * 36 | 0) + 28 >> 2] = 0;
g[f + (j * 156 | 0) + (p * 36 | 0) + 32 >> 2] = 0;
w = A + (j * 88 | 0) + (p << 3) | 0;
c[y + 0 >> 2] = 0;
c[y + 4 >> 2] = 0;
c[y + 8 >> 2] = 0;
c[y + 12 >> 2] = 0;
y = z;
z = c[y + 4 >> 2] | 0;
t = w;
c[t >> 2] = c[y >> 2];
c[t + 4 >> 2] = z;
p = p + 1 | 0
} while ((p | 0) != (q | 0))
}
q = j + 1 | 0;
if ((q | 0) >= (c[k >> 2] | 0))
break;
b = c[d >> 2] | 0;
f = c[h >> 2] | 0;
j = q
}
i = e;
return
}
function Li(a) {
a = a | 0;
var b = 0,
d = 0;
b = i;
d = a + 36 | 0;
_m(c[d >> 2] | 0, c[a + 44 >> 2] | 0);
_m(c[d >> 2] | 0, c[a + 40 >> 2] | 0);
i = b;
return
}
function Mi(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,
Q = 0,
R = 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;
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 = 0;
do {
s = c[j >> 2] | 0;
t = c[k >> 2] | 0;
u = +g[t + (r * 88 | 0) + 76 >> 2];
v = +g[t + (r * 88 | 0) + 80 >> 2];
w = (c[(c[l >> 2] | 0) + (c[s + (r * 156 | 0) + 152 >> 2] << 2) >> 2] | 0) + 64 | 0;
x = c[s + (r * 156 | 0) + 112 >> 2] | 0;
y = c[s + (r * 156 | 0) + 116 >> 2] |
0;
z = +g[s + (r * 156 | 0) + 120 >> 2];
A = +g[s + (r * 156 | 0) + 124 >> 2];
B = +g[s + (r * 156 | 0) + 128 >> 2];
C = +g[s + (r * 156 | 0) + 132 >> 2];
D = t + (r * 88 | 0) + 48 | 0;
E = +g[D >> 2];
F = +g[D + 4 >> 2];
D = t + (r * 88 | 0) + 56 | 0;
G = +g[D >> 2];
H = +g[D + 4 >> 2];
D = c[m >> 2] | 0;
t = D + (x * 12 | 0) | 0;
I = +g[t >> 2];
J = +g[t + 4 >> 2];
K = +g[D + (x * 12 | 0) + 8 >> 2];
t = c[n >> 2] | 0;
L = t + (x * 12 | 0) | 0;
M = +g[L >> 2];
N = +g[L + 4 >> 2];
O = +g[t + (x * 12 | 0) + 8 >> 2];
x = D + (y * 12 | 0) | 0;
P = +g[x >> 2];
Q = +g[x + 4 >> 2];
R = +g[D + (y * 12 | 0) + 8 >> 2];
D = t + (y * 12 | 0) | 0;
U = +g[D >> 2];
V = +g[D + 4 >> 2];
W = +g[t + (y * 12 | 0) + 8 >> 2];
X = +T(+K);
g[a >> 2] = X;
Y = +S(+K);
g[o >> 2] = Y;
K = +T(+R);
g[p >> 2] = K;
Z = +S(+R);
g[q >> 2] = Z;
R = +(I - (E * Y - F * X));
_ = +(J - (F * Y + E * X));
y = d;
g[y >> 2] = R;
g[y + 4 >> 2] = _;
_ = +(P - (G * Z - H * K));
R = +(Q - (H * Z + G * K));
y = e;
g[y >> 2] = _;
g[y + 4 >> 2] = R;
jf(f, w, d, u, e, v);
w = s + (r * 156 | 0) + 72 | 0;
y = f;
t = c[y + 4 >> 2] | 0;
D = w;
c[D >> 2] = c[y >> 2];
c[D + 4 >> 2] = t;
t = s + (r * 156 | 0) + 148 | 0;
D = c[t >> 2] | 0;
do if ((D | 0) > 0) {
y = s + (r * 156 | 0) + 76 | 0;
v = z + A;
x = s + (r * 156 | 0) + 140 | 0;
L = 0;
do {
$ = f + (L << 3) + 8 | 0;
u = +g[$ >> 2] - I;
aa = f + (L << 3) + 12 | 0;
R = +u;
_ = +(+g[aa >> 2] - J);
ba = s + (r * 156 | 0) + (L * 36 | 0) | 0;
g[ba >> 2] = R;
g[ba + 4 >> 2] = _;
_ = +g[$ >> 2] - P;
R = +_;
K = +(+g[aa >> 2] - Q);
aa = s + (r * 156 | 0) + (L *
36 | 0) + 8 | 0;
g[aa >> 2] = R;
g[aa + 4 >> 2] = K;
K = +g[y >> 2];
R = +g[s + (r * 156 | 0) + (L * 36 | 0) + 4 >> 2];
G = +g[w >> 2];
Z = u * K - R * G;
H = +g[s + (r * 156 | 0) + (L * 36 | 0) + 12 >> 2];
X = K * _ - G * H;
G = v + Z * B * Z + X * C * X;
if (G > 0)
ca = 1 / G;
else
ca = 0;
g[s + (r * 156 | 0) + (L * 36 | 0) + 24 >> 2] = ca;
G = +g[y >> 2];
X = -+g[w >> 2];
Z = u * X - G * R;
K = _ * X - G * H;
G = v + Z * B * Z + K * C * K;
if (G > 0)
da = 1 / G;
else
da = 0;
g[s + (r * 156 | 0) + (L * 36 | 0) + 28 >> 2] = da;
aa = s + (r * 156 | 0) + (L * 36 | 0) + 32 | 0;
g[aa >> 2] = 0;
G = +g[w >> 2] * (U - W * H - M + O * R) + +g[y >> 2] * (V + W * _ - N - O * u);
if (G < -1)
g[aa >> 2] = -(G * +g[x >> 2]);
L = L + 1 | 0
} while ((L | 0) != (D | 0));
if ((c[t >> 2] | 0) == 2) {
v = +g[s +
(r * 156 | 0) + 76 >> 2];
G = +g[w >> 2];
u = +g[s + (r * 156 | 0) >> 2] * v - +g[s + (r * 156 | 0) + 4 >> 2] * G;
_ = v * +g[s + (r * 156 | 0) + 8 >> 2] - G * +g[s + (r * 156 | 0) + 12 >> 2];
R = v * +g[s + (r * 156 | 0) + 36 >> 2] - G * +g[s + (r * 156 | 0) + 40 >> 2];
H = v * +g[s + (r * 156 | 0) + 44 >> 2] - G * +g[s + (r * 156 | 0) + 48 >> 2];
G = z + A;
v = B * u;
K = C * _;
Z = G + u * v + _ * K;
_ = G + R * B * R + H * C * H;
u = G + v * R + K * H;
H = Z * _ - u * u;
if (!(Z * Z < H * 1E3)) {
c[t >> 2] = 1;
break
}
g[s + (r * 156 | 0) + 96 >> 2] = Z;
g[s + (r * 156 | 0) + 100 >> 2] = u;
g[s + (r * 156 | 0) + 104 >> 2] = u;
g[s + (r * 156 | 0) + 108 >> 2] = _;
if (H != 0)
ea = 1 / H;
else
ea = H;
H = -(ea * u);
g[s + (r * 156 | 0) + 80 >> 2] = _ * ea;
g[s + (r * 156 | 0) + 84 >> 2] =
H;
g[s + (r * 156 | 0) + 88 >> 2] = H;
g[s + (r * 156 | 0) + 92 >> 2] = Z * ea
}
}
while (0);
r = r + 1 | 0
} while ((r | 0) < (c[h >> 2] | 0));
i = b;
return
}
function Ni(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,
Q = 0,
R = 0,
S = 0,
T = 0;
b = i;
d = a + 52 | 0;
if ((c[d >> 2] | 0) <= 0) {
i = b;
return
}
e = a + 44 | 0;
f = a + 32 | 0;
a = c[f >> 2] | 0;
h = 0;
do {
j = c[e >> 2] | 0;
k = c[j + (h * 156 | 0) + 112 >> 2] | 0;
l = c[j + (h * 156 | 0) + 116 >> 2] | 0;
m = +g[j + (h * 156 | 0) + 120 >> 2];
n = +g[j + (h * 156 | 0) + 128 >> 2];
o = +g[j + (h *
156 | 0) + 124 >> 2];
p = +g[j + (h * 156 | 0) + 132 >> 2];
q = c[j + (h * 156 | 0) + 148 >> 2] | 0;
r = a + (k * 12 | 0) | 0;
s = r;
t = +g[s >> 2];
u = +g[s + 4 >> 2];
v = +g[a + (k * 12 | 0) + 8 >> 2];
s = a + (l * 12 | 0) | 0;
w = +g[s >> 2];
x = +g[s + 4 >> 2];
y = +g[a + (l * 12 | 0) + 8 >> 2];
s = j + (h * 156 | 0) + 72 | 0;
z = +g[s >> 2];
A = +g[s + 4 >> 2];
if ((q | 0) > 0) {
B = t;
C = u;
D = w;
E = x;
s = 0;
F = v;
G = y;
while (1) {
H = +g[j + (h * 156 | 0) + (s * 36 | 0) + 16 >> 2];
I = +g[j + (h * 156 | 0) + (s * 36 | 0) + 20 >> 2];
J = z * H + A * I;
K = A * H - z * I;
I = F - n * (+g[j + (h * 156 | 0) + (s * 36 | 0) >> 2] * K - +g[j + (h * 156 | 0) + (s * 36 | 0) + 4 >> 2] * J);
H = B - m * J;
L = C - m * K;
M = G + p * (K * +g[j + (h * 156 | 0) + (s * 36 | 0) + 8 >> 2] - J * +g[j +
(h * 156 | 0) + (s * 36 | 0) + 12 >> 2]);
N = D + o * J;
J = E + o * K;
s = s + 1 | 0;
if ((s | 0) == (q | 0)) {
O = L;
P = J;
Q = N;
R = H;
S = I;
T = M;
break
} else {
B = H;
C = L;
D = N;
E = J;
F = I;
G = M
}
}
} else {
O = u;
P = x;
Q = w;
R = t;
S = v;
T = y
}
G = +R;
F = +O;
q = r;
g[q >> 2] = G;
g[q + 4 >> 2] = F;
q = c[f >> 2] | 0;
g[q + (k * 12 | 0) + 8 >> 2] = S;
F = +Q;
G = +P;
s = q + (l * 12 | 0) | 0;
g[s >> 2] = F;
g[s + 4 >> 2] = G;
a = c[f >> 2] | 0;
g[a + (l * 12 | 0) + 8 >> 2] = T;
h = h + 1 | 0
} while ((h | 0) < (c[d >> 2] | 0));
i = b;
return
}
function Oi(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,
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 = i;
d = a + 52 | 0;
if ((c[d >> 2] | 0) <= 0) {
i = b;
return
}
e = a + 44 | 0;
f = a + 32 | 0;
a = c[f >> 2] | 0;
h = 0;
do {
j = c[e >> 2] | 0;
k = j + (h * 156 | 0) | 0;
l = c[j + (h * 156 | 0) + 112 >> 2] | 0;
m = c[j + (h * 156 | 0) + 116 >> 2] | 0;
n = +g[j + (h * 156 | 0) + 120 >> 2];
o = +g[j + (h * 156 | 0) + 128 >> 2];
p = +g[j + (h * 156 | 0) + 124 >> 2];
q = +g[j + (h * 156 | 0) + 132 >> 2];
r = j + (h * 156 | 0) + 148 | 0;
s = c[r >> 2] | 0;
t = a + (l * 12 | 0) | 0;
u = t;
v = +g[u >> 2];
w = +g[u + 4 >> 2];
x =
+g[a + (l * 12 | 0) + 8 >> 2];
u = a + (m * 12 | 0) | 0;
y = +g[u >> 2];
z = +g[u + 4 >> 2];
A = +g[a + (m * 12 | 0) + 8 >> 2];
u = j + (h * 156 | 0) + 72 | 0;
B = +g[u >> 2];
C = +g[u + 4 >> 2];
D = -B;
E = +g[j + (h * 156 | 0) + 136 >> 2];
if ((s | 0) > 0) {
u = j + (h * 156 | 0) + 144 | 0;
F = y;
G = z;
H = v;
I = w;
J = 0;
K = x;
L = A;
do {
M = +g[j + (h * 156 | 0) + (J * 36 | 0) + 12 >> 2];
N = +g[j + (h * 156 | 0) + (J * 36 | 0) + 8 >> 2];
O = +g[j + (h * 156 | 0) + (J * 36 | 0) + 4 >> 2];
P = +g[j + (h * 156 | 0) + (J * 36 | 0) >> 2];
Q = E * +g[j + (h * 156 | 0) + (J * 36 | 0) + 16 >> 2];
R = j + (h * 156 | 0) + (J * 36 | 0) + 20 | 0;
S = +g[R >> 2];
T = S - +g[j + (h * 156 | 0) + (J * 36 | 0) + 28 >> 2] * (C * (F - L * M - H + K * O) + (G + L * N - I - K * P) * D - +g[u >> 2]);
U = -Q;
V = T < Q ? T : Q;
Q = V < U ? U : V;
V = Q - S;
g[R >> 2] = Q;
Q = C * V;
S = V * D;
H = H - n * Q;
I = I - n * S;
K = K - o * (P * S - O * Q);
F = F + p * Q;
G = G + p * S;
L = L + q * (N * S - M * Q);
J = J + 1 | 0
} while ((J | 0) != (s | 0));
if ((c[r >> 2] | 0) == 1) {
D = +g[j + (h * 156 | 0) + 12 >> 2];
E = +g[j + (h * 156 | 0) + 8 >> 2];
Q = +g[j + (h * 156 | 0) + 4 >> 2];
M = +g[k >> 2];
s = j + (h * 156 | 0) + 16 | 0;
S = +g[s >> 2];
N = S - +g[j + (h * 156 | 0) + 24 >> 2] * (B * (F - L * D - H + K * Q) + C * (G + L * E - I - K * M) - +g[j + (h * 156 | 0) + 32 >> 2]);
O = N > 0 ? N : 0;
N = O - S;
g[s >> 2] = O;
O = B * N;
S = C * N;
W = H - n * O;
X = I - n * S;
Y = F + p * O;
Z = G + p * S;
_ = K - o * (M * S - Q * O);
$ = L + q * (E * S - D * O)
} else {
aa = I;
ba = H;
ca = G;
da = F;
ea = K;
fa = L;
ga = 8
}
} else {
aa =
w;
ba = v;
ca = z;
da = y;
ea = x;
fa = A;
ga = 8
}
do if ((ga | 0) == 8) {
ga = 0;
s = j + (h * 156 | 0) + 16 | 0;
O = +g[s >> 2];
J = j + (h * 156 | 0) + 52 | 0;
D = +g[J >> 2];
S = +g[j + (h * 156 | 0) + 12 >> 2];
E = +g[j + (h * 156 | 0) + 8 >> 2];
Q = +g[j + (h * 156 | 0) + 4 >> 2];
M = +g[k >> 2];
N = +g[j + (h * 156 | 0) + 48 >> 2];
P = +g[j + (h * 156 | 0) + 44 >> 2];
V = +g[j + (h * 156 | 0) + 40 >> 2];
U = +g[j + (h * 156 | 0) + 36 >> 2];
T = +g[j + (h * 156 | 0) + 104 >> 2];
ha = +g[j + (h * 156 | 0) + 100 >> 2];
ia = B * (da - fa * S - ba + ea * Q) + C * (ca + fa * E - aa - ea * M) - +g[j + (h * 156 | 0) + 32 >> 2] - (O * +g[j + (h * 156 | 0) + 96 >> 2] + D * T);
ja = B * (da - fa * N - ba + ea * V) + C * (ca + fa * P - aa - ea * U) - +g[j + (h * 156 | 0) + 68 >> 2] -
(O * ha + D * +g[j + (h * 156 | 0) + 108 >> 2]);
ka = +g[j + (h * 156 | 0) + 80 >> 2] * ia + +g[j + (h * 156 | 0) + 88 >> 2] * ja;
la = ia * +g[j + (h * 156 | 0) + 84 >> 2] + ja * +g[j + (h * 156 | 0) + 92 >> 2];
ma = -ka;
na = -la;
if (!(!(ka <= -0) | !(la <= -0))) {
la = ma - O;
ka = na - D;
oa = B * la;
pa = C * la;
la = B * ka;
qa = C * ka;
ka = oa + la;
ra = pa + qa;
g[s >> 2] = ma;
g[J >> 2] = na;
W = ba - n * ka;
X = aa - n * ra;
Y = da + p * ka;
Z = ca + p * ra;
_ = ea - o * (M * pa - Q * oa + (U * qa - V * la));
$ = fa + q * (E * pa - S * oa + (P * qa - N * la));
break
}
la = ia * +g[j + (h * 156 | 0) + 24 >> 2];
qa = -la;
if (la <= -0 ? ja + ha * qa >= 0 : 0) {
ha = qa - O;
la = 0 - D;
oa = B * ha;
pa = C * ha;
ha = B * la;
ra = C * la;
la = ha + oa;
ka = ra + pa;
g[s >> 2] = qa;
g[J >> 2] = 0;
W = ba - n * la;
X = aa - n * ka;
Y = da + p * la;
Z = ca + p * ka;
_ = ea - o * (pa * M - oa * Q + (ra * U - ha * V));
$ = fa + q * (pa * E - oa * S + (ra * P - ha * N));
break
}
ha = ja * +g[j + (h * 156 | 0) + 60 >> 2];
ra = -ha;
if (ha <= -0 ? ia + T * ra >= 0 : 0) {
T = 0 - O;
ha = ra - D;
oa = B * T;
pa = C * T;
T = B * ha;
ka = C * ha;
ha = oa + T;
la = pa + ka;
g[s >> 2] = 0;
g[J >> 2] = ra;
W = ba - n * ha;
X = aa - n * la;
Y = da + p * ha;
Z = ca + p * la;
_ = ea - o * (pa * M - oa * Q + (ka * U - T * V));
$ = fa + q * (pa * E - oa * S + (ka * P - T * N));
break
}
if (!(ia >= 0) | !(ja >= 0)) {
W = ba;
X = aa;
Y = da;
Z = ca;
_ = ea;
$ = fa
} else {
ja = 0 - O;
O = 0 - D;
D = B * ja;
ia = C * ja;
ja = B * O;
T = C * O;
O = D + ja;
ka = ia + T;
g[s >> 2] = 0;
g[J >>
2] = 0;
W = ba - n * O;
X = aa - n * ka;
Y = da + p * O;
Z = ca + p * ka;
_ = ea - o * (ia * M - D * Q + (T * U - ja * V));
$ = fa + q * (ia * E - D * S + (T * P - ja * N))
}
}
while (0);
q = +W;
o = +X;
j = t;
g[j >> 2] = q;
g[j + 4 >> 2] = o;
j = c[f >> 2] | 0;
g[j + (l * 12 | 0) + 8 >> 2] = _;
o = +Y;
q = +Z;
k = j + (m * 12 | 0) | 0;
g[k >> 2] = o;
g[k + 4 >> 2] = q;
a = c[f >> 2] | 0;
g[a + (m * 12 | 0) + 8 >> 2] = $;
h = h + 1 | 0
} while ((h | 0) < (c[d >> 2] | 0));
i = b;
return
}
function Pi(a) {
a = a | 0;
var b = 0,
d = 0,
e = 0,
f = 0,
h = 0,
j = 0,
k = 0;
b = i;
d = c[a + 52 >> 2] | 0;
if ((d | 0) <= 0) {
i = b;
return
}
e = c[a + 44 >> 2] | 0;
f = c[a + 48 >> 2] | 0;
a = 0;
do {
h = c[f + (c[e + (a * 156 | 0) + 152 >> 2] << 2) >> 2] | 0;
j = c[e + (a * 156 | 0) + 148 >> 2] | 0;
if ((j | 0) > 0) {
k = 0;
do {
g[h + (k * 20 | 0) + 72 >> 2] = +g[e + (a * 156 | 0) + (k * 36 | 0) + 16 >> 2];
g[h + (k * 20 | 0) + 76 >> 2] = +g[e + (a * 156 | 0) + (k * 36 | 0) + 20 >> 2];
k = k + 1 | 0
} while ((k | 0) < (j | 0))
}
a = a + 1 | 0
} while ((a | 0) < (d | 0));
i = b;
return
}
function Qi(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,
Q = 0,
R = 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;
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;
k = j >= -.014999999664723873;
i = b;
return k | 0
}
l = a + 40 | 0;
m = a + 28 | 0;
a = d + 8 | 0;
n = d + 12 | 0;
o = e + 8 | 0;
p = e + 12 | 0;
q = f + 8 | 0;
r = f + 16 | 0;
s = c[m >> 2] | 0;
t = 0;
u = 0;
while (1) {
v = c[l >> 2] | 0;
w = v + (t * 88 | 0) | 0;
x = c[v + (t * 88 | 0) + 32 >> 2] | 0;
y = c[v + (t * 88 | 0) + 36 >> 2] | 0;
z = v + (t * 88 | 0) + 48 | 0;
A = +g[z >> 2];
B = +g[z + 4 >> 2];
C = +g[v + (t * 88 | 0) + 40 >> 2];
D = +g[v + (t * 88 | 0) + 64 >> 2];
z = v + (t * 88 | 0) + 56 | 0;
E = +g[z >> 2];
F = +g[z + 4 >> 2];
G = +g[v + (t * 88 | 0) + 44 >> 2];
H = +g[v + (t * 88 | 0) + 68 >> 2];
z = c[v + (t * 88 | 0) + 84 >> 2] | 0;
v = s + (x * 12 | 0) | 0;
I = +g[v >> 2];
J = +g[v + 4 >> 2];
K =
+g[s + (x * 12 | 0) + 8 >> 2];
v = s + (y * 12 | 0) | 0;
L = +g[v >> 2];
M = +g[v + 4 >> 2];
N = +g[s + (y * 12 | 0) + 8 >> 2];
if ((z | 0) > 0) {
O = C + G;
P = I;
Q = J;
R = L;
U = M;
V = K;
W = N;
v = 0;
X = u;
do {
Y = +T(+V);
g[a >> 2] = Y;
Z = +S(+V);
g[n >> 2] = Z;
_ = +T(+W);
g[o >> 2] = _;
$ = +S(+W);
g[p >> 2] = $;
aa = +(P - (A * Z - B * Y));
ba = +(Q - (B * Z + A * Y));
ca = d;
g[ca >> 2] = aa;
g[ca + 4 >> 2] = ba;
ba = +(R - (E * $ - F * _));
aa = +(U - (F * $ + E * _));
ca = e;
g[ca >> 2] = ba;
g[ca + 4 >> 2] = aa;
Ri(f, w, d, e, v);
ca = f;
aa = +g[ca >> 2];
ba = +g[ca + 4 >> 2];
ca = q;
_ = +g[ca >> 2];
$ = +g[ca + 4 >> 2];
Y = +g[r >> 2];
Z = _ - P;
da = $ - Q;
ea = _ - R;
_ = $ - U;
X = X < Y ? X : Y;
$ = (Y + .004999999888241291) * .20000000298023224;
Y = $ < 0 ? $ : 0;
$ = ba * Z - aa * da;
fa = ba * ea - aa * _;
ga = fa * H * fa + (O + $ * D * $);
if (ga > 0)
ha = -(Y < -.20000000298023224 ? -.20000000298023224 : Y) / ga;
else
ha = 0;
ga = aa * ha;
aa = ba * ha;
P = P - C * ga;
Q = Q - C * aa;
V = V - D * (Z * aa - da * ga);
R = R + G * ga;
U = U + G * aa;
W = W + H * (ea * aa - _ * ga);
v = v + 1 | 0
} while ((v | 0) != (z | 0));
ia = Q;
ja = P;
ka = U;
la = R;
ma = c[m >> 2] | 0;
na = V;
oa = W;
pa = X
} else {
ia = J;
ja = I;
ka = M;
la = L;
ma = s;
na = K;
oa = N;
pa = u
}
H = +ja;
G = +ia;
z = ma + (x * 12 | 0) | 0;
g[z >> 2] = H;
g[z + 4 >> 2] = G;
z = c[m >> 2] | 0;
g[z + (x * 12 | 0) + 8 >> 2] = na;
G = +la;
H = +ka;
v = z + (y * 12 | 0) | 0;
g[v >> 2] = G;
g[v + 4 >> 2] = H;
s = c[m >> 2] | 0;
g[s + (y * 12 | 0) + 8 >>
2] = oa;
t = t + 1 | 0;
if ((t | 0) >= (c[h >> 2] | 0)) {
j = pa;
break
} else
u = pa
}
k = j >= -.014999999664723873;
i = b;
return k | 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,
j = 0,
k = 0,
l = 0,
m = 0,
n = 0,
o = 0,
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;
j = c[b + 72 >> 2] | 0;
if ((j | 0) == 2) {
k = e + 12 | 0;
l = +g[k >> 2];
m = +g[b + 16 >> 2];
n = e + 8 | 0;
o = +g[n >> 2];
p = +g[b + 20 >> 2];
q = l * m - o * p;
r = m * o + l * p;
p = +q;
l = +r;
s = a;
g[s >> 2] = p;
g[s + 4 >> 2] = l;
l = +g[k >> 2];
p = +g[b + 24 >> 2];
o = +g[n >> 2];
m = +g[b + 28 >> 2];
t = +g[d + 12 >> 2];
u = +g[b + (f << 3) >> 2];
v = +g[d + 8 >> 2];
w = +g[b + (f << 3) + 4 >> 2];
x = +g[d >> 2] + (t * u - v * w);
y = u * v + t * w + +g[d + 4 >> 2];
g[a + 16 >> 2] = q * (x - (+g[e >> 2] + (l * p - o * m))) + (y - (p * o + l * m + +g[e + 4 >> 2])) * r - +g[b + 76 >> 2] - +g[b + 80 >> 2];
m = +x;
x = +y;
n = a + 8 | 0;
g[n >> 2] = m;
g[n + 4 >> 2] = x;
x = +-q;
q = +-r;
n = a;
g[n >> 2] = x;
g[n + 4 >> 2] = q;
i = h;
return
} else if ((j | 0) == 1) {
n = d + 12 | 0;
q = +g[n >> 2];
x = +g[b + 16 >> 2];
k = d + 8 | 0;
r = +g[k >> 2];
m = +g[b + 20 >> 2];
y = q * x - r * m;
l = x * r + q * m;
m = +y;
q = +l;
s = a;
g[s >> 2] = m;
g[s + 4 >> 2] = q;
q = +g[n >> 2];
m = +g[b + 24 >> 2];
r = +g[k >> 2];
x = +g[b + 28 >> 2];
o = +g[e + 12 >> 2];
p = +g[b + (f << 3) >> 2];
w = +g[e + 8 >> 2];
t = +g[b + (f << 3) + 4 >> 2];
v = +g[e >> 2] + (o * p - w * t);
u =
p * w + o * t + +g[e + 4 >> 2];
g[a + 16 >> 2] = y * (v - (+g[d >> 2] + (q * m - r * x))) + (u - (m * r + q * x + +g[d + 4 >> 2])) * l - +g[b + 76 >> 2] - +g[b + 80 >> 2];
l = +v;
v = +u;
f = a + 8 | 0;
g[f >> 2] = l;
g[f + 4 >> 2] = v;
i = h;
return
} else if ((j | 0) == 0) {
v = +g[d + 12 >> 2];
l = +g[b + 24 >> 2];
u = +g[d + 8 >> 2];
x = +g[b + 28 >> 2];
q = +g[d >> 2] + (v * l - u * x);
r = l * u + v * x + +g[d + 4 >> 2];
x = +g[e + 12 >> 2];
v = +g[b >> 2];
u = +g[e + 8 >> 2];
l = +g[b + 4 >> 2];
m = +g[e >> 2] + (x * v - u * l);
y = v * u + x * l + +g[e + 4 >> 2];
l = m - q;
x = y - r;
u = +l;
v = +x;
e = a;
g[e >> 2] = u;
g[e + 4 >> 2] = v;
v = +Q(+(l * l + x * x));
if (v < 1.1920928955078125E-7) {
z = l;
A = x
} else {
u = 1 / v;
v = l * u;
g[a >> 2] = v;
t =
x * u;
g[a + 4 >> 2] = t;
z = v;
A = t
}
t = +((q + m) * .5);
m = +((r + y) * .5);
e = a + 8 | 0;
g[e >> 2] = t;
g[e + 4 >> 2] = m;
g[a + 16 >> 2] = l * z + x * A - +g[b + 76 >> 2] - +g[b + 80 >> 2];
i = h;
return
} else {
g[a + 16 >> 2] = 0;
b = 8784;
e = c[b + 4 >> 2] | 0;
d = a;
c[d >> 2] = c[b >> 2];
c[d + 4 >> 2] = e;
e = 8784;
d = c[e + 4 >> 2] | 0;
b = a + 8 | 0;
c[b >> 2] = c[e >> 2];
c[b + 4 >> 2] = d;
i = h;
return
}
}
function Si(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,
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,
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 + 64 | 0;
f = e + 40 | 0;
h = e + 24 | 0;
j = e;
k = a + 52 | 0;
if ((c[k >> 2] | 0) <= 0) {
l = 0;
m = l >= -.007499999832361937;
i = 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 = j + 8 | 0;
t = j + 16 | 0;
u = 0;
v = 0;
while (1) {
w = c[n >> 2] | 0;
x = w + (u * 88 | 0) | 0;
y = c[w + (u * 88 | 0) + 32 >> 2] | 0;
z = c[w + (u * 88 | 0) + 36 >> 2] | 0;
A = w + (u * 88 | 0) + 48 | 0;
B = +g[A >> 2];
C = +g[A + 4 >> 2];
A = w + (u * 88 | 0) + 56 | 0;
D = +g[A >> 2];
E = +g[A + 4 >> 2];
A = c[w + (u * 88 | 0) + 84 >> 2] | 0;
if ((y | 0) == (b | 0) | (y | 0) == (d | 0)) {
F = +g[w +
(u * 88 | 0) + 64 >> 2];
G = +g[w + (u * 88 | 0) + 40 >> 2]
} else {
F = 0;
G = 0
}
if ((z | 0) == (b | 0) | (z | 0) == (d | 0)) {
H = +g[w + (u * 88 | 0) + 68 >> 2];
I = +g[w + (u * 88 | 0) + 44 >> 2]
} else {
H = 0;
I = 0
}
w = c[o >> 2] | 0;
J = w + (y * 12 | 0) | 0;
K = +g[J >> 2];
L = +g[J + 4 >> 2];
M = +g[w + (y * 12 | 0) + 8 >> 2];
J = w + (z * 12 | 0) | 0;
N = +g[J >> 2];
O = +g[J + 4 >> 2];
P = +g[w + (z * 12 | 0) + 8 >> 2];
if ((A | 0) > 0) {
Q = G + I;
R = N;
U = O;
V = K;
W = L;
X = M;
Y = P;
J = 0;
Z = v;
do {
_ = +T(+X);
g[a >> 2] = _;
$ = +S(+X);
g[p >> 2] = $;
aa = +T(+Y);
g[q >> 2] = aa;
ba = +S(+Y);
g[r >> 2] = ba;
ca = +(V - (B * $ - C * _));
da = +(W - (C * $ + B * _));
ea = f;
g[ea >> 2] = ca;
g[ea + 4 >> 2] = da;
da = +(R - (D * ba - E * aa));
ca = +(U -
(E * ba + D * aa));
ea = h;
g[ea >> 2] = da;
g[ea + 4 >> 2] = ca;
Ri(j, x, f, h, J);
ea = j;
ca = +g[ea >> 2];
da = +g[ea + 4 >> 2];
ea = s;
aa = +g[ea >> 2];
ba = +g[ea + 4 >> 2];
_ = +g[t >> 2];
$ = aa - V;
fa = ba - W;
ga = aa - R;
aa = ba - U;
Z = Z < _ ? Z : _;
ba = (_ + .004999999888241291) * .75;
_ = ba < 0 ? ba : 0;
ba = da * $ - ca * fa;
ha = da * ga - ca * aa;
ia = ha * H * ha + (Q + ba * F * ba);
if (ia > 0)
ja = -(_ < -.20000000298023224 ? -.20000000298023224 : _) / ia;
else
ja = 0;
ia = ca * ja;
ca = da * ja;
V = V - G * ia;
W = W - G * ca;
X = X - F * ($ * ca - fa * ia);
R = R + I * ia;
U = U + I * ca;
Y = Y + H * (ga * ca - aa * ia);
J = J + 1 | 0
} while ((J | 0) != (A | 0));
ka = W;
la = V;
ma = U;
na = R;
oa = c[o >> 2] | 0;
pa = X;
qa = Y;
ra = Z
} else {
ka = L;
la = K;
ma = O;
na = N;
oa = w;
pa = M;
qa = P;
ra = v
}
Q = +la;
D = +ka;
A = oa + (y * 12 | 0) | 0;
g[A >> 2] = Q;
g[A + 4 >> 2] = D;
A = c[o >> 2] | 0;
g[A + (y * 12 | 0) + 8 >> 2] = pa;
D = +na;
Q = +ma;
J = A + (z * 12 | 0) | 0;
g[J >> 2] = D;
g[J + 4 >> 2] = Q;
g[(c[o >> 2] | 0) + (z * 12 | 0) + 8 >> 2] = qa;
u = u + 1 | 0;
if ((u | 0) >= (c[k >> 2] | 0)) {
l = ra;
break
} else
v = ra
}
m = l >= -.007499999832361937;
i = e;
return m | 0
}
function Ti(a, b, d, e, f) {
a = a | 0;
b = b | 0;
d = d | 0;
e = e | 0;
f = f | 0;
var g = 0;
e = i;
b = Em(f, 148) | 0;
if ((b | 0) == 0) {
g = 0;
i = e;
return g | 0
}
wi(b, a, 0, d, 0);
c[b >> 2] = 6528;
g = b;
i = e;
return g | 0
}
function Ui(a, b) {
a = a | 0;
b = b | 0;
var d =
0;
d = i;
eb[c[(c[a >> 2] | 0) + 4 >> 2] & 127](a);
Fm(b, a, 148);
i = d;
return
}
function Vi(a, b, d, e) {
a = a | 0;
b = b | 0;
d = d | 0;
e = e | 0;
var f = 0;
f = i;
cf(b, c[(c[a + 48 >> 2] | 0) + 12 >> 2] | 0, d, c[(c[a + 52 >> 2] | 0) + 12 >> 2] | 0, e);
i = f;
return
}
function Wi(a) {
a = a | 0;
return
}
function Xi(a) {
a = a | 0;
var b = 0;
b = i;
sn(a);
i = b;
return
}
function Yi(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;
g = i;
h = Em(f, 148) | 0;
if ((h | 0) == 0) {
j = 0;
i = g;
return j | 0
}
wi(h, a, b, d, e);
c[h >> 2] = 6600;
j = h;
i = g;
return j | 0
}
function Zi(a, b) {
a = a | 0;
b = b | 0;
var d = 0;
d = i;
eb[c[(c[a >> 2] | 0) + 4 >> 2] & 127](a);
Fm(b, a, 148);
i = d;
return
}
function _i(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] = 488;
c[j + 4 >> 2] = 1;
g[j + 8 >> 2] = .009999999776482582;
l = j + 28 | 0;
c[l + 0 >> 2] = 0;
c[l + 4 >> 2] = 0;
c[l + 8 >> 2] = 0;
c[l + 12 >> 2] = 0;
b[l + 16 >> 1] = 0;
Ge(k, j, c[a + 56 >> 2] | 0);
cf(d, j, e, c[(c[a + 52 >> 2] | 0) + 12 >> 2] | 0, f);
i = h;
return
}
function $i(a) {
a = a | 0;
return
}
function aj(a) {
a = a | 0;
var b = 0;
b = i;
sn(a);
i = b;
return
}
function bj(a, b, d, e, f) {
a = a | 0;
b = b | 0;
d = d | 0;
e = e | 0;
f = f | 0;
var g = 0;
e = i;
b = Em(f, 148) | 0;
if ((b | 0) == 0) {
g = 0;
i = e;
return g | 0
}
wi(b, a, 0, d, 0);
c[b >> 2] = 6672;
g = b;
i = e;
return g | 0
}
function cj(a, b) {
a = a | 0;
b = b | 0;
var d = 0;
d = i;
eb[c[(c[a >> 2] | 0) + 4 >> 2] & 127](a);
Fm(b, a, 148);
i = d;
return
}
function dj(a, b, d, e) {
a = a | 0;
b = b | 0;
d = d | 0;
e = e | 0;
var f = 0;
f = i;
ff(b, c[(c[a + 48 >> 2] | 0) + 12 >> 2] | 0, d, c[(c[a + 52 >> 2] | 0) + 12 >> 2] | 0, e);
i = f;
return
}
function ej(a) {
a = a | 0;
return
}
function fj(a) {
a = a | 0;
var b = 0;
b = i;
sn(a);
i = b;
return
}
function gj(a, b, d, e, f) {
a = a | 0;
b = b | 0;
d = d | 0;
e = e | 0;
f = f | 0;
var g = 0;
e = i;
b = Em(f, 148) | 0;
if ((b | 0) == 0) {
g = 0;
i = e;
return g | 0
}
wi(b, a, 0, d, 0);
c[b >> 2] = 6744;
g = b;
i = e;
return g | 0
}
function hj(a, b) {
a = a | 0;
b = b | 0;
var d = 0;
d = i;
eb[c[(c[a >> 2] | 0) + 4 >> 2] & 127](a);
Fm(b, a, 148);
i = d;
return
}
function ij(a, b, d, e) {
a = a | 0;
b = b | 0;
d = d | 0;
e = e | 0;
var f = 0;
f = i;
gf(b, c[(c[a + 48 >> 2] | 0) + 12 >> 2] | 0, d, c[(c[a + 52 >> 2] | 0) + 12 >> 2] | 0, e);
i = f;
return
}
function jj(a) {
a = a | 0;
return
}
function kj(a) {
a = a | 0;
var b = 0;
b = i;
sn(a);
i = b;
return
}
function lj(a) {
a = a | 0;
var d = 0;
d = i;
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 + 0 >> 2] = 0;
c[a + 4 >> 2] = 0;
c[a + 8 >> 2] = 0;
c[a + 12 >> 2] = 0;
i = d;
return
}
function mj(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;
j = i;
c[d + 40 >> 2] = c[h + 4 >> 2];
g[d + 16 >> 2] = +g[h + 8 >> 2];
g[d + 20 >> 2] = +g[h + 12 >> 2];
c[d + 8 >> 2] = f;
c[d + 4 >> 2] = 0;
f = d + 32 | 0;
k = h + 22 | 0;
b[f + 0 >> 1] = b[k + 0 >> 1] | 0;
b[f + 2 >> 1] = b[k + 2 >> 1] | 0;
b[f + 4 >> 1] = b[k + 4 >> 1] | 0;
a[d + 38 >> 0] = a[h + 20 >> 0] | 0;
k = c[h >> 2] | 0;
f = nb[c[(c[k >> 2] | 0) + 8 >> 2] & 31](k, e) | 0;
c[d + 12 >> 2] = f;
k = bb[c[(c[f >> 2] | 0) + 12 >> 2] & 7](f) | 0;
f = Em(e, k * 28 | 0) | 0;
e = d + 24 | 0;
c[e >> 2] = f;
if ((k | 0) > 0) {
l = f;
m = 0
} else {
n = d + 28 | 0;
c[n >> 2] = 0;
o = h + 16 | 0;
p = +g[o >> 2];
g[d >> 2] = p;
i = j;
return
}
do {
c[l + (m * 28 | 0) + 16 >>
2] = 0;
l = c[e >> 2] | 0;
c[l + (m * 28 | 0) + 24 >> 2] = -1;
m = m + 1 | 0
} while ((m | 0) != (k | 0));
n = d + 28 | 0;
c[n >> 2] = 0;
o = h + 16 | 0;
p = +g[o >> 2];
g[d >> 2] = p;
i = j;
return
}
function nj(a, b) {
a = a | 0;
b = b | 0;
var d = 0,
e = 0,
f = 0,
g = 0;
d = i;
e = a + 12 | 0;
f = c[e >> 2] | 0;
g = bb[c[(c[f >> 2] | 0) + 12 >> 2] & 7](f) | 0;
f = a + 24 | 0;
Fm(b, c[f >> 2] | 0, g * 28 | 0);
c[f >> 2] = 0;
f = c[e >> 2] | 0;
g = c[f + 4 >> 2] | 0;
if ((g | 0) == 1) {
eb[c[c[f >> 2] >> 2] & 127](f);
Fm(b, f, 48);
c[e >> 2] = 0;
i = d;
return
} else if ((g | 0) == 3) {
eb[c[c[f >> 2] >> 2] & 127](f);
Fm(b, f, 40);
c[e >> 2] = 0;
i = d;
return
} else if ((g | 0) == 0) {
eb[c[c[f >> 2] >> 2] & 127](f);
Fm(b, f, 20);
c[e >> 2] = 0;
i = d;
return
} else if ((g | 0) == 2) {
eb[c[c[f >> 2] >> 2] & 127](f);
Fm(b, f, 152);
c[e >> 2] = 0;
i = d;
return
} else {
c[e >> 2] = 0;
i = d;
return
}
}
function oj(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;
e = i;
f = a + 12 | 0;
g = c[f >> 2] | 0;
h = bb[c[(c[g >> 2] | 0) + 12 >> 2] & 7](g) | 0;
g = a + 28 | 0;
c[g >> 2] = h;
if ((h | 0) <= 0) {
i = e;
return
}
h = a + 24 | 0;
j = 0;
do {
k = c[h >> 2] | 0;
l = k + (j * 28 | 0) | 0;
m = c[f >> 2] | 0;
pb[c[(c[m >> 2] | 0) + 28 >> 2] & 31](m, l, d, j);
c[k + (j * 28 | 0) + 24 >> 2] = Oe(b, l, l) | 0;
c[k + (j * 28 | 0) + 16 >> 2] = a;
c[k + (j * 28 | 0) + 20 >> 2] = j;
j = j + 1 | 0
} while ((j | 0) < (c[g >> 2] | 0));
i =
e;
return
}
function pj(a, b) {
a = a | 0;
b = b | 0;
var d = 0,
e = 0,
f = 0,
g = 0;
d = i;
e = a + 28 | 0;
if ((c[e >> 2] | 0) <= 0) {
c[e >> 2] = 0;
i = d;
return
}
f = a + 24 | 0;
a = 0;
do {
g = (c[f >> 2] | 0) + (a * 28 | 0) + 24 | 0;
Pe(b, c[g >> 2] | 0);
c[g >> 2] = -1;
a = a + 1 | 0
} while ((a | 0) < (c[e >> 2] | 0));
c[e >> 2] = 0;
i = d;
return
}
function qj(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 = 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;
pb[c[(c[y >> 2] | 0) + 28 >> 2] & 31](y, h, d, c[z >> 2] | 0);
y = c[n >> 2] | 0;
pb[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];
E = +(A < B ? A : B);
B = +(C < D ? C : D);
y = z;
g[y >> 2] = E;
g[y + 4 >> 2] = B;
B = +g[p >> 2];
E = +g[q >> 2];
D = +g[r >> 2];
C = +g[s >> 2];
A = +(B > E ? B : E);
E = +(D > C ? D : C);
y = x + (w * 28 | 0) + 8 | 0;
g[y >> 2] = A;
g[y + 4 >> 2] = E;
E = +g[t >> 2] - +g[u >> 2];
g[k >> 2] = +g[e >> 2] - +g[d >> 2];
g[v >> 2] = E;
Qe(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 rj(b, d) {
b = b | 0;
d = d | 0;
var e = 0,
f = 0,
h = 0;
e = i;
Cm(b);
Wm(b + 76 | 0);
Sj(b + 102880 | 0);
c[b + 102992 >> 2] = 0;
c[b + 102996 >> 2] = 0;
f = b + 102960 | 0;
h = b + 103004 | 0;
c[f + 0 >> 2] = 0;
c[f + 4 >> 2] = 0;
c[f + 8 >> 2] = 0;
c[f + 12 >> 2] = 0;
c[f + 16 >> 2] = 0;
a[h >> 0] = 1;
a[b + 103005 >> 0] = 1;
a[b + 103006 >> 0] = 0;
a[b + 103007 >> 0] = 1;
a[b + 102988 >> 0] = 1;
h = d;
d = c[h + 4 >> 2] | 0;
f = b + 102980 | 0;
c[f >> 2] = c[h >> 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] = 8792;
c[b + 103044 >> 2] = c[2206];
d = b + 103008 | 0;
c[d + 0 >> 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;
i = e;
return
}
function qb(a) {
a = a | 0;
var b = 0;
b = i;
i = i + a | 0;
i = i + 7 & -8;
return b | 0
}
function rb() {
return i | 0
}
function sb(a) {
a = a | 0;
i = a
}
function tb(a, b) {
a = a | 0;
b = b | 0;
if ((p | 0) == 0) {
p = a;
q = b
}
}
function ub(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 vb(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 wb(a) {
a = a | 0;
E = a
}
function xb() {
return E | 0
}
function yb(a) {
a = a | 0;
return 1+(c[a + 60 >> 2] | 0)
}
function zb(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 + 1072 | 0;
u = r + 1032 | 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] = 760;
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 {
De(u, v, s);
c[t >> 2] = u;
y = Mj(d, t) | 0;
Ce(u);
i = r;
return y | 0
}
while (1) {
o = ++g[p + (w << 2) >> 2];
n = ++g[p + ((w | 1) << 2) >> 2];
z = v + (x << 3) | 0;
g[z >> 2] = o;
g[z + 4 >> 2] = n;
w = w + 2 | 0;
if (!(+(w | 0) < q))
break;
else
x = x + 1 | 0
}
De(u, v, s);
c[t >> 2] = u;
y = Mj(d, t) | 0;
Ce(u);
i = r;
return y | 0
}
function Ab(a) {
a = a | 0;
Ha(a | 0) | 0;
xa()
}
function Bb(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] = 680;
t = v + 4 | 0;
c[t + 0 >> 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 = Mj(d, u) | 0;
i = s;
return v | 0
}
function Cb(a) {
a = a | 0;
return
}
function Db(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,
L = 0,
M = 0,
N =
0,
O = 0,
P = 0,
Q = 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 = E + 4 | 0;
J = E + 16 | 0;
K = E + 28 | 0;
L = E + 32 | 0;
M = E + 33 | 0;
N = E + 34 | 0;
O = E + 35 | 0;
P = E + 36 | 0;
Q = E + 40 | 0;
c[Q + 0 >> 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 >> 2] = d;
g[K >> 2] = e;
a[L >> 0] = ~~f;
a[M >> 0] = ~~j;
a[N >> 0] = ~~k;
a[O >> 0] = ~~l;
c[E >> 2] = ~~m >>> 0;
c[E + 72 >> 2] = 0;
c[I >> 2] = ~~o >>> 0;
g[E + 64 >> 2] = p;
p = +q;
q = +r;
I = H;
g[I >> 2] = p;
g[I + 4 >> 2] = q;
q = +s;
s = +t;
I = G;
g[I >> 2] = q;
g[I + 4 >> 2] = s;
c[E + 60 >> 2] = 0;
c[E + 56 >> 2] = ~~v;
c[E + 48 >> 2] = 0;
c[E + 44 >> 2] = 0;
g[P >>
2] = w;
g[E + 52 >> 2] = x;
c[E + 68 >> 2] = D;
c[F >> 2] = 680;
c[F + 4 >> 2] = 0;
x = +z;
z = +A;
D = F + 12 | 0;
g[D >> 2] = x;
g[D + 4 >> 2] = z;
g[F + 8 >> 2] = B;
c[Q >> 2] = F;
F = Fk(b, E) | 0;
i = C;
return F | 0
}
function Eb(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] = 680;
o = m + 4 | 0;
c[o + 0 >> 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 = +(Ck(a, m, n, 0) | 0);
i = l;
return +k
}
function Fb(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 + 56 | 0;
C = 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;
c[C >> 2] = 488;
c[C + 4 >> 2] = 1;
g[C + 8 >> 2] = .009999999776482582;
A = C + 28 | 0;
c[A + 0 >> 2] = 0;
c[A + 4 >> 2] = 0;
c[A + 8 >> 2] = 0;
c[A + 12 >> 2] = 0;
b[A + 16 >> 1] = 0;
o = +r;
r = +s;
A = C + 28 | 0;
g[A >> 2] = o;
g[A + 4 >> 2] = r;
r = +t;
t = +u;
A = C + 12 | 0;
g[A >> 2] = r;
g[A + 4 >> 2] = t;
t = +v;
v = +w;
A = C + 20 | 0;
g[A >> 2] = t;
g[A + 4 >> 2] =
v;
v = +x;
x = +y;
A = C + 36 | 0;
g[A >> 2] = v;
g[A + 4 >> 2] = x;
a[C + 44 >> 0] = p != 0 & 1;
a[C + 45 >> 0] = q != 0 & 1;
c[B >> 2] = C;
C = Mj(d, B) | 0;
i = z;
return C | 0
}
function Gb(a) {
a = a | 0;
return
}
function Hb(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 + 184 | 0;
y = v + 160 | 0;
z = v + 8 | 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] = 592;
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;
oe(z, y, 3);
c[x >> 2] = z;
z = Mj(d, x) | 0;
i = v;
return z | 0
}
function Ib(a) {
a = a | 0;
return
}
function Jb(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 + 192 | 0;
A = x + 160 | 0;
B = x + 8 | 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] = 592;
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;
oe(B, A, 4);
c[z >> 2] = B;
B = Mj(d, z) | 0;
i = x;
return B | 0
}
function Kb(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 + 200 | 0;
C = z + 160 | 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] = 592;
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;
oe(D, C, 5);
c[B >> 2] = D;
D = Mj(d, B) | 0;
i = z;
return D | 0
}
function Lb(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 + 208 | 0;
E = B + 160 | 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] = 592;
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;
oe(F, E, 6);
c[D >> 2] = F;
F = Mj(d, D) | 0;
i = B;
return F |
0
}
function Mb(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 + 216 | 0;
G = D + 160 | 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] = 592;
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;
oe(H, G, 7);
c[F >> 2] = H;
H = Mj(d, F) | 0;
i = D;
return H | 0
}
function Nb(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 + 224 | 0;
I = F + 160 | 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] = 592;
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;
oe(J, I, 8);
c[H >> 2] = J;
J = Mj(d, H) | 0;
i = F;
return J | 0
}
function Ob(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,
R = 0,
S = 0,
T = 0,
U = 0,
V = 0,
W = 0;
H = i;
i = i + 272 | 0;
I = H;
J = H + 192 | 0;
K = H + 160 | 0;
L = H + 8 | 0;
h[I >> 3] = y;
M = J + 8 | 0;
N = J + 20 | 0;
O = J + 4 | 0;
P = J + 16 | 0;
Q = J + 28 | 0;
R = J + 32 | 0;
S = J + 33 | 0;
T = J + 34 | 0;
U = J + 35 | 0;
V = J + 36 | 0;
W = J + 40 | 0;
c[W + 0 >> 2] = 0;
c[W + 4 >> 2] = 0;
c[W + 8 >> 2] = 0;
c[W + 12 >> 2] = 0;
c[W + 16 >> 2] = 0;
c[W + 20 >> 2] = 0;
c[W + 24 >> 2] = 0;
g[P >> 2] = d;
g[Q >> 2] = e;
a[R >> 0] = ~~f;
a[S >> 0] = ~~j;
a[T >> 0] = ~~k;
a[U >> 0] = ~~l;
c[J >> 2] =
~~m >>> 0;
c[J + 72 >> 2] = 0;
c[O >> 2] = ~~o >>> 0;
g[J + 64 >> 2] = p;
p = +q;
q = +r;
O = N;
g[O >> 2] = p;
g[O + 4 >> 2] = q;
q = +s;
s = +t;
O = M;
g[O >> 2] = q;
g[O + 4 >> 2] = s;
c[J + 60 >> 2] = 0;
c[J + 56 >> 2] = ~~v;
c[J + 48 >> 2] = 0;
c[J + 44 >> 2] = 0;
g[V >> 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] = 592;
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;
oe(L, K, 4);
c[W >> 2] = L;
L = Fk(b, J) | 0;
i = H;
return L | 0
}
function Pb(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] = 592;
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;
oe(s, r, 4);
g[t >> 2] = m;
g[t + 4 >> 2] = n;
g[t + 8 >> 2] = o;
g[t + 12 >> 2] = p;
p = +(Ck(a, s, t, 0) | 0);
i = q;
return +p
}
function Qb(a, d, e) {
a = a | 0;
d = +d;
e = +e;
var f = 0,
h = 0,
j = 0,
k = 0,
l = 0,
m = 0,
n = 0;
f = i;
h = d;
if ((c[a >> 2] | 0) != 2) {
i = f;
return
}
j =
a + 4 | 0;
k = b[j >> 1] | 0;
if ((e != 0 ? (k & 2) == 0 : 0) ? (l = k & 65535, (l & 2 | 0) == 0) : 0) {
m = (l | 2) & 65535;
b[j >> 1] = m;
g[a + 160 >> 2] = 0;
n = m
} else
n = k;
if ((n & 2) == 0) {
i = f;
return
}
n = a + 88 | 0;
g[n >> 2] = +g[n >> 2] + h * +g[a + 144 >> 2];
i = f;
return
}
function Rb(a, d, e, f, h, j) {
a = a | 0;
d = +d;
e = +e;
f = +f;
h = +h;
j = +j;
var k = 0,
l = 0,
m = 0,
n = 0,
o = 0,
p = 0,
q = 0;
k = i;
l = d;
d = e;
e = f;
f = h;
if ((c[a >> 2] | 0) != 2) {
i = k;
return
}
m = a + 4 | 0;
n = b[m >> 1] | 0;
if ((j != 0 ? (n & 2) == 0 : 0) ? (o = n & 65535, (o & 2 | 0) == 0) : 0) {
p = (o | 2) & 65535;
b[m >> 1] = p;
g[a + 160 >> 2] = 0;
q = p
} else
q = n;
if ((q & 2) == 0) {
i = k;
return
}
q = a + 92 | 0;
g[q >> 2] = l + +g[q >> 2];
q = a + 96 | 0;
g[q >> 2] = d + +g[q >> 2];
q = a + 100 | 0;
g[q >> 2] = +g[q >> 2] + (d * (e - +g[a + 60 >> 2]) - l * (f - +g[a + 64 >> 2]));
i = k;
return
}
function Sb(a, d, e, f) {
a = a | 0;
d = +d;
e = +e;
f = +f;
var h = 0,
j = 0,
k = 0,
l = 0,
m = 0,
n = 0,
o = 0;
h = i;
j = d;
d = e;
if ((c[a >> 2] | 0) != 2) {
i = h;
return
}
k = a + 4 | 0;
l = b[k >> 1] | 0;
if ((f != 0 ? (l & 2) == 0 : 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) == 0) {
i = h;
return
}
o = a + 92 | 0;
g[o >> 2] = j + +g[o >> 2];
o = a + 96 | 0;
g[o >> 2] = d + +g[o >> 2];
i = h;
return
}
function Tb(a, d, e) {
a = a | 0;
d = +d;
e = +e;
var f = 0,
h = 0,
j = 0,
k = 0,
l = 0,
m = 0,
n = 0;
f =
i;
h = d;
if ((c[a >> 2] | 0) != 2) {
i = f;
return
}
j = a + 4 | 0;
k = b[j >> 1] | 0;
if ((e != 0 ? (k & 2) == 0 : 0) ? (l = k & 65535, (l & 2 | 0) == 0) : 0) {
m = (l | 2) & 65535;
b[j >> 1] = m;
g[a + 160 >> 2] = 0;
n = m
} else
n = k;
if ((n & 2) == 0) {
i = f;
return
}
n = a + 100 | 0;
g[n >> 2] = h + +g[n >> 2];
i = f;
return
}
function Ub(a, b) {
a = a | 0;
b = b | 0;
var c = 0;
c = i;
Nj(a, b);
i = c;
return
}
function Vb(a) {
a = a | 0;
return ++g[a + 72 >> 2]
}
function Wb(a) {
a = a | 0;
return ++g[a + 88 >> 2]
}
function Xb(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 Yb(a, b) {
a = a | 0;
b = b | 0;
var c =
0;
c = +g[a + 84 >> 2];
g[b >> 2] = +g[a + 80 >> 2];
g[b + 4 >> 2] = c;
return
}
function Zb(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 _b(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 $b(a) {
a = a | 0;
return ++g[a + 132 >> 2]
}
function ac(a, b) {
a = a | 0;
b = b | 0;
var c = 0;
c = +g[a + 16 >> 2];
g[b >> 2] = +g[a + 12 >> 2];
g[b + 4 >> 2] = c;
return
}
function bc(a,
b) {
a = a | 0;
b = b | 0;
g[b >> 2] = +g[a + 12 >> 2];
g[b + 4 >> 2] = +g[a + 16 >> 2];
g[b + 8 >> 2] = +g[a + 20 >> 2];
g[b + 12 >> 2] = +g[a + 24 >> 2];
return
}
function cc(a) {
a = a | 0;
return 1+((c[a >> 2] | 0) >>> 0)
}
function dc(a, b) {
a = a | 0;
b = b | 0;
var c = 0;
c = +g[a + 64 >> 2];
g[b >> 2] = +g[a + 60 >> 2];
g[b + 4 >> 2] = c;
return
}
function ec(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 fc(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 gc(a, d) {
a = a | 0;
d = +d;
var f = 0,
h = 0,
j = 0,
k = 0;
f = i;
h = a + 4 | 0;
j = e[h >> 1] | 0;
if (!(d != 0)) {
b[h >> 1] = j & 65533;
g[a + 160 >> 2] = 0;
k = a + 80 | 0;
c[k + 0 >> 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;
i = f;
return
}
if ((j & 2 | 0) != 0) {
i = f;
return
}
b[h >> 1] = j | 2;
g[a + 160 >> 2] = 0;
i = f;
return
}
function hc(a, d) {
a = a | 0;
d = +d;
var f = 0,
h = 0,
j = 0,
k = 0;
f = i;
h = d;
if ((c[a >> 2] | 0) == 0) {
i = f;
return
}
if (h * h > 0 ? (j = a + 4 | 0, k = e[j >> 1] | 0, (k & 2 | 0) == 0) : 0) {
b[j >> 1] = k | 2;
g[a + 160 >>
2] = 0
}
g[a + 88 >> 2] = h;
i = f;
return
}
function ic(a, d, f) {
a = a | 0;
d = +d;
f = +f;
var h = 0,
j = 0,
k = 0,
l = 0;
h = i;
j = d;
d = f;
if ((c[a >> 2] | 0) == 0) {
i = h;
return
}
if (j * j + d * d > 0 ? (k = a + 4 | 0, l = e[k >> 1] | 0, (l & 2 | 0) == 0) : 0) {
b[k >> 1] = l | 2;
g[a + 160 >> 2] = 0
}
f = +j;
j = +d;
l = a + 80 | 0;
g[l >> 2] = f;
g[l + 4 >> 2] = j;
i = h;
return
}
function jc(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;
Oj(a, h);
i = f;
return
}
function kc(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;
Qj(a, f, d);
i =
e;
return
}
function lc(a, b) {
a = a | 0;
b = +b;
var c = 0;
c = i;
Jj(a, ~~b >>> 0);
i = c;
return
}
function mc(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 = +((hb[c[(c[h >> 2] | 0) + 16 >> 2] & 15](h, (c[a + 8 >> 2] | 0) + 12 | 0, f) | 0) & 1);
i = e;
return +d
}
function nc(a) {
a = a | 0;
return
}
function oc(a) {
a = a | 0;
return
}
function pc(a) {
a = a | 0;
return
}
function qc(a, b) {
a = +a;
b = +b;
var c = 0,
d = 0,
e = 0;
c = i;
i = i + 16 | 0;
d = c;
e = qn(103048) | 0;
g[d >> 2] = a;
g[d + 4 >> 2] = b;
rj(e, d);
i = c;
return e | 0
}
function rc(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,
y = 0,
z = 0;
v = i;
i = i + 64 | 0;
w = v;
x = w + 44 | 0;
y = w + 4 | 0;
z = w + 36 | 0;
c[y + 0 >> 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;
a[w + 40 >> 0] = d != 0 & 1;
a[z >> 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[y >> 2] = r;
g[w + 8 >> 2] = s;
c[w >> 2] = ~~t >>> 0;
c[x >> 2] = u;
u = vj(b, w) | 0;
i = v;
return u | 0
}
function sc(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 = zj(b, x) | 0;
i = w;
return y | 0
}
function tc(a) {
a = a | 0;
var b = 0;
b = i;
if ((a | 0) !=
0) {
sj(a);
sn(a)
}
i = b;
return
}
function uc(a, b) {
a = a | 0;
b = b | 0;
var c = 0;
c = i;
wj(a, b);
i = c;
return
}
function vc(a, b) {
a = a | 0;
b = b | 0;
var c = 0;
c = i;
xj(a, b);
i = c;
return
}
function wc(a, b) {
a = a | 0;
b = b | 0;
var c = 0;
c = i;
tj(a, b);
i = c;
return
}
function xc(a, b, c, d, e) {
a = a | 0;
b = +b;
c = +c;
d = +d;
e = +e;
var f = 0,
h = 0,
j = 0,
k = 0;
f = i;
i = i + 16 | 0;
h = f;
j = +b;
b = +c;
k = h;
g[k >> 2] = j;
g[k + 4 >> 2] = b;
b = +d;
d = +e;
k = h + 8 | 0;
g[k >> 2] = b;
g[k + 4 >> 2] = d;
Dj(a, 16, h);
i = f;
return
}
function yc(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;
Ej(a, 24, h, j);
i = f;
return
}
function zc(a) {
a = a | 0;
var b = 0;
b = i;
uj(a, 8);
i = b;
return
}
function Ac(a, b, c) {
a = a | 0;
b = +b;
c = +c;
var d = 0,
e = 0,
f = 0;
d = i;
e = +b;
b = +c;
f = a + 102980 | 0;
g[f >> 2] = e;
g[f + 4 >> 2] = b;
i = d;
return
}
function Bc(a, b, c, d) {
a = a | 0;
b = +b;
c = +c;
d = +d;
var e = 0;
e = i;
Cj(a, b, ~~c, ~~d, 3);
i = e;
return
}
function Cc(a) {
a = a | 0;
return a + 64 | 0
}
function Dc(a) {
a = a | 0;
var b = 0,
d = 0,
e = 0;
b = i;
d = c[a + 48 >> 2] | 0;
e = c[a + 52 >> 2] | 0;
jf(32, a + 64 | 0, (c[d + 8 >> 2] | 0) + 12 | 0, +g[(c[d + 12 >> 2] | 0) + 8 >> 2], (c[e + 8 >> 2] | 0) + 12 | 0, +g[(c[e + 12 >> 2] | 0) + 8 >> 2]);
i = b;
return 32
}
function Ec(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 + 0 >> 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[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;
k = +l;
l = +m;
e = q + 20 | 0;
g[e >> 2] = k;
g[e + 4 >> 2] = l;
l = +n;
n = +o;
e = q + 28 | 0;
g[e >> 2] = l;
g[e + 4 >> 2] = n;
e = yj(b, q) | 0;
i = p;
return e | 0
}
function Fc(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,
t = 0;
o = i;
i = i + 64 | 0;
p = o + 16 | 0;
q = o + 8 | 0;
r = o;
c[p + 0 >> 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;
t = p + 36 | 0;
c[s + 0 >> 2] = 0;
c[s + 4 >> 2] = 0;
c[s + 8 >> 2] = 0;
c[s + 12 >> 2] = 0;
g[t >> 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;
Xf(p, d, e, q, r);
r = yj(b, p) | 0;
i = o;
return r | 0
}
function Gc(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 + 0 >> 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 + 0 >> 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;
f = +h;
h = +j;
e = p + 20 | 0;
g[e >> 2] = f;
g[e + 4 >> 2] = h;
h = +k;
k = +l;
e = p + 28 | 0;
g[e >> 2] = h;
g[e + 4 >> 2] = k;
g[p + 36 >> 2] = m;
g[p + 40 >> 2] = n;
e = yj(b, p) | 0;
i = o;
return e | 0
}
function Hc(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 + 0 >> 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 + 0 >> 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;
hg(n, d, e, o);
o = yj(b, n) | 0;
i = m;
return o | 0
}
function Ic(a) {
a = a | 0;
var b = 0,
c = 0;
b = i;
c = +Ng(a);
i = b;
return +c
}
function Jc(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 + 0 >> 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 = yj(b, m) | 0;
i = l;
return j | 0
}
function Kc(a) {
a = a | 0;
return c[a + 48 >> 2] | 0
}
function Lc(a) {
a = a | 0;
return c[a + 52 >>
2] | 0
}
function Mc(a, b) {
a = a | 0;
b = +b;
var c = 0;
c = i;
Sf(a, b);
i = c;
return
}
function Nc(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;
Rf(a, e);
i = d;
return
}
function Oc(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 + 0 >> 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;
j = +k;
k = +l;
e = p + 20 | 0;
g[e >> 2] = j;
g[e + 4 >> 2] = k;
g[p + 32 >> 2] = m;
g[p + 36 >> 2] = n;
e = yj(b, p) | 0;
i = o;
return e |
0
}
function Pc(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 + 0 >> 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;
If(m, d, e);
e = yj(b, m) | 0;
i = l;
return e | 0
}
function Qc(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;
wf(a, e);
i = d;
return
}
function Rc(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 + 0 >> 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;
k = +l;
l = +m;
e = o + 20 | 0;
g[e >> 2] = k;
g[e + 4 >> 2] = l;
e = yj(b, o) | 0;
i = n;
return e | 0
}
function Sc(a, b) {
a = a | 0;
b = +b;
var c = 0;
c = i;
ah(a, b != 0);
i = c;
return
}
function Tc(a, b) {
a = a | 0;
b = +b;
var c = 0;
c = i;
ch(a, b != 0);
i = c;
return
}
function Uc(a) {
a = a | 0;
var b = 0,
c = 0;
b = i;
c = +_g(a);
i = b;
return +c
}
function Vc(a) {
a = a | 0;
return ++g[a + 132 >> 2]
}
function Wc(a, b) {
a = a | 0;
b = +b;
var c = 0,
d = 0;
c = i;
d = +eh(a, b);
i = c;
return +d
}
function Xc(a) {
a = a | 0;
var b = 0,
c = 0;
b = i;
c = +(($g(a) | 0) & 1);
i = b;
return +c
}
function Yc(a) {
a = a | 0;
var b = 0,
c = 0;
b = i;
c = +((bh(a) | 0) & 1);
i = b;
return +c
}
function Zc(a, b) {
a = a | 0;
b = +b;
var c = 0;
c = i;
dh(a, b);
i = c;
return
}
function _c(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 + 0 >> 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[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;
j = +k;
k = +l;
e = w + 20 | 0;
g[e >> 2] = j;
g[e + 4 >> 2] = k;
k = +m;
m = +n;
e = w + 28 | 0;
g[e >> 2] = k;
g[e + 4 >> 2] = m;
m = +o;
o = +p;
e = w + 36 | 0;
g[e >> 2] = m;
g[e + 4 >> 2] = o;
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 = yj(b, w) | 0;
i = v;
return e | 0
}
function $c(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,
x = 0;
s = i;
i = i + 96 | 0;
t = s + 16 | 0;
u = s + 8 | 0;
v = s;
c[t + 0 >> 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;
x = t + 36 | 0;
c[w + 0 >>
2] = 0;
c[w + 4 >> 2] = 0;
c[w + 8 >> 2] = 0;
c[w + 12 >> 2] = 0;
g[x >> 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;
Rg(t, d, e, u, v);
v = yj(b, t) | 0;
i = s;
return v | 0
}
function ad(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 + 0 >> 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;
f = +h;
h = +j;
e = u + 20 | 0;
g[e >> 2] = f;
g[e + 4 >> 2] = h;
h = +k;
k = +l;
e = u + 28 | 0;
g[e >> 2] = h;
g[e + 4 >> 2] = k;
g[u + 52 >> 2] = m;
g[u + 56 >> 2] = n;
n = +o;
o = +p;
e = u + 36 | 0;
g[e >> 2] = n;
g[e + 4 >> 2] = o;
o = +q;
q = +r;
e = u + 44 | 0;
g[e >> 2] = o;
g[e + 4 >> 2] = q;
g[u + 60 >> 2] = s;
e = yj(b, u) | 0;
i = t;
return e | 0
}
function bd(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 + 0 >> 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;
ci(s, d, e, t, u, v, w, p);
w = yj(b, s) | 0;
i = r;
return w | 0
}
function cd(a, b) {
a = a | 0;
b = +b;
var c = 0;
c = i;
Nh(a, b != 0);
i = c;
return
}
function dd(a, b) {
a = a | 0;
b = +b;
var c = 0;
c = i;
Kh(a, b != 0);
i = c;
return
}
function ed(a) {
a = a | 0;
var b = 0,
c = 0;
b = i;
c = +Ih(a);
i = b;
return +c
}
function fd(a) {
a = a | 0;
var b = 0,
c = 0;
b = i;
c =
+((Mh(a) | 0) & 1);
i = b;
return +c
}
function gd(a) {
a = a | 0;
var b = 0,
c = 0;
b = i;
c = +((Jh(a) | 0) & 1);
i = b;
return +c
}
function hd(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,
w = 0,
x = 0,
y = 0,
z = 0,
A = 0;
t = i;
i = i + 64 | 0;
u = t;
c[u + 0 >> 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;
w = u + 44 | 0;
x = u + 48 | 0;
y = u + 60 | 0;
z = u + 56 | 0;
A = u + 52 | 0;
c[v + 0 >> 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[A >> 0] = j !=
0 & 1;
j = +l;
l = +m;
A = u + 20 | 0;
g[A >> 2] = j;
g[A + 4 >> 2] = l;
l = +n;
n = +o;
A = u + 28 | 0;
g[A >> 2] = l;
g[A + 4 >> 2] = n;
g[w >> 2] = k;
g[y >> 2] = p;
g[z >> 2] = q;
g[u + 36 >> 2] = r;
g[x >> 2] = s;
x = yj(b, u) | 0;
i = t;
return x | 0
}
function id(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,
u = 0,
v = 0,
w = 0,
x = 0,
y = 0;
q = i;
i = i + 80 | 0;
r = q + 8 | 0;
s = q;
c[r + 0 >> 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;
u = r + 44 | 0;
v = r + 48 | 0;
w = r + 60 | 0;
x = r + 56 | 0;
y = r + 52 | 0;
c[t + 0 >> 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[y >> 0] = l != 0 & 1;
g[u >> 2] = m;
g[w >> 2] = n;
g[x >> 2] = o;
g[v >> 2] = p;
g[s >> 2] = f;
g[s + 4 >> 2] = h;
zh(r, d, e, s);
s = yj(b, r) | 0;
i = q;
return s | 0
}
function jd(a, b) {
a = a | 0;
b = +b;
var c = 0;
c = i;
Lh(a, b);
i = c;
return
}
function kd(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 + 0 >> 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;
f = +h;
h = +j;
e = o + 20 | 0;
g[e >> 2] = f;
g[e + 4 >> 2] = h;
h = +k;
k = +l;
e = o + 28 | 0;
g[e >> 2] = h;
g[e +
4 >> 2] = k;
g[o + 36 >> 2] = m;
e = yj(b, o) | 0;
i = n;
return e | 0
}
function ld(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 + 0 >> 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 + 0 >> 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;
j = +k;
k = +l;
e = q + 20 | 0;
g[e >> 2] = j;
g[e + 4 >> 2] = k;
k = +m;
m = +n;
e = q + 28 | 0;
g[e >> 2] = k;
g[e + 4 >> 2] = m;
g[q + 36 >> 2] = o;
e = yj(b, q) | 0;
i = p;
return e | 0
}
function md(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 + 0 >> 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 + 0 >> 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;
tg(n, d, e, o);
o = yj(b, n) | 0;
i = m;
return o | 0
}
function nd(a, b) {
a = a | 0;
b = +b;
var c = 0;
c = i;
_h(a, b);
i = c;
return
}
function od(a, b) {
a = a | 0;
b = +b;
g[a + 68 >> 2] = b;
return
}
function pd(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 + 0 >> 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[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;
k = +l;
l = +m;
e = u + 20 | 0;
g[e >> 2] = k;
g[e + 4 >> 2] = l;
l = +n;
n = +o;
e = u + 28 | 0;
g[e >> 2] = l;
g[e + 4 >> 2] = n;
n = +p;
p = +q;
e = u + 36 | 0;
g[e >> 2] = n;
g[e + 4 >> 2] = p;
g[u + 48 >> 2] = r;
g[u + 52 >> 2] = s;
e = yj(b, u) | 0;
i = t;
return e | 0
}
function qd(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 + 80 | 0;
s = r + 16 | 0;
t = r + 8 | 0;
u = r;
c[s + 0 >> 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;
w = s + 36 | 0;
c[v + 0 >> 2] = 0;
c[v + 4 >> 2] = 0;
c[v + 8 >> 2] = 0;
c[v + 12 >> 2] = 0;
g[w >> 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;
Rh(s, d, e, t, u);
u = yj(b, s) | 0;
i = r;
return u | 0
}
function rd(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;
ok(a, e);
i = d;
return
}
function sd(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;
pk(a, e);
i = d;
return
}
function td(a, b) {
a = a | 0;
b = +b;
var c = 0;
c = i;
qk(a, b != 0);
i = c;
return
}
function ud(a) {
a = a | 0;
return 1+(c[a + 4 >> 2] | 0)
}
function vd(a) {
a = a | 0;
return 1+((c[a + 8 >> 2] | 0) - (c[a + 4 >> 2] | 0) | 0)
}
function wd(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;
s = i;
i = i + 64 | 0;
t = s + 8 | 0;
u = s;
v = s + 16 | 0;
h[t >> 3] = l;
h[u >> 3] = p;
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;
m = +n;
n = +o;
t = v + 4 | 0;
g[t >> 2] = m;
g[t + 4 >> 2] = n;
c[v + 28 >> 2] = u;
n = +q;
q = +r;
u = v + 12 | 0;
g[u >> 2] = n;
g[u + 4 >> 2] = q;
q = +(wk(b, v) | 0);
i = s;
return +q
}
function xd(a) {
a = a | 0;
var b = 0,
c = 0;
b = i;
c = uk(a) | 0;
i = b;
return c | 0
}
function yd(a) {
a = a | 0;
return 1+(c[a + 44 >> 2] | 0)
}
function zd(a) {
a = a | 0;
return c[a + 96 >> 2] | 0
}
function Ad(a) {
a = a | 0;
return c[a + 104 >> 2] | 0
}
function Bd(a, b) {
a = a | 0;
b = +b;
g[a + 340 >> 2] = b;
return
}
function Cd(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 Dd(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 Ed(a) {
a = a | 0;
var b = 0;
b = i;
sn(a);
i = b;
return
}
function Fd(a, b, c, d, e) {
a = a | 0;
b = b | 0;
c = c | 0;
d = d | 0;
e = +e;
var f = 0;
a = i;
f = +La(b | 0, ++g[c >> 2], ++g[c + 4 >> 2], ++g[d >> 2], ++g[d + 4 >> 2], +e);
i = a;
return +f
}
function Gd(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 Hd(a, b) {
a = a | 0;
b = b | 0;
return 1
}
function Id(a) {
a = a | 0;
var b = 0;
b = i;
sn(a);
i = b;
return
}
function Jd(a, b) {
a = a | 0;
b = b | 0;
var c = 0;
a = i;
c = Xa(b | 0) | 0;
i = a;
return c | 0
}
function Kd(a, b, c) {
a = a | 0;
b = b | 0;
c = c | 0;
return 0
}
function Ld(a, b) {
a = a | 0;
b = b | 0;
return 1
}
function Md(a) {
a = a | 0;
var b = 0;
b = i;
sn(a);
i = b;
return
}
function Nd(a, b) {
a = a | 0;
b = b | 0;
a = i;
Pa(b | 0);
i = a;
return
}
function Od(a, b) {
a = a | 0;
b = b | 0;
a = i;
Wa(b | 0);
i = a;
return
}
function Pd(a, b, c) {
a = a | 0;
b = b | 0;
c = c | 0;
return
}
function Qd(a, b, c, d) {
a = a | 0;
b = b | 0;
c = c | 0;
d = d | 0;
return
}
function Rd(a, b, c) {
a = a | 0;
b = b | 0;
c = c | 0;
return
}
function Sd(a, b, c, d) {
a = a | 0;
b = b | 0;
c = c | 0;
d = d | 0;
return
}
function Td(a, b, c) {
a = a | 0;
b = b | 0;
c = c | 0;
a = i;
ya(b |
0, c | 0);
i = a;
return
}
function Ud(a, b, c) {
a = a | 0;
b = b | 0;
c = c | 0;
a = i;
Ya(b | 0, c | 0);
i = a;
return
}
function Vd(a) {
a = a | 0;
var b = 0;
b = i;
sn(a);
i = b;
return
}
function Wd(a) {
a = a | 0;
var b = 0;
b = i;
sn(a);
i = b;
return
}
function Xd(a) {
a = a | 0;
var b = 0;
b = i;
sn(a);
i = b;
return
}
function Yd() {
c[2] = 280;
c[4] = 176;
c[6] = 72;
return
}
function Zd(d, e) {
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,
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;
f = i;
i = i + 320 | 0;
h = f;
j = f + 284 | 0;
k = f + 248 | 0;
l = f + 236 | 0;
m = f + 144 | 0;
n = f + 120 | 0;
o = f + 16 | 0;
p = f + 12 | 0;
q = f + 8 | 0;
Km(h);
c[104] = (c[104] | 0) + 1;
c[d >> 2] = 0;
r = e + 128 | 0;
s = d + 4 | 0;
g[s >> 2] = +g[r >> 2];
t = e + 28 | 0;
u = j + 0 | 0;
v = e + 56 | 0;
w = u + 36 | 0;
do {
c[u >> 2] = c[v >> 2];
u = u + 4 | 0;
v = v + 4 | 0
} while ((u | 0) < (w | 0));
u = k + 0 | 0;
v = e + 92 | 0;
w = u + 36 | 0;
do {
c[u >> 2] = c[v >> 2];
u = u + 4 | 0;
v = v + 4 | 0
} while ((u | 0) < (w | 0));
v = j + 24 | 0;
x =
+g[v >> 2];
y = +O(+(x / 6.2831854820251465)) * 6.2831854820251465;
z = x - y;
g[v >> 2] = z;
u = j + 28 | 0;
x = +g[u >> 2] - y;
g[u >> 2] = x;
w = k + 24 | 0;
y = +g[w >> 2];
A = +O(+(y / 6.2831854820251465)) * 6.2831854820251465;
B = y - A;
g[w >> 2] = B;
C = k + 28 | 0;
y = +g[C >> 2] - A;
g[C >> 2] = y;
A = +g[r >> 2];
D = +g[e + 24 >> 2] + +g[e + 52 >> 2] + -.014999999664723873;
E = D < .004999999888241291 ? .004999999888241291 : D;
b[l + 4 >> 1] = 0;
c[m + 0 >> 2] = c[e + 0 >> 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];
c[m + 16 >> 2] = c[e + 16 >> 2];
c[m + 20 >> 2] = c[e + 20 >> 2];
c[m + 24 >> 2] = c[e + 24 >> 2];
r = m + 28 | 0;
c[r +
0 >> 2] = c[t + 0 >> 2];
c[r + 4 >> 2] = c[t + 4 >> 2];
c[r + 8 >> 2] = c[t + 8 >> 2];
c[r + 12 >> 2] = c[t + 12 >> 2];
c[r + 16 >> 2] = c[t + 16 >> 2];
c[r + 20 >> 2] = c[t + 20 >> 2];
c[r + 24 >> 2] = c[t + 24 >> 2];
a[m + 88 >> 0] = 0;
r = j + 8 | 0;
F = j + 12 | 0;
G = j + 16 | 0;
H = j + 20 | 0;
I = j + 4 | 0;
J = k + 8 | 0;
K = k + 12 | 0;
L = k + 16 | 0;
M = k + 20 | 0;
N = k + 4 | 0;
P = m + 56 | 0;
Q = m + 64 | 0;
R = m + 68 | 0;
U = m + 72 | 0;
V = m + 80 | 0;
W = m + 84 | 0;
X = n + 16 | 0;
D = E + .0012499999720603228;
Y = E + -.0012499999720603228;
Z = z;
z = x;
x = B;
B = y;
_ = 0;
y = 0;
a:
while (1) {
$ = 1 - y;
aa = $ * Z + y * z;
ba = +T(+aa);
ca = +S(+aa);
aa = +g[j >> 2];
da = +g[I >> 2];
ea = $ * x + y * B;
fa = +T(+ea);
ga = +S(+ea);
ea = +g[k >> 2];
ha =
+g[N >> 2];
ia = $ * +g[J >> 2] + y * +g[L >> 2] - (ga * ea - fa * ha);
ja = $ * +g[K >> 2] + y * +g[M >> 2] - (fa * ea + ga * ha);
ha = +($ * +g[r >> 2] + y * +g[G >> 2] - (ca * aa - ba * da));
ea = +($ * +g[F >> 2] + y * +g[H >> 2] - (ba * aa + ca * da));
ka = P;
g[ka >> 2] = ha;
g[ka + 4 >> 2] = ea;
g[Q >> 2] = ba;
g[R >> 2] = ca;
ca = +ia;
ia = +ja;
ka = U;
g[ka >> 2] = ca;
g[ka + 4 >> 2] = ia;
g[V >> 2] = fa;
g[W >> 2] = ga;
de(n, l, m);
ga = +g[X >> 2];
if (ga <= 0) {
la = 3;
break
}
if (ga < D) {
la = 5;
break
}
+_d(o, l, e, j, t, k, y);
ka = 0;
ga = A;
while (1) {
fa = +$d(o, p, q, ga);
if (fa > D) {
la = 8;
break a
}
if (fa > Y) {
ma = ga;
break
}
na = c[p >> 2] | 0;
oa = c[q >> 2] | 0;
ia = +ae(o, na, oa, y);
if (ia <
Y) {
la = 11;
break a
}
if (!(ia <= D)) {
pa = y;
qa = ga;
ra = 0;
sa = ia;
ta = fa
} else {
la = 13;
break a
}
while (1) {
if ((ra & 1 | 0) == 0)
ua = (pa + qa) * .5;
else
ua = pa + (E - sa) * (qa - pa) / (ta - sa);
ra = ra + 1 | 0;
c[110] = (c[110] | 0) + 1;
fa = +ae(o, na, oa, ua);
ia = fa - E;
if (ia > 0)
va = ia;
else
va = -ia;
if (va < .0012499999720603228) {
wa = ua;
break
}
xa = fa > E;
if ((ra | 0) == 50) {
wa = ga;
break
} else {
pa = xa ? ua : pa;
qa = xa ? qa : ua;
sa = xa ? fa : sa;
ta = xa ? ta : fa
}
}
oa = c[112] | 0;
c[112] = (oa | 0) > (ra | 0) ? oa : ra;
ka = ka + 1 | 0;
if ((ka | 0) == 8) {
ma = y;
break
} else
ga = wa
}
ka = _ + 1 | 0;
c[106] = (c[106] | 0) + 1;
if ((ka | 0) == 20) {
la = 25;
break
}
Z =
+g[v >> 2];
z = +g[u >> 2];
x = +g[w >> 2];
B = +g[C >> 2];
_ = ka;
y = ma
}
if ((la | 0) == 3) {
c[d >> 2] = 2;
g[s >> 2] = 0;
ya = _;
za = c[108] | 0;
Aa = (za | 0) > (ya | 0);
Ba = Aa ? za : ya;
c[108] = Ba;
Ca = +Mm(h);
Da = +g[102];
Ea = Da > Ca;
Fa = Ea ? Da : Ca;
g[102] = Fa;
Ga = +g[100];
Ha = Ca + Ga;
g[100] = Ha;
i = f;
return
} else if ((la | 0) == 5) {
c[d >> 2] = 3;
g[s >> 2] = y;
ya = _;
za = c[108] | 0;
Aa = (za | 0) > (ya | 0);
Ba = Aa ? za : ya;
c[108] = Ba;
Ca = +Mm(h);
Da = +g[102];
Ea = Da > Ca;
Fa = Ea ? Da : Ca;
g[102] = Fa;
Ga = +g[100];
Ha = Ca + Ga;
g[100] = Ha;
i = f;
return
} else if ((la | 0) == 8) {
c[d >> 2] = 4;
g[s >> 2] = A
} else if ((la | 0) == 11) {
c[d >> 2] = 1;
g[s >> 2] = y
} else if ((la |
0) == 13) {
c[d >> 2] = 3;
g[s >> 2] = y
} else if ((la | 0) == 25) {
c[d >> 2] = 1;
g[s >> 2] = ma;
ya = 20;
za = c[108] | 0;
Aa = (za | 0) > (ya | 0);
Ba = Aa ? za : ya;
c[108] = Ba;
Ca = +Mm(h);
Da = +g[102];
Ea = Da > Ca;
Fa = Ea ? Da : Ca;
g[102] = Fa;
Ga = +g[100];
Ha = Ca + Ga;
g[100] = Ha;
i = f;
return
}
c[106] = (c[106] | 0) + 1;
ya = _ + 1 | 0;
za = c[108] | 0;
Aa = (za | 0) > (ya | 0);
Ba = Aa ? za : ya;
c[108] = Ba;
Ca = +Mm(h);
Da = +g[102];
Ea = Da > Ca;
Fa = Ea ? Da : Ca;
g[102] = Fa;
Ga = +g[100];
Ha = Ca + Ga;
g[100] = Ha;
i = f;
return
}
function _d(e, f, h, j, k, l, m) {
e = e | 0;
f = f | 0;
h = h | 0;
j = j | 0;
k = k | 0;
l = l | 0;
m = +m;
var n = 0,
o = 0,
p = 0,
q = 0,
r = 0,
s = 0,
t = 0,
u = 0,
v = 0,
w =
0,
x = 0,
y = 0,
z = 0,
A = 0,
B = 0,
C = 0,
D = 0,
E = 0,
F = 0,
G = 0,
H = 0,
I = 0,
J = 0,
K = 0,
L = 0,
M = 0,
N = 0;
n = i;
c[e >> 2] = h;
c[e + 4 >> 2] = k;
o = b[f + 4 >> 1] | 0;
p = e + 8 | 0;
q = p + 0 | 0;
r = j + 0 | 0;
j = q + 36 | 0;
do {
c[q >> 2] = c[r >> 2];
q = q + 4 | 0;
r = r + 4 | 0
} while ((q | 0) < (j | 0));
s = e + 44 | 0;
q = s + 0 | 0;
r = l + 0 | 0;
j = q + 36 | 0;
do {
c[q >> 2] = c[r >> 2];
q = q + 4 | 0;
r = r + 4 | 0
} while ((q | 0) < (j | 0));
t = 1 - m;
u = t * +g[e + 32 >> 2] + +g[e + 36 >> 2] * m;
v = +T(+u);
w = +S(+u);
u = +g[p >> 2];
x = +g[e + 12 >> 2];
y = t * +g[e + 16 >> 2] + +g[e + 24 >> 2] * m - (w * u - v * x);
z = t * +g[e + 20 >> 2] + +g[e + 28 >> 2] * m - (v * u + w * x);
x = t * +g[e + 68 >> 2] + +g[e + 72 >> 2] * m;
u = +T(+x);
A = +S(+x);
x = +g[s >>
2];
B = +g[e + 48 >> 2];
C = t * +g[e + 52 >> 2] + +g[e + 60 >> 2] * m - (A * x - u * B);
D = t * +g[e + 56 >> 2] + +g[e + 64 >> 2] * m - (u * x + A * B);
if (o << 16 >> 16 == 1) {
c[e + 80 >> 2] = 0;
o = (c[h + 16 >> 2] | 0) + (d[f + 6 >> 0] << 3) | 0;
B = +g[o >> 2];
x = +g[o + 4 >> 2];
o = (c[k + 16 >> 2] | 0) + (d[f + 9 >> 0] << 3) | 0;
m = +g[o >> 2];
t = +g[o + 4 >> 2];
o = e + 92 | 0;
E = C + (A * m - u * t) - (y + (w * B - v * x));
F = D + (u * m + A * t) - (z + (v * B + w * x));
x = +E;
B = +F;
s = o;
g[s >> 2] = x;
g[s + 4 >> 2] = B;
B = +Q(+(E * E + F * F));
if (B < 1.1920928955078125E-7)
G = 0;
else {
x = 1 / B;
g[o >> 2] = E * x;
g[e + 96 >> 2] = F * x;
G = B
}
o = 8784;
s = c[o + 4 >> 2] | 0;
p = e + 84 | 0;
c[p >> 2] = c[o >> 2];
c[p + 4 >> 2] = s;
H = G;
i = n;
return +H
}
s = f + 6 | 0;
p = f + 7 | 0;
o = e + 80 | 0;
if ((a[s >> 0] | 0) == (a[p >> 0] | 0)) {
c[o >> 2] = 2;
r = c[k + 16 >> 2] | 0;
q = r + (d[f + 9 >> 0] << 3) | 0;
G = +g[q >> 2];
B = +g[q + 4 >> 2];
q = r + (d[f + 10 >> 0] << 3) | 0;
x = +g[q >> 2];
F = +g[q + 4 >> 2];
q = e + 92 | 0;
E = x - G;
t = F - B;
m = -E;
I = +t;
J = +m;
r = q;
g[r >> 2] = I;
g[r + 4 >> 2] = J;
J = +Q(+(t * t + E * E));
if (J < 1.1920928955078125E-7) {
K = t;
L = m
} else {
E = 1 / J;
J = t * E;
g[q >> 2] = J;
t = E * m;
g[e + 96 >> 2] = t;
K = J;
L = t
}
t = (G + x) * .5;
x = (B + F) * .5;
F = +t;
B = +x;
r = e + 84 | 0;
g[r >> 2] = F;
g[r + 4 >> 2] = B;
r = (c[h + 16 >> 2] | 0) + (d[s >> 0] << 3) | 0;
B = +g[r >> 2];
F = +g[r + 4 >> 2];
G = (A * K - u * L) * (y + (w * B - v * F) - (C + (A * t - u *
x))) + (u * K + A * L) * (z + (v * B + w * F) - (D + (u * t + A * x)));
if (!(G < 0)) {
H = G;
i = n;
return +H
}
x = +-K;
K = +-L;
r = q;
g[r >> 2] = x;
g[r + 4 >> 2] = K;
H = -G;
i = n;
return +H
} else {
c[o >> 2] = 1;
o = c[h + 16 >> 2] | 0;
h = o + (d[s >> 0] << 3) | 0;
G = +g[h >> 2];
K = +g[h + 4 >> 2];
h = o + (d[p >> 0] << 3) | 0;
x = +g[h >> 2];
L = +g[h + 4 >> 2];
h = e + 92 | 0;
t = x - G;
F = L - K;
B = -t;
J = +F;
m = +B;
p = h;
g[p >> 2] = J;
g[p + 4 >> 2] = m;
m = +Q(+(F * F + t * t));
if (m < 1.1920928955078125E-7) {
M = F;
N = B
} else {
t = 1 / m;
m = F * t;
g[h >> 2] = m;
F = t * B;
g[e + 96 >> 2] = F;
M = m;
N = F
}
F = (G + x) * .5;
x = (K + L) * .5;
L = +F;
K = +x;
p = e + 84 | 0;
g[p >> 2] = L;
g[p + 4 >> 2] = K;
p = (c[k + 16 >> 2] | 0) + (d[f + 9 >> 0] <<
3) | 0;
K = +g[p >> 2];
L = +g[p + 4 >> 2];
G = (w * M - v * N) * (C + (A * K - u * L) - (y + (w * F - v * x))) + (v * M + w * N) * (D + (u * K + A * L) - (z + (v * F + w * x)));
if (!(G < 0)) {
H = G;
i = n;
return +H
}
x = +-M;
M = +-N;
p = h;
g[p >> 2] = x;
g[p + 4 >> 2] = M;
H = -G;
i = n;
return +H
}
return 0
}
function $d(a, b, d, e) {
a = a | 0;
b = b | 0;
d = d | 0;
e = +e;
var f = 0,
h = 0,
j = 0,
k = 0,
l = 0,
m = 0,
n = 0,
o = 0,
p = 0,
q = 0,
r = 0,
s = 0,
t = 0,
u = 0,
v = 0,
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;
h = 1 - e;
j = h * +g[a + 32 >> 2] + +g[a + 36 >> 2] * e;
k = +T(+j);
l = +S(+j);
j = +g[a + 8 >> 2];
m = +g[a + 12 >> 2];
n = h * +g[a + 16 >> 2] + +g[a + 24 >> 2] * e - (l * j - k * m);
o = h * +g[a + 20 >> 2] +
+g[a + 28 >> 2] * e - (k * j + l * m);
m = h * +g[a + 68 >> 2] + +g[a + 72 >> 2] * e;
j = +T(+m);
p = +S(+m);
m = +g[a + 44 >> 2];
q = +g[a + 48 >> 2];
r = h * +g[a + 52 >> 2] + +g[a + 60 >> 2] * e - (p * m - j * q);
s = h * +g[a + 56 >> 2] + +g[a + 64 >> 2] * e - (j * m + p * q);
t = c[a + 80 >> 2] | 0;
if ((t | 0) == 0) {
q = +g[a + 92 >> 2];
m = +g[a + 96 >> 2];
e = l * q + k * m;
h = l * m - k * q;
u = -q;
v = -m;
w = p * u + j * v;
x = p * v - j * u;
y = c[a >> 2] | 0;
z = c[y + 16 >> 2] | 0;
A = c[y + 20 >> 2] | 0;
if ((A | 0) > 1) {
y = 0;
u = h * +g[z + 4 >> 2] + e * +g[z >> 2];
B = 1;
while (1) {
v = e * +g[z + (B << 3) >> 2] + h * +g[z + (B << 3) + 4 >> 2];
C = v > u;
D = C ? B : y;
B = B + 1 | 0;
if ((B | 0) == (A | 0)) {
E = D;
break
} else {
y = D;
u = C ? v : u
}
}
} else
E =
0;
c[b >> 2] = E;
E = c[a + 4 >> 2] | 0;
y = c[E + 16 >> 2] | 0;
A = c[E + 20 >> 2] | 0;
if ((A | 0) > 1) {
E = 0;
u = x * +g[y + 4 >> 2] + w * +g[y >> 2];
B = 1;
while (1) {
h = w * +g[y + (B << 3) >> 2] + x * +g[y + (B << 3) + 4 >> 2];
C = h > u;
D = C ? B : E;
B = B + 1 | 0;
if ((B | 0) == (A | 0)) {
F = D;
break
} else {
E = D;
u = C ? h : u
}
}
} else
F = 0;
c[d >> 2] = F;
E = z + (c[b >> 2] << 3) | 0;
u = +g[E >> 2];
x = +g[E + 4 >> 2];
E = y + (F << 3) | 0;
w = +g[E >> 2];
h = +g[E + 4 >> 2];
G = q * (r + (p * w - j * h) - (n + (l * u - k * x))) + m * (s + (j * w + p * h) - (o + (k * u + l * x)));
i = f;
return +G
} else if ((t | 0) == 1) {
x = +g[a + 92 >> 2];
u = +g[a + 96 >> 2];
h = l * x - k * u;
w = k * x + l * u;
u = +g[a + 84 >> 2];
x = +g[a + 88 >> 2];
m = n + (l * u - k * x);
q = o + (k * u + l * x);
x = -h;
u = -w;
e = p * x + j * u;
v = p * u - j * x;
c[b >> 2] = -1;
E = c[a + 4 >> 2] | 0;
F = c[E + 16 >> 2] | 0;
y = c[E + 20 >> 2] | 0;
if ((y | 0) > 1) {
E = 0;
x = v * +g[F + 4 >> 2] + e * +g[F >> 2];
z = 1;
while (1) {
u = e * +g[F + (z << 3) >> 2] + v * +g[F + (z << 3) + 4 >> 2];
A = u > x;
B = A ? z : E;
z = z + 1 | 0;
if ((z | 0) == (y | 0)) {
H = B;
break
} else {
E = B;
x = A ? u : x
}
}
} else
H = 0;
c[d >> 2] = H;
E = F + (H << 3) | 0;
x = +g[E >> 2];
v = +g[E + 4 >> 2];
G = h * (r + (p * x - j * v) - m) + w * (s + (j * x + p * v) - q);
i = f;
return +G
} else if ((t | 0) == 2) {
q = +g[a + 92 >> 2];
v = +g[a + 96 >> 2];
x = p * q - j * v;
w = j * q + p * v;
v = +g[a + 84 >> 2];
q = +g[a + 88 >> 2];
m = r + (p * v - j * q);
r = s + (j * v + p * q);
q = -x;
p = -w;
v = l * q + k * p;
j = l * p - k * q;
c[d >> 2] = -1;
t = c[a >> 2] | 0;
a = c[t + 16 >> 2] | 0;
E = c[t + 20 >> 2] | 0;
if ((E | 0) > 1) {
t = 0;
q = j * +g[a + 4 >> 2] + v * +g[a >> 2];
H = 1;
while (1) {
p = v * +g[a + (H << 3) >> 2] + j * +g[a + (H << 3) + 4 >> 2];
F = p > q;
y = F ? H : t;
H = H + 1 | 0;
if ((H | 0) == (E | 0)) {
I = y;
break
} else {
t = y;
q = F ? p : q
}
}
} else
I = 0;
c[b >> 2] = I;
t = a + (I << 3) | 0;
q = +g[t >> 2];
j = +g[t + 4 >> 2];
G = x * (n + (l * q - k * j) - m) + w * (o + (k * q + l * j) - r);
i = f;
return +G
} else {
c[b >> 2] = -1;
c[d >> 2] = -1;
G = 0;
i = f;
return +G
}
return 0
}
function ae(a, b, d, e) {
a = a | 0;
b = b | 0;
d = d | 0;
e = +e;
var f = 0,
h = 0,
j = 0,
k = 0,
l = 0,
m = 0,
n = 0,
o = 0,
p = 0,
q = 0,
r = 0,
s = 0,
t = 0,
u = 0,
v =
0,
w = 0,
x = 0;
f = i;
h = 1 - e;
j = h * +g[a + 32 >> 2] + +g[a + 36 >> 2] * e;
k = +T(+j);
l = +S(+j);
j = +g[a + 8 >> 2];
m = +g[a + 12 >> 2];
n = h * +g[a + 16 >> 2] + +g[a + 24 >> 2] * e - (l * j - k * m);
o = h * +g[a + 20 >> 2] + +g[a + 28 >> 2] * e - (k * j + l * m);
m = h * +g[a + 68 >> 2] + +g[a + 72 >> 2] * e;
j = +T(+m);
p = +S(+m);
m = +g[a + 44 >> 2];
q = +g[a + 48 >> 2];
r = h * +g[a + 52 >> 2] + +g[a + 60 >> 2] * e - (p * m - j * q);
s = h * +g[a + 56 >> 2] + +g[a + 64 >> 2] * e - (j * m + p * q);
t = c[a + 80 >> 2] | 0;
if ((t | 0) == 0) {
u = (c[(c[a >> 2] | 0) + 16 >> 2] | 0) + (b << 3) | 0;
q = +g[u >> 2];
m = +g[u + 4 >> 2];
u = (c[(c[a + 4 >> 2] | 0) + 16 >> 2] | 0) + (d << 3) | 0;
e = +g[u >> 2];
h = +g[u + 4 >> 2];
v = +g[a + 92 >> 2] *
(r + (p * e - j * h) - (n + (l * q - k * m))) + +g[a + 96 >> 2] * (s + (j * e + p * h) - (o + (k * q + l * m)));
i = f;
return +v
} else if ((t | 0) == 1) {
m = +g[a + 92 >> 2];
q = +g[a + 96 >> 2];
h = +g[a + 84 >> 2];
e = +g[a + 88 >> 2];
u = (c[(c[a + 4 >> 2] | 0) + 16 >> 2] | 0) + (d << 3) | 0;
w = +g[u >> 2];
x = +g[u + 4 >> 2];
v = (l * m - k * q) * (r + (p * w - j * x) - (n + (l * h - k * e))) + (k * m + l * q) * (s + (j * w + p * x) - (o + (k * h + l * e)));
i = f;
return +v
} else if ((t | 0) == 2) {
e = +g[a + 92 >> 2];
h = +g[a + 96 >> 2];
x = +g[a + 84 >> 2];
w = +g[a + 88 >> 2];
t = (c[(c[a >> 2] | 0) + 16 >> 2] | 0) + (b << 3) | 0;
q = +g[t >> 2];
m = +g[t + 4 >> 2];
v = (p * e - j * h) * (n + (l * q - k * m) - (r + (p * x - j * w))) + (j * e + p * h) * (o + (k * q +
l * m) - (s + (j * x + p * w)));
i = f;
return +v
} else {
v = 0;
i = f;
return +v
}
return 0
}
function be(a, b, d) {
a = a | 0;
b = b | 0;
d = d | 0;
var e = 0,
f = 0,
h = 0,
j = 0,
k = 0;
e = i;
f = c[b + 4 >> 2] | 0;
if ((f | 0) == 0) {
c[a + 16 >> 2] = b + 12;
c[a + 20 >> 2] = 1;
g[a + 24 >> 2] = +g[b + 8 >> 2];
i = e;
return
} else if ((f | 0) == 2) {
c[a + 16 >> 2] = b + 20;
c[a + 20 >> 2] = c[b + 148 >> 2];
g[a + 24 >> 2] = +g[b + 8 >> 2];
i = e;
return
} else if ((f | 0) == 1) {
c[a + 16 >> 2] = b + 12;
c[a + 20 >> 2] = 2;
g[a + 24 >> 2] = +g[b + 8 >> 2];
i = e;
return
} else if ((f | 0) == 3) {
f = b + 12 | 0;
h = (c[f >> 2] | 0) + (d << 3) | 0;
j = c[h + 4 >> 2] | 0;
k = a;
c[k >> 2] = c[h >> 2];
c[k + 4 >> 2] = j;
j = d + 1 | 0;
d = a + 8 | 0;
k =
c[f >> 2] | 0;
if ((j | 0) < (c[b + 16 >> 2] | 0)) {
f = k + (j << 3) | 0;
j = c[f + 4 >> 2] | 0;
h = d;
c[h >> 2] = c[f >> 2];
c[h + 4 >> 2] = j
} else {
j = k;
k = c[j + 4 >> 2] | 0;
h = d;
c[h >> 2] = c[j >> 2];
c[h + 4 >> 2] = k
}
c[a + 16 >> 2] = a;
c[a + 20 >> 2] = 2;
g[a + 24 >> 2] = +g[b + 8 >> 2];
i = e;
return
} else {
i = e;
return
}
}
function ce(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;
b = i;
d = a + 16 | 0;
e = +g[d >> 2];
f = +g[d + 4 >> 2];
d = a + 36 | 0;
h = a + 52 | 0;
j = +g[h >> 2];
k = +g[h + 4 >> 2];
h = a + 72 | 0;
l = a + 88 | 0;
m = +g[l >> 2];
n = +g[l + 4 >> 2];
o = j - e;
p = k - f;
q = e * o + f * p;
r = j * o + k *
p;
s = m - e;
t = n - f;
u = e * s + f * t;
v = m * s + n * t;
w = m - j;
x = n - k;
y = j * w + k * x;
z = m * w + n * x;
x = o * t - p * s;
s = (j * n - k * m) * x;
p = (f * m - e * n) * x;
n = (e * k - f * j) * x;
if (!(!(q >= -0) | !(u >= -0))) {
g[a + 24 >> 2] = 1;
c[a + 108 >> 2] = 1;
i = b;
return
}
if (!(!(q < -0) | !(r > 0) | !(n <= 0))) {
x = 1 / (r - q);
g[a + 24 >> 2] = r * x;
g[a + 60 >> 2] = -(q * x);
c[a + 108 >> 2] = 2;
i = b;
return
}
if (!(!(u < -0) | !(v > 0) | !(p <= 0))) {
x = 1 / (v - u);
g[a + 24 >> 2] = v * x;
g[a + 96 >> 2] = -(u * x);
c[a + 108 >> 2] = 2;
A = d + 0 | 0;
B = h + 0 | 0;
C = A + 36 | 0;
do {
c[A >> 2] = c[B >> 2];
A = A + 4 | 0;
B = B + 4 | 0
} while ((A | 0) < (C | 0));
i = b;
return
}
if (!(!(r <= 0) | !(y >= -0))) {
g[a + 60 >> 2] = 1;
c[a + 108 >>
2] = 1;
A = a + 0 | 0;
B = d + 0 | 0;
C = A + 36 | 0;
do {
c[A >> 2] = c[B >> 2];
A = A + 4 | 0;
B = B + 4 | 0
} while ((A | 0) < (C | 0));
i = b;
return
}
if (!(!(v <= 0) | !(z <= 0))) {
g[a + 96 >> 2] = 1;
c[a + 108 >> 2] = 1;
A = a + 0 | 0;
B = h + 0 | 0;
C = A + 36 | 0;
do {
c[A >> 2] = c[B >> 2];
A = A + 4 | 0;
B = B + 4 | 0
} while ((A | 0) < (C | 0));
i = b;
return
}
if (!(y < -0) | !(z > 0) | !(s <= 0)) {
v = 1 / (n + (s + p));
g[a + 24 >> 2] = s * v;
g[a + 60 >> 2] = p * v;
g[a + 96 >> 2] = n * v;
c[a + 108 >> 2] = 3;
i = b;
return
} else {
v = 1 / (z - y);
g[a + 60 >> 2] = z * v;
g[a + 96 >> 2] = -(y * v);
c[a + 108 >> 2] = 2;
A = a + 0 | 0;
B = h + 0 | 0;
C = A + 36 | 0;
do {
c[A >> 2] = c[B >> 2];
A = A + 4 | 0;
B = B + 4 | 0
} while ((A | 0) < (C | 0));
i = b;
return
}
}
function de(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,
O = 0,
P = 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;
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[114] = (c[114] | 0) + 1;
p = f + 28 | 0;
q = f + 56 | 0;
c[j + 0 >> 2] = c[q + 0 >> 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];
q = f + 72 |
0;
c[l + 0 >> 2] = c[q + 0 >> 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];
ee(m, e, f, j, p, l);
c[n + 0 >> 2] = 0;
c[n + 4 >> 2] = 0;
c[n + 8 >> 2] = 0;
c[o + 0 >> 2] = 0;
c[o + 4 >> 2] = 0;
c[o + 8 >> 2] = 0;
p = m + 108 | 0;
r = +g[j + 12 >> 2];
s = +g[j + 8 >> 2];
q = 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 + 16 | 0;
F = m + 36 | 0;
G = m + 52 | 0;
H = m + 24 | 0;
I = m + 60 | 0;
J = c[p >> 2] | 0;
K = 0;
a:
while (1) {
L = (J | 0) > 0;
if (L) {
M = 0;
do {
c[n + (M << 2) >> 2] = c[m + (M * 36 | 0) + 28 >> 2];
c[o + (M << 2) >> 2] =
c[m + (M * 36 | 0) + 32 >> 2];
M = M + 1 | 0
} while ((M | 0) != (J | 0))
}
do if ((J | 0) == 2) {
M = E;
N = +g[M >> 2];
O = +g[M + 4 >> 2];
M = G;
P = +g[M >> 2];
R = +g[M + 4 >> 2];
S = P - N;
T = R - O;
U = N * S + O * T;
if (U >= -0) {
g[H >> 2] = 1;
c[p >> 2] = 1;
V = 13;
break
}
O = P * S + R * T;
if (!(O <= 0)) {
T = 1 / (O - U);
g[H >> 2] = O * T;
g[I >> 2] = -(U * T);
c[p >> 2] = 2;
V = 14;
break
} else {
g[I >> 2] = 1;
c[p >> 2] = 1;
M = m + 0 | 0;
W = F + 0 | 0;
X = M + 36 | 0;
do {
c[M >> 2] = c[W >> 2];
M = M + 4 | 0;
W = W + 4 | 0
} while ((M | 0) < (X | 0));
V = 13;
break
}
} else if ((J | 0) == 3) {
ce(m);
W = c[p >> 2] | 0;
if ((W | 0) == 3) {
V = 11;
break a
} else {
Y = W;
V = 12
}
} else {
Y = J;
V = 12
}
while (0);
do if ((V | 0) == 12) {
V = 0;
if ((Y |
0) == 1) {
V = 13;
break
} else if ((Y | 0) == 2) {
V = 14;
break
}
W = 8784;
T = +g[W >> 2];
Z = T;
_ = +g[W + 4 >> 2];
$ = Y
}
while (0);
do if ((V | 0) == 13) {
V = 0;
Z = -+g[l >> 2];
_ = -+g[B >> 2];
$ = 1
} else if ((V | 0) == 14) {
V = 0;
T = +g[l >> 2];
U = +g[C >> 2] - T;
O = +g[B >> 2];
R = +g[D >> 2] - O;
if (T * R - U * O > 0) {
Z = -R;
_ = U;
$ = 2;
break
} else {
Z = R;
_ = -U;
$ = 2;
break
}
}
while (0);
if (_ * _ + Z * Z < 1.4210854715202004E-14) {
aa = $;
ba = K;
V = 31;
break
}
W = m + ($ * 36 | 0) | 0;
U = -Z;
R = -_;
O = r * U + s * R;
T = r * R - s * U;
M = c[q >> 2] | 0;
X = c[t >> 2] | 0;
if ((X | 0) > 1) {
ca = 0;
U = T * +g[M + 4 >> 2] + O * +g[M >> 2];
da = 1;
while (1) {
R = O * +g[M + (da << 3) >> 2] + T * +g[M + (da << 3) + 4 >>
2];
ea = R > U;
fa = ea ? da : ca;
da = da + 1 | 0;
if ((da | 0) == (X | 0)) {
ga = fa;
break
} else {
ca = fa;
U = ea ? R : U
}
}
} else
ga = 0;
c[m + ($ * 36 | 0) + 28 >> 2] = ga;
U = +g[M + (ga << 3) >> 2];
T = +g[M + (ga << 3) + 4 >> 2];
O = u + (r * U - s * T);
R = +O;
S = +(U * s + r * T + v);
ca = W;
g[ca >> 2] = R;
g[ca + 4 >> 2] = S;
S = Z * w + _ * x;
R = _ * w - Z * x;
ca = c[j >> 2] | 0;
X = c[y >> 2] | 0;
if ((X | 0) > 1) {
da = 0;
T = R * +g[ca + 4 >> 2] + S * +g[ca >> 2];
ea = 1;
while (1) {
U = S * +g[ca + (ea << 3) >> 2] + R * +g[ca + (ea << 3) + 4 >> 2];
fa = U > T;
ha = fa ? ea : da;
ea = ea + 1 | 0;
if ((ea | 0) == (X | 0)) {
ia = ha;
break
} else {
da = ha;
T = fa ? U : T
}
}
} else
ia = 0;
c[m + ($ * 36 | 0) + 32 >> 2] = ia;
T = +g[ca + (ia << 3) >> 2];
R = +g[ca + (ia << 3) + 4 >> 2];
S = z + (w * T - x * R);
U = +S;
P = +(T * x + w * R + A);
da = m + ($ * 36 | 0) + 8 | 0;
g[da >> 2] = U;
g[da + 4 >> 2] = P;
P = +(S - O);
S = +(+g[m + ($ * 36 | 0) + 12 >> 2] - +g[m + ($ * 36 | 0) + 4 >> 2]);
da = m + ($ * 36 | 0) + 16 | 0;
g[da >> 2] = P;
g[da + 4 >> 2] = S;
ja = K + 1 | 0;
c[116] = (c[116] | 0) + 1;
if (L) {
da = 0;
do {
if ((ga | 0) == (c[n + (da << 2) >> 2] | 0) ? (ia | 0) == (c[o + (da << 2) >> 2] | 0) : 0) {
V = 30;
break a
}
da = da + 1 | 0
} while ((da | 0) < (J | 0))
}
da = (c[p >> 2] | 0) + 1 | 0;
c[p >> 2] = da;
if ((ja | 0) < 20) {
J = da;
K = ja
} else {
aa = da;
ba = ja;
V = 31;
break
}
}
if ((V | 0) == 11) {
J = c[118] | 0;
c[118] = (J | 0) > (K | 0) ? J : K;
ka = d + 8 | 0;
la = K;
V = 35
} else if ((V |
0) == 30) {
aa = c[p >> 2] | 0;
ba = ja;
V = 31
}
do if ((V | 0) == 31) {
ja = c[118] | 0;
c[118] = (ja | 0) > (ba | 0) ? ja : ba;
ja = d + 8 | 0;
if ((aa | 0) == 1) {
p = m;
K = c[p >> 2] | 0;
J = c[p + 4 >> 2] | 0;
p = d;
c[p >> 2] = K;
c[p + 4 >> 2] = J;
p = m + 8 | 0;
o = c[p >> 2] | 0;
ia = c[p + 4 >> 2] | 0;
p = ja;
c[p >> 2] = o;
c[p + 4 >> 2] = ia;
A = (c[k >> 2] = K, +g[k >> 2]);
w = (c[k >> 2] = o, +g[k >> 2]);
x = (c[k >> 2] = J, +g[k >> 2]);
ma = w;
na = A;
oa = (c[k >> 2] = ia, +g[k >> 2]);
pa = x;
qa = 1;
ra = ja;
sa = ba;
break
} else if ((aa | 0) == 2) {
x = +g[H >> 2];
A = +g[I >> 2];
w = x * +g[m >> 2] + A * +g[m + 36 >> 2];
z = x * +g[m + 4 >> 2] + A * +g[m + 40 >> 2];
Z = +w;
_ = +z;
ia = d;
g[ia >> 2] = Z;
g[ia + 4 >> 2] = _;
_ = x *
+g[m + 8 >> 2] + A * +g[m + 44 >> 2];
Z = x * +g[m + 12 >> 2] + A * +g[m + 48 >> 2];
A = +_;
x = +Z;
ia = ja;
g[ia >> 2] = A;
g[ia + 4 >> 2] = x;
ma = _;
na = w;
oa = Z;
pa = z;
qa = 2;
ra = ja;
sa = ba;
break
} else if ((aa | 0) == 3) {
ka = ja;
la = ba;
V = 35;
break
} else {
ma = +g[ja >> 2];
na = +g[d >> 2];
oa = +g[d + 12 >> 2];
pa = +g[d + 4 >> 2];
qa = aa;
ra = ja;
sa = ba;
break
}
}
while (0);
if ((V | 0) == 35) {
z = +g[H >> 2];
Z = +g[I >> 2];
w = +g[m + 96 >> 2];
_ = z * +g[m >> 2] + Z * +g[m + 36 >> 2] + w * +g[m + 72 >> 2];
x = z * +g[m + 4 >> 2] + Z * +g[m + 40 >> 2] + w * +g[m + 76 >> 2];
w = +_;
Z = +x;
I = d;
g[I >> 2] = w;
g[I + 4 >> 2] = Z;
I = ka;
g[I >> 2] = w;
g[I + 4 >> 2] = Z;
ma = _;
na = _;
oa = x;
pa = x;
qa = 3;
ra = ka;
sa = la
}
x = na - ma;
la = d + 4 | 0;
ka = d + 12 | 0;
ma = pa - oa;
I = d + 16 | 0;
g[I >> 2] = +Q(+(x * x + ma * ma));
c[d + 20 >> 2] = sa;
if ((qa | 0) == 2) {
ma = +g[l >> 2] - +g[C >> 2];
x = +g[B >> 2] - +g[D >> 2];
ta = +Q(+(ma * ma + x * x));
V = 39
} else if ((qa | 0) != 3) {
g[e >> 2] = 0;
b[e + 4 >> 1] = qa;
if ((qa | 0) > 0) {
ua = 0;
V = 41
}
} else {
x = +g[l >> 2];
ma = +g[B >> 2];
ta = (+g[C >> 2] - x) * (+g[m + 92 >> 2] - ma) - (+g[D >> 2] - ma) * (+g[m + 88 >> 2] - x);
V = 39
}
if ((V | 0) == 39) {
g[e >> 2] = ta;
b[e + 4 >> 1] = qa;
ua = 0;
V = 41
}
if ((V | 0) == 41)
while (1) {
V = 0;
a[e + ua + 6 >> 0] = c[m + (ua * 36 | 0) + 28 >> 2];
a[e + ua + 9 >> 0] = c[m + (ua * 36 | 0) + 32 >> 2];
ua = ua + 1 | 0;
if ((ua | 0) >= (qa | 0))
break;
else
V = 41
}
if ((a[f + 88 >> 0] | 0) == 0) {
i = h;
return
}
ta = +g[f + 24 >> 2];
x = +g[f + 52 >> 2];
ma = +g[I >> 2];
oa = ta + x;
if (!(ma > oa & ma > 1.1920928955078125E-7)) {
pa = +((+g[d >> 2] + +g[ra >> 2]) * .5);
na = +((+g[la >> 2] + +g[ka >> 2]) * .5);
f = d;
g[f >> 2] = pa;
g[f + 4 >> 2] = na;
f = ra;
g[f >> 2] = pa;
g[f + 4 >> 2] = na;
g[I >> 2] = 0;
i = h;
return
}
g[I >> 2] = ma - oa;
oa = +g[ra >> 2];
ma = +g[d >> 2];
na = oa - ma;
pa = +g[ka >> 2];
_ = +g[la >> 2];
Z = pa - _;
w = +Q(+(na * na + Z * Z));
if (w < 1.1920928955078125E-7) {
va = na;
wa = Z
} else {
z = 1 / w;
va = na * z;
wa = Z * z
}
g[d >> 2] = ta * va + ma;
g[la >> 2] = ta * wa + _;
g[ra >> 2] = oa - x * va;
g[ka >> 2] = pa - x * wa;
i = h;
return
}
function ee(a, e, f, h, j, k) {
a = a | 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,
p = 0,
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 = i;
m = b[e + 4 >> 1] | 0;
n = m & 65535;
o = a + 108 | 0;
c[o >> 2] = n;
if (m << 16 >> 16 == 0)
p = n;
else {
n = f + 16 | 0;
m = j + 16 | 0;
q = h + 12 | 0;
r = h + 8 | 0;
s = h + 4 | 0;
t = k + 12 | 0;
u = k + 8 | 0;
v = k + 4 | 0;
w = 0;
do {
x = d[e + w + 6 >> 0] | 0;
c[a + (w * 36 | 0) + 28 >> 2] = x;
y = d[e + w + 9 >> 0] | 0;
c[a + (w * 36 | 0) + 32 >> 2] = y;
z = (c[n >> 2] | 0) + (x << 3) | 0;
A = +g[z >> 2];
B = +g[z + 4 >> 2];
z = (c[m >> 2] | 0) + (y << 3) | 0;
C = +g[z >> 2];
D = +g[z + 4 >> 2];
E = +g[q >>
2];
F = +g[r >> 2];
G = +g[h >> 2] + (A * E - B * F);
H = +G;
I = +(E * B + A * F + +g[s >> 2]);
z = a + (w * 36 | 0) | 0;
g[z >> 2] = H;
g[z + 4 >> 2] = I;
I = +g[t >> 2];
H = +g[u >> 2];
F = +g[k >> 2] + (C * I - D * H);
A = +F;
B = +(D * I + C * H + +g[v >> 2]);
z = a + (w * 36 | 0) + 8 | 0;
g[z >> 2] = A;
g[z + 4 >> 2] = B;
B = +(F - G);
G = +(+g[a + (w * 36 | 0) + 12 >> 2] - +g[a + (w * 36 | 0) + 4 >> 2]);
z = a + (w * 36 | 0) + 16 | 0;
g[z >> 2] = B;
g[z + 4 >> 2] = G;
g[a + (w * 36 | 0) + 24 >> 2] = 0;
w = w + 1 | 0;
z = c[o >> 2] | 0
} while ((w | 0) < (z | 0));
p = z
}
do if ((p | 0) > 1) {
G = +g[e >> 2];
if ((p | 0) == 2) {
B = +g[a + 16 >> 2] - +g[a + 52 >> 2];
F = +g[a + 20 >> 2] - +g[a + 56 >> 2];
J = +Q(+(B * B + F * F))
} else if ((p | 0) == 3) {
F = +g[a +
16 >> 2];
B = +g[a + 20 >> 2];
J = (+g[a + 52 >> 2] - F) * (+g[a + 92 >> 2] - B) - (+g[a + 56 >> 2] - B) * (+g[a + 88 >> 2] - F)
} else
J = 0;
if (!(J < G * .5) ? !(G * 2 < J | J < 1.1920928955078125E-7) : 0) {
K = 11;
break
}
c[o >> 2] = 0
} else
K = 11;
while (0);
if ((K | 0) == 11 ? (p | 0) != 0 : 0) {
i = l;
return
}
c[a + 28 >> 2] = 0;
c[a + 32 >> 2] = 0;
p = c[f + 16 >> 2] | 0;
J = +g[p >> 2];
G = +g[p + 4 >> 2];
p = c[j + 16 >> 2] | 0;
F = +g[p >> 2];
B = +g[p + 4 >> 2];
A = +g[h + 12 >> 2];
H = +g[h + 8 >> 2];
C = +g[h >> 2] + (J * A - G * H);
I = A * G + J * H + +g[h + 4 >> 2];
H = +C;
J = +I;
h = a;
g[h >> 2] = H;
g[h + 4 >> 2] = J;
J = +g[k + 12 >> 2];
H = +g[k + 8 >> 2];
G = +g[k >> 2] + (F * J - B * H);
A = B * J + F * H + +g[k + 4 >> 2];
H = +G;
F = +A;
k = a + 8 | 0;
g[k >> 2] = H;
g[k + 4 >> 2] = F;
F = +(G - C);
C = +(A - I);
k = a + 16 | 0;
g[k >> 2] = F;
g[k + 4 >> 2] = C;
g[a + 24 >> 2] = 1;
c[o >> 2] = 1;
i = l;
return
}
function fe(a, d) {
a = a | 0;
d = d | 0;
var e = 0,
f = 0,
h = 0,
j = 0;
e = i;
f = Em(d, 48) | 0;
if ((f | 0) == 0)
h = 0;
else {
c[f >> 2] = 488;
c[f + 4 >> 2] = 1;
g[f + 8 >> 2] = .009999999776482582;
d = f + 28 | 0;
c[d + 0 >> 2] = 0;
c[d + 4 >> 2] = 0;
c[d + 8 >> 2] = 0;
c[d + 12 >> 2] = 0;
b[d + 16 >> 1] = 0;
h = f
}
f = a + 4 | 0;
d = c[f + 4 >> 2] | 0;
j = h + 4 | 0;
c[j >> 2] = c[f >> 2];
c[j + 4 >> 2] = d;
d = h + 12 | 0;
j = a + 12 | 0;
c[d + 0 >> 2] = c[j + 0 >> 2];
c[d + 4 >> 2] = c[j + 4 >> 2];
c[d + 8 >> 2] = c[j + 8 >> 2];
c[d + 12 >> 2] = c[j + 12 >> 2];
c[d +
16 >> 2] = c[j + 16 >> 2];
c[d + 20 >> 2] = c[j + 20 >> 2];
c[d + 24 >> 2] = c[j + 24 >> 2];
c[d + 28 >> 2] = c[j + 28 >> 2];
b[d + 32 >> 1] = b[j + 32 >> 1] | 0;
i = e;
return h | 0
}
function ge(a) {
a = a | 0;
return 1
}
function he(a, b, c) {
a = a | 0;
b = b | 0;
c = c | 0;
return 0
}
function ie(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,
j = 0,
k = 0,
l = 0,
m = 0,
n = 0,
o = 0,
p = 0,
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 = i;
h = +g[b + 12 >> 2];
j = +g[a + 12 >> 2];
k = +g[b + 8 >> 2];
l = +g[a + 16 >> 2];
m = +g[b >> 2];
n = m + (h * j - k * l);
o = +g[b + 4 >> 2];
p = j * k + h * l + o;
l = +g[a + 20 >> 2];
j = +g[a + 24 >> 2];
q = m + (h * l - k * j);
m =
o + (k * l + h * j);
j = +g[c >> 2];
h = j - n;
l = +g[c + 4 >> 2];
k = l - p;
o = q - n;
n = m - p;
p = h * o + k * n;
do if (p > 0) {
r = o * o + n * n;
if (p > r) {
s = j - q;
t = l - m;
break
} else {
u = p / r;
s = h - o * u;
t = k - n * u;
break
}
} else {
s = h;
t = k
}
while (0);
k = +Q(+(t * t + s * s));
g[d >> 2] = k;
if (k > 0) {
h = 1 / k;
v = s * h;
w = t * h;
x = +v;
y = +w;
z = e;
A = z;
g[A >> 2] = x;
B = z + 4 | 0;
C = B;
g[C >> 2] = y;
i = f;
return
} else {
d = 8784;
h = +g[d >> 2];
v = h;
w = +g[d + 4 >> 2];
x = +v;
y = +w;
z = e;
A = z;
g[A >> 2] = x;
B = z + 4 | 0;
C = B;
g[C >> 2] = y;
i = f;
return
}
}
function je(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,
j = 0,
k = 0,
l = 0,
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;
f = +g[d >> 2];
h = +g[c >> 2] - f;
j = +g[d + 4 >> 2];
k = +g[c + 4 >> 2] - j;
l = d + 12 | 0;
m = +g[l >> 2];
n = d + 8 | 0;
o = +g[n >> 2];
p = h * m + k * o;
q = m * k - h * o;
h = +g[c + 8 >> 2] - f;
f = +g[c + 12 >> 2] - j;
j = m * h + o * f - p;
k = m * f - o * h - q;
d = a + 12 | 0;
h = +g[d >> 2];
o = +g[d + 4 >> 2];
d = a + 20 | 0;
f = +g[d >> 2];
m = f - h;
f = +g[d + 4 >> 2] - o;
r = -m;
s = m * m + f * f;
t = +Q(+s);
if (t < 1.1920928955078125E-7) {
u = f;
v = r
} else {
w = 1 / t;
u = f * w;
v = w * r
}
r = (o - q) * v + (h - p) * u;
w = k * v + j * u;
if (w == 0) {
x = 0;
i = e;
return x | 0
}
t = r / w;
if (t < 0) {
x = 0;
i = e;
return x | 0
}
if (s == 0 ? 1 : +g[c + 16 >> 2] < t) {
x = 0;
i = e;
return x | 0
}
w = (m * (p + j * t - h) + f * (q + k * t - o)) / s;
if (w < 0 | w > 1) {
x = 0;
i = e;
return x | 0
}
g[b + 8 >> 2] = t;
t = +g[l >> 2];
w = +g[n >> 2];
s = u * t - v * w;
o = v * t + u * w;
if (r > 0) {
r = +-s;
w = +-o;
n = b;
g[n >> 2] = r;
g[n + 4 >> 2] = w;
x = 1;
i = e;
return x | 0
} else {
w = +s;
s = +o;
n = b;
g[n >> 2] = w;
g[n + 4 >> 2] = s;
x = 1;
i = e;
return x | 0
}
return 0
}
function ke(a, b, c, d) {
a = a | 0;
b = b | 0;
c = c | 0;
d = d | 0;
var e = 0,
f = 0,
h = 0,
j = 0,
k = 0,
l = 0,
m = 0,
n = 0,
o = 0;
d = i;
e = +g[c + 12 >> 2];
f = +g[a + 12 >> 2];
h = +g[c + 8 >> 2];
j = +g[a + 16 >> 2];
k = +g[c >> 2];
l = k + (e * f - h * j);
m = +g[c + 4 >> 2];
n = f * h + e * j + m;
j = +g[a + 20 >> 2];
f = +g[a + 24 >> 2];
o = k + (e * j - h * f);
k = m + (h * j + e * f);
f = +g[a + 8 >> 2];
e = +((l < o ? l : o) - f);
j =
+((n < k ? n : k) - f);
a = b;
g[a >> 2] = e;
g[a + 4 >> 2] = j;
j = +(f + (l > o ? l : o));
o = +(f + (n > k ? n : k));
a = b + 8 | 0;
g[a >> 2] = j;
g[a + 4 >> 2] = o;
i = d;
return
}
function le(a, b, c) {
a = a | 0;
b = b | 0;
c = +c;
var d = 0,
e = 0;
d = i;
g[b >> 2] = 0;
c = +((+g[a + 12 >> 2] + +g[a + 20 >> 2]) * .5);
e = +((+g[a + 16 >> 2] + +g[a + 24 >> 2]) * .5);
a = b + 4 | 0;
g[a >> 2] = c;
g[a + 4 >> 2] = e;
g[b + 12 >> 2] = 0;
i = d;
return
}
function me(a, b) {
a = a | 0;
b = b | 0;
var d = 0,
e = 0,
f = 0,
h = 0;
d = i;
e = Em(b, 152) | 0;
if ((e | 0) == 0)
f = 0;
else {
c[e >> 2] = 592;
c[e + 4 >> 2] = 2;
g[e + 8 >> 2] = .009999999776482582;
c[e + 148 >> 2] = 0;
g[e + 12 >> 2] = 0;
g[e + 16 >> 2] = 0;
f = e
}
e = a + 4 | 0;
b = c[e +
4 >> 2] | 0;
h = f + 4 | 0;
c[h >> 2] = c[e >> 2];
c[h + 4 >> 2] = b;
An(f + 12 | 0, a + 12 | 0, 140) | 0;
i = d;
return f | 0
}
function ne(a) {
a = a | 0;
return 1
}
function oe(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;
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 = b + (d << 3) | 0;
n = c[m >> 2] | 0;
o = c[m + 4 >> 2] | 0;
p = (c[k >> 2] = n, +g[k >> 2]);
q = (c[k >> 2] = o, +g[k >> 2]);
a:
do if ((l | 0) > 0) {
m = 0;
while (1) {
r = p - +g[f + (m << 3) >> 2];
s = q - +g[f + (m << 3) + 4 >> 2];
m = m + 1 | 0;
if (r * r + s * s < .0024999999441206455) {
t = l;
break a
}
if ((m | 0) >= (l | 0)) {
u = 7;
break
}
}
} else
u = 7;
while (0);
if ((u | 0) == 7) {
u = 0;
m = f + (l << 3) | 0;
c[m >> 2] = n;
c[m + 4 >> 2] = o;
t = l + 1 | 0
}
d = d + 1 | 0;
if ((d | 0) == (j | 0))
break;
else
l = 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;
i = e;
return
}
l = 0;
j = 1;
q = +g[f >> 2];
while (1) {
p = +g[f + (j << 3) >> 2];
if (!(p > q))
if (p == q ? +g[f + (j << 3) + 4 >> 2] < +g[f + (l << 3) + 4 >> 2] : 0)
u = 22;
else {
v = l;
w = q
}
else
u = 22;
if ((u | 0) == 22) {
u = 0;
v = j;
w = p
}
j = j + 1 | 0;
if ((j | 0) == (t | 0)) {
x = v;
y = 0;
break
} else {
l = v;
q = w
}
}
while (1) {
c[h + (y << 2) >> 2] = x;
l = 0;
j = 1;
while (1) {
if ((l | 0) !=
(x | 0)) {
w = +g[f + (x << 3) >> 2];
q = +g[f + (l << 3) >> 2] - w;
p = +g[f + (x << 3) + 4 >> 2];
s = +g[f + (l << 3) + 4 >> 2] - p;
r = +g[f + (j << 3) >> 2] - w;
w = +g[f + (j << 3) + 4 >> 2] - p;
p = q * w - s * r;
u = p < 0 ? j : l;
if (p == 0 ? r * r + w * w > q * q + s * s : 0)
z = j;
else
z = u
} else
z = j;
j = j + 1 | 0;
if ((j | 0) == (t | 0))
break;
else
l = z
}
A = y + 1 | 0;
if ((z | 0) == (v | 0))
break;
else {
x = z;
y = A
}
}
c[a + 148 >> 2] = A;
z = (y | 0) > -1;
if (z) {
x = 0;
do {
v = f + (c[h + (x << 2) >> 2] << 3) | 0;
t = c[v + 4 >> 2] | 0;
l = a + (x << 3) + 20 | 0;
c[l >> 2] = c[v >> 2];
c[l + 4 >> 2] = t;
x = x + 1 | 0
} while ((x | 0) != (A | 0));
if (z) {
z = 0;
do {
x = z;
z = z + 1 | 0;
h = (z | 0) < (A | 0) ? z : 0;
s = +g[a + (h << 3) + 24 >> 2] - +g[a + (x <<
3) + 24 >> 2];
f = a + (x << 3) + 84 | 0;
q = +s;
w = +-(+g[a + (h << 3) + 20 >> 2] - +g[a + (x << 3) + 20 >> 2]);
h = f;
g[h >> 2] = q;
g[h + 4 >> 2] = w;
h = a + (x << 3) + 88 | 0;
w = +g[h >> 2];
q = +Q(+(s * s + w * w));
if (!(q < 1.1920928955078125E-7)) {
r = 1 / q;
g[f >> 2] = s * r;
g[h >> 2] = w * r
}
} while ((z | 0) != (A | 0))
}
}
z = a + 12 | 0;
h = a + 20 | 0;
if ((y | 0) > -1) {
r = 0;
w = 0;
s = 0;
y = 0;
while (1) {
f = a + (y << 3) + 20 | 0;
q = +g[f >> 2];
p = +g[f + 4 >> 2];
y = y + 1 | 0;
if ((y | 0) < (A | 0))
B = a + (y << 3) + 20 | 0;
else
B = h;
f = B;
C = +g[f >> 2];
D = +g[f + 4 >> 2];
E = (q * D - p * C) * .5;
F = s + E;
G = E * .3333333432674408;
E = r + (q + 0 + C) * G;
C = w + (p + 0 + D) * G;
if ((y | 0) == (A | 0)) {
H = E;
I = C;
J = F;
break
} else {
r =
E;
w = C;
s = F
}
}
} else {
H = 0;
I = 0;
J = 0
}
s = 1 / J;
J = +(H * s);
H = +(I * s);
A = z;
g[A >> 2] = J;
g[A + 4 >> 2] = H;
i = e;
return
}
function pe(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;
e = i;
f = +g[d >> 2] - +g[b >> 2];
h = +g[d + 4 >> 2] - +g[b + 4 >> 2];
j = +g[b + 12 >> 2];
k = +g[b + 8 >> 2];
l = f * j + h * k;
m = j * h - f * k;
b = c[a + 148 >> 2] | 0;
if ((b | 0) > 0)
n = 0;
else {
o = 1;
i = e;
return o | 0
}
while (1) {
if ((l - +g[a + (n << 3) + 20 >> 2]) * +g[a + (n << 3) + 84 >> 2] + (m - +g[a + (n << 3) + 24 >> 2]) * +g[a + (n << 3) + 88 >> 2] > 0) {
o = 0;
p = 4;
break
}
n = n + 1 | 0;
if ((n | 0) >= (b | 0)) {
o = 1;
p = 4;
break
}
}
if ((p | 0) == 4) {
i = e;
return o | 0
}
return 0
}
function qe(a, b, d, e, f, h) {
a = a | 0;
b = b | 0;
d = d | 0;
e = e | 0;
f = f | 0;
h = h | 0;
var j = 0,
k = 0,
l = 0,
m = 0,
n = 0,
o = 0,
p = 0,
q = 0,
r = 0,
s = 0,
t = 0,
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 = i;
j = +g[d >> 2] - +g[b >> 2];
k = +g[d + 4 >> 2] - +g[b + 4 >> 2];
d = b + 12 | 0;
l = +g[d >> 2];
m = b + 8 | 0;
n = +g[m >> 2];
o = j * l + k * n;
p = l * k - j * n;
b = c[a + 148 >> 2] | 0;
q = (b | 0) > 0;
if (q) {
n = o;
j = p;
r = 0;
k = -3.4028234663852886E38;
while (1) {
s = a + (r << 3) + 84 | 0;
l = (o - +g[a + (r << 3) + 20 >> 2]) * +g[s >> 2] + (p - +g[a + (r << 3) + 24 >> 2]) * +g[a + (r << 3) + 88 >> 2];
if (l > k) {
t = s;
u = +g[t >> 2];
v = +g[t + 4 >> 2];
w = u;
x = l
} else {
v = j;
w = n;
x = k
}
r =
r + 1 | 0;
if ((r | 0) >= (b | 0))
break;
else {
n = w;
j = v;
k = x
}
}
if (x > 0) {
k = x * x;
if (q) {
j = v;
n = w;
q = 0;
l = k;
while (1) {
u = o - +g[a + (q << 3) + 20 >> 2];
y = p - +g[a + (q << 3) + 24 >> 2];
z = u * u + y * y;
r = l > z;
A = r ? y : j;
y = r ? u : n;
u = r ? z : l;
q = q + 1 | 0;
if ((q | 0) >= (b | 0)) {
B = A;
C = y;
D = u;
break
} else {
j = A;
n = y;
l = u
}
}
} else {
B = v;
C = w;
D = k
}
g[e >> 2] = +Q(+D);
D = +g[d >> 2];
k = +g[m >> 2];
l = C * D - B * k;
n = B * D + C * k;
k = +l;
C = +n;
b = f;
g[b >> 2] = k;
g[b + 4 >> 2] = C;
C = +Q(+(l * l + n * n));
if (C < 1.1920928955078125E-7) {
i = h;
return
}
k = 1 / C;
g[f >> 2] = l * k;
g[f + 4 >> 2] = n * k;
i = h;
return
} else {
E = v;
F = w;
G = x
}
} else {
E = p;
F = o;
G = -3.4028234663852886E38
}
g[e >>
2] = G;
G = +g[d >> 2];
o = +g[m >> 2];
p = +(F * G - E * o);
x = +(E * G + F * o);
m = f;
g[m >> 2] = p;
g[m + 4 >> 2] = x;
i = h;
return
}
function re(a, b, d, e, f) {
a = a | 0;
b = b | 0;
d = d | 0;
e = e | 0;
f = f | 0;
var h = 0,
j = 0,
k = 0,
l = 0,
m = 0,
n = 0,
o = 0,
p = 0,
q = 0,
r = 0,
s = 0,
t = 0,
u = 0,
v = 0,
w = 0,
x = 0,
y = 0,
z = 0,
A = 0;
f = i;
h = +g[e >> 2];
j = +g[d >> 2] - h;
k = +g[e + 4 >> 2];
l = +g[d + 4 >> 2] - k;
m = e + 12 | 0;
n = +g[m >> 2];
o = e + 8 | 0;
p = +g[o >> 2];
q = j * n + l * p;
r = n * l - j * p;
j = +g[d + 8 >> 2] - h;
h = +g[d + 12 >> 2] - k;
k = n * j + p * h - q;
l = n * h - p * j - r;
e = c[a + 148 >> 2] | 0;
if ((e | 0) <= 0) {
s = 0;
i = f;
return s | 0
}
t = 0;
u = -1;
j = 0;
p = +g[d + 16 >> 2];
a:
while (1) {
h = +g[a + (t << 3) + 84 >> 2];
n =
+g[a + (t << 3) + 88 >> 2];
v = (+g[a + (t << 3) + 20 >> 2] - q) * h + (+g[a + (t << 3) + 24 >> 2] - r) * n;
w = k * h + l * n;
do if (w == 0)
if (v < 0) {
s = 0;
x = 15;
break a
} else {
y = u;
z = j;
A = p
}
else {
if (w < 0 ? v < j * w : 0) {
y = t;
z = v / w;
A = p;
break
}
if (w > 0 ? v < p * w : 0) {
y = u;
z = j;
A = v / w
} else {
y = u;
z = j;
A = p
}
}
while (0);
t = t + 1 | 0;
if (A < z) {
s = 0;
x = 15;
break
}
if ((t | 0) >= (e | 0)) {
x = 13;
break
} else {
u = y;
j = z;
p = A
}
}
if ((x | 0) == 13) {
if (!((y | 0) > -1)) {
s = 0;
i = f;
return s | 0
}
g[b + 8 >> 2] = z;
z = +g[m >> 2];
A = +g[a + (y << 3) + 84 >> 2];
p = +g[o >> 2];
j = +g[a + (y << 3) + 88 >> 2];
l = +(z * A - p * j);
k = +(A * p + z * j);
y = b;
g[y >> 2] = l;
g[y + 4 >> 2] = k;
s = 1;
i = f;
return s |
0
} else if ((x | 0) == 15) {
i = f;
return s | 0
}
return 0
}
function se(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;
e = i;
f = +g[d + 12 >> 2];
h = +g[a + 20 >> 2];
j = +g[d + 8 >> 2];
k = +g[a + 24 >> 2];
l = +g[d >> 2];
m = l + (f * h - j * k);
n = +g[d + 4 >> 2];
o = h * j + f * k + n;
d = c[a + 148 >> 2] | 0;
if ((d | 0) > 1) {
k = m;
h = o;
p = m;
q = o;
r = 1;
while (1) {
s = +g[a + (r << 3) + 20 >> 2];
t = +g[a + (r << 3) + 24 >> 2];
u = l + (f * s - j * t);
v = s * j + f * t + n;
t = k < u ? k : u;
s = h < v ? h : v;
w = p > u ? p : u;
u = q > v ? q : v;
r = r + 1 | 0;
if ((r | 0) >= (d | 0)) {
x = s;
y = t;
z = u;
A = w;
break
} else {
k =
t;
h = s;
p = w;
q = u
}
}
} else {
x = o;
y = m;
z = o;
A = m
}
m = +g[a + 8 >> 2];
o = +(y - m);
y = +(x - m);
a = b;
g[a >> 2] = o;
g[a + 4 >> 2] = y;
y = +(A + m);
A = +(z + m);
a = b + 8 | 0;
g[a >> 2] = y;
g[a + 4 >> 2] = A;
i = e;
return
}
function te(a, b, d) {
a = a | 0;
b = b | 0;
d = +d;
var e = 0,
f = 0,
h = 0,
j = 0,
k = 0,
l = 0,
m = 0,
n = 0,
o = 0,
p = 0,
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;
e = i;
f = c[a + 148 >> 2] | 0;
h = (f | 0) > 0;
if (h) {
j = 0;
k = 0;
l = 0;
do {
j = j + +g[a + (l << 3) + 20 >> 2];
k = k + +g[a + (l << 3) + 24 >> 2];
l = l + 1 | 0
} while ((l | 0) < (f | 0));
m = 1 / +(f | 0);
n = j * m;
j = k * m;
if (h) {
h = a + 20 | 0;
l = a + 24 | 0;
m = 0;
k = 0;
o = 0;
p = 0;
q = 0;
while (1) {
r = +g[a + (q << 3) + 20 >> 2] - n;
s = +g[a + (q << 3) + 24 >> 2] - j;
q = q + 1 | 0;
t = (q | 0) < (f | 0);
if (t) {
u = a + (q << 3) + 20 | 0;
v = a + (q << 3) + 24 | 0
} else {
u = h;
v = l
}
w = +g[u >> 2] - n;
x = +g[v >> 2] - j;
y = r * x - s * w;
z = y * .5;
A = p + z;
B = z * .3333333432674408;
z = m + (r + w) * B;
C = k + (s + x) * B;
B = o + y * .0833333358168602 * (w * w + (r * r + r * w) + (x * x + (s * s + s * x)));
if (!t) {
D = C;
E = z;
F = n;
G = j;
H = B;
I = A;
break
} else {
m = z;
k = C;
o = B;
p = A
}
}
} else {
D = 0;
E = 0;
F = n;
G = j;
H = 0;
I = 0
}
} else {
j = 1 / +(f | 0);
D = 0;
E = 0;
F = j * 0;
G = j * 0;
H = 0;
I = 0
}
j = I * d;
g[b >> 2] = j;
n = 1 / I;
I = E * n;
E = D * n;
n = F + I;
F = G + E;
G = +n;
D = +F;
f = b + 4 | 0;
g[f >> 2] = G;
g[f + 4 >> 2] = D;
g[b +
12 >> 2] = H * d + j * (n * n + F * F - (I * I + E * E));
i = e;
return
}
function ue(a, b) {
a = a | 0;
b = b | 0;
var d = 0,
e = 0,
f = 0,
g = 0;
d = i;
e = Em(b, 20) | 0;
if ((e | 0) == 0)
f = 0;
else {
c[e >> 2] = 680;
b = e + 4 | 0;
c[b + 0 >> 2] = 0;
c[b + 4 >> 2] = 0;
c[b + 8 >> 2] = 0;
c[b + 12 >> 2] = 0;
f = e
}
e = a + 4 | 0;
b = c[e + 4 >> 2] | 0;
g = f + 4 | 0;
c[g >> 2] = c[e >> 2];
c[g + 4 >> 2] = b;
b = a + 12 | 0;
a = c[b + 4 >> 2] | 0;
g = f + 12 | 0;
c[g >> 2] = c[b >> 2];
c[g + 4 >> 2] = a;
i = d;
return f | 0
}
function ve(a) {
a = a | 0;
return 1
}
function we(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 xe(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,
j = 0,
k = 0,
l = 0,
m = 0,
n = 0;
f = i;
h = +g[b + 12 >> 2];
j = +g[a + 12 >> 2];
k = +g[b + 8 >> 2];
l = +g[a + 16 >> 2];
m = +g[c >> 2] - (+g[b >> 2] + (h * j - k * l));
n = +g[c + 4 >> 2] - (+g[b + 4 >> 2] + (j * k + h * l));
l = +Q(+(m * m + n * n));
g[d >> 2] = l - +g[a + 8 >> 2];
h = 1 / l;
l = +(m * h);
m = +(n * h);
a = e;
g[a >> 2] = l;
g[a + 4 >> 2] = m;
i = f;
return
}
function ye(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,
j = 0,
k = 0,
l = 0,
m = 0,
n = 0,
o = 0,
p = 0;
e = i;
f = +g[d +
12 >> 2];
h = +g[a + 12 >> 2];
j = +g[d + 8 >> 2];
k = +g[a + 16 >> 2];
l = +g[c >> 2];
m = l - (+g[d >> 2] + (f * h - j * k));
n = +g[c + 4 >> 2];
o = n - (+g[d + 4 >> 2] + (h * j + f * k));
k = +g[a + 8 >> 2];
f = +g[c + 8 >> 2] - l;
l = +g[c + 12 >> 2] - n;
n = m * f + o * l;
j = f * f + l * l;
h = n * n - (m * m + o * o - k * k) * j;
if (h < 0 | j < 1.1920928955078125E-7) {
p = 0;
i = e;
return p | 0
}
k = n + +Q(+h);
h = -k;
if (!(k <= -0)) {
p = 0;
i = e;
return p | 0
}
if (!(j * +g[c + 16 >> 2] >= h)) {
p = 0;
i = e;
return p | 0
}
k = h / j;
g[b + 8 >> 2] = k;
j = m + f * k;
f = o + l * k;
k = +j;
l = +f;
c = b;
g[c >> 2] = k;
g[c + 4 >> 2] = l;
l = +Q(+(j * j + f * f));
if (l < 1.1920928955078125E-7) {
p = 1;
i = e;
return p | 0
}
k = 1 / l;
g[b >> 2] =
j * k;
g[b + 4 >> 2] = f * k;
p = 1;
i = e;
return p | 0
}
function ze(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);
c = a + 8 | 0;
i = +g[c >> 2];
g[b >> 2] = j - i;
g[b + 4 >> 2] = k - i;
i = +g[c >> 2];
g[b + 8 >> 2] = j + i;
g[b + 12 >> 2] = k + i;
return
}
function Ae(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 Be(a) {
a = a | 0;
var b = 0;
b = i;
c[a >> 2] = 760;
Qm(c[a + 12 >> 2] | 0);
sn(a);
i = b;
return
}
function Ce(a) {
a = a | 0;
var b = 0,
d = 0;
b = i;
c[a >> 2] = 760;
d = a + 12 | 0;
Qm(c[d >> 2] | 0);
c[d >> 2] = 0;
c[a + 16 >> 2] = 0;
i = b;
return
}
function De(a, d, e) {
a = a | 0;
d = d | 0;
e = e | 0;
var f = 0,
g = 0,
h = 0;
f = i;
g = a + 16 | 0;
c[g >> 2] = e;
h = Pm(e << 3) | 0;
c[a + 12 >> 2] = h;
An(h | 0, d | 0, c[g >> 2] << 3 | 0) | 0;
g = a + 20 | 0;
c[g + 0 >> 2] = 0;
c[g + 4 >> 2] = 0;
c[g + 8 >> 2] = 0;
c[g + 12 >> 2] = 0;
b[g + 16 >> 1] = 0;
i = f;
return
}
function Ee(d, e) {
d = d | 0;
e = e | 0;
var f = 0,
h = 0,
j = 0,
k = 0,
l = 0;
f = i;
h = Em(e, 40) | 0;
if ((h | 0) == 0)
j = 0;
else {
c[h >> 2] = 760;
c[h + 4 >> 2] = 3;
g[h + 8 >> 2] = .009999999776482582;
c[h + 12 >> 2] = 0;
c[h + 16 >> 2] = 0;
a[h + 36 >> 0] = 0;
a[h + 37 >> 0] = 0;
j = h
}
h = c[d + 12 >> 2] | 0;
e = c[d + 16 >> 2] | 0;
k = j + 16 | 0;
c[k >> 2] = e;
l = Pm(e << 3) | 0;
c[j + 12 >> 2] = l;
An(l | 0, h | 0, c[k >> 2] << 3 | 0) | 0;
k = j + 20 | 0;
c[k + 0 >> 2] = 0;
c[k + 4 >> 2] = 0;
c[k + 8 >> 2] = 0;
c[k + 12 >> 2] = 0;
b[k + 16 >> 1] = 0;
k = d + 20 | 0;
h = c[k + 4 >> 2] | 0;
l = j + 20 | 0;
c[l >> 2] = c[k >> 2];
c[l + 4 >> 2] = h;
h = d + 28 | 0;
l = c[h + 4 >> 2] | 0;
k = j + 28 | 0;
c[k >> 2] = c[h >> 2];
c[k + 4 >> 2] = l;
a[j + 36 >> 0] = a[d + 36 >> 0] | 0;
a[j + 37 >> 0] = a[d + 37 >> 0] | 0;
i = f;
return j | 0
}
function Fe(a) {
a = a | 0;
return (c[a + 16 >> 2] | 0) + -1 | 0
}
function Ge(b, d, e) {
b = b | 0;
d = d | 0;
e = e | 0;
var f = 0,
h = 0,
j = 0,
k = 0,
l = 0,
m = 0;
f = i;
c[d + 4 >> 2] = 1;
g[d + 8 >> 2] = +g[b + 8 >> 2];
h = b + 12 | 0;
j = (c[h >> 2] | 0) + (e << 3) | 0;
k = c[j + 4 >> 2] | 0;
l = d + 12 | 0;
c[l >> 2] = c[j >> 2];
c[l + 4 >> 2] = k;
k = (c[h >> 2] | 0) + (e + 1 << 3) | 0;
l = c[k + 4 >> 2] | 0;
j = d + 20 | 0;
c[j >> 2] = c[k >> 2];
c[j + 4 >> 2] = l;
l = d + 28 | 0;
if ((e | 0) > 0) {
j = (c[h >> 2] | 0) + (e + -1 << 3) | 0;
k = c[j + 4 >> 2] | 0;
m = l;
c[m >> 2] = c[j >> 2];
c[m + 4 >> 2] = k;
a[d + 44 >> 0] = 1
} else {
k = b + 20 | 0;
m = c[k + 4 >> 2] | 0;
j = l;
c[j >> 2] = c[k >> 2];
c[j + 4 >> 2] = m;
a[d + 44 >> 0] = a[b +
36 >> 0] | 0
}
m = d + 36 | 0;
if (((c[b + 16 >> 2] | 0) + -2 | 0) > (e | 0)) {
j = (c[h >> 2] | 0) + (e + 2 << 3) | 0;
e = c[j + 4 >> 2] | 0;
h = m;
c[h >> 2] = c[j >> 2];
c[h + 4 >> 2] = e;
a[d + 45 >> 0] = 1;
i = f;
return
} else {
e = b + 28 | 0;
h = c[e + 4 >> 2] | 0;
j = m;
c[j >> 2] = c[e >> 2];
c[j + 4 >> 2] = h;
a[d + 45 >> 0] = a[b + 37 >> 0] | 0;
i = f;
return
}
}
function He(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,
p = 0,
q = 0,
r = 0;
l = i;
i = i + 48 | 0;
m = l;
c[m >> 2] = 488;
n = m + 4 | 0;
o = m + 8 | 0;
p = m + 28 | 0;
c[p + 0 >> 2] = 0;
c[p + 4 >> 2] = 0;
c[p + 8 >> 2] = 0;
c[p + 12 >> 2] = 0;
b[p + 16 >> 1] = 0;
c[n >> 2] = 1;
g[o >> 2] = +g[d + 8 >> 2];
o = c[d + 12 >> 2] | 0;
n = o + (k <<
3) | 0;
p = c[n + 4 >> 2] | 0;
q = m + 12 | 0;
c[q >> 2] = c[n >> 2];
c[q + 4 >> 2] = p;
p = o + (k + 1 << 3) | 0;
q = c[p + 4 >> 2] | 0;
n = m + 20 | 0;
c[n >> 2] = c[p >> 2];
c[n + 4 >> 2] = q;
q = m + 28 | 0;
if ((k | 0) > 0) {
n = o + (k + -1 << 3) | 0;
p = c[n + 4 >> 2] | 0;
r = q;
c[r >> 2] = c[n >> 2];
c[r + 4 >> 2] = p;
a[m + 44 >> 0] = 1
} else {
p = d + 20 | 0;
r = c[p + 4 >> 2] | 0;
n = q;
c[n >> 2] = c[p >> 2];
c[n + 4 >> 2] = r;
a[m + 44 >> 0] = a[d + 36 >> 0] | 0
}
r = m + 36 | 0;
if (((c[d + 16 >> 2] | 0) + -2 | 0) > (k | 0)) {
n = o + (k + 2 << 3) | 0;
k = c[n + 4 >> 2] | 0;
o = r;
c[o >> 2] = c[n >> 2];
c[o + 4 >> 2] = k;
a[m + 45 >> 0] = 1;
ie(m, e, f, h, j, 0);
i = l;
return
} else {
k = d + 28 | 0;
o = c[k + 4 >> 2] | 0;
n = r;
c[n >> 2] = c[k >> 2];
c[n + 4 >> 2] =
o;
a[m + 45 >> 0] = a[d + 37 >> 0] | 0;
ie(m, e, f, h, j, 0);
i = l;
return
}
}
function Ie(a, b, c) {
a = a | 0;
b = b | 0;
c = c | 0;
return 0
}
function Je(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] = 488;
c[k + 4 >> 2] = 1;
g[k + 8 >> 2] = .009999999776482582;
l = k + 28 | 0;
c[l + 0 >> 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 = je(k,
d, e, f, 0) | 0;
i = j;
return m | 0
}
function Ke(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;
f = i;
h = e + 1 | 0;
j = (h | 0) == (c[a + 16 >> 2] | 0) ? 0 : h;
h = c[a + 12 >> 2] | 0;
k = +g[d + 12 >> 2];
l = +g[h + (e << 3) >> 2];
m = +g[d + 8 >> 2];
n = +g[h + (e << 3) + 4 >> 2];
o = +g[d >> 2];
p = o + (k * l - m * n);
q = +g[d + 4 >> 2];
r = l * m + k * n + q;
n = +g[h + (j << 3) >> 2];
l = +g[h + (j << 3) + 4 >> 2];
s = o + (k * n - m * l);
o = q + (m * n + k * l);
l = +(p < s ? p : s);
k = +(r < o ? r : o);
j = b;
g[j >> 2] = l;
g[j + 4 >> 2] = k;
k = +(p > s ? p : s);
s = +(r > o ? r : o);
j = b + 8 | 0;
g[j >> 2] = k;
g[j + 4 >> 2] = s;
i = f;
return
}
function Le(a, b, d) {
a = a |
0;
b = b | 0;
d = +d;
a = i;
c[b + 0 >> 2] = 0;
c[b + 4 >> 2] = 0;
c[b + 8 >> 2] = 0;
c[b + 12 >> 2] = 0;
i = a;
return
}
function Me(a) {
a = a | 0;
var b = 0;
b = i;
Ve(a);
c[a + 28 >> 2] = 0;
c[a + 48 >> 2] = 16;
c[a + 52 >> 2] = 0;
c[a + 44 >> 2] = Pm(128) | 0;
c[a + 36 >> 2] = 16;
c[a + 40 >> 2] = 0;
c[a + 32 >> 2] = Pm(64) | 0;
i = b;
return
}
function Ne(a) {
a = a | 0;
var b = 0;
b = i;
Qm(c[a + 32 >> 2] | 0);
Qm(c[a + 44 >> 2] | 0);
We(a);
i = b;
return
}
function Oe(a, b, d) {
a = a | 0;
b = b | 0;
d = d | 0;
var e = 0,
f = 0,
g = 0,
h = 0,
j = 0;
e = i;
f = Ye(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;
g = a + 36 | 0;
h = a + 32 | 0;
if ((b | 0) == (c[g >> 2] | 0)) {
a = c[h >> 2] |
0;
c[g >> 2] = b << 1;
g = Pm(b << 3) | 0;
c[h >> 2] = g;
An(g | 0, a | 0, c[d >> 2] << 2 | 0) | 0;
Qm(a);
j = c[d >> 2] | 0
} else
j = b;
c[(c[h >> 2] | 0) + (j << 2) >> 2] = f;
c[d >> 2] = (c[d >> 2] | 0) + 1;
i = e;
return f | 0
}
function Pe(a, b) {
a = a | 0;
b = b | 0;
var d = 0,
e = 0,
f = 0,
g = 0,
h = 0,
j = 0,
k = 0;
d = i;
e = a + 40 | 0;
f = c[e >> 2] | 0;
if ((f | 0) > 0) {
g = c[a + 32 >> 2] | 0;
h = f;
f = 0;
while (1) {
j = g + (f << 2) | 0;
if ((c[j >> 2] | 0) == (b | 0)) {
c[j >> 2] = -1;
k = c[e >> 2] | 0
} else
k = h;
f = f + 1 | 0;
if ((f | 0) >= (k | 0))
break;
else
h = k
}
}
k = a + 28 | 0;
c[k >> 2] = (c[k >> 2] | 0) + -1;
_e(a, b);
i = d;
return
}
function Qe(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;
f = i;
if (!(af(a, b, d, e) | 0)) {
i = f;
return
}
e = a + 40 | 0;
d = c[e >> 2] | 0;
g = a + 36 | 0;
h = a + 32 | 0;
if ((d | 0) == (c[g >> 2] | 0)) {
a = c[h >> 2] | 0;
c[g >> 2] = d << 1;
g = Pm(d << 3) | 0;
c[h >> 2] = g;
An(g | 0, a | 0, c[e >> 2] << 2 | 0) | 0;
Qm(a);
j = c[e >> 2] | 0
} else
j = d;
c[(c[h >> 2] | 0) + (j << 2) >> 2] = b;
c[e >> 2] = (c[e >> 2] | 0) + 1;
i = f;
return
}
function Re(a, b) {
a = a | 0;
b = b | 0;
var d = 0,
e = 0,
f = 0,
g = 0,
h = 0,
j = 0;
d = i;
e = a + 40 | 0;
f = c[e >> 2] | 0;
g = a + 36 | 0;
h = a + 32 | 0;
if ((f | 0) == (c[g >> 2] | 0)) {
a = c[h >> 2] | 0;
c[g >> 2] = f << 1;
g = Pm(f << 3) | 0;
c[h >> 2] = g;
An(g | 0, a | 0, c[e >> 2] << 2 | 0) | 0;
Qm(a);
j = c[e >> 2] | 0
} else
j = f;
c[(c[h >>
2] | 0) + (j << 2) >> 2] = b;
c[e >> 2] = (c[e >> 2] | 0) + 1;
i = d;
return
}
function Se(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;
d = i;
e = a + 56 | 0;
f = c[e >> 2] | 0;
if ((f | 0) == (b | 0)) {
i = d;
return 1
}
g = a + 52 | 0;
h = c[g >> 2] | 0;
j = a + 48 | 0;
k = a + 44 | 0;
if ((h | 0) == (c[j >> 2] | 0)) {
a = c[k >> 2] | 0;
c[j >> 2] = h << 1;
j = Pm(h << 4) | 0;
c[k >> 2] = j;
An(j | 0, a | 0, c[g >> 2] << 3 | 0) | 0;
Qm(a);
l = c[e >> 2] | 0;
m = c[g >> 2] | 0
} else {
l = f;
m = h
}
h = c[k >> 2] | 0;
c[h + (m << 3) >> 2] = (l | 0) > (b | 0) ? b : l;
l = c[e >> 2] | 0;
c[h + (c[g >> 2] << 3) + 4 >> 2] = (l | 0) < (b | 0) ? b : l;
c[g >> 2] = (c[g >> 2] | 0) + 1;
i = d;
return 1
}
function Te(a, b,
d, e, f) {
a = a | 0;
b = b | 0;
d = d | 0;
e = e | 0;
f = f | 0;
var h = 0,
j = 0,
k = 0,
l = 0,
m = 0,
n = 0,
o = 0,
p = 0,
q = 0,
r = 0,
s = 0,
t = 0,
u = 0,
v = 0;
h = i;
j = a + 60 | 0;
c[j >> 2] = 0;
k = b + 12 | 0;
l = +g[d + 12 >> 2];
m = +g[k >> 2];
n = +g[d + 8 >> 2];
o = +g[b + 16 >> 2];
p = e + 12 | 0;
q = +g[f + 12 >> 2];
r = +g[p >> 2];
s = +g[f + 8 >> 2];
t = +g[e + 16 >> 2];
u = +g[f >> 2] + (q * r - s * t) - (+g[d >> 2] + (l * m - n * o));
v = r * s + q * t + +g[f + 4 >> 2] - (m * n + l * o + +g[d + 4 >> 2]);
o = +g[b + 8 >> 2] + +g[e + 8 >> 2];
if (u * u + v * v > o * o) {
i = h;
return
}
c[a + 56 >> 2] = 0;
e = k;
k = c[e + 4 >> 2] | 0;
b = a + 48 | 0;
c[b >> 2] = c[e >> 2];
c[b + 4 >> 2] = k;
g[a + 40 >> 2] = 0;
g[a + 44 >> 2] = 0;
c[j >> 2] = 1;
j = p;
p = c[j + 4 >> 2] | 0;
k = a;
c[k >> 2] = c[j >> 2];
c[k + 4 >> 2] = p;
c[a + 16 >> 2] = 0;
i = h;
return
}
function Ue(a, b, d, e, f) {
a = a | 0;
b = b | 0;
d = d | 0;
e = e | 0;
f = f | 0;
var h = 0,
j = 0,
l = 0,
m = 0,
n = 0,
o = 0,
p = 0,
q = 0,
r = 0,
s = 0,
t = 0,
u = 0,
v = 0,
w = 0,
x = 0,
y = 0,
z = 0,
A = 0,
B = 0,
C = 0,
D = 0,
E = 0,
F = 0;
h = i;
j = a + 60 | 0;
c[j >> 2] = 0;
l = e + 12 | 0;
m = +g[f + 12 >> 2];
n = +g[l >> 2];
o = +g[f + 8 >> 2];
p = +g[e + 16 >> 2];
q = +g[f >> 2] + (m * n - o * p) - +g[d >> 2];
r = n * o + m * p + +g[f + 4 >> 2] - +g[d + 4 >> 2];
p = +g[d + 12 >> 2];
m = +g[d + 8 >> 2];
o = q * p + r * m;
n = p * r - q * m;
m = +g[b + 8 >> 2] + +g[e + 8 >> 2];
e = c[b + 148 >> 2] | 0;
do if ((e | 0) > 0) {
d = 0;
f = 0;
q = -3.4028234663852886E38;
while (1) {
r = (o -
+g[b + (d << 3) + 20 >> 2]) * +g[b + (d << 3) + 84 >> 2] + (n - +g[b + (d << 3) + 24 >> 2]) * +g[b + (d << 3) + 88 >> 2];
if (r > m) {
s = 19;
break
}
t = r > q;
q = t ? r : q;
f = t ? d : f;
d = d + 1 | 0;
if ((d | 0) >= (e | 0)) {
s = 4;
break
}
}
if ((s | 0) == 4) {
u = f;
v = q < 1.1920928955078125E-7;
break
} else if ((s | 0) == 19) {
i = h;
return
}
} else {
u = 0;
v = 1
}
while (0);
s = u + 1 | 0;
d = b + (u << 3) + 20 | 0;
t = c[d >> 2] | 0;
w = c[d + 4 >> 2] | 0;
r = (c[k >> 2] = t, +g[k >> 2]);
p = (c[k >> 2] = w, +g[k >> 2]);
d = b + (((s | 0) < (e | 0) ? s : 0) << 3) + 20 | 0;
s = c[d >> 2] | 0;
e = c[d + 4 >> 2] | 0;
x = (c[k >> 2] = s, +g[k >> 2]);
y = (c[k >> 2] = e, +g[k >> 2]);
if (v) {
c[j >> 2] = 1;
c[a + 56 >> 2] = 1;
v = b + (u << 3) + 84 |
0;
d = c[v + 4 >> 2] | 0;
z = a + 40 | 0;
c[z >> 2] = c[v >> 2];
c[z + 4 >> 2] = d;
A = +((r + x) * .5);
B = +((p + y) * .5);
d = a + 48 | 0;
g[d >> 2] = A;
g[d + 4 >> 2] = B;
d = l;
z = c[d + 4 >> 2] | 0;
v = a;
c[v >> 2] = c[d >> 2];
c[v + 4 >> 2] = z;
c[a + 16 >> 2] = 0;
i = h;
return
}
B = o - r;
A = n - p;
C = o - x;
D = n - y;
if (B * (x - r) + A * (y - p) <= 0) {
if (B * B + A * A > m * m) {
i = h;
return
}
c[j >> 2] = 1;
c[a + 56 >> 2] = 1;
z = a + 40 | 0;
E = +B;
F = +A;
v = z;
g[v >> 2] = E;
g[v + 4 >> 2] = F;
F = +Q(+(B * B + A * A));
if (!(F < 1.1920928955078125E-7)) {
E = 1 / F;
g[z >> 2] = B * E;
g[a + 44 >> 2] = A * E
}
z = a + 48 | 0;
c[z >> 2] = t;
c[z + 4 >> 2] = w;
w = l;
z = c[w + 4 >> 2] | 0;
t = a;
c[t >> 2] = c[w >> 2];
c[t + 4 >> 2] = z;
c[a + 16 >> 2] =
0;
i = h;
return
}
if (!(C * (r - x) + D * (p - y) <= 0)) {
E = (r + x) * .5;
x = (p + y) * .5;
z = b + (u << 3) + 84 | 0;
if ((o - E) * +g[z >> 2] + (n - x) * +g[b + (u << 3) + 88 >> 2] > m) {
i = h;
return
}
c[j >> 2] = 1;
c[a + 56 >> 2] = 1;
u = z;
z = c[u + 4 >> 2] | 0;
b = a + 40 | 0;
c[b >> 2] = c[u >> 2];
c[b + 4 >> 2] = z;
n = +E;
E = +x;
z = a + 48 | 0;
g[z >> 2] = n;
g[z + 4 >> 2] = E;
z = l;
b = c[z + 4 >> 2] | 0;
u = a;
c[u >> 2] = c[z >> 2];
c[u + 4 >> 2] = b;
c[a + 16 >> 2] = 0;
i = h;
return
}
if (C * C + D * D > m * m) {
i = h;
return
}
c[j >> 2] = 1;
c[a + 56 >> 2] = 1;
j = a + 40 | 0;
m = +C;
E = +D;
b = j;
g[b >> 2] = m;
g[b + 4 >> 2] = E;
E = +Q(+(C * C + D * D));
if (!(E < 1.1920928955078125E-7)) {
m = 1 / E;
g[j >> 2] = C * m;
g[a + 44 >> 2] = D *
m
}
j = a + 48 | 0;
c[j >> 2] = s;
c[j + 4 >> 2] = e;
e = l;
l = c[e + 4 >> 2] | 0;
j = a;
c[j >> 2] = c[e >> 2];
c[j + 4 >> 2] = l;
c[a + 16 >> 2] = 0;
i = h;
return
}
function Ve(a) {
a = a | 0;
var b = 0,
d = 0,
e = 0,
f = 0,
g = 0,
h = 0,
j = 0;
b = i;
c[a >> 2] = -1;
d = a + 12 | 0;
c[d >> 2] = 16;
c[a + 8 >> 2] = 0;
e = Pm(576) | 0;
f = a + 4 | 0;
c[f >> 2] = e;
xn(e | 0, 0, (c[d >> 2] | 0) * 36 | 0) | 0;
e = (c[d >> 2] | 0) + -1 | 0;
g = c[f >> 2] | 0;
if ((e | 0) > 0) {
f = 0;
do {
h = f;
f = f + 1 | 0;
c[g + (h * 36 | 0) + 20 >> 2] = f;
c[g + (h * 36 | 0) + 32 >> 2] = -1;
h = (c[d >> 2] | 0) + -1 | 0
} while ((f | 0) < (h | 0));
j = h
} else
j = e;
c[g + (j * 36 | 0) + 20 >> 2] = -1;
c[g + (((c[d >> 2] | 0) + -1 | 0) * 36 | 0) + 32 >> 2] = -1;
c[a + 16 >> 2] = 0;
c[a +
20 >> 2] = 0;
c[a + 24 >> 2] = 0;
i = b;
return
}
function We(a) {
a = a | 0;
var b = 0;
b = i;
Qm(c[a + 4 >> 2] | 0);
i = b;
return
}
function Xe(a) {
a = a | 0;
var b = 0,
d = 0,
e = 0,
f = 0,
g = 0,
h = 0,
j = 0,
k = 0,
l = 0,
m = 0,
n = 0,
o = 0,
p = 0,
q = 0;
b = i;
d = a + 16 | 0;
e = c[d >> 2] | 0;
f = a + 4 | 0;
g = c[f >> 2] | 0;
if ((e | 0) == -1) {
h = a + 12 | 0;
j = c[h >> 2] | 0;
c[h >> 2] = j << 1;
k = Pm(j * 72 | 0) | 0;
c[f >> 2] = k;
j = a + 8 | 0;
An(k | 0, g | 0, (c[j >> 2] | 0) * 36 | 0) | 0;
Qm(g);
k = c[j >> 2] | 0;
l = (c[h >> 2] | 0) + -1 | 0;
m = c[f >> 2] | 0;
if ((k | 0) < (l | 0)) {
f = k;
do {
k = f;
f = f + 1 | 0;
c[m + (k * 36 | 0) + 20 >> 2] = f;
c[m + (k * 36 | 0) + 32 >> 2] = -1;
k = (c[h >> 2] | 0) + -1 | 0
} while ((f | 0) < (k | 0));
n = k
} else
n =
l;
c[m + (n * 36 | 0) + 20 >> 2] = -1;
c[m + (((c[h >> 2] | 0) + -1 | 0) * 36 | 0) + 32 >> 2] = -1;
h = c[j >> 2] | 0;
c[d >> 2] = h;
o = j;
p = m;
q = h
} else {
o = a + 8 | 0;
p = g;
q = e
}
e = p + (q * 36 | 0) + 20 | 0;
c[d >> 2] = c[e >> 2];
c[e >> 2] = -1;
c[p + (q * 36 | 0) + 24 >> 2] = -1;
c[p + (q * 36 | 0) + 28 >> 2] = -1;
c[p + (q * 36 | 0) + 32 >> 2] = 0;
c[p + (q * 36 | 0) + 16 >> 2] = 0;
c[o >> 2] = (c[o >> 2] | 0) + 1;
i = b;
return q | 0
}
function Ye(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;
e = i;
f = Xe(a) | 0;
h = a + 4 | 0;
j = +(+g[b >> 2] + -.10000000149011612);
k = +(+g[b + 4 >> 2] + -.10000000149011612);
l = (c[h >> 2] | 0) + (f * 36 | 0) | 0;
g[l >> 2] = j;
g[l + 4 >> 2] = k;
k = +(+g[b +
8 >> 2] + .10000000149011612);
j = +(+g[b + 12 >> 2] + .10000000149011612);
b = (c[h >> 2] | 0) + (f * 36 | 0) + 8 | 0;
g[b >> 2] = k;
g[b + 4 >> 2] = j;
c[(c[h >> 2] | 0) + (f * 36 | 0) + 16 >> 2] = d;
c[(c[h >> 2] | 0) + (f * 36 | 0) + 32 >> 2] = 0;
Ze(a, f);
i = e;
return f | 0
}
function Ze(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;
d = i;
e = a + 24 | 0;
c[e >> 2] = (c[e >> 2] | 0) + 1;
e = c[a >> 2] | 0;
if ((e | 0) == -1) {
c[a >> 2] = b;
c[(c[a + 4 >> 2] | 0) + (b * 36 | 0) + 20 >> 2] = -1;
i = d;
return
}
f = a + 4 | 0;
h = c[f >> 2] | 0;
j = +g[h + (b * 36 | 0) >>
2];
k = +g[h + (b * 36 | 0) + 4 >> 2];
l = +g[h + (b * 36 | 0) + 8 >> 2];
m = +g[h + (b * 36 | 0) + 12 >> 2];
n = c[h + (e * 36 | 0) + 24 >> 2] | 0;
a:
do if ((n | 0) == -1)
o = e;
else {
p = n;
q = e;
while (1) {
r = c[h + (q * 36 | 0) + 28 >> 2] | 0;
s = +g[h + (q * 36 | 0) + 8 >> 2];
t = +g[h + (q * 36 | 0) >> 2];
u = +g[h + (q * 36 | 0) + 12 >> 2];
v = +g[h + (q * 36 | 0) + 4 >> 2];
w = ((s > l ? s : l) - (t < j ? t : j) + ((u > m ? u : m) - (v < k ? v : k))) * 2;
x = w * 2;
y = (w - (s - t + (u - v)) * 2) * 2;
v = +g[h + (p * 36 | 0) >> 2];
u = j < v ? j : v;
t = +g[h + (p * 36 | 0) + 4 >> 2];
s = k < t ? k : t;
w = +g[h + (p * 36 | 0) + 8 >> 2];
z = l > w ? l : w;
A = +g[h + (p * 36 | 0) + 12 >> 2];
B = m > A ? m : A;
if ((c[h + (p * 36 | 0) + 24 >> 2] | 0) == -1)
C = (z - u + (B - s)) * 2;
else
C =
(z - u + (B - s)) * 2 - (w - v + (A - t)) * 2;
t = y + C;
A = +g[h + (r * 36 | 0) >> 2];
v = j < A ? j : A;
w = +g[h + (r * 36 | 0) + 4 >> 2];
s = k < w ? k : w;
B = +g[h + (r * 36 | 0) + 8 >> 2];
u = l > B ? l : B;
z = +g[h + (r * 36 | 0) + 12 >> 2];
D = m > z ? m : z;
if ((c[h + (r * 36 | 0) + 24 >> 2] | 0) == -1)
E = (u - v + (D - s)) * 2;
else
E = (u - v + (D - s)) * 2 - (B - A + (z - w)) * 2;
w = y + E;
if (x < t & x < w) {
o = q;
break a
}
F = t < w ? p : r;
p = c[h + (F * 36 | 0) + 24 >> 2] | 0;
if ((p | 0) == -1) {
o = F;
break
} else
q = F
}
}
while (0);
e = c[h + (o * 36 | 0) + 20 >> 2] | 0;
h = Xe(a) | 0;
n = c[f >> 2] | 0;
c[n + (h * 36 | 0) + 20 >> 2] = e;
c[n + (h * 36 | 0) + 16 >> 2] = 0;
n = c[f >> 2] | 0;
E = +g[n + (o * 36 | 0) >> 2];
C = +g[n + (o * 36 | 0) + 4 >> 2];
w = +(j < E ?
j : E);
E = +(k < C ? k : C);
q = n + (h * 36 | 0) | 0;
g[q >> 2] = w;
g[q + 4 >> 2] = E;
E = +g[n + (o * 36 | 0) + 8 >> 2];
w = +g[n + (o * 36 | 0) + 12 >> 2];
C = +(l > E ? l : E);
E = +(m > w ? m : w);
q = n + (h * 36 | 0) + 8 | 0;
g[q >> 2] = C;
g[q + 4 >> 2] = E;
q = c[f >> 2] | 0;
c[q + (h * 36 | 0) + 32 >> 2] = (c[q + (o * 36 | 0) + 32 >> 2] | 0) + 1;
if ((e | 0) == -1) {
c[q + (h * 36 | 0) + 24 >> 2] = o;
c[q + (h * 36 | 0) + 28 >> 2] = b;
c[q + (o * 36 | 0) + 20 >> 2] = h;
n = q + (b * 36 | 0) + 20 | 0;
c[n >> 2] = h;
c[a >> 2] = h;
G = c[n >> 2] | 0
} else {
n = q + (e * 36 | 0) + 24 | 0;
if ((c[n >> 2] | 0) == (o | 0))
c[n >> 2] = h;
else
c[q + (e * 36 | 0) + 28 >> 2] = h;
c[q + (h * 36 | 0) + 24 >> 2] = o;
c[q + (h * 36 | 0) + 28 >> 2] = b;
c[q + (o * 36 | 0) + 20 >> 2] = h;
c[q + (b * 36 | 0) + 20 >> 2] = h;
G = h
}
if ((G | 0) == -1) {
i = d;
return
} else
H = G;
do {
G = bf(a, H) | 0;
h = c[f >> 2] | 0;
b = c[h + (G * 36 | 0) + 24 >> 2] | 0;
q = c[h + (G * 36 | 0) + 28 >> 2] | 0;
o = c[h + (b * 36 | 0) + 32 >> 2] | 0;
e = c[h + (q * 36 | 0) + 32 >> 2] | 0;
c[h + (G * 36 | 0) + 32 >> 2] = ((o | 0) > (e | 0) ? o : e) + 1;
E = +g[h + (b * 36 | 0) >> 2];
C = +g[h + (q * 36 | 0) >> 2];
w = +g[h + (b * 36 | 0) + 4 >> 2];
m = +g[h + (q * 36 | 0) + 4 >> 2];
l = +(E < C ? E : C);
C = +(w < m ? w : m);
e = h + (G * 36 | 0) | 0;
g[e >> 2] = l;
g[e + 4 >> 2] = C;
C = +g[h + (b * 36 | 0) + 8 >> 2];
l = +g[h + (q * 36 | 0) + 8 >> 2];
m = +g[h + (b * 36 | 0) + 12 >> 2];
w = +g[h + (q * 36 | 0) + 12 >> 2];
E = +(C > l ? C : l);
l = +(m > w ? m : w);
q = h + (G * 36 | 0) + 8 |
0;
g[q >> 2] = E;
g[q + 4 >> 2] = l;
H = c[(c[f >> 2] | 0) + (G * 36 | 0) + 20 >> 2] | 0
} while (!((H | 0) == -1));
i = d;
return
}
function _e(a, b) {
a = a | 0;
b = b | 0;
var d = 0,
e = 0,
f = 0;
d = i;
$e(a, b);
e = a + 16 | 0;
f = c[a + 4 >> 2] | 0;
c[f + (b * 36 | 0) + 20 >> 2] = c[e >> 2];
c[f + (b * 36 | 0) + 32 >> 2] = -1;
c[e >> 2] = b;
b = a + 8 | 0;
c[b >> 2] = (c[b >> 2] | 0) + -1;
i = d;
return
}
function $e(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;
d = i;
if ((c[a >> 2] | 0) == (b | 0)) {
c[a >> 2] = -1;
i = d;
return
}
e = a + 4 | 0;
f = c[e >> 2] | 0;
h = c[f + (b * 36 | 0) + 20 >> 2] | 0;
j = f + (h * 36 | 0) + 20 | 0;
k = c[j >> 2] | 0;
l = c[f + (h * 36 | 0) + 24 >> 2] |
0;
if ((l | 0) == (b | 0))
m = c[f + (h * 36 | 0) + 28 >> 2] | 0;
else
m = l;
if ((k | 0) == -1) {
c[a >> 2] = m;
c[f + (m * 36 | 0) + 20 >> 2] = -1;
l = a + 16 | 0;
c[j >> 2] = c[l >> 2];
c[f + (h * 36 | 0) + 32 >> 2] = -1;
c[l >> 2] = h;
l = a + 8 | 0;
c[l >> 2] = (c[l >> 2] | 0) + -1;
i = d;
return
}
l = f + (k * 36 | 0) + 24 | 0;
if ((c[l >> 2] | 0) == (h | 0))
c[l >> 2] = m;
else
c[f + (k * 36 | 0) + 28 >> 2] = m;
c[f + (m * 36 | 0) + 20 >> 2] = k;
m = a + 16 | 0;
c[j >> 2] = c[m >> 2];
c[f + (h * 36 | 0) + 32 >> 2] = -1;
c[m >> 2] = h;
h = a + 8 | 0;
c[h >> 2] = (c[h >> 2] | 0) + -1;
h = k;
do {
k = bf(a, h) | 0;
m = c[e >> 2] | 0;
f = c[m + (k * 36 | 0) + 24 >> 2] | 0;
j = c[m + (k * 36 | 0) + 28 >> 2] | 0;
n = +g[m + (f * 36 | 0) >> 2];
o = +g[m + (j * 36 | 0) >>
2];
p = +g[m + (f * 36 | 0) + 4 >> 2];
q = +g[m + (j * 36 | 0) + 4 >> 2];
r = +(n < o ? n : o);
o = +(p < q ? p : q);
l = m + (k * 36 | 0) | 0;
g[l >> 2] = r;
g[l + 4 >> 2] = o;
o = +g[m + (f * 36 | 0) + 8 >> 2];
r = +g[m + (j * 36 | 0) + 8 >> 2];
q = +g[m + (f * 36 | 0) + 12 >> 2];
p = +g[m + (j * 36 | 0) + 12 >> 2];
n = +(o > r ? o : r);
r = +(q > p ? q : p);
l = m + (k * 36 | 0) + 8 | 0;
g[l >> 2] = n;
g[l + 4 >> 2] = r;
l = c[e >> 2] | 0;
m = c[l + (f * 36 | 0) + 32 >> 2] | 0;
f = c[l + (j * 36 | 0) + 32 >> 2] | 0;
c[l + (k * 36 | 0) + 32 >> 2] = ((m | 0) > (f | 0) ? m : f) + 1;
h = c[l + (k * 36 | 0) + 20 >> 2] | 0
} while (!((h | 0) == -1));
i = d;
return
}
function af(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;
f = i;
h = a + 4 | 0;
j = c[h >> 2] | 0;
if (((+g[j + (b * 36 | 0) >> 2] <= +g[d >> 2] ? +g[j + (b * 36 | 0) + 4 >> 2] <= +g[d + 4 >> 2] : 0) ? +g[d + 8 >> 2] <= +g[j + (b * 36 | 0) + 8 >> 2] : 0) ? +g[d + 12 >> 2] <= +g[j + (b * 36 | 0) + 12 >> 2] : 0) {
k = 0;
i = f;
return k | 0
}
$e(a, b);
j = d;
l = +g[j >> 2];
m = +g[j + 4 >> 2];
j = d + 8 | 0;
n = +g[j >> 2];
o = l + -.10000000149011612;
l = m + -.10000000149011612;
m = n + .10000000149011612;
n = +g[j + 4 >> 2] + .10000000149011612;
p = +g[e >> 2] * 2;
q = +g[e + 4 >> 2] * 2;
if (p < 0) {
r = o + p;
s = m
} else {
r = o;
s = p + m
}
if (q < 0) {
t = l + q;
u = n
} else {
t = l;
u = q + n
}
e = c[h >> 2] | 0;
n = +r;
r = +t;
h = e + (b * 36 | 0) | 0;
g[h >>
2] = n;
g[h + 4 >> 2] = r;
r = +s;
s = +u;
h = e + (b * 36 | 0) + 8 | 0;
g[h >> 2] = r;
g[h + 4 >> 2] = s;
Ze(a, b);
k = 1;
i = f;
return k | 0
}
function bf(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;
d = i;
e = c[a + 4 >> 2] | 0;
f = e + (b * 36 | 0) | 0;
h = e + (b * 36 | 0) + 24 | 0;
j = c[h >> 2] | 0;
if ((j | 0) == -1) {
k = b;
i = d;
return k | 0
}
l = e + (b * 36 | 0) + 32 | 0;
if ((c[l >> 2] | 0) < 2) {
k = b;
i = d;
return k | 0
}
m = e + (b * 36 | 0) + 28 | 0;
n = c[m >> 2] | 0;
o = e + (j * 36 | 0) | 0;
p = e + (n * 36 | 0) | 0;
q = e + (n * 36 | 0) + 32 | 0;
r = e + (j * 36 | 0) + 32 | 0;
s = (c[q >> 2] | 0) - (c[r >> 2] | 0) | 0;
if ((s | 0) > 1) {
t = e + (n * 36 | 0) + 24 | 0;
u = c[t >> 2] | 0;
v = e + (n * 36 | 0) + 28 | 0;
w = c[v >> 2] | 0;
x = e + (u * 36 | 0) | 0;
y = e + (w * 36 | 0) | 0;
c[t >> 2] = b;
t = e + (b * 36 | 0) + 20 | 0;
z = e + (n * 36 | 0) + 20 | 0;
c[z >> 2] = c[t >> 2];
c[t >> 2] = n;
t = c[z >> 2] | 0;
do if (!((t | 0) == -1)) {
z = e + (t * 36 | 0) + 24 | 0;
if ((c[z >> 2] | 0) == (b | 0)) {
c[z >> 2] = n;
break
} else {
c[e + (t * 36 | 0) + 28 >> 2] = n;
break
}
} else
c[a >> 2] = n;
while (0);
t = e + (u * 36 | 0) + 32 | 0;
z = e + (w * 36 | 0) + 32 | 0;
if ((c[t >> 2] | 0) > (c[z >> 2] | 0)) {
c[v >> 2] = u;
c[m >> 2] = w;
c[e + (w * 36 | 0) + 20 >> 2] = b;
A = +g[o >> 2];
B = +g[y >> 2];
C = A < B ? A : B;
B = +g[e + (j * 36 | 0) +
4 >> 2];
A = +g[e + (w * 36 | 0) + 4 >> 2];
D = +C;
E = +(B < A ? B : A);
F = f;
g[F >> 2] = D;
g[F + 4 >> 2] = E;
E = +g[e + (j * 36 | 0) + 8 >> 2];
D = +g[e + (w * 36 | 0) + 8 >> 2];
A = +g[e + (j * 36 | 0) + 12 >> 2];
B = +g[e + (w * 36 | 0) + 12 >> 2];
G = +(E > D ? E : D);
D = +(A > B ? A : B);
F = e + (b * 36 | 0) + 8 | 0;
g[F >> 2] = G;
g[F + 4 >> 2] = D;
D = +g[x >> 2];
G = +g[e + (b * 36 | 0) + 4 >> 2];
B = +g[e + (u * 36 | 0) + 4 >> 2];
A = +(C < D ? C : D);
D = +(G < B ? G : B);
F = p;
g[F >> 2] = A;
g[F + 4 >> 2] = D;
D = +g[e + (b * 36 | 0) + 8 >> 2];
A = +g[e + (u * 36 | 0) + 8 >> 2];
B = +g[e + (b * 36 | 0) + 12 >> 2];
G = +g[e + (u * 36 | 0) + 12 >> 2];
C = +(D > A ? D : A);
A = +(B > G ? B : G);
F = e + (n * 36 | 0) + 8 | 0;
g[F >> 2] = C;
g[F + 4 >> 2] = A;
F = c[r >> 2] | 0;
H = c[z >> 2] | 0;
I = ((F | 0) > (H | 0) ? F : H) + 1 | 0;
c[l >> 2] = I;
H = c[t >> 2] | 0;
J = (I | 0) > (H | 0) ? I : H
} else {
c[v >> 2] = w;
c[m >> 2] = u;
c[e + (u * 36 | 0) + 20 >> 2] = b;
A = +g[o >> 2];
C = +g[x >> 2];
G = A < C ? A : C;
C = +g[e + (j * 36 | 0) + 4 >> 2];
A = +g[e + (u * 36 | 0) + 4 >> 2];
B = +G;
D = +(C < A ? C : A);
x = f;
g[x >> 2] = B;
g[x + 4 >> 2] = D;
D = +g[e + (j * 36 | 0) + 8 >> 2];
B = +g[e + (u * 36 | 0) + 8 >> 2];
A = +g[e + (j * 36 | 0) + 12 >> 2];
C = +g[e + (u * 36 | 0) + 12 >> 2];
E = +(D > B ? D : B);
B = +(A > C ? A : C);
u = e + (b * 36 | 0) + 8 | 0;
g[u >> 2] = E;
g[u + 4 >> 2] = B;
B = +g[y >> 2];
E = +g[e + (b * 36 | 0) + 4 >> 2];
C = +g[e + (w * 36 | 0) + 4 >> 2];
A = +(G < B ? G : B);
B = +(E < C ? E : C);
y = p;
g[y >> 2] = A;
g[y + 4 >> 2] =
B;
B = +g[e + (b * 36 | 0) + 8 >> 2];
A = +g[e + (w * 36 | 0) + 8 >> 2];
C = +g[e + (b * 36 | 0) + 12 >> 2];
E = +g[e + (w * 36 | 0) + 12 >> 2];
G = +(B > A ? B : A);
A = +(C > E ? C : E);
w = e + (n * 36 | 0) + 8 | 0;
g[w >> 2] = G;
g[w + 4 >> 2] = A;
w = c[r >> 2] | 0;
y = c[t >> 2] | 0;
t = ((w | 0) > (y | 0) ? w : y) + 1 | 0;
c[l >> 2] = t;
y = c[z >> 2] | 0;
J = (t | 0) > (y | 0) ? t : y
}
c[q >> 2] = J + 1;
k = n;
i = d;
return k | 0
}
if (!((s | 0) < -1)) {
k = b;
i = d;
return k | 0
}
s = e + (j * 36 | 0) + 24 | 0;
J = c[s >> 2] | 0;
y = e + (j * 36 | 0) + 28 | 0;
t = c[y >> 2] | 0;
z = e + (J * 36 | 0) | 0;
w = e + (t * 36 | 0) | 0;
c[s >> 2] = b;
s = e + (b * 36 | 0) + 20 | 0;
u = e + (j * 36 | 0) + 20 | 0;
c[u >> 2] = c[s >> 2];
c[s >> 2] = j;
s = c[u >> 2] | 0;
do if (!((s | 0) == -1)) {
u =
e + (s * 36 | 0) + 24 | 0;
if ((c[u >> 2] | 0) == (b | 0)) {
c[u >> 2] = j;
break
} else {
c[e + (s * 36 | 0) + 28 >> 2] = j;
break
}
} else
c[a >> 2] = j;
while (0);
a = e + (J * 36 | 0) + 32 | 0;
s = e + (t * 36 | 0) + 32 | 0;
if ((c[a >> 2] | 0) > (c[s >> 2] | 0)) {
c[y >> 2] = J;
c[h >> 2] = t;
c[e + (t * 36 | 0) + 20 >> 2] = b;
A = +g[p >> 2];
G = +g[w >> 2];
E = A < G ? A : G;
G = +g[e + (n * 36 | 0) + 4 >> 2];
A = +g[e + (t * 36 | 0) + 4 >> 2];
C = +E;
B = +(G < A ? G : A);
u = f;
g[u >> 2] = C;
g[u + 4 >> 2] = B;
B = +g[e + (n * 36 | 0) + 8 >> 2];
C = +g[e + (t * 36 | 0) + 8 >> 2];
A = +g[e + (n * 36 | 0) + 12 >> 2];
G = +g[e + (t * 36 | 0) + 12 >> 2];
D = +(B > C ? B : C);
C = +(A > G ? A : G);
u = e + (b * 36 | 0) + 8 | 0;
g[u >> 2] = D;
g[u + 4 >> 2] = C;
C = +g[z >>
2];
D = +g[e + (b * 36 | 0) + 4 >> 2];
G = +g[e + (J * 36 | 0) + 4 >> 2];
A = +(E < C ? E : C);
C = +(D < G ? D : G);
u = o;
g[u >> 2] = A;
g[u + 4 >> 2] = C;
C = +g[e + (b * 36 | 0) + 8 >> 2];
A = +g[e + (J * 36 | 0) + 8 >> 2];
G = +g[e + (b * 36 | 0) + 12 >> 2];
D = +g[e + (J * 36 | 0) + 12 >> 2];
E = +(C > A ? C : A);
A = +(G > D ? G : D);
u = e + (j * 36 | 0) + 8 | 0;
g[u >> 2] = E;
g[u + 4 >> 2] = A;
u = c[q >> 2] | 0;
x = c[s >> 2] | 0;
m = ((u | 0) > (x | 0) ? u : x) + 1 | 0;
c[l >> 2] = m;
x = c[a >> 2] | 0;
K = (m | 0) > (x | 0) ? m : x
} else {
c[y >> 2] = t;
c[h >> 2] = J;
c[e + (J * 36 | 0) + 20 >> 2] = b;
A = +g[p >> 2];
E = +g[z >> 2];
D = A < E ? A : E;
E = +g[e + (n * 36 | 0) + 4 >> 2];
A = +g[e + (J * 36 | 0) + 4 >> 2];
G = +D;
C = +(E < A ? E : A);
z = f;
g[z >> 2] = G;
g[z +
4 >> 2] = C;
C = +g[e + (n * 36 | 0) + 8 >> 2];
G = +g[e + (J * 36 | 0) + 8 >> 2];
A = +g[e + (n * 36 | 0) + 12 >> 2];
E = +g[e + (J * 36 | 0) + 12 >> 2];
B = +(C > G ? C : G);
G = +(A > E ? A : E);
J = e + (b * 36 | 0) + 8 | 0;
g[J >> 2] = B;
g[J + 4 >> 2] = G;
G = +g[w >> 2];
B = +g[e + (b * 36 | 0) + 4 >> 2];
E = +g[e + (t * 36 | 0) + 4 >> 2];
A = +(D < G ? D : G);
G = +(B < E ? B : E);
w = o;
g[w >> 2] = A;
g[w + 4 >> 2] = G;
G = +g[e + (b * 36 | 0) + 8 >> 2];
A = +g[e + (t * 36 | 0) + 8 >> 2];
E = +g[e + (b * 36 | 0) + 12 >> 2];
B = +g[e + (t * 36 | 0) + 12 >> 2];
D = +(G > A ? G : A);
A = +(E > B ? E : B);
t = e + (j * 36 | 0) + 8 | 0;
g[t >> 2] = D;
g[t + 4 >> 2] = A;
t = c[q >> 2] | 0;
q = c[a >> 2] | 0;
a = ((t | 0) > (q | 0) ? t : q) + 1 | 0;
c[l >> 2] = a;
l = c[s >> 2] | 0;
K = (a | 0) >
(l | 0) ? a : l
}
c[r >> 2] = K + 1;
k = j;
i = d;
return k | 0
}
function cf(b, d, e, f, h) {
b = b | 0;
d = d | 0;
e = e | 0;
f = f | 0;
h = h | 0;
var j = 0,
l = 0,
m = 0,
n = 0,
o = 0,
p = 0,
q = 0,
r = 0,
s = 0,
t = 0,
u = 0,
v = 0,
w = 0,
x = 0,
y = 0,
z = 0,
A = 0,
B = 0,
C = 0,
D = 0,
E = 0,
F = 0,
G = 0,
H = 0,
I = 0,
J = 0,
K = 0;
j = i;
l = b + 60 | 0;
c[l >> 2] = 0;
m = f + 12 | 0;
n = +g[h + 12 >> 2];
o = +g[m >> 2];
p = +g[h + 8 >> 2];
q = +g[f + 16 >> 2];
r = +g[h >> 2] + (n * o - p * q) - +g[e >> 2];
s = o * p + n * q + +g[h + 4 >> 2] - +g[e + 4 >> 2];
q = +g[e + 12 >> 2];
n = +g[e + 8 >> 2];
p = r * q + s * n;
o = q * s - r * n;
e = d + 12 | 0;
h = c[e >> 2] | 0;
t = c[e + 4 >> 2] | 0;
n = (c[k >> 2] = h, +g[k >> 2]);
r = (c[k >> 2] = t, +g[k >> 2]);
e = d + 20 | 0;
u = c[e >> 2] | 0;
v = c[e + 4 >> 2] | 0;
s = (c[k >> 2] = u, +g[k >> 2]);
q = (c[k >> 2] = v, +g[k >> 2]);
w = s - n;
x = q - r;
y = w * (s - p) + x * (q - o);
z = p - n;
A = o - r;
B = z * w + A * x;
C = +g[d + 8 >> 2] + +g[f + 8 >> 2];
if (B <= 0) {
if (z * z + A * A > C * C) {
i = j;
return
}
if ((a[d + 44 >> 0] | 0) != 0 ? (f = d + 28 | 0, D = +g[f >> 2], (n - p) * (n - D) + (r - o) * (r - +g[f + 4 >> 2]) > 0) : 0) {
i = j;
return
}
c[l >> 2] = 1;
c[b + 56 >> 2] = 0;
g[b + 40 >> 2] = 0;
g[b + 44 >> 2] = 0;
f = b + 48 | 0;
c[f >> 2] = h;
c[f + 4 >> 2] = t;
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 = m;
e = c[f + 4 >> 2] | 0;
E = b;
c[E >> 2] = c[f >> 2];
c[E + 4 >> 2] = e;
i = j;
return
}
if (y <= 0) {
D = p - s;
F = o - q;
if (D * D + F *
F > C * C) {
i = j;
return
}
if ((a[d + 45 >> 0] | 0) != 0 ? (e = d + 36 | 0, G = +g[e >> 2], D * (G - s) + F * (+g[e + 4 >> 2] - q) > 0) : 0) {
i = j;
return
}
c[l >> 2] = 1;
c[b + 56 >> 2] = 0;
g[b + 40 >> 2] = 0;
g[b + 44 >> 2] = 0;
e = b + 48 | 0;
c[e >> 2] = u;
c[e + 4 >> 2] = v;
v = b + 16 | 0;
c[v >> 2] = 0;
a[v >> 0] = 1;
a[v + 1 >> 0] = 0;
a[v + 2 >> 0] = 0;
a[v + 3 >> 0] = 0;
v = m;
e = c[v + 4 >> 2] | 0;
u = b;
c[u >> 2] = c[v >> 2];
c[u + 4 >> 2] = e;
i = j;
return
}
F = 1 / (w * w + x * x);
G = p - (n * y + s * B) * F;
s = o - (r * y + q * B) * F;
if (G * G + s * s > C * C) {
i = j;
return
}
C = -x;
if (w * A + z * C < 0) {
H = x;
I = -w
} else {
H = C;
I = w
}
w = +Q(+(I * I + H * H));
if (w < 1.1920928955078125E-7) {
J = H;
K = I
} else {
C = 1 / w;
J = H * C;
K = I * C
}
c[l >>
2] = 1;
c[b + 56 >> 2] = 1;
C = +J;
J = +K;
l = b + 40 | 0;
g[l >> 2] = C;
g[l + 4 >> 2] = J;
l = b + 48 | 0;
c[l >> 2] = h;
c[l + 4 >> 2] = t;
t = b + 16 | 0;
c[t >> 2] = 0;
a[t >> 0] = 0;
a[t + 1 >> 0] = 0;
a[t + 2 >> 0] = 1;
a[t + 3 >> 0] = 0;
t = m;
m = c[t + 4 >> 2] | 0;
l = b;
c[l >> 2] = c[t >> 2];
c[l + 4 >> 2] = m;
i = j;
return
}
function df(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,
O = 0,
P = 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;
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 = b + 132 | 0;
s = +g[f + 12 >> 2];
t = +g[j + 8 >> 2];
u = +g[f + 8 >> 2];
v = +g[j + 12 >> 2];
w = s * t - u * v;
x = t * u + s * v;
v = +w;
t = +x;
y = +g[j >> 2] - +g[f >> 2];
z = +g[j + 4 >> 2] - +g[f + 4 >> 2];
A = s * y + u * z;
B = s * z - u * y;
y = +A;
u = +B;
f = r;
g[f >> 2] = y;
g[f + 4 >> 2] = u;
f = b + 140 | 0;
g[f >> 2] = v;
g[f + 4 >> 2] = t;
f = b + 144 | 0;
t = +g[h + 12 >> 2];
j = b + 140 | 0;
v = +g[h + 16 >> 2];
u = A + (x * t - w * v);
C = b + 136 | 0;
A = t * w + x * v + B;
B = +u;
v = +A;
D = b + 148 | 0;
g[D >> 2] = B;
g[D +
4 >> 2] = v;
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;
v = (c[k >> 2] = K, +g[k >> 2]);
B = (c[k >> 2] = H, +g[k >> 2]);
x = v - B;
w = (c[k >> 2] = L, +g[k >> 2]);
L = b + 168 | 0;
t = (c[k >> 2] = I, +g[k >> 2]);
y = w - t;
z = +Q(+(x * x + y * y));
s = (c[k >> 2] = E, +g[k >> 2]);
P = (c[k >> 2] = F, +g[k >> 2]);
R = (c[k >> 2] = M, +g[k >> 2]);
S = (c[k >> 2] = N, +g[k >> 2]);
if (z < 1.1920928955078125E-7) {
T = x;
U = y
} else {
V = 1 / z;
T = x * V;
U = y * V
}
N = b + 196 | 0;
V = -T;
g[N >> 2] = U;
M = b + 200 | 0;
g[M >> 2] = V;
y = (u - B) * U + (A - t) * V;
if (J) {
V = B - s;
B = t - P;
t = +Q(+(V * V + B * B));
if (t < 1.1920928955078125E-7) {
W = V;
X = B
} else {
x = 1 / t;
W = V * x;
X = B * x
}
x = -W;
g[b + 188 >> 2] = X;
g[b + 192 >> 2] = x;
Y = U * W - T * X >= 0;
Z = (u - s) * X + (A - P) * x
} else {
Y = 0;
Z = 0
}
a:
do if (!O) {
if (!J) {
F = y >= 0;
a[b + 248 >> 0] = F & 1;
E = b + 212 | 0;
if (F) {
_ = E;
$ = 64;
break
} else {
aa = E;
$ = 65;
break
}
}
E = Z >= 0;
if (Y) {
if (!E) {
F = y >= 0;
a[b + 248 >> 0] = F & 1;
I = b + 212 | 0;
if (F)
ba = I;
else {
x =
+-U;
P = +T;
F = I;
g[F >> 2] = x;
g[F + 4 >> 2] = P;
F = N;
I = c[F >> 2] | 0;
H = c[F + 4 >> 2] | 0;
F = b + 228 | 0;
c[F >> 2] = I;
c[F + 4 >> 2] = H;
H = b + 236 | 0;
g[H >> 2] = -(c[k >> 2] = I, +g[k >> 2]);
g[H + 4 >> 2] = P;
break
}
} else {
a[b + 248 >> 0] = 1;
ba = b + 212 | 0
}
H = N;
I = c[H + 4 >> 2] | 0;
F = ba;
c[F >> 2] = c[H >> 2];
c[F + 4 >> 2] = I;
I = b + 188 | 0;
F = c[I + 4 >> 2] | 0;
H = b + 228 | 0;
c[H >> 2] = c[I >> 2];
c[H + 4 >> 2] = F;
P = +-+g[N >> 2];
x = +-+g[M >> 2];
F = b + 236 | 0;
g[F >> 2] = P;
g[F + 4 >> 2] = x;
break
} else {
if (E) {
E = y >= 0;
a[b + 248 >> 0] = E & 1;
F = b + 212 | 0;
if (E) {
E = N;
H = c[E >> 2] | 0;
I = c[E + 4 >> 2] | 0;
E = F;
c[E >> 2] = H;
c[E + 4 >> 2] = I;
E = b + 228 | 0;
c[E >> 2] = H;
c[E + 4 >> 2] = I;
x = +-(c[k >> 2] = H, +g[k >> 2]);
P = +T;
H = b + 236 | 0;
g[H >> 2] = x;
g[H + 4 >> 2] = P;
break
} else
ca = F
} else {
a[b + 248 >> 0] = 0;
ca = b + 212 | 0
}
P = +-U;
x = +T;
F = ca;
g[F >> 2] = P;
g[F + 4 >> 2] = x;
F = N;
H = c[F + 4 >> 2] | 0;
I = b + 228 | 0;
c[I >> 2] = c[F >> 2];
c[I + 4 >> 2] = H;
x = +-+g[b + 188 >> 2];
P = +-+g[b + 192 >> 2];
H = b + 236 | 0;
g[H >> 2] = x;
g[H + 4 >> 2] = P;
break
}
} else {
P = R - v;
x = S - w;
X = +Q(+(P * P + x * x));
if (X < 1.1920928955078125E-7) {
da = P;
ea = x
} else {
s = 1 / X;
da = P * s;
ea = x * s
}
s = -da;
H = b + 204 | 0;
g[H >> 2] = ea;
I = b + 208 | 0;
g[I >> 2] = s;
F = T * ea - U * da > 0;
x = (u - v) * ea + (A - w) * s;
if (!J) {
E = y >= 0;
if (!O) {
a[b + 248 >> 0] = E & 1;
K = b + 212 | 0;
if (E) {
_ =
K;
$ = 64;
break
} else {
aa = K;
$ = 65;
break
}
}
if (F) {
if (!E) {
K = x >= 0;
a[b + 248 >> 0] = K & 1;
e = b + 212 | 0;
if (K)
fa = e;
else {
s = +-U;
P = +T;
K = e;
g[K >> 2] = s;
g[K + 4 >> 2] = P;
K = b + 228 | 0;
g[K >> 2] = s;
g[K + 4 >> 2] = P;
K = N;
e = c[K + 4 >> 2] | 0;
ga = b + 236 | 0;
c[ga >> 2] = c[K >> 2];
c[ga + 4 >> 2] = e;
break
}
} else {
a[b + 248 >> 0] = 1;
fa = b + 212 | 0
}
e = N;
ga = c[e + 4 >> 2] | 0;
K = fa;
c[K >> 2] = c[e >> 2];
c[K + 4 >> 2] = ga;
P = +-+g[N >> 2];
s = +-+g[M >> 2];
ga = b + 228 | 0;
g[ga >> 2] = P;
g[ga + 4 >> 2] = s;
ga = b + 204 | 0;
K = c[ga + 4 >> 2] | 0;
e = b + 236 | 0;
c[e >> 2] = c[ga >> 2];
c[e + 4 >> 2] = K;
break
} else {
if (E) {
E = x >= 0;
a[b + 248 >> 0] = E & 1;
K = b + 212 | 0;
if (E) {
E = N;
e =
c[E >> 2] | 0;
ga = c[E + 4 >> 2] | 0;
E = K;
c[E >> 2] = e;
c[E + 4 >> 2] = ga;
s = +-(c[k >> 2] = e, +g[k >> 2]);
P = +T;
E = b + 228 | 0;
g[E >> 2] = s;
g[E + 4 >> 2] = P;
E = b + 236 | 0;
c[E >> 2] = e;
c[E + 4 >> 2] = ga;
break
} else
ha = K
} else {
a[b + 248 >> 0] = 0;
ha = b + 212 | 0
}
P = +-U;
s = +T;
K = ha;
g[K >> 2] = P;
g[K + 4 >> 2] = s;
s = +-+g[b + 204 >> 2];
P = +-+g[b + 208 >> 2];
K = b + 228 | 0;
g[K >> 2] = s;
g[K + 4 >> 2] = P;
K = N;
ga = c[K + 4 >> 2] | 0;
E = b + 236 | 0;
c[E >> 2] = c[K >> 2];
c[E + 4 >> 2] = ga;
break
}
}
if (Y & F) {
if (!(Z >= 0) & !(y >= 0)) {
ga = x >= 0;
a[b + 248 >> 0] = ga & 1;
E = b + 212 | 0;
if (ga)
ia = E;
else {
P = +-U;
s = +T;
ga = E;
g[ga >> 2] = P;
g[ga + 4 >> 2] = s;
ga = b + 228 | 0;
g[ga >> 2] =
P;
g[ga + 4 >> 2] = s;
ga = b + 236 | 0;
g[ga >> 2] = P;
g[ga + 4 >> 2] = s;
break
}
} else {
a[b + 248 >> 0] = 1;
ia = b + 212 | 0
}
ga = N;
E = c[ga + 4 >> 2] | 0;
K = ia;
c[K >> 2] = c[ga >> 2];
c[K + 4 >> 2] = E;
E = b + 188 | 0;
K = c[E + 4 >> 2] | 0;
ga = b + 228 | 0;
c[ga >> 2] = c[E >> 2];
c[ga + 4 >> 2] = K;
K = b + 204 | 0;
ga = c[K + 4 >> 2] | 0;
E = b + 236 | 0;
c[E >> 2] = c[K >> 2];
c[E + 4 >> 2] = ga;
break
}
if (Y) {
do if (!(Z >= 0)) {
if (y >= 0) {
ga = x >= 0;
a[b + 248 >> 0] = ga & 1;
E = b + 212 | 0;
if (ga) {
ja = E;
break
} else
ka = E
} else {
a[b + 248 >> 0] = 0;
ka = b + 212 | 0
}
s = +-U;
P = +T;
E = ka;
g[E >> 2] = s;
g[E + 4 >> 2] = P;
P = +-+g[H >> 2];
s = +-+g[I >> 2];
E = b + 228 | 0;
g[E >> 2] = P;
g[E + 4 >> 2] = s;
s = +-+g[N >>
2];
P = +-+g[M >> 2];
E = b + 236 | 0;
g[E >> 2] = s;
g[E + 4 >> 2] = P;
break a
} else {
a[b + 248 >> 0] = 1;
ja = b + 212 | 0
}
while (0);
E = N;
ga = c[E + 4 >> 2] | 0;
K = ja;
c[K >> 2] = c[E >> 2];
c[K + 4 >> 2] = ga;
ga = b + 188 | 0;
K = c[ga + 4 >> 2] | 0;
E = b + 228 | 0;
c[E >> 2] = c[ga >> 2];
c[E + 4 >> 2] = K;
K = N;
E = c[K + 4 >> 2] | 0;
ga = b + 236 | 0;
c[ga >> 2] = c[K >> 2];
c[ga + 4 >> 2] = E;
break
}
if (!F) {
if (!(!(Z >= 0) | !(y >= 0))) {
E = x >= 0;
a[b + 248 >> 0] = E & 1;
ga = b + 212 | 0;
if (E) {
E = N;
K = c[E >> 2] | 0;
e = c[E + 4 >> 2] | 0;
E = ga;
c[E >> 2] = K;
c[E + 4 >> 2] = e;
E = b + 228 | 0;
c[E >> 2] = K;
c[E + 4 >> 2] = e;
E = b + 236 | 0;
c[E >> 2] = K;
c[E + 4 >> 2] = e;
break
} else
la = ga
} else {
a[b + 248 >> 0] =
0;
la = b + 212 | 0
}
P = +-U;
s = +T;
ga = la;
g[ga >> 2] = P;
g[ga + 4 >> 2] = s;
s = +-+g[H >> 2];
P = +-+g[I >> 2];
ga = b + 228 | 0;
g[ga >> 2] = s;
g[ga + 4 >> 2] = P;
P = +-+g[b + 188 >> 2];
s = +-+g[b + 192 >> 2];
ga = b + 236 | 0;
g[ga >> 2] = P;
g[ga + 4 >> 2] = s;
break
}
do if (!(x >= 0)) {
if (Z >= 0) {
ga = y >= 0;
a[b + 248 >> 0] = ga & 1;
e = b + 212 | 0;
if (ga) {
ma = e;
break
} else
na = e
} else {
a[b + 248 >> 0] = 0;
na = b + 212 | 0
}
s = +-U;
P = +T;
e = na;
g[e >> 2] = s;
g[e + 4 >> 2] = P;
P = +-+g[N >> 2];
s = +-+g[M >> 2];
e = b + 228 | 0;
g[e >> 2] = P;
g[e + 4 >> 2] = s;
s = +-+g[b + 188 >> 2];
P = +-+g[b + 192 >> 2];
e = b + 236 | 0;
g[e >> 2] = s;
g[e + 4 >> 2] = P;
break a
} else {
a[b + 248 >> 0] = 1;
ma = b +
212 | 0
}
while (0);
I = N;
H = c[I + 4 >> 2] | 0;
F = ma;
c[F >> 2] = c[I >> 2];
c[F + 4 >> 2] = H;
H = N;
F = c[H + 4 >> 2] | 0;
I = b + 228 | 0;
c[I >> 2] = c[H >> 2];
c[I + 4 >> 2] = F;
F = b + 204 | 0;
I = c[F + 4 >> 2] | 0;
H = b + 236 | 0;
c[H >> 2] = c[F >> 2];
c[H + 4 >> 2] = I
}
while (0);
if (($ | 0) == 64) {
ma = N;
na = c[ma >> 2] | 0;
la = c[ma + 4 >> 2] | 0;
ma = _;
c[ma >> 2] = na;
c[ma + 4 >> 2] = la;
y = +-(c[k >> 2] = na, +g[k >> 2]);
Z = +T;
na = b + 228 | 0;
g[na >> 2] = y;
g[na + 4 >> 2] = Z;
na = b + 236 | 0;
g[na >> 2] = y;
g[na + 4 >> 2] = Z
} else if (($ | 0) == 65) {
Z = +-U;
U = +T;
na = aa;
g[na >> 2] = Z;
g[na + 4 >> 2] = U;
na = N;
aa = c[na >> 2] | 0;
la = c[na + 4 >> 2] | 0;
na = b + 228 | 0;
c[na >> 2] = aa;
c[na + 4 >> 2] =
la;
na = b + 236 | 0;
c[na >> 2] = aa;
c[na + 4 >> 2] = la
}
la = h + 148 | 0;
na = b + 128 | 0;
c[na >> 2] = c[la >> 2];
if ((c[la >> 2] | 0) > 0) {
aa = 0;
do {
U = +g[f >> 2];
Z = +g[h + (aa << 3) + 20 >> 2];
T = +g[j >> 2];
y = +g[h + (aa << 3) + 24 >> 2];
w = +(+g[r >> 2] + (U * Z - T * y));
A = +(Z * T + U * y + +g[C >> 2]);
ma = b + (aa << 3) | 0;
g[ma >> 2] = w;
g[ma + 4 >> 2] = A;
A = +g[f >> 2];
w = +g[h + (aa << 3) + 84 >> 2];
y = +g[j >> 2];
U = +g[h + (aa << 3) + 88 >> 2];
T = +(A * w - y * U);
Z = +(w * y + A * U);
ma = b + (aa << 3) + 64 | 0;
g[ma >> 2] = T;
g[ma + 4 >> 2] = Z;
aa = aa + 1 | 0
} while ((aa | 0) < (c[la >> 2] | 0))
}
la = b + 244 | 0;
g[la >> 2] = .019999999552965164;
aa = d + 60 | 0;
c[aa >> 2] = 0;
ma = b + 248 | 0;
_ = c[na >> 2] | 0;
if ((_ | 0) <= 0) {
i = l;
return
}
Z = +g[b + 164 >> 2];
T = +g[L >> 2];
U = +g[b + 212 >> 2];
A = +g[b + 216 >> 2];
y = 3.4028234663852886E38;
L = 0;
do {
w = U * (+g[b + (L << 3) >> 2] - Z) + A * (+g[b + (L << 3) + 4 >> 2] - T);
y = w < y ? w : y;
L = L + 1 | 0
} while ((L | 0) != (_ | 0));
if (y > .019999999552965164) {
i = l;
return
}
ef(m, b);
_ = c[m >> 2] | 0;
if ((_ | 0) != 0) {
T = +g[m + 8 >> 2];
if (T > +g[la >> 2]) {
i = l;
return
}
if (T > y * .9800000190734863 + .0010000000474974513) {
L = c[m + 4 >> 2] | 0;
m = d + 56 | 0;
if ((_ | 0) == 1) {
oa = n;
pa = m;
$ = 77
} else {
c[m >> 2] = 2;
m = D;
_ = c[m + 4 >> 2] | 0;
ja = n;
c[ja >> 2] = c[m >> 2];
c[ja + 4 >> 2] = _;
_ = n + 8 | 0;
a[_ >> 0] =
0;
ja = L & 255;
a[_ + 1 >> 0] = ja;
a[_ + 2 >> 0] = 0;
a[_ + 3 >> 0] = 1;
_ = G;
m = c[_ + 4 >> 2] | 0;
ka = n + 12 | 0;
c[ka >> 2] = c[_ >> 2];
c[ka + 4 >> 2] = m;
m = n + 20 | 0;
a[m >> 0] = 0;
a[m + 1 >> 0] = ja;
a[m + 2 >> 0] = 0;
a[m + 3 >> 0] = 1;
c[o >> 2] = L;
m = L + 1 | 0;
ja = (m | 0) < (c[na >> 2] | 0) ? m : 0;
c[o + 4 >> 2] = ja;
m = b + (L << 3) | 0;
ka = c[m >> 2] | 0;
_ = c[m + 4 >> 2] | 0;
m = o + 8 | 0;
c[m >> 2] = ka;
c[m + 4 >> 2] = _;
m = b + (ja << 3) | 0;
ja = c[m >> 2] | 0;
Y = c[m + 4 >> 2] | 0;
m = o + 16 | 0;
c[m >> 2] = ja;
c[m + 4 >> 2] = Y;
m = b + (L << 3) + 64 | 0;
ia = c[m >> 2] | 0;
ha = c[m + 4 >> 2] | 0;
m = o + 24 | 0;
c[m >> 2] = ia;
c[m + 4 >> 2] = ha;
qa = Y;
ra = ja;
sa = _;
ta = ka;
ua = ia;
va = ha;
wa = n;
xa = L;
ya = 0
}
} else
$ = 75
} else
$ =
75;
if (($ | 0) == 75) {
oa = n;
pa = d + 56 | 0;
$ = 77
}
do if (($ | 0) == 77) {
c[pa >> 2] = 1;
L = c[na >> 2] | 0;
if ((L | 0) > 1) {
y = +g[b + 216 >> 2];
T = +g[b + 212 >> 2];
ha = 0;
A = T * +g[b + 64 >> 2] + y * +g[b + 68 >> 2];
ia = 1;
while (1) {
Z = T * +g[b + (ia << 3) + 64 >> 2] + y * +g[b + (ia << 3) + 68 >> 2];
ka = Z < A;
_ = ka ? ia : ha;
ia = ia + 1 | 0;
if ((ia | 0) >= (L | 0)) {
za = _;
break
} else {
ha = _;
A = ka ? Z : A
}
}
} else
za = 0;
ha = za + 1 | 0;
ia = (ha | 0) < (L | 0) ? ha : 0;
ha = b + (za << 3) | 0;
ka = c[ha + 4 >> 2] | 0;
_ = n;
c[_ >> 2] = c[ha >> 2];
c[_ + 4 >> 2] = ka;
ka = n + 8 | 0;
a[ka >> 0] = 0;
a[ka + 1 >> 0] = za;
a[ka + 2 >> 0] = 1;
a[ka + 3 >> 0] = 0;
ka = b + (ia << 3) | 0;
_ = c[ka + 4 >> 2] | 0;
ha = n + 12 | 0;
c[ha >>
2] = c[ka >> 2];
c[ha + 4 >> 2] = _;
_ = n + 20 | 0;
a[_ >> 0] = 0;
a[_ + 1 >> 0] = ia;
a[_ + 2 >> 0] = 1;
a[_ + 3 >> 0] = 0;
if ((a[ma >> 0] | 0) == 0) {
c[o >> 2] = 1;
c[o + 4 >> 2] = 0;
_ = G;
ia = c[_ >> 2] | 0;
ha = c[_ + 4 >> 2] | 0;
_ = o + 8 | 0;
c[_ >> 2] = ia;
c[_ + 4 >> 2] = ha;
_ = D;
ka = c[_ >> 2] | 0;
ja = c[_ + 4 >> 2] | 0;
_ = o + 16 | 0;
c[_ >> 2] = ka;
c[_ + 4 >> 2] = ja;
_ = (g[k >> 2] = -+g[N >> 2], c[k >> 2] | 0);
Y = (g[k >> 2] = -+g[M >> 2], c[k >> 2] | 0);
m = o + 24 | 0;
c[m >> 2] = _;
c[m + 4 >> 2] = Y;
qa = ja;
ra = ka;
sa = ha;
ta = ia;
ua = _;
va = Y;
wa = oa;
xa = 1;
ya = 1;
break
} else {
c[o >> 2] = 0;
c[o + 4 >> 2] = 1;
Y = D;
_ = c[Y >> 2] | 0;
ia = c[Y + 4 >> 2] | 0;
Y = o + 8 | 0;
c[Y >> 2] = _;
c[Y + 4 >> 2] = ia;
Y = G;
ha = c[Y >>
2] | 0;
ka = c[Y + 4 >> 2] | 0;
Y = o + 16 | 0;
c[Y >> 2] = ha;
c[Y + 4 >> 2] = ka;
Y = N;
ja = c[Y >> 2] | 0;
m = c[Y + 4 >> 2] | 0;
Y = o + 24 | 0;
c[Y >> 2] = ja;
c[Y + 4 >> 2] = m;
qa = ka;
ra = ha;
sa = ia;
ta = _;
ua = ja;
va = m;
wa = oa;
xa = 0;
ya = 1;
break
}
}
while (0);
A = (c[k >> 2] = va, +g[k >> 2]);
y = (c[k >> 2] = ua, +g[k >> 2]);
T = (c[k >> 2] = ta, +g[k >> 2]);
Z = (c[k >> 2] = sa, +g[k >> 2]);
U = (c[k >> 2] = ra, +g[k >> 2]);
w = (c[k >> 2] = qa, +g[k >> 2]);
qa = o + 32 | 0;
ra = o + 24 | 0;
sa = o + 28 | 0;
ea = -y;
g[qa >> 2] = A;
g[o + 36 >> 2] = ea;
ta = o + 44 | 0;
y = -A;
va = ta;
g[va >> 2] = y;
c[va + 4 >> 2] = ua;
va = o + 8 | 0;
oa = o + 12 | 0;
v = A * T + Z * ea;
g[o + 40 >> 2] = v;
N = o + 52 | 0;
g[N >> 2] = U * y + (c[k >>
2] = ua, +g[k >> 2]) * w;
if ((kf(p, wa, qa, v, xa) | 0) < 2) {
i = l;
return
}
if ((kf(q, p, ta, +g[N >> 2], c[o + 4 >> 2] | 0) | 0) < 2) {
i = l;
return
}
N = d + 40 | 0;
if (ya) {
ya = ra;
ta = c[ya >> 2] | 0;
p = c[ya + 4 >> 2] | 0;
ya = N;
c[ya >> 2] = ta;
c[ya + 4 >> 2] = p;
p = va;
ya = c[p >> 2] | 0;
xa = c[p + 4 >> 2] | 0;
p = d + 48 | 0;
c[p >> 2] = ya;
c[p + 4 >> 2] = xa;
v = (c[k >> 2] = ya, +g[k >> 2]);
w = (c[k >> 2] = ta, +g[k >> 2]);
y = +g[oa >> 2];
U = +g[sa >> 2];
ea = +g[q >> 2];
Z = +g[q + 4 >> 2];
T = +g[la >> 2];
if (!((ea - v) * w + (Z - y) * U <= T)) {
Aa = T;
Ba = 0
} else {
T = ea - +g[r >> 2];
ea = Z - +g[C >> 2];
Z = +g[f >> 2];
A = +g[j >> 2];
u = +(T * Z + ea * A);
da = +(Z * ea - T * A);
ta = d;
g[ta >> 2] = u;
g[ta + 4 >> 2] = da;
c[d + 16 >> 2] = c[q + 8 >> 2];
Aa = +g[la >> 2];
Ba = 1
}
da = +g[q + 12 >> 2];
u = +g[q + 16 >> 2];
if (!((da - v) * w + (u - y) * U <= Aa))
Ca = Ba;
else {
Aa = da - +g[r >> 2];
da = u - +g[C >> 2];
u = +g[f >> 2];
U = +g[j >> 2];
y = +(Aa * u + da * U);
w = +(u * da - Aa * U);
j = d + (Ba * 20 | 0) | 0;
g[j >> 2] = y;
g[j + 4 >> 2] = w;
c[d + (Ba * 20 | 0) + 16 >> 2] = c[q + 20 >> 2];
Ca = Ba + 1 | 0
}
} else {
Ba = c[o >> 2] | 0;
o = h + (Ba << 3) + 84 | 0;
j = c[o + 4 >> 2] | 0;
f = N;
c[f >> 2] = c[o >> 2];
c[f + 4 >> 2] = j;
j = h + (Ba << 3) + 20 | 0;
Ba = c[j + 4 >> 2] | 0;
h = d + 48 | 0;
c[h >> 2] = c[j >> 2];
c[h + 4 >> 2] = Ba;
w = +g[va >> 2];
y = +g[ra >> 2];
U = +g[oa >> 2];
Aa = +g[sa >> 2];
da = +g[la >> 2];
if (!((+g[q >>
2] - w) * y + (+g[q + 4 >> 2] - U) * Aa <= da)) {
Da = da;
Ea = 0
} else {
sa = q;
oa = c[sa + 4 >> 2] | 0;
ra = d;
c[ra >> 2] = c[sa >> 2];
c[ra + 4 >> 2] = oa;
oa = q + 8 | 0;
ra = d + 16 | 0;
a[ra + 2 >> 0] = a[oa + 3 >> 0] | 0;
a[ra + 3 >> 0] = a[oa + 2 >> 0] | 0;
a[ra >> 0] = a[oa + 1 >> 0] | 0;
a[ra + 1 >> 0] = a[oa >> 0] | 0;
Da = +g[la >> 2];
Ea = 1
}
la = q + 12 | 0;
if (!((+g[la >> 2] - w) * y + (+g[q + 16 >> 2] - U) * Aa <= Da))
Ca = Ea;
else {
oa = la;
la = c[oa + 4 >> 2] | 0;
ra = d + (Ea * 20 | 0) | 0;
c[ra >> 2] = c[oa >> 2];
c[ra + 4 >> 2] = la;
la = q + 20 | 0;
q = d + (Ea * 20 | 0) + 16 | 0;
a[q + 2 >> 0] = a[la + 3 >> 0] | 0;
a[q + 3 >> 0] = a[la + 2 >> 0] | 0;
a[q >> 0] = a[la + 1 >> 0] | 0;
a[q + 1 >> 0] = a[la >> 0] | 0;
Ca = Ea + 1 | 0
}
}
c[aa >>
2] = Ca;
i = l;
return
}
function ef(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;
d = i;
c[a >> 2] = 0;
e = a + 4 | 0;
c[e >> 2] = -1;
f = a + 8 | 0;
g[f >> 2] = -3.4028234663852886E38;
h = +g[b + 216 >> 2];
j = +g[b + 212 >> 2];
k = c[b + 128 >> 2] | 0;
if ((k | 0) <= 0) {
i = d;
return
}
l = +g[b + 164 >> 2];
m = +g[b + 168 >> 2];
n = +g[b + 172 >> 2];
o = +g[b + 176 >> 2];
p = +g[b + 244 >> 2];
q = b + 228 | 0;
r = b + 232 | 0;
s = b + 236 | 0;
t = b + 240 | 0;
u = -3.4028234663852886E38;
v = 0;
while (1) {
w = +g[b + (v << 3) + 64 >> 2];
x = -w;
y = -+g[b + (v << 3) + 68 >>
2];
z = +g[b + (v << 3) >> 2];
A = +g[b + (v << 3) + 4 >> 2];
B = (z - l) * x + (A - m) * y;
C = (z - n) * x + (A - o) * y;
D = B < C ? B : C;
if (D > p)
break;
if (!(h * w + j * y >= 0))
if (D > u ? !((x - +g[q >> 2]) * j + (y - +g[r >> 2]) * h < -.03490658849477768) : 0)
E = 8;
else
F = u;
else if (D > u ? !((x - +g[s >> 2]) * j + (y - +g[t >> 2]) * h < -.03490658849477768) : 0)
E = 8;
else
F = u;
if ((E | 0) == 8) {
E = 0;
c[a >> 2] = 2;
c[e >> 2] = v;
g[f >> 2] = D;
F = D
}
G = v + 1 | 0;
if ((G | 0) < (k | 0)) {
u = F;
v = G
} else {
E = 10;
break
}
}
if ((E | 0) == 10) {
i = d;
return
}
c[a >> 2] = 2;
c[e >> 2] = v;
g[f >> 2] = D;
i = d;
return
}
function ff(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;
df(f, a, b, c, d, e);
i = f;
return
}
function gf(b, d, e, f, h) {
b = b | 0;
d = d | 0;
e = e | 0;
f = f | 0;
h = h | 0;
var j = 0,
k = 0,
l = 0,
m = 0,
n = 0,
o = 0,
p = 0,
q = 0,
r = 0,
s = 0,
t = 0,
u = 0,
v = 0,
w = 0,
x = 0,
y = 0,
z = 0,
A = 0,
B = 0,
C = 0,
D = 0,
E = 0,
F = 0,
G = 0,
H = 0,
I = 0,
J = 0,
K = 0,
L = 0,
M = 0,
N = 0,
O = 0,
P = 0,
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;
n = j + 80 | 0;
o = j + 56 | 0;
p = j + 32 | 0;
q = j + 24 | 0;
r = b + 60 | 0;
c[r >> 2] = 0;
s = +g[d + 8 >> 2] + +g[f + 8 >> 2];
c[k >> 2] = 0;
t = +hf(k, d, e, f, h);
if (t > s) {
i = j;
return
}
c[l >> 2] = 0;
u = +hf(l, f, h, d, e);
if (u > s) {
i = j;
return
}
if (u > t + 5.000000237487257E-4) {
t = +g[h >> 2];
u =
+g[h + 4 >> 2];
v = +g[h + 8 >> 2];
w = +g[h + 12 >> 2];
x = +g[e >> 2];
y = +g[e + 4 >> 2];
z = +g[e + 8 >> 2];
A = +g[e + 12 >> 2];
B = c[l >> 2] | 0;
c[b + 56 >> 2] = 2;
C = t;
D = u;
E = w;
F = v;
G = A;
H = z;
I = x;
J = y;
K = B;
L = 1;
M = f;
N = d
} else {
y = +g[e >> 2];
x = +g[e + 4 >> 2];
z = +g[e + 8 >> 2];
A = +g[e + 12 >> 2];
v = +g[h >> 2];
w = +g[h + 4 >> 2];
u = +g[h + 8 >> 2];
t = +g[h + 12 >> 2];
h = c[k >> 2] | 0;
c[b + 56 >> 2] = 1;
C = y;
D = x;
E = A;
F = z;
G = t;
H = u;
I = v;
J = w;
K = h;
L = 0;
M = d;
N = f
}
f = c[N + 148 >> 2] | 0;
w = +g[M + (K << 3) + 84 >> 2];
v = +g[M + (K << 3) + 88 >> 2];
u = E * w - F * v;
t = F * w + E * v;
v = G * u + H * t;
w = G * t - H * u;
if ((f | 0) > 0) {
d = 0;
h = 0;
u = 3.4028234663852886E38;
while (1) {
t = v * +g[N +
(d << 3) + 84 >> 2] + w * +g[N + (d << 3) + 88 >> 2];
k = t < u;
e = k ? d : h;
d = d + 1 | 0;
if ((d | 0) == (f | 0)) {
O = e;
break
} else {
h = e;
u = k ? t : u
}
}
} else
O = 0;
h = O + 1 | 0;
d = (h | 0) < (f | 0) ? h : 0;
u = +g[N + (O << 3) + 20 >> 2];
w = +g[N + (O << 3) + 24 >> 2];
v = +(I + (G * u - H * w));
t = +(J + (H * u + G * w));
h = m;
g[h >> 2] = v;
g[h + 4 >> 2] = t;
h = K & 255;
f = m + 8 | 0;
a[f >> 0] = h;
a[f + 1 >> 0] = O;
a[f + 2 >> 0] = 1;
a[f + 3 >> 0] = 0;
t = +g[N + (d << 3) + 20 >> 2];
v = +g[N + (d << 3) + 24 >> 2];
w = +(I + (G * t - H * v));
u = +(J + (H * t + G * v));
N = m + 12 | 0;
g[N >> 2] = w;
g[N + 4 >> 2] = u;
N = m + 20 | 0;
a[N >> 0] = h;
a[N + 1 >> 0] = d;
a[N + 2 >> 0] = 1;
a[N + 3 >> 0] = 0;
N = K + 1 | 0;
d = (N | 0) < (c[M + 148 >> 2] | 0) ? N : 0;
N =
M + (K << 3) + 20 | 0;
u = +g[N >> 2];
w = +g[N + 4 >> 2];
N = M + (d << 3) + 20 | 0;
v = +g[N >> 2];
t = +g[N + 4 >> 2];
z = v - u;
A = t - w;
x = +Q(+(z * z + A * A));
if (x < 1.1920928955078125E-7) {
P = z;
R = A
} else {
y = 1 / x;
P = z * y;
R = A * y
}
y = E * P - F * R;
A = E * R + F * P;
g[n >> 2] = y;
g[n + 4 >> 2] = A;
z = -y;
x = C + (E * u - F * w);
S = D + (F * u + E * w);
T = x * A + S * z;
g[q >> 2] = z;
g[q + 4 >> 2] = -A;
if ((kf(o, m, q, s - (x * y + S * A), K) | 0) < 2) {
i = j;
return
}
if ((kf(p, o, n, s + ((C + (E * v - F * t)) * y + (D + (F * v + E * t)) * A), d) | 0) < 2) {
i = j;
return
}
E = +R;
R = +-P;
d = b + 40 | 0;
g[d >> 2] = E;
g[d + 4 >> 2] = R;
R = +((u + v) * .5);
v = +((w + t) * .5);
d = b + 48 | 0;
g[d >> 2] = R;
g[d + 4 >> 2] = v;
v = +g[p >> 2];
R =
+g[p + 4 >> 2];
d = !(A * v + R * z - T <= s);
if (L << 24 >> 24 == 0) {
if (d)
U = 0;
else {
t = v - I;
w = R - J;
u = +(G * t + H * w);
E = +(G * w - H * t);
L = b;
g[L >> 2] = u;
g[L + 4 >> 2] = E;
c[b + 16 >> 2] = c[p + 8 >> 2];
U = 1
}
E = +g[p + 12 >> 2];
u = +g[p + 16 >> 2];
if (!(A * E + u * z - T <= s))
V = U;
else {
t = E - I;
E = u - J;
u = +(G * t + H * E);
w = +(G * E - H * t);
L = b + (U * 20 | 0) | 0;
g[L >> 2] = u;
g[L + 4 >> 2] = w;
c[b + (U * 20 | 0) + 16 >> 2] = c[p + 20 >> 2];
V = U + 1 | 0
}
} else {
if (d)
W = 0;
else {
w = v - I;
v = R - J;
R = +(G * w + H * v);
u = +(G * v - H * w);
d = b;
g[d >> 2] = R;
g[d + 4 >> 2] = u;
d = b + 16 | 0;
U = c[p + 8 >> 2] | 0;
c[d >> 2] = U;
a[d >> 0] = U >>> 8;
a[d + 1 >> 0] = U;
a[d + 2 >> 0] = U >>> 24;
a[d + 3 >> 0] = U >>> 16;
W = 1
}
u =
+g[p + 12 >> 2];
R = +g[p + 16 >> 2];
if (!(A * u + R * z - T <= s))
V = W;
else {
s = u - I;
I = R - J;
J = +(G * s + H * I);
R = +(G * I - H * s);
U = b + (W * 20 | 0) | 0;
g[U >> 2] = J;
g[U + 4 >> 2] = R;
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 hf(a, b, d, e, f) {
a = a | 0;
b = b | 0;
d = d | 0;
e = e | 0;
f = f | 0;
var h = 0,
j = 0,
k = 0,
l = 0,
m = 0,
n = 0,
o = 0,
p = 0,
q = 0,
r = 0,
s = 0,
t = 0,
u = 0,
v = 0,
w = 0,
x = 0,
y = 0,
z = 0,
A = 0,
B = 0;
h = i;
j = c[b + 148 >> 2] | 0;
k = c[e + 148 >> 2] | 0;
l = +g[f + 12 >> 2];
m = +g[d + 8 >> 2];
n = +g[f + 8 >> 2];
o = +g[d + 12 >> 2];
p = l * m - n * o;
q =
m * n + l * o;
o = +g[d >> 2] - +g[f >> 2];
m = +g[d + 4 >> 2] - +g[f + 4 >> 2];
r = l * o + n * m;
s = l * m - n * o;
if ((j | 0) <= 0) {
t = 0;
u = -3.4028234663852886E38;
c[a >> 2] = t;
i = h;
return +u
}
if ((k | 0) > 0) {
v = 0;
w = 0;
x = -3.4028234663852886E38
} else {
f = 0;
d = 0;
o = -3.4028234663852886E38;
while (1) {
y = o < 3.4028234663852886E38;
n = y ? 3.4028234663852886E38 : o;
z = y ? d : f;
d = d + 1 | 0;
if ((d | 0) == (j | 0)) {
t = z;
u = n;
break
} else {
f = z;
o = n
}
}
c[a >> 2] = t;
i = h;
return +u
}
while (1) {
o = +g[b + (w << 3) + 84 >> 2];
n = +g[b + (w << 3) + 88 >> 2];
m = q * o - p * n;
l = p * o + q * n;
n = +g[b + (w << 3) + 20 >> 2];
o = +g[b + (w << 3) + 24 >> 2];
A = r + (q * n - p * o);
B = s + (p *
n + q * o);
f = 0;
o = 3.4028234663852886E38;
do {
n = m * (+g[e + (f << 3) + 20 >> 2] - A) + l * (+g[e + (f << 3) + 24 >> 2] - B);
o = n < o ? n : o;
f = f + 1 | 0
} while ((f | 0) != (k | 0));
f = o > x;
B = f ? o : x;
d = f ? w : v;
w = w + 1 | 0;
if ((w | 0) == (j | 0)) {
t = d;
u = B;
break
} else {
v = d;
x = B
}
}
c[a >> 2] = t;
i = h;
return +u
}
function jf(a, b, d, e, f, h) {
a = a | 0;
b = b | 0;
d = d | 0;
e = +e;
f = f | 0;
h = +h;
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;
j = i;
k = b + 60 | 0;
if ((c[k >> 2] | 0) == 0) {
i = j;
return
}
l = c[b + 56 >> 2] | 0;
if ((l | 0) == 2) {
m = f + 12 | 0;
n = +g[m >> 2];
o = +g[b + 40 >> 2];
p = f + 8 | 0;
q = +g[p >> 2];
r = +g[b + 44 >> 2];
s = n * o - q * r;
t = o * q + n * r;
r = +s;
n = +t;
u = a;
g[u >> 2] = r;
g[u + 4 >> 2] = n;
n = +g[m >> 2];
r = +g[b + 48 >> 2];
q = +g[p >> 2];
o = +g[b + 52 >> 2];
v = +g[f >> 2] + (n * r - q * o);
w = r * q + n * o + +g[f + 4 >> 2];
if ((c[k >> 2] | 0) > 0) {
p = d + 12 | 0;
m = d + 8 | 0;
u = d + 4 | 0;
x = a + 4 | 0;
o = s;
n = t;
y = 0;
while (1) {
q = +g[p >> 2];
r = +g[b + (y * 20 | 0) >> 2];
z = +g[m >> 2];
A = +g[b + (y * 20 | 0) + 4 >> 2];
B = +g[d >> 2] + (q * r - z * A);
C = r * z + q * A + +g[u >> 2];
A = h - (o * (B - v) + (C - w) * n);
q = B + o * A;
z = C + n * A;
A = B - o * e;
B = C - n * e;
C = +((A + q) * .5);
r = +((B + z) * .5);
D = a + (y << 3) + 8 | 0;
g[D >> 2] = C;
g[D + 4 >> 2] = r;
g[a + (y << 2) + 24 >> 2] = +g[a >> 2] * (A - q) +
+g[x >> 2] * (B - z);
y = y + 1 | 0;
z = +g[a >> 2];
B = +g[x >> 2];
if ((y | 0) >= (c[k >> 2] | 0)) {
E = z;
F = B;
break
} else {
o = z;
n = B
}
}
} else {
E = s;
F = t
}
t = +-E;
E = +-F;
y = a;
g[y >> 2] = t;
g[y + 4 >> 2] = E;
i = j;
return
} else if ((l | 0) == 0) {
g[a >> 2] = 1;
y = a + 4 | 0;
g[y >> 2] = 0;
E = +g[d + 12 >> 2];
t = +g[b + 48 >> 2];
F = +g[d + 8 >> 2];
s = +g[b + 52 >> 2];
n = +g[d >> 2] + (E * t - F * s);
o = t * F + E * s + +g[d + 4 >> 2];
s = +g[f + 12 >> 2];
E = +g[b >> 2];
F = +g[f + 8 >> 2];
t = +g[b + 4 >> 2];
w = +g[f >> 2] + (s * E - F * t);
v = E * F + s * t + +g[f + 4 >> 2];
t = n - w;
s = o - v;
if (t * t + s * s > 1.4210854715202004E-14) {
s = w - n;
t = v - o;
F = +s;
E = +t;
x = a;
g[x >> 2] = F;
g[x + 4 >> 2] = E;
E = +Q(+(s *
s + t * t));
if (E < 1.1920928955078125E-7) {
G = s;
H = t
} else {
F = 1 / E;
E = s * F;
g[a >> 2] = E;
s = t * F;
g[y >> 2] = s;
G = E;
H = s
}
} else {
G = 1;
H = 0
}
s = n + G * e;
n = o + H * e;
o = w - G * h;
w = v - H * h;
v = +((s + o) * .5);
E = +((n + w) * .5);
y = a + 8 | 0;
g[y >> 2] = v;
g[y + 4 >> 2] = E;
g[a + 24 >> 2] = G * (o - s) + H * (w - n);
i = j;
return
} else if ((l | 0) == 1) {
l = d + 12 | 0;
n = +g[l >> 2];
w = +g[b + 40 >> 2];
y = d + 8 | 0;
H = +g[y >> 2];
s = +g[b + 44 >> 2];
o = n * w - H * s;
G = w * H + n * s;
s = +o;
n = +G;
x = a;
g[x >> 2] = s;
g[x + 4 >> 2] = n;
n = +g[l >> 2];
s = +g[b + 48 >> 2];
H = +g[y >> 2];
w = +g[b + 52 >> 2];
E = +g[d >> 2] + (n * s - H * w);
v = s * H + n * w + +g[d + 4 >> 2];
if ((c[k >> 2] | 0) <= 0) {
i = j;
return
}
d =
f + 12 | 0;
y = f + 8 | 0;
l = f + 4 | 0;
x = a + 4 | 0;
w = o;
o = G;
u = 0;
while (1) {
G = +g[d >> 2];
n = +g[b + (u * 20 | 0) >> 2];
H = +g[y >> 2];
s = +g[b + (u * 20 | 0) + 4 >> 2];
F = +g[f >> 2] + (G * n - H * s);
t = n * H + G * s + +g[l >> 2];
s = e - (w * (F - E) + (t - v) * o);
G = F + w * s;
H = t + o * s;
s = F - w * h;
F = t - o * h;
t = +((s + G) * .5);
n = +((F + H) * .5);
m = a + (u << 3) + 8 | 0;
g[m >> 2] = t;
g[m + 4 >> 2] = n;
g[a + (u << 2) + 24 >> 2] = +g[a >> 2] * (s - G) + +g[x >> 2] * (F - H);
m = u + 1 | 0;
if ((m | 0) >= (c[k >> 2] | 0))
break;
w = +g[a >> 2];
o = +g[x >> 2];
u = m
}
i = j;
return
} else {
i = j;
return
}
}
function kf(b, d, e, f, h) {
b = b | 0;
d = d | 0;
e = e | 0;
f = +f;
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;
j = i;
k = +g[e >> 2];
l = +g[e + 4 >> 2];
e = d + 4 | 0;
m = k * +g[d >> 2] + l * +g[e >> 2] - f;
n = d + 12 | 0;
o = d + 16 | 0;
p = k * +g[n >> 2] + l * +g[o >> 2] - f;
if (!(m <= 0))
q = 0;
else {
c[b + 0 >> 2] = c[d + 0 >> 2];
c[b + 4 >> 2] = c[d + 4 >> 2];
c[b + 8 >> 2] = c[d + 8 >> 2];
q = 1
}
if (!(p <= 0))
r = q;
else {
s = q + 1 | 0;
t = b + (q * 12 | 0) | 0;
c[t + 0 >> 2] = c[n + 0 >> 2];
c[t + 4 >> 2] = c[n + 4 >> 2];
c[t + 8 >> 2] = c[n + 8 >> 2];
r = s
}
if (!(m * p < 0)) {
u = r;
i = j;
return u | 0
}
f = m / (m - p);
p = +g[d >> 2];
m = +g[e >> 2];
l = +(p + f * (+g[n >> 2] - p));
p = +(m + f * (+g[o >> 2] - m));
o = b + (r * 12 | 0) | 0;
g[o >> 2] = l;
g[o + 4 >> 2] = p;
o = b + (r * 12 | 0) + 8 | 0;
a[o >> 0] = h;
a[o + 1 >> 0] = a[d +
9 >> 0] | 0;
a[o + 2 >> 0] = 0;
a[o + 3 >> 0] = 1;
u = r + 1 | 0;
i = j;
return u | 0
}
function lf(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;
be(m, d, e);
be(m + 28 | 0, f, h);
h = m + 56 | 0;
c[h + 0 >> 2] = c[j + 0 >> 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 + 0 >> 2] = c[k + 0 >> 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;
de(o, n, m);
i = l;
return +g[o +
16 >> 2] < 1.1920928955078125E-6 | 0
}
function mf(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;
h = i;
j = a + 40 | 0;
c[j >> 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] = Ym(f, b << 2) | 0;
c[a + 12 >> 2] = Ym(c[a >> 2] | 0, d << 2) | 0;
c[a + 16 >> 2] = Ym(c[a >> 2] | 0, e << 2) | 0;
c[a + 24 >> 2] = Ym(c[a >> 2] | 0, (c[j >> 2] | 0) * 12 | 0) | 0;
c[a + 20 >> 2] = Ym(c[a >> 2] | 0, (c[j >> 2] | 0) * 12 | 0) | 0;
i = h;
return
}
function nf(a) {
a = a | 0;
var b = 0;
b = i;
_m(c[a >> 2] | 0, c[a + 20 >> 2] | 0);
_m(c[a >> 2] | 0, c[a + 24 >> 2] | 0);
_m(c[a >> 2] | 0, c[a +
16 >> 2] | 0);
_m(c[a >> 2] | 0, c[a + 12 >> 2] | 0);
_m(c[a >> 2] | 0, c[a + 8 >> 2] | 0);
i = b;
return
}
function of(d, e, f, h, j) {
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,
O = 0,
P = 0,
R = 0,
U = 0,
V = 0,
W = 0,
X = 0,
Y = 0;
l = i;
i = i + 176 | 0;
m = l + 148 | 0;
n = l;
o = l + 112 | 0;
p = l + 64 | 0;
q = l + 8 | 0;
Km(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;
C = +g[y + 72 >> 2];
z = y +
80 | 0;
D = +g[z >> 2];
E = +g[z + 4 >> 2];
F = +g[y + 88 >> 2];
z = y + 52 | 0;
c[z >> 2] = A;
c[z + 4 >> 2] = B;
g[y + 68 >> 2] = C;
if ((c[y >> 2] | 0) == 2) {
G = +g[y + 156 >> 2];
H = +g[y + 136 >> 2];
I = 1 / (r * +g[y + 148 >> 2] + 1);
J = (D + r * (G * +g[h >> 2] + H * +g[y + 92 >> 2])) * I;
K = (E + r * (G * +g[u >> 2] + H * +g[y + 96 >> 2])) * I;
L = (F + r * +g[y + 144 >> 2] * +g[y + 100 >> 2]) * (1 / (r * +g[y + 152 >> 2] + 1))
} else {
J = D;
K = E;
L = F
}
y = (c[v >> 2] | 0) + (x * 12 | 0) | 0;
c[y >> 2] = A;
c[y + 4 >> 2] = B;
g[(c[v >> 2] | 0) + (x * 12 | 0) + 8 >> 2] = C;
C = +J;
F = +K;
B = (c[w >> 2] | 0) + (x * 12 | 0) | 0;
g[B >> 2] = C;
g[B + 4 >> 2] = F;
g[(c[w >> 2] | 0) + (x * 12 | 0) + 8 >> 2] = L;
x = x + 1 | 0
} while ((x | 0) < (c[s >> 2] |
0));
M = w;
N = v
} else {
M = d + 24 | 0;
N = d + 20 | 0
}
c[o + 0 >> 2] = c[f + 0 >> 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[N >> 2] | 0;
c[o + 28 >> 2] = v;
w = c[M >> 2] | 0;
c[o + 32 >> 2] = w;
c[p + 0 >> 2] = c[f + 0 >> 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];
u = d + 36 | 0;
c[p + 32 >> 2] = c[u >> 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) != 0)
Ni(q);
p = d + 32 | 0;
if ((c[p >> 2] | 0) > 0) {
w = d + 16 | 0;
v = 0;
do {
h = c[(c[w >> 2] | 0) + (v << 2) >> 2] | 0;
gb[c[(c[h >> 2] | 0) + 32 >> 2] & 63](h, o);
v = v + 1 | 0
} while ((v | 0) < (c[p >> 2] | 0))
}
g[e + 12 >> 2] = +Mm(n);
v = f + 12 | 0;
if ((c[v >> 2] | 0) > 0) {
w = d + 16 | 0;
h = 0;
do {
if ((c[p >> 2] | 0) > 0) {
t = 0;
do {
B = c[(c[w >> 2] | 0) + (t << 2) >> 2] | 0;
gb[c[(c[B >> 2] | 0) + 36 >> 2] & 63](B, o);
t = t + 1 | 0
} while ((t | 0) < (c[p >> 2] | 0))
}
Oi(q);
h = h + 1 | 0
} while ((h | 0) < (c[v >> 2] | 0))
}
Pi(q);
g[e + 16 >> 2] = +Mm(n);
if ((c[s >> 2] | 0) > 0) {
v = c[M >> 2] | 0;
h = 0;
do {
w = c[N >> 2] | 0;
t = w + (h * 12 | 0) | 0;
B = t;
L = +g[B >> 2];
K = +g[B + 4 >> 2];
J = +g[w + (h *
12 | 0) + 8 >> 2];
w = v + (h * 12 | 0) | 0;
F = +g[w >> 2];
C = +g[w + 4 >> 2];
E = +g[v + (h * 12 | 0) + 8 >> 2];
D = r * F;
I = r * C;
H = D * D + I * I;
if (H > 4) {
I = 2 / +Q(+H);
O = F * I;
P = C * I
} else {
O = F;
P = C
}
C = r * E;
if (C * C > 2.4674012660980225) {
if (C > 0)
R = C;
else
R = -C;
U = E * (1.5707963705062866 / R)
} else
U = E;
E = +(L + r * O);
L = +(K + r * P);
w = t;
g[w >> 2] = E;
g[w + 4 >> 2] = L;
g[(c[N >> 2] | 0) + (h * 12 | 0) + 8 >> 2] = J + r * U;
J = +O;
L = +P;
w = (c[M >> 2] | 0) + (h * 12 | 0) | 0;
g[w >> 2] = J;
g[w + 4 >> 2] = L;
v = c[M >> 2] | 0;
g[v + (h * 12 | 0) + 8 >> 2] = U;
h = h + 1 | 0
} while ((h | 0) < (c[s >> 2] | 0))
}
h = f + 16 | 0;
a:
do if ((c[h >> 2] | 0) > 0) {
f = d + 16 | 0;
v = 0;
while (1) {
w = Qi(q) | 0;
if ((c[p >>
2] | 0) > 0) {
t = 0;
B = 1;
while (1) {
y = c[(c[f >> 2] | 0) + (t << 2) >> 2] | 0;
A = B & (nb[c[(c[y >> 2] | 0) + 40 >> 2] & 31](y, o) | 0);
t = t + 1 | 0;
if ((t | 0) >= (c[p >> 2] | 0)) {
V = A;
break
} else
B = A
}
} else
V = 1;
v = v + 1 | 0;
if (w & V) {
W = 0;
break a
}
if ((v | 0) >= (c[h >> 2] | 0)) {
W = 1;
break
}
}
} else
W = 1;
while (0);
if ((c[s >> 2] | 0) > 0) {
h = d + 8 | 0;
V = 0;
do {
p = c[(c[h >> 2] | 0) + (V << 2) >> 2] | 0;
o = (c[N >> 2] | 0) + (V * 12 | 0) | 0;
v = c[o >> 2] | 0;
f = c[o + 4 >> 2] | 0;
o = p + 60 | 0;
c[o >> 2] = v;
c[o + 4 >> 2] = f;
U = +g[(c[N >> 2] | 0) + (V * 12 | 0) + 8 >> 2];
g[p + 72 >> 2] = U;
o = (c[M >> 2] | 0) + (V * 12 | 0) | 0;
B = c[o + 4 >> 2] | 0;
t = p + 80 | 0;
c[t >> 2] = c[o >> 2];
c[t + 4 >> 2] = B;
g[p + 88 >> 2] = +g[(c[M >> 2] | 0) + (V * 12 | 0) + 8 >> 2];
P = +T(+U);
g[p + 20 >> 2] = P;
O = +S(+U);
g[p + 24 >> 2] = O;
U = +g[p + 44 >> 2];
R = +g[p + 48 >> 2];
L = (c[k >> 2] = v, +g[k >> 2]) - (O * U - P * R);
J = (c[k >> 2] = f, +g[k >> 2]) - (P * U + O * R);
R = +L;
L = +J;
f = p + 12 | 0;
g[f >> 2] = R;
g[f + 4 >> 2] = L;
V = V + 1 | 0
} while ((V | 0) < (c[s >> 2] | 0))
}
g[e + 20 >> 2] = +Mm(n);
n = c[q + 44 >> 2] | 0;
e = d + 4 | 0;
if ((c[e >> 2] | 0) != 0 ? (c[u >> 2] | 0) > 0 : 0) {
V = m + 16 | 0;
M = 0;
do {
N = c[(c[x >> 2] | 0) + (M << 2) >> 2] | 0;
h = c[n + (M * 156 | 0) + 148 >> 2] | 0;
c[V >> 2] = h;
if ((h | 0) > 0) {
f = 0;
do {
g[m + (f << 2) >> 2] = +g[n + (M * 156 | 0) + (f * 36 | 0) + 16 >> 2];
g[m + (f << 2) + 8 >> 2] = +g[n + (M * 156 |
0) + (f * 36 | 0) + 20 >> 2];
f = f + 1 | 0
} while ((f | 0) != (h | 0))
}
h = c[e >> 2] | 0;
ib[c[(c[h >> 2] | 0) + 36 >> 2] & 7](h, N, m);
M = M + 1 | 0
} while ((M | 0) < (c[u >> 2] | 0))
}
if (!j) {
Li(q);
i = l;
return
}
j = c[s >> 2] | 0;
u = (j | 0) > 0;
if (u) {
M = c[d + 8 >> 2] | 0;
m = 0;
L = 3.4028234663852886E38;
while (1) {
e = c[M + (m << 2) >> 2] | 0;
do if ((c[e >> 2] | 0) == 0)
X = L;
else {
if ((!((b[e + 4 >> 1] & 4) == 0) ? (R = +g[e + 88 >> 2], !(R * R > .001218469929881394)) : 0) ? (R = +g[e + 80 >> 2], J = +g[e + 84 >> 2], !(R * R + J * J > 9.999999747378752E-5)) : 0) {
n = e + 160 | 0;
J = r + +g[n >> 2];
g[n >> 2] = J;
X = L < J ? L : J;
break
}
g[e + 160 >> 2] = 0;
X = 0
}
while (0);
m = m + 1 | 0;
if ((m |
0) >= (j | 0)) {
Y = X;
break
} else
L = X
}
} else
Y = 3.4028234663852886E38;
if (!(Y >= .5) | W | u ^ 1) {
Li(q);
i = l;
return
}
u = d + 8 | 0;
d = 0;
do {
W = c[(c[u >> 2] | 0) + (d << 2) >> 2] | 0;
j = W + 4 | 0;
b[j >> 1] = b[j >> 1] & 65533;
g[W + 160 >> 2] = 0;
j = W + 80 | 0;
c[j + 0 >> 2] = 0;
c[j + 4 >> 2] = 0;
c[j + 8 >> 2] = 0;
c[j + 12 >> 2] = 0;
c[j + 16 >> 2] = 0;
c[j + 20 >> 2] = 0;
d = d + 1 | 0
} while ((d | 0) < (c[s >> 2] | 0));
Li(q);
i = l;
return
}
function pf(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;
f = i;
i = i + 128 | 0;
h = f +
104 | 0;
j = f + 56 | 0;
k = f;
l = a + 28 | 0;
if ((c[l >> 2] | 0) > 0) {
m = a + 8 | 0;
n = a + 20 | 0;
o = a + 24 | 0;
p = 0;
do {
q = c[(c[m >> 2] | 0) + (p << 2) >> 2] | 0;
r = q + 60 | 0;
s = c[r + 4 >> 2] | 0;
t = (c[n >> 2] | 0) + (p * 12 | 0) | 0;
c[t >> 2] = c[r >> 2];
c[t + 4 >> 2] = s;
g[(c[n >> 2] | 0) + (p * 12 | 0) + 8 >> 2] = +g[q + 72 >> 2];
s = q + 80 | 0;
t = c[s + 4 >> 2] | 0;
r = (c[o >> 2] | 0) + (p * 12 | 0) | 0;
c[r >> 2] = c[s >> 2];
c[r + 4 >> 2] = t;
t = c[o >> 2] | 0;
g[t + (p * 12 | 0) + 8 >> 2] = +g[q + 88 >> 2];
p = p + 1 | 0
} while ((p | 0) < (c[l >> 2] | 0));
u = n;
v = t
} else {
u = a + 20 | 0;
v = c[a + 24 >> 2] | 0
}
n = a + 12 | 0;
c[j + 28 >> 2] = c[n >> 2];
p = a + 36 | 0;
c[j + 32 >> 2] = c[p >> 2];
c[j + 44 >> 2] = c[a >> 2];
c[j + 0 >> 2] = c[b +
0 >> 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[u >> 2];
o = a + 24 | 0;
c[j + 40 >> 2] = v;
Ki(k, j);
j = b + 16 | 0;
a:
do if ((c[j >> 2] | 0) > 0) {
v = 0;
do {
v = v + 1 | 0;
if (Si(k, d, e) | 0)
break a
} while ((v | 0) < (c[j >> 2] | 0))
}
while (0);
j = a + 8 | 0;
v = (c[u >> 2] | 0) + (d * 12 | 0) | 0;
m = c[v + 4 >> 2] | 0;
t = (c[(c[j >> 2] | 0) + (d << 2) >> 2] | 0) + 52 | 0;
c[t >> 2] = c[v >> 2];
c[t + 4 >> 2] = m;
m = c[u >> 2] | 0;
t = c[j >> 2] | 0;
g[(c[t + (d << 2) >> 2] | 0) + 68 >> 2] = +g[m + (d * 12 | 0) + 8 >> 2];
d = m + (e * 12 | 0) | 0;
m = c[d + 4 >> 2] | 0;
v =
(c[t + (e << 2) >> 2] | 0) + 52 | 0;
c[v >> 2] = c[d >> 2];
c[v + 4 >> 2] = m;
g[(c[(c[j >> 2] | 0) + (e << 2) >> 2] | 0) + 68 >> 2] = +g[(c[u >> 2] | 0) + (e * 12 | 0) + 8 >> 2];
Mi(k);
e = b + 12 | 0;
if ((c[e >> 2] | 0) > 0) {
m = 0;
do {
Oi(k);
m = m + 1 | 0
} while ((m | 0) < (c[e >> 2] | 0))
}
w = +g[b >> 2];
if ((c[l >> 2] | 0) > 0) {
b = 0;
do {
e = c[u >> 2] | 0;
m = e + (b * 12 | 0) | 0;
v = m;
x = +g[v >> 2];
y = +g[v + 4 >> 2];
z = +g[e + (b * 12 | 0) + 8 >> 2];
e = c[o >> 2] | 0;
v = e + (b * 12 | 0) | 0;
A = +g[v >> 2];
B = +g[v + 4 >> 2];
C = +g[e + (b * 12 | 0) + 8 >> 2];
D = w * A;
E = w * B;
F = D * D + E * E;
if (F > 4) {
E = 2 / +Q(+F);
G = A * E;
H = B * E
} else {
G = A;
H = B
}
B = w * C;
if (B * B > 2.4674012660980225) {
if (B > 0)
I = B;
else
I =
-B;
J = C * (1.5707963705062866 / I)
} else
J = C;
C = x + w * G;
x = y + w * H;
y = z + w * J;
z = +C;
B = +x;
e = m;
g[e >> 2] = z;
g[e + 4 >> 2] = B;
g[(c[u >> 2] | 0) + (b * 12 | 0) + 8 >> 2] = y;
A = +G;
E = +H;
e = (c[o >> 2] | 0) + (b * 12 | 0) | 0;
g[e >> 2] = A;
g[e + 4 >> 2] = E;
g[(c[o >> 2] | 0) + (b * 12 | 0) + 8 >> 2] = J;
e = c[(c[j >> 2] | 0) + (b << 2) >> 2] | 0;
m = e + 60 | 0;
g[m >> 2] = z;
g[m + 4 >> 2] = B;
g[e + 72 >> 2] = y;
m = e + 80 | 0;
g[m >> 2] = A;
g[m + 4 >> 2] = E;
g[e + 88 >> 2] = J;
E = +T(+y);
g[e + 20 >> 2] = E;
A = +S(+y);
g[e + 24 >> 2] = A;
y = +g[e + 44 >> 2];
B = +g[e + 48 >> 2];
z = +(C - (A * y - E * B));
C = +(x - (E * y + A * B));
m = e + 12 | 0;
g[m >> 2] = z;
g[m + 4 >> 2] = C;
b = b + 1 | 0
} while ((b | 0) < (c[l >> 2] |
0))
}
l = c[k + 44 >> 2] | 0;
b = a + 4 | 0;
if ((c[b >> 2] | 0) == 0) {
Li(k);
i = f;
return
}
if ((c[p >> 2] | 0) <= 0) {
Li(k);
i = f;
return
}
a = h + 16 | 0;
j = 0;
do {
o = c[(c[n >> 2] | 0) + (j << 2) >> 2] | 0;
u = c[l + (j * 156 | 0) + 148 >> 2] | 0;
c[a >> 2] = u;
if ((u | 0) > 0) {
m = 0;
do {
g[h + (m << 2) >> 2] = +g[l + (j * 156 | 0) + (m * 36 | 0) + 16 >> 2];
g[h + (m << 2) + 8 >> 2] = +g[l + (j * 156 | 0) + (m * 36 | 0) + 20 >> 2];
m = m + 1 | 0
} while ((m | 0) != (u | 0))
}
u = c[b >> 2] | 0;
ib[c[(c[u >> 2] | 0) + 36 >> 2] & 7](u, o, h);
j = j + 1 | 0
} while ((j | 0) < (c[p >> 2] | 0));
Li(k);
i = f;
return
}
function qf(a, c, d) {
a = a | 0;
c = c | 0;
d = d | 0;
var e = 0,
f = 0;
a = i;
e = b[c + 36 >> 1] | 0;
if (!(e << 16 >> 16 ==
0 ? 1 : e << 16 >> 16 != (b[d + 36 >> 1] | 0))) {
f = e << 16 >> 16 > 0;
i = a;
return f | 0
}
if ((b[d + 32 >> 1] & b[c + 34 >> 1]) << 16 >> 16 == 0) {
f = 0;
i = a;
return f | 0
}
f = (b[d + 34 >> 1] & b[c + 32 >> 1]) << 16 >> 16 != 0;
i = a;
return f | 0
}
function rf(a) {
a = a | 0;
return
}
function sf(a) {
a = a | 0;
var b = 0;
b = i;
sn(a);
i = b;
return
}
function tf(a, b, c, d) {
a = a | 0;
b = b | 0;
c = c | 0;
d = d | 0;
return 1
}
function uf(a, b, c, d) {
a = a | 0;
b = b | 0;
c = c | 0;
d = d | 0;
return 1
}
function vf(a, b) {
a = a | 0;
b = b | 0;
var d = 0,
e = 0,
f = 0,
h = 0,
j = 0,
l = 0,
m = 0,
n = 0,
o = 0,
p = 0;
d = i;
vh(a, b);
c[a >> 2] = 904;
e = b + 20 | 0;
f = c[e >> 2] | 0;
h = c[e + 4 >> 2] | 0;
e = a + 76 | 0;
c[e >>
2] = f;
c[e + 4 >> 2] = h;
e = c[a + 52 >> 2] | 0;
j = (c[k >> 2] = f, +g[k >> 2]) - +g[e + 12 >> 2];
l = (c[k >> 2] = h, +g[k >> 2]) - +g[e + 16 >> 2];
m = +g[e + 24 >> 2];
n = +g[e + 20 >> 2];
o = +(j * m + l * n);
p = +(m * l - j * n);
e = a + 68 | 0;
g[e >> 2] = o;
g[e + 4 >> 2] = p;
g[a + 104 >> 2] = +g[b + 28 >> 2];
g[a + 96 >> 2] = 0;
g[a + 100 >> 2] = 0;
g[a + 84 >> 2] = +g[b + 32 >> 2];
g[a + 88 >> 2] = +g[b + 36 >> 2];
g[a + 92 >> 2] = 0;
g[a + 108 >> 2] = 0;
i = d;
return
}
function wf(a, d) {
a = a | 0;
d = d | 0;
var e = 0,
f = 0,
h = 0,
j = 0,
k = 0;
e = i;
f = c[a + 52 >> 2] | 0;
h = f + 4 | 0;
j = b[h >> 1] | 0;
if ((j & 2) == 0 ? (k = j & 65535, (k & 2 | 0) == 0) : 0) {
b[h >> 1] = k | 2;
g[f + 160 >> 2] = 0
}
f = d;
d = c[f + 4 >> 2] | 0;
k = a + 76 |
0;
c[k >> 2] = c[f >> 2];
c[k + 4 >> 2] = d;
i = e;
return
}
function xf(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,
U = 0,
V = 0;
e = i;
f = c[b + 52 >> 2] | 0;
h = c[f + 8 >> 2] | 0;
j = b + 116 | 0;
c[j >> 2] = h;
l = f + 44 | 0;
m = c[l >> 2] | 0;
n = c[l + 4 >> 2] | 0;
l = b + 128 | 0;
c[l >> 2] = m;
c[l + 4 >> 2] = n;
o = +g[f + 136 >> 2];
g[b + 136 >> 2] = o;
p = +g[f + 144 >> 2];
g[b + 140 >> 2] = p;
l = c[d + 28 >> 2] | 0;
q = l + (h * 12 | 0) | 0;
r = +g[q >> 2];
s = +g[q + 4 >> 2];
t = +g[l + (h * 12 | 0) + 8 >> 2];
l = d + 32 | 0;
q = c[l >> 2] |
0;
u = q + (h * 12 | 0) | 0;
v = +g[u >> 2];
w = +g[u + 4 >> 2];
x = +g[q + (h * 12 | 0) + 8 >> 2];
y = +T(+t);
z = +S(+t);
t = +g[f + 132 >> 2];
A = +g[b + 84 >> 2] * 6.2831854820251465;
B = +g[d >> 2];
C = B * t * A * A;
D = B * (A * t * 2 * +g[b + 88 >> 2] + C);
t = (c[k >> 2] = m, +g[k >> 2]);
A = (c[k >> 2] = n, +g[k >> 2]);
if (D != 0)
E = 1 / D;
else
E = D;
g[b + 108 >> 2] = E;
D = C * E;
g[b + 92 >> 2] = D;
C = +g[b + 68 >> 2] - t;
t = +g[b + 72 >> 2] - A;
A = z * C - y * t;
B = y * C + z * t;
t = +A;
z = +B;
n = b + 120 | 0;
g[n >> 2] = t;
g[n + 4 >> 2] = z;
z = E + (o + B * p * B);
t = p * A;
C = B * t;
y = E + (o + A * t);
t = z * y - C * C;
if (t != 0)
F = 1 / t;
else
F = t;
t = C * F;
g[b + 144 >> 2] = y * F;
g[b + 148 >> 2] = t;
g[b + 152 >> 2] = t;
g[b + 156 >>
2] = z * F;
n = b + 160 | 0;
F = r + A - +g[b + 76 >> 2];
r = s + B - +g[b + 80 >> 2];
s = +F;
z = +r;
m = n;
g[m >> 2] = s;
g[m + 4 >> 2] = z;
g[n >> 2] = D * F;
g[b + 164 >> 2] = D * r;
r = x * .9800000190734863;
n = b + 96 | 0;
if ((a[d + 24 >> 0] | 0) == 0) {
g[n >> 2] = 0;
g[b + 100 >> 2] = 0;
G = v;
H = w;
I = r;
J = c[l >> 2] | 0;
K = J + (h * 12 | 0) | 0;
L = +G;
M = +H;
N = K;
O = N;
g[O >> 2] = L;
P = N + 4 | 0;
Q = P;
g[Q >> 2] = M;
R = c[j >> 2] | 0;
U = c[l >> 2] | 0;
V = U + (R * 12 | 0) + 8 | 0;
g[V >> 2] = I;
i = e;
return
} else {
x = +g[d + 8 >> 2];
D = x * +g[n >> 2];
g[n >> 2] = D;
n = b + 100 | 0;
F = x * +g[n >> 2];
g[n >> 2] = F;
G = v + o * D;
H = w + F * o;
I = r + p * (F * A - D * B);
J = c[l >> 2] | 0;
K = J + (h * 12 | 0) | 0;
L = +G;
M = +H;
N = K;
O = N;
g[O >>
2] = L;
P = N + 4 | 0;
Q = P;
g[Q >> 2] = M;
R = c[j >> 2] | 0;
U = c[l >> 2] | 0;
V = U + (R * 12 | 0) + 8 | 0;
g[V >> 2] = I;
i = e;
return
}
}
function yf(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;
e = a + 116 | 0;
f = c[e >> 2] | 0;
h = b + 32 | 0;
j = c[h >> 2] | 0;
k = j + (f * 12 | 0) | 0;
l = k;
m = +g[l >> 2];
n = +g[l + 4 >> 2];
o = +g[j + (f * 12 | 0) + 8 >> 2];
p = +g[a + 124 >> 2];
q = +g[a + 120 >> 2];
r = +g[a + 108 >> 2];
f = a + 96 | 0;
s = +g[f >> 2];
j = a + 100 | 0;
t = +g[j >> 2];
u = -(m - o * p + +g[a + 160 >> 2] + r * s);
v = -(n + o * q + +g[a + 164 >> 2] + r * t);
r = +g[a + 148 >> 2] * u + +g[a + 156 >> 2] * v;
l =
f;
w = +g[l >> 2];
x = +g[l + 4 >> 2];
y = s + (+g[a + 144 >> 2] * u + +g[a + 152 >> 2] * v);
g[f >> 2] = y;
v = r + t;
g[j >> 2] = v;
t = +g[b >> 2] * +g[a + 104 >> 2];
r = v * v + y * y;
if (r > t * t) {
u = t / +Q(+r);
r = y * u;
g[f >> 2] = r;
t = u * v;
g[j >> 2] = t;
z = r;
A = t
} else {
z = y;
A = v
}
v = z - w;
w = A - x;
x = +g[a + 136 >> 2];
A = o + +g[a + 140 >> 2] * (w * q - v * p);
p = +(m + v * x);
v = +(n + w * x);
a = k;
g[a >> 2] = p;
g[a + 4 >> 2] = v;
g[(c[h >> 2] | 0) + ((c[e >> 2] | 0) * 12 | 0) + 8 >> 2] = A;
i = d;
return
}
function zf(a, b) {
a = a | 0;
b = b | 0;
return 1
}
function Af(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 Bf(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 Cf(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 Df(a, b) {
a = a | 0;
b = +b;
return +(b * 0)
}
function Ef(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 Ff(a) {
a = a | 0;
a = i;
i = i + 16 | 0;
Rm(1008, a);
i = a;
return
}
function Gf(a) {
a = a | 0;
return
}
function Hf(a) {
a = a | 0;
var b = 0;
b = i;
sn(a);
i = b;
return
}
function If(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;
e = i;
c[a + 8 >> 2] = b;
c[a + 12 >> 2] = d;
f = d + 12 | 0;
h = +g[f >> 2];
j = h - +g[b + 12 >> 2];
h = +g[f + 4 >> 2] - +g[b + 16 >> 2];
k = +g[b + 24 >> 2];
l = +g[b + 20 >> 2];
m = +(j * k + h * l);
n = +(k * h - j * l);
f = a + 20 | 0;
g[f >> 2] = m;
g[f + 4 >> 2] = n;
g[a + 28 >> 2] = +g[d + 72 >> 2] - +g[b + 72 >> 2];
i = e;
return
}
function cm(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;
f = i;
h = a + 4 | 0;
j = c[(c[h >> 2] | 0) + 88 >> 2] | 0;
k = c[j + (d << 2) >> 2] | c[j + (b << 2) >> 2] | c[j + (e << 2) >> 2];
if ((k & 16 | 0) == 0) {
i = f;
return
}
j = c[a + 8 >> 2] | 0;
if (!(lb[c[(c[j >> 2] | 0) + 16 >> 2] & 7](j, b, d, e) | 0)) {
i = f;
return
}
j = c[h >> 2] | 0;
h = c[j + 96 >> 2] | 0;
a = h + (b << 3) | 0;
l = +g[a >> 2];
m = h + (d << 3) | 0;
n = +g[m >> 2];
o = l - n;
p = h + (b << 3) + 4 | 0;
q = +g[p >> 2];
r = h + (d << 3) + 4 | 0;
s = +g[r >> 2];
t = q - s;
u = h + (e << 3) | 0;
v = +g[u >> 2];
w = n - v;
x = h + (e << 3) + 4 | 0;
n = +g[x >> 2];
y = s - n;
s = v - l;
l = n - q;
q = +g[j + 40 >> 2] * 4;
if (o * o + t * t > q) {
i = f;
return
}
if (w * w + y * y > q) {
i = f;
return
}
if (s *
s + l * l > q) {
i = f;
return
}
h = c[j + 144 >> 2] | 0;
z = c[h + (b << 2) >> 2] | 0;
A = c[h + (d << 2) >> 2] | 0;
B = c[h + (e << 2) >> 2] | 0;
h = j + 264 | 0;
C = j + 268 | 0;
D = c[C >> 2] | 0;
E = j + 272 | 0;
F = c[E >> 2] | 0;
if ((D | 0) >= (F | 0) ? (G = (F | 0) == 0 ? 256 : F << 1, (F | 0) < (G | 0)) : 0) {
F = j + 276 | 0;
j = Em(c[F >> 2] | 0, G * 60 | 0) | 0;
H = c[h >> 2] | 0;
if ((H | 0) != 0) {
An(j | 0, H | 0, (c[C >> 2] | 0) * 60 | 0) | 0;
Fm(c[F >> 2] | 0, c[h >> 2] | 0, (c[E >> 2] | 0) * 60 | 0)
}
c[E >> 2] = G;
c[h >> 2] = j;
I = c[C >> 2] | 0
} else
I = D;
c[C >> 2] = I + 1;
C = c[h >> 2] | 0;
c[C + (I * 60 | 0) >> 2] = b;
c[C + (I * 60 | 0) + 4 >> 2] = d;
c[C + (I * 60 | 0) + 8 >> 2] = e;
c[C + (I * 60 | 0) + 12 >> 2] = k;
if ((z | 0) == 0)
J = 1;
else
J =
+g[z + 16 >> 2];
if ((A | 0) == 0)
K = 1;
else
K = +g[A + 16 >> 2];
q = J < K ? J : K;
if ((B | 0) == 0)
L = 1;
else
L = +g[B + 16 >> 2];
g[C + (I * 60 | 0) + 16 >> 2] = q < L ? q : L;
L = +g[a >> 2];
q = +g[p >> 2];
K = (L + +g[m >> 2] + +g[u >> 2]) * .3333333432674408;
J = (q + +g[r >> 2] + +g[x >> 2]) * .3333333432674408;
n = +(L - K);
L = +(q - J);
B = C + (I * 60 | 0) + 20 | 0;
g[B >> 2] = n;
g[B + 4 >> 2] = L;
L = +(+g[m >> 2] - K);
n = +(+g[r >> 2] - J);
B = C + (I * 60 | 0) + 28 | 0;
g[B >> 2] = L;
g[B + 4 >> 2] = n;
n = +(+g[u >> 2] - K);
K = +(+g[x >> 2] - J);
B = C + (I * 60 | 0) + 36 | 0;
g[B >> 2] = n;
g[B + 4 >> 2] = K;
g[C + (I * 60 | 0) + 44 >> 2] = -(o * s + t * l);
g[C + (I * 60 | 0) + 48 >> 2] = -(o * w + t * y);
g[C + (I *
60 | 0) + 52 >> 2] = -(w * s + y * l);
l = +g[a >> 2];
y = +g[r >> 2];
s = +g[p >> 2];
w = +g[m >> 2];
t = +g[x >> 2];
o = +g[u >> 2];
g[C + (I * 60 | 0) + 56 >> 2] = s * o - l * t + (l * y - s * w + (w * t - y * o));
i = f;
return
}
function dm(a) {
a = a | 0;
return
}
function em(a) {
a = a | 0;
var b = 0;
b = i;
sn(a);
i = b;
return
}
function fm(a, b) {
a = a | 0;
b = b | 0;
return (c[(c[a + 4 >> 2] | 0) + (b << 2) >> 2] & 4096 | 0) != 0 | 0
}
function gm(a, b, c) {
a = a | 0;
b = b | 0;
c = c | 0;
return 1
}
function hm(a, b, c, d) {
a = a | 0;
b = b | 0;
c = c | 0;
d = d | 0;
return 1
}
function im(a) {
a = a | 0;
var b = 0;
b = i;
sn(a);
i = b;
return
}
function jm(a, b) {
a = a | 0;
b = b | 0;
return 1
}
function km(a) {
a =
a | 0;
return
}
function lm(a) {
a = a | 0;
var b = 0;
b = i;
sn(a);
i = b;
return
}
function mm(a, b, d) {
a = a | 0;
b = b | 0;
d = d | 0;
var e = 0,
f = 0;
e = i;
f = c[a + 4 >> 2] | 0;
a = (f | 0) <= (b | 0);
b = (f | 0) > (d | 0);
if (a | b) {
i = e;
return b & a | 0
} else {
i = e;
return 1
}
return 0
}
function nm(a, b, d, e) {
a = a | 0;
b = b | 0;
d = d | 0;
e = e | 0;
var f = 0,
g = 0;
f = i;
g = c[a + 4 >> 2] | 0;
a = (g | 0) > (b | 0);
b = (g | 0) > (d | 0);
if (a | b | (g | 0) > (e | 0)) {
i = f;
return (g | 0) <= (e | 0) | a & b ^ 1 | 0
} else {
i = f;
return 0
}
return 0
}
function om(a) {
a = a | 0;
return
}
function pm(a) {
a = a | 0;
var b = 0;
b = i;
sn(a);
i = b;
return
}
function qm(a, b) {
a = a | 0;
b = b | 0;
return 0
}
function rm(a) {
a = a | 0;
return 1
}
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;
e = i;
f = a + 16 | 0;
if ((c[f >> 2] | 0) <= 0) {
g = 0;
i = e;
return g | 0
}
h = a + 12 | 0;
a = 0;
while (1) {
j = c[(c[h >> 2] | 0) + (a << 2) >> 2] | 0;
a = a + 1 | 0;
if (hb[c[(c[j >> 2] | 0) + 16 >> 2] & 15](j, b, d) | 0) {
g = 1;
k = 5;
break
}
if ((a | 0) >= (c[f >> 2] | 0)) {
g = 0;
k = 5;
break
}
}
if ((k | 0) == 5) {
i = e;
return g | 0
}
return 0
}
function tm(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 um(a, b, c, d, e) {
a = a | 0;
b = b | 0;
c = c | 0;
d = d | 0;
e = e | 0;
return 0
}
function vm(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;
e = i;
i = i + 16 | 0;
f = e;
g[b >> 2] = 3.4028234663852886E38;
h = b + 4 | 0;
g[h >> 2] = 3.4028234663852886E38;
g[b + 8 >> 2] = -3.4028234663852886E38;
j = b + 12 | 0;
g[j >> 2] = -3.4028234663852886E38;
k = a + 16 | 0;
if ((c[k >> 2] | 0) <= 0) {
i = e;
return
}
l = a + 12 | 0;
a = f + 4 | 0;
m = b + 8 | 0;
n = f + 8 | 0;
o = f + 12 | 0;
p = 0;
do {
q = c[(c[l >> 2] | 0) + (p << 2) >> 2] | 0;
r = bb[c[(c[q >> 2] | 0) + 12 >> 2] & 7](q) | 0;
if ((r | 0) > 0) {
q = 0;
do {
s = c[(c[l >> 2] | 0) + (p << 2) >> 2] | 0;
pb[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];
x = +(t < u ? t : u);
u = +(v < w ? v : w);
s = b;
g[s >> 2] = x;
g[s + 4 >> 2] = u;
u = +g[m >> 2];
x = +g[n >> 2];
w = +g[j >> 2];
v = +g[o >> 2];
t = +(u > x ? u : x);
x = +(w > v ? w : v);
s = m;
g[s >> 2] = t;
g[s + 4 >> 2] = x;
q = q + 1 | 0
} while ((q | 0) != (r | 0))
}
p = p + 1 | 0
} while ((p | 0) < (c[k >> 2] | 0));
i = e;
return
}
function wm(a, b, c) {
a = a | 0;
b = b | 0;
c = +c;
return
}
function xm(a) {
a = a | 0;
return
}
function ym(a) {
a = a | 0;
var b = 0;
b = i;
sn(a);
i = b;
return
}
function zm(a, b) {
a = a | 0;
b = b | 0;
return 0
}
function Am(b, d, e) {
b = b | 0;
d = d | 0;
e = e | 0;
var f = 0,
g = 0,
h = 0,
j = 0;
f = i;
g = b + 4 | 0;
if ((c[g >> 2] | 0) != (d | 0)) {
h = 0;
i = f;
return h |
0
}
j = c[b + 8 >> 2] | 0;
if (!(hb[c[(c[j >> 2] | 0) + 16 >> 2] & 15](j, b + 12 | 0, (c[d + 96 >> 2] | 0) + (e << 3) | 0) | 0)) {
h = 1;
i = f;
return h | 0
}
d = c[g >> 2] | 0;
Ak(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;
h = 1;
i = f;
return h | 0
}
function Bm(a, b) {
a = a | 0;
b = b | 0;
var d = 0,
e = 0;
d = b + 4 | 0;
c[(c[b >> 2] | 0) + 4 >> 2] = c[d >> 2];
c[c[d >> 2] >> 2] = c[b >> 2];
c[d >> 2] = b;
c[b >> 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 Cm(b) {
b = b | 0;
var d = 0,
e = 0,
f = 0,
g = 0,
h = 0,
j = 0;
d = i;
e = b + 68 | 0;
c[b + 72 >> 2] = e;
c[e >> 2] =
e;
e = b + 8 | 0;
c[e >> 2] = 128;
c[b + 4 >> 2] = 0;
f = Pm(1024) | 0;
c[b >> 2] = f;
xn(f | 0, 0, c[e >> 2] << 3 | 0) | 0;
e = b + 12 | 0;
b = e + 56 | 0;
do {
c[e >> 2] = 0;
e = e + 4 | 0
} while ((e | 0) < (b | 0));
if ((a[8776] | 0) == 0) {
g = 1;
h = 0
} else {
i = d;
return
}
while (1) {
if ((g | 0) > (c[8072 + (h << 2) >> 2] | 0)) {
e = h + 1 | 0;
a[8128 + g >> 0] = e;
j = e
} else {
a[8128 + g >> 0] = h;
j = h
}
g = g + 1 | 0;
if ((g | 0) == 641)
break;
else
h = j
}
a[8776] = 1;
i = d;
return
}
function Dm(a) {
a = a | 0;
var b = 0,
d = 0,
e = 0,
f = 0,
g = 0,
h = 0,
j = 0;
b = i;
d = a + 4 | 0;
e = c[a >> 2] | 0;
if ((c[d >> 2] | 0) > 0) {
f = e;
g = 0;
while (1) {
Qm(c[f + (g << 3) + 4 >> 2] | 0);
g = g + 1 | 0;
h = c[a >> 2] | 0;
if ((g | 0) >= (c[d >>
2] | 0)) {
j = h;
break
} else
f = h
}
} else
j = e;
Qm(j);
j = a + 68 | 0;
Vm(j);
e = a + 72 | 0;
c[(c[j >> 2] | 0) + 4 >> 2] = c[e >> 2];
c[c[e >> 2] >> 2] = c[j >> 2];
c[e >> 2] = j;
c[j >> 2] = j;
i = b;
return
}
function Em(a, b) {
a = a | 0;
b = b | 0;
var e = 0,
f = 0,
g = 0,
h = 0,
j = 0,
k = 0,
l = 0,
m = 0,
n = 0,
o = 0;
e = i;
if ((b | 0) == 0) {
f = 0;
i = e;
return f | 0
}
if ((b | 0) > 640) {
f = Tm(a + 68 | 0, b) | 0;
i = e;
return f | 0
}
g = d[8128 + b >> 0] | 0;
b = a + (g << 2) + 12 | 0;
h = c[b >> 2] | 0;
if ((h | 0) != 0) {
c[b >> 2] = c[h >> 2];
f = h;
i = e;
return f | 0
}
h = a + 4 | 0;
j = c[h >> 2] | 0;
k = a + 8 | 0;
if ((j | 0) == (c[k >> 2] | 0)) {
l = c[a >> 2] | 0;
m = j + 128 | 0;
c[k >> 2] = m;
k = Pm(m << 3) | 0;
c[a >> 2] = k;
An(k | 0, l | 0, c[h >> 2] << 3 | 0) | 0;
xn((c[a >> 2] | 0) + (c[h >> 2] << 3) | 0, 0, 1024) | 0;
Qm(l);
n = c[h >> 2] | 0
} else
n = j;
j = c[a >> 2] | 0;
a = Pm(16384) | 0;
l = j + (n << 3) + 4 | 0;
c[l >> 2] = a;
k = c[8072 + (g << 2) >> 2] | 0;
c[j + (n << 3) >> 2] = k;
n = (16384 / (k | 0) | 0) + -1 | 0;
if ((n | 0) > 0) {
j = a;
g = 0;
while (1) {
m = g;
g = g + 1 | 0;
c[j + (aa(m, k) | 0) >> 2] = j + (aa(g, k) | 0);
m = c[l >> 2] | 0;
if ((g | 0) == (n | 0)) {
o = m;
break
} else
j = m
}
} else
o = a;
c[o + (aa(n, k) | 0) >> 2] = 0;
c[b >> 2] = c[c[l >> 2] >> 2];
c[h >> 2] = (c[h >> 2] | 0) + 1;
f = c[l >> 2] | 0;
i = e;
return f | 0
}
function Fm(a, b, e) {
a = a | 0;
b = b | 0;
e = e | 0;
var f = 0,
g = 0;
f = i;
if ((e | 0) == 0) {
i =
f;
return
}
if ((e | 0) > 640) {
Um(a + 68 | 0, b);
i = f;
return
} else {
g = a + ((d[8128 + e >> 0] | 0) << 2) + 12 | 0;
c[b >> 2] = c[g >> 2];
c[g >> 2] = b;
i = f;
return
}
}
function Gm(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;
if (q != 0)
r = 1 / q;
else
r = q;
q = +g[c >> 2];
s = +g[c + 4 >> 2];
t = +g[c + 8 >> 2];
g[a >> 2] = r * (i * q + s * l + 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 Hm(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;
if (i != 0)
j = 1 / i;
else
j = 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 Im(a, b) {
a = a | 0;
b = b | 0;
var d = 0,
e = 0,
f = 0,
h = 0,
j = 0,
k = 0,
l = 0;
d = i;
e = +g[a >> 2];
f = +g[a + 12 >> 2];
h = +g[a + 4 >> 2];
j = +g[a + 16 >> 2];
k = e * j - f * h;
if (k != 0)
l = 1 / k;
else
l = k;
g[b >> 2] = j * l;
j = -l;
g[b + 12 >> 2] = f * j;
g[b + 8 >> 2] = 0;
g[b + 4 >> 2] = h * j;
g[b + 16 >> 2] = e * l;
a = b + 20 | 0;
c[a + 0 >> 2] = 0;
c[a + 4 >> 2] = 0;
c[a + 8 >> 2] = 0;
c[a + 12 >> 2] = 0;
i = d;
return
}
function Jm(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,
o = 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];
if (n != 0)
o = 1 / n;
else
o = n;
g[b >> 2] = o * (e - h * h);
e = o * (i * h - k);
g[b + 4 >> 2] = e;
k = o * l;
g[b + 8 >> 2] = k;
g[b + 12 >> 2] = e;
g[b + 16 >> 2] = o * (m * d - i * i);
d = o * (j * i - m * h);
g[b + 20 >> 2] = d;
g[b + 24 >> 2] = k;
g[b +
28 >> 2] = d;
g[b + 32 >> 2] = o * (m * c - j * j);
return
}
function Km(a) {
a = a | 0;
return
}
function Lm(a) {
a = a | 0;
return
}
function Mm(a) {
a = a | 0;
return 0
}
function Nm(a, b) {
a = a | 0;
b = b | 0;
var c = 0;
b = i;
c = on(a) | 0;
i = b;
return c | 0
}
function Om(a, b) {
a = a | 0;
b = b | 0;
b = i;
pn(a);
i = b;
return
}
function Pm(a) {
a = a | 0;
var b = 0,
d = 0;
b = i;
c[2214] = (c[2214] | 0) + 1;
d = nb[c[2208] & 31](a, c[2212] | 0) | 0;
i = b;
return d | 0
}
function Qm(a) {
a = a | 0;
var b = 0;
b = i;
c[2214] = (c[2214] | 0) + -1;
gb[c[2210] & 63](a, c[2212] | 0);
i = b;
return
}
function Rm(a, b) {
a = a | 0;
b = b | 0;
return
}
function Sm(a) {
a = a | 0;
return a +
43 & -32 | 0
}
function Tm(a, b) {
a = a | 0;
b = b | 0;
var d = 0,
e = 0;
d = i;
e = Pm(b + 44 | 0) | 0;
c[e >> 2] = e;
b = e + 43 & -32;
c[b + -4 >> 2] = e;
c[e + 4 >> 2] = a;
c[e >> 2] = c[a >> 2];
c[(c[a >> 2] | 0) + 4 >> 2] = e;
c[a >> 2] = e;
i = d;
return b | 0
}
function Um(a, b) {
a = a | 0;
b = b | 0;
var d = 0;
a = i;
d = c[b + -4 >> 2] | 0;
b = d + 4 | 0;
c[(c[d >> 2] | 0) + 4 >> 2] = c[b >> 2];
c[c[b >> 2] >> 2] = c[d >> 2];
c[b >> 2] = d;
c[d >> 2] = d;
Qm(d);
i = a;
return
}
function Vm(a) {
a = a | 0;
var b = 0,
d = 0,
e = 0,
f = 0;
b = i;
d = a + 4 | 0;
e = c[d >> 2] | 0;
if ((e | 0) == (a | 0)) {
i = b;
return
} else
f = e;
do {
e = f + 4 | 0;
c[(c[f >> 2] | 0) + 4 >> 2] = c[e >> 2];
c[c[e >> 2] >> 2] = c[f >> 2];
c[e >> 2] = f;
c[f >> 2] = f;
Qm(f);
f = c[d >> 2] | 0
} while ((f | 0) != (a | 0));
i = b;
return
}
function Wm(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 Xm(a) {
a = a | 0;
return
}
function Ym(b, d) {
b = b | 0;
d = d | 0;
var e = 0,
f = 0,
g = 0,
h = 0,
j = 0,
k = 0;
e = i;
f = d + 3 & -4;
d = b + 102796 | 0;
g = c[d >> 2] | 0;
h = b + (g * 12 | 0) + 102412 | 0;
c[b + (g * 12 | 0) + 102416 >> 2] = f;
j = b + 102400 | 0;
k = c[j >> 2] | 0;
if ((k + f | 0) > 102400) {
c[h >> 2] = Pm(f) | 0;
a[b + (g * 12 | 0) + 102420 >> 0] = 1
} else {
c[h >> 2] = b + k;
a[b + (g * 12 | 0) + 102420 >> 0] = 0;
c[j >> 2] = (c[j >> 2] | 0) + f
}
j = b + 102404 | 0;
g = (c[j >> 2] |
0) + f | 0;
c[j >> 2] = g;
j = b + 102408 | 0;
b = c[j >> 2] | 0;
c[j >> 2] = (b | 0) > (g | 0) ? b : g;
c[d >> 2] = (c[d >> 2] | 0) + 1;
i = e;
return c[h >> 2] | 0
}
function Zm(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;
d = i;
f = (c[b + 102796 >> 2] | 0) + -1 | 0;
g = b + (f * 12 | 0) + 102412 | 0;
h = b + (f * 12 | 0) + 102416 | 0;
j = e - (c[h >> 2] | 0) | 0;
if ((j | 0) <= 0) {
k = c[g >> 2] | 0;
i = d;
return k | 0
}
l = b + (f * 12 | 0) + 102420 | 0;
do if ((a[l >> 0] | 0) == 0) {
f = b + 102400 | 0;
m = (c[f >> 2] | 0) + j | 0;
if ((m | 0) > 102400) {
n = Pm(e) | 0;
An(n | 0, c[g >> 2] | 0, c[h >> 2] | 0) | 0;
c[f >> 2] = (c[f >> 2] | 0) - (c[h >> 2] | 0);
c[g >> 2] = n;
a[l >> 0] = 1;
break
} else {
c[f >>
2] = m;
m = b + 102404 | 0;
f = (c[m >> 2] | 0) + j | 0;
c[m >> 2] = f;
m = b + 102408 | 0;
n = c[m >> 2] | 0;
c[m >> 2] = (n | 0) > (f | 0) ? n : f;
break
}
} else {
f = Pm(e) | 0;
An(f | 0, c[g >> 2] | 0, c[h >> 2] | 0) | 0;
Qm(c[g >> 2] | 0);
c[g >> 2] = f
}
while (0);
c[h >> 2] = e;
k = c[g >> 2] | 0;
i = d;
return k | 0
}
function _m(b, d) {
b = b | 0;
d = d | 0;
var e = 0,
f = 0,
g = 0,
h = 0,
j = 0,
k = 0,
l = 0,
m = 0;
e = i;
f = b + 102796 | 0;
g = c[f >> 2] | 0;
h = g + -1 | 0;
if ((a[b + (h * 12 | 0) + 102420 >> 0] | 0) == 0) {
j = b + (h * 12 | 0) + 102416 | 0;
k = b + 102400 | 0;
c[k >> 2] = (c[k >> 2] | 0) - (c[j >> 2] | 0);
l = j;
m = g
} else {
Qm(d);
l = b + (h * 12 | 0) + 102416 | 0;
m = c[f >> 2] | 0
}
h = b + 102404 | 0;
c[h >> 2] = (c[h >>
2] | 0) - (c[l >> 2] | 0);
c[f >> 2] = m + -1;
i = e;
return
}
function $m(a) {
a = a | 0;
return
}
function an(a) {
a = a | 0;
return
}
function bn(a) {
a = a | 0;
return
}
function cn(a) {
a = a | 0;
return
}
function dn(a) {
a = a | 0;
var b = 0;
b = i;
sn(a);
i = b;
return
}
function en(a) {
a = a | 0;
var b = 0;
b = i;
sn(a);
i = b;
return
}
function fn(a, b, d) {
a = a | 0;
b = b | 0;
d = d | 0;
var e = 0,
f = 0,
g = 0,
h = 0,
j = 0;
e = i;
i = i + 64 | 0;
f = e;
if ((a | 0) == (b | 0)) {
g = 1;
i = e;
return g | 0
}
if ((b | 0) == 0) {
g = 0;
i = e;
return g | 0
}
h = jn(b, 8928, 8984, 0) | 0;
if ((h | 0) == 0) {
g = 0;
i = e;
return g | 0
}
b = f + 0 | 0;
j = b + 56 | 0;
do {
c[b >> 2] = 0;
b = b + 4 | 0
} while ((b |
0) < (j | 0));
c[f >> 2] = h;
c[f + 8 >> 2] = a;
c[f + 12 >> 2] = -1;
c[f + 48 >> 2] = 1;
pb[c[(c[h >> 2] | 0) + 28 >> 2] & 31](h, f, c[d >> 2] | 0, 1);
if ((c[f + 24 >> 2] | 0) != 1) {
g = 0;
i = e;
return g | 0
}
c[d >> 2] = c[f + 16 >> 2];
g = 1;
i = e;
return g | 0
}
function gn(b, d, e, f) {
b = b | 0;
d = d | 0;
e = e | 0;
f = f | 0;
var g = 0,
h = 0;
g = i;
if ((c[d + 8 >> 2] | 0) != (b | 0)) {
i = g;
return
}
b = d + 16 | 0;
h = c[b >> 2] | 0;
if ((h | 0) == 0) {
c[b >> 2] = e;
c[d + 24 >> 2] = f;
c[d + 36 >> 2] = 1;
i = g;
return
}
if ((h | 0) != (e | 0)) {
e = d + 36 | 0;
c[e >> 2] = (c[e >> 2] | 0) + 1;
c[d + 24 >> 2] = 2;
a[d + 54 >> 0] = 1;
i = g;
return
}
e = d + 24 | 0;
if ((c[e >> 2] | 0) != 2) {
i = g;
return
}
c[e >> 2] = f;
i = g;
return
}
function hn(b, d, e, f) {
b = b | 0;
d = d | 0;
e = e | 0;
f = f | 0;
var g = 0,
h = 0;
g = i;
if ((b | 0) != (c[d + 8 >> 2] | 0)) {
h = c[b + 8 >> 2] | 0;
pb[c[(c[h >> 2] | 0) + 28 >> 2] & 31](h, d, e, f);
i = g;
return
}
h = d + 16 | 0;
b = c[h >> 2] | 0;
if ((b | 0) == 0) {
c[h >> 2] = e;
c[d + 24 >> 2] = f;
c[d + 36 >> 2] = 1;
i = g;
return
}
if ((b | 0) != (e | 0)) {
e = d + 36 | 0;
c[e >> 2] = (c[e >> 2] | 0) + 1;
c[d + 24 >> 2] = 2;
a[d + 54 >> 0] = 1;
i = g;
return
}
e = d + 24 | 0;
if ((c[e >> 2] | 0) != 2) {
i = g;
return
}
c[e >> 2] = f;
i = g;
return
}
function jn(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;
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);
f = g + 0 | 0;
q = f + 36 | 0;
do {
c[f >> 2] = 0;
f = f + 4 | 0
} while ((f | 0) < (q | 0));
b[g + 36 >> 1] = 0;
a[g + 38 >> 0] = 0;
if (p) {
c[j + 48 >> 2] = 1;
mb[c[(c[m >> 2] | 0) + 20 >> 2] & 7](m, j, l, l, 1, 0);
r = (c[d >> 2] | 0) == 1 ? l : 0;
i = h;
return r | 0
}
cb[c[(c[m >> 2] | 0) + 24 >> 2] & 3](m, j, l, 1, 0);
l = c[j + 36 >> 2] | 0;
if ((l | 0) == 1) {
if ((c[d >> 2] | 0) != 1) {
if ((c[o >> 2] | 0) != 0) {
r = 0;
i = h;
return r | 0
}
if ((c[k >> 2] | 0) != 1) {
r = 0;
i = h;
return r | 0
}
if ((c[n >> 2] | 0) != 1) {
r =
0;
i = h;
return r | 0
}
}
r = c[g >> 2] | 0;
i = h;
return r | 0
} else if ((l | 0) == 0) {
if ((c[o >> 2] | 0) != 1) {
r = 0;
i = h;
return r | 0
}
if ((c[k >> 2] | 0) != 1) {
r = 0;
i = h;
return r | 0
}
r = (c[n >> 2] | 0) == 1 ? c[e >> 2] | 0 : 0;
i = h;
return r | 0
} else {
r = 0;
i = h;
return r | 0
}
return 0
}
function kn(b, d, e, f, g) {
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;
h = i;
if ((b | 0) == (c[d + 8 >> 2] | 0)) {
if ((c[d + 4 >> 2] | 0) != (e | 0)) {
i = h;
return
}
j = d + 28 | 0;
if ((c[j >> 2] | 0) == 1) {
i = h;
return
}
c[j >> 2] = f;
i = h;
return
}
if ((b | 0) != (c[d >> 2] | 0)) {
j = c[b + 8 >> 2] | 0;
cb[c[(c[j >> 2] | 0) + 24 >> 2] & 3](j, d, e, f,
g);
i = h;
return
}
if ((c[d + 16 >> 2] | 0) != (e | 0) ? (j = d + 20 | 0, (c[j >> 2] | 0) != (e | 0)) : 0) {
c[d + 32 >> 2] = f;
k = d + 44 | 0;
if ((c[k >> 2] | 0) == 4) {
i = h;
return
}
l = d + 52 | 0;
a[l >> 0] = 0;
m = d + 53 | 0;
a[m >> 0] = 0;
n = c[b + 8 >> 2] | 0;
mb[c[(c[n >> 2] | 0) + 20 >> 2] & 7](n, d, e, e, 1, g);
if ((a[m >> 0] | 0) != 0) {
if ((a[l >> 0] | 0) == 0) {
o = 1;
p = 13
}
} else {
o = 0;
p = 13
}
do if ((p | 0) == 13) {
c[j >> 2] = e;
l = d + 40 | 0;
c[l >> 2] = (c[l >> 2] | 0) + 1;
if ((c[d + 36 >> 2] | 0) == 1 ? (c[d + 24 >> 2] | 0) == 2 : 0) {
a[d + 54 >> 0] = 1;
if (o)
break
} else
p = 16;
if ((p | 0) == 16 ? o : 0)
break;
c[k >> 2] = 4;
i = h;
return
}
while (0);
c[k >> 2] = 3;
i = h;
return
}
if ((f | 0) != 1) {
i =
h;
return
}
c[d + 32 >> 2] = 1;
i = h;
return
}
function ln(b, d, e, f, g) {
b = b | 0;
d = d | 0;
e = e | 0;
f = f | 0;
g = g | 0;
var h = 0;
g = i;
if ((c[d + 8 >> 2] | 0) == (b | 0)) {
if ((c[d + 4 >> 2] | 0) != (e | 0)) {
i = g;
return
}
h = d + 28 | 0;
if ((c[h >> 2] | 0) == 1) {
i = g;
return
}
c[h >> 2] = f;
i = g;
return
}
if ((c[d >> 2] | 0) != (b | 0)) {
i = g;
return
}
if ((c[d + 16 >> 2] | 0) != (e | 0) ? (b = d + 20 | 0, (c[b >> 2] | 0) != (e | 0)) : 0) {
c[d + 32 >> 2] = f;
c[b >> 2] = e;
e = d + 40 | 0;
c[e >> 2] = (c[e >> 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;
i = g;
return
}
if ((f | 0) != 1) {
i = g;
return
}
c[d + 32 >> 2] = 1;
i = g;
return
}
function mn(b,
d, e, f, g, h) {
b = b | 0;
d = d | 0;
e = e | 0;
f = f | 0;
g = g | 0;
h = h | 0;
var j = 0,
k = 0,
l = 0;
j = i;
if ((b | 0) != (c[d + 8 >> 2] | 0)) {
k = c[b + 8 >> 2] | 0;
mb[c[(c[k >> 2] | 0) + 20 >> 2] & 7](k, d, e, f, g, h);
i = j;
return
}
a[d + 53 >> 0] = 1;
if ((c[d + 4 >> 2] | 0) != (f | 0)) {
i = j;
return
}
a[d + 52 >> 0] = 1;
f = d + 16 | 0;
h = c[f >> 2] | 0;
if ((h | 0) == 0) {
c[f >> 2] = e;
c[d + 24 >> 2] = g;
c[d + 36 >> 2] = 1;
if (!((g | 0) == 1 ? (c[d + 48 >> 2] | 0) == 1 : 0)) {
i = j;
return
}
a[d + 54 >> 0] = 1;
i = j;
return
}
if ((h | 0) != (e | 0)) {
e = d + 36 | 0;
c[e >> 2] = (c[e >> 2] | 0) + 1;
a[d + 54 >> 0] = 1;
i = j;
return
}
e = d + 24 | 0;
h = c[e >> 2] | 0;
if ((h | 0) == 2) {
c[e >> 2] = g;
l = g
} else
l = h;
if (!((l | 0) ==
1 ? (c[d + 48 >> 2] | 0) == 1 : 0)) {
i = j;
return
}
a[d + 54 >> 0] = 1;
i = j;
return
}
function nn(b, d, e, f, g, h) {
b = b | 0;
d = d | 0;
e = e | 0;
f = f | 0;
g = g | 0;
h = h | 0;
var j = 0;
h = i;
if ((c[d + 8 >> 2] | 0) != (b | 0)) {
i = h;
return
}
a[d + 53 >> 0] = 1;
if ((c[d + 4 >> 2] | 0) != (f | 0)) {
i = h;
return
}
a[d + 52 >> 0] = 1;
f = d + 16 | 0;
b = c[f >> 2] | 0;
if ((b | 0) == 0) {
c[f >> 2] = e;
c[d + 24 >> 2] = g;
c[d + 36 >> 2] = 1;
if (!((g | 0) == 1 ? (c[d + 48 >> 2] | 0) == 1 : 0)) {
i = h;
return
}
a[d + 54 >> 0] = 1;
i = h;
return
}
if ((b | 0) != (e | 0)) {
e = d + 36 | 0;
c[e >> 2] = (c[e >> 2] | 0) + 1;
a[d + 54 >> 0] = 1;
i = h;
return
}
e = d + 24 | 0;
b = c[e >> 2] | 0;
if ((b | 0) == 2) {
c[e >> 2] = g;
j = g
} else
j = b;
if (!((j |
0) == 1 ? (c[d + 48 >> 2] | 0) == 1 : 0)) {
i = h;
return
}
a[d + 54 >> 0] = 1;
i = h;
return
}
function on(a) {
a = a | 0;
var b = 0,
d = 0,
e = 0,
f = 0,
g = 0,
h = 0,
j = 0,
k = 0,
l = 0,
m = 0,
n = 0,
o = 0,
p = 0,
q = 0,
r = 0,
s = 0,
t = 0,
u = 0,
v = 0,
w = 0,
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,
Ea = 0,
Fa = 0,
Ha = 0,
Ia = 0,
Ja = 0,
Ka = 0,
La = 0;
b = i;
do if (a >>> 0 < 245) {
if (a >>> 0 <
11)
d = 16;
else
d = a + 11 & -8;
e = d >>> 3;
f = c[2284] | 0;
g = f >>> e;
if ((g & 3 | 0) != 0) {
h = (g & 1 ^ 1) + e | 0;
j = h << 1;
k = 9176 + (j << 2) | 0;
l = 9176 + (j + 2 << 2) | 0;
j = c[l >> 2] | 0;
m = j + 8 | 0;
n = c[m >> 2] | 0;
do if ((k | 0) != (n | 0)) {
if (n >>> 0 < (c[9152 >> 2] | 0) >>> 0)
Ua();
o = n + 12 | 0;
if ((c[o >> 2] | 0) == (j | 0)) {
c[o >> 2] = k;
c[l >> 2] = n;
break
} else
Ua()
} else
c[2284] = f & ~(1 << h);
while (0);
n = h << 3;
c[j + 4 >> 2] = n | 3;
l = j + (n | 4) | 0;
c[l >> 2] = c[l >> 2] | 1;
p = m;
i = b;
return p | 0
}
if (d >>> 0 > (c[9144 >> 2] | 0) >>> 0) {
if ((g | 0) != 0) {
l = 2 << e;
n = g << e & (l | 0 - l);
l = (n & 0 - n) + -1 | 0;
n = l >>> 12 & 16;
k = l >>> n;
l = k >>> 5 & 8;
o = k >>> l;
k = o >>> 2 &
4;
q = o >>> k;
o = q >>> 1 & 2;
r = q >>> o;
q = r >>> 1 & 1;
s = (l | n | k | o | q) + (r >>> q) | 0;
q = s << 1;
r = 9176 + (q << 2) | 0;
o = 9176 + (q + 2 << 2) | 0;
q = c[o >> 2] | 0;
k = q + 8 | 0;
n = c[k >> 2] | 0;
do if ((r | 0) != (n | 0)) {
if (n >>> 0 < (c[9152 >> 2] | 0) >>> 0)
Ua();
l = n + 12 | 0;
if ((c[l >> 2] | 0) == (q | 0)) {
c[l >> 2] = r;
c[o >> 2] = n;
break
} else
Ua()
} else
c[2284] = f & ~(1 << s);
while (0);
f = s << 3;
n = f - d | 0;
c[q + 4 >> 2] = d | 3;
o = q + d | 0;
c[q + (d | 4) >> 2] = n | 1;
c[q + f >> 2] = n;
f = c[9144 >> 2] | 0;
if ((f | 0) != 0) {
r = c[9156 >> 2] | 0;
e = f >>> 3;
f = e << 1;
g = 9176 + (f << 2) | 0;
m = c[2284] | 0;
j = 1 << e;
if ((m & j | 0) != 0) {
e = 9176 + (f + 2 << 2) | 0;
h = c[e >> 2] | 0;
if (h >>> 0 <
(c[9152 >> 2] | 0) >>> 0)
Ua();
else {
t = e;
u = h
}
} else {
c[2284] = m | j;
t = 9176 + (f + 2 << 2) | 0;
u = g
}
c[t >> 2] = r;
c[u + 12 >> 2] = r;
c[r + 8 >> 2] = u;
c[r + 12 >> 2] = g
}
c[9144 >> 2] = n;
c[9156 >> 2] = o;
p = k;
i = b;
return p | 0
}
o = c[9140 >> 2] | 0;
if ((o | 0) != 0) {
n = (o & 0 - o) + -1 | 0;
o = n >>> 12 & 16;
g = n >>> o;
n = g >>> 5 & 8;
r = g >>> n;
g = r >>> 2 & 4;
f = r >>> g;
r = f >>> 1 & 2;
j = f >>> r;
f = j >>> 1 & 1;
m = c[9440 + ((n | o | g | r | f) + (j >>> f) << 2) >> 2] | 0;
f = (c[m + 4 >> 2] & -8) - d | 0;
j = m;
r = m;
while (1) {
m = c[j + 16 >> 2] | 0;
if ((m | 0) == 0) {
g = c[j + 20 >> 2] | 0;
if ((g | 0) == 0)
break;
else
v = g
} else
v = m;
m = (c[v + 4 >> 2] & -8) - d | 0;
g = m >>> 0 < f >>> 0;
f = g ? m : f;
j = v;
r = g ? v : r
}
j = c[9152 >> 2] | 0;
if (r >>> 0 < j >>> 0)
Ua();
k = r + d | 0;
if (!(r >>> 0 < k >>> 0))
Ua();
q = c[r + 24 >> 2] | 0;
s = c[r + 12 >> 2] | 0;
do if ((s | 0) == (r | 0)) {
g = r + 20 | 0;
m = c[g >> 2] | 0;
if ((m | 0) == 0) {
o = r + 16 | 0;
n = c[o >> 2] | 0;
if ((n | 0) == 0) {
w = 0;
break
} else {
x = n;
y = o
}
} else {
x = m;
y = g
}
while (1) {
g = x + 20 | 0;
m = c[g >> 2] | 0;
if ((m | 0) != 0) {
x = m;
y = g;
continue
}
g = x + 16 | 0;
m = c[g >> 2] | 0;
if ((m | 0) == 0)
break;
else {
x = m;
y = g
}
}
if (y >>> 0 < j >>> 0)
Ua();
else {
c[y >> 2] = 0;
w = x;
break
}
} else {
g = c[r + 8 >> 2] | 0;
if (g >>> 0 < j >>> 0)
Ua();
m = g + 12 | 0;
if ((c[m >> 2] | 0) != (r | 0))
Ua();
o = s + 8 | 0;
if ((c[o >> 2] | 0) == (r | 0)) {
c[m >> 2] =
s;
c[o >> 2] = g;
w = s;
break
} else
Ua()
}
while (0);
do if ((q | 0) != 0) {
s = c[r + 28 >> 2] | 0;
j = 9440 + (s << 2) | 0;
if ((r | 0) == (c[j >> 2] | 0)) {
c[j >> 2] = w;
if ((w | 0) == 0) {
c[9140 >> 2] = c[9140 >> 2] & ~(1 << s);
break
}
} else {
if (q >>> 0 < (c[9152 >> 2] | 0) >>> 0)
Ua();
s = q + 16 | 0;
if ((c[s >> 2] | 0) == (r | 0))
c[s >> 2] = w;
else
c[q + 20 >> 2] = w;
if ((w | 0) == 0)
break
}
if (w >>> 0 < (c[9152 >> 2] | 0) >>> 0)
Ua();
c[w + 24 >> 2] = q;
s = c[r + 16 >> 2] | 0;
do if ((s | 0) != 0)
if (s >>> 0 < (c[9152 >> 2] | 0) >>> 0)
Ua();
else {
c[w + 16 >> 2] = s;
c[s + 24 >> 2] = w;
break
}
while (0);
s = c[r + 20 >> 2] | 0;
if ((s | 0) != 0)
if (s >>> 0 < (c[9152 >> 2] | 0) >>> 0)
Ua();
else {
c[w + 20 >> 2] = s;
c[s + 24 >> 2] = w;
break
}
}
while (0);
if (f >>> 0 < 16) {
q = f + d | 0;
c[r + 4 >> 2] = q | 3;
s = r + (q + 4) | 0;
c[s >> 2] = c[s >> 2] | 1
} else {
c[r + 4 >> 2] = d | 3;
c[r + (d | 4) >> 2] = f | 1;
c[r + (f + d) >> 2] = f;
s = c[9144 >> 2] | 0;
if ((s | 0) != 0) {
q = c[9156 >> 2] | 0;
j = s >>> 3;
s = j << 1;
g = 9176 + (s << 2) | 0;
o = c[2284] | 0;
m = 1 << j;
if ((o & m | 0) != 0) {
j = 9176 + (s + 2 << 2) | 0;
n = c[j >> 2] | 0;
if (n >>> 0 < (c[9152 >> 2] | 0) >>> 0)
Ua();
else {
z = j;
A = n
}
} else {
c[2284] = o | m;
z = 9176 + (s + 2 << 2) | 0;
A = g
}
c[z >> 2] = q;
c[A + 12 >> 2] = q;
c[q + 8 >> 2] = A;
c[q + 12 >> 2] = g
}
c[9144 >> 2] = f;
c[9156 >> 2] = k
}
p = r + 8 | 0;
i = b;
return p | 0
} else
B = d
} else
B =
d
} else if (!(a >>> 0 > 4294967231)) {
g = a + 11 | 0;
q = g & -8;
s = c[9140 >> 2] | 0;
if ((s | 0) != 0) {
m = 0 - q | 0;
o = g >>> 8;
if ((o | 0) != 0)
if (q >>> 0 > 16777215)
C = 31;
else {
g = (o + 1048320 | 0) >>> 16 & 8;
n = o << g;
o = (n + 520192 | 0) >>> 16 & 4;
j = n << o;
n = (j + 245760 | 0) >>> 16 & 2;
h = 14 - (o | g | n) + (j << n >>> 15) | 0;
C = q >>> (h + 7 | 0) & 1 | h << 1
}
else
C = 0;
h = c[9440 + (C << 2) >> 2] | 0;
a:
do if ((h | 0) == 0) {
D = m;
E = 0;
F = 0
} else {
if ((C | 0) == 31)
G = 0;
else
G = 25 - (C >>> 1) | 0;
n = m;
j = 0;
g = q << G;
o = h;
e = 0;
while (1) {
l = c[o + 4 >> 2] & -8;
H = l - q | 0;
if (H >>> 0 < n >>> 0)
if ((l | 0) == (q | 0)) {
D = H;
E = o;
F = o;
break a
} else {
I = H;
J = o
}
else {
I = n;
J = e
}
H = c[o +
20 >> 2] | 0;
o = c[o + (g >>> 31 << 2) + 16 >> 2] | 0;
l = (H | 0) == 0 | (H | 0) == (o | 0) ? j : H;
if ((o | 0) == 0) {
D = I;
E = l;
F = J;
break
} else {
n = I;
j = l;
g = g << 1;
e = J
}
}
}
while (0);
if ((E | 0) == 0 & (F | 0) == 0) {
h = 2 << C;
m = s & (h | 0 - h);
if ((m | 0) == 0) {
B = q;
break
}
h = (m & 0 - m) + -1 | 0;
m = h >>> 12 & 16;
r = h >>> m;
h = r >>> 5 & 8;
k = r >>> h;
r = k >>> 2 & 4;
f = k >>> r;
k = f >>> 1 & 2;
e = f >>> k;
f = e >>> 1 & 1;
K = c[9440 + ((h | m | r | k | f) + (e >>> f) << 2) >> 2] | 0
} else
K = E;
if ((K | 0) == 0) {
L = D;
M = F
} else {
f = D;
e = K;
k = F;
while (1) {
r = (c[e + 4 >> 2] & -8) - q | 0;
m = r >>> 0 < f >>> 0;
h = m ? r : f;
r = m ? e : k;
m = c[e + 16 >> 2] | 0;
if ((m | 0) != 0) {
f = h;
e = m;
k = r;
continue
}
e = c[e + 20 >> 2] |
0;
if ((e | 0) == 0) {
L = h;
M = r;
break
} else {
f = h;
k = r
}
}
}
if ((M | 0) != 0 ? L >>> 0 < ((c[9144 >> 2] | 0) - q | 0) >>> 0 : 0) {
k = c[9152 >> 2] | 0;
if (M >>> 0 < k >>> 0)
Ua();
f = M + q | 0;
if (!(M >>> 0 < f >>> 0))
Ua();
e = c[M + 24 >> 2] | 0;
s = c[M + 12 >> 2] | 0;
do if ((s | 0) == (M | 0)) {
r = M + 20 | 0;
h = c[r >> 2] | 0;
if ((h | 0) == 0) {
m = M + 16 | 0;
g = c[m >> 2] | 0;
if ((g | 0) == 0) {
N = 0;
break
} else {
O = g;
P = m
}
} else {
O = h;
P = r
}
while (1) {
r = O + 20 | 0;
h = c[r >> 2] | 0;
if ((h | 0) != 0) {
O = h;
P = r;
continue
}
r = O + 16 | 0;
h = c[r >> 2] | 0;
if ((h | 0) == 0)
break;
else {
O = h;
P = r
}
}
if (P >>> 0 < k >>> 0)
Ua();
else {
c[P >> 2] = 0;
N = O;
break
}
} else {
r = c[M + 8 >> 2] | 0;
if (r >>> 0 < k >>>
0)
Ua();
h = r + 12 | 0;
if ((c[h >> 2] | 0) != (M | 0))
Ua();
m = s + 8 | 0;
if ((c[m >> 2] | 0) == (M | 0)) {
c[h >> 2] = s;
c[m >> 2] = r;
N = s;
break
} else
Ua()
}
while (0);
do if ((e | 0) != 0) {
s = c[M + 28 >> 2] | 0;
k = 9440 + (s << 2) | 0;
if ((M | 0) == (c[k >> 2] | 0)) {
c[k >> 2] = N;
if ((N | 0) == 0) {
c[9140 >> 2] = c[9140 >> 2] & ~(1 << s);
break
}
} else {
if (e >>> 0 < (c[9152 >> 2] | 0) >>> 0)
Ua();
s = e + 16 | 0;
if ((c[s >> 2] | 0) == (M | 0))
c[s >> 2] = N;
else
c[e + 20 >> 2] = N;
if ((N | 0) == 0)
break
}
if (N >>> 0 < (c[9152 >> 2] | 0) >>> 0)
Ua();
c[N + 24 >> 2] = e;
s = c[M + 16 >> 2] | 0;
do if ((s | 0) != 0)
if (s >>> 0 < (c[9152 >> 2] | 0) >>> 0)
Ua();
else {
c[N + 16 >> 2] = s;
c[s + 24 >>
2] = N;
break
}
while (0);
s = c[M + 20 >> 2] | 0;
if ((s | 0) != 0)
if (s >>> 0 < (c[9152 >> 2] | 0) >>> 0)
Ua();
else {
c[N + 20 >> 2] = s;
c[s + 24 >> 2] = N;
break
}
}
while (0);
b:
do if (!(L >>> 0 < 16)) {
c[M + 4 >> 2] = q | 3;
c[M + (q | 4) >> 2] = L | 1;
c[M + (L + q) >> 2] = L;
e = L >>> 3;
if (L >>> 0 < 256) {
s = e << 1;
k = 9176 + (s << 2) | 0;
r = c[2284] | 0;
m = 1 << e;
do if ((r & m | 0) == 0) {
c[2284] = r | m;
Q = 9176 + (s + 2 << 2) | 0;
R = k
} else {
e = 9176 + (s + 2 << 2) | 0;
h = c[e >> 2] | 0;
if (!(h >>> 0 < (c[9152 >> 2] | 0) >>> 0)) {
Q = e;
R = h;
break
}
Ua()
}
while (0);
c[Q >> 2] = f;
c[R + 12 >> 2] = f;
c[M + (q + 8) >> 2] = R;
c[M + (q + 12) >> 2] = k;
break
}
s = L >>> 8;
if ((s | 0) != 0)
if (L >>> 0 > 16777215)
S =
31;
else {
m = (s + 1048320 | 0) >>> 16 & 8;
r = s << m;
s = (r + 520192 | 0) >>> 16 & 4;
h = r << s;
r = (h + 245760 | 0) >>> 16 & 2;
e = 14 - (s | m | r) + (h << r >>> 15) | 0;
S = L >>> (e + 7 | 0) & 1 | e << 1
}
else
S = 0;
e = 9440 + (S << 2) | 0;
c[M + (q + 28) >> 2] = S;
c[M + (q + 20) >> 2] = 0;
c[M + (q + 16) >> 2] = 0;
r = c[9140 >> 2] | 0;
h = 1 << S;
if ((r & h | 0) == 0) {
c[9140 >> 2] = r | h;
c[e >> 2] = f;
c[M + (q + 24) >> 2] = e;
c[M + (q + 12) >> 2] = f;
c[M + (q + 8) >> 2] = f;
break
}
h = c[e >> 2] | 0;
if ((S | 0) == 31)
T = 0;
else
T = 25 - (S >>> 1) | 0;
c:
do if ((c[h + 4 >> 2] & -8 | 0) != (L | 0)) {
e = L << T;
r = h;
while (1) {
U = r + (e >>> 31 << 2) + 16 | 0;
m = c[U >> 2] | 0;
if ((m | 0) == 0)
break;
if ((c[m + 4 >> 2] & -8 |
0) == (L | 0)) {
V = m;
break c
} else {
e = e << 1;
r = m
}
}
if (U >>> 0 < (c[9152 >> 2] | 0) >>> 0)
Ua();
else {
c[U >> 2] = f;
c[M + (q + 24) >> 2] = r;
c[M + (q + 12) >> 2] = f;
c[M + (q + 8) >> 2] = f;
break b
}
} else
V = h;
while (0);
h = V + 8 | 0;
k = c[h >> 2] | 0;
e = c[9152 >> 2] | 0;
if (V >>> 0 < e >>> 0)
Ua();
if (k >>> 0 < e >>> 0)
Ua();
else {
c[k + 12 >> 2] = f;
c[h >> 2] = f;
c[M + (q + 8) >> 2] = k;
c[M + (q + 12) >> 2] = V;
c[M + (q + 24) >> 2] = 0;
break
}
} else {
k = L + q | 0;
c[M + 4 >> 2] = k | 3;
h = M + (k + 4) | 0;
c[h >> 2] = c[h >> 2] | 1
}
while (0);
p = M + 8 | 0;
i = b;
return p | 0
} else
B = q
} else
B = q
} else
B = -1;
while (0);
M = c[9144 >> 2] | 0;
if (!(B >>> 0 > M >>> 0)) {
L = M - B | 0;
V = c[9156 >>
2] | 0;
if (L >>> 0 > 15) {
c[9156 >> 2] = V + B;
c[9144 >> 2] = L;
c[V + (B + 4) >> 2] = L | 1;
c[V + M >> 2] = L;
c[V + 4 >> 2] = B | 3
} else {
c[9144 >> 2] = 0;
c[9156 >> 2] = 0;
c[V + 4 >> 2] = M | 3;
L = V + (M + 4) | 0;
c[L >> 2] = c[L >> 2] | 1
}
p = V + 8 | 0;
i = b;
return p | 0
}
V = c[9148 >> 2] | 0;
if (B >>> 0 < V >>> 0) {
L = V - B | 0;
c[9148 >> 2] = L;
V = c[9160 >> 2] | 0;
c[9160 >> 2] = V + B;
c[V + (B + 4) >> 2] = L | 1;
c[V + 4 >> 2] = B | 3;
p = V + 8 | 0;
i = b;
return p | 0
}
do if ((c[2402] | 0) == 0) {
V = Ta(30) | 0;
if ((V + -1 & V | 0) == 0) {
c[9616 >> 2] = V;
c[9612 >> 2] = V;
c[9620 >> 2] = -1;
c[9624 >> 2] = -1;
c[9628 >> 2] = 0;
c[9580 >> 2] = 0;
c[2402] = (Da(0) | 0) & -16 ^ 1431655768;
break
} else
Ua()
}
while (0);
V = B + 48 | 0;
L = c[9616 >> 2] | 0;
M = B + 47 | 0;
U = L + M | 0;
T = 0 - L | 0;
L = U & T;
if (!(L >>> 0 > B >>> 0)) {
p = 0;
i = b;
return p | 0
}
S = c[9576 >> 2] | 0;
if ((S | 0) != 0 ? (R = c[9568 >> 2] | 0, Q = R + L | 0, Q >>> 0 <= R >>> 0 | Q >>> 0 > S >>> 0) : 0) {
p = 0;
i = b;
return p | 0
}
d:
do if ((c[9580 >> 2] & 4 | 0) == 0) {
S = c[9160 >> 2] | 0;
e:
do if ((S | 0) != 0) {
Q = 9584 | 0;
while (1) {
R = c[Q >> 2] | 0;
if (!(R >>> 0 > S >>> 0) ? (W = Q + 4 | 0, (R + (c[W >> 2] | 0) | 0) >>> 0 > S >>> 0) : 0)
break;
R = c[Q + 8 >> 2] | 0;
if ((R | 0) == 0) {
X = 182;
break e
} else
Q = R
}
if ((Q | 0) != 0) {
R = U - (c[9148 >> 2] | 0) & T;
if (R >>> 0 < 2147483647) {
N = Ga(R | 0) | 0;
O = (N | 0) == ((c[Q >> 2] | 0) + (c[W >> 2] | 0) | 0);
Y = N;
Z = R;
_ = O ? N : -1;
$ = O ? R : 0;
X = 191
} else
aa = 0
} else
X = 182
} else
X = 182;
while (0);
do if ((X | 0) == 182) {
S = Ga(0) | 0;
if ((S | 0) != (-1 | 0)) {
q = S;
R = c[9612 >> 2] | 0;
O = R + -1 | 0;
if ((O & q | 0) == 0)
ba = L;
else
ba = L - q + (O + q & 0 - R) | 0;
R = c[9568 >> 2] | 0;
q = R + ba | 0;
if (ba >>> 0 > B >>> 0 & ba >>> 0 < 2147483647) {
O = c[9576 >> 2] | 0;
if ((O | 0) != 0 ? q >>> 0 <= R >>> 0 | q >>> 0 > O >>> 0 : 0) {
aa = 0;
break
}
O = Ga(ba | 0) | 0;
q = (O | 0) == (S | 0);
Y = O;
Z = ba;
_ = q ? S : -1;
$ = q ? ba : 0;
X = 191
} else
aa = 0
} else
aa = 0
}
while (0);
f:
do if ((X | 0) == 191) {
q = 0 - Z | 0;
if ((_ | 0) != (-1 | 0)) {
ca = _;
da = $;
X = 202;
break d
}
do if ((Y | 0) != (-1 | 0) & Z >>> 0 < 2147483647 &
Z >>> 0 < V >>> 0 ? (S = c[9616 >> 2] | 0, O = M - Z + S & 0 - S, O >>> 0 < 2147483647) : 0)
if ((Ga(O | 0) | 0) == (-1 | 0)) {
Ga(q | 0) | 0;
aa = $;
break f
} else {
ea = O + Z | 0;
break
}
else
ea = Z;
while (0);
if ((Y | 0) == (-1 | 0))
aa = $;
else {
ca = Y;
da = ea;
X = 202;
break d
}
}
while (0);
c[9580 >> 2] = c[9580 >> 2] | 4;
fa = aa;
X = 199
} else {
fa = 0;
X = 199
}
while (0);
if ((((X | 0) == 199 ? L >>> 0 < 2147483647 : 0) ? (aa = Ga(L | 0) | 0, L = Ga(0) | 0, (L | 0) != (-1 | 0) & (aa | 0) != (-1 | 0) & aa >>> 0 < L >>> 0) : 0) ? (ea = L - aa | 0, L = ea >>> 0 > (B + 40 | 0) >>> 0, L) : 0) {
ca = aa;
da = L ? ea : fa;
X = 202
}
if ((X | 0) == 202) {
fa = (c[9568 >> 2] | 0) + da | 0;
c[9568 >> 2] = fa;
if (fa >>> 0 > (c[9572 >>
2] | 0) >>> 0)
c[9572 >> 2] = fa;
fa = c[9160 >> 2] | 0;
g:
do if ((fa | 0) != 0) {
ea = 9584 | 0;
while (1) {
ga = c[ea >> 2] | 0;
ha = ea + 4 | 0;
ia = c[ha >> 2] | 0;
if ((ca | 0) == (ga + ia | 0)) {
X = 214;
break
}
L = c[ea + 8 >> 2] | 0;
if ((L | 0) == 0)
break;
else
ea = L
}
if (((X | 0) == 214 ? (c[ea + 12 >> 2] & 8 | 0) == 0 : 0) ? fa >>> 0 >= ga >>> 0 & fa >>> 0 < ca >>> 0 : 0) {
c[ha >> 2] = ia + da;
L = (c[9148 >> 2] | 0) + da | 0;
aa = fa + 8 | 0;
if ((aa & 7 | 0) == 0)
ja = 0;
else
ja = 0 - aa & 7;
aa = L - ja | 0;
c[9160 >> 2] = fa + ja;
c[9148 >> 2] = aa;
c[fa + (ja + 4) >> 2] = aa | 1;
c[fa + (L + 4) >> 2] = 40;
c[9164 >> 2] = c[9624 >> 2];
break
}
if (ca >>> 0 < (c[9152 >> 2] | 0) >>> 0)
c[9152 >> 2] = ca;
L = ca +
da | 0;
aa = 9584 | 0;
while (1) {
if ((c[aa >> 2] | 0) == (L | 0)) {
X = 224;
break
}
Y = c[aa + 8 >> 2] | 0;
if ((Y | 0) == 0)
break;
else
aa = Y
}
if ((X | 0) == 224 ? (c[aa + 12 >> 2] & 8 | 0) == 0 : 0) {
c[aa >> 2] = ca;
L = aa + 4 | 0;
c[L >> 2] = (c[L >> 2] | 0) + da;
L = ca + 8 | 0;
if ((L & 7 | 0) == 0)
ka = 0;
else
ka = 0 - L & 7;
L = ca + (da + 8) | 0;
if ((L & 7 | 0) == 0)
la = 0;
else
la = 0 - L & 7;
L = ca + (la + da) | 0;
ea = ka + B | 0;
Y = ca + ea | 0;
$ = L - (ca + ka) - B | 0;
c[ca + (ka + 4) >> 2] = B | 3;
h:
do if ((L | 0) != (c[9160 >> 2] | 0)) {
if ((L | 0) == (c[9156 >> 2] | 0)) {
Z = (c[9144 >> 2] | 0) + $ | 0;
c[9144 >> 2] = Z;
c[9156 >> 2] = Y;
c[ca + (ea + 4) >> 2] = Z | 1;
c[ca + (Z + ea) >> 2] = Z;
break
}
Z = da + 4 | 0;
M = c[ca + (Z + la) >> 2] | 0;
if ((M & 3 | 0) == 1) {
V = M & -8;
_ = M >>> 3;
i:
do if (!(M >>> 0 < 256)) {
ba = c[ca + ((la | 24) + da) >> 2] | 0;
W = c[ca + (da + 12 + la) >> 2] | 0;
do if ((W | 0) == (L | 0)) {
T = la | 16;
U = ca + (Z + T) | 0;
q = c[U >> 2] | 0;
if ((q | 0) == 0) {
Q = ca + (T + da) | 0;
T = c[Q >> 2] | 0;
if ((T | 0) == 0) {
ma = 0;
break
} else {
na = T;
oa = Q
}
} else {
na = q;
oa = U
}
while (1) {
U = na + 20 | 0;
q = c[U >> 2] | 0;
if ((q | 0) != 0) {
na = q;
oa = U;
continue
}
U = na + 16 | 0;
q = c[U >> 2] | 0;
if ((q | 0) == 0)
break;
else {
na = q;
oa = U
}
}
if (oa >>> 0 < (c[9152 >> 2] | 0) >>> 0)
Ua();
else {
c[oa >> 2] = 0;
ma = na;
break
}
} else {
U = c[ca + ((la | 8) + da) >> 2] | 0;
if (U >>> 0 < (c[9152 >> 2] |
0) >>> 0)
Ua();
q = U + 12 | 0;
if ((c[q >> 2] | 0) != (L | 0))
Ua();
Q = W + 8 | 0;
if ((c[Q >> 2] | 0) == (L | 0)) {
c[q >> 2] = W;
c[Q >> 2] = U;
ma = W;
break
} else
Ua()
}
while (0);
if ((ba | 0) == 0)
break;
W = c[ca + (da + 28 + la) >> 2] | 0;
r = 9440 + (W << 2) | 0;
do if ((L | 0) != (c[r >> 2] | 0)) {
if (ba >>> 0 < (c[9152 >> 2] | 0) >>> 0)
Ua();
U = ba + 16 | 0;
if ((c[U >> 2] | 0) == (L | 0))
c[U >> 2] = ma;
else
c[ba + 20 >> 2] = ma;
if ((ma | 0) == 0)
break i
} else {
c[r >> 2] = ma;
if ((ma | 0) != 0)
break;
c[9140 >> 2] = c[9140 >> 2] & ~(1 << W);
break i
}
while (0);
if (ma >>> 0 < (c[9152 >> 2] | 0) >>> 0)
Ua();
c[ma + 24 >> 2] = ba;
W = la | 16;
r = c[ca + (W + da) >> 2] | 0;
do if ((r | 0) !=
0)
if (r >>> 0 < (c[9152 >> 2] | 0) >>> 0)
Ua();
else {
c[ma + 16 >> 2] = r;
c[r + 24 >> 2] = ma;
break
}
while (0);
r = c[ca + (Z + W) >> 2] | 0;
if ((r | 0) == 0)
break;
if (r >>> 0 < (c[9152 >> 2] | 0) >>> 0)
Ua();
else {
c[ma + 20 >> 2] = r;
c[r + 24 >> 2] = ma;
break
}
} else {
r = c[ca + ((la | 8) + da) >> 2] | 0;
ba = c[ca + (da + 12 + la) >> 2] | 0;
U = 9176 + (_ << 1 << 2) | 0;
do if ((r | 0) != (U | 0)) {
if (r >>> 0 < (c[9152 >> 2] | 0) >>> 0)
Ua();
if ((c[r + 12 >> 2] | 0) == (L | 0))
break;
Ua()
}
while (0);
if ((ba | 0) == (r | 0)) {
c[2284] = c[2284] & ~(1 << _);
break
}
do if ((ba | 0) == (U | 0))
pa = ba + 8 | 0;
else {
if (ba >>> 0 < (c[9152 >> 2] | 0) >>> 0)
Ua();
W = ba + 8 | 0;
if ((c[W >> 2] |
0) == (L | 0)) {
pa = W;
break
}
Ua()
}
while (0);
c[r + 12 >> 2] = ba;
c[pa >> 2] = r
}
while (0);
qa = ca + ((V | la) + da) | 0;
ra = V + $ | 0
} else {
qa = L;
ra = $
}
_ = qa + 4 | 0;
c[_ >> 2] = c[_ >> 2] & -2;
c[ca + (ea + 4) >> 2] = ra | 1;
c[ca + (ra + ea) >> 2] = ra;
_ = ra >>> 3;
if (ra >>> 0 < 256) {
Z = _ << 1;
M = 9176 + (Z << 2) | 0;
U = c[2284] | 0;
W = 1 << _;
do if ((U & W | 0) == 0) {
c[2284] = U | W;
sa = 9176 + (Z + 2 << 2) | 0;
ta = M
} else {
_ = 9176 + (Z + 2 << 2) | 0;
Q = c[_ >> 2] | 0;
if (!(Q >>> 0 < (c[9152 >> 2] | 0) >>> 0)) {
sa = _;
ta = Q;
break
}
Ua()
}
while (0);
c[sa >> 2] = Y;
c[ta + 12 >> 2] = Y;
c[ca + (ea + 8) >> 2] = ta;
c[ca + (ea + 12) >> 2] = M;
break
}
Z = ra >>> 8;
do if ((Z | 0) == 0)
ua = 0;
else {
if (ra >>>
0 > 16777215) {
ua = 31;
break
}
W = (Z + 1048320 | 0) >>> 16 & 8;
U = Z << W;
V = (U + 520192 | 0) >>> 16 & 4;
Q = U << V;
U = (Q + 245760 | 0) >>> 16 & 2;
_ = 14 - (V | W | U) + (Q << U >>> 15) | 0;
ua = ra >>> (_ + 7 | 0) & 1 | _ << 1
}
while (0);
Z = 9440 + (ua << 2) | 0;
c[ca + (ea + 28) >> 2] = ua;
c[ca + (ea + 20) >> 2] = 0;
c[ca + (ea + 16) >> 2] = 0;
M = c[9140 >> 2] | 0;
_ = 1 << ua;
if ((M & _ | 0) == 0) {
c[9140 >> 2] = M | _;
c[Z >> 2] = Y;
c[ca + (ea + 24) >> 2] = Z;
c[ca + (ea + 12) >> 2] = Y;
c[ca + (ea + 8) >> 2] = Y;
break
}
_ = c[Z >> 2] | 0;
if ((ua | 0) == 31)
va = 0;
else
va = 25 - (ua >>> 1) | 0;
j:
do if ((c[_ + 4 >> 2] & -8 | 0) != (ra | 0)) {
Z = ra << va;
M = _;
while (1) {
wa = M + (Z >>> 31 << 2) + 16 | 0;
U = c[wa >>
2] | 0;
if ((U | 0) == 0)
break;
if ((c[U + 4 >> 2] & -8 | 0) == (ra | 0)) {
xa = U;
break j
} else {
Z = Z << 1;
M = U
}
}
if (wa >>> 0 < (c[9152 >> 2] | 0) >>> 0)
Ua();
else {
c[wa >> 2] = Y;
c[ca + (ea + 24) >> 2] = M;
c[ca + (ea + 12) >> 2] = Y;
c[ca + (ea + 8) >> 2] = Y;
break h
}
} else
xa = _;
while (0);
_ = xa + 8 | 0;
Z = c[_ >> 2] | 0;
r = c[9152 >> 2] | 0;
if (xa >>> 0 < r >>> 0)
Ua();
if (Z >>> 0 < r >>> 0)
Ua();
else {
c[Z + 12 >> 2] = Y;
c[_ >> 2] = Y;
c[ca + (ea + 8) >> 2] = Z;
c[ca + (ea + 12) >> 2] = xa;
c[ca + (ea + 24) >> 2] = 0;
break
}
} else {
Z = (c[9148 >> 2] | 0) + $ | 0;
c[9148 >> 2] = Z;
c[9160 >> 2] = Y;
c[ca + (ea + 4) >> 2] = Z | 1
}
while (0);
p = ca + (ka | 8) | 0;
i = b;
return p | 0
}
ea = 9584 |
0;
while (1) {
ya = c[ea >> 2] | 0;
if (!(ya >>> 0 > fa >>> 0) ? (za = c[ea + 4 >> 2] | 0, Aa = ya + za | 0, Aa >>> 0 > fa >>> 0) : 0)
break;
ea = c[ea + 8 >> 2] | 0
}
ea = ya + (za + -39) | 0;
if ((ea & 7 | 0) == 0)
Ba = 0;
else
Ba = 0 - ea & 7;
ea = ya + (za + -47 + Ba) | 0;
Y = ea >>> 0 < (fa + 16 | 0) >>> 0 ? fa : ea;
ea = Y + 8 | 0;
$ = ca + 8 | 0;
if (($ & 7 | 0) == 0)
Ca = 0;
else
Ca = 0 - $ & 7;
$ = da + -40 - Ca | 0;
c[9160 >> 2] = ca + Ca;
c[9148 >> 2] = $;
c[ca + (Ca + 4) >> 2] = $ | 1;
c[ca + (da + -36) >> 2] = 40;
c[9164 >> 2] = c[9624 >> 2];
c[Y + 4 >> 2] = 27;
c[ea + 0 >> 2] = c[9584 >> 2];
c[ea + 4 >> 2] = c[9588 >> 2];
c[ea + 8 >> 2] = c[9592 >> 2];
c[ea + 12 >> 2] = c[9596 >> 2];
c[9584 >> 2] = ca;
c[9588 >> 2] = da;
c[9596 >> 2] = 0;
c[9592 >> 2] = ea;
ea = Y + 28 | 0;
c[ea >> 2] = 7;
if ((Y + 32 | 0) >>> 0 < Aa >>> 0) {
$ = ea;
do {
ea = $;
$ = $ + 4 | 0;
c[$ >> 2] = 7
} while ((ea + 8 | 0) >>> 0 < Aa >>> 0)
}
if ((Y | 0) != (fa | 0)) {
$ = Y - fa | 0;
ea = fa + ($ + 4) | 0;
c[ea >> 2] = c[ea >> 2] & -2;
c[fa + 4 >> 2] = $ | 1;
c[fa + $ >> 2] = $;
ea = $ >>> 3;
if ($ >>> 0 < 256) {
L = ea << 1;
aa = 9176 + (L << 2) | 0;
Z = c[2284] | 0;
_ = 1 << ea;
do if ((Z & _ | 0) == 0) {
c[2284] = Z | _;
Ea = 9176 + (L + 2 << 2) | 0;
Fa = aa
} else {
ea = 9176 + (L + 2 << 2) | 0;
r = c[ea >> 2] | 0;
if (!(r >>> 0 < (c[9152 >> 2] | 0) >>> 0)) {
Ea = ea;
Fa = r;
break
}
Ua()
}
while (0);
c[Ea >> 2] = fa;
c[Fa + 12 >> 2] = fa;
c[fa + 8 >> 2] = Fa;
c[fa + 12 >> 2] = aa;
break
}
L =
$ >>> 8;
if ((L | 0) != 0)
if ($ >>> 0 > 16777215)
Ha = 31;
else {
_ = (L + 1048320 | 0) >>> 16 & 8;
Z = L << _;
L = (Z + 520192 | 0) >>> 16 & 4;
Y = Z << L;
Z = (Y + 245760 | 0) >>> 16 & 2;
r = 14 - (L | _ | Z) + (Y << Z >>> 15) | 0;
Ha = $ >>> (r + 7 | 0) & 1 | r << 1
}
else
Ha = 0;
r = 9440 + (Ha << 2) | 0;
c[fa + 28 >> 2] = Ha;
c[fa + 20 >> 2] = 0;
c[fa + 16 >> 2] = 0;
Z = c[9140 >> 2] | 0;
Y = 1 << Ha;
if ((Z & Y | 0) == 0) {
c[9140 >> 2] = Z | Y;
c[r >> 2] = fa;
c[fa + 24 >> 2] = r;
c[fa + 12 >> 2] = fa;
c[fa + 8 >> 2] = fa;
break
}
Y = c[r >> 2] | 0;
if ((Ha | 0) == 31)
Ia = 0;
else
Ia = 25 - (Ha >>> 1) | 0;
k:
do if ((c[Y + 4 >> 2] & -8 | 0) != ($ | 0)) {
r = $ << Ia;
Z = Y;
while (1) {
Ja = Z + (r >>> 31 << 2) + 16 | 0;
_ = c[Ja >> 2] | 0;
if ((_ | 0) == 0)
break;
if ((c[_ + 4 >> 2] & -8 | 0) == ($ | 0)) {
Ka = _;
break k
} else {
r = r << 1;
Z = _
}
}
if (Ja >>> 0 < (c[9152 >> 2] | 0) >>> 0)
Ua();
else {
c[Ja >> 2] = fa;
c[fa + 24 >> 2] = Z;
c[fa + 12 >> 2] = fa;
c[fa + 8 >> 2] = fa;
break g
}
} else
Ka = Y;
while (0);
Y = Ka + 8 | 0;
$ = c[Y >> 2] | 0;
aa = c[9152 >> 2] | 0;
if (Ka >>> 0 < aa >>> 0)
Ua();
if ($ >>> 0 < aa >>> 0)
Ua();
else {
c[$ + 12 >> 2] = fa;
c[Y >> 2] = fa;
c[fa + 8 >> 2] = $;
c[fa + 12 >> 2] = Ka;
c[fa + 24 >> 2] = 0;
break
}
}
} else {
$ = c[9152 >> 2] | 0;
if (($ | 0) == 0 | ca >>> 0 < $ >>> 0)
c[9152 >> 2] = ca;
c[9584 >> 2] = ca;
c[9588 >> 2] = da;
c[9596 >> 2] = 0;
c[9172 >> 2] = c[2402];
c[9168 >> 2] = -1;
$ = 0;
do {
Y = $ <<
1;
aa = 9176 + (Y << 2) | 0;
c[9176 + (Y + 3 << 2) >> 2] = aa;
c[9176 + (Y + 2 << 2) >> 2] = aa;
$ = $ + 1 | 0
} while (($ | 0) != 32);
$ = ca + 8 | 0;
if (($ & 7 | 0) == 0)
La = 0;
else
La = 0 - $ & 7;
$ = da + -40 - La | 0;
c[9160 >> 2] = ca + La;
c[9148 >> 2] = $;
c[ca + (La + 4) >> 2] = $ | 1;
c[ca + (da + -36) >> 2] = 40;
c[9164 >> 2] = c[9624 >> 2]
}
while (0);
da = c[9148 >> 2] | 0;
if (da >>> 0 > B >>> 0) {
ca = da - B | 0;
c[9148 >> 2] = ca;
da = c[9160 >> 2] | 0;
c[9160 >> 2] = da + B;
c[da + (B + 4) >> 2] = ca | 1;
c[da + 4 >> 2] = B | 3;
p = da + 8 | 0;
i = b;
return p | 0
}
}
c[(Qa() | 0) >> 2] = 12;
p = 0;
i = b;
return p | 0
}
function pn(a) {
a = a | 0;
var b = 0,
d = 0,
e = 0,
f = 0,
g = 0,
h = 0,
j = 0,
k = 0,
l = 0,
m = 0,
n =
0,
o = 0,
p = 0,
q = 0,
r = 0,
s = 0,
t = 0,
u = 0,
v = 0,
w = 0,
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;
b = i;
if ((a | 0) == 0) {
i = b;
return
}
d = a + -8 | 0;
e = c[9152 >> 2] | 0;
if (d >>> 0 < e >>> 0)
Ua();
f = c[a + -4 >> 2] | 0;
g = f & 3;
if ((g | 0) == 1)
Ua();
h = f & -8;
j = a + (h + -8) | 0;
do if ((f & 1 | 0) == 0) {
k = c[d >> 2] | 0;
if ((g | 0) == 0) {
i = b;
return
}
l = -8 - k | 0;
m = a + l | 0;
n = k + h | 0;
if (m >>> 0 < e >>> 0)
Ua();
if ((m | 0) == (c[9156 >> 2] | 0)) {
o = a + (h + -4) | 0;
if ((c[o >> 2] & 3 | 0) != 3) {
p = m;
q = n;
break
}
c[9144 >> 2] = n;
c[o >> 2] = c[o >> 2] & -2;
c[a + (l + 4) >> 2] = n | 1;
c[j >> 2] = n;
i = b;
return
}
o = k >>> 3;
if (k >>> 0 < 256) {
k = c[a + (l + 8) >>
2] | 0;
r = c[a + (l + 12) >> 2] | 0;
s = 9176 + (o << 1 << 2) | 0;
if ((k | 0) != (s | 0)) {
if (k >>> 0 < e >>> 0)
Ua();
if ((c[k + 12 >> 2] | 0) != (m | 0))
Ua()
}
if ((r | 0) == (k | 0)) {
c[2284] = c[2284] & ~(1 << o);
p = m;
q = n;
break
}
if ((r | 0) != (s | 0)) {
if (r >>> 0 < e >>> 0)
Ua();
s = r + 8 | 0;
if ((c[s >> 2] | 0) == (m | 0))
t = s;
else
Ua()
} else
t = r + 8 | 0;
c[k + 12 >> 2] = r;
c[t >> 2] = k;
p = m;
q = n;
break
}
k = c[a + (l + 24) >> 2] | 0;
r = c[a + (l + 12) >> 2] | 0;
do if ((r | 0) == (m | 0)) {
s = a + (l + 20) | 0;
o = c[s >> 2] | 0;
if ((o | 0) == 0) {
u = a + (l + 16) | 0;
v = c[u >> 2] | 0;
if ((v | 0) == 0) {
w = 0;
break
} else {
x = v;
y = u
}
} else {
x = o;
y = s
}
while (1) {
s = x + 20 | 0;
o = c[s >> 2] | 0;
if ((o |
0) != 0) {
x = o;
y = s;
continue
}
s = x + 16 | 0;
o = c[s >> 2] | 0;
if ((o | 0) == 0)
break;
else {
x = o;
y = s
}
}
if (y >>> 0 < e >>> 0)
Ua();
else {
c[y >> 2] = 0;
w = x;
break
}
} else {
s = c[a + (l + 8) >> 2] | 0;
if (s >>> 0 < e >>> 0)
Ua();
o = s + 12 | 0;
if ((c[o >> 2] | 0) != (m | 0))
Ua();
u = r + 8 | 0;
if ((c[u >> 2] | 0) == (m | 0)) {
c[o >> 2] = r;
c[u >> 2] = s;
w = r;
break
} else
Ua()
}
while (0);
if ((k | 0) != 0) {
r = c[a + (l + 28) >> 2] | 0;
s = 9440 + (r << 2) | 0;
if ((m | 0) == (c[s >> 2] | 0)) {
c[s >> 2] = w;
if ((w | 0) == 0) {
c[9140 >> 2] = c[9140 >> 2] & ~(1 << r);
p = m;
q = n;
break
}
} else {
if (k >>> 0 < (c[9152 >> 2] | 0) >>> 0)
Ua();
r = k + 16 | 0;
if ((c[r >> 2] | 0) == (m | 0))
c[r >> 2] = w;
else
c[k +
20 >> 2] = w;
if ((w | 0) == 0) {
p = m;
q = n;
break
}
}
if (w >>> 0 < (c[9152 >> 2] | 0) >>> 0)
Ua();
c[w + 24 >> 2] = k;
r = c[a + (l + 16) >> 2] | 0;
do if ((r | 0) != 0)
if (r >>> 0 < (c[9152 >> 2] | 0) >>> 0)
Ua();
else {
c[w + 16 >> 2] = r;
c[r + 24 >> 2] = w;
break
}
while (0);
r = c[a + (l + 20) >> 2] | 0;
if ((r | 0) != 0)
if (r >>> 0 < (c[9152 >> 2] | 0) >>> 0)
Ua();
else {
c[w + 20 >> 2] = r;
c[r + 24 >> 2] = w;
p = m;
q = n;
break
}
else {
p = m;
q = n
}
} else {
p = m;
q = n
}
} else {
p = d;
q = h
}
while (0);
if (!(p >>> 0 < j >>> 0))
Ua();
d = a + (h + -4) | 0;
w = c[d >> 2] | 0;
if ((w & 1 | 0) == 0)
Ua();
if ((w & 2 | 0) == 0) {
if ((j | 0) == (c[9160 >> 2] | 0)) {
e = (c[9148 >> 2] | 0) + q | 0;
c[9148 >> 2] = e;
c[9160 >>
2] = p;
c[p + 4 >> 2] = e | 1;
if ((p | 0) != (c[9156 >> 2] | 0)) {
i = b;
return
}
c[9156 >> 2] = 0;
c[9144 >> 2] = 0;
i = b;
return
}
if ((j | 0) == (c[9156 >> 2] | 0)) {
e = (c[9144 >> 2] | 0) + q | 0;
c[9144 >> 2] = e;
c[9156 >> 2] = p;
c[p + 4 >> 2] = e | 1;
c[p + e >> 2] = e;
i = b;
return
}
e = (w & -8) + q | 0;
x = w >>> 3;
do if (!(w >>> 0 < 256)) {
y = c[a + (h + 16) >> 2] | 0;
t = c[a + (h | 4) >> 2] | 0;
do if ((t | 0) == (j | 0)) {
g = a + (h + 12) | 0;
f = c[g >> 2] | 0;
if ((f | 0) == 0) {
r = a + (h + 8) | 0;
k = c[r >> 2] | 0;
if ((k | 0) == 0) {
z = 0;
break
} else {
A = k;
B = r
}
} else {
A = f;
B = g
}
while (1) {
g = A + 20 | 0;
f = c[g >> 2] | 0;
if ((f | 0) != 0) {
A = f;
B = g;
continue
}
g = A + 16 | 0;
f = c[g >> 2] | 0;
if ((f | 0) ==
0)
break;
else {
A = f;
B = g
}
}
if (B >>> 0 < (c[9152 >> 2] | 0) >>> 0)
Ua();
else {
c[B >> 2] = 0;
z = A;
break
}
} else {
g = c[a + h >> 2] | 0;
if (g >>> 0 < (c[9152 >> 2] | 0) >>> 0)
Ua();
f = g + 12 | 0;
if ((c[f >> 2] | 0) != (j | 0))
Ua();
r = t + 8 | 0;
if ((c[r >> 2] | 0) == (j | 0)) {
c[f >> 2] = t;
c[r >> 2] = g;
z = t;
break
} else
Ua()
}
while (0);
if ((y | 0) != 0) {
t = c[a + (h + 20) >> 2] | 0;
n = 9440 + (t << 2) | 0;
if ((j | 0) == (c[n >> 2] | 0)) {
c[n >> 2] = z;
if ((z | 0) == 0) {
c[9140 >> 2] = c[9140 >> 2] & ~(1 << t);
break
}
} else {
if (y >>> 0 < (c[9152 >> 2] | 0) >>> 0)
Ua();
t = y + 16 | 0;
if ((c[t >> 2] | 0) == (j | 0))
c[t >> 2] = z;
else
c[y + 20 >> 2] = z;
if ((z | 0) == 0)
break
}
if (z >>>
0 < (c[9152 >> 2] | 0) >>> 0)
Ua();
c[z + 24 >> 2] = y;
t = c[a + (h + 8) >> 2] | 0;
do if ((t | 0) != 0)
if (t >>> 0 < (c[9152 >> 2] | 0) >>> 0)
Ua();
else {
c[z + 16 >> 2] = t;
c[t + 24 >> 2] = z;
break
}
while (0);
t = c[a + (h + 12) >> 2] | 0;
if ((t | 0) != 0)
if (t >>> 0 < (c[9152 >> 2] | 0) >>> 0)
Ua();
else {
c[z + 20 >> 2] = t;
c[t + 24 >> 2] = z;
break
}
}
} else {
t = c[a + h >> 2] | 0;
y = c[a + (h | 4) >> 2] | 0;
n = 9176 + (x << 1 << 2) | 0;
if ((t | 0) != (n | 0)) {
if (t >>> 0 < (c[9152 >> 2] | 0) >>> 0)
Ua();
if ((c[t + 12 >> 2] | 0) != (j | 0))
Ua()
}
if ((y | 0) == (t | 0)) {
c[2284] = c[2284] & ~(1 << x);
break
}
if ((y | 0) != (n | 0)) {
if (y >>> 0 < (c[9152 >> 2] | 0) >>> 0)
Ua();
n = y + 8 | 0;
if ((c[n >>
2] | 0) == (j | 0))
C = n;
else
Ua()
} else
C = y + 8 | 0;
c[t + 12 >> 2] = y;
c[C >> 2] = t
}
while (0);
c[p + 4 >> 2] = e | 1;
c[p + e >> 2] = e;
if ((p | 0) == (c[9156 >> 2] | 0)) {
c[9144 >> 2] = e;
i = b;
return
} else
D = e
} else {
c[d >> 2] = w & -2;
c[p + 4 >> 2] = q | 1;
c[p + q >> 2] = q;
D = q
}
q = D >>> 3;
if (D >>> 0 < 256) {
w = q << 1;
d = 9176 + (w << 2) | 0;
e = c[2284] | 0;
C = 1 << q;
if ((e & C | 0) != 0) {
q = 9176 + (w + 2 << 2) | 0;
j = c[q >> 2] | 0;
if (j >>> 0 < (c[9152 >> 2] | 0) >>> 0)
Ua();
else {
E = q;
F = j
}
} else {
c[2284] = e | C;
E = 9176 + (w + 2 << 2) | 0;
F = d
}
c[E >> 2] = p;
c[F + 12 >> 2] = p;
c[p + 8 >> 2] = F;
c[p + 12 >> 2] = d;
i = b;
return
}
d = D >>> 8;
if ((d | 0) != 0)
if (D >>> 0 > 16777215)
G = 31;
else {
F = (d + 1048320 | 0) >>> 16 & 8;
E = d << F;
d = (E + 520192 | 0) >>> 16 & 4;
w = E << d;
E = (w + 245760 | 0) >>> 16 & 2;
C = 14 - (d | F | E) + (w << E >>> 15) | 0;
G = D >>> (C + 7 | 0) & 1 | C << 1
}
else
G = 0;
C = 9440 + (G << 2) | 0;
c[p + 28 >> 2] = G;
c[p + 20 >> 2] = 0;
c[p + 16 >> 2] = 0;
E = c[9140 >> 2] | 0;
w = 1 << G;
a:
do if ((E & w | 0) != 0) {
F = c[C >> 2] | 0;
if ((G | 0) == 31)
H = 0;
else
H = 25 - (G >>> 1) | 0;
b:
do if ((c[F + 4 >> 2] & -8 | 0) != (D | 0)) {
d = D << H;
e = F;
while (1) {
I = e + (d >>> 31 << 2) + 16 | 0;
j = c[I >> 2] | 0;
if ((j | 0) == 0)
break;
if ((c[j + 4 >> 2] & -8 | 0) == (D | 0)) {
J = j;
break b
} else {
d = d << 1;
e = j
}
}
if (I >>> 0 < (c[9152 >> 2] | 0) >>> 0)
Ua();
else {
c[I >> 2] = p;
c[p +
24 >> 2] = e;
c[p + 12 >> 2] = p;
c[p + 8 >> 2] = p;
break a
}
} else
J = F;
while (0);
F = J + 8 | 0;
d = c[F >> 2] | 0;
j = c[9152 >> 2] | 0;
if (J >>> 0 < j >>> 0)
Ua();
if (d >>> 0 < j >>> 0)
Ua();
else {
c[d + 12 >> 2] = p;
c[F >> 2] = p;
c[p + 8 >> 2] = d;
c[p + 12 >> 2] = J;
c[p + 24 >> 2] = 0;
break
}
} else {
c[9140 >> 2] = E | w;
c[C >> 2] = p;
c[p + 24 >> 2] = C;
c[p + 12 >> 2] = p;
c[p + 8 >> 2] = p
}
while (0);
p = (c[9168 >> 2] | 0) + -1 | 0;
c[9168 >> 2] = p;
if ((p | 0) == 0)
K = 9592 | 0;
else {
i = b;
return
}
while (1) {
p = c[K >> 2] | 0;
if ((p | 0) == 0)
break;
else
K = p + 8 | 0
}
c[9168 >> 2] = -1;
i = b;
return
}
function qn(a) {
a = a | 0;
var b = 0,
d = 0,
e = 0,
f = 0;
b = i;
d = (a | 0) == 0 ? 1 : a;
while (1) {
e =
on(d) | 0;
if ((e | 0) != 0) {
f = 6;
break
}
a = c[2410] | 0;
c[2410] = a + 0;
if ((a | 0) == 0) {
f = 5;
break
}
jb[a & 1]()
}
if ((f | 0) == 5) {
d = Aa(4) | 0;
c[d >> 2] = 9656;
Sa(d | 0, 9704, 92)
} else if ((f | 0) == 6) {
i = b;
return e | 0
}
return 0
}
function rn(a, b) {
a = a | 0;
b = b | 0;
var c = 0;
b = i;
c = qn(a) | 0;
i = b;
return c | 0
}
function sn(a) {
a = a | 0;
var b = 0;
b = i;
if ((a | 0) != 0)
pn(a);
i = b;
return
}
function tn(a) {
a = a | 0;
var b = 0;
b = i;
Ra(a | 0);
sn(a);
i = b;
return
}
function un(a) {
a = a | 0;
var b = 0;
b = i;
Ra(a | 0);
i = b;
return
}
function vn(a) {
a = a | 0;
return 9672
}
function wn() {
c[2428] = o
}
function xn(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 yn(b) {
b = b | 0;
var c = 0;
c = b;
while (a[c >> 0] | 0)
c = c + 1 | 0;
return c - b | 0
}
function zn(a, b, c, d) {
a = a | 0;
b = b | 0;
c = c | 0;
d = d | 0;
var e = 0;
e = a + c >>> 0;
return (E = b + d + (e >>> 0 < a >>> 0 | 0) >>> 0, e | 0) | 0
}
function An(b, d, e) {
b = b | 0;
d = d | 0;
e = e | 0;
var f = 0;
if ((e | 0) >= 4096)
return Ma(b | 0, d | 0, e | 0) | 0;
f = b | 0;
if ((b & 3) == (d & 3)) {
while (b & 3) {
if ((e | 0) == 0)
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 Bn(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
An(b, c, d) | 0;
return b | 0
}
function Cn(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 (E = e,
a - c >>> 0 | 0) | 0
}
function Dn(a, b, c) {
a = a | 0;
b = b | 0;
c = c | 0;
if ((c | 0) < 32) {
E = b << c | (a & (1 << c) - 1 << 32 - c) >>> 32 - c;
return a << c
}
E = a << c - 32;
return 0
}
function En(a, b, c) {
a = a | 0;
b = b | 0;
c = c | 0;
if ((c | 0) < 32) {
E = b >>> c;
return a >>> c | (b & (1 << c) - 1) << 32 - c
}
E = 0;
return b >>> c - 32 | 0
}
function Fn(a, b, c) {
a = a | 0;
b = b | 0;
c = c | 0;
if ((c | 0) < 32) {
E = b >> c;
return a >>> c | (b & (1 << c) - 1) << 32 - c
}
E = (b | 0) < 0 ? -1 : 0;
return b >> c - 32 | 0
}
function Gn(b) {
b = b | 0;
var c = 0;
c = a[n + (b >>> 24) >> 0] | 0;
if ((c | 0) < 8)
return c | 0;
c = a[n + (b >> 16 & 255) >> 0] | 0;
if ((c | 0) < 8)
return c + 8 | 0;
c = a[n + (b >> 8 & 255) >> 0] |
0;
if ((c | 0) < 8)
return c + 16 | 0;
return (a[n + (b & 255) >> 0] | 0) + 24 | 0
}
function Hn(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 In(a, b) {
a = a | 0;
b = b | 0;
var c = 0,
d = 0,
e = 0,
f = 0;
c = a & 65535;
d = b & 65535;
e = aa(d, c) | 0;
f = a >>> 16;
a = (e >>> 16) + (aa(d, f) | 0) | 0;
d = b >>> 16;
b = aa(d, c) | 0;
return (E = (a >>> 16) + (aa(d, f) | 0) + (((a & 65535) + b | 0) >>> 16) | 0, a + b << 16 | e & 65535 | 0) | 0
}
function Jn(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 = Cn(e ^ a, f ^ b, e, f) | 0;
b = E;
a = g ^ e;
e = h ^ f;
f = Cn((On(i, b, Cn(g ^ c, h ^ d, g, h) | 0, E, 0) | 0) ^ a, E ^ e, a, e) | 0;
return f | 0
}
function Kn(a, b, d, e) {
a = a | 0;
b = b | 0;
d = d | 0;
e = e | 0;
var f = 0,
g = 0,
h = 0,
j = 0,
k = 0,
l = 0,
m = 0;
f = i;
i = i + 8 | 0;
g = f | 0;
h = b >> 31 | ((b | 0) < 0 ? -1 : 0) << 1;
j = ((b | 0) < 0 ? -1 : 0) >> 31 | ((b | 0) < 0 ? -1 : 0) << 1;
k = e >> 31 | ((e | 0) < 0 ? -1 : 0) << 1;
l = ((e | 0) < 0 ? -1 : 0) >> 31 | ((e | 0) < 0 ? -1 : 0) << 1;
m = Cn(h ^ a, j ^
b, h, j) | 0;
b = E;
On(m, b, Cn(k ^ d, l ^ e, k, l) | 0, E, g) | 0;
l = Cn(c[g >> 2] ^ h, c[g + 4 >> 2] ^ j, h, j) | 0;
j = E;
i = f;
return (E = j, l) | 0
}
function Ln(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 = In(e, a) | 0;
f = E;
return (E = (aa(b, a) | 0) + (aa(d, e) | 0) + f | f & 0, 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 = On(a, b, c, d, 0) | 0;
return e | 0
}
function Nn(a, b, d, e) {
a = a | 0;
b = b | 0;
d = d | 0;
e = e | 0;
var f = 0,
g = 0;
f = i;
i = i + 8 | 0;
g = f | 0;
On(a, b, d, e, g) | 0;
i = f;
return (E = c[g + 4 >> 2] | 0, c[g >> 2] | 0) | 0
}
function On(a, b, d, e, f) {
a = a | 0;
b = b | 0;
d = d | 0;
e = e | 0;
f = f | 0;
var g =
0,
h = 0,
i = 0,
j = 0,
k = 0,
l = 0,
m = 0,
n = 0,
o = 0,
p = 0,
q = 0,
r = 0,
s = 0,
t = 0,
u = 0,
v = 0,
w = 0,
x = 0,
y = 0,
z = 0,
A = 0,
B = 0,
C = 0,
D = 0,
F = 0,
G = 0,
H = 0;
g = a;
h = b;
i = h;
j = d;
k = e;
l = k;
if ((i | 0) == 0) {
m = (f | 0) != 0;
if ((l | 0) == 0) {
if (m) {
c[f >> 2] = (g >>> 0) % (j >>> 0);
c[f + 4 >> 2] = 0
}
n = 0;
o = (g >>> 0) / (j >>> 0) >>> 0;
return (E = n, o) | 0
} else {
if (!m) {
n = 0;
o = 0;
return (E = n, o) | 0
}
c[f >> 2] = a | 0;
c[f + 4 >> 2] = b & 0;
n = 0;
o = 0;
return (E = n, o) | 0
}
}
m = (l | 0) == 0;
do if ((j | 0) != 0) {
if (!m) {
p = (Gn(l | 0) | 0) - (Gn(i | 0) | 0) | 0;
if (p >>> 0 <= 31) {
q = p + 1 | 0;
r = 31 - p | 0;
s = p - 31 >> 31;
t = q;
u = g >>> (q >>> 0) & s | i << r;
v = i >>> (q >>> 0) & s;
w = 0;
x = g << r;
break
}
if ((f |
0) == 0) {
n = 0;
o = 0;
return (E = n, o) | 0
}
c[f >> 2] = a | 0;
c[f + 4 >> 2] = h | b & 0;
n = 0;
o = 0;
return (E = n, o) | 0
}
r = j - 1 | 0;
if ((r & j | 0) != 0) {
s = (Gn(j | 0) | 0) + 33 - (Gn(i | 0) | 0) | 0;
q = 64 - s | 0;
p = 32 - s | 0;
y = p >> 31;
z = s - 32 | 0;
A = z >> 31;
t = s;
u = p - 1 >> 31 & i >>> (z >>> 0) | (i << p | g >>> (s >>> 0)) & A;
v = A & i >>> (s >>> 0);
w = g << q & y;
x = (i << q | g >>> (z >>> 0)) & y | g << p & s - 33 >> 31;
break
}
if ((f | 0) != 0) {
c[f >> 2] = r & g;
c[f + 4 >> 2] = 0
}
if ((j | 0) == 1) {
n = h | b & 0;
o = a | 0 | 0;
return (E = n, o) | 0
} else {
r = Hn(j | 0) | 0;
n = i >>> (r >>> 0) | 0;
o = i << 32 - r | g >>> (r >>> 0) | 0;
return (E = n, o) | 0
}
} else {
if (m) {
if ((f | 0) != 0) {
c[f >> 2] = (i >>> 0) % (j >>> 0);
c[f +
4 >> 2] = 0
}
n = 0;
o = (i >>> 0) / (j >>> 0) >>> 0;
return (E = n, o) | 0
}
if ((g | 0) == 0) {
if ((f | 0) != 0) {
c[f >> 2] = 0;
c[f + 4 >> 2] = (i >>> 0) % (l >>> 0)
}
n = 0;
o = (i >>> 0) / (l >>> 0) >>> 0;
return (E = n, o) | 0
}
r = l - 1 | 0;
if ((r & l | 0) == 0) {
if ((f | 0) != 0) {
c[f >> 2] = a | 0;
c[f + 4 >> 2] = r & i | b & 0
}
n = 0;
o = i >>> ((Hn(l | 0) | 0) >>> 0);
return (E = n, o) | 0
}
r = (Gn(l | 0) | 0) - (Gn(i | 0) | 0) | 0;
if (r >>> 0 <= 30) {
s = r + 1 | 0;
p = 31 - r | 0;
t = s;
u = i << p | g >>> (s >>> 0);
v = i >>> (s >>> 0);
w = 0;
x = g << p;
break
}
if ((f | 0) == 0) {
n = 0;
o = 0;
return (E = n, o) | 0
}
c[f >> 2] = a | 0;
c[f + 4 >> 2] = h | b & 0;
n = 0;
o = 0;
return (E = n, o) | 0
}
while (0);
if ((t | 0) == 0) {
B = x;
C = w;
D = v;
F =
u;
G = 0;
H = 0
} else {
b = d | 0 | 0;
d = k | e & 0;
e = zn(b, d, -1, -1) | 0;
k = E;
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;
Cn(e, k, g, a) | 0;
i = E;
l = i >> 31 | ((i | 0) < 0 ? -1 : 0) << 1;
t = l & 1;
v = Cn(g, a, l & b, (((i | 0) < 0 ? -1 : 0) >> 31 | ((i | 0) < 0 ? -1 : 0) << 1) & d) | 0;
w = E;
u = u - 1 | 0
} while ((u | 0) != 0);
B = h;
C = x;
D = w;
F = v;
G = 0;
H = t
}
t = C;
C = 0;
if ((f | 0) != 0) {
c[f >> 2] = F;
c[f + 4 >> 2] = D
}
n = (t | 0) >>> 31 | (B | C) << 1 | (C << 1 | t >>> 31) & 0 | G;
o = (t << 1 | 0 >>> 31) & -2 | H;
return (E = n, o) | 0
}
function Pn(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 +ab[a & 1](b |
0, c | 0, d | 0, e | 0, f | 0, +g)
}
function Qn(a, b) {
a = a | 0;
b = b | 0;
return bb[a & 7](b | 0) | 0
}
function Rn(a, b, c, d, e, f) {
a = a | 0;
b = b | 0;
c = c | 0;
d = d | 0;
e = e | 0;
f = f | 0;
cb[a & 3](b | 0, c | 0, d | 0, e | 0, f | 0)
}
function Sn(a, b, c) {
a = a | 0;
b = b | 0;
c = +c;
return +db[a & 15](b | 0, +c)
}
function Tn(a, b) {
a = a | 0;
b = b | 0;
eb[a & 127](b | 0)
}
function Un(a, b, c, d, e, f) {
a = a | 0;
b = b | 0;
c = c | 0;
d = d | 0;
e = e | 0;
f = +f;
return +fb[a & 1](b | 0, c | 0, d | 0, e | 0, +f)
}
function Vn(a, b, c) {
a = a | 0;
b = b | 0;
c = c | 0;
gb[a & 63](b | 0, c | 0)
}
function Wn(a, b, c, d) {
a = a | 0;
b = b | 0;
c = c | 0;
d = d | 0;
return hb[a & 15](b | 0, c | 0, d | 0) | 0
}
function Xn(a,
b, c, d) {
a = a | 0;
b = b | 0;
c = c | 0;
d = d | 0;
ib[a & 7](b | 0, c | 0, d | 0)
}
function Yn(a) {
a = a | 0;
jb[a & 1]()
}
function Zn(a, b, c, d) {
a = a | 0;
b = b | 0;
c = c | 0;
d = +d;
kb[a & 31](b | 0, c | 0, +d)
}
function _n(a, b, c, d, e) {
a = a | 0;
b = b | 0;
c = c | 0;
d = d | 0;
e = e | 0;
return lb[a & 7](b | 0, c | 0, d | 0, e | 0) | 0
}
function $n(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;
mb[a & 7](b | 0, c | 0, d | 0, e | 0, f | 0, g | 0)
}
function ao(a, b, c) {
a = a | 0;
b = b | 0;
c = c | 0;
return nb[a & 31](b | 0, c | 0) | 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 | 0;
return ob[a & 15](b | 0, c | 0, d | 0, e | 0, f | 0) | 0
}
function co(a, b, c, d, e) {
a = a | 0;
b = b | 0;
c = c | 0;
d = d | 0;
e = e | 0;
pb[a & 31](b | 0, c | 0, d | 0, e | 0)
}
function eo(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 fo(a) {
a = a | 0;
ba(1);
return 0
}
function go(a, b, c, d, e) {
a = a | 0;
b = b | 0;
c = c | 0;
d = d | 0;
e = e | 0;
ba(2)
}
function ho(a, b) {
a = a | 0;
b = +b;
ba(3);
return 0
}
function io(a) {
a = a | 0;
ba(4)
}
function jo(a, b, c, d, e) {
a = a | 0;
b = b | 0;
c = c | 0;
d = d | 0;
e = +e;
ba(5);
return 0
}
function ko(a, b) {
a = a | 0;
b = b | 0;
ba(6)
}
function lo(a, b, c) {
a = a | 0;
b = b | 0;
c = c | 0;
ba(7);
return 0
}
function mo(a, b, c) {
a = a | 0;
b = b |
0;
c = c | 0;
ba(8)
}
function no() {
ba(9)
}
function oo() {
_a()
}
function po(a, b, c) {
a = a | 0;
b = b | 0;
c = +c;
ba(10)
}
function qo(a, b, c, d) {
a = a | 0;
b = b | 0;
c = c | 0;
d = d | 0;
ba(11);
return 0
}
function ro(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 so(a, b) {
a = a | 0;
b = b | 0;
ba(13);
return 0
}
function to(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 uo(a, b, c, d) {
a = a | 0;
b = b | 0;
c = c | 0;
d = d | 0;
ba(15)
}
var ab = [eo, Gd];
var bb = [fo, ge, ne, ve, Fe, rm, vn, fo];
var cb = [go, ln, kn, go];
var db = [ho, Df, Qf, dg, pg, Bg, Mg, Zg, ph, Hh, Zh,
ki, ho, ho, ho, ho];
var eb = [io, pc, Ed, oc, Id, nc, Md, Gb, Wd, Ib, Vd, Cb, Xd, Ce, Be, rf, sf, Ff, Gf, Hf, Tf, Vf, Wf, eg, fg, gg, qg, rg, sg, Cg, Dg, Eg, Og, Pg, Qg, fh, gh, hh, qh, rh, sh, wh, xh, yh, Oh, Ph, Qh, $h, ai, bi, li, ni, oi, si, ti, yi, zi, Di, Ei, Ii, Ji, Wi, Xi, $i, aj, ej, fj, jj, kj, Rj, ck, Ul, Vl, Zl, _l, am, bm, dm, em, Jk, im, km, lm, om, pm, xm, ym, an, dn, bn, cn, en, un, tn, io, io, io, io, io, io, io, io, io, io, io, io, io, io, io, io, io, io, io, io, io, io, io, io, io, io, io, io, io, io, io, io, io, io];
var fb = [jo, Fd];
var gb = [ko, Nd, Od, Af, Bf, Ef, xf, yf, Nf, Of, Uf, Kf, Lf, ag, bg, Zf, _f, mg, ng, jg, kg, yg, zg,
vg, wg, Jg, Kg, Gg, Hg, Wg, Xg, Tg, Ug, mh, nh, jh, kh, Eh, Fh, Bh, Ch, Wh, Xh, Th, Uh, hi, ii, mi, ei, fi, dk, ek, Om, Gi, Bi, hj, Ui, cj, Zi, qi, ko, ko, ko, ko];
var hb = [lo, Kd, he, pe, we, Ie, qf, gm, mm, sm, Am, fn, lo, lo, lo, lo];
var ib = [mo, Pd, Rd, Td, Ud, fk, gk, mo];
var jb = [no, oo];
var kb = [po, le, te, Ae, Le, Cf, Pf, cg, og, Ag, Lg, Yg, oh, Gh, Yh, ji, wm, po, po, po, po, po, po, po, po, po, po, po, po, po, po, po];
var lb = [qo, tf, uf, hm, nm, qo, qo, qo];
var mb = [ro, ie, qe, xe, He, tm, nn, mn];
var nb = [so, Hd, Jd, Ld, fe, me, ue, Ee, zf, Mf, $f, lg, xg, Ig, Vg, lh, Dh, Vh, gi, Wl, Xl, fm, jm, qm, zm, Nm, Zj, Kk, Lk, Wk, Vk,
_k];
var ob = [to, je, re, ye, Je, um, Fi, Ai, gj, Ti, bj, Yi, pi, to, to, to];
var pb = [uo, Qd, Sd, ke, se, ze, Ke, ri, Ci, Hi, Vi, _i, dj, ij, Yl, $l, cm, vm, gn, hn, uo, uo, uo, uo, uo, uo, uo, uo, uo, uo, uo, uo];
return {
_b2PrismaticJoint_IsMotorEnabled: Yc,
_b2Body_GetWorldVector: fc,
_strlen: yn,
_b2Body_GetLocalVector: _b,
_b2PrismaticJoint_GetMotorSpeed: Vc,
_b2RopeJointDef_Create: kd,
_b2World_CreateParticleSystem: sc,
_b2ParticleSystem_SetRadius: Dd,
_b2FrictionJointDef_Create: Gc,
_b2World_RayCast: yc,
_b2MotorJointDef_InitializeAndCreate: Pc,
_b2GearJoint_GetRatio: Ic,
_b2Body_GetLocalPoint: Zb,
_memcpy: An,
_b2RevoluteJoint_EnableLimit: cd,
_b2Body_DestroyFixture: Ub,
_b2World_Create: qc,
_b2PolygonShape_CreateFixture_3: Hb,
_b2PolygonShape_CreateFixture_6: Lb,
_b2PolygonShape_CreateFixture_7: Mb,
_b2PolygonShape_CreateFixture_4: Jb,
_b2PolygonShape_CreateFixture_5: Kb,
_b2Body_SetAwake: gc,
_b2Body_GetWorldCenter: dc,
_b2ParticleGroup_DestroyParticles: td,
_b2PrismaticJoint_EnableLimit: Sc,
_b2Fixture_TestPoint: mc,
_b2MotorJoint_SetLinearOffset: Nc,
_free: pn,
_b2ParticleSystem_CreateParticle: wd,
_b2Body_SetLinearVelocity: ic,
_b2CircleShape_CreateParticleGroup: Db,
_b2WeldJointDef_Create: ld,
_b2Body_GetAngularVelocity: Wb,
_b2Body_ApplyForceToCenter: Sb,
_b2DistanceJointDef_InitializeAndCreate: Fc,
_b2Body_ApplyForce: Rb,
_b2RevoluteJoint_SetMotorSpeed: jd,
_b2Body_GetPosition: ac,
_b2World_CreateBody: rc,
_b2Body_GetLinearVelocity: Yb,
_b2Body_SetMassData: jc,
_b2MouseJointDef_Create: Rc,
_b2ParticleSystem_GetColorBuffer: xd,
_b2DistanceJointDef_Create: Ec,
_b2ParticleSystem_GetPositionBuffer: zd,
_b2CircleShape_DestroyParticlesInShape: Eb,
_b2World_QueryAABB: xc,
_b2PolygonShape_DestroyParticlesInShape_4: Pb,
_b2RevoluteJointDef_InitializeAndCreate: id,
_b2GearJointDef_Create: Jc,
_b2PrismaticJoint_IsLimitEnabled: Xc,
_b2Contact_GetWorldManifold: Dc,
_b2WheelJoint_SetSpringFrequencyHz: od,
_b2Body_ApplyTorque: Tb,
_b2ParticleGroup_ApplyLinearImpulse: sd,
_b2PrismaticJointDef_InitializeAndCreate: $c,
_memset: xn,
_b2MotorJointDef_Create: Oc,
_b2World_DestroyBody: uc,
_b2RevoluteJointDef_Create: hd,
_b2ParticleGroup_GetParticleCount: vd,
_b2World_SetGravity: Ac,
_b2PrismaticJoint_EnableMotor: Tc,
_b2PolygonShape_CreateParticleGroup_4: Ob,
_b2PolygonShape_CreateFixture_8: Nb,
_b2Body_SetAngularVelocity: hc,
_b2Body_GetWorldPoint: ec,
_b2WheelJoint_SetMotorSpeed: nd,
_b2FrictionJointDef_InitializeAndCreate: Hc,
_b2World_SetContactListener: zc,
_b2ParticleSystem_SetDamping: Bd,
_b2Body_SetType: lc,
_b2Body_SetTransform: kc,
_b2CircleShape_CreateFixture: Bb,
_b2RevoluteJoint_GetJointAngle: ed,
_b2ParticleGroup_ApplyForce: rd,
_malloc: on,
_b2Contact_GetManifold: Cc,
_b2RevoluteJoint_IsMotorEnabled: gd,
_b2ParticleSystem_GetVelocityBuffer: Ad,
_b2RevoluteJoint_IsLimitEnabled: fd,
_b2World_DestroyParticleSystem: wc,
_b2RevoluteJoint_EnableMotor: dd,
_b2Body_GetTransform: bc,
_b2WeldJointDef_InitializeAndCreate: md,
_b2EdgeShape_CreateFixture: Fb,
_b2Body_GetType: cc,
_b2Manifold_GetPointCount: yb,
_b2ParticleSystem_SetDensity: Cd,
_b2PrismaticJoint_GetMotorForce: Wc,
_b2Joint_GetBodyA: Kc,
_b2PulleyJointDef_InitializeAndCreate: bd,
_b2Joint_GetBodyB: Lc,
_b2ParticleSystem_GetParticleCount: yd,
_b2MouseJoint_SetTarget: Qc,
_b2Body_ApplyAngularImpulse: Qb,
_b2ChainShape_CreateFixture: zb,
_b2World_DestroyJoint: vc,
_b2MotorJoint_SetAngularOffset: Mc,
_b2World_Delete: tc,
_b2PrismaticJoint_GetJointTranslation: Uc,
_i64Add: zn,
_b2Body_GetMass: $b,
_b2Body_GetAngle: Vb,
_b2ParticleGroup_GetBufferIndex: ud,
_b2WheelJointDef_InitializeAndCreate: qd,
_b2World_Step: Bc,
_b2PrismaticJointDef_Create: _c,
_b2WheelJointDef_Create: pd,
_b2PulleyJointDef_Create: ad,
_b2Body_GetInertia: Xb,
_memmove: Bn,
_b2PrismaticJoint_SetMotorSpeed: Zc,
__GLOBAL__I_a: Yd,
runPostSets: wn,
stackAlloc: qb,
stackSave: rb,
stackRestore: sb,
setThrew: tb,
setTempRet0: wb,
getTempRet0: xb,
dynCall_diiiiid: Pn,
dynCall_ii: Qn,
dynCall_viiiii: Rn,
dynCall_did: Sn,
dynCall_vi: Tn,
dynCall_diiiid: Un,
dynCall_vii: Vn,
dynCall_iiii: Wn,
dynCall_viii: Xn,
dynCall_v: Yn,
dynCall_viid: Zn,
dynCall_iiiii: _n,
dynCall_viiiiii: $n,
dynCall_iii: ao,
dynCall_iiiiii: bo,
dynCall_viiii: co
}
}({
"Math": Math,
"Int8Array": Int8Array,
"Int16Array": Int16Array,
"Int32Array": Int32Array,
"Uint8Array": Uint8Array,
"Uint16Array": Uint16Array,
"Uint32Array": Uint32Array,
"Float32Array": Float32Array,
"Float64Array": Float64Array
},
{
"abort": abort,
"assert": assert,
"asmPrintInt": asmPrintInt,
"asmPrintFloat": asmPrintFloat,
"min": Math_min,
"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,
"_cosf": _cosf,
"__ZSt9terminatev": __ZSt9terminatev,
"_b2WorldPreSolve": _b2WorldPreSolve,
"___cxa_is_number_type": ___cxa_is_number_type,
"___cxa_allocate_exception": ___cxa_allocate_exception,
"___cxa_find_matching_catch": ___cxa_find_matching_catch,
"_fflush": _fflush,
"_time": _time,
"__exit": __exit,
"___setErrNo": ___setErrNo,
"_sbrk": _sbrk,
"___cxa_begin_catch": ___cxa_begin_catch,
"_sinf": _sinf,
"___resumeException": ___resumeException,
"__ZSt18uncaught_exceptionv": __ZSt18uncaught_exceptionv,
"_b2WorldRayCastCallback": _b2WorldRayCastCallback,
"_emscripten_memcpy_big": _emscripten_memcpy_big,
"_floorf": _floorf,
"_sqrtf": _sqrtf,
"_b2WorldBeginContactBody": _b2WorldBeginContactBody,
"___errno_location": ___errno_location,
"__ZNSt9exceptionD2Ev": __ZNSt9exceptionD2Ev,
"___cxa_throw": ___cxa_throw,
"_sysconf": _sysconf,
"_abort": _abort,
"___cxa_does_inherit": ___cxa_does_inherit,
"_b2WorldEndContactBody": _b2WorldEndContactBody,
"_b2WorldQueryAABB": _b2WorldQueryAABB,
"_b2WorldPostSolve": _b2WorldPostSolve,
"_exit": _exit,
"___cxa_pure_virtual": ___cxa_pure_virtual,
"STACKTOP": STACKTOP,
"STACK_MAX": STACK_MAX,
"tempDoublePtr": tempDoublePtr,
"ABORT": ABORT,
"cttz_i8": cttz_i8,
"ctlz_i8": ctlz_i8,
"NaN": NaN,
"Infinity": Infinity,
"__ZTISt9exception": __ZTISt9exception
}, buffer);
var _b2PrismaticJoint_IsMotorEnabled = Module["_b2PrismaticJoint_IsMotorEnabled"] = asm["_b2PrismaticJoint_IsMotorEnabled"];
var _b2Body_GetWorldVector = Module["_b2Body_GetWorldVector"] = asm["_b2Body_GetWorldVector"];
var _strlen = Module["_strlen"] = asm["_strlen"];
var _b2Body_GetLocalVector = Module["_b2Body_GetLocalVector"] = asm["_b2Body_GetLocalVector"];
var _b2PrismaticJoint_GetMotorSpeed = Module["_b2PrismaticJoint_GetMotorSpeed"] = asm["_b2PrismaticJoint_GetMotorSpeed"];
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 _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 _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 _b2Body_SetAwake = Module["_b2Body_SetAwake"] = asm["_b2Body_SetAwake"];
var _b2Body_GetWorldCenter = Module["_b2Body_GetWorldCenter"] = asm["_b2Body_GetWorldCenter"];
var _b2ParticleGroup_DestroyParticles = Module["_b2ParticleGroup_DestroyParticles"] = asm["_b2ParticleGroup_DestroyParticles"];
var _b2PrismaticJoint_EnableLimit = Module["_b2PrismaticJoint_EnableLimit"] = asm["_b2PrismaticJoint_EnableLimit"];
var _b2Fixture_TestPoint = Module["_b2Fixture_TestPoint"] = asm["_b2Fixture_TestPoint"];
var _b2MotorJoint_SetLinearOffset = Module["_b2MotorJoint_SetLinearOffset"] = asm["_b2MotorJoint_SetLinearOffset"];
var _free = Module["_free"] = asm["_free"];
var _b2ParticleSystem_CreateParticle = Module["_b2ParticleSystem_CreateParticle"] = asm["_b2ParticleSystem_CreateParticle"];
var _b2Body_SetLinearVelocity = Module["_b2Body_SetLinearVelocity"] = asm["_b2Body_SetLinearVelocity"];
var _b2CircleShape_CreateParticleGroup = Module["_b2CircleShape_CreateParticleGroup"] = asm["_b2CircleShape_CreateParticleGroup"];
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 _b2DistanceJointDef_InitializeAndCreate = Module["_b2DistanceJointDef_InitializeAndCreate"] = asm["_b2DistanceJointDef_InitializeAndCreate"];
var _b2Body_ApplyForce = Module["_b2Body_ApplyForce"] = asm["_b2Body_ApplyForce"];
var _b2RevoluteJoint_SetMotorSpeed = Module["_b2RevoluteJoint_SetMotorSpeed"] = asm["_b2RevoluteJoint_SetMotorSpeed"];
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 _b2Body_SetMassData = Module["_b2Body_SetMassData"] = asm["_b2Body_SetMassData"];
var _b2MouseJointDef_Create = Module["_b2MouseJointDef_Create"] = asm["_b2MouseJointDef_Create"];
var _b2ParticleSystem_GetColorBuffer = Module["_b2ParticleSystem_GetColorBuffer"] = asm["_b2ParticleSystem_GetColorBuffer"];
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 _b2PolygonShape_DestroyParticlesInShape_4 = Module["_b2PolygonShape_DestroyParticlesInShape_4"] = asm["_b2PolygonShape_DestroyParticlesInShape_4"];
var _b2RevoluteJointDef_InitializeAndCreate = Module["_b2RevoluteJointDef_InitializeAndCreate"] = asm["_b2RevoluteJointDef_InitializeAndCreate"];
var _b2GearJointDef_Create = Module["_b2GearJointDef_Create"] = asm["_b2GearJointDef_Create"];
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 _b2World_SetGravity = Module["_b2World_SetGravity"] = asm["_b2World_SetGravity"];
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_SetAngularVelocity = Module["_b2Body_SetAngularVelocity"] = asm["_b2Body_SetAngularVelocity"];
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 _b2World_SetContactListener = Module["_b2World_SetContactListener"] = asm["_b2World_SetContactListener"];
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 _b2CircleShape_CreateFixture = Module["_b2CircleShape_CreateFixture"] = asm["_b2CircleShape_CreateFixture"];
var _b2RevoluteJoint_GetJointAngle = Module["_b2RevoluteJoint_GetJointAngle"] = asm["_b2RevoluteJoint_GetJointAngle"];
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 _b2RevoluteJoint_IsMotorEnabled = Module["_b2RevoluteJoint_IsMotorEnabled"] = asm["_b2RevoluteJoint_IsMotorEnabled"];
var _b2ParticleSystem_GetVelocityBuffer = Module["_b2ParticleSystem_GetVelocityBuffer"] = asm["_b2ParticleSystem_GetVelocityBuffer"];
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 _b2WeldJointDef_InitializeAndCreate = Module["_b2WeldJointDef_InitializeAndCreate"] = asm["_b2WeldJointDef_InitializeAndCreate"];
var _b2EdgeShape_CreateFixture = Module["_b2EdgeShape_CreateFixture"] = asm["_b2EdgeShape_CreateFixture"];
var _b2Body_GetType = Module["_b2Body_GetType"] = asm["_b2Body_GetType"];
var _b2Manifold_GetPointCount = Module["_b2Manifold_GetPointCount"] = asm["_b2Manifold_GetPointCount"];
var _b2ParticleSystem_SetDensity = Module["_b2ParticleSystem_SetDensity"] = asm["_b2ParticleSystem_SetDensity"];
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 _b2MotorJoint_SetAngularOffset = Module["_b2MotorJoint_SetAngularOffset"] = asm["_b2MotorJoint_SetAngularOffset"];
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 _b2Body_GetAngle = Module["_b2Body_GetAngle"] = asm["_b2Body_GetAngle"];
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 _b2PrismaticJointDef_Create = Module["_b2PrismaticJointDef_Create"] = asm["_b2PrismaticJointDef_Create"];
var _b2WheelJointDef_Create = Module["_b2WheelJointDef_Create"] = asm["_b2WheelJointDef_Create"];
var _b2PulleyJointDef_Create = Module["_b2PulleyJointDef_Create"] = asm["_b2PulleyJointDef_Create"];
var _b2Body_GetInertia = Module["_b2Body_GetInertia"] = asm["_b2Body_GetInertia"];
var _memmove = Module["_memmove"] = asm["_memmove"];
var _b2PrismaticJoint_SetMotorSpeed = Module["_b2PrismaticJoint_SetMotorSpeed"] = asm["_b2PrismaticJoint_SetMotorSpeed"];
var __GLOBAL__I_a = Module["__GLOBAL__I_a"] = asm["__GLOBAL__I_a"];
var runPostSets = Module["runPostSets"] = asm["runPostSets"];
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.setTempRet0 = asm["setTempRet0"];
Runtime.getTempRet0 = asm["getTempRet0"];
var i64Math = function() {
var goog = {
math: {}
};
goog.math.Long = function(low, high) {
this.low_ = low | 0;
this.high_ = high | 0
};
goog.math.Long.IntCache_ = {};
goog.math.Long.fromInt = function(value) {
if (-128 <= value && value < 128) {
var cachedObj = goog.math.Long.IntCache_[value];
if (cachedObj)
return cachedObj
}
var obj = new goog.math.Long(value | 0, value < 0 ? -1 : 0);
if (-128 <= value && value < 128)
goog.math.Long.IntCache_[value] = obj;
return obj
};
goog.math.Long.fromNumber = function(value) {
if (isNaN(value) || !isFinite(value))
return goog.math.Long.ZERO;
else if (value <= -goog.math.Long.TWO_PWR_63_DBL_)
return goog.math.Long.MIN_VALUE;
else if (value + 1 >= goog.math.Long.TWO_PWR_63_DBL_)
return goog.math.Long.MAX_VALUE;
else if (value < 0)
return goog.math.Long.fromNumber(-value).negate();
else
return new goog.math.Long(value % goog.math.Long.TWO_PWR_32_DBL_ | 0, value / goog.math.Long.TWO_PWR_32_DBL_ | 0)
};
goog.math.Long.fromBits = function(lowBits, highBits) {
return new goog.math.Long(lowBits, highBits)
};
goog.math.Long.fromString = function(str, opt_radix) {
if (str.length == 0)
throw Error("number format error: empty string");
var radix = opt_radix || 10;
if (radix < 2 || 36 < radix)
throw Error("radix out of range: " + radix);
if (str.charAt(0) == "-")
return goog.math.Long.fromString(str.substring(1), radix).negate();
else if (str.indexOf("-") >= 0)
throw Error('number format error: interior "-" character: ' + str);
var radixToPower = goog.math.Long.fromNumber(Math.pow(radix, 8));
var result = goog.math.Long.ZERO;
for (var i = 0; i < str.length; i += 8) {
var size = Math.min(8, str.length - i);
var value = parseInt(str.substring(i, i + size), radix);
if (size < 8) {
var power = goog.math.Long.fromNumber(Math.pow(radix,
size));
result = result.multiply(power).add(goog.math.Long.fromNumber(value))
} else {
result = result.multiply(radixToPower);
result = result.add(goog.math.Long.fromNumber(value))
}
}
return result
};
goog.math.Long.TWO_PWR_16_DBL_ = 1 << 16;
goog.math.Long.TWO_PWR_24_DBL_ = 1 << 24;
goog.math.Long.TWO_PWR_32_DBL_ = goog.math.Long.TWO_PWR_16_DBL_ * goog.math.Long.TWO_PWR_16_DBL_;
goog.math.Long.TWO_PWR_31_DBL_ = goog.math.Long.TWO_PWR_32_DBL_ / 2;
goog.math.Long.TWO_PWR_48_DBL_ = goog.math.Long.TWO_PWR_32_DBL_ * goog.math.Long.TWO_PWR_16_DBL_;
goog.math.Long.TWO_PWR_64_DBL_ = goog.math.Long.TWO_PWR_32_DBL_ * goog.math.Long.TWO_PWR_32_DBL_;
goog.math.Long.TWO_PWR_63_DBL_ = goog.math.Long.TWO_PWR_64_DBL_ / 2;
goog.math.Long.ZERO = goog.math.Long.fromInt(0);
goog.math.Long.ONE = goog.math.Long.fromInt(1);
goog.math.Long.NEG_ONE = goog.math.Long.fromInt(-1);
goog.math.Long.MAX_VALUE = goog.math.Long.fromBits(4294967295 | 0, 2147483647 | 0);
goog.math.Long.MIN_VALUE = goog.math.Long.fromBits(0, 2147483648 | 0);
goog.math.Long.TWO_PWR_24_ = goog.math.Long.fromInt(1 << 24);
goog.math.Long.prototype.toInt =
function() {
return this.low_
};
goog.math.Long.prototype.toNumber = function() {
return this.high_ * goog.math.Long.TWO_PWR_32_DBL_ + this.getLowBitsUnsigned()
};
goog.math.Long.prototype.toString = function(opt_radix) {
var radix = opt_radix || 10;
if (radix < 2 || 36 < radix)
throw Error("radix out of range: " + radix);
if (this.isZero())
return "0";
if (this.isNegative())
if (this.equals(goog.math.Long.MIN_VALUE)) {
var radixLong = goog.math.Long.fromNumber(radix);
var div = this.div(radixLong);
var rem = div.multiply(radixLong).subtract(this);
return div.toString(radix) + rem.toInt().toString(radix)
} else
return "-" + this.negate().toString(radix);
var radixToPower = goog.math.Long.fromNumber(Math.pow(radix, 6));
var rem = this;
var result = "";
while (true) {
var remDiv = rem.div(radixToPower);
var intval = rem.subtract(remDiv.multiply(radixToPower)).toInt();
var digits = intval.toString(radix);
rem = remDiv;
if (rem.isZero())
return digits + result;
else {
while (digits.length < 6)
digits = "0" + digits;
result = "" + digits + result
}
}
};
goog.math.Long.prototype.getHighBits = function() {
return this.high_
};
goog.math.Long.prototype.getLowBits = function() {
return this.low_
};
goog.math.Long.prototype.getLowBitsUnsigned = function() {
return this.low_ >= 0 ? this.low_ : goog.math.Long.TWO_PWR_32_DBL_ + this.low_
};
goog.math.Long.prototype.getNumBitsAbs = function() {
if (this.isNegative())
if (this.equals(goog.math.Long.MIN_VALUE))
return 64;
else
return this.negate().getNumBitsAbs();
else {
var val = this.high_ != 0 ? this.high_ : this.low_;
for (var bit = 31; bit > 0; bit--)
if ((val & 1 << bit) != 0)
break;
return this.high_ != 0 ? bit + 33 : bit + 1
}
};
goog.math.Long.prototype.isZero =
function() {
return this.high_ == 0 && this.low_ == 0
};
goog.math.Long.prototype.isNegative = function() {
return this.high_ < 0
};
goog.math.Long.prototype.isOdd = function() {
return (this.low_ & 1) == 1
};
goog.math.Long.prototype.equals = function(other) {
return this.high_ == other.high_ && this.low_ == other.low_
};
goog.math.Long.prototype.notEquals = function(other) {
return this.high_ != other.high_ || this.low_ != other.low_
};
goog.math.Long.prototype.lessThan = function(other) {
return this.compare(other) < 0
};
goog.math.Long.prototype.lessThanOrEqual =
function(other) {
return this.compare(other) <= 0
};
goog.math.Long.prototype.greaterThan = function(other) {
return this.compare(other) > 0
};
goog.math.Long.prototype.greaterThanOrEqual = function(other) {
return this.compare(other) >= 0
};
goog.math.Long.prototype.compare = function(other) {
if (this.equals(other))
return 0;
var thisNeg = this.isNegative();
var otherNeg = other.isNegative();
if (thisNeg && !otherNeg)
return -1;
if (!thisNeg && otherNeg)
return 1;
if (this.subtract(other).isNegative())
return -1;
else
return 1
};
goog.math.Long.prototype.negate =
function() {
if (this.equals(goog.math.Long.MIN_VALUE))
return goog.math.Long.MIN_VALUE;
else
return this.not().add(goog.math.Long.ONE)
};
goog.math.Long.prototype.add = function(other) {
var a48 = this.high_ >>> 16;
var a32 = this.high_ & 65535;
var a16 = this.low_ >>> 16;
var a00 = this.low_ & 65535;
var b48 = other.high_ >>> 16;
var b32 = other.high_ & 65535;
var b16 = other.low_ >>> 16;
var b00 = other.low_ & 65535;
var c48 = 0,
c32 = 0,
c16 = 0,
c00 = 0;
c00 += a00 + b00;
c16 += c00 >>> 16;
c00 &= 65535;
c16 += a16 + b16;
c32 += c16 >>> 16;
c16 &= 65535;
c32 += a32 + b32;
c48 += c32 >>>
16;
c32 &= 65535;
c48 += a48 + b48;
c48 &= 65535;
return goog.math.Long.fromBits(c16 << 16 | c00, c48 << 16 | c32)
};
goog.math.Long.prototype.subtract = function(other) {
return this.add(other.negate())
};
goog.math.Long.prototype.multiply = function(other) {
if (this.isZero())
return goog.math.Long.ZERO;
else if (other.isZero())
return goog.math.Long.ZERO;
if (this.equals(goog.math.Long.MIN_VALUE))
return other.isOdd() ? goog.math.Long.MIN_VALUE : goog.math.Long.ZERO;
else if (other.equals(goog.math.Long.MIN_VALUE))
return this.isOdd() ? goog.math.Long.MIN_VALUE :
goog.math.Long.ZERO;
if (this.isNegative())
if (other.isNegative())
return this.negate().multiply(other.negate());
else
return this.negate().multiply(other).negate();
else if (other.isNegative())
return this.multiply(other.negate()).negate();
if (this.lessThan(goog.math.Long.TWO_PWR_24_) && other.lessThan(goog.math.Long.TWO_PWR_24_))
return goog.math.Long.fromNumber(this.toNumber() * other.toNumber());
var a48 = this.high_ >>> 16;
var a32 = this.high_ & 65535;
var a16 = this.low_ >>> 16;
var a00 = this.low_ & 65535;
var b48 = other.high_ >>>
16;
var b32 = other.high_ & 65535;
var b16 = other.low_ >>> 16;
var b00 = other.low_ & 65535;
var c48 = 0,
c32 = 0,
c16 = 0,
c00 = 0;
c00 += a00 * b00;
c16 += c00 >>> 16;
c00 &= 65535;
c16 += a16 * b00;
c32 += c16 >>> 16;
c16 &= 65535;
c16 += a00 * b16;
c32 += c16 >>> 16;
c16 &= 65535;
c32 += a32 * b00;
c48 += c32 >>> 16;
c32 &= 65535;
c32 += a16 * b16;
c48 += c32 >>> 16;
c32 &= 65535;
c32 += a00 * b32;
c48 += c32 >>> 16;
c32 &= 65535;
c48 += a48 * b00 + a32 * b16 + a16 * b32 + a00 * b48;
c48 &= 65535;
return goog.math.Long.fromBits(c16 << 16 | c00, c48 << 16 | c32)
};
goog.math.Long.prototype.div = function(other) {
if (other.isZero())
throw Error("division by zero");
else if (this.isZero())
return goog.math.Long.ZERO;
if (this.equals(goog.math.Long.MIN_VALUE))
if (other.equals(goog.math.Long.ONE) || other.equals(goog.math.Long.NEG_ONE))
return goog.math.Long.MIN_VALUE;
else if (other.equals(goog.math.Long.MIN_VALUE))
return goog.math.Long.ONE;
else {
var halfThis = this.shiftRight(1);
var approx = halfThis.div(other).shiftLeft(1);
if (approx.equals(goog.math.Long.ZERO))
return other.isNegative() ? goog.math.Long.ONE : goog.math.Long.NEG_ONE;
else {
var rem = this.subtract(other.multiply(approx));
var result = approx.add(rem.div(other));
return result
}
}
else if (other.equals(goog.math.Long.MIN_VALUE))
return goog.math.Long.ZERO;
if (this.isNegative())
if (other.isNegative())
return this.negate().div(other.negate());
else
return this.negate().div(other).negate();
else if (other.isNegative())
return this.div(other.negate()).negate();
var res = goog.math.Long.ZERO;
var rem = this;
while (rem.greaterThanOrEqual(other)) {
var approx = Math.max(1, Math.floor(rem.toNumber() / other.toNumber()));
var log2 = Math.ceil(Math.log(approx) /
Math.LN2);
var delta = log2 <= 48 ? 1 : Math.pow(2, log2 - 48);
var approxRes = goog.math.Long.fromNumber(approx);
var approxRem = approxRes.multiply(other);
while (approxRem.isNegative() || approxRem.greaterThan(rem)) {
approx -= delta;
approxRes = goog.math.Long.fromNumber(approx);
approxRem = approxRes.multiply(other)
}
if (approxRes.isZero())
approxRes = goog.math.Long.ONE;
res = res.add(approxRes);
rem = rem.subtract(approxRem)
}
return res
};
goog.math.Long.prototype.modulo = function(other) {
return this.subtract(this.div(other).multiply(other))
};
goog.math.Long.prototype.not = function() {
return goog.math.Long.fromBits(~this.low_, ~this.high_)
};
goog.math.Long.prototype.and = function(other) {
return goog.math.Long.fromBits(this.low_ & other.low_, this.high_ & other.high_)
};
goog.math.Long.prototype.or = function(other) {
return goog.math.Long.fromBits(this.low_ | other.low_, this.high_ | other.high_)
};
goog.math.Long.prototype.xor = function(other) {
return goog.math.Long.fromBits(this.low_ ^ other.low_, this.high_ ^ other.high_)
};
goog.math.Long.prototype.shiftLeft = function(numBits) {
numBits &=
63;
if (numBits == 0)
return this;
else {
var low = this.low_;
if (numBits < 32) {
var high = this.high_;
return goog.math.Long.fromBits(low << numBits, high << numBits | low >>> 32 - numBits)
} else
return goog.math.Long.fromBits(0, low << numBits - 32)
}
};
goog.math.Long.prototype.shiftRight = function(numBits) {
numBits &= 63;
if (numBits == 0)
return this;
else {
var high = this.high_;
if (numBits < 32) {
var low = this.low_;
return goog.math.Long.fromBits(low >>> numBits | high << 32 - numBits, high >> numBits)
} else
return goog.math.Long.fromBits(high >> numBits - 32, high >=
0 ? 0 : -1)
}
};
goog.math.Long.prototype.shiftRightUnsigned = function(numBits) {
numBits &= 63;
if (numBits == 0)
return this;
else {
var high = this.high_;
if (numBits < 32) {
var low = this.low_;
return goog.math.Long.fromBits(low >>> numBits | high << 32 - numBits, high >>> numBits)
} else if (numBits == 32)
return goog.math.Long.fromBits(high, 0);
else
return goog.math.Long.fromBits(high >>> numBits - 32, 0)
}
};
var navigator = {
appName: "Modern Browser"
};
var dbits;
var canary = 0xdeadbeefcafe;
var j_lm = (canary & 16777215) == 15715070;
function BigInteger(a, b,
c) {
if (a != null)
if ("number" == typeof a)
this.fromNumber(a, b, c);
else if (b == null && "string" != typeof a)
this.fromString(a, 256);
else
this.fromString(a, b)
}
function nbi() {
return new BigInteger(null)
}
function am1(i, x, w, j, c, n) {
while (--n >= 0) {
var v = x * this[i++] + w[j] + c;
c = Math.floor(v / 67108864);
w[j++] = v & 67108863
}
return c
}
function am2(i, x, w, j, c, n) {
var xl = x & 32767,
xh = x >> 15;
while (--n >= 0) {
var l = this[i] & 32767;
var h = this[i++] >> 15;
var m = xh * l + h * xl;
l = xl * l + ((m & 32767) << 15) + w[j] + (c & 1073741823);
c = (l >>> 30) + (m >>> 15) + xh * h + (c >>> 30);
w[j++] = l & 1073741823
}
return c
}
function am3(i, x, w, j, c, n) {
var xl = x & 16383,
xh = x >> 14;
while (--n >= 0) {
var l = this[i] & 16383;
var h = this[i++] >> 14;
var m = xh * l + h * xl;
l = xl * l + ((m & 16383) << 14) + w[j] + c;
c = (l >> 28) + (m >> 14) + xh * h;
w[j++] = l & 268435455
}
return c
}
if (j_lm && navigator.appName == "Microsoft Internet Explorer") {
BigInteger.prototype.am = am2;
dbits = 30
} else if (j_lm && navigator.appName != "Netscape") {
BigInteger.prototype.am = am1;
dbits = 26
} else {
BigInteger.prototype.am = am3;
dbits = 28
}
BigInteger.prototype.DB = dbits;
BigInteger.prototype.DM =
(1 << dbits) - 1;
BigInteger.prototype.DV = 1 << dbits;
var BI_FP = 52;
BigInteger.prototype.FV = Math.pow(2, BI_FP);
BigInteger.prototype.F1 = BI_FP - dbits;
BigInteger.prototype.F2 = 2 * dbits - BI_FP;
var BI_RM = "0123456789abcdefghijklmnopqrstuvwxyz";
var BI_RC = new Array;
var rr,
vv;
rr = "0".charCodeAt(0);
for (vv = 0; vv <= 9; ++vv)
BI_RC[rr++] = vv;
rr = "a".charCodeAt(0);
for (vv = 10; vv < 36; ++vv)
BI_RC[rr++] = vv;
rr = "A".charCodeAt(0);
for (vv = 10; vv < 36; ++vv)
BI_RC[rr++] = vv;
function int2char(n) {
return BI_RM.charAt(n)
}
function intAt(s, i) {
var c = BI_RC[s.charCodeAt(i)];
return c == null ? -1 : c
}
function bnpCopyTo(r) {
for (var i = this.t - 1; i >= 0; --i)
r[i] = this[i];
r.t = this.t;
r.s = this.s
}
function bnpFromInt(x) {
this.t = 1;
this.s = x < 0 ? -1 : 0;
if (x > 0)
this[0] = x;
else if (x < -1)
this[0] = x + DV;
else
this.t = 0
}
function nbv(i) {
var r = nbi();
r.fromInt(i);
return r
}
function bnpFromString(s, b) {
var k;
if (b == 16)
k = 4;
else if (b == 8)
k = 3;
else if (b == 256)
k = 8;
else if (b == 2)
k = 1;
else if (b == 32)
k = 5;
else if (b == 4)
k = 2;
else {
this.fromRadix(s, b);
return
}
this.t = 0;
this.s = 0;
var i = s.length,
mi = false,
sh = 0;
while (--i >= 0) {
var x = k == 8 ? s[i] &
255 : intAt(s, i);
if (x < 0) {
if (s.charAt(i) == "-")
mi = true;
continue
}
mi = false;
if (sh == 0)
this[this.t++] = x;
else if (sh + k > this.DB) {
this[this.t - 1] |= (x & (1 << this.DB - sh) - 1) << sh;
this[this.t++] = x >> this.DB - sh
} else
this[this.t - 1] |= x << sh;
sh += k;
if (sh >= this.DB)
sh -= this.DB
}
if (k == 8 && (s[0] & 128) != 0) {
this.s = -1;
if (sh > 0)
this[this.t - 1] |= (1 << this.DB - sh) - 1 << sh
}
this.clamp();
if (mi)
BigInteger.ZERO.subTo(this, this)
}
function bnpClamp() {
var c = this.s & this.DM;
while (this.t > 0 && this[this.t - 1] == c)
--this.t
}
function bnToString(b) {
if (this.s < 0)
return "-" +
this.negate().toString(b);
var k;
if (b == 16)
k = 4;
else if (b == 8)
k = 3;
else if (b == 2)
k = 1;
else if (b == 32)
k = 5;
else if (b == 4)
k = 2;
else
return this.toRadix(b);
var km = (1 << k) - 1,
d,
m = false,
r = "",
i = this.t;
var p = this.DB - i * this.DB % k;
if (i-- > 0) {
if (p < this.DB && (d = this[i] >> p) > 0) {
m = true;
r = int2char(d)
}
while (i >= 0) {
if (p < k) {
d = (this[i] & (1 << p) - 1) << k - p;
d |= this[--i] >> (p += this.DB - k)
} else {
d = this[i] >> (p -= k) & km;
if (p <= 0) {
p += this.DB;
--i
}
}
if (d > 0)
m = true;
if (m)
r += int2char(d)
}
}
return m ? r : "0"
}
function bnNegate() {
var r = nbi();
BigInteger.ZERO.subTo(this,
r);
return r
}
function bnAbs() {
return this.s < 0 ? this.negate() : this
}
function bnCompareTo(a) {
var r = this.s - a.s;
if (r != 0)
return r;
var i = this.t;
r = i - a.t;
if (r != 0)
return this.s < 0 ? -r : r;
while (--i >= 0)
if ((r = this[i] - a[i]) != 0)
return r;
return 0
}
function nbits(x) {
var r = 1,
t;
if ((t = x >>> 16) != 0) {
x = t;
r += 16
}
if ((t = x >> 8) != 0) {
x = t;
r += 8
}
if ((t = x >> 4) != 0) {
x = t;
r += 4
}
if ((t = x >> 2) != 0) {
x = t;
r += 2
}
if ((t = x >> 1) != 0) {
x = t;
r += 1
}
return r
}
function bnBitLength() {
if (this.t <= 0)
return 0;
return this.DB * (this.t - 1) + nbits(this[this.t - 1] ^ this.s & this.DM)
}
function bnpDLShiftTo(n,
r) {
var i;
for (i = this.t - 1; i >= 0; --i)
r[i + n] = this[i];
for (i = n - 1; i >= 0; --i)
r[i] = 0;
r.t = this.t + n;
r.s = this.s
}
function bnpDRShiftTo(n, r) {
for (var i = n; i < this.t; ++i)
r[i - n] = this[i];
r.t = Math.max(this.t - n, 0);
r.s = this.s
}
function bnpLShiftTo(n, r) {
var bs = n % this.DB;
var cbs = this.DB - bs;
var bm = (1 << cbs) - 1;
var ds = Math.floor(n / this.DB),
c = this.s << bs & this.DM,
i;
for (i = this.t - 1; i >= 0; --i) {
r[i + ds + 1] = this[i] >> cbs | c;
c = (this[i] & bm) << bs
}
for (i = ds - 1; i >= 0; --i)
r[i] = 0;
r[ds] = c;
r.t = this.t + ds + 1;
r.s = this.s;
r.clamp()
}
function bnpRShiftTo(n, r) {
r.s =
this.s;
var ds = Math.floor(n / this.DB);
if (ds >= this.t) {
r.t = 0;
return
}
var bs = n % this.DB;
var cbs = this.DB - bs;
var bm = (1 << bs) - 1;
r[0] = this[ds] >> bs;
for (var i = ds + 1; i < this.t; ++i) {
r[i - ds - 1] |= (this[i] & bm) << cbs;
r[i - ds] = this[i] >> bs
}
if (bs > 0)
r[this.t - ds - 1] |= (this.s & bm) << cbs;
r.t = this.t - ds;
r.clamp()
}
function bnpSubTo(a, r) {
var i = 0,
c = 0,
m = Math.min(a.t, this.t);
while (i < m) {
c += this[i] - a[i];
r[i++] = c & this.DM;
c >>= this.DB
}
if (a.t < this.t) {
c -= a.s;
while (i < this.t) {
c += this[i];
r[i++] = c & this.DM;
c >>= this.DB
}
c += this.s
} else {
c += this.s;
while (i <
a.t) {
c -= a[i];
r[i++] = c & this.DM;
c >>= this.DB
}
c -= a.s
}
r.s = c < 0 ? -1 : 0;
if (c < -1)
r[i++] = this.DV + c;
else if (c > 0)
r[i++] = c;
r.t = i;
r.clamp()
}
function bnpMultiplyTo(a, r) {
var x = this.abs(),
y = a.abs();
var i = x.t;
r.t = i + y.t;
while (--i >= 0)
r[i] = 0;
for (i = 0; i < y.t; ++i)
r[i + x.t] = x.am(0, y[i], r, i, 0, x.t);
r.s = 0;
r.clamp();
if (this.s != a.s)
BigInteger.ZERO.subTo(r, r)
}
function bnpSquareTo(r) {
var x = this.abs();
var i = r.t = 2 * x.t;
while (--i >= 0)
r[i] = 0;
for (i = 0; i < x.t - 1; ++i) {
var c = x.am(i, x[i], r, 2 * i, 0, 1);
if ((r[i + x.t] += x.am(i + 1, 2 * x[i], r, 2 * i + 1, c, x.t - i - 1)) >=
x.DV) {
r[i + x.t] -= x.DV;
r[i + x.t + 1] = 1
}
}
if (r.t > 0)
r[r.t - 1] += x.am(i, x[i], r, 2 * i, 0, 1);
r.s = 0;
r.clamp()
}
function bnpDivRemTo(m, q, r) {
var pm = m.abs();
if (pm.t <= 0)
return;
var pt = this.abs();
if (pt.t < pm.t) {
if (q != null)
q.fromInt(0);
if (r != null)
this.copyTo(r);
return
}
if (r == null)
r = nbi();
var y = nbi(),
ts = this.s,
ms = m.s;
var nsh = this.DB - nbits(pm[pm.t - 1]);
if (nsh > 0) {
pm.lShiftTo(nsh, y);
pt.lShiftTo(nsh, r)
} else {
pm.copyTo(y);
pt.copyTo(r)
}
var ys = y.t;
var y0 = y[ys - 1];
if (y0 == 0)
return;
var yt = y0 * (1 << this.F1) + (ys > 1 ? y[ys - 2] >> this.F2 : 0);
var d1 =
this.FV / yt,
d2 = (1 << this.F1) / yt,
e = 1 << this.F2;
var i = r.t,
j = i - ys,
t = q == null ? nbi() : q;
y.dlShiftTo(j, t);
if (r.compareTo(t) >= 0) {
r[r.t++] = 1;
r.subTo(t, r)
}
BigInteger.ONE.dlShiftTo(ys, t);
t.subTo(y, y);
while (y.t < ys)
y[y.t++] = 0;
while (--j >= 0) {
var qd = r[--i] == y0 ? this.DM : Math.floor(r[i] * d1 + (r[i - 1] + e) * d2);
if ((r[i] += y.am(0, qd, r, j, 0, ys)) < qd) {
y.dlShiftTo(j, t);
r.subTo(t, r);
while (r[i] < --qd)
r.subTo(t, r)
}
}
if (q != null) {
r.drShiftTo(ys, q);
if (ts != ms)
BigInteger.ZERO.subTo(q, q)
}
r.t = ys;
r.clamp();
if (nsh > 0)
r.rShiftTo(nsh, r);
if (ts < 0)
BigInteger.ZERO.subTo(r,
r)
}
function bnMod(a) {
var r = nbi();
this.abs().divRemTo(a, null, r);
if (this.s < 0 && r.compareTo(BigInteger.ZERO) > 0)
a.subTo(r, r);
return r
}
function Classic(m) {
this.m = m
}
function cConvert(x) {
if (x.s < 0 || x.compareTo(this.m) >= 0)
return x.mod(this.m);
else
return x
}
function cRevert(x) {
return x
}
function cReduce(x) {
x.divRemTo(this.m, null, x)
}
function cMulTo(x, y, r) {
x.multiplyTo(y, r);
this.reduce(r)
}
function cSqrTo(x, r) {
x.squareTo(r);
this.reduce(r)
}
Classic.prototype.convert = cConvert;
Classic.prototype.revert = cRevert;
Classic.prototype.reduce =
cReduce;
Classic.prototype.mulTo = cMulTo;
Classic.prototype.sqrTo = cSqrTo;
function bnpInvDigit() {
if (this.t < 1)
return 0;
var x = this[0];
if ((x & 1) == 0)
return 0;
var y = x & 3;
y = y * (2 - (x & 15) * y) & 15;
y = y * (2 - (x & 255) * y) & 255;
y = y * (2 - ((x & 65535) * y & 65535)) & 65535;
y = y * (2 - x * y % this.DV) % this.DV;
return y > 0 ? this.DV - y : -y
}
function Montgomery(m) {
this.m = m;
this.mp = m.invDigit();
this.mpl = this.mp & 32767;
this.mph = this.mp >> 15;
this.um = (1 << m.DB - 15) - 1;
this.mt2 = 2 * m.t
}
function montConvert(x) {
var r = nbi();
x.abs().dlShiftTo(this.m.t, r);
r.divRemTo(this.m,
null, r);
if (x.s < 0 && r.compareTo(BigInteger.ZERO) > 0)
this.m.subTo(r, r);
return r
}
function montRevert(x) {
var r = nbi();
x.copyTo(r);
this.reduce(r);
return r
}
function montReduce(x) {
while (x.t <= this.mt2)
x[x.t++] = 0;
for (var i = 0; i < this.m.t; ++i) {
var j = x[i] & 32767;
var u0 = j * this.mpl + ((j * this.mph + (x[i] >> 15) * this.mpl & this.um) << 15) & x.DM;
j = i + this.m.t;
x[j] += this.m.am(0, u0, x, i, 0, this.m.t);
while (x[j] >= x.DV) {
x[j] -= x.DV;
x[++j]++
}
}
x.clamp();
x.drShiftTo(this.m.t, x);
if (x.compareTo(this.m) >= 0)
x.subTo(this.m, x)
}
function montSqrTo(x,
r) {
x.squareTo(r);
this.reduce(r)
}
function montMulTo(x, y, r) {
x.multiplyTo(y, r);
this.reduce(r)
}
Montgomery.prototype.convert = montConvert;
Montgomery.prototype.revert = montRevert;
Montgomery.prototype.reduce = montReduce;
Montgomery.prototype.mulTo = montMulTo;
Montgomery.prototype.sqrTo = montSqrTo;
function bnpIsEven() {
return (this.t > 0 ? this[0] & 1 : this.s) == 0
}
function bnpExp(e, z) {
if (e > 4294967295 || e < 1)
return BigInteger.ONE;
var r = nbi(),
r2 = nbi(),
g = z.convert(this),
i = nbits(e) - 1;
g.copyTo(r);
while (--i >= 0) {
z.sqrTo(r, r2);
if ((e &
1 << i) > 0)
z.mulTo(r2, g, r);
else {
var t = r;
r = r2;
r2 = t
}
}
return z.revert(r)
}
function bnModPowInt(e, m) {
var z;
if (e < 256 || m.isEven())
z = new Classic(m);
else
z = new Montgomery(m);
return this.exp(e, z)
}
BigInteger.prototype.copyTo = bnpCopyTo;
BigInteger.prototype.fromInt = bnpFromInt;
BigInteger.prototype.fromString = bnpFromString;
BigInteger.prototype.clamp = bnpClamp;
BigInteger.prototype.dlShiftTo = bnpDLShiftTo;
BigInteger.prototype.drShiftTo = bnpDRShiftTo;
BigInteger.prototype.lShiftTo = bnpLShiftTo;
BigInteger.prototype.rShiftTo =
bnpRShiftTo;
BigInteger.prototype.subTo = bnpSubTo;
BigInteger.prototype.multiplyTo = bnpMultiplyTo;
BigInteger.prototype.squareTo = bnpSquareTo;
BigInteger.prototype.divRemTo = bnpDivRemTo;
BigInteger.prototype.invDigit = bnpInvDigit;
BigInteger.prototype.isEven = bnpIsEven;
BigInteger.prototype.exp = bnpExp;
BigInteger.prototype.toString = bnToString;
BigInteger.prototype.negate = bnNegate;
BigInteger.prototype.abs = bnAbs;
BigInteger.prototype.compareTo = bnCompareTo;
BigInteger.prototype.bitLength = bnBitLength;
BigInteger.prototype.mod =
bnMod;
BigInteger.prototype.modPowInt = bnModPowInt;
BigInteger.ZERO = nbv(0);
BigInteger.ONE = nbv(1);
function bnpFromRadix(s, b) {
this.fromInt(0);
if (b == null)
b = 10;
var cs = this.chunkSize(b);
var d = Math.pow(b, cs),
mi = false,
j = 0,
w = 0;
for (var i = 0; i < s.length; ++i) {
var x = intAt(s, i);
if (x < 0) {
if (s.charAt(i) == "-" && this.signum() == 0)
mi = true;
continue
}
w = b * w + x;
if (++j >= cs) {
this.dMultiply(d);
this.dAddOffset(w, 0);
j = 0;
w = 0
}
}
if (j > 0) {
this.dMultiply(Math.pow(b, j));
this.dAddOffset(w, 0)
}
if (mi)
BigInteger.ZERO.subTo(this, this)
}
function bnpChunkSize(r) {
return Math.floor(Math.LN2 *
this.DB / Math.log(r))
}
function bnSigNum() {
if (this.s < 0)
return -1;
else if (this.t <= 0 || this.t == 1 && this[0] <= 0)
return 0;
else
return 1
}
function bnpDMultiply(n) {
this[this.t] = this.am(0, n - 1, this, 0, 0, this.t);
++this.t;
this.clamp()
}
function bnpDAddOffset(n, w) {
if (n == 0)
return;
while (this.t <= w)
this[this.t++] = 0;
this[w] += n;
while (this[w] >= this.DV) {
this[w] -= this.DV;
if (++w >= this.t)
this[this.t++] = 0;
++this[w]
}
}
function bnpToRadix(b) {
if (b == null)
b = 10;
if (this.signum() == 0 || b < 2 || b > 36)
return "0";
var cs = this.chunkSize(b);
var a = Math.pow(b,
cs);
var d = nbv(a),
y = nbi(),
z = nbi(),
r = "";
this.divRemTo(d, y, z);
while (y.signum() > 0) {
r = (a + z.intValue()).toString(b).substr(1) + r;
y.divRemTo(d, y, z)
}
return z.intValue().toString(b) + r
}
function bnIntValue() {
if (this.s < 0)
if (this.t == 1)
return this[0] - this.DV;
else {
if (this.t == 0)
return -1
}
else if (this.t == 1)
return this[0];
else if (this.t == 0)
return 0;
return (this[1] & (1 << 32 - this.DB) - 1) << this.DB | this[0]
}
function bnpAddTo(a, r) {
var i = 0,
c = 0,
m = Math.min(a.t, this.t);
while (i < m) {
c += this[i] + a[i];
r[i++] = c & this.DM;
c >>= this.DB
}
if (a.t <
this.t) {
c += a.s;
while (i < this.t) {
c += this[i];
r[i++] = c & this.DM;
c >>= this.DB
}
c += this.s
} else {
c += this.s;
while (i < a.t) {
c += a[i];
r[i++] = c & this.DM;
c >>= this.DB
}
c += a.s
}
r.s = c < 0 ? -1 : 0;
if (c > 0)
r[i++] = c;
else if (c < -1)
r[i++] = this.DV + c;
r.t = i;
r.clamp()
}
BigInteger.prototype.fromRadix = bnpFromRadix;
BigInteger.prototype.chunkSize = bnpChunkSize;
BigInteger.prototype.signum = bnSigNum;
BigInteger.prototype.dMultiply = bnpDMultiply;
BigInteger.prototype.dAddOffset = bnpDAddOffset;
BigInteger.prototype.toRadix = bnpToRadix;
BigInteger.prototype.intValue =
bnIntValue;
BigInteger.prototype.addTo = bnpAddTo;
var Wrapper = {
abs: function(l, h) {
var x = new goog.math.Long(l, h);
var ret;
if (x.isNegative())
ret = x.negate();
else
ret = x;
HEAP32[tempDoublePtr >> 2] = ret.low_;
HEAP32[tempDoublePtr + 4 >> 2] = ret.high_
},
ensureTemps: function() {
if (Wrapper.ensuredTemps)
return;
Wrapper.ensuredTemps = true;
Wrapper.two32 = new BigInteger;
Wrapper.two32.fromString("4294967296", 10);
Wrapper.two64 = new BigInteger;
Wrapper.two64.fromString("18446744073709551616", 10);
Wrapper.temp1 = new BigInteger;
Wrapper.temp2 =
new BigInteger
},
lh2bignum: function(l, h) {
var a = new BigInteger;
a.fromString(h.toString(), 10);
var b = new BigInteger;
a.multiplyTo(Wrapper.two32, b);
var c = new BigInteger;
c.fromString(l.toString(), 10);
var d = new BigInteger;
c.addTo(b, d);
return d
},
stringify: function(l, h, unsigned) {
var ret = (new goog.math.Long(l, h)).toString();
if (unsigned && ret[0] == "-") {
Wrapper.ensureTemps();
var bignum = new BigInteger;
bignum.fromString(ret, 10);
ret = new BigInteger;
Wrapper.two64.addTo(bignum, ret);
ret = ret.toString(10)
}
return ret
},
fromString: function(str,
base, min, max, unsigned) {
Wrapper.ensureTemps();
var bignum = new BigInteger;
bignum.fromString(str, base);
var bigmin = new BigInteger;
bigmin.fromString(min, 10);
var bigmax = new BigInteger;
bigmax.fromString(max, 10);
if (unsigned && bignum.compareTo(BigInteger.ZERO) < 0) {
var temp = new BigInteger;
bignum.addTo(Wrapper.two64, temp);
bignum = temp
}
var error = false;
if (bignum.compareTo(bigmin) < 0) {
bignum = bigmin;
error = true
} else if (bignum.compareTo(bigmax) > 0) {
bignum = bigmax;
error = true
}
var ret = goog.math.Long.fromString(bignum.toString());
HEAP32[tempDoublePtr >> 2] = ret.low_;
HEAP32[tempDoublePtr + 4 >> 2] = ret.high_;
if (error)
throw "range error";
}
};
return Wrapper
}();
if (memoryInitializer)
if (ENVIRONMENT_IS_NODE || ENVIRONMENT_IS_SHELL) {
var data = Module["readBinary"](memoryInitializer);
HEAPU8.set(data, STATIC_BASE)
} else {
addRunDependency("memory initializer");
Browser.asyncLoad(memoryInitializer, function(data) {
HEAPU8.set(data, STATIC_BASE);
removeRunDependency("memory initializer")
}, function(data) {
throw "could not load memory initializer " + memoryInitializer;
})
}
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"] && shouldRunNow)
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("/bin/this.program"), "i8", ALLOC_NORMAL)];
pad();
for (var i = 0; i < argc - 1; i = i + 1) {
argv.push(allocate(intArrayFromString(args[i]),
"i8", ALLOC_NORMAL));
pad()
}
argv.push(0);
argv = allocate(argv, "i32", ALLOC_NORMAL);
initialStackTop = STACKTOP;
try {
var ret = Module["_main"](argc, argv, 0);
if (!Module["noExitRuntime"])
exit(ret)
} catch (e) {
if (e instanceof ExitStatus)
return;
else if (e == "SimulateInfiniteLoop") {
Module["noExitRuntime"] = true;
return
} else {
if (e && typeof e === "object" && e.stack)
Module.printErr("exception thrown: " + [e, e.stack]);
throw e;
}
} finally {
calledMain = true
}
};
function run(args) {
args = args || Module["arguments"];
if (preloadStartTime === null)
preloadStartTime = Date.now();
if (runDependencies > 0) {
Module.printErr("run() called, but dependencies remain, so not running");
return
}
preRun();
if (runDependencies > 0)
return;
if (Module["calledRun"])
return;
function doRun() {
if (Module["calledRun"])
return;
Module["calledRun"] = true;
ensureInitRuntime();
preMain();
if (ENVIRONMENT_IS_WEB && preloadStartTime !== null)
Module.printErr("pre-main prep time: " + (Date.now() - preloadStartTime) + " ms");
if (Module["_main"] &&
shouldRunNow)
Module["callMain"](args);
postRun()
}
if (Module["setStatus"]) {
Module["setStatus"]("Running...");
setTimeout(function() {
setTimeout(function() {
Module["setStatus"]("")
}, 1);
if (!ABORT)
doRun()
}, 1)
} else
doRun()
}
Module["run"] = Module.run = run;
function exit(status) {
ABORT = true;
EXITSTATUS = status;
STACKTOP = initialStackTop;
exitRuntime();
throw new ExitStatus(status);
}
Module["exit"] = Module.exit = exit;
function abort(text) {
if (text) {
Module.print(text);
Module.printErr(text)
}
ABORT = true;
EXITSTATUS = 1;
var extra = "\nIf this abort() is unexpected, build with -s ASSERTIONS=1 which can give more information.";
throw "abort() at " + stackTrace() + extra;
}
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
};
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 < FLT_EPSILON) {
out.x = 0;
out.y = 0;
return
}
var invLength = 1 / length;
out.x = input.x * invLength;
out.y = input.y * invLength
};
b2Vec2.Sub = function(out, input, subtract) {
out.x = input.x - subtract.x;
out.y = input.y - subtract.y
};
b2Vec2.prototype.Clone = function() {
return new b2Vec2(this.x, this.y)
};
b2Vec2.prototype.Set = function(x, y) {
this.x = x;
this.y = y
};
b2Vec2.prototype.Length = function() {
var x = this.x;
var y = this.y;
return Math.sqrt(x * x + y * y)
};
b2Vec2.prototype.LengthSquared = function() {
var x = this.x;
var y = this.y;
return x * x + y * y
};
function b2Rot(radians) {
if (radians === undefined)
radians = 0;
this.s = Math.sin(radians);
this.c = Math.cos(radians)
}
b2Rot.prototype.Set = function(radians) {
this.s = Math.sin(radians);
this.c = Math.cos(radians)
};
b2Rot.prototype.SetIdentity = function() {
this.s = 0;
this.c = 1
};
b2Rot.prototype.GetXAxis = function() {
return new b2Vec2(this.c, this.s)
};
function b2Transform(position, rotation) {
if (position === undefined)
position = new b2Vec2;
if (rotation === undefined)
rotation = new b2Rot;
this.p = position;
this.q = rotation
}
b2Transform.prototype.FromFloat64Array = function(arr) {
var p = this.p;
var q = this.q;
p.x = arr[0];
p.y = arr[1];
q.s = arr[2];
q.c = arr[3]
};
b2Transform.prototype.SetIdentity = function() {
this.p.Set(0, 0);
this.q.SetIdentity()
};
function b2AABB() {
this.lowerBound = new b2Vec2;
this.upperBound = new b2Vec2
}
b2AABB.prototype.GetCenter = function() {
var sum = new b2Vec2;
b2Vec2.Add(sum, this.lowerBound, this.upperBound);
b2Vec2.MulScalar(sum, sum, .5)
};
var b2Manifold_GetPointCount = Module.cwrap("b2Manifold_GetPointCount", "number", ["number"]);
function b2Manifold(ptr) {
this.ptr = ptr
}
b2Manifold.prototype.GetPointCount = function() {
return b2Manifold_GetPointCount(this.ptr)
};
var b2WorldManifold_points_offset = Offsets.b2WorldManifold.points;
function b2WorldManifold(ptr) {
this.buffer = new DataView(Module.HEAPU8.buffer, ptr);
this.ptr = ptr
}
b2WorldManifold.prototype.GetPoint = function(i) {
var point = new b2Vec2;
point.x = this.buffer.getFloat32(i * 2 + b2WorldManifold_points_offset, true);
point.y = this.buffer.getFloat32(i * 2 + 4 + b2WorldManifold_points_offset, true);
return point
};
var b2EdgeShape_CreateFixture = Module.cwrap("b2EdgeShape_CreateFixture", "number", ["number", "number", "number", "number", "number", "number", "number", "number", "number", "number", "number", "number", "number", "number", "number", "number"]);
function b2EdgeShape() {
this.hasVertex0 = false;
this.hasVertex3 = false;
this.vertex0 = new b2Vec2;
this.vertex1 = new b2Vec2;
this.vertex2 = new b2Vec2;
this.vertex3 = new b2Vec2;
this.type = b2Shape_Type_e_edge
}
b2EdgeShape.prototype.Set = function(v1, v2) {
this.vertex1 = v1;
this.vertex2 = v2;
this.hasVertex0 = false;
this.hasVertex3 = false
};
b2EdgeShape.prototype._CreateFixture = function(body, fixtureDef) {
return b2EdgeShape_CreateFixture(body.ptr, fixtureDef.density, fixtureDef.friction, fixtureDef.isSensor, fixtureDef.restitution, fixtureDef.userData, fixtureDef.filter.categoryBits, fixtureDef.filter.groupIndex, fixtureDef.filter.maskBits, this.hasVertex0, this.hasVertex3, this.vertex0.x, this.vertex0.y, this.vertex1.x, this.vertex1.y, this.vertex2.x, this.vertex2.y, this.vertex3.x, this.vertex3.y)
};
var b2PolygonShape_CreateFixture_3 = Module.cwrap("b2PolygonShape_CreateFixture_3", "number", ["number", "number", "number", "number", "number", "number", "number", "number", "number", "number", "number", "number"]);
var b2PolygonShape_CreateFixture_4 = Module.cwrap("b2PolygonShape_CreateFixture_4", "number", ["number", "number", "number", "number", "number", "number", "number", "number", "number", "number", "number", "number", "number", "number"]);
var b2PolygonShape_CreateFixture_5 = Module.cwrap("b2PolygonShape_CreateFixture_5", "number", ["number", "number", "number", "number", "number", "number", "number", "number", "number", "number", "number", "number", "number", "number", "number", "number"]);
var b2PolygonShape_CreateFixture_6 = Module.cwrap("b2PolygonShape_CreateFixture_6", "number", ["number", "number", "number", "number", "number", "number", "number", "number", "number", "number", "number", "number", "number", "number", "number", "number", "number", "number"]);
var b2PolygonShape_CreateFixture_7 = Module.cwrap("b2PolygonShape_CreateFixture_7", "number", ["number", "number", "number", "number", "number", "number", "number", "number", "number", "number", "number", "number", "number", "number", "number", "number", "number", "number", "number", "number"]);
var b2PolygonShape_CreateFixture_8 = Module.cwrap("b2PolygonShape_CreateFixture_8", "number", ["number", "number", "number", "number", "number", "number", "number", "number", "number", "number", "number", "number", "number", "number", "number", "number", "number", "number", "number", "number", "number", "number"]);
var b2PolygonShape_CreateParticleGroup_4 = Module.cwrap("b2PolygonShape_CreateParticleGroup_4", "number", ["number", "number", "number", "number", "number", "number", "number", "number", "number", "number", "number", "number", "number", "number", "number", "number", "number", "number", "number", "number", "number", "number", "number", "number", "number", "number", "number", "number"]);
var b2PolygonShape_DestroyParticlesInShape_4 = Module.cwrap("b2PolygonShape_DestroyParticlesInShape_4", "number", ["number", "number", "number", "number", "number", "number", "number", "number", "number", "number", "number", "number", "number"]);
function b2PolygonShape() {
this.position = new b2Vec2;
this.vertices = [];
this.type = b2Shape_Type_e_polygon
}
b2PolygonShape.prototype.SetAsBoxXY = function(hx, hy) {
this.vertices[0] = new b2Vec2(-hx, -hy);
this.vertices[1] = new b2Vec2(hx, -hy);
this.vertices[2] = new b2Vec2(hx, hy);
this.vertices[3] = new b2Vec2(-hx, hy)
};
b2PolygonShape.prototype.SetAsBoxXYCenterAngle = function(hx, hy, center, angle) {
this.vertices[0] = new b2Vec2(-hx, -hy);
this.vertices[1] = new b2Vec2(hx, -hy);
this.vertices[2] = new b2Vec2(hx, hy);
this.vertices[3] = new b2Vec2(-hx, hy);
var xf = new b2Transform;
xf.p = center;
xf.q.Set(angle);
for (var i = 0; i < 4; i++)
b2Vec2.Mul(this.vertices[i], xf, this.vertices[i])
};
b2PolygonShape.prototype._CreateFixture = function(body, fixtureDef) {
var vertices = this.vertices;
switch (vertices.length) {
case 3:
var v0 = vertices[0];
var v1 = vertices[1];
var v2 = vertices[2];
return b2PolygonShape_CreateFixture_3(body.ptr, fixtureDef.density, fixtureDef.friction, fixtureDef.isSensor, fixtureDef.restitution, fixtureDef.userData, fixtureDef.filter.categoryBits, fixtureDef.filter.groupIndex, fixtureDef.filter.maskBits, v0.x, v0.y, v1.x, v1.y, v2.x, v2.y);
break;
case 4:
var v0 = vertices[0];
var v1 = vertices[1];
var v2 =
vertices[2];
var v3 = vertices[3];
return b2PolygonShape_CreateFixture_4(body.ptr, fixtureDef.density, fixtureDef.friction, fixtureDef.isSensor, fixtureDef.restitution, fixtureDef.userData, fixtureDef.filter.categoryBits, fixtureDef.filter.groupIndex, fixtureDef.filter.maskBits, v0.x, v0.y, v1.x, v1.y, v2.x, v2.y, v3.x, v3.y);
break;
case 5:
var v0 = vertices[0];
var v1 = vertices[1];
var v2 = vertices[2];
var v3 = vertices[3];
var v4 = vertices[4];
return b2PolygonShape_CreateFixture_5(body.ptr, fixtureDef.density, fixtureDef.friction,
fixtureDef.isSensor, fixtureDef.restitution, fixtureDef.userData, fixtureDef.filter.categoryBits, fixtureDef.filter.groupIndex, fixtureDef.filter.maskBits, v0.x, v0.y, v1.x, v1.y, v2.x, v2.y, v3.x, v3.y, v4.x, v4.y);
break;
case 6:
var v0 = vertices[0];
var v1 = vertices[1];
var v2 = vertices[2];
var v3 = vertices[3];
var v4 = vertices[4];
var v5 = vertices[5];
return b2PolygonShape_CreateFixture_6(body.ptr, fixtureDef.density, fixtureDef.friction, fixtureDef.isSensor, fixtureDef.restitution, fixtureDef.userData, fixtureDef.filter.categoryBits,
fixtureDef.filter.groupIndex, fixtureDef.filter.maskBits, v0.x, v0.y, v1.x, v1.y, v2.x, v2.y, v3.x, v3.y, v4.x, v4.y, v5.x, v5.y);
break;
case 7:
var v0 = vertices[0];
var v1 = vertices[1];
var v2 = vertices[2];
var v3 = vertices[3];
var v4 = vertices[4];
var v5 = vertices[5];
var v6 = vertices[6];
return b2PolygonShape_CreateFixture_7(body.ptr, fixtureDef.density, fixtureDef.friction, fixtureDef.isSensor, fixtureDef.restitution, fixtureDef.userData, fixtureDef.filter.categoryBits, fixtureDef.filter.groupIndex, fixtureDef.filter.maskBits, v0.x,
v0.y, v1.x, v1.y, v2.x, v2.y, v3.x, v3.y, v4.x, v4.y, v5.x, v5.y, v6.x, v6.y);
break;
case 8:
var v0 = vertices[0];
var v1 = vertices[1];
var v2 = vertices[2];
var v3 = vertices[3];
var v4 = vertices[4];
var v5 = vertices[5];
var v6 = vertices[6];
var v7 = vertices[7];
return b2PolygonShape_CreateFixture_8(body.ptr, fixtureDef.density, fixtureDef.friction, fixtureDef.isSensor, fixtureDef.restitution, fixtureDef.userData, fixtureDef.filter.categoryBits, fixtureDef.filter.groupIndex, fixtureDef.filter.maskBits, v0.x, v0.y, v1.x, v1.y, v2.x, v2.y, v3.x,
v3.y, v4.x, v4.y, v5.x, v5.y, v6.x, v6.y, v6.x, v7.y);
break
}
};
b2PolygonShape.prototype._CreateParticleGroup = function(particleSystem, pgd) {
var v = this.vertices;
switch (v.length) {
case 3:
break;
case 4:
return b2PolygonShape_CreateParticleGroup_4(particleSystem.ptr, pgd.angle, pgd.angularVelocity, pgd.color.r, pgd.color.g, pgd.color.b, pgd.color.a, pgd.flags, pgd.group.ptr, pgd.groupFlags, pgd.lifetime, pgd.linearVelocity.x, pgd.linearVelocity.y, pgd.position.x, pgd.position.y, pgd.positionData, pgd.particleCount, pgd.strength, pgd.stride, pgd.userData, v[0].x, v[0].y, v[1].x, v[1].y, v[2].x,
v[2].y, v[3].x, v[3].y);
break
}
};
b2PolygonShape.prototype._DestroyParticlesInShape = function(ps, xf) {
var v = this.vertices;
switch (v.length) {
case 3:
break;
case 4:
return b2PolygonShape_DestroyParticlesInShape_4(ps.ptr, v[0].x, v[0].y, v[1].x, v[1].y, v[2].x, v[2].y, v[3].x, v[3].y, xf.p.x, xf.p.y, xf.q.s, xf.q.c);
break
}
};
b2PolygonShape.prototype.Validate = function() {
for (var i = 0, max = this.vertices.length; i < max; ++i) {
var i1 = i;
var i2 = i < max - 1 ? i1 + 1 : 0;
var p = this.vertices[i1];
var e = this.vertices[i2];
var eSubP = new b2Vec2;
b2Vec2.Sub(eSubP, e, p);
for (var j = 0; j < max; ++j) {
if (j == i1 || j == i2)
continue;
var v = new b2Vec2;
b2Vec2.Sub(v, this.vertices[j], p);
var c = b2Vec2.Cross(eSubP, v);
if (c < 0)
return false
}
}
return true
};
var b2Shape_Type_e_circle = 0;
var b2Shape_Type_e_edge = 1;
var b2Shape_Type_e_polygon = 2;
var b2Shape_Type_e_chain = 3;
var b2Shape_Type_e_typeCount = 4;
var b2_linearSlop = .005;
var b2_polygonRadius = 2 * b2_linearSlop;
var b2_maxPolygonVertices = 8;
function b2MassData(mass, center, I) {
this.mass = mass;
this.center = center;
this.I = I
}
;
var b2ChainShape_CreateFixture = Module.cwrap("b2ChainShape_CreateFixture", "number", ["number", "number", "number", "number", "number", "number", "number", "number"]);
function b2ChainShape() {
this.radius = b2_polygonRadius;
this.vertices = [];
this.type = b2Shape_Type_e_chain
}
b2ChainShape.prototype.CreateLoop = function() {
this.vertices.push(this.vertices[0])
};
b2ChainShape.prototype._CreateFixture = function(body, fixtureDef) {
var vertices = this.vertices;
var chainLength = vertices.length;
var dataLength = chainLength * 2;
var data = new Float32Array(dataLength);
for (var i = 0, j = 0; i < dataLength; i += 2, j++) {
data[i] = vertices[j].x;
data[i + 1] = vertices[j].y
}
var nDataBytes = data.length * data.BYTES_PER_ELEMENT;
var dataPtr = Module._malloc(nDataBytes);
var dataHeap = new Uint8Array(Module.HEAPU8.buffer, dataPtr, nDataBytes);
dataHeap.set(new Uint8Array(data.buffer));
var fixture = b2ChainShape_CreateFixture(body.ptr,
fixtureDef.density, fixtureDef.friction, fixtureDef.isSensor, fixtureDef.restitution, fixtureDef.userData, fixtureDef.filter.categoryBits, fixtureDef.filter.groupIndex, fixtureDef.filter.maskBits, dataHeap.byteOffset, data.length);
Module._free(dataHeap.byteOffset);
return fixture
};
var b2CircleShape_CreateFixture = Module.cwrap("b2CircleShape_CreateFixture", "number", ["number", "number", "number", "number", "number", "number", "number", "number", "number"]);
var b2CircleShape_CreateParticleGroup = Module.cwrap("b2CircleShape_CreateParticleGroup", "number", ["number", "number", "number", "number", "number", "number", "number", "number", "number", "number", "number", "number", "number", "number", "number", "number", "number", "number", "number", "number", "number", "number", "number"]);
var b2CircleShape_DestroyParticlesInShape = Module.cwrap("b2CircleShape_DestroyParticlesInShape", "number", ["number", "number", "number", "number", "number", "number", "number", "number"]);
function b2CircleShape() {
this.position = new b2Vec2;
this.radius = 0;
this.type = b2Shape_Type_e_circle
}
b2CircleShape.prototype._CreateFixture = function(body, fixtureDef) {
return b2CircleShape_CreateFixture(body.ptr, fixtureDef.density, fixtureDef.friction, fixtureDef.isSensor, fixtureDef.restitution, fixtureDef.userData, fixtureDef.filter.categoryBits, fixtureDef.filter.groupIndex, fixtureDef.filter.maskBits, this.position.x, this.position.y, this.radius)
};
b2CircleShape.prototype._CreateParticleGroup = function(particleSystem, pgd) {
return b2CircleShape_CreateParticleGroup(particleSystem.ptr, pgd.angle, pgd.angularVelocity, pgd.color.r, pgd.color.g, pgd.color.b, pgd.color.a, pgd.flags, pgd.group.ptr, pgd.groupFlags, pgd.lifetime, pgd.linearVelocity.x, pgd.linearVelocity.y, pgd.position.x, pgd.position.y, pgd.positionData, pgd.particleCount, pgd.strength, pgd.stride, pgd.userData, this.position.x, this.position.y, this.radius)
};
b2CircleShape.prototype._DestroyParticlesInShape = function(ps, xf) {
return b2CircleShape_DestroyParticlesInShape(ps.ptr, this.position.x, this.position.y, this.radius, xf.p.x, xf.p.y, xf.q.s, xf.q.c)
};
var b2Body_ApplyAngularImpulse = Module.cwrap("b2Body_ApplyAngularImpulse", "null", ["number", "number", "number"]);
var b2Body_ApplyForce = Module.cwrap("b2Body_ApplyForce", "number", ["number", "number", "number", "number", "number", "number"]);
var b2Body_ApplyForceToCenter = Module.cwrap("b2Body_ApplyForceToCenter", "number", ["number", "number", "number", "number"]);
var b2Body_ApplyTorque = Module.cwrap("b2Body_ApplyTorque", "number", ["number", "number", "number"]);
var b2Body_DestroyFixture = Module.cwrap("b2Body_DestroyFixture", "null", ["number", "number"]);
var b2Body_GetAngle = Module.cwrap("b2Body_GetAngle", "number", ["number"]);
var b2Body_GetAngularVelocity = Module.cwrap("b2Body_GetAngularVelocity", "number", ["number"]);
var b2Body_GetInertia = Module.cwrap("b2Body_GetInertia", "number", ["number"]);
var b2Body_GetLinearVelocity = Module.cwrap("b2Body_GetLinearVelocity", "null", ["number", "number"]);
var b2Body_GetLocalPoint = Module.cwrap("b2Body_GetLocalPoint", "null", ["number", "number", "number", "number"]);
var b2Body_GetLocalVector = Module.cwrap("b2Body_GetLocalVector", "null", ["number", "number", "number", "number"]);
var b2Body_GetMass = Module.cwrap("b2Body_GetMass", "number", ["number"]);
var b2Body_GetPosition = Module.cwrap("b2Body_GetPosition", "null", ["number", "number"]);
var b2Body_GetTransform = Module.cwrap("b2Body_GetTransform", "null", ["number", "number"]);
var b2Body_GetType = Module.cwrap("b2Body_GetType", "number", ["number"]);
var b2Body_GetWorldCenter = Module.cwrap("b2Body_GetWorldCenter", "null", ["number", "number"]);
var b2Body_GetWorldPoint = Module.cwrap("b2Body_GetWorldPoint", "null", ["number", "number", "number", "number"]);
var b2Body_GetWorldVector = Module.cwrap("b2Body_GetWorldVector", "null", ["number", "number", "number", "number"]);
var b2Body_SetAngularVelocity = Module.cwrap("b2Body_SetAngularVelocity", "null", ["number", "number"]);
var b2Body_SetAwake = Module.cwrap("b2Body_SetAwake", "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"]);
var b2Body_SetTransform = Module.cwrap("b2Body_SetTransform", "null", ["number", "number", "number"]);
var b2Body_SetType = Module.cwrap("b2Body_SetType", "null", ["number", "number"]);
var b2Body_xf_offset = Offsets.b2Body.xf;
var b2Body_userData_offset = Offsets.b2Body.userData;
function b2Body(ptr) {
this.buffer = new DataView(Module.HEAPU8.buffer, ptr);
this.ptr = ptr;
this.fixtures = []
}
b2Body.prototype.ApplyAngularImpulse = function(force, wake) {
b2Body_ApplyAngularImpulse(this.ptr, force, 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_ApplyForceToCenter(this.ptr, force.x, force.y, wake)
};
b2Body.prototype.ApplyTorque = function(force, wake) {
b2Body_ApplyTorque(this.ptr, force, wake)
};
b2Body.prototype.CreateFixtureFromDef = function(fixtureDef) {
var fixture = new b2Fixture;
fixture.FromFixtureDef(fixtureDef);
fixture._SetPtr(fixtureDef.shape._CreateFixture(this, fixtureDef));
fixture.body = this;
b2World._Push(fixture, this.fixtures);
world.fixturesLookup[fixture.ptr] = fixture;
return fixture
};
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_DestroyFixture(this.ptr, fixture.ptr);
b2World._RemoveItem(fixture, this.fixtures)
};
b2Body.prototype.GetAngle = function() {
return b2Body_GetAngle(this.ptr)
};
b2Body.prototype.GetAngularVelocity = function() {
return b2Body_GetAngularVelocity(this.ptr)
};
b2Body.prototype.GetInertia = function() {
return b2Body_GetInertia(this.ptr)
};
b2Body.prototype.GetMass = function() {
return b2Body_GetMass(this.ptr)
};
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_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_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_GetPosition(this.ptr, _vec2Buf.byteOffset);
var result = new Float32Array(_vec2Buf.buffer, _vec2Buf.byteOffset, _vec2Buf.length);
return new b2Vec2(result[0], result[1])
};
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);
return transform
};
b2Body.prototype.GetType = function() {
return b2Body_GetType(this.ptr)
};
b2Body.prototype.GetUserData = function() {
return this.buffer.getUint32(b2Body_userData_offset, true)
};
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_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_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_SetAngularVelocity(this.ptr, angle)
};
b2Body.prototype.SetAwake = function(flag) {
b2Body_SetAwake(this.ptr, flag)
};
b2Body.prototype.SetLinearVelocity = function(v) {
b2Body_SetLinearVelocity(this.ptr, v.x, v.y)
};
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_SetTransform(this.ptr, v.x, v.y, angle)
};
b2Body.prototype.SetType = function(type) {
b2Body_SetType(this.ptr, type)
};
var b2_staticBody = 0;
var b2_kinematicBody = 1;
var b2_dynamicBody = 2;
function b2BodyDef() {
this.active = true;
this.allowSleep = true;
this.angle = 0;
this.angularVelocity = 0;
this.angularDamping = 0;
this.awake = true;
this.bullet = false;
this.fixedRotation = false;
this.gravityScale = 1;
this.linearDamping = 0;
this.linearVelocity = new b2Vec2;
this.position = new b2Vec2;
this.type = b2_staticBody;
this.userData = null
}
;
b2World.BeginContactBody = function(contactPtr) {
if (world.listener.BeginContactBody === undefined)
return;
var contact = new b2Contact(contactPtr);
world.listener.BeginContactBody(contact)
};
b2World.EndContactBody = function(contactPtr) {
if (world.listener.EndContactBody === undefined)
return;
var contact = new b2Contact(contactPtr);
world.listener.EndContactBody(contact)
};
b2World.PreSolve = function(contactPtr, oldManifoldPtr) {
if (world.listener.PreSolve === undefined)
return;
world.listener.PreSolve(new b2Contact(contactPtr), new b2Manifold(oldManifoldPtr))
};
b2World.PostSolve = function(contactPtr, impulsePtr) {
if (world.listener.PostSolve === undefined)
return;
world.listener.PostSolve(new b2Contact(contactPtr), new b2ContactImpulse(impulsePtr))
};
b2World.QueryAABB = function(fixturePtr) {
return world.queryAABBCallback.ReportFixture(world.fixturesLookup[fixturePtr])
};
b2World.RayCast = function(fixturePtr, pointX, pointY, normalX, normalY, fraction) {
return world.rayCastCallback.ReportFixture(world.fixturesLookup[fixturePtr], new b2Vec2(pointX, pointY), new b2Vec2(normalX, normalY), fraction)
};
var b2World_Create = Module.cwrap("b2World_Create", "number", ["number", "number"]);
var b2World_CreateBody = Module.cwrap("b2World_CreateBody", "number", ["number", "number", "number", "number", "number", "number", "number", "number", "number", "number", "number", "number", "number", "number", "number", "number", "number"]);
var b2World_CreateParticleSystem = Module.cwrap("b2World_CreateParticleSystem", "number", ["number", "number", "number", "number", "number", "number", "number", "number", "number", "number", "number", "number", "number", "number", "number", "number", "number", "number"]);
var b2World_DestroyBody = Module.cwrap("b2World_DestroyBody", "null", ["number", "number"]);
var b2World_DestroyJoint = Module.cwrap("b2World_DestroyJoint", "null", ["number", "number"]);
var b2World_DestroyParticleSystem = Module.cwrap("b2World_DestroyParticleSystem", "null", ["number", "number"]);
var b2World_QueryAABB = Module.cwrap("b2World_QueryAABB", "null", ["number", "number", "number", "number", "number"]);
var b2World_RayCast = Module.cwrap("b2World_RayCast", "null", ["number", "number", "number", "number", "number"]);
var b2World_SetContactListener = Module.cwrap("b2World_SetContactListener", "null", ["number"]);
var b2World_SetGravity = Module.cwrap("b2World_SetGravity", "null", ["number", "number", "number"]);
var b2World_Step = Module.cwrap("b2World_Step", "null", ["number", "number", "number"]);
var _transBuf = null;
var _vec2Buf = null;
function b2World(gravity) {
this.bodies = [];
this.bodiesLookup = {};
this.fixturesLookup = {};
this.joints = [];
this.listener = null;
this.particleSystems = [];
this.ptr = b2World_Create(gravity.x, gravity.y);
this.queryAABBCallback = null;
this.rayCastCallback = null;
this.buffer = new DataView(Module.HEAPU8.buffer, this.ptr);
var nDataBytes = 4 * Float32Array.BYTES_PER_ELEMENT;
var dataPtr = Module._malloc(nDataBytes);
_transBuf = new Uint8Array(Module.HEAPU8.buffer, dataPtr, nDataBytes);
nDataBytes = 2 * Float32Array.BYTES_PER_ELEMENT;
dataPtr =
Module._malloc(nDataBytes);
_vec2Buf = new Uint8Array(Module.HEAPU8.buffer, dataPtr, nDataBytes)
}
b2World._Push = function(item, list) {
item.lindex = list.length;
list.push(item)
};
b2World._RemoveItem = function(item, list) {
var length = list.length;
var lindex = item.lindex;
if (length > 1) {
list[lindex] = list[length - 1];
list[lindex].lindex = lindex
}
list.pop()
};
b2World.prototype.CreateBody = function(bodyDef) {
var body = new b2Body(b2World_CreateBody(this.ptr, bodyDef.active, bodyDef.allowSleep, bodyDef.angle, bodyDef.angularVelocity, bodyDef.angularDamping, bodyDef.awake, bodyDef.bullet, bodyDef.fixedRotation, bodyDef.gravityScale, bodyDef.linearDamping, bodyDef.linearVelocity.x, bodyDef.linearVelocity.y, bodyDef.position.x, bodyDef.position.y, bodyDef.type, bodyDef.userData));
b2World._Push(body, this.bodies);
this.bodiesLookup[body.ptr] = body;
return body
};
b2World.prototype.CreateJoint = function(jointDef) {
var joint = jointDef.Create(this);
b2World._Push(joint, this.joints);
return joint
};
b2World.prototype.CreateParticleSystem = function(psd) {
var ps = new b2ParticleSystem(b2World_CreateParticleSystem(this.ptr, psd.colorMixingStrength, psd.dampingStrength, psd.destroyByAge, psd.ejectionStrength, psd.elasticStrength, psd.lifetimeGranularity, psd.powderStrength, psd.pressureStrength, psd.radius, psd.repulsiveStrength, psd.springStrength, psd.staticPressureIterations, psd.staticPressureRelaxation, psd.staticPressureStrength, psd.surfaceTensionNormalStrength, psd.surfaceTensionPressureStrength, psd.viscousStrength));
b2World._Push(ps, this.particleSystems);
ps.dampingStrength = psd.dampingStrength;
ps.radius = psd.radius;
return ps
};
b2World.prototype.DestroyBody = function(body) {
b2World_DestroyBody(this.ptr, body.ptr);
b2World._RemoveItem(body, this.bodies)
};
b2World.prototype.DestroyJoint = function(joint) {
b2World_DestroyJoint(this.ptr, joint.ptr);
b2World._RemoveItem(joint, this.joints)
};
b2World.prototype.DestroyParticleSystem = function(particleSystem) {
b2World_DestroyParticleSystem(this.ptr, particleSystem.ptr);
b2World._RemoveItem(particleSystem, this.particleSystems)
};
b2World.prototype.QueryAABB = function(callback, aabb) {
this.queryAABBCallback = callback;
b2World_QueryAABB(this.ptr, aabb.lowerBound.x, aabb.lowerBound.y, aabb.upperBound.x, aabb.upperBound.y)
};
b2World.prototype.RayCast = function(callback, point1, point2) {
this.rayCastCallback = callback;
b2World_RayCast(this.ptr, point1.x, point1.y, point2.x, point2.y)
};
b2World.prototype.SetContactListener = function(listener) {
this.listener = listener;
b2World_SetContactListener(this.ptr)
};
b2World.prototype.SetGravity = function(gravity) {
b2World_SetGravity(this.ptr, gravity.x, gravity.y)
};
b2World.prototype.Step = function(steps, vIterations, pIterations) {
b2World_Step(this.ptr, steps, vIterations, pIterations)
};
var b2WheelJoint_SetMotorSpeed = Module.cwrap("b2WheelJoint_SetMotorSpeed", "null", ["number", "number"]);
var b2WheelJoint_SetSpringFrequencyHz = Module.cwrap("b2WheelJoint_SetSpringFrequencyHz", "null", ["number", "number"]);
function b2WheelJoint(def) {
this.next = null;
this.ptr = null
}
b2WheelJoint.prototype.SetMotorSpeed = function(speed) {
b2WheelJoint_SetMotorSpeed(this.ptr, speed)
};
b2WheelJoint.prototype.SetSpringFrequencyHz = function(hz) {
b2WheelJoint_SetSpringFrequencyHz(this.ptr, hz)
};
var b2WheelJointDef_Create = Module.cwrap("b2WheelJointDef_Create", "number", ["number", "number", "number", "number", "number", "number", "number", "number", "number", "number", "number", "number", "number", "number", "number"]);
var b2WheelJointDef_InitializeAndCreate = Module.cwrap("b2WheelJointDef_InitializeAndCreate", "number", ["number", "number", "number", "number", "number", "number", "number", "number", "number", "number", "number", "number", "number"]);
function b2WheelJointDef() {
this.bodyA = null;
this.bodyB = null;
this.collideConnected = false;
this.dampingRatio = .7;
this.enableMotor = false;
this.frequencyHz = 2;
this.localAnchorA = new b2Vec2;
this.localAnchorB = new b2Vec2;
this.localAxisA = new b2Vec2(1, 0);
this.maxMotorTorque = 0;
this.motorSpeed = 0
}
b2WheelJointDef.prototype.Create = function(world) {
var wheelJoint = new b2WheelJoint(this);
wheelJoint.ptr = b2WheelJointDef_Create(world.ptr, this.bodyA.ptr, this.bodyB.ptr, this.collideConnected, this.dampingRatio, this.enableMotor, this.frequencyHz, this.localAnchorA.x, this.localAnchorA.y, this.localAnchorB.x, this.localAnchorB.y, this.localAxisA.x, this.localAxisA.y, this.maxMotorTorque, this.motorSpeed);
return wheelJoint
};
b2WheelJointDef.prototype.InitializeAndCreate = function(bodyA, bodyB, anchor, axis) {
this.bodyA = bodyA;
this.bodyB = bodyB;
var wheelJoint = new b2WheelJoint(this);
wheelJoint.ptr = b2WheelJointDef_InitializeAndCreate(world.ptr, this.bodyA.ptr, this.bodyB.ptr, anchor.x, anchor.y, axis.x, axis.y, this.collideConnected, this.dampingRatio, this.enableMotor, this.frequencyHz, this.maxMotorTorque, this.motorSpeed);
b2World._Push(wheelJoint, world.joints);
return wheelJoint
};
var b2WeldJointDef_Create = Module.cwrap("b2WeldJointDef_Create", "number", ["number", "number", "number", "number", "number", "number", "number", "number", "number", "number"]);
var b2WeldJointDef_InitializeAndCreate = Module.cwrap("b2WeldJointDef_InitializeAndCreate", "number", ["number", "number", "number", "number", "number", "number", "number", "number"]);
function b2WeldJointDef() {
this.bodyA = null;
this.bodyB = null;
this.collideConnected = false;
this.dampingRatio = 0;
this.frequencyHz = 0;
this.localAnchorA = new b2Vec2;
this.localAnchorB = new b2Vec2;
this.referenceAngle = 0
}
b2WeldJointDef.prototype.Create = function(world) {
var weldJoint = new b2WeldJoint(this);
weldJoint.ptr = b2WeldJointDef_Create(world.ptr, this.bodyA.ptr, this.bodyB.ptr, this.collideConnected, this.dampingRatio, this.frequencyHz, this.localAnchorA.x, this.localAnchorA.y, this.localAnchorB.x, this.localAnchorB.y, this.referenceAngle);
return weldJoint
};
b2WeldJointDef.prototype.InitializeAndCreate = function(bodyA, bodyB, anchor) {
this.bodyA = bodyA;
this.bodyB = bodyB;
var weldJoint = new b2WeldJoint(this);
weldJoint.ptr = b2WeldJointDef_InitializeAndCreate(world.ptr, this.bodyA.ptr, this.bodyB.ptr, anchor.x, anchor.y, this.collideConnected, this.dampingRatio, this.frequencyHz);
b2World._Push(weldJoint, world.joints);
return weldJoint
};
function b2WeldJoint(def) {
this.bodyA = def.bodyA;
this.bodyB = def.bodyB;
this.next = null;
this.ptr = null
}
;
var b2GearJoint_GetRatio = Module.cwrap("b2GearJoint_GetRatio", "number", ["number"]);
function b2GearJoint(def) {
this.ptr = null;
this.next = null
}
b2GearJoint.prototype.GetRatio = function() {
return b2GearJoint_GetRatio(this.ptr)
};
var b2GearJointDef_Create = Module.cwrap("b2GearJointDef_Create", "number", ["number", "number", "number", "number", "number", "number", "number"]);
function b2GearJointDef() {
this.bodyA = null;
this.bodyB = null;
this.collideConnected = false;
this.joint1 = null;
this.joint2 = null;
this.ratio = 0
}
b2GearJointDef.prototype.Create = function(world) {
var gearJoint = new b2GearJoint(this);
gearJoint.ptr = b2GearJointDef_Create(world.ptr, this.bodyA.ptr, this.bodyB.ptr, this.collideConnected, this.joint1.ptr, this.joint2.ptr, this.ratio);
return gearJoint
};
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 b2Joint_GetBodyA = Module.cwrap("b2Joint_GetBodyA", "number", ["number"]);
var b2Joint_GetBodyB = Module.cwrap("b2Joint_GetBodyB", "number", ["number"]);
function b2Joint() {}
b2Joint.prototype.GetBodyA = function() {
return world.bodiesLookup[b2Joint_GetBodyA(this.ptr)]
};
b2Joint.prototype.GetBodyB = function() {
return world.bodiesLookup[b2Joint_GetBodyB(this.ptr)]
};
var b2FrictionJointDef_Create = Module.cwrap("b2FrictionJointDef_Create", "number", ["number", "number", "number", "number", "number", "number", "number", "number", "number", "number"]);
var b2FrictionJointDef_InitializeAndCreate = Module.cwrap("b2FrictionJointDef_InitializeAndCreate", "number", ["number", "number", "number", "number", "number", "number", "number", "number"]);
function b2FrictionJointDef() {
this.bodyA = null;
this.bodyB = null;
this.collideConnected = false;
this.localAnchorA = new b2Vec2;
this.localAnchorB = new b2Vec2;
this.maxForce = 0;
this.maxTorque = 0;
this.userData = null
}
b2FrictionJointDef.prototype.Create = function(world) {
var frictionJoint = new b2FrictionJoint(this);
frictionJoint.ptr = b2FrictionJointDef_Create(world.ptr, this.bodyA.ptr, this.bodyB.ptr, this.collideConnected, this.localAnchorA.x, this.localAnchorA.y, this.localAnchorB.x, this.localAnchorB.y, this.maxForce, this.maxTorque);
return frictionJoint
};
b2FrictionJointDef.prototype.InitializeAndCreate = function(bodyA, bodyB, anchor) {
this.bodyA = bodyA;
this.bodyB = bodyB;
var frictionJoint = new b2FrictionJoint(this);
frictionJoint.ptr = b2FrictionJointDef_InitializeAndCreate(world.ptr, this.bodyA.ptr, this.bodyB.ptr, anchor.x, anchor.y, this.collideConnected, this.maxForce, this.maxTorque);
b2World._Push(frictionJoint, world.joints);
return frictionJoint
};
function b2FrictionJoint(def) {
this.bodyA = def.bodyA;
this.bodyB = def.bodyB;
this.ptr = null;
this.next = null
}
;
var b2RevoluteJoint_EnableLimit = Module.cwrap("b2RevoluteJoint_EnableLimit", "number", ["number", "number"]);
var b2RevoluteJoint_EnableMotor = Module.cwrap("b2RevoluteJoint_EnableMotor", "number", ["number", "number"]);
var b2RevoluteJoint_GetJointAngle = Module.cwrap("b2RevoluteJoint_GetJointAngle", "number", ["number"]);
var b2RevoluteJoint_IsLimitEnabled = Module.cwrap("b2RevoluteJoint_IsLimitEnabled", "number", ["number"]);
var b2RevoluteJoint_IsMotorEnabled = Module.cwrap("b2RevoluteJoint_IsMotorEnabled", "number", ["number"]);
var b2RevoluteJoint_SetMotorSpeed = Module.cwrap("b2RevoluteJoint_SetMotorSpeed", "number", ["number", "number"]);
function b2RevoluteJoint(revoluteJointDef) {
this.collideConnected = revoluteJointDef.collideConnected;
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
}
b2RevoluteJoint.prototype = new b2Joint;
b2RevoluteJoint.prototype.EnableLimit = function(flag) {
b2RevoluteJoint_EnableLimit(this.ptr, flag)
};
b2RevoluteJoint.prototype.EnableMotor = function(flag) {
b2RevoluteJoint_EnableMotor(this.ptr, flag)
};
b2RevoluteJoint.prototype.GetJointAngle = function(flag) {
return b2RevoluteJoint_GetJointAngle(this.ptr)
};
b2RevoluteJoint.prototype.IsLimitEnabled = function() {
return b2RevoluteJoint_IsLimitEnabled(this.ptr)
};
b2RevoluteJoint.prototype.IsMotorEnabled = function() {
return b2RevoluteJoint_IsMotorEnabled(this.ptr)
};
b2RevoluteJoint.prototype.SetMotorSpeed = function(speed) {
b2RevoluteJoint_SetMotorSpeed(this.ptr, speed);
this.motorSpeed = speed
};
var b2RevoluteJointDef_Create = Module.cwrap("b2RevoluteJointDef_Create", "number", ["number", "number", "number", "number", "number", "number", "number", "number", "number", "number", "number", "number", "number", "number", "number"]);
var b2RevoluteJointDef_InitializeAndCreate = Module.cwrap("b2RevoluteJointDef_InitializeAndCreate", "number", ["number", "number", "number", "number", "number", "number", "number", "number", "number", "number", "number", "number"]);
function b2RevoluteJointDef() {
this.collideConnected = false;
this.enableLimit = false;
this.enableMotor = false;
this.localAnchorA = new b2Vec2;
this.localAnchorB = new b2Vec2;
this.lowerAngle = 0;
this.maxMotorTorque = 0;
this.motorSpeed = 0;
this.referenceAngle = 0;
this.upperAngle = 0;
this.userData = null
}
b2RevoluteJointDef.prototype.Create = function(world) {
var revoluteJoint = new b2RevoluteJoint(this);
revoluteJoint.ptr = b2RevoluteJointDef_Create(world.ptr, this.bodyA.ptr, this.bodyB.ptr, this.collideConnected, this.enableLimit, this.enableMotor, this.lowerAngle, this.localAnchorA.x, this.localAnchorA.y, this.localAnchorB.x, this.localAnchorB.y, this.maxMotorTorque, this.motorSpeed, this.referenceAngle, this.upperAngle);
return revoluteJoint
};
b2RevoluteJointDef.prototype.InitializeAndCreate = function(bodyA, bodyB, anchor) {
this.bodyA = bodyA;
this.bodyB = bodyB;
var revoluteJoint = new b2RevoluteJoint(this);
revoluteJoint.ptr = b2RevoluteJointDef_InitializeAndCreate(world.ptr, bodyA.ptr, bodyB.ptr, anchor.x, anchor.y, this.collideConnected, this.enableLimit, this.enableMotor, this.lowerAngle, this.maxMotorTorque, this.motorSpeed, this.upperAngle);
b2World._Push(revoluteJoint, world.joints);
return revoluteJoint
};
var b2MotorJoint_SetAngularOffset = Module.cwrap("b2MotorJoint_SetAngularOffset", "null", ["number", "number"]);
var b2MotorJoint_SetLinearOffset = Module.cwrap("b2MotorJoint_SetLinearOffset", "null", ["number", "number", "number"]);
function b2MotorJoint(def) {
this.bodyA = def.bodyA;
this.bodyB = def.bodyB;
this.ptr = null;
this.next = null
}
b2MotorJoint.prototype.SetAngularOffset = function(angle) {
b2MotorJoint_SetAngularOffset(this.ptr, angle)
};
b2MotorJoint.prototype.SetLinearOffset = function(v) {
b2MotorJoint_SetLinearOffset(this.ptr, v.x, v.y)
};
var b2MotorJointDef_Create = Module.cwrap("b2MotorJointDef_Create", "number", ["number", "number", "number", "number", "number", "number", "number", "number", "number", "number"]);
var b2MotorJointDef_InitializeAndCreate = Module.cwrap("b2MotorJointDef_InitializeAndCreate", "number", ["number", "number", "number", "number", "number", "number", "number", "number"]);
function b2MotorJointDef() {
this.bodyA = null;
this.bodyB = null;
this.collideConnected = false;
this.angularOffset = 0;
this.correctionFactor = .3;
this.linearOffset = new b2Vec2;
this.maxForce = 0;
this.maxTorque = 0
}
b2MotorJointDef.prototype.Create = function(world) {
var motorJoint = new b2MotorJoint(this);
motorJoint.ptr = b2MotorJointDef_Create(world.ptr, this.bodyA.ptr, this.bodyB.ptr, this.collideConnected, this.angularOffset, this.correctionFactor, this.linearOffset.x, this.linearOffset.y, this.maxForce, this.maxTorque);
return motorJoint
};
b2MotorJointDef.prototype.InitializeAndCreate = function(bodyA, bodyB) {
this.bodyA = bodyA;
this.bodyB = bodyB;
var motorJoint = new b2MotorJoint(this);
motorJoint.ptr = b2MotorJointDef_InitializeAndCreate(world.ptr, this.bodyA.ptr, this.bodyB.ptr, this.collideConnected, this.correctionFactor, this.maxForce, this.maxTorque);
b2World._Push(motorJoint, world.joints);
return motorJoint
};
function b2PulleyJoint(def) {
this.ptr = null;
this.next = null
}
var b2PulleyJointDef_Create = Module.cwrap("b2PulleyJointDef_Create", "number", ["number", "number", "number", "number", "number", "number", "number", "number", "number", "number", "number", "number", "number", "number", "number"]);
var b2PulleyJointDef_InitializeAndCreate = Module.cwrap("b2PulleyJointDef_InitializeAndCreate", "number", ["number", "number", "number", "number", "number", "number", "number", "number", "number", "number", "number", "number", "number", "number"]);
function b2PulleyJointDef() {
this.bodyA = null;
this.bodyB = null;
this.collideConnected = true;
this.groundAnchorA = new b2Vec2;
this.groundAnchorB = new b2Vec2;
this.localAnchorA = new b2Vec2;
this.localAnchorB = new b2Vec2;
this.lengthA = 0;
this.lengthB = 0;
this.ratio = 1
}
b2PulleyJointDef.prototype.Create = function(world) {
var pulleyJoint = new b2PulleyJoint(this);
pulleyJoint.ptr = b2PulleyJointDef_Create(world.ptr, this.bodyA.ptr, this.bodyB.ptr, this.collideConnected, this.groundAnchorA.x, this.groundAnchorA.y, this.groundAnchorB.x, this.groundAnchorB.y, this.lengthA, this.lengthB, this.localAnchorA.x, this.localAnchorA.y, this.localAnchorB.x, this.localAnchorB.y, this.ratio);
return pulleyJoint
};
b2PulleyJointDef.prototype.InitializeAndCreate = function(bodyA, bodyB, groundAnchorA, groundAnchorB, anchorA, anchorB, ratio) {
this.bodyA = bodyA;
this.bodyB = bodyB;
var pulleyJoint = new b2PulleyJoint(this);
pulleyJoint.ptr = b2PulleyJointDef_InitializeAndCreate(world.ptr, this.bodyA.ptr, this.bodyB.ptr, anchorA.x, anchorA.y, anchorB.x, anchorB.y, groundAnchorA.x, groundAnchorA.y, groundAnchorB.x, groundAnchorB.y, ratio, this.collideConnected);
b2World._Push(pulleyJoint, world.joints);
return pulleyJoint
};
function b2DistanceJoint(def) {
this.bodyA = def.bodyA;
this.bodyB = def.bodyB;
this.ptr = null;
this.next = null
}
var b2DistanceJointDef_Create = Module.cwrap("b2DistanceJointDef_Create", "number", ["number", "number", "number", "number", "number", "number", "number", "number", "number", "number", "number"]);
var b2DistanceJointDef_InitializeAndCreate = Module.cwrap("b2DistanceJointDef_InitializeAndCreate", "number", ["number", "number", "number", "number", "number", "number", "number", "number", "number", "number"]);
function b2DistanceJointDef() {
this.bodyA = null;
this.bodyB = null;
this.collideConnected = false;
this.dampingRatio = 0;
this.length = 1;
this.localAnchorA = new b2Vec2;
this.localAnchorB = new b2Vec2;
this.frequencyHz = 0
}
b2DistanceJointDef.prototype.Create = function(world) {
var distanceJoint = new b2DistanceJoint(this);
distanceJoint.ptr = b2DistanceJointDef_Create(world.ptr, this.bodyA.ptr, this.bodyB.ptr, this.collideConnected, this.dampingRatio, this.frequencyHz, this.length, this.localAnchorA.x, this.localAnchorA.y, this.localAnchorB.x, this.localAnchorB.y);
return distanceJoint
};
b2DistanceJointDef.prototype.InitializeAndCreate = function(bodyA, bodyB, anchorA, anchorB) {
this.bodyA = bodyA;
this.bodyB = bodyB;
var distanceJoint = new b2DistanceJoint(this);
distanceJoint.ptr = b2DistanceJointDef_InitializeAndCreate(world.ptr, this.bodyA.ptr, this.bodyB.ptr, anchorA.x, anchorA.y, anchorB.x, anchorB.y, this.collideConnected, this.dampingRatio, this.frequencyHz);
b2World._Push(distanceJoint, world.joints);
return distanceJoint
};
var b2PrismaticJoint_EnableLimit = Module.cwrap("b2PrismaticJoint_EnableLimit", "number", ["number", "number"]);
var b2PrismaticJoint_EnableMotor = Module.cwrap("b2PrismaticJoint_EnableMotor", "number", ["number", "number"]);
var b2PrismaticJoint_GetJointTranslation = Module.cwrap("b2PrismaticJoint_GetJointTranslation", "number", ["number"]);
var b2PrismaticJoint_GetMotorSpeed = Module.cwrap("b2PrismaticJoint_GetMotorSpeed", "number", ["number"]);
var b2PrismaticJoint_GetMotorForce = Module.cwrap("b2PrismaticJoint_GetMotorForce", "number", ["number", "number"]);
var b2PrismaticJoint_IsLimitEnabled = Module.cwrap("b2PrismaticJoint_IsLimitEnabled", "number", ["number"]);
var b2PrismaticJoint_IsMotorEnabled = Module.cwrap("b2PrismaticJoint_IsMotorEnabled", "number", ["number"]);
var b2PrismaticJoint_SetMotorSpeed = Module.cwrap("b2PrismaticJoint_SetMotorSpeed", "number", ["number", "number"]);
function b2PrismaticJoint(def) {
this.ptr = null;
this.next = null
}
b2PrismaticJoint.prototype = new b2Joint;
b2PrismaticJoint.prototype.EnableLimit = function(flag) {
return b2PrismaticJoint_EnableLimit(this.ptr, flag)
};
b2PrismaticJoint.prototype.EnableMotor = function(flag) {
return b2PrismaticJoint_EnableMotor(this.ptr, flag)
};
b2PrismaticJoint.prototype.GetJointTranslation = function() {
return b2PrismaticJoint_GetJointTranslation(this.ptr)
};
b2PrismaticJoint.prototype.GetMotorSpeed = function() {
return b2PrismaticJoint_GetMotorSpeed(this.ptr)
};
b2PrismaticJoint.prototype.GetMotorForce = function(hz) {
return b2PrismaticJoint_GetMotorForce(this.ptr, hz)
};
b2PrismaticJoint.prototype.IsLimitEnabled = function() {
return b2PrismaticJoint_IsLimitEnabled(this.ptr)
};
b2PrismaticJoint.prototype.IsMotorEnabled = function() {
return b2PrismaticJoint_IsMotorEnabled(this.ptr)
};
b2PrismaticJoint.prototype.GetMotorEnabled = function() {
return b2PrismaticJoint_IsMotorEnabled(this.ptr)
};
b2PrismaticJoint.prototype.SetMotorSpeed = function(speed) {
return b2PrismaticJoint_SetMotorSpeed(this.ptr, speed)
};
var b2PrismaticJointDef_Create = Module.cwrap("b2PrismaticJointDef_Create", "number", ["number", "number", "number", "number", "number", "number", "number", "number", "number", "number", "number", "number", "number", "number", "number", "number", "number"]);
var b2PrismaticJointDef_InitializeAndCreate = Module.cwrap("b2PrismaticJointDef_InitializeAndCreate", "number", ["number", "number", "number", "number", "number", "number", "number", "number", "number", "number", "number", "number", "number", "number"]);
function b2PrismaticJointDef() {
this.bodyA = null;
this.bodyB = null;
this.collideConnected = false;
this.enableLimit = false;
this.enableMotor = false;
this.localAnchorA = new b2Vec2;
this.localAnchorB = new b2Vec2;
this.localAxisA = new b2Vec2(1, 0);
this.lowerTranslation = 0;
this.maxMotorForce = 0;
this.motorSpeed = 0;
this.referenceAngle = 0;
this.upperTranslation = 0
}
b2PrismaticJointDef.prototype.Create = function(world) {
var prismaticJoint = new b2PrismaticJoint(this);
prismaticJoint.ptr = b2PrismaticJointDef_Create(world.ptr, this.bodyA.ptr, this.bodyB.ptr, this.collideConnected, this.enableLimit, this.enableMotor, this.localAnchorA.x, this.localAnchorA.y, this.localAnchorB.x, this.localAnchorB.y, this.localAxisA.x, this.localAxisA.y, this.lowerTranslation, this.maxMotorForce, this.motorSpeed, this.referenceAngle, this.upperTranslation);
return prismaticJoint
};
b2PrismaticJointDef.prototype.InitializeAndCreate = function(bodyA, bodyB, anchor, axis) {
this.bodyA = bodyA;
this.bodyB = bodyB;
var prismaticJoint = new b2PrismaticJoint(this);
prismaticJoint.ptr = b2PrismaticJointDef_InitializeAndCreate(world.ptr, this.bodyA.ptr, this.bodyB.ptr, anchor.x, anchor.y, axis.x, axis.y, this.collideConnected, this.enableLimit, this.enableMotor, this.lowerTranslation, this.maxMotorForce, this.motorSpeed, this.upperTranslation);
b2World._Push(prismaticJoint, world.joints);
return prismaticJoint
};
function b2RopeJoint(def) {
this.next = null;
this.ptr = null
}
var b2RopeJointDef_Create = Module.cwrap("b2RopeJointDef_Create", "number", ["number", "number", "number", "number", "number", "number", "number", "number", "number"]);
function b2RopeJointDef() {
this.bodyA = null;
this.bodyB = null;
this.collideConnected = false;
this.localAnchorA = new b2Vec2;
this.localAnchorB = new b2Vec2;
this.maxLength = 0
}
b2RopeJointDef.prototype.Create = function(world) {
var ropeJoint = new b2RopeJoint(this);
ropeJoint.ptr = b2RopeJointDef_Create(world.ptr, this.bodyA.ptr, this.bodyB.ptr, this.collideConnected, this.localAnchorA.x, this.localAnchorA.y, this.localAnchorB.x, this.localAnchorB.y, this.maxLength);
return ropeJoint
};
var b2MouseJoint_SetTarget = Module.cwrap("b2MouseJoint_SetTarget", "null", ["number", "number", "number"]);
function b2MouseJoint(def) {
this.ptr = null;
this.next = null
}
b2MouseJoint.prototype.SetTarget = function(p) {
b2MouseJoint_SetTarget(this.ptr, p.x, p.y)
};
var b2MouseJointDef_Create = Module.cwrap("b2MouseJointDef_Create", "number", ["number", "number", "number", "number", "number", "number", "number", "number", "number"]);
function b2MouseJointDef() {
this.bodyA = null;
this.bodyB = null;
this.collideConnected = false;
this.dampingRatio = .7;
this.frequencyHz = 5;
this.maxForce = 0;
this.target = new b2Vec2
}
b2MouseJointDef.prototype.Create = function(world) {
var mouseJoint = new b2MouseJoint(this);
mouseJoint.ptr = b2MouseJointDef_Create(world.ptr, this.bodyA.ptr, this.bodyB.ptr, this.collideConnected, this.dampingRatio, this.frequencyHz, this.maxForce, this.target.x, this.target.y);
return mouseJoint
};
var b2Contact_fixtureA_offset = Offsets.b2Contact.fixtureA;
var b2Contact_fixtureB_offset = Offsets.b2Contact.fixtureB;
var b2Contact_tangentSpeed_offset = Offsets.b2Contact.tangentSpeed;
var b2Contact_GetManifold = Module.cwrap("b2Contact_GetManifold", "number", ["number"]);
var b2Contact_GetWorldManifold = Module.cwrap("b2Contact_GetWorldManifold", "number", ["number"]);
function b2Contact(ptr) {
this.buffer = new DataView(Module.HEAPU8.buffer, ptr);
this.ptr = ptr
}
b2Contact.prototype.GetFixtureA = function() {
var fixAPtr = this.buffer.getUint32(b2Contact_fixtureA_offset, true);
return world.fixturesLookup[fixAPtr]
};
b2Contact.prototype.GetFixtureB = function() {
var fixBPtr = this.buffer.getUint32(b2Contact_fixtureB_offset, true);
return world.fixturesLookup[fixBPtr]
};
b2Contact.prototype.GetManifold = function() {
return new b2Manifold(b2Contact_GetManifold(this.ptr))
};
b2Contact.prototype.GetWorldManifold = function() {
return new b2WorldManifold(b2Contact_GetWorldManifold(this.ptr))
};
b2Contact.prototype.SetTangentSpeed = function(speed) {
this.buffer.setFloat32(b2Contact_tangentSpeed_offset, speed, true)
};
function b2Filter() {
this.categoryBits = 1;
this.groupIndex = 0;
this.maskBits = 65535
}
var b2Fixture_isSensor_offset = Offsets.b2Fixture.isSensor;
var b2Fixture_userData_offset = Offsets.b2Fixture.userData;
function b2Fixture() {
this.body = null;
this.buffer = null;
this.ptr = null;
this.shape = null
}
var b2Fixture_TestPoint = Module.cwrap("b2Fixture_TestPoint", "number", ["number", "number", "number"]);
b2Fixture.prototype._SetPtr = function(ptr) {
this.ptr = ptr;
this.buffer = new DataView(Module.HEAPU8.buffer, ptr)
};
b2Fixture.prototype.FromFixtureDef = function(fixtureDef) {
this.density = fixtureDef.density;
this.friction = fixtureDef.friction;
this.isSensor = fixtureDef.isSensor;
this.restitution = fixtureDef.restitution;
this.shape = fixtureDef.shape;
this.userData = fixtureDef.userData;
this.vertices = []
};
b2Fixture.prototype.GetUserData = function() {
return this.buffer.getUint32(b2Fixture_userData_offset, true)
};
b2Fixture.prototype.SetSensor = function(flag) {
this.buffer.setUint32(b2Fixture_isSensor_offset, flag, true)
};
b2Fixture.prototype.TestPoint = function(p) {
return b2Fixture_TestPoint(this.ptr, p.x, p.y)
};
function b2FixtureDef() {
this.density = 0;
this.friction = .2;
this.isSensor = false;
this.restitution = 0;
this.shape = null;
this.userData = null;
this.filter = new b2Filter
}
;
function b2ContactImpulse(ptr) {
this.ptr = ptr;
this.buffer = new DataView(Module.HEAPU8.buffer, ptr)
}
b2ContactImpulse.prototype.GetNormalImpulse = function(i) {
return this.buffer.getFloat32(i * 4, true)
};
b2ContactImpulse.prototype.GetTangentImpulse = function(i) {
return this.buffer.getFloat32(i * 4 + 8, true)
};
b2ContactImpulse.prototype.GetCount = function(i) {
console.log(this.buffer.getInt32(16, true))
};
function b2ParticleSystemDef() {
this.colorMixingStrength = .5;
this.dampingStrength = 1;
this.destroyByAge = true;
this.ejectionStrength = .5;
this.elasticStrength = .25;
this.lifetimeGranularity = 1 / 60;
this.powderStrength = .5;
this.pressureStrength = .05;
this.radius = 1;
this.repulsiveStrength = 1;
this.springStrength = .25;
this.staticPressureIterations = 8;
this.staticPressureRelaxation = .2;
this.staticPressureStrength = .2;
this.surfaceTensionNormalStrength = .2;
this.surfaceTensionPressureStrength = .2;
this.viscousStrength = .25
}
var b2ParticleSystem_CreateParticle = Module.cwrap("b2ParticleSystem_CreateParticle", "number", ["number", "number", "number", "number", "number", "number", "number", "number", "number", "number", "number", "number", "number"]);
var b2ParticleSystem_GetColorBuffer = Module.cwrap("b2ParticleSystem_GetColorBuffer", "number", ["number"]);
var b2ParticleSystem_GetParticleCount = Module.cwrap("b2ParticleSystem_GetParticleCount", "number", ["number"]);
var b2ParticleSystem_GetPositionBuffer = Module.cwrap("b2ParticleSystem_GetPositionBuffer", "number", ["number"]);
var b2ParticleSystem_GetVelocityBuffer = Module.cwrap("b2ParticleSystem_GetVelocityBuffer", "number", ["number"]);
var b2ParticleSystem_SetDamping = Module.cwrap("b2ParticleSystem_SetDamping", "null", ["number", "number"]);
var b2ParticleSystem_SetDensity = Module.cwrap("b2ParticleSystem_SetDensity", "null", ["number", "number"]);
var b2ParticleSystem_SetRadius = Module.cwrap("b2ParticleSystem_SetRadius", "null", ["number", "number"]);
function b2ParticleSystem(ptr) {
this.dampingStrength = 1;
this.density = 1;
this.ptr = ptr;
this.particleGroups = [];
this.radius = 1
}
b2ParticleSystem.prototype.CreateParticle = function(pd) {
return b2ParticleSystem_CreateParticle(this.ptr, pd.color.r, pd.color.g, pd.color.b, pd.color.a, pd.flags, pd.group, pd.lifetime, pd.position.x, pd.position.y, pd.userData, pd.velocity.x, pd.velocity.y)
};
b2ParticleSystem.prototype.CreateParticleGroup = function(pgd) {
var particleGroup = new b2ParticleGroup(pgd.shape._CreateParticleGroup(this, pgd));
this.particleGroups.push(particleGroup);
return particleGroup
};
b2ParticleSystem.prototype.DestroyParticlesInShape = function(shape, xf) {
return shape._DestroyParticlesInShape(this, xf)
};
b2ParticleSystem.prototype.GetColorBuffer = function() {
var count = b2ParticleSystem_GetParticleCount(this.ptr) * 4;
var offset = b2ParticleSystem_GetColorBuffer(this.ptr);
return new Uint8Array(Module.HEAPU8.buffer, offset, count)
};
b2ParticleSystem.prototype.GetParticleCount = function() {
return b2ParticleSystem_GetParticleCount(this.ptr) * 2
};
b2ParticleSystem.prototype.GetPositionBuffer = function() {
var count = b2ParticleSystem_GetParticleCount(this.ptr) * 2;
var offset = b2ParticleSystem_GetPositionBuffer(this.ptr);
return new Float32Array(Module.HEAPU8.buffer, offset, count)
};
b2ParticleSystem.prototype.GetVelocityBuffer = function() {
var count = b2ParticleSystem_GetParticleCount(this.ptr) * 2;
var offset = b2ParticleSystem_GetVelocityBuffer(this.ptr);
return new Float32Array(Module.HEAPU8.buffer, offset, count)
};
b2ParticleSystem.prototype.SetDamping = function(damping) {
this.dampingStrength = damping;
b2ParticleSystem_SetDamping(this.ptr, damping)
};
b2ParticleSystem.prototype.SetDensity = function(density) {
this.density = density;
b2ParticleSystem_SetDensity(this.ptr, density)
};
b2ParticleSystem.prototype.SetRadius = function(radius) {
this.radius = radius;
b2ParticleSystem_SetRadius(this.ptr, radius)
};
var b2_solidParticleGroup = 1 << 0;
var b2_rigidParticleGroup = 1 << 1;
var b2_particleGroupCanBeEmpty = 1 << 2;
var b2_particleGroupWillBeDestroyed = 1 << 3;
var b2_particleGroupNeedsUpdateDepth = 1 << 4;
var b2_particleGroupInternalMask = b2_particleGroupWillBeDestroyed | b2_particleGroupNeedsUpdateDepth;
var b2ParticleGroup_ApplyForce = Module.cwrap("b2ParticleGroup_ApplyForce", "null", ["number", "number", "number"]);
var b2ParticleGroup_ApplyLinearImpulse = Module.cwrap("b2ParticleGroup_ApplyLinearImpulse", "null", ["number", "number", "number"]);
var b2ParticleGroup_DestroyParticles = Module.cwrap("b2ParticleGroup_DestroyParticles", "null", ["number", "number"]);
var b2ParticleGroup_GetBufferIndex = Module.cwrap("b2ParticleGroup_GetBufferIndex", "number", ["number"]);
var b2ParticleGroup_GetParticleCount = Module.cwrap("b2ParticleGroup_GetParticleCount", "number", ["number"]);
var b2ParticleGroup_groupFlags_offset = Offsets.b2ParticleGroup.groupFlags;
function b2ParticleGroup(ptr) {
this.buffer = new DataView(Module.HEAPU8.buffer, ptr);
this.ptr = ptr
}
b2ParticleGroup.prototype.ApplyForce = function(force) {
b2ParticleGroup_ApplyForce(this.ptr, force.x, force.y)
};
b2ParticleGroup.prototype.ApplyLinearImpulse = function(impulse) {
b2ParticleGroup_ApplyLinearImpulse(this.ptr, impulse.x, impulse.y)
};
b2ParticleGroup.prototype.DestroyParticles = function(flag) {
b2ParticleGroup_DestroyParticles(this.ptr, flag)
};
b2ParticleGroup.prototype.GetBufferIndex = function() {
return b2ParticleGroup_GetBufferIndex(this.ptr)
};
b2ParticleGroup.prototype.GetGroupFlags = function() {
return this.buffer.getUint32(b2ParticleGroup_groupFlags_offset, true)
};
b2ParticleGroup.prototype.GetParticleCount = function() {
return b2ParticleGroup_GetParticleCount(this.ptr)
};
b2ParticleGroup.prototype.SetGroupFlags = function(flags) {
this.buffer.setUint32(b2ParticleGroup_groupFlags_offset, flags, true)
};
function b2ParticleGroupDef() {
this.angle = 0;
this.angularVelocity = 0;
this.color = new b2ParticleColor(0, 0, 0, 0);
this.flags = 0;
this.group = new b2ParticleGroup(null);
this.groupFlags = 0;
this.lifetime = 0;
this.linearVelocity = new b2Vec2;
this.position = new b2Vec2;
this.positionData = null;
this.particleCount = 0;
this.shape = null;
this.strength = 1;
this.stride = 0;
this.userData = null
}
;
var b2_waterParticle = 0;
var b2_zombieParticle = 1 << 1;
var b2_wallParticle = 1 << 2;
var b2_springParticle = 1 << 3;
var b2_elasticParticle = 1 << 4;
var b2_viscousParticle = 1 << 5;
var b2_powderParticle = 1 << 6;
var b2_tensileParticle = 1 << 7;
var b2_colorMixingParticle = 1 << 8;
var b2_destructionListenerParticle = 1 << 9;
var b2_barrierParticle = 1 << 10;
var b2_staticPressureParticle = 1 << 11;
var b2_reactiveParticle = 1 << 12;
var b2_repulsiveParticle = 1 << 13;
var b2_fixtureContactListenerParticle = 1 << 14;
var b2_particleContactListenerParticle = 1 << 15;
var b2_fixtureContactFilterParticle = 1 << 16;
var b2_particleContactFilterParticle = 1 << 17;
function b2ParticleColor(r, g, b, a) {
if (r === undefined)
r = 0;
if (g === undefined)
g = 0;
if (b === undefined)
b = 0;
if (a === undefined)
a = 0;
this.r = r;
this.g = g;
this.b = b;
this.a = a
}
b2ParticleColor.prototype.Set = function(r, g, b, a) {
this.r = r;
this.g = g;
this.b = b;
this.a = a
};
function b2ParticleDef() {
this.color = new b2Vec2;
this.flags = 0;
this.group = 0;
this.lifetime = 0;
this.position = new b2Vec2;
this.userData = 0;
this.velocity = new b2Vec2
}
;